From 0181e1c8a0dca33c224ff0be6c6aa4ebc87f43fb Mon Sep 17 00:00:00 2001 From: Eric Brugger Date: Fri, 13 Dec 2024 06:07:09 -0800 Subject: [PATCH] Add new results to the dashboard. --- .../poodle_trunk_parallel/Pick3DTo2D.html | 1896 ++++++++++ .../poodle_trunk_parallel/avg_value_02.html | 31 + .../poodle_trunk_parallel/c_Pick3DTo2D.txt | 374 ++ .../c_annot_macros_tafile_2.png | Bin 0 -> 3651 bytes .../c_annot_macros_tafile_2_thumb.png | Bin 0 -> 2292 bytes .../c_annot_macros_tafile_6.png | Bin 0 -> 3628 bytes .../c_annot_macros_tafile_6_thumb.png | Bin 0 -> 2160 bytes .../poodle_trunk_parallel/c_avg_value_02.txt | 1 + ...l_rectilinear.root_plot_revolved_to_3D.png | Bin 0 -> 2639 bytes ...ilinear.root_plot_revolved_to_3D_thumb.png | Bin 0 -> 2414 bytes .../poodle_trunk_parallel/c_life03.png | Bin 0 -> 4829 bytes .../poodle_trunk_parallel/c_life03_thumb.png | Bin 0 -> 12766 bytes .../c_missingdata_0_04.txt | 1 + .../c_ops_dualmesh_mesh_plot_2d_01.png | Bin 0 -> 1507 bytes .../c_ops_dualmesh_mesh_plot_2d_01_thumb.png | Bin 0 -> 545 bytes .../c_ospray_domain_boundaries_00.png | Bin 0 -> 53696 bytes .../c_ospray_domain_boundaries_00_thumb.png | Bin 0 -> 8673 bytes .../c_pixeldata_0_04.png | Bin 0 -> 52611 bytes .../c_pixeldata_0_04_thumb.png | Bin 0 -> 14673 bytes .../c_pixeldata_0_05.png | Bin 0 -> 86201 bytes .../c_pixeldata_0_05_thumb.png | Bin 0 -> 15349 bytes .../c_pixeldata_0_06.png | Bin 0 -> 54025 bytes .../c_pixeldata_0_06_thumb.png | Bin 0 -> 16120 bytes .../c_pixeldata_0_07.png | Bin 0 -> 88665 bytes .../c_pixeldata_0_07_thumb.png | Bin 0 -> 16983 bytes .../c_pixeldata_0_08.png | Bin 0 -> 52590 bytes .../c_pixeldata_0_08_thumb.png | Bin 0 -> 14670 bytes .../c_pixeldata_0_09.png | Bin 0 -> 86192 bytes .../c_pixeldata_0_09_thumb.png | Bin 0 -> 15349 bytes .../c_pixeldata_0_10.png | Bin 0 -> 52900 bytes .../c_pixeldata_0_10_thumb.png | Bin 0 -> 14836 bytes .../c_pixeldata_0_11.png | Bin 0 -> 87240 bytes .../c_pixeldata_0_11_thumb.png | Bin 0 -> 15442 bytes .../poodle_trunk_parallel/c_pixie_04.png | Bin 0 -> 23379 bytes .../c_pixie_04_thumb.png | Bin 0 -> 5299 bytes .../poodle_trunk_parallel/c_volume_23.png | Bin 0 -> 67522 bytes .../c_volume_23_thumb.png | Bin 0 -> 8610 bytes .../poodle_trunk_parallel/c_volume_24.png | Bin 0 -> 61537 bytes .../c_volume_24_thumb.png | Bin 0 -> 6740 bytes .../poodle_trunk_parallel/c_volume_33.png | Bin 0 -> 27523 bytes .../c_volume_33_thumb.png | Bin 0 -> 4993 bytes .../poodle_trunk_parallel/c_volume_34.png | Bin 0 -> 28521 bytes .../c_volume_34_thumb.png | Bin 0 -> 4790 bytes .../poodle_trunk_parallel/c_zerocopy02.txt | 1 + .../poodle_trunk_parallel/css/styles.css | 96 + .../d_annot_macros_tafile_2.png | Bin 0 -> 222 bytes .../d_annot_macros_tafile_2_thumb.png | Bin 0 -> 166 bytes .../d_annot_macros_tafile_6.png | Bin 0 -> 222 bytes .../d_annot_macros_tafile_6_thumb.png | Bin 0 -> 166 bytes ...l_rectilinear.root_plot_revolved_to_3D.png | Bin 0 -> 1269 bytes ...ilinear.root_plot_revolved_to_3D_thumb.png | Bin 0 -> 765 bytes .../poodle_trunk_parallel/d_life03.png | Bin 0 -> 3565 bytes .../poodle_trunk_parallel/d_life03_thumb.png | Bin 0 -> 5828 bytes .../d_ops_dualmesh_mesh_plot_2d_01.png | Bin 0 -> 353 bytes .../d_ops_dualmesh_mesh_plot_2d_01_thumb.png | Bin 0 -> 229 bytes .../d_ospray_domain_boundaries_00.png | Bin 0 -> 173 bytes .../d_ospray_domain_boundaries_00_thumb.png | Bin 0 -> 104 bytes .../d_pixeldata_0_04.png | Bin 0 -> 1015 bytes .../d_pixeldata_0_04_thumb.png | Bin 0 -> 512 bytes .../d_pixeldata_0_05.png | Bin 0 -> 1201 bytes .../d_pixeldata_0_05_thumb.png | Bin 0 -> 672 bytes .../d_pixeldata_0_06.png | Bin 0 -> 1884 bytes .../d_pixeldata_0_06_thumb.png | Bin 0 -> 1515 bytes .../d_pixeldata_0_07.png | Bin 0 -> 2040 bytes .../d_pixeldata_0_07_thumb.png | Bin 0 -> 1641 bytes .../d_pixeldata_0_08.png | Bin 0 -> 996 bytes .../d_pixeldata_0_08_thumb.png | Bin 0 -> 496 bytes .../d_pixeldata_0_09.png | Bin 0 -> 1201 bytes .../d_pixeldata_0_09_thumb.png | Bin 0 -> 672 bytes .../d_pixeldata_0_10.png | Bin 0 -> 2074 bytes .../d_pixeldata_0_10_thumb.png | Bin 0 -> 1687 bytes .../d_pixeldata_0_11.png | Bin 0 -> 2198 bytes .../d_pixeldata_0_11_thumb.png | Bin 0 -> 1831 bytes .../poodle_trunk_parallel/d_pixie_04.png | Bin 0 -> 320 bytes .../d_pixie_04_thumb.png | Bin 0 -> 293 bytes .../poodle_trunk_parallel/d_volume_23.png | Bin 0 -> 1650 bytes .../d_volume_23_thumb.png | Bin 0 -> 992 bytes .../poodle_trunk_parallel/d_volume_24.png | Bin 0 -> 1629 bytes .../d_volume_24_thumb.png | Bin 0 -> 1079 bytes .../poodle_trunk_parallel/d_volume_33.png | Bin 0 -> 1238 bytes .../d_volume_33_thumb.png | Bin 0 -> 656 bytes .../poodle_trunk_parallel/d_volume_34.png | Bin 0 -> 1514 bytes .../d_volume_34_thumb.png | Bin 0 -> 841 bytes .../databases_ANALYZE.html | 84 + .../databases_ANALYZE_py.html | 113 + .../databases_ANSYS.html | 108 + .../databases_ANSYS_py.html | 217 ++ .../poodle_trunk_parallel/databases_CGNS.html | 204 + .../databases_CGNS_py.html | 389 ++ .../poodle_trunk_parallel/databases_Cale.html | 69 + .../databases_Cale_py.html | 65 + .../databases_Chombo.html | 73 + .../databases_Chombo_py.html | 101 + .../databases_Curve3D.html | 48 + .../databases_Curve3D_py.html | 157 + .../databases_EnSight.html | 102 + .../databases_EnSight_py.html | 84 + .../poodle_trunk_parallel/databases_FITS.html | 87 + .../databases_FITS_py.html | 124 + .../poodle_trunk_parallel/databases_FMS.html | 1156 ++++++ .../databases_FMS_py.html | 590 +++ .../databases_Fluent.html | 60 + .../databases_Fluent_py.html | 43 + .../poodle_trunk_parallel/databases_GDAL.html | 126 + .../databases_GDAL_py.html | 107 + .../databases_NASTRAN.html | 204 + .../databases_NASTRAN_py.html | 511 +++ .../databases_OpenFOAM.html | 210 ++ .../databases_OpenFOAM_py.html | 250 ++ .../databases_PATRAN.html | 120 + .../databases_PATRAN_py.html | 242 ++ .../databases_PLOT3D.html | 650 ++++ .../databases_PLOT3D_py.html | 217 ++ .../databases_ProteinDataBank.html | 252 ++ .../databases_ProteinDataBank_py.html | 366 ++ .../poodle_trunk_parallel/databases_RAW.html | 57 + .../databases_RAW_py.html | 94 + .../databases_SPCTH.html | 48 + .../databases_SPCTH_py.html | 36 + .../databases_Velodyne.html | 88 + .../databases_Velodyne_py.html | 79 + .../databases_WData.html | 60 + .../databases_WData_py.html | 58 + .../poodle_trunk_parallel/databases_Xmdv.html | 66 + .../databases_Xmdv_py.html | 105 + .../databases_Xolotl.html | 90 + .../databases_Xolotl_py.html | 47 + .../databases_activesource.html | 80 + .../databases_activesource_py.html | 82 + .../databases_adios2.html | 60 + .../databases_adios2_py.html | 115 + .../databases_avsucd.html | 60 + .../databases_avsucd_py.html | 41 + .../databases_blueprint.html | 3041 +++++++++++++++ .../databases_blueprint_axom_klee.html | 196 + .../databases_blueprint_axom_klee_py.html | 213 ++ .../databases_blueprint_export.html | 1122 ++++++ .../databases_blueprint_export_py.html | 818 +++++ .../databases_blueprint_py.html | 985 +++++ .../poodle_trunk_parallel/databases_bov.html | 423 +++ .../databases_bov_py.html | 205 ++ .../databases_boxlib.html | 80 + .../databases_boxlib_py.html | 119 + .../databases_chgcar.html | 120 + .../databases_chgcar_py.html | 156 + .../poodle_trunk_parallel/databases_claw.html | 54 + .../databases_claw_py.html | 65 + .../databases_closedatabase.html | 94 + .../databases_closedatabase_py.html | 108 + .../databases_correlation.html | 510 +++ .../databases_correlation_py.html | 215 ++ .../databases_curve.html | 60 + .../databases_curve_py.html | 53 + .../databases_ddcMD.html | 159 + .../databases_ddcMD_py.html | 112 + .../databases_empty_db.html | 40 + .../databases_empty_db_py.html | 28 + .../databases_exodus.html | 238 ++ .../databases_exodus_py.html | 272 ++ .../databases_export_db.html | 488 +++ .../databases_export_db_py.html | 611 +++ .../poodle_trunk_parallel/databases_ffp.html | 60 + .../databases_ffp_py.html | 260 ++ .../databases_flash.html | 42 + .../databases_flash_py.html | 46 + .../databases_global_node_ids.html | 96 + .../databases_global_node_ids_py.html | 91 + .../databases_h5part.html | 60 + .../databases_h5part_py.html | 64 + .../databases_history.html | 48 + .../databases_history_py.html | 47 + .../databases_image.html | 60 + .../databases_image_py.html | 90 + .../databases_imgvol.html | 78 + .../databases_imgvol_py.html | 67 + .../databases_kulllite.html | 84 + .../databases_kulllite_py.html | 89 + .../poodle_trunk_parallel/databases_lata.html | 126 + .../databases_lata_py.html | 134 + .../poodle_trunk_parallel/databases_leos.html | 66 + .../databases_leos_py.html | 86 + .../databases_lines.html | 62 + .../databases_lines_py.html | 79 + .../databases_metadata.html | 200 + .../databases_metadata_py.html | 112 + .../poodle_trunk_parallel/databases_mfem.html | 1980 ++++++++++ .../databases_mfem_py.html | 270 ++ .../poodle_trunk_parallel/databases_mili.html | 378 ++ .../databases_mili_py.html | 572 +++ .../databases_miranda.html | 108 + .../databases_miranda_py.html | 156 + .../poodle_trunk_parallel/databases_moab.html | 60 + .../databases_moab_py.html | 61 + .../databases_multi_format.html | 60 + .../databases_multi_format2.html | 42 + .../databases_multi_format2_py.html | 53 + .../databases_multi_format_py.html | 66 + .../databases_netcdf.html | 210 ++ .../databases_netcdf_py.html | 425 +++ .../poodle_trunk_parallel/databases_obj.html | 126 + .../databases_obj_py.html | 85 + .../databases_oldsilo.html | 48 + .../databases_oldsilo_py.html | 38 + .../databases_openPMD.html | 45 + .../databases_openPMD_py.html | 40 + .../databases_openexr.html | 78 + .../databases_openexr_py.html | 54 + .../databases_overlink.html | 108 + .../databases_overlink_py.html | 152 + .../databases_pdbdatabase.html | 348 ++ .../databases_pdbdatabase_py.html | 247 ++ .../databases_pixie.html | 92 + .../databases_pixie_py.html | 161 + .../databases_plaintext.html | 87 + .../databases_plaintext_py.html | 341 ++ .../poodle_trunk_parallel/databases_rect.html | 93 + .../databases_rect_py.html | 98 + .../databases_reopen.html | 261 ++ .../databases_reopen_py.html | 550 +++ .../poodle_trunk_parallel/databases_sami.html | 78 + .../databases_sami_py.html | 80 + .../databases_samrai.html | 294 ++ .../databases_samrai_py.html | 413 +++ .../databases_scale_mesh.html | 42 + .../databases_scale_mesh_py.html | 28 + .../databases_shapefile.html | 183 + .../databases_shapefile_py.html | 236 ++ .../poodle_trunk_parallel/databases_silo.html | 705 ++++ .../databases_silo_altdriver.html | 703 ++++ .../databases_silo_altdriver_py.html | 21 + .../databases_silo_datatypes.html | 79 + .../databases_silo_datatypes_py.html | 152 + .../databases_silo_py.html | 764 ++++ .../databases_singlemulti.html | 76 + .../databases_singlemulti_py.html | 116 + .../poodle_trunk_parallel/databases_sw4.html | 48 + .../databases_sw4_py.html | 50 + .../databases_tecplot.html | 192 + .../databases_tecplot_py.html | 323 ++ .../databases_timesliders.html | 256 ++ .../databases_timesliders_py.html | 247 ++ .../databases_uintah.html | 79 + .../databases_uintah_py.html | 66 + .../poodle_trunk_parallel/databases_unv.html | 78 + .../databases_unv_py.html | 206 ++ .../poodle_trunk_parallel/databases_vtk.html | 443 +++ .../databases_vtk_py.html | 494 +++ .../databases_wave_tv.html | 62 + .../databases_wave_tv_py.html | 88 + .../poodle_trunk_parallel/databases_xdmf.html | 339 ++ .../databases_xdmf_py.html | 448 +++ .../databases_xform_precision.html | 72 + .../databases_xform_precision_py.html | 86 + .../poodle_trunk_parallel/databases_xyz.html | 76 + .../databases_xyz_py.html | 81 + .../expressions_ghost_zoneid_expr.html | 58 + .../expressions_ghost_zoneid_expr_py.html | 46 + .../expressions_global_stats.html | 292 ++ .../expressions_global_stats_py.html | 130 + .../expressions_math_expr.html | 60 + .../expressions_math_expr_py.html | 50 + .../expressions_tensor_expr.html | 194 + .../expressions_tensor_expr_py.html | 262 ++ .../faulttolerance_badfile.html | 40 + .../faulttolerance_badfile_py.html | 34 + .../faulttolerance_checkmode.html | 60 + .../faulttolerance_checkmode_py.html | 111 + .../faulttolerance_savewindow.html | 40 + .../faulttolerance_savewindow_py.html | 57 + .../hybrid_cinema-a.html | 108 + .../hybrid_cinema-a_py.html | 214 ++ .../hybrid_cinema-c.html | 210 ++ .../hybrid_cinema-c_py.html | 258 ++ .../hybrid_cleanzonesonly.html | 120 + .../hybrid_cleanzonesonly_py.html | 135 + .../hybrid_clonefirstref.html | 72 + .../hybrid_clonefirstref_py.html | 62 + .../hybrid_conditional.html | 72 + .../hybrid_conditional_py.html | 96 + .../hybrid_conn_cmfe.html | 102 + .../hybrid_conn_cmfe_py.html | 138 + .../hybrid_coord_expr.html | 84 + .../hybrid_coord_expr_py.html | 65 + .../hybrid_curve_anim.html | 72 + .../hybrid_curve_anim_py.html | 77 + .../hybrid_curve_expressions.html | 63 + .../hybrid_curve_expressions_py.html | 50 + .../hybrid_cylindrical_radius.html | 96 + .../hybrid_cylindrical_radius_py.html | 232 ++ .../poodle_trunk_parallel/hybrid_ddf.html | 75 + .../poodle_trunk_parallel/hybrid_ddf_py.html | 172 + .../hybrid_defvar_anim.html | 54 + .../hybrid_defvar_anim_py.html | 61 + .../hybrid_expr2engine.html | 56 + .../hybrid_expr2engine_py.html | 67 + .../hybrid_exprList.html | 56 + .../hybrid_exprList_py.html | 65 + .../hybrid_expr_cmfe.html | 66 + .../hybrid_expr_cmfe_py.html | 66 + .../hybrid_expressions.html | 304 ++ .../hybrid_expressions_py.html | 464 +++ .../hybrid_field_operators.html | 144 + .../hybrid_field_operators_py.html | 258 ++ .../hybrid_ghost_node.html | 42 + .../hybrid_ghost_node_py.html | 45 + .../hybrid_image_proc.html | 54 + .../hybrid_image_proc_py.html | 34 + .../hybrid_keyframe.html | 501 +++ .../hybrid_keyframe_py.html | 544 +++ .../poodle_trunk_parallel/hybrid_lambda2.html | 54 + .../hybrid_lambda2_py.html | 53 + .../poodle_trunk_parallel/hybrid_lineout.html | 247 ++ .../hybrid_lineout_py.html | 661 ++++ .../hybrid_locktime.html | 124 + .../hybrid_locktime_py.html | 125 + .../poodle_trunk_parallel/hybrid_locus.html | 42 + .../hybrid_locus_py.html | 148 + .../hybrid_math_expr.html | 60 + .../hybrid_math_expr_py.html | 44 + .../poodle_trunk_parallel/hybrid_matsel.html | 54 + .../hybrid_matsel_py.html | 96 + .../poodle_trunk_parallel/hybrid_matvf.html | 120 + .../hybrid_matvf_py.html | 249 ++ .../hybrid_merge_tree.html | 108 + .../hybrid_merge_tree_py.html | 64 + .../hybrid_mesh_quality.html | 93 + .../hybrid_mesh_quality_py.html | 160 + .../poodle_trunk_parallel/hybrid_mir.html | 168 + .../hybrid_mir_cache.html | 48 + .../hybrid_mir_cache_py.html | 65 + .../poodle_trunk_parallel/hybrid_mir_py.html | 73 + .../hybrid_missingdata.html | 88 + .../hybrid_missingdata_py.html | 72 + .../hybrid_multivar.html | 60 + .../hybrid_multivar_py.html | 108 + .../hybrid_pos_cmfe.html | 108 + .../hybrid_pos_cmfe_py.html | 149 + .../hybrid_py_exprs.html | 78 + .../hybrid_py_exprs_py.html | 106 + .../poodle_trunk_parallel/hybrid_qcrit.html | 54 + .../hybrid_qcrit_py.html | 54 + .../poodle_trunk_parallel/hybrid_replace.html | 72 + .../hybrid_replace_py.html | 97 + .../poodle_trunk_parallel/hybrid_sil.html | 70 + .../poodle_trunk_parallel/hybrid_sil_py.html | 87 + .../hybrid_simplify_mixed.html | 72 + .../hybrid_simplify_mixed_py.html | 90 + .../poodle_trunk_parallel/hybrid_specmf.html | 48 + .../hybrid_specmf_py.html | 42 + .../poodle_trunk_parallel/hybrid_symm.html | 100 + .../poodle_trunk_parallel/hybrid_symm_py.html | 114 + .../hybrid_time_cmfe.html | 108 + .../hybrid_time_cmfe_py.html | 93 + .../hybrid_time_deriv_cmfe.html | 54 + .../hybrid_time_deriv_cmfe_py.html | 35 + .../hybrid_time_iteration.html | 54 + .../hybrid_time_iteration_py.html | 41 + .../hybrid_timelock.html | 209 ++ .../hybrid_timelock_py.html | 378 ++ .../poodle_trunk_parallel/hybrid_val4mat.html | 66 + .../hybrid_val4mat_py.html | 76 + .../poodle_trunk_parallel/hybrid_vtkm.html | 372 ++ .../poodle_trunk_parallel/hybrid_vtkm_py.html | 779 ++++ .../poodle_trunk_parallel/index.html | 2469 +++++++++++++ .../js/jquery-3.6.1.min.js | 2 + .../js/jquery.tablesorter.js | 1046 ++++++ .../poodle_trunk_parallel/js/purl.js | 271 ++ .../meshtype_arbpoly.html | 90 + .../meshtype_arbpoly_py.html | 124 + .../poodle_trunk_parallel/meshtype_csg.html | 78 + .../meshtype_csg_py.html | 177 + .../meshtype_degen_mesh.html | 84 + .../meshtype_degen_mesh_py.html | 260 ++ .../meshtype_emptydomains.html | 104 + .../meshtype_emptydomains_py.html | 132 + .../poodle_trunk_parallel/meshtype_globe.html | 72 + .../meshtype_globe_py.html | 85 + .../poodle_trunk_parallel/meshtype_point.html | 138 + .../meshtype_point_py.html | 174 + .../meshtype_rect3d.html | 48 + .../meshtype_rect3d_py.html | 80 + .../missingdata_0_04.html | 66 + .../operators_amr_stitch.html | 84 + .../operators_amr_stitch_py.html | 49 + .../poodle_trunk_parallel/operators_box.html | 84 + .../operators_box_py.html | 155 + .../operators_cart_proj.html | 60 + .../operators_cart_proj_py.html | 60 + .../poodle_trunk_parallel/operators_clip.html | 180 + .../operators_clip_py.html | 143 + .../operators_cracksclipper.html | 72 + .../operators_cracksclipper_py.html | 54 + .../operators_defer_expr.html | 114 + .../operators_defer_expr_py.html | 248 ++ .../operators_displace.html | 94 + .../operators_displace_py.html | 129 + .../operators_dual_mesh.html | 110 + .../operators_dual_mesh_py.html | 111 + .../operators_elevate.html | 132 + .../operators_elevate_py.html | 164 + .../operators_ex_surf.html | 56 + .../operators_ex_surf_py.html | 51 + .../operators_explode.html | 180 + .../operators_explode_py.html | 580 +++ .../operators_extrudeStacked.html | 339 ++ .../operators_extrudeStacked_py.html | 283 ++ .../operators_ic_geometry.html | 138 + .../operators_ic_geometry_py.html | 379 ++ .../operators_ic_integration.html | 102 + .../operators_ic_integration_py.html | 115 + .../operators_ic_pathlines.html | 86 + .../operators_ic_pathlines_py.html | 160 + .../operators_ic_pics.html | 1392 +++++++ .../operators_ic_pics_py.html | 114 + .../operators_ic_streamlines.html | 102 + .../operators_ic_streamlines_py.html | 220 ++ .../operators_ic_termination.html | 84 + .../operators_ic_termination_py.html | 91 + .../operators_indexselect.html | 273 ++ .../operators_indexselect_py.html | 621 ++++ .../operators_inverse_ghost_zone.html | 72 + .../operators_inverse_ghost_zone_py.html | 76 + .../operators_isovolume.html | 78 + .../operators_isovolume_py.html | 160 + .../poodle_trunk_parallel/operators_lcs.html | 147 + .../operators_lcs_ic_1.html | 66 + .../operators_lcs_ic_1_py.html | 17 + .../operators_lcs_ic_2.html | 66 + .../operators_lcs_ic_2_py.html | 17 + .../operators_lcs_lc_1.html | 66 + .../operators_lcs_lc_1_py.html | 17 + .../operators_lcs_lc_2.html | 66 + .../operators_lcs_lc_2_py.html | 17 + .../operators_lcs_py.html | 181 + .../operators_moveoperators.html | 114 + .../operators_moveoperators_py.html | 226 ++ .../operators_multires.html | 48 + .../operators_multires_py.html | 34 + .../operators_onionpeel.html | 486 +++ .../operators_onionpeel_py.html | 643 ++++ .../operators_operators.html | 78 + .../operators_operators_py.html | 141 + .../operators_persistent_particles.html | 72 + .../operators_persistent_particles_py.html | 173 + .../operators_radial_resample.html | 60 + .../operators_radial_resample_py.html | 135 + .../operators_reflect.html | 150 + .../operators_reflect_py.html | 343 ++ .../operators_remap.html | 264 ++ .../operators_remap_py.html | 133 + .../operators_resample.html | 72 + .../operators_resample_py.html | 124 + .../operators_revolve.html | 42 + .../operators_revolve_py.html | 35 + .../operators_slice.html | 297 ++ .../operators_slice_py.html | 590 +++ .../operators_sph_resample.html | 42 + .../operators_sph_resample_py.html | 51 + .../operators_tessellate.html | 162 + .../operators_tessellate_py.html | 286 ++ .../operators_threeslice.html | 54 + .../operators_threeslice_py.html | 49 + .../operators_threshold.html | 108 + .../operators_threshold_py.html | 275 ++ .../operators_transform.html | 96 + .../operators_transform_py.html | 228 ++ .../poodle_trunk_parallel/operators_tube.html | 72 + .../operators_tube_py.html | 64 + .../poodle_trunk_parallel/plots_contour.html | 244 ++ .../plots_contour_py.html | 183 + .../poodle_trunk_parallel/plots_curve.html | 351 ++ .../poodle_trunk_parallel/plots_curve_py.html | 488 +++ .../plots_filledboundary.html | 84 + .../plots_filledboundary_py.html | 110 + .../poodle_trunk_parallel/plots_label.html | 546 +++ .../poodle_trunk_parallel/plots_label_py.html | 1005 +++++ .../poodle_trunk_parallel/plots_mesh.html | 249 ++ .../poodle_trunk_parallel/plots_mesh_c.html | 249 ++ .../plots_mesh_c_py.html | 21 + .../poodle_trunk_parallel/plots_mesh_py.html | 446 +++ .../poodle_trunk_parallel/plots_molecule.html | 123 + .../plots_molecule_py.html | 242 ++ .../plots_multicolor.html | 201 + .../plots_multicolor_py.html | 229 ++ .../plots_parcoords.html | 129 + .../plots_parcoords_py.html | 196 + .../plots_pseudocolor.html | 429 +++ .../plots_pseudocolor_py.html | 556 +++ .../plots_ray_trace.html | 108 + .../plots_ray_trace_py.html | 220 ++ .../poodle_trunk_parallel/plots_scatter.html | 207 ++ .../plots_scatter_py.html | 343 ++ .../plots_singlecolor.html | 54 + .../plots_singlecolor_py.html | 77 + .../poodle_trunk_parallel/plots_subset.html | 135 + .../plots_subset_py.html | 190 + .../poodle_trunk_parallel/plots_surface.html | 96 + .../plots_surface_py.html | 101 + .../poodle_trunk_parallel/plots_tensor.html | 84 + .../plots_tensor_py.html | 161 + .../plots_truecolor.html | 42 + .../plots_truecolor_py.html | 21 + .../poodle_trunk_parallel/plots_vector.html | 150 + .../plots_vector_py.html | 244 ++ .../plots_volumePlot.html | 231 ++ .../plots_volumePlot_py.html | 663 ++++ .../plugins_databasesVsInstall.html | 40 + .../plugins_databasesVsInstall_py.html | 31 + .../plugins_operatorsVsInstall.html | 40 + .../plugins_operatorsVsInstall_py.html | 29 + .../plugins_plotsVsInstall.html | 40 + .../plugins_plotsVsInstall_py.html | 29 + .../queries_avg_value.html | 58 + .../queries_avg_value_py.html | 63 + .../queries_bestfitline.html | 94 + .../queries_bestfitline_py.html | 204 + .../queries_casetest.html | 40 + .../queries_casetest_py.html | 69 + .../queries_centroid.html | 88 + .../queries_centroid_py.html | 130 + .../queries_conncomp.html | 162 + .../queries_conncomp_py.html | 240 ++ .../queries_consistencyChecks.html | 64 + .../queries_consistencyChecks_py.html | 114 + .../queries_curvature.html | 54 + .../queries_curvature_py.html | 63 + .../queries_database.html | 100 + .../queries_database_py.html | 1083 ++++++ .../queries_error_queries.html | 100 + .../queries_error_queries_py.html | 89 + .../queries_gridinformation.html | 56 + .../queries_gridinformation_py.html | 43 + .../queries_hohlraum.html | 86 + .../queries_hohlraum_py.html | 112 + .../queries_kurtosis.html | 60 + .../queries_kurtosis_py.html | 49 + .../poodle_trunk_parallel/queries_l2norm.html | 56 + .../queries_l2norm_py.html | 107 + .../poodle_trunk_parallel/queries_length.html | 50 + .../queries_length_py.html | 58 + .../queries_line_scan.html | 428 +++ .../queries_line_scan_py.html | 203 + .../poodle_trunk_parallel/queries_pick.html | 284 ++ .../queries_pickNamedArgs.html | 90 + .../queries_pickNamedArgs_py.html | 242 ++ .../queries_pick_py.html | 3268 +++++++++++++++++ .../queries_pickarray.html | 86 + .../queries_pickarray_py.html | 137 + .../queries_pickcleanzonesonly.html | 48 + .../queries_pickcleanzonesonly_py.html | 57 + .../queries_py_queries.html | 44 + .../queries_py_queries_py.html | 40 + .../queries_queriesOverTime.html | 324 ++ .../queries_queriesOverTime_py.html | 1065 ++++++ .../queries_queryMultiWindow.html | 40 + .../queries_queryMultiWindow_py.html | 154 + .../queries_revolved_surface_area.html | 56 + .../queries_revolved_surface_area_py.html | 85 + .../poodle_trunk_parallel/queries_scf.html | 96 + .../poodle_trunk_parallel/queries_scf_py.html | 150 + .../queries_surface_area_over_time.html | 66 + .../queries_surface_area_over_time_py.html | 144 + .../queries_variable_sum_volume.html | 68 + .../queries_variable_sum_volume_py.html | 69 + .../queries_watertight.html | 44 + .../queries_watertight_py.html | 40 + .../queries_xrayimage.html | 1870 ++++++++++ .../queries_xrayimage_py.html | 1341 +++++++ .../quickrecipes_cl_args.html | 44 + .../quickrecipes_cl_args_py.html | 30 + .../quickrecipes_colortables.html | 72 + .../quickrecipes_colortables_py.html | 217 ++ .../quickrecipes_expressions.html | 42 + .../quickrecipes_expressions_py.html | 62 + .../quickrecipes_operators.html | 52 + .../quickrecipes_operators_py.html | 80 + .../quickrecipes_quantitative_operations.html | 116 + ...ickrecipes_quantitative_operations_py.html | 219 ++ .../quickrecipes_saving_images.html | 52 + .../quickrecipes_saving_images_py.html | 56 + .../quickrecipes_subsetting.html | 52 + .../quickrecipes_subsetting_py.html | 67 + .../quickrecipes_view.html | 60 + .../quickrecipes_view_py.html | 159 + ...quickrecipes_working_with_annotations.html | 76 + ...ckrecipes_working_with_annotations_py.html | 195 + .../quickrecipes_working_with_dbs.html | 68 + .../quickrecipes_working_with_dbs_py.html | 78 + .../quickrecipes_working_with_plots.html | 76 + .../quickrecipes_working_with_plots_py.html | 196 + .../rendering_annot_macros.html | 301 ++ .../rendering_annot_macros_py.html | 219 ++ .../rendering_annotation.html | 294 ++ .../rendering_annotation_py.html | 469 +++ .../rendering_axislabels.html | 150 + .../rendering_axislabels_py.html | 141 + .../rendering_axistitles.html | 120 + .../rendering_axistitles_py.html | 170 + .../rendering_bigdata.html | 54 + .../rendering_bigdata_py.html | 36 + .../rendering_colortexture.html | 66 + .../rendering_colortexture_py.html | 86 + .../rendering_evalcubic.html | 66 + .../rendering_evalcubic_py.html | 123 + .../rendering_image.html | 54 + .../rendering_image_py.html | 46 + .../rendering_legends.html | 435 +++ .../rendering_legends_py.html | 597 +++ .../rendering_lighting.html | 54 + .../rendering_lighting_py.html | 113 + .../rendering_line2d.html | 102 + .../rendering_line2d_py.html | 101 + .../rendering_line3d.html | 102 + .../rendering_line3d_py.html | 104 + .../rendering_offscreensave.html | 122 + .../rendering_offscreensave_py.html | 194 + .../rendering_ospray.html | 50 + .../rendering_ospray_py.html | 106 + .../rendering_pixeldata.html | 178 + .../rendering_pixeldata_py.html | 215 ++ .../rendering_pointGlyphing.html | 900 +++++ .../rendering_pointGlyphing_py.html | 65 + .../rendering_renderpoints.html | 444 +++ .../rendering_renderpoints_py.html | 347 ++ .../rendering_saveformats.html | 120 + .../rendering_saveformats_py.html | 272 ++ .../rendering_scalable.html | 117 + .../rendering_scalable2.html | 53 + .../rendering_scalable2_py.html | 113 + .../rendering_scalable_c.html | 117 + .../rendering_scalable_c_py.html | 21 + .../rendering_scalable_py.html | 392 ++ .../rendering_shadows.html | 54 + .../rendering_shadows_py.html | 55 + .../rendering_specular.html | 102 + .../rendering_specular_py.html | 124 + .../rendering_text2d.html | 108 + .../rendering_text2d_py.html | 123 + .../rendering_text3d.html | 102 + .../rendering_text3d_py.html | 103 + .../rendering_timeslider.html | 174 + .../rendering_timeslider_py.html | 162 + .../rendering_transparency.html | 132 + .../rendering_transparency_py.html | 315 ++ .../poodle_trunk_parallel/rendering_view.html | 249 ++ .../rendering_viewChange.html | 222 ++ .../rendering_viewChange_py.html | 450 +++ .../rendering_view_py.html | 382 ++ .../rendering_volume.html | 54 + .../rendering_volume_py.html | 113 + .../rendering_volume_rect_multiDomain.html | 85 + .../rendering_volume_rect_multiDomain_py.html | 95 + .../rendering_volume_rect_singleDomain.html | 99 + ...rendering_volume_rect_singleDomain_py.html | 111 + .../rendering_volume_ucd_multiDomain.html | 83 + .../rendering_volume_ucd_multiDomain_py.html | 105 + .../session_colortable.html | 42 + .../session_colortable_py.html | 34 + .../session_correlationsession.html | 92 + .../session_correlationsession_py.html | 95 + .../session_legendproperties.html | 52 + .../session_legendproperties_py.html | 48 + .../session_rect3d-contour.html | 42 + .../session_rect3d-contour_py.html | 25 + .../session_restorewithsources.html | 48 + .../session_restorewithsources_py.html | 42 + .../session_selection.html | 42 + .../session_selection_py.html | 29 + .../session_sessionexpression.html | 42 + .../session_sessionexpression_py.html | 27 + .../session_sessionview.html | 66 + .../session_sessionview_py.html | 55 + .../session_simplekeyframe.html | 130 + .../session_simplekeyframe_py.html | 78 + .../session_textannot.html | 66 + .../session_textannot_py.html | 38 + .../poodle_trunk_parallel/session_view3d.html | 42 + .../session_view3d_py.html | 29 + .../session_wavecontour.html | 42 + .../session_wavecontour_py.html | 29 + .../poodle_trunk_parallel/simulation_amr.html | 68 + .../simulation_amr_py.html | 58 + .../simulation_aresamr.html | 62 + .../simulation_aresamr_py.html | 48 + .../simulation_batch.html | 426 +++ .../simulation_batch_py.html | 393 ++ .../poodle_trunk_parallel/simulation_csg.html | 114 + .../simulation_csg_py.html | 64 + .../simulation_curve.html | 66 + .../simulation_curve_py.html | 61 + .../simulation_domainbounds.html | 56 + .../simulation_domainbounds_py.html | 47 + .../simulation_domainlist.html | 108 + .../simulation_domainlist_py.html | 125 + .../simulation_ghostcells.html | 194 + .../simulation_ghostcells_py.html | 84 + .../simulation_globalids.html | 196 + .../simulation_globalids_py.html | 218 ++ .../simulation_interleave.html | 188 + .../simulation_interleave_py.html | 86 + .../simulation_life.html | 58 + .../simulation_life_py.html | 43 + .../simulation_mandelbrot.html | 78 + .../simulation_mandelbrot_py.html | 77 + .../simulation_material.html | 62 + .../simulation_material_py.html | 59 + .../simulation_materialvar.html | 104 + .../simulation_materialvar_py.html | 58 + .../simulation_mesh.html | 62 + .../simulation_mesh_py.html | 53 + .../simulation_multiblock.html | 68 + .../simulation_multiblock_py.html | 56 + .../simulation_point.html | 92 + .../simulation_point_py.html | 79 + .../simulation_polyhedral.html | 68 + .../simulation_polyhedral_py.html | 64 + .../simulation_scalar.html | 56 + .../simulation_scalar_py.html | 57 + .../simulation_species.html | 137 + .../simulation_species_py.html | 83 + .../simulation_ucdcurve.html | 66 + .../simulation_ucdcurve_py.html | 72 + .../simulation_unstructured.html | 50 + .../simulation_unstructured_py.html | 44 + .../simulation_updateplots.html | 90 + .../simulation_updateplots_py.html | 89 + .../simulation_updateplots_session.html | 99 + .../simulation_updateplots_session_py.html | 88 + .../poodle_trunk_parallel/simulation_var.html | 56 + .../simulation_var_py.html | 62 + .../simulation_zerocopy.html | 285 ++ .../simulation_zerocopy_py.html | 178 + .../unit_annotation_objects.html | 44 + .../unit_annotation_objects_py.html | 30 + .../unit_atts_assign.html | 1782 +++++++++ .../unit_atts_assign_py.html | 1211 ++++++ .../unit_compiler_warnings.html | 36 + .../unit_compiler_warnings_py.html | 213 ++ .../unit_convert2to3.html | 44 + .../unit_convert2to3_py.html | 34 + .../unit_default_methods.html | 64 + .../unit_default_methods_py.html | 62 + .../poodle_trunk_parallel/unit_launcher.html | 120 + .../unit_launcher_py.html | 196 + .../poodle_trunk_parallel/unit_mrucache.html | 40 + .../unit_mrucache_py.html | 24 + .../unit_namescheme.html | 36 + .../unit_namescheme_py.html | 27 + .../poodle_trunk_parallel/unit_protocol.html | 36 + .../unit_protocol_py.html | 17 + .../unit_stringhelpers.html | 36 + .../unit_stringhelpers_py.html | 26 + .../unit_test_value_simple.html | 120 + .../unit_test_value_simple_py.html | 56 + .../poodle_trunk_parallel/unit_utility.html | 36 + .../unit_utility_py.html | 27 + .../poodle_trunk_parallel/zerocopy02.html | 31 + .../Pick3DTo2D.html | 1896 ++++++++++ .../avg_value_02.html | 31 + ...Output_spectra_topo_intensities_legacy.png | Bin 0 -> 1205 bytes ..._spectra_topo_intensities_legacy_thumb.png | Bin 0 -> 869 bytes ...Output_spectra_topo_intensities_modern.png | Bin 0 -> 1205 bytes ..._spectra_topo_intensities_modern_thumb.png | Bin 0 -> 868 bytes ...Output_spectra_topo_path_length_legacy.png | Bin 0 -> 1293 bytes ..._spectra_topo_path_length_legacy_thumb.png | Bin 0 -> 1041 bytes ...Output_spectra_topo_path_length_modern.png | Bin 0 -> 1273 bytes ..._spectra_topo_path_length_modern_thumb.png | Bin 0 -> 851 bytes ...Output_spectra_topo_intensities_legacy.png | Bin 0 -> 1186 bytes ..._spectra_topo_intensities_legacy_thumb.png | Bin 0 -> 716 bytes ...Output_spectra_topo_intensities_modern.png | Bin 0 -> 1209 bytes ..._spectra_topo_intensities_modern_thumb.png | Bin 0 -> 871 bytes ...Output_spectra_topo_path_length_legacy.png | Bin 0 -> 1272 bytes ..._spectra_topo_path_length_legacy_thumb.png | Bin 0 -> 850 bytes ...Output_spectra_topo_path_length_modern.png | Bin 0 -> 1289 bytes ..._spectra_topo_path_length_modern_thumb.png | Bin 0 -> 1019 bytes ...Output_spectra_topo_intensities_legacy.png | Bin 0 -> 1207 bytes ..._spectra_topo_intensities_legacy_thumb.png | Bin 0 -> 790 bytes ...Output_spectra_topo_intensities_modern.png | Bin 0 -> 1209 bytes ..._spectra_topo_intensities_modern_thumb.png | Bin 0 -> 818 bytes ...Output_spectra_topo_path_length_legacy.png | Bin 0 -> 1288 bytes ..._spectra_topo_path_length_legacy_thumb.png | Bin 0 -> 980 bytes ...Output_spectra_topo_path_length_modern.png | Bin 0 -> 1289 bytes ..._spectra_topo_path_length_modern_thumb.png | Bin 0 -> 949 bytes .../c_CGNS_NFace_Elements_01.png | Bin 0 -> 30133 bytes .../c_CGNS_NFace_Elements_01_thumb.png | Bin 0 -> 11094 bytes .../c_Chombo_1_00.png | Bin 0 -> 1698 bytes .../c_Chombo_1_00_thumb.png | Bin 0 -> 1897 bytes .../c_Chombo_2_00.png | Bin 0 -> 1157 bytes .../c_Chombo_2_00_thumb.png | Bin 0 -> 1452 bytes .../c_GDAL_0_02.png | Bin 0 -> 40007 bytes .../c_GDAL_0_02_thumb.png | Bin 0 -> 10627 bytes .../c_GDAL_1_02.png | Bin 0 -> 40007 bytes .../c_GDAL_1_02_thumb.png | Bin 0 -> 10627 bytes .../c_LOR_amr-quad_legacy_lor.png | Bin 0 -> 1046 bytes .../c_LOR_amr-quad_legacy_lor_thumb.png | Bin 0 -> 1022 bytes .../c_LOR_amr-quad_lor.png | Bin 0 -> 955 bytes .../c_LOR_amr-quad_lor_thumb.png | Bin 0 -> 457 bytes .../c_LOR_beam-quad-nurbs_legacy_lor.png | Bin 0 -> 925 bytes ...c_LOR_beam-quad-nurbs_legacy_lor_thumb.png | Bin 0 -> 410 bytes .../c_LOR_beam-quad-nurbs_lor.png | Bin 0 -> 928 bytes .../c_LOR_beam-quad-nurbs_lor_thumb.png | Bin 0 -> 391 bytes .../c_LOR_beam-quad_legacy_lor.png | Bin 0 -> 925 bytes .../c_LOR_beam-quad_legacy_lor_thumb.png | Bin 0 -> 410 bytes .../c_LOR_beam-quad_lor.png | Bin 0 -> 928 bytes .../c_LOR_beam-quad_lor_thumb.png | Bin 0 -> 391 bytes .../c_LOR_beam-tri_legacy_lor.png | Bin 0 -> 1110 bytes .../c_LOR_beam-tri_legacy_lor_thumb.png | Bin 0 -> 610 bytes .../c_LOR_beam-tri_lor.png | Bin 0 -> 928 bytes .../c_LOR_beam-tri_lor_thumb.png | Bin 0 -> 391 bytes .../c_LOR_disc-nurbs_legacy_lor.png | Bin 0 -> 1599 bytes .../c_LOR_disc-nurbs_legacy_lor_thumb.png | Bin 0 -> 780 bytes .../c_LOR_disc-nurbs_lor.png | Bin 0 -> 922 bytes .../c_LOR_disc-nurbs_lor_thumb.png | Bin 0 -> 338 bytes .../c_LOR_inline-quad_legacy_lor.png | Bin 0 -> 1003 bytes .../c_LOR_inline-quad_legacy_lor_thumb.png | Bin 0 -> 762 bytes .../c_LOR_inline-quad_lor.png | Bin 0 -> 922 bytes .../c_LOR_inline-quad_lor_thumb.png | Bin 0 -> 338 bytes .../c_LOR_inline-tri_legacy_lor.png | Bin 0 -> 2734 bytes .../c_LOR_inline-tri_legacy_lor_thumb.png | Bin 0 -> 1517 bytes .../c_LOR_inline-tri_lor.png | Bin 0 -> 922 bytes .../c_LOR_inline-tri_lor_thumb.png | Bin 0 -> 338 bytes .../c_LOR_periodic-square_legacy_lor.png | Bin 0 -> 969 bytes ...c_LOR_periodic-square_legacy_lor_thumb.png | Bin 0 -> 473 bytes .../c_LOR_periodic-square_lor.png | Bin 0 -> 969 bytes .../c_LOR_periodic-square_lor_thumb.png | Bin 0 -> 473 bytes .../c_LOR_square-disc-nurbs_legacy_lor.png | Bin 0 -> 1855 bytes ...LOR_square-disc-nurbs_legacy_lor_thumb.png | Bin 0 -> 864 bytes .../c_LOR_square-disc-nurbs_lor.png | Bin 0 -> 957 bytes .../c_LOR_square-disc-nurbs_lor_thumb.png | Bin 0 -> 468 bytes .../c_LOR_square-disc-p2_legacy_lor.png | Bin 0 -> 6529 bytes .../c_LOR_square-disc-p2_legacy_lor_thumb.png | Bin 0 -> 7490 bytes .../c_LOR_square-disc-p2_lor.png | Bin 0 -> 1348 bytes .../c_LOR_square-disc-p2_lor_thumb.png | Bin 0 -> 965 bytes .../c_LOR_square-disc-p3_legacy_lor.png | Bin 0 -> 6547 bytes .../c_LOR_square-disc-p3_legacy_lor_thumb.png | Bin 0 -> 7414 bytes .../c_LOR_square-disc-p3_lor.png | Bin 0 -> 1348 bytes .../c_LOR_square-disc-p3_lor_thumb.png | Bin 0 -> 965 bytes .../c_LOR_square-disc_legacy_lor.png | Bin 0 -> 6544 bytes .../c_LOR_square-disc_legacy_lor_thumb.png | Bin 0 -> 7500 bytes .../c_LOR_square-disc_lor.png | Bin 0 -> 1348 bytes .../c_LOR_square-disc_lor_thumb.png | Bin 0 -> 965 bytes .../c_Lineout3d.png | Bin 0 -> 18985 bytes .../c_Lineout3d_thumb.png | Bin 0 -> 6746 bytes .../c_LineoutSAMRAI.png | Bin 0 -> 4243 bytes .../c_LineoutSAMRAI_thumb.png | Bin 0 -> 4178 bytes .../c_Mixed_braid_2d.png | Bin 0 -> 17569 bytes .../c_Mixed_braid_2d_thumb.png | Bin 0 -> 7104 bytes .../c_Mixed_offsets_2d.png | Bin 0 -> 5675 bytes .../c_Mixed_offsets_2d_thumb.png | Bin 0 -> 3207 bytes .../c_Mixed_tet_quad_2d.png | Bin 0 -> 22812 bytes .../c_Mixed_tet_quad_2d_thumb.png | Bin 0 -> 8948 bytes .../c_Mixed_topo_polygonal_2d.png | Bin 0 -> 2383 bytes .../c_Mixed_topo_polygonal_2d_thumb.png | Bin 0 -> 1664 bytes .../c_Mixed_topo_simple_2d.png | Bin 0 -> 2385 bytes .../c_Mixed_topo_simple_2d_thumb.png | Bin 0 -> 1880 bytes .../c_Pick3DTo2D.txt | 374 ++ .../c_Polytopal_mesh_missing_offsets.png | Bin 0 -> 942 bytes ...c_Polytopal_mesh_missing_offsets_thumb.png | Bin 0 -> 498 bytes .../c_amr02.png | Bin 0 -> 1558 bytes .../c_amr02_thumb.png | Bin 0 -> 2090 bytes .../c_amr03.png | Bin 0 -> 1526 bytes .../c_amr03_thumb.png | Bin 0 -> 2723 bytes .../c_annot_macros_tafile_2.png | Bin 0 -> 3651 bytes .../c_annot_macros_tafile_2_thumb.png | Bin 0 -> 2292 bytes .../c_annot_macros_tafile_6.png | Bin 0 -> 3628 bytes .../c_annot_macros_tafile_6_thumb.png | Bin 0 -> 2160 bytes .../c_avg_value_02.txt | 1 + .../c_bestline_3_00.png | Bin 0 -> 4537 bytes .../c_bestline_3_00_thumb.png | Bin 0 -> 3969 bytes .../c_bestline_3_02.png | Bin 0 -> 4282 bytes .../c_bestline_3_02_thumb.png | Bin 0 -> 3354 bytes .../c_bestline_3_03.png | Bin 0 -> 4697 bytes .../c_bestline_3_03_thumb.png | Bin 0 -> 3619 bytes .../c_biquadratic_quad_field_01.png | Bin 0 -> 10939 bytes .../c_biquadratic_quad_field_01_thumb.png | Bin 0 -> 3273 bytes .../c_biquadratic_quad_field_02.png | Bin 0 -> 12709 bytes .../c_biquadratic_quad_field_02_thumb.png | Bin 0 -> 4373 bytes .../c_biquadratic_quad_field_03.png | Bin 0 -> 15708 bytes .../c_biquadratic_quad_field_03_thumb.png | Bin 0 -> 4844 bytes .../c_blueprint_1d_curve_element_assoc.png | Bin 0 -> 2169 bytes ...blueprint_1d_curve_element_assoc_thumb.png | Bin 0 -> 2579 bytes .../c_blueprint_2d_hdf5_0_8_2_quads_mesh.png | Bin 0 -> 1238 bytes ...ueprint_2d_hdf5_0_8_2_quads_mesh_thumb.png | Bin 0 -> 861 bytes .../c_blueprint_2d_hdf5_0_8_2_rect_mesh.png | Bin 0 -> 1238 bytes ...lueprint_2d_hdf5_0_8_2_rect_mesh_thumb.png | Bin 0 -> 861 bytes .../c_blueprint_2d_hdf5_0_8_2_struct_mesh.png | Bin 0 -> 1238 bytes ...eprint_2d_hdf5_0_8_2_struct_mesh_thumb.png | Bin 0 -> 861 bytes .../c_blueprint_2d_hdf5_0_8_2_tris_mesh.png | Bin 0 -> 3613 bytes ...lueprint_2d_hdf5_0_8_2_tris_mesh_thumb.png | Bin 0 -> 3963 bytes ...c_blueprint_2d_hdf5_0_8_2_uniform_mesh.png | Bin 0 -> 1238 bytes ...print_2d_hdf5_0_8_2_uniform_mesh_thumb.png | Bin 0 -> 861 bytes .../c_blueprint_2d_hdf5_quads_mesh.png | Bin 0 -> 1248 bytes .../c_blueprint_2d_hdf5_quads_mesh_thumb.png | Bin 0 -> 1320 bytes .../c_blueprint_2d_hdf5_rect_mesh.png | Bin 0 -> 1248 bytes .../c_blueprint_2d_hdf5_rect_mesh_thumb.png | Bin 0 -> 1320 bytes .../c_blueprint_2d_hdf5_struct_mesh.png | Bin 0 -> 1248 bytes .../c_blueprint_2d_hdf5_struct_mesh_thumb.png | Bin 0 -> 1320 bytes .../c_blueprint_2d_hdf5_tris_mesh.png | Bin 0 -> 3394 bytes .../c_blueprint_2d_hdf5_tris_mesh_thumb.png | Bin 0 -> 2538 bytes .../c_blueprint_2d_hdf5_uniform_mesh.png | Bin 0 -> 1248 bytes ...c_blueprint_2d_hdf5_uniform_mesh_thumb.png | Bin 0 -> 1320 bytes .../c_blueprint_2d_json_quads_mesh.png | Bin 0 -> 1006 bytes .../c_blueprint_2d_json_quads_mesh_thumb.png | Bin 0 -> 822 bytes .../c_blueprint_2d_json_rect_mesh.png | Bin 0 -> 1006 bytes .../c_blueprint_2d_json_rect_mesh_thumb.png | Bin 0 -> 822 bytes .../c_blueprint_2d_json_struct_mesh.png | Bin 0 -> 1006 bytes .../c_blueprint_2d_json_struct_mesh_thumb.png | Bin 0 -> 822 bytes .../c_blueprint_2d_json_tris_mesh.png | Bin 0 -> 2722 bytes .../c_blueprint_2d_json_tris_mesh_thumb.png | Bin 0 -> 1719 bytes .../c_blueprint_2d_json_uniform_mesh.png | Bin 0 -> 1006 bytes ...c_blueprint_2d_json_uniform_mesh_thumb.png | Bin 0 -> 822 bytes .../c_blueprint_2d_sidre_hdf5_quads_mesh.png | Bin 0 -> 1248 bytes ...ueprint_2d_sidre_hdf5_quads_mesh_thumb.png | Bin 0 -> 1320 bytes .../c_blueprint_2d_sidre_hdf5_rect_mesh.png | Bin 0 -> 1248 bytes ...lueprint_2d_sidre_hdf5_rect_mesh_thumb.png | Bin 0 -> 1320 bytes .../c_blueprint_2d_sidre_hdf5_struct_mesh.png | Bin 0 -> 1248 bytes ...eprint_2d_sidre_hdf5_struct_mesh_thumb.png | Bin 0 -> 1320 bytes .../c_blueprint_2d_sidre_hdf5_tris_mesh.png | Bin 0 -> 3394 bytes ...lueprint_2d_sidre_hdf5_tris_mesh_thumb.png | Bin 0 -> 2538 bytes ...c_blueprint_2d_sidre_hdf5_uniform_mesh.png | Bin 0 -> 1248 bytes ...print_2d_sidre_hdf5_uniform_mesh_thumb.png | Bin 0 -> 1320 bytes .../c_blueprint_2d_yaml_0_8_2_quads_mesh.png | Bin 0 -> 1238 bytes ...ueprint_2d_yaml_0_8_2_quads_mesh_thumb.png | Bin 0 -> 861 bytes .../c_blueprint_2d_yaml_0_8_2_rect_mesh.png | Bin 0 -> 1238 bytes ...lueprint_2d_yaml_0_8_2_rect_mesh_thumb.png | Bin 0 -> 861 bytes .../c_blueprint_2d_yaml_0_8_2_struct_mesh.png | Bin 0 -> 1238 bytes ...eprint_2d_yaml_0_8_2_struct_mesh_thumb.png | Bin 0 -> 861 bytes .../c_blueprint_2d_yaml_0_8_2_tris_mesh.png | Bin 0 -> 3613 bytes ...lueprint_2d_yaml_0_8_2_tris_mesh_thumb.png | Bin 0 -> 3963 bytes ...c_blueprint_2d_yaml_0_8_2_uniform_mesh.png | Bin 0 -> 1238 bytes ...print_2d_yaml_0_8_2_uniform_mesh_thumb.png | Bin 0 -> 861 bytes ...eriodic_hexagon_conduit_bin_legacy_lor.png | Bin 0 -> 3169 bytes ...c_hexagon_conduit_bin_legacy_lor_thumb.png | Bin 0 -> 5294 bytes ...em_2d_periodic_hexagon_conduit_bin_lor.png | Bin 0 -> 3169 bytes ...periodic_hexagon_conduit_bin_lor_thumb.png | Bin 0 -> 5294 bytes ...riodic_hexagon_conduit_json_legacy_lor.png | Bin 0 -> 3169 bytes ..._hexagon_conduit_json_legacy_lor_thumb.png | Bin 0 -> 5294 bytes ...m_2d_periodic_hexagon_conduit_json_lor.png | Bin 0 -> 3169 bytes ...eriodic_hexagon_conduit_json_lor_thumb.png | Bin 0 -> 5294 bytes ...em_2d_periodic_hexagon_hdf5_legacy_lor.png | Bin 0 -> 3169 bytes ...periodic_hexagon_hdf5_legacy_lor_thumb.png | Bin 0 -> 5294 bytes ...rint_mfem_2d_periodic_hexagon_hdf5_lor.png | Bin 0 -> 3169 bytes ...fem_2d_periodic_hexagon_hdf5_lor_thumb.png | Bin 0 -> 5294 bytes ...em_2d_periodic_hexagon_json_legacy_lor.png | Bin 0 -> 3169 bytes ...periodic_hexagon_json_legacy_lor_thumb.png | Bin 0 -> 5294 bytes ...rint_mfem_2d_periodic_hexagon_json_lor.png | Bin 0 -> 3169 bytes ...fem_2d_periodic_hexagon_json_lor_thumb.png | Bin 0 -> 5294 bytes ..._blueprint_mfem_2d_tri_beam_legacy_lor.png | Bin 0 -> 1110 bytes ...rint_mfem_2d_tri_beam_legacy_lor_thumb.png | Bin 0 -> 610 bytes .../c_blueprint_mfem_2d_tri_beam_lor.png | Bin 0 -> 928 bytes ...c_blueprint_mfem_2d_tri_beam_lor_thumb.png | Bin 0 -> 391 bytes ...rint_poly_2d_hdf5_0_8_2_mesh_topo_mesh.png | Bin 0 -> 2432 bytes ...oly_2d_hdf5_0_8_2_mesh_topo_mesh_thumb.png | Bin 0 -> 1825 bytes ...rint_poly_2d_yaml_0_8_2_mesh_topo_mesh.png | Bin 0 -> 2432 bytes ...oly_2d_yaml_0_8_2_mesh_topo_mesh_thumb.png | Bin 0 -> 1825 bytes ...eprint_rz_cyl_rectilinear.root_plot_2D.png | Bin 0 -> 987 bytes ..._rz_cyl_rectilinear.root_plot_2D_thumb.png | Bin 0 -> 765 bytes ...l_rectilinear.root_plot_revolved_to_3D.png | Bin 0 -> 2639 bytes ...ilinear.root_plot_revolved_to_3D_thumb.png | Bin 0 -> 2414 bytes ...ueprint_rz_cyl_structured.root_plot_2D.png | Bin 0 -> 987 bytes ...t_rz_cyl_structured.root_plot_2D_thumb.png | Bin 0 -> 765 bytes ..._blueprint_rz_cyl_uniform.root_plot_2D.png | Bin 0 -> 987 bytes ...rint_rz_cyl_uniform.root_plot_2D_thumb.png | Bin 0 -> 765 bytes ...print_rz_cyl_unstructured.root_plot_2D.png | Bin 0 -> 987 bytes ...rz_cyl_unstructured.root_plot_2D_thumb.png | Bin 0 -> 765 bytes .../c_bov_1_05.png | Bin 0 -> 15401 bytes .../c_bov_1_05_thumb.png | Bin 0 -> 5836 bytes .../c_bov_2_05.png | Bin 0 -> 15401 bytes .../c_bov_2_05_thumb.png | Bin 0 -> 5836 bytes .../c_bov_3_05.png | Bin 0 -> 15401 bytes .../c_bov_3_05_thumb.png | Bin 0 -> 5836 bytes .../c_bov_4_05.png | Bin 0 -> 15401 bytes .../c_bov_4_05_thumb.png | Bin 0 -> 5836 bytes .../c_bov_5_05.png | Bin 0 -> 15401 bytes .../c_bov_5_05_thumb.png | Bin 0 -> 5836 bytes .../c_bov_6_05.png | Bin 0 -> 15401 bytes .../c_bov_6_05_thumb.png | Bin 0 -> 5836 bytes .../c_bov_7_05.png | Bin 0 -> 15401 bytes .../c_bov_7_05_thumb.png | Bin 0 -> 5836 bytes .../c_bov_8_05.png | Bin 0 -> 15401 bytes .../c_bov_8_05_thumb.png | Bin 0 -> 5836 bytes .../c_boxlib_01.png | Bin 0 -> 13501 bytes .../c_boxlib_01_thumb.png | Bin 0 -> 9774 bytes .../c_boxlib_02.png | Bin 0 -> 7793 bytes .../c_boxlib_02_thumb.png | Bin 0 -> 9004 bytes .../c_boxlib_03.png | Bin 0 -> 13464 bytes .../c_boxlib_03_thumb.png | Bin 0 -> 9718 bytes .../c_boxlib_05.png | Bin 0 -> 4007 bytes .../c_boxlib_05_thumb.png | Bin 0 -> 3152 bytes .../c_bp_sparse_topos_example.png | Bin 0 -> 6541 bytes .../c_bp_sparse_topos_example_thumb.png | Bin 0 -> 2303 bytes .../c_chgcar_05.png | Bin 0 -> 47844 bytes .../c_chgcar_05_thumb.png | Bin 0 -> 7118 bytes .../c_chgcar_07.png | Bin 0 -> 49558 bytes .../c_chgcar_07_thumb.png | Bin 0 -> 7396 bytes .../c_chgcar_11.png | Bin 0 -> 16210 bytes .../c_chgcar_11_thumb.png | Bin 0 -> 8816 bytes .../c_compositing_01.png | Bin 0 -> 342 bytes .../c_compositing_01_thumb.png | Bin 0 -> 109 bytes .../c_contour_multicolor_02.png | Bin 0 -> 63642 bytes .../c_contour_multicolor_02_thumb.png | Bin 0 -> 12820 bytes .../c_csg_02.png | Bin 0 -> 10353 bytes .../c_csg_02_thumb.png | Bin 0 -> 3696 bytes .../c_curve2Expr.png | Bin 0 -> 2363 bytes .../c_curve2Expr_thumb.png | Bin 0 -> 1919 bytes .../c_curve_anim2.png | Bin 0 -> 3254 bytes .../c_curve_anim2_thumb.png | Bin 0 -> 3207 bytes .../c_curve_anim3.png | Bin 0 -> 2412 bytes .../c_curve_anim3_thumb.png | Bin 0 -> 2424 bytes .../c_curve_scale_00.png | Bin 0 -> 1616 bytes .../c_curve_scale_00_thumb.png | Bin 0 -> 1593 bytes .../c_curve_scale_01.png | Bin 0 -> 1850 bytes .../c_curve_scale_01_thumb.png | Bin 0 -> 1882 bytes .../c_curve_scale_02.png | Bin 0 -> 1907 bytes .../c_curve_scale_02_thumb.png | Bin 0 -> 1927 bytes .../c_curve_scale_03.png | Bin 0 -> 1907 bytes .../c_curve_scale_03_thumb.png | Bin 0 -> 1927 bytes .../c_ddcMD_2_01.png | Bin 0 -> 9077 bytes .../c_ddcMD_2_01_thumb.png | Bin 0 -> 6854 bytes .../c_ddcMD_2_02.png | Bin 0 -> 7422 bytes .../c_ddcMD_2_02_thumb.png | Bin 0 -> 4935 bytes .../c_ddcMD_2_03.png | Bin 0 -> 9558 bytes .../c_ddcMD_2_03_thumb.png | Bin 0 -> 5651 bytes .../c_ddcMD_2_04.png | Bin 0 -> 10241 bytes .../c_ddcMD_2_04_thumb.png | Bin 0 -> 5697 bytes .../c_ddcMD_2_05.png | Bin 0 -> 8154 bytes .../c_ddcMD_2_05_thumb.png | Bin 0 -> 4652 bytes .../c_ddcMD_2_06.png | Bin 0 -> 16006 bytes .../c_ddcMD_2_06_thumb.png | Bin 0 -> 7491 bytes .../c_ddcMD_2_07.png | Bin 0 -> 15074 bytes .../c_ddcMD_2_07_thumb.png | Bin 0 -> 7051 bytes .../c_ddcMD_2_08.png | Bin 0 -> 15701 bytes .../c_ddcMD_2_08_thumb.png | Bin 0 -> 7302 bytes .../c_ddcMD_2_09.png | Bin 0 -> 16625 bytes .../c_ddcMD_2_09_thumb.png | Bin 0 -> 7600 bytes .../c_ddcMD_2_10.png | Bin 0 -> 18459 bytes .../c_ddcMD_2_10_thumb.png | Bin 0 -> 8503 bytes .../c_ddcMD_2_11.png | Bin 0 -> 20197 bytes .../c_ddcMD_2_11_thumb.png | Bin 0 -> 9771 bytes .../c_ddf_spatial_1d.png | Bin 0 -> 1814 bytes .../c_ddf_spatial_1d_thumb.png | Bin 0 -> 1596 bytes .../c_exodus_11.png | Bin 0 -> 26540 bytes .../c_exodus_11_thumb.png | Bin 0 -> 14492 bytes .../c_exodus_12.png | Bin 0 -> 26526 bytes .../c_exodus_12_thumb.png | Bin 0 -> 14494 bytes .../c_exodus_17.png | Bin 0 -> 2948 bytes .../c_exodus_17_thumb.png | Bin 0 -> 2931 bytes .../c_explode_repeat_labels_00.png | Bin 0 -> 17076 bytes .../c_explode_repeat_labels_00_thumb.png | Bin 0 -> 5892 bytes .../c_explode_tire_00.png | Bin 0 -> 13622 bytes .../c_explode_tire_00_thumb.png | Bin 0 -> 3035 bytes .../c_export_db_2_00.png | Bin 0 -> 13786 bytes .../c_export_db_2_00_thumb.png | Bin 0 -> 3742 bytes .../c_export_db_2_01.png | Bin 0 -> 9294 bytes .../c_export_db_2_01_thumb.png | Bin 0 -> 3360 bytes .../c_export_db_2_02.png | Bin 0 -> 10125 bytes .../c_export_db_2_02_thumb.png | Bin 0 -> 3531 bytes .../c_export_db_2_03.png | Bin 0 -> 9312 bytes .../c_export_db_2_03_thumb.png | Bin 0 -> 3283 bytes .../c_export_db_2_04.png | Bin 0 -> 15087 bytes .../c_export_db_2_04_thumb.png | Bin 0 -> 4081 bytes .../c_export_db_2_05.png | Bin 0 -> 16343 bytes .../c_export_db_2_05_thumb.png | Bin 0 -> 4549 bytes .../c_export_db_2_06.png | Bin 0 -> 14818 bytes .../c_export_db_2_06_thumb.png | Bin 0 -> 4087 bytes .../c_export_db_2_07.png | Bin 0 -> 12404 bytes .../c_export_db_2_07_thumb.png | Bin 0 -> 4322 bytes .../c_export_db_2_08.png | Bin 0 -> 5222 bytes .../c_export_db_2_08_thumb.png | Bin 0 -> 4567 bytes .../c_export_db_2_09.png | Bin 0 -> 10344 bytes .../c_export_db_2_09_thumb.png | Bin 0 -> 4764 bytes .../c_export_db_2_10.png | Bin 0 -> 9294 bytes .../c_export_db_2_10_thumb.png | Bin 0 -> 3360 bytes .../c_export_db_2_11.png | Bin 0 -> 10125 bytes .../c_export_db_2_11_thumb.png | Bin 0 -> 3531 bytes .../c_export_db_2_12.png | Bin 0 -> 9312 bytes .../c_export_db_2_12_thumb.png | Bin 0 -> 3283 bytes .../c_export_db_2_13.png | Bin 0 -> 15087 bytes .../c_export_db_2_13_thumb.png | Bin 0 -> 4081 bytes .../c_export_db_2_14.png | Bin 0 -> 16343 bytes .../c_export_db_2_14_thumb.png | Bin 0 -> 4549 bytes .../c_export_db_2_15.png | Bin 0 -> 14818 bytes .../c_export_db_2_15_thumb.png | Bin 0 -> 4087 bytes .../c_export_db_2_16.png | Bin 0 -> 12404 bytes .../c_export_db_2_16_thumb.png | Bin 0 -> 4322 bytes .../c_export_db_2_17.png | Bin 0 -> 5222 bytes .../c_export_db_2_17_thumb.png | Bin 0 -> 4567 bytes .../c_export_db_2_18.png | Bin 0 -> 10344 bytes .../c_export_db_2_18_thumb.png | Bin 0 -> 4764 bytes .../c_hf_2_1.png | Bin 0 -> 1288 bytes .../c_hf_2_1_thumb.png | Bin 0 -> 772 bytes .../c_hf_4_1.png | Bin 0 -> 1288 bytes .../c_hf_4_1_thumb.png | Bin 0 -> 772 bytes .../c_ic_geometry_01.png | Bin 0 -> 10816 bytes .../c_ic_geometry_01_thumb.png | Bin 0 -> 3970 bytes .../c_ic_geometry_02.png | Bin 0 -> 13340 bytes .../c_ic_geometry_02_thumb.png | Bin 0 -> 4392 bytes .../c_ic_geometry_03.png | Bin 0 -> 13340 bytes .../c_ic_geometry_03_thumb.png | Bin 0 -> 4392 bytes .../c_ic_geometry_04.png | Bin 0 -> 13340 bytes .../c_ic_geometry_04_thumb.png | Bin 0 -> 4392 bytes .../c_ic_geometry_05.png | Bin 0 -> 16481 bytes .../c_ic_geometry_05_thumb.png | Bin 0 -> 4665 bytes .../c_ic_geometry_06.png | Bin 0 -> 16481 bytes .../c_ic_geometry_06_thumb.png | Bin 0 -> 4665 bytes .../c_ic_geometry_07.png | Bin 0 -> 12275 bytes .../c_ic_geometry_07_thumb.png | Bin 0 -> 4369 bytes .../c_ic_geometry_08.png | Bin 0 -> 12275 bytes .../c_ic_geometry_08_thumb.png | Bin 0 -> 4369 bytes .../c_ic_geometry_09.png | Bin 0 -> 14915 bytes .../c_ic_geometry_09_thumb.png | Bin 0 -> 4973 bytes .../c_ic_geometry_10.png | Bin 0 -> 14864 bytes .../c_ic_geometry_10_thumb.png | Bin 0 -> 4964 bytes .../c_ic_geometry_11.png | Bin 0 -> 14864 bytes .../c_ic_geometry_11_thumb.png | Bin 0 -> 4964 bytes .../c_ic_geometry_12.png | Bin 0 -> 14864 bytes .../c_ic_geometry_12_thumb.png | Bin 0 -> 4964 bytes .../c_ic_geometry_13.png | Bin 0 -> 14149 bytes .../c_ic_geometry_13_thumb.png | Bin 0 -> 5051 bytes .../c_ic_geometry_14.png | Bin 0 -> 17012 bytes .../c_ic_geometry_14_thumb.png | Bin 0 -> 5666 bytes .../c_ic_integration_09.png | Bin 0 -> 5115 bytes .../c_ic_integration_09_thumb.png | Bin 0 -> 3014 bytes .../c_ic_integration_10.png | Bin 0 -> 14747 bytes .../c_ic_integration_10_thumb.png | Bin 0 -> 5315 bytes .../c_ic_streamlines_03.png | Bin 0 -> 19571 bytes .../c_ic_streamlines_03_thumb.png | Bin 0 -> 5359 bytes .../c_ic_streamlines_04.png | Bin 0 -> 19710 bytes .../c_ic_streamlines_04_thumb.png | Bin 0 -> 5259 bytes .../c_ic_streamlines_05.png | Bin 0 -> 20964 bytes .../c_ic_streamlines_05_thumb.png | Bin 0 -> 5534 bytes .../c_ic_streamlines_08.png | Bin 0 -> 19583 bytes .../c_ic_streamlines_08_thumb.png | Bin 0 -> 5340 bytes .../c_input_mesh_amr-quad_boundary_topo.png | Bin 0 -> 956 bytes ...nput_mesh_amr-quad_boundary_topo_thumb.png | Bin 0 -> 464 bytes .../c_input_mesh_amr-quad_mres_0000.png | Bin 0 -> 1105 bytes .../c_input_mesh_amr-quad_mres_0000_thumb.png | Bin 0 -> 1436 bytes .../c_input_mesh_amr-quad_mres_0005.png | Bin 0 -> 1105 bytes .../c_input_mesh_amr-quad_mres_0005_thumb.png | Bin 0 -> 1436 bytes ...put_mesh_beam-quad-nurbs_boundary_topo.png | Bin 0 -> 963 bytes ...sh_beam-quad-nurbs_boundary_topo_thumb.png | Bin 0 -> 495 bytes ...c_input_mesh_beam-quad-nurbs_mres_0000.png | Bin 0 -> 944 bytes ...t_mesh_beam-quad-nurbs_mres_0000_thumb.png | Bin 0 -> 630 bytes ...c_input_mesh_beam-quad-nurbs_mres_0020.png | Bin 0 -> 944 bytes ...t_mesh_beam-quad-nurbs_mres_0020_thumb.png | Bin 0 -> 630 bytes .../c_input_mesh_beam-quad_boundary_topo.png | Bin 0 -> 963 bytes ...put_mesh_beam-quad_boundary_topo_thumb.png | Bin 0 -> 495 bytes .../c_input_mesh_beam-quad_mres_0000.png | Bin 0 -> 944 bytes ...c_input_mesh_beam-quad_mres_0000_thumb.png | Bin 0 -> 630 bytes .../c_input_mesh_beam-quad_mres_0020.png | Bin 0 -> 944 bytes ...c_input_mesh_beam-quad_mres_0020_thumb.png | Bin 0 -> 630 bytes .../c_input_mesh_beam-tri_boundary_topo.png | Bin 0 -> 963 bytes ...nput_mesh_beam-tri_boundary_topo_thumb.png | Bin 0 -> 495 bytes .../c_input_mesh_beam-tri_mres_0000.png | Bin 0 -> 1125 bytes .../c_input_mesh_beam-tri_mres_0000_thumb.png | Bin 0 -> 792 bytes .../c_input_mesh_beam-tri_mres_0020.png | Bin 0 -> 1125 bytes .../c_input_mesh_beam-tri_mres_0020_thumb.png | Bin 0 -> 792 bytes .../c_input_mesh_disc-nurbs_boundary_topo.png | Bin 0 -> 949 bytes ...ut_mesh_disc-nurbs_boundary_topo_thumb.png | Bin 0 -> 437 bytes .../c_input_mesh_disc-nurbs_mres_0000.png | Bin 0 -> 1612 bytes ..._input_mesh_disc-nurbs_mres_0000_thumb.png | Bin 0 -> 714 bytes .../c_input_mesh_disc-nurbs_mres_0020.png | Bin 0 -> 2374 bytes ..._input_mesh_disc-nurbs_mres_0020_thumb.png | Bin 0 -> 1643 bytes ...c_input_mesh_inline-quad_boundary_topo.png | Bin 0 -> 956 bytes ...t_mesh_inline-quad_boundary_topo_thumb.png | Bin 0 -> 464 bytes .../c_input_mesh_inline-quad_mres_0000.png | Bin 0 -> 1037 bytes ...input_mesh_inline-quad_mres_0000_thumb.png | Bin 0 -> 965 bytes .../c_input_mesh_inline-quad_mres_0020.png | Bin 0 -> 1037 bytes ...input_mesh_inline-quad_mres_0020_thumb.png | Bin 0 -> 965 bytes .../c_input_mesh_inline-tri_boundary_topo.png | Bin 0 -> 956 bytes ...ut_mesh_inline-tri_boundary_topo_thumb.png | Bin 0 -> 464 bytes .../c_input_mesh_inline-tri_mres_0000.png | Bin 0 -> 2734 bytes ..._input_mesh_inline-tri_mres_0000_thumb.png | Bin 0 -> 1651 bytes .../c_input_mesh_inline-tri_mres_0020.png | Bin 0 -> 2741 bytes ..._input_mesh_inline-tri_mres_0020_thumb.png | Bin 0 -> 1661 bytes ...c_input_mesh_periodic-square_mres_0000.png | Bin 0 -> 1012 bytes ...t_mesh_periodic-square_mres_0000_thumb.png | Bin 0 -> 893 bytes ...c_input_mesh_periodic-square_mres_0020.png | Bin 0 -> 1012 bytes ...t_mesh_periodic-square_mres_0020_thumb.png | Bin 0 -> 893 bytes ...t_mesh_square-disc-nurbs_boundary_topo.png | Bin 0 -> 1003 bytes ..._square-disc-nurbs_boundary_topo_thumb.png | Bin 0 -> 580 bytes ...input_mesh_square-disc-nurbs_mres_0000.png | Bin 0 -> 1866 bytes ...mesh_square-disc-nurbs_mres_0000_thumb.png | Bin 0 -> 815 bytes ...input_mesh_square-disc-nurbs_mres_0020.png | Bin 0 -> 2260 bytes ...mesh_square-disc-nurbs_mres_0020_thumb.png | Bin 0 -> 1327 bytes ...nput_mesh_square-disc-p2_boundary_topo.png | Bin 0 -> 1452 bytes ...esh_square-disc-p2_boundary_topo_thumb.png | Bin 0 -> 1360 bytes .../c_input_mesh_square-disc-p2_mres_0000.png | Bin 0 -> 7695 bytes ...ut_mesh_square-disc-p2_mres_0000_thumb.png | Bin 0 -> 7133 bytes .../c_input_mesh_square-disc-p2_mres_0020.png | Bin 0 -> 7779 bytes ...ut_mesh_square-disc-p2_mres_0020_thumb.png | Bin 0 -> 7166 bytes ...nput_mesh_square-disc-p3_boundary_topo.png | Bin 0 -> 1452 bytes ...esh_square-disc-p3_boundary_topo_thumb.png | Bin 0 -> 1360 bytes .../c_input_mesh_square-disc-p3_mres_0000.png | Bin 0 -> 7654 bytes ...ut_mesh_square-disc-p3_mres_0000_thumb.png | Bin 0 -> 7194 bytes .../c_input_mesh_square-disc-p3_mres_0020.png | Bin 0 -> 7773 bytes ...ut_mesh_square-disc-p3_mres_0020_thumb.png | Bin 0 -> 7367 bytes ...c_input_mesh_square-disc_boundary_topo.png | Bin 0 -> 1452 bytes ...t_mesh_square-disc_boundary_topo_thumb.png | Bin 0 -> 1360 bytes .../c_input_mesh_square-disc_mres_0000.png | Bin 0 -> 7718 bytes ...input_mesh_square-disc_mres_0000_thumb.png | Bin 0 -> 7247 bytes .../c_input_mesh_square-disc_mres_0020.png | Bin 0 -> 7730 bytes ...input_mesh_square-disc_mres_0020_thumb.png | Bin 0 -> 7258 bytes .../c_kulllite_01.png | Bin 0 -> 996 bytes .../c_kulllite_01_thumb.png | Bin 0 -> 491 bytes .../c_kulllite_02.png | Bin 0 -> 935 bytes .../c_kulllite_02_thumb.png | Bin 0 -> 458 bytes .../c_kulllite_03.png | Bin 0 -> 1061 bytes .../c_kulllite_03_thumb.png | Bin 0 -> 757 bytes .../c_label_6_04.png | Bin 0 -> 6189 bytes .../c_label_6_04_thumb.png | Bin 0 -> 3183 bytes .../c_label_8_11.png | Bin 0 -> 58824 bytes .../c_label_8_11_thumb.png | Bin 0 -> 12521 bytes .../c_lata_00.png | Bin 0 -> 2474 bytes .../c_lata_00_thumb.png | Bin 0 -> 3394 bytes .../c_lata_02.png | Bin 0 -> 4571 bytes .../c_lata_02_thumb.png | Bin 0 -> 5452 bytes .../c_lata_06.png | Bin 0 -> 10622 bytes .../c_lata_06_thumb.png | Bin 0 -> 9261 bytes .../c_lata_08.png | Bin 0 -> 10498 bytes .../c_lata_08_thumb.png | Bin 0 -> 8843 bytes .../c_lata_09.png | Bin 0 -> 9757 bytes .../c_lata_09_thumb.png | Bin 0 -> 12520 bytes ...le_gyre_2_domains_NativeMesh_2DAuxGrid.png | Bin 0 -> 20376 bytes ...e_2_domains_NativeMesh_2DAuxGrid_thumb.png | Bin 0 -> 5110 bytes .../c_leos_06.png | Bin 0 -> 3852 bytes .../c_leos_06_thumb.png | Bin 0 -> 2972 bytes .../c_life03.png | Bin 0 -> 4829 bytes .../c_life03_thumb.png | Bin 0 -> 12766 bytes .../c_line3d07.png | Bin 0 -> 16043 bytes .../c_line3d07_thumb.png | Bin 0 -> 4278 bytes .../c_line3d08.png | Bin 0 -> 16043 bytes .../c_line3d08_thumb.png | Bin 0 -> 4278 bytes .../c_line3d09.png | Bin 0 -> 16043 bytes .../c_line3d09_thumb.png | Bin 0 -> 4278 bytes .../c_line3d10.png | Bin 0 -> 16063 bytes .../c_line3d10_thumb.png | Bin 0 -> 4319 bytes .../c_line3d11.png | Bin 0 -> 16155 bytes .../c_line3d11_thumb.png | Bin 0 -> 4402 bytes .../c_line3d12.png | Bin 0 -> 16110 bytes .../c_line3d12_thumb.png | Bin 0 -> 4301 bytes .../c_ls_0_1.png | Bin 0 -> 1780 bytes .../c_ls_0_10.png | Bin 0 -> 2474 bytes .../c_ls_0_10_thumb.png | Bin 0 -> 3361 bytes .../c_ls_0_13.png | Bin 0 -> 1444 bytes .../c_ls_0_13_thumb.png | Bin 0 -> 1232 bytes .../c_ls_0_16.png | Bin 0 -> 1899 bytes .../c_ls_0_16_thumb.png | Bin 0 -> 2010 bytes .../c_ls_0_1_thumb.png | Bin 0 -> 1847 bytes .../c_ls_0_4.png | Bin 0 -> 1705 bytes .../c_ls_0_4_thumb.png | Bin 0 -> 1842 bytes .../c_ls_0_7.png | Bin 0 -> 1482 bytes .../c_ls_0_7_thumb.png | Bin 0 -> 1327 bytes .../c_ls_1_1.png | Bin 0 -> 1823 bytes .../c_ls_1_10.png | Bin 0 -> 2531 bytes .../c_ls_1_10_thumb.png | Bin 0 -> 3619 bytes .../c_ls_1_13.png | Bin 0 -> 1479 bytes .../c_ls_1_13_thumb.png | Bin 0 -> 1329 bytes .../c_ls_1_16.png | Bin 0 -> 1932 bytes .../c_ls_1_16_thumb.png | Bin 0 -> 2081 bytes .../c_ls_1_1_thumb.png | Bin 0 -> 1961 bytes .../c_ls_1_4.png | Bin 0 -> 1664 bytes .../c_ls_1_4_thumb.png | Bin 0 -> 1773 bytes .../c_ls_1_7.png | Bin 0 -> 1464 bytes .../c_ls_1_7_thumb.png | Bin 0 -> 1391 bytes .../c_ls_2_1.png | Bin 0 -> 1860 bytes .../c_ls_2_10.png | Bin 0 -> 2077 bytes .../c_ls_2_10_thumb.png | Bin 0 -> 2061 bytes .../c_ls_2_13.png | Bin 0 -> 1106 bytes .../c_ls_2_13_thumb.png | Bin 0 -> 737 bytes .../c_ls_2_16.png | Bin 0 -> 1133 bytes .../c_ls_2_16_thumb.png | Bin 0 -> 770 bytes .../c_ls_2_1_thumb.png | Bin 0 -> 1980 bytes .../c_ls_2_4.png | Bin 0 -> 2156 bytes .../c_ls_2_4_thumb.png | Bin 0 -> 2896 bytes .../c_ls_3_1.png | Bin 0 -> 2086 bytes .../c_ls_3_10.png | Bin 0 -> 2203 bytes .../c_ls_3_10_thumb.png | Bin 0 -> 2979 bytes .../c_ls_3_13.png | Bin 0 -> 1509 bytes .../c_ls_3_13_thumb.png | Bin 0 -> 1482 bytes .../c_ls_3_16.png | Bin 0 -> 1554 bytes .../c_ls_3_16_thumb.png | Bin 0 -> 1541 bytes .../c_ls_3_1_thumb.png | Bin 0 -> 2989 bytes .../c_ls_3_4.png | Bin 0 -> 1924 bytes .../c_ls_3_4_thumb.png | Bin 0 -> 2294 bytes .../c_ls_3_7.png | Bin 0 -> 1740 bytes .../c_ls_3_7_thumb.png | Bin 0 -> 1846 bytes .../c_materialvar02.png | Bin 0 -> 1378 bytes .../c_materialvar02_thumb.png | Bin 0 -> 1476 bytes .../c_materialvar03.png | Bin 0 -> 1023 bytes .../c_materialvar03_thumb.png | Bin 0 -> 810 bytes .../c_materialvar04.png | Bin 0 -> 1255 bytes .../c_materialvar04_thumb.png | Bin 0 -> 1317 bytes .../c_materialvar05.png | Bin 0 -> 1404 bytes .../c_materialvar05_thumb.png | Bin 0 -> 1649 bytes .../c_materialvar06.png | Bin 0 -> 1240 bytes .../c_materialvar06_thumb.png | Bin 0 -> 1311 bytes .../c_materialvar07.png | Bin 0 -> 1394 bytes .../c_materialvar07_thumb.png | Bin 0 -> 1602 bytes .../c_materialvar08.png | Bin 0 -> 3478 bytes .../c_materialvar08_thumb.png | Bin 0 -> 2059 bytes .../c_materialvar09.png | Bin 0 -> 3317 bytes .../c_materialvar09_thumb.png | Bin 0 -> 2001 bytes .../c_materialvar10.png | Bin 0 -> 3738 bytes .../c_materialvar10_thumb.png | Bin 0 -> 2245 bytes .../c_materialvar11.png | Bin 0 -> 4347 bytes .../c_materialvar11_thumb.png | Bin 0 -> 2469 bytes .../c_mesh_point_05.png | Bin 0 -> 2176 bytes .../c_mesh_point_05_thumb.png | Bin 0 -> 2484 bytes .../c_mesh_quality_05.png | Bin 0 -> 19427 bytes .../c_mesh_quality_05_thumb.png | Bin 0 -> 6040 bytes .../c_meshtype_point_05.png | Bin 0 -> 12647 bytes .../c_meshtype_point_05_thumb.png | Bin 0 -> 5336 bytes .../c_meshtype_point_07.png | Bin 0 -> 10433 bytes .../c_meshtype_point_07_thumb.png | Bin 0 -> 4903 bytes .../c_missingdata_0_00.png | Bin 0 -> 20546 bytes .../c_missingdata_0_00_thumb.png | Bin 0 -> 4918 bytes .../c_missingdata_0_01.png | Bin 0 -> 29942 bytes .../c_missingdata_0_01_thumb.png | Bin 0 -> 7515 bytes .../c_missingdata_0_02.png | Bin 0 -> 31538 bytes .../c_missingdata_0_02_thumb.png | Bin 0 -> 7495 bytes .../c_missingdata_0_04.txt | 1 + .../c_missingdata_1_00.png | Bin 0 -> 29836 bytes .../c_missingdata_1_00_thumb.png | Bin 0 -> 7284 bytes .../c_missingdata_1_01.png | Bin 0 -> 43258 bytes .../c_missingdata_1_01_thumb.png | Bin 0 -> 6736 bytes .../c_missingdata_1_02.png | Bin 0 -> 71213 bytes .../c_missingdata_1_02_thumb.png | Bin 0 -> 13149 bytes .../c_moab_01.png | Bin 0 -> 34779 bytes .../c_moab_01_thumb.png | Bin 0 -> 13218 bytes .../c_moveoperator_0.png | Bin 0 -> 7587 bytes .../c_moveoperator_0_thumb.png | Bin 0 -> 8470 bytes .../c_multiblock02.png | Bin 0 -> 1750 bytes .../c_multiblock02_thumb.png | Bin 0 -> 2812 bytes .../c_multiblock03.png | Bin 0 -> 5170 bytes .../c_multiblock03_thumb.png | Bin 0 -> 3869 bytes .../c_multiblock04.png | Bin 0 -> 1719 bytes .../c_multiblock04_thumb.png | Bin 0 -> 2296 bytes .../c_multiblock05.png | Bin 0 -> 1740 bytes .../c_multiblock05_thumb.png | Bin 0 -> 1864 bytes .../c_netcdf_3_01.png | Bin 0 -> 80912 bytes .../c_netcdf_3_01_thumb.png | Bin 0 -> 11897 bytes .../c_oldsilo_01.png | Bin 0 -> 4115 bytes .../c_oldsilo_01_thumb.png | Bin 0 -> 4097 bytes .../c_openPMD_3D_Fieldsrho.png | Bin 0 -> 22967 bytes .../c_openPMD_3D_Fieldsrho_thumb.png | Bin 0 -> 6437 bytes .../c_ops_dualmesh_mesh_plot_2d_00.png | Bin 0 -> 1262 bytes .../c_ops_dualmesh_mesh_plot_2d_00_thumb.png | Bin 0 -> 462 bytes .../c_ops_dualmesh_mesh_plot_2d_01.png | Bin 0 -> 1507 bytes .../c_ops_dualmesh_mesh_plot_2d_01_thumb.png | Bin 0 -> 545 bytes .../c_ops_dualmesh_mesh_plot_2d_02.png | Bin 0 -> 1262 bytes .../c_ops_dualmesh_mesh_plot_2d_02_thumb.png | Bin 0 -> 462 bytes .../c_ops_inverse_ghost_zone05.png | Bin 0 -> 2443 bytes .../c_ops_inverse_ghost_zone05_thumb.png | Bin 0 -> 1513 bytes .../c_ops_refl02.png | Bin 0 -> 4311 bytes .../c_ops_refl02_thumb.png | Bin 0 -> 6550 bytes .../c_ops_resampleop_noise_point_small.png | Bin 0 -> 18786 bytes ...ops_resampleop_noise_point_small_thumb.png | Bin 0 -> 6380 bytes .../c_ops_transform05.png | Bin 0 -> 11935 bytes .../c_ops_transform05_thumb.png | Bin 0 -> 5549 bytes .../c_ops_transform07.png | Bin 0 -> 1686 bytes .../c_ops_transform07_thumb.png | Bin 0 -> 1532 bytes .../c_pickarray_02.png | Bin 0 -> 1100 bytes .../c_pickarray_02_thumb.png | Bin 0 -> 517 bytes .../c_pickarray_04.png | Bin 0 -> 1100 bytes .../c_pickarray_04_thumb.png | Bin 0 -> 569 bytes .../c_pickarray_07.png | Bin 0 -> 1091 bytes .../c_pickarray_07_thumb.png | Bin 0 -> 484 bytes .../c_pickarray_09.png | Bin 0 -> 1055 bytes .../c_pickarray_09_thumb.png | Bin 0 -> 510 bytes .../c_pickarray_10.png | Bin 0 -> 1068 bytes .../c_pickarray_10_thumb.png | Bin 0 -> 517 bytes .../c_pixeldata_0_00.png | Bin 0 -> 89269 bytes .../c_pixeldata_0_00_thumb.png | Bin 0 -> 16331 bytes .../c_pixeldata_0_01.png | Bin 0 -> 90717 bytes .../c_pixeldata_0_01_thumb.png | Bin 0 -> 17667 bytes .../c_pixeldata_0_02.png | Bin 0 -> 95682 bytes .../c_pixeldata_0_02_thumb.png | Bin 0 -> 16501 bytes .../c_pixeldata_0_03.png | Bin 0 -> 99311 bytes .../c_pixeldata_0_03_thumb.png | Bin 0 -> 18338 bytes .../c_pixeldata_0_04.png | Bin 0 -> 52611 bytes .../c_pixeldata_0_04_thumb.png | Bin 0 -> 14672 bytes .../c_pixeldata_0_05.png | Bin 0 -> 86200 bytes .../c_pixeldata_0_05_thumb.png | Bin 0 -> 15348 bytes .../c_pixeldata_0_06.png | Bin 0 -> 54024 bytes .../c_pixeldata_0_06_thumb.png | Bin 0 -> 16120 bytes .../c_pixeldata_0_07.png | Bin 0 -> 88665 bytes .../c_pixeldata_0_07_thumb.png | Bin 0 -> 16982 bytes .../c_pixeldata_0_08.png | Bin 0 -> 52590 bytes .../c_pixeldata_0_08_thumb.png | Bin 0 -> 14670 bytes .../c_pixeldata_0_09.png | Bin 0 -> 86192 bytes .../c_pixeldata_0_09_thumb.png | Bin 0 -> 15349 bytes .../c_pixeldata_0_10.png | Bin 0 -> 52900 bytes .../c_pixeldata_0_10_thumb.png | Bin 0 -> 14836 bytes .../c_pixeldata_0_11.png | Bin 0 -> 87240 bytes .../c_pixeldata_0_11_thumb.png | Bin 0 -> 15442 bytes .../c_pixie_04.png | Bin 0 -> 23379 bytes .../c_pixie_04_thumb.png | Bin 0 -> 5299 bytes .../c_pixie_05.png | Bin 0 -> 18637 bytes .../c_pixie_05_thumb.png | Bin 0 -> 9486 bytes .../c_pixie_06.png | Bin 0 -> 3762 bytes .../c_pixie_06_thumb.png | Bin 0 -> 3724 bytes .../c_pixie_07.png | Bin 0 -> 2016 bytes .../c_pixie_07_thumb.png | Bin 0 -> 865 bytes .../c_polar_curve_01.png | Bin 0 -> 1673 bytes .../c_polar_curve_01_thumb.png | Bin 0 -> 2257 bytes .../c_rect_05.png | Bin 0 -> 987 bytes .../c_rect_05_thumb.png | Bin 0 -> 493 bytes .../c_rect_06.png | Bin 0 -> 2056 bytes .../c_rect_06_thumb.png | Bin 0 -> 1614 bytes .../c_rect_07.png | Bin 0 -> 1236 bytes .../c_rect_07_thumb.png | Bin 0 -> 1185 bytes .../c_scalar02.png | Bin 0 -> 3227 bytes .../c_scalar02_thumb.png | Bin 0 -> 1813 bytes .../c_scatter_21.png | Bin 0 -> 1578 bytes .../c_scatter_21_thumb.png | Bin 0 -> 1609 bytes .../c_shapefile_4_00.png | Bin 0 -> 6911 bytes .../c_shapefile_4_00_thumb.png | Bin 0 -> 5130 bytes .../c_shapefile_4_01.png | Bin 0 -> 8938 bytes .../c_shapefile_4_01_thumb.png | Bin 0 -> 8505 bytes .../c_shapefile_4_02.png | Bin 0 -> 8178 bytes .../c_shapefile_4_02_thumb.png | Bin 0 -> 5187 bytes .../c_silo_41.png | Bin 0 -> 9013 bytes .../c_silo_41_thumb.png | Bin 0 -> 6820 bytes .../c_simplify_mixed02.png | Bin 0 -> 1866 bytes .../c_simplify_mixed02_thumb.png | Bin 0 -> 1968 bytes .../c_sph_2d.png | Bin 0 -> 1461 bytes .../c_sph_2d_thumb.png | Bin 0 -> 864 bytes .../c_subset_02.png | Bin 0 -> 2412 bytes .../c_subset_02_thumb.png | Bin 0 -> 2090 bytes .../c_subset_03.png | Bin 0 -> 1918 bytes .../c_subset_03_thumb.png | Bin 0 -> 1657 bytes .../c_tecplot_04.png | Bin 0 -> 1790 bytes .../c_tecplot_04_thumb.png | Bin 0 -> 1349 bytes .../c_tecplot_05.png | Bin 0 -> 15781 bytes .../c_tecplot_05_thumb.png | Bin 0 -> 9308 bytes .../c_tecplot_12.png | Bin 0 -> 26853 bytes .../c_tecplot_12_thumb.png | Bin 0 -> 12126 bytes .../c_tecplot_15.png | Bin 0 -> 1228 bytes .../c_tecplot_15_thumb.png | Bin 0 -> 1267 bytes .../c_text3d03.png | Bin 0 -> 18142 bytes .../c_text3d03_thumb.png | Bin 0 -> 4624 bytes .../c_transparency_03.png | Bin 0 -> 13451 bytes .../c_transparency_03_thumb.png | Bin 0 -> 4092 bytes .../c_transparency_05.png | Bin 0 -> 13914 bytes .../c_transparency_05_thumb.png | Bin 0 -> 4642 bytes .../c_transparency_10.png | Bin 0 -> 2038 bytes .../c_transparency_10_thumb.png | Bin 0 -> 1775 bytes .../c_transparency_14.png | Bin 0 -> 7903 bytes .../c_transparency_14_thumb.png | Bin 0 -> 3674 bytes .../c_var02.png | Bin 0 -> 8460 bytes .../c_var02_thumb.png | Bin 0 -> 3286 bytes .../c_vector_16.png | Bin 0 -> 5612 bytes .../c_vector_16_thumb.png | Bin 0 -> 7495 bytes .../c_vector_17.png | Bin 0 -> 3844 bytes .../c_vector_17_thumb.png | Bin 0 -> 6033 bytes .../c_vector_18.png | Bin 0 -> 5723 bytes .../c_vector_18_thumb.png | Bin 0 -> 8254 bytes .../c_vector_19.png | Bin 0 -> 4889 bytes .../c_vector_19_thumb.png | Bin 0 -> 7345 bytes .../c_view_09.png | Bin 0 -> 2514 bytes .../c_view_09_thumb.png | Bin 0 -> 2070 bytes .../c_volume_20.png | Bin 0 -> 55639 bytes .../c_volume_20_thumb.png | Bin 0 -> 7451 bytes .../c_volume_23.png | Bin 0 -> 67522 bytes .../c_volume_23_thumb.png | Bin 0 -> 8610 bytes .../c_volume_24.png | Bin 0 -> 61537 bytes .../c_volume_24_thumb.png | Bin 0 -> 6740 bytes .../c_volume_33.png | Bin 0 -> 27523 bytes .../c_volume_33_thumb.png | Bin 0 -> 4993 bytes .../c_volume_34.png | Bin 0 -> 28521 bytes .../c_volume_34_thumb.png | Bin 0 -> 4790 bytes .../c_vtk_34a.png | Bin 0 -> 976 bytes .../c_vtk_34a_thumb.png | Bin 0 -> 650 bytes .../c_vtk_36.png | Bin 0 -> 10188 bytes .../c_vtk_36_thumb.png | Bin 0 -> 6113 bytes .../c_xdmf_6_00.png | Bin 0 -> 1298 bytes .../c_xdmf_6_00_thumb.png | Bin 0 -> 1623 bytes .../c_xdmf_6_01.png | Bin 0 -> 1343 bytes .../c_xdmf_6_01_thumb.png | Bin 0 -> 2043 bytes .../c_xdmf_6_02.png | Bin 0 -> 1342 bytes .../c_xdmf_6_02_thumb.png | Bin 0 -> 1118 bytes .../c_xdmf_7_02.png | Bin 0 -> 6943 bytes .../c_xdmf_7_02_thumb.png | Bin 0 -> 2343 bytes .../c_xdmf_7_03.png | Bin 0 -> 5602 bytes .../c_xdmf_7_03_thumb.png | Bin 0 -> 2814 bytes .../c_zerocopy02.txt | 1 + .../css/styles.css | 96 + ...Output_spectra_topo_intensities_legacy.png | Bin 0 -> 184 bytes ..._spectra_topo_intensities_legacy_thumb.png | Bin 0 -> 124 bytes ...Output_spectra_topo_intensities_modern.png | Bin 0 -> 184 bytes ..._spectra_topo_intensities_modern_thumb.png | Bin 0 -> 124 bytes ...Output_spectra_topo_path_length_legacy.png | Bin 0 -> 179 bytes ..._spectra_topo_path_length_legacy_thumb.png | Bin 0 -> 120 bytes ...Output_spectra_topo_path_length_modern.png | Bin 0 -> 179 bytes ..._spectra_topo_path_length_modern_thumb.png | Bin 0 -> 120 bytes ...Output_spectra_topo_intensities_legacy.png | Bin 0 -> 184 bytes ..._spectra_topo_intensities_legacy_thumb.png | Bin 0 -> 124 bytes ...Output_spectra_topo_intensities_modern.png | Bin 0 -> 184 bytes ..._spectra_topo_intensities_modern_thumb.png | Bin 0 -> 124 bytes ...Output_spectra_topo_path_length_legacy.png | Bin 0 -> 179 bytes ..._spectra_topo_path_length_legacy_thumb.png | Bin 0 -> 120 bytes ...Output_spectra_topo_path_length_modern.png | Bin 0 -> 179 bytes ..._spectra_topo_path_length_modern_thumb.png | Bin 0 -> 120 bytes ...Output_spectra_topo_intensities_legacy.png | Bin 0 -> 184 bytes ..._spectra_topo_intensities_legacy_thumb.png | Bin 0 -> 124 bytes ...Output_spectra_topo_intensities_modern.png | Bin 0 -> 184 bytes ..._spectra_topo_intensities_modern_thumb.png | Bin 0 -> 124 bytes ...Output_spectra_topo_path_length_legacy.png | Bin 0 -> 179 bytes ..._spectra_topo_path_length_legacy_thumb.png | Bin 0 -> 120 bytes ...Output_spectra_topo_path_length_modern.png | Bin 0 -> 179 bytes ..._spectra_topo_path_length_modern_thumb.png | Bin 0 -> 120 bytes .../d_CGNS_NFace_Elements_01.png | Bin 0 -> 208 bytes .../d_CGNS_NFace_Elements_01_thumb.png | Bin 0 -> 191 bytes .../d_Chombo_1_00.png | Bin 0 -> 173 bytes .../d_Chombo_1_00_thumb.png | Bin 0 -> 96 bytes .../d_Chombo_2_00.png | Bin 0 -> 185 bytes .../d_Chombo_2_00_thumb.png | Bin 0 -> 135 bytes .../d_GDAL_0_02.png | Bin 0 -> 173 bytes .../d_GDAL_0_02_thumb.png | Bin 0 -> 103 bytes .../d_GDAL_1_02.png | Bin 0 -> 173 bytes .../d_GDAL_1_02_thumb.png | Bin 0 -> 103 bytes .../d_LOR_amr-quad_legacy_lor.png | Bin 0 -> 186 bytes .../d_LOR_amr-quad_legacy_lor_thumb.png | Bin 0 -> 135 bytes .../d_LOR_amr-quad_lor.png | Bin 0 -> 186 bytes .../d_LOR_amr-quad_lor_thumb.png | Bin 0 -> 135 bytes .../d_LOR_beam-quad-nurbs_legacy_lor.png | Bin 0 -> 184 bytes ...d_LOR_beam-quad-nurbs_legacy_lor_thumb.png | Bin 0 -> 130 bytes .../d_LOR_beam-quad-nurbs_lor.png | Bin 0 -> 184 bytes .../d_LOR_beam-quad-nurbs_lor_thumb.png | Bin 0 -> 130 bytes .../d_LOR_beam-quad_legacy_lor.png | Bin 0 -> 184 bytes .../d_LOR_beam-quad_legacy_lor_thumb.png | Bin 0 -> 130 bytes .../d_LOR_beam-quad_lor.png | Bin 0 -> 184 bytes .../d_LOR_beam-quad_lor_thumb.png | Bin 0 -> 130 bytes .../d_LOR_beam-tri_legacy_lor.png | Bin 0 -> 184 bytes .../d_LOR_beam-tri_legacy_lor_thumb.png | Bin 0 -> 130 bytes .../d_LOR_beam-tri_lor.png | Bin 0 -> 184 bytes .../d_LOR_beam-tri_lor_thumb.png | Bin 0 -> 130 bytes .../d_LOR_disc-nurbs_legacy_lor.png | Bin 0 -> 182 bytes .../d_LOR_disc-nurbs_legacy_lor_thumb.png | Bin 0 -> 124 bytes .../d_LOR_disc-nurbs_lor.png | Bin 0 -> 182 bytes .../d_LOR_disc-nurbs_lor_thumb.png | Bin 0 -> 124 bytes .../d_LOR_inline-quad_legacy_lor.png | Bin 0 -> 186 bytes .../d_LOR_inline-quad_legacy_lor_thumb.png | Bin 0 -> 135 bytes .../d_LOR_inline-quad_lor.png | Bin 0 -> 186 bytes .../d_LOR_inline-quad_lor_thumb.png | Bin 0 -> 135 bytes .../d_LOR_inline-tri_legacy_lor.png | Bin 0 -> 186 bytes .../d_LOR_inline-tri_legacy_lor_thumb.png | Bin 0 -> 135 bytes .../d_LOR_inline-tri_lor.png | Bin 0 -> 186 bytes .../d_LOR_inline-tri_lor_thumb.png | Bin 0 -> 135 bytes .../d_LOR_periodic-square_legacy_lor.png | Bin 0 -> 182 bytes ...d_LOR_periodic-square_legacy_lor_thumb.png | Bin 0 -> 124 bytes .../d_LOR_periodic-square_lor.png | Bin 0 -> 182 bytes .../d_LOR_periodic-square_lor_thumb.png | Bin 0 -> 124 bytes .../d_LOR_square-disc-nurbs_legacy_lor.png | Bin 0 -> 182 bytes ...LOR_square-disc-nurbs_legacy_lor_thumb.png | Bin 0 -> 124 bytes .../d_LOR_square-disc-nurbs_lor.png | Bin 0 -> 182 bytes .../d_LOR_square-disc-nurbs_lor_thumb.png | Bin 0 -> 124 bytes .../d_LOR_square-disc-p2_legacy_lor.png | Bin 0 -> 186 bytes .../d_LOR_square-disc-p2_legacy_lor_thumb.png | Bin 0 -> 135 bytes .../d_LOR_square-disc-p2_lor.png | Bin 0 -> 186 bytes .../d_LOR_square-disc-p2_lor_thumb.png | Bin 0 -> 135 bytes .../d_LOR_square-disc-p3_legacy_lor.png | Bin 0 -> 186 bytes .../d_LOR_square-disc-p3_legacy_lor_thumb.png | Bin 0 -> 135 bytes .../d_LOR_square-disc-p3_lor.png | Bin 0 -> 186 bytes .../d_LOR_square-disc-p3_lor_thumb.png | Bin 0 -> 135 bytes .../d_LOR_square-disc_legacy_lor.png | Bin 0 -> 186 bytes .../d_LOR_square-disc_legacy_lor_thumb.png | Bin 0 -> 135 bytes .../d_LOR_square-disc_lor.png | Bin 0 -> 186 bytes .../d_LOR_square-disc_lor_thumb.png | Bin 0 -> 135 bytes .../d_Lineout3d.png | Bin 0 -> 173 bytes .../d_Lineout3d_thumb.png | Bin 0 -> 98 bytes .../d_LineoutSAMRAI.png | Bin 0 -> 402 bytes .../d_LineoutSAMRAI_thumb.png | Bin 0 -> 274 bytes .../d_Mixed_braid_2d.png | Bin 0 -> 186 bytes .../d_Mixed_braid_2d_thumb.png | Bin 0 -> 135 bytes .../d_Mixed_offsets_2d.png | Bin 0 -> 186 bytes .../d_Mixed_offsets_2d_thumb.png | Bin 0 -> 135 bytes .../d_Mixed_tet_quad_2d.png | Bin 0 -> 182 bytes .../d_Mixed_tet_quad_2d_thumb.png | Bin 0 -> 124 bytes .../d_Mixed_topo_polygonal_2d.png | Bin 0 -> 181 bytes .../d_Mixed_topo_polygonal_2d_thumb.png | Bin 0 -> 124 bytes .../d_Mixed_topo_simple_2d.png | Bin 0 -> 181 bytes .../d_Mixed_topo_simple_2d_thumb.png | Bin 0 -> 124 bytes .../d_Polytopal_mesh_missing_offsets.png | Bin 0 -> 184 bytes ...d_Polytopal_mesh_missing_offsets_thumb.png | Bin 0 -> 125 bytes .../d_amr02.png | Bin 0 -> 188 bytes .../d_amr02_thumb.png | Bin 0 -> 138 bytes .../d_amr03.png | Bin 0 -> 188 bytes .../d_amr03_thumb.png | Bin 0 -> 138 bytes .../d_annot_macros_tafile_2.png | Bin 0 -> 222 bytes .../d_annot_macros_tafile_2_thumb.png | Bin 0 -> 166 bytes .../d_annot_macros_tafile_6.png | Bin 0 -> 222 bytes .../d_annot_macros_tafile_6_thumb.png | Bin 0 -> 166 bytes .../d_bestline_3_00.png | Bin 0 -> 940 bytes .../d_bestline_3_00_thumb.png | Bin 0 -> 759 bytes .../d_bestline_3_02.png | Bin 0 -> 1033 bytes .../d_bestline_3_02_thumb.png | Bin 0 -> 1308 bytes .../d_bestline_3_03.png | Bin 0 -> 1016 bytes .../d_bestline_3_03_thumb.png | Bin 0 -> 1295 bytes .../d_biquadratic_quad_field_01.png | Bin 0 -> 186 bytes .../d_biquadratic_quad_field_01_thumb.png | Bin 0 -> 135 bytes .../d_biquadratic_quad_field_02.png | Bin 0 -> 186 bytes .../d_biquadratic_quad_field_02_thumb.png | Bin 0 -> 135 bytes .../d_biquadratic_quad_field_03.png | Bin 0 -> 186 bytes .../d_biquadratic_quad_field_03_thumb.png | Bin 0 -> 135 bytes .../d_blueprint_1d_curve_element_assoc.png | Bin 0 -> 174 bytes ...blueprint_1d_curve_element_assoc_thumb.png | Bin 0 -> 103 bytes .../d_blueprint_2d_hdf5_0_8_2_quads_mesh.png | Bin 0 -> 182 bytes ...ueprint_2d_hdf5_0_8_2_quads_mesh_thumb.png | Bin 0 -> 124 bytes .../d_blueprint_2d_hdf5_0_8_2_rect_mesh.png | Bin 0 -> 182 bytes ...lueprint_2d_hdf5_0_8_2_rect_mesh_thumb.png | Bin 0 -> 124 bytes .../d_blueprint_2d_hdf5_0_8_2_struct_mesh.png | Bin 0 -> 182 bytes ...eprint_2d_hdf5_0_8_2_struct_mesh_thumb.png | Bin 0 -> 124 bytes .../d_blueprint_2d_hdf5_0_8_2_tris_mesh.png | Bin 0 -> 182 bytes ...lueprint_2d_hdf5_0_8_2_tris_mesh_thumb.png | Bin 0 -> 124 bytes ...d_blueprint_2d_hdf5_0_8_2_uniform_mesh.png | Bin 0 -> 182 bytes ...print_2d_hdf5_0_8_2_uniform_mesh_thumb.png | Bin 0 -> 124 bytes .../d_blueprint_2d_hdf5_quads_mesh.png | Bin 0 -> 182 bytes .../d_blueprint_2d_hdf5_quads_mesh_thumb.png | Bin 0 -> 124 bytes .../d_blueprint_2d_hdf5_rect_mesh.png | Bin 0 -> 182 bytes .../d_blueprint_2d_hdf5_rect_mesh_thumb.png | Bin 0 -> 124 bytes .../d_blueprint_2d_hdf5_struct_mesh.png | Bin 0 -> 182 bytes .../d_blueprint_2d_hdf5_struct_mesh_thumb.png | Bin 0 -> 124 bytes .../d_blueprint_2d_hdf5_tris_mesh.png | Bin 0 -> 182 bytes .../d_blueprint_2d_hdf5_tris_mesh_thumb.png | Bin 0 -> 124 bytes .../d_blueprint_2d_hdf5_uniform_mesh.png | Bin 0 -> 182 bytes ...d_blueprint_2d_hdf5_uniform_mesh_thumb.png | Bin 0 -> 124 bytes .../d_blueprint_2d_json_quads_mesh.png | Bin 0 -> 182 bytes .../d_blueprint_2d_json_quads_mesh_thumb.png | Bin 0 -> 124 bytes .../d_blueprint_2d_json_rect_mesh.png | Bin 0 -> 182 bytes .../d_blueprint_2d_json_rect_mesh_thumb.png | Bin 0 -> 124 bytes .../d_blueprint_2d_json_struct_mesh.png | Bin 0 -> 186 bytes .../d_blueprint_2d_json_struct_mesh_thumb.png | Bin 0 -> 135 bytes .../d_blueprint_2d_json_tris_mesh.png | Bin 0 -> 182 bytes .../d_blueprint_2d_json_tris_mesh_thumb.png | Bin 0 -> 124 bytes .../d_blueprint_2d_json_uniform_mesh.png | Bin 0 -> 182 bytes ...d_blueprint_2d_json_uniform_mesh_thumb.png | Bin 0 -> 124 bytes .../d_blueprint_2d_sidre_hdf5_quads_mesh.png | Bin 0 -> 182 bytes ...ueprint_2d_sidre_hdf5_quads_mesh_thumb.png | Bin 0 -> 124 bytes .../d_blueprint_2d_sidre_hdf5_rect_mesh.png | Bin 0 -> 182 bytes ...lueprint_2d_sidre_hdf5_rect_mesh_thumb.png | Bin 0 -> 124 bytes .../d_blueprint_2d_sidre_hdf5_struct_mesh.png | Bin 0 -> 182 bytes ...eprint_2d_sidre_hdf5_struct_mesh_thumb.png | Bin 0 -> 124 bytes .../d_blueprint_2d_sidre_hdf5_tris_mesh.png | Bin 0 -> 182 bytes ...lueprint_2d_sidre_hdf5_tris_mesh_thumb.png | Bin 0 -> 124 bytes ...d_blueprint_2d_sidre_hdf5_uniform_mesh.png | Bin 0 -> 182 bytes ...print_2d_sidre_hdf5_uniform_mesh_thumb.png | Bin 0 -> 124 bytes .../d_blueprint_2d_yaml_0_8_2_quads_mesh.png | Bin 0 -> 182 bytes ...ueprint_2d_yaml_0_8_2_quads_mesh_thumb.png | Bin 0 -> 124 bytes .../d_blueprint_2d_yaml_0_8_2_rect_mesh.png | Bin 0 -> 182 bytes ...lueprint_2d_yaml_0_8_2_rect_mesh_thumb.png | Bin 0 -> 124 bytes .../d_blueprint_2d_yaml_0_8_2_struct_mesh.png | Bin 0 -> 182 bytes ...eprint_2d_yaml_0_8_2_struct_mesh_thumb.png | Bin 0 -> 124 bytes .../d_blueprint_2d_yaml_0_8_2_tris_mesh.png | Bin 0 -> 182 bytes ...lueprint_2d_yaml_0_8_2_tris_mesh_thumb.png | Bin 0 -> 124 bytes ...d_blueprint_2d_yaml_0_8_2_uniform_mesh.png | Bin 0 -> 182 bytes ...print_2d_yaml_0_8_2_uniform_mesh_thumb.png | Bin 0 -> 124 bytes ...eriodic_hexagon_conduit_bin_legacy_lor.png | Bin 0 -> 182 bytes ...c_hexagon_conduit_bin_legacy_lor_thumb.png | Bin 0 -> 128 bytes ...em_2d_periodic_hexagon_conduit_bin_lor.png | Bin 0 -> 182 bytes ...periodic_hexagon_conduit_bin_lor_thumb.png | Bin 0 -> 128 bytes ...riodic_hexagon_conduit_json_legacy_lor.png | Bin 0 -> 182 bytes ..._hexagon_conduit_json_legacy_lor_thumb.png | Bin 0 -> 128 bytes ...m_2d_periodic_hexagon_conduit_json_lor.png | Bin 0 -> 182 bytes ...eriodic_hexagon_conduit_json_lor_thumb.png | Bin 0 -> 128 bytes ...em_2d_periodic_hexagon_hdf5_legacy_lor.png | Bin 0 -> 182 bytes ...periodic_hexagon_hdf5_legacy_lor_thumb.png | Bin 0 -> 128 bytes ...rint_mfem_2d_periodic_hexagon_hdf5_lor.png | Bin 0 -> 182 bytes ...fem_2d_periodic_hexagon_hdf5_lor_thumb.png | Bin 0 -> 128 bytes ...em_2d_periodic_hexagon_json_legacy_lor.png | Bin 0 -> 182 bytes ...periodic_hexagon_json_legacy_lor_thumb.png | Bin 0 -> 128 bytes ...rint_mfem_2d_periodic_hexagon_json_lor.png | Bin 0 -> 182 bytes ...fem_2d_periodic_hexagon_json_lor_thumb.png | Bin 0 -> 128 bytes ..._blueprint_mfem_2d_tri_beam_legacy_lor.png | Bin 0 -> 184 bytes ...rint_mfem_2d_tri_beam_legacy_lor_thumb.png | Bin 0 -> 130 bytes .../d_blueprint_mfem_2d_tri_beam_lor.png | Bin 0 -> 184 bytes ...d_blueprint_mfem_2d_tri_beam_lor_thumb.png | Bin 0 -> 130 bytes ...rint_poly_2d_hdf5_0_8_2_mesh_topo_mesh.png | Bin 0 -> 178 bytes ...oly_2d_hdf5_0_8_2_mesh_topo_mesh_thumb.png | Bin 0 -> 158 bytes ...rint_poly_2d_yaml_0_8_2_mesh_topo_mesh.png | Bin 0 -> 178 bytes ...oly_2d_yaml_0_8_2_mesh_topo_mesh_thumb.png | Bin 0 -> 158 bytes ...eprint_rz_cyl_rectilinear.root_plot_2D.png | Bin 0 -> 184 bytes ..._rz_cyl_rectilinear.root_plot_2D_thumb.png | Bin 0 -> 110 bytes ...l_rectilinear.root_plot_revolved_to_3D.png | Bin 0 -> 1269 bytes ...ilinear.root_plot_revolved_to_3D_thumb.png | Bin 0 -> 765 bytes ...ueprint_rz_cyl_structured.root_plot_2D.png | Bin 0 -> 184 bytes ...t_rz_cyl_structured.root_plot_2D_thumb.png | Bin 0 -> 118 bytes ..._blueprint_rz_cyl_uniform.root_plot_2D.png | Bin 0 -> 184 bytes ...rint_rz_cyl_uniform.root_plot_2D_thumb.png | Bin 0 -> 110 bytes ...print_rz_cyl_unstructured.root_plot_2D.png | Bin 0 -> 184 bytes ...rz_cyl_unstructured.root_plot_2D_thumb.png | Bin 0 -> 118 bytes .../d_bov_1_05.png | Bin 0 -> 191 bytes .../d_bov_1_05_thumb.png | Bin 0 -> 113 bytes .../d_bov_2_05.png | Bin 0 -> 191 bytes .../d_bov_2_05_thumb.png | Bin 0 -> 113 bytes .../d_bov_3_05.png | Bin 0 -> 191 bytes .../d_bov_3_05_thumb.png | Bin 0 -> 113 bytes .../d_bov_4_05.png | Bin 0 -> 191 bytes .../d_bov_4_05_thumb.png | Bin 0 -> 113 bytes .../d_bov_5_05.png | Bin 0 -> 191 bytes .../d_bov_5_05_thumb.png | Bin 0 -> 113 bytes .../d_bov_6_05.png | Bin 0 -> 191 bytes .../d_bov_6_05_thumb.png | Bin 0 -> 113 bytes .../d_bov_7_05.png | Bin 0 -> 191 bytes .../d_bov_7_05_thumb.png | Bin 0 -> 113 bytes .../d_bov_8_05.png | Bin 0 -> 191 bytes .../d_bov_8_05_thumb.png | Bin 0 -> 113 bytes .../d_boxlib_01.png | Bin 0 -> 454 bytes .../d_boxlib_01_thumb.png | Bin 0 -> 288 bytes .../d_boxlib_02.png | Bin 0 -> 271 bytes .../d_boxlib_02_thumb.png | Bin 0 -> 140 bytes .../d_boxlib_03.png | Bin 0 -> 454 bytes .../d_boxlib_03_thumb.png | Bin 0 -> 288 bytes .../d_boxlib_05.png | Bin 0 -> 209 bytes .../d_boxlib_05_thumb.png | Bin 0 -> 165 bytes .../d_bp_sparse_topos_example.png | Bin 0 -> 392 bytes .../d_bp_sparse_topos_example_thumb.png | Bin 0 -> 304 bytes .../d_chgcar_05.png | Bin 0 -> 265 bytes .../d_chgcar_05_thumb.png | Bin 0 -> 265 bytes .../d_chgcar_07.png | Bin 0 -> 294 bytes .../d_chgcar_07_thumb.png | Bin 0 -> 318 bytes .../d_chgcar_11.png | Bin 0 -> 502 bytes .../d_chgcar_11_thumb.png | Bin 0 -> 493 bytes .../d_compositing_01.png | Bin 0 -> 687 bytes .../d_compositing_01_thumb.png | Bin 0 -> 120 bytes .../d_contour_multicolor_02.png | Bin 0 -> 173 bytes .../d_contour_multicolor_02_thumb.png | Bin 0 -> 107 bytes .../d_csg_02.png | Bin 0 -> 489 bytes .../d_csg_02_thumb.png | Bin 0 -> 362 bytes .../d_curve2Expr.png | Bin 0 -> 184 bytes .../d_curve2Expr_thumb.png | Bin 0 -> 121 bytes .../d_curve_anim2.png | Bin 0 -> 177 bytes .../d_curve_anim2_thumb.png | Bin 0 -> 122 bytes .../d_curve_anim3.png | Bin 0 -> 177 bytes .../d_curve_anim3_thumb.png | Bin 0 -> 122 bytes .../d_curve_scale_00.png | Bin 0 -> 178 bytes .../d_curve_scale_00_thumb.png | Bin 0 -> 105 bytes .../d_curve_scale_01.png | Bin 0 -> 178 bytes .../d_curve_scale_01_thumb.png | Bin 0 -> 105 bytes .../d_curve_scale_02.png | Bin 0 -> 178 bytes .../d_curve_scale_02_thumb.png | Bin 0 -> 105 bytes .../d_curve_scale_03.png | Bin 0 -> 178 bytes .../d_curve_scale_03_thumb.png | Bin 0 -> 105 bytes .../d_ddcMD_2_01.png | Bin 0 -> 174 bytes .../d_ddcMD_2_01_thumb.png | Bin 0 -> 102 bytes .../d_ddcMD_2_02.png | Bin 0 -> 174 bytes .../d_ddcMD_2_02_thumb.png | Bin 0 -> 102 bytes .../d_ddcMD_2_03.png | Bin 0 -> 174 bytes .../d_ddcMD_2_03_thumb.png | Bin 0 -> 102 bytes .../d_ddcMD_2_04.png | Bin 0 -> 174 bytes .../d_ddcMD_2_04_thumb.png | Bin 0 -> 102 bytes .../d_ddcMD_2_05.png | Bin 0 -> 174 bytes .../d_ddcMD_2_05_thumb.png | Bin 0 -> 102 bytes .../d_ddcMD_2_06.png | Bin 0 -> 174 bytes .../d_ddcMD_2_06_thumb.png | Bin 0 -> 102 bytes .../d_ddcMD_2_07.png | Bin 0 -> 174 bytes .../d_ddcMD_2_07_thumb.png | Bin 0 -> 102 bytes .../d_ddcMD_2_08.png | Bin 0 -> 174 bytes .../d_ddcMD_2_08_thumb.png | Bin 0 -> 102 bytes .../d_ddcMD_2_09.png | Bin 0 -> 174 bytes .../d_ddcMD_2_09_thumb.png | Bin 0 -> 102 bytes .../d_ddcMD_2_10.png | Bin 0 -> 174 bytes .../d_ddcMD_2_10_thumb.png | Bin 0 -> 102 bytes .../d_ddcMD_2_11.png | Bin 0 -> 174 bytes .../d_ddcMD_2_11_thumb.png | Bin 0 -> 102 bytes .../d_ddf_spatial_1d.png | Bin 0 -> 173 bytes .../d_ddf_spatial_1d_thumb.png | Bin 0 -> 107 bytes .../d_exodus_11.png | Bin 0 -> 186 bytes .../d_exodus_11_thumb.png | Bin 0 -> 135 bytes .../d_exodus_12.png | Bin 0 -> 186 bytes .../d_exodus_12_thumb.png | Bin 0 -> 135 bytes .../d_exodus_17.png | Bin 0 -> 191 bytes .../d_exodus_17_thumb.png | Bin 0 -> 128 bytes .../d_explode_repeat_labels_00.png | Bin 0 -> 179 bytes .../d_explode_repeat_labels_00_thumb.png | Bin 0 -> 103 bytes .../d_explode_tire_00.png | Bin 0 -> 173 bytes .../d_explode_tire_00_thumb.png | Bin 0 -> 101 bytes .../d_export_db_2_00.png | Bin 0 -> 174 bytes .../d_export_db_2_00_thumb.png | Bin 0 -> 101 bytes .../d_export_db_2_01.png | Bin 0 -> 342 bytes .../d_export_db_2_01_thumb.png | Bin 0 -> 248 bytes .../d_export_db_2_02.png | Bin 0 -> 483 bytes .../d_export_db_2_02_thumb.png | Bin 0 -> 318 bytes .../d_export_db_2_03.png | Bin 0 -> 341 bytes .../d_export_db_2_03_thumb.png | Bin 0 -> 223 bytes .../d_export_db_2_04.png | Bin 0 -> 399 bytes .../d_export_db_2_04_thumb.png | Bin 0 -> 271 bytes .../d_export_db_2_05.png | Bin 0 -> 496 bytes .../d_export_db_2_05_thumb.png | Bin 0 -> 410 bytes .../d_export_db_2_06.png | Bin 0 -> 398 bytes .../d_export_db_2_06_thumb.png | Bin 0 -> 280 bytes .../d_export_db_2_07.png | Bin 0 -> 855 bytes .../d_export_db_2_07_thumb.png | Bin 0 -> 642 bytes .../d_export_db_2_08.png | Bin 0 -> 423 bytes .../d_export_db_2_08_thumb.png | Bin 0 -> 264 bytes .../d_export_db_2_09.png | Bin 0 -> 503 bytes .../d_export_db_2_09_thumb.png | Bin 0 -> 352 bytes .../d_export_db_2_10.png | Bin 0 -> 342 bytes .../d_export_db_2_10_thumb.png | Bin 0 -> 248 bytes .../d_export_db_2_11.png | Bin 0 -> 483 bytes .../d_export_db_2_11_thumb.png | Bin 0 -> 318 bytes .../d_export_db_2_12.png | Bin 0 -> 341 bytes .../d_export_db_2_12_thumb.png | Bin 0 -> 223 bytes .../d_export_db_2_13.png | Bin 0 -> 399 bytes .../d_export_db_2_13_thumb.png | Bin 0 -> 271 bytes .../d_export_db_2_14.png | Bin 0 -> 496 bytes .../d_export_db_2_14_thumb.png | Bin 0 -> 410 bytes .../d_export_db_2_15.png | Bin 0 -> 398 bytes .../d_export_db_2_15_thumb.png | Bin 0 -> 280 bytes .../d_export_db_2_16.png | Bin 0 -> 855 bytes .../d_export_db_2_16_thumb.png | Bin 0 -> 642 bytes .../d_export_db_2_17.png | Bin 0 -> 423 bytes .../d_export_db_2_17_thumb.png | Bin 0 -> 264 bytes .../d_export_db_2_18.png | Bin 0 -> 503 bytes .../d_export_db_2_18_thumb.png | Bin 0 -> 352 bytes .../d_hf_2_1.png | Bin 0 -> 183 bytes .../d_hf_2_1_thumb.png | Bin 0 -> 125 bytes .../d_hf_4_1.png | Bin 0 -> 183 bytes .../d_hf_4_1_thumb.png | Bin 0 -> 125 bytes .../d_ic_geometry_01.png | Bin 0 -> 173 bytes .../d_ic_geometry_01_thumb.png | Bin 0 -> 108 bytes .../d_ic_geometry_02.png | Bin 0 -> 173 bytes .../d_ic_geometry_02_thumb.png | Bin 0 -> 108 bytes .../d_ic_geometry_03.png | Bin 0 -> 173 bytes .../d_ic_geometry_03_thumb.png | Bin 0 -> 108 bytes .../d_ic_geometry_04.png | Bin 0 -> 173 bytes .../d_ic_geometry_04_thumb.png | Bin 0 -> 108 bytes .../d_ic_geometry_05.png | Bin 0 -> 189 bytes .../d_ic_geometry_05_thumb.png | Bin 0 -> 124 bytes .../d_ic_geometry_06.png | Bin 0 -> 189 bytes .../d_ic_geometry_06_thumb.png | Bin 0 -> 124 bytes .../d_ic_geometry_07.png | Bin 0 -> 185 bytes .../d_ic_geometry_07_thumb.png | Bin 0 -> 125 bytes .../d_ic_geometry_08.png | Bin 0 -> 185 bytes .../d_ic_geometry_08_thumb.png | Bin 0 -> 125 bytes .../d_ic_geometry_09.png | Bin 0 -> 196 bytes .../d_ic_geometry_09_thumb.png | Bin 0 -> 146 bytes .../d_ic_geometry_10.png | Bin 0 -> 335 bytes .../d_ic_geometry_10_thumb.png | Bin 0 -> 234 bytes .../d_ic_geometry_11.png | Bin 0 -> 335 bytes .../d_ic_geometry_11_thumb.png | Bin 0 -> 234 bytes .../d_ic_geometry_12.png | Bin 0 -> 335 bytes .../d_ic_geometry_12_thumb.png | Bin 0 -> 234 bytes .../d_ic_geometry_13.png | Bin 0 -> 736 bytes .../d_ic_geometry_13_thumb.png | Bin 0 -> 645 bytes .../d_ic_geometry_14.png | Bin 0 -> 978 bytes .../d_ic_geometry_14_thumb.png | Bin 0 -> 909 bytes .../d_ic_integration_09.png | Bin 0 -> 174 bytes .../d_ic_integration_09_thumb.png | Bin 0 -> 102 bytes .../d_ic_integration_10.png | Bin 0 -> 224 bytes .../d_ic_integration_10_thumb.png | Bin 0 -> 144 bytes .../d_ic_streamlines_03.png | Bin 0 -> 183 bytes .../d_ic_streamlines_03_thumb.png | Bin 0 -> 107 bytes .../d_ic_streamlines_04.png | Bin 0 -> 183 bytes .../d_ic_streamlines_04_thumb.png | Bin 0 -> 107 bytes .../d_ic_streamlines_05.png | Bin 0 -> 332 bytes .../d_ic_streamlines_05_thumb.png | Bin 0 -> 220 bytes .../d_ic_streamlines_08.png | Bin 0 -> 183 bytes .../d_ic_streamlines_08_thumb.png | Bin 0 -> 107 bytes .../d_input_mesh_amr-quad_boundary_topo.png | Bin 0 -> 186 bytes ...nput_mesh_amr-quad_boundary_topo_thumb.png | Bin 0 -> 135 bytes .../d_input_mesh_amr-quad_mres_0000.png | Bin 0 -> 186 bytes .../d_input_mesh_amr-quad_mres_0000_thumb.png | Bin 0 -> 135 bytes .../d_input_mesh_amr-quad_mres_0005.png | Bin 0 -> 186 bytes .../d_input_mesh_amr-quad_mres_0005_thumb.png | Bin 0 -> 135 bytes ...put_mesh_beam-quad-nurbs_boundary_topo.png | Bin 0 -> 184 bytes ...sh_beam-quad-nurbs_boundary_topo_thumb.png | Bin 0 -> 130 bytes ...d_input_mesh_beam-quad-nurbs_mres_0000.png | Bin 0 -> 184 bytes ...t_mesh_beam-quad-nurbs_mres_0000_thumb.png | Bin 0 -> 130 bytes ...d_input_mesh_beam-quad-nurbs_mres_0020.png | Bin 0 -> 200 bytes ...t_mesh_beam-quad-nurbs_mres_0020_thumb.png | Bin 0 -> 150 bytes .../d_input_mesh_beam-quad_boundary_topo.png | Bin 0 -> 184 bytes ...put_mesh_beam-quad_boundary_topo_thumb.png | Bin 0 -> 130 bytes .../d_input_mesh_beam-quad_mres_0000.png | Bin 0 -> 184 bytes ...d_input_mesh_beam-quad_mres_0000_thumb.png | Bin 0 -> 130 bytes .../d_input_mesh_beam-quad_mres_0020.png | Bin 0 -> 200 bytes ...d_input_mesh_beam-quad_mres_0020_thumb.png | Bin 0 -> 150 bytes .../d_input_mesh_beam-tri_boundary_topo.png | Bin 0 -> 184 bytes ...nput_mesh_beam-tri_boundary_topo_thumb.png | Bin 0 -> 130 bytes .../d_input_mesh_beam-tri_mres_0000.png | Bin 0 -> 184 bytes .../d_input_mesh_beam-tri_mres_0000_thumb.png | Bin 0 -> 130 bytes .../d_input_mesh_beam-tri_mres_0020.png | Bin 0 -> 200 bytes .../d_input_mesh_beam-tri_mres_0020_thumb.png | Bin 0 -> 150 bytes .../d_input_mesh_disc-nurbs_boundary_topo.png | Bin 0 -> 182 bytes ...ut_mesh_disc-nurbs_boundary_topo_thumb.png | Bin 0 -> 124 bytes .../d_input_mesh_disc-nurbs_mres_0000.png | Bin 0 -> 182 bytes ..._input_mesh_disc-nurbs_mres_0000_thumb.png | Bin 0 -> 124 bytes .../d_input_mesh_disc-nurbs_mres_0020.png | Bin 0 -> 181 bytes ..._input_mesh_disc-nurbs_mres_0020_thumb.png | Bin 0 -> 121 bytes ...d_input_mesh_inline-quad_boundary_topo.png | Bin 0 -> 186 bytes ...t_mesh_inline-quad_boundary_topo_thumb.png | Bin 0 -> 135 bytes .../d_input_mesh_inline-quad_mres_0000.png | Bin 0 -> 186 bytes ...input_mesh_inline-quad_mres_0000_thumb.png | Bin 0 -> 135 bytes .../d_input_mesh_inline-quad_mres_0020.png | Bin 0 -> 186 bytes ...input_mesh_inline-quad_mres_0020_thumb.png | Bin 0 -> 135 bytes .../d_input_mesh_inline-tri_boundary_topo.png | Bin 0 -> 186 bytes ...ut_mesh_inline-tri_boundary_topo_thumb.png | Bin 0 -> 135 bytes .../d_input_mesh_inline-tri_mres_0000.png | Bin 0 -> 186 bytes ..._input_mesh_inline-tri_mres_0000_thumb.png | Bin 0 -> 135 bytes .../d_input_mesh_inline-tri_mres_0020.png | Bin 0 -> 186 bytes ..._input_mesh_inline-tri_mres_0020_thumb.png | Bin 0 -> 135 bytes ...d_input_mesh_periodic-square_mres_0000.png | Bin 0 -> 182 bytes ...t_mesh_periodic-square_mres_0000_thumb.png | Bin 0 -> 124 bytes ...d_input_mesh_periodic-square_mres_0020.png | Bin 0 -> 182 bytes ...t_mesh_periodic-square_mres_0020_thumb.png | Bin 0 -> 124 bytes ...t_mesh_square-disc-nurbs_boundary_topo.png | Bin 0 -> 182 bytes ..._square-disc-nurbs_boundary_topo_thumb.png | Bin 0 -> 124 bytes ...input_mesh_square-disc-nurbs_mres_0000.png | Bin 0 -> 182 bytes ...mesh_square-disc-nurbs_mres_0000_thumb.png | Bin 0 -> 124 bytes ...input_mesh_square-disc-nurbs_mres_0020.png | Bin 0 -> 182 bytes ...mesh_square-disc-nurbs_mres_0020_thumb.png | Bin 0 -> 124 bytes ...nput_mesh_square-disc-p2_boundary_topo.png | Bin 0 -> 186 bytes ...esh_square-disc-p2_boundary_topo_thumb.png | Bin 0 -> 135 bytes .../d_input_mesh_square-disc-p2_mres_0000.png | Bin 0 -> 186 bytes ...ut_mesh_square-disc-p2_mres_0000_thumb.png | Bin 0 -> 135 bytes .../d_input_mesh_square-disc-p2_mres_0020.png | Bin 0 -> 186 bytes ...ut_mesh_square-disc-p2_mres_0020_thumb.png | Bin 0 -> 135 bytes ...nput_mesh_square-disc-p3_boundary_topo.png | Bin 0 -> 186 bytes ...esh_square-disc-p3_boundary_topo_thumb.png | Bin 0 -> 135 bytes .../d_input_mesh_square-disc-p3_mres_0000.png | Bin 0 -> 186 bytes ...ut_mesh_square-disc-p3_mres_0000_thumb.png | Bin 0 -> 135 bytes .../d_input_mesh_square-disc-p3_mres_0020.png | Bin 0 -> 186 bytes ...ut_mesh_square-disc-p3_mres_0020_thumb.png | Bin 0 -> 135 bytes ...d_input_mesh_square-disc_boundary_topo.png | Bin 0 -> 186 bytes ...t_mesh_square-disc_boundary_topo_thumb.png | Bin 0 -> 135 bytes .../d_input_mesh_square-disc_mres_0000.png | Bin 0 -> 186 bytes ...input_mesh_square-disc_mres_0000_thumb.png | Bin 0 -> 135 bytes .../d_input_mesh_square-disc_mres_0020.png | Bin 0 -> 186 bytes ...input_mesh_square-disc_mres_0020_thumb.png | Bin 0 -> 135 bytes .../d_kulllite_01.png | Bin 0 -> 183 bytes .../d_kulllite_01_thumb.png | Bin 0 -> 124 bytes .../d_kulllite_02.png | Bin 0 -> 186 bytes .../d_kulllite_02_thumb.png | Bin 0 -> 133 bytes .../d_kulllite_03.png | Bin 0 -> 186 bytes .../d_kulllite_03_thumb.png | Bin 0 -> 133 bytes .../d_label_6_04.png | Bin 0 -> 349 bytes .../d_label_6_04_thumb.png | Bin 0 -> 159 bytes .../d_label_8_11.png | Bin 0 -> 9753 bytes .../d_label_8_11_thumb.png | Bin 0 -> 3627 bytes .../d_lata_00.png | Bin 0 -> 184 bytes .../d_lata_00_thumb.png | Bin 0 -> 131 bytes .../d_lata_02.png | Bin 0 -> 184 bytes .../d_lata_02_thumb.png | Bin 0 -> 130 bytes .../d_lata_06.png | Bin 0 -> 177 bytes .../d_lata_06_thumb.png | Bin 0 -> 125 bytes .../d_lata_08.png | Bin 0 -> 182 bytes .../d_lata_08_thumb.png | Bin 0 -> 124 bytes .../d_lata_09.png | Bin 0 -> 182 bytes .../d_lata_09_thumb.png | Bin 0 -> 124 bytes ...le_gyre_2_domains_NativeMesh_2DAuxGrid.png | Bin 0 -> 1686 bytes ...e_2_domains_NativeMesh_2DAuxGrid_thumb.png | Bin 0 -> 1727 bytes .../d_leos_06.png | Bin 0 -> 182 bytes .../d_leos_06_thumb.png | Bin 0 -> 124 bytes .../d_life03.png | Bin 0 -> 3565 bytes .../d_life03_thumb.png | Bin 0 -> 5828 bytes .../d_line3d07.png | Bin 0 -> 362 bytes .../d_line3d07_thumb.png | Bin 0 -> 261 bytes .../d_line3d08.png | Bin 0 -> 358 bytes .../d_line3d08_thumb.png | Bin 0 -> 248 bytes .../d_line3d09.png | Bin 0 -> 539 bytes .../d_line3d09_thumb.png | Bin 0 -> 376 bytes .../d_line3d10.png | Bin 0 -> 281 bytes .../d_line3d10_thumb.png | Bin 0 -> 178 bytes .../d_line3d11.png | Bin 0 -> 379 bytes .../d_line3d11_thumb.png | Bin 0 -> 220 bytes .../d_line3d12.png | Bin 0 -> 273 bytes .../d_line3d12_thumb.png | Bin 0 -> 141 bytes .../d_ls_0_1.png | Bin 0 -> 173 bytes .../d_ls_0_10.png | Bin 0 -> 173 bytes .../d_ls_0_10_thumb.png | Bin 0 -> 107 bytes .../d_ls_0_13.png | Bin 0 -> 173 bytes .../d_ls_0_13_thumb.png | Bin 0 -> 103 bytes .../d_ls_0_16.png | Bin 0 -> 173 bytes .../d_ls_0_16_thumb.png | Bin 0 -> 103 bytes .../d_ls_0_1_thumb.png | Bin 0 -> 103 bytes .../d_ls_0_4.png | Bin 0 -> 173 bytes .../d_ls_0_4_thumb.png | Bin 0 -> 108 bytes .../d_ls_0_7.png | Bin 0 -> 173 bytes .../d_ls_0_7_thumb.png | Bin 0 -> 103 bytes .../d_ls_1_1.png | Bin 0 -> 176 bytes .../d_ls_1_10.png | Bin 0 -> 173 bytes .../d_ls_1_10_thumb.png | Bin 0 -> 106 bytes .../d_ls_1_13.png | Bin 0 -> 173 bytes .../d_ls_1_13_thumb.png | Bin 0 -> 103 bytes .../d_ls_1_16.png | Bin 0 -> 173 bytes .../d_ls_1_16_thumb.png | Bin 0 -> 103 bytes .../d_ls_1_1_thumb.png | Bin 0 -> 103 bytes .../d_ls_1_4.png | Bin 0 -> 173 bytes .../d_ls_1_4_thumb.png | Bin 0 -> 108 bytes .../d_ls_1_7.png | Bin 0 -> 173 bytes .../d_ls_1_7_thumb.png | Bin 0 -> 103 bytes .../d_ls_2_1.png | Bin 0 -> 173 bytes .../d_ls_2_10.png | Bin 0 -> 174 bytes .../d_ls_2_10_thumb.png | Bin 0 -> 103 bytes .../d_ls_2_13.png | Bin 0 -> 173 bytes .../d_ls_2_13_thumb.png | Bin 0 -> 103 bytes .../d_ls_2_16.png | Bin 0 -> 173 bytes .../d_ls_2_16_thumb.png | Bin 0 -> 103 bytes .../d_ls_2_1_thumb.png | Bin 0 -> 103 bytes .../d_ls_2_4.png | Bin 0 -> 173 bytes .../d_ls_2_4_thumb.png | Bin 0 -> 103 bytes .../d_ls_3_1.png | Bin 0 -> 178 bytes .../d_ls_3_10.png | Bin 0 -> 178 bytes .../d_ls_3_10_thumb.png | Bin 0 -> 105 bytes .../d_ls_3_13.png | Bin 0 -> 173 bytes .../d_ls_3_13_thumb.png | Bin 0 -> 103 bytes .../d_ls_3_16.png | Bin 0 -> 173 bytes .../d_ls_3_16_thumb.png | Bin 0 -> 103 bytes .../d_ls_3_1_thumb.png | Bin 0 -> 105 bytes .../d_ls_3_4.png | Bin 0 -> 178 bytes .../d_ls_3_4_thumb.png | Bin 0 -> 105 bytes .../d_ls_3_7.png | Bin 0 -> 173 bytes .../d_ls_3_7_thumb.png | Bin 0 -> 103 bytes .../d_materialvar02.png | Bin 0 -> 184 bytes .../d_materialvar02_thumb.png | Bin 0 -> 110 bytes .../d_materialvar03.png | Bin 0 -> 184 bytes .../d_materialvar03_thumb.png | Bin 0 -> 110 bytes .../d_materialvar04.png | Bin 0 -> 184 bytes .../d_materialvar04_thumb.png | Bin 0 -> 110 bytes .../d_materialvar05.png | Bin 0 -> 184 bytes .../d_materialvar05_thumb.png | Bin 0 -> 110 bytes .../d_materialvar06.png | Bin 0 -> 184 bytes .../d_materialvar06_thumb.png | Bin 0 -> 110 bytes .../d_materialvar07.png | Bin 0 -> 184 bytes .../d_materialvar07_thumb.png | Bin 0 -> 110 bytes .../d_materialvar08.png | Bin 0 -> 184 bytes .../d_materialvar08_thumb.png | Bin 0 -> 110 bytes .../d_materialvar09.png | Bin 0 -> 184 bytes .../d_materialvar09_thumb.png | Bin 0 -> 110 bytes .../d_materialvar10.png | Bin 0 -> 184 bytes .../d_materialvar10_thumb.png | Bin 0 -> 110 bytes .../d_materialvar11.png | Bin 0 -> 184 bytes .../d_materialvar11_thumb.png | Bin 0 -> 110 bytes .../d_mesh_point_05.png | Bin 0 -> 173 bytes .../d_mesh_point_05_thumb.png | Bin 0 -> 97 bytes .../d_mesh_quality_05.png | Bin 0 -> 173 bytes .../d_mesh_quality_05_thumb.png | Bin 0 -> 96 bytes .../d_meshtype_point_05.png | Bin 0 -> 179 bytes .../d_meshtype_point_05_thumb.png | Bin 0 -> 110 bytes .../d_meshtype_point_07.png | Bin 0 -> 173 bytes .../d_meshtype_point_07_thumb.png | Bin 0 -> 105 bytes .../d_missingdata_0_00.png | Bin 0 -> 178 bytes .../d_missingdata_0_00_thumb.png | Bin 0 -> 108 bytes .../d_missingdata_0_01.png | Bin 0 -> 187 bytes .../d_missingdata_0_01_thumb.png | Bin 0 -> 151 bytes .../d_missingdata_0_02.png | Bin 0 -> 199 bytes .../d_missingdata_0_02_thumb.png | Bin 0 -> 154 bytes .../d_missingdata_1_00.png | Bin 0 -> 177 bytes .../d_missingdata_1_00_thumb.png | Bin 0 -> 111 bytes .../d_missingdata_1_01.png | Bin 0 -> 186 bytes .../d_missingdata_1_01_thumb.png | Bin 0 -> 125 bytes .../d_missingdata_1_02.png | Bin 0 -> 171 bytes .../d_missingdata_1_02_thumb.png | Bin 0 -> 96 bytes .../d_moab_01.png | Bin 0 -> 663 bytes .../d_moab_01_thumb.png | Bin 0 -> 391 bytes .../d_moveoperator_0.png | Bin 0 -> 174 bytes .../d_moveoperator_0_thumb.png | Bin 0 -> 97 bytes .../d_multiblock02.png | Bin 0 -> 182 bytes .../d_multiblock02_thumb.png | Bin 0 -> 124 bytes .../d_multiblock03.png | Bin 0 -> 182 bytes .../d_multiblock03_thumb.png | Bin 0 -> 124 bytes .../d_multiblock04.png | Bin 0 -> 182 bytes .../d_multiblock04_thumb.png | Bin 0 -> 124 bytes .../d_multiblock05.png | Bin 0 -> 182 bytes .../d_multiblock05_thumb.png | Bin 0 -> 124 bytes .../d_netcdf_3_01.png | Bin 0 -> 222 bytes .../d_netcdf_3_01_thumb.png | Bin 0 -> 205 bytes .../d_oldsilo_01.png | Bin 0 -> 182 bytes .../d_oldsilo_01_thumb.png | Bin 0 -> 126 bytes .../d_openPMD_3D_Fieldsrho.png | Bin 0 -> 333 bytes .../d_openPMD_3D_Fieldsrho_thumb.png | Bin 0 -> 294 bytes .../d_ops_dualmesh_mesh_plot_2d_00.png | Bin 0 -> 182 bytes .../d_ops_dualmesh_mesh_plot_2d_00_thumb.png | Bin 0 -> 125 bytes .../d_ops_dualmesh_mesh_plot_2d_01.png | Bin 0 -> 353 bytes .../d_ops_dualmesh_mesh_plot_2d_01_thumb.png | Bin 0 -> 229 bytes .../d_ops_dualmesh_mesh_plot_2d_02.png | Bin 0 -> 182 bytes .../d_ops_dualmesh_mesh_plot_2d_02_thumb.png | Bin 0 -> 125 bytes .../d_ops_inverse_ghost_zone05.png | Bin 0 -> 339 bytes .../d_ops_inverse_ghost_zone05_thumb.png | Bin 0 -> 306 bytes .../d_ops_refl02.png | Bin 0 -> 182 bytes .../d_ops_refl02_thumb.png | Bin 0 -> 125 bytes .../d_ops_resampleop_noise_point_small.png | Bin 0 -> 173 bytes ...ops_resampleop_noise_point_small_thumb.png | Bin 0 -> 101 bytes .../d_ops_transform05.png | Bin 0 -> 3037 bytes .../d_ops_transform05_thumb.png | Bin 0 -> 2506 bytes .../d_ops_transform07.png | Bin 0 -> 184 bytes .../d_ops_transform07_thumb.png | Bin 0 -> 121 bytes .../d_pickarray_02.png | Bin 0 -> 184 bytes .../d_pickarray_02_thumb.png | Bin 0 -> 124 bytes .../d_pickarray_04.png | Bin 0 -> 184 bytes .../d_pickarray_04_thumb.png | Bin 0 -> 124 bytes .../d_pickarray_07.png | Bin 0 -> 184 bytes .../d_pickarray_07_thumb.png | Bin 0 -> 124 bytes .../d_pickarray_09.png | Bin 0 -> 182 bytes .../d_pickarray_09_thumb.png | Bin 0 -> 124 bytes .../d_pickarray_10.png | Bin 0 -> 183 bytes .../d_pickarray_10_thumb.png | Bin 0 -> 125 bytes .../d_pixeldata_0_00.png | Bin 0 -> 174 bytes .../d_pixeldata_0_00_thumb.png | Bin 0 -> 101 bytes .../d_pixeldata_0_01.png | Bin 0 -> 440 bytes .../d_pixeldata_0_01_thumb.png | Bin 0 -> 564 bytes .../d_pixeldata_0_02.png | Bin 0 -> 440 bytes .../d_pixeldata_0_02_thumb.png | Bin 0 -> 564 bytes .../d_pixeldata_0_03.png | Bin 0 -> 440 bytes .../d_pixeldata_0_03_thumb.png | Bin 0 -> 564 bytes .../d_pixeldata_0_04.png | Bin 0 -> 1604 bytes .../d_pixeldata_0_04_thumb.png | Bin 0 -> 1121 bytes .../d_pixeldata_0_05.png | Bin 0 -> 1201 bytes .../d_pixeldata_0_05_thumb.png | Bin 0 -> 672 bytes .../d_pixeldata_0_06.png | Bin 0 -> 2440 bytes .../d_pixeldata_0_06_thumb.png | Bin 0 -> 2120 bytes .../d_pixeldata_0_07.png | Bin 0 -> 2040 bytes .../d_pixeldata_0_07_thumb.png | Bin 0 -> 1641 bytes .../d_pixeldata_0_08.png | Bin 0 -> 996 bytes .../d_pixeldata_0_08_thumb.png | Bin 0 -> 496 bytes .../d_pixeldata_0_09.png | Bin 0 -> 1201 bytes .../d_pixeldata_0_09_thumb.png | Bin 0 -> 672 bytes .../d_pixeldata_0_10.png | Bin 0 -> 2074 bytes .../d_pixeldata_0_10_thumb.png | Bin 0 -> 1687 bytes .../d_pixeldata_0_11.png | Bin 0 -> 2198 bytes .../d_pixeldata_0_11_thumb.png | Bin 0 -> 1831 bytes .../d_pixie_04.png | Bin 0 -> 320 bytes .../d_pixie_04_thumb.png | Bin 0 -> 293 bytes .../d_pixie_05.png | Bin 0 -> 226 bytes .../d_pixie_05_thumb.png | Bin 0 -> 144 bytes .../d_pixie_06.png | Bin 0 -> 1439 bytes .../d_pixie_06_thumb.png | Bin 0 -> 938 bytes .../d_pixie_07.png | Bin 0 -> 402 bytes .../d_pixie_07_thumb.png | Bin 0 -> 285 bytes .../d_polar_curve_01.png | Bin 0 -> 181 bytes .../d_polar_curve_01_thumb.png | Bin 0 -> 132 bytes .../d_rect_05.png | Bin 0 -> 182 bytes .../d_rect_05_thumb.png | Bin 0 -> 124 bytes .../d_rect_06.png | Bin 0 -> 182 bytes .../d_rect_06_thumb.png | Bin 0 -> 124 bytes .../d_rect_07.png | Bin 0 -> 184 bytes .../d_rect_07_thumb.png | Bin 0 -> 120 bytes .../d_scalar02.png | Bin 0 -> 182 bytes .../d_scalar02_thumb.png | Bin 0 -> 124 bytes .../d_scatter_21.png | Bin 0 -> 176 bytes .../d_scatter_21_thumb.png | Bin 0 -> 117 bytes .../d_shapefile_4_00.png | Bin 0 -> 203 bytes .../d_shapefile_4_00_thumb.png | Bin 0 -> 165 bytes .../d_shapefile_4_01.png | Bin 0 -> 187 bytes .../d_shapefile_4_01_thumb.png | Bin 0 -> 136 bytes .../d_shapefile_4_02.png | Bin 0 -> 203 bytes .../d_shapefile_4_02_thumb.png | Bin 0 -> 180 bytes .../d_silo_41.png | Bin 0 -> 459 bytes .../d_silo_41_thumb.png | Bin 0 -> 282 bytes .../d_simplify_mixed02.png | Bin 0 -> 173 bytes .../d_simplify_mixed02_thumb.png | Bin 0 -> 99 bytes .../d_sph_2d.png | Bin 0 -> 418 bytes .../d_sph_2d_thumb.png | Bin 0 -> 458 bytes .../d_subset_02.png | Bin 0 -> 363 bytes .../d_subset_02_thumb.png | Bin 0 -> 247 bytes .../d_subset_03.png | Bin 0 -> 233 bytes .../d_subset_03_thumb.png | Bin 0 -> 150 bytes .../d_tecplot_04.png | Bin 0 -> 183 bytes .../d_tecplot_04_thumb.png | Bin 0 -> 126 bytes .../d_tecplot_05.png | Bin 0 -> 173 bytes .../d_tecplot_05_thumb.png | Bin 0 -> 102 bytes .../d_tecplot_12.png | Bin 0 -> 182 bytes .../d_tecplot_12_thumb.png | Bin 0 -> 124 bytes .../d_tecplot_15.png | Bin 0 -> 182 bytes .../d_tecplot_15_thumb.png | Bin 0 -> 125 bytes .../d_text3d03.png | Bin 0 -> 372 bytes .../d_text3d03_thumb.png | Bin 0 -> 309 bytes .../d_transparency_03.png | Bin 0 -> 272 bytes .../d_transparency_03_thumb.png | Bin 0 -> 178 bytes .../d_transparency_05.png | Bin 0 -> 865 bytes .../d_transparency_05_thumb.png | Bin 0 -> 610 bytes .../d_transparency_10.png | Bin 0 -> 184 bytes .../d_transparency_10_thumb.png | Bin 0 -> 118 bytes .../d_transparency_14.png | Bin 0 -> 173 bytes .../d_transparency_14_thumb.png | Bin 0 -> 99 bytes .../d_var02.png | Bin 0 -> 182 bytes .../d_var02_thumb.png | Bin 0 -> 124 bytes .../d_vector_16.png | Bin 0 -> 182 bytes .../d_vector_16_thumb.png | Bin 0 -> 124 bytes .../d_vector_17.png | Bin 0 -> 182 bytes .../d_vector_17_thumb.png | Bin 0 -> 124 bytes .../d_vector_18.png | Bin 0 -> 182 bytes .../d_vector_18_thumb.png | Bin 0 -> 124 bytes .../d_vector_19.png | Bin 0 -> 182 bytes .../d_vector_19_thumb.png | Bin 0 -> 124 bytes .../d_view_09.png | Bin 0 -> 173 bytes .../d_view_09_thumb.png | Bin 0 -> 105 bytes .../d_volume_20.png | Bin 0 -> 1376 bytes .../d_volume_20_thumb.png | Bin 0 -> 859 bytes .../d_volume_23.png | Bin 0 -> 1650 bytes .../d_volume_23_thumb.png | Bin 0 -> 992 bytes .../d_volume_24.png | Bin 0 -> 1629 bytes .../d_volume_24_thumb.png | Bin 0 -> 1079 bytes .../d_volume_33.png | Bin 0 -> 1238 bytes .../d_volume_33_thumb.png | Bin 0 -> 656 bytes .../d_volume_34.png | Bin 0 -> 1514 bytes .../d_volume_34_thumb.png | Bin 0 -> 841 bytes .../d_vtk_34a.png | Bin 0 -> 186 bytes .../d_vtk_34a_thumb.png | Bin 0 -> 133 bytes .../d_vtk_36.png | Bin 0 -> 188 bytes .../d_vtk_36_thumb.png | Bin 0 -> 138 bytes .../d_xdmf_6_00.png | Bin 0 -> 182 bytes .../d_xdmf_6_00_thumb.png | Bin 0 -> 124 bytes .../d_xdmf_6_01.png | Bin 0 -> 182 bytes .../d_xdmf_6_01_thumb.png | Bin 0 -> 124 bytes .../d_xdmf_6_02.png | Bin 0 -> 182 bytes .../d_xdmf_6_02_thumb.png | Bin 0 -> 125 bytes .../d_xdmf_7_02.png | Bin 0 -> 186 bytes .../d_xdmf_7_02_thumb.png | Bin 0 -> 135 bytes .../d_xdmf_7_03.png | Bin 0 -> 186 bytes .../d_xdmf_7_03_thumb.png | Bin 0 -> 135 bytes .../databases_ANALYZE.html | 84 + .../databases_ANALYZE_py.html | 113 + .../databases_ANSYS.html | 108 + .../databases_ANSYS_py.html | 217 ++ .../databases_CGNS.html | 206 ++ .../databases_CGNS_py.html | 389 ++ .../databases_Cale.html | 69 + .../databases_Cale_py.html | 65 + .../databases_Chombo.html | 77 + .../databases_Chombo_py.html | 101 + .../databases_Curve3D.html | 48 + .../databases_Curve3D_py.html | 157 + .../databases_EnSight.html | 102 + .../databases_EnSight_py.html | 84 + .../databases_FITS.html | 87 + .../databases_FITS_py.html | 124 + .../databases_FMS.html | 1156 ++++++ .../databases_FMS_py.html | 590 +++ .../databases_Fluent.html | 60 + .../databases_Fluent_py.html | 43 + .../databases_GDAL.html | 130 + .../databases_GDAL_py.html | 107 + .../databases_NASTRAN.html | 204 + .../databases_NASTRAN_py.html | 511 +++ .../databases_OpenFOAM.html | 210 ++ .../databases_OpenFOAM_py.html | 250 ++ .../databases_PATRAN.html | 120 + .../databases_PATRAN_py.html | 242 ++ .../databases_PLOT3D.html | 650 ++++ .../databases_PLOT3D_py.html | 217 ++ .../databases_ProteinDataBank.html | 252 ++ .../databases_ProteinDataBank_py.html | 366 ++ .../databases_RAW.html | 57 + .../databases_RAW_py.html | 94 + .../databases_SPCTH.html | 48 + .../databases_SPCTH_py.html | 36 + .../databases_Velodyne.html | 88 + .../databases_Velodyne_py.html | 79 + .../databases_WData.html | 60 + .../databases_WData_py.html | 58 + .../databases_Xmdv.html | 66 + .../databases_Xmdv_py.html | 105 + .../databases_Xolotl.html | 90 + .../databases_Xolotl_py.html | 47 + .../databases_activesource.html | 80 + .../databases_activesource_py.html | 82 + .../databases_adios2.html | 60 + .../databases_adios2_py.html | 115 + .../databases_avsucd.html | 60 + .../databases_avsucd_py.html | 41 + .../databases_blueprint.html | 3139 ++++++++++++++++ .../databases_blueprint_axom_klee.html | 196 + .../databases_blueprint_axom_klee_py.html | 213 ++ .../databases_blueprint_export.html | 1122 ++++++ .../databases_blueprint_export_py.html | 818 +++++ .../databases_blueprint_py.html | 985 +++++ .../databases_bov.html | 439 +++ .../databases_bov_py.html | 205 ++ .../databases_boxlib.html | 88 + .../databases_boxlib_py.html | 119 + .../databases_chgcar.html | 126 + .../databases_chgcar_py.html | 156 + .../databases_claw.html | 54 + .../databases_claw_py.html | 65 + .../databases_closedatabase.html | 94 + .../databases_closedatabase_py.html | 108 + .../databases_correlation.html | 510 +++ .../databases_correlation_py.html | 215 ++ .../databases_curve.html | 62 + .../databases_curve_py.html | 53 + .../databases_ddcMD.html | 181 + .../databases_ddcMD_py.html | 112 + .../databases_empty_db.html | 40 + .../databases_empty_db_py.html | 28 + .../databases_exodus.html | 244 ++ .../databases_exodus_py.html | 272 ++ .../databases_export_db.html | 526 +++ .../databases_export_db_py.html | 611 +++ .../databases_ffp.html | 60 + .../databases_ffp_py.html | 260 ++ .../databases_flash.html | 42 + .../databases_flash_py.html | 46 + .../databases_global_node_ids.html | 96 + .../databases_global_node_ids_py.html | 91 + .../databases_h5part.html | 60 + .../databases_h5part_py.html | 64 + .../databases_history.html | 48 + .../databases_history_py.html | 47 + .../databases_image.html | 60 + .../databases_image_py.html | 90 + .../databases_imgvol.html | 78 + .../databases_imgvol_py.html | 67 + .../databases_kulllite.html | 90 + .../databases_kulllite_py.html | 89 + .../databases_lata.html | 136 + .../databases_lata_py.html | 134 + .../databases_leos.html | 68 + .../databases_leos_py.html | 86 + .../databases_lines.html | 62 + .../databases_lines_py.html | 79 + .../databases_metadata.html | 200 + .../databases_metadata_py.html | 112 + .../databases_mfem.html | 2098 +++++++++++ .../databases_mfem_py.html | 270 ++ .../databases_mili.html | 378 ++ .../databases_mili_py.html | 572 +++ .../databases_miranda.html | 108 + .../databases_miranda_py.html | 156 + .../databases_moab.html | 62 + .../databases_moab_py.html | 61 + .../databases_multi_format.html | 60 + .../databases_multi_format2.html | 42 + .../databases_multi_format2_py.html | 53 + .../databases_multi_format_py.html | 66 + .../databases_netcdf.html | 212 ++ .../databases_netcdf_py.html | 425 +++ .../databases_obj.html | 126 + .../databases_obj_py.html | 85 + .../databases_oldsilo.html | 50 + .../databases_oldsilo_py.html | 38 + .../databases_openPMD.html | 47 + .../databases_openPMD_py.html | 40 + .../databases_openexr.html | 78 + .../databases_openexr_py.html | 54 + .../databases_overlink.html | 108 + .../databases_overlink_py.html | 152 + .../databases_pdbdatabase.html | 348 ++ .../databases_pdbdatabase_py.html | 247 ++ .../databases_pixie.html | 98 + .../databases_pixie_py.html | 161 + .../databases_plaintext.html | 87 + .../databases_plaintext_py.html | 341 ++ .../databases_rect.html | 99 + .../databases_rect_py.html | 98 + .../databases_reopen.html | 261 ++ .../databases_reopen_py.html | 550 +++ .../databases_sami.html | 78 + .../databases_sami_py.html | 80 + .../databases_samrai.html | 294 ++ .../databases_samrai_py.html | 413 +++ .../databases_scale_mesh.html | 42 + .../databases_scale_mesh_py.html | 28 + .../databases_shapefile.html | 189 + .../databases_shapefile_py.html | 236 ++ .../databases_silo.html | 707 ++++ .../databases_silo_altdriver.html | 32 + .../databases_silo_altdriver_py.html | 21 + .../databases_silo_datatypes.html | 79 + .../databases_silo_datatypes_py.html | 152 + .../databases_silo_py.html | 764 ++++ .../databases_singlemulti.html | 76 + .../databases_singlemulti_py.html | 116 + .../databases_sw4.html | 48 + .../databases_sw4_py.html | 50 + .../databases_tecplot.html | 200 + .../databases_tecplot_py.html | 323 ++ .../databases_timesliders.html | 256 ++ .../databases_timesliders_py.html | 247 ++ .../databases_uintah.html | 79 + .../databases_uintah_py.html | 66 + .../databases_unv.html | 78 + .../databases_unv_py.html | 206 ++ .../databases_vtk.html | 447 +++ .../databases_vtk_py.html | 494 +++ .../databases_wave_tv.html | 62 + .../databases_wave_tv_py.html | 88 + .../databases_xdmf.html | 349 ++ .../databases_xdmf_py.html | 448 +++ .../databases_xform_precision.html | 72 + .../databases_xform_precision_py.html | 86 + .../databases_xyz.html | 76 + .../databases_xyz_py.html | 81 + .../expressions_ghost_zoneid_expr.html | 58 + .../expressions_ghost_zoneid_expr_py.html | 46 + .../expressions_global_stats.html | 292 ++ .../expressions_global_stats_py.html | 130 + .../expressions_math_expr.html | 60 + .../expressions_math_expr_py.html | 50 + .../expressions_tensor_expr.html | 194 + .../expressions_tensor_expr_py.html | 262 ++ .../faulttolerance_badfile.html | 40 + .../faulttolerance_badfile_py.html | 34 + .../faulttolerance_checkmode.html | 60 + .../faulttolerance_checkmode_py.html | 111 + .../faulttolerance_savewindow.html | 40 + .../faulttolerance_savewindow_py.html | 57 + .../hybrid_cinema-a.html | 108 + .../hybrid_cinema-a_py.html | 214 ++ .../hybrid_cinema-c.html | 210 ++ .../hybrid_cinema-c_py.html | 258 ++ .../hybrid_cleanzonesonly.html | 120 + .../hybrid_cleanzonesonly_py.html | 135 + .../hybrid_clonefirstref.html | 72 + .../hybrid_clonefirstref_py.html | 62 + .../hybrid_conditional.html | 72 + .../hybrid_conditional_py.html | 96 + .../hybrid_conn_cmfe.html | 102 + .../hybrid_conn_cmfe_py.html | 138 + .../hybrid_coord_expr.html | 84 + .../hybrid_coord_expr_py.html | 65 + .../hybrid_curve_anim.html | 76 + .../hybrid_curve_anim_py.html | 77 + .../hybrid_curve_expressions.html | 63 + .../hybrid_curve_expressions_py.html | 50 + .../hybrid_cylindrical_radius.html | 96 + .../hybrid_cylindrical_radius_py.html | 232 ++ .../hybrid_ddf.html | 77 + .../hybrid_ddf_py.html | 172 + .../hybrid_defvar_anim.html | 54 + .../hybrid_defvar_anim_py.html | 61 + .../hybrid_expr2engine.html | 56 + .../hybrid_expr2engine_py.html | 67 + .../hybrid_exprList.html | 56 + .../hybrid_exprList_py.html | 65 + .../hybrid_expr_cmfe.html | 66 + .../hybrid_expr_cmfe_py.html | 66 + .../hybrid_expressions.html | 304 ++ .../hybrid_expressions_py.html | 464 +++ .../hybrid_field_operators.html | 144 + .../hybrid_field_operators_py.html | 258 ++ .../hybrid_ghost_node.html | 42 + .../hybrid_ghost_node_py.html | 45 + .../hybrid_image_proc.html | 54 + .../hybrid_image_proc_py.html | 34 + .../hybrid_keyframe.html | 501 +++ .../hybrid_keyframe_py.html | 544 +++ .../hybrid_lambda2.html | 54 + .../hybrid_lambda2_py.html | 53 + .../hybrid_lineout.html | 251 ++ .../hybrid_lineout_py.html | 661 ++++ .../hybrid_locktime.html | 124 + .../hybrid_locktime_py.html | 125 + .../hybrid_locus.html | 36 + .../hybrid_locus_py.html | 148 + .../hybrid_math_expr.html | 60 + .../hybrid_math_expr_py.html | 44 + .../hybrid_matsel.html | 54 + .../hybrid_matsel_py.html | 96 + .../hybrid_matvf.html | 120 + .../hybrid_matvf_py.html | 249 ++ .../hybrid_merge_tree.html | 108 + .../hybrid_merge_tree_py.html | 64 + .../hybrid_mesh_quality.html | 95 + .../hybrid_mesh_quality_py.html | 160 + .../hybrid_mir.html | 168 + .../hybrid_mir_cache.html | 48 + .../hybrid_mir_cache_py.html | 65 + .../hybrid_mir_py.html | 73 + .../hybrid_missingdata.html | 100 + .../hybrid_missingdata_py.html | 72 + .../hybrid_multivar.html | 60 + .../hybrid_multivar_py.html | 108 + .../hybrid_pos_cmfe.html | 108 + .../hybrid_pos_cmfe_py.html | 149 + .../hybrid_py_exprs.html | 78 + .../hybrid_py_exprs_py.html | 106 + .../hybrid_qcrit.html | 54 + .../hybrid_qcrit_py.html | 54 + .../hybrid_replace.html | 72 + .../hybrid_replace_py.html | 97 + .../hybrid_sil.html | 70 + .../hybrid_sil_py.html | 87 + .../hybrid_simplify_mixed.html | 74 + .../hybrid_simplify_mixed_py.html | 90 + .../hybrid_specmf.html | 48 + .../hybrid_specmf_py.html | 42 + .../hybrid_symm.html | 100 + .../hybrid_symm_py.html | 114 + .../hybrid_time_cmfe.html | 108 + .../hybrid_time_cmfe_py.html | 93 + .../hybrid_time_deriv_cmfe.html | 54 + .../hybrid_time_deriv_cmfe_py.html | 35 + .../hybrid_time_iteration.html | 54 + .../hybrid_time_iteration_py.html | 41 + .../hybrid_timelock.html | 189 + .../hybrid_timelock_py.html | 378 ++ .../hybrid_val4mat.html | 66 + .../hybrid_val4mat_py.html | 76 + .../hybrid_vtkm.html | 372 ++ .../hybrid_vtkm_py.html | 779 ++++ .../index.html | 2472 +++++++++++++ .../js/jquery-3.6.1.min.js | 2 + .../js/jquery.tablesorter.js | 1046 ++++++ .../js/purl.js | 271 ++ .../meshtype_arbpoly.html | 90 + .../meshtype_arbpoly_py.html | 124 + .../meshtype_csg.html | 80 + .../meshtype_csg_py.html | 177 + .../meshtype_degen_mesh.html | 84 + .../meshtype_degen_mesh_py.html | 260 ++ .../meshtype_emptydomains.html | 104 + .../meshtype_emptydomains_py.html | 132 + .../meshtype_globe.html | 72 + .../meshtype_globe_py.html | 85 + .../meshtype_point.html | 142 + .../meshtype_point_py.html | 174 + .../meshtype_rect3d.html | 48 + .../meshtype_rect3d_py.html | 80 + .../missingdata_0_04.html | 66 + .../operators_amr_stitch.html | 84 + .../operators_amr_stitch_py.html | 49 + .../operators_box.html | 84 + .../operators_box_py.html | 155 + .../operators_cart_proj.html | 60 + .../operators_cart_proj_py.html | 60 + .../operators_clip.html | 180 + .../operators_clip_py.html | 143 + .../operators_cracksclipper.html | 72 + .../operators_cracksclipper_py.html | 54 + .../operators_defer_expr.html | 114 + .../operators_defer_expr_py.html | 248 ++ .../operators_displace.html | 94 + .../operators_displace_py.html | 129 + .../operators_dual_mesh.html | 114 + .../operators_dual_mesh_py.html | 111 + .../operators_elevate.html | 132 + .../operators_elevate_py.html | 164 + .../operators_ex_surf.html | 56 + .../operators_ex_surf_py.html | 51 + .../operators_explode.html | 184 + .../operators_explode_py.html | 580 +++ .../operators_extrudeStacked.html | 339 ++ .../operators_extrudeStacked_py.html | 283 ++ .../operators_ic_geometry.html | 166 + .../operators_ic_geometry_py.html | 379 ++ .../operators_ic_integration.html | 106 + .../operators_ic_integration_py.html | 115 + .../operators_ic_pathlines.html | 86 + .../operators_ic_pathlines_py.html | 160 + .../operators_ic_pics.html | 1392 +++++++ .../operators_ic_pics_py.html | 114 + .../operators_ic_streamlines.html | 110 + .../operators_ic_streamlines_py.html | 220 ++ .../operators_ic_termination.html | 84 + .../operators_ic_termination_py.html | 91 + .../operators_indexselect.html | 273 ++ .../operators_indexselect_py.html | 621 ++++ .../operators_inverse_ghost_zone.html | 74 + .../operators_inverse_ghost_zone_py.html | 76 + .../operators_isovolume.html | 78 + .../operators_isovolume_py.html | 160 + .../operators_lcs.html | 149 + .../operators_lcs_ic_1.html | 66 + .../operators_lcs_ic_1_py.html | 17 + .../operators_lcs_lc_1.html | 66 + .../operators_lcs_lc_1_py.html | 17 + .../operators_lcs_py.html | 181 + .../operators_moveoperators.html | 116 + .../operators_moveoperators_py.html | 226 ++ .../operators_multires.html | 48 + .../operators_multires_py.html | 34 + .../operators_onionpeel.html | 486 +++ .../operators_onionpeel_py.html | 643 ++++ .../operators_operators.html | 78 + .../operators_operators_py.html | 141 + .../operators_persistent_particles.html | 72 + .../operators_persistent_particles_py.html | 173 + .../operators_radial_resample.html | 60 + .../operators_radial_resample_py.html | 135 + .../operators_reflect.html | 152 + .../operators_reflect_py.html | 343 ++ .../operators_remap.html | 264 ++ .../operators_remap_py.html | 133 + .../operators_resample.html | 74 + .../operators_resample_py.html | 124 + .../operators_revolve.html | 42 + .../operators_revolve_py.html | 35 + .../operators_slice.html | 297 ++ .../operators_slice_py.html | 590 +++ .../operators_sph_resample.html | 44 + .../operators_sph_resample_py.html | 51 + .../operators_tessellate.html | 168 + .../operators_tessellate_py.html | 286 ++ .../operators_threeslice.html | 54 + .../operators_threeslice_py.html | 49 + .../operators_threshold.html | 108 + .../operators_threshold_py.html | 275 ++ .../operators_transform.html | 100 + .../operators_transform_py.html | 228 ++ .../operators_tube.html | 72 + .../operators_tube_py.html | 64 + .../plots_contour.html | 246 ++ .../plots_contour_py.html | 183 + .../plots_curve.html | 361 ++ .../plots_curve_py.html | 488 +++ .../plots_filledboundary.html | 84 + .../plots_filledboundary_py.html | 110 + .../plots_label.html | 550 +++ .../plots_label_py.html | 1005 +++++ .../plots_mesh.html | 251 ++ .../plots_mesh_c.html | 251 ++ .../plots_mesh_c_py.html | 21 + .../plots_mesh_py.html | 446 +++ .../plots_molecule.html | 123 + .../plots_molecule_py.html | 242 ++ .../plots_multicolor.html | 201 + .../plots_multicolor_py.html | 229 ++ .../plots_parcoords.html | 129 + .../plots_parcoords_py.html | 196 + .../plots_pseudocolor.html | 429 +++ .../plots_pseudocolor_py.html | 556 +++ .../plots_ray_trace.html | 108 + .../plots_ray_trace_py.html | 220 ++ .../plots_scatter.html | 209 ++ .../plots_scatter_py.html | 343 ++ .../plots_singlecolor.html | 54 + .../plots_singlecolor_py.html | 77 + .../plots_subset.html | 139 + .../plots_subset_py.html | 190 + .../plots_surface.html | 96 + .../plots_surface_py.html | 101 + .../plots_tensor.html | 84 + .../plots_tensor_py.html | 161 + .../plots_truecolor.html | 42 + .../plots_truecolor_py.html | 21 + .../plots_vector.html | 158 + .../plots_vector_py.html | 244 ++ .../plots_volumePlot.html | 231 ++ .../plots_volumePlot_py.html | 663 ++++ .../plugins_databasesVsInstall.html | 40 + .../plugins_databasesVsInstall_py.html | 31 + .../plugins_operatorsVsInstall.html | 40 + .../plugins_operatorsVsInstall_py.html | 29 + .../plugins_plotsVsInstall.html | 40 + .../plugins_plotsVsInstall_py.html | 29 + .../queries_avg_value.html | 58 + .../queries_avg_value_py.html | 63 + .../queries_bestfitline.html | 100 + .../queries_bestfitline_py.html | 204 + .../queries_casetest.html | 40 + .../queries_casetest_py.html | 69 + .../queries_centroid.html | 88 + .../queries_centroid_py.html | 130 + .../queries_conncomp.html | 162 + .../queries_conncomp_py.html | 240 ++ .../queries_consistencyChecks.html | 64 + .../queries_consistencyChecks_py.html | 114 + .../queries_curvature.html | 54 + .../queries_curvature_py.html | 63 + .../queries_database.html | 100 + .../queries_database_py.html | 1083 ++++++ .../queries_error_queries.html | 100 + .../queries_error_queries_py.html | 89 + .../queries_gridinformation.html | 56 + .../queries_gridinformation_py.html | 43 + .../queries_hohlraum.html | 90 + .../queries_hohlraum_py.html | 112 + .../queries_kurtosis.html | 60 + .../queries_kurtosis_py.html | 49 + .../queries_l2norm.html | 56 + .../queries_l2norm_py.html | 107 + .../queries_length.html | 50 + .../queries_length_py.html | 58 + .../queries_line_scan.html | 474 +++ .../queries_line_scan_py.html | 203 + .../queries_pick.html | 284 ++ .../queries_pickNamedArgs.html | 90 + .../queries_pickNamedArgs_py.html | 242 ++ .../queries_pick_py.html | 3268 +++++++++++++++++ .../queries_pickarray.html | 96 + .../queries_pickarray_py.html | 137 + .../queries_pickcleanzonesonly.html | 48 + .../queries_pickcleanzonesonly_py.html | 57 + .../queries_py_queries.html | 44 + .../queries_py_queries_py.html | 40 + .../queries_queriesOverTime.html | 324 ++ .../queries_queriesOverTime_py.html | 1065 ++++++ .../queries_queryMultiWindow.html | 40 + .../queries_queryMultiWindow_py.html | 154 + .../queries_revolved_surface_area.html | 56 + .../queries_revolved_surface_area_py.html | 85 + .../queries_scf.html | 96 + .../queries_scf_py.html | 150 + .../queries_surface_area_over_time.html | 66 + .../queries_surface_area_over_time_py.html | 144 + .../queries_variable_sum_volume.html | 68 + .../queries_variable_sum_volume_py.html | 69 + .../queries_watertight.html | 44 + .../queries_watertight_py.html | 40 + .../queries_xrayimage.html | 1894 ++++++++++ .../queries_xrayimage_py.html | 1341 +++++++ .../quickrecipes_cl_args.html | 44 + .../quickrecipes_cl_args_py.html | 30 + .../quickrecipes_colortables.html | 72 + .../quickrecipes_colortables_py.html | 217 ++ .../quickrecipes_expressions.html | 42 + .../quickrecipes_expressions_py.html | 62 + .../quickrecipes_operators.html | 52 + .../quickrecipes_operators_py.html | 80 + .../quickrecipes_quantitative_operations.html | 116 + ...ickrecipes_quantitative_operations_py.html | 219 ++ .../quickrecipes_saving_images.html | 52 + .../quickrecipes_saving_images_py.html | 56 + .../quickrecipes_subsetting.html | 52 + .../quickrecipes_subsetting_py.html | 67 + .../quickrecipes_view.html | 60 + .../quickrecipes_view_py.html | 159 + ...quickrecipes_working_with_annotations.html | 76 + ...ckrecipes_working_with_annotations_py.html | 195 + .../quickrecipes_working_with_dbs.html | 68 + .../quickrecipes_working_with_dbs_py.html | 78 + .../quickrecipes_working_with_plots.html | 76 + .../quickrecipes_working_with_plots_py.html | 196 + .../rendering_annot_macros.html | 301 ++ .../rendering_annot_macros_py.html | 219 ++ .../rendering_annotation.html | 294 ++ .../rendering_annotation_py.html | 469 +++ .../rendering_axislabels.html | 150 + .../rendering_axislabels_py.html | 141 + .../rendering_axistitles.html | 120 + .../rendering_axistitles_py.html | 170 + .../rendering_bigdata.html | 54 + .../rendering_bigdata_py.html | 36 + .../rendering_colortexture.html | 66 + .../rendering_colortexture_py.html | 86 + .../rendering_compositing.html | 44 + .../rendering_compositing_py.html | 40 + .../rendering_evalcubic.html | 66 + .../rendering_evalcubic_py.html | 123 + .../rendering_image.html | 54 + .../rendering_image_py.html | 46 + .../rendering_legends.html | 435 +++ .../rendering_legends_py.html | 597 +++ .../rendering_lighting.html | 54 + .../rendering_lighting_py.html | 113 + .../rendering_line2d.html | 102 + .../rendering_line2d_py.html | 101 + .../rendering_line3d.html | 114 + .../rendering_line3d_py.html | 104 + .../rendering_offscreensave.html | 122 + .../rendering_offscreensave_py.html | 194 + .../rendering_pixeldata.html | 186 + .../rendering_pixeldata_py.html | 215 ++ .../rendering_pointGlyphing.html | 900 +++++ .../rendering_pointGlyphing_py.html | 65 + .../rendering_renderpoints.html | 444 +++ .../rendering_renderpoints_py.html | 347 ++ .../rendering_saveformats.html | 120 + .../rendering_saveformats_py.html | 272 ++ .../rendering_scalable.html | 117 + .../rendering_scalable2.html | 53 + .../rendering_scalable2_py.html | 113 + .../rendering_scalable_c.html | 117 + .../rendering_scalable_c_py.html | 21 + .../rendering_scalable_py.html | 392 ++ .../rendering_shadows.html | 54 + .../rendering_shadows_py.html | 55 + .../rendering_specular.html | 102 + .../rendering_specular_py.html | 124 + .../rendering_text2d.html | 108 + .../rendering_text2d_py.html | 123 + .../rendering_text3d.html | 104 + .../rendering_text3d_py.html | 103 + .../rendering_timeslider.html | 174 + .../rendering_timeslider_py.html | 162 + .../rendering_transparency.html | 140 + .../rendering_transparency_py.html | 315 ++ .../rendering_view.html | 251 ++ .../rendering_viewChange.html | 222 ++ .../rendering_viewChange_py.html | 450 +++ .../rendering_view_py.html | 382 ++ .../rendering_volume.html | 54 + .../rendering_volume_py.html | 113 + .../rendering_volume_rect_multiDomain.html | 87 + .../rendering_volume_rect_multiDomain_py.html | 95 + .../rendering_volume_rect_singleDomain.html | 99 + ...rendering_volume_rect_singleDomain_py.html | 111 + .../rendering_volume_ucd_multiDomain.html | 83 + .../rendering_volume_ucd_multiDomain_py.html | 105 + .../session_colortable.html | 42 + .../session_colortable_py.html | 34 + .../session_correlationsession.html | 94 + .../session_correlationsession_py.html | 95 + .../session_legendproperties.html | 48 + .../session_legendproperties_py.html | 48 + .../session_rect3d-contour.html | 42 + .../session_rect3d-contour_py.html | 25 + .../session_restorewithsources.html | 48 + .../session_restorewithsources_py.html | 42 + .../session_selection.html | 42 + .../session_selection_py.html | 29 + .../session_sessionexpression.html | 42 + .../session_sessionexpression_py.html | 27 + .../session_sessionview.html | 66 + .../session_sessionview_py.html | 55 + .../session_textannot.html | 66 + .../session_textannot_py.html | 38 + .../session_view3d.html | 42 + .../session_view3d_py.html | 29 + .../session_wavecontour.html | 42 + .../session_wavecontour_py.html | 29 + .../simulation_amr.html | 72 + .../simulation_amr_py.html | 58 + .../simulation_aresamr.html | 62 + .../simulation_aresamr_py.html | 48 + .../simulation_batch.html | 426 +++ .../simulation_batch_py.html | 393 ++ .../simulation_csg.html | 114 + .../simulation_csg_py.html | 64 + .../simulation_curve.html | 66 + .../simulation_curve_py.html | 61 + .../simulation_domainbounds.html | 56 + .../simulation_domainbounds_py.html | 47 + .../simulation_domainlist.html | 108 + .../simulation_domainlist_py.html | 125 + .../simulation_ghostcells.html | 194 + .../simulation_ghostcells_py.html | 84 + .../simulation_globalids.html | 196 + .../simulation_globalids_py.html | 218 ++ .../simulation_interleave.html | 188 + .../simulation_interleave_py.html | 86 + .../simulation_life.html | 58 + .../simulation_life_py.html | 43 + .../simulation_mandelbrot.html | 78 + .../simulation_mandelbrot_py.html | 77 + .../simulation_material.html | 62 + .../simulation_material_py.html | 59 + .../simulation_materialvar.html | 124 + .../simulation_materialvar_py.html | 58 + .../simulation_mesh.html | 62 + .../simulation_mesh_py.html | 53 + .../simulation_multiblock.html | 76 + .../simulation_multiblock_py.html | 56 + .../simulation_point.html | 92 + .../simulation_point_py.html | 79 + .../simulation_polyhedral.html | 68 + .../simulation_polyhedral_py.html | 64 + .../simulation_scalar.html | 58 + .../simulation_scalar_py.html | 57 + .../simulation_species.html | 137 + .../simulation_species_py.html | 83 + .../simulation_ucdcurve.html | 66 + .../simulation_ucdcurve_py.html | 72 + .../simulation_unstructured.html | 50 + .../simulation_unstructured_py.html | 44 + .../simulation_updateplots.html | 90 + .../simulation_updateplots_py.html | 89 + .../simulation_updateplots_session.html | 99 + .../simulation_updateplots_session_py.html | 88 + .../simulation_var.html | 58 + .../simulation_var_py.html | 62 + .../simulation_zerocopy.html | 285 ++ .../simulation_zerocopy_py.html | 178 + .../unit_annotation_objects.html | 44 + .../unit_annotation_objects_py.html | 30 + .../unit_atts_assign.html | 1782 +++++++++ .../unit_atts_assign_py.html | 1211 ++++++ .../unit_compiler_warnings.html | 36 + .../unit_compiler_warnings_py.html | 213 ++ .../unit_convert2to3.html | 44 + .../unit_convert2to3_py.html | 34 + .../unit_default_methods.html | 64 + .../unit_default_methods_py.html | 62 + .../unit_launcher.html | 120 + .../unit_launcher_py.html | 196 + .../unit_mrucache.html | 40 + .../unit_mrucache_py.html | 24 + .../unit_namescheme.html | 36 + .../unit_namescheme_py.html | 27 + .../unit_protocol.html | 36 + .../unit_protocol_py.html | 17 + .../unit_stringhelpers.html | 36 + .../unit_stringhelpers_py.html | 26 + .../unit_test_value_simple.html | 120 + .../unit_test_value_simple_py.html | 56 + .../unit_utility.html | 36 + .../unit_utility_py.html | 27 + .../zerocopy02.html | 31 + .../poodle_trunk_serial/Pick3DTo2D.html | 1896 ++++++++++ .../poodle_trunk_serial/avg_value_02.html | 31 + .../poodle_trunk_serial/c_Pick3DTo2D.txt | 374 ++ .../c_annot_macros_tafile_2.png | Bin 0 -> 3651 bytes .../c_annot_macros_tafile_2_thumb.png | Bin 0 -> 2292 bytes .../c_annot_macros_tafile_6.png | Bin 0 -> 3628 bytes .../c_annot_macros_tafile_6_thumb.png | Bin 0 -> 2160 bytes .../poodle_trunk_serial/c_avg_value_02.txt | 1 + ...l_rectilinear.root_plot_revolved_to_3D.png | Bin 0 -> 2639 bytes ...ilinear.root_plot_revolved_to_3D_thumb.png | Bin 0 -> 2414 bytes ..._unstructured.root_plot_revolved_to_3D.png | Bin 0 -> 911 bytes ...uctured.root_plot_revolved_to_3D_thumb.png | Bin 0 -> 289 bytes .../poodle_trunk_serial/c_life03.png | Bin 0 -> 4829 bytes .../poodle_trunk_serial/c_life03_thumb.png | Bin 0 -> 12766 bytes .../c_ops_dualmesh_mesh_plot_2d_01.png | Bin 0 -> 1507 bytes .../c_ops_dualmesh_mesh_plot_2d_01_thumb.png | Bin 0 -> 545 bytes .../c_ospray_domain_boundaries_00.png | Bin 0 -> 47237 bytes .../c_ospray_domain_boundaries_00_thumb.png | Bin 0 -> 6531 bytes .../poodle_trunk_serial/c_pixeldata_0_05.png | Bin 0 -> 72174 bytes .../c_pixeldata_0_05_thumb.png | Bin 0 -> 15382 bytes .../poodle_trunk_serial/c_pixeldata_0_07.png | Bin 0 -> 74391 bytes .../c_pixeldata_0_07_thumb.png | Bin 0 -> 17422 bytes .../poodle_trunk_serial/c_pixeldata_0_08.png | Bin 0 -> 13609 bytes .../c_pixeldata_0_08_thumb.png | Bin 0 -> 11432 bytes .../poodle_trunk_serial/c_pixeldata_0_09.png | Bin 0 -> 72206 bytes .../c_pixeldata_0_09_thumb.png | Bin 0 -> 15387 bytes .../poodle_trunk_serial/c_pixeldata_0_10.png | Bin 0 -> 15151 bytes .../c_pixeldata_0_10_thumb.png | Bin 0 -> 13053 bytes .../poodle_trunk_serial/c_pixeldata_0_11.png | Bin 0 -> 74458 bytes .../c_pixeldata_0_11_thumb.png | Bin 0 -> 17243 bytes .../poodle_trunk_serial/css/styles.css | 96 + .../d_annot_macros_tafile_2.png | Bin 0 -> 222 bytes .../d_annot_macros_tafile_2_thumb.png | Bin 0 -> 166 bytes .../d_annot_macros_tafile_6.png | Bin 0 -> 222 bytes .../d_annot_macros_tafile_6_thumb.png | Bin 0 -> 166 bytes ...l_rectilinear.root_plot_revolved_to_3D.png | Bin 0 -> 1269 bytes ...ilinear.root_plot_revolved_to_3D_thumb.png | Bin 0 -> 765 bytes ..._unstructured.root_plot_revolved_to_3D.png | Bin 0 -> 1269 bytes ...uctured.root_plot_revolved_to_3D_thumb.png | Bin 0 -> 765 bytes .../poodle_trunk_serial/d_life03.png | Bin 0 -> 3565 bytes .../poodle_trunk_serial/d_life03_thumb.png | Bin 0 -> 5828 bytes .../d_ops_dualmesh_mesh_plot_2d_01.png | Bin 0 -> 353 bytes .../d_ops_dualmesh_mesh_plot_2d_01_thumb.png | Bin 0 -> 229 bytes .../d_ospray_domain_boundaries_00.png | Bin 0 -> 183 bytes .../d_ospray_domain_boundaries_00_thumb.png | Bin 0 -> 121 bytes .../poodle_trunk_serial/d_pixeldata_0_05.png | Bin 0 -> 2715 bytes .../d_pixeldata_0_05_thumb.png | Bin 0 -> 2068 bytes .../poodle_trunk_serial/d_pixeldata_0_07.png | Bin 0 -> 2914 bytes .../d_pixeldata_0_07_thumb.png | Bin 0 -> 2371 bytes .../poodle_trunk_serial/d_pixeldata_0_08.png | Bin 0 -> 2714 bytes .../d_pixeldata_0_08_thumb.png | Bin 0 -> 2065 bytes .../poodle_trunk_serial/d_pixeldata_0_09.png | Bin 0 -> 2715 bytes .../d_pixeldata_0_09_thumb.png | Bin 0 -> 2068 bytes .../poodle_trunk_serial/d_pixeldata_0_10.png | Bin 0 -> 2904 bytes .../d_pixeldata_0_10_thumb.png | Bin 0 -> 2368 bytes .../poodle_trunk_serial/d_pixeldata_0_11.png | Bin 0 -> 2914 bytes .../d_pixeldata_0_11_thumb.png | Bin 0 -> 2371 bytes .../databases_ANALYZE.html | 84 + .../databases_ANALYZE_py.html | 113 + .../poodle_trunk_serial/databases_ANSYS.html | 108 + .../databases_ANSYS_py.html | 217 ++ .../poodle_trunk_serial/databases_CGNS.html | 204 + .../databases_CGNS_py.html | 389 ++ .../poodle_trunk_serial/databases_Cale.html | 69 + .../databases_Cale_py.html | 65 + .../poodle_trunk_serial/databases_Chombo.html | 73 + .../databases_Chombo_py.html | 101 + .../databases_Curve3D.html | 48 + .../databases_Curve3D_py.html | 157 + .../databases_EnSight.html | 102 + .../databases_EnSight_py.html | 84 + .../poodle_trunk_serial/databases_FITS.html | 87 + .../databases_FITS_py.html | 124 + .../poodle_trunk_serial/databases_FMS.html | 1156 ++++++ .../poodle_trunk_serial/databases_FMS_py.html | 590 +++ .../poodle_trunk_serial/databases_Fluent.html | 60 + .../databases_Fluent_py.html | 43 + .../poodle_trunk_serial/databases_GDAL.html | 126 + .../databases_GDAL_py.html | 107 + .../databases_NASTRAN.html | 204 + .../databases_NASTRAN_py.html | 511 +++ .../databases_OpenFOAM.html | 210 ++ .../databases_OpenFOAM_py.html | 250 ++ .../poodle_trunk_serial/databases_PATRAN.html | 120 + .../databases_PATRAN_py.html | 242 ++ .../poodle_trunk_serial/databases_PLOT3D.html | 650 ++++ .../databases_PLOT3D_py.html | 217 ++ .../databases_ProteinDataBank.html | 252 ++ .../databases_ProteinDataBank_py.html | 366 ++ .../poodle_trunk_serial/databases_RAW.html | 57 + .../poodle_trunk_serial/databases_RAW_py.html | 94 + .../poodle_trunk_serial/databases_SPCTH.html | 48 + .../databases_SPCTH_py.html | 36 + .../databases_Velodyne.html | 88 + .../databases_Velodyne_py.html | 79 + .../poodle_trunk_serial/databases_WData.html | 60 + .../databases_WData_py.html | 58 + .../poodle_trunk_serial/databases_Xmdv.html | 66 + .../databases_Xmdv_py.html | 105 + .../poodle_trunk_serial/databases_Xolotl.html | 90 + .../databases_Xolotl_py.html | 47 + .../databases_activesource.html | 80 + .../databases_activesource_py.html | 82 + .../poodle_trunk_serial/databases_adios2.html | 60 + .../databases_adios2_py.html | 115 + .../poodle_trunk_serial/databases_avsucd.html | 60 + .../databases_avsucd_py.html | 41 + .../databases_blueprint.html | 3041 +++++++++++++++ .../databases_blueprint_axom_klee.html | 196 + .../databases_blueprint_axom_klee_py.html | 213 ++ .../databases_blueprint_export.html | 1122 ++++++ .../databases_blueprint_export_py.html | 818 +++++ .../databases_blueprint_py.html | 985 +++++ .../poodle_trunk_serial/databases_bov.html | 423 +++ .../poodle_trunk_serial/databases_bov_py.html | 205 ++ .../poodle_trunk_serial/databases_boxlib.html | 80 + .../databases_boxlib_py.html | 119 + .../poodle_trunk_serial/databases_chgcar.html | 120 + .../databases_chgcar_py.html | 156 + .../poodle_trunk_serial/databases_claw.html | 54 + .../databases_claw_py.html | 65 + .../databases_closedatabase.html | 94 + .../databases_closedatabase_py.html | 108 + .../databases_correlation.html | 510 +++ .../databases_correlation_py.html | 215 ++ .../poodle_trunk_serial/databases_curve.html | 60 + .../databases_curve_py.html | 53 + .../poodle_trunk_serial/databases_ddcMD.html | 159 + .../databases_ddcMD_py.html | 112 + .../databases_empty_db.html | 40 + .../databases_empty_db_py.html | 28 + .../poodle_trunk_serial/databases_exodus.html | 238 ++ .../databases_exodus_py.html | 272 ++ .../databases_export_db.html | 299 ++ .../databases_export_db_py.html | 611 +++ .../poodle_trunk_serial/databases_ffp.html | 60 + .../poodle_trunk_serial/databases_ffp_py.html | 260 ++ .../poodle_trunk_serial/databases_flash.html | 42 + .../databases_flash_py.html | 46 + .../databases_global_node_ids.html | 96 + .../databases_global_node_ids_py.html | 91 + .../poodle_trunk_serial/databases_h5part.html | 60 + .../databases_h5part_py.html | 64 + .../databases_history.html | 48 + .../databases_history_py.html | 47 + .../poodle_trunk_serial/databases_image.html | 60 + .../databases_image_py.html | 90 + .../poodle_trunk_serial/databases_imgvol.html | 78 + .../databases_imgvol_py.html | 67 + .../databases_kulllite.html | 84 + .../databases_kulllite_py.html | 89 + .../poodle_trunk_serial/databases_lata.html | 126 + .../databases_lata_py.html | 134 + .../poodle_trunk_serial/databases_leos.html | 66 + .../databases_leos_py.html | 86 + .../poodle_trunk_serial/databases_lines.html | 62 + .../databases_lines_py.html | 79 + .../databases_metadata.html | 200 + .../databases_metadata_py.html | 112 + .../poodle_trunk_serial/databases_mfem.html | 1980 ++++++++++ .../databases_mfem_py.html | 270 ++ .../poodle_trunk_serial/databases_mili.html | 378 ++ .../databases_mili_py.html | 572 +++ .../databases_miranda.html | 108 + .../databases_miranda_py.html | 156 + .../poodle_trunk_serial/databases_moab.html | 60 + .../databases_moab_py.html | 61 + .../databases_multi_format.html | 60 + .../databases_multi_format2.html | 42 + .../databases_multi_format2_py.html | 53 + .../databases_multi_format_py.html | 66 + .../poodle_trunk_serial/databases_netcdf.html | 210 ++ .../databases_netcdf_py.html | 425 +++ .../poodle_trunk_serial/databases_obj.html | 126 + .../poodle_trunk_serial/databases_obj_py.html | 85 + .../databases_oldsilo.html | 48 + .../databases_oldsilo_py.html | 38 + .../databases_openPMD.html | 45 + .../databases_openPMD_py.html | 40 + .../databases_openexr.html | 78 + .../databases_openexr_py.html | 54 + .../databases_overlink.html | 108 + .../databases_overlink_py.html | 152 + .../databases_pdbdatabase.html | 348 ++ .../databases_pdbdatabase_py.html | 247 ++ .../poodle_trunk_serial/databases_pixie.html | 90 + .../databases_pixie_py.html | 161 + .../databases_plaintext.html | 87 + .../databases_plaintext_py.html | 341 ++ .../poodle_trunk_serial/databases_rect.html | 93 + .../databases_rect_py.html | 98 + .../poodle_trunk_serial/databases_reopen.html | 261 ++ .../databases_reopen_py.html | 550 +++ .../poodle_trunk_serial/databases_sami.html | 78 + .../databases_sami_py.html | 80 + .../poodle_trunk_serial/databases_samrai.html | 294 ++ .../databases_samrai_py.html | 413 +++ .../databases_scale_mesh.html | 42 + .../databases_scale_mesh_py.html | 28 + .../databases_shapefile.html | 183 + .../databases_shapefile_py.html | 236 ++ .../poodle_trunk_serial/databases_silo.html | 705 ++++ .../databases_silo_altdriver.html | 703 ++++ .../databases_silo_altdriver_py.html | 21 + .../databases_silo_datatypes.html | 79 + .../databases_silo_datatypes_py.html | 152 + .../databases_silo_py.html | 764 ++++ .../databases_singlemulti.html | 76 + .../databases_singlemulti_py.html | 116 + .../poodle_trunk_serial/databases_sw4.html | 48 + .../poodle_trunk_serial/databases_sw4_py.html | 50 + .../databases_tecplot.html | 192 + .../databases_tecplot_py.html | 323 ++ .../databases_timesliders.html | 256 ++ .../databases_timesliders_py.html | 247 ++ .../poodle_trunk_serial/databases_uintah.html | 79 + .../databases_uintah_py.html | 66 + .../poodle_trunk_serial/databases_unv.html | 78 + .../poodle_trunk_serial/databases_unv_py.html | 206 ++ .../poodle_trunk_serial/databases_vtk.html | 443 +++ .../poodle_trunk_serial/databases_vtk_py.html | 494 +++ .../databases_wave_tv.html | 62 + .../databases_wave_tv_py.html | 88 + .../poodle_trunk_serial/databases_xdmf.html | 339 ++ .../databases_xdmf_py.html | 448 +++ .../databases_xform_precision.html | 72 + .../databases_xform_precision_py.html | 86 + .../poodle_trunk_serial/databases_xyz.html | 76 + .../poodle_trunk_serial/databases_xyz_py.html | 81 + .../databases_zipwrapper.html | 78 + .../databases_zipwrapper_py.html | 90 + .../expressions_ghost_zoneid_expr.html | 58 + .../expressions_ghost_zoneid_expr_py.html | 46 + .../expressions_global_stats.html | 292 ++ .../expressions_global_stats_py.html | 130 + .../expressions_math_expr.html | 60 + .../expressions_math_expr_py.html | 50 + .../expressions_tensor_expr.html | 194 + .../expressions_tensor_expr_py.html | 262 ++ .../faulttolerance_badfile.html | 40 + .../faulttolerance_badfile_py.html | 34 + .../faulttolerance_checkmode.html | 60 + .../faulttolerance_checkmode_py.html | 111 + .../faulttolerance_savewindow.html | 40 + .../faulttolerance_savewindow_py.html | 57 + .../poodle_trunk_serial/hybrid_cinema-a.html | 108 + .../hybrid_cinema-a_py.html | 214 ++ .../poodle_trunk_serial/hybrid_cinema-c.html | 210 ++ .../hybrid_cinema-c_py.html | 258 ++ .../hybrid_cleanzonesonly.html | 120 + .../hybrid_cleanzonesonly_py.html | 135 + .../hybrid_clonefirstref.html | 72 + .../hybrid_clonefirstref_py.html | 62 + .../hybrid_conditional.html | 72 + .../hybrid_conditional_py.html | 96 + .../poodle_trunk_serial/hybrid_conn_cmfe.html | 102 + .../hybrid_conn_cmfe_py.html | 138 + .../hybrid_coord_expr.html | 84 + .../hybrid_coord_expr_py.html | 65 + .../hybrid_curve_anim.html | 72 + .../hybrid_curve_anim_py.html | 77 + .../hybrid_curve_expressions.html | 63 + .../hybrid_curve_expressions_py.html | 50 + .../hybrid_cylindrical_radius.html | 96 + .../hybrid_cylindrical_radius_py.html | 232 ++ .../poodle_trunk_serial/hybrid_ddf.html | 75 + .../poodle_trunk_serial/hybrid_ddf_py.html | 172 + .../hybrid_defvar_anim.html | 54 + .../hybrid_defvar_anim_py.html | 61 + .../hybrid_expr2engine.html | 56 + .../hybrid_expr2engine_py.html | 67 + .../poodle_trunk_serial/hybrid_exprList.html | 56 + .../hybrid_exprList_py.html | 65 + .../poodle_trunk_serial/hybrid_expr_cmfe.html | 66 + .../hybrid_expr_cmfe_py.html | 66 + .../hybrid_expressions.html | 304 ++ .../hybrid_expressions_py.html | 464 +++ .../hybrid_field_operators.html | 144 + .../hybrid_field_operators_py.html | 258 ++ .../hybrid_ghost_node.html | 42 + .../hybrid_ghost_node_py.html | 45 + .../hybrid_image_proc.html | 54 + .../hybrid_image_proc_py.html | 34 + .../poodle_trunk_serial/hybrid_keyframe.html | 501 +++ .../hybrid_keyframe_py.html | 544 +++ .../poodle_trunk_serial/hybrid_lambda2.html | 54 + .../hybrid_lambda2_py.html | 53 + .../poodle_trunk_serial/hybrid_lineout.html | 247 ++ .../hybrid_lineout_py.html | 661 ++++ .../poodle_trunk_serial/hybrid_locktime.html | 124 + .../hybrid_locktime_py.html | 125 + .../poodle_trunk_serial/hybrid_locus.html | 42 + .../poodle_trunk_serial/hybrid_locus_py.html | 148 + .../poodle_trunk_serial/hybrid_math_expr.html | 60 + .../hybrid_math_expr_py.html | 44 + .../poodle_trunk_serial/hybrid_matsel.html | 54 + .../poodle_trunk_serial/hybrid_matsel_py.html | 96 + .../poodle_trunk_serial/hybrid_matvf.html | 120 + .../poodle_trunk_serial/hybrid_matvf_py.html | 249 ++ .../hybrid_merge_tree.html | 108 + .../hybrid_merge_tree_py.html | 64 + .../hybrid_mesh_quality.html | 93 + .../hybrid_mesh_quality_py.html | 160 + .../poodle_trunk_serial/hybrid_mir.html | 168 + .../poodle_trunk_serial/hybrid_mir_cache.html | 48 + .../hybrid_mir_cache_py.html | 65 + .../poodle_trunk_serial/hybrid_mir_py.html | 73 + .../hybrid_missingdata.html | 88 + .../hybrid_missingdata_py.html | 72 + .../poodle_trunk_serial/hybrid_multivar.html | 60 + .../hybrid_multivar_py.html | 108 + .../poodle_trunk_serial/hybrid_pos_cmfe.html | 108 + .../hybrid_pos_cmfe_py.html | 149 + .../poodle_trunk_serial/hybrid_py_exprs.html | 78 + .../hybrid_py_exprs_py.html | 106 + .../poodle_trunk_serial/hybrid_qcrit.html | 54 + .../poodle_trunk_serial/hybrid_qcrit_py.html | 54 + .../poodle_trunk_serial/hybrid_replace.html | 72 + .../hybrid_replace_py.html | 97 + .../poodle_trunk_serial/hybrid_sil.html | 70 + .../poodle_trunk_serial/hybrid_sil_py.html | 87 + .../hybrid_simplify_mixed.html | 72 + .../hybrid_simplify_mixed_py.html | 90 + .../poodle_trunk_serial/hybrid_specmf.html | 48 + .../poodle_trunk_serial/hybrid_specmf_py.html | 42 + .../poodle_trunk_serial/hybrid_symm.html | 100 + .../poodle_trunk_serial/hybrid_symm_py.html | 114 + .../poodle_trunk_serial/hybrid_time_cmfe.html | 108 + .../hybrid_time_cmfe_py.html | 93 + .../hybrid_time_deriv_cmfe.html | 54 + .../hybrid_time_deriv_cmfe_py.html | 35 + .../hybrid_time_iteration.html | 54 + .../hybrid_time_iteration_py.html | 41 + .../poodle_trunk_serial/hybrid_timelock.html | 209 ++ .../hybrid_timelock_py.html | 378 ++ .../poodle_trunk_serial/hybrid_val4mat.html | 66 + .../hybrid_val4mat_py.html | 76 + .../poodle_trunk_serial/hybrid_vtkm.html | 372 ++ .../poodle_trunk_serial/hybrid_vtkm_py.html | 779 ++++ .../poodle_trunk_serial/index.html | 2467 +++++++++++++ .../js/jquery-3.6.1.min.js | 2 + .../js/jquery.tablesorter.js | 1046 ++++++ .../poodle_trunk_serial/js/purl.js | 271 ++ .../poodle_trunk_serial/meshtype_arbpoly.html | 90 + .../meshtype_arbpoly_py.html | 124 + .../poodle_trunk_serial/meshtype_csg.html | 78 + .../poodle_trunk_serial/meshtype_csg_py.html | 177 + .../meshtype_degen_mesh.html | 84 + .../meshtype_degen_mesh_py.html | 260 ++ .../meshtype_emptydomains.html | 104 + .../meshtype_emptydomains_py.html | 132 + .../poodle_trunk_serial/meshtype_globe.html | 72 + .../meshtype_globe_py.html | 85 + .../poodle_trunk_serial/meshtype_point.html | 138 + .../meshtype_point_py.html | 174 + .../poodle_trunk_serial/meshtype_rect3d.html | 48 + .../meshtype_rect3d_py.html | 80 + .../operators_amr_stitch.html | 84 + .../operators_amr_stitch_py.html | 49 + .../poodle_trunk_serial/operators_box.html | 84 + .../poodle_trunk_serial/operators_box_py.html | 155 + .../operators_cart_proj.html | 60 + .../operators_cart_proj_py.html | 60 + .../poodle_trunk_serial/operators_clip.html | 180 + .../operators_clip_py.html | 143 + .../operators_cracksclipper.html | 72 + .../operators_cracksclipper_py.html | 54 + .../operators_defer_expr.html | 114 + .../operators_defer_expr_py.html | 248 ++ .../operators_displace.html | 94 + .../operators_displace_py.html | 129 + .../operators_dual_mesh.html | 110 + .../operators_dual_mesh_py.html | 111 + .../operators_elevate.html | 132 + .../operators_elevate_py.html | 164 + .../operators_ex_surf.html | 56 + .../operators_ex_surf_py.html | 51 + .../operators_explode.html | 180 + .../operators_explode_py.html | 580 +++ .../operators_extrudeStacked.html | 339 ++ .../operators_extrudeStacked_py.html | 283 ++ .../operators_ic_geometry.html | 138 + .../operators_ic_geometry_py.html | 379 ++ .../operators_ic_integration.html | 102 + .../operators_ic_integration_py.html | 115 + .../operators_ic_pathlines.html | 86 + .../operators_ic_pathlines_py.html | 160 + .../operators_ic_pics.html | 1392 +++++++ .../operators_ic_pics_py.html | 114 + .../operators_ic_streamlines.html | 102 + .../operators_ic_streamlines_py.html | 220 ++ .../operators_ic_termination.html | 84 + .../operators_ic_termination_py.html | 91 + .../operators_indexselect.html | 273 ++ .../operators_indexselect_py.html | 621 ++++ .../operators_inverse_ghost_zone.html | 72 + .../operators_inverse_ghost_zone_py.html | 76 + .../operators_isovolume.html | 78 + .../operators_isovolume_py.html | 160 + .../poodle_trunk_serial/operators_lcs.html | 147 + .../operators_lcs_ic_1.html | 66 + .../operators_lcs_ic_1_py.html | 17 + .../operators_lcs_ic_2.html | 66 + .../operators_lcs_ic_2_py.html | 17 + .../operators_lcs_lc_1.html | 66 + .../operators_lcs_lc_1_py.html | 17 + .../operators_lcs_lc_2.html | 66 + .../operators_lcs_lc_2_py.html | 17 + .../poodle_trunk_serial/operators_lcs_py.html | 181 + .../operators_moveoperators.html | 114 + .../operators_moveoperators_py.html | 226 ++ .../operators_multires.html | 48 + .../operators_multires_py.html | 34 + .../operators_onionpeel.html | 486 +++ .../operators_onionpeel_py.html | 643 ++++ .../operators_operators.html | 78 + .../operators_operators_py.html | 141 + .../operators_persistent_particles.html | 72 + .../operators_persistent_particles_py.html | 173 + .../operators_radial_resample.html | 60 + .../operators_radial_resample_py.html | 135 + .../operators_reflect.html | 150 + .../operators_reflect_py.html | 343 ++ .../poodle_trunk_serial/operators_remap.html | 264 ++ .../operators_remap_py.html | 133 + .../operators_resample.html | 72 + .../operators_resample_py.html | 124 + .../operators_revolve.html | 42 + .../operators_revolve_py.html | 35 + .../poodle_trunk_serial/operators_slice.html | 297 ++ .../operators_slice_py.html | 590 +++ .../operators_sph_resample.html | 42 + .../operators_sph_resample_py.html | 51 + .../operators_tessellate.html | 162 + .../operators_tessellate_py.html | 286 ++ .../operators_threeslice.html | 54 + .../operators_threeslice_py.html | 49 + .../operators_threshold.html | 108 + .../operators_threshold_py.html | 275 ++ .../operators_transform.html | 96 + .../operators_transform_py.html | 228 ++ .../poodle_trunk_serial/operators_tube.html | 72 + .../operators_tube_py.html | 64 + .../poodle_trunk_serial/plots_contour.html | 244 ++ .../poodle_trunk_serial/plots_contour_py.html | 183 + .../poodle_trunk_serial/plots_curve.html | 351 ++ .../poodle_trunk_serial/plots_curve_py.html | 488 +++ .../plots_filledboundary.html | 84 + .../plots_filledboundary_py.html | 110 + .../poodle_trunk_serial/plots_label.html | 546 +++ .../poodle_trunk_serial/plots_label_py.html | 1005 +++++ .../poodle_trunk_serial/plots_mesh.html | 249 ++ .../poodle_trunk_serial/plots_mesh_c.html | 249 ++ .../poodle_trunk_serial/plots_mesh_c_py.html | 21 + .../poodle_trunk_serial/plots_mesh_py.html | 446 +++ .../poodle_trunk_serial/plots_molecule.html | 123 + .../plots_molecule_py.html | 242 ++ .../poodle_trunk_serial/plots_multicolor.html | 201 + .../plots_multicolor_py.html | 229 ++ .../poodle_trunk_serial/plots_parcoords.html | 129 + .../plots_parcoords_py.html | 196 + .../plots_pseudocolor.html | 429 +++ .../plots_pseudocolor_py.html | 556 +++ .../poodle_trunk_serial/plots_ray_trace.html | 108 + .../plots_ray_trace_py.html | 220 ++ .../poodle_trunk_serial/plots_scatter.html | 207 ++ .../poodle_trunk_serial/plots_scatter_py.html | 343 ++ .../plots_singlecolor.html | 54 + .../plots_singlecolor_py.html | 77 + .../poodle_trunk_serial/plots_subset.html | 135 + .../poodle_trunk_serial/plots_subset_py.html | 190 + .../poodle_trunk_serial/plots_surface.html | 96 + .../poodle_trunk_serial/plots_surface_py.html | 101 + .../poodle_trunk_serial/plots_tensor.html | 84 + .../poodle_trunk_serial/plots_tensor_py.html | 161 + .../poodle_trunk_serial/plots_truecolor.html | 42 + .../plots_truecolor_py.html | 21 + .../poodle_trunk_serial/plots_vector.html | 150 + .../poodle_trunk_serial/plots_vector_py.html | 244 ++ .../poodle_trunk_serial/plots_volumePlot.html | 231 ++ .../plots_volumePlot_py.html | 663 ++++ .../plugins_databasesVsInstall.html | 40 + .../plugins_databasesVsInstall_py.html | 31 + .../plugins_operatorsVsInstall.html | 40 + .../plugins_operatorsVsInstall_py.html | 29 + .../plugins_plotsVsInstall.html | 40 + .../plugins_plotsVsInstall_py.html | 29 + .../queries_avg_value.html | 58 + .../queries_avg_value_py.html | 63 + .../queries_bestfitline.html | 94 + .../queries_bestfitline_py.html | 204 + .../poodle_trunk_serial/queries_casetest.html | 40 + .../queries_casetest_py.html | 69 + .../poodle_trunk_serial/queries_centroid.html | 88 + .../queries_centroid_py.html | 130 + .../poodle_trunk_serial/queries_conncomp.html | 162 + .../queries_conncomp_py.html | 240 ++ .../queries_consistencyChecks.html | 64 + .../queries_consistencyChecks_py.html | 114 + .../queries_curvature.html | 54 + .../queries_curvature_py.html | 63 + .../poodle_trunk_serial/queries_database.html | 100 + .../queries_database_py.html | 1083 ++++++ .../queries_error_queries.html | 100 + .../queries_error_queries_py.html | 89 + .../queries_gridinformation.html | 56 + .../queries_gridinformation_py.html | 43 + .../poodle_trunk_serial/queries_hohlraum.html | 86 + .../queries_hohlraum_py.html | 112 + .../poodle_trunk_serial/queries_kurtosis.html | 60 + .../queries_kurtosis_py.html | 49 + .../poodle_trunk_serial/queries_l2norm.html | 56 + .../queries_l2norm_py.html | 107 + .../poodle_trunk_serial/queries_length.html | 50 + .../queries_length_py.html | 58 + .../queries_line_scan.html | 428 +++ .../queries_line_scan_py.html | 203 + .../poodle_trunk_serial/queries_pick.html | 284 ++ .../queries_pickNamedArgs.html | 90 + .../queries_pickNamedArgs_py.html | 242 ++ .../poodle_trunk_serial/queries_pick_py.html | 3268 +++++++++++++++++ .../queries_pickarray.html | 86 + .../queries_pickarray_py.html | 137 + .../queries_pickcleanzonesonly.html | 48 + .../queries_pickcleanzonesonly_py.html | 57 + .../queries_py_queries.html | 44 + .../queries_py_queries_py.html | 40 + .../queries_queriesOverTime.html | 324 ++ .../queries_queriesOverTime_py.html | 1065 ++++++ .../queries_queryMultiWindow.html | 40 + .../queries_queryMultiWindow_py.html | 154 + .../queries_revolved_surface_area.html | 56 + .../queries_revolved_surface_area_py.html | 85 + .../poodle_trunk_serial/queries_scf.html | 96 + .../poodle_trunk_serial/queries_scf_py.html | 150 + .../queries_surface_area_over_time.html | 66 + .../queries_surface_area_over_time_py.html | 144 + .../queries_variable_sum_volume.html | 68 + .../queries_variable_sum_volume_py.html | 69 + .../queries_watertight.html | 44 + .../queries_watertight_py.html | 40 + .../queries_xrayimage.html | 1870 ++++++++++ .../queries_xrayimage_py.html | 1341 +++++++ .../quickrecipes_cl_args.html | 44 + .../quickrecipes_cl_args_py.html | 30 + .../quickrecipes_colortables.html | 72 + .../quickrecipes_colortables_py.html | 217 ++ .../quickrecipes_expressions.html | 42 + .../quickrecipes_expressions_py.html | 62 + .../quickrecipes_operators.html | 52 + .../quickrecipes_operators_py.html | 80 + .../quickrecipes_quantitative_operations.html | 116 + ...ickrecipes_quantitative_operations_py.html | 219 ++ .../quickrecipes_saving_images.html | 52 + .../quickrecipes_saving_images_py.html | 56 + .../quickrecipes_subsetting.html | 52 + .../quickrecipes_subsetting_py.html | 67 + .../quickrecipes_view.html | 60 + .../quickrecipes_view_py.html | 159 + ...quickrecipes_working_with_annotations.html | 76 + ...ckrecipes_working_with_annotations_py.html | 195 + .../quickrecipes_working_with_dbs.html | 68 + .../quickrecipes_working_with_dbs_py.html | 78 + .../quickrecipes_working_with_plots.html | 76 + .../quickrecipes_working_with_plots_py.html | 196 + .../rendering_annot_macros.html | 301 ++ .../rendering_annot_macros_py.html | 219 ++ .../rendering_annotation.html | 294 ++ .../rendering_annotation_py.html | 469 +++ .../rendering_axislabels.html | 150 + .../rendering_axislabels_py.html | 141 + .../rendering_axistitles.html | 120 + .../rendering_axistitles_py.html | 170 + .../rendering_bigdata.html | 54 + .../rendering_bigdata_py.html | 36 + .../rendering_colortexture.html | 66 + .../rendering_colortexture_py.html | 86 + .../rendering_compositing.html | 42 + .../rendering_compositing_py.html | 40 + .../rendering_evalcubic.html | 66 + .../rendering_evalcubic_py.html | 123 + .../poodle_trunk_serial/rendering_image.html | 54 + .../rendering_image_py.html | 46 + .../rendering_legends.html | 435 +++ .../rendering_legends_py.html | 597 +++ .../rendering_lighting.html | 54 + .../rendering_lighting_py.html | 113 + .../poodle_trunk_serial/rendering_line2d.html | 102 + .../rendering_line2d_py.html | 101 + .../poodle_trunk_serial/rendering_line3d.html | 102 + .../rendering_line3d_py.html | 104 + .../rendering_offscreensave.html | 122 + .../rendering_offscreensave_py.html | 194 + .../poodle_trunk_serial/rendering_ospray.html | 50 + .../rendering_ospray_py.html | 106 + .../rendering_pixeldata.html | 174 + .../rendering_pixeldata_py.html | 215 ++ .../rendering_pointGlyphing.html | 900 +++++ .../rendering_pointGlyphing_py.html | 65 + .../rendering_renderpoints.html | 444 +++ .../rendering_renderpoints_py.html | 347 ++ .../rendering_saveformats.html | 120 + .../rendering_saveformats_py.html | 272 ++ .../rendering_scalable.html | 117 + .../rendering_scalable2.html | 53 + .../rendering_scalable2_py.html | 113 + .../rendering_scalable_c.html | 117 + .../rendering_scalable_c_py.html | 21 + .../rendering_scalable_py.html | 392 ++ .../rendering_shadows.html | 54 + .../rendering_shadows_py.html | 55 + .../rendering_specular.html | 102 + .../rendering_specular_py.html | 124 + .../poodle_trunk_serial/rendering_text2d.html | 108 + .../rendering_text2d_py.html | 123 + .../poodle_trunk_serial/rendering_text3d.html | 102 + .../rendering_text3d_py.html | 103 + .../rendering_timeslider.html | 174 + .../rendering_timeslider_py.html | 162 + .../rendering_transparency.html | 132 + .../rendering_transparency_py.html | 315 ++ .../poodle_trunk_serial/rendering_view.html | 249 ++ .../rendering_viewChange.html | 222 ++ .../rendering_viewChange_py.html | 450 +++ .../rendering_view_py.html | 382 ++ .../poodle_trunk_serial/rendering_volume.html | 54 + .../rendering_volume_py.html | 113 + .../rendering_volume_rect_multiDomain.html | 81 + .../rendering_volume_rect_multiDomain_py.html | 95 + .../rendering_volume_rect_singleDomain.html | 99 + ...rendering_volume_rect_singleDomain_py.html | 111 + .../rendering_volume_ucd_multiDomain.html | 79 + .../rendering_volume_ucd_multiDomain_py.html | 105 + .../session_colortable.html | 42 + .../session_colortable_py.html | 34 + .../session_correlationsession.html | 92 + .../session_correlationsession_py.html | 95 + .../session_legendproperties.html | 48 + .../session_legendproperties_py.html | 48 + .../session_rect3d-contour.html | 42 + .../session_rect3d-contour_py.html | 25 + .../session_restorewithsources.html | 48 + .../session_restorewithsources_py.html | 42 + .../session_selection.html | 42 + .../session_selection_py.html | 29 + .../session_sessionexpression.html | 42 + .../session_sessionexpression_py.html | 27 + .../session_sessionview.html | 66 + .../session_sessionview_py.html | 55 + .../session_simplekeyframe.html | 130 + .../session_simplekeyframe_py.html | 78 + .../session_textannot.html | 66 + .../session_textannot_py.html | 38 + .../poodle_trunk_serial/session_view3d.html | 42 + .../session_view3d_py.html | 29 + .../session_wavecontour.html | 42 + .../session_wavecontour_py.html | 29 + .../poodle_trunk_serial/simulation_amr.html | 68 + .../simulation_amr_py.html | 58 + .../simulation_aresamr.html | 62 + .../simulation_aresamr_py.html | 48 + .../poodle_trunk_serial/simulation_batch.html | 426 +++ .../simulation_batch_py.html | 393 ++ .../poodle_trunk_serial/simulation_csg.html | 114 + .../simulation_csg_py.html | 64 + .../poodle_trunk_serial/simulation_curve.html | 66 + .../simulation_curve_py.html | 61 + .../simulation_domainbounds.html | 56 + .../simulation_domainbounds_py.html | 47 + .../simulation_domainlist.html | 108 + .../simulation_domainlist_py.html | 125 + .../simulation_ghostcells.html | 194 + .../simulation_ghostcells_py.html | 84 + .../simulation_globalids.html | 196 + .../simulation_globalids_py.html | 218 ++ .../simulation_interleave.html | 188 + .../simulation_interleave_py.html | 86 + .../poodle_trunk_serial/simulation_life.html | 58 + .../simulation_life_py.html | 43 + .../simulation_mandelbrot.html | 78 + .../simulation_mandelbrot_py.html | 77 + .../simulation_material.html | 62 + .../simulation_material_py.html | 59 + .../simulation_materialvar.html | 104 + .../simulation_materialvar_py.html | 58 + .../poodle_trunk_serial/simulation_mesh.html | 62 + .../simulation_mesh_py.html | 53 + .../simulation_multiblock.html | 68 + .../simulation_multiblock_py.html | 56 + .../poodle_trunk_serial/simulation_point.html | 92 + .../simulation_point_py.html | 79 + .../simulation_polyhedral.html | 68 + .../simulation_polyhedral_py.html | 64 + .../simulation_scalar.html | 56 + .../simulation_scalar_py.html | 57 + .../simulation_species.html | 137 + .../simulation_species_py.html | 83 + .../simulation_ucdcurve.html | 66 + .../simulation_ucdcurve_py.html | 72 + .../simulation_unstructured.html | 50 + .../simulation_unstructured_py.html | 44 + .../simulation_updateplots.html | 90 + .../simulation_updateplots_py.html | 89 + .../simulation_updateplots_session.html | 99 + .../simulation_updateplots_session_py.html | 88 + .../poodle_trunk_serial/simulation_var.html | 56 + .../simulation_var_py.html | 62 + .../simulation_zerocopy.html | 285 ++ .../simulation_zerocopy_py.html | 178 + .../unit_annotation_objects.html | 44 + .../unit_annotation_objects_py.html | 30 + .../poodle_trunk_serial/unit_atts_assign.html | 1782 +++++++++ .../unit_atts_assign_py.html | 1211 ++++++ .../unit_compiler_warnings.html | 36 + .../unit_compiler_warnings_py.html | 213 ++ .../poodle_trunk_serial/unit_convert2to3.html | 44 + .../unit_convert2to3_py.html | 34 + .../unit_default_methods.html | 64 + .../unit_default_methods_py.html | 62 + .../poodle_trunk_serial/unit_launcher.html | 120 + .../poodle_trunk_serial/unit_launcher_py.html | 196 + .../poodle_trunk_serial/unit_mrucache.html | 40 + .../poodle_trunk_serial/unit_mrucache_py.html | 24 + .../poodle_trunk_serial/unit_namescheme.html | 36 + .../unit_namescheme_py.html | 27 + .../poodle_trunk_serial/unit_protocol.html | 36 + .../poodle_trunk_serial/unit_protocol_py.html | 17 + .../unit_stringhelpers.html | 36 + .../unit_stringhelpers_py.html | 26 + .../unit_test_value_simple.html | 120 + .../unit_test_value_simple_py.html | 56 + .../poodle_trunk_serial/unit_utility.html | 36 + .../poodle_trunk_serial/unit_utility_py.html | 27 + index.html | 30 +- 3614 files changed, 359173 insertions(+), 15 deletions(-) create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/Pick3DTo2D.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/avg_value_02.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_Pick3DTo2D.txt create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_annot_macros_tafile_2.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_annot_macros_tafile_2_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_annot_macros_tafile_6.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_annot_macros_tafile_6_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_avg_value_02.txt create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_blueprint_rz_cyl_rectilinear.root_plot_revolved_to_3D.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_blueprint_rz_cyl_rectilinear.root_plot_revolved_to_3D_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_life03.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_life03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_missingdata_0_04.txt create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_ops_dualmesh_mesh_plot_2d_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_ops_dualmesh_mesh_plot_2d_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_ospray_domain_boundaries_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_ospray_domain_boundaries_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_04.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_04_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_06.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_06_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_07.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_07_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_08.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_08_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_09.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_09_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_10.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_11.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_11_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_pixie_04.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_pixie_04_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_volume_23.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_volume_23_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_volume_24.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_volume_24_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_volume_33.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_volume_33_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_volume_34.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_volume_34_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/c_zerocopy02.txt create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/css/styles.css create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_annot_macros_tafile_2.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_annot_macros_tafile_2_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_annot_macros_tafile_6.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_annot_macros_tafile_6_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_blueprint_rz_cyl_rectilinear.root_plot_revolved_to_3D.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_blueprint_rz_cyl_rectilinear.root_plot_revolved_to_3D_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_life03.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_life03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_ops_dualmesh_mesh_plot_2d_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_ops_dualmesh_mesh_plot_2d_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_ospray_domain_boundaries_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_ospray_domain_boundaries_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_pixeldata_0_04.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_pixeldata_0_04_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_pixeldata_0_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_pixeldata_0_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_pixeldata_0_06.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_pixeldata_0_06_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_pixeldata_0_07.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_pixeldata_0_07_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_pixeldata_0_08.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_pixeldata_0_08_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_pixeldata_0_09.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_pixeldata_0_09_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_pixeldata_0_10.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_pixeldata_0_10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_pixeldata_0_11.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_pixeldata_0_11_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_pixie_04.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_pixie_04_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_volume_23.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_volume_23_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_volume_24.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_volume_24_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_volume_33.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_volume_33_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_volume_34.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/d_volume_34_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_ANALYZE.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_ANALYZE_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_ANSYS.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_ANSYS_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_CGNS.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_CGNS_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_Cale.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_Cale_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_Chombo.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_Chombo_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_Curve3D.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_Curve3D_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_EnSight.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_EnSight_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_FITS.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_FITS_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_FMS.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_FMS_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_Fluent.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_Fluent_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_GDAL.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_GDAL_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_NASTRAN.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_NASTRAN_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_OpenFOAM.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_OpenFOAM_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_PATRAN.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_PATRAN_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_PLOT3D.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_PLOT3D_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_ProteinDataBank.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_ProteinDataBank_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_RAW.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_RAW_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_SPCTH.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_SPCTH_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_Velodyne.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_Velodyne_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_WData.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_WData_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_Xmdv.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_Xmdv_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_Xolotl.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_Xolotl_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_activesource.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_activesource_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_adios2.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_adios2_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_avsucd.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_avsucd_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_blueprint.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_blueprint_axom_klee.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_blueprint_axom_klee_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_blueprint_export.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_blueprint_export_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_blueprint_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_bov.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_bov_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_boxlib.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_boxlib_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_chgcar.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_chgcar_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_claw.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_claw_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_closedatabase.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_closedatabase_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_correlation.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_correlation_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_curve.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_curve_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_ddcMD.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_ddcMD_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_empty_db.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_empty_db_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_exodus.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_exodus_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_export_db.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_export_db_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_ffp.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_ffp_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_flash.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_flash_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_global_node_ids.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_global_node_ids_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_h5part.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_h5part_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_history.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_history_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_image.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_image_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_imgvol.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_imgvol_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_kulllite.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_kulllite_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_lata.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_lata_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_leos.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_leos_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_lines.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_lines_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_metadata.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_metadata_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_mfem.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_mfem_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_mili.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_mili_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_miranda.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_miranda_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_moab.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_moab_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_multi_format.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_multi_format2.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_multi_format2_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_multi_format_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_netcdf.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_netcdf_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_obj.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_obj_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_oldsilo.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_oldsilo_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_openPMD.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_openPMD_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_openexr.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_openexr_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_overlink.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_overlink_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_pdbdatabase.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_pdbdatabase_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_pixie.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_pixie_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_plaintext.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_plaintext_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_rect.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_rect_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_reopen.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_reopen_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_sami.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_sami_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_samrai.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_samrai_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_scale_mesh.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_scale_mesh_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_shapefile.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_shapefile_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_silo.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_silo_altdriver.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_silo_altdriver_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_silo_datatypes.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_silo_datatypes_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_silo_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_singlemulti.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_singlemulti_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_sw4.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_sw4_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_tecplot.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_tecplot_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_timesliders.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_timesliders_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_uintah.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_uintah_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_unv.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_unv_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_vtk.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_vtk_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_wave_tv.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_wave_tv_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_xdmf.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_xdmf_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_xform_precision.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_xform_precision_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_xyz.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/databases_xyz_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/expressions_ghost_zoneid_expr.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/expressions_ghost_zoneid_expr_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/expressions_global_stats.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/expressions_global_stats_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/expressions_math_expr.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/expressions_math_expr_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/expressions_tensor_expr.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/expressions_tensor_expr_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/faulttolerance_badfile.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/faulttolerance_badfile_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/faulttolerance_checkmode.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/faulttolerance_checkmode_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/faulttolerance_savewindow.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/faulttolerance_savewindow_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_cinema-a.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_cinema-a_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_cinema-c.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_cinema-c_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_cleanzonesonly.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_cleanzonesonly_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_clonefirstref.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_clonefirstref_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_conditional.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_conditional_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_conn_cmfe.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_conn_cmfe_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_coord_expr.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_coord_expr_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_curve_anim.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_curve_anim_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_curve_expressions.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_curve_expressions_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_cylindrical_radius.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_cylindrical_radius_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_ddf.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_ddf_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_defvar_anim.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_defvar_anim_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_expr2engine.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_expr2engine_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_exprList.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_exprList_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_expr_cmfe.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_expr_cmfe_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_expressions.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_expressions_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_field_operators.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_field_operators_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_ghost_node.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_ghost_node_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_image_proc.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_image_proc_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_keyframe.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_keyframe_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_lambda2.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_lambda2_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_lineout.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_lineout_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_locktime.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_locktime_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_locus.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_locus_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_math_expr.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_math_expr_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_matsel.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_matsel_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_matvf.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_matvf_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_merge_tree.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_merge_tree_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_mesh_quality.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_mesh_quality_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_mir.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_mir_cache.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_mir_cache_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_mir_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_missingdata.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_missingdata_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_multivar.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_multivar_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_pos_cmfe.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_pos_cmfe_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_py_exprs.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_py_exprs_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_qcrit.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_qcrit_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_replace.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_replace_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_sil.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_sil_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_simplify_mixed.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_simplify_mixed_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_specmf.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_specmf_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_symm.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_symm_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_time_cmfe.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_time_cmfe_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_time_deriv_cmfe.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_time_deriv_cmfe_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_time_iteration.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_time_iteration_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_timelock.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_timelock_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_val4mat.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_val4mat_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_vtkm.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/hybrid_vtkm_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/index.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/js/jquery-3.6.1.min.js create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/js/jquery.tablesorter.js create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/js/purl.js create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/meshtype_arbpoly.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/meshtype_arbpoly_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/meshtype_csg.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/meshtype_csg_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/meshtype_degen_mesh.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/meshtype_degen_mesh_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/meshtype_emptydomains.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/meshtype_emptydomains_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/meshtype_globe.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/meshtype_globe_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/meshtype_point.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/meshtype_point_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/meshtype_rect3d.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/meshtype_rect3d_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/missingdata_0_04.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_amr_stitch.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_amr_stitch_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_box.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_box_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_cart_proj.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_cart_proj_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_clip.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_clip_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_cracksclipper.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_cracksclipper_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_defer_expr.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_defer_expr_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_displace.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_displace_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_dual_mesh.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_dual_mesh_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_elevate.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_elevate_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_ex_surf.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_ex_surf_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_explode.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_explode_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_extrudeStacked.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_extrudeStacked_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_ic_geometry.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_ic_geometry_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_ic_integration.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_ic_integration_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_ic_pathlines.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_ic_pathlines_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_ic_pics.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_ic_pics_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_ic_streamlines.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_ic_streamlines_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_ic_termination.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_ic_termination_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_indexselect.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_indexselect_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_inverse_ghost_zone.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_inverse_ghost_zone_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_isovolume.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_isovolume_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_lcs.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_ic_1.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_ic_1_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_ic_2.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_ic_2_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_lc_1.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_lc_1_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_lc_2.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_lc_2_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_moveoperators.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_moveoperators_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_multires.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_multires_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_onionpeel.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_onionpeel_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_operators.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_operators_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_persistent_particles.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_persistent_particles_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_radial_resample.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_radial_resample_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_reflect.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_reflect_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_remap.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_remap_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_resample.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_resample_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_revolve.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_revolve_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_slice.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_slice_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_sph_resample.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_sph_resample_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_tessellate.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_tessellate_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_threeslice.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_threeslice_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_threshold.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_threshold_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_transform.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_transform_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_tube.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/operators_tube_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_contour.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_contour_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_curve.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_curve_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_filledboundary.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_filledboundary_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_label.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_label_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_mesh.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_mesh_c.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_mesh_c_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_mesh_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_molecule.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_molecule_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_multicolor.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_multicolor_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_parcoords.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_parcoords_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_pseudocolor.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_pseudocolor_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_ray_trace.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_ray_trace_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_scatter.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_scatter_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_singlecolor.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_singlecolor_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_subset.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_subset_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_surface.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_surface_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_tensor.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_tensor_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_truecolor.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_truecolor_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_vector.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_vector_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_volumePlot.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plots_volumePlot_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plugins_databasesVsInstall.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plugins_databasesVsInstall_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plugins_operatorsVsInstall.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plugins_operatorsVsInstall_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plugins_plotsVsInstall.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/plugins_plotsVsInstall_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_avg_value.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_avg_value_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_bestfitline.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_bestfitline_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_casetest.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_casetest_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_centroid.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_centroid_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_conncomp.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_conncomp_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_consistencyChecks.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_consistencyChecks_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_curvature.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_curvature_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_database.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_database_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_error_queries.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_error_queries_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_gridinformation.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_gridinformation_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_hohlraum.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_hohlraum_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_kurtosis.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_kurtosis_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_l2norm.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_l2norm_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_length.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_length_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_line_scan.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_line_scan_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_pick.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_pickNamedArgs.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_pickNamedArgs_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_pick_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_pickarray.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_pickarray_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_pickcleanzonesonly.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_pickcleanzonesonly_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_py_queries.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_py_queries_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_queriesOverTime.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_queriesOverTime_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_queryMultiWindow.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_queryMultiWindow_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_revolved_surface_area.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_revolved_surface_area_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_scf.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_scf_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_surface_area_over_time.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_surface_area_over_time_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_variable_sum_volume.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_variable_sum_volume_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_watertight.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_watertight_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_xrayimage.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/queries_xrayimage_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_cl_args.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_cl_args_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_colortables.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_colortables_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_expressions.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_expressions_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_operators.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_operators_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_quantitative_operations.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_quantitative_operations_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_saving_images.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_saving_images_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_subsetting.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_subsetting_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_view.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_view_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_working_with_annotations.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_working_with_annotations_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_working_with_dbs.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_working_with_dbs_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_working_with_plots.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_working_with_plots_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_annot_macros.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_annot_macros_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_annotation.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_annotation_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_axislabels.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_axislabels_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_axistitles.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_axistitles_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_bigdata.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_bigdata_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_colortexture.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_colortexture_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_evalcubic.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_evalcubic_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_image.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_image_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_legends.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_legends_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_lighting.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_lighting_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_line2d.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_line2d_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_line3d.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_line3d_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_offscreensave.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_offscreensave_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_ospray.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_ospray_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_pixeldata.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_pixeldata_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_pointGlyphing.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_pointGlyphing_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_renderpoints.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_renderpoints_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_saveformats.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_saveformats_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_scalable.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_scalable2.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_scalable2_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_scalable_c.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_scalable_c_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_scalable_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_shadows.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_shadows_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_specular.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_specular_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_text2d.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_text2d_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_text3d.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_text3d_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_timeslider.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_timeslider_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_transparency.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_transparency_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_view.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_viewChange.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_viewChange_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_view_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_volume.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_volume_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_volume_rect_multiDomain.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_volume_rect_multiDomain_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_volume_rect_singleDomain.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_volume_rect_singleDomain_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_volume_ucd_multiDomain.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/rendering_volume_ucd_multiDomain_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/session_colortable.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/session_colortable_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/session_correlationsession.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/session_correlationsession_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/session_legendproperties.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/session_legendproperties_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/session_rect3d-contour.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/session_rect3d-contour_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/session_restorewithsources.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/session_restorewithsources_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/session_selection.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/session_selection_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/session_sessionexpression.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/session_sessionexpression_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/session_sessionview.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/session_sessionview_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/session_simplekeyframe.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/session_simplekeyframe_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/session_textannot.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/session_textannot_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/session_view3d.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/session_view3d_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/session_wavecontour.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/session_wavecontour_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_amr.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_amr_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_aresamr.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_aresamr_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_batch.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_batch_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_csg.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_csg_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_curve.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_curve_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_domainbounds.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_domainbounds_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_domainlist.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_domainlist_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_ghostcells.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_ghostcells_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_globalids.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_globalids_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_interleave.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_interleave_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_life.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_life_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_mandelbrot.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_mandelbrot_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_material.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_material_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_materialvar.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_materialvar_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_mesh.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_mesh_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_multiblock.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_multiblock_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_point.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_point_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_polyhedral.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_polyhedral_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_scalar.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_scalar_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_species.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_species_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_ucdcurve.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_ucdcurve_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_unstructured.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_unstructured_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_updateplots.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_updateplots_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_updateplots_session.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_updateplots_session_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_var.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_var_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_zerocopy.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/simulation_zerocopy_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/unit_annotation_objects.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/unit_annotation_objects_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/unit_atts_assign.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/unit_atts_assign_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/unit_compiler_warnings.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/unit_compiler_warnings_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/unit_convert2to3.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/unit_convert2to3_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/unit_default_methods.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/unit_default_methods_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/unit_launcher.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/unit_launcher_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/unit_mrucache.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/unit_mrucache_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/unit_namescheme.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/unit_namescheme_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/unit_protocol.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/unit_protocol_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/unit_stringhelpers.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/unit_stringhelpers_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/unit_test_value_simple.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/unit_test_value_simple_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/unit_utility.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/unit_utility_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_parallel/zerocopy02.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/Pick3DTo2D.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/avg_value_02.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_HDF5_X_Ray_Output_spectra_topo_intensities_legacy.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_HDF5_X_Ray_Output_spectra_topo_intensities_legacy_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_HDF5_X_Ray_Output_spectra_topo_intensities_modern.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_HDF5_X_Ray_Output_spectra_topo_intensities_modern_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_HDF5_X_Ray_Output_spectra_topo_path_length_legacy.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_HDF5_X_Ray_Output_spectra_topo_path_length_legacy_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_HDF5_X_Ray_Output_spectra_topo_path_length_modern.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_HDF5_X_Ray_Output_spectra_topo_path_length_modern_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_JSON_X_Ray_Output_spectra_topo_intensities_legacy.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_JSON_X_Ray_Output_spectra_topo_intensities_legacy_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_JSON_X_Ray_Output_spectra_topo_intensities_modern.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_JSON_X_Ray_Output_spectra_topo_intensities_modern_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_JSON_X_Ray_Output_spectra_topo_path_length_legacy.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_JSON_X_Ray_Output_spectra_topo_path_length_legacy_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_JSON_X_Ray_Output_spectra_topo_path_length_modern.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_JSON_X_Ray_Output_spectra_topo_path_length_modern_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_YAML_X_Ray_Output_spectra_topo_intensities_legacy.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_YAML_X_Ray_Output_spectra_topo_intensities_legacy_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_YAML_X_Ray_Output_spectra_topo_intensities_modern.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_YAML_X_Ray_Output_spectra_topo_intensities_modern_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_YAML_X_Ray_Output_spectra_topo_path_length_legacy.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_YAML_X_Ray_Output_spectra_topo_path_length_legacy_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_YAML_X_Ray_Output_spectra_topo_path_length_modern.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_YAML_X_Ray_Output_spectra_topo_path_length_modern_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_CGNS_NFace_Elements_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_CGNS_NFace_Elements_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Chombo_1_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Chombo_1_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Chombo_2_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Chombo_2_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_GDAL_0_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_GDAL_0_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_GDAL_1_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_GDAL_1_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_amr-quad_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_amr-quad_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_amr-quad_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_amr-quad_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-quad-nurbs_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-quad-nurbs_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-quad-nurbs_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-quad-nurbs_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-quad_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-quad_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-quad_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-quad_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-tri_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-tri_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-tri_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-tri_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_disc-nurbs_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_disc-nurbs_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_disc-nurbs_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_disc-nurbs_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_inline-quad_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_inline-quad_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_inline-quad_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_inline-quad_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_inline-tri_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_inline-tri_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_inline-tri_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_inline-tri_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_periodic-square_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_periodic-square_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_periodic-square_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_periodic-square_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc-nurbs_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc-nurbs_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc-nurbs_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc-nurbs_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc-p2_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc-p2_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc-p2_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc-p2_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc-p3_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc-p3_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc-p3_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc-p3_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Lineout3d.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Lineout3d_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LineoutSAMRAI.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LineoutSAMRAI_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Mixed_braid_2d.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Mixed_braid_2d_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Mixed_offsets_2d.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Mixed_offsets_2d_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Mixed_tet_quad_2d.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Mixed_tet_quad_2d_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Mixed_topo_polygonal_2d.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Mixed_topo_polygonal_2d_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Mixed_topo_simple_2d.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Mixed_topo_simple_2d_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Pick3DTo2D.txt create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Polytopal_mesh_missing_offsets.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Polytopal_mesh_missing_offsets_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_amr02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_amr02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_amr03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_amr03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_annot_macros_tafile_2.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_annot_macros_tafile_2_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_annot_macros_tafile_6.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_annot_macros_tafile_6_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_avg_value_02.txt create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bestline_3_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bestline_3_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bestline_3_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bestline_3_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bestline_3_03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bestline_3_03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_biquadratic_quad_field_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_biquadratic_quad_field_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_biquadratic_quad_field_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_biquadratic_quad_field_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_biquadratic_quad_field_03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_biquadratic_quad_field_03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_1d_curve_element_assoc.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_1d_curve_element_assoc_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_0_8_2_quads_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_0_8_2_quads_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_0_8_2_rect_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_0_8_2_rect_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_0_8_2_struct_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_0_8_2_struct_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_0_8_2_tris_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_0_8_2_tris_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_0_8_2_uniform_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_0_8_2_uniform_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_quads_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_quads_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_rect_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_rect_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_struct_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_struct_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_tris_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_tris_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_uniform_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_uniform_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_json_quads_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_json_quads_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_json_rect_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_json_rect_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_json_struct_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_json_struct_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_json_tris_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_json_tris_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_json_uniform_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_json_uniform_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_sidre_hdf5_quads_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_sidre_hdf5_quads_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_sidre_hdf5_rect_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_sidre_hdf5_rect_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_sidre_hdf5_struct_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_sidre_hdf5_struct_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_sidre_hdf5_tris_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_sidre_hdf5_tris_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_sidre_hdf5_uniform_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_sidre_hdf5_uniform_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_yaml_0_8_2_quads_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_yaml_0_8_2_quads_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_yaml_0_8_2_rect_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_yaml_0_8_2_rect_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_yaml_0_8_2_struct_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_yaml_0_8_2_struct_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_yaml_0_8_2_tris_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_yaml_0_8_2_tris_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_yaml_0_8_2_uniform_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_yaml_0_8_2_uniform_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_conduit_bin_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_conduit_bin_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_conduit_bin_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_conduit_bin_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_conduit_json_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_conduit_json_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_conduit_json_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_conduit_json_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_hdf5_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_hdf5_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_hdf5_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_hdf5_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_json_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_json_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_json_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_json_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_tri_beam_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_tri_beam_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_tri_beam_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_tri_beam_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_poly_2d_hdf5_0_8_2_mesh_topo_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_poly_2d_hdf5_0_8_2_mesh_topo_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_poly_2d_yaml_0_8_2_mesh_topo_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_poly_2d_yaml_0_8_2_mesh_topo_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_rz_cyl_rectilinear.root_plot_2D.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_rz_cyl_rectilinear.root_plot_2D_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_rz_cyl_rectilinear.root_plot_revolved_to_3D.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_rz_cyl_rectilinear.root_plot_revolved_to_3D_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_rz_cyl_structured.root_plot_2D.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_rz_cyl_structured.root_plot_2D_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_rz_cyl_uniform.root_plot_2D.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_rz_cyl_uniform.root_plot_2D_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_rz_cyl_unstructured.root_plot_2D.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_rz_cyl_unstructured.root_plot_2D_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_1_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_1_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_2_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_2_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_3_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_3_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_4_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_4_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_5_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_5_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_6_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_6_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_7_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_7_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_8_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_8_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_boxlib_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_boxlib_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_boxlib_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_boxlib_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_boxlib_03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_boxlib_03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_boxlib_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_boxlib_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bp_sparse_topos_example.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bp_sparse_topos_example_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_chgcar_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_chgcar_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_chgcar_07.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_chgcar_07_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_chgcar_11.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_chgcar_11_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_compositing_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_compositing_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_contour_multicolor_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_contour_multicolor_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_csg_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_csg_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve2Expr.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve2Expr_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_anim2.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_anim2_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_anim3.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_anim3_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_scale_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_scale_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_scale_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_scale_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_scale_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_scale_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_scale_03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_scale_03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_04.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_04_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_06.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_06_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_07.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_07_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_08.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_08_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_09.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_09_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_10.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_11.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_11_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddf_spatial_1d.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddf_spatial_1d_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_exodus_11.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_exodus_11_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_exodus_12.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_exodus_12_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_exodus_17.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_exodus_17_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_explode_repeat_labels_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_explode_repeat_labels_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_explode_tire_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_explode_tire_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_04.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_04_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_06.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_06_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_07.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_07_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_08.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_08_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_09.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_09_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_10.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_11.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_11_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_12.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_12_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_13.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_13_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_14.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_14_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_15.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_15_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_16.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_16_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_17.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_17_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_18.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_18_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_hf_2_1.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_hf_2_1_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_hf_4_1.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_hf_4_1_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_04.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_04_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_06.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_06_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_07.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_07_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_08.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_08_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_09.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_09_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_10.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_11.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_11_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_12.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_12_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_13.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_13_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_14.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_14_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_integration_09.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_integration_09_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_integration_10.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_integration_10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_streamlines_03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_streamlines_03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_streamlines_04.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_streamlines_04_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_streamlines_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_streamlines_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_streamlines_08.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_streamlines_08_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_amr-quad_boundary_topo.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_amr-quad_boundary_topo_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_amr-quad_mres_0000.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_amr-quad_mres_0000_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_amr-quad_mres_0005.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_amr-quad_mres_0005_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad-nurbs_boundary_topo.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad-nurbs_boundary_topo_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad-nurbs_mres_0000.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad-nurbs_mres_0000_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad-nurbs_mres_0020.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad-nurbs_mres_0020_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad_boundary_topo.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad_boundary_topo_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad_mres_0000.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad_mres_0000_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad_mres_0020.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad_mres_0020_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-tri_boundary_topo.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-tri_boundary_topo_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-tri_mres_0000.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-tri_mres_0000_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-tri_mres_0020.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-tri_mres_0020_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_disc-nurbs_boundary_topo.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_disc-nurbs_boundary_topo_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_disc-nurbs_mres_0000.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_disc-nurbs_mres_0000_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_disc-nurbs_mres_0020.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_disc-nurbs_mres_0020_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-quad_boundary_topo.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-quad_boundary_topo_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-quad_mres_0000.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-quad_mres_0000_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-quad_mres_0020.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-quad_mres_0020_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-tri_boundary_topo.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-tri_boundary_topo_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-tri_mres_0000.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-tri_mres_0000_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-tri_mres_0020.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-tri_mres_0020_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_periodic-square_mres_0000.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_periodic-square_mres_0000_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_periodic-square_mres_0020.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_periodic-square_mres_0020_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-nurbs_boundary_topo.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-nurbs_boundary_topo_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-nurbs_mres_0000.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-nurbs_mres_0000_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-nurbs_mres_0020.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-nurbs_mres_0020_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p2_boundary_topo.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p2_boundary_topo_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p2_mres_0000.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p2_mres_0000_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p2_mres_0020.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p2_mres_0020_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p3_boundary_topo.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p3_boundary_topo_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p3_mres_0000.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p3_mres_0000_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p3_mres_0020.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p3_mres_0020_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc_boundary_topo.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc_boundary_topo_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc_mres_0000.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc_mres_0000_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc_mres_0020.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc_mres_0020_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_kulllite_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_kulllite_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_kulllite_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_kulllite_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_kulllite_03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_kulllite_03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_label_6_04.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_label_6_04_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_label_8_11.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_label_8_11_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_lata_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_lata_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_lata_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_lata_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_lata_06.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_lata_06_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_lata_08.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_lata_08_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_lata_09.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_lata_09_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_lcs_ftle_double_gyre_2_domains_NativeMesh_2DAuxGrid.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_lcs_ftle_double_gyre_2_domains_NativeMesh_2DAuxGrid_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_leos_06.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_leos_06_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_life03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_life03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d07.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d07_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d08.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d08_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d09.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d09_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d10.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d11.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d11_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d12.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d12_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_1.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_10.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_13.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_13_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_16.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_16_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_1_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_4.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_4_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_7.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_7_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_1.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_10.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_13.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_13_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_16.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_16_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_1_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_4.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_4_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_7.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_7_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_2_1.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_2_10.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_2_10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_2_13.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_2_13_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_2_16.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_2_16_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_2_1_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_2_4.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_2_4_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_3_1.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_3_10.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_3_10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_3_13.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_3_13_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_3_16.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_3_16_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_3_1_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_3_4.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_3_4_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_3_7.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_3_7_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar04.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar04_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar06.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar06_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar07.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar07_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar08.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar08_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar09.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar09_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar10.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar11.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar11_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_mesh_point_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_mesh_point_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_mesh_quality_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_mesh_quality_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_meshtype_point_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_meshtype_point_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_meshtype_point_07.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_meshtype_point_07_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_0_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_0_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_0_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_0_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_0_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_0_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_0_04.txt create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_1_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_1_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_1_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_1_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_1_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_1_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_moab_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_moab_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_moveoperator_0.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_moveoperator_0_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_multiblock02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_multiblock02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_multiblock03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_multiblock03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_multiblock04.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_multiblock04_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_multiblock05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_multiblock05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_netcdf_3_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_netcdf_3_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_oldsilo_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_oldsilo_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_openPMD_3D_Fieldsrho.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_openPMD_3D_Fieldsrho_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_dualmesh_mesh_plot_2d_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_dualmesh_mesh_plot_2d_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_dualmesh_mesh_plot_2d_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_dualmesh_mesh_plot_2d_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_dualmesh_mesh_plot_2d_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_dualmesh_mesh_plot_2d_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_inverse_ghost_zone05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_inverse_ghost_zone05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_refl02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_refl02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_resampleop_noise_point_small.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_resampleop_noise_point_small_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_transform05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_transform05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_transform07.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_transform07_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pickarray_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pickarray_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pickarray_04.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pickarray_04_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pickarray_07.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pickarray_07_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pickarray_09.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pickarray_09_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pickarray_10.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pickarray_10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_04.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_04_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_06.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_06_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_07.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_07_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_08.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_08_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_09.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_09_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_10.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_11.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_11_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixie_04.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixie_04_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixie_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixie_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixie_06.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixie_06_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixie_07.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixie_07_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_polar_curve_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_polar_curve_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_rect_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_rect_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_rect_06.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_rect_06_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_rect_07.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_rect_07_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_scalar02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_scalar02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_scatter_21.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_scatter_21_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_shapefile_4_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_shapefile_4_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_shapefile_4_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_shapefile_4_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_shapefile_4_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_shapefile_4_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_silo_41.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_silo_41_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_simplify_mixed02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_simplify_mixed02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_sph_2d.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_sph_2d_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_subset_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_subset_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_subset_03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_subset_03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_tecplot_04.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_tecplot_04_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_tecplot_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_tecplot_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_tecplot_12.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_tecplot_12_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_tecplot_15.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_tecplot_15_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_text3d03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_text3d03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_transparency_03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_transparency_03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_transparency_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_transparency_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_transparency_10.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_transparency_10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_transparency_14.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_transparency_14_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_var02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_var02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vector_16.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vector_16_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vector_17.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vector_17_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vector_18.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vector_18_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vector_19.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vector_19_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_view_09.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_view_09_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_volume_20.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_volume_20_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_volume_23.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_volume_23_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_volume_24.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_volume_24_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_volume_33.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_volume_33_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_volume_34.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_volume_34_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vtk_34a.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vtk_34a_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vtk_36.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vtk_36_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_xdmf_6_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_xdmf_6_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_xdmf_6_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_xdmf_6_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_xdmf_6_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_xdmf_6_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_xdmf_7_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_xdmf_7_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_xdmf_7_03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_xdmf_7_03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_zerocopy02.txt create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/css/styles.css create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_HDF5_X_Ray_Output_spectra_topo_intensities_legacy.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_HDF5_X_Ray_Output_spectra_topo_intensities_legacy_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_HDF5_X_Ray_Output_spectra_topo_intensities_modern.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_HDF5_X_Ray_Output_spectra_topo_intensities_modern_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_HDF5_X_Ray_Output_spectra_topo_path_length_legacy.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_HDF5_X_Ray_Output_spectra_topo_path_length_legacy_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_HDF5_X_Ray_Output_spectra_topo_path_length_modern.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_HDF5_X_Ray_Output_spectra_topo_path_length_modern_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_JSON_X_Ray_Output_spectra_topo_intensities_legacy.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_JSON_X_Ray_Output_spectra_topo_intensities_legacy_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_JSON_X_Ray_Output_spectra_topo_intensities_modern.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_JSON_X_Ray_Output_spectra_topo_intensities_modern_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_JSON_X_Ray_Output_spectra_topo_path_length_legacy.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_JSON_X_Ray_Output_spectra_topo_path_length_legacy_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_JSON_X_Ray_Output_spectra_topo_path_length_modern.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_JSON_X_Ray_Output_spectra_topo_path_length_modern_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_YAML_X_Ray_Output_spectra_topo_intensities_legacy.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_YAML_X_Ray_Output_spectra_topo_intensities_legacy_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_YAML_X_Ray_Output_spectra_topo_intensities_modern.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_YAML_X_Ray_Output_spectra_topo_intensities_modern_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_YAML_X_Ray_Output_spectra_topo_path_length_legacy.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_YAML_X_Ray_Output_spectra_topo_path_length_legacy_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_YAML_X_Ray_Output_spectra_topo_path_length_modern.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_YAML_X_Ray_Output_spectra_topo_path_length_modern_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_CGNS_NFace_Elements_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_CGNS_NFace_Elements_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Chombo_1_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Chombo_1_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Chombo_2_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Chombo_2_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_GDAL_0_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_GDAL_0_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_GDAL_1_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_GDAL_1_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_amr-quad_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_amr-quad_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_amr-quad_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_amr-quad_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_beam-quad-nurbs_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_beam-quad-nurbs_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_beam-quad-nurbs_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_beam-quad-nurbs_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_beam-quad_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_beam-quad_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_beam-quad_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_beam-quad_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_beam-tri_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_beam-tri_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_beam-tri_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_beam-tri_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_disc-nurbs_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_disc-nurbs_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_disc-nurbs_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_disc-nurbs_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_inline-quad_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_inline-quad_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_inline-quad_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_inline-quad_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_inline-tri_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_inline-tri_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_inline-tri_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_inline-tri_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_periodic-square_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_periodic-square_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_periodic-square_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_periodic-square_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc-nurbs_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc-nurbs_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc-nurbs_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc-nurbs_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc-p2_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc-p2_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc-p2_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc-p2_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc-p3_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc-p3_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc-p3_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc-p3_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Lineout3d.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Lineout3d_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LineoutSAMRAI.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LineoutSAMRAI_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Mixed_braid_2d.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Mixed_braid_2d_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Mixed_offsets_2d.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Mixed_offsets_2d_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Mixed_tet_quad_2d.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Mixed_tet_quad_2d_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Mixed_topo_polygonal_2d.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Mixed_topo_polygonal_2d_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Mixed_topo_simple_2d.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Mixed_topo_simple_2d_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Polytopal_mesh_missing_offsets.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Polytopal_mesh_missing_offsets_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_amr02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_amr02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_amr03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_amr03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_annot_macros_tafile_2.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_annot_macros_tafile_2_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_annot_macros_tafile_6.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_annot_macros_tafile_6_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bestline_3_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bestline_3_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bestline_3_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bestline_3_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bestline_3_03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bestline_3_03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_biquadratic_quad_field_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_biquadratic_quad_field_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_biquadratic_quad_field_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_biquadratic_quad_field_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_biquadratic_quad_field_03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_biquadratic_quad_field_03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_1d_curve_element_assoc.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_1d_curve_element_assoc_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_hdf5_0_8_2_quads_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_hdf5_0_8_2_quads_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_hdf5_0_8_2_rect_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_hdf5_0_8_2_rect_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_hdf5_0_8_2_struct_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_hdf5_0_8_2_struct_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_hdf5_0_8_2_tris_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_hdf5_0_8_2_tris_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_hdf5_0_8_2_uniform_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_hdf5_0_8_2_uniform_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_hdf5_quads_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_hdf5_quads_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_hdf5_rect_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_hdf5_rect_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_hdf5_struct_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_hdf5_struct_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_hdf5_tris_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_hdf5_tris_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_hdf5_uniform_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_hdf5_uniform_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_json_quads_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_json_quads_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_json_rect_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_json_rect_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_json_struct_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_json_struct_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_json_tris_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_json_tris_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_json_uniform_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_json_uniform_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_sidre_hdf5_quads_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_sidre_hdf5_quads_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_sidre_hdf5_rect_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_sidre_hdf5_rect_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_sidre_hdf5_struct_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_sidre_hdf5_struct_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_sidre_hdf5_tris_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_sidre_hdf5_tris_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_sidre_hdf5_uniform_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_sidre_hdf5_uniform_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_yaml_0_8_2_quads_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_yaml_0_8_2_quads_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_yaml_0_8_2_rect_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_yaml_0_8_2_rect_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_yaml_0_8_2_struct_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_yaml_0_8_2_struct_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_yaml_0_8_2_tris_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_yaml_0_8_2_tris_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_yaml_0_8_2_uniform_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_yaml_0_8_2_uniform_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_conduit_bin_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_conduit_bin_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_conduit_bin_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_conduit_bin_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_conduit_json_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_conduit_json_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_conduit_json_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_conduit_json_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_hdf5_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_hdf5_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_hdf5_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_hdf5_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_json_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_json_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_json_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_json_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_tri_beam_legacy_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_tri_beam_legacy_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_tri_beam_lor.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_tri_beam_lor_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_poly_2d_hdf5_0_8_2_mesh_topo_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_poly_2d_hdf5_0_8_2_mesh_topo_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_poly_2d_yaml_0_8_2_mesh_topo_mesh.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_poly_2d_yaml_0_8_2_mesh_topo_mesh_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_rz_cyl_rectilinear.root_plot_2D.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_rz_cyl_rectilinear.root_plot_2D_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_rz_cyl_rectilinear.root_plot_revolved_to_3D.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_rz_cyl_rectilinear.root_plot_revolved_to_3D_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_rz_cyl_structured.root_plot_2D.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_rz_cyl_structured.root_plot_2D_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_rz_cyl_uniform.root_plot_2D.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_rz_cyl_uniform.root_plot_2D_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_rz_cyl_unstructured.root_plot_2D.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_rz_cyl_unstructured.root_plot_2D_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_1_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_1_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_2_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_2_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_3_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_3_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_4_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_4_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_5_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_5_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_6_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_6_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_7_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_7_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_8_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_8_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_boxlib_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_boxlib_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_boxlib_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_boxlib_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_boxlib_03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_boxlib_03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_boxlib_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_boxlib_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bp_sparse_topos_example.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bp_sparse_topos_example_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_chgcar_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_chgcar_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_chgcar_07.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_chgcar_07_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_chgcar_11.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_chgcar_11_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_compositing_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_compositing_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_contour_multicolor_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_contour_multicolor_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_csg_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_csg_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_curve2Expr.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_curve2Expr_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_curve_anim2.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_curve_anim2_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_curve_anim3.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_curve_anim3_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_curve_scale_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_curve_scale_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_curve_scale_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_curve_scale_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_curve_scale_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_curve_scale_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_curve_scale_03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_curve_scale_03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_04.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_04_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_06.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_06_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_07.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_07_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_08.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_08_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_09.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_09_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_10.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_11.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_11_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddf_spatial_1d.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddf_spatial_1d_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_exodus_11.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_exodus_11_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_exodus_12.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_exodus_12_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_exodus_17.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_exodus_17_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_explode_repeat_labels_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_explode_repeat_labels_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_explode_tire_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_explode_tire_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_04.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_04_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_06.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_06_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_07.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_07_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_08.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_08_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_09.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_09_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_10.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_11.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_11_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_12.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_12_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_13.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_13_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_14.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_14_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_15.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_15_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_16.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_16_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_17.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_17_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_18.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_18_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_hf_2_1.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_hf_2_1_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_hf_4_1.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_hf_4_1_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_04.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_04_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_06.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_06_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_07.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_07_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_08.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_08_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_09.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_09_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_10.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_11.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_11_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_12.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_12_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_13.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_13_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_14.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_14_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_integration_09.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_integration_09_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_integration_10.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_integration_10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_streamlines_03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_streamlines_03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_streamlines_04.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_streamlines_04_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_streamlines_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_streamlines_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_streamlines_08.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_streamlines_08_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_amr-quad_boundary_topo.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_amr-quad_boundary_topo_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_amr-quad_mres_0000.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_amr-quad_mres_0000_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_amr-quad_mres_0005.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_amr-quad_mres_0005_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-quad-nurbs_boundary_topo.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-quad-nurbs_boundary_topo_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-quad-nurbs_mres_0000.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-quad-nurbs_mres_0000_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-quad-nurbs_mres_0020.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-quad-nurbs_mres_0020_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-quad_boundary_topo.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-quad_boundary_topo_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-quad_mres_0000.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-quad_mres_0000_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-quad_mres_0020.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-quad_mres_0020_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-tri_boundary_topo.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-tri_boundary_topo_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-tri_mres_0000.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-tri_mres_0000_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-tri_mres_0020.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-tri_mres_0020_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_disc-nurbs_boundary_topo.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_disc-nurbs_boundary_topo_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_disc-nurbs_mres_0000.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_disc-nurbs_mres_0000_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_disc-nurbs_mres_0020.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_disc-nurbs_mres_0020_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-quad_boundary_topo.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-quad_boundary_topo_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-quad_mres_0000.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-quad_mres_0000_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-quad_mres_0020.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-quad_mres_0020_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-tri_boundary_topo.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-tri_boundary_topo_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-tri_mres_0000.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-tri_mres_0000_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-tri_mres_0020.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-tri_mres_0020_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_periodic-square_mres_0000.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_periodic-square_mres_0000_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_periodic-square_mres_0020.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_periodic-square_mres_0020_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-nurbs_boundary_topo.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-nurbs_boundary_topo_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-nurbs_mres_0000.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-nurbs_mres_0000_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-nurbs_mres_0020.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-nurbs_mres_0020_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p2_boundary_topo.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p2_boundary_topo_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p2_mres_0000.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p2_mres_0000_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p2_mres_0020.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p2_mres_0020_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p3_boundary_topo.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p3_boundary_topo_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p3_mres_0000.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p3_mres_0000_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p3_mres_0020.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p3_mres_0020_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc_boundary_topo.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc_boundary_topo_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc_mres_0000.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc_mres_0000_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc_mres_0020.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc_mres_0020_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_kulllite_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_kulllite_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_kulllite_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_kulllite_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_kulllite_03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_kulllite_03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_label_6_04.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_label_6_04_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_label_8_11.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_label_8_11_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_lata_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_lata_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_lata_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_lata_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_lata_06.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_lata_06_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_lata_08.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_lata_08_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_lata_09.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_lata_09_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_lcs_ftle_double_gyre_2_domains_NativeMesh_2DAuxGrid.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_lcs_ftle_double_gyre_2_domains_NativeMesh_2DAuxGrid_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_leos_06.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_leos_06_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_life03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_life03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_line3d07.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_line3d07_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_line3d08.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_line3d08_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_line3d09.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_line3d09_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_line3d10.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_line3d10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_line3d11.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_line3d11_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_line3d12.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_line3d12_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_0_1.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_0_10.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_0_10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_0_13.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_0_13_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_0_16.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_0_16_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_0_1_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_0_4.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_0_4_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_0_7.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_0_7_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_1_1.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_1_10.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_1_10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_1_13.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_1_13_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_1_16.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_1_16_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_1_1_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_1_4.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_1_4_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_1_7.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_1_7_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_2_1.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_2_10.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_2_10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_2_13.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_2_13_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_2_16.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_2_16_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_2_1_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_2_4.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_2_4_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_1.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_10.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_13.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_13_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_16.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_16_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_1_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_4.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_4_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_7.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_7_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar04.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar04_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar06.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar06_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar07.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar07_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar08.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar08_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar09.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar09_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar10.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar11.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar11_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_mesh_point_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_mesh_point_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_mesh_quality_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_mesh_quality_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_meshtype_point_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_meshtype_point_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_meshtype_point_07.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_meshtype_point_07_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_missingdata_0_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_missingdata_0_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_missingdata_0_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_missingdata_0_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_missingdata_0_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_missingdata_0_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_missingdata_1_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_missingdata_1_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_missingdata_1_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_missingdata_1_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_missingdata_1_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_missingdata_1_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_moab_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_moab_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_moveoperator_0.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_moveoperator_0_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_multiblock02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_multiblock02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_multiblock03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_multiblock03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_multiblock04.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_multiblock04_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_multiblock05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_multiblock05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_netcdf_3_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_netcdf_3_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_oldsilo_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_oldsilo_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_openPMD_3D_Fieldsrho.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_openPMD_3D_Fieldsrho_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_dualmesh_mesh_plot_2d_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_dualmesh_mesh_plot_2d_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_dualmesh_mesh_plot_2d_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_dualmesh_mesh_plot_2d_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_dualmesh_mesh_plot_2d_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_dualmesh_mesh_plot_2d_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_inverse_ghost_zone05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_inverse_ghost_zone05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_refl02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_refl02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_resampleop_noise_point_small.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_resampleop_noise_point_small_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_transform05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_transform05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_transform07.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_transform07_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pickarray_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pickarray_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pickarray_04.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pickarray_04_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pickarray_07.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pickarray_07_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pickarray_09.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pickarray_09_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pickarray_10.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pickarray_10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_04.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_04_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_06.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_06_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_07.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_07_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_08.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_08_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_09.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_09_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_10.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_11.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_11_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixie_04.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixie_04_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixie_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixie_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixie_06.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixie_06_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixie_07.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixie_07_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_polar_curve_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_polar_curve_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_rect_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_rect_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_rect_06.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_rect_06_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_rect_07.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_rect_07_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_scalar02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_scalar02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_scatter_21.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_scatter_21_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_shapefile_4_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_shapefile_4_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_shapefile_4_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_shapefile_4_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_shapefile_4_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_shapefile_4_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_silo_41.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_silo_41_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_simplify_mixed02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_simplify_mixed02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_sph_2d.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_sph_2d_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_subset_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_subset_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_subset_03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_subset_03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_tecplot_04.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_tecplot_04_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_tecplot_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_tecplot_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_tecplot_12.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_tecplot_12_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_tecplot_15.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_tecplot_15_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_text3d03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_text3d03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_transparency_03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_transparency_03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_transparency_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_transparency_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_transparency_10.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_transparency_10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_transparency_14.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_transparency_14_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_var02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_var02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_vector_16.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_vector_16_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_vector_17.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_vector_17_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_vector_18.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_vector_18_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_vector_19.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_vector_19_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_view_09.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_view_09_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_volume_20.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_volume_20_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_volume_23.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_volume_23_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_volume_24.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_volume_24_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_volume_33.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_volume_33_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_volume_34.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_volume_34_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_vtk_34a.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_vtk_34a_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_vtk_36.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_vtk_36_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_xdmf_6_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_xdmf_6_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_xdmf_6_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_xdmf_6_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_xdmf_6_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_xdmf_6_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_xdmf_7_02.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_xdmf_7_02_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_xdmf_7_03.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_xdmf_7_03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ANALYZE.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ANALYZE_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ANSYS.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ANSYS_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_CGNS.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_CGNS_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Cale.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Cale_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Chombo.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Chombo_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Curve3D.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Curve3D_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_EnSight.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_EnSight_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_FITS.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_FITS_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_FMS.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_FMS_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Fluent.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Fluent_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_GDAL.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_GDAL_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_NASTRAN.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_NASTRAN_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_OpenFOAM.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_OpenFOAM_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_PATRAN.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_PATRAN_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_PLOT3D.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_PLOT3D_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ProteinDataBank.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ProteinDataBank_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_RAW.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_RAW_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_SPCTH.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_SPCTH_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Velodyne.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Velodyne_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_WData.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_WData_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Xmdv.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Xmdv_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Xolotl.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Xolotl_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_activesource.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_activesource_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_adios2.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_adios2_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_avsucd.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_avsucd_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_blueprint.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_blueprint_axom_klee.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_blueprint_axom_klee_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_blueprint_export.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_blueprint_export_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_blueprint_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_bov.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_bov_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_boxlib.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_boxlib_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_chgcar.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_chgcar_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_claw.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_claw_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_closedatabase.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_closedatabase_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_correlation.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_correlation_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_curve.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_curve_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ddcMD.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ddcMD_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_empty_db.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_empty_db_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_exodus.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_exodus_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_export_db.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_export_db_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ffp.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ffp_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_flash.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_flash_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_global_node_ids.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_global_node_ids_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_h5part.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_h5part_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_history.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_history_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_image.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_image_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_imgvol.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_imgvol_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_kulllite.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_kulllite_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_lata.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_lata_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_leos.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_leos_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_lines.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_lines_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_metadata.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_metadata_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_mfem.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_mfem_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_mili.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_mili_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_miranda.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_miranda_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_moab.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_moab_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_multi_format.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_multi_format2.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_multi_format2_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_multi_format_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_netcdf.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_netcdf_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_obj.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_obj_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_oldsilo.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_oldsilo_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_openPMD.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_openPMD_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_openexr.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_openexr_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_overlink.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_overlink_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_pdbdatabase.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_pdbdatabase_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_pixie.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_pixie_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_plaintext.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_plaintext_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_rect.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_rect_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_reopen.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_reopen_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_sami.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_sami_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_samrai.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_samrai_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_scale_mesh.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_scale_mesh_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_shapefile.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_shapefile_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_silo.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_silo_altdriver.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_silo_altdriver_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_silo_datatypes.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_silo_datatypes_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_silo_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_singlemulti.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_singlemulti_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_sw4.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_sw4_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_tecplot.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_tecplot_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_timesliders.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_timesliders_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_uintah.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_uintah_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_unv.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_unv_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_vtk.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_vtk_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_wave_tv.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_wave_tv_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_xdmf.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_xdmf_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_xform_precision.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_xform_precision_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_xyz.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_xyz_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_ghost_zoneid_expr.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_ghost_zoneid_expr_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_global_stats.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_global_stats_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_math_expr.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_math_expr_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_tensor_expr.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_tensor_expr_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/faulttolerance_badfile.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/faulttolerance_badfile_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/faulttolerance_checkmode.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/faulttolerance_checkmode_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/faulttolerance_savewindow.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/faulttolerance_savewindow_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cinema-a.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cinema-a_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cinema-c.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cinema-c_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cleanzonesonly.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cleanzonesonly_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_clonefirstref.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_clonefirstref_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_conditional.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_conditional_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_conn_cmfe.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_conn_cmfe_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_coord_expr.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_coord_expr_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_curve_anim.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_curve_anim_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_curve_expressions.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_curve_expressions_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cylindrical_radius.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cylindrical_radius_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_ddf.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_ddf_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_defvar_anim.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_defvar_anim_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_expr2engine.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_expr2engine_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_exprList.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_exprList_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_expr_cmfe.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_expr_cmfe_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_expressions.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_expressions_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_field_operators.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_field_operators_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_ghost_node.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_ghost_node_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_image_proc.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_image_proc_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_keyframe.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_keyframe_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_lambda2.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_lambda2_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_lineout.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_lineout_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_locktime.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_locktime_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_locus.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_locus_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_math_expr.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_math_expr_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_matsel.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_matsel_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_matvf.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_matvf_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_merge_tree.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_merge_tree_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_mesh_quality.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_mesh_quality_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_mir.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_mir_cache.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_mir_cache_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_mir_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_missingdata.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_missingdata_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_multivar.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_multivar_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_pos_cmfe.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_pos_cmfe_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_py_exprs.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_py_exprs_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_qcrit.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_qcrit_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_replace.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_replace_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_sil.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_sil_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_simplify_mixed.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_simplify_mixed_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_specmf.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_specmf_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_symm.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_symm_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_time_cmfe.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_time_cmfe_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_time_deriv_cmfe.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_time_deriv_cmfe_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_time_iteration.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_time_iteration_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_timelock.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_timelock_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_val4mat.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_val4mat_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_vtkm.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_vtkm_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/index.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/js/jquery-3.6.1.min.js create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/js/jquery.tablesorter.js create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/js/purl.js create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_arbpoly.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_arbpoly_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_csg.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_csg_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_degen_mesh.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_degen_mesh_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_emptydomains.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_emptydomains_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_globe.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_globe_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_point.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_point_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_rect3d.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_rect3d_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/missingdata_0_04.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_amr_stitch.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_amr_stitch_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_box.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_box_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_cart_proj.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_cart_proj_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_clip.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_clip_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_cracksclipper.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_cracksclipper_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_defer_expr.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_defer_expr_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_displace.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_displace_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_dual_mesh.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_dual_mesh_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_elevate.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_elevate_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ex_surf.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ex_surf_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_explode.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_explode_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_extrudeStacked.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_extrudeStacked_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_geometry.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_geometry_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_integration.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_integration_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_pathlines.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_pathlines_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_pics.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_pics_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_streamlines.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_streamlines_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_termination.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_termination_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_indexselect.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_indexselect_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_inverse_ghost_zone.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_inverse_ghost_zone_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_isovolume.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_isovolume_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_lcs.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_lcs_ic_1.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_lcs_ic_1_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_lcs_lc_1.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_lcs_lc_1_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_lcs_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_moveoperators.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_moveoperators_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_multires.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_multires_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_onionpeel.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_onionpeel_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_operators.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_operators_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_persistent_particles.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_persistent_particles_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_radial_resample.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_radial_resample_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_reflect.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_reflect_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_remap.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_remap_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_resample.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_resample_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_revolve.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_revolve_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_slice.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_slice_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_sph_resample.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_sph_resample_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_tessellate.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_tessellate_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_threeslice.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_threeslice_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_threshold.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_threshold_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_transform.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_transform_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_tube.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_tube_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_contour.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_contour_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_curve.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_curve_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_filledboundary.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_filledboundary_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_label.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_label_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_mesh.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_mesh_c.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_mesh_c_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_mesh_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_molecule.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_molecule_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_multicolor.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_multicolor_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_parcoords.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_parcoords_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_pseudocolor.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_pseudocolor_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_ray_trace.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_ray_trace_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_scatter.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_scatter_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_singlecolor.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_singlecolor_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_subset.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_subset_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_surface.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_surface_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_tensor.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_tensor_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_truecolor.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_truecolor_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_vector.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_vector_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_volumePlot.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_volumePlot_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plugins_databasesVsInstall.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plugins_databasesVsInstall_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plugins_operatorsVsInstall.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plugins_operatorsVsInstall_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plugins_plotsVsInstall.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plugins_plotsVsInstall_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_avg_value.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_avg_value_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_bestfitline.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_bestfitline_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_casetest.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_casetest_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_centroid.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_centroid_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_conncomp.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_conncomp_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_consistencyChecks.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_consistencyChecks_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_curvature.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_curvature_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_database.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_database_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_error_queries.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_error_queries_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_gridinformation.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_gridinformation_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_hohlraum.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_hohlraum_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_kurtosis.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_kurtosis_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_l2norm.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_l2norm_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_length.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_length_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_line_scan.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_line_scan_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pick.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pickNamedArgs.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pickNamedArgs_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pick_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pickarray.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pickarray_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pickcleanzonesonly.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pickcleanzonesonly_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_py_queries.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_py_queries_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_queriesOverTime.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_queriesOverTime_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_queryMultiWindow.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_queryMultiWindow_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_revolved_surface_area.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_revolved_surface_area_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_scf.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_scf_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_surface_area_over_time.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_surface_area_over_time_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_variable_sum_volume.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_variable_sum_volume_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_watertight.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_watertight_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_xrayimage.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_xrayimage_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_cl_args.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_cl_args_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_colortables.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_colortables_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_expressions.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_expressions_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_operators.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_operators_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_quantitative_operations.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_quantitative_operations_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_saving_images.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_saving_images_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_subsetting.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_subsetting_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_view.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_view_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_working_with_annotations.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_working_with_annotations_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_working_with_dbs.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_working_with_dbs_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_working_with_plots.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_working_with_plots_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_annot_macros.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_annot_macros_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_annotation.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_annotation_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_axislabels.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_axislabels_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_axistitles.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_axistitles_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_bigdata.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_bigdata_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_colortexture.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_colortexture_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_compositing.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_compositing_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_evalcubic.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_evalcubic_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_image.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_image_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_legends.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_legends_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_lighting.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_lighting_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_line2d.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_line2d_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_line3d.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_line3d_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_offscreensave.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_offscreensave_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_pixeldata.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_pixeldata_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_pointGlyphing.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_pointGlyphing_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_renderpoints.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_renderpoints_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_saveformats.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_saveformats_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_scalable.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_scalable2.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_scalable2_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_scalable_c.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_scalable_c_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_scalable_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_shadows.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_shadows_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_specular.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_specular_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_text2d.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_text2d_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_text3d.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_text3d_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_timeslider.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_timeslider_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_transparency.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_transparency_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_view.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_viewChange.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_viewChange_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_view_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume_rect_multiDomain.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume_rect_multiDomain_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume_rect_singleDomain.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume_rect_singleDomain_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume_ucd_multiDomain.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume_ucd_multiDomain_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_colortable.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_colortable_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_correlationsession.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_correlationsession_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_legendproperties.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_legendproperties_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_rect3d-contour.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_rect3d-contour_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_restorewithsources.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_restorewithsources_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_selection.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_selection_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_sessionexpression.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_sessionexpression_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_sessionview.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_sessionview_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_textannot.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_textannot_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_view3d.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_view3d_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_wavecontour.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_wavecontour_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_amr.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_amr_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_aresamr.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_aresamr_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_batch.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_batch_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_csg.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_csg_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_curve.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_curve_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_domainbounds.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_domainbounds_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_domainlist.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_domainlist_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_ghostcells.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_ghostcells_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_globalids.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_globalids_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_interleave.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_interleave_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_life.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_life_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_mandelbrot.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_mandelbrot_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_material.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_material_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_materialvar.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_materialvar_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_mesh.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_mesh_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_multiblock.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_multiblock_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_point.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_point_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_polyhedral.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_polyhedral_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_scalar.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_scalar_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_species.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_species_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_ucdcurve.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_ucdcurve_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_unstructured.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_unstructured_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_updateplots.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_updateplots_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_updateplots_session.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_updateplots_session_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_var.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_var_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_zerocopy.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_zerocopy_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_annotation_objects.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_annotation_objects_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_atts_assign.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_atts_assign_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_compiler_warnings.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_compiler_warnings_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_convert2to3.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_convert2to3_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_default_methods.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_default_methods_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_launcher.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_launcher_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_mrucache.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_mrucache_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_namescheme.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_namescheme_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_protocol.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_protocol_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_stringhelpers.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_stringhelpers_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_test_value_simple.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_test_value_simple_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_utility.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_utility_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/zerocopy02.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/Pick3DTo2D.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/avg_value_02.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/c_Pick3DTo2D.txt create mode 100644 2024-12-12-22:00/poodle_trunk_serial/c_annot_macros_tafile_2.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/c_annot_macros_tafile_2_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/c_annot_macros_tafile_6.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/c_annot_macros_tafile_6_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/c_avg_value_02.txt create mode 100644 2024-12-12-22:00/poodle_trunk_serial/c_blueprint_rz_cyl_rectilinear.root_plot_revolved_to_3D.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/c_blueprint_rz_cyl_rectilinear.root_plot_revolved_to_3D_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/c_blueprint_rz_cyl_unstructured.root_plot_revolved_to_3D.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/c_blueprint_rz_cyl_unstructured.root_plot_revolved_to_3D_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/c_life03.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/c_life03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/c_ops_dualmesh_mesh_plot_2d_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/c_ops_dualmesh_mesh_plot_2d_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/c_ospray_domain_boundaries_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/c_ospray_domain_boundaries_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_07.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_07_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_08.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_08_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_09.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_09_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_10.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_11.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_11_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/css/styles.css create mode 100644 2024-12-12-22:00/poodle_trunk_serial/d_annot_macros_tafile_2.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/d_annot_macros_tafile_2_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/d_annot_macros_tafile_6.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/d_annot_macros_tafile_6_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/d_blueprint_rz_cyl_rectilinear.root_plot_revolved_to_3D.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/d_blueprint_rz_cyl_rectilinear.root_plot_revolved_to_3D_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/d_blueprint_rz_cyl_unstructured.root_plot_revolved_to_3D.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/d_blueprint_rz_cyl_unstructured.root_plot_revolved_to_3D_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/d_life03.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/d_life03_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/d_ops_dualmesh_mesh_plot_2d_01.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/d_ops_dualmesh_mesh_plot_2d_01_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/d_ospray_domain_boundaries_00.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/d_ospray_domain_boundaries_00_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/d_pixeldata_0_05.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/d_pixeldata_0_05_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/d_pixeldata_0_07.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/d_pixeldata_0_07_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/d_pixeldata_0_08.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/d_pixeldata_0_08_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/d_pixeldata_0_09.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/d_pixeldata_0_09_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/d_pixeldata_0_10.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/d_pixeldata_0_10_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/d_pixeldata_0_11.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/d_pixeldata_0_11_thumb.png create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_ANALYZE.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_ANALYZE_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_ANSYS.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_ANSYS_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_CGNS.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_CGNS_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_Cale.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_Cale_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_Chombo.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_Chombo_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_Curve3D.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_Curve3D_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_EnSight.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_EnSight_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_FITS.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_FITS_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_FMS.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_FMS_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_Fluent.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_Fluent_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_GDAL.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_GDAL_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_NASTRAN.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_NASTRAN_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_OpenFOAM.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_OpenFOAM_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_PATRAN.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_PATRAN_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_PLOT3D.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_PLOT3D_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_ProteinDataBank.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_ProteinDataBank_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_RAW.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_RAW_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_SPCTH.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_SPCTH_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_Velodyne.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_Velodyne_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_WData.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_WData_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_Xmdv.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_Xmdv_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_Xolotl.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_Xolotl_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_activesource.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_activesource_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_adios2.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_adios2_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_avsucd.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_avsucd_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_blueprint.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_blueprint_axom_klee.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_blueprint_axom_klee_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_blueprint_export.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_blueprint_export_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_blueprint_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_bov.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_bov_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_boxlib.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_boxlib_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_chgcar.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_chgcar_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_claw.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_claw_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_closedatabase.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_closedatabase_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_correlation.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_correlation_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_curve.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_curve_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_ddcMD.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_ddcMD_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_empty_db.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_empty_db_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_exodus.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_exodus_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_export_db.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_export_db_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_ffp.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_ffp_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_flash.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_flash_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_global_node_ids.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_global_node_ids_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_h5part.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_h5part_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_history.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_history_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_image.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_image_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_imgvol.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_imgvol_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_kulllite.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_kulllite_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_lata.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_lata_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_leos.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_leos_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_lines.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_lines_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_metadata.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_metadata_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_mfem.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_mfem_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_mili.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_mili_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_miranda.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_miranda_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_moab.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_moab_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_multi_format.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_multi_format2.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_multi_format2_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_multi_format_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_netcdf.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_netcdf_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_obj.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_obj_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_oldsilo.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_oldsilo_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_openPMD.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_openPMD_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_openexr.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_openexr_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_overlink.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_overlink_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_pdbdatabase.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_pdbdatabase_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_pixie.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_pixie_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_plaintext.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_plaintext_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_rect.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_rect_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_reopen.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_reopen_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_sami.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_sami_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_samrai.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_samrai_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_scale_mesh.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_scale_mesh_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_shapefile.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_shapefile_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_silo.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_silo_altdriver.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_silo_altdriver_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_silo_datatypes.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_silo_datatypes_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_silo_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_singlemulti.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_singlemulti_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_sw4.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_sw4_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_tecplot.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_tecplot_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_timesliders.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_timesliders_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_uintah.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_uintah_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_unv.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_unv_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_vtk.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_vtk_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_wave_tv.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_wave_tv_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_xdmf.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_xdmf_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_xform_precision.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_xform_precision_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_xyz.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_xyz_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_zipwrapper.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/databases_zipwrapper_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/expressions_ghost_zoneid_expr.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/expressions_ghost_zoneid_expr_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/expressions_global_stats.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/expressions_global_stats_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/expressions_math_expr.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/expressions_math_expr_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/expressions_tensor_expr.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/expressions_tensor_expr_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/faulttolerance_badfile.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/faulttolerance_badfile_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/faulttolerance_checkmode.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/faulttolerance_checkmode_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/faulttolerance_savewindow.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/faulttolerance_savewindow_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_cinema-a.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_cinema-a_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_cinema-c.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_cinema-c_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_cleanzonesonly.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_cleanzonesonly_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_clonefirstref.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_clonefirstref_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_conditional.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_conditional_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_conn_cmfe.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_conn_cmfe_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_coord_expr.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_coord_expr_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_curve_anim.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_curve_anim_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_curve_expressions.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_curve_expressions_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_cylindrical_radius.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_cylindrical_radius_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_ddf.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_ddf_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_defvar_anim.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_defvar_anim_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_expr2engine.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_expr2engine_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_exprList.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_exprList_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_expr_cmfe.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_expr_cmfe_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_expressions.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_expressions_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_field_operators.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_field_operators_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_ghost_node.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_ghost_node_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_image_proc.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_image_proc_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_keyframe.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_keyframe_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_lambda2.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_lambda2_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_lineout.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_lineout_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_locktime.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_locktime_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_locus.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_locus_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_math_expr.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_math_expr_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_matsel.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_matsel_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_matvf.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_matvf_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_merge_tree.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_merge_tree_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_mesh_quality.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_mesh_quality_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_mir.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_mir_cache.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_mir_cache_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_mir_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_missingdata.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_missingdata_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_multivar.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_multivar_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_pos_cmfe.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_pos_cmfe_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_py_exprs.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_py_exprs_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_qcrit.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_qcrit_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_replace.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_replace_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_sil.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_sil_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_simplify_mixed.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_simplify_mixed_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_specmf.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_specmf_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_symm.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_symm_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_time_cmfe.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_time_cmfe_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_time_deriv_cmfe.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_time_deriv_cmfe_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_time_iteration.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_time_iteration_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_timelock.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_timelock_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_val4mat.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_val4mat_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_vtkm.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/hybrid_vtkm_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/index.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/js/jquery-3.6.1.min.js create mode 100644 2024-12-12-22:00/poodle_trunk_serial/js/jquery.tablesorter.js create mode 100644 2024-12-12-22:00/poodle_trunk_serial/js/purl.js create mode 100644 2024-12-12-22:00/poodle_trunk_serial/meshtype_arbpoly.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/meshtype_arbpoly_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/meshtype_csg.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/meshtype_csg_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/meshtype_degen_mesh.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/meshtype_degen_mesh_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/meshtype_emptydomains.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/meshtype_emptydomains_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/meshtype_globe.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/meshtype_globe_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/meshtype_point.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/meshtype_point_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/meshtype_rect3d.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/meshtype_rect3d_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_amr_stitch.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_amr_stitch_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_box.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_box_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_cart_proj.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_cart_proj_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_clip.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_clip_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_cracksclipper.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_cracksclipper_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_defer_expr.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_defer_expr_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_displace.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_displace_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_dual_mesh.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_dual_mesh_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_elevate.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_elevate_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_ex_surf.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_ex_surf_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_explode.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_explode_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_extrudeStacked.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_extrudeStacked_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_ic_geometry.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_ic_geometry_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_ic_integration.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_ic_integration_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_ic_pathlines.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_ic_pathlines_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_ic_pics.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_ic_pics_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_ic_streamlines.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_ic_streamlines_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_ic_termination.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_ic_termination_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_indexselect.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_indexselect_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_inverse_ghost_zone.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_inverse_ghost_zone_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_isovolume.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_isovolume_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_lcs.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_lcs_ic_1.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_lcs_ic_1_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_lcs_ic_2.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_lcs_ic_2_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_lcs_lc_1.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_lcs_lc_1_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_lcs_lc_2.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_lcs_lc_2_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_lcs_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_moveoperators.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_moveoperators_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_multires.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_multires_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_onionpeel.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_onionpeel_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_operators.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_operators_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_persistent_particles.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_persistent_particles_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_radial_resample.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_radial_resample_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_reflect.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_reflect_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_remap.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_remap_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_resample.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_resample_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_revolve.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_revolve_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_slice.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_slice_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_sph_resample.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_sph_resample_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_tessellate.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_tessellate_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_threeslice.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_threeslice_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_threshold.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_threshold_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_transform.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_transform_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_tube.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/operators_tube_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_contour.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_contour_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_curve.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_curve_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_filledboundary.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_filledboundary_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_label.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_label_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_mesh.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_mesh_c.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_mesh_c_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_mesh_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_molecule.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_molecule_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_multicolor.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_multicolor_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_parcoords.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_parcoords_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_pseudocolor.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_pseudocolor_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_ray_trace.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_ray_trace_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_scatter.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_scatter_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_singlecolor.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_singlecolor_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_subset.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_subset_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_surface.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_surface_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_tensor.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_tensor_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_truecolor.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_truecolor_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_vector.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_vector_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_volumePlot.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plots_volumePlot_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plugins_databasesVsInstall.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plugins_databasesVsInstall_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plugins_operatorsVsInstall.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plugins_operatorsVsInstall_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plugins_plotsVsInstall.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/plugins_plotsVsInstall_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_avg_value.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_avg_value_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_bestfitline.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_bestfitline_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_casetest.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_casetest_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_centroid.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_centroid_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_conncomp.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_conncomp_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_consistencyChecks.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_consistencyChecks_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_curvature.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_curvature_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_database.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_database_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_error_queries.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_error_queries_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_gridinformation.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_gridinformation_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_hohlraum.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_hohlraum_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_kurtosis.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_kurtosis_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_l2norm.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_l2norm_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_length.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_length_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_line_scan.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_line_scan_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_pick.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_pickNamedArgs.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_pickNamedArgs_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_pick_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_pickarray.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_pickarray_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_pickcleanzonesonly.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_pickcleanzonesonly_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_py_queries.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_py_queries_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_queriesOverTime.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_queriesOverTime_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_queryMultiWindow.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_queryMultiWindow_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_revolved_surface_area.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_revolved_surface_area_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_scf.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_scf_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_surface_area_over_time.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_surface_area_over_time_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_variable_sum_volume.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_variable_sum_volume_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_watertight.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_watertight_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_xrayimage.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/queries_xrayimage_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/quickrecipes_cl_args.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/quickrecipes_cl_args_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/quickrecipes_colortables.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/quickrecipes_colortables_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/quickrecipes_expressions.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/quickrecipes_expressions_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/quickrecipes_operators.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/quickrecipes_operators_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/quickrecipes_quantitative_operations.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/quickrecipes_quantitative_operations_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/quickrecipes_saving_images.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/quickrecipes_saving_images_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/quickrecipes_subsetting.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/quickrecipes_subsetting_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/quickrecipes_view.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/quickrecipes_view_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/quickrecipes_working_with_annotations.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/quickrecipes_working_with_annotations_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/quickrecipes_working_with_dbs.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/quickrecipes_working_with_dbs_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/quickrecipes_working_with_plots.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/quickrecipes_working_with_plots_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_annot_macros.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_annot_macros_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_annotation.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_annotation_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_axislabels.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_axislabels_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_axistitles.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_axistitles_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_bigdata.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_bigdata_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_colortexture.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_colortexture_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_compositing.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_compositing_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_evalcubic.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_evalcubic_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_image.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_image_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_legends.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_legends_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_lighting.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_lighting_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_line2d.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_line2d_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_line3d.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_line3d_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_offscreensave.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_offscreensave_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_ospray.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_ospray_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_pixeldata.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_pixeldata_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_pointGlyphing.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_pointGlyphing_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_renderpoints.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_renderpoints_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_saveformats.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_saveformats_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_scalable.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_scalable2.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_scalable2_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_scalable_c.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_scalable_c_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_scalable_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_shadows.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_shadows_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_specular.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_specular_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_text2d.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_text2d_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_text3d.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_text3d_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_timeslider.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_timeslider_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_transparency.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_transparency_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_view.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_viewChange.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_viewChange_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_view_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_volume.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_volume_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_volume_rect_multiDomain.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_volume_rect_multiDomain_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_volume_rect_singleDomain.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_volume_rect_singleDomain_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_volume_ucd_multiDomain.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/rendering_volume_ucd_multiDomain_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/session_colortable.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/session_colortable_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/session_correlationsession.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/session_correlationsession_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/session_legendproperties.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/session_legendproperties_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/session_rect3d-contour.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/session_rect3d-contour_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/session_restorewithsources.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/session_restorewithsources_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/session_selection.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/session_selection_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/session_sessionexpression.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/session_sessionexpression_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/session_sessionview.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/session_sessionview_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/session_simplekeyframe.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/session_simplekeyframe_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/session_textannot.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/session_textannot_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/session_view3d.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/session_view3d_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/session_wavecontour.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/session_wavecontour_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_amr.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_amr_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_aresamr.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_aresamr_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_batch.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_batch_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_csg.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_csg_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_curve.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_curve_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_domainbounds.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_domainbounds_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_domainlist.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_domainlist_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_ghostcells.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_ghostcells_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_globalids.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_globalids_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_interleave.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_interleave_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_life.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_life_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_mandelbrot.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_mandelbrot_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_material.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_material_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_materialvar.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_materialvar_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_mesh.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_mesh_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_multiblock.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_multiblock_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_point.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_point_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_polyhedral.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_polyhedral_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_scalar.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_scalar_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_species.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_species_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_ucdcurve.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_ucdcurve_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_unstructured.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_unstructured_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_updateplots.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_updateplots_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_updateplots_session.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_updateplots_session_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_var.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_var_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_zerocopy.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/simulation_zerocopy_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/unit_annotation_objects.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/unit_annotation_objects_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/unit_atts_assign.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/unit_atts_assign_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/unit_compiler_warnings.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/unit_compiler_warnings_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/unit_convert2to3.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/unit_convert2to3_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/unit_default_methods.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/unit_default_methods_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/unit_launcher.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/unit_launcher_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/unit_mrucache.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/unit_mrucache_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/unit_namescheme.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/unit_namescheme_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/unit_protocol.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/unit_protocol_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/unit_stringhelpers.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/unit_stringhelpers_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/unit_test_value_simple.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/unit_test_value_simple_py.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/unit_utility.html create mode 100644 2024-12-12-22:00/poodle_trunk_serial/unit_utility_py.html diff --git a/2024-12-12-22:00/poodle_trunk_parallel/Pick3DTo2D.html b/2024-12-12-22:00/poodle_trunk_parallel/Pick3DTo2D.html new file mode 100644 index 000000000..6601df0dd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/Pick3DTo2D.html @@ -0,0 +1,1896 @@ +Results for test case Pick3DTo2D + +

Results for test case Pick3DTo2D

+ + + + + +
Legend
0 Lines Added
0 Lines Deleted
6 Lines Changed

+

2 modifications, totalling 6 lines

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Line Baseline Line Current
1:  1:  
2: A: globe.silo2: A: globe.silo
3: mesh13: mesh1
4: Point: <0, -4.48889, 3.95556>4: Point: <0, -4.48889, 3.95556>
5: Zone: 5545: Zone: 554
6: Incident Nodes: 797 798 789 788 851 852 843 8426: Incident Nodes: 797 798 789 788 851 852 843 842
7: u: <nodal>7: u: <nodal>
8:     (797) = -3.726788:     (797) = -3.72678
9:     (798) = -5.129479:     (798) = -5.12947
10:     (789) = -3.847110:     (789) = -3.8471
11:     (788) = -2.7950811:     (788) = -2.79508
12:     (851) = -3.9185712:     (851) = -3.91857
13:     (852) = -5.3934513:     (852) = -5.39345
14:     (843) = -4.0450814:     (843) = -4.04508
15:     (842) = -2.9389315:     (842) = -2.93893
16:  16:  
17:  17:  
18: B: globe.silo18: B: globe.silo
19: mesh119: mesh1
20: Point: <0, 4.4, -2.44444>20: Point: <0, 4.4, -2.44444>
21: Zone: 94521: Zone: 945
22: Incident Nodes: 315 316 307 306 369 370 361 36022: Incident Nodes: 315 316 307 306 369 370 361 360
23: u: <nodal>23: u: <nodal>
24:     (315) = 6.3403824:     (315) = 6.34038
25:     (316) = 5.3934525:     (316) = 5.39345
26:     (307) = 4.0450826:     (307) = 4.04508
27:     (306) = 4.7552827:     (306) = 4.75528
28:     (369) = 6.0300628:     (369) = 6.03006
29:     (370) = 5.1294729:     (370) = 5.12947
30:     (361) = 3.847130:     (361) = 3.8471
31:     (360) = 4.5225431:     (360) = 4.52254
32:  32:  
33:  33:  
34: C: globe.silo34: C: globe.silo
35: mesh135: mesh1
36: Point: <-0.629469, -3.97431, 4.07401>36: Point: <-0.629469, -3.97431, 4.07401>
37: Zone: 55437: Zone: 554
38: Incident Nodes: 797 798 789 788 851 852 843 84238: Incident Nodes: 797 798 789 788 851 852 843 842
39: u: <nodal>39: u: <nodal>
40:     (797) = -3.7267840:     (797) = -3.72678
41:     (798) = -5.1294741:     (798) = -5.12947
42:     (789) = -3.847142:     (789) = -3.8471
43:     (788) = -2.7950843:     (788) = -2.79508
44:     (851) = -3.9185744:     (851) = -3.91857
45:     (852) = -5.3934545:     (852) = -5.39345
46:     (843) = -4.0450846:     (843) = -4.04508
47:     (842) = -2.9389347:     (842) = -2.93893
48:  48:  
49:  49:  
50: D: globe.silo50: D: globe.silo
51: mesh151: mesh1
52: Point: <-0.793176, 5.00792, -2.61567>52: Point: <-0.793176, 5.00792, -2.61567>
53: Zone: 94553: Zone: 945
54: Incident Nodes: 315 316 307 306 369 370 361 36054: Incident Nodes: 315 316 307 306 369 370 361 360
55: u: <nodal>55: u: <nodal>
56:     (315) = 6.3403856:     (315) = 6.34038
57:     (316) = 5.3934557:     (316) = 5.39345
58:     (307) = 4.0450858:     (307) = 4.04508
59:     (306) = 4.7552859:     (306) = 4.75528
60:     (369) = 6.0300660:     (369) = 6.03006
61:     (370) = 5.1294761:     (370) = 5.12947
62:     (361) = 3.847162:     (361) = 3.8471
63:     (360) = 4.5225463:     (360) = 4.52254
64:  64:  
65:  65:  
66: E: globe.silo66: E: globe.silo
67: mesh167: mesh1
68: Point: <0, -4.48889, 3.95556>68: Point: <0, -4.48889, 3.95556>
69: Zone: 55469: Zone: 554
70: Incident Nodes: 797 798 789 788 851 852 843 84270: Incident Nodes: 797 798 789 788 851 852 843 842
71: u: <nodal>71: u: <nodal>
72:     (797) = -3.7267872:     (797) = -3.72678
73:     (798) = -5.1294773:     (798) = -5.12947
74:     (789) = -3.847174:     (789) = -3.8471
75:     (788) = -2.7950875:     (788) = -2.79508
76:     (851) = -3.9185776:     (851) = -3.91857
77:     (852) = -5.3934577:     (852) = -5.39345
78:     (843) = -4.0450878:     (843) = -4.04508
79:     (842) = -2.9389379:     (842) = -2.93893
80:  80:  
81:  81:  
82: F: globe.silo82: F: globe.silo
83: mesh183: mesh1
84: Point: <0, 4.4, -2.44444>84: Point: <0, 4.4, -2.44444>
85: Zone: 94585: Zone: 945
86: Incident Nodes: 315 316 307 306 369 370 361 36086: Incident Nodes: 315 316 307 306 369 370 361 360
87: u: <nodal>87: u: <nodal>
88:     (315) = 6.3403888:     (315) = 6.34038
89:     (316) = 5.3934589:     (316) = 5.39345
90:     (307) = 4.0450890:     (307) = 4.04508
91:     (306) = 4.7552891:     (306) = 4.75528
92:     (369) = 6.0300692:     (369) = 6.03006
93:     (370) = 5.1294793:     (370) = 5.12947
94:     (361) = 3.847194:     (361) = 3.8471
95:     (360) = 4.5225495:     (360) = 4.52254
96:  96:  
97:  97:  
98: G: globe.silo98: G: globe.silo
99: mesh199: mesh1
100: Point: <-0.629469, -3.97431, 4.07401>100: Point: <-0.629469, -3.97431, 4.07401>
101: Zone: 554101: Zone: 554
102: Incident Nodes: 797 798 789 788 851 852 843 842102: Incident Nodes: 797 798 789 788 851 852 843 842
103: u: <nodal>103: u: <nodal>
104:     (797) = -3.72678104:     (797) = -3.72678
105:     (798) = -5.12947105:     (798) = -5.12947
106:     (789) = -3.8471106:     (789) = -3.8471
107:     (788) = -2.79508107:     (788) = -2.79508
108:     (851) = -3.91857108:     (851) = -3.91857
109:     (852) = -5.39345109:     (852) = -5.39345
110:     (843) = -4.04508110:     (843) = -4.04508
111:     (842) = -2.93893111:     (842) = -2.93893
112:  112:  
113:  113:  
114: H: globe.silo114: H: globe.silo
115: mesh1115: mesh1
116: Point: <-0.793176, 5.00792, -2.61567>116: Point: <-0.793176, 5.00792, -2.61567>
117: Zone: 945117: Zone: 945
118: Incident Nodes: 315 316 307 306 369 370 361 360118: Incident Nodes: 315 316 307 306 369 370 361 360
119: u: <nodal>119: u: <nodal>
120:     (315) = 6.34038120:     (315) = 6.34038
121:     (316) = 5.39345121:     (316) = 5.39345
122:     (307) = 4.04508122:     (307) = 4.04508
123:     (306) = 4.75528123:     (306) = 4.75528
124:     (369) = 6.03006124:     (369) = 6.03006
125:     (370) = 5.12947125:     (370) = 5.12947
126:     (361) = 3.8471126:     (361) = 3.8471
127:     (360) = 4.52254127:     (360) = 4.52254
128:  128:  
129:  129:  
130: I: globe.silo130: I: globe.silo
131: mesh1131: mesh1
132: Point: (in transformed space)132: Point: (in transformed space)
133:        <-0.650387, 1.08398, 0>133:        <-0.650387, 1.08398, 0>
134: Zone: 506134: Zone: 506
135: Incident Nodes: 347 348 339 338 401 402 393 392135: Incident Nodes: 347 348 339 338 401 402 393 392
136: u: <nodal>136: u: <nodal>
137:     (347) = 1.86339137:     (347) = 1.86339
138:     (348) = 2.56474138:     (348) = 2.56474
139:     (339) = 1.28237139:     (339) = 1.28237
140:     (338) = 0.931695140:     (338) = 0.931695
141:     (401) = 1.58509141:     (401) = 1.58509
142:     (402) = 2.18169142:     (402) = 2.18169
143:     (393) = 1.09085143:     (393) = 1.09085
144:     (392) = 0.792547144:     (392) = 0.792547
145:  145:  
146:  146:  
147: J: globe.silo147: J: globe.silo
148: mesh1148: mesh1
149: Point: (in transformed space)149: Point: (in transformed space)
150:        <-3.0785, -4.9863, 0>150:        <-3.0785, -4.9863, 0>
151: Zone: 593151: Zone: 593
152: Incident Nodes: 761 762 753 752 815 816 807 806152: Incident Nodes: 761 762 753 752 815 816 807 806
153: u: <nodal>153: u: <nodal>
154:     (761) = -4.75528154:     (761) = -4.75528
155:     (762) = -6.54508155:     (762) = -6.54508
156:     (753) = -5.45424156:     (753) = -5.45424
157:     (752) = -3.96274157:     (752) = -3.96274
158:     (815) = -5.59017158:     (815) = -5.59017
159:     (816) = -7.69421159:     (816) = -7.69421
160:     (807) = -6.41184160:     (807) = -6.41184
161:     (806) = -4.65847161:     (806) = -4.65847
162:  162:  
163:  163:  
164: K: globe.silo164: K: globe.silo
165: mesh1165: mesh1
166: Point: <0.782909, 1.53655, 1.746>166: Point: <0.782909, 1.53655, 1.746>
167: Zone: 503167: Zone: 503
168: Incident Nodes: 185 186 177 176 239 240 231 230168: Incident Nodes: 185 186 177 176 239 240 231 230
169: u: <nodal>169: u: <nodal>
170:     (185) = 1.58509170:     (185) = 1.58509
171:     (186) = 2.18169171:     (186) = 2.18169
172:     (177) = 1.09085172:     (177) = 1.09085
173:     (176) = 0.792547173:     (176) = 0.792547
174:     (239) = 1.86339174:     (239) = 1.86339
175:     (240) = 2.56474175:     (240) = 2.56474
176:     (231) = 1.28237176:     (231) = 1.28237
177:     (230) = 0.931695177:     (230) = 0.931695
178:  178:  
179:  179:  
180: L: globe.silo180: L: globe.silo
181: mesh1181: mesh1
182: Point: <2.87067, -5.634, 6.40201>182: Point: <2.87067, -5.634, 6.40201>
183: Zone: 596183: Zone: 596
184: Incident Nodes: 923 924 915 914 977 978 969 968184: Incident Nodes: 923 924 915 914 977 978 969 968
185: u: <nodal>185: u: <nodal>
186:     (923) = -5.59017186:     (923) = -5.59017
187:     (924) = -7.69421187:     (924) = -7.69421
188:     (915) = -6.41184188:     (915) = -6.41184
189:     (914) = -4.65847189:     (914) = -4.65847
190:     (977) = -4.75528190:     (977) = -4.75528
191:     (978) = -6.54508191:     (978) = -6.54508
192:     (969) = -5.45424192:     (969) = -5.45424
193:     (968) = -3.96274193:     (968) = -3.96274
194:  194:  
195:  195:  
196: Pick with all materials turned on:196: Pick with all materials turned on:
197:  197:  
198: M: multi_rect3d.silo198: M: multi_rect3d.silo
199: mesh1 domain 1199: mesh1 domain 1
200: Point: <0.2, 0.0666667, 0.0888889>200: Point: <0.2, 0.0666667, 0.0888889>
201: Zone: 225201: Zone: 225
202: Incident Nodes: 269 270 280 281 390 391 401 402202: Incident Nodes: 269 270 280 281 390 391 401 402
203: d: <zonal> = 0.682125203: d: <zonal> = 0.682125
204:  204:  
205:  205:  
206: N: multi_rect3d.silo206: N: multi_rect3d.silo
207: mesh1 domain 1207: mesh1 domain 1
208: Point: <0.216667, 0.0625, 0.0833333>208: Point: <0.216667, 0.0625, 0.0833333>
209: Zone: 226209: Zone: 226
210: Incident Nodes: 270 271 281 282 391 392 402 403210: Incident Nodes: 270 271 281 282 391 392 402 403
211: d: <zonal> = 0.667304211: d: <zonal> = 0.667304
212:  212:  
213:  213:  
214: O: multi_rect3d.silo214: O: multi_rect3d.silo
215: mesh1 domain 19215: mesh1 domain 19
216: Point: <0.2, 0.511111, 0.555556>216: Point: <0.2, 0.511111, 0.555556>
217: Zone: 605217: Zone: 605
218: Incident Nodes: 731 732 742 743 852 853 863 864218: Incident Nodes: 731 732 742 743 852 853 863 864
219: d: <zonal> = 0.320833219: d: <zonal> = 0.320833
220:  220:  
221:  221:  
222: P: multi_rect3d.silo222: P: multi_rect3d.silo
223: mesh1 domain 19223: mesh1 domain 19
224: Point: <0.216667, 0.5125, 0.55>224: Point: <0.216667, 0.5125, 0.55>
225: Zone: 606225: Zone: 606
226: Incident Nodes: 732 733 743 744 853 854 864 865226: Incident Nodes: 732 733 743 744 853 854 864 865
227: d: <zonal> = 0.287983227: d: <zonal> = 0.287983
228:  228:  
229:  229:  
230: Q: multi_rect3d.silo230: Q: multi_rect3d.silo
231: mesh1 domain 1231: mesh1 domain 1
232: Point: <0.2, 0.075, 0.1>232: Point: <0.2, 0.075, 0.1>
233: Node: 402233: Node: 402
234: Incident Zones: 335 325 225 235 336 326 226 236234: Incident Zones: 335 325 225 235 336 326 226 236
235: d: <zonal>235: d: <zonal>
236:     (335) = 0.646048236:     (335) = 0.646048
237:     (325) = 0.66229237:     (325) = 0.66229
238:     (225) = 0.682125238:     (225) = 0.682125
239:     (235) = 0.666367239:     (235) = 0.666367
240:     (336) = 0.63038240:     (336) = 0.63038
241:     (326) = 0.647015241:     (326) = 0.647015
242:     (226) = 0.667304242:     (226) = 0.667304
243:     (236) = 0.651187243:     (236) = 0.651187
244:  244:  
245:  245:  
246: R: multi_rect3d.silo246: R: multi_rect3d.silo
247: mesh1 domain 1247: mesh1 domain 1
248: Point: <0.2, 0.075, 0.1>248: Point: <0.2, 0.075, 0.1>
249: Node: 402249: Node: 402
250: Incident Zones: 335 325 225 235 336 326 226 236250: Incident Zones: 335 325 225 235 336 326 226 236
251: d: <zonal>251: d: <zonal>
252:     (335) = 0.646048252:     (335) = 0.646048
253:     (325) = 0.66229253:     (325) = 0.66229
254:     (225) = 0.682125254:     (225) = 0.682125
255:     (235) = 0.666367255:     (235) = 0.666367
256:     (336) = 0.63038256:     (336) = 0.63038
257:     (326) = 0.647015257:     (326) = 0.647015
258:     (226) = 0.667304258:     (226) = 0.667304
259:     (236) = 0.651187259:     (236) = 0.651187
260:  260:  
261:  261:  
262: S: multi_rect3d.silo262: S: multi_rect3d.silo
263: mesh1 domain 19263: mesh1 domain 19
264: Point: <0.2, 0.5, 0.566667>264: Point: <0.2, 0.5, 0.566667>
265: Node: 853265: Node: 853
266: Incident Zones: 705 605 706 606266: Incident Zones: 705 605 706 606
267: d: <zonal>267: d: <zonal>
268:     (705) = 0.327687268:     (705) = 0.327687
269:     (605) = 0.320833269:     (605) = 0.320833
270:     (706) = 0.295599270:     (706) = 0.295599
271:     (606) = 0.287983271:     (606) = 0.287983
272:  272:  
273:  273:  
274: T: multi_rect3d.silo274: T: multi_rect3d.silo
275: mesh1 domain 19275: mesh1 domain 19
276: Point: <0.2, 0.5, 0.566667>276: Point: <0.2, 0.5, 0.566667>
277: Node: 853277: Node: 853
278: Incident Zones: 705 605 706 606278: Incident Zones: 705 605 706 606
279: d: <zonal>279: d: <zonal>
280:     (705) = 0.327687280:     (705) = 0.327687
281:     (605) = 0.320833281:     (605) = 0.320833
282:     (706) = 0.295599282:     (706) = 0.295599
283:     (606) = 0.287983283:     (606) = 0.287983
284:  284:  
285:  285:  
286: Pick with material 2 turned off:286: Pick with material 2 turned off:
287:  287:  
288: U: multi_rect3d.silo288: U: multi_rect3d.silo
289: mesh1 domain 1289: mesh1 domain 1
290: Point: <0.2, 0.0666667, 0.0888889>290: Point: <0.2, 0.0666667, 0.0888889>
291: Zone: 226291: Zone: 225
292: Incident Nodes: 270 271 281 282 391 392 402 403292: Incident Nodes: 269 270 280 281 390 391 401 402
293: d: <zonal> = 0.667304293: d: <zonal> = 0.682125
294:  294:  
295:  295:  
296: V: multi_rect3d.silo296: V: multi_rect3d.silo
297: mesh1 domain 1297: mesh1 domain 1
298: Point: <0.216667, 0.0625, 0.0833333>298: Point: <0.216667, 0.0625, 0.0833333>
299: Zone: 226299: Zone: 226
300: Incident Nodes: 270 271 281 282 391 392 402 403300: Incident Nodes: 270 271 281 282 391 392 402 403
301: d: <zonal> = 0.667304301: d: <zonal> = 0.667304
302:  302:  
303:  303:  
304: W: multi_rect3d.silo304: W: multi_rect3d.silo
305: mesh1 domain 19305: mesh1 domain 19
306: Point: <0.2, 0.511111, 0.555556>306: Point: <0.2, 0.511111, 0.555556>
307: Zone: 606307: Zone: 605
308: Incident Nodes: 732 733 743 744 853 854 864 865308: Incident Nodes: 731 732 742 743 852 853 863 864
309: d: <zonal> = 0.287983309: d: <zonal> = 0.320833
310:  310:  
311:  311:  
312: X: multi_rect3d.silo312: X: multi_rect3d.silo
313: mesh1 domain 19313: mesh1 domain 19
314: Point: <0.216667, 0.5125, 0.55>314: Point: <0.216667, 0.5125, 0.55>
315: Zone: 606315: Zone: 606
316: Incident Nodes: 732 733 743 744 853 854 864 865316: Incident Nodes: 732 733 743 744 853 854 864 865
317: d: <zonal> = 0.287983317: d: <zonal> = 0.287983
318:  318:  
319:  319:  
320: Y: multi_rect3d.silo320: Y: multi_rect3d.silo
321: mesh1 domain 1321: mesh1 domain 1
322: Point: <0.2, 0.075, 0.1>322: Point: <0.2, 0.075, 0.1>
323: Node: 402323: Node: 402
324: Incident Zones: 335 325 225 235 336 326 226 236324: Incident Zones: 335 325 225 235 336 326 226 236
325: d: <zonal>325: d: <zonal>
326:     (335) = 0.646048326:     (335) = 0.646048
327:     (325) = 0.66229327:     (325) = 0.66229
328:     (225) = 0.682125328:     (225) = 0.682125
329:     (235) = 0.666367329:     (235) = 0.666367
330:     (336) = 0.63038330:     (336) = 0.63038
331:     (326) = 0.647015331:     (326) = 0.647015
332:     (226) = 0.667304332:     (226) = 0.667304
333:     (236) = 0.651187333:     (236) = 0.651187
334:  334:  
335:  335:  
336: Z: multi_rect3d.silo336: Z: multi_rect3d.silo
337: mesh1 domain 1337: mesh1 domain 1
338: Point: <0.2, 0.075, 0.1>338: Point: <0.2, 0.075, 0.1>
339: Node: 402339: Node: 402
340: Incident Zones: 335 325 225 235 336 326 226 236340: Incident Zones: 335 325 225 235 336 326 226 236
341: d: <zonal>341: d: <zonal>
342:     (335) = 0.646048342:     (335) = 0.646048
343:     (325) = 0.66229343:     (325) = 0.66229
344:     (225) = 0.682125344:     (225) = 0.682125
345:     (235) = 0.666367345:     (235) = 0.666367
346:     (336) = 0.63038346:     (336) = 0.63038
347:     (326) = 0.647015347:     (326) = 0.647015
348:     (226) = 0.667304348:     (226) = 0.667304
349:     (236) = 0.651187349:     (236) = 0.651187
350:  350:  
351:  351:  
352: a: multi_rect3d.silo352: a: multi_rect3d.silo
353: mesh1 domain 19353: mesh1 domain 19
354: Point: <0.2, 0.5, 0.566667>354: Point: <0.2, 0.5, 0.566667>
355: Node: 853355: Node: 853
356: Incident Zones: 705 605 706 606356: Incident Zones: 705 605 706 606
357: d: <zonal>357: d: <zonal>
358:     (705) = 0.327687358:     (705) = 0.327687
359:     (605) = 0.320833359:     (605) = 0.320833
360:     (706) = 0.295599360:     (706) = 0.295599
361:     (606) = 0.287983361:     (606) = 0.287983
362:  362:  
363:  363:  
364: b: multi_rect3d.silo364: b: multi_rect3d.silo
365: mesh1 domain 19365: mesh1 domain 19
366: Point: <0.2, 0.5, 0.566667>366: Point: <0.2, 0.5, 0.566667>
367: Node: 853367: Node: 853
368: Incident Zones: 705 605 706 606368: Incident Zones: 705 605 706 606
369: d: <zonal>369: d: <zonal>
370:     (705) = 0.327687370:     (705) = 0.327687
371:     (605) = 0.320833371:     (605) = 0.320833
372:     (706) = 0.295599372:     (706) = 0.295599
373:     (606) = 0.287983373:     (606) = 0.287983
374:  374:  
diff --git a/2024-12-12-22:00/poodle_trunk_parallel/avg_value_02.html b/2024-12-12-22:00/poodle_trunk_parallel/avg_value_02.html new file mode 100644 index 000000000..4bee43e4e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/avg_value_02.html @@ -0,0 +1,31 @@ +Results for test case avg_value_02 + +

Results for test case avg_value_02

+ + + + + +
Legend
0 Lines Added
0 Lines Deleted
1 Lines Changed

+

1 modifications, totalling 1 lines

+ + + + + + + + + + + + + + + + + + + + +
 Line Baseline Line Current
1: The average value of vel is 4.06619e-17, -1.2443e-17, 01: The average value of vel is -1.62203e-17, -1.2443e-17, 0
diff --git a/2024-12-12-22:00/poodle_trunk_parallel/c_Pick3DTo2D.txt b/2024-12-12-22:00/poodle_trunk_parallel/c_Pick3DTo2D.txt new file mode 100644 index 000000000..8289839dd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/c_Pick3DTo2D.txt @@ -0,0 +1,374 @@ + +A: globe.silo +mesh1 +Point: <0, -4.48889, 3.95556> +Zone: 554 +Incident Nodes: 797 798 789 788 851 852 843 842 +u: + (797) = -3.72678 + (798) = -5.12947 + (789) = -3.8471 + (788) = -2.79508 + (851) = -3.91857 + (852) = -5.39345 + (843) = -4.04508 + (842) = -2.93893 + + +B: globe.silo +mesh1 +Point: <0, 4.4, -2.44444> +Zone: 945 +Incident Nodes: 315 316 307 306 369 370 361 360 +u: + (315) = 6.34038 + (316) = 5.39345 + (307) = 4.04508 + (306) = 4.75528 + (369) = 6.03006 + (370) = 5.12947 + (361) = 3.8471 + (360) = 4.52254 + + +C: globe.silo +mesh1 +Point: <-0.629469, -3.97431, 4.07401> +Zone: 554 +Incident Nodes: 797 798 789 788 851 852 843 842 +u: + (797) = -3.72678 + (798) = -5.12947 + (789) = -3.8471 + (788) = -2.79508 + (851) = -3.91857 + (852) = -5.39345 + (843) = -4.04508 + (842) = -2.93893 + + +D: globe.silo +mesh1 +Point: <-0.793176, 5.00792, -2.61567> +Zone: 945 +Incident Nodes: 315 316 307 306 369 370 361 360 +u: + (315) = 6.34038 + (316) = 5.39345 + (307) = 4.04508 + (306) = 4.75528 + (369) = 6.03006 + (370) = 5.12947 + (361) = 3.8471 + (360) = 4.52254 + + +E: globe.silo +mesh1 +Point: <0, -4.48889, 3.95556> +Zone: 554 +Incident Nodes: 797 798 789 788 851 852 843 842 +u: + (797) = -3.72678 + (798) = -5.12947 + (789) = -3.8471 + (788) = -2.79508 + (851) = -3.91857 + (852) = -5.39345 + (843) = -4.04508 + (842) = -2.93893 + + +F: globe.silo +mesh1 +Point: <0, 4.4, -2.44444> +Zone: 945 +Incident Nodes: 315 316 307 306 369 370 361 360 +u: + (315) = 6.34038 + (316) = 5.39345 + (307) = 4.04508 + (306) = 4.75528 + (369) = 6.03006 + (370) = 5.12947 + (361) = 3.8471 + (360) = 4.52254 + + +G: globe.silo +mesh1 +Point: <-0.629469, -3.97431, 4.07401> +Zone: 554 +Incident Nodes: 797 798 789 788 851 852 843 842 +u: + (797) = -3.72678 + (798) = -5.12947 + (789) = -3.8471 + (788) = -2.79508 + (851) = -3.91857 + (852) = -5.39345 + (843) = -4.04508 + (842) = -2.93893 + + +H: globe.silo +mesh1 +Point: <-0.793176, 5.00792, -2.61567> +Zone: 945 +Incident Nodes: 315 316 307 306 369 370 361 360 +u: + (315) = 6.34038 + (316) = 5.39345 + (307) = 4.04508 + (306) = 4.75528 + (369) = 6.03006 + (370) = 5.12947 + (361) = 3.8471 + (360) = 4.52254 + + +I: globe.silo +mesh1 +Point: (in transformed space) + <-0.650387, 1.08398, 0> +Zone: 506 +Incident Nodes: 347 348 339 338 401 402 393 392 +u: + (347) = 1.86339 + (348) = 2.56474 + (339) = 1.28237 + (338) = 0.931695 + (401) = 1.58509 + (402) = 2.18169 + (393) = 1.09085 + (392) = 0.792547 + + +J: globe.silo +mesh1 +Point: (in transformed space) + <-3.0785, -4.9863, 0> +Zone: 593 +Incident Nodes: 761 762 753 752 815 816 807 806 +u: + (761) = -4.75528 + (762) = -6.54508 + (753) = -5.45424 + (752) = -3.96274 + (815) = -5.59017 + (816) = -7.69421 + (807) = -6.41184 + (806) = -4.65847 + + +K: globe.silo +mesh1 +Point: <0.782909, 1.53655, 1.746> +Zone: 503 +Incident Nodes: 185 186 177 176 239 240 231 230 +u: + (185) = 1.58509 + (186) = 2.18169 + (177) = 1.09085 + (176) = 0.792547 + (239) = 1.86339 + (240) = 2.56474 + (231) = 1.28237 + (230) = 0.931695 + + +L: globe.silo +mesh1 +Point: <2.87067, -5.634, 6.40201> +Zone: 596 +Incident Nodes: 923 924 915 914 977 978 969 968 +u: + (923) = -5.59017 + (924) = -7.69421 + (915) = -6.41184 + (914) = -4.65847 + (977) = -4.75528 + (978) = -6.54508 + (969) = -5.45424 + (968) = -3.96274 + + +Pick with all materials turned on: + +M: multi_rect3d.silo +mesh1 domain 1 +Point: <0.2, 0.0666667, 0.0888889> +Zone: 225 +Incident Nodes: 269 270 280 281 390 391 401 402 +d: = 0.682125 + + +N: multi_rect3d.silo +mesh1 domain 1 +Point: <0.216667, 0.0625, 0.0833333> +Zone: 226 +Incident Nodes: 270 271 281 282 391 392 402 403 +d: = 0.667304 + + +O: multi_rect3d.silo +mesh1 domain 19 +Point: <0.2, 0.511111, 0.555556> +Zone: 605 +Incident Nodes: 731 732 742 743 852 853 863 864 +d: = 0.320833 + + +P: multi_rect3d.silo +mesh1 domain 19 +Point: <0.216667, 0.5125, 0.55> +Zone: 606 +Incident Nodes: 732 733 743 744 853 854 864 865 +d: = 0.287983 + + +Q: multi_rect3d.silo +mesh1 domain 1 +Point: <0.2, 0.075, 0.1> +Node: 402 +Incident Zones: 335 325 225 235 336 326 226 236 +d: + (335) = 0.646048 + (325) = 0.66229 + (225) = 0.682125 + (235) = 0.666367 + (336) = 0.63038 + (326) = 0.647015 + (226) = 0.667304 + (236) = 0.651187 + + +R: multi_rect3d.silo +mesh1 domain 1 +Point: <0.2, 0.075, 0.1> +Node: 402 +Incident Zones: 335 325 225 235 336 326 226 236 +d: + (335) = 0.646048 + (325) = 0.66229 + (225) = 0.682125 + (235) = 0.666367 + (336) = 0.63038 + (326) = 0.647015 + (226) = 0.667304 + (236) = 0.651187 + + +S: multi_rect3d.silo +mesh1 domain 19 +Point: <0.2, 0.5, 0.566667> +Node: 853 +Incident Zones: 705 605 706 606 +d: + (705) = 0.327687 + (605) = 0.320833 + (706) = 0.295599 + (606) = 0.287983 + + +T: multi_rect3d.silo +mesh1 domain 19 +Point: <0.2, 0.5, 0.566667> +Node: 853 +Incident Zones: 705 605 706 606 +d: + (705) = 0.327687 + (605) = 0.320833 + (706) = 0.295599 + (606) = 0.287983 + + +Pick with material 2 turned off: + +U: multi_rect3d.silo +mesh1 domain 1 +Point: <0.2, 0.0666667, 0.0888889> +Zone: 225 +Incident Nodes: 269 270 280 281 390 391 401 402 +d: = 0.682125 + + +V: multi_rect3d.silo +mesh1 domain 1 +Point: <0.216667, 0.0625, 0.0833333> +Zone: 226 +Incident Nodes: 270 271 281 282 391 392 402 403 +d: = 0.667304 + + +W: multi_rect3d.silo +mesh1 domain 19 +Point: <0.2, 0.511111, 0.555556> +Zone: 605 +Incident Nodes: 731 732 742 743 852 853 863 864 +d: = 0.320833 + + +X: multi_rect3d.silo +mesh1 domain 19 +Point: <0.216667, 0.5125, 0.55> +Zone: 606 +Incident Nodes: 732 733 743 744 853 854 864 865 +d: = 0.287983 + + +Y: multi_rect3d.silo +mesh1 domain 1 +Point: <0.2, 0.075, 0.1> +Node: 402 +Incident Zones: 335 325 225 235 336 326 226 236 +d: + (335) = 0.646048 + (325) = 0.66229 + (225) = 0.682125 + (235) = 0.666367 + (336) = 0.63038 + (326) = 0.647015 + (226) = 0.667304 + (236) = 0.651187 + + +Z: multi_rect3d.silo +mesh1 domain 1 +Point: <0.2, 0.075, 0.1> +Node: 402 +Incident Zones: 335 325 225 235 336 326 226 236 +d: + (335) = 0.646048 + (325) = 0.66229 + (225) = 0.682125 + (235) = 0.666367 + (336) = 0.63038 + (326) = 0.647015 + (226) = 0.667304 + (236) = 0.651187 + + +a: multi_rect3d.silo +mesh1 domain 19 +Point: <0.2, 0.5, 0.566667> +Node: 853 +Incident Zones: 705 605 706 606 +d: + (705) = 0.327687 + (605) = 0.320833 + (706) = 0.295599 + (606) = 0.287983 + + +b: multi_rect3d.silo +mesh1 domain 19 +Point: <0.2, 0.5, 0.566667> +Node: 853 +Incident Zones: 705 605 706 606 +d: + (705) = 0.327687 + (605) = 0.320833 + (706) = 0.295599 + (606) = 0.287983 + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/c_annot_macros_tafile_2.png b/2024-12-12-22:00/poodle_trunk_parallel/c_annot_macros_tafile_2.png new file mode 100644 index 0000000000000000000000000000000000000000..b55a1564ba8d94eb399214867fdc7ba7e5610d28 GIT binary patch literal 3651 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/c_annot_macros_tafile_2_thumb.png b/2024-12-12-22:00/poodle_trunk_parallel/c_annot_macros_tafile_2_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..e8babf8d3c2537344150fa3f3cb08ac7840c3198 GIT binary patch literal 2292 zcmb`J_cz-O1I52$#ST?_kCxh_YE@%}7&U4%Dnyl1^RfG&60024-demZs#+r|cFo$9 zs!d50MTr<8Mm>H1gXcZxJ?C@p{pJ3A&rP(vYsA9H#|Qub3*6Yi`cFRkufU)`eu)NA z0|2-cZlG%uR}x*_$*4n*kj9v%}=+NRq2l{b}Br3^zlp@b@ERM%HDZs+HwHsL~# z4v%mz0N3+Q5`M&btiGLM!QJV9>5kaJ0+TY&G z7n^S$kmK3dWJhEL&*mSmSC2h+?MkfCX$Vuv&f^)X;p$%Mnj1b4?~j*~EWN!`>T$Lo zF)y#V)+Q$+RyRJ-L<&!EAW5u!l%C*L^a7%~9UANhO##=cjW)j54Da!$1cfpC)_XD7N61`nmNm zBwNcEOgd+Xzs-Z7#;19 zgV%WF!rM}|Kx+hH-|{B%ZzGx;TUxS$ld8SK3#$JbTM)wpd=dat>W812PeMB#xsq{O zhR>Us(GW#hL7KP-IQpI?NROe6Z>^}&2-KY2eV5{iVnSrg$DnOsnjnA%0X{spxpP8NF7lS~|qVyE#^Vd3S2>0yEhv+BF6tQoYUS450?e_$u& zP;@S~?in;;Ror$KYF=2H6+JeGHNRBnbL*#?+V(IZkrk_=9o(~Qa#T>OO2U2cj;_Hu zIB$=71=VU#d0BoVDTZ-{!d>y{h+<0GWR|aPzg7lv{_c9`IO8Ix{d6_+)}3Z1#--S~ zxORPYh`un@+-L4$Ee6^Iw2*ch<+q>3<l90sHmLyT6pF4avGtK zuR2_4(bEyxxu|Q#jLJd>)LzG)Rje6s-88LDYanfJtLwz%4y#iYLDXAfYaIKW{iwNA z1wnhjZJLWl z4pBq+ih^|8W%y|(Vda=09VqdfKC++~h2_r7%)|QECEUA&JGJDrU075-GMbo7DwQH= zo?nXqDi?v7)K{s@>)JK% zeN3>U5*6BNYTFISFyIsH=t*%F(OO6wi)Djwo%iqvcjvLb>~byP6jRseI2mTUqn$P8 z3giKOXe*TPINM>5QXNQ^+7o4k5{(n<*W(DBL0#!#fh=_WDo)%E+4sF6)r1Cy;GES~ z9!iIv#Z4}Q-HW}2-pH~^Yuw+SCw@M`6$I}V}rca73G_iD}v8kA; z4fb*N8_SVLec!h8&oMNLPS<5#M6;RRL?B9l9~f;EHEjv=Y(rEdIS^RTf66Pc2gGkt z$uJ2_;f8_TZVk3|5KvQPGxf?hKzPgipd9!0#(wW9lIvVFNNwPh?%BA&X;F+y2pveS>;o|Feb8KkCF=ghHf1-V1f_L*x_Y9O!Nj|w`(+l5 z0Ch=Wkh1xd&+i5k9KKuJJ*mb6#}Fri0`+cs$b8leI19If!AwdM%zNf;|MerbX93^f z8=vjw7oIMumLf|Ai*Mrx9AsFFplS0iyk^&DVNCdq*;)x|@f18IaybFENH~Y%XqV}~ fS*8DbXU|!BnXG9cP&N4H%>Z!2y9U*IsOWzHy52;L literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/c_annot_macros_tafile_6.png b/2024-12-12-22:00/poodle_trunk_parallel/c_annot_macros_tafile_6.png new file mode 100644 index 0000000000000000000000000000000000000000..d614e30463852f05a7385b7997db2930a5e54c4c GIT binary patch literal 3628 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/c_annot_macros_tafile_6_thumb.png b/2024-12-12-22:00/poodle_trunk_parallel/c_annot_macros_tafile_6_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..235f161028019115bd05425399a7d042ec0d6921 GIT binary patch literal 2160 zcmciE`#%#30|szMijhl8NsLZxIIcM-jOH$P4Qmm`5?Zo_BbLk12#F|@OCfj7mKAb| zjlD%{0ZQv9U2kdTn1y`8n&&%OG;hzbAf z{dnO6LPBDO_SP1NsKTZE37n!Wh;H_>r7=3PL9lplx-4|jXfNxpFwOkrJzzP!rWmO` z#k9&&uOU{6OUIhG9$$@@(M?fX(I3DLRoaKP`iZ$fXJ(u9!I*+8KD5$0c%T)PSw8+c@OxHRky z(Gr@m1mUG@T@U@>=yBx^?GmQ9OnY?A4F&li?m@aHxZz&akbzX2jM8WX7mQ!_?Z2&X zFgiKX%krD@!jHN7q0wd&qRbD`=&wUb^Q%pIVsbisYM&f9j6WW`|6^sBUIN2%pFAlv zAxyc++!a+mIRbsb)7@6fD8wL<@k!t;V3S~PulIt^QhWP83o%)$Qn@){!XX7)h{-#$ zk2|18r#L45Nh3B1Tjbq8-u*$7WjT0QMGBl7D?1%HgdkiKTpoXOqHoK)<}Ch0Y2zku z@M{+?X0i>Z6!R^QdMM}S%ChNbo&KoTCT~cf3Q84$xS-NinouLkut&VS`NiIdTeHV? zW^xf?mZjX2e)4E`IzSF=;f1Up{iYv)tBn`4dK($^cyqyC8B5B2n72NEXMeLA0m?v*I_JL{-x1ogjli8Y4d!xnbux+t(F_H_83TfB_PcjNFUBU8Iq;wp>? zlPu!^H5YF&2MbJzH!C*>Va{ioH)yJqpN#Xnw)TxfFBvZeLe5q0(EF!4{zfJpJN2G` zd)!}<=ys|cNVsh;kjR2)=I>B=`W+`mgEfsdR)R=)Yu+-W4sQm;Tp`H+b$Rsj`p#r{`ZvYdMn zOp_){Gzvk@M5{2{+~nCV2oI5jMgD!zI8M$@kU7hpW4+^^k4}5#DE=Tqw+)LY1=wpH zlr}T?&eM&32P4gXWEEU=T&-W)v&!7j-MSRFF;!WqR(I2TEM#%fpCH$A@Y#2rSrSvY zapzS`q(**_NqV18=5R;=Zy*TeE}4yPNP30!|S* zru1r;ztw5GAG7(;-&*GEfL8@hdf*LR8U+q#t~FyI6MQNYZ*uyTVgBHL>$H>N4x5pX z=w4rD9`9_icG*cx9h)hC96`O0PI1tSdTfPT-4oc%;|ttft&O^w?oNuID5zu+l4=|H zF5$U8yf_e$nK&SD2_5ik^O*!hS%zLqrV@J0n2gR_aG8XM3_NmGfJMD2QcLbtmFrcW zUT=)rK38fQpwPlK#Fa14Bc!{2Q9#Ay`R=9-I!Z!WX@tJD&qd^-+>PBA(eFW8VG&M_ z04c%L3i>=OBPVL+;k>kqQ)c^g&JP#tsEw~0Pf80o7_aCfEFmM7iSQZoeDKk`Ks(?1xn=d2+dilW<1V@|h`{foY7_?d z%w~(sWGw`hWuisZAZc}4h|x)jT*BAomPjqFza=6WdWRXPxdbKQT>RrZ2VavP=a;MI z%uB{)fxwB68!nH&goHQG(P1LoojRv zph?@1IvhB#+)($W2nfseY|wageS?CGHI{_tWv z*n?=Zf(HEd=|fy67Z|VXnrCGxa)xa}hN!Y*4G+l!TWuAEdz#N{kA{2a-PnqEq0DQ( zJ$<2eoS(&d5d2^r6xV7{@nyQHHx+2mP_$a9oZ4M9erA)NU{tSs`;!4nCpVb3cGlfS z-Kx5x*H=Ze244+%mQSu~03uyH$F?rj=>sXv_UY8nfvBYeHPkXdhPR;qItbzPNZkmg z3+3thXh!4RyTLX6Ezd#y*OkSWEb zY%~{7L=snG*G-QpH_@k;NgKkOg zWg=pm!izJuBBsp5%=$q`Ea2fsG$&Zcvw4y7qA%BThy_Ld50L+h!Hw}E4Qj9|a3nE&32SF^XHQgvbS-urdawV{sS#8 B8xsHk literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/c_avg_value_02.txt b/2024-12-12-22:00/poodle_trunk_parallel/c_avg_value_02.txt new file mode 100644 index 000000000..f6443704e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/c_avg_value_02.txt @@ -0,0 +1 @@ +The average value of vel is -1.62203e-17, -1.2443e-17, 0 \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/c_blueprint_rz_cyl_rectilinear.root_plot_revolved_to_3D.png b/2024-12-12-22:00/poodle_trunk_parallel/c_blueprint_rz_cyl_rectilinear.root_plot_revolved_to_3D.png new file mode 100644 index 0000000000000000000000000000000000000000..493abf22e0d4ca689d03c2737912dced2612d833 GIT binary patch literal 2639 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/c_life03_thumb.png b/2024-12-12-22:00/poodle_trunk_parallel/c_life03_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..2061bbd30b10fe634b315b763c7dc2ac949034f2 GIT binary patch literal 12766 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/c_missingdata_0_04.txt b/2024-12-12-22:00/poodle_trunk_parallel/c_missingdata_0_04.txt new file mode 100644 index 000000000..aa3004f72 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/c_missingdata_0_04.txt @@ -0,0 +1 @@ +Pick could not retrieve the requested information, possibly due to a bad expression in its variables list. Please check the requested variables list and try again. \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/c_ops_dualmesh_mesh_plot_2d_01.png b/2024-12-12-22:00/poodle_trunk_parallel/c_ops_dualmesh_mesh_plot_2d_01.png new file mode 100644 index 0000000000000000000000000000000000000000..c8d59dc37937b7b654da4a1cb34c1a09f17a922a GIT binary patch literal 1507 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_stuo-U3d6?5L+Hk>4DF2L%z z_FaAYsfOhbW^}!BPo0%}(4o*!cE0`oy1&1;U;K%cXZZKtg~L$L$)`m?Sn&uh=EjE{ z^>uYVK6TbNjbs%6NY;t{4}Sk^f6bqAwfCPNEu24pe!cv?BPkP~Yru_|{b$iu*{7$U z)W+F-Db7_+FG}BZv{)obsbvO-qMB2OZ{5XPeV^mTik`X6`xP-CnmY_leItpKTR=a6fE3 zsULMaaG%e;=SQ9GubUOAm8(VDxPxp3YE^2v@kD&>Ta9>#%d@2|CtFX}owpe7{hUwT z*UF~oPySx{@xuA7y>m{^Jt=lR5TX_60JER2+196~pZvY2;>Gh@Zs(qyOX(gC-o{7( zYW43QZ-)o+-?)pz#it`Qf=9iLmYr|cAAiXIKp%Ih2QQ6q6^j%p_|5JfEE}>$H-0*> P@MiFI^>bP0l+XkKSs|7t literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/c_ops_dualmesh_mesh_plot_2d_01_thumb.png b/2024-12-12-22:00/poodle_trunk_parallel/c_ops_dualmesh_mesh_plot_2d_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..cfd93c4f44bfc8286133cbe58691d2e6ec501482 GIT binary patch literal 545 zcmeAS@N?(olHy`uVBq!ia0vp^DIme!{lb=*clHaG zSWFW*F63o(ZGG*%zq9|Iy8gPrLD;{Y?{E*SzW0Nm11Pt;8L9;?%wqPGXxj;SkREiwq6T-G2M~@7PmjzLVXj z73b}YX%m=tK3#Kn-1_v*MxE!=EuYr}E{!>*VmH6kZoYi~aRZ+3zxPhDmFusZcb-e} zOYQqPuXnBMIQz3k?0#GD=RfmJZBsZEy*VPCP6#L~W99@*Fejux2UU&eLK`um@0#N7o(J%gvKpUXO@geCwF751Y5 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/c_ospray_domain_boundaries_00.png b/2024-12-12-22:00/poodle_trunk_parallel/c_ospray_domain_boundaries_00.png new file mode 100644 index 0000000000000000000000000000000000000000..eaacd57bff0a4c2313810ab1b82e3b2bdaedc0ae GIT binary patch literal 53696 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�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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_04_thumb.png b/2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_04_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..62c1ad46709612216f1a146a64e328a3d1db8089 GIT binary patch literal 14673 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 Tlak5b00000NkvXXu0mjfMKf#_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_05.png b/2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_05.png new file mode 100644 index 0000000000000000000000000000000000000000..2c4f7bfb2e46259e36b9dafd67e679ddbc67fcc4 GIT binary patch literal 86201 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_05_thumb.png b/2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..4cf74aed1a5c554a781151bb6d2acfda0e8cba0f GIT binary patch literal 15349 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 TkTp}Y00000NkvXXu0mjfpRfEH literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_06.png b/2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_06.png new file mode 100644 index 0000000000000000000000000000000000000000..19274b2080c5b145a947bf12428eab9c9b9cc1aa GIT binary patch literal 54025 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 Tc;$G82Dl9MOm0=_I7I$GqR-i; literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_07_thumb.png b/2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_07_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..7d32ffca685eedd31d1716e772e843051bf47667 GIT binary patch literal 16983 zcmV*AKySZ^P)8SwDfi_xPV-{p1pV+Yj*nC#k>f2l#9ek+lW@(lp!L z+*n>-u2d>Y>A&5l`dfp=%#+Dv|J&{DZDtli4Tqz4yDg>M-Q8`qT5%lTym|9?e&_d} zd+vp9w;P7Rp+gHZGgGUpt3rq*Nu-oN%V++Zg*BOsh)C;TG#V+Tg}`oiFN#7b<*i$5 z>+2gzMQdvt!(q0va?m+ZsWhq;1Au_IzTN|X_4Uoc0B_yOj8U^QQ;$4y7STB8hQpzh zve)Y!IB;M*9#2nC6H&9-{2P6pzpjH%)3hv0L`>7PC<@O!?DxI*aTINA?rv?3jvP61 z=+JDQXAAQSh-j=yQN@8`IN^ z-t*Dpiz_QFWN6fCGt<*i6wS`gB0zUhtEIZab*ZBZ1X(P%s#cRHP!nOUvX^768jve9V# z6kwHQDTGMV)LC1U<>uDra6D2aEn!t(seiG%H#_D-+&XCHjvjX^2g$dxG)sw-D-O|lYE05h-!w$+L}a%4Vi)vDD5 z%94sg0S`u_VVZh|(J&iyCuQLg=;4P>hk^1K)n*&`;CjCr@TY@xeDPyzu;U@4fx69y_&uban6DiHUi{CuR<; zERQzEo!fn35K&&gz4qO2y#CxTKlj)(XQpbk?s%+(Fy0aZ3nanphREK5K%D?H0XZS2 z+D$AAb`Gtzo(G-&-K{NF=&U7Ta*iAcF5^H?>?9wO%|n!um<_|>W5>Vpg{Nj34T0kP zn{WQxfB)}a{_0ncA3hxY_~o-K`*;8D|J>eoMG>4i^YfKTc=YHg@16IqDDufRl}hbX#2 zwFN8pW|x}Bqoi6n_k}O?2ZL9?_q}&6Up{j1;PS%4Y`gW{@BGEpt2yWPt-Zlp^~ z%gix^O3}QsGC|%){a!k&9TlmsQB!+j+ zzjyqx6GVgrkz$1;In{2!fPex4LNmw+2`XZcj(QoVMpzFz5K$;)q;)KX7N7(OU_=Dz zl$mfKH6SxEO4LQ%F5(~j*=s-e*6XwLvtRhRFFgMX&p-3@(|2}udXtH}b7yU5TU)=k zF&3zSHDK83bgh-GRvbk>j>ogJ`k{v&nwy)6;}{X|vBo}jd7y&wt9nN^t)s1*PL1C?VVP^w6vWG7L9Pzt0}m{i16 zAS(g{IRoq&SQ`xz6a;_(Qh|ZFaS*A4%|`R?Xnl8W_m$hP{Ka?w;!9usQoG);d1i#D z3ON~OI!?UkXC()ESqjzf-x&@~7#4>QKmPK|FG%@d%*4#r+V|hTa{l~8cik>t@UU$3W8v5?auag zzPme!qNG}le(Sfs+HTi=?Ee1UzxWsbLIHr*dUtmh02ZgFzJKAu?9rnOhgN21XU7-s z@~G57Bq6+U`|erl<7} ze(+kYR`2)wGcz;Hytud+$ML~~2csxDbLNaOZgaDL?b^nhZ+`H*zx(aq{_U3TF;(^^Q<&AM2ZLmV`kx`G^*#7ckBcxQCI{FBuNQcP$lq8-XhnV z)amvrt;0_|{@CY4TS1@>9hy0KaO%K;#%r&=_dCDyt*?FUMXl9-fc1%{tF(Ukg%|$d z+ux=%#UMbf!*(s4Y7qIwDOKroduw;uIU$+QSE_TCjYp+a5P8

    #!6e2V!L9(TPZc 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_08.png b/2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_08.png new file mode 100644 index 0000000000000000000000000000000000000000..ad8867dde434e4217e268bd1e882430d473c264e GIT binary patch literal 52590 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_09.png b/2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_09.png new file mode 100644 index 0000000000000000000000000000000000000000..7c33853f06170e9cc296d44d6e29a9d71201d9e0 GIT binary patch literal 86192 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 YVY^!L>s6KBS`aYI?mW0%ZR`^DU-sBoEC2ui literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_09_thumb.png b/2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_09_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..03e4044ec0d30cd319b56ed6a95ca54bb44766a1 GIT binary patch literal 15349 zcmVnmJt9tM0o}PWf0GPo-00JP2gd~P2lcBJ};a9y_Z+`Q$!V&hH zB4jK4s8HBs*o3H!A_!tI05OBvm)`g4+HT#t>$jaH(+@oWX9hDEfEogJ1pZMERdH{{ zJ>T!uzqpTuX_Ohf6{MY{Swl@?g9L@ob$}@UlR~Os;b`E z8HxZRc+X2q{gsu@uWN+APFOoTdxwYP+qZX%!U9lTbDFk60003H07T&4_Px<)0)Wh6 zWo7jb|M1Jd#sPnt3w#Knb}mbj`+rU*`Cvb9G@HF%^u7;~!C*R_&aPd%dh6zmvJ6@` zq9`hBpQRZo0ziS_g9AVTI6NGB=Mf)4;+eB&8(9_tQ=+tJo5eY;<9EfW+)TvXeaj(^EW>D8$RT^YGolf#R z2uvr%_+VaF0fEn-Ki_V3Z3xY!C`mN})>XB0@1D1{0?dr@RkgUd_z%DJt#+&Rp{tnB z=YR4i-+TDs2Ooa;_@@Hv18dgqc$}u`bU1wFk6(J`=_mi{hyTN4=kIzRy!zHkwEN#b zxcb~qy?sw@EuCFDdTe91Js;d2kwt~^t$SPF|4)DQ{BJ-1*ykQy>~s!hGfiZJV+0{& z67dt1;DOL&Ai}_&XrbT5x)SfvITvI+7;WwBh(_-mv#|H<8Koku0Bkv#x-v$kSi}mP zJahId&pf@<=@8P(KmPH*{MY~bn_vI>*^?)eIKF=^MN#~#fAw#7cHDR@tE-F6W&$7p zK!gASAR;2dBBGRvfAU|yFf5TbZrnK3`e0}G@b>;RzcL=4F>*eLI-Hl7n$+59jAgTZ zYwq^0?KlrxZmN_4L?JGljsN|R{{3&Y4FD9(2m(q_A(K+&o|;@oL<3MpJ=Iu601)7L zUJpiLG7q%}((}Ffe0N5XLL>k*M1lmCd=XFrIPpb=AhX%@?xm}1P7RmWyJwTE*?9Ju zXGY`kfBxS0Ub}SZ)Ujh5YirB>-gp1vudZC#t7|hHUb%U*TwmW1aZv=z%bCbXq(~Co z>$Q_4BEmFH8;wSmWs8f8L?7!;eZaCbk@wD{?Bf)1HZ}eINv$KA`*7sw!gx{F(oj)~ z$PSgSyw+aWhv2GETZJs}+RJa8ee3~dMutR-Mplv=KNdhhLV(zg3r2coSO zVlYjeq&zPmpMerVVbaJV0SN)wi**bdkw91iO9&v!Fi3C`X;y$f>cDagO3FiD4!{iw zEux@8K@5OiG^;cUokeLnfBxlPE}uTV zaAYkM)$E-unUax&K;O81b<7jJ)X->B-Ab@g&u*T6U@?zc6vseDxez9N>+0>Bw{NJ3 zBnHsL&JoZvPdwI48@@(FL17X&93EVH`y$qLAYhV4zy>upx(h1}L4Ob#uQihrM%mrp zE9=@b*Z_{j2hnl5vAH3FMrR(uyF~fU!C-bRzcEc}YNb+n6pWO7>5E@#wEJbn9DF{b zy08zPU;6qtp8L2Z2>|NaZEqi5y}JGK%WwAk-9P-puf3nw2Q2N}nKK)&y;kHomlZ^& z`S6CD7Jii5`EEdTVnJ9krNE%`frGb! z9U?FS3kD8Wd}*alo%_lH_Y-8Er0F1OqznSYK*GQ*!YwIdupV8IAmoE+!yU>IfnhE} zUXwGUV7y~bps92K7^$EY8sbJ2oM$W8Y`e;iO!K1`qn|2{&508$$B!>7*Zq1pw>o z>%a4bFZ}4;cdhpnMPd~Y0g)1EcDrzttGhD{0>mNIjuq$(2??w+7?cK%%&e6QfZ15pX6v-Q}zWVyR?{?BOSleG%*xcM) zUS95YyXViG={1}2``9U^o_p?z6DRhzwg%1SQKjf3HqytB9c#5(fBDi&c~wyqf!2U1 zMakZ0&D2J7@2UtBRs@0o00<01sB|lc$vsV!auS%G1`ZekZ~zeIfFJ}yfT$1zDDc3k zSMJsqR%Njbal|?@Iiy$Y(m{xbEC6T)#-NZ20azGWNTbp~h#~@nB9PXT<2+c1r=G)3 zW$t1p1av5Q<$El(2NW&|bQ0CJ(#Ehz!Q5I|k#>8lDC#_)N7234UpD|xoj-qSZS8~B zv$C=h?r)erI_j{{?|=S@C;rP1e<&eaMuhhRf^@#4ju@%VG+&%fU>)mptbJ%7$d`a3Va_|nCTT5CjXx7*qn zFxux{wjtJS5qbOWk8=`?BSM3-%GL9w<^J;0qV<*{VDH$6MA7vtcgvX-(B#NO9x@%p z(dx>&1VjlwFHwT&dVzVJ&s6Z}Em$iekY(MqRmz$SB!D6y9`bQ@@5ZhK5XR;_PwL5X zw?4K;NBc@dl~zv*y{A@o)%woXz)2a5<9=omqmUNY*H<<+;w+O8*jis!B2sv7*=rL4 z2MO%z`iZk=zxw#&3O~I4{(14N^QTY0bp3ioL`1sXPU2WVU_RARlIYaC;OA}*B_=US zWNNBwzXZC|X#_Uj`2bOpnc%p{Z%)Rc>*|yGpwWR_(R!TdZbvg{w%TJ7)gic|kV99^ z$^Z}oISbALhrZrOl7vZ#pqoL+5ev?zB}H%oroOJrN?*GZkE>oC>_bN<%@kT0G>WmI z&Mhvc0~fHY#&{W`z=Bc#2>x;ZmZS$ z+?g}K1gzzLe`#rHdp<|4A4~^}(9V+M5YXP(hthTSCmU~v@aTzotTE9xEA~%>mXG=gnp)fK!-G3N ze5287WT(%ABVt23)s4(VQC3om#BY^$ST;{CsW{Sz7q_=htgfzoFp}}}U@2ov9AQYv z7|b#-+8=lW5^ zl)sWFV^BOcCqq4&r^8hDXtzv@)Gu}C9aX%`or4-w2ok(_s74}|Bn~R0$eB3k_}=`j zgRI{MM0osE**zBJ=EEnP(LR9+t;^I&QGo!Kpe0UJl~5TgMFB04wdG-` zX*N2TjjDF{2w2H)3>&8wbYvLd?d|QAvuEjjlkw*zEN))Eaq&m5-F^9;+dqDHHlA_m z!;rPkNJVJW)a~a|gV90+N{K;_wS)=;bd+Lj7>OA`2za`>I9NVEXdd6~#O73DGsUD; z!_POyw^E))5MrmnM|)%R0Eppqb8M8bFaX-Il9EJ=YA6(CYlS;`-`OXQ(}@M$h}8@E zj=k{Rr+)8GHa~NDx9S~CfCVDWfHRWE^Zg+fe znS_ir)z%b{v@yHm@qV8FLYDRBn{WTifBAon@%K{=A%cDu_fiuqyX8ZGMc5it5aPazCv#Xcdb=DH26p2>Yh*hVRRJJ}m zxVo@(KFlgNx3H!};O=<5+H8ITENkm;fBX9a{oZ0rNCBbGWjvlh4?yOXpNfLohenK| zH0p>z*izi?XR!o3npc7d!aSK`1BC00}rrG==~Za;Y8 z0wD?zA!+B4lD)g{{P}mjgGc}X2)RY&Tj$Q6X|*19?n+UXbBmrSiqQ zjF}Gx_Reh>POn|L$C=j(;)V9&`jTS48tHJPN11LU%Auck63ldUB8-7mEjTfax}VK0 z9VDu*czx~RopiiA%Xi14X`?Yaf4=vV6wF7%YBpOBKDhqcYg>pZ5)s$pbC!aPiQ)tZ z>mZ;AwE{pACJ3YuMK~aHxF2g20TvP{P10mOHy9i$Kgs4g6P*j%$!vQnTQi1Hwn*&( z9x@RqMiK%b5HAVuK+Bss>#DLKu-^2&a(I|a;Zj>swXrvsy3UiLXcR@Fls-IU6W7W( z7NwCB<6CjajO#XSWCR$IfgL1@B1Kvg0Yo58nb)BhTFovROb5LJ+ot{Hr!M^I8?Rj5 z+ds_nPk;pgpZUzAQKVjZ_lALlxde@ID>jKzktR}FL~AAY1KNy1M3E?Vr8Pb@B61>9 zvj)+Kh@>L@z;rr8cSWXYD#{h((cWY)4}(Mf8GBMvcI0Xfo9!G(P#{Lwn{{NUPZy1W z;)6LY&E{WT8YLUyKMq>Md6Z(Pu+F!7!KOPqn;}fwZJA6=UT7yEAd!~T_(p_{*r!p5 z6d(`>5CkRfeV0K%0D@2zlw)!XMrYb2R_5JS`yV{}?Emp+|7Bbhu(0q6u#{4dKXzfq z=6i=DTd;0rDzDKXX-!0c7#poXm21Y0{5I0i%(Rt7a8aK%0{@YHm7IaGD5 z*p=mtgV37wzgC}0VzW<&Q(Zcm^?C&mXo1>xs~i25yh}DLupcQHUnvh_K64z-Z1UkW zQ*-C%S$Xw=V3#M8w$^(gkTEO*S?tp|ij|~Mhz&-X2~j{qfElerC13#vZJ$d~2)?o1D#>OYW0sy6T6Y++#y4?WuA&7tyQec#@2qB3Fj2S@? z0nxIEK@&5G6%HUw5=jWmB>=HQEyrx)d0MJcPLG#Pgr+lotfq&0wu947Ok1PlK>$%z zchY0`R$7u-scWf4L@~YdwgefR-7E*~;_jq3pFdt!yNZf-`wBo&*Ahi6ff`2A2vY@- zVMQc>fiW-%llM@TL0Cc%5Ftbs5mG^!vDM=|I3VrUr`L3(s@bt!%ARK_3 zFTd7IYEo2|E{>fxa=6=AZeSKcLSPgSA~V&Fm@zOpCkNBoJM=+NKmY@CoJA^)4oc`o z7Zz7G$Kfzr%uHkepxtbC)ASdDb$5IF%GTCwG#cKTEG+ex+8sA`YJCN468iO4|MQJU}Lj}JCgLLJWWkrBpWvFMv>#t zqMMs5b7$M{ywjx8H|wOS8VXgal9-ZMC$UcNZDp<2ZWLE)Y+IW{71hC0r(=@@obR?_ z>G(?Aq1b?uz;$325CIpka+uf3`G#kz11bPSv;c0#ll{?J>+zH4pPkl|ksX~}ISKcJ zPl!tYHKLD&RTjl}UU*?|Z|`t#FxcJy+!wykIoin!YsaW;s+f!U{Q8ZXz#&LgLaD4Z z#+^B_@JQEZs^X9f@nPLOs2aDfUWI(V(9pD`i_(ZwgJgB-%md}rrUU;FHDjRK0GTTn zmL{4b)W!9*8s5XEq^+c#sF*2`*4h{oB?`<-Zw}9$JB*ZuTm9tmiy@MBOUI^n<;{mr zcJ*Sc6ETXZEGp~Rd9WU84@J#ZqO7y(SxJHwATS`A-R)6_&OC7P3wbE!)vS){#m&W^ z%q!AL{XAG9giDt${qUuib`B4{=gG)v(+qVGPnxLKyMDfx4Yia-IvZA!XwzBnX=Ylp zdQwcJjPf(RVIE0=ph5(kC?o|&gIaE4Z&{eaYq4o9Ls6#vJWpABrF6V~daZJ0Vg+MT z-6l_w9dlqdh$uv;6tG54#i+dh?)Chk3%Nb$`8Uoc8+!-)3q^UV+~<=iCyWWA0HTnv z_yCoK(n)S1C@~nEp$dqR0%|=I*I(Va<{h)CyZ|ODKT2qbLVL3S{4zgk?Sv=yvDsJ9( z&2}+Z>Nx|FC6$?HAS6LaP_@Mhai6k6MU6R#&#GpejH+6@erukWu`N6SDx{d8GF9na z1>Q&u0Ky1J6qFLR5?b5iBkx?lee}ds4jOxVo7if#JJn`JP0lh@M#zE!rr^aoaX~DD z6A=g;vx`Ge;F!QRPM>)+;`pE#q?85@9P#l-j{h|&rA{p`e>5!b{c9I5?#$<^)4?bb zt&=oeJq_EhUKP*f_$Ki!;(C33yLn_tRXY;hEjXL;77hyEOmwW6BGbJ%I}*3A#<6s= z*(7NokaemqOvxx7ZkT2;;&LEQwv&v(puO8lSP2d1Se2MWfEpxmv)q>CV`hT{C_+d< zY1RqHOW3+OSbC$>QD-J8YR8ZFB;hm#ia{x$AjF=W7wg!13Cu{rYRWYS<(!2itZW{A zBvx@Kf{Y*aAvhMBe-5ZZhqXF|dDkZ|MEEP(((}{Fx?G?ko7j?Fp zFF!lr?R#-`G>x3m7$Ce$!^-tD6=MY6oOow6IlHoDM5knxsNo#B7FXfC5%0y&R8CsR z48&6RV+*|+4vr+VVFPaNVWK550LD+CD9~lVnzf)nAOtXMl8}(7Rj}i!*_)@0<-OA< zyi#c?t`BjENdep0<} zk@}E60PA2nb%;#lot@miTMcJ+R$venRM~QkJ{4PfH6JWqsj}xQeeRaIxyg!3#|tU; z*=@sov8i#v#K9H**yXuj2rkr7J*6+J-)&~;58TT$#<&&}rGRmW6#57w4UP48LNc4Z zb1)g*%~dSWib2OROY#}n3>`a2SPM}Q21d==qHl+W2(GRak3HD5hH?%=e2z;-i~Sp6WjtHx_%CLVyY@je5Z>1P(dm@Ufsi2+KS7=9Mem<)w40 zYgdN_bx$Z`0tA3CE9bjAZ{OO!MSGLQcTX<1Z7BdV zSFN>`t?N2aDSAA6F8=MumOej7CJ*Yirw}LE>piw)T6(Typ zv<(Ku>jrgJ+v&v&(S(;4_C;j97Plk0c8f|WF ze*VD+U;NYW9aSr;gTwSjG2e}I!YI0FxAJWA zoXuf6E1h#?N&#fIPuN4>o2=%1Xe^j440hiuL z>H@_Ob4+|M9Zd3R8?s0gF?jTG!kfoikOo&NE|XV>y@%sbl@&YXtl6jqniH8@9}RM> zRC^9x8@d>^C5mHL)^+)#S6;faaKMba^_`oCX>uyb(rk`%1&TE7T-(`vbo1k8;$OpB zUR+#VUOw0xln1p=^|iwn(*Ac(o`?0TPfdI}-D?!ho#{Bc-YK>w+0pCZ&%3I9SnYSJ z02Z*0VgRrftcM`TtV9T0w3;6E$`Vl^4l39#*Io2w6~au6wINqx5VcsWX9u!+gf<`L z8?TYg5lFmrHRb)hgd%6@CeTcIxr-~^3L~!ius?4UMeF5!c{G|+quT6b0c6T`X>mW- zg>IuiCRt|tu{R1Kt>?SNyW{7g)2WVAOtucT26lJzc#`@`k6+cXcZs?@$k~xHlXOWj{ZFqviC;$2b2jX_Z2Huyydsu--!^%K8~bbDryH z*QZ6L5+75&zDOsxRz{sW5bPx+yW3jZW|N!BstK!^N<`^MD-fy+ASJ?()SX4W$Pxm2 zjL>$)bw!!rHMqr2v~ffb5mB{TVK{N4Ic20}Qr2}6cVKnX-Mnm+^UAy61;DddFGj>^ ziWxNn1Pv96cErF{ROJ4!(q(SMYj0KMFzM&H-lcHF2ZTsdY_Mu=te(C#eeIyQLvfkL zbxpHIJh%{JYeduRXL)hTC* z->duO&DkP>cQzTxC}k8Y0tw6_T+s%vDG^`?7<@ktEz#O}4cu!h=fv7j zRZ)cR=!g&F2#NH0$Qd?9jwKlHdg4h^Epb!Xt(@RHU^A5J3T9MK>;A{_*!;NV;8jYlkXIx{Ej)omp%zG-3@x zzzB#4*4DdwyOozB(4mNIDoPyIL8pH@_fYESRS}%Zs!3D4$NXKV3k0|m+ z+t}1;Y_rs{Ehp2_!C}4Hn%=%UNKYgmN$MkDwU!!&_ywFFWC zRD!kL=DX`B2KmiL78VYZX3kM`eblC4*)dji$O{#P;6oNS^CjgHB!~isAc~q9m4!^F z((fnQM5tH*i8KKa5|YaED$Al~!&lR~oEvSdC?G&!x?h2V$RvhDG&r*EM7b4?;Y-rug_*qtAN$=wH|%lmz$6Mgl~rw-?l*SFivuwOJIPsWLJ zLYCQ9Cd0COh>azeL?oU_O9()KjfP1Rzqc0=WrPfnXi^9Q5D*oTLgeX8b6a%5zILvZ z?wW8Q#R^y<5Tc-%R>2Fq32}LQBSbl;b6i1O@RS=>MLJ+aVoT$GO#wcpi(bIP14eFV62fTQoTNCm?xn@q2$TA}lOE9()A~goLYo-^v zr)M_TZT-*_58bEXy$>P0|2)A5U?KAhmoBX}FoD6tFcyVBf=#xBx0*zY4&acr~9CW($COw)O@ zRm7WH22mq8o{FkO&|6j4DmLDG8^^V^vGiV}VNW`6nf_Mn@4G~-2{#_MTS$E|nw zg&Rqf#)Sj6;DSIDQyh_s#KtwX0>%=iWu1E;zyTbVU^oCz(apLR-LUS&mZW8ZC^|I8rm1T-%T~*!X^|v0O>LYwtwZn? z5r;s|iF2IiD$ljn90GW+or|m$7urd+e5&`wTf4WQ1)u%;XYUWGs;c>Xe&ooJkA;=S zaRWer?V@VYBc@2J`fe%nYqv3a@MXNcJiEGFY`2zik~ipXXm*eHF^vn3%EORGl(mJx z-@CILsvtoDRY*E;+-)uPT5U)WF{DWlVrQbaE?tTc6#^mzp(21MIDYz6Gv7HL%A3=U zEm2WC8;uH#b{ycsq1<5LEQ+!$%R<;(Uk_Qvtrqlp+-j9XRg%=rrb`kZMXWWyXT2zO zjn(Cdv(S< zR~P4_Mc*yrHE@}~96d9VgQa6jU;EbA0AM;h_a=)lGzDotIt>pPv0BpgLz3=@G; zo*9`*#51G!is*jrBUM#2nwTTe!>3oD8-|0!;_!>V^QFD%cxP|#=B-;?RnL9n8}Kvw zaD7&qrl*b^Veg}UMll4g89l0{r14djuNQg0OsAl$6%z!35Cp>gn;3{73L+8+ger>o zC(F@Ks?`NVATqSD5DN!n0cPL;fyIZm3CnGY$uA{!kTf^|f*=X|mdD-x!tUngI8A9b z@8v~{1xSq$?`7HM-rh=*R5lu$}0{s8nnh z{itj)lOiZ--2*3$-Ie7zVRY|e-))D+D5%MDHII;Ttq++W7z|?Xkr|kg`Mq!D{hxSW z%;Y^)m72~Cm)+-1{@#_t+i&i?gZ)-}saF>TdCx`hz^PLwPMrA2!GA>MU%S~{@AcR@ zGCEsmF}VOPi1nd}l9jwTb1fg6!o}8!^D)-_)-+2eM(2oD0s{lEcC~sxt`Dq~f>EMa z3~-8^p#UP5IV;vCP-T15kx`^YuW;*>OAb2SNtCF=>*@sEIi2iXh%TO(|79mns%Zo; zkD_!m>dog-SyEY2RVi!9Idl%arx3_F<(zU(TWhK+n$65;6d&(>?&`tTy=r&!!UKz| zOX3_@3sv>d*|SeR@x(`xf{)A_BI3Et%{zkuJEt01gL$?;^z4|uQk0~RUEP0WnQbR3 zf@2Ut;!N8*5KAWP2#H7mGXen$B8o@|;iom^%mEQd3krj3AOL``Ez}h%wtJJ*&kZy) zM@wp4C>%DLJ|AUfS|@g4uzeIGBRuULxn95tpNdEwLOh)&-bWz>5%3=47?lF8QA9bX ztkq>{$}*nM)4`CjI#yHTPJUzkfir2N0p3^BsR4NU@y8$dnF{3(koo93c#;3-JKwo< z_pUMqwVn+II$#zxNED$7W!}8B)x*htS9?vU!2-@L59hYkSnl_i*=s_-uoguTG0WAf zSMxl7pK%H4czNk80(d5+LBI+7+2NrKMl!03vgs3YIPI8Ga?-3Gy~D$%8Wi-#@z4FB zyJ|Xrym{9?^rJy5n>MquPF7d1Kkz_USdc6$JDn;?d>jWv5%J7mEmf78&CJ0;G8in* z=MO>sNF|sq_B)GMR^P-m7XZYEXm%KuV1!vug+Qw2rhbfkW-K7nY|RM^^(a2(_Yk04hyL z*CzO?uB%X(a?INMB1z^V4d%42Rauhv!8r$jbzOSTWvQ&C@!0I{n*IIma{m!%v|DM^ zTUr{A$JYC=e({S>Kl&*B%n^Z4fQ5(v;gA04yK$^Hj;=PTxpQzUO0%R9>qaw*Tz)VC z0c2rB-#T9G4)l09Ybc;l*Iu{@Dh34v0g#kVV@hI`I<`Ip z1|-&zP*ORl0HYLbreHod&DQ?m^n@o}p;4#pOR8nve4KCTW*9@?I+a`6vn^IG>Aip)7Tt>&Ya(bEjL(HjracHz!O%29ZPEdRzZt8YbPv<7Ufi+yz zDMA7s00@j|gUWI3e03mYf!>qS$O0_La=)%jw8ku=G$IiYBoiSI4@a*;2yegrc2N{hKKbO&vn&8mN}V{deC5g= ztr0Qqw-$CsyWV;696Y0rDdOM-GIp`^Qg~&sTB$BsG_MOpKtuu5aV$~+ zAT-5mk2a9#$VHVZgjpEaA_P$4oyK6aLS$j)07A?nOu{kO>1;$M0%d|tL>tnHVy#4L z&b?TJgx)CWH0Ir2YhOcjr@i8sHxQbVwewq3tmn^e&c5+?4+s?zinyu{Rn^P~N9su@ z_}FRQz8lYrrZy`WWgyPlVr6-wm1UFt{pX*5{->mzbA!Rbl`GfYdh6}saIn69{NUNMbzSf7?%ln6@8-?h`}+shR?P0%XP^1XSH5D5 z`B^ORajrw27yscuyi%4Pk%)BdXRo~TT2Yj!G_ZI141#VqI_FMZAU$%!D{)Pvkh9)6GT`HK|mq7|6hQGJf^7*ElGE2uXpGfbRVH(+{3LJ(7qTGu4rzS58*$^d5gpr+)h;U3<$^^SH3h zGAtO~*IJ)Ad#u^bm_p4VUT8L(shdph-MaPkGfxZi)vGrqlUWGR@Atah4nTPP@kh^} zKmUt1!T6~fjqJ>s)i>U_L!?9`Qkeo|W~T(}g)*W2B3+TM?@KOmyla8^at*z4Siko8bHi9(pLtxHgWfbf1ipzd|zz*JW< zFT8+401u!E0K|HZ6f%enND4xLxo#BLQd+61gyD=Xn8QvVD`kAGRb2bltWHL@i>5{3 zE16?TsKJWyl87)s0H)xiEX?B4St263zyA**xOTho+rRyd{wH~)KMz);k)1xh`ugj) ziAW%{v+n+Qa6h~NKuMaC&Yj=t_G;~2>*%2YO*c<-$}Z!MvlEiqL*db~h&>Er$>Ngx zYjxZ<3K%I$H8YaJz>yD;^&@R92hj>$fZB-&00T<6-yTYpq3LwRN=Ja&2_rW8A#@7> zQe>k&Pj^vQrWq|Ptu?yMt;@GX5STdxX3yRM#J%34$Ubuc5C9~EdTFWmyTAK8-EQ|2 zN&P%n_l@hujlKEYBC5zFt)zLFPm*>k>$Xgd5{BB$tLdh_cKPJewDII5*p|NC)?GEO zB-1jfMb%O&{ESm|Orm7bKq;YDC(H z000IciC}DrwH6eS;5D~57F&%>fneY`GI9LgJqrOB(BUDW2$bb`GTFPcqbLIQ3RM(0 zlcYfeMBe*Kq!y`}Z4}|RzV)rsr%(Taq~H@fvpMJf_>aH4y**l3SoqQxAHBG9^~&xp z0u{GrHosMtZ`*ypF}n3TColH@iB)H?{`Oa^yQ{f`gOW$Jj4h5V%>tFI#VWGOcz|Z3 zYPIj5X9~c=9A&!Ii+-Bv`3VA;GZYvrVepP^g&?g~Bg<0#)2$PLd@y_!ydNBl5RxQm zr)euP86X0LpZs`$AYw)QSHJpO=gxh?ivA&e!U+pw%<6q;BmuL>j1I*X0QPClnh2_^_JC9)Ui1D0buNLI}08}jPoJZnS%k&qzTq?wa% zudOC(F^mg0-))miu@Wsf9_d-`o4vBs<4MjUN~!n5BBF+d;2i(}B5K8s0m+6?)%9dL zRY*yaWJ%iZF9IS<06+i^!HFP1f#?w5%T6-;5JIQZeER7p*FMb6=QEg3G`47dS1t3vag&;};l8GbMB)Q^%gmI(U>~{KT+CW5OI*3gX z55Vu`1VHZ3I}r#WAVRy{e*XFA9)9?tk8{vJ1y~=_=JN98d-sNQr5Y3^M`yDe?Zx>! zla;W4VD=`u#<+RN_Dm6A9Q2`yYRI~sv-xap>st#auC7O$NA1xx4QYPKHeghn$d1M% z6ViqkWJX0l1%(L0!oUm=fB*qW1VAtLk2TXq2$gg7Y<9bcEIDhWk*$;(W{?=h>tshul|H0L()Y3__x#pg{GkCd(BPPFi-DTaRlcOqW z64ZdxqU`lIPVVCk7bjDRfw)J0{W(QmXTYP7$1rMAU=rp$qPq1|5H-Wg|UH;N+XYGdN#$4{O(v2ptJ z@qYiq8Ngo=ECASCUVit^ovfLieZIT>>aAAXxHWjoW#dcNTAhBoT`a3vW_>5+&3+)3+j87%A6s2$Ufg+EWcd8^ zUwD7I2oZO7cK+ZIUr+*^6!C*hulKl|{j^2&H`(r&LBidDTl z$OjhOq2H;cn)%uA`tX^x?C8SMb~tJ6^&)SS%}K-5!Rpe2^&zjqXl_H5bknTUP?*fp zjW*QY7dDi2RaMi`FgQNC*sdy@=cUNJ-|xR4mQreGXJ45pHll8K+Moa0b8o!%#=YD3%DNcL2KV5eN)$zucGA=9rqBPfdDvbazyb)}p_OfADkkDRk{N+C262Q;$6QNbo^K_ICG@Bx!Y8 zQ4~c{G@gwA)4%^uAvhB+V*QPso&VtS13yyJp{tn>N`GfSee+b}8p?|cl}24pi#Ul; zLDbUS<=7Vejit@9a7q!8?)5HMn?;dVDu_r3d_OhGfjO{<_}D-FTTl10PiIkozdp4V z=TQ_v1ORa2)CY3k-A?z>#~yw4l~;j76rEuI`v<#k=ewqy%$!x)9>Z{pJKr5me{j}( zLtL|H7+@2G#d)-Dba3#k-}&0P;}87lzkhjWXQUJYKvAT19h9o$ST;5mm^qEp>_~Qg z^E@=+spp^i%<<3A-@cH>wRu?Ray zPdstq%$ZdHc<7;rJo#4q;a=3Au6{+2WjKHS{PSOW9su_5?A+SEevfx)MVZH={CvUv zl{~4H*2`<1^i(?6c`#wU(|z*j(ZRiYkDNQ#NK*hv)AaX#?+fS7tszQX&+>e7_Uy)e zQukl|+a?8{Za?@>)Mzxi_{POc?_9cj{qFhI^SxeAY2~adi(83nEw>)X>tdh>-~8{s znKsgY`|WSPefjeL_|N`X_P*3!Syq4YCof*Pa^;z49{cK7Kcm#I=*zyZU(cgts;b(# zzJ2qDw;Iq$AvF*yRP$;&fyqOE??P*}^B-S$;njEE`R4P_fA(i;T7LZFH{W>U>OcLb zfB&a_3x8$$TZAPdv)QcOZhz#fQ)_ut=67bCGXg1~XfcY{lDm_=@4x!m?cLqaKmPdF zo_$vT%+bHCt(`2(`u$(SV?Ta9mUVY;@2~FO?RPt;7W$1iZbi{>Hrv_Td;Q|&JG;9| z>t`Q*^zS_L%%}4(g-=hvB3R74I~e3eQ8{<%_U)U4!SdSLegB963}Wrv=0}#U%P&FmgT)4O(wes2RHBC6T~>nW>p0Mon|vOrjccft=4j{mwi;TP15wXqzV*ED^#r^8_n+L1?68g=v!hQ+;2G%d3-@y7M^cz^egnk3-m(c$Uj8{jx TW{cG*00000NkvXXu0mjfV+h99 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_10.png b/2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_10.png new file mode 100644 index 0000000000000000000000000000000000000000..42b1f13325c1fff7c2e7ae1221dd42a2bbe888ba GIT binary patch literal 52900 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 JZ97 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 h0GpQNwXiK6b%5q7*mdp0ByqFvNVi)#_ zA@;_koD{eSg(=_wfgo52A;B!Lga8Rj$OZ~hzy+7#1mEB+CcxTUo5H@f*Y?3GtP^XI zDpIXftGUrsG!=ENx}vVz_mB5|dfwJAOO|BWWWJ@cN2BSU?zi9X`#kUS^S_IAG_7qZQMjmtyETT{nfWupZ)x;|&Z&qvF+R4%q*1^Cb$KC?jw zXQg$f<0_~74We-$ytTo%o)fmk`QR2tCa=_A}?5gUm9-}0~%hjfQ|zp>mHO? z(Le=2c^I^@+1||V6EUHx&a;bKw(02V@uXk$cx|KAU1TFwxGO~+tc2@kPYg!59R3K1 zgTWes07qGOhOv{eeXBxw=?H+UxXdx=r~g=zzq^5G3$%7JF0A68AhRDn zfTM71shCZp+(KDHwM4bG>JUIFpcLqoprSYd(p;B$>Q~|G-?a1{1R{3^CfM%<<1sLp zfN$ktFh(hmQBor|GA2$`mNs7uLnYBgp#fIIdOlgDv%<5w{DztoYj{!>nQmdxtSg+8 z;~YsifkujqO5SLg<*QNh<xQ@BV3wX0lIQLU1HaGJ5~ijZsGt-X5nu)RIv*gF zrK#qozY9P8u@&QyZ5%&}Y2Fx4PDDc6c;rF+S9{C{FtmCHoLF=~LBe8S6+^4S|JO28 ztt{OhXe+FOd<%=lyPEMaD`Jot7XKZK7TV;oR!c0Q3w99KP)4nW3)lu*)o`laMA=C0 z0*n}ip(a>10z1X-nhqbJQtCSK4h)RL%J8b;23E*ElO4&_XDrN=`=knq?1mq*i^nxi%vqa`mshx zh5qsoBmYuf1oC{kbw}4lBWy5u6m2Sf?aqFl6Or*HhlFGojj7qs!ErOi}4Jk=Zk?%JO(pD z3m>=gmDt8kNEg*C^Nn#6G(%5;j(&VC46|BYRL7XEI<&^2aS?2mb z!U&S{^oh zY6Y?nEtLgv0s5)xWM#bvImeKMPCS-n)XymOaw2tf>^l(;MdFR3pIR+SqJ@eWTny{O zH!h2!%Y}i}kb&<(wuQ@P^oVDMIUym?!iTMVHEzr*MZ>RriB5b)tLDl+egU;Tbo3yT zr3g8;ujh^Zy5D+q#nIz?o127(qYwau!uVn6h1Ig@{47bmDuq@e?890%M?;~pyf?m8 zvSB;C1BgO^yw+xOUqleHy^hbz`bdTVxRr3sdA4;D-(7~q-EO*NE@eN(Cku;b8I{eeutyDU0fN|u~1G%43L^74k z2toWAE2PIf`%&~uim*5NQyJC6{UX!5GGl2 zMxW&@7P?tPL^ela+e`@@T}JRM`y%}k5s7I;TqUsHz6#x(-7!!26b`yRmaxG^wZTbK zsF#VF(VqBczru@G@$phV%5!o7U7t|+9e%ASYOCQVa5c}uH66U(b5lrJx%YL@0 zQA3eV4y#vX3|xaFTg3D+s;z?Wv&VlXgm6yjLi!jgGsAaf@P zffjbQa;rRqQQC?6H3$f7St5aS!Yc6z_&(3xm*ctW^0I2GucLGsb?i&r6u@0Nog#X> znn2>w8YQkv-*kWr-yGn#ja++_a6i`ixf=~bq#;T`EhCVK24wWJaEy6KWVO_H)+V!b zg9uI)zOo5!G;ZI;0ot;ByuxT$>%wx5XIWVT847l@h|V3bnA7dh$kyKYf2@^BP3!!`N@_cn1FIOG^b&|FwE6vE>ThS0iiH=N

    iqFRQi=^PmNoHbVrWY%32W6?sZuB|Qd(#LID7&Jn&(t0kV}@Y z7)mjy=F#PXlPd@1sjkKa7l;FO5pavGG8p?sz=?Pf$fml+D@)ZtjhHh+F(ycxm zP2)6>de!DVw=6%fw!UxO`523SXw^Jv-Sa2wKZkVd%I_;+l`d7eANB?^d_Xx!)X{s& z5)3DdHn~}&?r%Eoog76WXS|=We;RvWN@i9@=Wq0=KH@Be?x9T)FWDbGDKlExg&MidZsk%DRn?A<;%0`o}R4(zY_gTci*AHRX#}1EKW!KkujB}{Mzc2qo3UXtJOPiw6L9H`*IM7&j`e6r7l~dL z!zyT?2pe%O5=&LkHaIQUPJ>ddJT})1WbT)LjTRnl#G@Py*dRgI)vz0_rmtU_OQ2hptdjh_I@&(Mc|7=Ro@3E5rQU^AQ`>9C=b1FH!S zVXdC4As9)JNYHP-mDQWwAVDT4!=ly@|1FMujVpa=>|!I~;AtRm2}EwX;KORz1D=%j z*_!5wEOZU2A@SVu4FfOM(!N+^RUV!uh%%6y392Eb{Hez+i_gQO3-dMPp%ywg3?IaG z#{hg>?Lds)%{g*uzT}Zay9jmAu(4M(RZw%AA>w|tfhR2t6eW8&MFB0m+W@X+_&KUt zd*L#!f<`cRt7k_mkA>Ew&rN^dcn+8y5>6b&R)+A8R}sWwyRXIEUbl_Y1qg~7E;t^?i{2EN}MuCn9&iY))16S&;#it30Kxa zTdvOh)iIVG$9OX^Xc;ju5#L6p*1 z`YD_zNvI$^bfHVCAVyF;R8vqdhAx-C1z!VSrKDwOx`KnSQH}`=i%t+1gT6jjTDwVl zp>8+fJ^FKM>MT6N$SO*ZgAM)swu-q!KlH~NL8uv5)k$wXHn=dD#7k0>QBih>e;aab zDiRQ{CQDuL6fZ#!RQp>0R8KGgTi^p|ghLJ=x&S>4pd>&<{LQ=rcSa+&W>@(1HftDi zuszBn31A2Yv0)2Xn;OEQ4mYLM<&sum977#UL&-LdR{ti_@~!G;WX#jD<79$1; zBlnGC{J3!$n1{UfSDt|ra10yP{+TtGa5cD47gcPWoPqN~KZRK%;Z%enWgaeoE~%Rv zLGjSTST3)Jx6li|4Ni)^BRrnaD`xb`Q6wBLn{cu^K4i^a04pM{3ju?5dRZMwl7MRm z_~#t|b+(2i4pl@ptsTlZat*i)NkXGq`v<{JK!PPOI7H?i@F9H*du*Le*oS7VZ5$Tx z%Jbav0-SI~&ny&CEegGI@v#9U+Y|WmHmd^yr7$}2p-h6FzXg1pl%_z`_7IX{^h}Sc z9;a4QI}zuhZ#*-Mr|pdSOe6`38$~1TM+~f{KcTBdx2x_`T*ct4mt;A z5RxnRFF5}UWOgOtGCu zI#Q5Y=z}`g3!CuZc!G3Jr|YW+Je(wHv*8S3fYmgM!@@E+1@DXcl##W3SeomVWJV^9 z$%hQg>E~H9!f=A*jR6~ECe|2wfUT2^Zc!a`+SEi{3QfPZp5=YW7bum=reh}}VTY9Y z3ovv-r5|S13IUWzM|*YR?L^d10XZ&+7zluyAd!<_in4Sl_y+MXwb3{S>B0!gH=MJPN|Yu6T30NGfU` zVkA%0LBEu3zq&?;z*PxxquqyZloTrasy?r0VIJC*34v~DV-yv!RP$gULAsGd^qsSW zdN>7d$lgm)u^Bo=igJA)8s>QYsl16y%h_M1Y1|cH`B5$U|`s?b|K`A$p7TOMnpi7mquvST(-_^0G%EKw(mjJ7tu&GFguj_zsZR5o( za4T$rQ&Qw^Dbz@Tm~PJ0>FRJL_2~3IFc6K}Ss-PCO_eq<@&}VCsEs>$k=Kqv!eG3} zZ%5oW=ocdyZHZA;w2wkNE_@GuC{F1zE^r1iT@socn|Z}W;h{>f4P>w*_`dLRSRPQF zeAI;_ut@4@*2>MOiCF+~PA!Er+zcre^>VyM*Q?(Q?}{@q4@oH>q-^s&@F)1IbG)xI zzA@gLC3q9^umO6Fwh_tr?kG~mO0rn&N|LK#Ll4+e2J0;V>fu%!E8q_3hJpKe>|Gvh z8UmX?F0#JFE;v=7qX@e~Ya2iDIdg{g0eGDkZ{jN_`S45~={lTMAY-T|cL}I7I`Qhk zcEJECc7AehRa&Cp1N$itd?ubpYXEjnu@BejN3}GuB(RCN{wn;6Oig%A!{g6PO?6 zyXq&Q9B4_skggnr48N7iywOyMrccxzGk`xz-O+QyxD1R?fHwfx40WnKh9M9lWlU+| zz%Z?r}{9X2e5V^mA^G;cF6{V8>OYLJW#i5uXfKKgp`wpk%zCv>#Y zQBBYWaAS!=D{a*>=$=gRE+~@z9;JS%R#qAa$-OBaL1pT7!l5;!v=hJ{!^1KnZ8exc z;;Fm#4a1CG_6m+9wLa{jU4n{%hXEepr5)V9sT`Uvh{WIp%Rs<7hiV#Us&!$$14;J5x8R_h zG!^$h+eX^EnlYD8bBy8)4BxgaCLOgj)X8l`jW2CkW6nShn!$rSESD9=fy58t`f4s; z1qg%u*+ODFw3ZCN6aCw$KM~CU8 zVFA>=&u+z(Za4^sp~Qc{doU=$HV(L9?@ImK2*5}p7UCPxQf~%F;x@FvpdazAg^0o7 zL^(yU1i&D4z_S2LVIwd7klWYlcC+PE*yovn^VXGVTo~~&8e?fW8bdFT8Ztt))RO17 zF#sPL4F!C2kv&P@t>BaQ_1YY`cpeTkz^#mIr{-0|Tvq~@ksK~G!rPKu`-w=QoUjhV zTA+UY9}vLbobAphmwuC=B->PltgPw2>{QQ)VwQ)~BD2NB84dz=1R5VbM`z_Lr+*kA#QUne~U^fflLWWs1Q$5`fHmFN)d0y2tr! z2aRlj?O^tO%bEce+rgI=2H)RmJC2UsXPR&9Dvesu7iy#fO#?W z;aN3=1+|*3CR1cMLvo1Uq__m`-_DOwZbqL|ZS=I!m&LCxmy&X{gn8%?t5gqI*BBQs zeB*L$Pg3ut0X^6WAfYRwM~}+1$Y2=6BT?xIEq&v@BL?=CD_bpwXJETXznpOq0OK%l z4rJhLRYp8VNjSwTn4T~M`gc$@BCS+QvM3LWF!V>owZ)$)aL0H%jEICvDpo@sL(mN; zU~~KewkbJds6@z$Js|do=_7pGvg$*SmSBac9Tt&LNx}kLBh4SIUPfw2oPg7?6}qH@ zyvo&j&7u7(q9J~S3vY&RY__fsNxZ@Ew@8lAo#1k4g#QOJXSAJPcl<2~JMxgn+QW9Z z2EINZw#xwQ@R`eE8);uQ?rDh)cfe*ip?4Q!eO!gC=<2=uZgjf^WxT=}b(Wf&E5g%uVn%{GaHge@E19We@I@w$r0viounz z4PKYKv4DWY0Q4D0`a4drj4*WCpvLIu1y&kfv zk%cPqB+3=@A>gG4^);_URC?JodvQMb!XZVb1zKxKW@4X0JiQ9)hJI-bj3YkOZe`~! z*F>v=6|ff8QTJW(8`jAY8gtFSv9jj^DuX{R##(63j!tMwNL$Qk%db}7^%65UM(hZqNfr*rZeXxc8wO?vlU%BLLr?-cr{~B@tu7UMX zpzBD;>%4xGb<@2eP4zTFld@(WV&7{18#KX{YK)zTcHw=O=>hg7awd@4+=_~>WJeB@ zN@`{YI?t%=o(SLr;cuj?^yrV(0!FusTVaWj#pFP}L0g!>2;Y*M9R`l8`prrJ*}1Eu zOj#$MHV?xcSOcOIMfR9Md3|C$y~f0?@fm3w$qTL#gP3L{gC|C}1K`2^V=m^bZ0r~A zMd_+ao81lxRaAq}`fDrvH-IBGAoFoV?(Z}NFgSsR46K4}@HR9<9UKAR8c6g)fnPP_ z!nJ#alb#qjc0lLdEcB%=T02g-*QWvNp^zJ3IaEVpkf98n@L$*(TDx)K%diQyU{!Gq z)WTg*uZ&eA5QO&_70VR`ig7`vl*ESec#kCMgD%6ir53=0##T`29~}Sx5}uZF%AP;2SUZbnNVetNj_Woz89D}s^CG&G1O5UZeS~q*glZT3j>eo8}V`@Z+d5)p@MC)jZLFkpf<|Xlr znCC-|OG(knv{B@Dhg~w=eaK6(z7q7xmkjMgPd#zF%tBZ zuyJ%q-M?2^0o2?#W1NWUO9ef3XOyorP@TNB`2{h1?G^ujk^hCs?5 zCJkSdFGuYLmyAOuBLXw8ANlb*{pF@$j!5l_*+}>Q3F2wW(Yl~6zEu88_ZIzPvtc6i z4XPtN{El(HcVU@0Fw+qDZ ze)uITRkD@2TslS&w;K8@)LyZLCF9Q`V9IQny0c*}O3utw5;8}^aCisFZX;e|$Pg^P zu~&@RaCuOI@5!GWopm~}Rc|Lt&L2ZvDG4Oy=4$9OvN>v2Cid>%0kdFbG#d9aKRltc67*x(LRvmX*WE)YMg6 zt$SETW9wI0nL$;@paVMC8g}nicf32r0NnM{P>V#7X`e2!mW@C=bU`;fsEa8z?Es9u zCsE@cgE$)@#~`dRaxT=f=>QK~x2V=Fx9^69GBl2H8|Dr$DUGe8-C%9Y+2RQ&=gf2+ zeREXw>HLw9Y4LDm2Z?S8SMp?TnmV2*)|wsw0@!M_sI+Aze?&jOA@QOW;0)Zg+KAK~ z%Ru#$m5m36p;g6GZ!x5tc}YRJrT4%M(WDG7v8?|vhH0z@J!}wpQ2zC0bNHlK9oNb9 ztA}-v0|v1&b@VWVkZ>%D%{8MwXA#w zzW*-4)hddq2YO*W16A6-vh_K+T6O(dW64tAeg#ccW$%6T*^(YF7xJ(g9+SY_=wMsc zP>jG~*C?e?1=$wXoOKdS#F=w*vd>-FwOLR{rKHdU?--WM1-?+DKP%5_;jD`*{9& zNtvklP~ozY}q{Zs_txR}W-ozudH=XFmw zO}Al0k746Emc*qb)AsN7^Wy;>P*FCDU??-2;RWG@ODavuWqXQlIIy2yxM?-m#@D3` z9%Aq?B4J5H-?MNdK<_5~@u!v1U&<3Yasr|n5@KJuU4*OpYhcVnwc6B)0oFvID&jx@ zN8!JWH*AWBN+TUno5RQD;I|HruwKGq9q=h$$|KkFL?D~5 z+6R~zCM_+7>+hk972)$I@nuVCgTtoPIu1fTu){{|LqIJoh9$p092If zXqZplgdw;k{saPphpybc2^achgZ1r+hwX3Re;6k$`*^StKlu~)uPmnp^}wOG*afX{ z8w~3&{_Hupqm$d;f}0^o;wDL^Ii1k?W`TC4pImkiZPdcu5J2&6o^6sR=Zgfj^{;7h z{n@a@SlvuX=;}rAvp015;GmrA8!)h}RpQ{M;)0*~oIDQ zXS7HJo`erzKO~@cF~`iO8W?-E67=yiaE)q}S*?W*N$^Q048Xl>}o2z}_*4=M%uIII-UeImF%p}0rr z?#r&AUs8mN#Z{>>QfCjK%q3AhSq9 zX4y=tYOHn1ggq)-CEr+Ne*t^oBRC}<#nRV|jfow%bQGbBr^}T{wQlEXP7Wt1Lbo!a zt{P);S9nui1Q2jIkxO*00=L)tbYylagpX5KsR`>0gy#z80zGrd!QTM zHGKEo&@j+#PIC@v6sg;2pSH$60s7%H47iz3>}{-J4*6DxioS zp+4|bh9PONk5E+0+%R-OpR6;=9p8fsi{U{S0N|-O_Z)HhIockxZwJGwxeS!zPMXQF z3+{a!;F~*Iel;Tksq))1Im5JYUiX9wQ`;H(hFKdS6!IE|-XOIXj=>4&vGE^(6VNE1 zutlfy!4WT^%Xiy!mAAC`ouq7LGD}UG>Lh8{ca#Ao71eg}9rY^f#^6#P%h7&OvJn9jtA$bBGnRNXACmfRUIX0rCH>%}f zucpu^Lj87m+Dd@v6h5flORvzbHmAPmw}VDY?+%cx zzbhme{|V7g(}vl~m5ih``FprQy6XpS9%^R9u~^}z?Cm^ z{3z^!gK#nnTf}x|OGSvl@Sv+{?1>ipA~%=AN3{q`mw!fb6eN}Zb@1Vpe)xtKbGr`e z=45q{8kFK>{n8-4WaJTekry$vidL94ic;8m3FzIcKVAnpDY_OW^<@7{1VYp)0yqP! zAp=iNI)3lT3ni7l4j3IgPQjXk;`@%23&5d!Ep^?Rz9W!$4vNqKhviv#kbasEF*vCf z$YIe@3s52t8)1bkBu~lhr$u>iMIPpf6#5^njl~R31&V?9>bey(R7B643Tk40NXS%q zi0lTVot+0hBd?Np20nmewfN1l$*UGV)ygR%D@sWM!lIvFa-+fC>hk9t>(;Y1DHVpJBy-ocL z`Xr;`+i)BJ4{D^i`>PWV-fs+RF6D-WWq(TD%VGst%7Gf{#UZB+k&0F}lw@&>j78sq zJ_kQ5zPuu!*%&Qtn_w%PmhGQgUUy>jOUoiy4QU2qr3$BnU1j=laWaruS4U^nOd8GC z2sYUK{j2=F+B9^mz|RW(stt*jmjePhk$S%*RP^9`>?}bMcGDssSDD&*>BL#BYZ9)k zhC@(j$Q{7(Fzb++Pf5H#+E@@|78$1JVlrz`MYJ?*_G}5pJ0(cUteRlTI*H;cs za)rcup#-~Ok1TMJ*T)$wOZCtZtod1(4k1+*|(bB4r@6E(w`UVc0Cb_|C{A zb2U$V^y`qX?}eA)y|0SFyT)h;tbP*1;wuBBJ4H!~b`2WkgOqgZE1O*NMqBf|2*#oz z-@2j8rceu6IK~~Kg_ewud07HP86L36gfX8rATm1->!Aj&(i3zfp<}o^VV|)Vj(Dh0 zFLlHncsc$jH5;S-aUhAykua?4W?vl}MpapK;D|OPmv!khEP(3_yYwhT`o3)lbK9`K zL=JbyQ2TRG+oD6!VN5xuv%{#~%f-w<=E5*D+djhq<-4opyVdYfO~`Lim7?UA zi>BX*5yyg_U`dB$a-7f%jG3iY^%4a?7Ng@qALQkX+HaMHG&I3_UVMV9;-RgjX#W?@ zS=&&{d@YSjGToO!7QO*4?A2fUE(B87T480JhiYk3odE7P*yIVz`{k$rQr)A+b;Dr% z(iBf_fjpl-M-4boRCE0;s5WBEqk9SrOI2i*BJQY(sF;REQTWp>TsG~A5Ft)KE^-Dk zFV@irXET#(fsy5wbQCK5W3@NyfkIZi4GTE{FaDX`i4h~9+9aWZODc^cR76rLJefqE z6sPUME2=PKd=a85ZQhSIm9?-I7Jv)y^6_SB!FMP`#)nb*V6EJeZ+I~R6^Ft>SS;^t zhgW$==sy_GEgZ!|6k;OV1@zc<&Te^%!k70Tmgh6Fom9I?57prqG zgJ0EP!`Fv2-&A#8A97cSi_?wjxU^`mC4dT&ZskuhHoamEjTV#W&P+)kF)#xSkXBp1 zbHoJPW5)Ema4?^ekV%DM3!7Wx@3^Q**{8&yvSzaF1bpxnSPv&^Xnw}Xqd*p78&dLq z0eo@+ITsc)kklF>hBk?&aNy9_r|mInk`>hKUMzNoYE?L91U&i+)HLc#4Gdvy%RA9n zJI4D4XKli_waEDnJSo+pBD`(9?in*)-H?+UT;zI}i67F2S5gFU9r#kxta}eDpOK=S zwJkcCXzYV1H|1#Mk5DwIXbQvFZgA=`*5ix8iMhw@(eFYKgUlTXXCe&84sltqa_~H{ zz?7f_sf3o7y=SOuEQf9d(8Xs=P2c%~{YRFH}%U zQbhb|V|S*iLmd})g%6#yto-g2ABsZDjJk770h4l1uHg&CK;~2uPP1pIejWd#9Y~`> zL9eXsIKZ{tu(wvaOwa|(V1HZ^`9@LNlIU!C;Xyx{DgsG~A2ycv0Z~Tt;8FA>mm)2? z>3}xmP$T80t;V~d6YezPj`z0l7(9BCCxvoVkabutId#=g4=Wf+08|Y!oYBd%{{)v# zXT*C%O&x|Nk?B#t)4VwS-!=;8%s0mERW>eWSNXhf7|6V5!&*?mteLMIJ)z6E~hP#Inf(kIXWwwLK`o@OB;VJh-Z=n zR?UrY0(L?GYYj_=4}le4A6nnH!dtq>=X5cuS^QYck=^A&V;~oTBs}Y&K8q7T311!h9=qTeoKaykHi07{UJbl> znCp$K3KjVh$O~IGl{Td5&d~@QBhvsS!e-sPcqSNE%9(-AtF(3+l?FVYXyvi-891BEK97UoKfXWMvq#(!w`7MNudf2p1xU zT``t`o6UfXi!W5o>zn}fA=l^kC;12t!Wn4-p*3JdtagZhpOU;O!+wY)+XpN<1Pd70 zL~aoB9A!pgP~lSe!jrnyK-1~U6F*`qO9BmIbiIOG+4@#HeS;HuYZDf z;p-0+xj%rDs0GcF>M#71rh}B~CLL-bYlE7=!SM`IV{Ad+`O6Wg5?Xfx+4D6VSi<~igxk)%V*J|z5ap5zN z^DGI^IwIo=!#m(b*~f`sTMP?|6zK<+LQ@A_uxT&tTOzB+xF{Ka4J4!{6_>U?_&SB4 z3p$|#htCJ8gHuUX?k45J&iH2UI(3Q?pM1zc_@SzY(F=ioTqF$Se3Ed6BNCJiq&6g!Fyu6R zl4OkyweZw#c-1xTsdl{0Rmm_b;tkCErn2}>C08oB=gY=S+t6dIrr@{(p{!+H*1qpP{JL;4Xq z3Xp{!id}pJJ$yY2J$(MW)}I|%Cc5aA@cxX)Zq9_E!iB>fd}CBuS!4pY6)j^%hBU1+@N@zLIHZAT1q>#(dF?0tY_iNaGT~{0Cn;WL-7XF zbA*8%Fs1nE2p1anxCrT|aKVvqA_P(@#)k$j@8B~ShCae3mYn9N%UJgUJV^F8(`R4FfxqTJXN}-J` zq@x^v$ff|&1Pv0hU62I6B6M&P3UD(iSPq|x8&hS?_d`9i5JNK+Ohqr9KGNkT&ee! zhbm}bq@I(o7oK7T1aKp--*Is0?1!E3;yd&#R%P2pj7%rB%Gt04ekWg- z(S>b1I9PW4*Fp=!_vi$T(?athcoz=NY(URJ9gWzigyi{(r#S~))C}Yzl7tGLT=4?_ zQx|`LGmz$+O?b*ay$T z+WbwX3`Dk@HY-oTA=s0pXMrkt+Ano*i&Ez^LWhX*EHznbT!wR0!!kGohv;eJEs`#^ z+qLF=S|VN7KnYIG;lPfA3ir+zE>IFq5^)+uq0yhCYGdRLe2)&;@-=oBVE}wsTu&lD zrshxr>Y!UvdtIXfSRQIQ1N&hwz!mUaxI51hKW^m_9EaWTL6&11;V3lqLzi^6D9IKy z8soiS%dW8os!7`9GdiHgha$)NsKMGqbq*WOz=(J<*PM3}PJw={aYd>nJWsUv!q89Q z0wv+NXn|J4S5aMM^?e$$d?N&qfo0JB8-AAOJGGF9J7IlIyZ~SH+K;tA(48l%8Oi8C zn8N_;;l^qfnoh(xPQZSb!)xIRSOz0iBo0eG?vl9vrE4eyV_K3rWL&BfT6GfCi2{zTisB!zqEjlM6{SOpXGG5_nXL?^cDX)Uwn`gm>R~CZUHLy0UKbwO8A}-J5Fw0Z zNY;iJjU{0)w(=brvL~X*Zp>K5nq^31XUG!S6=D#P5<^HYW69RHhNubYo%eru@6Y$1 z&wb9lpL0L=-1|HSEp_ZEOtdksDt>T=M65jAOrVD> zSN8(w-P_oCXGU!-U2%w`@)`NNvQH8cKTqMaIwW%L?qyCDpP6qlx%QX@aUw)*aY*IP=;bBPgc`gRVy2&&f}RZgCK|_EjAO=m(GzF)5Y80XKCbKL zoB%v|rFd5D1|KI)@L<4X?B>u-i{%O-T-ul^GYgSi4&bCIgOh|J{$_oLu1@G5lwOz- z;k6g$wG%ra*JM1nH&DmDWeT4L#wPvU5&0L%ci#d2fhEPApiCX*hy`; zN|2Xzgltoyqfnz>E5L2N9hBob&4ZumqA3LuSNv;h*&UJvLx6ZVnIm**XupHnm@qUI zjs2CAa0j28gIRNtHEp*4z@)|FmyuHZ2RWy|x7h@heSi7(~zbBJK|dxdL@EYoS{g27h~&KU}m&omi90D0o|neX2~6lB1zY zY~xUT7rkZ21IxeFiw6|C~t94L~1+d~AF~kGVJn zi?{Z3>K3D&m!)<0r0R%%t`JoS#(Hxk4_*Lw|MTWt!)a_JZ`88jrpjPBT`z;|SX! zAP+dFbUO|v=(Zi`VUcOyKz?)#d+dW21ekNv?;$(2vrMh zPz^;+E0ezzZrG*Pe0pcDkS{4JpFFIR25J+N)$=30PFkJ`Ge~E#G##>nNi_phKBkI9 zWGo(6MfyqI$ESHz-1*{CQ}e+5pp?_>$axdEX#q5^qa$gn7vzxn3vuvPS#U@$rcG;i zkrU9@GjDVp+G&0fIi|Ud9zC>9#24^SI%8GEfO*io~AR+WYuHbwCOE37MU-))d z>SNv6^lX5974odNzJ@@onT|Bu?NRs9{<7zC>X(hBeuf6Iz8|<#>#1{K>UDofNlTV! z=Up_D;O;Tb1&$b0FXT@-`Lty0_f=~|wn3w1etc714P4-O`Mxb$AA_to4}8U?fa;#a zSk&D)4Td?~u-WMIqMC(ye6im9hFJhVyvf+e~7CFX`NXOVawrZI~e7ql4;qPI!^2zDUAyNdu>R{Wd1;@7@w>}6m^ zVFpx$TZ<&&9Eso^y@A*bNAR;J14Sl35dSUawe{GM4>n-@a7)b|9>-wBG7;A$FjJUPi~ardeB>%BWDK!`iMm?C{*7>7!-q(YAo@nIMgL=Q<*E29&g!NhmO) zd7LNPUSVIR>#y^vX0g_;#M+{VoLJ7O66Wf@{=QJZ@9;{HVQ`7i?WA;1&MqRiY)EcP zHag+KGQGZN^+jE_idBB5-eLO3*fBEE&TsW3b@){X$G(^~WqVa3J;m%_AH5_`5ztGT zv~hn{^J(s{PRTgDde`gsm827mZXolrY-=h;O3a(59bpy%b_nA)Ms{onA)S*OEN-D! zOK%l(K|6}dv2zNk*rv_YOc2v_Lslv4H{J;;>(%EP{!g<*`MMTQ?xnXY#5(k_Iz3GP z%NCCnVZ|^ExTHfQv-a}3dY18l3~uTG#t&H5bwJ+ZdEuB}E~zmqH6Gv>5J(cZ&C}$^IXNs8wyZXu) za%-Ms5mh_c;X1xuRvV!BpD+S8xY9oGvy4wvg>}4JyR`IuqqTichzup{U1L-A`n&TG z1(+Djx4`UE<(&$Q<+*T*+`>mb6=;8J19=$nNc3-VL&J1X%5dE0=Y;{2-hS&fNgGEs zxx<&9C1FHVFSuM)G6*4bc?_ym!YN_6;?y`&3J<$qUhZ8Z&7wRtbVtEgfPm-_kLz21 zf0C)rC6gxp^29~8mo!~+M^Ss!k^h7Vb1Rj*0Nl z*m|`{!_xgH)HChD^6cU=KKf5Txh~0XSRdb7u~`Ur4vpefTJf5<(rqVHK@rbJnU72m zCX@G38d8qdSOurJC4e-Njg@<*6JIAkFzzF4Ox)6<4n*;y3+I;P&50?zZjCQa&M6<5 z0@7*RTS+A_!T#Tky04Cqto{!gH`!vwoGK3Y*u=s#fGB-c0aYN07iFm**g~n9Vy&^H zf*5}=8h5em^lo-e;P<%ojWIYuyCv0SMKcD#UYC4Gd(u2I&iQd$VTBxJYiGhSQW+YX ze~gY<&J&QMs^aoJ?~6?AFmibg!Zpv8!Qj&CO=5%opFY@a$|_Le68gYtLy!n z6_Q_be4UO$V$)i@_nHNn75WC93BcxQ9R03MxkbQ5GO)ujYqD`5@Vy}fV&|{9rZJzZvA)JXu z<{Z7sP$~E>zTnu28Xhy_)61wBc0DR-6K}kQM(zohTDYHw)HLtnaGWmYNulm@ATCGI(JEb(WML>94R?hz-TW^xrS0D^yl1)PdJciJ^gR84cKXmEw(> z^pkQpWiQl2-`A0Dy}v4KmG8ox(ur$RxdC}>U^;S~_8_4xauUQ*s)stkiAg}>dZ99q zT>6P;(A}qD`Z4EG;*onyls{M;drCAwwX4x}n)FI0jzyuBO^ zjM)h{)N_f($9VuzmXY6zhOvgVo+Q-PuMs#CIR6NnYD^F+sk-O%HBbL7W{4se6-1Th zRZ;q&x)24D&fDSci@z5j3=DGz8kp7uShG7?C}PN1o-YywY6KogkuS>9)s+251`oGt z-K|o4IZt-bTWyF!V>$LAb4DPP=KH#wmj87J2{|JNVN5gs*FmT8U6t8UUshgz05F>s M!uIMj_$};z0V!-a0RR91 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_10_thumb.png b/2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_10_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..80b66ccdc3ca36e85986239f8b569fbc51cab44f GIT binary patch literal 14836 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 ap#KNiFgu9bn}jL=00004h-JO^FIe+2QT=Qjr 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 yTHz7uWeiAV{8x&pMP?$^%DP(X=l@C=N8LWceT literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_11_thumb.png b/2024-12-12-22:00/poodle_trunk_parallel/c_pixeldata_0_11_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..26c29bf19611c58b6746eca286f9231f3ba0cb0b GIT binary patch literal 15442 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

    4=A_uB5gKKyCOZl zshV0n*~3YC0|j$R-Q^?}5SgSd3~W``amNTIko^KC{7- z_)mV2yparXpxc?YsaX;{W?=;Nbliq<17=BqBPvse;q!~l$^6dMj;;GzHEz4xH7L8| z4t*$I^)GEW3L54>cht>&9e{(V)Y&3Sux1urHf_2b6`VFm1aQn2DB9YUY?+c_@6U%k z&S8}D4&2LK8_rN{7Ock5Jq15TAz;&(sK`U+)dKW8wVGotHniJRD$tImdz~YH)`;4{ zf1-@QOPub++vaAj{%z3Vaft{+mR3A0&wqNc@%t2bydCq*+pR!PsW%Y8)tAli~$Oo4X}Z2~a4Sc$`}ueu(S#_en`Bcfa0~(M1nN zAJ0iX_XlMRDCBCjTwKJ2b&E2{)rtOs;OV-Xrjxg z%c$>{xoudj;W{3M>~h?MolsQp--d`IDEt9s%bBC__I`caZ>^py zz!r~H-Uns-5irSA{~*vun|#y!G8dsU&X2&{jG~I#h| zm(O0e^As}LcSXZv6|YCw4F1e~e@c?TK&VWi{64?8JXoc7H2u#}=dkYrS`9&rdRk2q z?;tEqkI$*L;+Eew7Oja(?J^3Ef}i{_2v?x&`MUUxxC!9JMkTU#4M04a77da@X4^sO z54AIh*%rsoPfXm?;D9HOPJ-q5va^q_7g|MdHA|7P|s9BN@>^&A>{`x5-Dh0#W{(T;W1gwOWjy}{=< z{#coYZH6#4st;F*1@jj)%0-i1IsjWd`rKE;yRiXwF~OA}7*jJALx8X@fg2whTKjmZ z16K6GPB@Kz4yib`ZiZg_@}H4gnvy*#1UY#MaA?N7m8MYJQ++b?-7fBfRU z(WRiYyP7P}PIX@{9$)znqkot^AF$yhe7Z0E1_QyyWFQo~RnSD(#^hp+%Sp+6s}GOw zOG2u+FkoavE=#O82%xMyo)OspLjsmeg4vN&v#!w+?Qlvpl-3wvx2z93=(uD^QECX} zw7t#1mM+QY?Zf;&^(0R3wC%9_$HaZtR=mph3GCJdUQmWpgcUN5bAWa%ZdZIOrP#TVJqGC`VBAh--yXzn zbo8A#Th+R@M4Cc<_s>$XCexYQnHv^8VEIpE3=*$vpE(5^Vu1k#R$jpvVzp;{oS9?W zvIA_vxwEZcm0vVU;K#ePLf2n~uE?U<2#?zYkQ7j3vR4-a!+>?;rHlY(G7JA^*~XwT4Sm3%*se zq~pH7v33kr;GbYZC>+CHr<^@99HXPFhN0iub518IC)|;TD@CD=f%sgr#o;R3MdC;} z0ShOQd$Hfo+mgQ~Luhqm$fj!vm5l!EpwJG7#DpVvfT8o6``Mw?kCr-_*D({RYFn@( z|7`@>u!mNI$C1|&_Ul(+062)$%*o?k^WLeN-hyh6$3qP|4J*s-=?b}xG!ECsFZU)p zB6$2Gfm05v0Er6=*DwF<4eca(>omJHo2kZNwq3aTA^1{=13f2j|6nwROP5+Kr`7@= z9bVYY#R83tmTk!?W~y;tA7)y}w%%Zs_R#cSW$uN-7swwnywb(OUeruS`0i>3iZB2> z>R`m~4VIP*`I*_!nk?=?)|dRNgEbWjo_~A?$lh$UHgVzh$9Y?8Y*qg*$?`)bEzURv zdLRF3z!7}u^ri&mYKIe|>la$SqYVF*R1#r#xb>L7+1^7joIG06`Y z9&&4J zIMV$(PTPioIP*WYuX{w&`v@8l$VkKm02phfJ-tns7)%(YEuEHK-%;362AVg%d z?@w~LX%l*u?O`H*fZQc0dYw-kp9Xi6mHQ4Nh1AXLEuGD{ylg;Ub5s2{ZN|Qqs;ig* zWmY!z3{39H>oHvv|He&=e9zB4uScLc8HIRfiVK|5F^Pgtzl{M)BNkg6D`!MSc!o;8 z;}=}jaI5gh+L1F8F%650Qvj5K@kcgN&18;PKt#k(OQcIJG|=0q^}_Cva!^pcmdCw1 z9_N6y*_PmH%i&?Z=e@dX#*XM>VI0&D1PXg;1@an-n@dqLVLQ~9?E$OaB#}`uO02Rg zr7%X*LPSj*qub2@z))7$@Ve51#hm2rpb-&V30N6=)7eQm$!pFapLF8~(^q z$WaI&6|dJB87)#KdpIK@3r>0XfpQig^Z^ca4@t8EQo(w5h8Y=%CxoQYZpeNpZVf4F z0}6?WJ)sA0p1U6xpHsMFT1Jg`utI-Iomv^P>YKlRvu&X!Q~X=ChKhG|{v_mERb`9Em*2qlc{At^9>bLWwhDZv#VW*j2_%sag$m++? z4I$2lNvYy$nCcY>SGdCOFSNw_4)x~9vgux3`z>13e33IP(ybzTH|>`yUZ|;h`?Jw55bJtv+}GcrH9QWj#@ufXm4b(e zX}Hdv#?U{7TAti&$KwJQ4n<5SOUPL({oGzpv@L9-gIy3n?Eo+PGOLM6U0asu%6v!T z-)Is~Vor)Nh~~OW(3h}K?Y4c@&y>(33<<$w2Y^5!DC)nM((rhKsMdglghPU!S2dX- zol4KoseaMS9i6p>`E_3|!y2r58TjcPTqo|`1G$+c6Wl-nzq5yfPI7m1rqC9QzzJ!05sGotX6|4YxmA1MnE%`()YMTdB%u7TD=s zr4kbXm)epm@bepmOzPD@s@GUmKx0vUmu}z_(%9IsiVElaN=)0 zMDbuTkX*{We|gFNsV92xgTGYt_e4N4cYsC{#X*-Q|0=G=KGTmY7^U1}N~vge;!-wc zq<}8n1Iu}4dPstjyA6E>pYJ1q^6Qc}Bz&&B`_OEt(V7hKMJetz(9#-!QDNb?$Daiy z{Rfa_MZ=fg45PJY)ZyU)Eu*-l(oS*KH|Mnj|Uw=9O^;a+U;Pp|^lO%!i?F z!TZOitxy}c4PdxIsWe6umilDLj2YxX+lbw$Uz>n5Dl9Z$6cHJ&K$%P-U*k&(P5(%; zso6EO;&Q{Kks_)W&Wez5V~}UYk77e)oOtiMylfN~=5C*;@&KY|<)9+eE8)M^m`n2G1Y$eg!TLYBe zGT@6wkAuvst&y@#wO`&()|4ycE&c(~Uu}E6_*`CbiT_mFb3Jdl-#-C(X~v)BfBe## z%`BUPYV@o+bqM)`CCFBU;tFU8Aj6c|(oAmfBg%j=#dQ$H)@;5g39|MNWe$=D@Ug;{ zRT^3~wktP7zqGsas_A*%%OH>uR2=Ajde8kFZS8|^F_flkBYMx_K4f9avaImV1O73i zza8qv$VG7=4gk`6_?^SdC#Y4R%acoGkJmIgKKD)G-Aw+X6DgXKYtXsz zff<=mP?U2F!N_Rp)2nI$Kt2mxV*UJ%cxQK9>*2$*y+ha#%f17Jo~9%Q@z7$K4?1rz6T>h{5^Rfrf8`}wVStrixp6tTK~AF|pzP!#ymfjcRSIR5~t6V@b?~2AG){&#T$=c2;*j)DpQp6J2Yr$WCoMLK~^ErRwX?k2@Q++9aV z_d4?x%x#Sa`9qnEFOrgQ_`zMlg|26raTAL(Win-jZm1FL`@6cEATgjlmnvV4=rEEh zV6U+gNtJh8?}oH@%40X2bzVu5zJUzas+Tk>ciglgJShr}#8lvvq7zLRT+0H;`E^@$ ze=mYA>;Ba#lv6=lYZw|AAsANs#b@z*#W0;-JsAmJ4mH2u*$>Q$hQKzo!hHxcaV}M9 z)*aGiYs?kW;cLuv;p1yg*M7;?n64cH$qNr-VYL8ZeES8o5y&`i(`Xo0OA%4NjHNeu zG+0PG7Aw zgPu{nQY~3A{R<2XA+O7Ctp;OZP0s28iy{yzzB=cwVV$s8sBbohf^$D0)i8G#;(RkTe3gi5B>jr_a+#ocl zx^?S&$ou&1KKx9&+f-G$j78>KM6B63PMN&Pi5gf0cmqGiK&aVP*(@QI_IeO|`5cp4 zI1)Xj%tcxT_Um?dKJ~P$TG)82f|8maB@0a$jvz7lrqJ-F2B1H`>(Qv1uufpwawyR=Od6l!j4TPq! zH}9<6{HvR}`~nD1_fnohJ~eiBTAonr0~H9hS`sJEwdvAfD>dr`U+!$WO|gGXK_7 z^WV!(O9+Kg2(CCeNGTk74ar>2>_iJVdhl;fkCRq)r8WGu74?z(Up=!Ts*;YiPsfcA z1D3G~F3&7RIhy4BafyM@VqLl64+Jc=u+^Oc!yoEBdI>?S^-_%~60FRc3z_mMZwt#b z_`8N{4esTy=A8HlDam6-jOqdxkg1`!l`?E}N(5)E+-dnmobiM^h?(lV5rZ&@SREeM zMLukjaRg}3FwoF|ii!%TFDN-e{(fR&Vj?0z!#%&x&_r4q9Z23^XyWIGRp3-=?U0tV zT9xd?#1ay=d8+^8;Y?M;3c{GJ!50i#ZK<_2+MTiXHCiz9mFlNQGsVJVX$&pDwoq^c zBn(vqD5;%2k_Beh{9x^$8T&P&H(t)+u~)#}BflzI!N9FVENO&OWaUp@`n}G2~E)%ESC; z!%-ZGVk}EHY}qSdM%$4ydFL2&dm}ywh@wbI52L{Bw@mxd$@&<8fFj)+pc%8|P`|f( zq>8rfhX7&Y`AH5H7>&)uX*~~jwBE*6Z$6P#Utd2zKmQ{b7UK4Biip)zN<^g3+TFGp z454!*rd2Y^0V)OiQhR%ue46LK7G&hrW{Sh3oWesZNU-7IU3~Hs%zn@$(DM64eQJge z1qj^P_Kt4cSx#6BW8z?9k|WqI)o!>w78r^KvRRr^JIw#iK1Nn<7z8RRc2R?p63 zmnJlfk*iXZw&Q$c)zFaSFqJzZp@g(`RAxa&FhFX0R0$Qp8 z$6-nD>AAr;RHeX(F2>HPLZ8!gmfYAFycF%Z(@KkVLsNfBpve@`$7aBb%6Dtg25tP-zMCc zXp?1TV-v?^z~YUc=4cIQ!%JM_8ee!Mi6Zc?%~DusXlcoRAHXeWB044}htIus!FsT! zv(`4@TpZk_SITt$5I5W1OQmq(Zgrc$@MC-PCu6kM5;-n*W11SB`vhaKxNn|i-;L&x zYCMH-BB{9F>v;=!0~2sN0FLI$r_gV&^m}qgl(vinC>0JtPToI7ZlP#Meh83ROqm0b z$`sTg4pQk>I`OyHdAi=v3rN3FP+=*w8X=qZQ&$oUQa7p6?jX<{Cm}Eiy&@^X59<;k&QL-oImXc}>S)wvA0yL_x2P84<;GD3U zV%8o`i16~otrrJy+)7V1n(>rz+g~GX-6S2C?w(!`?O|ifkrHk=^=Q6`DMLM-w`}G4 z+(;WPRI2xfAw%Wd1OyHbOBr6Qw~2M$q~=ym=a{px<_G#-FcHuUiDP=I;3 z*jQ8A-hZ*aBlC9+_*uKYNeayoSk3bDb~rHx7wUo&8I0_6Wj;?}m6rd7`f$n__0iTa zc!0BmH_&`XyFtNdRIMzEF5+j%w~8kY1MJe@?2CP&>M9T|SLo;wQ8!Qd5~$3SVb^;L z4<*uaxs~Gu`@5wU)Q2nt%EvBJH^PvG!ML`I8R=D4oWZIYtcj8O@BKxX-(c`i3Hy;` zDs+egVW^cNL{Yc>uxJv!>&@ za;V33XVip@49hg4iy=#0U0pS`6fv3DPuqC;l4cSYI>eu7Xgf691D(d>powZd#IIOo zedV`@Rk~(k&^B98M{kg0iWTl02ge&e>p8Ov(hyPK=pIh%x)riH?Lgz1J=?v(*z`&~ z16>zJYMtJX`X{v#x$;*Y?vd*mEL?MBov|Cr$H*vz)(}&otL7%F>}7H!%n3h&wc0gS zsBz-}^ECR+n1QV|`7`B7n`#P7lVKBq#YFFm4UpzvS8qvVwQXKhhZ{|Zn#$|CMFP5q^$Uf1*+V2M7hhRP+#9p39X%1 zT1DPR$Hgf~OT!}~X7jn*@2V;yf9zw3`Z;Oo>aI^0infnulI_Th{PfsZOCTA~l{F;? z_xZ?p4%-2%zdQ>2wtGjh?KH#wUed(>5mdYY?WOTIl{cOWU|{t0~P-#fyXj zWK?b#FZ%3GhwWh*w2UKgr#yI-h>hA;d#eKD7+aM{>-2?I`GxN0s1#Fl@K5F7id;cE`+YoHZ12Sj(lq)6i;{xHFhGS^sV+~YpoH4% zuE*TuSjCJXwlPqiXu5`gPI0cCRCepRnnW=Q^0NE$;}Q%d8G^nq!--_&iur=p^VDrG z+u`43?q=CT!opCTmmr4WVzS347{uTCAixOWe$2+~*CFFG7VI#A=XL@8w2R273!s)= z;rs&u%VG&98ejzOFRv0~pe5LJZoXn&{sIVH&wZ=a1+h*S z1V-WFNblqC?8QUO&bE4`j-@XMaFret!-{`}5JRVNUGB$$jWOM)mWVaK!vO+JaQX7C zF*1l@9S~Fpa`Q&#t>mE4rFHwW?yI-P&4ow*ZtZn4J>MW`2C&c8Ivk*<`yDJ{8$esm zhSW13AV&cPZizT!cKR38f-Yd?6lsTnO;du|r(fiJLAWd2YCi~he4ZSHy<&QJc_G78 zX$kwpYkCBPTF~(9W_JG>6yGTYFfsw|ssYm(<)(+hsDjk^Q?0*%1yk>j_-j@9-jmCm z9jZ*aTooCwZs!I+s5x@q%|_?`45`|EAN2V+ov7w)j#FSK9r@#%Qa2E2*`VAaCwFFDaM zaJdtBoFih?plICAl;*z3noA{oDRR-JV1u9+5*N)|AEFYb%X@!V`xQ7_Dx1&ejw0o7 zh_SZm`3}z9YS?Q^84UrU(da~Y8bEl)JvtNr1Sdsy zPOBOC&vikI-0)~xH>+ZalhS=2M{}l@kk7qRt*{-xG>%3$!)u;S>W4E9UmChP{q0s2Q`+#{(Au z2cy_F+Q?L+7J9icRKOe1^_lmFJpgYWXWY<`TGVX(RZ0S{Yuy8wJu#*Q1b#KSVB~cG zvmoAM3DvQ`K_O>-V{HZryDH9Io77KO14yg&sRd%S|N2btoK|~m4blr^34Rco0I6>A zDR>;;xRLQkb=un21lCcb+v+g12@Pp3JFfZ=!MZlp0Bl%T*d&8G!jaR%89s<(bh|W} zN<5qgjg9*G#cxe(8G)EJiN|>!VmI3DC}GT7Ts1L~o=3V40pLs9n69|0VvcALNR{WY zJEtfFv%9zVrCneN()iKHpv{S4%U@`zot3RPkqXgwZ#|6^ll+?zw>K7|$q+imo@aLtU@udiCBG^%!x#thVfbbas_oV7X~a~yv519t^A5? zh%qdYPeM$Lt=$F=sfWN^`t9ES`>ZWI!-eBFzo(T3iv**bw%+K$eV|O*-TLj>3KD)= zJ7uhVb~^_?=M`Fujm~iAp`JV71pJzT+D+!TKqd4r70IYI!t)k+SD0AZ20}i|8Ic;C znX2?vD^oZ}cf$1CB2AdI4$+@^YcZ_$pC6Ci|7`$N$8y5=>P6X1YuH@iWtWZ5@8XL% zI%dNjK$DFx+o_qo4H_QEY*(yI?z)4Wb}7ax0=fxqVn?Zw%bp3Xxp;%oO}Z%PY*C_m zAcsdx@)O>`<<8Q4e7m;2gQ3s});TKS%&W;TbJB%n`^JeixfJ8nHGHLuF&Q#@&WGp~ z$w19IU>t`FbjjG$wMli;_qA{*ar5-!%TwE9iuddJ<2okM*LM|y6XvSyYL-+FryG>8r(v+-&Um%)>%wm9NU(xUBpi;oZgnzG`bwM_y z)mPd1Ml!TVrmd8ZvZETz(#Cqr|QURUA?YLW-t`GTgcYG@s2-zb`rT9_q<+@$5 zHzZW6qwf1ga1-kqf5ysNs*i+QRL0Lf<o-_OK^N-<{p!%`-#77;qRswje7&GKVJK=K(iaqtyY!lb0 zxln%A7fD4aI3I5~JYm_RMd*ix{kQgS!uVQ{vgMMFmlx075ca6IEG6wk5m6^- zjW9M!#l|;l={tJ@|LAlfy)V@o#aa=m=#;?Y`bv|9bJxt&9V)kan^S7COnW%3n&r)= zH!wfRk|iM*D7!R4t>6Bhbgx3qW)u{9Ca>#p^<%Z!?9skjV>ET|^8>ZVz8vc>z1D67 zhPN>m{>oYd%$StKq-mMZhdG+ypepN^S^{%1`e730y7tj$p(Lo7F#Ehfpz-yc&$t!T zm7hK!DH^*Y%49&BgDqzVl#Xn#sB)>zh zbG?QSa7$U)zresl(CzZ^RMd_|7Oc{_AK4prX?TKy^vy67IPE@99o&M(j~-4m6#SCc9cv zEgB;i0ONdxiLL*37fa(K`t3Gs_T9M!JPiC-d<;=3b6o^(<{D-DR-7+99tpu2CmrOZ zyqP1(8RQ@{f<1BumZZd{jC-7T9)~{#gFjHP$~|Ccabgz&i>*}i{P3c!5^4wg{#b!s ze@GhxkvAm+#ztpaWr~_>WD;NT$4ugP9Hu*XzMz0d;F0KfOcSYq>c za2<(bwQ2Vc)XG3Pj0~C`ISab43Hn1)E0u=~JYK>6QWZTticAKuepPzy;D)g$xQ-@T zd(_S$&wUErBmv!h6I1b@cR4MOxrGLw7J**{eEmqMTCn~e?9 zk5adDk+M|zv5c}hmPd53$KsVL8zhs#8tS;`)D|u@cD_oL@@HUwgqDl?_5tiPG}l_| zCVDQ%PpfB%ooM^P6Pb>k<*ZmMAi?IzzSuFcGBf(F$Rm==bIEh)26n@q^DlYJPG0Z& zYlH*gk$#=~oUb-sXRe`lU2<}B$Ri6dhIb;a)$)dHJF?y?ZppM=3fbxO6)h){0UxL? z)-d$P@+mrg*lVJJ&(lZ=7zR-?N=NAZhs^0TNKVG7SaYg-5LK})o^gy z$&!E0df6Wn9?JfXe|C6C$U1SzWk@b{^G_+y;zp~F0Ke8}YRuRL5m`3E>SOE8P{WXF z6mLys(Zpd+6~#Xdd^7zwn%kQpi}tQV^R8V3e$TF7975<$JEQ91p#ALh_*^z7iwNeW z)>_ALLecMdPu_wDxilid-Rl~)>8xFmILJEV+p%1yKAX4q1IH_#{ahv)eErYkH@Y+4 zWJ_GeH&V#%DeJ~1&jV-CT^6ISj)bVsm-}EXU9)(^O5e$I^RRdXPokfiV&o8cKla(M zZR%%XkM86C*}A@BI9EFTBd&loyIz09#JJ<*^EeFxnHdpwx@-*lukk?KCP`~bB@lCJ z`{+mc8{ZUH-+5M1!qJh3dx}0V6~(>0__R&)gGB}Nb)`H1Jz#$VT2yE0{Qdy1CBgmR zwcELqtdj_X2j#VYNUYX9Z>YV)xC1y|r2mVBzEHDvH{Ri3opnetcMK zbgVWO7Y&h!>hma0EFx~9A0#rqz{;XA=z6oN z1|LzVG6|W=E*enb1A36a7slhjyAf9M!NL>m56EOo`~W`wHr&Qgzn)` z(fqRNZCztzPR=~l?hYpGsp@#a`UR0`YMw|jX2xk*fJc2%c&GA%)jr1}Emk_2KU1!) zAD0baK506JrH=V?rsJC( z)WIXpY;U|PU_2(n0ZWLiVM-zHX-%BAz}a(LTqhk@SF$0)2il3(&X1I|GK7gzF(5T9 zGg;OY8MQT1aLxd^iJK^$25w?Z#U58u;t2Uxzko{QceyJgl-C_9n?iv;vYQ#xq`x-0 zHcD;7Yrp2IaTNs)q>IM028R=^fBFp#d{q}sjejUjN{MH5pOV>{63`vSp)>V?xYVpr zd8la#z(}Q4=iNDHb#o3k{m(r$(X@4h!D%=8a^IF7FCkIM@-*9yR5P%PVY?fQ!rvXp z)&pjjuRGyHknb<|Y@7G<*L&r(nzh>x3AZaN8O%E%Ooy%7K-~1`>%C0&k-0mwz3xx- zF{S7SX5V~+t5B)oBbZEaOZ^b3<~b=@D#8{xpvuOn!YH84WFafey$dXmEOP5r9<@`Cf=+n1&>{<(2^?ZjQTZ#yY8D_KEpHTa|{ zo>{S%4|q#4&u<+%^|o@xvsyqrKL1^+;wEyT*6daF+V6ZoO#{yqlP-ulyWS3>N4CE8 z#fh|Ok7m3_{um>+%wr0XCXaFS+`bf+n33n|L`5SXc;Hx013??ErE0foSfXO~ z`8OUth+L^crF3s79!fTi{`qK@VjIleQXmlWGbCs|(7#=<;bGM3F@=+y77Y%Xo!%el z^fS==hHrk;_F?@A(egUy*<~XNV9Mq9JmVF&mf!Mb0@Ji5p$$xMA=tJ5qOC2L(bMXf zr$GwKOePx1ETH#(j4GbtY(bfsy^JYW|76vwiHJd@sK)L>-DG}1AyRjqfg=&8cFFM_ zqsU3FM%RTJVT626mZ}(6Al3?K7jN-KPI-`(%$zO8a;$B7ZuU#yBoeY|_#cpCk72hL zZ>#27iOv60U{qnM^t5ETLF9+#)@JrDB zDhDTtN$=M`;>zJyT&a^V2uEdkKGkc@6O6tqKAjvJ>;r3cm3dv-a5%@=@}_0|fK_*Q zF0P06Xdn6B@htJO+AWY23o`@jylO2qi!Adnld;KDp4ZnmSzq9<{XCHKqd0t?Ui7nF9H#R>;&AVZGb`Qi>( zfItQh9S7QP<8v=MH97IRUN1n0`COYea^0PVy+IyXc&}6n`#@3FzVq~=ujK6XpQqz; z60s^|^i+!GPYxW{i{OIM2I+8s(ESd3MJ6OTAR2&nl0wiUB?0`(mNmnw?*@rsy9{LW z<7|pnB2VaHbXn=o+r{*cOz%1XGm&v}wuByuSdTkpEP7&AbQASZ+`KG;12#knUsQWG zdtwQ&UVTtpk!wscfDY0zHt!gJt%E%-;dAtgRMN*Yh$znk&NHyb6h15RG_eBjYh{Ws z`uh3+RqZ+q_n8(0L+!g*hnxRgd0c6Ed37+Ut9q-8O{f;38a>{N7Vij4G)_3uiY?bP z#3d(0y$=GpJ(wdS>G{OtZ>qWF>k#Pq?j6}=E_aJ-ayr2(aM$O@YrN2h7D$(kQc(A? zA64M8+yB{p3&L(HNBd=*&A1<%K?f5Lk9K5=JE{|3tr^*=E(Es;98&I+p^jiIH? zMCo_L8S%C%2h5Q)wGqCL$F=a*$hu;hsh16(&`W;v^u6l+53s`R%bA>@R=YV`US-aKbki^TVIxH8Zb_JTT)E z&=WT{{i$*5_n=*?uWqy{68c--PFtiu%uevujKSzRl0qZRIr%kz(xpP1?J5gW)H)0) zD=UYtH&Ruw8fI*aY6`o&HG-LWdaZ(Un5VVE<9hdSDxXR3-yeEcOd=wthx+6BiuRX# zs4iJqDDZG1)(U09BTZth;|KjtpT-?NfZ65u3GT(3}iDErIbx618##L^gk9ULTZwbUk&}fbW zW{Ka#=jp*>-!vSF{vNmyVKkD)U)4RR#1Vb=O^hb;8&0Lu?Ud2NfrrmK3SCBSlC)Sa zZxCXLy>pqJ({4{oV_0YoL1)s3uGf0H*Nk)6r`3#oi$bI4c!Y}0sKNXjYgUc0O}~ zDVzRury7NQh~ITA9B!I4@ln1ank=x?%9$A1k3-2jV22d%+<{r@xBX@1`TbG%U&#O& z9zJVGD>nr{{OQ<-a&ZQ)I*cKuA|-894AShZS~D|Q@SV$F-@ zX~7P*zqv|0C^mE6wDv`#X5I-CT*_!NdV?1TDaog=qysoEXZmx`*CvMKJ-ql1Q7{nR z-fpJ`qrTyDSf|MOWF#fcPUxZA)A#=|9ZA{*TXC~ZFH>Gl)RL*T{`^L2X@{FI7})O3 zgGrKzHD2ddf7)s&&hn|z<&jB+^vHkYs)vvwm4-yuZ-}BUGG|rIqI8J00p9rDK~B;pVo~Yb3EqWEOUZ~7;Fo;j@~85$2q)%WbqCk9Yb@kxm#1tg1IivwX>l% z)S?z_YtzdPVN-@-M)Dyz2vH=Irf2j^{)?fnNS28n$Eu|NF_IgrD17 z)vPw2s1b+A1zG_X2~9?~lUe3c058-yGk-P7(5BC#zALDYo-Fm zc%uELT$f)xvz>R4VCxB&;ZPi5EIt>kMxFi!%Mc(I>^eVQ+!@fEcgV~hwqp`G#+}Sp z{QMZtKBP&<70j`klTx&}v;60}cVh-V|0(nB{`2)-v#h%t`$(+3>kj5+&Yu|S3kzHX zvB=_eEU65vfV^o@b?RE)L#!2&T0!3&|2ua)RKDM6vt6|g3^gGN!O<~klsj!>M4b5| zed@QAq2CcoF@@Aus~ie>`wc^_9%$}EQMWni->u+CZZm&L8N!L~MzHBiUte8%vWH9?D^+< z8Zep5S6)&Q5)v|=&4r4??XbPx=1fLPTB3vewcJG-U!?iBw^nNc1k}8nScpZ*>|#wG z1wuMKgp`7YpB311v8fszQtOvqd*BgVM|VA4<%7a*ae(pfwA18xs?{ z+Mv5jI+@Zb((1xxe{RRw7q2EN|8fcoH7x$U5&pcF2BS7gAMKN{U!eU;LzGiMDNESxYi)Ue;rGQ z3yFf^rTq^C06XYx&R72ioFT!(XM#O>pC9j~PG*0-Q*GHQYL1uU_f5@qclVkm{->R@ ze2c0J_b?&d5>g^aH_|bLbax|24UB|z=K#_n!XTX@(mm8r0@B?rN|#6t&Dp-^&p7A0 z_SgO8x%OV`S*$&<)(0j>Lt+D7_E138OzwQ zY;5%Qb6yu0lTfMTNdfixkuXy^4CAB)4XE)ZpPcr4m9|9+?R`NOjH6N5CX;JkfwsZP zLLZ@jd$U&IcyFQ^t4MRI+`WhbEPfT2ziIyt^YKHH(8Wkz<)$wJyTJ0ZQbAhLk5Kg4 zDZjeYwq9gmp+3sH6;Z_`y8&WZIaJezd<#k2Y^0vn->cuLT!Tr{r_66v+1L^qa?b?| zRU`LD?qxiDG4;Ulc=P&S3GJIHC9k`Wl4G%@e-+7~CE%jsrMoQgV=WX|jG-Nh8VXI-gP%339lX-3e;({;5sF9SRU<0??`(}!0a-_Q(AP>nSI zXnb)^@-cVA;?l6#f%@H3xC-n2rV6!?^|kw~anJX3>2(Q^O@wVEfu6~z+wXKf=z_8B zHzeFSHv@GoAgSKI<@SAOefDZ!)kVeIF?afmO{P!VuZWcC8FGDbvI(sQXtycFQ)l8p zsv{S>EwK}PkW`CFxA!a#adUr&?4dwT*mx^h^PSIGO*(o8^8A-J_R1$U0)9{lz4Y<1h%pzOfy5=6z!` ztm?HM4636KUpt3eYcLB%5YxavaM2FPaL&m;eO8lCk8%IkMX9a*5F-p{t(%Z_Y$5+g z6yan8dtdB^E5JA1-;`dqT0&!i3XkMz>6009@;s}zFE;?w`G%sRFErqUgxuXhCPIJr z&sr~S4SVd9y?du#wlt9#L=@mZISiHaY!1Z$pw;tV+pn}``!kBIIw*Rstele0sN-chnV_No2bN z$|SP3$F2On08gJQaMCFDioQh-U3#t$ObMT_eJ`9d4tFz3^1C8>^h=Mb_8H&USUAf4 z5I`f{*P#VDqh)l^VUH0}T5ZwW_jj)(o>m2U9C%w<7LfYsAf3`dmlUG@ zds`4Itxgc8PY;{AA1YpJ4|rOyQT<(J9y*siCmV$ydCoWSl$kD z9qLp+kUmYWsDwB3BS{*K!y+?xtUFx4vMkm;@kNO&MqS-iY&HJ?L^cJ?mGW)-qBZQ_ zr9W*uEtf!}hRssoHZPdHCg)Ir5g*wP=)eJVb}a2rIzkXtJhbxHnj0~v2%0u z`YviwK57#uHkotU#g(X_?aZPSrA-jMwQ!ON;P_>UyN8P+>(92v>LbFeh{D5amVx0O z1@}U2IN|e}Ws`bE15*Hpgs@@Y62BPljd6%DrWy+D!n!DR>F-Dis)T_1T0d~->~Y!I zQVq-Ec>VlHYeP3v88;oXI#y+Vz6&7uecyle4e^;)GO^kV#LGomHtHfoZTjoHE8Xuh zg?|5h?Ii3ZTxDKlAxTJUsT=Nq!R8u@UI{TsEv(zTu%?J2u>*Q8B@8a(rz*5V+Sk|= zT(5fLt>VcY8F0zJx>8!vEbbtv7!hiST;t1%ErSqa5RViKFDEcSOvejpQB#&<7?{kRetJ6AQD%s5j` z_|*a{{EV?1g@lbCJ&HP`5HucBFw(4K-BlaV-(?reN+j#6$TQHA&2m@f?YwN@$TJ+#~S zHt86^Ovc9pNsn1+lOz4W@306hqG(*()SwZjYK6U4G$=z8a(qe|JsR25eR;GmX1(jW zAzLiB!s6y=WLj;frIpELlqZ|nrY=XR3By1%7Cx6;fi@^q4!D!Ra}?tA_gx+Wfq9uu z25I&c>@Ak`DiFMF?-XpIvawkI-Ji^^z$x9kydG+1X>-7L!DoG}IM1-nM>4DI8_qDR z&wMknKjN1&us;&?T)R(v1vn|@aLaaMXFO~PfCj?XPo0Iz#N6n%T}d+m1k_T=Y-z|d zCu?yf4Nk$8wJ?(u?0u-hG>DDaa^CsS2RyYlGu73e&5qA1O|2TO>ucQ@S6fSuiq&uk z`raFvq=5h<4c;?j>E?a6M3FBA>7uM-qfTik)eskwIQ$m|o}%g9FFEkio;;1@*Uz46 zYmvx4A#ftLVPmaOTb=hErIa=ar*2zZJ*)bh@jyHq#gFR$4}KHIiS7(w-j<#*zbPi>=|16^gb=4cZwn z7aoH=yibXM^^H8Zk0Ucx8urCjMK$tiE0lncmS4lwhWf>3KEbj=G ztKFjg@MyyOdr9#(i1Z0Gkw}&evkRdl+O|? zX4Lg{FVA>Cpn_5;`|e;EGTh{H@`K0QphCGomW)f;lAcBw$OOS_FM+74-=ZqT&(6;% zWl|%5ABhb!Qk!6xPxiW1J)454go9D|EJLZaxE4Q~F{M4?kl==x1cYcb`60>`2@buT zgf09&uxO-S!d*&&0vg-x2!P4cb*Zi{r9|58pPeD{!oui;t?w9sxT6>Qs|F)?La%)A zJ#0vykO|Nz#a@6d#%|YcCi*{uaoL}Cy8Q&aJv#BG-MFlplLh3CfJVpWt@vJst+=aT z(W3aA`KGn%hlxUk+C@><(61Wo`q(9UF|K>MFk=4)i?KVI3nkxs&i_>fkj4?%Em&C7 z2spiP(}-R|=WD`A4oIJlC)CUKt3VrriGJrbVpX+j?El-Yx^+h^AZy9})lLO}R_@|(;a+J$*b{b|n<1nf;K3Z6w4o1b}aeL z2%M|$9QAM#D_>ivXFaC6mo!3<-;Kv;H!B>-ZWjz93``5q2(dI-`x7VgQH5y$$;cNR zo@W$z0hbeq7TgHYoC*t#Mu%*v(XHX!{`zbLn?l~t7&NjPD~a9$OhICeV{0Q$(-=I5 zzSiUf^Ihv67T(Wwf~ne^hFFO*XkfG~5U>*Go&#r=xHl`h{`-$p*!McD*(X720xoxq0%>rmQ_^H^l4>HPStG1h>JgKrR(nI zuw%3lg(BBWoJ^!{qNj@e^7$VB_<*CSVc*xsEX9p}2{k$6)zV1=TTo^?q1f!uO zNJ-rLtA|l5TKnE}RY=Iq@L@$tdaC*<8b$9@PV}4-exWpDo5h~*WWpVS83Iyl1GjXU zLg*i3Lcp_(CX~oY>-|uNM>NQ3gFky6D$E&6YZ5*$^7|qgTs6U>F%!yHm#@N}ac}%~MALY+LPCU=|CHxZa}hVtG8N7E2nrZQt%eiR(M1C!)xgd5w$t^oqKA zwkVe@*|hf9)}Cf5`c;FK+3-^Cd4n}_tJ9J;FIX# z`Fv1X!j%`ST4}m)#35_bSQjGQ-F>(^ywNjL+OyXF1gkzc2#$d{Us0g;4DhfCq(}wn z_X&T4PCg~e5lbOqJiT2sYtXK06HR$pGh4p5N>dJ-(FfnOdUkJFADM1>$L<|0Bwrjz zuAi+ld^D>(mB`9^=)9_b6gnHeL(~cuLx=RM6dRXjs+1(@(|-c;KTVI)bZ3QfiUx>^ zT5Xy$WI8!2*)p9r;n%Or;PqB=)Iw-8%@jDMv3+K6^*&8q zJybx*;?DbOvR=@|sluKh9>H!n5|E^>&M~k=F0(VX_`oC-|6H9h79g(8VktJb8QyBJ ztlyQA`mf48{3#J`JkVy1rq4$upq>H(j#(2=AaYs44W$a))#Y#g6e3rZTHI$URF0Nr zO3~Sb#&RnS4bxivN?&J)Xn{92n=%%R?J~mTs}3aA>~ceLhhU}V%k@gSA7rKv1uEeV z#ews4m8eS%gIlH{N{-h7JVkET`WY6LLx?k?aYi||(-6e9EQ~{^2(!+j{oCZg)u5+J z%BoFS@7!qSmQGH|0= zN3?5D@5?cP zg0~0ofjioiaW&snt+D0dThQseZn3`ZYeAF-r&8foALIxXDfNDkun}RA^PB%Pp3F5j zUFe{{@;vq)*RoKaoWf>-X7US69=&(3*P=4|OPlMWE)sGqnjC0D=FRWUNt2`#rw0M< zL%%Y%!s!KV{OYlJ%;jg7HCRzP`;O$J22Knugk-IDrB#*QBVhEFW7`I?2J2tW^9>7m zl=v*L>Axh6FmPvE4-u|;~hr@0!%Rk>UU}g9C?w@{^eN%cX9cd+2RQh(qMNuY)UZ@@Q&`8`9T|C8??Hxy3_W-b%{zoz*AQU$IbsD4LQgN~uk4HA`%QqGrX88DcfHilX+cSv885+Pf4Lo7SdQ zt=6dZxL-a0zoj)Tk+0DFFZgwT8N~!A*Sj9|IBJ_-iaN z2><{M&`?%1^v~MOFi&JR#`IkWw`rgJnfE&uZ64FC*sii4fOq#Ykp;beYN$SwQlYNM zNE^{TU?-p_6LF`LVYNpR4Kp<0jWB#IihhG2X%HdS!oSZf{_zIcJoa0&&a3Ts=ugY} zs!b%f33fJhH$7uvZfEE?>uNWLun}~fz!QP$f3Mg!MdB|nlEN64UkL)+tDxY5#E(ts zn7`uN^^m}*S{~v5&J${3o9N5a^mj9RCoc7~hlirtgrlRQvmiOnggeOtmd(Cvo{#Va z1y)BVipb_4G~tV#kyI1T^@ai*(!Pjnom?p&{JYJNwl4OKp1?qQ#bN3^V^#@Z`8Pgz4v~$G@kBW>)N~N z6sQ)~R9B-+C%r~wH_k)eBQtYz9ZegoKD;XEN6!yuOH+3VYd=jY`qAt+GCXWw_ZC@k z)JY|eG@3Zt2|hm-60&M=%Pc6}ool>*@7_SIMa4wY!1&r=8cP&rxBjX1Y3IUx;9g6k zsKA!&i)7b_nGuPRk&&9kwKX;9qBIXb%-&aR85l|S6?qP-r@Zw;(P4F0D=Uy|?W2ITl%oF3TLn3Nd` zSvGaox)vMI0Xxv_rl}9!K54PK$zNQLt;^J;!GIzEn*)yAcbkW6o>Fi5p-z(-k-?Gv z0#+5{B_$=dm~{G9a6LV*GS&wvlPEq3Ig5L+yGpluZ7dl$b)8&V2>Jb<*H8qNPc)Sm zOyS;fGZF4O@3>f>|9ea;d-}8A`C(>eT`xLoBRBM?&yS;xktt_!z^*SFpby=Y6Vtcy z&Z(?CRg+ITd;ROzwa=d~Te+UqZJza<1xbCN_qps0kcmB7G%AI{X)M^$fSbO%F4K21 zlMCE(yx(>qtJuB@rKhmSiblXPRhnsYaJzb7FWoXj!L-4uIW1n8h8`416b``?&xNma z({co?3R<59$jKl69xyXA3;4HLGLrS^fxP^SjCb~?FTND>iK!srcpg}s^HB#mSCjXq z%;3MK-?U_IMn>Uz73DTHEK{6^HQ{{7bS9h}U6fMOO#OasEm?kT6M{fySd-4hx7 z@!3epC`ltrF7klRgC-_!9bm^gF7ipV6Ed_|wKKVUYdyiZV!I3)#AUbg{Ndu?j_>e? zi8_h~ktF1t=OrcArjQ6f3uL2<%-L%4!o_;yw0o3V-P*d|;M67}Uz^bVJu?}|6; zJ45wQ?d{yV*(gO-)yyM}nJ>&547Gki-E6 z0{Y;Sl?+B3%t*~js)=hLH5dC;G5hwfv{jZt3?ghrL4Q%QU(~@NZ~HkLJbQSqSSF5$ zc1f!0PNK)6qzA8hn#W7xdi+G-!P0gAh3wPPfBZKsDEUhB?N-#7uY4niH&@kiUpK#e zVpZ=%-gokiE@UPw4-O*MtVlF{Qe0il@9dCtCk)W*9S~IRw>4g4Y=v2Stwz&!ySB-4 z<&||%Ct4>V7MAu{D$bk9I3eyGURv3Mo|h6zq8cq1uVfClWXG6-G)Ay)+#mq#O}LvK zn(j8{V!zDo`L@(^av@q9ss``TnJ70)?+xKT?98hc$`ncZ^v|NHB#*h@MmXMPg3rK0 z;&$Hea8{1(1~4E_PLkD1y`{DHh{TQkfVydF(e18YCqJ3a zbIK}kLaHJm@2&^2Or|f{G9oE$ z1}We32|QQsL&)#`yj1bw>f`t4_M&BTi0#?>ZMAqAKD-<@h_lcR6ficDlby|PN|pkA zNmQtm-M#8Q#L00PJ)e@90>i^rduuZWuq&gkww{9VvdIODguJcNjn^*<9<^gh%~gC@ z2|nX}!VR(ZuWGFgLt)}5);uQ*vj{g)p<9V`7%BPLyJ@D1mGx{4GlumxyZzsHeW!Q0 z!As{bU_s2cwhHiXsQILy?mh`YJirr48=Ls|%*FUamel3!Qs%DyLTY89S}sv}*?3$% zEV)NZZH(tNh?v2hE10R0YASM2QL>nQr5Rq|fzES^;ASR!N1+n7w=yeLl{={SOL{T* z)ILQ`WLCwG@+sRiJTFg)qwf?*8T+eRTEf@$aYZ=*(L%i`?6S?#@( z_k&x1|1De{C+BPs=|LlaY%WjGA}rA^I3}3KVv>5fUZbtxh(XOjh*CH_+y(|(!~ls@ z)kGfPl!?V`dUs^GcVtvur-8h6jnfL>-F?4rbKRz*`Zsg8W5J|siH~`6zqhRm# zS&X}K&p24#omo@v#esL^?`;}}X`4n`rNt%?F)Turd!L1>RbYEUv!~w866)5qF9s6P zK4Fs&U7OyJzustkI*CHri*n$@t8TyT{__wH5wcZ^R#xCum+>ciLKLYV`+?7j(Y_lx zDi*%jD>g3X%B22LQmBPrpZhje0u=+PD8)l8KaqiN{iZ}Z2tP}k=5CJk$Is~ygIWb`4h7Tnd20%WLcewkM6QxZK_HeiJt+%URf`%vu1@nzUbgl*-<=fN}`=BU>LMK3ZDUBckP z4+^*Rb`){x3IWhI9ny=VdAP$Nz>YYlQn;Sce6WN+#d?9^BN1)XSRO&$Snq9n1Q8B9 zWK$J)tjG?Ate38~RgAAf&3sl>N2_e(^1;$#WS8$ZV_ASa-0sXs4z>L+4U1YtFaETc zfG4)%Y|^yU)vH~xJQJFHckrC;`cM@D$3ntd63+S6hMSUmt&hLC_^E`BCY1DI;nmYN zf9-`G!JpIJ^R`ZDWZGdoFhJ-2dTxG*$h!qh&~|g%1;-sQ&RlN4qsiQE z)|>x6!X(q4jEV`s6_UZ*L}qIJcmZo)IMoY-acc=0?BJaQ5H4gy)J2l+xD|Sx>1E4% zQMPPlP$`a4u`!m9E{Ue;5nt`Sw7b+#TebAXM{e_eEWhXfaT^cyVZgnxoV>d9v#(=U z;pS8mh%D3C$*FETS@9)$)?UE*v{AN6LT!?8LNIG>_Soc<8*PSmGbR z@x*3OxO5Td8IN98qa*F)Bn-bVb1KB2{L4Eg4(r`KiKrr-Fe4lIvSr<&6<;l(#Sm+&ZOlFBSc|3&|wnHbh z5hJ@^@(KEi!;GEPgGrsxWw4*(Gcj;Zbhp!}0yrVLm%0(QPHiQ3(YC444G64R?IGTG!Hn zvUUBkDM_TQmC;LOFzV`yS$cdj??*5XF{ip%>IzlT|Ex-KDTko?E9D?(Sa&y>tWaS9 zmaHUz8v;8t*qmG9&Wj{(2CPU}5a-S2Y+^KTKzT!F5d4(sU+V5EGQg@)NBwDfl#oih zA6R`QCsIKbsC9RO#E$PLv5+&$DyyEaj9^#DPhGR{y+8(OUvGw&RaJpv@5ws_en21n zIe#vOnnN+~%b3tWsgoP(6BFJ-O*Dt?n+tw{WbFLu8Mj!Ure`%>)>1~kRO7^SqD=rj zJgI4;e=F~C$%jUo&MG)jy9k-GpK7$F$0+Cj? zxc({Qu+)mR{rigq^%p%z#x0>8&D$*`(vu2$Vd-TA4Dm2S`>CN{xliZcfPAwbNC z)1sx-p(d8$bVj+!$i;!N_9yLUpn-<#)Y1tc5?SN1VC5jAWhm&ZhDV^BMJu~aGf+>8)1rIG{;N2*k`Y)A&`g})Sm?8Re>>b zR@PhUd1Fm${F*)D{>m@?i$xZT7pB?W%L2&3QiM%ev=w!|)E55`V?JFRm4EEP`-}PBQW!#Ja5G}hen?tNu1Bnd8%68jUTK{XW!Ve^`Cn)mTb-qCPKFCT&Qo}A zqa7W>l4ci^-D66HWSrm(i0;4a=-K26=B}>x5tJk%>2)>u^C|b4`Nx@BvFF^|`e?gA zCgY|>3)2S^G}dd9{gkY3-Jd*8K6#;A8r{d-)#)EfES`Ip-xoYc2>Fx0kg~Io!+P-{ z^^FQ0;(V~yvu=Dm{}tq}9x;%Um~SSn&w5EYIltpbLZCQPaB3QuI@~XK|A{7>G$@D^ z4?<%VInP*~Nuh`RE~7vYQ`QUJ(7Wtqd`9W~<=Zjj5csk4o481Wu~bMlxeqJsfC)V0)G@TR|K467sFiFjG*~>bWn1Aun_Xp^y~)+5u3rSl$FRI zbV@QfA9@l-8TkIYg-trEHiIG-&I8Ubzfm;`bv)xt4H5SQUPh4X;#3u$^|OjG?ey)} z_*CxogA^cuUQEJ7fy1kbB?f{K=w$H*j)Abm`>1Ux%0I97py7reJJ(T<>Cs-%2FIv7UCCkOQ&+7;%q zGL-bxm4qHA=LYFQgzHHuIH+#HsQTAOS+E^t4s2_0Vt6 zz5k!N|M`LJ;|Ilq#ota_ja(Ry89$~puq=#>+K^i1QLIKGUk{jJfON<&_IvCBQ z^zr*wJU`smy|4Srz31F>Prc7c(0QdsNybD5001a8)Kzo=06c;J4Iuu%ohvplCjbus z&`?p-3o1CgpBTepT6l@gQH;3b;JxKtjUUuR4I$1Xio!o*R329IMJax8DYx$b+mr3C z_%|9xNlt1|_L^FWgHXfx{UiCP39%pgFJ*o)u0J+mxwy?Bitwo6B#uUI&Lm_s@Cn+zTW2i)wo!PMGO} z2=M=){w_sa?Y?`akuk6h?#bDYwlkv&W1dbhDcFRLw~Iiq)HvHE~%A^_^a#&w$l)AVgGBjJg0X7~R8jyozqVJ=Tk z8!Vq4-$vY6{#{XwIrXF_{=?QIk4JGw^7l7egmJKJ;rsY~QO@wwuo3F(AQ^y65mm;~ z8~-WSbh|F{f>TJdqaMw&svRluOT!jOf>+=7xoR{@>CO z|7h&SR^Gzj9-~|%!tPGx@4vFKvE6q4J&L%uB(dJ^#smJgyu1HjzK_d zh_+83pCI7ebr_fWNFx*{9D{EK!{oo3SEw0-(zpuZ`SOR;?;PJ;3-op0RNm5itp}o8 zukOd>uW7NN-4=oKD9b-*+g;TzFE6fxatXmx&-k~;w$pnrgT!)sF$e=;IELQJER{bR zWnwSP(8CSK&`@K@U;`#&#J)TYaGt*iV7Ik$Q8MQE`*ql-KkvWdh>PF4u3JXj&4+ge zWL3GWH%r#QmO|Sz7jF%AE`ussC&*UWcgNcn8vQdL+n;y~UTJU6yF(BfaM!mTOjdeo zR<-kJcNqgoj?0I3ftf*O*|8eK!E=3<#uWvsv2hy=zn~R#iE~v z8qWKHv)%faj8ekn-|KK#PCA1AlufNhvf=J;Zoaq}>ib>)8Clj{*F~-A za}uuV|BCz2`%wq#Cb9i)*#A;+cueR#Sa448yuW$^1Bt|#G#`6FxHp1pr_oXEgaAmo zYo~>vZLI~K-Ah3(QBnm#b{h?CPEnqk=F)U*82!%FRv7)JCDzX!z$X94<+u}vHLpXx zL)O3-FySTACGs!3cP#zQBWd#4PpfXKf}+yBJ*A9Qc~}$p%s$(8VmqUVYORzdA9KCo zZ!e)#5xTa}c!_W7!a@3NrRf`ya4oMlna|}2;3@5fC;d)=r#Z$^J3QyyI3^b+2Q@s5!Wsk`My$3Tw(xWYR7wDQ6UveAi7Zkzn`ck)!&f`tbc>YXZn;fvKDBh& zgE`#7T)pVH4ilp>Fzk&kGbk^zBfE^gWwz(Ln{RE$akh7*qMcA6!NE8nM35PDUCZlk z7jBWUzWF~&FZ_-=TdS&G>a$sPBQSVq>{{KjDtW*>yeixD@fYM1fKwKj;WxYd3yLTe z=9ImgU2{VC7-dKAxGH-tAMEco%7t?H{QQ-|9jThSDnv#s_ri_C^%*F9Qy5gV6&Ux(+*|` z#bT8Xvr}=^@dDTVat${Gfni`^y9m(h->@x1QiqLl*JXJb|Ar}&rEE~8mg49s$AZkB zIFsY(M_fqc9sKVa!$gdlaA_(KmsfLc#O6%*`37=vAhyo1XzVv^_i;PpQ- z9{k7qzgypM0fvF?|Gv3u4ib5LdFtY?*@*2ddu8h7KXY$yO>0SnG-QV%t9pgx=<9YS z=jY?7je3it!|1f@*xhm`@7l(8UiRO$srpDlE_ZuNO&;pP+4IS^viC&lODQ%U+GTu) z35csNS@mR4G!u_CFe?}?TXDn2S@!y|>^)%wwLOlCf3p9_k@Hvc#5($D|A?@QHG|pY zkalVIN?aFOaOFqc^4pw4kFTA9M}@%@k=Pw9B4f%b0e$CvKGxhfAD_w$iZ@dr0eK~4 z*oOrRA-J(A^mY7|2uY(SqDuVj5a2QX<2)4EqW+?1F)vUxWNgUfyNd8WNU0o;lT^5I zPE=^?tt1UB6P5>9_`WO{EwhU=&W!lk*aeYQCf&MrR1Yi=MCYAugh#NM82w8m@1kEOX2P?p9e*JtM zY00p&TF@P=fzNKu#?4;c9SZGIe#LZ zIJYm-LY39=^BS^`lg+KU`uH0Rmh~y6)N>moc|-{}eDJMQvWSh7VIT>+7<<--@5Xg$ z>y`1j+zIjcl8pXw)i{uRKjUtKnWjkmdcR=G@_UhYIljD{+$sq<8mIXy*5fg|>ud(k zt^e_L<{?T5VNb>W^2(%xIWFTqkt94A=SsUnMHSW2drya=vuiyK5@?*aWA726%|73D zCAkg*^i==w$WyEv=;+_&PE--D2B%3OHdIfLw4RDX=1x9`&qzOP28xTzdKG^NGMcTy=|K6QC zxfhuPnsRI`gLz4GMhV5ZJ#*M;Q0a`Nr4cCrlww6_*Q)*^J`1mUpo?6RgMy$7_}oW3MC@m zaKPjb^Y8laNB@q`npfrjmF{$!f8D=YheU7~FNc~^YI?1Ve&0=HE@t>hjt+NUMY_w< z2zCT${-PhfGy_4}t5I7yYWQz)dXMVJiRG|Kzrg1PHs+-2vFr;<)PjuH2x)wjkNB5p zHvq`noZFmInp3R9md?Z)_3}3v1FYvE_Y_eDF{6vI&cJviIG!TQPNg8V$*$);Z+W(8 z<^j!!la>8~dcYiEIXlRifwawf`>nE=SFQ}d7yDYJBOddGd2MO2*o=C%k?A6fMz-sgv1`7~a_X#v? zPX;jJGpleD5Sg0Rg3EvWqKUY~%K+K+XzB0(+UVg~ao8wwMH#mGQ^cEJnEVB5u%gp@ zKHG5mk(qf=kPKyUAV8awkz%ogmp*mSIGgBCxkPF- z(FQuA>*nOF6KDQ~{HUd~8XteoCs3rrY2sn|A0P15FdCP=EKyu2((n;Uc+dcpig7V# zC}L2|Hf)Vba>~V(dyI_RF#!Ym)f@p{O91I;s4Zjk zFjp1QGb2Tz&zpup8)nU@qBk#;)OuyL`Vp40wj}#n`ZNDN?MJ7*AmHhcsIn*BfiQC$ zq4VwrsYnlm!aLG>n|;axtR>yxgY49J>dMv6(yX1F)YLQkEL@+P#7wmZC>@h|Tgs{V>XQrJY`DXT!9 zi>}L=*BA6ZUhzO|#!0M#K3^_}@|N7NI?Q&@>I3)tRj9$x;0>al7d)05XnDq{j{-|f;8h9Aw>p>eXKwZ z{`3B?ly*=WP{UX{X)6)5U_E`xOiPMW(;=y1>dTBZoZSGP`Zg!MJvyl7GNjY4X4n=a zelG-IkNAo|`PVDa3o(tb^n9X)#*Mikk*2kst%9bC>!G2IlaGVsdNVS$zh8}LitIWb z4!uppBUNuwiHbBcszinzchRFvimMjOCz8ynHT5XXDlmQLng*4LPwm(_-8(G^@wjO6 zKJ@>X#-WJV5uu)TxseNz8j+JKJ&G!X#nhZ`U+kIDhggi#C*#9hs(0DKT2fonj4j-Y zhYQVsI6KD}j{p2vAWj5HZ*jzMIwS~9wiEAjI7~+B08n4lTH;qa`QB7b=}V<$Mto>N z?qlgX)(&5mEE}2cxeT-D>AtPIFL?f}j~cwA@b=CtdnY1T@sD@ z%SZJfK&~~)gJ0B&pTyNYPxyr?l>0ce7iZBV%~0CBP)oHqb^E92{;2yN_h%_5)a112 z;?Y&k^N4uW-yxmlE!8ch+0_pP3XG>}d1DmD>S{gA8Gwfd zttJm{5Zskac=-K@l33znwD3xpxY}2mxpQ*GE{{H=#AxM~Hgaw_Ki*MP20ph;w^!}K zLYGKU2DtGT(bNbI5V_FK9X%QI2<^@xim*1KgfLo=r)dC^4uFJDYzGu{FVN^hoNpRk z@-^;ERLRFdT|X8WV9lxm-uDy~Ch*Y$g}bAr{!TUFS%Mcphy@cqIWY-G5_Mmk3@Im)kb_`E(@a6DT8)Yh+j{fd)RP zW|Om$?x#Z7v0_KaB7*bXp^hs~7H8vfROy2*(gztgeLVI2)B1-J@K*w`!FE@Py5GN( z``iDtud?U)ZMX(ca~TSQMW}6Xii<=@*>V&Y2mIV_*5I>0@JC^IObwYTJd&FYe|bb= z7clxU8tEBt*PA_MStqC0(4X?g6>0=TAR2v<8zv)Jtb9TzK^aM%q{A=T9wYGx6NW|c zcA{?7r+hd#=MLfq)4$?H&#Dmmcsm8+Qxur%^1|NQcBPLjwu*B8a8+c|iqETmpz@*D zLlZBEhkMy5(Y55egtd$i&Etme{ECfa?9nYfRx~J^*1%yhlDm=LkI5CKHmp9dh|Kb9 zh7;0XH;ZMw2+Taq_>=SZ==sHfD3I^zrb#bI&8}? zS;}lQH$2gt=?ew}?+oPKJk^+^wvUNTkn$7i!Ph@BPXo9LE>=Kwx_|eDnnK4y$NDad zSIx8ATeU2v#EzgjU124?+0{$VPnbMe+kHfYVp|ypeev*Y37VP86?D0BTXc&TDN2A5h)wzP< zoDk7q!BrH$YxnTa!Sv)HpvZOH>cCr2@Sfo zW>U|XR7qEIUS{JhOAOK{zpKMr8ChS%{~HL4IF|oA6>E8Z zE8l;9yPon2@-h%zXNX&MneQx%Yd*dSayKeI%5K65l6vWc9-B9+nsn|ft;~B(tay0p zOR^gQQSj?rAOUBn=do#qkADoV_9=n5xB(?3dR&V{W9OyhVbZ`kLnYK5o@8dV(^L$I z8mEJBZr3U&u%NYQgT^`?GQ_xY$tk*)p4a(HDZ^-1?ULT-H!DJD+ZV;t_3jqjGc3Tf z?hk_A*#A@eynf5C>QqV5O`RE_-$Bnuig&@}ol(fuEi(B!_B)YFQb(`3b`4%M?;)E( z&y7h-!$xAw0-8*^6k_s+?Jo7t@OdT!VB_y)(Vwr~zjOYSJ+th(o9VuL_SbD?X8oL# zCG_{(?m5vv{)Ya?2AWJ|PFW*ymx#b-Bpt^kYlW|z@NB8YKV_wEK8Bn-x?L*;?)I&j z*HWxt;W*gATSEcIkoD!jOd11&e-f@gbkc~P8 zal$w?fXlE45NG}Fc07Fjy>_fwx+@t)E>ABxt+hyhNvsegOxC7bz}h?smhV!>zhIw4 zO+0BuXz`4IWq1LzJIqx`6?nTgeloX@5oai_+YuU5Oig_n6)r%0*Fbqf#<%379Z+C@ z?m-YX9mqe*N4f1xcxd0uDRGlTr zGvS%27zIC4DcjA(Vw=c^v<3xE)%+Fj2M%y-?@zYu?aBVkIEBc_ie)mtcaNTzbDpjh1s<80o+rp1JzdCUv zN?)fsrsS(kBZ=MHYjw?k0wY!#Z>$B=E3i*BQ>de|d!7(DMkSg5veAzuShH%9gOFg9i~TX_@D>X{9G=!RsSnsU#wJFcc|NO&pO@A|gSlA!sL4?E!O=H@QQClwSefhCe$k2JI0^`58;w?WA#Sj!B+ zpq-PS-v^CqWEt-2s$cPPGd~rshkG%Hp-Sf|^VN8_OGKRbX?~EB@AWnFu1-8e_VV__ z^y}|~enhHc>374tWM50-4B&69kU*1(&RB8~pttz2Nwo3`GZ>#xJJW)E(ysdXQNPP# zxv62=5$Z^rTcDwg0^L`wZKaqf@MH_}PC`X3oH31{Bhnsk@ittJ4R3C$@nHm2qK-@D zkag2>4q|iWz|;80NjT4Fz=|N_BaRjQHPbjaQG0cBt9=@=ey#V@-iZtKifVBo@51si zMRx56n~L~m7BTzV`3_V&>|a{B?t`M5?4ThYxq1WXrv6|GZUZCAs0XS)d>GpH_6WC2 z%Zy=95+fM{!nMCYM(m_l_A2-#s95YA<~%3!9{W_TospBERpt_I6qYBa4ljrxk$bl5H#ub$cA=?{*x6_bKP#?@=2(C@wXFS@*GP_34)RdS?@6@+LwZ9q#Bu145beO-1b|Bg7Bu zMF~Wpp&-8Pv<>Q~^lo(Sxk{828|3~acy2FbeNDN)cR?kn)!`$c3a7Eu<*e1Mhx{4E=69s^kEI>skt)T^#G z+qIQ;(r+h=6aDy4)*qG7(bmM7V|95c^rp-R`h#D)z+6Zkw-9(37#}fK<=2=-dkGhe z8pWWaRuvmbUsIN&2&7C+Kd+3piw=K`@j&r&cEV3aru)3D?~Y4A@Xs&5$< z_fULIo4QiEynZ}Vj7s=X>`v_CJwuOtq?k27xwD4d0=jZ7o&h9wxVwTGP(Hl>e4lAu zcTF>A0PLfIY#v~^i9m0NL_uj@2!7UQ*HYVB2?4liPfLbmMi zu~@EHuuEN_dz=5~#xc2M^a}TXb<89zTT0w6%us;}*@>^cRT_s5 zt%7|igY^{uNu9V6X5WP<4t0Sp&NWQAA`(w*ODa0=Pq$t&x3v<)Ph$ea3pJz96`pQ0 zj6L*lwk--jw?uZUtvI0{wD&ru=fKnxY+P~6=6I&IIZtkVnpLA_ z*C#wVm{ljjgDY*;+=ESLz}`jHX@!#59|Acf9&xv%5}j3Q6=h`T?hLidI}N!s;rhx; zp|ut*$RU+1WNqrTs6Z}tyzqJkVEuS?IPCDr$Qk0mD+dW3rR-NHFOBpPQfDkImjq9K zJ`y5G5>80eDOsbe+O@nV<2M)Yla(ylF3^pO*15ruPmO_~wmBRfEha`EcDz|EB3)I9 z$?4B`+YWdo`}(p3Vs`oQOKb7JA#oO{`R0hYCyd=I|8vhzPDIH}C@<>6^+V@|!M}v2 z2!Sj1l`HdDtX8^5@G*8_o0R%CAd8!1bM|pbYo64rzDBz&?csiNcxoI>CG9f>3FBtl z;{+Q34{!p&GW(DuS?Vo&bi8D9kC*YTSqY#&ziBdtawgqs+P8a5h?sN+y6=VIx-KUP zv|o%i?Xhv+ja3I*dDUEtI*xh;x3FZW4OQW97^M_DZ&8F_>m1KGB8e6$)D$Si<9_X& zVf<@)C=_l^`z=`yuhvGIc*U!-6m{`xPKGsK)p$t;jP;HioAuM-ae@^iG}x3EXTqPC z#5bFcw`(>FL3Q*+X&2Vyt5Yrl+kg?@@R7(X*-eL*tGx4va~GdI+ci{yUd`2G0j2JS zw_Phf0-5lPu-pWwazz~F(&OD|QKr#JqW^3SGJw+0)UlMgakh$?w(2dsuZTc1f%^+X?A`t_%^GbcP!|Gzs6Id49!Z61q~18yjZ+AJ4#V#RciQPx z5Lasr;TCl9>uAm}Og$2b>zb$3k{NFiqg%|p;nb(>vhbyy4ERsWkhD9XTJgoR)(}s_ zUM8y{Hwp^QCu}Db`lXfhz7GYbr*Y2CjqOh)XMtDlt&aB@(MhA0UuG#LNfyS)INAz1 z82jC0(v=q`j$A$xLS8Wj(B%%drk)=1hCyDCn(RxfSt*pIB}pxW?!2xB6iBo57!`1C z{4~LPKqJkuCU?0ccm)icjs*@jYQ=Eq-5xbSB&xIuBbtP1{Zm-gQ@qIY!Y$f7?|;wp zpZb4Df0kJ=$ zi~z}N9#W@hB^aLAoJ6xwOATu(0gvr#oAp4G)=lJ8T0a!g4_H}Yexe!sjbDa3%1v5zY%XyZePI? z|1!QuS$_t(42!MdW|6~NgKdXmN(r#PTpzOV$)2ID} zedf`zEdl;GYFMNHI#1#zj1q@#*~53c9Qd>3;FL2Ajerg-wBi;74AWmD^$iH{;xzOq ztBK!{5G~b-UJ*L$m25?ka4x)eCJ*)@J!>S#n@oIJ3ol88F_J{4>8rAgNu(bEO76UU1Z8Bd zRzvZGPJD3-A3JnNAC|w{fmM*M>}Vy#lRpi#eOOSEwm!OwSDp$X>F@3NT5>70k58Z< zm8ve7BWkt+vWqX2ly|{&z1>aNHC$PcQR6H*8zvcgEf`rg(eU!rd(cGqv!s?9aY9S0 z(N(iq3LCj)AODhEPFtzJ{Up4_DA?%J>zRiU4uGG>TA&n%o$YN#Uq|2}!hIf_UFyzn z^SP1gRfcurj`up#0kE>Om2V(ms{>(PX7nx$<8ySL#4xw=Znq_G|6Xc@gP!G}FKxRa zN+gP@M?sfIk=-@5%lE{1`h~PnA^YZv;zhh3M37Oa`%P2XXcnWKR}}Hru0i96{T!Hg z{Y4K;&8&@xs1=hW>6Ip;H?^yK>M0_hkG_PX4(P{=$OQ!(VZ??%DlGQu9G!{gV`B%otZ80{|;0@+MW4 znkQST>ws9(BC(D}nIUK1V7U1JUS)>DtXYQt26vuEK-a&^@3Uwu-@kZ|!B(v>U6dUM zzC2EgeBoQnWrt#B@OPM!tMf1v@6XE?i4=ixa%jfh(wDzGWYW)HF5ZfY^{5yYpyI`$ z>3Q$V(90>X{k3}3VAV{UR*qAKKY4s{{i4J!yL6Hlcb@NXQCvXCa+ioJd;G>{Z=+K_gD_j1ZXNkdxS_R7aN&5)XUtmF~sU2`}IxfO7N%nM6<=CH9(A?uwDSmAd4?y z#r`Ny=%+5UqRR4%*BM~1T+$}wI6#@&QFOA?yp{O_~ zXX%P84o>e|RhQc4pNIBPibI?qXK-0cQ@z{Sl+k7^=7R(sKapTG0-u>ZwRr&vxqXb_ zTN}a>Z-ClTS*!+#OP^bf%akm;8rx^ZDJFQeT92+iLT#1mfURgohlyyAK{-XKMx)3Y z>B7_{8(Mq~wqfot9@OU&1*}I4T%r2gM^qUcdy}Wf9{xvFYHhU&N7QBs+u)t+d{;(7 zh&uTXY3E-Whh16G-EBPT>~!=F&Gl~N;}(6(Z5Ti93%Bj2t*!Naq*rB;Pjgs$T<|b zxyAFAKnuT%DGb^9d|Rn%hs3!lkb4w0T0oONyj5B0;dlz%Ton{CCfHLQSIxq@(=jS7 zekO0XVvJ<8x)7}ERe&qB0#p!WokUam$7TV@SfHE`Y;|x!U@BK&)|eJH@_Ta>Xg6d| zOUBA`_iOhm=FM~8n$O>};@C#H@!t-TeXd$S+$FF41s4?ggI*C$x;Gvh;uyL7j?ub? znJ)9=VuJpp2WBroTJwcF0XJ)%o-19f5`La2_vzxb7AXqD2BCu1%GI|w{T?Wcw)H!) zdh1m6*#{;qmDmy6g>wl&2Bl#lei)WtE6I^6Mm}D?DYSqx`{S!0Q5H53E^&UVJ}qd> zllOA1)blC4*659T;J4T(4r4Uh!{V{R^wuz`4;oxO##2K?)R3EiG_B#!WcNRG2nj%> zUdf(}6wt=j5YGK<(zRzKiio2Im+?A*Y(XST!qHFAY8sgfgp;9*n@3NS6GHiA0F`j# zxN~S{JDSQ59~_P)k)r$EAB}%Z!)0AHJoKFOYc-{xC8p{r)&%nlK7MS8zy4SHx9Ak0 z$-St+2cxawomJmkd`ENrqlaF{1dREoo>p*iSa)w&L-1|w ze+g1w!zzC@JOBV@DXvhbl=-NJ&E%6`+-i$L(X%9E7q+T7rhO;3LnFE!yc@JnMfw^y z)a~{zel(n&z>;0|vywm^oEf$Vl1C`Qu4ElC1;QG9#eTPaxC8$p^l0j>ZHMwB;YH|2LC4<>jDEVKJfzMvjhZ%a7m*K%Xu5XD z^yPEfKi7`1>HOyQTOM)Qn1NhxW*ygRI%kD{5wNgX{8!s8#kcD2ds4msNl_;R<%;Od{-p9AQA;It`tVU0|3flt7IZO{i?T7_X5RZ9r&cEUx0NZqfhLtaHBq0w96 z(^v+MgSi~vJv74!n(tQS>X-So;uqADAY}~LdIyE11cii!e1U;Jmae>g90JHZ=O1|` z{94ux@8kXP&~-aH3Vh^!QUi3uApNdDi>2F^6LFImsISX zbO9sNa(VbQhL(3xcz_}zl>H&6yOTmju+gCEWRo<=o1p0jJv8Kf;lj+fo#_R?uC>u(<-ZE+r`R;j$@GcyLh45=u=<+N?@(`zpkz4VjsMy^+(0}D=??T&LK z%de#PeAnL_(RMOmmi13X4^&Tm`TIz#a}ZZ!-yjxfe*#*QploH8k%i9TTz-Xt#m6!# zfCCpa?s5BzoL*((j1>Ex(CQYEDt__-z)dkDw2g165c;p2ts=*IpOzhA|B-KR_5t7G z*M1*?{Gqs)T9Xzgt^L#oEITJUK$mXZ`HcI(Ln#XNkwI^to*JKV?veTlB4gpa?XO;@ z+s|MsF)mth=Su**UQ!ljkyrjlqXK$_AMv4A$?d|53h+l1S@zD=Vy~1S5*P=3#ix=6P`SL|_uc$bD}p!d8)p%%!@-N5 zJAMc<@k+_>5HUi*#+5_6NP^jX; zBaPpfBX!+JkhKSeV_qHVsQ%KcE4LPl95DRsUuBF#n@M5kPpO>35D#wVy)&r^WQ;-# z(FMKs0O41~SbAsBub}FI>Tv8Y9ll~C50Tq4gGK}`OGiQDv zo&AJ~_P5$6_RJ@9$>z9qk{^Z|wa1PwCePGP3FQ)eNRfER74a=S@y}iw^XAM zHN>|34U9s%zIN$#xjQcf$Kne53y36mx``sl*`QYBZn-N%12Uz&yA~Fnz>b_OZ?*OT zwoEhKGcjrnT+E?jHTLSDW2uRCXRbRw1@37aPYg4hetO$e`;lZS1ggP{NME0Rd)zk) zJgQ0{oD0{!=|G!@wpQIx`c14{T9sUJ@3bSirdAwLl|AbJy=vJJ=UQjp|3F9H5^AcH z6Bp6?x>Z29$5rf40G_ict5vkvyHZgGvzGK!sbwK%B3Rc@l%ydi^O3?p{8#&l!9h8u zlchKDmS3;SY|~kqDe)$Xz(86NEcX~MK0}Im9!X#_T?SMwW#9ySymT_R)(Ti(xV_fp zgKU2+O8eKNp``QZ(Rw8BS8KUmwl9)Ct*=~f{v`;V3U0lC_ZSdA-)^+~+|c>+^Z^;| zU@O4|sQ8c?ql%;_i|1b_FvNMvr3!G@@p&MFja&r%B$)oY@KQ+mh`*uyXG3`KSZ#Ax zsM^i_Ka^yMMaryW?TgiX+`LPx)u`i}{gY$VZaPvguyoaK9erP(4wDQudq*1(1dHif<&6)>j6^+K5m{+Hq)D z>2XI+)1&I1DdS8pp>2X3^v}g5DT2;^GY>fezkK3{Wu_<=b}QO*I+T|&`f5ymr~u`& zg>nofs_Pp zr2WR+;SV1D#NC~d0FMF~=C~+jzaOrd%hDE$T_f{%+hD_wp5Z#}ZxO4%ZdpCh7#~gB zH~G^ReSFDE=K=i!ryqJ)VAf203h^Ri|MGQ;WGYd~+wVEGaTO~=>7a6`Dk<&O$oOHL z^S)6hWoI>za5o?+%Lz0s;GO<)6mJ6wf(%CLAG9hBapJQ>`3ZFVl&z!6c^`e?jE^Ud8ZadrBrF-@4c zC@x=xH}kuZ%DWXK{VZ2i`0-kLcq?a^=aGPaVCS6s{9(VG0(=tJEDc@qnU3(jvS+UwpKW+c9A-_OIOWle7aG|nmHm=k!aBLy_#Hix8^;f}> zu4k8uI*oikzdZnNTnd=JH6iq=u)Lcz=%JRcLoF$}XX?kb?RZ8H-ycOxk*(i)qYvVS3B~}9Ww77VjM&>(=9|U z;$@38TIU6>v1rco!$Vwx)GPtQsTmMVGMY%l#xv>xX+QdszgxXFE7kc3xEX%6h) zCwN0YiUqw$d{NRX%B;#R)BfLkl2n^ek3m2*eDkE2oBqf48tFS;rO(WTl%g6b)^+P# zOG-(gG&i7PigI2GugzAL43g;4uyt&2IECHxRST_}JVdhH%Pii1ZY5eKx$4%e<4uz+ zByO|>@SQMMhhGZ)B;+QTt?ZU!)Hm7TTT9R*Njpitsi)5zY>2=e;(}s$O$UY2X|xZD z_tsKkdb5x7*YW=K7o1}_w;Brg-CkNGaxZY}kh!UrC%K4Z48g-?bj{Jh=9=c(VZ*w2 z4=jKCmFW9-&xvO=HSlWd-ZOF$E7Y|2iSe7ea-;fZ>{~WD2vB8aaGzElkx$ma^nQIU zd}W528-Q}qk05sn<6v#20R=88G2j0t@0=PP10OfN?a7oHz?s2-S2F3$Ovg3FN7kci z9CAZf4Oc_a8>gH;gY_3KUp9#QdPNRxjZ}!$+HJNDJ#z+g?Nl^+dzb`o8qWWlehbJT zkybS(ZRX z`6%W+Q##@DV;nOe4kaeIjm;V-oD3v2R=!<9Q48fvIg_;x76(1f>k zJYJ(DdZFTdDW;(&pk_($H0)0#`hRE*>Rp#PEIQUCQ@24A9a58NviKsT=|voAp!BvB zfg>Ax@E&661wC!MA(LCCEmf<`NBty^!JXj`d;$Wj^;1XWQJB(K(*<568?t-B15Rl_ z1CDIpD7`8rhAzn1<0$_V_GDHBXj4%d?iQTH@$>eMCgc%w zZL&*!MA&9WrFh!1bo;gwNvX!RPwz$eW?L1J41^H}L2PX%s#>|CFOAM*tBZ!{>;c#H z9{xoiP9x!uo5b*H-;M+kf)z>9V@T*6(BtuD1za=96mnf!Ys_4e`zew9T-YPkx+H6{ z-guRm9OWw^dHCY4`Rpp05s%6XAh9L_E;fzEyreR=-s>3mr_38Ma&?nC4egu?LcJWf>9G}1`?-FQv3l0S> z!27ZfM@mf|5qx8}rBw#`91k8Kb7$RNQHj9Vc( z%={va1?*7#Drj1|(ca4xaWLb#!}!4`kgLcnh$HjjdoGE#xH@tG7^nXH8>07>gTI=- zL%7=Kt*^IL=(4KHer*0+h>=0yvAN?pGK65wKr?_ug;m1lxJ$^fZMiO$_&$v30;9|{ z%>$GADatC(MmdgezWAOfX1+p@2Dl$9G?7ob*CTTd4U0aj7e7JlIsd0yOVC1S|84*C z7vFd!!8|}JBl~=Vl{iE~q}~(=E7&nlcB7Mdt=S@ZW#EBIOu|# zJ=DgNu-n=Mc6)Uxb#Cz>#M$gW1XyL<2F=WkV%h}Y0Y`T5=ZkZn9}yp~1mPF&RMCd2 zO2x-J>*T&`g_YZpYJfGAe#O$o%zq{L!@AG+w6Ch_#cp7?T-VYLrc=bmkVM-vRRq;1 zGbJ)$)o-C$T0L*Sglb%ss1mrn9*jf0((ODg-wyRF%*DC2hA1bujf+27?h){pI@*)e zAcI!%{@$6GZZYQ*fPT@)vpFAq8y~-fmQLGI=XNw@f3@+05$~;oO!t`h)cy01yN(V= zzku*T%N2YEMvlKPtV6qaUi|^lp*Fr{Q*#+{AcH#6gYw=70`Q9#7zy6nHX zX?BJs^~9-UjU5T947^{;92%j1o=ZDUKObEqOg$e@;yZ{aCsz}YiF!&s zve9+qz>WNR{8f!vj3Rk4+12Z1AWr3iU*@mgr0WQohae%=<|>ouZ-2AK%#RlW-Q?=`{aeJF8-F|X*{SY?swQqAD! zG_vC{J%l+t{@Uka5dLZzxi2L`0!XU&(HygshsLxL^lj(Fyw)!=&AF)avMIzuB{Slm zxBye^wkt+~Rro)ww}q#`zCC|z$GmC+6KJ)OoJnov_Mb>z?vX8WjTF|9kKt9xZv7g; z6Ox@G%K;Avpjr}UoQm{gTsl>yz5=Wj9uCbb#@VEbcH+Up_BIubq^5AG6l3hvHz*o4(O(A~BvV6(Jrad(&} zNS}GSInIR?Ogfl8E?%D`%JN4W)mIew$05|*T3JNV=lXc0ej%+Yxy9eXsoD&m|`k5JZVZBZz=%*1Qmvau6BYBOu>k@~>N$8_} zg-Y*U!mE)&$|MgLcwscH5B_Axg6OBm45>=?0rew0Zus-184rB5fEussL&@z2LfOQ4 z|72>5d}54vw6>r|#&pH0YtF9n>SZOqZP`~x9n8<6geM=qoO6$>+kDvFp3R+Le2$r& z%x)eHQe-7K)oK7iSvqn)BxmTyty(7+2!Nlr$CSwJm`}FisgD!oY3$jk6nmS4dOHO( zKa&FypvZQ4$HdQv!~N|x6rVGLx8GwvKX@5E?%dswZ3x}F6Z;b2>m|0H(YT}sS*U1+ ztGyDq4Fr?_CGNJHCoZnKy=-{*EaD@<&u;_vs8{dP!X$zmj12r!`8l1obG-#MzjOq+ zAG^mb5QTI^eJ3wP#byidNOL5@cHmz^3-__WFI3bo(ydARu&*_5>aQ8%Xa`o6#6*92 zboBHHzw`LPC$^aIIy&9Y_@aXVfbeJkJF|Y^cA?AU(tXs;A|?l*{n{;Sh}(#i>n5P` z7uID`W@UqndYVK@;jTuJ#A}`Xq(nsr2|rgSiGYK~rB$SCN4f$7yB@az6b~-;ywyL# z4WtwvJXmtrdHptJ#z0auS3|NRl5hXq*E_0n+Xg;^m!3fHj$J{CB7hqWj2f5M*A8qc z?{Qa<=v8J3Rw_b1_z=r;5R2Z>ozd3gZIXxj!_p zN(B2Khe`^@1k8KrhsK6MRR|n^Rm){kD7$Lg7fR=ywx z49wI7#{haRqPb=yWZPlu6hVytJw4%_(#jw;J(Zvo;avrb(VamCgE5*mQ0fQB#b4HW zlwa0=;wVZp7UI>mnCo8z)NnkEiGMO_Tm&ZXCu9YstUJ4&-y>kTq?s)Iov9}7dMk3- zJpUy%gnr0=vnZ2Oyf^%=vrs2E=t1&X7<}M$sIAZ8w#u#A1uMfz`+Z!&Ms)O<*G!5= zQT=*?t|~7?<4s>yQmI4+9y^Uoh{VJ3jX;SYW>y|agOE>}G^r%6|5eCs2|{!HRaK@J z-m~~PZt);V9v%IDwK%@64w`(_X2}+MOz?jISU{)0iteKe?dtKx%YsB|@7=aq0TWg2 z+2YB;95F$?dOjWDviBA++0PDRmgYvH<(7iy(gPirb&~283zNQH+l=W*M@t6seNWi- zJ2`v#8!9+(&2VeeWF9eFo<`M1TZfY7fodi*#_)iXhZPufah!)!7jZm0?&b;Dk8Ux8 z)SK}`kdPVeW)m5Um~dW4z*C$IlmR+98fuQExX0N@j7odp)1we2Me+n&1qsgf4Dc|7 zp1U*x?!meMjC9xCCWgaABnOO%h)l*%_8K+z+x7_B92t-rt^T9s(z8Qyx2MLZNc_iitLNm)v zV;Qr`VpzPxX$sJ}J16~D@5_%lm#7htdPoRQ$ZiSo&afIolil>lcXJt|I13(ja6sXB z<5U66PaoifQ}p-}+2xGDMF1-qj0x<)*-5|#rywm>ANob`V@GtfAXF7rsIKdOci%c^VcyEY*o01M@ zXv-0!NI4BAFyx|-UL+>zUD`JrXbmeqQ3a2Hc z$R+h!zZd9e?_IUsRkioW*X|lK!mxu=ik4Kn!n3nQ-G(yU((7*0YgQ(8f4pq?%M(!F z+Y;6_A$%HQ5JaTT+7qKoHsTta(qaGdVc4^CkLh@z%ESIKeAb3taGlJRBlCb=gS!k- zF?!}x!sCF)TvRdxBjfgA|6tGB&jCy3toLossK+gUgAgbRljg)K6U>qX|q6R6JIwK`icjS^fepVD(wz4%jOOH-%rzneW?K7=#qltFwgS!`&;*FSm2r^0q2H$o zvn@`V%Yk!D4BO=r`Yfa62yS#%2?C01f`c&)td3mO>Jge4gal3&Z)>zCC*N&Q&^|FX zwzR`Hm2#|!c;D~n#^_$rm~?#w zI3|!JLETu3agnp3EI8`iKwxyF7dhnNysDF?(~O{QL?9Q(heff=>mtm_#mhX>0txcz zS~GoJ0keA&v1p6Tz2&8qq1HvgsqR87rn(iqu+-ndwTeWtH)72ls@8$ArTIp2MNQ}CXOv}Y5At>O&2ob<8@i~;d&FR#C?d~ys5lt+8* z30;{?#6wkhP~wUA1#~h+Ei!CjtW{yiV_CwWUp==kbHz-1@6u+>cJ6u83uLrN&N{*O zSDlX=p8N)rBJx6*0UF3FR0xl)8Jy?nNE<}RD}uqiW&-3|vuz6ZYw%cidFt>i<*-O* zF58*Y!6+C2sJSyM`|KJGp5 zzPBYk9|rohH35}@v$C^~;jPA;j6(qM z$R!Ffz2W4h5Wl|hdJ1gD6^wVz1j_>n`xv zk*;Xcb$k-yvVdyut+gg98hdMgi9;1n{6v*a#Ds#5^3Z$$26&wPFSE30 za#LpE^TgM3VWg7h&qMS9cFzFiEm^o`;2(h0B=e$eB*#d_pn5dT<9x3Zcoo1+!txx|NMgwOO4L|{yj5i=OF{CsZlHLO*-y*c>5ymird^>RiMo5Nr@&kfz zJ=!pe8U|FO2$)&*K)6OQj{sa$Bd_xjNk#$%UW^RDVWRmaNhYg`-H78o9)K5a$Ds%9 z&AcEXlO%g1l9_X#BZ63S=R-ZB?U9EE=uE3eDe5EamLCy%r)xc~Gc3;{QOstmI7G#Y z`8Pl5Sol{j!n*GOe)-E^*1l_RbnTC?6Ow)C_i#pa57Z}HJ$Z+ zJRs-+Hi6lEeb^`*tSw_wR)`7wyVw&FF)$_u@H7`a#s!%Pp0_yAo;eV(Id3Bo$1omA zkt3mjIO%;yP(1@35Q}ftVWzX`2!8-}JO zCr(3#tb!IYCv)krjaK zjj5%)cqk$ao(l_mpT<5SsvKuE6As?`??;+E{MAzv#nPx&Z8t%bSY=hq}MxLL=7`_WUZtf#Yc_R=L z07WdH>uAVv9HpBv-{+aVeExYjvl%{po)*dAvH8J74@s}NpeGA|78QaM)}TpAIy~f? zNC0_)Msuu+2PF)gP#5X_Y!T^kMYC(7$_XmI-I?d(CPBmcmd+24V=Im>8Y#e&+-8kN zfk2)FM!rMO5R^hSdE~IcMGAwS9{xS(Z!G4!KbOItjsp1vYBb`^1vPTTeeBFD? zmP)m2*OnGkdzanP*tn^Neb?Eq3pnWp?%lSp^a{VqlOuXv9tN*!!cG957L-7@GLZ}2 zsM2|tTH77!Re$+zhfo`eZf z%wQbZ=@cL^%bun&=2+wzRC%Q07(w}L1s<*HJe}UbSq;YG0aphs!6c>uJxLqW8^>%Z z1R^FEr?7yzSVLg2Z~L28#zc@8haNNmu?w*rv!_Dy<;aBq)SL&?WN`p+^^UD@$q`S`o3R3{>pn- zS9b%h`&HImEgQW9vV51)74&rHL&rDdQVh=g&B9U7*H>4&ZIU!#uaA&|tZx zV_V=vhR$yHx$y=pp>&q;9%NN!Fi21s?cHQmNRpW$2|YJd(0C! zA{d=W4l7155_ETvmY4xicFy(whIYrDlp`6nX-XQ?uQh8i&J{PX#;Cf@P-E;7GbO?~ zUH)1z#WQ2tN-_yyf|zW~?iZ{v+MXxWjNh>sXKfA{=(Zi0aJO-LtWcvHnRv5Dz{jic8p*z z$=*BE?7r{UOI|))yayG9?_Jf3K&Hz6xcdtKaJlT)7VPKcNBC~tHzpj76N5B--GFO^ zguPXT%;DMb`p~`+3+sUiEsdN z90nmL5@W_l;C*FHEBSWbVJSIbY8;;emLLqPVE|*A;<>JPct_178Hm1Si8oCeW2cjQ z{-c6)BUjE7VnPrbnrGKwpU_!&IHFCCeJSnMu=n8mD#fg=fIT*k31OOdWO=sas@f8C{&0DUOu95dMqCBc>+j4 zAr~T{LX{&p7*!8WGbP#KH3RFoG(mnmRYJlNttNR`_g0R}NkCG-7;r((q9@pr$(dAdq zG>*5?`=~S`L1^FTvu<`^{ZU0b7ASOMH45QUCe?^b$*W@r4Y@3r0 zpuugX;Mov^+D$TspU9X{!N{W`I9W1$!}mCvSOUpeOkvm%GRCOLwgV&9ofQs@;9TbL z+4~fekn?RYGnrG-jPdUuwHqRUF3z6wzVB3*-S@qLAHr$%F2fg1Yj?LC6NP~8@{c{z22W(@b>M&5xWZp= z+*=vQg_Umk-XJle&_3)F2DXVnmDOx%4f+R2*v42Kx}5>?l-yjBKKT`hn4klw&W>3S z>RGP9uH(@g8J6GT7*Rov!+m07W@I|?_(PUtbSdcZ6`lBf$k6!0<--(?4D=v{jSNc- zOpFZ?BUG5**RXy%F9>Z>bkM575~ssG!zMVFFGg|~IQt2KV`4e;e7&yPBY~!Us|;6Lz)B}-w|D!8g~h(*S0U-=QrLIH z@&phDU5ypTfSZApxJ&ouuoTlf)gBe780gVS?eF0R*aei%t0fCq3<#cw!YC^|;ub?5t&6cjnuDvtzmOb-WS zUqFl-e$s(yi?cSo1SkS?zvtlaAeSd*^C)n7f@*9A1kwma((Q!Ji5}%q$ zsVR@(OsxzgM*tXaczRN@aY~-2x0`@9)ri@m&+@4leQPWtFz)|pbXjyCh3R`5Akw+c z*FByuoPZ`5&r+w$5z%cE*LC=I_1ok7z5s`1Qd0|r#<@#+)?@QltIRPAubf|oc zbVNAL*gYcRqXru(q%e7*#$+_vYA|QN?a=+=apGu(7sklL&{IO7-y~!J6Pa;#Il;D* zvpx-6B!;?}p>|eDw}B&73FOKaR`i+h;w>wGGbCw1ss>Ea?>Jr0H-$4AgA-dlCPs1y z_L&4nuD8~psKGZXJ6@2&V_coO;~eEsTNqZdW(c@+&zE+w{H1>kMc@qjn)k*^8jC_sgEL6bIb#1T-MIfUG4 z$8aD@s2v^${Q+*-Mv`mPVLo7E%nb4R3%WbOPOH1 zzd^B5(6QJpkWSYgS&q$+lnzxBoP>&j{AW^{LHeYiSp-j9?*K95?g<-|5%7Sk-J13s zXW7iql5f%*L!eKSz;8T-jAN5L5}w&w29;wWRuFKF8QD|HeS3n810;FO^XKs~gFCg& zMF5l|Lnka_8X5Cqzok#0dpobNJ%pugFd~Vt72P;nC_Gtg^EOa0GAS!OX%|{Ku|yql zuEbpHr|C%lLO0>x0shgS`j-a&{r}+ar**efwE+UD+O**Ca}#1Pt#RTp%&;37k=9 z>T*Qhz?(dbL~pwh5g4R>uyh>?uj|{!5l+iEvQEXU@n;J~Q z2WFj|vH+z9Vy51SR>VYbkUei2yK%_yvsg?`1mKa381{IJ9V0vteY}UT zdutFJf-7UJ84-t;ohR?G|3@#DM+tZCiP^Pg2w05y>(3I=JVF_q7A? zQyh|sB%JdE9FGX1+2y#vD^A`N$Ur{kYk956#|X40%EA^Ez?u=>q|d{N3Z^80nX9E` zky$0o^DB@Bi?_{Q3V2{Fj0M1o->^(SKM~*+uduP_+6jx@wdKM?YoABnAAY;I>`A!v;$>#&+2wWpvzrwA}<^I-(k0DwH{5+}4$7+d|2x%2S%xOFB>-W~%FfLLe4*FgU=T0Yy! zfT87+R*W%X)Zr%0_uJBz`PJ}k3UA0a=ObQQzJtHGX?=Usx=%K#sE5U1*pk3 zoS+H_F)4`iV;<`XGKe@GtnZUy%pgTHoJULxfHCViChB)?I1=o6rDneO$mk45mvcE* z)a}}5C!v}RL@Fca&5(?Y;ZbuMfrIdFhyVCL!Tl2aV{q>+$Ctf6_ z^j>7!Clp^gfi7oo%87e8*MsCqsg8p{LbD?9TXfN^YJtC*_m1?2h_Hsfvqw1hJXMzPh&_D4lQ5+b}-F!qX?iRdMi7j|XVto8}9V`PR%3FmN41|2yzB-c&wG4hs{aZLYBwV#;3SjF^!) zKoPX_BHEaxybqj2NdSbK?b+!vdJlrg^pusyT%YWARNyTR1#~R}*(Fj(8+hI{A~OPh zJDa-ur=jfsqF+P6^ZC3#K4Rs6{D1$y;p1y7Z$5F~Aw4s)_XjVM+Vw}z)s0{6E+mL# z3uv=;BaoDYdqbmYG6pO8DDT3T2iC%CyBh^WBGT3P_`u^amU95d;4>o06LMab(HmT3 z7{cC&iwANv#xv?S9T+id{lFtn@n}W{o;~t%1Eb8IYb$0S8W|_R=m2}r8|;X)x%V61 z`j*%X0}gP^lT5(UKu5GnK|p$|p9j=3EZC8zor~&F>pX@us#bW+SULC&W{*5^(4)Ea zfbcjK;X|<+Cm{65I)h_vj`0X$?C?38*p61`V8<{NkpY+C;ofSp214Qi9mndx*iyqlt5e{ z-{az2qRBAH?s?*)d!|A3+t}`JXox+;#b&O8) z&Oe_9uzhk`Je_C%|CsxiUftHMI}B>A_deda_OTNRDMt##5OI+b6p9oAO5zI=5;Ccf zN(zVyMO;A?h>#E|ApQa+7bAfJ$Y9BGH3h^)L3*{CQ?sd~pRaeoYA=#ReWmWO)v+k%U7Gysr0A@VTh(pA*(tA!m)JT@ajR$No6? zdoq*3^Pa5qvXRbI3|(|H0)?<$vMQ$Mpsy=VcV-GWr(duC|KJJzLGt6LpSm05>)W^Q z-OT((D<1jgb>DXeSw*$LK6q8H!eq|dy{zijm1od!BgcHa_}fo?zj*IqO z-JidCU4KvFxnEaR;lAI0|73Ru`Elia`h6HtmE9vE@1EBcM{Lb+ilfNX%pjsJ-8XLQ zR8m1fc)xwQ*(?KR`?Z`hBqQ=@_D-1u?DX}%0yFm}3)2#_g;yXeR3EV3k8}dlGS%$X zbjzoG8%EfE3h$GAYzKa4YiyF_KB`G_5VAbS5D@`}%*?q(%){lXIH58vF$&7kg_hg; z07aj($F)!QJ|iqx+h1p{Zq4uQh@3ONfW{eVMo07{HD#JASSDgsns_!#otel$n9#^I zOg5M)DHt+jiAMzVn2}8wqPUg|ff)+eaCzQ}aCrr~QAH4HsGZZp)3TnaXEJhW$WnqD ztsiQDk%@|*sgu>*i;PU59E1V;l>nUce8MMHeQQM3HtTD85LxMz`1FWwuZ?GwzXV1{Da-6+F~n zu43fO;P?dk#+i8^XZ`?`CsGz|fvZPTb*$ue%$U%Ah+@N(;(8wT*bU!(x{m>0J4-G= zYB~eYZfBN?Olq{QR0s}M)2!Lg(J#+QFh;V`y<9G?NBd-OR+M2B2^v?)nJ&X|8WEkyaHk8V(_b78zCFpn-MgxK-q+3Cp6~> zm!&e?Jn~qwVJ(J9ot4t)QE$7HitxToX0U-;4rHT{NAb|(e$k#W1OU|#_4DOP-_d(q zr&qw;w<5^Pzc%07k2uhKeGEh?PAg-ioaf=SM-hH0Dnror&N7KlO(3@$n(D zUazSO5mDEx>J?NZs|0?#>Q#BbVKVqie!DWr3=Xovs<3H;K%!LuLaqptJCKk&CI<9&P^_bl8B5bIw}IOf*4?HbR=7@{ODPtA_IyDTV=0! z21o@q)$^fg5EYx(N-Dn&>h7O{h}cZWcoe*Z1`%X!=>SXsKaHY6Mj684*ZXiw3geOXDyR$aU>PcY7%qE8>2{G5aTf`~gS2UatY( z@4H^FJ|`oP71NRNXH%mi@i(u!&;6ZzPhNqaYDOvb86xtkj>t*~^LabFXTE*pX`Y_f zD+7}dM*FNXmT1f@)WVfSSev@8ceB3tfevOL%obigd4vK&V|GD+BfLV+oV6$3)K}kF zNmpQ=r?{U6p0!-0Yps>tNFW~Dgh2@S_h%jR;ug~YF>V$H;YnKpXWC2e7kjrX*=%}7 zw;(wSYi2l-dQZ@^t2%@t2@pM|!nY&Q{*v&fyKTUx#hGh`XQYKb1U5O%Z|fE3A;L8? zyF@J)F{5--+@{fm=Al4fQQJmv+hP`^dc-hLyQtLj4B%SZJ+=Blgb=$G7xG0NVTgn% zcRoQfm#LA1RyRe5h}gLE%?cSo>LxMMMzsf|$E^vLNh7(jZmKf;d&DE-{*`aSKlrm> z*EQ!RdA(kk#&xw6Js($zQs0UiqVjxX&gjqH{n?pBh6O=$hJ%P4fE6iBCU2!U-(KXK z@An9}uHY^7X1PQWt^4S@mPOPcDi}Do7J{@YM3{Rkg}PCo4EZ-A0H==*!pk1FOlzTc z?nvTT?&Rt`2fR;*^(DEzElgukXjil6tf8Vu8U>*bR;oK7ug3h(iWAfn;EvSSm=G?9p$?v7^UIj0K0 zp3(jf7)SkINAP;RuImDsbvc`<%KkGK6!2C2xGI7zHZp>*M&0~>({{X1?2T(E(fJi_)|fU6yaGA-QIO#R8LfXn7J6aV z7`dhtJwqS}&Tuw!e!2-!qY(Us7RM-n&`b}e`M^E20nc+bR+$~-47$Ijc8-82 z3_QvyG7-590=1&i>t*hFPaycZ$_k@lHu&+XZ&!jiNJLihr&ng>8AhaqyB}9n65yFY@bzM5_OOR} z#q|nDyh^N#JrwwQ`S?)?L+2!gIJeRAh?N|Y6&V4riun3vw13w+M}0<4!0VaOIfLiU z*|k8TL*iD=<-<8%ZDw3)I;)0WJ;-E;d<^%RA~>MbEq^g9*7j{WBBl~BIsy@mb0}zf zdIK2OC!|p;$(SZ~UJUyodeE&NYN$EqV7kwl(>TqCgzG3_ntKOPro*OK1Mr zbM{aC_`}B0x~}`aqprFx^{ML$b>9s~lXYf=B!29j7D4xfw09E1i%621GqQxBM9`X%Th{^w{eJhO&IEd9Uh)Lj6?$(k0t44r7qO ztCQauzMsu;_C3yOyvpPMBA=!NeB<9*Zl|{&(8#mpJJ!s6fzHGNUchE#7%H;j&DGza zm}pEf_lv~SS2sIet_mX7(KVy1!k2P4V}}mTc*ICUbCG%OaWlnCN06+Z;Y_99UMa!S znP*u2RVLCucqb%~LW|(|H3s=~w6b|prFs$fFRfu4OXdH!Eq$orG>#j4n(>(dK#&?l6G?bu+TNe^p1t zFZsN6z0Ntf59-o6>i)Qjnm%u2zNMJE(i!7yB-j!BxH8!9!%;&0(>LBHKHsBZRo3N* zb{wb7rZ=v5z4ZAxqo9-}>py4Rd5W~sO$>1861BCFugFF5GLdCP@4AgVIEDjjLqLq* z)(JXk-zFvPr<(2tuk}FqGEtf(#>!3iy@-w9KCTxE_*U?e%2Du3Fe~%<5N3L8>eD0; zf!0V0O;Q=0?jA=}Xpa0)QVST6r;%ifl7gtnk&#{cr0nHwZQ8mdK(eiYU5g8uRgv2i{yz|$C4er|XrU&5Ky(Bfu&DB=C6~rURce~9 zw)xdo!$0^CdLnHh>cTleqKZ8gyrWLvL1ZOc?}MWR^zF(?2z@IVVDuG{0bcXl&*;HV z*A$|A&P@b^lSv}`jEqL!Dhot&10d>JN>5m$8P{l|ZJ-z+k%{@95uwJ+5Xy-0;^(*QLHI@@-EwCUm|$TCg9y@#zFR%9W-1M|5}a<+ZMg#QT@=xP zrT~p@E6wpcr0AIpV1`miN2V+M)00+W8h9_K!EagTYG8;NrdyNbAgmA^94K(3lYIRJ z(RxxROyq}?V4nC~zuuXV4HygtE9fLm9e_b%m9H8uppGB8#IrH!@Pr?zz&5DnJ7Bx{`tJmGuIXE5#bX z^&f4hLDRsm6-N3CZ`kX)`kbnoDyoUPqr*v$ROl9Rj)e2=%Dc~L+$Vs(lEEBxH}8q8 zDKH~f+Rn((^$LC0`*wTIkjUh;qWl|^C5f+>-nSh4qQJD#M(lIi4_4Dez4i-&y2auq zn_&BN8AwNS@8mX&M_}o@g7QT6WK^r$;}49n+XKO1_fBS8`X`RYrfu{(8@fful|Bun z_7)XkV1b&)?57p9K{FH1RLlcDx^as<|vYaytOLE+dme7@oy!pNkoTTFL?#Tb0%LI$v#7-fOC(O!BH?HW`-Ox zGPg9wL`6iN^J_I}|B_GYweWS-dk)E}>bpT^Iw%@Y_E7|r$>;(4O2FGKcd_n*La_*kw*J>!7iGwKQI^je35AOp4LJRq2u!O>jdpoo=&?GND5ICire zMN&**)?dH;I(A96cfl|FmgktBw;VfT#`4nH17qnz0= z7mgRbMcTsK@I1kGrtJNMnJt9bqyl3wxl5>@X6Foux&qMjka2phVq783G&9qLA%O9N z4!~M2(7g@5GaXO0+7JKug(o}f>T@L2b-lkIL}g9ST$T4dXB3$q6h>#VrHFn-TF5SB zPgn9cKgIX=jL3z*@Uwpmzam< zJgoSa#6w}KUJY^D=;$1o1sq7RN&G!W2|sLX`0G{UWR$lbV<0rE#&p&2?pD5JxU2(r zv|b~mb$tS0xC`6}89cWfU_x9^wTpFnn=`dUDJw7ozg;Dy^F1U|XZN!{lMMY#4F>A5 zu1Hav#TLc*3VIYMxz;tkN@~(z|3{-JLJ$;WF`but44I9EZ8&(G*Ee+Y_WL6kBNUc~%N;kf zIMDI-C9vRxYP%c&Gqy&{l}p=c-*I1&*bf68R94z%aVK%h64qh61ten zSmU)&r_Zei&7f`|=y&$kNB~<}wm9k%3`2xRN;7X7ct%|*k5xI(Nd!S{9GVeT`%gRs zPmf7n>(`LGbIOT$+5?F|Yn(Yc(l(7s0wd5fq0j&|>HshfP%Nm`hf#{Mo>5K#?pDOS zUe!GsW@dA)a*o$nb?==J_&Ipy*B~l>;mP(>Y=ElEA!=FKcQYz;h^a_mbf2p9vuPCX z13tdV8Qv!t^YOuR!r^;$nL^a-azlV$=*c1vyWN5mqH;GI19VD=7jK8UIk0V6S9l{4 zm5J4!FoN(Pt6lTu4sD)to{bC0h}wedM|!q_0*H+?Rz%|QPWn5_h&^>*%1>W4cy?}JQ)7X#|BsLwlh5z= zcgT0o$?e(;Ku}7p^l)m$%sBUetlc*?QlKu!x5C%7zA|<+GZ9Nm@9@zBa4M57U060^ zHu7-0VgNM|PT*2jci;E9t{;CH{(*{_=Yv31eOwm_L}e8~H{xcns?OjHbFp1AteD~J zir2*mN*k0}6(mlFlbyr6b~7_FBLc5iTor=fgsgHB2)nI6w)KPnkz_;$uNUhIi<)Oh zGApEzvyKd`gFpzmTTnm@xcia;L&+|ks4>h%COr|I- zC5VuHCqXAy_+lP#MJ)mh))IsxpFJ!K{)UO|aIdb)d6S^eynJjFX%(~3BK-Pcg z^hl}#Vw%zbwcy2mN64u%KNePE^0uki5;k9A#F_ZcAS;yD1B71JNZ!~Fi9 zVOA+ar}H#s&UIxpNcA{8aKLr+Zl*F=S2+00H&~XOBQge{AzP-VWl({11lz`J`)N#Z z8f!y@s%)8Ab@2kH!D+D!2?SyyqJ`1W@0OsNR=hcX(`jYeCqBX`ZIg7%q`gs*1& zknH~jHpMmutzfhUP>jxugHfc`pn>;vjvA9v&zwAv?SmabeFyaz{u^v~z=-*UmwrvBST>QC;xT5vo^O&PHjE_l3!t#rfJpw_ zbBZ-Mg?|@J7kuNvYoX?}Lzd(*nj?c{KK>+o#*Vg?4r;Gdi(4aH&*oEX&Nli}$i-lU z!Nj?zE@Xvf?i*J{_rQ918HC2fe0y!xvlNI;$j8IoXUeF|%$do=kN5cg^1D?+WZ|5u zYo_PjRdqZyMN%rF5q-~TT$QQQgVSLeP>B0(YqB$a=%Q-+!uuV1%%_J>sPBgK)qdoSg`0L`6?nO*Xmv6)n>qlb+;M%gv+WEqr?BT!crXx8`Uzi~ z-6WeEMzJyB*kBk8FvD~h`(8(|mp1@oElZDhKp?i6gJ@28&vmu9fv*ia9Vv#x3A=F9 z7ZnG~_4S#mJ!X@B&U_^;=(?80b;PJ#EN_Bwts(-)+rW#-xA6Bak1j3>-0|ai6{_1od=8%%Ex_LkBYxib&Jv5u7c= z1sKXl94#;}Kt3MPW_*rY}f~1pz{VCjYi16=t zGm7Y3cmEk98rD}@UNTm2_#)lU*hH){V@8~*%wEEAG6ssKf)Q*0=pl5^pyxmQcm6#9 zfAb%H<^NsauLBifF!%YNsjO9Xtr|p`msHz2GzV{7h(x6Jez;iS4pT!_RBK zCr9&DA7T9&dLTyRURSYDDs!z%fQKI<>}#=eOsiS*Hz^?zjA?BUu&^ZKXxk~AgC3!g zOC4oCg)nkM*H;ZqzR%$tS)@Ei+Aud)6|iSAfymKxXNCv$60BP?u`@u*UG`T3=yUSp z#}gI5a3=(iS#@0kqbjpnKvZOAurkHGhh$#mWk2txfY%iuGP!~a5)oC*;1iUNDzj4I zu`n~Xq$D}!3q<4XgLvrXZMX()&qrOffCUJKbJXce$nrMtQ@|q)*_;@z%g>V*D7o#6 zS(O&WfC@6*vk(H2VW2)TA{mxV2dw}WFk(+M$&9Gl&Gd?^$Y3O|$}Ci|GMHXR*Wd6r z|1qz>m(Aw~5&Y1W-R(B^?g~Rs2irKHg-W(nMv)#CJ!2ZS#SEum`-A*oGvrD^ngG)T zz161Zeff6B+V#-q5@K?&a`s2ehUw8h2G$(;+B87gq(j6Ch+r;p#*PY6b7UEs z)w#Z4qrg~OGqCkRGh^Yweb2KlngaqbRe-wNd+&Cv_w+dpV7kZMztfL=;)i|w@Yt5U##mFaRNFh6f(;N!|l0@)pz$O`La$;ga-^;Yf?=SjQJhD*38i0X)7 z7US~lh6qMtjKOR`hQ+(qyCBIGrMYp>3MYn!esshY)|?5U{yNdkmNHUmLW@Xhzm%y5HanM z(2}bNMi#-)O3g^Rk7;kkwTK&WCkcnK`@!+mRqr$G2(XCa#tV{R_dYnY$evMrkUpE0 zQMHX;?z?`lQ+G0YzacZlh|KWZYoh`=hKVvVgGH9VfqY$26_fvnU(jC$UjO62Dk*{) z8X|*Myjh+Or}BE}2YLi+0-XO#U|sVAtUC3JvBz_{dT3u8;X=VC_G01JEgB^V_7G$O zesD!tLTK?TY)9BrJifAgKAD>r;@6nvlj}VfaLF$>r^|IcOOLf>Gft|6l@0bBcJH`7 zV`yxDIzK@ovHFSu3_Wlyg#aEu*xYAkFw<5Rc6Xlxp!;<9kDW;Ws6z;#s=TLWmLEgR zlJ){@8)q`hjxr>G2z=PK8$rftAIKmv&6z+jl0=v-5O$*UvpIdJe7QYf-`6ObwUmgN zfk@(sB#eltSfQH`nV2=(ZC{xGi2s&EFf!Jq3L+Wh8`0m@&blifb=XbWcIQ(T?%?#8 zx;quYOi!&7$;!wLz_#H^PJ75e#3Uo~UjY8{^Zx++W#GT|H~z|+ZXeOM)n{oL8n9J_ zfSjXCK-wC5>$$pvhMLx$Bw-BYkI8JP<+EbpjHS{5d|zyRg|Adw&t}lGpN@_Xf&9|N zS1PwiV90sKI#*>qtBFG1#u3AmT@5{Zr4zuLISt%&aO@1lxzz_Gx@Aa) z9EKkQb6sFexAT_A6UlwXN76-(K7k%Gd=7s&Pw_|LJek#feD!rV>2R#~w^x3DkCW_P z6~Xzub4H`yDq}SeJss&c{ahE{@0gi@t}FV?w4wr>w3}O#8B?|#*oY)CG-8Qh8fR`N zc`3G_YH!=u`*@e_{W+tE zWagX$BD&|Q@b^D949*v;#eGdO2VToawao(?zOs9nN3)90L5<_~lj{;@Zq zguMx?B8x<(TT%VYH>#F181Z%O0N5SfxQbVK+z5$Ps4FTX6PYm+=f-tKCa2LSW^wAE zqbs;?DS}zgummE0zAYcZ+0peL#*APrw6EDPG%~^$k;IIw;84A&pg|hf+-bRMr{)H* zp|{*Gm-}rnpNTY?OYny;`4#KgL>q`i)d29!77-mX45s#`GX&n@MTPdoR}r zCL)Z8(tj~n;8X;oI-`@QtSd62uIRvayUZRlPi0PO>cu4e{stb56Arq;(*m!j-pl}q zYei#MteNR^`e@F|*__Ench?JFFsL)X>Dao{8X3*lZz^H;=Vkdh5#TsZ^+C^&lL^=tP8T>e zEx}C=27vpV5zgr!MO6HNL+C5PFe%A&u{DsH*Oe8>%H63lmq9|@H_kzpZvb`&$+}pV z4Pd@YK*n`3lhd4Iz%yv;oI%i}RnmEp5sp~ST;~fG%VcCc5e9^w$cIg{T#=jiHh=B_ zGS@ff1s4Dn;c#|~WWsS4&&{~x1GTqLIE&4fxo8ocqg=vhQ*xcNy(gF~XAY5BMv2qG z9udfZIBrmS@OwPX*z**3uNbRmS{vXAe3@>?n2|N4UfcFaIzgV2`fLQ+-X7s;ZJQV8 zxH5oWo8viczDM%*_=J+q<_@Bz-i6f(9cvCFEVAH>D#30*49?e61be3&zYPKV&4B7N zeP#nBAD+``g&Y3kX+V&Wsk#8+K11NTK+d^wAIMMZ4Ih>N&uyWn=egQ<7Cq-!y!OW* zoUe}`a0mfpmH7ikE=(Qiw@qZ;2NJG|t9&5CvY6K^u8R?IAKo_%w-D%#>0nrl>)Z-* znLS1zi%_gv1vG25$reQHh2&k{Na?0MuTzdsP-%SOdN3*BKNtj(B9UJQE%@ZdHmD9N$`Pc=TWexPx=O(vXE`nC3s@k{OfHf;qq z9FFDrvyWNHA;(x~_hcf%e~X@}LKWmuSL$xhvE3eE(dRtB<{xr;e#9ZnEcw|U34p%c zh^tb_?xpA=K*W7J&@wW;tcRJd%BYLiMIr7tK)gO8)1v|zjAA|N8NsrTuvSK*dY7As z*s>OS-P*gx3VhFPb;Z~<7lA-TVyxqb?C&0`A3wfNX#DP^xwq>+00`qLTpHL9BY-ha zx{HI!9)`)Jzc)$$<6t1lhj|C#3{zvFhz6RZGvTcl^EhsaC>*%5-8el@X2z^jV5~*p z^JX+4YEBT)lXQyb8HWcNapTI&P@3bLjgL`(XVWkA)h72ZV%*vIPB{HyUX@b%MwJ|A zr{^l}ZE@_=l2^^u75J8ebMc7f-xtdf%y43CS^{KHbnGdO$$|#&_W*vB%rts%jzJob zu7APlxymIAb06=)v#CJG4Uw(scqVe-$1I0G<|f4c5)oNuB`Q<4iCF*^j^D-znTBm} zZg%6Ua6O$9-$`6oL`0-Xp1@c-;~JtcFAzl+`qI6UU?#7RWN;2)0We9h8`GdHgoMEo z{oGj>_P4u;D`NQrKR3MX8GrmbTb88mxgzK&vgNIOELK}1d3Oy5A2ATFS=cj75@H~N zNoji+{U41}@>*6A8C-cNW(KF9bS{ zZ=G(%7n-urDzTi3o_Ksq)}MdneNlD zh_n*Ug*^jJXP^SJE#)|8S(HEW|W_Vw?$MLj_~ zPga0-!n14Etlb_mJ~PJy<;Z|-pV8SUC7qe`Os5!xq)|vT3hMON6(5A@{-BI!LJ^oA zOEUIB)BaYRjOFmH0k-2{m1qx;bKfi7%Nn-{bx$Q;FTf=uf^TC$-QBJG^h`%!=G^B% zI_LbT6Nn$S6K2^&e?1xkItn3Bl>$x!h)Nf1#SDYIDi&_o;4xP5dI4g0^npi5311%G zAZceO4R{QdVJ@u9 z$o8@TbiDMA24mP+6m&+$S_}S$4a)ddn`v5I-JOZZpXI2+l8Q!VK(CsB9&V#GjZ8!i zVDtCp**Q$|+~YF|4A9+rzgwEug`gu4aC$>gG;QwwtC~V{e#lz*!^Tknk@e&lly9!9 z3?n3&ATtAumC;s20wyZFQRTknJxo-w%486y!9-mI+2_GvoD`G(y>S{OvgmR`&s?+x zzD+a-hZ%g>h$R%AZKU6crVfS4t3cXd;Iq42zQLa7SPO7Azpd;We6-pH8iUDX5MeAlF)Ra+Kh-|3ok@`!m(7RP-zGCHR^$f>B7BL$@05Z3Jn!i_9gw>B3ICAwORN1n z&UrkTJzX?0F)-4E{6_AA}`Xi4v<#j13H)+!6m$Xsrs@P& zR2?v7l60Q&<#`pX6reeYuszVwP|s>v^emVF0NTHA`r>AEk z&}YsW&!~^eXM|-$Ue024FggeZp9+qmx;p$ZYxjrV&r6NzqsXC`{9=}_Z8G2lvyX|q!_1^1}GU&gP7cirY5Hz=~!uH!BO6CkqhfhYj|y*Xch%uqygK zB9C^^vj~O&L;ttG`*$te{FnZGp8M7==&>3h=YtT z;dShb;pUhpHKnpkWsI%xQ9Ww_pF#nmhpKJhj>wbd~z$_Gxx!+C(nMh3MbPw}&fiqIR51=8l5|1qb zI(=mj>h8$wb0RV#rw{+={Iwr;2<@oItnLO6nP56t4x0OnkiZE-5k8_35z&TT-e(-K z8!=Uw4zJ^N#ms2Jt9&H?;cZwM9H&2Nk5~ll!~p{v15X1(8lYW=wkZtzUq}%-XB?!r zPr9Z@4m zC-U<9yBSZmHVjt{kh3rcm;N>rnlUqUYBMa4_2siw_CyF1rbR_Wf|@gd2wM}3Z}k|u znjT(($M>>~#goGg|3c3&nbf9H^?apwJU6tyni8LB~!5Kt|9L6W4ZQ@}2UwXb3`nHXD=J*W!Ud9mWwES!up>AyKb| zw#HiJX>sW@xWx)~!og)<3IeNi#y^a9Y230}GjrB7?^_zsQ$M>WcnIl?FP-yt0hFc} zgIOEKSj{!0#{x+%fxxQV%*t$14EFPDjHW!}p`IO71QBYv7{uXLa>1FT?&k~d6zfVe z!RB`i15c~*f=D(cS*o#Hp^OoEJb5B8#sjUUN27?T8iwvOCRc-VPM@Ru%sGD1#?cAg z9YlpJA{}A+*!Ondw}AWp0Wj&0JcOP|tBOQq85ac|NP?>Z2m>S%s@5dY2Q~)zbM)i# zeD*s=qUs5%xaQY>nQ7=h`a6H;Km0p?=Rf0(SODkIp9VNKZ|w{zt8&2xfd2TMSRX=;JOg( zZuN}ic$)6hr}4he>EoaKoDQyZ2KZy8Ge7bWrV$mwiWyrpeU>uAgl<^QmH@&7Ox5Pi zT-UmO;<*IRo853ITLjlNvqDXfPm8+tM3TTf(ltIiq3>PErB@hGq0yo~9@4z@G;lbp zZh_ZBMmRrkNjyG>-?*qRMeN4%{5l?0w==?5W+Px1&F3$u;o6r-Q}(`u*Rv1w?aYcb zL;w($+Yc)ZfF6a=KDxj^4gBYTzXbmM$C3n?U)Ce2k*3v+>42tt>@5si5dhRqo9Q0<60#pZ)y9`|_jGW4P4(UIFAlA7-1QQgb4H7Q_|df_iZlrK zSI@NJlf5LZcZD#{#!>y7g5)Aa|H9c{jb2t*F=bX+!pT2Kj!=2F*?lX{HWq~Tr zEI}VcpFS-}cG*knbN`VC=SLnw01_A}`LLych^X}P9R647REx7SKL{wS{&CLQ3evED z@o+vgF}Qf?)2YDRYi0Wq1~NXGn1emH4#g0HfeH|=zw`RxO$Jyoc2;nNy z!U8`_PnW0J4Sf2{*ipe1#F*qudwhilIMlS`p74IpjDncy9^7}&bcGV#r_V^!kZ;0! z&XI86_a8%4{NO|Ak1yMQ+Azy?dImT2-tJivRmhCfnBnS6Nex#l!VT4{Yi&xlFIgWW z=hFN22N65Makr!0JRDv&4;L?qe59cuBlJX-z<+w4waz?3EaRS7^%?MHIgirH7ixri@~~%k3)MC`$?V`BS>NP>#D1*s=N`Ltdj~#(`2Xx} zyPMj-^jH51Gq!-y0Tz7D$+V}_r5k3x>=!--9!YaszK#74=J>DK;w6z-~Zo2p(hIbr-2Cki+}B}lFZ7wk}M{p z{5{2NYN4rn%qqY9?rw98ecD{#w8ks#>;h(OibIf=uF(iOGk(xMkr~=GGN6!p`gCJJ zErGaPy9lVqGq9Ctw92r(UyoHo&*CR4BjY?!V7YO(1D^#hou@~xdJj~nX+vgn5qJNx>`v(VlN2E)nA{_mcQUj=4G>M4FYD=9WZO{y<9rx6?%A|JcanmZ&N)!kf!wN&C>Ab@BZ<=Vpe2GB)vk zPh~*pnbSdxqc^1vLdf@N5@cC7;+Las(fsO_!-h_udcLwFq*JTP$>@ZFdsU}2fdlwwA)s8qzj zT}?x&8_WqCeK$7S4W{@iJai%RdLpQ!xVBYf4p`O%kYFF9#CReuAMy9KQDBcR~`^RW2EJb_xJ6N6tOk#1}?n{`^n6O%-}^r>}Q9z8}zwk!}nb*iTB87D2pqM0njhHmfjQA3E|v6dE6s3oUxQ-7g-=l zfvu+@!n-2yg*@22E}?&3A{N@Wj?XhQlMmDyU%*dGO{Wa{(t4Hzs$NoQ=YfcMN@5p){IEgxy3CDfM79XSYOBI%Z6JgN0{|wV2t{_;-hK z`n}Yx_h$pD(v!cZ%&x*|yx*Onz)+{{`Nx%PmAGgi!XJMK zed-L5aF(6{ZUN5MmY}p4%fgtw~rVr=fhUi%4JgyLcd1 zK~fguajz|equtLqj;NWX5N)|A5_llH{fW4?hJEty-UYzI8LkX-MudV1$dO0hLgAM~ zLf9BiEGNl_Pkg+;J7j9#UhD1FIf6}f%Sf+h++~W9L?$bR2nT!ElOIVsV?P*h(m~W^ zCA!N!G{G#1RE)sPxGIwtl|%-DS>fEpe7eD9uHSm=R(ErMWB}8TfO{~l(Q#3rc1`pK z?F`J2&a^}N5%@@j)>E(Pq#)hr^eC|K%$$494dC3rgs%8i(9z!|Dpt?! z@FIUj#%S5UZfwXzEGomTivgchPCxRpT7284_nVJM){$N5+=X1f$+2n*JlgfLYx>d}BPpq$-wUC750p+V+U;*GRZhv4b3n3_*D*}?>##VAynlmk{JLhQR(z} zr~a6?i2K&e8VIstF@xNM{71rzby1W>Q1E+n6p-#w%Ky0N8EaOEGxcIf&hcvg9aOqL=h+p zte+(^9(YEx$+cKQgDbM!2oG;~SeS$M>2>Q%0pr1Q<5iY{_UBXg05L$AikzMmQ@WUK zJ7iq>WUZ}3dE)0O@_&uu-xJ+>Ot>*QPP%H1~+A?@eBN zEQP;p7R9f02)!24p)#|m3;@So^kXwO8)53q;Qv0R}$gdUK_M9W!PD@x}2I6sYq+0q9_kmH${PNOo_0Wf;#K*$zo z(P=s{WSbnG^c!<6b_E4}ubKjSvO+doXT${|K|2$6=?Gtv;fb{(V{`K(BA-g1XUJYo zpY}t=Vx4m@^n%?1)zc8vbM6@kF;9|!6$K9sh!wBVal&J9-eA2QqfzE!FfO7Gsz=|y z_k9a$VuElYlwU+X4(*yE+_ zy>vWZad*Oun8A#-CnkctCGJTeeqIg%Hwrw$v_up(GiHooVw|LF?0YM-rI8h(aKAKn z0JLUN=efj0*lH9jzHzr}l+n?L*^qcFv(zHu0L*U%9Hp~Q2R@QFeqFzQ|N1Xh1psW8 z1BSDr46W93*5>0;(cg1aWTe+PA++v)3;Y~m?4yMGiUf)1!;Q2@K0??e!?@~`krQg| z#%K+^pM)9D|0dICw!lsAqR5RL4+>FR1GRALP7M)T#_>ER1niMo`W}ziOs(k|j%A;7 zKN%U)+_L)~VVjI3SqHPZi1Ucb{pjj(gp3!|bGK$*7piQLM{qt~h|r&X@B0R+zzF)h z_5IyZkozDPA*YW*z2Sd+V(`hQYRl&V(LF}%x7c-nwY1x_zB~c} zV=$QKvU=zY6t_n>D2!2;r9@|*AO?)YFZjtvZBMGSQplOpCgMHYVw3+|b@6Z(>+?}R z--`!mMnK`r;0J4Qw(Cm6d!5J;5nC=zl5xFOJH$Ye#8MF(e#6)dDX-#9x`9}9Sy_k} zJau-lF;R+@M{&=$9ADKDRK~&|u9gGuXSLM#=Moja}tVT35 zx+N$p<~H8Va3Mj{N#-QMS?!k0$r2C~k?dQ0Y52F=ke1Dd-|wEK3?L-X&(avb^A|(W z`MW~;9NOT@wFp;q`#TAp=Hr{g8IbL(*?vRIN%jqjM-swSM#@rPSfaU92Uh|u8IT`5 zo6TPLp@`^vSOT=7jeA(J%ozi*3ESS{To@orkt`hd3phT^J9;ppTdaM4EN~Q$)pv#I zUlWQ~KR+}Ans6zSY>|+}rsB#?bR}4c=dYs@#xR4q|6H+g2u_Myo|J3nob@k`c##cf z)LiMnQqEu~M`QMBWMnByI@Gk2=o&o}_X+QWV0^wOh&}-{Ur~YYpDh^0IIm0qzy0j1 z@)agucn0@5Q5X8gAtLVkcC5>N-*w%5z0Uhxuh;K?SboKu5UXN?d)y_E8Jo}JK~xcu z))l)Ek09uk`?=QKUk(4d4fmO-AXqN~7X2@=zS`)Z8gqlR^4d{CFm}S&D^xArE7i~! zvE?w#_+l+!2^G(lAI{k*FwHQjg!e0_6&m?;u#!(1H$&Iwc|7oWb|OPqN_ove<1gr+ z)`!T;S}cR$1c@N{)TYd`e&JUWpetpJ-GhQwz_ z5A>FJc&;{TOe*Lqs*G1U<{Uvza$KwyaFUF6PFamaT1>!jw?JfMBpn13I{}SLX^hbh zq;V|oP977UZ;o@vXSyjHjy$1^gL9%r(EZl^?xZp_-JfsGsIn_H!uxJO(@mXM;+*~m z-_PBnZfn+kC03x+0UY6dZ^+8I-~I{j_vascOn%I1`$v6vSX&wQnwuaXTv{1XPkED1 z;1*>In%G=fECk}e@iEK7F80(id1mO+X7`;0y%(8tr;|d3s7Hyv_kqZb_OUOCk5y`) z2=VZCUjT~Vz&?RPw6Eoj2U<3N*6qJUg%*)hYriUn0CVM}PdLiYn9x#OgFd4toH(B3 zHWMP5k(m~}_{(_+U8u!WXFfwO`Ne$#=>sgl<081}))w?|6f7dqa7fH%<3&U!eR4A$ znBylJnY&F2g0hl}i1X3G5nv#LspCIqAZ~d{@GGf{Rm($0&~02M3WJ1`os5=_<~XEy zi?u9sI^7nr`}N1VI^-T3jTjAdANAc-ze>`4e)fG-oGaCX-@beI_n8U>^m(^kzU<>l z*3b7%DIxoR-|zSL_xnM<|A3EQYa9iZC%oUCnKM>$M@BRzBRt|f_(V)AQGI> zxm`=>{%20l^WO?G)^jp_&q;7;l-4wlC5K?( z6sH3mrj-P{MyD03fUihOt&9YPmgS=h&w3s)j1>S73|fdkSQn~Cn+%Se;}aQj71WU( z*na$Jc+O6wbJXsw^JK3$XX4?m&UxhKa(MsTCyc>dSB`Ms4Q28am06#6hez-^YD8S$ z@1w?VUN4=yZEv~X4&6QHe*Gb{D1Pm66u+ZlW29NuNWUcj#5r)51YlM$NRX`h%3`7M zdI)_3ax)=d(hrZ*eL)WN5wr}mg#Oh2_cY|_ZN=_e|8vY4N&Yrx-}hG9aeCmil%9<< zU1ELZluRhB1o#~=ptTWE>(kq15E%}B&@)u-zuHJ?zg-AIu(&)NoBySA02og9SPAaV zsU(GvwITlRfs7b2_I~2Z{agTU)M#^OAQ3apNp|8CJW+Vc{lZ&8h=ahI!{BR~K^E~f z#ER@k`qKm$wbKxb5lNSo1cS-hi#sDRJNjAxU{Juwj)!DVtoD%xS(zER`W|u`dQxp5 z_0gai(rk`ShQOZDefM-{Xr{k^&V9>K+cwv~@1xQ5`AA)fbNYQGDdr?`2LIrFBwe(4 zX3org-zKQ${ibx^@B8x)7)pQLLuks&v%d+$h$P?!UtqJFA}|wf<}r8Qt%tfp2D6YC zve-uqrL~v7@O+nR52Bkx7cqE((FCEP8_rsAs)c2`rrDM%4EmJf(P^%>1bZ21GZ2=r zg6yKw-kKx=^Hsa%)alu(AZcJq6ar{d+>?1DKx)mAdNk_0XY0iR!Mu`{bje|`UM1T# z9ZU*>*?yL-GC|%XGdNK4g)Di0Mex{Z|T` zELI=9<2B(sR)Hfnpx7!Ak=W7!7MZS9+piIoyJ{j_p6);585m2KWMr-mQH)Jd;q&eK z(bv+K7!^`Sj)eDTYg8$)N4npd?pG;8=gjxF%F>8Y3->vn_jHTX34MRx@B5a-bK~42 zeV%jQ=YsTp_xmmB`}fbW5cc=}_!Y-de`MBivOm-LlVmu($G$=TMMRUqw2Fc=;U*%9 zeUuj?*vl_dmv}g5YaEva*xg};*DLIHAYKL&)5F=?ErN5#h3PAcHj`@>f9-sB0+P;R zThzxEKtV&sU>4RhZDPaWdQTTrB;^Pe(UnQs$i3Ck`8_{Ta7_&X*I7uDUg{pRA|sH{ zh)Bky9aRcQnSnJ?QC^HkU}ReU5~BNz7@iWH`Ty+XfFA2U48@!GlX(y8Cj>kSB!U^q z2j$gcHZ;$Urwr>MV#t0V*HPH{w2)KEA#+cyj=#!ouR<2|h9X2|m~r)(V3O9~7V5&B zu#v6GGNbi7rF}5M`_^;^V_H*9#QS^WrH_iBT^TW$Ol71r-#<@8x$o*sp6N!CioT<+ z9?ko%>$)_3?sz4j&(F`F>iR=>!e93$G(n%4UllQ2qIQ$lmiv1s2d)7hq%0zZ5s+SQ z&$wdAt4S{U!Y>Bjsh$UDV!(W;ajykNZUiQuIhM3lszE1z2hl9i81Ol~1 zPFb;WiXI-HwGE_2;UZ`FBwm1e#M(dem3(lKSP{%FrU3Z!mbm1<1+~G=1X{|_c1Rqb z>K%ZMcd|SWZL0?y*Aa;$97@b9la9IJ-hPIBkWqVord!30@qG24h^`*m*9y$cx~Pe6 zzCQBxVgzTX*~k=dy3yScD=qI)AASGqecE;3XWmEC=aow6^FES3Y$9xZzt8t`G=um1 ze!qM4+wb4MfB%&9`T2c5zX$OC{{8nnCcpYl`1Mg1`96S+!MtOfG$`Ghu$l= zNx^`TQbV-^ff*!vo}G)(P9k={2; z=IRX-+?cVxELMLI))1tgUD4mLj+TeuhQ-XI%vmLbPcwYeFKud4-gCA9jq5k_%O>e~ zo>1(`++wMfk8;S4x%XAG6O2W!j=lxm z=XB3Y6MY8wv(e}KO(|wR|Lo6fE&2TIZ-4*$@K+y40g$N5b9V!k*)y3LJwyBdpNWT(P}=w10Q*$XrsA}qYtd9V$vI_e7{7^z-HR;9wCe_IfDyJ-`}dJl^==Xp`Z_;$D~K z1jqprWMJ+IOU5Bqz+<%UUOIvzG+%-wTFx^gkP)t` z=Y>Sfy})%;=-45F%Bag?$=yH3cpi*cgDD0wqY9sI0Qif4A>MEO_B-a_^}$!+wCGk^kkJhh#6J};r zSvs>rDf~qD<^u?oQHhMF*P0;NN7EpqkEUaqcxEg=GqKkx!~LPnIm;aO{e@zJCAw5J z<@9w}Q4Hc%ke*4xmy_`eIv5Q|>d5+mIkN(3Z)h_PR$QSsv~R?)!0kD2RsuMz#;p86 z-RRb6o>mjCrzqS$g^aieP)TNZarS{>lxaO{tL;wlC$EfHEXq+Je4?o+Kw%EuLf%a( z@DI+-=2!?H4%bjHQ`Y&!ex7&$Dt^_)8T`?9OR+3PHGKK=H)$%!362oapqnAWhdZ9F zelNX+^B7cqU6O%}bj1~Oo388%iw*Mw)d^%(RFO=nNM6N{k9u8onlr4-suUbX6GDOU z?G+IrmJlDsDa?YEJ>Vr0w z!5kbox8#zwh|SoY;$un zeQ!vQx_j-uoNZ3p1G(Zg>`({-wj;qDg;yhW$j65^BZy$1iHuQmBf9}8!&!rJ=y#B_ zF95%;xLN!Y+o2p-c0S1Y(!oIe=wU=aL3U4OGO2sG=&40bhJ6u?(L}mQSO2wtUI6fK{d50ZKJWa$_3+LAgpWVPA^eig#AJ6zH$Xp4EUeao ztK_cYE0*UrZx~715Lb)x9d)&qF(V!R#HQr|Y$l~OGP;F8Mi7X=^hSi3nrD!X$a?HG zOjs%SAbAf=DpYc`k!mietQVt}4h1p`?ohh#h`<#J@;)G=2NAf4tlT*B;8p2(0}Qh2 z6$s(`=(rl;eji<#b$@>T_y78T_rD0Ij^pbD{vUt81M(-@39qZ(pY0`j& zOh&Y?MCYw_PdnVfG3vCFAX4FfpotW3&OL%6c;BN>#I<0k!+Il`mwkiF&dm`8l^C*0 zd+^9dQ~Op6YO^>&Ks~tVc-F7F zF$V8opVyb-lb!;ICrB(eV#Q6y)VgK;;lKf#{TVr8mDT6muA&G?$=KSQS3sI()F#wW zdfGw2ObZ;W<#V_1CJEzFSro&%y$TQTu;&BdRt+c+b8i?|kgy)pDGIaH&+g=0&}GjL z5c>c{y!=|YvjR*c)-e{{(Hdx1IXp4f#3TC;!kr39Y$*L+BprT zYs@oqG@(I6_lZzd*r*r5*p+?D4s{r5MvpVDF=W)Z#&b9k?3S&xBmX~Q#i2XkurWx#>pdGgU0nL1ln2s%-w)`~2U<@Bz zC4-a6 z%`I=dX8Gq45;$bF73G)#5|)pm%DP(+sI(d!eVaByB_g2yYDLG#N4(!~gwRjlaGwO= zxTovN8T6ovuPbLzK@v~rG(Qp(*KZFF@GY6(t1f{Bgm8U)3*bKj2>kQF|N9R=9e<)j z2q3c}+B;!op3`K2A$3H|gz^49D|T^5P-aMu;v%3doWr%cCrmH(&3H{Dr#;yrFZOXD z6oqjdhP(udeJd_((Djoyvn*mP*eMN~2&jhxsa0N{wwe==5)fb$WP_nOj!GJDX&a(z z*t~_kCT)5&RW2)7AkI_&Vn|1e?wa@Wy5wEU`KH78>cQQUrt$JgA)dW@SwC0@O7h7y zM$^>)Lj)RSUDZ3DRH`t31v+VdEsBhXSmbK@KpwLi6YeyVm{eQiZWIWBtS0pYWr)m@LePL!fsrF=>cc005gR*BXSP%ID$FR0LAv{;5-$82D|4>M#0d8x5kGxn zH$HDLlgSUF$IV?y@s$qmC_@Yx{CHgn{@D<~$G49F8zj&GwI}ee1OM*xw*UWm4dPEm z)|;FNqB1@0ROJF(W!?grc3S#kGJ(N!44vDr#A%wuHxLlM*f!yI6=&S= zaZ$mIZsr!9lM<}(O|afQMr=f=ud4uJtL8kMaG>kxvME6usYo)!&}PEH4=D@c zw?uq^LpISGGo=x-!!KlQx(^|id7R6{gBf&g8xR%GNQgkp zS2K^lq=Nt$4w&37y$3YD_T59%FzO&tFH=zoF_T$*y~>))#Mw zp!Y?S#i41_B-Wv`yBU-w$`?Xpxg9Cxg#3-5_ni>-UeQ811gur3U0Q6cn$#B(A~h0Z zySjHa%tQphb5sezaMP2F?B|*_Nd6I|@cq;>g+DFi1LoLZmH^bE)sz6&ob@}?#;XmF$Q#eJLR-S4-S#2D=;{>pzz;1 zBeNSLd9+tDE?El@PZGvOYds=nwonh z{0G1Jr~c{x;XnJ&`rZC}9zTEl=?)q^UZIkh&bJ+x02!O1R8+q)3BEK9&a$< zRPp`hoQXme?^^`b$_u!$+oxy0cI%6S^l0RNZp4D=h;N)T5j-<<4;`;&aj=Vn9JxFb z1%+7HHd>?DEgCGHwGFNkAYfk~>@gKWld$(%QN)&R5YKKl?wp~2Oh-sROn@J;gUkRp z-TRIoGN|4O(v+Vky-29RM8=K`Al1VvttN#8nVhyw9~cWD4A-v9-t(_Fg_Urp2i_1A z2pk5)^scwc!U&3?1t&>9VOB6C3$=_4;h9+Wn>6Jyj4Ngo2|0uf$jb>b4x3e^<-ajr z5p(Tba3*p@7J@kI6hK`};=aR<)T>aHJv@U7ep~?S3>mnJrgAtcU@bFFF8# zkssdxGP9~C>oWRS=y~{w;9gWK*pTFA`I%cN@I$!m>>XnA z#o2~Iz*m7~CoK;27VOoWiDdKHIcGb#XkyTJi-%(_yJ%CSY+3cjX#OEqP)3-s1l>fT zt+b>&o|y)2zhDM@{4VO@P-`Nt|)K zWBpVd1;~!L>N`?RiWu~kVzZuqS(D2?{iQ2Zrn8tUlg?(c~LWS1R?^HYaBLe7`X)D2zrK} z6+J>jnemx5&Cw=Y(x;b z(XUz0C_DRfs6qt#0OOn;5SW1!k*p67U{S$7i$P@JG)H{BvVz)6n30u%ia26qWw9I> zmsdoT`v9(wS4Kuold9s{E5d=fA~tg`)8seB9Ajw>;}Lg-ETD{ zGbv0JC7v@5F3Lo=6*JyWwn=LYfh8V5g#DiUh6tQbA%OC5GcKG3;U{)$oSxoCd|@>K z1F^G$FLW!2O*0;#F|HzldgIk5ycN=ogY0Q1kuJhGzKtE4wxKHXgeXBE64Ose4lr&9 z+C3L=0#q#E+9VNap=*Pi_C)!=(`c-XtauhV_~NA_raazn0^G8G54?~Fvkrcb+CXn@ zSW-8lxW|TcZBtZ)>6ajrdkGRu>fTr2aj^j0zvfDI5EW{ujU8+Ut0KV!^C{a1QT-N`9-Dp{wRzm-81eU`BoWAT68E^5Q_o$H(=aIATS7 zeEYCf#kuky-+p2i>x%33(_j3H0REtawcq{t)9!>qWU(8)-2Kc{#W@|+FxD;4=sx2& zoVv%P)>Ar0F;u=1!Mw`iL&l9EF|ogSO%&2x!!?z{X}y(MK?2lm9Fe$xT_r0+<)R6yd~! z0K=e%Z6XHZTwdxE<*9i|Q4mXfCj{HDB9a=#@}U`!>A(cPL~aNsaWGPDK_7i8_K|2W zpTxizWP0EzJm|F7LLTk=+pJ*#4L+42at)q=dBI9>FNSML&4__S$_zXL zqo=X?s0RqK5q{&8&`!NDI0Fbey$H!@`D<(aA7}&h72*kk(}>z=DXxxm$wV)0CPq2( z;N()LV0_irU{=inmj^FwN*s+Q76UQg?O4#Zjl#tD$_2P8^Mnb4ed75v0z}IX#)y+pA&n`)EOMb%&xktGMK<1 z3gv>J*;K`kkC>r1bRe&bRmk8>Rw05_UV0N^1uKcFKYMc!nf$n}+n8Czb-ju~MwM5= z%qrH!s-OPCU#Pn9N8Ew__;VOXeH1fuI#0I{#zjqqt#k{AL@;_B;7(vFforASh8d@q z#CKf`oi~zve@>80LF#)8Uo$y9=TmVZEG0`ww1P}W4Y9y`WA>HCK@d=LmVVg6uZP;bo1ugVI}%0ayoFlkGS`Q7&sv+X!2eu?~9POQd7ts7MFU^_YwQS?}Tp z&Hx7-tg1mkulml<-=NhyrWO7C!U$JI1m=bg@DPk7)h<4LX3=G9HmPV1&duvGdqDsi zX2$DUR#r#`UyioP>?VM#qN+glFe0w1x}HQS#C2VjiAW*h^^uv%%B+u{esf*db-g70 zktYy;K06`6NSz}fBU_KKdwX{l_?V$7A%|5m%Nw?W=-;HDpLJBIU zk62)8Zs`e}C(*V$1?KL}54+)S!Nyz=cuO^Vf6hwxXLT)uvG;crHdj5qq;RDss4)Iw z<9rNtun!E7YyW+iG6Zs{08p>6Pb2sUG6{1Zz@x?SdK-b+&{M-e!Ji9*F}~lTfz-e` z7k1-nLcwso>Ar8_OH7MWR)qX}7%_vA9o5|Y3;EWS1xQU%)5vH1c1lPD&}-6FJ!z;v zYtw=*R~A^@Z`-J@5P>Yr9dqD8CK>K`Vq*21W@rbs#V3F`9X{Itc0h^0SFt0E18vj=su#V zyn<(<#p|kXS4eEdb-gMX3^A|kRh5hsv#MU-e#-00s;cWpok0BQ58=E-f z2_4Fk8GVkoDRP2{i=$CHt7jmd!{bo4COCFilYVndCZ=(2*) z!zW(F0b)KvWS9#HZqL-dsRwf=$m#VtKH07GY8pTk=NJpp@^)rJeCPvO?hPwHOMdX+~^k@A7?$_|X8G4srC;E|=HhuQV1Kz6LF>2pzD%04L@~B=W)< zIt16|?TMWYssa#+zO6w+6{a`e=_QZRzyfHCgZBH8`9pBF^8#*nYYOAq zi+TE_d}epsG%90w#A0txCkC8`nyoPhKt4l5g1N@RX#mKI2=sd?-@3R(u|h`h<%h+i zYa~rs2{SG3xcLs;Vlh zn3eT|PayuhctS>ImEP^05Kv{FGZ_fRvB;Bg-=|0QBpNaum*CxGUM~W?-`3L*HSGkf4J|J9omq zJUWZMh}oS<1k!D$9wk>V$)Up5!;o+EbX}UY>;lXan6I$KZtX(z;H}=|1oJC{$DP%3 z;b%OWPCa=_UJreP5|R#$te7FU5YI~*O)BJ;tM1Nb-OoNv0Dx^RoPQuE@G2Q9qW~*~ z;JyJ!5eHgTHzVj8)@_OLQ6qz^<27~ zdmfwVAg_x1oJb0B`c$!p@3)=1b01w7wUw@>D^wTmTRp0=5=(vH#BK=F6E1qraqzUl zflgi^1wpL{C@@st6EA160f}xQ!NlC-70mBQ_0(09SOqY*A_BPsr|qi|v3(}_z~~!W zObm7QRumio;iw4*7_mWLN4}Rd+~l}`W?CCdE!VasGWPbD6hpfs>0=NEW-a*ME+lXh zhaV*A)?E z!*gbQe7s=mcVxX@nZ>M#e0}?=s_^TaK>WEJLVs9CnpINY@AmWGyPCtR`9!u}<&&vQ zLKD8Np0&`4ES0=Fxk zc!dUZdFW$hwExldYcu1ElsnwY7a##NGOcjgb<#?4W2F5?Fqp`f*V@(c)y1r^sfxb1 z;0hpWf)}si5zgUt?=O`lk3=m^Gko>zmBy$sJSV=6gt&px4-k*MndkcwP{sY*(9j8sPakcUHJ$xihQ6F!Nv}UP`OCwA^w=eB+y_eD=^Z~Vm%`) z{w%VTOtN?zgGz3^#KHQI#3))uYs7MgSASD8amB(}vv#K-tw0Lnw-<}C|J)JBk`L!2 zj#I8q2RdM`t;ui^8B9caoDMr4!&(k(+|%nL`WU%ICi3Ml4+5ynA=1}6w+kc4h`Mh` z{ON<0bszTds(8JME+BPZUtGDRD0$Uun9QoGk8j_qikSeeABTnhr$7FD4q;W1m_AiC z-I@c&RjKKWxYr065$AndRDbTHnTTis(;+n^x2E~VBb3QZ+;6Mj&}TG=a?UKG01g6@ z;xT`pGdfTJm!)8kCJSxop8}=U1b9!UFhCE0czM@~C?Gf^6&cQrw)%7LP6}iimVGQg zUU4;TOw7J(o&lwGk>Pz>#7P`;85395n=@M z_3?7cI)>y7>7yXk~GFdc-1Qps9kb5_!2ZZ(`^s9u4{oON7&9q{IelEF6JE zSgb=J9J6UOfO@NSd5^0bg0XsWJkqpnbMb5Ycbz= zmd9~e(gq*X(m#dNbzwR@vCn}+gZ-yQ%Af+7q`e%y?Ep~B8|GjEr~s|dEQ5aHgtbCr zw;^<%#3oO$7xN2Vs%14|iwM0Ig4=S(sQsck4)RA<%t7BIv2k+X96*tNl+d)q+Osm) zCpBcT3crjFn_0u&L`hfpP#kqcg&_uIKZhE~`;?Q~lViAbI^&ucgc^o==F zFGS$HB_c5#FeV96Svb<-aBoLMU>dB!U~VBNawW$wxCXy_m=C86k)#i4gooAL2HhOE{E+)D>T!4ZM6 z5eb`;wnISV0z}Tz_smEDGlUqKSMhys%=X8NK%7HZEy0lW5PA7+mKk-u z!V&q*ygsh0GRxPX!I(e6$Di9FG(qoNw217pF8l7b^}AKj=RS4^7>6C>nc%%C-2gmjP@zO+2i!Q0wJ9LZRu4e1{A+J;>63ILedawzR^I|Ec& zB(U6dq%i1lTZM}N_6j1_0!y+|n%qz1Xrdu&FH)jzoHHwg-{S1etR%%__1& zVjpYM!r%F65>b`cMUpcCW@e;?guL8gQH$){5BQb6+)W zK{NgV)Wic49!NGo4s3WJ888e86bSgoU!s`+{~d-QfDi=O1J6VdHV1~srlFBcjWs4I zyE4!D?ug|>w2yjN7 zMH8_EL&-8EASalO2AzYSGG{R;VIbB6H*G48G>@=1v4CohWtE=$_GnC|1Kq|D#>Kkb z#W4w5M-*fCM9_@^%EvQljib*{0WzhYY&knfG^<*YZw|bs;8@g9hR@{WQ{`YT&^@|!wKSxc}8Kn z|E=ocv>;}gHtgRej4(6c*ZBv}kqG02=?OkVN81yyQ*N};M=>Lc>)VhfA~>%VMOLwzT3Rb@wH2Yr%m|#tgd#60 z<`$akF@w=3H&o^X#Yo8%sz0%Y$hSM%N-!O$DK zWV-utvA=M4t&4k)00gEp{VIqZ*?Z4xtVeZGud16Sy$W;$?rIQ`Zjw1P!I84cw;39U zZGNcA-xdb5afZ4! zfM6y=X>*99GBeVi1X4w;2uWcma(z1hb3Ld~{61C@e_nm(laNG4bZy&nDFr}?IL@Zp zH5ZI~?~ufQ-8}GH<45B9LXgFDd5v*6+h)FOb(C!lmeI}whmtDt0Gll{j z5O7YaW0x9CRh-0C8#>TL)D4N)yxp0KJenH{`7!4#k0?ka%$Cn}=P+pIhXRGQG#5?` za(j$OGwK!$TgylFz$ghq$XH?!uQZ6V<@IOQIW9 z=f`YS<-+UPyZrbGLrQDYuhP7o!VOoAu*%1X0QJkUl#y0F(Cqh~&%;xh;F|F`8Iu8w(-V{?GS9t@w#cK~_AD^~p)@|jv+f&%JlJ?0;dKv< z!lwah!;`vrqJxMUo03g-`D_>f;H`e$N9K-%4sXVxu&go5H)3$Tn0BIX%&%Ct*CR%H zPK(PD`b8YTH%H@od>Sdm*+xn+tmlXUu1lQ2P!g*Bn{_F29FdB{~F z?hVk7#ZddJw;?*iF!$Z0Gx+sxS3e$nz1r;*_C1Dk)ZKAeLTyi|6Xjem;w<(C$S;|Y zSvR;9Kgn}If*_qE_GcZ$Fh=*RH{!uM(qscMSLcLApwlBngT}8s`@$iA(^@?HeYoMM z6Yfy*m(9&H%RFf)G=v0Bh`iq&Sp-MqjTonIu-k7sAXvaY z*fGy$WAk_y2Ylq_61HKE7LScMRNWqM_Uxc(j51%k$#^{XUVK-^9`5?TSEw z11}T!&dZp9PB4LGf5uU1W2e}&Lzcxaf||+LgeTiq&H$z z;|4Qft|gJZ*-Zs=1xe4}&sb~pca$<>T3U(>Nj#94kf<1OOs)qQ5oaFrBXl6XdlLe9 zzs(R4uYLD%&eY+}xR1*o4vCQamZ)ZTrO3sqe!fsW`ADpqg+D_L^tJeW)nI(38k6bx zfJN-PsaEp!G|<bi^10l|IVa+q<|LBDCds~`&_tc}=!^*mkL%z-FpekO z)0Xq${up-kEUwVB>g)ms|Auj4NN2M-M^a8e4UhB)=(6Wj>=|s}+btPAbI!^YgD-H3}vBlMQx zQIN>_OPnhxDHm-xUgo!&b$Yj0pQR};U&!VE}t*DZ8g-Fws$HZ5$nS9OJmX+Xalbos(X$&b9m5`S<90ED9-0VAMZr5Z6G$1BKwndq+pAIjKs%eI}@LssTuN8v=ux#A3YT9A;u%?YAa+Zex8xePk|Z zN5Ei}-&qdxb6|YC=9?%3AaWu^^(}ZNCQSQ2uw9yNBWJ3FJfb(Om|?bl(Obwb&ROusvp+-fwRXn92Jljkt)4xQrNHy7tQ?2RYIA zcwVKqQbZ6M2x|#EaiYG#B-gky(103Po;&9Oa>@YCN!K_|c|b`A`|bk=*hB%xj%XIa z$&LEf-mQf(qKGJXKm?P67Q^9vUx_mqMCWw5CmE`Z1I^#`7>3T(8u0lRDczReijn+i0IJ)YlpyzT^YpXDJWAjWXapg@f2J{H~7+{2+Z zP}9Z-JqVz0NGFRk-jtdMGDedQk~JD00X+%@}r zjb-+^1iGN{T#Tt=)Xjl|iw6!_wch|Jj`YMaH&3B9Y|pf|8xyTDs+tXujv;xD>u3NI zJ-+@4&juRG;Rv56{rnr7UKwcg3j`||6XZ7tjNrP!0i^=9$J;<)P^eNc*W6X3o16{| z!m;=0(U_SSE)yA%5h64M!+F6=AuUqipSps^cU{N-#q~pcO*SIeeIMS;-gibgh1X`r zvup1X)kic#H}74T2>Y%ew_EU9jA+_-;l4e0s;^IH`gNmrXSM>C_ZO1LfC+`Vg~qy6 zg?%%COc}}#m^2VMSEI2A!wvQr)8L+Gkws_$qU*G1Z^sg7@A=yhNv7Sz4J1f5dg#%E z5FOmY+*xbdAZgLB+0>s)D;u@XRCE5zwwXj5O{KYkrpY$hJ=?+_jDMf-s9Bc_j-ch* zv=Lz427pjE);h!6p|)yG{s1|@{LEI1B=QmI-_=B#s>(z@RFaAROK zdRyab6J}n_3>T{z!IhDzE*c6(=4^!oYUMQ zUAgytW$xELFw(sRuh4dxZt{7%+aW#g{oI}6^X_~1PZth>*MNI1T#4tazrJw45Hf_l zPmsC0Ls*wUbm)Fshc$0f`|U2RnlYQvJPvLhs#>=(Jc<*O!TA|(6EKr7<3WJqRUPwA zEY{tJ0$7L#`AxbxvS|s%(55+o4La9Oj>j&$8@{1M0Nz6s$1LDoBX>TcZEr?cAFQt@ zrDzVlZo^I<-UJ9G90-$kE|nQNK)4eiXXH__9avM0zvCX85&=@i7DRBu&(D*w38iPf zK7yD?1_gOQy&y6vs*7y`Tq`2z;x2}AB{NmUZe@%$X?**mjgb_YYkCh<=3|b*AHM_f zgES#9uwB@m@yu>Wao>BkVqF!IrK(yf7rX0Y@oC<>Lu~TPvsZ9ezee-bwY$3s7unas z(|zyW8)Aph*8Nf@U`2Rc8iVP6Y311##0=}eNOqw&V$7 zJnY69#_+;^xr>HTcyoNfYv&C zG%}b9rLV8s_6iae@N46BH_<7)?(SlU zue)qqNp}q==}NDMY*guWThh8z8~2lWodb}eOpff*cBB|YTTs2Mhj<)U)DbRE5X5Xe z=Uxf4=coQ~78vZ2Spl%JQ| z!x5Nimd6Uj&r8Aq<|_m8kqrrBo|kx5TH3q$jNpdDppFjEm(XJjsEMQCM^ z%Dlj%3*|4W1M%ZDApp+faNn8P$W08_W)%z0JZMr4;{!&9o>gR2e-SzD5#%s6T zj|HMLac|sruZ5o!&zmnGSJal|wN&kxH;s6G$hN_~At{%9yPi@y#O6Hy>2Qiwqrn(s z!MUxG@Sd0<+F;_1@-;}&9Jl@v*+BycoU7yGsOsFP+f3>WgzP=nP@HF@P%n^(u(v}r z*xdw1))i!J4=p1`#_(bbOX!W3+TQKhbVD=0IcFr|MB3O^3SH=ZHtfCqj>m$&<+JVi z!{eOKE>u-2H2#s{KYj2H}Cx*5St!O@lvDmzJ4&Amd`THl<3 z`CbN66XBBh<#Zr^s3ru^h9c{A@3s}jZX1fOLOZ11)ooI!d!=kXU$qM#i}zi7U=~$X zfHBX-`>yIMTeXk-Rq{leP9A3F7-11h z@5pHO9@#gC`&PGMLY`IID66}n3u80yiSq+U_y&(rcbt3hN$oShNc3$q&)!m)C~izZ zs`1VXppE-JtHsfenPynK+0H-*_YJsdx>>aMoKYU!eJlY8f%aNrur?G7vx{v@QwdRBetSUzkF#>a-!<>xG`FR(!PLzf@G|E+8*I7jn%ur^YVf4ui)O29R zQUn;8k#CbOeo-BWAF2rrE@4MidOT&@H;_wL8S0 zR)2l=>t?cQHyX@%-j0a7r115aNCs6yWInXFtF-BmaFmnk_V`nCQNjCV`MnHG?%TZ? z>l=PTG$NS6_Q9+HbKn6r>HrzTJ0fBpmSWlkx92FCW9JPYL~np+NJH_&`o*l>sYLC$ zA~p>PCAiOQvuhaH=z9n;BxQE(0og+YmkC7xhV#g>Szw?F5c_sc@Jhk-=+^;y+s%xV zF6i=c%7Yn*AfVBdeLPfcF~$s*sR&A}JrBqkEyqxsGKWCRYDrv~5z^!sD#v9CYUO2U z!U?4F8XTK=#4o7>@k2G?JPX%at_}NIxt|;Gas9#@>M@E#dza30#sKf)z2_uEvTO8H zRU-ZeKgHLVUo8?V^>)8&ay4yd>hVE;HCxq=r3mk>*Hh~{)4~B+hdclx2K%`FIZz?k zeKQw1k%^oQzSl!;44AP`t_zN9VgrK=jA3w|bccM*tErjr01YSdRvsJ1IFCEJ3pF_w ze4Bcwv~~yftVNIOk&=k zw4==aWgURu>IZ5OXywL)%R{3 z2AU(|1Co$I1)f`9zWP@maqkg!^Z7IxwQjU7@ZdY?Q2 zS2KWZoH#=&i0&X1*q{qn&_WU2u)SZ7WH8ho5-ff6o-SV*-O}ph&5lq{4MK> z-_$R)1M#CZA%Ms=M`A=i@B39P>T7$qGxVz6-DOqX=nk@~Y7dL7B6x4UcCDcgkqwod zp|7{4SjjR*Y8>MFNnc;?(zQ(K`5KraM|DYAqrGf!QR5O^*f(ZRI8H&DXiDZ9;phou zkvO6=m%9*aNM<9qTqLEl5tJ$J~Sa7`c*XuF|h>@%nFjX8X~olAgg zRO7S7H{2{t&ys|T686EFI&#byAo+ULEa7JdLt25p-Qe|cobPPJ8l)0dz7aLVSZ`r4 z-KAVwF@q|(t%wK=9MT}nkB?bD%zHS7XHiY@WVR?6%HyY@@>)`a#v2il*T}LX2H^Bd z?Lho!O_*!l_r2SZS@)~DuZUOeM+RG8p7-E_?49D>{JMuC&)T(!=Uw-1k?8s<`E0cn zu%s)2&~B63#Rv>^XhI7ztd!)}&DyvgykEmgQPr6}lIMfIF5*ma=yKhR91I8ASV6<_ zn3$EBoE%gx$4tKgP+^@MH4==~vFJK{VV#i+d=u=s@E-k2o(TKMF+h31HeKLb1v+0R z$w>4@jTjtEp>AW;;qNmyFjFUl9MUe7o2?i{o>+}c+GiEfkVa3t<>5P?6g5tm&vi|p z;C#*MjmING0LBs4Yh^BlKt>g>OY_YP4VQ@=KqyzWA~c*B&GD@GhOFn<#Iz%P?>@mDfrk7vr%}Cosd2lkB zRIthb-tWbEMNS4Vkxt2eV`Av_;OVQtB*S-&D;XR=dpQ@GoY0#|!r4!^p|oEf>uqnG zIMI!jG|?i!s^V}4&2Em*(9H>`h#5o*^JSmFBD+d%ugj89AX!b?j|W8T0-?2z_8QRh z<(1>lM1;DPK`};>R;2-`NkJeo?E$DMM-)%4kYZ&VF)7_x&12MQ=z;x@T|-cJ~!j^UGZ$U}jflSWy$x#mUsR6qq<&D2Iq?Wq8K; zHuvpJ-FsN;JfnGXtudFoif-rPzS(VybvqO!%^t^4u7PfAZhdGlJhr-lbDE9^4v9l7 zdPK})De@TY1MHD^5YErAf~JHxcwvAg>GLD?(Lub;sn{{3`%|# zKyD*MOl;$f9)Z0P^qjpS*d&=ji$RL4;!1*!i22(HNzCwMa=Rf$w=<=P`v!n(g=BKJ z`6K-lscNFQ@=RYaFehn*p_5xit#4|WT-Vzb@r&<3{D4iE*9GADd@*ya_2qtu-P0`i*2PNS@(g^RB3*OaQ^vYcXH?`$mVLA3-$5@?exnuyt#*N3a};;*wqsp zAsQ|qXGVf5VEleDrV7@5aNx)KH)bp`b27<1UrZ#fE4#RFkh&g`!SPhJouS$EQjsyx zrv%g%O8HnL%bvR^sEFj7nf*L1*0!!;p*KI@8CcV{H;*VpQxsyo~c?cOuh{<<4x zkgt0a_-SRgQ+h0~Ja)f^GITAy%0@H@Thhb=PpY)3D|;;ge!g_y{OQBHc;B;RcSzL) zoH-imxj4D{n^kuJr!;Iayk2UowF zMr)2dql#U4e28P5DnT?5fsme00D4?vFmzINCj)oIu@0Ji4Dkumc*wc(f)QsKs55n0 zCqRNB#abf`{Y5SV|AP7vn{ey`kF{#8U%y^ZgyO#E$1lB0;3B{73bL!i{Sj>C%jT%R zWl3c#lv2u>YP6|te_U$lF6)hWXuBPNfW9tCCbg1P?qa6bVt+L}`OK~1NJAMcI)Zt5 zqAm6<3{SUtKdl&unCI+^b!L<#K=sC)V+7&u*V`E7vpfVuO>E0(yJhb3&iEvl=D7^Rz_Iq}v)w^Ce*(ZoJ3UdcT< zHiC>uiI_;1v)-U;bAy=?LPn6W_q;F}Au@Zux>QDtsUjmOi9u%q& z>PKus+nMY2^;vdgzP^5aR*g3DRSmMMzw9>Db*C#Lo-IbeexzU*qZD*sp}Snrq9Rn* zl^rnx4}nUxLVJE$D}vRsr&DH5Be6;5@_20?558`?XB*)WRJpA{$Xv`k<45=L9}wC% zjuBxR70n za230_J+^+jkiioZp%dwC&+WEhb@guMCC#r}cr_wNcfez$dMjYA#Yu}2a6JNq8%E^f zm88_2&lmGeuc!*rnT(k1`WPW?Tgiz0mLC}Lo6xd9%nrnl*@Wxycs`#EtaaVbXJjtv zStTifs=;$%Fos*puu_b8&>@v=s_l;}2S2&ZS2-ivBj`A~62c#k1leX=-Tl)?R`Yew zVbw9?L7n+ah@vxPV~=QS+2-rj?;qa{bJCg=#F``~cQMzzCjq!_RL#eYC%2+oB-le| zsRBmbc8rQ$_XL{RH?4bC#&SZvr!G zCBa;7&Tv>DpD#w@S_W`$OCD*TfG0Uy`(|9yU4nfI@M?W&Oad9%ufsz#EQ z;;n4=m2tP5u`*t}BlIDs2r1zef_tUz>P9q4^tIIO-CW5C(R?h$WI;;+GbU%^816E< ziuOob21ANWcMnVnV^@7WQQJz|CvX$)>*9U)&=}^GII%N;0o`8#D%R}W&<5=5LZi{B zGN1_5C@*36@eR@#ukCZUf-BLbea{fc61v#;WKn>#s%(5b_%yn>7OD_63O;vnp3xJm zy++|V&e=;gBP=zb-aR`zaGu0+QM1w`303QukvIeA2u1LnBtd1Q3)PB@XaXq zuO6!)V<3gb{78kR;pGbME0=U|4kuZ+ptB`G;0c4*%%(cKxe-6awk zb}*u0WpZLJM)`feoNGRju;~$nEokB#;QNL3IESR$`$l&Ug^5-h?m<6&3+`+;jm{JS z6!tbJ<`4)0V!LCZ%Wk<1vNp~z$c=uhd5D#kxeFw&#jmfEQ?IjX$6Z5one+&TL{0oH zt_0=12VN?2P;0WeW=slnbM$W{sc5UWu8cNTB$#bnYw3UxN1nYH84-$$4#a4g zzW3MgyX))MumAnO_!qCQUw{2C|K-2`cm8&~S(^m@J>viHU;dYxcL@AMvrC_h1LSJ4z9={CUyUU88-2mIpAc@!Q2u7I1yF``L1`LR-E7R-t({Sajv^@-xxgHgc1%OCYKG@w%au) zUbhH$+o(3#nQ(WN_io9N*ss1{Cc6e+U)ETo+tnR(1RLs(OkS7T+B+ylD0AG$0+dOG z#@cXFA0pOLx4MTr7$1-1q{%Y?Jg$ZJUQm=GK&`dx$ry}Ktn0E(t;|uO4X5xAZ4ml9 z>jymv0SI_J9{=0F`8ON*4}c_K{EvbEJMrHc@pz!>%6Q=fPv**!(j8KJ9{o((V{xO1 z{^=37C*hXW{buI1#OfYQ_2ZFketk|(L|>N%87M(ClVV4PM86tjhPmQ?ap-}Q=+bSG z*W$j>Zlq-YqKE944^6+w1bsGHRk@`b5&Bn`Tw7#mKH(_sa^| zp2)MhJ;$CW0J}QG4%qzZfo|R&=e|4v+Kty{=BVL_!nG)xm0RQ0M z{dWU6e+b6^lz0LE3*$d0LUFAXndx?fyO-Dz)z09qZg9y%hBn(E+>gbJ+SO$e{RqCc zk78I&O?(C4Yd~fQch4xKKuU?0xVy_Vm}-fy-2>8>Sf<@8+1C=u zFgEdt*p#@dVMdxn6>Ea?=r-!6(Ye^&ZtQIdkrRG4Vw%a-YzY(3HaAid^QTkYB66YT zSGfBv)}G_B_cqWG5WK6aVE0NJT^nwj-Q`KwaU1OWWw1Zewd*d|c0{k#Zrxi7J+3f@ zOd(Kf#Y#!C`M9!8g;uDM-D>mWp|!Gm#4}neR|=4E6xd^j9}{3m>$=vuB7)Sq9t84G zdXF*UyL{@tOZ~XN)&J_`gPr=j!2f41O7H*t>EpxQt$EF~r08n0x*wU8zV5n2yMvt1 zJH=p+g-4pmOlO+P54{&-v9uH>si46?VtYB zE28cfBJQenX_3#Wl-w24UG=y|JX0c{yQVF|y~x+@nZXE?m{+3#_;`dwxOP!&itfHv zw%HSgK+h~5V4E4UcxW>2`{Xvan;dB0TuLX|!fietd?#v}8C9e9LbrJaGg=D-t0DGa z*G8{)-;;dQ#K==%U|yLTdZ9~ICiz$*x^E#YIa~XNtM`yK z#47ZF-cly7JpFRl1n+PhVH0oqxFS>CZ1Zu&+~EP1b4b9FaM1LJO`qRl0~xul8O0o{ z)*o31;uq9}{}A}!ozN8gKmXZ(8^9HM?FY%M62aP!b(wV6i~<@=aonk`O>$SSOo`@r zc}kOgIOIKbH-L^<5!}@zX02#*S5t6zChxoRtO!PvNr0iw8Q7Q|vlu*oX`ssy)9G(_ zM}RaKBD#Cu^Hl&nAsUzuGu1PynQjEeEDwn_X5I`&eL=}E*eh`zNwl}Y(Dx~m8DRgqG71yO|)J&bJ@m|{0$@3f{ zS_1Tt++tAy95O|&loE<{J;)z4E8?%ae(2w`|MZP?>i_u9|M{<<&jobt{P<|F_8sKj zTcm3fOQP>>vb$D9h!IgBtCm<@k1I%a*CoDo1Chb%F2mgsb1zlIxvB2zwUPj$-|8?B z-WdH&OJj3CPVtCu|G%Z!do~RmtXpkF42x;n-cno-c!nqi0#zUp!mi;6T8isJ7xy-R z2+X#9jQpfW5x#GqS0=Cm8Ajt(*2#J4ee26T0=ixym+!J|(L!AU#Ft4{?MPszrOm>f7?Hw z8~yLe|I^p61^hc79|7$9)!^6H>$;*iNvQ_5JL1uNAClxSw|m%5k-YCFBa_^HlD9(>2R+(10Bbc65_gdWsdZAs z&WZwnWHEe6(QJ)hOBk*$6#zcy-n zMJf1Lx?k93;>?<=RGW(Pqa{3EWf**w(xdM6b(qyo70o+wSlhB?N#7ue^j5?FeS(MMFamJDns2YtMW@tGfWdMNL zxzBRH0qhN+0n9+v2G}Ro)0iu91mND=dwX(6?an|~w|(CofsYIKuKPxHuW*E4&u*it z01#&`T3ywss-Kog|N6`EC)3_{?eeJhc#M1z6eA;ar4%xAx7N~6myFoXm0CHkyNu(1 z*IE~;({XuCG?EmL$3u$DRK&VI<`n#+y@h_OU+`~!?7zSHOL7P&Aavht?7elZX~HrT zJH)D;kpR1Ph+R8II@*Qf*agv2fKY@DyUA#y=UF%rzwH61+@obdXJqI^0+JnpT}>o~ zss>Qq8KL05$68MSYc&~f^Wph-kvys4#-Y@m&5FcpH0T@YdpI}LFA9sPM_f*Q5>TDc}2 zX6~OFX4<)Q&V+Qx6cM4!KjvHLxB3J5{ZB*we6!oeS_^<{E7zQg1iH4t23#9JRR+*q zk!is9MAz2jdR0|V6XGz#D0WvG)%|9O7C4dJsA}T~n{9B`A);7gnV;t+81wNRY3d9) z0cL_=8{NKEj6?v$>q#E~K2z8yNxP-Ee!_jvwh)A`Yb?j^8VqO?x)z=~B*Yr%DV1xbxH1&6*2Qr} zWUlp4W<<_^{=PpbKV--yVC zpC6JWjm#v`dovPqT8j6*PnLZbC)wVpE-?t0CBv=(uFWYmPrc|S!hqCmbQKTFv-G~8 zcDJ1|y2|T{7>szNOo6)A z;?K~aJ);^%tdF%a;`0pr9rZ`|z4)y^{u6S$5`YMeJRfL9uH~+`DE> z3RE}92H`5sO*AyGyT_#&qJ;3ePeUq_sY#YzU$BL8y zz6t@ZIDwu;hBEYK6CNDXm@2M_U<4I;Jt9+?j9ib8Kl?}US%1{uj^Fw;%$#@*Np~?a z4R;V=l;@CC0BF>4xg#XZ)fAk)BJM3}av#85gV6jqJBgmel|1u}?(<(tLg-|0cLP9Z z=A~ue_3DVZlyZJ3%m!ix`)=$4)sHIxOeodshGH=M$iTB98Ez^5M*8a$-Bu#XT@?}C zT@K0K``%cA6cqX?5W#07BCd=OH&{$klc#%W-Hz}?L!4xYj9^5rN33)Cd^|qvKk8M) zpI4vXk>AwMKOY5X4#^AvKl!>#toq}{u0RP|aK zH+um0Fk{dYB7JWf$mmhWy>3?HS~VNRZjJz5F%dH<;;xC{tRTpGI_{0f1rb#R$6Z4f zo-jb5iww#MT;cmhRhzsPP+g8)CkcRWWA2KWK+>O9Y(xW>xRwy>Kticl7bz$#F|WwA zRx;xH_?Vw}pB?x+>+_rPyX((6BxiZB*9sEIXoLG4k`tj+DiB@gB{}K4pUP?g00(_Z zL_t(7J^K%0!o${@p=3d_K}`~T1K6XD=8R#mcLBK)BD>M-qUAP6@k7F|yMYJ|6xgpD zWvuK+vfE!9CIS^#R8JZyUIytz!IAO{Hkm3~B)^m;kM*(4f(EJ`fr$L|W(GryT%l2b zMyxg1!pw+uY2JPjjC?#kBJ=YM{0r*y`|_8npMQWdak>s^gWQ-UhfYrdKoo&{m)-{{ z0J}0nf?Wq7%5R4x_pWXjbuCSclIUgxj_+4=SI9u;1>3KiZD;l*uicyDUj7KcHK}R? zS`y(2J9GlRfNHxS_*rgPau{yjdpBdHm%z}>eU`usC|*qko0$>Yw6*Z&6h>rBP;Nk> z%KcdeD;>EY^{;Il`T?W%4W=#>oObrbOOt{fSw3Hxgm<*xczVf*U~w$rt) z==LtSSwuv8Z&Te2As9;`!i29i!KtmA%z{Zmrd&6o7jRfFuzx?qRAn z*8<(M?k|)AnU$qo`#Y3b93OHS*<4nITGycqnbd}7mo;UCB{JU zleSRpN-onPi(#f#h>5W_VqL~0l*viLULy-%|&Tx=;DQhx#E@;;ex2`T&+E)EdvgwS?%D1a#u=GRn z9HR-ibGEiybNWD(09@l4D0|BV<1 zSknQbaou=qg8^|E25O%Xhs_w;u=yz+fIInpP=aS z1vqpE=iLIwF~!LyU3l%EXi}(mn1YP`1^UT({(=d8)!!#}Pr!ZuFD-!~E>#-^_!t0O z9-|}T=}I`zBaiP82XjqC(&bV+dbUm(zZE(m!XK?%I6Np3m>$@9T#rt5T4`_EeZHSo zQIoJ~VlpwszGhYb3qlcSBVxIZ#qT4J6;Z`bFUOFqZeo!JHMkjFt9{ge6v_spE0XIN zH0UMT?764Agvj&c2yn=rn}at^)N;?W zkt!}}nK*r5kW%?fN~_h5N_tEXjN;>ra^?8N&Yzz;&p z7E(dP=A}b30*XNo)z|!2GsV*DM4t(}3*y)phQ*vl>#O27_mT0fV=ZEa-FQ*$6&Zve zvQ1HYf!3r0N}3T1G%mzlACZ3vQh9@KTapQlKyS=?I3R;HAqK1m^7U>zzV#X2ZglB# z6nbO(UJs~-B5uvJ<5>YaDPqT=#^_D&rA{B)lDu~fx=$`r|19&Z ziE-N;%|MFo2hiweuUTgm? zMoWc7hz+zPQVoQ<6Yid5v4%Uv*gb89qmGOEZPEw@3%QYxZeCAy0dDrleF3?Znu`F` z@Xf(w!J&%kg!o!R%}fw6pnfIC0H;e-HQ@4(@^Ef>DUXBzMWQB^f)~_F^o2trtuyZ^ zmBmVz-`k|7l5lROe7>DK0!z!2*NP(^*rxeRo}OF_w)=5Gz6J3z%U0R88k{fa8fie5fTD-+q zyQ?eJ)!(kK>R0RVTfeo|(?SyOU3a_m-F^dqoUZr4dV=dcu%6(053DD+%G3XqzxCU{ zJ@0nUU0)yW-+%hQ{jFS2)v_4zPk-_!|J)}(`PV=8vH$WDKM@fTfj>U!_^Db}xc}y- z{{1Iket8G{&lg_!=Ffdr)#m-aPLq{d%tTd0p5|M6qU-5_74E0w&0qQ3Klr(qUi$K9 z?*GNV`8WRG@BZ(3zn^w{o9Aho$}~^YRBE+S%uLlp0DK8yCr^izdTWnfdFACl{DViY zyma&E;qk!(GUmf!+U?3b&+}ZTsnp48Ewz?9S*f*Fvruilr{kmLd|bEl*47rA)0?l{g33Sy-PuYMZMD?W zS{l>}7N5CSv zt;@~B2dCqM^Xa%Q$8|k#ZCST%ZOx+vf75idq6{R#c0XVx^W^I?DQ%c;(v<7Rhxv-8_1DK0Z2~j_Yz-*7N4e=9|Yx zG$KOW5grWiU1-i=p@7PiE*p7{@l<1yMO!-e)N~f z(%QQWRz#f7r{nSAa=JO6kIQmi*YmP2t*u+zoQYJV4^kK)BN&Y#45)ws1%*^nB}C(5 zP#yy%B+5g(%CG$UKk_4Q;sd^Iq%^`$r{nqf z=zKmd=hM2LmUUUz^SZ9(*BHD7B~+wK@WgshW09kYsdt*~OrG z&`#upgbF~2BrX66k_3YY(ndnh+u>u0Ez?<5#eqS6$!uqA(RlIDupT%0#ylgq;LUC0y5l9gdhEW-=1QZe(q9TN31Ukn zpb8v>hzKDdkYG^+U?2bnBZNT@MnrRAh*l|PreX>eQ2^k8%f0D44Hn7ed^(?Rmh1>K`XM9|Z+*pZ@25Tt{uP%r{eLItD=T%Z9-D-;pL z#qT;;ND=}f0t~ibcrrP)Qj2L(v1GN3@+~ zkN0~*wWyhvkyN`63I$9f^wwGEnT${+ ziu?vB2!@Ay+alcTt{^-CSnlm~yh)^%^}KD%+SazMn{QidEhD;ni;Pn4p4v+|()%Kl zpfmFp0;KlOOOVkWP6$G@lZN!c3{wzh5+pLN2YZ}~KsY@hP%UDnW>AHwszOyn(V0F; z1|tcCxAyjf)wcC?yg5IHRPuwhZSHOJ*1WlUqq|3%RUkay7H{3m(?k>ukiBjb6~-ul zKqUnMLbAlcC8C31x3P=sG2np+&;c-^5dg7hHTG!=t z^YDCpbY4#Da$2`_^R=~gVANXp*4*jt;S6`bc;90;bb}I*LL^~AvMBF#LI-{7_9LJK zZ$HW~D=;M3zlCr_2*k`pA9p=L;x)b!^wbdPhRxg7+V0L_>kYsnxh%`+(S!5x;dwbO z>$0uO=4Tg^_CMKb zOe!0ZXbvZ5TX>JRRG1UbeNh z)qQKxTC|9aP~L(;_W_V2Jjjet9G)m7@*WU^gBt)$wLmbc6+*IVR04t^$o``sQsW6Q zA{?ZYj!~KtMVZ)$LgbPHJL?!`1&N@0ro`5!yLsZPgB9+N9zHm}^78Tc@O(b4qvA`X zg5JV|eqjb_KF%al1E6jIeyanqwUU=bqzUO;Rzxt~meg65s^W*>M>T0*H zOY^P8=HVVr@hm6?y$Q#~nlkp%FKiQ?tal?~I-qoal>CuydbquL1}+MdNp$g(>4pps zAZr&B&Ge@b>#<2B>nBKmxr|nwxc7+IjVc+fd&?^EE@A5yEMM2pzVO1=k`u6=jvqi+Y;z<1@`!OAzxD+v&`1(x-iM%8`NEhqK{6Y50M3Yq5b&iN=6(^cq0vL_2!*(ZLDyzL9 z?H~HY$N%6nzx(owpPyq7l@MWz@zRYEU10+$xE1g+!*>_R#{$WCJ;3T$cLgv+f|6)E z5nw38nI&E-GmzocQi>K6HDpgrHN`Frn;I}_I%8LxW!O}vjUEJ;>K7T#XztD1y0vM3 z15f+{urkHe-EM!__liqHHZ~VDfr+zuAj4GBg@g=Q|EA=UTv>-eAYHNJAXAbo03jsl zLI+*KB^(TRBT|yd&xD}VTC=AL%aZug;?VAW7?Ofs%xY*1xKx$s+&}2T^0*_0^9}^! z3&0YQX}6#E`|Z42ee-CPppcDF2t`~FDpZ6HZK`vrd>@YdvQ@e^m3o2XIA$jRDYY;o zlm`QuEux7x@kUZ0BZI0=)2%h>GZJ7|G`5O_4 zFXmZwnx@^p%)7cRy@#B-rU8x+lo0P8n8jRx;h-WSMWwEM5*N)}1h+IDklwBuC7v@J z;b={~Nw&=(L5P~oa|ZE@KH1`;iN`H z=cN&zdSxR+4irO?`2*KLP!L2cM{S=+%KUO>rj|8$<5J-TU zo)`>^{En#|soqlY)>;b>)jNX)piEPl<~mJfn~HBKyab|3AQ&JNEhNHKB+V-O41q{X zyG=nIujsWOLqqAFWo2st-?C#Ztv&kei~s8ve&zaV`tWytq&&ONkUc*9MJnwU%3C{< z&iSSHqonD^Hm@Gd=>_gV zZ?J+K;!x>aOG3mXX{4l1+E^K91uh>vSo@;YFf=R zhd=$zAM#)O>^FS$dA+yup;JVMqx;dVddLo6BsCTdQg7LBGOS=P%_RaVlA$*!sbz(9 z39h-9?456`yO(ljumCBwmQri2>sCvv*>_Nef|}))QUwfA0WFZfo+2QWnokHv5)Xj{ zLJd8J2neba4r>UBul}}=e8ngKM2iRkl6wp}y7S4PCP_^qgA{EPoxmj}$xo2wB`6s& zHS2s8L_i@S9-=*7X;W>@vzM^B`)g@|udZjAl~QLdla<9vF`9*Wm?46pswPH9XxGex zNvbFe1*pRlB}*XbK_w*@f+!-OLr7SFMKUe!N-UctJBx^L3Ge+I2E#=Js$fu48JlUA^)p8+xvM0iU?|jJqe!GNinyzLnutdrT-;#+_vGs# z6u5{;AVd^Gh>#f=80?W0$N?N?fKA$!^Ku4Kx)Zu6RK<(6BwDSlzP%=ue|4}#q}Ez; zbk&PBa~2B^x~geT=8+*8P@tL;c~B&uC$nZ22s;&p1YE=@iJ1Z_P=-R4YA{1l6b*L( z5$@-+)+xNPlXvYs3>ga-olq!y>dSHgLJ5UX0|HPXky$|K0wqEv!b2qBq0PNCX~mki zt!>L|QTf-@;LXfRHLI3G=h4(m!%QQnN)<9^6I8+IEp~}WbQC>kbey1p$oB~V5VmEMo~*#Jwz$qM|9M+wYII>Hf`&+tq}*+JA);n zR*G7++l?7BRS#1M)nx9Wp%er?hx2@tff?W9mMZqI`O?wpf?QGz%9s<85Fx4i{q8Hi zf{$)K_;p`b<{e4*09{oa5Tz)o6ftTqf*_hQO$ZR8DujflT0{{#Lqwer(g{(7pf!l9 zLtR?a&2!jwS-iPUUrZoguWx8JR*kfnnT4wNDRZT2go$sVkurx2Di0tBP&9Zgt((W!u&|eKCP}eXw$&sBizNs;H@WpNJJz3F-DPBiIgo zGhq;sUVZ>$GWybIP0=A|Wj%!fB0%ZuB$LzvHM0UOq9$Ey*RFOA@g>}YG3F>$(1%a~ zk?2BmCQ}y`nhS*trH_VUj{@A9Zrif9X<650cR1)55{TCWOGMRj?m8Da%yJckDy}No zUzZCex4rRB*l+nXZt+3)!feD|3hHd+5wK!n48lyUpj6Q!k69MbhtdXDxmAnNUlA10 zK@~ueot_j6HKzj1m1=AbHMCTmLJhX9>uO6~m+icSyOuA&=k>voQfjf>U@K!YMEbP; z81@{ai(imDhRnwl`m+BpKG1FJE;XgD?*_$8%!C0aL|{d&h!#V5)Y2u;?jG)~i%cmm7I7Y}&dYcQDa(f2NltHt= zL9ZNoFdOq&iBx|ege7N-Tl0p5D8o3pDrJGH=x#oEYjXFPg;eEh+4>5fYRmnQ?gA>} zL$6FmaOsJntH$j9)(1t?h&&jnlDRv{+=aUp(3#A(uQ!=(K7umAdg{Fndg6W{!2zU8~W+lDi~@i3c} zqz;#jQq`u?+Xj#6OMJ|fhUk`4S%E$w6l4CD;iS6<$lN{cUiHBv-+`s|*J?$RbI5QQl^My91`F{^XkZO!*rR|vG=QsC%&Ia z^&JZ>W<^ZJ%u11BR%)51I@h|}@AtdIy~Dj{uCA}2pkeVxuk^$`8lb(%Ib5 zFQx{qMKh3_m8zv!HLFvdr)f9u4u`|N!@c{v{rotxHgBr9z6>6$U7fdZTc1k7) z)jWNqNJ*{Sv{swyG|zS3?GE$d`f&ZsJiog1{wBaOwc72XD-Gi_2KtIP#t`?|4?#Gi zAz0MVPkhqx0lOdf8IUm@B%+WQ^YI$0;occsP^|aWGPaKpt}2qe)-=tkALCF|O~xrU z{ZN}y%T&^)=KXHo&-?4c^}Xp1>tS~VOGHYZbfPLbHr7Y{#)wLa2Ep9ph4+~{1vE8- zzC$AyL7BIE^U2XtR1G{fecP=#)oKHR(p!zm>tz_KDr6*Uv6M=3m|3l8sil;DbW*i4 zO?959-EMc-?XUNTt5T=Cfbe8sX{p_^dgo^B0t}eYNtH949twz7v7Fz}h&~2jQnZy` zASL)+pTMPIN9?GJaE=zcR`shX84Rzxgo z3*4#+q>rUPcaRE*73rhu>325doNiNtd*{$~5{AgGGW)D0O$2KB^hNZ$lrk6EX_}eN zidt7J^PnWFQ>mrYTBd25YTfPT-8>(5`|EkPe+Q2$7-6eqfav45xlHJRVN>uZrlJNl zG2vq?55U;b>U=#5yCF7T=G6P}3<>MgUNSbxy51ta#|iSM&U2d-qQa7J%Lv>+(p~_VQeSjucr+$;HUAoz)eJ97@Q5MF7y@ zbSZ-&B~4PI=S31=9`_)I2#H*z#wY;0O%+w^?ZgaKw?)iUYpL^8r&@Qr-F})6`~CGi z&vdkkk#}86Go^a6Rc56c3D$;R}7lbNdV*~9YN91 zf?zOGv=fDLNL(E+G1HpoKUpTeT1uJ9RLWG#JWacKK1{pARVKbSh18RSr8?DWT2ur? zINADwy-?<9)}lz7Zk;G$^xLzYKQO}R0rjpmnaWO3R6xLzX;Dmsz1kx+8GJXZL32l2 zrD&=BxU5=ht!0|0-8Ap!c|T28`@>b8?nDvZ9OPy<( z=4qbi{cg9Pch~#NHtZxvV84Q(u-ew<1F3PjrQ% z-$i$3C4-?sH<2L1DN4d}986ThBRiwQoPN>Ht<+5W@sri+sEwz&hx4QeZ^NlOPy7;Q zc6IOGul>rWUwZNL2h&og+4eBCBFrznvvbH;${O=Wqf>=jgNhtV?^R`bVj7p^K6wCR z-@+bmLu5|OGSIZ7*ivk&Wt!@4ns)QFoA-y^{(8SZyv|JRI|~+p|Mstc<|qE)k8Ur$ z{H;IuxBkL+eV2#lk~_vQL#{Pt`)Lf)j2tcl-VBu-_l{hpYY7y{qf{^)-e<-{SRF zb3~qA2-ImFWukkY+tXU>`)S@TnD!;V(KpOpbRS)zNS)r@y|_1TrecjIP|0cElEb$q zDAmeTrdsBC+RgKR-e2vn?qA)zH%+@Ye&28EdOJ^(?7a-tTvA~7t3E*8+UDNaHy2wz zJK#&0#%WvLytVMQNegX7x3=jv;{xetipSj~%7H|4`N{8oPj1DNkyxZ{-q*`mac-z{R+eYqNTU+zy+q#v_+qT)% zY%wVYTS8Pd3HpA2I9%Pk_w2J*_ug@&@UHw1KhTZNQh1x@z66-Z1m@U&w5@Gx%h};| zU6*C6b1lniHF?9~>fYgS?{Ibh{`=m4eg7FNPve8UJ77J2rP2;nE2XBW92a-owsmdm zvMy^|m-Td7r&DbHb3gS@e&@v(f8d9H=sW(}M|W3OPjqhITe;qSupYlM-=}zoX&yAp z6Sehx4)_23vp@d}Kl^i^1HS7o{pG{=egD&ZdtcK3lcMz2I!*h-)xBrl_uQ9%@B`03 z|L4EsJAeNJA6TA!_WfV~^-uf#yhT#_u3Vq{z27?>k01WiC6I}0s^#s@d2hv<;tGw`hdjJ3c07*qoM6N<$g1uVe)&Kwi literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/c_volume_24.png b/2024-12-12-22:00/poodle_trunk_parallel/c_volume_24.png new file mode 100644 index 0000000000000000000000000000000000000000..69e47646c2c47460c214a17440d08f94e8cdb9fa GIT binary patch literal 61537 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 xd`IK{{>-B+;+B-%8 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 Ip`9cC2W8BdhX4Qo literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/c_volume_34.png b/2024-12-12-22:00/poodle_trunk_parallel/c_volume_34.png new file mode 100644 index 0000000000000000000000000000000000000000..59a321068b20d119dd1d3d22b94b0c86ded43f70 GIT binary patch literal 28521 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 G`22s~s0?ZV literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/c_volume_34_thumb.png b/2024-12-12-22:00/poodle_trunk_parallel/c_volume_34_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..5bbeddd3e5817606c36f842f9485003688953857 GIT binary patch literal 4790 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/c_zerocopy02.txt b/2024-12-12-22:00/poodle_trunk_parallel/c_zerocopy02.txt new file mode 100644 index 000000000..59c38bb22 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/c_zerocopy02.txt @@ -0,0 +1 @@ +ERROR: Some methods used more memory than copying. \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/css/styles.css b/2024-12-12-22:00/poodle_trunk_parallel/css/styles.css new file mode 100644 index 000000000..b2ee31b65 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/css/styles.css @@ -0,0 +1,96 @@ +/* ============================== */ +/* ! CSS for Test Suite Reports */ +/* ============================== */ + +body { + margin-top: 10px; + margin-bottom: 10px; + font-family: "Helvetica Neue",Helvetica,Arial,san-serif; + background: #ddd; +} + +table +{ +border-collapse:collapse; +} + +table,th, td +{ +border: 2px solid black; +margin: 2px 2px 2px 2px; +} + +th +{ +color: #eee; +background: #222; +} + +td +{ +color: #222; +background: #eee; +} + +.hide{ display:none; } + +.p { + color: #000; + line-height: 20px; + text-align: center; + margin: 10px 0 0 0; +} + +.h2 { + color: #fff; + background: #000; + text-align: center; +} + +.good { + background: #00ff00; +} + +.bad { + background: #ff8f00; +} + +.unknown { + background: #ffffff; +} + +.killed { + background: #880000; +} + +.skipped { + background: #0000ff; +} + +.good_with_skips { + background: #00ffff; +} + +.plot_plugin { + background: #aa00aa; +} + +.operator_plugin { + background: #cc00cc; +} + +.database_plugin { + background: #ff00ff; +} + +.na { + background: #008000; +} + +.failed { + background: #ff0000; +} + + + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/d_annot_macros_tafile_2.png b/2024-12-12-22:00/poodle_trunk_parallel/d_annot_macros_tafile_2.png new file mode 100644 index 0000000000000000000000000000000000000000..3ecbce8e2e9a8a01033ec272e55b699f563101da GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMKx(O{i(^Q|oVV9EayB?HupB)8 zulicZ!IZ$7qcges&gSueloA9D@zLr070s#N8uSIV1+c&!Ql}5vDFPj`q4>1x2jf1u hH;T3dO@%3_-^f@{#4eH~;&&D#=^~Dy9Gc literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/d_annot_macros_tafile_2_thumb.png b/2024-12-12-22:00/poodle_trunk_parallel/d_annot_macros_tafile_2_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..523ae1ca589cab2f1e303f57d55f126f24f2c4ee GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5bvKPKLJv~3EZnH2WP(wle*$L_S8~OkKZkqJ|dDEnrNt3Qm zJ7tx8(q>)$)qmTctej-M>h$5lMV%d+_h;W~-)1GFzAN}ONaq80Zk_FHOH7KMHUoJK Mp00i_>zopr0OtciYXATM literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/d_annot_macros_tafile_6.png b/2024-12-12-22:00/poodle_trunk_parallel/d_annot_macros_tafile_6.png new file mode 100644 index 0000000000000000000000000000000000000000..3ecbce8e2e9a8a01033ec272e55b699f563101da GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMKx(O{i(^Q|oVV9EayB?HupB)8 zulicZ!IZ$7qcges&gSueloA9D@zLr070s#N8uSIV1+c&!Ql}5vDFPj`q4>1x2jf1u hH;T3dO@%3_-^f@{#4eH~;&&D#=^~Dy9Gc literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/d_annot_macros_tafile_6_thumb.png b/2024-12-12-22:00/poodle_trunk_parallel/d_annot_macros_tafile_6_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..523ae1ca589cab2f1e303f57d55f126f24f2c4ee GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5bvKPKLJv~3EZnH2WP(wle*$L_S8~OkKZkqJ|dDEnrNt3Qm zJ7tx8(q>)$)qmTctej-M>h$5lMV%d+_h;W~-)1GFzAN}ONaq80Zk_FHOH7KMHUoJK Mp00i_>zopr0OtciYXATM literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/d_blueprint_rz_cyl_rectilinear.root_plot_revolved_to_3D.png b/2024-12-12-22:00/poodle_trunk_parallel/d_blueprint_rz_cyl_rectilinear.root_plot_revolved_to_3D.png new file mode 100644 index 0000000000000000000000000000000000000000..4e31e2315fb5495a30ff04a69f627756ba6a8d34 GIT binary patch literal 1269 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AM3=AxLJY5_^D(1YM>zF5F$ip)A z&;Rr15+^zrd0a}FtTc7i?8JntYcey_*x73MK)SGi1OLx$zs*?p`1SPpZA+zvp1;=L zKVR^3QP+OYUvqaC=C4~f>sNu{$E{0~m)YIns!hM!vywl&C_cg@|CMw7mv^GE%j`^+ z=f|GQe&zg}p*A~o#;*%z&exqvSDnk8{iyo9(bjdV?Ek6jUSEFTE?z7yo;~o zAJz-!HM19J=W8rpGjZLTjWwIvb``O0J}LG3l*C!p>eelBGxS@q~4zrxu}@ksO|63yhe1Lj^XTo22XfDZJH)>TF^u{yI0#e zWZOcAuxpEwo*q_9U0XD@@3fi7iIY)bYjPe;SyQ@h(!`r>Op=k@-BY>ePS|=WRI4oJ zT2T1R2Xi8s5+k#_r*_Cq-FhR`#^!c_f<|`f#zP-7r#bjs`;_F$z95q6gb>HcsQui{ z$`^DRJJzswiAp!6aVmH#D7@~Bm5^#q<9xA6PBSb;V3ulw4rAmsQf)(Y zY9+vef!Bg}2gtRjab|3i)1GD}a8}4+8p9@*2_Oxg*NV-Z3su1CQh>%XL^5@)Vb5>7 z6<`8lpMWT3iS)n6vvgwyTpLs=R2pm&Rw0f}QU5+y+aHQRHVvv=W7E7EtZox0U%Auvw7t{uu+s`Px; z)^lNc1x3<&o2T~7w%r_d^HiI!{Dw&gA@nF4y`T@ zAwz;fDRziTl{08HLcU#+;oe;Cecm5g%6-S=z4w#%z1+R`yhjuzN|Y#30yCw0z-uD< zGchE)9DnnXvhRtgc}+ilzkI(|w4}nu-W7yg?QLWyD_C}%>KI|*R2_3;vlT`FKx@;G zSU8Xo0C2EiKsZ&8V*sB1oD~{80stBXJ!8GiH-PrKj#25U7(lNwc|%80H`Em!Lscnt zbqt_e;v0!WJp(vQun||+09^KDF|YHWc+3fNn)(LNR(&hBX zCuPG$$SKR)B&Ca#EUlz;BrEe~10kAUks@0$QzW(}YmvV-oh{&2JoVy8%4ySq5Tzxj zKBcr8j!QcgI+9q%d>}*_;k*jS;;ap1b}H6%ZWTK#nDoUVJcrj(8{vor;(E z<)!&RM*0wu$9;2T|54V$v~mcl9Y*em7dxf{*}0InnLrT~5QEwm;MTv+xruQeP^bm0 zQuo`e-!dlK_q=u{H8!)tCZd9N0nt|2z+2PWBm#PCe1oX+q+>iOZg^?^kJ-C7gCy$e zMxDP8HAq}pscSri#9gJc-*fezbW}Em^|pnHh~{>=#_pW1!JabRsTyXrCcX1}wN)d6 zh^QFOcs22{L6dRE?t!&j4#9gn=X@@I$cbA!cb&5@Us*SH_A9{TtEErxmWC(z<>cqL v6YnqcShbg#>ERmJzf(FcN|Y#3q6Ft3O4(qfINbDR00000NkvXXu0mjfg_K_o literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/d_life03.png b/2024-12-12-22:00/poodle_trunk_parallel/d_life03.png new file mode 100644 index 0000000000000000000000000000000000000000..c0f2d101405b3e25d3b3f519accfefce5debd8a0 GIT binary patch literal 3565 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/d_life03_thumb.png b/2024-12-12-22:00/poodle_trunk_parallel/d_life03_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..a8346ef055b580ea8aaf52a4b9035cc6d3524ab4 GIT binary patch literal 5828 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/d_ops_dualmesh_mesh_plot_2d_01_thumb.png b/2024-12-12-22:00/poodle_trunk_parallel/d_ops_dualmesh_mesh_plot_2d_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..23350613df49634fc5cf1c3ceca69f1b586f5ef3 GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5-Z^T{;56=HMBhH+M zNi$h$%~{u+8+8@Jp^R`)sh=fQrZ`LZ3d{Oyw^C2sizuJ}%1`LqYWMs#_Mu93o44-w zKj&X)%A^^*ZTfdk4peYLT<=?%TF+{gC+O?*5HtGupI&n_pwQT##z^LtxDXi#4p@4<|-E zZ;Dc${;()YdE>O|^|Gy7?}W%6zi=`tZ$p}`)fvl*$w_A|OBZi=cIC$cPxb6`ZHaru z{`5>QKRh8-qDfS$ck7j7rc&7}d$Uch1s&vq!M`$pnclrT|MBgk=9BX#mtGDm_h0kf zCAMdq`nBEN(;uF*uP^<1f7|DjSUYy>M-)?FIObiR3Zg7j6rwic# zxoumos0*)KpO{;-{DX018!Wvn?EBi=&oBF0T3#O2_mGgdkP{IcU+LFY>i74s_TUkukb=~1xRm&x>X^Wq-S128EZzE2cUJX39qF2k;5F4^kCsJzXVC`1Et=C7 zAAY|3<(D1G*D9~89;%Dj9{9GY^xxO_z1Q<+$4TG2EI0XU0CkfY%(VRsOLVP6f6QmE P0Oe>;S3j3^P6{1on9HcISUUv9kIReKD7XM+6Z> z5FvyRGPn%%BaN-Teq{gDicgH1kd-b6LN=(GdI4}bE?S5ng2;Rz?r;XkO-DKM^C=wq zdHqOSjB`@^BUs^GU&ctyqBR+-Lmb*~`K~N79j=7phK4vYy%UpZ4EF9-AnZ85E=5NI zC4wSey&4?}lnC~6N62=57`?`sCO5*-Cok3HbK-;JQC}7{Qq%E}@EW_v^ev1cBwHNW z6KXc?!{vducoN9P6ZA}p;d(9?#gK{5-_ObMZMfvuj=1=p+4ZOaNqe9CairA}K%gt* zXVeZJ4xv5x72Jh)&Q|+tOPUcv$gQ=kAK?yaP1^SQiYkOUyRMFGRR(>y{CDn2#E+kBh@4m3AaW{Z1qvG^BW>`#ncWbZOyP-bKr9^j6gU; z;IPz3vroN-Ykr#92hMAQ>&EKH48}FT%XGvK?8-l0RJF#s{Lu2_yNcCofJ|YipBAu1 zJid2rUH{bEnYF*VpZ``UPB<62;NZrhtHD(TYj*w3`^$7sfBCKR4!ky-yjK3*bK^k7 z*ZFIurB;{W2^+$phoa)vajEZ{Jr=%A{@FP1t_`mvPLsE^KV>`H{cXdY1(g$*E25Yo z^xFOS>yOE6o?iO|qIIr+vj1el0*rGyQGNuCs&8WUYE3X z-{LtzQH3eB*wgjrMAmoxXWFJJ-~YtlS!z(>RPNq(r0XZkmrCcPrC%hRetL!-eYem5 z{_`nX?**St3aabbthN8gzKNmr`dgn&3er5d`Ip-MRSYI?=3G_6nr&v)K986CV7N^3 zzDK)ku<)7}YuB%6=9;_t)9b&dg?>)Sx^kZH$f=bwfBD_{UMj3*STm>CZr*9OoNN=UcFEqg8eL75QsoD>hp$vR?C6<<`vuMNR5o4K`It wJLtb=%${-ZF7q`59GM+8sbMP)u&B5oKl@oycz8idGpH=`boFyt=akR{0BYqG5&!@I literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/d_pixeldata_0_05_thumb.png b/2024-12-12-22:00/poodle_trunk_parallel/d_pixeldata_0_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..b82ae607887c70fbf421926e0b9bffeb39bcd5e4 GIT binary patch literal 672 zcmV;R0$=@!P)cOU`6}J7>1SO@|_Fnmg3*M zD|{x6a`(zA@WxQ42zhLEuZC>i7}pa*EZp3}%>V!rZWOFZGExiSS{jgI=hLC+uw>jt zts(sofkN&gl3tFd0f;UGQ4mQ1;@t8q2}Tzk&L}~c$IbLIl5^MDrsVBvk?W%7uGaO& zip2XwZQ9|*UaNfPp)6*AxpAJ}?6B)XbW zfcRTapS!4E4{CE4-Se-t&E&c;svi>6yGtvB0XhC&;T!!{6l22*kV%4ct^DYs2g^!- zrx5w>vcLX|_tPfl+1o9nV3tzYCp!yM5#N%B(KjulUdYe+B1r3|$ZdXx)EixMKVp<^^jOeNdA$I9R9rCyBj^kj( z(6c6u{}alP#s>fhMVWasrUrSf5$P#j7;+)?E8*FR=U&#g>#Ym0zC~!XX6-Y&004khI>p8A>K%HH_q&W)G06VbjWq%Q1mM%+H}r9q zeqnQwiLTn1c+B?vEZ-=zCSz4$dEq>NMyyi%gjQzxTiW^P=Imen|Vs(U)8Ki=h2xVZ%UA$uS9Ks&66p>wB#~p7+d2jVXU4H(P-dhC0i$4n}D5 z=KgnyNFrXefS&?MnqX@aPxf5FO!{;Bc8I^-PWliI51>;{yXlY^zh{Q%({cX)&N(FN zJVK}RaGyBY5>OfnL+S8;B^b`&+lA%7DjZQ1=(&xt9LfVMy!8ZLn={k?SAe2=X);DM zDrcdhi-4?p##HB@2_n$Zom;|BenlaCBnfDb#+ymWV>WiNow4tAU11qt117(;$>Jcl zeaSt#Yh2fL=jU8y!VRYrrTKKv+hk`V9(!It_~FIhT^3*t3jS*GifR@_%%x@*rbxlQ z!31el<(NAicFI8;L{gfoP}g78X7~muxo;h}1UHn5rK@~T0DUE|4brcgQ}%s~Q2q{0 z|Nk2$cYNmkd4rDzpRHPqH`8(Z2#_Y`8s@Y6$Dlk8e?k6%L6m0zRqqkN#(6M>X7 zkeI|RINd+;=a@)YZ{KEF`FmQ^s7*l26AjLRPX&JVPbdOf3VStUMYfR+*@r8oBJH%4 z96BjEBPB+6VcvvBeN9&LH8Aqs19QNi@X8C^C(Ek=kTpSRF!~Kyt;KwsRmUc0o!Jic<-zJa2yaZ32T}i`4~Xy^ z+c0yEo!*P{P2l-_K!=dq&=4eDx9jr_+}up8zxuF7wh zCOV)RpK#sECB>+y8#w0_JMQq<;#5GYZyxcBNytDZJVa_lshezl8&K}@>q9o3yzbt* zX1pvpQ0-HPnC~;n40kFqmtW2+8_%{XRKMcXvH(t3jXEB*Wiv~C@zatRSr&Xvq4o!f z1z((8Z#8NbJs;B}(V{hkK7@N0WXQVO<%32#dcb9`A@dqBLw@o*#9)h8l#7ScKQudh=05jJw{rtFSce z31p@GWZRMF5Q3(N!c}kRT)%}y=4;JmEiKkcc`YNW&Xs;W^pYU>fVjUz-DjUD0AazR z!T47Ob_(%0OG_{^fUls-y^6(d2wPsL@uk^XaY%@nj^zvZ8tRHwT-b!qWrUkXH>cA7 zB`@?pxpNOuagl8DY?k2+w=TcY^N*DAz>t|q!V8}SSPiRL2dn>Fd~xWi-Zlu_Py1%7|m4*3f7%xb) zCd7L~3{)6t8H$zJmH`)B(&|}Q<+!(pY3!N$3c(Cdve0DdWUu03T8d3fJ_g5`{dxRK zB|FcMh1pitGqAsu$~%JF)$3%B^DyN0)&PMTr;Q!` zcNk*(dD3EeVwu2%(>7hbD-Pj+AuaDpX9_NG+U64VW{6BAjaO6%Xx_@EDSbKK5;m0H WldXgF6N-6TV-s!fW+$}u{rMl2V`qv0 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/d_pixeldata_0_06_thumb.png b/2024-12-12-22:00/poodle_trunk_parallel/d_pixeldata_0_06_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..fb70c2a2ff6533bb940262d5f5452b114fa795de GIT binary patch literal 1515 zcmV7aXa*4)xNeJ=97ykfw(C|RwgAc|; ziHR{G#%QwfMUa?a)U0yZ#Xu<+VHbh46lmE?ySv?OJKc7U4>N72o$1V(cG~!T>du@w zpMKBpoZtLT&vF#a7ij_Ge+v-`5T*)3Gav;4hyXz#yoi;DOA%o@o)!vh4^v&`vy_G@ zolMZgB&A_W(~6t1^i(29!xh&wr430_8e3L$oz2&JK25_kn3zh(YB!;jQ%vEE8}SZ4 zIX!@20Pzl9u-h1iGG9n7ta-e8(U);+4_ATG_%cmQQhJ%v*fPy$jojBzHXo*!>E-2E zp}Gf-e!JnBrL}w^?>alw!S=;C}!{)+sZ5A-#=DnWH8`^bRwdAi^o2-RBtq;IaXrutT&qM-E~D9-zF!h-iHlR;|WIJs?&) zQR(3j2)0c&7n04v4)08JAp%-3TzO{;UcXm%fS}ps%8C;NJ(z1MgrgvEBW>7l`GQzK zg@OPu&X9*+UaS|90nZrtw@%l1pJhKz8az6SZrH&xhhMCDXS?=Gy(|s@0k$@f>sK9E zWdxxBfz`RbN;wBWn1-tXO^mdl;BJW%IVS$5=6Wgub~HKHulBZJxNP1Q1pXHhAZT)~ z7o@;9HP>f29w3058t3}DHH&U3Ca#LTPC8>Hgaaf_%aX5u6IP0eflU3vQ7t0M5XnihR$uu> zmeHhNhDf=dx7TRr>I8r~LqFq{A>KGpy(CpS`fpv3@^HPx&^ph{A54a*6!<7Za+RFe0buL3ry7KiquSRMF{!VvUt!qd z5wQfRFE5>s8Mm4A1M+Zn_3Ag()*!>2p78>*lll9_i)Iqj8s4~#Vz{0S6)!gQ?$8ni z%s921iL;UDMx!J`dEY+AU=I?P-4Hp0e&+YdWKj(7{NmgI?L-|)% zsUS!me|@;ou4QFz3&ODc#;Js0=}hiz3knz-olE-Gmohq6owqLj^?^tIl$hjo%dU#^ z#msF%*yd5za;oFP&^ICV8RE@d-|L<+UbEuiR5<|_zTUmVtP^^2k6YUW zpfOwk#8Ky-C-l11&>x#NR7XM|0)$R~Xl}zhAKEEun$UqDa&q@DWB4R(#!6^!{2b^Eqgf0a5IdMQ^E^BE1hSRl0cUshjAb4(Hf9a1}hlRp}NN0DS z!Tv@Eg5-%8N^|+q*n8>*bm6+oz=Rm zOSv`dJHF3LBojW9CIB!E7l5VTZr%Ots>w*0g#bU=HhbzZVG7caTJle1{{ipyGSVI3 RMFRi;002ovPDHLkV1joV(`o)-QDf2jCLRcQw zF9<{iv9>mS-GBtDh^irwjqNUu4&E`Gsp7}c17@4i9h{Zb-3{_WHt|fX!99m_ z^eiqF;c5j5d)6&)JQ6Vrz)MYV zokF)L)0g;pCOB=ohB3UlYE&$l%~y_frg%(!dLDmiE?dms^>HFdKnWd(V*;N96{PS; z=yxIWP;)e%Iuf-ce4mFDKEqX9sIJH0M^ijCoCG@fLgxGQkoXWeutwQ1qTW~Ygh{&K z1WV5f8)S0J>@JaP)NjjIC`@|4`@j9;JCJgp-opedj*gu3?d~|whYXE#15ppY@^vow z`+9^*%}-YIaB^nRrbF|}K-H7T-eY$2%_ZJ&XVBI|;^;L8i@w(MQbyA$2&2z;B5VET_xqP9F zw>5(~Wq5LFPocRQ9+E4!|0nUeCt`6CvVwJe``JO*@b&mueKso}N%8Gt9?wW#ZQK2L zPoXV~g>c&?zvd`^G=UdYo2?Wk+T0*se6Z?0z3$l1)&#-rXpR-{=qY@B&-%bXAb2q! ze?l`Z69q;R&%SN}{rrGcW)vCUX2UY^yM1gB=JZbj05;aX5LEnb|Lu;yWglqml#`bA zjW}=2q8IxExy`Rnv4VBqTK_HyIF*OTK{L?2NtkW({b-Yr;HhnZIQc@~(!vZTvw%Ma zxw!UPO#*_}<;3sKqy4PAf?+i`g@34$iS-18?VF z7E4P8`KBe|tZVw|)Xy4+4}P^?qq&n=+cORNmF_%7EN%+qc}QF=>!!iRlgUAk?QQiZ z59-{QUOp~3@Hco7f?w{^`RJ!^)|_~g zNrp%~wQX21-})wB3mc$%n(Q2)3Wloetj0p23r7g9p|3s^)X&u#t#X7&t((KGMzZXj z%Kg<+DPxum)(G>oLVadT;V0tRs8hr!oF<-9ydq%2%SPMnTVr2?X>fP` z8em7X$~_X;|A}OQr&dmrKt;x)C^zM&G@-#hxmZtwlS^+>*K>9E7w`_H0Lu+u-2G(h z<|?vyLk-)uBiuU2l7SB{poSDpd}t1@GHkc^H_)Ao^U;XKVw1JKWIw=#uUB+b8KE|1 z)tl@=+Z;2D8H@}+ywDro58cXx&DW>ch0W?ORZZqQm(x@O`ljoT%QN!59cf)lsV%aq zrEpPJP%qGBmqwFY6peeP$>H|QUX;s4`%Y6vjH!m$d=cU zn1IvCnM;2b3EW0$BUZWj?m*N0KvZWNBPR%xmNHXO=L4p6D=)uV+%g$6hHkC(yIOlf!|0X`hHrA=#n7TgV6Tq9Po5My&;?ut4q2k8 zN8y7jiIyn4L4aTVTR1J2&%fY=Y?QodZe%WMzq_A#h)W=2VL|Ab)*%yV@33pel~DPK zl^47oFHG0Ja+CB8ebQfgQ^=QUWci!FsL_6jg0HIML^fgD0knQ3vNIx2Xdt8*=3Z9# zOr-iKcms9DPp@75rR0vb>k)E*IONWpd}Mhe=ghR-pBi!F*8WcI0ZjbZ6m%TWqf4TN zrmig=1V#+5>@22|s%6`os-~F&ZNOeC+5nKdC!ajOHGRYHK3kGYT8iFgpxkn{ZQEOB zPCGP?4hd*uUVol9VcYz`X{Uj5+#ixKhIbq~QNTC5$6g*PD=@ibN=w3tj@(_GiJQ9p ztUtoK5tz-d(<8xSdo9De`pV4_ob zH#>CIQY`FI5t1l}=EuM5wgIf!pxB5rtr(ZcTUO>7^ocYPe($K9?|B>{CXz)qQSb~s zE66Ii?!f(H*177iiKH89)!L{moN35zthqw3Fs|Q6Ic%l8vDVzaz^z9Ti6fl9SnQ=i z*x;kp{RMXenPxnGdOsn=#J#+xhnx-TKxP?_(`HGJ*kV1rE2A zk+=AxY+%gXBMP@->{LfrBgscRPZ`Pf=Df(I?fVU-5s0guh(AGpCi#n7v8puoF@Ag9 zYH{K8SjR@{^`jUk%`2-#%=9YtPcG}}0m94K4%)&@%15VYo6sPR)fa74ku6;xS66*S>TYw7Vn!z|jl;10!I*LI3~& literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/d_pixeldata_0_07_thumb.png b/2024-12-12-22:00/poodle_trunk_parallel/d_pixeldata_0_07_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..7b5863c29c109c3374998345b891d230ba94e90d GIT binary patch literal 1641 zcmV-v2A27WP)C{196!hp7POck0oZ7-WNer}7w(q)FSuG-*PU zCQWGK32hHUOh}*!brYAqk%F z2||*Dlyo;UrCB~sk_MlpSwl*MWR^*SCwba+S*qSkn_4DGoS!Xa^i3K;XxDs#kZD3P z%cLw-zhs$j@J*%ia(1>b%hwAEL?$Gw?^-HX?+Slc`>99JLMTf~GEJtJGqSlYLw*>1 zVQEuXmVy=uTgdLQO=>=Dcv2uwLpk&dT}(*xvG`*PHizM}VgQQ$FQ?o1WGKuyS?MZ(cwDMI~D*++9in*s^}8hkZ7{VneodNF}#nzvhY~Sp+(xkzoKq9{>VB6c02~ zm-}59Mg;I_4puR1m(XC8omt52c-#j+6ra9HO&ixXHwqSe6Q1{Lu<{E0;O5&45dqed z#5Xc2;OX)!SbDEdfQ4t}N`Ar8y&3?EJ}i0z2@hDh83Gm|lx&}OR5k?bh#&zAz+NHm zU2p&afLu*p1cV(Xe)zDpUzz(pZ*cV2Oy&jjf`yykuzY#E%ccnfzz^)a`CO}zj`wVv zFa%)XO6%=yr2{U9%Yj|lw+03Gnna@JWTdTHPZYq9Hf#L`ZViUZ$E`u)&nW;4@3h|1 zM4EWdwBE`DCJeAZh?JaZc`LSnUYe7j50d?w(wZ><;0G|?kD&FNg9i`-8p*Xb=47Qq zg>1dvKFF1QDx^PKr<(D=v`7>d#dblooB-%=7lc)yMbZYNQ!g>1La5f)Rx>UkB>vfO&2LSPs%2FXnw*kWM2Wb6Bhl@OD17s5bRUg3u=<~HrS7@2d z0*>nXRw1MUaZ=Z}Xe%96hVCD(jvL)FqAJBI8ield2BOVDE@!N~LXK`3(RZ%I2%zSqr=nZe zhdQkuw6D#^BkZ?Qh2EPw*A#aUN(m9+vtXC_l)X`yyCCd+@YD*i)!LIZ7-q2 z2X|&%$EiM2h=)s~aaE%FXqfS`gohPy5 zx6bPuF3#DWok*oeix(G_H2g91HdpLmY-*BM^-(t&Bgez1pH!P&{ld0v4R#Nt&i(U{ zwLIa89gO`sr5^Gy`uP{XbhODerJ+5Xk=|NY13~`8p)rpL!d+1uQ&$`#1WV^v-uFN) zNqR9K9nc1mG0WA}-#>|1J(uZe^nxttGcVi~#k~<-Ems4z%xLn%p@1kF`FM6cmayEX33u!@&nG4d|NC4$@;LT@r z*Et98M;C_%ErX~F0cL*rv|D$X;_Nmo3Nr^3b0+K{NS%3gta>FT2kRe0<=2rX(foJAg*jp{)y~AD|TJ~cL?wH00000NkvXXu0mjfVS)Xp literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/d_pixeldata_0_08.png b/2024-12-12-22:00/poodle_trunk_parallel/d_pixeldata_0_08.png new file mode 100644 index 0000000000000000000000000000000000000000..5c327613fc3a7830c1bceab7f69263c5d343d896 GIT binary patch literal 996 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AM3=GVxJzX3_D(1Ysdp7T~gM>q% z^v8eeW5gP~mUca{GTvxomws@QXZ~~P+dmC|A3wIaZq8qpbuMchNQMs**Zh?||42#h z=%rWkyZtZPoS!G!A!;Lk`kiRf%{y^2hi9+dc0K8C&eod`m^U(QY&yI#Z`=0#+uxkl z%zpd!_BP4GPcqh6`#pRZQ9j2hIYQ#_0SUHa1{oXkENkXRt%>HlubwQ?0W=U5RvcFP z(B_)J)118VokjEQi$Ki>&q}Bzv4Ws`(%ml+6*|{i`&xfruwRoO!Ls^&q;vQ+&W*?V zjxo#MK9FF0Z8iVi{eL+ObC$o{7+3Q`Tiz@D{^m9-)oY>s2gL15Z`_yqcPshFGu{uk zHr{*lDEUWRSeOD;VZn!QTH*hc?i8|zU$fmmz3@YvNmy7y>c@tNMkIK!eB-;ys(&r- zlkR^0@`v-7fq*s){;1bUkBR?dKh1cZeorEXij&$CmrzHDqZP5v7j*t~eHeZlXrZouQ&Zu9$lHr8_%wNT*?ocHXamhJom@v z!_%a>o0Z;#FHm^H?oXpw{(Wu)vt`WeLrv0Cbj!D&y%m6w^zOPCfq9R>a0IPXCv1$oUOcb zQagKX_-Qd)sdJJ?T$9f#fV#`K zsuGG=RuF;^gmeSqgKzN+$kPNIvRZ{{+E))zpnSRD{lI`MltLQb8TkzjAjGQHQ>-Iw zB%}%oJvA;@XCcYe`3?UF0|e2n(D~w8+a6ts{D@Z{a{pF!WR2yT4lMPM>e{3{K?p(+ zvJnt&+c@Cb(9W%_P4j?hSkBh@4m3AaW{Z1qvG^BW>`#ncWbZOyP-bKr9^j6gU; z;IPz3vroN-Ykr#92hMAQ>&EKH48}FT%XGvK?8-l0RJF#s{Lu2_yNcCofJ|YipBAu1 zJid2rUH{bEnYF*VpZ``UPB<62;NZrhtHD(TYj*w3`^$7sfBCKR4!ky-yjK3*bK^k7 z*ZFIurB;{W2^+$phoa)vajEZ{Jr=%A{@FP1t_`mvPLsE^KV>`H{cXdY1(g$*E25Yo z^xFOS>yOE6o?iO|qIIr+vj1el0*rGyQGNuCs&8WUYE3X z-{LtzQH3eB*wgjrMAmoxXWFJJ-~YtlS!z(>RPNq(r0XZkmrCcPrC%hRetL!-eYem5 z{_`nX?**St3aabbthN8gzKNmr`dgn&3er5d`Ip-MRSYI?=3G_6nr&v)K986CV7N^3 zzDK)ku<)7}YuB%6=9;_t)9b&dg?>)Sx^kZH$f=bwfBD_{UMj3*STm>CZr*9OoNN=UcFEqg8eL75QsoD>hp$vR?C6<<`vuMNR5o4K`It wJLtb=%${-ZF7q`59GM+8sbMP)u&B5oKl@oycz8idGpH=`boFyt=akR{0BYqG5&!@I literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/d_pixeldata_0_09_thumb.png b/2024-12-12-22:00/poodle_trunk_parallel/d_pixeldata_0_09_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..b82ae607887c70fbf421926e0b9bffeb39bcd5e4 GIT binary patch literal 672 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 VS1?PHGhP4y002ovPDHLkV1giCajXCU literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/d_pixie_04.png b/2024-12-12-22:00/poodle_trunk_parallel/d_pixie_04.png new file mode 100644 index 0000000000000000000000000000000000000000..80e08982c2be5e074cc1035e59a2fc68f2ff712a GIT binary patch literal 320 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMKn}a7i(^Q|oVT|Ru4^(7aJYE! z|NrNOpL+ryC$p_}uuVVOHD&fT6Ga!04npAdlWWWtJv|+Jo}CJLXYXGaw9fU}73n3_ zAGA8wuJ+To!Fzh6pLUp}LE*Xi`&B1z%6D}!Yz`}px|+#aV3YjqouvPVdquWYp}g9r zkBwy9*061qI+7*8-F``{eU04SS8Q8n6-qKyKX8t4UfUd1e`f8jB(|*$i#NpI)!81v zZI=8~_vG*FgKpNjwhj3w<*Tk;{qybigZ58ywS=4vl)tf)JM^#h&5ieEfZ@Zy;OXk; Jvd$@?2>^KZYiy8 z!j_&X7pz3?HZ5>|{^G{c?cW5e81mrd!xJbU~`@22!q)3>N7EZV1#z28)N^~XexSyTFbo_pDyy>6nYoVlW- z;HllcFEchxd(q0rC4TnGf?emP<{t=7-uL+A;*u>Pfy?wyZW8O7!?#M~^46lf$2;^E zU5J}1_Dt&7?SOa5%NHgtS$C)Hsl@HOrYFLkFL+zdjE}yZvbO0|a_{;>MjOwre(YAh mZ%XK)&z)KI`yozb_+Wi+nvj(6&6m>0K_Z^6elF{r5}E*~#)5PJ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/d_volume_23.png b/2024-12-12-22:00/poodle_trunk_parallel/d_volume_23.png new file mode 100644 index 0000000000000000000000000000000000000000..d6185d9dc7967a8a4a20591dc501302c3e485a23 GIT binary patch literal 1650 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 bghb&#a5Sw2s{)R(00000NkvXXu0mjfWy=A4 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/d_volume_24_thumb.png b/2024-12-12-22:00/poodle_trunk_parallel/d_volume_24_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..0792e1d2aed67fa70861b7dfca8c168292ea0842 GIT binary patch literal 1079 zcmV-71jze|P)TyZ5&@zi;lIosYkJ&pr3<9Dv>IMm~nP zh|nW-vo1$jMo1xZ<0c}a$MwQdXw~q2fuoJ_wcYo}LifkG}$FTA9i|Moo@cYsLX$oMaUn((xx1zpSwF8rBslaEh*+y^SUL#|>p?Fl-|v24cOa zTmSncytpMz`DAh@N%lxJQ5lFhc2JryR_h+RzHAms8VNdPLbUq(`DoFv!w#dPKM&h!O0fN1!BHjKKGw z^oTi=K?XxGf0_0%$mS<{1j>!f2Zv^f-&GND`GB|*_!WZJugG);S^Gwh^ak`<{FnM{ zH3z-`C+b}8VB@W0FFOF3G_Rvc=J%cLenr2!yu&mXVk;Y0Y9v3;TA{0Bx>N>_7$!3Y z<$qT_q%t1+FIqDzEmZG#?bny(52nshl(E?;F?9XXN`cffow5s4V_Hs*I2#XctF*}0 zy};sDU$lvY-(O!hqNxnh0-&{8m=rrj3wZV9h*k4rccY0A|YDBNawdWXfRX0ol00!(cN{7|Ff&&%0X(DJOIGpE65brAJqJ``}7!Mp4684?A?Z|4;seXV`0dr*@3Ra(ZGbhS`gmAgRHOdzwJ;w)HSvtU!R?Vp=H94oUL^HSkgTCi{e)*j9`SmM|;cO+~J@Ggk zj=+kF*ong}qJ7}A{{=3|{b3yr_op(L(R7uFWi8AV9_D3d{iGF5`tWnF?~fZj$D&S6hFS)KiH0a? zWS#rTg0s+TT}yK2VX$BfKV*=egAOgO2eS`=)=r>kL@FKm6}t`ONVLa2_PlrNY2uzK zcMy{Eq2J`_6Put1u+e(UPLEtD^Xr-JOHaV;j@#}Uw3@cie5ZZIIEgwsm{&I?FpHW} z?}uJtu9{-L-`!wV!N{Fxe3c3}00G?vyUQ*&q{k7E^F@@k^9v`RdJxW)xDc-@LD_1C#0)22^ zjNYx71qilCEOtPJG@&Pa%W6vV0ijUL2m=N-cs-+}#|?(TUEvX!XM^~eDZL_ggw8*! zo^&fqpYh|zqcVx53;soQ#+-SLeL5K%Z4_*?h5`G{p3l3}%T)Y_+tN z1vL*AH^h-AQWD2)fdz&VPsMiYLlj#`jau$UZfoKh2-17Tay5*i2&&s)-t-t&URI(@ z9rn%=QOC=gBmo$59GcYz9!Oiu^(fgKBSTzDSg{q;)ruF4rPBElhut;QVLLM9+5=gZ zUqJ4ze7xVCb|dhr&@3n#zE~JB+|c%zqdv;M(cWmXLK zuJ-3K1Y8t78z&|T*7!tOXT`)qsi>)=m^5TEbUJ~a{M=J0O11s4amn;7^= z&YRzJG-q99=i}NrY(~g3)h$27cO{5C;9@GAGwfm)ZY;zWbfk8i);va@hijr>VBlL?V>tXG?$eJqk30}rHeU!ov784>E zK%MXGD&(SO(%VQ(hyjF~jbA6E?4qmIs~5@vkG}%oj%i<{ulgfzB*D3O>l(%9Jw>cP OJ`}7-P6WCo<=B7Ll16L* literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_parallel/d_volume_33_thumb.png b/2024-12-12-22:00/poodle_trunk_parallel/d_volume_33_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..95326cfed2d5786a81c2b93cf3e24a6715d45d2b GIT binary patch literal 656 zcmV;B0&o3^P)()r-0%0^6&&7YJb3SO-+T9d?{`OJFc=I5gTY`h zNEp)@oWD8q;CF}Us}N8IBZm}oPnaa5+KBZU(VX$v=HIQ%Vnu3`cVY{ z)H4k8I3~skK_w%F^*Tubp!=+lg~Q$);Q;Qsk{*Hq>kU@{z*BQLI|2uSSp`K>8A;@c++ptu9oU%= zDlGnr_c)#t#$fEfD9aMX^ol$N0IUfdAx_H`C+!)+462swTp5wW4 z3;^F*NyPgv%+@5s5!a0f@UNvSO7FE4!9zw2c^L`8X^hg3@zF6{#*tN4DkGv8RMB~H z(Pee2_q86?rp-`L>5Enj*4bXz)^O~yVh}ymaQH=@WA;E<(Qvk>67(|nwhQ_xXO6#+EWn_R$N8t%-r*BN< zSEA$VU73PtY~E|M`!TA$dvp_HOiLX^M09n*d$$h&^-}+$6<=&xOG=6pF5YohtD#42 zcVZm;{l}xwj>ce@5iaA6VMi_F7(_&G!wTX4W3sr~{Ly!0`I{z0{)Xc>+lnzHzX$Ud qZq3hhUu{Vp27|$1Fc=K~Ie!7;1FFv51P@^V0000OC`oe-4@bb%F9Bxd09-SL}I)3AM~8_{PLXh`Sr;?8WI3CvNVD~AW+m1KQsig z2Jxc?-v>yv#mhPfM6U_u=MzDzoMpZ_ZRc)`tQM?jcgqjF26i@Wp?l^h4;;B`1w%ci z)}h1bJc}RhXLBgF0e<@$b0ENVt4DUP3l1dDE)0hyZOb=TQHMmA_Jx7ut2-UE1O9aT zRe$wZPcC&yGJHMuQnwI|SZ8gw(%V?4>w2{=DD91%zkAT;2l%{Xq03OW-GFmKe2D#( zXzK|?A<%0xV@zxl4_t36Hzl|qd?9|ZqH?B3xzKmJEcXLXaOD%Tw=OG?2VV)LBfuJ1 zd`>H$=SvdlCsI?f5^+O8TO)6x*;b+;!Ld^pe5ScI37guR2c^2{bn}k27}2N;biM3D z{Vq#7gVzR5vtlfj?M61eieRt@%@67p8g)~jjF8@g9|+=vd1fW!c&o?kz0i-1q4{dq zsY=Wp=``^7jj&2|9H)BqVO;%|I+Fc8}VGJ7nExvs7Q~tD?6ccE-_rk zq_`Qoz06)>5{jj9szTohZCu_wi+h?@=Ja}S(zlsM5$JynbUb`N%AfnoIeXLX7%+s) z*_xB`w32tWa%JnwGqHH?>Ao2*gF-`{e6K_sK1(Vq#J=|ogXwG(ez{j*DTTx+Dxit&+>HPxu|^EY%sZ z?I=$uYNRB8_ussRP&h#7A_ACa>hsX-+b2#@Z?YUCBcJ^v{*z`jN2-(fz#Cs(!D(l} z%$mBgwKMFohq8yMvjoBXiaffWo}!J;lr6!(@fcJbmoMYXxqZ!xe%uX_k96I`97PM# zUw7yz-M+kXjo97jMV`eV^?~wLd)VYy;`3}34-uZ#d(eXtOEG)6^i>Qj>&bfmB9{zo z)02B_c#bB&l@BfNq|ioh-%ahaYY$3!bU%K4j;LHug!#66X~1LD!AHu-FR%>0x;(N4 zHtvcawYrw6YKm&XiIVeq$xh_7W@G~*(0B2)2wH$I&>y)yFK6D5 z6mD}D#Q8*2}o0z&48 zQ@0}92J&TZAw14SeGMO7Q8W3;BJ+Px|()4o8f z%+zfToj~DX0|P{Rys{&Ornsa2j6NDuN`;wx!lXA4FcJbYjTPfIS&K!DF0)>F$F6dm z-I^{_k~-*%>gGy`B|qugekJHZ80{+_E*v=H4ZDSIeXjf*+W|}lIWF4e!i^lVX*p}PMs&kwN=k_KPH?SFEZJu%O&fx$ gNc(sGKo#VVyzr6r|kF2zHUN-5E^UUHC#M9_oO%U(Qt5RWMZMZrTA5^8(b z`Vp~e#aL;uQLBZfO+<|!{cu~G#%;6DLp15m>}=j-Q}8gqz(EFK&Je004M-#J{?>VKR-W7$yaLlkOj+ziJ5J!*h*^?>>f$g~ON=vks|g?4NR_6c&J$=O zCfviUkZc>#mjxVZ528>!OpMgE7~T>080OAY;ZR0B#v^O#LC9e@iEF)`Z%W5t>hH(h z@VRK%x-<$z4kK=a*&FJ=W)qLU&#UVwM?YdQarV-e^MsoI`2qDj%wn+A+@`P7-;TeUP2uJ$g4@5g$E3sFe`neP-q8YZr5nV^oYl{%|ATA{v7bQr)FYW(osD3d`0$-iIi%jnLG# z`GO-00H6jp6c_z!=lO=NKQne8?;S9#zRve1j$wOWhAcyjLJQi7VG1)}0&N71kB(91 zH=!lXp^>?wV`>v( + + +Results for databases/ANALYZE.py + +

    Results of VisIt Regression Test - databases/ANALYZE

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ANALYZE000.000.00
    ANALYZE010.000.00
    ANALYZE020.000.00
    ANALYZE030.000.00
    ANALYZE040.000.00
    ANALYZE050.000.00
    ANALYZE060.000.00
    ANALYZE070.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_ANALYZE_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_ANALYZE_py.html new file mode 100644 index 000000000..267a127cc --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_ANALYZE_py.html @@ -0,0 +1,113 @@ +databases/ANALYZE.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ANALYZE.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, single domain
    +#              plots     - Pseudocolor, Contour
    +#              operators - Slice
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Dec 5 09:50:05 PDT 2003
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Mar 31 09:13:47 PDT 2004
    +#    Added code to clear the engine cache to reduce memory usage.
    +#
    +#    Brad Whitlock, Wed Mar 9 09:12:05 PDT 2005
    +#    Updated so it does not use removed, deprecated functions.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Set up the window background color
    +a = GetAnnotationAttributes()
    +a.backgroundMode = a.Solid
    +a.backgroundColor = (0, 0, 0, 255)
    +a.foregroundColor = (255, 255, 255, 255)
    +SetAnnotationAttributes(a)
    +
    +# Create a plot using the large database
    +dbs = (data_path("ANALYZE_test_data/s01_anatomy_stripped.hdr"),
    +       data_path("ANALYZE_test_data/s01_epi_r01.visit"))
    +OpenDatabase(dbs[0])
    +AddPlot("Contour", "Variable")
    +c = ContourAttributes()
    +c.contourMethod = c.Value
    +c.contourValue = (40)
    +c.colorType = c.ColorBySingleColor
    +c.singleColor = (255,240,220,255)
    +SetPlotOptions(c)
    +DrawPlots()
    +
    +# Set the view
    +v = View3DAttributes()
    +v.viewNormal = (0, 0, -1)
    +v.focus = (0, 0, 0)
    +v.viewUp = (0, -1, 0)
    +v.viewAngle = 30
    +v.parallelScale = 399.965
    +v.nearPlane = -799.93
    +v.farPlane = 799.93
    +v.imagePan = (0, 0)
    +v.imageZoom = 2.26061
    +v.perspective = 1
    +v.eyeAngle = 2
    +SetView3D(v)
    +
    +Test("ANALYZE00")
    +
    +# Look at it from another view
    +v.viewNormal = (1, 0, 0)
    +SetView3D(v)
    +Test("ANALYZE01")
    +
    +# Look at it from the top
    +v.viewNormal = (0, -1, 0)
    +v.viewUp = (-1, 0, 0)
    +SetView3D(v)
    +Test("ANALYZE02")
    +
    +# Look at a new database
    +ResetView()
    +DeleteAllPlots()
    +CloseDatabase(dbs[0])
    +ClearCache("localhost")
    +
    +OpenDatabase(dbs[1])
    +AddPlot("Pseudocolor", "Variable")
    +p = PseudocolorAttributes()
    +p.minFlag = 1
    +p.min = 0
    +p.maxFlag = 1
    +p.max = 1300
    +p.colorTableName = "gray"
    +p.scaling = p.Skew
    +p.skewFactor = 0.5
    +SetPlotOptions(p)
    +
    +# Slice it.
    +AddOperator("Slice")
    +s = SliceAttributes()
    +s.originType = s.Point
    +s.originPoint = (0, 0, 0)
    +s.normal = (0, -1, 0)
    +s.upAxis = (0, 0, 1)
    +s.project2d = 1
    +s.axisType = s.ZAxis
    +SetOperatorOptions(s)
    +DrawPlots()
    +
    +# Add a time slider
    +slider = CreateAnnotationObject("TimeSlider")
    +slider.text = ""
    +slider.height = 0.1
    +
    +# Animate through the rest of the frames
    +testnum = 3
    +for i in range(TimeSliderGetNStates()):
    +    SetTimeSliderState(i)
    +    Test("ANALYZE%02d" % testnum)
    +    testnum = testnum + 1
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_ANSYS.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_ANSYS.html new file mode 100644 index 000000000..b34581034 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_ANSYS.html @@ -0,0 +1,108 @@ + +Results for databases/ANSYS.py + +

    Results of VisIt Regression Test - databases/ANSYS

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    pipe.inp
    ansys1_00.000.00
    ansys1_10.000.00
    ansys1_20.000.00
    waterjacket.inp
    ansys2_00.000.00
    ansys2_10.000.00
    ansys2_20.000.00
    intake.inp
    ansys3_00.000.00
    ansys3_10.000.00
    ansys3_20.000.00
    cubeF.inp
    ansys4_10.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_ANSYS_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_ANSYS_py.html new file mode 100644 index 000000000..cf53dd9bf --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_ANSYS_py.html @@ -0,0 +1,217 @@ +databases/ANSYS.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ANSYS.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - Mesh
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Jul 7 17:46:51 PST 2005
    +#
    +#  Notes:      The data for these tests are supposed to be ANSYS versions of
    +#              some of the data in the NASTRAN tests. I have not found other
    +#              ANSYS datasets in this format to confirm that these datasets
    +#              are actually ANSYS but I think there may be several ANSYS
    +#              formats.
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Wed Feb 16 09:15:45 PST 2022
    +#    Replace use of meshatts 'foregroundFlag' and 'backgroundFlag' with
    +#    meshColorSource and opaqueColorSource.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def AddMeshPlot():
    +    AddPlot("Mesh", "mesh")
    +    m = MeshAttributes()
    +    m.legendFlag = 0
    +    m.opaqueColor = (153, 204, 255, 255)
    +    m.opaqueColorSource = m.OpaqueCustom
    +    m.meshColorSource = m.MeshCustom
    +    m.meshColor = (0,0,0,255)
    +    SetPlotOptions(m)
    +
    +def AddPseudocolorPlot():
    +    AddPlot("Pseudocolor", "one")
    +    p = PseudocolorAttributes()
    +    p.colorTableName = "rainbow"
    +    p.SetOpacityType(p.Constant)
    +    p.opacity = 0.2
    +    SetPlotOptions(p)
    +    DrawPlots()
    +
    +def test1(datapath):
    +    db = "pipe.inp"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath, db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.786306, 0.379526, 0.487527)
    +    v.focus = (0.149902, 0.212562, 0.124929)
    +    v.viewUp = (0.316186, 0.925114, -0.210215)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.585963
    +    v.nearPlane = -1.17193
    +    v.farPlane = 1.17193
    +    v.imagePan = (0.0173275, 0.033058)
    +    v.imageZoom = 1.45734
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.149902, 0.212562, 0.124929)
    +    SetView3D(v)
    +    Test("ansys1_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.786306, 0.379526, 0.487527)
    +    v2.focus = (0.149902, 0.212562, 0.124929)
    +    v2.viewUp = (0.316186, 0.925114, -0.210215)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 0.585963
    +    v2.nearPlane = -1.17193
    +    v2.farPlane = 1.17193
    +    v2.imagePan = (-0.108127, 0.0971661)
    +    v2.imageZoom = 6.92887
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0.149902, 0.212562, 0.124929)
    +    SetView3D(v2)
    +    Test("ansys1_1")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    SetView3D(v)
    +    Test("ansys1_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test2(datapath):
    +    db = "waterjacket.inp"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.65317, -0.673371, 0.346324)
    +    v.focus = (0.03, -0.03, -0.1125)
    +    v.viewUp = (0.225064, 0.264053, 0.937882)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.289925
    +    v.nearPlane = -0.579849
    +    v.farPlane = 0.579849
    +    v.imagePan = (0.0984407, 0.0467479)
    +    v.imageZoom = 1.40003
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.03, -0.03, -0.1125)
    +    SetView3D(v)
    +    Test("ansys2_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.65317, -0.673371, 0.346324)
    +    v2.focus = (0.03, -0.03, -0.1125)
    +    v2.viewUp = (0.225064, 0.264053, 0.937882)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 0.289925
    +    v2.nearPlane = -0.579849
    +    v2.farPlane = 0.579849
    +    v2.imagePan = (0.100347, 0.0410472)
    +    v2.imageZoom = 7.7658
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0.03, -0.03, -0.1125)
    +    SetView3D(v2)
    +    Test("ansys2_1")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    SetView3D(v)
    +    Test("ansys2_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test3(datapath):
    +    db = "intake.inp"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.61876, 0.311053, -0.721375)
    +    v.focus = (0, 0.011, -0.0935)
    +    v.viewUp = (0.208418, 0.950364, 0.231021)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.198752
    +    v.nearPlane = -0.397503
    +    v.farPlane = 0.397503
    +    v.imagePan = (0.0151275, 0.00167627)
    +    v.imageZoom = 1.43299
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0.011, -0.0935)
    +    SetView3D(v)
    +    Test("ansys3_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.61876, 0.311053, -0.721375)
    +    v2.focus = (0, 0.011, -0.0935)
    +    v2.viewUp = (0.208418, 0.950364, 0.231021)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 0.198752
    +    v2.nearPlane = -0.397503
    +    v2.farPlane = 0.397503
    +    v2.imagePan = (-0.101283, 0.0396808)
    +    v2.imageZoom = 6.28038
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0, 0.011, -0.0935)
    +    SetView3D(v2)
    +    Test("ansys3_1")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    SetView3D(v)
    +    Test("ansys3_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test4(datapath):
    +    db = "cubeF.inp"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +    Test("ansys4_1")
    +
    +def main():
    +    # Set up the window background color
    +    a = GetAnnotationAttributes()
    +    a.backgroundMode = a.Solid
    +    a.backgroundColor = (180, 180, 180, 255)
    +    a.foregroundColor = (255, 255, 255, 255)
    +    SetAnnotationAttributes(a)
    +
    +    DefineScalarExpression("one", "(zoneid(mesh) + 1) / (zoneid(mesh) + 1)")
    +
    +    datapath = data_path("ANSYS_test_data")
    +    test1(datapath)
    +    test2(datapath)
    +    test3(datapath)
    +    test4(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_CGNS.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_CGNS.html new file mode 100644 index 000000000..8c3a17346 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_CGNS.html @@ -0,0 +1,204 @@ + +Results for databases/CGNS.py + +

    Results of VisIt Regression Test - databases/CGNS

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Structured files
    CGNS_0_000.000.00
    CGNS_0_010.000.00
    CGNS_0_020.000.00
    CGNS_0_030.000.00
    CGNS_0_040.000.00
    CGNS_0_050.000.00
    CGNS_0_060.000.00
    Unstructured files
    CGNS_1_000.000.00
    CGNS_1_010.000.00
    CGNS_1_020.000.00
    CGNS_1_030.000.00
    CGNS_1_040.000.00
    CGNS_1_050.000.00
    CGNS_1_060.000.00
    CGNS_1_070.000.00
    Variables on only some of the domains
    CGNS_2_000.000.00
    CGNS_2_010.000.00
    CGNS_2_020.000.00
    CGNS_2_030.000.00
    CGNS_2_040.000.00
    CGNS_2_050.000.00
    File with boundaries
    CGNS_3_000.000.00
    Arbitrary polygons
    CGNS_NGon_Elements_000.000.00
    Arbitrary polyhedra
    CGNS_NFace_Elements_000.000.00
    CGNS_NFace_Elements_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_CGNS_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_CGNS_py.html new file mode 100644 index 000000000..764241619 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_CGNS_py.html @@ -0,0 +1,389 @@ +databases/CGNS.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  CGNS.py
    +#
    +#  Tests:      mesh      - 3D structured, unstructured, single and 
    +#                          multiple domain
    +#              plots     - Contour, Mesh, Pseudocolor, Subset
    +#              operators - Clip, Slice
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Sep 2 11:19:33 PDT 2005
    +#
    +#  Modifications:
    +#    Brad Whitlock, Mon Apr 21 10:55:14 PDT 2008
    +#    Updated variable names to compensate for changes to CGNS reader.
    +#
    +#    Jeremy Meredith, Fri Aug  8 11:23:29 EDT 2008
    +#    Updated streamline settings to match new attribute fields.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Cyrus Harrison, Wed Aug 25 14:28:14 PDT 2010
    +#    Variable name change due to changes with SIL generation.
    +#
    +#    Brad Whitlock, Tue Sep 11 14:38:37 PDT 2012
    +#    Test file that has boundaries.
    +#
    +#    Alister Maguire, Tue Mar  2 10:29:37 PST 2021
    +#    Added tests for NGon and NFace elements.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("CGNS")
    +
    +def test0(datapath):
    +    TestSection("Structured files")
    +
    +    OpenDatabase(pjoin(datapath,"delta.cgns"))
    +    AddPlot("Mesh", "Zone___1")
    +    DrawPlots()
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.673597, -0.70478, 0.222605)
    +    v0.focus = (0.5, 0.827196, 0.0589651)
    +    v0.viewUp = (0.150257, 0.164313, 0.974897)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 2.30431
    +    v0.nearPlane = -4.60862
    +    v0.farPlane = 4.60862
    +    v0.imagePan = (0.0171482, 0.0494526)
    +    v0.imageZoom = 1.09899
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0.5, 0.827196, 0.0589651)
    +    SetView3D(v0)
    +    Test("CGNS_0_00")
    +
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "Density")
    +    DrawPlots()
    +    Test("CGNS_0_01")
    +
    +    ChangeActivePlotsVar("MomentumX")
    +    Test("CGNS_0_02")
    +
    +    AddPlot("Vector", "Momentum")
    +    v = VectorAttributes()
    +    v.nVectors = 4000
    +    v.scale = 0.065
    +    v.scaleByMagnitude = 0
    +    v.autoScale = 0
    +    SetPlotOptions(v)
    +    DrawPlots()
    +    v1 = View3DAttributes()
    +    v1.viewNormal = (-0.59445, 0.745055, 0.302528)
    +    v1.focus = (0.5, 0.827196, 0.0589651)
    +    v1.viewUp = (0.177264, -0.245548, 0.953039)
    +    v1.viewAngle = 30
    +    v1.parallelScale = 2.30431
    +    v1.nearPlane = 0
    +    v1.farPlane = 4.60862
    +    v1.imagePan = (-0.00797807, 0.021628)
    +    v1.imageZoom = 2.76008
    +    v1.perspective = 1
    +    v1.eyeAngle = 2
    +    v1.centerOfRotationSet = 0
    +    v1.centerOfRotation = (0.5, 0.827196, 0.0589651)
    +    SetView3D(v1)
    +    Test("CGNS_0_03")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(pjoin(datapath,"5blocks.cgns"))
    +    AddPlot("Subset", "zones")
    +    AddPlot("Mesh", "BASE_1")
    +    DrawPlots()
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.56714, 0.62864, 0.532131)
    +    v2.focus = (18.3432, -132.647, 108.59)
    +    v2.viewUp = (0.353654, -0.397621, 0.846656)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 390.48
    +    v2.nearPlane = -780.96
    +    v2.farPlane = 780.96
    +    v2.imagePan = (0.0358739, 0.018554)
    +    v2.imageZoom = 1.2581
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (18.3432, -132.647, 108.59)
    +    SetView3D(v2)
    +    Test("CGNS_0_04")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(pjoin(datapath,"multi.cgns"))
    +    AddPlot("Subset", "zones")
    +    AddOperator("Slice")
    +    DrawPlots()
    +    v3 = View2DAttributes()
    +    v3.windowCoords = (-0.101847, 1.39507, -0.777335, 0.779882)
    +    v3.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v3.fullFrameActivationMode = v3.Off  # On, Off, Auto
    +    v3.fullFrameAutoThreshold = 100
    +    SetView2D(v3)
    +    Test("CGNS_0_05")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "MomentumZ")
    +    AddOperator("Slice")
    +    DrawPlots()
    +    Test("CGNS_0_06")
    +
    +    DeleteAllPlots()
    +
    +
    +def test1(datapath):
    +    TestSection("Unstructured files")
    +
    +    OpenDatabase(pjoin(datapath,"StaticMixer.cgns"))
    +    AddPlot("Mesh", "StaticMixer")
    +    AddPlot("Pseudocolor", "Pressure")
    +    DrawPlots()
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.791423, -0.34473, 0.504788)
    +    v0.focus = (0, 0, 6.65045e-11)
    +    v0.viewUp = (0.453682, 0.222176, 0.863024)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 4.1231
    +    v0.nearPlane = -8.24621
    +    v0.farPlane = 8.24621
    +    v0.imagePan = (-0.00919414, -0.0394234)
    +    v0.imageZoom = 1.4092
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0, 0, 0)
    +    SetView3D(v0)
    +    Test("CGNS_1_00")
    +
    +    ChangeActivePlotsVar("VelocityX")
    +    Test("CGNS_1_01")
    +
    +    SetActivePlots((0,1))
    +    AddOperator("Clip")
    +    c = ClipAttributes()
    +    c.plane2Status = 1
    +    c.plane1Normal = (-1.,0.,0.)
    +    c.plane2Normal = (0.,-1.,0.)
    +    SetOperatorOptions(c)
    +    DrawPlots()
    +    Test("CGNS_1_02")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(pjoin(datapath,"jet.cgns"))
    +    AddPlot("Pseudocolor", "CoefPressure")
    +    AddPlot("Contour", "CoefPressure")
    +    c = ContourAttributes()
    +    c.colorType = c.ColorBySingleColor
    +    c.contourNLevels = 30
    +    c.singleColor=(0,0,0,255)
    +    c.legendFlag = 0
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    v1 = View3DAttributes()
    +    v1.viewNormal = (0.89973, 0.23533, 0.367566)
    +    v1.focus = (1.82694, 0, 4.12744)
    +    v1.viewUp = (-0.354779, -0.0961553, 0.929992)
    +    v1.viewAngle = 30
    +    v1.parallelScale = 47.9514
    +    v1.nearPlane = -95.9031
    +    v1.farPlane = 95.9031
    +    v1.imagePan = (-0.0544089, 0.00587157)
    +    v1.imageZoom = 1.62963
    +    v1.perspective = 1
    +    v1.eyeAngle = 2
    +    v1.centerOfRotationSet = 0
    +    v1.centerOfRotation = (1.82694, 0, 4.12744)
    +    SetView3D(v1)
    +    Test("CGNS_1_03")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(pjoin(datapath,"yf17.cgns"))
    +    AddPlot("Mesh", "Zone1")
    +    AddPlot("Pseudocolor", "Density")
    +    DrawPlots()
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.79815, 0.489358, 0.351405)
    +    v2.focus = (0, 31.7504, 0)
    +    v2.viewUp = (0.286761, -0.204385, 0.935946)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 95.2512
    +    v2.nearPlane = 0
    +    v2.farPlane = 190.502
    +    v2.imagePan = (-0.129267, -0.0352136)
    +    v2.imageZoom = 15.4243
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0, 31.7504, 0)
    +    SetView3D(v2)
    +    Test("CGNS_1_04")
    +
    +    v3 = View3DAttributes()
    +    v3.viewNormal = (-0.79815, 0.489358, 0.351405)
    +    v3.focus = (0, 31.7504, 0)
    +    v3.viewUp = (0.286761, -0.204385, 0.935946)
    +    v3.viewAngle = 30
    +    v3.parallelScale = 95.2512
    +    v3.nearPlane = 0
    +    v3.farPlane = 190.502
    +    v3.imagePan = (-0.130871, -0.033492)
    +    v3.imageZoom = 66.7586
    +    v3.perspective = 1
    +    v3.eyeAngle = 2
    +    v3.centerOfRotationSet = 0
    +    v3.centerOfRotation = (0, 31.7504, 0)
    +    SetView3D(v3)
    +    Test("CGNS_1_05")
    +
    +    SetActivePlots(0)
    +    DeleteActivePlots()
    +    SetView3D(v2)
    +    Test("CGNS_1_06")
    +
    +    AddPlot("Vector", "Velocity")
    +    v = VectorAttributes()
    +    v.nVectors = 4000
    +    v.scale = 0.2
    +    v.scaleByMagnitude = 0
    +    v.autoScale = 0
    +    SetPlotOptions(v)
    +    DrawPlots()
    +    Test("CGNS_1_07")
    +    DeleteAllPlots()
    +
    +
    +def test2(datapath):
    +    TestSection("Variables on only some of the domains")
    +
    +    OpenDatabase(pjoin(datapath,"HeatingCoil.cgns"))
    +    AddPlot("Subset", "zones(Base)")
    +    DrawPlots()
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (0.27344, 0.876709, 0.395743)
    +    v0.focus = (0, 0, 1.125)
    +    v0.viewUp = (-0.0932919, -0.385311, 0.918059)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 1.8071
    +    v0.nearPlane = -3.61421
    +    v0.farPlane = 3.61421
    +    v0.imagePan = (-0.00158217, 0.0267093)
    +    v0.imageZoom = 1.11866
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0, 0, 1.125)
    +    SetView3D(v0)
    +    Test("CGNS_2_00")
    +
    +    TurnDomainsOff("FluidZone")
    +    Test("CGNS_2_01")
    +
    +    TurnDomainsOn()
    +    TurnDomainsOff("SolidZone")
    +    Test("CGNS_2_02")
    +    TurnDomainsOn()
    +    DeleteAllPlots()
    +
    +    # Make sure we can plot variables that exist on only 1 domain.
    +    AddPlot("Pseudocolor", "Pressure")
    +    DrawPlots()
    +    Test("CGNS_2_03")
    +    ChangeActivePlotsVar("VelocityZ")
    +    AddPlot("Mesh", "subgrid/Base001")
    +    DrawPlots()
    +    Test("CGNS_2_04")
    +    DeleteAllPlots()
    +
    +    # Draw the 1 variable that exists in both domains.
    +    AddPlot("Pseudocolor","Temperature")
    +    DrawPlots()
    +    Test("CGNS_2_05")
    +    DeleteAllPlots()
    +
    +def test3(datapath):
    +    TestSection("File with boundaries")
    +
    +    OpenDatabase(pjoin(datapath,"with_boundary_faces.cgns"))
    +    AddPlot("Pseudocolor", "Density")
    +    DrawPlots()
    +    ResetView()
    +    v = GetView2D()
    +    v.fullFrameActivationMode = v.On
    +    SetView2D(v)
    +
    +    Test("CGNS_3_00")
    +    DeleteAllPlots()
    +
    +def testNGonElements(datapath):
    +    TestSection("Arbitrary polygons")
    +
    +    OpenDatabase(pjoin(datapath, "spherePolyMesh.cgns"))
    +    AddPlot("Mesh", "sphere")
    +    DrawPlots()
    +    ResetView()
    +
    +    Test("CGNS_NGon_Elements_00")
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath, "spherePolyMesh.cgns"))
    +
    +def testNFaceElements(datapath):
    +    TestSection("Arbitrary polyhedra")
    +
    +    #
    +    # First, test the simple case. This mesh has 2 sections,
    +    # one for NGon and one for NFace.
    +    #
    +    OpenDatabase(pjoin(datapath, "trappedvtx_ngon.cgns"))
    +    AddPlot("Mesh", "ComputeBase")
    +    MeshAtts = MeshAttributes()
    +    DrawPlots()
    +    ResetView()
    +
    +    Test("CGNS_NFace_Elements_00")
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath, "trappedvtx_ngon.cgns"))
    +
    +    #
    +    # Next, test a more complicated case. This mesh has 5 sections,
    +    # 4 of which are NGon. The single NFace section references all
    +    # 4 NGon sections.
    +    #
    +    OpenDatabase(pjoin(datapath, "spherePolyMesh3D.cgns"))
    +    AddPlot("Mesh", "sphere")
    +    MeshAtts = MeshAttributes()
    +    MeshAtts.opacity = 0.4
    +    SetPlotOptions(MeshAtts)
    +
    +    AddPlot("Pseudocolor", "Density")
    +    PseudocolorAtts = PseudocolorAttributes()
    +    PseudocolorAtts.opacityType = PseudocolorAtts.Constant
    +    PseudocolorAtts.opacity = 0.4
    +    SetPlotOptions(PseudocolorAtts)
    +
    +    DrawPlots()
    +    ResetView()
    +
    +    Test("CGNS_NFace_Elements_01")
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath, "spherePolyMesh3D.cgns"))
    +
    +def main():
    +    # Draw antialiased lines
    +    r = GetRenderingAttributes()
    +    r.antialiasing = 1
    +    SetRenderingAttributes(r)
    +
    +    datapath = data_path("CGNS_test_data")
    +    test0(datapath)
    +    test1(datapath)
    +    test2(datapath)
    +    test3(datapath)
    +    testNGonElements(datapath)
    +    testNFaceElements(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_Cale.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_Cale.html new file mode 100644 index 000000000..ead0da1f3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_Cale.html @@ -0,0 +1,69 @@ + +Results for databases/Cale.py + +

    Results of VisIt Regression Test - databases/Cale

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Cale files
    Cale_0_000.000.00
    Cale_0_010.000.00
    Cale_0_020.000.00
    Cale_0_030.000.00
    Cale_0_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_Cale_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_Cale_py.html new file mode 100644 index 000000000..04784399e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_Cale_py.html @@ -0,0 +1,65 @@ +databases/Cale.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  Cale.py
    +#
    +#  Tests:      mesh      - 2D, structured, single domain
    +#              plots     - Pseudocolor, FilledBoundary
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Oct 10 11:46:45 PDT 2007
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def test0(datapath):
    +    TestSection("Cale files")
    +    OpenDatabase(pjoin(datapath,"jet00405.pdb"))
    +    AddPlot("Pseudocolor", "p")
    +    DrawPlots()
    +    Test("Cale_0_00")
    +    DeleteActivePlots()
    +
    +    AddPlot("FilledBoundary", "Materials")
    +    DrawPlots()
    +    Test("Cale_0_01")
    +
    +    AddPlot("Mesh", "hydro")
    +    DrawPlots()
    +    v0 = View2DAttributes()
    +    v0.windowCoords = (10.1155, 11.6375, 3.20767, 4.82837)
    +    v0.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v0.fullFrameActivationMode = v0.Auto  # On, Off, Auto
    +    v0.fullFrameAutoThreshold = 100
    +    v0.xScale = v0.LINEAR  # LINEAR, LOG
    +    v0.yScale = v0.LINEAR  # LINEAR, LOG
    +    SetView2D(v0)
    +    Test("Cale_0_02")
    +
    +    # Do a PC plot with mixvars.
    +    SetActivePlots(0)
    +    DeleteActivePlots()
    +    m = GetMaterialAttributes()
    +    m.forceMIR = 1
    +    SetMaterialAttributes(m)
    +    AddPlot("Pseudocolor", "den")
    +    DrawPlots()
    +    Test("Cale_0_03")
    +    DeleteAllPlots()
    +
    +    # Test another file.
    +    OpenDatabase(pjoin(datapath,"vpgz.pdb"))
    +    AddPlot("FilledBoundary", "Materials")
    +    DrawPlots()
    +    ResetView()
    +    Test("Cale_0_04")
    +    DeleteActivePlots()
    +
    +def main():
    +    datapath = data_path("Cale_test_data")
    +    test0(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_Chombo.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_Chombo.html new file mode 100644 index 000000000..53aa814e5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_Chombo.html @@ -0,0 +1,73 @@ + +Results for databases/Chombo.py + +

    Results of VisIt Regression Test - databases/Chombo

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Changing time states
    Chombo_0_000.000.00
    Chombo_0_010.000.00
    Chombo_0_020 modifications totalling 0 lines
    More distinct refinements
    Chombo_1_000.000.00
    Anisotropic refinement
    Chombo_2_000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_Chombo_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_Chombo_py.html new file mode 100644 index 000000000..2e673a1eb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_Chombo_py.html @@ -0,0 +1,101 @@ +databases/Chombo.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  Chombo.py
    +#
    +#  Tests:      mesh      - 2D AMR
    +#              plots     - Pseudocolor
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Mon Sep 25 14:17:58 PST 2006
    +#
    +#  Modifications:
    +#    Mark C. Miller, Wed Jan 21 10:00:10 PST 2009
    +#    Removed silly comments regarding global annotation object 'a'
    +#
    +# ----------------------------------------------------------------------------
    +
    +def test0(datapath):
    +    TestSection("Changing time states")
    +
    +    # Set up the plots.
    +    db = pjoin(datapath,"chombo.visit")
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "Density")
    +    AddOperator("Transform")
    +    t = TransformAttributes()
    +    t.doScale = 1
    +    t.scaleY = 8.
    +    SetOperatorOptions(t)
    +    DrawPlots()
    +
    +    Test("Chombo_0_00")
    +
    +    # Make sure we can change time states. This demonstrates the reader's
    +    # ability to change metadata/SIL over time.
    +    SetTimeSliderState(1)
    +    Test("Chombo_0_01")
    +
    +    # Get the time steps.
    +    s = "Number of states: %d\n" %  TimeSliderGetNStates()
    +    for i in range(TimeSliderGetNStates()):
    +        SetTimeSliderState(i)
    +        Query("Cycle")
    +        cycle = GetQueryOutputValue()
    +        Query("Time")
    +        time = GetQueryOutputValue()
    +        values = "Cycle=%d, Time=%g" % (cycle, time)
    +        s = s + values + "\n"
    +    TestText("Chombo_0_02", s)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test1(datapath):
    +    TestSection("More distinct refinements")
    +
    +    db = pjoin(datapath,"chombo.visit")
    +    OpenDatabase(db)
    +
    +    AddPlot("Subset", "patches")
    +    AddPlot("Contour", "P_y_Over_Rho")
    +    DrawPlots()
    +    v = GetView2D()
    +    v.fullFrameActivationMode = v.On
    +    SetView2D(v)
    +
    +    Test("Chombo_1_00")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test2(datapath):
    +    TestSection("Anisotropic refinement")
    +
    +    db = pjoin(datapath,"aniso_refin.2d.hdf5")
    +    OpenDatabase(db)
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("Subset", "levels")
    +    DrawPlots()
    +
    +    Test("Chombo_2_00")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def main():
    +    TurnOffAllAnnotations()
    +
    +    InvertBackgroundColor()
    +
    +    datapath = data_path("Chombo_test_data")
    +    test0(datapath)
    +    test1(datapath)
    +    test2(datapath)
    +
    +    InvertBackgroundColor()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_Curve3D.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_Curve3D.html new file mode 100644 index 000000000..7c50584fe --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_Curve3D.html @@ -0,0 +1,48 @@ + +Results for databases/Curve3D.py + +

    Results of VisIt Regression Test - databases/Curve3D

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Curve3D_000.000.00
    Curve3D_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_Curve3D_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_Curve3D_py.html new file mode 100644 index 000000000..afba42c2b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_Curve3D_py.html @@ -0,0 +1,157 @@ +databases/Curve3D.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  Curve3D.py
    +#
    +#  Programmer: Olivier Cessenat
    +#  Wed Nov  8 18:45:00 CET 2023
    +#
    +# ----------------------------------------------------------------------------
    +TurnOffAllAnnotations()
    +
    +OpenDatabase(data_path("Curve3D_test_data/a3dcurvf.curve3d"), 0, "Curve3D_1.0")
    +AddPlot("FilledBoundary", "segments", 1, 1)
    +# Begin spontaneous state
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.087671, -0.95302, 0.289943)
    +View3DAtts.focus = (2.5, 1.5, 0)
    +View3DAtts.viewUp = (-0.114612, 0.279481, 0.953286)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 3.08221
    +View3DAtts.nearPlane = -6.16441
    +View3DAtts.farPlane = 6.16441
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (2.5, 1.5, 0)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +View3DAtts.windowValid = 1
    +SetView3D(View3DAtts)
    +# End spontaneous state
    +
    +FilledBoundaryAtts = FilledBoundaryAttributes()
    +FilledBoundaryAtts.colorType = FilledBoundaryAtts.ColorByMultipleColors  # ColorBySingleColor, ColorByMultipleColors, ColorByColorTable
    +FilledBoundaryAtts.colorTableName = "Default"
    +FilledBoundaryAtts.invertColorTable = 0
    +FilledBoundaryAtts.legendFlag = 1
    +FilledBoundaryAtts.lineWidth = 2
    +FilledBoundaryAtts.singleColor = (0, 0, 0, 255)
    +FilledBoundaryAtts.SetMultiColor(0, (255, 0, 0, 255))
    +FilledBoundaryAtts.SetMultiColor(1, (0, 255, 0, 255))
    +FilledBoundaryAtts.boundaryNames = ("mat_toto", "mat_toto_0")
    +FilledBoundaryAtts.opacity = 1
    +FilledBoundaryAtts.wireframe = 0
    +FilledBoundaryAtts.drawInternal = 0
    +FilledBoundaryAtts.smoothingLevel = 0
    +FilledBoundaryAtts.cleanZonesOnly = 0
    +FilledBoundaryAtts.mixedColor = (255, 255, 255, 255)
    +FilledBoundaryAtts.pointSize = 0.05
    +FilledBoundaryAtts.pointType = FilledBoundaryAtts.Point  # Box, Axis, Icosahedron, Octahedron, Tetrahedron, SphereGeometry, Point, Sphere
    +FilledBoundaryAtts.pointSizeVarEnabled = 0
    +FilledBoundaryAtts.pointSizeVar = "default"
    +FilledBoundaryAtts.pointSizePixels = 2
    +SetPlotOptions(FilledBoundaryAtts)
    +
    +DrawPlots()
    +SaveWindowAtts = SaveWindowAttributes()
    +SaveWindowAtts.outputToCurrentDirectory = 1
    +SaveWindowAtts.outputDirectory = "."
    +SaveWindowAtts.fileName = "a3dcurvf"
    +SaveWindowAtts.family = 1
    +SaveWindowAtts.format = SaveWindowAtts.PNG  # BMP, CURVE, JPEG, OBJ, PNG, POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA, VTK, PLY
    +SaveWindowAtts.width = 1024
    +SaveWindowAtts.height = 1024
    +SaveWindowAtts.screenCapture = 0
    +SaveWindowAtts.saveTiled = 0
    +SaveWindowAtts.quality = 80
    +SaveWindowAtts.progressive = 0
    +SaveWindowAtts.binary = 0
    +SaveWindowAtts.stereo = 0
    +SaveWindowAtts.compression = SaveWindowAtts.PackBits  # None, PackBits, Jpeg, Deflate
    +SaveWindowAtts.forceMerge = 0
    +SaveWindowAtts.resConstraint = SaveWindowAtts.ScreenProportions  # NoConstraint, EqualWidthHeight, ScreenProportions
    +SaveWindowAtts.advancedMultiWindowSave = 0
    +SetSaveWindowAttributes(SaveWindowAtts)
    +Test("Curve3D_00", SaveWindowAtts)
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("Curve3D_test_data/a3dcurvf.curve3d"))
    +
    +OpenDatabase(data_path("Curve3D_test_data/a3dcurve.curve3d"), 0, "Curve3D_1.0")
    +AddPlot("FilledBoundary", "segments", 1, 1)
    +# Begin spontaneous state
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (-0.960174, -0.252458, 0.119713)
    +View3DAtts.focus = (2.5, 1.5, 0)
    +View3DAtts.viewUp = (-0.254446, 0.613076, -0.747927)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 3.08221
    +View3DAtts.nearPlane = -6.16441
    +View3DAtts.farPlane = 6.16441
    +View3DAtts.imagePan = (-0.178886, 0.187104)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (2.5, 1.5, 0)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +View3DAtts.windowValid = 1
    +SetView3D(View3DAtts)
    +# End spontaneous state
    +
    +FilledBoundaryAtts = FilledBoundaryAttributes()
    +FilledBoundaryAtts.colorType = FilledBoundaryAtts.ColorByMultipleColors  # ColorBySingleColor, ColorByMultipleColors, ColorByColorTable
    +FilledBoundaryAtts.colorTableName = "Default"
    +FilledBoundaryAtts.invertColorTable = 0
    +FilledBoundaryAtts.legendFlag = 1
    +FilledBoundaryAtts.lineWidth = 2
    +FilledBoundaryAtts.singleColor = (0, 0, 0, 255)
    +FilledBoundaryAtts.SetMultiColor(0, (255, 0, 0, 255))
    +FilledBoundaryAtts.SetMultiColor(1, (0, 255, 0, 255))
    +FilledBoundaryAtts.boundaryNames = ("mat_tata", "mat_tutu", "mat_tutu_0", "mat_tutu_1")
    +FilledBoundaryAtts.opacity = 1
    +FilledBoundaryAtts.wireframe = 0
    +FilledBoundaryAtts.drawInternal = 0
    +FilledBoundaryAtts.smoothingLevel = 0
    +FilledBoundaryAtts.cleanZonesOnly = 0
    +FilledBoundaryAtts.mixedColor = (255, 255, 255, 255)
    +FilledBoundaryAtts.pointSize = 0.05
    +FilledBoundaryAtts.pointType = FilledBoundaryAtts.Point  # Box, Axis, Icosahedron, Octahedron, Tetrahedron, SphereGeometry, Point, Sphere
    +FilledBoundaryAtts.pointSizeVarEnabled = 0
    +FilledBoundaryAtts.pointSizeVar = "default"
    +FilledBoundaryAtts.pointSizePixels = 2
    +SetPlotOptions(FilledBoundaryAtts)
    +
    +DrawPlots()
    +SaveWindowAtts = SaveWindowAttributes()
    +SaveWindowAtts.outputToCurrentDirectory = 1
    +SaveWindowAtts.outputDirectory = "."
    +SaveWindowAtts.fileName = "a3dcurve"
    +SaveWindowAtts.family = 1
    +SaveWindowAtts.format = SaveWindowAtts.PNG  # BMP, CURVE, JPEG, OBJ, PNG, POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA, VTK, PLY
    +SaveWindowAtts.width = 1024
    +SaveWindowAtts.height = 1024
    +SaveWindowAtts.screenCapture = 0
    +SaveWindowAtts.saveTiled = 0
    +SaveWindowAtts.quality = 80
    +SaveWindowAtts.progressive = 0
    +SaveWindowAtts.binary = 0
    +SaveWindowAtts.stereo = 0
    +SaveWindowAtts.compression = SaveWindowAtts.PackBits  # None, PackBits, Jpeg, Deflate
    +SaveWindowAtts.forceMerge = 0
    +SaveWindowAtts.resConstraint = SaveWindowAtts.ScreenProportions  # NoConstraint, EqualWidthHeight, ScreenProportions
    +SaveWindowAtts.advancedMultiWindowSave = 0
    +SetSaveWindowAttributes(SaveWindowAtts)
    +Test("Curve3D_01", SaveWindowAtts)
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("Curve3D_test_data/a3dcurve.curve3d"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_EnSight.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_EnSight.html new file mode 100644 index 000000000..0cd45ed4e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_EnSight.html @@ -0,0 +1,102 @@ + +Results for databases/EnSight.py + +

    Results of VisIt Regression Test - databases/EnSight

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    MT, ASCII, EnSight Gold files
    EnSight_0_000.000.00
    EnSight_0_010.000.00
    EnSight_0_020.000.00
    EnSight_0_030.000.00
    EnSight_0_040.000.00
    EnSight_0_050.000.00
    EnSight_0_060.000.00
    EnSight_0_070.000.00
    EnSight_0_080 modifications totalling 0 lines
    Make sure that we get correct values
    EnSight_1_000 modifications totalling 0 lines
    EnSight_1_010 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_EnSight_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_EnSight_py.html new file mode 100644 index 000000000..02054a32b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_EnSight_py.html @@ -0,0 +1,84 @@ +databases/EnSight.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  EnSight.py
    +#
    +#  Tests:      mesh      - 2D structured
    +#              plots     - Pseudocolor
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Tue Jun 27 10:27:50 PDT 2006
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Sep 27 10:19:38 PDT 2006
    +#    Test another dataset to make sure that the cycle/time values and the
    +#    dataset values are right.
    +#
    +# ----------------------------------------------------------------------------
    +
    +RequiredDatabasePlugin("EnSight")
    +
    +def test0(datapath):
    +    TestSection("MT, ASCII, EnSight Gold files")
    +
    +    # Set up the plots.
    +    OpenDatabase(pjoin(datapath,"CHR.case"))
    +    AddPlot("Pseudocolor", "Pression")
    +    DrawPlots()
    +
    +    # Save images for all 8 time steps
    +    s = "Time values:\n"
    +    for i in range(8):
    +        SetTimeSliderState(i)
    +        DrawPlots()
    +        Test("EnSight_0_%02d" % i)
    +
    +        Query("Time")
    +        s = s + GetQueryOutputString() + "\n"
    +
    +    TestText("EnSight_0_08", s)
    +    DeleteAllPlots()
    +
    +def test1(datapath):
    +    TestSection("Make sure that we get correct values")
    +
    +    # Set up the plots.
    +    OpenDatabase(pjoin(datapath,"dataset2/CHR.case"))
    +    AddPlot("Pseudocolor", "nb")
    +    DrawPlots()
    +
    +    # Query the values at all time steps to make sure that we get the
    +    # right cycles, times and min dataset value.
    +    s = "Time values:\n"
    +    v = "Dataset values\n"
    +    for i in range(TimeSliderGetNStates()):
    +        SetTimeSliderState(i)
    +        DrawPlots()
    +
    +        # Get cycle and time.
    +        Query("Time")
    +        t = GetQueryOutputValue()
    +
    +        # Get min value
    +        Query("Min")
    +        m = GetQueryOutputValue()
    +
    +        line = "Time=%g\n" % t
    +        s = s + line
    +        line = "Min Value=%g\n" % m
    +        v = v + line
    +
    +    TestText("EnSight_1_00", s)
    +    TestText("EnSight_1_01", v)
    +    DeleteAllPlots()
    +
    +def main():
    +    TurnOffAllAnnotations()
    +
    +    datapath = data_path("EnSight_test_data")
    +    test0(datapath)
    +    test1(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_FITS.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_FITS.html new file mode 100644 index 000000000..afce234b8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_FITS.html @@ -0,0 +1,87 @@ + +Results for databases/FITS.py + +

    Results of VisIt Regression Test - databases/FITS

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    2D truecolor images
    FITS_0_000.000.00
    2D pseudocolor images
    FITS_1_000.000.00
    FITS_1_010.000.00
    FITS_1_020.000.00
    FITS_1_030.000.00
    3D pseudocolor data
    FITS_2_000.000.00
    FITS_2_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_FITS_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_FITS_py.html new file mode 100644 index 000000000..85db3be57 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_FITS_py.html @@ -0,0 +1,124 @@ +databases/FITS.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  FITS.py
    +#
    +#  Tests:      mesh      - 2D structured, 3D structured
    +#              plots     - Pseudocolor, TrueColor
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Jul 20 14:07:49 PST 2006
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Tue Mar 18 15:40:19 PDT 2008
    +#    Reflect change in variable names.
    +#
    +#    Hank Childs, Sat Mar 13 10:57:19 PST 2010
    +#    Reflect change in variable names.
    +#    
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("FITS")
    +
    +def test0(datapath):
    +    TestSection("2D truecolor images")
    +
    +    # Set up the plots.
    +    db = pjoin(datapath,"mandrill.fits")
    +    OpenDatabase(db)
    +    AddPlot("Truecolor", "MANDRILL")
    +    DrawPlots()
    +
    +    Test("FITS_0_00")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +
    +def test1(datapath):
    +    TestSection("2D pseudocolor images")
    +
    +    # Set up the plots.
    +    db = pjoin(datapath,"y2000m2.fits")
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "NGC7083 V 550nm _lp_Intens_rp_")
    +    pc = PseudocolorAttributes()
    +    pc.minFlag = 1
    +    pc.scaling = pc.Log  # Linear, Log, Skew
    +    pc.min = 0.001
    +    pc.colorTableName = "bluehot"
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    Test("FITS_1_00")
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +    # Set up the plots.
    +    db = pjoin(datapath, "04May04_standard_*.fits database")
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "HD43583")
    +    DrawPlots()
    +    Test("FITS_1_01")
    +
    +    SetTimeSliderState(1)
    +    Test("FITS_1_02")
    +
    +    SetTimeSliderState(2)
    +    Test("FITS_1_03")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +
    +def test2(datapath):
    +    TestSection("3D pseudocolor data")
    +
    +    # Set up the plots.
    +    db = pjoin(datapath,"ngc6503.fits")
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "NGC6503")
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (0.406249, -0.543192, 0.734782)
    +    v.focus = (128, 128, 15.5)
    +    v.viewUp = (-0.273573, 0.694941, 0.664993)
    +    v.viewAngle = 30
    +    v.parallelScale = 181.682
    +    v.nearPlane = -363.363
    +    v.farPlane = 363.363
    +    v.imagePan = (0.0160165, 0.0533909)
    +    v.imageZoom = 1.05918
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (128, 128, 15.5)
    +    SetView3D(v)
    +    Test("FITS_2_00")
    +    DeleteAllPlots()
    +
    +    AddPlot("Contour", "NGC6503")
    +    ca = ContourAttributes()
    +    ca.contourValue = (0.0075)
    +    ca.contourMethod = ca.Value  # Level, Value, Percent
    +    SetPlotOptions(ca)
    +    DrawPlots()
    +    Test("FITS_2_01")
    +    DeleteAllPlots()
    +
    +    CloseDatabase(db)
    +
    +def main():
    +    TurnOffAllAnnotations()
    +
    +    InvertBackgroundColor()
    +
    +    datapath = data_path("FITS_test_data")
    +    test0(datapath)
    +    test1(datapath)
    +    test2(datapath)
    +
    +    InvertBackgroundColor()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_FMS.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_FMS.html new file mode 100644 index 000000000..4bd34a97c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_FMS.html @@ -0,0 +1,1156 @@ + +Results for databases/FMS.py + +

    Results of VisIt Regression Test - databases/FMS

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    domains - ascii
    FMS_0_1_000 modifications totalling 0 lines
    FMS_0_1_010.000.00
    FMS_0_1_020.000.00
    FMS_0_1_030.000.00
    FMS_0_2_000 modifications totalling 0 lines
    FMS_0_2_010.000.00
    FMS_0_2_020.000.00
    FMS_0_2_030.000.00
    FMS_0_3_000 modifications totalling 0 lines
    FMS_0_3_010.000.00
    FMS_0_3_020.000.00
    FMS_0_3_030.000.00
    domains - yaml
    FMS_1_1_000 modifications totalling 0 lines
    FMS_1_1_010.000.00
    FMS_1_1_020.000.00
    FMS_1_1_030.000.00
    FMS_1_2_000 modifications totalling 0 lines
    FMS_1_2_010.000.00
    FMS_1_2_020.000.00
    FMS_1_2_030.000.00
    FMS_1_3_000 modifications totalling 0 lines
    FMS_1_3_010.000.00
    FMS_1_3_020.000.00
    FMS_1_3_030.000.00
    domains - json
    FMS_2_1_000 modifications totalling 0 lines
    FMS_2_1_010.000.00
    FMS_2_1_020.000.00
    FMS_2_1_030.000.00
    FMS_2_2_000 modifications totalling 0 lines
    FMS_2_2_010.000.00
    FMS_2_2_020.000.00
    FMS_2_2_030.000.00
    FMS_2_3_000 modifications totalling 0 lines
    FMS_2_3_010.000.00
    FMS_2_3_020.000.00
    FMS_2_3_030.000.00
    domains - hdf5
    FMS_3_1_000 modifications totalling 0 lines
    FMS_3_1_010.000.00
    FMS_3_1_020.000.00
    FMS_3_1_030.000.00
    FMS_3_2_000 modifications totalling 0 lines
    FMS_3_2_010.000.00
    FMS_3_2_020.000.00
    FMS_3_2_030.000.00
    FMS_3_3_000 modifications totalling 0 lines
    FMS_3_3_010.000.00
    FMS_3_3_020.000.00
    FMS_3_3_030.000.00
    quads - ascii
    FMS_4_1_000 modifications totalling 0 lines
    FMS_4_1_010.000.00
    FMS_4_1_020.000.00
    FMS_4_1_030.000.00
    FMS_4_1_040.000.00
    FMS_4_1_050.000.00
    FMS_4_1_060.000.00
    FMS_4_2_000 modifications totalling 0 lines
    FMS_4_2_010.000.00
    FMS_4_2_020.000.00
    FMS_4_2_030.000.00
    FMS_4_2_040.000.00
    FMS_4_2_050.000.00
    FMS_4_2_060.000.00
    FMS_4_3_000 modifications totalling 0 lines
    FMS_4_3_010.000.00
    FMS_4_3_020.000.00
    FMS_4_3_030.000.00
    FMS_4_3_040.000.00
    FMS_4_3_050.000.00
    FMS_4_3_060.000.00
    quads - yaml
    FMS_5_1_000 modifications totalling 0 lines
    FMS_5_1_010.000.00
    FMS_5_1_020.000.00
    FMS_5_1_030.000.00
    FMS_5_1_040.000.00
    FMS_5_1_050.000.00
    FMS_5_1_060.000.00
    FMS_5_2_000 modifications totalling 0 lines
    FMS_5_2_010.000.00
    FMS_5_2_020.000.00
    FMS_5_2_030.000.00
    FMS_5_2_040.000.00
    FMS_5_2_050.000.00
    FMS_5_2_060.000.00
    FMS_5_3_000 modifications totalling 0 lines
    FMS_5_3_010.000.00
    FMS_5_3_020.000.00
    FMS_5_3_030.000.00
    FMS_5_3_040.000.00
    FMS_5_3_050.000.00
    FMS_5_3_060.000.00
    hex - ascii
    FMS_6_1_000 modifications totalling 0 lines
    FMS_6_1_010.000.00
    FMS_6_1_020.000.00
    FMS_6_1_030.000.00
    FMS_6_1_040.000.00
    FMS_6_1_050.000.00
    FMS_6_2_000 modifications totalling 0 lines
    FMS_6_2_010.000.00
    FMS_6_2_020.000.00
    FMS_6_2_030.000.00
    FMS_6_2_040.000.00
    FMS_6_2_050.000.00
    FMS_6_3_000 modifications totalling 0 lines
    FMS_6_3_010.000.00
    FMS_6_3_020.000.00
    FMS_6_3_030.000.00
    FMS_6_3_040.000.00
    FMS_6_3_050.000.00
    FMS_6_4_000 modifications totalling 0 lines
    FMS_6_4_010.000.00
    FMS_6_4_020.000.00
    FMS_6_4_030.000.00
    FMS_6_4_040.000.00
    FMS_6_4_050.000.00
    FMS_6_5_000 modifications totalling 0 lines
    FMS_6_5_010.000.00
    FMS_6_5_020.000.00
    FMS_6_5_030.000.00
    FMS_6_5_040.000.00
    FMS_6_5_050.000.00
    hex - hdf5
    FMS_7_1_000 modifications totalling 0 lines
    FMS_7_1_010.000.00
    FMS_7_1_020.000.00
    FMS_7_1_030.000.00
    FMS_7_1_040.000.00
    FMS_7_1_050.000.00
    FMS_7_2_000 modifications totalling 0 lines
    FMS_7_2_010.000.00
    FMS_7_2_020.000.00
    FMS_7_2_030.000.00
    FMS_7_2_040.000.00
    FMS_7_2_050.000.00
    FMS_7_3_000 modifications totalling 0 lines
    FMS_7_3_010.000.00
    FMS_7_3_020.000.00
    FMS_7_3_030.000.00
    FMS_7_3_040.000.00
    FMS_7_3_050.000.00
    FMS_7_4_000 modifications totalling 0 lines
    FMS_7_4_010.000.00
    FMS_7_4_020.000.00
    FMS_7_4_030.000.00
    FMS_7_4_040.000.00
    FMS_7_4_050.000.00
    FMS_7_5_000 modifications totalling 0 lines
    FMS_7_5_010.000.00
    FMS_7_5_020.000.00
    FMS_7_5_030.000.00
    FMS_7_5_040.000.00
    FMS_7_5_050.000.00
    hex - time varying
    FMS_8__000 modifications totalling 0 lines
    FMS_8__010.000.00
    FMS_8__020.000.00
    Root file
    FMS_9__000 modifications totalling 0 lines
    FMS_9__010.000.00
    FMS_9__020.000.00
    Converted MFEM data: escher-p3-0ref
    FMS_10_000 modifications totalling 0 lines
    FMS_10_010.000.00
    FMS_10_020.000.00
    FMS_10_030.000.00
    Converted MFEM data: escher-p3
    FMS_11_000 modifications totalling 0 lines
    FMS_11_010.000.00
    FMS_11_020.000.00
    Converted MFEM data: Example15
    FMS_12_000 modifications totalling 0 lines
    FMS_12_010.000.00
    FMS_12_020.000.00
    FMS_12_030.000.00
    Converted MFEM data: Example9
    FMS_13_000 modifications totalling 0 lines
    FMS_13_010.000.00
    Converted MFEM data: fichera-q2-0ref
    FMS_14_000 modifications totalling 0 lines
    FMS_14_010.000.00
    FMS_14_020.000.00
    FMS_14_030.000.00
    Converted MFEM data: fichera-q2
    FMS_15_000 modifications totalling 0 lines
    FMS_15_010.000.00
    FMS_15_020.000.00
    Converted MFEM data: star-q3-0ref
    FMS_16_000 modifications totalling 0 lines
    FMS_16_010.000.00
    FMS_16_020.000.00
    FMS_16_030.000.00
    Converted MFEM data: star-q3
    FMS_17_000 modifications totalling 0 lines
    FMS_17_010.000.00
    FMS_17_020.000.00
    Converted MFEM data: toroid-hex-0ref
    FMS_18_000 modifications totalling 0 lines
    FMS_18_010.000.00
    FMS_18_020.000.00
    FMS_18_030.000.00
    Converted MFEM data: toroid-hex
    FMS_19_000 modifications totalling 0 lines
    FMS_19_010.000.00
    FMS_19_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_FMS_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_FMS_py.html new file mode 100644 index 000000000..6bf702da9 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_FMS_py.html @@ -0,0 +1,590 @@ +databases/FMS.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  FMS.py
    +#
    +#  Tests:      mesh      - high order meshes
    +#              plots     - Mesh, Pseudocolor
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Tue Aug  4 11:25:39 PDT 2020
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def FilterMetaData(s):
    +    lines = s.split("\n")
    +    txt = ""
    +    ignores=("exprList.","#expressions",".enum","simInfo.","blockNameScheme",".missingData","DataExtents =",".rectilinearGrid",".unitCell")
    +    for line in lines:
    +        keep = True
    +        for ig in ignores:
    +             if ig in line:
    +                 keep = False
    +                 break
    +        if keep:
    +            txt = txt + (line + "\n")
    +    return txt
    +
    +def test_mesh_plus_dofs(prefix, db1, order):
    +    OpenDatabase(db1)
    +
    +    # Get the metadata
    +    md = GetMetaData(db1)
    +    TestText(prefix+"_00", FilterMetaData(str(md)))
    +
    +    # Show the mesh (curved)
    +    AddPlot("Mesh", "mesh")
    +    m = MeshAttributes()
    +    m.lineWidth = 2
    +    SetPlotOptions(m)
    +    if order != "one":
    +        AddOperator("MultiresControl")
    +        mra = MultiresControlAttributes()
    +        mra.resolution = 10
    +        mra.maxResolution = 100
    +        SetOperatorOptions(mra)
    +    DrawPlots()
    +    delta = 0.03
    +    v0 = GetView2D()
    +    v0.windowCoords = (0.-delta, 1.+delta, 0.-delta, 1.+delta)
    +    v0.viewportCoords = (0.04, 0.98, 0.03, 0.98)
    +    v0.fullFrameActivationMode = v0.Auto  # On, Off, Auto
    +    v0.fullFrameAutoThreshold = 100
    +    v0.xScale = v0.LINEAR  # LINEAR, LOG
    +    v0.yScale = v0.LINEAR  # LINEAR, LOG
    +    v0.windowValid = 1
    +    SetView2D(v0)
    +    Test(prefix + "_01")
    +
    +    # Overlay the dofs
    +    DefineScalarExpression("X", "coords(dofs)[0]")
    +    AddPlot("Pseudocolor", "X")
    +    pc = PseudocolorAttributes()
    +    pc.pointSizePixels = 12
    +    pc.colorTableName = "hot_desaturated"
    +    SetPlotOptions(pc)
    +    AddOperator("Project")
    +    AddOperator("Transform")
    +    tform = TransformAttributes(1)
    +    tform.doTranslate = 1
    +    tform.translateZ = 0.01
    +    SetOperatorOptions(tform)
    +    DrawPlots()
    +    Test(prefix + "_02")
    +    DeleteActivePlots()
    +
    +    AddPlot("Pseudocolor", "zid")
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    Test(prefix + "_03")
    +
    +def domain_test(datapath, prefix, protocol, order):
    +    db1 = pjoin(datapath,"domains_"+protocol+"_order_"+order+".fms")
    +    test_mesh_plus_dofs(prefix, db1, order)
    +    # Cleanup
    +    DeleteAllPlots()
    +    CloseDatabase(db1)
    +    CloseComputeEngine()
    +
    +def quads_test(datapath, prefix, protocol, order):
    +    db1 = pjoin(datapath,"quads_"+protocol+"_order_"+order+".fms")
    +    test_mesh_plus_dofs(prefix, db1, order)
    +
    +    ChangeActivePlotsVar("r1")
    +    DrawPlots()
    +    Test(prefix + "_04")
    +
    +    ChangeActivePlotsVar("r2")
    +    DrawPlots()
    +    Test(prefix + "_05")
    +
    +    ChangeActivePlotsVar("r3")
    +    DrawPlots()
    +    Test(prefix + "_06")
    +
    +    # Cleanup
    +    DeleteAllPlots()
    +    CloseDatabase(db1)
    +    CloseComputeEngine()
    +
    +def hex_test(datapath, prefix, protocol, order):
    +    db1 = pjoin(datapath,"hex_"+protocol+"_order_"+order+".fms")
    +    OpenDatabase(db1)
    +
    +    # Get the metadata
    +    md = GetMetaData(db1)
    +    TestText(prefix+"_00", FilterMetaData(str(md)))
    +
    +    # Show the mesh (curved)
    +    AddPlot("Mesh", "mesh")
    +    m = MeshAttributes()
    +    m.lineWidth = 2
    +    SetPlotOptions(m)
    +    if order != "one":
    +        AddOperator("MultiresControl")
    +        mra = MultiresControlAttributes()
    +        mra.resolution = 7
    +        mra.maxResolution = 100
    +        SetOperatorOptions(mra)
    +    DrawPlots()
    +    v0 = GetView3D()
    +    v0.viewNormal = (-0.736972, 0.363225, -0.570035)
    +    v0.focus = (0.499999, 0.500005, 0.499787)
    +    v0.viewUp = (0.289138, 0.931697, 0.219863)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 0.900499
    +    v0.nearPlane = -1.801
    +    v0.farPlane = 1.801
    +    v0.imagePan = (-0.00987149, 0.0367767)
    +    v0.imageZoom = 1.15249
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0.499999, 0.500005, 0.499787)
    +    v0.axis3DScaleFlag = 0
    +    v0.axis3DScales = (1, 1, 1)
    +    v0.shear = (0, 0, 1)
    +    v0.windowValid = 1
    +    SetView3D(v0)
    +    Test(prefix + "_01")
    +
    +    AddPlot("Pseudocolor", "zid")
    +    pc = PseudocolorAttributes()
    +    pc.colorTableName = "hot_desaturated"
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    Test(prefix + "_02")
    +
    +    ChangeActivePlotsVar("r1")
    +    Test(prefix + "_03")
    +
    +    ChangeActivePlotsVar("r2")
    +    Test(prefix + "_04")
    +
    +    # Check that order 3 interior dofs look ok.
    +    AddPlot("Contour", "r3")
    +    c = ContourAttributes(1)
    +    c.contourValue = (0.6, 0.8, 0.9, 1, 1.2)
    +    c.contourMethod = c.Value  # Level, Value, Percent
    +    SetPlotOptions(c)
    +    SetActivePlots((0,1)) # Delete mesh,pc plots
    +    DeleteActivePlots()
    +    DrawPlots()
    +    Test(prefix + "_05")
    +
    +    # Cleanup
    +    DeleteAllPlots()
    +    CloseDatabase(db1)
    +    CloseComputeEngine()
    +
    +def test0(datapath):
    +    protocol = "ascii"
    +    TestSection("domains - " + protocol)
    +    domain_test(datapath, "FMS_0_1", protocol, "one")
    +    domain_test(datapath, "FMS_0_2", protocol, "two")
    +    domain_test(datapath, "FMS_0_3", protocol, "three")
    +
    +def test1(datapath):
    +    protocol = "yaml"
    +    TestSection("domains - " + protocol)
    +    domain_test(datapath, "FMS_1_1", protocol, "one")
    +    domain_test(datapath, "FMS_1_2", protocol, "two")
    +    domain_test(datapath, "FMS_1_3", protocol, "three")
    +
    +def test2(datapath):
    +    protocol = "json"
    +    TestSection("domains - " + protocol)
    +    domain_test(datapath, "FMS_2_1", protocol, "one")
    +    domain_test(datapath, "FMS_2_2", protocol, "two")
    +    domain_test(datapath, "FMS_2_3", protocol, "three")
    +
    +def test3(datapath):
    +    protocol = "hdf5"
    +    TestSection("domains - " + protocol)
    +    domain_test(datapath, "FMS_3_1", protocol, "one")
    +    domain_test(datapath, "FMS_3_2", protocol, "two")
    +    domain_test(datapath, "FMS_3_3", protocol, "three")
    +
    +def test4(datapath):
    +    protocol = "ascii"
    +    TestSection("quads - " + protocol)
    +    quads_test(datapath, "FMS_4_1", protocol, "one")
    +    quads_test(datapath, "FMS_4_2", protocol, "two")
    +    quads_test(datapath, "FMS_4_3", protocol, "three")
    +
    +def test5(datapath):
    +    protocol = "yaml"
    +    TestSection("quads - " + protocol)
    +    quads_test(datapath, "FMS_5_1", protocol, "one")
    +    quads_test(datapath, "FMS_5_2", protocol, "two")
    +    quads_test(datapath, "FMS_5_3", protocol, "three")
    +
    +def test6(datapath):
    +    protocol = "ascii"
    +    TestSection("hex - " + protocol)
    +    hex_test(datapath, "FMS_6_1", protocol, "one")
    +    hex_test(datapath, "FMS_6_2", protocol, "two")
    +    hex_test(datapath, "FMS_6_3", protocol, "three")
    +    hex_test(datapath, "FMS_6_4", protocol, "four")
    +    hex_test(datapath, "FMS_6_5", protocol, "five")
    +
    +def test7(datapath):
    +    protocol = "hdf5"
    +    TestSection("hex - " + protocol)
    +    hex_test(datapath, "FMS_7_1", protocol, "one")
    +    hex_test(datapath, "FMS_7_2", protocol, "two")
    +    hex_test(datapath, "FMS_7_3", protocol, "three")
    +    hex_test(datapath, "FMS_7_4", protocol, "four")
    +    hex_test(datapath, "FMS_7_5", protocol, "five")
    +
    +def test8(datapath):
    +    TestSection("hex - time varying")
    +    prefix = "FMS_8_"
    +    db1 = pjoin(datapath,"hex*.fms database")
    +    OpenDatabase(db1)
    +
    +    # Get the metadata
    +    md = GetMetaData(db1)
    +    TestText(prefix+"_00", FilterMetaData(str(md)))
    +
    +    # Show the mesh (curved)
    +    AddPlot("Mesh", "mesh")
    +    m = MeshAttributes()
    +    m.lineWidth = 2
    +    SetPlotOptions(m)
    +    AddOperator("MultiresControl")
    +    mra = MultiresControlAttributes()
    +    mra.resolution = 7
    +    mra.maxResolution = 100
    +    SetOperatorOptions(mra)
    +    DrawPlots()
    +    v0 = GetView3D()
    +    v0.viewNormal = (-0.722008, 0.525589, -0.449957)
    +    v0.focus = (0.500085, 0.501459, 0.49554)
    +    v0.viewUp = (0.465249, 0.850161, 0.246515)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 0.989501
    +    v0.nearPlane = -1.979
    +    v0.farPlane = 1.979
    +    v0.imagePan = (0, 0)
    +    v0.imageZoom = 1.12555
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0.500085, 0.501459, 0.49554)
    +    v0.axis3DScaleFlag = 0
    +    v0.axis3DScales = (1, 1, 1)
    +    v0.shear = (0, 0, 1)
    +    v0.windowValid = 1
    +    SetView3D(v0)
    +
    +    AddPlot("Pseudocolor", "r3")
    +    pc = PseudocolorAttributes()
    +    pc.colorTableName = "hot_desaturated"
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    Test(prefix + "_01")
    +
    +    SetTimeSliderState(9)
    +    Test(prefix + "_02")
    +
    +    # Cleanup
    +    DeleteAllPlots()
    +    CloseDatabase(db1)
    +    CloseComputeEngine()
    +
    +def test9(datapath):
    +    TestSection("Root file")
    +    prefix = "FMS_9_"
    +    db1 = pjoin(datapath,"multidom.fms_root")
    +    OpenDatabase(db1)
    +
    +    # Get the metadata
    +    md = GetMetaData(db1)
    +    TestText(prefix+"_00", FilterMetaData(str(md)))
    +
    +    # Show the mesh (curved)
    +    AddPlot("Mesh", "mesh")
    +    m = MeshAttributes()
    +    m.lineWidth = 2
    +    SetPlotOptions(m)
    +    DrawPlots()
    +    AddPlot("Pseudocolor", "coords_magnitude")
    +    pc = PseudocolorAttributes()
    +    pc.colorTableName = "hot_desaturated"
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    ResetView()
    +    Test(prefix + "_01")
    +
    +    DeleteActivePlots()
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test(prefix + "_02")
    +
    +    # Cleanup
    +    DeleteAllPlots()
    +    CloseDatabase(db1)
    +    CloseComputeEngine()
    +
    +def plot_converted_data(prefix, db, var, v0, resolution, meshName, dodof):
    +    OpenDatabase(db)
    +
    +    # Get the metadata
    +    md = GetMetaData(db)
    +    TestText(prefix+"_00", FilterMetaData(str(md)))
    +
    +    AddPlot("Pseudocolor", var)
    +    pc = PseudocolorAttributes()
    +    pc.colorTableName = "hot_desaturated"
    +    SetPlotOptions(pc)
    +    AddOperator("MultiresControl")
    +    mra = MultiresControlAttributes()
    +    mra.resolution = resolution
    +    mra.maxResolution = 100
    +    SetOperatorOptions(mra)
    +    DrawPlots()
    +
    +    # Try setting the view.
    +    try:
    +        SetView3D(v0)
    +    except:
    +        try:
    +            SetView2D(v0)
    +        except:
    +            ResetView()
    +
    +
    +    Test(prefix + "_01")
    +
    +    # Add a mesh plot of the boundaries and refine them.
    +    if meshName != "":
    +        AddPlot("Mesh", meshName, 1, 1)
    +        m = MeshAttributes(1)
    +        m.lineWidth = 1
    +        SetPlotOptions(m)
    +        DrawPlots()
    +        Test(prefix + "_02")
    +
    +    # Add a mesh plot of the dofs.
    +    if dodof:
    +        AddPlot("Mesh", "dofs", 0, 0)
    +        m2 = MeshAttributes(1)
    +        m2.meshColor = (255, 0, 0, 255)
    +        m2.meshColorSource = m2.MeshCustom  # Foreground, MeshCustom, MeshRandom
    +        m2.pointSize = 0.075
    +        m2.opaqueColor = (255, 255, 255, 255)
    +        m2.pointType = m2.SphereGeometry  # Box, Axis, Icosahedron, Octahedron, Tetrahedron, SphereGeometry, Point, Sphere
    +        m2.pointSizePixels = 10
    +        m2.opacity = 1
    +        SetPlotOptions(m2)
    +        DrawPlots()
    +        Test(prefix + "_03")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +    CloseComputeEngine()
    +
    +def escher_view():
    +    v0 = GetView3D()
    +    v0.viewNormal = (0.301943, 0.349059, 0.887124)
    +    v0.focus = (0.015155, 0.00931501, 0.00220501)
    +    v0.viewUp = (-0.108572, 0.937093, -0.331767)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 2.69081
    +    v0.nearPlane = -5.38163
    +    v0.farPlane = 5.38163
    +    v0.imagePan = (-0.011426, -0.0216873)
    +    v0.imageZoom = 1.62652
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0.015155, 0.00931501, 0.00220501)
    +    v0.axis3DScaleFlag = 0
    +    v0.axis3DScales = (1, 1, 1)
    +    v0.shear = (0, 0, 1)
    +    v0.windowValid = 1
    +    return v0
    +
    +def test10(datapath):
    +    TestSection("Converted MFEM data: escher-p3-0ref")
    +    db = pjoin(datapath,"converted-data/escher-p3-0ref/Example5_000000.fms")
    +
    +    v0 = escher_view()
    +    plot_converted_data("FMS_10", db, "pressure", v0, 5, "boundary", True)
    +
    +def test11(datapath):
    +    TestSection("Converted MFEM data: escher-p3")
    +    db = pjoin(datapath,"converted-data/escher-p3/Example5_000000.fms")
    +
    +    v0 = escher_view()
    +    plot_converted_data("FMS_11", db, "pressure", v0, 4, "boundary", False)
    +
    +def test12(datapath):
    +    TestSection("Converted MFEM data: Example15")
    +    db = pjoin(datapath,"converted-data/Example15/Example15_000000.fms")
    +
    +    v0 = GetView2D()
    +    v0.windowCoords = (-1.74594, 1.76718, -1.7, 1.55366)
    +    v0.viewportCoords = (0.01, 0.99, 0.01, 0.99)
    +    v0.fullFrameActivationMode = v0.Auto  # On, Off, Auto
    +    v0.fullFrameAutoThreshold = 100
    +    v0.xScale = v0.LINEAR  # LINEAR, LOG
    +    v0.yScale = v0.LINEAR  # LINEAR, LOG
    +    v0.windowValid = 1
    +
    +    plot_converted_data("FMS_12", db, "solution", v0, 8, "boundary", True)
    +
    +def test13(datapath):
    +    TestSection("Converted MFEM data: Example9")
    +    db = pjoin(datapath,"converted-data/Example9/Example9_000000.fms")
    +
    +    v0 = GetView2D()
    +    v0.windowCoords = (-1, 1, -0.966025, 0.866025)
    +    v0.viewportCoords = (0.01, 0.99, 0.01, 0.99)
    +    v0.fullFrameActivationMode = v0.Auto  # On, Off, Auto
    +    v0.fullFrameAutoThreshold = 100
    +    v0.xScale = v0.LINEAR  # LINEAR, LOG
    +    v0.yScale = v0.LINEAR  # LINEAR, LOG
    +    v0.windowValid = 1
    +
    +    plot_converted_data("FMS_13", db, "solution", v0, 8, "", False)
    +
    +def fichera_view():
    +    v0 = GetView3D()
    +    v0.viewNormal = (0.76587, 0.438546, -0.470235)
    +    v0.focus = (0.00682861, 0.00298607, -0.00561833)
    +    v0.viewUp = (-0.368491, 0.898664, 0.237945)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 1.82615
    +    v0.nearPlane = -3.6523
    +    v0.farPlane = 3.6523
    +    v0.imagePan = (0.00522255, 0.0292194)
    +    v0.imageZoom = 1.09494
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0.00682861, 0.00298607, -0.00561833)
    +    v0.axis3DScaleFlag = 0
    +    v0.axis3DScales = (1, 1, 1)
    +    v0.shear = (0, 0, 1)
    +    v0.windowValid = 1
    +    return v0
    +
    +def test14(datapath):
    +    TestSection("Converted MFEM data: fichera-q2-0ref")
    +    db = pjoin(datapath,"converted-data/fichera-q2-0ref/Example5_000000.fms")
    +
    +    v0 = fichera_view()
    +    plot_converted_data("FMS_14", db, "pressure", v0, 8, "boundary", True)
    +
    +def test15(datapath):
    +    TestSection("Converted MFEM data: fichera-q2")
    +    db = pjoin(datapath,"converted-data/fichera-q2/Example5_000000.fms")
    +
    +    v0 = fichera_view()
    +    plot_converted_data("FMS_15", db, "pressure", v0, 4, "boundary", False)
    +
    +def test16(datapath):
    +    TestSection("Converted MFEM data: star-q3-0ref")
    +    db = pjoin(datapath,"converted-data/star-q3-0ref/Example5_000000.fms")
    +
    +    v0 = GetView2D()
    +    v0.windowCoords = (-1.8181, 1.8181, -1.7, 1.58418)
    +    v0.viewportCoords = (0.01, 0.99, 0.01, 0.99)
    +    v0.fullFrameActivationMode = v0.Auto  # On, Off, Auto
    +    v0.fullFrameAutoThreshold = 100
    +    v0.xScale = v0.LINEAR  # LINEAR, LOG
    +    v0.yScale = v0.LINEAR  # LINEAR, LOG
    +    v0.windowValid = 1
    +
    +    plot_converted_data("FMS_16", db, "pressure", v0, 8, "mesh", True)
    +
    +def test17(datapath):
    +    TestSection("Converted MFEM data: star-q3")
    +    db = pjoin(datapath,"converted-data/star-q3/Example5_000000.fms")
    +
    +    v0 = GetView2D()
    +    v0.windowCoords = (-1.8181, 1.8181, -1.7, 1.58418)
    +    v0.viewportCoords = (0.01, 0.99, 0.01, 0.99)
    +    v0.fullFrameActivationMode = v0.Auto  # On, Off, Auto
    +    v0.fullFrameAutoThreshold = 100
    +    v0.xScale = v0.LINEAR  # LINEAR, LOG
    +    v0.yScale = v0.LINEAR  # LINEAR, LOG
    +    v0.windowValid = 1
    +
    +    plot_converted_data("FMS_17", db, "pressure", v0, 4, "boundary", False)
    +
    +def toroid_view():
    +    v0 = GetView3D()
    +    v0.viewNormal = (0, 0, 1)
    +    v0.focus = (-0.0503261, 0, 0)
    +    v0.viewUp = (0, 1, 0)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 1.96586
    +    v0.nearPlane = -3.93172
    +    v0.farPlane = 3.93172
    +    v0.imagePan = (0, 0)
    +    v0.imageZoom = 1.29234
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (-0.0503261, 0, 0)
    +    v0.axis3DScaleFlag = 0
    +    v0.axis3DScales = (1, 1, 1)
    +    v0.shear = (0, 0, 1)
    +    v0.windowValid = 1
    +    return v0
    +
    +def test18(datapath):
    +    TestSection("Converted MFEM data: toroid-hex-0ref")
    +    db = pjoin(datapath,"converted-data/toroid-hex-0ref/Example5_000000.fms")
    +
    +    v0 = toroid_view()
    +    plot_converted_data("FMS_18", db, "pressure", v0, 8, "mesh", True)
    +
    +def test19(datapath):
    +    TestSection("Converted MFEM data: toroid-hex")
    +    db = pjoin(datapath,"converted-data/toroid-hex/Example5_000000.fms")
    +
    +    v0 = toroid_view()
    +    plot_converted_data("FMS_19", db, "pressure", v0, 4, "boundary", False)
    +
    +def main():
    +    RequiredDatabasePlugin("FMS")
    +
    +    datapath = data_path("FMS_test_data")
    +    DefineScalarExpression("zid", "zoneid(mesh)")
    +
    +    # domains
    +    test0(datapath)
    +    test1(datapath)
    +    test2(datapath)
    +    test3(datapath)
    +    # quads
    +    test4(datapath)
    +    test5(datapath)
    +    # hex
    +    test6(datapath)
    +    test7(datapath)
    +    # time varying data
    +    test8(datapath)
    +    # root
    +    test9(datapath)
    +    # Datasets that were converted from MFEM to FMS
    +    test10(datapath)
    +    test11(datapath)
    +    test12(datapath)
    +    test13(datapath)
    +    test14(datapath)
    +    test15(datapath)
    +    test16(datapath)
    +    test17(datapath)
    +    test18(datapath)
    +    test19(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_Fluent.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_Fluent.html new file mode 100644 index 000000000..02bd4c5f7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_Fluent.html @@ -0,0 +1,60 @@ + +Results for databases/Fluent.py + +

    Results of VisIt Regression Test - databases/Fluent

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Fluent_010.000.00
    Fluent_020.000.00
    Fluent_030.000.00
    Fluent_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_Fluent_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_Fluent_py.html new file mode 100644 index 000000000..99af9b283 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_Fluent_py.html @@ -0,0 +1,43 @@ +databases/Fluent.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  Fluent.py
    +#
    +#  Programmer: Hank Childs
    +#  Date:       September 8, 2006
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Tue Jul 15 10:43:58 EDT 2008
    +#    Changed number of vectors in vector plot to match the old behavior.
    +#    (We now account for how many domains there are.)
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(data_path("Fluent_test_data/Gas2OxyEntSlurry3d30m_MSmods_Ar_Wen_Moist_CO2_WGS_HCl_COdevol.cas"))
    +
    +AddPlot("Pseudocolor", "TEMPERATURE")
    +DrawPlots()
    +Test("Fluent_01")
    +
    +AddPlot("Mesh", "Mesh")
    +DrawPlots()
    +Test("Fluent_02")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Vector", "DPMS_MOM")
    +v = VectorAttributes()
    +v.nVectors = 400*5
    +SetPlotOptions(v)
    +DrawPlots()
    +Test("Fluent_03")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Subset", "blocks")
    +DrawPlots()
    +Test("Fluent_04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_GDAL.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_GDAL.html new file mode 100644 index 000000000..07f0bb542 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_GDAL.html @@ -0,0 +1,126 @@ + +Results for databases/GDAL.py + +

    Results of VisIt Regression Test - databases/GDAL

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ArcInfo files
    GDAL_0_000.000.00
    GDAL_0_010.000.00
    GDAL_0_020.000.00
    GDAL_0_030.000.00
    GDAL_0_040.000.00
    GDAL_0_050.000.00
    GDAL_0_060.000.00
    DEM files
    GDAL_1_000.000.00
    GDAL_1_010.000.00
    GDAL_1_020.000.00
    GDAL_1_030.000.00
    GDAL_1_040.000.00
    GDAL_1_050.000.00
    GDAL_1_060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_GDAL_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_GDAL_py.html new file mode 100644 index 000000000..3b9a83338 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_GDAL_py.html @@ -0,0 +1,107 @@ +databases/GDAL.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  GDAL.py
    +#
    +#  Tests:      mesh      - 2D structured, 3D unstructured
    +#              plots     - Contour, Pseudocolor
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Sep 8 16:35:17 PST 2005
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("GDAL")
    +
    +def test0_and_1(db, prefix):
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "lower_res/resolution_0067x0086/height")
    +    AddPlot("Contour", "lower_res/resolution_0067x0086/height")
    +    c = ContourAttributes()
    +    c.colorType = c.ColorBySingleColor
    +    c.singleColor = (0,0,0,255)
    +    c.legendFlag = 0
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    ResetView()
    +    v = View2DAttributes()
    +    v.windowCoords = (478545, 489295, 4.38614e+06, 4.40004e+06)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +    v.fullFrameAutoThreshold = 100
    +    SetView2D(v)
    +    Test(prefix + "00")
    +
    +    # Increase the resolution a couple times.
    +    SetActivePlots((0,1))
    +    ChangeActivePlotsVar("lower_res/resolution_0268x0347/height")
    +    Test(prefix + "01")
    +    ChangeActivePlotsVar("height")
    +    Test(prefix + "02")
    +
    +    # Switch to the elevated mesh
    +    ChangeActivePlotsVar("elevated/lower_res/resolution_0067x0086/height")
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (0.514425, -0.612921, 0.599745)
    +    v0.focus = (483920, 4.39318e+06, 2025.5)
    +    v0.viewUp = (-0.383293, 0.461288, 0.800187)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 8729.59
    +    v0.nearPlane = -17459.2
    +    v0.farPlane = 17459.2
    +    v0.imagePan = (0, 0)
    +    v0.imageZoom = 1.16907
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (483920, 4.39318e+06, 2025.5)
    +    SetView3D(v0)
    +    Test(prefix + "03")
    +
    +    v1 = View3DAttributes()
    +    v1.viewNormal = (0.514425, -0.612921, 0.599745)
    +    v1.focus = (483920, 4.39312e+06, 2031)
    +    v1.viewUp = (-0.383293, 0.461288, 0.800187)
    +    v1.viewAngle = 30
    +    v1.parallelScale = 8777.87
    +    v1.nearPlane = -17555.7
    +    v1.farPlane = 17555.7
    +    v1.imagePan = (0.106418, 0.0224564)
    +    v1.imageZoom = 2.73653
    +    v1.perspective = 1
    +    v1.eyeAngle = 2
    +    v1.centerOfRotationSet = 0
    +    v1.centerOfRotation = (483920, 4.39312e+06, 2031)
    +    SetView3D(v1)
    +    Test(prefix + "04")
    +
    +    SetActivePlots(1)
    +    DeleteActivePlots()
    +    ChangeActivePlotsVar("elevated/lower_res/resolution_0268x0347/height")
    +    Test(prefix + "05")
    +    ChangeActivePlotsVar("elevated/mesh/height")
    +    Test(prefix + "06")
    +    DeleteAllPlots()
    +
    +def test0(datapath):
    +    TestSection("ArcInfo files")
    +    test0_and_1(pjoin(datapath,"ADF/w001001.adf"), "GDAL_0_")
    +
    +def test1(datapath):
    +    TestSection("DEM files")
    +    test0_and_1(pjoin(datapath,"DEM/Morrison.dem"), "GDAL_1_")
    +
    +def main():
    +    # Draw antialiased lines
    +    r = GetRenderingAttributes()
    +    r.antialiasing = 1
    +    SetRenderingAttributes(r)
    +
    +    datapath = data_path("GDAL_test_data")
    +    test0(datapath)
    +    test1(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_NASTRAN.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_NASTRAN.html new file mode 100644 index 000000000..6608ab729 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_NASTRAN.html @@ -0,0 +1,204 @@ + +Results for databases/NASTRAN.py + +

    Results of VisIt Regression Test - databases/NASTRAN

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    pipe.nas
    nastran1_00.000.00
    nastran1_10.000.00
    nastran1_20.000.00
    waterjacket.nas
    nastran2_00.000.00
    nastran2_10.000.00
    nastran2_20.000.00
    intake.nas
    nastran3_00.000.00
    nastran3_10.000.00
    nastran3_20.000.00
    porsche.nas
    nastran4_00.000.00
    nastran4_10.000.00
    nastran4_20.000.00
    Rohr_01.nas
    nastran5_00.000.00
    nastran5_10.000.00
    BMSP4E.nas
    nastran6_00.000.00
    HAM6D.nas
    nastran7_00.000.00
    nastran7_10.000.00
    simpleCQUAD8.nas
    nastran8_00.000.00
    simpleQuadSphere.nas
    nastran9_00.000.00
    simpleQuadSphereBlock.nas
    nastran10_00.000.00
    simpleQuadTet.nas
    nastran11_00.000.00
    simpleQuadWedge.nas
    nastran12_00.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_NASTRAN_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_NASTRAN_py.html new file mode 100644 index 000000000..d3667841a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_NASTRAN_py.html @@ -0,0 +1,511 @@ +databases/NASTRAN.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  NASTRAN.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - Mesh
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Jul 7 17:46:51 PST 2005
    +#
    +#  Modifications:
    +#    Edward Rusu, Tue Aug 21 10:06:24 PST 2018
    +#    Added tests for quadratic elements.
    +#
    +#    Kathleen Biagas, Wed Feb 16 09:15:45 PST 2022
    +#    Replace use of meshatts 'foregroundFlag' and 'backgroundFlag' with
    +#    meshColorSource and opaqueColorSource.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def AddMeshPlot():
    +    AddPlot("Mesh", "mesh")
    +    m = MeshAttributes()
    +    m.legendFlag = 0
    +    m.opaqueColor = (153, 204, 255, 255)
    +    m.opaqueColorSource = m.OpaqueCustom
    +    m.meshColorSource = m.MeshCustom
    +    m.meshColor = (0,0,0,255)
    +    SetPlotOptions(m)
    +
    +def AddPseudocolorPlot():
    +    AddPlot("Pseudocolor", "one")
    +    p = PseudocolorAttributes()
    +    p.colorTableName = "rainbow"
    +    p.SetOpacityType(p.Constant)
    +    p.opacity = 0.2
    +    SetPlotOptions(p)
    +    DrawPlots()
    +
    +def test1(datapath):
    +    db = "pipe.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.786306, 0.379526, 0.487527)
    +    v.focus = (0.149902, 0.212562, 0.124929)
    +    v.viewUp = (0.316186, 0.925114, -0.210215)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.585963
    +    v.nearPlane = -1.17193
    +    v.farPlane = 1.17193
    +    v.imagePan = (0.0173275, 0.033058)
    +    v.imageZoom = 1.45734
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.149902, 0.212562, 0.124929)
    +    SetView3D(v)
    +    Test("nastran1_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.786306, 0.379526, 0.487527)
    +    v2.focus = (0.149902, 0.212562, 0.124929)
    +    v2.viewUp = (0.316186, 0.925114, -0.210215)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 0.585963
    +    v2.nearPlane = -1.17193
    +    v2.farPlane = 1.17193
    +    v2.imagePan = (-0.108127, 0.0971661)
    +    v2.imageZoom = 6.92887
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0.149902, 0.212562, 0.124929)
    +    SetView3D(v2)
    +    Test("nastran1_1")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    SetView3D(v)
    +    Test("nastran1_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test2(datapath):
    +    db = "waterjacket.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.65317, -0.673371, 0.346324)
    +    v.focus = (0.03, -0.03, -0.1125)
    +    v.viewUp = (0.225064, 0.264053, 0.937882)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.289925
    +    v.nearPlane = -0.579849
    +    v.farPlane = 0.579849
    +    v.imagePan = (0.0984407, 0.0467479)
    +    v.imageZoom = 1.40003
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.03, -0.03, -0.1125)
    +    SetView3D(v)
    +    Test("nastran2_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.65317, -0.673371, 0.346324)
    +    v2.focus = (0.03, -0.03, -0.1125)
    +    v2.viewUp = (0.225064, 0.264053, 0.937882)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 0.289925
    +    v2.nearPlane = -0.579849
    +    v2.farPlane = 0.579849
    +    v2.imagePan = (0.100347, 0.0410472)
    +    v2.imageZoom = 7.7658
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0.03, -0.03, -0.1125)
    +    SetView3D(v2)
    +    Test("nastran2_1")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    SetView3D(v)
    +    Test("nastran2_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test3(datapath):
    +    db = "intake.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.61876, 0.311053, -0.721375)
    +    v.focus = (0, 0.011, -0.0935)
    +    v.viewUp = (0.208418, 0.950364, 0.231021)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.198752
    +    v.nearPlane = -0.397503
    +    v.farPlane = 0.397503
    +    v.imagePan = (0.0151275, 0.00167627)
    +    v.imageZoom = 1.43299
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0.011, -0.0935)
    +    SetView3D(v)
    +    Test("nastran3_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.61876, 0.311053, -0.721375)
    +    v2.focus = (0, 0.011, -0.0935)
    +    v2.viewUp = (0.208418, 0.950364, 0.231021)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 0.198752
    +    v2.nearPlane = -0.397503
    +    v2.farPlane = 0.397503
    +    v2.imagePan = (-0.101283, 0.0396808)
    +    v2.imageZoom = 6.28038
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0, 0.011, -0.0935)
    +    SetView3D(v2)
    +    Test("nastran3_1")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    SetView3D(v)
    +    Test("nastran3_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test4(datapath):
    +    db = "porsche.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (0.518428, 0.424019, 0.74259)
    +    v.focus = (0, 7.9285, 0)
    +    v.viewUp = (-0.299854, 0.903405, -0.306506)
    +    v.viewAngle = 30
    +    v.parallelScale = 24.7409
    +    v.nearPlane = -5
    +    v.farPlane = 49.4817
    +    v.imagePan = (0.00934164, 0.144131)
    +    v.imageZoom = 4.02409
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 7.9285, 0)
    +    SetView3D(v)
    +    Test("nastran4_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (0.518428, 0.424019, 0.74259)
    +    v2.focus = (0, 7.9285, 0)
    +    v2.viewUp = (-0.299854, 0.903405, -0.306506)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 24.7409
    +    v2.nearPlane = -5
    +    v2.farPlane = 49.4817
    +    v2.imagePan = (0.0898178, 0.146581)
    +    v2.imageZoom = 19.659
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0, 7.9285, 0)
    +    SetView3D(v2)
    +    Test("nastran4_1")
    +
    +    v3 = View3DAttributes()
    +    v3.viewNormal = (0.945904, 0.10945, -0.305429)
    +    v3.focus = (0, 7.9285, 0)
    +    v3.viewUp = (-0.0962433, 0.993666, 0.0580174)
    +    v3.viewAngle = 30
    +    v3.parallelScale = 24.7409
    +    v3.nearPlane = -8
    +    v3.farPlane = 49.4817
    +    v3.imagePan = (-0.000386251, 0.195232)
    +    v3.imageZoom = 17.0743
    +    v3.perspective = 1
    +    v3.eyeAngle = 2
    +    v3.centerOfRotationSet = 0
    +    v3.centerOfRotation = (0, 7.9285, 0)
    +    SetView3D(v3)
    +    Test("nastran4_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test5(datapath):
    +    db = "Rohr_01.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (0.528785, -0.54024, -0.654619)
    +    v.focus = (4308, -300.408, 1264.41)
    +    v.viewUp = (0.848128, 0.365992, 0.383052)
    +    v.viewAngle = 30
    +    v.parallelScale = 80.5714
    +    v.nearPlane = -161.143
    +    v.farPlane = 161.143
    +    v.imagePan = (0.00712918, 0.0383046)
    +    v.imageZoom = 1.48788
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (4308, -300.408, 1264.41)
    +    SetView3D(v)
    +    Test("nastran5_0")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    Test("nastran5_1")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test6(datapath):
    +    db = "BMSP4E.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (0.489205, 0.349064, 0.79927)
    +    v.focus = (0, 45.5, 0)
    +    v.viewUp = (-0.206708, 0.93671, -0.282569)
    +    v.viewAngle = 30
    +    v.parallelScale = 87.3806
    +    v.nearPlane = -174.761
    +    v.farPlane = 174.761
    +    v.imagePan = (-0.0102947, 0.0427356)
    +    v.imageZoom = 1.29632
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 45.5, 0)
    +    SetView3D(v)
    +    Test("nastran6_0")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test7(datapath):
    +    db = "HAM6D.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (0.470653, -0.53132, 0.704403)
    +    v.focus = (23.6, -6.3125, 0)
    +    v.viewUp = (0.882043, 0.303259, -0.360602)
    +    v.viewAngle = 30
    +    v.parallelScale = 74.2944
    +    v.nearPlane = -148.589
    +    v.farPlane = 148.589
    +    v.imagePan = (0.0131053, 0.00691564)
    +    v.imageZoom = 1.18535
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (23.6, -6.3125, 0)
    +    SetView3D(v)
    +    Test("nastran7_0")
    +
    +    v.viewNormal = (0.347772, 0.646944, -0.678615)
    +    v.focus = (23.6, -6.3125, 0)
    +    v.viewUp = (0.937573, -0.242724, 0.249084)
    +    v.viewAngle = 30
    +    v.parallelScale = 74.2944
    +    v.nearPlane = -148.589
    +    v.farPlane = 148.589
    +    v.imagePan = (-0.0229218, 0.0211742)
    +    v.imageZoom = 1.18535
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (23.6, -6.3125, 0)
    +    SetView3D(v)
    +    Test("nastran7_1")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test8(datapath):
    +    db = "simpleCQUAD8.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +    Test("nastran8_0")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test9(datapath):
    +    db = "simpleQuadSphere.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0, 0, 1)
    +    View3DAtts.focus = (2.88777, -1.45671, -0.629586)
    +    View3DAtts.viewUp = (0, 1, 0)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 6.98115
    +    View3DAtts.nearPlane = -13.9623
    +    View3DAtts.farPlane = 13.9623
    +    View3DAtts.imagePan = (0.204513, -0.111237)
    +    View3DAtts.imageZoom = 5.50207
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (2.88777, -1.45671, -0.629586)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +    Test("nastran9_0")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test10(datapath):
    +    db = "simpleQuadSphereBlock.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0, 0, 1)
    +    View3DAtts.focus = (0, -1.38778, -3.66334)
    +    View3DAtts.viewUp = (0, 1, 0)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 12.6655
    +    View3DAtts.nearPlane = -25.3309
    +    View3DAtts.farPlane = 25.3309
    +    View3DAtts.imagePan = (-0.00429799, -0.061086)
    +    View3DAtts.imageZoom = 9.89552
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0, -1.38778, -3.66334)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +    Test("nastran10_0")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test11(datapath):
    +    db = "simpleQuadTet.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0.585895, 0.392177, 0.709172)
    +    View3DAtts.focus = (0.5, 0.5, 0.5)
    +    View3DAtts.viewUp = (-0.133518, 0.909858, -0.39285)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 0.866025
    +    View3DAtts.nearPlane = -1.73205
    +    View3DAtts.farPlane = 1.73205
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0.5, 0.5, 0.5)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +    Test("nastran11_0")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test12(datapath):
    +    db = "simpleQuadWedge.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (-0.468638, 0.237166, 0.850959)
    +    View3DAtts.focus = (0.5, 0.5, 0.5)
    +    View3DAtts.viewUp = (0.128356, 0.971346, -0.20003)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 0.866025
    +    View3DAtts.nearPlane = -1.73205
    +    View3DAtts.farPlane = 1.73205
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0.5, 0.5, 0.5)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +    Test("nastran12_0")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def main():
    +    # Set the window background color
    +    a = GetAnnotationAttributes()
    +    a.backgroundMode = a.Solid
    +    a.backgroundColor = (180, 180, 180, 255)
    +    a.foregroundColor = (255, 255, 255, 255)
    +    SetAnnotationAttributes(a)
    +
    +    DefineScalarExpression("one", "(zoneid(mesh) + 1) / (zoneid(mesh) + 1)")
    +
    +    datapath = data_path("NASTRAN_test_data")
    +    test1(datapath)
    +    test2(datapath)
    +    test3(datapath)
    +    test4(datapath)
    +    test5(datapath)
    +    test6(datapath)
    +    test7(datapath)
    +    test8(datapath)
    +    test9(datapath)
    +    test10(datapath)
    +    test11(datapath)
    +    test12(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_OpenFOAM.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_OpenFOAM.html new file mode 100644 index 000000000..8343f2a4b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_OpenFOAM.html @@ -0,0 +1,210 @@ + +Results for databases/OpenFOAM.py + +

    Results of VisIt Regression Test - databases/OpenFOAM

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    OpenFOAM_010.000.00
    OpenFOAM_020.000.00
    OpenFOAM_030.000.00
    OpenFOAM_040.000.00
    OpenFOAM_050.000.00
    OpenFOAM_060.000.00
    OpenFOAM_070.000.00
    OpenFOAM_080.000.00
    OpenFOAM_090.000.00
    OpenFOAM_100.000.00
    OpenFOAM_lagrangian_010.000.00
    OpenFOAM_lagrangian_020.000.00
    OpenFOAM_lagrangian_030.000.00
    OpenFOAM_lagrangian_040.000.00
    OpenFOAM_lagrangian_050.000.00
    OpenFOAM_lagrangian_060.000.00
    OpenFOAM_lagrangian_070.000.00
    OpenFOAM_MultiRegion_010.000.00
    OpenFOAM_MultiRegion_020.000.00
    OpenFOAM_MultiRegion_030.000.00
    OpenFOAM_MultiRegion_040.000.00
    OpenFOAM_MultiRegion_050.000.00
    OpenFOAM_MultiRegion_060.000.00
    OpenFOAM_Decomposed_010.000.00
    OpenFOAM_Decomposed_020.000.00
    OpenFOAM_Decomposed_030.000.00
    OpenFOAM_ReadZones_010.000.00
    OpenFOAM_ReadZones_020.000.00
    OpenFOAM_ReadZones_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_OpenFOAM_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_OpenFOAM_py.html new file mode 100644 index 000000000..e7e12f415 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_OpenFOAM_py.html @@ -0,0 +1,250 @@ +databases/OpenFOAM.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  OpenFOAM.py
    +#
    +#  Programmer: Hank Childs
    +#  Date:       September 8, 2006
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Tue Jul 15 10:43:58 EDT 2008
    +#    Changed number of vectors in vector plot to match the old behavior.
    +#    (We now account for how many domains there are.)
    +#
    +#    Kathleen Biagas, Tue Aug 20 14:06:46 PDT 2013
    +#    Reader has been updated, default mesh is now 'internalMesh', and
    +#    variables need mesh name.
    +#
    +#    Kathleen Biagas, Wed Aug 28 12:04:03 PDT 2013
    +#    Added tests for new data, different Open Options.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def OrigTests():
    +    OpenDatabase(data_path("OpenFOAM_test_data/bubbleColumn/system/controlDict"))
    +
    +    AddPlot("Vector", "internalMesh/Ua")
    +    v = VectorAttributes()
    +    v.nVectors = 400*5
    +    SetPlotOptions(v)
    +    DrawPlots()
    +    Test("OpenFOAM_01")
    +
    +    TimeSliderNextState()
    +    Test("OpenFOAM_02")
    +    TimeSliderNextState()
    +    Test("OpenFOAM_03")
    +
    +    AddPlot("Mesh", "internalMesh")
    +    DrawPlots()
    +    Test("OpenFOAM_04")
    +
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "internalMesh/epsilon")
    +    DrawPlots()
    +    Test("OpenFOAM_05")
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(data_path("OpenFOAM_test_data/mixer2D_ascii/system/controlDict"))
    +
    +    AddPlot("Vector", "internalMesh/U")
    +    v = VectorAttributes()
    +    v.nVectors = 400*6
    +    SetPlotOptions(v)
    +    DrawPlots()
    +    Test("OpenFOAM_06")
    +
    +    TimeSliderNextState()
    +    Test("OpenFOAM_07")
    +    TimeSliderNextState()
    +    Test("OpenFOAM_08")
    +
    +    AddPlot("Mesh", "internalMesh")
    +    DrawPlots()
    +    Test("OpenFOAM_09")
    +
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "internalMesh/p")
    +    DrawPlots()
    +    Test("OpenFOAM_10")
    +
    +    DeleteAllPlots()
    +
    +def TestLagrangian():
    +    OpenDatabase(data_path("OpenFOAM_test_data/simplifiedSiwek/system/controlDict"))
    +    # Point clouds don't exist at timestate 0, so advance by 1.
    +    TimeSliderNextState()
    +
    +    AddPlot("Subset", "internalMesh")
    +    subset = SubsetAttributes()
    +    subset.wireframe = 1
    +    subset.colorType = subset.ColorBySingleColor
    +    SetPlotOptions(subset)
    +    AddPlot("Mesh", "lagrangian/coalCloud1")
    +    coalMesh = MeshAttributes()
    +    coalMesh.meshColorSource = coalMesh.MeshCustom
    +    coalMesh.meshColor = (255, 0, 0, 255)
    +    coalMesh.pointType = coalMesh.Sphere
    +    coalMesh.pointSizePixels = 15
    +    SetPlotOptions(coalMesh)
    +    AddPlot("Mesh", "lagrangian/limestoneCloud1")
    +    limestoneMesh = MeshAttributes()
    +    limestoneMesh.meshColorSource = limestoneMesh.MeshCustom
    +    limestoneMesh.meshColor = (0, 255, 0, 255)
    +    limestoneMesh.pointType = limestoneMesh.Sphere
    +    limestoneMesh.pointSizePixels = 15
    +    SetPlotOptions(limestoneMesh)
    +
    +    coalCloudText = CreateAnnotationObject("Text2D")
    +    coalCloudText.text = "coalCloud1"
    +    coalCloudText.height = 0.04
    +    coalCloudText.position = (0.4, 0.85)
    +    coalCloudText.useForegroundForTextColor = 0
    +    coalCloudText.textColor = (255, 0, 0, 255)
    +
    +    limestoneCloudText = CreateAnnotationObject("Text2D")
    +    limestoneCloudText.text = "limestoneCloud1"
    +    limestoneCloudText.height = 0.04
    +    limestoneCloudText.position = (0.4, 0.75)
    +    limestoneCloudText.useForegroundForTextColor = 0
    +    limestoneCloudText.textColor = (0, 255, 0, 255)
    +
    +    slider = CreateAnnotationObject("TimeSlider")
    +    slider.position = (0.4, 0.6)
    +    slider.width = (0.5)
    +    slider.height = (0.1)
    +
    +    DrawPlots()
    +    Test("OpenFOAM_lagrangian_01")
    +
    +    TimeSliderSetState(4)
    +    Test("OpenFOAM_lagrangian_02")
    +    TimeSliderSetState(7)
    +    Test("OpenFOAM_lagrangian_03")
    +    SetActivePlots((1, 2))
    +    DeleteActivePlots()
    +    TimeSliderSetState(10)
    +    AddPlot("Pseudocolor", "lagrangian/coalCloud1/tTurb")
    +    pc = PseudocolorAttributes()
    +    pc.pointType = pc.Sphere
    +    pc.pointSizePixels = 15
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    coalCloudText.textColor = (0, 0, 0, 255)
    +    coalCloudText.text = "coalcloud1/tTurb"
    +    limestoneCloudText.visible = 0
    +    Test("OpenFOAM_lagrangian_04")
    +    TimeSliderSetState(13)
    +    Test("OpenFOAM_lagrangian_05")
    +    ChangeActivePlotsVar("lagrangian/limestoneCloud1/tTurb")
    +    coalCloudText.visible = 0
    +    limestoneCloudText.visible = 1
    +    limestoneCloudText.textColor = (0, 0, 0, 255)
    +    limestoneCloudText.text = "limestoneCloud1/tTurb"
    +    Test("OpenFOAM_lagrangian_06")
    +    TimeSliderSetState(16)
    +    Test("OpenFOAM_lagrangian_07")
    +
    +    coalCloudText.Delete()
    +    limestoneCloudText.Delete()
    +    slider.Delete()
    +
    +    DeleteAllPlots()
    +
    +def TurnOffSetsByName(silr, cat, names):
    +    sets = silr.SetsInCategory(cat)
    +    for s in sets:
    +        setname = silr.SetName(s)
    +        try:
    +            if setname in names:
    +                silr.TurnOffSet(s)
    +        except:
    +            if setname == names:
    +                silr.TurnOffSet(s)
    +
    +def TestMultiRegion():
    +    OpenDatabase(data_path("OpenFOAM_test_data/snappyMultiRegionHeater/system/controlDict"))
    +    AddPlot("Subset", "Region")
    +    DrawPlots()
    +    Test("OpenFOAM_MultiRegion_01")
    +
    +    silr = SILRestriction()
    +    TurnOffSetsByName(silr, "Region", ("bottomAir, topAir"))
    +    SetPlotSILRestriction(silr)
    +    Test("OpenFOAM_MultiRegion_02")
    +
    +    ChangeActivePlotsVar("boundary(Patches)")
    +    silr = SILRestriction()
    +    silr.TurnOnAll()
    +    v = GetView3D()
    +    v.viewNormal = (-0.566091, -0.118534, 0.815776)
    +    v.viewUp = (0.0223539, 0.987037, 0.15893)
    +    SetView3D(v)
    +
    +    Test("OpenFOAM_MultiRegion_03")
    +    TurnDomainsOff(("maxY", "maxZ"))
    +    Test("OpenFOAM_MultiRegion_04")
    +
    +    silr.TurnOnAll()
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "heater/internalMesh/T")
    +    v = GetView3D()
    +    v.viewNormal = (-1, 0, 0)
    +    SetView3D(v)
    +    DrawPlots()
    +    Test("OpenFOAM_MultiRegion_05")
    +    TimeSliderNextState()
    +    Test("OpenFOAM_MultiRegion_06")
    +    DeleteAllPlots()
    +
    +def TestDecomposed():
    +    opts = GetDefaultFileOpenOptions("OpenFOAM")
    +    opts['Case Type'] = 0 #Decomposed
    +    opts['Convert Cell Data To Point Data'] = 1
    +    SetDefaultFileOpenOptions("OpenFOAM", opts)
    +    OpenDatabase(data_path("OpenFOAM_test_data/damBreakFineDecomposed/system/controlDict"))
    +    AddPlot("Pseudocolor", "internalMesh/U_magnitude")
    +    ResetView()
    +    TimeSliderSetState(2)
    +    DrawPlots()
    +    Test("OpenFOAM_Decomposed_01")
    +    TimeSliderSetState(6)
    +    Test("OpenFOAM_Decomposed_02")
    +    TimeSliderSetState(8)
    +    Test("OpenFOAM_Decomposed_03")
    +    DeleteAllPlots()
    +
    +def TestReadZones():
    +    opts = GetDefaultFileOpenOptions("OpenFOAM")
    +    opts['Case Type'] = 1 #Reconstructed
    +    opts['Convert Cell Data To Point Data'] = 0
    +    opts['Read Zones'] = 1
    +    SetDefaultFileOpenOptions("OpenFOAM", opts)
    +    # need a ReOpen because we changed the Open options, and the file
    +    # wasn't closed from previous test.
    +    ReOpenDatabase(data_path("OpenFOAM_test_data/snappyMultiRegionHeater/system/controlDict"))
    +    AddPlot("Mesh", "faceZones")
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (-0.407812, -0.112136, 0.906154)
    +    v.viewUp = (0.00527397, 0.992124, 0.125148)
    +    SetView3D(v)
    +    Test("OpenFOAM_ReadZones_01")
    +    ChangeActivePlotsVar("cellZones")
    +    Test("OpenFOAM_ReadZones_02")
    +    TurnDomainsOff(("topAir", "bottomAir"))
    +    Test("OpenFOAM_ReadZones_03")
    +    DeleteAllPlots()
    +
    +OrigTests()
    +TestLagrangian()
    +TestMultiRegion()
    +TestDecomposed()
    +TestReadZones()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_PATRAN.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_PATRAN.html new file mode 100644 index 000000000..9ff50588f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_PATRAN.html @@ -0,0 +1,120 @@ + +Results for databases/PATRAN.py + +

    Results of VisIt Regression Test - databases/PATRAN

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    pipe.neu
    PATRAN1_00.000.00
    PATRAN1_10.000.00
    PATRAN1_20.000.00
    waterjacket.neu
    PATRAN2_00.000.00
    PATRAN2_10.000.00
    PATRAN2_20.000.00
    intake.neu
    PATRAN3_00.000.00
    PATRAN3_10.000.00
    PATRAN3_20.000.00
    patout.neu
    PATRAN4_00.000.00
    PATRAN4_10.000.00
    PATRAN4_20.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_PATRAN_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_PATRAN_py.html new file mode 100644 index 000000000..9352c6ef7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_PATRAN_py.html @@ -0,0 +1,242 @@ +databases/PATRAN.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  PATRAN.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - Mesh
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Jul 29 17:30:33 PST 2005
    +#
    +#  Notes:      The data for these tests are supposed to be PATRAN versions of
    +#              some of the data in the NASTRAN tests.
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Wed Feb 16 09:15:45 PST 2022
    +#    Replace use of meshatts 'foregroundFlag' and 'backgroundFlag' with
    +#    meshColorSource and opaqueColorSource.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def AddMeshPlot():
    +    AddPlot("Mesh", "mesh")
    +    m = MeshAttributes()
    +    m.legendFlag = 0
    +    m.opaqueColor = (153, 204, 255, 255)
    +    m.opaqueColorSource = m.OpaqueCustom
    +    m.meshColorSource =  m.MeshCustom
    +    m.meshColor = (0,0,0,255)
    +    TurnMaterialsOff("default")
    +    SetPlotOptions(m)
    +
    +def AddPseudocolorPlot():
    +    AddPlot("Pseudocolor", "one")
    +    p = PseudocolorAttributes()
    +    p.colorTableName = "rainbow"
    +    p.SetOpacityType(p.Constant)
    +    p.opacity = 0.2
    +    SetPlotOptions(p)
    +    TurnMaterialsOff("default")
    +    DrawPlots()
    +
    +def test1(datapath):
    +    db = "pipe.neu"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.786306, 0.379526, 0.487527)
    +    v.focus = (0.149902, 0.212562, 0.124929)
    +    v.viewUp = (0.316186, 0.925114, -0.210215)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.585963
    +    v.nearPlane = -1.17193
    +    v.farPlane = 1.17193
    +    v.imagePan = (0.0173275, 0.033058)
    +    v.imageZoom = 1.45734
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.149902, 0.212562, 0.124929)
    +    SetView3D(v)
    +    Test("PATRAN1_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.786306, 0.379526, 0.487527)
    +    v2.focus = (0.149902, 0.212562, 0.124929)
    +    v2.viewUp = (0.316186, 0.925114, -0.210215)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 0.585963
    +    v2.nearPlane = -1.17193
    +    v2.farPlane = 1.17193
    +    v2.imagePan = (-0.108127, 0.0971661)
    +    v2.imageZoom = 6.92887
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0.149902, 0.212562, 0.124929)
    +    SetView3D(v2)
    +    Test("PATRAN1_1")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    SetView3D(v)
    +    Test("PATRAN1_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test2(datapath):
    +    db = "waterjacket.neu"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.65317, -0.673371, 0.346324)
    +    v.focus = (0.03, -0.03, -0.1125)
    +    v.viewUp = (0.225064, 0.264053, 0.937882)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.289925
    +    v.nearPlane = -0.579849
    +    v.farPlane = 0.579849
    +    v.imagePan = (0.0984407, 0.0467479)
    +    v.imageZoom = 1.40003
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.03, -0.03, -0.1125)
    +    SetView3D(v)
    +    Test("PATRAN2_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.65317, -0.673371, 0.346324)
    +    v2.focus = (0.03, -0.03, -0.1125)
    +    v2.viewUp = (0.225064, 0.264053, 0.937882)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 0.289925
    +    v2.nearPlane = -0.579849
    +    v2.farPlane = 0.579849
    +    v2.imagePan = (0.100347, 0.0410472)
    +    v2.imageZoom = 7.7658
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0.03, -0.03, -0.1125)
    +    SetView3D(v2)
    +    Test("PATRAN2_1")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    SetView3D(v)
    +    Test("PATRAN2_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test3(datapath):
    +    db = "intake.neu"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.61876, 0.311053, -0.721375)
    +    v.focus = (0, 0.011, -0.0935)
    +    v.viewUp = (0.208418, 0.950364, 0.231021)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.198752
    +    v.nearPlane = -0.397503
    +    v.farPlane = 0.397503
    +    v.imagePan = (0.0151275, 0.00167627)
    +    v.imageZoom = 1.43299
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0.011, -0.0935)
    +    SetView3D(v)
    +    Test("PATRAN3_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.61876, 0.311053, -0.721375)
    +    v2.focus = (0, 0.011, -0.0935)
    +    v2.viewUp = (0.208418, 0.950364, 0.231021)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 0.198752
    +    v2.nearPlane = -0.397503
    +    v2.farPlane = 0.397503
    +    v2.imagePan = (-0.101283, 0.0396808)
    +    v2.imageZoom = 6.28038
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0, 0.011, -0.0935)
    +    SetView3D(v2)
    +    Test("PATRAN3_1")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    SetView3D(v)
    +    Test("PATRAN3_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test4(datapath):
    +    db = "patout.neu"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddPlot("FilledBoundary", "named_components")
    +    f = FilledBoundaryAttributes()
    +    f.legendFlag = 0
    +    SetPlotOptions(f)
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.765801, 0.0434351, -0.641609)
    +    v.focus = (-3175.88, -94.6135, -37.6065)
    +    v.viewUp = (0.625813, -0.179298, -0.759085)
    +    v.viewAngle = 30
    +    v.parallelScale = 3328.81
    +    v.nearPlane = -6657.62
    +    v.farPlane = 6657.62
    +    v.imagePan = (-0.0688128, -0.239564)
    +    v.imageZoom = 92.5361
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (-3175.88, -94.6135, -37.6065)
    +    SetView3D(v)
    +    Test("PATRAN4_0")
    +
    +    DeleteActivePlots()
    +    AddPlot("Pseudocolor", "elementMats")
    +    DrawPlots()
    +    Test("PATRAN4_1")
    +
    +    ChangeActivePlotsVar("elementIds")
    +    Test("PATRAN4_2")
    +
    +def main():
    +    # Set the window background color
    +    a = GetAnnotationAttributes()
    +    a.backgroundMode = a.Solid
    +    a.backgroundColor = (180, 180, 180, 255)
    +    a.foregroundColor = (255, 255, 255, 255)
    +    SetAnnotationAttributes(a)
    +
    +    DefineScalarExpression("one", "(zoneid(mesh) + 1) / (zoneid(mesh) + 1)")
    +    datapath = data_path("PATRAN_test_data")
    +    test1(datapath)
    +    test2(datapath)
    +    test3(datapath)
    +    test4(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_PLOT3D.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_PLOT3D.html new file mode 100644 index 000000000..1cc96c25b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_PLOT3D.html @@ -0,0 +1,650 @@ + +Results for databases/PLOT3D.py + +

    Results of VisIt Regression Test - databases/PLOT3D

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Open using MetaFile .vp3d
    bluntfin_Density_010.000.00
    bluntfin_InternalEnergy_010.000.00
    bluntfin_Momentum_010.000.00
    bluntfin_subsetDomains_010.000.00
    deltawing_Density_010.000.00
    deltawing_InternalEnergy_010.000.00
    deltawing_Momentum_010.000.00
    deltawing_subsetDomains_010.000.00
    post_Density_010.000.00
    post_InternalEnergy_010.000.00
    post_Momentum_010.000.00
    post_subsetDomains_010.000.00
    sslv_Density_010.000.00
    sslv_InternalEnergy_010.000.00
    sslv_Momentum_010.000.00
    sslv_subsetDomains_010.000.00
    wbt_Density_010.000.00
    wbt_InternalEnergy_010.000.00
    wbt_Momentum_010.000.00
    wbt_subsetDomains_010.000.00
    Open using gridfile and Open Options
    bluntfin_Density_020.000.00
    bluntfin_InternalEnergy_020.000.00
    bluntfin_Pressure_020.000.00
    bluntfin_Temperature_020.000.00
    bluntfin_Enthalpy_020.000.00
    bluntfin_StagnationEnergy_020.000.00
    bluntfin_Entropy_020.000.00
    bluntfin_Swirl_020.000.00
    bluntfin_Momentum_020.000.00
    bluntfin_Velocity_020.000.00
    bluntfin_Vorticity_020.000.00
    bluntfin_PressureGradient_020.000.00
    bluntfin_StrainRate_020.000.00
    bluntfin_subsetDomains_020.000.00
    deltawing_Density_020.000.00
    deltawing_InternalEnergy_020.000.00
    deltawing_Pressure_020.000.00
    deltawing_Temperature_020.000.00
    deltawing_Enthalpy_020.000.00
    deltawing_StagnationEnergy_020.000.00
    deltawing_Entropy_020.000.00
    deltawing_Swirl_020.000.00
    deltawing_Momentum_020.000.00
    deltawing_Velocity_020.000.00
    deltawing_Vorticity_020.000.00
    deltawing_PressureGradient_020.000.00
    deltawing_StrainRate_020.000.00
    deltawing_subsetDomains_020.000.00
    post_Density_020.000.00
    post_InternalEnergy_020.000.00
    post_Pressure_020.000.00
    post_Temperature_020.000.00
    post_Enthalpy_020.000.00
    post_StagnationEnergy_020.000.00
    post_Entropy_020.000.00
    post_Swirl_020.000.00
    post_Momentum_020.000.00
    post_Velocity_020.000.00
    post_Vorticity_020.000.00
    post_PressureGradient_020.000.00
    post_StrainRate_020.000.00
    post_subsetDomains_020.000.00
    sslv_Density_020.000.00
    sslv_InternalEnergy_020.000.00
    sslv_Pressure_020.000.00
    sslv_Temperature_020.000.00
    sslv_Enthalpy_020.000.00
    sslv_StagnationEnergy_020.000.00
    sslv_Entropy_020.000.00
    sslv_Swirl_020.000.00
    sslv_Momentum_020.000.00
    sslv_Velocity_020.000.00
    sslv_Vorticity_020.000.00
    sslv_PressureGradient_020.000.00
    sslv_StrainRate_020.000.00
    sslv_subsetDomains_020.000.00
    wbt_Density_020.000.00
    wbt_InternalEnergy_020.000.00
    wbt_Pressure_020.000.00
    wbt_Temperature_020.000.00
    wbt_Enthalpy_020.000.00
    wbt_StagnationEnergy_020.000.00
    wbt_Entropy_020.000.00
    wbt_Swirl_020.000.00
    wbt_Momentum_020.000.00
    wbt_Velocity_020.000.00
    wbt_Vorticity_020.000.00
    wbt_PressureGradient_020.000.00
    wbt_StrainRate_020.000.00
    wbt_subsetDomains_020.000.00
    Time Series with meta file
    plot3d_timeseries_10 modifications totalling 0 lines
    plot3d_timeseries_1_1200.00.000.00
    plot3d_timeseries_1_1220.00.000.00
    plot3d_timeseries_1_1240.00.000.00
    plot3d_timeseries_1_1300.00.000.00
    plot3d_timeseries_1_1320.00.000.00
    plot3d_timeseries_1_1340.00.000.00
    Time series via Read Options
    plot3d_timeseries_20 modifications totalling 0 lines
    plot3d_timeseries_2_1230.00.000.00
    plot3d_timeseries_2_1330.00.000.00
    wnb020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_PLOT3D_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_PLOT3D_py.html new file mode 100644 index 000000000..447367efa --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_PLOT3D_py.html @@ -0,0 +1,217 @@ +databases/PLOT3D.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#  LIMIT: 1500
    +#  Test Case:  PLOT3D.py 
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       Sep 5, 2014
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Wed Aug 26 09:21:15 PDT 2015
    +#    Removed Magnitude scalars, no longer provided by reader since VisIt
    +#    already automatically creates vector magnitude expressions.
    +#    Added tests for time-series.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def BasicTest(testName, testNum):
    +    # These are the scalars and vectors from the solution file
    +    scalars = ["Density", "InternalEnergy"]
    +    vectors = ["Momentum"]
    +
    +    # These are all the reader-calculated scalars and vectors
    +    computedScalars = ["Pressure", "Temperature", "Enthalpy",
    +                       "StagnationEnergy", "Entropy", "Swirl" ]
    +    computedVectors = ["Velocity", "Vorticity", "PressureGradient",
    +                        "StrainRate"]
    +
    +    AddPlot("Mesh", "mesh")
    +    AddPlot("Pseudocolor", scalars[0])
    +    DrawPlots()
    +    Test("%s_%s_%02d"%(testName,scalars[0],testNum))
    +    for s in scalars[1:]:
    +        ChangeActivePlotsVar(s)
    +        DrawPlots()
    +        Test("%s_%s_%02d"%(testName,s,testNum))
    +
    +    if testNum == 2:
    +        for s in computedScalars:
    +            ChangeActivePlotsVar(s)
    +            DrawPlots()
    +            Test("%s_%s_%02d"%(testName,s,testNum))
    +
    +    DeleteAllPlots()
    +
    +    AddPlot("Vector", vectors[0])
    +    vecAtts = VectorAttributes()
    +    vecAtts.scale = 0.5
    +    vecAtts.useStride = 1
    +    SetPlotOptions(vecAtts)
    +    DrawPlots()
    +    Test("%s_%s_%02d"%(testName,vectors[0],testNum))
    +
    +    if testNum == 2:
    +        for v in computedVectors:
    +            ChangeActivePlotsVar(v)
    +            DrawPlots()
    +            Test("%s_%s_%02d"%(testName,v,testNum))
    +
    +    DeleteAllPlots()
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test("%s_subsetDomains_%02d"%(testName,testNum))
    +
    +    DeleteAllPlots()
    +
    +# Open using the MetaFile .vp3d
    +def TestMetaOpen(metaFile, testName, testStart):
    +    OpenDatabase(data_path("PLOT3D_test_data/%s"%metaFile))
    +    BasicTest(testName, testStart)
    +    CloseDatabase(data_path("PLOT3D_test_data/%s"%metaFile))
    +
    +# Open using the grid file and openOptions
    +def TestOpenOptions(gridFile, testname, options, testStart):
    +    if len(options)> 0:
    +        # Grab the default options
    +        opts = GetDefaultFileOpenOptions("PLOT3D")
    +        # Set the passed options
    +        for k,v in options.items():
    +            if k in list(opts.keys()):
    +                opts[k] = v
    +        SetDefaultFileOpenOptions("PLOT3D", opts)
    +    OpenDatabase(data_path("PLOT3D_test_data/%s"%gridFile),0, "PLOT3D_1.0")
    +    BasicTest(testname, testStart)
    +    CloseDatabase(data_path("PLOT3D_test_data/%s"%gridFile))
    +
    +# names: [dir,  vp3dname, gridname, testname, openOptions]
    +names = [
    +    ["BluntFin", "blunt.vp3d", "blunt.x", "bluntfin", {}],
    +    ["DeltaWing", "delta-40.vp3d", "delta-40.x", "deltawing", {}],
    +    ["LiquidOxygenPost", "post.vp3d", "post.x", "post", {}],
    +    ["SpaceShuttleLaunchVehicle", "sslv.vp3d", "grid", "sslv",
    +        {"Multi Grid": 1, "IBlanking":1, "Use IBlanking If Present": 1, "Solution (Q) File Name":"solution"}],
    +    ["WingBodyTail", "wbt.vp3d", "wbtg.bin", "wbt",
    +        {"Solution (Q) File Name":"wbtr.bin",
    +        "Multi Grid":1,
    +        "IBlanking":1,
    +        "Use IBlanking If Present": 0,
    +        "File Format":1,
    +        "Big Endian":1,
    +        "Double Precision":0,
    +        "3D":1}],
    +]
    +
    +def TestTimeSeries():
    +    TestSection("Time Series with meta file")
    +    SetCreateMeshQualityExpressions(0)
    +    SetCreateTimeDerivativeExpressions(0)
    +    SetCreateVectorMagnitudeExpressions(0)
    +    #SetViewExtentsType("actual")
    +    OpenDatabase(data_path("PLOT3D_test_data/BluntFin/blunt_timeseries.vp3d"))
    +    md = GetMetaData(data_path("PLOT3D_test_data/BluntFin/blunt_timeseries.vp3d"))
    +    TestText("plot3d_timeseries_1", str(md))
    +
    +    DefineScalarExpression("TD", "time(mesh) * Density")
    +    AddPlot("Pseudocolor", "TD")
    +    AddOperator("Isovolume")
    +    isoAtts = IsovolumeAttributes()
    +    isoAtts.lbound = 2000
    +    SetOperatorOptions(isoAtts)
    +    DrawPlots()
    +
    +    #v = GetView3D()
    +    #v.viewNormal = (0, -1, 6.12323e-17)
    +    #v.focus = (3.32801, -0.103006, 16.13)
    +    #v.viewUp = (0, 6.12323e-17, 1)
    +    #SetView3D(v)
    +
    +    #  step through time
    +    for t in range(0, TimeSliderGetNStates(),2):
    +        SetTimeSliderState(t)
    +        Query("Time")
    +        Test("plot3d_timeseries_1_%s" % GetQueryOutputValue())
    +
    +    DeleteAllPlots()
    +
    +    CloseDatabase(data_path("PLOT3D_test_data/BluntFin/blunt_timeseries.vp3d"))
    +
    +    TestSection("Time series via Read Options")
    +
    +    # specify sub-selection of time slices.
    +    opts = {"Solution (Q) File Name" : r"TimeSeries/blunt_??3?.q",
    +            "Solution Time field accurate": 0}
    +    SetDefaultFileOpenOptions("PLOT3D", opts)
    +
    +    OpenDatabase(data_path("PLOT3D_test_data/BluntFin/blunt.x"), 0, "PLOT3D_1.0")
    +    md = GetMetaData(data_path("PLOT3D_test_data/BluntFin/blunt.x"))
    +    TestText("plot3d_timeseries_2", str(md))
    +
    +    AddPlot("Pseudocolor", "TD")
    +    AddOperator("Isovolume")
    +    SetOperatorOptions(isoAtts)
    +    DrawPlots()
    +
    +    #SetView3D(v)
    +
    +    #  step through time
    +    for t in range(0, TimeSliderGetNStates()):
    +        SetTimeSliderState(t)
    +        Query("Time")
    +        Test("plot3d_timeseries_2_%s" % GetQueryOutputValue())
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("PLOT3D_test_data/BluntFin/blunt.x"))
    +
    +def BasicTests():
    +    TestSection("Open using MetaFile .vp3d")
    +    for f in names:
    +        # test opening meta file
    +        TestMetaOpen("%s/%s"%(f[0],f[1]), f[3], 1)
    +
    +    TestSection("Open using gridfile and Open Options")
    +    # save true defaults for resetting
    +    opts = GetDefaultFileOpenOptions("PLOT3D")
    +    for f in names:
    +        # test opening grid file, possibly using OpenOptions
    +        TestOpenOptions("%s/%s"%(f[0],f[2]), f[3], f[4], 2)
    +    # reset to true defaults
    +    SetDefaultFileOpenOptions("PLOT3D", opts)
    +
    +def TestIBlanking():
    +    # Custom tests with specific views:
    +    OpenDatabase(data_path("PLOT3D_test_data/WingNoBody/wnb.vp3d"))
    +    AddPlot("Mesh", "mesh")
    +    DrawPlots()
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (-0.489596, 0.871773, 0.0175216)
    +    View3DAtts.focus = (1.5, -3.00142, 0)
    +    View3DAtts.viewUp = (-0.0396695, -0.00219579, -0.99921)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 11.0231
    +    View3DAtts.nearPlane = -22.0462
    +    View3DAtts.farPlane = 22.0462
    +    View3DAtts.imagePan = (-0.0355573, -0.00323714)
    +    View3DAtts.imageZoom = 66.2641
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (1.5, -3.00142, 0)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +    DrawPlots()
    +    Test("wnb02")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("PLOT3D_test_data/WingNoBody/wnb.vp3d"))
    +
    +BasicTests()
    +TestTimeSeries()
    +TestIBlanking()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_ProteinDataBank.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_ProteinDataBank.html new file mode 100644 index 000000000..34cac05b8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_ProteinDataBank.html @@ -0,0 +1,252 @@ + +Results for databases/ProteinDataBank.py + +

    Results of VisIt Regression Test - databases/ProteinDataBank

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Testing Rattlesnake venom
    proteindb_0_000.000.00
    proteindb_0_010.000.00
    proteindb_0_020.000.00
    proteindb_0_030.000.00
    proteindb_0_040.000.00
    proteindb_0_050.000.00
    proteindb_0_060.000.00
    proteindb_0_070.000.00
    Testing small DNA
    proteindb_1_000.000.00
    proteindb_1_010.000.00
    proteindb_1_020.000.00
    proteindb_1_030.000.00
    proteindb_1_040.000.00
    proteindb_1_050.000.00
    proteindb_1_060.000.00
    proteindb_1_070.000.00
    Testing insulin
    proteindb_2_000.000.00
    proteindb_2_010.000.00
    proteindb_2_020.000.00
    proteindb_2_030.000.00
    proteindb_2_040.000.00
    proteindb_2_050.000.00
    proteindb_2_060.000.00
    proteindb_2_070.000.00
    Testing Black Mamba venom
    proteindb_3_000.000.00
    proteindb_3_010.000.00
    proteindb_3_020.000.00
    proteindb_3_030.000.00
    proteindb_3_040.000.00
    proteindb_3_050.000.00
    proteindb_3_060.000.00
    proteindb_3_070.000.00
    proteindb_3_080.000.00
    proteindb_3_090.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_ProteinDataBank_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_ProteinDataBank_py.html new file mode 100644 index 000000000..3d243dcc5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_ProteinDataBank_py.html @@ -0,0 +1,366 @@ +databases/ProteinDataBank.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ProteinDataBank.py
    +#
    +#  Tests:      mesh      - 3D points
    +#              plots     - Molecule
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Tue Mar 28 15:46:53 PST 2006
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Tue Aug 29 13:23:30 EDT 2006
    +#    ProteinDataBank files now have models as directories, not time steps.
    +#
    +#    Brad Whitlock, Thu Mar 12 11:04:32 PDT 2009
    +#    I restructured the test into functions.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Replace obsolete Label text attributes with new versions.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def LabelTest(testname, var, zoomview):
    +    AddPlot("Label", var)
    +    LabelAtts = LabelAttributes()
    +    LabelAtts.legendFlag = 1
    +    LabelAtts.showNodes = 0
    +    LabelAtts.showCells = 1
    +    LabelAtts.restrictNumberOfLabels = 0
    +    LabelAtts.drawLabelsFacing = LabelAtts.Front  # Front, Back, FrontAndBack
    +    LabelAtts.labelDisplayFormat = LabelAtts.Natural  # Natural, LogicalIndex, Index
    +    LabelAtts.numberOfLabels = 200
    +    LabelAtts.textFont1.useForegroundColor = 0
    +    LabelAtts.textFont1.color = (0, 255, 0, 255)
    +    LabelAtts.textFont1.scale = 5
    +    LabelAtts.textFont2.useForegroundColor = 1
    +    LabelAtts.textFont2.color = (0, 0, 255, 0)
    +    LabelAtts.textFont2.scale = 4
    +    LabelAtts.horizontalJustification = LabelAtts.HCenter  # HCenter, Left, Right
    +    LabelAtts.verticalJustification = LabelAtts.VCenter  # VCenter, Top, Bottom
    +    LabelAtts.depthTestMode = LabelAtts.LABEL_DT_AUTO  # LABEL_DT_AUTO, LABEL_DT_ALWAYS, LABEL_DT_NEVER
    +    SetPlotOptions(LabelAtts)
    +    DrawPlots()
    +    oldview = GetView3D()
    +    SetView3D(zoomview)
    +    # Save these images somewhat larger than a regular test case image
    +    # since the images contain a lot of text.
    +#    swa = SaveWindowAttributes()
    +#    swa.width = 500
    +#    swa.height = 500
    +#    swa.screenCapture = 0
    +#    Test(testname, swa)
    +    Test(testname)
    +    DeleteActivePlots()
    +    SetView3D(oldview)
    +
    +
    +def AddMoleculePlot(db, var):
    +    OpenDatabase(db)
    +    AddPlot("Molecule", var)
    +
    +    MoleculeAtts = MoleculeAttributes()
    +    MoleculeAtts.drawAtomsAs = MoleculeAtts.SphereAtoms  # NoAtoms, SphereAtoms, ImposterAtoms
    +    MoleculeAtts.scaleRadiusBy = MoleculeAtts.Fixed  # Fixed, Covalent, Atomic, Variable
    +    MoleculeAtts.drawBondsAs = MoleculeAtts.CylinderBonds  # NoBonds, LineBonds, CylinderBonds
    +    MoleculeAtts.colorBonds = MoleculeAtts.ColorByAtom  # ColorByAtom, SingleColor
    +    MoleculeAtts.bondSingleColor = (128, 128, 128, 255)
    +    MoleculeAtts.radiusVariable = "default"
    +    MoleculeAtts.radiusScaleFactor = 1
    +    MoleculeAtts.radiusFixed = 0.4
    +    MoleculeAtts.atomSphereQuality = MoleculeAtts.Medium  # Low, Medium, High, Super
    +    MoleculeAtts.bondCylinderQuality = MoleculeAtts.Medium  # Low, Medium, High, Super
    +    MoleculeAtts.bondRadius = 0.12
    +    MoleculeAtts.bondLineWidth = 0
    +    MoleculeAtts.elementColorTable = "cpk_jmol"
    +    MoleculeAtts.residueTypeColorTable = "amino_shapely"
    +    MoleculeAtts.residueSequenceColorTable = "Default"
    +    MoleculeAtts.continuousColorTable = "Default"
    +    MoleculeAtts.legendFlag = 1
    +    MoleculeAtts.minFlag = 0
    +    MoleculeAtts.scalarMin = 0
    +    MoleculeAtts.maxFlag = 0
    +    MoleculeAtts.scalarMax = 1
    +    SetPlotOptions(MoleculeAtts)
    +    DrawPlots()
    +
    +
    +def test0():
    +    TestSection("Testing Rattlesnake venom")
    +    AddMoleculePlot(data_path("ProteinDataBank_test_data/crotamine.pdb"), "element")
    +
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.967329, 0.252251, -0.0253765)
    +    v0.focus = (31.726, -54.1675, 13.645)
    +    v0.viewUp = (0.252129, 0.967661, 0.0079404)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 24.9831
    +    v0.nearPlane = -49.9661
    +    v0.farPlane = 49.9661
    +    v0.imagePan = (0, 0)
    +    v0.imageZoom = 1.44471
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (31.726, -54.1675, 13.645)
    +    SetView3D(v0)
    +
    +    v0zoom = View3DAttributes()
    +    v0zoom.viewNormal = (-0.967329, 0.252251, -0.0253765)
    +    v0zoom.focus = (31.726, -54.1675, 13.645)
    +    v0zoom.viewUp = (0.252129, 0.967661, 0.0079404)
    +    v0zoom.viewAngle = 30
    +    v0zoom.parallelScale = 24.9831
    +    v0zoom.nearPlane = -49.9661
    +    v0zoom.farPlane = 49.9661
    +    v0zoom.imagePan = (0, 0)
    +    v0zoom.imageZoom = 7.15293
    +    v0zoom.perspective = 1
    +    v0zoom.eyeAngle = 2
    +    v0zoom.centerOfRotationSet = 0
    +    v0zoom.centerOfRotation = (31.726, -54.1675, 13.645)
    +
    +    Test("proteindb_0_00")
    +    LabelTest("proteindb_0_01", "elementname", v0zoom)
    +
    +    ChangeActivePlotsVar("resseq")
    +    Test("proteindb_0_02")
    +    LabelTest("proteindb_0_03", "resseq", v0zoom)
    +
    +    ChangeActivePlotsVar("backbone")
    +    Test("proteindb_0_04")
    +
    +    ChangeActivePlotsVar("restype")
    +    Test("proteindb_0_05")
    +    LabelTest("proteindb_0_06", "resname", v0zoom)
    +
    +    LabelTest("proteindb_0_07", "longresname", v0zoom)
    +    DeleteAllPlots()
    +
    +
    +def test1():
    +    TestSection("Testing small DNA")
    +    AddMoleculePlot(data_path("ProteinDataBank_test_data/1NTS.pdb"), "element")
    +
    +    v1 = View3DAttributes()
    +    v1.viewNormal = (-0.320353, 0.944248, 0.075961)
    +    v1.focus = (-0.0580001, 0.0915003, 0.3815)
    +    v1.viewUp = (0.342959, 0.190354, -0.919861)
    +    v1.viewAngle = 30
    +    v1.parallelScale = 22.575
    +    v1.nearPlane = -45.1501
    +    v1.farPlane = 45.1501
    +    v1.imagePan = (-0.0021177, -0.0481532)
    +    v1.imageZoom = 1.27797
    +    v1.perspective = 1
    +    v1.eyeAngle = 2
    +    v1.centerOfRotationSet = 0
    +    v1.centerOfRotation = (-0.0580001, 0.0915003, 0.3815)
    +    SetView3D(v1)
    +
    +    v1zoom = View3DAttributes()
    +    v1zoom.viewNormal = (-0.320353, 0.944248, 0.075961)
    +    v1zoom.focus = (-0.0580001, 0.0915003, 0.3815)
    +    v1zoom.viewUp = (0.342959, 0.190354, -0.919861)
    +    v1zoom.viewAngle = 30
    +    v1zoom.parallelScale = 22.575
    +    v1zoom.nearPlane = -45.1501
    +    v1zoom.farPlane = 45.1501
    +    v1zoom.imagePan = (-0.00906313, 0.0442979)
    +    v1zoom.imageZoom = 6.4294
    +    v1zoom.perspective = 1
    +    v1zoom.eyeAngle = 2
    +    v1zoom.centerOfRotationSet = 0
    +    v1zoom.centerOfRotation = (-0.0580001, 0.0915003, 0.3815)
    +
    +    Test("proteindb_1_00")
    +    LabelTest("proteindb_1_01", "elementname", v1zoom)
    +
    +    ChangeActivePlotsVar("resseq")
    +    Test("proteindb_1_02")
    +    LabelTest("proteindb_1_03", "resseq", v1zoom)
    +
    +    ChangeActivePlotsVar("backbone")
    +    Test("proteindb_1_04")
    +
    +    ChangeActivePlotsVar("restype")
    +    Test("proteindb_1_05")
    +    LabelTest("proteindb_1_06", "resname", v1zoom)
    +
    +    LabelTest("proteindb_1_07", "longresname", v1zoom)
    +    DeleteAllPlots()
    +
    +
    +def test2():
    +    TestSection("Testing insulin")
    +    AddMoleculePlot(data_path("ProteinDataBank_test_data/1UZ9.pdb"), "element")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (0.215329, 0.245957, 0.94506)
    +    v2.focus = (23.441, 26.835, 23.6865)
    +    v2.viewUp = (-0.351063, 0.922561, -0.160113)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 29.1931
    +    v2.nearPlane = -58.3862
    +    v2.farPlane = 58.3862
    +    v2.imagePan = (0.0260607, 0.00408113)
    +    v2.imageZoom = 1.8463
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (23.441, 26.835, 23.6865)
    +    SetView3D(v2)
    +
    +    v2zoom = View3DAttributes()
    +    v2zoom.viewNormal = (0.685414, 0.259247, 0.68044)
    +    v2zoom.focus = (23.441, 26.835, 23.6865)
    +    v2zoom.viewUp = (0.700183, 0.02186, -0.713629)
    +    v2zoom.viewAngle = 30
    +    v2zoom.parallelScale = 29.1931
    +    v2zoom.nearPlane = -58.3862
    +    v2zoom.farPlane = 58.3862
    +    v2zoom.imagePan = (-0.0257104, -0.00810227)
    +    v2zoom.imageZoom = 10.3892
    +    v2zoom.perspective = 1
    +    v2zoom.eyeAngle = 2
    +    v2zoom.centerOfRotationSet = 0
    +    v2zoom.centerOfRotation = (23.441, 26.835, 23.6865)
    +
    +    Test("proteindb_2_00")
    +    LabelTest("proteindb_2_01", "elementname", v2zoom)
    +
    +    ChangeActivePlotsVar("resseq")
    +    Test("proteindb_2_02")
    +    LabelTest("proteindb_2_03", "resseq", v2zoom)
    +
    +    ChangeActivePlotsVar("backbone")
    +    Test("proteindb_2_04")
    +
    +    ChangeActivePlotsVar("restype")
    +    Test("proteindb_2_05")
    +    LabelTest("proteindb_2_06", "resname", v2zoom)
    +
    +    LabelTest("proteindb_2_07", "longresname", v2zoom)
    +    DeleteAllPlots()
    +
    +
    +def test3():
    +    TestSection("Testing Black Mamba venom")
    +    AddMoleculePlot(data_path("ProteinDataBank_test_data/1TFS.pdb"), "element")
    +
    +    v3 = View3DAttributes()
    +    v3.viewNormal = (-0.242177, -0.689536, 0.682562)
    +    v3.focus = (-1.73, -1.927, -0.202)
    +    v3.viewUp = (0.243612, 0.637752, 0.730702)
    +    v3.viewAngle = 30
    +    v3.parallelScale = 25.6826
    +    v3.nearPlane = -51.3652
    +    v3.farPlane = 51.3652
    +    v3.imagePan = (0.0337528, -0.0400135)
    +    v3.imageZoom = 1.49054
    +    v3.perspective = 1
    +    v3.eyeAngle = 2
    +    v3.centerOfRotationSet = 0
    +    v3.centerOfRotation = (-1.73, -1.927, -0.202)
    +    SetView3D(v3)
    +
    +    v3zoom = View3DAttributes()
    +    v3zoom.viewNormal = (-0.558032, -0.716666, 0.418318)
    +    v3zoom.focus = (-1.73, -1.927, -0.202)
    +    v3zoom.viewUp = (0.120358, 0.428875, 0.89531)
    +    v3zoom.viewAngle = 30
    +    v3zoom.parallelScale = 25.6826
    +    v3zoom.nearPlane = -51.3652
    +    v3zoom.farPlane = 51.3652
    +    v3zoom.imagePan = (0.0337528, -0.0400135)
    +    v3zoom.imageZoom = 8.39928
    +    v3zoom.perspective = 1
    +    v3zoom.eyeAngle = 2
    +    v3zoom.centerOfRotationSet = 0
    +    v3zoom.centerOfRotation = (-1.73, -1.927, -0.202)
    +
    +    Test("proteindb_3_00")
    +    LabelTest("proteindb_3_01", "elementname", v3zoom)
    +
    +    ChangeActivePlotsVar("resseq")
    +    Test("proteindb_3_02")
    +    LabelTest("proteindb_3_03", "resseq", v3zoom)
    +
    +    ChangeActivePlotsVar("backbone")
    +    Test("proteindb_3_04")
    +
    +    ChangeActivePlotsVar("restype")
    +    Test("proteindb_3_05")
    +    LabelTest("proteindb_3_06", "resname", v3zoom)
    +
    +    LabelTest("proteindb_3_07", "longresname", v3zoom)
    +
    +    # Make sure that there are multiple models in the file.
    +    ChangeActivePlotsVar("element")
    +    ChangeActivePlotsVar("models/model_09/element")
    +    Test("proteindb_3_08")
    +    ChangeActivePlotsVar("models/model_19/element")
    +    Test("proteindb_3_09")
    +    DeleteAllPlots()
    +
    +# NOTE: This test is not enabled because it fails. It needs baselines too.
    +def test4():
    +    TestSection("Testing file replacement with ProteinDataBank files")
    +    AddMoleculePlot(data_path("ProteinDataBank_test_data/crotamine.pdb"), "element")
    +
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.967329, 0.252251, -0.0253765)
    +    v0.focus = (31.726, -54.1675, 13.645)
    +    v0.viewUp = (0.252129, 0.967661, 0.0079404)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 24.9831
    +    v0.nearPlane = -49.9661
    +    v0.farPlane = 49.9661
    +    v0.imagePan = (0, 0)
    +    v0.imageZoom = 1.44471
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (31.726, -54.1675, 13.645)
    +    SetView3D(v0)
    +    Test("proteindb_4_00")
    +    ReplaceDatabase(data_path("ProteinDataBank_test_data/1UZ9.pdb"))
    +
    +    v1 = View3DAttributes()
    +    v1.viewNormal = (-0.320353, 0.944248, 0.075961)
    +    v1.focus = (-0.0580001, 0.0915003, 0.3815)
    +    v1.viewUp = (0.342959, 0.190354, -0.919861)
    +    v1.viewAngle = 30
    +    v1.parallelScale = 22.575
    +    v1.nearPlane = -45.1501
    +    v1.farPlane = 45.1501
    +    v1.imagePan = (-0.0021177, -0.0481532)
    +    v1.imageZoom = 1.27797
    +    v1.perspective = 1
    +    v1.eyeAngle = 2
    +    v1.centerOfRotationSet = 0
    +    v1.centerOfRotation = (-0.0580001, 0.0915003, 0.3815)
    +    SetView3D(v1)
    +    Test("proteindb_4_01")
    +
    +
    +def main():
    +    # Set the window background color
    +    a = GetAnnotationAttributes()
    +    a.backgroundMode = a.Solid
    +    a.foregroundColor = (0, 0, 0, 255)
    +    a.backgroundColor = (255, 255, 255, 255)
    +    a.databaseInfoFlag = 0
    +    SetAnnotationAttributes(a)
    +
    +    # Call the tests
    +    test0()
    +    test1()
    +    test2()
    +    test3()
    +    #test4()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_RAW.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_RAW.html new file mode 100644 index 000000000..b9a2b64f3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_RAW.html @@ -0,0 +1,57 @@ + +Results for databases/RAW.py + +

    Results of VisIt Regression Test - databases/RAW

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    RAW files
    RAW_0_000.000.00
    RAW_0_010.000.00
    RAW_0_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_RAW_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_RAW_py.html new file mode 100644 index 000000000..6b70fd8fe --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_RAW_py.html @@ -0,0 +1,94 @@ +databases/RAW.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  RAW.py
    +#
    +#  Tests:      mesh      - 3D unstructured
    +#              plots     - Mesh, Pseudocolor, FilledBoundary
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Oct 10 12:05:17 PDT 2007
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def test0(datapath):
    +    TestSection("RAW files")
    +    OpenDatabase(pjoin(datapath,"visitrocks.raw"))
    +    AddPlot("Pseudocolor", "x")
    +    DrawPlots()
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.567094, 0.226914, 0.791779)
    +    v0.focus = (0.000999987, -0.1635, 0)
    +    v0.viewUp = (0.130227, 0.973912, -0.18584)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 1.5462
    +    v0.nearPlane = -3.0924
    +    v0.farPlane = 3.0924
    +    v0.imagePan = (0.0382352, 0.0259835)
    +    v0.imageZoom = 1.29479
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0.000999987, -0.1635, 0)
    +    SetView3D(v0)
    +    Test("RAW_0_00")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(pjoin(datapath,"visit1.7.raw"))
    +    AddPlot("Pseudocolor", "z")
    +    DrawPlots()
    +    v1 = View3DAttributes()
    +    v1.viewNormal = (0.548073, -0.470773, 0.691367)
    +    v1.focus = (-3, 2.5, -3.5)
    +    v1.viewUp = (-0.467318, 0.513182, 0.719902)
    +    v1.viewAngle = 30
    +    v1.parallelScale = 26.3154
    +    v1.nearPlane = -52.6308
    +    v1.farPlane = 52.6308
    +    v1.imagePan = (-0.00129203, 0.0275781)
    +    v1.imageZoom = 1.17533
    +    v1.perspective = 1
    +    v1.eyeAngle = 2
    +    v1.centerOfRotationSet = 0
    +    v1.centerOfRotation = (-3, 2.5, -3.5)
    +    SetView3D(v1)
    +    Test("RAW_0_01")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(pjoin(datapath,"llnl-logo.raw"))
    +    AddPlot("Subset", "domains")
    +    silr = SILRestriction()
    +    silr.SuspendCorrectnessChecking()
    +    silr.TurnOffAll()
    +    for silSet in (1,2,77):
    +        silr.TurnOnSet(silSet)
    +    silr.EnableCorrectnessChecking()
    +    SetPlotSILRestriction(silr)
    +    DrawPlots()
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (0.373419, 0.166874, 0.91253)
    +    v2.focus = (0.108829, 9.95567, 5.85852)
    +    v2.viewUp = (-0.0717588, 0.985936, -0.150933)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 91.211
    +    v2.nearPlane = -182.422
    +    v2.farPlane = 182.422
    +    v2.imagePan = (-0.00129203, 0.0275781)
    +    v2.imageZoom = 1.17145
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0.108829, 9.95567, 5.85852)
    +    SetView3D(v2)
    +    Test("RAW_0_02")
    +    DeleteAllPlots()
    +
    +def main():
    +    datapath = data_path("RAW_test_data")
    +    test0(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_SPCTH.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_SPCTH.html new file mode 100644 index 000000000..07b64ef94 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_SPCTH.html @@ -0,0 +1,48 @@ + +Results for databases/SPCTH.py + +

    Results of VisIt Regression Test - databases/SPCTH

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    spcth_010.000.00
    spcth_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_SPCTH_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_SPCTH_py.html new file mode 100644 index 000000000..36a3acf29 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_SPCTH_py.html @@ -0,0 +1,36 @@ +databases/SPCTH.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  SPCTH.py 
    +#
    +#  Programmer: Kevin Griffin 
    +#  Date:       September 15, 2017 
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +#efp2d.spcth
    +OpenDatabase(data_path("SPCTH_test_data/efp2d.spcth"))
    +AddPlot("FilledBoundary", "materials")
    +DrawPlots()
    +Test("spcth_01")
    +DeleteAllPlots()
    +CloseDatabase(data_path("SPCTH_test_data/efp2d.spcth"))
    +
    +#efp3d.spcth
    +OpenDatabase(data_path("SPCTH_test_data/efp3d.spcth"))
    +AddPlot("Pseudocolor", "M")
    +
    +silr = SILRestriction()
    +silr.TurnOnAll()
    +silr.TurnOffSet(silr.SetsInCategory('materials')[3])
    +SetPlotSILRestriction(silr)
    +
    +DrawPlots()
    +Test("spcth_02")
    +DeleteAllPlots()
    +CloseDatabase(data_path("SPCTH_test_data/efp3d.spcth"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_Velodyne.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_Velodyne.html new file mode 100644 index 000000000..e3e2879df --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_Velodyne.html @@ -0,0 +1,88 @@ + +Results for databases/Velodyne.py + +

    Results of VisIt Regression Test - databases/Velodyne

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Solid
    Velodyne_0_000 modifications totalling 0 lines
    Velodyne_0_010.000.00
    Velodyne_0_020.000.00
    Velodyne_0_030.000.00
    Velodyne_0_040.000.00
    Velodyne_0_050.000.00
    Velodyne_0_060.000.00
    Surface
    Velodyne_1_000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_Velodyne_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_Velodyne_py.html new file mode 100644 index 000000000..a4e86eb4b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_Velodyne_py.html @@ -0,0 +1,79 @@ +databases/Velodyne.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  Velodyne.py
    +#
    +#  Tests:      mesh      - 3D unstructured
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Feb 10 14:51:33 PDT 2010
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def InitializeView():
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (0.715595, -0.551955, 0.4281)
    +    v0.focus = (11.5, 2.39999, 1.04954)
    +    v0.viewUp = (-0.34794, 0.249768, 0.903633)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 11.8686
    +    v0.nearPlane = -23.7373
    +    v0.farPlane = 23.7373
    +    v0.imagePan = (-0.0579851, 0.0689456)
    +    v0.imageZoom = 1.2342
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (11.5, 2.39999, 1.04954)
    +    SetView3D(v0)
    +
    +def test0(datapath):
    +    TestSection("Solid")
    +    db = pjoin(datapath,"pelh.*.vld database")
    +    OpenDatabase(db,0,"Velodyne_1.0")
    +    md = GetMetaData(db)
    +    TestText("Velodyne_0_00", str(md))
    +    AddPlot("Pseudocolor", "Solid/Pressure")
    +    DrawPlots()
    +    InitializeView()
    +
    +    Test("Velodyne_0_01")
    +    TimeSliderSetState(11)
    +    Test("Velodyne_0_02")
    +    TimeSliderSetState(22)
    +    Test("Velodyne_0_03")
    +    TimeSliderSetState(0)
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Solid/Velocity_0")
    +    DrawPlots()
    +    InitializeView()
    +    Test("Velodyne_0_04")
    +    TimeSliderSetState(11)
    +    Test("Velodyne_0_05")
    +    TimeSliderSetState(22)
    +    Test("Velodyne_0_06")
    +    TimeSliderSetState(0)
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test1(datapath):
    +    TestSection("Surface")
    +
    +    OpenDatabase(pjoin(datapath,"pelh.1.vld"),0,"Velodyne_1.0")
    +    AddPlot("Pseudocolor", "Surface/Velocity_0")
    +    DrawPlots()
    +    InitializeView()
    +    Test("Velodyne_1_00")
    +    DeleteAllPlots()
    +
    +def main():
    +    datapath = data_path("Velodyne_test_data")
    +    test0(datapath)
    +    test1(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_WData.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_WData.html new file mode 100644 index 000000000..71851bfd6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_WData.html @@ -0,0 +1,60 @@ + +Results for databases/WData.py + +

    Results of VisIt Regression Test - databases/WData

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    wdata_1_010.000.00
    wdata_1_020.000.00
    wdata_1_030.000.00
    wdata_1_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_WData_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_WData_py.html new file mode 100644 index 000000000..5d9db74e4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_WData_py.html @@ -0,0 +1,58 @@ +databases/WData.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  WData.py 
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       September 22, 2021 
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def Test1():
    +    OpenDatabase(data_path("WData_test_data/WData-test.wtxt"))
    +
    +    AddPlot("Contour", "density_a")
    +    AddPlot("Vector", "current_a")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal=(0.363715, 0.43572, 0.822339)
    +    v.viewUp=(-0.158317, 0.898996, -0.40834)
    +    SetView3D(v)
    +
    +    Test("wdata_1_01")
    +
    +    TimeSliderSetState(5)
    +    Test("wdata_1_02")
    +
    +    DeleteAllPlots()
    +    AddPlot("Volume", "density_b")
    +    DrawPlots()
    +    Test("wdata_1_03")
    +
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "density_b")
    +    DrawPlots()
    +
    +    SetQueryOutputToObject()
    +    se = Query("SpatialExtents")["extents"]
    +    AddOperator("ThreeSlice")
    +    ts = ThreeSliceAttributes()
    +    ts.x = (se[1] - se[0]) * 0.5
    +    ts.y = (se[3] - se[2]) * 0.5
    +    ts.z = (se[5] - se[4]) * 0.5
    +    SetOperatorOptions(ts)
    +    DrawPlots()
    +
    +    Test("wdata_1_04")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("WData_test_data/WData-test.wtxt"))
    +
    +Test1()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_Xmdv.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_Xmdv.html new file mode 100644 index 000000000..11cd8adea --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_Xmdv.html @@ -0,0 +1,66 @@ + +Results for databases/Xmdv.py + +

    Results of VisIt Regression Test - databases/Xmdv

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Xmdv_010.000.00
    Xmdv_020.000.00
    Xmdv_030.000.00
    Xmdv_040.000.00
    Xmdv_050.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_Xmdv_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_Xmdv_py.html new file mode 100644 index 000000000..dc3d55686 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_Xmdv_py.html @@ -0,0 +1,105 @@ +databases/Xmdv.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  Xmdv.py
    +#
    +#  Tests:      mesh      - 3D point mesh
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Hank Childs
    +#  Date:       July 21, 2005
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Aug 10 10:00:45 PDT 2005
    +#    Fixed due to a change in the Label plot.
    +#
    +#    Hank Childs, Tue Mar 18 15:40:57 PDT 2008
    +#    Reflect change in variable names.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Hank Childs, Sat Mar 13 11:13:26 PST 2010
    +#    Change variable names for forbidden characters.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# First test that we can open a Xmdv file.
    +OpenDatabase(data_path("okc_test_data/astronomy.okc"))
    +
    +AddPlot("Pseudocolor", "classmagi")
    +AddOperator("Transform")
    +t = TransformAttributes()
    +t.doScale = 1
    +t.scaleZ = 0.03
    +SetOperatorOptions(t)
    +DrawPlots()
    +
    +Test("Xmdv_01")
    +
    +DefineArrayExpression("sub_arr", "array_compose(b, d)")
    +AddPlot("Label", "sub_arr")
    +L = LabelAttributes()
    +L.depthTestMode = L.LABEL_DT_NEVER
    +SetPlotOptions(L)
    +AddOperator("Transform")
    +SetOperatorOptions(t)
    +DrawPlots()
    +
    +Test("Xmdv_02")
    +
    +
    +# This is super ugly, but I want to have something in the regression suite
    +# that tests reading in array variables directly from a file (for coverage
    +# purpose).
    +DeleteAllPlots()
    +AddPlot("Label", "all_vars")
    +L = LabelAttributes()
    +L.depthTestMode = L.LABEL_DT_NEVER
    +SetPlotOptions(L)
    +DrawPlots()
    +Test("Xmdv_03")
    +DeleteAllPlots()
    +
    +
    +# Now test the writer.
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +DefineScalarExpression("uc", "recenter(u)")
    +DefineScalarExpression("vc", "recenter(v)")
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +e = ExportDBAttributes()
    +e.db_type = "Xmdv"
    +e.filename = "xmdv"
    +e.variables = ("d", "p", "uc", "vc")
    +ExportDatabase(e)
    +
    +DeleteAllPlots()
    +DeleteExpression("uc")
    +DeleteExpression("vc")
    +OpenDatabase("xmdv.okc")
    +AddPlot("Pseudocolor", "vc")
    +DrawPlots()
    +Test("Xmdv_04")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Vector", "vel")
    +DrawPlots()
    +e.variables = ()
    +e.filename = "xmdv2"
    +ExportDatabase(e)
    +DeleteAllPlots()
    +OpenDatabase("xmdv2.okc")
    +AddPlot("Pseudocolor", "vel_lb_0_rb_")
    +DrawPlots()
    +Test("Xmdv_05")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_Xolotl.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_Xolotl.html new file mode 100644 index 000000000..a43816143 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_Xolotl.html @@ -0,0 +1,90 @@ + +Results for databases/Xolotl.py + +

    Results of VisIt Regression Test - databases/Xolotl

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    0D Example Xolot File
    xolotl_0D_HeliumVacancies0.000.00
    xolotl_0D_HeliumDeuterium0.000.00
    xolotl_0D_HeliumInterstitial0.000.00
    xolotl_0D_HeliumTritium0.000.00
    1D Example Xolotl File
    xolotl_1D_Helium Concentration0.000.00
    xolotl_1D_Deuterium Concentration0.000.00
    xolotl_1D_Interstitial Concentration0.000.00
    xolotl_1D_Tritium Concentration0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_Xolotl_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_Xolotl_py.html new file mode 100644 index 000000000..e7b264d53 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_Xolotl_py.html @@ -0,0 +1,47 @@ +databases/Xolotl.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  Xolotl.py
    +#
    +#  Tests:      Xolotl hdf5 files
    +#
    +#  Programmer: James Kress
    +#  Date:       Mon Aug 26 13:00:15 EDT 2019
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("Xolotl")
    +
    +xolotl_0D = "xolotl_test_data/network-PSI2-0D.xolotl"
    +xolotl_1D = "xolotl_test_data/network-PSI2-1D.xolotl"
    +
    +zeroDVars = ["Helium/Vacancies", "Helium/Deuterium", "Helium/Interstitial", "Helium/Tritium"]
    +oneDVars = ["Helium Concentration", "Deuterium Concentration", "Interstitial Concentration", "Tritium Concentration"]
    +
    +def test(var_name,tag_name):
    +    SetTimeSliderState(1)
    +    AddPlot("Pseudocolor", var_name)
    +    SetActivePlots(0)
    +    PseudocolorAtts = PseudocolorAttributes()
    +    PseudocolorAtts.scaling = PseudocolorAtts.Log  # Linear, Log, Skew
    +    PseudocolorAtts.colorTableName = "hot_desaturated"
    +    SetPlotOptions(PseudocolorAtts)
    +    DrawPlots()
    +    file_name = var_name.replace("/", "")
    +    Test(tag_name + "_" +  file_name)
    +    DeleteAllPlots()
    +
    +
    +TestSection("0D Example Xolot File")
    +OpenDatabase(data_path(xolotl_0D))
    +for var_name in zeroDVars:
    +    test(var_name,"xolotl_0D")
    +CloseDatabase(data_path(xolotl_0D))
    +
    +TestSection("1D Example Xolotl File")
    +OpenDatabase(data_path(xolotl_1D))
    +for var_name in oneDVars:
    +    test(var_name,"xolotl_1D")
    +CloseDatabase(data_path(xolotl_1D))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_activesource.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_activesource.html new file mode 100644 index 000000000..bde04b3d8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_activesource.html @@ -0,0 +1,80 @@ + +Results for databases/activesource.py + +

    Results of VisIt Regression Test - databases/activesource

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    activesource000.000.00
    activesource010 modifications totalling 0 lines
    activesource020 modifications totalling 0 lines
    activesource030.000.00
    activesource040.000.00
    activesource050 modifications totalling 0 lines
    activesource060.000.00
    activesource070 modifications totalling 0 lines
    activesource080 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_activesource_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_activesource_py.html new file mode 100644 index 000000000..189e83873 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_activesource_py.html @@ -0,0 +1,82 @@ +databases/activesource.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  activesource.py
    +#
    +#  Tests:      mesh      - 2D, curvilinear, single domain
    +#              plots     - FilledBoundary
    +#              databases - PDB
    +#
    +#  Purpose:    This test case tests that the viewer uses the right active
    +#              source for the active window.
    +#
    +#  Bugs:       '4527
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Mar 18 13:45:29 PST 2004
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +#
    +# Look at the first few lines of the string representation of the
    +# WindowInformation to see the list of time sliders, etc.
    +#
    +def TestWindowInformation(testname):
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 5 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    for i in range(5):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    TestText(testname, s)
    +
    +# Create a plot of dbA00.pdb.
    +OpenDatabase(data_path("pdb_test_data/dbA00.pdb"))
    +
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +Test("activesource00")
    +
    +# Create another window and make sure that it has dbA00.pdb as its
    +# active source.
    +CloneWindow()
    +SetActiveWindow(2)
    +DeleteAllPlots()
    +TestWindowInformation("activesource01")
    +
    +# Open dbB00.pdb and make sure that it becomes the active source.
    +OpenDatabase(data_path("pdb_test_data/dbB00.pdb"))
    +
    +TestWindowInformation("activesource02")
    +
    +# Create a plot from it.
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +Test("activesource03")
    +# note: py3 div creates float
    +SetTimeSliderState(int(TimeSliderGetNStates() / 2))
    +Test("activesource04")
    +TestWindowInformation("activesource05")
    +
    +# Create a 3rd window by cloning window 2. We're making sure that the 
    +# time slider got copied to the new window and that it has the right
    +# time state.
    +CloneWindow()
    +SetActiveWindow(3)
    +DrawPlots()
    +Test("activesource06")
    +TestWindowInformation("activesource07")
    +
    +# Switch back to window 1 and make sure that the window information has
    +# dbA00.pdb as the active source.
    +SetActiveWindow(1)
    +TestWindowInformation("activesource08")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_adios2.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_adios2.html new file mode 100644 index 000000000..6e59bf245 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_adios2.html @@ -0,0 +1,60 @@ + +Results for databases/adios2.py + +

    Results of VisIt Regression Test - databases/adios2

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Adios2 Blosc Test
    adios2_3d_bp_mesh71x71x71_mesh0.000.00
    Adios2 BP5 Tests
    adios2_2d_bp5_1_mesh512x512_mesh0.000.00
    adios2_2d_bp5_2_mesh512x512_mesh0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_adios2_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_adios2_py.html new file mode 100644 index 000000000..3c0f2fc8d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_adios2_py.html @@ -0,0 +1,115 @@ +databases/adios2.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  adios2.py 
    +#
    +#  Tests:      mesh      - 3D single domain
    +#              plots     - Pseudocolor
    +#              operators - Clip
    +#
    +#  Programmer: Justin Privitera
    +#  Date:       Mon May  9 18:05:05 PDT 2022
    +#
    +#  Modifications:
    +#     Justin Privitera, Thu Jan 18 09:40:00 PST 2024
    +#     Added BP5 tests.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("ADIOS2")
    +
    +from os.path import join as pjoin
    +
    +adios2_test_dir = "adios2_v2.7.1_test_data"
    +cube_data = data_path(pjoin(adios2_test_dir,"interesting_cube00000000.bp"))
    +
    +bp5_test_dir = "adios2_v2.10.0-rc1_bp5_test_data"
    +plt0 = data_path(pjoin(bp5_test_dir,"plt00000.bp"))
    +plt758 = data_path(pjoin(bp5_test_dir,"plt00758.bp"))
    +
    +def set_3d_view():
    +    v = View3DAttributes()
    +    v.viewNormal = (0.844823, 0.290329, 0.449425)
    +    v.focus = (35, 35, 35)
    +    v.viewUp = (-0.239502, 0.956325, -0.167574)
    +    v.viewAngle = 30
    +    v.parallelScale = 60.6218
    +    v.nearPlane = -121.244
    +    v.farPlane = 121.244
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (35, 35, 35)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +def set_test_view(tag_name):
    +    if "3d" in tag_name:
    +        set_3d_view()
    +    else:
    +        ResetView()
    +
    +def test(mesh_name, tag_name, var_name, mesh_plot = False):
    +    if mesh_plot:
    +        AddPlot("Mesh", mesh_name)
    +    AddPlot("Pseudocolor", var_name)
    +    if "3d" in tag_name:
    +        AddOperator("Clip", 1)
    +        SetActivePlots(1)
    +        ClipAtts = ClipAttributes()
    +        ClipAtts.quality = ClipAtts.Fast  # Fast, Accurate
    +        ClipAtts.funcType = ClipAtts.Plane  # Plane, Sphere
    +        ClipAtts.plane1Status = 1
    +        ClipAtts.plane2Status = 0
    +        ClipAtts.plane3Status = 0
    +        ClipAtts.plane1Origin = (35, 35, 35)
    +        ClipAtts.plane2Origin = (0, 0, 0)
    +        ClipAtts.plane3Origin = (0, 0, 0)
    +        ClipAtts.plane1Normal = (1, 0, 0)
    +        ClipAtts.plane2Normal = (0, 1, 0)
    +        ClipAtts.plane3Normal = (0, 0, 1)
    +        ClipAtts.planeInverse = 0
    +        ClipAtts.planeToolControlledClipPlane = ClipAtts.Plane1  # NONE, Plane1, Plane2, Plane3
    +        ClipAtts.center = (0, 0, 0)
    +        ClipAtts.radius = 1
    +        ClipAtts.sphereInverse = 0
    +        ClipAtts.crinkleClip = 0
    +        SetOperatorOptions(ClipAtts, 0, 1)
    +    DrawPlots()
    +    set_test_view(tag_name)
    +    Test(tag_name + "_" +  mesh_name + "_mesh")
    +    DeleteAllPlots()
    +
    +# requires adios2 to be built with c-blosc support
    +TestSection("Adios2 Blosc Test")
    +OpenDatabase(cube_data, 0, "ADIOS2_1.0")
    +mesh_name = "mesh71x71x71"
    +tag_name = "adios2_3d_bp"
    +var_name = "/data/0/meshes/admbase_lapse_rl00/admbase_alp"
    +do_mesh_plot = True
    +test(mesh_name, tag_name, var_name, do_mesh_plot)
    +CloseDatabase(cube_data)
    +
    +# requires adios2 to be built with c-blosc support
    +TestSection("Adios2 BP5 Tests")
    +
    +OpenDatabase(plt0, 0, "ADIOS2_1.0")
    +mesh_name = "mesh512x512"
    +tag_name = "adios2_2d_bp5_1"
    +var_name = "/data/0/meshes/gasDensity"
    +test(mesh_name, tag_name, var_name)
    +CloseDatabase(plt0)
    +
    +OpenDatabase(plt758, 0, "ADIOS2_1.0")
    +mesh_name = "mesh512x512"
    +tag_name = "adios2_2d_bp5_2"
    +var_name = "/data/758/meshes/gasDensity"
    +test(mesh_name, tag_name, var_name)
    +CloseDatabase(plt758)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_avsucd.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_avsucd.html new file mode 100644 index 000000000..6056e08eb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_avsucd.html @@ -0,0 +1,60 @@ + +Results for databases/avsucd.py + +

    Results of VisIt Regression Test - databases/avsucd

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    avsucd_010.000.00
    avsucd_020.000.00
    avsucd_030.000.00
    avsucd_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_avsucd_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_avsucd_py.html new file mode 100644 index 000000000..ae60b6e15 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_avsucd_py.html @@ -0,0 +1,41 @@ +databases/avsucd.py
    # ----------------------------------------------------------------------------)
    +#  CLASSES: nightly
    +#
    +#  Test Case:  avsucd.py 
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       February 6, 2020
    +#
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(data_path("AVSucd_test_data/cell_data.inp"))
    +AddPlot("Pseudocolor", "stress sx")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (0.804006, 0.580568, 0.128511)
    +viewUp = (-0.482246, 0.763086, -0.430278)
    +SetView3D(v)
    +Test("avsucd_01")
    +
    +ChangeActivePlotsVar("stress sz")
    +Test("avsucd_02")
    +
    +ChangeActivePlotsVar("temp1")
    +Test("avsucd_03")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("AVSucd_test_data/cell_data.inp"))
    +
    +# file with vectors
    +OpenDatabase(data_path("AVSucd_test_data/vec1.1.000.inp"))
    +AddPlot("Vector", "vect")
    +DrawPlots()
    +ResetView()
    +Test("avsucd_04")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("AVSucd_test_data/vec1.1.000.inp"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_blueprint.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_blueprint.html new file mode 100644 index 000000000..0e4ea1a64 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_blueprint.html @@ -0,0 +1,3041 @@ + +Results for databases/blueprint.py + +

    Results of VisIt Regression Test - databases/blueprint

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    2D Example JSON Mesh Files
    blueprint_2d_json_points_mesh0.000.00
    blueprint_2d_json_points_braid0.000.00
    blueprint_2d_json_points_radial0.000.00
    blueprint_2d_json_uniform_mesh0.000.00
    blueprint_2d_json_uniform_braid0.000.00
    blueprint_2d_json_uniform_radial0.000.00
    blueprint_2d_json_rect_mesh0.000.00
    blueprint_2d_json_rect_braid0.000.00
    blueprint_2d_json_rect_radial0.000.00
    blueprint_2d_json_struct_mesh0.000.00
    blueprint_2d_json_struct_braid0.000.00
    blueprint_2d_json_struct_radial0.000.00
    blueprint_2d_json_tris_mesh0.000.00
    blueprint_2d_json_tris_braid0.000.00
    blueprint_2d_json_tris_radial0.000.00
    blueprint_2d_json_quads_mesh0.000.00
    blueprint_2d_json_quads_braid0.000.00
    blueprint_2d_json_quads_radial0.000.00
    2D Example HDF5 Mesh Files
    blueprint_2d_hdf5_points_mesh0.000.00
    blueprint_2d_hdf5_points_braid0.000.00
    blueprint_2d_hdf5_points_radial0.000.00
    blueprint_2d_hdf5_uniform_mesh0.000.00
    blueprint_2d_hdf5_uniform_braid0.000.00
    blueprint_2d_hdf5_uniform_radial0.000.00
    blueprint_2d_hdf5_rect_mesh0.000.00
    blueprint_2d_hdf5_rect_braid0.000.00
    blueprint_2d_hdf5_rect_radial0.000.00
    blueprint_2d_hdf5_struct_mesh0.000.00
    blueprint_2d_hdf5_struct_braid0.000.00
    blueprint_2d_hdf5_struct_radial0.000.00
    blueprint_2d_hdf5_tris_mesh0.000.00
    blueprint_2d_hdf5_tris_braid0.000.00
    blueprint_2d_hdf5_tris_radial0.000.00
    blueprint_2d_hdf5_quads_mesh0.000.00
    blueprint_2d_hdf5_quads_braid0.000.00
    blueprint_2d_hdf5_quads_radial0.000.00
    2D Example Sidre HDF5 Mesh Files
    blueprint_2d_sidre_hdf5_points_mesh0.000.00
    blueprint_2d_sidre_hdf5_points_braid0.000.00
    blueprint_2d_sidre_hdf5_points_radial0.000.00
    blueprint_2d_sidre_hdf5_uniform_mesh0.000.00
    blueprint_2d_sidre_hdf5_uniform_braid0.000.00
    blueprint_2d_sidre_hdf5_uniform_radial0.000.00
    blueprint_2d_sidre_hdf5_rect_mesh0.000.00
    blueprint_2d_sidre_hdf5_rect_braid0.000.00
    blueprint_2d_sidre_hdf5_rect_radial0.000.00
    blueprint_2d_sidre_hdf5_struct_mesh0.000.00
    blueprint_2d_sidre_hdf5_struct_braid0.000.00
    blueprint_2d_sidre_hdf5_struct_radial0.000.00
    blueprint_2d_sidre_hdf5_tris_mesh0.000.00
    blueprint_2d_sidre_hdf5_tris_braid0.000.00
    blueprint_2d_sidre_hdf5_tris_radial0.000.00
    blueprint_2d_sidre_hdf5_quads_mesh0.000.00
    blueprint_2d_sidre_hdf5_quads_braid0.000.00
    blueprint_2d_sidre_hdf5_quads_radial0.000.00
    3D Example JSON Mesh Files
    blueprint_3d_json_points_mesh0.000.00
    blueprint_3d_json_points_braid0.000.00
    blueprint_3d_json_points_radial0.000.00
    blueprint_3d_json_uniform_mesh0.000.00
    blueprint_3d_json_uniform_braid0.000.00
    blueprint_3d_json_uniform_radial0.000.00
    blueprint_3d_json_rect_mesh0.000.00
    blueprint_3d_json_rect_braid0.000.00
    blueprint_3d_json_rect_radial0.000.00
    blueprint_3d_json_struct_mesh0.000.00
    blueprint_3d_json_struct_braid0.000.00
    blueprint_3d_json_struct_radial0.000.00
    blueprint_3d_json_tets_mesh0.000.00
    blueprint_3d_json_tets_braid0.000.00
    blueprint_3d_json_tets_radial0.000.00
    blueprint_3d_json_hexs_mesh0.000.00
    blueprint_3d_json_hexs_braid0.000.00
    blueprint_3d_json_hexs_radial0.000.00
    3D Example HDF5 Mesh Files
    blueprint_3d_hdf5_points_mesh0.000.00
    blueprint_3d_hdf5_points_braid0.000.00
    blueprint_3d_hdf5_points_radial0.000.00
    blueprint_3d_hdf5_uniform_mesh0.000.00
    blueprint_3d_hdf5_uniform_braid0.000.00
    blueprint_3d_hdf5_uniform_radial0.000.00
    blueprint_3d_hdf5_rect_mesh0.000.00
    blueprint_3d_hdf5_rect_braid0.000.00
    blueprint_3d_hdf5_rect_radial0.000.00
    blueprint_3d_hdf5_struct_mesh0.000.00
    blueprint_3d_hdf5_struct_braid0.000.00
    blueprint_3d_hdf5_struct_radial0.000.00
    blueprint_3d_hdf5_tets_mesh0.000.00
    blueprint_3d_hdf5_tets_braid0.000.00
    blueprint_3d_hdf5_tets_radial0.000.00
    blueprint_3d_hdf5_hexs_mesh0.000.00
    blueprint_3d_hdf5_hexs_braid0.000.00
    blueprint_3d_hdf5_hexs_radial0.000.00
    3D Example Sidre HDF5 Mesh Files
    blueprint_3d_sidre_hdf5_points_mesh0.000.00
    blueprint_3d_sidre_hdf5_points_braid0.000.00
    blueprint_3d_sidre_hdf5_points_radial0.000.00
    blueprint_3d_sidre_hdf5_uniform_mesh0.000.00
    blueprint_3d_sidre_hdf5_uniform_braid0.000.00
    blueprint_3d_sidre_hdf5_uniform_radial0.000.00
    blueprint_3d_sidre_hdf5_rect_mesh0.000.00
    blueprint_3d_sidre_hdf5_rect_braid0.000.00
    blueprint_3d_sidre_hdf5_rect_radial0.000.00
    blueprint_3d_sidre_hdf5_struct_mesh0.000.00
    blueprint_3d_sidre_hdf5_struct_braid0.000.00
    blueprint_3d_sidre_hdf5_struct_radial0.000.00
    blueprint_3d_sidre_hdf5_tets_mesh0.000.00
    blueprint_3d_sidre_hdf5_tets_braid0.000.00
    blueprint_3d_sidre_hdf5_tets_radial0.000.00
    blueprint_3d_sidre_hdf5_hexs_mesh0.000.00
    blueprint_3d_sidre_hdf5_hexs_braid0.000.00
    blueprint_3d_sidre_hdf5_hexs_radial0.000.00
    MFEM Blueprint Example Data Tests
    blueprint_mfem_3d_periodic_cube_json_sol0.000.00
    blueprint_mfem_3d_periodic_cube_json_ele_coloring0.000.00
    blueprint_mfem_3d_periodic_cube_json_ele_att0.000.00
    blueprint_mfem_3d_periodic_cube_json_fall_back_to_old_LOR_sol0.000.00
    blueprint_mfem_3d_periodic_cube_json_fall_back_to_old_LOR_ele_coloring0.000.00
    blueprint_mfem_3d_periodic_cube_json_fall_back_to_old_LOR_ele_att0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_bin_sol0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_bin_ele_coloring0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_bin_ele_att0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_bin_fall_back_to_old_LOR_sol0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_bin_fall_back_to_old_LOR_ele_coloring0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_bin_fall_back_to_old_LOR_ele_att0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_json_sol0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_json_ele_coloring0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_json_ele_att0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_json_fall_back_to_old_LOR_sol0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_json_fall_back_to_old_LOR_ele_coloring0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_json_fall_back_to_old_LOR_ele_att0.000.00
    blueprint_mfem_3d_periodic_cube_hdf5_sol0.000.00
    blueprint_mfem_3d_periodic_cube_hdf5_ele_coloring0.000.00
    blueprint_mfem_3d_periodic_cube_hdf5_ele_att0.000.00
    blueprint_mfem_3d_periodic_cube_hdf5_fall_back_to_old_LOR_sol0.000.00
    blueprint_mfem_3d_periodic_cube_hdf5_fall_back_to_old_LOR_ele_coloring0.000.00
    blueprint_mfem_3d_periodic_cube_hdf5_fall_back_to_old_LOR_ele_att0.000.00
    blueprint_mfem_3d_star_q3_json_sol0.000.00
    blueprint_mfem_3d_star_q3_json_ele_coloring0.000.00
    blueprint_mfem_3d_star_q3_json_ele_att0.000.00
    blueprint_mfem_3d_star_q3_conduit_bin_sol0.000.00
    blueprint_mfem_3d_star_q3_conduit_bin_ele_coloring0.000.00
    blueprint_mfem_3d_star_q3_conduit_bin_ele_att0.000.00
    blueprint_mfem_3d_star_q3_conduit_json_sol0.000.00
    blueprint_mfem_3d_star_q3_conduit_json_ele_coloring0.000.00
    blueprint_mfem_3d_star_q3_conduit_json_ele_att0.000.00
    blueprint_mfem_3d_star_q3_hdf5_sol0.000.00
    blueprint_mfem_3d_star_q3_hdf5_ele_coloring0.000.00
    blueprint_mfem_3d_star_q3_hdf5_ele_att0.000.00
    blueprint_mfem_2d_periodic_hexagon_json_sol0.000.00
    blueprint_mfem_2d_periodic_hexagon_json_ele_coloring0.000.00
    blueprint_mfem_2d_periodic_hexagon_json_ele_att0.000.00
    blueprint_mfem_2d_periodic_hexagon_json_fall_back_to_old_LOR_sol0.000.00
    blueprint_mfem_2d_periodic_hexagon_json_fall_back_to_old_LOR_ele_coloring0.000.00
    blueprint_mfem_2d_periodic_hexagon_json_fall_back_to_old_LOR_ele_att0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_bin_sol0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_bin_ele_coloring0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_bin_ele_att0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_bin_fall_back_to_old_LOR_sol0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_bin_fall_back_to_old_LOR_ele_coloring0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_bin_fall_back_to_old_LOR_ele_att0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_json_sol0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_json_ele_coloring0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_json_ele_att0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_json_fall_back_to_old_LOR_sol0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_json_fall_back_to_old_LOR_ele_coloring0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_json_fall_back_to_old_LOR_ele_att0.000.00
    blueprint_mfem_2d_periodic_hexagon_hdf5_sol0.000.00
    blueprint_mfem_2d_periodic_hexagon_hdf5_ele_coloring0.000.00
    blueprint_mfem_2d_periodic_hexagon_hdf5_ele_att0.000.00
    blueprint_mfem_2d_periodic_hexagon_hdf5_fall_back_to_old_LOR_sol0.000.00
    blueprint_mfem_2d_periodic_hexagon_hdf5_fall_back_to_old_LOR_ele_coloring0.000.00
    blueprint_mfem_2d_periodic_hexagon_hdf5_fall_back_to_old_LOR_ele_att0.000.00
    MFEM LOR Mesh Blueprint Tests
    blueprint_mfem_3d_periodic_cube_json_lor0.000.00
    blueprint_mfem_3d_periodic_cube_json_legacy_lor0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_bin_lor0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_bin_legacy_lor0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_json_lor0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_json_legacy_lor0.000.00
    blueprint_mfem_3d_periodic_cube_hdf5_lor0.000.00
    blueprint_mfem_3d_periodic_cube_hdf5_legacy_lor0.000.00
    blueprint_mfem_3d_star_q3_json_lor0.000.00
    blueprint_mfem_3d_star_q3_json_legacy_lor0.000.00
    blueprint_mfem_3d_star_q3_conduit_bin_lor0.000.00
    blueprint_mfem_3d_star_q3_conduit_bin_legacy_lor0.000.00
    blueprint_mfem_3d_star_q3_conduit_json_lor0.000.00
    blueprint_mfem_3d_star_q3_conduit_json_legacy_lor0.000.00
    blueprint_mfem_3d_star_q3_hdf5_lor0.000.00
    blueprint_mfem_3d_star_q3_hdf5_legacy_lor0.000.00
    blueprint_mfem_2d_periodic_hexagon_json_lor0.000.00
    blueprint_mfem_2d_periodic_hexagon_json_legacy_lor0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_bin_lor0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_bin_legacy_lor0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_json_lor0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_json_legacy_lor0.000.00
    blueprint_mfem_2d_periodic_hexagon_hdf5_lor0.000.00
    blueprint_mfem_2d_periodic_hexagon_hdf5_legacy_lor0.000.00
    blueprint_mfem_3d_esher_lor0.000.00
    blueprint_mfem_3d_esher_legacy_lor0.000.00
    blueprint_mfem_3d_laghos_tg.cycle_lor0.000.00
    blueprint_mfem_3d_laghos_tg.cycle_legacy_lor0.000.00
    blueprint_mfem_3d_taylor_green.cycle_lor0.000.00
    blueprint_mfem_3d_taylor_green.cycle_legacy_lor0.000.00
    blueprint_mfem_2d_tri_beam_lor0.000.00
    blueprint_mfem_2d_tri_beam_legacy_lor0.000.00
    blueprint_mfem_3d_warbly_cube_lor0.000.00
    blueprint_mfem_3d_warbly_cube_legacy_lor0.000.00
    MFEM LOR Field Blueprint Tests
    blueprint_mfem_3d_esher_pseudocolor_mesh_nodes_magnitude_lor0.000.00
    blueprint_mfem_3d_laghos_tg.cycle_pseudocolor_mesh_nodes_magnitude_lor0.000.00
    blueprint_mfem_3d_laghos_tg.cycle_pseudocolor_density_lor0.000.00
    blueprint_mfem_3d_laghos_tg.cycle_pseudocolor_specific_internal_energy_lor0.000.00
    blueprint_mfem_3d_laghos_tg.cycle_pseudocolor_velocity_magnitude_lor0.000.00
    blueprint_mfem_3d_laghos_tg.cycle_vector_velocity_lor0.000.00
    blueprint_mfem_3d_taylor_green.cycle_pseudocolor_mesh_nodes_magnitude_lor0.000.00
    blueprint_mfem_3d_taylor_green.cycle_pseudocolor_density_lor0.000.00
    blueprint_mfem_3d_taylor_green.cycle_pseudocolor_specific_internal_energy_lor0.000.00
    blueprint_mfem_3d_taylor_green.cycle_pseudocolor_velocity_magnitude_lor0.000.00
    blueprint_mfem_3d_taylor_green.cycle_vector_velocity_lor0.000.00
    blueprint_mfem_2d_tri_beam_pseudocolor_mesh_nodes_magnitude_lor0.000.00
    blueprint_mfem_2d_tri_beam_vector_mesh_nodes_lor0.000.00
    blueprint_mfem_3d_warbly_cube_pseudocolor_mesh_nodes_magnitude_lor0.000.00
    Blueprint Expressions
    blueprint_expressions0.000.00
    Variables With Parens
    paren_vars_000.000.00
    Blueprint Matset Example Tests: venn_small_full
    venn_small_full_mat_check0.000.00
    testeq_t_mat_check_max
     4320 .eq. 4320 (prec=5) : True
    testeq_mat_check_min
     1 .eq. 1 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_full Matvf Exprs
    venn_small_full_vf_bg0.000.00
    testeq_vf_bg_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_bg_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_full_vf_c_a0.000.00
    testeq_vf_c_a_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_a_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_full_vf_c_b0.000.00
    testeq_vf_c_b_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_b_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_full_vf_c_c0.000.00
    testeq_vf_c_c_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_c_min
     0.0 .eq. 0.0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_full Val4mat Exprs
    venn_small_full_v4m_bg0.000.00
    testeq_v4m_bg_max
     1 .eq. 1 (prec=5) : True
    testeq_v4m_bg_min
     0 .eq. 0 (prec=5) : True
    venn_small_full_v4m_c_a0.000.00
    testeq_v4m_c_a_max
     20 .eq. 20 (prec=5) : True
    testeq_v4m_c_a_min
     0 .eq. 0 (prec=5) : True
    venn_small_full_v4m_c_b0.000.00
    testeq_v4m_c_b_max
     300 .eq. 300 (prec=5) : True
    testeq_v4m_c_b_min
     0 .eq. 0 (prec=5) : True
    venn_small_full_v4m_c_c0.000.00
    testeq_v4m_c_c_max
     4000 .eq. 4000 (prec=5) : True
    testeq_v4m_c_c_min
     0 .eq. 0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_element
    venn_small_sparse_by_element_mat_check0.000.00
    testeq_t_mat_check_max
     4320 .eq. 4320 (prec=5) : True
    testeq_mat_check_min
     1 .eq. 1 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_element Matvf Exprs
    venn_small_sparse_by_element_vf_bg0.000.00
    testeq_vf_bg_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_bg_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_element_vf_c_a0.000.00
    testeq_vf_c_a_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_a_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_element_vf_c_b0.000.00
    testeq_vf_c_b_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_b_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_element_vf_c_c0.000.00
    testeq_vf_c_c_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_c_min
     0.0 .eq. 0.0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_element Val4mat Exprs
    venn_small_sparse_by_element_v4m_bg0.000.00
    testeq_v4m_bg_max
     1 .eq. 1 (prec=5) : True
    testeq_v4m_bg_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_element_v4m_c_a0.000.00
    testeq_v4m_c_a_max
     20 .eq. 20 (prec=5) : True
    testeq_v4m_c_a_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_element_v4m_c_b0.000.00
    testeq_v4m_c_b_max
     300 .eq. 300 (prec=5) : True
    testeq_v4m_c_b_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_element_v4m_c_c0.000.00
    testeq_v4m_c_c_max
     4000 .eq. 4000 (prec=5) : True
    testeq_v4m_c_c_min
     0 .eq. 0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_material
    venn_small_sparse_by_material_mat_check0.000.00
    testeq_t_mat_check_max
     4320 .eq. 4320 (prec=5) : True
    testeq_mat_check_min
     1 .eq. 1 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_material Matvf Exprs
    venn_small_sparse_by_material_vf_bg0.000.00
    testeq_vf_bg_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_bg_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_material_vf_c_a0.000.00
    testeq_vf_c_a_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_a_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_material_vf_c_b0.000.00
    testeq_vf_c_b_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_b_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_material_vf_c_c0.000.00
    testeq_vf_c_c_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_c_min
     0.0 .eq. 0.0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_material Val4mat Exprs
    venn_small_sparse_by_material_v4m_bg0.000.00
    testeq_v4m_bg_max
     1 .eq. 1 (prec=5) : True
    testeq_v4m_bg_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_material_v4m_c_a0.000.00
    testeq_v4m_c_a_max
     20 .eq. 20 (prec=5) : True
    testeq_v4m_c_a_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_material_v4m_c_b0.000.00
    testeq_v4m_c_b_max
     300 .eq. 300 (prec=5) : True
    testeq_v4m_c_b_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_material_v4m_c_c0.000.00
    testeq_v4m_c_c_max
     4000 .eq. 4000 (prec=5) : True
    testeq_v4m_c_c_min
     0 .eq. 0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_full_yaml
    venn_small_full_yaml_mat_check0.000.00
    testeq_t_mat_check_max
     4320 .eq. 4320 (prec=5) : True
    testeq_mat_check_min
     1 .eq. 1 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_full_yaml Matvf Exprs
    venn_small_full_yaml_vf_bg0.000.00
    testeq_vf_bg_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_bg_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_full_yaml_vf_c_a0.000.00
    testeq_vf_c_a_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_a_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_full_yaml_vf_c_b0.000.00
    testeq_vf_c_b_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_b_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_full_yaml_vf_c_c0.000.00
    testeq_vf_c_c_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_c_min
     0.0 .eq. 0.0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_full_yaml Val4mat Exprs
    venn_small_full_yaml_v4m_bg0.000.00
    testeq_v4m_bg_max
     1 .eq. 1 (prec=5) : True
    testeq_v4m_bg_min
     0 .eq. 0 (prec=5) : True
    venn_small_full_yaml_v4m_c_a0.000.00
    testeq_v4m_c_a_max
     20 .eq. 20 (prec=5) : True
    testeq_v4m_c_a_min
     0 .eq. 0 (prec=5) : True
    venn_small_full_yaml_v4m_c_b0.000.00
    testeq_v4m_c_b_max
     300 .eq. 300 (prec=5) : True
    testeq_v4m_c_b_min
     0 .eq. 0 (prec=5) : True
    venn_small_full_yaml_v4m_c_c0.000.00
    testeq_v4m_c_c_max
     4000 .eq. 4000 (prec=5) : True
    testeq_v4m_c_c_min
     0 .eq. 0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_element_yaml
    venn_small_sparse_by_element_yaml_mat_check0.000.00
    testeq_t_mat_check_max
     4320 .eq. 4320 (prec=5) : True
    testeq_mat_check_min
     1 .eq. 1 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_element_yaml Matvf Exprs
    venn_small_sparse_by_element_yaml_vf_bg0.000.00
    testeq_vf_bg_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_bg_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_element_yaml_vf_c_a0.000.00
    testeq_vf_c_a_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_a_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_element_yaml_vf_c_b0.000.00
    testeq_vf_c_b_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_b_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_element_yaml_vf_c_c0.000.00
    testeq_vf_c_c_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_c_min
     0.0 .eq. 0.0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_element_yaml Val4mat Exprs
    venn_small_sparse_by_element_yaml_v4m_bg0.000.00
    testeq_v4m_bg_max
     1 .eq. 1 (prec=5) : True
    testeq_v4m_bg_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_element_yaml_v4m_c_a0.000.00
    testeq_v4m_c_a_max
     20 .eq. 20 (prec=5) : True
    testeq_v4m_c_a_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_element_yaml_v4m_c_b0.000.00
    testeq_v4m_c_b_max
     300 .eq. 300 (prec=5) : True
    testeq_v4m_c_b_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_element_yaml_v4m_c_c0.000.00
    testeq_v4m_c_c_max
     4000 .eq. 4000 (prec=5) : True
    testeq_v4m_c_c_min
     0 .eq. 0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_material_yaml
    venn_small_sparse_by_material_yaml_mat_check0.000.00
    testeq_t_mat_check_max
     4320 .eq. 4320 (prec=5) : True
    testeq_mat_check_min
     1 .eq. 1 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_material_yaml Matvf Exprs
    venn_small_sparse_by_material_yaml_vf_bg0.000.00
    testeq_vf_bg_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_bg_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_material_yaml_vf_c_a0.000.00
    testeq_vf_c_a_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_a_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_material_yaml_vf_c_b0.000.00
    testeq_vf_c_b_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_b_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_material_yaml_vf_c_c0.000.00
    testeq_vf_c_c_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_c_min
     0.0 .eq. 0.0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_material_yaml Val4mat Exprs
    venn_small_sparse_by_material_yaml_v4m_bg0.000.00
    testeq_v4m_bg_max
     1 .eq. 1 (prec=5) : True
    testeq_v4m_bg_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_material_yaml_v4m_c_a0.000.00
    testeq_v4m_c_a_max
     20 .eq. 20 (prec=5) : True
    testeq_v4m_c_a_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_material_yaml_v4m_c_b0.000.00
    testeq_v4m_c_b_max
     300 .eq. 300 (prec=5) : True
    testeq_v4m_c_b_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_material_yaml_v4m_c_c0.000.00
    testeq_v4m_c_c_max
     4000 .eq. 4000 (prec=5) : True
    testeq_v4m_c_c_min
     0 .eq. 0 (prec=5) : True
    Venn With Modded Material Numbers, 0.8.7
    Venn_with_modded_matnos0.000.00
    2D Example HDF5 Mesh Files, 0.8.2
    blueprint_2d_hdf5_0_8_2_points_mesh0.000.00
    blueprint_2d_hdf5_0_8_2_points_braid0.000.00
    blueprint_2d_hdf5_0_8_2_points_radial0.000.00
    blueprint_2d_hdf5_0_8_2_uniform_mesh0.000.00
    blueprint_2d_hdf5_0_8_2_uniform_braid0.000.00
    blueprint_2d_hdf5_0_8_2_uniform_radial0.000.00
    blueprint_2d_hdf5_0_8_2_rect_mesh0.000.00
    blueprint_2d_hdf5_0_8_2_rect_braid0.000.00
    blueprint_2d_hdf5_0_8_2_rect_radial0.000.00
    blueprint_2d_hdf5_0_8_2_struct_mesh0.000.00
    blueprint_2d_hdf5_0_8_2_struct_braid0.000.00
    blueprint_2d_hdf5_0_8_2_struct_radial0.000.00
    blueprint_2d_hdf5_0_8_2_tris_mesh0.000.00
    blueprint_2d_hdf5_0_8_2_tris_braid0.000.00
    blueprint_2d_hdf5_0_8_2_tris_radial0.000.00
    blueprint_2d_hdf5_0_8_2_quads_mesh0.000.00
    blueprint_2d_hdf5_0_8_2_quads_braid0.000.00
    blueprint_2d_hdf5_0_8_2_quads_radial0.000.00
    blueprint_2d_hdf5_0_8_2_points_implicit_mesh0.000.00
    blueprint_2d_hdf5_0_8_2_points_implicit_braid0.000.00
    blueprint_2d_hdf5_0_8_2_points_implicit_radial0.000.00
    2D Example YAML Mesh Files, 0.8.2
    blueprint_2d_yaml_0_8_2_points_mesh0.000.00
    blueprint_2d_yaml_0_8_2_points_braid0.000.00
    blueprint_2d_yaml_0_8_2_points_radial0.000.00
    blueprint_2d_yaml_0_8_2_uniform_mesh0.000.00
    blueprint_2d_yaml_0_8_2_uniform_braid0.000.00
    blueprint_2d_yaml_0_8_2_uniform_radial0.000.00
    blueprint_2d_yaml_0_8_2_rect_mesh0.000.00
    blueprint_2d_yaml_0_8_2_rect_braid0.000.00
    blueprint_2d_yaml_0_8_2_rect_radial0.000.00
    blueprint_2d_yaml_0_8_2_struct_mesh0.000.00
    blueprint_2d_yaml_0_8_2_struct_braid0.000.00
    blueprint_2d_yaml_0_8_2_struct_radial0.000.00
    blueprint_2d_yaml_0_8_2_tris_mesh0.000.00
    blueprint_2d_yaml_0_8_2_tris_braid0.000.00
    blueprint_2d_yaml_0_8_2_tris_radial0.000.00
    blueprint_2d_yaml_0_8_2_quads_mesh0.000.00
    blueprint_2d_yaml_0_8_2_quads_braid0.000.00
    blueprint_2d_yaml_0_8_2_quads_radial0.000.00
    blueprint_2d_yaml_0_8_2_points_implicit_mesh0.000.00
    blueprint_2d_yaml_0_8_2_points_implicit_braid0.000.00
    blueprint_2d_yaml_0_8_2_points_implicit_radial0.000.00
    3D Example HDF5 Mesh Files, 0.8.2
    blueprint_3d_hdf5_0_8_2_points_mesh0.000.00
    blueprint_3d_hdf5_0_8_2_points_braid0.000.00
    blueprint_3d_hdf5_0_8_2_points_radial0.000.00
    blueprint_3d_hdf5_0_8_2_uniform_mesh0.000.00
    blueprint_3d_hdf5_0_8_2_uniform_braid0.000.00
    blueprint_3d_hdf5_0_8_2_uniform_radial0.000.00
    blueprint_3d_hdf5_0_8_2_rect_mesh0.000.00
    blueprint_3d_hdf5_0_8_2_rect_braid0.000.00
    blueprint_3d_hdf5_0_8_2_rect_radial0.000.00
    blueprint_3d_hdf5_0_8_2_struct_mesh0.000.00
    blueprint_3d_hdf5_0_8_2_struct_braid0.000.00
    blueprint_3d_hdf5_0_8_2_struct_radial0.000.00
    blueprint_3d_hdf5_0_8_2_tets_mesh0.000.00
    blueprint_3d_hdf5_0_8_2_tets_braid0.000.00
    blueprint_3d_hdf5_0_8_2_tets_radial0.000.00
    blueprint_3d_hdf5_0_8_2_hexs_mesh0.000.00
    blueprint_3d_hdf5_0_8_2_hexs_braid0.000.00
    blueprint_3d_hdf5_0_8_2_hexs_radial0.000.00
    blueprint_3d_hdf5_0_8_2_points_implicit_mesh0.000.00
    blueprint_3d_hdf5_0_8_2_points_implicit_braid0.000.00
    blueprint_3d_hdf5_0_8_2_points_implicit_radial0.000.00
    3D Example YAML Mesh Files, 0.8.2
    blueprint_3d_yaml_0_8_2_points_mesh0.000.00
    blueprint_3d_yaml_0_8_2_points_braid0.000.00
    blueprint_3d_yaml_0_8_2_points_radial0.000.00
    blueprint_3d_yaml_0_8_2_uniform_mesh0.000.00
    blueprint_3d_yaml_0_8_2_uniform_braid0.000.00
    blueprint_3d_yaml_0_8_2_uniform_radial0.000.00
    blueprint_3d_yaml_0_8_2_rect_mesh0.000.00
    blueprint_3d_yaml_0_8_2_rect_braid0.000.00
    blueprint_3d_yaml_0_8_2_rect_radial0.000.00
    blueprint_3d_yaml_0_8_2_struct_mesh0.000.00
    blueprint_3d_yaml_0_8_2_struct_braid0.000.00
    blueprint_3d_yaml_0_8_2_struct_radial0.000.00
    blueprint_3d_yaml_0_8_2_tets_mesh0.000.00
    blueprint_3d_yaml_0_8_2_tets_braid0.000.00
    blueprint_3d_yaml_0_8_2_tets_radial0.000.00
    blueprint_3d_yaml_0_8_2_hexs_mesh0.000.00
    blueprint_3d_yaml_0_8_2_hexs_braid0.000.00
    blueprint_3d_yaml_0_8_2_hexs_radial0.000.00
    blueprint_3d_yaml_0_8_2_points_implicit_mesh0.000.00
    blueprint_3d_yaml_0_8_2_points_implicit_braid0.000.00
    blueprint_3d_yaml_0_8_2_points_implicit_radial0.000.00
    Polygonal 2D Example HDF5 Mesh Files, 0.8.2
    blueprint_poly_2d_hdf5_0_8_2_mesh_topo_mesh0.000.00
    blueprint_poly_2d_hdf5_0_8_2_mesh_topo_level0.000.00
    Polygonal 2D Example YAML Mesh Files, 0.8.2
    blueprint_poly_2d_yaml_0_8_2_mesh_topo_mesh0.000.00
    blueprint_poly_2d_yaml_0_8_2_mesh_topo_level0.000.00
    Polygonal 3D Example HDF5 Mesh Files, 0.8.2
    blueprint_poly_3d_hdf5_0_8_2_mesh_topo_mesh0.000.00
    blueprint_poly_3d_hdf5_0_8_2_mesh_topo_level0.000.00
    Polygonal 3D Example YAML Mesh Files, 0.8.2
    blueprint_poly_3d_yaml_0_8_2_mesh_topo_mesh0.000.00
    blueprint_poly_3d_yaml_0_8_2_mesh_topo_level0.000.00
    Blueprint with Partition Map Style Index, 0.8.4
    bp_part_map_index_example0.000.00
    bp_part_map_index_single_file_example0.000.00
    bp_sparse_topos_example0.000.00
    bp_part_map_spiral_case_-10.000.00
    bp_part_map_spiral_case_00.000.00
    bp_part_map_spiral_case_10.000.00
    bp_part_map_spiral_case_20.000.00
    bp_part_map_spiral_case_30.000.00
    bp_part_map_spiral_case_40.000.00
    bp_part_map_spiral_case_50.000.00
    bp_part_map_spiral_case_60.000.00
    bp_part_map_spiral_case_70.000.00
    bp_part_map_spiral_case_80.000.00
    Blueprint Strided Structured, 0.8.4
    bp_strided_struct_2d_ele_vals0.000.00
    bp_strided_struct_2d_vert_vals0.000.00
    bp_strided_struct_3d_ele_vals0.000.00
    bp_strided_struct_3d_vert_vals0.000.00
    Blueprint RZ Examples, 0.8.6
    blueprint_rz_cyl_rectilinear.root_plot_2D0.000.00
    blueprint_rz_cyl_rectilinear.root_plot_revolved_to_3D1000000.0069.22
    blueprint_rz_cyl_uniform.root_plot_2D0.000.00
    blueprint_rz_cyl_uniform.root_plot_revolved_to_3D0.000.00
    blueprint_rz_cyl_structured.root_plot_2D0.000.00
    blueprint_rz_cyl_structured.root_plot_revolved_to_3D0.000.00
    blueprint_rz_cyl_unstructured.root_plot_2D0.000.00
    blueprint_rz_cyl_unstructured.root_plot_revolved_to_3D0.000.00
    Blueprint 1D Curve Examples, 0.8.6
    blueprint_1d_curve_vertex_assoc0.000.00
    blueprint_1d_curve_element_assoc0.000.00
    Blueprint Polytopal Mesh Missing Offsets, 0.8.7
    Polytopal_mesh_missing_offsets0.000.00
    Blueprint Unstructured Points not using the entire coordset, 0.8.7
    Unstructured_points_not_using_entire_coordset0.000.00
    Blueprint Uniform Coordset + Unstructured Topo, 0.9.1
    Uniform_coordset_and_unstructured_topo0.000.00
    Blueprint Mixed Topos, 0.9.2
    Mixed_topo_simple_2d0.000.00
    Mixed_topo_polygonal_2d0.000.00
    Mixed_topo_simple_3d0.000.00
    Mixed_braid_2d0.000.00
    Mixed_braid_3d0.000.00
    Mixed_tet_quad_2d0.000.00
    Mixed_offsets_2d0.000.00
    Blueprint Specsets, 0.9.2
    Misc_radial0.000.00
    Misc_specset0.000.00
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_blueprint_axom_klee.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_blueprint_axom_klee.html new file mode 100644 index 000000000..ca464036d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_blueprint_axom_klee.html @@ -0,0 +1,196 @@ + +Results for databases/blueprint_axom_klee.py + +

    Results of VisIt Regression Test - databases/blueprint_axom_klee

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    P0 Material
    blueprint_axom_klee_0_000.000.00
    P2 Material
    blueprint_axom_klee_1_000.000.00
    blueprint_axom_klee_1_010.000.00
    blueprint_axom_klee_1_020.000.00
    blueprint_axom_klee_1_030.000.00
    P5 Material
    blueprint_axom_klee_2_000.000.00
    blueprint_axom_klee_2_010.000.00
    blueprint_axom_klee_2_020.000.00
    blueprint_axom_klee_2_030.000.00
    matvf on HO materials
    blueprint_axom_klee_3_000.000.00
    blueprint_axom_klee_3_010.000.00
    blueprint_axom_klee_3_020.000.00
    blueprint_axom_klee_3_030.000.00
    blueprint_axom_klee_3_040.000.00
    blueprint_axom_klee_3_050.000.00
    blueprint_axom_klee_3_060.000.00
    Testing display_name
    blueprint_axom_klee_4_000.000.00
    blueprint_axom_klee_4_010.000.00
    blueprint_axom_klee_4_020.000.00
    blueprint_axom_klee_4_030.000.00
    blueprint_axom_klee_4_040.000.00
    blueprint_axom_klee_4_050.000.00
    Refine low order field
    blueprint_axom_klee_5_000 modifications totalling 0 lines
    blueprint_axom_klee_5_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_blueprint_axom_klee_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_blueprint_axom_klee_py.html new file mode 100644 index 000000000..40fdf6cfa --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_blueprint_axom_klee_py.html @@ -0,0 +1,213 @@ +databases/blueprint_axom_klee.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  blueprint_axom_klee.py 
    +#
    +#  Tests:      blueprint hdf5 files 
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed May 31 15:59:22 PDT 2023
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Jul 19 15:11:35 PDT 2023
    +#    I added some tests for an index file that has display_name entries in it.
    +#
    +#    Brad Whitlock, Tue Dec 19 17:29:53 PST 2023
    +#    I added a new test to make sure refining a low-order field happens by
    +#    making sure there is no message about adding extra 0's.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("Blueprint")
    +from os.path import join as pjoin
    +
    +def bj_test_helper_mats(rootName, prefix, sectionText, extraPlots = None):
    +    TestSection(sectionText)
    +    db = data_path(pjoin("axom_klee_test_data", rootName))
    +    OpenDatabase(db)
    +    AddPlot("FilledBoundary", "shaping_mesh_material")
    +    fb = FilledBoundaryAttributes(1)
    +    fb.SetMultiColor(0, (255,0,0,255))
    +    fb.SetMultiColor(1, (0,255,0,255))
    +    fb.SetMultiColor(2, (0,0,255,255))
    +    fb.SetMultiColor(3, (0,255,255,255))
    +    SetPlotOptions(fb)
    +    AddPlot("Mesh", "shaping_mesh")
    +    DrawPlots()
    +    v = GetView2D()
    +    v.windowCoords = (7.83773, 12.304, 8.64959, 13.1412)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    SetView2D(v)
    +    SetActivePlots((0,1))
    +
    +    Test(prefix + "_00")
    +
    +    # Increase the resolution.
    +    AddOperator("MultiresControl", 1)
    +    m = MultiresControlAttributes()
    +    m.resolution = 4
    +    m.maxResolution = 10
    +    SetOperatorOptions(m)
    +    DrawPlots()
    +    Test(prefix + "_01")
    +
    +    v2 = GetView2D()
    +    v2.windowCoords = (9.50025, 10.5163, 10.8769, 11.9097)
    +    v2.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    SetView2D(v2)
    +    Test(prefix + "_02")
    +
    +    SetActivePlots(0)
    +    DeleteActivePlots()
    +
    +    # Possibly make some extra plots
    +    if extraPlots is not None:
    +        extraPlots(prefix, v)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def bj_test_helper(datadir, prefix, sectionText):
    +    def pc_plots(prefix, v):
    +        # Look at one of the volume fractions. It should be refined
    +        AddPlot("Pseudocolor", "shaping_mesh/vol_frac_steel", 1, 1)
    +        DrawPlots()
    +        SetView2D(v)
    +        Test(prefix + "_03")
    +    bj_test_helper_mats(datadir, prefix, sectionText, pc_plots)
    +
    +def test0():
    +    TestSection("P0 Material")
    +    db = data_path(pjoin("axom_klee_test_data", "heroic_roses_o0", "shaping.root"))
    +    OpenDatabase(db)
    +
    +    AddPlot("FilledBoundary", "shaping_mesh_material")
    +    fb = FilledBoundaryAttributes(1)
    +    fb.SetMultiColor(0, (0,0,0,255))
    +    fb.SetMultiColor(1, (80,80,220,255))
    +    fb.SetMultiColor(2, (93,241,160,255))
    +    fb.SetMultiColor(3, (0,120,0,255))
    +    fb.SetMultiColor(4, (90,100,50,255))
    +    fb.SetMultiColor(5, (241,132,171,255))
    +    fb.SetMultiColor(6, (184,158,241,255))
    +    fb.SetMultiColor(7, (240,0,0,255))
    +    fb.SetMultiColor(8, (255,153,0,255))
    +    SetPlotOptions(fb)
    +    DrawPlots()
    +    ResetView()
    +    Test("blueprint_axom_klee_0_00")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test1():
    +    bj_test_helper("balls_and_jacks_q7o2/shaping.root", "blueprint_axom_klee_1", "P2 Material")
    +
    +def test2():
    +    bj_test_helper("balls_and_jacks_q7o5/shaping.root", "blueprint_axom_klee_2", "P5 Material")
    +
    +def test3():
    +    TestSection("matvf on HO materials")
    +    db = data_path(pjoin("axom_klee_test_data", "3mat_q12o12", "shaping.root"))
    +    OpenDatabase(db)
    +
    +    AddPlot("FilledBoundary", "shaping_mesh_material")
    +    AddOperator("MultiresControl")
    +    op = MultiresControlAttributes()
    +    op.resolution = 16
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    ResetView()
    +    Test("blueprint_axom_klee_3_00")
    +    DeleteAllPlots()
    +
    +    DefineScalarExpression("vf_inner", 'matvf(shaping_mesh_material, "inner")')
    +    DefineScalarExpression("vf_middle", 'matvf(shaping_mesh_material, "middle")')
    +    DefineScalarExpression("vf_outer", 'matvf(shaping_mesh_material, "outer")')
    +    AddPlot("Pseudocolor", "vf_inner")
    +    AddOperator("MultiresControl")
    +    op = MultiresControlAttributes()
    +    op.resolution = 3
    +    op.maxResolution = 20
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    Test("blueprint_axom_klee_3_01")
    +    op.resolution = 20
    +    SetOperatorOptions(op)
    +    Test("blueprint_axom_klee_3_02")
    +
    +    ChangeActivePlotsVar("vf_middle")
    +    op.resolution = 3
    +    SetOperatorOptions(op)
    +    Test("blueprint_axom_klee_3_03")
    +    op.resolution = 20
    +    SetOperatorOptions(op)
    +    Test("blueprint_axom_klee_3_04")
    +
    +    ChangeActivePlotsVar("vf_outer")
    +    op.resolution = 3
    +    SetOperatorOptions(op)
    +    Test("blueprint_axom_klee_3_05")
    +    op.resolution = 20
    +    SetOperatorOptions(op)
    +    Test("blueprint_axom_klee_3_06")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test4():
    +    def pc_plots(prefix, v):
    +        # Look at the volume fraction fields, whose names were changed
    +        # in the index using display_name.
    +        SetActivePlots(0)
    +        DeleteActivePlots()
    +        AddPlot("Pseudocolor", "volume_fractions/air", 1, 1)
    +        DrawPlots()
    +        ResetView()
    +        Test(prefix + "_03")
    +        ChangeActivePlotsVar("volume_fractions/rubber")
    +        Test(prefix + "_04")
    +        ChangeActivePlotsVar("volume_fractions/steel")
    +        Test(prefix + "_05")
    +    # Make sure the material still plots, even though its constituent volume
    +    # fraction arrays have been renamed in the index file using display_name.
    +    bj_test_helper_mats("balls_and_jacks_q7o2/shaping_mod.root", "blueprint_axom_klee_4", "Testing display_name", pc_plots)
    +
    +def test5():
    +    TestSection("Refine low order field")
    +    db = data_path(pjoin("axom_klee_test_data", "balls_and_jacks_q7o5", "shaping.root"))
    +    OpenDatabase(db)
    +
    +    # Plot a low-order field that would normally *not* refine with MultiresControl.
    +    AddPlot("Pseudocolor", "shaping_mesh/mesh_material_attribute")
    +    AddOperator("MultiresControl")
    +    m = MultiresControlAttributes()
    +    m.maxResolution = 10
    +    m.resolution = 2
    +    SetOperatorOptions(m)
    +    msg, severity = GetLastMessage(1)
    +    DrawPlots()
    +
    +    # Executing the plot would have issued a warning about VisIt having to add
    +    # 0's. Make sure that message no longer happens.
    +    msg, severity = GetLastMessage(1)
    +    if msg.find("Extra 0.\'s were added") != -1:
    +        txt = msg
    +    else:
    +        txt = "Padding the field was not necessary."
    +    TestText("blueprint_axom_klee_5_00", txt)
    +    Test("blueprint_axom_klee_5_01")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def main():
    +    test0()
    +    test1()
    +    test2()
    +    test3()
    +    test4()
    +    test5()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_blueprint_export.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_blueprint_export.html new file mode 100644 index 000000000..be49905ba --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_blueprint_export.html @@ -0,0 +1,1122 @@ + +Results for databases/blueprint_export.py + +

    Results of VisIt Regression Test - databases/blueprint_export

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    basic_multi_rect3d.silo_input0.000.00
    basic_multi_rect3d.silo_isosurface0.000.00
    basic_multi_rect3d.silo_default_exported0.000.00
    basic_multi_rect3d.silo_isosurface_exported0.000.00
    basic_multi_curv3d.silo_input0.000.00
    basic_multi_curv3d.silo_isosurface0.000.00
    basic_multi_curv3d.silo_default_exported0.000.00
    basic_multi_curv3d.silo_isosurface_exported0.000.00
    basic_multi_curv2d.silo_input0.000.00
    basic_multi_curv2d.silo_isosurface0.000.00
    basic_multi_curv2d.silo_default_exported0.000.00
    basic_multi_curv2d.silo_isosurface_exported0.000.00
    basic_multi_ucd3d.silo_input0.000.00
    basic_multi_ucd3d.silo_isosurface0.000.00
    basic_multi_ucd3d.silo_default_exported0.000.00
    basic_multi_ucd3d.silo_isosurface_exported0.000.00
    basic_multi_rect2d.silo_input0.000.00
    basic_multi_rect2d.silo_isosurface0.000.00
    basic_multi_rect2d.silo_default_exported0.000.00
    basic_multi_rect2d.silo_isosurface_exported0.000.00
    basic_multi_rect3d.silo_input_output_dir0.000.00
    basic_multi_rect3d.silo_isosurface_output_dir0.000.00
    basic_multi_rect3d.silo_default_exported_output_dir0.000.00
    basic_multi_rect3d.silo_isosurface_exported_output_dir0.000.00
    basic_multi_curv3d.silo_input_output_dir0.000.00
    basic_multi_curv3d.silo_isosurface_output_dir0.000.00
    basic_multi_curv3d.silo_default_exported_output_dir0.000.00
    basic_multi_curv3d.silo_isosurface_exported_output_dir0.000.00
    basic_multi_curv2d.silo_input_output_dir0.000.00
    basic_multi_curv2d.silo_isosurface_output_dir0.000.00
    basic_multi_curv2d.silo_default_exported_output_dir0.000.00
    basic_multi_curv2d.silo_isosurface_exported_output_dir0.000.00
    basic_multi_ucd3d.silo_input_output_dir0.000.00
    basic_multi_ucd3d.silo_isosurface_output_dir0.000.00
    basic_multi_ucd3d.silo_default_exported_output_dir0.000.00
    basic_multi_ucd3d.silo_isosurface_exported_output_dir0.000.00
    basic_multi_rect2d.silo_input_output_dir0.000.00
    basic_multi_rect2d.silo_isosurface_output_dir0.000.00
    basic_multi_rect2d.silo_default_exported_output_dir0.000.00
    basic_multi_rect2d.silo_isosurface_exported_output_dir0.000.00
    basic_multi_rect3d.silo_extra_options_input0.000.00
    BasicJSONOptions0.000.00
    BasicYAMLOptions0.000.00
    Blueprint partition
    multi_rect3d.silo0.000.00
    multi_rect3d.silo_partition1_0_0.000.00
    multi_rect3d.silo_partition1_1_0.000.00
    multi_rect3d.silo_partition4_0_0.000.00
    multi_rect3d.silo_partition4_1_0.000.00
    multi_rect3d.silo_partition19_0_0.000.00
    multi_rect3d.silo_partition19_1_0.000.00
    multi_rect3d.silo_partition45_0_0.000.00
    multi_rect3d.silo_partition45_1_0.000.00
    multi_curv3d.silo0.000.00
    multi_curv3d.silo_partition1_0_0.000.00
    multi_curv3d.silo_partition1_1_0.000.00
    multi_curv3d.silo_partition4_0_0.000.00
    multi_curv3d.silo_partition4_1_0.000.00
    multi_curv3d.silo_partition19_0_0.000.00
    multi_curv3d.silo_partition19_1_0.000.00
    multi_curv3d.silo_partition45_0_0.000.00
    multi_curv3d.silo_partition45_1_0.000.00
    multi_ucd3d.silo0.000.00
    multi_ucd3d.silo_partition1_0_0.000.00
    multi_ucd3d.silo_partition1_1_0.000.00
    multi_ucd3d.silo_partition4_0_0.000.00
    multi_ucd3d.silo_partition4_1_0.000.00
    multi_ucd3d.silo_partition19_0_0.000.00
    multi_ucd3d.silo_partition19_1_0.000.00
    multi_ucd3d.silo_partition45_0_0.000.00
    multi_ucd3d.silo_partition45_1_0.000.00
    multi_curv2d.silo0.000.00
    multi_curv2d.silo_partition1_0_0.000.00
    multi_curv2d.silo_partition1_1_0.000.00
    multi_curv2d.silo_partition4_0_0.000.00
    multi_curv2d.silo_partition4_1_0.000.00
    multi_curv2d.silo_partition7_0_0.000.00
    multi_curv2d.silo_partition7_1_0.000.00
    multi_curv2d.silo_partition13_0_0.000.00
    multi_curv2d.silo_partition13_1_0.000.00
    multi_curv2d.silo_partition19_0_0.000.00
    multi_curv2d.silo_partition19_1_0.000.00
    multi_rect2d.silo0.000.00
    multi_rect2d.silo_partition1_0_0.000.00
    multi_rect2d.silo_partition1_1_0.000.00
    multi_rect2d.silo_partition4_0_0.000.00
    multi_rect2d.silo_partition4_1_0.000.00
    multi_rect2d.silo_partition7_0_0.000.00
    multi_rect2d.silo_partition7_1_0.000.00
    multi_rect2d.silo_partition13_0_0.000.00
    multi_rect2d.silo_partition13_1_0.000.00
    multi_rect2d.silo_partition19_0_0.000.00
    multi_rect2d.silo_partition19_1_0.000.00
    multi_rect3d.silo_output_dir0.000.00
    multi_rect3d.silo_partition1_0_output_dir0.000.00
    multi_rect3d.silo_partition1_1_output_dir0.000.00
    multi_rect3d.silo_partition4_0_output_dir0.000.00
    multi_rect3d.silo_partition4_1_output_dir0.000.00
    multi_rect3d.silo_partition19_0_output_dir0.000.00
    multi_rect3d.silo_partition19_1_output_dir0.000.00
    multi_rect3d.silo_partition45_0_output_dir0.000.00
    multi_rect3d.silo_partition45_1_output_dir0.000.00
    multi_curv3d.silo_output_dir0.000.00
    multi_curv3d.silo_partition1_0_output_dir0.000.00
    multi_curv3d.silo_partition1_1_output_dir0.000.00
    multi_curv3d.silo_partition4_0_output_dir0.000.00
    multi_curv3d.silo_partition4_1_output_dir0.000.00
    multi_curv3d.silo_partition19_0_output_dir0.000.00
    multi_curv3d.silo_partition19_1_output_dir0.000.00
    multi_curv3d.silo_partition45_0_output_dir0.000.00
    multi_curv3d.silo_partition45_1_output_dir0.000.00
    multi_ucd3d.silo_output_dir0.000.00
    multi_ucd3d.silo_partition1_0_output_dir0.000.00
    multi_ucd3d.silo_partition1_1_output_dir0.000.00
    multi_ucd3d.silo_partition4_0_output_dir0.000.00
    multi_ucd3d.silo_partition4_1_output_dir0.000.00
    multi_ucd3d.silo_partition19_0_output_dir0.000.00
    multi_ucd3d.silo_partition19_1_output_dir0.000.00
    multi_ucd3d.silo_partition45_0_output_dir0.000.00
    multi_ucd3d.silo_partition45_1_output_dir0.000.00
    multi_curv2d.silo_output_dir0.000.00
    multi_curv2d.silo_partition1_0_output_dir0.000.00
    multi_curv2d.silo_partition1_1_output_dir0.000.00
    multi_curv2d.silo_partition4_0_output_dir0.000.00
    multi_curv2d.silo_partition4_1_output_dir0.000.00
    multi_curv2d.silo_partition7_0_output_dir0.000.00
    multi_curv2d.silo_partition7_1_output_dir0.000.00
    multi_curv2d.silo_partition13_0_output_dir0.000.00
    multi_curv2d.silo_partition13_1_output_dir0.000.00
    multi_curv2d.silo_partition19_0_output_dir0.000.00
    multi_curv2d.silo_partition19_1_output_dir0.000.00
    multi_rect2d.silo_output_dir0.000.00
    multi_rect2d.silo_partition1_0_output_dir0.000.00
    multi_rect2d.silo_partition1_1_output_dir0.000.00
    multi_rect2d.silo_partition4_0_output_dir0.000.00
    multi_rect2d.silo_partition4_1_output_dir0.000.00
    multi_rect2d.silo_partition7_0_output_dir0.000.00
    multi_rect2d.silo_partition7_1_output_dir0.000.00
    multi_rect2d.silo_partition13_0_output_dir0.000.00
    multi_rect2d.silo_partition13_1_output_dir0.000.00
    multi_rect2d.silo_partition19_0_output_dir0.000.00
    multi_rect2d.silo_partition19_1_output_dir0.000.00
    Extra options
    DefaultMesh0.000.00
    JSONOptions0.000.00
    YAMLOptions0.000.00
    OverrideOptions0.000.00
    Extra extra options
    DefaultMesh_extra_extra_options0.000.00
    JSONOptions_extra_extra_options0.000.00
    YAMLOptions_extra_extra_options0.000.00
    OverrideOptions_extra_extra_options0.000.00
    Blueprint flatten
    noise.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    noise.silo.csv-element_data.csv0 modifications totalling 0 lines
    multi_rect3d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    multi_rect3d.silo.csv-element_data.csv0 modifications totalling 0 lines
    structured_multi_rect3d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    structured_multi_rect3d.silo.csv-element_data.csv0 modifications totalling 0 lines
    unstructured_multi_rect3d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    unstructured_multi_rect3d.silo.csv-element_data.csv0 modifications totalling 0 lines
    multi_rect2d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    multi_rect2d.silo.csv-element_data.csv0 modifications totalling 0 lines
    structured_multi_rect2d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    structured_multi_rect2d.silo.csv-element_data.csv0 modifications totalling 0 lines
    ucd2d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    ucd2d.silo.csv-element_data.csv0 modifications totalling 0 lines
    noise.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    noise.silo.csv-element_data.csv0 modifications totalling 0 lines
    multi_rect3d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    multi_rect3d.silo.csv-element_data.csv0 modifications totalling 0 lines
    structured_multi_rect3d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    structured_multi_rect3d.silo.csv-element_data.csv0 modifications totalling 0 lines
    unstructured_multi_rect3d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    unstructured_multi_rect3d.silo.csv-element_data.csv0 modifications totalling 0 lines
    multi_rect2d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    multi_rect2d.silo.csv-element_data.csv0 modifications totalling 0 lines
    structured_multi_rect2d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    structured_multi_rect2d.silo.csv-element_data.csv0 modifications totalling 0 lines
    ucd2d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    ucd2d.silo.csv-element_data.csv0 modifications totalling 0 lines
    Mixed_topo_simple_2d_export_field_vals
     0 .eq. 0.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     1 .eq. 1.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     2 .eq. 2.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     3 .eq. 3.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     4 .eq. 4.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     5 .eq. 5.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     6 .eq. 6.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     7 .eq. 7.0 (prec=5) : True
    Mixed_topo_simple_2d_export
     "" .eq. "" : True
    Mixed_topo_simple_2d_export_field_vals
     0 .eq. 0.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     1 .eq. 1.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     2 .eq. 2.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     3 .eq. 3.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     4 .eq. 4.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     5 .eq. 5.0 (prec=5) : True
    Mixed_topo_simple_3d_export
     "" .eq. "" : True
    Mixed_topo_braid_2d_export
     "" .eq. "" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_blueprint_export_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_blueprint_export_py.html new file mode 100644 index 000000000..272044e34 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_blueprint_export_py.html @@ -0,0 +1,818 @@ +databases/blueprint_export.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial parallel
    +#  CLASSES: nightly
    +#
    +#  Test Case:  blueprint_export.py
    +#
    +#  Tests:      Tests blueprint export features "partition" and "flatten".
    +#
    +#  Programmer: Christopher Laganella
    +#  Date:       Tue Dec 14 12:35:16 EST 2021
    +#
    +#  Modifications:
    +#
    +#    Chris Laganella, Mon Feb 14 14:39:48 EST 2022
    +#    I added a test case for user provided JSON/YAML options
    +# 
    +#    Justin Privitera, Sat Jun 29 14:22:21 PDT 2024
    +#    Added tests to round-trip mixed element topologies.
    +# 
    +#    Justin Privitera, Tue Jul  9 10:47:29 PDT 2024
    +#    Added tests for setting the directory, fixed the cycle numbers, added tests
    +#    for using the new relay.io.blueprint.save_mesh() options, 
    +# ----------------------------------------------------------------------------
    +import time
    +import sys
    +import os
    +import conduit
    +
    +if not os.path.isdir(out_path("current","databases")):
    +    os.mkdir(out_path("current","databases"))
    +out_base = out_path("current","databases","blueprint_export")
    +if not os.path.isdir(out_base):
    +    os.mkdir(out_base)
    +
    +outdir_set = pjoin(TestEnv.params["run_dir"], "testdir")
    +if not os.path.isdir(outdir_set):
    +    os.mkdir(outdir_set)
    +
    +export_test_save_location = pjoin(outdir_set, "export_test_save_location")
    +if not os.path.isdir(export_test_save_location):
    +    os.mkdir(export_test_save_location)
    +
    +# Uncomment these functions to run the script through the regular CLI
    +# def Exit():
    +#     print("Exiting test...")
    +#     return
    +
    +# def RequiredDatabasePlugin(name):
    +#     print("This test requires database plugin " + name)
    +#     return
    +
    +# def TestSection(name):
    +#     print("---- " + name + " ----")
    +#     return
    +
    +# def Test(name):
    +#     s = SaveWindowAttributes()
    +#     s.fileName = name
    +#     SetSaveWindowAttributes(s)
    +#     SaveWindow()
    +#     return
    +
    +# def TestText(name):
    +#     print("Testing text file {}".format(name))
    +
    +# def silo_data_path(name):
    +#     retval = os.path.join("/mnt/data/il/VisIt/VisItClass/data", name)
    +#     # print(retval)
    +#     return retval
    +
    +def load_text(file_name):
    +    # print("Loading text from {}".format(os.path.abspath(file_name)), file=sys.stderr)
    +    with open(file_name, 'r') as f:
    +        return f.read()
    +
    +def set_view(case_name, view=None):
    +    if "2d" in case_name:
    +        ResetView()
    +    else:
    +        SetView3D(view)
    +
    +
    +def test_name(case, i):
    +    return case + "_" + str(i) + "_"
    +
    +# Export DB as bp data set
    +def export_mesh_bp(case_name, varname, varname2 = "", dirname="."):
    +    export_name = case_name
    +    e = ExportDBAttributes()
    +    e.db_type = "Blueprint"
    +    e.filename = export_name
    +    if len(varname2) > 0:
    +        e.variables = (varname, varname2)
    +    else:
    +        e.variables = (varname,)
    +    if dirname != ".":
    +        e.dirname = dirname
    +    ExportDatabase(e)
    +    time.sleep(1)
    +    return export_name
    +
    +# Export DB as csv, return the folder name
    +def create_csv_output(case_name, dirname="."):
    +    export_name = case_name
    +    e = ExportDBAttributes()
    +    e.db_type = "Blueprint"
    +    e.filename = export_name
    +    e.variables = ('mesh_coords', 'zc_mesh_coords')
    +    if dirname != ".":
    +        e.dirname = dirname
    +    opts = GetExportOptions("Blueprint")
    +    opts["Operation"] = "Flatten_CSV"
    +    ExportDatabase(e, opts)
    +    time.sleep(1)
    +    return export_name + ".csv"
    +
    +def test_csv_output(case_name, dirname="."):
    +    vert_file = os.path.join(dirname, case_name, "vertex_data.csv")
    +    elem_file = os.path.join(dirname, case_name, "element_data.csv")
    +    vert_baseline = case_name + "-" + "vertex_data.csv"
    +    elem_baseline = case_name + "-" + "element_data.csv"
    +    TestText(vert_baseline, load_text(vert_file))
    +    TestText(elem_baseline, load_text(elem_file))
    +
    +def define_mesh_expressions(mesh_name):
    +    DefineScalarExpression("nid", "nodeid({})".format(mesh_name))
    +    DefineScalarExpression("zid", "zoneid({})".format(mesh_name))
    +    DefineScalarExpression("mesh_coords", "coords({})".format(mesh_name))
    +    DefineScalarExpression("zc_mesh_coords", "recenter(mesh_coords, \"zonal\")")
    +    return ("nid", "zid", "mesh_coords", "zc_mesh_coords")
    +
    +# 's' for structured 'r' for rectilinear
    +def flatten_multi_2d_case(case, dirname="."):
    +    case_name = "multi_rect2d.silo"
    +    mesh_name = "mesh1"
    +    export_name = case_name
    +
    +    # Use multi_rect3d to create all cases
    +    OpenDatabase(silo_data_path(case_name))
    +    AddPlot("Mesh", mesh_name)
    +
    +    # Define some mesh based variables
    +    vars = define_mesh_expressions(mesh_name)
    +
    +    AddOperator("Resample")
    +    ra = ResampleAttributes()
    +    ra.samplesX = 5
    +    ra.samplesY = 4
    +    ra.is3D = 0
    +    ra.distributedResample = 1
    +    SetOperatorOptions(ra)
    +
    +    AddOperator("DeferExpression")
    +    dea = DeferExpressionAttributes()
    +    dea.exprs = vars
    +    SetOperatorOptions(dea)
    +
    +    if case == 's':
    +        AddOperator("Transform")
    +        ta = TransformAttributes()
    +        ta.doRotate = 1
    +        # ta.rotateType = "Deg"
    +        ta.rotateAmount = 0.00001
    +        SetOperatorOptions(ta)
    +        export_name = "structured_" + case_name
    +
    +    DrawPlots()
    +
    +    # Create csv file
    +    export_dir = create_csv_output(export_name, dirname)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(case_name))
    +
    +    # Test text
    +    test_csv_output(export_dir, dirname)
    +
    +def flatten_multi_2d_unstructured_case(dirname="."):
    +    case_name = "ucd2d.silo"
    +    mesh_name = "ucdmesh2d"
    +    export_name = case_name
    +
    +    # Use multi_curv2d and remove cells
    +    OpenDatabase(silo_data_path(case_name))
    +    AddPlot("Mesh", mesh_name)
    +
    +    # Define some mesh based variables
    +    vars = define_mesh_expressions(mesh_name)
    +
    +    AddOperator("Threshold")
    +    ta = ThresholdAttributes()
    +    ta.listedVarNames = ("zid",)
    +    ta.lowerBounds = (8,)
    +    ta.upperBounds = (11,)
    +    SetOperatorOptions(ta)
    +    export_name = case_name
    +
    +    AddOperator("DeferExpression")
    +    dea = DeferExpressionAttributes()
    +    dea.exprs = ("mesh_coords", "zc_mesh_coords")
    +    SetOperatorOptions(dea)
    +
    +    DrawPlots()
    +
    +    # Create csv file
    +    export_dir = create_csv_output(export_name, dirname)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(case_name))
    +
    +    # Test text
    +    test_csv_output(export_dir, dirname)
    +
    +# case = 'u' for unstructured, 'r' for rectilinear, 's' for structured
    +def flatten_multi_3d_case(case, dirname="."):
    +    case_name = "multi_rect3d.silo"
    +    mesh_name = "mesh1"
    +    export_name = case_name
    +    # Use multi_rect3d to create all cases
    +    OpenDatabase(silo_data_path(case_name))
    +    AddPlot("Mesh", mesh_name)
    +
    +    # Define some mesh based variables
    +    vars = define_mesh_expressions(mesh_name)
    +
    +    AddOperator("Resample")
    +    ra = ResampleAttributes()
    +    ra.samplesX = 5
    +    ra.samplesY = 4
    +    ra.samplesZ = 3
    +    ra.distributedResample = 1
    +    SetOperatorOptions(ra)
    +
    +    AddOperator("DeferExpression")
    +    dea = DeferExpressionAttributes()
    +    dea.exprs = vars
    +    SetOperatorOptions(dea)
    +
    +    if case == 'u':
    +        AddOperator("Threshold")
    +        ta = ThresholdAttributes()
    +        ta.listedVarNames = ("zid",)
    +        ta.lowerBounds = (1,)
    +        SetOperatorOptions(ta)
    +        export_name = "unstructured_" + case_name
    +    elif case == 's':
    +        AddOperator("Transform")
    +        ta = TransformAttributes()
    +        ta.doRotate = 1
    +        # ta.rotateType = "Deg"
    +        ta.rotateAmount = 0.00001
    +        SetOperatorOptions(ta)
    +        export_name = "structured_" + case_name
    +    # Do nothing for rectilinear
    +
    +    DrawPlots()
    +
    +    # Create csv file
    +    export_dir = create_csv_output(export_name, dirname)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(case_name))
    +
    +    # Test text
    +    test_csv_output(export_dir, dirname)
    +
    +def flatten_noise(dirname="."):
    +    case_name = "noise.silo"
    +    mesh_name = "Mesh"
    +    samples = (5, 4, 3)
    +
    +    OpenDatabase(silo_data_path(case_name))
    +    AddPlot("Mesh", mesh_name)
    +
    +    # Expose coordinates as variables
    +    vars = define_mesh_expressions(mesh_name)
    +
    +    # Resample
    +    AddOperator("Resample")
    +    ra = ResampleAttributes()
    +    ra.samplesX = samples[0]
    +    ra.samplesY = samples[1]
    +    ra.samplesZ = samples[2]
    +    SetOperatorOptions(ra)
    +
    +    AddOperator("DeferExpression")
    +    dea = DeferExpressionAttributes()
    +    dea.exprs = vars
    +    SetOperatorOptions(dea)
    +
    +    DrawPlots()
    +
    +    # Create the CSV output
    +    export_dir = create_csv_output(case_name, dirname)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(case_name))
    +
    +    # Test text
    +    test_csv_output(export_dir, dirname)
    +
    +def partition_test_case(case_name, targets, view=None, dirname="."):
    +    # Write the original dataset
    +    OpenDatabase(silo_data_path(case_name))
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    set_view(case_name, view)
    +    Test(case_name + ("_output_dir" if dirname != "." else ""))
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(case_name))
    +
    +    for target in targets:
    +        export_name = case_name + "_partition" + str(target)
    +        export_filename = export_name + ".cycle_000048.root"
    +
    +        # Plot the original dataset
    +        OpenDatabase(silo_data_path(case_name))
    +        AddPlot("Pseudocolor", "u")
    +        DrawPlots()
    +        set_view(case_name, view)
    +
    +        # Set the export database attributes.
    +        e = ExportDBAttributes()
    +        e.db_type = "Blueprint"
    +        e.filename = export_name
    +        e.variables = ("u")
    +        if dirname != ".":
    +            e.dirname = dirname
    +        opts = GetExportOptions("Blueprint")
    +        opts["Operation"] = "Partition"
    +        opts["Partition target number of domains"] = target
    +        print("About to partition " + case_name + " into "
    +            + str(target) + " blocks.")
    +        ExportDatabase(e, opts)
    +        time.sleep(1)
    +        DeleteAllPlots()
    +        CloseDatabase(silo_data_path(case_name))
    +
    +        OpenDatabase(export_filename)
    +        AddPlot("Pseudocolor", "mesh_topo/u")
    +        DrawPlots()
    +        set_view(case_name, view)
    +        Test(test_name(export_name, 0) + ("output_dir" if dirname != "." else ""))
    +        DeleteAllPlots()
    +
    +        AddPlot("Subset", "domains")
    +        DrawPlots()
    +        set_view(case_name, view)
    +        Test(test_name(export_name, 1) + ("output_dir" if dirname != "." else ""))
    +        DeleteAllPlots()
    +        CloseDatabase(export_filename)
    +
    +def partition_test_extra_options():
    +    dbname = "multi_rect2d.silo"
    +    TestSection("Extra options")
    +    OpenDatabase(silo_data_path(dbname))
    +    AddPlot("Subset", "domains(mesh1)")
    +    DrawPlots()
    +    Test("DefaultMesh")
    +
    +    # Test JSON
    +    e0 = ExportDBAttributes()
    +    e0.db_type = "Blueprint"
    +    e0.filename = "multi_rect2d_json_target_1"
    +    e0.variables = ("u")
    +    opts0 = GetExportOptions("Blueprint")
    +    opts0["Operation"] = "Partition"
    +    opts0["Flatten / Partition extra options"] = '{"target": 1}'
    +    ExportDatabase(e0, opts0)
    +    time.sleep(1)
    +
    +    # Test YAML
    +    e1 = ExportDBAttributes()
    +    e1.db_type = "Blueprint"
    +    e1.filename = "multi_rect2d_yaml_target_1"
    +    e1.variables = ("u")
    +    opts1 = GetExportOptions("Blueprint")
    +    opts1["Operation"] = "Partition"
    +    opts1["Flatten / Partition extra options"]  = 'target: 1'
    +    ExportDatabase(e1, opts1)
    +    time.sleep(1)
    +
    +    # Test that the JSON/YAML overrides the options field
    +    e2 = ExportDBAttributes()
    +    e2.db_type = "Blueprint"
    +    e2.filename = "multi_rect2d_override_target_1"
    +    e2.variables = ("u")
    +    opts2 = GetExportOptions("Blueprint")
    +    opts2["Operation"] = "Partition"
    +    opts2["Partition target number of domains"] = 13
    +    opts2["Flatten / Partition extra options"]  = 'target: 1'
    +    ExportDatabase(e2, opts2)
    +    time.sleep(1)
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(dbname))
    +
    +    OpenDatabase("multi_rect2d_json_target_1.cycle_000048.root")
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test("JSONOptions")
    +    DeleteAllPlots()
    +    CloseDatabase("multi_rect2d_json_target_1.cycle_000048.root")
    +
    +    OpenDatabase("multi_rect2d_yaml_target_1.cycle_000048.root")
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test("YAMLOptions")
    +    DeleteAllPlots()
    +    CloseDatabase("multi_rect2d_yaml_target_1.cycle_000048.root")
    +
    +    OpenDatabase("multi_rect2d_override_target_1.cycle_000048.root")
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test("OverrideOptions")
    +    DeleteAllPlots()
    +    CloseDatabase("multi_rect2d_override_target_1.cycle_000048.root")
    +
    +def partition_test_extra_extra_options():
    +    dbname = "multi_rect2d.silo"
    +    TestSection("Extra extra options")
    +    OpenDatabase(silo_data_path(dbname))
    +    AddPlot("Subset", "domains(mesh1)")
    +    DrawPlots()
    +    Test("DefaultMesh_extra_extra_options")
    +
    +    # Test JSON
    +    e0 = ExportDBAttributes()
    +    e0.db_type = "Blueprint"
    +    e0.filename = "multi_rect2d_json_target_1"
    +    e0.variables = ("u")
    +    opts0 = GetExportOptions("Blueprint")
    +    opts0["Operation"] = "Partition"
    +    opts0["Flatten / Partition extra options"] = '{"target": 1}'
    +    opts0["Blueprint Relay I/O extra options"] = """{
    +    \"file_style\": \"multi_file\",
    +    \"suffix\": \"none\",
    +    \"mesh_name\": \"mesh1\",
    +    \"number_of_files\": 2,
    +    \"truncate\": \"false\"
    +}"""
    +    # opts0["Output type"] = "JSON"
    +    ExportDatabase(e0, opts0)
    +    time.sleep(1)
    +
    +    # Test YAML
    +    e1 = ExportDBAttributes()
    +    e1.db_type = "Blueprint"
    +    e1.filename = "multi_rect2d_yaml_target_1"
    +    e1.variables = ("u")
    +    opts1 = GetExportOptions("Blueprint")
    +    opts1["Operation"] = "Partition"
    +    opts1["Flatten / Partition extra options"]  = 'target: 1'
    +    opts1["Blueprint Relay I/O extra options"] = """file_style: \"multi_file\"
    +suffix: \"none\"
    +mesh_name: \"mesh1\"
    +number_of_files: 2
    +truncate: \"false\""""
    +    # opts1["Output type"] = "YAML"
    +    ExportDatabase(e1, opts1)
    +    time.sleep(1)
    +
    +    # Test that the JSON/YAML overrides the options field
    +    e2 = ExportDBAttributes()
    +    e2.db_type = "Blueprint"
    +    e2.filename = "multi_rect2d_override_target_1"
    +    e2.variables = ("u")
    +    opts2 = GetExportOptions("Blueprint")
    +    opts2["Operation"] = "Partition"
    +    opts2["Partition target number of domains"] = 13
    +    opts2["Flatten / Partition extra options"]  = 'target: 1'
    +    ExportDatabase(e2, opts2)
    +    time.sleep(1)
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(dbname))
    +
    +    OpenDatabase("multi_rect2d_json_target_1.root")
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test("JSONOptions_extra_extra_options")
    +    DeleteAllPlots()
    +    CloseDatabase("multi_rect2d_json_target_1.root")
    +
    +    OpenDatabase("multi_rect2d_yaml_target_1.root")
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test("YAMLOptions_extra_extra_options")
    +    DeleteAllPlots()
    +    CloseDatabase("multi_rect2d_yaml_target_1.root")
    +
    +    OpenDatabase("multi_rect2d_override_target_1.root")
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test("OverrideOptions_extra_extra_options")
    +    DeleteAllPlots()
    +    CloseDatabase("multi_rect2d_override_target_1.root")
    +
    +def basic_test_case(case_name, varname = "d", dirname = "."):
    +    OpenDatabase(silo_data_path(case_name))
    +    AddPlot("Pseudocolor",varname)
    +    DrawPlots()
    +    Test("basic_" + case_name + "_input" + ("_output_dir" if dirname != "." else ""))
    +    # export default
    +    export_rfile_default = export_mesh_bp(case_name + "_default", varname, dirname=dirname) + ".cycle_000048.root"
    +    # export post isosurface
    +    AddOperator("Isosurface")
    +    DrawPlots()
    +    Test("basic_" + case_name + "_isosurface" + ("_output_dir" if dirname != "." else ""))
    +    export_rfile_isos = export_mesh_bp(case_name + "_isosurface", varname, dirname=dirname) + ".cycle_000048.root"
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(case_name))
    +
    +    OpenDatabase(export_rfile_default)
    +    # bp var names are qualified by topo
    +    AddPlot("Pseudocolor","mesh_topo/" + varname)
    +    DrawPlots()
    +    Test("basic_" + case_name + "_default_exported" + ("_output_dir" if dirname != "." else ""))
    +    DeleteAllPlots()
    +    CloseDatabase(export_rfile_default)
    +
    +    OpenDatabase(export_rfile_isos)
    +    # bp var names are qualified by topo
    +    AddPlot("Pseudocolor", "mesh_topo/" + varname)
    +    DrawPlots()
    +    Test("basic_" + case_name + "_isosurface_exported" + ("_output_dir" if dirname != "." else ""))
    +    DeleteAllPlots()
    +    CloseDatabase(export_rfile_isos)
    +
    +def basic_test_case_extra_options(case_name, varname = "d"):
    +    OpenDatabase(silo_data_path(case_name))
    +    AddPlot("Pseudocolor",varname)
    +    DrawPlots()
    +    Test("basic_" + case_name + "_extra_options_input")
    +
    +    # Test JSON
    +    e0 = ExportDBAttributes()
    +    e0.db_type = "Blueprint"
    +    e0.filename = case_name + "_json"
    +    e0.variables = (varname,)
    +    opts0 = GetExportOptions("Blueprint")
    +    opts0["Blueprint Relay I/O extra options"] = """{
    +    \"file_style\": \"multi_file\",
    +    \"suffix\": \"none\",
    +    \"mesh_name\": \"mesh1\",
    +    \"number_of_files\": 2,
    +    \"truncate\": \"false\"
    +}"""
    +    # opts0["Output type"] = "JSON"
    +    ExportDatabase(e0, opts0)
    +    time.sleep(1)
    +
    +    # Test YAML
    +    e1 = ExportDBAttributes()
    +    e1.db_type = "Blueprint"
    +    e1.filename = case_name + "_yaml"
    +    e1.variables = (varname,)
    +    opts1 = GetExportOptions("Blueprint")
    +    opts1["Blueprint Relay I/O extra options"] = """file_style: \"multi_file\"
    +suffix: \"none\"
    +mesh_name: \"mesh1\"
    +number_of_files: 2
    +truncate: \"false\""""
    +    # opts1["Output type"] = "YAML"
    +    ExportDatabase(e1, opts1)
    +    time.sleep(1)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(case_name))
    +
    +    OpenDatabase(case_name + "_json.root")
    +    AddPlot("Pseudocolor","mesh1_topo/" + varname)
    +    DrawPlots()
    +    Test("BasicJSONOptions")
    +    DeleteAllPlots()
    +    CloseDatabase(case_name + "_json.root")
    +
    +    OpenDatabase(case_name + "_yaml.root")
    +    AddPlot("Pseudocolor","mesh1_topo/" + varname)
    +    DrawPlots()
    +    Test("BasicYAMLOptions")
    +    DeleteAllPlots()
    +    CloseDatabase(case_name + "_yaml.root")
    +
    +def test_basic():
    +    basic_test_case("multi_rect3d.silo")
    +    basic_test_case("multi_curv3d.silo")
    +    basic_test_case("multi_curv2d.silo")
    +    basic_test_case("multi_ucd3d.silo")
    +    basic_test_case("multi_rect2d.silo")
    +
    +    basic_test_case("multi_rect3d.silo", dirname=export_test_save_location)
    +    basic_test_case("multi_curv3d.silo", dirname=export_test_save_location)
    +    basic_test_case("multi_curv2d.silo", dirname=export_test_save_location)
    +    basic_test_case("multi_ucd3d.silo", dirname=export_test_save_location)
    +    basic_test_case("multi_rect2d.silo", dirname=export_test_save_location)
    +
    +    basic_test_case_extra_options("multi_rect3d.silo")
    +
    +
    +def test_flatten():
    +    TestSection("Blueprint flatten")
    +
    +    flatten_noise()
    +    flatten_multi_3d_case('r')
    +    flatten_multi_3d_case('s')
    +    flatten_multi_3d_case('u')
    +
    +    flatten_multi_2d_case('r')
    +    flatten_multi_2d_case('s')
    +    flatten_multi_2d_unstructured_case()
    +
    +    # test setting the output directory
    +    flatten_noise(dirname=export_test_save_location)
    +    flatten_multi_3d_case('r', dirname=export_test_save_location)
    +    flatten_multi_3d_case('s', dirname=export_test_save_location)
    +    flatten_multi_3d_case('u', dirname=export_test_save_location)
    +
    +    flatten_multi_2d_case('r', dirname=export_test_save_location)
    +    flatten_multi_2d_case('s', dirname=export_test_save_location)
    +    flatten_multi_2d_unstructured_case(dirname=export_test_save_location)
    +
    +def test_partition():
    +    TestSection("Blueprint partition")
    +
    +    # Need a couple different views
    +    rect3d_view = GetView3D()
    +    rect3d_view.viewNormal = (-0.467474, 0.301847, 0.830877)
    +    rect3d_view.focus = (0.5, 0.5, 0.5)
    +    rect3d_view.viewUp = (0.140705, 0.953323, -0.267166)
    +    rect3d_view.viewAngle = 30
    +    rect3d_view.parallelScale = 0.866025
    +    rect3d_view.nearPlane = -1.73205
    +    rect3d_view.farPlane = 1.73205
    +    rect3d_view.imagePan = (-0.0154649, 0.027457)
    +    rect3d_view.imageZoom = 1.14276
    +    rect3d_view.perspective = 1
    +    rect3d_view.eyeAngle = 2
    +    rect3d_view.centerOfRotationSet = 0
    +    rect3d_view.centerOfRotation = (0.5, 0.5, 0.5)
    +    rect3d_view.axis3DScaleFlag = 0
    +    rect3d_view.axis3DScales = (1, 1, 1)
    +    rect3d_view.shear = (0, 0, 1)
    +    rect3d_view.windowValid = 1
    +
    +    curv3d_view = GetView3D()
    +    curv3d_view.viewNormal = (-0.254971, 0.246468, 0.93501)
    +    curv3d_view.focus = (0, 2.5, 15)
    +    curv3d_view.viewUp = (0.0453522, 0.968953, -0.243049)
    +    curv3d_view.viewAngle = 30
    +    curv3d_view.parallelScale = 16.0078
    +    curv3d_view.nearPlane = -32.0156
    +    curv3d_view.farPlane = 32.0156
    +    curv3d_view.imagePan = (0, 0)
    +    curv3d_view.imageZoom = 1.21
    +    curv3d_view.perspective = 1
    +    curv3d_view.eyeAngle = 2
    +    curv3d_view.centerOfRotationSet = 0
    +    curv3d_view.centerOfRotation = (0, 2.5, 15)
    +    curv3d_view.axis3DScaleFlag = 0
    +    curv3d_view.axis3DScales = (1, 1, 1)
    +    curv3d_view.shear = (0, 0, 1)
    +    curv3d_view.windowValid = 1
    +
    +    # Run 3D tests
    +    targets_3d = (1, 4, 19, 45)
    +    partition_test_case("multi_rect3d.silo",
    +        targets_3d, rect3d_view)
    +    partition_test_case("multi_curv3d.silo",
    +        targets_3d, curv3d_view)
    +    partition_test_case("multi_ucd3d.silo",
    +        targets_3d, curv3d_view)
    +
    +    # Run 2D tests
    +    targets_2d = (1, 4, 7, 13, 19)
    +    partition_test_case("multi_curv2d.silo",
    +        targets_2d)
    +    partition_test_case("multi_rect2d.silo",
    +        targets_2d)
    +
    +    # different directory tests:
    +    # Run 3D tests
    +    targets_3d = (1, 4, 19, 45)
    +    partition_test_case("multi_rect3d.silo",
    +        targets_3d, rect3d_view, dirname=export_test_save_location)
    +    partition_test_case("multi_curv3d.silo",
    +        targets_3d, curv3d_view, dirname=export_test_save_location)
    +    partition_test_case("multi_ucd3d.silo",
    +        targets_3d, curv3d_view, dirname=export_test_save_location)
    +
    +    # Run 2D tests
    +    targets_2d = (1, 4, 7, 13, 19)
    +    partition_test_case("multi_curv2d.silo",
    +        targets_2d, dirname=export_test_save_location)
    +    partition_test_case("multi_rect2d.silo",
    +        targets_2d, dirname=export_test_save_location)
    +
    +    # Test extra options
    +    partition_test_extra_options()
    +    partition_test_extra_extra_options()
    +
    +def roundtrip_simple_mixed_topo(mixed_topo, export_name, test_name):
    +    OpenDatabase(mixed_topo)
    +    AddPlot("Mesh", "mesh_topo")
    +    AddPlot("Pseudocolor", "mesh_topo/ele_id")
    +    DrawPlots()
    +    ResetView()
    +
    +    outfilename = export_mesh_bp(export_name, "mesh_topo/ele_id") + ".cycle_000000.root"
    +
    +    save_mesh = conduit.Node()
    +    conduit.relay.io.blueprint.load_mesh(save_mesh, mixed_topo)
    +
    +    load_mesh = conduit.Node()
    +    conduit.relay.io.blueprint.load_mesh(load_mesh, outfilename)
    +
    +    # 
    +    # make changes so the diff will pass
    +    # 
    +
    +    # grab the cycle and time which were added in
    +    save_mesh[0]["state"]["cycle"] = load_mesh[0]["state"]["cycle"]
    +    save_mesh[0]["state"]["time"] = load_mesh[0]["state"]["time"]
    +
    +    # remove the pts topo
    +    save_mesh[0]["topologies"].remove_child("pts")
    +
    +    # remove the pts_id field
    +    save_mesh[0]["fields"].remove_child("pts_id")
    +
    +    # check ele_id field
    +    save_mesh_element_ids = save_mesh[0]["fields"]["ele_id"]["values"]
    +    load_mesh_element_ids = load_mesh[0]["fields"]["ele_id"]["values"]
    +    for i in range(0, len(save_mesh_element_ids)):
    +        TestValueEQ("Mixed_topo_simple_2d_export_field_vals", save_mesh_element_ids[i], load_mesh_element_ids[i])
    +    save_mesh[0]["fields"]["ele_id"].remove_child("values")
    +    load_mesh[0]["fields"]["ele_id"].remove_child("values")
    +
    +    info = conduit.Node()
    +    diffval = load_mesh.diff(save_mesh, info)
    +    diff_str = info.to_yaml() if diffval else ""
    +    TestValueEQ(test_name, diff_str, "")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(mixed_topo)
    +
    +def roundtrip_braid_mixed(mixed_topo, export_name, test_name):
    +    OpenDatabase(mixed_topo)
    +    AddPlot("Mesh", "mixed_2d_mesh")
    +    AddPlot("Pseudocolor", "mixed_2d_mesh/braid")
    +    DrawPlots()
    +    ResetView()
    +
    +    outfilename = export_mesh_bp(export_name, "mixed_2d_mesh/braid", varname2="mixed_2d_mesh/vel") + ".cycle_000100.root"
    +
    +    opts = conduit.Node()
    +    opts["mesh_name"] = "mixed_2d"
    +    save_mesh = conduit.Node()
    +    conduit.relay.io.blueprint.load_mesh(save_mesh, mixed_topo, opts)
    +
    +    load_mesh = conduit.Node()
    +    conduit.relay.io.blueprint.load_mesh(load_mesh, outfilename)
    +
    +    # 
    +    # make changes so the diff will pass
    +    # 
    +
    +    # grab the domain_id which was added in
    +    save_mesh[0]["state"]["domain_id"] = load_mesh[0]["state"]["domain_id"]
    +    save_mesh[0]["state"].remove_child("cycle")
    +    save_mesh[0]["state"]["cycle"] = load_mesh[0]["state"]["cycle"]
    +
    +    # rename topo
    +    save_mesh[0]["topologies"].rename_child("mesh", "topo")
    +
    +    # rename fields
    +    save_mesh[0]["fields"].rename_child("braid", "mixed_2d_mesh_braid")
    +    save_mesh[0]["fields"].rename_child("vel", "mixed_2d_mesh_vel")
    +
    +    save_mesh[0]["fields"]["mixed_2d_mesh_braid"].remove_child("topology")
    +    save_mesh[0]["fields"]["mixed_2d_mesh_braid"]["topology"] = "topo"
    +    save_mesh[0]["fields"]["mixed_2d_mesh_vel"].remove_child("topology")
    +    save_mesh[0]["fields"]["mixed_2d_mesh_vel"]["topology"] = "topo"
    +
    +    save_mesh[0]["fields"]["mixed_2d_mesh_vel"]["values"].rename_child("u", "c0")
    +    save_mesh[0]["fields"]["mixed_2d_mesh_vel"]["values"].rename_child("v", "c1")
    +    save_mesh[0]["fields"]["mixed_2d_mesh_vel"]["values"]["c2"] = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
    +
    +    info = conduit.Node()
    +    diffval = load_mesh.diff(save_mesh, info)
    +    diff_str = info.to_yaml() if diffval else ""
    +    TestValueEQ(test_name, diff_str, "")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(mixed_topo)
    +
    +
    +RequiredDatabasePlugin("Blueprint")
    +test_basic()
    +# TODO add tests for json and yaml output when https://github.com/LLNL/conduit/issues/1291 is fixed
    +test_partition()
    +test_flatten()
    +
    +bp_mixed_topos_dir = "blueprint_v0.9.2_mixed_topo_data"
    +mixed_topo_2d = data_path(pjoin(bp_mixed_topos_dir, "mixed_mesh_simple_2d_hdf5.root"))
    +# we can't do the polygonal one because we are using generate_sides to get rid of the polygons,
    +# so round trip will fail.
    +# mixed_topo_2d_polygon = data_path(pjoin(bp_mixed_topos_dir, "mixed_mesh_polygonal_2d_hdf5.root"))
    +mixed_topo_3d = data_path(pjoin(bp_mixed_topos_dir, "mixed_mesh_simple_3d_hdf5.root"))
    +mixed_braid_2d = data_path(pjoin(bp_mixed_topos_dir, "braid_2d_examples_hdf5.root"))
    +# we can't do the polyhedral one because we are using generate_sides to get rid of the polyhedra,
    +# so round trip will fail.
    +# mixed_braid_3d = data_path(pjoin(bp_mixed_topos_dir, "braid_3d_examples_hdf5.root"))
    +
    +roundtrip_simple_mixed_topo(mixed_topo_2d, "mixed_topo_2d", "Mixed_topo_simple_2d_export")
    +roundtrip_simple_mixed_topo(mixed_topo_3d, "mixed_topo_3d", "Mixed_topo_simple_3d_export")
    +roundtrip_braid_mixed(mixed_braid_2d, "mixed_braid_2d", "Mixed_topo_braid_2d_export")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_blueprint_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_blueprint_py.html new file mode 100644 index 000000000..b0c367fbd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_blueprint_py.html @@ -0,0 +1,985 @@ +databases/blueprint.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  blueprint.py 
    +#
    +#  Tests:      blueprint hdf5 files 
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Thu Jun 16 10:56:37 PDT 2016
    +#
    +#  Modifications:
    +#
    +#    Alister Maguire, Fri Jul 17 16:29:50 PDT 2020
    +#    Added a test to ensure that variables containing parentheses
    +#    are able to be visualized.
    +#
    +#    Justin Privitera Fri 04 Mar 2022 05:57:49 PM PST
    +#    Added tests to test new implicit points topologies.
    +# 
    +#    Justin Privitera, Mon May 23 17:53:56 PDT 2022
    +#    Added polytopal tests.
    +# 
    +#    Justin Privitera, Mon May 23 17:53:56 PDT 2022
    +#    Added mfem lor tests.
    +#
    +#    Cyrus Harrison, Thu Dec 22 13:53:17 PST 2022
    +#    Added bp part map and initial strided structured tests/ 
    +#
    +#    Cyrus Harrison, Mon, Mar 20, 2023  3:34:04 PM 
    +#    Added rz test examples
    +# 
    +#    Justin Privitera, Wed Mar 22 16:09:52 PDT 2023
    +#    Added 1d curve test examples.
    +# 
    +#    Justin Privitera, Fri Mar 24 17:47:26 PDT 2023
    +#    Fixed view issue for mfem lor vector field tests.
    +#    Fixed an issue where test names had two consecutive underscores.
    +# 
    +#    Justin Privitera, Tue Sep 19 11:36:45 PDT 2023
    +#    Added a test for material numbers not in the range [0, N)
    +# 
    +#    Justin Privitera, Wed Oct 25 17:29:07 PDT 2023
    +#    Added a test for a polygonal mesh with no offsets.
    +# 
    +#    Justin Privitera, Thu Jan 18 14:53:32 PST 2024
    +#    Added test for unstructured points.
    +# 
    +#    Justin Privitera, Tue Mar 12 13:29:30 PDT 2024
    +#    Now that blueprint presents material ids alongside material names, we 
    +#    must use the ids and names to get specific materials.
    +# 
    +#    Justin Privitera, Fri Mar 15 15:56:13 PDT 2024
    +#    Revert prior change.
    +# 
    +#    Justin Privitera, Fri May  3 09:55:25 PDT 2024
    +#    Added test for Blueprint Uniform Coordset + Unstructured Topo.
    +# 
    +#    Justin Privitera, Sat Jun 29 14:22:21 PDT 2024
    +#    Added tests for mixed element topologies.
    +#
    +#    Brad Whitlock, Thu Jul 18 18:29:49 PDT 2024
    +#    Added mixed_tet_quad_2d test. Moved more tests into functions so it's
    +#    easier to select which ones to run while debugging.
    +# 
    +#    Justin Privitera, Fri Sep 27 12:09:46 PDT 2024
    +#    Added tests for specsets.
    +# 
    +#    Justin Privitera, Wed Oct 30 14:18:31 PDT 2024
    +#    Added tests that ensure periodic meshes fall back to legacy LOR when
    +#    new LOR is requested.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("Blueprint")
    +
    +from os.path import join as pjoin
    +
    +bp_test_dir = "blueprint_v0.3.1_test_data"
    +bp_venn_test_dir = "blueprint_v0.7.0_venn_test_data"
    +bp_mfem_test_dir = "blueprint_v0.3.1_mfem_test_data"
    +bp_0_8_2_test_dir = "blueprint_v0.8.2_braid_examples_test_data"
    +bp_poly_test_dir = "blueprint_v0.8.2_polytess_test_data"
    +bp_devilray_mfem_test_dir = "blueprint_v0.8.3_devilray_mfem_test_data"
    +bp_part_map_test_dir = "blueprint_v0.8.4_part_map_examples"
    +bp_struct_strided_test_dir = "blueprint_v0.8.4_strided_structured_examples"
    +bp_rz_test_dir = "blueprint_v0.8.6_rz_examples"
    +bp_1d_curve_test_dir = "blueprint_v0.8.6_1d_curve_examples"
    +bp_venn_modded_matnos_dir = "blueprint_v0.8.7_venn_modded_matnos_example"
    +bp_poly_no_offsets_dir = "blueprint_v0.8.7_polytopal_mesh_no_offsets"
    +bp_unstructured_points_dir = "blueprint_v0.8.7_unstructured_points"
    +bp_unstructured_uniform_dir = "blueprint_v0.9.1_uniform_coords_unstructured_topo"
    +bp_mixed_topos_dir = "blueprint_v0.9.2_mixed_topo_data"
    +bp_specset_dir = "blueprint_v0.9.2_specset_example"
    +
    +braid_2d_hdf5_root = data_path(pjoin(bp_test_dir,"braid_2d_examples.blueprint_root_hdf5"))
    +braid_3d_hdf5_root = data_path(pjoin(bp_test_dir,"braid_3d_examples.blueprint_root_hdf5"))
    +
    +braid_2d_json_root = data_path(pjoin(bp_test_dir,"braid_2d_examples_json.root"))
    +braid_3d_json_root = data_path(pjoin(bp_test_dir,"braid_3d_examples_json.root"))
    +
    +braid_2d_sidre_root = data_path(pjoin(bp_test_dir,"braid_2d_sidre_examples.root"))
    +braid_3d_sidre_root = data_path(pjoin(bp_test_dir,"braid_3d_sidre_examples.root"))
    +
    +braid_2d_0_8_2_hdf5_root = data_path(pjoin(bp_0_8_2_test_dir,"braid_2d_examples_hdf5.root"))
    +braid_3d_0_8_2_hdf5_root = data_path(pjoin(bp_0_8_2_test_dir,"braid_3d_examples_hdf5.root"))
    +braid_2d_0_8_2_yaml_root = data_path(pjoin(bp_0_8_2_test_dir,"braid_2d_examples_yaml.root"))
    +braid_3d_0_8_2_yaml_root = data_path(pjoin(bp_0_8_2_test_dir,"braid_3d_examples_yaml.root"))
    +
    +poly_2d_hdf5_root = data_path(pjoin(bp_poly_test_dir,"polytess_example_hdf5.root"))
    +poly_2d_yaml_root = data_path(pjoin(bp_poly_test_dir,"polytess_example_yaml.root"))
    +poly_3d_hdf5_root = data_path(pjoin(bp_poly_test_dir,"polytess_3d_example_hdf5.root"))
    +poly_3d_yaml_root = data_path(pjoin(bp_poly_test_dir,"polytess_3d_example_yaml.root"))
    +
    +uniform_root = data_path(pjoin(bp_test_dir,"uniform.cycle_001038.root"))
    +
    +unstructured_points = data_path(pjoin(bp_unstructured_points_dir,"unstructured_points.cycle_000100.root"))
    +
    +uniform_unstructured = data_path(pjoin(bp_unstructured_uniform_dir,"partition.root"))
    +
    +mixed_topo_2d = data_path(pjoin(bp_mixed_topos_dir, "mixed_mesh_simple_2d_hdf5.root"))
    +mixed_topo_2d_polygon = data_path(pjoin(bp_mixed_topos_dir, "mixed_mesh_polygonal_2d_hdf5.root"))
    +mixed_topo_3d = data_path(pjoin(bp_mixed_topos_dir, "mixed_mesh_simple_3d_hdf5.root"))
    +mixed_braid_2d = data_path(pjoin(bp_mixed_topos_dir, "braid_2d_examples_hdf5.root"))
    +mixed_braid_3d = data_path(pjoin(bp_mixed_topos_dir, "braid_3d_examples_hdf5.root"))
    +mixed_tet_quad_2d = data_path(pjoin(bp_mixed_topos_dir, "mixed_mesh_tri_quad_2d_hdf5.root"))
    +mixed_offsets_2d = data_path(pjoin(bp_mixed_topos_dir, "mixed_topo_with_offsets.root"))
    +
    +misc_specsets = data_path(pjoin(bp_specset_dir, "misc_specsets.cycle_000100.root"))
    +
    +#
    +# venn test data (multi material)
    +#
    +
    +venn_full_root  =  data_path(pjoin(bp_venn_test_dir,
    +                             "venn_small_example_full_hdf5.root"))
    +venn_s_by_e_root  =  data_path(pjoin(bp_venn_test_dir,
    +                               "venn_small_example_sparse_by_element_hdf5.root"))
    +
    +venn_s_by_m_root  =  data_path(pjoin(bp_venn_test_dir,
    +                               "venn_small_example_sparse_by_material_hdf5.root"))
    +
    +venn_full_yaml_root  =  data_path(pjoin(bp_venn_test_dir,
    +                             "venn_small_example_full_yaml.root"))
    +venn_s_by_e_yaml_root  =  data_path(pjoin(bp_venn_test_dir,
    +                               "venn_small_example_sparse_by_element_yaml.root"))
    +
    +venn_s_by_m_yaml_root  =  data_path(pjoin(bp_venn_test_dir,
    +                               "venn_small_example_sparse_by_material_yaml.root"))
    +
    +venn_modded_matnos_root = data_path(pjoin(bp_venn_modded_matnos_dir,
    +                                "venn_w_modded_matnos.root"))
    +
    +polytopal_mesh_no_offsets_root = data_path(pjoin(bp_poly_no_offsets_dir,
    +                                "polytopal_mesh_no_offsets.root"))
    +
    +bp_part_map_root = data_path(pjoin(bp_part_map_test_dir,
    +                             "tout_custom_part_map_index_hdf5.root"))
    +
    +bp_part_map_single_file_root = data_path(pjoin(bp_part_map_test_dir,
    +                                         "tout_single_file_part_map_index_hdf5.root"))
    +
    +bp_spiral_part_map_examples = []
    +for i in range(-1,9):
    +    bp_spiral_part_map_examples.append(data_path(pjoin(bp_part_map_test_dir,
    +                                       "tout_relay_spiral_mesh_save_nfiles_{0}.cycle_000000.root".format(i))))
    +
    +bp_sparse_topos_root = data_path(pjoin(bp_part_map_test_dir,
    +                                        "tout_relay_bp_mesh_sparse_topos_hdf5.root"))
    +
    +
    +bp_struct_strided_2d_root = data_path(pjoin(bp_struct_strided_test_dir,
    +                                      "strided_structured_2d_hdf5.root"));
    +
    +
    +bp_struct_strided_3d_root = data_path(pjoin(bp_struct_strided_test_dir,
    +                                      "strided_structured_3d_hdf5.root"));
    +
    +bp_rz_examples = []
    +bp_rz_examples.append(data_path(pjoin(bp_rz_test_dir,"blueprint_rz_cyl_rectilinear.root")))
    +bp_rz_examples.append(data_path(pjoin(bp_rz_test_dir,"blueprint_rz_cyl_uniform.root")))
    +bp_rz_examples.append(data_path(pjoin(bp_rz_test_dir,"blueprint_rz_cyl_structured.root")))
    +bp_rz_examples.append(data_path(pjoin(bp_rz_test_dir,"blueprint_rz_cyl_unstructured.root")))
    +
    +bp_1d_curve_examples = [data_path(pjoin(bp_1d_curve_test_dir,"curves_1d.root"))]
    +
    +braid_2d_meshes = ["points", "uniform", "rect", "struct", "tris","quads"]
    +braid_3d_meshes = ["points", "uniform", "rect", "struct", "tets","hexs"]
    +
    +braid_2d_meshes_0_8_2 = ["points", "uniform", "rect", "struct", "tris","quads", "points_implicit"]
    +braid_3d_meshes_0_8_2 = ["points", "uniform", "rect", "struct", "tets","hexs", "points_implicit"]
    +
    +class mfem_ex9_example:
    +    def __init__(self, name, dim):
    +        self.name = name
    +        self.dim = dim
    +
    +mfem_ex9_examples = []
    +mfem_ex9_examples.append(mfem_ex9_example("periodic_cube", "3d"))
    +mfem_ex9_examples.append(mfem_ex9_example("star_q3", "3d"))
    +mfem_ex9_examples.append(mfem_ex9_example("periodic_hexagon", "2d"))
    +mfem_ex9_protocols = ["json","conduit_bin","conduit_json","hdf5"]
    +
    +class devilray_mfem_example:
    +    def __init__(self, name, number, pseudo_fields, vector_fields, dim):
    +        self.name = name
    +        self.number = number
    +        self.pseudo_fields = pseudo_fields
    +        self.vector_fields = vector_fields
    +        self.dim = dim
    +
    +devilray_mfem_examples = []
    +devilray_mfem_examples.append(devilray_mfem_example("esher", "000000", ["mesh_nodes_magnitude"], [], "3d"))
    +devilray_mfem_examples.append(devilray_mfem_example("laghos_tg.cycle", "000350", ["mesh_nodes_magnitude", "density", "specific_internal_energy", "velocity_magnitude"], ["velocity"], "3d"))
    +devilray_mfem_examples.append(devilray_mfem_example("taylor_green.cycle", "001860", ["mesh_nodes_magnitude", "density", "specific_internal_energy", "velocity_magnitude"], ["velocity"], "3d"))
    +devilray_mfem_examples.append(devilray_mfem_example("tri_beam", "000000", ["mesh_nodes_magnitude"], ["mesh_nodes"], "2d"))
    +devilray_mfem_examples.append(devilray_mfem_example("warbly_cube", "000000", ["mesh_nodes_magnitude"], [], "3d"))
    +
    +def full_mesh_name(mesh_name):
    +    return mesh_name + "_mesh"
    +
    +def full_var_name(mesh_name,var_name):
    +    return full_mesh_name(mesh_name) + "/" + var_name
    +
    +def mfem_test_file(name, protocol):
    +    return data_path(pjoin(bp_mfem_test_dir,"bp_mfem_ex9_%s_%s_000000.root" % ( name, protocol)))
    +
    +def devilray_mfem_test_file(name, number):
    +    return data_path(pjoin(bp_devilray_mfem_test_dir, name + "_" + number + ".root"))
    +
    +def set_3d_view():
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.510614, 0.302695, 0.804767)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (-0.0150532, 0.932691, -0.360361)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 0.5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +def set_3d_poly_view():
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.50151, -0.632781, 0.589979)
    +    v.focus = (-2.46025e-13, 6.43929e-14, 4.5)
    +    v.viewUp = (0.364523, 0.463898, 0.807416)
    +    v.viewAngle = 30
    +    v.parallelScale = 7.93494
    +    v.nearPlane = -15.8699
    +    v.farPlane = 15.8699
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (-2.46025e-13, 6.43929e-14, 4.5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +
    +def set_test_view(tag_name):
    +    if "3d" in tag_name:
    +        if "poly" in tag_name:
    +            set_3d_poly_view()
    +        else:
    +            set_3d_view()
    +    else:
    +        ResetView()
    +
    +def test(mesh_name,tag_name):
    +    #
    +    AddPlot("Mesh","%s" % full_mesh_name(mesh_name))
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_" +  mesh_name + "_mesh")
    +    DeleteAllPlots()
    +    ResetView()
    +    #
    +    AddPlot("Pseudocolor", full_var_name(mesh_name,"braid"))
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_" +  mesh_name + "_braid")
    +    DeleteAllPlots()
    +    ResetView()
    +    #
    +    AddPlot("Pseudocolor", full_var_name(mesh_name,"radial"))
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_" +  mesh_name + "_radial")
    +    DeleteAllPlots()
    +    ResetView()
    +
    +def test_poly(tag_name):
    +    #
    +    AddPlot("Mesh", "mesh_topo")
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_mesh_topo_mesh")
    +    DeleteAllPlots()
    +    ResetView()
    +    #
    +    AddPlot("Pseudocolor", "mesh_topo/level")
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_mesh_topo_level")
    +    DeleteAllPlots()
    +    ResetView()
    +
    +def test_mfem(tag_name, example_name, protocol):
    +    readOptions = GetDefaultFileOpenOptions("Blueprint")
    +    readOptions["MFEM LOR Setting"] = "Legacy LOR"
    +    SetDefaultFileOpenOptions("Blueprint", readOptions)
    +
    +    dbfile = mfem_test_file(example_name,protocol)
    +    OpenDatabase(dbfile)
    +    #
    +    AddPlot("Pseudocolor", "mesh_main/solution")
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_" +  example_name + "_" + protocol + "_sol")
    +    #
    +    DeleteAllPlots()
    +    ResetView()
    +    AddPlot("Pseudocolor", "mesh_main/element_coloring")
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_" +  example_name + "_" + protocol + "_ele_coloring")
    +    #
    +    DeleteAllPlots()
    +    ResetView()
    +    AddPlot("Pseudocolor", "mesh_main/element_attribute")
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_" +  example_name + "_" + protocol + "_ele_att")
    +    #
    +    DeleteAllPlots()
    +    ResetView()
    +
    +    CloseDatabase(dbfile)
    +
    +    # reset read options to default
    +    readOptions["MFEM LOR Setting"] = "MFEM LOR"
    +    SetDefaultFileOpenOptions("Blueprint", readOptions)
    +
    +    # check periodic results fall back to old LOR
    +    if "periodic" in example_name:
    +        dbfile = mfem_test_file(example_name,protocol)
    +        OpenDatabase(dbfile)
    +        #
    +        AddPlot("Pseudocolor", "mesh_main/solution")
    +        set_test_view(tag_name)
    +        DrawPlots()
    +        Test(tag_name + "_" +  example_name + "_" + protocol + "_fall_back_to_old_LOR_sol")
    +        #
    +        DeleteAllPlots()
    +        ResetView()
    +        AddPlot("Pseudocolor", "mesh_main/element_coloring")
    +        set_test_view(tag_name)
    +        DrawPlots()
    +        Test(tag_name + "_" +  example_name + "_" + protocol + "_fall_back_to_old_LOR_ele_coloring")
    +        #
    +        DeleteAllPlots()
    +        ResetView()
    +        AddPlot("Pseudocolor", "mesh_main/element_attribute")
    +        set_test_view(tag_name)
    +        DrawPlots()
    +        Test(tag_name + "_" +  example_name + "_" + protocol + "_fall_back_to_old_LOR_ele_att")
    +        #
    +        DeleteAllPlots()
    +        ResetView()
    +
    +        CloseDatabase(dbfile)
    +
    +def test_mfem_lor_mesh(tag_name, example_name, protocol, devilray = False, number = "000000"):
    +    dbfile = ""
    +    if (devilray):
    +        dbfile = devilray_mfem_test_file(example_name, number)
    +    else:
    +        dbfile = mfem_test_file(example_name, protocol)
    +
    +    # get default options
    +    readOptions = GetDefaultFileOpenOptions("Blueprint")
    +    readOptions["MFEM LOR Setting"] = "MFEM LOR"
    +    SetDefaultFileOpenOptions("Blueprint", readOptions)
    +    OpenDatabase(dbfile)
    +
    +    # we want to test a picture of a wireframe
    +    # new LOR should only have the outer edge
    +    AddPlot("Subset", "mesh_main")
    +    SubsetAtts = SubsetAttributes()
    +    SubsetAtts.wireframe = 1
    +    SetPlotOptions(SubsetAtts)
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_" +  example_name + ("_" + protocol if not devilray else "") + "_lor")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(dbfile)
    +
    +    ##############################
    +
    +    # examine legacy
    +    readOptions = GetDefaultFileOpenOptions("Blueprint")
    +    readOptions["MFEM LOR Setting"] = "Legacy LOR"
    +    SetDefaultFileOpenOptions("Blueprint", readOptions)
    +    OpenDatabase(dbfile)
    +
    +    # old LOR leaves a busy wireframe
    +    AddPlot("Subset", "mesh_main")
    +    SubsetAtts = SubsetAttributes()
    +    SubsetAtts.wireframe = 1
    +    SetPlotOptions(SubsetAtts)
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_" +  example_name + ("_" + protocol if not devilray else "") + "_legacy_lor")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(dbfile)
    +
    +    # restore default
    +    readOptions = GetDefaultFileOpenOptions("Blueprint")
    +    readOptions["MFEM LOR Setting"] = "MFEM LOR"
    +    SetDefaultFileOpenOptions("Blueprint", readOptions)
    +
    +def test_mfem_lor_field(tag_name, name, number, pseudocolor_fields, vector_fields):
    +    readOptions = GetDefaultFileOpenOptions("Blueprint")
    +    readOptions["MFEM LOR Setting"] = "MFEM LOR"
    +    SetDefaultFileOpenOptions("Blueprint", readOptions)
    +    dbfile = devilray_mfem_test_file(name, number)
    +    OpenDatabase(dbfile)
    +
    +    for field in pseudocolor_fields:
    +        AddPlot("Pseudocolor", "mesh_main/" + field, 1, 1)
    +        AddOperator("MultiresControl", 1)
    +        SetActivePlots(0)
    +        MultiresControlAtts = MultiresControlAttributes()
    +        MultiresControlAtts.resolution = 3
    +        SetOperatorOptions(MultiresControlAtts, 0, 1)
    +        set_test_view(tag_name)
    +        DrawPlots()
    +        Test(tag_name + "_" + name + "_pseudocolor_" + field + "_lor")
    +        DeleteAllPlots()
    +        ResetView()
    +
    +    for field in vector_fields:
    +        AddPlot("Vector", "mesh_main/" + field, 1, 1)
    +        AddOperator("MultiresControl", 1)
    +        SetActivePlots(0)
    +        MultiresControlAtts = MultiresControlAttributes()
    +        MultiresControlAtts.resolution = 3
    +        SetOperatorOptions(MultiresControlAtts, 0, 1)
    +        set_test_view(tag_name)
    +        DrawPlots()
    +        Test(tag_name + "_" + name + "_vector_" + field + "_lor")
    +        DeleteAllPlots()
    +        ResetView()
    +
    +    CloseDatabase(dbfile)
    +
    +def test_venn(tag_name, venn_db_file):
    +    TestSection("Blueprint Matset Example Tests: {0} ".format(tag_name))
    +    OpenDatabase(venn_db_file)
    +    AddPlot("Pseudocolor", "mesh_topo/mat_check")
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_mat_check")
    +    # value check
    +    Query("minmax")
    +    res = GetQueryOutputObject()
    +    print(res)
    +    # We expect:
    +    #int(res["max"]) == 4320
    +    #int(res["min"]) == 1
    +    TestValueEQ("testeq_t_mat_check_max",int(res["max"]),4320)
    +    TestValueEQ("testeq_mat_check_min",int(res["min"]),1)
    +    DeleteAllPlots()
    +    ResetView()
    +
    +
    +    TestSection("Blueprint Matset Example Tests: {0} Matvf Exprs".format(tag_name))
    +
    +    # check all volume fractions
    +    vf_exprs = {"vf_bg":'matvf(mesh_topo_matset,"background")',
    +                "vf_c_a":'matvf(mesh_topo_matset,"circle_a")',
    +                "vf_c_b":'matvf(mesh_topo_matset,"circle_b")',
    +                "vf_c_c":'matvf(mesh_topo_matset,"circle_c")'}
    +
    +    for ename,edef in vf_exprs.items():
    +        DefineScalarExpression(ename,edef);
    +        AddPlot("Pseudocolor", ename)
    +        set_test_view(tag_name)
    +        DrawPlots()
    +        Test(tag_name + "_" + ename)
    +        # value check
    +        Query("minmax")
    +        res = GetQueryOutputObject()
    +        print(res)
    +        # We expect:
    +        #res["max"] == 1.0
    +        #res["min"] == 0.0
    +        TestValueEQ("testeq_" + ename + "_max",res["max"],1.0)
    +        TestValueEQ("testeq_" + ename + "_min",res["min"],0.0)
    +        DeleteAllPlots()
    +        ResetView()
    +
    +    TestSection("Blueprint Matset Example Tests: {0} Val4mat Exprs".format(tag_name))
    +
    +    # check all volume fractions
    +    v4m_exprs = {"v4m_bg":'val4mat(<mesh_topo/mat_check>,"background")',
    +                 "v4m_c_a":'val4mat(<mesh_topo/mat_check>,"circle_a")',
    +                 "v4m_c_b":'val4mat(<mesh_topo/mat_check>,"circle_b")',
    +                 "v4m_c_c":'val4mat(<mesh_topo/mat_check>,"circle_c")'}
    +
    +    v4m_test_vals = {"v4m_bg":     1,
    +                     "v4m_c_a":   20,
    +                     "v4m_c_b":  300,
    +                     "v4m_c_c": 4000}
    +
    +    for ename,edef in v4m_exprs.items():
    +        DefineScalarExpression(ename,edef);
    +        AddPlot("Pseudocolor", ename)
    +        set_test_view(tag_name)
    +        DrawPlots()
    +        Test(tag_name + "_" + ename)
    +        # value check
    +        Query("minmax")
    +        # We expect:
    +        res = GetQueryOutputObject()
    +        print(res)
    +        #int(res["max"]) == v4m_test_vals[ename]
    +        #int(res["min"]) == 0
    +        TestValueEQ("testeq_" + ename + "_max",int(res["max"]),v4m_test_vals[ename])
    +        TestValueEQ("testeq_" + ename + "_min",int(res["min"]),0)
    +        DeleteAllPlots()
    +        ResetView()
    +
    +
    +    CloseDatabase(venn_db_file)
    +
    +def test_rz_example(tag_name, rz_db_file):
    +    OpenDatabase(rz_db_file)
    +    AddPlot("Pseudocolor", "mesh_topo/cyl")
    +    AddPlot("Mesh", "mesh_topo")
    +    DrawPlots()
    +    ResetView()
    +    Test(tag_name + "_plot_2D")
    +    DeleteAllPlots()
    +    ResetView()
    +    # now revolve
    +    AddPlot("Pseudocolor", "mesh_topo/cyl")
    +    AddOperator("Revolve")
    +    DrawPlots()
    +    ResetView()
    +    Test(tag_name + "_plot_revolved_to_3D")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(rz_db_file)
    +
    +
    +def test_paren_vars():
    +    TestSection("Variables With Parens")
    +
    +    #
    +    # Testing bugfix for issue #4882.
    +    #
    +    OpenDatabase(uniform_root)
    +    AddPlot("Pseudocolor", "mesh_topo/rho.Y_lp_CH2O_rp_")
    +    set_test_view("3d")
    +    DrawPlots()
    +    Test("paren_vars_00")
    +
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(uniform_root)
    +
    +def test_blueprint_json_hdf5():
    +    TestSection("2D Example JSON Mesh Files")
    +    OpenDatabase(braid_2d_json_root)
    +    for mesh_name in braid_2d_meshes:
    +        test(mesh_name,"blueprint_2d_json")
    +    CloseDatabase(braid_2d_json_root)
    +
    +    TestSection("2D Example HDF5 Mesh Files")
    +    OpenDatabase(braid_2d_hdf5_root)
    +    for mesh_name in braid_2d_meshes:
    +        test(mesh_name,"blueprint_2d_hdf5")
    +    CloseDatabase(braid_2d_hdf5_root)
    +
    +    TestSection("2D Example Sidre HDF5 Mesh Files")
    +    OpenDatabase(braid_2d_sidre_root)
    +    for mesh_name in braid_2d_meshes:
    +        test(mesh_name,"blueprint_2d_sidre_hdf5")
    +    CloseDatabase(braid_2d_sidre_root)
    +
    +    TestSection("3D Example JSON Mesh Files")
    +    OpenDatabase(braid_3d_json_root)
    +    for mesh_name in braid_3d_meshes:
    +        test(mesh_name,"blueprint_3d_json")
    +    CloseDatabase(braid_3d_json_root)
    +
    +    TestSection("3D Example HDF5 Mesh Files")
    +    OpenDatabase(braid_3d_hdf5_root)
    +    for mesh_name in braid_3d_meshes:
    +        test(mesh_name,"blueprint_3d_hdf5")
    +    CloseDatabase(braid_3d_hdf5_root)
    +
    +    TestSection("3D Example Sidre HDF5 Mesh Files")
    +    OpenDatabase(braid_3d_sidre_root)
    +    for mesh_name in braid_3d_meshes:
    +        test(mesh_name,"blueprint_3d_sidre_hdf5")
    +    CloseDatabase(braid_3d_sidre_root)
    +
    +def test_blueprint_MFEM():
    +    TestSection("MFEM Blueprint Example Data Tests")
    +    for example in mfem_ex9_examples:
    +        for protocol in mfem_ex9_protocols:
    +            test_mfem("blueprint_mfem_" + example.dim, example.name, protocol)
    +
    +    TestSection("MFEM LOR Mesh Blueprint Tests")
    +    for example in mfem_ex9_examples:
    +        for protocol in mfem_ex9_protocols:
    +            test_mfem_lor_mesh("blueprint_mfem_" + example.dim, example.name, protocol)
    +    for example in devilray_mfem_examples:
    +        test_mfem_lor_mesh("blueprint_mfem_" + example.dim, example.name, "", devilray = True, number = example.number)
    +
    +    TestSection("MFEM LOR Field Blueprint Tests")
    +    for example in devilray_mfem_examples:
    +        test_mfem_lor_field("blueprint_mfem_" + example.dim, example.name, example.number, example.pseudo_fields, example.vector_fields)
    +
    +def test_blueprint_expressions():
    +    TestSection("Blueprint Expressions")
    +    OpenDatabase(braid_2d_json_root)
    +    AddPlot("Pseudocolor", "uniform_mesh/scalar_expr")
    +    AddPlot("Vector", "uniform_mesh/vector_expr")
    +    DrawPlots()
    +    set_test_view("2d")
    +    Test("blueprint_expressions")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(braid_2d_json_root)
    +
    +    test_paren_vars()
    +
    +def test_blueprint_venn():
    +    test_venn("venn_small_full", venn_full_root)
    +    test_venn("venn_small_sparse_by_element", venn_s_by_e_root)
    +    test_venn("venn_small_sparse_by_material", venn_s_by_m_root)
    +
    +    test_venn("venn_small_full_yaml", venn_full_yaml_root)
    +    test_venn("venn_small_sparse_by_element_yaml", venn_s_by_e_yaml_root)
    +    test_venn("venn_small_sparse_by_material_yaml", venn_s_by_m_yaml_root)
    +
    +    TestSection("Venn With Modded Material Numbers, 0.8.7")
    +    OpenDatabase(venn_modded_matnos_root)
    +    AddPlot("FilledBoundary", "mesh_topo_matset")
    +    DrawPlots()
    +    ResetView()
    +    Test("Venn_with_modded_matnos")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(venn_modded_matnos_root)
    +
    +def test_blueprint_0_8_2():
    +    TestSection("2D Example HDF5 Mesh Files, 0.8.2")
    +    OpenDatabase(braid_2d_0_8_2_hdf5_root)
    +    for mesh_name in braid_2d_meshes_0_8_2:
    +        test(mesh_name,"blueprint_2d_hdf5_0_8_2")
    +    CloseDatabase(braid_2d_0_8_2_hdf5_root)
    +
    +    TestSection("2D Example YAML Mesh Files, 0.8.2")
    +    OpenDatabase(braid_2d_0_8_2_yaml_root)
    +    for mesh_name in braid_2d_meshes_0_8_2:
    +        test(mesh_name,"blueprint_2d_yaml_0_8_2")
    +    CloseDatabase(braid_2d_0_8_2_yaml_root)
    +
    +    TestSection("3D Example HDF5 Mesh Files, 0.8.2")
    +    OpenDatabase(braid_3d_0_8_2_hdf5_root)
    +    for mesh_name in braid_3d_meshes_0_8_2:
    +        test(mesh_name,"blueprint_3d_hdf5_0_8_2")
    +    CloseDatabase(braid_3d_0_8_2_hdf5_root)
    +
    +    TestSection("3D Example YAML Mesh Files, 0.8.2")
    +    OpenDatabase(braid_3d_0_8_2_yaml_root)
    +    for mesh_name in braid_3d_meshes_0_8_2:
    +        test(mesh_name,"blueprint_3d_yaml_0_8_2")
    +    CloseDatabase(braid_3d_0_8_2_yaml_root)
    +
    +    # test polygonal mesh
    +    TestSection("Polygonal 2D Example HDF5 Mesh Files, 0.8.2")
    +    OpenDatabase(poly_2d_hdf5_root)
    +    test_poly("blueprint_poly_2d_hdf5_0_8_2")
    +    CloseDatabase(poly_2d_hdf5_root)
    +
    +    TestSection("Polygonal 2D Example YAML Mesh Files, 0.8.2")
    +    OpenDatabase(poly_2d_yaml_root)
    +    test_poly("blueprint_poly_2d_yaml_0_8_2")
    +    CloseDatabase(poly_2d_yaml_root)
    +
    +    # test 3d polygonal mesh
    +    TestSection("Polygonal 3D Example HDF5 Mesh Files, 0.8.2")
    +    OpenDatabase(poly_3d_hdf5_root)
    +    test_poly("blueprint_poly_3d_hdf5_0_8_2")
    +    CloseDatabase(poly_3d_hdf5_root)
    +
    +    TestSection("Polygonal 3D Example YAML Mesh Files, 0.8.2")
    +    OpenDatabase(poly_3d_yaml_root)
    +    test_poly("blueprint_poly_3d_yaml_0_8_2")
    +    CloseDatabase(poly_3d_yaml_root)
    +
    +def test_blueprint_0_8_4():
    +    TestSection("Blueprint with Partition Map Style Index, 0.8.4")
    +    OpenDatabase(bp_part_map_root)
    +    AddPlot("Subset","domains")
    +    DrawPlots()
    +    Test("bp_part_map_index_example")
    +    DeleteAllPlots()
    +    CloseDatabase(bp_part_map_root)
    +    # single file test case
    +    OpenDatabase(bp_part_map_single_file_root)
    +    AddPlot("Pseudocolor","mesh_mesh/braid")
    +    DrawPlots()
    +    Test("bp_part_map_index_single_file_example")
    +    DeleteAllPlots()
    +    CloseDatabase(bp_part_map_single_file_root)
    +    # sparse topos case
    +    # single file test case
    +    OpenDatabase(bp_sparse_topos_root)
    +    AddPlot("Pseudocolor","mesh_topo/topo_field")
    +    AddPlot("Pseudocolor","mesh_pts_topo/pts_field")
    +    # change plot adds so we can see the points
    +    pc_atts = PseudocolorAttributes()
    +    pc_atts.pointSize = 1
    +    pc_atts.pointType = pc_atts.Sphere
    +    SetPlotOptions(pc_atts)
    +    DrawPlots()
    +    Test("bp_sparse_topos_example")
    +    DeleteAllPlots()
    +    CloseDatabase(bp_sparse_topos_root)
    +
    +    # other spiral test cases, which have both index styles
    +    for i, root_file in enumerate(bp_spiral_part_map_examples):
    +        OpenDatabase(root_file)
    +        AddPlot("Subset","domains")
    +        DrawPlots()
    +        # spiral cases are labeled -1 to 8
    +        case_name = "bp_part_map_spiral_case_{0}".format(i-1)
    +        Test(case_name)
    +        DeleteAllPlots()
    +        CloseDatabase(root_file)
    +
    +    TestSection("Blueprint Strided Structured, 0.8.4")
    +    # 2d
    +    OpenDatabase(bp_struct_strided_2d_root)
    +    # ele vals
    +    AddPlot("Pseudocolor", "mesh_mesh/ele_vals")
    +    AddPlot("Pseudocolor", "mesh_orig_pts/orig_ele_vals")
    +    pc_atts = PseudocolorAttributes()
    +    pc_atts.pointSize = 0.5
    +    pc_atts.pointType = pc_atts.Sphere
    +    SetPlotOptions(pc_atts)
    +    DrawPlots()
    +    Test("bp_strided_struct_2d_ele_vals")
    +    DeleteAllPlots()
    +    # vert vals
    +    AddPlot("Pseudocolor", "mesh_mesh/vert_vals")
    +    AddPlot("Pseudocolor", "mesh_orig_pts/orig_vert_vals")
    +    pc_atts = PseudocolorAttributes()
    +    pc_atts.pointSize = 0.5
    +    pc_atts.pointType = pc_atts.Sphere
    +    SetPlotOptions(pc_atts)
    +    DrawPlots()
    +    Test("bp_strided_struct_2d_vert_vals")
    +    DeleteAllPlots()
    +    CloseDatabase(bp_struct_strided_2d_root)
    +
    +    # 2d
    +    OpenDatabase(bp_struct_strided_3d_root)
    +    # ele vals
    +    AddPlot("Pseudocolor", "mesh_mesh/ele_vals")
    +    AddPlot("Pseudocolor", "mesh_orig_pts/orig_ele_vals")
    +    pc_atts = PseudocolorAttributes()
    +    pc_atts.pointSize = 0.5
    +    pc_atts.pointType = pc_atts.Sphere
    +    SetPlotOptions(pc_atts)
    +    DrawPlots()
    +    Test("bp_strided_struct_3d_ele_vals")
    +    DeleteAllPlots()
    +    # vert vals
    +    AddPlot("Pseudocolor", "mesh_mesh/vert_vals")
    +    AddPlot("Pseudocolor", "mesh_orig_pts/orig_vert_vals")
    +    pc_atts = PseudocolorAttributes()
    +    pc_atts.pointSize = 0.5
    +    pc_atts.pointType = pc_atts.Sphere
    +    SetPlotOptions(pc_atts)
    +    DrawPlots()
    +    Test("bp_strided_struct_3d_vert_vals")
    +    DeleteAllPlots()
    +    CloseDatabase(bp_struct_strided_3d_root)
    +
    +def test_blueprint_0_8_6():
    +    TestSection("Blueprint RZ Examples, 0.8.6")
    +    for db in bp_rz_examples:
    +        tag_name = os.path.basename(os.path.split(db)[1])
    +        test_rz_example(tag_name,db)
    +
    +    TestSection("Blueprint 1D Curve Examples, 0.8.6")
    +    for db in bp_1d_curve_examples:
    +        OpenDatabase(db)
    +        AddPlot("Curve", "mesh_topo/field_v")
    +        DrawPlots()
    +        Test("blueprint_1d_curve_vertex_assoc")
    +        DeleteAllPlots()
    +        AddPlot("Curve", "mesh_topo/field_e")
    +        DrawPlots()
    +        Test("blueprint_1d_curve_element_assoc")
    +        DeleteAllPlots()
    +        CloseDatabase(db)
    +
    +def test_blueprint_0_8_7():
    +    TestSection("Blueprint Polytopal Mesh Missing Offsets, 0.8.7")
    +    OpenDatabase(polytopal_mesh_no_offsets_root)
    +    AddPlot("Mesh", "mesh_test")
    +    AddPlot("Pseudocolor", "mesh_test/field")
    +    DrawPlots()
    +    ResetView()
    +    Test("Polytopal_mesh_missing_offsets")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(polytopal_mesh_no_offsets_root)
    +
    +    TestSection("Blueprint Unstructured Points not using the entire coordset, 0.8.7")
    +    OpenDatabase(unstructured_points)
    +    AddPlot("Pseudocolor", "mesh_mesh/braid", 1, 1)
    +    SetActivePlots(0)
    +    PseudocolorAtts = PseudocolorAttributes()
    +    PseudocolorAtts.pointSizePixels = 20
    +    SetPlotOptions(PseudocolorAtts)
    +    AddPlot("Label", "mesh_mesh/braid", 1, 1)
    +    DrawPlots()
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (-0.64536, -0.104723, 0.756666)
    +    View3DAtts.focus = (10, 0, 0)
    +    View3DAtts.viewUp = (-0.0863273, 0.994211, 0.0639709)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 14.1421
    +    View3DAtts.nearPlane = -28.2843
    +    View3DAtts.farPlane = 28.2843
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (10, 0, 0)
    +    SetView3D(View3DAtts)
    +    DrawPlots()
    +    Test("Unstructured_points_not_using_entire_coordset")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(unstructured_points)
    +
    +def test_blueprint_0_9_1():
    +    TestSection("Blueprint Uniform Coordset + Unstructured Topo, 0.9.1")
    +    OpenDatabase(uniform_unstructured)
    +    AddPlot("Mesh", "mesh_topo", 1, 1)
    +    DrawPlots()
    +    AddPlot("Subset", "domains", 1, 1)
    +    DrawPlots()
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (-0.520784, 0.423114, 0.741457)
    +    View3DAtts.focus = (5, 5, 5)
    +    View3DAtts.viewUp = (0.238073, 0.906059, -0.349827)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 8.66025
    +    View3DAtts.nearPlane = -17.3205
    +    View3DAtts.farPlane = 17.3205
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 0.826446
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (5, 5, 5)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +    Test("Uniform_coordset_and_unstructured_topo")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(uniform_unstructured)
    +
    +def mixed_test(db_name, meshplot_name, pseudocolor_plot_name, label_plot_name, test_name, view=False):
    +    OpenDatabase(db_name)
    +    AddPlot("Mesh", meshplot_name)
    +    AddPlot("Pseudocolor", pseudocolor_plot_name)
    +    if len(label_plot_name) > 0:
    +        AddPlot("Label", label_plot_name)
    +    DrawPlots()
    +    if view:
    +        View3DAtts = View3DAttributes()
    +        View3DAtts.viewNormal = (-0.561705, 0.419207, 0.713269)
    +        View3DAtts.focus = (0, 0, 0)
    +        View3DAtts.viewUp = (0.238433, 0.907571, -0.345636)
    +        View3DAtts.viewAngle = 30
    +        View3DAtts.parallelScale = 17.3205
    +        View3DAtts.nearPlane = -34.641
    +        View3DAtts.farPlane = 34.641
    +        View3DAtts.imagePan = (0, 0)
    +        View3DAtts.imageZoom = 0.826446
    +        View3DAtts.perspective = 1
    +        View3DAtts.eyeAngle = 2
    +        View3DAtts.centerOfRotationSet = 0
    +        View3DAtts.centerOfRotation = (0, 0, 0)
    +        View3DAtts.axis3DScaleFlag = 0
    +        View3DAtts.axis3DScales = (1, 1, 1)
    +        View3DAtts.shear = (0, 0, 1)
    +        View3DAtts.windowValid = 1
    +        SetView3D(View3DAtts)
    +    else:
    +        ResetView()
    +    Test(test_name)
    +    ResetView()
    +    DeleteAllPlots()
    +    CloseDatabase(db_name)
    +
    +def test_blueprint_0_9_2():
    +    TestSection("Blueprint Mixed Topos, 0.9.2")
    +    mixed_test(mixed_topo_2d, "mesh_topo", "mesh_topo/ele_id", "mesh_pts", "Mixed_topo_simple_2d")
    +    mixed_test(mixed_topo_2d_polygon, "mesh_topo", "mesh_topo/ele_id", "mesh_pts", "Mixed_topo_polygonal_2d")
    +    mixed_test(mixed_topo_3d, "mesh_topo", "mesh_topo/ele_id", "mesh_pts", "Mixed_topo_simple_3d")
    +    mixed_test(mixed_braid_2d, "mixed_2d_mesh", "mixed_2d_mesh/braid", "mixed_2d_mesh", "Mixed_braid_2d")
    +    mixed_test(mixed_braid_3d, "mixed_mesh", "mixed_mesh/braid", "", "Mixed_braid_3d", True)
    +    mixed_test(mixed_tet_quad_2d, "mesh_mesh", "mesh_mesh/braid", "", "Mixed_tet_quad_2d")
    +    DefineScalarExpression("nodeids", "nodeid(mesh_mesh)")
    +    mixed_test(mixed_offsets_2d, "mesh_mesh", "nodeids", "", "Mixed_offsets_2d")
    +
    +    TestSection("Blueprint Specsets, 0.9.2")
    +    OpenDatabase(misc_specsets)
    +    AddPlot("Pseudocolor", "mesh_mesh/radial")
    +    DrawPlots()
    +    silr = SILRestriction()
    +    silr.SuspendCorrectnessChecking()
    +    silr.TurnOnAll()
    +    for silSet in (5,6):
    +        silr.TurnOffSet(silSet)
    +    silr.EnableCorrectnessChecking()
    +    SetPlotSILRestriction(silr ,1)
    +    Test("Misc_radial")
    +    silr = SILRestriction()
    +    silr.TurnOnAll()
    +    SetPlotSILRestriction(silr ,1)
    +    DeleteActivePlots()
    +    AddPlot("Pseudocolor", "mesh_mesh_mesh_mesh")
    +    DrawPlots()
    +    silr = SILRestriction()
    +    silr.TurnOnAll()
    +    silr.TurnOffSet(5)
    +    SetPlotSILRestriction(silr ,1)
    +    Test("Misc_specset")
    +    silr.TurnOnAll()
    +    DeleteAllPlots()
    +    CloseDatabase(misc_specsets)
    +
    +def main():
    +    test_blueprint_json_hdf5()
    +    test_blueprint_MFEM()
    +    test_blueprint_expressions()
    +    test_blueprint_venn()
    +    test_blueprint_0_8_2()
    +    test_blueprint_0_8_4()
    +    test_blueprint_0_8_6()
    +    test_blueprint_0_8_7()
    +    test_blueprint_0_9_1()
    +    test_blueprint_0_9_2()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_bov.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_bov.html new file mode 100644 index 000000000..eff49b8ce --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_bov.html @@ -0,0 +1,423 @@ + +Results for databases/bov.py + +

    Results of VisIt Regression Test - databases/bov

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Reading BOV file of FLOAT
    bov_0_000.000.00
    bov_0_010 modifications totalling 0 lines
    bov_0_020.000.00
    bov_0_030.000.00
    bov_0_040.000.00
    bov_0_050.000.00
    bov_0_060.000.00
    Decomposing BOV of FLOAT into smaller bricks
    bov_1_000.000.00
    bov_1_010 modifications totalling 0 lines
    bov_1_020.000.00
    bov_1_030.000.00
    bov_1_040.000.00
    bov_1_050.000.00
    bov_1_060.000.00
    Decomposing BOV of FLOAT with small header into smaller bricks
    bov_2_000.000.00
    bov_2_010 modifications totalling 0 lines
    bov_2_020.000.00
    bov_2_030.000.00
    bov_2_040.000.00
    bov_2_050.000.00
    bov_2_060.000.00
    Reading BOV file of DOUBLE
    bov_3_000.000.00
    bov_3_010 modifications totalling 0 lines
    bov_3_020.000.00
    bov_3_030.000.00
    bov_3_040.000.00
    bov_3_050.000.00
    bov_3_060.000.00
    Decomposing BOV of DOUBLE into smaller bricks
    bov_4_000.000.00
    bov_4_010 modifications totalling 0 lines
    bov_4_020.000.00
    bov_4_030.000.00
    bov_4_040.000.00
    bov_4_050.000.00
    bov_4_060.000.00
    Decomposing BOV of DOUBLE with small header into smaller bricks
    bov_5_000.000.00
    bov_5_010 modifications totalling 0 lines
    bov_5_020.000.00
    bov_5_030.000.00
    bov_5_040.000.00
    bov_5_050.000.00
    bov_5_060.000.00
    Reading BOV file of INT
    bov_6_000.000.00
    bov_6_010 modifications totalling 0 lines
    bov_6_020.000.00
    bov_6_030.000.00
    bov_6_040.000.00
    bov_6_050.000.00
    bov_6_060.000.00
    Decomposing BOV of INT into smaller bricks
    bov_7_000.000.00
    bov_7_010 modifications totalling 0 lines
    bov_7_020.000.00
    bov_7_030.000.00
    bov_7_040.000.00
    bov_7_050.000.00
    bov_7_060.000.00
    Decomposing BOV of INT with small header into smaller bricks
    bov_8_000.000.00
    bov_8_010 modifications totalling 0 lines
    bov_8_020.000.00
    bov_8_030.000.00
    bov_8_040.000.00
    bov_8_050.000.00
    bov_8_060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_bov_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_bov_py.html new file mode 100644 index 000000000..4e430e5c0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_bov_py.html @@ -0,0 +1,205 @@ +databases/bov.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  bov.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, multiple domain
    +#              plots     - Pseudocolor, Subset, Label, Contour
    +#              operators - Slice
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Mar 17 14:37:45 PST 2006
    +#
    +#  Modifications:
    +#    Brad Whitlock, Thu May 4 14:02:29 PST 2006
    +#    Added testing of INT and DOUBLE BOV files.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Replace obsolete Label text attributes with new versions.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def SaveTestImage(name):
    +    # Save these images somewhat larger than a regular test case image
    +    # since the images contain a lot of text.
    +    backup = GetSaveWindowAttributes()
    +    swa = SaveWindowAttributes()
    +    swa.width = 500
    +    swa.height = 500
    +    swa.screenCapture = 0
    +    Test(name, swa)
    +    SetSaveWindowAttributes(backup)
    +
    +def TestBOVDivide(prefix, db, doSubset):
    +    # Take a picture to make sure that the division took. There will be
    +    # a lot of bricks.
    +    OpenDatabase(db)
    +
    +    if doSubset:
    +        AddPlot("Subset", "bricks")
    +        subAtts = SubsetAttributes()
    +        subAtts.legendFlag = 0
    +        SetPlotOptions(subAtts)
    +    else:
    +        AddPlot("Pseudocolor", "myvar")
    +    DrawPlots()
    +    v = View3DAttributes()
    +    v.viewNormal = (0.534598, 0.40012, 0.744385)
    +    v.focus = (15, 15, 15)
    +    v.viewUp = (-0.228183, 0.916444, -0.32873)
    +    v.viewAngle = 30
    +    v.parallelScale = 8.66025
    +    v.nearPlane = -17.3205
    +    v.farPlane = 17.3205
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (15, 15, 15)
    +    SetView3D(v)
    +    Test(prefix + "00")
    +
    +    # Make sure there are the right number of zones.
    +    Query("NumZones",use_actual_data=0)
    +    TestText(prefix + "01", GetQueryOutputString())
    +
    +    # Let's slice a few times to make sure that crucial areas have the
    +    # right values
    +    AddPlot("Mesh", "mesh")
    +    AddPlot("Label", "myvar")
    +    L = LabelAttributes()
    +    L.textFont1.scale = 5
    +    L.textFont2.scale = 5
    +    SetPlotOptions(L)
    +    SetActivePlots((0,1,2))
    +    AddOperator("Slice")
    +    s = SliceAttributes()
    +    s.originType = s.Intercept  # Point, Intercept, Percent, Zone, Node
    +    s.originIntercept = 10.001
    +    s.normal = (0, 0, 1)
    +    s.axisType = s.ZAxis  # XAxis, YAxis, ZAxis, Arbitrary
    +    s.upAxis = (0, 1, 0)
    +    s.project2d = 1
    +    SetOperatorOptions(s)
    +    DrawPlots()
    +    v2 = GetView2D()
    +    v2.windowCoords = (12.0201, 13.0004, 9.99781, 10.9888)
    +    v2.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v2.fullFrameActivationMode = v2.Auto  # On, Off, Auto
    +    v2.fullFrameAutoThreshold = 100
    +    SetView2D(v2)
    +    SaveTestImage(prefix+"02")
    +
    +    # Move to another slice on the far edge that will have the max zone #
    +    s.originIntercept = 19.998
    +    SetOperatorOptions(s)
    +    v3 = View2DAttributes()
    +    v3.windowCoords = (19.2017, 20.0179, 19.1966, 20.0217)
    +    v3.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v3.fullFrameActivationMode = v3.Auto  # On, Off, Auto
    +    v3.fullFrameAutoThreshold = 100
    +    SetView2D(v3)
    +    SaveTestImage(prefix+"03")
    +
    +    # Move to another slice in the middle.
    +    s.originIntercept = 15.01
    +    SetOperatorOptions(s)
    +    v4 = View2DAttributes()
    +    v4.windowCoords = (14.6419, 15.361, 15.638, 16.365)
    +    v4.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v4.fullFrameActivationMode = v4.Auto  # On, Off, Auto
    +    v4.fullFrameAutoThreshold = 100
    +    SetView2D(v4)
    +    SaveTestImage(prefix+"04")
    +    DeleteAllPlots()
    +
    +    # Test that ghost zones are right.
    +    AddPlot("Pseudocolor", "myvar")
    +    p = PseudocolorAttributes()
    +    p.SetOpacityType(p.Constant)
    +    p.opacity = 0.25
    +    SetPlotOptions(p)
    +    DrawPlots()
    +    v5 = View3DAttributes()
    +    v5.viewNormal = (0.772475, 0.402431, 0.491255)
    +    v5.focus = (15, 15, 15)
    +    v5.viewUp = (-0.355911, 0.915018, -0.18992)
    +    v5.viewAngle = 30
    +    v5.parallelScale = 8.66025
    +    v5.nearPlane = -17.3205
    +    v5.farPlane = 17.3205
    +    v5.imagePan = (-0.0253114, 0.0398304)
    +    v5.imageZoom = 1.20806
    +    v5.perspective = 1
    +    v5.eyeAngle = 2
    +    v5.centerOfRotationSet = 0
    +    v5.centerOfRotation = (15, 15, 15)
    +    SetView3D(v5)
    +    Test(prefix+"05")
    +
    +    # Zoom in on a contour plot to make sure that there are no tears.
    +    # This means that the ghost zones were created properly.
    +    ClearWindow()
    +    p.SetOpacityType(p.FullyOpaque)
    +    SetPlotOptions(p)
    +    AddOperator("Isosurface")
    +    iso = IsosurfaceAttributes()
    +    iso.variable = "radial"
    +    SetOperatorOptions(iso)
    +    DrawPlots()
    +    v6 = View3DAttributes()
    +    v6.viewNormal = (0.373168, 0.412282, 0.831125)
    +    v6.focus = (15, 15, 15)
    +    v6.viewUp = (-0.181836, 0.910964, -0.370244)
    +    v6.viewAngle = 30
    +    v6.parallelScale = 8.66025
    +    v6.nearPlane = -17.3205
    +    v6.farPlane = 17.3205
    +    v6.imagePan = (0.0994254, 0.0810457)
    +    v6.imageZoom = 1.94126
    +    v6.perspective = 1
    +    v6.eyeAngle = 2
    +    v6.centerOfRotationSet = 0
    +    v6.centerOfRotation = (15, 15, 15)
    +    SetView3D(v6)
    +    Test(prefix+"06")
    +    DeleteAllPlots()
    +
    +    CloseDatabase(db)
    +
    +def TestBOVType(bovtype, prefixes):
    +    # Test the original BOV file without it being divided.
    +    TestSection("Reading BOV file of %s" % bovtype)
    +    TestBOVDivide(prefixes[0], data_path("bov_test_data/%s_indices.bov") % bovtype, 0)
    +
    +    #
    +    # Test 2 BOV files that are being subdivided into smaller bricks
    +    # by the BOV plugin so that there are multiple domains that
    +    # can be processed in parallel.
    +    #
    +    TestSection("Decomposing BOV of %s into smaller bricks" % bovtype)
    +    TestBOVDivide(prefixes[1], data_path("bov_test_data/%s_indices_div.bov") % bovtype, 1)
    +
    +    TestSection("Decomposing BOV of %s with small header into smaller bricks" % bovtype)
    +    TestBOVDivide(prefixes[2], data_path("bov_test_data/%s_indices_div_with_header.bov") % bovtype, 1)
    +
    +
    +def main():
    +    # Define some expressions
    +    DefineScalarExpression("x", "coord(mesh)[0]")
    +    DefineScalarExpression("y", "coord(mesh)[1]")
    +    DefineScalarExpression("z", "coord(mesh)[2]")
    +    DefineScalarExpression("dx", "x - 15.")
    +    DefineScalarExpression("dy", "y - 15.")
    +    DefineScalarExpression("dz", "z - 15.")
    +    DefineScalarExpression("radial", "sqrt(dx*dx + dy*dy + dz*dz)")
    +
    +    TestBOVType("FLOAT",  ("bov_0_", "bov_1_", "bov_2_"))
    +    TestBOVType("DOUBLE", ("bov_3_", "bov_4_", "bov_5_"))
    +    TestBOVType("INT",    ("bov_6_", "bov_7_", "bov_8_"))
    +
    +    Exit()
    +
    +main()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_boxlib.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_boxlib.html new file mode 100644 index 000000000..a202adec6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_boxlib.html @@ -0,0 +1,80 @@ + +Results for databases/boxlib.py + +

    Results of VisIt Regression Test - databases/boxlib

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    boxlib_010.000.00
    boxlib_020.000.00
    boxlib_030.000.00
    boxlib_040.000.00
    boxlib_050.000.00
    boxlib_060.000.00
    temperature1 min
     295.40999999999997 .eq. 295.40999999999997 (prec=15) : True
    temperature1 max
     295.4100000000001 .eq. 295.4100000000001 (prec=15) : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_boxlib_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_boxlib_py.html new file mode 100644 index 000000000..9a5e3fe6e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_boxlib_py.html @@ -0,0 +1,119 @@ +databases/boxlib.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  boxlib.py
    +#
    +#  Tests:      mesh      - 2D AMR
    +#              plots     - Pseudocolor, mesh, boundary, subset
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 31, 2005
    +#
    +#  Modifications:
    +#  
    +#    Mark C. Miller, Mon Sep 15 12:05:44 PDT 2008
    +#    Added 3D test
    +#
    +#    Mark C. Miller, Mon Jan 11 10:40:34 PST 2021
    +#    Replace Assert-style with TestValue-style tests.
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin(("Boxlib2D", "Boxlib3D"))
    +
    +
    +OpenDatabase(data_path("boxlib_test_data/2D/plt0822/Header"))
    +
    +AddPlot("Pseudocolor", "density")
    +AddPlot("Boundary", "materials")
    +b = BoundaryAttributes()
    +b.colorType = b.ColorBySingleColor
    +b.lineWidth = 2
    +SetPlotOptions(b)
    +
    +AddPlot("Subset", "patches")
    +s = SubsetAttributes()
    +s.wireframe = 1
    +s.colorType = s.ColorBySingleColor
    +s.singleColor = (255, 255, 255, 128)
    +s.lineWidth = 3
    +SetPlotOptions(s)
    +
    +DrawPlots()
    +
    +v = GetView2D()
    +v.viewportCoords = (0, 1, 0, 1)
    +v.windowCoords = (0, 0.04, 0.09, 0.13)
    +SetView2D(v)
    +
    +Test("boxlib_01")
    +
    +SetActivePlots((0,1,2))
    +s = SILRestriction()
    +levels = s.SetsInCategory("levels")
    +level2 = levels[2]
    +s.TurnOffSet(level2)
    +SetPlotSILRestriction(s)
    +Test("boxlib_02")
    +
    +s.TurnOnAll()
    +level0 = levels[0]
    +s.TurnOffSet(level0)
    +SetPlotSILRestriction(s)
    +Test("boxlib_03")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("boxlib_test_data/2D/plt0822/Header"))
    +
    +OpenDatabase(data_path("boxlib_test_data/3D/plt_asgc05_0309/Header"))
    +
    +AddPlot("Pseudocolor","tracer")
    +DrawPlots()
    +ResetView()
    +v=GetView3D()
    +v.RotateAxis(2,-45.0)
    +v.RotateAxis(0,65.0)
    +SetView3D(v)
    +Test("boxlib_04")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("boxlib_test_data/3D/plt_asgc05_0309/Header"))
    +
    +OpenDatabase(data_path("boxlib_test_data/3D/plt00000.cartgrid.body.small/Header"))
    +
    +AddPlot("Pseudocolor", "temperature")
    +AddOperator("ThreeSlice")
    +DrawPlots()
    +ResetView()
    +v = GetView3D()
    +v.RotateAxis(1,45)
    +v.RotateAxis(0,45)
    +SetView3D(v)
    +Test("boxlib_05")
    +
    +silr = SILRestriction()
    +silr.TurnOnAll()
    +silr.TurnOffSet(silr.SetsInCategory('materials')[1])
    +SetPlotSILRestriction(silr)
    +Test("boxlib_06")
    +
    +# Test precision {
    +#
    +# Test double precision is working by reading a known double precision
    +# database and ensuring we get expected min/max values within 15 digits
    +# of accuracy.
    +#
    +DeleteAllPlots()
    +CloseDatabase(data_path("boxlib_test_data/3D/plt00000.cartgrid.body.small/Header"))
    +OpenDatabase(data_path("boxlib_test_data/2D/plt0000000/Header"))
    +AddPlot("Pseudocolor", "temperature1")
    +DrawPlots()
    +SetQueryOutputToValue()
    +TestValueEQ("temperature1 min", Query("Min"), 295.409999999999968, 15)
    +TestValueEQ("temperature1 max", Query("Max"), 295.410000000000082, 15)
    +DeleteAllPlots()
    +CloseDatabase(data_path("boxlib_test_data/2D/plt0000000/Header"))
    +# Test precision }
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_chgcar.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_chgcar.html new file mode 100644 index 000000000..76e9668d1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_chgcar.html @@ -0,0 +1,120 @@ + +Results for databases/chgcar.py + +

    Results of VisIt Regression Test - databases/chgcar

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    chgcar_010.000.00
    chgcar_020.000.00
    chgcar_030.000.00
    chgcar_040.000.00
    chgcar_110.000.00
    chgcar_120.000.00
    chgcar_130.000.00
    chgcar_140.000.00
    chgcar_050.000.00
    chgcar_060.000.00
    chgcar_070.000.00
    chgcar_080.000.00
    chgcar_090.000.00
    chgcar_100.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_chgcar_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_chgcar_py.html new file mode 100644 index 000000000..406ae1deb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_chgcar_py.html @@ -0,0 +1,156 @@ +databases/chgcar.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  chgcar.py
    +#
    +#  Tests:      mesh      - transformed rectilinear
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       February 20, 2007
    +#
    +#    Jeremy Meredith, Wed Aug 13 14:39:11 EDT 2008
    +#    Unrestricted the number of labels plotted.  Since I now
    +#    have automatic decomposition of chgcar files, the actual
    +#    labels chosen was varying based on serial vs parallel
    +#    (which is fine, but doesn't help for regression testing).
    +#
    +#    Hank Childs, Wed Dec 31 14:32:34 PST 2008
    +#    Rename ResamplePluginAtts to ResampleAtts.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Replace obsolete Label text attributes with new versions.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(data_path("chgcar_test_data/CHGCAR"),0, "VASP_1.0")
    +
    +AddPlot("Pseudocolor", "charge")
    +DrawPlots()
    +
    +View3DAtts = GetView3D()
    +View3DAtts.viewNormal = (-0.85796, 0.216484, -0.465874)
    +View3DAtts.focus = (4.5, 0.5, 4)
    +View3DAtts.viewUp = (0.135878, 0.970204, 0.200602)
    +View3DAtts.viewAngle = 30
    +SetView3D(View3DAtts)
    +
    +Test("chgcar_01")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR.vtk"))
    +
    +Test("chgcar_02")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR"))
    +
    +
    +AddOperator("Resample")
    +ResampleAtts = ResampleAttributes()
    +ResampleAtts.useExtents = 0
    +ResampleAtts.startX = 1
    +ResampleAtts.endX = 6
    +ResampleAtts.samplesX = 80
    +ResampleAtts.startY = -2
    +ResampleAtts.endY = 4
    +ResampleAtts.samplesY = 80
    +ResampleAtts.is3D = 1
    +ResampleAtts.startZ = 1
    +ResampleAtts.endZ = 6
    +ResampleAtts.samplesZ = 80
    +SetOperatorOptions(ResampleAtts)
    +DrawPlots()
    +
    +Test("chgcar_03")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR.vtk"))
    +
    +Test("chgcar_04")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR"))
    +
    +
    +DeleteActivePlots()
    +
    +AddPlot("Mesh", "mesh")
    +AddOperator("IndexSelect",1)
    +IndexSelectAtts = IndexSelectAttributes()
    +IndexSelectAtts.dim = IndexSelectAtts.ThreeD  # OneD, TwoD, ThreeD
    +IndexSelectAtts.xMin = 2
    +SetOperatorOptions(IndexSelectAtts)
    +
    +AddPlot("Label", "charge")
    +LabelAtts = LabelAttributes()
    +LabelAtts.textFont1.scale = 7
    +LabelAtts.restrictNumberOfLabels = 0
    +SetPlotOptions(LabelAtts)
    +DrawPlots()
    +
    +Test("chgcar_11")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR.vtk"))
    +
    +Test("chgcar_12")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR"))
    +
    +
    +DeleteAllPlots()
    +
    +
    +
    +AddPlot("Pseudocolor", "charge")
    +AddOperator("ThreeSlice")
    +ThreeSliceAtts = ThreeSliceAttributes()
    +ThreeSliceAtts.x = 3
    +ThreeSliceAtts.y = 0
    +ThreeSliceAtts.z = 4
    +SetOperatorOptions(ThreeSliceAtts)
    +DrawPlots()
    +
    +Test("chgcar_13")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR.vtk"))
    +
    +Test("chgcar_14")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR"))
    +
    +
    +DeleteAllPlots()
    +
    +AddPlot("Volume", "charge")
    +DrawPlots()
    +VolumeAtts = VolumeAttributes()
    +VolumeAtts.lightingFlag = 0
    +VolumeAtts.opacityAttenuation = .6
    +VolumeAtts.resampleTarget = 450000
    +SetPlotOptions(VolumeAtts)
    +
    +Test("chgcar_05")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR.vtk"))
    +
    +Test("chgcar_06")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR"))
    +
    +
    +VolumeAtts.opacityAttenuation = .9
    +SetPlotOptions(VolumeAtts)
    +
    +Test("chgcar_07")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR.vtk"))
    +
    +Test("chgcar_08")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR"))
    +
    +
    +VolumeAtts.opacityAttenuation = .4
    +VolumeAtts.rendererType = VolumeAtts.Composite
    +SetPlotOptions(VolumeAtts)
    +
    +Test("chgcar_09")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR.vtk"))
    +
    +Test("chgcar_10")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR"))
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_claw.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_claw.html new file mode 100644 index 000000000..25de98e52 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_claw.html @@ -0,0 +1,54 @@ + +Results for databases/claw.py + +

    Results of VisIt Regression Test - databases/claw

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    claw_010.000.00
    claw_020.000.00
    claw_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_claw_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_claw_py.html new file mode 100644 index 000000000..6272f295a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_claw_py.html @@ -0,0 +1,65 @@ +databases/claw.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  claw.py 
    +#
    +#  Tests:      Claw files 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       September 13, 2007 
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# test the mesh
    +OpenDatabase(data_path("claw_test_data/2d/fort.claw"))
    +
    +TimeSliderNextState()
    +AddPlot("Mesh","claw_mesh")
    +DrawPlots()
    +SetActivePlots((1,))
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "level3":
    +        silr.TurnOffSet(i)
    +SetPlotSILRestriction(silr)
    +Test("claw_01")
    +SetActivePlots((1,))
    +DeleteActivePlots()
    +
    +# test a variable being read 
    +AddPlot("Pseudocolor","col_00")
    +DrawPlots()
    +Test("claw_02")
    +DeleteAllPlots()
    +CloseDatabase(data_path("claw_test_data/2d/fort.claw"))
    +
    +OpenDatabase(data_path("claw_test_data/3d/fort.claw"))
    +
    +TimeSliderNextState()
    +ss = SubsetAttributes()
    +#ss.colorType = ss.ColorBySingleColor
    +ss.lineWidth = 2
    +ss.singleColor = (0, 0, 0, 255)
    +ss.wireframe = 1
    +SetPlotOptions(ss)
    +AddPlot("Pseudocolor","col_00")
    +AddPlot("Mesh","claw_mesh")
    +SetActivePlots((1,2))
    +#AddOperator("Clip", 1)
    +AddOperator("Clip")
    +clipAtts = ClipAttributes()
    +clipAtts.plane1Origin = (0.25, 0.5, 0.75)
    +clipAtts.plane1Normal = (0, 0, 1)
    +SetOperatorOptions(clipAtts)
    +DrawPlots()
    +SetActivePlots((0,))
    +DrawPlots()
    +v=GetView3D()
    +v.viewNormal = (0.383221, 0.582931, 0.716473)
    +v.viewUp = (-0.29125, 0.812382, -0.505182)
    +SetView3D(v)
    +Test("claw_03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_closedatabase.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_closedatabase.html new file mode 100644 index 000000000..d66947853 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_closedatabase.html @@ -0,0 +1,94 @@ + +Results for databases/closedatabase.py + +

    Results of VisIt Regression Test - databases/closedatabase

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    closedatabase000.000.00
    closedatabase010 modifications totalling 0 lines
    closedatabase020 modifications totalling 0 lines
    closedatabase030.000.00
    closedatabase040.000.00
    closedatabase050 modifications totalling 0 lines
    closedatabase060 modifications totalling 0 lines
    closedatabase070 modifications totalling 0 lines
    closedatabase080 modifications totalling 0 lines
    closedatabase090 modifications totalling 0 lines
    closedatabase100 modifications totalling 0 lines
    closedatabase_exprs000 modifications totalling 0 lines
    closedatabase_exprs010 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_closedatabase_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_closedatabase_py.html new file mode 100644 index 000000000..35a3bd823 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_closedatabase_py.html @@ -0,0 +1,108 @@ +databases/closedatabase.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  closedatabase.py
    +#
    +#  Tests:      mesh      - 3D, curvilinear, single domain
    +#              plots     - Pseudocolor
    +#              databases - Silo
    +#
    +#  Purpose:    This test case tests that the viewer can close a database.
    +#
    +#  Bugs:       '3283
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Mar 19 08:57:09 PDT 2004
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Wed Apr 14 15:41:11 PDT 2010
    +#    Added test to check if database expressions are cleared after
    +#    database is closed.
    +#
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Look at astring representation of the GlobalAttributes to see the list
    +# of sources, etc.
    +#
    +def TestGlobalAttributes(testname):
    +    # Get the window information, convert it to a string, and use it as
    +    # a test case.
    +    TestText(testname, str(GetGlobalAttributes()))
    +
    +def GetCloseString(db):
    +    if(CloseDatabase(db) == 1):
    +        testString = "The database %s was closed." % os.path.abspath(db)
    +    else:
    +        testString = GetLastError()
    +    return testString
    +
    +# Open a database and create a plot
    +db = silo_data_path("wave*.silo database")
    +OpenDatabase(db, 32)
    +AddPlot("Pseudocolor", "pressure")
    +DrawPlots()
    +
    +# Get a picture of the plot.
    +Test("closedatabase00")
    +
    +# Look at the list of sources.
    +TestGlobalAttributes("closedatabase01")
    +
    +# Try and close the database. VisIt should not let us close it since there
    +# are plots that use it.
    +TestText("closedatabase02", GetCloseString(db))
    +
    +# Create another window that uses the database.
    +CloneWindow()
    +SetActiveWindow(2)
    +DrawPlots()
    +Test("closedatabase03")
    +
    +# Delete all the plots in window 1 that use the database
    +SetActiveWindow(1)
    +DeleteAllPlots()
    +Test("closedatabase04")
    +
    +# Try and close the database. VisIt should not let us close it since there
    +# are still plots in window 2 that use it.
    +TestText("closedatabase05", GetCloseString(db))
    +
    +SetActiveWindow(2)
    +DeleteAllPlots()
    +
    +# Try and close the database. VisIt should let us close it this time.
    +testString = GetCloseString(db) + "\n" + str(GetGlobalAttributes())
    +TestText("closedatabase06", testString)
    +
    +
    +# Try adding some databases
    +dbs = (silo_data_path("wave.visit") ,
    +       silo_data_path("globe.silo") ,
    +       silo_data_path("curv3d.silo") )
    +
    +for db in dbs:
    +    OpenDatabase(db)
    +
    +# Look at the list of sources.
    +TestGlobalAttributes("closedatabase07")
    +
    +# Start removing databases
    +testindex = 8
    +for i in range(len(dbs)):
    +    index = len(dbs) - 1 - i
    +    testString = GetCloseString(dbs[index]) + "\n" + str(GetGlobalAttributes())
    +    TestText("closedatabase%02d" % testindex, testString)
    +    testindex = testindex + 1
    +
    +# Check that database expressions are cleared when database is closed.
    +OpenDatabase(dbs[1])
    +TestExpressions("closedatabase_exprs00")
    +TestExpressions("closedatabase_exprs01", prefix=GetCloseString(dbs[1])+"\n")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_correlation.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_correlation.html new file mode 100644 index 000000000..313cd40d2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_correlation.html @@ -0,0 +1,510 @@ + +Results for databases/correlation.py + +

    Results of VisIt Regression Test - databases/correlation

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Padded index correlation
    correlation_0_000 modifications totalling 0 lines
    correlation_0_010.000.00
    correlation_0_020 modifications totalling 0 lines
    correlation_0_030.000.00
    correlation_0_040 modifications totalling 0 lines
    correlation_0_050.000.00
    correlation_0_060 modifications totalling 0 lines
    correlation_0_070.000.00
    correlation_0_080 modifications totalling 0 lines
    correlation_0_090.000.00
    correlation_0_100 modifications totalling 0 lines
    correlation_0_110.000.00
    correlation_0_120 modifications totalling 0 lines
    correlation_0_130.000.00
    correlation_0_140 modifications totalling 0 lines
    Stretched correlation
    correlation_1_000 modifications totalling 0 lines
    correlation_1_010.000.00
    correlation_1_020 modifications totalling 0 lines
    correlation_1_030.000.00
    correlation_1_040 modifications totalling 0 lines
    correlation_1_050.000.00
    correlation_1_060 modifications totalling 0 lines
    correlation_1_070.000.00
    correlation_1_080 modifications totalling 0 lines
    correlation_1_090.000.00
    correlation_1_100 modifications totalling 0 lines
    correlation_1_110.000.00
    correlation_1_120 modifications totalling 0 lines
    correlation_1_130.000.00
    correlation_1_140 modifications totalling 0 lines
    Time correlation
    correlation_2_000 modifications totalling 0 lines
    correlation_2_010.000.00
    correlation_2_020 modifications totalling 0 lines
    correlation_2_030.000.00
    correlation_2_040 modifications totalling 0 lines
    correlation_2_050.000.00
    correlation_2_060 modifications totalling 0 lines
    correlation_2_070.000.00
    correlation_2_080 modifications totalling 0 lines
    correlation_2_090.000.00
    correlation_2_100 modifications totalling 0 lines
    correlation_2_110.000.00
    correlation_2_120 modifications totalling 0 lines
    correlation_2_130.000.00
    correlation_2_140 modifications totalling 0 lines
    correlation_2_150.000.00
    correlation_2_160 modifications totalling 0 lines
    correlation_2_170.000.00
    correlation_2_180 modifications totalling 0 lines
    correlation_2_190.000.00
    correlation_2_200 modifications totalling 0 lines
    Cycle correlation
    correlation_3_000 modifications totalling 0 lines
    correlation_3_010.000.00
    correlation_3_020 modifications totalling 0 lines
    correlation_3_030.000.00
    correlation_3_040 modifications totalling 0 lines
    correlation_3_050.000.00
    correlation_3_060 modifications totalling 0 lines
    correlation_3_070.000.00
    correlation_3_080 modifications totalling 0 lines
    correlation_3_090.000.00
    correlation_3_100 modifications totalling 0 lines
    correlation_3_110.000.00
    correlation_3_120 modifications totalling 0 lines
    correlation_3_130.000.00
    correlation_3_140 modifications totalling 0 lines
    Creating new window
    correlation_4_000.000.00
    correlation_4_010 modifications totalling 0 lines
    correlation_4_020.000.00
    correlation_4_030 modifications totalling 0 lines
    Altering correlation
    correlation_5_000 modifications totalling 0 lines
    correlation_5_010 modifications totalling 0 lines
    correlation_5_020.000.00
    correlation_5_030 modifications totalling 0 lines
    correlation_5_040.000.00
    correlation_5_050 modifications totalling 0 lines
    correlation_5_060.000.00
    correlation_5_070 modifications totalling 0 lines
    correlation_5_080.000.00
    correlation_5_090 modifications totalling 0 lines
    Deleting correlations
    correlation_6_000 modifications totalling 0 lines
    Automatic correlations
    correlation_7_000 modifications totalling 0 lines
    correlation_7_010 modifications totalling 0 lines
    correlation_7_020.000.00
    correlation_7_030 modifications totalling 0 lines
    correlation_7_040.000.00
    correlation_7_050 modifications totalling 0 lines
    correlation_7_060.000.00
    correlation_7_070 modifications totalling 0 lines
    correlation_7_080 modifications totalling 0 lines
    correlation_7_090.000.00
    correlation_7_100 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_correlation_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_correlation_py.html new file mode 100644 index 000000000..0a373b7b0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_correlation_py.html @@ -0,0 +1,215 @@ +databases/correlation.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial
    +#  CLASSES: nightly
    +#
    +#  Test Case:  correlation.py 
    +#
    +#  Tests:      Tests database correlations and automatic correlation.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Mon Mar 22 08:28:25 PDT 2004
    +#
    +#  Modifications:
    +#    Brad Whitlock, Fri Apr 1 09:48:23 PDT 2005
    +#    I renamed some baselines so I could add correlation definition tests.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def GetTruncatedWindowInformationString():
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 5 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    for i in range(5):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    return s
    +
    +#
    +# Look at the first few lines of the string representation of the
    +# WindowInformation to see the list of time sliders, etc.
    +#
    +def TestWindowInformation(testname):
    +    TestText(testname, GetTruncatedWindowInformationString())
    +
    +def TestLength(testname):
    +    tsLength = TimeSliderGetNStates()
    +    testString = "%s has %d states\n" % (GetActiveTimeSlider(), tsLength)
    +    testString = testString + GetTruncatedWindowInformationString()
    +    TestText(testname, testString)
    +
    +def ComputeStates(nStates, stateIncrement):
    +    lastState = nStates - 1
    +    states = list(range(0, nStates, stateIncrement))
    +    if(states[-1] != lastState):
    +        states = states  + [lastState]
    +    return states
    +
    +def GetTestName(sectionIndex, testIndex):
    +    return "correlation_%d_%02d" % (sectionIndex, testIndex)
    +
    +def TestTimeSlider(sectionIndex, testIndex):
    +    Test(GetTestName(sectionIndex, testIndex))
    +    TestLength(GetTestName(sectionIndex, testIndex + 1))
    +    return testIndex + 2
    +
    +#
    +# Tests that the database correlations look a certain way.
    +#
    +def TestCorrelation(name, sectionIndex, testIndex):
    +    names = GetDatabaseCorrelationNames()
    +    s = ""
    +    if name in names:
    +        c = GetDatabaseCorrelation(name)
    +        s = s + str(c) + "\n"
    +    TestText(GetTestName(sectionIndex, testIndex), s)
    +    return testIndex + 1
    +
    +#
    +# Tests the time slider length and the correlation list.
    +#
    +def TestLengthAndCorrelationList(testname):
    +    tsLength = TimeSliderGetNStates()
    +    s = "%s has %d states\n" % (GetActiveTimeSlider(), tsLength)
    +    s = s + GetTruncatedWindowInformationString() + "\n\n"
    +
    +    names = GetDatabaseCorrelationNames()
    +    for name in names:
    +        c = GetDatabaseCorrelation(name)
    +        s = s + str(c) + "\n"
    +    TestText(testname, s)
    +
    +#
    +# The databases that we'll use for most tests.
    +#
    +dbs = (data_path("pdb_test_data/dbA00.pdb"),
    +       data_path("pdb_test_data/dbB00.pdb"),
    +       data_path("pdb_test_data/dbC00.pdb"))
    +
    +#
    +# Open each database and create a plot.
    +#
    +for db in dbs:
    +    OpenDatabase(db)
    +    AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +
    +#
    +# Correlation Types
    +#
    +IndexForIndexCorrelation = 0
    +StretchedIndexCorrelation = 1
    +TimeCorrelation = 2
    +CycleCorrelation = 3
    +correlationTypes = (IndexForIndexCorrelation, StretchedIndexCorrelation,\
    +    TimeCorrelation, CycleCorrelation)
    +correlationNames = ("ABC_Index", "ABC_Stretch", "ABC_Time", "ABC_Cycle")
    +correlationTitles = ("Padded index correlation", "Stretched correlation",\
    +    "Time correlation", "Cycle correlation")
    +
    +#
    +# Create correlations between the 3 databases
    +#
    +sectionIndex = 0
    +testIndex = 0
    +for i in range(len(correlationTypes)):
    +    TestSection(correlationTitles[i])
    +    CreateDatabaseCorrelation(correlationNames[i], dbs, correlationTypes[i])
    +    testIndex = TestCorrelation(correlationNames[i], sectionIndex, 0)
    +    states = ComputeStates(TimeSliderGetNStates(), 5)
    +    for state in states:
    +        SetTimeSliderState(state)
    +        testIndex = TestTimeSlider(sectionIndex, testIndex)
    +    sectionIndex = sectionIndex + 1
    +
    +#
    +# Make sure that a new window has the same plots and correlations.
    +#
    +TestSection("Creating new window")
    +sectionIndex = 4
    +testIndex = 0
    +alteredCorrelation = correlationNames[0]
    +SetActiveTimeSlider(alteredCorrelation)
    +SetTimeSliderState(15)
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +CloneWindow()
    +SetActiveWindow(2)
    +InvertBackgroundColor()
    +DrawPlots()
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +SetActiveWindow(1)
    +
    +#
    +# Now that multiple windows use the same correlation, alter the correlation
    +# so it only uses 2 databases and make sure that both windows change when
    +# we change the time slider.
    +#
    +TestSection("Altering correlation")
    +sectionIndex = 5
    +testIndex = 0
    +testIndex = TestCorrelation(alteredCorrelation, sectionIndex, testIndex)
    +AlterDatabaseCorrelation(alteredCorrelation, (dbs[0], dbs[1]), StretchedIndexCorrelation)
    +testIndex = TestCorrelation(alteredCorrelation, sectionIndex, testIndex)
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +SetActiveWindow(2)
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +SetActiveWindow(1)
    +SetTimeSliderState(19)
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +SetActiveWindow(2)
    +SetTimeSliderState(19)
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +SetActiveWindow(1)
    +
    +#
    +# Test deleting correlations
    +#
    +TestSection("Deleting correlations")
    +sectionIndex = 6
    +testIndex = 0
    +for n in correlationNames:
    +    DeleteDatabaseCorrelation(n)
    +TestLengthAndCorrelationList(GetTestName(sectionIndex, testIndex))
    +
    +#
    +# Test automatically correlating by setting the correlation options such
    +# that we automatically create a StretchedIndex correlation when adding
    +# plots, etc.
    +#
    +TestSection("Automatic correlations")
    +sectionIndex = 7
    +SetActiveWindow(1)
    +DeleteAllPlots()
    +TestLengthAndCorrelationList(GetTestName(sectionIndex, 0))
    +testIndex = 1
    +SetDatabaseCorrelationOptions(StretchedIndexCorrelation, 0)
    +OpenDatabase(dbs[0])
    +AddPlot("FilledBoundary", "material(mesh)")
    +OpenDatabase(dbs[1])
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +# At this point, the viewer should have automatically created a new correlation
    +# and it should be the active time slider.
    +testIndex = TestCorrelation(GetActiveTimeSlider(), sectionIndex, testIndex);
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +# note: py3 div creates float
    +SetTimeSliderState(int(TimeSliderGetNStates() / 2))
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +SetTimeSliderState(TimeSliderGetNStates() - 1)
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +
    +# Now that we've verified the correlation, add another database to it by 
    +# Creating a plot from yet another database.
    +OpenDatabase(dbs[2])
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +testIndex = TestCorrelation(GetActiveTimeSlider(), sectionIndex, testIndex);
    +SetTimeSliderState(int(TimeSliderGetNStates() * 0.8))
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_curve.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_curve.html new file mode 100644 index 000000000..fca492e10 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_curve.html @@ -0,0 +1,60 @@ + +Results for databases/curve.py + +

    Results of VisIt Regression Test - databases/curve

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    curve10.000.00
    curve20.000.00
    curve30.000.00
    curve2Expr0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_curve_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_curve_py.html new file mode 100644 index 000000000..8128e2262 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_curve_py.html @@ -0,0 +1,53 @@ +databases/curve.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  curve.py 
    +#
    +#  Tests:      normal curves, zone-centered curves, errors in curve files
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       October 31, 2006 
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +ca = CurveAttributes()
    +ca.showPoints = 1
    +SetDefaultPlotOptions(ca)
    +
    +OpenDatabase(data_path("curve_test_data/zonecent.ultra"))
    +DefineCurveExpression("curve2Expr","curve2+10")
    +
    +AddPlot("Curve","curve2")
    +DrawPlots()
    +v = GetViewCurve()
    +v.rangeCoords = (-3, 11)
    +SetViewCurve(v)
    +Test("curve1")
    +
    +AddPlot("Curve","curve1")
    +DrawPlots()
    +v.domainCoords = (-4, 16)
    +SetViewCurve(v)
    +Test("curve2")
    +
    +DeleteActivePlots()
    +
    +AddPlot("Curve","curve4")
    +DrawPlots()
    +v.domainCoords = (-4, 25)
    +SetViewCurve(v)
    +Test("curve3")
    +
    +DeleteActivePlots()
    +
    +AddPlot("Curve","curve2")
    +AddPlot("Curve","curve2Expr")
    +ResetView()
    +DrawPlots()
    +Test("curve2Expr")
    +
    +DeleteActivePlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_ddcMD.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_ddcMD.html new file mode 100644 index 000000000..93fcd1f99 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_ddcMD.html @@ -0,0 +1,159 @@ + +Results for databases/ddcMD.py + +

    Results of VisIt Regression Test - databases/ddcMD

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    2D cgrid single files
    ddcMD_0_000 modifications totalling 0 lines
    ddcMD_0_010.000.00
    ddcMD_0_020.000.00
    ddcMD_0_030.000.00
    2D cgrid multi files
    ddcMD_1_000 modifications totalling 0 lines
    ddcMD_1_010.000.00
    ddcMD_1_020.000.00
    ddcMD_1_030.000.00
    3D cgrid multi files and multi subname
    ddcMD_2_000 modifications totalling 0 lines
    ddcMD_2_010.000.00
    ddcMD_2_020.000.00
    ddcMD_2_030.000.00
    ddcMD_2_040.000.00
    ddcMD_2_050.000.00
    ddcMD_2_060.000.00
    ddcMD_2_070.000.00
    ddcMD_2_080.000.00
    ddcMD_2_090.000.00
    ddcMD_2_100.000.00
    ddcMD_2_110.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_ddcMD_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_ddcMD_py.html new file mode 100644 index 000000000..417dae6fa --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_ddcMD_py.html @@ -0,0 +1,112 @@ +databases/ddcMD.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ddcMD.py
    +#
    +#  Tests:      mesh      - 2D/3D structured automatically decomposed
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Oct 11 17:04:32 PDT 2012
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def GetVariables(db, doExpressions = 1):
    +    md = GetMetaData(db)
    +    txt = "Scalar Names:\n"
    +    s = []
    +    for i in range(md.GetNumScalars()):
    +        s = s + [md.GetScalars(i).name]
    +    scalars = sorted(s)
    +    for s in scalars:
    +        txt = txt + s + "\n"
    +    if doExpressions:
    +        txt = txt + "\n\nExpressions:\n"
    +        expr = {}
    +        for i in range(md.exprList.GetNumExpressions()):
    +            e = md.exprList.GetExpressions(i)
    +            expr[e.name] = e.definition
    +        keys = sorted(expr.keys())
    +        for k in keys:
    +            txt = txt + k + " = " + expr[k] + "\n"
    +    return txt
    +
    +def test0(datapath):
    +    TestSection("2D cgrid single files")
    +    db = pjoin(datapath,"cgrid2d.ddcMD")
    +    TestText("ddcMD_0_00", GetVariables(db))
    +
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "mass")
    +    DrawPlots()
    +    Test("ddcMD_0_01")
    +
    +    ChangeActivePlotsVar("mass_Al")
    +    Test("ddcMD_0_02")
    +
    +    ChangeActivePlotsVar("mass_Cu")
    +    Test("ddcMD_0_03")
    +
    +    DeleteAllPlots()
    +
    +def test1(datapath):
    +    TestSection("2D cgrid multi files")
    +    db = pjoin(datapath,"cgrid2d_multi.ddcMD")
    +    TestText("ddcMD_1_00", GetVariables(db))
    +
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "Kx")
    +    DrawPlots()
    +    Test("ddcMD_1_01")
    +
    +    ChangeActivePlotsVar("Kx_Al")
    +    Test("ddcMD_1_02")
    +
    +    ChangeActivePlotsVar("Kx_Cu")
    +    Test("ddcMD_1_03")
    +
    +    DeleteAllPlots()
    +
    +def test2(datapath):
    +    TestSection("3D cgrid multi files and multi subname")
    +    db = pjoin(datapath,"cgrid3d_multi_subname", "snapshot.*.ddcMD database")
    +    TestText("ddcMD_2_00", GetVariables(db, doExpressions = 0))
    +
    +    # Plot the gid to see that things are put together properly.
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "anatomy/gid")
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (-0.463775, -0.476999, -0.746582)
    +    v.focus = (12.5,12.5,12.5)
    +    v.viewUp = (-0.885851, 0.236876, 0.398946)
    +    v.parallelScale = 21.6506
    +    v.nearPlane = -43.3013
    +    v.farPlane = 43.3013
    +    v.imagePan = (0.0101758, 0.0313539)
    +    v.imageZoom = 1.01954
    +    SetView3D(v)
    +    Test("ddcMD_2_01")
    +
    +    ChangeActivePlotsVar("state/Vm")
    +
    +    # Iterate over time.
    +    for i in range(TimeSliderGetNStates()):
    +        SetTimeSliderState(i)
    +        Test("ddcMD_2_%02d" % (2 + i))
    +
    +    # Lower the transparency to see if domain boundaries are good. I think that
    +    # currently they are not good.
    +
    +    DeleteAllPlots()
    +
    +def main():
    +    datapath = data_path("ddcmd_test_data")
    +    test0(datapath)
    +    test1(datapath)
    +    test2(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_empty_db.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_empty_db.html new file mode 100644 index 000000000..01d6e20a5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_empty_db.html @@ -0,0 +1,40 @@ + +Results for databases/empty_db.py + +

    Results of VisIt Regression Test - databases/empty_db

    + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    empty_010 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_empty_db_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_empty_db_py.html new file mode 100644 index 000000000..d1710bc38 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_empty_db_py.html @@ -0,0 +1,28 @@ +databases/empty_db.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  empty_db.py 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       28Oct10
    +#
    +#  Modifications:
    +#    Mark C. Miller, Mon Nov  1 12:24:23 PDT 2010
    +#    I added specification of the Silo format to the open call so that we
    +#    can be assured of having the real exception (DBYieldedNoData) returned
    +#    in the error message. Otherwise, that exception is caught and then folded
    +#    into whatever other possible exceptions other candidates might generate.
    +# ----------------------------------------------------------------------------
    +import re
    +
    +OpenDatabase(data_path("silo_pdb_test_data/empty.silo"), 0, "Silo_1.0")
    +
    +errStr = GetLastError()
    +tmpType = re.search(",\nno data was found in the file for VisIt to work with.", errStr)
    +msg = errStr
    +if tmpType != None:
    +    msg = "DBYieldedNoDataException\n"
    +TestText("empty_01", msg)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_exodus.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_exodus.html new file mode 100644 index 000000000..09bbc6dbb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_exodus.html @@ -0,0 +1,238 @@ + +Results for databases/exodus.py + +

    Results of VisIt Regression Test - databases/exodus

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    exodus_010.000.00
    exodus_020.000.00
    exodus_030.000.00
    exodus_040.000.00
    exodus_050.000.00
    Testing SHELL4 support
    exodus_060.000.00
    Testing support element block names
    exodus_070.000.00
    Testing 2D "NSIDED" element type
    exodus_080.000.00
    exodus_090.000.00
    exodus_100.000.00
    exodus_110.000.00
    exodus_120.000.00
    exodus_13a0.000.00
    exodus_13b0.000.00
    exodus_13c0.000.00
    exodus_140.000.00
    exodus_150.000.00
    exodus_160.000.00
    exodus_170.000.00
    exodus_180.000.00
    exodus_190.000.00
    exodus_200.000.00
    exodus_210.000.00
    exodus_220.000.00
    High Order Elements
    exodus_230.000.00
    exodus_240.000.00
    exodus_250.000.00
    exodus_260.000.00
    exodus_270.000.00
    exodus_280.000.00
    exodus_290.000.00
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_exodus_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_exodus_py.html new file mode 100644 index 000000000..3847c118a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_exodus_py.html @@ -0,0 +1,272 @@ +databases/exodus.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  exodus.py
    +#
    +#  Tests:      mesh      - 2D, 3D unstructured
    +#              plots     - 3D - Pseudocolor, mesh, boundary, subset,
    +#                          2D - Filled boundary, label 
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 31, 2005
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Fri Oct  7 14:27:33 PDT 2005
    +#    Explicitly reference the name of the variable to displace by, since the
    +#    default changed.
    +#
    +#    Brad Whitlock, Mon Nov 14 14:31:46 PST 2005
    +#    Added testing for SHELL4 support.
    +#
    +#    Eric Brugger, Wed Mar 14 14:04:32 PDT 2007
    +#    Added testing for element block names.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("Exodus")
    +
    +OpenDatabase(data_path("exodus_test_data/balls.e.4.* database"))
    +
    +AddPlot("Pseudocolor", "EQPS")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.75, 0.55, 0.36)
    +SetView3D(v)
    +
    +Test("exodus_01")
    +
    +s = SILRestriction()
    +sets = s.SetsInCategory("ElementBlock")
    +s.TurnOffSet(sets[0])
    +s.TurnOffSet(sets[1])
    +s.TurnOffSet(sets[2])
    +SetPlotSILRestriction(s)
    +
    +Test("exodus_02")
    +
    +SetTimeSliderState(18)
    +Test("exodus_03")
    +
    +files = s.SetsInCategory("File")
    +s.TurnOffSet(files[3])
    +SetPlotSILRestriction(s)
    +Test("exodus_04")
    +
    +ToggleMaintainViewMode()
    +d = DisplaceAttributes()
    +d.variable = "DISPL"
    +SetDefaultOperatorOptions(d)
    +AddOperator("Displace")
    +DrawPlots()
    +Test("exodus_05")
    +ToggleMaintainViewMode()
    +
    +TestSection("Testing SHELL4 support")
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/balls.e.4.* database"))
    +OpenDatabase(data_path("exodus_test_data/aircraft.exoII"))
    +
    +AddPlot("Mesh", "Mesh")
    +DrawPlots()
    +v = View3DAttributes()
    +v.viewNormal = (-0.51221, 0.429119, 0.743974)
    +v.focus = (0, 0, -4)
    +v.viewUp = (0.222628, 0.902964, -0.367549)
    +v.viewAngle = 30
    +v.parallelScale = 66
    +v.nearPlane = -132
    +v.farPlane = 132
    +v.imagePan = (-0.0367114, 0.0152384)
    +v.imageZoom = 1.51675
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, -4)
    +SetView3D(v)
    +Test("exodus_06")
    +
    +TestSection("Testing support element block names")
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/aircraft.exoII"))
    +OpenDatabase(data_path("exodus_test_data/test.exo"))
    +
    +AddPlot("Subset", "ElementBlock")
    +AddPlot("Label", "ElementBlock")
    +DrawPlots()
    +Test("exodus_07")
    +
    +TestSection("Testing 2D \"NSIDED\" element type")
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/test.exo"))
    +OpenDatabase(data_path("exodus_test_data/porflow5_2_1_r1.exo"))
    +
    +AddPlot("Mesh","Mesh")
    +DrawPlots()
    +v = View2DAttributes()
    +v.windowCoords = (-115, 70, -80, 100)
    +SetView2D(v)
    +Test("exodus_08")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/porflow5_2_1_r1.exo"))
    +OpenDatabase(data_path("exodus_test_data/kassbohm1.exo"))
    +AddPlot("Mesh","Mesh")
    +DrawPlots()
    +v = View3DAttributes()
    +v.viewNormal = (-0.664463, 0.34202, 0.664463)
    +v.focus = (1, 1, 0.75)
    +v.viewUp = (0.241845, 0.939693, -0.241845)
    +v.parallelScale = 3.25
    +v.nearPlane = -6.5
    +v.farPlane = 6.5
    +v.imageZoom = 1.5
    +SetView3D(v)
    +Test("exodus_09")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/kassbohm1.exo"))
    +OpenDatabase(data_path("exodus_test_data/dodecahedron.exo"))
    +AddPlot("Mesh","Mesh")
    +DrawPlots()
    +ResetView()
    +Test("exodus_10")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/dodecahedron.exo"))
    +OpenDatabase(data_path("exodus_test_data/tri3.exo"))
    +AddPlot("Mesh","Mesh")
    +AddPlot("Pseudocolor","elem_map")
    +DrawPlots()
    +ResetView()
    +Test("exodus_11")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/tri3.exo"))
    +OpenDatabase(data_path("exodus_test_data/tri6.exo"))
    +AddPlot("Mesh","Mesh")
    +AddPlot("Pseudocolor","elem_map")
    +DrawPlots()
    +ResetView()
    +Test("exodus_12")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/tri6.exo"))
    +OpenDatabase(data_path("exodus_test_data/exo-plugin-problem-kassbohm.exo"))
    +AddPlot("Pseudocolor","SP1_S11_avg")
    +DrawPlots()
    +ResetView()
    +Test("exodus_13a")
    +DeleteAllPlots()
    +AddPlot("Pseudocolor","SP3_S11_avg")
    +DrawPlots()
    +Test("exodus_13b")
    +DeleteAllPlots()
    +AddPlot("Mesh","Mesh")
    +AddPlot("Subset","ElementBlock")
    +DrawPlots()
    +ResetView()
    +Test("exodus_13c")
    +
    +s = SILRestriction()
    +ebsets = s.SetsInCategory("ElementBlock")
    +s.TurnOffSet(ebsets[1]) # SHELL
    +SetPlotSILRestriction(s)
    +sa = SubsetAttributes()
    +sa.lineWidth = 4
    +SetPlotOptions(sa)
    +Test("exodus_14")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/exo-plugin-problem-kassbohm.exo"))
    +exoOpts = GetDefaultFileOpenOptions("Exodus")
    +exoOpts['Automagically Detect Compound Variables'] = 1
    +exoOpts['Use Material Convention'] = 1 # ALEGRA
    +SetDefaultFileOpenOptions("Exodus", exoOpts)
    +OpenDatabase(data_path("exodus_test_data/snl_data/mixed2d/explwire2d.exo.8.* database"))
    +AddPlot("FilledBoundary", "Materials")
    +DrawPlots()
    +ResetView()
    +Test("exodus_15")
    +TimeSliderSetState(5)
    +Test("exodus_16")
    +DeleteAllPlots()
    +AddPlot("Vector","VELOCITY")
    +DrawPlots()
    +Test("exodus_17")
    +TimeSliderNextState()
    +Test("exodus_18")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/snl_data/mixed2d/explwire2d.exo.8.* database"))
    +OpenDatabase(data_path("exodus_test_data/snl_data/mixed3d/coax3D-wedge-tm.exo.8.* database"))
    +AddPlot("FilledBoundary", "Materials")
    +DrawPlots()
    +ResetView()
    +Test("exodus_19")
    +TimeSliderSetState(4)
    +Test("exodus_20")
    +
    +s = SILRestriction()
    +msets = s.SetsInCategory("Materials")
    +s.TurnOffSet(msets[1])
    +SetPlotSILRestriction(s)
    +Test("exodus_21")
    +s.TurnOnSet(msets[1])
    +s.TurnOffSet(msets[2])
    +SetPlotSILRestriction(s)
    +Test("exodus_22")
    +
    +TestSection("High Order Elements")
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/snl_data/mixed3d/coax3D-wedge-tm.exo.8.* database"))
    +OpenDatabase(data_path("exodus_test_data/sphere-HEX20.ex2"))
    +AddPlot("Pseudocolor","coordx")
    +DrawPlots()
    +ResetView()
    +Test("exodus_23")
    +AddOperator("Slice")
    +DrawPlots()
    +Test("exodus_24")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/sphere-HEX20.ex2"))
    +OpenDatabase(data_path("exodus_test_data/sphere-HEX27.ex2"))
    +AddPlot("Pseudocolor","coordx")
    +DrawPlots()
    +ResetView()
    +Test("exodus_25")
    +AddOperator("Slice")
    +DrawPlots()
    +Test("exodus_26")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/sphere-HEX27.ex2"))
    +OpenDatabase(data_path("exodus_test_data/abl_551/abl_5km_5km_1km_neutral.e.8.* database"))
    +AddPlot("Contour","velocity_magnitude")
    +ca = ContourAttributes()
    +ca.contourMethod = ca.Value
    +ca.contourValue = (7)
    +SetPlotOptions(ca)
    +DrawPlots()
    +ResetView()
    +Test("exodus_27")
    +v = GetView3D()
    +v.RotateAxis(1,-30)
    +SetView3D(v)
    +Test("exodus_28")
    +v.RotateAxis(1,-30)
    +SetView3D(v)
    +Test("exodus_29")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/abl_551/abl_5km_5km_1km_neutral.e.8.* database"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_export_db.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_export_db.html new file mode 100644 index 000000000..9e276e84d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_export_db.html @@ -0,0 +1,488 @@ + +Results for databases/export_db.py + +

    Results of VisIt Regression Test - databases/export_db

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    export_db_010.000.00
    export_db_020.000.00
    export_db_030.000.00
    export_db_040.000.00
    Test export of some surfaces.
    export_db_1_000.000.00
    export_db_1_010 modifications totalling 0 lines
    export_db_1_020.000.00
    export_db_1_030.000.00
    export_db_1_040.000.00
    export_db_1_050.000.00
    export_db_1_060.000.00
    export_db_1_070.000.00
    export_db_1_080.000.00
    export_db_1_090.000.00
    export_db_1_100.000.00
    export_db_1_110.000.00
    export_db_1_120.000.00
    export_db_1_130.000.00
    export_db_1_140.000.00
    export_db_1_150.000.00
    export_db_1_160.000.00
    export_db_1_170.000.00
    export_db_1_180.000.00
    export_db_1_190.000.00
    export_db_1_200.000.00
    Test export with write groups (parallel).
    export_db_2_000.000.00
    export_db_2_010.000.00
    export_db_2_01fn0 modifications totalling 0 lines
    export_db_2_020.000.00
    export_db_2_02fn0 modifications totalling 0 lines
    export_db_2_030.000.00
    export_db_2_03fn0 modifications totalling 0 lines
    export_db_2_040.000.00
    export_db_2_04fn0 modifications totalling 0 lines
    export_db_2_050.000.00
    export_db_2_05fn0 modifications totalling 0 lines
    export_db_2_060.000.00
    export_db_2_06fn0 modifications totalling 0 lines
    export_db_2_070.000.00
    export_db_2_07fn0 modifications totalling 0 lines
    export_db_2_080.000.00
    export_db_2_08fn0 modifications totalling 0 lines
    export_db_2_090.000.00
    export_db_2_09fn0 modifications totalling 0 lines
    export_db_2_100.000.00
    export_db_2_10fn0 modifications totalling 0 lines
    export_db_2_110.000.00
    export_db_2_11fn0 modifications totalling 0 lines
    export_db_2_120.000.00
    export_db_2_12fn0 modifications totalling 0 lines
    export_db_2_130.000.00
    export_db_2_13fn0 modifications totalling 0 lines
    export_db_2_140.000.00
    export_db_2_14fn0 modifications totalling 0 lines
    export_db_2_150.000.00
    export_db_2_15fn0 modifications totalling 0 lines
    export_db_2_160.000.00
    export_db_2_16fn0 modifications totalling 0 lines
    export_db_2_170.000.00
    export_db_2_17fn0 modifications totalling 0 lines
    export_db_2_180.000.00
    export_db_2_18fn0 modifications totalling 0 lines
    Test Tecplot multiblock export.
    export_db_3_000.000.00
    export_db_3_010.000.00
    export_db_3_020.000.00
    export_db_3_030.000.00
    export_db_3_040.000.00
    Test VTK multiblock export.
    export_db_4_010.000.00
    export_db_4_020.000.00
    export_db_4_030.000.00
    export_db_4_040.000.00
    export_db_4_050.000.00
    Test bov export with and without compression.
    test_bov_uncompressed.bov exists
     "True" .eq. "True" : True
    test_bov_uncompressed.bof exists
     "True" .eq. "True" : True
    export_db_5_010.000.00
    test_bov_gzip.bov exists
     "True" .eq. "True" : True
    test_bov_gzip.bof.gz exists
     "True" .eq. "True" : True
    export_db_5_020.000.00
    export_db_vtk_tets_ucd3d0 modifications totalling 0 lines
    export_db_vtk_tets_specmix_ucd0 modifications totalling 0 lines
    Test htg export.
    globe.dx.htg0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_export_db_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_export_db_py.html new file mode 100644 index 000000000..79eeff4c5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_export_db_py.html @@ -0,0 +1,611 @@ +databases/export_db.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  export_db.py
    +#
    +#  Tests:      mesh      - 3D unstructured
    +#              plots     - Pseudocolor
    +#
    +#  Defect ID:  '6288, '6290, '6587, '6366
    +#
    +#  Programmer: Hank Childs
    +#  Date:       July 1, 2005
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Thu Sep 15 16:33:48 PDT 2005
    +#    Add test for exporting CMFEs as secondary variables ('6587)
    +#
    +#    Kathleen Bonnell, Tue May  2 08:58:01 PDT 2006
    +#    Corrected exported database names (from .visit to .vtk).
    +#
    +#    Hank Childs, Wed Mar 28 11:33:16 PDT 2007
    +#    Uncommented tests for '6366, which were previously checked in, but
    +#    commented out.
    +#
    +#    Mark C. Miller Fri Aug  8 09:11:44 PDT 2008
    +#    Fixed typo of missing '()' on call to DeleteAllPlots
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to switch between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Wed Feb 25 14:08:53 PST 2015
    +#    Add Mesh Plot for silo data exported as VTK, to test that mesh name
    +#    was properly exported.
    +#
    +#    Kathleen Biagas, Fri Feb 17, 2017
    +#    Update for new VTK export options.  Added test4, which tests the new
    +#    options.
    +#
    +#    Alister Maguire, Thu Apr 26 13:31:31 PDT 2018
    +#    Added test for bov compression.
    +#
    +#    Kathleen Biagas, Wed May 16, 2018
    +#    Use python's gzip instead of subprocess('gunzip') so test will run
    +#    correctly on Windows.  Modified AssertTrue calls to have text stating
    +#    what is being tested.
    +#
    +#    Mark C. Miller, Wed Apr 10 10:24:32 PDT 2019
    +#    Add tetrahedralize test
    +#
    +#    Mark C. Miller, Mon Jan 11 10:32:17 PST 2021
    +#    Replace AssertTrue() with TestValueEQ(..., True)
    +#
    +#    Kathleen Biagas, Thu Jun 24, 2021
    +#    Moved test for exporting and plotting different formats to new function.
    +#    Added testing of the export-and-plot with changed dirname. (#5462)
    +#    Removed cleanup_files since temporary files are written to the _run dir
    +#    which gets removed on exit (unless --no-cleanup specified).
    +#
    +#    Eric Brugger, Mon May 1 15:28:30 PST 2023
    +#    Added HTG export test.
    +#
    +# ----------------------------------------------------------------------------
    +import time
    +import os.path
    +import subprocess
    +import fnmatch
    +
    +def test0():
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    AddPlot("Pseudocolor", "t")
    +    DrawPlots()
    +
    +    # Set the export database attributes.
    +    e = ExportDBAttributes()
    +    e.db_type = "VTK"
    +    e.filename = "test_ex_db"
    +    ExportDatabase(e)
    +    time.sleep(1)
    +
    +    e.variables = ("u", "v")
    +    e.filename = "test_ex_db2"
    +    e.db_type = "Silo"
    +    ExportDatabase(e)
    +    time.sleep(1)
    +
    +    DeleteAllPlots()
    +#    CloseDatabase(silo_data_path("globe.silo"))
    +
    +    OpenDatabase("test_ex_db.vtk")
    +    AddPlot("Pseudocolor", "t")
    +    DrawPlots()
    +    Test("export_db_01")
    +    DeleteAllPlots()
    +#    CloseDatabase("test_ex_db.vtk")
    +
    +    OpenDatabase("test_ex_db2.silo")
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    Test("export_db_02")
    +    DeleteAllPlots()
    +#    CloseDatabase("test_ex_db2.silo")
    +
    +    OpenDatabase(silo_data_path("wave.visit"))
    +    DefineScalarExpression("cmfe", "conn_cmfe(coord(<%s:quadmesh>)[1], quadmesh)" % cmfe_silo_data_path("wave0020.silo"))
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    e.variables = ("cmfe")
    +    e.filename = "test_ex_db3"
    +    e.db_type = "VTK"
    +    ExportDatabase(e)
    +    time.sleep(1)
    +    DeleteAllPlots()
    +
    +    DeleteExpression("cmfe")
    +    OpenDatabase("test_ex_db3.vtk")
    +    AddPlot("Pseudocolor", "cmfe")
    +    DrawPlots()
    +    Test("export_db_03")
    +
    +    # Ensure meshname was written by creating mesh plot with old db's meshname
    +    AddPlot("Mesh", "quadmesh")
    +    DrawPlots()
    +    Test("export_db_04")
    +    DeleteAllPlots()
    +#    CloseDatabase("test_ex_db3.vtk")
    +#    CloseDatabase(silo_data_path("wave.visit"))
    +
    +def VTK_check_binary(filename):
    +    if (sys.version_info > (3, 0)):
    +        f = open(filename, "rt", encoding='utf-8', errors='ignore')
    +    else:
    +        f = open(filename, "rt")
    +    line = ""
    +    for i in (0,1,2):
    +        line = f.readline()
    +    b = "BINARY" == line[0:6]
    +    return b
    +
    +
    +# Test exporting some surfaces in other formats and plotting the results.
    +# e = ExportDBAttributes
    +# v = View3D
    +# a = AnnotationAttributes
    +# count = current test number (used for test names)
    +# usingWriteGroups = True or False
    +
    +def export_and_plot(e, v, a, count, usingWriteGroups):
    +
    +    # formats fields:
    +    # {DBName: (no-write-group exported name to read, write-group exported name to read, plot type, var name)}
    +
    +    formats = { "PLY":          ("export_PLY.ply",          "*.ply",         "Subset",      "PLY_mesh"),
    +                "RAW":          ("export_RAW.raw",          "*.raw",         "Subset",      "mesh"),
    +                "STL":          ("export_STL.stl",          "*.stl",         "Subset",      "STL_mesh"),
    +                "Silo":         ("export_Silo.silo",        "wg_Silo.silo",  "Pseudocolor", "u"),
    +                "Tecplot":      ("export_Tecplot.tec",      "*.tec",         "Pseudocolor", "u"),
    +                "VTK":          ("export_VTK.visit",        "wg_VTK.visit",  "Pseudocolor", "u"),
    +                "WavefrontOBJ": ("export_WavefrontOBJ.obj", "*.obj",         "Subset",      "OBJMesh"),
    +                "XYZ":          ("export_XYZ.xyz",          "*.xyz",         "Subset",      "mesh"),
    +                "Xmdv":         ("export_Xmdv.visit",       "wg_Xmdv.visit", "Pseudocolor", "u")
    +              }
    +
    +    keys = sorted(formats.keys())
    +    test_name_base="export_db_%d"%(2 if usingWriteGroups else 1)
    +
    +    # do all the exports
    +    for f in keys:
    +        export_name="%s_%s"%("wg" if usingWriteGroups else "export", f)
    +        e.db_type = f
    +        e.db_type_fullname = f + "_1.0"
    +        e.filename = export_name
    +        ExportDatabase(e)
    +        time.sleep(1)
    +
    +    # now attempt to read the exported files
    +    if usingWriteGroups:
    +        files = sorted(fnmatch.filter(os.listdir(e.dirname), "wg_*"))
    +    for f in keys:
    +        # Add the exported data in window 2.
    +        AddWindow()
    +
    +        pattern = formats[f][1] if usingWriteGroups else formats[f][0]
    +        filelist=""
    +        opendbs = []
    +
    +        if pattern[0] == '*':
    +            # Read all of the filenames
    +            ext = pattern[2:]
    +            for datafile in files:
    +                if datafile[-len(ext):] == ext:
    +                    if OpenDatabase(datafile):
    +                        AddPlot(formats[f][2], formats[f][3])
    +                        opendbs = opendbs + [datafile]
    +                        filelist = filelist + datafile + "\n"
    +            DrawPlots()
    +        else:
    +            if OpenDatabase(pjoin(e.dirname, pattern)):
    +                md = GetMetaData(pattern)
    +                AddPlot(formats[f][2], formats[f][3])
    +                DrawPlots()
    +                if usingWriteGroups:
    +                    opendbs = opendbs + [pattern]
    +                    filelist = filelist + pattern + "\n"
    +            else:
    +                if not usingWriteGroups:
    +                    files = os.listdir(e.dirname)
    +                    files.sort()
    +                    s = ""
    +                    for fn in files:
    +                        if pattern in fn:
    +                            s = fn + "\n"
    +                    TestText("files", s)
    +                else:
    +                    filelist = "ERROR: " + "\n".join(os.listdir("."))
    +
    +        t = CreateAnnotationObject("Text2D")
    +        t.text = f
    +        t.position = (0.01, 0.91)
    +        t.height = 0.07
    +        SetView3D(v)
    +        SetAnnotationAttributes(a)
    +        Test("%s_%02d"%(test_name_base, count))
    +        if usingWriteGroups:
    +            TestText("%s_%02dfn"%(test_name_base, count),filelist)
    +        count=count+1
    +
    +        # Clean up window 2
    +        DeleteAllPlots()
    +        #if not usingWriteGroups:
    +        #    CloseDatabase(pattern)
    +        #else:
    +        #    for db in opendbs:
    +        #        CloseDatabase(db)
    +        DeleteWindow()
    +
    +    return count
    +
    +def test1():
    +    TestSection("Test export of some surfaces.")
    +    maindb = silo_data_path("multi_rect3d.silo")
    +    OpenDatabase(maindb)
    +    DefineScalarExpression("rad", "magnitude(coords(mesh1))")
    +    AddPlot("Pseudocolor", "u")
    +    AddOperator("Isosurface")
    +    iso = IsosurfaceAttributes()
    +    iso.contourValue = (0.55, 1.455)
    +    iso.contourMethod = iso.Value
    +    iso.variable = "rad"
    +    SetOperatorOptions(iso)
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.467474, 0.301847, 0.830877)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.140705, 0.953323, -0.267166)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.imagePan = (-0.0154649, 0.027457)
    +    v.imageZoom = 1.14276
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 0.5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +    Test("export_db_1_00")
    +
    +    # Test VTK binary
    +    e = ExportDBAttributes()
    +    e.db_type = "VTK"
    +    e.filename = "binary_VTK"
    +    opts = GetExportOptions("VTK")
    +    #opts['Binary format'] = 1
    +    opts['FileFormat'] = 1
    +    ExportDatabase(e, opts)
    +    time.sleep(1)
    +    line = "The binary_VTK.0.vtk file is NOT binary.\n\n"
    +    visitfile = " ".join(open("binary_VTK.visit").readlines())
    +    if VTK_check_binary("binary_VTK/binary_VTK.0.vtk"):
    +        line = "The binary_VTK.0.vtk file is binary.\n\n"
    +    s = line + visitfile
    +    TestText("export_db_1_01", s)
    +
    +    a = GetAnnotationAttributes()
    +
    +    AddWindow()
    +    OpenDatabase("binary_VTK.visit")
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    t = CreateAnnotationObject("Text2D")
    +    t.text = "VTK"
    +    t.position = (0.01, 0.91)
    +    t.height = 0.07
    +    SetView3D(v)
    +    SetAnnotationAttributes(a)
    +    Test("export_db_1_02")
    +#    CloseDatabase("binary_VTK.visit")
    +    DeleteWindow()
    +
    +    # Test exporting some surfaces in other formats and plotting the results.
    +
    +    count = 3
    +    count = export_and_plot(e, v, a, count, False)
    +
    +    # change directory and retry the export_and_plot
    +    edir = pjoin(TestEnv.params["run_dir"], "exports")
    +    if not os.path.isdir(edir):
    +        os.mkdir(edir)
    +    e.dirname=edir
    +
    +    export_and_plot(e, v, a, count, False)
    +
    +    # Clean up window 1
    +    DeleteAllPlots()
    +#    CloseDatabase(maindb)
    +
    +def test2(writeGroupSize):
    +    TestSection("Test export with write groups (parallel).")
    +    maindb = silo_data_path("multi_rect3d.silo")
    +    OpenDatabase(maindb)
    +    DefineScalarExpression("rad", "magnitude(coords(mesh1))")
    +    AddPlot("Pseudocolor", "u")
    +    AddOperator("Isosurface")
    +    iso = IsosurfaceAttributes()
    +    iso.contourValue = (0.55, 1.455)
    +    iso.contourMethod = iso.Value
    +    iso.variable = "rad"
    +    SetOperatorOptions(iso)
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.467474, 0.301847, 0.830877)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.140705, 0.953323, -0.267166)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.imagePan = (-0.0154649, 0.027457)
    +    v.imageZoom = 1.14276
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 0.5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +    Test("export_db_2_00")
    +
    +    a = GetAnnotationAttributes()
    +
    +    # Test exporting some surfaces in other formats and plotting the results.
    +    e = ExportDBAttributes()
    +    e.writeUsingGroups = 1
    +    e.groupSize = writeGroupSize
    +    count = 1
    +    count = export_and_plot(e, v, a, count, True)
    +
    +    # change directory and retry the export_and_plot
    +    edir = pjoin(TestEnv.params["run_dir"], "exports_2")
    +    if not os.path.isdir(edir):
    +        os.mkdir(edir)
    +    e.dirname=edir
    +
    +    export_and_plot(e, v, a, count, True)
    +
    +    # Clean up window 1
    +    DeleteAllPlots()
    +#    CloseDatabase(maindb)
    +
    +def test3():
    +    TestSection("Test Tecplot multiblock export.")
    +    maindb = silo_data_path("multi_rect3d.silo")
    +    OpenDatabase(maindb)
    +    DefineScalarExpression("rad", "magnitude(coords(mesh))")
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.467474, 0.301847, 0.830877)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.140705, 0.953323, -0.267166)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.imagePan = (-0.0154649, 0.027457)
    +    v.imageZoom = 1.14276
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 0.5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +    Test("export_db_3_00")
    +    a = GetAnnotationAttributes()
    +
    +    e = ExportDBAttributes()
    +    e.db_type = "Tecplot"
    +    e.db_type_fullname = "Tecplot_1.0"
    +    e.filename = "rectTecplot"
    +    e.writeUsingGroups = 0
    +    e.variables = ("default", "v", "rad")
    +    ExportDatabase(e)
    +    time.sleep(1)
    +
    +    # Add the exported database in window 2
    +    AddWindow()
    +    OpenDatabase("rectTecplot.tec")
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    SetAnnotationAttributes(a)
    +    SetView3D(v)
    +    Test("export_db_3_01")
    +    ChangeActivePlotsVar("v")
    +    Test("export_db_3_02")
    +    ChangeActivePlotsVar("rad")
    +    Test("export_db_3_03")
    +
    +    # Make sure we have volume data
    +    AddOperator("ThreeSlice")
    +    atts = ThreeSliceAttributes()
    +    atts.y = 0.5
    +    atts.x = 0.5
    +    atts.z = 0.5
    +    SetOperatorOptions(atts)
    +    DrawPlots()
    +    Test("export_db_3_04")
    +
    +    # Clean up window 2
    +    DeleteAllPlots()
    +#    CloseDatabase("rectTecplot.tec")
    +    DeleteWindow()
    +
    +    # Back to window 1
    +    DeleteAllPlots()
    +#    CloseDatabase(maindb)
    +
    +def test4():
    +    TestSection("Test VTK multiblock export.")
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    Test("export_db_4_01")
    +
    +    e = ExportDBAttributes()
    +    e.db_type = "VTK"
    +    e.filename = "multi_rect3d_LA"
    +    opts = GetExportOptions("VTK")
    +    opts['FileFormat'] = "Legacy Ascii"
    +    ExportDatabase(e, opts)
    +    time.sleep(1)
    +    ReplaceDatabase("multi_rect3d_LA.visit")
    +    Test("export_db_4_02")
    +
    +    e.filename = "multi_rect3d_LB"
    +    opts['FileFormat'] = "Legacy Binary"
    +    ExportDatabase(e, opts)
    +    time.sleep(1)
    +    ReplaceDatabase("multi_rect3d_LB.visit")
    +    Test("export_db_4_03")
    +
    +    e.filename = "multi_rect3d_XA"
    +    opts['FileFormat'] = "XML Ascii"
    +    ExportDatabase(e, opts)
    +    time.sleep(1)
    +    ReplaceDatabase("multi_rect3d_XA.vtm")
    +    Test("export_db_4_04")
    +
    +    e.filename = "multi_rect3d_XB"
    +    opts['FileFormat'] = "XML Binary"
    +    ExportDatabase(e, opts)
    +    time.sleep(1)
    +    ReplaceDatabase("multi_rect3d_XB.vtm")
    +    Test("export_db_4_05")
    +
    +    DeleteAllPlots()
    +
    +def test_bov():
    +    TestSection("Test bov export with and without compression.")
    +    maindb = silo_data_path("noise.silo")
    +    OpenDatabase(maindb)
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +
    +    #
    +    # test w/o compression
    +    #
    +    e = ExportDBAttributes()
    +    e.db_type = "BOV"
    +    e.db_type_fullname = "BOV_1.0"
    +    e.filename = "test_bov_uncompressed"
    +    e.variables = ("default")
    +    opts = GetExportOptions("BOV")
    +    opts["Compression"] = "None"
    +    ExportDatabase(e, opts)
    +    time.sleep(1)
    +    TestValueEQ("test_bov_uncompressed.bov exists", os.path.isfile("test_bov_uncompressed.bov"), True)
    +    TestValueEQ("test_bov_uncompressed.bof exists", os.path.isfile("test_bov_uncompressed.bof"), True)
    +    ReplaceDatabase("test_bov_uncompressed.bov")
    +    Test("export_db_5_01")
    +
    +    #
    +    # test w gzip compression
    +    #
    +    e.filename = "test_bov_gzip"
    +    opts["Compression"] = "gzip"
    +    ExportDatabase(e, opts)
    +    time.sleep(1)
    +    TestValueEQ("test_bov_gzip.bov exists", os.path.isfile("test_bov_gzip.bov"), True)
    +    TestValueEQ("test_bov_gzip.bof.gz exists", os.path.isfile("test_bov_gzip.bof.gz"), True)
    +    ReplaceDatabase("test_bov_gzip.bov")
    +    Test("export_db_5_02")
    +
    +    DeleteAllPlots()
    +
    +def test_vtk_tetrahedralize():
    +    dbs_noext = ["ucd3d", "specmix_ucd"]
    +    for db_noext in dbs_noext:
    +        db = "%s.silo"%db_noext
    +        OpenDatabase(silo_data_path(db))
    +        AddPlot("Pseudocolor","d") # both dbs have variable 'd'
    +        DrawPlots()
    +        Query("NumZones")
    +        nzOrig = int(GetQueryOutputValue())
    +
    +        # Test VTK binary
    +        e = ExportDBAttributes()
    +        e.db_type = "VTK"
    +        e.filename = "%s_ascii_VTK_tets"%db_noext
    +        opts = GetExportOptions("VTK")
    +        opts['FileFormat'] = "Legacy Ascii"
    +        opts['Tetrahedralize'] = True
    +        ExportDatabase(e, opts)
    +        time.sleep(1)
    +        DeleteAllPlots()
    +#        CloseDatabase(silo_data_path(db))
    +        OpenDatabase("%s_ascii_VTK_tets.vtk"%db_noext)
    +        AddPlot("Pseudocolor","d")
    +        DrawPlots()
    +        Query("NumZones")
    +        nzNew = int(GetQueryOutputValue())
    +        TestText("export_db_vtk_tets_%s"%db_noext, "Ratio of exported zone count to original is %d"%(nzNew/nzOrig))
    +        DeleteAllPlots()
    +
    +def test_htg():
    +    TestSection("Test htg export.")
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    AddPlot("Pseudocolor", "dx")
    +    AddOperator("Resample")
    +    resample = ResampleAttributes()
    +    resample.useExtents = 0
    +    resample.startX = -10
    +    resample.endX = 10
    +    resample.samplesX = 16
    +    resample.startY = -10
    +    resample.endY = 10
    +    resample.samplesY = 16
    +    resample.is3D = 1
    +    resample.startZ = -10
    +    resample.endZ = 10
    +    resample.samplesZ = 16
    +    resample.defaultValue = -10000
    +    resample.distributedResample = 0
    +    resample.cellCenteredOutput = 1
    +    SetOperatorOptions(resample)
    +    DrawPlots()
    +
    +    e = ExportDBAttributes()
    +    e.db_type = "HTG"
    +    e.filename = "globe"
    +    opts = GetExportOptions("HTG")
    +    opts['Blank value'] = -10000
    +    ExportDatabase(e, opts)
    +
    +    htg_text = Path('globe.dx.htg').read_text()
    +
    +    TestText("globe.dx.htg", htg_text)
    +
    +    DeleteAllPlots()
    +
    +def main():
    +    test0()
    +    test1()
    +    if GetEngineProperties(GetEngineList()[0]).numProcessors > 1:
    +        # We just use 2 processors normally so let's set the write group size
    +        # to 1 so each rank will write its own data using a different write
    +        # group. For certain formats, there will be 1 data file per write
    +        # group, or in this case 2 output files.
    +        test2(1)
    +    test3()
    +    test4()
    +    test_bov()
    +    test_vtk_tetrahedralize()
    +    test_htg()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_ffp.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_ffp.html new file mode 100644 index 000000000..6635c7d37 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_ffp.html @@ -0,0 +1,60 @@ + +Results for databases/ffp.py + +

    Results of VisIt Regression Test - databases/ffp

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ffp_000.000.00
    ffp_010.000.00
    ffp_020.000.00
    ffp_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_ffp_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_ffp_py.html new file mode 100644 index 000000000..349afd899 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_ffp_py.html @@ -0,0 +1,260 @@ +databases/ffp.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ffp.py
    +#
    +#  Programmer: Olivier Cessenat
    +#  Tue May  8 21:49:21 PDT 2018
    +#
    +#  Modifications:
    +#     Eddie Rusu, Tue Apr 13 12:08:59 PDT 2021
    +#     Changed Pseudocolor CurrentPlot to ActualData.
    +# ----------------------------------------------------------------------------
    +TurnOffAllAnnotations()
    +
    +OpenDatabase(data_path("ffp_test_data/nasa_almond_pec.ffp.gz"), 0, "ffp_1.0")
    +AddPlot("Pseudocolor", "cffp", 1, 1)
    +# Begin spontaneous state
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.160095, 0.96257, 0.218697)
    +View3DAtts.focus = (0, 0, 0)
    +View3DAtts.viewUp = (-0.983472, 0.136561, 0.118883)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 3.4641
    +View3DAtts.nearPlane = -6.9282
    +View3DAtts.farPlane = 6.9282
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1.21
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (0, 0, 0)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +View3DAtts.windowValid = 1
    +SetView3D(View3DAtts)
    +# End spontaneous state
    +
    +DrawPlots()
    +SaveWindowAtts = SaveWindowAttributes()
    +SaveWindowAtts.outputToCurrentDirectory = 1
    +SaveWindowAtts.outputDirectory = "."
    +SaveWindowAtts.fileName = "nasa_almond_pec"
    +SaveWindowAtts.family = 1
    +SaveWindowAtts.format = SaveWindowAtts.PNG  # BMP, CURVE, JPEG, OBJ, PNG, POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA, VTK, PLY
    +SaveWindowAtts.width = 1024
    +SaveWindowAtts.height = 1024
    +SaveWindowAtts.screenCapture = 0
    +SaveWindowAtts.saveTiled = 0
    +SaveWindowAtts.quality = 80
    +SaveWindowAtts.progressive = 0
    +SaveWindowAtts.binary = 0
    +SaveWindowAtts.stereo = 0
    +SaveWindowAtts.compression = SaveWindowAtts.PackBits  # None, PackBits, Jpeg, Deflate
    +SaveWindowAtts.forceMerge = 0
    +SaveWindowAtts.resConstraint = SaveWindowAtts.ScreenProportions  # NoConstraint, EqualWidthHeight, ScreenProportions
    +SaveWindowAtts.advancedMultiWindowSave = 0
    +SetSaveWindowAttributes(SaveWindowAtts)
    +Test("ffp_00", SaveWindowAtts)
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("ffp_test_data/nasa_almond_pec.ffp.gz"))
    +
    +# Test standard ffp format
    +OpenDatabase(data_path("ffp_test_data/sphereMie.ffp"), 0)
    +AddPlot("Pseudocolor", "mffp", 1, 1)
    +PseudocolorAtts = PseudocolorAttributes()
    +PseudocolorAtts.scaling = PseudocolorAtts.Skew  # Linear, Log, Skew
    +PseudocolorAtts.skewFactor = 10000
    +PseudocolorAtts.limitsMode = PseudocolorAtts.OriginalData  # OriginalData, ActualData
    +PseudocolorAtts.minFlag = 0
    +PseudocolorAtts.min = 0
    +PseudocolorAtts.maxFlag = 0
    +PseudocolorAtts.max = 1
    +PseudocolorAtts.centering = PseudocolorAtts.Natural  # Natural, Nodal, Zonal
    +PseudocolorAtts.colorTableName = "hot"
    +PseudocolorAtts.invertColorTable = 0
    +PseudocolorAtts.opacityType = PseudocolorAtts.FullyOpaque  # ColorTable, FullyOpaque, Constant, Ramp, VariableRange
    +PseudocolorAtts.opacityVariable = ""
    +PseudocolorAtts.opacity = 1
    +PseudocolorAtts.opacityVarMin = 0
    +PseudocolorAtts.opacityVarMax = 1
    +PseudocolorAtts.opacityVarMinFlag = 0
    +PseudocolorAtts.opacityVarMaxFlag = 0
    +PseudocolorAtts.pointSize = 0.05
    +PseudocolorAtts.pointType = PseudocolorAtts.Point  # Box, Axis, Icosahedron, Octahedron, Tetrahedron, SphereGeometry, Point, Sphere
    +PseudocolorAtts.pointSizeVarEnabled = 0
    +PseudocolorAtts.pointSizeVar = "default"
    +PseudocolorAtts.pointSizePixels = 2
    +PseudocolorAtts.lineType = PseudocolorAtts.Line  # Line, Tube, Ribbon
    +PseudocolorAtts.lineWidth = 0
    +#PseudocolorAtts.tubeDisplayDensity = 10
    +PseudocolorAtts.tubeRadiusSizeType = PseudocolorAtts.FractionOfBBox  # Absolute, FractionOfBBox
    +PseudocolorAtts.tubeRadiusAbsolute = 0.125
    +PseudocolorAtts.tubeRadiusBBox = 0.005
    +#PseudocolorAtts.varyTubeRadius = 0
    +#PseudocolorAtts.varyTubeRadiusVariable = ""
    +#PseudocolorAtts.varyTubeRadiusFactor = 10
    +#PseudocolorAtts.endPointType = PseudocolorAtts.NONE  # None, Tails, Heads, Both
    +#PseudocolorAtts.endPointStyle = PseudocolorAtts.Spheres  # Spheres, Cones
    +PseudocolorAtts.endPointRadiusSizeType = PseudocolorAtts.FractionOfBBox  # Absolute, FractionOfBBox
    +PseudocolorAtts.endPointRadiusAbsolute = 1
    +PseudocolorAtts.endPointRadiusBBox = 0.005
    +PseudocolorAtts.endPointRatio = 2
    +PseudocolorAtts.renderSurfaces = 1
    +PseudocolorAtts.renderWireframe = 0
    +PseudocolorAtts.renderPoints = 0
    +PseudocolorAtts.smoothingLevel = 0
    +PseudocolorAtts.legendFlag = 1
    +PseudocolorAtts.lightingFlag = 1
    +SetPlotOptions(PseudocolorAtts)
    +DrawPlots()
    +# Begin spontaneous state
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.782512, 0.282334, 0.554944)
    +View3DAtts.focus = (0, 0, -0.454083)
    +View3DAtts.viewUp = (-0.175089, 0.955097, -0.239027)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 0.557719
    +View3DAtts.nearPlane = -1.11544
    +View3DAtts.farPlane = 1.11544
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (0, 0, -0.454083)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +View3DAtts.windowValid = 1
    +SetView3D(View3DAtts)
    +# End spontaneous state
    +
    +SaveWindowAtts = SaveWindowAttributes()
    +SaveWindowAtts.outputToCurrentDirectory = 1
    +SaveWindowAtts.outputDirectory = "."
    +SaveWindowAtts.fileName = "sphereMie"
    +SaveWindowAtts.family = 1
    +SaveWindowAtts.format = SaveWindowAtts.PNG  # BMP, CURVE, JPEG, OBJ, PNG, POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA, VTK, PLY
    +SaveWindowAtts.width = 1024
    +SaveWindowAtts.height = 1024
    +SaveWindowAtts.screenCapture = 0
    +SaveWindowAtts.saveTiled = 0
    +SaveWindowAtts.quality = 80
    +SaveWindowAtts.progressive = 0
    +SaveWindowAtts.binary = 0
    +SaveWindowAtts.stereo = 0
    +SaveWindowAtts.compression = SaveWindowAtts.PackBits  # None, PackBits, Jpeg, Deflate
    +SaveWindowAtts.forceMerge = 0
    +SaveWindowAtts.resConstraint = SaveWindowAtts.ScreenProportions  # NoConstraint, EqualWidthHeight, ScreenProportions
    +SaveWindowAtts.advancedMultiWindowSave = 0
    +SetSaveWindowAttributes(SaveWindowAtts)
    +Test("ffp_01", SaveWindowAtts)
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("ffp_test_data/sphereMie.ffp"))
    +OpenDatabase(data_path("ffp_test_data/mksn10.ffp"))
    +AddPlot("Pseudocolor", "sffp", 1, 1)
    +AddPlot("Mesh", "sphere", 1, 1)
    +DrawPlots()
    +
    +# Begin spontaneous state
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.382511, -0.663647, 0.642852)
    +View3DAtts.focus = (0, 0, 0)
    +View3DAtts.viewUp = (-0.146698, 0.643316, 0.751415)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 1.73205
    +View3DAtts.nearPlane = -3.4641
    +View3DAtts.farPlane = 3.4641
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (0, 0, 0)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +View3DAtts.windowValid = 1
    +SetView3D(View3DAtts)
    +# End spontaneous state
    +
    +SaveWindowAtts = SaveWindowAttributes()
    +SaveWindowAtts.outputToCurrentDirectory = 1
    +SaveWindowAtts.outputDirectory = "."
    +SaveWindowAtts.fileName = "mksn10"
    +SaveWindowAtts.family = 1
    +SaveWindowAtts.format = SaveWindowAtts.PNG  # BMP, CURVE, JPEG, OBJ, PNG, POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA, VTK, PLY
    +SaveWindowAtts.width = 1024
    +SaveWindowAtts.height = 1024
    +SaveWindowAtts.screenCapture = 0
    +SaveWindowAtts.saveTiled = 0
    +SaveWindowAtts.quality = 80
    +SaveWindowAtts.progressive = 0
    +SaveWindowAtts.binary = 0
    +SaveWindowAtts.stereo = 0
    +SaveWindowAtts.compression = SaveWindowAtts.PackBits  # None, PackBits, Jpeg, Deflate
    +SaveWindowAtts.forceMerge = 0
    +SaveWindowAtts.resConstraint = SaveWindowAtts.ScreenProportions  # NoConstraint, EqualWidthHeight, ScreenProportions
    +SaveWindowAtts.advancedMultiWindowSave = 0
    +SetSaveWindowAttributes(SaveWindowAtts)
    +Test("ffp_02", SaveWindowAtts)
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("ffp_test_data/mksn10.ffp"))
    +OpenDatabase(data_path("ffp_test_data/mksn20.ffp"))
    +AddPlot("Pseudocolor", "cffp", 1, 1)
    +AddPlot("Mesh", "cphere", 1, 1)
    +DrawPlots()
    +
    +# Begin spontaneous state
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (-0.187617, -0.963273, 0.192107)
    +View3DAtts.focus = (0, 0, 0)
    +View3DAtts.viewUp = (0.0378766, 0.188339, 0.981373)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 3.4641
    +View3DAtts.nearPlane = -6.9282
    +View3DAtts.farPlane = 6.9282
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (0, 0, 0)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +View3DAtts.windowValid = 1
    +SetView3D(View3DAtts)
    +# End spontaneous state
    +
    +SaveWindowAtts = SaveWindowAttributes()
    +SaveWindowAtts.outputToCurrentDirectory = 1
    +SaveWindowAtts.outputDirectory = "."
    +SaveWindowAtts.fileName = "mksn20"
    +SaveWindowAtts.family = 1
    +SaveWindowAtts.format = SaveWindowAtts.PNG  # BMP, CURVE, JPEG, OBJ, PNG, POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA, VTK, PLY
    +SaveWindowAtts.width = 1024
    +SaveWindowAtts.height = 1024
    +SaveWindowAtts.screenCapture = 0
    +SaveWindowAtts.saveTiled = 0
    +SaveWindowAtts.quality = 80
    +SaveWindowAtts.progressive = 0
    +SaveWindowAtts.binary = 0
    +SaveWindowAtts.stereo = 0
    +SaveWindowAtts.compression = SaveWindowAtts.PackBits  # None, PackBits, Jpeg, Deflate
    +SaveWindowAtts.forceMerge = 0
    +SaveWindowAtts.resConstraint = SaveWindowAtts.ScreenProportions  # NoConstraint, EqualWidthHeight, ScreenProportions
    +SaveWindowAtts.advancedMultiWindowSave = 0
    +SetSaveWindowAttributes(SaveWindowAtts)
    +Test("ffp_03", SaveWindowAtts)
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("ffp_test_data/mksn20.ffp"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_flash.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_flash.html new file mode 100644 index 000000000..37b3f205b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_flash.html @@ -0,0 +1,42 @@ + +Results for databases/flash.py + +

    Results of VisIt Regression Test - databases/flash

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    flash_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_flash_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_flash_py.html new file mode 100644 index 000000000..efbc33842 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_flash_py.html @@ -0,0 +1,46 @@ +databases/flash.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  flash.py 
    +#
    +#  Tests:      FLASH data 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       March6, 2007 
    +#
    +#  Modifications:
    +#
    +#    Hank Childs and Randy Hudson, Sun Mar  2 15:38:05 PST 2008
    +#    Reflect new naming scheme.
    +#
    +#    Hank Childs, Tue Jan 19 13:29:29 PST 2010
    +#    Go back to original naming scheme.
    +#
    +# ----------------------------------------------------------------------------
    +import os, string
    +
    +RequiredDatabasePlugin("FLASH")
    +
    +SetTryHarderCyclesTimes(1)
    +# the following open command doesn't work (#7873)
    +##OpenDatabase(data_path("FLASH_test_data/orbit_hdf5_chk_0* database"))
    +
    +OpenDatabase(data_path("FLASH_test_data/orbit_hdf5_chk_0000"),0, "FLASH_1.0")
    +
    +
    +AddPlot("Pseudocolor","pden")
    +AddOperator("Clip")
    +c = ClipAttributes()
    +c.funcType = c.Plane
    +c.plane1Origin = (0.5, 0.5, 0.4)
    +c.plane1Normal = (0, 0, 1)
    +SetOperatorOptions(c)
    +DrawPlots()
    +v=GetView3D()
    +v.viewNormal=(-0.707107, 0, 0.707107)
    +v.viewUp=(0, 1, 0)
    +SetView3D(v)
    +Test("flash_01")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_global_node_ids.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_global_node_ids.html new file mode 100644 index 000000000..f89e6fb12 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_global_node_ids.html @@ -0,0 +1,96 @@ + +Results for databases/global_node_ids.py + +

    Results of VisIt Regression Test - databases/global_node_ids

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    global_node_ids010.000.00
    global_node_ids020.000.00
    global_node_ids030.000.00
    global_node_ids040.000.00
    global_node_ids050.000.00
    global_node_ids060.000.00
    global_node_ids070.000.00
    global_node_ids080.000.00
    global_node_ids090.000.00
    global_node_ids100.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_global_node_ids_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_global_node_ids_py.html new file mode 100644 index 000000000..a74f30aa0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_global_node_ids_py.html @@ -0,0 +1,91 @@ +databases/global_node_ids.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  global_node_ids.py
    +#
    +#  Tests:      mesh      - 3D unstructured,multi-domain, global node ids, but
    +#                          no ghost zones.
    +#              plots     - mat subset, domain subset
    +#
    +#  Defect ID:  '5448
    +#
    +#  Programmer: Hank Childs
    +#  Date:       October 5, 2004
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +view = View3DAttributes()
    +view.viewNormal = (0.557976, 0.651128, 0.514485)
    +view.focus = (0.5, 0.5, 0.5)
    +view.viewUp = (-0.0955897, 0.666272, -0.739557)
    +view.viewAngle = 30
    +view.parallelScale = 0.866025
    +view.nearPlane = -1.73205
    +view.farPlane = 1.73205
    +view.perspective = 1
    +SetView3D(view)
    +
    +OpenDatabase(silo_data_path("global_node.silo"))
    +
    +AddPlot("FilledBoundary", "mat")
    +DrawPlots()
    +
    +# Test the normal material plot.
    +Test("global_node_ids01")
    +
    +# Make sure that the ghost zones were generated correctly.
    +view.nearPlane = -0.3
    +SetView3D(view)
    +Test("global_node_ids02")
    +
    +view.nearPlane = -1.73205
    +SetView3D(view)
    +
    +TurnMaterialsOff("1")
    +Test("global_node_ids03")
    +
    +TurnMaterialsOff()
    +TurnMaterialsOn("1")
    +Test("global_node_ids04")
    +
    +DeleteAllPlots()
    +
    +# Test that the SIL from the previous plot is preserved.
    +AddPlot("Subset", "domains")
    +DrawPlots()
    +Test("global_node_ids05")
    +
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "dist")
    +DrawPlots()
    +Test("global_node_ids06")
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +Test("global_node_ids07")
    +
    +DeleteAllPlots()
    +AddPlot("Contour", "dist")
    +DrawPlots()
    +Test("global_node_ids08")
    +
    +DefineScalarExpression("dist2", "recenter(dist)")
    +ChangeActivePlotsVar("dist2")
    +Test("global_node_ids09")
    +
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "dist2")
    +DrawPlots()
    +Test("global_node_ids10")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_h5part.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_h5part.html new file mode 100644 index 000000000..65400d512 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_h5part.html @@ -0,0 +1,60 @@ + +Results for databases/h5part.py + +

    Results of VisIt Regression Test - databases/h5part

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    h5part_010.000.00
    h5part_020.000.00
    h5part_030.000.00
    h5part_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_h5part_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_h5part_py.html new file mode 100644 index 000000000..6436943bf --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_h5part_py.html @@ -0,0 +1,64 @@ +databases/h5part.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  h5part.py
    +#
    +#  Programmer: Gunther Weber 
    +#  Date:       January, 2009 
    +#
    +#  Modifications:
    +#    Mark C. Miller, Wed Jan 21 09:36:13 PST 2009
    +#    Took Gunther's original code and integrated it with test suite.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("H5Part")
    +
    +TurnOffAllAnnotations()
    +
    +OpenDatabase(data_path("h5part_test_data/sample.h5part"), 0)
    +
    +AddPlot("Pseudocolor", "GaussianField", 1, 0)
    +DrawPlots()
    +Test("h5part_01")
    +
    +ChangeActivePlotsVar("LinearField")
    +View3DAtts = GetView3D()
    +View3DAtts.viewNormal = (1.000000, 0.000000, 0.0000000)
    +View3DAtts.focus = (31.5, 31.5, 31.5)
    +View3DAtts.viewUp = (0.000000, 1.000000, 0.0000000)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 54.5596
    +View3DAtts.nearPlane = -109.119
    +View3DAtts.farPlane = 109.119
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (31.5, 31.5, 31.5)
    +SetView3D(View3DAtts)
    +Test("h5part_02")
    +
    +DeleteActivePlots()
    +AddPlot("Pseudocolor", "px", 1, 0)
    +PseudocolorAtts = PseudocolorAttributes()
    +PseudocolorAtts.pointType = PseudocolorAtts.Sphere
    +PseudocolorAtts.pointSize = 1.5
    +SetPlotOptions(PseudocolorAtts)
    +DrawPlots()
    +Test("h5part_03")
    +
    +AddPlot("Pseudocolor", "LinearField", 1, 0)
    +AddOperator("Slice", 0)
    +SliceAtts = SliceAttributes()
    +SliceAtts.originType = SliceAtts.Intercept
    +SliceAtts.originIntercept = 30
    +SliceAtts.axisType = SliceAtts.XAxis
    +SliceAtts.project2d = 0
    +SliceAtts.meshName = "particles"
    +SetOperatorOptions(SliceAtts)
    +DrawPlots()
    +Test("h5part_04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_history.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_history.html new file mode 100644 index 000000000..c0daca5de --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_history.html @@ -0,0 +1,48 @@ + +Results for databases/history.py + +

    Results of VisIt Regression Test - databases/history

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    history_010.000.00
    history_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_history_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_history_py.html new file mode 100644 index 000000000..4781f4d52 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_history_py.html @@ -0,0 +1,47 @@ +databases/history.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial
    +#  CLASSES: nightly
    +#
    +#  Test Case:  history.py 
    +#
    +#  Tests:      variables that only have values for real zones (not ghost zones)
    +#              Some history variables have this property.
    +#
    +#  Programmer: Hank Childs
    +#  Date:       January 9, 2004
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +
    +#
    +# Test that we can detect that there is a problem and add 0's.
    +#
    +AddPlot("Pseudocolor","hist")
    +DrawPlots()
    +
    +v=GetView3D()
    +v.viewNormal=(-0.35, -0.47, -0.8)
    +SetView3D(v)
    +Test("history_01")
    +
    +#
    +# Doing material selection flexes the code in a different way (it confirms
    +# that we can detect the problem immediately upon reading it from the disk).
    +# Test that that works correctly as well.
    +#
    +
    +sil = SILRestriction()
    +sets = sil.SetsInCategory("mat1")
    +sil.TurnOffSet(sets[0])
    +sil.TurnOffSet(sets[2])
    +SetPlotSILRestriction(sil)
    +Test("history_02")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_image.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_image.html new file mode 100644 index 000000000..d5f98ea3e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_image.html @@ -0,0 +1,60 @@ + +Results for databases/image.py + +

    Results of VisIt Regression Test - databases/image

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    image_010.000.00
    image_020.000.00
    image_030.000.00
    image_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_image_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_image_py.html new file mode 100644 index 000000000..7d18cb289 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_image_py.html @@ -0,0 +1,90 @@ +databases/image.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  image.py 
    +#
    +#  Defect ID:  '6277
    +#
    +#  Tests:      image reader and data selections 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       November 4, 2004 
    +#
    +#  Modifications:
    +# 
    +#    Hank Childs, Fri May 20 15:08:37 PDT 2005
    +#    Added tests for image volumes.
    +#
    +#    Jeremy Meredith, Thu Jan 14 12:09:57 EST 2010
    +#    Changed the way the imgvol test file was created.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +#
    +# we'll make all the pc plots gray scale
    +#
    +pcatts=PseudocolorAttributes()
    +pcatts.colorTableName="gray"
    +SetDefaultPlotOptions(pcatts)
    +
    +#
    +# test ability to read an image as usual 
    +#
    +OpenDatabase(data_path("Image_test_data/manhattan.jpg"))
    +
    +
    +AddPlot("Pseudocolor","intensity")
    +DrawPlots()
    +Test("image_01")
    +
    +DeleteAllPlots()
    +
    +#
    +# Test a data selection on a format that cannot
    +# handle it during read. The selection will
    +# occur after WHOLE image is read
    +#
    +AddPlot("Pseudocolor","intensity")
    +box=BoxAttributes()
    +box.minx = 0
    +box.maxx = 100
    +box.miny = 0
    +box.maxy = 100
    +AddOperator("Box")
    +SetOperatorOptions(box)
    +DrawPlots()
    +Test("image_02")
    +
    +DeleteAllPlots()
    +
    +#
    +# Now test a data selection on a format that can
    +# handle selection during read 
    +#
    +OpenDatabase(data_path("Image_test_data/manhattan.pnm"))
    +
    +AddPlot("Pseudocolor","intensity")
    +AddOperator("Box")
    +SetOperatorOptions(box)
    +DrawPlots()
    +Test("image_03")
    +
    +DeleteAllPlots()
    +f = open(data_path("Image_test_data/manhattan.imgvol"), "wt")
    +f.write("Z_STEP:60\n")
    +for i in range(3):
    +   f.write("manhattan.jpg\n")
    +f.close()
    +OpenDatabase(data_path("Image_test_data/manhattan.imgvol"))
    +
    +AddPlot("Contour", "green")
    +c = ContourAttributes()
    +c.contourMethod = c.Value
    +c.contourValue = (128)
    +SetPlotOptions(c)
    +DrawPlots()
    +Test("image_04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_imgvol.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_imgvol.html new file mode 100644 index 000000000..16c9e250d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_imgvol.html @@ -0,0 +1,78 @@ + +Results for databases/imgvol.py + +

    Results of VisIt Regression Test - databases/imgvol

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    imgvol_010.000.00
    imgvol_020.000.00
    imgvol_030.000.00
    imgvol_040.000.00
    imgvol_050.000.00
    imgvol_060.000.00
    imgvol_070.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_imgvol_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_imgvol_py.html new file mode 100644 index 000000000..220741926 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_imgvol_py.html @@ -0,0 +1,67 @@ +databases/imgvol.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  imgvol.py 
    +#
    +#  Tests:      imgvol reader
    +#
    +#  Mark C. Miller, Fri Apr 23 23:01:06 PDT 2010
    +#
    +#  Modifications:
    +# 
    +#    Mark C. Miller, Sun Apr 25 21:30:29 PDT 2010
    +#    Added missing Slice operator for contour plot.
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(data_path("imgvol_test_data/tcup.imgvol"))
    +
    +AddPlot("Pseudocolor","intensity")
    +sa=SliceAttributes()
    +sa.originType = sa.Percent
    +sa.originPercent = 50
    +AddOperator("Slice")
    +SetOperatorOptions(sa)
    +DrawPlots()
    +Test("imgvol_01")
    +
    +ChangeActivePlotsVar("intensity_nodal")
    +DrawPlots()
    +Test("imgvol_02")
    +
    +AddOperator("InverseGhostZone")
    +DrawPlots()
    +Test("imgvol_03")
    +RemoveLastOperator()
    +
    +AddPlot("Contour","intensity")
    +AddOperator("Slice")
    +SetOperatorOptions(sa)
    +ca=ContourAttributes()
    +ca.contourValue = (65,)
    +ca.contourMethod = ca.Value
    +ca.lineWidth = 2
    +SetPlotOptions(ca)
    +DrawPlots()
    +Test("imgvol_04")
    +
    +ChangeActivePlotsVar("intensity")
    +DrawPlots()
    +Test("imgvol_05")
    +
    +DeleteActivePlots()
    +RemoveLastOperator()
    +
    +iv=IsovolumeAttributes()
    +iv.lbound = 65
    +AddOperator("Isovolume")
    +SetOperatorOptions(iv)
    +AddOperator("Slice")
    +SetOperatorOptions(sa)
    +DrawPlots()
    +Test("imgvol_06")
    +
    +ChangeActivePlotsVar("intensity_nodal")
    +Test("imgvol_07")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_kulllite.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_kulllite.html new file mode 100644 index 000000000..f120b7e35 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_kulllite.html @@ -0,0 +1,84 @@ + +Results for databases/kulllite.py + +

    Results of VisIt Regression Test - databases/kulllite

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    kulllite_010.000.00
    kulllite_020.000.00
    kulllite_030.000.00
    kulllite_040.000.00
    kulllite_050.000.00
    kulllite_060.000.00
    kulllite_070.000.00
    kulllite_080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_kulllite_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_kulllite_py.html new file mode 100644 index 000000000..a1a02e925 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_kulllite_py.html @@ -0,0 +1,89 @@ +databases/kulllite.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  kulllite.py
    +#
    +#  Tests:      mesh      - 2D, 3D unstructured
    +#              plots     - Pseudocolor, mesh, boundary, subset
    +#
    +#  Defect ID:  '6251, '6326, '7043
    +#
    +#  Programmer: Hank Childs
    +#  Date:       June 14, 2005
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Thu May 11 11:35:39 PDT 2006
    +#    Test reading of density values.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("KullLite")
    +
    +OpenDatabase(data_path("KullLite_test_data/tagtest_xy_3.pdb"))
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +Test("kulllite_01")
    +
    +DeleteAllPlots()
    +OpenDatabase(data_path("KullLite_test_data/tagtest_rz_1_0.pdb"))
    +
    +AddPlot("FilledBoundary", "Material(mesh)")
    +AddPlot("Mesh", "mesh_tags/edges_mesh")
    +DrawPlots()
    +Test("kulllite_02")
    +
    +DeleteActivePlots()
    +AddPlot("Mesh", "mesh")
    +AddPlot("Mesh", "mesh_tags/nodes_mesh")
    +m = MeshAttributes()
    +m.pointType = m.Box
    +SetPlotOptions(m)
    +DrawPlots()
    +Test("kulllite_03")
    +
    +DeleteAllPlots()
    +AddPlot("FilledBoundary", "mesh_tags/nodes(mesh_tags/nodes_mesh)")
    +fb = FilledBoundaryAttributes()
    +fb.pointType = fb.Box
    +SetPlotOptions(fb)
    +DrawPlots()
    +Test("kulllite_04")
    +
    +DeleteAllPlots()
    +OpenDatabase(data_path("KullLite_test_data/T.pdb"))
    +
    +AddPlot("FilledBoundary", "Material")
    +DrawPlots()
    +Test("kulllite_05")
    +
    +thres = ThresholdAttributes()
    +thres.listedVarNames = ("mesh_quality/shear")
    +thres.upperBounds = (0.5)
    +SetDefaultOperatorOptions(thres)
    +AddOperator("Threshold")
    +DrawPlots()
    +Test("kulllite_06")
    +
    +DeleteAllPlots()
    +
    +# Test reading of densities, for both per-zone quantities and per-zone,
    +# per-material quantities.
    +OpenDatabase(data_path("pdb_test_data/2dOverlayTest21.pdb"))
    +
    +AddPlot("Pseudocolor", "density")
    +DrawPlots()
    +Test("kulllite_07")
    +m = MaterialAttributes()
    +m.forceMIR = 1
    +SetMaterialAttributes(m)
    +ReOpenDatabase(data_path("pdb_test_data/2dOverlayTest21.pdb"))
    +
    +Test("kulllite_08")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_lata.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_lata.html new file mode 100644 index 000000000..9a33a5462 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_lata.html @@ -0,0 +1,126 @@ + +Results for databases/lata.py + +

    Results of VisIt Regression Test - databases/lata

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    lata_000.000.00
    lata_010.000.00
    lata_020.000.00
    lata_030.000.00
    lata_040.000.00
    lata_050.000.00
    lata_060.000.00
    lata_070.000.00
    lata_080.000.00
    lata_090.000.00
    lata_100.000.00
    lata_110.000.00
    lata_120.000.00
    lata_130.000.00
    lata_140.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_lata_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_lata_py.html new file mode 100644 index 000000000..46a0e6f45 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_lata_py.html @@ -0,0 +1,134 @@ +databases/lata.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  lata.py 
    +#
    +TurnOffAllAnnotations()
    +# on change le stride des vecteurs par defaut 
    +vd=VectorAttributes()
    +vd.SetUseStride(1)
    +SetDefaultPlotOptions(vd)
    +OpenDatabase(data_path("Lata_test_data/2D_VDF/PAR_2D_VDF.lata"))
    +
    +AddPlot("Mesh","dom_solide")
    +AddPlot("Pseudocolor","TEMPERATURE_ELEM_dom_solide")
    +AddPlot("Vector","VITESSE_ELEM_dom_fluide")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_00")
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor","TEMPERATURE_SOM_dom_solide")
    +AddPlot("Vector","VITESSE_SOM_dom_fluide")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_01")
    +DeleteAllPlots()
    +
    +AddPlot("Mesh","dom_fluide")
    +AddPlot("Vector","VITESSE_FACES_dom_fluide_dual")
    +AddPlot("Subset", "blocks(dom_solide)")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_02")
    +DeleteAllPlots()
    +CloseDatabase(data_path("Lata_test_data/2D_VDF/PAR_2D_VDF.lata"))
    +
    +OpenDatabase(data_path("Lata_test_data/3D_VDF/PAR_3D_VDF.lata"))
    +AddPlot("Mesh","dom_solide")
    +AddPlot("Pseudocolor","TEMPERATURE_ELEM_dom_solide")
    +AddPlot("Vector","VITESSE_ELEM_dom_fluide")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_03")
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor","TEMPERATURE_SOM_dom_solide")
    +AddPlot("Vector","VITESSE_SOM_dom_fluide")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_04")
    +DeleteAllPlots()
    +
    +AddPlot("Mesh","dom_fluide")
    +AddPlot("Vector","VITESSE_FACES_dom_fluide_dual")
    +AddPlot("Subset", "blocks(dom_solide)")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_05")
    +DeleteAllPlots()
    +CloseDatabase(data_path("Lata_test_data/3D_VDF/PAR_3D_VDF.lata"))
    +
    +OpenDatabase(data_path("Lata_test_data/2D_VEF/PAR_2D_VEF.lata"))
    +AddPlot("Mesh","dom_solide")
    +AddPlot("Pseudocolor","TEMPERATURE_ELEM_dom_solide")
    +AddPlot("Vector","VITESSE_ELEM_dom_fluide")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_06")
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor","TEMPERATURE_SOM_dom_solide")
    +AddPlot("Vector","VITESSE_SOM_dom_fluide")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_07")
    +DeleteAllPlots()
    +
    +AddPlot("Mesh","dom_fluide")
    +AddPlot("Vector","VITESSE_FACES_dom_fluide_dual")
    +AddPlot("Subset", "blocks(dom_solide)")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_08")
    +DeleteAllPlots()
    +
    +AddPlot("Mesh","dom_fluide")
    +AddPlot("Vector","VITESSE_FACES_dom_fluide_centerfaces")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_09")
    +DeleteAllPlots()
    +CloseDatabase(data_path("Lata_test_data/2D_VEF/PAR_2D_VEF.lata"))
    +
    +OpenDatabase(data_path("Lata_test_data/3D_VEF/PAR_3D_VEF.lata"))
    +AddPlot("Mesh","dom_solide")
    +AddPlot("Pseudocolor","TEMPERATURE_ELEM_dom_solide")
    +AddPlot("Vector","VITESSE_ELEM_dom_fluide")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_10")
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor","TEMPERATURE_SOM_dom_solide")
    +AddPlot("Vector","VITESSE_SOM_dom_fluide")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_11")
    +DeleteAllPlots()
    +
    +AddPlot("Mesh","dom_fluide")
    +AddPlot("Vector","VITESSE_FACES_dom_fluide_dual")
    +AddPlot("Subset", "blocks(dom_solide)")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_12")
    +DeleteAllPlots()
    +
    +AddPlot("Mesh","dom_fluide")
    +AddPlot("Vector","VITESSE_FACES_dom_fluide_centerfaces")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_13")
    +DeleteAllPlots()
    +CloseDatabase(data_path("Lata_test_data/3D_VEF/PAR_3D_VEF.lata"))
    +
    +OpenDatabase(data_path("Lata_test_data/./FTD_remaillage_vdf/post.lata"))
    +AddPlot("Mesh","INTERFACES")
    +AddPlot("Pseudocolor","COURBURE_som_INTERFACES")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_14")
    +DeleteAllPlots()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_leos.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_leos.html new file mode 100644 index 000000000..71f391f95 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_leos.html @@ -0,0 +1,66 @@ + +Results for databases/leos.py + +

    Results of VisIt Regression Test - databases/leos

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    leos_010.000.00
    leos_030.000.00
    leos_040.000.00
    leos_050.000.00
    leos_060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_leos_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_leos_py.html new file mode 100644 index 000000000..917b3a6d8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_leos_py.html @@ -0,0 +1,86 @@ +databases/leos.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  leos.py 
    +#
    +#  Tests:      Auto Full Frame Mode
    +#              LEOSFileReader 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       July 20, 2005 
    +#
    +#  Modifications:
    +#    Tom Fogal, Wed Dec 16 13:12:57 MST 2009
    +#    Fixed a bad path.
    +#
    +#    Mark C. Miller, Fri Jan 22 17:30:29 PST 2010
    +#    I replaced OpenDatabase with FindAnd... variant to deal with data
    +#    we don't keep in repo.
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("PDB")
    +
    +OpenMDServer("localhost")
    +readOptions=GetDefaultFileOpenOptions("PDB")
    +readOptions["LEOS try harder level [set to 0, 1 or 2]"] = 1
    +SetDefaultFileOpenOptions("PDB", readOptions)
    +
    +(err, dbname) = FindAndOpenDatabase("sesame.pdb")
    +if (err != 1): Exit(116) # Indicate skip
    +
    +#
    +# Test default full frame (became 'auto' 07Mar06)
    +#
    +AddPlot("Pseudocolor","Calcium_Ca/Pt")
    +DrawPlots()
    +Test("leos_01")
    +
    +v=GetView2D()
    +#
    +# Test auto full frame. This test was obsoleted when
    +# auto ff became the default
    +#
    +#v.fullFrameActivationMode = v.Auto
    +#SetView2D(v)
    +#Test("leos_02")
    +
    +#
    +# Test turning off full frame
    +#
    +v.fullFrameActivationMode = v.Off
    +SetView2D(v)
    +Test("leos_03")
    +
    +#
    +# Test turning on full frame 
    +#
    +v.fullFrameActivationMode = v.On
    +SetView2D(v)
    +Test("leos_04")
    +
    +v.fullFrameActivationMode = v.Auto
    +SetView2D(v)
    +DeleteAllPlots()
    +
    +#
    +# Test Auto full frame when changing plots
    +#
    +AddPlot("Pseudocolor","Water_H2O/Et")
    +DrawPlots()
    +ResetView()
    +v=GetView2D()
    +v.fullFrameActivationMode = v.Auto
    +SetView2D(v)
    +Test("leos_05")
    +
    +#
    +# Test the "catch all" mesh
    +#
    +AddPlot("Mesh","for active plot")
    +DrawPlots()
    +Test("leos_06")
    +
    +DeleteAllPlots()
    +CloseDatabase(dbname)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_lines.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_lines.html new file mode 100644 index 000000000..37f414cf5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_lines.html @@ -0,0 +1,62 @@ + +Results for databases/lines.py + +

    Results of VisIt Regression Test - databases/lines

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Verifying 3D lines
     6 .eq. 6 (prec=5) : True
    mesh_plot_000.000.00
    Verifying 2D lines
     4 .eq. 4 (prec=5) : True
    mesh_plot_010.000.00
    mesh_plot_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_lines_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_lines_py.html new file mode 100644 index 000000000..eb1c7f943 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_lines_py.html @@ -0,0 +1,79 @@ +databases/lines.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  lines.py
    +#
    +#  Tests:      mesh      - 2D lines (unstructured), 3D lines (unstructured)
    +#              plots     - mesh
    +#
    +#  Programmer: Alister Maguire
    +#  Date:       Tue Mar 17 08:50:32 PDT 2020
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Mon Jan 11 10:32:17 PST 2021
    +#    Replace AssertEqual() with TestValueEQ()
    +# ----------------------------------------------------------------------------
    +
    +def TestMeshPlot():
    +
    +    #
    +    # First, let's make sure that 3d lines are read appropriately.
    +    #
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +
    +    OpenDatabase(data_path("lines_test_data/spring.lines"))
    +    AddPlot("Mesh", "Lines", 1, 1)
    +    DrawPlots()
    +    Query("SpatialExtents")
    +
    +    # Check dimensionality.
    +    ext_len = len(GetQueryOutputValue())
    +    TestValueEQ("Verifying 3D lines", ext_len, 6)
    +
    +    # Check the rendering.
    +    Test("mesh_plot_00")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("lines_test_data/spring.lines"))
    +
    +    #
    +    # Next, let's check 2d lines.
    +    #
    +    OpenDatabase(data_path("lines_test_data/2d.lines"))
    +    AddPlot("Mesh", "Lines", 1, 1)
    +    DrawPlots()
    +    Query("SpatialExtents")
    +
    +    # Check dimensionality.
    +    ext_len = len(GetQueryOutputValue())
    +    TestValueEQ("Verifying 2D lines", ext_len, 4)
    +
    +    # Check the rendering.
    +    Test("mesh_plot_01")
    +    DeleteAllPlots()
    +
    +    CloseDatabase(data_path("lines_test_data/2d.lines"))
    +
    +    #
    +    # This test makes sure that consecutive points are only
    +    # removed from one line at a time.
    +    #
    +    OpenDatabase(data_path("lines_test_data/consecutive.lines"))
    +    AddPlot("Mesh", "Lines", 1, 1)
    +    DrawPlots()
    +
    +    # Check the rendering.
    +    Test("mesh_plot_02")
    +    DeleteAllPlots()
    +
    +    CloseDatabase(data_path("lines_test_data/consecutive.lines"))
    +
    +
    +def main():
    +    TestMeshPlot()
    +    Exit()
    +
    +main()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_metadata.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_metadata.html new file mode 100644 index 000000000..e783c4f14 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_metadata.html @@ -0,0 +1,200 @@ + +Results for databases/metadata.py + +

    Results of VisIt Regression Test - databases/metadata

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Getting metadata
    metadata_0_000 modifications totalling 0 lines
    metadata_0_010 modifications totalling 0 lines
    metadata_0_020 modifications totalling 0 lines
    metadata_0_030 modifications totalling 0 lines
    metadata_0_040 modifications totalling 0 lines
    Use the metadata to plot the variables.
    metadata_1_scalar_airVf0.000.00
    metadata_1_scalar_chromeVf0.000.00
    metadata_1_scalar_hardyglobal0.000.00
    metadata_1_scalar_hgslice0.000.00
    metadata_1_scalar_radial0.000.00
    metadata_1_scalar_shepardglobal0.000.00
    metadata_1_scalar_x0.000.00
    metadata_1_scalar_PointVar0.000.00
    metadata_1_scalar_tensor_comps_grad_tensor_ii0.000.00
    metadata_1_scalar_tensor_comps_grad_tensor_ij0.000.00
    metadata_1_scalar_tensor_comps_grad_tensor_ik0.000.00
    metadata_1_scalar_tensor_comps_grad_tensor_ji0.000.00
    metadata_1_scalar_tensor_comps_grad_tensor_jj0.000.00
    metadata_1_scalar_tensor_comps_grad_tensor_jk0.000.00
    metadata_1_scalar_tensor_comps_grad_tensor_ki0.000.00
    metadata_1_scalar_tensor_comps_grad_tensor_kj0.000.00
    metadata_1_scalar_tensor_comps_grad_tensor_kk0.000.00
    metadata_1_vector_airVfGradient0.000.00
    metadata_1_vector_grad0.000.00
    metadata_1_expr_grad_tensor0.000.00
    metadata_1_expr_grad_tensor_diagonal0.000.00
    metadata_1_expr_airVfGradient_magnitude0.000.00
    metadata_1_expr_grad_magnitude0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_metadata_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_metadata_py.html new file mode 100644 index 000000000..2cd0a7ea7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_metadata_py.html @@ -0,0 +1,112 @@ +databases/metadata.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  metadata.py
    +#
    +#  Tests:      Getting a usable metadata object from the viewer.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Mar 14 16:40:31 PST 2007
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +def test0():
    +    TestSection("Getting metadata")
    +
    +    # Get metadata for various test datasets.
    +    md = GetMetaData(silo_data_path("noise.silo") )
    +    TestText("metadata_0_00", str(md))
    +
    +    # Get the metadata for the first time step
    +    md = GetMetaData(silo_data_path("wave*.silo database") )
    +    TestText("metadata_0_01", str(md))
    +
    +    # Get the metadata for the 17th time step where new variables appear
    +    md = GetMetaData(silo_data_path("wave*.silo database") , 17)
    +    TestText("metadata_0_02", str(md))
    +
    +    # Get something with species and default plots.
    +    md = GetMetaData(data_path("samrai_test_data/mats-par3/dumps.visit"))
    +    TestText("metadata_0_03", str(md))
    +
    +    # Get something with label variables
    +    md = GetMetaData(data_path("shapefile_test_data/alameda/tgr06001lkA.shp"))
    +    TestText("metadata_0_04", str(md))
    +
    +def MakeSafe(varname):
    +    ret = varname.replace("/", "_")
    +    ret = ret.replace("(", "[")
    +    ret = ret.replace(")", "]")
    +    ret = ret.replace(":", "_")
    +    ret = ret.replace(",", "_")
    +    ret = ret.replace(";", "_")
    +    return ret
    +
    +def test1():
    +    TestSection("Use the metadata to plot the variables.")
    +
    +    db = silo_data_path("noise.silo")
    +    OpenDatabase(db)
    +    md = GetMetaData(db)
    +
    +    # Test all of the scalars.
    +    for i in range(md.GetNumScalars()):
    +        AddPlot("Pseudocolor", md.GetScalars(i).name)
    +        DrawPlots()
    +        ResetView()
    +        testName = "metadata_1_scalar_" + MakeSafe(md.GetScalars(i).name)
    +        Test(testName)
    +        DeleteAllPlots()
    +
    +    # Test all of the vectors.
    +    for i in range(md.GetNumVectors()):
    +        AddPlot("Vector", md.GetVectors(i).name)
    +        DrawPlots()
    +        ResetView()
    +        testName = "metadata_1_vector_" + MakeSafe(md.GetVectors(i).name)
    +        Test(testName)
    +        DeleteAllPlots()
    +
    +    # Test all of the expressions
    +    for i in range(md.exprList.GetNumExpressions()):
    +        expr = md.exprList.GetExpressions(i)
    +        if expr.type == expr.ScalarMeshVar:
    +            AddPlot("Pseudocolor", expr.name)
    +        elif expr.type == expr.VectorMeshVar:
    +            AddPlot("Vector", expr.name)
    +            v = VectorAttributes()
    +            v.useStride = 1
    +            v.stride = 1
    +            SetPlotOptions(v)
    +        elif expr.type == expr.TensorMeshVar:
    +            AddPlot("Tensor", expr.name)
    +            t = TensorAttributes()
    +            t.useStride = 1
    +            t.stride = 5
    +            SetPlotOptions(t)
    +        elif expr.type == expr.ArrayMeshVar:
    +            AddPlot("Label", expr.name)
    +        else:
    +            print("Add support for plotting expression: ", expr)
    +        DrawPlots()
    +        ResetView()
    +        testName = "metadata_1_expr_" + MakeSafe(expr.name)
    +        Test(testName)
    +        DeleteAllPlots()
    +
    +def main():
    +    # Draw antialiased lines
    +    r = GetRenderingAttributes()
    +    r.antialiasing = 1
    +    SetRenderingAttributes(r)
    +
    +    test0()
    +    test1()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_mfem.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_mfem.html new file mode 100644 index 000000000..99ba82410 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_mfem.html @@ -0,0 +1,1980 @@ + +Results for databases/mfem.py + +

    Results of VisIt Regression Test - databases/mfem

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Input Mesh Files
    input_mesh_amr-hex-nc_mres_00000.000.00
    input_mesh_amr-hex-nc_mres_00050.000.00
    input_mesh_amr-hex_mres_00000.000.00
    input_mesh_amr-hex_mres_00050.000.00
    input_mesh_amr-quad-nc_mres_00000.000.00
    input_mesh_amr-quad-nc_mres_00050.000.00
    input_mesh_amr-quad_mres_00000.000.00
    input_mesh_amr-quad_mres_00050.000.00
    input_mesh_ball-nurbs_mres_00000.000.00
    input_mesh_ball-nurbs_mres_00200.000.00
    input_mesh_beam-hex-nurbs_mres_00000.000.00
    input_mesh_beam-hex-nurbs_mres_00200.000.00
    input_mesh_beam-hex_mres_00000.000.00
    input_mesh_beam-hex_mres_00200.000.00
    input_mesh_beam-quad-amr-nc_mres_00000.000.00
    input_mesh_beam-quad-amr-nc_mres_00050.000.00
    input_mesh_beam-quad-nurbs_mres_00000.000.00
    input_mesh_beam-quad-nurbs_mres_00200.000.00
    input_mesh_beam-quad_mres_00000.000.00
    input_mesh_beam-quad_mres_00200.000.00
    input_mesh_beam-tet_mres_00000.000.00
    input_mesh_beam-tet_mres_00200.000.00
    input_mesh_beam-tri_mres_00000.000.00
    input_mesh_beam-tri_mres_00200.000.00
    input_mesh_disc-nurbs_mres_00000.000.00
    input_mesh_disc-nurbs_mres_00200.000.00
    input_mesh_escher-p2_mres_00000.000.00
    input_mesh_escher-p2_mres_00200.000.00
    input_mesh_escher-p3_mres_00000.000.00
    input_mesh_escher-p3_mres_00200.000.00
    input_mesh_escher_mres_00000.000.00
    input_mesh_escher_mres_00200.000.00
    input_mesh_fichera-amr-nc_mres_00000.000.00
    input_mesh_fichera-amr-nc_mres_00050.000.00
    input_mesh_fichera-amr_mres_00000.000.00
    input_mesh_fichera-amr_mres_00050.000.00
    input_mesh_fichera-q2_mres_00000.000.00
    input_mesh_fichera-q2_mres_00200.000.00
    input_mesh_fichera-q3_mres_00000.000.00
    input_mesh_fichera-q3_mres_00200.000.00
    input_mesh_fichera_mres_00000.000.00
    input_mesh_fichera_mres_00200.000.00
    input_mesh_inline-hex_mres_00000.000.00
    input_mesh_inline-hex_mres_00200.000.00
    input_mesh_inline-quad_mres_00000.000.00
    input_mesh_inline-quad_mres_00200.000.00
    input_mesh_inline-segment_mres_00000.000.00
    input_mesh_inline-segment_mres_00200.000.00
    input_mesh_inline-tet_mres_00000.000.00
    input_mesh_inline-tet_mres_00200.000.00
    input_mesh_inline-tri_mres_00000.000.00
    input_mesh_inline-tri_mres_00200.000.00
    input_mesh_klein-bottle_mres_00000.000.00
    input_mesh_klein-bottle_mres_00200.000.00
    input_mesh_klein-donut_mres_00000.000.00
    input_mesh_klein-donut_mres_00200.000.00
    input_mesh_mobius-strip_mres_00000.000.00
    input_mesh_mobius-strip_mres_00200.000.00
    input_mesh_periodic-cube_mres_00000.000.00
    input_mesh_periodic-cube_mres_00200.000.00
    input_mesh_periodic-hexagon_mres_00000.000.00
    input_mesh_periodic-hexagon_mres_00200.000.00
    input_mesh_periodic-segment_mres_00000.000.00
    input_mesh_periodic-segment_mres_00200.000.00
    input_mesh_periodic-square_mres_00000.000.00
    input_mesh_periodic-square_mres_00200.000.00
    input_mesh_pipe-nurbs_mres_00000.000.00
    input_mesh_pipe-nurbs_mres_00200.000.00
    input_mesh_square-disc-nurbs_mres_00000.000.00
    input_mesh_square-disc-nurbs_mres_00200.000.00
    input_mesh_square-disc-p2_mres_00000.000.00
    input_mesh_square-disc-p2_mres_00200.000.00
    input_mesh_square-disc-p3_mres_00000.000.00
    input_mesh_square-disc-p3_mres_00200.000.00
    input_mesh_square-disc-surf_mres_00000.000.00
    input_mesh_square-disc-surf_mres_00200.000.00
    input_mesh_square-disc_mres_00000.000.00
    input_mesh_square-disc_mres_00200.000.00
    input_mesh_star-q2_mres_00000.000.00
    input_mesh_star-q2_mres_00200.000.00
    input_mesh_star-q3_mres_00000.000.00
    input_mesh_star-q3_mres_00200.000.00
    input_mesh_star-surf_mres_00000.000.00
    input_mesh_star-surf_mres_00200.000.00
    input_mesh_star_mres_00000.000.00
    input_mesh_star_mres_00200.000.00
    input_mesh_wedge_or_prism_example_mres_00000.000.00
    input_mesh_wedge_or_prism_example_mres_00200.000.00
    ex01 results
    ex01_ex01-disc-nurbs0.000.00
    ex01_ex01-escher0.000.00
    ex01_ex01-fichera-q20.000.00
    ex01_ex01-fichera0.000.00
    ex01_ex01-pipe-nurbs0.000.00
    ex01_ex01-square-disc-nurbs0.000.00
    ex01_ex01-square-disc-p30.000.00
    ex01_ex01-square-disc0.000.00
    ex01_ex01-star0.000.00
    ex02 results
    ex02_element_attribute_ex02-beam-hex-nurbs0.000.00
    ex02_gf_mag_ex02-beam-hex-nurbs0.000.00
    ex02_element_attribute_ex02-beam-hex0.000.00
    ex02_gf_mag_ex02-beam-hex0.000.00
    ex02_element_attribute_ex02-beam-quad-nurbs0.000.00
    ex02_gf_mag_ex02-beam-quad-nurbs0.000.00
    ex02_element_attribute_ex02-beam-quad0.000.00
    ex02_gf_mag_ex02-beam-quad0.000.00
    ex02_element_attribute_ex02-beam-tet0.000.00
    ex02_gf_mag_ex02-beam-tet0.000.00
    ex02_element_attribute_ex02-beam-tri0.000.00
    ex02_gf_mag_ex02-beam-tri0.000.00
    MFEM Expressions
    mfem_expressions_10.000.00
    mfem_expressions_20.000.00
    mfem_expressions_30.000.00
    Input Mesh Boundary Topology
    input_mesh_amr-hex-nc_boundary_topo0.000.00
    input_mesh_amr-hex_boundary_topo0.000.00
    input_mesh_amr-quad-nc_boundary_topo0.000.00
    input_mesh_amr-quad_boundary_topo0.000.00
    input_mesh_ball-nurbs_boundary_topo0.000.00
    input_mesh_beam-hex-nurbs_boundary_topo0.000.00
    input_mesh_beam-hex_boundary_topo0.000.00
    input_mesh_beam-quad-amr-nc_boundary_topo0.000.00
    input_mesh_beam-quad-nurbs_boundary_topo0.000.00
    input_mesh_beam-quad_boundary_topo0.000.00
    input_mesh_beam-tet_boundary_topo0.000.00
    input_mesh_beam-tri_boundary_topo0.000.00
    input_mesh_disc-nurbs_boundary_topo0.000.00
    input_mesh_escher-p2_boundary_topo0.000.00
    input_mesh_escher-p3_boundary_topo0.000.00
    input_mesh_escher_boundary_topo0.000.00
    input_mesh_fichera-amr-nc_boundary_topo0.000.00
    input_mesh_fichera-amr_boundary_topo0.000.00
    input_mesh_fichera-q2_boundary_topo0.000.00
    input_mesh_fichera-q3_boundary_topo0.000.00
    input_mesh_fichera_boundary_topo0.000.00
    input_mesh_inline-hex_boundary_topo0.000.00
    input_mesh_inline-quad_boundary_topo0.000.00
    input_mesh_inline-segment_boundary_topo0.000.00
    input_mesh_inline-tet_boundary_topo0.000.00
    input_mesh_inline-tri_boundary_topo0.000.00
    input_mesh_klein-bottle_boundary_topo0.000.00
    input_mesh_klein-donut_boundary_topo0.000.00
    input_mesh_mobius-strip_boundary_topo0.000.00
    input_mesh_periodic-cube_boundary_topo0.000.00
    input_mesh_periodic-hexagon_boundary_topo0.000.00
    input_mesh_periodic-segment_boundary_topo0.000.00
    input_mesh_periodic-square_boundary_topo0.000.00
    input_mesh_pipe-nurbs_boundary_topo0.000.00
    input_mesh_square-disc-nurbs_boundary_topo0.000.00
    input_mesh_square-disc-p2_boundary_topo0.000.00
    input_mesh_square-disc-p3_boundary_topo0.000.00
    input_mesh_square-disc-surf_boundary_topo0.000.00
    input_mesh_square-disc_boundary_topo0.000.00
    input_mesh_star-q2_boundary_topo0.000.00
    input_mesh_star-q3_boundary_topo0.000.00
    input_mesh_star-surf_boundary_topo0.000.00
    input_mesh_star_boundary_topo0.000.00
    input_mesh_wedge_or_prism_example_boundary_topo0.000.00
    Direct Mesh Open
    direct_open_mesh_file_amr-hex-nc0.000.00
    direct_open_mesh_file_amr-hex0.000.00
    direct_open_mesh_file_amr-quad-nc0.000.00
    direct_open_mesh_file_amr-quad0.000.00
    direct_open_mesh_file_ball-nurbs0.000.00
    direct_open_mesh_file_beam-hex-nurbs0.000.00
    direct_open_mesh_file_beam-hex0.000.00
    direct_open_mesh_file_beam-quad-amr-nc0.000.00
    direct_open_mesh_file_beam-quad-nurbs0.000.00
    direct_open_mesh_file_beam-quad0.000.00
    direct_open_mesh_file_beam-tet0.000.00
    direct_open_mesh_file_beam-tri0.000.00
    direct_open_mesh_file_disc-nurbs0.000.00
    direct_open_mesh_file_escher-p20.000.00
    direct_open_mesh_file_escher-p30.000.00
    direct_open_mesh_file_escher0.000.00
    direct_open_mesh_file_ex01-disc-nurbs0.000.00
    direct_open_mesh_file_ex01-escher0.000.00
    direct_open_mesh_file_ex01-fichera-q20.000.00
    direct_open_mesh_file_ex01-fichera0.000.00
    direct_open_mesh_file_ex01-pipe-nurbs0.000.00
    direct_open_mesh_file_ex01-square-disc-nurbs0.000.00
    direct_open_mesh_file_ex01-square-disc-p30.000.00
    direct_open_mesh_file_ex01-square-disc0.000.00
    direct_open_mesh_file_ex01-star0.000.00
    direct_open_mesh_file_ex02-beam-hex-nurbs0.000.00
    direct_open_mesh_file_ex02-beam-hex0.000.00
    direct_open_mesh_file_ex02-beam-quad-nurbs0.000.00
    direct_open_mesh_file_ex02-beam-quad0.000.00
    direct_open_mesh_file_ex02-beam-tet0.000.00
    direct_open_mesh_file_ex02-beam-tri0.000.00
    direct_open_mesh_file_fichera-amr-nc0.000.00
    direct_open_mesh_file_fichera-amr0.000.00
    direct_open_mesh_file_fichera-q20.000.00
    direct_open_mesh_file_fichera-q30.000.00
    direct_open_mesh_file_fichera0.000.00
    direct_open_mesh_file_inline-hex0.000.00
    direct_open_mesh_file_inline-quad0.000.00
    direct_open_mesh_file_inline-segment0.000.00
    direct_open_mesh_file_inline-tet0.000.00
    direct_open_mesh_file_inline-tri0.000.00
    direct_open_mesh_file_klein-bottle0.000.00
    direct_open_mesh_file_klein-donut0.000.00
    direct_open_mesh_file_mobius-strip0.000.00
    direct_open_mesh_file_periodic-cube0.000.00
    direct_open_mesh_file_periodic-hexagon0.000.00
    direct_open_mesh_file_periodic-segment0.000.00
    direct_open_mesh_file_periodic-square0.000.00
    direct_open_mesh_file_pipe-nurbs0.000.00
    direct_open_mesh_file_square-disc-nurbs0.000.00
    direct_open_mesh_file_square-disc-p20.000.00
    direct_open_mesh_file_square-disc-p30.000.00
    direct_open_mesh_file_square-disc-surf0.000.00
    direct_open_mesh_file_square-disc0.000.00
    direct_open_mesh_file_star-q20.000.00
    direct_open_mesh_file_star-q30.000.00
    direct_open_mesh_file_star-surf0.000.00
    direct_open_mesh_file_star0.000.00
    Legacy and New LOR
    LOR_amr-hex-nc_lor0.000.00
    LOR_amr-hex-nc_legacy_lor0.000.00
    LOR_amr-hex_lor0.000.00
    LOR_amr-hex_legacy_lor0.000.00
    LOR_amr-quad-nc_lor0.000.00
    LOR_amr-quad-nc_legacy_lor0.000.00
    LOR_amr-quad_lor0.000.00
    LOR_amr-quad_legacy_lor0.000.00
    LOR_ball-nurbs_lor0.000.00
    LOR_ball-nurbs_legacy_lor0.000.00
    LOR_beam-hex-nurbs_lor0.000.00
    LOR_beam-hex-nurbs_legacy_lor0.000.00
    LOR_beam-hex_lor0.000.00
    LOR_beam-hex_legacy_lor0.000.00
    LOR_beam-quad-amr-nc_lor0.000.00
    LOR_beam-quad-amr-nc_legacy_lor0.000.00
    LOR_beam-quad-nurbs_lor0.000.00
    LOR_beam-quad-nurbs_legacy_lor0.000.00
    LOR_beam-quad_lor0.000.00
    LOR_beam-quad_legacy_lor0.000.00
    LOR_beam-tet_lor0.000.00
    LOR_beam-tet_legacy_lor0.000.00
    LOR_beam-tri_lor0.000.00
    LOR_beam-tri_legacy_lor0.000.00
    LOR_disc-nurbs_lor0.000.00
    LOR_disc-nurbs_legacy_lor0.000.00
    LOR_escher-p2_lor0.000.00
    LOR_escher-p2_legacy_lor0.000.00
    LOR_escher-p3_lor0.000.00
    LOR_escher-p3_legacy_lor0.000.00
    LOR_escher_lor0.000.00
    LOR_escher_legacy_lor0.000.00
    LOR_fichera-amr-nc_lor0.000.00
    LOR_fichera-amr-nc_legacy_lor0.000.00
    LOR_fichera-amr_lor0.000.00
    LOR_fichera-amr_legacy_lor0.000.00
    LOR_fichera-q2_lor0.000.00
    LOR_fichera-q2_legacy_lor0.000.00
    LOR_fichera-q3_lor0.000.00
    LOR_fichera-q3_legacy_lor0.000.00
    LOR_fichera_lor0.000.00
    LOR_fichera_legacy_lor0.000.00
    LOR_inline-hex_lor0.000.00
    LOR_inline-hex_legacy_lor0.000.00
    LOR_inline-quad_lor0.000.00
    LOR_inline-quad_legacy_lor0.000.00
    LOR_inline-segment_lor0.000.00
    LOR_inline-segment_legacy_lor0.000.00
    LOR_inline-tet_lor0.000.00
    LOR_inline-tet_legacy_lor0.000.00
    LOR_inline-tri_lor0.000.00
    LOR_inline-tri_legacy_lor0.000.00
    LOR_klein-bottle_lor0.000.00
    LOR_klein-bottle_legacy_lor0.000.00
    LOR_klein-donut_lor0.000.00
    LOR_klein-donut_legacy_lor0.000.00
    LOR_mobius-strip_lor0.000.00
    LOR_mobius-strip_legacy_lor0.000.00
    LOR_periodic-cube_lor0.000.00
    LOR_periodic-cube_legacy_lor0.000.00
    LOR_periodic-hexagon_lor0.000.00
    LOR_periodic-hexagon_legacy_lor0.000.00
    LOR_periodic-segment_lor0.000.00
    LOR_periodic-segment_legacy_lor0.000.00
    LOR_periodic-square_lor0.000.00
    LOR_periodic-square_legacy_lor0.000.00
    LOR_pipe-nurbs_lor0.000.00
    LOR_pipe-nurbs_legacy_lor0.000.00
    LOR_square-disc-nurbs_lor0.000.00
    LOR_square-disc-nurbs_legacy_lor0.000.00
    LOR_square-disc-p2_lor0.000.00
    LOR_square-disc-p2_legacy_lor0.000.00
    LOR_square-disc-p3_lor0.000.00
    LOR_square-disc-p3_legacy_lor0.000.00
    LOR_square-disc-surf_lor0.000.00
    LOR_square-disc-surf_legacy_lor0.000.00
    LOR_square-disc_lor0.000.00
    LOR_square-disc_legacy_lor0.000.00
    LOR_star-q2_lor0.000.00
    LOR_star-q2_legacy_lor0.000.00
    LOR_star-q3_lor0.000.00
    LOR_star-q3_legacy_lor0.000.00
    LOR_star-surf_lor0.000.00
    LOR_star-surf_legacy_lor0.000.00
    LOR_star_lor0.000.00
    LOR_star_legacy_lor0.000.00
    LOR_wedge_or_prism_example_lor0.000.00
    LOR_wedge_or_prism_example_legacy_lor0.000.00
    Legacy and New LOR Fields
    LOR_Fields_ex01-disc-nurbs_pseudocolor_gf_lor0.000.00
    LOR_Fields_ex01-disc-nurbs_pseudocolor_gf_legacy_lor0.000.00
    LOR_Fields_ex01-escher_pseudocolor_gf_lor0.000.00
    LOR_Fields_ex01-escher_pseudocolor_gf_legacy_lor0.000.00
    LOR_Fields_ex01-fichera-q2_pseudocolor_gf_lor0.000.00
    LOR_Fields_ex01-fichera-q2_pseudocolor_gf_legacy_lor0.000.00
    LOR_Fields_ex01-fichera_pseudocolor_gf_lor0.000.00
    LOR_Fields_ex01-fichera_pseudocolor_gf_legacy_lor0.000.00
    LOR_Fields_ex01-pipe-nurbs_pseudocolor_gf_lor0.000.00
    LOR_Fields_ex01-pipe-nurbs_pseudocolor_gf_legacy_lor0.000.00
    LOR_Fields_ex01-square-disc-nurbs_pseudocolor_gf_lor0.000.00
    LOR_Fields_ex01-square-disc-nurbs_pseudocolor_gf_legacy_lor0.000.00
    LOR_Fields_ex01-square-disc-p3_pseudocolor_gf_lor0.000.00
    LOR_Fields_ex01-square-disc-p3_pseudocolor_gf_legacy_lor0.000.00
    LOR_Fields_ex01-square-disc_pseudocolor_gf_lor0.000.00
    LOR_Fields_ex01-square-disc_pseudocolor_gf_legacy_lor0.000.00
    LOR_Fields_ex01-star_pseudocolor_gf_lor0.000.00
    LOR_Fields_ex01-star_pseudocolor_gf_legacy_lor0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_mfem_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_mfem_py.html new file mode 100644 index 000000000..217a0d321 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_mfem_py.html @@ -0,0 +1,270 @@ +databases/mfem.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#  LIMIT: 1200
    +#  Test Case:  mfem.py 
    +#
    +#  Tests:      mfem files 
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Thu Jun 12 14:58:03 PDT 2014
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Sep  2 20:56:13 PDT 2020
    +#    The MFEM reader now provides original cells so artificial mesh lines
    +#    get removed. There's less of a point to seeing them here. Keep min/max
    +#    refinement levels only. 
    +# 
    +#    Justin Privitera, Mon Oct 17 17:33:30 PDT 2022
    +#    Added new tests for the new LOR settings. All prior tests use the legacy
    +#    LOR setting, while new tests use a mix of both.
    +#
    +#    Cyrus Harrison, Tue Oct 29 10:52:33 PDT 2024
    +#    Added wedge example mesh.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("MFEM")
    +
    +readOptions = GetDefaultFileOpenOptions("MFEM")
    +readOptions["MFEM LOR Setting"] = "Legacy LOR"
    +SetDefaultFileOpenOptions("MFEM", readOptions)
    +
    +mfem_roots  = glob.glob(data_path("mfem_test_data/*.mfem_root"))
    +mfem_roots.extend(glob.glob(data_path("mfem_wedge_and_pyramid_examples/wedge_*.mfem_root")))
    +input_meshs  = [ f for f in mfem_roots if f.count("ex0") == 0]
    +ex01_results = [ f for f in mfem_roots if f.count("ex01") == 1]
    +ex02_results = [ f for f in mfem_roots if f.count("ex02") == 1]
    +mfem_mesh_files = glob.glob(data_path("mfem_test_data/*.mesh"))
    +
    +
    +def set_test_view():
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.510614, 0.302695, 0.804767)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (-0.0150532, 0.932691, -0.360361)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +TestSection("Input Mesh Files")
    +for f in input_meshs:
    +    base = os.path.splitext(os.path.basename(f))[0]
    +    DeleteAllPlots()
    +    OpenDatabase(f)
    +    AddPlot("Pseudocolor","main_element_coloring")
    +    #pc_atts = PseudocolorAttributes()
    +    #pc_atts.colorTableName = "PuBuGn"
    +    #SetPlotOptions(pc_atts)
    +    AddOperator("MultiresControl")
    +    AddPlot("Mesh","main")
    +    AddOperator("MultiresControl")
    +    SetActivePlots((0,1))
    +    levels = [0,20]
    +    if f.count("amr") > 0:
    +        levels = [0,5]
    +    for mres in levels:
    +        mc_atts  = MultiresControlAttributes()
    +        mc_atts.resolution = mres
    +        SetOperatorOptions(mc_atts)
    +        ResetView()
    +        DrawPlots()
    +        Test("input_mesh_%s_mres_%04d" % (base,mres))
    +    DeleteAllPlots()
    +    CloseDatabase(f)
    +
    +TestSection("ex01 results")
    +for f in ex01_results:
    +    base = os.path.splitext(os.path.basename(f))[0]
    +    DeleteAllPlots()
    +    OpenDatabase(f)
    +    AddPlot("Pseudocolor","gf")
    +    #AddPlot("Mesh","main")
    +    ResetView()
    +    DrawPlots()
    +    Test("ex01_%s" % (base))
    +    DeleteAllPlots()
    +    CloseDatabase(f)
    +
    +TestSection("ex02 results")
    +for f in ex02_results:
    +    base = os.path.splitext(os.path.basename(f))[0]
    +    DeleteAllPlots()
    +    OpenDatabase(f)
    +    AddPlot("Pseudocolor","main_element_attribute")
    +    #AddPlot("Mesh","main")
    +    ResetView()
    +    DrawPlots()
    +    Test("ex02_element_attribute_%s" % (base))
    +    ChangeActivePlotsVar("gf_magnitude");
    +    DrawPlots()
    +    Test("ex02_gf_mag_%s" % (base))
    +    DeleteAllPlots()
    +    CloseDatabase(f)
    +
    +TestSection("MFEM Expressions")
    +OpenDatabase(data_path("mfem_test_data/ex02-beam-tet.mfem_root"))
    +AddPlot("Pseudocolor","mag-gf")
    +ResetView()
    +DrawPlots()
    +Test("mfem_expressions_1")
    +DeleteAllPlots()
    +AddPlot("Pseudocolor","comp0")
    +DrawPlots()
    +Test("mfem_expressions_2")
    +DeleteAllPlots()
    +AddPlot("Vector","curl-gf")
    +DrawPlots()
    +Test("mfem_expressions_3")
    +DeleteAllPlots()
    +CloseDatabase(data_path("mfem_test_data/ex02-beam-tet.mfem_root"))
    +
    +TestSection("Input Mesh Boundary Topology")
    +for f in input_meshs:
    +    base = os.path.splitext(os.path.basename(f))[0]
    +    DeleteAllPlots()
    +    OpenDatabase(f)
    +    AddPlot("Pseudocolor","main_boundary_attribute")
    +    AddPlot("Mesh","main_boundary")
    +    mesh_atts = MeshAttributes()
    +    mesh_atts.lineWidth = 2
    +    SetPlotOptions(mesh_atts)
    +    ResetView()
    +    DrawPlots()
    +    Test("input_mesh_%s_boundary_topo" % (base))
    +    DeleteAllPlots()
    +    CloseDatabase(f)
    +
    +TestSection("Direct Mesh Open")
    +for f in mfem_mesh_files:
    +    base = os.path.splitext(os.path.basename(f))[0]
    +    DeleteAllPlots()
    +    OpenDatabase(f)
    +    AddPlot("Pseudocolor","main_element_coloring")
    +    ResetView()
    +    DrawPlots()
    +    Test("direct_open_mesh_file_%s" % (base))
    +    DeleteAllPlots()
    +    CloseDatabase(f)
    +
    +# reset default
    +readOptions = GetDefaultFileOpenOptions("MFEM")
    +readOptions["MFEM LOR Setting"] = "MFEM LOR"
    +SetDefaultFileOpenOptions("MFEM", readOptions)
    +
    +def test_mfem_lor_mesh(tag_name, dbfile):
    +    ResetView()
    +    base = os.path.splitext(os.path.basename(dbfile))[0]
    +
    +    # get default options
    +    readOptions = GetDefaultFileOpenOptions("MFEM")
    +    readOptions["MFEM LOR Setting"] = "MFEM LOR"
    +    SetDefaultFileOpenOptions("MFEM", readOptions)
    +    OpenDatabase(dbfile)
    +
    +    # we want to test a picture of a wireframe
    +    # new LOR should only have the outer edge
    +    AddPlot("Subset", "main")
    +    SubsetAtts = SubsetAttributes()
    +    SubsetAtts.wireframe = 1
    +    SetPlotOptions(SubsetAtts)
    +    set_test_view()
    +    DrawPlots()
    +    Test(tag_name + "_" + base + "_lor")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(dbfile)
    +
    +    ##############################
    +
    +    # examine legacy
    +    readOptions = GetDefaultFileOpenOptions("MFEM")
    +    readOptions["MFEM LOR Setting"] = "Legacy LOR"
    +    SetDefaultFileOpenOptions("MFEM", readOptions)
    +    OpenDatabase(dbfile)
    +
    +    # old LOR leaves a busy wireframe
    +    AddPlot("Subset", "main")
    +    SubsetAtts = SubsetAttributes()
    +    SubsetAtts.wireframe = 1
    +    SetPlotOptions(SubsetAtts)
    +    set_test_view()
    +    DrawPlots()
    +    Test(tag_name + "_" + base + "_legacy_lor")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(dbfile)
    +
    +    # restore default
    +    readOptions = GetDefaultFileOpenOptions("MFEM")
    +    readOptions["MFEM LOR Setting"] = "MFEM LOR"
    +    SetDefaultFileOpenOptions("MFEM", readOptions)
    +
    +TestSection("Legacy and New LOR")
    +for dbfile in input_meshs:
    +    test_mfem_lor_mesh("LOR", dbfile)
    +
    +def test_mfem_lor_field(tag_name, dbfile):
    +    ResetView()
    +    base = os.path.splitext(os.path.basename(dbfile))[0]
    +
    +    readOptions = GetDefaultFileOpenOptions("MFEM")
    +    readOptions["MFEM LOR Setting"] = "MFEM LOR"
    +    SetDefaultFileOpenOptions("MFEM", readOptions)
    +    OpenDatabase(dbfile)
    +
    +    AddPlot("Pseudocolor","gf")
    +    AddOperator("MultiresControl", 1)
    +    SetActivePlots(0)
    +    MultiresControlAtts = MultiresControlAttributes()
    +    MultiresControlAtts.resolution = 3
    +    SetOperatorOptions(MultiresControlAtts, 0, 1)
    +    set_test_view()
    +    DrawPlots()
    +    Test(tag_name + "_" + base + "_pseudocolor_gf_lor")
    +    DeleteAllPlots()
    +    ResetView()
    +
    +    CloseDatabase(dbfile)
    +
    +    ##############################
    +
    +    # examine legacy
    +    readOptions = GetDefaultFileOpenOptions("MFEM")
    +    readOptions["MFEM LOR Setting"] = "Legacy LOR"
    +    SetDefaultFileOpenOptions("MFEM", readOptions)
    +    OpenDatabase(dbfile)
    +
    +    AddPlot("Pseudocolor","gf")
    +    AddOperator("MultiresControl", 1)
    +    SetActivePlots(0)
    +    MultiresControlAtts = MultiresControlAttributes()
    +    MultiresControlAtts.resolution = 3
    +    SetOperatorOptions(MultiresControlAtts, 0, 1)
    +    set_test_view()
    +    DrawPlots()
    +    Test(tag_name + "_" + base + "_pseudocolor_gf_legacy_lor")
    +    DeleteAllPlots()
    +    ResetView()
    +
    +    # restore default
    +    readOptions = GetDefaultFileOpenOptions("MFEM")
    +    readOptions["MFEM LOR Setting"] = "MFEM LOR"
    +    SetDefaultFileOpenOptions("MFEM", readOptions)
    +
    +TestSection("Legacy and New LOR Fields")
    +for dbfile in ex01_results:
    +    test_mfem_lor_field("LOR_Fields", dbfile)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_mili.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_mili.html new file mode 100644 index 000000000..269640c6e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_mili.html @@ -0,0 +1,378 @@ + +Results for databases/mili.py + +

    Results of VisIt Regression Test - databases/mili

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Vector components
    mili_brick_comp0.000.00
    mili_beam_comp0.000.00
    mili_nodacc_comp0.000.00
    Non-shared element sets
    mili_non_shared_es_010.000.00
    Shared element sets
    mili_shared_es_010.000.00
    mili_shared_es_020.000.00
    mili_shared_es_030.000.00
    Material variables
    mili_mat_var_010.000.00
    mili_mat_var_020.000.00
    Tensors
    mili_tensors_010.000.00
    mili_tensors_020.000.00
    Vectors
    mili_vectors_010.000.00
    mili_vectors_020.000.00
    mili_vectors_030.000.00
    Sand mesh
    mili_sand_mesh_010.000.00
    mili_sand_mesh_020.000.00
    mili_sand_mesh_030.000.00
    mili_sand_mesh_040.000.00
    Materials
    mili_materials_000.000.00
    mili_materials_010.000.00
    Multi-domain
    mili_multi_dom_010.000.00
    mili_multi_dom_020.000.00
    Particles
    mili_particle_010.000.00
    Static nodes
    mili_static_nodes_010.000.00
    Labels
    mili_zone_labels_010.000.00
    mili_node_labels_010.000.00
    Sci notation read
    mili_from_sci_not0.000.00
    Multi-subrecord read
    mili_subrec_offset0.000.00
    Derived variables
    mili_derived_000.000.00
    mili_derived_010.000.00
    mili_derived_020.000.00
    mili_derived_030.000.00
    mili_derived_040.000.00
    mili_derived_050.000.00
    mili_derived_060.000.00
    mili_derived_070.000.00
    mili_derived_080.000.00
    mili_derived_090.000.00
    mili_derived_100.000.00
    mili_derived_110.000.00
    mili_derived_120.000.00
    mili_derived_130.000.00
    mili_derived_140.000.00
    Global integration point
    mili_global_ip_000.000.00
    mili_global_ip_010.000.00
    mili_global_ip_020.000.00
    Material edge lines
    mili_hidden_material_edge_lines0.000.00
    Displacement
    mili_displacement0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_mili_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_mili_py.html new file mode 100644 index 000000000..0f73331eb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_mili_py.html @@ -0,0 +1,572 @@ +databases/mili.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  mili.py
    +#
    +#  Tests:      mesh      - 3D unstructured, multi-domain
    +#              plots     - Pseudocolor, material, vector, tensor, label
    +#
    +#
    +#  Programmer: Alister Maguire
    +#  Date:       May 22, 2019
    +#
    +#  Modifications:
    +#
    +#    Alister Maguire, Mon Aug  5 13:02:05 MST 2019
    +#    Added a test that handles .mili files containing integers in
    +#    scientific notation.
    +#
    +#    Alister Maguire, Thu Dec 19 13:40:07 PST 2019
    +#    Added a test to make sure correct subrecord offsets are used.
    +#
    +#    Alister Maguire, Wed Jul 15 13:38:17 PDT 2020
    +#    Added test sections and derived variable test.
    +#
    +#    Alister Maguire, Wed Mar 24 16:06:33 PDT 2021
    +#    Added a test for setting/changing the global integration point.
    +#
    +#    Alister Maguire, Fri Mar 26 10:25:08 PDT 2021
    +#    Added more tests for derived variables (stress, strain, sand mesh).
    +# 
    +#    Justin Privitera, Tue Oct 22 10:32:27 PDT 2024
    +#    Add test for hiding material edge lines.
    +#
    +#    Justin Privitera, Wed Nov  6 16:41:21 PST 2024
    +#    Add test for displacement.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("Mili")
    +single_domain_path = data_path("mili_test_data/single_proc/")
    +multi_domain_path  = data_path("mili_test_data/multi_proc/")
    +
    +def TestComponentVis():
    +    TestSection("Vector components")
    +    OpenDatabase(single_domain_path + "/d3samp6.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(90)
    +
    +    AddPlot("Pseudocolor", "Primal/Shared/edrate")
    +    DrawPlots()
    +    Test("mili_brick_comp")
    +
    +    ChangeActivePlotsVar("Primal/beam/svec/svec_x")
    +    Test("mili_beam_comp")
    +    ChangeActivePlotsVar("Primal/node/nodacc/ax")
    +    Test("mili_nodacc_comp")
    +
    +    DeleteAllPlots()
    +
    +
    +def TestSharedElementSets():
    +    TestSection("Shared element sets")
    +    OpenDatabase(single_domain_path + "/d3samp6.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(90)
    +
    +    AddPlot("Pseudocolor", "Primal/Shared/strain/exy")
    +    DrawPlots()
    +    Test("mili_shared_es_01")
    +    ChangeActivePlotsVar("Primal/Shared/edrate")
    +    Test("mili_shared_es_02")
    +    ChangeActivePlotsVar("Primal/Shared/stress/sy")
    +    Test("mili_shared_es_03")
    +
    +    DeleteAllPlots()
    +
    +
    +def TestNonSharedElementSets():
    +    TestSection("Non-shared element sets")
    +    OpenDatabase(single_domain_path + "/d3samp6.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(90)
    +
    +    #
    +    #  eps is a section of an element set that is only
    +    #  defined on beams.
    +    #
    +    AddPlot("Pseudocolor", "Primal/beam/eps")
    +    DrawPlots()
    +    Test("mili_non_shared_es_01")
    +    DeleteAllPlots()
    +
    +
    +def TestMaterialVar():
    +    TestSection("Material variables")
    +    OpenDatabase(single_domain_path + "/d3samp6.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(90)
    +
    +    AddPlot("Pseudocolor", "Primal/mat/matcgy")
    +    DrawPlots()
    +    Test("mili_mat_var_01")
    +    ChangeActivePlotsVar("Primal/mat/matke")
    +    Test("mili_mat_var_02")
    +    DeleteAllPlots()
    +
    +
    +def TestTensors():
    +    TestSection("Tensors")
    +    OpenDatabase(single_domain_path + "/d3samp6.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(90)
    +
    +    AddPlot("Tensor", "Primal/Shared/stress")
    +    DrawPlots()
    +    Test("mili_tensors_01")
    +
    +    ChangeActivePlotsVar("Primal/Shared/strain")
    +    Test("mili_tensors_02")
    +    DeleteAllPlots()
    +
    +
    +def TestVectors():
    +    TestSection("Vectors")
    +    OpenDatabase(single_domain_path + "/d3samp6.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(90)
    +
    +    AddPlot("Vector", "Primal/node/nodpos")
    +    DrawPlots()
    +    Test("mili_vectors_01")
    +
    +    ChangeActivePlotsVar("Primal/shell/bend")
    +    Test("mili_vectors_02")
    +
    +    ChangeActivePlotsVar("Primal/beam/svec")
    +    Test("mili_vectors_03")
    +    DeleteAllPlots()
    +
    +
    +def TestSandMesh():
    +    TestSection("Sand mesh")
    +    OpenDatabase(single_domain_path + "/m_plot.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(101)
    +
    +    #
    +    # First, let's look at the sand variable on a non-sanded mesh.
    +    # It should be well structured.
    +    #
    +    AddPlot("Mesh", "mesh1")
    +    AddPlot("Pseudocolor", "Primal/Shared/sand")
    +    DrawPlots()
    +    Test("mili_sand_mesh_01")
    +    DeleteAllPlots()
    +
    +    #
    +    # Now let's view the sand mesh. It's a mess.
    +    #
    +    AddPlot("Mesh", "sand_mesh1")
    +    AddPlot("Pseudocolor", "Primal/Shared/sand")
    +    DrawPlots()
    +    Test("mili_sand_mesh_02")
    +
    +    #
    +    # Now let's look at sand in its sanded state.
    +    #
    +    ChangeActivePlotsVar("sand_mesh/Primal/Shared/sand")
    +    DrawPlots()
    +    Test("mili_sand_mesh_03")
    +
    +    #
    +    # We need to make sure that other variables can also be
    +    # viewed in their sanded state.
    +    #
    +    ChangeActivePlotsVar("sand_mesh/Primal/shell/stress_mid/sx")
    +    Test("mili_sand_mesh_04")
    +
    +    DeleteAllPlots()
    +
    +
    +def TestMaterials():
    +    #
    +    # The tests need to be in this order to work around a bug in
    +    # the filled boundary plot with getting colors from a database
    +    # that causes the colors to be set the same for subsequent
    +    # filled boundary plots where the colors are not set in the
    +    # database.
    +    #
    +    TestSection("Materials")
    +    OpenDatabase(single_domain_path + "/sslide14ball_l.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(12)
    +
    +    AddPlot("FilledBoundary", "materials1")
    +    DrawPlots()
    +    Test("mili_materials_00")
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(single_domain_path + "/d3samp6.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(70)
    +
    +    AddPlot("FilledBoundary", "materials1(mesh1)")
    +    DrawPlots()
    +    Test("mili_materials_01")
    +
    +    DeleteAllPlots()
    +
    +def TestMultiDomain():
    +    TestSection("Multi-domain")
    +    OpenDatabase(multi_domain_path + "/d3samp6.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(90)
    +
    +    AddPlot("Pseudocolor", "Primal/Shared/strain/exy")
    +    DrawPlots()
    +    Test("mili_multi_dom_01")
    +    ChangeActivePlotsVar("Primal/Shared/stress/sz")
    +    Test("mili_multi_dom_02")
    +
    +    DeleteAllPlots()
    +
    +
    +def TestParticles():
    +    TestSection("Particles")
    +    OpenDatabase(single_domain_path + "/sslide14ball_l.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(0)
    +
    +    AddPlot("Pseudocolor", "Primal/particle/stress/sxy")
    +    DrawPlots()
    +    Test("mili_particle_01")
    +    DeleteAllPlots()
    +
    +
    +def TestStaticNodes():
    +    TestSection("Static nodes")
    +    OpenDatabase(single_domain_path + "/m1_plot.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +
    +    AddPlot("Mesh", "mesh1")
    +    AddPlot("Pseudocolor", "Primal/node/temp")
    +    SetTimeSliderState(10)
    +    DrawPlots()
    +    Test("mili_static_nodes_01")
    +    DeleteAllPlots()
    +
    +
    +def TestLabels():
    +    TestSection("Labels")
    +    OpenDatabase(single_domain_path + "/d3samp6.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(90)
    +
    +    AddPlot("Pseudocolor", "Primal/Shared/edrate")
    +    AddPlot("Label", "OriginalZoneLabels")
    +    DrawPlots()
    +    Test("mili_zone_labels_01")
    +
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Primal/Shared/edrate")
    +    AddPlot("Label", "OriginalNodeLabels")
    +    DrawPlots()
    +    Test("mili_node_labels_01")
    +    DeleteAllPlots()
    +
    +
    +def TestSciNotation():
    +    TestSection("Sci notation read")
    +    #
    +    # Some .mili files contain integers in scientific notation.
    +    # These need to be handled appropriately.
    +    #
    +    OpenDatabase(single_domain_path + "/HexModel1.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +
    +    AddPlot("Pseudocolor", "Primal/brick/stress/sx")
    +    DrawPlots()
    +    Test("mili_from_sci_not")
    +    DeleteAllPlots()
    +
    +
    +def TestMultiSubrecRead():
    +    TestSection("Multi-subrecord read")
    +    #
    +    # This tests a bug fix that occurred when loading variables
    +    # that span several subrecords at different offsets.
    +    #
    +    OpenDatabase(single_domain_path + "/test4_0.15.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +
    +    AddPlot("Pseudocolor", "Primal/brick/stress/sx")
    +    DrawPlots()
    +    Test("mili_subrec_offset")
    +    DeleteAllPlots()
    +
    +
    +def TestDerivedVariables():
    +    TestSection("Derived variables")
    +    OpenDatabase(single_domain_path + "/m_plot.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.49, 0.19, 0.85)
    +    SetView3D(v)
    +
    +    SetTimeSliderState(85)
    +
    +    #
    +    # Node centered derivations.
    +    #
    +    AddPlot("Pseudocolor", "Derived/node/displacement/dispx")
    +    DrawPlots()
    +    Test("mili_derived_00")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Derived/node/displacement/dispy")
    +    DrawPlots()
    +    Test("mili_derived_01")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Derived/node/displacement/dispz")
    +    DrawPlots()
    +    Test("mili_derived_02")
    +    DeleteAllPlots()
    +
    +    AddPlot("Vector", "Derived/node/displacement")
    +    DrawPlots()
    +    Test("mili_derived_03")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "sand_mesh/Derived/node/displacement/dispz")
    +    DrawPlots()
    +    Test("mili_derived_04")
    +    DeleteAllPlots()
    +
    +    #
    +    # Stress/strain derivations. In m_plot, only stress comes from
    +    # the database, and we derive strain and all of its derivations
    +    # using VisIt expressions.
    +    #
    +    AddPlot("Pseudocolor", "Derived/brick/stress/prin_stress/2")
    +    DrawPlots()
    +    Test("mili_derived_05")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Derived/brick/stress/pressure")
    +    DrawPlots()
    +    Test("mili_derived_06")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Derived/Shared/strain/almansi/max_shear_almansi")
    +    DrawPlots()
    +    Test("mili_derived_07")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor",
    +        "Derived/Shared/strain/green_lagrange/prin_dev_green_lagrange/2")
    +    DrawPlots()
    +    Test("mili_derived_08")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Derived/Shared/strain/infinitesimal/x")
    +    DrawPlots()
    +    Test("mili_derived_09")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Derived/Shared/strain/rate/yz")
    +    DrawPlots()
    +    Test("mili_derived_10")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "sand_mesh/Derived/Shared/strain/rate/yz")
    +    DrawPlots()
    +    Test("mili_derived_11")
    +    DeleteAllPlots()
    +
    +    AddPlot("Tensor", "Derived/Shared/strain/green_lagrange")
    +    DrawPlots()
    +    Test("mili_derived_12")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Derived/Shared/relative_volume")
    +    DrawPlots()
    +    Test("mili_derived_13")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Derived/Shared/volumetric_strain")
    +    DrawPlots()
    +    Test("mili_derived_14")
    +    DeleteAllPlots()
    +
    +
    +def TestGlobalIntegrationPoint():
    +    TestSection("Global integration point")
    +
    +    db_path = single_domain_path + "/d3samp6.plt.mili"
    +    OpenDatabase(db_path)
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(90)
    +
    +    AddPlot("Pseudocolor", "Primal/Shared/strain/exy")
    +    DrawPlots()
    +
    +    mili_options = GetDefaultFileOpenOptions("Mili")
    +    mili_options["Global integration point"] = "Inner"
    +    SetDefaultFileOpenOptions("Mili", mili_options)
    +    ReOpenDatabase(db_path)
    +    Test("mili_global_ip_00")
    +
    +    mili_options = GetDefaultFileOpenOptions("Mili")
    +    mili_options["Global integration point"] = "Middle"
    +    SetDefaultFileOpenOptions("Mili", mili_options)
    +    ReOpenDatabase(db_path)
    +    Test("mili_global_ip_01")
    +
    +    mili_options = GetDefaultFileOpenOptions("Mili")
    +    mili_options["Global integration point"] = "Outer"
    +    SetDefaultFileOpenOptions("Mili", mili_options)
    +    ReOpenDatabase(db_path)
    +    Test("mili_global_ip_02")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db_path)
    +
    +def TestMaterialEdgeLines():
    +    TestSection("Material edge lines")
    +
    +    db_path = multi_domain_path + "/d3samp6.plt.mili"
    +    OpenDatabase(db_path)
    +
    +    AddPlot("FilledBoundary", "materials1")
    +    DrawPlots()
    +
    +    AddPlot("FilledBoundary", "materials1")
    +
    +    silr = SILRestriction()
    +    silr.SuspendCorrectnessChecking()
    +    silr.TurnOffAll()
    +    for silSet in (24,29,34,39,44,49,54,59):
    +        silr.TurnOnSet(silSet)
    +    silr.EnableCorrectnessChecking()
    +    SetPlotSILRestriction(silr ,1)
    +
    +    SetActivePlots(1)
    +    FilledBoundaryAtts = FilledBoundaryAttributes()
    +    FilledBoundaryAtts.colorType = FilledBoundaryAtts.ColorBySingleColor  # ColorBySingleColor, ColorByMultipleColors, ColorByColorTable
    +    FilledBoundaryAtts.singleColor = (0, 0, 0, 255)
    +    FilledBoundaryAtts.wireframe = 1
    +    SetPlotOptions(FilledBoundaryAtts)
    +
    +    SetViewExtentsType(1)
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0.673534, 0.187326, -0.715025)
    +    View3DAtts.focus = (0.75, 0.75, 2.6)
    +    View3DAtts.viewUp = (-0.667323, 0.570092, -0.479244)
    +    View3DAtts.parallelScale = 1.13358
    +    View3DAtts.nearPlane = -2.26716
    +    View3DAtts.farPlane = 2.26716
    +    View3DAtts.imageZoom = 0.826446
    +    SetView3D(View3DAtts)
    +
    +    DrawPlots()
    +
    +    Test("mili_hidden_material_edge_lines")
    +
    +    SetViewExtentsType(0)
    +    ResetView()
    +    DeleteAllPlots()
    +    CloseDatabase(db_path)
    +
    +def TestDisplacement():
    +    TestSection("Displacement")
    +
    +    db_path = single_domain_path + "/d3samp6.plt.mili"
    +    OpenDatabase(db_path)
    +
    +    SetTimeSliderState(100)
    +
    +    AddPlot("Mesh", "mesh1")
    +    MeshAtts = MeshAttributes()
    +    MeshAtts.opaqueMode = MeshAtts.On  # Auto, On, Off
    +    SetPlotOptions(MeshAtts)
    +
    +    AddPlot("Vector", "Derived/node/displacement")
    +
    +    SetActivePlots(0)
    +    AddOperator("Displace", 1)
    +    DisplaceAtts = DisplaceAttributes()
    +    DisplaceAtts.factor = 1
    +    DisplaceAtts.variable = "Derived/node/displacement"
    +    SetOperatorOptions(DisplaceAtts, 0, 1)
    +
    +    DrawPlots()
    +    SetViewExtentsType(1)
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0.709435, 0.445393, -0.546193)
    +    View3DAtts.focus = (0.750029, 0.750029, 1.28125)
    +    View3DAtts.viewUp = (-0.422366, 0.889093, 0.176411)
    +    View3DAtts.parallelScale = 1.66334
    +    View3DAtts.nearPlane = -3.32667
    +    View3DAtts.farPlane = 3.32667
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 0.564474
    +    SetView3D(View3DAtts)
    +
    +    DrawPlots()
    +
    +    Test("mili_displacement")
    +
    +    SetViewExtentsType(0)
    +    ResetView()
    +    DeleteAllPlots()
    +    CloseDatabase(db_path)
    +
    +def Main():
    +    TestComponentVis()
    +    TestNonSharedElementSets()
    +    TestSharedElementSets()
    +    TestMaterialVar()
    +    TestTensors()
    +    TestVectors()
    +    TestSandMesh()
    +    TestMaterials()
    +    TestMultiDomain()
    +    TestParticles()
    +    TestStaticNodes()
    +    TestLabels()
    +    TestSciNotation()
    +    TestMultiSubrecRead()
    +    TestDerivedVariables()
    +    TestGlobalIntegrationPoint()
    +    TestMaterialEdgeLines()
    +    TestDisplacement()
    +
    +Main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_miranda.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_miranda.html new file mode 100644 index 000000000..bb8109512 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_miranda.html @@ -0,0 +1,108 @@ + +Results for databases/miranda.py + +

    Results of VisIt Regression Test - databases/miranda

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    miranda_raw_reader10.000.00
    miranda_raw_reader20.000.00
    miranda_raw_reader30.000.00
    miranda_raw_reader40.000.00
    miranda_raw_reader50.000.00
    miranda_raw_reader60.000.00
    miranda_raw_reader70.000.00
    miranda_raw_reader80.000.00
    miranda_raw_reader90.000.00
    miranda_raw_reader100.000.00
    miranda_raw_reader110.000.00
    miranda_raw_reader120.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_miranda_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_miranda_py.html new file mode 100644 index 000000000..faa2cc86e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_miranda_py.html @@ -0,0 +1,156 @@ +databases/miranda.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  miranda.py 
    +#
    +#  Tests:      miranda raw dumps
    +#
    +#  Programmer: David Bremer
    +#  Date:       Feb 20, 2007
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Tue Jul 15 10:43:58 EDT 2008
    +#    Changed number of vectors in vector plot to match the old behavior.
    +#    (We now account for how many domains there are.)
    +#
    +#    Jeremy Meredith, Thu Jan 14 11:19:12 EST 2010
    +#    Changed the path to the test data.
    +#
    +# ----------------------------------------------------------------------------
    +import os, string
    +
    +# ====================================================================
    +
    +OpenDatabase(data_path("miranda_test_data/TG_vortex/plot.raw"))
    +
    +AddPlot("Pseudocolor","density")
    +DrawPlots()
    +Test("miranda_raw_reader1")
    +
    +# ====================================================================
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +Test("miranda_raw_reader2")
    +
    +# ====================================================================
    +
    +SetTimeSliderState(1)
    +Test("miranda_raw_reader3")
    +
    +# ====================================================================
    +
    +SetTimeSliderState(2)
    +DeleteAllPlots()
    +AddPlot("Vector", "velocity")
    +vec = VectorAttributes()
    +vec.nVectors = 400*64
    +SetPlotOptions(vec)
    +DrawPlots()
    +Test("miranda_raw_reader4")
    +
    +# ====================================================================
    +
    +v=GetView3D()
    +v.viewNormal=(-0.707107, -0.707107, 0)
    +v.viewUp=(0, 0, 1)
    +SetView3D(v)
    +Test("miranda_raw_reader5")
    +
    +# ====================================================================
    +
    +DeleteAllPlots()
    +ReplaceDatabase(data_path("miranda_test_data/jet_2d/plot_mat_t83.raw"))
    +
    +
    +SetTimeSliderState(0)
    +AddPlot("Pseudocolor","density")
    +DrawPlots()
    +Test("miranda_raw_reader6")
    +
    +# ====================================================================
    +
    +SetTimeSliderState(1)
    +DeleteAllPlots()
    +AddPlot("Vector", "velocity")
    +vec = VectorAttributes()
    +vec.nVectors = 400*128
    +SetPlotOptions(vec)
    +DrawPlots()
    +vv=GetView2D()
    +vv.viewportCoords=(0.2, 0.95, 0.15, 0.95)
    +vv.windowCoords=(0.00640306, 0.00963122, 0.0128936, 0.0161598)
    +SetView2D(vv)
    +Test("miranda_raw_reader7")
    +
    +# ====================================================================
    +
    +SetTimeSliderState(2)
    +Test("miranda_raw_reader8")
    +
    +# ====================================================================
    +
    +DeleteAllPlots()
    +ReplaceDatabase(data_path("miranda_test_data/stem_2d/plot.mir"))
    +
    +vv = View2DAttributes()
    +vv.windowCoords = (0, 2.23563, -0.28, 0.835625)
    +vv.viewportCoords = (0.05, 0.95, 0.05, 0.95)
    +vv.fullFrameActivationMode = vv.On  # On, Off, Auto
    +vv.fullFrameAutoThreshold = 100
    +SetView2D(vv)
    +
    +SetTimeSliderState(0)
    +AddPlot("Pseudocolor","density")
    +DrawPlots()
    +Test("miranda_raw_reader9")
    +
    +# ====================================================================
    +
    +SetTimeSliderState(3)
    +DrawPlots()
    +Test("miranda_raw_reader10")
    +
    +# ====================================================================
    +
    +ReplaceDatabase(data_path("miranda_test_data/2015-05-06-RT_XeHe/plot.mir"))
    +
    +SetTimeSliderState(0)
    +
    +AddPlot("Pseudocolor","density")
    +
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (-0.626786, -0.71511, 0.309445)
    +View3DAtts.focus = (0, 0, 0)
    +View3DAtts.viewUp = (-0.109109, 0.473773, 0.873861)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 11085.1
    +View3DAtts.nearPlane = -22170.3
    +View3DAtts.farPlane = 22170.3
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (0, 0, 0)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +View3DAtts.windowValid = 1
    +SetView3D(View3DAtts)
    +
    +DrawPlots()
    +
    +Test("miranda_raw_reader11")
    +
    +# ====================================================================
    +
    +SetTimeSliderState(1)
    +DrawPlots()
    +
    +Test("miranda_raw_reader12")
    +
    +# ====================================================================
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_moab.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_moab.html new file mode 100644 index 000000000..9f5c29437 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_moab.html @@ -0,0 +1,60 @@ + +Results for databases/moab.py + +

    Results of VisIt Regression Test - databases/moab

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    moab_010.000.00
    moab_020.000.00
    moab_030.000.00
    moab_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_moab_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_moab_py.html new file mode 100644 index 000000000..0c8bffba1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_moab_py.html @@ -0,0 +1,61 @@ +databases/moab.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  moab.py
    +#
    +#  Tests:      mesh      - 3D unstructured,multi-domain, 
    +#              plots     - Pseudocolor, mesh
    +#
    +#  Programmer: Mark C Miller
    +#  Date:       August 10, 2016
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("MOAB")
    +
    +OpenDatabase(data_path("moab_test_data/64bricks_12ktet.h5m"))
    +
    +AddPlot("Mesh", "mesh")
    +AddPlot("Pseudocolor", "NODE_vertex_field")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.RotateAxis(0,45)
    +v.RotateAxis(1,135)
    +SetView3D(v)
    +Test("moab_01")
    +
    +DeleteAllPlots()
    +AddPlot("Mesh", "mesh")
    +AddPlot("Subset", "Materials")
    +DrawPlots()
    +Test("moab_02")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("moab_test_data/64bricks_12ktet.h5m"))
    +
    +OpenDatabase(data_path("moab_test_data/64bricks_512hex_256part.h5m"))
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.RotateAxis(0,45)
    +v.RotateAxis(1,135)
    +SetView3D(v)
    +Test("moab_03")
    +
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i)[0:8] == "GeomSet_":
    +        silr.TurnOffSet(i)
    +    if   silr.SetName(i) == "GeomSet_427_dim_2":
    +        silr.TurnOnSet(i)
    +    elif silr.SetName(i) == "GeomSet_433_dim_2":
    +        silr.TurnOnSet(i)
    +    elif silr.SetName(i) == "GeomSet_438_dim_2":
    +        silr.TurnOnSet(i)
    +    elif silr.SetName(i) == "GeomSet_443_dim_2":
    +        silr.TurnOnSet(i)
    +SetPlotSILRestriction(silr)
    +Test("moab_04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_multi_format.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_multi_format.html new file mode 100644 index 000000000..9f1735aec --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_multi_format.html @@ -0,0 +1,60 @@ + +Results for databases/multi_format.py + +

    Results of VisIt Regression Test - databases/multi_format

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    multi_format_010.000.00
    multi_format_020.000.00
    multi_format_030.000.00
    multi_format_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_multi_format2.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_multi_format2.html new file mode 100644 index 000000000..f05798dfc --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_multi_format2.html @@ -0,0 +1,42 @@ + +Results for databases/multi_format2.py + +

    Results of VisIt Regression Test - databases/multi_format2

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    multi_format2_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_multi_format2_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_multi_format2_py.html new file mode 100644 index 000000000..ed7a66f11 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_multi_format2_py.html @@ -0,0 +1,53 @@ +databases/multi_format2.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  multi_format2.py 
    +#
    +#  Tests:      Using multiple file formats types in the same engine.
    +#
    +#  Programmer: Jeremy Meredith
    +#  Creation:   March 23, 2004
    +#
    +#  Tests a strange case related to the original multi_format.py where the
    +#  engine is restarted implicitly.  This is currently skipped in parallel
    +#  since an implicit engine restart does not pick up the same paralell args.
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +db = (silo_data_path("rect2d.silo") ,
    +      data_path("pdb_test_data/allinone00.pdb"))
    +
    +# Create a Pseudocolor plot of Rect2d.
    +OpenDatabase(db[0])
    +AddPlot("Pseudocolor", "p")
    +
    +# Move it off to the side
    +t=TransformAttributes()
    +t.doTranslate = 1
    +t.translateX = 11.0
    +t.doScale = 1;
    +t.scaleX = 22.5;
    +t.scaleY = 22.5;
    +SetDefaultOperatorOptions(t)
    +AddOperator("Transform")
    +
    +# Create a Pseudocolor plot of AllInOne
    +OpenDatabase(db[1])
    +AddPlot("FilledBoundary", "material(mesh)")
    +
    +# Close the compute engine!
    +CloseComputeEngine("localhost");
    +
    +# Allow it to restart
    +DrawPlots()
    +
    +# Test it!
    +Test("multi_format2_01")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_multi_format_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_multi_format_py.html new file mode 100644 index 000000000..6c9273a84 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_multi_format_py.html @@ -0,0 +1,66 @@ +databases/multi_format.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  multi_format.py 
    +#
    +#  Tests:      Using multiple file formats types in the same engine.
    +#
    +#  Programmer: Hank Childs
    +#  Creation:   March 22, 2004
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Mar 9 09:15:30 PDT 2005
    +#    Removed deprecated functions.
    +#
    +#    Tom Fogal, Tue Dec 15 17:34:00 MST 2009
    +#    Fix path to data.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +db = (data_path("silo_pdb_test_data/wave*.silo database"),
    +      data_path("pdb_test_data/allinone00.pdb"))
    +
    +# Create a Pseudocolor plot of wave.
    +OpenDatabase(db[0])
    +AddPlot("Pseudocolor", "pressure")
    +DrawPlots()
    +
    +# Set the view.
    +v0 = View3DAttributes()
    +v0.viewNormal = (-0.661743, 0.517608, 0.542382)
    +v0.focus = (5, 0.757692, 2.5)
    +v0.viewUp = (0.370798, 0.854716, -0.363277)
    +v0.viewAngle = 30
    +v0.parallelScale = 5.63924
    +v0.nearPlane = -11.2785
    +v0.farPlane = 11.2785
    +v0.imagePan = (0.00100868, 0.0454815)
    +v0.imageZoom = 1.17935
    +v0.perspective = 1
    +SetView3D(v0)
    +Test("multi_format_01")
    +
    +# Create another window and make sure that it has the wave database as its
    +# active source.
    +CloneWindow()
    +SetActiveWindow(2)
    +DeleteAllPlots()
    +
    +# Open the allinone database and make sure that it becomes the active source.
    +OpenDatabase(db[1])
    +
    +# Create a plot from it.
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +Test("multi_format_02")
    +# note: py3 div creates float
    +SetTimeSliderState(int(TimeSliderGetNStates() / 2))
    +Test("multi_format_03")
    +
    +# Switch back to window 1.
    +SetActiveWindow(1)
    +Test("multi_format_04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_netcdf.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_netcdf.html new file mode 100644 index 000000000..1575feaab --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_netcdf.html @@ -0,0 +1,210 @@ + +Results for databases/netcdf.py + +

    Results of VisIt Regression Test - databases/netcdf

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ADAPT files
    netcdf_0_000.000.00
    netcdf_0_010.000.00
    netcdf_0_020.000.00
    netcdf_0_030.000.00
    LODI particle files
    netcdf_1_000.000.00
    netcdf_1_010.000.00
    netcdf_1_020.000.00
    LODI files
    Basic NETCDF reader
    netcdf_3_000.000.00
    netcdf_3_010.000.00
    netcdf_3_020.000.00
    netcdf_3_030.000.00
    netcdf_3_040.000.00
    netcdf_3_050.000.00
    netcdf_3_060.000.00
    netcdf_3_070.000.00
    netcdf_3_080.000.00
    Basic NETCDF reader with zone-centered data
    netcdf_3_090.000.00
    netcdf_3_100.000.00
    CCSM reader
    netcdf_4_000.000.00
    netcdf_4_010.000.00
    netcdf_4_020.000.00
    Time-varying curves
    netcdf_5_000.000.00
    netcdf_5_010.000.00
    FVCOM reader
    netcdf_6_000.000.00
    netcdf_6_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_netcdf_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_netcdf_py.html new file mode 100644 index 000000000..ac5912b38 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_netcdf_py.html @@ -0,0 +1,425 @@ +databases/netcdf.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  netcdf.py
    +#
    +#  Tests:      mesh      - 2D, 3D structured, single domain
    +#              plots     - Mesh, Pseudocolor, FilledBoundary
    +#              operators - Transform
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Mon Aug 22 11:37:35 PDT 2005
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Oct 10 11:20:44 PDT 2007
    +#    Added tests for CCSM data.
    +#
    +#    Jeremy Meredith, Fri Aug  8 11:23:29 EDT 2008
    +#    Updated streamline settings to match new attribute fields.
    +#
    +#    Brad Whitlock, Mon 16:37:34 PST 2009
    +#    I removed the Streamline plot and I fixed some other things to get it
    +#    working again.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Brad Whitlock, Thu Sep  9 11:03:30 PDT 2010
    +#    I added tests for time-varying curves, FVCOM.
    +#
    +#    Kathleen Biagas, Fri Sep 21 10:12:15 MST 2012
    +#    Removed pjoin so that tests can run on Windows.
    +#
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#    individually to match current baseline results.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Replace obsolete Label text attributes with new versions.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("NETCDF")
    +
    +def test0():
    +    TestSection("ADAPT files")
    +    OpenDatabase(data_path("netcdf_test_data/narac/adapt_etex_metfld_from_obs_102312.nc"))
    +    AddPlot("Pseudocolor", "u")
    +    AddPlot("Mesh", "main")
    +    SetActivePlots((0,1))
    +    AddOperator("Transform")
    +    t = TransformAttributes()
    +    t.scaleZ = 200
    +    t.doScale = 1
    +    SetOperatorOptions(t)
    +    DrawPlots()
    +
    +    # Set the view
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.70982, -0.515727, 0.479773)
    +    v.focus = (0, 0, 753888)
    +    v.viewUp = (0.359948, 0.319901, 0.876414)
    +    v.viewAngle = 30
    +    v.parallelScale = 2.38503e+06
    +    v.nearPlane = -4.77005e+06
    +    v.farPlane = 4.77005e+06
    +    v.imagePan = (0.000886525, 0.00976909)
    +    v.imageZoom = 0.952092
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 753888)
    +    SetView3D(v)
    +    Test("netcdf_0_00")
    +
    +    # Set up another view.
    +    v1 = View3DAttributes()
    +    v1.viewNormal = (-0.434823, -0.389027, -0.812149)
    +    v1.focus = (0, 0, 753888)
    +    v1.viewUp = (-0.545125, -0.604143, 0.581249)
    +    v1.viewAngle = 30
    +    v1.parallelScale = 2.38503e+06
    +    v1.nearPlane = -4.77005e+06
    +    v1.farPlane = 4.77005e+06
    +    v1.imagePan = (0.00461106, -0.0368703)
    +    v1.imageZoom = 0.952092
    +    v1.perspective = 1
    +    v1.eyeAngle = 2
    +    v1.centerOfRotationSet = 0
    +    v1.centerOfRotation = (0, 0, 753888)
    +    SetView3D(v1)
    +    Test("netcdf_0_01")
    +
    +    # Plot the terrain by stripping away most of the air.
    +    SetActivePlots(1)
    +    DeleteActivePlots()
    +    AddOperator("IndexSelect")
    +    idxsel = IndexSelectAttributes()
    +    idxsel.dim = idxsel.ThreeD
    +    idxsel.zMax = 1
    +    SetOperatorOptions(idxsel)
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.394106, -0.0944361, 0.9142)
    +    v2.focus = (0, 0, 508267)
    +    v2.viewUp = (0.867549, 0.290123, 0.403965)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 2.31912e+06
    +    v2.nearPlane = -4.63825e+06
    +    v2.farPlane = 4.63825e+06
    +    v2.imagePan = (0.012587, 0.0291994)
    +    v2.imageZoom = 1.08833
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0, 0, 508267)
    +    SetView3D(v2)
    +    DrawPlots()
    +    Test("netcdf_0_02")
    +
    +    # Plot something 2D
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "ustar")
    +    p = PseudocolorAttributes()
    +    p.skewFactor = 0.01
    +    p.scaling = p.Skew
    +    DrawPlots()
    +    Test("netcdf_0_03")
    +    DeleteAllPlots()
    +
    +def test1():
    +    TestSection("LODI particle files")
    +    # First put in the terrain, though it is not a LODI particle file.
    +    OpenDatabase(data_path("netcdf_test_data/narac/adapt_etex_metfld_from_obs_102312.nc"))
    +    AddPlot("Pseudocolor", "u")
    +    AddOperator("Transform", 1)
    +    t = TransformAttributes()
    +    t.scaleZ = 200
    +    t.doScale = 1
    +    SetOperatorOptions(t)
    +    AddOperator("IndexSelect")
    +    idxsel = IndexSelectAttributes()
    +    idxsel.dim = idxsel.ThreeD
    +    idxsel.zMax = 1
    +    SetOperatorOptions(idxsel)
    +    DrawPlots()
    +
    +    # Now add the LODI particle file.
    +    db = data_path("netcdf_test_data/narac/ppart.nc")
    +    OpenDatabase(db)
    +    AddPlot("FilledBoundary", "sourceid")
    +    AddOperator("Transform")
    +    SetOperatorOptions(t)
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.57737, -0.765477, 0.28406)
    +    v.focus = (0, 0, 265602)
    +    v.viewUp = (0.165375, 0.231057, 0.958782)
    +    v.viewAngle = 30
    +    v.parallelScale = 2.27828e+06
    +    v.nearPlane = -4.55655e+06
    +    v.farPlane = 4.55655e+06
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 3.17577
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 265602)
    +    SetView3D(v)
    +    Test("netcdf_1_00")
    +
    +    # Do a Label plot
    +    AddPlot("Label", "sourceid")
    +    AddOperator("Transform")
    +    SetOperatorOptions(t)
    +    L = LabelAttributes()
    +    L.restrictNumberOfLabels = 0
    +    L.textFont1.scale = 6
    +    SetPlotOptions(L)
    +    DrawPlots()
    +    SetActivePlots(1)
    +    f = FilledBoundaryAttributes()
    +    f.pointSizePixels = 10
    +    SetPlotOptions(f)
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.57737, -0.765477, 0.28406)
    +    v2.focus = (0, 0, 265602)
    +    v2.viewUp = (0.165375, 0.231057, 0.958782)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 2.27828e+06
    +    v2.nearPlane = -4.55655e+06
    +    v2.farPlane = 4.55655e+06
    +    v2.imagePan = (-0.0022605, 0.0057171)
    +    v2.imageZoom = 111.554
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0, 0, 265602)
    +    SetView3D(v2)
    +    Test("netcdf_1_01")
    +
    +    # Delete the label plot and go forward in time
    +    SetActivePlots(2)
    +    DeleteActivePlots()
    +    SetView3D(v)
    +    SetActivePlots(1)
    +    f.pointSizePixels = 2
    +    SetPlotOptions(f)
    +    TimeSliderNextState()
    +    Test("netcdf_1_02")
    +    DeleteAllPlots()
    +
    +def test2():
    +    TestSection("LODI files")
    +    # This test is reserved for LODI once it is assured to be right.
    +    return
    +
    +def test3():
    +    TestSection("Basic NETCDF reader")
    +    OpenDatabase(data_path("netcdf_test_data/narac/etex_fill_lambertcc__4000_001.elev"))
    +    AddPlot("Pseudocolor", "elevations")
    +    DrawPlots()
    +    Test("netcdf_3_00")
    +
    +    # Elevate the data
    +    ClearWindow()
    +    AddOperator("Elevate")
    +    e = ElevateAttributes()
    +    e.useXYLimits = e.Always
    +    SetOperatorOptions(e)
    +    AddOperator("Transform")
    +    t = TransformAttributes()
    +    t.doScale = 1
    +    t.scaleX = 100
    +    t.scaleY = 100
    +    t.scaleZ = 3
    +    SetOperatorOptions(t)
    +    th = ThresholdAttributes()
    +    th.listedVarNames = ("elevations")
    +    th.lowerBounds = (1.0)
    +    SetDefaultOperatorOptions(th)
    +    AddOperator("Threshold")
    +    DrawPlots()
    +    # Set up a light
    +    oldLight = GetLight(0)
    +    newLight = GetLight(0)
    +    newLight.enabledFlag = 1
    +    newLight.type = newLight.Camera  # Ambient, Object, Camera
    +    newLight.direction = (-0.626, -0.427, -0.653)
    +    newLight.color = (255, 255, 255, 255)
    +    newLight.brightness = 1
    +    SetLight(0, newLight)
    +    # Set up the view
    +    v = View3DAttributes()
    +    v.viewNormal = (0, -0.5, 0.866025)
    +    v.focus = (0, 0, 1646)
    +    v.viewUp = (0, 0.866025, 0.5)
    +    v.viewAngle = 30
    +    v.parallelScale = 282140
    +    v.nearPlane = -564281
    +    v.farPlane = 564281
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1.43024
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 1646)
    +    SetView3D(v)
    +    InvertBackgroundColor()
    +    Test("netcdf_3_01")
    +    SetLight(0, oldLight)
    +    DeleteAllPlots()
    +    InvertBackgroundColor()
    +
    +    # Try some curves
    +    OpenDatabase(data_path("netcdf_test_data/3252ATT-A1H.cdf"))
    +    AddPlot("Curve", "ATTN_55")
    +    curveAtts = CurveAttributes()
    +    curveAtts.curveColorSource = curveAtts.Custom
    +    curveAtts.curveColor = (255, 0, 0, 255)
    +    SetPlotOptions(curveAtts)
    +    DrawPlots()
    +    Test("netcdf_3_02")
    +    DeleteAllPlots()
    +    OpenDatabase(data_path("netcdf_test_data/AAtestCTD.nc"))
    +    AddPlot("Curve", "ST_70")
    +    curveAtts.curveColor = (0, 255, 0, 255)
    +    SetPlotOptions(curveAtts)
    +    DrawPlots()
    +    ResetView()
    +    Test("netcdf_3_03")
    +    DeleteAllPlots()
    +
    +    # Try some files that I found on climate web sites.
    +    OpenDatabase(data_path("netcdf_test_data/pressure.cdf"))
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    ResetView()
    +    ToggleFullFrameMode() # Did this get set somehow by the curve plots?
    +    Test("netcdf_3_04")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(data_path("netcdf_test_data/aou.cdf"))
    +    AddPlot("Pseudocolor", "aou")
    +    AddOperator("Slice")
    +    s = SliceAttributes()
    +    s.axisType = s.ZAxis
    +    SetOperatorOptions(s)
    +    DrawPlots()
    +    ResetView()
    +    Test("netcdf_3_05")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(data_path("netcdf_test_data/NASA_vegetation_lai.cdf"))
    +    AddPlot("Pseudocolor", "lai")
    +    DrawPlots()
    +    v2 = View2DAttributes()
    +    v2.windowCoords = (-139.883, -44.1452, -18.7702, 74.4037)
    +    v2.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v2.fullFrameActivationMode = v2.Off  # On, Off, Auto
    +    v2.fullFrameAutoThreshold = 100
    +    SetView2D(v2)
    +    Test("netcdf_3_06")
    +    DeleteAllPlots()
    +
    +    # Try a file that used to crash on Windows
    +    db = "netcdf_test_data/Case5_2D-Q.nc"
    +    OpenDatabase(data_path(db))
    +    AddPlot("Pseudocolor", "Q")
    +    DrawPlots()
    +    ResetView()
    +    Test("netcdf_3_07")
    +    SetTimeSliderState(29)
    +    Test("netcdf_3_08")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path(db))
    +
    +    TestSection("Basic NETCDF reader with zone-centered data")
    +    swa = SaveWindowAttributes()
    +    swa.width = 1000
    +    swa.height = 1000
    +    swa.screenCapture = 0
    +    db = "netcdf_test_data/oase-mapdata.nc"
    +    OpenDatabase(data_path(db))
    +    AddPlot("Pseudocolor", "national_rivers_2D")
    +    DrawPlots()
    +    ResetView()
    +    Test("netcdf_3_09", swa)
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "as_zonal/national_rivers_2D")
    +    DrawPlots()
    +    ResetView()
    +    Test("netcdf_3_10", swa)
    +    DeleteAllPlots()
    +    CloseDatabase(data_path(db))
    +
    +def test4():
    +    TestSection("CCSM reader")
    +    db = "netcdf_test_data/tas_mean_T63.nc"
    +    OpenDatabase(data_path(db))
    +    AddPlot("Pseudocolor", "tas")
    +    DrawPlots()
    +    ResetView()
    +    Test("netcdf_4_00")
    +
    +    # Change to the last time state
    +    SetTimeSliderState(1187)
    +    Test("netcdf_4_01")
    +
    +    # Change to the global representation of the data
    +    ChangeActivePlotsVar("global/tas")
    +    ResetView()
    +    Test("netcdf_4_02")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path(db))
    +
    +def test5():
    +    TestSection("Time-varying curves")
    +    db = "netcdf_test_data/timecurve.nc"
    +    OpenDatabase(data_path(db))
    +    AddPlot("Curve", "theta_1_1")
    +    c = CurveAttributes()
    +    c.showLabels = 0
    +    c.curveColor = (255,0,0,255)
    +    c.curveColorSource = c.Custom
    +    SetPlotOptions(c)
    +    cv = GetViewCurve()
    +    cv.domainCoords = (0, 9)
    +    cv.rangeCoords = (0.40657, 5)
    +    cv.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    cv.domainScale = cv.LINEAR  # LINEAR, LOG
    +    cv.rangeScale = cv.LINEAR  # LINEAR, LOG
    +    SetViewCurve(cv)
    +    DrawPlots()
    +    Test("netcdf_5_00")
    +    SetTimeSliderState(4)
    +    Test("netcdf_5_01")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path(db))
    +
    +def test6():
    +    TestSection("FVCOM reader ")
    +    db = "netcdf_test_data/chn_0001.nc"
    +    OpenDatabase(data_path(db))
    +    AddPlot("Pseudocolor", "Dens3{S,Theta,P}")
    +    DrawPlots()
    +    ResetView()
    +    Test("netcdf_6_00")
    +    SetTimeSliderState(47)
    +    Test("netcdf_6_01")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path(db))
    +
    +def main():
    +    test0()
    +    test1()
    +    test2()
    +    test3()
    +    test4()
    +    test5()
    +    test6()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_obj.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_obj.html new file mode 100644 index 000000000..db71b0870 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_obj.html @@ -0,0 +1,126 @@ + +Results for databases/obj.py + +

    Results of VisIt Regression Test - databases/obj

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    obj_cube0.000.00
    obj_face10.000.00
    obj_face20.000.00
    obj_face30.000.00
    obj_face40.000.00
    obj_face50.000.00
    obj_face60.000.00
    obj_tri10.000.00
    obj_tri20.000.00
    obj_box0.000.00
    obj_colors0.000.00
    obj_immediate_colors0.000.00
    obj_scott10.000.00
    obj_scott20.000.00
    obj_scott30.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_obj_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_obj_py.html new file mode 100644 index 000000000..ff7b56753 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_obj_py.html @@ -0,0 +1,85 @@ +databases/obj.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  obj.py
    +#
    +#  Tests:      Wavefront OBJ reader
    +#                  - relative indexing
    +#                  - groups w/ and w/o multiple inclusion via enum scalar
    +#                  - groups with coloration (via material)
    +#
    +#  Programmer: Mark C. Miller, Tue Oct 23 16:09:00 PDT 2018
    +#
    +# ----------------------------------------------------------------------------
    +def TurnOnSetsByName(silr, setNames):
    +    silr.TurnOffAll()
    +    silr.TurnOnSet(1) # the block0 set
    +    for i in range(silr.NumSets()):
    +        if silr.SetName(i) in setNames:
    +            silr.TurnOnSet(i)
    +
    +OpenDatabase(data_path("obj_test_data/cube2.obj"))
    +
    +AddPlot("Mesh", "OBJMesh")
    +ma = MeshAttributes()
    +ma.opaqueColorSource = ma.OpaqueCustom
    +ma.opaqueColor = (192, 192, 192)
    +DrawPlots()
    +SetPlotOptions(ma)
    +
    +v = GetView3D()
    +v.viewNormal = (0.00415051, 0.90155, -0.432654)
    +v.viewUp = (0.959161, 0.118781, 0.256713)
    +SetView3D(v)
    +
    +Test("obj_cube")
    +
    +silr = SILRestriction()
    +setsToTest = ("face1","face2","face3","face4","face5","face6","tri1","tri2","box")
    +for set in setsToTest:
    +    TurnOnSetsByName(silr, (set,))
    +    SetPlotSILRestriction(silr)
    +    Test("obj_%s"%set)
    +
    +silr.TurnOnAll()
    +SetPlotSILRestriction(silr)
    +DeleteAllPlots()
    +CloseDatabase(data_path("obj_test_data/cube2.obj"))
    +OpenDatabase(data_path("obj_test_data/cube1.obj"))
    +
    +# Test coloration of faces from matlib
    +AddPlot("FilledBoundary", "GroupsAsMaterials")
    +DrawPlots()
    +v.RotateAxis(0,30)
    +SetView3D(v)
    +Test("obj_colors")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("obj_test_data/cube1.obj"))
    +OpenDatabase(data_path("obj_test_data/cube3.obj"))
    +
    +# Test coloration of faces from immediate mode colors
    +# Should be same picture as above
    +AddPlot("FilledBoundary", "GroupsAsMaterials")
    +DrawPlots()
    +Test("obj_immediate_colors")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("obj_test_data/cube3.obj"))
    +OpenDatabase(data_path("obj_test_data/test.obj"))
    +
    +# Test various objects from Scott's example database
    +AddPlot("FilledBoundary", "GroupsAsMaterials")
    +DrawPlots()
    +ResetView()
    +Test("obj_scott1")
    +silr = SILRestriction()
    +silr.TurnOffSet(17) # Plane
    +SetPlotSILRestriction(silr)
    +Test("obj_scott2")
    +silr.TurnOffSet(18) # Prism
    +SetPlotSILRestriction(silr)
    +Test("obj_scott3")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_oldsilo.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_oldsilo.html new file mode 100644 index 000000000..af1401b8f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_oldsilo.html @@ -0,0 +1,48 @@ + +Results for databases/oldsilo.py + +

    Results of VisIt Regression Test - databases/oldsilo

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    oldsilo_010.000.00
    oldsilo_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_oldsilo_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_oldsilo_py.html new file mode 100644 index 000000000..bd4a910f7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_oldsilo_py.html @@ -0,0 +1,38 @@ +databases/oldsilo.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  oldsilo.py 
    +#
    +#  Tests:      old-style silo files (netcdf driver)
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       February 11, 2004 
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Thu Jan 14 12:38:24 EST 2010
    +#    Changed path to point to new location.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(data_path("old_silo_test_data/pion0244.silo"))
    +
    +AddPlot("Pseudocolor","d")
    +AddPlot("Mesh","hydro_mesh")
    +DrawPlots()
    +Test("oldsilo_01")
    +DeleteAllPlots()
    +
    +OpenDatabase(data_path("old_silo_test_data/fwl.17217"))
    +
    +AddPlot("Pseudocolor","d")
    +AddPlot("Mesh","mesh1")
    +DrawPlots()
    +Test("oldsilo_02")
    +DeleteAllPlots()
    +
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_openPMD.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_openPMD.html new file mode 100644 index 000000000..125ad5492 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_openPMD.html @@ -0,0 +1,45 @@ + +Results for databases/openPMD.py + +

    Results of VisIt Regression Test - databases/openPMD

    + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    3D Example openPMD File
    openPMD_3D_Fieldsrho0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_openPMD_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_openPMD_py.html new file mode 100644 index 000000000..93ed2d634 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_openPMD_py.html @@ -0,0 +1,40 @@ +databases/openPMD.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  openPMD.py
    +#
    +#  Tests:      openPMD hdf5 files
    +#
    +#  Programmer: Dave Pugmire
    +#  Date:       Mon Oct 28 13:00:15 EDT 2019
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("OpenPMD")
    +
    +openPMDFile = 'openpmd_test_data/data00000500.opmd'
    +
    +vars = ['Fields/rho']
    +
    +def test(var, tagName) :
    +    SetTimeSliderState(1)
    +    AddPlot("Contour", var)
    +    SetActivePlots(0)
    +    ContourAtts = ContourAttributes()
    +    ContourAtts.minFlag = 1
    +    ContourAtts.min = 1
    +    ContourAtts.scaling = ContourAtts.Log
    +    SetPlotOptions(ContourAtts)
    +    DrawPlots()
    +    fileName = var.replace("/", "")
    +    Test(tagName + "_" +  fileName)
    +    DeleteAllPlots()
    +
    +
    +TestSection("3D Example openPMD File")
    +OpenDatabase(data_path(openPMDFile))
    +for var in vars:
    +    test(var,"openPMD_3D")
    +CloseDatabase(data_path(openPMDFile))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_openexr.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_openexr.html new file mode 100644 index 000000000..46d8cc2cb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_openexr.html @@ -0,0 +1,78 @@ + +Results for databases/openexr.py + +

    Results of VisIt Regression Test - databases/openexr

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    openexr_0_R0.000.00
    openexr_0_G0.000.00
    openexr_0_B0.000.00
    openexr_0_A0.000.00
    openexr_0_Z0.000.00
    openexr_0_L0.000.00
    openexr_0_value0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_openexr_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_openexr_py.html new file mode 100644 index 000000000..db803cd97 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_openexr_py.html @@ -0,0 +1,54 @@ +databases/openexr.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  openexr.py 
    +#
    +#  Tests:      openexr reading 
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Feb 15 14:16:45 PST 2018
    +#
    +#  Modifications:
    +# 
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("OpenEXR")
    +
    +def test0():
    +    DefineScalarExpression("masked_value", "if(gt(A, 0), value, 0)")
    +
    +    db = data_path("OpenEXR_test_data/noise_rgbazlv.exr")
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "R")
    +    DrawPlots()
    +    v = GetView2D()
    +    v.viewportCoords = (0, 1, 0, 1)
    +    SetView2D(v)
    +    Test("openexr_0_R")
    +
    +    ChangeActivePlotsVar("G")
    +    Test("openexr_0_G")
    +
    +    ChangeActivePlotsVar("B")
    +    Test("openexr_0_B")
    +
    +    ChangeActivePlotsVar("A")
    +    Test("openexr_0_A")
    +
    +    ChangeActivePlotsVar("Z")
    +    Test("openexr_0_Z")
    +
    +    ChangeActivePlotsVar("L")
    +    Test("openexr_0_L")
    +
    +    ChangeActivePlotsVar("masked_value")
    +    Test("openexr_0_value")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def main():
    +    test0()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_overlink.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_overlink.html new file mode 100644 index 000000000..2559d098c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_overlink.html @@ -0,0 +1,108 @@ + +Results for databases/overlink.py + +

    Results of VisIt Regression Test - databases/overlink

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    overlink_010.000.00
    overlink_020.000.00
    overlink_030.000.00
    overlink_040.000.00
    ANNOTATION_INT nodelists
    overlink_050.000.00
    overlink_060.000.00
    overlink_070.000.00
    overlink_080.000.00
    overlink_090.000.00
    overlink_100.000.00
    Large number of nodelists
    overlink_110.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_overlink_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_overlink_py.html new file mode 100644 index 000000000..9c6bacf17 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_overlink_py.html @@ -0,0 +1,152 @@ +databases/overlink.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  overlink.py 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       November 11, 2004 
    +#
    +#  Modifications:
    +#    Mark C. Miller, Mon Mar  2 12:44:59 PST 2009
    +#    Added tests for 3D and 2D ANNOTTAION_INT nodelists
    +#
    +#    Mark C. Miller, Thu Jun 18 21:43:45 PDT 2009
    +#    Added TestSection() for annotation int nodelists.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Mark C. Miller, Fri May  4 22:54:55 PDT 2012
    +#    Add a test for modestly large number of nodesets to test new vtkBitArray
    +#    approach to handling nodesets.
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(data_path("overlink_test_data/regrovl_qh_1000_10001_4/OvlTop.silo"))
    +
    +
    +#
    +# This is an interesting mesh 
    +#
    +AddPlot("Mesh","MMESH")
    +DrawPlots()
    +v=GetView3D()
    +v.viewNormal = (0.530656, 0.558421, 0.637629)
    +v.viewUp = (-0.401835, 0.82812, -0.390828)
    +SetView3D(v)
    +Test("overlink_01")
    +
    +AddPlot("Pseudocolor","nvar1")
    +DrawPlots()
    +Test("overlink_02")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Subset","domains(MMESH)")
    +DrawPlots()
    +Test("overlink_03")
    +
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "domain1":
    +        silr.TurnOffSet(i)
    +    elif silr.SetName(i) == "domain4":
    +        silr.TurnOffSet(i)
    +SetPlotSILRestriction(silr)
    +Test("overlink_04")
    +
    +#
    +# Test ANNOTATION_INT objects and read options
    +#
    +TestSection("ANNOTATION_INT nodelists")
    +DeleteAllPlots()
    +CloseDatabase(data_path("overlink_test_data/regrovl_qh_1000_10001_4/OvlTop.silo"))
    +
    +
    +# First test open with search for ANNOT_INT objects turned on
    +# but none actually in the database.
    +readOptions=GetDefaultFileOpenOptions("Silo")
    +readOptions["Search For ANNOTATION_INT (!!Slow!!)"] = 1
    +SetDefaultFileOpenOptions("Silo", readOptions)
    +OpenDatabase(silo_data_path("multipart_multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor","d")
    +DrawPlots()
    +ResetView()
    +Test("overlink_05")
    +
    +# likewise on single domain, single file
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multipart_multi_ucd3d.silo"))
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor","dx")
    +DrawPlots()
    +ResetView()
    +Test("overlink_06")
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("globe.silo"))
    +
    +
    +# Ok, now lets do some real annot_int work
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("globe.silo"))
    +
    +OpenDatabase(data_path("overlink_test_data/annotInt/sweptCellTagTest.silo"))
    +
    +AddPlot("Mesh","MMESH")
    +DrawPlots()
    +Test("overlink_07")
    +
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "negYNodes":
    +        silr.TurnOffSet(i)
    +        break
    +SetPlotSILRestriction(silr)
    +Test("overlink_08")
    +
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "negZNodes":
    +        silr.TurnOffSet(i)
    +        break
    +SetPlotSILRestriction(silr)
    +Test("overlink_09")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("overlink_test_data/annotInt/sweptCellTagTest.silo"))
    +
    +OpenDatabase(data_path("overlink_test_data/annotInt/overlink2dTest.silo"))
    +
    +AddPlot("Mesh","MMESH")
    +DrawPlots()
    +ResetView()
    +v = GetView2D()
    +v.windowCoords = (-0.360608, 6.36061, -0.115684, 6.11568)
    +SetView2D(v)
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "posR":
    +        silr.TurnOffSet(i)
    +        break
    +SetPlotSILRestriction(silr)
    +Test("overlink_10")
    +
    +TestSection("Large number of nodelists")
    +DeleteAllPlots()
    +CloseDatabase(data_path("overlink_test_data/annotInt/overlink2dTest.silo"))
    +
    +OpenDatabase(data_path("overlink_test_data/annotInt/overlink2dTstA.silo"))
    +
    +AddPlot("Mesh","MMESH")
    +DrawPlots()
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if (i%2 and silr.SetName(i)[0:5] == "cell_"):
    +        silr.TurnOffSet(i)
    +SetPlotSILRestriction(silr)
    +Test("overlink_11")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_pdbdatabase.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_pdbdatabase.html new file mode 100644 index 000000000..89103b167 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_pdbdatabase.html @@ -0,0 +1,348 @@ + +Results for databases/pdbdatabase.py + +

    Results of VisIt Regression Test - databases/pdbdatabase

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Testing with /usr/WS1/visit/test_trunk/build/testdata/pdb_test_data/multi*.pdb database
    pdb_multi_000.000.00
    pdb_multi_010.000.00
    pdb_multi_020.000.00
    pdb_multi_030.000.00
    pdb_multi_040.000.00
    pdb_multi_050.000.00
    pdb_multi_060.000.00
    pdb_multi_070.000.00
    pdb_multi_080.000.00
    pdb_multi_090.000.00
    pdb_multi_100.000.00
    pdb_multi_110.000.00
    pdb_multi_120.000.00
    pdb_multi_130.000.00
    pdb_multi_140.000.00
    pdb_multi_150.000.00
    Testing with /usr/WS1/visit/test_trunk/build/testdata/pdb_test_data/family*.pdb database
    pdb_family_000.000.00
    pdb_family_010.000.00
    pdb_family_020.000.00
    pdb_family_030.000.00
    pdb_family_040.000.00
    pdb_family_050.000.00
    pdb_family_060.000.00
    pdb_family_070.000.00
    pdb_family_080.000.00
    pdb_family_090.000.00
    pdb_family_100.000.00
    pdb_family_110.000.00
    pdb_family_120.000.00
    pdb_family_130.000.00
    pdb_family_140.000.00
    pdb_family_150.000.00
    Testing with /usr/WS1/visit/test_trunk/build/testdata/pdb_test_data/allinone00.pdb
    pdb_allinone_000.000.00
    pdb_allinone_010.000.00
    pdb_allinone_020.000.00
    pdb_allinone_030.000.00
    pdb_allinone_040.000.00
    pdb_allinone_050.000.00
    pdb_allinone_060.000.00
    pdb_allinone_070.000.00
    pdb_allinone_080.000.00
    pdb_allinone_090.000.00
    pdb_allinone_100.000.00
    pdb_allinone_110.000.00
    pdb_allinone_120.000.00
    pdb_allinone_130.000.00
    pdb_allinone_140.000.00
    pdb_allinone_150.000.00
    Testing mixvars in Flash files
    pdb_nomix0.000.00
    pdb_mix0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_pdbdatabase_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_pdbdatabase_py.html new file mode 100644 index 000000000..c12b5a7a0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_pdbdatabase_py.html @@ -0,0 +1,247 @@ +databases/pdbdatabase.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  pdbdatabase.py
    +#
    +#  Tests:      mesh      - 2D,3D curvilinear, single domain
    +#              plots     - Pseudocolor, Subset, Vector
    +#              operators - Clip
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Sep 25 09:31:28 PDT 2003
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Mar 31 09:11:08 PDT 2004
    +#    I added code to clear the engine cache to reduce memory usage.
    +#
    +#    Brad Whitlock, Fri Apr 9 16:54:15 PST 2004
    +#    I added TestSection to divide up the tests a little.
    +#
    +#    Brad Whitlock, Thu Sep 2 12:08:59 PDT 2004
    +#    I replaced some deprecated calls with their new equivalents.
    +#
    +#    Brad Whitlock, Tue Dec 7 17:52:33 PST 2004
    +#    I added a test for mixvars in Flash files.
    +#
    +#    Mark C. Miller, Sat Feb  3 00:42:05 PST 2007
    +#    Added tests for array variables
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Replace obsolete Label text attributes with new versions.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("PDB")
    +
    +##
    +## This creates a name for a test.
    +##
    +def CreateTestName(testName, testIndex):
    +    name = "%s_%02d" % (testName, testIndex)
    +    return name
    +
    +def sv3():
    +    v3 = View3DAttributes()
    +    v3.viewNormal = (0.516282, 0.582114, 0.628169)
    +    v3.focus = (0, 0, 0)
    +    v3.viewUp = (-0.488576, 0.80261, -0.342213)
    +    v3.viewAngle = 30
    +    v3.parallelScale = 43.589
    +    v3.nearPlane = -87.178
    +    v3.farPlane = 87.178
    +    v3.imagePan = (0, 0)
    +    v3.imageZoom = 1.41577
    +    v3.perspective = 1
    +    SetView3D(v3)
    +
    +##
    +## This function performs the test using the specified database.
    +##
    +def TestWithDatabase(db, testName):
    +    TestSection("Testing with %s" % db)
    +
    +    # Open the test database
    +    OpenDatabase(db)
    +
    +    ##
    +    ## Do the 2D tests.
    +    ##
    +
    +    # Add the plots.
    +    AddPlot("FilledBoundary", "material(mesh)")
    +    DrawPlots()
    +
    +    # Do the first test in the series
    +    Test(CreateTestName(testName, 0))
    +
    +    SetTimeSliderState(6)
    +    Test(CreateTestName(testName, 1))
    +
    +    SetTimeSliderState(15)
    +    Test(CreateTestName(testName, 2))
    +
    +    # Do a test on the last frame in the animation.
    +    SetTimeSliderState(22)
    +    Test(CreateTestName(testName, 3))
    +
    +    AddPlot("Mesh", "mesh")
    +    DrawPlots()
    +    v = View2DAttributes()
    +    v.windowCoords = (-6.07862, -0.374491, 4.48986, 10.8545)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    SetView2D(v)
    +    Test(CreateTestName(testName, 4))
    +
    +    # Try turning off material 2
    +    SetActivePlots((0,1))
    +    TurnMaterialsOff("2")
    +    Test(CreateTestName(testName, 5))
    +    TurnMaterialsOn()
    +
    +    ResetView()
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "mesh/a")
    +    DrawPlots()
    +    Test(CreateTestName(testName, 6))
    +
    +    # Define a expression. I'm testing this because of the strange
    +    # <mesh/var> syntax that my plugin has.
    +    DefineVectorExpression("testexp1", "3.0 * {<mesh/lt>, <mesh/a>/399.0}")
    +    AddPlot("Vector", "testexp1")
    +    DrawPlots();
    +    vec = VectorAttributes()
    +    vec.nVectors = 1200
    +    vec.colorByMagnitude = 0
    +    SetPlotOptions(vec)
    +    v.windowCoords = (-9.51217, -0.289482, 0.983025, 10.6717)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    SetView2D(v)
    +    Test(CreateTestName(testName, 7))
    +
    +    # Set the time back to frame 0
    +    SetTimeSliderState(0)
    +    ResetView()
    +    DeleteAllPlots()
    +
    +    ##
    +    ## Do the 3D tests.
    +    ##
    +
    +    AddPlot("FilledBoundary", "material2(revolved_mesh)")
    +    AddOperator("Clip")
    +    c = ClipAttributes()
    +    c.funcType = c.Plane
    +    c.plane1Status = 0
    +    c.plane2Status = 1
    +    c.plane3Status = 1
    +    SetOperatorOptions(c)
    +    DrawPlots()
    +
    +    # Set the view
    +    sv3()
    +    Test(CreateTestName(testName, 8))
    +
    +    SetTimeSliderState(6)
    +    sv3()
    +    Test(CreateTestName(testName, 9))
    +
    +    SetTimeSliderState(15)
    +    sv3()
    +    Test(CreateTestName(testName, 10))
    +
    +    # Do a test on the last frame in the animation.
    +    SetTimeSliderState(22)
    +    sv3()
    +    Test(CreateTestName(testName, 11))
    +
    +    # Turn off some materials
    +    TurnMaterialsOff(("1", "3", "4"))
    +    sv3()
    +    Test(CreateTestName(testName, 12))
    +    TurnMaterialsOn()
    +
    +    # Set the time back to frame 2
    +    SetTimeSliderState(2)
    +    ResetView()
    +    DeleteAllPlots()
    +
    +    #
    +    # Test array variables
    +    #
    +    AddPlot("Pseudocolor","logical_mesh/marray_comps/comp_002")
    +    DrawPlots()
    +    Test(CreateTestName(testName, 13))
    +
    +    DeleteAllPlots()
    +    ResetView()
    +    AddPlot("Pseudocolor","revolved_mesh/marray_comps/comp_002")
    +    DrawPlots()
    +    Test(CreateTestName(testName, 14))
    +
    +    DeleteAllPlots()
    +    ResetView()
    +    AddPlot("Label","logical_mesh/marray")
    +    DrawPlots()
    +    Test(CreateTestName(testName, 15))
    +
    +    # Set the time back to frame 0
    +    SetTimeSliderState(0)
    +    ResetView()
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +    ClearCache("localhost")
    +
    +#
    +# Test mixvars.
    +#
    +def TestMixvars(db):
    +    TestSection("Testing mixvars in Flash files")
    +    DeleteAllPlots()
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "mesh/mixvar")
    +    DrawPlots()
    +    ResetView()
    +    v = View2DAttributes()
    +    v.windowCoords = (-9.51866, 3.29394, 13.9258, 26.4126)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.fullFrameActivationMode = v.Off
    +    SetView2D(v)
    +    Test("pdb_nomix")
    +
    +    # Do the same plot but with forced MIR so the mixvar gets reconstructed.
    +    ClearWindow()
    +    m = GetMaterialAttributes()
    +    m.forceMIR = 1
    +    SetMaterialAttributes(m)
    +    DrawPlots()
    +    Test("pdb_mix")
    +    DeleteAllPlots()
    +
    +#
    +# Run the test a few times with different versions of the database. We do this
    +# because we have the same database split up three different ways and all the
    +# ways a database can be split up must work.
    +#
    +#   multi{00,01,02}.pdb  - Contains multiple time states in each file but
    +#                          we group them all into "multi*.pdb database".
    +#
    +#   family??.pdb         - Contains a single time state in each file but
    +#                          we group them all into "family*.pdb database".
    +#
    +#   allinone00.pdb       - Contains all of the time states in one file.
    +#
    +
    +databases = (data_path("pdb_test_data/multi*.pdb database"),
    +             data_path("pdb_test_data/family*.pdb database"),
    +             data_path("pdb_test_data/allinone00.pdb"))
    +testNames = ("pdb_multi", "pdb_family", "pdb_allinone")
    +for i in range(len(databases)):
    +    TestWithDatabase(databases[i], testNames[i])
    +
    +# Do the mixvar test.
    +TestMixvars(databases[2])
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_pixie.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_pixie.html new file mode 100644 index 000000000..4b6643ee5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_pixie.html @@ -0,0 +1,92 @@ + +Results for databases/pixie.py + +

    Results of VisIt Regression Test - databases/pixie

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    pixie_010.000.00
    pixie_020.000.00
    pixie_030.000.00
    pixie_040.390.00
    pixie_050.000.00
    pixie_060.000.00
    pixie_070.000.00
    pixie_080.000.00
    pixie_090.000.00
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_pixie_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_pixie_py.html new file mode 100644 index 000000000..172d12e16 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_pixie_py.html @@ -0,0 +1,161 @@ +databases/pixie.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  pixie.py 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       April 4, 2005 
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# test a 2D pixie database
    +OpenDatabase(data_path("pixie_test_data/pixie3d3.h5"))
    +
    +
    +#
    +# Test simple read and display of a variable 
    +#
    +AddPlot("Pseudocolor","Car variables/Bx")
    +DrawPlots()
    +Test("pixie_01")
    +
    +AddPlot("Mesh","curvemesh_33x33x2")
    +DrawPlots()
    +Test("pixie_02")
    +
    +# really zoom in on the center of this mesh
    +v=GetView2D()
    +v.windowCoords = (-5.84435e-05, 5.84435e-05, -5.12076e-05, 5.12076e-05)
    +SetView2D(v)
    +Test("pixie_03")
    +
    +DeleteAllPlots()
    +
    +# test a 3D pixie database
    +OpenDatabase(data_path("pixie_test_data/pixie3d4.h5"))
    +
    +AddPlot("Mesh","curvemesh_33x33x33")
    +AddPlot("Contour","Car variables/Vx")
    +v=GetView3D()
    +v.viewNormal=(-0.5, 0, 0.866025)
    +SetView3D(v)
    +DrawPlots()
    +Test("pixie_04")
    +DeleteAllPlots()
    +ResetView()
    +
    +# test a pixie expression (plot vector magnitude)
    +OpenDatabase(data_path("pixie_test_data/pixie_expressions.h5"))
    +
    +# Test that vector data can be used. We use a Contour plot instead of a Vector
    +# plot now because the glyph indices for the Vector plot can change depending
    +# on how the mesh was automatically decomposed by the reader.
    +AddPlot("Contour","V_magnitude")
    +AddOperator("Transform")
    +t = TransformAttributes()
    +t.doScale = 1
    +t.scaleZ = 0.25
    +SetOperatorOptions(t)
    +DrawPlots()
    +v=GetView3D()
    +v.viewNormal = (0.557477, 0.525516, 0.642692)
    +v.focus = (0.484375, 0.5, 0.984375)
    +v.viewUp = (-0.252277, 0.844773, -0.471926)
    +v.viewAngle = 30
    +v.parallelScale = 1.22474
    +v.nearPlane = -2.44949
    +v.farPlane = 2.44949
    +v.imagePan = (0.0454993, 0.0670485)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0.484375, 0.5, 0.984375)
    +SetView3D(v)
    +Test("pixie_05")
    +DeleteAllPlots()
    +
    +# Test a transparent plot to see how well ghosting works when the
    +# mesh gets divided up in parallel.
    +DefineScalarExpression("one", "point_constant(curvemesh_33x33x65, 1.)")
    +AddPlot("Pseudocolor", "one")
    +pc = PseudocolorAttributes()
    +pc.SetOpacityType(pc.Constant)
    +pc.opacity = 0.31
    +SetPlotOptions(pc)
    +AddOperator("Transform")
    +t = TransformAttributes()
    +t.doScale = 1
    +t.scaleZ = 0.25
    +SetOperatorOptions(t)
    +DrawPlots()
    +Test("pixie_06")
    +DeleteAllPlots()
    +
    +# test a contour plot on double precision data
    +AddPlot("Contour","Car_variables/Vx")
    +v = GetView3D()
    +v.viewNormal = (0, 0, 1)
    +v.focus = (0.484375, 0.5, 3.9375)
    +v.viewUp = (0, 1, 0)
    +v.viewAngle = 30
    +v.parallelScale = 4.06202
    +v.nearPlane = -8.12404
    +v.farPlane = 8.12404
    +v.imagePan = (0, 0)
    +v.imageZoom = 20
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0.484375, 0.5, 3.9375)
    +SetView3D(v)
    +DrawPlots()
    +Test("pixie_07")
    +DeleteAllPlots()
    +
    +# test a mesh plot of a non-square, 2D, curvilinear mesh 
    +OpenDatabase(data_path("pixie_test_data/pixie3d5.h5"))
    +
    +AddPlot("Mesh","curvemesh_65x33x2")
    +AddPlot("Pseudocolor","Diagnostics/q factor")
    +DrawPlots()
    +v=GetView2D()
    +v.windowCoords=(-0.241119, 0.241119, -0.162714, 0.162714)
    +SetView2D(v)
    +Test("pixie_08")
    +DeleteAllPlots()
    +
    +# test a pseudocolor plot of a 3D curvilinear mesh
    +OpenDatabase(data_path("pixie_test_data/pixie3d6.h5"))
    +
    +AddPlot("Mesh", "curvemesh_8x8x8")
    +AddPlot("Pseudocolor","Curvilinear/temperature")
    +DrawPlots()
    +v = GetView3D()
    +v.viewNormal = (0.465617, -0.587141, 0.662168)
    +v.focus = (0.5, 1, 1.5)
    +v.viewUp = (0.884708, 0.327576, -0.33164)
    +v.viewAngle = 30
    +v.parallelScale = 1.63698
    +v.nearPlane = -3.27395
    +v.farPlane = 3.27395
    +v.imagePan = (0, 0)
    +v.imageZoom = 0.9
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0.5, 1, 1.5)
    +v.axis3DScaleFlag = 0
    +v.axis3DScales = (1, 1, 1)
    +v.shear = (0, 0, 1)
    +v.windowValid = 1
    +SetView3D(v)
    +Test("pixie_09")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_plaintext.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_plaintext.html new file mode 100644 index 000000000..fc300ef97 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_plaintext.html @@ -0,0 +1,87 @@ + +Results for databases/plaintext.py + +

    Results of VisIt Regression Test - databases/plaintext

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    CSV data as Curves
    PlainText_Curves0.000.00
    CSV data as Curves inferred X coordinate
    PlainText_Curves_noX0.000.00
    CSV data as 3D points with variable(s)
    PlainText_Points0.000.00
    CSV data as 2D array on uniform grid
    PlainText_2DArray0.000.00
    CSV data with 1-character variable names
    PlainText_2DArray0.000.00
    PlainText_1dArray_Short_Var_Names0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_plaintext_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_plaintext_py.html new file mode 100644 index 000000000..d996354ff --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_plaintext_py.html @@ -0,0 +1,341 @@ +databases/plaintext.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  plaintext.py
    +#
    +#  Tests:      multiple curves from a CSV file without and with implicit X
    +#              2D and 3D points with variables in a CSV file
    +#              An array of data as a 2D regular grid
    +#
    +#  Notes:
    +#    - Code snippets from this file are literalinclude'd in our docs.
    +#    - Test image results produced by this test are also literalinclude'd.
    +#    - Input .csv files used here are also literalinclude'd.
    +#    - If you ever need to change the .csv files, you can regen them using
    +#      this script with 'genonly' CL arg and vanilla python (it won't make any
    +#      VisIt CLI calls).
    +#
    +#  Mark C. Miller, Fri Mar 11 14:33:30 PST 2022
    +#  Based on original code by Eric Brugger in our documentation
    +# 
    +#  Modifications:
    +#    Justin Privitera, Fri Sep 27 15:03:48 PDT 2024
    +#    Added tests for files with 1-char variable names.
    +# ----------------------------------------------------------------------------
    +import copy, math, os, sys
    +
    +#
    +# Example of PlainText open options dict...
    +#
    +# {'Data layout': '1D Columns # Options are: 1D Columns, 2D Array',
    +#  'Lines to skip at beginning of file': 0,
    +#  'First row has variable names': 0,
    +#  'Column for X coordinate (or -1 for none)': -1,
    +#  'Column for Y coordinate (or -1 for none)': -1,
    +#  'Column for Z coordinate (or -1 for none)': -1}
    +#
    +
    +#
    +# Use this function with deepcopy to ensure we always start from a
    +# prestine default state for open options.
    +#
    +def GetDefaultOpenOptions():
    +    if not hasattr(GetDefaultOpenOptions, 'defaultOpenOptions'):
    +        GetDefaultOpenOptions.defaultOpenOptions = copy.deepcopy(GetDefaultFileOpenOptions("PlainText"))
    +    return copy.deepcopy(GetDefaultOpenOptions.defaultOpenOptions)
    +
    +def CreateCurvesDataFile(filename):
    +
    +    # Curve gen {
    +    with open(filename, "wt") as f:
    +        # create header
    +        f.write("angle,sine,cosine\n")
    +        npts = 73
    +        for i in range(npts):
    +            angle_deg = float(i) * (360. / float(npts-1))
    +            angle_rad = angle_deg * (3.1415926535 / 180.)
    +            sine = math.sin(angle_rad)
    +            cosine = math.cos(angle_rad)
    +            # write abscissa (x value) and ordinates (y-value(s))
    +            f.write("%g,%g,%g\n" % (angle_deg, sine, cosine))
    +    # Curve gen }
    +
    +def CreateCurvesDataFileWithNoXCoordinates(filename):
    +
    +    # Curve noX gen {
    +    with open(filename, "wt") as f:
    +        # create header
    +        f.write("inverse,sqrt,quadratic\n")
    +        npts = 100
    +        for i in range(npts):
    +            inv = float(100) / (float(i)+1)
    +            sqr = 10 * math.sqrt(i)
    +            quad = float(i*i) / float(100)
    +            f.write("%g,%g,%g\n" % (inv, sqr, quad))
    +    # Curve noX gen }
    +
    +def Create3DPointsWithVariablesDataFile(filename):
    +
    +    # Points gen {
    +    with open(filename, "wt") as f:
    +        # write header
    +        f.write("x y z velx vely velz temp\n")
    +        n = 100
    +        for i in range(n):
    +            t = float(i) / float(n-1)
    +            angle = t * (math.pi * 2.) * 5.
    +            r = t * 10.
    +            x = r * math.cos(angle)
    +            y = r * math.sin(angle)
    +            z = t * 10.
    +            vx = math.sqrt(x*x + y*y)
    +            vy = math.sqrt(y*y + z*z)
    +            vz = math.sqrt(x*x + z*z)
    +            temp = math.sqrt((t-0.5)*(t-0.5))
    +            # write point and value(s)
    +            f.write("%g %g %g %g %g %g %g\n" % (x,y,z,vx,vy,vz,temp))
    +    # Points gen }
    +
    +def Create2DArrayDataFile(filename):
    +
    +    # Array gen {
    +    with open(filename, "wt") as f:
    +        # Only the first column name matters.
    +        # The others are required but otherwise ignored.
    +        f.write("density c2 c3 c4 c5 c6 c7 c8\n")
    +        nx = 8
    +        ny = 10
    +        for iy in range(ny):
    +            y = float(iy)
    +            for ix in range(nx):
    +                x = float(ix)
    +                dist = math.sqrt(x*x + y*y)
    +                if (ix < nx - 1):
    +                   f.write("%g " % dist)
    +                else:
    +                   f.write("%g\n" % dist)
    +    # Array gen }
    +
    +def CreateAnother2DArrayDataFile(filename):
    +
    +    # Array gen 2 {
    +    with open(filename, "wt") as f:
    +        # Only the first column name matters.
    +        # The others are required but otherwise ignored.
    +        f.write("d c2 c3 c4 c5 c6 c7 c8\n")
    +        f.write("0 1 2 3 4 5 6 7\n")
    +        f.write("1 1.41421 2.23607 3.16228 4.12311 5.09902 6.08276 7.07107\n")
    +        f.write("2 2.23607 2.82843 3.60555 4.47214 5.38516 6.32456 7.28011\n")
    +        f.write("3 3.16228 3.60555 4.24264 5 5.83095 6.7082 7.61577\n")
    +        f.write("4 4.12311 4.47214 5 5.65685 6.40312 7.2111 8.06226\n")
    +        f.write("5 5.09902 5.38516 5.83095 6.40312 7.07107 7.81025 8.60233\n")
    +        f.write("6 6.08276 6.32456 6.7082 7.2111 7.81025 8.48528 9.21954\n")
    +        f.write("7 7.07107 7.28011 7.61577 8.06226 8.60233 9.21954 9.89949\n")
    +        f.write("8 8.06226 8.24621 8.544 8.94427 9.43398 10 10.6301\n")
    +        f.write("9 9.05539 9.21954 9.48683 9.84886 10.2956 10.8167 11.4018\n")
    +    # Array gen 2 }
    +
    +def Create1DArrayDataFile(filename):
    +
    +    # Array gen 2 {
    +    with open(filename, "wt") as f:
    +        # Only the first column name matters.
    +        # The others are required but otherwise ignored.
    +        f.write("x y v\n")
    +        f.write("0 0 0.5\n")
    +        f.write("1 0 1.0\n")
    +        f.write("2 0 0.5\n")
    +        f.write("0 1 1.0\n")
    +        f.write("1 1 0.5\n")
    +        f.write("2 1 1.0\n")
    +        f.write("0 2 0.5\n")
    +        f.write("1 2 1.0\n")
    +        f.write("2 2 0.5\n")
    +    # Array gen 2 }
    +
    +def TestCSVCurves():
    +    TestSection("CSV data as Curves")
    +    CreateCurvesDataFile("curves.csv")
    +
    +    # Curve plot {
    +    # GetDefaultOpenOptions() is a wrapper internal to our tests to the CLI method GetDefaultFileOpenOptions().
    +    # It ensures we always start from a pristine default state for open options.
    +    plainTextOpenOptions = GetDefaultOpenOptions()
    +    plainTextOpenOptions['First row has variable names'] = 1
    +    plainTextOpenOptions['Column for X coordinate (or -1 for none)'] = 0
    +    SetDefaultFileOpenOptions("PlainText", plainTextOpenOptions)
    +
    +    OpenDatabase("curves.csv")
    +    AddPlot("Curve","sine")
    +    AddPlot("Curve","cosine")
    +    DrawPlots()
    +    # Curve plot }
    +    ResetView()
    +    Test("PlainText_Curves")
    +    DeleteAllPlots()
    +    CloseDatabase("curves.csv")
    +    os.unlink("curves.csv")
    +
    +def TestCSVCurvesNoX():
    +    TestSection("CSV data as Curves inferred X coordinate")
    +    CreateCurvesDataFileWithNoXCoordinates("curves_nox.csv")
    +
    +    # Curve noX plot {
    +    # GetDefaultOpenOptions() is a wrapper internal to our tests to the CLI method GetDefaultFileOpenOptions().
    +    # It ensures we always start from a pristine default state for open options.
    +    plainTextOpenOptions = GetDefaultOpenOptions()
    +    plainTextOpenOptions['First row has variable names'] = 1
    +    SetDefaultFileOpenOptions("PlainText", plainTextOpenOptions)
    +
    +    OpenDatabase("curves_nox.csv")
    +    AddPlot("Curve","inverse")
    +    AddPlot("Curve","sqrt")
    +    AddPlot("Curve","quadratic")
    +    DrawPlots()
    +    # Curve noX plot }
    +    ResetView()
    +    Test("PlainText_Curves_noX")
    +    DeleteAllPlots()
    +    CloseDatabase("curves_nox.csv")
    +    os.unlink("curves_nox.csv")
    +
    +def TestCSV3DPointsAndVariables():
    +    TestSection("CSV data as 3D points with variable(s)")
    +    Create3DPointsWithVariablesDataFile("points.txt")
    +
    +    # Points plot {
    +    # GetDefaultOpenOptions() is a wrapper internal to our tests to the CLI method GetDefaultFileOpenOptions().
    +    # It ensures we always start from a pristine default state for open options.
    +    plainTextOpenOptions = GetDefaultOpenOptions()
    +    plainTextOpenOptions['First row has variable names'] = 1
    +    plainTextOpenOptions['Column for X coordinate (or -1 for none)'] = 0
    +    plainTextOpenOptions['Column for Y coordinate (or -1 for none)'] = 1
    +    plainTextOpenOptions['Column for Z coordinate (or -1 for none)'] = 2
    +    SetDefaultFileOpenOptions("PlainText", plainTextOpenOptions)
    +    OpenDatabase("points.txt")
    +
    +    DefineVectorExpression("vel", "{velx,vely,velz}")
    +    AddPlot("Pseudocolor", "temp")
    +    AddPlot("Vector","vel")
    +    DrawPlots()
    +    # Points plot }
    +    ResetView()
    +    Test("PlainText_Points")
    +    DeleteAllPlots()
    +    CloseDatabase("points.txt")
    +    os.unlink("points.txt")
    +
    +def TestCSV2DArray():
    +    TestSection("CSV data as 2D array on uniform grid")
    +    Create2DArrayDataFile("array.txt")
    +
    +    # Array plot {
    +    # GetDefaultOpenOptions() is a wrapper internal to our tests to the CLI method GetDefaultFileOpenOptions().
    +    # It ensures we always start from a pristine default state for open options.
    +    plainTextOpenOptions = GetDefaultOpenOptions()
    +    plainTextOpenOptions['First row has variable names'] = 1
    +    plainTextOpenOptions['Data layout'] = '2D Array'
    +    SetDefaultFileOpenOptions("PlainText", plainTextOpenOptions)
    +
    +    OpenDatabase("array.txt")
    +    AddPlot("Pseudocolor", "density")
    +    DrawPlots()
    +    ResetView()
    +    # Array plot }
    +    Test("PlainText_2DArray")
    +    DeleteAllPlots()
    +    CloseDatabase("array.txt")
    +    os.unlink("array.txt")
    +
    +def TestCSVShortVarNames():
    +    TestSection("CSV data with 1-character variable names")
    +
    +    #
    +    # test 2d
    +    #
    +    CreateAnother2DArrayDataFile("2darray_short_names.txt")
    +
    +    plainTextOpenOptions = GetDefaultOpenOptions()
    +    plainTextOpenOptions['First row has variable names'] = 1
    +    plainTextOpenOptions['Data layout'] = '2D Array'
    +    SetDefaultFileOpenOptions("PlainText", plainTextOpenOptions)
    +
    +    OpenDatabase("2darray_short_names.txt")
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +    Test("PlainText_2DArray")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +    CloseDatabase("2darray_short_names.txt")
    +    os.unlink("2darray_short_names.txt")
    +
    +    #
    +    # test 1d
    +    #
    +    Create1DArrayDataFile("1darray_short_names.txt")
    +
    +    plainTextOpenOptions = GetDefaultOpenOptions()
    +    plainTextOpenOptions['First row has variable names'] = 1
    +    plainTextOpenOptions['Data layout'] = '1D Columns'
    +    plainTextOpenOptions['Column for X coordinate (or -1 for none)'] = 0
    +    plainTextOpenOptions['Column for Y coordinate (or -1 for none)'] = 1
    +    SetDefaultFileOpenOptions("PlainText", plainTextOpenOptions)
    +
    +    OpenDatabase("1darray_short_names.txt")
    +    AddPlot("Pseudocolor", "v")
    +    DrawPlots()
    +    SetActivePlots(0)
    +    PseudocolorAtts = PseudocolorAttributes()
    +    PseudocolorAtts.pointSizePixels = 20
    +    SetPlotOptions(PseudocolorAtts)
    +    View2DAtts = View2DAttributes()
    +    View2DAtts.windowCoords = (-0.4641, 2.4641, -0.4641, 2.4641)
    +    View2DAtts.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    SetView2D(View2DAtts)
    +
    +    Test("PlainText_1dArray_Short_Var_Names")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +    CloseDatabase("1darray_short_names.txt")
    +    os.unlink("1darray_short_names.txt")
    +
    +def main():
    +
    +    if 'genonly' in sys.argv:
    +        CreateCurvesDataFile('curves.csv')
    +        CreateCurvesDataFileWithNoXCoordinates('curves_nox.csv')
    +        Create3DPointsWithVariablesDataFile('points.txt')
    +        Create2DArrayDataFile('array.txt')
    +        CreateAnother2DArrayDataFile("2darray_short_names.txt")
    +        Create1DArrayDataFile("1darray_short_names.txt")
    +        sys.exit(0)
    +
    +    #
    +    # Idiom here...we can't manipulate open options until *after*
    +    # mdserver is running
    +    #
    +    OpenMDServer("localhost")
    +
    +    #
    +    # Make sure curve plots are without labels
    +    #
    +    ca = CurveAttributes()
    +    ca.showLabels = 0
    +    SetDefaultPlotOptions(ca)
    +
    +    TestCSVCurves()
    +
    +    TestCSVCurvesNoX()
    +
    +    TestCSV3DPointsAndVariables()
    +
    +    TestCSV2DArray()
    +
    +    TestCSVShortVarNames()
    +
    +    Exit()
    +
    +main()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_rect.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_rect.html new file mode 100644 index 000000000..592cba6bf --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_rect.html @@ -0,0 +1,93 @@ + +Results for databases/rect.py + +

    Results of VisIt Regression Test - databases/rect

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Curvilinear grid files
    rect_010.000.00
    rect_020.000.00
    rect_030.000.00
    rect_040.000.00
    Rectilinear grid files
    rect_050.000.00
    rect_060.000.00
    1D Datasets re-interpreted as curves.
    rect_070.000.00
    rect_080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_rect_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_rect_py.html new file mode 100644 index 000000000..6794406b2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_rect_py.html @@ -0,0 +1,98 @@ +databases/rect.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  rect.py 
    +#
    +#  Tests:      rect files 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       May 15, 2008 
    +#
    +#  Mark C. Miller, Thu Feb 12 01:30:24 PST 2009
    +#  Added test for rectilinear mesh case. Re-enabled setting of SIL restriction
    +#  which was disabled due to a bug that was resolved back in May, 2008.
    +#
    +#  Mark C. Miller, Wed Feb 18 17:52:44 PST 2009
    +#  Fixed missing AddPlot() call just prior to image 08. Changed name of 
    +#  curve objects that get re-interpreted.
    +#
    +#  Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#  Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#  individually to match current baseline results.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# test the main mesh
    +TestSection("Curvilinear grid files")
    +OpenDatabase(data_path("Rect_test_data/curv_data/datafile.rect"))
    +
    +AddPlot("Mesh","Mesh")
    +DrawPlots()
    +v=GetView3D()
    +v.RotateAxis(1, 30.0)
    +SetView3D(v)
    +Test("rect_01")
    +
    +# test a variable
    +AddPlot("Pseudocolor","pressure")
    +DrawPlots()
    +Test("rect_02")
    +
    +# test going forward in time
    +TimeSliderNextState()
    +Test("rect_03")
    +
    +# test restriction
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "domain2":
    +        silr.TurnOffSet(i)
    +SetPlotSILRestriction(silr)
    +DrawPlots()
    +Test("rect_04")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("Rect_test_data/curv_data/datafile.rect"))
    +
    +
    +TestSection("Rectilinear grid files")
    +OpenDatabase(data_path("Rect_test_data/rect_data/datafile.rect"))
    +
    +AddPlot("Mesh","Mesh")
    +DrawPlots()
    +ResetView()
    +Test("rect_05")
    +
    +AddPlot("Pseudocolor","myTest")
    +DrawPlots()
    +Test("rect_06")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("Rect_test_data/rect_data/datafile.rect"))
    +
    +
    +TestSection("1D Datasets re-interpreted as curves.")
    +
    +
    +OpenDatabase(data_path("Rect_test_data/1d/rect_data/datafile.rect"))
    +
    +AddPlot("Curve", "Scalar_Curves/pressure")
    +c = CurveAttributes()
    +c.showLabels = 0
    +c.curveColorSource = c.Custom
    +c.curveColor = (255, 0, 0, 255)
    +SetPlotOptions(c)
    +DrawPlots()
    +ResetView()
    +Test("rect_07")
    +
    +AddPlot("Curve", "Scalar_Curves/density")
    +c.curveColor = (0, 255, 0, 255)
    +SetPlotOptions(c)
    +DrawPlots()
    +TimeSliderNextState()
    +Test("rect_08")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_reopen.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_reopen.html new file mode 100644 index 000000000..0755129bf --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_reopen.html @@ -0,0 +1,261 @@ + +Results for databases/reopen.py + +

    Results of VisIt Regression Test - databases/reopen

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    reopen_1_000 modifications totalling 0 lines
    reopen_1_010.000.00
    reopen_1_020 modifications totalling 0 lines
    Reopening virtual database
    reopen_2_000.000.00
    reopen_2_010 modifications totalling 0 lines
    reopen_2_020.000.00
    reopen_2_030 modifications totalling 0 lines
    reopen_2_040.000.00
    reopen_2_050 modifications totalling 0 lines
    Reopening .visit file
    reopen_2_060.000.00
    reopen_2_070 modifications totalling 0 lines
    reopen_2_080.000.00
    reopen_2_090 modifications totalling 0 lines
    reopen_2_100.000.00
    reopen_2_110 modifications totalling 0 lines
    Reopening .visit file of time-varying data
    reopen_3_000.000.00
    reopen_3_010 modifications totalling 0 lines
    reopen_3_020.000.00
    reopen_3_030 modifications totalling 0 lines
    reopen_3_040.000.00
    reopen_3_050 modifications totalling 0 lines
    reopen_3_060.000.00
    reopen_3_070 modifications totalling 0 lines
    Reopening overwritten file to test engine
    reopen_4_000.000.00
    reopen_4_010.000.00
    Testing reopen/expressions with multiple windows
    reopen_5_000 modifications totalling 0 lines
    reopen_5_010 modifications totalling 0 lines
    Testing reopen at an invalid time state
    reopen_6_000 modifications totalling 0 lines
    reopen_6_010.000.00
    reopen_6_020 modifications totalling 0 lines
    reopen_6_030.000.00
    reopen_6_040 modifications totalling 0 lines
    reopen_6_050.000.00
    reopen_6_060 modifications totalling 0 lines
    reopen_6_070.000.00
    reopen_6_080 modifications totalling 0 lines
    reopen_6_090.000.00
    reopen_6_100 modifications totalling 0 lines
    Testing reopen on a deleted file
    reopen_7_000.000.00
    reopen_7_010 modifications totalling 0 lines
    reopen_7_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_reopen_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_reopen_py.html new file mode 100644 index 000000000..1c2dfe675 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_reopen_py.html @@ -0,0 +1,550 @@ +databases/reopen.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial
    +#  CLASSES: nightly
    +#
    +#  Test Case:  reopen.py 
    +#
    +#  Tests:      Reopening a database where the SIL is invariant.
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 1, 2004
    +#
    +#  Modifications:
    +#    Brad Whitlock, Fri Mar 19 15:09:09 PST 2004
    +#    I changed one of the OpenDatabase calls to ReOpenDatabase. I also
    +#    added more extensive reopen tests.
    +#
    +#    Brad Whitlock, Fri Apr 9 16:28:01 PST 2004
    +#    I added a test that really makes sure the engine reexecuted during
    +#    a reopen.
    +#
    +#    Jeremy Meredith, Wed Apr 28 11:42:31 PDT 2004
    +#    I made the "Don't need to copy" message go to stderr.
    +#
    +#    Brad Whitlock, Wed Feb 2 16:27:54 PST 2005
    +#    Added a test for making sure that expressions are right after reopening
    +#    a database when there are multiple windows. I also added a test to 
    +#    make sure that time sliders are shortened when we reopen a database
    +#    that has had some of its time states removed.
    +#
    +#    Hank Childs, Wed Feb 16 07:34:07 PST 2005
    +#    Rename variables that have unsupported characters.
    +#
    +#    Brad Whitlock, Tue Feb 22 13:56:56 PST 2005
    +#    Added a test case for reopening a file that has been deleted.
    +#
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Jeremy Meredith, Wed Jan 20 11:02:36 EST 2010
    +#    Fixed some file path issues and checked for "from" file before
    +#    assuming a symlink return error implied a different error message.
    +#
    +#    Kathleen Biagas, Fri May 26 08:31:00 MST 2017
    +#    Fixed reopen_04_01 for windows to use the same file as for non-windows.
    +#
    +#    Kathleen Biagas, Monday October 12, 2020 
    +#    Use TestEnv.params["run_dir"] instead of "." in calls to os.listdir.
    +#
    +# ----------------------------------------------------------------------------
    +from __future__ import print_function
    +import os
    +import sys
    +import time
    +import shutil
    +
    +def GetTruncatedWindowInformationString():
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 5 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    for i in range(5):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    return s
    +
    +#
    +# Look at the first few lines of the string representation of the
    +# WindowInformation to see the list of time sliders, etc.
    +#
    +def TestWindowInformation(testname):
    +    TestText(testname, GetTruncatedWindowInformationString())
    +
    +def TestLength(testname):
    +    tsLength = TimeSliderGetNStates()
    +    testString = "%s has %d states\n" % (GetActiveTimeSlider(), tsLength)
    +    testString = testString + GetTruncatedWindowInformationString()
    +    TestText(testname, testString)
    +
    +#
    +# Returns whether all files in the list are in the run directory.
    +#
    +def FilesPresent(files):
    +    currentFileList = os.listdir(TestEnv.params["run_dir"])
    +    count = 0
    +    retval = 0
    +    if type(files) == type(()) or type(files) == type([]):
    +        for file in files:
    +            if file in currentFileList:
    +                count = count + 1
    +        retval = count == len(files)
    +    else:
    +        # We got here because the files argument was 
    +        # a single value instead of a tuple or list.
    +        if files in currentFileList:
    +            retval = 1
    +
    +    return retval
    +
    +
    +#
    +# Removes all files ending in .silo or .visit from the run directory
    +# to ensure that there are no such files left over from a failed test.
    +#
    +def RemoveAllSiloAndVisItFiles():
    +    currentFileList = os.listdir(TestEnv.params["run_dir"])
    +    for file in currentFileList:
    +        if file[-5:] == ".silo" or file[-6:] == ".visit":
    +            try:
    +                os.unlink(file)
    +            except:
    +                # Ignore any exceptions
    +                pass
    +
    +#
    +# Function to create a .visit file or virtual database using time states
    +# from wave.
    +#
    +def CreateMTFile(prefix, makeVisItFile, percent):
    +    # Create a list of files that will be used to create the database
    +    # for the test.
    +    nStates = 71
    +    t = float(percent) / 100.
    +    maxState = int(float(nStates) * t)
    +    files = []
    +    prefixfiles = []
    +    for i in range(maxState):
    +        w = "wave%04d.silo" % (i * 10)
    +        files = files + [w]
    +        prefixfiles = prefixfiles + [prefix+w]
    +
    +    if makeVisItFile == 0:
    +        # Virtual database
    +        for file in files:
    +            fileFrom = data_path("silo_hdf5_test_data/%s" % file)
    +            fileTo   = "%s%s" % (prefix, file)
    +            if not os.path.exists(fileFrom):
    +                print("Error: %s didn't exist" % fileFrom, file=sys.stderr)
    +            try:
    +                # Copy a file from the data directory to the current directory.
    +                if not sys.platform.startswith("win"):
    +                    os.link(fileFrom, fileTo)
    +                else:
    +                    shutil.copyfile(fileFrom, fileTo)
    +            except OSError:
    +                print("Don't need to copy %s" % file, file=sys.stderr)
    +        db = prefix + "wave*.silo database"
    +    else:
    +        # .visit file.
    +        db = "reopen_wave.visit"
    +        f = open(db, "wt")
    +        for file in files:
    +            f.write(data_path("silo_hdf5_test_data/%s\n" % file))
    +        f.close()
    +    return (db, prefixfiles)
    +
    +# Function to remove the .visit file or the virtual database.
    +def DestroyMTFile(makeVisItFile, db):
    +    RemoveAllSiloAndVisItFiles()
    +
    +# Function to create a new SAMRAI .visit file.
    +def CreateTimeVaryingMTFile(percent):
    +    # Read in the entire dumps.visit file for the SAMRAI data so that
    +    # we can get the list of files.
    +    f = open(data_path("samrai_test_data/sil_changes/dumps.visit"), "rt")
    +    lines = f.readlines()
    +    f.close()
    +
    +    # Create a new .visit file
    +    nStates = len(lines)
    +    t = float(percent) / 100.
    +    maxState = int(float(nStates) * t)
    +    db = "reopen_samrai.visit"
    +    f = open(db, "wt")
    +    for i in range(maxState):
    +        f.write(data_path("samrai_test_data/sil_changes/%s") % lines[i])
    +    f.close()
    +    return db
    +
    +# Function to remove the SAMRAI .visit file.
    +def DestroyTimeVaryingMTFile(db):
    +    RemoveAllSiloAndVisItFiles()
    +
    +def SetTheView():
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.735926, 0.562657, 0.376604)
    +    v0.focus = (5, 0.753448, 2.5)
    +    v0.viewUp = (0.454745, 0.822858, -0.340752)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 5.6398
    +    v0.nearPlane = -11.2796
    +    v0.farPlane = 11.2796
    +    v0.imagePan = (0.0589778, 0.0898255)
    +    v0.imageZoom = 1.32552
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    SetView3D(v0)
    +
    +###############################################################################
    +
    +#
    +# Make sure that Reopen does not reset the time slider state and also make
    +# sure that we are getting the metadata for a late time state.
    +#
    +def test1():
    +    #
    +    # This will open at timestep 0.  The variable "transient" will not be
    +    # available then.
    +    #
    +    db = silo_data_path("wave.visit")
    +    OpenDatabase(db)
    +
    +    #
    +    # Now set the time to a timestep when "transient" is available.
    +    #
    +    SetTimeSliderState(20)
    +    TestWindowInformation("reopen_1_00")
    +
    +    #
    +    # If we were to try and make a PC plot of transient right now, it wouldn't
    +    # work.  We need to do a re-open first.
    +    #
    +    ReOpenDatabase(db)
    +
    +    #
    +    # Make a plot of transient. This had better not reset the time state to 0.
    +    #
    +    AddPlot("Pseudocolor","transient")
    +    DrawPlots()
    +    SetTheView()
    +    Test("reopen_1_01")
    +
    +    #
    +    # Delete the plots and close the database
    +    #
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +    TestWindowInformation("reopen_1_02")
    +
    +
    +#
    +# Now test that reopening a file actually makes the time slider longer. First
    +# create a new .visit file that we can add onto later.
    +#
    +def test2():
    +    VirtualDatabase = 0
    +    VisItFile = 1
    +
    +    testIndex = 0
    +    for method in (VirtualDatabase, VisItFile):
    +        # Add a section title.
    +        if(method == VirtualDatabase):
    +            TestSection("Reopening virtual database")
    +        else:
    +            TestSection("Reopening .visit file")
    +
    +        db, files = CreateMTFile("", method, 30)
    +        OpenDatabase(db)
    +        AddPlot("Pseudocolor", "pressure")
    +        DrawPlots()
    +
    +        # Set up the view.
    +        SetTheView()
    +
    +        # Go to the last time state.
    +        SetTimeSliderState(TimeSliderGetNStates() - 1)
    +        Test("reopen_2_%02d" % testIndex)
    +        TestLength("reopen_2_%02d" % (testIndex + 1))
    +
    +        # Create more time states in the file.
    +        db, files = CreateMTFile("", method, 60)
    +        ReOpenDatabase(db)
    +        # Go to the last time state.
    +        SetTimeSliderState(TimeSliderGetNStates() - 1)
    +        Test("reopen_2_%02d" % (testIndex + 2))
    +        TestLength("reopen_2_%02d" % (testIndex + 3))
    +
    +        # Create more time states in the file.
    +        db, files = CreateMTFile("", method, 100)
    +        ReOpenDatabase(db)
    +        # Go to the last time state.
    +        SetTimeSliderState(TimeSliderGetNStates() - 1)
    +        Test("reopen_2_%02d" % (testIndex + 4))
    +        TestLength("reopen_2_%02d" % (testIndex + 5))
    +
    +        # Get rid of the .visit file that we created.
    +        DestroyMTFile(method, db)
    +        DeleteAllPlots()
    +        CloseDatabase(db)
    +
    +        # Get to the next testIndex
    +        testIndex = testIndex + 6
    +
    +
    +#
    +# Now that we've tested time-invariant databases, try testing reopen with
    +# a time-varying database to see if we get the right plots.
    +#
    +def test3():
    +    TestSection("Reopening .visit file of time-varying data")
    +
    +    testIndex = 0
    +    for percent in (30,60,100):
    +        db = CreateTimeVaryingMTFile(percent)
    +        if(percent == 30):
    +            OpenDatabase(db)
    +            AddPlot("Pseudocolor", "Primitive Var _number_0")
    +            DrawPlots()
    +
    +            # Set the view
    +            v0 = View3DAttributes()
    +            v0.viewNormal = (-0.598154, 0.519575, -0.610127)
    +            v0.focus = (15, 10, 10)
    +            v0.viewUp = (0.418052, 0.851849, 0.315574)
    +            v0.viewAngle = 30
    +            v0.parallelScale = 20.6155
    +            v0.nearPlane = -41.2311
    +            v0.farPlane = 41.2311
    +            v0.imagePan = (0.0200698, 0.0374771)
    +            v0.imageZoom = 1
    +            v0.perspective = 1
    +            v0.eyeAngle = 2
    +            SetView3D(v0)
    +
    +            # Save a test
    +            Test("reopen_3_%02d" % testIndex)
    +            testIndex = testIndex + 1
    +            TestLength("reopen_3_%02d" % testIndex)
    +            testIndex = testIndex + 1
    +
    +        else:
    +            # Reopen the database to add the new time states.
    +            ReOpenDatabase(db)
    +
    +        # Go to the last time state.
    +        SetTimeSliderState(TimeSliderGetNStates() - 1)
    +
    +        # Save a test
    +        Test("reopen_3_%02d" % testIndex)
    +        testIndex = testIndex + 1
    +        TestLength("reopen_3_%02d" % testIndex)
    +        testIndex = testIndex + 1
    +
    +    # Clean up the time varying .visit file.
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +    DestroyTimeVaryingMTFile(db)
    +
    +#
    +# Test that reopening a file that has been overwritten works.
    +#
    +def test4():
    +    TestSection("Reopening overwritten file to test engine")
    +
    +    # Copy curv2d to the current directory.
    +    db = "test4.silo"
    +    if not sys.platform.startswith("win"):
    +        os.link(silo_data_path("curv2d.silo") , db)
    +    else:
    +        shutil.copyfile(silo_data_path("curv2d.silo") , db)
    +
    +    # Open up the file and create a plot.
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    Test("reopen_4_00")
    +
    +    # Delete the file
    +    try:
    +        os.unlink(db)
    +    except:
    +        # Ignore any exceptions
    +        pass
    +
    +    if not sys.platform.startswith("win"):
    +        os.link(silo_data_path("rect2d.silo") , db)
    +    else:
    +        shutil.copyfile(silo_data_path("rect2d.silo") , db)
    +
    +    ReOpenDatabase(db)
    +    ResetView()
    +    Test("reopen_4_01")
    +
    +    DeleteAllPlots()
    +    # Delete the file
    +    try:
    +        os.unlink(db)
    +    except:
    +        # Ignore any exceptions
    +        pass
    +
    +
    +#
    +# Test that expressions are not lost after reopening a file when there
    +# are multiple windows.
    +#
    +def test5():
    +    TestSection("Testing reopen/expressions with multiple windows")
    +    db = silo_data_path("curv3d.silo")
    +    AddWindow()
    +    SetActiveWindow(1)
    +    OpenDatabase(db)
    +    TestExpressions("reopen_5_00")
    +
    +    # See if the expressions are right after reopening.
    +    ReOpenDatabase(db)
    +    TestExpressions("reopen_5_01")
    +
    +    # Delete the window that we added.
    +    SetActiveWindow(2)
    +    DeleteWindow()
    +    CloseDatabase(db)
    +
    +#
    +# Test that time sliders are shortened when we reopen an MT database
    +# that has had time states removed.
    +#
    +def test6():
    +    TestSection("Testing reopen at an invalid time state")
    +    RemoveAllSiloAndVisItFiles()
    +
    +    # Make sure that there is no open database.
    +    TestLength("reopen_6_00")
    +
    +    # Create a short MT file.
    +    db, files = CreateMTFile("", 0, (10. / 71.) * 100.)
    +
    +    # Create a plot and make sure its database has the right number
    +    # of time states.
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    ResetView()
    +    Test("reopen_6_01")
    +    TestLength("reopen_6_02")
    +
    +    # Make a copy of the first window.
    +    CloneWindow()
    +    DrawPlots()
    +    Test("reopen_6_03")
    +    TestLength("reopen_6_04")
    +    SetActiveWindow(1)
    +
    +    # Delete the last few time states
    +    nStates = len(files)
    +    for f in files[-5:]:
    +        try:
    +            os.unlink(f)
    +        except:
    +            print("Could not delete %s" % f, file=sys.stderr)
    +
    +    # Change to a time state that we deleted. This should put the plot
    +    # in the error state and we should get an error message.
    +    SetTimeSliderState(nStates - 2)
    +    Test("reopen_6_05")
    +    TestText("reopen_6_06", GetLastError())
    +
    +    # Do the same thing in window 2 so we can check leter if reopen
    +    # causes the time slider, etc to be corrected.
    +    SetActiveWindow(2)
    +    SetTimeSliderState(nStates - 2)
    +    SetActiveWindow(1)
    +
    +    # Reopen the database. This should pick up that the database has
    +    # fewer time states and should update the time slider so it is
    +    # in bounds. The compute engine also should not crash.
    +    ReOpenDatabase(db)
    +    DrawPlots()
    +    Test("reopen_6_07")
    +    TestLength("reopen_6_08")
    +
    +    # See if we're at the right time state in window 2 too.
    +    SetActiveWindow(2)
    +    DrawPlots()
    +    Test("reopen_6_09")
    +    TestLength("reopen_6_10")
    +    DeleteWindow()
    +
    +    # Delete all of the plots in window 1 and close the database.
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +    # Delete the last few files.
    +    DestroyMTFile(0, db)
    +
    +
    +#
    +# Test reopening a database that has been removed from disk.
    +#
    +def test7():
    +    TestSection("Testing reopen on a deleted file")
    +    # Link a file from the data directory to the current directory.
    +    db = "reopen_globe.silo"
    +    if not sys.platform.startswith("win"):
    +        os.link(silo_data_path("globe.silo") , db)
    +    else:
    +        shutil.copyfile(silo_data_path("globe.silo") , db)
    +
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "t")
    +    DrawPlots()
    +    Test("reopen_7_00")
    +
    +    # Remove the file and make sure that we can't reopen it.
    +    RemoveAllSiloAndVisItFiles()
    +    if ReOpenDatabase(db):
    +        s = "VisIt was able to reopen " + db
    +    else:
    +        s = "VisIt was *NOT* able to reopen " + db + "!"
    +    TestText("reopen_7_01", s)
    +
    +    # Do something that will make the plot be regenerated. Here we're changing
    +    # plot variables to force VisIt to recalculate the plot.
    +    ChangeActivePlotsVar("u")
    +    Test("reopen_7_02")
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +
    +#
    +# Run the tests
    +#
    +try:
    +    # Remove all .silo and .visit files that could be left over from
    +    # previous failed runs.
    +    RemoveAllSiloAndVisItFiles()
    +
    +    # Run the tests
    +    test1()
    +    test2()
    +    test3()
    +    test4()
    +    test5()
    +    test6()
    +    test7()
    +except:
    +    # If we got any kind of exception, make sure that we get rid of
    +    # all of the .silo and .visit files that might be left.
    +    RemoveAllSiloAndVisItFiles()
    +
    +    # Rethrow the exception so the test won't look like it passed if
    +    # it really didn't pass
    +    raise
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_sami.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_sami.html new file mode 100644 index 000000000..6e61fe87b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_sami.html @@ -0,0 +1,78 @@ + +Results for databases/sami.py + +

    Results of VisIt Regression Test - databases/sami

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    sami_010.000.00
    sami_020.000.00
    sami_030.000.00
    sami_040.000.00
    sami_050.000.00
    sami_060.000.00
    sami_070.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_sami_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_sami_py.html new file mode 100644 index 000000000..ed8b2ade5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_sami_py.html @@ -0,0 +1,80 @@ +databases/sami.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  sami.py 
    +#
    +#  Tests:      sami files 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       October 12, 2006 
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("SAMI")
    +
    +# test the main mesh
    +OpenDatabase(data_path("sami_test_data/bdw.sami"))
    +
    +AddPlot("Mesh","mesh")
    +DrawPlots()
    +v=GetView3D()
    +v.viewNormal = (0.433013, 0.5, -0.75)
    +v.viewUp = (-0.25, 0.866025, 0.433013)
    +SetView3D(v)
    +Test("sami_01")
    +
    +# test the material object
    +AddPlot("FilledBoundary","mat")
    +DrawPlots()
    +Test("sami_02")
    +DeleteAllPlots()
    +
    +# test a node set
    +AddPlot("Mesh","nodesets/sl5m")
    +DrawPlots()
    +Test("sami_03")
    +DeleteAllPlots()
    +
    +# test a couple of slide plots
    +AddPlot("Mesh","slide_0/sideB")
    +AddPlot("Mesh","slide_1/sideB")
    +AddPlot("Mesh","slide_2/sideA")
    +AddPlot("Mesh","slide_3/sideA")
    +DrawPlots()
    +Test("sami_04")
    +DeleteAllPlots()
    +
    +# test a multi-part sami file
    +OpenDatabase(data_path("sami_test_data/sample_sami.visit"))
    +
    +AddPlot("Pseudocolor","global_node_numbers")
    +DrawPlots()
    +ResetView()
    +v=GetView3D()
    +v.viewNormal = (-0.866025, 0, -0.5)
    +v.viewUp = (0, 1, 0)
    +SetView3D(v)
    +Test("sami_05")
    +DeleteAllPlots()
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("FilledBoundary","mat")
    +DrawPlots()
    +Test("sami_06")
    +
    +# turn off material 2 and domain 0
    +mat2SetId = -1
    +dom0SetId = -1
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "002":
    +        mat2SetId = i
    +    if silr.SetName(i) == "domain0":
    +        dom0SetId = i
    +silr.TurnOffSet(mat2SetId)
    +silr.TurnOffSet(dom0SetId)
    +SetPlotSILRestriction(silr)
    +DrawPlots()
    +Test("sami_07")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_samrai.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_samrai.html new file mode 100644 index 000000000..00de7a141 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_samrai.html @@ -0,0 +1,294 @@ + +Results for databases/samrai.py + +

    Results of VisIt Regression Test - databases/samrai

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    samrai_010.000.00
    samrai_020.000.00
    samrai_030.000.00
    samrai_040.000.00
    samrai_050.000.00
    samrai_060.000.00
    samrai_070.000.00
    samrai_080.000.00
    samrai_090.000.00
    samrai_100.000.00
    samrai_110.000.00
    samrai_120.000.00
    samrai_130.000.00
    samrai_140.000.00
    samrai_150.000.00
    samrai_160.000.00
    samrai_170.000.00
    samrai_180.000.00
    samrai_190.000.00
    samrai_200.000.00
    samrai_copper_matvf_010.000.00
    samrai_copper_matvf_020.000.00
    samrai_copper_matvf_030.000.00
    samrai_copper_matvf_040.000.00
    samrai_gold_val4mat_010.000.00
    samrai_gold_val4mat_020.000.00
    samrai_gold_val4mat_030.000.00
    samrai_gold_val4mat_040.000.00
    samrai_210.000.00
    samrai_220.000.00
    samrai_230.000.00
    samrai_240.000.00
    samrai_250.000.00
    samrai_260.000.00
    samrai_270 modifications totalling 0 lines
    samrai_280.000.00
    samrai_290 modifications totalling 0 lines
    samrai_300.000.00
    samrai_310 modifications totalling 0 lines
    samrai_330.000.00
    samrai_340.000.00
    samrai_350.000.00
    samrai_360.000.00
    samrai_370.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_samrai_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_samrai_py.html new file mode 100644 index 000000000..900685ccf --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_samrai_py.html @@ -0,0 +1,413 @@ +databases/samrai.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  samrai.py 
    +#
    +#  Tests:      presence of HDF5
    +#              default plot 
    +#              sil changing with time
    +#              nested ghosting
    +#              zbuffer contention
    +#              2d ale data
    +#              operators - slice
    +#              selection - by level
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       November 12, 2003 
    +#
    +#  Modifications:
    +#    Brad Whitlock, Thu Mar 25 14:05:32 PST 2004
    +#    Added a check to see if plots at later time steps get the right metadata.
    +#
    +#    Jeremy Meredith, Thu Jun 24 12:58:06 PDT 2004
    +#    Set the vector origin explicitly for some cases because I changed the
    +#    default to Tail.
    +#
    +#    Mark C. Miller, Thu Aug 19 16:22:49 PDT 2004
    +#    Turned off database info flag so future changes to samrai db plugin
    +#    are less likely to result in a need to update the baselines
    +#
    +#    Hank Childs, Wed Feb 16 07:34:07 PST 2005
    +#    Rename variables that have unsupported characters.
    +#
    +#    Mark C. Miller, Thu Feb 17 09:00:41 PST 2005
    +#    Added tests for variables defined on only some patches
    +#
    +#    Brad Whitlock, Wed Mar 9 09:15:30 PDT 2005
    +#    Removed deprecated functions.
    +#
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +#    Mark C. Miller, Mon Nov  5 20:15:05 PST 2007
    +#    Added tests for sparse materials, expressions
    +#
    +#    Jeremy Meredith, Tue Jul 15 10:43:58 EDT 2008
    +#    Changed number of vectors in vector plot to match the old behavior.
    +#    (We now account for how many domains there are.)
    +#
    +#    Brad Whitlock, Thu Feb 4 10:18:23 PDT 2010
    +#    Turn off sets by name instead of index since that can change.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use Subset plot for levels instead of FilledBoundary.
    +#
    +# ----------------------------------------------------------------------------
    +
    +LevelZero = 4 # set id for level 0
    +
    +# Turn off sets by name
    +def TurnOffSetsByName(silr, cat, names):
    +    sets = silr.SetsInCategory(cat)
    +    for s in sets:
    +        setname = silr.SetName(s)
    +        try:
    +            if setname in names:
    +                silr.TurnOffSet(s)
    +        except:
    +            if setname == names:
    +                silr.TurnOffSet(s)
    +
    +OpenDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +
    +#
    +# just tests that default plot comes up automatically 
    +#
    +Test("samrai_01")
    +
    +#
    +# test exterenal face overlap
    +#
    +AddPlot("Pseudocolor","Primitive Var _number_0")
    +DrawPlots()
    +
    +v=GetView3D()
    +v.viewNormal=(0,0,-1)
    +SetView3D(v)
    +Test("samrai_02")
    +
    +v.viewNormal=(0.34202, 0, -0.939693)
    +SetView3D(v)
    +Test("samrai_03")
    +
    +#
    +# test level selection
    +#
    +silr=SILRestriction()
    +silr.TurnOffSet(LevelZero)
    +SetPlotSILRestriction(silr)
    +v.viewNormal=(0,0,1)
    +SetView3D(v)
    +Test("samrai_04")
    +
    +#
    +# test changing time steps (and sil)
    +#
    +TimeSliderNextState()
    +Test("samrai_05")
    +
    +# go back to begnning of time
    +SetTimeSliderState(0)
    +
    +#
    +# turn on level 0 so we can check that
    +# nested ghosting is working correctly when we slice
    +#
    +silr.TurnOnSet(LevelZero)
    +SetPlotSILRestriction(silr)
    +
    +#
    +# this test is here to remind us we have many internal faces 
    +#
    +v.viewNormal=(-0.537631, 0.372794, -0.756292)
    +v.focus=(15, 10, 10)
    +v.viewUp=(0.262569, 0.926375, 0.269976)
    +v.parallelScale=30
    +v.nearPlane=-10
    +v.farPlane=90
    +SetView3D(v)
    +Test("samrai_06")
    +
    +#
    +# add a mesh plot and slice operator
    +#
    +AddPlot("Mesh","amr_mesh")
    +sliceAtts=SliceAttributes()
    +sliceAtts.originType=sliceAtts.Percent
    +sliceAtts.originPercent=20
    +sliceAtts.axisType=sliceAtts.ZAxis
    +sliceAtts.project2d=1
    +SetDefaultOperatorOptions(sliceAtts)
    +AddOperator("Slice",1)
    +DrawPlots()
    +Test("samrai_07")
    +
    +#
    +# Animate forward 1 frame
    +#
    +TimeSliderNextState()
    +Test("samrai_08")
    +
    +#
    +# Now, go back 1 frame
    +#
    +SetTimeSliderState(0)
    +Test("samrai_09")
    +
    +#
    +# Tests for data from a 2d ale calculation.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(data_path("samrai_test_data/ale2d/dumps.visit"))
    +
    +ResetView()
    +
    +#
    +# Test the default plot.
    +#
    +Test("samrai_10")
    +
    +#
    +# Check the last frame.
    +#
    +TimeSliderNextState()
    +Test("samrai_11")
    +
    +#
    +# Test a vector plot.
    +#
    +AddPlot("Vector", "Velocity")
    +vectorAtts=VectorAttributes()
    +vectorAtts.scale = 0.02
    +vectorAtts.vectorOrigin = vectorAtts.Middle
    +vectorAtts.nVectors = 400*47
    +SetPlotOptions(vectorAtts)
    +DrawPlots()
    +
    +v = View2DAttributes()
    +v.windowCoords = (0.31, 0.58, 0.15, 0.36)
    +SetView2D(v)
    +Test("samrai_12")
    +
    +#
    +# Tests for material/species data 
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(data_path("samrai_test_data/mats-par3/dumps.visit"))
    +
    +ResetView()
    +
    +#
    +# test a material plot
    +#
    +AddPlot("FilledBoundary","materials")
    +DrawPlots()
    +Test("samrai_13")
    +
    +#
    +# test material plot with some patches off
    +#
    +silr=SILRestriction()
    +TurnOffSetsByName(silr, "patches", ("level0,patch0", "level0,patch1","level0,patch2","level0,patch3"))
    +SetPlotSILRestriction(silr)
    +Test("samrai_14")
    +
    +#
    +# now, turn off a material, too
    +#
    +silr.TurnOnAll()
    +TurnOffSetsByName(silr, "materials", "Copper")
    +SetPlotSILRestriction(silr)
    +Test("samrai_15")
    +
    +silr.TurnOnAll()
    +SetPlotSILRestriction(silr)
    +DeleteAllPlots()
    +
    +#
    +# add a species plot
    +#
    +AddPlot("Pseudocolor","species")
    +DrawPlots()
    +
    +#
    +# Selectively turn off each species
    +#
    +silr.TurnOffSet(24)
    +SetPlotSILRestriction(silr)
    +Test("samrai_16")
    +
    +silr.TurnOffSet(25)
    +SetPlotSILRestriction(silr)
    +Test("samrai_17")
    +
    +silr.TurnOffSet(26)
    +SetPlotSILRestriction(silr)
    +Test("samrai_18")
    +
    +silr.TurnOffSet(27)
    +SetPlotSILRestriction(silr)
    +Test("samrai_19")
    +
    +silr.TurnOffSet(28)
    +SetPlotSILRestriction(silr)
    +Test("samrai_20")
    +
    +DeleteAllPlots()
    +
    +# test matvf exprs
    +DefineScalarExpression("copper_vf",'matvf(materials,"Copper")')
    +AddPlot("Pseudocolor","copper_vf")
    +DrawPlots()
    +patts = PseudocolorAttributes()
    +Test("samrai_copper_matvf_01")
    +patts.centering = patts.Nodal  # Natural, Nodal, Zonal
    +SetPlotOptions(patts)
    +Test("samrai_copper_matvf_02")
    +patts.centering = patts.Zonal # Natural, Nodal, Zonal
    +SetPlotOptions(patts)
    +Test("samrai_copper_matvf_03")
    +patts.centering = patts.Natural # Natural, Nodal, Zonal
    +SetPlotOptions(patts)
    +Test("samrai_copper_matvf_04")
    +
    +DeleteAllPlots()
    +
    +DefineScalarExpression("gold_den",'val4mat(Density,"Gold")')
    +AddPlot("Pseudocolor","gold_den")
    +DrawPlots()
    +patts = PseudocolorAttributes()
    +Test("samrai_gold_val4mat_01")
    +patts.centering = patts.Nodal  # Natural, Nodal, Zonal
    +SetPlotOptions(patts)
    +Test("samrai_gold_val4mat_02")
    +patts.centering = patts.Zonal # Natural, Nodal, Zonal
    +SetPlotOptions(patts)
    +Test("samrai_gold_val4mat_03")
    +patts.centering = patts.Natural # Natural, Nodal, Zonal
    +SetPlotOptions(patts)
    +Test("samrai_gold_val4mat_04")
    +
    +DeleteAllPlots()
    +
    +#
    +# Open a new database that has levels that change over time so we can test
    +# that plots get the right metadata and SIL as time advances.
    +#
    +OpenDatabase(data_path("samrai_test_data/front/dumps.visit"))
    +
    +# Get rid of the default plot
    +DeleteAllPlots()
    +AddPlot("Subset", "levels")
    +DrawPlots()
    +ResetView()
    +Test("samrai_21")
    +
    +# Go to the next time state. This used to cause an InvalidIndexException.
    +TimeSliderNextState()
    +Test("samrai_22")
    +
    +#
    +# Test a database where some variables are not defined on all patches
    +#
    +DeleteAllPlots()
    +OpenDatabase(data_path("samrai_test_data/viz_2d/dumps.visit"))
    +
    +AddPlot("Pseudocolor", "Function_0") # only defined on some patches
    +AddPlot("Pseudocolor", "Function_1") # only defined on some other patches
    +DrawPlots()
    +Test("samrai_23")
    +
    +#
    +# Test a samrai database with sparse material representation
    +#
    +DeleteAllPlots()
    +OpenDatabase(data_path("samrai_test_data/sparse_mats/summary.samrai"))
    +
    +AddPlot("Pseudocolor", "energy")
    +DrawPlots()
    +Test("samrai_24")
    +
    +#
    +#  Zoom into a region where there is mixing
    +#
    +v=GetView2D()
    +v.windowCoords=(-0.296975, -0.223086, 0.0437891, 0.120943)
    +SetView2D(v)
    +DrawPlots()
    +Test("samrai_25")
    +
    +#
    +# Turn off different materials and see what we get for the PC plot
    +# and zone picks
    +#
    +silr = SILRestriction()
    +j = 0
    +for k1 in silr.SetsInCategory("materials"):
    +    i = 1
    +    for k2 in silr.SetsInCategory("materials"):
    +        if silr.SetName(k2) == "material_%d"%(j+1):
    +            silr.TurnOffSet(k2)
    +        else:
    +            silr.TurnOnSet(k2)
    +        i = i + 1
    +    SetPlotSILRestriction(silr)
    +    DrawPlots()
    +    Test("samrai_%d"%(26+2*j))
    +    PickByZone(247,15)
    +    TestText("samrai_%d"%(26+2*j+1),GetPickOutput())
    +    j = j + 1
    +
    +#
    +# Test some expressions from the samrai database 
    +#
    +silr.TurnOnAll()
    +SetPlotSILRestriction(silr)
    +DeleteAllPlots()
    +AddPlot("Pseudocolor","von_mises_stress")
    +DrawPlots()
    +Test("samrai_33")
    +DeleteAllPlots()
    +AddPlot("Pseudocolor","speed")
    +DrawPlots()
    +Test("samrai_34")
    +
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("samrai_test_data/sparse_mats/summary.samrai"))
    +OpenDatabase(data_path("samrai_test_data/curv_bnd_ghost/dumps.visit"))
    +s = GetPlotOptions()
    +s.colorType = s.ColorBySingleColor
    +s.singleColor = (100,100,100,255)
    +SetPlotOptions(s)
    +AddPlot("Pseudocolor","Y_01")
    +DrawPlots()
    +Test("samrai_35")
    +
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "level0,patch7":
    +        silr.TurnOffSet(i)
    +        break
    +SetPlotSILRestriction(silr)
    +Test("samrai_36")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("samrai_test_data/curv_bnd_ghost/dumps.visit"))
    +OpenDatabase(data_path("samrai_test_data/matghosts_fullzonal/dumps.visit"))
    +s = GetPlotOptions()
    +s.colorType = s.ColorBySingleColor
    +s.singleColor = (100,100,100,255)
    +SetPlotOptions(s)
    +AddPlot("FilledBoundary", "materials")
    +DrawPlots()
    +silr = SILRestriction()
    +silr.TurnOffSet(30)
    +SetPlotSILRestriction(silr)
    +Test("samrai_37")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_scale_mesh.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_scale_mesh.html new file mode 100644 index 000000000..968126fa6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_scale_mesh.html @@ -0,0 +1,42 @@ + +Results for databases/scale_mesh.py + +

    Results of VisIt Regression Test - databases/scale_mesh

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    scale_mesh010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_scale_mesh_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_scale_mesh_py.html new file mode 100644 index 000000000..2f8dd734a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_scale_mesh_py.html @@ -0,0 +1,28 @@ +databases/scale_mesh.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  scale_mesh.py
    +#
    +#  Purpose:    Tests whether or not we try to scale a mesh when only one
    +#              of its dimensions are out of whack (we shouldn't).
    +#
    +#  Programmer: Hank Childs
    +#  Date:       April 22, 2004
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# Create a Pseudocolor plot of wave by opening it up at a late time state.
    +OpenDatabase(data_path("vtk_test_data/near_planar.vtk"))
    +
    +AddPlot("Pseudocolor", "hardyglobal")
    +DrawPlots()
    +
    +# Set the view.
    +v0 = GetView3D()
    +v0.viewNormal = (-0.661743, 0.517608, 0.542382)
    +SetView3D(v0)
    +Test("scale_mesh01")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_shapefile.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_shapefile.html new file mode 100644 index 000000000..99b3e8c82 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_shapefile.html @@ -0,0 +1,183 @@ + +Results for databases/shapefile.py + +

    Results of VisIt Regression Test - databases/shapefile

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Test reading a shapefile that contains points
    shapefile_0_000.000.00
    shapefile_0_010.000.00
    shapefile_0_020.000.00
    shapefile_0_030.000.00
    Test reading a shapefile that contains polylines
    shapefile_1_000.000.00
    shapefile_1_010.000.00
    shapefile_1_020.000.00
    Test reading shapefiles that contain polygons
    shapefile_2_000.000.00
    shapefile_2_010.000.00
    shapefile_2_020.000.00
    shapefile_2_030.000.00
    shapefile_2_040.000.00
    shapefile_2_050.000.00
    shapefile_2_060.000.00
    shapefile_2_070.000.00
    Test multiple files for showing different features
    shapefile_3_000.000.00
    shapefile_3_010.000.00
    shapefile_3_020.000.00
    Test a .visit file of shapefiles
    shapefile_4_000.000.00
    shapefile_4_010.000.00
    shapefile_4_020.000.00
    shapefile_4_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_shapefile_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_shapefile_py.html new file mode 100644 index 000000000..da9785640 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_shapefile_py.html @@ -0,0 +1,236 @@ +databases/shapefile.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  shapefile.py
    +#
    +#  Tests:      mesh      - 2D polydata, single domain
    +#              plots     - Pseudocolor, Mesh, Subset
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Mon Mar 28 11:06:05 PDT 2005
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Wed Feb 16 09:15:45 PST 2022
    +#    Replace use of meshatts 'foregroundFlag' with meshColorSource.
    +#
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Test a file that contains points.
    +#
    +def test0():
    +    TestSection("Test reading a shapefile that contains points")
    +
    +    db = data_path("shapefile_test_data/m195mbsp/m195mbsp.shp")
    +    OpenDatabase(db)
    +    AddPlot("Mesh", "point")
    +    m = MeshAttributes()
    +    m.pointType = m.Box
    +    m.pointSize = 2000
    +    SetPlotOptions(m)
    +    DrawPlots()
    +    Test("shapefile_0_00")
    +
    +    DeleteActivePlots()
    +    AddPlot("Pseudocolor", "DEPTH_M")
    +    p = PseudocolorAttributes()
    +    p.pointType = p.Point # hack -- remove this someday
    +    p.pointSizePixels = 5
    +    SetPlotOptions(p)
    +    DrawPlots()
    +    Test("shapefile_0_01")
    +
    +    ChangeActivePlotsVar("LONGITUDE8")
    +    Test("shapefile_0_02")
    +    ChangeActivePlotsVar("LATITUDE83")
    +    Test("shapefile_0_03")
    +    DeleteActivePlots()
    +    CloseDatabase(db)
    +
    +#
    +# Test a file that contains polylines.
    +#
    +def test1():
    +    TestSection("Test reading a shapefile that contains polylines")
    +    db = data_path("shapefile_test_data/morrison/499071-HP.shp")
    +    OpenDatabase(db)
    +    AddPlot("Mesh", "polyline")
    +    DrawPlots()
    +    Test("shapefile_1_00")
    +
    +    DeleteActivePlots()
    +    AddPlot("Pseudocolor", "TPMAJOR_2")
    +    DrawPlots()
    +    Test("shapefile_1_01")
    +
    +    ChangeActivePlotsVar("RWE_INDEX")
    +    Test("shapefile_1_02")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(db)
    +
    +#
    +# Test a file that has polygons.
    +#
    +def test2():
    +    TestSection("Test reading shapefiles that contain polygons")
    +    db = data_path("shapefile_test_data/west/states.shp")
    +    OpenDatabase(db)
    +    AddPlot("Mesh", "polygon")
    +    DrawPlots()
    +    ResetView()
    +    Test("shapefile_2_00")
    +
    +    DeleteActivePlots()
    +    AddPlot("Pseudocolor", "AVG_SALE87")
    +    DrawPlots()
    +    Test("shapefile_2_01")
    +
    +    ChangeActivePlotsVar("MEDIANRENT")
    +    Test("shapefile_2_02")
    +    DeleteActivePlots()
    +    CloseDatabase(db)
    +
    +    # Look at another file.
    +    db = data_path("shapefile_test_data/prism0p020/prism0p020.shp")
    +    OpenDatabase(db)
    +    AddPlot("Mesh", "polygon")
    +    DrawPlots()
    +    Test("shapefile_2_03")
    +
    +    DeleteActivePlots()
    +    AddPlot("Pseudocolor", "RANGE")
    +    DrawPlots()
    +    Test("shapefile_2_04")
    +
    +    # Zoom in on some interesting areas
    +    v = View2DAttributes()
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.windowCoords = (-124.76, -118.94, 43.9999, 49.3856)
    +    SetView2D(v)
    +    Test("shapefile_2_05")
    +
    +    v.windowCoords = (-78.596, -74.3052, 36.34, 40.2596)
    +    SetView2D(v)
    +    Test("shapefile_2_06")
    +
    +    v.windowCoords = (-83.2497, -79.3216, 24.3312, 29.1338)
    +    SetView2D(v)
    +    Test("shapefile_2_07")
    +    ResetView()
    +    DeleteActivePlots()
    +    CloseDatabase(db)
    +
    +#
    +# Test multiple plots showing different features.
    +#
    +def test3():
    +    TestSection("Test multiple files for showing different features")
    +    dbs = (data_path("shapefile_test_data/alameda/tgr06001lkA.shp"),
    +           data_path("shapefile_test_data/alameda/tgr06001cty00.shp"),
    +           data_path("shapefile_test_data/alameda/tgr06001wat.shp"),
    +           data_path("shapefile_test_data/alameda/tgr06001lkH.shp"))
    +    # Put the roads on.
    +    OpenDatabase(dbs[0])
    +    AddPlot("Mesh", "polyline")
    +    g = 180
    +    m = MeshAttributes()
    +    m.meshColorSource = m.MeshCustom
    +    m.meshColor = (g,g,g,255)
    +    m.legendFlag = 0
    +    SetPlotOptions(m)
    +    ResetView()
    +    DrawPlots()
    +
    +    # Put the county outline on.
    +    OpenDatabase(dbs[1])
    +    AddPlot("Mesh", "polygon")
    +    m = MeshAttributes()
    +    m.meshColorSource = m.MeshCustom
    +    m.meshColor = (255,0,0,255)
    +    m.lineWidth = 1
    +    m.legendFlag = 0
    +    SetPlotOptions(m)
    +    DrawPlots()
    +
    +    # Put the bodies of water on.
    +    OpenDatabase(dbs[2])
    +    AddPlot("Mesh", "polygon")
    +    m = MeshAttributes()
    +    m.meshColorSource = m.MeshCustom
    +    m.meshColor = (0,0,255,255)
    +    m.lineWidth = 1
    +    m.legendFlag = 0
    +    SetPlotOptions(m)
    +    DrawPlots()
    +
    +    # Put the streams on.
    +    OpenDatabase(dbs[3])
    +    AddPlot("Mesh", "polyline")
    +    m = MeshAttributes()
    +    m.meshColorSource = m.MeshCustom
    +    m.meshColor = (150,150,255,255)
    +    m.legendFlag = 0
    +    SetPlotOptions(m)
    +    DrawPlots()
    +
    +    Test("shapefile_3_00")
    +
    +    # Zoom in some
    +    v = View2DAttributes()
    +    v.windowCoords = (-121.845, -121.681, 37.608, 37.775)
    +    SetView2D(v)
    +    Test("shapefile_3_01")
    +
    +    # Zoom in even more
    +    v.windowCoords = (-121.763, -121.718, 37.6533, 37.6983)
    +    SetView2D(v)
    +    Test("shapefile_3_02")
    +
    +    # Clean up
    +    DeleteAllPlots()
    +    for db in dbs:
    +        CloseDatabase(db)
    +
    +#
    +# Test a .visit file of shapefiles
    +#
    +def test4():
    +    TestSection("Test a .visit file of shapefiles")
    +    db = data_path("shapefile_test_data/bayarearoads/roads.visit")
    +    OpenDatabase(db)
    +    AddPlot("Subset", "blocks")
    +    DrawPlots()
    +    ResetView()
    +    Test("shapefile_4_00")
    +
    +    # Zoom in a little
    +    v = View2DAttributes()
    +    v.windowCoords = (-122.614, -121.92, 37.3495, 37.9982)
    +    SetView2D(v)
    +    Test("shapefile_4_01")
    +
    +    # Zoom in more
    +    v.windowCoords = (-122.522, -122.362, 37.7017, 37.8424)
    +    SetView2D(v)
    +    Test("shapefile_4_02")
    +
    +    # Zoom in more still
    +    v.windowCoords = (-122.488, -122.445, 37.7816, 37.825)
    +    SetView2D(v)
    +    Test("shapefile_4_03")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(db)
    +
    +#
    +# Run the tests.
    +#
    +test0()
    +test1()
    +test2()
    +test3()
    +test4()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_silo.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_silo.html new file mode 100644 index 000000000..a6576b70c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_silo.html @@ -0,0 +1,705 @@ + +Results for databases/silo.py + +

    Results of VisIt Regression Test - databases/silo

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    silo_010.000.00
    silo_020.000.00
    silo_030.000.00
    silo_040.000.00
    silo_050.000.00
    silo_060.000.00
    silo_070.000.00
    silo_080.000.00
    silo_090.000.00
    silo_100.000.00
    silo_110.000.00
    silo_120.000.00
    silo_130.000.00
    silo_140.000.00
    silo_150.000.00
    silo_160.000.00
    silo_170.000.00
    silo_180.000.00
    silo_200.000.00
    silo_210.000.00
    silo_220.000.00
    silo_230.000.00
    silo_240.000.00
    silo_250.000.00
    silo_260.000.00
    silo_270.000.00
    silo_280.000.00
    silo_290 modifications totalling 0 lines
    silo_300.000.00
    silo_310.000.00
    silo_320.000.00
    silo_330.000.00
    silo_340.000.00
    silo_350.000.00
    silo_360.000.00
    silo_370.000.00
    silo_380.000.00
    silo_390.000.00
    Silo AMR w/Mrgtrees
    silo_400.000.00
    silo_410.000.00
    silo_420.000.00
    silo_430.000.00
    silo_440.000.00
    silo_450.000.00
    Variables defined on material subsets
    silo_460.000.00
    silo_470.000.00
    silo_480.000.00
    silo_490.000.00
    silo_500.000.00
    Various arbitrary polygonal/polyhedral meshes
    silo_510.000.00
    silo_520.000.00
    silo_530.000.00
    silo_540.000.00
    silo_550.000.00
    silo_560.000.00
    silo_570.000.00
    silo_580.000.00
    silo_590.000.00
    silo_600.000.00
    silo_610.000.00
    silo_620.000.00
    silo_630.000.00
    silo_640.000.00
    silo_650.000.00
    silo_660.000.00
    silo_670.000.00
    silo_680.000.00
    silo_690.000.00
    silo_700.000.00
    silo_710.000.00
    silo_720.000.00
    silo_730.000.00
    silo_740.000.00
    silo_750.000.00
    silo_760.000.00
    silo_770.000.00
    silo_780.000.00
    silo_790.000.00
    silo_800.000.00
    silo_810.000.00
    silo_820.000.00
    silo_830.000.00
    silo_840.000.00
    silo_850.000.00
    silo_860.000.00
    silo_870.000.00
    silo_880.000.00
    silo_890.000.00
    silo_900.000.00
    silo_910.000.00
    silo_920.000.00
    silo_930.000.00
    silo_940.000.00
    silo_950.000.00
    Scalar and Vector ASCII Label Plots
    silo_960.000.00
    silo_970.000.00
    Curve with polar coordinates
    silo_980.000.00
    ghost_zone/node_labels
    silo_990.000.00
    silo_1000.000.00
    silo_1010.000.00
    silo_1020.000.00
    Curvilinear (quad) surfaces in 3D
    silo_curvilinear_3d_surface_00.000.00
    silo_curvilinear_3d_surface_10.000.00
    silo_curvilinear_3d_surface_20.000.00
    silo_curvilinear_3d_surface_30.000.00
    silo_curvilinear_3d_surface_40.000.00
    silo_curvilinear_3d_surface_50.000.00
    silo_curvilinear_3d_surface_60.000.00
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_silo_altdriver.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_silo_altdriver.html new file mode 100644 index 000000000..48299e374 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_silo_altdriver.html @@ -0,0 +1,703 @@ + +Results for databases/silo_altdriver.py + +

    Results of VisIt Regression Test - databases/silo_altdriver

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    silo_010.000.00
    silo_020.000.00
    silo_030.000.00
    silo_040.000.00
    silo_050.000.00
    silo_060.000.00
    silo_070.000.00
    silo_080.000.00
    silo_090.000.00
    silo_100.000.00
    silo_110.000.00
    silo_120.000.00
    silo_130.000.00
    silo_140.000.00
    silo_150.000.00
    silo_160.000.00
    silo_170.000.00
    silo_180.000.00
    silo_200.000.00
    silo_210.000.00
    silo_220.000.00
    silo_230.000.00
    silo_240.000.00
    silo_250.000.00
    silo_260.000.00
    silo_270.000.00
    silo_280.000.00
    silo_290 modifications totalling 0 lines
    silo_300.000.00
    silo_310.000.00
    silo_320.000.00
    silo_330.000.00
    silo_340.000.00
    silo_350.000.00
    silo_360.000.00
    silo_370.000.00
    silo_380.000.00
    silo_390.000.00
    Silo AMR w/Mrgtrees
    silo_400.000.00
    silo_410.000.00
    silo_420.000.00
    silo_430.000.00
    silo_440.000.00
    silo_450.000.00
    Variables defined on material subsets
    silo_460.000.00
    silo_470.000.00
    silo_480.000.00
    silo_490.000.00
    silo_500.000.00
    Various arbitrary polygonal/polyhedral meshes
    silo_510.000.00
    silo_520.000.00
    silo_530.000.00
    silo_540.000.00
    silo_550.000.00
    silo_560.000.00
    silo_570.000.00
    silo_580.000.00
    silo_590.000.00
    silo_600.000.00
    silo_610.000.00
    silo_620.000.00
    silo_630.000.00
    silo_640.000.00
    silo_650.000.00
    silo_660.000.00
    silo_670.000.00
    silo_680.000.00
    silo_690.000.00
    silo_700.000.00
    silo_710.000.00
    silo_720.000.00
    silo_730.000.00
    silo_740.000.00
    silo_750.000.00
    silo_760.000.00
    silo_770.000.00
    silo_780.000.00
    silo_790.000.00
    silo_800.000.00
    silo_810.000.00
    silo_820.000.00
    silo_830.000.00
    silo_840.000.00
    silo_850.000.00
    silo_860.000.00
    silo_870.000.00
    silo_880.000.00
    silo_890.000.00
    silo_900.000.00
    silo_910.000.00
    silo_920.000.00
    silo_930.000.00
    silo_940.000.00
    silo_950.000.00
    Scalar and Vector ASCII Label Plots
    silo_960.000.00
    silo_970.000.00
    Curve with polar coordinates
    silo_980.000.00
    ghost_zone/node_labels
    silo_990.000.00
    silo_1000.000.00
    silo_1010.000.00
    silo_1020.000.00
    Curvilinear (quad) surfaces in 3D
    silo_curvilinear_3d_surface_00.000.00
    silo_curvilinear_3d_surface_10.000.00
    silo_curvilinear_3d_surface_20.000.00
    silo_curvilinear_3d_surface_30.000.00
    silo_curvilinear_3d_surface_40.000.00
    silo_curvilinear_3d_surface_50.000.00
    silo_curvilinear_3d_surface_60.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_silo_altdriver_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_silo_altdriver_py.html new file mode 100644 index 000000000..8c5fdba49 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_silo_altdriver_py.html @@ -0,0 +1,21 @@ +databases/silo_altdriver.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  silo_altdriver
    +#
    +#  Tests:      Runs the silo.py test using the 'other' driver. If silo.py
    +#              was run on PDB driver, this will run them on HDF5 driver and
    +#              vice versa.
    +#
    +#  Programmer: Mark C. Miller
    +#  Date:       25Jan10
    +#
    +# ----------------------------------------------------------------------------
    +
    +if TestEnv.params["silo_mode"] == "pdb":
    +    TestEnv.params["silo_mode"] = "hdf5"
    +else:
    +    TestEnv.params["silo_mode"] = "pdb"
    +
    +Source(tests_path("databases","silo.py"))
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_silo_datatypes.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_silo_datatypes.html new file mode 100644 index 000000000..d561bacf1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_silo_datatypes.html @@ -0,0 +1,79 @@ + +Results for databases/silo_datatypes.py + +

    Results of VisIt Regression Test - databases/silo_datatypes

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Silo Data Types
    silo_datatypes_quad_fnvar0.000.00
    silo_datatypes_quad_fzvar0.000.00
    silo_datatypes_ucd_fnvar0.000.00
    silo_datatypes_ucd_fzvar0.000.00
    silo_datatypes_diffs_hdf5_fsoff0 modifications totalling 0 lines
    silo_datatypes_diffs_hdf5_fson0 modifications totalling 0 lines
    silo_datatypes_diffs_pdb_fsoff0 modifications totalling 0 lines
    silo_datatypes_diffs_pdb_fson0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_silo_datatypes_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_silo_datatypes_py.html new file mode 100644 index 000000000..bce4fe2af --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_silo_datatypes_py.html @@ -0,0 +1,152 @@ +databases/silo_datatypes.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  silo_datatypes.py 
    +#
    +#  Tests:      All varieties of datatypes, centering, variable types,
    +#              meshtypes and force-single mode. 
    +#
    +#  Programmer: Mark C. Miller, Thu Jul 15 14:42:12 PDT 2010
    +#
    +#  Modifications:
    +#    Mark C. Miller, Tue Jul 20 19:26:04 PDT 2010
    +#    Adjusted names of temporary output files so they don't stomp on each
    +#    other.
    +#
    +#    Mark C. Miller, Wed Jul 21 08:51:30 PDT 2010
    +#    I side-stepped around a subtle problem with long long data from PDB.
    +#    Turns out on alastor where tests are being run as of July, 2010, sizeof
    +#    long is 8 and that is the same as size of long long. On the HDF5 driver,
    +#    if it reads integer data of N bytes, it will put it into the smallest
    +#    native type that fits. So, when it reads long long data of 8 bytes
    +#    but discovers a native long on the machine where the data is being read
    +#    is 8 bytes, it returns long instead. So, HDF5 driver never returns
    +#    a type of vtkLongLongArray. But, PDB driver does. And, for some reason
    +#    that one single case is getting handled subtly wrong. Its data extents
    +#    wind up getting set to [0,1] (which I assume is some sort of default).
    +#    So, the plot looks bad. So, here, in that case, I manually set the
    +#    extents and get around this problem. I am thinking there is a VTK
    +#    bug in computing the data extents for vtkLongLongArray type. But, thats
    +#    just a guess.
    +#
    +#    Mark C. Miller, Mon Jul 26 17:08:59 PDT 2010
    +#    Override pass/fail status for long long data until we switch to silo-4.8
    +#
    +#    Mark C. Miller, Thu Sep 23 21:23:42 PDT 2010
    +#    Remove override of pass/fail for long long data since now using silo-4.8
    +#
    +#    Eric Brugger, Mon Sep 26 11:35:01 PDT 2022
    +#    Changed use of test_root_path to more appropriate test_baseline_path.
    +#
    +# ----------------------------------------------------------------------------
    +TurnOffAllAnnotations() # defines global object 'a'
    +
    +#
    +# We do this quick open and immediate close because one cannot
    +# set FileOptions for a plugin type without having already opened
    +# at least one file of that type.
    +#
    +dummydb = silo_data_path("one_quad.silo")
    +OpenDatabase(dummydb)
    +CloseDatabase(dummydb)
    +
    +def SetForceSingle(val):
    +    # Turn off force single precision for this test
    +    # Note: We can't successfully do that until we open some database
    +    readOptions=GetDefaultFileOpenOptions("Silo")
    +    if val == "on":
    +        readOptions["Force Single"] = 1
    +    else:
    +        readOptions["Force Single"] = 0
    +    SetDefaultFileOpenOptions("Silo", readOptions)
    +
    +#
    +# Test reading various datatypes from Silo
    +#
    +TestSection("Silo Data Types")
    +DeleteAllPlots()
    +mtypes=("quad","ucd")
    +dtypes=("c","s","i","l","L","f","d")
    +vtypes=("n","z")
    +
    +#
    +# Test 'baseline' for node/zone centered quad/ucd from float data
    +#
    +backup = GetSaveWindowAttributes()
    +for mt in mtypes:
    +    dbname=silo_data_path("specmix_%s.silo" % mt)
    +    OpenDatabase(dbname)
    +    for v in vtypes:
    +        varname="%s%svar"%("f",v) # using only 'f'loat for baseline
    +        AddPlot("Pseudocolor",varname)
    +        DrawPlots()
    +        ResetView()
    +        Test("silo_datatypes_%s_%s"%(mt,varname))
    +        DeleteAllPlots()
    +    CloseDatabase(dbname)
    +
    +# Build PC plot attributes to be used to set min/max
    +# Only necessary for long long case from PDB. Why?
    +pa = PseudocolorAttributes()
    +pa.minFlag = 1
    +pa.maxFlag = 1
    +pa.min = 0
    +pa.max = 20
    +
    +for path in ["silo_datatypes",
    +             pjoin("silo_datatypes","current"),
    +             pjoin("silo_datatypes","diff")]:
    +    if not os.path.isdir(path):
    +        os.mkdir(path)
    +for smode in ("hdf5", "pdb"):
    +    for fsmode in ("off", "on"): # force single modes
    +        SetForceSingle(fsmode)
    +        diffResults=""
    +        for mt in mtypes:
    +            dbname=silo_data_path("specmix_%s.silo" % mt )
    +            OpenDatabase(dbname)
    +            for v in vtypes:
    +                for d in dtypes:
    +                    varname="%s%svar"%(d,v)
    +                    fvarname="%s%svar"%("f",v)
    +                    filename="silo_datatypes_%s_fs%s_%s_%s"%(smode,fsmode,mt,varname)
    +                    AddPlot("Pseudocolor",varname)
    +                    if (smode == "pdb" and d == "L"):
    +                        if (v == "n"):
    +                            pa.max = 20
    +                        else:
    +                            pa.max = 19
    +                        SetPlotOptions(pa)
    +                    DrawPlots()
    +                    ResetView()
    +                    swa=SaveWindowAttributes()
    +                    swa.outputToCurrentDirectory = 0
    +                    swa.outputDirectory = pjoin("silo_datatypes","current")
    +                    swa.screenCapture=1
    +                    swa.family   = 0
    +                    swa.fileName = filename
    +                    swa.format   = swa.PNG
    +                    SetSaveWindowAttributes(swa)
    +                    SaveWindow()
    +                    DeleteAllPlots()
    +                    tPixs = pPixs = dPixs = 0
    +                    davg = 0.0
    +                    if TestEnv.params["use_pil"]:
    +                         file=filename
    +                         cur  = pjoin("silo_datatypes","current","%s.png" % filename)
    +                         diff = pjoin("silo_datatypes","diff","%s.png" % filename)
    +                         base = test_baseline_path("databases",
    +                                                   "silo_datatypes",
    +                                                   "silo_datatypes_%s_%s.png"%(mt,fvarname))
    +                         (tPixs, pPixs, dPixs, davg) = DiffUsingPIL(file, cur, diff, base, "")
    +                         result = "PASSED"
    +                         if (dPixs > 0 and davg > 1):
    +                             result = "FAILED, %f %f"%(dPixs,davg)
    +                         diffResults += "%s_%s:    %s\n"%(mt,varname,result)
    +            CloseDatabase(dbname)
    +        TestText("silo_datatypes_diffs_%s_fs%s"%(smode,fsmode),diffResults)
    +shutil.rmtree("silo_datatypes")
    +SetSaveWindowAttributes(backup)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_silo_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_silo_py.html new file mode 100644 index 000000000..02cffb73a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_silo_py.html @@ -0,0 +1,764 @@ +databases/silo.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  silo.py
    +#
    +#  Tests:      multi-part silo files
    +#              operators - slice
    +#              operators - onion peel
    +#              selection - by domains
    +#
    +#  Programmer: Mark C. Miller
    +#  Date:       March 8, 2004
    +#
    +#  Defects:    4335/4337.
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Tue Mar  9 08:48:14 PST 2004
    +#    Turned off databaseInfo annotation, Used TurnOffDomains instead of
    +#    SIL sets to get correct domain turned off, reordered DrawPlots for
    +#    test 3 so that we get same results in parallel.  For OnionPeel, use
    +#    SetDefaultOperatorOptions so that options are applied.
    +#
    +#    Hank Childs, Thu Jun 24 09:59:12 PDT 2004
    +#    Add tests for quads that are stored as hexes in a ucd mesh. ['4335/'4337]
    +#
    +#    Brad Whitlock, Wed Mar 9 09:15:30 PDT 2005
    +#    Removed deprecated functions.
    +#
    +#    Mark C. Miller, Tue Jun 28 17:28:56 PDT 2005
    +#    Added tests mimicing Ale3d's history variables
    +#
    +#    Mark C. Miller, Wed Dec 13 18:32:20 PST 2006
    +#    Added time invariant mesh tests
    +#
    +#    Mark C. Miller, Wed Feb  7 20:23:22 PST 2007
    +#    Modified code to set SIL Restriction for mesh1_dup to be independent
    +#    of the file structure. Added test for multivar that spans multiple
    +#    multimeshes; it should fail.
    +#
    +#    Jeremy Meredith, Tue Jul 15 10:43:58 EDT 2008
    +#    Changed number of vectors in vector plot to match the old behavior.
    +#    (We now account for how many domains there are.)
    +#
    +#    Mark C. Miller, Thu Jan 22 16:27:54 PST 2009
    +#    Modified tests of defvars using mag and vec to make them less sensitive
    +#    to differences in platform. The mag test was computing a vector magnitude
    +#    whose range was very, very tiny. Switching that to sum fixes that
    +#    problem. The vector plot was simply generating way to many vectors that
    +#    were being drawn on top of each other. I changed it to use a moderately
    +#    large prime as the stride.
    +#
    +#    Mark C. Miller, Mon Sep 28 20:58:24 PDT 2009
    +#    Added tests for AMR data from Silo file using MRG Trees.
    +#
    +#    Tom Fogal, Wed Dec 16 13:11:19 MST 2009
    +#    Fixed a path to a data file.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Mark C. Miller, Fri Jan 22 17:30:29 PST 2010
    +#    I replaced OpenDatabase with FindAnd... variant for largefile.silo
    +#    to deal with data we don't keep in repo.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Mark C. Miller, Tue Feb 28 00:36:09 PST 2012
    +#    Added a slew of tests for hybrid zoo and arbitrary polygonal/polyhedral
    +#    meshes and variables defined upon them.
    +#
    +#    Kathleen Biagas, Thurs May 23 14:09:15 MST 2013
    +#    Don't run certain tests on Windows that cause a crash.
    +#
    +#    Kathleen Biagas, Thurs Jun 6 11:04:13 PDT 2013
    +#    Re-enable tests 42,44, and 45 on Windows, now that crash has been fixed.
    +#
    +#    Edward Rusu, Tues Oct 2 8:20:24 PDT 2018
    +#    Added tests for ghost_zone/node_labels in the silo files.
    +#
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#    individually to match current baseline results.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Remove obsolete 'colorByMag' vector att with 'colorByMagnitude'.
    +#
    +#    Kathleen Biagas, Tue July 11, 2023
    +#    Don't allow tests using wave_1file.visit to run on Windows, as they
    +#    involve symlinks. Symink access on the testing machine is disallowed.
    +#
    +#    Kathleen Biagas, Fri July 28, 2023
    +#    Allow test_26 involving largefile.silo to run on Windows.
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOffAllAnnotations() # defines global object 'a'
    +
    +# Turn off sets by name
    +def TurnOffSetsByName(silr, cat, names):
    +    sets = silr.SetsInCategory(cat)
    +    for s in sets:
    +        setname = silr.SetName(s)
    +        try:
    +            if setname in names:
    +                silr.TurnOffSet(s)
    +        except:
    +            if setname == names:
    +                silr.TurnOffSet(s)
    +
    +OpenDatabase(silo_data_path("multipart_multi_ucd3d.silo"))
    +
    +
    +#
    +# Test simple read and display of a variable
    +#
    +AddPlot("Pseudocolor","d")
    +DrawPlots()
    +
    +v=GetView3D()
    +v.viewNormal=(-0.5, 0.296198, 0.813798)
    +SetView3D(v)
    +Test("silo_01")
    +
    +#
    +# Test an intercept slice (that can use
    +# spatial extents tree if we have it)
    +#
    +sliceAtts=SliceAttributes()
    +sliceAtts.originType=sliceAtts.Intercept
    +sliceAtts.originIntercept=5
    +sliceAtts.axisType=sliceAtts.ZAxis
    +sliceAtts.project2d=0
    +SetDefaultOperatorOptions(sliceAtts)
    +AddOperator("Slice",1)
    +DrawPlots()
    +Test("silo_02")
    +DeleteAllPlots()
    +
    +#
    +# test selection down to just 1 domain
    +#
    +AddPlot("Pseudocolor","u")
    +TurnDomainsOff()
    +TurnDomainsOn(("domain11"))
    +DrawPlots()
    +Test("silo_03")
    +DeleteAllPlots()
    +
    +#
    +# Test an onion peel
    +#
    +AddPlot("Pseudocolor","p")
    +op = OnionPeelAttributes()
    +op.categoryName = "domains"
    +op.subsetName = "domain11"
    +op.index = (5)
    +op.logical = 0
    +op.adjacencyType = op.Face
    +op.requestedLayer = 3
    +SetDefaultOperatorOptions(op)
    +AddOperator("OnionPeel")
    +DrawPlots()
    +Test("silo_04")
    +
    +# we just hide the plots to keep camera
    +HideActivePlots()
    +
    +
    +
    +
    +#
    +# Do some os work to create what VisIt will see as a
    +# 'virtual' database of multi-part silo files by
    +# creating appropriately named links
    +#
    +
    +#TODO BROKEN:
    +# Cyrus: I tried to change this, from prev code
    +# b/c symlinks won't work on Windows.
    +#
    +# also silo paths in multipart_multi_ucd3d, don't point to
    +# gorfo files,they won't work out of the data dir
    +# (and we shouldn't be modifying the data dir !)
    +
    +# KSB: Added copy of original file, and removed silo_data_path from
    +# shutil copy so that this will work.
    +# All the copies are made into the run_dir by default, which gets cleaned
    +# up unless --no-cleanup is used.
    +
    +# remove any gorfos
    +for f in glob.glob("gorfo_*"):
    +    os.remove(f)
    +
    +i = 0
    +
    +
    +for filename in glob.glob(silo_data_path("multipart_multi_ucd3d*.silo")):
    +    # copy the original file because the silo files have relatives paths
    +    shutil.copy(filename, os.path.basename(filename))
    +    if filename.endswith("multipart_multi_ucd3d.silo"):
    +        shutil.copy(filename,"gorfo_1000")
    +        shutil.copy(filename,"gorfo_2000")
    +        shutil.copy(filename,"gorfo_3000")
    +    else:
    +        shutil.copy(filename,"gorfo_1000.%d" %i)
    +        shutil.copy(filename,"gorfo_2000.%d" %i)
    +        shutil.copy(filename,"gorfo_3000.%d" %i)
    +    i = i + 1
    +
    +#
    +# Test opening a 'virtual' database of multi-part silo files
    +# at something other than its first timestep
    +#
    +OpenDatabase("gorfo_* database",1)
    +
    +AddPlot("Pseudocolor","d")
    +AddPlot("Mesh", "mesh1")
    +DrawPlots()
    +Test("silo_05")
    +
    +# go to the next frame
    +TimeSliderNextState()
    +Test("silo_06")
    +
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("ucd3d.silo"))
    +
    +AddPlot("Mesh", "exterior_faces")
    +DrawPlots()
    +Test("silo_07")
    +
    +AddOperator("Slice")
    +DrawPlots()
    +Test("silo_08")
    +
    +#
    +# Test something akin to Ale3d's history variables
    +# Note: time state 0 is purposely corrupted with
    +# all empty domains. So we go from 1 to end and
    +# back around to 1 purposely avoiding 0
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("hist_ucd3d_* database"),1)
    +
    +AddPlot("Pseudocolor","d_dup")
    +DrawPlots()
    +
    +#
    +# Build a sil restriction
    +#
    +silr=SILRestriction()
    +for i in silr.Wholes():
    +   if silr.SetName(i) == "mesh1_dup":
    +       silr.TurnOffSet(i+11)
    +       silr.TurnOffSet(i+12)
    +       silr.TurnOffSet(i+22)
    +       silr.TurnOffSet(i+23)
    +SetPlotSILRestriction(silr)
    +Test("silo_09")
    +
    +for i in range(TimeSliderGetNStates()-2):
    +    TimeSliderNextState()
    +    Test("silo_%02d"%(i+10))
    +TimeSliderSetState(1)
    +Test("silo_18")
    +
    +#
    +# Test defvar object
    +#
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +AddPlot("Pseudocolor","sum")
    +DrawPlots()
    +Test("silo_20")
    +
    +DeleteActivePlots()
    +AddPlot("Vector","vec")
    +vec = VectorAttributes()
    +vec.useStride = 1
    +vec.stride = 41
    +vec.colorByMagnitude = 0
    +SetPlotOptions(vec)
    +DrawPlots()
    +Test("silo_21")
    +
    +DeleteActivePlots()
    +AddPlot("Pseudocolor","nmats")
    +DrawPlots()
    +Test("silo_22")
    +
    +#
    +# Test curves from silo
    +#
    +DeleteAllPlots()
    +a=GetAnnotationAttributes()
    +a.axes2D.visible = 1
    +SetAnnotationAttributes(a)
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Curve","line")
    +curveAtts = CurveAttributes()
    +curveAtts.curveColorSource = curveAtts.Custom
    +curveAtts.curveColor = (255, 0, 0, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +Test("silo_23")
    +
    +DeleteActivePlots()
    +AddPlot("Curve","wave")
    +curveAtts.curveColor = (0, 255, 0, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +Test("silo_24")
    +
    +DeleteActivePlots()
    +AddPlot("Curve","log")
    +curveAtts.curveColor = (0, 0, 255, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +Test("silo_25")
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +#
    +# Test objects existing past 2Gig limit in a >2 Gig file
    +# Large File Support. Because file is large, it is NOT
    +# part of the repo. We create a sym-link to it from the
    +# data dir.
    +#
    +
    +(err, dbname) = FindAndOpenDatabase("largefile.silo")
    +if (err != 1):
    +    AddSkipCase("silo_26")
    +    Test("silo_26")
    +else:
    +    AddPlot("Curve","sincurve")
    +    curveAtts.curveColor = (0, 255, 255, 255)
    +    SetPlotOptions(curveAtts)
    +    AddPlot("Curve","coscurve")
    +    curveAtts.curveColor = (255, 0, 255, 255)
    +    SetPlotOptions(curveAtts)
    +    DrawPlots()
    +    Test("silo_26")
    +    DeleteAllPlots()
    +    CloseDatabase(dbname)
    +
    +#
    +# Test time invariant mesh
    +#
    +OpenDatabase(silo_data_path("multi_ucd3d_ti_* database"),2)
    +
    +AddPlot("Pseudocolor","d")
    +DrawPlots()
    +ResetView()
    +v=GetView3D()
    +v.viewNormal=(-0.5, 0.296198, 0.813798)
    +SetView3D(v)
    +silr=SILRestriction()
    +for i in range(1,36,2):
    +    silr.TurnOffSet(i)
    +SetPlotSILRestriction(silr)
    +Test("silo_27")
    +TimeSliderNextState()
    +Test("silo_28")
    +
    +#
    +# Test that multivars that span multimeshes are correctly
    +# invalidated by VisIt
    +#
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multi_ucd3d_ti_* database"))
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor","d_split")
    +DrawPlots()
    +t = GetLastError()
    +TestText("silo_29", t)
    +
    +#
    +# Test that we get correct SIL behavior for a database
    +# with a varying SIL and TreatAllDBsAsTimeVarying turned
    +# on
    +#
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +OpenDatabase(silo_data_path("histne_ucd3d_* database"), 2)
    +
    +AddPlot("Pseudocolor", "d_dup")
    +DrawPlots()
    +Test("silo_30")
    +TimeSliderNextState()
    +Test("silo_31")
    +
    +SetTreatAllDBsAsTimeVarying(1)
    +TimeSliderNextState()
    +Test("silo_32")
    +TimeSliderNextState()
    +Test("silo_33")
    +TimeSliderPreviousState()
    +TimeSliderPreviousState()
    +TimeSliderPreviousState()
    +Test("silo_34")
    +
    +#
    +# Test a database with some odd multi-block structure
    +#
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("histne_ucd3d_* database"))
    +
    +SetTreatAllDBsAsTimeVarying(0)
    +OpenDatabase(data_path("silo_pdb_test_data/odd_multi.silo"))
    +
    +AddPlot("Pseudocolor","cyc_00000/den")
    +DrawPlots()
    +ResetView()
    +Test("silo_35")
    +
    +#
    +# Test a database in which all timesteps are in one file
    +#
    +DeleteAllPlots()
    +CloseDatabase(data_path("silo_pdb_test_data/odd_multi.silo"))
    +
    +if not sys.platform.startswith("win"):
    +    # files listed in the .visit file (eg wave_1file.silo:cycle_xxx)
    +    # are symlinks to wave_1file.silo and symlink access is disallowed
    +    # on the windows testing machine.
    +    OpenDatabase(silo_data_path("wave_1file.visit"))
    +
    +    AddPlot("Mesh","quadmesh")
    +    AddPlot("Pseudocolor","pressure")
    +    DrawPlots()
    +    ResetView()
    +    Test("silo_36")
    +    TimeSliderSetState(23)
    +    Test("silo_37")
    +    TimeSliderNextState()
    +    TimeSliderNextState()
    +    TimeSliderNextState()
    +    Test("silo_38")
    +    TimeSliderPreviousState()
    +    TimeSliderPreviousState()
    +    TimeSliderPreviousState()
    +    TimeSliderPreviousState()
    +    TimeSliderPreviousState()
    +    TimeSliderPreviousState()
    +    Test("silo_39")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("wave_1file.visit"))
    +
    +TestSection("Silo AMR w/Mrgtrees")
    +TurnOffAllAnnotations()
    +OpenDatabase(data_path("silo_amr_test_data/amr2d_wmrgtree.silo"))
    +
    +AddPlot("Mesh","amr_mesh_wmrgtree")
    +DrawPlots()
    +ResetView()
    +v=GetView2D()
    +v.windowCoords = (0.368424, 0.412063, 0.265434, 0.310012)
    +SetView2D(v)
    +Test("silo_40")
    +AddPlot("Pseudocolor","Density_wmrgtree")
    +DrawPlots()
    +Test("silo_41")
    +
    +silr=SILRestriction()
    +s = silr.SetsInCategory("levels")
    +TurnOffSetsByName(silr, "levels", "level2")
    +SetPlotSILRestriction(silr)
    +Test("silo_42")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("silo_amr_test_data/amr2d_wmrgtree.silo"))
    +
    +OpenDatabase(data_path("silo_amr_test_data/amr3d_wmrgtree.silo"))
    +
    +AddPlot("Contour","foo_wmrgtree")
    +ca=ContourAttributes()
    +ca.contourValue = (60,)
    +ca.contourMethod = ca.Value
    +SetPlotOptions(ca)
    +DrawPlots()
    +ResetView()
    +v=GetView3D()
    +v.imagePan = (0.2066, 0.104372)
    +v.imageZoom = 6.03355
    +SetView3D(v)
    +Test("silo_43")
    +
    +silr=SILRestriction()
    +TurnOffSetsByName(silr, "levels", "level2")
    +SetPlotSILRestriction(silr)
    +Test("silo_44")
    +TurnOffSetsByName(silr, "levels", "level1")
    +SetPlotSILRestriction(silr)
    +Test("silo_45")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("silo_amr_test_data/amr2d_wmrgtree.silo"))
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +TestSection("Variables defined on material subsets")
    +sa = SliceAttributes()
    +sa.originType = sa.Percent
    +sa.originPercent = 50
    +sa.axisType = sa.ZAxis
    +testNum = 46
    +for varname in ("p_on_mats_2","d_on_mats_1_3","m1vf_on_mats_1","m2vf_on_mats_2","m3vf_on_mats_3"):
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", varname)
    +    AddOperator("Slice")
    +    SetOperatorOptions(sa)
    +    DrawPlots()
    +    SetViewExtentsType("actual")
    +    ResetView()
    +    Test("silo_%d"%testNum)
    +    testNum = testNum + 1
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +OpenDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +
    +TestSection("Various arbitrary polygonal/polyhedral meshes")
    +
    +ma = MeshAttributes()
    +ma.showInternal = 1
    +for meshname in ("2D/mesh1_zl1","2D/mesh1_zl2","2D/mesh1_phzl","2D/mesh1_phzl2", "2D/mesh1g_zl2"):
    +    DeleteAllPlots()
    +    AddPlot("Mesh", meshname)
    +    SetPlotOptions(ma)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView2D()
    +    v.windowCoords=(-1, 10, -1, 2)
    +    SetView2D(v)
    +    Test("silo_%d"%testNum)
    +    testNum = testNum + 1
    +
    +for meshname in ("2Dz/mesh1_zl1","2Dz/mesh1_zl2","2Dz/mesh1_phzl","2Dz/mesh1_phzl2", "2Dz/mesh1g_zl2"):
    +    DeleteAllPlots()
    +    AddPlot("Mesh", meshname)
    +    DrawPlots()
    +    ResetView()
    +    Test("silo_%d"%testNum)
    +    testNum = testNum + 1
    +
    +ma = MeshAttributes()
    +ma.showInternal = 1
    +ma.opaqueMode = ma.On
    +for meshname in ("3D/mesh1", "3D/mesh2", "3D/mesh2g", "3D/mesh3", "3D/mesh3r"):
    +    DeleteAllPlots()
    +    AddPlot("Mesh", meshname)
    +    SetPlotOptions(ma)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.RotateAxis(1,-30)
    +    v.RotateAxis(0,20)
    +    SetView3D(v)
    +    Test("silo_%d"%testNum)
    +    testNum = testNum + 1
    +
    +for varname in ("2D/n11", "2D/n12", "2D/n12g", "2D/n1phzl", "2D/n1phzl2",
    +                "2D/z11", "2D/z12", "2D/z12g", "2D/z1phzl", "2D/z1phzl2"):
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", varname)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView2D()
    +    v.windowCoords=(-1, 10, -1, 2)
    +    SetView2D(v)
    +    Test("silo_%d"%testNum)
    +    testNum = testNum + 1
    +
    +for varname in ("2Dz/n11", "2Dz/n12", "2Dz/n12g", "2Dz/n1phzl", "2Dz/n1phzl2",
    +                "2Dz/z11", "2Dz/z12", "2Dz/z12g", "2Dz/z1phzl", "2Dz/z1phzl2"):
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", varname)
    +    DrawPlots()
    +    ResetView()
    +    Test("silo_%d"%testNum)
    +    testNum = testNum + 1
    +
    +for varname in ("3D/n1", "3D/n2", "3D/n2g", "3D/n3", "3D/n3r",
    +                "3D/z1", "3D/z2", "3D/z2g", "3D/z3", "3D/z3r"):
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", varname)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.RotateAxis(1,-30)
    +    v.RotateAxis(0,20)
    +    SetView3D(v)
    +    Test("silo_%d"%testNum)
    +    testNum = testNum + 1
    +
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +
    +TestSection("Scalar and Vector ASCII Label Plots")
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +AddPlot("Label", "ascii")
    +DrawPlots()
    +ResetView()
    +v = GetView2D()
    +v.windowCoords = (0.362263, 0.967737, -0.0277375, 0.577737)
    +SetView2D(v)
    +Test("silo_%d"%testNum)
    +testNum = testNum + 1
    +
    +DeleteAllPlots()
    +AddPlot("Label", "asciiw")
    +DrawPlots()
    +ResetView()
    +v = GetView2D()
    +v.windowCoords = (0.362263, 0.967737, -0.0277375, 0.577737)
    +SetView2D(v)
    +Test("silo_%d"%testNum)
    +testNum = testNum + 1
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("rect2d.silo"))
    +
    +TestSection("Curve with polar coordinates")
    +
    +OpenDatabase(silo_data_path("multi_rect2d.silo"))
    +AddPlot("Curve","circle")
    +curveAtts.curveColor = (255, 255, 0, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +ResetView()
    +Test("silo_%d"%testNum)
    +testNum = testNum + 1
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multi_rect2d.silo"))
    +
    +TestSection("ghost_zone/node_labels")
    +
    +OpenDatabase(data_path("silo_ghost_test_data/specmix_quad.pdb"))
    +ResetView()
    +AddPlot("Subset", "Mesh_gnz")
    +AddPlot("Mesh", "Mesh_gnz")
    +DrawPlots()
    +Test("silo_%d"%testNum)
    +testNum = testNum + 1
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("silo_ghost_test_data/specmix_quad.pdb"))
    +
    +OpenDatabase(data_path("silo_ghost_test_data/specmix_ucd.pdb"))
    +ResetView()
    +AddPlot("Subset", "Mesh_gnz")
    +AddPlot("Mesh", "Mesh_gnz")
    +DrawPlots()
    +Test("silo_%d"%testNum)
    +testNum = testNum + 1
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("silo_ghost_test_data/specmix_ucd.pdb"))
    +
    +#
    +# Test the way silo reads in curve data with expressions
    +#
    +OpenDatabase(silo_data_path("multi_rect2d.silo"))
    +DefineCurveExpression("alias","wave")
    +DefineCurveExpression("waveSquared", "wave*wave")
    +ResetView()
    +
    +AddPlot("Curve","wave")
    +curveAtts.curveColor = (255, 135, 0, 255)
    +SetPlotOptions(curveAtts)
    +AddPlot("Curve","waveSquared")
    +curveAtts.curveColor = (255, 0, 135, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +Test("silo_%d"%testNum)
    +testNum = testNum + 1
    +DeleteAllPlots()
    +
    +AddPlot("Curve","alias")
    +curveAtts.curveColor = (168, 168, 168, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +Test("silo_%d"%testNum)
    +testNum = testNum + 1
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multi_rect2d.silo"))
    +
    +def curvilinear_3d_surface():
    +    """Curvilinear (quad) surfaces in 3D"""
    +
    +    OpenDatabase(silo_data_path("quad_disk.silo"))
    +
    +    AddPlot("Pseudocolor","sphElev_on_mesh_3d")
    +    ResetView()
    +    DrawPlots()
    +    v = GetView3D()
    +    v.RotateAxis(0,-20)
    +    v.RotateAxis(1,-30)
    +    SetView3D(v)
    +    TestAutoName()
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor","sphElev_on_meshD_3d")
    +    DrawPlots()
    +    TestAutoName()
    +    DeleteAllPlots()
    +
    +    AddPlot("FilledBoundary", "mat_3d(mesh_3d)")
    +    DrawPlots()
    +    TestAutoName()
    +    DeleteAllPlots()
    +
    +    CloseDatabase(silo_data_path("quad_disk.silo"))
    +    OpenDatabase(silo_data_path("specmix_quad.silo"))
    +
    +    # Index select doesn't work quite right here
    +    AddPlot("Mesh","Mesh_3d")
    +    AddOperator("IndexSelect")
    +    idxsel = IndexSelectAttributes()
    +    idxsel.xMin = 5
    +    idxsel.xMax = 15
    +    SetOperatorOptions(idxsel)
    +    ResetView()
    +    DrawPlots()
    +    TestAutoName()
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor","p3d")
    +    DrawPlots()
    +    TestAutoName()
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor","u3d")
    +    DrawPlots()
    +    TestAutoName()
    +    DeleteAllPlots()
    +
    +    AddPlot("FilledBoundary", "Material_3d(Mesh_3d)")
    +    DrawPlots()
    +    TestAutoName()
    +    DeleteAllPlots()
    +
    +    CloseDatabase(silo_data_path("specmix_quad.silo"))
    +
    +curvilinear_3d_surface()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_singlemulti.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_singlemulti.html new file mode 100644 index 000000000..7137dc42e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_singlemulti.html @@ -0,0 +1,76 @@ + +Results for databases/singlemulti.py + +

    Results of VisIt Regression Test - databases/singlemulti

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    singlemulti000.000.00
    singlemulti010 modifications totalling 0 lines
    singlemulti020.000.00
    singlemulti030 modifications totalling 0 lines
    singlemulti040.000.00
    singlemulti050 modifications totalling 0 lines
    singlemulti060.000.00
    singlemulti070 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_singlemulti_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_singlemulti_py.html new file mode 100644 index 000000000..49207472e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_singlemulti_py.html @@ -0,0 +1,116 @@ +databases/singlemulti.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  singlemulti.py
    +#
    +#  Tests:      mesh      - 3D, curvilinear, single domain
    +#              plots     - Pseudocolor
    +#              databases - Silo
    +#
    +#  Purpose:    This test case tests the ability of VisIt to have single
    +#              time state files in the same window as multi time state
    +#              windows and do the right thing when changing time states.
    +#
    +#  Bugs:       '4011
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Mar 18 13:45:29 PST 2004
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to switch between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Look at the first few lines of the string representation of the
    +# WindowInformation to see the list of time sliders, etc.
    +#
    +def TestWindowInformation(testname):
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 5 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    for i in range(5):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    TestText(testname, s)
    +
    +# Create a Pseudocolor plot of wave by opening it up at a late time state.
    +OpenDatabase(silo_data_path("wave*.silo database"), 20)
    +
    +AddPlot("Pseudocolor", "pressure")
    +DrawPlots()
    +
    +# Set the view.
    +v0 = View3DAttributes()
    +v0.viewNormal = (-0.661743, 0.517608, 0.542382)
    +v0.focus = (5, 0.757692, 2.5)
    +v0.viewUp = (0.370798, 0.854716, -0.363277)
    +v0.viewAngle = 30
    +v0.parallelScale = 5.63924
    +v0.nearPlane = -11.2785
    +v0.farPlane = 11.2785
    +v0.imagePan = (0.00100868, 0.0454815)
    +v0.imageZoom = 1.17935
    +v0.perspective = 1
    +SetView3D(v0)
    +Test("singlemulti00")
    +
    +# Convert the WindowInformation to a string and use that as a test case.
    +# The WindowInformation contains the list of time sliders, the active time
    +# state, and the states for each time slider.
    +TestWindowInformation("singlemulti01")
    +
    +# Create a Pseudocolor plot of curv3d, a single time state database.
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Transform")
    +t = TransformAttributes()
    +t.doScale = 1
    +t.scaleX = 0.5
    +t.scaleY = 0.5
    +t.scaleZ = 0.1667
    +t.doTranslate = 1
    +t.translateX = 5
    +t.translateY = 0
    +t.translateZ = -5
    +SetOperatorOptions(t)
    +DrawPlots()
    +
    +# Set the view again
    +v1 = View3DAttributes()
    +v1.viewNormal = (-0.661743, 0.517608, 0.542382)
    +v1.focus = (5, 1.25, 0)
    +v1.viewUp = (0.370798, 0.854716, -0.363277)
    +v1.viewAngle = 30
    +v1.parallelScale = 7.1807
    +v1.nearPlane = -14.3614
    +v1.farPlane = 14.3614
    +v1.imagePan = (0.00100868, 0.0454815)
    +v1.imageZoom = 1.17935
    +v1.perspective = 1
    +SetView3D(v1)
    +Test("singlemulti02")
    +
    +# Make sure there is still just one time slider.
    +TestWindowInformation("singlemulti03")
    +
    +# Go to the middle time slider state.
    +# Note: this div in python 2 returns int, but returns float in py3
    +SetTimeSliderState(int(TimeSliderGetNStates() / 2))
    +Test("singlemulti04")
    +# Check the time states
    +TestWindowInformation("singlemulti05")
    +
    +# Go to the last time slider state.
    +SetTimeSliderState(TimeSliderGetNStates() - 1)
    +Test("singlemulti06")
    +# Check the time states
    +TestWindowInformation("singlemulti07")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_sw4.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_sw4.html new file mode 100644 index 000000000..80e289932 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_sw4.html @@ -0,0 +1,48 @@ + +Results for databases/sw4.py + +

    Results of VisIt Regression Test - databases/sw4

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    sw4_000.000.00
    sw4_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_sw4_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_sw4_py.html new file mode 100644 index 000000000..5644d0567 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_sw4_py.html @@ -0,0 +1,50 @@ +databases/sw4.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  SW4.py
    +#
    +#  Tests:      mesh      - 3D curvilinear, multi domain
    +#                        - 3D rectilinear, single domain
    +#              plots     - Pseudocolor
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       Tue Jul 21 11:15:20 PDT 2020
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create a plot from a 3Dimg file.
    +OpenDatabase(data_path("sw4_test_data/berk.cycle=0000.p.3Dimg"))
    +AddPlot("Pseudocolor", "cp")
    +DrawPlots()
    +
    +# Set the view
    +v = View3DAttributes()
    +v.viewNormal = (-0.555957, 0.661021, -0.503948)
    +v.focus = (6000, 6000, 2220.93)
    +v.viewUp = (0.540018, -0.173664, -0.823542)
    +v.viewAngle = 30
    +v.parallelScale = 8928.79
    +v.nearPlane = -17857.6
    +v.farPlane = 17857.6
    +v.imagePan = (0., 0.)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +SetView3D(v)
    +
    +Test("sw4_00")
    +
    +# Create a plot from a sw4img file.
    +DeleteAllPlots()
    +CloseDatabase(data_path("sw4_test_data/berk.cycle=0000.p.3Dimg"))
    +
    +OpenDatabase(data_path("sw4_test_data/berk.cycle=0000.z=0.topo.sw4img"))
    +AddPlot("Pseudocolor", "topo")
    +DrawPlots()
    +
    +Test("sw4_01")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_tecplot.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_tecplot.html new file mode 100644 index 000000000..e6218a52c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_tecplot.html @@ -0,0 +1,192 @@ + +Results for databases/tecplot.py + +

    Results of VisIt Regression Test - databases/tecplot

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    tecplot_010.000.00
    tecplot_020.000.00
    tecplot_030.000.00
    tecplot_040.000.00
    tecplot_050.000.00
    tecplot_060.000.00
    tecplot_080.000.00
    tecplot_090.000.00
    tecplot_100.000.00
    tecplot_110.000.00
    tecplot_120.000.00
    tecplot_130.000.00
    tecplot_140.000.00
    tecplot_150.000.00
    tecplot_160.000.00
    tecplot_170.000.00
    tecplot_180.000.00
    tecplot_190.000.00
    tecplot_200.000.00
    tecplot_210.000.00
    tecplot_220.000.00
    tecplot_230.000.00
    tecplot_240.000.00
    tecplot_250.000.00
    tecplot_260.000.00
    tecplot_270.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_tecplot_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_tecplot_py.html new file mode 100644 index 000000000..dd2e169c5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_tecplot_py.html @@ -0,0 +1,323 @@ +databases/tecplot.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  tecplot.py
    +#
    +#  Tests:      TecPlot files
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       November 17, 2004
    +#
    +#  Modifications:
    +#    Hank Childs, Wed Feb 16 07:34:07 PST 2005
    +#    Rename variables that have unsupported characters.
    +#
    +#    Brad Whitlock, Thu Mar 31 17:12:06 PST 2005
    +#    Changed the data directory to ../data/tecplot_test_data/tecplot_test_data,
    +#    which is now created from a bzipped tar file.
    +#
    +#    Brad Whitlock, Tue Jul 26 16:27:57 PST 2005
    +#    I added a test that has 2D data with a vector expression.
    +#
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +#    Jeremy Meredith, Mon Jul  7 14:20:12 EDT 2008
    +#    The tecplot reader now successfully parses x/y/z coordinate variables
    +#    from the simpscat.tec file, so I changed the plot to be a pseudocolor
    +#    plot instead of a curve plot.
    +#
    +#    Hank Childs, Sat Mar 13 11:13:26 PST 2010
    +#    Change variable names for forbidden characters.
    +#
    +#    Jeremy Meredith, Fri May 20 09:37:14 EDT 2011
    +#    Change subset mesh variable name since files have more than one mesh now.
    +#
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#    individually to match current baseline results.
    +#
    +#    Kathleen Biagas, Mon Jul 17 10:59:26 PDT 2023
    +#    Change two_triangles_node_and_cell extension from 'plt' to 'tec'.
    +#    Second triangle's point ids were invalid, so data was regenerted by
    +#    exporting to VTK, fixing the ordering, and re-exporting back to tecplot.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def SetTheView():
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal =  (-0.553771, 0.509362, 0.658702)
    +    SetView3D(v)
    +
    +# Databases
    +OpenDatabase(data_path("tecplot_test_data/2dfed.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","P")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_01")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/3dgeom.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Subset","Zones(mesh)")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_02")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/T3L3CLS17u.plt"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","U")
    +DrawPlots()
    +ResetView()
    +v=GetView2D()
    +v.windowCoords=(-.01,.03,-.02,.02)
    +SetView2D(v)
    +Test("tecplot_03")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/channel.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","U")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_04")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/crystal_plot.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","t")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_05")
    +DeleteAllPlots();
    +CloseDatabase(data_path("tecplot_test_data/crystal_plot.tec"))
    +
    +
    +OpenDatabase(data_path("tecplot_test_data/cube.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","R")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_06")
    +DeleteAllPlots();
    +
    +# We must skip this one, as it has column-major
    +# ordering instead of row-major, and we are
    +# expecting row-major.  There is nothing in the
    +# tecplot file format to specify which type it is,
    +# so this must wait until we have options for
    +# the database plugins.  See '2440.
    +##OpenDatabase(data_path("tecplot_test_data/cylindrical.tec"))
    +
    +#AddPlot("Mesh","mesh")
    +#DrawPlots()
    +#SetTheView()
    +#Test("tecplot_07")
    +#DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/febrfeb.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","Temperature")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_08")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/febrfep.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","Temperature")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_09")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/fetebk.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","C")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_10")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/fetetpt.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","C")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_11")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/flow5.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","V")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_12")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/human.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","R")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_13")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/movie.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Subset","Zones(mesh)")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_14")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/multzn2d.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","Temp")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_15")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/order1.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","psi")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_16")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/sample.tp"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Volume","X Velocity")
    +v=VolumeAttributes()
    +SetPlotOptions(v)
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_17")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/simp3dbk.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","Density")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_18")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/simp3dpt.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","Density")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_19")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/simpscat.tec"))
    +
    +AddPlot("Pseudocolor","T_lb_K_rb_")
    +p = PseudocolorAttributes()
    +p.pointSizePixels = 6
    +SetPlotOptions(p)
    +AddOperator("Threshold")
    +t = ThresholdAttributes()
    +t.outputMeshType = 1
    +SetOperatorOptions(t)
    +DrawPlots()
    +ResetView()
    +Test("tecplot_20")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/simpxy.tec"))
    +
    +AddPlot("Curve","Temperature vs/Distance")
    +curveAtts = CurveAttributes()
    +curveAtts.curveColorSource = curveAtts.Custom
    +curveAtts.curveColor = (255, 0, 0, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_21")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/simpxy2.tec"))
    +
    +AddPlot("Curve","Only Zone/Temperature vs/Distance")
    +curveAtts.curveColor = (0, 255, 0, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_22")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/symmetricFlow.plt"))
    +
    +AddPlot("Pseudocolor","VELOCITY")
    +DrawPlots()
    +ResetView()
    +Test("tecplot_23")
    +DeleteAllPlots();
    +AddPlot("Vector", "VEL")
    +v = VectorAttributes()
    +v.useStride = 1
    +SetPlotOptions(v)
    +DrawPlots()
    +v = View2DAttributes()
    +v.windowCoords = (53.9908, 74.1434, 66.5995, 88.2732)
    +v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +v.fullFrameAutoThreshold = 100
    +SetView2D(v)
    +Test("tecplot_24")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/pointmesh.tec"))
    +
    +AddPlot("Mesh","mesh")
    +ResetView()
    +DrawPlots()
    +Test("tecplot_25")
    +DeleteAllPlots()
    +
    +DeleteAllPlots();
    +CloseDatabase(data_path("tecplot_test_data/pointmesh.tec"))
    +
    +# ascii file containing both node and cell data in block format
    +OpenDatabase(data_path("tecplot_test_data/two_triangles_node_and_cell.tec"))
    +
    +AddPlot("Pseudocolor","nodal_field")
    +ResetView()
    +DrawPlots()
    +Test("tecplot_26")
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor","cell_field")
    +ResetView()
    +DrawPlots()
    +Test("tecplot_27")
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_timesliders.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_timesliders.html new file mode 100644 index 000000000..f998bdf2f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_timesliders.html @@ -0,0 +1,256 @@ + +Results for databases/timesliders.py + +

    Results of VisIt Regression Test - databases/timesliders

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Set time using different time sliders
    timesliders000.000.00
    timesliders010 modifications totalling 0 lines
    timesliders020.000.00
    timesliders030 modifications totalling 0 lines
    timesliders040.000.00
    timesliders050 modifications totalling 0 lines
    timesliders060 modifications totalling 0 lines
    timesliders070.000.00
    timesliders080 modifications totalling 0 lines
    Time slider behavior with a correlation
    timesliders090.000.00
    timesliders100 modifications totalling 0 lines
    timesliders110.000.00
    timesliders120 modifications totalling 0 lines
    timesliders130.000.00
    timesliders140 modifications totalling 0 lines
    timesliders150.000.00
    timesliders160 modifications totalling 0 lines
    timesliders170.000.00
    timesliders180 modifications totalling 0 lines
    Make sure cloned window gets time sliders
    timesliders190.000.00
    timesliders200 modifications totalling 0 lines
    timesliders210.000.00
    timesliders220 modifications totalling 0 lines
    Make sure opening ST database clears time slider list
    timesliders230 modifications totalling 0 lines
    timesliders240.000.00
    timesliders250 modifications totalling 0 lines
    Make sure replace sequences give right time sliders
    timesliders260.000.00
    timesliders270 modifications totalling 0 lines
    timesliders280.000.00
    timesliders290 modifications totalling 0 lines
    timesliders300.000.00
    timesliders310 modifications totalling 0 lines
    timesliders320.000.00
    timesliders330 modifications totalling 0 lines
    timesliders340.000.00
    timesliders350 modifications totalling 0 lines
    Make sure we get the right time sliders after deleting plots.
    timesliders360.000.00
    timesliders370 modifications totalling 0 lines
    timesliders380.000.00
    timesliders390 modifications totalling 0 lines
    timesliders400 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_timesliders_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_timesliders_py.html new file mode 100644 index 000000000..f23172aa1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_timesliders_py.html @@ -0,0 +1,247 @@ +databases/timesliders.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  timesliders.py
    +#
    +#  Tests:      mesh      - 2D, curvilinear, single domain
    +#              plots     - FilledBoundary
    +#              databases - PDB
    +#
    +#  Purpose:    This test case tests out using multiple time sliders.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Mar 19 11:45:12 PDT 2004
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Mar 31 10:34:27 PDT 2004
    +#    I changed the calls to SetActiveTimeSlider so they can accept the
    +#    unexpanded database names instead of requiring fully qualified
    +#    database names.
    +#
    +#    Brad Whitlock, Mon Apr 19 09:20:29 PDT 2004
    +#    I added a few more tests to make sure we get the desired list of time
    +#    sliders under more conditions.
    +#
    +#    Brad Whitlock, Wed Feb 9 11:10:29 PDT 2005
    +#    I added another test section to make sure that we get the right time
    +#    sliders (or lack of) after deleting plots.
    +# 
    +#    Brad Whitlock, Thu Dec 21 11:57:52 PDT 2006
    +#    Added code to make sure that the dictionary keys in one of the tests
    +#    are always sorted.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to switch between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Look at the first few lines of the string representation of the
    +# WindowInformation to see the list of time sliders, etc.
    +#
    +def TestWindowInformation(testname):
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 5 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    for i in range(5):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    TestText(testname, s)
    +
    +def SetTheView():
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.735926, 0.562657, 0.376604)
    +    v0.focus = (5, 0.753448, 2.5)
    +    v0.viewUp = (0.454745, 0.822858, -0.340752)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 5.6398
    +    v0.nearPlane = -11.2796
    +    v0.farPlane = 11.2796
    +    v0.imagePan = (0.0589778, 0.0898255)
    +    v0.imageZoom = 1.32552
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    SetView3D(v0)
    +
    +# Print the dictionary so its keys are always sorted a particular way.
    +def PrintDict(dict):
    +    keys = list(dict.keys())
    +    keys.sort()
    +    s = "{"
    +    i = 0
    +    for k in keys:
    +        if type(k) == type(str("")):
    +            kstr = "'" + str(k) + "'"
    +        else:
    +            kstr = str(k)
    +        s = s + kstr + ": " + str(dict[k])
    +        if i < len(keys)-1:
    +            s = s + ", "
    +        i = i + 1
    +    s = s + "}"
    +    return s
    +
    +# The plotted databases.
    +dbs = (data_path("pdb_test_data/dbA00.pdb"),
    +       data_path("pdb_test_data/dbB00.pdb"),
    +       data_path("pdb_test_data/dbC00.pdb"))
    +
    +# Create a plot from one database
    +TestSection("Set time using different time sliders")
    +OpenDatabase(dbs[0])
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +Test("timesliders00")
    +TestWindowInformation("timesliders01")
    +
    +# Create a plot from another database
    +OpenDatabase(dbs[1])
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +Test("timesliders02")
    +TestWindowInformation("timesliders03")
    +
    +# Change the time state for the second time slider.
    +# note: py3 div creates float
    +SetTimeSliderState(int(TimeSliderGetNStates() / 2))
    +Test("timesliders04")
    +TestWindowInformation("timesliders05")
    +
    +# Make sure that GetTimeSliders returned the right dictionary.
    +testString = "GetTimeSliders returned:\n %s" % PrintDict(GetTimeSliders())
    +TestText("timesliders06", testString)
    +
    +# Set the time slider back to the first time slider.
    +SetActiveTimeSlider(dbs[0])
    +
    +# Set the time state for the first time slider.
    +SetTimeSliderState(7)
    +Test("timesliders07")
    +TestWindowInformation("timesliders08")
    +
    +# Create a database correlation for the first two databases. This correlation
    +# will be an IndexForIndex correlation since we passed 0 for the correlation
    +# method.
    +TestSection("Time slider behavior with a correlation")
    +correlation1 = "A_and_B"
    +CreateDatabaseCorrelation(correlation1, dbs[:-1], 0)
    +SetActiveTimeSlider(correlation1)
    +Test("timesliders09")
    +TestWindowInformation("timesliders10")
    +
    +# Set the time state for the active time slider since it is now the A_and_B
    +# database correlation.
    +SetTimeSliderState(0)
    +Test("timesliders11")
    +TestWindowInformation("timesliders12")
    +
    +SetTimeSliderState(5)
    +Test("timesliders13")
    +TestWindowInformation("timesliders14")
    +
    +SetTimeSliderState(19)
    +Test("timesliders15")
    +TestWindowInformation("timesliders16")
    +
    +# Set the time slider to B. Only B should change.
    +SetActiveTimeSlider(dbs[1])
    +SetTimeSliderState(5)
    +Test("timesliders17")
    +TestWindowInformation("timesliders18")
    +
    +# Add a new window and make sure that the time sliders are copied to it.
    +TestSection("Make sure cloned window gets time sliders")
    +CloneWindow()
    +SetActiveWindow(2)
    +DrawPlots()
    +Test("timesliders19")
    +TestWindowInformation("timesliders20")
    +
    +SetTimeSliderState(19)
    +Test("timesliders21")
    +TestWindowInformation("timesliders22")
    +DeleteWindow()
    +
    +# Make sure switching between different databases give the right time sliders.
    +TestSection("Make sure opening ST database clears time slider list")
    +DeleteAllPlots()
    +OpenDatabase(dbs[0])
    +SetTimeSliderState(0)
    +TestWindowInformation("timesliders23")
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +ResetView()
    +Test("timesliders24")
    +TestWindowInformation("timesliders25")
    +
    +# Make sure doing various replace sequences give the right time sliders.
    +TestSection("Make sure replace sequences give right time sliders")
    +DeleteAllPlots()
    +OpenDatabase(dbs[0])
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +Test("timesliders26")
    +TestWindowInformation("timesliders27")
    +ReplaceDatabase(dbs[1])
    +Test("timesliders28")
    +TestWindowInformation("timesliders29")
    +ReplaceDatabase(dbs[0])
    +Test("timesliders30")
    +# There should only be 1 time slider at this point.
    +TestWindowInformation("timesliders31")
    +
    +# Make sure that when we replace an MT database with an ST database, we get
    +# the right time sliders.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("wave*.silo database"), 30)
    +
    +AddPlot("Pseudocolor", "pressure")
    +DrawPlots()
    +SetTheView()
    +Test("timesliders32")
    +TestWindowInformation("timesliders33")
    +# Replace with an ST database
    +ReplaceDatabase(silo_data_path("wave0000.silo"))
    +Test("timesliders34")
    +TestWindowInformation("timesliders35")
    +
    +# Make sure that we get the right time sliders after we delete plots.
    +TestSection("Make sure we get the right time sliders after deleting plots.")
    +DeleteAllPlots()
    +# Close all the sources so we get fresh time sliders.
    +for source in GetGlobalAttributes().sources:
    +    CloseDatabase(source)
    +
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +AddPlot("Pseudocolor", "pressure")
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +AddPlot("Pseudocolor", "p")
    +DrawPlots()
    +
    +ResetView()
    +v = GetView3D()
    +v.viewNormal = (0.163324, 0.442866, 0.881586)
    +v.viewUp = (-0.0889191, 0.896556, -0.433913)
    +v.parallelScale = 16.9558
    +v.imagePan = (0.0834786, 0.0495278)
    +v.imageZoom = 1.53171
    +SetView3D(v)
    +
    +Test("timesliders36")
    +TestWindowInformation("timesliders37")
    +SetActivePlots(0)
    +DeleteActivePlots()
    +Test("timesliders38")
    +TestWindowInformation("timesliders39")
    +DeleteActivePlots()
    +TestWindowInformation("timesliders40")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_uintah.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_uintah.html new file mode 100644 index 000000000..f11122919 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_uintah.html @@ -0,0 +1,79 @@ + +Results for databases/uintah.py + +

    Results of VisIt Regression Test - databases/uintah

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Particle data
    Particle_000.000.00
    Particle_010.000.00
    Particle_020.000.00
    Particle_030.000.00
    Particle_040.000.00
    Particle_050.000.00
    Particle ID
     281474976710656.0 .eq. 281474976710656.0 (prec=0) : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_uintah_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_uintah_py.html new file mode 100644 index 000000000..b58db2a91 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_uintah_py.html @@ -0,0 +1,66 @@ +databases/uintah.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  uintah.py
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       Tue Jan  4 13:05:47 PST 2022
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("Uintah")
    +
    +def test_particle():
    +    TestSection("Particle data")
    +    OpenDatabase(pjoin(data_path("uintah_test_data"), "index.xml"))
    +    AddPlot("Pseudocolor", "p.particleID/*")
    +    pc = PseudocolorAttributes()
    +    pc.pointType = pc.Point
    +    pc.pointSizePixels = 40
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (0, -1, 0)
    +    v.focus = (0.01, 0.01, 0.015)
    +    v.viewUp = (0, 0, 1)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.0206155
    +    v.nearPlane = -0.0412311
    +    v.farPlane = 0.0412311
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 0
    +    SetView3D(v)
    +    Test("Particle_00")
    +
    +    ChangeActivePlotsVar("p.particleID/0")
    +    Test("Particle_01")
    +
    +    ChangeActivePlotsVar("p.particleID/1")
    +    Test("Particle_02")
    +
    +    ChangeActivePlotsVar("p.mass/*")
    +    Test("Particle_03")
    +
    +    ChangeActivePlotsVar("p.mass/0")
    +    Test("Particle_04")
    +
    +    ChangeActivePlotsVar("p.mass/1")
    +    Test("Particle_05")
    +
    +    PickAtts = GetPickAttributes()
    +    PickAtts.variables = ("p.particleID/*")
    +    SetPickAttributes(PickAtts)
    +    SetQueryOutputToObject()
    +    p = NodePick(0, 0)
    +    id = p['p.particleID/*']
    +    TestValueEQ("Particle ID", id, 281474976710656., 0)
    +
    +def main():
    +    test_particle()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_unv.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_unv.html new file mode 100644 index 000000000..af243413a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_unv.html @@ -0,0 +1,78 @@ + +Results for databases/unv.py + +

    Results of VisIt Regression Test - databases/unv

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    unv_010.000.00
    unv_020.000.00
    unv_030.000.00
    unv_040.000.00
    unv_050.000.00
    unv_060.000.00
    unv_070.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_unv_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_unv_py.html new file mode 100644 index 000000000..15cd80b3d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_unv_py.html @@ -0,0 +1,206 @@ +databases/unv.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Tests:      smoke check of unv file reader.
    +#
    +#  Programmer: Olivier Cessenat
    +#  Date: Thu Oct 11 08:42:44 PDT 2012
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Fri Sep 23 15:08:38 PDT 2022
    +#    Remove use of obsolete FilledBoundaryAttributes fields: boundaryType
    +#    and filledFlag.
    +#
    +# ----------------------------------------------------------------------------
    +
    +datapath = data_path("unv_test_data")
    +
    +OpenDatabase(pjoin(datapath, "small_sur.unv"))
    +AddPlot("FilledBoundary", "boundaries(freemesh)")
    +# Begin spontaneous state
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.446545, 0.0881432, 0.890409)
    +View3DAtts.focus = (0, 0, 2.5)
    +View3DAtts.viewUp = (-0.122457, 0.991793, -0.0367666)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 3.4641
    +View3DAtts.nearPlane = -6.9282
    +View3DAtts.farPlane = 6.9282
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (0, 0, 2.5)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +SetView3D(View3DAtts)
    +DrawPlots()
    +Test("unv_01")
    +DeleteAllPlots()
    +CloseDatabase(pjoin(datapath,"small_sur.unv"))
    +
    +OpenDatabase(pjoin(datapath,"small_mix.unv"))
    +AddPlot("FilledBoundary", "surfmats(surfmesh)")
    +AddPlot("Mesh", "surfmesh", 1, 0)
    +DrawPlots()
    +Test("unv_02")
    +DeleteAllPlots()
    +CloseDatabase(pjoin(datapath,"small_mix.unv"))
    +
    +OpenDatabase(pjoin(datapath,"small_vol_pri_bor.unv"),0)
    +AddPlot("FilledBoundary", "boundaries(freemesh)")
    +AddPlot("Mesh", "freemesh")
    +DrawPlots()
    +Test("unv_03")
    +DeleteAllPlots()
    +CloseDatabase(pjoin(datapath,"small_vol_pri_bor.unv"))
    +
    +OpenDatabase(pjoin(datapath,"small_vol_tet_bor.unv"),0)
    +AddPlot("FilledBoundary", "boundaries(freemesh)")
    +AddPlot("Mesh", "facemesh")
    +DrawPlots()
    +Test("unv_04")
    +DeleteAllPlots()
    +CloseDatabase(pjoin(datapath,"small_vol_tet_bor.unv"))
    +
    +OpenDatabase(pjoin(datapath,"small_vol_pyr_bor.unv"), 0)
    +AddPlot("FilledBoundary", "load_sets(facemesh)")
    +AddPlot("Mesh", "facemesh")
    +AddPlot("Mesh", "mesh")
    +SetActivePlots(2)
    +AddOperator("ThreeSlice", 0)
    +SetActivePlots(2)
    +ThreeSliceAtts = ThreeSliceAttributes()
    +ThreeSliceAtts.x = 0.1
    +ThreeSliceAtts.y = 0.2
    +ThreeSliceAtts.z = 0.24
    +ThreeSliceAtts.interactive = 1
    +SetOperatorOptions(ThreeSliceAtts, 0)
    +SetActivePlots(0)
    +FilledBoundaryAtts = FilledBoundaryAttributes()
    +FilledBoundaryAtts.colorType = FilledBoundaryAtts.ColorByMultipleColors
    +FilledBoundaryAtts.colorTableName = "Default"
    +FilledBoundaryAtts.invertColorTable = 0
    +FilledBoundaryAtts.legendFlag = 1
    +FilledBoundaryAtts.lineWidth = 0
    +FilledBoundaryAtts.singleColor = (0, 0, 0, 255)
    +FilledBoundaryAtts.SetMultiColor(0, (255, 0, 0, 255))
    +FilledBoundaryAtts.SetMultiColor(1, (0, 255, 0, 255))
    +FilledBoundaryAtts.opacity = 0.258824
    +FilledBoundaryAtts.wireframe = 0
    +FilledBoundaryAtts.drawInternal = 0
    +FilledBoundaryAtts.smoothingLevel = 0
    +FilledBoundaryAtts.cleanZonesOnly = 0
    +FilledBoundaryAtts.mixedColor = (255, 255, 255, 255)
    +FilledBoundaryAtts.pointSize = 0.05
    +FilledBoundaryAtts.pointType = FilledBoundaryAtts.Point
    +FilledBoundaryAtts.pointSizeVarEnabled = 0
    +FilledBoundaryAtts.pointSizeVar = "default"
    +FilledBoundaryAtts.pointSizePixels = 2
    +SetPlotOptions(FilledBoundaryAtts)
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.440531, 0.546377, 0.712323)
    +View3DAtts.focus = (0, 0, 2.5)
    +View3DAtts.viewUp = (-0.429096, 0.825111, -0.367517)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 3.4641
    +View3DAtts.nearPlane = -6.9282
    +View3DAtts.farPlane = 6.9282
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (0, 0, 2.5)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +SetView3D(View3DAtts)
    +DrawPlots()
    +Test("unv_05")
    +
    +DeleteAllPlots()
    +CloseDatabase(pjoin(datapath,"small_vol_pyr_bor.unv"))
    +OpenDatabase(pjoin(datapath, "small_sur.unv"))
    +
    +AddPlot("Vector", "normals2d", 1, 1)
    +DrawPlots()
    +# Begin spontaneous state
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.554906, -0.684409, 0.472931)
    +View3DAtts.focus = (0, 0, 2.5)
    +View3DAtts.viewUp = (-0.448111, 0.233062, 0.863063)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 3.4641
    +View3DAtts.nearPlane = -6.9282
    +View3DAtts.farPlane = 6.9282
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (0, 0, 2.5)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +View3DAtts.windowValid = 1
    +SetView3D(View3DAtts)
    +# End spontaneous state
    +
    +SaveWindowAtts = SaveWindowAttributes()
    +SaveWindowAtts.outputToCurrentDirectory = 1
    +SaveWindowAtts.outputDirectory = "."
    +SaveWindowAtts.fileName = "small_sur_normals2d"
    +SaveWindowAtts.family = 1
    +SaveWindowAtts.format = SaveWindowAtts.PNG  # BMP, CURVE, JPEG, OBJ, PNG, POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA, VTK, PLY
    +SaveWindowAtts.width = 1024
    +SaveWindowAtts.height = 1024
    +SaveWindowAtts.screenCapture = 0
    +SaveWindowAtts.saveTiled = 0
    +SaveWindowAtts.quality = 80
    +SaveWindowAtts.progressive = 0
    +SaveWindowAtts.binary = 0
    +SaveWindowAtts.stereo = 0
    +SaveWindowAtts.compression = SaveWindowAtts.PackBits  # None, PackBits, Jpeg, Deflate
    +SaveWindowAtts.forceMerge = 0
    +SaveWindowAtts.resConstraint = SaveWindowAtts.ScreenProportions  # NoConstraint, EqualWidthHeight, ScreenProportions
    +SaveWindowAtts.advancedMultiWindowSave = 0
    +SetSaveWindowAttributes(SaveWindowAtts)
    +SaveWindow()
    +Test("unv_06", SaveWindowAtts)
    +
    +DeleteAllPlots()
    +CloseDatabase(pjoin(datapath, "small_sur.unv"))
    +
    +OpenDatabase(pjoin(datapath, "poly.msh"))
    +
    +AddPlot("Mesh", "mesh", 1, 1)
    +MeshAtts = MeshAttributes()
    +MeshAtts.legendFlag = 1
    +MeshAtts.lineWidth = 3
    +MeshAtts.meshColor = (0, 0, 255, 255)
    +MeshAtts.meshColorSource = MeshAtts.MeshCustom  # Foreground, MeshCustom, MeshRandom
    +SetPlotOptions(MeshAtts)
    +
    +AddPlot("Mesh", "freemesh", 1, 1)
    +MeshAtts = MeshAttributes()
    +MeshAtts.legendFlag = 1
    +MeshAtts.lineWidth = 2
    +MeshAtts.meshColor = (255, 0, 0, 255)
    +MeshAtts.meshColorSource = MeshAtts.MeshCustom  # Foreground, MeshCustom, MeshRandom
    +SetPlotOptions(MeshAtts)
    +
    +AddPlot("Vector", "free_normals", 1, 1)
    +AddPlot("Vector", "normals2d", 1, 1)
    +
    +DrawPlots()
    +ResetView()
    +SaveWindowAtts = SaveWindowAttributes()
    +SaveWindowAtts.width = 1024
    +SaveWindowAtts.height = 1024
    +Test("unv_07", SaveWindowAtts)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_vtk.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_vtk.html new file mode 100644 index 000000000..68cda79fe --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_vtk.html @@ -0,0 +1,443 @@ + +Results for databases/vtk.py + +

    Results of VisIt Regression Test - databases/vtk

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Materials in VTK
    vtk_010.000.00
    vtk_020.000.00
    vtk_030.000.00
    VTK XML-style data files
    vtk_040.000.00
    vtk_050.000.00
    vtk_060.000.00
    vtk_070.000.00
    vtk_080.000.00
    vtk_090.000.00
    vtk_100.000.00
    vtk_110.000.00
    vtk_120.000.00
    vtk_130.000.00
    vtk_140.000.00
    vtk_150.000.00
    vtk_160.000.00
    vtk_170.000.00
    vtk_180.000.00
    vtk_190.000.00
    vtk_200.000.00
    vtk_210.000.00
    vtk_220.000.00
    vtk_230.000.00
    vtk_240.000.00
    vtk_250.000.00
    vtk_260.000.00
    vtk_270.000.00
    Quadratic triangles in VTK
    vtk_280.000.00
    vtk_290.000.00
    !NBLOCKS in a .visit file
    vtk_300.000.00
    vtk_310.000.00
    vtk_320.000.00
    vtk_330 modifications totalling 0 lines
    PVTU files
    vtk_340.000.00
    vtk_34a0.000.00
    PVTI files
    vtk_350.000.00
    2D Unstructured grids with lines
    vtk_360.000.00
    VTM files
    vtk_370.000.00
    vtk_380.000.00
    vtk_390.000.00
    vtk_400 modifications totalling 0 lines
    PVTK files
    vtk_410.000.00
    vtk_420.000.00
    VTK ghost types
    vtk_430.000.00
    vtk_440.000.00
    vtk_450.000.00
    Database Expressions in VTK
    vtk_460.000.00
    PVD, single pvti file, no time, no groups
    vtk_pvd_010.000.00
    PVD, multiple vtr files, single time, no groups
    vtk_pvd_020.000.00
    PVD, multiple pvtr files, multiple times, no groups
    vtk_pvd_030.000.00
    vtk_pvd_040.000.00
    PVD, multiple vtr files, multiple times, groups
    vtk_pvd_050.000.00
    vtk_pvd_060.000.00
    PVD, multiple vtm files,multiple times
    vtk_pvd_070.000.00
    vtk_pvd_080.000.00
    PVD, multiple pvti files, multiple times
    vtk_pvd_090.000.00
    vtk_pvd_100.000.00
    vtk_pvd_110.000.00
    vtk_pvd_120.000.00
    export_file_version
     "# vtk DataFile Version 4.2
    +" .eq. "# vtk DataFile Version 4.2
    +" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_vtk_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_vtk_py.html new file mode 100644 index 000000000..f6bba9b2e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_vtk_py.html @@ -0,0 +1,494 @@ +databases/vtk.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  vtk.py 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       October 28, 2004 
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Fri Sep 23 10:55:44 PDT 2005
    +#    Re-organized code into separate methods.  Added TestXML method.
    +#
    +#    Brad Whitlock, Mon May 8 15:57:12 PST 2006
    +#    Added test for higher_order_triangles.vtk
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Brad Whitlock, Tue Oct 23 11:18:12 PDT 2012
    +#    I added tests for NBLOCKS .visit files, cycle & time, and PVTU files.
    +#
    +#    Eric Brugger, Tue Jun 25 18:20:31 PDT 2013
    +#    I added a test for PVTI files.
    +#
    +#    Kathleen Biagas, Wed Feb 25 14:10:13 PST 2015
    +#    Mesh name has been added to blocks.vtu test data, so add mesh plot
    +#    to test is has been read correctly.
    +#
    +#    Kathleen Biagas, Tue Aug 18 14:00:16 PDT 2015
    +#    Added a test for VTM files.
    +#
    +#    Kathleen Biagas, Thu Sep 21 14:56:25 MST 2017
    +#    Added a test for PVTK files.
    +#
    +#    Edward Rusu, Mon Oct 01 15:09:24 PST 2018
    +#    Added a test for vtkGhostType.
    +#
    +#    Kathleen Biagas, Tue Aug 24, 2021
    +#    Added a test for PVD files.
    +# 
    +#    Justin Privitera, Mon Aug 19 16:42:10 PDT 2024
    +#    Added a test for export file version.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def TestMaterials():
    +    TestSection("Materials in VTK")
    +    OpenDatabase(data_path("vtk_test_data/globe_mats.vtk"))
    +
    +
    +    #
    +    # Test simple read and display of a material variable 
    +    #
    +    AddPlot("FilledBoundary","materials")
    +    DrawPlots()
    +    Test("vtk_01")
    +
    +    #
    +    # Find set ids using their names
    +    #
    +    setId1 = -1
    +    setId2 = -1
    +    setId3 = -1
    +    silr = SILRestriction()
    +    for i in range(silr.NumSets()):
    +        if silr.SetName(i) == "1":
    +            setId1 = i
    +        elif silr.SetName(i) == "2":
    +            setId2 = i
    +        elif silr.SetName(i) == "3":
    +            setId3 = i
    +
    +    #
    +    # Turn on air, but turn void and uranium off
    +    #
    +    silr.TurnOffSet(setId2)
    +    SetPlotSILRestriction(silr)
    +    Test("vtk_02")
    +
    +    silr.TurnOnSet(setId2)
    +    SetPlotSILRestriction(silr)
    +    AddOperator("Slice")
    +    DrawPlots()
    +    Test("vtk_03")
    +
    +    TurnMaterialsOn()
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/globe_mats.vtk"))
    +
    +def TestXML():
    +    TestSection("VTK XML-style data files")
    +    OpenDatabase(data_path("vtk_xml_test_data/curv2d.vts"))
    +
    +    AddPlot("Pseudocolor", "d");
    +    DrawPlots();
    +    Test("vtk_04")
    +    ChangeActivePlotsVar("p")
    +    DrawPlots()
    +    Test("vtk_05")
    +    ChangeActivePlotsVar("u")
    +    DrawPlots()
    +    Test("vtk_06")
    +    ChangeActivePlotsVar("v")
    +    DrawPlots()
    +    Test("vtk_07")
    +    DeleteActivePlots()
    +    AddPlot("Vector", "vel")
    +    DrawPlots()
    +    Test("vtk_08")
    +    DeleteActivePlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/curv2d.vts"))
    +
    +    OpenDatabase(data_path("vtk_xml_test_data/curv3d.vts"))
    +
    +    AddPlot("Pseudocolor", "d");
    +    DrawPlots();
    +    Test("vtk_09")
    +    ChangeActivePlotsVar("p")
    +    DrawPlots()
    +    Test("vtk_10")
    +    ChangeActivePlotsVar("t")
    +    DrawPlots()
    +    Test("vtk_11")
    +    ChangeActivePlotsVar("u")
    +    DrawPlots()
    +    Test("vtk_12")
    +    ChangeActivePlotsVar("v")
    +    DrawPlots()
    +    Test("vtk_13")
    +    ChangeActivePlotsVar("w")
    +    DrawPlots()
    +    Test("vtk_14")
    +    DeleteActivePlots()
    +    AddPlot("Vector", "vel")
    +    DrawPlots()
    +    Test("vtk_15")
    +    DeleteActivePlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/curv3d.vts"))
    +
    +    OpenDatabase(data_path("vtk_xml_test_data/rect3d.vtr"))
    +
    +    AddPlot("Pseudocolor", "d");
    +    DrawPlots();
    +    Test("vtk_16")
    +    ChangeActivePlotsVar("p")
    +    DrawPlots()
    +    Test("vtk_17")
    +    ChangeActivePlotsVar("t")
    +    DrawPlots()
    +    Test("vtk_18")
    +    ChangeActivePlotsVar("u")
    +    DrawPlots()
    +    Test("vtk_19")
    +    ChangeActivePlotsVar("v")
    +    DrawPlots()
    +    Test("vtk_20")
    +    ChangeActivePlotsVar("w")
    +    DrawPlots()
    +    Test("vtk_21")
    +    DeleteActivePlots()
    +    AddPlot("Vector", "vel")
    +    DrawPlots()
    +    Test("vtk_22")
    +    DeleteActivePlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/rect3d.vtr"))
    +
    +    OpenDatabase(data_path("vtk_xml_test_data/ucd2d.vtu"))
    +
    +    AddPlot("Pseudocolor", "d");
    +    DrawPlots();
    +    Test("vtk_23")
    +    ChangeActivePlotsVar("speed")
    +    DrawPlots()
    +    Test("vtk_24")
    +    ChangeActivePlotsVar("u")
    +    DrawPlots()
    +    Test("vtk_25")
    +    ChangeActivePlotsVar("v")
    +    DrawPlots()
    +    Test("vtk_26")
    +    DeleteActivePlots()
    +    AddPlot("Vector", "vel")
    +    DrawPlots()
    +    Test("vtk_27")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/ucd2d.vtu"))
    +
    +def TestHigherOrder():
    +    TestSection("Quadratic triangles in VTK")
    +    OpenDatabase(data_path("vtk_test_data/higher_order_triangles.vtk"))
    +
    +    AddPlot("Mesh", "highorder_triangles");
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.429056, 0.759111, 0.489553)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (-0.901832, -0.39065, -0.184638)
    +    v.viewAngle = 30
    +    v.parallelScale = 1.73205
    +    v.nearPlane = -3.4641
    +    v.farPlane = 3.4641
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1.45106
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +
    +    Test("vtk_28")
    +    DeleteAllPlots()
    +
    +    DefineScalarExpression("zoneid", "zoneid(highorder_triangles)")
    +    AddPlot("Pseudocolor", "zoneid")
    +    p = PseudocolorAttributes()
    +    p.colorTableName = "levels"
    +    SetPlotOptions(p)
    +    DrawPlots()
    +    Test("vtk_29")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/higher_order_triangles.vtk"))
    +
    +def TestNBLOCKS():
    +    TestSection("!NBLOCKS in a .visit file")
    +    OpenDatabase(data_path("vtk_test_data/visitfile/dbA.visit"))
    +    AddPlot("Pseudocolor", "mesh/ireg")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_30")
    +
    +    # See that there are multiple time steps.
    +    SetTimeSliderState(5)
    +    Test("vtk_31")
    +    DeleteAllPlots()
    +
    +    # See that there are 2 domains
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test("vtk_32")
    +
    +    # Test that we can get the cycle and time out.
    +    txt = ""
    +    for i in range(10):
    +        SetTimeSliderState(i)
    +        Query("Cycle")
    +        cycle = GetQueryOutputValue()
    +        Query("Time")
    +        time = GetQueryOutputValue()
    +        txt = txt + "Cycle: %d, Time: %g\n" % (cycle, time)
    +    TestText("vtk_33", txt)
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/visitfile/dbA.visit"))
    +
    +def TestPVTU():
    +    TestSection("PVTU files")
    +    OpenDatabase(data_path("vtk_test_data/blocks.pvtu"))
    +    AddPlot("Pseudocolor", "MatNum")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_34")
    +    # MeshName recently added, so test.
    +    AddPlot("Mesh", "blocks")
    +    DrawPlots()
    +    Test("vtk_34a")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/blocks.pvtu"))
    +
    +def TestPVTI():
    +    TestSection("PVTI files")
    +    OpenDatabase(data_path("vtk_xml_test_data/earth.pvti"))
    +    AddPlot("Truecolor", "PNGImage")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_35")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/earth.pvti"))
    +
    +def TestMixedTopology():
    +    TestSection("2D Unstructured grids with lines")
    +    OpenDatabase(data_path("vtk_test_data/test_bound.vtk"))
    +    AddPlot("Pseudocolor", "data_cells_with_bound")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_36")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/test_bound.vtk"))
    +
    +def TestVTM():
    +    TestSection("VTM files")
    +    f = "files.vtm"
    +    fN = data_path("vtk_xml_test_data/MultiBlock/%s"%f)
    +    OpenDatabase(fN)
    +    AddPlot("Subset", "Blocks")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_37")
    +
    +    mmd = GetMetaData(fN).GetMeshes(0)
    +    s = f + ":    Groups: " + ", ".join(mmd.groupNames)
    +    s = s + "     Blocks: " + ", ".join(mmd.blockNames) + "\n"
    +
    +    DeleteAllPlots()
    +    CloseDatabase(fN)
    +
    +    f = "files_grouped.vtm"
    +    fN = data_path("vtk_xml_test_data/MultiBlock/%s"%f)
    +    OpenDatabase(fN)
    +    AddPlot("Subset", "Blocks")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_38")
    +
    +    ChangeActivePlotsVar("Groups")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_39")
    +
    +    mmd = GetMetaData(fN).GetMeshes(0)
    +    s = s + f + ":    Groups: " + ", ".join(mmd.groupNames)
    +    s = s + "    Blocks: " + ", ".join(mmd.blockNames) + "\n"
    +    TestText("vtk_40", s)
    +    DeleteAllPlots()
    +    CloseDatabase(fN)
    +
    +def TestPVTK():
    +    TestSection("PVTK files")
    +    f = "earth.pvtk"
    +    fN = data_path("vtk_test_data/pvtk/%s"%f)
    +    OpenDatabase(fN)
    +    AddPlot("Truecolor", "PNGImage")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_41")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(fN)
    +
    +    f = "dbA.pvtk"
    +    fN = data_path("vtk_test_data/pvtk/dbA/%s"%f)
    +    OpenDatabase(fN)
    +    AddPlot("Pseudocolor", "mesh/ireg")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_42")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(fN)
    +
    +def TestVTKGhostType():
    +    TestSection("VTK ghost types")
    +    OpenDatabase(data_path("vtk_test_data/vtkGhostType.vtk"))
    +    ResetView()
    +    AddPlot("Pseudocolor", "internal_var_GhostZones")
    +    DrawPlots()
    +    Test("vtk_43")
    +
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "internal_var_GhostNodes")
    +    DrawPlots()
    +    Test("vtk_44")
    +
    +    DeleteAllPlots()
    +    AddPlot("Mesh", "Mesh_gnz")
    +    DrawPlots()
    +    Test("vtk_45")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/vtkGhostType.vtk"))
    +
    +def TestDBExpressions():
    +    TestSection("Database Expressions in VTK")
    +    OpenDatabase(data_path("vtk_test_data/higher_order_triangles.vtk"))
    +
    +    AddPlot("Mesh", "highorder_triangles");
    +    AddPlot("Pseudocolor", "x")
    +    AddPlot("Vector", "posvec")
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.429056, 0.759111, 0.489553)
    +    v.viewUp = (-0.901832, -0.39065, -0.184638)
    +    v.parallelScale = 1.73205
    +    v.nearPlane = -3.4641
    +    v.farPlane = 3.4641
    +    v.imageZoom = 1.45106
    +    SetView3D(v)
    +
    +    Test("vtk_46")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/higher_order_triangles.vtk"))
    +
    +def TestPVD():
    +
    +    TestSection("PVD, single pvti file, no time, no groups")
    +    OpenDatabase(data_path("vtk_xml_test_data/earth.pvd"))
    +    AddPlot("Truecolor", "PNGImage")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_pvd_01")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/earth.pvd"))
    +
    +    TestSection("PVD, multiple vtr files, single time, no groups")
    +    OpenDatabase(data_path("vtk_xml_test_data/multiRect3d.pvd"))
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_pvd_02")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/multiRect3d.pvd"))
    +
    +    TestSection("PVD, multiple pvtr files, multiple times, no groups")
    +    OpenDatabase(data_path("vtk_xml_test_data/multi_dir/multi_time_pvtr.pvd"))
    +    AddPlot("Pseudocolor", "radial")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_pvd_03")
    +    TimeSliderSetState(5)
    +    Test("vtk_pvd_04")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/multi_dir/multi_time_pvtr.pvd"))
    +
    +    TestSection("PVD, multiple vtr files, multiple times, groups")
    +    OpenDatabase(data_path("vtk_xml_test_data/multi_dir/multi_time_part_vtr.pvd"))
    +    AddPlot("Subset", "parts")
    +    DrawPlots()
    +    Test("vtk_pvd_05")
    +    ChangeActivePlotsVar("blocks")
    +    Test("vtk_pvd_06")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/multi_dir/multi_time_part_vtr.pvd"))
    +
    +    TestSection("PVD, multiple vtm files,multiple times")
    +    OpenDatabase(data_path("vtk_xml_test_data/multi_dir/multi_time_vtm.pvd"))
    +    AddPlot("Pseudocolor", "radial")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_pvd_07")
    +    TimeSliderSetState(5)
    +    Test("vtk_pvd_08")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/multi_dir/multi_time_vtm.pvd"))
    +
    +    TestSection("PVD, multiple pvti files, multiple times")
    +    OpenDatabase(data_path("vtk_xml_test_data/earth_multiTime/earth_time.pvd"))
    +    AddPlot("Truecolor", "PNGImage")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_pvd_09")
    +    TimeSliderNextState()
    +    Test("vtk_pvd_10")
    +    TimeSliderNextState()
    +    Test("vtk_pvd_11")
    +    TimeSliderNextState()
    +    Test("vtk_pvd_12")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/earth_multiTime/earth_time.pvd"))
    +
    +def TestExportFileVersion():
    +    dbname = silo_data_path("ucd3d.silo")
    +    OpenDatabase(dbname)
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +    export_name = "test_vtk_file_version"
    +    e = ExportDBAttributes()
    +    e.db_type = "VTK"
    +    e.filename = export_name
    +    e.variables = ("d",)
    +    ExportDatabase(e)
    +    time.sleep(1)
    +    CloseDatabase(dbname)
    +    filename = export_name + ".vtk"
    +    with open(filename) as input_file:
    +        TestValueEQ("export_file_version", "# vtk DataFile Version 4.2\n", next(input_file))
    +
    +TestMaterials()
    +TestXML()
    +TestHigherOrder()
    +TestNBLOCKS()
    +TestPVTU()
    +TestPVTI()
    +TestMixedTopology()
    +TestVTM()
    +TestPVTK()
    +TestVTKGhostType()
    +TestDBExpressions()
    +TestPVD()
    +TestExportFileVersion()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_wave_tv.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_wave_tv.html new file mode 100644 index 000000000..cd0b51658 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_wave_tv.html @@ -0,0 +1,62 @@ + +Results for databases/wave_tv.py + +

    Results of VisIt Regression Test - databases/wave_tv

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    wave_tv_010.000.00
    wave_tv_020.000.00
    wave_tv_030 modifications totalling 0 lines
    wave_tv_040 modifications totalling 0 lines
    wave_tv_050.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_wave_tv_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_wave_tv_py.html new file mode 100644 index 000000000..20efdf233 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_wave_tv_py.html @@ -0,0 +1,88 @@ +databases/wave_tv.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  silo.py 
    +#
    +#  Tests:      The wave_tv database which varies domains and materials and
    +#              number of meshes over time.
    +#
    +#  Defects:    '4760
    +#
    +#  Programmer: Hank Childs
    +#  Date:       April 9, 2004 
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, June 12, 2007
    +#    Replaced explicit annotation manipulation with call to
    +#    TurnOffAllAnnotations. Added tests of TreatAllDBsAsTimeVarying
    +#    functionality
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("wave_tv*.silo database"), 9)
    +
    +
    +#
    +# This brings up a subset plot with 5 materials.
    +#
    +AddPlot("FilledBoundary", "Material")
    +DrawPlots()
    +
    +Test("wave_tv_01")
    +
    +#
    +# There was a bug ('4760), where animating over time would crash the engine
    +# when some materials went out of scope.
    +#
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +
    +Test("wave_tv_02")
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("wave_tv*.silo database") )
    +
    +#
    +# Open wave_tv one state BEFORE where variable 'transient' is
    +# defined and then march forward. With 'TreatAllDBsAsTimeVarying'
    +# turned off, the add should always fail. With it turned on,
    +# the add should succeed on state 17.
    +#
    +OpenDatabase(silo_data_path("wave_tv*.silo database") , 16)
    +addOk16 = AddPlot("Pseudocolor","transient")
    +DeleteAllPlots()
    +TimeSliderNextState()
    +addOk17 = AddPlot("Pseudocolor","transient")
    +msg = "With TreatAllDBsAsTimeVarying set to its default value,\n"
    +msg = msg + "AddPlot() returned %d for state 16 and %d for state 17"%(addOk16,addOk17)
    +TestText("wave_tv_03", msg)
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("wave_tv*.silo database") )
    +
    +SetTreatAllDBsAsTimeVarying(1)
    +OpenDatabase(silo_data_path("wave_tv*.silo database"), 16)
    +
    +addOk16 = AddPlot("Pseudocolor","transient")
    +DeleteAllPlots()
    +TimeSliderNextState()
    +addOk17 = AddPlot("Pseudocolor","transient")
    +msg = "With TreatAllDBsAsTimeVarying set to 1 (true),\n"
    +msg = msg + "AddPlot() returned %d for state 16 and %d for state 17"%(addOk16,addOk17)
    +TestText("wave_tv_04", msg)
    +DrawPlots()
    +Test("wave_tv_05")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_xdmf.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_xdmf.html new file mode 100644 index 000000000..49025d2a8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_xdmf.html @@ -0,0 +1,339 @@ + +Results for databases/xdmf.py + +

    Results of VisIt Regression Test - databases/xdmf

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Structured (no hdf5)
    xdmf_0_000.000.00
    xdmf_0_010.000.00
    Basic topology (no hdf5)
    xdmf_1_000.000.00
    xdmf_1_010.000.00
    xdmf_1_020.000.00
    xdmf_1_030.000.00
    xdmf_1_040.000.00
    xdmf_1_050.000.00
    xdmf_1_060.000.00
    xdmf_1_070.000.00
    xdmf_1_080.000.00
    xdmf_1_090.000.00
    xdmf_1_100.000.00
    xdmf_1_110.000.00
    xdmf_1_120.000.00
    xdmf_1_130.000.00
    xdmf_1_140.000.00
    xdmf_1_150.000.00
    xdmf_1_160.000.00
    xdmf_1_170.000.00
    Mixed (no hdf5)
    xdmf_2_000.000.00
    Polygon (no hdf5)
    xdmf_3_000.000.00
    xdmf_3_010.000.00
    xdmf_3_020.000.00
    Quadratic topology (no hdf5)
    xdmf_4_000.000.00
    xdmf_4_010.000.00
    xdmf_4_020.000.00
    xdmf_4_030.000.00
    xdmf_4_040.000.00
    xdmf_4_050.000.00
    Multiple grids (no hdf5)
    xdmf_5_000.000.00
    Structured with hdf5
    xdmf_6_000.000.00
    xdmf_6_010.000.00
    xdmf_6_020.000.00
    xdmf_6_030.000.00
    xdmf_6_040.000.00
    xdmf_6_050.000.00
    xdmf_6_060.000.00
    Quadratic topology (no hdf5)
    xdmf_7_000.000.00
    xdmf_7_010.000.00
    xdmf_7_020.000.00
    xdmf_7_030.000.00
    xdmf_7_040.000.00
    xdmf_7_050.000.00
    xdmf_7_060.000.00
    Curves
    xdmf_8_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_xdmf_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_xdmf_py.html new file mode 100644 index 000000000..3bf4ac9d5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_xdmf_py.html @@ -0,0 +1,448 @@ +databases/xdmf.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  xdmf.py
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Tue Apr 27 10:37:01 PDT 2010
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("Xdmf")
    +
    +def test0(datapath):
    +    TestSection("Structured (no hdf5)")
    +    OpenDatabase(pjoin(datapath,"3DRectMesh.xmf"))
    +    AddPlot("Pseudocolor", "CellScalars")
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.722705, 0.363868, 0.587621)
    +    v.focus = (2, 1.5, 1.5)
    +    v.viewUp = (0.277541, 0.931424, -0.235414)
    +    v.viewAngle = 30
    +    v.parallelScale = 2.91548
    +    v.nearPlane = -5.83095
    +    v.farPlane = 5.83095
    +    v.imagePan = (0.0188164, 0.0435196)
    +    v.imageZoom = 1.09024
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (2, 1.5, 1.5)
    +    SetView3D(v)
    +    Test("xdmf_0_00")
    +
    +    ChangeActivePlotsVar("NodeScalars")
    +    Test("xdmf_0_01")
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"3DRectMesh.xmf"))
    +
    +def test1(datapath):
    +    TestSection("Basic topology (no hdf5)")
    +    OpenDatabase(pjoin(datapath,"BasicTopology.xmf"))
    +    AddPlot("Pseudocolor", "Hexahedron/Cell Centered Values")
    +    DrawPlots()
    +
    +    pc = PseudocolorAttributes(1)
    +    pc.pointSizePixels = 10
    +    pc.pointType = pc.Point
    +    SetPlotOptions(pc)
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.722705, 0.363868, 0.587621)
    +    v.focus = (0.5, 0.5, 2)
    +    v.viewUp = (0.277541, 0.931424, -0.235414)
    +    v.viewAngle = 30
    +    v.parallelScale = 2.12132
    +    v.nearPlane = -4.24264
    +    v.farPlane = 4.24264
    +    v.imagePan = (0.0665142, 0.0326173)
    +    v.imageZoom = 1.4219
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 2)
    +    SetView3D(v)
    +    Test("xdmf_1_00")
    +
    +    ChangeActivePlotsVar("Hexahedron/Node Centered Values")
    +    Test("xdmf_1_01")
    +
    +    # Polygon
    +    ChangeActivePlotsVar("Polygon/Cell Centered Values")
    +    Test("xdmf_1_02")
    +    ChangeActivePlotsVar("Polygon/Node Centered Values")
    +    Test("xdmf_1_03")
    +
    +    # Polyline
    +    ChangeActivePlotsVar("Polyline/Cell Centered Values")
    +    Test("xdmf_1_04")
    +    ChangeActivePlotsVar("Polyline/Node Centered Values")
    +    Test("xdmf_1_05")
    +
    +    # Polyvertex
    +    ChangeActivePlotsVar("Polyvertex/Cell Centered Values")
    +    Test("xdmf_1_06")
    +    ChangeActivePlotsVar("Polyvertex/Node Centered Values")
    +    Test("xdmf_1_07")
    +
    +    # Pyramid
    +    ChangeActivePlotsVar("Pyramid/Cell Centered Values")
    +    Test("xdmf_1_08")
    +    ChangeActivePlotsVar("Pyramid/Node Centered Values")
    +    Test("xdmf_1_09")
    +
    +    # Quadrilateral
    +    ChangeActivePlotsVar("Quadrilateral/Cell Centered Values")
    +    Test("xdmf_1_10")
    +    ChangeActivePlotsVar("Quadrilateral/Node Centered Values")
    +    Test("xdmf_1_11")
    +
    +    # Tetrahedron
    +    ChangeActivePlotsVar("Tetrahedron/Cell Centered Values")
    +    Test("xdmf_1_12")
    +    ChangeActivePlotsVar("Tetrahedron/Node Centered Values")
    +    Test("xdmf_1_13")
    +
    +    # Triangle
    +    ChangeActivePlotsVar("Triangle/Cell Centered Values")
    +    Test("xdmf_1_14")
    +    ChangeActivePlotsVar("Triangle/Node Centered Values")
    +    Test("xdmf_1_15")
    +
    +    # Wedge
    +    ChangeActivePlotsVar("Wedge/Cell Centered Values")
    +    Test("xdmf_1_16")
    +    ChangeActivePlotsVar("Wedge/Node Centered Values")
    +    Test("xdmf_1_17")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"BasicTopology.xmf"))
    +
    +def test2(datapath):
    +    TestSection("Mixed (no hdf5)")
    +    # Open the mixed topology file
    +    OpenDatabase(pjoin(datapath,"Mixed.xmf"))
    +    DeleteAllPlots()
    +    AddPlot("Mesh", "Mixed")
    +    m = MeshAttributes()
    +    m.legendFlag = 1
    +    m.lineWidth = 1
    +    m.meshColor = (255, 0, 0, 255)
    +    m.meshColorSource = m.MeshCustom  # Foreground, MeshCustom
    +    m.opaqueColorSource = m.OpaqueCustom  # Background, OpaqueCustom
    +    m.opaqueMode = m.Auto  # Auto, On, Off
    +    m.pointSize = 0.05
    +    m.opaqueColor = (192, 192, 192, 255)
    +    m.smoothingLevel = m.NONE  # None, Fast, High
    +    m.pointSizeVarEnabled = 0
    +    m.pointSizeVar = "default"
    +    m.pointType = m.Point  # Box, Axis, Icosahedron, Point, Sphere
    +    m.showInternal = 0
    +    m.pointSizePixels = 2
    +    m.opacity = 1
    +    SetPlotOptions(m)
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.611582, 0.210354, 0.762705)
    +    v.focus = (0.5, 0.5, 2)
    +    v.viewUp = (0.145916, 0.97746, -0.15258)
    +    v.viewAngle = 30
    +    v.parallelScale = 2.12132
    +    v.nearPlane = -4.24264
    +    v.farPlane = 4.24264
    +    v.imagePan = (-0.0635688, 0.0486989)
    +    v.imageZoom = 1.17908
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 2)
    +    SetView3D(v)
    +    Test("xdmf_2_00")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath, "Mixed.xmf"))
    +
    +def test3(datapath):
    +    TestSection("Polygon (no hdf5)")
    +    OpenDatabase(pjoin(datapath,"PolygonOctagon.xmf"))
    +    AddPlot("Mesh", "PolygonOctagon")
    +    DrawPlots()
    +    ResetView()
    +    Test("xdmf_3_00")
    +
    +    AddPlot("Pseudocolor", "CellScalar")
    +    DrawPlots()
    +    Test("xdmf_3_01")
    +
    +    ChangeActivePlotsVar("NodeScalar")
    +    Test("xdmf_3_02")
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"PolygonOctagon.xmf"))
    +
    +def test4(datapath):
    +    TestSection("Quadratic topology (no hdf5)")
    +    OpenDatabase(pjoin(datapath,"QuadraticTopology.xmf"))
    +    AddPlot("Pseudocolor", "Hexahedron_20/Node Centered Values")
    +    DrawPlots()
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.703184, 0.393286, 0.592333)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.293186, 0.919352, -0.262361)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.imagePan = (0.0122989, 0.0367562)
    +    v.imageZoom = 1.02726
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 0.5)
    +    SetView3D(v)
    +    Test("xdmf_4_00")
    +
    +    ChangeActivePlotsVar("Pyramid_13/Node Centered Values")
    +    Test("xdmf_4_01")
    +
    +    ChangeActivePlotsVar("Quadrilateral_8/Node Centered Values")
    +    Test("xdmf_4_02")
    +
    +    ChangeActivePlotsVar("Tetrahedron_10/Node Centered Values")
    +    Test("xdmf_4_03")
    +
    +    ChangeActivePlotsVar("Triangle_6/Node Centered Values")
    +    Test("xdmf_4_04")
    +
    +    ChangeActivePlotsVar("Wedge_15/Node Centered Values")
    +    Test("xdmf_4_05")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"QuadraticTopology.xmf"))
    +
    +def test5(datapath):
    +    TestSection("Multiple grids (no hdf5)")
    +    OpenDatabase(pjoin(datapath,"TetrahedronMultipleGrids.xmf"))
    +    AddPlot("Pseudocolor", "Tetrahedron 1/CellScalar")
    +    AddPlot("Pseudocolor", "Tetrahedron 2/CellScalar")
    +    DrawPlots()
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.0158313, 0.998128, -0.0590748)
    +    v.focus = (0, 0.5, 0)
    +    v.viewUp = (-0.0096669, -0.0592323, -0.998197)
    +    v.viewAngle = 30
    +    v.parallelScale = 1.5
    +    v.nearPlane = -3
    +    v.farPlane = 3
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0.5, 0)
    +    SetView3D(v)
    +
    +    Test("xdmf_5_00")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"TetrahedronMultipleGrids.xmf"))
    +
    +def test6(datapath):
    +    TestSection("Structured with hdf5")
    +    db = pjoin(datapath,"rect2d.xmf")
    +    OpenDatabase(db)
    +    AddPlot("Mesh", "mesh")
    +    AddPlot("Pseudocolor", "Pressure")
    +    DrawPlots()
    +    ResetView()
    +    Test("xdmf_6_00")
    +    ChangeActivePlotsVar("VelocityX")
    +    Test("xdmf_6_01")
    +
    +    db = pjoin(datapath,"corect2d.xmf")
    +    ReplaceDatabase(db)
    +    DrawPlots()
    +    ResetView()
    +    Test("xdmf_6_02")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +    db = pjoin(datapath,"rect3d.xmf")
    +    OpenDatabase(db)
    +    AddPlot("Mesh", "mesh")
    +    AddPlot("Pseudocolor", "VelocityZ")
    +    DrawPlots()
    +    ResetView()
    +    Test("xdmf_6_03")
    +
    +    db = pjoin(datapath,"corect3d.xmf")
    +    ReplaceDatabase(db)
    +    DrawPlots()
    +    ResetView()
    +    Test("xdmf_6_04")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +    db = pjoin(datapath,"xdmf2d.xmf")
    +    OpenDatabase(db)
    +    AddPlot("Mesh", "mesh1")
    +    AddPlot("Pseudocolor", "Pressure")
    +    DrawPlots()
    +    Test("xdmf_6_05")
    +
    +    ChangeActivePlotsVar("VelocityX")
    +    Test("xdmf_6_06")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test7(datapath):
    +    TestSection("Quadratic topology (no hdf5)")
    +    OpenDatabase(pjoin(datapath,"singleHex24.xmf"))
    +    AddPlot("Mesh", "singleHex24")
    +    AddPlot("Pseudocolor", "GlobalNodeId")
    +    DrawPlots()
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.690415, 0.541158, 0.480078)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0.123212, -0.565967, 0.815169)
    +    v.viewAngle = 30
    +    v.parallelScale = 1.73205
    +    v.nearPlane = -3.4641
    +    v.farPlane = 3.4641
    +    v.imagePan = (0, 0.0352717)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +
    +    Test("xdmf_7_00")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"singleHex24.xmf"))
    +
    +    OpenDatabase(pjoin(datapath,"singleHex27.xmf"))
    +    AddPlot("Mesh", "singleHex27")
    +    AddPlot("Pseudocolor", "GlobalNodeId")
    +    DrawPlots()
    +
    +    Test("xdmf_7_01")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"singleHex27.xmf"))
    +
    +    OpenDatabase(pjoin(datapath,"singleQuad6.xmf"))
    +    AddPlot("Mesh", "singleQuad6")
    +    AddPlot("Pseudocolor", "GlobalNodeId")
    +    DrawPlots()
    +
    +    Test("xdmf_7_02")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"singleQuad6.xmf"))
    +
    +    OpenDatabase(pjoin(datapath,"singleQuad9.xmf"))
    +    AddPlot("Mesh", "singleQuad9")
    +    AddPlot("Pseudocolor", "GlobalNodeId")
    +    DrawPlots()
    +
    +    Test("xdmf_7_03")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"singleQuad9.xmf"))
    +
    +    OpenDatabase(pjoin(datapath,"singleTri7.xmf"))
    +    AddPlot("Mesh", "singleTri7")
    +    AddPlot("Pseudocolor", "GlobalNodeId")
    +    DrawPlots()
    +
    +    Test("xdmf_7_04")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath, "singleTri7.xmf"))
    +
    +    OpenDatabase(pjoin(datapath, "singleWedge12.xmf"))
    +    AddPlot("Mesh", "singleWedge12")
    +    AddPlot("Pseudocolor", "GlobalNodeId")
    +    DrawPlots()
    +    v = View3DAttributes()
    +    v.viewNormal = (0.69918, -0.142559, 0.700588)
    +    v.focus = (0, 0, 0.5)
    +    v.viewUp = (-0.216074, 0.89196, 0.397139)
    +    v.viewAngle = 30
    +    v.parallelScale = 1.5
    +    v.nearPlane = -3
    +    v.farPlane = 3
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +
    +    Test("xdmf_7_05")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"singleWedge12.xmf"))
    +
    +    OpenDatabase(pjoin(datapath,"singleWedge18.xmf"))
    +    AddPlot("Mesh", "singleWedge18")
    +    AddPlot("Pseudocolor", "GlobalNodeId")
    +    DrawPlots()
    +
    +    Test("xdmf_7_06")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"singleWedge18.xmf"))
    +
    +def test8(datapath):
    +    TestSection("Curves")
    +    OpenDatabase(pjoin(datapath,"curve.xmf"))
    +    AddPlot("Curve", "Curve/Node Centered Values")
    +    ca = CurveAttributes()
    +    ca.showLabels = 0
    +    SetPlotOptions(ca)
    +    DrawPlots()
    +    Test("xdmf_8_01")
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"curve.xmf"))
    +
    +def main():
    +    datapath = data_path("xdmf_test_data")
    +    test0(datapath)
    +    test1(datapath)
    +    test2(datapath)
    +    test3(datapath)
    +    test4(datapath)
    +    test5(datapath)
    +
    +    test6(datapath)
    +    test7(datapath)
    +    test8(datapath)
    +
    +main()
    +Exit()
    +
    +
    +#fails:
    +# rect2d.xmf
    +#              Crashes the engine cuz we don't give a Z coordinate
    +#
    +# corect2d.xml 
    +#              I can plot the mesh but it is in the YZ plane, which doesn't seem right.
    +#              Does not expose Pressure or VelocityX.
    +#              
    +# rect3d.xmf
    +#              Only exposes VelocityZ (where is Pressure?)
    +#
    +# corect3d.xmf
    +#              Does not expose Pressure or VelocityZ
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_xform_precision.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_xform_precision.html new file mode 100644 index 000000000..3b0f996a2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_xform_precision.html @@ -0,0 +1,72 @@ + +Results for databases/xform_precision.py + +

    Results of VisIt Regression Test - databases/xform_precision

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    float_xform_010.000.00
    float_xform_020.000.00
    float_xform_030.000.00
    float_xform_040.000.00
    float_xform_050.000.00
    float_xform_060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_xform_precision_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_xform_precision_py.html new file mode 100644 index 000000000..1a12e4582 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_xform_precision_py.html @@ -0,0 +1,86 @@ +databases/xform_precision.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  xform_precision.py 
    +#
    +#  Tests:      Transform manager's conversion to float 
    +#
    +#  Programmer: Mark C. Miller
    +#  Date:       September 24, 2006 
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("quad_disk.silo"))
    +
    +
    +#
    +# Turn off force single precision for this test
    +#
    +readOptions=GetDefaultFileOpenOptions("Silo")
    +readOptions["Force Single"] = 0
    +SetDefaultFileOpenOptions("Silo", readOptions)
    +
    +#
    +# Test ordinary float data (no conversion) first
    +#
    +AddPlot("Mesh","mesh")
    +DrawPlots()
    +Test("float_xform_01")
    +DeleteAllPlots()
    +
    +#
    +# Ok, now read a mesh with double coords
    +#
    +AddPlot("Mesh","meshD")
    +DrawPlots()
    +Test("float_xform_02")
    +DeleteAllPlots()
    +
    +CloseDatabase(silo_data_path("quad_disk.silo"))
    +OpenDatabase(silo_data_path("quad_disk.silo"))
    +
    +
    +#
    +# test float data on a float mesh
    +#
    +AddPlot("Pseudocolor","sphElev_on_mesh")
    +DrawPlots()
    +Test("float_xform_03")
    +DeleteAllPlots()
    +
    +#
    +# test float data on a double mesh
    +#
    +AddPlot("Pseudocolor","sphElev_on_meshD")
    +DrawPlots()
    +Test("float_xform_04")
    +DeleteAllPlots()
    +
    +#
    +# test double data on a float mesh
    +#
    +AddPlot("Pseudocolor","sphElevD_on_mesh")
    +DrawPlots()
    +Test("float_xform_05")
    +DeleteAllPlots()
    +
    +CloseDatabase(silo_data_path("quad_disk.silo"))
    +
    +OpenDatabase(silo_data_path("quad_disk.silo"))
    +
    +
    +#
    +# test double data on a double mesh
    +#
    +AddPlot("Pseudocolor","sphElevD_on_meshD")
    +DrawPlots()
    +Test("float_xform_06")
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_xyz.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_xyz.html new file mode 100644 index 000000000..a5427ec7a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_xyz.html @@ -0,0 +1,76 @@ + +Results for databases/xyz.py + +

    Results of VisIt Regression Test - databases/xyz

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    xyz_010.000.00
    xyz_020.000.00
    xyz_030.000.00
    xyz_040.000.00
    xyz_050.000.00
    xyz_060.000.00
    xyz_070 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/databases_xyz_py.html b/2024-12-12-22:00/poodle_trunk_parallel/databases_xyz_py.html new file mode 100644 index 000000000..3772f8d4f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/databases_xyz_py.html @@ -0,0 +1,81 @@ +databases/xyz.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  xyz.py
    +#
    +#  Tests:      mesh      - 3D Points
    +#              plots     - Molecule
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       June 14, 2007
    +#
    +#  Modifications:
    +#    Eddie Rusu, Mon Aug 26 08:46:44 PDT 2019
    +#    Added test for cell-centered non VTK_VERTEX points.
    +#
    +#    Kathleen Biagas, Mon Jun 21 09:41:41 PDT 2021
    +#    Added 'DeleteAllPlots' before 'CloseDatabase'.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def test_xyz_ascii_output(data_base_name, var, test_output):
    +    OpenDatabase(silo_data_path(data_base_name))
    +    AddPlot("Pseudocolor", var, 1, 1)
    +    DrawPlots()
    +
    +    # Export results to database
    +    e = ExportDBAttributes()
    +    e.db_type = "XYZ"
    +    e.filename = "test_ex_db"
    +    ExportDatabase(e)
    +    time.sleep(1)
    +
    +    # Stream the ascii text in from the exported database
    +    file_streamer = open(e.filename+'.xyz', 'r')
    +    string_to_test = file_streamer.read()
    +    file_streamer.close()
    +
    +    # Test the string
    +    TestText(test_output, string_to_test)
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(data_base_name))
    +
    +
    +
    +# Starting point in this script
    +OpenDatabase(data_path("xyz_test_data/nanowireTB23K298.xyz"),0, "XYZ_1.0")
    +
    +AddPlot("Molecule", "element")
    +DrawPlots()
    +
    +View3DAtts = GetView3D()
    +View3DAtts.viewNormal = (-0.882253, 0.0562832, 0.467398)
    +View3DAtts.focus = (26.3509, 22.1853, 31.5426)
    +View3DAtts.viewUp = (-0.0613441, 0.970619, -0.232672)
    +View3DAtts.viewAngle = 30
    +SetView3D(View3DAtts)
    +
    +Test("xyz_01")
    +TimeSliderNextState()
    +Test("xyz_02")
    +TimeSliderNextState()
    +Test("xyz_03")
    +TimeSliderNextState()
    +Test("xyz_04")
    +TimeSliderNextState()
    +Test("xyz_05")
    +TimeSliderNextState()
    +Test("xyz_06")
    +DeleteAllPlots()
    +CloseDatabase(data_path("xyz_test_data/nanowireTB23K298.xyz"))
    +
    +# Test case where XYZ writer is cell-centered VTK_VERTEX data
    +# In this case, the baseline text is generated from the point-centered data.
    +DefineScalarExpression("vz2", 'recenter(vz, "zonal")')
    +test_xyz_ascii_output('galaxy0000.silo', 'vz2', 'xyz_07')
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/expressions_ghost_zoneid_expr.html b/2024-12-12-22:00/poodle_trunk_parallel/expressions_ghost_zoneid_expr.html new file mode 100644 index 000000000..6d6136c2a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/expressions_ghost_zoneid_expr.html @@ -0,0 +1,58 @@ + +Results for expressions/ghost_zoneid_expr.py + +

    Results of VisIt Regression Test - expressions/ghost_zoneid_expr

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Ghost Zone ID Expression
    Minimum Field Value
     0.0 .eq. 0.0 (prec=5) : True
    Maximum Field Value
     0.0 .eq. 0.0 (prec=5) : True
    Ghost Zone ID Expression w/ Inverse Ghost Zones Debugging
    Minimum Field Value
     1.0 .eq. 1.0 (prec=5) : True
    Maximum Field Value
     1.0 .eq. 1.0 (prec=5) : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/expressions_ghost_zoneid_expr_py.html b/2024-12-12-22:00/poodle_trunk_parallel/expressions_ghost_zoneid_expr_py.html new file mode 100644 index 000000000..063c661eb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/expressions_ghost_zoneid_expr_py.html @@ -0,0 +1,46 @@ +expressions/ghost_zoneid_expr.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ghost_zoneid_expr.py
    +#
    +#  Tests:      Ghost Zone Id Expression
    +#
    +#  Programmer: Justin Privitera
    +#  Date:       Wed Apr 6 15:03:47 PDT 2022
    +#
    +# ----------------------------------------------------------------------------
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +meshName = "mesh1"
    +
    +#
    +# Set precision for rounding operations
    +#
    +Prec = 5
    +
    +TestSection("Ghost Zone ID Expression")
    +
    +AddPlot("Pseudocolor", "d")
    +DefineScalarExpression("ghostzonevar", "ghost_zoneid(" + meshName + ")")
    +AddPlot("Pseudocolor", "ghostzonevar")
    +DrawPlots()
    +Query("MinMax")
    +q = GetQueryOutputObject()
    +TestValueEQ("Minimum Field Value", q['min'], 0.0, Prec)
    +TestValueEQ("Maximum Field Value", q['max'], 0.0, Prec)
    +DeleteAllPlots()
    +
    +TestSection("Ghost Zone ID Expression w/ Inverse Ghost Zones Debugging")
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("InverseGhostZone", 1)
    +DefineScalarExpression("ghostzonevar", "ghost_zoneid(" + meshName + ")")
    +ChangeActivePlotsVar("ghostzonevar")
    +DrawPlots()
    +Query("MinMax")
    +q = GetQueryOutputObject()
    +TestValueEQ("Minimum Field Value", q['min'], 1.0, Prec)
    +TestValueEQ("Maximum Field Value", q['max'], 1.0, Prec)
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/expressions_global_stats.html b/2024-12-12-22:00/poodle_trunk_parallel/expressions_global_stats.html new file mode 100644 index 000000000..41088a2ce --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/expressions_global_stats.html @@ -0,0 +1,292 @@ + +Results for expressions/global_stats.py + +

    Results of VisIt Regression Test - expressions/global_stats

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Test Average 1 for d
     3.4952032566070557 .eq. 3.4952 (prec=5) : True
    Test Average 2 for d
     3.4952032566070557 .eq. 3.4952 (prec=5) : True
    Test Maximum 1 for d
     4.955699443817139 .eq. 4.9557 (prec=5) : True
    Test Maximum 2 for d
     4.955699443817139 .eq. 4.9557 (prec=5) : True
    Test Minimum 1 for d
     2.034707546234131 .eq. 2.03471 (prec=5) : True
    Test Minimum 2 for d
     2.034707546234131 .eq. 2.03471 (prec=5) : True
    Test Number 1 for d
     36000.0 .eq. 36000 (prec=5) : True
    Test Number 2 for d
     36000.0 .eq. 36000 (prec=5) : True
    Test Root Mean Square 1 for d
     3.6005451679229736 .eq. 3.60055 (prec=5) : True
    Test Root Mean Square 2 for d
     3.6005451679229736 .eq. 3.60055 (prec=5) : True
    Test Standard Deviation 1 for d
     0.8645682334899902 .eq. 0.864568 (prec=5) : True
    Test Standard Deviation 2 for d
     0.8645682334899902 .eq. 0.864568 (prec=5) : True
    Test Sum 1 for d
     125827.3203125 .eq. 125827.3203125 (prec=5) : True
    Test Sum 2 for d
     125827.3203125 .eq. 125827.3203125 (prec=5) : True
    Test Variance 1 for d
     0.7474782466888428 .eq. 0.747478 (prec=5) : True
    Test Variance 2 for d
     0.7474782466888428 .eq. 0.747478 (prec=5) : True
    Test Average 1 for u
     -0.0023603462614119053 .eq. -0.00236035 (prec=5) : True
    Test Average 2 for u
     -0.0023603462614119053 .eq. -0.00236035 (prec=5) : True
    Test Maximum 1 for u
     1.0 .eq. 1 (prec=5) : True
    Test Maximum 2 for u
     1.0 .eq. 1 (prec=5) : True
    Test Minimum 1 for u
     -1.0 .eq. -1 (prec=5) : True
    Test Minimum 2 for u
     -1.0 .eq. -1 (prec=5) : True
    Test Number 1 for u
     39401.0 .eq. 39401 (prec=5) : True
    Test Number 2 for u
     39401.0 .eq. 39401 (prec=5) : True
    Test Root Mean Square 1 for u
     0.7401482462882996 .eq. 0.740148 (prec=5) : True
    Test Root Mean Square 2 for u
     0.7401482462882996 .eq. 0.740148 (prec=5) : True
    Test Standard Deviation 1 for u
     0.7401444911956787 .eq. 0.740144 (prec=5) : True
    Test Standard Deviation 2 for u
     0.7401444911956787 .eq. 0.740144 (prec=5) : True
    Test Sum 1 for u
     -93.0 .eq. -93 (prec=5) : True
    Test Sum 2 for u
     -93.0 .eq. -93 (prec=5) : True
    Test Variance 1 for u
     0.5478138327598572 .eq. 0.547814 (prec=5) : True
    Test Variance 2 for u
     0.5478138327598572 .eq. 0.547814 (prec=5) : True
    Test Average 1 for d
     3.4952033675857233 .eq. 3.4952 (prec=5) : True
    Test Average 2 for d
     3.4952033675857233 .eq. 3.4952 (prec=5) : True
    Test Maximum 1 for d
     4.880802119883037 .eq. 4.8808 (prec=5) : True
    Test Maximum 2 for d
     4.880802119883037 .eq. 4.8808 (prec=5) : True
    Test Minimum 1 for d
     2.1096046644241038 .eq. 2.1096 (prec=5) : True
    Test Minimum 2 for d
     2.1096046644241038 .eq. 2.1096 (prec=5) : True
    Test Number 1 for d
     988.0 .eq. 988 (prec=5) : True
    Test Number 2 for d
     988.0 .eq. 988 (prec=5) : True
    Test Root Mean Square 1 for d
     3.5904038921519654 .eq. 3.5904 (prec=5) : True
    Test Root Mean Square 2 for d
     3.5904038921519654 .eq. 3.5904 (prec=5) : True
    Test Standard Deviation 1 for d
     0.8213120771042927 .eq. 0.821312 (prec=5) : True
    Test Standard Deviation 2 for d
     0.8213120771042927 .eq. 0.821312 (prec=5) : True
    Test Sum 1 for d
     3453.2609271746946 .eq. 3453.2609271746946 (prec=5) : True
    Test Sum 2 for d
     3453.2609271746946 .eq. 3453.2609271746946 (prec=5) : True
    Test Variance 1 for d
     0.6745535279973676 .eq. 0.674554 (prec=5) : True
    Test Variance 2 for d
     0.6745535279973676 .eq. 0.674554 (prec=5) : True
    Test Average 1 for u
     0.06429317593574524 .eq. 0.0642932 (prec=5) : True
    Test Average 2 for u
     0.06429317593574524 .eq. 0.0642932 (prec=5) : True
    Test Maximum 1 for u
     1.0 .eq. 1 (prec=5) : True
    Test Maximum 2 for u
     1.0 .eq. 1 (prec=5) : True
    Test Minimum 1 for u
     -1.0 .eq. -1 (prec=5) : True
    Test Minimum 2 for u
     -1.0 .eq. -1 (prec=5) : True
    Test Number 1 for u
     1053.0 .eq. 1053 (prec=5) : True
    Test Number 2 for u
     1053.0 .eq. 1053 (prec=5) : True
    Test Root Mean Square 1 for u
     0.7151905298233032 .eq. 0.715191 (prec=5) : True
    Test Root Mean Square 2 for u
     0.7151905298233032 .eq. 0.715191 (prec=5) : True
    Test Standard Deviation 1 for u
     0.7122947573661804 .eq. 0.7122947573661804 (prec=5) : True
    Test Standard Deviation 2 for u
     0.7122947573661804 .eq. 0.7122947573661804 (prec=5) : True
    Test Sum 1 for u
     67.70071411132812 .eq. 67.70071411132812 (prec=5) : True
    Test Sum 2 for u
     67.70071411132812 .eq. 67.70071411132812 (prec=5) : True
    Test Variance 1 for u
     0.5073638558387756 .eq. 0.507364 (prec=5) : True
    Test Variance 2 for u
     0.5073638558387756 .eq. 0.507364 (prec=5) : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/expressions_global_stats_py.html b/2024-12-12-22:00/poodle_trunk_parallel/expressions_global_stats_py.html new file mode 100644 index 000000000..607fb199c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/expressions_global_stats_py.html @@ -0,0 +1,130 @@ +expressions/global_stats.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  global_stats.py
    +#
    +#  Tests:      global statistics expressions
    +#
    +#  Programmer: Justin Privitera
    +#  Date:       10/25/24
    +# ----------------------------------------------------------------------------
    +#  Description:
    +# 
    +# global statistics expressions are sensitive to ghost zones/nodes, so we test
    +# with two datasets - curv3d.silo which has no ghosts, and curv2d.silo which
    +# has ghosts. For each one, we look at the variables d (zonal) and u (nodal),
    +# since zonal and nodal variables have slightly different paths for global 
    +# stats expressions. For each variable, we look at each of the statistics on 
    +# offer.
    +# 
    +# ----------------------------------------------------------------------------
    +
    +# no ghosts in curv3d
    +curv3d_stats = {}
    +
    +# zonal stats
    +curv3d_stats["max_d"] = 4.9557
    +curv3d_stats["min_d"] = 2.03471
    +curv3d_stats["num_d"] = 36000 # num zones
    +curv3d_stats["sum_d"] = 125827.3203125
    +curv3d_stats["avg_d"] = 3.4952
    +curv3d_stats["std_d"] = 0.864568 # standard deviation
    +curv3d_stats["var_d"] = 0.747478 # variance
    +curv3d_stats["rms_d"] = 3.60055 # root mean square
    +
    +# nodal stats
    +curv3d_stats["max_u"] = 1
    +curv3d_stats["min_u"] = -1
    +curv3d_stats["num_u"] = 39401 # num nodes
    +curv3d_stats["sum_u"] = -93
    +curv3d_stats["avg_u"] = -0.00236035
    +curv3d_stats["std_u"] = 0.740144 # standard deviation
    +curv3d_stats["var_u"] = 0.547814 # variance
    +curv3d_stats["rms_u"] = 0.740148 # root mean square
    +
    +# yes ghosts in curv2d
    +curv2d_stats = {}
    +
    +# zonal stats
    +curv2d_stats["max_d"] = 4.8808
    +curv2d_stats["min_d"] = 2.1096
    +curv2d_stats["num_d"] = 988 # num zones
    +curv2d_stats["sum_d"] = 3453.2609271746946
    +curv2d_stats["avg_d"] = 3.4952
    +curv2d_stats["std_d"] = 0.821312 # standard deviation
    +curv2d_stats["var_d"] = 0.674554 # variance
    +curv2d_stats["rms_d"] = 3.5904 # root mean square
    +
    +# nodal stats
    +curv2d_stats["max_u"] = 1
    +curv2d_stats["min_u"] = -1
    +curv2d_stats["num_u"] = 1053 # num nodes
    +curv2d_stats["sum_u"] = 67.70071411132812
    +curv2d_stats["avg_u"] = 0.0642932
    +curv2d_stats["std_u"] = 0.7122947573661804 # standard deviation
    +curv2d_stats["var_u"] = 0.507364 # variance
    +curv2d_stats["rms_u"] = 0.715191 # root mean square
    +
    +baseline_stats = {}
    +baseline_stats["curvmesh3d"] = curv3d_stats
    +baseline_stats["curvmesh2d"] = curv2d_stats
    +
    +def test_stat(shortstatname, longstatname, meshname, varname, vartype):
    +        AddPlot("Pseudocolor", shortstatname + "_" + varname + "_" + vartype)
    +        DrawPlots()
    +        Query("MinMax")
    +        q = GetQueryOutputObject()
    +        # we test both the min and max because we want to ensure the variable is constant
    +        # across the mesh.
    +        if vartype == "zonal":
    +                TestValueEQ("Test " + longstatname + " 1 for " + varname, q['min'],
    +                        baseline_stats[meshname][shortstatname + "_" + varname])
    +                TestValueEQ("Test " + longstatname + " 2 for " + varname, q['max'],
    +                        baseline_stats[meshname][shortstatname + "_" + varname])
    +        else:
    +                TestValueEQ("Test " + longstatname + " 1 for " + varname, q['min'],
    +                        baseline_stats[meshname][shortstatname + "_" + varname])
    +                TestValueEQ("Test " + longstatname + " 2 for " + varname, q['max'],
    +                        baseline_stats[meshname][shortstatname + "_" + varname])
    +        DeleteAllPlots()
    +
    +def test_stats_for_var(meshname, varname, vartype):
    +        # define our expressions
    +        if vartype == "zonal":
    +                # every zone will have a value of 1
    +                DefineScalarExpression("one", "zonal_constant(" + meshname + ", 1)")
    +        else:
    +                # every node will have a value of 1
    +                DefineScalarExpression("one", "nodal_constant(" + meshname + ", 1)")
    +        DefineScalarExpression("avg_" + varname + "_" + vartype, "global_avg(" + varname + ")")
    +        DefineScalarExpression("max_" + varname + "_" + vartype, "global_max(" + varname + ")")
    +        DefineScalarExpression("min_" + varname + "_" + vartype, "global_min(" + varname + ")")
    +        DefineScalarExpression("num_" + varname + "_" + vartype, "global_sum(one)")
    +        DefineScalarExpression("rms_" + varname + "_" + vartype, "global_rms(" + varname + ")")
    +        DefineScalarExpression("std_" + varname + "_" + vartype, "global_std_dev(" + varname + ")")
    +        DefineScalarExpression("sum_" + varname + "_" + vartype, "global_sum(" + varname + ")")
    +        DefineScalarExpression("var_" + varname + "_" + vartype, "global_variance(" + varname + ")")
    +
    +        test_stat("avg", "Average",            meshname, varname, vartype)
    +        test_stat("max", "Maximum",            meshname, varname, vartype)
    +        test_stat("min", "Minimum",            meshname, varname, vartype)
    +        test_stat("num", "Number",             meshname, varname, vartype)
    +        test_stat("rms", "Root Mean Square",   meshname, varname, vartype)
    +        test_stat("std", "Standard Deviation", meshname, varname, vartype)
    +        test_stat("sum", "Sum",                meshname, varname, vartype)
    +        test_stat("var", "Variance",           meshname, varname, vartype)
    +
    +# no ghosts
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +test_stats_for_var("curvmesh3d", "d", "zonal") # zonal var
    +test_stats_for_var("curvmesh3d", "u", "nodal") # nodal var
    +CloseDatabase(silo_data_path("curv3d.silo"))
    +
    +# yes ghosts
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +test_stats_for_var("curvmesh2d", "d", "zonal") # zonal var
    +test_stats_for_var("curvmesh2d", "u", "nodal") # nodal var
    +CloseDatabase(silo_data_path("curv2d.silo"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/expressions_math_expr.html b/2024-12-12-22:00/poodle_trunk_parallel/expressions_math_expr.html new file mode 100644 index 000000000..2ea3ba1d0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/expressions_math_expr.html @@ -0,0 +1,60 @@ + +Results for expressions/math_expr.py + +

    Results of VisIt Regression Test - expressions/math_expr

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Minimum Field Value
     1.0 .eq. 1.0 (prec=5) : True
    Maximum Field Value
     1.0 .eq. 1.0 (prec=5) : True
    Minimum Field Value
     0.0 .eq. 0.0 (prec=5) : True
    Maximum Field Value
     0.0 .eq. 0.0 (prec=5) : True
    Minimum Field Value
     1.0 .eq. 1.0 (prec=5) : True
    Maximum Field Value
     1.0 .eq. 1.0 (prec=5) : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/expressions_math_expr_py.html b/2024-12-12-22:00/poodle_trunk_parallel/expressions_math_expr_py.html new file mode 100644 index 000000000..c386c5f49 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/expressions_math_expr_py.html @@ -0,0 +1,50 @@ +expressions/math_expr.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  math_expr.py
    +#
    +#  Tests:      Basic math expressions
    +#
    +#  Mark C. Miller, Fri Jul 26 14:13:43 PDT 2024
    +# ----------------------------------------------------------------------------
    +OpenDatabase(silo_data_path("globe.silo"))
    +meshName = "mesh1"
    +
    +# Test simple integer valued case first
    +DefineScalarExpression("const31", "nodal_constant(<" + meshName + ">, 31)")
    +DefineScalarExpression("const5", "nodal_constant(<" + meshName + ">, 5)")
    +DefineScalarExpression("mod1", "const31 % const5")
    +AddPlot("Pseudocolor", "mod1")
    +DrawPlots()
    +Query("MinMax")
    +q = GetQueryOutputObject()
    +TestValueEQ("Minimum Field Value", q['min'], 1.0)
    +TestValueEQ("Maximum Field Value", q['max'], 1.0)
    +DeleteAllPlots()
    +
    +# Test floating point case (zero remainder)
    +DefineScalarExpression("const7.5", "nodal_constant(<" + meshName + ">, 7.5)")
    +DefineScalarExpression("const2.5", "nodal_constant(<" + meshName + ">, 2.5)")
    +DefineScalarExpression("mod2", "const7.5 % const2.5")
    +AddPlot("Pseudocolor", "mod2")
    +DrawPlots()
    +Query("MinMax")
    +q = GetQueryOutputObject()
    +TestValueEQ("Minimum Field Value", q['min'], 0.0)
    +TestValueEQ("Maximum Field Value", q['max'], 0.0)
    +DeleteAllPlots()
    +
    +# Test floating point case (non-zero remainder)
    +DefineScalarExpression("const8.5", "nodal_constant(<" + meshName + ">, 8.5)")
    +DefineScalarExpression("const2.5", "nodal_constant(<" + meshName + ">, 2.5)")
    +DefineScalarExpression("mod3", "const8.5 % const2.5")
    +AddPlot("Pseudocolor", "mod3")
    +DrawPlots()
    +Query("MinMax")
    +q = GetQueryOutputObject()
    +TestValueEQ("Minimum Field Value", q['min'], 1.0)
    +TestValueEQ("Maximum Field Value", q['max'], 1.0)
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/expressions_tensor_expr.html b/2024-12-12-22:00/poodle_trunk_parallel/expressions_tensor_expr.html new file mode 100644 index 000000000..ba9d7abcd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/expressions_tensor_expr.html @@ -0,0 +1,194 @@ + +Results for expressions/tensor_expr.py + +

    Results of VisIt Regression Test - expressions/tensor_expr

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    2D Tensor Maximum Shear
    Maximum Shear 2D
     46.097721099853516 .eq. 46.09772 (prec=5) : True
    Maximum Shear 2D
     46.097721099853516 .eq. 46.09772 (prec=5) : True
    3D Tensor Maximum Shear
    Maximum Shear 3D
     12.5 .eq. 12.5 (prec=5) : True
    Maximum Shear 3D
     12.5 .eq. 12.5 (prec=5) : True
    2D Effective Tensor
    2D Effective Tensor
     81.24038696289062 .eq. 81.24039 (prec=5) : True
    2D Effective Tensor
     81.24038696289062 .eq. 81.24039 (prec=5) : True
    3D Effective Tensor
    Effective Tensor
     13.076696395874023 .eq. 13.0767 (prec=5) : True
    Effective Tensor
     13.076696395874023 .eq. 13.0767 (prec=5) : True
    3D, Symmetric Eigenvalues and Eigenvectors
    First Eigenvalue of 2
     2 .in. 
    [3.4142136573791504, 2.0, 0.5857864618301392]
     (prec=5, at=1) : True
    Second Eigenvalue of 2+sqrt(2)
     3.414213562373095 .in. 
    [3.4142136573791504, 2.0, 0.5857864618301392]
     (prec=5, at=0) : True
    Third Eigenvalue of 2-sqrt(2)
     0.5857864376269049 .in. 
    [3.4142136573791504, 2.0, 0.5857864618301392]
     (prec=5, at=2) : True
    First Eigenvector of (1,0,-1)
     (1, 0, -1) .in. 
    [[0.5, -0.70711, 0.5],
      [0.70711, 0.0, -0.70711],
      [0.5, 0.70711, 0.5]]
     (prec=5, at=1) : True
    Second Eigenvector of (1,-sqrt(2),1)
     (1, -1.4142135623730951, 1) .in. 
    [[0.5, -0.70711, 0.5],
      [0.70711, 0.0, -0.70711],
      [0.5, 0.70711, 0.5]]
     (prec=5, at=0) : True
    Third Eigenvector of (1,sqrt(2),1)
     (1, 1.4142135623730951, 1) .in. 
    [[0.5, -0.70711, 0.5],
      [0.70711, 0.0, -0.70711],
      [0.5, 0.70711, 0.5]]
     (prec=5, at=2) : True
    3D, Symmetric Eigenvalues and Eigenvectors with Repeated values
    First Eigenvalue of -1
     -1 .in. 
    [8.0, -1.0, -1.0]
     (prec=5, at=1) : True
    Second Eigenvalue of -1
     -1 .in. 
    [8.0, -1.0]
     (prec=5, at=1) : True
    Third Eigenvalue of 8
     8 .in. 
    [8.0, -1.0]
     (prec=5, at=0) : True
    First Eigenvector of (1,-2,0)
     (1, -2, 0) .in. 
    [[0.666667, 0.333333, 0.666667],
      [0.596285, 0.298142, -0.745356],
      [-0.447214, 0.894427, 0.0]]
     (prec=5, at=2) : True
    Second Eigenvector of (4,2,-5)
     (4, 2, -5) .in. 
    [[0.666667, 0.333333, 0.666667],
      [0.596285, 0.298142, -0.745356],
      [-0.447214, 0.894427, 0.0]]
     (prec=5, at=1) : True
    Third Eigenvector of (2,1,2)
     (2, 1, 2) .in. 
    [[0.666667, 0.333333, 0.666667],
      [0.596285, 0.298142, -0.745356],
      [-0.447214, 0.894427, 0.0]]
     (prec=5, at=0) : True
    Cross Principal Stresses and Eigenvalues
    First principal component is first eigenvalue
     -1 .in. 
    [8.0, -1.0, -1.0]
     (prec=5, at=1) : True
    Second principal component is second eigenvalue
     -1 .in. 
    [8.0, -1.0]
     (prec=5, at=1) : True
    Third principal component is third eigenvalue
     8 .in. 
    [8.0, -1.0]
     (prec=5, at=0) : True
    2D, Symmetric Eigenvalues and Eigenvectors
    First Eigenvalue of -1
     -1 .in. 
    [5.0, 0.0, -1.0]
     (prec=5, at=2) : True
    Second Eigenvalue of 5
     5 .in. 
    [5.0, 0.0, -1.0]
     (prec=5, at=0) : True
    First Eigenvector of (1,-1)
     (1, -1) .in. 
    [[0.70711, 0.70711, 0.0],
      [0.70711, -0.70711, 0.0]]
     (prec=5, at=1) : True
    Second Eigenvector of (1,1)
     (1, 1) .in. 
    [[0.70711, 0.70711, 0.0],
      [0.70711, -0.70711, 0.0]]
     (prec=5, at=0) : True
    3D, Complex Eigenvalues and Eigenvectors
    First Eigenvalue of 2
     2 .in. 
    [2.0, 1.4000000953674316, 0.19999998807907104]
     (prec=5, at=0) : True
    Second Eigenvalue of (4+3i)/5
     1.4 .in. 
    [2.0, 1.4000000953674316, 0.19999998807907104]
     (prec=5, at=1) : True
    Third Eigenvalue of (4-3i)/5
     0.2 .in. 
    [2.0, 1.4000000953674316, 0.19999998807907104]
     (prec=5, at=2) : True
    First Eigenvector of (0,0,1)
     (0, 0, 1) .in. 
    [[0.0, 0.0, 1.0],
      [0.70711, -0.70711, 0.0],
      [0.70711, 0.70711, 0.0]]
     (prec=5, at=0) : True
    Cross Check Deviatoric and Principal Stresses
    Principal deviatoric and principal-tr()/3 agree
     [6.0, -3.0, -3.0] .eq. [6.0, -3.0, -3.0]
     (prec=5) : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/expressions_tensor_expr_py.html b/2024-12-12-22:00/poodle_trunk_parallel/expressions_tensor_expr_py.html new file mode 100644 index 000000000..ad131cffe --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/expressions_tensor_expr_py.html @@ -0,0 +1,262 @@ +expressions/tensor_expr.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  tensor_expr.py
    +#
    +#  Tests:      tensor expressions using simple, constant valued tensors for
    +#              which answers are known. The known answers were obtained by
    +#              scouring the internet for example problems that were worked.
    +#
    +#  Mark C. Miller, Mon Nov 11 14:52:02 PST 2019
    +#
    +# ----------------------------------------------------------------------------
    +import math, re
    +
    +#
    +# Scans a string for possible python iterables, builds a list of them
    +# and returns them with their values rounded to specific numbers of
    +# digits.
    +#
    +def ExtractIterablesFromString(s,pair='()',rnd=4):
    +    retval = []
    +    for q in s.split(pair[0]):
    +        for r in q.split(pair[1]):
    +            if re.match('^[ 0-9eE.,+-]+$', r):
    +                retval.append([round(float(x),rnd) for x in r.split(',')])
    +    return retval
    +
    +def EqualEigVecs(a,b):
    +    r = []
    +    for i in range(len(b)):
    +        if b[i] != 0:
    +            r.append(float(a[i])/float(b[i]))
    +    if min(r) == 0:
    +        return max(r) < pow(10,-Prec+1)
    +    else:
    +        return abs((max(r)/min(r))-1) < pow(10,-Prec+1)
    +
    +#
    +# Creates a group of related expressions; 9 constant scalar expressions and
    +# from them a constant tensor expression with specified centering all in a
    +# sub-menu with of the given name. For 2D meshes, you would still create a
    +# 9 component (3x3) tensor but the z-dimension values would all be zeros.
    +#
    +def CreateConstantTensorExpr(name, meshName, constType, vals):
    +    comps = ("s11","s12","s13","s21","s22","s23","s31","s32","s33")
    +    for i in range(len(vals)):
    +        DefineScalarExpression("%s/%s"%(name,comps[i]),\
    +            "%s_constant(<%s>, %g)"%(constType,meshName,vals[i]))
    +    DefineTensorExpression("%s/tensor"%name,
    +        "{{<%s/s11>,<%s/s12>,<%s/s13>},\
    +          {<%s/s21>,<%s/s22>,<%s/s23>},\
    +          {<%s/s31>,<%s/s32>,<%s/s33>}}"%(name, name, name, name,\
    +              name, name, name, name, name))
    +
    +#
    +# Set precision for rounding operations
    +#
    +Prec = 5
    +
    +#  Since we use the expression system to construct mesh-wide constant values,
    +#  all we need as far as a database is a simple, small mesh. Maybe for both
    +#  two and three dimensions.
    +OpenDatabase(silo_data_path("arbpoly.silo"))
    +meshName = "clipped_hex"
    +
    +TestSection("2D Tensor Maximum Shear")
    +CreateConstantTensorExpr("max_shear_2d", meshName, "nodal",\
    +   (50,  30,   0,\
    +    30, -20,   0,\
    +     0,   0,   0))
    +DefineScalarExpression("max_shear_2d/result", "tensor_maximum_shear(<max_shear_2d/tensor>)")
    +AddPlot("Pseudocolor", "max_shear_2d/result")
    +DrawPlots()
    +Query("MinMax")
    +q = GetQueryOutputObject()
    +TestValueEQ("Maximum Shear 2D", q['min'], 46.09772, Prec)
    +TestValueEQ("Maximum Shear 2D", q['max'], 46.09772, Prec)
    +DeleteAllPlots()
    +
    +TestSection("3D Tensor Maximum Shear")
    +CreateConstantTensorExpr("max_shear", meshName, "nodal",\
    +   (5,   0,   0,\
    +    0,  -6, -12,\
    +    0, -12,   1))
    +DefineScalarExpression("max_shear/result", "tensor_maximum_shear(<max_shear/tensor>)")
    +AddPlot("Pseudocolor", "max_shear/result")
    +DrawPlots()
    +Query("MinMax")
    +q = GetQueryOutputObject()
    +TestValueEQ("Maximum Shear 3D", q['min'], 12.5, Prec)
    +TestValueEQ("Maximum Shear 3D", q['max'], 12.5, Prec)
    +DeleteAllPlots()
    +
    +TestSection("2D Effective Tensor")
    +CreateConstantTensorExpr("eff_tensor_2d", meshName, "nodal",\
    +   (50,  30,   0,\
    +    30, -20,   0,\
    +     0,   0,   0))
    +DefineScalarExpression("eff_tensor_2d/result", "effective_tensor(<eff_tensor_2d/tensor>)")
    +AddPlot("Pseudocolor", "eff_tensor_2d/result")
    +DrawPlots()
    +Query("MinMax")
    +q = GetQueryOutputObject()
    +TestValueEQ("2D Effective Tensor", q['min'], 81.24039, Prec)
    +TestValueEQ("2D Effective Tensor", q['max'], 81.24039, Prec)
    +DeleteAllPlots()
    +
    +TestSection("3D Effective Tensor")
    +CreateConstantTensorExpr("eff_tensor", meshName, "nodal",\
    +   (2,  -3,   4,\
    +   -3,  -5,   1,\
    +    4,   1,   6))
    +DefineScalarExpression("eff_tensor/result", "effective_tensor(<eff_tensor/tensor>)")
    +AddPlot("Pseudocolor", "eff_tensor/result")
    +DrawPlots()
    +Query("MinMax")
    +q = GetQueryOutputObject()
    +TestValueEQ("Effective Tensor", q['min'], 13.0767, Prec)
    +TestValueEQ("Effective Tensor", q['max'], 13.0767, Prec)
    +DeleteAllPlots()
    +
    +TestSection("3D, Symmetric Eigenvalues and Eigenvectors")
    +CreateConstantTensorExpr("eigvals_symm2", meshName, "nodal",\
    +    (2, -1,  0,\
    +    -1,  2, -1,\
    +     0, -1,  2))
    +DefineVectorExpression("eigvals_symm2/result", "eigenvalue(<eigvals_symm2/tensor>)")
    +AddPlot("Vector", "eigvals_symm2/result")
    +DrawPlots()
    +p = PickByNode(0,('eigvals_symm2/result',))
    +eigvals = list(p['eigvals_symm2/result'])
    +TestValueIN("First Eigenvalue of 2", eigvals, 2, Prec)
    +TestValueIN("Second Eigenvalue of 2+sqrt(2)", eigvals, 2+math.sqrt(2), Prec)
    +TestValueIN("Third Eigenvalue of 2-sqrt(2)",  eigvals, 2-math.sqrt(2), Prec)
    +DeleteAllPlots()
    +DefineTensorExpression("eigvals_symm2/result2", "transpose(eigenvector(<eigvals_symm2/tensor>))")
    +AddPlot("Tensor", "eigvals_symm2/result2")
    +DrawPlots()
    +PickByNode(0)
    +s = GetPickOutput()
    +vecs = ExtractIterablesFromString(s, '()', Prec)
    +TestValueIN("First Eigenvector of (1,0,-1)", vecs, (1,0,-1), Prec, EqualEigVecs)
    +TestValueIN("Second Eigenvector of (1,-sqrt(2),1)", vecs, (1,-math.sqrt(2),1), Prec, EqualEigVecs)
    +TestValueIN("Third Eigenvector of (1,sqrt(2),1)", vecs, (1,math.sqrt(2),1), Prec, EqualEigVecs)
    +
    +TestSection("3D, Symmetric Eigenvalues and Eigenvectors with Repeated values")
    +CreateConstantTensorExpr("eigvals_symm", meshName, "nodal",\
    +    (3,2,4,\
    +     2,0,2,\
    +     4,2,3))
    +DefineVectorExpression("eigvals_symm/result", "eigenvalue(<eigvals_symm/tensor>)")
    +AddPlot("Vector", "eigvals_symm/result")
    +DrawPlots()
    +p = PickByNode(0)
    +eigvals = list(p['eigvals_symm/result'])
    +TestValueIN("First Eigenvalue of -1", eigvals, -1, Prec)
    +eigvals.remove(-1)
    +TestValueIN("Second Eigenvalue of -1", eigvals, -1, Prec)
    +TestValueIN("Third Eigenvalue of 8", eigvals, 8, Prec)
    +DeleteAllPlots()
    +DefineTensorExpression("eigvals_symm/result2", "transpose(eigenvector(<eigvals_symm/tensor>))")
    +AddPlot("Tensor", "eigvals_symm/result2")
    +DrawPlots()
    +PickByNode(0)
    +s = GetPickOutput()
    +vecs = ExtractIterablesFromString(s, '()', Prec+1)
    +TestValueIN("First Eigenvector of (1,-2,0)", vecs, (1,-2,0), Prec, EqualEigVecs)
    +TestValueIN("Second Eigenvector of (4,2,-5)", vecs, (4,2,-5), Prec, EqualEigVecs)
    +TestValueIN("Third Eigenvector of (2,1,2)", vecs, (2,1,2), Prec, EqualEigVecs)
    +DeleteAllPlots()
    +
    +# Confirm principal_tensor function gives same result as above
    +TestSection("Cross Principal Stresses and Eigenvalues")
    +DefineVectorExpression("pcomps_symm/result", "principal_tensor(<eigvals_symm/tensor>)")
    +AddPlot("Vector", "pcomps_symm/result")
    +DrawPlots()
    +p = PickByNode(0)
    +pcomps = list(p['pcomps_symm/result'])
    +TestValueIN("First principal component is first eigenvalue", pcomps, -1, Prec)
    +pcomps.remove(-1) # elim the first of the expected two -1 eigvals
    +TestValueIN("Second principal component is second eigenvalue", pcomps, -1, Prec)
    +TestValueIN("Third principal component is third eigenvalue", pcomps, 8, Prec)
    +
    +TestSection("2D, Symmetric Eigenvalues and Eigenvectors")
    +CreateConstantTensorExpr("eigvals_symm_2d", meshName, "nodal",\
    +    (2,  3,  0,\
    +     3,  2,  0,\
    +     0,  0,  0))
    +DefineVectorExpression("eigvals_symm_2d/result", "eigenvalue(<eigvals_symm_2d/tensor>)")
    +AddPlot("Vector", "eigvals_symm_2d/result")
    +DrawPlots()
    +p = PickByNode(0,('eigvals_symm_2d/result',))
    +eigvals = list(p['eigvals_symm_2d/result'])
    +TestValueIN("First Eigenvalue of -1", eigvals, -1, Prec)
    +TestValueIN("Second Eigenvalue of 5", eigvals, 5, Prec)
    +DeleteAllPlots()
    +DefineTensorExpression("eigvals_symm_2d/result2", "transpose(eigenvector(<eigvals_symm_2d/tensor>))")
    +AddPlot("Tensor", "eigvals_symm_2d/result2")
    +DrawPlots()
    +PickByNode(0)
    +s = GetPickOutput()
    +vecs = ExtractIterablesFromString(s, '()', Prec)
    +vecs.remove([0,0,1]) # we have to take out the Z eigenvector
    +TestValueIN("First Eigenvector of (1,-1)", vecs, (1,-1), Prec, EqualEigVecs)
    +TestValueIN("Second Eigenvector of (1,1)", vecs, (1,1), Prec, EqualEigVecs)
    +
    +#
    +# Test a case where eigenvalues are complex (e.g. imaginary)
    +# The real eigenvalues are 2, (4+3i)/5, (4-3i)/5 but what you
    +# get from VisIt is 2, 7/5, 1/5 (as though i==1 in the above).
    +#
    +TestSection("3D, Complex Eigenvalues and Eigenvectors")
    +CreateConstantTensorExpr("eigvals_complex", meshName, "nodal",\
    +    (4.0/5.0, -3.0/5.0,     0,\
    +     3.0/5.0,  4.0/5.0,     0,\
    +        1,        2,        2))
    +DefineVectorExpression("eigvals_complex/result", "eigenvalue(<eigvals_complex/tensor>)")
    +AddPlot("Vector", "eigvals_complex/result")
    +DrawPlots()
    +p = PickByNode(0)
    +eigvals = list(p['eigvals_complex/result'])
    +TestValueIN("First Eigenvalue of 2", eigvals, 2, Prec)
    +TestValueIN("Second Eigenvalue of (4+3i)/5", eigvals, float(4+3)/5.0, Prec)
    +TestValueIN("Third Eigenvalue of (4-3i)/5", eigvals, float(4-3)/5.0, Prec)
    +DeleteAllPlots()
    +DefineTensorExpression("eigvals_complex/result2", "transpose(eigenvector(<eigvals_complex/tensor>))")
    +AddPlot("Tensor", "eigvals_complex/result2")
    +DrawPlots()
    +PickByNode(0)
    +s = GetPickOutput()
    +vecs = ExtractIterablesFromString(s, '()', Prec)
    +TestValueIN("First Eigenvector of (0,0,1)", vecs, (0,0,1), Prec, EqualEigVecs)
    +DeleteAllPlots()
    +
    +# Re-use eigvals_symm here
    +TestSection("Cross Check Deviatoric and Principal Stresses")
    +DefineVectorExpression("eigvals_symm/dev", "principal_deviatoric_tensor(<eigvals_symm/tensor>)")
    +AddPlot("Vector", "eigvals_symm/dev")
    +DrawPlots()
    +PickByNode(0)
    +s = GetPickOutput()
    +dev_vec = ExtractIterablesFromString(s, '()', Prec)
    +DeleteAllPlots()
    +DefineScalarExpression("eigvals_symm/tr3", "trace(<eigvals_symm/tensor>)/3.0")
    +DefineTensorExpression("eigvals_symm/tensor3",\
    +"""
    +    {{<eigvals_symm/tensor>[0][0]-<eigvals_symm/tr3>, <eigvals_symm/tensor>[0][1], <eigvals_symm/tensor>[0][2]},
    +     {<eigvals_symm/tensor>[1][0], <eigvals_symm/tensor>[1][1]-<eigvals_symm/tr3>, <eigvals_symm/tensor>[1][2]},
    +     {<eigvals_symm/tensor>[2][0], <eigvals_symm/tensor>[2][1], <eigvals_symm/tensor>[2][2]-<eigvals_symm/tr3>}}
    +"""
    +)
    +DefineVectorExpression("eigvals_symm/dev2", "principal_tensor(<eigvals_symm/tensor3>)")
    +AddPlot("Vector", "eigvals_symm/dev2")
    +DrawPlots()
    +PickByNode(0)
    +s = GetPickOutput()
    +dev2_vec = ExtractIterablesFromString(s, '()', Prec)
    +DeleteAllPlots()
    +TestValueEQ("Principal deviatoric and principal-tr()/3 agree", dev_vec[0], dev2_vec[0])
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/faulttolerance_badfile.html b/2024-12-12-22:00/poodle_trunk_parallel/faulttolerance_badfile.html new file mode 100644 index 000000000..b2c0c0d26 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/faulttolerance_badfile.html @@ -0,0 +1,40 @@ + +Results for faulttolerance/badfile.py + +

    Results of VisIt Regression Test - faulttolerance/badfile

    + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    badfile_020 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/faulttolerance_badfile_py.html b/2024-12-12-22:00/poodle_trunk_parallel/faulttolerance_badfile_py.html new file mode 100644 index 000000000..96bb47c80 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/faulttolerance_badfile_py.html @@ -0,0 +1,34 @@ +faulttolerance/badfile.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Tests: The quality of the error message being produced when opening a bad
    +#         file.
    +#
    +#  Programmer: Hank Childs
    +#  Date:       January 12, 2007
    +#
    +# ----------------------------------------------------------------------------
    +
    +import os
    +
    +TurnOnAllAnnotations()
    +
    +# Make zero-length Silo file.  The Silo reader is smart enough to not
    +# crash, which means we can test the normal error message.
    +f = open("junk.silo", "w")
    +f.close()
    +OpenDatabase("junk.silo")
    +e = GetLastError()
    +#TestText("badfile_01", e)
    +
    +# Make zero-length VTK file.  The VTK reader crashes in this case.  If the
    +# VTK reader is ever improved, then we'll have to locate a reader that
    +# crashes successfully.  (Maybe we'll write one.)
    +f = open("junk.vtk", "w")
    +f.close()
    +OpenDatabase("junk.vtk")
    +e = GetLastError()
    +TestText("badfile_02", e)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/faulttolerance_checkmode.html b/2024-12-12-22:00/poodle_trunk_parallel/faulttolerance_checkmode.html new file mode 100644 index 000000000..f6fab913c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/faulttolerance_checkmode.html @@ -0,0 +1,60 @@ + +Results for faulttolerance/checkmode.py + +

    Results of VisIt Regression Test - faulttolerance/checkmode

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    All mode strings compatible
     "True" .eq. "True" : True
    Engine matches mode
     "True" .eq. "True" : True
    Silo data path matches mode
     "True" .eq. "True" : True
    Scalable setting matches mode
     "True" .eq. "True" : True
    Icet clarg matches mode
     "True" .eq. "True" : True
    Allowdynamic clarg matches mode
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/faulttolerance_checkmode_py.html b/2024-12-12-22:00/poodle_trunk_parallel/faulttolerance_checkmode_py.html new file mode 100644 index 000000000..1eb089f37 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/faulttolerance_checkmode_py.html @@ -0,0 +1,111 @@ +faulttolerance/checkmode.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Tests: Ensures VisIt and/or the test harness is in the correct "mode".
    +#
    +#  Mark C. Miller, Mon Sep 28 16:24:44 PDT 2020
    +#
    +# Modifications:
    +#    Mark C. Miller, Mon Jan 11 10:32:17 PST 2021
    +#    Replace AssertTrue() with TestValueEQ(..., True)
    +# ----------------------------------------------------------------------------
    +import json
    +import sys
    +
    +#
    +# Obtain mode info directly from top-level command-line args passed to test
    +# suite harness and stored to "clargs" member of TestEnv.params instead of
    +# using any of the alternative logic in the test harness. This ensures we
    +# compare with actual mode(s) requested on command-line.
    +#
    +def GetModeKeysFromClArgs():
    +    clargs = json.loads(TestEnv.params["clargs"])
    +    for i in range(len(clargs)):
    +        if clargs[i] == '-m':
    +            return clargs[i+1].split(',')
    +        elif clargs[i][0:7] == '--mode=':
    +            return clargs[i][8:].split(',')
    +    return ('serial',)
    +
    +#
    +# Ensure all mode keys are compatible
    +#
    +def AllModeKeysCompatible():
    +    if 'serial' in activeModeKeys and 'parallel' in activeModeKeys:
    +        return False
    +    if 'pdb' in activeModeKeys and 'hdf5' in activeModeKeys:
    +        return False
    +    if 'icet' in activeModeKeys and 'parallel' not in activeModeKeys:
    +        return False
    +    return True
    +
    +#
    +# Check that engine matches the specified mode
    +#
    +def EngineMatchesMode():
    +    pa = GetProcessAttributes("engine")
    +    if 'parallel' in activeModeKeys:
    +        if pa.isParallel:
    +            if len(pa.pids) > 1:
    +                return True
    +    else:
    +        if not pa.isParallel:
    +            if len(pa.pids) == 1:
    +                return True
    +    return False
    +
    +#
    +# Check that Silo data path matches its mode
    +#
    +def SiloDataPathMatchesMode():
    +    if 'pdb' in activeModeKeys:
    +        if 'silo_pdb_test_data' in silo_data_path(''):
    +            return True
    +    else:
    +        if 'silo_hdf5_test_data' in silo_data_path(''):
    +            return True
    +    return False
    +
    +#
    +# Ensure rendering mode matches mode
    +#
    +def ScalableSettingMatchesMode():
    +    ra = GetRenderingAttributes()
    +    if 'scalable' in activeModeKeys:
    +        if ra.scalableActivationMode == ra.Always:
    +            return True
    +    else:
    +        if ra.scalableActivationMode == ra.Never:
    +            return True
    +    return False
    +
    +def IcetClargMatchesMode():
    +    if 'icet' in activeModeKeys and '-icet' not in sys.argv:
    +        return False
    +    if '-icet' in sys.argv and 'icet' not in activeModeKeys:
    +        return False
    +    return True
    +
    +def AllowdynamicClargMatchesMode():
    +    if 'dlb' in activeModeKeys and '-allowdynamic' not in sys.argv:
    +        return False
    +    if '-allowdynamic' in sys.argv and 'dlb' not in activeModeKeys:
    +        return False
    +    return True
    +
    +#
    +# Capture clargs and known mode keys from raw data entries stored
    +# to TestEnv.params. Do this once, now, instead of each time we
    +# need to interrogate their contents in the above functions.
    +#
    +activeModeKeys = GetModeKeysFromClArgs()
    +
    +TestValueEQ("All mode strings compatible", AllModeKeysCompatible(), True)
    +TestValueEQ("Engine matches mode", EngineMatchesMode(), True)
    +TestValueEQ("Silo data path matches mode", SiloDataPathMatchesMode(), True)
    +TestValueEQ("Scalable setting matches mode", ScalableSettingMatchesMode(), True)
    +TestValueEQ("Icet clarg matches mode", IcetClargMatchesMode(), True)
    +TestValueEQ("Allowdynamic clarg matches mode", AllowdynamicClargMatchesMode(), True)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/faulttolerance_savewindow.html b/2024-12-12-22:00/poodle_trunk_parallel/faulttolerance_savewindow.html new file mode 100644 index 000000000..35a28c29f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/faulttolerance_savewindow.html @@ -0,0 +1,40 @@ + +Results for faulttolerance/savewindow.py + +

    Results of VisIt Regression Test - faulttolerance/savewindow

    + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    SaveWindowEngineCrash0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/faulttolerance_savewindow_py.html b/2024-12-12-22:00/poodle_trunk_parallel/faulttolerance_savewindow_py.html new file mode 100644 index 000000000..7a1398148 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/faulttolerance_savewindow_py.html @@ -0,0 +1,57 @@ +faulttolerance/savewindow.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Tests: weather or not SaveWindow can result in a python exception
    +#
    +#  Programmer: Mark C. Miller
    +#  Date:       March 7, 2006 
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Tue Feb 8, 2022
    +#    Use run_dir as outputDirectory instead of current. It is in the
    +#    testing output directory and is cleaned up on exit.
    +#    Added taskkill for Windows to kill the engine.
    +#
    +# ----------------------------------------------------------------------------
    +
    +import os
    +
    +TurnOnAllAnnotations()
    +
    +swa = SaveWindowAttributes()
    +swa.outputToCurrentDirectory = 0
    +swa.outputDirectory = TestEnv.params["run_dir"]
    +SetSaveWindowAttributes(swa)
    +
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +AddPlot("Pseudocolor","pressure")
    +DrawPlots()
    +
    +pa = GetProcessAttributes("engine")
    +enginePid = int(pa.pids[0])
    +
    +s = ""
    +
    +for i in range(6):
    +    TimeSliderSetState(i)
    +    if i == 3:
    +        if sys.platform.startswith("win"):
    +            os.system("taskkill.exe /F /PID %d /T"%enginePid)
    +        else:
    +            os.system("kill -9 %d"%enginePid)
    +    try:
    +        SaveWindow()
    +    except Exception as inst:
    +        s = s + "save %d had exception \"%s\"\n"%(i,inst);
    +    else:
    +        s = s + "save %d succeeded\n"%i;
    +
    +TestText("SaveWindowEngineCrash", s)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_cinema-a.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_cinema-a.html new file mode 100644 index 000000000..253d6b0ca --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_cinema-a.html @@ -0,0 +1,108 @@ + +Results for hybrid/cinema-a.py + +

    Results of VisIt Regression Test - hybrid/cinema-a

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Cinema spec A static camera
    cinema_0_000 modifications totalling 0 lines
    cinema_0_010 modifications totalling 0 lines
    cinema_0_020 modifications totalling 0 lines
    cinema_0_030.000.00
    Cinema spec A phi-theta camera
    cinema_1_000 modifications totalling 0 lines
    cinema_1_010 modifications totalling 0 lines
    cinema_1_020 modifications totalling 0 lines
    cinema_1_030.000.00
    cinema_1_040.000.00
    cinema_1_050.000.00
    cinema_1_060.000.00
    cinema_1_070.000.00
    cinema_1_080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_cinema-a_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_cinema-a_py.html new file mode 100644 index 000000000..3752aad92 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_cinema-a_py.html @@ -0,0 +1,214 @@ +hybrid/cinema-a.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  cinema-a.py
    +#
    +#  Tests:      Tests various aspects of "visit -cinema".
    +#
    +#  Notes:      
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Feb 15 16:37:20 PST 2018
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Friday December 14, 2018
    +#    Fixes for running on Windows: Use abs_path for short_wave.visit, and cdb,
    +#    use 'repr(db)' when writing script file to preserve '\' escapes.
    +#    Replace forward-slash with back-slash in pattern.
    +#
    +#    Kathleen Biagas, Tue Jun 11 11:44:14 PDT 2019
    +#    Pass '-noconfig' to generated command line in GenerateCinema.
    +#
    +#    Kathleen Biagas, Tue Sep 14 09:51:45 PDT 2021
    +#    Added call to CloseComputeEngine to GenerateCinema method, since the
    +#    cinema script launches its own. Prevents a hang when run in parallel.
    +#
    +#    Kathleen Biagas, Tue Sep 21 17:22:58 PDT 2021
    +#    Removed CloseComputeEngine, it prevented the non-cinema-generation parts
    +#    of the test from running in parallel.  If the nightlies use srun,
    +#    add "--overlap" srun option.  This allows cinema test to succeed in
    +#    parallel with recent changes to slurm.
    +#
    +# ----------------------------------------------------------------------------
    +import os
    +import subprocess
    +
    +def GenerateCinema(cinemaArgs):
    +    args = [TestEnv.params["visit_bin"], "-noconfig", "-cinema"] + cinemaArgs
    +    if TestEnv.params["parallel"]:
    +        args = args + ["-np", "2", "-l", TestEnv.params["parallel_launch"]]
    +        if TestEnv.params["parallel_launch"] == "srun":
    +            args = args + ["-la", "--overlap"]
    +    p = subprocess.check_output(args)
    +    return p
    +
    +def GetFileList(path0):
    +    def gfl(path):
    +        outfiles = []
    +        files = os.listdir(path)
    +        for f in sorted(files):
    +            fpath = os.path.join(path, f)
    +            if os.path.isdir(fpath):
    +                outfiles = outfiles + gfl(fpath)
    +            else:
    +                outfiles = outfiles + [fpath[lpath0+1:]]
    +        return outfiles
    +    lpath0 = len(path0)
    +    return gfl(path0)
    +
    +def ListToString(files):
    +    s = ""
    +    for f in files:
    +        s += f
    +        s += "\n"
    +    return s
    +
    +def GetFile(manyfilenames, filename):
    +    for f in manyfilenames:
    +        if f.find(filename) != -1:
    +            return f
    +    return ""
    +
    +def ReadTextFile(filename):
    +    lines = open(filename, "rt").readlines()
    +    s = ""
    +    for line in lines:
    +        s += line
    +    return s
    +
    +def test0(db):
    +    TestSection("Cinema spec A static camera")
    +    f = open("test0.py", "wt")
    +    f.write("OpenDatabase(%s)\n" % repr(db))
    +    f.write('AddPlot("Pseudocolor", "pressure")\n')
    +    f.write('DrawPlots()\n')
    +    f.write('v = GetView3D()\n')
    +    f.write('v.viewNormal = (-0.569392, 0.672931, 0.472183)\n')
    +    f.write('v.focus = (5, 0.353448, 2.5)\n')
    +    f.write('v.viewUp = (0.562941, 0.737756, -0.372577)\n')
    +    f.write('v.viewAngle = 30\n')
    +    f.write('v.parallelScale = 5.6009\n')
    +    f.write('v.nearPlane = -11.2018\n')
    +    f.write('v.farPlane = 11.2018\n')
    +    f.write('v.imagePan = (0.0431021, 0.0442006)\n')
    +    f.write('v.imageZoom = 1.06444\n')
    +    f.write('v.perspective = 1\n')
    +    f.write('v.eyeAngle = 2\n')
    +    f.write('v.centerOfRotationSet = 0\n')
    +    f.write('v.centerOfRotation = (5, 0.353448, 2.5)\n')
    +    f.write('v.axis3DScaleFlag = 0\n')
    +    f.write('v.axis3DScales = (1, 1, 1)\n')
    +    f.write('v.shear = (0, 0, 1)\n')
    +    f.write('v.windowValid = 1\n')
    +    f.write('SetView3D(v)\n')
    +    f.write('a = GetAnnotationAttributes()\n')
    +    f.write('a.axes3D.visible = 0\n')
    +    f.write('a.axes3D.bboxFlag = 0\n')
    +    f.write('a.axes3D.triadFlag = 0\n')
    +    f.write('a.legendInfoFlag = 0\n')
    +    f.write('a.databaseInfoFlag = 0\n')
    +    f.write('a.userInfoFlag = 0\n')
    +    f.write('SetAnnotationAttributes(a)\n')
    +    f.close()
    +
    +    cdb = abs_path(TestEnv.params["run_dir"], "test0.cdb")
    +    sz = "%dx%d" % (TestEnv.params["width"], TestEnv.params["height"])
    +    args = ["-specification", "A", "-scriptfile", "test0.py", "-output", cdb, "-format", "png", "-geometry", sz, "-camera", "static"]
    +    TestText("cinema_0_00", ListToString(args))
    +
    +    output = GenerateCinema(args)
    +
    +    files = GetFileList(cdb)
    +    TestText("cinema_0_01", ListToString(files))
    +
    +    json = ReadTextFile(os.path.join(cdb, GetFile(files, "info.json")))
    +    TestText("cinema_0_02", json)
    +
    +    firstimg = os.path.join(cdb, GetFile(files, ".png"))
    +    OpenDatabase(firstimg)
    +    AddPlot("Truecolor", "color")
    +    DrawPlots()
    +    v = GetView2D()
    +    v.viewportCoords = (0,1,0,1)
    +    SetView2D(v)
    +    Test("cinema_0_03")
    +    DeleteAllPlots()
    +    CloseDatabase(firstimg)
    +
    +def test1(db):
    +    TestSection("Cinema spec A phi-theta camera")
    +    f = open("test1.py", "wt")
    +    f.write("OpenDatabase(%s)\n" % repr(db))
    +    f.write('AddPlot("Pseudocolor", "pressure")\n')
    +    f.write('DrawPlots()\n')
    +    f.write('a = GetAnnotationAttributes()\n')
    +    f.write('a.axes3D.visible = 0\n')
    +    f.write('a.axes3D.bboxFlag = 0\n')
    +    f.write('a.axes3D.triadFlag = 0\n')
    +    f.write('a.legendInfoFlag = 0\n')
    +    f.write('a.databaseInfoFlag = 0\n')
    +    f.write('a.userInfoFlag = 0\n')
    +    f.write('SetAnnotationAttributes(a)\n')
    +    f.close()
    +
    +    cdb = abs_path(TestEnv.params["run_dir"], "test1.cdb")
    +
    +    sz = "%dx%d" % (TestEnv.params["width"], TestEnv.params["height"])
    +    args = ["-specification", "A", "-scriptfile", "test1.py", "-output", cdb, "-format", "png", "-geometry", sz, "-camera", "phi-theta", "-phi", "6", "-theta", "5", "-stride", "3"]
    +    TestText("cinema_1_00", ListToString(args))
    +
    +    output = GenerateCinema(args)
    +
    +    files = GetFileList(cdb)
    +    TestText("cinema_1_01", ListToString(files))
    +
    +    json = ReadTextFile(os.path.join(cdb, GetFile(files, "info.json")))
    +    TestText("cinema_1_02", json)
    +
    +    # Use the JSON to come up with some filenames to plot. We will vary phi.
    +    params = eval(json)
    +    theta_values = [str(x) for x in params["arguments"]["theta"]["values"]]
    +    phi_values = [str(x) for x in  params["arguments"]["phi"]["values"]]
    +    time_values = params["arguments"]["time"]["values"]
    +
    +    theta = theta_values[len(theta_values)//4]
    +    time = time_values[0]
    +    i = 3
    +    for phi in phi_values:
    +        pattern = params["name_pattern"]
    +        if sys.platform.startswith("win"):
    +            pattern = pattern.replace("/", "\\")
    +        name = pattern.replace("{phi}", phi)
    +        name = name.replace("{theta}", theta)
    +        name = name.replace("{time}", time)
    +
    +        img = os.path.join(cdb, GetFile(files, name))
    +        OpenDatabase(img)
    +        AddPlot("Truecolor", "color")
    +        DrawPlots()
    +        v = GetView2D()
    +        v.viewportCoords = (0,1,0,1)
    +        SetView2D(v)
    +        Test("cinema_1_%02d" % i)
    +        DeleteAllPlots()
    +        CloseDatabase(img)
    +        i = i + 1
    +
    +def MakeShortWave():
    +    db = abs_path("short_wave.visit")
    +    f = open(db, "wt")
    +    for i in range(0, 700, 100):
    +        f.write(silo_data_path("wave%04d.silo" % i) + "\n")
    +    f.close()
    +    return os.path.abspath(db)
    +
    +def main():
    +    db = MakeShortWave()
    +    test0(db)
    +    test1(db)
    +
    +    os.unlink(db)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_cinema-c.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_cinema-c.html new file mode 100644 index 000000000..ed017ddf4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_cinema-c.html @@ -0,0 +1,210 @@ + +Results for hybrid/cinema-c.py + +

    Results of VisIt Regression Test - hybrid/cinema-c

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Cinema spec C static camera
    cinema_2_000 modifications totalling 0 lines
    cinema_2_010 modifications totalling 0 lines
    cinema_2_020 modifications totalling 0 lines
    cinema_2_03_lum0.000.00
    cinema_2_03_z0.000.00
    cinema_2_03_pressure0.000.00
    cinema_2_03_v0.000.00
    cinema_2_04_lum0.000.00
    cinema_2_04_z0.000.00
    cinema_2_04_pressure0.000.00
    cinema_2_04_v0.000.00
    Cinema spec C phi-theta camera
    cinema_3_000 modifications totalling 0 lines
    cinema_3_010 modifications totalling 0 lines
    cinema_3_020 modifications totalling 0 lines
    cinema_3_03_lum0.000.00
    cinema_3_03_z0.000.00
    cinema_3_03_pressure0.000.00
    cinema_3_03_v0.000.00
    cinema_3_04_lum0.000.00
    cinema_3_04_z0.000.00
    cinema_3_04_pressure0.000.00
    cinema_3_04_v0.000.00
    cinema_3_05_lum0.000.00
    cinema_3_05_z0.000.00
    cinema_3_05_pressure0.000.00
    cinema_3_05_v0.000.00
    cinema_3_06_lum0.000.00
    cinema_3_06_z0.000.00
    cinema_3_06_pressure0.000.00
    cinema_3_06_v0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_cinema-c_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_cinema-c_py.html new file mode 100644 index 000000000..7d998719b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_cinema-c_py.html @@ -0,0 +1,258 @@ +hybrid/cinema-c.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  cinema-a.py
    +#
    +#  Tests:      Tests various aspects of "visit -cinema".
    +#
    +#  Notes:      
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Feb 15 16:37:20 PST 2018
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Tue Jun 11 11:44:14 PDT 2019
    +#    Pass '-noconfig' to generated command line in GenerateCinema.
    +#
    +#    Kathleen Biagas, Tue Apr 13 2021
    +#    Port to python-3. Fix for Windows: Use abs_path for short_wave.visit,
    +#    use 'repr(db)' when writing script file to preserve '\' escapes.
    +#
    +#    Kathleen Biagas, Tue Sep 14 09:51:45 PDT 2021
    +#    Added call to CloseComputeEngine to GenerateCinema method, since the
    +#    cinema script launches its own. Prevents a hang when run in parallel.
    +#
    +#    Kathleen Biagas, Tue Sep 21 17:22:58 PDT 2021
    +#    Removed CloseComputeEngine, it prevented the non-cinema-generation parts
    +#    of the test from running in parallel.  If the nightlies use srun,
    +#    add "--overlap" srun option.  This allows cinema test to succeed in
    +#    parallel with recent changes to slurm.
    +#
    +# ----------------------------------------------------------------------------
    +
    +import math, os, string, subprocess, zlib
    +
    +def GenerateCinema(cinemaArgs):
    +    args = [TestEnv.params["visit_bin"], "-noconfig", "-cinema"] + cinemaArgs
    +    if TestEnv.params["parallel"]:
    +        args = args + ["-np", "2", "-l", TestEnv.params["parallel_launch"]]
    +        if TestEnv.params["parallel_launch"] == "srun":
    +            args = args + ["-la", "--overlap"]
    +    p = subprocess.check_output(args)
    +    return p
    +
    +def GetFileList(path0):
    +    def gfl(path):
    +        outfiles = []
    +        files = os.listdir(path)
    +        for f in sorted(files):
    +            fpath = os.path.join(path, f)
    +            if os.path.isdir(fpath):
    +                outfiles = outfiles + gfl(fpath)
    +            else:
    +                outfiles = outfiles + [fpath[lpath0+1:]]
    +        return outfiles
    +    lpath0 = len(path0)
    +    return gfl(path0)
    +
    +def ListToString(files):
    +    s = ""
    +    for f in files:
    +        s += f
    +        s += "\n"
    +    return s
    +
    +def GetFile(manyfilenames, filename):
    +    for f in manyfilenames:
    +        if f.find(filename) != 0:
    +            return f
    +    return ""
    +
    +def ReadTextFile(filename):
    +    lines = open(filename, "rt").readlines()
    +    s = ""
    +    for line in lines:
    +        s += line
    +    return s
    +
    +def write_setup_plot(f):
    +    f.write('AddPlot("Pseudocolor", "pressure")\n')
    +    f.write('AddOperator("Clip")\n')
    +    f.write('clip = GetOperatorOptions(0)\n')
    +    f.write('clip.plane1Normal = (0,0,1)\n')
    +    f.write('clip.plane1Origin = (0,0,2.5)\n')
    +    f.write('SetOperatorOptions(clip)\n')
    +    f.write('AddPlot("Pseudocolor", "pressure", 1, 1)\n')
    +    f.write('clip.plane1Normal = (0,0,-1)\n')
    +    f.write('SetOperatorOptions(clip)\n')
    +    f.write('DrawPlots()\n')
    +    f.write('a = GetAnnotationAttributes()\n')
    +    f.write('a.axes3D.visible = 0\n')
    +    f.write('a.axes3D.bboxFlag = 0\n')
    +    f.write('a.axes3D.triadFlag = 0\n')
    +    f.write('a.legendInfoFlag = 0\n')
    +    f.write('a.databaseInfoFlag = 0\n')
    +    f.write('a.userInfoFlag = 0\n')
    +    f.write('a.backgroundColor=(0,0,0,255)\n')
    +    f.write('a.backgroundMode=a.Solid\n')
    +    f.write('SetAnnotationAttributes(a)\n')
    +
    +def test_Z_file(testname, varname, imagefilename, domask):
    +    """
    +    Decompress a float32 buffer, make a BOV file from it, and plot it.
    +    """
    +    cbytes = open(imagefilename, "rb").read()
    +    fbytes = zlib.decompress(cbytes)
    +    datfile = testname + ".dat"
    +    bovfile = testname + ".bov"
    +    f = open(datfile, "wb")
    +    f.write(fbytes)
    +    f.close()
    +    imagesize = int(math.sqrt(len(fbytes)/4))
    +    f = open(bovfile, "wt")
    +    f.write("TIME: 0\n")
    +    f.write("DATA_FILE: %s\n" % datfile)
    +    f.write("DATA_SIZE: %d %d 1\n" % (imagesize, imagesize))
    +    f.write("DATA_FORMAT: FLOAT\n")
    +    f.write("VARIABLE: %s\n" % varname)
    +    f.write("DATA_ENDIAN: LITTLE\n")
    +    f.write("CENTERING: zonal\n")
    +    f.write("BRICK_ORIGIN: 0 0 0\n")
    +    f.write("BRICK_SIZE: 1 1 1\n")
    +    f.close()
    +    OpenDatabase(bovfile)
    +    if domask:
    +        # Mask out values larger than 255 so we can see the values.
    +        # I'd mask on Z but I don't want to do cmfe.
    +        DefineScalarExpression("maskvar", "if(gt(%s, 255), 0., %s)" % (varname,varname))
    +        AddPlot("Pseudocolor", "maskvar")
    +    else:
    +        AddPlot("Pseudocolor", varname)
    +    AddOperator("Transform")
    +    t = TransformAttributes()
    +    t.doScale = 1
    +    t.scaleY = -1
    +    SetOperatorOptions(t)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView2D()
    +    v.viewportCoords = (0,1,0,1)
    +    SetView2D(v)
    +    Test(testname + "_" + varname)
    +    DeleteAllPlots()
    +    CloseDatabase(bovfile)
    +
    +    os.unlink(datfile)
    +    os.unlink(bovfile)
    +
    +def test_composite(testname, imagepath, scalars):
    +    """
    +    Make test images for a composite image.
    +    """
    +    img0 = os.path.join(imagepath, "image=0.png")
    +    img1 = os.path.join(imagepath, "image=1.Z")
    +    OpenDatabase(img0)
    +    AddPlot("Truecolor", "color")
    +    DrawPlots()
    +    ResetView()
    +    v = GetView2D()
    +    v.viewportCoords = (0,1,0,1)
    +    SetView2D(v)
    +    Test(testname + "_lum")
    +    DeleteAllPlots()
    +    CloseDatabase(img0)
    +
    +    test_Z_file(testname, "z", os.path.join(imagepath, "image=1.Z"), 0)
    +    idx = 2
    +    for s in scalars:
    +        test_Z_file(testname, s, os.path.join(imagepath, "image=%d.Z" % idx), 1)
    +        idx = idx + 1
    +
    +def test2(db):
    +    TestSection("Cinema spec C static camera")
    +    f = open("test2.py", "wt")
    +    f.write('OpenDatabase(%s)\n' % repr(db))
    +    write_setup_plot(f)
    +    f.write('v = GetView3D()\n')
    +    f.write('v.viewNormal = (-0.569392, 0.672931, 0.472183)\n')
    +    f.write('v.focus = (5, 0.353448, 2.5)\n')
    +    f.write('v.viewUp = (0.562941, 0.737756, -0.372577)\n')
    +    f.write('v.viewAngle = 30\n')
    +    f.write('v.parallelScale = 5.6009\n')
    +    f.write('v.nearPlane = -11.2018\n')
    +    f.write('v.farPlane = 11.2018\n')
    +    f.write('v.imagePan = (0.0431021, 0.0442006)\n')
    +    f.write('v.imageZoom = 1.06444\n')
    +    f.write('v.perspective = 1\n')
    +    f.write('v.eyeAngle = 2\n')
    +    f.write('v.centerOfRotationSet = 0\n')
    +    f.write('v.centerOfRotation = (5, 0.353448, 2.5)\n')
    +    f.write('v.axis3DScaleFlag = 0\n')
    +    f.write('v.axis3DScales = (1, 1, 1)\n')
    +    f.write('v.shear = (0, 0, 1)\n')
    +    f.write('v.windowValid = 1\n')
    +    f.write('SetView3D(v)\n')
    +    f.close()
    +
    +    cdb = "test2.cdb"
    +    scalars = ("pressure", "v")
    +    sz = "%dx%d" % (TestEnv.params["width"], TestEnv.params["height"])
    +    args = ["-specification", "C", "-docomposite", "-scriptfile", "test2.py", "-output", cdb, "-format", "png", "-geometry", sz, "-camera", "static", "-var", scalars[0], "-var", scalars[1]]
    +    TestText("cinema_2_00", ListToString(args))
    +
    +    output = GenerateCinema(args)
    +
    +    files = GetFileList(cdb)
    +    TestText("cinema_2_01", ListToString(files))
    +
    +    json = ReadTextFile(os.path.join(cdb, GetFile(files, "info.json")))
    +    TestText("cinema_2_02", json)
    +
    +    # Test a couple of composite images
    +    test_composite("cinema_2_03", os.path.join(cdb, "image","time=3","vis=0"), scalars)
    +    test_composite("cinema_2_04", os.path.join(cdb, "image","time=3","vis=1"), scalars)
    +
    +
    +def test3(db):
    +    TestSection("Cinema spec C phi-theta camera")
    +    f = open("test3.py", "wt")
    +    f.write('OpenDatabase(%s)\n' % repr(db))
    +    write_setup_plot(f)
    +    f.close()
    +
    +    cdb = "test3.cdb"
    +    scalars = ("pressure", "v")
    +    sz = "%dx%d" % (TestEnv.params["width"], TestEnv.params["height"])
    +    args = ["-specification", "C", "-docomposite", "-scriptfile", "test3.py", "-output", cdb, "-format", "png", "-geometry", sz, "-camera", "phi-theta", "-phi", "6", "-theta", "5", "-var", scalars[0], "-var", scalars[1]]
    +    TestText("cinema_3_00", ListToString(args))
    +
    +    output = GenerateCinema(args)
    +
    +    files = GetFileList(cdb)
    +    TestText("cinema_3_01", ListToString(files))
    +
    +    json = ReadTextFile(os.path.join(cdb, GetFile(files, "info.json")))
    +    TestText("cinema_3_02", json)
    +
    +    # Test a couple of composite images
    +    test_composite("cinema_3_03", os.path.join(cdb, "image","phi=0","theta=0","time=0","vis=0"), scalars)
    +    test_composite("cinema_3_04", os.path.join(cdb, "image","phi=0","theta=0","time=0","vis=1"), scalars)
    +    test_composite("cinema_3_05", os.path.join(cdb, "image","phi=3","theta=1","time=0","vis=0"), scalars)
    +    test_composite("cinema_3_06", os.path.join(cdb, "image","phi=3","theta=1","time=0","vis=1"), scalars)
    +
    +
    +def MakeShortWave(incr):
    +    db = abs_path("short_wave.visit")
    +    f = open(db, "wt")
    +    for i in range(0, 700, incr):
    +        f.write(silo_data_path("wave%04d.silo" % i) + "\n")
    +    f.close()
    +    return os.path.abspath(db)
    +
    +def main():
    +    test2(MakeShortWave(100))
    +    test3(MakeShortWave(500))
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_cleanzonesonly.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_cleanzonesonly.html new file mode 100644 index 000000000..f0d7a35f2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_cleanzonesonly.html @@ -0,0 +1,120 @@ + +Results for hybrid/cleanzonesonly.py + +

    Results of VisIt Regression Test - hybrid/cleanzonesonly

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Multicolor mode
    hybrid_cleanzonesonly_010.000.00
    hybrid_cleanzonesonly_020.000.00
    hybrid_cleanzonesonly_030.000.00
    Continuous colortable mode
    hybrid_cleanzonesonly_040.000.00
    hybrid_cleanzonesonly_050.000.00
    hybrid_cleanzonesonly_060.000.00
    Discrete colortable mode
    hybrid_cleanzonesonly_070.000.00
    hybrid_cleanzonesonly_080.000.00
    hybrid_cleanzonesonly_090.000.00
    Singlecolor mode
    hybrid_cleanzonesonly_100.000.00
    hybrid_cleanzonesonly_110.000.00
    hybrid_cleanzonesonly_120.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_cleanzonesonly_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_cleanzonesonly_py.html new file mode 100644 index 000000000..2ce74461c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_cleanzonesonly_py.html @@ -0,0 +1,135 @@ +hybrid/cleanzonesonly.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  cleanzonesonly.py
    +#
    +#  Tests:      plots     - filled boundary
    +#
    +#  Defect ID:  '5135
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       July  6, 2004
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +# Turn off all annotation
    +a = AnnotationAttributes()
    +TurnOffAllAnnotations(a)
    +SetAnnotationAttributes(a)
    +
    +# -----------------------------------------------------------------------------
    +#    multicolor mode -- normal plot, then CZO on, then CZO off
    +# -----------------------------------------------------------------------------
    +TestSection("Multicolor mode")
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +AddPlot("FilledBoundary", "mat1");
    +DrawPlots()
    +
    +v=GetView2D()
    +v.viewportCoords=(0.3, 0.9, 0.15, 0.9)
    +SetView2D(v)
    +
    +Test("hybrid_cleanzonesonly_01")
    +
    +m = FilledBoundaryAttributes()
    +m.cleanZonesOnly = 1
    +SetPlotOptions(m)
    +
    +Test("hybrid_cleanzonesonly_02")
    +
    +m.cleanZonesOnly = 0
    +SetPlotOptions(m)
    +
    +Test("hybrid_cleanzonesonly_03")
    +
    +DeleteAllPlots()
    +
    +# -----------------------------------------------------------------------------
    +#    continuous colortable mode -- normal plot, then CZO on, then CZO off
    +# -----------------------------------------------------------------------------
    +TestSection("Continuous colortable mode")
    +AddPlot("FilledBoundary", "mat1");
    +
    +m = FilledBoundaryAttributes();
    +m.colorType = m.ColorByColorTable
    +m.colorTableName = 'calewhite'
    +m.mixedColor=(0,100,100,255)
    +SetPlotOptions(m)
    +DrawPlots()
    +
    +Test("hybrid_cleanzonesonly_04")
    +
    +m = FilledBoundaryAttributes()
    +m.cleanZonesOnly = 1
    +SetPlotOptions(m)
    +
    +Test("hybrid_cleanzonesonly_05")
    +
    +m.cleanZonesOnly = 0
    +SetPlotOptions(m)
    +
    +Test("hybrid_cleanzonesonly_06")
    +
    +DeleteAllPlots()
    +
    +# -----------------------------------------------------------------------------
    +#    discrete colortable mode -- normal plot, then CZO on, then CZO off
    +# -----------------------------------------------------------------------------
    +TestSection("Discrete colortable mode")
    +AddPlot("FilledBoundary", "mat1");
    +
    +m = FilledBoundaryAttributes();
    +m.colorType = m.ColorByColorTable
    +m.colorTableName = 'levels'
    +m.mixedColor=(0,0,0,255)
    +SetPlotOptions(m)
    +DrawPlots()
    +
    +Test("hybrid_cleanzonesonly_07")
    +
    +m = FilledBoundaryAttributes()
    +m.cleanZonesOnly = 1
    +SetPlotOptions(m)
    +
    +Test("hybrid_cleanzonesonly_08")
    +
    +m.cleanZonesOnly = 0
    +SetPlotOptions(m)
    +
    +Test("hybrid_cleanzonesonly_09")
    +
    +DeleteAllPlots()
    +
    +# -----------------------------------------------------------------------------
    +#    singlecolor mode -- normal plot, then CZO on, then CZO off
    +# -----------------------------------------------------------------------------
    +TestSection("Singlecolor mode")
    +AddPlot("FilledBoundary", "mat1");
    +
    +m = FilledBoundaryAttributes();
    +m.colorType = m.ColorBySingleColor
    +m.singleColor = (255, 0, 0, 255)
    +SetPlotOptions(m)
    +DrawPlots()
    +
    +Test("hybrid_cleanzonesonly_10")
    +
    +m = FilledBoundaryAttributes()
    +m.cleanZonesOnly = 1
    +SetPlotOptions(m)
    +
    +Test("hybrid_cleanzonesonly_11")
    +
    +m.cleanZonesOnly = 0
    +SetPlotOptions(m)
    +
    +Test("hybrid_cleanzonesonly_12")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_clonefirstref.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_clonefirstref.html new file mode 100644 index 000000000..b1e7548c5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_clonefirstref.html @@ -0,0 +1,72 @@ + +Results for hybrid/clonefirstref.py + +

    Results of VisIt Regression Test - hybrid/clonefirstref

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    clonefirstref_000.000.00
    clonefirstref_010 modifications totalling 0 lines
    clonefirstref_020.000.00
    clonefirstref_030.000.00
    clonefirstref_040 modifications totalling 0 lines
    clonefirstref_050.000.00
    clonefirstref_060 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_clonefirstref_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_clonefirstref_py.html new file mode 100644 index 000000000..c751f7160 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_clonefirstref_py.html @@ -0,0 +1,62 @@ +hybrid/clonefirstref.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  clonefirstref.py
    +#
    +#  Tests:      mesh      - 2D, curvilinear, single domain
    +#              plots     - FilledBoundary
    +#              databases - PDB
    +#
    +#  Purpose:    This test case tests the viewer's ability to consider a window
    +#              that had been referenced as unreferenced if its plot list has
    +#              no active source.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Feb 18 14:01:48 PST 2005
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Look at the first few lines of the string representation of the
    +# WindowInformation to see the list of time sliders, etc.
    +#
    +def TestWindowInformation(testname):
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 5 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    for i in range(5):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    TestText(testname, s)
    +
    +SetCloneWindowOnFirstRef(1)
    +SetWindowLayout(2)
    +SetActiveWindow(2)
    +OpenDatabase(data_path("pdb_test_data/dbB00.pdb"))
    +
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +Test("clonefirstref_00")
    +TestWindowInformation("clonefirstref_01")
    +
    +# Make sure that the database and time sliders, etc got copied to window 1,
    +# even though it had been "referenced" already. Without the fix, VisIt used
    +# to complain about no database being open.
    +SetActiveWindow(1)
    +Test("clonefirstref_02")
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +Test("clonefirstref_03")
    +TestWindowInformation("clonefirstref_04")
    +
    +# Make sure that we can move through time.
    +SetTimeSliderState(5)
    +Test("clonefirstref_05")
    +TestWindowInformation("clonefirstref_06")
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_conditional.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_conditional.html new file mode 100644 index 000000000..f5afb865b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_conditional.html @@ -0,0 +1,72 @@ + +Results for hybrid/conditional.py + +

    Results of VisIt Regression Test - hybrid/conditional

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    conditional_010.000.00
    conditional_020.000.00
    conditional_030.000.00
    conditional_040.000.00
    conditional_050.000.00
    conditional_060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_conditional_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_conditional_py.html new file mode 100644 index 000000000..73b260332 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_conditional_py.html @@ -0,0 +1,96 @@ +hybrid/conditional.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  expressions.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, single domain
    +#              plots     - Pseudocolor
    +#              operators - Threshold
    +#
    +#  Defect ID:  '3655
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 21, 2003
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Eddie Rusu, Tue Apr 13 12:08:59 PDT 2021
    +#    Changed Pseudocolor CurrentPlot to ActualData.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +
    +DefineScalarExpression("bigun", 'if(and(gt(nmats(mat1), 1.), gt(matvf(mat1, "4"), 0.)), d, 0.)')
    +
    +AddPlot("Pseudocolor", "bigun")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.17, 0.74, 0.64)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.31, 0.65, -0.68)
    +v.parallelScale = 0.866
    +v.nearPlane = -1.73
    +v.farPlane = 1.73
    +SetView3D(v)
    +
    +Test("conditional_01")
    +
    +t = ThresholdAttributes()
    +t.lowerBounds = (0.01)
    +t.upperBounds = (0.99)
    +SetDefaultOperatorOptions(t)
    +AddOperator("Threshold")
    +
    +pc_atts = PseudocolorAttributes()
    +pc_atts.limitsMode = pc_atts.ActualData
    +SetPlotOptions(pc_atts)
    +DrawPlots()
    +Test("conditional_02")
    +
    +DeleteAllPlots()
    +
    +DefineVectorExpression("vel2", "{ if(lt(u, 0), u, -u/2), if(gte(v, -0.333), v, -v/4), w}")
    +AddPlot("Vector", "vel2")
    +vec_atts = VectorAttributes()
    +vec_atts.nVectors = 100
    +SetPlotOptions(vec_atts)
    +DrawPlots()
    +
    +Test("conditional_03")
    +
    +DeleteAllPlots()
    +
    +DefineScalarExpression("eq", "if(eq(u, v), abs(w), 0.)")
    +AddPlot("Pseudocolor", "eq")
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("conditional_04")
    +
    +DefineScalarExpression("close", "if(lte(abs(u-v), 0.05), abs(w), 0.)")
    +ChangeActivePlotsVar("close")
    +
    +Test("conditional_05")
    +
    +
    +DefineScalarExpression("close_and_far", "if(or(lte(abs(u-v), 0.05), gte(abs(u-v), 1.)), abs(w), 0.)")
    +ChangeActivePlotsVar("close_and_far")
    +
    +Test("conditional_06")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_conn_cmfe.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_conn_cmfe.html new file mode 100644 index 000000000..f45ca43cb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_conn_cmfe.html @@ -0,0 +1,102 @@ + +Results for hybrid/conn_cmfe.py + +

    Results of VisIt Regression Test - hybrid/conn_cmfe

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    conn_cmfe_010.000.00
    conn_cmfe_020.000.00
    conn_cmfe_030.000.00
    conn_cmfe_040 modifications totalling 0 lines
    conn_cmfe_050 modifications totalling 0 lines
    conn_cmfe_060 modifications totalling 0 lines
    conn_cmfe_070 modifications totalling 0 lines
    conn_cmfe_080 modifications totalling 0 lines
    conn_cmfe_090.000.00
    conn_cmfe_100 modifications totalling 0 lines
    conn_cmfe_110 modifications totalling 0 lines
    conn_cmfe_120.000.00
    conn_cmfe_130 modifications totalling 0 lines
    conn_cmfe_140 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_conn_cmfe_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_conn_cmfe_py.html new file mode 100644 index 000000000..bb9dd1bfe --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_conn_cmfe_py.html @@ -0,0 +1,138 @@ +hybrid/conn_cmfe.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  conn_cmfe.py
    +#
    +#  Defect ID:  '6616
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 30, 2005
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Tue Sep 20 13:15:11 PDT 2005
    +#    Test for non-existent databases, especially those with short names ['6616]
    +#
    +#    Hank Childs, Fri Oct  7 17:14:07 PDT 2005
    +#    Test error message for Eulerian material selection.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Cyrus Harrison, Wed Aug 25 14:25:13 PDT 2010
    +#    SIL id shift (from 1 to 2) due to changes in SIL generation.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("wave0200.silo"))
    +
    +
    +
    +# Test general capability.
    +DefineScalarExpression("cmfe", "conn_cmfe(<%s:pressure>, quadmesh)" % cmfe_silo_data_path("wave0020.silo"))
    +AddPlot("Pseudocolor", "cmfe")
    +DrawPlots()
    +Test("conn_cmfe_01")
    +
    +# Test using the expression as a secondary variable.
    +ChangeActivePlotsVar("pressure")
    +AddOperator("Threshold")
    +t = ThresholdAttributes()
    +t.lowerBounds = (-1.0)
    +t.upperBounds = (0.1)
    +t.listedVarNames = ("cmfe")
    +SetOperatorOptions(t)
    +DrawPlots()
    +Test("conn_cmfe_02")
    +
    +# Test using cmfe in another expression.
    +DefineVectorExpression("disp", "{0, 3*cmfe, 0}")
    +RemoveLastOperator()
    +d = DisplaceAttributes()
    +d.variable = "disp"
    +SetDefaultOperatorOptions(d)
    +AddOperator("Displace")
    +DrawPlots()
    +Test("conn_cmfe_03")
    +
    +RemoveLastOperator()
    +ChangeActivePlotsVar("cmfe")
    +DrawPlots()
    +
    +Query("MinMax")
    +t = GetQueryOutputString()
    +TestText("conn_cmfe_04", t)
    +
    +# Now test error conditions.
    +DefineScalarExpression("cmfe2", "conn_cmfe(pressure, quadmesh)")
    +ChangeActivePlotsVar("cmfe2")
    +DrawPlots()
    +t = GetLastError()
    +TestText("conn_cmfe_05", t)
    +
    +DefineScalarExpression("cmfe3", "conn_cmfe(<bad_file.silo:a_var>, quadmesh)")
    +ChangeActivePlotsVar("cmfe3")
    +DrawPlots()
    +t = GetLastError()
    +TestText("conn_cmfe_06", t)
    +
    +DefineScalarExpression("cmfe4", "conn_cmfe(<%s:pressure>, quadmesh, pressure)" %  cmfe_silo_data_path("wave0100.silo"))
    +ChangeActivePlotsVar("cmfe4")
    +DrawPlots()
    +t = GetLastError()
    +TestText("conn_cmfe_07", t)
    +
    +DefineScalarExpression("cmfe5", "conn_cmfe(<%s:pressure>)" % cmfe_silo_data_path("wave0100.silo"))
    +ChangeActivePlotsVar("cmfe5")
    +DrawPlots()
    +t = GetLastError()
    +TestText("conn_cmfe_08", t)
    +
    +# And one more cool picture just for grins.
    +DefineScalarExpression("cmfe6", "conn_cmfe(<%s:pressure>, quadmesh)" % cmfe_silo_data_path("wave0570.silo"))
    +DefineScalarExpression("max", "if(ge(pressure, cmfe6), pressure, cmfe6)")
    +ChangeActivePlotsVar("max")
    +DrawPlots()
    +Test("conn_cmfe_09")
    +
    +# Invalid variable in new database.
    +DefineScalarExpression("cmfe7", "conn_cmfe(<%s:pressure>, quadmesh)" % cmfe_silo_data_path("globe.silo"))
    +ChangeActivePlotsVar("cmfe7")
    +t = GetLastError()
    +TestText("conn_cmfe_10", t)
    +
    +# Now a good variable, but connectivity doesn't match.
    +DefineScalarExpression("cmfe8", "conn_cmfe(<%s:t>, quadmesh)" % cmfe_silo_data_path("globe.silo"))
    +ChangeActivePlotsVar("cmfe8")
    +DrawPlots()
    +t = GetLastError()
    +TestText("conn_cmfe_11", t)
    +
    +# Test multiple CMFEs
    +DefineScalarExpression("cmfe9", "conn_cmfe(<%s:pressure>, quadmesh)" % cmfe_silo_data_path("wave0100.silo"))
    +DefineScalarExpression("max2", "if(ge(max, cmfe9), max, cmfe9)")
    +ChangeActivePlotsVar("max2")
    +DrawPlots()
    +Test("conn_cmfe_12")
    +
    +DefineScalarExpression("cmfe10", "conn_cmfe(<30:d>, quadmesh)")
    +ChangeActivePlotsVar("cmfe10")
    +t = GetLastError()
    +TestText("conn_cmfe_13", t)
    +
    +ChangeActivePlotsVar("cmfe")
    +DrawPlots()
    +s = SILRestriction()
    +s.TurnOffAll()
    +s.TurnOnSet(2)
    +SetPlotSILRestriction(s)
    +t = GetLastError()
    +TestText("conn_cmfe_14", t)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_coord_expr.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_coord_expr.html new file mode 100644 index 000000000..ea0fcf1ec --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_coord_expr.html @@ -0,0 +1,84 @@ + +Results for hybrid/coord_expr.py + +

    Results of VisIt Regression Test - hybrid/coord_expr

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    coord_expr_010.000.00
    coord_expr_020.000.00
    coord_expr_030.000.00
    coord_expr_040.000.00
    coord_expr_050.000.00
    coord_expr_060.000.00
    coord_expr_070.000.00
    coord_expr_080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_coord_expr_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_coord_expr_py.html new file mode 100644 index 000000000..249898fc3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_coord_expr_py.html @@ -0,0 +1,65 @@ +hybrid/coord_expr.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  coord_expr.py
    +#
    +#  Tests:      mesh      - 3D unstructured, multi- domain
    +#              plots     - Pseudocolor
    +#
    +#  Defect ID:  '5994, '5995
    +#
    +#  Programmer: Hank Childs
    +#  Date:       June 30, 2005
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +
    +DefineScalarExpression("polar_radius", "polar_radius(mesh1)")
    +AddPlot("Pseudocolor", "polar_radius")
    +DrawPlots()
    +Test("coord_expr_01")
    +
    +DefineScalarExpression("zero", "polar_radius-polar(mesh1)[0]")
    +ChangeActivePlotsVar("zero")
    +Test("coord_expr_02")
    +
    +DefineScalarExpression("polar_theta", "polar_theta(mesh1)")
    +ChangeActivePlotsVar("polar_theta")
    +Test("coord_expr_03")
    +
    +DefineScalarExpression("polar_phi", "polar_phi(mesh1)")
    +ChangeActivePlotsVar("polar_phi")
    +Test("coord_expr_04")
    +
    +DefineScalarExpression("cylindrical_radius", "cylindrical_radius(mesh1)")
    +ChangeActivePlotsVar("cylindrical_radius")
    +Test("coord_expr_05")
    +
    +DefineScalarExpression("cylindrical_theta", "cylindrical_theta(mesh1)")
    +ChangeActivePlotsVar("cylindrical_theta")
    +Test("coord_expr_06")
    +
    +DeleteExpression("zero")
    +# Not really zero -- this is the diagonal
    +DefineScalarExpression("zero", "polar_radius-cylindrical_radius")
    +ChangeActivePlotsVar("zero")
    +Test("coord_expr_07")
    +
    +DeleteActivePlots()
    +
    +DefineVectorExpression("c", "cylindrical(mesh1)")
    +AddPlot("Vector", "c")
    +DrawPlots()
    +Test("coord_expr_08")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_curve_anim.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_curve_anim.html new file mode 100644 index 000000000..5dc3955f3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_curve_anim.html @@ -0,0 +1,72 @@ + +Results for hybrid/curve_anim.py + +

    Results of VisIt Regression Test - hybrid/curve_anim

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    curve_anim10.000.00
    curve_anim20.000.00
    curve_anim30.000.00
    curve_anim40.000.00
    curve_anim50.000.00
    curve_anim60.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_curve_anim_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_curve_anim_py.html new file mode 100644 index 000000000..0257f8ce0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_curve_anim_py.html @@ -0,0 +1,77 @@ +hybrid/curve_anim.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  curve_anim.py
    +#
    +#  Tests:      mesh      - polygonal line from .curve file.
    +#              plots     - curve
    +#              operators - none
    +#
    +#  Defect ID:  '2973
    +#
    +#  Programmer: Hank Childs
    +#  Date:       January 15, 2003
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Mon Aug  4 09:51:40 PDT 2003
    +#    Curves are no longer valid subsets, but they are now curve plots.
    +#
    +#    Brad Whitlock, Wed Mar 9 09:15:30 PDT 2005
    +#    Removed deprecated functions.
    +#
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#    individually to match current baseline results.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(data_path("curve_test_data/curve.visit"))
    +
    +curveAtts = CurveAttributes()
    +curveAtts.curveColorSource = curveAtts.Custom
    +AddPlot("Curve", "flat")
    +curveAtts.curveColor = (0, 255, 0, 255)
    +SetPlotOptions(curveAtts)
    +AddPlot("Curve", "going_up")
    +curveAtts.curveColor = (255, 0, 0, 255)
    +SetPlotOptions(curveAtts)
    +AddPlot("Curve", "going_down")
    +curveAtts.curveColor = (0, 0, 255, 255)
    +SetPlotOptions(curveAtts)
    +AddPlot("Curve", "parabolic")
    +curveAtts.curveColor = (0, 255, 255, 255)
    +SetPlotOptions(curveAtts)
    +
    +SetTimeSliderState(40)
    +DrawPlots()
    +# This additional set frame is so that the saved
    +# image is correct.
    +SetTimeSliderState(40)
    +Test("curve_anim1")
    +
    +SetTimeSliderState(99)
    +Test("curve_anim2")
    +
    +SetActivePlots(3)
    +DeleteActivePlots()
    +
    +Test("curve_anim3")
    +
    +SetTimeSliderState(40)
    +Test("curve_anim4")
    +
    +SetActivePlots(0)
    +DeleteActivePlots()
    +Test("curve_anim5")
    +
    +SetTimeSliderState(5)
    +AddPlot("Curve", "flat")
    +curveAtts.curveColor = (0, 255, 0, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +Test("curve_anim6")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_curve_expressions.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_curve_expressions.html new file mode 100644 index 000000000..43164eaa3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_curve_expressions.html @@ -0,0 +1,63 @@ + +Results for hybrid/curve_expressions.py + +

    Results of VisIt Regression Test - hybrid/curve_expressions

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    binary operations on curves
    curve_exp_bin_000.000.00
    curve_exp_bin_010.000.00
    curve_exp_bin_020.000.00
    curve_exp_bin_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_curve_expressions_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_curve_expressions_py.html new file mode 100644 index 000000000..a6daacb1d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_curve_expressions_py.html @@ -0,0 +1,50 @@ +hybrid/curve_expressions.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  curve_expressions.py
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       November 18, 2008
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def TurnOffCurveLabels():
    +    c = CurveAttributes()
    +    c.showLabels = 0
    +    SetDefaultPlotOptions(c)
    +
    +def DoBinaryOp(db1, curve1, db2, curve2, op, index):
    +    # name = db:curve1 op curve_cmfe(<db2:curve2>, <db1, curve1>)
    +    var1 = "<%s>" % (curve1)
    +    var2 = "<%s:%s>" % (db2, curve2)
    +    cmfe = "curve_cmfe(%s,%s)" % (var2, var1)
    +    name = "<A %s B>" %(op)
    +    DefineCurveExpression(name, "%s %s %s" %(var1, op, cmfe))
    +
    +    AddPlot("Curve", name);
    +    DrawPlots()
    +
    +    Test("curve_exp_bin_%02d" %index)
    +    DeleteAllPlots()
    +
    +def TestBinary():
    +    binops = ("+", "-", "*", "/")
    +    cdb = cmfe_data_path("curve_test_data/distribution.ultra")
    +    db = data_path("curve_test_data/distribution.ultra")
    +    logNormal = "Log Normal Distribution"
    +    exponential = "Exponential Distribution"
    +
    +    TestSection("binary operations on curves")
    +    OpenDatabase(db)
    +    for i in range(4):
    +        DoBinaryOp(cdb, logNormal, cdb, exponential, binops[i], i)
    +
    +    CloseDatabase(db)
    +
    +
    +TurnOffCurveLabels()
    +TestBinary()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_cylindrical_radius.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_cylindrical_radius.html new file mode 100644 index 000000000..8fc8457dc --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_cylindrical_radius.html @@ -0,0 +1,96 @@ + +Results for hybrid/cylindrical_radius.py + +

    Results of VisIt Regression Test - hybrid/cylindrical_radius

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    cylin_rad_default_10.000.00
    cylin_rad_default_20.000.00
    cylin_rad_x_10.000.00
    cylin_rad_x_20.000.00
    cylin_rad_y_10.000.00
    cylin_rad_y_20.000.00
    cylin_rad_z_10.000.00
    cylin_rad_z_20.000.00
    cylin_rad_diag_a_10.000.00
    cylin_rad_diag_b_10.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_cylindrical_radius_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_cylindrical_radius_py.html new file mode 100644 index 000000000..a05e7af39 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_cylindrical_radius_py.html @@ -0,0 +1,232 @@ +hybrid/cylindrical_radius.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  cylindrical_radius.py
    +#
    +#  Tests:      mesh      - 3D structured, multi domain
    +#              plots     - pc
    +#
    +#  Ticket Id:  '7915
    +#
    +#  Notes:      Created to test axis selection for the cylindrical_radius 
    +#              expression
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       March 31, 2008
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +
    +
    +# Default use case
    +DefineScalarExpression("cylin_rad_default",   "cylindrical_radius(mesh1)")
    +# Cyl axis = {1,0,0}
    +DefineScalarExpression("cylin_rad_x",         'cylindrical_radius(mesh1,"x")')
    +# Cyl axis = {0,1,0}
    +DefineScalarExpression("cylin_rad_y",         'cylindrical_radius(mesh1,"y")')
    +# Cyl axis = {0,0,1} (same as default)
    +DefineScalarExpression("cylin_rad_z",         'cylindrical_radius(mesh1,"z")')
    +# Cyl axis = {1,1,1}
    +DefineScalarExpression("cylin_rad_diag_a",    'cylindrical_radius(mesh1,{1,1,1})')
    +# Cyl axis = {1,1,-1}
    +DefineScalarExpression("cylin_rad_diag_b",    'cylindrical_radius(mesh1,{1,1,-1})')
    +
    +# use rotate and defer expression to test proper axis selection
    +
    +def test_cyl(var_name):
    +    DeleteAllPlots();
    +    ResetView()
    +    AddPlot("Pseudocolor", var_name)
    +    DrawPlots()
    +    Test(var_name + "_%d" % 1)
    +    AddOperator("Transform") # rotate to another view
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doRotate = 1
    +    TransformAtts.rotateOrigin = (0, 0, 0)
    +    TransformAtts.rotateAxis = (0, 1, 0)
    +    TransformAtts.rotateAmount = 45
    +    TransformAtts.rotateType = TransformAtts.Deg
    +    TransformAtts.doScale = 0
    +    TransformAtts.doTranslate = 0
    +    TransformAtts.transformType = TransformAtts.Similarity
    +    TransformAtts.inputCoordSys = TransformAtts.Cartesian
    +    TransformAtts.outputCoordSys = TransformAtts.Cartesian
    +    SetOperatorOptions(TransformAtts)
    +    DrawPlots()
    +    Test(var_name + "_%d" % 2)
    +
    +def test_cyl_x(var_name):
    +    DeleteAllPlots();
    +    ResetView()
    +    AddPlot("Pseudocolor", var_name)
    +    AddOperator("Transform")
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doRotate = 1
    +    TransformAtts.rotateOrigin = (0, 0, 0)
    +    TransformAtts.rotateAxis = (0, 1, 0)
    +    TransformAtts.rotateAmount = 90
    +    TransformAtts.rotateType = TransformAtts.Deg
    +    TransformAtts.doScale = 0
    +    TransformAtts.doTranslate = 0
    +    TransformAtts.transformType = TransformAtts.Similarity
    +    TransformAtts.inputCoordSys = TransformAtts.Cartesian
    +    TransformAtts.outputCoordSys = TransformAtts.Cartesian
    +    SetOperatorOptions(TransformAtts)
    +    AddOperator("DeferExpression")
    +    DeferExpressionAtts = DeferExpressionAttributes()
    +    DeferExpressionAtts.exprs = (var_name)
    +    SetOperatorOptions(DeferExpressionAtts)
    +    DrawPlots()
    +    Test(var_name + "_%d" % 1)
    +    AddOperator("Transform") # rotate to better view
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doRotate = 1
    +    TransformAtts.rotateOrigin = (0, 0, 0)
    +    TransformAtts.rotateAxis = (0, 1, 0)
    +    TransformAtts.rotateAmount = -45
    +    TransformAtts.rotateType = TransformAtts.Deg
    +    TransformAtts.doScale = 0
    +    TransformAtts.doTranslate = 0
    +    TransformAtts.transformType = TransformAtts.Similarity
    +    TransformAtts.inputCoordSys = TransformAtts.Cartesian
    +    TransformAtts.outputCoordSys = TransformAtts.Cartesian
    +    SetOperatorOptions(TransformAtts)
    +    DrawPlots()
    +    Test(var_name + "_%d" % 2)
    +
    +
    +def test_cyl_y(var_name):
    +    DeleteAllPlots();
    +    ResetView()
    +    AddPlot("Pseudocolor", var_name)
    +    AddOperator("Transform")
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doRotate = 1
    +    TransformAtts.rotateOrigin = (0, 0, 0)
    +    TransformAtts.rotateAxis = (1, 0, 0)
    +    TransformAtts.rotateAmount = 90
    +    TransformAtts.rotateType = TransformAtts.Deg
    +    TransformAtts.doScale = 0
    +    TransformAtts.doTranslate = 0
    +    TransformAtts.transformType = TransformAtts.Similarity
    +    TransformAtts.inputCoordSys = TransformAtts.Cartesian
    +    TransformAtts.outputCoordSys = TransformAtts.Cartesian
    +    SetOperatorOptions(TransformAtts)
    +    AddOperator("DeferExpression")
    +    DeferExpressionAtts = DeferExpressionAttributes()
    +    DeferExpressionAtts.exprs = (var_name)
    +    SetOperatorOptions(DeferExpressionAtts)
    +    DrawPlots()
    +    Test(var_name + "_%d" % 1)
    +    AddOperator("Transform") # rotate to better view
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doRotate = 1
    +    TransformAtts.rotateOrigin = (0, 0, 0)
    +    TransformAtts.rotateAxis = (1, 0, 0)
    +    TransformAtts.rotateAmount = -45
    +    TransformAtts.rotateType = TransformAtts.Deg
    +    TransformAtts.doScale = 0
    +    TransformAtts.doTranslate = 0
    +    TransformAtts.transformType = TransformAtts.Similarity
    +    TransformAtts.inputCoordSys = TransformAtts.Cartesian
    +    TransformAtts.outputCoordSys = TransformAtts.Cartesian
    +    SetOperatorOptions(TransformAtts)
    +    DrawPlots()
    +    Test(var_name + "_%d" % 2)
    +
    +def test_cyl_diag_a(var_name):
    +    DeleteAllPlots();
    +    ResetView()
    +    AddPlot("Pseudocolor", var_name)
    +    AddOperator("Transform")
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doRotate = 1
    +    TransformAtts.rotateOrigin = (0, 0, 0)
    +    TransformAtts.rotateAxis = (0, 1, 0)
    +    TransformAtts.rotateAmount = 45
    +    TransformAtts.rotateType = TransformAtts.Deg
    +    TransformAtts.doScale = 0
    +    TransformAtts.doTranslate = 0
    +    TransformAtts.transformType = TransformAtts.Similarity
    +    TransformAtts.inputCoordSys = TransformAtts.Cartesian
    +    TransformAtts.outputCoordSys = TransformAtts.Cartesian
    +    SetOperatorOptions(TransformAtts)
    +    AddOperator("Transform") # rotate to better view
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doRotate = 1
    +    TransformAtts.rotateOrigin = (0, 0, 0)
    +    TransformAtts.rotateAxis = (-0.70710678118654746, 0, 0.70710678118654746)
    +    TransformAtts.rotateAmount = 35.26
    +    TransformAtts.rotateType = TransformAtts.Deg
    +    TransformAtts.doScale = 0
    +    TransformAtts.doTranslate = 0
    +    TransformAtts.transformType = TransformAtts.Similarity
    +    TransformAtts.inputCoordSys = TransformAtts.Cartesian
    +    TransformAtts.outputCoordSys = TransformAtts.Cartesian
    +    SetOperatorOptions(TransformAtts)
    +    AddOperator("DeferExpression")
    +    DeferExpressionAtts = DeferExpressionAttributes()
    +    DeferExpressionAtts.exprs = (var_name)
    +    SetOperatorOptions(DeferExpressionAtts)
    +    DrawPlots()
    +    Test(var_name + "_%d" % 1)
    +
    +def test_cyl_diag_b(var_name):
    +    DeleteAllPlots();
    +    ResetView()
    +    AddPlot("Pseudocolor", var_name)
    +    AddOperator("Transform")
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doRotate = 1
    +    TransformAtts.rotateOrigin = (0, 0, 0)
    +    TransformAtts.rotateAxis = (0, 1, 0)
    +    TransformAtts.rotateAmount = -45
    +    TransformAtts.rotateType = TransformAtts.Deg
    +    TransformAtts.doScale = 0
    +    TransformAtts.doTranslate = 0
    +    TransformAtts.transformType = TransformAtts.Similarity
    +    TransformAtts.inputCoordSys = TransformAtts.Cartesian
    +    TransformAtts.outputCoordSys = TransformAtts.Cartesian
    +    SetOperatorOptions(TransformAtts)
    +    AddOperator("Transform") # rotate to better view
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doRotate = 1
    +    TransformAtts.rotateOrigin = (0, 0, 0)
    +    TransformAtts.rotateAxis = (0.70710678118654746, 0, 0.70710678118654746)
    +    TransformAtts.rotateAmount = 35.26
    +    TransformAtts.rotateType = TransformAtts.Deg
    +    TransformAtts.doScale = 0
    +    TransformAtts.doTranslate = 0
    +    TransformAtts.transformType = TransformAtts.Similarity
    +    TransformAtts.inputCoordSys = TransformAtts.Cartesian
    +    TransformAtts.outputCoordSys = TransformAtts.Cartesian
    +    SetOperatorOptions(TransformAtts)
    +    AddOperator("DeferExpression")
    +    DeferExpressionAtts = DeferExpressionAttributes()
    +    DeferExpressionAtts.exprs = (var_name)
    +    SetOperatorOptions(DeferExpressionAtts)
    +    DrawPlots()
    +    Test(var_name + "_%d" % 1)
    +
    +
    +test_cyl("cylin_rad_default")
    +test_cyl_x("cylin_rad_x")
    +test_cyl_y("cylin_rad_y")
    +test_cyl("cylin_rad_z") # same as default
    +test_cyl_diag_a("cylin_rad_diag_a")
    +test_cyl_diag_b("cylin_rad_diag_b")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_ddf.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_ddf.html new file mode 100644 index 000000000..be272ea16 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_ddf.html @@ -0,0 +1,75 @@ + +Results for hybrid/ddf.py + +

    Results of VisIt Regression Test - hybrid/ddf

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ddf_010.000.00
    ddf_020.000.00
    ddf_030.000.00
    ddf_040.000.00
    DDF Spatial Collapse with Ghost Zones
    ddf_spatial_1d0.000.00
    ddf_spatial_2d0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_ddf_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_ddf_py.html new file mode 100644 index 000000000..982a64209 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_ddf_py.html @@ -0,0 +1,172 @@ +hybrid/ddf.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ddf.py
    +#
    +#  Defect ID:  '5203
    +#
    +#  Programmer: Hank Childs
    +#  Date:       February 20, 2006
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Tue Feb 23 12:40:36 PST 2021
    +#    Added spatial collapse with ghost zones test.
    +#
    +#    Kathleen Biagas, Thu Feb 17 07:38:01 PST 2022
    +#    Replace old ConstructDDFAttributes attribute names for new:
    +#    ddfName -> name, ranges -> binBoundaries, numSamples -> numBins,
    +#    statisticalOperator -> reductionOperator,
    +#    codomainName -> varForReductionOperator.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +t = ConstructDDFAttributes()
    +t.name = "ddf1"
    +t.varnames = ("u")
    +t.binBoundaries = (-1, 1)
    +t.numBins = (4)
    +t.varForReductionOperator = "u"
    +t.reductionOperator = t.Average
    +ConstructDDF(t)
    +
    +DefineScalarExpression("e1", "u - apply_ddf(curvmesh2d, ddf1)")
    +ChangeActivePlotsVar("e1")
    +Test("ddf_01")
    +
    +t.name = "ddf2"
    +t.reductionOperator = t.Maximum
    +t.varForReductionOperator = "v"
    +t.varnames = ("v")
    +ConstructDDF(t)
    +DefineScalarExpression("e2", "v - apply_ddf(curvmesh2d, ddf2)")
    +ChangeActivePlotsVar("e2")
    +Test("ddf_02")
    +
    +t.name = "ddf3"
    +t.varnames = ("u", "v")
    +t.binBoundaries = (-1, 1, -1, 1)
    +t.numBins = (25, 25)
    +t.varForReductionOperator = "u"
    +t.reductionOperator = t.Minimum
    +ConstructDDF(t)
    +
    +DefineScalarExpression("e3", "u - apply_ddf(curvmesh2d, ddf3)")
    +ChangeActivePlotsVar("e3")
    +Test("ddf_03")
    +
    +
    +ChangeActivePlotsVar("u")
    +t.name = "ddf4"
    +t.varnames = ("u", "v")
    +t.binBoundaries = (-1, 1, -1, 1)
    +t.numBins = (25, 25)
    +t.varForReductionOperator = "u"
    +t.reductionOperator = t.RMS
    +ConstructDDF(t)
    +
    +DefineScalarExpression("e4", "apply_ddf(curvmesh2d, ddf4)")
    +ChangeActivePlotsVar("e4")
    +Test("ddf_04")
    +
    +
    +#
    +# DDF Spatial Collapse with ghost zones
    +#
    +
    +def ddf(atts,var_name,ddf_op):
    +    # ddf helper used in the wild to normalize var
    +    # and file names
    +    ddf_op_map = {"avg": atts.Average,
    +                  "min": atts.Minimum,
    +                  "max": atts.Maximum,
    +                  "stddev": atts.StandardDeviation,
    +                  "var":    atts.Variance,
    +                  "sum":    atts.Sum,
    +                  "count":  atts.Count,
    +                  "rms": atts.RMS,
    +                  "pdf": atts.PDF}
    +    atts.reductionOperator = ddf_op_map[ddf_op]
    +    visit.ConstructDDF(atts)
    +    ndims = len(atts.numBins)
    +    ddf_oname = "%s_%s_%dd" % (var_name,ddf_op,ndims)
    +    if len(atts.numBins) == 1:
    +        src_fname = "%s.ultra" % atts.name
    +        des_fname = "%s.ult" % (atts.name)
    +        os.rename(src_fname,des_fname)
    +        lines = open(des_fname).readlines()
    +        f     = open(des_fname, "w")
    +        f.write("# %s\n" % (ddf_oname))
    +        for l in lines[1:]:
    +            f.write(l)
    +        f.close()
    +    else:
    +        src_fname = "%s.vtk" % atts.name
    +        des_fname = src_fname
    +        orig_vtk_var = "SCALARS %s float" % var_name
    +        ddf_vtk_var  = "SCALARS %s float" % ddf_oname
    +        data = open(des_fname).read()
    +        f = open(des_fname, "w")
    +        data = data.replace(orig_vtk_var,ddf_vtk_var)
    +        f.write(data)
    +    print("[ddf output: %s]" % des_fname)
    +    return des_fname
    +
    +#################################################
    +# bigsil has ghost zones, this test makes
    +# sure we are taking care of ghost zones property
    +# in ddfs
    +# use ddf to sum collapse spatially in 1d, then 2d
    +def ddf_collapse_test():
    +    TestSection("DDF Spatial Collapse with Ghost Zones")
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("bigsil.silo"))
    +    DefineScalarExpression("mesh_x_nodal","coord(mesh)[0]")
    +    DefineScalarExpression("mesh_y_nodal","coord(mesh)[1]")
    +    DefineScalarExpression("mesh_z_nodal","coord(mesh)[2]")
    +    DefineScalarExpression("mesh_x_zonal","recenter(coord(mesh)[0])")
    +    DefineScalarExpression("mesh_y_zonal","recenter(coord(mesh)[1])")
    +    DefineScalarExpression("mesh_z_zonal","recenter(coord(mesh)[2])")
    +    AddPlot("Pseudocolor","dist")
    +    DrawPlots()
    +    atts = visit.ConstructDDFAttributes()
    +    atts.name = "ddf_dist_1d"
    +    atts.varForReductionOperator = "dist"
    +    atts.varnames = ("mesh_x_zonal",)
    +    atts.binBoundaries = (0,1)
    +    atts.numBins = (21,)
    +    ddf(atts,"dist","sum")
    +    atts = visit.ConstructDDFAttributes()
    +    atts.name = "ddf_dist_2d"
    +    atts.varForReductionOperator = "dist"
    +    atts.varnames = ("mesh_x_zonal", "mesh_y_zonal")
    +    atts.binBoundaries = (0,1, 0,1)
    +    atts.numBins = (21,21)
    +    ddf(atts,"dist","sum")
    +    # plot 1d result
    +    DeleteAllPlots()
    +    OpenDatabase("ddf_dist_1d.ult")
    +    AddPlot("Curve","dist_sum_1d")
    +    DrawPlots()
    +    Test("ddf_spatial_1d")
    +    # plot 2d result
    +    DeleteAllPlots()
    +    OpenDatabase("ddf_dist_2d.vtk")
    +    AddPlot("Pseudocolor","dist_sum_2d")
    +    DrawPlots()
    +    Test("ddf_spatial_2d")
    +
    +ddf_collapse_test()
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_defvar_anim.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_defvar_anim.html new file mode 100644 index 000000000..6fda29e3f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_defvar_anim.html @@ -0,0 +1,54 @@ + +Results for hybrid/defvar_anim.py + +

    Results of VisIt Regression Test - hybrid/defvar_anim

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    defvar_anim_010.000.00
    defvar_anim_020.000.00
    defvar_anim_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_defvar_anim_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_defvar_anim_py.html new file mode 100644 index 000000000..c11f8ed03 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_defvar_anim_py.html @@ -0,0 +1,61 @@ +hybrid/defvar_anim.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  defvar.py
    +#
    +#  Tests:      plots     - vector
    +#
    +#  Defect ID:  '3221
    +#
    +#  Programmer: Hank Childs
    +#  Date:       April 10, 2003
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Thu Jun 24 12:58:06 PDT 2004
    +#    Set the vector origin explicitly for some cases because I changed the
    +#    default to Tail.
    +#
    +#    Brad Whitlock, Wed Mar 9 09:15:30 PDT 2005
    +#    Removed deprecated functions.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +
    +
    +vec = VectorAttributes()
    +vec.vectorOrigin = vec.Middle
    +SetDefaultPlotOptions(vec)
    +
    +
    +AddPlot("Vector", "direction")
    +DrawPlots()
    +
    +# Set the view
    +v = View3DAttributes()
    +v.viewNormal = (-0.293413, 0.703819, 0.646953)
    +v.focus = (5, 0.353448, 2.5)
    +v.viewUp = (0.228637, 0.708763, -0.667368)
    +v.viewAngle = 30
    +v.parallelScale = 3.87214
    +v.nearPlane = -11.2018
    +v.farPlane = 11.2018
    +v.perspective = 1
    +SetView3D(v)
    +
    +
    +Test("defvar_anim_01")
    +
    +SetTimeSliderState(30)
    +Test("defvar_anim_02")
    +
    +SetTimeSliderState(60)
    +Test("defvar_anim_03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_expr2engine.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_expr2engine.html new file mode 100644 index 000000000..0f5b6ea66 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_expr2engine.html @@ -0,0 +1,56 @@ + +Results for hybrid/expr2engine.py + +

    Results of VisIt Regression Test - hybrid/expr2engine

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    expr2engine_000.000.00
    expr2engine_010 modifications totalling 0 lines
    expr2engine_020 modifications totalling 0 lines
    expr2engine_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_expr2engine_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_expr2engine_py.html new file mode 100644 index 000000000..4eeddabe5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_expr2engine_py.html @@ -0,0 +1,67 @@ +hybrid/expr2engine.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  expr2engine.py
    +#
    +#  Tests:      mesh      - 2D, curvilinear, single domain
    +#              plots     - FilledBoundary
    +#              databases - PDB
    +#
    +#  Purpose:    This test case tests the viewer's ability to send not only the
    +#              user-defined expressions to the engine but also the correct
    +#              database expressions.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Feb 18 14:01:48 PST 2005
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Create some expressions.
    +#
    +DefineScalarExpression("user_defined1", "u * u")
    +DefineScalarExpression("user_defined2", "v + v")
    +DefineVectorExpression("user_defined3", "{u, v, w}")
    +
    +# Open a database and make a plot.
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Vector", "vel")
    +v = VectorAttributes()
    +v.nVectors = 4000
    +SetPlotOptions(v)
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.63515, 0.317784, 0.703987)
    +v.viewUp = (0.176786, 0.947058, -0.268008)
    +SetView3D(v)
    +
    +# Test the image that we should have by this point. Also make sure that the
    +# expression list contains the database expressions for the first database.
    +Test("expr2engine_00")
    +TestExpressions("expr2engine_01")
    +
    +# Open a different database. The expression list should only contain the 
    +# database variables from the new database.
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +TestExpressions("expr2engine_02")
    +
    +# Test that the plot from the old database, which was a plot of an expression
    +# from the first database can still be generated.
    +AddOperator("Transform")
    +DrawPlots()
    +Test("expr2engine_03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_exprList.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_exprList.html new file mode 100644 index 000000000..156381852 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_exprList.html @@ -0,0 +1,56 @@ + +Results for hybrid/exprList.py + +

    Results of VisIt Regression Test - hybrid/exprList

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    exprList000 modifications totalling 0 lines
    exprList010 modifications totalling 0 lines
    exprList020 modifications totalling 0 lines
    exprList030 modifications totalling 0 lines
    exprList040 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_exprList_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_exprList_py.html new file mode 100644 index 000000000..c4925990d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_exprList_py.html @@ -0,0 +1,65 @@ +hybrid/exprList.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  exprList.py
    +#  Tests:      Expression list contents as windows are added and we switch
    +#              between databases that have expressions.
    +#
    +#  Defect ID:  VisIt00003955
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Oct 24 18:06:01 PST 2003
    +#
    +#  Modifications:
    +#    
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +
    +# Define some expressions just so we have some in the list.
    +DefineScalarExpression("var1", "var2 + var3")
    +DefineScalarExpression("var4", "var5 * var6")
    +DefineScalarExpression("var7", "var8 / var9")
    +
    +# Open the first database, which has some expressions.
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "speed")
    +DrawPlots()
    +
    +# This test should show our scalar expressions + globe's expressions.
    +TestExpressions("exprList00")
    +
    +# Add a new window and open a different database that has no expressions of
    +# its own.
    +AddWindow()
    +SetActiveWindow(2)
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("wave*.silo database"))
    +
    +TestExpressions("exprList01")
    +
    +# Going back to window 1, where globe is open. This should make the expression
    +# list contain globe's expressions.
    +SetActiveWindow(1)
    +TestExpressions("exprList02")
    +
    +# Open a new database. This should make the expression list contain the
    +# expressions for rect3d and our scalar expressions.
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +TestExpressions("exprList03")
    +
    +# Add a plot
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +# Make the active plot be the plot of globe. The expression list should 
    +# contain globe's expressions.
    +SetActivePlots(0)
    +TestExpressions("exprList04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_expr_cmfe.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_expr_cmfe.html new file mode 100644 index 000000000..f7ce6dbf1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_expr_cmfe.html @@ -0,0 +1,66 @@ + +Results for hybrid/expr_cmfe.py + +

    Results of VisIt Regression Test - hybrid/expr_cmfe

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    expr_cmfe_010.000.00
    expr_cmfe_020.000.00
    expr_cmfe_030.000.00
    expr_cmfe_040.000.00
    expr_cmfe_050.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_expr_cmfe_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_expr_cmfe_py.html new file mode 100644 index 000000000..01d20a9bc --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_expr_cmfe_py.html @@ -0,0 +1,66 @@ +hybrid/expr_cmfe.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  expr_cmfe.py
    +#
    +#  Defect ID:  None
    +#
    +#  Programmer: Hank Childs
    +#  Date:       September 9, 2005
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Thu Dec 29 11:21:26 PST 2005
    +#    Expand the color range for a plot of an expression that should result in 
    +#    uniformly "1", but actually has some small variation.  This causes 
    +#    issues with coloring between optimized and non-optimized modes.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +
    +
    +# Test that database expressions can still be generated.
    +DefineVectorExpression("cmfe", "conn_cmfe(<%s[30]i:direction>, quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +AddPlot("Vector", "cmfe")
    +DrawPlots()
    +Test("expr_cmfe_01")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("cmfe2", "conn_cmfe(coord(<%s[40]i:pressure>)[1], quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +AddPlot("Pseudocolor", "cmfe2")
    +DrawPlots()
    +Test("expr_cmfe_02")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("cmfe3", "coord(quadmesh)[1] - conn_cmfe(coord(<%s[40]i:pressure>)[1], quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +AddPlot("Pseudocolor", "cmfe3")
    +DrawPlots()
    +Test("expr_cmfe_03")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("cmfe4", "coord(quadmesh)[1] - cmfe2")
    +AddPlot("Pseudocolor", "cmfe4")
    +DrawPlots()
    +Test("expr_cmfe_04")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("cmfe5", "volume(quadmesh) / conn_cmfe(volume(<%s[40]i:quadmesh>), quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +AddPlot("Pseudocolor", "cmfe5")
    +pc = PseudocolorAttributes()
    +pc.min = 0.5
    +pc.minFlag = 1
    +pc.max = 1.5
    +pc.maxFlag = 1
    +SetPlotOptions(pc)
    +DrawPlots()
    +Test("expr_cmfe_05")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_expressions.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_expressions.html new file mode 100644 index 000000000..3d727cfd3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_expressions.html @@ -0,0 +1,304 @@ + +Results for hybrid/expressions.py + +

    Results of VisIt Regression Test - hybrid/expressions

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    radius_ghosts0.000.00
    magnitude10.000.00
    magnitude20.000.00
    vector_sum0.000.00
    vector_diff0.000.00
    theta0.000.00
    phi0.000.00
    cos0.000.00
    abs_cos0.000.00
    sin0.000.00
    minus_sin0.000.00
    four_phase0.000.00
    one0.000.00
    X0.000.00
    radius0.000.00
    zero0.000.00
    vector_add_const0.000.00
    vector_cross0.000.00
    identity_expr0.000.00
    diff_centering_expr_010.000.00
    diff_centering_expr_020.000.00
    diff_centering_expr_030.000.00
    diff_centering_expr_040.000.00
    diff_centering_expr_050.000.00
    diff_centering_expr_060.000.00
    diff_centering_expr_070.000.00
    const_with_no_other_vars0.000.00
    nmats_with_mir0.000.00
    mult_var_usage0.000.00
    mixed_centering_nodal0.000.00
    mixed_centering_zonal0.000.00
    mult_identity_expr0.000.00
    long_identity_expr0.000.00
    divide10.000.00
    divide20.000.00
    divide30.000.00
    resrad0.000.00
    resrad_error0 modifications totalling 0 lines
    ident_mesh0.000.00
    min10.000.00
    min20.000.00
    max10.000.00
    min30.000.00
    max20.000.00
    max30.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_expressions_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_expressions_py.html new file mode 100644 index 000000000..87a515353 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_expressions_py.html @@ -0,0 +1,464 @@ +hybrid/expressions.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  expressions.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - pc
    +#
    +#  Defect ID:  '3939 + '4008 + '4022 + '4162 + '4417 + '4435 + '5790 + '5672
    +#            + '5763 + '5767 + '5874 + '7465 + '7473
    +#
    +#  Programmer: Hank Childs
    +#  Date:       November 18, 2002
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Fri Oct 24 09:25:04 PDT 2003
    +#    Added test for mesh expressions for databases where we communicate
    +#    ghost zones.
    +#
    +#    Hank Childs, Wed Dec 10 14:25:01 PST 2003
    +#    Add tests for implicit and explicit changes in centering.  Also added
    +#    a test for the identity expression, which previously crashed the engine.
    +#
    +#    Hank Childs, Wed Feb 11 14:49:40 PST 2004
    +#    Add tests for nmats and constants.
    +#    
    +#    Hank Childs, Thu Apr 22 16:19:36 PDT 2004
    +#    Update comments due to the change in semantics of recenter (it is now
    +#    always zonal).
    +#
    +#    Hank Childs, Wed Dec 22 13:14:29 PST 2004
    +#    Add tests for variables used both in an expression and in the
    +#    pipeline ['5790].
    +#
    +#    Hank Childs, Thu Jan  6 11:21:21 PST 2005
    +#    Add tests for multiple identity filters and additional tests for mixed
    +#    centering ['5672, '5763, '5767].
    +#
    +#    Hank Childs, Thu Jan 20 18:29:28 PST 2005
    +#    Add test for resrad ['5874].
    +#
    +#    Hank Childs, Fri Aug 25 17:34:13 PDT 2006
    +#    Add test for resrad when arguments are missing ['7473].
    +#
    +#    Hank Childs, Fri Sep 14 11:52:39 PDT 2007
    +#    Add test for identify filters and meshes ['7465].
    +#
    +#    Cyrus Harrison, Thu Jan 31 09:19:57 PST 2008
    +#    Added a test for the value_for_material filter. 
    +#
    +#    Cyrus Harrison, Tue Feb 19 13:52:01 PST 2008
    +#    Removed value_for_material tests (they now reside in val4mat.py)
    +#
    +#    Kathleen Bonnell, Thu May  7 09:26:36 PDT 2009
    +#    ident_mesh is no longer an error case, so remove the error test and
    +#    save an image instead.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Alister Maguire, Mon Mar 29 12:17:40 PDT 2021
    +#    Moved min/max tests into function and extended to include
    +#    multi-domain data.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def TestMinMaxExpression():
    +    # Test min/max expression
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    #
    +    # First, let's test a serial dataset.
    +    #
    +    DefineScalarExpression('min1', 'min(10.0, 5.0, d+p)')
    +    AddPlot('Pseudocolor', 'min1')
    +    DrawPlots()
    +    Test('min1')
    +    DeleteAllPlots()
    +
    +    DefineScalarExpression('min2', 'min(d+p, 5.0, 10.0)')
    +    AddPlot('Pseudocolor', 'min2')
    +    DrawPlots()
    +    Test('min2')
    +    DeleteAllPlots()
    +
    +    DefineScalarExpression('max1', 'max(10.0, 5.0, d+p)')
    +    AddPlot('Pseudocolor', 'max1')
    +    DrawPlots()
    +    Test('max1')
    +    DeleteAllPlots()
    +
    +    DefineScalarExpression('min3', 'min(2.0, d+p, d*p+2*d)')
    +    AddPlot('Pseudocolor', 'min3')
    +    DrawPlots()
    +    Test('min3')
    +    DeleteAllPlots()
    +
    +    CloseDatabase(silo_data_path("rect2d.silo"))
    +
    +    #
    +    # Multi-domain datasets are handled a little differently, so
    +    # let's test one here.
    +    #
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    DefineScalarExpression('max2', 'max(p*16, 4)')
    +    AddPlot('Pseudocolor', 'max2')
    +    DrawPlots()
    +    Test('max2')
    +    DeleteAllPlots()
    +
    +    DefineScalarExpression('max3', 'max(p*16, d, 4)')
    +    AddPlot('Pseudocolor', 'max3')
    +    DrawPlots()
    +    Test('max3')
    +    DeleteAllPlots()
    +
    +    CloseDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +
    +OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +
    +DefineScalarExpression("radius_polar", "polar(mesh)[0]")
    +AddPlot("Contour", "radius_polar")
    +DrawPlots()
    +Test("radius_ghosts")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +
    +DefineScalarExpression("mag1", "magnitude(vel)")
    +AddPlot("Pseudocolor", "mag1")
    +DrawPlots()
    +
    +Test("magnitude1")
    +DeleteAllPlots()
    +
    +#
    +# We have a poor gradient scheme that will cause gradients along a band to
    +# falsely register as 0.  Regardless, I'd like to test it.
    +#
    +DefineScalarExpression("mag2", "magnitude(gradient(v))")
    +AddPlot("Pseudocolor", "mag2")
    +DrawPlots()
    +
    +Test("magnitude2")
    +DeleteAllPlots()
    +
    +
    +#
    +# See above comment regarding gradients.
    +#
    +DefineScalarExpression("vector_sum", "magnitude(gradient(v)+gradient(u))")
    +AddPlot("Pseudocolor", "vector_sum")
    +DrawPlots()
    +
    +Test("vector_sum")
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("vector_diff", "magnitude(gradient(v)-gradient(u))")
    +AddPlot("Pseudocolor", "vector_diff")
    +DrawPlots()
    +
    +Test("vector_diff")
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("theta", "polar(mesh1)[1]")
    +AddPlot("Pseudocolor", "theta")
    +DrawPlots()
    +
    +Test("theta")
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("phi", "polar(mesh1)[2]")
    +AddPlot("Pseudocolor", "phi")
    +DrawPlots()
    +
    +Test("phi")
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("cos", "cos(polar(mesh1)[1])")
    +AddPlot("Pseudocolor", "cos")
    +DrawPlots()
    +
    +Test("cos")
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("abs_cos", "abs(cos(polar(mesh1)[1]))")
    +AddPlot("Pseudocolor", "abs_cos")
    +DrawPlots()
    +
    +Test("abs_cos")
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("sin", "sin(polar(mesh1)[1])")
    +AddPlot("Pseudocolor", "sin")
    +DrawPlots()
    +
    +Test("sin")
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("minus_sin", "-sin(polar(mesh1)[1])")
    +AddPlot("Pseudocolor", "minus_sin")
    +DrawPlots()
    +
    +Test("minus_sin")
    +DeleteAllPlots()
    +
    +DefineScalarExpression("four_phase", "rad2deg(acos(sin(polar(mesh1)[1]))-polar(mesh1)[1])")
    +AddPlot("Pseudocolor", "four_phase")
    +DrawPlots()
    +
    +Test("four_phase")
    +DeleteAllPlots()
    +
    +
    +atts = PseudocolorAttributes()
    +atts.minFlag = 1
    +atts.min = 0.99
    +atts.maxFlag = 1
    +atts.max = 1.01
    +SetDefaultPlotOptions(atts)
    +
    +DefineScalarExpression("one", "sin(polar(mesh1)[1])*sin(polar(mesh1)[1]) + cos(polar(mesh1)[1])*cos(polar(mesh1)[1])")
    +AddPlot("Pseudocolor", "one")
    +DrawPlots()
    +
    +Test("one")
    +DeleteAllPlots()
    +
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +SetDefaultPlotOptions(atts)
    +
    +DefineScalarExpression("X", "coord(mesh1)[0]")
    +AddPlot("Pseudocolor", "X")
    +DrawPlots()
    +
    +Test("X")
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("radius", "sqrt(coords(mesh1)[0]*coords(mesh1)[0]+coords(mesh1)[1]*coords(mesh1)[1]+coords(mesh1)[2]*coords(mesh1)[2])")
    +AddPlot("Pseudocolor", "radius")
    +DrawPlots()
    +
    +Test("radius")
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("zero", "(polar(mesh1))[0] - sqrt(coords(mesh1)[0]*coords(mesh1)[0]+coords(mesh1)[1]*coords(mesh1)[1]+coords(mesh1)[2]*coords(mesh1)[2])")
    +AddPlot("Pseudocolor", "zero")
    +DrawPlots()
    +
    +Test("zero")
    +DeleteAllPlots()
    +
    +DefineVectorExpression("dd", "disp+{1,2,3}")
    +AddPlot("Vector", "dd")
    +DrawPlots()
    +
    +Test("vector_add_const")
    +DeleteAllPlots()
    +
    +DefineVectorExpression("cr", "cross(disp,dd)")
    +AddPlot("Vector", "cr")
    +DrawPlots()
    +
    +Test("vector_cross")
    +DeleteAllPlots()
    +
    +DefineScalarExpression("a", "t")
    +AddPlot("Pseudocolor", "a")
    +DrawPlots()
    +Test("identity_expr")
    +DeleteAllPlots()
    +
    +DefineScalarExpression("sum1", "t+100*u")
    +AddPlot("Pseudocolor", "sum1")
    +DrawPlots()
    +Test("diff_centering_expr_01")
    +DeleteAllPlots()
    +
    +DefineScalarExpression("sum2", "(u+t/100.)*100.")
    +AddPlot("Pseudocolor", "sum2")
    +DrawPlots()
    +Test("diff_centering_expr_02")
    +DeleteAllPlots()
    +
    +DefineScalarExpression("diff", "sum2-sum1")
    +AddPlot("Pseudocolor", "diff")
    +DrawPlots()
    +Test("diff_centering_expr_03")
    +DeleteAllPlots()
    +
    +DefineScalarExpression("sum_rc1", "recenter(t)+100*u")
    +AddPlot("Pseudocolor", "sum_rc1")
    +DrawPlots()
    +Test("diff_centering_expr_04")
    +DeleteAllPlots()
    +
    +# This one will recenter the first t.  When the second one is subtracted,
    +# will recenter the first t again to make it zonal again.
    +DefineScalarExpression("diff_rc1", "recenter(t)-t")
    +AddPlot("Pseudocolor", "diff_rc1")
    +DrawPlots()
    +Test("diff_centering_expr_05")
    +DeleteAllPlots()
    +
    +# This one will recenter the first t twice.  The second one will not be 
    +# touched.
    +DefineScalarExpression("diff_rc2", "recenter(recenter(t))-t")
    +AddPlot("Pseudocolor", "diff_rc2")
    +DrawPlots()
    +Test("diff_centering_expr_06")
    +DeleteAllPlots()
    +
    +# The first t will not be touched.  The second one will be recentered once
    +# explicitly and once implicitly (from the minus).
    +DefineScalarExpression("diff_rc3", "t-recenter(t)")
    +AddPlot("Pseudocolor", "diff_rc2")
    +DrawPlots()
    +Test("diff_centering_expr_07")
    +DeleteAllPlots()
    +
    +# The constant (3.14159) will be the only variable in the dataset.  Test
    +# that the constant creation logic can figure out that we must be making
    +# an expression based on the mesh downstream.
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +DefineScalarExpression("sin_x", "sin(3.14159*coord(quadmesh3d)[0])")
    +AddPlot("Pseudocolor", "sin_x")
    +DrawPlots()
    +Test("const_with_no_other_vars")
    +DeleteAllPlots()
    +
    +# The nmats expression needs to use the original zone numbers array to
    +# find the correct index into an avtMaterial object.  Make sure that this is
    +# being done correctly by splitting the zones before we even get to the
    +# expression via MIR.
    +DefineScalarExpression("nmats", "nmats(mat1)")
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Threshold")
    +thresh = ThresholdAttributes()
    +thresh.lowerBounds = (1.5)
    +thresh.listedVarNames = ("nmats")
    +SetOperatorOptions(thresh)
    +DrawPlots()
    +Test("nmats_with_mir")
    +DeleteAllPlots()
    +
    +# Test that a variable (u) can be used in both the expression and downstream
    +# in the pipeline.
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "speed")
    +AddOperator("Threshold")
    +thresh = ThresholdAttributes()
    +thresh.lowerBounds = (0.0)
    +thresh.listedVarNames = ("u")
    +SetOperatorOptions(thresh)
    +DrawPlots()
    +Test("mult_var_usage")
    +DeleteAllPlots()
    +
    +# The binary math filter forces mixed centering to be zonal.  The base class
    +# used to get confused and would sometimes declare the variable as nodal.
    +# Test to make sure this works.  By forcing the centering, we can confirm
    +# the base class is declaring the variable the right way.
    +DefineScalarExpression("prod", "u*t")
    +AddPlot("Pseudocolor", "prod")
    +pc = PseudocolorAttributes()
    +pc.centering = pc.Nodal
    +SetPlotOptions(pc)
    +DrawPlots()
    +Test("mixed_centering_nodal")
    +pc = PseudocolorAttributes()
    +pc.centering = pc.Zonal
    +SetPlotOptions(pc)
    +Test("mixed_centering_zonal")
    +
    +# Test that we can handle multiple identity expressions.
    +DefineScalarExpression("sub1", "u")
    +DefineScalarExpression("sub2", "v")
    +DefineScalarExpression("sum", "sub1+sub2")
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "sum")
    +DrawPlots()
    +Test("mult_identity_expr")
    +
    +# Test that we can handle identity expressions that are not the first node
    +# of the expression tree.
    +DefineVectorExpression("C", "coord(mesh1)")
    +DefineScalarExpression("X", "C[0]")
    +DefineScalarExpression("Y", "C[1]")
    +DefineScalarExpression("Z", "C[2]")
    +DefineScalarExpression("TX", "X")
    +DefineScalarExpression("TY", "cos_angle*Y - sin_angle*Z + Zt*sin_angle - Yt*cos_angle")
    +DefineScalarExpression("TZ", "sin_angle*Y + cos_angle*Z + Yt*sin_angle - Zt*cos_angle")
    +DefineScalarExpression("Yt", "5")
    +DefineScalarExpression("Zt", "10")
    +DefineScalarExpression("angle", "rad2deg(30)")
    +DefineScalarExpression("sin_angle", "sin(angle)")
    +DefineScalarExpression("cos_angle", "cos(angle)")
    +DefineScalarExpression("rad", "TX*TX + TY*TY + TZ*TZ")
    +AddPlot("Pseudocolor", "rad")
    +DrawPlots()
    +Test("long_identity_expr")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +# Test divide expression
    +DefineScalarExpression('divide1', 'divide(d,p)')
    +AddPlot('Pseudocolor','divide1')
    +DrawPlots()
    +Test('divide1')
    +
    +DefineScalarExpression('divide2', 'divide(d,p,0.0,2.0)')
    +AddPlot('Pseudocolor','divide2')
    +DrawPlots()
    +Test('divide2')
    +DeleteAllPlots()
    +
    +DefineScalarExpression('divide3', 'divide(d,p,1.0,2.0)')
    +AddPlot('Pseudocolor','divide3')
    +DrawPlots()
    +Test('divide3')
    +DeleteAllPlots()
    +
    +# Test resrad
    +DefineScalarExpression("resrad", "resrad(recenter(u), 0.1)")
    +AddPlot("Pseudocolor", "resrad")
    +DrawPlots()
    +Test("resrad")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("resrad2", "resrad(recenter(u))")
    +AddPlot("Pseudocolor", "resrad2")
    +DrawPlots()
    +txt = GetLastError()
    +TestText("resrad_error", txt)
    +
    +DeleteAllPlots()
    +DefineScalarExpression("ident_mesh", "quadmesh2d")
    +AddPlot("Pseudocolor", "ident_mesh")
    +DrawPlots()
    +Test("ident_mesh")
    +
    +TestMinMaxExpression()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_field_operators.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_field_operators.html new file mode 100644 index 000000000..aea492f08 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_field_operators.html @@ -0,0 +1,144 @@ + +Results for hybrid/field_operators.py + +

    Results of VisIt Regression Test - hybrid/field_operators

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    field_op_010.000.00
    field_op_020.000.00
    field_op_030.000.00
    field_op_040.000.00
    field_op_050.000.00
    field_op_060.000.00
    field_op_070.000.00
    field_op_080.000.00
    field_op_090.000.00
    field_op_100.000.00
    field_op_110.000.00
    field_op_120.000.00
    field_op_130.000.00
    field_op_140.000.00
    field_op_150.000.00
    field_op_160.000.00
    field_op_170.000.00
    field_op_180.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_field_operators_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_field_operators_py.html new file mode 100644 index 000000000..91e5433b4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_field_operators_py.html @@ -0,0 +1,258 @@ +hybrid/field_operators.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  field_operators.py
    +#
    +#  Tests:      mesh      - rectilinear, curvilinear
    +#              plots     - vector, contour
    +#
    +#  Defect ID:  '4141, '5343, '6297, '6460, '7063, '8025
    +#
    +#  Programmer: Hank Childs
    +#  Date:       December 13, 2003
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Thu Jun 24 12:58:06 PDT 2004
    +#    Set the vector origin explicitly for some cases because I changed the
    +#    default to Tail.
    +#
    +#    Hank Childs, Mon Jan  3 10:35:56 PST 2005
    +#    Renamed to field_operators.  Added testing for divergence, Laplacian,
    +#    and curl.
    +#
    +#    Hank Childs, Mon Jun  6 11:28:45 PDT 2005
    +#    Add tests for 2D divergence, Laplacian.
    +#
    +#    Hank Childs, Mon Aug 15 14:19:49 PDT 2005
    +#    2D curl now produces a scalar.  Change our test appropriately.
    +#
    +#    Hank Childs, Fri Mar  3 09:01:08 PST 2006
    +#    Add test for Jacobian (2D determinants).  '7063
    +#
    +#    Hank Childs, Mon Jun 18 09:54:09 PDT 2007
    +#    Add test for dot of curl with a vector.  This is really testing the
    +#    ability of macro expressions to maintain secondary variables. '8025
    +#
    +#    Jeremy Meredith, Tue Jul 15 10:43:58 EDT 2008
    +#    Changed number of vectors in vector plot to match the old behavior.
    +#    (We now account for how many domains there are.)
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Remove obsolete 'colorByMag' vector att with 'colorByMagnitude'.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +DefineVectorExpression("grad_t", "gradient(t)")
    +AddPlot("Vector", "grad_t")
    +v = VectorAttributes()
    +v.vectorOrigin = v.Middle
    +SetPlotOptions(v)
    +DrawPlots()
    +
    +# Zonal UCD gradient.
    +Test("field_op_01")
    +DeleteAllPlots()
    +
    +DefineVectorExpression("grad_u", "gradient(u)")
    +AddPlot("Vector", "grad_u")
    +v = VectorAttributes()
    +v.vectorOrigin = v.Middle
    +SetPlotOptions(v)
    +DrawPlots()
    +
    +# Nodal UCD gradient.
    +Test("field_op_02")
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +DefineVectorExpression("grad_d", "gradient(d)")
    +AddPlot("Vector", "grad_d")
    +v = VectorAttributes()
    +v.colorByMagnitude = 1
    +v.vectorOrigin = v.Middle
    +SetPlotOptions(v)
    +DrawPlots()
    +
    +# Zonal rect-2d gradient.
    +Test("field_op_03")
    +DeleteAllPlots()
    +
    +AddPlot("Vector", "grad_u")
    +v = VectorAttributes()
    +v.colorByMagnitude = 1
    +v.vectorOrigin = v.Middle
    +SetPlotOptions(v)
    +DrawPlots()
    +
    +# Nodal rect-2d gradient.
    +Test("field_op_04")
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +AddPlot("Vector", "grad_d")
    +v = VectorAttributes()
    +v.nVectors = 447
    +v.vectorOrigin = v.Middle
    +SetPlotOptions(v)
    +DrawPlots()
    +
    +# Zonal rect-3d gradient.
    +Test("field_op_05")
    +DeleteAllPlots()
    +
    +AddPlot("Vector", "grad_u")
    +v = VectorAttributes()
    +v.vectorOrigin = v.Middle
    +SetPlotOptions(v)
    +DrawPlots()
    +
    +# Nodal rect-3d gradient.
    +Test("field_op_06")
    +DeleteAllPlots()
    +
    +AddPlot("Vector", "vel")
    +DefineScalarExpression("mag", "magnitude(vel)")
    +AddOperator("Threshold")
    +t = ThresholdAttributes()
    +t.lowerBounds = (0.5)
    +t.upperBounds = (1.5)
    +t.listedVarNames = ("mag")
    +SetOperatorOptions(t)
    +DrawPlots()
    +
    +# Test vector with threshold ('4178)
    +Test("field_op_07")
    +DeleteAllPlots()
    +
    +
    +AddPlot("Vector", "grad_u")
    +v = VectorAttributes()
    +v.vectorOrigin = v.Middle
    +v.nVectors = 400*3
    +SetPlotOptions(v)
    +DefineScalarExpression("u_mag", "magnitude(grad_u)")
    +AddOperator("Isosurface")
    +iso = IsosurfaceAttributes()
    +iso.contourNLevels = 3
    +iso.variable = "u_mag"
    +SetOperatorOptions(iso)
    +DrawPlots()
    +
    +v = GetView3D()
    +v.imageZoom = 4.5
    +SetView3D(v)
    +
    +# Test vector with isosurface ('4207)
    +Test("field_op_08")
    +
    +# Add a contour plot just for grins to show that our isosurface operator is
    +# picking up the same surface as the contour plot.
    +AddPlot("Contour", "u_mag")
    +con = ContourAttributes()
    +con.contourNLevels = 3
    +SetPlotOptions(con)
    +DrawPlots()
    +
    +Test("field_op_09")
    +DeleteAllPlots()
    +
    +# Test that we can calculate the Laplacian.
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +v = GetView3D()
    +v.imageZoom = 1
    +v.viewNormal = (0.41, 0.08, -0.91)
    +SetView3D(v)
    +
    +DefineScalarExpression("LP", "abs(Laplacian(u))")
    +AddPlot("Contour", "LP")
    +c = ContourAttributes()
    +c.scaling = c.Log
    +SetPlotOptions(c)
    +DrawPlots()
    +Test("field_op_10")
    +
    +DefineScalarExpression("div", "divergence(vel)")
    +DeleteAllPlots()
    +AddPlot("Contour", "div")
    +c = ContourAttributes()
    +c.scaling = c.Log
    +SetPlotOptions(c)
    +DrawPlots()
    +Test("field_op_11")
    +
    +
    +# Test multiple macro expressions together -- divergence and Laplacian.
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "div")
    +pc = PseudocolorAttributes()
    +pc.scaling = pc.Log
    +SetPlotOptions(pc)
    +AddOperator("Isosurface")
    +iso = IsosurfaceAttributes()
    +iso.scaling = iso.Log
    +iso.variable = "LP"
    +SetOperatorOptions(iso)
    +DrawPlots()
    +
    +Test("field_op_12")
    +
    +
    +DefineVectorExpression("curl", "curl(vel)")
    +DeleteAllPlots()
    +AddPlot("Vector", "curl")
    +v = VectorAttributes()
    +v.scaleByMagnitude = 0
    +SetPlotOptions(v)
    +DrawPlots()
    +Test("field_op_13")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +DefineScalarExpression("div2", "divergence(vel)")
    +AddPlot("Pseudocolor", "div2")
    +DrawPlots()
    +Test("field_op_14")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("LP2", "Laplacian(d)")
    +AddPlot("Pseudocolor", "LP2")
    +DrawPlots()
    +Test("field_op_15")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("curl2", "curl(vel)")
    +AddPlot("Pseudocolor", "curl2")
    +DrawPlots()
    +Test("field_op_16")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("jacobian", "determinant({gradient(u), gradient(v)})")
    +AddPlot("Pseudocolor", "jacobian")
    +DrawPlots()
    +Test("field_op_17")
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +DefineVectorExpression("mycurl", "curl(vel)")
    +DefineScalarExpression("mydot", "dot(curl,vel)")
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "mydot")
    +DrawPlots()
    +Test("field_op_18")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_ghost_node.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_ghost_node.html new file mode 100644 index 000000000..041cf94f9 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_ghost_node.html @@ -0,0 +1,42 @@ + +Results for hybrid/ghost_node.py + +

    Results of VisIt Regression Test - hybrid/ghost_node

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ghost_node_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_ghost_node_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_ghost_node_py.html new file mode 100644 index 000000000..e42d689ca --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_ghost_node_py.html @@ -0,0 +1,45 @@ +hybrid/ghost_node.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ghost_node.py 
    +#
    +#  Tests:      ghost node removal of multi_curv3d.silo
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       July 6, 2020 
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Fri Mar 12, 2021
    +#    Added DeleteAllPlots before CloseDatabase.
    +#
    +# ----------------------------------------------------------------------------
    +TurnOffAllAnnotations() # defines global object 'a'
    +
    +OpenDatabase(silo_data_path("multi_curv3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +pc = PseudocolorAttributes()
    +pc.opacityType = pc.Constant
    +pc.opacityVariable = ""
    +pc.opacity = 0.25
    +SetPlotOptions(pc)
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (-0.491824, 0.420414, 0.76247)
    +v.focus = (0, 2.5, 15)
    +v.viewUp = (0.214182, 0.907212, -0.362066)
    +v.viewAngle = 30
    +v.parallelScale = 16.0078
    +v.nearPlane = -32.0156
    +v.farPlane = 32.0156
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +SetView3D(v)
    +
    +Test("ghost_node_01")
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multi_curv3d.silo"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_image_proc.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_image_proc.html new file mode 100644 index 000000000..ebc9b058b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_image_proc.html @@ -0,0 +1,54 @@ + +Results for hybrid/image_proc.py + +

    Results of VisIt Regression Test - hybrid/image_proc

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    image_proc_010.000.00
    image_proc_020.000.00
    image_proc_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_image_proc_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_image_proc_py.html new file mode 100644 index 000000000..3e75bafca --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_image_proc_py.html @@ -0,0 +1,34 @@ +hybrid/image_proc.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  image_proc.py
    +#
    +#  Tests:      mesh      - Image
    +#              plots     - Pseudocolor
    +#
    +#  Defect ID:  '6492
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 19, 2005
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(data_path("Image_test_data/manhattan.jpg"))
    +
    +DefineScalarExpression("cm", "conservative_smoothing(intensity)")
    +AddPlot("Pseudocolor", "cm")
    +DrawPlots()
    +Test("image_proc_01")
    +
    +DefineScalarExpression("median", "median_filter(intensity)")
    +ChangeActivePlotsVar("median")
    +Test("image_proc_02")
    +
    +DefineScalarExpression("mean", "mean_filter(intensity)")
    +ChangeActivePlotsVar("mean")
    +Test("image_proc_03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_keyframe.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_keyframe.html new file mode 100644 index 000000000..f68b2bdc2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_keyframe.html @@ -0,0 +1,501 @@ + +Results for hybrid/keyframe.py + +

    Results of VisIt Regression Test - hybrid/keyframe

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Simple 6 frame animation
    keyframe_010.000.00
    keyframe_020.000.00
    keyframe_030.000.00
    keyframe_040.000.00
    keyframe_050.000.00
    keyframe_060.000.00
    Setting plot frame range
    keyframe_070.000.00
    keyframe_080.000.00
    keyframe_090.000.00
    keyframe_100.000.00
    keyframe_110.000.00
    keyframe_120.000.00
    Setting a plot attributes keyframe
    keyframe_130.000.00
    keyframe_140.000.00
    keyframe_150.000.00
    keyframe_160.000.00
    keyframe_170.000.00
    keyframe_180.000.00
    Removing a plot attributes keyframe
    keyframe_190.000.00
    keyframe_200.000.00
    keyframe_210.000.00
    keyframe_220.000.00
    keyframe_230.000.00
    keyframe_240.000.00
    Deleting another plot attributes keyframe
    keyframe_250.000.00
    keyframe_260.000.00
    keyframe_270.000.00
    keyframe_280.000.00
    keyframe_290.000.00
    keyframe_300.000.00
    Decreasing number of animation frames
    keyframe_310.000.00
    keyframe_320.000.00
    keyframe_330.000.00
    keyframe_340.000.00
    Copying keyframed plot to a new window
    keyframe_350.000.00
    keyframe_360.000.00
    keyframe_370.000.00
    keyframe_380.000.00
    Turning off keyframe mode
    keyframe_390.000.00
    keyframe_400.000.00
    keyframe_410.000.00
    keyframe_420.000.00
    Testing view keyframing
    keyframe_430.000.00
    keyframe_440.000.00
    keyframe_450.000.00
    keyframe_460.000.00
    keyframe_470.000.00
    keyframe_480.000.00
    keyframe_490.000.00
    keyframe_500.000.00
    keyframe_510.000.00
    keyframe_520.000.00
    keyframe_530.000.00
    Moving keyframes
    keyframe_540.000.00
    keyframe_550.000.00
    keyframe_560.000.00
    keyframe_570.000.00
    keyframe_580.000.00
    keyframe_590.000.00
    keyframe_600.000.00
    keyframe_610.000.00
    keyframe_620.000.00
    Operator keyframes
    keyframe_630.000.00
    keyframe_640.000.00
    keyframe_650.000.00
    keyframe_660.000.00
    keyframe_670.000.00
    keyframe_680.000.00
    keyframe_690.000.00
    keyframe_700.000.00
    keyframe_710.000.00
    keyframe_720.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_keyframe_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_keyframe_py.html new file mode 100644 index 000000000..77afa6c1c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_keyframe_py.html @@ -0,0 +1,544 @@ +hybrid/keyframe.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  keyframe.py
    +#
    +#  Tests:      mesh      - 3D structured, single domain
    +#              plots     - pc, mesh
    +#              operators - none
    +#              selection - none
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       Thu Dec 19 16:02:41 PST 2002
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Apr 7 17:24:41 PST 2004
    +#    I added TestSection to break up the test images a little. I also updated
    +#    the code so it uses the new time slider functions instead of the
    +#    deprecated animation functions.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to switch between Silo's HDF5 and PDB data.
    +#
    +#    Eric Brugger, Wed Mar 22 16:23:12 PDT 2023
    +#    Added operator keyframe tests.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# Open a database.
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +
    +# Enable keyframe mode.
    +k = GetKeyframeAttributes()
    +k.enabled = 1
    +SetKeyframeAttributes(k)
    +
    +# Set the number of frames to be 6.
    +AnimationSetNFrames(6)
    +
    +# Create a pseudocolor plot that exists over the first
    +# 6 frames of the animation.
    +AddPlot("Pseudocolor", "pressure")
    +SetPlotFrameRange(0, 0, 5)
    +
    +# Set the attributes at the first and last frame.
    +SetTimeSliderState(0)
    +pc = PseudocolorAttributes()
    +pc.min = 0
    +pc.max = 0.2
    +pc.minFlag = 1
    +pc.maxFlag = 1
    +SetPlotOptions(pc)
    +
    +SetTimeSliderState(5)
    +pc.max = 0.5
    +SetPlotOptions(pc)
    +
    +# Create a mesh plot that exists over frames 2
    +# through 4.
    +AddPlot("Mesh", "quadmesh")
    +
    +SetPlotFrameRange(1, 2, 4)
    +SetPlotDatabaseState(1, 2, 28)
    +SetPlotDatabaseState(1, 4, 56)
    +
    +# Cycle through all the frames, checking that all
    +# the images are correct.
    +TestSection("Simple 6 frame animation")
    +SetTimeSliderState(0)
    +DrawPlots()
    +Test("keyframe_01")
    +TimeSliderNextState()
    +Test("keyframe_02")
    +TimeSliderNextState()
    +Test("keyframe_03")
    +TimeSliderNextState()
    +Test("keyframe_04")
    +TimeSliderNextState()
    +Test("keyframe_05")
    +TimeSliderNextState()
    +Test("keyframe_06")
    +
    +# Change to frame 4, change the frame range and
    +# check that all the frames are ok.
    +TestSection("Setting plot frame range")
    +SetTimeSliderState(4)
    +SetPlotFrameRange(1, 0, 2)
    +SetPlotDatabaseState(1, 0, 0)
    +SetPlotDatabaseState(1, 2, 28)
    +
    +SetTimeSliderState(0)
    +Test("keyframe_07")
    +TimeSliderNextState()
    +Test("keyframe_08")
    +TimeSliderNextState()
    +Test("keyframe_09")
    +TimeSliderNextState()
    +Test("keyframe_10")
    +TimeSliderNextState()
    +Test("keyframe_11")
    +TimeSliderNextState()
    +Test("keyframe_12")
    +
    +SetActivePlots(1)
    +DeleteActivePlots()
    +
    +# Set the pseudocolor attributes for frame 2 and
    +# check that all the frames are ok.
    +TestSection("Setting a plot attributes keyframe")
    +SetActivePlots(0)
    +SetTimeSliderState(2)
    +pc.max = 0.7
    +SetPlotOptions(pc)
    +
    +SetTimeSliderState(0)
    +Test("keyframe_13")
    +TimeSliderNextState()
    +Test("keyframe_14")
    +TimeSliderNextState()
    +Test("keyframe_15")
    +TimeSliderNextState()
    +Test("keyframe_16")
    +TimeSliderNextState()
    +Test("keyframe_17")
    +TimeSliderNextState()
    +Test("keyframe_18")
    +
    +# Delete the keyframe at frame 2 and check that
    +# all the frames are ok.
    +TestSection("Removing a plot attributes keyframe")
    +SetTimeSliderState(2)
    +DeletePlotKeyframe(0, 2)
    +
    +SetTimeSliderState(0)
    +Test("keyframe_19")
    +TimeSliderNextState()
    +Test("keyframe_20")
    +TimeSliderNextState()
    +Test("keyframe_21")
    +TimeSliderNextState()
    +Test("keyframe_22")
    +TimeSliderNextState()
    +Test("keyframe_23")
    +TimeSliderNextState()
    +Test("keyframe_24")
    +
    +# Delete the keyframe at frame 5 and check that
    +# all the frames are ok.
    +TestSection("Deleting another plot attributes keyframe")
    +DeletePlotKeyframe(0, 5)
    +
    +SetTimeSliderState(0)
    +Test("keyframe_25")
    +TimeSliderNextState()
    +Test("keyframe_26")
    +TimeSliderNextState()
    +Test("keyframe_27")
    +TimeSliderNextState()
    +Test("keyframe_28")
    +TimeSliderNextState()
    +Test("keyframe_29")
    +TimeSliderNextState()
    +Test("keyframe_30")
    +
    +# Change the number of frames to 4.  Create a
    +# pseudocolor plot that changes its range but
    +# keeps the database state constant at 0.  Check
    +# that all the frames are ok.
    +TestSection("Decreasing number of animation frames")
    +DeleteActivePlots()
    +AnimationSetNFrames(4)
    +AddPlot("Pseudocolor", "pressure")
    +SetPlotFrameRange(0, 0, 3)
    +SetTimeSliderState(0)
    +pc.max = 0.2
    +SetPlotOptions(pc)
    +SetTimeSliderState(3)
    +pc.max = 0.5
    +SetPlotOptions(pc)
    +DeletePlotDatabaseKeyframe(0, 3)
    +DrawPlots()
    +
    +SetTimeSliderState(0)
    +Test("keyframe_31")
    +TimeSliderNextState()
    +Test("keyframe_32")
    +TimeSliderNextState()
    +Test("keyframe_33")
    +TimeSliderNextState()
    +Test("keyframe_34")
    +
    +# Test copying plots to a new window.
    +TestSection("Copying keyframed plot to a new window")
    +SetTimeSliderState(2)
    +AddWindow()
    +SetActiveWindow(2)
    +CopyPlotsToWindow(1, 2)
    +CopyAnnotationsToWindow(1, 2)
    +CopyViewToWindow(1, 2)
    +DrawPlots()
    +
    +Test("keyframe_35")
    +TimeSliderNextState()
    +Test("keyframe_36")
    +TimeSliderNextState()
    +Test("keyframe_37")
    +TimeSliderNextState()
    +Test("keyframe_38")
    +
    +# Take the window out of keyframe mode and
    +# check that setting the plot attributes sets
    +# them for all the frames.
    +TestSection("Turning off keyframe mode")
    +k.enabled = 0
    +SetKeyframeAttributes(k)
    +
    +SetPlotDatabaseState(0, 3, 3)
    +SetTimeSliderState(3)
    +pc.minFlag = 0
    +pc.maxFlag = 0
    +SetPlotOptions(pc)
    +
    +SetTimeSliderState(0)
    +Test("keyframe_39")
    +TimeSliderNextState()
    +Test("keyframe_40")
    +TimeSliderNextState()
    +Test("keyframe_41")
    +TimeSliderNextState()
    +Test("keyframe_42")
    +
    +# Clear the window, reset the view and enable
    +# keyframe mode in preparation to test view
    +# keyframing.
    +TestSection("Testing view keyframing")
    +DeleteAllPlots()
    +ResetView()
    +k.enabled = 1
    +SetKeyframeAttributes(k)
    +
    +# Open a database.
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +# Set the number of frames to be 9.
    +AnimationSetNFrames(9)
    +
    +# Create a pseudocolor plot that exists over the first
    +# 9 frames of the animation.
    +AddPlot("Pseudocolor", "u")
    +SetPlotFrameRange(0, 0, 8)
    +
    +# Create 5 view keyframes.
    +SetTimeSliderState(0)
    +v = GetView3D()
    +v.SetViewNormal(1, 0, 0)
    +v.SetFocus(0, 0, 0)
    +v.SetViewUp(0, 0, 1)
    +v.SetViewAngle(30)
    +v.SetParallelScale(17.3205)
    +v.SetNearPlane(-34.641)
    +v.SetFarPlane(34.641)
    +v.SetPerspective(1)
    +SetView3D(v)
    +SetViewKeyframe()
    +
    +SetTimeSliderState(2)
    +v.SetViewNormal(0, 1, 0)
    +SetView3D(v)
    +SetViewKeyframe()
    +
    +SetTimeSliderState(4)
    +v.SetViewNormal(-1, 0, 0)
    +SetView3D(v)
    +SetViewKeyframe()
    +
    +SetTimeSliderState(6)
    +v.SetViewNormal(0, -1, 0)
    +SetView3D(v)
    +SetViewKeyframe()
    +
    +SetTimeSliderState(8)
    +v.SetViewNormal(1, 0, 0)
    +SetView3D(v)
    +SetViewKeyframe()
    +
    +# Render the first frame.
    +SetTimeSliderState(0)
    +DrawPlots()
    +
    +# Enter camera view mode and cycle through all the
    +# frames, checking that all the images are correct.
    +ToggleCameraViewMode()
    +Test("keyframe_43")
    +TimeSliderNextState()
    +Test("keyframe_44")
    +TimeSliderNextState()
    +Test("keyframe_45")
    +TimeSliderNextState()
    +Test("keyframe_46")
    +TimeSliderNextState()
    +Test("keyframe_47")
    +TimeSliderNextState()
    +Test("keyframe_48")
    +TimeSliderNextState()
    +Test("keyframe_49")
    +TimeSliderNextState()
    +Test("keyframe_50")
    +TimeSliderNextState()
    +Test("keyframe_51")
    +
    +# Delete the view keyframe at frame 8 and check the image.
    +DeleteViewKeyframe(8)
    +Test("keyframe_52")
    +
    +# Clear all the view keyframes and check the first image.
    +ClearViewKeyframes()
    +TimeSliderNextState()
    +Test("keyframe_53")
    +
    +# Clear the window and reset the view in preparation
    +# to test moving keyframes.
    +TestSection("Moving keyframes")
    +DeleteAllPlots()
    +ResetView()
    +
    +# Open a database.
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +
    +# Set the number of frames to be 6.
    +AnimationSetNFrames(6)
    +
    +# Create a pseudocolor plot that exists over the first
    +# 6 frames of the animation.
    +AddPlot("Pseudocolor", "pressure")
    +SetPlotFrameRange(0, 0, 5)
    +
    +# Set 3 keyframes.
    +SetTimeSliderState(0)
    +pc = PseudocolorAttributes()
    +pc.min = 0
    +pc.max = 0.2
    +pc.minFlag = 1
    +pc.maxFlag = 1
    +SetPlotOptions(pc)
    +
    +SetTimeSliderState(3)
    +pc.max = 0.7
    +SetPlotOptions(pc)
    +
    +SetTimeSliderState(5)
    +pc.max = 0.5
    +SetPlotOptions(pc)
    +
    +# Render all the images.
    +SetTimeSliderState(0)
    +DrawPlots()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +
    +# Move the keyframe at frame 3 to 4, regenerate all
    +# the frames and check a few of them.
    +MovePlotKeyframe(0, 3, 4)
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +
    +SetTimeSliderState(2)
    +Test("keyframe_54")
    +SetTimeSliderState(4)
    +Test("keyframe_55")
    +SetTimeSliderState(5)
    +Test("keyframe_56")
    +
    +# Delete the last 2 keyframes, move the database
    +# keyframe from frame 5 to 3, regenerate all
    +# the frames and check a few of them.
    +DeletePlotKeyframe(0, 4)
    +DeletePlotKeyframe(0, 5)
    +
    +MovePlotDatabaseKeyframe(0, 5, 3)
    +SetTimeSliderState(0)
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +
    +SetTimeSliderState(1)
    +Test("keyframe_57")
    +SetTimeSliderState(3)
    +Test("keyframe_58")
    +SetTimeSliderState(4)
    +Test("keyframe_59")
    +
    +# Delete the second database keyframe, create
    +# 3 view keyframes and regenerate all the images.
    +DeletePlotDatabaseKeyframe(0, 3)
    +
    +SetTimeSliderState(0)
    +v = GetView3D()
    +v.SetViewNormal(-1, 0, 1)
    +v.SetFocus(5, 0.35, 2.5)
    +v.SetViewUp(0, 1, 0)
    +v.SetViewAngle(30)
    +v.SetParallelScale(5.6009)
    +v.SetNearPlane(-11.2018)
    +v.SetFarPlane(11.2018)
    +v.SetPerspective(1)
    +SetView3D(v)
    +SetViewKeyframe()
    +
    +SetTimeSliderState(2)
    +v.SetViewNormal(0, 0, 1)
    +SetView3D(v)
    +SetViewKeyframe()
    +
    +SetTimeSliderState(5)
    +v.SetViewNormal(1, 0, 1)
    +SetView3D(v)
    +SetViewKeyframe()
    +
    +ToggleCameraViewMode()
    +SetTimeSliderState(0)
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +
    +# Move the view keyframe at frame 2 to frame 3,
    +# regenerate all the frames and check a few of them.
    +MoveViewKeyframe(2, 3)
    +SetTimeSliderState(0)
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +
    +SetTimeSliderState(2)
    +Test("keyframe_60")
    +SetTimeSliderState(3)
    +Test("keyframe_61")
    +SetTimeSliderState(4)
    +Test("keyframe_62")
    +
    +# Clear the window and reset the view in preparation
    +# to test operator keyframes.
    +TestSection("Operator keyframes")
    +DeleteAllPlots()
    +ResetView()
    +
    +# Open a database.
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +# Set the number of frames to be 11.
    +AnimationSetNFrames(11)
    +
    +# Create a pseudocolor plot that exists over the first
    +# 11 frames of the animation.
    +AddPlot("Pseudocolor", "hardyglobal")
    +AddOperator("Slice")
    +AddOperator("Isosurface")
    +SetPlotFrameRange(0, 0, 10)
    +
    +# Set 3 slice keyframes.
    +SetTimeSliderState(0)
    +slice = SliceAttributes()
    +slice.originType = slice.Percent
    +slice.originPercent = 0
    +slice.project2d = 0
    +SetOperatorOptions(slice)
    +SetTimeSliderState(2)
    +SetOperatorOptions(slice)
    +SetTimeSliderState(10)
    +slice.originPercent = 100
    +SetOperatorOptions(slice)
    +
    +# Set 2 isosurface keyframes.
    +SetTimeSliderState(0)
    +iso = IsosurfaceAttributes()
    +SetOperatorOptions(iso)
    +SetTimeSliderState(5)
    +iso.contourNLevels = 5
    +SetOperatorOptions(iso)
    +
    +SetTimeSliderState(0)
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (0.225979, 0.625179, 0.747051)
    +v.focus = (0, 0, 0)
    +v.viewUp = (-0.965293, 0.246786, 0.0854703)
    +v.viewAngle = 30
    +v.parallelScale = 17.3205
    +v.nearPlane = -34.641
    +v.farPlane = 34.641
    +v.perspective = 1
    +SetView3D(v)
    +
    +# Check a bunch of frames.
    +Test("keyframe_63")
    +SetTimeSliderState(2)
    +Test("keyframe_64")
    +SetTimeSliderState(5)
    +Test("keyframe_65")
    +SetTimeSliderState(7)
    +Test("keyframe_66")
    +SetTimeSliderState(10)
    +Test("keyframe_67")
    +
    +# Delete the slice keyframe and move the isosurface keyframe.
    +DeleteOperatorKeyframe(0, 0, 2)
    +MoveOperatorKeyframe(0, 1, 5, 10)
    +
    +# Check a bunch of frames.
    +SetTimeSliderState(0)
    +Test("keyframe_68")
    +SetTimeSliderState(2)
    +Test("keyframe_69")
    +SetTimeSliderState(5)
    +Test("keyframe_70")
    +SetTimeSliderState(7)
    +Test("keyframe_71")
    +SetTimeSliderState(10)
    +Test("keyframe_72")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_lambda2.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_lambda2.html new file mode 100644 index 000000000..bd03f9679 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_lambda2.html @@ -0,0 +1,54 @@ + +Results for hybrid/lambda2.py + +

    Results of VisIt Regression Test - hybrid/lambda2

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    iso_lambda20.000.00
    contour_lambda20.000.00
    pseudo_lambda20.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_lambda2_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_lambda2_py.html new file mode 100644 index 000000000..48ef22cef --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_lambda2_py.html @@ -0,0 +1,53 @@ +hybrid/lambda2.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  lambda2.py
    +#
    +#  Tests:#     plots   - pseudocolor, contour
    +#  Defect ID:  1829
    +#
    +#  Programmer: Kevin Griffin
    +#  Date:       Tue Aug 5 15:01:27 PDT 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +ds = data_path("miranda_test_data/TG_vortex/plot.raw")
    +OpenDatabase(ds)
    +DefineScalarExpression("lambda2", "lambda2(gradient(velocity[0]), gradient(velocity[1]), gradient(velocity[2]))")
    +TimeSliderNextState()
    +TimeSliderNextState()
    +
    +#
    +# Test 1
    +#
    +AddPlot("Pseudocolor", "lambda2")
    +AddOperator("Isovolume")
    +IsovolumeAtts = IsovolumeAttributes()
    +IsovolumeAtts.lbound = -999.99
    +IsovolumeAtts.ubound = 0.0
    +IsovolumeAtts.variable = "default"
    +SetOperatorOptions(IsovolumeAtts)
    +
    +DrawPlots()
    +Test("iso_lambda2")
    +DeleteAllPlots()
    +
    +#
    +# Test 2
    +#
    +AddPlot("Contour", "lambda2")
    +DrawPlots()
    +Test("contour_lambda2")
    +DeleteAllPlots()
    +
    +#
    +# Test 3
    +#
    +AddPlot("Pseudocolor", "lambda2")
    +DrawPlots()
    +Test("pseudo_lambda2")
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_lineout.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_lineout.html new file mode 100644 index 000000000..32834da9d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_lineout.html @@ -0,0 +1,247 @@ + +Results for hybrid/lineout.py + +

    Results of VisIt Regression Test - hybrid/lineout

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Lineout2d0.000.00
    CurvesFrom2d_withSampling0.000.00
    Lineout3d0.000.00
    CurvesFrom3d_withSampling0.000.00
    MultiVarLineout2d0.000.00
    MultiVarCurvesFrom2d_withSampling0.000.00
    LineoutSAMRAI0.000.00
    CurvesFromSAMRAI_withSampling0.000.00
    LineoutSpecifyWindow_010.000.00
    CurvesFromSpecifyWindow_01_withSampling0.000.00
    LineoutSpecifyWindow_020.000.00
    CurvesFromSpecifyWindow_02_withSampling0.000.00
    Lineout2d_output_040 modifications totalling 0 lines
    Lineout2d_output_080 modifications totalling 0 lines
    CurvesFrom2d_noSampling0.000.00
    Lineout2d_output_020 modifications totalling 0 lines
    Lineout2d_output_150 modifications totalling 0 lines
    CurvesFrom3d_noSampling0.000.00
    MultiVarCurvesFrom2d_noSampling0.000.00
    CurvesFromSAMRAI_noSampling0.000.00
    CurvesFromSpecifyWindow_01_noSampling0.000.00
    CurvesFromSpecifyWindow_02_noSampling0.000.00
    CurvesFromDynamic_010.000.00
    CurvesFromDynamic_020.000.00
    CurvesFromDynamic_030.000.00
    CurvesFromDynamic_040.000.00
    CurvesFromDynamic_050.000.00
    CurvesFromDynamic_060.000.00
    Dynamic2_010.000.00
    Dynamic2_020.000.00
    Dynamic2_030.000.00
    LineoutTecPlot_010.000.00
    CurvesFromTecPlot_010.000.00
    Operator-Created Variables
    lineout_op_vars_000.000.00
    lineout_op_vars_010.000.00
    lineout_op_vars_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_lineout_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_lineout_py.html new file mode 100644 index 000000000..fa3c77c0b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_lineout_py.html @@ -0,0 +1,661 @@ +hybrid/lineout.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  lineout.py #
    +#  Tests:      plots     - Curve
    +#              operators - Lineout
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Jan 3 14:22:41 PST 2003
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Mon Mar 17 09:54:14 PST 2003
    +#    Added TestMultiVarLineout2D.
    +#
    +#    Kathleen Bonnell, Tue Dec 23 09:29:29 PST 2003 
    +#    Added TestSAMRAI.
    +#
    +#    Kathleen Bonnell, Thu Jul 29 11:59:35 PDT 2004 
    +#    Added tests for no-sampling version, renamed old Curve* tests to
    +#    indicate they were generated with-sampling. 
    +#
    +#    Kathleen Bonnell, Thu Aug  5 10:44:22 PDT 2004 
    +#    Added calls to ResetPickLetter() and ResetLineoutColor() at the end of
    +#    each test, so that failure on any one test won't necessarily affect the
    +#    tests that follow. 
    +#
    +#    Kathleen Bonnell, Wed Nov 24 11:38:55 PST 2004 
    +#    Modified the way that sampling gets turned on due to changes in Lineout
    +#    Attributes and GlobalLineoutAttributes.  Use global version to turn
    +#    sampling on and off. 
    +#
    +#    Kathleen Bonnell, Fri Feb  4 11:17:56 PST 2005 
    +#    Added TestDynamic, to test new global atts: curveOption and colorOption.
    +#
    +#    Hank Childs, Wed Feb 16 07:34:07 PST 2005
    +#    Rename variables that have unsupported characters.
    +#
    +#    Kathleen Bonnell, Wed Mar 23 17:58:20 PST 2005 
    +#    Added TestDynamic2. 
    +#
    +#    Kathleen Bonnell, hu May 19 11:26:39 PDT 2005 
    +#    Added TestTecPlot. 
    +#
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +#    Kathleen Bonnell, Tue Jun 20 16:02:38 PDT 2006
    +#    Added tests for GetOutputArray to Lineout2D.
    +#
    +#    Kathleen Bonnell, Wed Jun 28 15:57:58 PDT 2006
    +#    Added tests to TestDynamicLineout, testing having curves from  different
    +#    time-varying databases (same originating window and different originating
    +#    window) in same curve window, and update the curves via the originating
    +#    plots time-slider (bug '7002).
    +#
    +#    Brad Whitlock, Wed Jan 14 16:12:10 PST 2009
    +#    I changed the call to GetOutputArray. It's no longer a built-in function
    +#    in the CLI.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Brad Whitlock, Tue Mar 26 12:06:51 PDT 2013
    +#    I added TestOperatorCreatedVariables.
    +#
    +#    Kathleen Biagas, Wed Feb 24 10:11:35 PST 2021
    +#    Remove setting of Pseudocolor colorTableName name to 'Default', as
    +#    that is now the default anyways.
    +#    Reset default continuous color table to 'hot' after a test that changes
    +#    it is finished, so that other tests aren't affected.
    +#
    +#    Justin Privitera, Wed May 18 11:25:46 PDT 2022
    +#    Changed *active* to *default* for everything related to color tables.
    +# 
    +# ----------------------------------------------------------------------------
    +
    +def GetOutputArray(plotID = -1, winID = -1):
    +    gInfo = GetGlobalAttributes()
    +    oldWin = gInfo.windows[gInfo.activeWindow]
    +    # Set the active window
    +    if winID != -1:
    +        SetActiveWindow(winID)
    +
    +    # Get the active plots
    +    active = []
    +    if plotID != -1:
    +        pL = GetPlotList()
    +        for i in range(pL.GetNumPlots()):
    +            if pL.GetPlots(i).activeFlag:
    +                active = active + [i]
    +        SetActivePlots(plotID)
    +
    +    pInfo = GetPlotInformation()
    +
    +    # Restore the old active plots
    +    if len(active) > 0:
    +        SetActivePlots(tuple(active))
    +
    +    # Restore the old active window
    +    if winID != -1:
    +        SetActiveWindow(oldWin)
    +
    +    return pInfo["Curve"]
    +
    +def InitAnnotation():
    +    a = AnnotationAttributes()
    +    TurnOffAllAnnotations(a)
    +    a.axes2D.visible = 1
    +    a.axes2D.xAxis.label.visible = 0
    +    a.axes2D.yAxis.label.visible = 0
    +    a.axes2D.xAxis.title.visible = 0
    +    a.axes2D.yAxis.title.visible = 0
    +    SetAnnotationAttributes(a)
    +
    +def TestLineout2D(time, suffix):
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    # Set the colortable to one that has white at the bottom values.
    +    SetDefaultContinuousColorTable("calewhite")
    +
    +    # Create the variable list.
    +    vars = ("default")
    +
    +    # Do some lineouts.
    +    p0 = (-4.01261, 1.91818)
    +    p1 = (-0.693968, 4.448759)
    +    p2 = (4.144392, 1.713066)
    +    nsteps = 15
    +    for i in range(nsteps):
    +        t = float(i) / float(nsteps - 1)
    +        p3x = t * p2[0] + (1. - t) * p1[0]
    +        p3y = t * p2[1] + (1. - t) * p1[1]
    +        SetActiveWindow(1)
    +        Lineout(p0, (p3x, p3y), vars)
    +
    +    if (time == 1):
    +        SetActiveWindow(1)
    +        Test("Lineout2d")
    +
    +    if (time == 2):
    +        SetActiveWindow(1)
    +        oa = GetOutputArray(4, 2)
    +        s = ''.join(['%f, '% x for x in oa])
    +        s = '(' + s + ')'
    +        TestText("Lineout2d_output_04", s)
    +        oa = GetOutputArray(8, 2)
    +        s = ''.join(['%f, '% x for x in oa])
    +        s = '(' + s + ')'
    +        TestText("Lineout2d_output_08", s)
    +
    +    SetActiveWindow(2)
    +
    +    InitAnnotation()
    +    Test("CurvesFrom2d" + suffix)
    +
    +    if (time == 2):
    +        oa = GetOutputArray(2)
    +        s = ''.join(['%f, '% x for x in oa])
    +        s = '(' + s + ')'
    +        TestText("Lineout2d_output_02", s)
    +        oa = GetOutputArray()
    +        s = ''.join(['%f, '% x for x in oa])
    +        s = '(' + s + ')'
    +        TestText("Lineout2d_output_15", s)
    +
    +    # Reset the CT to 'hot'
    +    SetDefaultContinuousColorTable("hot")
    +    # Delete the second window.
    +    DeleteWindow()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +    ResetLineoutColor()
    +
    +def TestLineout3D(time, suffix):
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +
    +    # Set the view
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.65577, 0.350079, 0.668888)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0.218553, 0.936082, -0.275655)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.perspective = 1
    +    SetView3D(v)
    +
    +    # Do some lineouts
    +    vars = ("default")
    +    p0 = (-10., -10., -10.)
    +    P  = ((-10., -10., 10.), (-10., 10., -10.), (-10., 10., 10.),\
    +(10., -10., -10.), (10., -10., 10.), (10., 10., -10.), (10., 10., 10.))
    +    for p in P:
    +        SetActiveWindow(1)
    +        Lineout(p0, p, vars)
    +
    +    if (time == 1):
    +        SetActiveWindow(1)
    +        pc = PseudocolorAttributes()
    +        pc.colorTableName = "xray"
    +        pc.SetOpacityType(pc.Constant)
    +        pc.opacity = 0.5
    +        SetPlotOptions(pc)
    +        Test("Lineout3d")
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("CurvesFrom3d" + suffix)
    +
    +    # Delete the second window.
    +    DeleteWindow()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +    ResetLineoutColor()
    +
    +def TestMultiVarLineout2D(time, suffix):
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    # Do some lineouts
    +    vars = ("p", "u", "v")
    +    Y = (2, 3, 4)
    +    x1 = -4.5
    +    x2 = 4.5
    +    for y in Y:
    +        SetActiveWindow(1)
    +        Lineout((x1, y), (x2, y), vars)
    +
    +    if (time == 1):
    +        SetActiveWindow(1)
    +        Test("MultiVarLineout2d")
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("MultiVarCurvesFrom2d" + suffix)
    +    DeleteWindow()
    +    DeleteAllPlots()
    +
    +    ResetPickLetter()
    +    ResetLineoutColor()
    +
    +def TestSAMRAI(time, suffix):
    +    OpenDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +    AddPlot("Pseudocolor", "Primitive Var _number_0")
    +    DrawPlots()
    +
    +    # Set the colortable to one that has white at the bottom values.
    +    SetDefaultContinuousColorTable("rainbow")
    +
    +    AddOperator("Slice", 1)
    +    slice = SliceAttributes()
    +    slice.originType = slice.Percent
    +    slice.originPercent = 18
    +    slice.axisType = slice.ZAxis
    +    slice.project2d = 1
    +    SetOperatorOptions(slice, 0, 1)
    +    DrawPlots()
    +    ResetView()
    +
    +    SetTimeSliderState(1)
    +
    +    #Do some lineouts
    +    p0 = (3, 3)
    +    p1 = (0, 20)
    +    p2 = (30, 0)
    +    nsteps = 15
    +    for i in range(nsteps):
    +        t = float(i) / float(nsteps - 1)
    +        p3x = t * p2[0] + (1. - t) * p1[0]
    +        p3y = t * p2[1] + (1. - t) * p1[1]
    +        SetActiveWindow(1)
    +        Lineout(p0, (p3x, p3y))
    +
    +    if (time == 1):
    +        SetActiveWindow(1)
    +        Test("LineoutSAMRAI")
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("CurvesFromSAMRAI" + suffix)
    +    DeleteWindow()
    +    DeleteAllPlots()
    +
    +    ResetPickLetter()
    +    ResetLineoutColor()
    +    SetDefaultContinuousColorTable("hot")
    +
    +def TestSpecifyLineoutWindow(time, suffix):
    +    #window 1
    +    OpenDatabase(data_path("pdb_test_data/dbA00.pdb"))
    +
    +    AddPlot("Pseudocolor", "mesh/ireg")
    +    DrawPlots()
    +    ResetView()
    +
    +    Lineout((0, 2.5), (5, 2.5))
    +
    +    if (time == 1):
    +        SetActiveWindow(1)
    +        InitAnnotation()
    +        Test("LineoutSpecifyWindow_01")
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("CurvesFromSpecifyWindow_01" + suffix)
    +
    +    SetActiveWindow(1)
    +    CloneWindow()
    +    #window 3
    +    SetTimeSliderState(4)
    +    DrawPlots()
    +
    +
    +    gla = GetGlobalLineoutAttributes()
    +    gla.createWindow = 0
    +    gla.windowId = 4
    +    SetGlobalLineoutAttributes(gla)
    +
    +    Lineout((0, 2.5), (5, 2.5))
    +
    +    if (time == 1):
    +        SetActiveWindow(3)
    +        InitAnnotation()
    +        Test("LineoutSpecifyWindow_02")
    +
    +    SetActiveWindow(4)
    +    InitAnnotation()
    +    Test("CurvesFromSpecifyWindow_02" + suffix)
    +
    +    DeleteWindow()
    +    SetActiveWindow(3)
    +    DeleteWindow()
    +    SetActiveWindow(2)
    +    DeleteWindow()
    +    DeleteAllPlots()
    +    gla.createWindow = 1
    +    gla.windowId = 2
    +    SetGlobalLineoutAttributes(gla)
    +
    +    ResetPickLetter()
    +    ResetLineoutColor()
    +
    +def TestDynamicLineout(time, suffix):
    +    if (time == 1):
    +        return
    +    #window 1
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    ResetView()
    +
    +    Lineout((0, 0.5, 2.5), (10, 0.5, 2.5))
    +
    +    gla = GetGlobalLineoutAttributes()
    +    gla.Dynamic = 1
    +    gla.curveOption = gla.UpdateCurve
    +    SetGlobalLineoutAttributes(gla)
    +
    +    SetActiveWindow(1)
    +    t = 0
    +    for i in range (10):
    +        t += 5
    +        SetTimeSliderState(t)
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    ResetView()
    +    Test("CurvesFromDynamic_01")
    +
    +    # go back to the beginning time state
    +    # and have new curves created for each new time 
    +    SetActiveWindow(1)
    +    t = 0
    +    SetTimeSliderState(t)
    +
    +    gla.curveOption = gla.CreateCurve
    +    SetGlobalLineoutAttributes(gla)
    +    for i in range (7):
    +        t += 5
    +        SetTimeSliderState(t)
    +
    +    # now have each new curve have its own color.
    +    gla.colorOption = gla.CreateColor
    +    SetGlobalLineoutAttributes(gla)
    +    for i in range (7):
    +        t += 5
    +        SetTimeSliderState(t)
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    ResetView()
    +    Test("CurvesFromDynamic_02")
    +
    +    ResetPickLetter()
    +    ResetLineoutColor()
    +    # delete window 2
    +    DeleteWindow()
    +    # clear all plots from window 1
    +    DeleteAllPlots()
    +
    +    dbs = (data_path("pdb_test_data/dbA00.pdb"),
    +           data_path("pdb_test_data/dbB00.pdb"),
    +           data_path("pdb_test_data/dbC00.pdb"))
    +    OpenDatabase(dbs[0])
    +    AddPlot("Pseudocolor", "mesh/ireg")
    +    OpenDatabase(dbs[1])
    +    AddPlot("Pseudocolor", "mesh/ireg")
    +    DrawPlots()
    +
    +    AddWindow()
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    OpenDatabase(dbs[2])
    +    AddPlot("Pseudocolor", "mesh/ireg")
    +    DrawPlots()
    +
    +    gla.Dynamic = 1
    +    gla.curveOption = gla.UpdateCurve
    +    SetGlobalLineoutAttributes(gla)
    +
    +    #Lineout for dbC00.pdb in window 2
    +    Lineout((5.0, 7.5, 0.), (10, 7.5, 0.))
    +
    +    SetActiveWindow(1)
    +    SetActivePlots(1)
    +
    +    #Lineout for dbB00.pdb in window 1
    +    Lineout((0, 8, 0), (5, 8, 0))
    +
    +    SetActivePlots(0)
    +    #Lineout for dbA00.pdb in window 1
    +    Lineout((0, 3, 0), (5, 3, 0))
    +
    +
    +    SetActiveWindow(3)
    +    InitAnnotation()
    +    Test("CurvesFromDynamic_03")
    +
    +    SetActiveWindow(1)
    +    SetActiveTimeSlider(dbs[1])
    +    SetTimeSliderState(15)
    +
    +    SetActiveWindow(3)
    +    Test("CurvesFromDynamic_04")
    +
    +    SetActiveWindow(1)
    +    SetActiveTimeSlider(dbs[0])
    +    SetTimeSliderState(3)
    +
    +
    +    SetActiveWindow(3)
    +    Test("CurvesFromDynamic_05")
    +
    +    SetActiveWindow(2)
    +    SetTimeSliderState(29)
    +
    +    SetActiveWindow(3)
    +    Test("CurvesFromDynamic_06")
    +
    +    ResetLineoutColor()
    +    ResetPickLetter()
    +    # delete window 3
    +    DeleteWindow()
    +    # delete window 2
    +    SetActiveWindow(2)
    +    DeleteWindow()
    +    # clear all plots from window 1
    +    DeleteAllPlots()
    +
    +def TestDynamic2():
    +    # VisIt00006006 -- ensure  that 'ClearRefLines' will 'disconnect' the lineout 
    +    # from its originating plot, and won't update when orig plot changes time.
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    ResetView()
    +    SetTimeSliderState(0)
    +    Lineout((0, 0.5, 2.5), (10, 0.5, 2.5))
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("Dynamic2_01")
    +
    +    SetActiveWindow(1)
    +    gla = GetGlobalLineoutAttributes()
    +    gla.Dynamic = 1
    +    gla.curveOption = gla.UpdateCurve
    +    SetGlobalLineoutAttributes(gla)
    +
    +    SetTimeSliderState(27)
    +
    +    SetActiveWindow(2)
    +    Test("Dynamic2_02")
    +
    +    SetActiveWindow(1)
    +    gla.Dynamic = 0
    +    SetGlobalLineoutAttributes(gla)
    +
    +    SetTimeSliderState(52)
    +
    +    SetActiveWindow(2)
    +    Test("Dynamic2_03")
    +
    +    ResetPickLetter()
    +    ResetLineoutColor()
    +    DeleteWindow()
    +    DeleteAllPlots()
    +
    +
    +def TestTecPlot():
    +    # VisIt00006243 -- curve generated from Lineout looks reversed in X
    +    OpenDatabase(data_path("tecplot_test_data/T3L3CLS17u.plt"))
    +
    +    AddPlot("Mesh", "mesh")
    +    AddPlot("Pseudocolor", "k")
    +    DrawPlots()
    +    ResetView()
    +
    +    v = GetView2D()
    +    v.windowCoords = (0.340063, 0.340868, 0.00512584, 0.00572613 )
    +    SetView2D(v)
    +
    +    Lineout((0.340505, 0.00565604, 0), (0.340291, 0.00514717, 0))
    +
    +    InitAnnotation()
    +    Test("LineoutTecPlot_01")
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("CurvesFromTecPlot_01")
    +
    +    ResetPickLetter()
    +    ResetLineoutColor()
    +    # delete window 2
    +    DeleteWindow()
    +    # remove plots from window 1
    +    DeleteAllPlots()
    +
    +def TestOperatorCreatedVariables():
    +    def SetCurveAtts():
    +        c = CurveAttributes(1)
    +        c.lineWidth = 2
    +        c.curveColor = (255,0,0,255)
    +        c.curveColorSource = c.Custom
    +        c.showLabels = 0
    +        SetPlotOptions(c)
    +
    +    TestSection("Operator-Created Variables")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    # Do lineout on a data binning variable.
    +    AddPlot("Pseudocolor", "operators/DataBinning/2D/Mesh", 1, 1)
    +    DataBinningAtts = DataBinningAttributes()
    +    DataBinningAtts.numDimensions = DataBinningAtts.Two  # One, Two, Three
    +    DataBinningAtts.dim1BinBasedOn = DataBinningAtts.X  # X, Y, Z, Variable
    +    DataBinningAtts.dim1Var = "default"
    +    DataBinningAtts.dim1SpecifyRange = 0
    +    DataBinningAtts.dim1MinRange = 0
    +    DataBinningAtts.dim1MaxRange = 1
    +    DataBinningAtts.dim1NumBins = 50
    +    DataBinningAtts.dim2BinBasedOn = DataBinningAtts.Y  # X, Y, Z, Variable
    +    DataBinningAtts.dim2Var = "default"
    +    DataBinningAtts.dim2SpecifyRange = 0
    +    DataBinningAtts.dim2MinRange = 0
    +    DataBinningAtts.dim2MaxRange = 1
    +    DataBinningAtts.dim2NumBins = 50
    +    DataBinningAtts.dim3BinBasedOn = DataBinningAtts.Variable  # X, Y, Z, Variable
    +    DataBinningAtts.dim3Var = "default"
    +    DataBinningAtts.dim3SpecifyRange = 0
    +    DataBinningAtts.dim3MinRange = 0
    +    DataBinningAtts.dim3MaxRange = 1
    +    DataBinningAtts.dim3NumBins = 50
    +    DataBinningAtts.outOfBoundsBehavior = DataBinningAtts.Clamp  # Clamp, Discard
    +    DataBinningAtts.reductionOperator = DataBinningAtts.Maximum  # Average, Minimum, Maximum, StandardDeviation, Variance, Sum, Count, RMS, PDF
    +    DataBinningAtts.varForReduction = "hardyglobal"
    +    DataBinningAtts.emptyVal = 0
    +    DataBinningAtts.outputType = DataBinningAtts.OutputOnBins  # OutputOnBins, OutputOnInputMesh
    +    DataBinningAtts.removeEmptyValFromCurve = 1
    +    SetOperatorOptions(DataBinningAtts, 1)
    +    DrawPlots()
    +    Lineout((9, 9), (4.5, -9))
    +    SetActiveWindow(1)
    +    ResetView()
    +    Test("lineout_op_vars_00")
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    ResetView()
    +    SetCurveAtts()
    +    Test("lineout_op_vars_01")
    +
    +    # delete window 2
    +    DeleteWindow()
    +    # remove plots from window 1
    +    DeleteAllPlots()
    +
    +    # Do lineout on a data binning variable that had other operators
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    AddPlot("Pseudocolor", "operators/DataBinning/2D/Mesh", 1, 1)
    +    SetOperatorOptions(DataBinningAtts, 1)
    +    AddOperator("Transform")
    +    AddOperator("Project")
    +    DrawPlots()
    +    Lineout((9, 9), (4.5, -9))
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    SetCurveAtts()
    +    Test("lineout_op_vars_02")
    +
    +    # delete window 2
    +    DeleteWindow()
    +    # remove plots from window 1
    +    DeleteAllPlots()
    +
    +
    +def DoTests(t,s):
    +    TestLineout2D(t,s)
    +    TestLineout3D(t,s)
    +    TestMultiVarLineout2D(t,s)
    +    TestSAMRAI(t,s)
    +    TestSpecifyLineoutWindow(t,s)
    +    TestDynamicLineout(t,s)
    +
    +def LineoutMain():
    +    InitAnnotation()
    +    la = GetGlobalLineoutAttributes()
    +    la.samplingOn = 1
    +    SetGlobalLineoutAttributes(la)
    +
    +    DoTests(1, "_withSampling")
    +
    +    la.samplingOn = 0
    +    SetGlobalLineoutAttributes(la)
    +
    +    DoTests(2, "_noSampling")
    +
    +    TestDynamic2()
    +    TestTecPlot()
    +    TestOperatorCreatedVariables()
    +
    +# Call the main function
    +LineoutMain()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_locktime.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_locktime.html new file mode 100644 index 000000000..fbc06a143 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_locktime.html @@ -0,0 +1,124 @@ + +Results for hybrid/locktime.py + +

    Results of VisIt Regression Test - hybrid/locktime

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    locktime_000.000.00
    locktime_010 modifications totalling 0 lines
    locktime_020.000.00
    locktime_030 modifications totalling 0 lines
    locktime_040 modifications totalling 0 lines
    locktime_050.000.00
    locktime_060 modifications totalling 0 lines
    locktime_070.000.00
    locktime_080 modifications totalling 0 lines
    locktime_090.000.00
    locktime_100 modifications totalling 0 lines
    locktime_110.000.00
    locktime_120 modifications totalling 0 lines
    locktime_130 modifications totalling 0 lines
    locktime_140.000.00
    locktime_150 modifications totalling 0 lines
    locktime_160.000.00
    locktime_170 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_locktime_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_locktime_py.html new file mode 100644 index 000000000..873fa0eb8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_locktime_py.html @@ -0,0 +1,125 @@ +hybrid/locktime.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial
    +#  CLASSES: nightly
    +#
    +#  Test Case:  multiwindowcorrelation.py 
    +#
    +#  Tests:      Tests database correlations when there are multiple windows.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Mon Mar 22 15:59:24 PST 2004
    +#
    +#  Modifications:
    +#    Brad Whitlock, Fri Apr 1 15:01:13 PST 2005
    +#    Added a function to check the database correlation list.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def GetTruncatedWindowInformationString():
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 5 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    for i in range(5):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    return s
    +
    +def TestLength(testname):
    +    tsLength = TimeSliderGetNStates()
    +    testString = "%s has %d states\n" % (GetActiveTimeSlider(), tsLength)
    +    testString = testString + GetTruncatedWindowInformationString()
    +    TestText(testname, testString)
    +
    +#
    +# Tests the time slider length and the correlation list.
    +#
    +def TestLengthAndCorrelationList(testname):
    +    tsLength = TimeSliderGetNStates()
    +    s = "%s has %d states\n" % (GetActiveTimeSlider(), tsLength)
    +    s = s + GetTruncatedWindowInformationString() + "\n\n"
    +
    +    names = GetDatabaseCorrelationNames()
    +    for name in names:
    +        c = GetDatabaseCorrelation(name)
    +        s = s + str(c) + "\n"
    +    TestText(testname, s)
    +
    +# Create a plot of DB A.
    +OpenDatabase(data_path("pdb_test_data/dbA00.pdb"))
    +
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +Test("locktime_00")
    +TestLength("locktime_01")
    +
    +# Create a second window and create plot of DB B.
    +CloneWindow()
    +DeleteAllPlots()
    +OpenDatabase(data_path("pdb_test_data/dbB00.pdb"))
    +
    +AddPlot("FilledBoundary", "material(mesh)")
    +InvertBackgroundColor()
    +DrawPlots()
    +Test("locktime_02")
    +TestLength("locktime_03")
    +
    +#
    +# Set the database correlation options to control how we create automatic
    +# correlations. When we lock the windows together, VisIt will create a
    +# correlation for the databases in both windows because the windows do not
    +# have a common database. I'm setting the correlation options here because 
    +# I want a StretchedIndexCorrelation correlation to be created.
    +#
    +StretchedIndexCorrelation = 1
    +SetDatabaseCorrelationOptions(StretchedIndexCorrelation, 0)
    +
    +#
    +# Lock time for window 2 and window 1. This will create a correlation between
    +# the databases in both windows.
    +#
    +ToggleLockTime()
    +SetActiveWindow(1)
    +ToggleLockTime()
    +TestLengthAndCorrelationList("locktime_04")
    +
    +SetTimeSliderState(17)
    +Test("locktime_05")
    +TestLength("locktime_06")
    +
    +SetActiveWindow(2)
    +Test("locktime_07")
    +TestLength("locktime_08")
    +
    +SetActiveWindow(1)
    +SetTimeSliderState(7)
    +Test("locktime_09")
    +TestLength("locktime_10")
    +
    +SetActiveWindow(2)
    +Test("locktime_11")
    +TestLength("locktime_12")
    +
    +#
    +# Now let's delete the correlation that was created. It will be have the same
    +# name as the active time slider.
    +#
    +DeleteDatabaseCorrelation(GetActiveTimeSlider())
    +TestLengthAndCorrelationList("locktime_13")
    +
    +# Now try moving the time slider state for DB B, since that's the active time
    +# slider for window 2, which is the active window right now.
    +SetTimeSliderState(15)
    +Test("locktime_14")
    +TestLength("locktime_15")
    +
    +# Make sure that window 1 did not change.
    +SetActiveWindow(1)
    +Test("locktime_16")
    +TestLength("locktime_17")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_locus.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_locus.html new file mode 100644 index 000000000..997e07be9 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_locus.html @@ -0,0 +1,42 @@ + +Results for hybrid/locus.py + +

    Results of VisIt Regression Test - hybrid/locus

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    locus_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_locus_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_locus_py.html new file mode 100644 index 000000000..f004d6175 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_locus_py.html @@ -0,0 +1,148 @@ +hybrid/locus.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  locus.py
    +#
    +#  Purpose:
    +#      Identifies the locus of points of maximum value from inside a sphere.
    +#      Tests repeated lineout capabilities, as well as the VisIt writer.
    +#
    +#  Programmer: Hank Childs
    +#  Date:       April 4, 2005
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Jul 14 10:28:41 PDT 2005
    +#    Save tmp.ultra to 'current' directory.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Jeremy Meredith, Wed Jan 20 12:50:34 EST 2010
    +#    Added src/lib to python path so we can find the visit writer module.
    +#
    +#    Mark C. Miller, Mon Apr 12 15:40:16 PDT 2010
    +#    Gracefully skip if we're in scalable mode.
    +#
    +#    Mark C. Miller, Tue Jun 29 16:51:46 PDT 2010
    +#    Changed exit code if we're in scalable mode from 116 (skip) to
    +#    121 (not applicable)
    +#
    +#    Kathleen Biagas, Tue Jul 15 11:10:27 MST 2014 
    +#    Don't need VISITARCHHOME on Windows, but do need 'outputToCurrentDirectory'
    +#
    +# ----------------------------------------------------------------------------
    +
    +import sys
    +import os
    +import platform
    +from os.path import join as pjoin
    +if not platform.system() == "Windows":
    +    sys.path.append(pjoin(os.environ['VISITARCHHOME'],"lib"))
    +
    +import visit_writer
    +
    +
    +# We can't run this test while in SR mode
    +# So, exit and indicate the test was skipped.
    +# 'scalable' is defined in Testing.py
    +if TestEnv.params["scalable"] != 0:
    +    Exit(121)
    +
    +# BEGIN USER MODIFIABLE SECTION
    +
    +database = silo_data_path("globe.silo")
    +origin = (0,0,0)
    +radius = 10
    +variable = "recenter(t) + 10*u"
    +isExpression = 1
    +startTheta = 0
    +thetaStep = 36
    +nThetaSteps = 11
    +startPhi = 0
    +phiStep = 18
    +nPhiSteps = 11
    +
    +# END USER MODIFIABLE SECTION
    +
    +if (isExpression):
    +   DefineScalarExpression("locus", variable)
    +OpenDatabase(database)
    +AddPlot("Pseudocolor", "locus")
    +DrawPlots()
    +
    +import math
    +
    +sw = GetSaveWindowAttributes()
    +sw.format = sw.ULTRA
    +sw.family = 0
    +sw.fileName = "tmp"
    +sw.outputToCurrentDirectory = 1
    +SetSaveWindowAttributes(sw)
    +
    +import locale
    +def GetNum(line):
    +   a = line.split(' ')
    +   pos = locale.atof(a[0])
    +   max = locale.atof(a[1])
    +   return [pos, max]
    +
    +
    +# Opens up the file "tmp.ultra" and gets the maximum position.
    +def GetMaximumPosition():
    +   uf = open("tmp.ultra", "r")
    +   line = uf.readline()  # Remove header
    +   line = uf.readline()
    +   num = GetNum(line)
    +   pos = num[0]
    +   max = num[1]
    +   while(1):
    +      line = uf.readline()
    +      if (line == ""):
    +          break
    +      num = GetNum(line)
    +      if (num[1] > max):
    +         pos = num[0]
    +         max = num[1]
    +   return [pos, max]
    +
    +
    +vals = []
    +pos = []
    +points = []
    +for j in range(nPhiSteps):
    +    phi = startPhi + j*phiStep
    +    phi_rads = phi*2.*math.pi / 360.
    +    for i in range(nThetaSteps):
    +        theta = startTheta + i*thetaStep
    +        theta_rads = theta*2.*math.pi / 360.
    +        PX = radius * math.cos(theta_rads) * math.sin(phi_rads)
    +        PY = radius * math.sin(theta_rads) * math.sin(phi_rads)
    +        PZ = radius * math.cos(phi_rads)
    +        PX2 = PX + origin[0]
    +        PY2 = PY + origin[1]
    +        PZ2 = PZ + origin[2]
    +        Lineout(origin, (PX2, PY2, PZ2))
    +        SetActiveWindow(2)
    +        SaveWindow()
    +        rv = GetMaximumPosition()
    +        pos = pos + [rv[0]]
    +        vals = vals + [rv[1]]
    +        prop = rv[0] / radius
    +        FX = origin[0] + (PX)*prop
    +        FY = origin[1] + (PY)*prop
    +        FZ = origin[2] + (PZ)*prop
    +        points = points + [FX, FY, FZ]
    +        DeleteAllPlots()
    +        SetActiveWindow(1)
    +
    +dims = (nThetaSteps, nPhiSteps, 1)
    +
    +visit_writer.WriteCurvilinearMesh("locus", 0, dims, points, [["max", 1, 1, vals]])
    +DeleteAllPlots()
    +OpenDatabase("locus.vtk")
    +AddPlot("Pseudocolor", "max")
    +DrawPlots()
    +Test("locus_01")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_math_expr.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_math_expr.html new file mode 100644 index 000000000..867783533 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_math_expr.html @@ -0,0 +1,60 @@ + +Results for hybrid/math_expr.py + +

    Results of VisIt Regression Test - hybrid/math_expr

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    math_expr_010.000.00
    math_expr_020.000.00
    math_expr_030.000.00
    math_expr_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_math_expr_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_math_expr_py.html new file mode 100644 index 000000000..f8d197e68 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_math_expr_py.html @@ -0,0 +1,44 @@ +hybrid/math_expr.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  math_expr.py
    +#
    +#  Tests:      mesh      - 3D unstructured, multi- domain
    +#              plots     - Pseudocolor
    +#
    +#  Defect ID:  '6115
    +#
    +#  Programmer: Hank Childs
    +#  Date:       June 30, 2005
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +
    +DefineScalarExpression("mod", "mod(t, 10)")
    +AddPlot("Pseudocolor", "mod")
    +DrawPlots()
    +Test("math_expr_01")
    +
    +DefineScalarExpression("round", "round(u/10)")
    +ChangeActivePlotsVar("round")
    +Test("math_expr_02")
    +
    +DefineScalarExpression("ceil", "ceil(u/10)")
    +ChangeActivePlotsVar("ceil")
    +Test("math_expr_03")
    +
    +DefineScalarExpression("floor", "floor(u/10)")
    +ChangeActivePlotsVar("floor")
    +Test("math_expr_04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_matsel.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_matsel.html new file mode 100644 index 000000000..57773e7c3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_matsel.html @@ -0,0 +1,54 @@ + +Results for hybrid/matsel.py + +

    Results of VisIt Regression Test - hybrid/matsel

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    hybrid_matsel_010.000.00
    hybrid_matsel_020.000.00
    hybrid_matsel_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_matsel_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_matsel_py.html new file mode 100644 index 000000000..2f514d6c1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_matsel_py.html @@ -0,0 +1,96 @@ +hybrid/matsel.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  matsel.py
    +#
    +#  Tests:      plots     - contour,pseudocolor
    +#
    +#  Defect ID:  '4353
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       June 24, 2004
    +#
    +#    Jeremy Meredith, Tue Jul 13 18:03:11 PDT 2004
    +#    Added curvilinear case.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +#
    +# Do a test of 2D nodal interpolation on material-selected rectilinear meshes
    +#
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +AddPlot("Pseudocolor", "u");
    +
    +sil = SILRestriction()
    +sets = sil.SetsInCategory("mat1")
    +sil.TurnOnAll()
    +sil.TurnOffSet(sets[4])
    +SetPlotSILRestriction(sil)
    +DrawPlots()
    +
    +Test("hybrid_matsel_01")
    +
    +DeleteAllPlots();
    +
    +#
    +# Do a test of 3D nodal interpolation on material-selected rectilinear meshes
    +# Ths is easiest to see when doing a contour plot of a matsel variable
    +#
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +AddPlot("Contour", "u");
    +
    +sil = SILRestriction()
    +sets = sil.SetsInCategory("mat1")
    +sil.TurnOnAll()
    +sil.TurnOffSet(sets[4])
    +SetPlotSILRestriction(sil)
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.624401, -0.368813, -0.688549)
    +focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.768963, 0.135421, 0.624786)
    +SetView3D(v)
    +
    +Test("hybrid_matsel_02")
    +
    +DeleteAllPlots();
    +
    +#
    +# Do a test of 2D nodal interpolation on material-selected curvilinear meshes
    +#
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +
    +AddPlot("Pseudocolor", "u");
    +
    +sil = SILRestriction()
    +sets = sil.SetsInCategory("mat1")
    +sil.TurnOnAll()
    +sil.TurnOffSet(sets[0])
    +SetPlotSILRestriction(sil)
    +DrawPlots()
    +v = GetView2D()
    +v.windowCoords = (0.1, 2.0, 2.8, 3.8)
    +SetView2D(v)
    +p = PseudocolorAttributes()
    +p.min = 0
    +p.max = .5
    +p.minFlag = 1
    +p.maxFlag = 1
    +SetPlotOptions(p)
    +
    +Test("hybrid_matsel_03")
    +
    +DeleteAllPlots();
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_matvf.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_matvf.html new file mode 100644 index 000000000..d9cd6c6fd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_matvf.html @@ -0,0 +1,120 @@ + +Results for hybrid/matvf.py + +

    Results of VisIt Regression Test - hybrid/matvf

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    matvf_010.000.00
    matvf_020.000.00
    matvf_030.000.00
    matvf_040.000.00
    matvf_050.000.00
    matvf_060.000.00
    matvf_070.000.00
    matvf_080.000.00
    matvf_090.000.00
    matvf_100.000.00
    matvf_post_ghost_10.000.00
    matvf_post_ghost_20.000.00
    matvf_post_ghost_30.000.00
    matvf_post_ghost_40.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_matvf_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_matvf_py.html new file mode 100644 index 000000000..c0affda4a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_matvf_py.html @@ -0,0 +1,249 @@ +hybrid/matvf.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  expressions.py
    +#
    +#  Tests:      mesh      - 3D unstructured, multi- domain
    +#                          3D rectilinear, single domain
    +#              plots     - Pseudocolor
    +#              operators - Threshold
    +#              selection - Material
    +#
    +#  Defect ID:  '2415 '3939 '5521
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 13, 2003
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Mon Oct 20 16:32:46 PDT 2003
    +#    Added bigsil portion to test '3939 (matvf with databases that create
    +#    ghost zones).
    +#
    +#    Hank Childs, Mon Jan  3 09:28:39 PST 2005
    +#    Added tests for materror.
    +#
    +#    Cyrus Harrison, Tue Feb 12 15:16:36 PST 2008
    +#    Added explicit tests for matvf w/ ghost zones. 
    +#
    +#    Cyrus Harrison, Wed Apr  9 11:17:22 PDT 2008
    +#    Added new test for post ghost info.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +
    +DefineScalarExpression("m1", 'matvf(mat1, ["1", "3"])')
    +AddPlot("Pseudocolor", "m1")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.17, 0.74, 0.64)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.31, 0.65, -0.68)
    +v.parallelScale = 0.866
    +v.nearPlane = -1.73
    +v.farPlane = 1.73
    +SetView3D(v)
    +
    +Test("matvf_01")
    +
    +t = ThresholdAttributes()
    +t.lowerBounds = (0.01)
    +t.upperBounds = (0.99)
    +SetDefaultOperatorOptions(t)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("matvf_02")
    +
    +sil = SILRestriction()
    +matsets = sil.SetsInCategory("mat1")
    +sil.TurnOffAll()
    +sil.TurnOnSet(matsets[1])
    +SetPlotSILRestriction(sil)
    +
    +Test("matvf_03")
    +
    +DeleteAllPlots()
    +
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor", "m1")
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (-0.82, 0.44, 0.37)
    +v.focus = (0, 3.3, 10)
    +v.viewUp = (0.13, 0.76, -0.62)
    +v.parallelScale = 7.32
    +v.nearPlane = -14.65
    +v.farPlane = 14.65
    +SetView3D(v)
    +
    +Test("matvf_04")
    +
    +sil = SILRestriction()
    +matsets = sil.SetsInCategory("mat1")
    +sil.TurnOffAll()
    +sil.TurnOnSet(matsets[1])
    +SetPlotSILRestriction(sil)
    +
    +Test("matvf_05")
    +
    +DeleteAllPlots()
    +
    +DefineScalarExpression("mbs", 'matvf(mat, 1)')
    +OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +AddPlot("Pseudocolor", "mbs")
    +t = ThresholdAttributes()
    +t.lowerBounds = (0.5)
    +t.upperBounds = (1.1)
    +SetDefaultOperatorOptions(t)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (-0.59, 0.33, 0.74)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (0.18, 0.94, -0.28)
    +v.parallelScale = 0.866
    +v.nearPlane = -1.73
    +v.farPlane = 1.73
    +SetView3D(v)
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.17, 0.74, 0.64)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.31, 0.65, -0.68)
    +v.parallelScale = 0.866
    +v.nearPlane = -1.73
    +v.farPlane = 1.73
    +SetView3D(v)
    +
    +Test("matvf_06")
    +
    +#NOTE: the fix for '3939 included disabling the communication of ghost zones. 
    +# As a result, the matvf_07 picture will contain internal surfaces that should
    +# not be there.  If this ever gets fixed, then the baseline picture will need
    +# to be reset.
    +v.nearPlane = -0.1
    +SetView3D(v)
    +
    +Test("matvf_07")
    +
    +# Now test the materror expression.
    +DeleteAllPlots()
    +DefineScalarExpression("materror1", 'materror(mat1, 1)')
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Pseudocolor", "materror1")
    +sil = SILRestriction()
    +sil.TurnOnAll()
    +SetPlotSILRestriction(sil)
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.17, 0.74, 0.64)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.31, 0.65, -0.68)
    +v.parallelScale = 0.866
    +v.nearPlane = -1.73
    +v.farPlane = 1.73
    +SetView3D(v)
    +
    +Test("matvf_08")
    +
    +DefineScalarExpression("abs_materror1", 'abs(materror1)')
    +t = ThresholdAttributes()
    +t.lowerBounds = (0.01)
    +t.upperBounds = (1.01)
    +t.listedVarNames = ("abs_materror1")
    +SetDefaultOperatorOptions(t)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("matvf_09")
    +
    +# Now test that it can calculate "volume fractions" using areas.
    +ReplaceDatabase(silo_data_path("rect2d.silo"))
    +
    +RemoveLastOperator()
    +Test("matvf_10")
    +
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("rect2d.silo"))
    +
    +OpenDatabase(silo_data_path("thinplane.silo"))
    +
    +
    +# tests for matvf w/ ghost zones
    +
    +# test standard
    +DefineScalarExpression("mvf_2", "matvf(mat,2)")
    +AddPlot("Pseudocolor", "mvf_2")
    +atts = PseudocolorAttributes(1)
    +atts.minFlag = 1
    +atts.min = 0.0
    +atts.maxFlag = 1
    +atts.max = 1.0
    +atts.centering = atts.Natural
    +SetPlotOptions(atts)
    +DrawPlots()
    +Test("matvf_post_ghost_1")
    +
    +# test with ghosts
    +atts = PseudocolorAttributes(1)
    +atts.minFlag = 1
    +atts.min = 0.0
    +atts.maxFlag = 1
    +atts.max = 1.0
    +atts.centering = atts.Nodal
    +SetPlotOptions(atts)
    +DrawPlots()
    +Test("matvf_post_ghost_2")
    +
    +# switch back to ensure w/ ghost case caching does not alter w/o ghosts
    +atts = PseudocolorAttributes(1)
    +atts.minFlag = 1
    +atts.min = 0.0
    +atts.maxFlag = 1
    +atts.max = 1.0
    +atts.centering = atts.Zonal
    +SetPlotOptions(atts)
    +DrawPlots()
    +Test("matvf_post_ghost_3")
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("thinplane.silo"))
    +
    +OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +
    +# test for gradient w/ matvf, to check if post ghosts were correctly 
    +# requested. 
    +
    +DefineScalarExpression("gate", "agrad(dist)[0] * matvf(mat,1)")
    +AddPlot("Pseudocolor", "gate")
    +DrawPlots()
    +Test("matvf_post_ghost_4")
    +DeleteAllPlots()
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_merge_tree.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_merge_tree.html new file mode 100644 index 000000000..45fb1335b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_merge_tree.html @@ -0,0 +1,108 @@ + +Results for hybrid/merge_tree.py + +

    Results of VisIt Regression Test - hybrid/merge_tree

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    rect2d_mtree0.000.00
    rect2d_stree0.000.00
    rect2d_localt_mt0.000.00
    rect2d_localt_st0.000.00
    noise2d_mtree0.000.00
    noise2d_stree0.000.00
    noise2d_localt_mt0.000.00
    noise2d_localt_st0.000.00
    noise3d_mtree0.000.00
    noise3d_stree0.000.00
    noise3d_localt_mt0.000.00
    noise3d_localt_st0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_merge_tree_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_merge_tree_py.html new file mode 100644 index 000000000..eb40b6a0c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_merge_tree_py.html @@ -0,0 +1,64 @@ +hybrid/merge_tree.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  merge_tree.py
    +#
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Friday October 28, 2016
    +#
    +#  Modifiations:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +test_dbs = { "rect2d" : {"var":  "d",
    +                         "path": silo_data_path("rect2d.silo")} ,
    +             "noise2d" : {"var": "shepardglobal",
    +                          "path" :silo_data_path("noise2d.silo")} ,
    +
    +             "noise3d" : {"var": "shepardglobal",
    +                          "path": silo_data_path("noise.silo")}
    +           }
    +
    +for db_name,db_info in list(test_dbs.items()):
    +    test_db_file = db_info["path"]
    +    OpenDatabase(test_db_file)
    +
    +    # test merge tree, split tree and local threshold exprs
    +
    +    DefineScalarExpression("mtree", "merge_tree(%s)" % db_info["var"])
    +    AddPlot("Pseudocolor", "mtree")
    +    DrawPlots()
    +
    +    Test(db_name + "_mtree")
    +    DeleteAllPlots()
    +
    +    DefineScalarExpression("stree", "split_tree(%s)" % db_info["var"])
    +    AddPlot("Pseudocolor", "stree")
    +    DrawPlots()
    +
    +    Test(db_name + "_stree")
    +    DeleteAllPlots()
    +
    +    DefineScalarExpression("localt_mt", "local_threshold(%s,mtree)" % db_info["var"])
    +
    +    AddPlot("Pseudocolor", "localt_mt")
    +    DrawPlots()
    +
    +    Test(db_name + "_localt_mt")
    +    DeleteAllPlots()
    +
    +    DefineScalarExpression("localt_st", "local_threshold(%s,stree)" % db_info["var"])
    +
    +    AddPlot("Pseudocolor", "localt_st")
    +    DrawPlots()
    +
    +    Test(db_name + "_localt_st")
    +    DeleteAllPlots()
    +
    +
    +    CloseDatabase(test_db_file)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_mesh_quality.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_mesh_quality.html new file mode 100644 index 000000000..f2900261f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_mesh_quality.html @@ -0,0 +1,93 @@ + +Results for hybrid/mesh_quality.py + +

    Results of VisIt Regression Test - hybrid/mesh_quality

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    mesh_quality_010.000.00
    mesh_quality_020.000.00
    mesh_quality_030.000.00
    mesh_quality_040.000.00
    mesh_quality_050.000.00
    mesh_quality_060.000.00
    mesh_quality_070.000.00
    Side Volume
    min_side_volume_000.000.00
    max_side_volume_000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_mesh_quality_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_mesh_quality_py.html new file mode 100644 index 000000000..588276057 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_mesh_quality_py.html @@ -0,0 +1,160 @@ +hybrid/mesh_quality.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  mesh_quality.py
    +#
    +#  Tests:      mesh      - 3D unstructured
    +#              plots     - Pseudocolor
    +#
    +#  Programmer: Hank Childs
    +#  Date:       November 25, 2003
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Fri Jun 25 07:58:32 PDT 2004
    +#    The name of the mesh quality variables for ucd3d changed, since there are
    +#    now multiple meshes in that file.  Use the new names.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Matthew Wheeler, Thu Feb 06 12:00:00 GMT 2014
    +#    Added two new AWE mesh quality tests
    +#
    +#    Alister Maguire, Wed Apr 21 13:26:01 PDT 2021
    +#    Added TestSideVolume.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def TestSideVolume():
    +    #
    +    # This ensures that a bug fix is still working well.
    +    #
    +    TestSection("Side Volume")
    +
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +    AddPlot("Pseudocolor", "mesh_quality/min_side_volume")
    +    DrawPlots()
    +
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (0.3, 0.8, 0.6)
    +    SetView3D(v)
    +    SetTimeSliderState(10)
    +
    +    Test("min_side_volume_00")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "mesh_quality/max_side_volume")
    +    DrawPlots()
    +
    +    Test("max_side_volume_00")
    +    DeleteAllPlots()
    +
    +    CloseDatabase(silo_data_path("wave.visit"))
    +
    +
    +OpenDatabase(silo_data_path("ucd3d.silo"))
    +
    +AddPlot("Pseudocolor", "mesh_quality/ucdmesh3d/volume")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (-0.178, -0.29, 0.94)
    +v.focus = (0, 2.5, 10)
    +v.viewUp = (-0.11, 0.95, 0.26)
    +v.parallelScale = 11.45
    +v.nearPlane = -22.9
    +v.farPlane = 22.9
    +v.imageZoom = 1.46
    +SetView3D(v)
    +
    +Test("mesh_quality_01")
    +
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "mesh_quality/ucdmesh3d/skew")
    +DrawPlots()
    +
    +Test("mesh_quality_02")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("tire.silo"))
    +
    +AddPlot("Pseudocolor", "mesh_quality/aspect")
    +DrawPlots()
    +v = View3DAttributes()
    +v.viewNormal = (-0.128, 0.26, 0.958)
    +v.focus = (0, 0, 0)
    +v.viewUp = (0.31, 0.92, -0.21)
    +v.parallelScale = 83
    +v.nearPlane = -165
    +v.farPlane = 165
    +SetView3D(v)
    +
    +pc = PseudocolorAttributes()
    +pc.minFlag = 1
    +pc.maxFlag = 1
    +pc.min=11
    +pc.max=22
    +SetPlotOptions(pc)
    +
    +Test("mesh_quality_03")
    +
    +pc.minFlag=0
    +pc.maxFlag=0
    +SetPlotOptions(pc)
    +Test("mesh_quality_04")
    +
    +AddOperator("Threshold")
    +thres = ThresholdAttributes()
    +thres.lowerBounds = (0.5)
    +thres.upperBounds = (0.55)
    +thres.listedVarNames = ("mesh_quality/skew")
    +SetOperatorOptions(thres)
    +DrawPlots()
    +Test("mesh_quality_05")
    +
    +
    +
    +DeleteAllPlots()
    +
    +CloseDatabase(silo_data_path("ucd3d.silo"))
    +CloseDatabase(silo_data_path("tire.silo"))
    +
    +# Add AWE Mesh-Quality tests
    +
    +OpenDatabase(silo_data_path("specmix_ucd.silo"))
    +
    +AddPlot("Mesh", "Mesh")
    +AddPlot("Pseudocolor", "mesh_quality/Mesh/min_corner_area")
    +pc = PseudocolorAttributes()
    +pc.invertColorTable = 1
    +SetPlotOptions(pc)
    +DrawPlots()
    +Test("mesh_quality_06")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Mesh", "Mesh")
    +AddPlot("Pseudocolor", "mesh_quality/Mesh/min_sin_corner")
    +pc = PseudocolorAttributes()
    +pc.invertColorTable = 1
    +SetPlotOptions(pc)
    +DrawPlots()
    +Test("mesh_quality_07")
    +
    +DeleteAllPlots()
    +
    +CloseDatabase(silo_data_path("specmix_ucd.silo"))
    +
    +TestSideVolume()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_mir.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_mir.html new file mode 100644 index 000000000..09da2dad4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_mir.html @@ -0,0 +1,168 @@ + +Results for hybrid/mir.py + +

    Results of VisIt Regression Test - hybrid/mir

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Curvilinear, 2D
    mir_curv2d_equi_t0.000.00
    mir_curv2d_equi_z0.000.00
    mir_curv2d_equi_z_i50.000.00
    mir_curv2d_plic0.000.00
    mir_curv2d_isovol0.000.00
    Unstructured, 2D
    mir_ucd2d_equi_t0.000.00
    mir_ucd2d_equi_z0.000.00
    mir_ucd2d_equi_z_i50.000.00
    mir_ucd2d_plic0.000.00
    mir_ucd2d_isovol0.000.00
    Rectilinear, 2D
    mir_rect2d_equi_t0.000.00
    mir_rect2d_equi_z0.000.00
    mir_rect2d_equi_z_i50.000.00
    mir_rect2d_plic0.000.00
    mir_rect2d_isovol0.000.00
    Rectilinear, 3D
    mir_rect3d_equi_t0.000.00
    mir_rect3d_equi_z0.000.00
    mir_rect3d_equi_z_i50.000.00
    mir_rect3d_plic0.000.00
    mir_rect3d_isovol0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_mir_cache.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_mir_cache.html new file mode 100644 index 000000000..476cca1fc --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_mir_cache.html @@ -0,0 +1,48 @@ + +Results for hybrid/mir_cache.py + +

    Results of VisIt Regression Test - hybrid/mir_cache

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    mir_cache10.000.00
    mir_cache20.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_mir_cache_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_mir_cache_py.html new file mode 100644 index 000000000..a7e5a7bef --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_mir_cache_py.html @@ -0,0 +1,65 @@ +hybrid/mir_cache.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  mir_cache.py
    +#
    +#  Tests:      mesh      - 3D curvilinear,multi-domain,ghost zones replicated.
    +#              plots     - volume, PC
    +#
    +#  Defect ID:  '3542
    +#
    +#  Programmer: Hank Childs
    +#  Date:       July 22, 2003
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +view = View3DAttributes()
    +view.viewNormal = (0.557976, 0.651128, 0.514485)
    +view.focus = (0.5, 0.5, 0.5)
    +view.viewUp = (-0.0955897, 0.666272, -0.739557)
    +view.viewAngle = 30
    +view.parallelScale = 0.866025
    +view.nearPlane = -1.73205
    +view.farPlane = 1.73205
    +view.perspective = 1
    +SetView3D(view)
    +
    +#
    +# The volume plot does not need ghost zones, so this will create one
    +# set of MIRs.
    +#
    +OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +AddPlot("Volume", "dist")
    +sil = SILRestriction()
    +sets = sil.SetsInCategory("mat")
    +sil.TurnOffAll()
    +sil.TurnOnSet(sets[0])
    +SetPlotSILRestriction(sil)
    +DrawPlots()
    +
    +DeleteAllPlots()
    +
    +#
    +# The PC plot will need ghost zones.  If it does not create a new set of MIRs,
    +# we will get garbled data.
    +#
    +AddPlot("Pseudocolor", "dist")
    +DrawPlots()
    +
    +Test("mir_cache1")
    +
    +#
    +# Make extra sure that there aren't garbled zones in the interior.
    +#
    +view.nearPlane = -0.3
    +SetView3D(view)
    +Test("mir_cache2")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_mir_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_mir_py.html new file mode 100644 index 000000000..3d7d4eb5f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_mir_py.html @@ -0,0 +1,73 @@ +hybrid/mir.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  mir.py
    +#
    +#  Tests:      mesh      - 2D, 3D, structured, unstructured, single domain
    +#              plots     - FilledBoundary
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       March 24, 2010
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def TestOneMode(file, mat, name):
    +    SetMaterialAttributes(mat)
    +    ReOpenDatabase(file)
    +    Test(name)
    +
    +
    +def TestOneFile(isRectilinear, file, matname, prefix):
    +    OpenDatabase(file)
    +
    +    AddPlot("FilledBoundary", matname)
    +    DrawPlots()
    +
    +    v3 = GetView3D()
    +    v3.viewNormal = (0.3, 0.4, 0.8)
    +    SetView3D(v3)
    +
    +    m = MaterialAttributes()
    +
    +    m.algorithm = m.EquiT
    +    TestOneMode(file, m, prefix + "_equi_t")
    +
    +    m.algorithm = m.EquiZ
    +    m.iterationEnabled = False
    +    TestOneMode(file, m, prefix + "_equi_z")
    +
    +    m.algorithm = m.EquiZ
    +    m.iterationEnabled = True
    +    m.numIterations = 5
    +    m.iterationDamping = 0.4
    +    TestOneMode(file, m, prefix + "_equi_z_i5")
    +    m.iterationEnabled = False
    +
    +    m.algorithm = m.PLIC
    +    TestOneMode(file, m, prefix + "_plic")
    +
    +    m.algorithm = m.Isovolume
    +    TestOneMode(file, m, prefix + "_isovol")
    +
    +    # Discrete currently only works on rectilinear
    +    if isRectilinear:
    +        m.algorithm = m.Discrete
    +        # Discrete is stochastic, we can't test it reliably
    +        #TestOneMode(file, m, prefix + "_discrete")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(file)
    +
    +TestSection("Curvilinear, 2D")
    +TestOneFile(False,silo_data_path("specmix_quad.silo") , "Material", "mir_curv2d")
    +TestSection("Unstructured, 2D")
    +TestOneFile(False,silo_data_path("specmix_ucd.silo") , "Material", "mir_ucd2d")
    +TestSection("Rectilinear, 2D")
    +TestOneFile(True,silo_data_path("rect2d.silo") , "mat1", "mir_rect2d")
    +TestSection("Rectilinear, 3D")
    +TestOneFile(True,silo_data_path("rect3d.silo") , "mat1", "mir_rect3d")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_missingdata.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_missingdata.html new file mode 100644 index 000000000..1192077b5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_missingdata.html @@ -0,0 +1,88 @@ + +Results for hybrid/missingdata.py + +

    Results of VisIt Regression Test - hybrid/missingdata

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Missing data
    missingdata_0_000.000.00
    missingdata_0_010.000.00
    missingdata_0_020.000.00
    missingdata_0_030.000.00
    missingdata_0_041 modifications totalling 8 lines
    Expressions and missing data
    missingdata_1_000.000.00
    missingdata_1_010.000.00
    missingdata_1_020.000.00
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_missingdata_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_missingdata_py.html new file mode 100644 index 000000000..d26cf0053 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_missingdata_py.html @@ -0,0 +1,72 @@ +hybrid/missingdata.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  missingdata.py
    +#
    +#  Tests:      missing data
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Jan 19 09:49:15 PST 2012
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def SetTheView():
    +    v = GetView2D()
    +    v.viewportCoords = (0.02, 0.98, 0.25, 1)
    +    SetView2D(v)
    +
    +def test0(datapath):
    +    TestSection("Missing data")
    +    OpenDatabase(pjoin(datapath,"earth.nc"))
    +    AddPlot("Pseudocolor", "height")
    +    DrawPlots()
    +    SetTheView()
    +    Test("missingdata_0_00")
    +    ChangeActivePlotsVar("carbon_particulates")
    +    Test("missingdata_0_01")
    +    ChangeActivePlotsVar("seatemp")
    +    Test("missingdata_0_02")
    +    ChangeActivePlotsVar("population")
    +    Test("missingdata_0_03")
    +
    +    # Pick on higher zone numbers to make sure pick works.
    +    PickByNode(domain=0, element=833621)
    +    TestText("missingdata_0_04", GetPickOutput())
    +
    +    DeleteAllPlots()
    +
    +def test1(datapath):
    +    TestSection("Expressions and missing data")
    +    OpenDatabase(pjoin(datapath,"earth.nc"))
    +    DefineScalarExpression("meaningless", "carbon_particulates + seatemp")
    +    AddPlot("Pseudocolor", "meaningless")
    +    DrawPlots()
    +    SetTheView()
    +    Test("missingdata_1_00")
    +    DeleteAllPlots()
    +
    +    DefineVectorExpression("color", "color(red,green,blue)")
    +    AddPlot("Truecolor", "color")
    +    DrawPlots()
    +    ResetView()
    +    SetTheView()
    +    Test("missingdata_1_01")
    +
    +    DefineVectorExpression("color2", "color(population*0.364,green,blue)")
    +    ChangeActivePlotsVar("color2")
    +    v1 = GetView2D()
    +    v1.viewportCoords = (0.02, 0.98, 0.02, 0.98)
    +    v1.windowCoords = (259.439, 513.299, 288.93, 540) #25.466)
    +    SetView2D(v1)
    +    Test("missingdata_1_02")
    +
    +def main():
    +    datapath = data_path("netcdf_test_data")
    +    test0(datapath)
    +    test1(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_multivar.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_multivar.html new file mode 100644 index 000000000..328dd7868 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_multivar.html @@ -0,0 +1,60 @@ + +Results for hybrid/multivar.py + +

    Results of VisIt Regression Test - hybrid/multivar

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    multivar_010.000.00
    multivar_020.000.00
    multivar_030.000.00
    multivar_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_multivar_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_multivar_py.html new file mode 100644 index 000000000..208d99dc8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_multivar_py.html @@ -0,0 +1,108 @@ +hybrid/multivar.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  multivar.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - pc, vector, filledboundary 
    +#              operators - isosurface
    +#
    +#  Defect ID:  '7843
    +#
    +#  Programmer: Hank Childs
    +#  Date:       April 24, 2002
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Sep  5 10:55:47 PDT 2002
    +#    Changed the variable format for SubsetPlots, to reflect new interface
    +#    which allows subsets of groups.
    +#
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset plots.
    +#
    +#    Jeremy Meredith, Thu Jun 24 12:58:06 PDT 2004
    +#    Set the vector origin explicitly for some cases because I changed the
    +#    default to Tail.
    +#
    +#    Hank Childs, Tue Mar 13 09:42:24 PDT 2007
    +#    Add new test for mixed centering multiple variables and expressions.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +
    +# Set up the isosurface operators attributes
    +
    +atts = IsosurfaceAttributes()
    +atts.contourMethod = atts.Value
    +atts.contourValue = 500
    +atts.variable = "t"
    +SetDefaultOperatorOptions(atts)
    +
    +
    +# Test the PC plot with the isosurface operator.
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isosurface")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.SetViewNormal(-0.528889, 0.367702, 0.7649)
    +v.SetViewUp(0.176641, 0.929226, -0.324558)
    +v.SetParallelScale(17.3205)
    +v.SetPerspective(1)
    +SetView3D(v)
    +
    +Test("multivar_01")
    +DeleteAllPlots()
    +
    +
    +# Test the subset plot with the isosurface operator.
    +
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Isosurface")
    +DrawPlots()
    +Test("multivar_02")
    +DeleteAllPlots()
    +
    +
    +# Test the subset plot with the isosurface operator.
    +
    +AddPlot("Vector", "vel")
    +vec=VectorAttributes()
    +vec.useStride = 1
    +vec.stride = 1
    +vec.vectorOrigin = vec.Middle
    +SetPlotOptions(vec)
    +AddOperator("Isosurface")
    +DrawPlots()
    +Test("multivar_03")
    +DeleteAllPlots()
    +
    +# Test multiple variables with different centerings with expressions ('7843)
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +DefineScalarExpression("x", "coord(curvmesh3d)[0]")
    +DefineScalarExpression("y", "coord(curvmesh3d)[1]")
    +DefineScalarExpression("z", "coord(curvmesh3d)[2]")
    +DefineScalarExpression("myvar", "if(and(lt(x,0),gt(z,0)), abs(x*z), -abs(x*z))")
    +AddPlot("Pseudocolor", "myvar")
    +AddOperator("Isosurface")
    +atts.variable = "d"
    +atts.contourValue = 3
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("multivar_04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_pos_cmfe.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_pos_cmfe.html new file mode 100644 index 000000000..efc6939ef --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_pos_cmfe.html @@ -0,0 +1,108 @@ + +Results for hybrid/pos_cmfe.py + +

    Results of VisIt Regression Test - hybrid/pos_cmfe

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    pos_cmfe_010.000.00
    pos_cmfe_020.000.00
    pos_cmfe_030.000.00
    pos_cmfe_040.000.00
    pos_cmfe_050 modifications totalling 0 lines
    pos_cmfe_060 modifications totalling 0 lines
    pos_cmfe_070 modifications totalling 0 lines
    pos_cmfe_080 modifications totalling 0 lines
    pos_cmfe_090 modifications totalling 0 lines
    pos_cmfe_100 modifications totalling 0 lines
    pos_cmfe_110.000.00
    pos_cmfe_120.000.00
    pos_cmfe_130.000.00
    pos_cmfe_140.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_pos_cmfe_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_pos_cmfe_py.html new file mode 100644 index 000000000..003fa89ee --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_pos_cmfe_py.html @@ -0,0 +1,149 @@ +hybrid/pos_cmfe.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  pos_cmfe.py
    +#
    +#  Defect ID:  '5528, '5677
    +#
    +#  Programmer: Hank Childs
    +#  Date:       January 9, 2006
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Tue Jul 15 10:43:58 EDT 2008
    +#    Changed number of vectors in vector plot to match the old behavior.
    +#    (We now account for how many domains there are.)
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +
    +
    +# Test general capability.
    +DefineScalarExpression("cmfe", "pos_cmfe(<%s:d>, curvmesh2d, -1.)" % cmfe_silo_data_path("ucd2d.silo"))
    +AddPlot("Pseudocolor", "cmfe")
    +DrawPlots()
    +Test("pos_cmfe_01")
    +
    +# Zonal vars
    +DefineScalarExpression("cmfeZ", "pos_cmfe(<%s:p>, curvmesh2d, -1.)" %  cmfe_silo_data_path("ucd2d.silo"))
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "cmfeZ")
    +DrawPlots()
    +Test("pos_cmfe_02")
    +
    +# Test using the expression as a secondary variable.
    +ChangeActivePlotsVar("d")
    +AddOperator("Threshold")
    +t = ThresholdAttributes()
    +t.lowerBounds = (0.1)
    +t.listedVarNames = ("cmfe")
    +SetOperatorOptions(t)
    +DrawPlots()
    +Test("pos_cmfe_03")
    +
    +# Test using cmfe in another expression.
    +DefineVectorExpression("disp", "{0, 3*cmfe}")
    +RemoveLastOperator()
    +d = DisplaceAttributes()
    +d.variable = "disp"
    +SetDefaultOperatorOptions(d)
    +AddOperator("Displace")
    +DrawPlots()
    +Test("pos_cmfe_04")
    +
    +RemoveLastOperator()
    +ChangeActivePlotsVar("cmfe")
    +DrawPlots()
    +
    +Query("MinMax")
    +t = GetQueryOutputString()
    +TestText("pos_cmfe_05", t)
    +
    +# Now test error conditions.
    +DefineScalarExpression("cmfe2", "pos_cmfe(pressure, quadmesh)")
    +ChangeActivePlotsVar("cmfe2")
    +DrawPlots()
    +t = GetLastError()
    +TestText("pos_cmfe_06", t)
    +
    +DefineScalarExpression("cmfe3", "pos_cmfe(<bad_file.silo:a_var>, curvmesh2d, 0.)")
    +ChangeActivePlotsVar("cmfe3")
    +DrawPlots()
    +t = GetLastError()
    +TestText("pos_cmfe_07", t)
    +
    +DefineScalarExpression("cmfe4", "pos_cmfe(<%s:pressure>, curvmesh2d)" %  cmfe_silo_data_path("wave0100.silo"))
    +ChangeActivePlotsVar("cmfe4")
    +DrawPlots()
    +t = GetLastError()
    +TestText("pos_cmfe_08", t)
    +
    +DefineScalarExpression("cmfe5", "pos_cmfe(<%s:pressure>)" % cmfe_silo_data_path("wave0100.silo"))
    +ChangeActivePlotsVar("cmfe5")
    +DrawPlots()
    +t = GetLastError()
    +TestText("pos_cmfe_09", t)
    +
    +# Invalid variable in new database.
    +DefineScalarExpression("cmfe6", "pos_cmfe(<%s:xyz>, curvmesh2d, 0.)" % cmfe_silo_data_path("ucd2d.silo"))
    +ChangeActivePlotsVar("cmfe6")
    +DrawPlots()
    +t = GetLastError()
    +TestText("pos_cmfe_10", t)
    +
    +# Enough error checking, let's do some more testing when it works.
    +
    +# 3D, multi-block to multi-block.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +DefineScalarExpression("cmfe7", "pos_cmfe(<%s:d>, mesh1, 0.)" %  cmfe_silo_data_path("multi_curv3d.silo"))
    +AddPlot("Pseudocolor", "cmfe7")
    +DrawPlots()
    +Test("pos_cmfe_11")
    +
    +DeleteAllPlots()
    +
    +# multi-block to single-block.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +DefineScalarExpression("cmfe8", "pos_cmfe(<%s:d>, curvmesh3d, 0.)" %  cmfe_silo_data_path("multi_curv3d.silo"))
    +AddPlot("Pseudocolor", "cmfe8")
    +DrawPlots()
    +Test("pos_cmfe_12")
    +
    +# single-block to multi-block.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_curv3d.silo"))
    +
    +DefineScalarExpression("cmfe9", "pos_cmfe(<%s:d>, mesh1, 0.)" % cmfe_silo_data_path("curv3d.silo"))
    +AddPlot("Pseudocolor", "cmfe9")
    +DrawPlots()
    +Test("pos_cmfe_13")
    +
    +# single-block to multi-block -- vector
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +DefineVectorExpression("cmfe10", "pos_cmfe(gradient(<%s:d>), mesh1, {0,0,0})"% cmfe_silo_data_path("curv3d.silo"))
    +AddPlot("Vector", "cmfe10")
    +vec = VectorAttributes()
    +vec.nVectors = 400*36
    +SetPlotOptions(vec)
    +DrawPlots()
    +Test("pos_cmfe_14")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_py_exprs.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_py_exprs.html new file mode 100644 index 000000000..ad118c31e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_py_exprs.html @@ -0,0 +1,78 @@ + +Results for hybrid/py_exprs.py + +

    Results of VisIt Regression Test - hybrid/py_exprs

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    py_exprs_000.000.00
    py_exprs_010.000.00
    py_exprs_020.000.00
    py_exprs_030.000.00
    py_exprs_040.000.00
    py_exprs_050.000.00
    py_exprs_060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_py_exprs_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_py_exprs_py.html new file mode 100644 index 000000000..9dab74877 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_py_exprs_py.html @@ -0,0 +1,106 @@ +hybrid/py_exprs.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  py_exprs.py
    +#
    +#  Tests:      python filters / python expressions
    +#              plots     - Pseudocolor
    +#
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Fri May 21 09:14:07 PDT 2010
    +#
    +#  Modifications:
    +#
    +#  Eddie Rusu - Tue Jul 30 13:22:17 PDT 2019
    +#  Added testing for python expressions with numpy mixed with simple
    +#  expressions.
    +#
    +#  Kathleen Biagas Fri Mar 12, 2021
    +#  Rename xx_simple_xx.py expression scripts to prevent them being run when
    +#  passing file globs to test suite (eg tests/hybrid/*.py) 
    +#
    +# ----------------------------------------------------------------------------
    +
    +import os
    +from os.path import join as pjoin
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +script_file = pjoin(os.path.split(TestScriptPath())[0],"py_expr_script_00.vpe")
    +
    +DefinePythonExpression("d_wave",("d"),file=script_file)
    +AddPlot("Pseudocolor", "d_wave")
    +AddOperator("Elevate")
    +v = View3DAttributes()
    +v.viewNormal = (0.724969, -0.544156, 0.422273)
    +v.focus = (0.5, 0.666667, 0.526085)
    +v.viewUp = (-0.377473, 0.198927, 0.904401)
    +v.viewAngle = 30
    +v.parallelScale = 0.981769
    +v.nearPlane = -1.96354
    +v.farPlane = 1.96354
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0.5, 0.666667, 0.526085)
    +SetView3D(v)
    +DrawPlots()
    +Test("py_exprs_00")
    +DeleteAllPlots()
    +
    +
    +# Test simple expressions mixed with python expressions using numpy
    +OpenDatabase(silo_data_path("multi_rect2d.silo"))
    +
    +script_file = pjoin(os.path.split(TestScriptPath())[0],"simple_numpy_expr.vpe")
    +DefinePythonExpression("python_multiply", ['d','p'], file=script_file)
    +AddPlot("Pseudocolor", "python_multiply", 1, 1)
    +DrawPlots()
    +Test("py_exprs_01")
    +DeleteAllPlots()
    +
    +script_file = pjoin(os.path.split(TestScriptPath())[0],"python_simple_mix_01.vpe")
    +DefineScalarExpression("my_expr", "d*p")
    +DefinePythonExpression("python_with_simple", ['d','p', 'my_expr'], file=script_file)
    +AddPlot("Pseudocolor", "python_with_simple", 1, 1)
    +DrawPlots()
    +Test("py_exprs_02")
    +DeleteAllPlots()
    +
    +script_file = pjoin(os.path.split(TestScriptPath())[0],"python_simple_mix_02.vpe")
    +DefinePythonExpression("python_with_python", ['d','p', 'python_multiply'], file=script_file)
    +AddPlot("Pseudocolor", "python_with_python", 1, 1)
    +DrawPlots()
    +Test("py_exprs_03")
    +DeleteAllPlots()
    +
    +DefineScalarExpression("simple_with_python", "python_multiply-p+d+p*p")
    +AddPlot("Pseudocolor", "simple_with_python", 1, 1)
    +DrawPlots()
    +Test("py_exprs_04")
    +DeleteAllPlots()
    +
    +CloseDatabase(silo_data_path("multi_rect2d.silo"))
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +script_file = pjoin(os.path.split(TestScriptPath())[0],"python_example_1.vpe")
    +DefinePythonExpression("MyExpression", ['d', 'p'], file=script_file)
    +AddPlot("Pseudocolor", "MyExpression")
    +DrawPlots()
    +Test("py_exprs_05")
    +DeleteAllPlots()
    +
    +script_file = pjoin(os.path.split(TestScriptPath())[0],"python_example_2.vpe")
    +DefinePythonExpression("MyExpression", ("d"), file=script_file)
    +AddPlot("Pseudocolor", "MyExpression")
    +DrawPlots()
    +Test("py_exprs_06")
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_qcrit.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_qcrit.html new file mode 100644 index 000000000..5e90e2927 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_qcrit.html @@ -0,0 +1,54 @@ + +Results for hybrid/qcrit.py + +

    Results of VisIt Regression Test - hybrid/qcrit

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    iso_qcrit0.000.00
    contour_qcrit0.000.00
    pseudo_qcrit0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_qcrit_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_qcrit_py.html new file mode 100644 index 000000000..417cf462f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_qcrit_py.html @@ -0,0 +1,54 @@ +hybrid/qcrit.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  qcrit.py
    +#
    +#  Tests:#     plots   - pseudocolor, contour
    +#  Defect ID:  1829
    +#
    +#  Programmer: Kevin Griffin
    +#  Date:       Thu Jul 31 14:21:02 PDT 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +ds = data_path("miranda_test_data/TG_vortex/plot.raw")
    +#ds = "/g/g14/kgriffin/trunk/build_debug/data/miranda_test_data/TG_vortex/plot.raw"
    +OpenDatabase(ds)
    +DefineScalarExpression("qcrit", "q_criterion(gradient(velocity[0]), gradient(velocity[1]), gradient(velocity[2]))")
    +TimeSliderNextState()
    +TimeSliderNextState()
    +
    +#
    +# Test 1
    +#
    +AddPlot("Pseudocolor", "qcrit")
    +AddOperator("Isovolume")
    +IsovolumeAtts = IsovolumeAttributes()
    +IsovolumeAtts.lbound = 0.2
    +IsovolumeAtts.ubound = 5.0
    +IsovolumeAtts.variable = "default"
    +SetOperatorOptions(IsovolumeAtts)
    +
    +DrawPlots()
    +Test("iso_qcrit")
    +DeleteAllPlots()
    +
    +#
    +# Test 2
    +#
    +AddPlot("Contour", "qcrit")
    +DrawPlots()
    +Test("contour_qcrit")
    +DeleteAllPlots()
    +
    +#
    +# Test 3
    +#
    +AddPlot("Pseudocolor", "qcrit")
    +DrawPlots()
    +Test("pseudo_qcrit")
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_replace.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_replace.html new file mode 100644 index 000000000..dec614320 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_replace.html @@ -0,0 +1,72 @@ + +Results for hybrid/replace.py + +

    Results of VisIt Regression Test - hybrid/replace

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    AllMaterials0.000.00
    Material2Off0.000.00
    Replace10.000.00
    Replace20.000.00
    Replace30.000.00
    Replace40.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_replace_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_replace_py.html new file mode 100644 index 000000000..9f4a8b22f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_replace_py.html @@ -0,0 +1,97 @@ +hybrid/replace.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  replace.py
    +#
    +#  Tests:      the ReplaceDatabase function.
    +#
    +#  Defect ID:  VisIt00003002
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Jan 22 11:06:49 PDT 2003
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset plots.
    +# 
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Turn off annotation
    +a = AnnotationAttributes()
    +TurnOffAllAnnotations(a)
    +a.axes2D.visible = 1
    +a.axes2D.xAxis.label.visible = 0
    +a.axes2D.yAxis.label.visible = 0
    +a.axes2D.xAxis.title.visible = 0
    +a.axes2D.yAxis.title.visible = 0
    +SetAnnotationAttributes(a)
    +
    +# Set up the plots.
    +OpenDatabase(silo_data_path("wave0110.silo"))
    +
    +AddPlot("FilledBoundary", "Material")
    +DrawPlots()
    +v = View3DAttributes()
    +v.viewNormal = (-0.427729, 0.776091, 0.463391)
    +v.focus = (4.37669, 0.376992, 2.57924)
    +v.viewUp = (0.67875, 0.614328, -0.402368)
    +v.viewAngle = 30.
    +v.parallelScale = 5.03337
    +v.nearPlane = -11.2758
    +v.farPlane = 11.2758
    +v.perspective = 1
    +SetView3D(v)
    +
    +# Show what it looks like with all materials
    +Test("AllMaterials")
    +# Turn off the green material
    +TurnMaterialsOff("2 water")
    +Test("Material2Off")
    +
    +# Try replacing with a later time step and see if the SIL selection
    +# still is applied. It should be still applied since the files have
    +# equivalent SILs.
    +ReplaceDatabase(silo_data_path("wave0340.silo"))
    +
    +Test("Replace1")
    +
    +# Make different materials active and replace again.
    +TurnMaterialsOn()
    +TurnMaterialsOff("1 barrier")
    +ReplaceDatabase(silo_data_path("wave0470.silo"))
    +
    +Test("Replace2")
    +
    +# Open one of our simple databases, do a plot and then replace it with
    +# an unrelated database.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +ReplaceDatabase(silo_data_path("curv3d.silo"))
    +
    +v2 = View3DAttributes()
    +v2.viewNormal = (-0.499092, 0.420388, 0.757747)
    +v2.focus = (0,2.5,15)
    +v2.viewUp = (0.195607, 0.906528, -0.374093)
    +v2.viewAngle = 30.
    +v2.parallelScale = 16.0078
    +v2.nearPlane = -32.0156
    +v2.farPlane = 32.0156
    +v2.perspective = 1
    +SetView3D(v2)
    +Test("Replace3")
    +
    +# Replace it with a 2d database.
    +ReplaceDatabase(silo_data_path("curv2d.silo"))
    +
    +Test("Replace4")
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_sil.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_sil.html new file mode 100644 index 000000000..2bf34eb69 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_sil.html @@ -0,0 +1,70 @@ + +Results for hybrid/sil.py + +

    Results of VisIt Regression Test - hybrid/sil

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    sil10.000.00
    sil20.000.00
    sil30.000.00
    sil40.000.00
    sil50.000.00
    sil60 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_sil_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_sil_py.html new file mode 100644 index 000000000..47c79e7f3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_sil_py.html @@ -0,0 +1,87 @@ +hybrid/sil.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  sil.py
    +#
    +#  Tests:      mesh      - 3D curvilinear,multi-domain,ghost zones replicated.
    +#              plots     - mat subset, domain subset
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Hank Childs
    +#  Date:       December 5, 2002
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset plots.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Hank Childs, Fri Feb 24 15:45:41 PST 2012
    +#    Add test for preserving SILs across time slice changes.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +view = View3DAttributes()
    +view.viewNormal = (0.557976, 0.651128, 0.514485)
    +view.focus = (0.5, 0.5, 0.5)
    +view.viewUp = (-0.0955897, 0.666272, -0.739557)
    +view.viewAngle = 30
    +view.parallelScale = 0.866025
    +view.nearPlane = -1.73205
    +view.farPlane = 1.73205
    +view.perspective = 1
    +SetView3D(view)
    +
    +OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +AddPlot("FilledBoundary", "mat")
    +DrawPlots()
    +
    +# Test the normal material plot.
    +Test("sil1")
    +
    +# Make sure that the ghost zones were generated correctly.
    +view.nearPlane = -0.3
    +SetView3D(view)
    +Test("sil2")
    +
    +view.nearPlane = -1.73205
    +SetView3D(view)
    +
    +TurnMaterialsOff("1")
    +Test("sil3")
    +
    +TurnMaterialsOff()
    +TurnMaterialsOn("1")
    +Test("sil4")
    +
    +DeleteAllPlots()
    +
    +# Test that the SIL from the previous plot is preserved.
    +AddPlot("Subset", "domains")
    +DrawPlots()
    +Test("sil5")
    +
    +OpenDatabase(data_path("Chombo_test_data/chombo.visit"))
    +
    +AddPlot("Pseudocolor", "Density")
    +s = SILRestriction()
    +s.TurnOffSet(s.SetsInCategory("materials")[1])
    +SetPlotSILRestriction(s)
    +DrawPlots()
    +TimeSliderSetState(4)
    +s = SILRestriction()
    +if (s.UsesData(s.SetsInCategory("materials")[1])):
    +   text="Material 1 got turned back on!  (incorrect)\n"
    +else:
    +   text="Material 1 was correctly left off.\n"
    +
    +TestText("sil6", text)
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_simplify_mixed.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_simplify_mixed.html new file mode 100644 index 000000000..ba79c57c8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_simplify_mixed.html @@ -0,0 +1,72 @@ + +Results for hybrid/simplify_mixed.py + +

    Results of VisIt Regression Test - hybrid/simplify_mixed

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    simplify_mixed010.000.00
    simplify_mixed020.000.00
    simplify_mixed030.000.00
    simplify_mixed040.000.00
    simplify_mixed050.000.00
    simplify_mixed060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_simplify_mixed_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_simplify_mixed_py.html new file mode 100644 index 000000000..897ef3106 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_simplify_mixed_py.html @@ -0,0 +1,90 @@ +hybrid/simplify_mixed.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  simplify_mixed.py
    +#
    +#  Tests:      plots     - filled boundary
    +#
    +#  Defect ID:  '4363, '6464, '6504, '8082
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 19, 2005
    +#
    +#  Modifications:
    +# 
    +#    Hank Childs, Fri Sep 28 12:48:54 PDT 2007
    +#    Add testing for mixvars with simplify heavily mixed ['8082].
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Eddie Rusu, Tue Apr 13 12:08:59 PDT 2021
    +#    Changed Pseudocolor CurrentPlot to ActualData.
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(data_path("boxlib_test_data/2D/plt0822/Header"))
    +
    +
    +AddPlot("FilledBoundary", "materials")
    +DrawPlots()
    +
    +v = GetView2D()
    +v.windowCoords = (0.0084, 0.0215, 0.0920, 0.1034)
    +v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +SetView2D(v)
    +
    +Test("simplify_mixed01")
    +
    +m = MaterialAttributes()
    +m.simplifyHeavilyMixedZones = 1
    +m.maxMaterialsPerZone = 2
    +SetMaterialAttributes(m)
    +
    +AddPlot("Boundary", "materials")
    +b = BoundaryAttributes()
    +b.colorType = b.ColorBySingleColor
    +SetPlotOptions(b)
    +
    +DrawPlots()
    +
    +Test("simplify_mixed02")
    +
    +DeleteAllPlots()
    +m.maxMaterialsPerZone = 1
    +SetMaterialAttributes(m)
    +
    +AddPlot("FilledBoundary", "materials")
    +DrawPlots()
    +
    +Test("simplify_mixed03")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("thinplane.silo"))
    +
    +
    +m.forceMIR = 1
    +SetMaterialAttributes(m)
    +AddPlot("Pseudocolor", "den")
    +p = PseudocolorAttributes()
    +p.limitsMode = p.ActualData
    +SetPlotOptions(p)
    +DrawPlots()
    +Test("simplify_mixed04")
    +
    +m.maxMaterialsPerZone = 2
    +SetMaterialAttributes(m)
    +ReOpenDatabase(silo_data_path("thinplane.silo"))
    +
    +Test("simplify_mixed05")
    +
    +m.maxMaterialsPerZone = 3
    +SetMaterialAttributes(m)
    +ReOpenDatabase(silo_data_path("thinplane.silo"))
    +
    +Test("simplify_mixed06")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_specmf.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_specmf.html new file mode 100644 index 000000000..ceb0144af --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_specmf.html @@ -0,0 +1,48 @@ + +Results for hybrid/specmf.py + +

    Results of VisIt Regression Test - hybrid/specmf

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    specmf_00.000.00
    specmf_10.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_specmf_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_specmf_py.html new file mode 100644 index 000000000..6efab9c1e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_specmf_py.html @@ -0,0 +1,42 @@ +hybrid/specmf.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  val4mat.py
    +#
    +#  Tests:      mesh      - 2d structured
    +#              plots     - pc
    +#
    +#  Notes
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Tuesday 12, 2008
    +#
    +#  Modifiations:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("specmix_quad.silo"))
    +
    +atts = PseudocolorAttributes()
    +atts.minFlag = 1
    +atts.min = 0.0
    +atts.maxFlag = 1
    +atts.max = 1.0
    +SetDefaultPlotOptions(atts)
    +
    +# view the per material values for each of the 3 materials
    +
    +DefineScalarExpression("spec_mix", "specmf(Species,1,1)")
    +AddPlot("Pseudocolor", "spec_mix")
    +DrawPlots()
    +Test("specmf_0")
    +
    +OpenDatabase(silo_data_path("specmix_double_quad.silo"))
    +
    +AddPlot("Pseudocolor", "spec_mix")
    +DrawPlots()
    +Test("specmf_1")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_symm.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_symm.html new file mode 100644 index 000000000..cb71d28f6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_symm.html @@ -0,0 +1,100 @@ + +Results for hybrid/symm.py + +

    Results of VisIt Regression Test - hybrid/symm

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    symm_010 modifications totalling 0 lines
    symm_020.000.00
    symm_030.000.00
    symm_040.000.00
    symm_050.000.00
    symm_060.000.00
    symm_070.000.00
    symm_080.000.00
    symm_090.000.00
    symm_100.000.00
    symm_110.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_symm_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_symm_py.html new file mode 100644 index 000000000..d0d2f2c47 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_symm_py.html @@ -0,0 +1,114 @@ +hybrid/symm.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  symm.py
    +#
    +#  Defect ID:  '6913, '7644, '7650
    +#
    +#  Programmer: Hank Childs
    +#  Date:       January 23, 2006
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Fri Dec 22 11:01:09 PST 2006
    +#    Add testing for symm_point
    +#
    +#    Hank Childs, Fri Jan  5 11:14:59 PST 2007
    +#    Add testing for non-rectilinear mesh types, since they use a different
    +#    code path (which broke).
    +#
    +#    Hank Childs, Mon Jan  8 11:04:50 PST 2007
    +#    Add testing for non-scalar variable types with symmetry CMFE expressions.
    +#
    +#    Brad Whitlock, Thu May 10 09:06:46 PDT 2007
    +#    Changed the name of an expression.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +
    +# Test errors.
    +DefineScalarExpression("sp1", "symm_plane(d, [0, 0, 0, 1, 0, 0])")
    +AddPlot("Pseudocolor", "sp1")
    +DrawPlots()
    +t = GetLastError()
    +TestText("symm_01", t)
    +
    +# Now test it working...
    +DeleteAllPlots()
    +DefineScalarExpression("sp2", "symm_plane(d, [1, 0, 0, 0.3, 0, 0])")
    +AddPlot("Pseudocolor", "sp2")
    +DrawPlots()
    +Test("symm_02")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("sp3", "symm_plane(d, [1, -1, 0, 0.1, 0, 0])")
    +AddPlot("Pseudocolor", "sp3")
    +DrawPlots()
    +Test("symm_03")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("sp4", "symm_plane(d, [2, -1, 0, 0.1, 0, 0])")
    +AddPlot("Pseudocolor", "sp4")
    +DrawPlots()
    +Test("symm_04")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("st1", "symm_transform(d, [0,1,0,1,0,0,0,0,0])")
    +AddPlot("Pseudocolor", "st1")
    +DrawPlots()
    +Test("symm_05")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +DefineScalarExpression("sp5", "symm_plane(hardyglobal, [1, 0, 0, 0, 0, 0])")
    +AddPlot("Contour", "sp5")
    +DrawPlots()
    +Test("symm_06")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +DefineScalarExpression("st2", "symm_transform(hardyglobal, [0.707, 0.707, 0, -0.707, 0.707, 0, 0, 0, 1])")
    +AddPlot("Contour", "st2")
    +DrawPlots()
    +Test("symm_07")
    +
    +ActivateDatabase(silo_data_path("rect2d.silo"))
    +
    +DeleteAllPlots()
    +DefineScalarExpression("sp4_2", "symm_point(d, [0.4, 0.6, 0])")
    +AddPlot("Pseudocolor", "sp4_2")
    +DrawPlots()
    +Test("symm_08")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +DefineScalarExpression("sp6", "symm_plane(d, [1, 0, 0, 0.2, 0, 0])")
    +AddPlot("Pseudocolor", "sp6")
    +DrawPlots()
    +Test("symm_09")
    +
    +DeleteAllPlots()
    +DefineVectorExpression("sp7", "symm_plane(vel, [1, 0, 0, 0.2, 0, 0])")
    +AddPlot("Vector", "sp7")
    +DrawPlots()
    +Test("symm_10")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("sp8", "magnitude(symm_plane(vel, [1, 0, 0, 0.2, 0, 0]))")
    +AddPlot("Pseudocolor", "sp8")
    +DrawPlots()
    +Test("symm_11")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_time_cmfe.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_time_cmfe.html new file mode 100644 index 000000000..d202adf46 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_time_cmfe.html @@ -0,0 +1,108 @@ + +Results for hybrid/time_cmfe.py + +

    Results of VisIt Regression Test - hybrid/time_cmfe

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    time_cmfe_010.000.00
    time_cmfe_020.000.00
    time_cmfe_030.000.00
    time_cmfe_040.000.00
    time_cmfe_050.000.00
    time_cmfe_060.000.00
    time_cmfe_070.000.00
    time_cmfe_080.000.00
    time_cmfe_090.000.00
    time_cmfe_100.000.00
    time_cmfe_110.000.00
    time_cmfe_120.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_time_cmfe_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_time_cmfe_py.html new file mode 100644 index 000000000..72f3fb828 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_time_cmfe_py.html @@ -0,0 +1,93 @@ +hybrid/time_cmfe.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  time_cmfe.py
    +#
    +#  Defect ID:  None
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 30, 2005
    +#
    +#  Modifications:
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Brad Whitlock, Thu Apr 19 14:35:20 PDT 2012
    +#    I changed the last couple of tests so we can directly compare the
    +#    data at a time step with what time deltas should give us.
    +#
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +
    +
    +# Test general capability.
    +DefineScalarExpression("cmfe", "conn_cmfe(<%s[10]i:pressure>, quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +AddPlot("Pseudocolor", "cmfe")
    +DrawPlots()
    +Test("time_cmfe_01")
    +
    +# Should be same pressure, since we aren't doing deltas
    +SetTimeSliderState(20)
    +Test("time_cmfe_02")
    +
    +DefineScalarExpression("cmfe2", "conn_cmfe(<%s[-10]id:pressure>, quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +ChangeActivePlotsVar("cmfe2")
    +Test("time_cmfe_03")
    +
    +SetTimeSliderState(40)
    +Test("time_cmfe_04")
    +
    +DefineScalarExpression("cmfe3", "conn_cmfe(<%s[200]c:pressure>, quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +ChangeActivePlotsVar("cmfe3")
    +Test("time_cmfe_05")
    +
    +SetTimeSliderState(20)
    +Test("time_cmfe_06")
    +
    +DefineScalarExpression("cmfe4", "conn_cmfe(<%s[200]cd:pressure>, quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +ChangeActivePlotsVar("cmfe4")
    +Test("time_cmfe_07")
    +
    +SetTimeSliderState(40)
    +Test("time_cmfe_08")
    +
    +DefineScalarExpression("cmfe5", "conn_cmfe(<%s[-0.9]t:pressure>, quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +ChangeActivePlotsVar("cmfe5")
    +Test("time_cmfe_09")
    +
    +SetTimeSliderState(20)
    +Test("time_cmfe_10")
    +
    +# Get rid of the wave in the mesh and slice it. I'm slicing it because I was 
    +# originally doing lineouts but those didn't line up for some reason.
    +DefineScalarExpression("i", "mod(nodeid(quadmesh), 101.)")
    +DefineScalarExpression("j", "floor((nodeid(quadmesh) - (k*101.*11.) - i) / 101.)")
    +DefineScalarExpression("k", "floor(nodeid(quadmesh) / (101.*11.))")
    +DefineVectorExpression("offset", "{coords(quadmesh)[0], j * 0.06, coords(quadmesh)[2]} - coords(quadmesh)")
    +AddOperator("Displace")
    +disp = DisplaceAttributes()
    +disp.variable = "offset"
    +disp.factor = 1
    +SetOperatorOptions(disp)
    +AddOperator("Slice")
    +DrawPlots()
    +
    +ChangeActivePlotsVar("pressure")
    +# Do a plot of pressure at time state 25 since the time there is 3. 
    +SetTimeSliderState(25)
    +Test("time_cmfe_11")
    +
    +# Now create a time delta expression where we want to get the data that trails
    +# the current time step by 0.8. We'll set the time slider to state 29 where the 
    +# time is 3.8 and we'll use the cmfe time delta to obtain data from 0.8 time
    +# units before, or in other words, time state 25. Then we'll do a plot to see
    +# if the data matches the previous test.
    +DefineScalarExpression("cmfe6", "conn_cmfe(<%s[-0.8]td:pressure>, quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +SetTimeSliderState(29)
    +ChangeActivePlotsVar("cmfe6")
    +Test("time_cmfe_12")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_time_deriv_cmfe.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_time_deriv_cmfe.html new file mode 100644 index 000000000..1eecc28dc --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_time_deriv_cmfe.html @@ -0,0 +1,54 @@ + +Results for hybrid/time_deriv_cmfe.py + +

    Results of VisIt Regression Test - hybrid/time_deriv_cmfe

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    time_deriv_cmfe_010.000.00
    time_deriv_cmfe_020.000.00
    time_deriv_cmfe_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_time_deriv_cmfe_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_time_deriv_cmfe_py.html new file mode 100644 index 000000000..7d523a054 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_time_deriv_cmfe_py.html @@ -0,0 +1,35 @@ +hybrid/time_deriv_cmfe.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  time_deriv_cmfe.py
    +#
    +#  Defect ID:  '2715, '6897
    +#
    +#  Programmer: Hank Childs
    +#  Date:       January 12, 2006
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +
    +
    +# Test general capability.
    +AddPlot("Pseudocolor", "time_derivative/conn_based/pressure")
    +DrawPlots()
    +Test("time_deriv_cmfe_01")
    +
    +TimeSliderSetState(50)
    +Test("time_deriv_cmfe_02")
    +
    +ChangeActivePlotsVar("time_derivative/pos_based/pressure")
    +Test("time_deriv_cmfe_03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_time_iteration.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_time_iteration.html new file mode 100644 index 000000000..b2ce6d6ea --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_time_iteration.html @@ -0,0 +1,54 @@ + +Results for hybrid/time_iteration.py + +

    Results of VisIt Regression Test - hybrid/time_iteration

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    time_iteration_010.000.00
    time_iteration_020.000.00
    time_iteration_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_time_iteration_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_time_iteration_py.html new file mode 100644 index 000000000..bcd7f313b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_time_iteration_py.html @@ -0,0 +1,41 @@ +hybrid/time_iteration.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  time_iteration.py
    +#
    +#  Defect ID:  None
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 27, 2010
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +
    +
    +DefineScalarExpression("ave1", "average_over_time(pressure, 1, 10, 1)")
    +AddPlot("Pseudocolor", "ave1")
    +DrawPlots()
    +v = GetView3D()
    +v.viewNormal = (0.607716, 0.507406, 0.610918)
    +v.viewUp = (-0.342711, 0.861513, -0.374627)
    +SetView3D(v)
    +Test("time_iteration_01")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("ave2", "average_over_time(pressure, 10, 20, 1)")
    +AddPlot("Pseudocolor", "ave2")
    +DrawPlots()
    +Test("time_iteration_02")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("pressure_big", "ge(pressure, 0.8)")
    +DefineScalarExpression("first_time", "first_time_when_condition_is_true(pressure_big, 100, 1, 71, 1)")
    +AddPlot("Pseudocolor", "first_time")
    +DrawPlots()
    +Test("time_iteration_03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_timelock.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_timelock.html new file mode 100644 index 000000000..fc4f6e0ca --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_timelock.html @@ -0,0 +1,209 @@ + +Results for hybrid/timelock.py + +

    Results of VisIt Regression Test - hybrid/timelock

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Make sure we get a time slider when locking a window causes the most suitable correlation to be altered.
    timelock_000.000.00
    timelock_010 modifications totalling 0 lines
    timelock_020.000.00
    timelock_030 modifications totalling 0 lines
    timelock_040.000.00
    timelock_050 modifications totalling 0 lines
    timelock_060 modifications totalling 0 lines
    timelock_070 modifications totalling 0 lines
    timelock_080.000.00
    timelock_090 modifications totalling 0 lines
    timelock_100.000.00
    timelock_110 modifications totalling 0 lines
    timelock_120.000.00
    timelock_130 modifications totalling 0 lines
    Test that the time slider works when time locking multiple windows
    timelock_140.000.00
    timelock_150 modifications totalling 0 lines
    timelock_160.000.00
    timelock_170.000.00
    timelock_180 modifications totalling 0 lines
    timelock_190.000.00
    timelock_200 modifications totalling 0 lines
    Make sure replacing into a time-locked window updates the database correlation.
    timelock_210.000.00
    timelock_220.000.00
    timelock_230 modifications totalling 0 lines
    timelock_240 modifications totalling 0 lines
    timelock_250 modifications totalling 0 lines
    timelock_260 modifications totalling 0 lines
    timelock_270.000.00
    timelock_280.000.00
    timelock_290.000.00
    timelock_300 modifications totalling 0 lines
    timelock_310.000.00
    timelock_320 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_timelock_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_timelock_py.html new file mode 100644 index 000000000..d78a50873 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_timelock_py.html @@ -0,0 +1,378 @@ +hybrid/timelock.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  timelock.py
    +#
    +#  Tests:      mesh      - 2D, 3D, curvilinear, single domain
    +#              plots     - FilledBoundary, Pseudocolor
    +#              databases - PDB, Silo
    +#
    +#  Purpose:    This test case tests out locking windows in time with multiple
    +#              databases in multiple windows. It makes sure that we get the
    +#              right database correlations and the right time sliders.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Mar 17 09:58:35 PDT 2005
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Mar 23 09:23:53 PDT 2005
    +#    I made it truncate the window information so the scalable rendering flag
    +#    is not included. This way, I don't need mode-specific baselines. I also
    +#    added 2 new test cases to check the window information because one of
    +#    the baseline images in test case 2 was incorrect. Finally, I added code
    +#    in the CleanSlate function to make sure that time locking is off. That
    +#    was what caused the incorrect test case image.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Eric Brugger, Fri Jul 30 13:53:48 PDT 2010
    +#    I increased the number of lines of information it prints to 18.
    +#
    +#    Eric Brugger, Tue Nov 12 10:27:55 PST 2024
    +#    I modified the coding that skips some tests in scalable rendering mode
    +#    to also skip the SetTimeSliderState call as well.
    +#
    +# ----------------------------------------------------------------------------
    +
    +import os
    +
    +#
    +# Look at the first few lines of the string representation of the
    +# WindowInformation to see the list of time sliders, etc.
    +#
    +def TestWindowInformation(testname):
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 18 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    for i in range(18):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    # Get the window information and convert it to a string.
    +    TestText(testname, s)
    +
    +
    +#
    +# Tests that the database correlations look a certain way.
    +#
    +def TestCorrelations(testname):
    +    names = GetDatabaseCorrelationNames()
    +    s = ""
    +    for name in names:
    +        c = GetDatabaseCorrelation(name)
    +        s = s + str(c) + "\n"
    +    TestText(testname, s)
    +
    +def CleanSlate():
    +    # Delete all but the first window.
    +    windows = list(GetGlobalAttributes().windows)
    +    windows.sort()
    +    for win in windows[1:]:
    +        SetActiveWindow(win)
    +        DeleteWindow()
    +
    +    # Delete all of the plots.
    +    DeleteAllPlots()
    +
    +    # Delete all of the database correlations:
    +    sources = GetGlobalAttributes().sources
    +    cL = GetDatabaseCorrelationNames()
    +    for name in cL:
    +        if name not in sources:
    +            DeleteDatabaseCorrelation(name)
    +
    +    # Close all of the sources.
    +    for src in sources:
    +        CloseDatabase(src)
    +
    +    # Make sure clone window on first reference is off.
    +    SetCloneWindowOnFirstRef(0)
    +
    +    # Make sure that window 1 is not locked in time!
    +    if GetWindowInformation().lockTime == 1:
    +        ToggleLockTime()
    +
    +#
    +# Returns whether all files in the list are in the current directory.
    +#
    +def FilesPresent(files):
    +    currentFileList = os.listdir(".")
    +    count = 0
    +    retval = 0
    +    if type(files) == type(()) or type(files) == type([]):
    +        for file in files:
    +            if file in currentFileList:
    +                count = count + 1
    +        retval = count == len(files)
    +    else:
    +        # We got here because the files argument was 
    +        # a single value instead of a tuple or list.
    +        if files in currentFileList:
    +            retval = 1
    +
    +    return retval
    +
    +#
    +# Waits for all files in the list to be present in the current directory.
    +#
    +def WaitForFilesToBePresent(files):
    +    while(FilesPresent(files) == 0): sleep(1)
    +
    +#
    +# Remove all .visit files from the current directory.
    +#
    +def RemoveAllVisItFiles():
    +    currentFileList = os.listdir(".")
    +    for file in currentFileList:
    +        if file[-5:] == ".silo" or file[-6:] == ".visit":
    +            try:
    +                os.unlink(file)
    +            except:
    +                # Ignore any exceptions
    +                pass
    +
    +#
    +# Set a better view for wave.
    +#
    +def SetWaveDatabaseView():
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.735926, 0.562657, 0.376604)
    +    v0.focus = (5, 0.753448, 2.5)
    +    v0.viewUp = (0.454745, 0.822858, -0.340752)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 5.6398
    +    v0.nearPlane = -11.2796
    +    v0.farPlane = 11.2796
    +    v0.imagePan = (0.0589778, 0.0898255)
    +    v0.imageZoom = 1.32552
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    SetView3D(v0)
    +
    +#
    +# Set the active window and also set the window's background color so it's
    +# easy to tell which window we're looking at.
    +#
    +def GotoWindow(win):
    +    SetActiveWindow(win)
    +
    +    a = GetAnnotationAttributes()
    +    if win == 1:
    +        a.backgroundColor = (255,200,200,255)
    +    elif win == 2:
    +        a.backgroundColor = (200,255,200,255)
    +    else:
    +        a.backgroundColor = (200,200,255,255)
    +    SetAnnotationAttributes(a)
    +
    +#
    +# Test that we get an active time slider when a correlation is modified
    +# as a result of locking the window in time.
    +#
    +def test1(testindex):
    +    TestSection("Make sure we get a time slider when locking a window "
    +                "causes the most suitable correlation to be altered.")
    +    SetWindowLayout(4)
    +
    +    # Turn on "CloneWindowOnFirstRef"
    +    SetCloneWindowOnFirstRef(1)
    +
    +    # Copy wave.visit to this directory a few times.
    +    f = open(silo_data_path("wave.visit") , "rt")
    +    lines = f.readlines()
    +    f.close()
    +    f0 = open("wave.visit","wt")
    +    f1 = open("wave1.visit","wt")
    +    f2 = open("wave2.visit","wt")
    +    for line in lines:
    +        f0.write(silo_data_path(line))
    +        f1.write(silo_data_path(line))
    +        f2.write(silo_data_path(line))
    +    f0.close()
    +    f1.close()
    +    f2.close()
    +
    +    GotoWindow(1)
    +    OpenDatabase("wave.visit")
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    SetWaveDatabaseView()
    +    Test("timelock_%02d" % testindex)
    +    TestWindowInformation("timelock_%02d" % (testindex+1))
    +
    +    # Go to the next window. The plot should be copied. Replace the database
    +    # before we draw the plots so we'll be using a different database.
    +    GotoWindow(2)
    +    ReplaceDatabase("wave1.visit")
    +    DrawPlots()
    +    Test("timelock_%02d" % (testindex+2))
    +    TestWindowInformation("timelock_%02d" % (testindex+3))
    +
    +    # Go to the next window. The plot should be copied. Replace the database
    +    # before we draw the plots so we'll be using a different database.
    +    GotoWindow(3)
    +    ReplaceDatabase("wave2.visit")
    +    DrawPlots()
    +    Test("timelock_%02d" % (testindex+4))
    +    TestWindowInformation("timelock_%02d" % (testindex+5))
    +
    +    # Lock window 1 and 2. This should result in a database correlation.
    +    GotoWindow(1)
    +    ToggleLockTime()
    +    GotoWindow(2)
    +    ToggleLockTime()
    +    TestCorrelations("timelock_%02d" % (testindex+6))
    +
    +    # Lock window 3 in time now also. This should result in the new database
    +    # correlation being modified to accomodate window 3's database.
    +    GotoWindow(3)
    +    ToggleLockTime()
    +    TestCorrelations("timelock_%02d" % (testindex+7))
    +
    +    # Change time states and make sure all windows look the same.
    +    SetTimeSliderState(36)
    +    Test("timelock_%02d" % (testindex+8))
    +    TestWindowInformation("timelock_%02d" % (testindex+9))
    +    GotoWindow(2)
    +    Test("timelock_%02d" % (testindex+10))
    +    TestWindowInformation("timelock_%02d" % (testindex+11))
    +    GotoWindow(1)
    +    Test("timelock_%02d" % (testindex+12))
    +    TestWindowInformation("timelock_%02d" % (testindex+13))
    +
    +    # Get ready for the next test.
    +    CleanSlate()
    +    RemoveAllVisItFiles()
    +
    +    return testindex + 14
    +
    +#
    +# Test that time locking works for multiple windows. What we're really
    +# testing is that the database is copied to the newly referenced window
    +# even though we have "CloneWindowOnFirstRef" set to off. Defect '6053.
    +#
    +def test2(testindex):
    +    TestSection("Test that the time slider works when time locking multiple windows")
    +
    +    a = GetAnnotationAttributes()
    +    b = GetAnnotationAttributes()
    +    SetAnnotationAttributes(b)
    +
    +    SetCloneWindowOnFirstRef(0)
    +    OpenDatabase(data_path("pdb_test_data/dbA00.pdb"))
    +
    +    AddPlot("FilledBoundary", "material(mesh)")
    +    DrawPlots()
    +    Test("timelock_%02d" % testindex)
    +
    +    SetWindowLayout(2)
    +    GotoWindow(2)
    +    SetAnnotationAttributes(b)
    +    TestWindowInformation("timelock_%02d" % (testindex+1))
    +    AddPlot("Pseudocolor", "mesh/nummm")
    +    DrawPlots()
    +    Test("timelock_%02d" % (testindex+2))
    +
    +    # Turn on time locking in both windows.
    +    GotoWindow(1)
    +    ToggleLockTime()
    +    GotoWindow(2)
    +    ToggleLockTime()
    +
    +    # See if both windows updated when we changed the time in window 2.
    +    # This crashes in scalable,parallel,icet.
    +    if TestEnv.params["scalable"] == False:
    +        SetTimeSliderState(5)
    +        Test("timelock_%02d" % (testindex+3))
    +        TestWindowInformation("timelock_%02d" % (testindex+4))
    +        GotoWindow(1)
    +        ResetView()
    +        Test("timelock_%02d" % (testindex+5))
    +        TestWindowInformation("timelock_%02d" % (testindex+6))
    +
    +    # Get ready for the next test.
    +    CleanSlate()
    +    SetAnnotationAttributes(a)
    +
    +    return testindex + 7
    +
    +#
    +# Make sure that replacing into a time-locked window updates the database
    +# correlation.
    +#
    +def test3(testindex):
    +    TestSection("Make sure replacing into a time-locked window updates "
    +                "the database correlation.")
    +    SetWindowLayout(4)
    +
    +    # Turn on "CloneWindowOnFirstRef"
    +    SetCloneWindowOnFirstRef(1)
    +
    +    dbs = (silo_data_path("wave.visit") ,
    +           silo_data_path("wave_tv.visit") )
    +    OpenDatabase(dbs[0])
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    SetWaveDatabaseView()
    +    Test("timelock_%02d" % testindex)
    +
    +    GotoWindow(2)
    +    DeleteAllPlots()
    +    AddPlot("FilledBoundary", "Material")
    +    DrawPlots()
    +    Test("timelock_%02d" % (testindex+1))
    +    ToggleLockTime()
    +    TestWindowInformation("timelock_%02d" % (testindex+2))
    +    GotoWindow(1)
    +    ToggleLockTime()
    +    TestWindowInformation("timelock_%02d" % (testindex+3))
    +
    +    # Go to window 3 and make sure that certain fields were copied.
    +    # Window 3 should already be locked in time and it should contain
    +    # a Pseudocolor plot.
    +    GotoWindow(3)
    +    TestWindowInformation("timelock_%02d" % (testindex+4))
    +
    +    # Replace the database with wave_tv so we can make sure that VisIt can
    +    # create correlations when it needs to during a replace. Note that we
    +    # also replace with a later time state. This should cause the time states
    +    # for the other windows to be updated.
    +    ReplaceDatabase(dbs[1], 36)
    +    TestCorrelations("timelock_%02d" % (testindex+5))
    +    DrawPlots()
    +    Test("timelock_%02d" % (testindex+6))
    +
    +    # Test that we change change to the transient variable.
    +    ChangeActivePlotsVar("transient")
    +    Test("timelock_%02d" % (testindex+7))
    +
    +    # Make sure that the time state changed in windows 1,2.
    +    GotoWindow(2)
    +    Test("timelock_%02d" % (testindex+8))
    +    TestWindowInformation("timelock_%02d" % (testindex+9))
    +    GotoWindow(1)
    +    Test("timelock_%02d" % (testindex+10))
    +    TestWindowInformation("timelock_%02d" % (testindex+11))
    +
    +    # Get ready for the next test.
    +    CleanSlate()
    +
    +    return testindex + 12
    +
    +#
    +# Run the tests
    +#
    +try:
    +    testindex = 0
    +    testindex = test1(testindex)
    +    testindex = test2(testindex)
    +    testindex = test3(testindex)
    +except:
    +    RemoveAllVisItFiles()
    +    raise
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_val4mat.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_val4mat.html new file mode 100644 index 000000000..f08b30f5f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_val4mat.html @@ -0,0 +1,66 @@ + +Results for hybrid/val4mat.py + +

    Results of VisIt Regression Test - hybrid/val4mat

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    value_for_mat_10.000.00
    value_for_mat_20.000.00
    value_for_mat_30.000.00
    value_for_mat_post_ghost_10.000.00
    value_for_mat_post_ghost_20.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_val4mat_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_val4mat_py.html new file mode 100644 index 000000000..0211fe87f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_val4mat_py.html @@ -0,0 +1,76 @@ +hybrid/val4mat.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  val4mat.py
    +#
    +#  Tests:      mesh      - 3D structured, multi domain
    +#              plots     - pc
    +#
    +#  Notes:      Migrated value_for_material tests from expressions.py
    +#              and added post ghost test cases. 
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Tuesday 12, 2008
    +#
    +#  Modifiations:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("thinplane.silo"))
    +
    +atts = PseudocolorAttributes()
    +atts.minFlag = 1
    +atts.min = 0.0
    +atts.maxFlag = 1
    +atts.max = 10.0
    +SetDefaultPlotOptions(atts)
    +
    +# view the per material values for each of the 3 materials
    +
    +DefineScalarExpression("vfm_1", "value_for_material(den,1)")
    +AddPlot("Pseudocolor", "vfm_1")
    +DrawPlots()
    +Test("value_for_mat_1")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("vfm_2", "value_for_material(den,2)")
    +AddPlot("Pseudocolor", "vfm_2")
    +DrawPlots()
    +Test("value_for_mat_2")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("vfm_3", "value_for_material(den,\"3\")")
    +AddPlot("Pseudocolor", "vfm_3")
    +DrawPlots()
    +Test("value_for_mat_3")
    +
    +
    +ChangeActivePlotsVar("vfm_2")
    +
    +# test w/ ghost zones (switch vfm_2 to nodal)
    +atts = PseudocolorAttributes(1)
    +atts.minFlag = 1
    +atts.min = 0.0
    +atts.maxFlag = 1
    +atts.max = 10.0
    +atts.centering = atts.Nodal
    +SetPlotOptions(atts)
    +DrawPlots()
    +Test("value_for_mat_post_ghost_1")
    +
    +# make sure post ghost caching doesn't tank non ghost results
    +atts = PseudocolorAttributes(1)
    +atts.minFlag = 1
    +atts.min = 0.0
    +atts.maxFlag = 1
    +atts.max = 10.0
    +atts.centering = atts.Zonal
    +SetPlotOptions(atts)
    +DrawPlots()
    +Test("value_for_mat_post_ghost_2")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_vtkm.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_vtkm.html new file mode 100644 index 000000000..1ddb0e745 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_vtkm.html @@ -0,0 +1,372 @@ + +Results for hybrid/vtkm.py + +

    Results of VisIt Regression Test - hybrid/vtkm

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    vtkm_rect2d_010.000.00
    vtkm_rect2d_020.000.00
    vtkm_rect3d_010.000.00
    vtkm_rect3d_01a0.000.00
    vtkm_rect3d_020.000.00
    vtkm_rect3d_030.000.00
    vtkm_rect3d_040.000.00
    vtkm_rect3d_050.000.00
    vtkm_rect3d_060.000.00
    vtkm_rect3d_070.000.00
    vtkm_rect3d_080.000.00
    vtkm_rect3d_090.000.00
    vtkm_rect3d_100.000.00
    vtkm_curv2d_010.000.00
    vtkm_curv2d_020.000.00
    vtkm_curv3d_010.000.00
    vtkm_curv3d_01a0.000.00
    vtkm_curv3d_020.000.00
    vtkm_curv3d_030.000.00
    vtkm_curv3d_040.000.00
    vtkm_curv3d_050.000.00
    vtkm_curv3d_060.000.00
    vtkm_curv3d_070.000.00
    vtkm_curv3d_080.000.00
    vtkm_curv3d_090.000.00
    vtkm_curv3d_100.000.00
    vtkm_ucd2d_010.000.00
    vtkm_ucd2d_020.000.00
    vtkm_ucd3d_010.000.00
    vtkm_ucd3d_01a0.000.00
    vtkm_ucd3d_020.000.00
    vtkm_ucd3d_030.000.00
    vtkm_ucd3d_040.000.00
    vtkm_ucd3d_050.000.00
    vtkm_ucd3d_060.000.00
    vtkm_ucd3d_070.000.00
    vtkm_ucd3d_080.000.00
    vtkm_globe_010.000.00
    vtkm_globe_020.000.00
    vtkm_globe_030.000.00
    vtkm_globe_040.000.00
    vtkm_globe_050.000.00
    vtkm_globe_060.000.00
    vtkm_globe_070.000.00
    vtkm_globe_080.000.00
    vtkm_globe_090.000.00
    vtkm_globe_100.000.00
    vtkm_globe_110.000.00
    vtkm_multi_ucd3d_010.000.00
    vtkm_multi_ucd3d_020.000.00
    vtkm_multi_ucd3d_030.000.00
    vtkm_multi_ucd3d_040.000.00
    vtkm_multi_ucd3d_050.000.00
    vtkm_multi_ucd3d_060.000.00
    vtkm_multi_ucd3d_070.000.00
    vtkm_multi_ucd3d_080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/hybrid_vtkm_py.html b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_vtkm_py.html new file mode 100644 index 000000000..0ec396ec0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/hybrid_vtkm_py.html @@ -0,0 +1,779 @@ +hybrid/vtkm.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  vtkm.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, single domain
    +#                          3D curvilinear, single domain
    +#                          3D unstructured, single domain
    +#                          3D unstructured, multi domain
    +#              plots     - Contour, Pseudocolor
    +#              operators - Isosurface, Isovolume, Slice, Threshold
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       Wed Sep 19 12:18:14 PDT 2018
    +#
    +#  Modifications:
    +#    James Kress, Tue Oct  5 14:00:28 PST 2021
    +#    Adding additional threshold tests.
    +#
    +#    Eric Brugger, Fri Feb 24 14:57:15 PST 2023
    +#    Added additional tests.
    +#
    +# ----------------------------------------------------------------------------
    +
    +SetBackendType("vtkm")
    +
    +#
    +# Test a 2d rectilinear mesh.
    +#
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +Test("vtkm_rect2d_01")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Contour", "d")
    +DrawPlots()
    +
    +Test("vtkm_rect2d_02")
    +
    +#
    +# Test a 3d rectilinear mesh.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.4854, 0.3984, 0.7782)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.1209, 0.9122, -0.3916)
    +v.parallelScale = 0.8660
    +v.nearPlane = -1.7321
    +v.farPlane = 1.7321
    +SetView3D(v)
    +
    +Test("vtkm_rect3d_01")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Contour", "d")
    +DrawPlots()
    +
    +Test("vtkm_rect3d_01a")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0.5, 0.5, 0.5)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_rect3d_02")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0.5, 0.5, 0.5)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_rect3d_03")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_rect3d_04")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_rect3d_05")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (0.2)
    +ThresholdAtts.upperBounds = (0.59)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_rect3d_06")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (1)
    +ThresholdAtts.lowerBounds = (-0.2)
    +ThresholdAtts.upperBounds = (0.39)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_rect3d_07")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (-0.2)
    +ThresholdAtts.upperBounds = (0.39)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_rect3d_08")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isovolume")
    +IsovolumeAtts = IsovolumeAttributes()
    +IsovolumeAtts.lbound = -0.2
    +IsovolumeAtts.ubound = 0.39
    +IsovolumeAtts.variable = "u"
    +SetOperatorOptions(IsovolumeAtts)
    +DrawPlots()
    +
    +Test("vtkm_rect3d_09")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isovolume")
    +IsovolumeAtts = IsovolumeAttributes()
    +IsovolumeAtts.lbound = -0.2
    +IsovolumeAtts.ubound = 0.39
    +IsovolumeAtts.variable = "default"
    +SetOperatorOptions(IsovolumeAtts)
    +DrawPlots()
    +
    +Test("vtkm_rect3d_10")
    +
    +#
    +# Test a 2d curvilinear mesh.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +Test("vtkm_curv2d_01")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Contour", "d")
    +DrawPlots()
    +
    +Test("vtkm_curv2d_02")
    +
    +#
    +# Test a 3d curvilinear mesh.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.4854, 0.3984, 0.7782)
    +v.focus = (0., 2.5, 15.)
    +v.viewUp = (-0.1209, 0.9122, -0.3916)
    +v.parallelScale = 16.0078
    +v.nearPlane = -32.0156
    +v.farPlane = 32.0156
    +SetView3D(v)
    +
    +Test("vtkm_curv3d_01")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Contour", "d")
    +DrawPlots()
    +
    +Test("vtkm_curv3d_01a")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0., 2.5, 15.)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_curv3d_02")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0., 2.5, 15.)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_curv3d_03")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_curv3d_04")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_curv3d_05")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (1)
    +ThresholdAtts.upperBounds = (3)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_curv3d_06")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (1)
    +ThresholdAtts.lowerBounds = (-0.5)
    +ThresholdAtts.upperBounds = (0.5)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_curv3d_07")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (-0.5)
    +ThresholdAtts.upperBounds = (0.5)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_curv3d_08")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isovolume")
    +IsovolumeAtts = IsovolumeAttributes()
    +IsovolumeAtts.lbound = -0.5
    +IsovolumeAtts.ubound = 0.5
    +IsovolumeAtts.variable = "u"
    +SetOperatorOptions(IsovolumeAtts)
    +DrawPlots()
    +
    +Test("vtkm_curv3d_09")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isovolume")
    +IsovolumeAtts = IsovolumeAttributes()
    +IsovolumeAtts.lbound = -0.5
    +IsovolumeAtts.ubound = 0.5
    +IsovolumeAtts.variable = "default"
    +SetOperatorOptions(IsovolumeAtts)
    +DrawPlots()
    +
    +Test("vtkm_curv3d_10")
    +
    +#
    +# Test a 2d unstructured mesh.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("ucd2d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +Test("vtkm_ucd2d_01")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Contour", "d")
    +DrawPlots()
    +
    +Test("vtkm_ucd2d_02")
    +
    +#
    +# Test a 3d unstructured mesh.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("ucd3d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.4854, 0.3984, 0.7782)
    +v.focus = (0., 2.5, 10.)
    +v.viewUp = (-0.1209, 0.9122, -0.3916)
    +v.parallelScale = 11.4564
    +v.nearPlane = -22.9129
    +v.farPlane = 22.9129
    +SetView3D(v)
    +
    +Test("vtkm_ucd3d_01")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Contour", "d")
    +DrawPlots()
    +
    +Test("vtkm_ucd3d_01a")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0., 2.5, 10.)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_ucd3d_02")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0., 2.5, 10.)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_ucd3d_03")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_ucd3d_04")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_ucd3d_05")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (2.5)
    +ThresholdAtts.upperBounds = (4.0)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_ucd3d_06")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (1)
    +ThresholdAtts.lowerBounds = (0.8)
    +ThresholdAtts.upperBounds = (0.95)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_ucd3d_07")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (0.8)
    +ThresholdAtts.upperBounds = (0.95)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_ucd3d_08")
    +
    +#
    +# Test 3d unstructured with zoo elements.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (-0.3057, 0.7186, 0.6247)
    +v.focus = (0., 0., 0.)
    +v.viewUp = (0.5003, 0.6794, -0.5367)
    +v.parallelScale = 17.3205
    +v.nearPlane = -34.641
    +v.farPlane = 34.641
    +SetView3D(v)
    +
    +Test("vtkm_globe_01")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Contour", "dx")
    +DrawPlots()
    +
    +Test("vtkm_globe_02")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "v")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0., 0., 0.)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_globe_03")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "dx")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0., 0., 0.)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_globe_04")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_globe_05")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "dx")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_globe_06")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "dx")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (-2.0)
    +ThresholdAtts.upperBounds = (2.0)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_globe_07")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (1)
    +ThresholdAtts.lowerBounds = (-5.0)
    +ThresholdAtts.upperBounds = (5.0)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_globe_08")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (-5.0)
    +ThresholdAtts.upperBounds = (5.0)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_globe_09")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "dx")
    +AddOperator("Isovolume")
    +atts = IsovolumeAttributes()
    +atts.lbound = -5.0
    +atts.ubound = 5.0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_globe_10")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isovolume")
    +atts = IsovolumeAttributes()
    +atts.lbound = -5.0
    +atts.ubound = 5.0
    +atts.variable = "default"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_globe_11")
    +
    +#
    +# Test a multi-domain unstructured mesh.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.4854, 0.3984, 0.7782)
    +v.focus = (0., 2.5, 10.)
    +v.viewUp = (-0.1209, 0.9122, -0.3916)
    +v.parallelScale = 11.4564
    +v.nearPlane = -22.9129
    +v.farPlane = 22.9129
    +SetView3D(v)
    +
    +Test("vtkm_multi_ucd3d_01")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0., 2.5, 10.)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_multi_ucd3d_02")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0., 2.5, 10.)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_multi_ucd3d_03")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_multi_ucd3d_04")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_multi_ucd3d_05")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (2.5)
    +ThresholdAtts.upperBounds = (4.0)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_multi_ucd3d_06")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (1)
    +ThresholdAtts.lowerBounds = (0.995)
    +ThresholdAtts.upperBounds = (0.9985)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_multi_ucd3d_07")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (0.995)
    +ThresholdAtts.upperBounds = (0.9985)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_multi_ucd3d_08")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/index.html b/2024-12-12-22:00/poodle_trunk_parallel/index.html new file mode 100644 index 000000000..2cf6d54e1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/index.html @@ -0,0 +1,2469 @@ + + + + + VisIt Regression Results ( poodle,trunk,parallel ) - 2024:12:12:23:36:41 + + + + + + + + + + +

    Results of VisIt Regression Test ( poodle,trunk,parallel )

    +Test suite run started at 2024:12:12:23:36:41.
    +(Click on table header to sort) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    IndexCategory Test File Status Runtime (sec)
    0databasesANSYS.pySucceeded7
    1databasesCGNS.pySucceeded10
    44databasessilo_altdriver.pySucceeded34
    2databasesCale.pySucceeded5
    3databasesFITS.pySucceeded6
    45databasessilo_datatypes.pySucceeded19
    46databasessinglemulti.pySucceeded4
    47databasessw4.pySucceeded6
    48databasesunv.pySucceeded6
    49databasestimesliders.pySucceeded7
    50databasesuintah.pySucceeded5
    4databasesFMS.pySucceeded75
    5databasesGDAL.pySucceeded13
    6databasesRAW.pySucceeded5
    7databasesSPCTH.pySucceeded4
    8databasesWData.pySucceeded5
    9databasesXmdv.pySucceeded5
    51databasesblueprint.pySucceeded With Skips96
    52databasesxdmf.pySucceeded13
    10databasesbov.pySucceeded36
    53databasesxyz.pySucceeded6
    11databasesclaw.pySucceeded5
    12databasescurve.pySucceeded4
    54databasesANALYZE.pySucceeded6
    55databasesChombo.pySucceeded6
    13databasesddcMD.pySucceeded12
    14databasesdiff.pySkipped(skipped)
    56databasesFluent.pySucceeded5
    15databasesffp.pySucceeded5
    16databasesflash.pySucceeded4
    57databasesNASTRAN.pySucceeded11
    17databasesimage.pySucceeded5
    58databasesOpenFOAM.pySucceeded13
    18databaseslata.pySucceeded8
    59databasesPATRAN.pySucceeded8
    19databasesleos.pySucceeded15
    20databaseslines.pySucceeded4
    21databasesmetadata.pySucceeded9
    60databasesPLOT3D.pySucceeded47
    61databasesProteinDataBank.pySucceeded12
    62databasesVelodyne.pySucceeded5
    63databasesXolotl.pySucceeded5
    64databasesactivesource.pySucceeded5
    65databasesavsucd.pySucceeded4
    66databasesboxlib.pySucceeded6
    67databasesclosedatabase.pySucceeded4
    68databasescorrelation.pySucceeded12
    69databasesempty_db.pySucceeded4
    70databasesexodus.pySucceeded With Skips9
    71databasesexport_db.pySucceeded74
    22databasesmfem.pySucceeded255
    72databasesglobal_node_ids.pySucceeded8
    23databasesmili.pySucceeded17
    73databasesh5part.pySucceeded4
    74databaseshistory.pySucceeded5
    24databasesmiranda.pySucceeded11
    75databasesimgvol.pySucceeded5
    25databasesmoab.pySucceeded9
    76databaseskulllite.pySucceeded5
    26databasesmulti_format.pySucceeded4
    77databaseswave_tv.pySucceeded5
    27databasesmulti_format2.pySucceeded4
    78databasesxform_precision.pySucceeded5
    79databaseszipwrapper.pySkipped(skipped)
    28databasesnetcdf.pySucceeded9
    80databasesEnSight.pySucceeded7
    29databasesobj.pySucceeded5
    81databasestecplot.pySucceeded9
    30databasesoldsilo.pySucceeded4
    82databasesadios2.pySucceeded5
    31databasesopenPMD.pySucceeded4
    83databasesCurve3D.pySucceeded4
    32databasesopenexr.pySucceeded5
    33databasesoverlink.pySucceeded6
    84databasesblueprint_axom_klee.pySucceeded23
    34databasespdbdatabase.pySucceeded20
    35databasespixie.pySucceeded With Skips6
    36databasesvtk.pySucceeded17
    37databasesrect.pySucceeded5
    38databasesreopen.pySucceeded8
    39databasessami.pySucceeded5
    40databasessamrai.pySucceeded12
    41databasesscale_mesh.pySucceeded4
    85databasesblueprint_export.pySucceeded137
    86databasesplaintext.pySucceeded5
    42databasesshapefile.pySucceeded10
    87databaseschgcar.pySucceeded7
    88expressionsghost_zoneid_expr.pySucceeded4
    43databasessilo.pySucceeded With Skips30
    89expressionstensor_expr.pySucceeded7
    90expressionsmath_expr.pySucceeded4
    132hybridlineout.pySucceeded18
    91expressionsglobal_stats.pySucceeded8
    133hybridlocktime.pySucceeded5
    92faulttolerancebadfile.pySucceeded4
    134hybridmath_expr.pySucceeded4
    93faulttolerancecheckmode.pySucceeded3
    135hybridmatsel.pySucceeded4
    94faulttolerancesavewindow.pySucceeded6
    136hybridmerge_tree.pySucceeded7
    95hybridddf.pySucceeded5
    137hybridmesh_quality.pySucceeded5
    138hybridmir_cache.pySucceeded4
    96hybridlocus.pySucceeded15
    139hybridmissingdata.pySucceeded With Skips6
    97hybridmatvf.pySucceeded7
    140hybridmultivar.pySucceeded4
    98hybridmir.pySucceeded9
    99hybridmovie.pySkipped(skipped)
    141hybridpos_cmfe.pySucceeded7
    100hybridqcrit.pySucceeded10
    142hybridpy_exprs.pySucceeded6
    101hybridsil.pySucceeded5
    143hybridreplace.pySucceeded5
    144hybridselections.pySkipped(skipped)
    145hybridselections_pp.pySkipped(skipped)
    102hybridsimplify_mixed.pySucceeded5
    146meshtypecsg.pySucceeded10
    103hybridspecmf.pySucceeded4
    147meshtypeglobe.pySucceeded5
    104hybridsymm.pySucceeded6
    148meshtypepoint.pySucceeded6
    105hybridtime_cmfe.pySucceeded6
    149meshtypearbpoly.pySucceeded6
    106hybridtime_deriv_cmfe.pySucceeded5
    107hybridtime_iteration.pySucceeded7
    150meshtypedegen_mesh.pySucceeded8
    108hybridval4mat.pySucceeded4
    151meshtypeemptydomains.pySucceeded5
    152meshtyperect3d.pySucceeded4
    109hybridvtkm.pySucceeded14
    153operatorsbox.pySucceeded5
    110hybridtimelock.pySucceeded7
    154operatorsclip.pySucceeded7
    111hybridcinema-a.pySucceeded17
    112hybridcinema-c.pySucceeded37
    113hybridcleanzonesonly.pySucceeded5
    114hybridclonecopy.pySkipped(skipped)
    115hybridclonefirstref.pySucceeded4
    116hybridconditional.pySucceeded5
    117hybridconn_cmfe.pySucceeded6
    155operatorslcs.pySucceeded129
    118hybridcoord_expr.pySucceeded7
    119hybridcurve_anim.pySucceeded5
    120hybridcurve_expressions.pySucceeded5
    156operatorsremap.pySucceeded25
    121hybridcylindrical_radius.pySucceeded6
    157operatorsslice.pySucceeded10
    122hybriddefvar_anim.pySucceeded4
    158operatorstube.pySucceeded4
    123hybridexpr2engine.pySucceeded4
    159operatorsamr_stitch.pySucceeded5
    124hybridexprList.pySucceeded4
    160operatorscart_proj.pySucceeded4
    125hybridexpr_cmfe.pySucceeded5
    161operatorscracksclipper.pySucceeded5
    126hybridexpressions.pySucceeded13
    162operatorsdefer_expr.pySucceeded7
    127hybridfield_operators.pySucceeded8
    163operatorsdisplace.pySucceeded6
    128hybridghost_node.pySucceeded4
    164operatorsdual_mesh.pySucceeded With Skips5
    129hybridimage_proc.pySucceeded4
    165operatorselevate.pySucceeded6
    166operatorsex_surf.pySucceeded4
    130hybridkeyframe.pySucceeded15
    167operatorsexplode.pySucceeded16
    131hybridlambda2.pySucceeded11
    168operatorsic_integration.pySucceeded6
    169operatorsic_pathlines.pySucceeded5
    170operatorsic_pics.pySucceeded54
    176operatorslcs_ic_2.pySucceeded89
    171operatorsic_termination.pySucceeded5
    172operatorsindexselect.pySucceeded10
    173operatorsinverse_ghost_zone.pySucceeded5
    174operatorsisovolume.pySucceeded5
    177operatorslcs_lc_1.pySucceeded64
    175operatorslcs_ic_1.pySucceeded66
    220queriesIntegralCurveInfo.pySkipped(skipped)
    221queriesavg_value.pySucceeded With Skips6
    222queriesbestfitline.pySucceeded9
    178operatorslcs_lc_2.pySucceeded90
    223queriescasetest.pySucceeded4
    179operatorsmoveoperators.pySucceeded7
    224queriescentroid.pySucceeded5
    180operatorsmultires.pySucceeded4
    225queriesconncomp.pySucceeded6
    226queriesconsistencyChecks.pySucceeded5
    181operatorsonionpeel.pySucceeded17
    227queriescurvature.pySucceeded4
    182operatorsoperators.pySucceeded5
    183operatorspersistent_particles.pySucceeded7
    228queriesdatabase.pySucceeded17
    229queriesflatten.pySkipped(skipped)
    184operatorsradial_resample.pySucceeded5
    230queriesgridinformation.pySucceeded5
    185operatorsresample.pySucceeded5
    231querieshohlraum.pySucceeded9
    186operatorsrevolve.pySucceeded4
    232querieskurtosis.pySucceeded4
    187operatorssph_resample.pySucceeded4
    188operatorstessellate.pySucceeded7
    189operatorsthreeslice.pySucceeded4
    233queriesl2norm.pySucceeded36
    190operatorsthreshold.pySucceeded6
    234querieslength.pySucceeded5
    191operatorstransform.pySucceeded6
    192operatorsextrudeStacked.pySucceeded9
    235queriesline_scan.pySucceeded26
    236queriespickarray.pySucceeded5
    193operatorsic_geometry.pySucceeded15
    237queriespickcleanzonesonly.pySucceeded4
    238queriespy_queries.pySucceeded4
    194operatorsic_streamlines.pySucceeded58
    195operatorsreflect.pySucceeded8
    239queriesqueriesOverTime.pySucceeded58
    196plotscurve.pySucceeded9
    240queriesqueryMultiWindow.pySucceeded6
    241queriesrevolved_surface_area.pySucceeded4
    242queriessurface_area_over_time.pySucceeded46
    243queriesvariable_sum_volume.pySucceeded5
    244querieswatertight.pySucceeded4
    245querieserror_queries.pySucceeded4
    197plotslabel.pySucceeded126
    246queriespickNamedArgs.pySucceeded7
    198plotsmesh.pySucceeded9
    199plotscontour.pySucceeded8
    200plotsfilledboundary.pySucceeded5
    201plotsmesh_c.pySucceeded9
    202plotsmolecule.pySucceeded7
    203plotsmulticolor.pySucceeded6
    247queriesxrayimage.pySucceeded102
    204plotsparcoords.pySucceeded6
    248quickrecipesview.pySucceeded5
    249quickrecipescl_args.pySucceeded3
    205plotspseudocolor.pySucceeded12
    250quickrecipescolortables.pySucceeded5
    206plotsscatter.pySucceeded9
    251quickrecipesexpressions.pySucceeded4
    252quickrecipeshow_to_start.pySkipped(skipped)
    253quickrecipesopening_compute_engine.pySkipped(skipped)
    207plotssinglecolor.pySucceeded4
    254quickrecipesoperators.pySucceeded10
    208plotssubset.pySucceeded6
    255quickrecipessaving_images.pySucceeded3
    209plotssurface.pySucceeded5
    256quickrecipessubsetting.pySucceeded4
    210plotstensor.pySucceeded6
    257quickrecipesworking_with_annotations.pySucceeded5
    211plotstruecolor.pySucceeded4
    258quickrecipesworking_with_dbs.pySucceeded4
    212plotsvector.pySucceeded7
    259quickrecipesworking_with_plots.pySucceeded5
    260quickrecipesquantitative_operations.pySucceeded14
    213plotsray_trace.pySucceeded20
    261renderingimage.pySucceeded4
    262renderingview.pySucceeded11
    214plotsvolumePlot.pySucceeded26
    263renderingaxislabels.pySucceeded6
    264renderingaxistitles.pySucceeded5
    265renderingbigdata.pySucceeded4
    215pluginsdatabasesVsInstall.pySucceeded46
    266renderingcolortexture.pySucceeded4
    267renderingcompositing.pySkipped(skipped)
    268renderingevalcubic.pySucceeded6
    216pluginsoperatorsVsInstall.pySucceeded27
    269renderinglegends.pySucceeded13
    270renderinglighting.pySucceeded4
    217pluginsplotsVsInstall.pySucceeded24
    271renderingline2d.pySucceeded5
    272renderingline3d.pySucceeded5
    273renderingpixeldata.pySucceeded With Skips9
    274renderingrenderpoints.pySucceeded15
    218queriespick.pySucceeded With Skips62
    275renderingscalable2.pySucceeded6
    219queriesscf.pySucceeded5
    276renderingscalable_c.pySucceeded27
    308simulationbatch.pySucceeded20
    277renderingshadows.pySucceeded4
    278renderingspecular.pySucceeded5
    309simulationcsg.pySucceeded27
    279renderingtext2d.pySucceeded5
    310simulationcurve.pySucceeded With Skips6
    280renderingtext3d.pySucceeded5
    311simulationlife.pySucceeded With Skips6
    281renderingtimeslider.pySucceeded7
    312simulationmesh.pySucceeded7
    282renderingviewChange.pySucceeded8
    313simulationpoint.pySucceeded6
    314simulationvar.pySucceeded6
    283renderingscalable.pySucceeded28
    315simulationaresamr.pySucceeded6
    284renderingospray.pyAcceptable5
    316simulationdomainbounds.pySucceeded6
    285renderingvolume.pySucceeded5
    317simulationdomainlist.pySucceeded8
    286renderingvolume_rect_multiDomain.pySucceeded With Skips6
    318simulationghostcells.pySucceeded9
    287renderingvolume_rect_singleDomain.pySucceeded5
    288renderingvolume_ucd_multiDomain.pySucceeded With Skips5
    319simulationglobalids.pySucceeded12
    320simulationinterleave.pySucceeded8
    289renderingpointGlyphing.pySucceeded17
    290renderingtransparency.pySucceeded9
    321simulationmandelbrot.pySucceeded22
    291renderingannotation.pySucceeded8
    322simulationmaterial.pySucceeded6
    292renderingsaveformats.pySucceeded8
    323simulationmaterialvar.pySucceeded6
    324simulationmultiblock.pySucceeded6
    293renderingannot_macros.pyAcceptable9
    325simulationpolyhedral.pySucceeded6
    326simulationscalar.pySucceeded6
    327simulationspecies.pySucceeded7
    328simulationucdcurve.pySucceeded20
    329simulationunstructured.pySucceeded5
    330simulationupdateplots.pySucceeded7
    294renderingoffscreensave.pySucceeded124
    295sessioncolortable.pySucceeded4
    296sessioncorrelationsession.pySucceeded5
    331simulationupdateplots_session.pySucceeded48
    297sessionlegendproperties.pySucceeded With Skips4
    298sessionrect3d-contour.pySucceeded4
    332simulationzerocopy.pySucceeded With Skips19
    299sessionrestorewithsources.pySucceeded4
    333unitannotation_objects.pySucceeded3
    300sessionselection.pySucceeded4
    334unitcompiler_warnings.pySkipped(skipped)
    301sessionsessionexpression.pySucceeded4
    335unitconvert2to3.pySucceeded3
    302sessionsessionview.pySucceeded8
    336unitlauncher.pySucceeded12
    303sessionsimplekeyframe.pySucceeded6
    337unitmrucache.pySucceeded3
    304sessiontextannot.pySucceeded4
    338unitnamescheme.pySucceeded3
    305sessionview3d.pySucceeded4
    339unitprotocol.pySucceeded3
    306sessionwavecontour.pySucceeded4
    340unitstringhelpers.pySucceeded3
    341unittest_value_simple.pySucceeded3
    307simulationamr.pySucceeded6
    342unitutility.pySucceeded3
    343unitdefault_methods.pySucceeded3
    344unitatts_assign.pySucceeded5
    +Test suite run complete at 2024:12:13:00:42:25 (3945 seconds). + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/js/jquery-3.6.1.min.js b/2024-12-12-22:00/poodle_trunk_parallel/js/jquery-3.6.1.min.js new file mode 100644 index 000000000..2c69bc908 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/js/jquery-3.6.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",v.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 1) { + arr = arr.concat(checkCellColSpan(table, headerArr, row++)); + } else { + if (table.tHead.length == 1 || (cell.rowSpan > 1 || !r[row + 1])) { + arr.push(cell); + } + // headerArr[row] = (i+row); + } + } + return arr; + }; + + function checkHeaderMetadata(cell) { + if (($.metadata) && ($(cell).metadata().sorter === false)) { + return true; + }; + return false; + } + + function checkHeaderOptions(table, i) { + if ((table.config.headers[i]) && (table.config.headers[i].sorter === false)) { + return true; + }; + return false; + } + + function checkHeaderOptionsSortingLocked(table, i) { + if ((table.config.headers[i]) && (table.config.headers[i].lockedOrder)) return table.config.headers[i].lockedOrder; + return false; + } + + function applyWidget(table) { + var c = table.config.widgets; + var l = c.length; + for (var i = 0; i < l; i++) { + + getWidgetById(c[i]).format(table); + } + + } + + function getWidgetById(name) { + var l = widgets.length; + for (var i = 0; i < l; i++) { + if (widgets[i].id.toLowerCase() == name.toLowerCase()) { + return widgets[i]; + } + } + }; + + function formatSortingOrder(v) { + if (typeof(v) != "Number") { + return (v.toLowerCase() == "desc") ? 1 : 0; + } else { + return (v == 1) ? 1 : 0; + } + } + + function isValueInArray(v, a) { + var l = a.length; + for (var i = 0; i < l; i++) { + if (a[i][0] == v) { + return true; + } + } + return false; + } + + function setHeadersCss(table, $headers, list, css) { + // remove all header information + $headers.removeClass(css[0]).removeClass(css[1]); + + var h = []; + $headers.each(function (offset) { + if (!this.sortDisabled) { + h[this.column] = $(this); + } + }); + + var l = list.length; + for (var i = 0; i < l; i++) { + h[list[i][0]].addClass(css[list[i][1]]); + } + } + + function fixColumnWidth(table, $headers) { + var c = table.config; + if (c.widthFixed) { + var colgroup = $(''); + $("tr:first td", table.tBodies[0]).each(function () { + colgroup.append($('').css('width', $(this).width())); + }); + $(table).prepend(colgroup); + }; + } + + function updateHeaderSortCount(table, sortList) { + var c = table.config, + l = sortList.length; + for (var i = 0; i < l; i++) { + var s = sortList[i], + o = c.headerList[s[0]]; + o.count = s[1]; + o.count++; + } + } + + /* sorting methods */ + + var sortWrapper; + + function multisort(table, sortList, cache) { + + if (table.config.debug) { + var sortTime = new Date(); + } + + var dynamicExp = "sortWrapper = function(a,b) {", + l = sortList.length; + + // TODO: inline functions. + for (var i = 0; i < l; i++) { + + var c = sortList[i][0]; + var order = sortList[i][1]; + // var s = (getCachedSortType(table.config.parsers,c) == "text") ? + // ((order == 0) ? "sortText" : "sortTextDesc") : ((order == 0) ? + // "sortNumeric" : "sortNumericDesc"); + // var s = (table.config.parsers[c].type == "text") ? ((order == 0) + // ? makeSortText(c) : makeSortTextDesc(c)) : ((order == 0) ? + // makeSortNumeric(c) : makeSortNumericDesc(c)); + var s = (table.config.parsers[c].type == "text") ? ((order == 0) ? makeSortFunction("text", "asc", c) : makeSortFunction("text", "desc", c)) : ((order == 0) ? makeSortFunction("numeric", "asc", c) : makeSortFunction("numeric", "desc", c)); + var e = "e" + i; + + dynamicExp += "var " + e + " = " + s; // + "(a[" + c + "],b[" + c + // + "]); "; + dynamicExp += "if(" + e + ") { return " + e + "; } "; + dynamicExp += "else { "; + + } + + // if value is the same keep orignal order + var orgOrderCol = cache.normalized[0].length - 1; + dynamicExp += "return a[" + orgOrderCol + "]-b[" + orgOrderCol + "];"; + + for (var i = 0; i < l; i++) { + dynamicExp += "}; "; + } + + dynamicExp += "return 0; "; + dynamicExp += "}; "; + + if (table.config.debug) { + benchmark("Evaling expression:" + dynamicExp, new Date()); + } + + eval(dynamicExp); + + cache.normalized.sort(sortWrapper); + + if (table.config.debug) { + benchmark("Sorting on " + sortList.toString() + " and dir " + order + " time:", sortTime); + } + + return cache; + }; + + function makeSortFunction(type, direction, index) { + var a = "a[" + index + "]", + b = "b[" + index + "]"; + if (type == 'text' && direction == 'asc') { + return "(" + a + " == " + b + " ? 0 : (" + a + " === null ? Number.POSITIVE_INFINITY : (" + b + " === null ? Number.NEGATIVE_INFINITY : (" + a + " < " + b + ") ? -1 : 1 )));"; + } else if (type == 'text' && direction == 'desc') { + return "(" + a + " == " + b + " ? 0 : (" + a + " === null ? Number.POSITIVE_INFINITY : (" + b + " === null ? Number.NEGATIVE_INFINITY : (" + b + " < " + a + ") ? -1 : 1 )));"; + } else if (type == 'numeric' && direction == 'asc') { + return "(" + a + " === null && " + b + " === null) ? 0 :(" + a + " === null ? Number.POSITIVE_INFINITY : (" + b + " === null ? Number.NEGATIVE_INFINITY : " + a + " - " + b + "));"; + } else if (type == 'numeric' && direction == 'desc') { + return "(" + a + " === null && " + b + " === null) ? 0 :(" + a + " === null ? Number.POSITIVE_INFINITY : (" + b + " === null ? Number.NEGATIVE_INFINITY : " + b + " - " + a + "));"; + } + }; + + function makeSortText(i) { + return "((a[" + i + "] < b[" + i + "]) ? -1 : ((a[" + i + "] > b[" + i + "]) ? 1 : 0));"; + }; + + function makeSortTextDesc(i) { + return "((b[" + i + "] < a[" + i + "]) ? -1 : ((b[" + i + "] > a[" + i + "]) ? 1 : 0));"; + }; + + function makeSortNumeric(i) { + return "a[" + i + "]-b[" + i + "];"; + }; + + function makeSortNumericDesc(i) { + return "b[" + i + "]-a[" + i + "];"; + }; + + function sortText(a, b) { + if (table.config.sortLocaleCompare) return a.localeCompare(b); + return ((a < b) ? -1 : ((a > b) ? 1 : 0)); + }; + + function sortTextDesc(a, b) { + if (table.config.sortLocaleCompare) return b.localeCompare(a); + return ((b < a) ? -1 : ((b > a) ? 1 : 0)); + }; + + function sortNumeric(a, b) { + return a - b; + }; + + function sortNumericDesc(a, b) { + return b - a; + }; + + function getCachedSortType(parsers, i) { + return parsers[i].type; + }; /* public methods */ + this.construct = function (settings) { + return this.each(function () { + // if no thead or tbody quit. + if (!this.tHead || !this.tBodies) return; + // declare + var $this, $document, $headers, cache, config, shiftDown = 0, + sortOrder; + // new blank config object + this.config = {}; + // merge and extend. + config = $.extend(this.config, $.tablesorter.defaults, settings); + // store common expression for speed + $this = $(this); + // save the settings where they read + $.data(this, "tablesorter", config); + // build headers + $headers = buildHeaders(this); + // try to auto detect column type, and store in tables config + this.config.parsers = buildParserCache(this, $headers); + // build the cache for the tbody cells + cache = buildCache(this); + // get the css class names, could be done else where. + var sortCSS = [config.cssDesc, config.cssAsc]; + // fixate columns if the users supplies the fixedWidth option + fixColumnWidth(this); + // apply event handling to headers + // this is to big, perhaps break it out? + $headers.click( + + function (e) { + var totalRows = ($this[0].tBodies[0] && $this[0].tBodies[0].rows.length) || 0; + if (!this.sortDisabled && totalRows > 0) { + // Only call sortStart if sorting is + // enabled. + $this.trigger("sortStart"); + // store exp, for speed + var $cell = $(this); + // get current column index + var i = this.column; + // get current column sort order + this.order = this.count++ % 2; + // always sort on the locked order. + if(this.lockedOrder) this.order = this.lockedOrder; + + // user only whants to sort on one + // column + if (!e[config.sortMultiSortKey]) { + // flush the sort list + config.sortList = []; + if (config.sortForce != null) { + var a = config.sortForce; + for (var j = 0; j < a.length; j++) { + if (a[j][0] != i) { + config.sortList.push(a[j]); + } + } + } + // add column to sort list + config.sortList.push([i, this.order]); + // multi column sorting + } else { + // the user has clicked on an all + // ready sortet column. + if (isValueInArray(i, config.sortList)) { + // revers the sorting direction + // for all tables. + for (var j = 0; j < config.sortList.length; j++) { + var s = config.sortList[j], + o = config.headerList[s[0]]; + if (s[0] == i) { + o.count = s[1]; + o.count++; + s[1] = o.count % 2; + } + } + } else { + // add column to sort list array + config.sortList.push([i, this.order]); + } + }; + setTimeout(function () { + // set css for headers + setHeadersCss($this[0], $headers, config.sortList, sortCSS); + appendToTable( + $this[0], multisort( + $this[0], config.sortList, cache) + ); + }, 1); + // stop normal event by returning false + return false; + } + // cancel selection + }).mousedown(function () { + if (config.cancelSelection) { + this.onselectstart = function () { + return false + }; + return false; + } + }); + // apply easy methods that trigger binded events + $this.bind("update", function () { + var me = this; + setTimeout(function () { + // rebuild parsers. + me.config.parsers = buildParserCache( + me, $headers); + // rebuild the cache map + cache = buildCache(me); + }, 1); + }).bind("updateCell", function (e, cell) { + var config = this.config; + // get position from the dom. + var pos = [(cell.parentNode.rowIndex - 1), cell.cellIndex]; + // update cache + cache.normalized[pos[0]][pos[1]] = config.parsers[pos[1]].format( + getElementText(config, cell), cell); + }).bind("sorton", function (e, list) { + $(this).trigger("sortStart"); + config.sortList = list; + // update and store the sortlist + var sortList = config.sortList; + // update header count index + updateHeaderSortCount(this, sortList); + // set css for headers + setHeadersCss(this, $headers, sortList, sortCSS); + // sort the table and append it to the dom + appendToTable(this, multisort(this, sortList, cache)); + }).bind("appendCache", function () { + appendToTable(this, cache); + }).bind("applyWidgetId", function (e, id) { + getWidgetById(id).format(this); + }).bind("applyWidgets", function () { + // apply widgets + applyWidget(this); + }); + if ($.metadata && ($(this).metadata() && $(this).metadata().sortlist)) { + config.sortList = $(this).metadata().sortlist; + } + // if user has supplied a sort list to constructor. + if (config.sortList.length > 0) { + $this.trigger("sorton", [config.sortList]); + } + // apply widgets + applyWidget(this); + }); + }; + this.addParser = function (parser) { + var l = parsers.length, + a = true; + for (var i = 0; i < l; i++) { + if (parsers[i].id.toLowerCase() == parser.id.toLowerCase()) { + a = false; + } + } + if (a) { + parsers.push(parser); + }; + }; + this.addWidget = function (widget) { + widgets.push(widget); + }; + this.formatFloat = function (s) { + var i = parseFloat(s); + return (isNaN(i)) ? 0 : i; + }; + this.formatInt = function (s) { + var i = parseInt(s); + return (isNaN(i)) ? 0 : i; + }; + this.isDigit = function (s, config) { + // replace all an wanted chars and match. + return /^[-+]?\d*$/.test($.trim(s.replace(/[,.']/g, ''))); + }; + this.clearTableBody = function (table) { + if ($.browser.msie) { + while (table.tBodies[0].firstChild) { + table.tBodies[0].removeChild(table.tBodies[0].firstChild); + } + } else { + table.tBodies[0].innerHTML = ""; + } + }; + } + }); + + // extend plugin scope + $.fn.extend({ + tablesorter: $.tablesorter.construct + }); + + // make shortcut + var ts = $.tablesorter; + + // add default parsers + ts.addParser({ + id: "text", + is: function (s) { + return true; + }, format: function (s) { + return $.trim(s.toLocaleLowerCase()); + }, type: "text" + }); + + ts.addParser({ + id: "digit", + is: function (s, table) { + var c = table.config; + return $.tablesorter.isDigit(s, c); + }, format: function (s) { + return $.tablesorter.formatFloat(s); + }, type: "numeric" + }); + + ts.addParser({ + id: "currency", + is: function (s) { + return /^[£$€?.]/.test(s); + }, format: function (s) { + return $.tablesorter.formatFloat(s.replace(new RegExp(/[£$€]/g), "")); + }, type: "numeric" + }); + + ts.addParser({ + id: "ipAddress", + is: function (s) { + return /^\d{2,3}[\.]\d{2,3}[\.]\d{2,3}[\.]\d{2,3}$/.test(s); + }, format: function (s) { + var a = s.split("."), + r = "", + l = a.length; + for (var i = 0; i < l; i++) { + var item = a[i]; + if (item.length == 2) { + r += "0" + item; + } else { + r += item; + } + } + return $.tablesorter.formatFloat(r); + }, type: "numeric" + }); + + ts.addParser({ + id: "url", + is: function (s) { + return /^(https?|ftp|file):\/\/$/.test(s); + }, format: function (s) { + return jQuery.trim(s.replace(new RegExp(/(https?|ftp|file):\/\//), '')); + }, type: "text" + }); + + ts.addParser({ + id: "isoDate", + is: function (s) { + return /^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(s); + }, format: function (s) { + return $.tablesorter.formatFloat((s != "") ? new Date(s.replace( + new RegExp(/-/g), "/")).getTime() : "0"); + }, type: "numeric" + }); + + ts.addParser({ + id: "percent", + is: function (s) { + return /\%$/.test($.trim(s)); + }, format: function (s) { + return $.tablesorter.formatFloat(s.replace(new RegExp(/%/g), "")); + }, type: "numeric" + }); + + ts.addParser({ + id: "usLongDate", + is: function (s) { + return s.match(new RegExp(/^[A-Za-z]{3,10}\.? [0-9]{1,2}, ([0-9]{4}|'?[0-9]{2}) (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(AM|PM)))$/)); + }, format: function (s) { + return $.tablesorter.formatFloat(new Date(s).getTime()); + }, type: "numeric" + }); + + ts.addParser({ + id: "shortDate", + is: function (s) { + return /\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/.test(s); + }, format: function (s, table) { + var c = table.config; + s = s.replace(/\-/g, "/"); + if (c.dateFormat == "us") { + // reformat the string in ISO format + s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$1/$2"); + } + if (c.dateFormat == "pt") { + s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$2/$1"); + } else if (c.dateFormat == "uk") { + // reformat the string in ISO format + s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$2/$1"); + } else if (c.dateFormat == "dd/mm/yy" || c.dateFormat == "dd-mm-yy") { + s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2})/, "$1/$2/$3"); + } + return $.tablesorter.formatFloat(new Date(s).getTime()); + }, type: "numeric" + }); + ts.addParser({ + id: "time", + is: function (s) { + return /^(([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(am|pm)))$/.test(s); + }, format: function (s) { + return $.tablesorter.formatFloat(new Date("2000/01/01 " + s).getTime()); + }, type: "numeric" + }); + ts.addParser({ + id: "metadata", + is: function (s) { + return false; + }, format: function (s, table, cell) { + var c = table.config, + p = (!c.parserMetadataName) ? 'sortValue' : c.parserMetadataName; + return $(cell).metadata()[p]; + }, type: "numeric" + }); + // add default widgets + ts.addWidget({ + id: "zebra", + format: function (table) { + if (table.config.debug) { + var time = new Date(); + } + var $tr, row = -1, + odd; + // loop through the visible rows + $("tr:visible", table.tBodies[0]).each(function (i) { + $tr = $(this); + // style children rows the same way the parent + // row was styled + if (!$tr.hasClass(table.config.cssChildRow)) row++; + odd = (row % 2 == 0); + $tr.removeClass( + table.config.widgetZebra.css[odd ? 0 : 1]).addClass( + table.config.widgetZebra.css[odd ? 1 : 0]) + }); + if (table.config.debug) { + $.tablesorter.benchmark("Applying Zebra widget", time); + } + } + }); +})(jQuery); diff --git a/2024-12-12-22:00/poodle_trunk_parallel/js/purl.js b/2024-12-12-22:00/poodle_trunk_parallel/js/purl.js new file mode 100644 index 000000000..d25ca4c00 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/js/purl.js @@ -0,0 +1,271 @@ +/* + * JQuery URL Parser plugin, v2.2.1 + * Developed and maintanined by Mark Perkins, mark@allmarkedup.com + * Source repository: https://github.com/allmarkedup/jQuery-URL-Parser + * Licensed under an MIT-style license. See https://github.com/allmarkedup/jQuery-URL-Parser/blob/master/LICENSE for details. + */ + +;(function(factory) { + if (typeof define === 'function' && define.amd) { + // AMD available; use anonymous module + if ( typeof jQuery !== 'undefined' ) { + define(['jquery'], factory); + } else { + define([], factory); + } + } else { + // No AMD available; mutate global vars + if ( typeof jQuery !== 'undefined' ) { + factory(jQuery); + } else { + factory(); + } + } +})(function($, undefined) { + + var tag2attr = { + a : 'href', + img : 'src', + form : 'action', + base : 'href', + script : 'src', + iframe : 'src', + link : 'href' + }, + + key = ['source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'fragment'], // keys available to query + + aliases = { 'anchor' : 'fragment' }, // aliases for backwards compatability + + parser = { + strict : /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, //less intuitive, more accurate to the specs + loose : /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ // more intuitive, fails on relative paths and deviates from specs + }, + + toString = Object.prototype.toString, + + isint = /^[0-9]+$/; + + function parseUri( url, strictMode ) { + var str = decodeURI( url ), + res = parser[ strictMode || false ? 'strict' : 'loose' ].exec( str ), + uri = { attr : {}, param : {}, seg : {} }, + i = 14; + + while ( i-- ) { + uri.attr[ key[i] ] = res[i] || ''; + } + + // build query and fragment parameters + uri.param['query'] = parseString(uri.attr['query']); + uri.param['fragment'] = parseString(uri.attr['fragment']); + + // split path and fragement into segments + uri.seg['path'] = uri.attr.path.replace(/^\/+|\/+$/g,'').split('/'); + uri.seg['fragment'] = uri.attr.fragment.replace(/^\/+|\/+$/g,'').split('/'); + + // compile a 'base' domain attribute + uri.attr['base'] = uri.attr.host ? (uri.attr.protocol ? uri.attr.protocol+'://'+uri.attr.host : uri.attr.host) + (uri.attr.port ? ':'+uri.attr.port : '') : ''; + + return uri; + }; + + function getAttrName( elm ) { + var tn = elm.tagName; + if ( typeof tn !== 'undefined' ) return tag2attr[tn.toLowerCase()]; + return tn; + } + + function promote(parent, key) { + if (parent[key].length == 0) return parent[key] = {}; + var t = {}; + for (var i in parent[key]) t[i] = parent[key][i]; + parent[key] = t; + return t; + } + + function parse(parts, parent, key, val) { + var part = parts.shift(); + if (!part) { + if (isArray(parent[key])) { + parent[key].push(val); + } else if ('object' == typeof parent[key]) { + parent[key] = val; + } else if ('undefined' == typeof parent[key]) { + parent[key] = val; + } else { + parent[key] = [parent[key], val]; + } + } else { + var obj = parent[key] = parent[key] || []; + if (']' == part) { + if (isArray(obj)) { + if ('' != val) obj.push(val); + } else if ('object' == typeof obj) { + obj[keys(obj).length] = val; + } else { + obj = parent[key] = [parent[key], val]; + } + } else if (~part.indexOf(']')) { + part = part.substr(0, part.length - 1); + if (!isint.test(part) && isArray(obj)) obj = promote(parent, key); + parse(parts, obj, part, val); + // key + } else { + if (!isint.test(part) && isArray(obj)) obj = promote(parent, key); + parse(parts, obj, part, val); + } + } + } + + function merge(parent, key, val) { + if (~key.indexOf(']')) { + var parts = key.split('['), + len = parts.length, + last = len - 1; + parse(parts, parent, 'base', val); + } else { + if (!isint.test(key) && isArray(parent.base)) { + var t = {}; + for (var k in parent.base) t[k] = parent.base[k]; + parent.base = t; + } + set(parent.base, key, val); + } + return parent; + } + + function parseString(str) { + return reduce(String(str).split(/&|;/), function(ret, pair) { + try { + pair = decodeURIComponent(pair.replace(/\+/g, ' ')); + } catch(e) { + // ignore + } + var eql = pair.indexOf('='), + brace = lastBraceInKey(pair), + key = pair.substr(0, brace || eql), + val = pair.substr(brace || eql, pair.length), + val = val.substr(val.indexOf('=') + 1, val.length); + + if ('' == key) key = pair, val = ''; + + return merge(ret, key, val); + }, { base: {} }).base; + } + + function set(obj, key, val) { + var v = obj[key]; + if (undefined === v) { + obj[key] = val; + } else if (isArray(v)) { + v.push(val); + } else { + obj[key] = [v, val]; + } + } + + function lastBraceInKey(str) { + var len = str.length, + brace, c; + for (var i = 0; i < len; ++i) { + c = str[i]; + if (']' == c) brace = false; + if ('[' == c) brace = true; + if ('=' == c && !brace) return i; + } + } + + function reduce(obj, accumulator){ + var i = 0, + l = obj.length >> 0, + curr = arguments[2]; + while (i < l) { + if (i in obj) curr = accumulator.call(undefined, curr, obj[i], i, obj); + ++i; + } + return curr; + } + + function isArray(vArg) { + return Object.prototype.toString.call(vArg) === "[object Array]"; + } + + function keys(obj) { + var keys = []; + for ( prop in obj ) { + if ( obj.hasOwnProperty(prop) ) keys.push(prop); + } + return keys; + } + + function purl( url, strictMode ) { + if ( arguments.length === 1 && url === true ) { + strictMode = true; + url = undefined; + } + strictMode = strictMode || false; + url = url || window.location.toString(); + + return { + + data : parseUri(url, strictMode), + + // get various attributes from the URI + attr : function( attr ) { + attr = aliases[attr] || attr; + return typeof attr !== 'undefined' ? this.data.attr[attr] : this.data.attr; + }, + + // return query string parameters + param : function( param ) { + return typeof param !== 'undefined' ? this.data.param.query[param] : this.data.param.query; + }, + + // return fragment parameters + fparam : function( param ) { + return typeof param !== 'undefined' ? this.data.param.fragment[param] : this.data.param.fragment; + }, + + // return path segments + segment : function( seg ) { + if ( typeof seg === 'undefined' ) { + return this.data.seg.path; + } else { + seg = seg < 0 ? this.data.seg.path.length + seg : seg - 1; // negative segments count from the end + return this.data.seg.path[seg]; + } + }, + + // return fragment segments + fsegment : function( seg ) { + if ( typeof seg === 'undefined' ) { + return this.data.seg.fragment; + } else { + seg = seg < 0 ? this.data.seg.fragment.length + seg : seg - 1; // negative segments count from the end + return this.data.seg.fragment[seg]; + } + } + + }; + + }; + + if ( typeof $ !== 'undefined' ) { + + $.fn.url = function( strictMode ) { + var url = ''; + if ( this.length ) { + url = $(this).attr( getAttrName(this[0]) ) || ''; + } + return purl( url, strictMode ); + }; + + $.url = purl; + + } else { + window.purl = purl; + } + +}); + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/meshtype_arbpoly.html b/2024-12-12-22:00/poodle_trunk_parallel/meshtype_arbpoly.html new file mode 100644 index 000000000..b37e3ed8f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/meshtype_arbpoly.html @@ -0,0 +1,90 @@ + +Results for meshtype/arbpoly.py + +

    Results of VisIt Regression Test - meshtype/arbpoly

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    arbpoly_010.000.00
    arbpoly_020.000.00
    arbpoly_030.000.00
    arbpoly_040.000.00
    arbpoly_050.000.00
    arbpoly_060.000.00
    arbpoly_070.000.00
    arbpoly_080.000.00
    arbpoly_090.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/meshtype_arbpoly_py.html b/2024-12-12-22:00/poodle_trunk_parallel/meshtype_arbpoly_py.html new file mode 100644 index 000000000..3286a70d7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/meshtype_arbpoly_py.html @@ -0,0 +1,124 @@ +meshtype/arbpoly.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  arbpoly.py
    +#
    +#  Tests:      mesh      - a ucd mesh with arbitrary polyhedral zones
    +#              plots     - pc, contour, mat subset, mesh
    +#              operators - OnionPeel
    +#              selection - material
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Mark C. Miller
    +#  Date:       October 24, 2004
    +#
    +#  Modifications
    +#    Mark C. Miller, Tue Oct 20 16:30:31 PDT 2009
    +#    Added tests for fully arbitrary mesh
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Aug 26 08:55:04 PDT 2010
    +#    Update set index after SIL generation changes.
    +#
    +#    Kathleen Biagas, Wed Sep 10 14:15:44 PDT 2014
    +#    Added tests for OnionPeel'd arb poly, and a single-zone arb-poly set.
    +#
    +#    Kathleen Biagas, Wed Feb 16 09:15:45 PST 2022
    +#    Replace use of meshatts 'backgroundFlag' with opaqueColorSource.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("poly3d.silo"))
    +
    +
    +AddPlot("Mesh", "ucdmesh3d")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.SetViewNormal(-0.0356529, 0.010858, 0.999305)
    +v.SetViewUp(0.0100239, 0.999895, -0.0105068)
    +v.SetImageZoom(2.75)
    +SetView3D(v)
    +
    +Test("arbpoly_01")
    +
    +#
    +# See if we can handle a zone centered variable correctly
    +#
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +Test("arbpoly_02")
    +
    +DeleteActivePlots()
    +
    +#
    +# See if we can handle a material correctly
    +# Turn off alternate materials.
    +AddPlot("FilledBoundary", "mat1")
    +silr=SILRestriction()
    +silr.TurnOffSet(2)
    +SetPlotSILRestriction(silr)
    +DrawPlots()
    +
    +Test("arbpoly_03")
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("poly3d.silo"))
    +
    +
    +OpenDatabase(data_path("overlink_test_data/ev_0_0_100/OvlTop.silo"))
    +
    +AddPlot("Mesh","MMESH")
    +DrawPlots()
    +ma = MeshAttributes()
    +ma.opaqueColor = (0, 200, 200, 255)
    +ma.opaqueMode = ma.On
    +ma.opaqueColorSource = ma.OpaqueCustom
    +SetPlotOptions(ma)
    +ResetView()
    +Test("arbpoly_04")
    +v = GetView3D()
    +v.SetViewNormal(-0.433013, 0.5, 0.75)
    +v.SetViewUp(0.25, 0.866025, -0.433013)
    +SetView3D(v)
    +Test("arbpoly_05")
    +ma.opaqueMode = ma.Off
    +SetPlotOptions(ma)
    +
    +AddPlot("Pseudocolor","nvar0")
    +DrawPlots()
    +Test("arbpoly_06")
    +DeleteActivePlots()
    +
    +AddPlot("Pseudocolor","zvar3")
    +DrawPlots()
    +Test("arbpoly_07")
    +
    +DeleteActivePlots()
    +ma.lineWidth = 3
    +SetPlotOptions(ma)
    +AddPlot("FilledBoundary", "MMATERIAL")
    +AddPlot("Subset", "domains")
    +AddOperator("OnionPeel", 1)
    +op = OnionPeelAttributes()
    +op.index = 99
    +SetOperatorOptions(op,0,1)
    +DrawPlots()
    +Test("arbpoly_08")
    +DeleteAllPlots()
    +CloseDatabase(data_path("overlink_test_data/ev_0_0_100/OvlTop.silo"))
    +
    +OpenDatabase(silo_data_path("arbpoly.silo"))
    +AddPlot("Mesh", "clipped_hex")
    +ma.opaqueMode = ma.On
    +SetPlotOptions(ma)
    +DrawPlots()
    +Test("arbpoly_09")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/meshtype_csg.html b/2024-12-12-22:00/poodle_trunk_parallel/meshtype_csg.html new file mode 100644 index 000000000..c6222091a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/meshtype_csg.html @@ -0,0 +1,78 @@ + +Results for meshtype/csg.py + +

    Results of VisIt Regression Test - meshtype/csg

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    csg_010.000.00
    csg_020.000.00
    csg_030.000.00
    csg_040.000.00
    csg_050.000.00
    csg_070.000.00
    csg_080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/meshtype_csg_py.html b/2024-12-12-22:00/poodle_trunk_parallel/meshtype_csg_py.html new file mode 100644 index 000000000..d4ed3a161 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/meshtype_csg_py.html @@ -0,0 +1,177 @@ +meshtype/csg.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  csg.py
    +#
    +#  Tests:      mesh      - a csg mesh
    +#              subset plot
    +#              selection - subset
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       August 16, 2005
    +#
    +#  Mofications:
    +#
    +#    Mark C. Miller, Sun Dec  3 12:20:11 PST 2006
    +#    Added tests for materials, variables and Matt's csg data
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Mark C. Miller, Fri Apr  2 17:31:28 PDT 2010
    +#    Replaced first two tests with subset plot instead of mesh plot.
    +#    Used MultiPass instead of uniform for first test.
    +# ----------------------------------------------------------------------------
    +
    +mma=MeshManagementAttributes()
    +mma.discretizationMode = mma.Adaptive
    +mma.discretizationTolerance=(0.01, 0.25)
    +SetMeshManagementAttributes(mma)
    +OpenDatabase(silo_data_path("csg.silo"))
    +
    +
    +#
    +# the mesh named "csgmesh" uses just spheres, cylinder and plane
    +# primitives
    +#
    +AddPlot("Subset", "csgmesh")
    +DrawPlots()
    +v = GetView3D()
    +v.SetViewNormal(0.650274, -0.646958, 0.398232)
    +v.SetViewUp(-0.290226, 0.272881, 0.917227)
    +SetView3D(v)
    +Test("csg_01")
    +
    +#
    +# Change the discretization tolerance and mode
    +#
    +mma.discretizationMode = mma.MultiPass
    +mma.discretizationTolerance=(0.02, 0.25)
    +SetMeshManagementAttributes(mma)
    +ReOpenDatabase(silo_data_path("csg.silo"))
    +
    +ClearWindow()
    +DrawPlots()
    +Test("csg_02")
    +DeleteAllPlots()
    +ResetView()
    +
    +#
    +# Ok, lets try Greg Greenman's example mesh. It uses
    +# all general quadrics and planes
    +#
    +mma.discretizationTolerance=(0.005, 0.25)
    +mma.discretizationMode = mma.Adaptive
    +SetMeshManagementAttributes(mma)
    +ReOpenDatabase(silo_data_path("csg.silo"))
    +
    +AddPlot("Subset", "regions(greenman_mesh)")
    +DrawPlots()
    +v = GetView3D()
    +v.SetViewNormal(-0.496376, -0.386195, -0.777473)
    +v.SetViewUp(0.865609, -0.152286, -0.477001)
    +SetView3D(v)
    +Test("csg_03")
    +
    +#
    +# Find set ids using their names
    +#
    +voidSetId = -1
    +uraniumSetId = -1
    +airSetId = -1
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "void":
    +        voidSetId = i
    +    elif silr.SetName(i) == "uranium":
    +        uraniumSetId = i
    +    elif silr.SetName(i) == "air":
    +        airSetId = i
    +
    +#
    +# Turn off the air
    +#
    +silr.TurnOffSet(airSetId)
    +SetPlotSILRestriction(silr)
    +Test("csg_04")
    +
    +#
    +# Turn on air, but turn void and uranium off
    +#
    +silr.TurnOnSet(airSetId)
    +silr.TurnOffSet(voidSetId)
    +silr.TurnOffSet(uraniumSetId)
    +SetPlotSILRestriction(silr)
    +Test("csg_05")
    +
    +#
    +# Try a material plot
    +#
    +#DeleteAllPlots()
    +#AddPlot("FilledBoundary","mat")
    +#AddPlot("Mesh","csgmesh")
    +#DrawPlots()
    +#ResetView()
    +#v = GetView3D()
    +#v.SetViewNormal(0.650274, -0.646958, 0.398232)
    +#v.SetViewUp(-0.290226, 0.272881, 0.917227)
    +#SetView3D(v)
    +#Test("csg_06")
    +
    +#
    +# Try plotting a variable
    +#
    +DeleteAllPlots()
    +AddPlot("Pseudocolor","var1")
    +AddPlot("Mesh","csgmesh")
    +DrawPlots()
    +ResetView()
    +v = GetView3D()
    +v.SetViewNormal(0.650274, -0.646958, 0.398232)
    +v.SetViewUp(-0.290226, 0.272881, 0.917227)
    +SetView3D(v)
    +Test("csg_07")
    +
    +#
    +# Try various other objects in this file 
    +#
    +DeleteAllPlots()
    +
    +#
    +# Now use Matt's Fusion data
    +#
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("csg.silo"))
    +
    +mma.discretizationTolerance=(0.05, 0.25)
    +mma.discretizationMode = mma.Adaptive
    +SetMeshManagementAttributes(mma)
    +OpenDatabase(data_path("csg_test_data/Fusion_000001_root.gra"))
    +
    +AddPlot("FilledBoundary","MC_Material(MC_ThreeD_Structured)")
    +DrawPlots()
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "2 Concrete_B":
    +        silr.TurnOffSet(i)
    +    if silr.SetName(i) == "6 Concrete_F":
    +        silr.TurnOffSet(i)
    +    if silr.SetName(i) == "7 Concrete_G":
    +        silr.TurnOffSet(i)
    +    if silr.SetName(i) == "8 Air_A":
    +        silr.TurnOffSet(i)
    +    if silr.SetName(i) == "9 Air_B":
    +        silr.TurnOffSet(i)
    +    if silr.SetName(i) == "10 Air_C":
    +        silr.TurnOffSet(i)
    +SetPlotSILRestriction(silr)
    +ResetView()
    +v = GetView3D()
    +v.SetViewNormal(-0.5, -0.852869, -0.150384)
    +v.SetViewUp(0.0, -0.173648, 0.984808)
    +v.imageZoom = 1.5
    +SetView3D(v)
    +Test("csg_08")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/meshtype_degen_mesh.html b/2024-12-12-22:00/poodle_trunk_parallel/meshtype_degen_mesh.html new file mode 100644 index 000000000..a137f14ba --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/meshtype_degen_mesh.html @@ -0,0 +1,84 @@ + +Results for meshtype/degen_mesh.py + +

    Results of VisIt Regression Test - meshtype/degen_mesh

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    degen_mesh_010.000.00
    degen_mesh_020.000.00
    degen_mesh_030.000.00
    degen_mesh_040.000.00
    degen_mesh_050.000.00
    degen_mesh_060.000.00
    degen_mesh_070.000.00
    degen_mesh_080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/meshtype_degen_mesh_py.html b/2024-12-12-22:00/poodle_trunk_parallel/meshtype_degen_mesh_py.html new file mode 100644 index 000000000..bb6e39222 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/meshtype_degen_mesh_py.html @@ -0,0 +1,260 @@ +meshtype/degen_mesh.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  degenerate.py
    +#
    +#  Tests:      mesh      - 3D curvilinear, rectilinear
    +#              plots     - pc, contour, mesh
    +#              operators - none
    +#              selection - none
    +#
    +#  Defect ID:  '5333 & '5335
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 26, 2004
    +#
    +#
    +#  Modifications:
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# Define some expressions that will be handy for later.
    +DefineVectorExpression("coords_plus1", "coords(mesh)")
    +DefineVectorExpression("coords", "{coords_plus1[0]-1., coords_plus1[1]-1., coords_plus1[2]-1. }")
    +DefineVectorExpression("i_disp", "{ -sqrt(coords[1]*coords[1] + coords[2]*coords[2]), 0, 0 }")
    +DefineVectorExpression("j_disp", "{ 0, -sqrt(coords[0]*coords[0] + coords[2]*coords[2]), 0 }")
    +DefineVectorExpression("k_disp", "{ 0, 0, -sqrt(coords[0]*coords[0] + coords[1]*coords[1]) }")
    +DefineScalarExpression("pos", "sqrt(coords[0]*coords[0]+coords[1]*coords[1]+coords[2]*coords[2])")
    +
    +#
    +# Start off by testing curvilinear meshes.
    +#
    +
    +# Test that we can make the meshes with no modification.
    +OpenDatabase(data_path("vtk_test_data/curv_flat_i.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +# If you do a DrawPlots now, you will exhibit '5337
    +OpenDatabase(data_path("vtk_test_data/curv_flat_j.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +OpenDatabase(data_path("vtk_test_data/curv_flat_k.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +Test("degen_mesh_01")
    +
    +# Test that we can handle displacing them and operating on them with
    +# expressions.
    +disp = DisplaceAttributes()
    +disp.variable = "i_disp"
    +SetDefaultOperatorOptions(disp)
    +SetActivePlots(0)
    +AddOperator("Displace")
    +disp.variable = "j_disp"
    +SetDefaultOperatorOptions(disp)
    +SetActivePlots(1)
    +AddOperator("Displace")
    +disp.variable = "k_disp"
    +SetDefaultOperatorOptions(disp)
    +SetActivePlots(2)
    +AddOperator("Displace")
    +DrawPlots()
    +
    +v= GetView3D()
    +v.viewNormal = (0.449864, 0.604932, 0.657023)
    +v.focus = (0.801178, 0.801178, 0.801178)
    +v.viewUp = (0.377875, 0.537649, -0.753753)
    +v.viewAngle = 30
    +v.parallelScale = 2.00714
    +v.nearPlane = -4.01428
    +v.farPlane = 4.01428
    +v.imagePan = (0, 0)
    +v.imageZoom = 0.873008
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, 0)
    +SetView3D(v)
    +Test("degen_mesh_02")
    +
    +# Test that we can do PC plots ('5335)
    +ActivateDatabase(data_path("vtk_test_data/curv_flat_i.vtk"))
    +
    +AddPlot("Pseudocolor", "pos")
    +disp = DisplaceAttributes()
    +disp.variable = "i_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +ActivateDatabase(data_path("vtk_test_data/curv_flat_j.vtk"))
    +
    +AddPlot("Pseudocolor", "pos")
    +disp.variable = "j_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +ActivateDatabase(data_path("vtk_test_data/curv_flat_k.vtk"))
    +
    +AddPlot("Pseudocolor", "pos")
    +disp.variable = "k_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +DrawPlots()
    +Test("degen_mesh_03")
    +
    +SetActivePlots(5)
    +DeleteActivePlots()
    +SetActivePlots(4)
    +DeleteActivePlots()
    +SetActivePlots(3)
    +DeleteActivePlots()
    +
    +
    +# Test that we can do contours ('5333)
    +ActivateDatabase(data_path("vtk_test_data/curv_flat_i.vtk"))
    +
    +AddPlot("Contour", "pos")
    +disp = DisplaceAttributes()
    +disp.variable = "i_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +ActivateDatabase(data_path("vtk_test_data/curv_flat_j.vtk"))
    +
    +AddPlot("Contour", "pos")
    +disp.variable = "j_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +ActivateDatabase(data_path("vtk_test_data/curv_flat_k.vtk"))
    +
    +AddPlot("Contour", "pos")
    +disp.variable = "k_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +DrawPlots()
    +Test("degen_mesh_04")
    +
    +
    +#
    +# Now do the same thing over again with rectilinear meshes.
    +#
    +DeleteAllPlots()
    +
    +# Test that we can make the meshes with no modification.
    +OpenDatabase(data_path("vtk_test_data/rect_flat_i.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +# If you do a DrawPlots now, you will exhibit '5337
    +OpenDatabase(data_path("vtk_test_data/rect_flat_j.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +OpenDatabase(data_path("vtk_test_data/rect_flat_k.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +Test("degen_mesh_05")
    +
    +# Test that we can handle displacing them and operating on them with
    +# expressions.
    +disp = DisplaceAttributes()
    +disp.variable = "i_disp"
    +SetDefaultOperatorOptions(disp)
    +SetActivePlots(0)
    +AddOperator("Displace")
    +disp.variable = "j_disp"
    +SetDefaultOperatorOptions(disp)
    +SetActivePlots(1)
    +AddOperator("Displace")
    +disp.variable = "k_disp"
    +SetDefaultOperatorOptions(disp)
    +SetActivePlots(2)
    +AddOperator("Displace")
    +DrawPlots()
    +v= GetView3D()
    +v.viewNormal = (0.449864, 0.604932, 0.657023)
    +v.focus = (0.801178, 0.801178, 0.801178)
    +v.viewUp = (0.377875, 0.537649, -0.753753)
    +v.viewAngle = 30
    +v.parallelScale = 2.00714
    +v.nearPlane = -4.01428
    +v.farPlane = 4.01428
    +v.imagePan = (0, 0)
    +v.imageZoom = 0.873008
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, 0)
    +SetView3D(v)
    +Test("degen_mesh_06")
    +
    +# Test that we can do PC plots ('5335)
    +ActivateDatabase(data_path("vtk_test_data/rect_flat_i.vtk"))
    +
    +AddPlot("Pseudocolor", "pos")
    +disp = DisplaceAttributes()
    +disp.variable = "i_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +ActivateDatabase(data_path("vtk_test_data/rect_flat_j.vtk"))
    +
    +AddPlot("Pseudocolor", "pos")
    +disp.variable = "j_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +ActivateDatabase(data_path("vtk_test_data/rect_flat_k.vtk"))
    +
    +AddPlot("Pseudocolor", "pos")
    +disp.variable = "k_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +DrawPlots()
    +Test("degen_mesh_07")
    +
    +SetActivePlots(5)
    +DeleteActivePlots()
    +SetActivePlots(4)
    +DeleteActivePlots()
    +SetActivePlots(3)
    +DeleteActivePlots()
    +
    +
    +# Test that we can do contours ('5333)
    +ActivateDatabase(data_path("vtk_test_data/curv_flat_i.vtk"))
    +
    +AddPlot("Contour", "pos")
    +disp = DisplaceAttributes()
    +disp.variable = "i_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +ActivateDatabase(data_path("vtk_test_data/curv_flat_j.vtk"))
    +
    +AddPlot("Contour", "pos")
    +disp.variable = "j_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +ActivateDatabase(data_path("vtk_test_data/curv_flat_k.vtk"))
    +
    +AddPlot("Contour", "pos")
    +disp.variable = "k_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +DrawPlots()
    +Test("degen_mesh_08")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/meshtype_emptydomains.html b/2024-12-12-22:00/poodle_trunk_parallel/meshtype_emptydomains.html new file mode 100644 index 000000000..71c0142d0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/meshtype_emptydomains.html @@ -0,0 +1,104 @@ + +Results for meshtype/emptydomains.py + +

    Results of VisIt Regression Test - meshtype/emptydomains

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    meshtype_emptydomains_010.000.00
    meshtype_emptydomains_020.000.00
    meshtype_emptydomains_030.000.00
    meshtype_emptydomains_040.000.00
    meshtype_emptydomains_050.000.00
    meshtype_emptydomains_060.000.00
    meshtype_emptydomains_070.000.00
    meshtype_emptydomains_080.000.00
    meshtype_emptydomains_090.000.00
    meshtype_emptydomains_100.000.00
    meshtype_emptydomains_110 modifications totalling 0 lines
    meshtype_emptydomains_120 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/meshtype_emptydomains_py.html b/2024-12-12-22:00/poodle_trunk_parallel/meshtype_emptydomains_py.html new file mode 100644 index 000000000..47e263c4d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/meshtype_emptydomains_py.html @@ -0,0 +1,132 @@ +meshtype/emptydomains.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  emptydomains.py
    +#
    +#  Tests:      multi-objects with empty domains
    +#
    +#  Defect ID:  VisIt00005226
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       June  7, 2005
    +#
    +#  Modificatons:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Mark C. Miller, Wed Sep 23 16:28:27 PDT 2020
    +#    Force to run on only PDB driver
    +# ----------------------------------------------------------------------------
    +OpenDatabase(data_path("silo_pdb_test_data/emptydomains.silo"))
    +
    +# Test the multi-mesh support
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.SetViewNormal(-0.528889, 0.367702, 0.7649)
    +v.SetViewUp(0.176641, 0.929226, -0.324558)
    +v.SetPerspective(1)
    +SetView3D(v)
    +
    +Test("meshtype_emptydomains_01")
    +
    +# Test the multi-var support
    +AddPlot("Pseudocolor", "density")
    +DrawPlots()
    +Test("meshtype_emptydomains_02")
    +
    +# Test material selection support
    +TurnMaterialsOff("5")
    +Test("meshtype_emptydomains_03")
    +
    +# Test multi-material support
    +TurnMaterialsOn()
    +DeleteAllPlots()
    +AddPlot("FilledBoundary", "mat")
    +DrawPlots()
    +Test("meshtype_emptydomains_04")
    +
    +# Test multi-species/species selection support
    +DeleteAllPlots()
    +AddPlot("Pseudocolor","spec")
    +silr=SILRestriction()
    +silr.TurnOffSet(6)
    +SetPlotSILRestriction(silr)
    +DrawPlots()
    +Test("meshtype_emptydomains_05")
    +
    +silr.TurnOffSet(5)
    +SetPlotSILRestriction(silr)
    +Test("meshtype_emptydomains_06")
    +
    +# Test domain selection support
    +DeleteAllPlots()
    +silr.TurnOnAll()
    +silr.TurnOffSet(1)
    +SetPlotSILRestriction(silr)
    +AddPlot("Mesh", "mesh")
    +AddPlot("Pseudocolor", "density")
    +DrawPlots()
    +Test("meshtype_emptydomains_07")
    +
    +# Test slice-by-zone
    +silr.TurnOnAll()
    +SetPlotSILRestriction(silr)
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "density")
    +AddOperator("Slice")
    +s1 = SliceAttributes()
    +s1.originType = s1.Zone
    +s1.project2d = 0
    +s1.originZone = 170
    +s1.originZoneDomain = 2
    +SetOperatorOptions(s1)
    +DrawPlots()
    +Test("meshtype_emptydomains_08")
    +
    +# Test slice-by-node
    +silr.TurnOnAll()
    +SetPlotSILRestriction(silr)
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "density")
    +AddOperator("Slice")
    +s2 = SliceAttributes()
    +s2.originType = s2.Node
    +s2.project2d = 0
    +s2.originNode = 11
    +s2.originNodeDomain = 2
    +SetOperatorOptions(s2)
    +DrawPlots()
    +Test("meshtype_emptydomains_09")
    +
    +# Test onion peel
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "density")
    +AddOperator("OnionPeel")
    +o = OnionPeelAttributes()
    +o.categoryName = "domains"
    +o.subsetName = "domain2"
    +o.index = (210)
    +o.requestedLayer = 3
    +DrawPlots()
    +SetOperatorOptions(o)
    +Test("meshtype_emptydomains_10")
    +
    +# Test zone pick
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "density")
    +DrawPlots()
    +PickByZone(120, 2, "density")
    +TestText("meshtype_emptydomains_11", GetPickOutput())
    +
    +# Test node pick
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "density")
    +DrawPlots()
    +PickByNode(100, 2, "density")
    +TestText("meshtype_emptydomains_12", GetPickOutput())
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/meshtype_globe.html b/2024-12-12-22:00/poodle_trunk_parallel/meshtype_globe.html new file mode 100644 index 000000000..4b89bbc05 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/meshtype_globe.html @@ -0,0 +1,72 @@ + +Results for meshtype/globe.py + +

    Results of VisIt Regression Test - meshtype/globe

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    globe_010.000.00
    globe_020.000.00
    globe_030.000.00
    globe_040.000.00
    globe_050.000.00
    globe_060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/meshtype_globe_py.html b/2024-12-12-22:00/poodle_trunk_parallel/meshtype_globe_py.html new file mode 100644 index 000000000..53efd3aac --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/meshtype_globe_py.html @@ -0,0 +1,85 @@ +meshtype/globe.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  globe.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - pc, contour, mat subset, mesh, vector
    +#              operators - none
    +#              selection - none
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       April 17, 2002
    +#
    +#  Modificatons:
    +#    Kathleen Bonnell, Thu Sep  5 10:55:47 PDT 2002
    +#    Changed the variable format for SubsetPlots, to reflect new interface
    +#    which allows subsets of groups.
    +#
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset plots.
    +#
    +#    Kathleen Bonnell, Wed Sep  3 09:31:25 PDT 2003
    +#    Opaque mode for MeshPlot is ON by default now, so turn it off
    +#    for this test.
    +#
    +#    Kathleen Bonnell, Thu Sep  4 11:10:11 PDT 2003
    +#    Change the way MeshPlot's opaque mode is set (now an enum, not a bool).
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.SetViewNormal(-0.528889, 0.367702, 0.7649)
    +v.SetViewUp(0.176641, 0.929226, -0.324558)
    +v.SetParallelScale(17.3205)
    +v.SetPerspective(1)
    +SetView3D(v)
    +
    +Test("globe_01")
    +
    +DeleteAllPlots()
    +AddPlot("Contour", "t")
    +DrawPlots()
    +Test("globe_02")
    +
    +DeleteAllPlots()
    +AddPlot("FilledBoundary", "mat1")
    +DrawPlots()
    +Test("globe_03")
    +
    +DeleteAllPlots()
    +AddPlot("Volume", "u")
    +DrawPlots()
    +Test("globe_04")
    +
    +#Test MeshPlot with OpaqueFlag ON
    +DeleteAllPlots()
    +AddPlot("Mesh", "mesh1")
    +m = MeshAttributes()
    +m.opaqueMode = m.Off
    +SetPlotOptions(m)
    +DrawPlots()
    +Test("globe_05")
    +
    +DeleteAllPlots()
    +AddPlot("Vector", "vel")
    +DrawPlots()
    +Test("globe_06")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/meshtype_point.html b/2024-12-12-22:00/poodle_trunk_parallel/meshtype_point.html new file mode 100644 index 000000000..6befba3b3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/meshtype_point.html @@ -0,0 +1,138 @@ + +Results for meshtype/point.py + +

    Results of VisIt Regression Test - meshtype/point

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    meshtype_point_010.000.00
    meshtype_point_020.000.00
    meshtype_point_030.000.00
    meshtype_point_040.000.00
    meshtype_point_050.000.00
    meshtype_point_060.000.00
    meshtype_point_070.000.00
    meshtype_point_080.000.00
    meshtype_point_090.000.00
    meshtype_point_100.000.00
    meshtype_point_110.000.00
    meshtype_point_120.000.00
    meshtype_point_130.000.00
    meshtype_point_140.000.00
    meshtype_point_150.000.00
    meshtype_point_160.000.00
    meshtype_point_170.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/meshtype_point_py.html b/2024-12-12-22:00/poodle_trunk_parallel/meshtype_point_py.html new file mode 100644 index 000000000..dd91d4e0b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/meshtype_point_py.html @@ -0,0 +1,174 @@ +meshtype/point.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  point.py
    +#
    +#  Tests:      mesh      - 3D point
    +#              plots     - pseudocolor, subset, mesh
    +#              operators - none
    +#              selection - none
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       May  4, 2004
    +#
    +#  Modificatons:
    +#    Kathleen Bonnell, Thu Aug 19 15:07:23 PDT 2004
    +#    Added tests 4-7.
    +#
    +#    Kathleen Bonnell, Thu Nov 11 17:28:15 PST 2004
    +#    Added tests 8-17.
    +#
    +#    Brad Whitlock, Thu Jul 21 15:44:05 PST 2005
    +#    Added tests for setting the point size for points rendered as pixels.
    +#
    +#    Brad Whitlock, Fri Aug 26 13:59:08 PST 2005
    +#    Needed to add more rendering tests so I moved the point rendering
    +#    stuff to renderpoint.py.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Wed Feb 16 09:15:45 PST 2022
    +#    Replace use of meshatts 'foregroundFlag' with meshColorSource.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +v = GetView3D()
    +v.viewNormal = (0.3, 0.5, 0.8)
    +SetView3D(v)
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +
    +AddPlot("Pseudocolor", "PointVar")
    +DrawPlots()
    +
    +p=PseudocolorAttributes()
    +p.pointType = p.Axis
    +p.pointSize = 0.2
    +SetPlotOptions(p)
    +Test("meshtype_point_01")
    +
    +p.pointSizeVarEnabled = 1
    +p.pointSize = 0.5
    +SetPlotOptions(p)
    +Test("meshtype_point_02")
    +
    +p.pointType = p.Point
    +p.pointSizePixels = 1
    +SetPlotOptions(p)
    +Test("meshtype_point_03")
    +
    +DeleteAllPlots()
    +
    +
    +#Test some more of the point-related atts for the pc plot.
    +OpenDatabase(silo_data_path("multi_point2d.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +p = PseudocolorAttributes()
    +SetPlotOptions(p)
    +DrawPlots()
    +ResetView()
    +
    +Test("meshtype_point_04")
    +
    +p.pointSize = 0.05
    +p.pointType = p.Axis
    +p.pointSizeVarEnabled = 1
    +p.pointSizeVar = "d"
    +SetPlotOptions(p)
    +Test("meshtype_point_05")
    +
    +p.pointSize = 0.25
    +p.pointType = p.Box
    +p.pointSizeVar = "p"
    +SetPlotOptions(p)
    +Test("meshtype_point_06")
    +
    +p.pointSize = 0.25
    +p.pointType = p.Icosahedron
    +p.pointSizeVar = "u"
    +SetPlotOptions(p)
    +Test("meshtype_point_07")
    +
    +DeleteAllPlots()
    +
    +#Test Subsets of point meshes
    +AddPlot("Subset", "domains")
    +s = SubsetAttributes()
    +s.pointSizePixels = 1
    +SetPlotOptions(s)
    +DrawPlots()
    +ResetView()
    +Test("meshtype_point_08")
    +
    +s.pointSizeVarEnabled = 1
    +s.pointSizeVar = "d"
    +s.pointType = s.Icosahedron
    +SetPlotOptions(s)
    +Test("meshtype_point_09")
    +
    +s.pointSizeVar = "u"
    +s.pointType = s.Box
    +SetPlotOptions(s)
    +Test("meshtype_point_10")
    +
    +s.pointSizeVar = "v"
    +SetPlotOptions(s)
    +Test("meshtype_point_11")
    +
    +s.colorType = s.ColorBySingleColor
    +s.singleColor = (255, 0, 0, 255)
    +SetPlotOptions(s)
    +Test("meshtype_point_12")
    +
    +DeleteAllPlots()
    +
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "PointVar")
    +p.pointSize = 0.5
    +p.pointSizeVarEnabled = 0
    +SetPlotOptions(p)
    +DrawPlots()
    +Test("meshtype_point_13")
    +
    +# the next two not only test using poingSizeVar, but also DataSetVerifier which
    +# will reduce the number of values in the var array to match the actual number
    +# of points in the point mesh
    +p.pointSize = 0.5
    +p.pointSizeVarEnabled = 1
    +p.pointSizeVar = "hardyglobal"
    +p.pointType = p.Box
    +SetPlotOptions(p)
    +Test("meshtype_point_14")
    +
    +#can we scale by a a vector variable?
    +p.pointSizeVar = "grad"
    +SetPlotOptions(p)
    +Test("meshtype_point_15")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Mesh", "PointMesh")
    +m = MeshAttributes()
    +m.meshColorSource = m.MeshCustom
    +m.meshColor = (0, 122, 200, 255)
    +m.pointType = m.Box
    +m.pointSize = 0.5
    +SetPlotOptions(m)
    +DrawPlots()
    +Test("meshtype_point_16")
    +
    +m.pointSizeVarEnabled = 1
    +m.pointSizeVar = "PointVar"
    +SetPlotOptions(m)
    +Test("meshtype_point_17")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/meshtype_rect3d.html b/2024-12-12-22:00/poodle_trunk_parallel/meshtype_rect3d.html new file mode 100644 index 000000000..21694590d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/meshtype_rect3d.html @@ -0,0 +1,48 @@ + +Results for meshtype/rect3d.py + +

    Results of VisIt Regression Test - meshtype/rect3d

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    rect3d_010.000.00
    rect3d_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/meshtype_rect3d_py.html b/2024-12-12-22:00/poodle_trunk_parallel/meshtype_rect3d_py.html new file mode 100644 index 000000000..40079a62e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/meshtype_rect3d_py.html @@ -0,0 +1,80 @@ +meshtype/rect3d.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  rect3d.py
    +#
    +#  Tests:      mesh      - 3D regular, single domain
    +#              plots     - pc, contour, mat subset, mesh
    +#              operators - none
    +#              selection - material
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       April 17, 2002
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Wed Apr 24 10:04:35 PDT 2002
    +#    Turn off opaque mesh.
    +#
    +#    Kathleen Bonnell, Thu Sep  5 10:55:47 PDT 2002
    +#    Changed the variable format for SubsetPlots, to reflect new interface
    +#    which allows subsets of groups.
    +#
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset plots.
    +#
    +#    Kathleen Bonnell, Thu Sep  4 11:10:11 PDT 2003
    +#    Change the way MeshPlot's opaque mode is set (now an enum, not a bool).
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +AddPlot("Pseudocolor", "d")
    +pc=PseudocolorAttributes()
    +pc.SetOpacityType(pc.Constant)
    +pc.opacity=0.2
    +SetPlotOptions(pc)
    +
    +AddPlot("Mesh", "quadmesh3d")
    +m1=MeshAttributes()
    +m1.opaqueMode=m1.Off
    +SetPlotOptions(m1)
    +
    +AddPlot("Contour", "u")
    +
    +# Turn off alternate materials.
    +silr=SILRestriction()
    +onoff = 0
    +for sets in silr.SetsInCategory('mat1'):
    +    if(onoff == 0):
    +        silr.TurnOffSet(sets)
    +        onoff = 1
    +    else:
    +        onoff = 0
    +
    +AddPlot("FilledBoundary", "mat1")
    +SetPlotSILRestriction(silr)
    +
    +DrawPlots()
    +
    +Test("rect3d_01")
    +
    +v = GetView3D()
    +v.SetViewNormal(.7,.6,.5)
    +SetView3D(v)
    +
    +Test("rect3d_02")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/missingdata_0_04.html b/2024-12-12-22:00/poodle_trunk_parallel/missingdata_0_04.html new file mode 100644 index 000000000..657868e57 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/missingdata_0_04.html @@ -0,0 +1,66 @@ +Results for test case missingdata_0_04 + +

    Results for test case missingdata_0_04

    + + + + + +
    Legend
    0 Lines Added
    0 Lines Deleted
    8 Lines Changed

    +

    1 modifications, totalling 8 lines

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     Line Baseline Line Current
    1:  1: Pick could not retrieve the requested information, possibly due to a bad expression in its variables list. Please check the requested variables list and try again.
    2: A: earth.nc
    3: mesh1350x675
    4: Point: <671, 617>
    5: Node: 833621
    6: Incident Zones: 833004 831655 833005 831656
    7: population: <nodal> = 0
    8:  
    diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_amr_stitch.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_amr_stitch.html new file mode 100644 index 000000000..bc8e31742 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_amr_stitch.html @@ -0,0 +1,84 @@ + +Results for operators/amr_stitch.py + +

    Results of VisIt Regression Test - operators/amr_stitch

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    amr_stitch_010.000.00
    amr_stitch_020.000.00
    amr_stitch_030.000.00
    amr_stitch_040.000.00
    amr_stitch_050.000.00
    amr_stitch_060.000.00
    amr_stitch_070.000.00
    amr_stitch_080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_amr_stitch_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_amr_stitch_py.html new file mode 100644 index 000000000..ebd633d4e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_amr_stitch_py.html @@ -0,0 +1,49 @@ +operators/amr_stitch.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  amr_stitch.py
    +#
    +#  Programmer: Gunther H. Weber
    +#  Date:       April 29, 2014
    +#
    +#  Modifications:
    +#
    +#      Alister Maguire, Wed Jan  6 08:31:05 PST 2021
    +#      Added the -enable-ghosts-for-t-intersections flag, as it
    +#      is now disabled by default.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# NOTE: the comment below tells visit to use the
    +# 'enable-ghosts-for-t-intersections' flag when running this test.
    +# This flag must be enabled for this test to succeed.
    +
    +#VARGS: "-enable-ghosts-for-t-intersections"
    +
    +# Turn off all annotation
    +a = AnnotationAttributes()
    +TurnOffAllAnnotations(a)
    +
    +# Files used for tests
    +filename_template = "AMRStitchCell_test_data/AMRStitchCellTest.%d.no_ghost.phi.%dd.hdf5"
    +test_case_filenames = [ data_path(filename_template % ( case, dim )) for dim in range(2,4) for case in range(1,5) ]
    +
    +# Setup plots and run first test
    +OpenDatabase(test_case_filenames[0])
    +AddPlot("Contour", "phi")
    +AddOperator("AMRStitchCell")
    +DrawPlots()
    +Test("amr_stitch_01")
    +
    +# Perform remaining tests
    +for test_no, ds in enumerate(test_case_filenames[1:], 2):
    +    ReplaceDatabase(ds)
    +    Test("amr_stitch_%02d" % test_no)
    +
    +# Clean-up
    +DeleteAllPlots()
    +for ds in test_case_filenames:
    +    CloseDatabase(ds)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_box.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_box.html new file mode 100644 index 000000000..651fad427 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_box.html @@ -0,0 +1,84 @@ + +Results for operators/box.py + +

    Results of VisIt Regression Test - operators/box

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_box010.000.00
    ops_box020.000.00
    ops_box030.000.00
    ops_box040.000.00
    ops_box050.000.00
    ops_box060.000.00
    ops_box070.000.00
    ops_box080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_box_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_box_py.html new file mode 100644 index 000000000..6e1434210 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_box_py.html @@ -0,0 +1,155 @@ +operators/box.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  box.py
    +#
    +#  Tests:      mesh      - 3D point, single domain,
    +#                          3D rectilinear, multiple domain.
    +#                          3D unstructured, single domain.
    +#              plots     - pc, vector, contour, vector
    +#
    +#  Defect ID:  3160
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 26, 2003
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset plots.
    +#
    +#    Hank Childs, Wed Jun  4 08:56:08 PDT 2008
    +#    Test facelist filter after applying a box.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# 3D, rectilinear.  Multi-block  Tests ghost zones as well.
    +OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +
    +atts = BoxAttributes()
    +atts.amount = 0
    +atts.minx = 0.4
    +atts.maxx = 0.7
    +atts.miny = 0.1
    +atts.maxy = 0.9
    +atts.minz = 0.4
    +atts.maxz = 1.7
    +
    +AddPlot("Pseudocolor", "dist")
    +AddOperator("Box")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +view = GetView3D()
    +view.viewNormal = (0.79, -0.035, 0.61)
    +view.focus = (0.5, 0.5, 0.5)
    +view.viewUp = (0, 1, 0)
    +view.parallelScale = 0.765
    +view.nearPlane = -0.25
    +view.farPlane = 1.73
    +SetView3D(view)
    +Test("ops_box01")
    +DeleteAllPlots()
    +
    +
    +# 3D, unstructured
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Box")
    +atts.minx = -5
    +atts.maxx = +5
    +atts.miny = -5
    +atts.maxy = +5
    +atts.minz = -5
    +atts.maxz = +5
    +SetOperatorOptions(atts)
    +DrawPlots()
    +view.viewNormal = (0.56, 0.81, -0.14)
    +view.focus = (0, 0, 0)
    +view.viewUp = (-0.66, 0.55, 0.49)
    +view.parallelScale = 11
    +view.nearPlane = -34
    +view.farPlane = 34
    +SetView3D(view)
    +Test("ops_box02")
    +
    +
    +atts.amount = 1
    +SetOperatorOptions(atts)
    +Test("ops_box03")
    +
    +DeleteAllPlots()
    +
    +view.parallelScale = 14
    +SetView3D(view)
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Vector", "airVfGradient")
    +vec = VectorAttributes()
    +SetPlotOptions(vec)
    +atts.minx = -5
    +atts.maxx = +5
    +atts.miny = -10
    +atts.maxy = +10
    +atts.minz = -10
    +atts.maxz = +10
    +AddOperator("Box")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_box04")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Contour", "hardyglobal")
    +AddOperator("Box")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_box05")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Mesh", "PointMesh")
    +mesh = MeshAttributes()
    +mesh.pointType = mesh.Box
    +mesh.pointSizeVar = "PointVar"
    +mesh.pointSizeVarEnabled = 1
    +SetPlotOptions(mesh)
    +AddOperator("Box")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_box06")
    +
    +# This final test should be blank.  The box operator was crashing with
    +# point meshes that fell outside the box previously.  ('3160)
    +atts.minx = -30
    +atts.maxx = -20
    +SetOperatorOptions(atts)
    +Test("ops_box07")
    +
    +# If we apply the box operator to a rectilinear grid, it can change
    +# the "Extents", which can screw up the facelist filter.  Test that
    +# no one has undone the fix from Paul Selby.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Box")
    +atts.minx = 0.2
    +atts.maxx = 1.0
    +SetOperatorOptions(atts)
    +DrawPlots()
    +view.focus = (0.5, 0.5, 0.5)
    +view.parallelScale = 1.4
    +SetView3D(view)
    +Test("ops_box08")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_cart_proj.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_cart_proj.html new file mode 100644 index 000000000..c8ba78dd8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_cart_proj.html @@ -0,0 +1,60 @@ + +Results for operators/cart_proj.py + +

    Results of VisIt Regression Test - operators/cart_proj

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_cart_proj_00.000.00
    ops_cart_proj_10.000.00
    ops_cart_proj_20.000.00
    ops_cart_proj_30.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_cart_proj_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_cart_proj_py.html new file mode 100644 index 000000000..0df4dce2f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_cart_proj_py.html @@ -0,0 +1,60 @@ +operators/cart_proj.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  cart_proj.py
    +#
    +#  Tests:
    +#              plots     - pc
    +#              operators - CartographicProjection
    +#
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:      Tue Sep 25 08:41:19 PDT 2012
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# Test 2D Case
    +
    +OpenDatabase(data_path("netcdf_test_data/NASA_vegetation_lai.cdf"))
    +
    +v = View2DAttributes()
    +v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +SetView2D(v)
    +
    +
    +AddPlot("Pseudocolor", "lai")
    +DrawPlots()
    +ResetView()
    +Test("ops_cart_proj_0")
    +
    +AddOperator("CartographicProjection")
    +cart_proj_atts = CartographicProjectionAttributes()
    +cart_proj_atts.projectionID = cart_proj_atts.hammer
    +SetOperatorOptions(cart_proj_atts)
    +DrawPlots()
    +ResetView()
    +Test("ops_cart_proj_1")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(data_path("netcdf_test_data/tas_mean_T63.nc"))
    +
    +AddPlot("Pseudocolor", "tas")
    +DrawPlots()
    +ResetView()
    +Test("ops_cart_proj_2")
    +
    +AddOperator("CartographicProjection")
    +cart_proj_atts = CartographicProjectionAttributes()
    +cart_proj_atts.projectionID = cart_proj_atts.hammer
    +SetOperatorOptions(cart_proj_atts)
    +DrawPlots()
    +ResetView()
    +Test("ops_cart_proj_3")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_clip.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_clip.html new file mode 100644 index 000000000..4b4793064 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_clip.html @@ -0,0 +1,180 @@ + +Results for operators/clip.py + +

    Results of VisIt Regression Test - operators/clip

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    clip000.000.00
    clip010.000.00
    clip020.000.00
    clip030.000.00
    clip040.000.00
    clip050.000.00
    clip060.000.00
    clip070.000.00
    clip080.000.00
    clip090.000.00
    clip100.000.00
    clip110.000.00
    clip120.000.00
    clip130.000.00
    clip140.000.00
    clip150.000.00
    clip160.000.00
    clip170.000.00
    clip180.000.00
    clip190.000.00
    clip200.000.00
    clip_globe_fast0.000.00
    clip_globe_accurate0.000.00
    crinkle_clip_globe0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_clip_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_clip_py.html new file mode 100644 index 000000000..158eab411 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_clip_py.html @@ -0,0 +1,143 @@ +operators/clip.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  clip.py
    +#
    +#  Tests:      mesh      - 2D rectilinear, 2D curvilinear,
    +#                          3D rectilinear, 3D curvilinear,
    +#                          3D unstructured
    +#
    +#  Defect ID:  7470, 7195
    +#
    +#  Programmer: Hank Childs
    +#  Date:       September 1, 2006
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Wed Sep  6 16:56:27 PDT 2006
    +#    Test clip operator with no plane and no sphere (this was crashing the
    +#    engine due to a memory problem) ['7195]
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Alister Maguire, Fri Nov 13 14:07:54 PST 2020
    +#    Added a test for the crinkle clip.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def TestOne(filename, index, zonal_var, nodal_var, radius):
    +   OpenDatabase(filename)
    +   c = ClipAttributes()
    +   c.funcType = c.Sphere
    +   c.radius = radius
    +   c.sphereInverse = 1
    +   AddPlot("Pseudocolor", zonal_var)
    +   AddOperator("Clip")
    +   SetOperatorOptions(c)
    +   DrawPlots()
    +   name = "clip%02d" %(index+0)
    +   Test(name)
    +   ChangeActivePlotsVar(nodal_var)
    +   name = "clip%02d" %(index+1)
    +   Test(name)
    +   c.funcType = c.Plane
    +   c.plane1Origin = (0.5, 0.5, 0)
    +   c.plane1Normal = (1, 1, 0)
    +   SetOperatorOptions(c)
    +   name = "clip%02d" %(index+2)
    +   Test(name)
    +   ChangeActivePlotsVar(zonal_var)
    +   name = "clip%02d" %(index+3)
    +   Test(name)
    +   DeleteAllPlots()
    +
    +TestOne(silo_data_path("rect2d.silo"), 4*0, "d", "u", 0.5)
    +TestOne(silo_data_path("rect3d.silo"), 4*1, "d", "u", 0.5)
    +TestOne(silo_data_path("curv2d.silo"), 4*2, "d", "u", 3)
    +TestOne(silo_data_path("curv3d.silo"), 4*3, "d", "u", 4)
    +TestOne(silo_data_path("globe.silo"), 4*4, "t", "u", 5)
    +
    +# Test doing a clip where there are no planes selected.  This has caused
    +# a crash ['7195].
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor" , "d")
    +AddOperator("Clip")
    +c = ClipAttributes()
    +c.funcType = c.Plane
    +c.plane1Status = 0
    +c.plane2Status = 0
    +c.plane3Status = 0
    +SetOperatorOptions(c)
    +DrawPlots()
    +
    +test_idx = 20
    +name = "clip%02d" %(test_idx)
    +Test(name)
    +test_idx += 1
    +
    +# Test accurate vs. fast.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Mesh", "mesh1")
    +c = ClipAttributes()
    +c.funcType = c.Plane  # Plane, Sphere
    +c.plane1Status = 1
    +c.plane2Status = 1
    +c.plane3Status = 0
    +c.plane1Origin = (0, 2.37883, 0)
    +c.plane2Origin = (0, 2.37883, 0)
    +c.plane3Origin = (0, 2.37883, 0)
    +c.plane1Normal = (1, 0, 0)
    +c.plane2Normal = (0, 1, 0)
    +c.plane3Normal = (0, 0, 1)
    +c.planeInverse = 0
    +c.center = (0, 0, 0)
    +c.radius = 1
    +c.sphereInverse = 0
    +AddOperator("Clip")
    +SetOperatorOptions(c)
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.0548192, 0.0422395, 0.997602)
    +v.focus = (0.427242, 3.08232, -0.155563)
    +v.viewUp = (0.195041, 0.979406, -0.0521867)
    +v.viewAngle = 30
    +v.parallelScale = 4.21585
    +v.nearPlane = -34.5981
    +v.farPlane = 34.5981
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, -0.0372553, 0)
    +
    +DrawPlots()
    +SetView3D(v)
    +
    +Test("clip_globe_fast")
    +
    +c.quality = c.Accurate
    +SetOperatorOptions(c)
    +Test("clip_globe_accurate")
    +
    +DeleteAllPlots()
    +ResetView()
    +
    +#
    +# Test the crinkle clip.
    +#
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Clip")
    +c = ClipAttributes()
    +c.crinkleClip = 1
    +SetOperatorOptions(c)
    +DrawPlots()
    +Test("crinkle_clip_globe")
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_cracksclipper.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_cracksclipper.html new file mode 100644 index 000000000..ea5d3c67b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_cracksclipper.html @@ -0,0 +1,72 @@ + +Results for operators/cracksclipper.py + +

    Results of VisIt Regression Test - operators/cracksclipper

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    CracksClipper_000.000.00
    CracksClipper_010.000.00
    CracksClipper_020.000.00
    CracksClipper_030.000.00
    CracksClipper_040.000.00
    CracksClipper_050.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_cracksclipper_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_cracksclipper_py.html new file mode 100644 index 000000000..78c05738c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_cracksclipper_py.html @@ -0,0 +1,54 @@ +operators/cracksclipper.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  cracksclipper.py
    +#
    +#  Tests:      operators - CracksClipper
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       August 14, 2012
    +#
    +#  Modifications:
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(data_path("vtk_cracked_test_data/cracked_*.vtk database"))
    +AddPlot("Pseudocolor", "operators/CracksClipper/mesh/den")
    +pcAtts = PseudocolorAttributes()
    +pcAtts.minFlag = 1
    +pcAtts.maxFlag = 1
    +pcAtts.min = 1.9
    +pcAtts.max = 3.853
    +SetPlotOptions(pcAtts)
    +
    +
    +v = GetView3D()
    +v.viewNormal = (-0.507948, 0.663707, 0.549074)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (0.388198, 0.745409, -0.541911)
    +v.parallelScale = 0.866025
    +v.nearPlane = -1.73205
    +v.farPlane = 1.73205
    +SetView3D(v)
    +
    +DrawPlots()
    +
    +# Changing time states shows the cracks developing, and demonstrates
    +# the density calculation
    +Test("CracksClipper_00")
    +SetTimeSliderState(1)
    +Test("CracksClipper_01")
    +SetTimeSliderState(3)
    +Test("CracksClipper_02")
    +SetTimeSliderState(5)
    +Test("CracksClipper_03")
    +SetTimeSliderState(12)
    +Test("CracksClipper_04")
    +
    +SetTimeSliderState(14)
    +# Show that normal vars can be used.
    +ChangeActivePlotsVar("ems")
    +# 
    +Test("CracksClipper_05")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_defer_expr.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_defer_expr.html new file mode 100644 index 000000000..16f33cc3c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_defer_expr.html @@ -0,0 +1,114 @@ + +Results for operators/defer_expr.py + +

    Results of VisIt Regression Test - operators/defer_expr

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    defer_expr_010.000.00
    defer_expr_020.000.00
    defer_expr_030.000.00
    defer_expr_040.000.00
    defer_expr_050.000.00
    defer_expr_060.000.00
    defer_expr_070.000.00
    defer_expr_080.000.00
    defer_expr_090.000.00
    defer_expr_100.000.00
    defer_expr_110.000.00
    defer_expr_120.000.00
    defer_expr_130.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_defer_expr_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_defer_expr_py.html new file mode 100644 index 000000000..c78bdd884 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_defer_expr_py.html @@ -0,0 +1,248 @@ +operators/defer_expr.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  defer_expr.py
    +#
    +#  Defect ID:  '2433, '1527, '6630, '6631, '6676, '6637
    +#
    +#  Programmer: Hank Childs
    +#  Date:       September 21, 2005
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Thu Dec 29 11:29:08 PST 2005
    +#    Widen color range of vector plot to sidestep precision issues between
    +#    optimized and non-optimized binaries.
    +#
    +#    Hank Childs, Thu Jan 17 15:44:06 PST 2008
    +#    Explicitly specify the color table for the vector plot.  This is an issue
    +#    because this test runs with "-config" (*not* "-noconfig") and the default
    +#    color table can get confused if the user has a color table in his .visit
    +#    directory that collides with the normal default ("hot").  So we're
    +#    skirting that issue by explicitly specifying the color table.
    +#
    +#    Jeremy Meredith, Mon Jul 14 12:28:50 EDT 2008
    +#    Allow the vector plot to show all vectors (even ones not from
    +#    from original cells/nodes) to match the old behavior.
    +#
    +#    Hank Childs, Wed Dec 31 14:32:34 PST 2008
    +#    Rename ResamplePluginAtts to ResampleAtts.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Brad Whitlock, Wed Apr 18 15:40:47 PDT 2012
    +#    Make vectors constant color for test 8.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Remove obsolete 'colorByMag' vector att with 'colorByMagnitude'.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +DefineScalarExpression("en", "external_node(mesh1)")
    +AddPlot("Pseudocolor", "en")
    +AddOperator("Isovolume")
    +iso_atts = IsovolumeAttributes()
    +iso_atts.variable = "t"
    +iso_atts.lbound = 500
    +SetOperatorOptions(iso_atts)
    +AddOperator("Slice")
    +DrawPlots()
    +
    +# Save a picture before deferring the expression evaluation.
    +Test("defer_expr_01")
    +
    +# Test that the external node operator can find the external nodes
    +# on a 2D slice.
    +d = DeferExpressionAttributes()
    +d.exprs = ("en")
    +SetDefaultOperatorOptions(d)
    +AddOperator("DeferExpression")
    +DrawPlots()
    +Test("defer_expr_02")
    +
    +# Now test that the external node expression can find the external nodes
    +# on a 3D dataset (before the slice).  This should be an identical picture
    +# to what's above (bar interpolation from the slice).
    +DemoteOperator(2)
    +DrawPlots()
    +Test("defer_expr_03")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isovolume")
    +iso_atts = IsovolumeAttributes()
    +iso_atts.variable = "t"
    +iso_atts.ubound = 500
    +SetOperatorOptions(iso_atts)
    +AddOperator("DeferExpression")
    +AddOperator("Threshold")
    +thres_atts = ThresholdAttributes()
    +thres_atts.upperBounds = (0.5)
    +thres_atts.outputMeshType = 1
    +thres_atts.listedVarNames = ("en")
    +SetOperatorOptions(thres_atts)
    +DrawPlots()
    +Test("defer_expr_04")
    +
    +DeleteAllPlots()
    +
    +DefineScalarExpression("X1", "coord(mesh1)[0]")
    +DefineScalarExpression("X2", "coord(mesh1)[0]")
    +DefineScalarExpression("X3", "coord(mesh1)[0]")
    +
    +AddPlot("Pseudocolor", "X1")
    +
    +# Transform by 45 degrees.
    +t = TransformAttributes()
    +t.doRotate = 1
    +t.rotateAxis = (0, 1, 0)
    +t.rotateAmount = 45
    +SetDefaultOperatorOptions(t)
    +AddOperator("Transform")
    +
    +# Now evaluate X2 after transforming
    +d.exprs = ("X2")
    +SetDefaultOperatorOptions(d)
    +AddOperator("DeferExpression")
    +
    +# Now threshold out where X2 is bigger than 0 (after the transform)
    +thres_atts.listedVarNames = ("X2")
    +thres_atts.lowerBounds = (0.0)
    +thres_atts.upperBounds = (1000.0)
    +SetDefaultOperatorOptions(thres_atts)
    +AddOperator("Threshold")
    +
    +# Now transform by another 45 degrees
    +AddOperator("Transform")
    +
    +# Evaluate X3 after the new transform.
    +d.exprs = ("X3")
    +SetDefaultOperatorOptions(d)
    +AddOperator("DeferExpression")
    +
    +# Now threshold out where X3 is bigger than 0 (after the new transform)
    +thres_atts.listedVarNames = ("X3")
    +SetDefaultOperatorOptions(thres_atts)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("defer_expr_05")
    +
    +# Now do the same thing, but defer X1 until the end of the transforms.
    +d.exprs = ("X1")
    +SetDefaultOperatorOptions(d)
    +AddOperator("DeferExpression")
    +DrawPlots()
    +# This should be the same geometry as '05, but the color should be different.
    +Test("defer_expr_06")
    +
    +DeleteAllPlots()
    +DefineVectorExpression("normals", "cell_surface_normal(mesh1)")
    +AddPlot("Vector", "normals")
    +v = VectorAttributes()
    +v.origOnly = 0
    +v.min = 0.5
    +v.max = 1.5
    +v.minFlag = 1
    +v.maxFlag = 1
    +v.colorTableName = "hot"
    +v.useStride = 0
    +v.stride = 1
    +SetPlotOptions(v)
    +
    +AddOperator("ExternalSurface")
    +AddOperator("DeferExpression")
    +d.exprs = "normals"
    +SetOperatorOptions(d)
    +DrawPlots()
    +Test("defer_expr_07")
    +
    +DeleteAllPlots()
    +AddPlot("Contour", "t")
    +c = ContourAttributes()
    +c.contourMethod = c.Value
    +c.contourValue = (500)
    +SetPlotOptions(c)
    +AddPlot("Vector", "normals")
    +v = VectorAttributes()
    +v.origOnly = 0
    +v.colorByMagnitude = 0
    +v.vectorColor = (255,255,0,255)
    +SetPlotOptions(v)
    +AddOperator("Isosurface")
    +i = IsosurfaceAttributes()
    +i.contourMethod = i.Value
    +i.contourValue = (500)
    +i.variable = "t"
    +SetOperatorOptions(i)
    +AddOperator("DeferExpression")
    +d.exprs = "normals"
    +SetOperatorOptions(d)
    +DrawPlots()
    +Test("defer_expr_08")
    +
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "mesh_quality/max_edge_length")
    +AddOperator("Slice")
    +DrawPlots()
    +Test("defer_expr_09")
    +
    +d.exprs = ("mesh_quality/max_edge_length")
    +AddOperator("DeferExpression")
    +SetOperatorOptions(d)
    +DrawPlots()
    +Test("defer_expr_10")
    +
    +DeleteAllPlots()
    +r = ResampleAttributes()
    +r.samplesX = 50
    +r.samplesY = 50
    +r.samplesZ = 50
    +r.defaultValue = -100
    +r.distributedResample = 0
    +DefineScalarExpression("procid", "procid(mesh1)")
    +AddPlot("Pseudocolor", "procid")
    +AddOperator("Resample")
    +SetOperatorOptions(r)
    +AddOperator("Threshold")
    +t = ThresholdAttributes()
    +t.lowerBounds = (-10.0)
    +t.listedVarNames = ("u")
    +t.outputMeshType = 1
    +SetOperatorOptions(t)
    +AddOperator("DeferExpression")
    +d.exprs = "procid"
    +SetOperatorOptions(d)
    +DrawPlots()
    +
    +Test("defer_expr_11")
    +
    +r.distributedResample = 1
    +SetOperatorOptions(r)
    +Test("defer_expr_12")
    +
    +DeleteAllPlots()
    +DefineVectorExpression("sn", "recenter(-cell_surface_normal(mesh1))")
    +AddPlot("Vector", "sn")
    +v = VectorAttributes()
    +v.origOnly = 0
    +v.colorTableName = "hot"
    +SetPlotOptions(v)
    +AddOperator("ExternalSurface")
    +AddOperator("DeferExpression")
    +d.exprs = "sn"
    +SetOperatorOptions(d)
    +DrawPlots()
    +Test("defer_expr_13")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_displace.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_displace.html new file mode 100644 index 000000000..9240f0ffe --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_displace.html @@ -0,0 +1,94 @@ + +Results for operators/displace.py + +

    Results of VisIt Regression Test - operators/displace

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_disp010.000.00
    ops_disp020.000.00
    ops_disp030.000.00
    ops_disp040.000.00
    ops_disp050.000.00
    ops_disp060.000.00
    ops_disp070.000.00
    ops_disp080 modifications totalling 0 lines
    ops_disp090.000.00
    ops_disp100.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_displace_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_displace_py.html new file mode 100644 index 000000000..7121c6054 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_displace_py.html @@ -0,0 +1,129 @@ +operators/displace.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  displace.py
    +#
    +#  Tests:      mesh      - 2D/3D rectilinear, single domain.
    +#                          3D unstructured, single domain.
    +#                          2D/3D curvilinear, single domain.
    +#              plots     - pc, mesh
    +#
    +#  Defect ID:  '5921, '7486, '8160, '8259, '8265
    +#
    +#  Programmer: Hank Childs
    +#  Date:       May 6, 2004
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Tue Jun  7 09:47:58 PDT 2005
    +#    Added tests for filled boundary with cell-based vectors ['5921].
    +#
    +#    Hank Childs, Tue Sep  5 16:39:40 PDT 2006
    +#    Added test for when users put in non-vectors ['7486].
    +#
    +#    Hank Childs, Fri Sep 28 12:28:30 PDT 2007
    +#    Add tests for three recent bugs ['8160, '8259, '8265]
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +disp = DisplaceAttributes()
    +disp.variable = "vel"
    +SetDefaultOperatorOptions(disp)
    +
    +# 2D, rectilinear.
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Displace")
    +AddPlot("Mesh", "quadmesh2d")
    +AddOperator("Displace")
    +DrawPlots()
    +
    +Test("ops_disp01")
    +
    +SetActivePlots(1)
    +DeleteActivePlots()
    +ReplaceDatabase(silo_data_path("curv2d.silo"))
    +
    +ResetView()
    +
    +Test("ops_disp02")
    +
    +ReplaceDatabase(silo_data_path("curv3d.silo"))
    +
    +v = GetView3D()
    +v.viewNormal = (0.61, -0.61, 0.61)
    +SetView3D(v)
    +
    +Test("ops_disp03")
    +
    +ReplaceDatabase(silo_data_path("rect3d.silo"))
    +
    +Test("ops_disp04")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("ucd3d.silo"))
    +
    +
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Displace")
    +disp.factor = 5
    +SetOperatorOptions(disp)
    +DrawPlots()
    +
    +Test("ops_disp05")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Displace")
    +disp.variable = "vel"
    +disp.factor = 1
    +SetOperatorOptions(disp)
    +DrawPlots()
    +Test("ops_disp06")
    +
    +disp.variable = "disp"
    +SetOperatorOptions(disp)
    +Test("ops_disp07")
    +
    +disp.variable = "t"
    +SetOperatorOptions(disp)
    +error = GetLastError()
    +TestText("ops_disp08", error)
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(data_path("boxlib_test_data/2D/plt0822/Header"))
    +
    +
    +#   8265: cell-centered vector with rectilinear mesh 
    +# + 8259: file format the declares itself having 2D vectors + displace
    +AddPlot("Pseudocolor", "density")
    +AddOperator("Displace")
    +disp.variable = "mom"
    +disp.factor = 1e-12 # this way the quads won't overlap each other.
    +SetOperatorOptions(disp)
    +DrawPlots()
    +Test("ops_disp09")
    +
    +DeleteAllPlots()
    +
    +# '8160: subset plot displaced by a vector
    +AddPlot("Subset", "patches")
    +AddOperator("Displace")
    +SetOperatorOptions(disp)
    +DrawPlots()
    +Test("ops_disp10")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_dual_mesh.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_dual_mesh.html new file mode 100644 index 000000000..b0abe0bc6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_dual_mesh.html @@ -0,0 +1,110 @@ + +Results for operators/dual_mesh.py + +

    Results of VisIt Regression Test - operators/dual_mesh

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_dualmesh_pc_plot_2d_d_000.000.00
    ops_dualmesh_pc_plot_2d_d_010.000.00
    ops_dualmesh_pc_plot_2d_d_020.000.00
    ops_dualmesh_mesh_plot_2d_000.000.00
    ops_dualmesh_mesh_plot_2d_0189.7733.58
    ops_dualmesh_mesh_plot_2d_020.000.00
    ops_dual_mesh_pc_plot_3d_d_000.000.00
    ops_dual_mesh_pc_plot_3d_d_010.000.00
    ops_dual_mesh_pc_plot_3d_d_020.000.00
    ops_dual_mesh_pc_plot_3d_t_000.000.00
    ops_dual_mesh_pc_plot_3d_t_010.000.00
    ops_dual_mesh_pc_plot_3d_t_020.000.00
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_dual_mesh_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_dual_mesh_py.html new file mode 100644 index 000000000..adc8e6230 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_dual_mesh_py.html @@ -0,0 +1,111 @@ +operators/dual_mesh.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  dual_mesh.py
    +#
    +#  Tests:      mesh      - 2D rectilinear, single domain.
    +#                          3D rectilinear, single domain.
    +#              plots     - pc, mesh
    +#              operators - DualMesh
    +#
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       May 13, 2008
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# Test 2D Case
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +Test("ops_dualmesh_pc_plot_2d_d_00")
    +
    +# test auto, Zones to Nodes
    +AddOperator("DualMesh")
    +DrawPlots()
    +Test("ops_dualmesh_pc_plot_2d_d_01")
    +
    +# test auto, Nodes to Zones
    +AddOperator("DualMesh")
    +DrawPlots()
    +Test("ops_dualmesh_pc_plot_2d_d_02")
    +
    +DeleteAllPlots()
    +
    +# Test Mesh Plot auto
    +AddPlot("Mesh", "quadmesh2d")
    +DrawPlots()
    +Test("ops_dualmesh_mesh_plot_2d_00")
    +
    +AddOperator("DualMesh")
    +DrawPlots()
    +Test("ops_dualmesh_mesh_plot_2d_01")
    +
    +AddOperator("DualMesh")
    +DrawPlots()
    +Test("ops_dualmesh_mesh_plot_2d_02")
    +DeleteAllPlots()
    +
    +# Test 3D Case
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +view = GetView3D()
    +view.viewNormal = (-0.5, 0.5, 0.7172)
    +SetView3D(view)
    +DrawPlots()
    +Test("ops_dual_mesh_pc_plot_3d_d_00")
    +
    +# Test explicit Zones to Nodes
    +AddOperator("DualMesh")
    +DualMeshAtts = DualMeshAttributes()
    +DualMeshAtts.mode = DualMeshAtts.ZonesToNodes
    +SetOperatorOptions(DualMeshAtts)
    +DrawPlots()
    +Test("ops_dual_mesh_pc_plot_3d_d_01")
    +
    +# Test explicit Nodes to Zones (round trip)
    +AddOperator("DualMesh")
    +DualMeshAtts = DualMeshAttributes()
    +DualMeshAtts.mode = DualMeshAtts.NodesToZones
    +SetOperatorOptions(DualMeshAtts)
    +DrawPlots()
    +Test("ops_dual_mesh_pc_plot_3d_d_02")
    +
    +DeleteAllPlots()
    +
    +# Test Nodes to Zones <-> Zones to Nodes Round Trip
    +AddPlot("Pseudocolor", "t")
    +DrawPlots()
    +Test("ops_dual_mesh_pc_plot_3d_t_00")
    +
    +AddOperator("DualMesh")
    +DualMeshAtts = DualMeshAttributes()
    +DualMeshAtts.mode = DualMeshAtts.NodesToZones
    +SetOperatorOptions(DualMeshAtts)
    +DrawPlots()
    +Test("ops_dual_mesh_pc_plot_3d_t_01")
    +
    +AddOperator("DualMesh")
    +DualMeshAtts = DualMeshAttributes()
    +DualMeshAtts.mode = DualMeshAtts.ZonesToNodes
    +SetOperatorOptions(DualMeshAtts)
    +DrawPlots()
    +Test("ops_dual_mesh_pc_plot_3d_t_02")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_elevate.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_elevate.html new file mode 100644 index 000000000..4e4eb6d19 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_elevate.html @@ -0,0 +1,132 @@ + +Results for operators/elevate.py + +

    Results of VisIt Regression Test - operators/elevate

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    elevate010.000.00
    elevate020.000.00
    elevate030.000.00
    elevate040.000.00
    elevate050.000.00
    elevate060.000.00
    elevate070.000.00
    elevate080.000.00
    elevate090.000.00
    elevate100.000.00
    elevate110.000.00
    elevate120.000.00
    elevate130.000.00
    elevate140.000.00
    elevate150.000.00
    elevate160.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_elevate_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_elevate_py.html new file mode 100644 index 000000000..8edb1fc16 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_elevate_py.html @@ -0,0 +1,164 @@ +operators/elevate.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  elevate.py
    +#
    +#  Tests:      mesh      - 2D rectilinear
    +#                          3D rectilinear, multiple domain,
    +#                          2D curvilinear, multiple domain
    +#              plots     - pc, mesh, filled boundary
    +#              operators - elevate
    +#              selection - none
    +#
    +#  Defect ID:  '5379, '5934 '6260, '6768
    +#
    +#  Programmer: Hank Childs
    +#  Date:       February 3, 2005
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Tue Jun  7 14:16:02 PDT 2005
    +#    Add tests for lighting of slices after elevation.
    +#
    +#    Hank Childs, Tue Nov 15 07:17:22 PST 2005
    +#    Add tests for macro expressions as secondary variables.
    +#
    +#    Hank Childs, Thu Jan 10 15:52:00 PST 2008
    +#    Add test for recenter expression with material plot.
    +#
    +#    Hank Childs, Wed Jan 16 17:26:03 PST 2008
    +#    Add testing for the "zeroFlag".
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +#One zonal variable
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Elevate")
    +DrawPlots()
    +v = GetView3D()
    +v.viewNormal = (-0.707, 0, 0.707)
    +SetView3D(v)
    +Test("elevate01")
    +
    +#One nodal variable
    +ChangeActivePlotsVar("d")
    +Test("elevate02")
    +
    +elevate_atts = ElevateAttributes()
    +DefineScalarExpression("d_mod", "0.1*d")
    +elevate_atts.variable = "d_mod"
    +elevate_atts.useXYLimits = elevate_atts.Never
    +SetOperatorOptions(elevate_atts)
    +Test("elevate03")
    +
    +elevate_atts.useXYLimits = elevate_atts.Auto
    +SetOperatorOptions(elevate_atts)
    +Test("elevate04")
    +
    +#Primary variable zonal, Secondary variable zonal 
    +ChangeActivePlotsVar("p")
    +elevate_atts.variable = "d"
    +SetOperatorOptions(elevate_atts)
    +Test("elevate05")
    +
    +#Primary variable zonal, secondary nodal.
    +elevate_atts.variable = "u"
    +SetOperatorOptions(elevate_atts)
    +Test("elevate06")
    +
    +#Primary variable nodal, secondary nodal.
    +ChangeActivePlotsVar("v")
    +Test("elevate07")
    +
    +#Primary variable nodal, secondary zonal.
    +elevate_atts.variable = "p"
    +SetOperatorOptions(elevate_atts)
    +Test("elevate08")
    +
    +elevate_atts.useXYLimits = elevate_atts.Never
    +SetOperatorOptions(elevate_atts)
    +Test("elevate09")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Mesh", "quadmesh2d")
    +AddOperator("Elevate")
    +elevate_atts.variable = "p"
    +elevate_atts.useXYLimits = elevate_atts.Always
    +SetOperatorOptions(elevate_atts)
    +DrawPlots()
    +Test("elevate10")
    +
    +DeleteAllPlots()
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Elevate")
    +elevate_atts.variable = "u"
    +elevate_atts.useXYLimits = elevate_atts.Always
    +SetOperatorOptions(elevate_atts)
    +DrawPlots()
    +Test("elevate11")
    +
    +elevate_atts.useXYLimits = elevate_atts.Never
    +SetOperatorOptions(elevate_atts)
    +DrawPlots()
    +Test("elevate12")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Slice")
    +AddOperator("Elevate")
    +DrawPlots()
    +Test("elevate13")
    +
    +# Testing expressions.  Test that macro expressions work as secondary
    +# variables ('6768).
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +DefineScalarExpression("vv", "hgslice+polar_radius(Mesh2D)")
    +AddPlot("Pseudocolor", "hgslice")
    +AddOperator("Elevate")
    +elevate_atts.variable = "vv"
    +elevate_atts.useXYLimits = elevate_atts.Always
    +SetOperatorOptions(elevate_atts)
    +DrawPlots()
    +Test("elevate14")
    +
    +# Filled boundary with recentered expression
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +DefineScalarExpression("d2", "recenter(d)")
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Elevate")
    +elevate_atts.variable = "d2"
    +elevate_atts.useXYLimits = elevate_atts.Always
    +SetOperatorOptions(elevate_atts)
    +DrawPlots()
    +Test("elevate15")
    +
    +# Boundary plots that are elevated by zero height (no variable). '8346.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("ucd2d.silo"))
    +
    +AddPlot("Boundary", "mat1")
    +AddOperator("Elevate")
    +e = ElevateAttributes()
    +e.zeroFlag = 1
    +SetOperatorOptions(e)
    +DrawPlots()
    +v = GetView3D()
    +v.viewNormal = (0.5, 0.5, 0.5)
    +SetView3D(v)
    +Test("elevate16")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_ex_surf.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_ex_surf.html new file mode 100644 index 000000000..d1a9bdc9a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_ex_surf.html @@ -0,0 +1,56 @@ + +Results for operators/ex_surf.py + +

    Results of VisIt Regression Test - operators/ex_surf

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_ex_surf_010.000.00
    ops_ex_surf_020 modifications totalling 0 lines
    ops_ex_surf_030 modifications totalling 0 lines
    ops_ex_surf_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_ex_surf_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_ex_surf_py.html new file mode 100644 index 000000000..b90417a22 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_ex_surf_py.html @@ -0,0 +1,51 @@ +operators/ex_surf.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  external_surface.py
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 24, 2005
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("ExternalSurface")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.707, 0, 0.707)
    +v.nearPlane = 0
    +SetView3D(v)
    +
    +Test("ops_ex_surf_01")
    +
    +Query("NumZones", "actual")
    +t = GetQueryOutputString()
    +TestText("ops_ex_surf_02", t)
    +
    +es = ExternalSurfaceAttributes()
    +es.removeGhosts = 1
    +SetOperatorOptions(es)
    +
    +Query("NumZones", "actual")
    +t = GetQueryOutputString()
    +TestText("ops_ex_surf_03", t)
    +
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("ucd2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("ExternalSurface")
    +DrawPlots()
    +Test("ops_ex_surf_04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_explode.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_explode.html new file mode 100644 index 000000000..8b272275b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_explode.html @@ -0,0 +1,180 @@ + +Results for operators/explode.py + +

    Results of VisIt Regression Test - operators/explode

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    explode_globe_000.000.00
    explode_globe_010.000.00
    explode_globe_020.000.00
    explode_globe_030.000.00
    explode_ucd3d_000.000.00
    explode_ucd3d_020.000.00
    explode_ucd3d_030.000.00
    explode_ucd3d_040.000.00
    explode_ucd3d_050.000.00
    explode_ucd3d_060.000.00
    explode_ucd3d_070.000.00
    explode_ucd3d_080.000.00
    explode_rect3d_000.000.00
    explode_multi_rect3d_000.000.00
    explode_tire_000.000.00
    explode_tire_010.000.00
    explode_tire_020.000.00
    explode_quad_disk_000.000.00
    recenter_000.000.00
    recenter_010.000.00
    recenter_020.000.00
    explode_domains_000.000.00
    explode_domains_010.000.00
    explode_repeat_labels_000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_explode_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_explode_py.html new file mode 100644 index 000000000..2d1f16d03 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_explode_py.html @@ -0,0 +1,580 @@ +operators/explode.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  explode.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, single domain, 
    +#                           multi domain
    +#                          3D unstructured, single domain
    +#                          3D curvilinear, single domain
    +#                          2D unstructured, single domain
    +#              plots     - filled boundary, pseudocolor
    +#              operators - explode
    +#
    +#  Programmer: Alister Maguire
    +#  Date: Tue Jan  2 15:07:06 PST 2018
    +#
    +#  Modifications:
    +#
    +#      Alister Maguire, Wed Jan 17 15:28:46 PST 2018
    +#      Added tests of multi-domain data.    
    +#
    +#      Alister Maguire, Mon Jan 22 11:00:51 PST 2018
    +#      Changed explosion factors to account of scale update. 
    +#
    +#      Alister Maguire, Wed Feb 14 16:07:51 PST 2018
    +#      Updated tests with multiple explosions to be perfomed
    +#      by a single operator.   
    +#
    +#      Alister Maguire, Tue Feb 20 16:22:05 PST 2018
    +#      Added a 2d test with no materials. 
    +#
    +#      Alister Maguire, Wed May  2 12:54:43 PDT 2018
    +#      Added tests for recentering. 
    +#
    +#      Alister Maguire, Tue Sep 18 14:57:03 PDT 2018
    +#      Added tests for exploding domains. 
    +#
    +#      Alister Maguire, Mon Sep 24 13:32:04 PDT 2018
    +#      Added a test for handling repeat labels. 
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def unstructured_explosions():
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    AddPlot("FilledBoundary", "mat1", 1, 1)
    +    DrawPlots()
    +
    +    ResetView()
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0.0758172, -0.984828, -0.156097)
    +    View3DAtts.focus = (0, 0, 0)
    +    View3DAtts.viewUp = (-0.01047, 0.155753, -0.987741)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 17.3205
    +    View3DAtts.nearPlane = -34.641
    +    View3DAtts.farPlane = 34.641
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 0.826446
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0, 0, 0)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +    AddOperator("Explode")
    +    mainAtts = ExplodeAttributes()
    +
    +    # Explode one material by a plane
    +    atts1 = ExplodeAttributes()
    +    atts1.explosionType = atts1.Plane
    +    atts1.planePoint = (0, 0, 0)
    +    atts1.planeNorm = (1, 0, 0)
    +    atts1.materialExplosionFactor = 1
    +    atts1.material = "4"
    +    atts1.explodeMaterialCells = 1
    +    atts1.cellExplosionFactor = .8
    +    atts1.explosionPattern = atts1.Impact
    +    mainAtts.AddExplosions(atts1)
    +    SetOperatorOptions(mainAtts, 1)
    +    DrawPlots()
    +
    +    Test("explode_globe_00")
    +
    +    # Explode second material by plane
    +    atts2 = ExplodeAttributes()
    +    atts2.explosionType = atts2.Plane
    +    atts2.planePoint = (0, 0, 0)
    +    atts2.planeNorm = (0, 0, 1)
    +    atts2.materialExplosionFactor = 1
    +    atts2.material = "3"
    +    atts2.explodeMaterialCells = 1
    +    atts2.cellExplosionFactor = .8
    +    atts2.explosionPattern = atts2.Impact
    +    mainAtts.AddExplosions(atts2)
    +    SetOperatorOptions(mainAtts, 1)
    +    DrawPlots()
    +
    +    Test("explode_globe_01")
    +
    +    # Explode third material by plane
    +    atts3 = ExplodeAttributes()
    +    atts3.explosionType = atts3.Plane
    +    atts3.planePoint = (0, 0, 0)
    +    atts3.planeNorm = (0, 0, 1)
    +    atts3.materialExplosionFactor = 1
    +    atts3.material = "1"
    +    atts3.explodeMaterialCells = 1
    +    atts3.cellExplosionFactor = .3
    +    atts3.explosionPattern = atts3.Impact
    +    mainAtts.AddExplosions(atts3)
    +    SetOperatorOptions(mainAtts, 1)
    +    DrawPlots()
    +
    +    Test("explode_globe_02")
    +
    +    # Explode material by point
    +    atts4 = ExplodeAttributes()
    +    atts4.explosionType = atts4.Point
    +    atts4.explosionPoint = (0, 0, 0)
    +    atts4.materialExplosionFactor = 1
    +    atts4.material = "2"
    +    atts4.explodeMaterialCells = 1
    +    atts4.cellExplosionFactor = .1
    +    atts4.explosionPattern = atts4.Impact  # Impact, Scatter
    +    mainAtts.AddExplosions(atts4)
    +    SetOperatorOptions(mainAtts, 1)
    +    DrawPlots()
    +    Test("explode_globe_03")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +def curvilinear_explosions():
    +    OpenDatabase(silo_data_path("ucd3d.silo"))
    +    AddPlot("Pseudocolor", "v", 1, 1)
    +    AddOperator("Explode", 1)
    +    DrawPlots()
    +
    +    ResetView()
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (-0.706303, 0.44773, 0.548338)
    +    View3DAtts.focus = (0, 3.41092, 10)
    +    View3DAtts.viewUp = (0.262178, 0.884949, -0.384874)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 17.0459
    +    View3DAtts.nearPlane = -34.641
    +    View3DAtts.farPlane = 34.641
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 0.926446
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0, 3.41092, 10)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +    # Explode by cylinder without radius 
    +    ExplodeAtts = ExplodeAttributes()
    +    ExplodeAtts.explosionType = ExplodeAtts.Cylinder
    +    ExplodeAtts.cylinderPoint1 = (-5, 0, 20)
    +    ExplodeAtts.cylinderPoint2 = (5, 5, 0)
    +    ExplodeAtts.materialExplosionFactor = 1
    +    ExplodeAtts.material = "1"
    +    ExplodeAtts.cylinderRadius = 0
    +    ExplodeAtts.explodeMaterialCells = 1
    +    ExplodeAtts.cellExplosionFactor = 1
    +    ExplodeAtts.explosionPattern = ExplodeAtts.Impact
    +    ExplodeAtts.explodeAllCells = 0
    +    SetOperatorOptions(ExplodeAtts, 1)
    +
    +    Test("explode_ucd3d_00")
    +
    +    # Explode by plane
    +    ExplodeAtts = ExplodeAttributes()
    +    ExplodeAtts.explosionType = ExplodeAtts.Plane
    +    ExplodeAtts.explodeMaterialCells = 0
    +    ExplodeAtts.planePoint = (0, 2, 20)
    +    ExplodeAtts.planeNorm = (0, 1, 0)
    +    ExplodeAtts.materialExplosionFactor = 1
    +    ExplodeAtts.material = "4"
    +    ExplodeAtts.explosionPattern = ExplodeAtts.Impact
    +    ExplodeAtts.explodeAllCells = 0
    +    SetOperatorOptions(ExplodeAtts, 1)
    +
    +    Test("explode_ucd3d_02")
    +
    +    # Explode all cells by point (impact)
    +    ExplodeAtts = ExplodeAttributes()
    +    ExplodeAtts.explosionType = ExplodeAtts.Point
    +    ExplodeAtts.explosionPoint = (0, 0, 0)
    +    ExplodeAtts.materialExplosionFactor = 1
    +    ExplodeAtts.material = "1"
    +    ExplodeAtts.cellExplosionFactor = 1
    +    ExplodeAtts.explosionPattern = ExplodeAtts.Impact
    +    ExplodeAtts.explodeAllCells = 1
    +    SetOperatorOptions(ExplodeAtts, 1)
    +
    +    Test("explode_ucd3d_03")
    +
    +    # Explode all cells by point (impact)
    +    ExplodeAtts = ExplodeAttributes()
    +    ExplodeAtts.explosionType = ExplodeAtts.Point
    +    ExplodeAtts.explosionPoint = (0, 3, 10)
    +    ExplodeAtts.materialExplosionFactor = 1
    +    ExplodeAtts.material = "1"
    +    ExplodeAtts.cellExplosionFactor = 1
    +    ExplodeAtts.explosionPattern = ExplodeAtts.Impact
    +    ExplodeAtts.explodeAllCells = 1
    +    SetOperatorOptions(ExplodeAtts, 1)
    +
    +    Test("explode_ucd3d_04")
    +
    +    # Explode all cells by point (scatter)
    +    ExplodeAtts = ExplodeAttributes()
    +    ExplodeAtts.explosionType = ExplodeAtts.Point
    +    ExplodeAtts.explosionPoint = (0, 3, 10)
    +    ExplodeAtts.materialExplosionFactor = 1
    +    ExplodeAtts.material = "1"
    +    ExplodeAtts.cellExplosionFactor = 3
    +    ExplodeAtts.explosionPattern = ExplodeAtts.Scatter
    +    ExplodeAtts.explodeAllCells = 1
    +    SetOperatorOptions(ExplodeAtts, 1)
    +
    +    Test("explode_ucd3d_05")
    +
    +    # Explode material by point (scatter)
    +    ExplodeAtts = ExplodeAttributes()
    +    ExplodeAtts.explosionType = ExplodeAtts.Point
    +    ExplodeAtts.explosionPoint = (0, 0, 0)
    +    ExplodeAtts.materialExplosionFactor = 1
    +    ExplodeAtts.material = "1"
    +    ExplodeAtts.explodeMaterialCells = 1
    +    ExplodeAtts.cellExplosionFactor = 1.5
    +    ExplodeAtts.explosionPattern = ExplodeAtts.Scatter
    +    ExplodeAtts.explodeAllCells = 0
    +    SetOperatorOptions(ExplodeAtts, 1)
    +
    +    Test("explode_ucd3d_06")
    +
    +    # Explode material by point
    +    ExplodeAtts = ExplodeAttributes()
    +    ExplodeAtts.explosionType = ExplodeAtts.Point
    +    ExplodeAtts.explosionPoint = (0, 3, 10)
    +    ExplodeAtts.materialExplosionFactor = 1
    +    ExplodeAtts.material = "1"
    +    ExplodeAtts.cylinderRadius = 0
    +    ExplodeAtts.explodeMaterialCells = 1
    +    ExplodeAtts.cellExplosionFactor = 1.5
    +    ExplodeAtts.explosionPattern = ExplodeAtts.Scatter
    +    ExplodeAtts.explodeAllCells = 0
    +    SetOperatorOptions(ExplodeAtts, 1)
    +
    +    Test("explode_ucd3d_07")
    +
    +    # Explode all cells by cylinder with radius
    +    ExplodeAtts = ExplodeAttributes()
    +    ExplodeAtts.explosionType = ExplodeAtts.Cylinder
    +    ExplodeAtts.cylinderPoint1 = (0, 1, 10)
    +    ExplodeAtts.cylinderPoint2 = (0, 0, 10)
    +    ExplodeAtts.cylinderRadius = 4
    +    ExplodeAtts.cellExplosionFactor = .4
    +    ExplodeAtts.explosionPattern = ExplodeAtts.Impact
    +    ExplodeAtts.explodeAllCells = 1
    +    SetOperatorOptions(ExplodeAtts, 1)
    +
    +    Test("explode_ucd3d_08")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +def rectilinear_explosions():
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +    AddPlot("FilledBoundary", "mat1")
    +
    +    ResetView()
    +    RecenterView()
    +
    +    AddOperator("Explode")
    +    mainAtts = ExplodeAttributes()
    +    DrawPlots()
    +
    +    atts1 = ExplodeAttributes()
    +    atts1.explosionPoint = (1, 0, 0)
    +    atts1.materialExplosionFactor = 2
    +    atts1.material = "7"
    +    mainAtts.AddExplosions(atts1)
    +    SetOperatorOptions(mainAtts, 1)
    +
    +    atts2 = ExplodeAttributes()
    +    atts2.explosionPoint = (0, 0, 1)
    +    atts2.materialExplosionFactor = 2
    +    atts2.material = "5"
    +    mainAtts.AddExplosions(atts2)
    +    SetOperatorOptions(mainAtts, 1)
    +
    +    Test("explode_rect3d_00")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +def multi_rectilinear_explosions():
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +    AddPlot("FilledBoundary", "mat1")
    +
    +    ResetView()
    +    RecenterView()
    +
    +    AddOperator("Explode")
    +    DrawPlots()
    +    mainAtts = ExplodeAttributes()
    +
    +    atts1 = ExplodeAttributes()
    +    atts1.explosionPoint = (1, 0, 0)
    +    atts1.materialExplosionFactor = 2
    +    atts1.material = "2"
    +    mainAtts.AddExplosions(atts1)
    +    SetOperatorOptions(mainAtts, 1)
    +
    +    atts2 = ExplodeAttributes()
    +    atts2.explosionPoint = (0, 0, 1)
    +    atts2.materialExplosionFactor = 2
    +    atts2.material = "3"
    +    mainAtts.AddExplosions(atts2)
    +    SetOperatorOptions(mainAtts, 1)
    +
    +    Test("explode_multi_rect3d_00")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +def multi_tire():
    +    OpenDatabase(silo_data_path("tire.silo"))
    +    AddPlot("FilledBoundary", "Materials")
    +
    +    ResetView()
    +    RecenterView()
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (1.0, 0.0, 0.0)
    +    View3DAtts.focus = (0, 0, 0)
    +    View3DAtts.viewUp = (0, 1, 0)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 8.0
    +    View3DAtts.nearPlane = -0.5
    +    View3DAtts.farPlane = 0.5
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 0.826446
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0, 0, 0)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +
    +    AddOperator("Explode")
    +    DrawPlots()
    +    mainAtts = ExplodeAttributes()
    +
    +    # If domains are being treated correctly, this
    +    # should not produce an explosion. 
    +    atts1 = ExplodeAttributes()
    +    atts1.materialExplosionFactor = 500
    +    atts1.material = "1 Rubber"
    +    mainAtts.AddExplosions(atts1)
    +    SetOperatorOptions(mainAtts, 1)
    +
    +    Test("explode_tire_00")
    +
    +    atts2 = ExplodeAttributes()
    +    atts2.materialExplosionFactor = 0
    +    atts2.explodeMaterialCells = 1
    +    atts2.cellExplosionFactor = 1
    +    atts2.explosionType = atts2.Plane
    +    atts2.planePoint = (0, 0, 0)
    +    atts2.planeNorm = (0, 1, 0)
    +    atts2.material = "1 Rubber"
    +    mainAtts.AddExplosions(atts2)
    +    SetOperatorOptions(mainAtts, 1)
    +
    +    Test("explode_tire_01")
    +
    +    atts3 = ExplodeAttributes()
    +    atts3.materialExplosionFactor = 1
    +    atts3.explodeMaterialCells = 0
    +    atts3.cellExplosionFactor = 0
    +    atts3.explosionType = atts3.Point
    +    atts3.explosionPoint = (0, 0, 60)
    +    atts3.material = "2 Steel"
    +    mainAtts.AddExplosions(atts3)
    +    SetOperatorOptions(mainAtts, 1)
    +
    +    Test("explode_tire_02")
    +    ResetView()
    +    DeleteAllPlots()
    +
    +def TwoDimNoMat():
    +    OpenDatabase(silo_data_path("quad_disk.silo"))
    +    AddPlot("Pseudocolor", "sphElevD_on_mesh")
    +
    +    ResetView()
    +    RecenterView()
    +
    +    AddOperator("Explode")
    +    DrawPlots()
    +
    +    atts = ExplodeAttributes()
    +    atts.explodeAllCells  = 1
    +    atts.explosionPattern = atts.Scatter
    +    SetOperatorOptions(atts)
    +
    +    Test("explode_quad_disk_00")
    +    ResetView()
    +    DeleteAllPlots()
    +
    +def TestRecenter():
    +    #
    +    # Recentering is enabled when exploding all cells,
    +    # and it allows a cell to be displaced even when 
    +    # its center lies on an explode origin. 
    +    #
    +    OpenDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +    AddPlot("Pseudocolor", "3D/z1")
    +
    +    ResetView()
    +    RecenterView()
    +
    +    AddOperator("Explode")
    +    DrawPlots()
    +
    +    #
    +    # Test when a cell center lies on an explode
    +    # cylinder with radius 0. 
    +    #
    +    atts = ExplodeAttributes()
    +    atts.explodeAllCells = 1
    +    atts.explosionType   = atts.Cylinder
    +    atts.cylinderPoint1  = (0, .5, .5)
    +    atts.cylinderPoint2  = (1, .5, .5)
    +    SetOperatorOptions(atts)
    +
    +    Test("recenter_00")
    +
    +    #
    +    # Test when a cell center lies on an explode
    +    # point.
    +    #
    +    atts = ExplodeAttributes()
    +    atts.explodeAllCells = 1
    +    atts.explosionType   = atts.Point
    +    atts.explosionPoint  = (.5, .5, .5)
    +    SetOperatorOptions(atts)
    +
    +    Test("recenter_01")
    +
    +    #
    +    # Test when a cell center lies on an explode
    +    # plane.
    +    #
    +    atts = ExplodeAttributes()
    +    atts.explodeAllCells = 1
    +    atts.explosionType   = atts.Plane
    +    atts.planePoint      = (1.5, 0, 0)
    +    atts.planeNorm       = (1, 0, 0)
    +    SetOperatorOptions(atts)
    +
    +    Test("recenter_02")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +
    +def TestDomainExplode():
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +    AddPlot("Subset", "domains(mesh1)")
    +
    +    ResetView()
    +    RecenterView()
    +
    +    #
    +    # Test exploding full mesh domains. 
    +    #
    +    AddOperator("Explode")
    +    expAtts = ExplodeAttributes()
    +    expAtts.explosionType = expAtts.Point
    +    expAtts.explosionPoint = (0, 0, 0)
    +    expAtts.materialExplosionFactor = 1.2
    +    expAtts.material = "15"
    +    expAtts.explodeMaterialCells = 0
    +    expAtts.explosionPattern = expAtts.Impact
    +    SetOperatorOptions(expAtts, 1)
    +    DrawPlots()
    +    Test("explode_domains_00")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +    AddPlot("Subset", "domains(mesh1_front)")
    +
    +    #
    +    # Test exploding a subset of mesh domains. 
    +    #
    +    AddOperator("Explode")
    +    expAtts = ExplodeAttributes()
    +    expAtts.explosionType = expAtts.Point
    +    expAtts.explosionPoint = (0, 0, 0)
    +    expAtts.materialExplosionFactor = 1.2
    +    expAtts.material = "8"
    +    expAtts.explodeMaterialCells = 0
    +    expAtts.explosionPattern = expAtts.Impact
    +    SetOperatorOptions(expAtts, 1)
    +    DrawPlots()
    +    Test("explode_domains_01")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +def TestRepeatMatLabels():
    +    #
    +    # Under certain circumstances, the explode operator
    +    # will recieve repeat labels that need to be condensed. 
    +    # Make sure we can handle this. 
    +    #
    +    OpenDatabase(silo_data_path("tire.silo"))
    +    AddPlot("FilledBoundary", "Materials")
    +
    +    ResetView()
    +    RecenterView()
    +
    +    #
    +    # First, add a reflect operator, which will create
    +    # repeat labels if used on multi domain data.  
    +    #
    +    AddOperator("Reflect")
    +
    +    #
    +    # Test exploding full mesh domains. 
    +    #
    +    AddOperator("Explode")
    +    expAtts = ExplodeAttributes()
    +    expAtts.explosionType = expAtts.Point
    +    expAtts.explosionPoint = (0, 0, 10)
    +    expAtts.materialExplosionFactor = 1.2
    +    expAtts.material = "1 Rubber"
    +    expAtts.explodeMaterialCells = 1
    +    expAtts.explosionPattern = expAtts.Impact
    +    SetOperatorOptions(expAtts, 1)
    +    DrawPlots()
    +    Test("explode_repeat_labels_00")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +
    +def Main():
    +    unstructured_explosions()
    +    curvilinear_explosions()
    +    rectilinear_explosions()
    +    multi_rectilinear_explosions()
    +    multi_tire()
    +    TwoDimNoMat()
    +    TestRecenter()
    +    TestDomainExplode()
    +    TestRepeatMatLabels()
    +
    +
    +Main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_extrudeStacked.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_extrudeStacked.html new file mode 100644 index 000000000..7c66b7d27 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_extrudeStacked.html @@ -0,0 +1,339 @@ + +Results for operators/extrudeStacked.py + +

    Results of VisIt Regression Test - operators/extrudeStacked

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Extrude stacked function
    Testing database = lines.vtk
    extrude_lines_v0_node_height0.000.00
    extrude_lines_v1_node_height0.000.00
    extrude_lines_v1_cell_height0.000.00
    extrude_lines_v2_node_height0.000.00
    extrude_lines_v2_cell_height0.000.00
    extrude_lines_v2_index0.000.00
    extrude_lines_v3_node_height0.000.00
    extrude_lines_v3_cell_height0.000.00
    extrude_lines_v3_index0.000.00
    extrude_lines_v4_node_height0.000.00
    extrude_lines_v4_cell_height0.000.00
    extrude_lines_v4_index0.000.00
    Testing database = polygons.vtk
    extrude_polygons_v0_node_height0.000.00
    extrude_polygons_v1_node_height0.000.00
    extrude_polygons_v1_cell_height0.000.00
    extrude_polygons_v2_node_height0.000.00
    extrude_polygons_v2_cell_height0.000.00
    extrude_polygons_v2_index0.000.00
    extrude_polygons_v3_node_height0.000.00
    extrude_polygons_v3_cell_height0.000.00
    extrude_polygons_v3_index0.000.00
    extrude_polygons_v4_node_height0.000.00
    extrude_polygons_v4_cell_height0.000.00
    extrude_polygons_v4_index0.000.00
    Testing database = rectilinear.vtk
    extrude_rectilinear_v0_node_height0.000.00
    extrude_rectilinear_v1_node_height0.000.00
    extrude_rectilinear_v1_cell_height0.000.00
    extrude_rectilinear_v2_node_height0.000.00
    extrude_rectilinear_v2_cell_height0.000.00
    extrude_rectilinear_v2_index0.000.00
    extrude_rectilinear_v3_node_height0.000.00
    extrude_rectilinear_v3_cell_height0.000.00
    extrude_rectilinear_v3_index0.000.00
    extrude_rectilinear_v4_node_height0.000.00
    extrude_rectilinear_v4_cell_height0.000.00
    extrude_rectilinear_v4_index0.000.00
    Testing database = structured.vtk
    extrude_structured_v0_node_height0.000.00
    extrude_structured_v1_node_height0.000.00
    extrude_structured_v1_cell_height0.000.00
    extrude_structured_v2_node_height0.000.00
    extrude_structured_v2_cell_height0.000.00
    extrude_structured_v2_index0.000.00
    extrude_structured_v3_node_height0.000.00
    extrude_structured_v3_cell_height0.000.00
    extrude_structured_v3_index0.000.00
    extrude_structured_v4_node_height0.000.00
    extrude_structured_v4_cell_height0.000.00
    extrude_structured_v4_index0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_extrudeStacked_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_extrudeStacked_py.html new file mode 100644 index 000000000..ef52c43f5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_extrudeStacked_py.html @@ -0,0 +1,283 @@ +operators/extrudeStacked.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  extrudeStacked.py
    +#
    +#  Tests:      operator   - Extrude Stacked
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       30 August 2023
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Wed Sep 20, 2023
    +#    Changed SetLocalView to retrieve the view via GetView3D() and only
    +#    change the viewNormal and viewUp, so that test images are larger.
    +#
    +# ----------------------------------------------------------------------------
    +
    +RequiredDatabasePlugin("VTK")
    +
    +# For local testing using the CLI
    +
    +#def data_path( db_name ):
    +#  db="/Users/allen/Projects/VisIt/git/visit/data/%s" %(db_name)
    +#  return db
    +
    +#def Test(case_name):
    +#   swatts = SaveWindowAttributes()
    +#   swatts.family = 0
    +#   swatts.fileName = "/Users/allen/Projects/VisIt/git/visit/data/%s" %(case_name)
    +#   SetSaveWindowAttributes(swatts)
    +#   SaveWindow()
    +#   return
    +
    +#def TestSection(tmpstr):
    +#   return
    +
    +#def Exit():
    +#   return
    +
    +# Set the local view
    +def SetLocalView():
    +  ResetView()
    +  #
    +  View3DAtts = GetView3D()
    +  View3DAtts.viewNormal = (0, -1, 0)
    +  View3DAtts.viewUp = (0, 0, 1)
    +  SetView3D(View3DAtts)
    +
    +# Open the database here and add a plot.
    +db=data_path("extrude_test_data/extrude_structured.vtk")
    +OpenDatabase(db)
    +
    +AddPlot("Pseudocolor", "V1", 1, 0)
    +AddOperator("ExtrudeStacked", 0)
    +SetActivePlots(0)
    +DrawPlots()
    +
    +PseudocolorAtts = PseudocolorAttributes()
    +PseudocolorAtts.renderSurfaces = 1
    +PseudocolorAtts.renderWireframe = 1
    +SetPlotOptions(PseudocolorAtts)
    +
    +SetLocalView()
    +
    +# Loop through all of the databases
    +databases=["lines", "polygons", "rectilinear", "structured" ]
    +
    +TestSection("Extrude stacked function")
    +for i in range(len(databases)):
    +  db=data_path("extrude_test_data/extrude_%s.vtk") %(databases[i])
    +  tmpstr="Testing database = %s.vtk" %(databases[i])
    +  TestSection(tmpstr)
    +  OpenDatabase(db)
    +  #
    +  # Replace the database from before with the one just openned.
    +  ReplaceDatabase(db)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("default")
    +  ExtrudeStackedAtts.visualVariableNames = ("default")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37)
    +  ExtrudeStackedAtts.extentScale = (1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.OriginalData
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v0_node_height" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37)
    +  ExtrudeStackedAtts.extentScale = (1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.NodeHeight
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v1_node_height" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37)
    +  ExtrudeStackedAtts.extentScale = (1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.CellHeight
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v1_cell_height" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1", "V2")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1", "V2")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37, -1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37, 1e+37)
    +  ExtrudeStackedAtts.extentScale = (1, 1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.NodeHeight
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v2_node_height" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1", "V2")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1", "V2")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37, -1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37, 1e+37)
    +  ExtrudeStackedAtts.extentScale = (1, 1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.CellHeight
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v2_cell_height" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1", "V2")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1", "V2")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37, -1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37, 1e+37)
    +  ExtrudeStackedAtts.extentScale = (1, 1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.VariableIndex
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v2_index" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1", "V2", "V3")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1", "V2", "V3")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37, -1e+37, -1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37, 1e+37, 1e+37)
    +  ExtrudeStackedAtts.extentScale = (1, 1, 1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.NodeHeight
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v3_node_height" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1", "V2", "V3")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1", "V2", "V3")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37, -1e+37, -1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37, 1e+37, 1e+37)
    +  ExtrudeStackedAtts.extentScale = (1, 1, 1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.CellHeight
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v3_cell_height" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1", "V2", "V3")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1", "V2", "V3")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37, -1e+37, -1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37, 1e+37, 1e+37)
    +  ExtrudeStackedAtts.extentScale = (1, 1, 1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.VariableIndex
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v3_index" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1", "V2", "V3", "V4")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1", "V2", "V3", "V4")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37, -1e+37, -1e+37, -1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37, 1e+37, 1e+37, 1e+37)
    +  ExtrudeStackedAtts.extentScale = (1, 1, 1, 1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.NodeHeight
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v4_node_height" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1", "V2", "V3", "V4")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1", "V2", "V3", "V4")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37, -1e+37, -1e+37, -1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37, 1e+37, 1e+37, 1e+37)
    +  ExtrudeStackedAtts.extentScale = (1, 1, 1, 1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.CellHeight
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v4_cell_height" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1", "V2", "V3", "V4")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1", "V2", "V3", "V4")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37, -1e+37, -1e+37, -1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37, 1e+37, 1e+37, 1e+37)
    +  ExtrudeStackedAtts.extentScale = (1, 1, 1, 1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.VariableIndex
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v4_index" %(databases[i])
    +  Test(tmpstr)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_geometry.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_geometry.html new file mode 100644 index 000000000..80740c72a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_geometry.html @@ -0,0 +1,138 @@ + +Results for operators/ic_geometry.py + +

    Results of VisIt Regression Test - operators/ic_geometry

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ic_geometry_010.000.00
    ic_geometry_020.000.00
    ic_geometry_030.000.00
    ic_geometry_040.000.00
    ic_geometry_050.000.00
    ic_geometry_060.000.00
    ic_geometry_070.000.00
    ic_geometry_080.000.00
    ic_geometry_090.000.00
    ic_geometry_100.000.00
    ic_geometry_110.000.00
    ic_geometry_120.000.00
    ic_geometry_130.000.00
    ic_geometry_140.000.00
    ic_geometry_crop_10.000.00
    ic_geometry_crop_20.000.00
    ic_geometry_crop_30.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_geometry_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_geometry_py.html new file mode 100644 index 000000000..14849b51c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_geometry_py.html @@ -0,0 +1,379 @@ +operators/ic_geometry.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ic_geometry.py
    +#
    +#  Tests:      operator      - integralcurve
    +#              plot          - pseudocolor
    +#
    +#  Defect ID:  -
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       March 10, 2016
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Tue Sep 29 09:17:57 PDT 2020
    +#    Turned off IC warnings.
    +#
    +#    Eddie Rusu, Tue Apr 13 12:08:59 PDT 2021
    +#    Changed Pseudocolor CurrentPlot to ActualData.
    +#
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +AddPlot("Pseudocolor", "operators/IntegralCurve/grad", 1, 0)
    +
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.270729, 0.624198, 0.732859)
    +View3DAtts.focus = (0.496062, 0.99603, 0.496062)
    +View3DAtts.viewUp = (-0.0922782, 0.774611, -0.62567)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 12.1829
    +View3DAtts.nearPlane = -24.3658
    +View3DAtts.farPlane = 24.3658
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +SetView3D(View3DAtts)
    +
    +PseudocolorAtts = PseudocolorAttributes()
    +PseudocolorAtts.scaling = PseudocolorAtts.Linear  # Linear, Log, Skew
    +PseudocolorAtts.skewFactor = 1
    +PseudocolorAtts.limitsMode = PseudocolorAtts.OriginalData  # OriginalData, ActualData
    +PseudocolorAtts.minFlag = 0
    +PseudocolorAtts.min = 0
    +PseudocolorAtts.maxFlag = 0
    +PseudocolorAtts.max = 1
    +PseudocolorAtts.centering = PseudocolorAtts.Natural  # Natural, Nodal, Zonal
    +PseudocolorAtts.colorTableName = "hot"
    +PseudocolorAtts.invertColorTable = 0
    +PseudocolorAtts.opacityType = PseudocolorAtts.FullyOpaque  # ColorTable, FullyOpaque, Constant, Ramp, VariableRange
    +PseudocolorAtts.opacityVariable = ""
    +PseudocolorAtts.opacity = 1
    +PseudocolorAtts.opacityVarMin = 0
    +PseudocolorAtts.opacityVarMax = 1
    +PseudocolorAtts.opacityVarMinFlag = 0
    +PseudocolorAtts.opacityVarMaxFlag = 0
    +PseudocolorAtts.pointSize = 0.05
    +PseudocolorAtts.pointType = PseudocolorAtts.Point  # Box, Axis, Icosahedron, Octahedron, Tetrahedron, SphereGeometry, Point, Sphere
    +PseudocolorAtts.pointSizeVarEnabled = 0
    +PseudocolorAtts.pointSizeVar = "default"
    +PseudocolorAtts.pointSizePixels = 2
    +PseudocolorAtts.lineType = PseudocolorAtts.Tube  # Line, Tube, Ribbon
    +PseudocolorAtts.lineWidth = 0
    +PseudocolorAtts.tubeResolution = 100
    +PseudocolorAtts.tubeRadiusSizeType = PseudocolorAtts.Absolute  # Absolute, FractionOfBBox
    +PseudocolorAtts.tubeRadiusAbsolute = 0.1
    +PseudocolorAtts.tubeRadiusBBox = 0.005
    +PseudocolorAtts.tubeRadiusVarEnabled = 0
    +PseudocolorAtts.tubeRadiusVar = ""
    +PseudocolorAtts.tubeRadiusVarRatio = 10
    +PseudocolorAtts.tailStyle = PseudocolorAtts.Spheres  # None, Spheres, Cones
    +PseudocolorAtts.headStyle = PseudocolorAtts.NONE  # None, Spheres, Cones
    +PseudocolorAtts.endPointRadiusSizeType = PseudocolorAtts.Absolute  # Absolute, FractionOfBBox
    +PseudocolorAtts.endPointRadiusAbsolute = 0.3
    +PseudocolorAtts.endPointRadiusBBox = 0.005
    +PseudocolorAtts.endPointResolution = 100
    +PseudocolorAtts.endPointRatio = 2
    +PseudocolorAtts.endPointRadiusVarEnabled = 0
    +PseudocolorAtts.endPointRadiusVar = ""
    +PseudocolorAtts.endPointRadiusVarRatio = 10
    +PseudocolorAtts.renderSurfaces = 1
    +PseudocolorAtts.renderWireframe = 0
    +PseudocolorAtts.renderPoints = 0
    +PseudocolorAtts.smoothingLevel = 0
    +PseudocolorAtts.legendFlag = 1
    +PseudocolorAtts.lightingFlag = 1
    +PseudocolorAtts.wireframeColor = (0, 0, 0, 0)
    +PseudocolorAtts.pointColor = (0, 0, 0, 0)
    +SetPlotOptions(PseudocolorAtts)
    +
    +IntegralCurveAtts = IntegralCurveAttributes()
    +IntegralCurveAtts.sourceType = IntegralCurveAtts.SpecifiedPlane  # SpecifiedPoint, PointList, SpecifiedLine, Circle, SpecifiedPlane, SpecifiedSphere, SpecifiedBox, Selection, FieldData
    +IntegralCurveAtts.pointSource = (0, 0, 0)
    +IntegralCurveAtts.lineStart = (0, 0, 0)
    +IntegralCurveAtts.lineEnd = (1, 0, 0)
    +IntegralCurveAtts.planeOrigin = (0.5, 1, 0.5)
    +IntegralCurveAtts.planeNormal = (0, 1, 0)
    +IntegralCurveAtts.planeUpAxis = (1, 0, 0)
    +IntegralCurveAtts.radius = 1
    +IntegralCurveAtts.sphereOrigin = (0, 0, 0)
    +IntegralCurveAtts.boxExtents = (0, 1, 0, 1, 0, 1)
    +IntegralCurveAtts.useWholeBox = 1
    +IntegralCurveAtts.pointList = (0, 0, 0, 1, 0, 0, 0, 1, 0)
    +IntegralCurveAtts.fieldData = ()
    +IntegralCurveAtts.sampleDensity0 = 5
    +IntegralCurveAtts.sampleDensity1 = 5
    +IntegralCurveAtts.sampleDensity2 = 2
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.TimeAbsolute  # Solid, SeedPointID, Speed, Vorticity, ArcLength, TimeAbsolute, TimeRelative, AverageDistanceFromSeed, CorrelationDistance, Difference, Variable
    +IntegralCurveAtts.dataVariable = ""
    +IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Both  # Forward, Backward, Both, ForwardDirectionless, BackwardDirectionless, BothDirectionless
    +IntegralCurveAtts.maxSteps = 100000
    +IntegralCurveAtts.terminateByDistance = 0
    +IntegralCurveAtts.termDistance = 10
    +IntegralCurveAtts.terminateByTime = 1
    +IntegralCurveAtts.termTime = 200
    +IntegralCurveAtts.maxStepLength = 0.1
    +IntegralCurveAtts.limitMaximumTimestep = 1
    +IntegralCurveAtts.maxTimeStep = 0.02
    +IntegralCurveAtts.relTol = 1e-06
    +IntegralCurveAtts.absTolSizeType = IntegralCurveAtts.FractionOfBBox  # Absolute, FractionOfBBox
    +IntegralCurveAtts.absTolAbsolute = 1e-06
    +IntegralCurveAtts.absTolBBox = 1e-07
    +IntegralCurveAtts.fieldType = IntegralCurveAtts.Default  # Default, FlashField, M3DC12DField, M3DC13DField, Nek5000Field, NektarPPField
    +IntegralCurveAtts.fieldConstant = 1
    +IntegralCurveAtts.velocitySource = (0, 0, 0)
    +IntegralCurveAtts.integrationType = IntegralCurveAtts.AdamsBashforth  # Euler, Leapfrog, DormandPrince, AdamsBashforth, RK4, M3DC12DIntegrator
    +IntegralCurveAtts.parallelizationAlgorithmType = IntegralCurveAtts.VisItSelects  # LoadOnDemand, ParallelStaticDomains, ManagerWorker, VisItSelects
    +IntegralCurveAtts.maxProcessCount = 10
    +IntegralCurveAtts.maxDomainCacheSize = 3
    +IntegralCurveAtts.workGroupSize = 32
    +IntegralCurveAtts.pathlines = 0
    +IntegralCurveAtts.pathlinesOverrideStartingTimeFlag = 0
    +IntegralCurveAtts.pathlinesOverrideStartingTime = 0
    +IntegralCurveAtts.pathlinesPeriod = 0
    +IntegralCurveAtts.pathlinesCMFE = IntegralCurveAtts.POS_CMFE  # CONN_CMFE, POS_CMFE
    +IntegralCurveAtts.displayGeometry = IntegralCurveAtts.Lines  # Lines, Tubes, Ribbons
    +IntegralCurveAtts.cropBeginFlag = 0
    +IntegralCurveAtts.cropBegin = 0
    +IntegralCurveAtts.cropEndFlag = 0
    +IntegralCurveAtts.cropEnd = 0
    +IntegralCurveAtts.cropValue = IntegralCurveAtts.Time  # Distance, Time, StepNumber
    +IntegralCurveAtts.sampleDistance0 = 18
    +IntegralCurveAtts.sampleDistance1 = 18
    +IntegralCurveAtts.sampleDistance2 = 10
    +IntegralCurveAtts.fillInterior = 1
    +IntegralCurveAtts.randomSamples = 0
    +IntegralCurveAtts.randomSeed = 0
    +IntegralCurveAtts.numberOfRandomSamples = 1
    +IntegralCurveAtts.issueAdvectionWarnings = 1
    +IntegralCurveAtts.issueBoundaryWarnings = 1
    +IntegralCurveAtts.issueTerminationWarnings = 1
    +IntegralCurveAtts.issueStepsizeWarnings = 1
    +IntegralCurveAtts.issueStiffnessWarnings = 1
    +IntegralCurveAtts.issueCriticalPointsWarnings = 1
    +IntegralCurveAtts.criticalPointThreshold = 0.001
    +IntegralCurveAtts.correlationDistanceAngTol = 5
    +IntegralCurveAtts.correlationDistanceMinDistAbsolute = 1
    +IntegralCurveAtts.correlationDistanceMinDistBBox = 0.005
    +IntegralCurveAtts.correlationDistanceMinDistType = IntegralCurveAtts.FractionOfBBox  # Absolute, FractionOfBBox
    +IntegralCurveAtts.selection = ""
    +
    +# Test coloring options
    +
    +SetOperatorOptions(IntegralCurveAtts)
    +DrawPlots()
    +Test( "ic_geometry_01" )
    +
    +PseudocolorAtts.endPointRadiusSizeType = PseudocolorAtts.FractionOfBBox
    +PseudocolorAtts.endPointRadiusBBox = 0.03
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_02" )
    +
    +PseudocolorAtts.endPointRadiusSizeType = PseudocolorAtts.Absolute
    +PseudocolorAtts.endPointRadiusAbsolute = 0.6
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_03" )
    +
    +PseudocolorAtts.lineType = PseudocolorAtts.Tube
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_04" )
    +
    +PseudocolorAtts.tubeRadiusBBox = 0.01
    +PseudocolorAtts.tubeRadiusSizeType = PseudocolorAtts.FractionOfBBox
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_05" )
    +
    +PseudocolorAtts.tubeRadiusAbsolute = 0.2
    +PseudocolorAtts.tubeRadiusSizeType = PseudocolorAtts.Absolute
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_06" )
    +
    +PseudocolorAtts.lineType = PseudocolorAtts.Ribbon
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_07" )
    +
    +PseudocolorAtts.tubeRadiusBBox = 0.01
    +PseudocolorAtts.tubeRadiusSizeType = PseudocolorAtts.FractionOfBBox
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_08" )
    +
    +PseudocolorAtts.tubeRadiusAbsolute = 0.4
    +PseudocolorAtts.tubeRadiusSizeType = PseudocolorAtts.Absolute
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_09" )
    +
    +PseudocolorAtts.lineType = PseudocolorAtts.Line
    +PseudocolorAtts.headStyle = PseudocolorAtts.Spheres  # None, Spheres, Cones
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_10" )
    +
    +PseudocolorAtts.endPointRadiusSizeType = PseudocolorAtts.FractionOfBBox
    +PseudocolorAtts.endPointRadiusBBox = 0.03
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_11" )
    +
    +PseudocolorAtts.endPointRadiusSizeType = PseudocolorAtts.Absolute
    +PseudocolorAtts.endPointRadiusAbsolute = 0.6
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_12" )
    +
    +PseudocolorAtts.tailStyle = PseudocolorAtts.Cones  # None, Spheres, Cones
    +PseudocolorAtts.headStyle = PseudocolorAtts.Cones  # None, Spheres, Cones
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_13" )
    +
    +PseudocolorAtts.endPointRatio = 3
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_14" )
    +
    +#
    +# Test crop w/ head (cone) location
    +#
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("noise.silo"))
    +AddPlot("Pseudocolor", "operators/IntegralCurve/grad", 1, 0)
    +
    +PseudocolorAtts = PseudocolorAttributes()
    +PseudocolorAtts.scaling = PseudocolorAtts.Linear  # Linear, Log, Skew
    +PseudocolorAtts.skewFactor = 1
    +PseudocolorAtts.limitsMode = PseudocolorAtts.OriginalData  # OriginalData, ActualData
    +PseudocolorAtts.minFlag = 0
    +PseudocolorAtts.min = 0
    +PseudocolorAtts.maxFlag = 0
    +PseudocolorAtts.max = 1
    +PseudocolorAtts.centering = PseudocolorAtts.Natural  # Natural, Nodal, Zonal
    +PseudocolorAtts.colorTableName = "hot"
    +PseudocolorAtts.invertColorTable = 0
    +PseudocolorAtts.opacityType = PseudocolorAtts.FullyOpaque  # ColorTable, FullyOpaque, Constant, Ramp, VariableRange
    +PseudocolorAtts.opacityVariable = ""
    +PseudocolorAtts.opacity = 1
    +PseudocolorAtts.opacityVarMin = 0
    +PseudocolorAtts.opacityVarMax = 1
    +PseudocolorAtts.opacityVarMinFlag = 0
    +PseudocolorAtts.opacityVarMaxFlag = 0
    +PseudocolorAtts.pointSize = 0.05
    +PseudocolorAtts.pointType = PseudocolorAtts.Point  # Box, Axis, Icosahedron, Octahedron, Tetrahedron, SphereGeometry, Point, Sphere
    +PseudocolorAtts.pointSizeVarEnabled = 0
    +PseudocolorAtts.pointSizeVar = "default"
    +PseudocolorAtts.pointSizePixels = 2
    +PseudocolorAtts.lineType = PseudocolorAtts.Line  # Line, Tube, Ribbon
    +PseudocolorAtts.lineWidth = 0
    +PseudocolorAtts.tubeResolution = 10
    +PseudocolorAtts.tubeRadiusSizeType = PseudocolorAtts.FractionOfBBox  # Absolute, FractionOfBBox
    +PseudocolorAtts.tubeRadiusAbsolute = 0.4
    +PseudocolorAtts.tubeRadiusBBox = 0.02
    +PseudocolorAtts.tubeRadiusVarEnabled = 0
    +PseudocolorAtts.tubeRadiusVar = ""
    +PseudocolorAtts.tubeRadiusVarRatio = 10
    +PseudocolorAtts.tailStyle = PseudocolorAtts.NONE  # None, Spheres, Cones
    +PseudocolorAtts.headStyle = PseudocolorAtts.Cones  # None, Spheres, Cones
    +PseudocolorAtts.endPointRadiusSizeType = PseudocolorAtts.Absolute  # Absolute, FractionOfBBox
    +PseudocolorAtts.endPointRadiusAbsolute = 0.8
    +PseudocolorAtts.endPointRadiusBBox = 0.04
    +PseudocolorAtts.endPointResolution = 10
    +PseudocolorAtts.endPointRatio = 2
    +PseudocolorAtts.endPointRadiusVarEnabled = 0
    +PseudocolorAtts.endPointRadiusVar = ""
    +PseudocolorAtts.endPointRadiusVarRatio = 10
    +PseudocolorAtts.renderSurfaces = 1
    +PseudocolorAtts.renderWireframe = 0
    +PseudocolorAtts.renderPoints = 0
    +PseudocolorAtts.smoothingLevel = 0
    +PseudocolorAtts.legendFlag = 1
    +PseudocolorAtts.lightingFlag = 1
    +PseudocolorAtts.wireframeColor = (0, 0, 0, 0)
    +PseudocolorAtts.pointColor = (0, 0, 0, 0)
    +SetPlotOptions(PseudocolorAtts)
    +
    +IntegralCurveAtts = IntegralCurveAttributes()
    +IntegralCurveAtts.sourceType = IntegralCurveAtts.SpecifiedPoint  # SpecifiedPoint, PointList, SpecifiedLine, Circle, SpecifiedPlane, SpecifiedSphere, SpecifiedBox, Selection, FieldData
    +IntegralCurveAtts.pointSource = (0, 0, 0)
    +IntegralCurveAtts.lineStart = (0, 0, 0)
    +IntegralCurveAtts.lineEnd = (1, 0, 0)
    +IntegralCurveAtts.planeOrigin = (0, 0, 0)
    +IntegralCurveAtts.planeNormal = (0, 0, 1)
    +IntegralCurveAtts.planeUpAxis = (0, 1, 0)
    +IntegralCurveAtts.radius = 1
    +IntegralCurveAtts.sphereOrigin = (0, 0, 0)
    +IntegralCurveAtts.boxExtents = (0, 1, 0, 1, 0, 1)
    +IntegralCurveAtts.useWholeBox = 1
    +IntegralCurveAtts.pointList = (0, 0, 0, 1, 0, 0, 0, 1, 0)
    +IntegralCurveAtts.fieldData = ()
    +IntegralCurveAtts.sampleDensity0 = 2
    +IntegralCurveAtts.sampleDensity1 = 2
    +IntegralCurveAtts.sampleDensity2 = 2
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.TimeAbsolute  # Solid, SeedPointID, Speed, Vorticity, ArcLength, TimeAbsolute, TimeRelative, AverageDistanceFromSeed, CorrelationDistance, Difference, Variable
    +IntegralCurveAtts.dataVariable = ""
    +IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Forward  # Forward, Backward, Both, ForwardDirectionless, BackwardDirectionless, BothDirectionless
    +IntegralCurveAtts.maxSteps = 1000
    +IntegralCurveAtts.terminateByDistance = 0
    +IntegralCurveAtts.termDistance = 10
    +IntegralCurveAtts.terminateByTime = 0
    +IntegralCurveAtts.termTime = 10
    +IntegralCurveAtts.maxStepLength = 0.1
    +IntegralCurveAtts.limitMaximumTimestep = 0
    +IntegralCurveAtts.maxTimeStep = 0.1
    +IntegralCurveAtts.relTol = 0.0001
    +IntegralCurveAtts.absTolSizeType = IntegralCurveAtts.FractionOfBBox  # Absolute, FractionOfBBox
    +IntegralCurveAtts.absTolAbsolute = 1e-06
    +IntegralCurveAtts.absTolBBox = 1e-06
    +IntegralCurveAtts.fieldType = IntegralCurveAtts.Default  # Default, FlashField, M3DC12DField, M3DC13DField, Nek5000Field, NektarPPField
    +IntegralCurveAtts.fieldConstant = 1
    +IntegralCurveAtts.velocitySource = (0, 0, 0)
    +IntegralCurveAtts.integrationType = IntegralCurveAtts.AdamsBashforth  # Euler, Leapfrog, DormandPrince, AdamsBashforth, RK4, M3DC12DIntegrator
    +IntegralCurveAtts.parallelizationAlgorithmType = IntegralCurveAtts.VisItSelects  # LoadOnDemand, ParallelStaticDomains, ManagerWorker, VisItSelects
    +IntegralCurveAtts.maxProcessCount = 10
    +IntegralCurveAtts.maxDomainCacheSize = 3
    +IntegralCurveAtts.workGroupSize = 32
    +IntegralCurveAtts.pathlines = 0
    +IntegralCurveAtts.pathlinesOverrideStartingTimeFlag = 0
    +IntegralCurveAtts.pathlinesOverrideStartingTime = 0
    +IntegralCurveAtts.pathlinesPeriod = 0
    +IntegralCurveAtts.pathlinesCMFE = IntegralCurveAtts.POS_CMFE  # CONN_CMFE, POS_CMFE
    +IntegralCurveAtts.displayGeometry = IntegralCurveAtts.Lines  # Lines, Tubes, Ribbons
    +IntegralCurveAtts.cropBeginFlag = 0
    +IntegralCurveAtts.cropBegin = 0
    +IntegralCurveAtts.cropEndFlag = 0
    +IntegralCurveAtts.cropEnd = 0
    +IntegralCurveAtts.cropValue = IntegralCurveAtts.Time  # Distance, Time, StepNumber
    +IntegralCurveAtts.sampleDistance0 = 10
    +IntegralCurveAtts.sampleDistance1 = 10
    +IntegralCurveAtts.sampleDistance2 = 10
    +IntegralCurveAtts.fillInterior = 1
    +IntegralCurveAtts.randomSamples = 0
    +IntegralCurveAtts.randomSeed = 0
    +IntegralCurveAtts.numberOfRandomSamples = 1
    +IntegralCurveAtts.issueAdvectionWarnings = 0
    +IntegralCurveAtts.issueBoundaryWarnings = 0
    +IntegralCurveAtts.issueTerminationWarnings = 0
    +IntegralCurveAtts.issueStepsizeWarnings = 0
    +IntegralCurveAtts.issueStiffnessWarnings = 0
    +IntegralCurveAtts.issueCriticalPointsWarnings = 0
    +IntegralCurveAtts.criticalPointThreshold = 0.001
    +IntegralCurveAtts.correlationDistanceAngTol = 5
    +IntegralCurveAtts.correlationDistanceMinDistAbsolute = 1
    +IntegralCurveAtts.correlationDistanceMinDistBBox = 0.005
    +IntegralCurveAtts.correlationDistanceMinDistType = IntegralCurveAtts.FractionOfBBox  # Absolute, FractionOfBBox
    +IntegralCurveAtts.selection = ""
    +
    +IntegralCurveAtts.cropEndFlag  = 1
    +IntegralCurveAtts.cropEnd = 2
    +SetOperatorOptions(IntegralCurveAtts)
    +DrawPlots()
    +Test( "ic_geometry_crop_1")
    +
    +IntegralCurveAtts.cropEnd = 5
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_geometry_crop_2")
    +
    +IntegralCurveAtts.cropBeginFlag  = 1
    +IntegralCurveAtts.cropBegin = 2
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_geometry_crop_3")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_integration.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_integration.html new file mode 100644 index 000000000..ce3e9fb70 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_integration.html @@ -0,0 +1,102 @@ + +Results for operators/ic_integration.py + +

    Results of VisIt Regression Test - operators/ic_integration

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ic_integration_010.000.00
    ic_integration_020.000.00
    ic_integration_030.000.00
    ic_integration_040.000.00
    ic_integration_050.000.00
    ic_integration_060.000.00
    ic_integration_070.000.00
    ic_integration_080.000.00
    ic_integration_090.000.00
    ic_integration_100.000.00
    ic_integration_110.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_integration_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_integration_py.html new file mode 100644 index 000000000..b909843c4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_integration_py.html @@ -0,0 +1,115 @@ +operators/ic_integration.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ic_integration.py
    +#
    +#  Tests:      operator      - integralcurve
    +#
    +#  Defect ID:  -
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       March 10, 2016
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Tue Sep 29 11:01:37 PDT 2020
    +#    Turn off IC warnings.
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +AddPlot("Pseudocolor", "operators/IntegralCurve/grad", 1, 0)
    +
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.270729, 0.624198, 0.732859)
    +View3DAtts.focus = (0.496062, 0.99603, 0.496062)
    +View3DAtts.viewUp = (-0.0922782, 0.774611, -0.62567)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 12.1829
    +View3DAtts.nearPlane = -24.3658
    +View3DAtts.farPlane = 24.3658
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +SetView3D(View3DAtts)
    +
    +IntegralCurveAtts = IntegralCurveAttributes()
    +IntegralCurveAtts.sourceType = IntegralCurveAtts.SpecifiedPlane  # SpecifiedPoint, SpecifiedPointList, SpecifiedLine, SpecifiedCircle, SpecifiedPlane, SpecifiedSphere, SpecifiedBox
    +IntegralCurveAtts.limitMaximumTimestep = 1
    +IntegralCurveAtts.maxTimeStep = 0.02
    +IntegralCurveAtts.terminateByTime = 1
    +IntegralCurveAtts.termTime = 200
    +IntegralCurveAtts.maxSteps = 100000
    +IntegralCurveAtts.planeOrigin = (0.5, 1, 0.5)
    +IntegralCurveAtts.planeNormal = (0, 1, 0)
    +IntegralCurveAtts.planeUpAxis = (1, 0, 0)
    +IntegralCurveAtts.sampleDensity0 = 5
    +IntegralCurveAtts.sampleDensity1 = 5
    +IntegralCurveAtts.sampleDistance0 = 18
    +IntegralCurveAtts.sampleDistance1 = 18
    +IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Both  # Forward, Backward, Both
    +IntegralCurveAtts.relTol = 1e-06
    +IntegralCurveAtts.absTolSizeType = IntegralCurveAtts.Absolute
    +IntegralCurveAtts.absTolAbsolute = 1e-07
    +IntegralCurveAtts.integrationType = IntegralCurveAtts.DormandPrince  # DormandPrince, AdamsBashforth, M3DC1Integrator
    +IntegralCurveAtts.maxProcessCount = 10
    +IntegralCurveAtts.maxDomainCacheSize = 3
    +IntegralCurveAtts.workGroupSize = 32
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.TimeAbsolute
    +# turn off warnings
    +IntegralCurveAtts.issueAdvectionWarnings = 0
    +IntegralCurveAtts.issueBoundaryWarnings = 0
    +IntegralCurveAtts.issueTerminationWarnings = 0
    +IntegralCurveAtts.issueStepsizeWarnings = 0
    +IntegralCurveAtts.issueStiffnessWarnings = 0
    +IntegralCurveAtts.issueCriticalPointsWarnings = 0
    +
    +
    +# test defaults
    +SetOperatorOptions(IntegralCurveAtts)
    +DrawPlots()
    +Test( "ic_integration_01" )
    +
    +IntegralCurveAtts.maxTimeStep = 0.05
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_02" )
    +
    +IntegralCurveAtts.limitMaximumTimestep = 0
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_03" )
    +
    +IntegralCurveAtts.absTolAbsolute = 1e-03
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_04" )
    +
    +IntegralCurveAtts.absTolSizeType = IntegralCurveAtts.FractionOfBBox
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_05" )
    +
    +IntegralCurveAtts.absTolBBox = 1e-09
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_06" )
    +
    +IntegralCurveAtts.absTolBBox = 1e-04
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_07" )
    +
    +IntegralCurveAtts.integrationType = IntegralCurveAtts.AdamsBashforth
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_08" )
    +
    +IntegralCurveAtts.maxStepLength = 0.2
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_09" )
    +
    +IntegralCurveAtts.maxStepLength = 1.0
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_10" )
    +
    +IntegralCurveAtts.maxStepLength = 0.01
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_11" )
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_pathlines.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_pathlines.html new file mode 100644 index 000000000..116e23e45 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_pathlines.html @@ -0,0 +1,86 @@ + +Results for operators/ic_pathlines.py + +

    Results of VisIt Regression Test - operators/ic_pathlines

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ic_pathlines_010.000.00
    ic_pathlines_020.000.00
    ic_pathlines_030 modifications totalling 0 lines
    ic_pathlines_040.000.00
    ic_pathlines_050.000.00
    ic_pathlines_060.000.00
    ic_pathlines_070.000.00
    ic_pathlines_080.000.00
    ic_pathlines_090 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_pathlines_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_pathlines_py.html new file mode 100644 index 000000000..0ac2745f2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_pathlines_py.html @@ -0,0 +1,160 @@ +operators/ic_pathlines.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ic_pathlines.py
    +#
    +#  Tests:      operator      - integralcurve
    +#
    +#  Defect ID:  -
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       March 10, 2016
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Thu Sep 17 11:35:47 PDT 2020
    +#    Turn off IC warnings. Set larger linewidth so for better images.
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("PICS_Tester")
    +
    +OpenDatabase(data_path("pics_test_data/pathline_test.pics"))
    +AddPlot("Pseudocolor", "operators/IntegralCurve/velocity", 1, 0)
    +pcAtts = PseudocolorAttributes();
    +pcAtts.lineWidth = 3
    +SetPlotOptions(pcAtts)
    +
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.270729, 0.624198, 0.732859)
    +View3DAtts.focus = (0.496062, 0.99603, 0.496062)
    +View3DAtts.viewUp = (-0.0922782, 0.774611, -0.62567)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 12.1829
    +View3DAtts.nearPlane = -24.3658
    +View3DAtts.farPlane = 24.3658
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +SetView3D(View3DAtts)
    +
    +IntegralCurveAtts = IntegralCurveAttributes()
    +IntegralCurveAtts.sourceType = IntegralCurveAtts.SpecifiedPoint
    +IntegralCurveAtts.pointSource = (0.5, 0.1, 0.1)
    +IntegralCurveAtts.lineStart = (0, 0, 0)
    +IntegralCurveAtts.lineEnd = (1, 0, 0)
    +IntegralCurveAtts.planeOrigin = (0, 0, 0)
    +IntegralCurveAtts.planeNormal = (0, 0, 1)
    +IntegralCurveAtts.planeUpAxis = (0, 1, 0)
    +IntegralCurveAtts.radius = 1
    +IntegralCurveAtts.sphereOrigin = (0, 0, 0)
    +IntegralCurveAtts.boxExtents = (0, 1, 0, 1, 0, 1)
    +IntegralCurveAtts.useWholeBox = 1
    +IntegralCurveAtts.pointList = (0, 0, 0, 1, 0, 0, 0, 1, 0)
    +IntegralCurveAtts.fieldData = ()
    +IntegralCurveAtts.sampleDensity0 = 2
    +IntegralCurveAtts.sampleDensity1 = 2
    +IntegralCurveAtts.sampleDensity2 = 2
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.TimeAbsolute
    +IntegralCurveAtts.dataVariable = ""
    +IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Forward
    +IntegralCurveAtts.maxSteps = 1000
    +IntegralCurveAtts.terminateByDistance = 0
    +IntegralCurveAtts.termDistance = 10
    +IntegralCurveAtts.terminateByTime = 0
    +IntegralCurveAtts.termTime = 10
    +IntegralCurveAtts.maxStepLength = 0.01
    +IntegralCurveAtts.limitMaximumTimestep = 0
    +IntegralCurveAtts.maxTimeStep = 0.1
    +IntegralCurveAtts.relTol = 0.0001
    +IntegralCurveAtts.absTolSizeType = IntegralCurveAtts.FractionOfBBox
    +IntegralCurveAtts.absTolAbsolute = 1e-06
    +IntegralCurveAtts.absTolBBox = 1e-06
    +IntegralCurveAtts.fieldType = IntegralCurveAtts.Default
    +IntegralCurveAtts.fieldConstant = 1
    +IntegralCurveAtts.velocitySource = (0, 0, 0)
    +IntegralCurveAtts.integrationType = IntegralCurveAtts.Euler
    +IntegralCurveAtts.parallelizationAlgorithmType = IntegralCurveAtts.VisItSelects
    +IntegralCurveAtts.maxProcessCount = 10
    +IntegralCurveAtts.maxDomainCacheSize = 3
    +IntegralCurveAtts.workGroupSize = 32
    +IntegralCurveAtts.pathlines = 1
    +IntegralCurveAtts.pathlinesOverrideStartingTimeFlag = 0
    +IntegralCurveAtts.pathlinesOverrideStartingTime = 0
    +IntegralCurveAtts.pathlinesPeriod = 0
    +IntegralCurveAtts.pathlinesCMFE = IntegralCurveAtts.CONN_CMFE
    +IntegralCurveAtts.displayGeometry = IntegralCurveAtts.Lines
    +IntegralCurveAtts.cropBeginFlag = 0
    +IntegralCurveAtts.cropBegin = 0
    +IntegralCurveAtts.cropEndFlag = 0
    +IntegralCurveAtts.cropEnd = 0
    +IntegralCurveAtts.cropValue = IntegralCurveAtts.Time
    +IntegralCurveAtts.sampleDistance0 = 10
    +IntegralCurveAtts.sampleDistance1 = 10
    +IntegralCurveAtts.sampleDistance2 = 10
    +IntegralCurveAtts.fillInterior = 1
    +IntegralCurveAtts.randomSamples = 0
    +IntegralCurveAtts.randomSeed = 0
    +IntegralCurveAtts.numberOfRandomSamples = 1
    +IntegralCurveAtts.issueAdvectionWarnings = 1
    +IntegralCurveAtts.issueBoundaryWarnings = 1
    +IntegralCurveAtts.issueTerminationWarnings = 1
    +IntegralCurveAtts.issueStepsizeWarnings = 1
    +IntegralCurveAtts.issueStiffnessWarnings = 1
    +IntegralCurveAtts.issueCriticalPointsWarnings = 1
    +IntegralCurveAtts.criticalPointThreshold = 0.001
    +IntegralCurveAtts.correlationDistanceAngTol = 5
    +IntegralCurveAtts.correlationDistanceMinDistAbsolute = 1
    +IntegralCurveAtts.correlationDistanceMinDistBBox = 0.005
    +IntegralCurveAtts.correlationDistanceMinDistType = IntegralCurveAtts.FractionOfBBox
    +IntegralCurveAtts.selection = ""
    +IntegralCurveAtts.issueAdvectionWarnings = 0
    +IntegralCurveAtts.issueBoundaryWarnings = 0
    +IntegralCurveAtts.issueTerminationWarnings = 0
    +IntegralCurveAtts.issueStepsizeWarnings = 0
    +IntegralCurveAtts.issueStiffnessWarnings = 0
    +IntegralCurveAtts.issueCriticalPointsWarnings = 0
    +
    +SetOperatorOptions(IntegralCurveAtts, 0)
    +DrawPlots()
    +Test("ic_pathlines_01")
    +
    +IntegralCurveAtts.terminateByTime = 1
    +IntegralCurveAtts.termTime = 3
    +SetOperatorOptions(IntegralCurveAtts)
    +Test("ic_pathlines_02")
    +
    +TimeSliderSetState(6)
    +e = GetLastError()
    +TestText("ic_pathlines_03", e)
    +
    +IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Backward
    +SetOperatorOptions(IntegralCurveAtts)
    +DrawPlots()
    +Test("ic_pathlines_04")
    +
    +IntegralCurveAtts.terminateByTime = 0
    +SetOperatorOptions(IntegralCurveAtts)
    +Test("ic_pathlines_05")
    +
    +IntegralCurveAtts.pathlinesOverrideStartingTimeFlag = 1
    +IntegralCurveAtts.pathlinesOverrideStartingTime = 3.5
    +SetOperatorOptions(IntegralCurveAtts)
    +Test("ic_pathlines_06")
    +
    +TimeSliderSetState(0)
    +IntegralCurveAtts.pathlinesCMFE = IntegralCurveAtts.POS_CMFE
    +SetOperatorOptions(IntegralCurveAtts)
    +Test("ic_pathlines_07")
    +
    +IntegralCurveAtts.pathlinesCMFE = IntegralCurveAtts.POS_CMFE
    +SetOperatorOptions(IntegralCurveAtts)
    +Test("ic_pathlines_08")
    +
    +IntegralCurveAtts.pathlinesOverrideStartingTimeFlag = 0
    +SetOperatorOptions(IntegralCurveAtts)
    +e = GetLastError()
    +TestText("ic_pathlines_09", e)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_pics.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_pics.html new file mode 100644 index 000000000..0130cc180 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_pics.html @@ -0,0 +1,1392 @@ + +Results for operators/ic_pics.py + +

    Results of VisIt Regression Test - operators/ic_pics

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    MB_2D_rect
    Varying time type with parallelization algorithm = POS
    Varying integrator = Euler (0)
    ic_pics_MB_2D_rect_POS_Euler_path_forward0.000.00
    ic_pics_MB_2D_rect_POS_Euler_path_backward0.000.00
    ic_pics_MB_2D_rect_POS_Euler_stream_forward0.000.00
    ic_pics_MB_2D_rect_POS_Euler_stream_backward0.000.00
    ic_pics_MB_2D_rect_POS_Euler_stream_both0.000.00
    Varying integrator = Leapfrog (1)
    ic_pics_MB_2D_rect_POS_Leapfrog_path_forward0.000.00
    ic_pics_MB_2D_rect_POS_Leapfrog_path_backward0.000.00
    ic_pics_MB_2D_rect_POS_Leapfrog_stream_forward0.000.00
    ic_pics_MB_2D_rect_POS_Leapfrog_stream_backward0.000.00
    ic_pics_MB_2D_rect_POS_Leapfrog_stream_both0.000.00
    Varying integrator = DormandPrince (2)
    ic_pics_MB_2D_rect_POS_DormandPrince_path_forward0.000.00
    ic_pics_MB_2D_rect_POS_DormandPrince_path_backward0.000.00
    ic_pics_MB_2D_rect_POS_DormandPrince_stream_forward0.000.00
    ic_pics_MB_2D_rect_POS_DormandPrince_stream_backward0.000.00
    ic_pics_MB_2D_rect_POS_DormandPrince_stream_both0.000.00
    Varying integrator = AdamsBashforth (3)
    ic_pics_MB_2D_rect_POS_AdamsBashforth_path_forward0.000.00
    ic_pics_MB_2D_rect_POS_AdamsBashforth_path_backward0.000.00
    ic_pics_MB_2D_rect_POS_AdamsBashforth_stream_forward0.000.00
    ic_pics_MB_2D_rect_POS_AdamsBashforth_stream_backward0.000.00
    ic_pics_MB_2D_rect_POS_AdamsBashforth_stream_both0.000.00
    Varying integrator = RK4 (4)
    ic_pics_MB_2D_rect_POS_RK4_path_forward0.000.00
    ic_pics_MB_2D_rect_POS_RK4_path_backward0.000.00
    ic_pics_MB_2D_rect_POS_RK4_stream_forward0.000.00
    ic_pics_MB_2D_rect_POS_RK4_stream_backward0.000.00
    ic_pics_MB_2D_rect_POS_RK4_stream_both0.000.00
    Varying time type with parallelization algorithm = POD
    Varying integrator = Euler (0)
    ic_pics_MB_2D_rect_POD_Euler_path_forward0.000.00
    ic_pics_MB_2D_rect_POD_Euler_path_backward0.000.00
    ic_pics_MB_2D_rect_POD_Euler_stream_forward0.000.00
    ic_pics_MB_2D_rect_POD_Euler_stream_backward0.000.00
    ic_pics_MB_2D_rect_POD_Euler_stream_both0.000.00
    Varying integrator = Leapfrog (1)
    ic_pics_MB_2D_rect_POD_Leapfrog_path_forward0.000.00
    ic_pics_MB_2D_rect_POD_Leapfrog_path_backward0.000.00
    ic_pics_MB_2D_rect_POD_Leapfrog_stream_forward0.000.00
    ic_pics_MB_2D_rect_POD_Leapfrog_stream_backward0.000.00
    ic_pics_MB_2D_rect_POD_Leapfrog_stream_both0.000.00
    Varying integrator = DormandPrince (2)
    ic_pics_MB_2D_rect_POD_DormandPrince_path_forward0.000.00
    ic_pics_MB_2D_rect_POD_DormandPrince_path_backward0.000.00
    ic_pics_MB_2D_rect_POD_DormandPrince_stream_forward0.000.00
    ic_pics_MB_2D_rect_POD_DormandPrince_stream_backward0.000.00
    ic_pics_MB_2D_rect_POD_DormandPrince_stream_both0.000.00
    Varying integrator = AdamsBashforth (3)
    ic_pics_MB_2D_rect_POD_AdamsBashforth_path_forward0.000.00
    ic_pics_MB_2D_rect_POD_AdamsBashforth_path_backward0.000.00
    ic_pics_MB_2D_rect_POD_AdamsBashforth_stream_forward0.000.00
    ic_pics_MB_2D_rect_POD_AdamsBashforth_stream_backward0.000.00
    ic_pics_MB_2D_rect_POD_AdamsBashforth_stream_both0.000.00
    Varying integrator = RK4 (4)
    ic_pics_MB_2D_rect_POD_RK4_path_forward0.000.00
    ic_pics_MB_2D_rect_POD_RK4_path_backward0.000.00
    ic_pics_MB_2D_rect_POD_RK4_stream_forward0.000.00
    ic_pics_MB_2D_rect_POD_RK4_stream_backward0.000.00
    ic_pics_MB_2D_rect_POD_RK4_stream_both0.000.00
    MB_2D_ugrid
    Varying time type with parallelization algorithm = POS
    Varying integrator = Euler (0)
    ic_pics_MB_2D_ugrid_POS_Euler_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_Euler_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_Euler_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_Euler_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_Euler_stream_both0.000.00
    Varying integrator = Leapfrog (1)
    ic_pics_MB_2D_ugrid_POS_Leapfrog_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_Leapfrog_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_Leapfrog_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_Leapfrog_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_Leapfrog_stream_both0.000.00
    Varying integrator = DormandPrince (2)
    ic_pics_MB_2D_ugrid_POS_DormandPrince_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_DormandPrince_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_DormandPrince_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_DormandPrince_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_DormandPrince_stream_both0.000.00
    Varying integrator = AdamsBashforth (3)
    ic_pics_MB_2D_ugrid_POS_AdamsBashforth_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_AdamsBashforth_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_AdamsBashforth_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_AdamsBashforth_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_AdamsBashforth_stream_both0.000.00
    Varying integrator = RK4 (4)
    ic_pics_MB_2D_ugrid_POS_RK4_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_RK4_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_RK4_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_RK4_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_RK4_stream_both0.000.00
    Varying time type with parallelization algorithm = POD
    Varying integrator = Euler (0)
    ic_pics_MB_2D_ugrid_POD_Euler_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_Euler_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_Euler_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_Euler_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_Euler_stream_both0.000.00
    Varying integrator = Leapfrog (1)
    ic_pics_MB_2D_ugrid_POD_Leapfrog_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_Leapfrog_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_Leapfrog_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_Leapfrog_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_Leapfrog_stream_both0.000.00
    Varying integrator = DormandPrince (2)
    ic_pics_MB_2D_ugrid_POD_DormandPrince_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_DormandPrince_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_DormandPrince_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_DormandPrince_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_DormandPrince_stream_both0.000.00
    Varying integrator = AdamsBashforth (3)
    ic_pics_MB_2D_ugrid_POD_AdamsBashforth_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_AdamsBashforth_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_AdamsBashforth_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_AdamsBashforth_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_AdamsBashforth_stream_both0.000.00
    Varying integrator = RK4 (4)
    ic_pics_MB_2D_ugrid_POD_RK4_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_RK4_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_RK4_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_RK4_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_RK4_stream_both0.000.00
    MB_3D_rect
    Varying time type with parallelization algorithm = POS
    Varying integrator = Euler (0)
    ic_pics_MB_3D_rect_POS_Euler_path_forward0.000.00
    ic_pics_MB_3D_rect_POS_Euler_path_backward0.000.00
    ic_pics_MB_3D_rect_POS_Euler_stream_forward0.000.00
    ic_pics_MB_3D_rect_POS_Euler_stream_backward0.000.00
    ic_pics_MB_3D_rect_POS_Euler_stream_both0.000.00
    Varying integrator = Leapfrog (1)
    ic_pics_MB_3D_rect_POS_Leapfrog_path_forward0.000.00
    ic_pics_MB_3D_rect_POS_Leapfrog_path_backward0.000.00
    ic_pics_MB_3D_rect_POS_Leapfrog_stream_forward0.000.00
    ic_pics_MB_3D_rect_POS_Leapfrog_stream_backward0.000.00
    ic_pics_MB_3D_rect_POS_Leapfrog_stream_both0.000.00
    Varying integrator = DormandPrince (2)
    ic_pics_MB_3D_rect_POS_DormandPrince_path_forward0.000.00
    ic_pics_MB_3D_rect_POS_DormandPrince_path_backward0.000.00
    ic_pics_MB_3D_rect_POS_DormandPrince_stream_forward0.000.00
    ic_pics_MB_3D_rect_POS_DormandPrince_stream_backward0.000.00
    ic_pics_MB_3D_rect_POS_DormandPrince_stream_both0.000.00
    Varying integrator = AdamsBashforth (3)
    ic_pics_MB_3D_rect_POS_AdamsBashforth_path_forward0.000.00
    ic_pics_MB_3D_rect_POS_AdamsBashforth_path_backward0.000.00
    ic_pics_MB_3D_rect_POS_AdamsBashforth_stream_forward0.000.00
    ic_pics_MB_3D_rect_POS_AdamsBashforth_stream_backward0.000.00
    ic_pics_MB_3D_rect_POS_AdamsBashforth_stream_both0.000.00
    Varying integrator = RK4 (4)
    ic_pics_MB_3D_rect_POS_RK4_path_forward0.000.00
    ic_pics_MB_3D_rect_POS_RK4_path_backward0.000.00
    ic_pics_MB_3D_rect_POS_RK4_stream_forward0.000.00
    ic_pics_MB_3D_rect_POS_RK4_stream_backward0.000.00
    ic_pics_MB_3D_rect_POS_RK4_stream_both0.000.00
    Varying time type with parallelization algorithm = POD
    Varying integrator = Euler (0)
    ic_pics_MB_3D_rect_POD_Euler_path_forward0.000.00
    ic_pics_MB_3D_rect_POD_Euler_path_backward0.000.00
    ic_pics_MB_3D_rect_POD_Euler_stream_forward0.000.00
    ic_pics_MB_3D_rect_POD_Euler_stream_backward0.000.00
    ic_pics_MB_3D_rect_POD_Euler_stream_both0.000.00
    Varying integrator = Leapfrog (1)
    ic_pics_MB_3D_rect_POD_Leapfrog_path_forward0.000.00
    ic_pics_MB_3D_rect_POD_Leapfrog_path_backward0.000.00
    ic_pics_MB_3D_rect_POD_Leapfrog_stream_forward0.000.00
    ic_pics_MB_3D_rect_POD_Leapfrog_stream_backward0.000.00
    ic_pics_MB_3D_rect_POD_Leapfrog_stream_both0.000.00
    Varying integrator = DormandPrince (2)
    ic_pics_MB_3D_rect_POD_DormandPrince_path_forward0.000.00
    ic_pics_MB_3D_rect_POD_DormandPrince_path_backward0.000.00
    ic_pics_MB_3D_rect_POD_DormandPrince_stream_forward0.000.00
    ic_pics_MB_3D_rect_POD_DormandPrince_stream_backward0.000.00
    ic_pics_MB_3D_rect_POD_DormandPrince_stream_both0.000.00
    Varying integrator = AdamsBashforth (3)
    ic_pics_MB_3D_rect_POD_AdamsBashforth_path_forward0.000.00
    ic_pics_MB_3D_rect_POD_AdamsBashforth_path_backward0.000.00
    ic_pics_MB_3D_rect_POD_AdamsBashforth_stream_forward0.000.00
    ic_pics_MB_3D_rect_POD_AdamsBashforth_stream_backward0.000.00
    ic_pics_MB_3D_rect_POD_AdamsBashforth_stream_both0.000.00
    Varying integrator = RK4 (4)
    ic_pics_MB_3D_rect_POD_RK4_path_forward0.000.00
    ic_pics_MB_3D_rect_POD_RK4_path_backward0.000.00
    ic_pics_MB_3D_rect_POD_RK4_stream_forward0.000.00
    ic_pics_MB_3D_rect_POD_RK4_stream_backward0.000.00
    ic_pics_MB_3D_rect_POD_RK4_stream_both0.000.00
    MB_3D_ugrid
    Varying time type with parallelization algorithm = POS
    Varying integrator = Euler (0)
    ic_pics_MB_3D_ugrid_POS_Euler_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_Euler_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_Euler_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_Euler_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_Euler_stream_both0.000.00
    Varying integrator = Leapfrog (1)
    ic_pics_MB_3D_ugrid_POS_Leapfrog_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_Leapfrog_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_Leapfrog_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_Leapfrog_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_Leapfrog_stream_both0.000.00
    Varying integrator = DormandPrince (2)
    ic_pics_MB_3D_ugrid_POS_DormandPrince_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_DormandPrince_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_DormandPrince_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_DormandPrince_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_DormandPrince_stream_both0.000.00
    Varying integrator = AdamsBashforth (3)
    ic_pics_MB_3D_ugrid_POS_AdamsBashforth_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_AdamsBashforth_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_AdamsBashforth_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_AdamsBashforth_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_AdamsBashforth_stream_both0.000.00
    Varying integrator = RK4 (4)
    ic_pics_MB_3D_ugrid_POS_RK4_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_RK4_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_RK4_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_RK4_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_RK4_stream_both0.000.00
    Varying time type with parallelization algorithm = POD
    Varying integrator = Euler (0)
    ic_pics_MB_3D_ugrid_POD_Euler_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_Euler_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_Euler_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_Euler_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_Euler_stream_both0.000.00
    Varying integrator = Leapfrog (1)
    ic_pics_MB_3D_ugrid_POD_Leapfrog_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_Leapfrog_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_Leapfrog_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_Leapfrog_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_Leapfrog_stream_both0.000.00
    Varying integrator = DormandPrince (2)
    ic_pics_MB_3D_ugrid_POD_DormandPrince_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_DormandPrince_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_DormandPrince_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_DormandPrince_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_DormandPrince_stream_both0.000.00
    Varying integrator = AdamsBashforth (3)
    ic_pics_MB_3D_ugrid_POD_AdamsBashforth_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_AdamsBashforth_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_AdamsBashforth_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_AdamsBashforth_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_AdamsBashforth_stream_both0.000.00
    Varying integrator = RK4 (4)
    ic_pics_MB_3D_ugrid_POD_RK4_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_RK4_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_RK4_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_RK4_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_RK4_stream_both0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_pics_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_pics_py.html new file mode 100644 index 000000000..d346e677b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_pics_py.html @@ -0,0 +1,114 @@ +operators/ic_pics.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ic_pics.py
    +#
    +#  Tests:      operator      - integralcurve
    +#
    +#  Defect ID:  -
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       March 10, 2016
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Thu Sep 17 11:35:47 PDT 2020
    +#    Turn off IC warnings. Set larger linewidth so for better images.
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("PICS_Tester")
    +
    +IntegralCurveAtts = IntegralCurveAttributes()
    +databases=["MB_2D_rect", "MB_2D_ugrid", "MB_3D_rect", "MB_3D_ugrid"]
    +is2D=[1,1,0,0]
    +isUgrid=[0,1,0,1]
    +algs=[IntegralCurveAtts.LoadOnDemand, IntegralCurveAtts.ParallelStaticDomains]
    +algs_strings=["POS", "POD", "MS", "BestAlg"]
    +time_strings=["path_forward", "path_backward", "stream_forward", "stream_backward", "stream_both"]
    +intg=[IntegralCurveAtts.Euler, IntegralCurveAtts.Leapfrog, IntegralCurveAtts.DormandPrince, IntegralCurveAtts.AdamsBashforth, IntegralCurveAtts.RK4]
    +intg_strings=["Euler", "Leapfrog", "DormandPrince", "AdamsBashforth", "RK4"]
    +
    +View3DAtts = View3DAttributes()
    +View3DAttIntegralCurveAttsviewNormal = (0.270729, 0.624198, 0.732859)
    +View3DAttIntegralCurveAttsfocus = (0.496062, 0.99603, 0.496062)
    +View3DAttIntegralCurveAttsviewUp = (-0.0922782, 0.774611, -0.62567)
    +View3DAttIntegralCurveAttsviewAngle = 30
    +View3DAttIntegralCurveAttsparallelScale = 12.1829
    +View3DAttIntegralCurveAttsnearPlane = -24.3658
    +View3DAttIntegralCurveAttsfarPlane = 24.3658
    +View3DAttIntegralCurveAttsimagePan = (0, 0)
    +View3DAttIntegralCurveAttsimageZoom = 1
    +View3DAttIntegralCurveAttsperspective = 1
    +View3DAttIntegralCurveAttseyeAngle = 2
    +View3DAttIntegralCurveAttsaxis3DScaleFlag = 0
    +View3DAttIntegralCurveAttsaxis3DScales = (1, 1, 1)
    +SetView3D(View3DAtts)
    +
    +for i in range(len(databases)):
    +  TestSection(databases[i])
    +  db=data_path("pics_test_data/%s.pics") %(databases[i])
    +  for j in range(len(algs)):
    +     tmpstr="Varying time type with parallelization algorithm = %s" %(algs_strings[j])
    +     TestSection(tmpstr)
    +
    +     for integrator_i in range(len(intg)) :
    +       tmpstr="Varying integrator = %s (%d)" %(intg_strings[integrator_i], integrator_i)
    +       TestSection(tmpstr)
    +
    +       for k in range(len(time_strings)):
    +         DeleteAllPlots()
    +         OpenDatabase(db)
    +         AddPlot("Pseudocolor", "operators/IntegralCurve/velocity", 1, 0)
    +         pcAtts = PseudocolorAttributes();
    +         pcAtts.lineWidth = 3
    +         SetPlotOptions(pcAtts)
    +         IntegralCurveAtts = IntegralCurveAttributes()
    +         IntegralCurveAtts.parallelizationAlgorithmType = algs[j]
    +         IntegralCurveAtts.sourceType = IntegralCurveAtts.SpecifiedPoint
    +         IntegralCurveAtts.issueAdvectionWarnings = 0
    +         IntegralCurveAtts.issueBoundaryWarnings = 0
    +         IntegralCurveAtts.issueTerminationWarnings = 0
    +         IntegralCurveAtts.issueStepsizeWarnings = 0
    +         IntegralCurveAtts.issueStiffnessWarnings = 0
    +         IntegralCurveAtts.issueCriticalPointsWarnings = 0
    +         if (is2D[i]):
    +           if (intg[integrator_i] in [IntegralCurveAtts.RK4, IntegralCurveAtts.DormandPrince, IntegralCurveAtts.AdamsBashforth]) :
    +             IntegralCurveAtts.pointSource = (0.51, 0.1, 0)
    +           else:
    +             IntegralCurveAtts.pointSource = (0.5, 0.1, 0)
    +         else:
    +           if (isUgrid[i]):
    +             IntegralCurveAtts.pointSource = (0.2, 0.6, 0.6)
    +           else:
    +             if (intg[integrator_i] in [IntegralCurveAtts.RK4, IntegralCurveAtts.DormandPrince, IntegralCurveAtts.AdamsBashforth]) :
    +               IntegralCurveAtts.pointSource = (0.51, 0.1, 0.1)
    +             else:
    +               IntegralCurveAtts.pointSource = (0.5, 0.1, 0.1)
    +         if (time_strings[k] == "path_forward"):
    +           TimeSliderSetState(0)
    +           IntegralCurveAtts.pathlines = 1
    +           IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Forward
    +         if (time_strings[k] == "path_backward"):
    +           TimeSliderSetState(TimeSliderGetNStates()-1)
    +           IntegralCurveAtts.pathlines = 1
    +           IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Backward
    +         if (time_strings[k] == "stream_forward"):
    +           TimeSliderSetState(0)
    +           IntegralCurveAtts.pathlines = 0
    +           IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Forward
    +         if (time_strings[k] == "stream_backward"):
    +           TimeSliderSetState(0)
    +           IntegralCurveAtts.pathlines = 0
    +           IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Backward
    +         if (time_strings[k] == "stream_both"):
    +           TimeSliderSetState(0)
    +           IntegralCurveAtts.pathlines = 0
    +           IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Both
    +         IntegralCurveAtts.maxStepLength = 0.01
    +         IntegralCurveAtts.pathlinesCMFE = IntegralCurveAtts.POS_CMFE
    +         IntegralCurveAtts.integrationType = intg[integrator_i]
    +         SetOperatorOptions(IntegralCurveAtts)
    +         DrawPlots()
    +         tmpstr="ic_pics_%s_%s_%s_%s" %(databases[i], algs_strings[j], intg_strings[integrator_i], time_strings[k])
    +         Test(tmpstr)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_streamlines.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_streamlines.html new file mode 100644 index 000000000..eabcabe6f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_streamlines.html @@ -0,0 +1,102 @@ + +Results for operators/ic_streamlines.py + +

    Results of VisIt Regression Test - operators/ic_streamlines

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ic_streamlines_010.000.00
    ic_streamlines_020.000.00
    ic_streamlines_030.000.00
    ic_streamlines_040.000.00
    ic_streamlines_050.000.00
    ic_streamlines_060.000.00
    ic_streamlines_070.000.00
    ic_streamlines_080.000.00
    ic_streamlines_090.000.00
    ic_streamlines_100.000.00
    ic_streamlines_110.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_streamlines_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_streamlines_py.html new file mode 100644 index 000000000..1610cef3c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_streamlines_py.html @@ -0,0 +1,220 @@ +operators/ic_streamlines.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ic_streamlines.py
    +#
    +#  Tests:      operator      - integralcurve
    +#
    +#  Defect ID:  -
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       March 10, 2016
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Tue Sep 29 11:29:33 PDT 2020
    +#    Turn off IC warnings.
    +#
    +#    Eddie Rusu, Tue Apr 13 12:08:59 PDT 2021
    +#    Changed Pseudocolor CurrentPlot to ActualData.
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "operators/IntegralCurve/grad", 1, 0)
    +
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.270729, 0.624198, 0.732859)
    +View3DAtts.focus = (0.496062, 0.99603, 0.496062)
    +View3DAtts.viewUp = (-0.0922782, 0.774611, -0.62567)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 12.1829
    +View3DAtts.nearPlane = -24.3658
    +View3DAtts.farPlane = 24.3658
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +SetView3D(View3DAtts)
    +
    +PseudocolorAtts = PseudocolorAttributes()
    +PseudocolorAtts.scaling = PseudocolorAtts.Linear  # Linear, Log, Skew
    +PseudocolorAtts.skewFactor = 1
    +PseudocolorAtts.limitsMode = PseudocolorAtts.OriginalData  # OriginalData, ActualData
    +PseudocolorAtts.minFlag = 0
    +PseudocolorAtts.min = 0
    +PseudocolorAtts.maxFlag = 0
    +PseudocolorAtts.max = 1
    +PseudocolorAtts.centering = PseudocolorAtts.Natural  # Natural, Nodal, Zonal
    +PseudocolorAtts.colorTableName = "hot"
    +PseudocolorAtts.invertColorTable = 0
    +PseudocolorAtts.opacityType = PseudocolorAtts.FullyOpaque  # ColorTable, FullyOpaque, Constant, Ramp, VariableRange
    +PseudocolorAtts.opacityVariable = ""
    +PseudocolorAtts.opacity = 1
    +PseudocolorAtts.opacityVarMin = 0
    +PseudocolorAtts.opacityVarMax = 1
    +PseudocolorAtts.opacityVarMinFlag = 0
    +PseudocolorAtts.opacityVarMaxFlag = 0
    +PseudocolorAtts.pointSize = 0.05
    +PseudocolorAtts.pointType = PseudocolorAtts.Point  # Box, Axis, Icosahedron, Octahedron, Tetrahedron, SphereGeometry, Point, Sphere
    +PseudocolorAtts.pointSizeVarEnabled = 0
    +PseudocolorAtts.pointSizeVar = "default"
    +PseudocolorAtts.pointSizePixels = 2
    +PseudocolorAtts.lineType = PseudocolorAtts.Tube  # Line, Tube, Ribbon
    +PseudocolorAtts.lineWidth = 0
    +PseudocolorAtts.tubeResolution = 100
    +PseudocolorAtts.tubeRadiusSizeType = PseudocolorAtts.Absolute  # Absolute, FractionOfBBox
    +PseudocolorAtts.tubeRadiusAbsolute = 0.25
    +PseudocolorAtts.tubeRadiusBBox = 0.005
    +PseudocolorAtts.tubeRadiusVarEnabled = 0
    +PseudocolorAtts.tubeRadiusVar = ""
    +PseudocolorAtts.tubeRadiusVarRatio = 10
    +PseudocolorAtts.tailStyle = PseudocolorAtts.Spheres  # None, Spheres, Cones
    +PseudocolorAtts.headStyle = PseudocolorAtts.NONE  # None, Spheres, Cones
    +PseudocolorAtts.endPointRadiusSizeType = PseudocolorAtts.Absolute  # Absolute, FractionOfBBox
    +PseudocolorAtts.endPointRadiusAbsolute = 0.8
    +PseudocolorAtts.endPointRadiusBBox = 0.005
    +PseudocolorAtts.endPointResolution = 100
    +PseudocolorAtts.endPointRatio = 2
    +PseudocolorAtts.endPointRadiusVarEnabled = 0
    +PseudocolorAtts.endPointRadiusVar = ""
    +PseudocolorAtts.endPointRadiusVarRatio = 10
    +PseudocolorAtts.renderSurfaces = 1
    +PseudocolorAtts.renderWireframe = 0
    +PseudocolorAtts.renderPoints = 0
    +PseudocolorAtts.smoothingLevel = 0
    +PseudocolorAtts.legendFlag = 1
    +PseudocolorAtts.lightingFlag = 1
    +PseudocolorAtts.wireframeColor = (0, 0, 0, 0)
    +PseudocolorAtts.pointColor = (0, 0, 0, 0)
    +SetPlotOptions(PseudocolorAtts)
    +
    +IntegralCurveAtts = IntegralCurveAttributes()
    +IntegralCurveAtts.sourceType = IntegralCurveAtts.SpecifiedPlane  # SpecifiedPoint, PointList, SpecifiedLine, Circle, SpecifiedPlane, SpecifiedSphere, SpecifiedBox, Selection, FieldData
    +IntegralCurveAtts.pointSource = (0, 0, 0)
    +IntegralCurveAtts.lineStart = (0, 0, 0)
    +IntegralCurveAtts.lineEnd = (1, 0, 0)
    +IntegralCurveAtts.planeOrigin = (0.5, 1, 0.5)
    +IntegralCurveAtts.planeNormal = (0, 1, 0)
    +IntegralCurveAtts.planeUpAxis = (1, 0, 0)
    +IntegralCurveAtts.radius = 1
    +IntegralCurveAtts.sphereOrigin = (0, 0, 0)
    +IntegralCurveAtts.boxExtents = (0, 1, 0, 1, 0, 1)
    +IntegralCurveAtts.useWholeBox = 1
    +IntegralCurveAtts.pointList = (0, 0, 0, 1, 0, 0, 0, 1, 0)
    +IntegralCurveAtts.fieldData = ()
    +IntegralCurveAtts.sampleDensity0 = 5
    +IntegralCurveAtts.sampleDensity1 = 5
    +IntegralCurveAtts.sampleDensity2 = 2
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.Speed  # Solid, SeedPointID, Speed, Vorticity, ArcLength, TimeAbsolute, TimeRelative, AverageDistanceFromSeed, CorrelationDistance, Difference, Variable
    +IntegralCurveAtts.dataVariable = ""
    +IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Both  # Forward, Backward, Both, ForwardDirectionless, BackwardDirectionless, BothDirectionless
    +IntegralCurveAtts.maxSteps = 100000
    +IntegralCurveAtts.terminateByDistance = 0
    +IntegralCurveAtts.termDistance = 10
    +IntegralCurveAtts.terminateByTime = 1
    +IntegralCurveAtts.termTime = 200
    +IntegralCurveAtts.maxStepLength = 0.1
    +IntegralCurveAtts.limitMaximumTimestep = 1
    +IntegralCurveAtts.maxTimeStep = 0.02
    +IntegralCurveAtts.relTol = 1e-06
    +IntegralCurveAtts.absTolSizeType = IntegralCurveAtts.FractionOfBBox  # Absolute, FractionOfBBox
    +IntegralCurveAtts.absTolAbsolute = 1e-06
    +IntegralCurveAtts.absTolBBox = 1e-07
    +IntegralCurveAtts.fieldType = IntegralCurveAtts.Default  # Default, FlashField, M3DC12DField, M3DC13DField, Nek5000Field, NektarPPField
    +IntegralCurveAtts.fieldConstant = 1
    +IntegralCurveAtts.velocitySource = (0, 0, 0)
    +IntegralCurveAtts.integrationType = IntegralCurveAtts.DormandPrince  # Euler, Leapfrog, DormandPrince, AdamsBashforth, RK4, M3DC12DIntegrator
    +IntegralCurveAtts.parallelizationAlgorithmType = IntegralCurveAtts.VisItSelects  # LoadOnDemand, ParallelStaticDomains, ManagerWorker, VisItSelects
    +IntegralCurveAtts.maxProcessCount = 10
    +IntegralCurveAtts.maxDomainCacheSize = 3
    +IntegralCurveAtts.workGroupSize = 32
    +IntegralCurveAtts.pathlines = 0
    +IntegralCurveAtts.pathlinesOverrideStartingTimeFlag = 0
    +IntegralCurveAtts.pathlinesOverrideStartingTime = 0
    +IntegralCurveAtts.pathlinesPeriod = 0
    +IntegralCurveAtts.pathlinesCMFE = IntegralCurveAtts.POS_CMFE  # CONN_CMFE, POS_CMFE
    +IntegralCurveAtts.displayGeometry = IntegralCurveAtts.Lines  # Lines, Tubes, Ribbons
    +IntegralCurveAtts.cropBeginFlag = 0
    +IntegralCurveAtts.cropBegin = 0
    +IntegralCurveAtts.cropEndFlag = 0
    +IntegralCurveAtts.cropEnd = 0
    +IntegralCurveAtts.cropValue = IntegralCurveAtts.Time  # Distance, Time, StepNumber
    +IntegralCurveAtts.sampleDistance0 = 18
    +IntegralCurveAtts.sampleDistance1 = 18
    +IntegralCurveAtts.sampleDistance2 = 10
    +IntegralCurveAtts.fillInterior = 1
    +IntegralCurveAtts.randomSamples = 0
    +IntegralCurveAtts.randomSeed = 0
    +IntegralCurveAtts.numberOfRandomSamples = 1
    +IntegralCurveAtts.issueAdvectionWarnings = 0
    +IntegralCurveAtts.issueBoundaryWarnings = 0
    +IntegralCurveAtts.issueTerminationWarnings = 0
    +IntegralCurveAtts.issueStepsizeWarnings = 0
    +IntegralCurveAtts.issueStiffnessWarnings = 0
    +IntegralCurveAtts.issueCriticalPointsWarnings = 0
    +IntegralCurveAtts.criticalPointThreshold = 0.001
    +IntegralCurveAtts.correlationDistanceAngTol = 5
    +IntegralCurveAtts.correlationDistanceMinDistAbsolute = 1
    +IntegralCurveAtts.correlationDistanceMinDistBBox = 0.005
    +IntegralCurveAtts.correlationDistanceMinDistType = IntegralCurveAtts.FractionOfBBox  # Absolute, FractionOfBBox
    +IntegralCurveAtts.selection = ""
    +
    +# Test coloring options
    +
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.Speed
    +SetOperatorOptions(IntegralCurveAtts)
    +DrawPlots()
    +Test( "ic_streamlines_01" )
    +
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.Vorticity
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_02" )
    +
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.ArcLength
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_03" )
    +
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.TimeAbsolute
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_04" )
    +
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.SeedPointID
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_05" )
    +
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.Variable
    +IntegralCurveAtts.dataVariable = "hardyglobal"
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_06" )
    +
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.Solid
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_07" )
    +
    +# test termination modes (termination by time implied in previous tests)
    +
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.ArcLength
    +
    +IntegralCurveAtts.terminateByTime = 0
    +IntegralCurveAtts.terminateByDistance = 1
    +IntegralCurveAtts.termDistance = 10
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_08" )
    +
    +IntegralCurveAtts.termDistance = 5
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_09" )
    +
    +IntegralCurveAtts.terminateByDistance = 0
    +IntegralCurveAtts.maxSteps = 500
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_10" )
    +
    +IntegralCurveAtts.maxSteps = 250
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_11" )
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_termination.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_termination.html new file mode 100644 index 000000000..ba7360579 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_termination.html @@ -0,0 +1,84 @@ + +Results for operators/ic_termination.py + +

    Results of VisIt Regression Test - operators/ic_termination

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ic_termination_010.000.00
    ic_termination_020.000.00
    ic_termination_030.000.00
    ic_termination_040.000.00
    ic_termination_050.000.00
    ic_termination_060.000.00
    ic_termination_070.000.00
    ic_termination_080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_termination_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_termination_py.html new file mode 100644 index 000000000..7e67fa480 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_ic_termination_py.html @@ -0,0 +1,91 @@ +operators/ic_termination.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ic_termination.py
    +#
    +#  Tests:      operator      - integralcurve
    +#
    +#  Defect ID:  -
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       March 10, 2016
    +#
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +AddPlot("Pseudocolor", "operators/IntegralCurve/grad", 1, 0)
    +
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.270729, 0.624198, 0.732859)
    +View3DAtts.focus = (0.496062, 0.99603, 0.496062)
    +View3DAtts.viewUp = (-0.0922782, 0.774611, -0.62567)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 12.1829
    +View3DAtts.nearPlane = -24.3658
    +View3DAtts.farPlane = 24.3658
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +SetView3D(View3DAtts)
    +
    +IntegralCurveAtts = IntegralCurveAttributes()
    +IntegralCurveAtts.sourceType = IntegralCurveAtts.SpecifiedPlane  # SpecifiedPoint, SpecifiedPointList, SpecifiedLine, SpecifiedCircle, SpecifiedPlane, SpecifiedSphere, SpecifiedBox
    +IntegralCurveAtts.terminateByTime = 1
    +IntegralCurveAtts.termTime = 200
    +IntegralCurveAtts.planeOrigin = (0.5, 1, 0.5)
    +IntegralCurveAtts.planeNormal = (0, 1, 0)
    +IntegralCurveAtts.planeUpAxis = (1, 0, 0)
    +IntegralCurveAtts.sampleDensity0 = 5
    +IntegralCurveAtts.sampleDensity1 = 5
    +IntegralCurveAtts.sampleDistance0 = 18
    +IntegralCurveAtts.sampleDistance1 = 18
    +IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Both  # Forward, Backward, Both
    +IntegralCurveAtts.relTol = 1e-06
    +IntegralCurveAtts.absTolSizeType = IntegralCurveAtts.Absolute
    +IntegralCurveAtts.absTolAbsolute = 1e-07
    +IntegralCurveAtts.integrationType = IntegralCurveAtts.DormandPrince  # DormandPrince, AdamsBashforth, M3DC1Integrator
    +IntegralCurveAtts.maxProcessCount = 10
    +IntegralCurveAtts.maxDomainCacheSize = 3
    +IntegralCurveAtts.workGroupSize = 32
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.TimeAbsolute
    +
    +# test defaults
    +SetOperatorOptions(IntegralCurveAtts)
    +DrawPlots()
    +Test( "ic_termination_01" )
    +
    +IntegralCurveAtts.termTime = 50
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_termination_02" )
    +
    +IntegralCurveAtts.terminateByDistance = 1
    +IntegralCurveAtts.termDistance = 4
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_termination_03" )
    +
    +IntegralCurveAtts.terminateByDistance = 1
    +IntegralCurveAtts.termDistance = 12
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_termination_04" )
    +
    +IntegralCurveAtts.terminateByTime = 0
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_termination_05" )
    +
    +IntegralCurveAtts.maxSteps = 40
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_termination_06" )
    +
    +IntegralCurveAtts.termDistance = 25
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_termination_07" )
    +
    +IntegralCurveAtts.maxSteps = 10000
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_termination_08" )
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_indexselect.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_indexselect.html new file mode 100644 index 000000000..59d8cc491 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_indexselect.html @@ -0,0 +1,273 @@ + +Results for operators/indexselect.py + +

    Results of VisIt Regression Test - operators/indexselect

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_indexselect010.000.00
    ops_indexselect020.000.00
    ops_indexselect030.000.00
    ops_indexselect040.000.00
    ops_indexselect050.000.00
    ops_indexselect060.000.00
    ops_indexselect070.000.00
    ops_indexselect080.000.00
    ops_indexselect090.000.00
    ops_indexselect100.000.00
    ops_indexselect110.000.00
    ops_indexselect120.000.00
    ops_indexselect130.000.00
    ops_indexselect140.000.00
    ops_indexselect150.000.00
    ops_indexselect160.000.00
    ops_indexselect170.000.00
    ops_indexselect180.000.00
    ops_indexselect190.000.00
    ops_indexselect200.000.00
    ops_indexselect210.000.00
    ops_indexselect220.000.00
    ops_indexselect230.000.00
    ops_indexselect240.000.00
    ops_indexselect250.000.00
    ops_indexselect260.000.00
    ops_indexselect270.000.00
    ops_indexselect280.000.00
    ops_indexselect290.000.00
    ops_indexselect300.000.00
    ops_indexselect310.000.00
    ops_indexselect320.000.00
    IndexSelect on Point meshes.
    ops_indexselect330.000.00
    ops_indexselect340.000.00
    ops_indexselect350.000.00
    ops_indexselect360.000.00
    ops_indexselect370.000.00
    ops_indexselect380.000.00
    ops_indexselect390.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_indexselect_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_indexselect_py.html new file mode 100644 index 000000000..c13c0221f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_indexselect_py.html @@ -0,0 +1,621 @@ +operators/indexselect.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  indexselect.py
    +#
    +#  Tests:      mesh      - 3D curvilinear, single domain,
    +#                          3D rectilinear, single domain.
    +#                          2D rectilinear, single domain.
    +#                          3D rectilinear, single domain.
    +#              plots     - pc, mesh, subset, vector, surface
    +#              operators - index select (with threshold and sphere slice)
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Hank Childs
    +#  Date:       October 2, 2002
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset plots.
    +#
    +#    Kathleen Bonnell, Wed Sep  3 09:31:25 PDT 2003
    +#    Opaque mode for MeshPlot is ON by default now, so turn it off
    +#    for this test.
    +#
    +#    Kathleen Bonnell, Thu Sep  4 11:10:11 PDT 2003
    +#    Change the way MeshPlot's opaque mode is set (now an enum, not a bool).
    +#
    +#    Kathleen Bonnell, Wed Sep  8 11:29:10 PDT 2004 
    +#    Add two new tests, testing 'modulo' problems. ('3308).
    +#
    +#    Kathleen Bonnell, Wed Jul 20 13:32:44 PDT 2005 
    +#    Add two new tests, testing 'group' problems. ('6386).
    +#
    +#    Kathleen Bonnell, Wed Aug 10 10:13:56 PDT 2005 
    +#    Add tests 27-30 which tests extracting faces along maximum and minimum
    +#    boundaries of 3d data. ('6106).
    +#
    +#    Kathleen Bonnell, Fri Aug 19 15:45:46 PDT 2005 
    +#    Add tests 31-32 which tests domain boundaries w/i a group that coincide
    +#    with external boundaries of the index-selection. ('6428)  
    +#
    +#    Kathleen Bonnell, Mon Jan 30 16:40:30 PST 2006 
    +#    Add tests 33-38 which tests point meshes.
    +#
    +#    Kathleen Bonnell, Thu Jun  7 14:43:32 PDT 2007 
    +#    IndexSelect atts have changed, make corrections. 
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Wed Jan 11 13:57:00 PST 2012
    +#    Added test for Index Select of point meshes with Box operator applied.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +#    Eddie Rusu, Tue Apr 13 12:08:59 PDT 2021
    +#    Changed Pseudocolor CurrentPlot to ActualData.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +atts = IndexSelectAttributes()
    +# Dim is an enumerated type.  0 -> 1D, 1 -> 2D, 2 -> 3D.
    +atts.dim = 2
    +atts.xMin = 5
    +atts.xMax = 23
    +atts.xIncr = 2
    +atts.yMin = 0
    +atts.yMax = 20
    +atts.yIncr = 1
    +atts.zMin = 10
    +atts.zMax = -1
    +atts.zIncr = 2
    +
    +# 3D, rectilinear, zonal var.
    +AddPlot("Pseudocolor", "d")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +view = GetView3D()
    +view.viewNormal = (-0.5, 0.5, 0.7172)
    +SetView3D(view)
    +Test("ops_indexselect01")
    +DeleteAllPlots()
    +
    +# 3D, rectilinear, nodal var.
    +AddPlot("Pseudocolor", "u")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect02")
    +DeleteAllPlots()
    +
    +# 3D, rectilinear, mesh.
    +m = MeshAttributes()
    +m.opaqueMode = m.Off
    +SetDefaultPlotOptions(m)
    +AddPlot("Mesh", "quadmesh3d")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect03")
    +DeleteAllPlots()
    +
    +# 3D, rectilinear, subset.
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("IndexSelect")
    +atts.xIncr = 1
    +atts.yIncr = 1
    +atts.zIncr = 1
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect04")
    +DeleteAllPlots()
    +
    +# 3D, rectilinear, after a threshold
    +AddPlot("Pseudocolor", "p")
    +a2 = ThresholdAttributes()
    +a2.listedVarNames = ("u")
    +a2.lowerBounds = (0.25)
    +a2.upperBounds = (1.0)
    +AddOperator("Threshold")
    +SetOperatorOptions(a2)
    +atts.zMin = 5
    +atts.zMax = 20
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect05")
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +
    +# 3D, curvilinear, mesh plot
    +AddPlot("Mesh", "curvmesh3d")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +ResetView()
    +view = GetView3D()
    +view.viewNormal = (-0.5, 0.5, 0.7172)
    +SetView3D(view)
    +Test("ops_indexselect06")
    +DeleteAllPlots()
    +
    +# 3D, curvilinear, PC plot
    +AddPlot("Pseudocolor", "d")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect07")
    +DeleteAllPlots()
    +
    +# 3D, curvilinear, with sphere slice
    +AddPlot("Pseudocolor", "d")
    +AddOperator("SphereSlice")
    +a3 = SphereSliceAttributes()
    +a3.origin = (2.5, -0.5, 13)
    +a3.radius = 7
    +SetOperatorOptions(a3)
    +AddOperator("IndexSelect")
    +atts.xMin = 0
    +atts.xMax = -1
    +atts.yMin = 0
    +atts.yMax = -1
    +atts.zMin = 5
    +atts.zMax = 18
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect08")
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +# 2D, rectilinear, mesh plot
    +AddPlot("Mesh", "quadmesh2d")
    +AddOperator("IndexSelect")
    +# Dim is an enumerated type.  0 -> 1D, 1 -> 2D, 2 -> 3D.
    +atts.dim = 1
    +atts.xMin = 5
    +atts.xMax = 25
    +atts.yMin = 5
    +atts.yMax = 30
    +SetOperatorOptions(atts)
    +DrawPlots()
    +ResetView()
    +Test("ops_indexselect09")
    +DeleteAllPlots()
    +
    +# 2D, rectilinear, PC plot
    +AddPlot("Pseudocolor", "d")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect10")
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +
    +# 2D, curvilinear, mesh plot
    +AddPlot("Mesh", "curvmesh2d")
    +AddOperator("IndexSelect")
    +atts.yMax = 25
    +SetOperatorOptions(atts)
    +DrawPlots()
    +ResetView()
    +Test("ops_indexselect11")
    +DeleteAllPlots()
    +
    +# 2D, curv, PC plot
    +AddPlot("Pseudocolor", "d")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect12")
    +DeleteAllPlots()
    +
    +# 2D, curv, with threshold.
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Threshold")
    +a2.listedVarNames = ("p")
    +a2.lowerBounds = (0.34)
    +a2.upperBounds = (0.5)
    +SetOperatorOptions(a2)
    +AddOperator("IndexSelect")
    +atts.xMin = 10
    +atts.xMax = -1
    +atts.yMin = 0
    +atts.yMin = -1
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect13")
    +DeleteAllPlots()
    +
    +# 2D, curv of vector
    +AddPlot("Vector", "vel")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect14")
    +DeleteAllPlots()
    +
    +# 2D surface of curvilinear
    +AddPlot("Pseudocolor", "d")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +AddOperator("Elevate")
    +DrawPlots()
    +ResetView()
    +Test("ops_indexselect15")
    +DeleteAllPlots()
    +
    +# 3D multi-rect 
    +# test 'modulo' problems, bug: VisIt00003308
    +OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("IndexSelect")
    +atts.dim = 2
    +atts.xMin = 0
    +atts.xMax = 1000
    +atts.yMin = 0
    +atts.yMax = 1000
    +atts.zMin = 0
    +atts.zMax = 1000
    +atts.xIncr = 3
    +atts.yIncr = 3
    +atts.zIncr = 3
    +SetOperatorOptions(atts)
    +DrawPlots()
    +ResetView()
    +Test("ops_indexselect16")
    +
    +atts.xMin = 1
    +atts.xMax = 8
    +atts.yMin = 1
    +atts.yMax = 8
    +atts.zMin = 1
    +atts.zMax = 8
    +atts.xIncr = 5
    +atts.yIncr = 5
    +atts.zIncr = 5
    +SetOperatorOptions(atts)
    +
    +Test("ops_indexselect17")
    +DeleteAllPlots()
    +
    +# bigsil 
    +# test 'domainIndex' problems, bug: VisIt00005559
    +OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +AddPlot("Subset", "domains")
    +AddPlot("Mesh", "mesh")
    +AddOperator("IndexSelect")
    +atts.dim = atts.ThreeD
    +atts.xMin = 0
    +atts.xMax = 1000
    +atts.yMin = 0
    +atts.yMax = 1000
    +atts.zMin = 0
    +atts.zMax = 1000
    +atts.xIncr = 1
    +atts.yIncr = 1
    +atts.zIncr = 1
    +atts.useWholeCollection = 0
    +atts.categoryName = "domains"
    +atts.subsetName = "domain2"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +ResetView()
    +
    +v = GetView3D()
    +v.viewNormal = (0.653901, -0.39603, -0.64465)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.251385, -0.917378, 0.308584)
    +v.viewAngle = 30
    +v.parallelScale = 0.866025
    +v.nearPlane = -1.73205
    +v.farPlane = 1.73205
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, 0)
    +SetView3D(v)
    +
    +Test("ops_indexselect18")
    +
    +# smallest domainIndex should be 1
    +atts.subsetName = "domain1"
    +SetOperatorOptions(atts)
    +Test("ops_indexselect19")
    +
    +atts.subsetName = "domain27"
    +SetOperatorOptions(atts)
    +Test("ops_indexselect20")
    +
    +DeleteAllPlots()
    +
    +#test whichData = OneGroup
    +AddPlot("Subset", "blocks")
    +s = SubsetAttributes()
    +s.wireframe = 1
    +s.lineWidth = 3
    +SetPlotOptions(s)
    +AddPlot("Mesh", "mesh")
    +AddPlot("Pseudocolor", "dist")
    +AddOperator("IndexSelect")
    +atts.dim = atts.ThreeD
    +atts.xMin = 1
    +atts.xMax = 2
    +atts.yMin = 1
    +atts.yMax = 2
    +atts.zMin = 0
    +atts.zMax = -1
    +atts.categoryName = "blocks"
    +atts.subsetName = "block0"
    +SetOperatorOptions(atts)
    +
    +DrawPlots()
    +ResetView()
    +v = GetView3D()
    +v.viewNormal = (0, 0, -1)
    +v.focus = (0.5, 0.5, 0.5)
    +v.parallelScale = 0.866025
    +v.viewUp = (0, 1, 0)
    +v.nearPlane = -1.73205
    +v.farPlane  = 1.73205
    +v.perspective = 0
    +SetView3D(v)
    +v.imageZoom = 5.39496
    +SetView3D(v)
    +v.imagePan = (-0.23029, 0.259159)
    +SetView3D(v)
    +Test("ops_indexselect21")
    +
    +atts.categoryName = "domains"
    +atts.subsetName = "domain1"
    +SetOperatorOptions(atts)
    +Test("ops_indexselect22")
    +
    +SetActivePlots(1)
    +DeleteActivePlots()
    +
    +SetActivePlots(1)
    +atts.categoryName = "blocks"
    +atts.subsetName = "block2"
    +atts.xMin = 0
    +atts.xMax = -1
    +atts.yMin = 5
    +atts.yMax = 19
    +atts.zMin = 7
    +atts.zMax = 8
    +SetOperatorOptions(atts)
    +ResetView()
    +Test("ops_indexselect23")
    +
    +TurnMaterialsOff(("1", "5", "8"))
    +Test("ops_indexselect24")
    +
    +TurnMaterialsOn()
    +TurnDomainsOff(("domain23"))
    +Test("ops_indexselect25")
    +
    +TurnMaterialsOff(("1", "5", "8"))
    +Test("ops_indexselect26")
    +
    +TurnMaterialsOn()
    +TurnDomainsOn()
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +# 3D, rectilinear, zonal var, index-selected at max/min boundaries.
    +AddPlot("Pseudocolor", "d")
    +AddOperator("IndexSelect")
    +atts.dim = atts.ThreeD
    +atts.xMin = 0
    +atts.xMax = -1 # maximum
    +atts.yMin = 40 # maximum boundary
    +atts.yMax = 40 # maximum boundary
    +atts.zMin = 0
    +atts.zMax = -1
    +atts.xIncr = 1
    +atts.yIncr = 1
    +atts.zIncr = 1
    +atts.useWholeCollection = 1
    +SetOperatorOptions(atts)
    +pc = PseudocolorAttributes()
    +pc.limitsMode = pc.ActualData
    +SetPlotOptions(pc)
    +DrawPlots()
    +ResetView()
    +view = GetView3D()
    +view.viewNormal = (0, 1, 0)
    +view.viewUp = (0, 0, -1)
    +view.perspective = 0
    +SetView3D(view)
    +Test("ops_indexselect27")
    +
    +atts.yMin = 0
    +atts.yMax = 0
    +SetOperatorOptions(atts)
    +Test("ops_indexselect28")
    +
    +DeleteAllPlots()
    +
    +
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +# 3D, curvilinear, zonal var, index-selected at max/min boundaries.
    +AddPlot("Pseudocolor", "p")
    +AddOperator("IndexSelect")
    +atts.dim = atts.ThreeD
    +atts.xMin = 30
    +atts.xMax = 30
    +atts.yMin = 0
    +atts.yMax = -1
    +atts.zMin = 0
    +atts.zMax = -1
    +atts.xIncr = 1
    +atts.yIncr = 1
    +atts.zIncr = 1
    +SetOperatorOptions(atts)
    +pc = PseudocolorAttributes()
    +pc.limitsMode = pc.ActualData
    +SetPlotOptions(pc)
    +DrawPlots()
    +ResetView()
    +view = GetView3D()
    +view.viewNormal = (0, 1, 0)
    +view.viewUp = (0, 0, -1)
    +view.perspective = 0
    +SetView3D(view)
    +Test("ops_indexselect29")
    +
    +atts.xMin = 0
    +atts.xMax = 0
    +SetOperatorOptions(atts)
    +Test("ops_indexselect30")
    +
    +DeleteAllPlots()
    +
    +#'6428, boundary between domains disappear when on edge of
    +# index-selected plot 
    +OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +AddPlot("Pseudocolor", "dist")
    +atts.dim = atts.ThreeD
    +atts.xMin = 0
    +atts.xMax = -1 #max
    +atts.yMin = 8
    +atts.yMax = 17
    +atts.zMin = 0
    +atts.zMax = -1 #max
    +atts.xIncr = 1
    +atts.yIncr = 1
    +atts.zIncr = 1
    +atts.useWholeCollection = 0
    +atts.categoryName = "blocks"
    +# middle group for this dataset, has group boundaries and internal
    +# domain boundaries
    +atts.subsetName = "block1"
    +
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +ResetView()
    +v = GetView3D()
    +v.viewNormal = (0.437142, -0.719538, -0.539603)
    +v.viewUp = (-0.309012, -0.683599, 0.661214)
    +v.perspective = 0
    +SetView3D(v)
    +Test("ops_indexselect31")
    +
    +DeleteAllPlots()
    +
    +# Filled boundary takes different path through IndexSelect than
    +# does PC, so test it too. 
    +AddPlot("FilledBoundary", "mat")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +SetView3D(v)
    +Test("ops_indexselect32")
    +DeleteAllPlots()
    +
    +
    +# Test point meshes
    +TestSection("IndexSelect on Point meshes.")
    +OpenDatabase(data_path("vtk_test_data/ugrid_points.vtk"))
    +
    +AddPlot("Pseudocolor", "u")
    +p = PseudocolorAttributes()
    +p.pointType = p.Box
    +p.pointSize = 0.2
    +SetPlotOptions(p)
    +DrawPlots()
    +
    +v = GetView2D()
    +v.windowCoords = (-0.4, 9.4, -0.4, 9.4)
    +SetView2D(v)
    +
    +Test("ops_indexselect33")
    +
    +AddOperator("IndexSelect")
    +isa = IndexSelectAttributes()
    +isa.dim = isa.OneD
    +isa.xMin = 60
    +isa.xMax = 70
    +isa.xIncr = 1
    +SetOperatorOptions(isa)
    +DrawPlots()
    +Test("ops_indexselect34")
    +
    +isa.xMin = 0
    +isa.xMax = -1
    +isa.xIncr = 2
    +SetOperatorOptions(isa)
    +
    +Test("ops_indexselect35")
    +
    +isa.xIncr = 3
    +SetOperatorOptions(isa)
    +Test("ops_indexselect36")
    +
    +isa.xMin = 4
    +isa.xMax = -1
    +isa.xIncr = 2
    +SetOperatorOptions(isa)
    +
    +Test("ops_indexselect37")
    +
    +isa.xMin = 10
    +isa.xMax = 89
    +isa.xIncr = 7
    +SetOperatorOptions(isa)
    +
    +Test("ops_indexselect38")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "PointVar")
    +AddOperator("IndexSelect")
    +# make sure we are using default atts
    +isa = IndexSelectAttributes()
    +SetOperatorOptions(isa)
    +box = BoxAttributes()
    +box.minx = -5
    +box.maxx = 5
    +box.miny = -5
    +box.maxy = 5
    +box.minz = -5
    +box.maxz = 5
    +AddOperator("Box")
    +SetOperatorOptions(box)
    +DrawPlots()
    +
    +Test("ops_indexselect39")
    +
    +DeleteAllPlots()
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_inverse_ghost_zone.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_inverse_ghost_zone.html new file mode 100644 index 000000000..1ce8f2bd1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_inverse_ghost_zone.html @@ -0,0 +1,72 @@ + +Results for operators/inverse_ghost_zone.py + +

    Results of VisIt Regression Test - operators/inverse_ghost_zone

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_inverse_ghost_zone010.000.00
    ops_inverse_ghost_zone020.000.00
    ops_inverse_ghost_zone030.000.00
    ops_inverse_ghost_zone040.000.00
    ops_inverse_ghost_zone050.000.00
    ops_inverse_ghost_zone060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_inverse_ghost_zone_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_inverse_ghost_zone_py.html new file mode 100644 index 000000000..4780e2431 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_inverse_ghost_zone_py.html @@ -0,0 +1,76 @@ +operators/inverse_ghost_zone.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  inverse_ghost_zone.py
    +#
    +#  Defect ID:  '6724
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 3, 2006
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to switch between Silo's HDF5 and PDB data.
    +#
    +#    Hank Childs, Sun Jan  2 10:45:22 PST 2011
    +#    Add tests for new features.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +AddPlot("Pseudocolor", "dist")
    +# By default, we won't create ghost zones, because we don't need them
    +# for this case.  Do something that makes us need them.
    +pc = PseudocolorAttributes()
    +pc.centering = pc.Zonal
    +SetPlotOptions(pc)
    +AddOperator("InverseGhostZone")
    +DrawPlots()
    +Test("ops_inverse_ghost_zone01")
    +
    +sil = SILRestriction()
    +sil.TurnOffSet(1)
    +SetPlotSILRestriction(sil)
    +Test("ops_inverse_ghost_zone02")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("InverseGhostZone")
    +DrawPlots()
    +Test("ops_inverse_ghost_zone03")
    +
    +sil = SILRestriction()
    +sil.TurnOffSet(1)
    +SetPlotSILRestriction(sil)
    +Test("ops_inverse_ghost_zone04")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(data_path("boxlib_test_data/2D/plt0822/Header"))
    +
    +AddPlot("Pseudocolor", "density")
    +AddOperator("InverseGhostZone")
    +i = InverseGhostZoneAttributes()
    +i.requestGhostZones = 1
    +i.showDuplicated = 1
    +i.showEnhancedConnectivity = 0
    +i.showReducedConnectivity = 0
    +i.showAMRRefined = 0
    +i.showExterior = 0
    +i.showNotApplicable = 0
    +SetOperatorOptions(i)
    +DrawPlots()
    +Test("ops_inverse_ghost_zone05")
    +
    +i.showDuplicated = 0
    +i.showAMRRefined = 1
    +SetOperatorOptions(i)
    +Test("ops_inverse_ghost_zone06")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_isovolume.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_isovolume.html new file mode 100644 index 000000000..063e37501 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_isovolume.html @@ -0,0 +1,78 @@ + +Results for operators/isovolume.py + +

    Results of VisIt Regression Test - operators/isovolume

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_isovol010.000.00
    ops_isovol020.000.00
    ops_isovol030.000.00
    ops_isovol040.000.00
    ops_isovol050.000.00
    ops_isovol060.000.00
    ops_isovol070.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_isovolume_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_isovolume_py.html new file mode 100644 index 000000000..00356b100 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_isovolume_py.html @@ -0,0 +1,160 @@ +operators/isovolume.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  isovolume.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain,
    +#                          3D rectilinear, multiple domain,
    +#                          2D curvilinear, multiple domain
    +#              plots     - pc, mesh, filledboundary, contour
    +#              operators - isovolume
    +#              selection - none
    +#
    +#  Defect ID:  '5640
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 27, 2004
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Wed Nov 17 15:38:37 PST 2004
    +#    Added test for isovolumes of poly-data where the poly-data is totally
    +#    within the data range. ['5640]
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.SetViewNormal(-0.528889, 0.367702, 0.7649)
    +v.SetViewUp(0.176641, 0.929226, -0.324558)
    +v.SetParallelScale(17.3205)
    +v.SetPerspective(1)
    +SetView3D(v)
    +
    +#
    +# Normal PC isovolume for globe.
    +#
    +isovol = IsovolumeAttributes()
    +
    +isovol.lbound = -4
    +isovol.ubound =  4
    +SetDefaultOperatorOptions(isovol)
    +AddOperator("Isovolume")
    +DrawPlots()
    +Test("ops_isovol01")
    +
    +
    +#
    +# Normal PC plot of globe, isovolumeing by a different variable than what we
    +# are coloring by.
    +#
    +RemoveAllOperators()
    +isovol.lbound = 140
    +isovol.ubound = 340
    +isovol.variable = "t"
    +SetDefaultOperatorOptions(isovol)
    +AddOperator("Isovolume")
    +DrawPlots()
    +Test("ops_isovol02")
    +
    +DeleteAllPlots()
    +
    +#
    +# Contour lines by one variable, isovolumeing by another.  Multi-block,
    +# curvilinear, 2D.
    +#
    +OpenDatabase(silo_data_path("multi_curv2d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +isovol.lbound = 0.7
    +isovol.ubound = 0.9
    +isovol.variable = "v"
    +SetDefaultOperatorOptions(isovol)
    +AddOperator("Isovolume")
    +DrawPlots()
    +
    +Test("ops_isovol03")
    +
    +DeleteAllPlots()
    +
    +#
    +# Material plot, isovolumeed by a scalar variable.  Multi-block,
    +# curvilinear, 2D.
    +#
    +AddPlot("FilledBoundary", "mat1")
    +DrawPlots()
    +
    +isovol.lbound = -0.4
    +isovol.ubound = 1.0
    +isovol.variable = "u"
    +SetDefaultOperatorOptions(isovol)
    +AddOperator("Isovolume")
    +DrawPlots()
    +
    +Test("ops_isovol04")
    +
    +DeleteAllPlots()
    +
    +#
    +# Mesh plot and PC plot, both isovolumeed by the same variable, criteria.
    +# Multi-block, rectilinear, 3D.
    +#
    +OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +
    +isovol.lbound = 0.4
    +isovol.ubound = 1.0
    +isovol.variable = "u"
    +SetDefaultOperatorOptions(isovol)
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isovolume")
    +AddPlot("Mesh", "mesh1")
    +AddOperator("Isovolume")
    +DrawPlots()
    +
    +Test("ops_isovol05")
    +
    +#
    +# Test that we can slice poly-data correctly.
    +#
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +isovol.lbound = -1.0
    +isovol.ubound = 1.0
    +isovol.variable = "default"
    +SetDefaultOperatorOptions(isovol)
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Slice")
    +AddOperator("Isovolume")
    +DrawPlots()
    +
    +Test("ops_isovol06")
    +
    +isovol.lbound = 0.5
    +SetOperatorOptions(isovol)
    +Test("ops_isovol07")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs.html new file mode 100644 index 000000000..b49d4e484 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs.html @@ -0,0 +1,147 @@ + +Results for operators/lcs.py + +

    Results of VisIt Regression Test - operators/lcs

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Basic FTLE function
    Testing database = ftle_double_gyre_1_domain.pics
    Testing sample source = RegularGrid
    Testing auxiliary grid = NoAuxGrid
    lcs_ftle_double_gyre_1_domain_RegularGrid_NoAuxGrid0.000.00
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_1_domain_RegularGrid_2DAuxGrid0.000.00
    Testing sample source = NativeMesh
    Testing auxiliary grid = NoAuxGrid
    lcs_ftle_double_gyre_1_domain_NativeMesh_NoAuxGrid0.000.00
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_1_domain_NativeMesh_2DAuxGrid0.000.00
    Testing database = ftle_double_gyre_2_domains.pics
    Testing sample source = RegularGrid
    Testing auxiliary grid = NoAuxGrid
    lcs_ftle_double_gyre_2_domains_RegularGrid_NoAuxGrid0.000.00
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_2_domains_RegularGrid_2DAuxGrid0.000.00
    Testing sample source = NativeMesh
    Testing auxiliary grid = NoAuxGrid
    lcs_ftle_double_gyre_2_domains_NativeMesh_NoAuxGrid0.000.00
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_2_domains_NativeMesh_2DAuxGrid0.000.00
    lcs_ftle_double_gyre_2_domains_NativeMesh_2DAuxGrid_Smallest0.000.00
    lcs_ftle_double_gyre_2_domains_NativeMesh_2DAuxGrid_Left0.000.00
    lcs_ftle_double_gyre_2_domains_NativeMesh_2DAuxGrid_EigenValue0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_ic_1.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_ic_1.html new file mode 100644 index 000000000..daeb620de --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_ic_1.html @@ -0,0 +1,66 @@ + +Results for operators/lcs_ic_1.py + +

    Results of VisIt Regression Test - operators/lcs_ic_1

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Basic FTLE function with IntegralCurve operator
    Testing database = ftle_double_gyre_1_domain.pics
    Testing sample source = RegularGrid
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_1_domain_RegularGrid_2DAuxGrid_IntegralCurve0.000.00
    Testing sample source = NativeMesh
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_1_domain_NativeMesh_2DAuxGrid_IntegralCurve0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_ic_1_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_ic_1_py.html new file mode 100644 index 000000000..8b7ea4a64 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_ic_1_py.html @@ -0,0 +1,17 @@ +operators/lcs_ic_1.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  lcs_ic_1.py
    +#
    +#  Tests:      operator   - LCS, IntegralCurve
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       August 25, 2015
    +# ----------------------------------------------------------------------------
    +
    +Source(tests_path("operators", "lcs_operator_main"))
    +
    +LCS_operator("IntegralCurve", "ftle_double_gyre_1_domain")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_ic_2.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_ic_2.html new file mode 100644 index 000000000..1c08fd2dd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_ic_2.html @@ -0,0 +1,66 @@ + +Results for operators/lcs_ic_2.py + +

    Results of VisIt Regression Test - operators/lcs_ic_2

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Basic FTLE function with IntegralCurve operator
    Testing database = ftle_double_gyre_2_domains.pics
    Testing sample source = RegularGrid
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_2_domains_RegularGrid_2DAuxGrid_IntegralCurve0.000.00
    Testing sample source = NativeMesh
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_2_domains_NativeMesh_2DAuxGrid_IntegralCurve0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_ic_2_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_ic_2_py.html new file mode 100644 index 000000000..55c8c4de3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_ic_2_py.html @@ -0,0 +1,17 @@ +operators/lcs_ic_2.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  lcs_ic_2.py
    +#
    +#  Tests:      operator   - LCS
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       August 25, 2015
    +# ----------------------------------------------------------------------------
    +
    +Source(tests_path("operators", "lcs_operator_main"))
    +
    +LCS_operator("IntegralCurve", "ftle_double_gyre_2_domains")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_lc_1.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_lc_1.html new file mode 100644 index 000000000..3e50ed7b2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_lc_1.html @@ -0,0 +1,66 @@ + +Results for operators/lcs_lc_1.py + +

    Results of VisIt Regression Test - operators/lcs_lc_1

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Basic FTLE function with LimitCycle operator
    Testing database = ftle_double_gyre_1_domain.pics
    Testing sample source = RegularGrid
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_1_domain_RegularGrid_2DAuxGrid_LimitCycle0.000.00
    Testing sample source = NativeMesh
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_1_domain_NativeMesh_2DAuxGrid_LimitCycle0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_lc_1_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_lc_1_py.html new file mode 100644 index 000000000..25919d8a4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_lc_1_py.html @@ -0,0 +1,17 @@ +operators/lcs_lc_1.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  lcs_lc_1.py
    +#
    +#  Tests:      operator   - LCS
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       August 25, 2015
    +# ----------------------------------------------------------------------------
    +
    +Source(tests_path("operators", "lcs_operator_main"))
    +
    +LCS_operator("LimitCycle", "ftle_double_gyre_1_domain")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_lc_2.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_lc_2.html new file mode 100644 index 000000000..18bdd6d64 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_lc_2.html @@ -0,0 +1,66 @@ + +Results for operators/lcs_lc_2.py + +

    Results of VisIt Regression Test - operators/lcs_lc_2

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Basic FTLE function with LimitCycle operator
    Testing database = ftle_double_gyre_2_domains.pics
    Testing sample source = RegularGrid
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_2_domains_RegularGrid_2DAuxGrid_LimitCycle0.000.00
    Testing sample source = NativeMesh
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_2_domains_NativeMesh_2DAuxGrid_LimitCycle0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_lc_2_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_lc_2_py.html new file mode 100644 index 000000000..45936bbaa --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_lc_2_py.html @@ -0,0 +1,17 @@ +operators/lcs_lc_2.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  lcs_lc_2.py
    +#
    +#  Tests:      operator   - LCS
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       August 25, 2015
    +# ----------------------------------------------------------------------------
    +
    +Source(tests_path("operators", "lcs_operator_main"))
    +
    +LCS_operator("LimitCycle", "ftle_double_gyre_2_domains")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_py.html new file mode 100644 index 000000000..108c5a417 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_lcs_py.html @@ -0,0 +1,181 @@ +operators/lcs.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  LCS.py
    +#
    +#  Tests:      operator   - LCS
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       August 25, 2015
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Thur Sep 17, 2020
    +#    Shorten name used for 'Testing database' TestSection. Turn of warnings.
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("PICS_Tester")
    +
    +#-vargs="-debug 5"
    +
    +# For testing using the CLI
    +
    +#def data_path( db_name ):
    +#  db="/Projects/VisIt/trunk/build/data/%s" %(db_name)
    +#  return db
    +
    +#def Test(case_name):
    +#   swatts = SaveWindowAttributes()
    +#   swatts.family = 0
    +#   swatts.fileName = "/Projects/tmp/lcs/ser/%s" %(case_name)
    +#   SetSaveWindowAttributes(swatts)
    +#   SaveWindow()
    +#   return
    +
    +#def TestSection(tmpstr):
    +#   return
    +
    +#def Exit():
    +#   return   
    +
    +
    +# Open the database here and add a plot as for some reason it fails
    +# within a loop. It only happens with all-in-one plots with an operator
    +# such as with "Pseudocolor" and "operators/LCS/velocity"
    +db=data_path("pics_test_data/ftle_double_gyre_1_domain.pics")
    +OpenDatabase(db)
    +AddPlot("Pseudocolor", "operators/LCS/velocity")
    +
    +
    +LCSAtts = LCSAttributes()
    +LCSAtts.Resolution = (101, 51, 1)
    +LCSAtts.integrationDirection = LCSAtts.Forward
    +LCSAtts.auxiliaryGridSpacing = 0.005
    +LCSAtts.maxSteps = 1000000
    +LCSAtts.operationType = LCSAtts.Lyapunov
    +LCSAtts.cauchyGreenTensor = LCSAtts.Right
    +LCSAtts.eigenComponent = LCSAtts.Largest
    +LCSAtts.operatorType = LCSAtts.BaseValue
    +LCSAtts.terminationType = LCSAtts.Time
    +LCSAtts.terminateByTime = 1
    +LCSAtts.termTime = 4
    +LCSAtts.maxStepLength = 0.001
    +LCSAtts.integrationType = LCSAtts.AdamsBashforth
    +LCSAtts.parallelizationAlgorithmType = LCSAtts.ParallelStaticDomains
    +LCSAtts.pathlines = 1
    +LCSAtts.pathlinesCMFE = LCSAtts.CONN_CMFE
    +LCSAtts.issueAdvectionWarnings = 0
    +LCSAtts.issueBoundaryWarnings = 0
    +LCSAtts.issueTerminationWarnings = 0
    +LCSAtts.issueStepsizeWarnings = 0
    +LCSAtts.issueStiffnessWarnings = 0
    +LCSAtts.issueCriticalPointsWarnings = 0
    +
    +SetOperatorOptions(LCSAtts, 0)
    +
    +
    +databases=["ftle_double_gyre_1_domain", "ftle_double_gyre_2_domains"]
    +
    +src_type=[LCSAtts.RegularGrid, LCSAtts.NativeMesh]
    +src_type_str=["RegularGrid", "NativeMesh"]
    +
    +aux_grid=[LCSAtts.NONE, LCSAtts.TwoDim]
    +aux_grid_str=["NoAuxGrid", "2DAuxGrid"]
    +
    +TestSection("Basic FTLE function")
    +for i in range(len(databases)):
    +  db=data_path("pics_test_data/%s.pics") %(databases[i])
    +  tmpstr="Testing database = %s.pics" %(databases[i])
    +  TestSection(tmpstr)
    +  OpenDatabase(db)
    +  # Replace the database from before with this one as a new plot can
    +  # not be opened within the loop when using runtest. This issue is a
    +  # bug.
    +  ReplaceDatabase(db)
    +  #  DeleteAllPlots()
    +  #  AddPlot("Pseudocolor", "operators/LCS/velocity")
    +  for j in range(len(src_type)):
    +     tmpstr="Testing sample source = %s" %(src_type_str[j])
    +     TestSection(tmpstr)
    +     LCSAtts.sourceType = src_type[j]  # NativeMesh, RegularGrid
    +     for k in range(len(aux_grid)):
    +        tmpstr="Testing auxiliary grid = %s" %(aux_grid_str[k])
    +        TestSection(tmpstr)
    +        LCSAtts.auxiliaryGrid = aux_grid[k]  # None, TwoDim
    +        SetOperatorOptions(LCSAtts, 0)
    +        DrawPlots()
    +        tmpstr="lcs_%s_%s_%s" %(databases[i], src_type_str[j], aux_grid_str[k])
    +        Test(tmpstr)
    +
    +
    +
    +# FTLE with smallest exponent
    +LCSAtts.eigenComponent = LCSAtts.Smallest  # Smallest, Intermediate, Largest, PosShearVector, NegShearVector, PosLambdaShearVector, NegLambdaShearVector
    +SetOperatorOptions(LCSAtts, 0)
    +DrawPlots()
    +tmpstr="lcs_%s_%s_%s_Smallest" %(databases[i], src_type_str[j], aux_grid_str[k])
    +Test(tmpstr)
    +
    +
    +
    +# FTLE with left Cauchy Green Tensor
    +LCSAtts.cauchyGreenTensor = LCSAtts.Left  # Left, Right
    +LCSAtts.eigenComponent = LCSAtts.Largest  # Smallest, Intermediate, Largest, PosShearVector, NegShearVector, PosLambdaShearVector, NegLambdaShearVector
    +SetOperatorOptions(LCSAtts, 0)
    +DrawPlots()
    +tmpstr="lcs_%s_%s_%s_Left" %(databases[i], src_type_str[j], aux_grid_str[k])
    +Test(tmpstr)
    +
    +
    +
    +# FTLE with eigen value
    +LCSAtts.operationType = LCSAtts.EigenValue  # IntegrationTime, ArcLength, AverageDistanceFromSeed, EigenValue, EigenVector, Lyapunov
    +LCSAtts.cauchyGreenTensor = LCSAtts.Right  # Left, Right
    +LCSAtts.eigenComponent = LCSAtts.Largest  # Smallest, Intermediate, Largest, PosShearVector, NegShearVector, PosLambdaShearVector, NegLambdaShearVector
    +SetOperatorOptions(LCSAtts, 0)
    +DrawPlots()
    +tmpstr="lcs_%s_%s_%s_EigenValue" %(databases[i], src_type_str[j], aux_grid_str[k])
    +Test(tmpstr)
    +
    +
    +Exit()
    +
    +
    +# 1 processor:
    +
    +#wo/aux grid
    +
    +# Native 1  -0.04343 - 1.066   190 zeros # Match
    +# Rect   1  -0.04343 - 1.066   190 zeros #
    +
    +# Native 2  -0.04343 - 1.066   193 zeros # Match
    +# Rect   2  -0.04343 - 1.233   190 zeros # Match with ghost cells but for a few cells.
    +
    +# Errors in the domain boundary gradients 
    +
    +
    +#w/aux grid
    +
    +# Native 1  0.004539 - 1.396   304 exited / 680 zeros # Match
    +# Rect   1  0.004539 - 1.396   304 exited / 680 zeros # 
    +
    +# Native 2  0.004539 - 1.396   308 exited / 690 zeros # Match
    +# Rect   2  0.004539 - 1.396   304 exited / 680 zeros #
    +
    +
    +# 4 processors:
    +
    +#wo/aux grid
    +
    +# Native 1  -0.04343 - 1.066   190 zeros # Match
    +# Rect   1  -0.04343 - 1.066   190 zeros #
    +
    +# Native 2  -0.04343 - 1.066   193 zeros # Match
    +# Rect   2  -0.04343 - 1.233   190 zeros # Match with ghost cells but for a few cells.
    +
    +#w/aux grid
    +
    +# Native 1  0.004539 - 1.396   304 exited / 680 zeros # Match
    +# Rect   1  0.004539 - 1.396   304 exited / 680 zeros # 
    +
    +# Native 2  0.004539 - 1.396   308 exited / 690 zeros # Match
    +# Rect   2  0.004539 - 1.396   304 exited / 680 zeros #
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_moveoperators.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_moveoperators.html new file mode 100644 index 000000000..b95843876 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_moveoperators.html @@ -0,0 +1,114 @@ + +Results for operators/moveoperators.py + +

    Results of VisIt Regression Test - operators/moveoperators

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    moveoperator_00.000.00
    moveoperator_10.000.00
    moveoperator_20.000.00
    moveoperator_30.000.00
    moveoperator_40.000.00
    moveoperator_50.000.00
    moveoperator_60.000.00
    moveoperator_70.000.00
    moveoperator_80.000.00
    moveoperator_90.000.00
    moveoperator_100.000.00
    moveoperator_110.000.00
    moveoperator_120.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_moveoperators_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_moveoperators_py.html new file mode 100644 index 000000000..c8511c631 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_moveoperators_py.html @@ -0,0 +1,226 @@ +operators/moveoperators.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  moveoperators.py
    +#
    +#  Tests:      plots     - Pseudocolor, Mesh, FilledBoundary
    +#              operators - Erase, Isosurface, Reflect, Slice, Transform
    +#
    +#  Defect ID:  '1837
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Apr 17 16:45:46 PST 2003
    +#
    +#  Modifications:
    +#    Eric Brugger, Thu May  8 12:57:56 PDT 2003
    +#    Remove a call to ToggleAutoCenterMode since it no longer exists.
    +#
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset plots.
    +#
    +#    Kathleen Bonnell, Wed Mar 17 07:33:40 PST 2004 
    +#    Set default Slice atts, as these have changed. 
    +#
    +#    Kathleen Bonnell, Wed May  5 08:13:22 PDT 2004 
    +#    Modified Slice atts to get same picture as defaults have changed. 
    +#
    +#    Brad Whitlock, Tue Jan 17 12:14:21 PDT 2006
    +#    Added runTest4.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Thu Jul 11 08:18:42 PDT 2013
    +#    Removed legacy sytle annotation setting.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def InitAnnotation():
    +    # Turn off all annotation except for the bounding box.
    +    a = AnnotationAttributes()
    +    TurnOffAllAnnotations(a)
    +    a.axes2D.visible = 1
    +    a.axes2D.xAxis.label.visible = 0
    +    a.axes2D.yAxis.label.visible = 0
    +    a.axes2D.xAxis.title.visible = 0
    +    a.axes2D.yAxis.title.visible = 0
    +    a.axes3D.bboxFlag = 1
    +    SetAnnotationAttributes(a)
    +
    +def InitDefaults():
    +    # Set the default reflect operator attributes.
    +    reflect = ReflectAttributes()
    +    reflect.SetReflections(1, 1, 0, 0, 0, 0, 0, 0)
    +    SetDefaultOperatorOptions(reflect)
    +    slice = SliceAttributes()
    +    slice.project2d = 0
    +    slice.SetAxisType(slice.XAxis)
    +    slice.SetFlip(1)
    +    SetDefaultOperatorOptions(slice)
    +
    +def setTheFirstView():
    +    # Set the view
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.695118, 0.351385, 0.627168)
    +    v.focus = (-10, 0, 0)
    +    v.viewUp = (0.22962, 0.935229, -0.269484)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -70
    +    v.farPlane = 70
    +    v.perspective = 1
    +    SetView3D(v)
    +
    +#
    +# Test operator promotion, demotion, and removal.
    +#
    +def runTest1():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +
    +    # Set up a plot with a few operators.
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    AddOperator("Isosurface")
    +    AddOperator("Slice")
    +    AddOperator("Reflect")
    +    DrawPlots()
    +    setTheFirstView()
    +
    +    # Take a picture of the initial setup.
    +    Test("moveoperator_0")
    +
    +    # Move the reflect so that it is before the slice in the pipeline.
    +    # The pipeline will be: Isosurface, Reflect, Slice
    +    DemoteOperator(2)
    +    DrawPlots()
    +    Test("moveoperator_1")
    +
    +    # Move the reflect operator back so that the pipeline matches the
    +    # initial configuration: Isosurface, Slice, Reflect
    +    PromoteOperator(1)
    +    DrawPlots()
    +    Test("moveoperator_2")
    +
    +    # Remove the slice operator from the middle, resulting in:
    +    # Isosurface, Reflect
    +    RemoveOperator(1)
    +    DrawPlots()
    +    Test("moveoperator_3")
    +
    +    # Remove the Isosurface operator, resulting in: Reflect
    +    RemoveOperator(0)
    +    DrawPlots()
    +    Test("moveoperator_4")
    +
    +    # Remove the Reflect operator
    +    RemoveOperator(0)
    +    DrawPlots()
    +    Test("moveoperator_5")
    +
    +    DeleteAllPlots()
    +
    +#
    +# Test removing an operator from more than one plot at the same time.
    +#
    +def runTest2():
    +    all = 1
    +    # Set up a couple plots of globe
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    AddPlot("Mesh", "mesh1")
    +    # Add a reflect operator to both plots.
    +    AddOperator("Reflect", all)
    +    DrawPlots()
    +    Test("moveoperator_6")
    +
    +    # Remove the operator from both plots.
    +    RemoveOperator(0, all)
    +    DrawPlots()
    +    Test("moveoperator_7")
    +    DeleteAllPlots()
    +
    +#
    +# Test setting attributes for multiple operators of the same type.
    +#
    +def runTest3():
    +    # Set up a couple plots of globe
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    pc = PseudocolorAttributes()
    +    pc.SetOpacityType(pc.Constant)
    +    pc.opacity = 0.2
    +    SetPlotOptions(pc)
    +    AddPlot("FilledBoundary", "mat1")
    +
    +    # The subset plot is the active plot, add a couple transform
    +    # operators to it.
    +    AddOperator("Transform")
    +    AddOperator("Transform")
    +
    +    # Set the attributes for the *first* transform operator.
    +    # This results in a full size globe translated up in Y.
    +    t0 = TransformAttributes()
    +    t0.doTranslate = 1
    +    t0.translateY = 15
    +    SetOperatorOptions(t0, 0)
    +    DrawPlots()
    +    Test("moveoperator_8")
    +
    +    # Set the attributes for the *second* transform operator.
    +    # The plot has been translated, now scale it. Since it has already
    +    # been translated, this will also translate it a little in Y.
    +    t1 = TransformAttributes()
    +    t1.doScale = 1
    +    t1.scaleX = 0.5
    +    t1.scaleY = 0.5
    +    t1.scaleZ = 0.5
    +    SetOperatorOptions(t1, 1)
    +    Test("moveoperator_9")
    +
    +    # Demote the last operator to reverse the order of the transformations.
    +    DemoteOperator(1)
    +    # Make the pc plot opaque again
    +    SetActivePlots(0)
    +    pc.SetOpacityType(pc.FullyOpaque)
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    Test("moveoperator_10")
    +
    +    DeleteAllPlots()
    +
    +#
    +# Test that removing an operator using the RemoveOperator(i) method causes
    +# the vis window to get redrawn.
    +#
    +def runTest4():
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    AddOperator("Isosurface")
    +    DrawPlots()
    +    Test("moveoperator_11")
    +
    +    RemoveOperator(0)
    +    Test("moveoperator_12")
    +    DeleteAllPlots()
    +
    +#
    +# Set up the environment and run all of the tests.
    +#
    +def runTests():
    +    InitAnnotation()
    +    InitDefaults()
    +    runTest1()
    +    runTest2()
    +    runTest3()
    +    runTest4()
    +
    +# Run the tests.
    +runTests()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_multires.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_multires.html new file mode 100644 index 000000000..5f2ee36f8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_multires.html @@ -0,0 +1,48 @@ + +Results for operators/multires.py + +

    Results of VisIt Regression Test - operators/multires

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    multires_00.000.00
    multires_10.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_multires_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_multires_py.html new file mode 100644 index 000000000..894ae3e5f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_multires_py.html @@ -0,0 +1,34 @@ +operators/multires.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  multires.py
    +#
    +#  Programmer: Tom Fogal
    +#  Date:       August 6, 2010
    +#
    +# ----------------------------------------------------------------------------
    +
    +ds = data_path("Chombo_test_data/chombo.visit")
    +OpenDatabase(ds)
    +
    +AddPlot("Pseudocolor", "Scalar_1")
    +AddOperator("MultiresControl")
    +
    +att = MultiresControlAttributes()
    +att.resolution = 0
    +SetOperatorOptions(att)
    +
    +DrawPlots()
    +Test("multires_0")
    +
    +att.resolution = 1
    +SetOperatorOptions(att)
    +DrawPlots()
    +Test("multires_1")
    +
    +DeleteAllPlots()
    +
    +CloseDatabase(ds)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_onionpeel.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_onionpeel.html new file mode 100644 index 000000000..ac73acfc2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_onionpeel.html @@ -0,0 +1,486 @@ + +Results for operators/onionpeel.py + +

    Results of VisIt Regression Test - operators/onionpeel

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_onionpeel_010.000.00
    ops_onionpeel_020.000.00
    ops_onionpeel_030.000.00
    ops_onionpeel_040.000.00
    ops_onionpeel_050.000.00
    ops_onionpeel_060.000.00
    ops_onionpeel_070.000.00
    ops_onionpeel_080.000.00
    ops_onionpeel_090.000.00
    ops_onionpeel_100.000.00
    ops_onionpeel_110.000.00
    ops_onionpeel_120.000.00
    ops_onionpeel_130.000.00
    ops_onionpeel_140.000.00
    ops_onionpeel_150.000.00
    ops_onionpeel_160.000.00
    ops_onionpeel_170.000.00
    ops_onionpeel_180.000.00
    ops_onionpeel_190.000.00
    ops_onionpeel_200.000.00
    ops_onionpeel_210.000.00
    ops_onionpeel_220.000.00
    ops_onionpeel_230.000.00
    ops_onionpeel_240.000.00
    ops_onionpeel_250.000.00
    ops_onionpeel_260.000.00
    Arbitrary Polyhedra, honor original mesh
    poly_originalMesh_000.000.00
    poly_originalMesh_010.000.00
    poly_originalMesh_020.000.00
    poly_originalMesh_030.000.00
    poly_originalMesh_040.000.00
    poly_originalMesh_050.000.00
    poly_originalMesh_060.000.00
    poly_originalMesh_070.000.00
    poly_originalMesh_080.000.00
    poly_originalMesh_090.000.00
    poly_originalMesh_100.000.00
    Arbitrary Polyhedra, honor actual mesh
    poly_actualMesh000.000.00
    poly_actualMesh010.000.00
    poly_actualMesh020.000.00
    poly_actualMesh030.000.00
    poly_actualMesh040.000.00
    poly_actualMesh050.000.00
    poly_actualMesh060.000.00
    poly_actualMesh070.000.00
    poly_actualMesh080.000.00
    poly_actualMesh090.000.00
    poly_actualMesh100.000.00
    poly_actualMesh110.000.00
    poly_actualMesh120.000.00
    poly_actualMesh130.000.00
    poly_actualMesh140.000.00
    poly_actualMesh150.000.00
    poly_actualMesh160.000.00
    poly_actualMesh170.000.00
    poly_actualMesh180.000.00
    poly_actualMesh190.000.00
    poly_actualMesh200.000.00
    poly_actualMesh210.000.00
    poly_actualMesh220.000.00
    poly_actualMesh230.000.00
    poly_actualMesh240.000.00
    poly_actualMesh250.000.00
    poly_actualMesh260.000.00
    bigsil_mesh_010.000.00
    bigsil_mesh_020.000.00
    bigsil_mesh_030.000.00
    bigsil_mesh_040.000.00
    amr_3d_010.000.00
    amr_3d_020.000.00
    amr_3d_030.000.00
    amr_3d_040.000.00
    amr_2d_010.000.00
    amr_2d_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_onionpeel_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_onionpeel_py.html new file mode 100644 index 000000000..be47d5c1f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_onionpeel_py.html @@ -0,0 +1,643 @@ +operators/onionpeel.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  onionpeel.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, mulitple domain, mulitple groups
    +#              plots     - subset
    +#              operators - onionpeel
    +#              selection - none
    +#
    +#  Defect ID:  
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       December 23, 2003 
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Feb 26 15:31:31 PST 2004
    +#    Added TestUCD.
    +#
    +#    Kathleen Bonnell, Wed Dec 15 15:24:50 PST 2004 
    +#    Added TestGlobalZoneId.
    +#
    +#    Kathleen Bonnell, Tue Jan 18 19:34:41 PST 2005 
    +#    Added TestMatSelect.
    +#
    +#    Kathleen Bonnell, Wed Jan 19 15:45:38 PST 2005 
    +#    Added TestNodeId.
    +#
    +#    Kathleen Bonnell, Tue Jun 14 11:33:39 PDT 2005 
    +#    Added TestFilledBoundary.
    +#
    +#    Kathleen Bonnell, Thu Jul 21 09:09:26 PDT 2005 
    +#    Modified indices used in TestBigSil, to match corrsponding changes
    +#    to bigsil.silo. 
    +#
    +#    Kathleen Bonnell, Fri Aug 19 16:23:45 PDT 2005 
    +#    Modified indices used in TestBigSil, more changes to bigsil.silo. 
    +#
    +#    Kathleen Bonnell, Thu Sep 22 11:59:42 PDT 2005 
    +#    Added TestBoundary. 
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Fri Jul 25 15:10:11 MST 2014
    +#    Added ArbPoly test, which demonstrates use of new att: honorOriginalMesh.
    +#
    +#    Kathleen Biagas, Mon Mar 23 17:25:07 PDT 2015
    +#    Modified AMR test to include the default Subset plot, now that it
    +#    is fixed.
    +#
    +#    Kathleen Biagas, Tue Nov 29 10:40:50 PST 2022
    +#    Change use of obosolete text settings to new textFont settings.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def TestBigSil():
    +    OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +
    +    AddPlot("Subset", "domains")
    +    AddPlot("Subset", "blocks")
    +    s = SubsetAttributes()
    +    s.legendFlag = 0
    +    s.wireframe = 1
    +    s.colorType = s.ColorBySingleColor
    +    s.singleColor = (100,100,100,255)
    +    SetPlotOptions(s)
    +
    +    SetActivePlots(0)
    +    AddOperator("OnionPeel")
    +    op = OnionPeelAttributes()
    +    op.categoryName = "blocks"
    +    op.subsetName = "block0"
    +    op.index = (4, 11, 5)
    +    op.logical = 1
    +    op.adjacencyType = op.Face
    +    op.requestedLayer = 3
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +
    +    Test("ops_onionpeel_01")
    +
    +    op.subsetName = "block1"
    +    op.index = (18, 4, 5)
    +    SetOperatorOptions(op)
    +
    +    Test("ops_onionpeel_02")
    +
    +    op.subsetName = "block2"
    +    op.index = (11, 18, 5)
    +    SetOperatorOptions(op)
    +
    +    Test("ops_onionpeel_03")
    +
    +    DeleteAllPlots()
    +
    +def TestUCD():
    +    # This is to test that onion peel will work (by default)
    +    # on the first "On" set -- in this case "domain4".
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    domains = ("domain4", "domain5", "domain6")
    +    TurnDomainsOff()
    +    TurnDomainsOn(domains)
    +    DrawPlots()
    +    ResetView()
    +    SetViewExtentsType("actual")
    +    AddOperator("OnionPeel")
    +    DrawPlots()
    +    Test("ops_onionpeel_04")
    +
    +    DeleteAllPlots()
    +
    +def TestGlobalZoneId():
    +    # This is to test that onion peel will work when 
    +    # a global cell number is specified. 
    +    OpenDatabase(silo_data_path("global_node.silo"))
    +
    +    TurnDomainsOn()
    +    AddPlot("Subset", "domains")
    +    s = SubsetAttributes()
    +    s.legendFlag = 0
    +    s.wireframe = 1
    +    s.colorType = s.ColorBySingleColor
    +    s.singleColor = (100,100,100,255)
    +    SetPlotOptions(s)
    +    AddPlot("Pseudocolor", "dist")
    +    AddOperator("OnionPeel")
    +    op = OnionPeelAttributes()
    +    op.categoryName = "domains"
    +    op.subsetName = "domain5"
    +    op.index = 372
    +    op.logical = 0
    +    op.adjacencyType = op.Face
    +    op.requestedLayer = 7
    +    SetOperatorOptions(op)
    +
    +    DrawPlots()
    +    ResetView()
    +    SetViewExtentsType("original")
    +
    +    Test("ops_onionpeel_05")
    +
    +    #only change is to specify that seed cell is global
    +    op.useGlobalId = 1
    +    SetOperatorOptions(op)
    +    Test("ops_onionpeel_06")
    +
    +    DeleteAllPlots()
    +
    +def TestMatSelect():
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("FilledBoundary", "mat1")
    +    AddOperator("OnionPeel")
    +    op = OnionPeelAttributes()
    +    op.index = 8
    +    op.requestedLayer = 5
    +    op.adjacencyType = op.Face
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    SetViewExtentsType("actual")
    +    Test("ops_onionpeel_07")
    +
    +    TurnMaterialsOff("1")
    +    Test("ops_onionpeel_08")
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    TurnMaterialsOff("4")
    +    AddOperator("OnionPeel")
    +    op.requestedLayer = 2
    +    op.index = 27
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    Test("ops_onionpeel_09")
    +    TurnMaterialsOn()
    +    DeleteAllPlots()
    +
    +def TestNodeId():
    +    OpenDatabase(silo_data_path("ucd2d.silo"))
    +
    +    AddPlot("Mesh", "ucdmesh2d")
    +    AddPlot("Pseudocolor", "d")
    +    AddOperator("OnionPeel")
    +    op = OnionPeelAttributes()
    +    op.index = 0
    +    op.seedType = op.SeedCell
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    Test("ops_onionpeel_10")
    +
    +    op.seedType = op.SeedNode
    +    SetOperatorOptions(op)
    +    Test("ops_onionpeel_11")
    +
    +    op.requestedLayer = 2
    +    op.adjacencyType = op.Face
    +    SetOperatorOptions(op)
    +    Test("ops_onionpeel_12")
    +
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Mesh", "quadmesh3d")
    +    AddPlot("Pseudocolor", "d")
    +    SetActivePlots((0, 1))
    +    TurnMaterialsOff("1")
    +    AddOperator("OnionPeel")
    +    op.index = 44
    +    op.requestedLayer = 0
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    SetViewExtentsType("actual")
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, -1)
    +    SetView3D(v)
    +    Test("ops_onionpeel_13")
    +    op.requestedLayer = 12
    +    SetOperatorOptions(op)
    +    Test("ops_onionpeel_14")
    +    TurnMaterialsOn()
    +    DeleteAllPlots()
    +
    +def TestFilledBoundary():
    +    # need to test index on high-side
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Mesh", "quadmesh3d")
    +    AddPlot("FilledBoundary", "mat1")
    +    SetActivePlots((0,1))
    +    AddOperator("OnionPeel")
    +    op = OnionPeelAttributes()
    +    op.index = 15735
    +    op.requestedLayer = 5
    +    op.adjacencyType = op.Face
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    ResetView()
    +    SetViewExtentsType("actual")
    +    Test("ops_onionpeel_15")
    +
    +    op.seedType = op.SeedNode
    +    op.index = 32713
    +    SetOperatorOptions(op)
    +    Test("ops_onionpeel_16")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    AddPlot("FilledBoundary", "mat1")
    +    SetActivePlots((0,1))
    +    AddOperator("OnionPeel")
    +    op.seedType = op.SeedCell
    +    op.requestedLayer = 2
    +    op.index = 742
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    Test("ops_onionpeel_17")
    +    op.index = 1117
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    ResetView()
    +    Test("ops_onionpeel_18")
    +
    +    op.seedType = op.SeedNode
    +    op.requestedLayer = 6
    +    op.index = 965
    +    SetOperatorOptions(op)
    +    Test("ops_onionpeel_19")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +    AddPlot("Mesh", "curvmesh3d")
    +    AddPlot("FilledBoundary", "mat1")
    +    SetActivePlots((0, 1))
    +    AddOperator("OnionPeel")
    +    op.seedType = op.SeedCell
    +    op.requestedLayer = 5
    +    op.index = 19412
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, 1)
    +    v.focus = (-2.29977, 0.966088, 16.5)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 5.61745
    +    v.nearPlane = -11.2349
    +    v.farPlane = 11.2349
    +    v.imagePan = (-0.00484124, 0.00104964)
    +    v.imageZoom = 4.08886
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (-2.29977, 0.966088, 16.5)
    +    SetView3D(v)
    +    Test("ops_onionpeel_20")
    +    DeleteAllPlots()
    +
    +
    +def TestBoundary():
    +    # need to test index on high-side
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Mesh", "quadmesh3d")
    +    AddPlot("Boundary", "mat1")
    +    SetActivePlots((0,1))
    +    AddOperator("OnionPeel")
    +    op = OnionPeelAttributes()
    +    op.index = 15735
    +    op.requestedLayer = 5
    +    op.adjacencyType = op.Face
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    ResetView()
    +    SetViewExtentsType("actual")
    +    Test("ops_onionpeel_21")
    +
    +    op.seedType = op.SeedNode
    +    op.index = 1370
    +    SetOperatorOptions(op)
    +    Test("ops_onionpeel_22")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    AddPlot("Boundary", "mat1")
    +    SetActivePlots((0,1))
    +    AddOperator("OnionPeel")
    +    op.seedType = op.SeedCell
    +    op.requestedLayer = 2
    +    op.index = 17
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (1, 0, 0)
    +    v.viewUp = (0, 1, 0)
    +    SetView3D(v)
    +    Test("ops_onionpeel_23")
    +    op.index = 117
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    ResetView()
    +    Test("ops_onionpeel_24")
    +
    +    op.seedType = op.SeedNode
    +    op.requestedLayer = 6
    +    op.index = 13
    +    SetOperatorOptions(op)
    +    Test("ops_onionpeel_25")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +    AddPlot("Mesh", "curvmesh3d")
    +    AddPlot("Boundary", "mat1")
    +    SetActivePlots((0, 1))
    +    AddOperator("OnionPeel")
    +    op.seedType = op.SeedCell
    +    op.requestedLayer = 5
    +    op.index = 19472
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, 1)
    +    v.focus = (-2.29977, 0.966088, 16.5)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 5.61745
    +    v.nearPlane = -11.2349
    +    v.farPlane = 11.2349
    +    v.imagePan = (-0.00484124, 0.00104964)
    +    v.imageZoom = 4.08886
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (-2.29977, 0.966088, 16.5)
    +    SetView3D(v)
    +    Test("ops_onionpeel_26")
    +    DeleteAllPlots()
    +
    +def TestArbPoly():
    +    TestSection("Arbitrary Polyhedra, honor original mesh")
    +    OpenDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +    DefineScalarExpression("gzid", "global_zoneid(<3D/mesh1>)")
    +    AddPlot("Mesh", "3D/mesh1")
    +    AddPlot("Pseudocolor", "gzid")
    +    pc = PseudocolorAttributes()
    +    pc.colorTableName="levels"
    +    SetPlotOptions(pc)
    +    AddOperator("OnionPeel")
    +    DrawPlots()
    +    ResetView()
    +    op = OnionPeelAttributes()
    +
    +    SetQueryOutputToObject()
    +    # there are only 11 zones in original mesh
    +    # when NumZonesQuery is fixed, can use it instead
    +    # SetActivePlots(0)
    +    # numZones = Query("NumZones", use_actual_data=0)['num_zones']
    +    # SetActivePlots(1)
    +    numZones = 11
    +    for i in range(numZones):
    +        op.index = i
    +        SetOperatorOptions(op)
    +        DrawPlots()
    +        Test("poly_originalMesh_%02d"%i)
    +
    +    TestSection("Arbitrary Polyhedra, honor actual mesh")
    +    op.honorOriginalMesh = 0
    +    SetActivePlots(0)
    +    numZones = Query("NumZones", use_actual_data=1)['num_zones']
    +    print("numZones: ", numZones)
    +    SetActivePlots(1)
    +    for i in range (numZones):
    +        op.index = i
    +        SetOperatorOptions(op)
    +        DrawPlots()
    +        Test("poly_actualMesh%02d"%i)
    +
    +    DeleteAllPlots()
    +
    +def TestBigSilMesh():
    +    # use actual spatial extents
    +    SetViewExtentsType(1)
    +
    +    # non-logical index
    +    OpenDatabase(silo_data_path("bigsil.silo"))
    +    AddPlot("Mesh", "mesh")
    +    mesh = MeshAttributes()
    +    mesh.showInternal = 1
    +    SetPlotOptions(mesh)
    +
    +    AddPlot("Label", "mesh")
    +    label = LabelAttributes()
    +    label.showNodes = 1
    +    label.showCells = 1
    +    label.drawLabelsFacing = label.FrontAndBack
    +    label.labelDisplayFormat = label.Index
    +    label.textFont1.useForegroundColor = 0
    +    label.textFont1.color = (255, 0, 0, 0)
    +    label.textFont2.useForegroundColor = 0
    +    label.textFont2.color = (0, 0, 255, 0)
    +    label.depthTestMode = label.LABEL_DT_NEVER
    +    SetPlotOptions(label)
    +
    +    AddOperator("OnionPeel", 1)
    +    op = OnionPeelAttributes()
    +    op.categoryName = "domains"
    +    op.subsetName = "domain14"
    +    op.logical = 0
    +    op.index = (211)
    +    op.requestedLayer = 0
    +    op.seedType = op.SeedNode
    +    SetOperatorOptions(op,0, 1);
    +    DrawPlots()
    +    Test("bigsil_mesh_01")
    +
    +    op.seedType = op.SeedCell
    +    op.index = (223)
    +    op.requestedLayer = 1
    +    SetOperatorOptions(op,0, 1);
    +    DrawPlots()
    +    Test("bigsil_mesh_02")
    +
    +    # Blocks/Domains, logical index
    +    op.logical = 1
    +    op.index = (3, 2, 3)
    +    op.requestedLayer = 0
    +    op.seedType = op.SeedNode
    +    SetOperatorOptions(op,0, 1);
    +    DrawPlots()
    +    Test("bigsil_mesh_03")
    +
    +    op.seedType = op.SeedCell
    +    op.index = (6, 3, 4)
    +    op.requestedLayer = 1
    +    SetOperatorOptions(op,0, 1);
    +    DrawPlots()
    +    Test("bigsil_mesh_04")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("bigsil.silo"))
    +    # use original spatial extents
    +    SetViewExtentsType(0)
    +
    +def TestAMR():
    +    # AMR Mesh
    +    OpenDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +    # use actual spatial extents
    +    SetViewExtentsType(1)
    +
    +    AddPlot("Mesh", "amr_mesh")
    +    mesh = MeshAttributes()
    +    mesh.showInternal = 1
    +    SetPlotOptions(mesh)
    +
    +    AddPlot("Label", "amr_mesh")
    +    label = LabelAttributes()
    +    label.showNodes = 1
    +    label.showCells = 1
    +    label.drawLabelsFacing = label.FrontAndBack
    +    label.labelDisplayFormat = label.Index
    +    label.textFont1.useForegroundColor = 0
    +    label.textFont1.color = (255, 0, 0, 0)
    +    label.textFont2.useForegroundColor = 0
    +    label.textFont2.color = (0, 0, 255, 0)
    +    label.depthTestMode = label.LABEL_DT_NEVER
    +    SetPlotOptions(label)
    +
    +    AddOperator("OnionPeel", 1)
    +    op = OnionPeelAttributes()
    +    op.categoryName = "levels"
    +    op.subsetName = "level2"
    +    op.logical = 1
    +    op.index = (11, 15, 8)
    +    op.seedType = op.SeedNode
    +    SetOperatorOptions(op,0, 1);
    +    DrawPlots()
    +    Test("amr_3d_01")
    +
    +    op.seedType = op.SeedCell
    +    op.index = (10, 15, 8)
    +    op.requestedLayer = 1
    +    SetOperatorOptions(op,0, 1);
    +    Test("amr_3d_02")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +    # Test Vector plot
    +    OpenDatabase(data_path("samrai_test_data/mats-par3/dumps.visit"))
    +
    +    AddPlot("Mesh", "amr_mesh")
    +    AddPlot("Vector", "Velocity")
    +    TimeSliderNextState()
    +    AddOperator("OnionPeel", 1)
    +    op = OnionPeelAttributes()
    +    op.categoryName = "levels"
    +    op.subsetName = "level1"
    +    op.logical = 1
    +    op.index = (12, 15, 10)
    +    op.seedType = op.SeedCell
    +    op.requestedLayer = 1
    +    SetOperatorOptions(op,0, 1);
    +    DrawPlots()
    +    Test("amr_3d_03")
    +
    +    op.seedType = op.SeedNode
    +    op.index = (13, 15, 10)
    +    op.requestedLayer = 0
    +    SetOperatorOptions(op,0, 1);
    +    Test("amr_3d_04")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("samrai_test_data/mats-par3/dumps.visit"))
    +
    +    # 2D AMR Mesh
    +    OpenDatabase(data_path("samrai_test_data/ale2d/dumps.visit"))
    +
    +    # use actual spatial extents
    +    SetViewExtentsType(1)
    +
    +    AddPlot("Mesh", "amr_mesh")
    +    AddPlot("Contour", "Density")
    +
    +    AddOperator("OnionPeel", 1)
    +    op = OnionPeelAttributes()
    +    op.categoryName = "levels"
    +    op.subsetName = "level2"
    +    op.logical = 1
    +    op.index = (384, 490)
    +    op.seedType = op.SeedCell
    +    op.requestedLayer = 1
    +    SetOperatorOptions(op,0, 1);
    +    DrawPlots()
    +    Test("amr_2d_01")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("samrai_test_data/ale2d/dumps.visit"))
    +
    +    OpenDatabase(data_path("AMRStitchCell_test_data/AMRStitchCellTest.1.no_ghost.phi.2d.hdf5"))
    +    AddPlot("Subset", "levels")
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("Contour", "phi")
    +    AddPlot("Label", "Mesh")
    +    label = LabelAttributes()
    +    label.showNodes = 1
    +    label.showCells = 1
    +    label.drawLabelsFacing = label.FrontAndBack
    +    label.labelDisplayFormat = label.Index
    +    label.textFont1.useForegroundColor = 0
    +    label.textFont1.color = (255, 0, 0, 0)
    +    label.textFont2.useForegroundColor = 0
    +    label.textFont2.color = (0, 0, 255, 0)
    +    label.depthTestMode = label.LABEL_DT_NEVER
    +    SetPlotOptions(label)
    +
    +    AddOperator("OnionPeel", 1)
    +    op = OnionPeelAttributes()
    +    op.categoryName = "levels"
    +    op.subsetName = "level2"
    +    op.logical = 1
    +    op.seedType = op.SeedCell
    +    op.requestedLayer = 1
    +    op.index = (24, 35)
    +    SetOperatorOptions(op, 0, 1)
    +    DrawPlots()
    +    Test("amr_2d_02")
    +    # use original spatial extents
    +    SetViewExtentsType(0)
    +
    +def Main():
    +    TestBigSil()
    +    TestUCD()
    +    TestGlobalZoneId()
    +    TestMatSelect()
    +    TestNodeId()
    +    TestFilledBoundary()
    +    TestBoundary()
    +    TestArbPoly()
    +    TestBigSilMesh()
    +    TestAMR()
    +
    +Main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_operators.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_operators.html new file mode 100644 index 000000000..8f63bf068 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_operators.html @@ -0,0 +1,78 @@ + +Results for operators/operators.py + +

    Results of VisIt Regression Test - operators/operators

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_sliceop010.000.00
    ops_sliceop020.000.00
    ops_clip010.000.00
    ops_clip020.000.00
    ops_clip030.000.00
    ops_onion010.000.00
    ops_onion020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_operators_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_operators_py.html new file mode 100644 index 000000000..58850d85d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_operators_py.html @@ -0,0 +1,141 @@ +operators/operators.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  operators.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - pc
    +#              operators - slice, clip, onionpeel
    +#              selection - none
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       April 17, 2002
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Wed Jul 24 10:21:07 PDT 2002
    +#    Remove threshold tests in favor of its own file.
    +#
    +#    Hank Childs. Tue Nov 19 15:45:12 PST 2002
    +#    Change Aslice to Slice for slicing interface change.
    +#
    +#    Eric Brugger, Fri Jan 17 16:53:32 PST 2003
    +#    Change Erase to Clip for interface change.
    +#
    +#    Eric Brugger, Thu May  8 12:47:54 PDT 2003
    +#    Change the setting of one of the Slice attributes because of an
    +#    interface change.
    +#
    +#    Kathleen Bonnell, Thu Apr 29 07:40:58 PDT 2004 
    +#    Default slice atts have changed, update accordingly. 
    +#    
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.SetViewNormal(-0.528889, 0.367702, 0.7649)
    +v.SetViewUp(0.176641, 0.929226, -0.324558)
    +v.SetParallelScale(17.3205)
    +v.SetPerspective(1)
    +SetView3D(v)
    +
    +# Slice
    +slice = SliceAttributes()
    +
    +RemoveAllOperators()
    +slice.originType = slice.Point
    +slice.SetOriginPoint(1,2,3)
    +slice.SetNormal(1,-1,0)
    +slice.SetUpAxis(0,0,1)
    +slice.project2d = 1
    +SetDefaultOperatorOptions(slice)
    +AddOperator("Slice")
    +DrawPlots()
    +
    +Test("ops_sliceop01")
    +
    +RemoveAllOperators()
    +slice.project2d = 0
    +SetDefaultOperatorOptions(slice)
    +AddOperator("Slice")
    +DrawPlots()
    +
    +Test("ops_sliceop02")
    +
    +# Clip
    +clip = ClipAttributes()
    +
    +RemoveAllOperators()
    +clip.plane1Status = 1
    +clip.SetPlane1Origin(1,2,3)
    +clip.SetPlane1Normal(-1,1,0)
    +clip.funcType = 0
    +SetDefaultOperatorOptions(clip)
    +AddOperator("Clip")
    +DrawPlots()
    +
    +Test("ops_clip01")
    +
    +RemoveAllOperators()
    +clip.SetCenter(0,0,10)
    +clip.radius = 9
    +clip.funcType = 1
    +SetDefaultOperatorOptions(clip)
    +AddOperator("Clip")
    +DrawPlots()
    +
    +Test("ops_clip02")
    +
    +clip = ClipAttributes()
    +clip.plane1Status = 1
    +clip.SetPlane1Origin(1,2,3)
    +clip.SetPlane1Normal(-1,1,0)
    +clip.plane2Status = 1
    +clip.SetPlane2Origin(0,0,0)
    +clip.SetPlane2Normal(-1,0,0)
    +clip.funcType = 0
    +SetDefaultOperatorOptions(clip)
    +AddOperator("Clip")
    +DrawPlots()
    +
    +Test("ops_clip03")
    +
    +# OnionPeel
    +onion = OnionPeelAttributes()
    +
    +RemoveAllOperators()
    +onion.adjacencyType = 0
    +onion.index = 30
    +onion.requestedLayer = 3
    +SetDefaultOperatorOptions(onion)
    +AddOperator("OnionPeel")
    +DrawPlots()
    +
    +Test("ops_onion01")
    +
    +RemoveAllOperators()
    +onion.adjacencyType = 1
    +onion.requestedLayer = 7
    +SetDefaultOperatorOptions(onion)
    +AddOperator("OnionPeel")
    +DrawPlots()
    +
    +Test("ops_onion02")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_persistent_particles.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_persistent_particles.html new file mode 100644 index 000000000..bbee318ff --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_persistent_particles.html @@ -0,0 +1,72 @@ + +Results for operators/persistent_particles.py + +

    Results of VisIt Regression Test - operators/persistent_particles

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    persistent_particles_010.000.00
    persistent_particles_020.000.00
    persistent_particles_030.000.00
    persistent_particles_040.000.00
    persistent_particles_050.000.00
    persistent_particles_060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_persistent_particles_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_persistent_particles_py.html new file mode 100644 index 000000000..d64476499 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_persistent_particles_py.html @@ -0,0 +1,173 @@ +operators/persistent_particles.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  persistent_particles.py
    +#
    +#  Programmer: Hank Childs
    +#  Date:       October 15, 2010
    +#
    +#  Modifications:
    +#     Eddie Rusu, Tue Apr 13 12:08:59 PDT 2021
    +#     Changed Pseudocolor CurrentPlot to ActualData.
    +#
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(data_path("synergia_test_data/vis_particles_* database"),0, "Vs")
    +
    +AddPlot("Pseudocolor", "particles_6")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.outputMeshType = 0
    +ThresholdAtts.listedVarNames = ("default")
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (-1e+37)
    +ThresholdAtts.upperBounds = (20)
    +ThresholdAtts.defaultVarName = "particles_6"
    +ThresholdAtts.defaultVarIsScalar = 1
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.282153, 0.56578, 0.774779)
    +View3DAtts.focus = (-0.000283548, -1.60497e-05, -0.00167359)
    +View3DAtts.viewUp = (-0.173662, 0.824371, -0.538752)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 0.0560412
    +View3DAtts.nearPlane = -0.112082
    +View3DAtts.farPlane = 0.112082
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 3
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (-0.000283548, -1.60497e-05, -0.00167359)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +SetView3D(View3DAtts)
    +
    +Test("persistent_particles_01")
    +
    +CreateNamedSelection("selection1")
    +a = GetAnnotationAttributes()
    +SetWindowLayout(2)
    +SetActiveWindow(2)
    +SetAnnotationAttributes(a)
    +AddPlot("Pseudocolor", "particles_6", 1, 1)
    +silr = SILRestriction()
    +silr.TurnOnAll()
    +SetPlotSILRestriction(silr ,1)
    +ApplyNamedSelection("selection1")
    +DrawPlots()
    +SetView3D(View3DAtts)
    +Test("persistent_particles_02")
    +
    +AddOperator("PersistentParticles", 1)
    +PersistentParticlesAtts = PersistentParticlesAttributes()
    +PersistentParticlesAtts.startIndex = 0
    +PersistentParticlesAtts.stopIndex = 5
    +PersistentParticlesAtts.stride = 1
    +PersistentParticlesAtts.startPathType = PersistentParticlesAtts.Absolute  # Absolute, Relative
    +PersistentParticlesAtts.stopPathType = PersistentParticlesAtts.Absolute  # Absolute, Relative
    +PersistentParticlesAtts.traceVariableX = "default"
    +PersistentParticlesAtts.traceVariableY = "default"
    +PersistentParticlesAtts.traceVariableZ = "default"
    +PersistentParticlesAtts.connectParticles = 0
    +PersistentParticlesAtts.indexVariable = "default"
    +SetOperatorOptions(PersistentParticlesAtts, 1)
    +DrawPlots()
    +Test("persistent_particles_03")
    +
    +PersistentParticlesAtts.connectParticles = 1
    +SetOperatorOptions(PersistentParticlesAtts, 1)
    +Test("persistent_particles_04")
    +
    +AddOperator("Tube", 1)
    +TubeAtts = TubeAttributes()
    +TubeAtts.scaleByVarFlag = 0
    +TubeAtts.tubeRadiusType = TubeAtts.Absolute
    +TubeAtts.radiusAbsolute = 0.0005
    +TubeAtts.scaleVariable = "default"
    +TubeAtts.fineness = 10
    +TubeAtts.capping = 0
    +SetOperatorOptions(TubeAtts, 1)
    +DrawPlots()
    +Test("persistent_particles_05")
    +
    +
    +AddPlot("Pseudocolor", "particles_6", 1, 0)
    +ApplyNamedSelection("selection1")
    +PseudocolorAtts = PseudocolorAttributes()
    +PseudocolorAtts.legendFlag = 1
    +PseudocolorAtts.lightingFlag = 1
    +PseudocolorAtts.minFlag = 0
    +PseudocolorAtts.maxFlag = 0
    +PseudocolorAtts.centering = PseudocolorAtts.Natural  # Natural, Nodal, Zonal
    +PseudocolorAtts.scaling = PseudocolorAtts.Linear  # Linear, Log, Skew
    +PseudocolorAtts.limitsMode = PseudocolorAtts.OriginalData  # OriginalData, ActualData
    +PseudocolorAtts.min = 0
    +PseudocolorAtts.max = 1
    +PseudocolorAtts.pointSize = 0.001
    +PseudocolorAtts.pointType = PseudocolorAtts.Icosahedron  # Box, Axis, Icosahedron, Point, Sphere
    +PseudocolorAtts.skewFactor = 1
    +PseudocolorAtts.opacity = 1
    +PseudocolorAtts.colorTableName = "orangehot"
    +PseudocolorAtts.smoothingLevel = 0
    +PseudocolorAtts.pointSizeVarEnabled = 0
    +PseudocolorAtts.pointSizeVar = "default"
    +PseudocolorAtts.pointSizePixels = 2
    +PseudocolorAtts.lineWidth = 0
    +PseudocolorAtts.opacityType = PseudocolorAtts.FullyOpaque
    +SetPlotOptions(PseudocolorAtts)
    +PseudocolorAtts = PseudocolorAttributes()
    +PseudocolorAtts.legendFlag = 1
    +PseudocolorAtts.lightingFlag = 1
    +PseudocolorAtts.minFlag = 0
    +PseudocolorAtts.maxFlag = 1
    +PseudocolorAtts.centering = PseudocolorAtts.Natural  # Natural, Nodal, Zonal
    +PseudocolorAtts.scaling = PseudocolorAtts.Linear  # Linear, Log, Skew
    +PseudocolorAtts.limitsMode = PseudocolorAtts.OriginalData  # OriginalData, ActualData
    +PseudocolorAtts.min = 0
    +PseudocolorAtts.max = 20
    +PseudocolorAtts.pointSize = 0.001
    +PseudocolorAtts.pointType = PseudocolorAtts.Icosahedron  # Box, Axis, Icosahedron, Point, Sphere
    +PseudocolorAtts.skewFactor = 1
    +PseudocolorAtts.opacity = 1
    +PseudocolorAtts.colorTableName = "orangehot"
    +PseudocolorAtts.smoothingLevel = 0
    +PseudocolorAtts.pointSizeVarEnabled = 0
    +PseudocolorAtts.pointSizeVar = "default"
    +PseudocolorAtts.pointSizePixels = 2
    +PseudocolorAtts.lineWidth = 0
    +PseudocolorAtts.opacityType = PseudocolorAtts.FullyOpaque
    +SetPlotOptions(PseudocolorAtts)
    +SetActivePlots((0, 1))
    +SetActivePlots(0)
    +PseudocolorAtts = PseudocolorAttributes()
    +PseudocolorAtts.legendFlag = 1
    +PseudocolorAtts.lightingFlag = 1
    +PseudocolorAtts.minFlag = 0
    +PseudocolorAtts.maxFlag = 1
    +PseudocolorAtts.centering = PseudocolorAtts.Natural  # Natural, Nodal, Zonal
    +PseudocolorAtts.scaling = PseudocolorAtts.Linear  # Linear, Log, Skew
    +PseudocolorAtts.limitsMode = PseudocolorAtts.OriginalData  # OriginalData, ActualData
    +PseudocolorAtts.min = 0
    +PseudocolorAtts.max = 20
    +PseudocolorAtts.pointSize = 0.05
    +PseudocolorAtts.pointType = PseudocolorAtts.Point  # Box, Axis, Icosahedron, Point, Sphere
    +PseudocolorAtts.skewFactor = 1
    +PseudocolorAtts.opacity = 1
    +PseudocolorAtts.colorTableName = "orangehot"
    +PseudocolorAtts.smoothingLevel = 0
    +PseudocolorAtts.pointSizeVarEnabled = 0
    +PseudocolorAtts.pointSizeVar = "default"
    +PseudocolorAtts.pointSizePixels = 2
    +PseudocolorAtts.lineWidth = 0
    +PseudocolorAtts.opacityType = PseudocolorAtts.FullyOpaque
    +SetPlotOptions(PseudocolorAtts)
    +DrawPlots()
    +Test("persistent_particles_06")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_radial_resample.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_radial_resample.html new file mode 100644 index 000000000..7db3e2f2e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_radial_resample.html @@ -0,0 +1,60 @@ + +Results for operators/radial_resample.py + +

    Results of VisIt Regression Test - operators/radial_resample

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_radialresampleop_rect2d0.000.00
    ops_radialresampleop_rect3d0.000.00
    ops_radialresampleop_multi_rect2d0.000.00
    ops_radialresampleop_multi_rect3d0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_radial_resample_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_radial_resample_py.html new file mode 100644 index 000000000..93024857b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_radial_resample_py.html @@ -0,0 +1,135 @@ +operators/radial_resample.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  radial_resample.py
    +#
    +#  Tests:      mesh    - 2D rectilinear, single domain,
    +#                        3D rectilinear, single domain
    +#                        3D unstructured, multiple domain
    +#              plots   - pseudocolor
    +#
    +#  Defect ID:  1827 
    +#
    +#  Programmer: Kevin Griffin
    +#  Date:       Tue Jun  3 11:00:41 EST 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# 2D, Rectilinear
    +ds = silo_data_path("rect2d.silo")
    +OpenDatabase(ds)
    +
    +# clean-up 1's
    +AddPlot("Mesh", "quadmesh2d", 1, 1)
    +AddOperator("RadialResample")
    +
    +RadialResampleAttrs = RadialResampleAttributes()
    +RadialResampleAttrs.isFast = 0
    +RadialResampleAttrs.minTheta = -45
    +RadialResampleAttrs.maxTheta = 90
    +RadialResampleAttrs.deltaTheta = 5
    +RadialResampleAttrs.radius = 0.5
    +RadialResampleAttrs.deltaRadius = 0.05
    +RadialResampleAttrs.center = (0.5, 0.5, 0.5)
    +RadialResampleAttrs.is3D = 0
    +
    +SetOperatorOptions(RadialResampleAttrs)
    +
    +AddPlot("Pseudocolor", "t", 1, 1)
    +DrawPlots()
    +Test("ops_radialresampleop_rect2d")
    +
    +DeleteAllPlots()
    +CloseDatabase(ds)
    +
    +#3D, Rectilinear
    +ds = silo_data_path("rect3d.silo")
    +OpenDatabase(ds)
    +
    +AddPlot("Mesh", "quadmesh3d", 1, 1)
    +AddOperator("RadialResample")
    +
    +RadialResampleAtts = RadialResampleAttributes()
    +RadialResampleAtts.isFast = 0
    +RadialResampleAtts.minTheta = -90
    +RadialResampleAtts.maxTheta = 90
    +RadialResampleAtts.deltaTheta = 5
    +RadialResampleAtts.radius = 0.5
    +RadialResampleAtts.deltaRadius = 0.05
    +RadialResampleAtts.center = (0.5, 0.5, 0.5)
    +RadialResampleAtts.is3D = 1
    +RadialResampleAtts.minAzimuth = 0
    +RadialResampleAtts.maxAzimuth = 360
    +RadialResampleAtts.deltaAzimuth = 5
    +
    +SetOperatorOptions(RadialResampleAtts, 1)
    +
    +AddPlot("Pseudocolor", "w", 1, 1)
    +DrawPlots()
    +Test("ops_radialresampleop_rect3d")
    +
    +DeleteAllPlots()
    +CloseDatabase(ds)
    +
    +#2D, Rectilinear, Multiple Domains
    +ds = silo_data_path("multi_rect2d.silo")
    +OpenDatabase(ds)
    +
    +AddPlot("Mesh", "mesh1", 1, 1)
    +AddOperator("RadialResample", 1)
    +
    +RadialResampleAtts = RadialResampleAttributes()
    +RadialResampleAtts.isFast = 0
    +RadialResampleAtts.minTheta = 0
    +RadialResampleAtts.maxTheta = 360
    +RadialResampleAtts.deltaTheta = 5
    +RadialResampleAtts.radius = 1
    +RadialResampleAtts.deltaRadius = 0.05
    +RadialResampleAtts.center = (0.3, 0, 0)
    +RadialResampleAtts.is3D = 0
    +RadialResampleAtts.minAzimuth = 0
    +RadialResampleAtts.maxAzimuth = 180
    +RadialResampleAtts.deltaAzimuth = 5
    +
    +SetOperatorOptions(RadialResampleAtts, 1)
    +AddPlot("Pseudocolor", "vec_magnitude", 1, 1)
    +
    +DrawPlots()
    +Test("ops_radialresampleop_multi_rect2d")
    +
    +DeleteAllPlots()
    +CloseDatabase(ds)
    +
    +# 3D, Rectilinear, Multiple Domains
    +ds = silo_data_path("multi_rect3d.silo")
    +OpenDatabase(ds)
    +
    +AddPlot("Mesh", "mesh1", 1, 1)
    +AddOperator("RadialResample", 1)
    +
    +RadialResampleAtts = RadialResampleAttributes()
    +RadialResampleAtts.isFast = 0
    +RadialResampleAtts.minTheta = -90
    +RadialResampleAtts.maxTheta = 90
    +RadialResampleAtts.deltaTheta = 5
    +RadialResampleAtts.radius = 0.5
    +RadialResampleAtts.deltaRadius = 0.05
    +RadialResampleAtts.center = (0.5, 0.5, 0.5)
    +RadialResampleAtts.is3D = 1
    +RadialResampleAtts.minAzimuth = 0
    +RadialResampleAtts.maxAzimuth = 360
    +RadialResampleAtts.deltaAzimuth = 5
    +
    +SetOperatorOptions(RadialResampleAtts)
    +
    +AddPlot("Pseudocolor", "w")
    +DrawPlots()
    +Test("ops_radialresampleop_multi_rect3d")
    +
    +DeleteAllPlots()
    +CloseDatabase(ds)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_reflect.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_reflect.html new file mode 100644 index 000000000..b2903d8a3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_reflect.html @@ -0,0 +1,150 @@ + +Results for operators/reflect.py + +

    Results of VisIt Regression Test - operators/reflect

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_refl010.000.00
    ops_refl020.000.00
    ops_refl030.000.00
    ops_refl040.000.00
    ops_refl050.000.00
    ops_refl060.000.00
    ops_refl070.000.00
    ops_refl080.000.00
    ops_refl090.000.00
    ops_refl100.000.00
    ops_refl110.000.00
    ops_refl120.000.00
    ops_refl130.000.00
    ops_refl140.000.00
    arb_plane000.000.00
    arb_plane010.000.00
    arb_plane020.000.00
    arb_plane030.000.00
    arb_plane040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_reflect_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_reflect_py.html new file mode 100644 index 000000000..d10816218 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_reflect_py.html @@ -0,0 +1,343 @@ +operators/reflect.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  reflect.py
    +#
    +#  Tests:      mesh      - 3D curvilinear, single domain,
    +#                          3D rectilinear, single domain.
    +#                          3D unstructured, single domain.
    +#              plots     - pc, vector, subset
    +#
    +#  Defect ID:  '5079, '5872, '6321
    +#
    +#  Programmer: Hank Childs
    +#  Date:       June 24, 2004
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Fri Aug 13 09:52:28 PDT 2004
    +#    Test ghost nodes along the reflection plane.
    +#
    +#    Hank Childs, Thu Aug 19 16:37:35 PDT 2004
    +#    Do not test ops_refl12 since that is done in reflect2.py (and will be
    +#    until SR mode plays well with transparency).
    +#
    +#    Jeremy Meredith, Thu Oct 21 11:56:05 PDT 2004
    +#    Reintegrated ops_refl12 since SR/transparency works now.
    +#
    +#    Hank Childs, Thu Jan 20 11:31:43 PST 2005
    +#    Test projecting then reflecting ['5872].
    +#
    +#    Hank Childs, Tue Jul  5 09:29:40 PDT 2005
    +#    Test that reflected plots are not degenerate by using the volume plot
    +#    ['6321].
    +#
    +#    Jeremy Meredith, Tue Jul 15 10:43:58 EDT 2008
    +#    Changed number of vectors in vector plot to match the old behavior.
    +#    (We now account for how many domains there are.)
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +#    Alister Maguire, Wed Apr 25 15:56:47 PDT 2018
    +#    Added tests for reflecting across an arbitrary plane. 
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# 3D, rectilinear.  Multi-block  Tests ghost zones as well.
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +atts = ReflectAttributes()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Reflect")
    +atts.reflections = (1, 0, 1, 0, 0, 0, 0, 0)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_refl01")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Mesh", "quadmesh2d")
    +AddPlot("FilledBoundary", "mat1")
    +SetActivePlots((0,1))
    +AddOperator("Reflect")
    +DrawPlots()
    +atts.reflections = (0, 1, 1, 1, 0, 0, 0, 0)
    +atts.useXBoundary = 0
    +atts.specifiedX = -0.1
    +atts.useYBoundary = 0
    +atts.specifiedY = -0.05
    +SetOperatorOptions(atts)
    +Test("ops_refl02")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Reflect")
    +DrawPlots()
    +Test("ops_refl03")
    +
    +AddOperator("Isosurface")
    +DrawPlots()
    +Test("ops_refl04")
    +
    +# Move the isosurface operator before the reflect.  This tests whether
    +# or not we can reflect polydata.
    +PromoteOperator(0)
    +DrawPlots()
    +Test("ops_refl05")
    +DeleteAllPlots()
    +
    +# Test unstructured mesh -- plus test vectors.
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Vector", "vel")
    +v = VectorAttributes()
    +v.vectorOrigin = v.Head
    +v.nVectors = 400*4
    +SetPlotOptions(v)
    +
    +AddOperator("Reflect")
    +atts.reflections = (1, 0, 1, 0, 1, 0, 0, 1)
    +atts.useXBoundary = 1
    +atts.useYBoundary = 1
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.324974, 0.839345, 0.435765)
    +v.focus = (-10, -10, -10)
    +v.viewUp = (-0.252067, 0.367233, -0.895322)
    +v.viewAngle = 30
    +v.parallelScale = 34.641
    +v.nearPlane = -69.282
    +v.farPlane = 69.282
    +v.imagePan = (0, 0)
    +v.imageZoom = 1.56244
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, 0)
    +SetView3D(v)
    +
    +Test("ops_refl06")
    +
    +
    +# Now test a zonal vector variable (different code in the reflect operator).
    +ChangeActivePlotsVar("disp")
    +Test("ops_refl07")
    +
    +disp_atts = DisplaceAttributes()
    +disp_atts.variable = "vel"
    +SetDefaultOperatorOptions(disp_atts)
    +AddOperator("Displace")
    +DrawPlots()
    +Test("ops_refl08")
    +
    +PromoteOperator(0)
    +disp_atts.variable = "disp"
    +disp_atts.factor = 4
    +SetOperatorOptions(disp_atts)
    +ChangeActivePlotsVar("vel")
    +DrawPlots()
    +Test("ops_refl09")
    +DeleteAllPlots()
    +
    +
    +# Test that we properly put ghost nodes along the reflection plane.
    +
    +# There is a lot of code dedicated to creating the ghost nodes for a 
    +# rectilinear grid.  Use the PXPYPZ and NXNYNZ octants to flex all of that 
    +# code.
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "hardyglobal")
    +pc = PseudocolorAttributes()
    +pc.SetOpacityType(pc.Constant)
    +pc.opacity = 0.3
    +SetPlotOptions(pc)
    +
    +AddOperator("Reflect")
    +r = ReflectAttributes()
    +r.reflections = (1,1,1,1,1,1,1,1)
    +SetOperatorOptions(r)
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.390471, 0.546441, 0.740901)
    +v.focus = (-10, -10, -10)
    +v.viewUp = (0.00925777, 0.807079, -0.590371)
    +v.viewAngle = 30
    +v.parallelScale = 34.641
    +v.nearPlane = -69.282
    +v.farPlane = 69.282
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, 0)
    +SetView3D(v)
    +
    +Test("ops_refl10")
    +
    +r.octant = r.NXNYNZ
    +SetOperatorOptions(r)
    +
    +v.viewNormal = (0.576101, 0.343493, 0.741701)
    +v.focus = (10, 10, 10)
    +v.viewUp = (-0.15522, 0.936877, -0.313318)
    +SetView3D(v)
    +
    +Test("ops_refl11")
    +
    +
    +# Now make sure that this works well with an everyday vtkPointSet as well.
    +# Also test that we can handle the presence of both ghost nodes (from the
    +# reflect) and ghost zones (from the multi_ucd3d file).
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +SetPlotOptions(pc)
    +AddOperator("Reflect")
    +r = ReflectAttributes()
    +r.reflections = (1,0,0,0,1,0,0,0)
    +SetOperatorOptions(r)
    +DrawPlots()
    +
    +v.viewNormal = (0.328912, 0.896692, 0.296244)
    +v.focus = (0, 2.5, 20)
    +v.viewUp = (-0.710536, 0.441617, -0.547826)
    +v.viewAngle = 30
    +v.parallelScale = 20.7666
    +v.nearPlane = -41.5331
    +v.farPlane = 41.5331
    +v.imagePan = (-0.237006, -0.229008)
    +v.imageZoom = 1.25605
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, 0)
    +SetView3D(v)
    +
    +Test("ops_refl12")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Boundary", "mat1")
    +AddOperator("Project")
    +AddOperator("Reflect")
    +DrawPlots()
    +Test("ops_refl13")
    +
    +# The "mass volume extractor" of the volume renderer depends on the
    +# rectilinear grid not being inverted.  Test that here ('6321).
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Volume", "d")
    +AddOperator("Reflect")
    +DrawPlots()
    +Test("ops_refl14")
    +
    +#
    +# Now test reflecting different datasets over arbitrary planes.
    +#
    +
    +# Test 3D rectilinear over arbitrary plane.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +AddPlot("Pseudocolor" ,"d")
    +AddOperator("Reflect")
    +
    +atts = ReflectAttributes()
    +atts.reflectType = atts.Plane
    +atts.planePoint = (1, 1, 1)
    +atts.planeNormal = (4, 5, 6)
    +SetOperatorOptions(atts)
    +
    +DrawPlots()
    +
    +Test("arb_plane00")
    +
    +# Test 3D curvilinear over arbitrary plane. 
    +DeleteAllPlots()
    +ResetView()
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +AddPlot("Pseudocolor" ,"v")
    +AddOperator("Reflect")
    +
    +atts = ReflectAttributes()
    +atts.reflectType = atts.Plane
    +atts.planePoint = (-8, -3, -4)
    +atts.planeNormal = (4.5, 3, 2)
    +SetOperatorOptions(atts)
    +
    +DrawPlots()
    +
    +Test("arb_plane01")
    +
    +# Test 2D curvilinear
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor" ,"v")
    +AddOperator("Reflect")
    +
    +atts = ReflectAttributes()
    +atts.reflectType = atts.Plane
    +atts.planePoint = (-8, -3, 0)
    +atts.planeNormal = (4.5, 3, 0)
    +SetOperatorOptions(atts)
    +
    +DrawPlots()
    +
    +Test("arb_plane02")
    +
    +# Test 3D unstructured
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor" ,"v")
    +AddOperator("Reflect")
    +
    +atts = ReflectAttributes()
    +atts.reflectType = atts.Plane
    +atts.planePoint = (-8, -3, 0)
    +atts.planeNormal = (7, 9, 1)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("arb_plane03")
    +
    +AddOperator("Reflect")
    +
    +atts = ReflectAttributes()
    +atts.reflectType = atts.Plane
    +atts.planePoint = (20, 15, 19)
    +atts.planeNormal = (3, 2, 4)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("arb_plane04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_remap.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_remap.html new file mode 100644 index 000000000..7cc1d9ad4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_remap.html @@ -0,0 +1,264 @@ + +Results for operators/remap.py + +

    Results of VisIt Regression Test - operators/remap

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ghost_zvar_int0.000.00
    ghost_zvar_ext0.000.00
    globalNode_p_int0.000.00
    globalNode_p_ext0.000.00
    mCurve2_d_int0.000.00
    mCurve2_d_ext0.000.00
    mCurve2_d_dup_int0.000.00
    mCurve2_d_dup_ext0.000.00
    mCurve2_nmats_int0.000.00
    mCurve2_nmats_ext0.000.00
    mCurve2_p_int0.000.00
    mCurve2_p_ext0.000.00
    mCurve3_d_int0.000.00
    mCurve3_d_ext0.000.00
    mCurve3_d_dup_int0.000.00
    mCurve3_d_dup_ext0.000.00
    mCurve3_nmats_int0.000.00
    mCurve3_nmats_ext0.000.00
    mCurve3_p_int0.000.00
    mCurve3_p_ext0.000.00
    mRect2_d_int0.000.00
    mRect2_d_ext0.000.00
    mRect2_d_dup_int0.000.00
    mRect2_d_dup_ext0.000.00
    mRect2_nmats_int0.000.00
    mRect2_nmats_ext0.000.00
    mRect2_p_int0.000.00
    mRect2_p_ext0.000.00
    mRect3_d_int0.000.00
    mRect3_d_ext0.000.00
    mRect3_d_dup_int0.000.00
    mRect3_d_dup_ext0.000.00
    mRect3_nmats_int0.000.00
    mRect3_nmats_ext0.000.00
    mRect3_p_int0.000.00
    mRect3_p_ext0.000.00
    ucd2_p_int0.000.00
    ucd2_p_ext0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_remap_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_remap_py.html new file mode 100644 index 000000000..60ccb6280 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_remap_py.html @@ -0,0 +1,133 @@ +operators/remap.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  remap.py
    +#
    +#  Tests:      remap operator
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Eddie Rusu
    +#  Date:       Fri Feb  1 11:16:24 PST 2019
    +#
    +#  Modifications:
    +#     Eddie Rusu, Tue Apr 13 12:08:59 PDT 2021
    +#     Changed Pseudocolor CurrentPlot to ActualData.
    +# ----------------------------------------------------------------------------
    +
    +def remap(cells, type = 0):
    +    AddOperator("Remap", 1)
    +    RemapAtts = RemapAttributes()
    +    RemapAtts.cellsX = cells
    +    RemapAtts.cellsY = cells
    +    RemapAtts.cellsZ = cells
    +    if type == 1:
    +        RemapAtts.variableType = RemapAtts.extrinsic
    +        setPseudoOptions()
    +    SetOperatorOptions(RemapAtts, 1)
    +    DrawPlots()
    +
    +def setPseudoOptions():
    +    PseudocolorAtts = PseudocolorAttributes()
    +    PseudocolorAtts.limitsMode = PseudocolorAtts.ActualData
    +    SetPlotOptions(PseudocolorAtts)
    +
    +def set3DView():
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0.5, 0.5, 0.7)
    +    View3DAtts.focus = (1.5, 1.5, 0.5)
    +    View3DAtts.viewUp = (-0.0429563, 0.998733, -0.0262205)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 2.17945
    +    View3DAtts.nearPlane = -4.3589
    +    View3DAtts.farPlane = 4.3589
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (1.5, 1.5, 0.5)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +def plotVariables(varName, saveName, cells = 10):
    +    AddPlot("Pseudocolor", varName, 1, 1)
    +    DrawPlots()
    +
    +    remap(cells)
    +    Test(saveName + "_int")
    +
    +    RemoveOperator(0, 1)
    +    remap(cells, 1)
    +    Test(saveName + "_ext")
    +
    +    DeleteAllPlots()
    +
    +def ghost1():
    +    OpenDatabase(silo_data_path("ghost1.silo"))
    +    plotVariables("zvar", "ghost_zvar")
    +    CloseDatabase(silo_data_path("ghost1.silo"))
    +
    +def globalNode():
    +    OpenDatabase(silo_data_path("global_node.silo"))
    +    set3DView()
    +    plotVariables("p", "globalNode_p", 4) # Wrong results.
    +    ResetView()
    +    CloseDatabase(silo_data_path("global_node.silo"))
    +
    +def mCurve2():
    +    OpenDatabase(silo_data_path("multi_curv2d.silo"))
    +    plotVariables("d", "mCurve2_d")
    +    plotVariables("d_dup", "mCurve2_d_dup")
    +    plotVariables("nmats", "mCurve2_nmats")
    +    plotVariables("p", "mCurve2_p")
    +    CloseDatabase(silo_data_path("multi_curv2d.silo"))
    +
    +def mCurve3():
    +    OpenDatabase(silo_data_path("multi_curv3d.silo"))
    +    set3DView()
    +    plotVariables("d", "mCurve3_d", 4)
    +    plotVariables("d_dup", "mCurve3_d_dup", 4)
    +    plotVariables("nmats", "mCurve3_nmats", 4)
    +    plotVariables("p", "mCurve3_p", 4)
    +    ResetView()
    +    CloseDatabase(silo_data_path("multi_curv3d.silo"))
    +
    +def mRect2():
    +    OpenDatabase(silo_data_path("multi_rect2d.silo"))
    +    plotVariables("d", "mRect2_d")
    +    plotVariables("d_dup", "mRect2_d_dup")
    +    plotVariables("nmats", "mRect2_nmats")
    +    plotVariables("p", "mRect2_p")
    +    CloseDatabase(silo_data_path("multi_rect2d.silo"))
    +
    +def mRect3():
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +    set3DView()
    +    plotVariables("d", "mRect3_d", 4)
    +    plotVariables("d_dup", "mRect3_d_dup", 4)
    +    plotVariables("nmats", "mRect3_nmats", 4)
    +    plotVariables("p", "mRect3_p", 4)
    +    ResetView()
    +    CloseDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +def ucd2():
    +    OpenDatabase(silo_data_path("ucd2d.silo"))
    +    plotVariables("p", "ucd2_p")
    +    CloseDatabase(silo_data_path("ucd2d.silo"))
    +
    +def Main():
    +    ghost1()
    +    globalNode()
    +    mCurve2()
    +    mCurve3()
    +    mRect2()
    +    mRect3()
    +    ucd2()
    +
    +Main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_resample.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_resample.html new file mode 100644 index 000000000..f1d814424 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_resample.html @@ -0,0 +1,72 @@ + +Results for operators/resample.py + +

    Results of VisIt Regression Test - operators/resample

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_resampleop_noise_point_small0.000.00
    ops_resampleop_noise_point_large0.000.00
    ops_resampleop_noise_point_explicit0.000.00
    ops_resampleop_noise_point_backfull0.000.00
    ops_resampleop_noise_hardy_small0.000.00
    ops_resampleop_curv2d0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_resample_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_resample_py.html new file mode 100644 index 000000000..1fcdab04c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_resample_py.html @@ -0,0 +1,124 @@ +operators/resample.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  resample.py
    +#
    +#  Tests:      resample operator
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Sean Ahern
    +#  Date:       Thu Jan  3 11:00:41 EST 2008
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Wed Dec 31 14:32:34 PST 2008
    +#    Rename ResamplePluginAtts to ResampleAtts.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Alister Maguire, Fri Jan 29 08:17:27 PST 2021
    +#    Set useExtents = 0 where appropriate as setting the start/end
    +#    values no longer overrides useExtents.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "PointVar")
    +AddOperator("Resample")
    +
    +resample = ResampleAttributes()
    +resample.samplesX = 5
    +resample.samplesY = 6
    +resample.samplesZ = 7
    +SetOperatorOptions(resample)
    +
    +DrawPlots()
    +
    +bigView = GetView3D()
    +bigView.SetViewNormal(-0.528889, 0.367702, 0.7649)
    +bigView.SetViewUp(0.176641, 0.929226, -0.324558)
    +bigView.SetParallelScale(17.3205)
    +bigView.SetPerspective(1)
    +SetView3D(bigView)
    +
    +Test("ops_resampleop_noise_point_small")
    +
    +resample = ResampleAttributes()
    +resample.samplesX = 20
    +resample.samplesY = 30
    +resample.samplesZ = 40
    +SetOperatorOptions(resample)
    +
    +Test("ops_resampleop_noise_point_large")
    +
    +resample = ResampleAttributes()
    +resample.useExtents = 0
    +resample.startX = 5.25
    +resample.endX = 9.57
    +resample.samplesX = 10
    +resample.startY = -5.9
    +resample.endY = 0
    +resample.samplesY = 20
    +resample.startZ = -6
    +resample.endZ = 0
    +resample.samplesZ = 30
    +SetOperatorOptions(resample)
    +
    +ResetView()
    +v = GetView3D()
    +v.SetViewNormal(-0.41557,-0.758094,0.502588)
    +v.SetFocus(6.862131,4.91535,-9.08261)
    +v.SetViewUp(-0.720258,0.611719,0.327153)
    +v.SetParallelScale(10)
    +v.SetImagePan(-0.21812, 0.210298)
    +v.SetImageZoom(1.6527)
    +v.SetPerspective(1)
    +SetView3D(v)
    +
    +Test("ops_resampleop_noise_point_explicit")
    +
    +resample.useExtents = 1
    +SetOperatorOptions(resample)
    +SetView3D(bigView)
    +
    +Test("ops_resampleop_noise_point_backfull")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "hardyglobal")
    +AddOperator("Resample")
    +
    +resample = ResampleAttributes()
    +resample.samplesX = 3
    +resample.samplesY = 3
    +resample.samplesZ = 3
    +SetOperatorOptions(resample)
    +
    +SetView3D(bigView)
    +DrawPlots()
    +
    +Test("ops_resampleop_noise_hardy_small")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "v")
    +AddOperator("Resample")
    +
    +resample = ResampleAttributes()
    +resample.samplesX = 10
    +resample.samplesY = 20
    +resample.is3D = 0
    +SetOperatorOptions(resample)
    +
    +DrawPlots()
    +
    +Test("ops_resampleop_curv2d")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_revolve.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_revolve.html new file mode 100644 index 000000000..0e22a0dcc --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_revolve.html @@ -0,0 +1,42 @@ + +Results for operators/revolve.py + +

    Results of VisIt Regression Test - operators/revolve

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    revolve_points_000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_revolve_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_revolve_py.html new file mode 100644 index 000000000..4c36c5810 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_revolve_py.html @@ -0,0 +1,35 @@ +operators/revolve.py
    # ---------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  revolve.py
    +#
    +#  Tests:      mesh      - 2D unstructured, single domain, 
    +#              plots     - pseudocolor
    +#              operators - revolve
    +#
    +#  Programmer: Alister Maguire
    +#  Date: Fri Jun 19 13:30:11 PDT 2020
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def TestRevolvingPoints():
    +    #
    +    # Make sure that we can revolve points. We weren't always able to do this.
    +    #
    +    OpenDatabase(silo_data_path("multi_point2d.silo"))
    +    AddPlot("Pseudocolor", "v", 1, 1)
    +    AddOperator("Revolve", 1)
    +    DrawPlots()
    +    Test("revolve_points_00")
    +    DeleteActivePlots()
    +    CloseDatabase(silo_data_path("multi_point2d.silo"))
    +
    +def Main():
    +    TestRevolvingPoints()
    +
    +Main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_slice.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_slice.html new file mode 100644 index 000000000..66c4421d8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_slice.html @@ -0,0 +1,297 @@ + +Results for operators/slice.py + +

    Results of VisIt Regression Test - operators/slice

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Slice through a point
    ops_Slice010.000.00
    Slice through a zone
    ops_Slice020.000.00
    ops_Slice030.000.00
    Slice FilledBoundary plot
    ops_Slice040.000.00
    ops_Slice050.000.00
    ops_Slice060.000.00
    Slice Mesh plot
    ops_Slice070.000.00
    ops_Slice080.000.00
    ops_Slice090.000.00
    ops_Slice100.000.00
    ops_Slice110.000.00
    ops_Slice120.000.00
    ops_Slice130.000.00
    ops_Slice140.000.00
    ops_Slice150.000.00
    ops_Slice160.000.00
    ops_Slice170.000.00
    ops_Slice180.000.00
    Slice point mesh
    ops_Slice190.000.00
    Slice through a point
    ops_Slice200.000.00
    ops_Slice210.000.00
    ops_Slice220.000.00
    ops_Slice230.000.00
    ops_Slice240.000.00
    ops_Slice250.000.00
    ops_Slice260.000.00
    ops_Slice270.000.00
    ops_Slice280.000.00
    ops_Slice290.000.00
    ops_Slice300.000.00
    ops_Slice310.000.00
    ops_Slice320.000.00
    ops_Slice330.000.00
    ops_Slice340.000.00
    ops_Slice350.000.00
    Slice polyhedral cells
    ops_Slice360.000.00
    ops_Slice370.000.00
    ops_Slice380.000.00
    ops_Slice390.000.00
    ops_Slice400.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_slice_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_slice_py.html new file mode 100644 index 000000000..f2e125a51 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_slice_py.html @@ -0,0 +1,590 @@ +operators/slice.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  slice.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, single domain,
    +#                          3D unstructured single domain
    +#                          3D curvilinear multi-domain
    +#                          3D unstructured multi-domain
    +#              plots     - pc, filled boundary, mesh
    +#              operators - slice, onion peel, threshold, index select
    +#
    +#  Defect ID:  '3950 (for tests 16,17,18).  '4662 (test 19).
    +#              '4706 (tests 20-27).  '4913 (test 28), '4975 (test 29).
    +#              '5157 (test 31-2). '5794 (test 33), '7630 (test 35)
    +#
    +#  Known problems:   (1) Slicing of plots that have had material interface
    +#                    reconstruction can often have holes.  This is a problem
    +#                    with the interface reconstruction routines.  When those
    +#                    are fixed, the holes should go away.
    +#                    Tests affected: 4, 5, 6, 15
    +#                    (2) The mesh lines are being shifted towards the camera.
    +#                    For one test, the line actually gets shifted too far and
    +#                    slightly intersects a cell.
    +#                    Tests affected: 7, 8, 9
    +#                    (3) The zonal center for the slice is not consistently
    +#                    determined (see defect '3437).  This means that test 2
    +#                    and 5 do not have the same origin for their slice.
    +#                    This is a known problem.
    +#
    +#  Programmer: Hank Childs
    +#  Date:       June 19, 2003
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset and boundary plots.
    +#
    +#    Hank Childs, Fri Oct 31 14:35:14 PST 2003
    +#    Added test for getting extents right when projecting to 2D and setting
    +#    the origin based on a percent.  From '3950.
    +#
    +#    Hank Childs, Tue Mar 30 08:42:02 PST 2004
    +#    Added test for slicing point meshes. ['4662]
    +#
    +#    Hank Childs, Tue Apr 13 09:53:21 PDT 2004
    +#    Test slicing extremes with percent (0%, 100%) ['4706]
    +#
    +#    Hank Childs, Mon May 24 16:20:49 PDT 2004
    +#    Test slicing point meshes in conjunction with the displace operator
    +#    when the points are all on a plane. ['4913]
    +#
    +#    Hank Childs, Fri Jun 18 08:45:11 PDT 2004
    +#    Test that we can slice boundary plots. ['4975]
    +#
    +#    Hank Childs, Tue Jul 20 16:53:16 PDT 2004
    +#    Test the projection to 2D when the normal and up-axis are not orthogonal
    +#    ['5157].
    +#
    +#    Eric Brugger, Wed Dec 29 15:04:04 PST 2004
    +#    Added a test for changing the time state for a plot that has been
    +#    sliced through a zone.  This tests visit00005794.
    +#
    +#    Kathleen Bonnell, Tue Jan 25 17:27:16 PST 2005 
    +#    Added a test for specifying the meshname with domain/zone type of slice. 
    +#
    +#    Hank Childs, Sat Jan 27 12:45:03 PST 2007
    +#    Added a test for slicing 1xJxK and Ix1xK meshes.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, June 19, 2023
    +#    Add call to RequiredDatabasePlugin.
    +#
    +# ----------------------------------------------------------------------------
    +
    +RequiredDatabasePlugin(("Silo", "EnSight"))
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +TestSection("Slice through a point")
    +# Test 1 -- a slice through a point
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (-0.1, 0.8, -0.6)
    +atts.originType = atts.Point
    +atts.originPoint = (0.3333, 0.094, 0.081)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +view = GetView3D()
    +view.viewNormal = (-0.53, -0.07, -0.84)
    +view.focus = (0.5, 0.5, 0.5)
    +view.viewUp = (0, 1, 0)
    +view.viewAngle = 30
    +view.parallelScale = 0.866
    +view.nearPlane = -1.73
    +view.farPlane = 1.73
    +view.imagePan = (0.058, 0.26)
    +view.imageZoom = 12.6
    +view.perspective = 1
    +SetView3D(view)
    +
    +Test("ops_Slice01")
    +
    +TestSection("Slice through a zone")
    +# Test 2 -- A slice through a zone.  Add an onion peel of that zone to show
    +# that the slice is in the right spot.
    +atts.originType = atts.Zone
    +atts.originZone = 2500
    +atts.originZoneDomain = 0
    +SetOperatorOptions(atts)
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("OnionPeel")
    +op_atts = OnionPeelAttributes()
    +op_atts.index = 2500
    +SetOperatorOptions(op_atts)
    +DrawPlots()
    +SetView3D(view)
    +
    +Test("ops_Slice02")
    +
    +# Test 3 -- A slice through a node.  The node (2645) is incident to the zone
    +# from before (2500).
    +SetActivePlots(0)
    +atts.originType = atts.Node
    +atts.originNode = 2645
    +atts.originNodeDomain = 0
    +SetOperatorOptions(atts)
    +
    +Test("ops_Slice03")
    +
    +# Now repeat the three tests with a filled boundary plot.
    +TestSection("Slice FilledBoundary plot")
    +DeleteActivePlots()
    +
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Slice")
    +atts.originType = atts.Point
    +atts.originPoint = (0.3333, 0.094, 0.081)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("ops_Slice04")
    +
    +atts.originType = atts.Zone
    +atts.originZone = 2500
    +atts.originZoneDomain = 0
    +SetOperatorOptions(atts)
    +
    +Test("ops_Slice05")
    +
    +atts.originType = atts.Node
    +atts.originNode = 2645
    +atts.originNodeDomain = 0
    +SetOperatorOptions(atts)
    +
    +Test("ops_Slice06")
    +
    +# Slice a mesh plot.
    +TestSection("Slice Mesh plot")
    +DeleteActivePlots()
    +
    +AddPlot("Mesh", "quadmesh3d")
    +AddOperator("Slice")
    +atts.originType = atts.Zone
    +atts.originZone = 2500
    +atts.originZoneDomain = 0
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("ops_Slice07")
    +
    +t_atts = ThresholdAttributes()
    +t_atts.listedVarNames = ("d")
    +t_atts.lowerBounds = (0.6)
    +t_atts.upperBounds = (1.0)
    +SetDefaultOperatorOptions(t_atts)
    +AddOperator("Threshold")
    +DemoteOperator(1, 0)
    +DrawPlots()
    +
    +Test("ops_Slice08")
    +
    +RemoveOperator(0, 0)
    +
    +insel_atts = IndexSelectAttributes()
    +insel_atts.dim = insel_atts.ThreeD
    +insel_atts.xMin = 10
    +insel_atts.xMax = 18
    +insel_atts.yMin = 3
    +insel_atts.yMax = 4
    +insel_atts.zMin = 0
    +insel_atts.zMax = 3
    +SetDefaultOperatorOptions(insel_atts)
    +AddOperator("IndexSelect")
    +DemoteOperator(1, 0)
    +DrawPlots()
    +
    +Test("ops_Slice09")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("sid97.silo"))
    +
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.originType = atts.Point
    +atts.originPoint = (7400, -1300, 1000)
    +atts.normal = (0, 1, 0)
    +atts.project2d = 1
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("ops_Slice10")
    +
    +DeleteAllPlots()
    +
    +
    +OpenDatabase(silo_data_path("tire.silo"))
    +
    +AddPlot("Subset", "domains")
    +AddOperator("Slice")
    +atts.originType = atts.Zone
    +atts.originZone = 100
    +atts.originZoneDomain = 2
    +atts.normal = (0.707, -0.707, 0)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("ops_Slice11")
    +
    +
    +atts.normal = (0.707, 0.707, 0)
    +SetOperatorOptions(atts)
    +
    +Test("ops_Slice12")
    +
    +
    +atts.originType = atts.Node
    +atts.originNode = 55
    +atts.originNodeDomain = 3
    +SetOperatorOptions(atts)
    +
    +Test("ops_Slice13")
    +
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Slice")
    +atts.originType = atts.Zone
    +atts.originZone = 1005
    +atts.originZoneDomain = 18
    +atts.normal = (0.707, 0, -0.707)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("ops_Slice14")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Slice")
    +atts.originType = atts.Zone
    +atts.originZone = 1005
    +atts.originZoneDomain = 18
    +atts.normal = (0.707, 0, -0.707)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("ops_Slice15")
    +
    +
    +atts.originType = atts.Percent
    +atts.originPercent = 69
    +atts.axisType = atts.YAxis
    +SetOperatorOptions(atts)
    +
    +Test("ops_Slice16")
    +
    +atts.originType = atts.Percent
    +atts.originPercent = 50
    +atts.axisType = atts.ZAxis
    +SetOperatorOptions(atts)
    +
    +Test("ops_Slice17")
    +
    +atts.originType = atts.Percent
    +atts.originPercent = 10
    +atts.axisType = atts.XAxis
    +SetOperatorOptions(atts)
    +
    +Test("ops_Slice18")
    +
    +DeleteAllPlots()
    +
    +TestSection("Slice point mesh")
    +# Test that we can slice point meshes.  The points must be exactly on the
    +# plane (or at least within some tolerance).  To guarantee the point positions,
    +# take a 2D plot and put it into 3D.  Then slice it.
    +OpenDatabase(silo_data_path("noise2d.silo"))
    +
    +AddPlot("Pseudocolor", "PointVar")
    +pc_atts = PseudocolorAttributes()
    +pc_atts.pointType = pc_atts.Box
    +pc_atts.pointSize = 0.4
    +SetPlotOptions(pc_atts)
    +AddOperator("Transform")
    +trans_atts = TransformAttributes()
    +trans_atts.doRotate = 1
    +trans_atts.rotateAxis = (0, 1, 0)
    +SetOperatorOptions(trans_atts)
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.axisType = atts.ZAxis
    +atts.originType = atts.Intercept
    +atts.originIntercept = 0
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("ops_Slice19")
    +
    +DeleteAllPlots()
    +ActivateDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +# Test 1 -- a slice through a point
    +TestSection("Slice through a point")
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Slice")
    +atts.originType = atts.Percent
    +atts.project2d = 0
    +atts.originPercent = 0
    +atts.axisType=atts.XAxis
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +view = GetView3D()
    +view.viewNormal = (0.565246, 0.332, 0.755)
    +view.focus = (0.5, 0.0, 0.5)
    +view.viewUp = (-0.08, 0.933, -0.35)
    +view.viewAngle = 30
    +view.parallelScale = 0.707
    +view.nearPlane = -1.41421
    +view.farPlane = 1.41421
    +view.imagePan = (0.1, -0.181)
    +view.imageZoom = 0.7
    +view.perspective = 1
    +SetView3D(view)
    +
    +Test("ops_Slice20")
    +
    +atts.originPercent = 100
    +SetOperatorOptions(atts)
    +Test("ops_Slice21")
    +
    +atts.axisType=atts.YAxis
    +atts.originPercent = 0
    +SetOperatorOptions(atts)
    +Test("ops_Slice22")
    +
    +atts.axisType=atts.YAxis
    +atts.originPercent = 100
    +SetOperatorOptions(atts)
    +Test("ops_Slice23")
    +
    +atts.axisType=atts.ZAxis
    +atts.originPercent = 0
    +SetOperatorOptions(atts)
    +Test("ops_Slice24")
    +
    +atts.axisType=atts.ZAxis
    +atts.originPercent = 100
    +SetOperatorOptions(atts)
    +Test("ops_Slice25")
    +
    +# The X-axis for orthogonal slices is -1,0,0.  Try 1,0,0.
    +atts.axisType=atts.Arbitrary
    +atts.normal=(1,0,0)
    +atts.originPercent = 0
    +SetOperatorOptions(atts)
    +Test("ops_Slice26")
    +
    +# The Y-axis for orthogonal slices is 0,-1,0.  Try 0,1,0.
    +atts.axisType=atts.Arbitrary
    +atts.normal=(0,1,0)
    +atts.originPercent = 0
    +SetOperatorOptions(atts)
    +Test("ops_Slice27")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "PointVar")
    +pc_atts.pointSize = 1.0
    +SetPlotOptions(pc_atts)
    +DefineVectorExpression("disp", "{0,0,-coord(PointMesh)[2]}")
    +AddOperator("Displace")
    +disp = DisplaceAttributes()
    +disp.variable = "disp"
    +SetOperatorOptions(disp)
    +AddOperator("Slice")
    +slice = SliceAttributes()
    +slice.axisType = slice.ZAxis
    +SetOperatorOptions(slice)
    +DrawPlots()
    +Test("ops_Slice28")
    +
    +# First, test slice by a zone with a boundary plot where the zone is along
    +# a material boundary.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Boundary", "mat1")
    +AddOperator("Slice")
    +slice = SliceAttributes()
    +slice.originType = atts.Zone
    +slice.originZone = 10000
    +slice.originZoneDomain = 0
    +slice.axisType = slice.ZAxis
    +SetOperatorOptions(slice)
    +DrawPlots()
    +Test("ops_Slice29")
    +
    +# Now, test slice by a zone where the zone is not along a material boundary.
    +slice.originZone = 9998
    +SetOperatorOptions(slice)
    +Test("ops_Slice30")
    +
    +DeleteAllPlots()
    +
    +# Test what happens when the up axis is not orthogonal to the normal.
    +# Start off with the two being orthogonal, though.
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "hardyglobal")
    +AddOperator("Slice")
    +slice = SliceAttributes()
    +slice.normal = (1, -1, 0)
    +slice.upAxis = (0, 0, 1)
    +slice.project2d = 1
    +slice.originType = slice.Point
    +slice.originPoint = (0,0,0)
    +SetOperatorOptions(slice)
    +DrawPlots()
    +Test("ops_Slice31")
    +
    +# Now make them be non-orthogonal.
    +slice.upAxis = (0,1,0)
    +SetOperatorOptions(slice)
    +Test("ops_Slice32")
    +
    +# Open a multi time state database, create a pseudocolor plot slicing
    +# through a zone and then change the time state.
    +DeleteAllPlots()
    +ResetView()
    +OpenDatabase(silo_data_path("wave*.silo database"))
    +
    +
    +AddPlot("Pseudocolor", "pressure")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 1
    +atts.axisType = atts.YAxis
    +atts.originType = atts.Zone
    +atts.originZone = 100
    +atts.originZoneDomain = 0
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +TimeSliderNextState()
    +Test("ops_Slice33")
    +
    +
    +DeleteAllPlots()
    +ResetView()
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor", "d_dup")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 1
    +atts.axisType = atts.YAxis
    +atts.originType = atts.Zone
    +atts.originZone = 27
    +atts.originZoneDomain = 2
    +atts.meshName = "mesh1"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("ops_Slice34")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("IndexSelect")
    +iatts = IndexSelectAttributes()
    +iatts.dim = iatts.ThreeD
    +iatts.xMin = 0
    +iatts.xMax = 1000
    +iatts.yMin = 10
    +iatts.yMax = 10
    +iatts.zMin = 0
    +iatts.zMax = 1000
    +iatts.xIncr = 1
    +iatts.yIncr = 1
    +iatts.zIncr = 1
    +SetOperatorOptions(iatts)
    +AddOperator("Slice")
    +DrawPlots()
    +ResetView()
    +Test("ops_Slice35")
    +DeleteAllPlots()
    +
    +TestSection("Slice polyhedral cells")
    +OpenDatabase(data_path("EnSight_test_data/small.case"))
    +
    +DefineScalarExpression("zid", "zoneid(mesh) * 1.")
    +DefineScalarExpression("nid", "nodeid(mesh) * 1.")
    +AddPlot("Pseudocolor", "zid")
    +DrawPlots()
    +v = GetView3D()
    +v.viewNormal = (-0.597184, 0.364571, 0.714464)
    +v.focus = (1, 1.75, 1)
    +v.viewUp = (0.222007, 0.931066, -0.289533)
    +v.viewAngle = 30
    +v.parallelScale = 4.58939
    +v.nearPlane = -9.17878
    +v.farPlane = 9.17878
    +v.imagePan = (-0.0112992, 0.0560752)
    +v.imageZoom = 1.77156
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (1, 1.75, 1)
    +v.axis3DScaleFlag = 0
    +v.axis3DScales = (1, 1, 1)
    +v.shear = (0, 0, 1)
    +SetView3D(v)
    +Test("ops_Slice36")
    +
    +AddOperator("Slice")
    +s = SliceAttributes()
    +s.originType = s.Percent  # Point, Intercept, Percent, Zone, Node
    +s.originPoint = (0, 0, 0)
    +s.originIntercept = 0
    +s.originPercent = 50
    +s.originZone = 0
    +s.originNode = 0
    +s.normal = (0, 0, 1)
    +s.axisType = s.XAxis  # XAxis, YAxis, ZAxis, Arbitrary, ThetaPhi
    +s.upAxis = (0, 1, 0)
    +s.project2d = 0
    +s.interactive = 1
    +s.flip = 0
    +s.originZoneDomain = 0
    +s.originNodeDomain = 0
    +s.meshName = "mesh"
    +s.theta = 0
    +s.phi = 90
    +SetOperatorOptions(s)
    +DrawPlots()
    +Test("ops_Slice37")
    +
    +ChangeActivePlotsVar("nid")
    +Test("ops_Slice38")
    +
    +ChangeActivePlotsVar("zid")
    +s.axisType = s.ZAxis
    +SetOperatorOptions(s)
    +DrawPlots()
    +Test("ops_Slice39")
    +
    +ChangeActivePlotsVar("nid")
    +Test("ops_Slice40")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_sph_resample.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_sph_resample.html new file mode 100644 index 000000000..2df070381 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_sph_resample.html @@ -0,0 +1,42 @@ + +Results for operators/sph_resample.py + +

    Results of VisIt Regression Test - operators/sph_resample

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    sph_2d0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_sph_resample_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_sph_resample_py.html new file mode 100644 index 000000000..91d9ac319 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_sph_resample_py.html @@ -0,0 +1,51 @@ +operators/sph_resample.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  sph_resample.py
    +#
    +#  Tests:      mesh    - 2D rectilinear, single domain,
    +#              plots   - pseudocolor
    +#
    +#  Defect ID:  2338 
    +#
    +#  Programmer: Kevin Griffin
    +#  Date:       Wed Jul 22 17:36:55 PDT 2015
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# 2D, Rectilinear
    +ds = data_path("silo_sph_test_data/KelvinHelmholtz-2d_McNally.visit")
    +OpenDatabase(ds)
    +
    +AddPlot("Pseudocolor", "mass_density")
    +pc = PseudocolorAttributes()
    +pc.centering = pc.Nodal
    +SetPlotOptions(pc)
    +
    +AddOperator("SPHResample")
    +SPHResampleAtts = SPHResampleAttributes()
    +SPHResampleAtts.minX = 0
    +SPHResampleAtts.maxX = 1
    +SPHResampleAtts.xnum = 100
    +SPHResampleAtts.minY = 0
    +SPHResampleAtts.maxY = 1
    +SPHResampleAtts.ynum = 100
    +SPHResampleAtts.minZ = 0
    +SPHResampleAtts.maxZ = 1
    +SPHResampleAtts.znum = 1
    +SPHResampleAtts.tensorSupportVariable = "H"
    +SPHResampleAtts.weightVariable = "mass"
    +SPHResampleAtts.RK = 1
    +SetOperatorOptions(SPHResampleAtts, 1)
    +
    +DrawPlots()
    +
    +Test("sph_2d")
    +
    +DeleteAllPlots()
    +CloseDatabase(ds)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_tessellate.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_tessellate.html new file mode 100644 index 000000000..f787b7e5e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_tessellate.html @@ -0,0 +1,162 @@ + +Results for operators/tessellate.py + +

    Results of VisIt Regression Test - operators/tessellate

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    quadratic_triangle_010.000.00
    quadratic_triangle_020.000.00
    quadratic_triangle_030.000.00
    biquadratic_quad_010.000.00
    biquadratic_quad_020.000.00
    biquadratic_quad_030.000.00
    biquadratic_quad_field_010.000.00
    biquadratic_quad_field_020.000.00
    biquadratic_quad_field_030.000.00
    quadratic_linear_quad_010.000.00
    quadratic_quad_010.000.00
    quadratic_quad_020.000.00
    quadratic_quad_030.000.00
    quadratic_mixed_010.000.00
    quadratic_mixed_020.000.00
    quadratic_mixed_030.000.00
    quadratic_hex_010.000.00
    quadratic_hex_020.000.00
    quadratic_hex_030.000.00
    quadratic_hex_040.000.00
    triquadratic_hex_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_tessellate_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_tessellate_py.html new file mode 100644 index 000000000..6be7c1a7c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_tessellate_py.html @@ -0,0 +1,286 @@ +operators/tessellate.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  tessellate.py
    +#
    +#  Tests:      mesh      - quadratic_triangle
    +#                          biquadratic_quad
    +#                          quadratic_linear_quad
    +#                          quadratic_quad
    +#                          quadratic_hex
    +#                          triquadratic_hex
    +#              plots     - pc, mesh
    +#              operators - tessellate, clip
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       July 24, 2020
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Quadratic_triangle
    +OpenDatabase(data_path("vtk_test_data/quadratic_triangle.vtk"))
    +
    +AddPlot("Pseudocolor", "x_c")
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (0.200511, 0.543812, 0.814901)
    +v.focus = (0, 0.5, 1)
    +v.viewUp = (-0.232184, 0.834474, -0.499744)
    +v.viewAngle = 30
    +v.parallelScale = 1.5
    +v.nearPlane = -3
    +v.farPlane = 3
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +SetView3D(v)
    +
    +Test("quadratic_triangle_01")
    +
    +AddOperator("Tessellate", 1)
    +DrawPlots()
    +
    +Test("quadratic_triangle_02")
    +
    +tess = TessellateAttributes()
    +tess.chordError = 0.01
    +SetOperatorOptions(tess, 0, 1)
    +
    +Test("quadratic_triangle_03")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("vtk_test_data/quadratic_triangle.vtk"))
    +
    +# Biquadratic_quad
    +OpenDatabase(data_path("vtk_test_data/biquadratic_quad.vtk"))
    +
    +AddPlot("Pseudocolor", "x_c")
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (0.200511, 0.543812, 0.814901)
    +v.focus = (0, 0.5, 1)
    +v.viewUp = (-0.232184, 0.834474, -0.499744)
    +v.viewAngle = 30
    +v.parallelScale = 1.5
    +v.nearPlane = -3
    +v.farPlane = 3
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +SetView3D(v)
    +
    +Test("biquadratic_quad_01")
    +
    +AddOperator("Tessellate", 1)
    +DrawPlots()
    +
    +Test("biquadratic_quad_02")
    +
    +tess = TessellateAttributes()
    +tess.chordError = 0.01
    +SetOperatorOptions(tess, 0, 1)
    +
    +Test("biquadratic_quad_03")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("vtk_test_data/biquadratic_quad.vtk"))
    +
    +# Biquadratic_quad_field
    +OpenDatabase(data_path("vtk_test_data/biquadratic_quad_field.vtk"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +Test("biquadratic_quad_field_01")
    +
    +AddOperator("Tessellate", 1)
    +DrawPlots()
    +
    +Test("biquadratic_quad_field_02")
    +
    +tess = TessellateAttributes()
    +tess.chordError = 0.01
    +tess.fieldCriterion = 0.01
    +SetOperatorOptions(tess, 0, 1)
    +
    +Test("biquadratic_quad_field_03")
    +
    +CloseDatabase(data_path("vtk_test_data/biquadratic_quad_field.vtk"))
    +DeleteAllPlots()
    +
    +# Quadratic_linear_quad
    +OpenDatabase(data_path("vtk_test_data/quadratic_linear_quad.vtk"))
    +
    +AddPlot("Pseudocolor", "x_c")
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (0.200511, 0.543812, 0.814901)
    +v.focus = (0, 0.5, 1)
    +v.viewUp = (-0.232184, 0.834474, -0.499744)
    +v.viewAngle = 30
    +v.parallelScale = 1.5
    +v.nearPlane = -3
    +v.farPlane = 3
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +SetView3D(v)
    +
    +Test("quadratic_linear_quad_01")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("vtk_test_data/quadratic_linear_quad.vtk"))
    +
    +# Quadratic_quad
    +OpenDatabase(data_path("vtk_test_data/quadratic_quad.vtk"))
    +
    +AddPlot("Pseudocolor", "x_c")
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (0.200511, 0.543812, 0.814901)
    +v.focus = (0, 0.5, 1)
    +v.viewUp = (-0.232184, 0.834474, -0.499744)
    +v.viewAngle = 30
    +v.parallelScale = 1.5
    +v.nearPlane = -3
    +v.farPlane = 3
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +SetView3D(v)
    +
    +Test("quadratic_quad_01")
    +
    +AddOperator("Tessellate", 1)
    +DrawPlots()
    +
    +Test("quadratic_quad_02")
    +
    +tess = TessellateAttributes()
    +tess.chordError = 0.01
    +SetOperatorOptions(tess, 0, 1)
    +
    +Test("quadratic_quad_03")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("vtk_test_data/quadratic_quad.vtk"))
    +
    +# Mixed biquadratic_quad and quadratic_triangle
    +OpenDatabase(data_path("vtk_test_data/quadratic_mixed.vtk"))
    +
    +AddPlot("Pseudocolor", "x_c")
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (0.200511, 0.543812, 0.814901)
    +v.focus = (0, 0.5, 1)
    +v.viewUp = (-0.232184, 0.834474, -0.499744)
    +v.viewAngle = 30
    +v.parallelScale = 1.5
    +v.nearPlane = -3
    +v.farPlane = 3
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +SetView3D(v)
    +
    +Test("quadratic_mixed_01")
    +
    +AddOperator("Tessellate", 1)
    +DrawPlots()
    +
    +Test("quadratic_mixed_02")
    +
    +tess = TessellateAttributes()
    +tess.chordError = 0.01
    +SetOperatorOptions(tess, 0, 1)
    +
    +Test("quadratic_mixed_03")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("vtk_test_data/quadratic_mixed.vtk"))
    +
    +# Quadratic_hex
    +OpenDatabase(data_path("vtk_test_data/quadratic_hex.vtk"))
    +
    +AddPlot("Pseudocolor", "x_c")
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (0.491097, 0.334402, 0.804363)
    +v.focus = (0.7, 0.7, 0.5)
    +v.viewUp = (-0.0787305, 0.936642, -0.341326)
    +v.viewAngle = 30
    +v.parallelScale = 1.10905
    +v.nearPlane = -2.21811
    +v.farPlane = 2.21811
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +SetView3D(v)
    +
    +Test("quadratic_hex_01")
    +
    +AddOperator("Tessellate", 1)
    +DrawPlots()
    +
    +Test("quadratic_hex_02")
    +
    +tess = TessellateAttributes()
    +tess.chordError = 0.01
    +SetOperatorOptions(tess, 0, 1)
    +
    +Test("quadratic_hex_03")
    +
    +AddOperator("Clip", 1)
    +clip = ClipAttributes()
    +clip.plane1Origin = (0.5, 0.5, 0.5)
    +SetOperatorOptions(clip, 0, 1)
    +
    +DrawPlots()
    +
    +Test("quadratic_hex_04")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("vtk_test_data/quadratic_hex.vtk"))
    +
    +# Triquadratic_hex
    +OpenDatabase(data_path("vtk_test_data/triquadratic_hex.vtk"))
    +
    +AddPlot("Pseudocolor", "x_c")
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (0.491097, 0.334402, 0.804363)
    +v.focus = (0.7, 0.7, 0.5)
    +v.viewUp = (-0.0787305, 0.936642, -0.341326)
    +v.viewAngle = 30
    +v.parallelScale = 1.10905
    +v.nearPlane = -2.21811
    +v.farPlane = 2.21811
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +SetView3D(v)
    +
    +Test("triquadratic_hex_01")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("vtk_test_data/triquadratic_hex.vtk"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_threeslice.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_threeslice.html new file mode 100644 index 000000000..779a6466a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_threeslice.html @@ -0,0 +1,54 @@ + +Results for operators/threeslice.py + +

    Results of VisIt Regression Test - operators/threeslice

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ThreeSlice_010.000.00
    ThreeSlice_020.000.00
    ThreeSlice_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_threeslice_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_threeslice_py.html new file mode 100644 index 000000000..c214e6d9c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_threeslice_py.html @@ -0,0 +1,49 @@ +operators/threeslice.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  threeslice.py
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       July 6, 2006
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +def Test1():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    AddOperator("ThreeSlice")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0.456241, 0.47741, 0.750949)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (-0.0855449, 0.863521, -0.497004)
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    SetView3D(v)
    +
    +    Test("ThreeSlice_01")
    +
    +    slice = ThreeSliceAttributes()
    +    slice.x = -10
    +    SetOperatorOptions(slice)
    +    Test("ThreeSlice_02")
    +
    +    slice.y = -10
    +    SetOperatorOptions(slice)
    +    Test("ThreeSlice_03")
    +
    +
    +Test1()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_threshold.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_threshold.html new file mode 100644 index 000000000..a369be81a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_threshold.html @@ -0,0 +1,108 @@ + +Results for operators/threshold.py + +

    Results of VisIt Regression Test - operators/threshold

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_thresh010.000.00
    ops_thresh020.000.00
    ops_thresh030.000.00
    ops_thresh040.000.00
    ops_thresh050.000.00
    ops_thresh060.000.00
    ops_thresh070.000.00
    ops_thresh080.000.00
    ops_thresh090.000.00
    ops_thresh100.000.00
    ops_thresh110.000.00
    ops_thresh120.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_threshold_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_threshold_py.html new file mode 100644 index 000000000..5acf672d5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_threshold_py.html @@ -0,0 +1,275 @@ +operators/threshold.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  threshold.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain,
    +#                          3D rectilinear, multiple domain,
    +#                          2D curvilinear, multiple domain
    +#              plots     - pc, mesh, subset, contour
    +#              operators - threshold
    +#              selection - none
    +#
    +#  Defect ID:  '6590, '7631
    +#
    +#  Programmer: Hank Childs
    +#  Date:       July 24, 2002
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Sep  5 10:55:47 PDT 2002
    +#    Changed the variable format for SubsetPlots, to reflect new interface
    +#    which allows subsets of groups.
    +#
    +#    Eric Brugger, Thu May  8 12:50:50 PDT 2003
    +#    Remove some code for setting the view when changing to a new data set
    +#    since visit should automatically adjust the view by default.
    +#
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset plots.
    +#
    +#    Hank Childs, Thu Sep 15 16:31:31 PDT 2005
    +#    Added testing for points only mode ('6590).
    +#
    +#    Mark Blair, Fri May 19 17:36:00 PDT 2006
    +#    Modified all tests, added new tests, for multi-variable mode.
    +#
    +#    Hank Childs, Sat Jan 27 13:03:55 PST 2007
    +#    Test points only with material selection on ('7631).
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.SetViewNormal(-0.528889, 0.367702, 0.7649)
    +v.SetViewUp(0.176641, 0.929226, -0.324558)
    +v.SetParallelScale(17.3205)
    +v.SetPerspective(1)
    +SetView3D(v)
    +
    +#
    +# Normal PC threshold for globe.
    +#
    +thresh = ThresholdAttributes()
    +
    +thresh.outputMeshType = 0
    +thresh.zonePortions = (1)
    +thresh.lowerBounds = (-4)
    +thresh.upperBounds = (4)
    +SetDefaultOperatorOptions(thresh)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh01")
    +
    +#
    +# Normal PC threshold for globe, but now change the zone inclusion criteria.
    +#
    +RemoveAllOperators()
    +thresh.outputMeshType = 0
    +thresh.zonePortions = (0)
    +thresh.lowerBounds = (-4)
    +thresh.upperBounds = (4)
    +SetDefaultOperatorOptions(thresh)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh02")
    +
    +#
    +# Normal PC plot of globe, thresholding by a variable different than the
    +# PC coloring variable.
    +#
    +RemoveAllOperators()
    +thresh.outputMeshType = 0
    +thresh.zonePortions = (1)
    +thresh.lowerBounds = (140)
    +thresh.upperBounds = (340)
    +thresh.listedVarNames = ("t")
    +SetDefaultOperatorOptions(thresh)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh03")
    +
    +DeleteAllPlots()
    +
    +#
    +# Contour lines by one variable, thresholding by another.  Multi-block,
    +# curvilinear, 2D.
    +#
    +OpenDatabase(silo_data_path("multi_curv2d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +thresh.outputMeshType = 0
    +thresh.zonePortions = (1)
    +thresh.lowerBounds = (0.7)
    +thresh.upperBounds = (0.9)
    +thresh.listedVarNames = ("v")
    +SetDefaultOperatorOptions(thresh)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh04")
    +
    +DeleteAllPlots()
    +
    +#
    +# Material plot, thresholded by a scalar variable.  Multi-block,
    +# curvilinear, 2D.
    +#
    +AddPlot("FilledBoundary", "mat1")
    +DrawPlots()
    +
    +thresh.outputMeshType = 0
    +thresh.zonePortions = (1)
    +thresh.lowerBounds = (-0.4)
    +thresh.upperBounds = (1.0)
    +thresh.listedVarNames = ("u")
    +SetDefaultOperatorOptions(thresh)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh05")
    +
    +DeleteAllPlots()
    +
    +#
    +# Mesh plot and PC plot, both thresholded by the same variable and zone
    +# inclusion criteria.  Then change the output mesh type to a point mesh.
    +# Multi-block, rectilinear, 3D.
    +#
    +OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +
    +thresh.outputMeshType = 0
    +thresh.zonePortions = (1)
    +thresh.lowerBounds = (0.4)
    +thresh.upperBounds = (1.0)
    +thresh.listedVarNames = ("u")
    +SetDefaultOperatorOptions(thresh)
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +AddPlot("Mesh", "mesh1")
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh06")
    +
    +DeleteActivePlots()
    +
    +thresh.outputMeshType = 1
    +SetDefaultOperatorOptions(thresh)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh07")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +#
    +# Normal PC plot of globe, thresholding by two variables different than the
    +# PC coloring variable.
    +#
    +thresh.outputMeshType = 0
    +thresh.zonePortions = (1, 1)
    +thresh.lowerBounds = (140, 0)
    +thresh.upperBounds = (340, 1)
    +thresh.listedVarNames = ("t", "dx")
    +SetDefaultOperatorOptions(thresh)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh08")
    +
    +DeleteAllPlots()
    +
    +#
    +# Contour lines by one variable, thresholding by that variable and another,
    +# using two different zone inclusion criteria.  Multi-block, curvilinear, 2D.
    +#
    +OpenDatabase(silo_data_path("multi_curv2d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +thresh.zonePortions = (0, 1)
    +thresh.lowerBounds = (-0.7, 0.7)
    +thresh.upperBounds = (0.7, 0.9)
    +thresh.listedVarNames = ("u", "v")
    +SetDefaultOperatorOptions(thresh)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh09")
    +
    +DeleteAllPlots()
    +
    +#
    +# Material plot, thresholded by two scalar variables.  Multi-block,
    +# curvilinear, 2D.
    +#
    +AddPlot("FilledBoundary", "mat1")
    +DrawPlots()
    +
    +thresh.zonePortions = (0, 0)
    +thresh.lowerBounds = (-0.4, 0.25)
    +thresh.upperBounds = (1.0, 0.45)
    +thresh.listedVarNames = ("u", "p")
    +SetDefaultOperatorOptions(thresh)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh10")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.outputMeshType = 1
    +ThresholdAtts.listedVarNames = ("u")
    +ThresholdAtts.zonePortions = (1)
    +ThresholdAtts.lowerBounds = (0)
    +ThresholdAtts.upperBounds = (1e+37)
    +ThresholdAtts.defaultVarName = "u"
    +ThresholdAtts.defaultVarIsScalar = 1
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +ResetView()
    +Test("ops_thresh11")
    +
    +# See that the points go away when you turn off the materials.
    +sil = SILRestriction()
    +m = sil.SetsInCategory("mat1")
    +sil.TurnOffSet(m[2])
    +sil.TurnOffSet(m[3])
    +SetPlotSILRestriction(sil)
    +Test("ops_thresh12")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_transform.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_transform.html new file mode 100644 index 000000000..d7a8a6b1b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_transform.html @@ -0,0 +1,96 @@ + +Results for operators/transform.py + +

    Results of VisIt Regression Test - operators/transform

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_transform010.000.00
    ops_transform020.000.00
    ops_transform030.000.00
    ops_transform040.000.00
    ops_transform050.000.00
    ops_transform060.000.00
    ops_transform070.000.00
    ops_transform080.000.00
    ops_transform090.000.00
    ops_transform100.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_transform_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_transform_py.html new file mode 100644 index 000000000..763bce9c2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_transform_py.html @@ -0,0 +1,228 @@ +operators/transform.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  transform.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain,
    +#                          3D rectilinear, single domain.
    +#              plots     - pc, mesh, contour, vector
    +#              operators - transform
    +#              selection - none
    +#
    +#  Defect ID:  '6310, '6694, '6699
    +#
    +#  Programmer: Hank Childs
    +#  Date:       July 24, 2002
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Wed Sep  3 09:31:25 PDT 2003
    +#    Opaque mode for MeshPlot is ON by default now, so turn it off
    +#    for this test.
    +#
    +#    Kathleen Bonnell, Thu Sep  4 11:10:11 PDT 2003
    +#    Change the way MeshPlot's opaque mode is set (now an enum, not a bool).
    +#
    +#    Hank Childs, Wed Jun  8 15:36:22 PDT 2005
    +#    Added tests for coordinate system conversion.  ['6310]
    +#
    +#    Hank Childs, Tue Nov 15 15:59:00 PST 2005
    +#    Added tests for 2D transformations.  ['6694 '6699]
    +#
    +#    Kathleen Bonnell,  Fri Mar 28 15:24:18 PDT 2008
    +#    Added test for curve transformation.  ['8277]
    +#
    +#    Jeremy Meredith
    +#    Added test for linear transforms.
    +#
    +#    Jeremy Meredith, Mon Jul 14 11:17:29 EDT 2008
    +#    Allow the clipped vector plot to show all vectors (even ones not from
    +#    from original cells/nodes) to match the old behavior.
    +#
    +#    Jeremy Meredith, Thu Aug 13 13:34:42 EDT 2009
    +#    Made transform04 test be explicit about the coord sys it chooses.
    +#    Made transform05 use Cyl instead of Spher coords; it's a 2D problem!
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Thu Jul 11 08:20:24 PDT 2013
    +#    Removed legacy style annotation setting.
    +#
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#    individually to match current baseline results.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Turn off all annotation
    +a = AnnotationAttributes()
    +TurnOffAllAnnotations(a)
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +AddPlot("Pseudocolor", "u")
    +clip = ClipAttributes()
    +clip.plane1Status = 1
    +clip.SetPlane1Origin(0,0,0)
    +clip.SetPlane1Normal(-1,1,0)
    +clip.funcType = 0
    +SetDefaultOperatorOptions(clip)
    +AddOperator("Clip")
    +
    +trans = TransformAttributes()
    +trans.doTranslate = 1
    +trans.translateX = -3
    +SetDefaultOperatorOptions(trans)
    +AddOperator("Transform")
    +DrawPlots()
    +
    +AddPlot("Vector", "vel")
    +vec = VectorAttributes()
    +vec.origOnly = 0
    +SetPlotOptions(vec)
    +
    +clip.SetPlane1Normal(1,-1,0)
    +SetDefaultOperatorOptions(clip)
    +AddOperator("Clip")
    +
    +trans.translateX = -6
    +SetDefaultOperatorOptions(trans)
    +AddOperator("Transform")
    +
    +DrawPlots()
    +
    +Test("ops_transform01")
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +AddPlot("Mesh", "quadmesh3d")
    +m = MeshAttributes()
    +m.opaqueMode = m.Off
    +SetPlotOptions(m)
    +trans.doTranslate = 0
    +trans.translateX = 0
    +trans.doScale = 1
    +trans.scaleX = 4
    +trans.scaleZ = 3
    +SetDefaultOperatorOptions(trans)
    +AddOperator("Transform")
    +DrawPlots()
    +
    +ResetView()
    +Test("ops_transform02")
    +DeleteAllPlots()
    +
    +AddPlot("Contour", "d")
    +trans.doRotate = 1
    +trans.rotateAmount = 45
    +SetDefaultOperatorOptions(trans)
    +AddOperator("Transform")
    +DrawPlots()
    +
    +ResetView()
    +Test("ops_transform03")
    +
    +DeleteAllPlots()
    +
    +a.axes3D.visible = 1
    +a.axes3D.bboxFlag = 1
    +SetAnnotationAttributes(a)
    +
    +AddPlot("Contour", "d")
    +AddOperator("Transform")
    +trans = TransformAttributes() # Get reset version.
    +trans.transformType = trans.Coordinate
    +trans.inputCoordSys = trans.Cartesian
    +trans.outputCoordSys = trans.Spherical
    +SetOperatorOptions(trans)
    +DrawPlots()
    +SetViewExtentsType("actual")
    +ResetView()
    +
    +Test("ops_transform04")
    +
    +# '6699
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Transform")
    +trans.transformType = trans.Coordinate
    +trans.inputCoordSys = trans.Cartesian
    +trans.outputCoordSys = trans.Cylindrical
    +SetOperatorOptions(trans)
    +DrawPlots()
    +Test("ops_transform05")
    +
    +# '6694
    +DeleteAllPlots()
    +DefineVectorExpression("polar", "polar(quadmesh2d) - coord(quadmesh2d)")
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Displace")
    +disp = DisplaceAttributes()
    +disp.variable = "polar"
    +SetOperatorOptions(disp)
    +DrawPlots()
    +Test("ops_transform06")
    +
    +# '8277
    +DeleteAllPlots()
    +OpenDatabase(data_path("curve_test_data/zonecent.ultra"))
    +
    +AddPlot("Curve", "curve2")
    +curveAtts = CurveAttributes()
    +curveAtts.curveColorSource = curveAtts.Custom
    +curveAtts.curveColor = (255, 0, 0, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +Test("ops_transform07")
    +
    +AddOperator("Transform")
    +trans.transformType = trans.Similarity
    +trans.doRotate = 0
    +trans.doTranslate = 0
    +trans.doScale = 1
    +trans.scaleX = 1
    +trans.scaleZ = 1
    +trans.scaleY = -3
    +SetOperatorOptions(trans)
    +DrawPlots()
    +Test("ops_transform08")
    +
    +# Test linear transform
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Transform")
    +
    +trans.transformType = trans.Linear
    +trans.m00 = .8
    +trans.m01 = .3
    +trans.m02 = 0
    +
    +trans.m10 = 0
    +trans.m11 = 1
    +trans.m12 = 0
    +
    +trans.m20 = .5
    +trans.m21 = .5
    +trans.m22 = 1
    +
    +trans.invertLinearTransform = 0
    +
    +SetOperatorOptions(trans)
    +DrawPlots()
    +ResetView()
    +
    +Test("ops_transform09")
    +
    +trans.invertLinearTransform = 1
    +SetOperatorOptions(trans)
    +Test("ops_transform10")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_tube.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_tube.html new file mode 100644 index 000000000..14afc13f2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_tube.html @@ -0,0 +1,72 @@ + +Results for operators/tube.py + +

    Results of VisIt Regression Test - operators/tube

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    tube_010.000.00
    tube_020.000.00
    tube_030.000.00
    tube_040.000.00
    tube_050.000.00
    tube_060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/operators_tube_py.html b/2024-12-12-22:00/poodle_trunk_parallel/operators_tube_py.html new file mode 100644 index 000000000..3956a9231 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/operators_tube_py.html @@ -0,0 +1,64 @@ +operators/tube.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  tube.py
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       August 7, 2012
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(data_path("vtk_test_data/lines.vtk"))
    +
    +AddPlot("Pseudocolor", "var1")
    +AddOperator("Tube")
    +tube = TubeAttributes()
    +tube.tubeRadiusType = tube.Absolute
    +tube.radiusAbsolute = 0.5
    +tube.fineness = 20
    +SetOperatorOptions(tube)
    +
    +view = GetView3D()
    +view.viewNormal = (-0.429483, -0.499742, 0.752198)
    +view.focus = (0, 0, 0)
    +view.viewUp = (-0.296677, 0.864778, 0.405144)
    +view.viewAngle = 30
    +view.parallelScale = 8.66025
    +view.nearPlane = -17.3205
    +view.farPlane = 17.3205
    +SetView3D(view)
    +
    +DrawPlots()
    +
    +Test("tube_01")
    +
    +tube.scaleByVarFlag = 1
    +SetOperatorOptions(tube)
    +Test("tube_02")
    +
    +tube.scaleVariable = "var2"
    +SetOperatorOptions(tube)
    +Test("tube_03")
    +
    +# get the default again
    +tube = TubeAttributes()
    +
    +ChangeActivePlotsVar("var2")
    +tube.tubeRadiusType = tube.Absolute
    +tube.radiusAbsolute = 0.5
    +tube.fineness = 20
    +SetOperatorOptions(tube)
    +Test("tube_04")
    +
    +tube.scaleByVarFlag = 1
    +SetOperatorOptions(tube)
    +Test("tube_05")
    +
    +tube.scaleVariable = "var1"
    +SetOperatorOptions(tube)
    +Test("tube_06")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_contour.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_contour.html new file mode 100644 index 000000000..1b592919a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_contour.html @@ -0,0 +1,244 @@ + +Results for plots/contour.py + +

    Results of VisIt Regression Test - plots/contour

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    contour_contourMethod_000.000.00
    contour_contourMethod_010.000.00
    contour_contourMethod_020.000.00
    contour_wireframe_000.000.00
    contour_minMax_000.000.00
    contour_minMax_010.000.00
    contour_minMax_020.000.00
    contour_minMax_030.000.00
    contour_minMax_040.000.00
    contour_lineWidth_000.000.00
    contour_lineWidth_010.000.00
    contour_lineWidth_020.000.00
    contour_lineWidth_030.000.00
    contour_lineWidth_040.000.00
    contour_lineWidth_050.000.00
    contour_lineWidth_060.000.00
    contour_lineWidth_070.000.00
    contour_lineWidth_080.000.00
    contour_lineWidth_090.000.00
    contour_colorMethod_000.000.00
    contour_colorMethod_010.000.00
    contour_colorMethod_020.000.00
    contour_colorMethod_030.000.00
    contour_colorMethod_040.000.00
    contour_colorMethod_050.000.00
    contour_colorMethod_060.000.00
    contour_colorMethod_070.000.00
    contour_colorMethod_080.000.00
    contour_colorMethod_090.000.00
    contour_linearScale0.000.00
    contour_logScale0.000.00
    contour_multicolor_000.000.00
    contour_multicolor_010.000.00
    contour_multicolor_020.000.00
    contour_bad_value0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_contour_py.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_contour_py.html new file mode 100644 index 000000000..8bbb4e159 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_contour_py.html @@ -0,0 +1,183 @@ +plots/contour.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  contour.py
    +#
    +#  Tests:      mesh      - 3D structured, single domain
    +#                        - 3D rectilinear, multiple domain
    +#                        - 2D curvilinear, single domain
    +#              plots     - Contour
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       October 15, 2014
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Sep 23 17:06:37 PDT 2015
    +#    Add a test for bad contour values to make sure the plot can handle it.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def ExerciseAtts():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    AddPlot("Contour", "hardyglobal")
    +    c = ContourAttributes()
    +    c.contourMethod = c.Percent
    +    c.contourPercent = (5, 78, 52, 13, 36, 42)
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("contour_contourMethod_00")
    +    c.contourMethod = c.Value
    +    c.contourValue= (2.0, 3.3, 5.01)
    +    SetPlotOptions(c)
    +    Test("contour_contourMethod_01")
    +    c.contourMethod = c.Level
    +    c.contourNLevels = 7
    +    SetPlotOptions(c)
    +    Test("contour_contourMethod_02")
    +
    +    c.wireframe = 1
    +    c.lineWidth = 3
    +    SetPlotOptions(c)
    +    Test("contour_wireframe_00")
    +    ChangeActivePlotsVar("shepardglobal")
    +    # Get new default atts
    +    c = ContourAttributes()
    +    c.contourNLevels = 3
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("contour_minMax_00")
    +    c.minFlag = 1
    +    c.maxFlag = 1
    +    c.max = 5
    +    for i in range(1,5):
    +        c.min = i
    +        SetPlotOptions(c)
    +        Test("contour_minMax_%02d"%i)
    +
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +    AddPlot("Contour", "d")
    +    c = ContourAttributes()
    +    c.contourNLevels = 4
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    for i in range(10):
    +        c.lineWidth = i
    +        SetPlotOptions(c)
    +        Test("contour_lineWidth_%02d"%i)
    +
    +    c.lineWidth = 4
    +
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +    AddPlot("Contour", "d")
    +    c = ContourAttributes()
    +    c.contourNLevels = 5
    +    c.colorType = c.ColorByColorTable
    +    c.colorTableName = "rainbow"
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("contour_colorMethod_00")
    +    c.invertColorTable = 1
    +    SetPlotOptions(c)
    +    Test("contour_colorMethod_01")
    +
    +    c.colorType = c.ColorBySingleColor
    +    c.singleColor = (87, 170, 0, 255)
    +    SetPlotOptions(c)
    +    Test("contour_colorMethod_02")
    +    c.singleColor = (87, 170, 0, 120)
    +    SetPlotOptions(c)
    +    Test("contour_colorMethod_03")
    +
    +    c.colorType = c.ColorByMultipleColors
    +    SetPlotOptions(c)
    +    Test("contour_colorMethod_04")
    +    for i in range(5,0,-1):
    +        levelColor = list(c.GetMultiColor(i-1))
    +        levelColor[3] = 65
    +        c.SetMultiColor((i-1),tuple(levelColor))
    +        SetPlotOptions(c)
    +        Test("contour_colorMethod_%02d"%(10-i))
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("wave.visit"))
    +    AddPlot("Contour", "pressure")
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (-0.561907, 0.653269, 0.507444)
    +    v.viewUp = (0.388352, 0.749975, -0.535463)
    +    SetView3D(v)
    +    Test("contour_linearScale")
    +    c = ContourAttributes()
    +    c.scaling = c.Log
    +    SetPlotOptions(c)
    +    Test("contour_logScale")
    +
    +    DeleteAllPlots()
    +
    +def TestMultiColor():
    +    # Bug 2013, indexing issues with SetMultiColor when num levels reduces.
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    AddPlot("Contour", "hardyglobal")
    +    DrawPlots()
    +
    +    Sets = [[1,5.5,11],[1,5.5,11],[1,5.5,8]]
    +    testNum = 0
    +    for r in Sets:
    +        # the next comment and similar below bracket code to be 'literalincluded' in quickrecipes.rst
    +        # contourAtts {
    +        p = ContourAttributes()
    +        p.contourMethod = p.Level
    +        p.contourNLevels=r[2]
    +        p.colorType = p.ColorByMultipleColors
    +        p.singleColor = (255, 0, 0, 25)
    +        p.SetMultiColor(0, (255,0,255,64))
    +        p.SetMultiColor(1, (0,255,0,64))
    +        p.SetMultiColor(2, (255, 135, 0, 255))
    +        p.SetMultiColor(3, (255,255,0,64))
    +        p.SetMultiColor(4, (255, 0, 135, 255))
    +        p.SetMultiColor(5, (0,0,255,64))
    +        p.SetMultiColor(6, (0,255,255,64))
    +        p.SetMultiColor(7, (255,0,0,64))
    +        if r[2] > 8 :
    +            p.SetMultiColor(8, (99, 255, 99, 255))
    +            p.SetMultiColor(9, (168, 168, 168, 255))
    +            p.SetMultiColor(10, (255, 68, 68, 255))
    +
    +        p.minFlag=1
    +        p.maxFlag=1
    +        p.min=r[0]
    +        p.max=r[1]
    +        SetPlotOptions(p)
    +        # contourAtts }
    +        Test("contour_multicolor_%02d"%testNum)
    +        testNum = testNum + 1
    +    DeleteAllPlots()
    +
    +def TestBadValue():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    AddPlot("Contour", "hardyglobal")
    +    ContourAtts = ContourAttributes()
    +    ContourAtts.contourValue = (0)
    +    ContourAtts.contourMethod = ContourAtts.Value  # Level, Value, Percent
    +    ContourAtts.minFlag = 0
    +    ContourAtts.maxFlag = 0
    +    SetPlotOptions(ContourAtts)
    +    DrawPlots()
    +
    +    # Test that the plot is not in the error state and that we have an engine. (i.e. the engine did not crash)
    +    pl = GetPlotList()
    +    txt = "Plot Completed: " + str(pl.GetPlots(0).stateType == pl.GetPlots(0).Completed) + "\n"
    +    txt = txt + "Number of compute engines: " + str(len(GetEngineList())) + "\n"
    +    TestText("contour_bad_value", txt)
    +
    +ExerciseAtts()
    +TestMultiColor()
    +TestBadValue()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_curve.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_curve.html new file mode 100644 index 000000000..b98f92d95 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_curve.html @@ -0,0 +1,351 @@ + +Results for plots/curve.py + +

    Results of VisIt Regression Test - plots/curve

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    curve_1_010.000.00
    curve_1_020.000.00
    curve_1_030.000.00
    curve_1_040.000.00
    curve_1_050.000.00
    curve_1_060.000.00
    curve_1_070.000.00
    Overlay curves on 2D plots
    curve_2_010.000.00
    curve_2_020.000.00
    curve_2_030.000.00
    curve_2_050.000.00
    curve_2_060.000.00
    curve_2_070.000.00
    curve_2_080.000.00
    curve_2_090.000.00
    curve_2_100.000.00
    Points and Symbols
    curve_3_010.000.00
    curve_3_020.000.00
    curve_3_030.000.00
    curve_3_040.000.00
    curve_3_050.000.00
    curve_3_060.000.00
    curve_3_070.000.00
    curve_3_080.000.00
    curve_3_090.000.00
    curve_3_100.000.00
    curve_3_110.000.00
    curve_3_120.000.00
    curve_3_130.000.00
    Time Cue
    curve_4_000.000.00
    curve_4_010.000.00
    curve_4_020.000.00
    curve_4_030.000.00
    curve_4_040.000.00
    curve_4_050.000.00
    curve_4_060.000.00
    curve_4_070.000.00
    curve_4_080.000.00
    Polar
    polar_curve_010.000.00
    polar_curve_020.000.00
    polar_curve_030.000.00
    polar_curve_040.000.00
    polar_curve_050.000.00
    polar_curve_060.000.00
    polar_curve_070.000.00
    polar_curve_080.000.00
    Scale
    curve_scale_000.000.00
    curve_scale_010.000.00
    curve_scale_020.000.00
    curve_scale_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_curve_py.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_curve_py.html new file mode 100644 index 000000000..6709cdf79 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_curve_py.html @@ -0,0 +1,488 @@ +plots/curve.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial, parallel, scalable
    +#  CLASSES: nightly
    +#
    +#  Test Case:  curve.py 
    +#
    +#  Tests:      Tests the curve plot
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       August 3, 2006 
    +#
    +#  Modifications:
    +#    Brad Whitlock, Tue Nov 21 10:55:24 PDT 2006
    +#    Made it use enums for line style.
    +#
    +#    Mark C. Miller, Thu Jun 21 11:05:58 PDT 2007
    +#    Added tests for overlaying curves on 2D plots
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Bonnell, Fri Aug 13 16:10:56 MST 2010 
    +#    Added TestPointsAndSymbols to test various points/symbol settings.
    +#    Added TestTimeCue to test time-cue functionality
    +#
    +#    Kathleen Biagas, Thu Sep 12 09:08:00 PDT 2013
    +#    Added TestPolar to test new polar conversion capability.
    +#
    +#    Kathleen Biagas, Tue Jul 15 14:16:33 MST 2014
    +#    Added TestScale, which demonstrates the need to scale curves with values
    +#    greater than 1e37 or less than 1e-37.
    +#
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all tests.  Set the colors individually
    +#    to match current baseline results.
    +#
    +#    Kathleen Biagas, Thu Feb 17 07:40:34 PST 2022
    +#    Replace 'color' with 'curveColor' for CurveAttributes.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def Test1():
    +    OpenDatabase(data_path("curve_test_data/distribution.ultra"))
    +
    +    DefineCurveExpression("logED", "log10(<Exponential Distribution>)")
    +    DefineCurveExpression("logLap", "log10(<Laplace Distribution>)")
    +    AddPlot("Curve", "Exponential Distribution")
    +    c = CurveAttributes()
    +    c.curveColorSource = c.Custom
    +    c.curveColor = (255, 0, 0, 255)
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("curve_1_01")
    +
    +    ChangeActivePlotsVar("logED")
    +    c.curveColor = (0, 0, 0, 255)
    +    SetPlotOptions(c)
    +    ResetView()
    +    Test("curve_1_02")
    +
    +    ChangeActivePlotsVar("Laplace Distribution")
    +    c.curveColor = (0, 255, 0, 255)
    +    c.lineWidth = 2
    +    SetPlotOptions(c)
    +    ResetView()
    +    Test("curve_1_03")
    +
    +    ChangeActivePlotsVar("logLap")
    +    c.lineWidth = 0
    +    c.curveColor = (0, 255, 255, 255)
    +    SetPlotOptions(c)
    +    ResetView()
    +    Test("curve_1_04")
    +
    +    v = GetViewCurve()
    +    v.domainCoords = (-19.3832, -19.3626)
    +    v.rangeCoords = (-8.71826, -8.71234)
    +    SetViewCurve(v)
    +    Test("curve_1_05")
    +
    +    ChangeActivePlotsVar("Log Normal Distribution")
    +    ResetView()
    +    Test("curve_1_06")
    +
    +    c.curveColor = (120, 10, 150, 255)
    +    SetPlotOptions(c)
    +
    +    v.domainCoords = (1.13181, 1.14079)
    +    v.rangeCoords = (0.346122, 0.350033)
    +    SetViewCurve(v)
    +    Test("curve_1_07")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("curve_test_data/distribution.ultra"))
    +
    +
    +def TestOverlayCurves():
    +    TestSection("Overlay curves on 2D plots")
    +
    +    # put up some 2D plots
    +    OpenDatabase(silo_data_path("ucd2d.silo"))
    +
    +    AddPlot("Pseudocolor","d")    # id=0
    +    AddPlot("Mesh","ucdmesh2d")   # id=1
    +    SetActivePlots((1))
    +    AddOperator("Transform")
    +    ta=TransformAttributes()
    +    ta.doTranslate=1
    +    ta.translateY=2
    +    SetOperatorOptions(ta)
    +    DrawPlots()
    +
    +    OpenDatabase(data_path("curve_test_data/ol_curveA.curve"))
    +
    +    AddPlot("Curve","ol_curveA")  # id=2
    +    c = CurveAttributes()
    +    c.curveColorSource = c.Custom
    +    c.curveColor = (0, 255, 0, 0)
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("curve_2_01")
    +
    +    OpenDatabase(data_path("curve_test_data/ol_curveB.curve"))
    +
    +    AddPlot("Curve","ol_curveB")  # id=3
    +    c.curveColor = (0, 0, 255, 0)
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("curve_2_02")
    +
    +    OpenDatabase(data_path("curve_test_data/ol_curveC.curve"))
    +
    +    AddPlot("Curve","ol_curveC")  # id=4
    +    c.curveColor = (0, 255, 255, 0)
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("curve_2_03")
    +
    +    # testing hiding/unhiding the 2D plots
    +    SetActivePlots(())
    +    SetActivePlots((0,1))
    +    HideActivePlots()
    +    #Test("curve_2_04")
    +    HideActivePlots()
    +    Test("curve_2_05")
    +    SetActivePlots((1))
    +    HideActivePlots()
    +    Test("curve_2_06")
    +    HideActivePlots()
    +
    +    # test hiding some curves
    +    SetActivePlots((2,3,4))
    +    HideActivePlots()
    +    Test("curve_2_07")
    +    HideActivePlots()
    +    SetActivePlots((2))
    +    HideActivePlots()
    +    Test("curve_2_08")
    +    HideActivePlots()
    +    SetActivePlots((3))
    +    HideActivePlots()
    +    Test("curve_2_09")
    +    HideActivePlots()
    +    SetActivePlots((4))
    +    HideActivePlots()
    +    Test("curve_2_10")
    +    HideActivePlots()
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("ucd2d.silo"))
    +
    +    CloseDatabase(data_path("curve_test_data/ol_curveA.curve"))
    +
    +    CloseDatabase(data_path("curve_test_data/ol_curveB.curve"))
    +
    +    CloseDatabase(data_path("curve_test_data/ol_curveC.curve"))
    +
    +
    +def TestPointsAndSymbols():
    +    TestSection("Points and Symbols")
    +    OpenDatabase(data_path("curve_test_data/ol_curveA.curve"))
    +
    +    AddPlot("Curve","ol_curveA")
    +    #points and lines
    +    curve = CurveAttributes()
    +    curve.showLabels = 0
    +    curve.showPoints = 1
    +    curve.curveColorSource = curve.Custom
    +    curve.curveColor = (0, 0, 0, 255)
    +    SetPlotOptions(curve)
    +    DrawPlots()
    +    ResetView()
    +    v = GetViewCurve()
    +    v.domainCoords = (-0.5, 5.5)
    +    v.rangeCoords = (-0.5, 3.5)
    +    SetViewCurve(v)
    +    Test("curve_3_01")
    +
    +    #stride the points
    +    curve.pointStride = 3
    +    SetPlotOptions(curve)
    +    Test("curve_3_02")
    +
    +    #Dynamic fill 
    +    curve.pointFillMode = curve.Dynamic
    +    SetPlotOptions(curve)
    +    Test("curve_3_03")
    +
    +    #change density
    +    curve.symbolDensity = 10
    +    SetPlotOptions(curve)
    +    Test("curve_3_04")
    +
    +    #Symbol 
    +    curve.symbol = curve.TriangleDown
    +    SetPlotOptions(curve)
    +    Test("curve_3_05")
    +
    +    #Zoom 
    +    v.domainCoords = (2, 5)
    +    v.rangeCoords = (2, 4)
    +    SetViewCurve(v)
    +    Test("curve_3_06")
    +
    +    #Symbol 
    +    v.domainCoords = (-0.5, 5.5)
    +    v.rangeCoords = (-0.5, 3.5)
    +    SetViewCurve(v)
    +    curve.symbol = curve.Plus
    +    SetPlotOptions(curve)
    +    Test("curve_3_07")
    +
    +    #Static with symbols
    +    curve.pointFillMode = curve.Static
    +    curve.pointStride = 1
    +    curve.symbol = curve.Circle
    +    SetPlotOptions(curve)
    +    Test("curve_3_08")
    +
    +    #Remove lines
    +    curve.showLines = 0
    +    curve.symbol = curve.X
    +    SetPlotOptions(curve)
    +    Test("curve_3_09")
    +
    +    #Remove lines
    +    curve.pointFillMode = curve.Dynamic
    +    curve.symbolDensity = 30
    +    curve.symbol = curve.TriangleUp
    +    SetPlotOptions(curve)
    +    Test("curve_3_10")
    +
    +    OpenDatabase(data_path("curve_test_data/ol_curveB.curve"))
    +
    +    AddPlot("Curve", "ol_curveB")
    +    DrawPlots()
    +    c2 = CurveAttributes()
    +    c2.showLabels = 0
    +    c2.curveColorSource = c2.Custom
    +    c2.curveColor = (255, 0, 0, 255)
    +    SetPlotOptions(c2)
    +    AddOperator("Transform")
    +    ta2=TransformAttributes()
    +    ta2.doTranslate=1
    +    ta2.translateX=-0.35
    +    SetOperatorOptions(ta2)
    +    DrawPlots()
    +    DrawPlots()
    +    Test("curve_3_11")
    +
    +    c2.showLines = 0
    +    c2.showPoints = 1
    +    c2.pointFillMode = c2.Dynamic
    +    c2.symbol = c2.Circle
    +    c2.symbolDensity = 30
    +    SetPlotOptions(c2)
    +    DrawPlots()
    +    Test("curve_3_12")
    +
    +
    +    OpenDatabase(data_path("curve_test_data/ol_curveC.curve"))
    +
    +    AddPlot("Curve", "ol_curveC")
    +    DrawPlots()
    +    c3 = CurveAttributes()
    +    c3.showLabels = 0
    +    c3.showPoints = 1
    +    c3.curveColorSource = c2.Custom
    +    c3.curveColor = (0, 255, 0, 255)
    +    SetPlotOptions(c3)
    +    AddOperator("Transform")
    +    ta3=TransformAttributes()
    +    ta3.doTranslate=1
    +    ta3.translateX=0.25
    +    SetOperatorOptions(ta3)
    +    DrawPlots()
    +    Test("curve_3_13")
    +
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("curve_test_data/ol_curveA.curve"))
    +
    +    CloseDatabase(data_path("curve_test_data/ol_curveB.curve"))
    +
    +    CloseDatabase(data_path("curve_test_data/ol_curveB.curve"))
    +
    +
    +def TestTimeCue():
    +    TestSection("Time Cue")
    +    OpenDatabase(data_path("curve_test_data/ol_curveC.curve"))
    +
    +    AddPlot("Curve", "ol_curveC")
    +    c = CurveAttributes()
    +    c.showLabels = 0
    +    c.showPoints = 1
    +    c.curveColorSource = c.Custom
    +    c.curveColor = (0, 0, 0, 255)
    +    c.doBallTimeCue = 1
    +    c.timeCueBallSize = 1
    +    c.ballTimeCueColor = (0, 255, 0, 255)
    +    SetPlotOptions(c)
    +    DrawPlots()
    +
    +    v = GetViewCurve()
    +    v.domainCoords = (-0.25, 10.25)
    +    v.rangeCoords = (-0.25, 15.25)
    +    SetViewCurve(v)
    +
    +    SuppressQueryOutputOn()
    +    Query("NumNodes")
    +    n = int(GetQueryOutputValue())
    +    for i in range(n-1):
    +        c.timeForTimeCue = i
    +        SetPlotOptions(c)
    +        s = "curve_4_%02d" % i
    +        Test(s)
    +
    +    c.doLineTimeCue = 1
    +    c.lineTimeCueColor = c.ballTimeCueColor
    +    SetPlotOptions(c)
    +    s = "curve_4_%02d" % (n-1)
    +    Test(s)
    +
    +    c.lineTimeCueWidth = 3
    +    SetPlotOptions(c)
    +    s = "curve_4_%02d" % n
    +    Test(s)
    +    n = n+ 1
    +
    +    c.doCropTimeCue = 1
    +    SetPlotOptions(c)
    +    s = "curve_4_%02d" % n
    +    Test(s)
    +
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("curve_test_data/ol_curveC.curve"))
    +
    +def TestPolar():
    +    TestSection("Polar")
    +    OpenDatabase(data_path("curve_test_data/rose_theta_r_rads.ultra"))
    +    AddPlot("Curve", "rose")
    +    c = CurveAttributes()
    +    c.curveColorSource = c.Custom
    +    c.curveColor = (255, 0, 0, 255)
    +    c.showLabels = 0
    +    c.doLineTimeCue = 0
    +    c.doCropTimeCue = 0
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    ResetView()
    +    Test("polar_curve_01")
    +    c.polarToCartesian = 1
    +    c.polarCoordinateOrder = c.Theta_R
    +    c.angleUnits = c.Radians
    +    SetPlotOptions(c)
    +    ResetView()
    +    Test("polar_curve_02")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("curve_test_data/rose_theta_r_rads.ultra"))
    +
    +    OpenDatabase(data_path("curve_test_data/rose_r_theta_rads.ultra"))
    +    AddPlot("Curve", "rose")
    +    c = CurveAttributes()
    +    c.curveColorSource = c.Custom
    +    c.curveColor = (0, 0, 255, 255)
    +    c.showLabels = 0
    +    c.doLineTimeCue = 0
    +    c.doCropTimeCue = 0
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    ResetView()
    +    Test("polar_curve_03")
    +    c.polarToCartesian = 1
    +    c.polarCoordinateOrder = c.R_Theta
    +    c.angleUnits = c.Radians
    +    SetPlotOptions(c)
    +    ResetView()
    +    Test("polar_curve_04")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("curve_test_data/rose_r_theta_rads.ultra"))
    +
    +    OpenDatabase(data_path("curve_test_data/spiral_r_theta_deg.ultra"))
    +    AddPlot("Curve", "spiral")
    +    c.curveColor = (0, 255, 0, 255)
    +    c.polarToCartesian = 0
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("polar_curve_05")
    +    c.polarToCartesian = 1
    +    c.polarCoordinateOrder = c.R_Theta
    +    c.angleUnits = c.Degrees
    +    SetPlotOptions(c)
    +    ResetView()
    +    Test("polar_curve_06")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("curve_test_data/spiral_r_theta_deg.ultra"))
    +
    +    OpenDatabase(data_path("curve_test_data/circle.ultra"))
    +    AddPlot("Curve", "circle")
    +    c.curveColor = (255, 0, 255, 255)
    +    c.polarToCartesian = 0
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("polar_curve_07")
    +    c.polarToCartesian = 1
    +    c.polarCoordinateOrder = c.Theta_R
    +    c.angleUnits = c.Degrees
    +    SetPlotOptions(c)
    +    ResetView()
    +    Test("polar_curve_08")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("curve_test_data/circle.ultra"))
    +
    +def TestScale():
    +    TestSection("Scale")
    +    OpenDatabase(data_path("curve_test_data/need_scale.ultra"))
    +    AddPlot("Curve", "toobig")
    +    c = CurveAttributes()
    +    c.curveColorSource = c.Custom
    +    c.curveColor = (40, 165, 165, 255)
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("curve_scale_00")
    +
    +    t = TransformAttributes()
    +    t.doScale =1
    +    t.scaleX=1e-15
    +    t.scaleY=1e-15
    +    t.scaleZ=1e-15
    +    AddOperator("Transform")
    +    SetOperatorOptions(t)
    +    DrawPlots()
    +    ResetView()
    +
    +    Test("curve_scale_01")
    +
    +    RemoveLastOperator()
    +    ChangeActivePlotsVar("toosmall")
    +    DrawPlots()
    +    ResetView()
    +
    +    Test("curve_scale_02")
    +
    +    t.scaleX=1e+15
    +    t.scaleY=1e+15
    +    t.scaleZ=1e+15
    +    AddOperator("Transform")
    +    SetOperatorOptions(t)
    +    DrawPlots()
    +    ResetView()
    +
    +    Test("curve_scale_03")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("curve_test_data/need_scale.ultra"))
    +
    +def Main():
    +    Test1()
    +    TestOverlayCurves()
    +    TestPointsAndSymbols()
    +    TestTimeCue()
    +    TestPolar()
    +    TestScale()
    +
    +Main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_filledboundary.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_filledboundary.html new file mode 100644 index 000000000..58c4efd61 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_filledboundary.html @@ -0,0 +1,84 @@ + +Results for plots/filledboundary.py + +

    Results of VisIt Regression Test - plots/filledboundary

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    fb_wireframe_010.000.00
    fb_wireframe_020.000.00
    fb_lines_010.000.00
    fb_lines_020.000.00
    fb_lines_030.000.00
    fb_lines_040.000.00
    fb_points_010.000.00
    fb_points_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_filledboundary_py.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_filledboundary_py.html new file mode 100644 index 000000000..7c8f86212 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_filledboundary_py.html @@ -0,0 +1,110 @@ +plots/filledboundary.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  filledboundary.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, single domain
    +#              plots     - FilledBoundary
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 11, 2020 
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# singlecolor.py and multicolor.py test the coloring functionality of FB plots,
    +# so those aspects won't be heavily tested here.
    +
    +TurnOffAllAnnotations()
    +
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +AddPlot("FilledBoundary", "mat1")
    +fb = FilledBoundaryAttributes()
    +
    +# test line settings, first with wireframe mode:
    +fb.wireframe = 1
    +SetPlotOptions(fb)
    +DrawPlots()
    +
    +# want to rotate the view to verify the lines are unlit
    +v = GetView3D()
    +viewNormal = (0, 0, -1)
    +SetView3D(v)
    +Test("fb_wireframe_01")
    +
    +fb.lineWidth = 3
    +SetPlotOptions(fb)
    +Test("fb_wireframe_02")
    +
    +# now with lines created by an operator/operator sequence
    +fb.lineWidth = 1
    +fb.wireframe = 0
    +SetPlotOptions(fb)
    +AddOperator("ThreeSlice")
    +ts = ThreeSliceAttributes()
    +ts.x = 0.5;
    +ts.y = 0.5;
    +ts.z = 0.5;
    +SetOperatorOptions(ts)
    +
    +AddOperator("ExternalSurface")
    +DrawPlots()
    +Test("fb_lines_01")
    +
    +# move ExternalSurface to before ThreeSlice
    +DemoteOperator(1)
    +fb.lineWidth = 4
    +SetPlotOptions(fb)
    +DrawPlots()
    +Test("fb_lines_02")
    +
    +# add another FB plot and play with opacity
    +AddPlot("FilledBoundary", "mat1")
    +fb2 = FilledBoundaryAttributes()
    +fb2.colorType = fb.ColorBySingleColor
    +fb2.singleColor=(255, 153, 0, 255)
    +fb2.opacity = 0.5
    +SetPlotOptions(fb2)
    +
    +DrawPlots()
    +Test("fb_lines_03")
    +DeleteAllPlots()
    +
    +
    +CloseDatabase(silo_data_path("rect3d.silo"))
    +
    +# Another way of producing lines in a FB plot: Add Edge operator
    +OpenDatabase(silo_data_path("noise.silo"))
    +AddPlot("FilledBoundary", "mat1")
    +fb2.opacity = 1
    +SetPlotOptions(fb2)
    +AddOperator("Edge")
    +DrawPlots()
    +ResetView()
    +v = GetView3D()
    +v.viewNormal = (0.0368258, 0.737081, -0.674801)
    +v.viewUp = (0.0382946, 0.673722, -0.737992)
    +SetView3D(v)
    +Test("fb_lines_04")
    +
    +# perhaps a bit contrived, but adding Edge and ThreeSlice operators together
    +# will generate points and allow testing of point glyphing functionality
    +AddOperator("ThreeSlice")
    +SetOperatorOptions(ts)
    +DrawPlots()
    +Test("fb_points_01")
    +
    +fb2.pointType = fb.Tetrahedron
    +fb2.pointSize = 1
    +SetPlotOptions(fb2)
    +Test("fb_points_02")
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("noise.silo"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_label.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_label.html new file mode 100644 index 000000000..dc775762d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_label.html @@ -0,0 +1,546 @@ + +Results for plots/label.py + +

    Results of VisIt Regression Test - plots/label

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    General label plot features
    label_0_000.000.00
    label_0_010.000.00
    label_0_020.000.00
    label_0_030.000.00
    label_0_040.000.00
    label_0_050.000.00
    label_0_060.000.00
    label_0_070.000.00
    label_0_080.000.00
    label_0_090.000.00
    label_0_100.000.00
    label_0_110.000.00
    label_0_120.000.00
    label_0_130.000.00
    label_0_140.000.00
    label_0_150.000.00
    label_0_160.000.00
    label_0_170.000.00
    label_0_180.000.00
    label_0_190.000.00
    label_0_200.000.00
    Curvilinear 2D
    label_1_000.000.00
    label_1_010.000.00
    label_1_020.000.00
    label_1_030.000.00
    label_1_040.000.00
    label_1_050.000.00
    label_1_060.000.00
    Rectilinear 2D
    label_2_000.000.00
    label_2_010.000.00
    label_2_020.000.00
    label_2_030.000.00
    label_2_040.000.00
    label_2_050.000.00
    Unstructured 2D
    label_3_000.000.00
    label_3_010.000.00
    label_3_020.000.00
    label_3_030.000.00
    Testing slicing 3D data to 2D
    label_4_000.000.00
    label_4_010.000.00
    label_4_020.000.00
    label_4_030.000.00
    VTK with labels
    label_5_010.000.00
    Labelling subsets
    label_6_000.000.00
    label_6_010.000.00
    label_6_020.000.00
    label_6_030.000.00
    label_6_040.000.00
    label_6_050.000.00
    Labelling tensors
    label_7_000.000.00
    label_7_010.000.00
    label_7_020.000.00
    label_7_030.000.00
    label_7_040.000.00
    label_7_050.000.00
    Labelling in 3D with Z buffer
    label_8_000.000.00
    label_8_010.000.00
    label_8_020.000.00
    label_8_030.000.00
    label_8_040.000.00
    label_8_050.000.00
    label_8_060.000.00
    label_8_070.000.00
    label_8_080.000.00
    label_8_090.000.00
    label_8_100.000.00
    label_8_110.000.00
    Labelling sliced vectors
    label_9_000.000.00
    label_9_010.000.00
    label_9_020.000.00
    Test 3D zooming and logical mesh display
    label_10_000.000.00
    label_10_010.000.00
    label_10_020.000.00
    label_10_030.000.00
    label_10_040.000.00
    label_10_050.000.00
    label_10_060.000.00
    Test datasets with mixed variables
    label_11_000.000.00
    label_11_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_label_py.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_label_py.html new file mode 100644 index 000000000..82e148b68 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_label_py.html @@ -0,0 +1,1005 @@ +plots/label.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial
    +#  CLASSES: nightly
    +#
    +#  Test Case:  label.py
    +#
    +#  Tests:      Tests the label plot
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Oct 22 15:50:06 PST 2004
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Oct 27 15:08:27 PST 2004
    +#    I made the baseline images larger.
    +#
    +#    Mark C. Miller, Mon Apr 25 21:35:54 PDT 2005
    +#    I added tests for different data types
    +#
    +#    Kathleen Bonnell, Thu Jul 14 07:53:46 PDT 2005
    +#    Added TestLabeledVTK, to test reading and use of char data from VTK.
    +#
    +#    Brad Whitlock, Thu Aug 4 14:25:22 PST 2005
    +#    Added tests for labelling subsets and I also removed the single cell/node
    +#    stuff and replaced it with tests for setting individual cell/node
    +#    colors and text heights.
    +#
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +#    Brad Whitlock, Tue Nov 15 09:56:44 PDT 2005
    +#    Added another test for sliced vectors.
    +#
    +#    Brad Whitlock, Tue Apr 25 15:47:21 PST 2006
    +#    I added tests for making sure that Label plots of structured meshes
    +#    actually show their logical index nature by default. The tests also
    +#    show the Label plot with zooms that used to make the labels be incorrectly
    +#    offset from the other plots.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Alister Maguire, Mon Feb 26 10:22:04 PST 2018
    +#    Added TestMixedVariables for testing datasets with mixed variables.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Replace obsolete Label text attributes with new versions.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin(("Boxlib2D", "SAMRAI", "VTK"))
    +
    +
    +# Create label attributes with somewhat larger text.
    +def CreateLabelAttributes():
    +    L = LabelAttributes()
    +    L.textFont1.scale = 5
    +    L.textFont2.scale = 5
    +    return L
    +
    +def SaveTestImage(name):
    +    # Save these images somewhat larger than a regular test case image
    +    # since the images contain a lot of text.
    +    swa = SaveWindowAttributes()
    +    swa.width = 500
    +    swa.height = 500
    +    swa.screenCapture = 0
    +    Test(name, swa)
    +
    +def TestGeneralFeatures():
    +    TestSection("General label plot features")
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Label", "curvmesh2d")
    +    DrawPlots()
    +    SaveTestImage("label_0_00")
    +
    +    # Change the zoom a few times to see the number of labels adaptively change.
    +    v0 = View2DAttributes()
    +    v0.windowCoords = (-11.6154, 11.8294, -3.18886, 8.33075)
    +    v0.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v0.fullFrameActivationMode = v0.Off
    +    SetView2D(v0)
    +    SaveTestImage("label_0_01")
    +
    +    v1 = View2DAttributes()
    +    v1.windowCoords = (-1.0815, 1.29556, 1.98696, 3.15493)
    +    v1.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v1.fullFrameActivationMode = v1.Off
    +    SetView2D(v1)
    +    SaveTestImage("label_0_02")
    +
    +    v2 = View2DAttributes()
    +    v2.windowCoords = (1.78125, 3.00819, 0.209532, 0.812385)
    +    v2.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v2.fullFrameActivationMode = v2.Off
    +    AddPlot("Mesh", "curvmesh2d")
    +    DrawPlots()
    +    SetActivePlots(0)
    +    SetView2D(v2)
    +    SaveTestImage("label_0_03")
    +
    +    # Turn on nodes
    +    L = CreateLabelAttributes()
    +    L.showNodes = 1
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_04")
    +
    +    # Turn off cells
    +    L.showCells = 0
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_05")
    +
    +    # Try showing nodes and cells and alter their respective sizes
    +    L.showCells = 1
    +    L.showNodes = 1
    +    L.textFont1.scale = 6
    +    L.textFont2.scale = 5
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_06")
    +
    +    # Change the cell color.
    +    L.textFont1.color = (0,255,0,255)
    +    L.textFont1.useForegroundColor = 0
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_07")
    +
    +    # Change the node color
    +    L.textFont2.color = (100,10,255,255)
    +    L.textFont2.useForegroundColor = 0
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_08")
    +    L.textFont1.color = (0,255,0,255)
    +    L.textFont2.color = (0,255,0,255)
    +
    +    # Change the structured indices to regular indices
    +    L.showCells = 1
    +    L.labelDisplayFormat = L.Index
    +    L.textFont1.scale = 5
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_09")
    +
    +    # Make the text a little bigger
    +    L.textFont1.scale = 8
    +    L.textFont2.scale = 8
    +    L.showCells = 0
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_10")
    +
    +    # Test different text alignments
    +    L.textFont1.scale = 6
    +    L.textFont2.scale = 6
    +    L.horizontalJustification = L.Left
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_11")
    +    L.horizontalJustification = L.Right
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_12")
    +    L.horizontalJustification = L.HCenter
    +    L.verticalJustification = L.Top
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_13")
    +    L.verticalJustification = L.Bottom
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_14")
    +
    +    # Test changing the number of labels.
    +    L.verticalJustification = L.VCenter
    +    SetPlotOptions(L)
    +    ResetView()
    +    SaveTestImage("label_0_15")
    +    L.numberOfLabels = 40
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_16")
    +
    +    # Turn off restricting the number of labels.
    +    L.restrictNumberOfLabels = 0
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_17")
    +    DeleteAllPlots()
    +
    +    # test different data types from the file
    +    OpenDatabase(silo_data_path("wave0000.silo"))
    +
    +    AddPlot("Label", "chars")
    +    DrawPlots()
    +    v3d=GetView3D()
    +    v3d.viewNormal=(0, 1, 0)
    +    v3d.viewUp=(0, 0, -1)
    +    SetView3D(v3d)
    +    SaveTestImage("label_0_18")
    +    DeleteAllPlots()
    +
    +    AddPlot("Label", "shorts")
    +    DrawPlots()
    +    SaveTestImage("label_0_19")
    +    DeleteAllPlots()
    +
    +    AddPlot("Label", "ints")
    +    DrawPlots()
    +    SaveTestImage("label_0_20")
    +    ResetView()
    +    DeleteAllPlots()
    +
    +def TestCurvilinear2D():
    +    TestSection("Curvilinear 2D")
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    AddPlot("Mesh", "curvmesh2d")
    +    m = MeshAttributes()
    +    m.opaqueMode = m.Auto
    +    SetPlotOptions(m)
    +    # Do a point variable
    +    AddPlot("Label", "u")
    +    DrawPlots()
    +    ResetView()
    +    SaveTestImage("label_1_00")
    +
    +    # Make the labels a little larger and zoom in on the cells
    +    v0 = View2DAttributes()
    +    v0.windowCoords = (-0.632297, 0.483674, 3.38963, 4.57713)
    +    v0.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v0.fullFrameActivationMode = v0.Off
    +    SetView2D(v0)
    +    L = CreateLabelAttributes()
    +    L.textFont1.scale = 5
    +    L.textFont2.scale = 5
    +    SetPlotOptions(L)
    +    SaveTestImage("label_1_01")
    +
    +    # Change the a cell centered variable
    +    ChangeActivePlotsVar("d")
    +    SaveTestImage("label_1_02")
    +
    +    # Change to a node centered vector variable
    +    v0.windowCoords = (-0.662647, 0.179177, 3.52611, 4.4219)
    +    SetView2D(v0)
    +    ChangeActivePlotsVar("vel")
    +    SaveTestImage("label_1_03")
    +
    +    # Change to a mesh variable
    +    ChangeActivePlotsVar("curvmesh2d")
    +    L.showNodes = 1
    +    SetPlotOptions(L)
    +    SaveTestImage("label_1_04")
    +
    +    # Turn off a material
    +    v0.windowCoords = (-1.73904, -0.385797, 2.20216, 3.64214)
    +    SetView2D(v0)
    +    SaveTestImage("label_1_05")
    +    SetActivePlots((0,1,2))
    +    TurnMaterialsOff("2")
    +    SaveTestImage("label_1_06")
    +    DeleteAllPlots()
    +
    +def TestRectilinear2D():
    +    TestSection("Rectilinear 2D")
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    AddPlot("Pseudocolor", "ascii")
    +    AddPlot("Mesh", "quadmesh2d")
    +    m = MeshAttributes()
    +    m.opaqueMode = m.Auto
    +    SetPlotOptions(m)
    +    AddPlot("Label", "ascii")
    +    DrawPlots()
    +    ResetView()
    +    v0 = View2DAttributes()
    +    v0.windowCoords = (0.425121, 0.574879, 0.566829, 0.766505)
    +    v0.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v0.fullFrameActivationMode = v0.Off
    +    SetView2D(v0)
    +    L = CreateLabelAttributes()
    +    L.textFont1.scale = 5
    +    L.textFont2.scale = 5
    +    SetPlotOptions(L)
    +    SaveTestImage("label_2_00")
    +
    +    # Change to a cell centered float variable.
    +    ChangeActivePlotsVar("d")
    +    SaveTestImage("label_2_01")
    +
    +    # Change to a node centered variable
    +    ChangeActivePlotsVar("u")
    +    SaveTestImage("label_2_02")
    +
    +    # Change to a node centered vector variable
    +    ChangeActivePlotsVar("vel")
    +    v1 = View2DAttributes()
    +    v1.windowCoords = (0.478575, 0.543393, 0.650721, 0.737145)
    +    SetView2D(v1)
    +    SaveTestImage("label_2_03")
    +
    +    # Change to the mesh variable
    +    SetActivePlots((0,2))
    +    DeleteActivePlots()
    +    AddPlot("FilledBoundary", "mat1")
    +    AddPlot("Label", "quadmesh2d")
    +    DrawPlots()
    +    L.showNodes = 1
    +    L.textFont1.scale = 5
    +    L.textFont2.scale = 5
    +    SetPlotOptions(L)
    +    SaveTestImage("label_2_04")
    +
    +    # Turn off a material
    +    SetActivePlots((0,1,2))
    +    TurnMaterialsOff("16")
    +    SaveTestImage("label_2_05")
    +    DeleteAllPlots()
    +
    +
    +def TestUnstructured2D():
    +    TestSection("Unstructured 2D")
    +    OpenDatabase(silo_data_path("ucd2d.silo"))
    +
    +    AddPlot("Mesh", "ucdmesh2d")
    +    m = MeshAttributes()
    +    m.opaqueMode = m.Auto
    +    SetPlotOptions(m)
    +    AddPlot("Label", "ucdmesh2d")
    +    L = CreateLabelAttributes()
    +    L.showNodes = 1
    +    L.textFont1.scale = 6
    +    L.textFont2.scale = 6
    +    L.textFont1.color = (255,0,0,255)
    +    L.textFont2.color = (255,0,0,255)
    +    L.textFont1.useForegroundColor = 0
    +    L.textFont2.useForegroundColor = 0
    +    L.restrictNumberOfLabels = 0
    +    SetPlotOptions(L)
    +    DrawPlots()
    +    v0 = View2DAttributes()
    +    v0.windowCoords = (-0.154956, 4.15496, -0.154956, 4.15496)
    +    v0.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v0.fullFrameActivationMode = v0.Off
    +    SetView2D(v0)
    +    SaveTestImage("label_3_00")
    +
    +    # Change to a nodal variable
    +    ChangeActivePlotsVar("d")
    +    SaveTestImage("label_3_01")
    +
    +    # Change to a cell centered variable
    +    ChangeActivePlotsVar("p")
    +    SaveTestImage("label_3_02")
    +
    +    # Change to a mesh variable and remove a material.
    +    ChangeActivePlotsVar("ucdmesh2d")
    +    AddPlot("FilledBoundary", "mat1")
    +    DrawPlots()
    +    L.textFont1.useForegroundColor = 1
    +    L.textFont2.useForegroundColor = 1
    +    SetPlotOptions(L)
    +    SetActivePlots((0,1,2))
    +    TurnMaterialsOff("2")
    +    SaveTestImage("label_3_03")
    +    DeleteAllPlots()
    +
    +def TestSlice():
    +    TestSection("Testing slicing 3D data to 2D")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Mesh", "Mesh")
    +    m = MeshAttributes()
    +    m.opaqueMode = m.Auto
    +    SetPlotOptions(m)
    +    AddPlot("Pseudocolor", "chromeVf")
    +    AddPlot("Label", "chromeVf")
    +    SetActivePlots((0,1,2))
    +    # Add a slice operator to all of the plots
    +    AddOperator("Slice")
    +    s = SliceAttributes()
    +    s.normal = (0,0,1)
    +    s.upAxis = (0,1,0)
    +    s.project2d = 0
    +    SetOperatorOptions(s)
    +    # Make the labels a little bigger
    +    L = CreateLabelAttributes()
    +    L.textFont1.scale = 7
    +    L.textFont2.scale = 7
    +    L.depthTestMode = L.LABEL_DT_NEVER
    +    SetPlotOptions(L)
    +    DrawPlots()
    +
    +    # Look at the slice from the front
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.550782, 0.318825, 0.771355)
    +    v0.focus = (0, 0, 0)
    +    v0.viewUp = (0.200365, 0.94765, -0.248624)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 17.3205
    +    v0.nearPlane = -34.641
    +    v0.farPlane = 34.641
    +    v0.imagePan = (0, 0)
    +    v0.imageZoom = 1.82449
    +    v0.perspective = 0
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0, 0, 0)
    +    SetView3D(v0)
    +    SaveTestImage("label_4_00")
    +
    +    # Look at the slice from the back. It will only be visible if the
    +    # quantized normals were thrown out.
    +    v1 = View3DAttributes()
    +    v1.viewNormal = (-0.681715, 0.349442, -0.642771)
    +    v1.focus = (0, 0, 0)
    +    v1.viewUp = (0.26946, 0.936726, 0.223465)
    +    v1.viewAngle = 30
    +    v1.parallelScale = 17.3205
    +    v1.nearPlane = -34.641
    +    v1.farPlane = 34.641
    +    v1.imagePan = (0, 0)
    +    v1.imageZoom = 1.82449
    +    v1.perspective = 0
    +    v1.eyeAngle = 2
    +    v1.centerOfRotationSet = 0
    +    v1.centerOfRotation = (0, 0, 0)
    +    SetView3D(v1)
    +    SaveTestImage("label_4_01")
    +
    +    # Project the slice to 2D
    +    s.project2d = 1
    +    SetOperatorOptions(s)
    +    v2 = View2DAttributes()
    +    v2.windowCoords = (-8.64231, -5.11567, 2.53613, 6.24948)
    +    SetView2D(v2)
    +    SaveTestImage("label_4_02")
    +
    +    # Set the slice normal so it does not line up with an axis.
    +    s.normal = (1,2,3)
    +    SetOperatorOptions(s)
    +    SaveTestImage("label_4_03")
    +    DeleteAllPlots()
    +
    +def TestLabeledVTK():
    +    TestSection("VTK with labels")
    +    OpenDatabase(data_path("vtk_test_data/labeledBox.vtk"))
    +
    +    AddPlot("Mesh", "mesh")
    +    AddPlot("Label", "cellLabel")
    +    AddPlot("Label", "nodeLabels")
    +    DrawPlots()
    +    SetActivePlots((1, 2))
    +    l = LabelAttributes()
    +    l.textFont1.scale = 8
    +    l.textFont2.scale = 8
    +    l.depthTestMode = l.LABEL_DT_NEVER
    +    SetPlotOptions(l)
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.826308, 0.365749, 0.428303)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0.262408, 0.92288, -0.28184)
    +    v.parallelScale = 1.55885
    +    v.nearPlane = -3.11769
    +    v.farPlane  =  3.11769
    +    v.imageZoom = 0.941919
    +    SetView3D(v)
    +
    +    SaveTestImage("label_5_01")
    +    DeleteAllPlots()
    +
    +def TestLabellingSubsets():
    +    TestSection("Labelling subsets")
    +    OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +    AddPlot("Mesh", "mesh")
    +    AddPlot("Subset", "blocks")
    +    AddPlot("Label", "blocks")
    +    l = LabelAttributes()
    +    l.restrictNumberOfLabels = 0
    +    l.textFont1.scale = 5
    +    l.depthTestMode = l.LABEL_DT_NEVER
    +    SetPlotOptions(l)
    +    SetActivePlots((0,1,2))
    +    TurnDomainsOff()
    +    TurnDomainsOn(("domain1","domain10","domain19"))
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (0.465057, -0.448026, -0.763541)
    +    v.focus = (0.166667, 0.166667, 0.5)
    +    v.viewUp = (-0.243345, -0.893956, 0.376333)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.552771
    +    v.nearPlane = -1.10554
    +    v.farPlane = 1.10554
    +    v.imagePan = (0.0545619, 0.050939)
    +    v.imageZoom = 1.32578
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.166667, 0.166667, 0.5)
    +    SetView3D(v)
    +    SaveTestImage("label_6_00")
    +
    +    SetActivePlots((1,2))
    +    ChangeActivePlotsVar("domains")
    +    SaveTestImage("label_6_01")
    +
    +    SetActivePlots(1)
    +    DeleteActivePlots()
    +    AddPlot("FilledBoundary", "mat")
    +    SetActivePlots(1)
    +    DrawPlots()
    +    ChangeActivePlotsVar("mat")
    +    SaveTestImage("label_6_02")
    +
    +    # Try an AMR dataset
    +    DeleteAllPlots()
    +    OpenDatabase(data_path("boxlib_test_data/2D/plt0822/Header"))
    +
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("Subset", "patches")
    +    s = SubsetAttributes()
    +    s.legendFlag = 0
    +    SetPlotOptions(s)
    +    AddPlot("Label", "patches")
    +    l = LabelAttributes()
    +    l.restrictNumberOfLabels = 0
    +    l.textFont1.scale = 4.7
    +    SetPlotOptions(l)
    +    DrawPlots()
    +    v = View2DAttributes()
    +    v.windowCoords = (0.0126663, 0.0146908, 0.115281, 0.117298)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +    v.fullFrameAutoThreshold = 100
    +    SetView2D(v)
    +    SaveTestImage("label_6_03")
    +
    +    SetActivePlots((1,2))
    +    ChangeActivePlotsVar("levels")
    +    v = View2DAttributes()
    +    v.windowCoords = (0.0250949, 0.0437515, 0.11359, 0.132218)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +    v.fullFrameAutoThreshold = 100
    +    SetView2D(v)
    +    SetActivePlots(2)
    +    l.textFont1.scale = 4
    +    SetPlotOptions(l)
    +    SaveTestImage("label_6_04")
    +    DeleteAllPlots()
    +
    +    # Try a dataset with real material names.
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("FilledBoundary", "mat1")
    +    AddPlot("Label", "mat1")
    +    l = LabelAttributes()
    +    l.textFont1.scale = 5
    +    SetPlotOptions(l)
    +    SetActivePlots((0,1,2))
    +    AddOperator("Slice")
    +    DrawPlots()
    +    v = View2DAttributes()
    +    v.windowCoords = (-9.37363, -6.58974, -2.85531, -0.327839)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +    v.fullFrameAutoThreshold = 100
    +    SetView2D(v)
    +    SaveTestImage("label_6_05")
    +    DeleteAllPlots()
    +
    +
    +def TestLabellingTensors():
    +    TestSection("Labelling tensors")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("Tensor", "grad_tensor")
    +    t = TensorAttributes()
    +    t.useStride = 1
    +    SetPlotOptions(t)
    +    AddPlot("Label", "grad_tensor")
    +    SetActivePlots((0,1,2))
    +    AddOperator("Slice")
    +    DrawPlots()
    +    ResetView()
    +    SaveTestImage("label_7_00")
    +
    +    v = View2DAttributes()
    +    v.windowCoords = (-9.13799, -4.37695, -7.71782, -2.97379)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +    v.fullFrameAutoThreshold = 100
    +    SetView2D(v)
    +    SaveTestImage("label_7_01")
    +
    +    v.windowCoords = (-8.50106, -7.83502, -6.43747, -5.77381)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +    v.fullFrameAutoThreshold = 100
    +    SetView2D(v)
    +    SaveTestImage("label_7_02")
    +
    +    # Now see how changing the text height affects binning
    +    ResetView()
    +    l = LabelAttributes()
    +    l.textFont1.scale = 3
    +    SetActivePlots(2)
    +    SetPlotOptions(l)
    +    SaveTestImage("label_7_03")
    +
    +    l.textFont1.scale = 6
    +    SetPlotOptions(l)
    +    SaveTestImage("label_7_04")
    +
    +    SetView2D(v)
    +    SaveTestImage("label_7_05")
    +
    +    DeleteAllPlots()
    +
    +def TestLabelling3D():
    +    TestSection("Labelling in 3D with Z buffer")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "airVf")
    +    AddPlot("Label", "airVf")
    +    L = LabelAttributes()
    +    L.restrictNumberOfLabels = 0
    +    L.depthTestMode = L.LABEL_DT_NEVER
    +    SetPlotOptions(L)
    +    DrawPlots()
    +    ResetView()
    +    SaveTestImage("label_8_00")
    +
    +    # Turn on depth testing
    +    L.depthTestMode = L.LABEL_DT_AUTO
    +    SetPlotOptions(L)
    +    SaveTestImage("label_8_01")
    +
    +    # Apply an Isosurface operator to make things really convoluted
    +    SetActivePlots((0,1))
    +    AddOperator("Isosurface")
    +    iso = IsosurfaceAttributes()
    +    iso.contourNLevels = 1
    +    iso.variable="hardyglobal"
    +    SetOperatorOptions(iso)
    +    v = View3DAttributes()
    +    v.viewNormal = (0.883239, -0.244693, -0.400019)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0.435303, 0.745036, 0.505404)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (0.022398, -0.134568)
    +    v.imageZoom = 3.35882
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +    DrawPlots()
    +    SaveTestImage("label_8_02")
    +
    +    #
    +    # Try labelling a mesh that has interior stuff
    +    #
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "speed")
    +    AddPlot("Mesh", "mesh1")
    +    AddPlot("Label", "mesh1")
    +    L = CreateLabelAttributes()
    +    L.restrictNumberOfLabels = 0
    +    L.drawLabelsFacing = L.FrontAndBack
    +    L.depthTestMode = L.LABEL_DT_AUTO
    +    SetPlotOptions(L)
    +    DrawPlots()
    +    ResetView()
    +    v.viewNormal = (-0.735192, 0.371514, 0.566984)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0.2695, 0.927683, -0.258407)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1.60959
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +    SaveTestImage("label_8_03")
    +
    +    v1 = View3DAttributes()
    +    v1.viewNormal = (0, 0, 1)
    +    v1.focus = (0, 0, 0)
    +    v1.viewUp = (0, 1, 0)
    +    v1.viewAngle = 30
    +    v1.parallelScale = 17.3205
    +    v1.nearPlane = -34.641
    +    v1.farPlane = 34.641
    +    v1.imagePan = (0, 0)
    +    v1.imageZoom = 5.06081
    +    v1.perspective = 1
    +    v1.eyeAngle = 2
    +    v1.centerOfRotationSet = 0
    +    v1.centerOfRotation = (0, 0, 0)
    +    SetView3D(v1)
    +    SaveTestImage("label_8_04")
    +
    +    # Turn on node labels
    +    L.showNodes = 1
    +    SetPlotOptions(L)
    +    SaveTestImage("label_8_05")
    +
    +    # Label a variable that would normally have labels that protrude into
    +    # the dataset
    +    ChangeActivePlotsVar("speed")
    +    ResetView()
    +    SaveTestImage("label_8_06")
    +
    +    SetView3D(v)
    +    SaveTestImage("label_8_07")
    +    DeleteAllPlots()
    +
    +    #
    +    # Try labelling a 3D AMR dataset
    +    #
    +    OpenDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +    AddPlot("Pseudocolor", "Primitive Var _number_0")
    +    AddPlot("Mesh", "amr_mesh")
    +    AddPlot("Label", "levels")
    +    L = CreateLabelAttributes()
    +    L.showNodes = 1
    +    L.showCells = 0
    +    L.restrictNumberOfLabels = 0
    +    L.depthTestMode = L.LABEL_DT_NEVER
    +    SetPlotOptions(L)
    +    DrawPlots()
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.643521, -0.624962, -0.441931)
    +    v2.focus = (15, 10, 10)
    +    v2.viewUp = (0.320552, 0.304253, -0.897038)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 20.6155
    +    v2.nearPlane = -41.2311
    +    v2.farPlane = 41.2311
    +    v2.imagePan = (-0.0412674, 0.141248)
    +    v2.imageZoom = 1.871
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (15, 10, 10)
    +    SetView3D(v2)
    +    SaveTestImage("label_8_08")
    +
    +    # Turn on zbuffering
    +    L.depthTestMode = L.LABEL_DT_AUTO
    +    SetPlotOptions(L)
    +    SaveTestImage("label_8_09")
    +
    +    # Restrict the number of labels
    +    L.restrictNumberOfLabels = 1
    +    L.numberOfLabels = 900
    +    L.depthTestMode = L.LABEL_DT_NEVER
    +    SetPlotOptions(L)
    +    SaveTestImage("label_8_10")
    +
    +    # Turn on zbuffering
    +    L.depthTestMode = L.LABEL_DT_AUTO
    +    SetPlotOptions(L)
    +    SaveTestImage("label_8_11")
    +    DeleteAllPlots()
    +
    +def TestSlicedVectors():
    +    TestSection("Labelling sliced vectors")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("Label", "grad")
    +    L = CreateLabelAttributes()
    +    L.depthTestMode = L.LABEL_DT_NEVER
    +    SetPlotOptions(L)
    +    SetActivePlots((0,1))
    +    AddOperator("Slice")
    +    DrawPlots()
    +
    +    v = View2DAttributes()
    +    v.windowCoords = (-0.370383, 0.566874, -0.275836, 0.66177)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +    v.fullFrameAutoThreshold = 100
    +    SetView2D(v)
    +    SaveTestImage("label_9_00")
    +
    +    AddPlot("Vector", "grad")
    +    vec = VectorAttributes()
    +    vec.useStride = 1
    +    vec.scale = 0.5
    +    SetPlotOptions(vec)
    +    AddOperator("Slice")
    +    SetActivePlots((0,1,2))
    +    s = SliceAttributes()
    +    s.project2d = 0
    +    SetOperatorOptions(s)
    +    DrawPlots()
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.332304, 0.933436, 0.135169)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (-0.353747, 0.00950422, -0.935293)
    +    v.viewAngle = 30
    +    v.parallelScale = 14.1421
    +    v.nearPlane = -28.2843
    +    v.farPlane = 28.2843
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 17.3567
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +    SaveTestImage("label_9_01")
    +
    +    # Test a case where having the vector be an expression was causing
    +    # VisIt to mess up.
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Mesh", "quadmesh3d")
    +    AddPlot("Label", "vel")
    +    L = LabelAttributes()
    +    L.textFont1.scale = 6
    +    L.textFont1.color = (255,0,0,255)
    +    L.textFont1.useForegroundColor = 0
    +    SetPlotOptions(L)
    +    SetActivePlots((0,1))
    +    AddOperator("Slice")
    +    s = SliceAttributes()
    +    s.originType = s.Intercept
    +    s.originIntercept = 0
    +    s.axisType = s.YAxis
    +    s.project2d = 1
    +    SetOperatorOptions(s)
    +    DrawPlots()
    +    v = View2DAttributes()
    +    v.windowCoords = (0.0476715, 0.155784, 0.874164, 0.991825)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +    v.fullFrameAutoThreshold = 100
    +    SetView2D(v)
    +    SaveTestImage("label_9_02")
    +
    +def TestRectilinearLogicalDisplay():
    +    TestSection("Test 3D zooming and logical mesh display")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("Label", "Mesh")
    +    L = CreateLabelAttributes()
    +    SetPlotOptions(L)
    +    DrawPlots()
    +
    +    # Also zoom in using some views obtained from rubber-band style
    +    # views that would have made the labels migrate from their
    +    # correct locations in older versions of VisIt.
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.566084, -0.288713, 0.772135)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (-0.357175, 0.930078, 0.0859103)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (0.104981, 0.174394)
    +    v.imageZoom = 12.8916
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +    SaveTestImage("label_10_00")
    +
    +    # Make it be displayed using index style numbers.
    +    L.labelDisplayFormat = L.Index
    +    SetPlotOptions(L)
    +    SaveTestImage("label_10_01")
    +
    +    # Make sure the labels are in the right place when we tell VisIt
    +    # to draw them all instead of binning.
    +    L.restrictNumberOfLabels = 0
    +    SetPlotOptions(L)
    +    SaveTestImage("label_10_02")
    +
    +    # Try a nodal variable.
    +    ChangeActivePlotsVar("hardyglobal")
    +    SaveTestImage("label_10_03")
    +
    +    # Try a 2D rectilinear mesh
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "hgslice")
    +    AddPlot("Mesh", "Mesh2D")
    +    AddPlot("Label", "Mesh2D")
    +    L = CreateLabelAttributes()
    +    SetPlotOptions(L)
    +    DrawPlots()
    +
    +    v1 = GetView2D()
    +    v1.windowCoords = (-7.52178, -5.09684, -8.8535, -6.43779)
    +    v1.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    SetView2D(v1)
    +    SaveTestImage("label_10_04")
    +
    +    # Try a 3D curvilinear mesh
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +    AddPlot("Mesh", "curvmesh3d")
    +    m = MeshAttributes()
    +    m.opaqueMode = m.On
    +    SetPlotOptions(m)
    +    AddPlot("Label", "curvmesh3d")
    +    L = CreateLabelAttributes()
    +    SetPlotOptions(L)
    +    DrawPlots()
    +    v2 = GetView3D()
    +    v2.viewNormal = (0.405434, 0.494827, 0.768615)
    +    v2.focus = (0, 2.5, 15)
    +    v2.viewUp = (-0.296176, 0.866572, -0.401662)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 16.0078
    +    v2.nearPlane = -32.0156
    +    v2.farPlane = 32.0156
    +    v2.imagePan = (0.129303, 0.36944)
    +    v2.imageZoom = 43.2454
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0, 2.5, 15)
    +    SetView3D(v2)
    +    SaveTestImage("label_10_05")
    +
    +    ChangeActivePlotsVar("u")
    +    SaveTestImage("label_10_06")
    +    DeleteAllPlots()
    +
    +def TestMixedVariables():
    +    TestSection("Test datasets with mixed variables")
    +    DeleteAllPlots()
    +
    +    ma = GetMaterialAttributes()
    +    ma.forceMIR = 1
    +    SetMaterialAttributes(ma)
    +
    +    OpenDatabase(silo_data_path("specmix_ucd.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("Label", "d")
    +    L = CreateLabelAttributes()
    +    SetPlotOptions(L)
    +    DrawPlots()
    +
    +    View2DAtts = View2DAttributes()
    +    View2DAtts.windowCoords = (-10.9988, -8.83259, 1.01139, 3.18029)
    +    View2DAtts.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    SetView2D(View2DAtts)
    +
    +    SaveTestImage("label_11_00")
    +
    +    View2DAtts = View2DAttributes()
    +    View2DAtts.windowCoords = (0.474811, 3.09596, 1.20289, 3.82726)
    +    View2DAtts.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    SetView2D(View2DAtts)
    +
    +    SaveTestImage("label_11_01")
    +
    +    DeleteAllPlots()
    +
    +def main():
    +    TestGeneralFeatures()
    +    TestCurvilinear2D()
    +    TestRectilinear2D()
    +    TestUnstructured2D()
    +    TestSlice()
    +    TestLabeledVTK()
    +    TestLabellingSubsets()
    +    TestLabellingTensors()
    +    TestLabelling3D()
    +    TestSlicedVectors()
    +    TestRectilinearLogicalDisplay()
    +    TestMixedVariables()
    +
    +# Run all of the tests
    +main()
    +
    +# Exit the test
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_mesh.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_mesh.html new file mode 100644 index 000000000..8e94df1fa --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_mesh.html @@ -0,0 +1,249 @@ + +Results for plots/mesh.py + +

    Results of VisIt Regression Test - plots/mesh

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Testing random color mode
    mesh_random_color_010.000.00
    mesh_random_color_020.000.00
    mesh_random_color_030.000.00
    Mesh plot of a 3D curvilinear mesh
    mesh_curve_010.000.00
    mesh_curve_020.000.00
    mesh_curve_030.000.00
    Mesh plot of a point mesh
    mesh_point_010.000.00
    mesh_point_020.000.00
    mesh_point_030.000.00
    mesh_point_040.000.00
    mesh_point_050.000.00
    mesh_point_060.000.00
    mesh_point_070.000.00
    mesh_point_080.000.00
    mesh_point_090.000.00
    mesh_point_100.000.00
    mesh_point_110.000.00
    mesh_point_120.000.00
    Mesh plot of a 3D unstructured mesh
    mesh_globe_010.000.00
    mesh_globe_020.000.00
    mesh_globe_030.000.00
    mesh_globe_040.000.00
    Mesh plot of a 3D rectilinear mesh
    mesh_rect3d_010.000.00
    Testing Mesh plot's opaque flag
    mesh_opaque_010.000.00
    mesh_opaque_020.000.00
    mesh_opaque_030.000.00
    mesh_opaque_040.000.00
    mesh_opaque_050.000.00
    mesh_opaque_060.000.00
    mesh_opaque_070.000.00
    mesh_opaque_080.000.00
    Testing custom color mode
    mesh_custom_color_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_mesh_c.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_mesh_c.html new file mode 100644 index 000000000..461657d8b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_mesh_c.html @@ -0,0 +1,249 @@ + +Results for plots/mesh_c.py + +

    Results of VisIt Regression Test - plots/mesh_c

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Testing random color mode
    mesh_random_color_010.000.00
    mesh_random_color_020.000.00
    mesh_random_color_030.000.00
    Mesh plot of a 3D curvilinear mesh
    mesh_curve_010.000.00
    mesh_curve_020.000.00
    mesh_curve_030.000.00
    Mesh plot of a point mesh
    mesh_point_010.000.00
    mesh_point_020.000.00
    mesh_point_030.000.00
    mesh_point_040.000.00
    mesh_point_050.000.00
    mesh_point_060.000.00
    mesh_point_070.000.00
    mesh_point_080.000.00
    mesh_point_090.000.00
    mesh_point_100.000.00
    mesh_point_110.000.00
    mesh_point_120.000.00
    Mesh plot of a 3D unstructured mesh
    mesh_globe_010.000.00
    mesh_globe_020.000.00
    mesh_globe_030.000.00
    mesh_globe_040.000.00
    Mesh plot of a 3D rectilinear mesh
    mesh_rect3d_010.000.00
    Testing Mesh plot's opaque flag
    mesh_opaque_010.000.00
    mesh_opaque_020.000.00
    mesh_opaque_030.000.00
    mesh_opaque_040.000.00
    mesh_opaque_050.000.00
    mesh_opaque_060.000.00
    mesh_opaque_070.000.00
    mesh_opaque_080.000.00
    Testing custom color mode
    mesh_custom_color_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_mesh_c_py.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_mesh_c_py.html new file mode 100644 index 000000000..4b5c4c7b6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_mesh_c_py.html @@ -0,0 +1,21 @@ +plots/mesh_c.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  mesh_c.py
    +#
    +#  Tests:      Runs the mesh.py test but with compression turned on.
    +#              mesh.py tests for existence of 'useCompression' variable
    +#              and turns on compression if it exists. We expect identical
    +#              output from the tests but because this py file has a different
    +#              name, it will generate them a subdir by the name 'mesh_c'
    +#              and look for baselines likewise. So, in baseline dir,
    +#              the mesh_c dir is a symlink to scalable.
    +#
    +#  Programmer: Mark C. Miller
    +#  Date:       19Aug08
    +#
    +# ----------------------------------------------------------------------------
    +
    +useCompression = 1
    +Source(tests_path("plots","mesh.py"))
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_mesh_py.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_mesh_py.html new file mode 100644 index 000000000..cc67edd3c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_mesh_py.html @@ -0,0 +1,446 @@ +plots/mesh.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  mesh.py
    +#
    +#  Tests:      mesh      - 3D structured, single domain
    +#                        - 3D point, single domain
    +#                        - 2D point, single domain
    +#                        - 3D unstructured, single domain
    +#              plots     - mesh, pseudocolor
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Kathleen Bonnell
    +#  Date:       September 03, 2003
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Sep  4 11:10:11 PDT 2003
    +#    Change the way MeshPlot's opaque mode is set (now an enum, not a bool).
    +#
    +#    Kathleen Bonnell, Thu Sep  4 11:10:11 PDT 2003
    +#    Added two test for new MeshAttribute 'showInternal':  mesh_globe_04
    +#    and mesh_rect3d_01.
    +#
    +#    Brad Whitlock, Thu Apr 8 12:50:21 PDT 2004
    +#    Added tests to test the auto mesh opacity flag.
    +#
    +#    Jeremy Meredith, Tue May  4 12:41:49 PDT 2004
    +#    Added test for unglyphed (i.e. GL_POINT) point meshes.
    +#
    +#    Kathleen Bonnell, Tue Nov  2 16:20:55 PST 2004
    +#    Removed opaque-mode portion of mesh_point_01, as opaque-mode no longer
    +#    applies to Mesh plots of Point meshes.
    +#
    +#    Mark C. Miller, Tue Aug 19 17:31:29 PDT 2008
    +#    Add code to permit the test to be run with compression as well.
    +#
    +#    Mark C. Miller, Wed Jan 21 10:00:10 PST 2009
    +#    Removed silly comment regarding global annotation object 'a'
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Wed Jun 10 17:39:23 PDT 2020
    +#    Move RandomColor test to be first test run so that changes in mesh plot
    +#    instances don't randomly make the test fail.
    +#
    +#    Kathleen Biagas, Thu Jun 11 07:57:10 PDT 2020
    +#    Add more data files to PointMesh test, to ensure data that doesnt' set
    +#    topological dimension to 0, and data with mixed topology can still do
    +#    point glyphing and changes point size.
    +#
    +#    Kathleen Biagas, Wed Feb 16 09:15:45 PST 2022
    +#    Replace use of meshatts 'foregroundFlag', 'backgroundFlag' with
    +#    'meshColorSource' and 'opaqueColorSource' respectively.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Remove obsolete mesh att 'lineStyle'.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def TestCurve():
    +    TestSection("Mesh plot of a 3D curvilinear mesh")
    +    OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +    AddPlot("Mesh", "curvmesh3d")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0.37, 0.48, 0.79)
    +    v.focus = (0, 2.5, 15)
    +    v.viewUp = (-0.18, 0.87, -0.45)
    +    v.imagePan = (0.08, 0.08)
    +    v.imageZoom = 2.0
    +    SetView3D(v)
    +
    +    Test("mesh_curve_01")
    +
    +    # Change color
    +    # and add a PC Plot.
    +    m = MeshAttributes()
    +    m.opaqueColorSource = m.OpaqueCustom
    +    m.opaqueColor = (0, 122, 200, 255)
    +    SetPlotOptions(m)
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    Test("mesh_curve_02")
    +
    +    SetActivePlots(0)
    +    SetPlotOptions(m)
    +    SetActivePlots(1)
    +    HideActivePlots()
    +    Test("mesh_curve_03")
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("curv3d.silo"))
    +
    +def TestPointMesh():
    +    TestSection("Mesh plot of a point mesh")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "PointVar")
    +    p = PseudocolorAttributes()
    +    p.pointType = p.Box
    +    p.pointSize = 1.0
    +    SetPlotOptions(p)
    +
    +    DrawPlots()
    +    Test("mesh_point_01")
    +
    +    p.pointType = p.Icosahedron
    +    p.pointSize = 1.5
    +    SetPlotOptions(p)
    +    DrawPlots()
    +    Test("mesh_point_02")
    +
    +    DeleteActivePlots()
    +
    +    AddPlot("Mesh", "PointMesh")
    +    m = MeshAttributes()
    +    m.meshColorSource = m.MeshCustom
    +    m.meshColor = (0, 122, 200, 255)
    +    m.pointSize = 1.5
    +    m.pointType = m.Axis
    +    SetPlotOptions(m)
    +    DrawPlots()
    +    Test("mesh_point_03")
    +
    +    m.pointType = m.Point
    +    m.pointSizePixels = 1
    +    SetPlotOptions(m)
    +    Test("mesh_point_04")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("noise.silo"))
    +
    +    OpenDatabase(silo_data_path("noise2d.silo"))
    +
    +    AddPlot("Mesh", "PointMesh")
    +    ResetView()
    +    DrawPlots()
    +    m.pointType = m.Axis
    +    m.pointSizeVarEnabled = 1
    +    m.pointSizeVar = "PointVar"
    +    m.pointSize = 0.05
    +    SetPlotOptions(m)
    +    Test("mesh_point_05")
    +
    +    m.pointType = m.Point
    +    m.pointSizePixels = 1
    +    m.pointSizeVarEnabled = 0
    +    SetPlotOptions(m)
    +    Test("mesh_point_06")
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("noise2d.silo"))
    +
    +    OpenDatabase(data_path("blueprint_v0.3.1_test_data/braid_3d_examples_json.root"))
    +
    +    AddPlot("Mesh", "points_mesh")
    +
    +    m = MeshAttributes()
    +    m.meshColorSource = m.MeshCustom
    +    m.meshColor = (0, 170, 255, 255)
    +    SetPlotOptions(m)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (-0.605449, 0.469667, 0.642529)
    +    v.viewUp = (0.169201, 0.864818, -0.472716)
    +    SetView3D(v)
    +    Test("mesh_point_07")
    +
    +    m.pointSizePixels = 5
    +    SetPlotOptions(m)
    +    Test("mesh_point_08")
    +
    +    m.pointType = m.Tetrahedron
    +    m.pointSize = 3
    +    SetPlotOptions(m)
    +    Test("mesh_point_09")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("blueprint_v0.3.1_test_data/braid_3d_examples_json.root"))
    +
    +    OpenDatabase(data_path("vtk_test_data/ugrid_mixed_cells.vtk"))
    +
    +    AddPlot("Mesh", "mesh")
    +    m.lineWidth = 3
    +    m.pointType = m.Point
    +    m.pointSizePixels = 2
    +    SetPlotOptions(m)
    +    DrawPlots()
    +    ResetView()
    +
    +    Test("mesh_point_10")
    +
    +    m.pointSizePixels = 5
    +    SetPlotOptions(m)
    +    Test("mesh_point_11")
    +
    +    m.pointType = m.Icosahedron
    +    m.pointSize = 0.5
    +    SetPlotOptions(m)
    +    Test("mesh_point_12")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/ugrid_mixed_cells.vtk"))
    +
    +
    +def TestGlobe():
    +    TestSection("Mesh plot of a 3D unstructured mesh")
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (1, 0, 0)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0, 1, 0)
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1.0
    +    SetView3D(v)
    +
    +    m = MeshAttributes()
    +    m.opaqueMode = m.Off
    +    SetPlotOptions(m)
    +    Test("mesh_globe_01")
    +
    +    m.smoothingLevel = m.Fast
    +    SetPlotOptions(m)
    +    Test("mesh_globe_02")
    +
    +    m.smoothingLevel = m.High
    +    SetPlotOptions(m)
    +    Test("mesh_globe_03")
    +
    +    print(m.NONE)
    +    m.smoothingLevel = m.NONE
    +    m.opaqueMode = m.Auto
    +    m.showInternal = 1
    +    SetPlotOptions(m)
    +    ResetView()
    +
    +    TurnMaterialsOff(("1", "2", "4"))
    +
    +    AddOperator("Clip")
    +    clip = ClipAttributes()
    +    clip.plane1Status = 0
    +    clip.plane3Status = 1
    +    SetOperatorOptions(clip)
    +
    +    AddOperator("Transform")
    +    t = TransformAttributes()
    +    t.doRotate = 1
    +    t.rotateAxis = (1, 0, 0)
    +    t.rotateAmount = 112
    +    SetOperatorOptions(t)
    +    DrawPlots()
    +
    +    SetViewExtentsType("actual")
    +    Test("mesh_globe_04")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("globe.silo"))
    +
    +def TestRect3d():
    +    TestSection("Mesh plot of a 3D rectilinear mesh")
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    m = MeshAttributes()
    +    m.opaqueMode = m.Auto
    +    m.showInternal = 1
    +    SetPlotOptions(m)
    +
    +    #Show a small area that contains the boundary
    +    #between domains 1 & 2 by using the box operator
    +    AddOperator("Box")
    +    box = BoxAttributes();
    +    box.minx = 0.3
    +    box.maxx = 0.4
    +    box.miny = 0.1
    +    box.maxy = 0.2
    +    box.minz = 0.1
    +    box.maxz = 0.2
    +    SetOperatorOptions(box)
    +
    +    DrawPlots()
    +
    +    SetViewExtentsType("actual")
    +    v = GetView3D()
    +    v.viewNormal = (0.27, 0.27, 0.93)
    +    v.focus = (0.35, 0.15, 0.15)
    +    v.viewUp = (-0.06, 0.96, -0.26)
    +    v.parallelScale = 0.139692
    +    v.nearPlane = -0.28
    +    v.farPlane = 0.28
    +    SetView3D(v)
    +
    +    Test("mesh_rect3d_01")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +def TestAutoOpaqueFlag():
    +    TestSection("Testing Mesh plot's opaque flag")
    +
    +    # Set up a mesh plot with the auto opaque flag.
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    m = MeshAttributes()
    +    m.opaqueMode = m.Auto
    +    SetPlotOptions(m)
    +    ResetView()
    +    TurnMaterialsOn()
    +    DrawPlots()
    +    Test("mesh_opaque_01")
    +
    +    # Add a Pseudocolor plot and make sure that the mesh plot
    +    # is not drawn in opaque mode.
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    Test("mesh_opaque_02")
    +
    +    # Hide the Pseudocolor plot and make sure that the mesh plot
    +    # goes opaque.
    +    HideActivePlots()
    +    Test("mesh_opaque_03")
    +
    +    # Unhide the Pseudocolor plot and then delete it. Make sure that the
    +    # mesh plot goes opaque.
    +    HideActivePlots()
    +    Test("mesh_opaque_04")
    +    DeleteActivePlots()
    +    Test("mesh_opaque_05")
    +    DeleteAllPlots()
    +
    +    # Restore a session file that has a keyframe animation where the mesh
    +    # plot exists over all frames but the Pseudocolor plot does not.
    +    RestoreSessionWithDifferentSources(tests_path("plots","mesh_opaque.session"), 0,
    +                                       silo_data_path("wave*.silo database"))
    +    # Turn off all annotations but preserve the background colors.
    +    TurnOffAllAnnotations(GetAnnotationAttributes())
    +    Test("mesh_opaque_06")
    +    SetTimeSliderState(4)
    +    Test("mesh_opaque_07")
    +    SetTimeSliderState(9)
    +    Test("mesh_opaque_08")
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("globe.silo"))
    +
    +def TestRandomColor():
    +    TestSection("Testing random color mode")
    +    OpenDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +
    +    # Randomization of mesh colors is possible only at plot *creation* time.
    +    # Therefore, we need to adjust Mesh plot default attributes to set
    +    # the behavior *before* the plot is even created.
    +    m = MeshAttributes()
    +    savedMeshAttrs = m
    +    m.meshColorSource = m.MeshRandom
    +    SetDefaultPlotOptions(m)
    +    AddPlot("Mesh", "2D/mesh1_phzl")
    +    ResetView()
    +    DrawPlots()
    +    Test("mesh_random_color_01")
    +    DeleteActivePlots()
    +
    +    m.meshColorSource = m.Foreground
    +    SetDefaultPlotOptions(m)
    +    AddPlot("Mesh", "2D/mesh1_phzl")
    +    DrawPlots()
    +    Test("mesh_random_color_02")
    +    DeleteAllPlots()
    +
    +    # Add a series of mesh plots with random opaque color
    +    m = MeshAttributes()
    +    m.opaqueColorSource = m.OpaqueRandom
    +    SetDefaultPlotOptions(m)
    +    meshnames = ["2D/mesh1_phzl", "2D/mesh1_phzl2", "2D/mesh1_zl1", "2D/mesh1_zl2"]
    +    for i in range(len(meshnames)):
    +        mname = meshnames[i]
    +        AddPlot("Mesh", mname)
    +        AddOperator("Transform")
    +        ta = TransformAttributes()
    +        ta.doTranslate = 1
    +        ta.translateY = 3*i
    +        SetOperatorOptions(ta)
    +    DrawPlots()
    +    Test("mesh_random_color_03")
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +    SetDefaultPlotOptions(savedMeshAttrs)
    +
    +def TestCustomColor():
    +    TestSection("Testing custom color mode")
    +    OpenDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +
    +    meshnames = ["2D/mesh1_phzl", "2D/mesh1_phzl2", "2D/mesh1_zl1", "2D/mesh1_zl2"]
    +    colors = [(255,0,0,255),(0,255,0,255),(0,0,255,255),(0,255,255,255)]
    +    for i in range(len(meshnames)):
    +        mname = meshnames[i]
    +        AddPlot("Mesh", mname)
    +        m = MeshAttributes()
    +        m.opaqueColorSource = m.OpaqueCustom
    +        m.opaqueColor = colors[i]
    +        m.meshColorSource = m.MeshCustom
    +        m.meshColor = (255,255,255,255)
    +        SetPlotOptions(m)
    +        AddOperator("Transform")
    +        ta = TransformAttributes()
    +        ta.doTranslate = 1
    +        ta.translateY = 3*i
    +        SetOperatorOptions(ta)
    +        DrawPlots()
    +    Test("mesh_custom_color_01")
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +
    +def Main():
    +    TurnOffAllAnnotations()
    +    TestRandomColor()
    +    TestCurve()
    +    TestPointMesh()
    +    TestGlobe()
    +    TestRect3d()
    +    TestAutoOpaqueFlag()
    +    TestCustomColor()
    +
    +# Added to allow this test to be run with compression too.
    +# Another .py file sources this file with 'useCompression'
    +# defined.
    +if "useCompression" in dir():
    +    ra = GetRenderingAttributes()
    +    ra.compressionActivationMode = ra.Always
    +    SetRenderingAttributes(ra)
    +
    +Main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_molecule.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_molecule.html new file mode 100644 index 000000000..5a3c31d60 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_molecule.html @@ -0,0 +1,123 @@ + +Results for plots/molecule.py + +

    Results of VisIt Regression Test - plots/molecule

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    molecule_010.000.00
    molecule_020.000.00
    molecule_030.000.00
    molecule_040.000.00
    molecule_050.000.00
    molecule_060.000.00
    molecule_070.000.00
    Replicate and CreateBonds operators with Molecule plot
    mol_rep_bonds_010.000.00
    mol_rep_bonds_020.000.00
    mol_rep_bonds_030.000.00
    mol_rep_bonds_040.000.00
    mol_rep_bonds_050.000.00
    mol_rep_bonds_060.000.00
    mol_rep_bonds_070.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_molecule_py.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_molecule_py.html new file mode 100644 index 000000000..76314cb64 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_molecule_py.html @@ -0,0 +1,242 @@ +plots/molecule.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  molecule.py
    +#
    +#  Tests:      mesh      - 3D points
    +#              plots     - Molecule
    +#              operators - CreateBonds, Replicate
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 15, 2021 
    +#
    +#  Modifications:
    +#
    +#    Kathleen Biagas, Tue Jul 13 09:51:58 PDT 2021
    +#    Changed retrieval of renAtts from 'RenderingAttributes' to
    +#    'GetRenderingAttributes' when turning off specular highlighting. This
    +#    fixes a bug in scalable,parallel,icet mode where molecule_04 test would
    +#    fail to plot.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def SetGradientBackground():
    +    annot = GetAnnotationAttributes()
    +    annot.backgroundMode = annot.Gradient
    +    annot.gradientBackgroundStyle = annot.Radial
    +    annot.gradientColor1 = (102, 102, 153, 255)
    +    annot.gradientColor2 = (0, 0, 0, 255)
    +    annot.backgroundColor = (0, 0, 0, 255)
    +    annot.foregroundColor = (255, 255, 255, 255)
    +    SetAnnotationAttributes(annot)
    +
    +def SetWhiteBackground():
    +    annot = GetAnnotationAttributes()
    +    annot.backgroundMode = annot.Solid
    +    annot.foregroundColor = (0, 0, 0, 255)
    +    annot.backgroundColor = (255, 255, 255, 255)
    +    SetAnnotationAttributes(annot)
    +
    +def Test500x500(name):
    +    # Save these images somewhat larger than a regular test case image
    +    # to better see the molecules 
    +    backup = GetSaveWindowAttributes()
    +    swa = SaveWindowAttributes()
    +    swa.width = 500
    +    swa.height = 500
    +    swa.screenCapture = 1
    +    Test(name, swa)
    +    SetSaveWindowAttributes(backup)
    +
    +
    +def MoleculeOnly():
    +    # images similar to those in Molecule Plot docs
    +
    +    SetGradientBackground()
    +
    +    # add specular highlighting
    +    renAtts = GetRenderingAttributes()
    +    renAtts.specularFlag = 1
    +    SetRenderingAttributes(renAtts)
    +
    +    OpenDatabase(data_path("ProteinDataBank_test_data/crotamine.pdb"))
    +
    +    # color by element, Covalent radius, no bonds
    +    AddPlot("Molecule", "element")
    +    mol = MoleculeAttributes()
    +    mol.drawAtomsAs   = mol.SphereAtoms
    +    mol.scaleRadiusBy = mol.Covalent
    +    mol.drawBondsAs   = mol.NoBonds
    +    SetPlotOptions(mol)
    +
    +    DrawPlots()
    +
    +    v3d = GetView3D()
    +    v3d.viewNormal = (0.784142, -0.592494, -0.184587)
    +    v3d.viewUp = (-0.554863, -0.536159, -0.636129)
    +    v3d.imageZoom = 1.77156
    +    SetView3D(v3d)
    +
    +    Test500x500("molecule_01")
    +
    +    # color by residue, cylinder bonds, radius proportional to covalent radius
    +    ChangeActivePlotsVar("restype")
    +    mol.drawBondsAs = mol.CylinderBonds
    +    mol.radiusScaleFactor = 0.5
    +    SetPlotOptions(mol)
    +    DrawPlots()
    +    Test500x500("molecule_02")
    +
    +    # color by scalar (x-coord), no bonds
    +    DefineScalarExpression("x", "coord(mesh)[0]")
    +    ChangeActivePlotsVar("x")
    +    mol.drawAtomsAs = mol.NoAtoms
    +    SetPlotOptions(mol)
    +    DrawPlots()
    +    Test500x500("molecule_03")
    +
    +    # Create a blue-purple color table
    +    ccpl = ColorControlPointList()
    +    ccpl.discreteFlag=1
    +    ccpl.smoothing=ccpl.NONE
    +    ccpl.equalSpacingFlag=1
    +    p1 = ColorControlPoint()
    +    p1.colors = (51, 51, 153, 255)
    +    p1.position =  0
    +    ccpl.AddControlPoints(p1)
    +    p2 = ColorControlPoint()
    +    p2.colors = (204,153, 255, 255)
    +    p2.position =  1
    +    ccpl.AddControlPoints(p2)
    +    AddColorTable("BluePurp2", ccpl)
    +
    +    # color by backbone, atom and cylinder-bonds same fixed radius
    +    # special color table
    +    ChangeActivePlotsVar("backbone")
    +    mol.continuousColorTable="BluePurp2"
    +    mol.drawAtomsAs = mol.SphereAtoms
    +    mol.drawBondsAs = mol.CylinderBonds
    +    mol.scaleRadiusBy = mol.Fixed
    +    mol.radiusFixed = 0.2
    +    mol.bondRadius = 0.2
    +    SetPlotOptions(mol)
    +
    +    DrawPlots()
    +    # turn off specular highlighting
    +    renAtts = GetRenderingAttributes()
    +    renAtts.specularFlag = 0
    +    SetRenderingAttributes(renAtts)
    +    Test500x500("molecule_04")
    +
    +    DeleteAllPlots()
    +
    +    # ensure engine/viewer doesn't crash when using ImposterAtoms and scaleRadiusBy option is changed
    +    AddPlot("Molecule", "element")
    +    # get Fresh atts
    +    mol = MoleculeAttributes()
    +    # set up sphere imposters
    +    mol.drawAtomsAs = mol.ImposterAtoms
    +    SetPlotOptions(mol)
    +    DrawPlots()
    +    Test500x500("molecule_05")
    +    # now change scaleRadiusBy
    +    mol.scaleRadiusBy = mol.Covalent
    +    mol.radiusScaleFactor=4
    +    SetPlotOptions(mol)
    +    DrawPlots()
    +    Test500x500("molecule_06")
    +
    +    # changing radiusScaleFactor while using Imposter atoms used to crash the viewer
    +    mol.radiusScaleFactor=0.002
    +    SetPlotOptions(mol)
    +    DrawPlots()
    +    Test500x500("molecule_07")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("ProteinDataBank_test_data/crotamine.pdb"))
    +
    +def ReplicateAddBonds():
    +    TestSection("Replicate and CreateBonds operators with Molecule plot")
    +    SetWhiteBackground()
    +    OpenDatabase(data_path("vasp_test_data", "GaO40W12", "OUTCAR"))
    +    AddPlot("Mesh", "unitCell")
    +    AddPlot("Molecule", "element")
    +    mol = MoleculeAttributes()
    +    mol.radiusFixed=0.5
    +    SetPlotOptions(mol)
    +    DrawPlots()
    +    ResetView()
    +
    +    v3D = GetView3D()
    +    v3D.viewNormal = (0.0378647, -0.776117, -0.62945) #(-0.465303, -0.758273, 0.456634)
    +    v3D.viewUp = (0.839533, -0.366352, -0.401212) #(-0.0844518, 0.55156, 0.829849)
    +    v3D.imageZoom=2.177156
    +    v3D.imagePan=(0.0217552, 0.0165363)
    +    SetView3D(v3D)
    +
    +    Test500x500("mol_rep_bonds_01")
    +
    +    # Add replicate operator 
    +    SetActivePlots((0,1))
    +    AddOperator("Replicate", 1)
    +    repl = ReplicateAttributes()
    +    repl.useUnitCellVectors = 1
    +    repl.mergeResults = 1
    +    # replicate along unit cell boundaries
    +    repl.replicateUnitCellAtoms = 1
    +    SetOperatorOptions(repl, 0, 1)
    +    DrawPlots()
    +    Test500x500("mol_rep_bonds_02")
    +
    +    # create a replication along y
    +    repl.yReplications=2
    +    SetOperatorOptions(repl, 1, 1)
    +    DrawPlots()
    +
    +    Test500x500("mol_rep_bonds_03")
    +
    +    # Create bonds 
    +    SetActivePlots(1)
    +    AddOperator("CreateBonds")
    +    cb = CreateBondsAttributes()
    +    cb.atomicNumber1 = (31, 74)
    +    cb.atomicNumber2 = (8, 8)
    +    cb.minDist = (0.4, 0.4)
    +    cb.maxDist = (1.9, 2.4)
    +    SetOperatorOptions(cb)
    +    DrawPlots()
    +
    +    Test500x500("mol_rep_bonds_04")
    +
    +    # have the CreateBonds operator create periodic bonds
    +    cb.addPeriodicBonds = 1
    +    cb.useUnitCellVectors = 1
    +    SetOperatorOptions(cb)
    +    DrawPlots()
    +
    +    Test500x500("mol_rep_bonds_05")
    +
    +    # Change bond style to lines
    +    mol.drawBondsAs = mol.LineBonds
    +    mol.bondLineWidth = 5
    +    SetPlotOptions(mol)
    +    DrawPlots()
    +
    +    Test500x500("mol_rep_bonds_06")
    +
    +    # Change atom radius
    +    mol.drawBondsAs = mol.CylinderBonds
    +    mol.scaleRadiusBy = mol.Atomic
    +    mol.radiusScaleFactor = 0.7
    +    SetPlotOptions(mol)
    +    DrawPlots()
    +
    +    Test500x500("mol_rep_bonds_07")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vasp_test_data", "GaO40W12", "OUTCAR"))
    +
    +MoleculeOnly()
    +ReplicateAddBonds()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_multicolor.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_multicolor.html new file mode 100644 index 000000000..b73395900 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_multicolor.html @@ -0,0 +1,201 @@ + +Results for plots/multicolor.py + +

    Results of VisIt Regression Test - plots/multicolor

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Testing setting of multiColor in Boundary plot
    multicolor_0_000.000.00
    multicolor_0_010.000.00
    multicolor_0_020 modifications totalling 0 lines
    multicolor_0_030.000.00
    multicolor_0_040 modifications totalling 0 lines
    multicolor_0_050.000.00
    multicolor_0_060 modifications totalling 0 lines
    Testing setting of multiColor in Contour plot
    multicolor_1_000.000.00
    multicolor_1_010.000.00
    multicolor_1_020 modifications totalling 0 lines
    multicolor_1_030.000.00
    multicolor_1_040 modifications totalling 0 lines
    multicolor_1_050.000.00
    multicolor_1_060 modifications totalling 0 lines
    Testing setting of multiColor in FilledBoundary plot
    multicolor_2_000.000.00
    multicolor_2_010.000.00
    multicolor_2_020 modifications totalling 0 lines
    multicolor_2_030.000.00
    multicolor_2_040 modifications totalling 0 lines
    multicolor_2_050.000.00
    multicolor_2_060 modifications totalling 0 lines
    Testing setting of multiColor in Subset plot
    multicolor_3_000.000.00
    multicolor_3_010.000.00
    multicolor_3_020 modifications totalling 0 lines
    multicolor_3_030.000.00
    multicolor_3_040 modifications totalling 0 lines
    multicolor_3_050.000.00
    multicolor_3_060 modifications totalling 0 lines
    Testing user defined colors for FilledBoundary
    multicolor_matcolors0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_multicolor_py.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_multicolor_py.html new file mode 100644 index 000000000..1b7fae0dd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_multicolor_py.html @@ -0,0 +1,229 @@ +plots/multicolor.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial
    +#  CLASSES: nightly
    +#
    +#  Test Case:  multicolor.py
    +#
    +#  Tests:      Tests setting colors using the multiColor field in some of
    +#              our plots.
    +#              Plots     - Boundary, Contour, FilledBoundary, Subset
    +#              Operators - Transform
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Apr 6 17:52:12 PST 2005
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Thu Jul 13 22:41:56 PDT 2006
    +#    Added test of user-specified material colors
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +def TestColorDefinitions(testname, colors):
    +    s = ""
    +    for c in colors:
    +        s = s + str(c) + "\n"
    +    TestText(testname, s)
    +
    +def TestMultiColor(section, plotAtts, decreasingOpacity):
    +    # Get the current colors.
    +    m = plotAtts.GetMultiColor()
    +
    +    # Test what the image currently looks like.
    +    Test("multicolor_%d_00" % section)
    +
    +    # Change the colors all at once. We should have red->blue
    +    for i in range(len(m)):
    +        t = float(i) / float(len(m) - 1)
    +        c = int(t * 255.)
    +        m[i] = (255-c, 0, c, 255)
    +    plotAtts.SetMultiColor(m)
    +    SetPlotOptions(plotAtts)
    +    Test("multicolor_%d_01" % section)
    +    TestColorDefinitions("multicolor_%d_02" % section, plotAtts.GetMultiColor())
    +
    +    # Change the colors another way. We should get green to blue
    +    for i in range(len(m)):
    +        t = float(i) / float(len(m) - 1)
    +        c = int(t * 255.)
    +        plotAtts.SetMultiColor(i, 0, 255-c, c)
    +    SetPlotOptions(plotAtts)
    +    Test("multicolor_%d_03" % section)
    +    TestColorDefinitions("multicolor_%d_04" % section, plotAtts.GetMultiColor())
    +
    +    # Change the colors another way. We should get yellow to red but
    +    # the redder it gets, the more transparent it should also get.
    +    for i in range(len(m)):
    +        t = float(i) / float(len(m) - 1)
    +        c = int(t * 255.)
    +        if decreasingOpacity:
    +            plotAtts.SetMultiColor(i, (255, 255-c, 0, 255 - c))
    +        else:
    +            plotAtts.SetMultiColor(i, (255, 255-c, 0, c))
    +    SetPlotOptions(plotAtts)
    +    Test("multicolor_%d_05" % section)
    +    TestColorDefinitions("multicolor_%d_06" % section, plotAtts.GetMultiColor())
    +
    +def test1():
    +    TestSection("Testing setting of multiColor in Boundary plot")
    +    # Set up the plot
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    AddPlot("Boundary", "mat1")
    +    b = BoundaryAttributes()
    +    b.lineWidth = 4
    +    DrawPlots()
    +
    +    # Test the plot
    +    TestMultiColor(0, b, 0)
    +
    +    # Delete the plots
    +    DeleteAllPlots()
    +
    +def test2():
    +    TestSection("Testing setting of multiColor in Contour plot")
    +    # Set up the plot
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Contour", "hardyglobal")
    +    c = ContourAttributes()
    +    c.contourNLevels = 20
    +    SetPlotOptions(c)
    +    DrawPlots()
    +
    +    # Set the view.
    +    v = GetView3D()
    +    v.viewNormal = (-0.400348, -0.676472, 0.618148)
    +    v.focus = (0,0,0)
    +    v.viewUp = (-0.916338, 0.300483, -0.264639)
    +    v.parallelScale = 17.3205
    +    v.imagePan = (0, 0.0397866)
    +    v.imageZoom = 1.07998
    +    SetView3D(v)
    +
    +    # Test the plot
    +    TestMultiColor(1, c, 0)
    +
    +    # Delete the plots
    +    DeleteAllPlots()
    +
    +def test3():
    +    TestSection("Testing setting of multiColor in FilledBoundary plot")
    +    # Set up the plots. First we want globe so we can see something inside
    +    # of the Subset plot to make sure that setting alpha works.
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "w")
    +    p = PseudocolorAttributes()
    +    p.legendFlag = 0
    +    p.colorTableName = "xray"
    +    SetPlotOptions(p)
    +    OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +    AddPlot("FilledBoundary", "mat")
    +    f = FilledBoundaryAttributes()
    +    f.legendFlag = 0
    +    SetPlotOptions(f)
    +
    +    # Add an operator to globe to make it small.
    +    SetActivePlots(0)
    +    AddOperator("Transform", 0)
    +    t = TransformAttributes()
    +    t.doScale = 1
    +    t.scaleX, t.scaleY, t.scaleZ = 0.04, 0.04, 0.04
    +    t.doTranslate = 1
    +    t.translateX, t.translateY, t.translateZ = 0.5, 0.5, 0.5
    +    SetOperatorOptions(t)
    +    SetActivePlots(1)
    +    DrawPlots()
    +
    +    # Set the view.
    +    v = GetView3D()
    +    v.viewNormal = (-0.385083, -0.737931, -0.554229)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (-0.922871, 0.310902, 0.227267)
    +    v.parallelScale = 0.866025
    +    v.imagePan = (-0.0165315, 0.0489375)
    +    v.imageZoom = 1.13247
    +    SetView3D(v)
    +
    +    # Test the plot
    +    TestMultiColor(2, f, 1)
    +
    +    # Delete the plots
    +    DeleteAllPlots()
    +
    +def test4():
    +    TestSection("Testing setting of multiColor in Subset plot")
    +    # Set up the plots. First we want globe so we can see something inside
    +    # of the Subset plot to make sure that setting alpha works.
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "w")
    +    p = PseudocolorAttributes()
    +    p.legendFlag = 0
    +    p.colorTableName = "xray"
    +    SetPlotOptions(p)
    +    OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +    AddPlot("Subset", "domains")
    +    s = SubsetAttributes()
    +    s.legendFlag = 0
    +    SetPlotOptions(s)
    +
    +    # Add an operator to globe to make it small.
    +    SetActivePlots(0)
    +    AddOperator("Transform", 0)
    +    t = TransformAttributes()
    +    t.doScale = 1
    +    t.scaleX, t.scaleY, t.scaleZ = 0.04, 0.04, 0.04
    +    t.doTranslate = 1
    +    t.translateX, t.translateY, t.translateZ = 0.5, 0.5, 0.5
    +    SetOperatorOptions(t)
    +    SetActivePlots(1)
    +    DrawPlots()
    +
    +    # Set the view.
    +    v = GetView3D()
    +    v.viewNormal = (-0.385083, -0.737931, -0.554229)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (-0.922871, 0.310902, 0.227267)
    +    v.parallelScale = 0.866025
    +    v.imagePan = (-0.0165315, 0.0489375)
    +    v.imageZoom = 1.13247
    +    SetView3D(v)
    +
    +    # Test the plot
    +    TestMultiColor(3, s, 1)
    +
    +    # Delete the plots
    +    DeleteAllPlots()
    +
    +def test5():
    +    TestSection("Testing user defined colors for FilledBoundary")
    +
    +    ResetView()
    +    OpenDatabase(silo_data_path("globe_matcolors.silo"))
    +
    +    AddPlot("FilledBoundary","mat1")
    +    AddOperator("Slice")
    +    DrawPlots()
    +
    +    Test("multicolor_matcolors")
    +
    +    DeleteAllPlots()
    +
    +def main():
    +    test1()
    +    test2()
    +    test3()
    +    test4()
    +    test5()
    +
    +# Run the tests
    +main()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_parcoords.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_parcoords.html new file mode 100644 index 000000000..5dc7df5a5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_parcoords.html @@ -0,0 +1,129 @@ + +Results for plots/parcoords.py + +

    Results of VisIt Regression Test - plots/parcoords

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Test scalar collection sources
    parcoords_010.000.00
    parcoords_020.000.00
    parcoords_030.000.00
    parcoords_040.000.00
    parcoords_050.000.00
    parcoords_060.000.00
    Test array expression sources
    parcoords_070.000.00
    parcoords_080.000.00
    parcoords_090.000.00
    parcoords_100.000.00
    Test raw database array sources
    parcoords_110.000.00
    parcoords_120.000.00
    parcoords_130.000.00
    parcoords_140.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_parcoords_py.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_parcoords_py.html new file mode 100644 index 000000000..fb473eed7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_parcoords_py.html @@ -0,0 +1,196 @@ +plots/parcoords.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial
    +#  CLASSES: nightly
    +#
    +#  Test Case:  parcoords.py
    +#
    +#  Tests:      Tests the parallel coordinates plot
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       January 31, 2008
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Mon Feb  4 16:11:21 EST 2008
    +#    Removed axis extents from plot attributes since they were unused.
    +#
    +#    Jeremy Meredith, Fri Feb  8 13:49:58 EST 2008
    +#    Added support for array variable expressions, raw database array
    +#    variables, clamping plot limits, and changing viewports.
    +#
    +#    Jeremy Meredith, Mon Feb 18 16:50:02 EST 2008
    +#    Renamed orderedAxisNames to scalarAxisNames.
    +#    Added setting of visualAxisNames in one of the places we create the plot
    +#    from a list of scalar.  This isn't strictly necessary, since the
    +#    plot can do this for us, but the GUI Wizard knows to do this, and so
    +#    setting visualAxisNames matches the GUI behavior more closely.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Hank Childs, Mon Nov 22 11:12:28 PST 2010
    +#    Add tests that include the Threshold operator, which test whether or not
    +#    extents are maintained.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +#
    +# Trying out collections of scalars as a source
    +#
    +TestSection("Test scalar collection sources")
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +
    +# Set default plot variables
    +p = ParallelCoordinatesAttributes()
    +p.drawLines = 1
    +p.linesColor = (128, 0, 0, 255)
    +p.drawContext = 1
    +p.contextGamma = 2
    +p.contextNumPartitions = 512
    +p.contextColor = (0, 220, 0, 255)
    +p.drawLinesOnlyIfExtentsOn = 1
    +SetDefaultPlotOptions(p)
    +
    +# Set up a simple 3 variable parallel coordinates plot.
    +AddPlot("ParallelCoordinates", "hardyglobal")
    +p.scalarAxisNames = ("hardyglobal", "shepardglobal", "chromeVf")
    +p.visualAxisNames = p.scalarAxisNames # unnecessary, but strictly correct
    +p.extentMinima = (-1e+37, -1e+37, -1e+37)
    +p.extentMaxima = (+1e+37, +1e+37, +1e+37)
    +SetPlotOptions(p)
    +DrawPlots()
    +Test("parcoords_01")
    +
    +# Try setting some appearance-related attributes
    +p.contextGamma = 2.9
    +p.contextNumPartitions = 128
    +p.contextColor = (200, 0, 255, 255)
    +SetPlotOptions(p)
    +Test("parcoords_02")
    +
    +p.contextGamma = 2.9
    +p.contextNumPartitions = 32
    +p.contextColor = (200, 0, 255, 255)
    +p.drawLinesOnlyIfExtentsOn = 0
    +SetPlotOptions(p)
    +Test("parcoords_03")
    +
    +# Add an axis and make sure it works
    +p.scalarAxisNames = ("hardyglobal", "shepardglobal", "chromeVf", "radial")
    +p.visualAxisNames = () # test to make sure it works without setting this
    +p.extentMinima = (-1e+37, -1e+37, -1e+37, -1e+37)
    +p.extentMaxima = (+1e+37, +1e+37, +1e+37, +1e+37)
    +p.drawLinesOnlyIfExtentsOn = 1
    +SetPlotOptions(p)
    +Test("parcoords_04")
    +
    +# Make sure the extents work for limiting the lines
    +p.extentMinima = (5.7, -1e+37, -1e+37, -1e+37)
    +p.extentMaxima = (5.8, +1e+37, +1e+37, +1e+37)
    +SetPlotOptions(p)
    +Test("parcoords_05")
    +
    +# Try unifying the extents across all axes
    +p.unifyAxisExtents = 1
    +SetPlotOptions(p)
    +Test("parcoords_06")
    +
    +
    +#
    +# Trying out array variables as a source
    +#
    +TestSection("Test array expression sources")
    +
    +# Try an array variable
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("okc_test_data/astronomy.okc"))
    +
    +
    +DefineArrayExpression("arrayvar1",
    +                      "array_compose(d, b, b/2, b+l)")
    +DefineArrayExpression("arrayvar2",
    +                      "array_compose(d+200, l, l-2, b+l)")
    +DefineArrayExpression("arrayvar2wb",
    +                      "array_compose_with_bins(d+200, l, l-2, b+l, [0,1,4,15,20])")
    +
    +AddPlot("ParallelCoordinates", "arrayvar1")
    +p = ParallelCoordinatesAttributes()
    +p.contextColor = (100, 100, 255, 255)
    +p.contextNumPartitions = 32
    +SetPlotOptions(p)
    +DrawPlots()
    +Test("parcoords_07")
    +
    +# Try changing the array variable
    +ChangeActivePlotsVar("arrayvar2")
    +Test("parcoords_08")
    +
    +# Now change to one with bin-width defined axis x positions
    +ChangeActivePlotsVar("arrayvar2wb")
    +Test("parcoords_09")
    +
    +# Now clamp the axis array limits
    +p.unifyAxisExtents = 1
    +SetPlotOptions(p)
    +Test("parcoords_10")
    +
    +#
    +# Trying out raw database-generated array as a source
    +#
    +TestSection("Test raw database array sources")
    +
    +
    +# Now change to a raw database-generated array variable
    +ChangeActivePlotsVar("all_vars")
    +p.unifyAxisExtents = 0;
    +p.contextColor = (255,150,50,255)
    +SetPlotOptions(p)
    +
    +# Try changing the viewport so it looks a little more normal
    +v = GetViewAxisArray()
    +v.viewportCoords = (0.15,0.9, 0.3,0.7)
    +SetViewAxisArray(v)
    +Test("parcoords_11")
    +
    +# Now clamp the axis array limits again
    +p.unifyAxisExtents = 1
    +SetPlotOptions(p)
    +Test("parcoords_12")
    +
    +DeleteAllPlots()
    +ActivateDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("ParallelCoordinates", "hardyglobal")
    +p = ParallelCoordinatesAttributes()
    +p.scalarAxisNames = ("hardyglobal", "shepardglobal")
    +p.visualAxisNames = p.scalarAxisNames # unnecessary, but strictly correct
    +p.extentMinima = (-1e+37, -1e+37)
    +p.extentMaxima = (+1e+37, +1e+37)
    +p.drawFocusAs = p.IndividualLines
    +p.drawContext = 0
    +p.drawLinesOnlyIfExtentsOn = 0
    +SetPlotOptions(p)
    +DefineScalarExpression("zoneid", "zoneid(Mesh)")
    +AddOperator("Threshold")
    +t = ThresholdAttributes()
    +t.listedVarNames = ("zoneid")
    +t.zonePortions = (1)
    +t.lowerBounds = (100000.5)
    +t.upperBounds = (100001.5)
    +t.defaultVarName = "hardyglobal"
    +t.defaultVarIsScalar = 1
    +SetOperatorOptions(t)
    +DrawPlots()
    +ResetView()
    +Test("parcoords_13")
    +
    +# Now have multiple cells
    +t.upperBounds = (100005.5)
    +SetOperatorOptions(t)
    +Test("parcoords_14")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_pseudocolor.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_pseudocolor.html new file mode 100644 index 000000000..60236e2c7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_pseudocolor.html @@ -0,0 +1,429 @@ + +Results for plots/pseudocolor.py + +

    Results of VisIt Regression Test - plots/pseudocolor

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    pseudocolor_010.000.00
    pseudocolor_domain_bounds_010.000.00
    pseudocolor_domain_bounds_020.000.00
    pseudocolor_domain_bounds_030.000.00
    Point Glyphing: Topological dimension not set to 0
    pseudocolor_point_glyphs_010.000.00
    pseudocolor_point_glyphs_020.000.00
    pseudocolor_point_glyphs_030.000.00
    pseudocolor_point_glyphs_040.000.00
    pseudocolor_point_glyphs_050.000.00
    pseudocolor_point_glyphs_060.000.00
    Point Glyphing: Lighting
    pseudocolor_point_glyphs_070.000.00
    pseudocolor_point_glyphs_080.000.00
    Point Glyphing: Changing Opacity
    pseudocolor_point_glyphs_090.000.00
    pseudocolor_point_glyphs_100.000.00
    Unstructured grid, cell-centered data, poly-vertex cells
    pseudocolor_point_glyphs_110.000.00
    pseudocolor_point_glyphs_120.000.00
    pseudocolor_point_glyphs_130.000.00
    scaling point glyphs by variable
    pseudocolor_point_glyphs_140.000.00
    pseudocolor_point_glyphs_150.000.00
    pseudocolor_point_glyphs_160.000.00
    pseudocolor_point_glyphs_170.000.00
    ugrid, vertex and poly vertex, line and polyline
    pseudocolor_mixed_cells_010.000.00
    pseudocolor_mixed_cells_020.000.00
    pseudocolor_mixed_cells_030.000.00
    pseudocolor_mixed_cells_040.000.00
    pseudocolor_mixed_cells_050.000.00
    Line Tubes
    pseudocolor_line_tube_010.000.00
    pseudocolor_line_tube_020.000.00
    pseudocolor_line_tube_030.000.00
    pseudocolor_line_tube_040.000.00
    pseudocolor_line_tube_050.000.00
    pseudocolor_line_tube_060.000.00
    pseudocolor_line_tube_070.000.00
    pseudocolor_line_tube_080.000.00
    pseudocolor_line_tube_090.000.00
    Line Ribbons
    pseudocolor_line_ribbon_010.000.00
    pseudocolor_line_ribbon_020.000.00
    pseudocolor_line_ribbon_030.000.00
    pseudocolor_line_ribbon_040.000.00
    pseudocolor_line_ribbon_050.000.00
    pseudocolor_line_ribbon_060.000.00
    line endpoints
    pseudocolor_line_endpoints_010.000.00
    pseudocolor_line_endpoints_020.000.00
    pseudocolor_line_endpoints_030.000.00
    pseudocolor_line_endpoints_040.000.00
    pseudocolor_line_endpoints_050.000.00
    pseudocolor_line_endpoints_060.000.00
    pseudocolor_line_endpoints_070.000.00
    pseudocolor_line_endpoints_080.000.00
    pseudocolor_line_endpoints_090.000.00
    pseudocolor_line_endpoints_100.000.00
    Object rendering options
    pseudocolor_rendering_options_010.000.00
    pseudocolor_rendering_options_020.000.00
    pseudocolor_rendering_options_030.000.00
    pseudocolor_rendering_options_040.000.00
    pseudocolor_rendering_options_050.000.00
    pseudocolor_rendering_options_060.000.00
    pseudocolor_rendering_options_070.000.00
    pseudocolor_rendering_options_080.000.00
    External Surface
    pseudocolor_external_surface0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_pseudocolor_py.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_pseudocolor_py.html new file mode 100644 index 000000000..02cf952cd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_pseudocolor_py.html @@ -0,0 +1,556 @@ +plots/pseudocolor.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case: pseudocolor.py 
    +#
    +#  Tests:      meshes    - 2D rectilinear, 3D curvilinear. 
    +#              plots     - pseudocolor 
    +#
    +#  Defect ID:  '1016, '987
    +#
    +#  Programmer: Kevin Griffin
    +#  Date:       March 19, 2015
    +#
    +#  Modifications:
    +#
    +#    Kevin Griffin, Thu Mar 19 12:00:23 PDT 2015
    +#    Add test for drawing pseudocolor plot using a log scaling
    +#    and very small min value.
    +#
    +#    Alister Maguire, Wed Jul 17 08:24:37 PDT 2019
    +#    Wrapped the first test in a function and added 
    +#    TestDomainBoundaries. 
    +#
    +#    Kathleen Biagas, Wed Nov  6 18:29:29 PST 2019
    +#    Add new tests: PointGlyphing MixedTopology Lines ObjectRenderingOptions
    +#
    +#    Kevin Griffin, Tue Aug  4 11:31:09 PDT 2020
    +#    Added ExternalSurface test
    +#
    +# ----------------------------------------------------------------------------
    +
    +import itertools
    +
    +def TestScale():
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +
    +    pc = PseudocolorAttributes()
    +    pc.minFlag = 1
    +    pc.min = 1e-5
    +    pc.maxFlag = 1
    +    pc.max = 1
    +    pc.centering = pc.Nodal
    +    pc.scaling = pc.Log
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +
    +    Test("pseudocolor_01")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("rect2d.silo"))
    +
    +def TestDomainBoundaries():
    +    #
    +    # First, let's remove some domains and make sure that the 
    +    # faces are rendered. 
    +    #
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    silr = SILRestriction()
    +    silr.SuspendCorrectnessChecking()
    +    silr.TurnOnAll()
    +    for silSet in (41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,60,61,
    +                   62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,
    +                   82,83,84,85,86,87,88,89,90,91,92,93,94,95,97,98,99,100,101,
    +                   102,103,104,105,106,107,108,109,110,111,112,113,114,116,117,
    +                   118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,
    +                   133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,
    +                   148,149,150,151,152,153,154,236,237,238,239,240,241,242,243,
    +                   244):
    +        silr.TurnOffSet(silSet)
    +    silr.EnableCorrectnessChecking()
    +    SetPlotSILRestriction(silr ,1)
    +
    +    Test("pseudocolor_domain_bounds_01")
    +
    +    #
    +    # Next, we need to make sure that the processer boundaries are not
    +    # rendered when we enable transparency. 
    +    #
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0.883086, 0.11282, 0.455446)
    +    View3DAtts.focus = (0, 2.5, 10)
    +    View3DAtts.viewUp = (-0.0918142, 0.993447, -0.068068)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 11.4564
    +    View3DAtts.nearPlane = -22.9129
    +    View3DAtts.farPlane = 22.9129
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0, 2.5, 10)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +    silr = SILRestriction()
    +    silr.SuspendCorrectnessChecking()
    +    silr.TurnOnAll()
    +    for silSet in (41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,60,61,
    +                   62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,
    +                   82,83,84,85,86,87,88,89,90,91,92,93,94,95,97,98,99,100,101,
    +                   102,103,104,105,106,107,108,109,110,111,112,113,114,116,117,
    +                   118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,
    +                   133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,
    +                   148,149,150,151,152,153,154):
    +        silr.TurnOffSet(silSet)
    +    silr.EnableCorrectnessChecking()
    +    SetPlotSILRestriction(silr ,1)
    +
    +    PseudocolorAtts = PseudocolorAttributes()
    +    PseudocolorAtts.opacityType = PseudocolorAtts.Constant
    +    PseudocolorAtts.opacity = 0.462745
    +    SetPlotOptions(PseudocolorAtts)
    +
    +    Test("pseudocolor_domain_bounds_02")
    +
    +    #
    +    # Now let's make sure that the ghost/face removal has been 
    +    # reversed back to its original order when we turn transparency
    +    # back off. 
    +    #
    +    PseudocolorAtts = PseudocolorAttributes()
    +    PseudocolorAtts.opacityType = PseudocolorAtts.FullyOpaque
    +    SetPlotOptions(PseudocolorAtts)
    +
    +    silr = SILRestriction()
    +    silr.SuspendCorrectnessChecking()
    +    silr.TurnOnAll()
    +    for silSet in (41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,60,61,
    +                   62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,
    +                   82,83,84,85,86,87,88,89,90,91,92,93,94,95,97,98,99,100,101,
    +                   102,103,104,105,106,107,108,109,110,111,112,113,114,116,117,
    +                   118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,
    +                   133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,
    +                   148,149,150,151,152,153,154,236,237,238,239,240,241,242,243,
    +                   244):
    +        silr.TurnOffSet(silSet)
    +    silr.EnableCorrectnessChecking()
    +    SetPlotSILRestriction(silr ,1)
    +
    +    Test("pseudocolor_domain_bounds_03")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +def PointGlyphing():
    +    # github issue 3390
    +    TestSection("Point Glyphing: Topological dimension not set to 0")
    +    idx = itertools.count(1)
    +    # Reader not reporting topodim 0
    +    OpenDatabase(data_path("blueprint_v0.3.1_test_data/braid_2d_examples.blueprint_root_hdf5"))
    +    AddPlot("Pseudocolor", "points_mesh/braid")
    +    DrawPlots()
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    # glyph the points with Tets
    +    pc = PseudocolorAttributes()
    +    pc.pointType = pc.Tetrahedron
    +    pc.pointSize = 0.5
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +    # transition back to point
    +    pc.pointType = pc.Point
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +    # glyph the points with Sphere 
    +    pc.pointType = pc.Sphere
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("blueprint_v0.3.1_test_data/braid_2d_examples.blueprint_root_hdf5"))
    +
    +    OpenDatabase(data_path("synergia_test_data/vis_particles_* database"), 0, "Vs")
    +    AddPlot("Pseudocolor", "particles_0")
    +    pc.pointType = pc.Tetrahedron
    +    pc.pointSize = 0.005
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (-0.882869, -0.011028, 0.469489)
    +    v.focus = (-0.000169306, 0.000401067, -0.00167359)
    +    v.viewUp = (-0.118292, 0.972711, -0.199599)
    +    v.imageZoom = 1.77
    +    SetView3D(v);
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    # PsersistentParticles sets the topological dimension incorrectly,
    +    # but the points should still be glyphable
    +    AddOperator("PersistentParticles")
    +    pp = PersistentParticlesAttributes()
    +    pp.connectParticles = 0
    +    SetOperatorOptions(pp)
    +    DrawPlots()
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("synergia_test_data/vis_particles_* database"))
    +
    +    TestSection("Point Glyphing: Lighting")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    AddPlot("Pseudocolor", "PointVar")
    +    pc.pointType = pc.Icosahedron
    +    pc.pointSize = 3
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (0.272848, 0.209847, 0.938892)
    +    v.focus = (-0.0242615, -0.170417, -0.0304632)
    +    v.viewUp = (0.134518, 0.958013, -0.253212)
    +    v.imageZoom=1.5
    +    SetView3D(v)
    +    # standard lighting
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    # turn off lighting, points should still be glyphed
    +    pc.lightingFlag = 0
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +    pc.lightingFlag = 1
    +
    +    # github issue 1461, 1800
    +    TestSection("Point Glyphing: Changing Opacity")
    +    pc.opacityType = pc.Constant
    +    pc.opacity = 0.25
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    # change glyph type while transparent
    +    pc.pointType = pc.Box
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    pc.opacityType = pc.FullyOpaque
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("noise.silo"))
    +
    +    TestSection("Unstructured grid, cell-centered data, poly-vertex cells")
    +    OpenDatabase(data_path("vtk_test_data/ugrid_polyvertex_points.vtk"))
    +    AddPlot("Pseudocolor", "foo_cells")
    +    DrawPlots()
    +    v2 = GetView2D()
    +    v2.windowCoords = (-0.945, 9.945, -0.945, 9.945)
    +    SetView2D(v2)
    +    pc.pointType = pc.Axis
    +    pc.pointSize = 0.6
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +    pc.pointType = pc.Box
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +    ChangeActivePlotsVar("u")
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    TestSection("scaling point glyphs by variable")
    +    pc.pointSizeVarEnabled = 1
    +    pc.pointSize = 0.1
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    pc.pointSizeVar = "foo_cells"
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    ChangeActivePlotsVar("foo_cells")
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +    pc.pointSizeVar = "u"
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/ugrid_polyvertex_points.vtk"))
    +
    +
    +def MixedTopology():
    +    TestSection("ugrid, vertex and poly vertex, line and polyline")
    +    OpenDatabase(data_path("vtk_test_data/ugrid_mixed_cells.vtk"))
    +    AddPlot("Pseudocolor","foo_cells")
    +    pc = PseudocolorAttributes()
    +    pc.colorTableName = "rainbow"
    +    pc.invertColorTable = 1
    +    pc.lineWidth = 2
    +    pc.pointSizePixels = 10
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (-0.195485, 0.629643, 0.751888)
    +    v.focus = (1.5, 0.5, 0.5)
    +    v.viewUp = (0.158378, 0.776885, -0.609398)
    +    SetView3D(v)
    +
    +    idx = itertools.count(1)
    +    Test("pseudocolor_mixed_cells_%02d"%next(idx))
    +
    +    pc.pointType = pc.Tetrahedron
    +    pc.pointSize = 0.4
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_mixed_cells_%02d"%next(idx))
    +
    +    pc.lineType = pc.Tube
    +    pc.tubeRadiusBBox = 0.05
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_mixed_cells_%02d"%next(idx))
    +
    +    pc.tubeRadiusSizeType = pc.Absolute
    +    pc.tubeRadiusAbsolute = 0.125
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_mixed_cells_%02d"%next(idx))
    +
    +    pc.tubeRadiusSizeType = pc.FractionOfBBox
    +    pc.tailStyle = pc.Spheres
    +    pc.headStyle = pc.Cones
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_mixed_cells_%02d"%next(idx))
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/ugrid_mixed_cells.vtk"))
    +
    +def DoLines(ltype):
    +    pc = PseudocolorAttributes()
    +    idx =  itertools.count(1)
    +    if ltype == "tube":
    +        TestSection("Line Tubes")
    +        pc.lineType = pc.Tube
    +    else:
    +        TestSection("Line Ribbons")
    +        pc.lineType = pc.Ribbon
    +
    +    pc.tubeRadiusSizeType = pc.FractionOfBBox
    +    pc.tubeRadiusBBox = 0.2
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_%s_%02d" %(ltype, next(idx)))
    +
    +    if ltype == "tube":
    +        # test tube resolution
    +        pc.tubeResolution = 3
    +        SetPlotOptions(pc)
    +        Test("pseudocolor_line_%s_%02d" %(ltype, next(idx)))
    +
    +        pc.tubeResolution = 4
    +        SetPlotOptions(pc)
    +        Test("pseudocolor_line_%s_%02d" %(ltype, next(idx)))
    +
    +        pc.tubeResolution = 20
    +        SetPlotOptions(pc)
    +        Test("pseudocolor_line_%s_%02d" %(ltype, next(idx)))
    +
    +    pc.tubeRadiusSizeType = pc.Absolute
    +    pc.tubeRadiusAbsolute = 0.6
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_%s_%02d" %(ltype, next(idx)))
    +
    +    pc.tubeRadiusVarEnabled = 1
    +    pc.tubeRadiusVar = "var2"
    +    pc.tubeRadiusVarRatio = 2
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_%s_%02d" %(ltype, next(idx)))
    +
    +    pc.tubeRadiusVar = "var1"
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_%s_%02d" %(ltype, next(idx)))
    +
    +    ChangeActivePlotsVar("var1")
    +    Test("pseudocolor_line_%s_%02d" %(ltype, next(idx)))
    +
    +    pc.tubeRadiusVar = "var2"
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_%s_%02d" %(ltype, next(idx)))
    +
    +def DoEndpoints():
    +    TestSection("line endpoints")
    +    ChangeActivePlotsVar("var2")
    +    idx = itertools.count(1)
    +    pc = PseudocolorAttributes()
    +    pc.lineType = pc.Tube
    +    pc.tubeRadiusSizeType = pc.Absolute
    +    pc.tubeRadiusAbsolute = 0.1
    +    pc.tailStyle = pc.Spheres
    +    pc.headStyle = pc.Cones
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +    pc.endPointRadiusSizeType = pc.Absolute
    +    pc.endPointRadiusAbsolute = 0.5
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +    pc.endPointResolution = 3
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +    pc.endPointResolution = 20
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +    pc.endPointRadiusVarEnabled = 1
    +    pc.endPointRadiusVar = "var2"
    +    pc.endPointRadiusVarRatio = 2
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +    pc.endPointRadiusVar = "var1"
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +    ChangeActivePlotsVar("var2")
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +    pc.endPointRadiusVar = "var2"
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +    pc.endPointRatio = 1
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +    pc.endPointRatio = 10
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +
    +def Lines():
    +    OpenDatabase(data_path("vtk_test_data/lines.vtk"))
    +    AddPlot("Pseudocolor", "var2")
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (0.508199, 0.390103, 0.767824)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (-0.065159, 0.906394, -0.417379)
    +    v.imageZoom = 1.4641
    +    SetView3D(v)
    +
    +    DoLines("tube")
    +    DoLines("ribbon")
    +    DoEndpoints()
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/lines.vtk"))
    +
    +
    +def ObjectRenderingOptions():
    +    TestSection("Object rendering options")
    +    idx = itertools.count(1)
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +    AddPlot("Pseudocolor", "p")
    +    DrawPlots()
    +
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (0.30955, 0.438716, 0.843627)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.00113002, 0.887033, -0.461704)
    +    SetView3D(v)
    +
    +    Test("pseudocolor_rendering_options_%02d" %next(idx))
    +
    +    pc = PseudocolorAttributes()
    +    pc.renderWireframe = 1
    +    pc.wireframeColor = (255, 0, 0)
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_rendering_options_%02d" %next(idx))
    +
    +    pc.renderPoints = 1
    +    pc.pointColor = (255, 255, 0)
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_rendering_options_%02d" %next(idx))
    +
    +    pc.renderSurfaces = 0
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_rendering_options_%02d" %next(idx))
    +
    +    pc.renderPoints = 0
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_rendering_options_%02d" %next(idx))
    +
    +    pc.renderWireframe = 0
    +    pc.renderPoints = 1
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_rendering_options_%02d" %next(idx))
    +
    +    pc.pointType = pc.Sphere
    +    pc.pointSize = 0.02
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_rendering_options_%02d" %next(idx))
    +
    +    pc.renderSurfaces = 1
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_rendering_options_%02d" %next(idx))
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("rect3d.silo"))
    +
    +def ExternalSurface():
    +    TestSection("External Surface")
    +    OpenDatabase(data_path("external_surface_test_data/data.nv0_step00000.root"))
    +
    +    DefineScalarExpression("dUdy", "gradient(UVelC)[1]")
    +
    +    AddPlot("Pseudocolor", "UVelC")
    +
    +    PseudocolorAtts = PseudocolorAttributes()
    +    PseudocolorAtts.centering = PseudocolorAtts.Nodal  # Natural, Nodal, Zonal
    +    SetPlotOptions(PseudocolorAtts)
    +    DrawPlots()
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0.90786, 0.176706, 0.380217)
    +    View3DAtts.focus = (3.14159, 0, 1.5708)
    +    View3DAtts.viewUp = (-0.166194, 0.98423, -0.0605927)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 3.65199
    +    View3DAtts.nearPlane = -7.30397
    +    View3DAtts.farPlane = 7.30397
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (3.14159, 0, 1.5708)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +    ChangeActivePlotsVar("dUdy")
    +    Test("pseudocolor_external_surface")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("external_surface_test_data/data.nv0_step00000.root"))
    +
    +def Main():
    +    TestScale()
    +    TestDomainBoundaries()
    +    PointGlyphing()
    +    MixedTopology()
    +    Lines()
    +    ObjectRenderingOptions()
    +    ExternalSurface()
    +
    +Main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_ray_trace.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_ray_trace.html new file mode 100644 index 000000000..56292bed9 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_ray_trace.html @@ -0,0 +1,108 @@ + +Results for plots/ray_trace.py + +

    Results of VisIt Regression Test - plots/ray_trace

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ray_trace_010.000.00
    ray_trace_01_pan0.000.00
    ray_trace_020.000.00
    ray_trace_030.000.00
    ray_trace_040.000.00
    ray_trace_050.000.00
    ray_trace_05_pan0.000.00
    ray_trace_060.000.00
    ray_trace_070.000.00
    ray_trace_080.000.00
    ray_trace_090.000.00
    ray_trace_100.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_ray_trace_py.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_ray_trace_py.html new file mode 100644 index 000000000..efa4ff244 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_ray_trace_py.html @@ -0,0 +1,220 @@ +plots/ray_trace.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ray_trace.py
    +#
    +#  Tests:      ray tracing with the volume plot
    +#
    +#  Defect ID:  '1949, '5699, '6916
    +#
    +#  Programmer: Hank Childs
    +#  Date:       December 3, 2004
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Dec 15 09:36:51 PDT 2004
    +#    I changed the flag that's used to make it do software rendering.
    +#
    +#    Hank Childs, Wed Feb 16 07:34:07 PST 2005
    +#    Rename variables that have unsupported characters.
    +#
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +#    Hank Childs, Fri Mar  3 09:09:04 PST 2006
    +#    Add testing for ray-tracing in multiple windows.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Hank Childs, Fri Nov 18 08:51:58 PST 2011
    +#    Add regression tests for panning while ray tracing.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def test1(a):
    +    #
    +    # Start off by testing that we can bring up a normal volume plot and smooth
    +    # the data.  Also test that it can interact with the bounding box correctly.
    +    # 
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Volume", "d")
    +    vol_atts = VolumeAttributes()
    +    vol_atts.rendererType = vol_atts.Composite
    +    vol_atts.smoothData = 1
    +    SetPlotOptions(vol_atts)
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.369824, 0.535308, 0.759391)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (-0.022009, 0.812062, -0.583155)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +
    +    Test("ray_trace_01")
    +
    +    v.imagePan = (0.1, -0.1)
    +    SetView3D(v)
    +    Test("ray_trace_01_pan")
    +    v.imagePan = (0, 0)
    +    SetView3D(v)
    +
    +    #
    +    # Now test that it can play with other plots.
    +    #
    +    AddPlot("Pseudocolor", "d")
    +    pc_atts = PseudocolorAttributes()
    +    pc_atts.colorTableName = "gray"
    +    SetPlotOptions(pc_atts)
    +    AddOperator("Slice")
    +    slice_atts = SliceAttributes()
    +    slice_atts.originPercent = 90
    +    slice_atts.axisType = slice_atts.ZAxis
    +    slice_atts.originType = slice_atts.Percent
    +    slice_atts.project2d = 0
    +    SetOperatorOptions(slice_atts)
    +    DrawPlots()
    +
    +    Test("ray_trace_02")
    +
    +    #
    +    # Test that it can play well with other plots when doin orthographic 
    +    # projection.
    +    #
    +    v.perspective = 0
    +    SetView3D(v)
    +
    +    Test("ray_trace_03")
    +
    +    #
    +    # Now test that we handle it well when the near and far clipping planes
    +    # intersect the dataset.
    +    #
    +    v.perspective = 1
    +    v.nearPlane = -0.5
    +    v.farPlane = 0.5
    +    SetView3D(v)
    +
    +    Test("ray_trace_04")
    +
    +    DeleteAllPlots()
    +
    +def test2(a):
    +    #
    +    # Test that we can do curvilinear/unstructured meshes, which do an entirely
    +    # different sort of sampling.
    +    #
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    AddPlot("Volume", "d")
    +    vol_atts = VolumeAttributes()
    +    vol_atts.rendererType = vol_atts.Composite
    +    vol_atts.smoothData = 0
    +    SetPlotOptions(vol_atts)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (-0.369824, 0.535308, 0.759391)
    +    v.viewUp = (-0.022009, 0.812062, -0.583155)
    +    SetView3D(v)
    +
    +    Test("ray_trace_05")
    +
    +    v.imagePan = (0.1, -0.1)
    +    SetView3D(v)
    +    Test("ray_trace_05_pan")
    +    v.imagePan = (0, 0)
    +    SetView3D(v)
    +
    +    DeleteAllPlots()
    +
    +def test3(a):
    +    #
    +    # Test a multi-block rectilinear problem with ghost zones.  Use an AMR problem,
    +    # because that will test the best if we are removing ghost zones correctly
    +    # (ghost zone values in AMR meshes don't necessarily agree with the values of
    +    #  the zones that refine them).
    +    #
    +    OpenDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +    AddPlot("Volume", "Primitive Var _number_0")
    +    vol_atts = VolumeAttributes()
    +    vol_atts.rendererType = vol_atts.Composite
    +    vol_atts.smoothData = 0
    +    vol_atts.useColorVarMin = 1
    +    vol_atts.colorVarMin = 22
    +    SetPlotOptions(vol_atts)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (-0.369824, 0.535308, 0.759391)
    +    v.viewUp = (-0.022009, 0.812062, -0.583155)
    +    SetView3D(v)
    +
    +    Test("ray_trace_06")
    +
    +    #
    +    # Now do it again for another timestep.
    +    #
    +    SetTimeSliderState(7)
    +    Test("ray_trace_07")
    +
    +    # 
    +    # Now go to window #2 and do some more raytracing.
    +    #
    +    AddWindow()
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    SetAnnotationAttributes(a)
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Volume", "d")
    +    vol_atts = VolumeAttributes()
    +    vol_atts.rendererType = vol_atts.Composite
    +    SetPlotOptions(vol_atts)
    +    DrawPlots()
    +    Test("ray_trace_08")
    +
    +    #
    +    # There was a bug where adding a new plot with a different variable
    +    # would cause the ray tracing to fail.  Test that the fix still works.
    +    #
    +    AddPlot("Contour", "u")
    +    DrawPlots()
    +    Test("ray_trace_09")
    +
    +    # And make sure everything is okay in window #1.
    +    SetActiveWindow(1)
    +    SetActivePlots(0)
    +    DeleteActivePlots()
    +    Test("ray_trace_10")
    +
    +def main():
    +    # Turn off all annotation
    +    a = AnnotationAttributes()
    +    TurnOffAllAnnotations(a)
    +
    +    # Turn bbox on.  This tests:
    +    # - interaction with geometry
    +    # - that image based plots still get added to the vis window, causing a 
    +    #   bounding box to get generated.
    +    a.axes3D.bboxFlag = 1
    +    SetAnnotationAttributes(a)
    +
    +    test1(a)
    +    test2(a)
    +    test3(a)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_scatter.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_scatter.html new file mode 100644 index 000000000..85fee7641 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_scatter.html @@ -0,0 +1,207 @@ + +Results for plots/scatter.py + +

    Results of VisIt Regression Test - plots/scatter

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Test plot options
    scatter_000.000.00
    scatter_010.000.00
    scatter_020.000.00
    scatter_030.000.00
    scatter_040.000.00
    scatter_050.000.00
    scatter_060.000.00
    scatter_070.000.00
    scatter_080.000.00
    scatter_090.000.00
    scatter_100.000.00
    scatter_110.000.00
    scatter_120.000.00
    scatter_130.000.00
    scatter_140.000.00
    scatter_150.000.00
    scatter_160.000.00
    Multiblock and scale to cube
    scatter_170.000.00
    scatter_180.000.00
    scatter_190.000.00
    scatter_200.000.00
    Set min and max values, make sure colors and extents are right
    scatter_210.000.00
    scatter_220.000.00
    scatter_230.000.00
    scatter_240.000.00
    scatter_250.000.00
    scatter_260.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_scatter_py.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_scatter_py.html new file mode 100644 index 000000000..121e2ac3c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_scatter_py.html @@ -0,0 +1,343 @@ +plots/scatter.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial
    +#  CLASSES: nightly
    +#
    +#  Test Case:  scatter.py 
    +#
    +#  Tests:      Tests the scatter plot
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Tue Dec 14 16:58:04 PST 2004
    +#
    +#  Modifications:
    +#    Brad Whitlock, Mon Jul 18 17:19:04 PST 2005
    +#    Added tests for multiblock data and "scale to cube" that make sure that
    +#    the extents are gotten correctly beforehand. If the extents are not
    +#    gathered beforehand for a multi-block dataset when "scale to cube" is
    +#    on then each domain will use its local extents to map its values to
    +#    a cube and none of the cubes from the different domains will match,
    +#    causing an incorrect picture.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +# Set up some annotation settings.
    +a = AnnotationAttributes()
    +a.backgroundColor = (0,0,0,255)
    +a.foregroundColor = (255,255,255,255)
    +TurnOffAllAnnotations(a)
    +
    +TestSection("Test plot options")
    +
    +#
    +# Set up a simple 2 variable scatter plot.
    +#
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Scatter", "hardyglobal")
    +s = ScatterAttributes()
    +s.var2 = "shepardglobal"
    +s.scaleCube = 0
    +SetPlotOptions(s)
    +DrawPlots()
    +Test("scatter_00")
    +
    +v0 = GetView2D()
    +
    +
    +#
    +# Try setting x min and max
    +#
    +s.var1MinFlag = 1
    +s.var1MaxFlag = 1
    +s.var1Min = 2
    +s.var1Max = 4
    +SetPlotOptions(s)
    +SetView2D(v0)
    +Test("scatter_01")
    +
    +#
    +# Try setting some scaling options for x
    +#
    +s.var1MinFlag = 0
    +s.var1MaxFlag = 0
    +s.var1Scaling = s.Log
    +s.scaleCube = 1
    +SetPlotOptions(s)
    +ResetView()
    +v1 = GetView2D()
    +Test("scatter_02")
    +
    +s.var1Scaling = s.Skew
    +s.var1SkewFactor = 10
    +SetPlotOptions(s)
    +Test("scatter_03")
    +s.var1SkewFactor = 0.01
    +SetPlotOptions(s)
    +Test("scatter_04")
    +
    +#
    +# Add a 3rd dimension
    +#
    +s.var1Scaling = s.Linear
    +s.var3 = "radial"
    +s.var3Role = s.Coordinate2
    +SetPlotOptions(s)
    +v2 = View3DAttributes()
    +v2.viewNormal = (-0.70917, 0.324761, 0.625787)
    +v2.focus = (0.5, 0.5, 0.5)
    +v2.viewUp = (0.218647, 0.945137, -0.242712)
    +v2.viewAngle = 30
    +v2.parallelScale = 0.866025
    +v2.nearPlane = -1.73205
    +v2.farPlane = 1.73205
    +v2.imagePan = (0.00504899, 0.0411036)
    +v2.imageZoom = 1.44477
    +v2.perspective = 1
    +v2.eyeAngle = 2
    +SetView3D(v2)
    +Test("scatter_05")
    +
    +#
    +# Add a color dimension
    +#
    +s.var4 = "default"
    +s.var4Role = s.Color
    +SetPlotOptions(s)
    +Test("scatter_06")
    +
    +
    +#
    +# Try the min, max for the color
    +#
    +s.var4MinFlag = 1
    +s.var4Min = 2.5
    +SetPlotOptions(s)
    +Test("scatter_07")
    +
    +s.var4MinFlag = 0
    +s.var4MaxFlag = 1
    +s.var4Max = 3.4
    +SetPlotOptions(s)
    +Test("scatter_08")
    +
    +#
    +# Try scaling the color
    +#
    +s.var4MinFlag = 0
    +s.var4MaxFlag = 0
    +s.var4Scaling = s.Log
    +SetPlotOptions(s)
    +Test("scatter_09")
    +
    +s.var4Scaling = s.Skew
    +s.var4SkewFactor = 10
    +SetPlotOptions(s)
    +Test("scatter_10")
    +
    +s.var4SkewFactor = 0.01
    +SetPlotOptions(s)
    +Test("scatter_11")
    +
    +
    +#
    +# Try changing color variables
    +#
    +s.var4Scaling = s.Linear
    +s.var4 = "chromeVf"
    +SetPlotOptions(s)
    +Test("scatter_12")
    +
    +
    +#
    +# Try changing roles of color and Z.
    +#
    +s.var4Role = s.Coordinate2
    +s.var3Role = s.Color
    +SetPlotOptions(s)
    +Test("scatter_13")
    +
    +#
    +# Change the roles back and change the color table.
    +#
    +s.var4Role = s.Color
    +s.var3Role = s.Coordinate2
    +s.var4 = "hardyglobal"
    +s.colorTableName = "gray"
    +SetPlotOptions(s)
    +Test("scatter_14")
    +
    +#
    +# Make it use a single color
    +#
    +s.var4Role = s.NONE
    +s.colorType = 1
    +s.singleColor = (0,255,0,255)
    +SetPlotOptions(s)
    +Test("scatter_15")
    +
    +#
    +# Turn off the legend
    +#
    +s.legendFlag = 0
    +SetPlotOptions(s)
    +Test("scatter_16")
    +DeleteActivePlots()
    +
    +#
    +# Try a Scatter plot with multi-block data
    +#
    +TestSection("Multiblock and scale to cube")
    +OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +AddPlot("Scatter", "d")
    +s = ScatterAttributes()
    +s.var2 = "u"
    +s.var2Role = s.Coordinate1
    +s.var3 = "v"
    +s.var3Role = s.Coordinate2
    +s.var4 = "u"
    +s.var4Role = s.Color
    +s.scaleCube = 1
    +s.pointSize = 0.01
    +s.pointType = s.Box
    +SetPlotOptions(s)
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.482571, 0.41728, 0.770066)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.269481, 0.907303, -0.322772)
    +v.viewAngle = 30
    +v.parallelScale = 0.864825
    +v.nearPlane = -1.72965
    +v.farPlane = 1.72965
    +v.imagePan = (0.0547107, 0.0441637)
    +v.imageZoom = 1.08726
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0.5, 0.5, 0.5)
    +SetView3D(v)
    +Test("scatter_17")
    +
    +# Try different scalings.
    +s.var1Scaling = s.Log
    +SetPlotOptions(s)
    +Test("scatter_18")
    +
    +s.var1Scaling = s.Skew
    +s.var1SkewFactor = 50.
    +SetPlotOptions(s)
    +Test("scatter_19")
    +DeleteActivePlots()
    +
    +#
    +# Do different variables.
    +#
    +DefineScalarExpression("xc", "coord(mesh1)[0]")
    +DefineScalarExpression("yc", "coord(mesh1)[1]")
    +DefineScalarExpression("zc", "coord(mesh1)[2]")
    +DefineScalarExpression("uvw_prod", "u*v*w")
    +AddPlot("Scatter", "xc")
    +s = ScatterAttributes()
    +s.var2 = "yc"
    +s.var2Role = s.Coordinate1
    +s.var3 = "zc"
    +s.var3Role = s.Coordinate2
    +s.var4 = "uvw_prod"
    +s.var4Role = s.Color
    +s.scaleCube = 1
    +s.pointSize = 0.01
    +s.pointType = s.Box
    +SetPlotOptions(s)
    +DrawPlots()
    +
    +v.viewNormal = (0.799291, 0.383343, 0.462798)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.325714, 0.92354, -0.202447)
    +v.viewAngle = 30
    +v.parallelScale = 0.866025
    +v.nearPlane = -1.73205
    +v.farPlane = 1.73205
    +v.imagePan = (0.000204097, 0.0398577)
    +v.imageZoom = 1.07422
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0.5, 0.5, 0.5)
    +SetView3D(v)
    +Test("scatter_20")
    +DeleteActivePlots()
    +
    +#
    +# Set min/max values in X,Y,Z and make sure that the points are the right
    +# color and the extents are right.
    +#
    +TestSection("Set min and max values, make sure colors and extents are right")
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +AddPlot("Scatter", "d")
    +s = ScatterAttributes()
    +s.var2 = "p"
    +s.var2Role = s.Coordinate1
    +s.var3 = "default"
    +s.var3Role = s.Color
    +s.pointType = s.Axis
    +SetPlotOptions(s)
    +DrawPlots()
    +ResetView()
    +
    +Test("scatter_21")
    +
    +# Set a min in X and make sure the points are still the right color.
    +s.var1MinFlag = 1
    +s.var1Min = 3.5
    +SetPlotOptions(s)
    +Test("scatter_22")
    +
    +# Set min max in X and Y
    +s.var1MinFlag = 1
    +s.var1MaxFlag = 1
    +s.var1Min = 2.
    +s.var1Max = 4.
    +s.var2MinFlag = 1
    +s.var2MaxFlag = 1
    +s.var2Min = 0.3
    +s.var2Max = 0.4
    +SetPlotOptions(s)
    +Test("scatter_23")
    +
    +DeleteActivePlots()
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Scatter", "hardyglobal")
    +s = ScatterAttributes()
    +s.var2 = "shepardglobal"
    +s.var2Role = s.Coordinate1
    +s.var3 = "radial"
    +s.var3Role = s.Coordinate2
    +s.var4 = "radial"
    +s.var4Role = s.Color
    +s.scaleCube = 1
    +SetPlotOptions(s)
    +DrawPlots()
    +SetView3D(v2)
    +Test("scatter_24")
    +
    +# Set a min in Z.
    +s.var3MinFlag = 1
    +s.var3Min = 15.
    +SetPlotOptions(s)
    +Test("scatter_25")
    +
    +# Set a max in Z.
    +s.var3MaxFlag = 1
    +s.var3Max = 22.
    +SetPlotOptions(s)
    +Test("scatter_26")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_singlecolor.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_singlecolor.html new file mode 100644 index 000000000..5a3ad611c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_singlecolor.html @@ -0,0 +1,54 @@ + +Results for plots/singlecolor.py + +

    Results of VisIt Regression Test - plots/singlecolor

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    singlecolor000.000.00
    singlecolor010.000.00
    singlecolor020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_singlecolor_py.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_singlecolor_py.html new file mode 100644 index 000000000..8ac8da0e3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_singlecolor_py.html @@ -0,0 +1,77 @@ +plots/singlecolor.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  singlecolor.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, single domain
    +#              plots     - Boundary, FilledBoundary, Subset
    +#
    +#  Defect ID:  VisIt00002372
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Oct 23 15:36:30 PST 2003
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use domains var for Subset plot test instead of materials.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Set the single color to light blue and partially transparent using the
    +# plot's global opacity setting.
    +def SetSingleColor(atts):
    +    atts.singleColor = (153, 204, 255, 255)
    +    atts.colorType = b.ColorBySingleColor
    +    atts.opacity = 0.4
    +    SetPlotOptions(atts)
    +
    +# Set the view that we want to use.
    +def InitializeView():
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.428395 ,0.549517, 0.717293)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.186332, 0.830487, -0.52495)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.imagePan = (0.0183269, -0.0257188)
    +    v.imageZoom = 1.17591
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    SetView3D(v)
    +
    +# Open the database.
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +# Test the single color opacity for the Boundary plot
    +AddPlot("Boundary", "mat1")
    +b = BoundaryAttributes()
    +SetSingleColor(b)
    +DrawPlots()
    +InitializeView()
    +Test("singlecolor00")
    +
    +# Test the single color opacity for the FilledBoundary plot
    +DeleteAllPlots()
    +AddPlot("FilledBoundary", "mat1")
    +f = FilledBoundaryAttributes()
    +SetSingleColor(f)
    +DrawPlots()
    +Test("singlecolor01")
    +
    +# Test the single color opacity for the Subset plot
    +DeleteAllPlots()
    +AddPlot("Subset", "domains")
    +s = SubsetAttributes()
    +SetSingleColor(s)
    +DrawPlots()
    +Test("singlecolor02")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_subset.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_subset.html new file mode 100644 index 000000000..c9f9f6505 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_subset.html @@ -0,0 +1,135 @@ + +Results for plots/subset.py + +

    Results of VisIt Regression Test - plots/subset

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    subset_010.000.00
    subset_020.000.00
    subset_030.000.00
    subset_040.000.00
    subset_050.000.00
    subset_060.000.00
    subset_070.000.00
    subset_080.000.00
    subset_090.000.00
    subset_100.000.00
    point mesh
    subset_110.000.00
    subset_120.000.00
    subset_130.000.00
    subset_140.000.00
    subset_150.000.00
    subset_160.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_subset_py.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_subset_py.html new file mode 100644 index 000000000..f5f6b45a3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_subset_py.html @@ -0,0 +1,190 @@ +plots/subset.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  subset.py
    +#
    +#  Tests:      meshes    - 2D curvilinear, multiple domain
    +#              plots     - subset
    +#
    +#  Defect ID:  '6105, '6762
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 31, 2005
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Tue Nov 15 07:28:43 PST 2005
    +#    Added test for subset plus macro expression.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Hank Childs, Mon Mar 26 12:00:23 PDT 2012
    +#    Add test for Subset plot + material selection
    +#
    +#    Kathleen Biagas, Fri Jun  5 08:35:31 PDT 2020
    +#    Added tests for point glyhphing/sizing for data that doesn't declare
    +#    itself a point mesh and for data with mixed topology.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("multi_curv2d.silo"))
    +
    +AddPlot("Subset", "domains")
    +DrawPlots()
    +
    +v = GetView2D()
    +v.viewportCoords = (0, 1, 0, 1)
    +v.windowCoords = (-5, 5, 0, 5)
    +SetView2D(v)
    +
    +Test("subset_01")
    +
    +s = SubsetAttributes()
    +s.wireframe = 1
    +SetPlotOptions(s)
    +Test("subset_02")
    +
    +i = IsovolumeAttributes()
    +i.variable = "d"
    +i.lbound = 2.7
    +i.ubound = 3.6
    +SetDefaultOperatorOptions(i)
    +AddOperator("Isovolume")
    +DrawPlots()
    +Test("subset_03")
    +
    +s.wireframe = 0
    +SetPlotOptions(s)
    +Test("subset_04")
    +
    +RemoveLastOperator()
    +op = OnionPeelAttributes()
    +op.categoryName = "domains"
    +op.subsetName = "domain3"
    +op.index = (100)
    +SetDefaultOperatorOptions(op)
    +AddOperator("OnionPeel")
    +DrawPlots()
    +
    +v.windowCoords = (-0.7, -0.3, 3.1, 3.25)
    +SetView2D(v)
    +
    +Test("subset_05")
    +
    +# This is a different wireframe path than the other tests, because
    +# we have special handling for single cell wireframes.
    +# This corresponds to ticket '6105.
    +s.wireframe = 1
    +SetPlotOptions(s)
    +Test("subset_06")
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multi_curv2d.silo"))
    +
    +OpenDatabase(data_path("boxlib_test_data/2D/plt0822/Header"))
    +
    +AddPlot("Subset", "levels")
    +AddOperator("Isovolume")
    +DefineScalarExpression("vort", "curl(vel)")
    +iso_atts = IsovolumeAttributes()
    +iso_atts.variable = "vort"
    +iso_atts.lbound = -10000000
    +iso_atts.ubound = 0
    +SetOperatorOptions(iso_atts)
    +DrawPlots()
    +ResetView()
    +Test("subset_07")
    +
    +RemoveLastOperator()
    +s = SILRestriction()
    +mats = s.SetsInCategory("materials")
    +s.TurnOffSet(mats[0])
    +s.TurnOffSet(mats[1])
    +SetPlotSILRestriction(s)
    +Test("subset_08")
    +
    +ChangeActivePlotsVar("patches")
    +Test("subset_09")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("boxlib_test_data/2D/plt0822/Header"))
    +
    +OpenDatabase(data_path("silo_amr_test_data/amr2d_wmrgtree.silo"))
    +
    +AddPlot("Subset", "blocks(amr_mesh)")
    +DrawPlots()
    +
    +s = SubsetAttributes()
    +s.wireframe = 1
    +SetPlotOptions(s)
    +
    +Test("subset_10")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("silo_amr_test_data/amr2d_wmrgtree.silo"))
    +
    +TestSection("point mesh")
    +OpenDatabase(data_path("blueprint_v0.3.1_test_data/braid_3d_examples_json.root"))
    +AddPlot("Subset", "domains(points_mesh)")
    +
    +s = SubsetAttributes()
    +s.colorType = s.ColorBySingleColor
    +s.singleColor = (0, 170, 255, 255)
    +SetPlotOptions(s)
    +DrawPlots()
    +ResetView()
    +v = GetView3D()
    +v.viewNormal = (-0.605449, 0.469667, 0.642529)
    +v.viewUp = (0.169201, 0.864818, -0.472716)
    +SetView3D(v)
    +Test("subset_11")
    +
    +s.pointSizePixels = 5
    +SetPlotOptions(s)
    +Test("subset_12")
    +
    +
    +s.pointType = s.Tetrahedron
    +s.pointSize = 3
    +SetPlotOptions(s)
    +Test("subset_13")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("blueprint_v0.3.1_test_data/braid_3d_examples_json.root"))
    +
    +
    +OpenDatabase(data_path("vtk_test_data/ugrid_mixed_cells.vtk"))
    +
    +AddPlot("Subset", "mesh")
    +s = SubsetAttributes()
    +s.colorType = s.ColorBySingleColor
    +s.singleColor = (0, 170, 255, 255)
    +s.lineWidth = 3
    +s.pointType = s.Point
    +s.pointSizePixels = 2
    +SetPlotOptions(s)
    +DrawPlots()
    +ResetView()
    +
    +Test("subset_14")
    +
    +s.pointSizePixels = 5
    +SetPlotOptions(s)
    +Test("subset_15")
    +
    +s.pointType = s.Icosahedron
    +s.pointSize = 0.5
    +SetPlotOptions(s)
    +Test("subset_16")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("vtk_test_data/ugrid_mixed_cells.vtk"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_surface.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_surface.html new file mode 100644 index 000000000..24263a85d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_surface.html @@ -0,0 +1,96 @@ + +Results for plots/surface.py + +

    Results of VisIt Regression Test - plots/surface

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    surface_010.000.00
    surface_020.000.00
    surface_030.000.00
    surface_040.000.00
    surface_050.000.00
    surface_060.000.00
    surface_070.000.00
    surface_080.000.00
    surface_090.000.00
    surface_100.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_surface_py.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_surface_py.html new file mode 100644 index 000000000..0f6a50741 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_surface_py.html @@ -0,0 +1,101 @@ +plots/surface.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  surface.py
    +#
    +#  Tests:      mesh      - 2D structured, single domain
    +#                        - 2D rectilinear, single domain
    +#              plots     - surface
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       August 22, 2003
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Wed Sep  3 17:21:44 PDT 2003
    +#    Add tests 4-10, testing more options of the Surface plot. 
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +
    +#Test default surface plot (surface on, wireframe off)
    +AddPlot("Surface", "u")
    +DrawPlots()
    +Test("surface_01")
    +
    +#Turn on  Wireframe
    +s = SurfaceAttributes()
    +s.wireframeFlag=1
    +SetPlotOptions(s)
    +Test("surface_02")
    +
    +#Turn off surface, leaving only wireframe
    +s.surfaceFlag=0
    +SetPlotOptions(s)
    +Test("surface_03")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("noise2d.silo"))
    +
    +AddPlot("Surface", "shepardglobal")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.25, -0.95, -0.2)
    +v.focus = (0, 0, 10)
    +v.viewUp = (0.04, 0.2, -0.98)
    +v.imageZoom = 1.001
    +SetView3D(v)
    +Test("surface_04")
    +
    +# Turn off lighting
    +s = SurfaceAttributes()
    +s.lightingFlag = 0
    +SetPlotOptions(s)
    +Test("surface_05")
    +
    +# Lighting on, wireframe on, log scaling 
    +s.lightingFlag = 1
    +s.wireframeFlag = 1
    +s.scaling = s.Log
    +SetPlotOptions(s)
    +Test("surface_06")
    +
    +# Skew scaling, skew factor = 100
    +s.scaling = s.Skew
    +s.skewFactor = 100
    +SetPlotOptions(s)
    +Test("surface_07")
    +
    +# Skew scaling, skew factor = 0.001
    +s.skewFactor = 0.001
    +SetPlotOptions(s)
    +Test("surface_08")
    +
    +# Solid color for surface
    +s.colorByZFlag = 0
    +s.surfaceColor = (0, 200, 122, 255)
    +SetPlotOptions(s)
    +Test("surface_09")
    +
    +# change wire color, style, turn off surface
    +s.wireframeColor = (0, 0, 255, 255)
    +s.surfaceFlag = 0
    +SetPlotOptions(s)
    +Test("surface_10")
    +
    +
    +
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_tensor.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_tensor.html new file mode 100644 index 000000000..5f0bbe31d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_tensor.html @@ -0,0 +1,84 @@ + +Results for plots/tensor.py + +

    Results of VisIt Regression Test - plots/tensor

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    tensor_010.000.00
    tensor_020.000.00
    tensor_030.000.00
    tensor_040.000.00
    tensor_050.000.00
    tensor_060.000.00
    tensor_070.000.00
    tensor_080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_tensor_py.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_tensor_py.html new file mode 100644 index 000000000..50f23d4c6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_tensor_py.html @@ -0,0 +1,161 @@ +plots/tensor.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  tensor.py
    +#
    +#  Tests:      tensor    - 3D rectilinear, single domain
    +#              plots     - tensor + some more exhibiting tensor functionality.
    +#
    +#  Defect ID:  '4165
    +#
    +#  Programmer: Hank Childs
    +#  Date:       December 1, 2003
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Fri May  7 08:12:41 PDT 2004
    +#    Re-enable test for decomposing tensors that now works.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state 
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +
    +AddPlot("Tensor", "grad_tensor")
    +t = TensorAttributes()
    +t.autoScale = 0
    +t.nTensors = 55
    +t.scale = 5
    +SetPlotOptions(t)
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.312459, 0.334641, 0.889036)
    +v.focus = (0, 0, 0)
    +v.viewUp = (0.198376, 0.938247, -0.283443)
    +v.viewAngle = 30
    +v.parallelScale = 17.3205
    +v.nearPlane = -34.641
    +v.farPlane = 34.641
    +v.imagePan = (0, 0)
    +v.imageZoom = 1.18209
    +v.perspective = 1
    +v.eyeAngle = 2
    +SetView3D(v)
    +
    +# Test the general tensor plot.
    +Test("tensor_01")
    +
    +AddOperator("Slice")
    +a = SliceAttributes()
    +a.project2d = 0
    +a.normal = (0.667, 0.333, -0.667)
    +SetOperatorOptions(a)
    +DrawPlots()
    +
    +# Test the interaction of the tensor plot with the slice operator.
    +Test("tensor_02")
    +
    +RemoveLastOperator()
    +
    +b = BoxAttributes()
    +b.minx = -2
    +b.maxx = 5
    +b.miny = -3
    +b.maxy = 0
    +b.minz = -8
    +b.maxz = -4
    +SetDefaultOperatorOptions(b)
    +AddOperator("Box")
    +
    +t.nTensors = 20
    +SetPlotOptions(t)
    +DrawPlots()
    +
    +# Test the interaction of the tensor plot with the box operator.
    +Test("tensor_03")
    +
    +DeleteAllPlots()
    +
    +
    +# Test decomposing tensors and creating vectors.  The decomposition of
    +# the XX, YY, and ZZ components of the tensor is the standard gradient --
    +# so if we subtract the gradient from it, we should get all zeros.
    +DefineVectorExpression("major_comps", "{ grad_tensor[0][0], grad_tensor[1][1], grad_tensor[2][2] }")
    +
    +DefineVectorExpression("diff", "major_comps-grad")
    +DefineScalarExpression("mag_diff", "magnitude(diff)")
    +
    +AddPlot("Pseudocolor", "mag_diff")
    +DrawPlots()
    +Test("tensor_04")
    +
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("det", "determinant(grad_tensor)")
    +AddPlot("Pseudocolor", "det")
    +p = PseudocolorAttributes()
    +p.maxFlag = 1
    +p.max = 0.4
    +SetPlotOptions(p)
    +t = ThresholdAttributes()
    +t.listedVarNames = ("det")
    +t.lowerBounds = (0.0)
    +SetDefaultOperatorOptions(t)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +v.viewNormal = (-0.568609, -0.669889, 0.477424)
    +v.focus = (0, 0, 0)
    +v.viewUp = (0.792201, -0.289591, 0.537172)
    +v.viewAngle = 30
    +v.parallelScale = 17.3205
    +v.nearPlane = -34.641
    +v.farPlane = 34.641
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +
    +Test("tensor_05")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("ident", "determinant(grad_tensor*inverse(grad_tensor))")
    +AddPlot("Pseudocolor", "ident")
    +DrawPlots()
    +
    +Test("tensor_06")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("trace", "trace(grad_tensor)")
    +AddPlot("Contour", "trace")
    +DrawPlots()
    +
    +Test("tensor_07")
    +
    +DeleteAllPlots()
    +DefineVectorExpression("ev", "eigenvalue(grad_tensor)")
    +AddPlot("Vector", "ev")
    +v = VectorAttributes()
    +v.autoScale = 0
    +v.scale = 6
    +v.nVectors = 55
    +SetPlotOptions(v)
    +DrawPlots()
    +
    +Test("tensor_08")
    +
    +
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_truecolor.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_truecolor.html new file mode 100644 index 000000000..cba52976b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_truecolor.html @@ -0,0 +1,42 @@ + +Results for plots/truecolor.py + +

    Results of VisIt Regression Test - plots/truecolor

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    truecolor_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_truecolor_py.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_truecolor_py.html new file mode 100644 index 000000000..5e0052404 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_truecolor_py.html @@ -0,0 +1,21 @@ +plots/truecolor.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  truecolor.py
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       June 29, 2005 
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(data_path("Image_test_data/manhattan.jpg"))
    +
    +
    +AddPlot("Truecolor","color");
    +DrawPlots()
    +
    +Test("truecolor_01")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_vector.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_vector.html new file mode 100644 index 000000000..becebbc91 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_vector.html @@ -0,0 +1,150 @@ + +Results for plots/vector.py + +

    Results of VisIt Regression Test - plots/vector

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    vector_010.000.00
    vector_020.000.00
    vector_030.000.00
    vector_040.000.00
    vector_050.000.00
    vector_060.000.00
    vector_070.000.00
    vector_080.000.00
    vector_090.000.00
    vector_100.000.00
    vector_110.000.00
    vector_120.000.00
    vector_130.000.00
    vector_140.000.00
    vector_150.000.00
    vector_160.000.00
    vector_170.000.00
    vector_180.000.00
    vector_190.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_vector_py.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_vector_py.html new file mode 100644 index 000000000..b038fb86e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_vector_py.html @@ -0,0 +1,244 @@ +plots/vector.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  vector.py
    +#
    +#  Tests:      vector    - 3D rectilinear, unstructured single domain
    +#              plots     - vector, plus interactions with some operators.
    +#
    +#  Defect ID:  '4954
    +#
    +#  Programmer: Hank Childs
    +#  Date:       June 2, 2004
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Thu Jun 24 12:58:06 PDT 2004
    +#    Set the vector origin explicitly for some cases because I changed the
    +#    default to Tail.
    +#
    +#    Jeremy Meredith, Tue Jul  8 12:54:58 EDT 2008
    +#    Added test for new limit to original cells/nodes only.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state 
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Tue Nov 29 10:41:39 PST 2022
    +#    Replace obsolte 'colorByMag' vector att with 'colorByMagnitude'.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Vector", "vel")
    +vector_atts = VectorAttributes()
    +vector_atts.autoScale = 0
    +SetPlotOptions(vector_atts)
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.453335, 0.442704, 0.773628)
    +v.focus = (0, 0, 0)
    +v.viewUp = (0.256972, 0.895999, -0.362148)
    +v.viewAngle = 30
    +v.parallelScale = 17.3205
    +v.nearPlane = -34.641
    +v.farPlane = 34.641
    +v.imagePan = (0, 0)
    +v.imageZoom = 1.3354
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, 0)
    +SetView3D(v)
    +
    +Test("vector_01")
    +
    +#
    +# Test that we can thin the vector field correctly.
    +#
    +vector_atts.vectorOrigin = vector_atts.Middle
    +vector_atts.nVectors = 1005
    +SetPlotOptions(vector_atts)
    +Test("vector_02")
    +
    +vector_atts.nVectors = 50
    +SetPlotOptions(vector_atts)
    +Test("vector_03")
    +
    +vector_atts.useStride = 1
    +vector_atts.stride = 5
    +SetPlotOptions(vector_atts)
    +Test("vector_04")
    +
    +vector_atts.stride = 1
    +SetPlotOptions(vector_atts)
    +Test("vector_05")
    +
    +vector_atts.stride = 50
    +SetPlotOptions(vector_atts)
    +Test("vector_06")
    +
    +#
    +# Test some rendering portions of the vector plot.
    +#
    +vector_atts.useStride = 0
    +vector_atts.nVectors = 400
    +vector_atts.scale = 0.5
    +SetPlotOptions(vector_atts)
    +Test("vector_07")
    +
    +vector_atts.headOn = 0
    +SetPlotOptions(vector_atts)
    +Test("vector_08")
    +
    +vector_atts.headOn = 1
    +vector_atts.colorByMagnitude = 0
    +vector_atts.vectorColor = (255, 0, 255, 255)
    +SetPlotOptions(vector_atts)
    +Test("vector_09")
    +
    +
    +#
    +# Test zonal vectors.
    +#
    +vector_atts.colorByMagnitude = 1
    +SetPlotOptions(vector_atts)
    +ChangeActivePlotsVar("disp")
    +Test("vector_10")
    +
    +
    +#
    +# Test that we can have other plots in the same window as the vector plot.
    +#
    +DefineScalarExpression("mag", "magnitude(disp)")
    +AddPlot("Pseudocolor", "mag")
    +AddOperator("Isovolume")
    +iso_atts = IsovolumeAttributes()
    +iso_atts.lbound = 3
    +SetOperatorOptions(iso_atts)
    +DrawPlots()
    +Test("vector_11")
    +
    +
    +#
    +# Test that vector plots still work when restricted to a slice, etc.
    +#
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +DefineVectorExpression("v1", "{ vel[0]*coord(quadmesh3d)[0], vel[1]*coord(quadmesh3d)[1], vel[2]*coord(quadmesh3d)[2] }")
    +DefineScalarExpression("mag2", "magnitude(v1)")
    +
    +AddPlot("Vector", "v1")
    +vector_atts = VectorAttributes()
    +vector_atts.autoScale = 0
    +SetPlotOptions(vector_atts)
    +DrawPlots()
    +
    +v.viewNormal = (-0.450822, 0.819923, -0.352824)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (0.868253, 0.311093, -0.386468)
    +v.viewAngle = 30
    +v.parallelScale = 0.866025
    +v.nearPlane = -1.73205
    +v.farPlane = 1.73205
    +v.imagePan = (0, 0)
    +v.imageZoom = 1.3354
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, 0)
    +SetView3D(v)
    +Test("vector_12")
    +
    +iso_surf_atts = IsosurfaceAttributes()
    +iso_surf_atts.variable = "mag2"
    +iso_surf_atts.contourMethod = iso_surf_atts.Value
    +iso_surf_atts.contourValue = (0.2)
    +SetDefaultOperatorOptions(iso_surf_atts)
    +AddOperator("Isosurface")
    +DrawPlots()
    +Test("vector_13")
    +
    +RemoveLastOperator()
    +
    +slice_atts = SliceAttributes()
    +slice_atts.originType = slice_atts.Point
    +slice_atts.originPoint = (0.5, 0.5, 0.5)
    +slice_atts.normal = (1, 1, 1)
    +SetDefaultOperatorOptions(slice_atts)
    +AddOperator("Slice")
    +DrawPlots()
    +Test("vector_14")
    +
    +slice_atts.project2d = 0
    +slice_atts.normal = (1, -0.5, 0.5)
    +SetOperatorOptions(slice_atts)
    +v.viewNormal = (-0.00395109, 0.999884, -0.0147199)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (0.987418, 0.00157403, -0.158122)
    +v.viewAngle = 30
    +v.parallelScale = 0.866025
    +v.nearPlane = -1.73205
    +v.farPlane = 1.73205
    +v.imagePan = (0, 0)
    +v.imageZoom = 1.3354
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, 0)
    +SetView3D(v)
    +
    +Test("vector_15")
    +
    +#
    +# Test the "limit vectors to original node/cell" option
    +#
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +DefineVectorExpression("cvel","recenter(vel)")
    +AddPlot("Vector", "vel", 1, 0)
    +AddPlot("Boundary", "mat1", 1, 0)
    +AddPlot("Mesh", "quadmesh2d", 1, 0)
    +SetActivePlots(0)
    +vec=VectorAttributes()
    +vec.useStride=1
    +vec.stride=1
    +vec.scale=0.1
    +v = GetView2D()
    +v.windowCoords=(0,.3,1,1.3)
    +SetView2D(v)
    +SetPlotOptions(vec)
    +TurnMaterialsOff(("3","7","8"))
    +DrawPlots()
    +
    +vec.origOnly = 0
    +SetPlotOptions(vec)
    +Test("vector_16")
    +
    +vec.origOnly = 1
    +SetPlotOptions(vec)
    +Test("vector_17")
    +
    +ChangeActivePlotsVar("cvel")
    +
    +vec.origOnly = 0
    +SetPlotOptions(vec)
    +Test("vector_18")
    +
    +vec.origOnly = 1
    +SetPlotOptions(vec)
    +Test("vector_19")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_volumePlot.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_volumePlot.html new file mode 100644 index 000000000..f7871d4bf --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_volumePlot.html @@ -0,0 +1,231 @@ + +Results for plots/volumePlot.py + +

    Results of VisIt Regression Test - plots/volumePlot

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Volume Plot color control points
    volumePlot_volume_colors_00.000.00
    volumePlot_volume_colors_10.000.00
    volumePlot_volume_colors_20.000.00
    volumePlot_volume_colors_30.000.00
    volumeGaussian_010.000.00
    volumeAspect_010.000.00
    volumeOpacity_010.000.00
    volumeOpacity_020.000.00
    volumeOpacity_030.000.00
    volumeOpacity_040.000.00
    volumeOpacity_050.000.00
    vol_commandRecorded0.000.00
    volumeScaling_010.000.00
    volumeScaling_020.000.00
    volumeScaling_030.000.00
    volumeScaling_040.000.00
    volumeScaling_050.000.00
    volumeScaling_060.000.00
    volumeScaling_070.000.00
    volumeScaling_080.000.00
    volumeScaling_090.000.00
    volumeScaling_100.000.00
    volumeScaling_110.000.00
    volumeScaling_120.000.00
    volumeSampling_010.000.00
    volumeSampling_020.000.00
    volumeSampling_030.000.00
    opacityAttenuation_010.000.00
    opacityAttenuation_020.000.00
    graidentLighting_000.000.00
    graidentLighting_010.000.00
    graidentLighting_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plots_volumePlot_py.html b/2024-12-12-22:00/poodle_trunk_parallel/plots_volumePlot_py.html new file mode 100644 index 000000000..e5cb99ab2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plots_volumePlot_py.html @@ -0,0 +1,663 @@ +plots/volumePlot.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  volumePlot.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, one domain
    +#              plots     - volume
    +#              operators - none
    +#              selection - no
    +#
    +#  Programmer: Kathleen Bonnell
    +#  Date:       March 4, 2005
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Fri Oct 14 10:12:06 PDT 2005
    +#    Added InitAnnotationsLegendOn and TestVolumeOpacity per '6670.
    +#
    +#    Hank Childs, Fri May 26 10:11:52 PDT 2006
    +#    Add test for extremely high aspect ratio meshes.  ['7250]
    +#
    +#    Brad Whitlock, Wed Mar 14 17:18:05 PST 2007
    +#    Added tests for color control points and gaussian control points.
    +#
    +#    Brad Whitlock, Thu Mar 12 09:17:57 PDT 2009
    +#    I changed freeformFlag to opacityMode to reflect changes to the plot
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Hank Childs, Sun Aug 29 16:07:56 PDT 2010
    +#    Change Log10 to Log, to reflect change in naming.
    +#
    +#    Brad Whitlock, Thu May 10 15:21:51 PDT 2018
    +#    Add test case for sampling types.
    +#
    +#    Alister Maguire, Tue Feb  5 14:17:13 PST 2019
    +#    Updated the aspect test to use a larger multiplier and no shading for
    +#    better visibility. Updated the scaling test to not use shading (again
    +#    for better visibility).
    +#
    +#    Alister Maguire, Mon Mar 25 11:19:54 PDT 2019
    +#    Added an opacity test that changes the opacity variable.
    +#
    +#    Alister Maguire, Wed Jun  5 11:01:31 PDT 2019
    +#    Added opacity attenuation test.
    +#
    +#    Alister Maguire, Fri Mar 20 15:36:37 PDT 2020
    +#    Added gradient lighting reduction test.
    +#
    +#    Kathleen Biagas, Wed May 25, 2022
    +#    Added test for command-recorded volume atts.
    +#
    +#    Kathleen Biagas, Fri June 3, 2022
    +#    Renamed TestVolumeColorControlPoints to volume_colors, use new
    +#    TestAutoName funcationality. Modified TestVolumeSampling to set the
    +#    ColorControlPoints directly from the retrieved color table rather than
    +#    calling AddControlPoints (it is now a quick recipe).
    +#
    +# ----------------------------------------------------------------------------
    +
    +def InitAnnotations():
    +    # Turn off all annotation
    +    TurnOffAllAnnotations()
    +
    +def InitAnnotationsLegendOn():
    +    # Turn off all annotation
    +    a = AnnotationAttributes()
    +    TurnOffAllAnnotations(a)
    +    a.legendInfoFlag = 1
    +    SetAnnotationAttributes(a)
    +
    +def TestVolumeScaling():
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Volume", "t")
    +    volAtts = VolumeAttributes()
    +    volAtts.lightingFlag = 0
    +    SetPlotOptions(volAtts)
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (1, 0, 0)
    +    SetView3D(v)
    +
    +    Test("volumeScaling_01")
    +
    +    volAtts.scaling = volAtts.Log
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_02")
    +
    +    volAtts.scaling = volAtts.Skew
    +    volAtts.skewFactor = 0.0001
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_03")
    +
    +    volAtts.skewFactor = 1000
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_04")
    +
    +    volAtts.scaling = volAtts.Linear
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_05")
    +
    +    volAtts.scaling = volAtts.Log
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_06")
    +
    +    volAtts.scaling = volAtts.Skew
    +    volAtts.skewFactor = 0.0001
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_07")
    +
    +    volAtts.skewFactor = 1000
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_08")
    +
    +    volAtts.rendererType = volAtts.Composite
    +    volAtts.scaling = volAtts.Linear
    +    volAtts.lightingFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_09")
    +
    +    volAtts.scaling = volAtts.Log
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_10")
    +
    +    volAtts.scaling = volAtts.Skew
    +    volAtts.skewFactor = 0.0001
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_11")
    +
    +    volAtts.skewFactor = 1000
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_12")
    +
    +    DeleteAllPlots()
    +
    +def TestVolumeOpacity():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Volume", "hardyglobal")
    +    volAtts = VolumeAttributes()
    +    SetPlotOptions(volAtts)
    +    DrawPlots()
    +    ResetView()
    +    # default opacity
    +    Test("volumeOpacity_01")
    +
    +    # setting opacity via individual index and value
    +    for i in range(150):
    +        volAtts.SetFreeformOpacity(i, 0)
    +
    +    SetPlotOptions(volAtts)
    +    Test("volumeOpacity_02")
    +
    +    # setting opacity via creation of a tuple
    +    opac1 = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 240, 248, 255, 248, 240, 232, 224, 216, 208, 200, 192, 184, 176, 168, 160, 152, 144, 136, 128, 120, 112, 104, 96, 88, 80, 72, 64, 56, 48, 40, 32, 24, 16, 8, 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 240, 248, 255, 248, 240, 232, 224, 216, 208, 200, 192, 184, 176, 168, 160, 152, 144, 136, 128, 120, 112, 104, 96, 88, 80, 72, 64, 56, 48, 40, 32, 24, 16, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
    +
    +    volAtts.SetFreeformOpacity(*opac1)
    +    SetPlotOptions(volAtts)
    +    Test("volumeOpacity_03")
    +
    +    # setting opacity via creation of a list
    +    opac2 = []
    +    for j in range(32):
    +        opac2 = opac2 + [j*8]
    +    for j in range(32):
    +        opac2 = opac2 + [255-(j*8)]
    +    for j in range(128):
    +        opac2 = opac2 + [0]
    +    for j in range(32):
    +        opac2 = opac2 + [j*8]
    +    for j in range(32):
    +        opac2 = opac2 + [255-(j*8)]
    +
    +    volAtts.SetFreeformOpacity(opac2)
    +    SetPlotOptions(volAtts)
    +    Test("volumeOpacity_04")
    +
    +    #
    +    # Make sure we can change out opacity variable.
    +    #
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    AddPlot("Volume", "dz")
    +    volAtts = VolumeAttributes()
    +    volAtts.opacityVariable = "v"
    +    volAtts.lightingFlag = 0
    +    SetPlotOptions(volAtts)
    +    DrawPlots()
    +    Test("volumeOpacity_05")
    +
    +    DeleteAllPlots()
    +
    +
    +def TestOpacityAttenuation():
    +
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    ResetView()
    +
    +    #
    +    # First, test the ray caster without reduced attenuation.
    +    #
    +    AddPlot("Volume", "hardyglobal")
    +    volAtts = VolumeAttributes()
    +    volAtts.lightingFlag = 0
    +    volAtts.opacityAttenuation = 1
    +    volAtts.rendererType = volAtts.Composite
    +    SetPlotOptions(volAtts)
    +    DrawPlots()
    +    Test("opacityAttenuation_01")
    +
    +    #
    +    # Now reduce attenutation.
    +    #
    +    volAtts = VolumeAttributes()
    +    volAtts.lightingFlag = 0
    +    volAtts.rendererType = volAtts.Composite
    +    volAtts.opacityAttenuation = .12
    +    SetPlotOptions(volAtts)
    +    DrawPlots()
    +    Test("opacityAttenuation_02")
    +
    +    DeleteAllPlots()
    +
    +
    +def TestVolumeAspect():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    orig_atts = VolumeAttributes()
    +    new_atts  = VolumeAttributes()
    +    new_atts.lightingFlag = 0
    +
    +    AddPlot("Volume", "hardyglobal")
    +    SetPlotOptions(new_atts)
    +
    +    DefineVectorExpression("disp", "{0,0,-0.9*coord(Mesh)[2]}")
    +    AddOperator("Displace")
    +    d = DisplaceAttributes()
    +    d.variable = "disp"
    +    SetOperatorOptions(d)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (-0.324974, 0.839345, 0.435765)
    +    SetView3D(v)
    +    Test("volumeAspect_01")
    +    DeleteAllPlots()
    +    SetPlotOptions(orig_atts)
    +
    +def volume_colors():
    +    """Volume Plot color control points"""
    +    # the next comment and similar below bracket code to be 'literalincluded' in quickrecipes.rst
    +    # removeControlPoints {
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Volume", "hardyglobal")
    +
    +    # Modify colors. The default color table has 5 control points. Delete
    +    # all but 2 of them and then change their colors.
    +    v = VolumeAttributes()
    +    v.colorControlPoints.RemoveControlPoints(4)
    +    v.colorControlPoints.RemoveControlPoints(3)
    +    v.colorControlPoints.RemoveControlPoints(2)
    +    v.colorControlPoints.GetControlPoints(0).colors = (255,0,0,255)
    +    v.colorControlPoints.GetControlPoints(0).position = 0.
    +    v.colorControlPoints.GetControlPoints(1).colors = (0,0,255,255)
    +    v.colorControlPoints.GetControlPoints(1).position = 1.
    +    SetPlotOptions(v)
    +    DrawPlots()
    +    ResetView()
    +    # removeControlPoints }
    +    TestAutoName()
    +
    +    # addControlPoints {
    +    # there are a default of 5 control points, add 3 more and change
    +    # positions of original  so everything is evenly spaced
    +    v = VolumeAttributes()
    +    v.colorControlPoints.GetControlPoints(0).position = 0
    +    v.colorControlPoints.GetControlPoints(1).position = 0.142857
    +    v.colorControlPoints.GetControlPoints(2).position = 0.285714
    +    v.colorControlPoints.GetControlPoints(3).position = 0.428571
    +    v.colorControlPoints.GetControlPoints(4).position = 0.571429
    +    tmp = ColorControlPoint()
    +    tmp.colors = (255,255,0,255)
    +    tmp.position = 0.714286
    +    v.GetColorControlPoints().AddControlPoints(tmp)
    +    tmp.colors = (0,255,0,255)
    +    tmp.position = 0.857143
    +    v.GetColorControlPoints().AddControlPoints(tmp)
    +    tmp.colors = (0,255,255,255)
    +    tmp.position = 1
    +    v.GetColorControlPoints().AddControlPoints(tmp)
    +    SetPlotOptions(v)
    +    # addControlPoints }
    +    TestAutoName()
    +
    +    # setNumControlPoints {
    +    v = VolumeAttributes()
    +    # there are a default of 5, this resizes to 6
    +    v.colorControlPoints.SetNumControlPoints(6)
    +    v.colorControlPoints.GetControlPoints(4).position = 0.92
    +    # GetControlPoints(5) will cause a segfault without the call to SetNumControlPoints
    +    v.colorControlPoints.GetControlPoints(5).position = 1
    +    v.colorControlPoints.GetControlPoints(5).colors = (128,0,128,255)
    +    SetPlotOptions(v)
    +    # setNumControlPoints }
    +    TestAutoName()
    +
    +    # Start over with the colors.
    +    v.GetColorControlPoints().ClearControlPoints()
    +    tmp = ColorControlPoint()
    +    npts = 10
    +    for i in range(npts):
    +        t = 0.
    +        if i < npts/2:
    +            t = float(i) / float(npts/2 - 1)
    +            r = 255
    +            g = int(t * 255.)
    +            b = 0
    +        else:
    +            t = 1. - (float(i-(npts/2)) / float(npts/2 - 1))
    +            r = int((1-t) * 255.)
    +            g = int((1-t) * 255.)
    +            b = int(t * 255.)
    +        tmp.colors = (r,g,b,255)
    +        tmp.position = float(i) / float(npts-1)
    +        v.GetColorControlPoints().AddControlPoints(tmp)
    +    SetPlotOptions(v)
    +    TestAutoName()
    +    DeleteAllPlots()
    +
    +def TestVolumeGaussianControlPoints():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Volume", "hardyglobal")
    +
    +    v = VolumeAttributes()
    +    v.opacityMode = v.GaussianMode
    +    v.opacityControlPoints.ClearControlPoints()
    +    tmp = GaussianControlPoint()
    +    # Design gaussians
    +    tmp.x = 0.818182
    +    tmp.height = 0.787879
    +    tmp.width = 0.147059
    +    tmp.xBias = 0
    +    tmp.yBias = 0
    +    v.GetOpacityControlPoints().AddControlPoints(tmp)
    +
    +    tmp.x = 0.203209
    +    tmp.height = 0.590909
    +    tmp.width = 0.0588235
    +    tmp.xBias = 0.0026738
    +    tmp.yBias = 2
    +    v.GetOpacityControlPoints().AddControlPoints(tmp)
    +
    +    tmp.x = 0.47861
    +    tmp.height = 0.19697
    +    tmp.width = 0.0721925
    +    tmp.xBias = -0.00802138
    +    tmp.yBias = 0
    +    v.GetOpacityControlPoints().AddControlPoints(tmp)
    +
    +    SetPlotOptions(v)
    +    DrawPlots()
    +    ResetView()
    +    Test("volumeGaussian_01")
    +    DeleteAllPlots()
    +
    +def TestVolumeSampling():
    +    # setFromColorTable {
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    AddPlot("Volume", "hardyglobal")
    +    v = VolumeAttributes()
    +    v.lightingFlag = 0
    +    v.rendererType = v.Composite
    +    v.sampling = v.KernelBased
    +    ct = GetColorTable("hot_desaturated")
    +    v.SetColorControlPoints(ct)
    +    SetPlotOptions(v)
    +    # setFromColorTable }
    +
    +    view = GetView3D()
    +    view.viewNormal = (-1, 0, 0)
    +    view.focus = (0, 0, 0)
    +    view.viewUp = (0, 1, 0)
    +    view.viewAngle = 30
    +    view.parallelScale = 17.3205
    +    view.nearPlane = -34.641
    +    view.farPlane = 34.641
    +    view.imagePan = (0.0720459, -0.00108509)
    +    view.imageZoom = 1.85429
    +    view.perspective = 1
    +    view.eyeAngle = 2
    +    view.centerOfRotationSet = 0
    +    view.centerOfRotation = (0, 0, 0)
    +    view.axis3DScaleFlag = 0
    +    view.axis3DScales = (1, 1, 1)
    +    view.shear = (0, 0, 1)
    +    view.windowValid = 1
    +    DrawPlots()
    +    SetView3D(view)
    +    Test("volumeSampling_01")
    +
    +    v.sampling = v.Rasterization
    +    SetPlotOptions(v)
    +    Test("volumeSampling_02")
    +
    +    v.sampling = v.Trilinear
    +    SetPlotOptions(v)
    +    Test("volumeSampling_03")
    +
    +    DeleteAllPlots()
    +
    +
    +def TestGradientLightingReduction():
    +
    +    view = GetView3D()
    +    view.viewNormal = (0.746662961825451, 0.1647201021100829, 0.6444856161303283)
    +    SetView3D(view)
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    AddPlot("Volume", "v")
    +    DrawPlots()
    +
    +    #
    +    # Trilinear ray casting used to have very harsh results with
    +    # gradient lighting reduction. Let's make sure they're better
    +    # now.
    +    #
    +    v = VolumeAttributes()
    +    v.lightingFlag = 1
    +    v.rendererType = v.Composite
    +    v.sampling     = v.Trilinear
    +
    +    v.lowGradientLightingReduction = v.Lower
    +    SetPlotOptions(v)
    +    Test("graidentLighting_00")
    +
    +    v.lowGradientLightingReduction = v.Medium
    +    SetPlotOptions(v)
    +    Test("graidentLighting_01")
    +
    +    v.lowGradientLightingReduction = v.Higher
    +    SetPlotOptions(v)
    +    Test("graidentLighting_02")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("globe.silo"))
    +
    +def TestCommandRecording():
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    AddPlot("Volume", "u")
    +    DrawPlots()
    +    view3D = GetView3D()
    +    view3D.viewNormal = (0.0173089, 0.999712, 0.0165968)
    +    view3D.viewUp = (0.230674, 0.0121587, -0.972955)
    +    SetView3D(view3D)
    +
    +    # Setting up of Volume plot atts from command recording
    +    VolumeAtts = VolumeAttributes()
    +    VolumeAtts.osprayShadowsEnabledFlag = 0
    +    VolumeAtts.osprayUseGridAcceleratorFlag = 0
    +    VolumeAtts.osprayPreIntegrationFlag = 0
    +    VolumeAtts.ospraySingleShadeFlag = 0
    +    VolumeAtts.osprayOneSidedLightingFlag = 0
    +    VolumeAtts.osprayAoTransparencyEnabledFlag = 0
    +    VolumeAtts.ospraySpp = 1
    +    VolumeAtts.osprayAoSamples = 0
    +    VolumeAtts.osprayAoDistance = 100000
    +    VolumeAtts.osprayMinContribution = 0.001
    +    VolumeAtts.legendFlag = 1
    +    VolumeAtts.lightingFlag = 1
    +    VolumeAtts.colorControlPoints.SetNumControlPoints(14)
    +    VolumeAtts.colorControlPoints.GetControlPoints(0).colors = (0, 0, 255, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(0).position = 0
    +    VolumeAtts.colorControlPoints.GetControlPoints(1).colors = (0, 255, 255, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(1).position = 0.0769231
    +    VolumeAtts.colorControlPoints.GetControlPoints(2).colors = (0, 255, 0, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(2).position = 0.153846
    +    VolumeAtts.colorControlPoints.GetControlPoints(3).colors = (255, 255, 0, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(3).position = 0.230769
    +    VolumeAtts.colorControlPoints.GetControlPoints(4).colors = (255, 255, 0, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(4).position = 0.307692
    +    VolumeAtts.colorControlPoints.GetControlPoints(5).colors = (0, 255, 0, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(5).position = 0.384615
    +    VolumeAtts.colorControlPoints.GetControlPoints(6).colors = (0, 255, 255, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(6).position = 0.461538
    +    VolumeAtts.colorControlPoints.GetControlPoints(7).colors = (0, 0, 255, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(7).position = 0.538462
    +    VolumeAtts.colorControlPoints.GetControlPoints(8).colors = (255, 0, 255, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(8).position = 0.615385
    +    VolumeAtts.colorControlPoints.GetControlPoints(9).colors = (0, 0, 0, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(9).position = 0.692308
    +    VolumeAtts.colorControlPoints.GetControlPoints(10).colors = (255, 255, 255, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(10).position = 0.769231
    +    VolumeAtts.colorControlPoints.GetControlPoints(11).colors = (255, 0, 0, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(11).position = 0.846154
    +    VolumeAtts.colorControlPoints.GetControlPoints(12).colors = (255, 255, 0, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(12).position = 0.923077
    +    VolumeAtts.colorControlPoints.GetControlPoints(13).colors = (255, 0, 0, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(13).position = 1
    +    VolumeAtts.colorControlPoints.smoothing = VolumeAtts.colorControlPoints.Linear
    +    VolumeAtts.colorControlPoints.equalSpacingFlag = 0
    +    VolumeAtts.colorControlPoints.discreteFlag = 0
    +    VolumeAtts.colorControlPoints.categoryName = ""
    +    VolumeAtts.opacityAttenuation = 1
    +    VolumeAtts.opacityMode = VolumeAtts.GaussianMode
    +    VolumeAtts.opacityControlPoints.SetNumControlPoints(20)
    +    VolumeAtts.opacityControlPoints.GetControlPoints(0).x = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(0).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(0).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(0).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(0).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(1).x = 0.075
    +    VolumeAtts.opacityControlPoints.GetControlPoints(1).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(1).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(1).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(1).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(2).x = 0.125
    +    VolumeAtts.opacityControlPoints.GetControlPoints(2).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(2).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(2).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(2).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(3).x = 0.175
    +    VolumeAtts.opacityControlPoints.GetControlPoints(3).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(3).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(3).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(3).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(4).x = 0.225
    +    VolumeAtts.opacityControlPoints.GetControlPoints(4).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(4).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(4).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(4).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(5).x = 0.275
    +    VolumeAtts.opacityControlPoints.GetControlPoints(5).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(5).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(5).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(5).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(6).x = 0.325
    +    VolumeAtts.opacityControlPoints.GetControlPoints(6).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(6).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(6).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(6).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(7).x = 0.375
    +    VolumeAtts.opacityControlPoints.GetControlPoints(7).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(7).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(7).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(7).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(8).x = 0.425
    +    VolumeAtts.opacityControlPoints.GetControlPoints(8).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(8).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(8).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(8).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(9).x = 0.475
    +    VolumeAtts.opacityControlPoints.GetControlPoints(9).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(9).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(9).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(9).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(10).x = 0.525
    +    VolumeAtts.opacityControlPoints.GetControlPoints(10).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(10).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(10).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(10).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(11).x = 0.575
    +    VolumeAtts.opacityControlPoints.GetControlPoints(11).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(11).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(11).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(11).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(12).x = 0.625
    +    VolumeAtts.opacityControlPoints.GetControlPoints(12).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(12).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(12).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(12).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(13).x = 0.675
    +    VolumeAtts.opacityControlPoints.GetControlPoints(13).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(13).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(13).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(13).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(14).x = 0.725
    +    VolumeAtts.opacityControlPoints.GetControlPoints(14).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(14).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(14).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(14).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(15).x = 0.775
    +    VolumeAtts.opacityControlPoints.GetControlPoints(15).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(15).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(15).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(15).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(16).x = 0.825
    +    VolumeAtts.opacityControlPoints.GetControlPoints(16).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(16).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(16).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(16).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(17).x = 0.875
    +    VolumeAtts.opacityControlPoints.GetControlPoints(17).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(17).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(17).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(17).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(18).x = 0.925
    +    VolumeAtts.opacityControlPoints.GetControlPoints(18).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(18).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(18).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(18).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(19).x = 0.975
    +    VolumeAtts.opacityControlPoints.GetControlPoints(19).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(19).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(19).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(19).yBias = 0
    +    VolumeAtts.resampleFlag = 1
    +    VolumeAtts.resampleTarget = 1000000
    +    VolumeAtts.opacityVariable = "default"
    +    VolumeAtts.compactVariable = "default"
    +    VolumeAtts.freeformOpacity = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255)
    +    VolumeAtts.useColorVarMin = 0
    +    VolumeAtts.colorVarMin = 0
    +    VolumeAtts.useColorVarMax = 0
    +    VolumeAtts.colorVarMax = 0
    +    VolumeAtts.useOpacityVarMin = 0
    +    VolumeAtts.opacityVarMin = 0
    +    VolumeAtts.useOpacityVarMax = 0
    +    VolumeAtts.opacityVarMax = 0
    +    VolumeAtts.smoothData = 0
    +    VolumeAtts.samplesPerRay = 500
    +    VolumeAtts.rendererType = VolumeAtts.Serial
    +    VolumeAtts.gradientType = VolumeAtts.SobelOperator
    +    VolumeAtts.scaling = VolumeAtts.Linear
    +    VolumeAtts.skewFactor = 1
    +    VolumeAtts.limitsMode = VolumeAtts.OriginalData
    +    VolumeAtts.sampling = VolumeAtts.Rasterization
    +    VolumeAtts.rendererSamples = 3
    +    VolumeAtts.lowGradientLightingReduction = VolumeAtts.Lower
    +    VolumeAtts.lowGradientLightingClampFlag = 0
    +    VolumeAtts.lowGradientLightingClampValue = 1
    +    VolumeAtts.materialProperties = (0.4, 0.75, 0, 15)
    +    SetPlotOptions(VolumeAtts)
    +
    +    Test("vol_commandRecorded")
    +    ResetView()
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("globe.silo"))
    +
    +
    +#FIXME: For some reason, if you render using the ray caster,
    +#       attempting to render using the default renderer afterwards
    +#       will result in a blank test result. I have not been able
    +#       to reproduce this outside of the test suite. I created
    +#       issue #3608 to track this.
    +
    +InitAnnotationsLegendOn()
    +volume_colors()
    +TestVolumeGaussianControlPoints()
    +TestVolumeAspect()
    +TestVolumeOpacity()
    +TestCommandRecording()
    +InitAnnotations()
    +TestVolumeScaling()
    +TestVolumeSampling()
    +TestOpacityAttenuation()
    +TestGradientLightingReduction()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plugins_databasesVsInstall.html b/2024-12-12-22:00/poodle_trunk_parallel/plugins_databasesVsInstall.html new file mode 100644 index 000000000..ab71dd89b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plugins_databasesVsInstall.html @@ -0,0 +1,40 @@ + +Results for plugins/databasesVsInstall.py + +

    Results of VisIt Regression Test - plugins/databasesVsInstall

    + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    databasesVsInstall0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plugins_databasesVsInstall_py.html b/2024-12-12-22:00/poodle_trunk_parallel/plugins_databasesVsInstall_py.html new file mode 100644 index 000000000..f305ef4b4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plugins_databasesVsInstall_py.html @@ -0,0 +1,31 @@ +plugins/databasesVsInstall.py
    # ----------------------------------------------------------------------------
    +#  CLASSES:    nightly
    +#
    +#  Test Case:  databasesVsInstall.py 
    +#
    +#  Tests:      Building database plugins against an installed version of VisIt
    +#              
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       November 8, 2018 
    +#
    +#  Modifications:
    +#    Eric Brugger, Wed Jun 26 09:32:06 PDT 2019
    +#    Removed the ccm readler.
    +#
    +#    Kathleen Biagas, Tue Nov 26 10:23:31 PST 2019
    +#    Modified to pass a 'test-this' list instead of a 'skip-this' list.
    +#    Plugins chosen based on third-party dependence, ability to auto-regen
    +#    their CMakeLists.txt and tests currently available to run against the
    +#    version built (to be added at a future time).
    +#
    +# ----------------------------------------------------------------------------
    +
    +Source(tests_path("plugins", "pluginVsInstallHelpers"))
    +
    +do_plugin_type("databases", ["BOV", "Blueprint", "CGNS", "Cale", "Claw", "Exodus", "FITS", "H5Part", "MFEM", "Mili", "SAMRAI", "VTK"])
    +# for future use
    +#do_tests("database", ["bov.py", "blueprint.py", "CGNS.py", "Cale.py", "claw.py", "exodus.py", "FITS.py", "h5part.py", "mfem.py", "mili.py", "samrai.py", "vtk.py"])
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plugins_operatorsVsInstall.html b/2024-12-12-22:00/poodle_trunk_parallel/plugins_operatorsVsInstall.html new file mode 100644 index 000000000..772ff57f9 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plugins_operatorsVsInstall.html @@ -0,0 +1,40 @@ + +Results for plugins/operatorsVsInstall.py + +

    Results of VisIt Regression Test - plugins/operatorsVsInstall

    + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    operatorsVsInstall0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plugins_operatorsVsInstall_py.html b/2024-12-12-22:00/poodle_trunk_parallel/plugins_operatorsVsInstall_py.html new file mode 100644 index 000000000..1ca3a38ac --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plugins_operatorsVsInstall_py.html @@ -0,0 +1,29 @@ +plugins/operatorsVsInstall.py
    # ----------------------------------------------------------------------------
    +#  CLASSES:    nightly
    +#
    +#  Test Case:  operatorsVsInstall.py 
    +#
    +#  Tests:      Building operator plugins against an installed version of VisIt
    +#              
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       November 8, 2018 
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Tue Nov 26 10:23:31 PST 2019
    +#    Modified to pass a 'test-this' list instead of a 'skip-this' list.
    +#    Plugins chosen based on external dependence, expression creation, or a
    +#    a simple operator, the ability to auto-regen their CMakeLists.txt and
    +#    tests currently available to run against the version built (to be added
    +#    at a future time).
    +#
    +# ----------------------------------------------------------------------------
    +
    +Source(tests_path("plugins", "pluginVsInstallHelpers"))
    +
    +do_plugin_type("operators", ["CartographicProjection", "CracksClipper", "RadialResample", "Slice", "Threshold"])
    +# for future use
    +#do_tests("operators", ["cart_proj.py", "cracksclipper.py", "radial_resample.py", "slice.py", "threshold.py"])
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plugins_plotsVsInstall.html b/2024-12-12-22:00/poodle_trunk_parallel/plugins_plotsVsInstall.html new file mode 100644 index 000000000..ce003bedd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plugins_plotsVsInstall.html @@ -0,0 +1,40 @@ + +Results for plugins/plotsVsInstall.py + +

    Results of VisIt Regression Test - plugins/plotsVsInstall

    + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    plotsVsInstall0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/plugins_plotsVsInstall_py.html b/2024-12-12-22:00/poodle_trunk_parallel/plugins_plotsVsInstall_py.html new file mode 100644 index 000000000..dc3303793 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/plugins_plotsVsInstall_py.html @@ -0,0 +1,29 @@ +plugins/plotsVsInstall.py
    # ----------------------------------------------------------------------------
    +#  CLASSES:    nightly
    +#
    +#  Test Case:  plotsVsInstall.py 
    +#
    +#  Tests:      Building plot plugins against an installed version of VisIt
    +#              
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       November 8, 2018 
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Wed Nov  8 09:41:41 PST 2023
    +#    Temporarily remove Volume from being tested. We need to use the VTK 9
    +#    version, but it's CMakeLists.txt file currently cannot be
    +#    auto-regenerated. See issue #19044.
    +#    Add Molecule in it's place.
    +#
    +# ----------------------------------------------------------------------------
    +
    +Source(tests_path("plugins", "pluginVsInstallHelpers"))
    +
    +do_plugin_type("plots", ["Contour", "Label", "Molecule", "Tensor"])
    +
    +# for future use
    +#do_tests("plots", ["contour.py", "label.py", "tensor.py", "ray_trace.py or volumePlot.py"])
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_avg_value.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_avg_value.html new file mode 100644 index 000000000..a3a8ccbac --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_avg_value.html @@ -0,0 +1,58 @@ + +Results for queries/avg_value.py + +

    Results of VisIt Regression Test - queries/avg_value

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    avg_value_010 modifications totalling 0 lines
    avg_value_021 modifications totalling 1 lines
    avg_value_030 modifications totalling 0 lines
    avg_value_040 modifications totalling 0 lines
    avg_value_050.000.00
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_avg_value_py.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_avg_value_py.html new file mode 100644 index 000000000..d6e19191f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_avg_value_py.html @@ -0,0 +1,63 @@ +queries/avg_value.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  avg_value.py
    +#  Tests:      queries     - average value 
    +#
    +#  Programmer: Hank Childs
    +#  Date:       May 11, 2011
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#    individually to match current baseline results.
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOffAllAnnotations()
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "t")
    +DrawPlots()
    +Query("Average Value")
    +t = GetQueryOutputString()
    +TestText("avg_value_01", t)
    +
    +DeleteAllPlots()
    +AddPlot("Vector", "vel")
    +DrawPlots()
    +Query("Average Value")
    +t = GetQueryOutputString()
    +TestText("avg_value_02", t)
    +
    +DefineVectorExpression("vel2", "{1, t, 0}")
    +ChangeActivePlotsVar("vel2")
    +Query("Average Value")
    +t = GetQueryOutputString()
    +TestText("avg_value_03", t)
    +
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +AddPlot("Pseudocolor", "pressure")
    +DrawPlots()
    +Query("Average Value")
    +t = GetQueryOutputString()
    +TestText("avg_value_04", t)
    +
    +c = CurveAttributes()
    +c.curveColorSource = c.Custom
    +c.curveColor = (255, 0, 0, 255)
    +SetDefaultPlotOptions(c)
    +
    +QueryOverTime("Average Value")
    +SetActiveWindow(2)
    +TurnOffAllAnnotations()
    +c = CurveAttributes()
    +c.curveColorSource = c.Custom
    +c.curveColor = (255, 0, 0, 255)
    +SetPlotOptions(c)
    +Test("avg_value_05")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_bestfitline.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_bestfitline.html new file mode 100644 index 000000000..bc2df02bd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_bestfitline.html @@ -0,0 +1,94 @@ + +Results for queries/bestfitline.py + +

    Results of VisIt Regression Test - queries/bestfitline

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    bestline_1_000 modifications totalling 0 lines
    bestline_2_000.000.00
    bestline_2_010 modifications totalling 0 lines
    bestline_2_020.000.00
    bestline_2_030 modifications totalling 0 lines
    bestline_2_040.000.00
    bestline_2_050 modifications totalling 0 lines
    bestline_3_000.000.00
    bestline_3_010.000.00
    bestline_3_020.000.00
    bestline_3_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_bestfitline_py.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_bestfitline_py.html new file mode 100644 index 000000000..a38e08e58 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_bestfitline_py.html @@ -0,0 +1,204 @@ +queries/bestfitline.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  bestfit.py
    +#
    +#  Tests:      queries     - "Best Fit Line"
    +#              expressions - distance_to_best_fit_line
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Nov 18 16:43:42 PST 2005
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Tue Mar 14 07:54:20 PST 2006
    +#    Changed how full-frame is turned on
    +#    
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Matt Larsen Wed May 09 08:31:00 PST 2018
    +#    Adding view reset so image actual shows a line 
    +# ----------------------------------------------------------------------------
    +
    +import math
    +
    +def writeDataSet():
    +    nts = 100
    +    nsamples = 100
    +    x0 = -5.
    +    y0 = -5.
    +    x1 = 5.
    +    y1 = 5.
    +
    +    names = []
    +    coefficients = []
    +    for i in range(nts):
    +        t = float(i) / float(nts - 1)
    +        y_left = t * y1 + (1. - t) * y0
    +        y_right = t * y0 + (1. - t) * y1
    +        filename = data_path("curve_test_data/line%04d.curve") % i
    +        names = names + [filename]
    +        try:
    +            f = open(filename, "w")
    +
    +            f.write("#TIME %g\n" % t)
    +            f.write("#line\n")
    +
    +            m = (y_right - y_left) / (x1 - x0)
    +            angle = t * 3.14159 * 2.
    +            b  = math.sin(angle)
    +
    +            #print "Y = %gX + %g" % (m, b)
    +            coefficients = coefficients + [(m, b)]
    +
    +            for j in range(nsamples):
    +                t2 = float(j) / float(nsamples - 1)
    +                x = t2 * x1 + (1. - t2) * x0
    +                y = t2 * y_right + (1. - t2) * y_left + b
    +                f.write("%g %g\n" % (x, y))
    +
    +            f.close()
    +        except:
    +            break
    +
    +    return (names, coefficients)
    +
    +def removeFiles(ds):
    +    for d in ds:
    +        try:
    +            os.unlink(d)
    +        except:
    +            print("Could not remove ", d)
    +
    +#
    +# Test best fit line of known lines from Curve plots
    +#
    +def test1():
    +    data = writeDataSet()
    +    filenames = data[0]
    +    coefficients = data[1]
    +
    +    OpenDatabase(data_path("curve_test_data/line*.curve database"))
    +
    +    AddPlot("Curve", "line")
    +    DrawPlots()
    +
    +    s = ""
    +    try:
    +        for state in range(0, len(coefficients), 2):
    +            SetTimeSliderState(state)
    +            Query("Best Fit Line")
    +            values = GetQueryOutputValue()
    +            s = s + "Original (m=%g, b=%g)\t\t\tCalculated (m=%g, b=%g, r=%g)\n" %\
    +            (coefficients[state][0], coefficients[state][1], values[0], \
    +            values[1], values[2])
    +    except:
    +        pass
    +
    +    TestText("bestline_1_00", s)
    +    removeFiles(data[0])
    +    DeleteAllPlots()
    +
    +#
    +# Test best fit line of 2D Scatter plots
    +#
    +def test2():
    +    # Do Scatter plot of d vs d since we know that it will make Y=X
    +    OpenDatabase(silo_data_path("multi_curv2d.silo"))
    +
    +    AddPlot("Scatter", "d")
    +    s = ScatterAttributes()
    +    s.var2 = "d"
    +    s.var2Role = s.Coordinate1
    +    s.var3Role = s.NONE
    +    s.var4Role = s.NONE
    +    s.scaleCube = 0
    +    s.pointSizePixels = 5
    +    SetPlotOptions(s)
    +    DrawPlots()
    +
    +    # Turn on Fullframe
    +    v = GetView2D()
    +    v.fullFrameActivationMode = v.On
    +    SetView2D(v)
    +    Test("bestline_2_00")
    +    Query("Best Fit Line")
    +    TestText("bestline_2_01", GetQueryOutputString())
    +
    +    # Check the best fit with another known line eq.
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    DefineScalarExpression("t", "zoneid(curvmesh2d)")
    +    DefineScalarExpression("line", "t * 0.33333 + 10.")
    +    AddPlot("Scatter", "t")
    +    s.var2 = "line"
    +    SetPlotOptions(s)
    +    DrawPlots()
    +    ResetView()
    +    Test("bestline_2_02")
    +    Query("Best Fit Line")
    +    TestText("bestline_2_03", GetQueryOutputString())
    +
    +    # Make the scatter plot be d vs. dpu
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("multi_curv2d.silo"))
    +
    +    AddPlot("Scatter", "d")
    +    DefineScalarExpression("dpu", "d + u / 3.")
    +    s.var2 = "dpu"
    +    SetPlotOptions(s)
    +    DrawPlots()
    +    Test("bestline_2_04")
    +    Query("Best Fit Line")
    +    TestText("bestline_2_05", GetQueryOutputString())
    +
    +    return s
    +
    +#
    +# Test distance to best fit line expression. The colors should appear
    +# to be banded about the best fit line.
    +#
    +def test3(s):
    +    # We still have the Scatter plot from the previous test. Color it
    +    # by the distance from the best fit line.
    +    DefineScalarExpression("DBFL", "distance_to_best_fit_line(d, dpu)")
    +    DefineScalarExpression("DBFL2", "distance_to_best_fit_line2(d, dpu)")
    +    s.var3 = "DBFL"
    +    s.var3Role = s.Color
    +    s.colorTableName = "difference"
    +    s.pointSizePixels = 10
    +    SetPlotOptions(s)
    +    Test("bestline_3_00")
    +
    +    s.var3 = "DBFL2"
    +    SetPlotOptions(s)
    +    Test("bestline_3_01")
    +
    +    DefineScalarExpression("dpus", "d + u / 2. + sin(d * 5.) * 2.")
    +    DefineScalarExpression("DBFL3", "distance_to_best_fit_line(d, dpus)")
    +    DefineScalarExpression("DBFL4", "distance_to_best_fit_line2(d, dpus)")
    +    s.var2 = "dpus"
    +    s.var3 = "DBFL3"
    +    SetPlotOptions(s)
    +    Test("bestline_3_02")
    +
    +    s.var3 = "DBFL4"
    +    SetPlotOptions(s)
    +    Test("bestline_3_03")
    +
    +    return
    +
    +
    +def main():
    +    test1()
    +    s = test2()
    +    test3(s)
    +
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_casetest.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_casetest.html new file mode 100644 index 000000000..2db4765a6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_casetest.html @@ -0,0 +1,40 @@ + +Results for queries/casetest.py + +

    Results of VisIt Regression Test - queries/casetest

    + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    CaseQueryRect2dTest0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_casetest_py.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_casetest_py.html new file mode 100644 index 000000000..cc126a859 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_casetest_py.html @@ -0,0 +1,69 @@ +queries/casetest.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  casetest.py #
    +#  Tests:      queries     - Database
    +#
    +#  Description: Tests case insensitive name dispatch of queries.
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Mon Sep 19 15:09:02 PDT 2011 
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def QueryRect2d():
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +    s = ""
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("2D area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", "actual")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", "original")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", "original")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", "original")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("revolved volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("2D AREA")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("mINmAX", "actual")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("spatialextents", "original")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NUMNODES", "original")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NUMZONES", "original")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    TestText("CaseQueryRect2dTest", s)
    +    DeleteAllPlots()
    +
    +
    +def QueryMain():
    +    QueryRect2d()
    +
    +# Call the main function
    +TurnOnAllAnnotations()
    +QueryMain()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_centroid.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_centroid.html new file mode 100644 index 000000000..2cd476150 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_centroid.html @@ -0,0 +1,88 @@ + +Results for queries/centroid.py + +

    Results of VisIt Regression Test - queries/centroid

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    centroid_010 modifications totalling 0 lines
    centroid_020 modifications totalling 0 lines
    centroid_030 modifications totalling 0 lines
    centroid_040 modifications totalling 0 lines
    centroid_050 modifications totalling 0 lines
    centroid_060 modifications totalling 0 lines
    centroid_070 modifications totalling 0 lines
    centroid_080 modifications totalling 0 lines
    centroid_090 modifications totalling 0 lines
    centroid_100 modifications totalling 0 lines
    centroid_110 modifications totalling 0 lines
    centroid_120 modifications totalling 0 lines
    centroid_130 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_centroid_py.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_centroid_py.html new file mode 100644 index 000000000..f09b07e35 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_centroid_py.html @@ -0,0 +1,130 @@ +queries/centroid.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  centroid.py
    +#  Tests:      queries     - centroid and moment of inertia.
    +#
    +#  Defect ID:  VisIt00006273, '6588
    +#
    +#  Programmer: Hank Childs
    +#  Date:       May 19, 2005
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Thu Sep 15 16:33:48 PDT 2005
    +#    Added tests for centroids of surfaces.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state 
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Test that we can do an l2norm of a degenerate ultra file.
    +TurnOnAllAnnotations()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Mesh", "mesh1")
    +DrawPlots()
    +
    +Query("Moment of Inertia")
    +text = GetQueryOutputString()
    +# The answer should be ~167,547 along the diagonals.  But we are off ~10%
    +# because of mesh granularity.
    +TestText("centroid_01", text)
    +
    +# The sphere is perfectly symmetric, so we should get the same answer,
    +# even if we rotate it.
    +AddOperator("Transform")
    +trans = TransformAttributes()
    +trans.doRotate = 1
    +trans.rotateAxis = (0.707, 0, -0.707)
    +trans.rotateAmount = 150
    +SetOperatorOptions(trans)
    +DrawPlots()
    +Query("Moment of Inertia")
    +text = GetQueryOutputString()
    +TestText("centroid_02", text)
    +
    +Query("Centroid")
    +text = GetQueryOutputString()
    +TestText("centroid_03", text)
    +
    +# Translate and see that the centroid moves.
    +trans.doTranslate = 1
    +trans.translateX = 0.5
    +SetOperatorOptions(trans)
    +
    +Query("Centroid")
    +text = GetQueryOutputString()
    +TestText("centroid_04", text)
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +Query("Centroid")
    +text = GetQueryOutputString()
    +TestText("centroid_05", text)
    +
    +Query("Moment of Inertia")
    +text = GetQueryOutputString()
    +TestText("centroid_06", text)
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Mesh", "quadmesh2d")
    +DrawPlots()
    +
    +Query("Centroid")
    +text = GetQueryOutputString()
    +TestText("centroid_07", text)
    +
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +Query("Centroid")
    +text = GetQueryOutputString()
    +TestText("centroid_08", text)
    +
    +AddOperator("Revolve")
    +DrawPlots()
    +
    +Query("Centroid")
    +text = GetQueryOutputString()
    +TestText("centroid_09", text)
    +Query("Moment of Inertia")
    +text = GetQueryOutputString()
    +TestText("centroid_10", text)
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Mesh", "quadmesh3d")
    +DrawPlots()
    +
    +Query("Centroid")
    +text = GetQueryOutputString()
    +TestText("centroid_11", text)
    +Query("Moment of Inertia")
    +text = GetQueryOutputString()
    +TestText("centroid_12", text)
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Elevate")
    +DrawPlots()
    +
    +Query("Centroid")
    +text = GetQueryOutputString()
    +TestText("centroid_13", text)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_conncomp.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_conncomp.html new file mode 100644 index 000000000..ce6ccac6f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_conncomp.html @@ -0,0 +1,162 @@ + +Results for queries/conncomp.py + +

    Results of VisIt Regression Test - queries/conncomp

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    conncomp_1d_lbl0.000.00
    conncomp_1d_count0 modifications totalling 0 lines
    conncomp_1d_centroid0 modifications totalling 0 lines
    conncomp_1d_length0 modifications totalling 0 lines
    conncomp_1d_var_sum0 modifications totalling 0 lines
    conncomp_1d_weighted_var_sum0 modifications totalling 0 lines
    conncomp_1d_summary0 modifications totalling 0 lines
    conncomp_2d_lbl0.000.00
    conncomp_2d_count0 modifications totalling 0 lines
    conncomp_2d_centroid0 modifications totalling 0 lines
    conncomp_2d_area0 modifications totalling 0 lines
    conncomp_2d_var_sum0 modifications totalling 0 lines
    conncomp_2d_weighted_var_sum0 modifications totalling 0 lines
    conncomp_2d_summary0 modifications totalling 0 lines
    conncomp_3d_t10.000.00
    conncomp_3d_count_t10 modifications totalling 0 lines
    conncomp_3d_centroid_t10 modifications totalling 0 lines
    conncomp_3d_volume_t10 modifications totalling 0 lines
    conncomp_3d_summary_t10 modifications totalling 0 lines
    conncomp_3d_t20.000.00
    conncomp_3d_count_t20 modifications totalling 0 lines
    conncomp_3d_centroid_t20 modifications totalling 0 lines
    conncomp_3d_volume_t20 modifications totalling 0 lines
    conncomp_3d_summary_t20 modifications totalling 0 lines
    conncomp_3d_t30.000.00
    conncomp_3d_count_t30 modifications totalling 0 lines
    conncomp_3d_centroid_t30 modifications totalling 0 lines
    conncomp_3d_volume_t30 modifications totalling 0 lines
    conncomp_3d_summary_t30 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_conncomp_py.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_conncomp_py.html new file mode 100644 index 000000000..f1f9da83c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_conncomp_py.html @@ -0,0 +1,240 @@ +queries/conncomp.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  conncomp.py
    +#  Tests:      queries     - connected components related 
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       February 22, 2006
    +#
    +#  Modifications:
    +#    Cyrus Harrison, Thu Aug 23 09:42:43 PDT 2007
    +#    Turned off ghost neighbors optimization for exodus balls dataset.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Wed Jun 15 14:21:10 PDT 2011
    +#    Added tests for line meshes.
    +#
    +#    Kathleen Biagas, Fri Feb  7 08:00:38 PST 2014
    +#    Changed sil selection for Exodus.
    +# ----------------------------------------------------------------------------
    +
    +import json
    +
    +OpenDatabase(silo_data_path("rect2d.silo"), 0)
    +
    +
    +DefineScalarExpression("_ccl_test_1d", "conn_components(quadmesh2d)")
    +
    +#Add an iso surface
    +AddPlot("Pseudocolor", "_ccl_test_1d")
    +AddOperator("Isosurface")
    +
    +isatts = IsosurfaceAttributes()
    +isatts .variable = "d"
    +SetOperatorOptions(isatts)
    +
    +#Add Defer Exp Op
    +AddOperator("DeferExpression")
    +DeferExpressionAtts = DeferExpressionAttributes()
    +DeferExpressionAtts.exprs = ("_ccl_test_1d")
    +SetOperatorOptions(DeferExpressionAtts)
    +
    +DrawPlots()
    +
    +Test("conncomp_1d_lbl")
    +
    +ChangeActivePlotsVar("d")
    +
    +Query("Number of Connected Components")
    +res = GetQueryOutputString()
    +TestText("conncomp_1d_count",res)
    +
    +Query("Connected Component Centroids")
    +res = GetQueryOutputString()
    +TestText("conncomp_1d_centroid",res)
    +
    +Query("Connected Component Length")
    +res = GetQueryOutputString()
    +TestText("conncomp_1d_length",res)
    +
    +Query("Connected Component Variable Sum")
    +res = GetQueryOutputString()
    +TestText("conncomp_1d_var_sum",res)
    +
    +Query("Connected Component Weighted Variable Sum")
    +res = GetQueryOutputString()
    +TestText("conncomp_1d_weighted_var_sum",res)
    +
    +Query("Connected Components Summary")
    +res = GetQueryOutputObject()
    +TestText("conncomp_1d_summary",json.dumps(res,indent=2))
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("multi_rect2d.silo"), 0)
    +
    +DefineScalarExpression("_rand_test_2d", "rand(mesh1)")
    +DefineScalarExpression("_ccl_test_2d", "conn_components(mesh1)")
    +
    +AddPlot("Pseudocolor", "_ccl_test_2d")
    +# Add isovolume op to create components
    +AddOperator("Isovolume")
    +IsovolumeAtts = IsovolumeAttributes()
    +IsovolumeAtts.lbound = -1e+37
    +IsovolumeAtts.ubound = 0.3
    +IsovolumeAtts.variable = "_rand_test_2d"
    +SetOperatorOptions(IsovolumeAtts)
    +
    +#Add Defer Exp Op
    +AddOperator("DeferExpression")
    +DeferExpressionAtts = DeferExpressionAttributes()
    +DeferExpressionAtts.exprs = ("_ccl_test_2d")
    +SetOperatorOptions(DeferExpressionAtts)
    +
    +DrawPlots()
    +
    +Test("conncomp_2d_lbl")
    +
    +# test the connected components related queries
    +Query("Number of Connected Components")
    +res = GetQueryOutputString()
    +TestText("conncomp_2d_count",res)
    +
    +Query("Connected Component Centroids")
    +res = GetQueryOutputString()
    +TestText("conncomp_2d_centroid",res)
    +
    +Query("Connected Component Area")
    +res = GetQueryOutputString()
    +TestText("conncomp_2d_area",res)
    +
    +Query("Connected Component Variable Sum")
    +res = GetQueryOutputString()
    +TestText("conncomp_2d_var_sum",res)
    +
    +Query("Connected Component Weighted Variable Sum")
    +res = GetQueryOutputString()
    +TestText("conncomp_2d_weighted_var_sum",res)
    +
    +Query("Connected Components Summary")
    +res = GetQueryOutputObject()
    +TestText("conncomp_2d_summary",json.dumps(res,indent=2))
    +
    +DeleteAllPlots()
    +
    +DefineScalarExpression("_ccl_test_3d", "conn_components(Mesh,1)")
    +# exodus test
    +OpenDatabase(data_path("exodus_test_data/balls.e.4.* database"))
    +
    +
    +AddPlot("Pseudocolor", "_ccl_test_3d")
    +silr = SILRestriction()
    +silr.TurnOnAll()
    +for silSet in (5,6,7):
    +    silr.TurnOffSet(silSet)
    +SetPlotSILRestriction(silr)
    +
    +AddOperator("Displace")
    +DisplaceAtts = DisplaceAttributes()
    +DisplaceAtts.factor = 1
    +DisplaceAtts.variable = "DISPL"
    +SetOperatorOptions(DisplaceAtts)
    +DisplaceAtts = DisplaceAttributes()
    +DisplaceAtts.factor = 1
    +DisplaceAtts.variable = "DISPL"
    +SetOperatorOptions(DisplaceAtts)
    +
    +AddOperator("Transform")
    +t = TransformAttributes()
    +t.doScale = 1
    +t.scaleX = 100
    +t.scaleY = 100
    +t.scaleZ = 100
    +SetOperatorOptions(t)
    +
    +d = DeferExpressionAttributes()
    +d.exprs = ("_ccl_test_3d")
    +SetDefaultOperatorOptions(d)
    +AddOperator("DeferExpression")
    +
    +
    +v=GetView3D()
    +v.viewNormal=(.1,.1, 0)
    +v.viewUp=(0, 0, 1 )
    +SetView3D(v)
    +
    +DrawPlots()
    +
    +# test as displacement evolves
    +Test("conncomp_3d_t1");
    +
    +# test the connected components related queries
    +Query("Number of Connected Components")
    +res = GetQueryOutputString()
    +TestText("conncomp_3d_count_t1",res)
    +
    +Query("Connected Component Centroids")
    +res = GetQueryOutputString()
    +TestText("conncomp_3d_centroid_t1",res)
    +
    +
    +Query("Connected Component Volume")
    +res = GetQueryOutputString()
    +TestText("conncomp_3d_volume_t1",res)
    +
    +Query("Connected Components Summary")
    +res = GetQueryOutputObject()
    +TestText("conncomp_3d_summary_t1",json.dumps(res,indent=2))
    +
    +
    +SetTimeSliderState(11);
    +# test as displacement evolves
    +Test("conncomp_3d_t2");
    +
    +Query("Number of Connected Components")
    +res = GetQueryOutputString()
    +TestText("conncomp_3d_count_t2",res)
    +
    +Query("Connected Component Centroids")
    +res = GetQueryOutputString()
    +TestText("conncomp_3d_centroid_t2",res)
    +
    +
    +Query("Connected Component Volume")
    +res = GetQueryOutputString()
    +TestText("conncomp_3d_volume_t2",res)
    +
    +Query("Connected Components Summary")
    +res = GetQueryOutputObject()
    +TestText("conncomp_3d_summary_t2",json.dumps(res,indent=2))
    +
    +
    +SetTimeSliderState(20);
    +Test("conncomp_3d_t3");
    +
    +Query("Number of Connected Components")
    +res = GetQueryOutputString()
    +TestText("conncomp_3d_count_t3",res)
    +
    +Query("Connected Component Centroids")
    +res = GetQueryOutputString()
    +TestText("conncomp_3d_centroid_t3",res)
    +
    +
    +Query("Connected Component Volume")
    +res = GetQueryOutputString()
    +TestText("conncomp_3d_volume_t3",res)
    +
    +
    +Query("Connected Components Summary")
    +res = GetQueryOutputObject()
    +TestText("conncomp_3d_summary_t3",json.dumps(res,indent=2))
    +
    +
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_consistencyChecks.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_consistencyChecks.html new file mode 100644 index 000000000..5957412a9 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_consistencyChecks.html @@ -0,0 +1,64 @@ + +Results for queries/consistencyChecks.py + +

    Results of VisIt Regression Test - queries/consistencyChecks

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    consistencyChecks_000.000.00
    consistencyChecks_010.000.00
    consistencyChecks_020.000.00
    consistencyChecks_030.000.00
    consistencyChecks_040 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_consistencyChecks_py.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_consistencyChecks_py.html new file mode 100644 index 000000000..cbfce2c45 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_consistencyChecks_py.html @@ -0,0 +1,114 @@ +queries/consistencyChecks.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  pickQueryCombo.py #
    +#  Tests:      queries     - Pick, Zone Center, Node Coords,
    +#              operators   - OnionPeel
    +#
    +#  Notes:
    +#     Tests consistency between Pick/Query/OnionPeel when using the same
    +#     node/zone ids for each.
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       September 9, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +testNum = 0
    +
    +def PickCurv2D():
    +    # Ensures that Pick/Query/OnionPeel operator correctly and consistently
    +    # with the ghost data from this ds, which affects the numbering of zones
    +    global testNum
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +    AddPlot("Mesh", "curvmesh2d")
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +    zoneID = 482
    +    #do a pick before Onion peel
    +    p1 = PickByZone(zoneID)
    +    nodeID = p1["incident_nodes"][0]
    +    #Add Onion peel of same zone, see if it ends up under the pick letter
    +    AddOperator("OnionPeel")
    +    op = OnionPeelAttributes()
    +    op.index = zoneID
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    v = GetView2D()
    +    v.windowCoords =(1.33, 4.89, 0.18, 3.43)
    +    SetView2D(v)
    +    Test("consistencyChecks_%02d"%testNum)
    +    testNum = testNum+1
    +
    +    ClearPickPoints()
    +
    +    #Now add a Boundary plot, do the same pick, see if get same results.
    +    AddPlot("Boundary", "mat1")
    +    DrawPlots()
    +    p2 = PickByZone(zoneID)
    +    s = ""
    +    if p2['point'] == p1['point']:
    +        s = s + "PickByZone on Pseudcolor and Boundary plots yielded same point.\n"
    +    else:
    +        s = s + "PickByZone on Pseudcolor and Boundary plots DID NOT yield same point.\n"
    +    SetQueryOutputToObject()
    +    q = Query("Zone Center", element=zoneID)
    +    if (q['center'] == p1['point']):
    +        s = s + "Zone Center query returned same coords as Pick.\n"
    +    else:
    +        s = s + "Zone Center query returned different coords than Pick.\n"
    +
    +    #Now feed the zone center as coordinates into a pick:
    +    p3 = ZonePick(coord = q['center'])
    +    s = s + "Pick using coord from Zone Center query returned zone: %d, (should be: %d).\n" %(p3['zone_id'], zoneID)
    +
    +    Test("consistencyChecks_%02d"%testNum)
    +    testNum = testNum+1
    +    ClearPickPoints()
    +
    +    # Now do the same type of tests for Node Pick
    +    DeleteActivePlots()
    +    SetActivePlots(1)
    +    RemoveLastOperator()
    +
    +    p1n = PickByNode(nodeID)
    +    AddOperator("OnionPeel")
    +    op.seedType = op.SeedNode
    +    op.index = nodeID
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    Test("consistencyChecks_%02d"%testNum)
    +    testNum = testNum+1
    +
    +    ClearPickPoints()
    +    #Now add a Boundary plot, do the same pick, see if get same results.
    +    AddPlot("Boundary", "mat1")
    +    DrawPlots()
    +
    +    p2n = PickByNode(nodeID)
    +    if p2n['point'] == p1n['point']:
    +        s = s + "PickByNode on Pseudcolor and Boundary plots yielded same point.\n"
    +    else:
    +        s = s + "PickByNode on Pseudcolor and Boundary plots DID NOT yield same point.\n"
    +    qn = Query("Node Coords", element=nodeID)
    +    if (qn['coord'] == p1n['point']):
    +        s = s + "Node Coords query returned same coords as Pick.\n"
    +    else:
    +        s = s + "Node Coords query returned different coords than Pick.\n"
    +
    +    p3n = NodePick(coord = qn['coord'])
    +    s = s + "Pick using coord from Node Coord query returned node: %d, (should be: %d).\n" %(p3n['node_id'], nodeID)
    +
    +    Test("consistencyChecks_%02d"%testNum)
    +    testNum = testNum+1
    +
    +    TestText("consistencyChecks_%02d"%testNum, s)
    +    testNum = testNum+1
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("curv2d.silo"))
    +
    +PickCurv2D()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_curvature.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_curvature.html new file mode 100644 index 000000000..06e6a0b76 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_curvature.html @@ -0,0 +1,54 @@ + +Results for queries/curvature.py + +

    Results of VisIt Regression Test - queries/curvature

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    curvature_010 modifications totalling 0 lines
    curvature_020.000.00
    curvature_030 modifications totalling 0 lines
    curvature_040 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_curvature_py.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_curvature_py.html new file mode 100644 index 000000000..c1ee6c0ad --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_curvature_py.html @@ -0,0 +1,63 @@ +queries/curvature.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  curvature.py
    +#  Tests:      queries     - curvature 
    +#
    +#  Defect ID:  VisIt00006746
    +#
    +#  Programmer: Hank Childs
    +#  Date:       May 16, 2006
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +DefineScalarExpression("curvature", "mean_curvature(quadmesh3d)")
    +AddPlot("Pseudocolor", "curvature")
    +AddOperator("Isosurface")
    +i = IsosurfaceAttributes()
    +i.contourMethod = i.Value
    +i.contourValue = 0.5
    +i.variable = "d"
    +SetOperatorOptions(i)
    +DrawPlots()
    +
    +error = GetLastError()
    +TestText("curvature_01", error)
    +
    +d = DeferExpressionAttributes()
    +d.exprs = ("curvature")
    +AddOperator("DeferExpression")
    +SetOperatorOptions(d)
    +DrawPlots()
    +Test("curvature_02")
    +
    +Query("Weighted Variable Sum")
    +s = GetQueryOutputValue()
    +
    +Query("3D surface area")
    +a = GetQueryOutputValue()
    +
    +text = "The average mean curvature (manual) is %f\n" %(s/a)
    +TestText("curvature_03", text)
    +
    +DeleteAllPlots()
    +AddPlot("Contour", "d")
    +c = ContourAttributes()
    +c.contourMethod = c.Value
    +c.contourValue = 0.5
    +SetPlotOptions(c)
    +DrawPlots()
    +
    +Query("Average Mean Curvature")
    +t = GetQueryOutputString()
    +TestText("curvature_04", t)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_database.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_database.html new file mode 100644 index 000000000..5cf613794 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_database.html @@ -0,0 +1,100 @@ + +Results for queries/database.py + +

    Results of VisIt Regression Test - queries/database

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    QueryBigSil0 modifications totalling 0 lines
    QueryContours0 modifications totalling 0 lines
    QueryCurv2d0 modifications totalling 0 lines
    QueryCurv3d0 modifications totalling 0 lines
    QueryGlobe0 modifications totalling 0 lines
    QueryMultiUcd3d0 modifications totalling 0 lines
    QueryNoise0 modifications totalling 0 lines
    QueryRect2d0 modifications totalling 0 lines
    QuerySid970 modifications totalling 0 lines
    QueryMinMaxCurve0 modifications totalling 0 lines
    QuerySAMRAI0 modifications totalling 0 lines
    QueryCurves0 modifications totalling 0 lines
    QueryHistogram0 modifications totalling 0 lines
    QueryGlobalId0 modifications totalling 0 lines
    QueryZR_RZ0 modifications totalling 0 lines
    QueryArbPoly0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_database_py.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_database_py.html new file mode 100644 index 000000000..7b8698364 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_database_py.html @@ -0,0 +1,1083 @@ +queries/database.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  database.py #
    +#  Tests:      queries     - Database
    +#
    +#  Defect ID:  '6356
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       July 11, 2003 
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from FilledBoundary plots.
    +#
    +#    Kathleen Bonnell, Wed Oct 29 16:06:23 PST 2003 
    +#    Add PlotMinMax query. 
    +#
    +#    Kathleen Bonnell, Wed Dec  3 11:05:51 PST 2003 
    +#    Add SpatialExtents query. 
    +#
    +#    Kathleen Bonnell, Wed Dec  3 13:20:04 PST 2003 
    +#    Test SpatialExtents query with 'actual' and 'original' as args. 
    +#
    +#    Kathleen Bonnell, Mon Dec 22 16:46:27 PST 2003 
    +#    Added test for SAMRAI data.
    +#
    +#    Kathleen Bonnell, Fri Feb  6 10:56:25 PST 2004 
    +#    Test MinMax query with 'actual' and 'original' as args. 
    +#
    +#    Kathleen Bonnell, Fri Feb 20 17:05:04 PST 2004 
    +#    Added NumNodes and NumZones tests.
    +#
    +#    Kathleen Bonnell, Fri Mar  5 15:41:54 PST 2004 
    +#    Added QueryCurves tests, testing "Area Between Curves" queries. 
    +#
    +#    Jeremy Meredith, Mon Apr  5 14:19:47 PDT 2004
    +#    The Curv2D query was not getting boundary data.  I added code to remove
    +#    a couple materials so that it reflected the actual usage of this query.
    +#
    +#    Hank Childs, Tue Apr 13 12:58:04 PDT 2004
    +#    Rename surface area query.
    +#
    +#    Kathleen Bonnell, Tue Apr 20 09:42:30 PDT 2004 
    +#    Added QueryMultiWindow. 
    +#
    +#    Kathleen Bonnell, Wed May 19 16:31:04 PDT 2004
    +#    Moved QueryMultiWindow to its own .py file. 
    +#
    +#    Kathleen Bonnell, Thu Aug 12 13:32:35 PDT 2004 
    +#    Added QueryHistogram. 
    +#
    +#    Kathleen Bonnell, Wed Dec 29 07:57:35 PST 2004 
    +#    Added QueryGlobalId. 
    +#
    +#    Hank Childs, Wed Feb 16 07:34:07 PST 2005
    +#    Rename variables that have unsupported characters.
    +#
    +#    Hank Childs, Fri Jul  1 08:53:41 PDT 2005
    +#    Test getting a vector from the spatial extents query. ['6356]
    +#
    +#    Kathleen Bonnell, Wed Aug 10 15:07:50 PDT 2005 
    +#    Test Weighted Variable Sum Query with a postive-values variable and
    +#    a negative-values variable.  ('6453).
    +#
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +#    Kathleen Bonnell, Wed Feb  8 11:08:01 PST 2006 
    +#    Added QueryZR_RZ. 
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state 
    +#    behavior when an operator is added.
    +#
    +#    Cyrus Harrison, Mon Aug 16 15:51:46 PDT 2010
    +#    Added test for var & wvar sum of an array variable.
    +#
    +#    Kathleen Biagas, Thu Jul 14 10:44:55 PDT 2011
    +#    Use named arguments. 
    +#
    +#    Kathleen Biagas, Thu Sep 11 11:40:25 PDT 2014
    +#    Add QueryArbPoly.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin(("SAMRAI", "Silo", "VTK"))
    +
    +def QueryRect2d():
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    Query("Compactness")
    +    s = GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Eulerian")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("2D area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    AddOperator("Transform")
    +    transform = TransformAttributes()
    +    transform.doScale = 1
    +    transform.scaleX = 10
    +    SetOperatorOptions(transform)
    +    DrawPlots()
    +
    +    Query("SpatialExtents", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    Query("SpatialExtents", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    DeleteAllPlots()
    +
    +    DefineArrayExpression("array_var","array_compose(d,p,d,p)")
    +    AddPlot("Label","array_var")
    +    DrawPlots()
    +    Query("Variable Sum")
    +    s += GetQueryOutputString() + "\n"
    +    Query("Weighted Variable Sum")
    +    s += GetQueryOutputString() + "\n"
    +
    +    TestText("QueryRect2d", s)
    +    DeleteAllPlots()
    +
    +
    +def QueryMultiUcd3d():
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    Query("Eulerian")
    +    s = GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    v = GetQueryOutputValue()
    +    estr = "Exts from vector are [%f-%f, %f-%f, %f-%f]\n" %(v[0], v[1], v[2], v[3], v[4], v[5])
    +    s = s + estr
    +    Query("NumNodes", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    silr= SILRestriction();
    +    silr.TurnOffAll()
    +    silr.TurnOnSet(1)
    +    silr.TurnOnSet(3)
    +    silr.TurnOnSet(5)
    +    silr.TurnOnSet(10)
    +    SetPlotSILRestriction(silr)
    +    DrawPlots()
    +
    +    s = s + "\nAFTER APPLYING SIL RESTRICTION:\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", "original")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", "actual")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", "original")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", "actual")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", "original")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", "actual")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +
    +    TestText("QueryMultiUcd3d", s)
    +    DeleteAllPlots()
    +
    +def QueryContours():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Contour", "hardyglobal")
    +    c = ContourAttributes()
    +    c.contourNLevels = 10
    +    SetPlotOptions(c)
    +    DrawPlots()
    +
    +    s = "For 10 contours of noise.silo (hardyglobal)\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n\nMinMax Actual:"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\nMinMax Original:"
    +    Query("MinMax", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    c.contourNLevels = 4
    +    SetPlotOptions(c)
    +    s  = s + "\nFor 4 contours of noise.silo (hardyglobal)\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n\nMinMax Actual:"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\nMinMax Original:"
    +    Query("MinMax", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Contour", "d")
    +    c.contourNLevels = 10
    +    SetPlotOptions(c)
    +    DrawPlots()
    +
    +    s =  s + "\nFor 10 contours of rect3d.silo (d)\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    c.contourNLevels = 4
    +    SetPlotOptions(c)
    +    s  = s + "\nFor 4 contours of rect3d.silo (d)\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    TestText("QueryContours", s)
    +
    +    DeleteAllPlots()
    +
    +
    +def QueryCurv2d():
    +    # Testing database queries on curv2d.
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    TurnMaterialsOff("2")
    +    TurnMaterialsOff("3")
    +    Query("Compactness")
    +    TurnMaterialsOn()
    +    s = GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Eulerian")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("2D area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    DeleteAllPlots()
    +    AddPlot("Vector", "vel")
    +    DrawPlots()
    +    Query("MinMax", use_actual_data=1)
    +    s = s + "\nMinMax Actual:" + GetQueryOutputString()
    +    s = s + "\nMinMax Original:"
    +    Query("MinMax", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +
    +    TestText("QueryCurv2d", s)
    +    DeleteAllPlots()
    +
    +def QueryCurv3d():
    +    OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +    AddPlot("Pseudocolor", "p")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    Query("Eulerian")
    +    s = GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    TestText("QueryCurv3d", s)
    +    DeleteAllPlots()
    +
    +def QueryGlobe():
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    Query("Eulerian")
    +    s = GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    AddOperator("Clip")
    +    clip = ClipAttributes()
    +    clip.plane1Origin = (0.2, 0.3, 0.4)
    +    clip.plane1Normal = (1, 1, 1)
    +    SetOperatorOptions(clip)
    +    DrawPlots()
    +
    +    s = s + "\nAFTER CLIPPING:\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", "actual")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +
    +    DeleteAllPlots()
    +    AddPlot("Vector", "vel")
    +    DrawPlots()
    +    Query("MinMax", use_actual_data=1)
    +    s = s + "\nMinMax Actual:" + GetQueryOutputString()
    +    s = s + "\nMinMax Original:"
    +    Query("MinMax", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +
    +    ChangeActivePlotsVar("disp")
    +    DrawPlots()
    +    Query("MinMax", use_actual_data=1)
    +    s = s + "MinMAx Actual:" + GetQueryOutputString()
    +
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "t")
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + "\n" + GetQueryOutputString()
    +    DefineScalarExpression("neg_t", "-t")
    +    ChangeActivePlotsVar("neg_t")
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + "\n" + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    TestText("QueryGlobe", s)
    +    DeleteAllPlots()
    +
    +def QueryNoise():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    s = "For noise.silo(haryglobal)\n"
    +    Query("Eulerian")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    ChangeActivePlotsVar("hgslice")
    +    DrawPlots()
    +    # Do some database queries.
    +    s = s + "\nFor noise.silo(hgslice)\n"
    +    Query("Compactness")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Eulerian")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    DeleteAllPlots()
    +    AddPlot("Vector", "airVfGradient")
    +    DrawPlots()
    +    Query("MinMax", use_actual_data=1)
    +    s = s + "\nMinMax Actual:" + GetQueryOutputString()
    +    s = s + "\nMinMax Original:"
    +    Query("MinMax", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +
    +    ChangeActivePlotsVar("grad")
    +    DrawPlots()
    +    Query("MinMax", use_actual_data=1)
    +    s = s + "MinMax Actual:" + GetQueryOutputString()
    +    s = s + "\nMinMax Original:"
    +    Query("MinMax", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +
    +    TestText("QueryNoise", s)
    +    DeleteAllPlots()
    +
    +def QuerySid97():
    +    OpenDatabase(silo_data_path("sid97.silo"))
    +
    +    AddPlot("FilledBoundary", "mat1")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    Query("3D surface area")
    +    s = GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    TestText("QuerySid97", s)
    +    DeleteAllPlots()
    +
    +def QueryBigSil():
    +    OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +    AddPlot("Pseudocolor", "dist")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    Query("Eulerian")
    +    s = GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("3D surface area")
    +    s = s+GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    TestText("QueryBigSil", s)
    +    DeleteAllPlots()
    +
    +def QueryMinMaxCurve():
    +    OpenDatabase(data_path("curve_test_data/curve.visit"))
    +
    +    AddPlot("Curve", "parabolic");
    +    DrawPlots()
    +    Query("MinMax", use_actual_data=1)
    +    s = "\n"
    +    frames = (0, 27, 56, 73, 91);
    +    for frame in frames:
    +        SetTimeSliderState(frame)
    +        s = s + "For entire curve at frame %d:" %frame
    +        Query("MinMax", use_actual_data=1)
    +        s = s + GetQueryOutputString()
    +
    +    AddOperator("Clip")
    +    clip = ClipAttributes()
    +    clip.planeInverse = 1
    +    clip.plane1Origin = (0.5, 0, 0)
    +    SetOperatorOptions(clip)
    +    DrawPlots()
    +    for frame in frames:
    +        SetTimeSliderState(frame)
    +        s = s + "For clipped curve at frame %d:" %frame
    +        Query("MinMax", use_actual_data=1)
    +        s = s + GetQueryOutputString()
    +
    +    TestText("QueryMinMaxCurve", s)
    +    DeleteAllPlots()
    +
    +def QuerySAMRAI():
    +    OpenDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +    AddPlot("Pseudocolor", "Primitive Var _number_0")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    Query("Eulerian")
    +    s = GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    TestText("QuerySAMRAI", s)
    +    DeleteAllPlots()
    +
    +def QueryCurves():
    +    # in responses to VisIt00004449, Area between 2 curves query crashes
    +    # viewer if curves not from same database.
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +
    +    # do some lineouts so we can test curves from same database.
    +    Lineout((0.4, 1.04, 0), (0.4, 0.1, 0))
    +    SetActiveWindow(1)
    +    Lineout((0.02, 0.49, 0), (0.77, 0.49, 0))
    +
    +    SetActiveWindow(2)
    +    SetActivePlots((0, 1))
    +    Query("Area Between Curves")
    +    s = GetQueryOutputString() + "\n"
    +    Query("L2Norm Between Curves")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    # now add a curve from a different database, and test against 
    +    # previous curves.
    +    OpenDatabase(data_path("curve_test_data/c000.curve"))
    +
    +    AddPlot("Curve", "going_up")
    +    DrawPlots()
    +
    +    SetActivePlots((0, 2))
    +    Query("Area Between Curves")
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("L2Norm Between Curves")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    SetActivePlots((1, 2))
    +    Query("Area Between Curves")
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("L2Norm Between Curves")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    TestText("QueryCurves", s)
    +    DeleteWindow()
    +    DeleteAllPlots()
    +
    +def QueryHistogram():
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Histogram", "d")
    +    DrawPlots()
    +
    +    Query("Integrate")
    +    s = "Histogram(d):  " + GetQueryOutputString() + "\n"
    +
    +    ChangeActivePlotsVar("p")
    +    Query("Integrate")
    +    s = s + "Histogram(p):  " + GetQueryOutputString() + "\n"
    +
    +    ChangeActivePlotsVar("u")
    +    Query("Integrate")
    +    s = s + "Histogram(u):  " + GetQueryOutputString() + "\n"
    +
    +    ChangeActivePlotsVar("v")
    +    Query("Integrate")
    +    s = s + "Histogram(v):  " + GetQueryOutputString() + "\n\n"
    +
    +    TestText("QueryHistogram", s)
    +    DeleteAllPlots()
    +
    +def QueryGlobalId():
    +    OpenDatabase(silo_data_path("global_node.silo"))
    +
    +    AddPlot("Pseudocolor", "dist")
    +    DrawPlots()
    +
    +    Query("Global Zone Center", element=15);
    +    s = GetQueryOutputString() + "\n"
    +
    +    Query("Zone Center", element=0, domain=2)
    +    s = s + GetQueryOutputString() + "\n"
    +
    +    Query("Global Node Coords", element=16)
    +    s = s + GetQueryOutputString() + "\n"
    +
    +    Query("Node Coords", element=1, domain=2)
    +    s = s + GetQueryOutputString() + "\n"
    +
    +    TestText("QueryGlobalId", s)
    +    DeleteAllPlots()
    +
    +def QueryZR_RZ():
    +    s = "RZ UGRID:\n    "
    +    OpenDatabase(data_path("vtk_cylindrical_test_data/ugrid_RZ.vtk"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    s = s + "ZR UGRID:\n    "
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/ugrid_ZR.vtk"))
    +
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    s = s + "XY UGRID:\n    "
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/ugrid_XY.vtk"))
    +
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    AddOperator("Transform")
    +    translate = TransformAttributes()
    +    translate.doTranslate = 1
    +    translate.translateX = 5
    +    translate.translateY = 17
    +    SetOperatorOptions(translate)
    +    DrawPlots()
    +
    +    s = s + "XY UGRID TRANSLATED:\n    "
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/ugrid_ZR.vtk"))
    +
    +    DrawPlots()
    +
    +    s = s + "ZR UGRID TRANSLATED:\n    "
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/ugrid_RZ.vtk"))
    +
    +    DrawPlots()
    +
    +    s = s + "RZ UGRID TRANSLATED:\n    "
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    DeleteAllPlots()
    +
    +    s = s + "RZ RGRID:\n    "
    +    OpenDatabase(data_path("vtk_cylindrical_test_data/rect_RZ.vtk"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    s = s + "ZR RGRID:\n    "
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/rect_ZR.vtk"))
    +
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    s = s + "XY RGRID:\n    "
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/rect_XY.vtk"))
    +
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    AddOperator("Transform")
    +    translate = TransformAttributes()
    +    translate.doTranslate = 1
    +    translate.translateX = 5
    +    translate.translateY = 17
    +    SetOperatorOptions(translate)
    +    DrawPlots()
    +
    +    s = s + "XY RGRID TRANSLATED:\n    "
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/rect_ZR.vtk"))
    +
    +    DrawPlots()
    +    s = s + "ZR RGRID TRANSLATED:\n    "
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/rect_RZ.vtk"))
    +
    +    DrawPlots()
    +
    +    s = s + "RZ RGRID TRANSLATED:\n    "
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    DeleteAllPlots()
    +
    +    s = s + "RZ POLY:\n    "
    +    OpenDatabase(data_path("vtk_cylindrical_test_data/poly_RZ.vtk"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    s = s + "ZR POLY:\n    "
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/poly_ZR.vtk"))
    +
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    s = s + "XY POLY:\n    "
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/poly_XY.vtk"))
    +
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    AddOperator("Transform")
    +    translate = TransformAttributes()
    +    translate.doTranslate = 1
    +    translate.translateX = 5
    +    translate.translateY = 17
    +    SetOperatorOptions(translate)
    +    DrawPlots()
    +    s = s + "XY POLY TRANSLATED:\n    "
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/poly_ZR.vtk"))
    +
    +    DrawPlots()
    +    s = s + "ZR POLY TRANSLATED:\n    "
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/poly_RZ.vtk"))
    +
    +    DrawPlots()
    +
    +    s = s + "RZ POLY TRANSLATED:\n    "
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    TestText("QueryZR_RZ", s)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_cylindrical_test_data/poly_RZ.vtk"))
    +
    +def QueryArbPoly():
    +    SetQueryOutputToString()
    +
    +    OpenDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +    AddPlot("Mesh", "3D/mesh1")
    +    DrawPlots()
    +    s = "arbpoly-zoohybrid:\n"
    +    s = s + Query("NumZones", use_actual_data=1) + "\n"
    +    s = s + Query("NumZones", use_actual_data=0) + "\n"
    +    s = s + Query("NumNodes", use_actual_data=1) + "\n"
    +    s = s + Query("NumNodes", use_actual_data=0) + "\n"
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +
    +    OpenDatabase(silo_data_path("poly3d.silo"))
    +    AddPlot("Mesh", "ucdmesh3d")
    +    DrawPlots()
    +    s = s + "\npoly3d:\n"
    +    s = s + Query("NumZones", use_actual_data=1) + "\n"
    +    s = s + Query("NumZones", use_actual_data=0) + "\n"
    +    s = s + Query("NumNodes", use_actual_data=1) + "\n"
    +    s = s + Query("NumNodes", use_actual_data=0) + "\n"
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("poly3d.silo"))
    +
    +    OpenDatabase(data_path("overlink_test_data/ev_0_0_100/OvlTop.silo"))
    +    AddPlot("Mesh","MMESH")
    +    DrawPlots()
    +    s = s + "\nOvlTop:" + "\n"
    +    s = s + Query("NumZones", use_actual_data=1) + "\n"
    +    s = s + Query("NumZones", use_actual_data=0) + "\n"
    +    s = s + Query("NumNodes", use_actual_data=1) + "\n"
    +    s = s + Query("NumNodes", use_actual_data=0) + "\n"
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("overlink_test_data/ev_0_0_100/OvlTop.silo"))
    +
    +    OpenDatabase(silo_data_path("arbpoly.silo"))
    +    AddPlot("Mesh", "clipped_hex")
    +    DrawPlots()
    +    s = s + "\narbpoly:" + "\n"
    +    s = s + Query("NumZones", use_actual_data=1) + "\n"
    +    s = s + Query("NumZones", use_actual_data=0) + "\n"
    +    s = s + Query("NumNodes", use_actual_data=1) + "\n"
    +    s = s + Query("NumNodes", use_actual_data=0) + "\n"
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("arbpoly.silo"))
    +    TestText("QueryArbPoly", s)
    +
    +
    +def QueryMain():
    +    QueryBigSil()
    +    QueryContours()
    +    QueryCurv2d()
    +    QueryCurv3d()
    +    QueryGlobe()
    +    QueryMultiUcd3d()
    +    QueryNoise()
    +    QueryRect2d()
    +    QuerySid97()
    +    QueryMinMaxCurve()
    +    QuerySAMRAI()
    +    QueryCurves()
    +    QueryHistogram()
    +    QueryGlobalId()
    +    QueryZR_RZ()
    +    QueryArbPoly()
    +
    +# Call the main function
    +TurnOnAllAnnotations()
    +QueryMain()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_error_queries.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_error_queries.html new file mode 100644 index 000000000..4342c3316 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_error_queries.html @@ -0,0 +1,100 @@ + +Results for queries/error_queries.py + +

    Results of VisIt Regression Test - queries/error_queries

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Zone_Center_Curv2d_Valid_Str
     "The center of  zone 10 is (0.923738, 1.81294)." .eq. "The center of  zone 10 is (0.923738, 1.81294)." : True
    Zone_Center_Curv2d_Valid_Val
     (0.9237379878759384, 1.8129377663135529) .eq. (0.9237379878759384, 1.8129377663135529)
     (prec=5) : True
    Zone_Center_Curv2d_Invalid_Str
     "The center of zone 1000000 could not be determined." .eq. "The center of zone 1000000 could not be determined." : True
    Zone_Center_Curv2d_Invalid_Val
     "None" .eq. "None" : True
    Node_Coords_Curv2d_Valid_Str
     "The coords of  node 10 are (1, 1.73205)." .eq. "The coords of  node 10 are (1, 1.73205)." : True
    None_Coords_Curv2d_Valid_Val
     (1.0, 1.7320507764816284) .eq. (1.0, 1.7320507764816284)
     (prec=5) : True
    Node_Coords_Curv2d_Invalid_Str
     "The coords of node 1000000 could not be determined." .eq. "The coords of node 1000000 could not be determined." : True
    Node_Coords_Curv2d_Invalid_Val
     "None" .eq. "None" : True
    Zone_Center_Multi_Ucd3d_Valid_Str
     "The center of zone 10 (domain 5) is (0.463913, 3.91959, 6.33333)." .eq. "The center of zone 10 (domain 5) is (0.463913, 3.91959, 6.33333)." : True
    Zone_Center_Multi_Ucd3d_Valid_Val
     (0.4639131799340248, 3.9195945262908936, 6.333332777023315) .eq. (0.4639131799340248, 3.9195945262908936, 6.333332777023315)
     (prec=5) : True
    Zone_Center_Multi_Ucd3d_Invalid_Str
     "The center of zone 1000000 (domain 5) could not be determined." .eq. "The center of zone 1000000 (domain 5) could not be determined." : True
    Zone_Center_Multi_Ucd3d_Invalid_Val
     "None" .eq. "None" : True
    Node_Coords_Multi_Ucd3d_Valid_Str
     "The coords of node 10 (domain 5) are (2.96558, 2.53285, 0)." .eq. "The coords of node 10 (domain 5) are (2.96558, 2.53285, 0)." : True
    None_Coords_Multi_Ucd3d_Valid_Val
     (2.9655816555023193, 2.532846450805664, 0.0) .eq. (2.9655816555023193, 2.532846450805664, 0.0)
     (prec=5) : True
    Node_Coords_Multi_Ucd3d_Invalid_Str
     "The coords of node 1000000 (domain 5) could not be determined." .eq. "The coords of node 1000000 (domain 5) could not be determined." : True
    Node_Coords_Multi_Ucd3d_Invalid_Val
     "None" .eq. "None" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_error_queries_py.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_error_queries_py.html new file mode 100644 index 000000000..1e246fbb2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_error_queries_py.html @@ -0,0 +1,89 @@ +queries/error_queries.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  error_quries.py
    +#  Tests:      queries     - zone center, node coords
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       August 3, 2023
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Test with a single domain 2d curvilinear mesh
    +#
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +Query("Zone Center", domain=0, element=10)
    +s = GetQueryOutputString()
    +v = GetQueryOutputValue()
    +
    +TestValueEQ("Zone_Center_Curv2d_Valid_Str", s, "The center of  zone 10 is (0.923738, 1.81294).")
    +TestValueEQ("Zone_Center_Curv2d_Valid_Val", v, (0.9237379878759384, 1.8129377663135529))
    +
    +Query("Zone Center", domain=0, element=1000000)
    +s = GetQueryOutputString()
    +v = GetQueryOutputValue()
    +
    +TestValueEQ("Zone_Center_Curv2d_Invalid_Str", s, "The center of zone 1000000 could not be determined.")
    +TestValueEQ("Zone_Center_Curv2d_Invalid_Val", v, None)
    +
    +Query("Node Coords", domain=0, element=10)
    +s = GetQueryOutputString()
    +v = GetQueryOutputValue()
    +
    +TestValueEQ("Node_Coords_Curv2d_Valid_Str", s, "The coords of  node 10 are (1, 1.73205).")
    +TestValueEQ("None_Coords_Curv2d_Valid_Val", v, (1.0, 1.7320507764816284))
    +
    +Query("Node Coords", domain=0, element=1000000)
    +s = GetQueryOutputString()
    +v = GetQueryOutputValue()
    +
    +TestValueEQ("Node_Coords_Curv2d_Invalid_Str", s, "The coords of node 1000000 could not be determined.")
    +TestValueEQ("Node_Coords_Curv2d_Invalid_Val", v, None)
    +
    +DeleteAllPlots()
    +
    +#
    +# Test with a multi domain 3d unstructured mesh
    +#
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +Query("Zone Center", domain=5, element=10)
    +s = GetQueryOutputString()
    +v = GetQueryOutputValue()
    +
    +TestValueEQ("Zone_Center_Multi_Ucd3d_Valid_Str", s, "The center of zone 10 (domain 5) is (0.463913, 3.91959, 6.33333).")
    +TestValueEQ("Zone_Center_Multi_Ucd3d_Valid_Val", v, (0.4639131799340248, 3.9195945262908936, 6.333332777023315))
    +
    +Query("Zone Center", domain=5, element=1000000)
    +s = GetQueryOutputString()
    +v = GetQueryOutputValue()
    +
    +TestValueEQ("Zone_Center_Multi_Ucd3d_Invalid_Str", s, "The center of zone 1000000 (domain 5) could not be determined.")
    +TestValueEQ("Zone_Center_Multi_Ucd3d_Invalid_Val", v, None)
    +
    +Query("Node Coords", domain=5, element=10)
    +s = GetQueryOutputString()
    +v = GetQueryOutputValue()
    +
    +TestValueEQ("Node_Coords_Multi_Ucd3d_Valid_Str", s, "The coords of node 10 (domain 5) are (2.96558, 2.53285, 0).")
    +TestValueEQ("None_Coords_Multi_Ucd3d_Valid_Val", v, (2.9655816555023193, 2.532846450805664, 0.0))
    +
    +Query("Node Coords", domain=5, element=1000000)
    +s = GetQueryOutputString()
    +v = GetQueryOutputValue()
    +
    +TestValueEQ("Node_Coords_Multi_Ucd3d_Invalid_Str", s, "The coords of node 1000000 (domain 5) could not be determined.")
    +TestValueEQ("Node_Coords_Multi_Ucd3d_Invalid_Val", v, None)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_gridinformation.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_gridinformation.html new file mode 100644 index 000000000..a127f41ab --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_gridinformation.html @@ -0,0 +1,56 @@ + +Results for queries/gridinformation.py + +

    Results of VisIt Regression Test - queries/gridinformation

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    gridinformation_000 modifications totalling 0 lines
    gridinformation_010 modifications totalling 0 lines
    gridinformation_020 modifications totalling 0 lines
    gridinformation_030 modifications totalling 0 lines
    gridinformation_040 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_gridinformation_py.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_gridinformation_py.html new file mode 100644 index 000000000..497b8c917 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_gridinformation_py.html @@ -0,0 +1,43 @@ +queries/gridinformation.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  database.py #
    +#  Tests:      Grid Information
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Jan  3 16:38:02 PST 2018
    +#
    +#  Modifications:
    +#
    +# ---------------------------------------------------------------------------- 
    +
    +newline = "=================================================\n"
    +
    +tests = (
    +    ("gridinformation_00", silo_data_path("noise.silo"), "Pseudocolor", "radial"),
    +    ("gridinformation_01", silo_data_path("globe.silo"), "Pseudocolor", "speed"),
    +    ("gridinformation_02", silo_data_path("multi_rect3d.silo"), "Pseudocolor", "d"),
    +    ("gridinformation_03", silo_data_path("multi_curv3d.silo"), "Pseudocolor", "d"),
    +    ("gridinformation_04", silo_data_path("multi_ucd3d.silo"), "Pseudocolor", "d"))
    +
    +for t in tests:
    +    OpenDatabase(t[1])
    +    AddPlot(t[2], t[3])
    +    DrawPlots()
    +    Query("Grid Information")
    +    s = GetQueryOutputString()
    +    s = s + newline
    +
    +    Query("Grid Information", get_extents=1)
    +    s = s + GetQueryOutputString()
    +    s = s + newline
    +
    +    Query("Grid Information", get_extents=1, get_ghosttypes=1)
    +    s = s + GetQueryOutputString()
    +
    +    TestText(t[0], s)
    +    DeleteAllPlots()
    +    CloseDatabase(t[1])
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_hohlraum.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_hohlraum.html new file mode 100644 index 000000000..c2dbc6a0d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_hohlraum.html @@ -0,0 +1,86 @@ + +Results for queries/hohlraum.py + +

    Results of VisIt Regression Test - queries/hohlraum

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    hf_0_00 modifications totalling 0 lines
    hf_0_10.000.00
    hf_1_00 modifications totalling 0 lines
    hf_1_10.000.00
    hf_2_00 modifications totalling 0 lines
    hf_2_10.000.00
    hf_3_00 modifications totalling 0 lines
    hf_3_10.000.00
    hf_4_00 modifications totalling 0 lines
    hf_4_10.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_hohlraum_py.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_hohlraum_py.html new file mode 100644 index 000000000..1850c4c72 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_hohlraum_py.html @@ -0,0 +1,112 @@ +queries/hohlraum.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  line_scan.py
    +#  Tests:      queries     - mass distribution, chord length distribution
    +#
    +#  Defect ID:  '7474 + '7476
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 23, 2006
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Sun Aug 27 16:52:07 PDT 2006
    +#    Added testing for expected value, mass from boundary.
    +#
    +#    Dave Bremer, Fri Sep  8 11:44:22 PDT 2006
    +#    Added testing for the line scan transform.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Thu Jul 14 10:44:55 PDT 2011
    +#    Use named arguments.
    +#
    +#    Kathleen Biagas, Wed Feb 16 13:11:57 PST 2022
    +#    Replaced Curve atts 'cycleColors' with 'curveColorSource'.
    +#
    +# ----------------------------------------------------------------------------
    +
    +import os
    +
    +
    +ca=CurveAttributes()
    +ca.curveColorSource = ca.Custom
    +SetDefaultPlotOptions(ca)
    +
    +def TestOne(index, filename, varname, meshname, absvar, emisvar, numlines, x, y, z, radius, theta, phi):
    +    # Because the queries we are testing output to the file system, we need to
    +    # delete previous outputs before running.  If we don't do this, then the
    +    # queries will output files to names that are continuously incrementing.
    +    list = os.listdir(".")
    +    for i in range(len(list)):
    +        if (list[i] == "hf0.ult"):
    +            os.unlink("hf0.ult")
    +
    +    # Do the queries...
    +    OpenDatabase(filename)
    +    AddPlot("Pseudocolor", varname)
    +    DrawPlots()
    +    params = dict(num_lines=numlines, ray_center=(x, y, z), radius=radius, theta=theta, phi=phi, vars=(absvar, emisvar))
    +    Query("Hohlraum Flux", params)
    +    s = GetQueryOutputString()
    +    #v = GetQueryOutputValue()
    +    test_name = "hf_%d_%d" %(index,0)
    +    TestText(test_name, s)
    +    DeleteAllPlots()
    +
    +    # Now test the outputs
    +    OpenDatabase("hf0.ult")
    +    ReOpenDatabase("hf0.ult")  # Flush out cached version
    +    AddPlot("Curve", "Hohlraum Flux")
    +    DrawPlots()
    +    ResetView()
    +    test1 = "hf_%d_%d" %(index,1)
    +    Test(test1)
    +    DeleteAllPlots()
    +
    +
    +DefineArrayExpression("a0", "array_compose(recenter(u), recenter(v), d)")
    +DefineArrayExpression("e0", "array_compose(recenter(gradient(u)[0]), recenter(gradient(u)[1]), p)")
    +TestOne(0, silo_data_path("rect2d.silo"), "d", "quadmesh2d", "a0", "e0", 100, 0.5,0.5,0, 0.1,0,0)
    +DeleteExpression("a0")
    +DeleteExpression("e0")
    +
    +DefineArrayExpression("a1", "array_compose(<mesh_quality/volume>, <mesh_quality/taper>,  <mesh_quality/oddy>)")
    +DefineArrayExpression("e1", "array_compose(<mesh_quality/aspect>, <mesh_quality/shape>, <mesh_quality/skew>)")
    +TestOne(1, data_path("KullLite_test_data/T.pdb"),
    +        "mesh_quality/volume", "mesh",
    +        "a1", "e1", 100, 0,0,0, 0.25,90,90)
    +DeleteExpression("a1")
    +DeleteExpression("e1")
    +
    +DefineArrayExpression("a2", "array_compose(<mesh_quality/mesh/jacobian>, \
    +                      <mesh_quality/mesh/area>, <mesh_quality/mesh/oddy>)")
    +DefineArrayExpression("e2", "array_compose(<mesh_quality/mesh/aspect>, \
    +                      <mesh_quality/mesh/shape>, <mesh_quality/mesh/skew>)")
    +TestOne(2, data_path("KullLite_test_data/tagtest_rz_3.pdb"),
    +        "mesh_quality/mesh/area", "mesh",
    +        "a2", "e2", 333, 0,0,1, 0.5,0,0)
    +DeleteExpression("a2")
    +DeleteExpression("e2")
    +
    +TestOne(3, silo_data_path("multi_rect2d.silo"), "d", "mesh1", "d", "p", 500, 0.5,0.5,0, 1,45,45)
    +
    +
    +DefineArrayExpression("a3", "array_compose_with_bins(<mesh_quality/mesh/jacobian>,"
    +                            "<mesh_quality/mesh/area>, <mesh_quality/mesh/oddy>,  [0, 2, 4, 8])")
    +DefineArrayExpression("e3", "array_compose_with_bins(<mesh_quality/mesh/aspect>,"
    +                            "<mesh_quality/mesh/shape>, <mesh_quality/mesh/skew>, [0, 2, 4, 8])")
    +TestOne(4, data_path("KullLite_test_data/tagtest_rz_3.pdb"), "mesh_quality/mesh/area", "mesh",
    +        "a3", "e3", 333, 0,0,1, 0.5,0,0)
    +DeleteExpression("a3")
    +DeleteExpression("e3")
    +
    +
    +
    +
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_kurtosis.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_kurtosis.html new file mode 100644 index 000000000..15d5a6559 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_kurtosis.html @@ -0,0 +1,60 @@ + +Results for queries/kurtosis.py + +

    Results of VisIt Regression Test - queries/kurtosis

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    kurtosis_010 modifications totalling 0 lines
    kurtosis_020 modifications totalling 0 lines
    kurtosis_030 modifications totalling 0 lines
    kurtosis_040 modifications totalling 0 lines
    kurtosis_050 modifications totalling 0 lines
    kurtosis_060 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_kurtosis_py.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_kurtosis_py.html new file mode 100644 index 000000000..01970fa81 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_kurtosis_py.html @@ -0,0 +1,49 @@ +queries/kurtosis.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  kurtosis.py
    +#  Tests:      queries     - kurtosis and skewness
    +#
    +#  Defect ID:  VisIt00006466, '6269.
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 5, 2005
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +OpenDatabase(data_path("curve_test_data/distribution.ultra"))
    +
    +AddPlot("Curve", "Laplace Distribution")
    +DrawPlots()
    +
    +Query("Kurtosis")
    +text = GetQueryOutputString()
    +TestText("kurtosis_01", text)
    +
    +Query("Skewness")
    +text = GetQueryOutputString()
    +TestText("kurtosis_02", text)
    +
    +ChangeActivePlotsVar("Log Normal Distribution")
    +Query("Kurtosis")
    +text = GetQueryOutputString()
    +TestText("kurtosis_03", text)
    +
    +Query("Skewness")
    +text = GetQueryOutputString()
    +TestText("kurtosis_04", text)
    +
    +ChangeActivePlotsVar("Exponential Distribution")
    +Query("Kurtosis")
    +text = GetQueryOutputString()
    +TestText("kurtosis_05", text)
    +
    +Query("Skewness")
    +text = GetQueryOutputString()
    +TestText("kurtosis_06", text)
    +
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_l2norm.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_l2norm.html new file mode 100644 index 000000000..923b419ca --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_l2norm.html @@ -0,0 +1,56 @@ + +Results for queries/l2norm.py + +

    Results of VisIt Regression Test - queries/l2norm

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    l2norm_010 modifications totalling 0 lines
    l2norm_020 modifications totalling 0 lines
    l2norm_030 modifications totalling 0 lines
    l2norm_040 modifications totalling 0 lines
    l2norm_050 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_l2norm_py.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_l2norm_py.html new file mode 100644 index 000000000..572919a6e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_l2norm_py.html @@ -0,0 +1,107 @@ +queries/l2norm.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  l2norm.py
    +#  Tests:      queries     - l2norms of various curves
    +#
    +#  Defect ID:  VisIt00006077
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 15, 2005
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +# Test that we can do an l2norm of a degenerate ultra file.
    +TurnOnAllAnnotations()
    +OpenDatabase(data_path("curve_test_data/degenerate.ultra"))
    +
    +AddPlot("Curve", "This is a degenerate ultra file.")
    +DrawPlots()
    +
    +Query("L2Norm")
    +text = GetQueryOutputString()
    +TestText("l2norm_01", text)
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +DefineScalarExpression("d_mod", "d+0.4*coord(quadmesh2d)[1]")
    +AddWindow()
    +SetActiveWindow(2)
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "d_mod")
    +DrawPlots()
    +
    +start_angle = 0
    +stop_angle = 90
    +
    +import math
    +nsteps = 10
    +center=(0,0)
    +radius = 1
    +step = (stop_angle-start_angle) / (nsteps-1)
    +rel_diff = []
    +for i in range(nsteps):
    +   angle = start_angle + i*step
    +   rad_angle = angle*2*math.pi/360.
    +   P2=(radius*math.cos(rad_angle), radius*math.sin(rad_angle))
    +   SetActiveWindow(1)
    +   time.sleep(1)
    +   Lineout(center, P2)
    +   SetActiveWindow(2)
    +   time.sleep(1)
    +   Lineout(center, P2)
    +   SetActiveWindow(3)
    +   SetActivePlots(0)
    +   Query("L2Norm")
    +   norm = GetQueryOutputValue()
    +   SetActivePlots((0,1))
    +   time.sleep(1)
    +   Query("L2Norm Between Curves")
    +   diff = GetQueryOutputValue()
    +   rel_diff = rel_diff + [1.-diff/norm]
    +   DeleteAllPlots()
    +
    +ave=0
    +for i in range(nsteps):
    +   ave += rel_diff[i]
    +ave /= nsteps
    +
    +text = "The average difference is %f" %(ave)
    +TestText("l2norm_02", text)
    +
    +min=1
    +max=0
    +for i in range(nsteps):
    +   if (rel_diff[i]<min):
    +       min=rel_diff[i]
    +   if (rel_diff[i]>max):
    +       max=rel_diff[i]
    +
    +
    +text = "The minimum relative difference is %f" %(min)
    +TestText("l2norm_03", text)
    +text = "The maximum relative difference is %f" %(max)
    +TestText("l2norm_04", text)
    +
    +
    +variance = 0
    +for i in range(nsteps):
    +   variance += (rel_diff[i]-ave)*(rel_diff[i]-ave)
    +variance /= (nsteps-1)
    +stddev = math.sqrt(variance)
    +
    +text = "The standard deviation of the relative difference is %f" %(stddev)
    +TestText("l2norm_05", text)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_length.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_length.html new file mode 100644 index 000000000..fd8a11d77 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_length.html @@ -0,0 +1,50 @@ + +Results for queries/length.py + +

    Results of VisIt Regression Test - queries/length

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    length_010 modifications totalling 0 lines
    length_020 modifications totalling 0 lines
    length_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_length_py.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_length_py.html new file mode 100644 index 000000000..e7231f461 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_length_py.html @@ -0,0 +1,58 @@ +queries/length.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  length.py
    +#  Tests:      queries     - total length
    +#
    +#  Defect ID:  VisIt00007530
    +#
    +#  Programmer: Hank Childs
    +#  Date:       November 8, 2006
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Mon Nov 27 09:27:06 PST 2006
    +#    Forgot to remove annotations.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#    individually to match current baseline results.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Test that we can do an l2norm of a degenerate ultra file.
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +Query("Total Length")
    +text = GetQueryOutputString()
    +TestText("length_01", text)
    +
    +DeleteAllPlots()
    +OpenDatabase(data_path("curve_test_data/curve.visit"))
    +
    +AddPlot("Curve", "going_up")
    +DrawPlots()
    +
    +Query("Total Length")
    +text = GetQueryOutputString()
    +TestText("length_02", text)
    +
    +q = GetQueryOverTimeAttributes()
    +q.timeType = q.Timestep
    +SetQueryOverTimeAttributes(q)
    +QueryOverTime("Total Length")
    +SetActiveWindow(2)
    +TurnOffAllAnnotations()
    +c = CurveAttributes()
    +c.curveColorSource = c.Custom
    +c.curveColor = (0, 255, 0, 255)
    +SetPlotOptions(c)
    +Test("length_03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_line_scan.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_line_scan.html new file mode 100644 index 000000000..b175528ee --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_line_scan.html @@ -0,0 +1,428 @@ + +Results for queries/line_scan.py + +

    Results of VisIt Regression Test - queries/line_scan

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ls_0_10.000.00
    ls_0_20 modifications totalling 0 lines
    ls_0_30 modifications totalling 0 lines
    ls_0_40.000.00
    ls_0_50 modifications totalling 0 lines
    ls_0_60 modifications totalling 0 lines
    ls_0_70.000.00
    ls_0_80 modifications totalling 0 lines
    ls_0_90 modifications totalling 0 lines
    ls_0_100.000.00
    ls_0_110 modifications totalling 0 lines
    ls_0_120 modifications totalling 0 lines
    ls_0_130.000.00
    ls_0_140 modifications totalling 0 lines
    ls_0_150 modifications totalling 0 lines
    ls_0_160.000.00
    ls_0_170 modifications totalling 0 lines
    ls_0_180 modifications totalling 0 lines
    ls_0_190.000.00
    ls_0_200 modifications totalling 0 lines
    ls_0_210 modifications totalling 0 lines
    ls_1_10.000.00
    ls_1_20 modifications totalling 0 lines
    ls_1_30 modifications totalling 0 lines
    ls_1_40.000.00
    ls_1_50 modifications totalling 0 lines
    ls_1_60 modifications totalling 0 lines
    ls_1_70.000.00
    ls_1_80 modifications totalling 0 lines
    ls_1_90 modifications totalling 0 lines
    ls_1_100.000.00
    ls_1_110 modifications totalling 0 lines
    ls_1_120 modifications totalling 0 lines
    ls_1_130.000.00
    ls_1_140 modifications totalling 0 lines
    ls_1_150 modifications totalling 0 lines
    ls_1_160.000.00
    ls_1_170 modifications totalling 0 lines
    ls_1_180 modifications totalling 0 lines
    ls_1_190.000.00
    ls_1_200 modifications totalling 0 lines
    ls_1_210 modifications totalling 0 lines
    ls_2_10.000.00
    ls_2_20 modifications totalling 0 lines
    ls_2_30 modifications totalling 0 lines
    ls_2_40.000.00
    ls_2_50 modifications totalling 0 lines
    ls_2_60 modifications totalling 0 lines
    ls_2_70.000.00
    ls_2_80 modifications totalling 0 lines
    ls_2_90 modifications totalling 0 lines
    ls_2_100.000.00
    ls_2_110 modifications totalling 0 lines
    ls_2_120 modifications totalling 0 lines
    ls_2_130.000.00
    ls_2_140 modifications totalling 0 lines
    ls_2_150 modifications totalling 0 lines
    ls_2_160.000.00
    ls_2_170 modifications totalling 0 lines
    ls_2_180 modifications totalling 0 lines
    ls_2_190.000.00
    ls_2_200 modifications totalling 0 lines
    ls_2_210 modifications totalling 0 lines
    ls_3_10.000.00
    ls_3_20 modifications totalling 0 lines
    ls_3_30 modifications totalling 0 lines
    ls_3_40.000.00
    ls_3_50 modifications totalling 0 lines
    ls_3_60 modifications totalling 0 lines
    ls_3_70.000.00
    ls_3_80 modifications totalling 0 lines
    ls_3_90 modifications totalling 0 lines
    ls_3_100.000.00
    ls_3_110 modifications totalling 0 lines
    ls_3_120 modifications totalling 0 lines
    ls_3_130.000.00
    ls_3_140 modifications totalling 0 lines
    ls_3_150 modifications totalling 0 lines
    ls_3_160.000.00
    ls_3_170 modifications totalling 0 lines
    ls_3_180 modifications totalling 0 lines
    ls_3_190.000.00
    ls_3_200 modifications totalling 0 lines
    ls_3_210 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_line_scan_py.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_line_scan_py.html new file mode 100644 index 000000000..86ec7fa06 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_line_scan_py.html @@ -0,0 +1,203 @@ +queries/line_scan.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  line_scan.py
    +#  Tests:      queries     - mass distribution, chord length distribution
    +#
    +#  Defect ID:  '7474 + '7476
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 23, 2006
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Sun Aug 27 16:52:07 PDT 2006
    +#    Added testing for expected value, mass from boundary.
    +#
    +#    Dave Bremer, Fri Sep  8 11:44:22 PDT 2006
    +#    Added testing for the line scan transform.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Thu Jul 14 10:44:55 PDT 2011
    +#    Use named arguments.
    +#
    +#    Kathleen Biagas, Wed Feb 16 13:11:57 PST 2022
    +#    Replaced Curve atts 'cycleColors' with 'curveColorSource'.
    +#
    +# ----------------------------------------------------------------------------
    +
    +import os
    +
    +
    +ca=CurveAttributes()
    +ca.curveColorSource = ca.Custom
    +SetDefaultPlotOptions(ca)
    +
    +def TestOne(index, filename, varname, meshname, limit):
    +    # Because the queries we are testing output to the file system, we need to
    +    # delete previous outputs before running.  If we don't do this, then the
    +    # queries will output files to names that are continuously incrementing.
    +    list = os.listdir(".")
    +    for i in range(len(list)):
    +        if (list[i] == "cld_i0.ult"):
    +            os.unlink("cld_i0.ult")
    +        if (list[i] == "cld_a0.ult"):
    +            os.unlink("cld_a0.ult")
    +        if (list[i] == "rld_i0.ult"):
    +            os.unlink("rld_i0.ult")
    +        if (list[i] == "rld_a0.ult"):
    +            os.unlink("rld_a0.ult")
    +        if (list[i] == "md0.ult"):
    +            os.unlink("md0.ult")
    +        if (list[i] == "dfb0.ult"):
    +            os.unlink("dfb0.ult")
    +        if (list[i] == "lst0.ult"):
    +            os.unlink("lst0.ult")
    +
    +    # Set up a purely 2D data set...
    +    randname = "rand%d" %(index)
    +    defn = "rand(%s)" %(meshname)
    +    DefineScalarExpression(randname, defn)
    +    OpenDatabase(filename)
    +    AddPlot("Pseudocolor", varname)
    +    AddOperator("Isovolume")
    +    iso_atts = IsovolumeAttributes()
    +    iso_atts.ubound = 0.3
    +    iso_atts.variable = randname
    +    SetOperatorOptions(iso_atts)
    +    DrawPlots()
    +
    +    # Do the queries...
    +    Query("Chord Length Distribution - individual", num_lines=15000, num_bins=100, min=0, max=limit)
    +    Query("Chord Length Distribution - aggregate", num_lines=15000, num_bins=100, min=0, max=limit)
    +    Query("Ray Length Distribution - individual", num_lines=15000, num_bins=100, min=0, max=limit)
    +    Query("Ray Length Distribution - aggregate", num_lines=15000, num_bins=100, min=0, max=limit)
    +    Query("Mass Distribution", num_lines=15000, num_bins=100, min=0, max=limit)
    +    Query("Distance From Boundary", num_lines=15000, num_bins=100, min=0, max=limit)
    +    Query("Line Scan Transform", num_lines=15000, num_bins=100, min=0, max=limit)
    +    DeleteAllPlots()
    +
    +    # Now test the outputs
    +    OpenDatabase("cld_i0.ult")
    +    ReOpenDatabase("cld_i0.ult")  # Flush out cached version
    +    AddPlot("Curve", "Chord length distribution - individual")
    +    DrawPlots()
    +    ResetView()
    +    test1 = "ls_%d_%d" %(index,1)
    +    Test(test1)
    +    Query("Integrate")
    +    text = GetQueryOutputString()
    +    test2 = "ls_%d_%d" %(index,2)
    +    TestText(test2, text)
    +    Query("Expected Value")
    +    text = GetQueryOutputString()
    +    test3 = "ls_%d_%d" %(index,3)
    +    TestText(test3, text)
    +    DeleteAllPlots()
    +    OpenDatabase("md0.ult")
    +    ReOpenDatabase("md0.ult")  # Flush out cached version
    +    AddPlot("Curve", "Mass distribution")
    +    DrawPlots()
    +    ResetView()
    +    test4 = "ls_%d_%d" %(index,4)
    +    Test(test4)
    +    Query("Integrate")
    +    text = GetQueryOutputString()
    +    test5 = "ls_%d_%d" %(index,5)
    +    TestText(test5, text)
    +    Query("Expected Value")
    +    text = GetQueryOutputString()
    +    test6 = "ls_%d_%d" %(index,6)
    +    TestText(test6, text)
    +    DeleteAllPlots()
    +    OpenDatabase("dfb0.ult")
    +    ReOpenDatabase("dfb0.ult")  # Flush out cached version
    +    AddPlot("Curve", "Mass distribution")
    +    DrawPlots()
    +    ResetView()
    +    test7 = "ls_%d_%d" %(index,7)
    +    Test(test7)
    +    Query("Integrate")
    +    text = GetQueryOutputString()
    +    test8 = "ls_%d_%d" %(index,8)
    +    TestText(test8, text)
    +    Query("Expected Value")
    +    text = GetQueryOutputString()
    +    test9 = "ls_%d_%d" %(index,9)
    +    TestText(test9, text)
    +    DeleteAllPlots()
    +    OpenDatabase("cld_a0.ult")
    +    ReOpenDatabase("cld_a0.ult")  # Flush out cached version
    +    AddPlot("Curve", "Chord length distribution - aggregate")
    +    DrawPlots()
    +    ResetView()
    +    test1 = "ls_%d_%d" %(index,10)
    +    Test(test1)
    +    Query("Integrate")
    +    text = GetQueryOutputString()
    +    test2 = "ls_%d_%d" %(index,11)
    +    TestText(test2, text)
    +    Query("Expected Value")
    +    text = GetQueryOutputString()
    +    test3 = "ls_%d_%d" %(index,12)
    +    TestText(test3, text)
    +    DeleteAllPlots()
    +    OpenDatabase("rld_i0.ult")
    +    ReOpenDatabase("rld_i0.ult")  # Flush out cached version
    +    AddPlot("Curve", "Ray length distribution - individual")
    +    DrawPlots()
    +    ResetView()
    +    test1 = "ls_%d_%d" %(index,13)
    +    Test(test1)
    +    Query("Integrate")
    +    text = GetQueryOutputString()
    +    test2 = "ls_%d_%d" %(index,14)
    +    TestText(test2, text)
    +    Query("Expected Value")
    +    text = GetQueryOutputString()
    +    test3 = "ls_%d_%d" %(index,15)
    +    TestText(test3, text)
    +    DeleteAllPlots()
    +    OpenDatabase("rld_a0.ult")
    +    ReOpenDatabase("rld_a0.ult")  # Flush out cached version
    +    AddPlot("Curve", "Ray length distribution - aggregate")
    +    DrawPlots()
    +    ResetView()
    +    test1 = "ls_%d_%d" %(index,16)
    +    Test(test1)
    +    Query("Integrate")
    +    text = GetQueryOutputString()
    +    test2 = "ls_%d_%d" %(index,17)
    +    TestText(test2, text)
    +    Query("Expected Value")
    +    text = GetQueryOutputString()
    +    test3 = "ls_%d_%d" %(index,18)
    +    TestText(test3, text)
    +    DeleteAllPlots()
    +    OpenDatabase("lst0.ult")
    +    ReOpenDatabase("lst0.ult")  # Flush out cached version
    +    AddPlot("Curve", "Line Scan Transform")
    +    DrawPlots()
    +    ResetView()
    +    test1 = "ls_%d_%d" %(index,19)
    +    Test(test1)
    +    Query("Integrate")
    +    text = GetQueryOutputString()
    +    test2 = "ls_%d_%d" %(index,20)
    +    TestText(test2, text)
    +    Query("Expected Value")
    +    text = GetQueryOutputString()
    +    test3 = "ls_%d_%d" %(index,21)
    +    TestText(test3, text)
    +    DeleteAllPlots()
    +
    +
    +TestOne(0, silo_data_path("rect2d.silo") , "d", "quadmesh2d", 0.5)
    +TestOne(1, silo_data_path("multi_rect2d.silo") , "d", "mesh1", 0.5)
    +TestOne(2, data_path("KullLite_test_data/T.pdb"), "mesh_quality/volume", "mesh", 0.2)
    +TestOne(3, data_path("KullLite_test_data/tagtest_rz_3.pdb"), "mesh_quality/mesh/area", "mesh", 4.0)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_pick.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_pick.html new file mode 100644 index 000000000..08c1b5c9f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_pick.html @@ -0,0 +1,284 @@ + +Results for queries/pick.py + +

    Results of VisIt Regression Test - queries/pick

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Pick3DTo2D2 modifications totalling 6 lines
    Pick2D0 modifications totalling 0 lines
    PickOnionPeel0 modifications totalling 0 lines
    PickSubset0 modifications totalling 0 lines
    PickMatFracsThreshold0 modifications totalling 0 lines
    PickReflect0 modifications totalling 0 lines
    PickFilledBoundary0 modifications totalling 0 lines
    PickMultiBlock0 modifications totalling 0 lines
    PickSurface0 modifications totalling 0 lines
    PickBigSilMat0 modifications totalling 0 lines
    PickOnionPeel20 modifications totalling 0 lines
    PickSpecMix0 modifications totalling 0 lines
    PickCurve0 modifications totalling 0 lines
    PickMultiWindow0 modifications totalling 0 lines
    PickAfterEngineClose0 modifications totalling 0 lines
    PickAfterEngineCrash0 modifications totalling 0 lines
    PickBoundary0 modifications totalling 0 lines
    PickVectorPlot0 modifications totalling 0 lines
    PickPointMeshes0 modifications totalling 0 lines
    PickGlobalIds0 modifications totalling 0 lines
    PickExpressions0 modifications totalling 0 lines
    PickAMR0 modifications totalling 0 lines
    PickSamrai_010 modifications totalling 0 lines
    PickSamrai_020 modifications totalling 0 lines
    PickSamrai_030 modifications totalling 0 lines
    PickSamrai_040 modifications totalling 0 lines
    PickSamrai_050 modifications totalling 0 lines
    PickIndexSelect0 modifications totalling 0 lines
    PickTensors0 modifications totalling 0 lines
    PickMili0 modifications totalling 0 lines
    PickContour0 modifications totalling 0 lines
    PickBox0 modifications totalling 0 lines
    PickScatter0 modifications totalling 0 lines
    PickHighlight_010.000.00
    GlobalHighlight_000.000.00
    PickHighlightColor_010.000.00
    PickRange_010.000.00
    RemovePicks_010.000.00
    RemovePicks_020.000.00
    Removed expected picks
     "A, C, D" .eq. "A, C, D" : True
    RemovePicks_030.000.00
    RemovePicks_040.000.00
    Removed expected picks 2
     "E" .eq. "E" : True
    RemoveLabeledPicks_000.000.00
    RemoveLabeledPicks_010.000.00
    Removed expected shell
     "shell 1, shell 2" .eq. "shell 1, shell 2" : True
    PickLines3D0 modifications totalling 0 lines
    PickByZoneLabel0 modifications totalling 0 lines
    PickByNodeLabel0 modifications totalling 0 lines
    PickRangeByZoneLabel0 modifications totalling 0 lines
    SwivelFocus_000.000.00
    SwivelHighlight_000.000.00
    NodeHighlight_000.000.00
    TranslatedHighlight_000.000.00
    TestPickingExpression_000 modifications totalling 0 lines
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_pickNamedArgs.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_pickNamedArgs.html new file mode 100644 index 000000000..6f1eb7fe7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_pickNamedArgs.html @@ -0,0 +1,90 @@ + +Results for queries/pickNamedArgs.py + +

    Results of VisIt Regression Test - queries/pickNamedArgs

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    TimePick_NamedArgs_000.000.00
    Curve type 0, pressure first value
     0.019999999552965164 .eq. 0.019999999552965164 (prec=14) : True
    Curve type 0, v first value
     0.0010749432258307934 .eq. 0.0010749432258307394 (prec=14) : True
    TimePick_NamedArgs_010.000.00
    TimePick_NamedArgs_020.000.00
    TimePick_NamedArgs_030.000.00
    Curve type 1, pressure first value
     0.019999999552965164 .eq. 0.019999999552965164 (prec=14) : True
    Curve type 1, v first value
     0.0010749432258307934 .eq. 0.0010749432258307394 (prec=14) : True
    TimePick_NamedArgs_040.000.00
    Pick_UsingQueryResults0 modifications totalling 0 lines
    Pick_ByGlobalElement0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_pickNamedArgs_py.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_pickNamedArgs_py.html new file mode 100644 index 000000000..cb3499b0c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_pickNamedArgs_py.html @@ -0,0 +1,242 @@ +queries/pickNamedArgs.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  pickNamedArgs.py #
    +#  Tests:      queries     - Pick using named-arguments
    +#                            Pick using query results as arguments
    +#
    +#  Defect ID:  1781
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       July 11, 2014 
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Tue Jul 22 11:51:27 MST 2014
    +#    Added Pick_ByGlobalId.
    +#
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#    individually to match current baseline results.
    +#
    +# ---------------------------------------------------------------------------- 
    +
    +def TimePick():
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +
    +    # to demonstrate the effect of changing time options, use timestep for x axis.
    +    q = GetQueryOverTimeAttributes()
    +    q.timeType = q.Timestep
    +    SetQueryOverTimeAttributes(q)
    +
    +    # Controlling which time steps are queried, showing defaults used
    +    #     stride     => int    default: 1
    +    #     start_time => int    default: 0 (min time index)
    +    #     end_time   => int    default: max time index, as determined from DB
    +
    +    # Controlling the plot type when multiple vars are queried
    +    #     curve_plot_type: 0 (Single Y Axis), or  1 (Multiple Y Axes) default: 0
    +
    +    # Which is used for subsequent timesteps, the coordinate or the element?
    +    #     preserve_coord:  0 (use the element)  or 1 (use the coordinate)
    +
    +    c = CurveAttributes()
    +    c.curveColorSource = c.Custom
    +    c.curveColor = (255, 0, 0, 255)
    +    SetDefaultPlotOptions(c)
    +
    +    vars =("pressure", "v", "direction_magnitude")
    +    PickByNode(element=8837, vars=vars, do_time=1, preserve_coord=0,curve_plot_type=0)
    +    SetActiveWindow(2);
    +    Test("TimePick_NamedArgs_00")
    +
    +    # this test and NamedArgs_03 using curve type 1 should return same values
    +    PFirstYVal =  0.019999999552965164
    +    VFirstYVal =  0.0010749432258307394
    +
    +    firstYVal=GetPlotInformation()["Curves"]["pressure"][1]
    +    TestValueEQ("Curve type 0, pressure first value", firstYVal, PFirstYVal, 14)
    +    firstYVal=GetPlotInformation()["Curves"]["v"][1]
    +    TestValueEQ("Curve type 0, v first value", firstYVal,  VFirstYVal, 14)
    +    DeleteAllPlots()
    +
    +    c.curveColor = (0, 255, 0, 255)
    +    SetDefaultPlotOptions(c)
    +
    +    SetActiveWindow(1)
    +    PickByNode(element=8837, vars=vars, do_time=1, preserve_coord=0,curve_plot_type=0,start_time=15, end_time=50, stride=7)
    +    SetActiveWindow(2);
    +    Test("TimePick_NamedArgs_01")
    +    DeleteAllPlots()
    +
    +    c.curveColor = (0, 0, 255, 255)
    +    SetDefaultPlotOptions(c)
    +    SetActiveWindow(1)
    +
    +    # different way for specifying time options, result should be same as previopus:
    +    time_opt = {'stride':7, 'start_time': 15, 'end_time':50}
    +    PickByNode(element=8837, vars=vars, do_time=1, preserve_coord=0, time_options=time_opt)
    +    SetActiveWindow(2);
    +    Test("TimePick_NamedArgs_02")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    PickByNode(element=8837, vars=vars, do_time=1, preserve_coord=0,curve_plot_type=1)
    +    SetActiveWindow(2);
    +    Test("TimePick_NamedArgs_03")
    +
    +    # these should be the same as TimePick_NamedArgs_00
    +    firstYVal=GetPlotInformation()["Curves"]["pressure"][1]
    +    TestValueEQ("Curve type 1, pressure first value", firstYVal, PFirstYVal, 14)
    +    firstYVal=GetPlotInformation()["Curves"]["v"][1]
    +    TestValueEQ("Curve type 1, v first value", firstYVal,  VFirstYVal, 14)
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1);
    +    PickByNode(element=8837, vars=vars, do_time=1, preserve_coord=0,curve_plot_type=1,stride=10)
    +    SetActiveWindow(2);
    +    Test("TimePick_NamedArgs_04")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("wave.visit"))
    +
    +def PickUsingQueryResults():
    +    ResetPickLetter()
    +    OpenDatabase(silo_data_path("wave.visit"))
    +    AddPlot("FilledBoundary", "Material")
    +    SetTimeSliderState(31)
    +    DrawPlots()
    +
    +    # Make it easier to get coordinate values
    +    SetQueryOutputToValue()
    +    s = "Pick using results of Node Coords query:\n"
    +
    +    node_8837_coords = Query("Node Coords", element=8837)
    +
    +    # Now test that NodePick using those coords will return the correct node id
    +    # Utilizes named args: coord (a tuple containing spatial coordinates)
    +
    +    pick_out = NodePick(coord=node_8837_coords)
    +    if pick_out['node_id'] == 8837:
    +        s = s + "    NodePick with coordinate succeeded.\n"
    +    else:
    +        s = s + "    NodePick with coordinate failed to return correct node id.\n"
    +
    +
    +    s = "Pick using results of Zone Center query:\n"
    +    # select a zone that is incident to node 8837
    +    adjacent_zone = pick_out['incident_zones'][0]
    +    # Get it's coords and try a pick
    +    adjacent_zone_coords = Query("Zone Center", element=adjacent_zone)
    +    pick_out = ZonePick(coord=adjacent_zone_coords)
    +    if pick_out['zone_id'] == adjacent_zone:
    +        s = s + "    ZonePick with coordinate succeeded.\n"
    +    else:
    +        s = s + "    ZonePick with coordinate failed to return correct node id\n"
    +
    +    # Now, does Pick report that our original node id is incident to the picked zone?
    +    if 8837 in pick_out['incident_nodes']:
    +        s = s + "    ZonePick correctly reported incident node\n"
    +    else:
    +        s = s + "    ZonePick failed to correctly report incident node\n"
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("wave.visit"))
    +
    +
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +    # d is zonal quantity, so picks will be by-zone
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    # Change query output type for parse-ability of MinMax results
    +    SetQueryOutputToObject()
    +
    +    # Do a MinMax query, and use the results to drive a pick.
    +    res = Query("MinMax")
    +    s = s + "\nQuery for MinMax of 'd': \n" + GetQueryOutputString()
    +
    +    s = s + "Pick using results of MinMax Query:\n\n"
    +
    +    # Pick using MinMax results
    +    # Utilizes named args: 
    +    #     domain (an integer), 
    +    #     element (an integer representing node id or zone id depending on the type of Pick)
    +    pick_out = PickByZone(domain=res['min_domain'], element=res['min_element_num'])
    +    s = s + "Pick for zone at 'd' minimum: \n" + GetPickOutput()
    +    pick_out = PickByZone(domain=res['max_domain'], element=res['max_element_num'])
    +    s = s + "Pick for zone at 'd' maximum: \n" + GetPickOutput()
    +    TestText("Pick_UsingQueryResults", s)
    +    ResetPickLetter()
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +
    +
    +def doGlobalPicks(centering):
    +    s = "Global node pick on %s_centered data:\n\n" %centering
    +    d = PickByGlobalNode(element=246827)
    +    # use json.dumps for dictionary object, makes for easier parsing
    +    # of diffs when there are errors
    +    s = s + "dictionary output:\n" + json.dumps(d,indent=2) + "\n\n"
    +    s = s + "string output: " + GetPickOutput() + "\n\n"
    +
    +    s = s + "\nGlobal zone pick on %s_centered data:\n\n" %centering
    +    d = PickByGlobalZone(element=237394)
    +    s = s + "dictionary output:\n" + json.dumps(d,indent=2) + "\n\n"
    +    s = s + "string output: " + GetPickOutput() + "\n\n"
    +
    +    return s
    +
    +def PickByGlobalElement():
    +    OpenDatabase(silo_data_path("global_node.silo"))
    +
    +    AddPlot("Pseudocolor", "dist")
    +    DrawPlots()
    +    ResetView()
    +    p = GetPickAttributes()
    +    p.showGlobalIds = 0
    +    SetPickAttributes(p)
    +
    +    s = "NOT SHOWING GLOBAL IDS\n\n"
    +    s = s + doGlobalPicks("node")
    +
    +    #  Repeat, showing global ids
    +    p.showGlobalIds = 1
    +    SetPickAttributes(p)
    +
    +    s = s + "SHOWING GLOBAL IDS\n\n"
    +    s = s + doGlobalPicks("node")
    +
    +    p.showGlobalIds = 0
    +    SetPickAttributes(p)
    +
    +    # now use a zone-centered var
    +    ChangeActivePlotsVar("p")
    +
    +    s = s + "NOT SHOWING GLOBAL IDS\n\n"
    +    s = s + doGlobalPicks("zone")
    +
    +    #  Repeat, showing global ids
    +    p.showGlobalIds = 1
    +    SetPickAttributes(p)
    +
    +    s = s + "SHOWING GLOBAL IDS\n\n"
    +    s = s + doGlobalPicks("zone")
    +
    +    TestText("Pick_ByGlobalElement", s)
    +    # cleanup
    +    p.showGlobalIds = 0
    +    SetPickAttributes(p)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +TimePick()
    +PickUsingQueryResults()
    +PickByGlobalElement()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_pick_py.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_pick_py.html new file mode 100644 index 000000000..1e4b72159 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_pick_py.html @@ -0,0 +1,3268 @@ +queries/pick.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  pick.py #
    +#  Tests:      queries     - Pick
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Kathleen Bonnell
    +#  Date:       May 13, 2003
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Fri Jun 27 16:03:57 PDT 2003
    +#    Modified PickFilledBoundary (removed MeshPlot) so that test is preformed
    +#    on FilledBoundaryPlot and not MeshPlot.
    +#
    +#    Kathleen Bonnell, Tue Jul  8 21:17:17 PDT 2003
    +#    Modified PickFilledBoundary to use flip of slice so that it still works
    +#    with recent slice changes.
    +#
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from Subset and FilledBoundary plots.
    +#
    +#    Kathleen Bonnell, Wed Sep 10 11:36:32 PDT 2003
    +#    Added test for multi-block meshes.
    +#
    +#    Kathleen Bonnell, Fri Oct 10 17:43:46 PDT 2003
    +#    Added test for surface plots.
    +#
    +#    Kathleen Bonnell, Fri Oct 24 16:09:33 PDT 2003
    +#    Added test for PC of BigSil, and pickvar = material.
    +#
    +#    Kathleen Bonnell, Wed Nov  5 14:30:35 PST 2003
    +#    Per VisIt000033891, add another onion peel test, where there is only
    +#    1 cell, and window is set to use Actual extents.
    +#
    +#    Kathleen Bonnell, Thu Nov 13 12:07:20 PST 2003
    +#    Use SetOperatorOptions instead of SetDefaultOperatorOption in OnionPeel, so
    +#    that OnionPeel2 will work correctly.  Added vars to OnionPeel2.
    +#
    +#    Kathleen Bonnell, Tue Nov 18 17:23:43 PST 2003
    +#    Added use of PickAtts' useNodeCoords, logicalCoords and logicalZone for
    +#    a few tests.
    +#
    +#    Kathleen Bonnell, Thu Nov 20 16:29:45 PST 2003
    +#    Added PicSpecMix tests, for species vars, (VisIt '3864).
    +#    Added a 'vel' only test to PickMatFracsThreshold (VisIt '4103).
    +#
    +#    Kathleen Bonnell, Wed Nov 26 11:26:04 PST 2003
    +#    Added calls to ResetPickLetter after each test, so that each test's
    +#    pick letter starts out with 'A'.  This will prevent the necessity of
    +#    updating all pick baselines when modifications are made to only one test.
    +#    Added tests for new pick methods: PickByZone, PickByNode. ('4123)
    +#
    +#    Kathleen Bonnell, Wed Dec  3 07:51:52 PST 2003
    +#    Added PickCurve tests, for curve plots. (VisIt '3832).
    +#
    +#    Kathleen Bonnell, Mon Mar  8 15:47:52 PST 2004
    +#    Added more tests  to TestSpecMix, to verify that we get same results
    +#    regardless of whether 'species' is the active variable, or some other
    +#    scalar is the active variale.
    +#
    +#    Kathleen Bonnell, Tue Mar 16 16:26:17 PST 2004
    +#    Added bad variables and expression variable tests to PickMultiBlock,
    +#    from bug '4571.
    +#
    +#    Kathleen Bonnell, Thu Apr  1 09:21:22 PST 2004
    +#    Added  a "Variable by Zone" and "Variable by Node" Query to PickSpecMix
    +#    in order to test that these queries return the same values as their
    +#    Pick counterparts.
    +#
    +#    Kathleen Bonnell, Tue Apr 20 09:42:30 PDT 2004
    +#    Added PickMultiWindow.
    +#
    +#    Kathleen Bonnell, Thu Apr 29 07:40:58 PDT 2004
    +#    Slice defaults atts have changed, update accordingly.
    +#
    +#    Brad Whitlock, Mon May 3 15:31:40 PST 2004
    +#    I added a couple of tests that test how pick works if an engine is closed
    +#    or if one crashes.
    +#
    +#    Kathleen Bonnell, Tue May  4 14:35:08 PDT 2004
    +#    Changed a couple of screen coordinates for PickBigSilMat that were
    +#    invalid.
    +#
    +#    Kathleen Bonnell, Wed Jun  2 10:14:58 PDT 2004
    +#    Added tests to Pick2D to tests PickByNode and PickByZone on a dataset
    +#    with ghost zones.  Added test to PickSurface, tests various flavors
    +#    of pick to see if they are returning the same info for the same input.
    +#
    +#    Kathleen Bonnell, Thu Jul  8 16:30:07 PDT 2004
    +#    Added  PickedBoundary, to test picking on 2D Boundary plots and
    +#    3D Sliced-to-2D Boundary plots with unstructured, rectilinear and
    +#    curvilinear data.
    +#
    +#    Jeremy Meredith, Wed Jul 21 08:59:24 PDT 2004
    +#    Making print output go to stderr.
    +#
    +#    Kathleen Bonnell, Thu Jul 22 08:35:45 PDT 2004
    +#    Added test of data designated as 'ascii' to Pick2D (using rect2d).
    +#
    +#    Kathleen Bonnell, Wed Aug 11 09:04:56 PDT 2004
    +#    Added to Pick3DTo2D, a test of data sliced along boundary between zones,
    +#    to verify that picking with all materials ON returns same results as
    +#    with some materials OFF. ('5279)
    +#
    +#    Brad Whitlock, Wed Aug 25 12:30:45 PDT 2004
    +#    Added TurnMaterialsOn to PickMultiBlock since it was remembering the
    +#    material selection for mulit_rect3d.silo from an earlier pick test.
    +#
    +#    Kathleen Bonnell, Wed Sep  8 09:36:30 PDT 2004
    +#    Renamed 'WorldPick' to 'Pick' and 'WorldNodePick' to 'NodePick'.
    +#
    +#    Kathleen Bonnell, Fri Oct 22 16:11:41 PDT 2004
    +#    Added PickVectorPlots.
    +#
    +#    Kathleen Bonnell, Tue Nov  2 10:16:36 PST 2004
    +#    Added PickPointMeshes.
    +#
    +#    Kathleen Bonnell, Wed Dec 15 15:38:41 PST 2004
    +#    Added PickGlobalIds.
    +#
    +#    Kathleen Bonnell, Thu Dec 16 17:16:33 PST 2004
    +#    Added PickByNode and PickByZone to PickGlobalIds.
    +#
    +#    Kathleen Bonnell, Mon Dec 20 10:49:59 PST 2004
    +#    Removed  "Variable by Zone" and "Variable by Node" Query from PickSpecMix
    +#    as they are no longer supported.
    +#
    +#    Kathleen Bonnell, Thu Feb  3 09:27:22 PST 2005
    +#    Added PickExpressions, testing matvf and mirvf per '5799.
    +#
    +#    Kathleen Bonnell, Tue Mar  1 13:11:31 PST 2005
    +#    Added couple more tests to PickExpressions, testing Expression that
    +#    has not been plotted, per '5418.
    +#
    +#    Brad Whitlock, Wed Mar 9 09:15:30 PDT 2005
    +#    Removed deprecated functions.
    +#
    +#    Kathleen Bonnell, Wed May 11 18:04:12 PDT 2005
    +#    Per ticket '6097, added tests to 'PickGlobalIds' to ensure global ids
    +#    returned correctly for global zone/node picks.
    +#
    +#    Kathleen Bonnell, Mon May 23 13:41:50 PDT 2005
    +#    Per ticket '6217, added tests to 'PickFilledBoundary' to ensure node
    +#    pick of sliced FB plot returns correct coords.
    +#
    +#    Kathleen Bonnell, Fri Jun 10 14:38:27 PDT 2005
    +#    Per ticket '6296 -- added tests to PickVectorPlots to ensure that
    +#    pick of vector expression won't causes crash
    +#
    +#    Kathleen Bonnell, Thu Jun 30 15:39:03 PDT 2005
    +#    Added tests for AMR data.
    +#
    +#    Kathleen Bonnell, Fri Jul  8 14:12:03 PDT 2005
    +#    Added more tests for AMR data: PickSamrai.
    +#
    +#    Kathleen Bonnell, Wed Aug 10 17:12:50 PDT 2005
    +#    Added PickIndexSelect.
    +#
    +#    Kathleen Bonnell, Tue Aug 30 15:19:34 PDT 2005
    +#    Added PickTensors.  '6410
    +#
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +#    Kathleen Bonnell, Tue May  2 08:38:28 PDT 2006
    +#    Added PickMili ('7144, '7145).
    +#
    +#    Kathleen Bonnell, Tue Aug 29 09:34:17 PDT 2006
    +#    Added Pickcontour ('7220).
    +#
    +#    Kathleen Bonnell, Thu Oct 26 14:24:45 PDT 2006
    +#    Added PickBox ('7566).
    +#
    +#    Jeremy Meredith, Mon Jul 14 11:17:29 EDT 2008
    +#    Allow the sliced vector plot to show all vectors (even ones not from
    +#    from original cells/nodes) to match the old behavior.
    +#
    +#    Kathleen Bonnell, Wed Jul 15 10:22:54 PDT 2009
    +#    Changed some zone picks to Node picks for PickPointMeshes, should yield
    +#    same results.  Added Subset plot test for PickPointMeshes.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Wed Mar  7 19:33:48 PST 2012
    +#    'displayXXX' attributes have been changed to 'showXXX'.
    +#
    +#    Kathleen Biagas, Thu Mar  8 13:52:37 PST 2012
    +#    Added test for picking scatter plots.
    +#
    +#    Matt Larsen, Mon Sep 19 10:20:11 PDT 2016
    +#    Added a test for zone pick highlighting
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    For PickSubset, change plot var to 'domains' as Subset plots shouldn't
    +#    work for materials.  Change pick var to 'mat1' to preserve baselines.
    +#
    +#    Matt Larsen, Wed Sep 6 16:23:12 PST 2017
    +#    Adding tests for pick by label for mili files.
    +#
    +#    Alister Maguire, Tue Sep 26 14:23:09 PDT 2017
    +#    Added test for pick highlight color.
    +#
    +#    Alister Maguire, Mon Oct 23 10:34:28 PDT 2017
    +#    Added tests for removing a list of picks.
    +#
    +#    Alister Maguire, Mon Oct 30 15:54:30 PDT 2017
    +#    Added test for removing a list of labeled picks.
    +#
    +#    Matt Larsen, Wed Feb 28 08:24:31 PDT 2018
    +#    Turning off all anotations for pick highlight tests
    +#
    +#    Alister Maguire, Thu Aug 16 10:18:56 PDT 2018
    +#    Added a test for swivel highlight.
    +#
    +#    Alister Maguire, Mon Aug 20 12:45:25 PDT 2018
    +#    Added a test for node highlight.
    +#
    +#    Alister Maguire, Tue May 21 13:10:05 PDT 2019
    +#    Updated tests that use mili to adhere to the plugin changes.
    +#
    +#    Alister Maguire, Thu Sep 12 15:54:36 PDT 2019
    +#    Add test for highlighting a zone picked by global id.
    +#
    +#    Alister Maguire, Thu Jan  2 15:16:53 PST 2020
    +#    Added test for translated zone highlights.
    +#
    +#    Mark C. Miller, Mon Jan 11 10:38:03 PST 2021
    +#    Replace Assert-style with TestValue-style tests
    +#
    +#    Alister Maguire, Fri Jul 16 07:27:44 PDT 2021
    +#    Added a test for Picking an expression variable.
    +#
    +#    Kathleen Biagas, Wed Feb 16 09:15:45 PST 2022
    +#    Replace use of meshatts 'foregroundFlag' with meshColorSource.
    +#
    +# ----------------------------------------------------------------------------
    +from __future__ import print_function
    +
    +
    +RequiredDatabasePlugin(("Boxlib2D","SAMRAI","Mili"))
    +defaultAtts = GetPickAttributes()
    +
    +def Pick3DTo2D():
    +    # Testing pick on 3d plots projected to 2d via Slice and Cone operators
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    AddOperator("Slice")
    +    slice = SliceAttributes()
    +    slice.SetOriginPoint(0, 0, 0)
    +    slice.SetNormal(1, 0, 0)
    +    slice.SetUpAxis(0, 1, 0)
    +    slice.project2d = 1
    +    SetOperatorOptions(slice)
    +    DrawPlots()
    +
    +    # Create the variable list.
    +    vars = ("default")
    +
    +    # Do some picks.
    +    Pick(128, 107, vars)
    +    s = GetPickOutput()
    +    Pick(200, 207, vars)
    +    s = s + GetPickOutput()
    +
    +    # Test new pick methods
    +    PickByZone(554, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(945, vars)
    +    s = s + GetPickOutput()
    +
    +    # Turn off some materials, and verify we get
    +    #  same results
    +    TurnMaterialsOff("1")
    +    Pick(128, 107, vars)
    +    s = s + GetPickOutput()
    +    Pick(200, 207, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(554, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(945, vars)
    +    s = s + GetPickOutput()
    +
    +    TurnMaterialsOn("1")
    +    RemoveLastOperator()
    +
    +    AddOperator("Cone")
    +    DrawPlots()
    +    ResetView()
    +    Pick(165, 170, vars)
    +    s  = s + GetPickOutput()
    +    Pick(137, 100, vars)
    +    s = s + GetPickOutput()
    +
    +    # Test new Pick methods.
    +    PickByZone(503, vars)
    +    s  = s + GetPickOutput()
    +    PickByZone(596, vars)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    # VisIt00005279
    +    #  When sliced along boundary between zones,
    +    #  pick with all materials returns different output than
    +    #  pick with some materials turned off.
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    AddOperator("Slice")
    +    slice = SliceAttributes()
    +    slice.axisType = slice.XAxis
    +    #set the slice plane on a boundary between zones
    +    slice.originIntercept = 0.2
    +    slice.project2d = 1
    +    SetOperatorOptions(slice)
    +    DrawPlots()
    +
    +    s = s + "\nPick with all materials turned on:\n"
    +    Pick(80, 60)
    +    s = s + GetPickOutput()
    +    PickByZone(226, 1)
    +    s = s + GetPickOutput()
    +    Pick(185, 160)
    +    s = s + GetPickOutput()
    +    PickByZone(606, 19)
    +    s = s + GetPickOutput()
    +    NodePick(80, 60)
    +    s = s + GetPickOutput()
    +    PickByNode(402, 1)
    +    s = s + GetPickOutput()
    +    NodePick(185, 160)
    +    s = s + GetPickOutput()
    +    PickByNode(853, 19)
    +    s = s + GetPickOutput()
    +    TurnMaterialsOff("2")
    +    s = s + "\nPick with material 2 turned off:\n"
    +    Pick(80, 60)
    +    s = s + GetPickOutput()
    +    PickByZone(226, 1)
    +    s = s + GetPickOutput()
    +    Pick(185, 160)
    +    s = s + GetPickOutput()
    +    PickByZone(606, 19)
    +    s = s + GetPickOutput()
    +    NodePick(80, 60)
    +    s = s + GetPickOutput()
    +    PickByNode(402, 1)
    +    s = s + GetPickOutput()
    +    NodePick(185, 160)
    +    s = s + GetPickOutput()
    +    PickByNode(853, 19)
    +    s = s + GetPickOutput()
    +    TurnMaterialsOn("2")
    +    TestText("Pick3DTo2D", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def Pick2D():
    +    OpenDatabase(silo_data_path("ucd2d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    ResetView()
    +    vars = ("d", "p", "u")
    +    Pick(170, 65, vars)
    +    s = GetPickOutput()
    +    Pick(140, 161, vars)
    +    s = s + GetPickOutput()
    +
    +    # Test new pick method
    +    PickByZone(5, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(4, vars)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    # Test PickByZone and PickByNode on data with ghost zones.
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    ResetView()
    +
    +    v = GetView2D()
    +    v.windowCoords = (-0.70073, 0.9927, 1.75365, 2.63085)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    SetView2D(v)
    +
    +    vars = ("default")
    +    Pick(177, 90, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(13)
    +    s = s + GetPickOutput()
    +    NodePick(177, 90, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(13)
    +    s = s + GetPickOutput()
    +
    +    ResetView()
    +
    +    Pick(164, 136)
    +    s = s + GetPickOutput()
    +    PickByZone(716)
    +    s = s + GetPickOutput()
    +
    +    NodePick(164, 136)
    +    s = s + GetPickOutput()
    +    PickByNode(744)
    +    s = s + GetPickOutput()
    +
    +    Pick(113, 84)
    +    s = s + GetPickOutput()
    +    PickByZone(360)
    +    s = s + GetPickOutput()
    +
    +    NodePick(113, 84)
    +    s = s + GetPickOutput()
    +    PickByNode(374)
    +    s = s + GetPickOutput()
    +
    +    Pick(218, 65)
    +    s = s + GetPickOutput()
    +    PickByZone(81)
    +    s = s + GetPickOutput()
    +
    +    NodePick(218, 65)
    +    s = s + GetPickOutput()
    +    PickByNode(85)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    # bug '5152, ascii data not reported as such.
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    AddPlot("Pseudocolor", "ascii")
    +    DrawPlots()
    +
    +    ResetView()
    +
    +    Pick(104, 224)
    +    s = s + GetPickOutput()
    +    Pick(155, 140)
    +    s = s + GetPickOutput()
    +    Pick(234, 278)
    +    s = s + GetPickOutput()
    +    Pick(151, 266)
    +    s = s + GetPickOutput()
    +    Pick(187, 106)
    +    s = s + GetPickOutput()
    +
    +    NodePick(104, 224)
    +    s = s + GetPickOutput()
    +    NodePick(155, 140)
    +    s = s + GetPickOutput()
    +    NodePick(234, 278)
    +    s = s + GetPickOutput()
    +    NodePick(151, 266)
    +    s = s + GetPickOutput()
    +    NodePick(187, 106)
    +    s = s + GetPickOutput()
    +
    +    TestText("Pick2D", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickOnionPeel():
    +    # Testing pick on 3d plots with OnionPeel operator
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    AddOperator("OnionPeel")
    +    op = OnionPeelAttributes()
    +    op.adjacencyType = 0
    +    op.categoryName = "domains"
    +    op.subsetName = "domain4"
    +    op.index = 15
    +    op.requestedLayer = 0
    +    SetOperatorOptions(op)
    +
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0.0199972, -0.0176736, 0.999644)
    +    v.focus = (1.05702, 2.19945, 3.66667)
    +    v.viewUp = (-0.0156863, 0.999715, 0.0179886)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.794807
    +    v.nearPlane = -7.9865
    +    v.farPlane = 7.9865
    +    v.perspective = 0
    +    SetView3D(v)
    +
    +    #From defect VisIt00002762, pick shouldn't report repeated vars
    +    vars = ("default", "d", "p", "u", "p", "v")
    +    pa = GetPickAttributes()
    +    pa.showNodePhysicalCoords = 1
    +    SetPickAttributes(pa)
    +    Pick(271, 64, vars)
    +    s = GetPickOutput()
    +    Pick(282, 53, vars)
    +    s = s + GetPickOutput()
    +
    +    PickByZone(15, 4, vars)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickOnionPeel", s)
    +    pa.showNodePhysicalCoords = 0
    +    SetPickAttributes(pa)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickSubset():
    +    #Testing Pick's accuracy on a sil-restricted plot.
    +    #All the picks in this test should return zone 30.
    +    #From defect VisIt00003348
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Subset", "domains")
    +    TurnMaterialsOff()
    +    TurnMaterialsOn("1")
    +
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.997376, 0.0429928, 0.058241)
    +    v.focus = (-0.0906961, 0.0532744, -1.5925)
    +    v.viewUp = (0.0448435, 0.998518, 0.0308499)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.598088
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.perspective = 0
    +    SetView3D(v)
    +
    +    vars = ("mat1")
    +    Pick(173, 111, vars)
    +    s = GetPickOutput()
    +    Pick(191, 116, vars)
    +    s = s + GetPickOutput()
    +    Pick(294, 125, vars)
    +    s = s + GetPickOutput()
    +    Pick(156, 128, vars)
    +    s = s + GetPickOutput()
    +    Pick(147, 112, vars)
    +    s = s + GetPickOutput()
    +    TestText("PickSubset", s)
    +    TurnMaterialsOn()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +
    +def PickMatFracsThreshold():
    +    # Testing pick on 3d plot with Threshold operator, returning
    +    # material var (mat fracs) and vector var.
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Pseudocolor", "p")
    +    thresh = ThresholdAttributes()
    +    thresh.upperBounds = (37.0)
    +    thresh.lowerBounds = (10.0)
    +    SetDefaultOperatorOptions(thresh)
    +    AddOperator("Threshold")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, 1)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.181485
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.perspective = 0
    +    SetView3D(v)
    +
    +    pa = GetPickAttributes()
    +    pa.showNodeDomainLogicalCoords = 1
    +    pa.showZoneDomainLogicalCoords = 1
    +    SetPickAttributes(pa)
    +    vars = ("mat1", "vel")
    +    Pick(151, 172, vars)
    +    s = GetPickOutput()
    +    Pick(211, 185, vars)
    +    s = s + GetPickOutput()
    +    Pick(78, 153, vars)
    +    s = s + GetPickOutput()
    +    Pick(150, 124, vars)
    +    s = s + GetPickOutput()
    +
    +    #Test new pick method
    +    PickByZone(21045, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(18647, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(19812, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(20954, vars)
    +    s = s + GetPickOutput()
    +
    +    pa.showNodeDomainLogicalCoords = 0
    +    pa.showZoneDomainLogicalCoords = 0
    +    SetPickAttributes(pa)
    +
    +    # Add a few with only vel as the var
    +    # From bug: VisIt00004103
    +    RemoveLastOperator()
    +    vars = ("vel")
    +    Pick(78, 153, vars)
    +    s = s + GetPickOutput()
    +    Pick(150, 124, vars)
    +    s = s + GetPickOutput()
    +
    +    #Test new pick method
    +    PickByZone(35412, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(35354, vars)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickMatFracsThreshold", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickReflect():
    +    # Testing pick on plot with Reflect operator.
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    AddOperator("Reflect")
    +    DrawPlots()
    +    ResetView()
    +    vars = ("default")
    +    Pick(149, 206, vars)
    +    s = GetPickOutput()
    +    Pick(149, 94, vars)
    +    s = s + GetPickOutput()
    +    NodePick(coord=(0, 3, 0))
    +    s = s + GetPickOutput()
    +    NodePick(coord=(0, -3, 0))
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    # Try a rectilinear grid
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    AddPlot("Subset", "Mesh")
    +    AddOperator("Reflect")
    +    DrawPlots()
    +    ResetView()
    +
    +    Pick(coord=(-5, 5, 10))
    +    s = s + GetPickOutput()
    +    NodePick(coord=(-5, 5, 10))
    +    s = s + GetPickOutput()
    +    Pick(coord=(-5, -25, 10))
    +    s = s + GetPickOutput()
    +    NodePick(coord=(-5, -25, 10))
    +    s = s + GetPickOutput()
    +
    +
    +    TestText("PickReflect", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +
    +def PickFilledBoundary():
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    AddPlot("FilledBoundary", "mat1")
    +
    +    AddOperator("Slice")
    +    s= SliceAttributes()
    +    s.originIntercept = 2.89833
    +    s.originType = s.Intercept
    +    s.normal = (0, 1, 0)
    +    s.upAxis = (1, 0, 0)
    +    s.axisType = s.YAxis
    +    s.flip = 1
    +    s.project2d = 1
    +    SetOperatorOptions(s)
    +
    +    v = GetView2D()
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.windowCoords = (7.07307, 8.30598, 2.26402, 2.88047)
    +    SetView2D(v)
    +    DrawPlots()
    +
    +    vars = ("default")
    +    Pick(153, 69, vars)
    +    p = GetPickOutput()
    +    Pick(222, 56, vars)
    +    p += GetPickOutput()
    +    Pick(118, 77, vars)
    +    p += GetPickOutput()
    +    Pick(141, 74, vars)
    +    p += GetPickOutput()
    +    Pick(180, 68, vars)
    +    p += GetPickOutput()
    +    Pick(224, 75, vars)
    +    p += GetPickOutput()
    +    Pick(198, 56, vars)
    +    p += GetPickOutput()
    +    Pick(113, 70, vars)
    +    p += GetPickOutput()
    +    Pick(119, 57, vars)
    +    p += GetPickOutput()
    +    Pick(157, 66, vars)
    +    p += GetPickOutput()
    +    Pick(199, 66, vars)
    +    p += GetPickOutput()
    +    Pick(227, 79, vars)
    +    p += GetPickOutput()
    +
    +    # Test new pick method
    +    PickByZone(320, 17, vars)
    +    p += GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    # bug 6217 -- NodePick on Sliced FB returning wrong coords.
    +    # will test with Mesh, OnionPeeled Mesh and FB to verify
    +    # they all return the same nodes/zones and coords.
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    AddPlot("Mesh", "mesh1")
    +    m = MeshAttributes()
    +    m.meshColor = (255, 255, 0, 255)
    +    m.meshColorSource = m.MeshCustom
    +    m.lineWidth = 2
    +    SetPlotOptions(m)
    +    AddOperator("OnionPeel", 0)
    +    op = OnionPeelAttributes()
    +    op.index = 679
    +    SetOperatorOptions(op)
    +
    +    AddPlot("FilledBoundary","mat1")
    +    AddOperator("Slice", 1)
    +    DrawPlots()
    +    ResetView()
    +
    +    SetActivePlots(0)
    +    Pick(247, 188, vars)
    +    p = p + GetPickOutput()
    +    NodePick(247, 188, vars)
    +    p = p + GetPickOutput()
    +
    +    SetActivePlots(1)
    +    Pick(247, 188, vars)
    +    p = p + GetPickOutput()
    +    NodePick(247, 188, vars)
    +    p = p + GetPickOutput()
    +    SetActivePlots(2)
    +    Pick(247, 188, vars)
    +    p = p + GetPickOutput()
    +    NodePick(247, 188, vars)
    +    p = p + GetPickOutput()
    +    TestText("PickFilledBoundary", p)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickMultiBlock():
    +    # Testing pick on 3d multi-domain plots
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.perspective = 1
    +    SetView3D(v)
    +
    +    vars = ("default", "d", "p")
    +    Pick(109, 113, vars)
    +    s = GetPickOutput()
    +    Pick(74, 114, vars)
    +    s = s + GetPickOutput()
    +    Pick(192, 114, vars)
    +    s = s + GetPickOutput()
    +    Pick(230, 114, vars)
    +    s = s + GetPickOutput()
    +    Pick(155, 148, vars)
    +    s = s + GetPickOutput()
    +    Pick(153, 185, vars)
    +    s = s + GetPickOutput()
    +    Pick(106, 149, vars)
    +    s = s + GetPickOutput()
    +    Pick(196, 144, vars)
    +    s = s + GetPickOutput()
    +    Pick(119, 157, vars)
    +    s = s + GetPickOutput()
    +    Pick(180, 160, vars)
    +    s = s + GetPickOutput()
    +    Pick(97, 130, vars)
    +    s = s + GetPickOutput()
    +    Pick(212, 129, vars)
    +    s = s + GetPickOutput()
    +
    +
    +    # Test new pick method
    +    PickByZone(15, 34, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(15, 36, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(75, 25, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(83, 27, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(15, 28, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(4, 30, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(94, 35, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(15, 26, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(25, 32, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(64, 29, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(56, 35, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(51, 26, vars)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    TurnMaterialsOn()
    +    DrawPlots()
    +    ResetView()
    +    vars = ("default", "u", "d", "p")
    +    Pick(61, 61, vars)
    +    s = s + GetPickOutput()
    +    Pick(61, 188, vars)
    +    s = s + GetPickOutput()
    +    Pick(79, 233, vars)
    +    s = s + GetPickOutput()
    +    Pick(80, 64, vars)
    +    s = s + GetPickOutput()
    +    Pick(99, 120, vars)
    +    s = s + GetPickOutput()
    +    Pick(115, 236, vars)
    +    s = s + GetPickOutput()
    +    Pick(154, 194, vars)
    +    s = s + GetPickOutput()
    +    Pick(155, 150, vars)
    +    s = s + GetPickOutput()
    +    Pick(174, 72, vars)
    +    s = s + GetPickOutput()
    +    Pick(192, 115, vars)
    +    s = s + GetPickOutput()
    +    Pick(229, 235, vars)
    +    s = s + GetPickOutput()
    +    Pick(236, 59, vars)
    +    s = s + GetPickOutput()
    +    Pick(246, 157, vars)
    +    s = s + GetPickOutput()
    +
    +    # Test new pick method
    +    PickByZone(921, 25, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(971, 31, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(964, 34, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(934, 25, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(947, 28, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(969, 34, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(985, 32, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(995, 29, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(948, 26, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(931, 30, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(966, 36, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(927, 27, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(919, 33, vars)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +    AddPlot("Pseudocolor", "dist")
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal= (1, 0, 0)
    +    SetView3D(v)
    +
    +    vars = ("default")
    +    Pick(250, 64, vars)
    +    s = s + GetPickOutput()
    +    Pick(149, 135, vars)
    +    s = s + GetPickOutput()
    +    Pick(227, 72, vars)
    +    s = s + GetPickOutput()
    +    Pick(65, 65, vars)
    +    s = s + GetPickOutput()
    +    Pick(67, 228, vars)
    +    s = s + GetPickOutput()
    +
    +    # Test new pick method
    +    PickByZone(13, 3, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(1, 15, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(118, 3, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(258, 21, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(279, 27, vars)
    +    s = s + GetPickOutput()
    +
    +    #Bug '4571, pick crashing when bad vars specified
    +    vars = ("aspect")
    +    Pick(67, 228, vars)
    +    s = s + GetPickOutput()
    +    vars = ("mesh_quality/aspect", "spurious")
    +    Pick(67, 228, vars)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickMultiBlock", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickSurface():
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Surface", "d")
    +    AddOperator("Slice")
    +    slice = SliceAttributes()
    +    slice.originIntercept = 0.5
    +    slice.project2d = 1
    +    slice.axisType = slice.YAxis
    +    SetOperatorOptions(slice)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (0, 1, 0)
    +    v.viewUp = (0, 0, -1)
    +    SetView3D(v)
    +
    +    pa = GetPickAttributes()
    +    pa.variables = ("default")
    +    SetPickAttributes(pa)
    +
    +    Pick(141, 178)
    +    s = GetPickOutput()
    +    NodePick(141, 178)
    +    s = s + GetPickOutput()
    +    Pick(194, 144)
    +    s = s + GetPickOutput()
    +    NodePick(194, 144)
    +    s = s + GetPickOutput()
    +    Pick(149, 197)
    +    s = s + GetPickOutput()
    +    NodePick(149, 197)
    +    s = s + GetPickOutput()
    +    Pick(64, 102)
    +    s = s + GetPickOutput()
    +    NodePick(64, 102)
    +    s = s + GetPickOutput()
    +    Pick(138, 126)
    +    s = s + GetPickOutput()
    +    NodePick(138, 126)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Surface", "p")
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (0, 1, 0)
    +    v.viewUp = (0, 0, -1)
    +    SetView3D(v)
    +
    +    Pick(103, 227)
    +    s = s + GetPickOutput()
    +    NodePick(103, 227)
    +    s = s + GetPickOutput()
    +    Pick(171, 86)
    +    s = s + GetPickOutput()
    +    NodePick(171, 86)
    +    s = s + GetPickOutput()
    +    Pick(129, 63)
    +    s = s + GetPickOutput()
    +    NodePick(129, 63)
    +    s = s + GetPickOutput()
    +    Pick(153, 177)
    +    s = s + GetPickOutput()
    +    NodePick(153, 177)
    +    s = s + GetPickOutput()
    +    Pick(188, 167)
    +    s = s + GetPickOutput()
    +    NodePick(188, 167)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("ucd2d.silo"))
    +
    +    AddPlot("Surface", "d")
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (0.329152, -0.014518, -0.944165)
    +    v.focus = (2, 2, 2)
    +    v.viewUp = (-0.944025, -0.0281555, -0.32867)
    +    SetView3D(v)
    +
    +    s = s + "\nThe next three results should be the same.\n"
    +    Pick(118, 112)
    +    s = s + GetPickOutput()
    +    PickByZone(3)
    +    s = s + GetPickOutput()
    +    Pick((2.74917, 2.79753, 2.82784))
    +
    +    s = s + GetPickOutput()
    +
    +    s = s + "\nThe next three results should be the same.\n"
    +    NodePick(118, 112)
    +    s = s + GetPickOutput()
    +    PickByNode(11)
    +    s = s + GetPickOutput()
    +    NodePick((2.5, 2.5, 1.41421))
    +    s = s + GetPickOutput()
    +
    +    s = s + "\nThe next three results should be the same.\n"
    +    NodePick(139, 73)
    +    s = s + GetPickOutput()
    +    PickByNode(4)
    +    s = s + GetPickOutput()
    +    NodePick((4.0, 2.0, 4.0))
    +    s = s + GetPickOutput()
    +
    +    TestText("PickSurface", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickBigSilMat():
    +    OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +    AddPlot("Pseudocolor", "dist")
    +    DrawPlots()
    +    ResetView()
    +    pa = GetPickAttributes()
    +    pa.showNodePhysicalCoords = 1
    +    SetPickAttributes(pa)
    +    vars = "mat"
    +    Pick(87, 215, vars)
    +    s = GetPickOutput()
    +    NodePick(87, 215, vars)
    +    s = s + GetPickOutput()
    +    Pick(149, 146, vars)
    +    s = s + GetPickOutput()
    +    NodePick(149, 146, vars)
    +    s = s + GetPickOutput()
    +    Pick(89, 54, vars)
    +    s = s + GetPickOutput()
    +    NodePick(89, 54, vars)
    +    s = s + GetPickOutput()
    +    Pick(217, 74, vars)
    +    s = s + GetPickOutput()
    +    NodePick(217, 74, vars)
    +    s = s + GetPickOutput()
    +    Pick(215, 233, vars)
    +    s = s + GetPickOutput()
    +    NodePick(215, 233, vars)
    +    s = s + GetPickOutput()
    +    Pick(186, 193, vars)
    +    s = s + GetPickOutput()
    +    NodePick(186, 193, vars)
    +    s = s + GetPickOutput()
    +    Pick(190, 106, vars)
    +    s = s + GetPickOutput()
    +    NodePick(190, 106, vars)
    +    s = s + GetPickOutput()
    +    Pick(117, 173, vars)
    +    s = s + GetPickOutput()
    +    NodePick(117, 173, vars)
    +    s = s + GetPickOutput()
    +    Pick(98, 86, vars)
    +    s = s + GetPickOutput()
    +    NodePick(98, 86, vars)
    +    s = s + GetPickOutput()
    +    Pick(185, 116, vars)
    +    s = s + GetPickOutput()
    +    NodePick(185, 116, vars)
    +    s = s + GetPickOutput()
    +
    +    # Test new pick methods
    +    PickByZone(319, 25, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(476, 25, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(318, 23, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(475, 23, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(311, 21, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(475, 21, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(332, 27, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(491, 27, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(294, 27, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(456, 27, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(329, 21, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(497, 21, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(329, 23, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(496, 23, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(329, 19, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(485, 19, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(294, 24, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(448, 24, vars)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickBigSilMat", s)
    +    DeleteAllPlots()
    +    pa.showNodePhysicalCoords = 0
    +    SetPickAttributes(pa)
    +    ResetPickLetter()
    +
    +def PickOnionPeel2():
    +    #From defect VisIt00003981, onionpeel and window ACTUAL_EXTENTS
    +    #pick not working
    +    print(tests_path("queries","pickonionpeel.session"), 0,silo_data_path("curv3d.silo"))
    +    RestoreSessionWithDifferentSources(tests_path("queries","pickonionpeel.session"), 0,
    +                                       silo_data_path("curv3d.silo"))
    +    vars = "default"
    +    Pick(196, 194, vars)
    +    s = GetPickOutput()
    +    Pick(59, 73, vars)
    +    s = s + GetPickOutput()
    +    Pick(128, 111, vars)
    +    s = s + GetPickOutput()
    +    Pick(50, 90, vars)
    +    s = s + GetPickOutput()
    +    Pick(275, 203, vars)
    +    s = s + GetPickOutput()
    +    Pick(277, 225, vars)
    +    s = s + GetPickOutput()
    +    Pick(52, 109, vars)
    +    s = s + GetPickOutput()
    +
    +    op = OnionPeelAttributes()
    +    op.adjacencyType = op.Face
    +    op.requestedLayer = 1
    +    op.index = 1
    +    SetOperatorOptions(op)
    +
    +    Pick(52, 105, vars)
    +    s = s + GetPickOutput()
    +    Pick(67, 65, vars)
    +    s = s + GetPickOutput()
    +    Pick(51, 86, vars)
    +    s = s + GetPickOutput()
    +    Pick(265, 210, vars)
    +    s = s + GetPickOutput()
    +    Pick(172, 165, vars)
    +    s = s + GetPickOutput()
    +
    +    op.index = 317
    +    op.requestedLayer = 0
    +    SetOperatorOptions(op)
    +
    +    Pick(76, 70, vars)
    +    s = s + GetPickOutput()
    +    Pick(37, 120, vars)
    +    s = s + GetPickOutput()
    +    Pick(119, 174, vars)
    +    s = s + GetPickOutput()
    +    Pick(273, 188, vars)
    +    s = s + GetPickOutput()
    +
    +    op.adjacencyType = op.Node
    +    op.requestedLayer = 3
    +    SetOperatorOptions(op)
    +
    +    Pick(96, 72, vars)
    +    s = s + GetPickOutput()
    +    Pick(27, 144, vars)
    +    s = s + GetPickOutput()
    +    Pick(115, 102, vars)
    +    s = s + GetPickOutput()
    +    Pick(134, 140, vars)
    +    s = s + GetPickOutput()
    +    Pick(288, 185, vars)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickOnionPeel2", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickSpecMix():
    +    #VisIt '3864
    +    OpenDatabase(silo_data_path("specmix_quad.silo"))
    +
    +    AddPlot("Pseudocolor", "Species")
    +    DrawPlots()
    +
    +    v = GetView2D()
    +    v.windowCoords = (0, 1, 0, 1)
    +    SetView2D(v)
    +
    +    vars = ("default")
    +    Pick(69, 137, vars)
    +    s = GetPickOutput()
    +    NodePick(90, 119, vars)
    +    s = s + GetPickOutput()
    +    Pick(139, 142, vars)
    +    s = s + GetPickOutput()
    +    NodePick(170, 126, vars)
    +    s = s + GetPickOutput()
    +    Pick(201, 95, vars)
    +    s = s + GetPickOutput()
    +    Pick(78, 75, vars)
    +    s = s + GetPickOutput()
    +    Pick(256, 169, vars)
    +    s = s + GetPickOutput()
    +
    +    # Test new pick method
    +    PickByZone(233, vars)
    +    s = s +GetPickOutput()
    +    PickByNode(266, vars)
    +    s = s +GetPickOutput()
    +
    +    silr = SILRestriction()
    +    onoff = 0
    +    for sets in silr.SetsInCategory('Species'):
    +        if(onoff == 0):
    +            silr.TurnOffSet(sets)
    +            onoff = 1
    +        else:
    +            onoff = 0
    +    SetPlotSILRestriction(silr)
    +
    +    NodePick(140, 197, vars)
    +    s = s + GetPickOutput()
    +    Pick(249, 112, vars)
    +    s = s + GetPickOutput()
    +    NodePick(125, 137, vars)
    +    s = s + GetPickOutput()
    +    Pick(191, 136, vars)
    +    s = s + GetPickOutput()
    +    vars = ("d", "Species")
    +    NodePick(204, 135, vars)
    +    s = s + GetPickOutput()
    +    Pick(138, 118, vars)
    +    s = s + GetPickOutput()
    +    NodePick(104, 139, vars)
    +    s = s + GetPickOutput()
    +    Pick(94, 151, vars)
    +    s = s + GetPickOutput()
    +    NodePick(182, 99, vars)
    +    s = s + GetPickOutput()
    +    # now test with 'd' as the active plot variable, should
    +    # get the same results.
    +    ChangeActivePlotsVar("d")
    +    NodePick(204, 135, vars)
    +    s = s + GetPickOutput()
    +    Pick(138, 118, vars)
    +    s = s + GetPickOutput()
    +    NodePick(104, 139, vars)
    +    s = s + GetPickOutput()
    +    Pick(94, 151, vars)
    +    s = s + GetPickOutput()
    +
    +    NodePick(182, 99, vars)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickSpecMix", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickCurve():
    +    OpenDatabase(data_path("curve_test_data/curve.visit"))
    +
    +    AddPlot("Curve", "parabolic")
    +    SetTimeSliderState(72)
    +    DrawPlots()
    +
    +    v = GetViewCurve()
    +    v.rangeCoords = (0, 1)
    +    SetViewCurve(v)
    +
    +    pa = GetPickAttributes()
    +    pa.variables = ("default")
    +    SetPickAttributes(pa)
    +
    +    Pick(72, 53)
    +    p = GetPickOutput()
    +    Pick(156, 22)
    +    p = p + GetPickOutput()
    +    Pick(15, 128)
    +    p = p + GetPickOutput()
    +    Pick(212, 200)
    +    p = p + GetPickOutput()
    +    Pick((0.2, 0.7))
    +    p = p + GetPickOutput()
    +    Pick((0.8, 0.35))
    +    p = p + GetPickOutput()
    +    Pick((0.6, 0.6))
    +    p = p + GetPickOutput()
    +    Pick((0.3, 0.5))
    +    p = p + GetPickOutput()
    +
    +    TestText("PickCurve", p)
    +    ResetPickLetter()
    +    DeleteAllPlots()
    +
    +def PickMultiWindow():
    +    OpenDatabase(silo_data_path("wave*.silo database"))
    +
    +    AddPlot("FilledBoundary", "Material")
    +    SetTimeSliderState(31)
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0, -1, 0)
    +    v.viewUp = (0, 0, 1)
    +    SetView3D(v)
    +
    +    CloneWindow()
    +    SetTimeSliderState(64)
    +    DrawPlots()
    +
    +    pt1a = (7.20585, 0.099664, 2.5)
    +    pt1b = (5.867554, 0.264801,  3.566963)
    +
    +    pt2a = (7.20585, 0.099664, 2.378386)
    +    pt2b = (5.867554, 0.039652,  3.566963)
    +
    +
    +    # Same DB, same plot, same var, different ts
    +    SetActiveWindow(1)
    +    Pick(pt1a)
    +    s = GetPickOutput()
    +
    +    SetActiveWindow(2)
    +    Pick(pt2a)
    +    s = s + GetPickOutput()
    +
    +    SetActiveWindow(1)
    +    Pick(pt1b)
    +    s = s + GetPickOutput()
    +
    +    SetActiveWindow(2)
    +    Pick(pt2b)
    +    s = s + GetPickOutput()
    +
    +    # Same DB, same plot, different var, different ts
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "v")
    +    DrawPlots()
    +
    +    Pick(pt1a)
    +    s = s + GetPickOutput()
    +    Pick(pt1b)
    +    s = s + GetPickOutput()
    +
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +
    +    Pick(pt2a)
    +    s = s + GetPickOutput()
    +    Pick(pt2b)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickMultiWindow", s)
    +    ResetPickLetter()
    +
    +    # delete window 2
    +    DeleteWindow()
    +    # remove plots from window 1
    +    DeleteAllPlots()
    +
    +#
    +# Sets up a couple test cases that test how pick interacts with the engine
    +# being gone.
    +#
    +def PickBadEngineSetup(testName, GetRidOfEngineCallback):
    +    OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.423782, 0.331476, 0.842931)
    +    v.focus = (0, 2.5, 15)
    +    v.viewUp = (0.111716, 0.942652, -0.314525)
    +    v.viewAngle = 30
    +    v.parallelScale = 16.0078
    +    v.nearPlane = -32.0156
    +    v.farPlane = 32.0156
    +    v.imagePan = (-0.0549008, 0.0570848)
    +    v.imageZoom = 1.35304
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +
    +    ptA = (0.115986, 4.290420, 29.9)
    +    Pick(ptA)
    +    s = ""
    +    s = s + GetPickOutput()
    +    ptB = (0.040697, 2.250070, 29.9)
    +    Pick(ptB)
    +    s = s + GetPickOutput()
    +
    +    # Get rid of the compute engine running on localhost.
    +    s = s + GetRidOfEngineCallback()
    +
    +    # Create plots in a new window before returning to window 1 to
    +    # pick again. This will force the network ids in window 1 to be
    +    # invalid in case they do not get reset. (But they do get reset now)
    +    AddWindow()
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    SetActiveWindow(1)
    +
    +    # Resume picking in window 1 now that there are networks in window 2.
    +    ptC = (0.15, 3.250070, 26.9)
    +    Pick(ptC)
    +    s = s + GetPickOutput()
    +    ptD = (0.19, 3.75, 26.9)
    +    Pick(ptD)
    +    s = s + GetPickOutput()
    +
    +    TestText(testName, s)
    +    ResetPickLetter()
    +    DeleteAllPlots()
    +    # Delete window 2.
    +    SetActiveWindow(2)
    +    DeleteWindow()
    +
    +#
    +# Tests that pick works after an engine has been closed by the user.
    +#
    +def PickAfterEngineClosed():
    +    def CloseCB():
    +        CloseComputeEngine("localhost")
    +        return "***\n*** Closed engine on localhost.\n***\n"
    +    PickBadEngineSetup("PickAfterEngineClose", CloseCB)
    +
    +#
    +# Tests that pick works after an engine has crashed.
    +#
    +def PickAfterEngineCrashed():
    +    #TODO: THIS WONT WORK ON WINDOWs
    +    def CrashCB():
    +        try:
    +            # Read the output of ps
    +            f = os.popen("ps")
    +            lines = f.readlines()
    +            f.close()
    +
    +            # Get a list of engine pids from the ps output.
    +            pids = []
    +            for line in lines:
    +                if string.find(line, "engine_") == -1:
    +                    continue
    +                tokens = string.split(line, " ")
    +                lv = []
    +                for t in tokens:
    +                    if t != "":
    +                        lv = lv + [t]
    +                if len(lv) > 0:
    +                   pids = pids + [lv[0]]
    +
    +            # Kill all of the engines in the pid list.
    +            if len(pids) < 1:
    +                print("Killing all engines because we could not get a list of pids", file=sys.stderr)
    +                # TODO_WINDOWS THIS WONT WORK ON WINDOWS
    +                os.system("killall engine_ser")
    +                os.system("killall engine_par")
    +            else:
    +                for pid in pids:
    +                    print("Killing engine %s" % pid, file=sys.stderr)
    +                    # TODO_WINDOWS THIS WONT WORK ON WINDOWS
    +                    os.system("kill -9 %s" % pid)
    +        except:
    +            # There was an error. Just close the engine instead of killing it.
    +            CloseComputeEngine("localhost")
    +        return "***\n*** Killed compute engine(s).\n***\n"
    +    PickBadEngineSetup("PickAfterEngineCrash", CrashCB)
    +
    +def PickBoundary():
    +    # VisIt00004807
    +    # Test Pick on a 2D Boundary plot.
    +
    +    ResetPickAttributes()
    +
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Boundary", "mat1")
    +    DrawPlots()
    +
    +    ResetView()
    +    SetViewExtentsType("original")
    +
    +    Pick(164, 136)
    +    s = GetPickOutput()
    +    PickByZone(482)
    +    s = s + GetPickOutput()
    +
    +    NodePick(164, 136)
    +    s = s + GetPickOutput()
    +    PickByNode(528)
    +    s = s + GetPickOutput()
    +
    +    Pick(113, 84)
    +    s = s + GetPickOutput()
    +    PickByZone(230)
    +    s = s + GetPickOutput()
    +
    +    NodePick(113, 84)
    +    s = s + GetPickOutput()
    +    PickByNode(239)
    +    s = s + GetPickOutput()
    +
    +    Pick(218, 65)
    +    s = s + GetPickOutput()
    +    PickByZone(211)
    +    s = s + GetPickOutput()
    +
    +    NodePick(218, 65)
    +    s = s + GetPickOutput()
    +    PickByNode(220)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +
    +    OpenDatabase(silo_data_path("specmix_quad.silo"))
    +
    +    AddPlot("Boundary", "Material")
    +    DrawPlots()
    +    ResetView()
    +
    +    Pick(107, 131)
    +    s = s + GetPickOutput()
    +    PickByZone(86)
    +    s = s + GetPickOutput()
    +
    +    NodePick(107, 131)
    +    s = s + GetPickOutput()
    +    PickByNode(89)
    +    s = s + GetPickOutput()
    +
    +    Pick(207, 145)
    +    s = s + GetPickOutput()
    +    PickByZone(297)
    +    s = s + GetPickOutput()
    +
    +    NodePick(207, 145)
    +    s = s + GetPickOutput()
    +    PickByNode(333)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("specmix_ucd.silo"))
    +
    +    AddPlot("Boundary", "Material")
    +    DrawPlots()
    +    ResetView()
    +
    +    vars = "p"
    +    Pick(107, 131, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(86, vars)
    +    s = s + GetPickOutput()
    +
    +    NodePick(107, 131, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(89, vars)
    +    s = s + GetPickOutput()
    +
    +    Pick(207, 145, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(297, vars)
    +    s = s + GetPickOutput()
    +
    +    NodePick(207, 145, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(333, vars)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    #Test Sliced Boundary plots
    +    ResetOperatorOptions("Slice")
    +
    +    OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +    AddPlot("Boundary", "mat1")
    +    AddOperator("Slice")
    +
    +    slice = SliceAttributes()
    +    slice.normal = (0, -1, 0)
    +    slice.upAxis = (0, 0, 1)
    +    SetOperatorOptions(slice)
    +
    +    DrawPlots()
    +    ResetView()
    +
    +    Pick(83, 223, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(26670, vars)
    +    s = s + GetPickOutput()
    +
    +    NodePick(83, 223, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(28272, vars)
    +    s = s + GetPickOutput()
    +
    +    Pick(127, 84, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(5399, vars)
    +    s = s + GetPickOutput()
    +
    +    NodePick(127, 84, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(7005, vars)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("sid97.silo"))
    +
    +    AddPlot("Boundary", "mat1")
    +
    +    AddOperator("Slice")
    +
    +    slice = SliceAttributes()
    +    slice.originType = slice.Point
    +    slice.originPoint = (7400, -1300, 1000)
    +    slice.normal  = (0, 1, 0)
    +    slice.project2d = 1
    +    SetOperatorOptions(slice)
    +
    +    DrawPlots()
    +    ResetView()
    +    SetViewExtentsType("actual")
    +
    +    pick = GetPickAttributes()
    +    pick.variables = ("default")
    +    SetPickAttributes(pick)
    +
    +    Pick(128, 140)
    +    s = s + GetPickOutput()
    +    PickByZone(1269)
    +    s = s + GetPickOutput()
    +
    +    NodePick(128, 140)
    +    s = s + GetPickOutput()
    +    PickByNode(1356)
    +    s = s + GetPickOutput()
    +
    +    Pick(120, 89)
    +    s = s + GetPickOutput()
    +    PickByZone(10438)
    +    s = s + GetPickOutput()
    +
    +    NodePick(120, 89)
    +    s = s + GetPickOutput()
    +    PickByNode(12836)
    +    s = s + GetPickOutput()
    +
    +    Pick(154, 50)
    +    s = s + GetPickOutput()
    +    PickByZone(10455)
    +    s = s + GetPickOutput()
    +
    +    NodePick(154, 50)
    +    s = s + GetPickOutput()
    +    PickByNode(12842)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Boundary", "mat1")
    +
    +    AddOperator("Slice")
    +
    +    slice.originType = slice.Intercept
    +    slice.originIntercept = 0.5
    +    slice.normal  = (0, 1, 1)
    +    slice.upAxis  = (0, 1, 0)
    +    slice.project2d = 1
    +    SetOperatorOptions(slice)
    +
    +    DrawPlots()
    +    ResetView()
    +    SetViewExtentsType("original")
    +
    +    Pick(75, 258)
    +    s = s + GetPickOutput()
    +    PickByZone(810)
    +    s = s + GetPickOutput()
    +
    +    NodePick(75, 258)
    +    s = s + GetPickOutput()
    +    PickByNode(869)
    +    s = s + GetPickOutput()
    +
    +    Pick(121, 108)
    +    s = s + GetPickOutput()
    +    PickByZone(18217)
    +    s = s + GetPickOutput()
    +
    +    NodePick(121, 108)
    +    s = s + GetPickOutput()
    +    PickByNode(20561)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickBoundary", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickVectorPlots():
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Vector", "vel")
    +    vector = VectorAttributes()
    +    vector.autoScale = 0
    +    SetPlotOptions(vector)
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, 1)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 2.02836
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +
    +    p = GetPickAttributes()
    +    p.variables = ("default")
    +    SetPickAttributes(p)
    +    Pick(274, 259)
    +    s = GetPickOutput()
    +    Pick(269, 258)
    +    s = s + GetPickOutput()
    +    Pick(86, 37)
    +    s = s + GetPickOutput()
    +    Pick(83, 28)
    +    s = s + GetPickOutput()
    +
    +    AddOperator("Slice")
    +    slice = SliceAttributes()
    +    slice.axisType = slice.ZAxis
    +    SetOperatorOptions(slice)
    +    DrawPlots()
    +
    +    Pick(96, 244)
    +    s = s + GetPickOutput()
    +    Pick(204, 88)
    +    s = s + GetPickOutput()
    +
    +    RemoveLastOperator()
    +
    +    ChangeActivePlotsVar("disp")
    +    vector = VectorAttributes()
    +    vector.autoScale = 0
    +    vector.scale = 1.
    +    vector.origOnly = 0
    +    SetPlotOptions(vector)
    +
    +    v.viewNormal = (-0.8775, 0.112599, 0.46617)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0.120127, 0.992665, -0.0136456)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 2.3515
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +
    +    Pick(119, 87)
    +    s = s + GetPickOutput();
    +    Pick(148, 230)
    +    s = s + GetPickOutput();
    +    Pick(22, 97)
    +    s = s + GetPickOutput();
    +
    +    AddOperator("Slice")
    +    DrawPlots()
    +
    +    Pick(76, 113)
    +    s = s + GetPickOutput();
    +    Pick(244, 67)
    +    s = s + GetPickOutput();
    +    Pick(127, 217)
    +    s = s + GetPickOutput();
    +
    +    DeleteAllPlots()
    +
    +    # VisIt00006296 -- pick of vector expression causes crash
    +    DefineVectorExpression("polarVector", "polar(mesh1)")
    +    DefineVectorExpression("xyzVector", "coord(mesh1)")
    +    AddPlot("Vector", "polarVector")
    +    DrawPlots()
    +    ResetView()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, 1)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (-0.0369757, 0.0171359)
    +    v.imageZoom = 4.66857
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +
    +    Pick(233, 241)
    +    s = s + GetPickOutput()
    +    Pick(226, 30)
    +    s = s + GetPickOutput()
    +
    +    ChangeActivePlotsVar("xyzVector")
    +
    +    v. imagePan = (0.0220781, -0.0509109)
    +    v. imageZoom = 9.89113
    +    SetView3D(v)
    +    Pick(149, 209)
    +    s = s + GetPickOutput()
    +    Pick(214, 6)
    +    s = s + GetPickOutput()
    +
    +
    +    TestText("PickVectorPlot", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickPointMeshes():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "PointVar")
    +    pc = PseudocolorAttributes()
    +    pc.pointSize = 1
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    ResetView()
    +
    +    NodePick(100, 240)
    +    s = GetPickOutput()
    +    Pick(223, 197)
    +    s = s + GetPickOutput()
    +    NodePick(138, 66)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +    AddPlot("Mesh", "PointMesh")
    +    mesh = MeshAttributes()
    +    mesh.pointSize = 1
    +    mesh.pointType = mesh.Box
    +    SetPlotOptions(mesh)
    +    DrawPlots()
    +
    +    NodePick(100, 240)
    +    s = s + GetPickOutput()
    +    Pick(223, 197)
    +    s = s + GetPickOutput()
    +    NodePick(138, 66)
    +    s = s + GetPickOutput()
    +
    +    mesh.pointType = mesh.Point
    +    SetPlotOptions(mesh)
    +
    +    NodePick(100, 240)
    +    s = s + GetPickOutput()
    +    Pick(223, 197)
    +    s = s + GetPickOutput()
    +    NodePick(138, 66)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("multi_point2d.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    m = MeshAttributes()
    +    m.meshColor = (255, 0, 255, 255)
    +    m.meshColorSource = m.MeshCustom
    +    m.pointSize = 0.05
    +    m.pointType = m.Box
    +    SetPlotOptions(m)
    +    DrawPlots()
    +
    +    v = GetView2D()
    +    v.fullFrameActivationMode = v.On
    +    v.windowCoords = (-2.05391, -0.442661, 1.02233, 2.43681)
    +    SetView2D(v)
    +
    +    vars = ("d", "p", "u", "v")
    +
    +    NodePick(122, 72, vars)
    +    s = s + GetPickOutput()
    +    Pick(134, 229, vars)
    +    s = s + GetPickOutput()
    +    NodePick(278, 266, vars)
    +    s = s + GetPickOutput()
    +
    +    m.pointType = mesh.Point
    +    SetPlotOptions(m)
    +
    +    NodePick(122, 72, vars)
    +    s = s + GetPickOutput()
    +    Pick(134, 229, vars)
    +    s = s + GetPickOutput()
    +    NodePick(278, 266, vars)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Subset", "PointMesh")
    +    DrawPlots()
    +    ResetView()
    +
    +    NodePick(100, 240)
    +    s = s+ GetPickOutput()
    +    Pick(223, 197)
    +    s = s + GetPickOutput()
    +    NodePick(138, 66)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickPointMeshes", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickGlobalIds():
    +    OpenDatabase(silo_data_path("global_node.silo"))
    +
    +    AddPlot("Pseudocolor", "dist")
    +    DrawPlots()
    +    ResetView()
    +    p = GetPickAttributes()
    +    p.showGlobalIds = 0
    +    p.variables = ("default")
    +    SetPickAttributes(p)
    +
    +    Pick(82, 225)
    +    s = GetPickOutput()
    +
    +    p.showGlobalIds = 1
    +    SetPickAttributes(p)
    +
    +    Pick(82, 225)
    +    s = s + GetPickOutput()
    +
    +    p.showGlobalIds = 0
    +    SetPickAttributes(p)
    +
    +    NodePick(195, 101)
    +    s = s + GetPickOutput()
    +
    +    p.showGlobalIds = 1
    +    SetPickAttributes(p)
    +
    +    NodePick(195, 101)
    +    s = s + GetPickOutput()
    +
    +    p.showGlobalIds = 0
    +    SetPickAttributes(p)
    +
    +    Pick(175, 162)
    +    s = s + GetPickOutput()
    +    NodePick(175, 162)
    +    s = s + GetPickOutput()
    +
    +    p.showGlobalIds = 1
    +    SetPickAttributes(p)
    +
    +    Pick(175, 162)
    +    s = s + GetPickOutput()
    +    NodePick(175, 162)
    +    s = s + GetPickOutput()
    +
    +    PickByGlobalZone(3250)
    +    s = s + GetPickOutput()
    +    PickByGlobalZone(237394)
    +    s = s + GetPickOutput()
    +    PickByGlobalNode(3869)
    +    s = s + GetPickOutput()
    +    PickByGlobalNode(246827)
    +    s = s + GetPickOutput()
    +
    +    # bug '6097 -- global ids not displayed correctly with global picks.
    +    p.showGlobalIds = 1
    +    SetPickAttributes(p)
    +
    +    PickByGlobalZone(236919)
    +    s = s + GetPickOutput()
    +    PickByGlobalNode(244455)
    +    s = s + GetPickOutput()
    +
    +    ChangeActivePlotsVar("p")
    +    PickByGlobalZone(236919)
    +    s = s + GetPickOutput()
    +    PickByGlobalNode(244455)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickGlobalIds", s)
    +    p.showGlobalIds = 0
    +    SetPickAttributes(p)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickExpressions():
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    DefineScalarExpression("m1", 'matvf(mat1, ["1", "3"])')
    +    DefineScalarExpression("mir1", 'mirvf(mat1, zoneid(quadmesh3d), volume(quadmesh3d), 1)')
    +
    +    AddPlot("Pseudocolor", "m1")
    +    DrawPlots()
    +    ResetView()
    +
    +    Pick(151, 172)
    +    s = GetPickOutput()
    +    Pick(68, 239)
    +    s = s + GetPickOutput()
    +    Pick(237, 86)
    +    s = s + GetPickOutput()
    +    NodePick(151, 172)
    +    s = s + GetPickOutput()
    +    NodePick(68, 239)
    +    s = s + GetPickOutput()
    +    NodePick(237, 86)
    +    s = s + GetPickOutput()
    +
    +    ChangeActivePlotsVar("mir1")
    +    Pick(151, 172)
    +    s = s + GetPickOutput()
    +    Pick(68, 239)
    +    s = s + GetPickOutput()
    +    Pick(237, 86)
    +    s = s + GetPickOutput()
    +    NodePick(151, 172)
    +    s = s + GetPickOutput()
    +    NodePick(68, 239)
    +    s = s + GetPickOutput()
    +    NodePick(237, 86)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "t")
    +    DrawPlots()
    +    ResetView()
    +    DefineScalarExpression("polar", "polar(mesh1)")
    +
    +    # pick with default var -- 't'
    +    Pick(128, 107)
    +    s = s + GetPickOutput()
    +    # pick again, adding new expression var -- 'polar'
    +    vars = ("default", "polar")
    +    Pick(128, 107, vars)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickExpressions", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickAMR():
    +    OpenDatabase(data_path("boxlib_test_data/2D/plt0822/Header"))
    +
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("Pseudocolor", "density")
    +    DrawPlots()
    +    ResetView()
    +    v = GetView2D()
    +    v.fullFrameActivationMode = v.Off
    +    v.windowCoords = (0.0232322, 0.0302984, 0.11825, 0.123807)
    +    SetView2D(v)
    +
    +    s = "Testing boxlib 2D, pseudocolor\n"
    +    vars = "default"
    +    NodePick(226, 179, vars)
    +    s = s + GetPickOutput()
    +    ZonePick(226, 179, vars)
    +    s = s + GetPickOutput()
    +    NodePick(215, 168, vars)
    +    s = s + GetPickOutput()
    +    ZonePick(215, 168, vars)
    +    s = s + GetPickOutput()
    +    NodePick(114, 94, vars)
    +    s = s + GetPickOutput()
    +    ZonePick(114, 94, vars)
    +    s = s + GetPickOutput()
    +    NodePick(189, 197, vars)
    +    s = s + GetPickOutput()
    +    ZonePick(189, 197, vars)
    +    s = s + GetPickOutput()
    +    NodePick(242, 72, vars)
    +    s = s + GetPickOutput()
    +    ZonePick(242, 72, vars)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +    s = s + "\nTesting boxlib 2D, contour\n"
    +    AddPlot("Contour", "density")
    +    DrawPlots()
    +    v.windowCoords = (0.00408394, 0.0401985, 0.109754, 0.138135)
    +    SetView2D(v)
    +
    +    Pick(161, 137)
    +    s = s + GetPickOutput()
    +    NodePick(161, 137)
    +    s = s + GetPickOutput()
    +    Pick(176, 139)
    +    s = s + GetPickOutput()
    +    NodePick(176, 139)
    +    s = s + GetPickOutput()
    +    Pick(228, 71)
    +    s = s + GetPickOutput()
    +    NodePick(228, 71)
    +    s = s + GetPickOutput()
    +    Pick(255, 196)
    +    s = s + GetPickOutput()
    +    NodePick(255, 196)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +    s = s + "\nTesting boxlib 2D, Boundary\n"
    +    AddPlot("Boundary", "materials")
    +    DrawPlots()
    +    v.windowCoords = (0.00226909, 0.0378978, 0.0908832, 0.121254)
    +    SetView2D(v)
    +    Pick(161, 137)
    +    s = s + GetPickOutput()
    +    NodePick(161, 137)
    +    s = s + GetPickOutput()
    +    Pick(228, 71)
    +    s = s + GetPickOutput()
    +    NodePick(228, 71)
    +    s = s + GetPickOutput()
    +    Pick(139, 196)
    +    s = s + GetPickOutput()
    +    NodePick(139, 196)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickAMR", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickSamrai():
    +
    +    def doPicks1():
    +        def pickList(index):
    +            if index == 0 :
    +                ZonePick(172, 178)
    +                return GetPickOutput()
    +            elif index == 1 :
    +                NodePick(191, 188)
    +                return GetPickOutput()
    +            elif index == 2:
    +                NodePick(145, 157)
    +                return GetPickOutput()
    +            elif index == 3:
    +                PickByZone(1863, 2)
    +                return GetPickOutput()
    +            elif index == 4:
    +                PickByNode(2442, 2)
    +                return GetPickOutput()
    +            elif index == 5:
    +                PickByNode(2422, 2)
    +                return GetPickOutput()
    +            else :
    +                return ""
    +
    +        s = ""
    +        for j in range(6):
    +            for i in range(4):
    +                SetActivePlots(i)
    +                s = s + pickList(j)
    +        return s
    +
    +    def doPicks2():
    +        def pickList2(index):
    +            if index == 0 :
    +                ZonePick(239, 141)
    +                return GetPickOutput()
    +            elif index == 1 :
    +                NodePick(246, 108)
    +                return GetPickOutput()
    +            else :
    +                return ""
    +
    +        s = ""
    +        for j in range(2):
    +            for i in range(4):
    +                SetActivePlots(i)
    +                s = s + pickList2(j)
    +        return s
    +
    +    def doPicks3():
    +        def pickList3(index):
    +            if index == 0 :
    +                ZonePick(210, 148)
    +                return GetPickOutput()
    +            elif index == 1 :
    +                NodePick(200, 148)
    +                return GetPickOutput()
    +            elif index == 2 :
    +                ZonePick(210, 168)
    +                return GetPickOutput()
    +            elif index == 3 :
    +                NodePick(210, 168)
    +                return GetPickOutput()
    +            else :
    +                return ""
    +
    +        s = ""
    +        for j in range(4):
    +            for i in range(4):
    +                SetActivePlots(i)
    +                s = s + pickList3(j)
    +        return s
    +
    +
    +    # Open SAMRAI (add default subset plot)
    +    # Add PC, Mesh, and Contour Plots
    +    OpenDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +    slice = SliceAttributes()
    +    slice.axisType = slice.ZAxis
    +    slice.originType = slice.Percent
    +    slice.originPercent = 20
    +    slice.project2d = 1
    +
    +    AddPlot("Pseudocolor", "Primitive Var _number_0")
    +    AddPlot("Mesh", "amr_mesh")
    +    AddPlot("Contour", "Primitive Var _number_0")
    +
    +    SetActivePlots((0, 1, 2, 3))
    +    AddOperator("Slice")
    +    SetOperatorOptions(slice)
    +    DrawPlots()
    +
    +    v = GetView2D()
    +    v.windowCoords = (4.89115, 6.43144, 6.80336, 8.63983)
    +    SetView2D(v)
    +    s = "\nTesting sliced SAMRAI:\n"
    +    s = s + doPicks1()
    +    TestText("PickSamrai_01", s)
    +
    +    SetActivePlots((0, 1, 2, 3))
    +    clip = ClipAttributes()
    +    clip.plane1Origin = (5.1, 0, 0)
    +    clip.plane1Normal = (-1, 0, 0)
    +
    +    AddOperator("Clip")
    +    SetOperatorOptions(clip)
    +    DrawPlots()
    +    ResetPickLetter()
    +    s = "\nTesting clipped sliced SAMRAI:\n"
    +    s = s + doPicks1()
    +    TestText("PickSamrai_02", s)
    +
    +    SetActivePlots((0, 1, 2, 3))
    +    DemoteOperator(1)
    +    DrawPlots()
    +    ResetPickLetter()
    +    s = "\nTesting sliced clipped SAMRAI:\n"
    +    s = s + doPicks1()
    +    TestText("PickSamrai_03", s)
    +
    +    SetActivePlots((0, 1, 2, 3))
    +    RemoveLastOperator()
    +    clip.plane1Origin = (4.3, 0, 0)
    +    SetOperatorOptions(clip)
    +
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, -1)
    +    v.focus = (15, 10, 10)
    +    v.viewUp = (0, 1, 0)
    +    v.parallelScale = 20.6155
    +    v.nearPlane = -41.2311
    +    v.farPlane = 41.2311
    +    v.perspective = 0
    +    SetView3D(v)
    +    v.imageZoom = 8
    +    SetView3D(v)
    +    v.imagePan = (-0.2, 0.1)
    +    SetView3D(v)
    +    ResetPickLetter()
    +    s = "\nTesting clipped SAMRAI (3D):\n"
    +    s = s + doPicks2()
    +    TestText("PickSamrai_04", s)
    +
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +
    +    OpenDatabase(data_path("samrai_test_data/front/dumps.visit"))
    +
    +    AddPlot("Mesh", "amr_mesh")
    +    AddPlot("Pseudocolor", "Distance to front")
    +    AddPlot("Contour", "Distance to front")
    +
    +    DrawPlots()
    +    v = GetView2D()
    +    v.windowCoords = (0.678228, 0.865969, 0.467317, 0.650137)
    +
    +    SetView2D(v)
    +    s = "\nTesting front:\n"
    +    s = s + doPicks3()
    +    TestText("PickSamrai_05", s)
    +
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickIndexSelect():
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    AddPlot("Mesh", "quadmesh2d")
    +    AddPlot("Pseudocolor", "u")
    +    AddOperator("IndexSelect")
    +    isAtts = IndexSelectAttributes()
    +    isAtts.dim = isAtts.TwoD
    +    isAtts.xMin = 1
    +    isAtts.xMax = 2
    +    isAtts.yMin = 1
    +    isAtts.yMax = 2
    +    SetOperatorOptions(isAtts)
    +
    +    DrawPlots()
    +
    +    v = GetView2D()
    +    v.windowCoords = (-0.0583437, 0.254323, -0.0576062, 0.220944)
    +    SetView2D(v)
    +
    +    SetActivePlots(0)
    +    s = "Pick on Index-selected 2D Mesh Plot\n"
    +    Pick(132, 117)
    +    s = s + GetPickOutput()
    +    NodePick(132, 117)
    +    s = s + GetPickOutput()
    +
    +    SetActivePlots(1)
    +    s = s + "\nSame Picks on Index-selected 2D Pseudocolor Plot\n"
    +    Pick(132, 117)
    +    s = s + GetPickOutput()
    +    NodePick(132, 117)
    +    s = s + GetPickOutput()
    +
    +    isAtts.xIncr = 5
    +    isAtts.yIncr = 5
    +    SetOperatorOptions(isAtts)
    +
    +    s = s+ "\nChanged stride of IndexSelect, 2D Mesh Plot picks\n"
    +    SetActivePlots(0)
    +    Pick(132, 117)
    +    s = s + GetPickOutput()
    +    NodePick(132, 117)
    +    s = s + GetPickOutput()
    +
    +    s = s + "\nSame picks 2D Pseudocolor Plot \n"
    +    SetActivePlots(1)
    +    Pick(132, 117)
    +    s = s + GetPickOutput()
    +    NodePick(132, 117)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Mesh", "quadmesh3d")
    +    AddPlot("Pseudocolor", "d")
    +    SetActivePlots((0, 1))
    +    AddOperator("IndexSelect")
    +    isAtts = IndexSelectAttributes()
    +    isAtts.dim = isAtts.ThreeD
    +    isAtts.xIncr = 4
    +    isAtts.yIncr = 4
    +    SetOperatorOptions(isAtts)
    +
    +    DrawPlots()
    +
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (-1, 0, 0)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0, 1, 0)
    +    v.parallelScale = 0.866025
    +    v.perspective = 1
    +    SetView3D(v)
    +    v.imagePan = (0.0552434, 0.225336)
    +    SetView3D(v)
    +    v.imageZoom = 5.01124
    +    SetView3D(v)
    +
    +    s = s + "\nIndex selected 3D Mesh Plot\n"
    +    SetActivePlots(0)
    +    Pick(143, 144)
    +    s = s + GetPickOutput()
    +    NodePick(143, 144)
    +    s = s + GetPickOutput()
    +    s = s + "\nSame picks on 3D Pseudocolor Plot\n"
    +    SetActivePlots(1)
    +    Pick(143, 144)
    +    s = s + GetPickOutput()
    +    NodePick(143, 144)
    +    s = s + GetPickOutput()
    +
    +    SetActivePlots((0, 1))
    +    AddOperator("Slice")
    +    slice = SliceAttributes()
    +    slice.normal = (0, 0, 1)
    +    slice.originType = slice.Intercept
    +    slice.originIntercept = 0.5
    +    slice.upAxis = (0, 1, 0)
    +    slice.axisType = slice.ZAxis
    +    slice.project2d = 1
    +    SetOperatorOptions(slice)
    +    DrawPlots()
    +
    +    v = GetView2D()
    +    v.windowCoords = (0.226685, 0.501966, 0.147753, 0.423034)
    +    SetView2D(v)
    +
    +    s = s + "\nSliced, Index-selected 3D Mesh Plot\n"
    +    SetActivePlots(0)
    +    Pick(184, 234)
    +    s = s + GetPickOutput()
    +    NodePick(184, 234)
    +    s = s + GetPickOutput()
    +
    +
    +    s = s + "\nSame pickes on Sliced, Index-selected 3D Pseudocolor Plot\n"
    +    SetActivePlots(1)
    +    Pick(184, 234)
    +    s = s + GetPickOutput()
    +    NodePick(184, 234)
    +    s = s + GetPickOutput()
    +
    +    AddPlot("FilledBoundary", "mat1")
    +    AddOperator("IndexSelect")
    +    SetOperatorOptions(isAtts)
    +    AddOperator("Slice")
    +    SetOperatorOptions(slice)
    +    AddPlot("Mesh", "quadmesh3d")
    +    AddOperator("Slice")
    +    SetOperatorOptions(slice)
    +    DrawPlots()
    +
    +    s = s + "\nSame picks on Sliced, Index-selected 3D FilledBoundary Plot\n"
    +    s = s + "Stride changes back to 1 due to MIR, so should match Mesh results below\n"
    +    SetActivePlots(2)
    +    Pick(184, 234)
    +    s = s + GetPickOutput()
    +    NodePick(184, 234)
    +    s = s + GetPickOutput()
    +
    +    s = s + "\nSame picks on Sliced, 3D Mesh Plot\n"
    +    SetActivePlots(3)
    +    Pick(184, 234)
    +    s = s + GetPickOutput()
    +    NodePick(184, 234)
    +    s = s + GetPickOutput()
    +
    +
    +    TestText("PickIndexSelect", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickTensors():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Mesh", "Mesh")
    +    DrawPlots()
    +    vars = ("grad_tensor")
    +    Pick(133 , 178, vars)
    +    s = GetPickOutput()
    +    NodePick(133 ,178 , vars)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +    AddPlot("Tensor", "grad_tensor")
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, 1)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +    v.imagePan = (-0.181384, 0.137462)
    +    SetView3D(v)
    +    v.imageZoom = 4.86765
    +    SetView3D(v)
    +
    +    Pick(127, 59)
    +    s = s + GetPickOutput()
    +    Pick(269, 166)
    +    s = s + GetPickOutput()
    +    TestText("PickTensors", s)
    +    ResetView()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickMili():
    +    #'7144
    +    OpenDatabase(data_path("mili_test_data/single_proc/m_plot.mili"))
    +
    +    AddPlot("Pseudocolor", "Primal/brick/stress/sx")
    +    AddOperator("Threshold")
    +    thresh = ThresholdAttributes()
    +    thresh.lowerBounds = (1.0)
    +    thresh.upperBounds = (1.0)
    +    thresh.listedVarNames = ("Primal/Shared/sand")
    +    SetOperatorOptions(thresh)
    +    SetTimeSliderState(77)
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (0.761946, 0.114249, -0.637483)
    +    v.focus = (2, -4.76837e-07, -1.43051e-06)
    +    v.viewUp = (-.133671, -.990866, 0.0178134)
    +    v.viewAngle = 30
    +    v.parallelScale = 15.7797
    +    v.nearPlane = -31.5595
    +    v.farPlane = 31.5595
    +    SetView3D(v)
    +
    +    vars = "default"
    +    Pick(100, 150, vars)
    +    s = GetPickOutput()
    +    NodePick(100, 150, vars)
    +    s = s + GetPickOutput()
    +
    +    RemoveLastOperator()
    +
    +    #'7145
    +    AddPlot("Mesh", "mesh1")
    +    SetActivePlots((0, 1))
    +    AddOperator("Clip")
    +    clip = ClipAttributes()
    +    clip.plane1Status = 1
    +    clip.plane1Origin = (8, 7.77778, -10)
    +    clip.plane1Normal = (1, 0, 0)
    +    SetOperatorOptions(clip)
    +    SetTimeSliderState(77)
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (1, 0, 6.12307e-17)
    +    v.focus = (10.5296, -0.00138283, -0.000236511)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 19.0748
    +    v.nearPlane = -38.1495
    +    v.farPlane = 38.1495
    +    SetView3D(v)
    +
    +    Pick(204, 215, vars)
    +    s = s + GetPickOutput()
    +    NodePick(204, 215, vars)
    +    s = s + GetPickOutput()
    +    TestText("PickMili", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickContour():
    +    #'7144
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +    AddPlot("Contour", "d")
    +    contour = ContourAttributes()
    +    contour.contourNLevels = 4
    +    SetPlotOptions(contour)
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (-0.582341, 0.658239, 0.477075)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.402453, 0.743318, -0.534331)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    SetView3D(v)
    +
    +    vars = "default"
    +    Pick(166, 138, vars)
    +    s = GetPickOutput()
    +    NodePick(166, 138, vars)
    +    s = s + GetPickOutput()
    +    Pick(160, 175, vars)
    +    s = s + GetPickOutput()
    +    NodePick(160, 175, vars)
    +    s = s + GetPickOutput()
    +    Pick(158, 210, vars)
    +    s = s + GetPickOutput()
    +    NodePick(158, 210, vars)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickContour", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickBox():
    +    #'7566
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    AddOperator("Box")
    +    box = BoxAttributes()
    +    box.minx = 0.2
    +    box.maxx = 0.8
    +    box.miny = 0.2
    +    box.maxy = 0.8
    +    SetOperatorOptions(box)
    +    AddPlot("Mesh", "quadmesh2d")
    +    DrawPlots()
    +
    +    vars = "default"
    +    SetActivePlots(0)
    +
    +    Pick(155, 140)
    +    s = GetPickOutput()
    +    NodePick(155, 140)
    +    s = s + GetPickOutput()
    +
    +    SetActivePlots(1)
    +    Pick(155, 140)
    +    s = s + GetPickOutput()
    +    NodePick(155, 140)
    +    s = s + GetPickOutput()
    +
    +
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    AddOperator("Box")
    +    box.minx = 0.3
    +    box.maxx = 0.83
    +    box.miny = 0.3
    +    box.maxy = 0.83
    +    box.minz = 0
    +    box.maxz = 1
    +    SetOperatorOptions(box)
    +    AddOperator("Slice")
    +    slice = SliceAttributes()
    +    slice.axisType = slice.YAxis
    +    slice.originType = slice.Intercept
    +    slice.originIntercept = 0.5
    +    slice.project2d = 1
    +    SetOperatorOptions(slice)
    +
    +    AddPlot("Mesh", "quadmesh3d")
    +    AddOperator("Slice")
    +    SetOperatorOptions(slice)
    +    DrawPlots()
    +    SetActivePlots(0)
    +    TurnMaterialsOff("8")
    +
    +    Pick(221, 230)
    +    s = s + GetPickOutput()
    +    Pick(206, 67)
    +    s = s + GetPickOutput()
    +    NodePick(221, 230)
    +    s = s + GetPickOutput()
    +    NodePick(206, 67)
    +    s = s + GetPickOutput()
    +
    +    SetActivePlots(1)
    +    Pick(221, 230)
    +    s = s + GetPickOutput()
    +    Pick(206, 67)
    +    s = s + GetPickOutput()
    +    NodePick(221, 230)
    +    s = s + GetPickOutput()
    +    NodePick(206, 67)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickBox", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickScatter():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Scatter", "hardyglobal")
    +    scatter = ScatterAttributes()
    +    scatter.var1= "hardyglobal"
    +    scatter.var2= "shepardglobal"
    +    scatter.var3= "radial"
    +    scatter.var3Role = scatter.Color
    +    scatter.scaleCube = 1
    +    SetPlotOptions(scatter)
    +    DrawPlots()
    +    Pick(124, 174)
    +    s = GetPickOutput()
    +
    +    scatter.scaleCube = 0
    +    SetPlotOptions(scatter)
    +    DrawPlots()
    +    ResetView()
    +    Pick(124, 174)
    +    s = s + GetPickOutput()
    +
    +
    +    DeleteAllPlots()
    +
    +    s = s + "Expressions used in Scatter\n";
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +    DefineScalarExpression("xc", "coord(mesh1)[0]")
    +    DefineScalarExpression("yc", "coord(mesh1)[1]")
    +    DefineScalarExpression("zc", "coord(mesh1)[2]")
    +    DefineScalarExpression("uvw_prod", "u*v*w")
    +    AddPlot("Scatter", "xc")
    +    scatter.var1 = "xc"
    +    scatter.var1Role = scatter.Coordinate0
    +    scatter.var2 = "yc"
    +    scatter.var2Role = scatter.Coordinate1
    +    scatter.var3 = "zc"
    +    scatter.var3Role = scatter.Coordinate2
    +    scatter.var4 = "uvw_prod"
    +    scatter.var4Role = scatter.Color
    +    SetPlotOptions(scatter)
    +    DrawPlots()
    +    ResetView()
    +
    +    Pick(100, 200)
    +    s = s + GetPickOutput()
    +
    +    s = s + "Mix up the coordinates\n";
    +    scatter.var1Role = scatter.Coordinate1
    +    scatter.var2Role = scatter.Coordinate0
    +    SetPlotOptions(scatter)
    +    DrawPlots()
    +    Pick(100, 200)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickScatter", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickHighlight():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    pickAtts = GetPickAttributes()
    +    pickAtts.showPickHighlight = 1
    +    SetPickAttributes(pickAtts)
    +    DrawPlots()
    +    PickByZone(116242)
    +    Test("PickHighlight_01")
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +    OpenDatabase(silo_data_path("global_node.silo"))
    +    AddPlot("Pseudocolor", "p")
    +    DrawPlots()
    +
    +    # bug '3880 -- global id highlights incorrect cell.
    +    origAtts = GetPickAttributes()
    +    pickAtts = origAtts
    +    pickAtts.showPickHighlight = 1
    +    pickAtts.showPickLetter = 1
    +    SetPickAttributes(pickAtts)
    +
    +    PickByGlobalZone(236919)
    +    Test("GlobalHighlight_00")
    +
    +    SetPickAttributes(origAtts)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +    #restore the attributes
    +    annotAtts  = GetAnnotationAttributes()
    +    annotAtts.userInfoFlag = 1
    +    annotAtts.axes3D.xAxis.title.visible = 1
    +    annotAtts.axes3D.yAxis.title.visible = 1
    +    annotAtts.axes3D.zAxis.title.visible = 1
    +    annotAtts.axes3D.bboxFlag = 1;
    +    annotAtts.axes3D.triadFlag = 1;
    +    SetAnnotationAttributes(annotAtts)
    +
    +def PickHighlightColor():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    pickAtts = GetPickAttributes()
    +    pickAtts.showPickHighlight  = 1
    +    pickAtts.pickHighlightColor = (0, 0, 255)
    +    SetPickAttributes(pickAtts)
    +    DrawPlots()
    +    PickByZone(116242)
    +    Test("PickHighlightColor_01")
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +    #restore the attributes
    +    pickAtts.pickHighlightColor = (255, 0, 0)
    +    SetPickAttributes(pickAtts)
    +    annotAtts  = GetAnnotationAttributes()
    +    annotAtts.userInfoFlag = 1
    +    annotAtts.axes3D.xAxis.title.visible = 1
    +    annotAtts.axes3D.yAxis.title.visible = 1
    +    annotAtts.axes3D.zAxis.title.visible = 1
    +    annotAtts.axes3D.bboxFlag = 1;
    +    annotAtts.axes3D.triadFlag = 1;
    +    SetAnnotationAttributes(annotAtts)
    +
    +def PickRange():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    pickAtts = GetPickAttributes()
    +    pickAtts.showPickHighlight = 1
    +    SetPickAttributes(pickAtts)
    +    DrawPlots()
    +    options = {}
    +    options["pick_range"] = "116242-116300, 116350,1"
    +    PickByZone(options)
    +    Test("PickRange_01")
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickLines3D():
    +    OpenDatabase(silo_data_path("ucd_lines3d.silo"))
    +    AddPlot("Mesh", "ucd_linesmesh3d")
    +    DrawPlots()
    +
    +    ZonePick(113,182)
    +    s = GetPickOutput();
    +    ZonePick(134,107)
    +    s = s + GetPickOutput();
    +    ZonePick(177,151)
    +    s = s + GetPickOutput();
    +
    +    NodePick(126,161)
    +    s = s + GetPickOutput();
    +    NodePick(203,130)
    +    s = s + GetPickOutput();
    +    NodePick(150,193)
    +    s = s + GetPickOutput();
    +
    +    # rotate, so lines closer to camera are reversed.
    +    v = GetView3D()
    +    v.viewNormal=(0,0,-1)
    +    SetView3D(v)
    +
    +    ZonePick(149,168)
    +    s = s + GetPickOutput();
    +    ZonePick(139,97)
    +    s = s + GetPickOutput();
    +    ZonePick(191,206)
    +    s = s + GetPickOutput();
    +
    +    NodePick(161,73)
    +    s = s + GetPickOutput();
    +    NodePick(173,159)
    +    s = s + GetPickOutput();
    +    NodePick(54,153)
    +    s = s + GetPickOutput();
    +
    +    TestText("PickLines3D", s)
    +
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickZoneLabel():
    +    OpenDatabase(data_path("mili_test_data/single_proc/sslide14ball_l.plt.mili"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "Primal/shell/bend_magnitude")
    +    DrawPlots()
    +    options = {}
    +    options["element_label"] = "shell 9"
    +    options["vars"] = "OriginalZoneLabels"
    +    PickByZoneLabel(options)
    +    s = GetPickOutput()
    +    TestText("PickByZoneLabel",s)
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickNodeLabel():
    +    OpenDatabase(data_path("mili_test_data/single_proc/sslide14ball_l.plt.mili"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "Primal/shell/bend_magnitude")
    +    DrawPlots()
    +    options = {}
    +    options["element_label"] = "node 93"
    +    options["vars"] = "OriginalNodeLabels"
    +    PickByNodeLabel(options)
    +    s = GetPickOutput()
    +    TestText("PickByNodeLabel",s)
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickRangeLabel():
    +    OpenDatabase(data_path("mili_test_data/single_proc/d3samp6.plt.mili"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "Primal/shell/bend_magnitude")
    +    DrawPlots()
    +
    +    SetPickAttributes(defaultAtts)
    +
    +    options = {}
    +    options["element_label"] = "shell"
    +    options["return_curves"] = 1
    +    options["start_time"] = 0
    +    options["end_time"] = 2
    +    options["pick_range"] = "4-5,9"
    +    options["vars"] = "OriginalZoneLabels"
    +
    +    output_dict = PickByZoneLabel(options)
    +    # use json.dumps for dictionary object, makes for easier parsing
    +    # of diffs when there are errors
    +    TestText("PickRangeByZoneLabel",json.dumps(output_dict, indent=2))
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def TestRemovePicks():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    pickAtts = GetPickAttributes()
    +    pickAtts.showPickHighlight = 1
    +    SetPickAttributes(pickAtts)
    +    DrawPlots()
    +
    +    PickByZone(0)
    +    PickByZone(5)
    +    PickByZone(35)
    +    PickByZone(18)
    +    Test("RemovePicks_01")
    +    to_remove = "A, C, D"
    +    expected  = to_remove
    +    removed   = RemovePicks(to_remove)
    +    Test("RemovePicks_02")
    +
    +    #check that the returned list matches
    +    #what we expect
    +    TestValueEQ("Removed expected picks", removed, expected)
    +    ClearPickPoints()
    +
    +    PickByZone(0)
    +    PickByZone(18)
    +    Test("RemovePicks_03")
    +    to_remove = "A, C, D, E"
    +    expected  = "E"
    +    removed   = RemovePicks(to_remove)
    +    Test("RemovePicks_04")
    +
    +    TestValueEQ("Removed expected picks 2", removed, expected)
    +
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def TestRemoveLabeledPicks():
    +    OpenDatabase(data_path("mili_test_data/single_proc/sslide14ball_l.plt.mili"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "Primal/shell/bend_magnitude")
    +    pickAtts = GetPickAttributes()
    +    pickAtts.showPickHighlight = 1
    +    SetPickAttributes(pickAtts)
    +    DrawPlots()
    +
    +    options = {}
    +    options["element_label"] = "shell 1"
    +    PickByZoneLabel(options)
    +    options["element_label"] = "shell 2"
    +    PickByZoneLabel(options)
    +    options["element_label"] = "shell 5"
    +    PickByZoneLabel(options)
    +
    +    Test("RemoveLabeledPicks_00")
    +    to_remove = "shell 1, shell 2, shell 19"
    +    removed   = RemovePicks(to_remove)
    +    Test("RemoveLabeledPicks_01")
    +
    +    expected = "shell 1, shell 2"
    +    TestValueEQ("Removed expected shell", expected, removed)
    +
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def TestSwivelFocus():
    +    ResetPickAttributes()
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +    ResetView()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Mesh", "mesh1")
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (-0.461806, -0.673199, 0.577526)
    +    v.focus = (0., 0., 0.)
    +    v.viewUp = (-0.243052, 0.722237, 0.647532)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (0.341463, 0.234840)
    +    v.imageZoom = 1.21
    +    SetView3D(v)
    +
    +    orig_atts = GetPickAttributes()
    +    fh_atts   = GetPickAttributes()
    +    fh_atts.swivelFocusToPick = 1
    +    SetPickAttributes(fh_atts)
    +
    +    PickByNode(element=707)
    +    Test("SwivelFocus_00")
    +
    +    SetPickAttributes(orig_atts)
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def TestSwivelHighlight():
    +    ResetPickAttributes()
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +    ResetView()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "v")
    +    DrawPlots()
    +    orig_atts = GetPickAttributes()
    +    fh_atts   = GetPickAttributes()
    +    fh_atts.overridePickLabel = 1
    +    fh_atts.forcedPickLabel   = "fhpick"
    +    fh_atts.showPickHighlight = 1
    +    fh_atts.swivelFocusToPick = 1
    +    fh_atts.showPickLetter    = 0
    +    SetPickAttributes(fh_atts)
    +
    +    PickByZone(element=580)
    +    Test("SwivelHighlight_00")
    +
    +    SetPickAttributes(orig_atts)
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def TestNodeHighlight():
    +    ResetPickAttributes()
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +    ResetView()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "v")
    +    DrawPlots()
    +
    +    pAtts = GetPickAttributes()
    +    pAtts.showPickHighlight = 1
    +    pAtts.pickHighlightColor = (230, 100, 0)
    +    SetPickAttributes(pAtts)
    +    PickByNode(800)
    +    pAtts.pickHighlightColor = (0, 0, 255)
    +    SetPickAttributes(pAtts)
    +    PickByNode(600)
    +    pAtts.pickHighlightColor = (255, 0, 0)
    +    SetPickAttributes(pAtts)
    +    PickByNode(1000)
    +    Test("NodeHighlight_00")
    +
    +    ResetPickAttributes()
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +
    +def TestTranslatedHighlight():
    +    ResetPickAttributes()
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +    ResetView()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "v")
    +    AddOperator("Transform")
    +
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doScale = 1
    +    TransformAtts.scaleOrigin = (0, 0, 0)
    +    TransformAtts.scaleX = 1
    +    TransformAtts.scaleY = 2
    +    TransformAtts.scaleZ = 1
    +    TransformAtts.doTranslate = 1
    +    TransformAtts.translateX = 100
    +    SetOperatorOptions(TransformAtts)
    +
    +    DrawPlots()
    +
    +    pAtts = GetPickAttributes()
    +    pAtts.showPickHighlight = 1
    +    SetPickAttributes(pAtts)
    +
    +    PickByZone(element=580)
    +    Test("TranslatedHighlight_00")
    +
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +
    +def TestPickingExpression():
    +    ResetPickAttributes()
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +    ResetView()
    +
    +    OpenDatabase(silo_data_path("curv3d.silo"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "mesh_quality/jacobian")
    +
    +    DrawPlots()
    +
    +    PickByZone(element=100)
    +    result = GetPickOutput()
    +    PickByNode(element=100)
    +    result += GetPickOutput()
    +    TestText("TestPickingExpression_00", result)
    +
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +    CloseDatabase(silo_data_path("curv3d.silo"))
    +
    +
    +def PickMain():
    +    Pick3DTo2D()
    +    Pick2D()
    +    PickOnionPeel()
    +    PickSubset()
    +    PickMatFracsThreshold()
    +    PickReflect()
    +    PickFilledBoundary()
    +    PickMultiBlock()
    +    PickSurface()
    +    PickBigSilMat()
    +    PickOnionPeel2()
    +    PickSpecMix()
    +    PickCurve()
    +    PickMultiWindow()
    +    PickAfterEngineClosed()
    +    PickAfterEngineCrashed()
    +    PickBoundary()
    +    PickVectorPlots()
    +    PickPointMeshes()
    +    PickGlobalIds()
    +    PickExpressions()
    +    PickAMR()
    +    PickSamrai()
    +    PickIndexSelect()
    +    PickTensors()
    +    PickMili()
    +    PickContour()
    +    PickBox()
    +    PickScatter()
    +    PickHighlight()
    +    PickHighlightColor()
    +    PickRange()
    +    TestRemovePicks()
    +    TestRemoveLabeledPicks()
    +    PickLines3D()
    +    PickZoneLabel()
    +    PickNodeLabel()
    +    PickRangeLabel()
    +    TestSwivelFocus()
    +    TestSwivelHighlight()
    +    TestNodeHighlight()
    +    TestTranslatedHighlight()
    +    TestPickingExpression()
    +
    +# Call the main function
    +TurnOnAllAnnotations()
    +PickMain()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_pickarray.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_pickarray.html new file mode 100644 index 000000000..e6719a5eb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_pickarray.html @@ -0,0 +1,86 @@ + +Results for queries/pickarray.py + +

    Results of VisIt Regression Test - queries/pickarray

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    pickarray_010 modifications totalling 0 lines
    pickarray_020.000.00
    pickarray_030 modifications totalling 0 lines
    pickarray_040.000.00
    pickarray_050 modifications totalling 0 lines
    pickarray_060 modifications totalling 0 lines
    pickarray_070.000.00
    pickarray_080 modifications totalling 0 lines
    pickarray_090.000.00
    pickarray_100.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_pickarray_py.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_pickarray_py.html new file mode 100644 index 000000000..479475e0a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_pickarray_py.html @@ -0,0 +1,137 @@ +queries/pickarray.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  pickarray.py
    +#  Tests:      queries     - Pick on array variables
    +#
    +#  Defect ID:  '6862, '3191, '7323, '7324
    +#
    +#  Programmer: Hank Childs
    +#  Date:       May 25, 2006
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Tue Sep  5 17:08:59 PDT 2006
    +#    Add more tests for indexing bug ['7324].
    +#
    +#    Kathleen Bonnell, Wed Oct 18 11:43:27 PDT 2006 
    +#    Add more tests for bug '7498.
    +#
    +#    Hank Childs, Fri Jan  5 13:51:41 PST 2007
    +#    Add tests for time varying databases ['7323].
    +#
    +#    Hank Childs, Fri Jan 12 17:31:15 PST 2007
    +#    Added tests for array variables with bin widths.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +a = AnnotationAttributes()
    +TurnOffAllAnnotations(a)
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor","d")
    +DrawPlots()
    +
    +DefineArrayExpression("arr", "array_compose(d, p)")
    +Pick((0.5, 0.5), "arr")
    +text = GetPickOutput()
    +TestText("pickarray_01", text)
    +
    +SetActiveWindow(2)
    +SetAnnotationAttributes(a)
    +
    +Test("pickarray_02")
    +
    +# Now make sure future picks cause the window to update.
    +SetActiveWindow(1)
    +Pick((0.5, 1.0), "arr")
    +text = GetPickOutput()
    +TestText("pickarray_03", text)
    +
    +SetActiveWindow(2)
    +Test("pickarray_04")
    +
    +SetActiveWindow(1)
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +AddPlot("Pseudocolor", "pressure")
    +DrawPlots()
    +DefineArrayExpression("arr2", "array_compose(u, v)")
    +ZonePick((0.29, 0.47, 5.0), "arr2")
    +text = GetPickOutput()
    +TestText("pickarray_05", text)
    +
    +#  bug '7498.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +DefineArrayExpression("arr3", "array_compose(dx, dy, dz)")
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +vars = ("u", "arr3")
    +Pick(128, 107, vars)
    +text = GetPickOutput() + "\n"
    +
    +e = ExportDBAttributes()
    +e.db_type = "VTK"
    +e.filename = "globe_temp"
    +e.variables = ("u", "dx", "dy")
    +ExportDatabase(e)
    +ReplaceDatabase("globe_temp.vtk")
    +Pick(128, 107, vars)
    +text += GetPickOutput()
    +text += "\n"
    +
    +DeleteExpression("arr3")
    +DefineArrayExpression("arr3", "array_compose(dx, dy)")
    +Pick(128, 107, vars)
    +text += GetPickOutput()
    +TestText("pickarray_06", text)
    +
    +#  bug '7323
    +SetActiveWindow(1)
    +DeleteAllPlots()
    +SetActiveWindow(2)
    +DeleteAllPlots()
    +SetActiveWindow(1)
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +AddPlot("Pseudocolor", "pressure")
    +TimeSliderSetState(34)
    +DrawPlots()
    +ZonePick((0.29, 0.47, 5.0), "arr2")
    +SetActiveWindow(2)
    +Test("pickarray_07")
    +Query("Cycle")
    +output = GetQueryOutputString()
    +TestText("pickarray_08", output)
    +
    +DeleteAllPlots()
    +SetActiveWindow(1)
    +DeleteAllPlots()
    +DefineArrayExpression("arr4", "array_compose_with_bins(dx, dy, [0, 0.5, 1.5])")
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +vars = ("u", "arr4")
    +Pick(128, 107, vars)
    +SetActiveWindow(2)
    +ResetView()
    +Test("pickarray_09")
    +
    +h = HistogramAttributes()
    +h.useBinWidths = 0
    +h.basedOn = h.ManyVarsForSingleZone
    +SetPlotOptions(h)
    +ResetView()
    +Test("pickarray_10")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_pickcleanzonesonly.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_pickcleanzonesonly.html new file mode 100644 index 000000000..2466b3ce0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_pickcleanzonesonly.html @@ -0,0 +1,48 @@ + +Results for queries/pickcleanzonesonly.py + +

    Results of VisIt Regression Test - queries/pickcleanzonesonly

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    PickCleanZonesOnly10 modifications totalling 0 lines
    PickCleanZonesOnly20 modifications totalling 0 lines
    PickCleanZonesOnly30 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_pickcleanzonesonly_py.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_pickcleanzonesonly_py.html new file mode 100644 index 000000000..3026ff1ff --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_pickcleanzonesonly_py.html @@ -0,0 +1,57 @@ +queries/pickcleanzonesonly.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  pickcleanzonesonly.py
    +#  Tests:      queries     - Pick on mixed zones of clean zones only
    +#
    +#  Defect ID:  VisIt00003894
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       October 30, 2003
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Apr 29 07:40:58 PDT 2004 
    +#    Slice defaults atts have changed, update accordingly. 
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +# Make a sliced filled boundary plot with clean zones only enabled
    +TurnOnAllAnnotations()
    +OpenDatabase(silo_data_path("ucd3d.silo"))
    +
    +AddPlot("FilledBoundary","mat1")
    +f=FilledBoundaryAttributes()
    +f.cleanZonesOnly=1
    +SetPlotOptions(f)
    +AddOperator("Slice")
    +s=SliceAttributes()
    +s.axisType=s.YAxis
    +s.originIntercept = .01
    +s.project2d=1
    +SetOperatorOptions(s)
    +DrawPlots()
    +
    +# Pick on one of the mixed zones
    +Pick((-3.5,10.1))
    +text = GetPickOutput()
    +TestText("PickCleanZonesOnly1", text)
    +
    +# Change the slice position and do it again
    +s.axisType=s.ZAxis
    +s.originIntercept=3.
    +SetOperatorOptions(s)
    +Pick((-1,3.2))
    +text = GetPickOutput()
    +TestText("PickCleanZonesOnly2", text)
    +
    +# Remove the slice and do it again
    +RemoveAllOperators()
    +Pick((3,2,19))
    +text = GetPickOutput()
    +TestText("PickCleanZonesOnly3", text)
    +
    +# All done!
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_py_queries.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_py_queries.html new file mode 100644 index 000000000..a1b48ec02 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_py_queries.html @@ -0,0 +1,44 @@ + +Results for queries/py_queries.py + +

    Results of VisIt Regression Test - queries/py_queries

    + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    py_queries_000 modifications totalling 0 lines
    py_queries_010 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_py_queries_py.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_py_queries_py.html new file mode 100644 index 000000000..50562e3b1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_py_queries_py.html @@ -0,0 +1,40 @@ +queries/py_queries.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  py_queires.py
    +#
    +#  Tests:      python filters / python queries
    +#              plots     - Pseudocolor
    +#
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Fri May 21 09:14:07 PDT 2010
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +import os
    +from os.path import join as pjoin
    +
    +def script_path(sname):
    +    return pjoin(os.path.split(TestScriptPath())[0],sname)
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +
    +PythonQuery(file=script_path("py_query_script_00.vpq"))
    +res = GetQueryOutputString()
    +TestText("py_queries_00",res + "\n")
    +
    +PythonQuery(file=script_path("py_query_script_01.vpq"),vars=["default","p"],args=["test",0.0,[1,2.0,3]])
    +res = GetQueryOutputString()
    +TestText("py_queries_01",res + "\n")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_queriesOverTime.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_queriesOverTime.html new file mode 100644 index 000000000..77991dbf2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_queriesOverTime.html @@ -0,0 +1,324 @@ + +Results for queries/queriesOverTime.py + +

    Results of VisIt Regression Test - queries/queriesOverTime

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    AllTimeQueries_010.000.00
    AllTimeQueries_020.000.00
    AllTimeQueries_030.000.00
    AllTimeQueries_040.000.00
    AllTimeQueries_050.000.00
    AllTimeQueries_060.000.00
    AllTimeQueries_070.000.00
    FBTimeQuery_010.000.00
    FBTimeQuery_020.000.00
    TimeQuery_ops_010.000.00
    TimeQuery_ops_020.000.00
    TimeQuery_expr_010.000.00
    TimeQuery_expr_020.000.00
    TimeQuery_expr_030.000.00
    TimeQuery_trans_010.000.00
    TimeQuery_trans_020.000.00
    SpecifyTimeQueryWindow_010.000.00
    SpecifyTimeQueryWindow_020.000.00
    SpecifyTimeQueryWindow_030.000.00
    TimeQuery_sil_010.000.00
    QueryAfterQueryOverTime0 modifications totalling 0 lines
    TimeQuery_mili_010.000.00
    TimeQuery_mili_020.000.00
    TimeQuery_mili_030.000.00
    TimeQuery_mili_040.000.00
    TimePick_MultiVar_010.000.00
    TimePick_MultiVar_020.000.00
    TimePick_MultiVar_030.000.00
    TimePick_MultiVar_040.000.00
    TimePickRange_000.000.00
    TimePickRangeDict_000 modifications totalling 0 lines
    TimePickRange_010.000.00
    TimePickRangeDict_010 modifications totalling 0 lines
    TimePickRange_020.000.00
    TimePickRangeDict_020 modifications totalling 0 lines
    Pick Updated
     "" .eq. "" : True
    Timing Direct Database Query
     1.034764289855957 .le. 10 (prec=5) : True
    Direct_Database_Route_000.000.00
    Direct_Database_Route_010.000.00
    Direct_Database_Route_020.000.00
    Direct_Database_Route_030.000.00
    Direct_Database_Route_040.000.00
    Direct_Database_Route_050.000.00
    Direct_Database_Route_060.000.00
    Direct_Database_Route_070.000.00
    Direct_Database_Route_080.000.00
    Direct_Database_Route_090.000.00
    Direct_Database_Route_100.000.00
    Direct_Database_Route_110.000.00
    OperatorCreatedVar_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_queriesOverTime_py.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_queriesOverTime_py.html new file mode 100644 index 000000000..7291cb98d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_queriesOverTime_py.html @@ -0,0 +1,1065 @@ +queries/queriesOverTime.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  queriesOverTime.py #
    +#  Tests:      queries     - Database
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Kathleen Bonnell
    +#  Date:       March 31, 2004
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Tue Apr 13 13:00:15 PDT 2004
    +#    Rename surface area query.
    +#
    +#    Kathleen Bonnell, Tue Apr 20 09:42:30 PDT 2004
    +#    Added TestFilledBoundary.
    +#
    +#    Kathleen Bonnell, Tue Apr 27 12:10:44 PDT 2004
    +#    Added TestExpressions, TestOperators.
    +#
    +#    Kathleen Bonnell, Thu Jun 24 09:49:35 PDT 2004
    +#    Added TestTransientVariable.
    +#
    +#    Kathleen Bonnell, Wed Jul 21 16:51:31 PDT 2004
    +#    Added TestSpecifyTimeQueryWindow.
    +#
    +#    Kathleen Bonnell, Wed Sep  8 10:53:58 PDT 2004
    +#    Renamed 'WorldPick' as 'Pick'.
    +#
    +#    Kathleen Bonnell, Mon Dec 20 15:54:04 PST 2004
    +#    Changed 'Variable by Node' to 'PickByNode'.
    +#
    +#    Kathleen Bonnell, Thu Jan  6 11:06:29 PST 2005
    +#    Added TestTimeVaryingSIL.
    +#
    +#    Kathleen Bonnell, Wed Mar 16 11:13:40 PST 2005
    +#    Added TestQueryAfterQueryOverTime.
    +#
    +#    Kathleen Bonnell, Wed Jul  6 16:21:34 PDT 2005
    +#    Added TestMili.
    +#
    +#    Kathleen Bonnell, Thu Nov 10 08:21:54 PST 2005
    +#    Added TrajectoryByZone to TestMili.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Fri Feb  5 09:27:37 PST 2010
    +#    Turn off color cycling to avoid possible propagation of error from
    +#    one failed test to several.
    +#
    +#    Kathleen Bonnell, Thu Mar  3 11:47:09 PST 2011
    +#    Added MultiVarTimePick tests.
    +#
    +#    Kathleen Biagas, Thu Jul 14 10:44:55 PDT 2011
    +#    Use named arguments.
    +#
    +#    Alister Maguire, Tue Oct 17 16:54:48 PDT 2017
    +#    Added TestPickRangeTimeQuery
    +#
    +#    Alister Maguire, Wed May  9 10:13:26 PDT 2018
    +#    Added TestReturnValue.
    +#
    +#    Alister Maguire, Wed May 30 14:16:28 PDT 2018
    +#    Added tests for performing pick ranges over time with and
    +#    without plotting and returning the curves.
    +#
    +#    Alister Maguire, Wed May 22 08:49:30 PDT 2019
    +#    Updated mili tests to reflect new plugin changes.
    +#
    +#    Alister Maguire, Tue Oct  1 11:48:15 MST 2019
    +#    Make sure to set use_actual_data to true when we want
    +#    to use data from the pipeline output.
    +#
    +#    Alister Maguire, Fri Oct 11 13:12:36 PDT 2019
    +#    Added TestDirectDatabaseRoute. I also updated several tests to
    +#    use actual data so that they continue to test the old QOT route.
    +#
    +#    Kathleen Biagas, Thu Jan 30 13:37:50 MST 2020
    +#    Added TestOperatorCreatedVar. (github bugs #2842, #3489).
    +#
    +#    Alister Maguire, Tue Feb 25 13:46:24 PST 2020
    +#    Added tests for handling vectors in the direct database route.
    +#
    +#    Alister Maguire, Mon Mar  9 15:16:36 PDT 2020
    +#    I've removed the use_actual_data flag for Pick queries as this
    +#    is now handled internally.
    +#
    +#    Alister Maguire, Thu Nov  5 08:22:15 PST 2020
    +#    Updated the multi-domain DDQOT test to ensure that the selected
    +#    element is not on processor 0 when run in parallel.
    +#
    +#    Alister Maguire, Fri Nov  6 10:06:22 PST 2020
    +#    Added more DirectDatabaseQOT tests that ensure verdict metrics
    +#    are able to be queried using this route.
    +#
    +#    Mark C. Miller, Mon Jan 11 10:37:07 PST 2021
    +#    Replace Assert-style with TestValue-style tests
    +#
    +#    Kathleen Biagas, Wed Feb 16 13:11:57 PST 2022
    +#    Replaced Curve atts 'cycleColors' with 'curveColorSource', 'color' with
    +#    'curveColor', and 'renderMode=RenderAsLines' with 'showLines'.
    +#
    +# ----------------------------------------------------------------------------
    +
    +RequiredDatabasePlugin(("PDB", "Mili", "SAMRAI"))
    +
    +def InitAnnotation():
    +    # Turn off most annotations
    +    a = AnnotationAttributes()
    +    a.axes2D.visible = 1
    +    a.axes2D.xAxis.label.visible = 1
    +    a.axes2D.yAxis.label.visible = 1
    +    a.axes2D.xAxis.title.visible = 1
    +    a.axes2D.yAxis.title.visible = 1
    +    a.axes3D.triadFlag = 0
    +    a.axes3D.bboxFlag = 0
    +    a.userInfoFlag = 0
    +    a.databaseInfoFlag = 0
    +    a.legendInfoFlag = 0
    +    a.backgroundMode = a.Solid
    +    a.foregroundColor = (0, 0, 0, 255)
    +    a.backgroundColor = (255, 255, 255, 255)
    +    SetAnnotationAttributes(a)
    +
    +def SetCurvePlotDefaults():
    +    # Disable Color Cycling, default to a blue curve.
    +    catts = CurveAttributes()
    +    catts.lineWidth = 0
    +    catts.curveColor = (0, 0, 255, 255)
    +    catts.showLabels = 1
    +    catts.designator = ""
    +    catts.showPoints = 0
    +    catts.showLegend = 1
    +    catts.curveColorSource = catts.Custom
    +    catts.showLines = 1
    +    SetDefaultPlotOptions(catts)
    +
    +
    +
    +def TestAllTimeQueries():
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    QueryOverTime("3D surface area")
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("AllTimeQueries_01")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    QueryOverTime("Volume")
    +    SetActiveWindow(2);
    +    Test("AllTimeQueries_02")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    QueryOverTime("Min")
    +    SetActiveWindow(2);
    +    Test("AllTimeQueries_03")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    QueryOverTime("Max")
    +    SetActiveWindow(2);
    +    Test("AllTimeQueries_04")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    QueryOverTime("Variable Sum")
    +    SetActiveWindow(2);
    +    Test("AllTimeQueries_05")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    QueryOverTime("Weighted Variable Sum")
    +    SetActiveWindow(2);
    +    Test("AllTimeQueries_06")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    pa = GetPickAttributes()
    +    pa.doTimeCurve = 1
    +    pa.timePreserveCoord = 0
    +    SetPickAttributes(pa)
    +    PickByNode(15947)
    +    # reset some defaults
    +    pa.doTimeCurve = 0
    +    pa.timePreserveCoord = 1
    +    SetPickAttributes(pa)
    +    SetActiveWindow(2);
    +    Test("AllTimeQueries_07")
    +
    +    # delete window 2
    +    DeleteWindow()
    +    # remove plots from window 1
    +    DeleteAllPlots()
    +
    +def TestFilledBoundary():
    +    #  bug '4708
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +    AddPlot("FilledBoundary", "Material")
    +    DrawPlots()
    +    TurnMaterialsOff(("1 barrier", "2 water"))
    +
    +    SetActiveWindow(1)
    +    QueryOverTime("3D surface area")
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +
    +    Test("FBTimeQuery_01")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    TurnMaterialsOff(("1 barrier", "2 water"))
    +    QueryOverTime("3D surface area")
    +    SetActiveWindow(2)
    +    Test("FBTimeQuery_02")
    +
    +    # delete window 2
    +    DeleteWindow()
    +    # remove plots from window 1
    +    TurnMaterialsOn()
    +    DeleteAllPlots()
    +
    +def TestOperators():
    +    #  bug '4818
    +    OpenDatabase(silo_data_path("wave*.silo database"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    AddOperator("Isovolume")
    +    iso = IsovolumeAttributes()
    +    iso.lbound = 0.1
    +    iso.ubound = 1.0
    +    SetOperatorOptions(iso)
    +    DrawPlots()
    +
    +    SetActiveWindow(1)
    +    QueryOverTime("Volume", stride=10, use_actual_data=1)
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("TimeQuery_ops_01")
    +
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "mesh_quality/jacobian")
    +    AddOperator("Slice")
    +    slice = SliceAttributes()
    +    slice.axisType = slice.Arbitrary
    +    slice.normal = (-0.689, -0.0416, 0.7233)
    +    slice.originType = slice.Point
    +    slice.originPoint = (2.0011, -0.4084, -1.1279)
    +    slice.upAxis = (-0.08584, 0.996007, -0.0245)
    +    slice.project2d = 1
    +    SetOperatorOptions(slice)
    +
    +    DrawPlots()
    +    QueryOverTime("2D area", stride=10, use_actual_data=1)
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("TimeQuery_ops_02")
    +
    +    # prepare for next test-set
    +    # delete plots from window 2 & l
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +def TestExpressions():
    +    #bug '4784
    +    OpenDatabase(data_path("pdb_test_data/dbA00.pdb"))
    +
    +    AddPlot("Pseudocolor", "mesh/ireg")
    +    pa = PseudocolorAttributes()
    +    pa.minFlag = 1
    +    pa.maxFlag = 1
    +    pa.min = 1
    +    pa.max = 4
    +    SetPlotOptions(pa)
    +    DrawPlots()
    +
    +    pt = (4., 3., 0.)
    +    pick = GetPickAttributes()
    +    pick.doTimeCurve = 1
    +    SetPickAttributes(pick)
    +    Pick(pt)
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("TimeQuery_expr_01")
    +
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    # test a scalar expression
    +    OpenDatabase(silo_data_path("wave*.silo database"))
    +
    +    DefineScalarExpression("p2", "pressure*pressure")
    +    AddPlot("Pseudocolor", "p2")
    +    DrawPlots()
    +
    +    QueryOverTime("Variable Sum", stride=10)
    +    SetActiveWindow(2)
    +    Test("TimeQuery_expr_02")
    +
    +    # prepare for next test-set
    +    # delete plots from window 2 & l
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    OpenDatabase(data_path("pdb_test_data/dbA00.pdb"))
    +
    +    DefineScalarExpression("m", "matvf(material, 1)")
    +    AddPlot("Pseudocolor", "m")
    +    DrawPlots()
    +
    +    QueryOverTime("Variable Sum")
    +    SetActiveWindow(2)
    +    Test("TimeQuery_expr_03")
    +
    +    # prepare for next test-set
    +    # delete plots from window 2 & l
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +
    +
    +def TestTransientVariable():
    +    #bug '4906
    +
    +    # Do what is necessary to get access to the transient variable,
    +    # because QueryOverTime requires an active drawn plot.
    +    db = silo_data_path("wave_tv*.silo database")
    +    OpenDatabase(db)
    +    SetTimeSliderState(17)
    +    ReOpenDatabase(db)
    +    AddPlot("Pseudocolor", "transient")
    +    DrawPlots()
    +
    +    qt = GetQueryOverTimeAttributes()
    +    qt.timeType = qt.Timestep
    +    SetQueryOverTimeAttributes(qt)
    +
    +    QueryOverTime("Variable Sum")
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("TimeQuery_trans_01")
    +
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    pick = GetPickAttributes()
    +    pick.doTimeCurve = 1
    +    pick.timePreserveCoord = 0
    +    SetPickAttributes(pick)
    +    PickByNode(327)
    +
    +    pick.doTimeCurve = 0
    +    pick.timePreserveCoord = 1
    +    SetPickAttributes(pick)
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("TimeQuery_trans_02")
    +
    +    # Prepare for next test
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +def TestSpecifyTimeQueryWindow():
    +    # bug '5163
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +
    +    qt = GetQueryOverTimeAttributes()
    +    qt.timeType = qt.Timestep
    +    SetQueryOverTimeAttributes(qt)
    +
    +    QueryOverTime("3D surface area")
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("SpecifyTimeQueryWindow_01")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    TurnMaterialsOff(("1 barrier"))
    +    DrawPlots()
    +
    +    qot = GetQueryOverTimeAttributes()
    +    qot.createWindow = 0
    +    qot.windowId = 3
    +    SetQueryOverTimeAttributes(qot)
    +
    +    QueryOverTime("3D surface area")
    +
    +    SetActiveWindow(3)
    +    InitAnnotation()
    +    Test("SpecifyTimeQueryWindow_02")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    TurnMaterialsOff(("2 water"))
    +    DrawPlots()
    +
    +    qot.windowId = 2
    +    SetQueryOverTimeAttributes(qot)
    +
    +    QueryOverTime("3D surface area")
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("SpecifyTimeQueryWindow_03")
    +
    +    # Prepare for next test
    +    DeleteAllPlots()
    +    DeleteWindow()
    +    SetActiveWindow(3)
    +    DeleteWindow()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +def TestTimeVaryingSIL():
    +    #bug '5473
    +    OpenDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +
    +    cfileName = "./temp.curve"
    +    curveFile = open(cfileName, "wt")
    +    curveFile.write("#3D surface area\n")
    +    nframes = TimeSliderGetNStates()
    +    for i in range(nframes):
    +        Query("3D surface area")
    +        val = GetQueryOutputValue()
    +        curveFile.write("%g %g\n" % (i, val))
    +        TimeSliderNextState()
    +
    +    curveFile.close()
    +
    +    AddWindow()
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    OpenDatabase(cfileName)
    +    AddPlot("Curve", "3D surface area")
    +    DrawPlots()
    +
    +    SetActiveWindow(1)
    +
    +    # Go ahead and use default plot for now.
    +    qt = GetQueryOverTimeAttributes()
    +    qt.timeType = qt.Timestep
    +    qt.createWindow = 0
    +    qt.windowId = 2
    +    SetQueryOverTimeAttributes(qt)
    +
    +    QueryOverTime("3D surface area")
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    cv = GetViewCurve();
    +    cv.domainCoords = (-0.534115, 10.5341)
    +    cv.rangeCoords = (4029.87, 5856.13)
    +    SetViewCurve(cv)
    +
    +    SetActivePlots((0, 1))
    +    c = CurveAttributes()
    +    c.showPoints = 1
    +    SetPlotOptions(c)
    +
    +    Query("Area Between Curves")
    +    s = GetQueryOutputString()
    +    text = CreateAnnotationObject("Text2D")
    +    text.text =  s
    +    text.height = 0.02
    +    text.position = (0.55, 0.4)
    +
    +    Test("TimeQuery_sil_01")
    +
    +    text.Delete()
    +    os.unlink(cfileName)
    +
    +    # Prepare for next test
    +    DeleteAllPlots()
    +    SetActiveWindow(2)
    +    DeleteWindow()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +def TestQueryAfterQueryOverTime():
    +    # bug '5823
    +    OpenDatabase(silo_data_path("wave_tv.visit"))
    +
    +    SetTimeSliderState(17)
    +    ReOpenDatabase(silo_data_path("wave_tv.visit"))
    +
    +    AddPlot("Pseudocolor", "transient")
    +    DrawPlots()
    +
    +    QueryOverTime("Volume")
    +    Query("Volume")
    +    s = GetQueryOutputString()
    +    QueryOverTime("Max")
    +    Query("Max")
    +    s = s + GetQueryOutputString()
    +
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    # bug '6042
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    TurnMaterialsOn()
    +    QueryOverTime("3D surface area", stride=10)
    +
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    TestText("QueryAfterQueryOverTime", s)
    +
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +def TestMili():
    +    # bug '6430
    +    OpenDatabase(data_path("mili_test_data/single_proc/m_plot.mili"))
    +
    +    AddPlot("Pseudocolor", "Primal/node/nodvel/vz")
    +    DrawPlots()
    +
    +    ResetQueryOverTimeAttributes()
    +
    +    QueryOverTime("Volume")
    +    SetActiveWindow(2)
    +    ResetView()
    +    InitAnnotation()
    +    Test("TimeQuery_mili_01")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    QueryOverTime("Max")
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("TimeQuery_mili_02")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    p = GetPickAttributes()
    +    p.doTimeCurve = 1
    +    p.timePreserveCoord = 0
    +    SetPickAttributes(p)
    +    NodePick(122, 161)
    +
    +    p.doTimeCurve = 0
    +    SetPickAttributes(p)
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("TimeQuery_mili_03")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    qvars = ("Primal/shell/edv1", "Primal/shell/edv2")
    +    QueryOverTime("TrajectoryByZone", element=242, vars=qvars)
    +    SetActiveWindow(2)
    +    ResetView()
    +    InitAnnotation()
    +    Test("TimeQuery_mili_04")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +def MultiVarTimePick():
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +
    +    pa = GetPickAttributes()
    +    pa.doTimeCurve = 1
    +    pa.timeCurveType = pa.Single_Y_Axis
    +    SetPickAttributes(pa)
    +
    +    vars =("pressure", "v", "direction_magnitude")
    +    PickByNode(8837, vars)
    +
    +    SetActiveWindow(2);
    +    InitAnnotation()
    +    Test("TimePick_MultiVar_01")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    pa.timeCurveType = pa.Multiple_Y_Axes
    +    SetPickAttributes(pa)
    +    PickByNode(8837, vars)
    +
    +    SetActiveWindow(2);
    +    Test("TimePick_MultiVar_02")
    +    DeleteAllPlots()
    +
    +    # remove plots from window 1
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    OpenDatabase(data_path("mili_test_data/single_proc/m_plot.mili"))
    +
    +    AddPlot("Pseudocolor", "Primal/shell/inteng")
    +    DrawPlots()
    +
    +    pa.timePreserveCoord = 0
    +    pa.timeCurveType = pa.Single_Y_Axis
    +    SetPickAttributes(pa)
    +
    +    vars = ("default", "Primal/shell/normal_magnitude")
    +    PickByZone(233, vars)
    +
    +    SetActiveWindow(2);
    +    Test("TimePick_MultiVar_03")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    pa.timeCurveType = pa.Multiple_Y_Axes
    +    SetPickAttributes(pa)
    +    PickByZone(233, vars)
    +
    +    SetActiveWindow(2);
    +    Test("TimePick_MultiVar_04")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +def TestPickRangeTimeQuery():
    +
    +    OpenDatabase(silo_data_path("wave_tv.visit"))
    +    SetTimeSliderState(17)
    +
    +    AddPlot("Pseudocolor", "v")
    +    DrawPlots()
    +
    +    pickAtts = GetPickAttributes()
    +    pickAtts.doTimeCurve = 0
    +    pickAtts.variables = ("default", "v")
    +    pickAtts.timeCurveType =  pickAtts.Single_Y_Axis
    +    SetPickAttributes(pickAtts)
    +
    +    #
    +    # Return the curves without plotting, and show
    +    # highlights.
    +    #
    +    pickAtts.showPickHighlight = 1
    +    SetPickAttributes(pickAtts)
    +    options = {}
    +    options["pick_range"] = "100-105, 100, 1"
    +    options["do_time"] = 0
    +    options["return_curves"] = 1
    +    output_dict = PickByZone(options)
    +
    +    Test("TimePickRange_00")
    +    # use json.dumps for dictionary object, makes for easier parsing
    +    # of diffs when there are errors
    +    TestText("TimePickRangeDict_00",json.dumps(output_dict, indent=2))
    +    ClearPickPoints()
    +
    +    #
    +    # Plot the curves, but don't return them.
    +    #
    +    pickAtts.showPickHighlight = 0
    +    SetPickAttributes(pickAtts)
    +    options = {}
    +    options["pick_range"] = "100-105, 100, 1"
    +    options["do_time"] = 1
    +    options["return_curves"] = 0
    +    options["start_time"] = 10
    +    options["end_time"] = 14
    +    options["stride"] = 2
    +    output_dict = PickByNode(options)
    +    SetActiveWindow(2)
    +    Test("TimePickRange_01")
    +    TestText("TimePickRangeDict_01",json.dumps(output_dict, indent=2))
    +    ClearPickPoints()
    +    SetActiveWindow(1)
    +
    +    #
    +    # Plot the curves, and return them.
    +    #
    +    pickAtts.showPickHighlight = 0
    +    SetPickAttributes(pickAtts)
    +    options = {}
    +    options["pick_range"] = "100-105"
    +    options["do_time"] = 1
    +    options["return_curves"] = 1
    +    options["start_time"] = 20
    +    options["end_time"] = 60
    +    options["stride"] = 2
    +    output_dict = PickByNode(options)
    +
    +    SetActiveWindow(2)
    +    Test("TimePickRange_02")
    +    TestText("TimePickRangeDict_02",json.dumps(output_dict, indent=2))
    +    SetActiveWindow(1)
    +
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +    SetActiveWindow(1)
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def TestReturnValue():
    +    #
    +    # There used to be a bug where the return value
    +    # from previous picks would propagate to the following
    +    # time query. Let's make sure this isn't re-introduced.
    +    #
    +    OpenDatabase(silo_data_path("wave.visit"))
    +    AddPlot("Pseudocolor", "v")
    +    DrawPlots()
    +
    +    pickAtts = GetPickAttributes()
    +    pickAtts.doTimeCurve = 0
    +    pickAtts.variables = ("default", "v")
    +    pickAtts.timeCurveType =  pickAtts.Single_Y_Axis
    +    SetPickAttributes(pickAtts)
    +
    +    time1   = NodePick(coord=(3, .5, 3), do_time=1, start_time=0, end_time=70)
    +    no_time = NodePick(coord=(2, .2, 2), do_time=0)
    +    time2   = NodePick(coord=(3, .5, 3), do_time=1, start_time=0, end_time=70)
    +
    +    TestValueEQ("Pick Updated", type(time1), type(time2))
    +
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def TestDirectDatabaseRoute():
    +
    +    #
    +    # Cleanup any plots that haven't been deleted yet.
    +    #
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    OpenDatabase(data_path("mili_test_data/single_proc/d3samp6_10_longrun.plt.mili"))
    +    AddPlot("Pseudocolor", "Primal/Shared/edrate")
    +    DrawPlots()
    +
    +    element    = 116
    +    domain     = 0
    +    element    = 116
    +    preserve   = 0
    +    start      = 0
    +    stride     = 1
    +    stop       = 10000
    +    vars       = ("default")
    +
    +    #
    +    # First, let's time the query. This hard to predict because of it being dependent
    +    # on the machine's architecture, but we can make an educated guess. The direct
    +    # route should take under a second, and the old route should take at least
    +    # 30 seconds. We'll give ourselves a threshold of 10 seconds to be safe.
    +    #
    +    import time
    +    thresh = 10
    +    timer_start = time.time()
    +
    +    PickByZone(curve_plot_type=0, vars=vars, do_time=1, domain=domain, element=element,
    +        preserve_coord=preserve, end_time=stop, start_time=start, stride=stride)
    +
    +    timer_stop = time.time()
    +    res = timer_stop - timer_start
    +
    +    TestValueLE("Timing Direct Database Query", res, thresh)
    +    SetActiveWindow(2)
    +    Test("Direct_Database_Route_00")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    #
    +    # Like the original QOT, the direct route creates a clone, but this clone
    +    # differs in that its resulting dataset will NOT match the original dataset.
    +    # Let's make sure the active dataset is being updated to the old plot by
    +    # performing a new pick (not through time).
    +    #
    +    PickByZone(do_time=0, domain=domain, element=element)
    +    Test("Direct_Database_Route_01")
    +
    +    #
    +    # Test basic range settings.
    +    #
    +    start  = 100
    +    stop   = 900
    +    stride = 10
    +    PickByZone(curve_plot_type=0, vars=vars, do_time=1, domain=domain, element=element,
    +        preserve_coord=preserve, end_time=stop, start_time=start, stride=stride)
    +    stride = 1
    +    start  = 0
    +    stop   = 10000
    +    SetActiveWindow(2)
    +    Test("Direct_Database_Route_02")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "Primal/node/nodacc/ax")
    +    DrawPlots()
    +
    +    # This tests two things:
    +    #    1. Plotting a node pick curve.
    +    #    2. Using a direct route query on magnitude expression.
    +    #
    +    vars=("Primal/node/nodacc_magnitude")
    +    PickByNode(curve_plot_type=0, vars=vars, do_time=1, domain=domain, element=element,
    +        preserve_coord=preserve, end_time=stop, start_time=start, stride=stride)
    +    SetActiveWindow(2)
    +    Test("Direct_Database_Route_03")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    DeleteAllPlots()
    +    OpenDatabase(data_path("mili_test_data/single_proc/m_plot.mili"))
    +    AddPlot("Pseudocolor", "Primal/brick/stress/sx")
    +    DrawPlots()
    +
    +    #
    +    # Test plotting multiple variables at once.
    +    #
    +    element = 489
    +    vars=("Primal/brick/stress/sz", "Primal/brick/stress/sx")
    +    PickByZone(curve_plot_type=0, vars=vars, do_time=1, domain=domain, element=element,
    +        preserve_coord=preserve, end_time=stop, start_time=start, stride=stride)
    +    SetActiveWindow(2)
    +    Test("Direct_Database_Route_04")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    #
    +    # Testing the multi curve plot.
    +    #
    +    PickByZone(curve_plot_type=1, vars=vars, do_time=1, domain=domain, element=element,
    +        preserve_coord=preserve, end_time=stop, start_time=start, stride=stride)
    +    SetActiveWindow(2)
    +    Test("Direct_Database_Route_05")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    #
    +    # Test multi-domain data.
    +    #
    +    DeleteAllPlots()
    +    OpenDatabase(data_path("mili_test_data/multi_proc/d3samp6.plt.mili"))
    +    AddPlot("Pseudocolor", "Primal/Shared/edrate")
    +    DrawPlots()
    +    domain = 5
    +    element = 14
    +    vars = ("default")
    +    PickByZone(curve_plot_type=0, vars=vars, do_time=1, domain=domain, element=element,
    +        preserve_coord=preserve, end_time=stop, start_time=start, stride=stride)
    +    SetActiveWindow(2)
    +    Test("Direct_Database_Route_06")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    DeleteAllPlots()
    +
    +    #
    +    # Now let's test a variable that is not defined on all
    +    # timesteps.
    +    #
    +    db = silo_data_path("wave_tv*.silo database")
    +    OpenDatabase(db)
    +    SetTimeSliderState(17)
    +    ReOpenDatabase(db)
    +    AddPlot("Pseudocolor", "transient")
    +    DrawPlots()
    +
    +    pick = GetPickAttributes()
    +    pick.doTimeCurve = 1
    +    pick.timePreserveCoord = 0
    +    SetPickAttributes(pick)
    +    PickByNode(element=327)
    +
    +    pick.doTimeCurve = 0
    +    pick.timePreserveCoord = 1
    +    SetPickAttributes(pick)
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("Direct_Database_Route_07")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    #
    +    # Next, let's test a vector plot. The vectors should be reduced
    +    # to their magnitudes.
    +    #
    +    AddPlot("Vector", "direction")
    +    DrawPlots()
    +
    +    pick = GetPickAttributes()
    +    pick.doTimeCurve = 1
    +    pick.timePreserveCoord = 0
    +    SetPickAttributes(pick)
    +    PickByNode(element=10)
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("Direct_Database_Route_08")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    #
    +    # Next, let's test using the direct database route on verdict metrics.
    +    #
    +    OpenDatabase(data_path("mili_test_data/single_proc/d3samp6.plt.mili"))
    +    AddPlot("Pseudocolor", "mesh_quality/mesh1/skew")
    +    DrawPlots()
    +
    +    domain     = 0
    +    element    = 116
    +    preserve   = 0
    +    start      = 0
    +    stride     = 1
    +    stop       = 10000
    +
    +    vars=("default")
    +    PickByZone(curve_plot_type=0, vars=vars, do_time=1, domain=domain, element=element,
    +        preserve_coord=preserve, end_time=stop, start_time=start, stride=stride)
    +
    +    SetActiveWindow(2)
    +    Test("Direct_Database_Route_09")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    #
    +    # This is a continuation of testing verdicts, but this is an edge case that should
    +    # be handled when plotting multiple variables. The case occurs when our active
    +    # variable does not depend on mesh coodinates, but we also request a variable that
    +    # requires mesh coordinates (like verdict). There is a re-ordering that needs to
    +    # take place during the request retrieval process.
    +    #
    +    AddPlot("Pseudocolor", "Primal/Shared/strain/ezx")
    +    DrawPlots()
    +
    +    vars=("default", "mesh_quality/mesh1/face_planarity")
    +    PickByZone(curve_plot_type=0, vars=vars, do_time=1, domain=domain, element=element,
    +        preserve_coord=preserve, end_time=stop, start_time=start, stride=stride)
    +
    +    SetActiveWindow(2)
    +    Test("Direct_Database_Route_10")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    vars=("default", "mesh_quality/mesh1/face_planarity")
    +    PickByZone(curve_plot_type=1, vars=vars, do_time=1, domain=domain, element=element,
    +        preserve_coord=preserve, end_time=stop, start_time=start, stride=stride)
    +
    +    SetActiveWindow(2)
    +    Test("Direct_Database_Route_11")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +
    +def TestOperatorCreatedVar():
    +    OpenDatabase(silo_data_path("wave.visit"))
    +    DefineVectorExpression("normals", "cell_surface_normal(quadmesh)")
    +
    +    AddPlot("Pseudocolor", "operators/Flux/quadmesh")
    +
    +    fluxAtts = FluxAttributes()
    +    fluxAtts.flowField = "direction"
    +    SetOperatorOptions(fluxAtts)
    +
    +    AddOperator("Slice")
    +    sliceAtts = SliceAttributes()
    +    sliceAtts.axisType = sliceAtts.Arbitrary
    +    sliceAtts.normal = (0, 1, 0)
    +    sliceAtts.originType = sliceAtts.Percent
    +    sliceAtts.originPercent = 50
    +    sliceAtts.project2d = 0
    +    SetOperatorOptions(sliceAtts)
    +
    +    AddOperator("DeferExpression")
    +    deferAtts = DeferExpressionAttributes()
    +    deferAtts.exprs = ("normals")
    +    SetOperatorOptions(deferAtts)
    +
    +    # we want slice before flux, so demote it
    +    DemoteOperator(1)
    +
    +    DrawPlots()
    +
    +    qt = GetQueryOverTimeAttributes()
    +    qt.timeType = qt.Cycle
    +    SetQueryOverTimeAttributes(qt)
    +
    +    QueryOverTime("Weighted Variable Sum")
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("OperatorCreatedVar_01")
    +
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    DeleteExpression("normals")
    +    CloseDatabase(silo_data_path("wave.visit"))
    +
    +def TimeQueryMain():
    +    TestAllTimeQueries()
    +    TestFilledBoundary()
    +    TestOperators()
    +    TestExpressions()
    +    TestTransientVariable()
    +    TestSpecifyTimeQueryWindow()
    +    TestTimeVaryingSIL()
    +    TestQueryAfterQueryOverTime()
    +    TestMili()
    +    MultiVarTimePick()
    +    TestPickRangeTimeQuery()
    +    TestReturnValue()
    +    TestDirectDatabaseRoute()
    +    TestOperatorCreatedVar()
    +
    +# main
    +InitAnnotation()
    +SetCurvePlotDefaults()
    +TimeQueryMain()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_queryMultiWindow.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_queryMultiWindow.html new file mode 100644 index 000000000..01263f4bd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_queryMultiWindow.html @@ -0,0 +1,40 @@ + +Results for queries/queryMultiWindow.py + +

    Results of VisIt Regression Test - queries/queryMultiWindow

    + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    QueryMultiWindow0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_queryMultiWindow_py.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_queryMultiWindow_py.html new file mode 100644 index 000000000..73a38ad6f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_queryMultiWindow_py.html @@ -0,0 +1,154 @@ +queries/queryMultiWindow.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  queryMultiWindow.py #
    +#  Tests:      queries     - Database
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       May 19, 2004 
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Mon Dec 20 15:54:04 PST 2004
    +#    Changed 'Variable by Zone' to 'PickByZone' and 'Variable by Node' to
    +#    'PickByNode'.
    +#
    +#    Kathleen Bonnell, Thu Apr  3 10:00:48 PDT 2008 
    +#    Added tests from bug 8425. 
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Thu Jul 14 10:44:55 PDT 2011
    +#    Clean up unused / unnecessary query arguments. 
    +#
    +# ----------------------------------------------------------------------------
    +
    +def QueryMultiWindow():
    +    OpenDatabase(silo_data_path("wave*.silo database"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    SetTimeSliderState(31)
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0, -1, 0)
    +    v.viewUp = (0, 0, 1)
    +    SetView3D(v)
    +
    +    CloneWindow()
    +    SetTimeSliderState(64)
    +    DrawPlots()
    +    ChangeActivePlotsVar("v")
    +
    +    s = "Window 1 queries:\n"
    +    SetActiveWindow(1)
    +    Query("MinMax")
    +    s = s + GetQueryOutputString()
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString() + "\n"
    +    PickByZone(7072)
    +    s = s + GetPickOutput() + "\n"
    +    PickByNode(11168)
    +    s = s + GetPickOutput() + "\n"
    +    Query("Variable Sum")
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("NumNodes", use_actual_data=0)
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("NumZones", use_actual_data=0)
    +    s = s + GetQueryOutputString() + "\n"
    +
    +
    +    s = s + "\nWindow 2 queries:\n"
    +    SetActiveWindow(2)
    +    Query("MinMax")
    +    s = s + GetQueryOutputString()
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString() + "\n"
    +    PickByZone(7072)
    +    s = s + GetPickOutput() + "\n"
    +    PickByNode(11168)
    +    s = s + GetPickOutput() + "\n"
    +    Query("Variable Sum")
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("NumNodes", use_actual_data=0)
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("NumZones", use_actual_data=0)
    +    s = s + GetQueryOutputString() + "\n"
    +
    +    #Delete window 2
    +    DeleteWindow()
    +    #Delete plots in window 1
    +    DeleteAllPlots()
    +
    +    #bug 8425 (multiple windows, same db, same timestate)
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    DefineScalarExpression("X", "coord(quadmesh3d)[0]")
    +    DefineScalarExpression("unnamed1", "X-1")
    +    DefineScalarExpression("unnamed2", "X-2")
    +    DefineScalarExpression("unnamed3", "X-3")
    +    SetWindowLayout(4)
    +    AddPlot("Pseudocolor", "unnamed1")
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + "\n" + GetQueryOutputString() + "\n"
    +    SetActiveWindow(2)
    +    AddPlot("Pseudocolor", "unnamed2")
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n"
    +    SetActiveWindow(3)
    +    AddPlot("Pseudocolor", "unnamed3")
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n"
    +    SetActiveWindow(2)
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n"
    +
    +    SetActiveWindow(4)
    +    DeleteWindow()
    +    SetActiveWindow(3)
    +    DeleteWindow()
    +    SetActiveWindow(2)
    +    DeleteWindow()
    +    DeleteAllPlots()
    +
    +    #bug 8425 (multiple plots, same window, same db, same root var)
    +    OpenDatabase(silo_data_path("multi_rect2d.silo"))
    +
    +    DefineScalarExpression("p2", "p*p")
    +    DefineScalarExpression("p3", "p*p*p")
    +    AddPlot("Pseudocolor", "p")
    +    AddPlot("Pseudocolor", "p2")
    +    AddPlot("Pseudocolor", "p3")
    +    DrawPlots()
    +    SetActivePlots(0)
    +    Query("Weighted Variable Sum")
    +    s = s + "\n" + GetQueryOutputString() + "\n"
    +    SetActivePlots(1)
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n"
    +    SetActivePlots(2)
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n"
    +
    +    TestText("QueryMultiWindow", s)
    +
    +    DeleteAllPlots()
    +
    +# Call the main function
    +TurnOnAllAnnotations()
    +QueryMultiWindow()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_revolved_surface_area.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_revolved_surface_area.html new file mode 100644 index 000000000..646f38fc1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_revolved_surface_area.html @@ -0,0 +1,56 @@ + +Results for queries/revolved_surface_area.py + +

    Results of VisIt Regression Test - queries/revolved_surface_area

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    revolved_surface_area_010 modifications totalling 0 lines
    revolved_surface_area_020 modifications totalling 0 lines
    revolved_surface_area_030 modifications totalling 0 lines
    revolved_surface_area_040 modifications totalling 0 lines
    revolved_surface_area_050 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_revolved_surface_area_py.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_revolved_surface_area_py.html new file mode 100644 index 000000000..085f57891 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_revolved_surface_area_py.html @@ -0,0 +1,85 @@ +queries/revolved_surface_area.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  revolved_surface_area.py
    +#  Tests:      queries     - Revolved surface area of 2D plot.
    +#
    +#  Defect ID:  VisIt00004666, '3260, '3261
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 30, 2004
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Apr 29 07:40:58 PDT 2004 
    +#    Slice defaults atts have changed, update accordingly. 
    +#
    +#    Hank Childs, Thu Jan 12 15:57:52 PST 2006
    +#    Added additional tests ('3260, '3261).
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +# Test for topological dimension 2.
    +TurnOnAllAnnotations()
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +Query("Revolved surface area")
    +text = GetQueryOutputString()
    +TestText("revolved_surface_area_01", text)
    +
    +
    +# Test with isosurface operator.
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isosurface")
    +iso_atts = IsosurfaceAttributes();
    +iso_atts.contourValue = (.25)
    +iso_atts.contourMethod = iso_atts.Value
    +SetOperatorOptions(iso_atts)
    +DrawPlots()
    +
    +Query("Revolved surface area")
    +text = GetQueryOutputString()
    +TestText("revolved_surface_area_02", text)
    +
    +
    +# Test for boundary plot.
    +DeleteAllPlots()
    +AddPlot("Boundary", "mat1")
    +DrawPlots()
    +
    +Query("Revolved surface area")
    +text = GetQueryOutputString()
    +TestText("revolved_surface_area_03", text)
    +
    +
    +# Test with 3D, isosurface, slice.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isosurface")
    +SetOperatorOptions(iso_atts)
    +AddOperator("Slice")
    +s = SliceAttributes()
    +s.originIntercept = 0.5
    +s.axisType = s.YAxis
    +SetOperatorOptions(s)
    +DrawPlots()
    +
    +Query("Revolved surface area")
    +text = GetQueryOutputString()
    +TestText("revolved_surface_area_04", text)
    +
    +RemoveLastOperator()
    +Query("Revolved surface area")
    +text = GetLastError()
    +TestText("revolved_surface_area_05", text)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_scf.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_scf.html new file mode 100644 index 000000000..dfb6bac2f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_scf.html @@ -0,0 +1,96 @@ + +Results for queries/scf.py + +

    Results of VisIt Regression Test - queries/scf

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    scf_010 modifications totalling 0 lines
    scf_01_obj0 modifications totalling 0 lines
    scf_01_default_txt0 modifications totalling 0 lines
    scf_01_default_obj0 modifications totalling 0 lines
    scf_01_override_txt0 modifications totalling 0 lines
    scf_01_override_obj0 modifications totalling 0 lines
    scf_020 modifications totalling 0 lines
    scf_030.000.00
    scf_03_override0.000.00
    scf_050 modifications totalling 0 lines
    scf_05_obj0 modifications totalling 0 lines
    scf_05_override_txt0 modifications totalling 0 lines
    scf_05_override_obj0 modifications totalling 0 lines
    scf_070 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_scf_py.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_scf_py.html new file mode 100644 index 000000000..4cb4d72e4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_scf_py.html @@ -0,0 +1,150 @@ +queries/scf.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  scf.py
    +#  Tests:      queries     - spherical compactness factor
    +#
    +#  Defect ID:  VisIt00006385
    +#
    +#  Programmer: Hank Childs
    +#  Date:       July 14, 2005
    +#
    +#  Modifications:
    +#    Mark C. Miller, Fri Nov 17 22:03:34 PST 2006
    +#    Accounted for fact that threshold operator no longer has a default var
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state 
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Thu Jul 14 10:44:55 PDT 2011
    +#    Use named arguments. 
    +#
    +#    Cyrus Harrison, Wed Jul 16 15:58:54 PDT 2014
    +#    Added test cases to exercise centroid override
    +#
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#    individually to match current baseline results.
    +#
    +# ----------------------------------------------------------------------------
    +import json
    +
    +# Turn off all annotation
    +a = AnnotationAttributes()
    +TurnOffAllAnnotations(a)
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isovolume")
    +iso_atts = IsovolumeAttributes()
    +iso_atts.ubound = 0.7
    +SetOperatorOptions(iso_atts)
    +DrawPlots()
    +
    +Query("Spherical Compactness Factor")
    +text = GetQueryOutputString()
    +TestText("scf_01", text)
    +
    +res = GetQueryOutputObject()
    +TestText("scf_01_obj", json.dumps(res,indent=2))
    +
    +Query("Spherical Compactness Factor",centroid="default")
    +text = GetQueryOutputString()
    +TestText("scf_01_default_txt", text)
    +
    +res = GetQueryOutputObject()
    +TestText("scf_01_default_obj", json.dumps(res,indent=2))
    +
    +Query("Spherical Compactness Factor",centroid=[1.0,0.0,0.0])
    +text = GetQueryOutputString()
    +TestText("scf_01_override_txt", text)
    +
    +res = GetQueryOutputObject()
    +TestText("scf_01_override_obj", json.dumps(res,indent=2))
    +
    +
    +AddOperator("Revolve")
    +DrawPlots()
    +Query("Spherical Compactness Factor")
    +text = GetQueryOutputString()
    +TestText("scf_02", text)
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +AddPlot("Pseudocolor", "pressure")
    +DrawPlots()
    +
    +c = CurveAttributes()
    +c.curveColorSource = c.Custom
    +c.curveColor = (255, 0, 0, 255)
    +SetDefaultPlotOptions(c)
    +
    +QueryOverTime("Spherical Compactness Factor", stride=10)
    +
    +c = CurveAttributes()
    +c.curveColorSource = c.Custom
    +c.curveColor = (255, 0, 0, 255)
    +SetDefaultPlotOptions(c)
    +
    +SetActiveWindow(2)
    +SetAnnotationAttributes(a)
    +Test("scf_03")
    +
    +c.curveColor = (0, 255, 0, 255)
    +SetDefaultPlotOptions(c)
    +
    +SetActiveWindow(1)
    +QueryOverTime("Spherical Compactness Factor", stride=10,centroid=[1.0,0.0,0.0])
    +
    +SetActiveWindow(2)
    +SetAnnotationAttributes(a)
    +Test("scf_03_override")
    +
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +i = ThresholdAttributes()
    +i.lowerBounds = (0.0)
    +i.upperBounds = (0.5)
    +i.listedVarNames = ("d")
    +SetDefaultOperatorOptions(i)
    +AddOperator("Threshold")
    +DrawPlots()
    +# Don't test localized compactness factor until radii is sorted out.
    +#Query("Localized Compactness Factor")
    +#t = GetQueryOutputString()
    +#TestText("scf_04", t)
    +Query("Elliptical Compactness Factor")
    +t = GetQueryOutputString()
    +TestText("scf_05", t)
    +
    +res = GetQueryOutputObject()
    +TestText("scf_05_obj", json.dumps(res,indent=2))
    +
    +Query("Elliptical Compactness Factor",centroid=[1.0,0.0,0.0])
    +text = GetQueryOutputString()
    +TestText("scf_05_override_txt", text)
    +
    +res = GetQueryOutputObject()
    +TestText("scf_05_override_obj", json.dumps(res,indent=2))
    +
    +AddOperator("Revolve")
    +DrawPlots()
    +#Query("Localized Compactness Factor")
    +#t = GetQueryOutputString()
    +#TestText("scf_06", t)
    +Query("Elliptical Compactness Factor")
    +t = GetQueryOutputString()
    +TestText("scf_07", t)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_surface_area_over_time.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_surface_area_over_time.html new file mode 100644 index 000000000..4fc22b623 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_surface_area_over_time.html @@ -0,0 +1,66 @@ + +Results for queries/surface_area_over_time.py + +

    Results of VisIt Regression Test - queries/surface_area_over_time

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    SA_OverTime_00000.000.00
    SA_OverTime_00010.000.00
    SA_OverTime_00020.000.00
    SA_OverTime_00030.000.00
    SA_OverTime_00040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_surface_area_over_time_py.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_surface_area_over_time_py.html new file mode 100644 index 000000000..6705d6f90 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_surface_area_over_time_py.html @@ -0,0 +1,144 @@ +queries/surface_area_over_time.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  surface_area_over_time.py
    +#  Tests:      queries     - surface area over time
    +#
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Fri May 19 10:04:46 PDT 2017
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Tue Sep 22 13:24:42 PDT 2020
    +#    Use custom color for curves, as the color-cycling is non-deterministic
    +#    across runs.
    +#
    +# ----------------------------------------------------------------------------
    +
    +from visit_utils import *
    +
    +
    +def query_sa_stepwise(s, nts, qname):
    +    c_vals = []
    +    s_vals = []
    +    for ts in range(s, nts):
    +        TimeSliderSetState(ts)
    +        c_vals.append(query("Cycle"))
    +        s_vals.append(query(qname))
    +    f = open("_out_query_sa_stepwise.ult","w")
    +    f.write("# sa vs cycle\n")
    +    for i in range(len(c_vals)):
    +        f.write("%s %s\n" % (c_vals[i],s_vals[i]))
    +    f.close()
    +
    +def query_sa_q_over_time(s, nts, qname):
    +    TimeSliderSetState(0)
    +    QueryOverTime(qname, start_time=s, end_time=nts-1, stride=1)
    +
    +
    +def setup_PC_Iso_plot():
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "pressure")
    +    AddOperator("Isosurface")
    +    DrawPlots()
    +
    +def setup_boundary_plot():
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +    AddPlot("Boundary", "Material")
    +    DrawPlots()
    +
    +def setup_data_binning():
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    # We *Should* be using data binning like this, but there is 
    +    # a bug with query-over-time, so we add the operator separately.
    +    #AddPlot("Pseudocolor", "operators/DataBinning/2D/quadmesh")
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    AddOperator("DataBinning")
    +    DataBinningAtts = DataBinningAttributes()
    +    DataBinningAtts.numDimensions = DataBinningAtts.Two
    +    DataBinningAtts.dim1BinBasedOn = DataBinningAtts.X
    +    DataBinningAtts.dim2BinBasedOn = DataBinningAtts.Y
    +    DataBinningAtts.reductionOperator = DataBinningAtts.Maximum
    +    DataBinningAtts.varForReduction = "pressure"
    +    SetOperatorOptions(DataBinningAtts, 1)
    +
    +    DrawPlots()
    +
    +
    +def run_queries(s, numSteps, qname = "3D Surface area"):
    +    query_sa_stepwise(s, numSteps, qname)
    +    query_sa_q_over_time(s, numSteps, qname)
    +    SetActiveWindow(2)
    +    ca1 = CurveAttributes(1)
    +    ca1.curveColorSource = ca1.Custom
    +    ca1.curveColor=(255, 0, 0)
    +    SetPlotOptions(ca1)
    +    OpenDatabase("_out_query_sa_stepwise.ult")
    +    AddPlot("Curve","sa vs cycle")
    +    DrawPlots()
    +    ca2 = CurveAttributes(1)
    +    ca2.curveColorSource = ca2.Custom
    +    ca2.curveColor=(0, 255, 0)
    +    SetPlotOptions(ca2)
    +
    +
    +def open_db():
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +def clear_qot():
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    CloseDatabase("_out_query_sa_stepwise.ult")
    +    SetActiveWindow(1)
    +    TurnMaterialsOn()
    +
    +def main():
    +    open_db()
    +    setup_PC_Iso_plot()
    +    numSteps = TimeSliderGetNStates()
    +    run_queries(0, numSteps)
    +
    +    Test("SA_OverTime_0000")
    +
    +    clear_qot()
    +
    +    setup_boundary_plot()
    +    run_queries(0, numSteps)
    +    Test("SA_OverTime_0001")
    +
    +    clear_qot()
    +
    +    numSteps = 45
    +    m2 = "2 water"
    +    m1 = "1 barrier"
    +    TurnMaterialsOff(m2)
    +    run_queries(0, numSteps)
    +    Test("SA_OverTime_0002")
    +
    +    clear_qot()
    +
    +    TimeSliderSetState(1)
    +    TurnMaterialsOff(m1)
    +    run_queries(1, numSteps)
    +    Test("SA_OverTime_0003")
    +
    +
    +    clear_qot()
    +
    +    setup_data_binning()
    +    numSteps = TimeSliderGetNStates()
    +    run_queries(0, numSteps, "2D area")
    +    Test("SA_OverTime_0004")
    +
    +
    +
    +# Call the main function
    +TurnOnAllAnnotations()
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_variable_sum_volume.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_variable_sum_volume.html new file mode 100644 index 000000000..6be39ba25 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_variable_sum_volume.html @@ -0,0 +1,68 @@ + +Results for queries/variable_sum_volume.py + +

    Results of VisIt Regression Test - queries/variable_sum_volume

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    mat_10 modifications totalling 0 lines
    mat_40 modifications totalling 0 lines
    mat_90 modifications totalling 0 lines
    mat_140 modifications totalling 0 lines
    mat_190 modifications totalling 0 lines
    mat_490 modifications totalling 0 lines
    mat_1490 modifications totalling 0 lines
    vws_mult_dim0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_variable_sum_volume_py.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_variable_sum_volume_py.html new file mode 100644 index 000000000..0c4ed51b8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_variable_sum_volume_py.html @@ -0,0 +1,69 @@ +queries/variable_sum_volume.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  volume.py
    +#  Tests:      queries     - volumes of various material selected regions
    +#                          - weighted volume of dataset with cells of different
    +#                               dimension.
    +#
    +#  Programmer: Eddie Rusu
    +#  Date:       January 14, 2020
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(data_path("silo_pdb_test_data/ucd3d.silo"))
    +AddPlot("Pseudocolor", "mesh_quality/ucdmesh3d/volume", 1, 1)
    +DrawPlots()
    +
    +SetQueryFloatFormat("%g")
    +# Material 1
    +TurnMaterialsOff(("4", "9"))
    +text = Query("Variable Sum")
    +TestText("mat_1", text)
    +
    +# Material 4
    +TurnMaterialsOff("1")
    +TurnMaterialsOn("4")
    +text = Query("Variable Sum")
    +TestText("mat_4", text)
    +
    +# Material 9
    +TurnMaterialsOff("4")
    +TurnMaterialsOn("9")
    +text = Query("Variable Sum")
    +TestText("mat_9", text)
    +
    +# Material 14
    +TurnMaterialsOff("9")
    +TurnMaterialsOn(("1", "4"))
    +text = Query("Variable Sum")
    +TestText("mat_14", text)
    +
    +# Material 19
    +TurnMaterialsOff("4")
    +TurnMaterialsOn("9")
    +text = Query("Variable Sum")
    +TestText("mat_19", text)
    +
    +# Material 49
    +TurnMaterialsOff("1")
    +TurnMaterialsOn("4")
    +text = Query("Variable Sum")
    +TestText("mat_49", text)
    +
    +# Material 149
    +TurnMaterialsOn()
    +text = Query("Variable Sum")
    +TestText("mat_149", text)
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("silo_pdb_test_data/ucd3d.silo"))
    +
    +# Weighted volume query on cells of different dimension
    +OpenDatabase(data_path("silo_pdb_test_data/multi_dim_cells.silo"))
    +AddPlot("Pseudocolor", "coordx", 1, 1)
    +DrawPlots()
    +text = Query("Weighted Variable Sum")
    +TestText("vws_mult_dim", text)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_watertight.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_watertight.html new file mode 100644 index 000000000..920aed6d8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_watertight.html @@ -0,0 +1,44 @@ + +Results for queries/watertight.py + +

    Results of VisIt Regression Test - queries/watertight

    + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    watertight_010 modifications totalling 0 lines
    watertight_020 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_watertight_py.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_watertight_py.html new file mode 100644 index 000000000..df58bee7e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_watertight_py.html @@ -0,0 +1,40 @@ +queries/watertight.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  watertight.py
    +#  Tests:      queries     - watertight 
    +#
    +#  Defect ID:  VisIt00006632
    +#
    +#  Programmer: Hank Childs
    +#  Date:       September 23, 2005
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isosurface")
    +i = IsosurfaceAttributes()
    +i.contourMethod = i.Value
    +i.contourValue = 0.48
    +SetOperatorOptions(i)
    +DrawPlots()
    +
    +Query("Watertight")
    +text = GetQueryOutputString()
    +TestText("watertight_01", text)
    +
    +i.contourValue = 0.5
    +SetOperatorOptions(i)
    +Query("Watertight")
    +text = GetQueryOutputString()
    +TestText("watertight_02", text)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_xrayimage.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_xrayimage.html new file mode 100644 index 000000000..609eb6abc --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_xrayimage.html @@ -0,0 +1,1870 @@ + +Results for queries/xrayimage.py + +

    Results of VisIt Regression Test - queries/xrayimage

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    xrayimage000.000.00
    xrayimage010 modifications totalling 0 lines
    xrayimage020.000.00
    xrayimage030.000.00
    xrayimage040 modifications totalling 0 lines
    xrayimage050.000.00
    xrayimage060 modifications totalling 0 lines
    xrayimage070.000.00
    xrayimage080 modifications totalling 0 lines
    xrayimage090.000.00
    xrayimage100 modifications totalling 0 lines
    xrayimage110.000.00
    xrayimage120 modifications totalling 0 lines
    xrayimage130.000.00
    xrayimage140 modifications totalling 0 lines
    xrayimage150.000.00
    xrayimage160 modifications totalling 0 lines
    xrayimage170.000.00
    xrayimage180 modifications totalling 0 lines
    xrayimage190.000.00
    xrayimage200 modifications totalling 0 lines
    xrayimage210.000.00
    xrayimage220 modifications totalling 0 lines
    xrayimage230.000.00
    xrayimage240 modifications totalling 0 lines
    xrayimage250.000.00
    xrayimage260 modifications totalling 0 lines
    xrayimage270.000.00
    xrayimage280.000.00
    xrayimage290 modifications totalling 0 lines
    xrayimage300.000.00
    xrayimage310 modifications totalling 0 lines
    xrayimage320 modifications totalling 0 lines
    Blueprint_HDF5_X_Ray_Output_image_topo_intensities_legacy0.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_intensities_legacy_slice00.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_intensities_legacy_slice10.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_intensities_legacy_slice20.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_path_length_legacy0.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_path_length_legacy_slice00.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_path_length_legacy_slice10.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_path_length_legacy_slice20.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_intensities_legacy0.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_intensities_legacy_slice00.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_intensities_legacy_slice10.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_intensities_legacy_slice20.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_path_length_legacy0.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_path_length_legacy_slice00.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_path_length_legacy_slice10.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_path_length_legacy_slice20.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_energy_reduced_topo_intensities_legacy0.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_energy_reduced_topo_path_length_legacy0.000.00
    Blueprint_HDF5_X_Ray_Output_spectra_topo_intensities_legacy0.000.00
    Blueprint_HDF5_X_Ray_Output_spectra_topo_path_length_legacy0.000.00
    xrayimage330 modifications totalling 0 lines
    Blueprint_HDF5_X_Ray_Output_image_topo_intensities_modern0.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_intensities_modern_slice00.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_intensities_modern_slice10.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_intensities_modern_slice20.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_path_length_modern0.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_path_length_modern_slice00.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_path_length_modern_slice10.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_path_length_modern_slice20.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_intensities_modern0.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_intensities_modern_slice00.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_intensities_modern_slice10.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_intensities_modern_slice20.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_path_length_modern0.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_path_length_modern_slice00.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_path_length_modern_slice10.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_path_length_modern_slice20.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_energy_reduced_topo_intensities_modern0.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_energy_reduced_topo_path_length_modern0.000.00
    Blueprint_HDF5_X_Ray_Output_spectra_topo_intensities_modern0.000.00
    Blueprint_HDF5_X_Ray_Output_spectra_topo_path_length_modern0.000.00
    Blueprint_HDF5_X_Ray_Output1_Time
     4.8 .eq. 4.8 (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_Cycle
     48 .eq. 48 (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_xray_view
     "" .eq. "" : True
    Blueprint_HDF5_X_Ray_Output1_xray_query
     "" .eq. "" : True
    Blueprint_HDF5_X_Ray_Output1_xray_data
     "" .eq. "" : True
    Blueprint_HDF5_X_Ray_Output1_IntensityUnits
     "intensity units" .eq. "intensity units" : True
    Blueprint_HDF5_X_Ray_Output1_PathLengthUnits
     "path length metadata" .eq. "path length metadata" : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents0
     [0.0, 0.0] .eq. [0.0, 0.0]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents1
     [0.05, 0.05] .eq. [0.05, 0.05]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents2
     [0.1, 0.1] .eq. [0.1, 0.1]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents3
     [15.0, 10.0] .eq. [15.0, 10.0]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_EnergyGroupBounds
     [0. 2. 6. 8.] .eq. [0, 2, 6, 8]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_spatial_units
     "False" .eq. "False" : True
    Blueprint_HDF5_X_Ray_Output1_data_XLabels
     "width" .eq. "width" : True
    Blueprint_HDF5_X_Ray_Output1_data_YLabels
     "height" .eq. "height" : True
    Blueprint_HDF5_X_Ray_Output1_data_ZLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_HDF5_X_Ray_Output1_data_ser_XLabels
     "width" .eq. "width" : True
    Blueprint_HDF5_X_Ray_Output1_data_ser_YLabels
     "height" .eq. "height" : True
    Blueprint_HDF5_X_Ray_Output1_data_spectra_XLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_HDF5_X_Ray_Output1_Time
     4.8 .eq. 4.8 (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_Cycle
     48 .eq. 48 (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_xray_view
     "" .eq. "" : True
    Blueprint_HDF5_X_Ray_Output1_xray_query
     "" .eq. "" : True
    Blueprint_HDF5_X_Ray_Output1_xray_data
     "" .eq. "" : True
    Blueprint_HDF5_X_Ray_Output1_IntensityUnits
     "no units provided" .eq. "no units provided" : True
    Blueprint_HDF5_X_Ray_Output1_PathLengthUnits
     "no info provided" .eq. "no info provided" : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents0
     [0.0, 0.0] .eq. [0.0, 0.0]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents1
     [0.05, 0.05] .eq. [0.05, 0.05]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents2
     [0.1, 0.1] .eq. [0.1, 0.1]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents3
     [15.0, 10.0] .eq. [15.0, 10.0]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_EnergyGroupInfo
     "Energy group bounds size mismatch: provided 3 bounds, but 2 in query results." .eq. "Energy group bounds size mismatch: provided 3 bounds, but 2 in query results." : True
    Blueprint_HDF5_X_Ray_Output1_data_EnergyGroupBounds
     [0.0, 1.0] .eq. [0, 1]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_spatial_units
     "False" .eq. "False" : True
    Blueprint_HDF5_X_Ray_Output1_data_XLabels
     "width" .eq. "width" : True
    Blueprint_HDF5_X_Ray_Output1_data_YLabels
     "height" .eq. "height" : True
    Blueprint_HDF5_X_Ray_Output1_data_ZLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_HDF5_X_Ray_Output1_data_ser_XLabels
     "width" .eq. "width" : True
    Blueprint_HDF5_X_Ray_Output1_data_ser_YLabels
     "height" .eq. "height" : True
    Blueprint_HDF5_X_Ray_Output1_data_spectra_XLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_HDF5_X_Ray_Output1_Time
     4.8 .eq. 4.8 (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_Cycle
     48 .eq. 48 (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_xray_view
     "" .eq. "" : True
    Blueprint_HDF5_X_Ray_Output1_xray_query
     "" .eq. "" : True
    Blueprint_HDF5_X_Ray_Output1_xray_data
     "" .eq. "" : True
    Blueprint_HDF5_X_Ray_Output1_IntensityUnits
     "no units provided" .eq. "no units provided" : True
    Blueprint_HDF5_X_Ray_Output1_PathLengthUnits
     "no info provided" .eq. "no info provided" : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents0
     [0.0, 0.0] .eq. [0.0, 0.0]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents1
     [0.05, 0.05] .eq. [0.05, 0.05]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents2
     [0.1, 0.1] .eq. [0.1, 0.1]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents3
     [15.0, 10.0] .eq. [15.0, 10.0]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_EnergyGroupInfo
     "Energy group bounds not provided." .eq. "Energy group bounds not provided." : True
    Blueprint_HDF5_X_Ray_Output1_data_EnergyGroupBounds
     [0.0, 1.0] .eq. [0, 1]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_spatial_units
     "False" .eq. "False" : True
    Blueprint_HDF5_X_Ray_Output1_data_XLabels
     "width" .eq. "width" : True
    Blueprint_HDF5_X_Ray_Output1_data_YLabels
     "height" .eq. "height" : True
    Blueprint_HDF5_X_Ray_Output1_data_ZLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_HDF5_X_Ray_Output1_data_ser_XLabels
     "width" .eq. "width" : True
    Blueprint_HDF5_X_Ray_Output1_data_ser_YLabels
     "height" .eq. "height" : True
    Blueprint_HDF5_X_Ray_Output1_data_spectra_XLabels
     "energy_group" .eq. "energy_group" : True
    xrayimage340 modifications totalling 0 lines
    Blueprint_JSON_X_Ray_Output_image_topo_intensities_legacy0.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_intensities_legacy_slice00.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_intensities_legacy_slice10.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_intensities_legacy_slice20.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_path_length_legacy0.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_path_length_legacy_slice00.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_path_length_legacy_slice10.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_path_length_legacy_slice20.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_intensities_legacy0.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_intensities_legacy_slice00.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_intensities_legacy_slice10.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_intensities_legacy_slice20.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_path_length_legacy0.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_path_length_legacy_slice00.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_path_length_legacy_slice10.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_path_length_legacy_slice20.000.00
    Blueprint_JSON_X_Ray_Output_spatial_energy_reduced_topo_intensities_legacy0.000.00
    Blueprint_JSON_X_Ray_Output_spatial_energy_reduced_topo_path_length_legacy0.000.00
    Blueprint_JSON_X_Ray_Output_spectra_topo_intensities_legacy0.000.00
    Blueprint_JSON_X_Ray_Output_spectra_topo_path_length_legacy0.000.00
    xrayimage350 modifications totalling 0 lines
    Blueprint_JSON_X_Ray_Output_image_topo_intensities_modern0.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_intensities_modern_slice00.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_intensities_modern_slice10.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_intensities_modern_slice20.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_path_length_modern0.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_path_length_modern_slice00.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_path_length_modern_slice10.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_path_length_modern_slice20.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_intensities_modern0.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_intensities_modern_slice00.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_intensities_modern_slice10.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_intensities_modern_slice20.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_path_length_modern0.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_path_length_modern_slice00.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_path_length_modern_slice10.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_path_length_modern_slice20.000.00
    Blueprint_JSON_X_Ray_Output_spatial_energy_reduced_topo_intensities_modern0.000.00
    Blueprint_JSON_X_Ray_Output_spatial_energy_reduced_topo_path_length_modern0.000.00
    Blueprint_JSON_X_Ray_Output_spectra_topo_intensities_modern0.000.00
    Blueprint_JSON_X_Ray_Output_spectra_topo_path_length_modern0.000.00
    Blueprint_JSON_X_Ray_Output1_Time
     4.8 .eq. 4.8 (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_Cycle
     48 .eq. 48 (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_xray_view
     "" .eq. "" : True
    Blueprint_JSON_X_Ray_Output1_xray_query
     "" .eq. "" : True
    Blueprint_JSON_X_Ray_Output1_xray_data
     "" .eq. "" : True
    Blueprint_JSON_X_Ray_Output1_IntensityUnits
     "intensity units" .eq. "intensity units" : True
    Blueprint_JSON_X_Ray_Output1_PathLengthUnits
     "path length metadata" .eq. "path length metadata" : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents0
     [0.0, 0.0] .eq. [0.0, 0.0]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents1
     [0.05, 0.05] .eq. [0.05, 0.05]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents2
     [0.1, 0.1] .eq. [0.1, 0.1]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents3
     [15.0, 10.0] .eq. [15.0, 10.0]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_EnergyGroupBounds
     [0. 2. 6. 8.] .eq. [0, 2, 6, 8]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_spatial_units
     "False" .eq. "False" : True
    Blueprint_JSON_X_Ray_Output1_data_XLabels
     "width" .eq. "width" : True
    Blueprint_JSON_X_Ray_Output1_data_YLabels
     "height" .eq. "height" : True
    Blueprint_JSON_X_Ray_Output1_data_ZLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_JSON_X_Ray_Output1_data_ser_XLabels
     "width" .eq. "width" : True
    Blueprint_JSON_X_Ray_Output1_data_ser_YLabels
     "height" .eq. "height" : True
    Blueprint_JSON_X_Ray_Output1_data_spectra_XLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_JSON_X_Ray_Output1_Time
     4.8 .eq. 4.8 (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_Cycle
     48 .eq. 48 (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_xray_view
     "" .eq. "" : True
    Blueprint_JSON_X_Ray_Output1_xray_query
     "" .eq. "" : True
    Blueprint_JSON_X_Ray_Output1_xray_data
     "" .eq. "" : True
    Blueprint_JSON_X_Ray_Output1_IntensityUnits
     "no units provided" .eq. "no units provided" : True
    Blueprint_JSON_X_Ray_Output1_PathLengthUnits
     "no info provided" .eq. "no info provided" : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents0
     [0.0, 0.0] .eq. [0.0, 0.0]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents1
     [0.05, 0.05] .eq. [0.05, 0.05]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents2
     [0.1, 0.1] .eq. [0.1, 0.1]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents3
     [15.0, 10.0] .eq. [15.0, 10.0]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_EnergyGroupInfo
     "Energy group bounds size mismatch: provided 3 bounds, but 2 in query results." .eq. "Energy group bounds size mismatch: provided 3 bounds, but 2 in query results." : True
    Blueprint_JSON_X_Ray_Output1_data_EnergyGroupBounds
     [0.0, 1.0] .eq. [0, 1]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_spatial_units
     "False" .eq. "False" : True
    Blueprint_JSON_X_Ray_Output1_data_XLabels
     "width" .eq. "width" : True
    Blueprint_JSON_X_Ray_Output1_data_YLabels
     "height" .eq. "height" : True
    Blueprint_JSON_X_Ray_Output1_data_ZLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_JSON_X_Ray_Output1_data_ser_XLabels
     "width" .eq. "width" : True
    Blueprint_JSON_X_Ray_Output1_data_ser_YLabels
     "height" .eq. "height" : True
    Blueprint_JSON_X_Ray_Output1_data_spectra_XLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_JSON_X_Ray_Output1_Time
     4.8 .eq. 4.8 (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_Cycle
     48 .eq. 48 (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_xray_view
     "" .eq. "" : True
    Blueprint_JSON_X_Ray_Output1_xray_query
     "" .eq. "" : True
    Blueprint_JSON_X_Ray_Output1_xray_data
     "" .eq. "" : True
    Blueprint_JSON_X_Ray_Output1_IntensityUnits
     "no units provided" .eq. "no units provided" : True
    Blueprint_JSON_X_Ray_Output1_PathLengthUnits
     "no info provided" .eq. "no info provided" : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents0
     [0.0, 0.0] .eq. [0.0, 0.0]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents1
     [0.05, 0.05] .eq. [0.05, 0.05]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents2
     [0.1, 0.1] .eq. [0.1, 0.1]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents3
     [15.0, 10.0] .eq. [15.0, 10.0]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_EnergyGroupInfo
     "Energy group bounds not provided." .eq. "Energy group bounds not provided." : True
    Blueprint_JSON_X_Ray_Output1_data_EnergyGroupBounds
     [0.0, 1.0] .eq. [0, 1]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_spatial_units
     "False" .eq. "False" : True
    Blueprint_JSON_X_Ray_Output1_data_XLabels
     "width" .eq. "width" : True
    Blueprint_JSON_X_Ray_Output1_data_YLabels
     "height" .eq. "height" : True
    Blueprint_JSON_X_Ray_Output1_data_ZLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_JSON_X_Ray_Output1_data_ser_XLabels
     "width" .eq. "width" : True
    Blueprint_JSON_X_Ray_Output1_data_ser_YLabels
     "height" .eq. "height" : True
    Blueprint_JSON_X_Ray_Output1_data_spectra_XLabels
     "energy_group" .eq. "energy_group" : True
    xrayimage360 modifications totalling 0 lines
    Blueprint_YAML_X_Ray_Output_image_topo_intensities_legacy0.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_intensities_legacy_slice00.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_intensities_legacy_slice10.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_intensities_legacy_slice20.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_path_length_legacy0.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_path_length_legacy_slice00.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_path_length_legacy_slice10.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_path_length_legacy_slice20.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_intensities_legacy0.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_intensities_legacy_slice00.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_intensities_legacy_slice10.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_intensities_legacy_slice20.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_path_length_legacy0.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_path_length_legacy_slice00.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_path_length_legacy_slice10.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_path_length_legacy_slice20.000.00
    Blueprint_YAML_X_Ray_Output_spatial_energy_reduced_topo_intensities_legacy0.000.00
    Blueprint_YAML_X_Ray_Output_spatial_energy_reduced_topo_path_length_legacy0.000.00
    Blueprint_YAML_X_Ray_Output_spectra_topo_intensities_legacy0.000.00
    Blueprint_YAML_X_Ray_Output_spectra_topo_path_length_legacy0.000.00
    xrayimage370 modifications totalling 0 lines
    Blueprint_YAML_X_Ray_Output_image_topo_intensities_modern0.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_intensities_modern_slice00.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_intensities_modern_slice10.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_intensities_modern_slice20.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_path_length_modern0.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_path_length_modern_slice00.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_path_length_modern_slice10.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_path_length_modern_slice20.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_intensities_modern0.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_intensities_modern_slice00.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_intensities_modern_slice10.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_intensities_modern_slice20.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_path_length_modern0.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_path_length_modern_slice00.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_path_length_modern_slice10.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_path_length_modern_slice20.000.00
    Blueprint_YAML_X_Ray_Output_spatial_energy_reduced_topo_intensities_modern0.000.00
    Blueprint_YAML_X_Ray_Output_spatial_energy_reduced_topo_path_length_modern0.000.00
    Blueprint_YAML_X_Ray_Output_spectra_topo_intensities_modern0.000.00
    Blueprint_YAML_X_Ray_Output_spectra_topo_path_length_modern0.000.00
    Blueprint_YAML_X_Ray_Output1_Time
     4.8 .eq. 4.8 (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_Cycle
     48 .eq. 48 (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_xray_view
     "" .eq. "" : True
    Blueprint_YAML_X_Ray_Output1_xray_query
     "" .eq. "" : True
    Blueprint_YAML_X_Ray_Output1_xray_data
     "" .eq. "" : True
    Blueprint_YAML_X_Ray_Output1_IntensityUnits
     "intensity units" .eq. "intensity units" : True
    Blueprint_YAML_X_Ray_Output1_PathLengthUnits
     "path length metadata" .eq. "path length metadata" : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents0
     [0.0, 0.0] .eq. [0.0, 0.0]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents1
     [0.05, 0.05] .eq. [0.05, 0.05]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents2
     [0.1, 0.1] .eq. [0.1, 0.1]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents3
     [15.0, 10.0] .eq. [15.0, 10.0]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_EnergyGroupBounds
     [0. 2. 6. 8.] .eq. [0, 2, 6, 8]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_spatial_units
     "False" .eq. "False" : True
    Blueprint_YAML_X_Ray_Output1_data_XLabels
     "width" .eq. "width" : True
    Blueprint_YAML_X_Ray_Output1_data_YLabels
     "height" .eq. "height" : True
    Blueprint_YAML_X_Ray_Output1_data_ZLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_YAML_X_Ray_Output1_data_ser_XLabels
     "width" .eq. "width" : True
    Blueprint_YAML_X_Ray_Output1_data_ser_YLabels
     "height" .eq. "height" : True
    Blueprint_YAML_X_Ray_Output1_data_spectra_XLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_YAML_X_Ray_Output1_Time
     4.8 .eq. 4.8 (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_Cycle
     48 .eq. 48 (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_xray_view
     "" .eq. "" : True
    Blueprint_YAML_X_Ray_Output1_xray_query
     "" .eq. "" : True
    Blueprint_YAML_X_Ray_Output1_xray_data
     "" .eq. "" : True
    Blueprint_YAML_X_Ray_Output1_IntensityUnits
     "no units provided" .eq. "no units provided" : True
    Blueprint_YAML_X_Ray_Output1_PathLengthUnits
     "no info provided" .eq. "no info provided" : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents0
     [0.0, 0.0] .eq. [0.0, 0.0]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents1
     [0.05, 0.05] .eq. [0.05, 0.05]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents2
     [0.1, 0.1] .eq. [0.1, 0.1]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents3
     [15.0, 10.0] .eq. [15.0, 10.0]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_EnergyGroupInfo
     "Energy group bounds size mismatch: provided 3 bounds, but 2 in query results." .eq. "Energy group bounds size mismatch: provided 3 bounds, but 2 in query results." : True
    Blueprint_YAML_X_Ray_Output1_data_EnergyGroupBounds
     [0.0, 1.0] .eq. [0, 1]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_spatial_units
     "False" .eq. "False" : True
    Blueprint_YAML_X_Ray_Output1_data_XLabels
     "width" .eq. "width" : True
    Blueprint_YAML_X_Ray_Output1_data_YLabels
     "height" .eq. "height" : True
    Blueprint_YAML_X_Ray_Output1_data_ZLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_YAML_X_Ray_Output1_data_ser_XLabels
     "width" .eq. "width" : True
    Blueprint_YAML_X_Ray_Output1_data_ser_YLabels
     "height" .eq. "height" : True
    Blueprint_YAML_X_Ray_Output1_data_spectra_XLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_YAML_X_Ray_Output1_Time
     4.8 .eq. 4.8 (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_Cycle
     48 .eq. 48 (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_xray_view
     "" .eq. "" : True
    Blueprint_YAML_X_Ray_Output1_xray_query
     "" .eq. "" : True
    Blueprint_YAML_X_Ray_Output1_xray_data
     "" .eq. "" : True
    Blueprint_YAML_X_Ray_Output1_IntensityUnits
     "no units provided" .eq. "no units provided" : True
    Blueprint_YAML_X_Ray_Output1_PathLengthUnits
     "no info provided" .eq. "no info provided" : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents0
     [0.0, 0.0] .eq. [0.0, 0.0]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents1
     [0.05, 0.05] .eq. [0.05, 0.05]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents2
     [0.1, 0.1] .eq. [0.1, 0.1]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents3
     [15.0, 10.0] .eq. [15.0, 10.0]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_EnergyGroupInfo
     "Energy group bounds not provided." .eq. "Energy group bounds not provided." : True
    Blueprint_YAML_X_Ray_Output1_data_EnergyGroupBounds
     [0.0, 1.0] .eq. [0, 1]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_spatial_units
     "False" .eq. "False" : True
    Blueprint_YAML_X_Ray_Output1_data_XLabels
     "width" .eq. "width" : True
    Blueprint_YAML_X_Ray_Output1_data_YLabels
     "height" .eq. "height" : True
    Blueprint_YAML_X_Ray_Output1_data_ZLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_YAML_X_Ray_Output1_data_ser_XLabels
     "width" .eq. "width" : True
    Blueprint_YAML_X_Ray_Output1_data_ser_YLabels
     "height" .eq. "height" : True
    Blueprint_YAML_X_Ray_Output1_data_spectra_XLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_Positive_Detector_width
     22.393226323783825 .eq. 22.3932263237838 (prec=5) : True
    Blueprint_Positive_Detector_height
     16.79491924231027 .eq. 16.7949192423103 (prec=5) : True
    Blueprint_HDF5_Imaging_Planes00.000.00
    Blueprint_HDF5_Imaging_Planes10.000.00
    NonSquare_Pixels_Ray_trace_setup_10.000.00
    NonSquare_Pixels_Ray_trace_setup_20.000.00
    NonSquare_Pixels_Ray_trace_setup_30.000.00
    NonSquare_Pixels_Ray_trace_setup_40.000.00
    NonSquare_Pixels_Ray_trace_setup_50.000.00
    NonSquare_Pixels_Ray_trace_setup_60.000.00
    NonSquare_Pixels_Ray_trace_setup_70.000.00
    NonSquare_Pixels_Ray_trace_setup_80.000.00
    NonSquare_Pixels_hi_res_images10.000.00
    NonSquare_Pixels_hi_res_images20.000.00
    NonSquare_Pixels_hi_res_images30.000.00
    NonSquare_Pixels_hi_res_images40.000.00
    NonSquare_Pixels_hi_res_images50.000.00
    NonSquare_Pixels_hi_res_images60.000.00
    NonSquare_Pixels_hi_res_images70.000.00
    NonSquare_Pixels_hi_res_images80.000.00
    NonSquare_Pixels_low_res_mesh_plots10.000.00
    NonSquare_Pixels_low_res_mesh_plots20.000.00
    NonSquare_Pixels_low_res_mesh_plots30.000.00
    NonSquare_Pixels_low_res_mesh_plots40.000.00
    NonSquare_Pixels_low_res_mesh_plots50.000.00
    NonSquare_Pixels_low_res_mesh_plots60.000.00
    NonSquare_Pixels_low_res_mesh_plots70.000.00
    NonSquare_Pixels_low_res_mesh_plots80.000.00
    xrayimage38
     "None" .eq. "None" : True
    xrayimage39
     "None" .eq. "None" : True
    Test_filenames_for_jpeg_outputs0 modifications totalling 0 lines
    Test_filenames_for_png_outputs0 modifications totalling 0 lines
    Test_filenames_for_tif_outputs0 modifications totalling 0 lines
    Test_filenames_for_bof_outputs0 modifications totalling 0 lines
    Test_filenames_for_bov_outputs0 modifications totalling 0 lines
    Test_filenames_for_json_outputs0 modifications totalling 0 lines
    Test_filenames_for_hdf5_outputs0 modifications totalling 0 lines
    Test_filenames_for_yaml_outputs0 modifications totalling 0 lines
    Test_filenames_for_family0_outputs0 modifications totalling 0 lines
    Test_filenames_for_family1_outputs0 modifications totalling 0 lines
    detect and warn numpy array as query param
     "True" .eq. "True" : True
    numpy array converted to list works as query param
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/queries_xrayimage_py.html b/2024-12-12-22:00/poodle_trunk_parallel/queries_xrayimage_py.html new file mode 100644 index 000000000..a5368dfab --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/queries_xrayimage_py.html @@ -0,0 +1,1341 @@ +queries/xrayimage.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  xrayimage.py
    +#  Tests:      queries     - xray imagel
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       July 13, 2010
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Jul 14 10:44:55 PDT 2011
    +#    Change most of code to use python dictionary to pass query parameters.
    +#    First call to 'Query' still tests old-style argument passing.
    +#    Second call to 'Query' creates a Python dictionary from scratch and
    +#    uses that.  Prior to third call to Query, retrieve default dictionary via
    +#    GetQueryParameters.  All subsequent calls to Query modify that dictionary 
    +#    object as necessary and pass it.
    +#
    +#    Kathleen Biagas, Wed Oct 17 14:25:05 PDT 2012
    +#    Show usage of new 'up_vector' parameter.
    +# 
    +#    Justin Privitera, Tue Jun 14 10:02:21 PDT 2022
    +#    Change tests to reflect new ability to send output directory to query.
    +# 
    +#    Justin Privitera, Wed Jun 15 16:43:34 PDT 2022
    +#    Added tests for new blueprint output.
    +# 
    +#    Justin Privitera, Wed Jul 20 13:54:06 PDT 2022
    +#    Added query output msg tests and tests for query errors.
    +# 
    +#    Justin Privitera, Thu Sep  8 16:29:06 PDT 2022
    +#    Added new tests for blueprint output metadata.
    +# 
    +#    Justin Privitera, Tue Sep 27 10:52:59 PDT 2022
    +#    Changed names of most output files to reflect new naming conventions.
    +#    Added tests for filenames, all output types, and result messages.
    +# 
    +#    Justin Privitera, Fri Sep 30 15:54:40 PDT 2022
    +#    Changed location of temp output files.
    +#    os.remove is gone.
    +#    tmp/baddir is gone, replaced.
    +#    These changes were made so the tests no longer crash on windows.
    +# 
    +#    Justin Privitera, Tue Nov 15 14:54:35 PST 2022
    +#    Added new tests for additional blueprint output metadata as well as
    +#    imaging plane topologies.
    +# 
    +#    Justin Privitera, Tue Nov 22 14:56:04 PST 2022
    +#    Updated numbering on later tests.
    +#    Reorganized blueprint tests so they use a function. That function also
    +#    uses new and old query calls, doubling the number of blueprint tests.
    +#    It also tests energy group bin output for hdf5.
    +# 
    +#    Justin Privitera, Mon Nov 28 15:38:25 PST 2022
    +#    Renamed energy group bins to energy group bounds.
    +# 
    +#    Justin Privitera, Wed Nov 30 10:41:17 PST 2022
    +#    Added tests for always positive detector height and width in blueprint
    +#    metadata.
    +# 
    +#    Justin Privitera, Wed Nov 30 17:43:48 PST 2022
    +#    Added tests for piping the units through the query.
    +# 
    +#    Justin Privitera, Thu Dec  1 15:29:48 PST 2022
    +#    Tests for new location of units in blueprint output.
    +# 
    +#    Justin Privitera, Wed Dec  7 16:16:16 PST 2022
    +#    Added tests for the blueprint ray output.
    +# 
    +#    Justin Privitera, Mon Dec 12 13:28:55 PST 2022
    +#    Reworked some of the blueprint output tests to reflect changes in 
    +#    output metadata.
    +#    Added new tests for path length and spatial extent images.
    +# 
    +#    Justin Privitera, Tue Feb 14 17:02:43 PST 2023
    +#    Change all metadata to use pot_hole_case instead of camelCase.
    +#    Add test for image_topo_order_of_domain_variables.
    +#
    +#    Justin Privitera, Wed Oct 12 11:38:11 PDT 2022
    +#    Changed output type for many tests since bmp output type is removed.
    +# 
    +#    Justin Privitera, Fri Mar 10 19:06:49 PST 2023
    +#    Added tests for new spatial energy reduced topo and fields.
    +# 
    +#    Justin Privitera, Wed Mar 15 17:51:13 PDT 2023
    +#    Added tests for new spectra topo and fields.
    +# 
    +#    Justin Privitera, Wed Mar 22 16:09:52 PDT 2023
    +#     - Added logic for setting up and tearing down blueprint output type 
    +#    tests.
    +#     - Added new query choices for blueprint output that can be passed down 
    +#    into the various blueprint tests.
    +#     - Created a new class for storing these query options and passing them 
    +#    around.
    +#     - Added a new function for making slices of plots to test specific 
    +#    energy group bins.
    +#     - More consistent query args for blueprint tests
    +#     - Added slice tests for specific energy group bins.
    +# 
    +#    Justin Privitera, Wed Apr 26 14:07:01 PDT 2023
    +#    The new conduit we are using for VisIt (0.8.7) can read in simple yaml
    +#    and json (w/o bp index?) (bug was fixed) so I am updating the x ray query
    +#    tests to take advantage of this and add tests back in for yaml and json
    +#    cases.
    +#
    +#    Justin Privitera, Fri Jun 16 17:17:14 PDT 2023
    +#    Added tests for the new view width override and non square pixels 
    +#    settings.
    +# 
    +#    Justin Privitera, Fri Jul 14 17:33:07 PDT 2023
    +#    Updated tests to reflect the new reality that the complete camera spec
    +#    is now the default.
    +# 
    +#    Justin Privitera, Tue Aug 22 12:30:01 PDT 2023
    +#    Sort filename list produced by os.listdir to prevent test suite failures.
    +# 
    +#    Justin Privitera, Mon Oct 30 14:45:55 PDT 2023
    +#    Use conduit node diff to compare query results to baselines.
    +# 
    +#    Justin Privitera, Tue Oct 31 13:20:23 PDT 2023
    +#    All output folders are created at the top of the file now.
    +#    Several visit expressions have been cleaned up or removed entirely.
    +#    Code cleanup for readability.
    +#    Lowered pixel resolution for query results where we are not testing the
    +#    images.
    +#    Use the python dictionary returned by the query to tell if the query was
    +#    successful or not.
    +# 
    +#    Justin Privitera, Wed Nov 29 15:10:59 PST 2023
    +#    Use numpy.int64 to cast to wide types for diff.
    +# ----------------------------------------------------------------------------
    +
    +import os
    +import conduit
    +import numpy
    +
    +if not os.path.isdir(out_path("current","queries")):
    +    os.mkdir(out_path("current","queries"))
    +out_base = out_path("current","queries","xrayimage")
    +if not os.path.isdir(out_base):
    +    os.mkdir(out_base)
    +
    +outdir_set = pjoin(TestEnv.params["run_dir"], "testdir")
    +if not os.path.isdir(outdir_set):
    +    os.mkdir(outdir_set)
    +
    +conduit_dir_hdf5 = pjoin(outdir_set, "hdf5")
    +if not os.path.isdir(conduit_dir_hdf5):
    +    os.mkdir(conduit_dir_hdf5)
    +conduit_dir_json = pjoin(outdir_set, "json")
    +if not os.path.isdir(conduit_dir_json):
    +    os.mkdir(conduit_dir_json)
    +conduit_dir_yaml = pjoin(outdir_set, "yaml")
    +if not os.path.isdir(conduit_dir_yaml):
    +    os.mkdir(conduit_dir_yaml)
    +conduit_dir_imaging_planes0 = pjoin(outdir_set, "imaging_planes0")
    +if not os.path.isdir(conduit_dir_imaging_planes0):
    +    os.mkdir(conduit_dir_imaging_planes0)
    +conduit_dir_imaging_planes1 = pjoin(outdir_set, "imaging_planes1")
    +if not os.path.isdir(conduit_dir_imaging_planes1):
    +    os.mkdir(conduit_dir_imaging_planes1)
    +conduit_dir_detector_dims = pjoin(outdir_set, "detector_dims")
    +if not os.path.isdir(conduit_dir_detector_dims):
    +    os.mkdir(conduit_dir_detector_dims)
    +conduit_dir_nonsquare_pixels = pjoin(outdir_set, "nonsquare_pix")
    +if not os.path.isdir(conduit_dir_nonsquare_pixels):
    +    os.mkdir(conduit_dir_nonsquare_pixels)
    +
    +dir_dne = pjoin(outdir_set, "doesnotexist")
    +if os.path.isdir(dir_dne):
    +    os.rmdir(dir_dne)
    +
    +# os.chmod does not work on windows
    +if not platform.system() == "Windows":
    +    outdir_bad = pjoin(outdir_set, "baddir")
    +    if not os.path.isdir(outdir_bad):
    +        os.mkdir(outdir_bad)
    +    os.chmod(outdir_bad, 0o444)
    +
    +output_types = ["jpeg", "png", "tif", "bof", "bov", "json", "hdf5", "yaml"]
    +for i in range(0, len(output_types)):
    +    outdir_set_otype = outdir_set + "_" + output_types[i]
    +    if not os.path.isdir(outdir_set_otype):
    +        os.mkdir(outdir_set_otype)
    +
    +family_options = [0, 1]
    +for i in range(0, len(family_options)):
    +    outdir_set_family = outdir_set + "_family_" + str(family_options[i])
    +    if not os.path.isdir(outdir_set_family):
    +        os.mkdir(outdir_set_family)
    +
    +#
    +# Test a single block structured grid with scalars.
    +#
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +# old style argument passing
    +Query("XRay Image", 1, ".", 1, 0.0, 2.5, 10.0, 0, 0, 10., 10., 300, 300, ("d", "p"))
    +
    +os.rename("output.png", out_path(out_base,"xrayimage00.png"))
    +Test("xrayimage00", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage01", s)
    +
    +#
    +# Test a multi block structured grid with an array variable.
    +#
    +DefineArrayExpression("da", "array_compose(d,d)")
    +DefineArrayExpression("pa", "array_compose(p,p)")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("multi_curv3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +# create our own dictionary
    +params = dict(output_type=1,
    +              output_dir=".",
    +              divide_emis_by_absorb=1,
    +              origin=(0.0, 2.5, 10.0),
    +              up_vector=(0, 1, 0),
    +              theta=0,
    +              phi=0,
    +              width = 10.,
    +              height=10.,
    +              image_size=(300, 300),
    +              vars=("da", "pa"))
    +Query("XRay Image", params)
    +
    +os.rename("output.00.png", out_path(out_base,"xrayimage02.png"))
    +os.rename("output.01.png", out_path(out_base,"xrayimage03.png"))
    +
    +Test("xrayimage02", 0, 1)
    +Test("xrayimage03", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage04", s)
    +
    +#
    +# Test a 2d structured grid with scalars.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +params = dict()
    +params['image_size'] = (300, 300)
    +params['divide_emis_by_absorb'] = 1
    +params['width'] = 10.
    +params['height'] = 10.
    +params['vars'] = ("d", "p")
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage05.png"))
    +Test("xrayimage05", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage06", s)
    +
    +params['theta'] = 90
    +params['phi'] =  0
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage07.png"))
    +Test("xrayimage07", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage08", s)
    +
    +#
    +# Test an unstructured grid with scalars.
    +#
    +DefineScalarExpression("u1", 'recenter(((u+10.)*0.01), "zonal")')
    +DefineScalarExpression("v1", 'recenter(((v+10.)*0.01*matvf(mat1,1)), "zonal")')
    +DefineScalarExpression("v2", 'recenter(((v+10.)*0.01*matvf(mat1,2)), "zonal")')
    +DefineScalarExpression("v3", 'recenter(((v+10.)*0.01*matvf(mat1,3)), "zonal")')
    +DefineScalarExpression("v4", 'recenter(((v+10.)*0.01*matvf(mat1,4)), "zonal")')
    +DefineScalarExpression("w1", 'recenter(((w+10.)*0.01), "zonal")')
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +# Do tets.
    +params['theta'] = 0
    +params['phi'] = 0
    +params['width'] = 1.
    +params['height'] = 1.
    +params['vars'] = ("w1", "v1")
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage09.png"))
    +Test("xrayimage09", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage10", s)
    +
    +params['theta'] = 90
    +params['width'] = 4.
    +params['height'] = 4.
    +
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage11.png"))
    +Test("xrayimage11", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage12", s)
    +
    +# Do pyramids.
    +params['theta'] = 0
    +params['vars'] = ("w1", "v2")
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage13.png"))
    +Test("xrayimage13", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage14", s)
    +
    +params['theta'] = 90
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage15.png"))
    +Test("xrayimage15", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage16", s)
    +
    +# Do wedges.
    +params['theta'] = 0
    +params['width'] = 8.
    +params['height'] = 8.
    +params['vars'] = ("w1", "v3")
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage17.png"))
    +Test("xrayimage17", 0, 1)
    +
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage18", s)
    +
    +params['theta'] = 90
    +params['width'] = 20.
    +params['height'] = 20.
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage19.png"))
    +Test("xrayimage19", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage20", s)
    +
    +# Do hexes.
    +params['theta'] = 0
    +params['vars'] = ("w1", "v4")
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage21.png"))
    +Test("xrayimage21", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage22", s)
    +
    +params['theta'] = 90
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage23.png"))
    +Test("xrayimage23", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage24", s)
    +
    +#
    +# Test with perspective.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("multi_curv3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +params = dict(output_type="png",
    +              output_dir=".",
    +              divide_emis_by_absorb=1,
    +              focus=(0.0, 2.5, 15.0),
    +              view_up=(0., 1., 0.),
    +              normal=(0., 0., 1.),
    +              view_angle=30.,
    +              parallel_scale = 16.0078,
    +              near_plane = -32.0156,
    +              far_plane = 32.0156,
    +              image_pan=(0., 0.),
    +              image_zoom = 2.4,
    +              perspective = 1,
    +              image_size=(300, 300),
    +              vars=("d", "p"))
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage25.png"))
    +
    +Test("xrayimage25", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage26", s)
    +
    +#
    +# Test with background intensities.
    +#
    +DefineArrayExpression("wa", "array_compose(w1,w1)")
    +DefineArrayExpression("va", "array_compose(v4,v4)")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +params = dict(output_type="png",
    +              output_dir=".",
    +              divide_emis_by_absorb=1,
    +              theta=90.,
    +              phi=0.,
    +              width=20.,
    +              height=20.,
    +              image_size=(300, 300),
    +              vars=("wa", "va"),
    +              background_intensities=(0.05, 0.1))
    +Query("XRay Image", params)
    +
    +os.rename("output.00.png", out_path(out_base,"xrayimage27.png"))
    +os.rename("output.01.png", out_path(out_base,"xrayimage28.png"))
    +
    +Test("xrayimage27", 0, 1)
    +Test("xrayimage28", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage29", s)
    +
    +DeleteAllPlots()
    +
    +# 
    +# test setting output directory
    +# 
    +
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +# old style argument passing
    +Query("XRay Image", "png", outdir_set, 1, 0.0, 2.5, 10.0, 0, 0, 10., 10., 300, 300, ("d", "p"))
    +os.rename(outdir_set + "/output.png", out_path(out_base, "xrayimage30.png"))
    +Test("xrayimage30", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage31", s)
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("curv3d.silo"))
    +
    +#
    +# test blueprint output
    +#
    +
    +def setup_bp_test():
    +    OpenDatabase(silo_data_path("curv3d.silo"))
    +    DefineScalarExpression("d1", 'd')
    +    DefineScalarExpression("p1", 'p')
    +    DefineScalarExpression("d2", 'd * 6')
    +    DefineScalarExpression("p2", 'p * 6')
    +    DefineScalarExpression("d3", 'd * 3')
    +    DefineScalarExpression("p3", 'p * 3')
    +    DefineArrayExpression("darr", "array_compose(d1,d2,d3)")
    +    DefineArrayExpression("parr", "array_compose(p1,p2,d3)")
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +def teardown_bp_test(lite = False):
    +    DeleteAllPlots()
    +    if not lite:
    +        DeleteExpression("d1")
    +        DeleteExpression("p1")
    +        DeleteExpression("d2")
    +        DeleteExpression("p2")
    +        DeleteExpression("d3")
    +        DeleteExpression("p3")
    +        DeleteExpression("darr")
    +        DeleteExpression("parr")
    +    CloseDatabase(silo_data_path("curv3d.silo"))
    +
    +# In conduit python, int types are assumed to be int64
    +# The xray query saves bools out as int32s
    +# So the diff fails unless we take the int32 type and 
    +# cast it to int64.
    +def cast_to_wide_int_type_conduit(node, leafname):
    +    val = numpy.int64(node[leafname])
    +    node.remove_child(leafname)
    +    node[leafname] = val
    +
    +def test_bp_state_xray_view(testname, xray_view):
    +    yaml_text = """normal:
    +  x: 0.0
    +  y: 0.0
    +  z: 1.0
    +focus:
    +  x: 0.0
    +  y: 2.5
    +  z: 10.0
    +view_up:
    +  x: 0.0
    +  y: 1.0
    +  z: 0.0
    +view_angle: 30.0
    +parallel_scale: 5.0
    +view_width: 7.5
    +non_square_pixels: \"yes\"
    +near_plane: -100.0
    +far_plane: 100.0
    +image_pan:
    +  x: 0.0
    +  y: 0.0
    +image_zoom: 1.0
    +perspective: 0
    +perspective_str: \"parallel\""""
    +
    +    xray_view_base = conduit.Node()
    +    xray_view_base.parse(yaml_text, "yaml")
    +
    +    # We must make changes so that the diff will pass:
    +    cast_to_wide_int_type_conduit(xray_view, "perspective")
    +
    +    info = conduit.Node()
    +    diffval = xray_view.diff(xray_view_base, info)
    +    diff_str = info.to_yaml() if diffval else ""
    +    TestValueEQ(testname + "_xray_view", diff_str, "")
    +
    +UNITS_OFF = 0
    +UNITS_ON = 1
    +
    +def test_bp_state_xray_query(testname, xray_query, num_bins, abs_name, emis_name, units):
    +    yaml_text = f"""divide_emis_by_absorb: 1
    +divide_emis_by_absorb_str: \"yes\"
    +num_x_pixels: 300
    +num_y_pixels: 200
    +num_bins: {num_bins}
    +abs_var_name: {abs_name}
    +emis_var_name: {emis_name}
    +abs_units: {"abs units" if units == UNITS_ON else "no units provided"}
    +emis_units: {"emis units" if units == UNITS_ON else "no units provided"}"""
    +
    +    xray_query_base = conduit.Node()
    +    xray_query_base.parse(yaml_text, "yaml")
    +
    +    # We must make changes so that the diff will pass:
    +    cast_to_wide_int_type_conduit(xray_query, "divide_emis_by_absorb")
    +    cast_to_wide_int_type_conduit(xray_query, "num_x_pixels")
    +    cast_to_wide_int_type_conduit(xray_query, "num_y_pixels")
    +    cast_to_wide_int_type_conduit(xray_query, "num_bins")
    +
    +    info = conduit.Node()
    +    diffval = xray_query.diff(xray_query_base, info)
    +    diff_str = info.to_yaml() if diffval else ""
    +    TestValueEQ(testname + "_xray_query", diff_str, "");
    +
    +def test_bp_state_xray_data(testname, xray_data, int_max, pl_max):
    +    yaml_text = f"""detector_width: 15.0
    +detector_height: 10.0
    +intensity_max: {int_max}
    +intensity_min: 0.0
    +path_length_max: {pl_max}
    +path_length_min: 0.0
    +image_topo_order_of_domain_variables: \"xyz\""""
    +
    +    xray_data_base = conduit.Node()
    +    xray_data_base.parse(yaml_text, "yaml")
    +
    +    info = conduit.Node()
    +    diffval = xray_data.diff(xray_data_base, info)
    +    diff_str = info.to_yaml() if diffval else ""
    +    TestValueEQ(testname + "_xray_data", diff_str, "");
    +
    +NO_ENERGY_GROUP_BOUNDS = 0
    +ENERGY_GROUP_BOUNDS_MISMATCH = 1
    +ENERGY_GROUP_BOUNDS = 2
    +
    +class query_result_options:
    +    def __init__(self, num_bins, abs_name, emis_name, bin_state, units, int_max, pl_max):
    +        self.num_bins = num_bins
    +        self.abs_name = abs_name
    +        self.emis_name = emis_name
    +        self.bin_state = bin_state
    +        self.units = units
    +        self.int_max = int_max
    +        self.pl_max = pl_max
    +
    +def test_bp_data(testname, conduit_db, qro):
    +    xrayout = conduit.Node()
    +    conduit.relay.io.blueprint.load_mesh(xrayout, conduit_db)
    +
    +    # test metadata
    +    xray_state = xrayout["domain_000000/state"]
    +
    +    time = xray_state["time"]
    +    TestValueEQ(testname + "_Time", time, 4.8)
    +
    +    cycle = xray_state["cycle"]
    +    TestValueEQ(testname + "_Cycle", cycle, 48)
    +
    +    test_bp_state_xray_view(testname, xray_state["xray_view"])
    +    test_bp_state_xray_query(testname, xray_state["xray_query"],
    +        qro.num_bins, qro.abs_name, qro.emis_name, qro.units)
    +    test_bp_state_xray_data(testname, xray_state["xray_data"], qro.int_max, qro.pl_max)
    +
    +    # test data embedded within the fields
    +
    +    xray_fields = xrayout["domain_000000/fields"]
    +
    +    intensityUnits = xray_fields["intensities/units"]
    +    pathLengthUnits = xray_fields["path_length/units"]
    +
    +    if (qro.units == UNITS_ON):
    +        TestValueEQ(testname + "_IntensityUnits", intensityUnits, "intensity units")
    +        TestValueEQ(testname + "_PathLengthUnits", pathLengthUnits, "path length metadata")
    +    else:
    +        TestValueEQ(testname + "_IntensityUnits", intensityUnits, "no units provided")
    +        TestValueEQ(testname + "_PathLengthUnits", pathLengthUnits, "no info provided")
    +
    +    # test data embedded within the coordsets
    +
    +    xray_coordsets = xrayout["domain_000000/coordsets"]
    +
    +    spatial_coords_x = xray_coordsets["spatial_coords/values/x"]
    +    spatial_coords_y = xray_coordsets["spatial_coords/values/y"]
    +    energy_group_bounds = xray_coordsets["spatial_coords/values/z"]
    +    energy_group_info = xray_coordsets["spatial_coords/info"]
    +    TestValueEQ(testname + "_data_SpatialExtents0", [spatial_coords_x[0], spatial_coords_y[0]], [0.0, 0.0])
    +    TestValueEQ(testname + "_data_SpatialExtents1", [spatial_coords_x[1], spatial_coords_y[1]], [0.05, 0.05])
    +    TestValueEQ(testname + "_data_SpatialExtents2", [spatial_coords_x[2], spatial_coords_y[2]], [0.1, 0.1])
    +    TestValueEQ(testname + "_data_SpatialExtents3", [spatial_coords_x[-1], spatial_coords_y[-1]], [15.0, 10.0])
    +
    +    if (qro.bin_state == NO_ENERGY_GROUP_BOUNDS):
    +        TestValueEQ(testname + "_data_EnergyGroupInfo", energy_group_info, "Energy group bounds not provided.")
    +        TestValueEQ(testname + "_data_EnergyGroupBounds", [energy_group_bounds[0], energy_group_bounds[1]], [0, 1])
    +    elif (qro.bin_state == ENERGY_GROUP_BOUNDS_MISMATCH):
    +        baseline_string = "Energy group bounds size mismatch: provided 3 bounds, but 2 in query results."
    +        TestValueEQ(testname + "_data_EnergyGroupInfo", energy_group_info, baseline_string)
    +        TestValueEQ(testname + "_data_EnergyGroupBounds", [energy_group_bounds[0], energy_group_bounds[1]], [0, 1])
    +    elif (qro.bin_state == ENERGY_GROUP_BOUNDS):
    +        TestValueEQ(testname + "_data_EnergyGroupBounds", energy_group_bounds, [0, 2, 6, 8])
    +
    +    yaml_text = f"""x: {"cm" if qro.units == UNITS_ON else "no units provided"}
    +y: {"cm" if qro.units == UNITS_ON else "no units provided"}
    +z: {"kev" if qro.units == UNITS_ON else "no units provided"}"""
    +
    +    spatial_units_base = conduit.Node()
    +    spatial_units_base.parse(yaml_text, "yaml")
    +    spatial_units = xray_coordsets["spatial_coords/units"]
    +
    +    info = conduit.Node()
    +    diffval = spatial_units.diff(spatial_units_base, info)
    +    TestValueEQ(testname + "_spatial_units", diffval, False);
    +    if diffval:
    +        print(info.to_yaml())
    +
    +    xlabel = xray_coordsets["spatial_coords/labels/x"];
    +    ylabel = xray_coordsets["spatial_coords/labels/y"];
    +    zlabel = xray_coordsets["spatial_coords/labels/z"];
    +    TestValueEQ(testname + "_data_XLabels", xlabel, "width")
    +    TestValueEQ(testname + "_data_YLabels", ylabel, "height")
    +    TestValueEQ(testname + "_data_ZLabels", zlabel, "energy_group")
    +
    +    xlabel = xray_coordsets["spatial_energy_reduced_coords/labels/x"];
    +    ylabel = xray_coordsets["spatial_energy_reduced_coords/labels/y"];
    +    TestValueEQ(testname + "_data_ser_XLabels", xlabel, "width")
    +    TestValueEQ(testname + "_data_ser_YLabels", ylabel, "height")
    +
    +    xlabel = xray_coordsets["spectra_coords/labels/x"];
    +    TestValueEQ(testname + "_data_spectra_XLabels", xlabel, "energy_group")
    +
    +def calc_midpoints(arr):
    +    midpts = []
    +    for i in range(0, len(arr) - 1):
    +        midpts.append((arr[i] + arr[i + 1]) / 2)
    +    return midpts
    +
    +def z_slice(zval, mesh_name):
    +    AddOperator("Slice", 1)
    +    SetActivePlots(0)
    +    SliceAtts = SliceAttributes()
    +    SliceAtts.originType = SliceAtts.Point  # Point, Intercept, Percent, Zone, Node
    +    SliceAtts.originPoint = (0, 0, zval)
    +    SliceAtts.axisType = SliceAtts.ZAxis  # XAxis, YAxis, ZAxis, Arbitrary, ThetaPhi
    +    SliceAtts.project2d = 1
    +    SliceAtts.interactive = 1
    +    SliceAtts.meshName = mesh_name
    +    SetOperatorOptions(SliceAtts, 0, 1)
    +
    +def blueprint_test(output_type, outdir, testtextnumber, testname):
    +    for i in range(0, 2):
    +        setup_bp_test()
    +
    +        # common place for args
    +        divide_emis_by_absorb = 1
    +        origin = (0.0, 2.5, 10.0)
    +        theta = 0
    +        phi = 0
    +        width = 15
    +        height = 10
    +        image_size = (300, 200)
    +
    +        energy_group_bounds      = [0, 2, 6, 8]
    +        fake_energy_group_bounds = [0, 1, 2, 3]
    +
    +        energy_group_midpts      = calc_midpoints(energy_group_bounds)
    +        fake_energy_group_midpts = calc_midpoints(fake_energy_group_bounds)
    +
    +        calltype = "legacy" if i == 0 else "modern"
    +
    +        # run query
    +        if (i == 0):
    +            # test legacy call
    +            Query("XRay Image",
    +                  output_type,
    +                  outdir,
    +                  divide_emis_by_absorb,
    +                  origin[0],
    +                  origin[1],
    +                  origin[2],
    +                  theta,
    +                  phi,
    +                  width,
    +                  height,
    +                  image_size[0],
    +                  image_size[1],
    +                  ("darr", "parr"),
    +                  energy_group_bounds)
    +        elif (i == 1):
    +            # test modern call
    +            params = dict()
    +            params["output_type"] = output_type
    +            params["output_dir"] = outdir
    +            params["divide_emis_by_absorb"] = divide_emis_by_absorb
    +            params["origin"] = origin
    +            params["theta"] = theta
    +            params["phi"] = phi
    +            params["width"] = width
    +            params["height"] = height
    +            params["image_size"] = image_size
    +            params["vars"] = ("darr", "parr")
    +            params["energy_group_bounds"] = energy_group_bounds
    +            params["spatial_units"] = "cm"
    +            params["energy_units"] = "kev"
    +            params["abs_units"] = "abs units"
    +            params["emis_units"] = "emis units"
    +            params["intensity_units"] = "intensity units"
    +            params["path_length_info"] = "path length metadata"
    +            Query("XRay Image", params)
    +
    +        # test output message
    +        s = GetQueryOutputString()
    +        TestText("xrayimage" + str(testtextnumber + i), s)
    +        teardown_bp_test()
    +
    +        # test opening the bp output and visualizing in visit
    +        conduit_db = pjoin(outdir, "output.root")
    +        OpenDatabase(conduit_db)
    +
    +        # 
    +        # image topo
    +        # 
    +
    +        AddPlot("Pseudocolor", "mesh_image_topo/intensities")
    +        DrawPlots()
    +        Test(testname + "_image_topo_intensities_" + calltype)
    +        DeleteAllPlots()
    +
    +        # test some slices
    +        for j in range(0, len(fake_energy_group_midpts)):
    +            AddPlot("Pseudocolor", "mesh_image_topo/intensities")
    +            z_slice(fake_energy_group_midpts[j], "mesh_image_topo")
    +            DrawPlots()
    +            Test(testname + "_image_topo_intensities_" + calltype + "_slice" + str(j))
    +            DeleteAllPlots()
    +
    +        AddPlot("Pseudocolor", "mesh_image_topo/path_length")
    +        DrawPlots()
    +        Test(testname + "_image_topo_path_length_" + calltype)
    +        DeleteAllPlots()
    +
    +        # test some slices
    +        for j in range(0, len(fake_energy_group_midpts)):
    +            AddPlot("Pseudocolor", "mesh_image_topo/path_length")
    +            z_slice(fake_energy_group_midpts[j], "mesh_image_topo")
    +            DrawPlots()
    +            Test(testname + "_image_topo_path_length_" + calltype + "_slice" + str(j))
    +            DeleteAllPlots()
    +
    +        # 
    +        # spatial topo
    +        # 
    +
    +        AddPlot("Pseudocolor", "mesh_spatial_topo/intensities_spatial")
    +        DrawPlots()
    +        Test(testname + "_spatial_topo_intensities_" + calltype)
    +        DeleteAllPlots()
    +
    +        # test some slices
    +        for j in range(0, len(energy_group_midpts)):
    +            AddPlot("Pseudocolor", "mesh_spatial_topo/intensities_spatial")
    +            z_slice(energy_group_midpts[j], "mesh_spatial_topo")
    +            DrawPlots()
    +            Test(testname + "_spatial_topo_intensities_" + calltype + "_slice" + str(j))
    +            DeleteAllPlots()
    +
    +        AddPlot("Pseudocolor", "mesh_spatial_topo/path_length_spatial")
    +        DrawPlots()
    +        Test(testname + "_spatial_topo_path_length_" + calltype)
    +        DeleteAllPlots()
    +
    +        # test some slices
    +        for j in range(0, len(energy_group_midpts)):
    +            AddPlot("Pseudocolor", "mesh_spatial_topo/path_length_spatial")
    +            z_slice(energy_group_midpts[j], "mesh_spatial_topo")
    +            DrawPlots()
    +            Test(testname + "_spatial_topo_path_length_" + calltype + "_slice" + str(j))
    +            DeleteAllPlots()
    +
    +        # 
    +        # spatial energy reduced topo
    +        # 
    +
    +        AddPlot("Pseudocolor", "mesh_spatial_energy_reduced_topo/intensities_spatial_energy_reduced")
    +        DrawPlots()
    +        Test(testname + "_spatial_energy_reduced_topo_intensities_" + calltype)
    +        DeleteAllPlots()
    +
    +        AddPlot("Pseudocolor", "mesh_spatial_energy_reduced_topo/path_length_spatial_energy_reduced")
    +        DrawPlots()
    +        Test(testname + "_spatial_energy_reduced_topo_path_length_" + calltype)
    +        DeleteAllPlots()
    +
    +        # 
    +        # spectra topo
    +        # 
    +
    +        AddPlot("Curve", "mesh_spectra_topo/intensities_spectra")
    +        DrawPlots()
    +        Test(testname + "_spectra_topo_intensities_" + calltype)
    +        DeleteAllPlots()
    +
    +        AddPlot("Curve", "mesh_spectra_topo/path_length_spectra")
    +        DrawPlots()
    +        Test(testname + "_spectra_topo_path_length_" + calltype)
    +        DeleteAllPlots()
    +
    +        CloseDatabase(conduit_db)
    +
    +    units = UNITS_OFF if i == 0 else UNITS_ON
    +
    +    qro = query_result_options(num_bins=3, abs_name="darr", emis_name="parr", \
    +        bin_state=ENERGY_GROUP_BOUNDS, units=units, \
    +        int_max=1.0, pl_max=892.02587890625)
    +    test_bp_data(testname + str(i), conduit_db, qro) # bounds
    +
    +    setup_bp_test()
    +
    +    Query("XRay Image", output_type, outdir, 1, 0.0, 2.5, 10.0, 0, 0, 15., 10., 300, 200, ("d", "p"), [1,2,3])
    +    qro = query_result_options(num_bins=1, abs_name="d", emis_name="p", \
    +        bin_state=ENERGY_GROUP_BOUNDS_MISMATCH, units=UNITS_OFF, \
    +        int_max=0.241531997919083, pl_max=148.670989990234)
    +    test_bp_data(testname + str(i), conduit_db, qro) # bounds mismatch
    +
    +    Query("XRay Image", output_type, outdir, 1, 0.0, 2.5, 10.0, 0, 0, 15., 10., 300, 200, ("d", "p"))
    +    qro = query_result_options(num_bins=1, abs_name="d", emis_name="p", \
    +        bin_state=NO_ENERGY_GROUP_BOUNDS, units=UNITS_OFF, \
    +        int_max=0.241531997919083, pl_max=148.670989990234)
    +    test_bp_data(testname + str(i), conduit_db, qro) # no bounds
    +
    +    teardown_bp_test()
    +
    +blueprint_test("hdf5", conduit_dir_hdf5, 32, "Blueprint_HDF5_X_Ray_Output")
    +blueprint_test("json", conduit_dir_json, 34, "Blueprint_JSON_X_Ray_Output")
    +blueprint_test("yaml", conduit_dir_yaml, 36, "Blueprint_YAML_X_Ray_Output")
    +
    +#
    +# test detector height and width are always positive in blueprint output
    +#
    +
    +setup_bp_test()
    +
    +params = GetQueryParameters("XRay Image")
    +params["image_size"] = (4, 3)
    +params["output_type"] = "hdf5"
    +params["output_dir"] = conduit_dir_detector_dims
    +params["focus"] = (0., 2.5, 10.)
    +params["perspective"] = 1
    +params["near_plane"] = -50.
    +params["far_plane"] = 50.
    +params["vars"] = ("d", "p")
    +params["energy_group_bounds"] = [3.7, 4.2];
    +params["parallel_scale"] = 5.
    +Query("XRay Image", params)
    +
    +teardown_bp_test()
    +
    +conduit_db = pjoin(conduit_dir_detector_dims, "output.root")
    +xrayout = conduit.Node()
    +conduit.relay.io.blueprint.load_mesh(xrayout, conduit_db)
    +
    +detector_width = xrayout["domain_000000/state/xray_data/detector_width"]
    +TestValueEQ("Blueprint_Positive_Detector_width", detector_width, 22.3932263237838)
    +
    +detector_height = xrayout["domain_000000/state/xray_data/detector_height"]
    +TestValueEQ("Blueprint_Positive_Detector_height", detector_height, 16.7949192423103)
    +
    +#
    +# test imaging plane topos and ray output
    +#
    +
    +def test_imaging_planes_and_rays():
    +    for i in range(0, 2):
    +        setup_bp_test()
    +
    +        params = GetQueryParameters("XRay Image")
    +        params["image_size"] = (400, 300)
    +        params["output_dir"] = conduit_dir_imaging_planes0 if i == 0 else conduit_dir_imaging_planes1
    +        params["output_type"] = "hdf5"
    +        params["focus"] = (0., 2.5, 10.)
    +        params["perspective"] = 1
    +        params["near_plane"] = -50.
    +        params["far_plane"] = 50.
    +        params["vars"] = ("d", "p")
    +        params["parallel_scale"] = 5.
    +        Query("XRay Image", params)
    +
    +        conduit_db = pjoin(conduit_dir_imaging_planes0 if i == 0 else conduit_dir_imaging_planes1, "output.root")
    +
    +        OpenDatabase(conduit_db)
    +
    +        AddPlot("Pseudocolor", "mesh_far_plane_topo/far_plane_field", 1, 1)
    +        AddPlot("Pseudocolor", "mesh_view_plane_topo/view_plane_field", 1, 1)
    +        AddPlot("Pseudocolor", "mesh_near_plane_topo/near_plane_field", 1, 1)
    +        if i == 0:
    +            AddPlot("Pseudocolor", "mesh_ray_corners_topo/ray_corners_field", 1, 1)
    +        else:
    +            AddPlot("Pseudocolor", "mesh_ray_topo/ray_field", 1, 1)
    +        DrawPlots()
    +
    +        SetActivePlots(4)
    +        PseudocolorAtts = PseudocolorAttributes()
    +        PseudocolorAtts.invertColorTable = 1
    +        SetPlotOptions(PseudocolorAtts)
    +
    +        View3DAtts = View3DAttributes()
    +        View3DAtts.viewNormal = (-0.519145, 0.199692, -0.831031)
    +        View3DAtts.focus = (0, 2.5, 10)
    +        View3DAtts.viewUp = (-0.0954901, 0.952683, 0.288577)
    +        View3DAtts.viewAngle = 30
    +        View3DAtts.parallelScale = 58.6531
    +        View3DAtts.nearPlane = -117.306
    +        View3DAtts.farPlane = 117.306
    +        SetView3D(View3DAtts)
    +
    +        Test("Blueprint_HDF5_Imaging_Planes" + str(i))
    +
    +        teardown_bp_test()
    +        CloseDatabase(conduit_db)
    +
    +test_imaging_planes_and_rays()
    +
    +def test_non_square_pixels():
    +    DeleteAllPlots()
    +    setup_bp_test()
    +
    +    params = GetQueryParameters("XRay Image")
    +
    +    params["vars"] = ("d", "p")
    +    params["image_size"] = (300, 300)
    +    params["energy_group_bounds"] = [2.7, 6.2]
    +
    +    # filename, directory, and output type choices
    +    params["output_dir"] = conduit_dir_nonsquare_pixels
    +    params["filename_scheme"] = "family" # "none", "family", or "cycle" 
    +    params["output_type"] = "hdf5"
    +
    +    params["focus"] = (0., 2.5, 10.)
    +    params["parallel_scale"] = 10.
    +    params["near_plane"] = -25.
    +    params["far_plane"] = 25.
    +    params["view_angle"] = 30
    +    params["perspective"] = 1 # 0 parallel, 1 perspective
    +
    +    # default
    +    Query("XRay Image", params)
    +    params["image_size"] = (4, 4)
    +    Query("XRay Image", params)
    +    params["image_size"] = (300, 300)
    +
    +    # view width is set but is equal to what it would have been if it were calculated
    +    params["view_width"] = 10.
    +    Query("XRay Image", params)
    +    params["image_size"] = (4, 4)
    +    Query("XRay Image", params)
    +    params["image_size"] = (300, 300)
    +
    +    # view width is twice the length of the parallel scale
    +    params["view_width"] = 20.
    +    Query("XRay Image", params)
    +    params["image_size"] = (4, 4)
    +    Query("XRay Image", params)
    +    params["image_size"] = (300, 300)
    +
    +    # view width is half the length of the parallel scale
    +    params["view_width"] = 5.
    +    Query("XRay Image", params)
    +    params["image_size"] = (4, 4)
    +    Query("XRay Image", params)
    +
    +    conduit_db = pjoin(conduit_dir_nonsquare_pixels, "output.*.root database")
    +    OpenDatabase(conduit_db)
    +
    +    # first we test the imaging planes and rays look as we expect
    +    AddPlot("Pseudocolor", "mesh_near_plane_topo/near_plane_field")
    +    AddPlot("Pseudocolor", "mesh_view_plane_topo/view_plane_field")
    +    AddPlot("Pseudocolor", "mesh_far_plane_topo/far_plane_field")
    +    DrawPlots()
    +
    +    # Make the plot of the near plane active
    +    SetActivePlots(1)
    +    PseudocolorAtts = PseudocolorAttributes()
    +    # We invert the color table so that it is a different color from the far plane
    +    PseudocolorAtts.invertColorTable = 1
    +    SetPlotOptions(PseudocolorAtts)
    +
    +    # Make the plot of the view plane active
    +    SetActivePlots(2)
    +    PseudocolorAtts = PseudocolorAttributes()
    +    PseudocolorAtts.colorTableName = "hot_and_cold"
    +    PseudocolorAtts.invertColorTable = 1
    +    PseudocolorAtts.opacityType = PseudocolorAtts.Constant  # ColorTable, FullyOpaque, Constant, Ramp, VariableRange
    +    # We lower the opacity so that the view plane does not obstruct our view of anything.
    +    PseudocolorAtts.opacity = 0.7
    +    SetPlotOptions(PseudocolorAtts)
    +
    +    # leave the far plane as is
    +
    +    # add ray corners topo
    +    AddPlot("Mesh", "mesh_ray_corners_topo")
    +    DrawPlots()
    +    MeshAtts = MeshAttributes()
    +    MeshAtts.lineWidth = 1
    +    SetPlotOptions(MeshAtts)
    +
    +    # set view
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (-0.350116, 0.224905, -0.909306)
    +    View3DAtts.focus = (0, 2.5, 10)
    +    View3DAtts.viewUp = (0.0306245, 0.972977, 0.228862)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 34.3903
    +    View3DAtts.nearPlane = -68.7807
    +    View3DAtts.farPlane = 68.7807
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0, 2.5, 10)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +    # take pictures of all the ray setups
    +    Test("NonSquare_Pixels_Ray_trace_setup_1")
    +    TimeSliderNextState()
    +    AddPlot("Pseudocolor", "mesh_ray_topo/ray_field")
    +    DrawPlots()
    +    Test("NonSquare_Pixels_Ray_trace_setup_2")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    Test("NonSquare_Pixels_Ray_trace_setup_3")
    +    TimeSliderNextState()
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_Ray_trace_setup_4")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    Test("NonSquare_Pixels_Ray_trace_setup_5")
    +    TimeSliderNextState()
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_Ray_trace_setup_6")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    Test("NonSquare_Pixels_Ray_trace_setup_7")
    +    TimeSliderNextState()
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_Ray_trace_setup_8")
    +    HideActivePlots()
    +
    +    # cleanup
    +    TimeSliderNextState()
    +    DeleteAllPlots()
    +
    +    # take pictures of the hi-res images
    +    AddPlot("Pseudocolor", "mesh_image_topo/intensities", 1, 1)
    +    DrawPlots()
    +    ResetView()
    +    AddPlot("Pseudocolor", "mesh_spatial_topo/intensities_spatial", 1, 1)
    +    DrawPlots()
    +    HideActivePlots()
    +    SetActivePlots((0, 1))
    +    Test("NonSquare_Pixels_hi_res_images1")
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_hi_res_images2")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    TimeSliderNextState()
    +    Test("NonSquare_Pixels_hi_res_images3")
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_hi_res_images4")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    TimeSliderNextState()
    +    Test("NonSquare_Pixels_hi_res_images5")
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_hi_res_images6")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    TimeSliderNextState()
    +    Test("NonSquare_Pixels_hi_res_images7")
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_hi_res_images8")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +
    +    # cleanup
    +    TimeSliderNextState()
    +    DeleteAllPlots()
    +
    +    # take pictures of the low res images
    +    AddPlot("Pseudocolor", "mesh_image_topo/intensities", 1, 1)
    +    DrawPlots()
    +    AddPlot("Mesh", "mesh_image_topo", 1, 1)
    +    DrawPlots()
    +    AddPlot("Pseudocolor", "mesh_spatial_topo/intensities_spatial", 1, 1)
    +    DrawPlots()
    +    AddPlot("Mesh", "mesh_spatial_topo", 1, 1)
    +    DrawPlots()
    +    SetActivePlots((2, 3))
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    ResetView()
    +    SetActivePlots((0, 2, 3))
    +    SetActivePlots((0, 1, 2, 3))
    +    Test("NonSquare_Pixels_low_res_mesh_plots1")
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_low_res_mesh_plots2")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    TimeSliderNextState()
    +    ResetView()
    +    Test("NonSquare_Pixels_low_res_mesh_plots3")
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_low_res_mesh_plots4")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    TimeSliderNextState()
    +    ResetView()
    +    Test("NonSquare_Pixels_low_res_mesh_plots5")
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_low_res_mesh_plots6")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    TimeSliderNextState()
    +    ResetView()
    +    Test("NonSquare_Pixels_low_res_mesh_plots7")
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_low_res_mesh_plots8")
    +    HideActivePlots()
    +
    +    teardown_bp_test()
    +    CloseDatabase(conduit_db)
    +
    +test_non_square_pixels()
    +
    +# 
    +# test catching failures
    +# 
    +
    +# write to dir that does not exist
    +
    +setup_bp_test()
    +Query("XRay Image", "hdf5", dir_dne, 1, 0.0, 2.5, 10.0, 0, 0, 10., 10., 300, 300, ("d", "p"))
    +output_obj = GetQueryOutputObject()
    +TestValueEQ("xrayimage38", output_obj, None)
    +teardown_bp_test(True)
    +
    +# os.chmod does not work on windows
    +if not platform.system() == "Windows":
    +    # write to dir w/ read only permissions
    +    setup_bp_test()
    +    Query("XRay Image", "hdf5", outdir_bad, 1, 0.0, 2.5, 10.0, 0, 0, 10., 10., 300, 300, ("d", "p"))
    +    output_obj = GetQueryOutputObject()
    +    TestValueEQ("xrayimage39", output_obj, None)
    +    teardown_bp_test()
    +
    +# 
    +# Test filenames and output types
    +# 
    +
    +setup_bp_test()
    +
    +DefineArrayExpression("da", "array_compose(d,d)")
    +DefineArrayExpression("pa", "array_compose(p,p)")
    +
    +def query_variety(otype, scheme, thevars, outdir):
    +    SetQueryFloatFormat("%g")
    +    Query("XRay Image",
    +        background_intensity=0,
    +        divide_emis_by_absorb=0,
    +        far_plane=20,
    +        filename_scheme=scheme,
    +        family_files=0, # this is to test that family_files is ignored when filename_scheme is set
    +        focus=(0, 0, 0),
    +        image_pan=(0, 0),
    +        image_size=(3, 3),
    +        image_zoom=1,
    +        near_plane=-20,
    +        normal=(0, 0, 1),
    +        output_dir=outdir,
    +        output_ray_bounds=0,
    +        output_type=otype,
    +        parallel_scale=10,
    +        perspective=0,
    +        view_angle=30,
    +        view_up=(0, 1, 0),
    +        vars=thevars)
    +    return GetQueryOutputObject()
    +
    +def query_family_backwards_compat(family, thevars, outdir):
    +    SetQueryFloatFormat("%g")
    +    Query("XRay Image",
    +        background_intensity=0,
    +        divide_emis_by_absorb=0,
    +        far_plane=20,
    +        family_files=family,
    +        focus=(0, 0, 0),
    +        image_pan=(0, 0),
    +        image_size=(3, 3),
    +        image_zoom=1,
    +        near_plane=-20,
    +        normal=(0, 0, 1),
    +        output_dir=outdir,
    +        output_ray_bounds=0,
    +        output_type="png",
    +        parallel_scale=10,
    +        perspective=0,
    +        view_angle=30,
    +        view_up=(0, 1, 0),
    +        vars=thevars)
    +    return GetQueryOutputObject()
    +
    +filename_schemes = ["family", "family", "cycle", "none"]
    +vars_options = [("d", "p"), ("da", "pa")]
    +
    +for i in range(0, len(output_types)):
    +    outdir_set_otype = outdir_set + "_" + output_types[i]
    +    if output_types[i] == "jpeg":
    +        # create a dummy file to test the file familying
    +        open(outdir_set_otype + "/output.0000.jpg", 'w').close()
    +    info = ""
    +    for j in range(0, len(filename_schemes)):
    +        for k in range(0, len(vars_options)):
    +            info += str(query_variety(output_types[i],
    +                                      filename_schemes[j],
    +                                      vars_options[k],
    +                                      outdir_set_otype)) + "\n"
    +    info += str(sorted(os.listdir(outdir_set_otype))) + "\n"
    +    TestText("Test_filenames_for_" + output_types[i] + "_outputs", info)
    +
    +# test backwards compatibility with family_files option
    +for i in range(0, len(family_options)):
    +    outdir_set_family = outdir_set + "_family_" + str(family_options[i])
    +    info = ""
    +    for j in range(0, len(vars_options)):
    +        info += str(query_family_backwards_compat(family_options[i],
    +                                                  vars_options[j],
    +                                                  outdir_set_family)) + "\n"
    +    info += str(sorted(os.listdir(outdir_set_family))) + "\n"
    +    TestText("Test_filenames_for_family" + str(family_options[i]) + "_outputs", info)
    +
    +#
    +# Test that we get decent error messages for common cases
    +#
    +import numpy
    +
    +nporig = numpy.array([0.0, 2.5, 10.0])
    +
    +params = dict(output_type=1, output_dir=".", divide_emis_by_absorb=1, \
    +    origin=nporig, up_vector=(0, 1, 0), theta=0, phi=0, \
    +    width = 10., height=10., image_size=(300, 300), vars=("da", "pa"))
    +try:
    +    Query("XRay Image", params)
    +except (visit.VisItException, VisItException) as e:
    +    if '"origin"' in e.args[0] and "position 4" in e.args[0] and "type numpy.ndarray" in e.args[0]:
    +        TestPOA('detect and warn numpy array as query param')
    +    else:
    +        TestFOA('detect and warn numpy array as query param', LINE())
    +    pass
    +except:
    +    TestFOA('detect and warn numpy array as query param', LINE())
    +    pass
    +
    +params = dict(output_type=1, output_dir=".", divide_emis_by_absorb=1, \
    +    origin=nporig.tolist(), up_vector=(0, 1, 0), theta=0, phi=0, \
    +    width = 10., height=10., image_size=(300, 300), vars=("da", "pa"))
    +try:
    +    Query("XRay Image", params)
    +    TestPOA('numpy array converted to list works as query param')
    +except:
    +    TestFOA('numpy array converted to list works as query param', LINE())
    +    pass
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_cl_args.html b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_cl_args.html new file mode 100644 index 000000000..ccc30cb5e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_cl_args.html @@ -0,0 +1,44 @@ + +Results for quickrecipes/cl_args.py + +

    Results of VisIt Regression Test - quickrecipes/cl_args

    + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    handling command line arguments errors
     "" .eq. "" : True
    handling command line arguments no exceptions
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_cl_args_py.html b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_cl_args_py.html new file mode 100644 index 000000000..9e0c5276c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_cl_args_py.html @@ -0,0 +1,30 @@ +quickrecipes/cl_args.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Mark C. Miller, Fri Aug 26 14:31:48 PDT 2022
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Get some utils shared across many .py files used for quick recipes.
    +#
    +Source(tests_path('quickrecipes','vqr_utils.py.inc'))
    +
    +def handling_command_line_arguments():
    +
    +  try:
    +    # handling command line arguments {
    +    import sys
    +    print(Argv)
    +    print(sys.argv)
    +    # handling command line arguments }
    +    TestValueEQ('handling command line arguments errors',GetLastError(),'')
    +    TestPOA('handling command line arguments no exceptions')
    +  except Exception as inst:
    +    TestFOA('handling command line argumentts exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +handling_command_line_arguments()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_colortables.html b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_colortables.html new file mode 100644 index 000000000..29c97b50a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_colortables.html @@ -0,0 +1,72 @@ + +Results for quickrecipes/colortables.py + +

    Results of VisIt Regression Test - quickrecipes/colortables

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    standard_hot_table0.000.00
    modified_hot_table_10.000.00
    modified_hot_table_20.000.00
    hot20.000.00
    hot30.000.00
    rainbow_continuous0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_colortables_py.html b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_colortables_py.html new file mode 100644 index 000000000..b24714eda --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_colortables_py.html @@ -0,0 +1,217 @@ +quickrecipes/colortables.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  colortables.py
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       March 30, 2022
    +#
    +#  Modificatons:
    +#    Justin Privitera, Wed Aug  3 19:46:13 PDT 2022
    +#    Made changes to reflect the fact that built-in tables cannot be edited.
    +#
    +#    Mark C. Miller, Mon Dec 12 19:02:35 PST 2022
    +#    Add introspecting block
    +# ----------------------------------------------------------------------------
    +
    +
    +# NOTE: Sections of this test file are 'literalinclude'd in quickrecipes.rst.
    +# After modifying this file, ensure the proper content is still displayed in the doc.
    +
    +# comments of the form '# sometext {' and '# sometext }' bracket the sections
    +# that are 'literalinclude'd in quickrecipes.rst.
    +
    +def introspectingColorTable():
    +
    +    # introspectingColorTable {
    +    hotCT = GetColorTable("hot")
    +    print(hotCT)
    +    # results of print
    +    #    GetControlPoints(0).colors = (0, 0, 255, 255)
    +    #    GetControlPoints(0).position = 0
    +    #    GetControlPoints(1).colors = (0, 255, 255, 255)
    +    #    GetControlPoints(1).position = 0.25
    +    #    GetControlPoints(2).colors = (0, 255, 0, 255)
    +    #    GetControlPoints(2).position = 0.5
    +    #    GetControlPoints(3).colors = (255, 255, 0, 255)
    +    #    GetControlPoints(3).position = 0.75
    +    #    GetControlPoints(4).colors = (255, 0, 0, 255)
    +    #    GetControlPoints(4).position = 1
    +    #    smoothing = Linear  # NONE, Linear, CubicSpline
    +    #    equalSpacingFlag = 0
    +    #    discreteFlag = 0
    +    # introspectingColorTable }
    +
    +def modifyExistingColorTable():
    +
    +    # modifyTable1 {
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +    AddPlot("Pseudocolor", "d")
    +
    +    pc = PseudocolorAttributes()
    +    pc.centering=pc.Nodal
    +    # set color table name
    +    pc.colorTableName = "hot"
    +    SetPlotOptions(pc)
    +
    +    DrawPlots()
    +    # put the plot in full-frame mode
    +    v = GetView2D()
    +    v.fullFrameActivationMode= v.On
    +    SetView2D(v)
    +    # modifyTable1 } 
    +
    +    Test("standard_hot_table")
    +
    +    hotCTorig = GetColorTable("hot")
    +
    +    # modifyTable2 {
    +    hotCT = GetColorTable("hot")
    +
    +    # Remove a couple of control points
    +    hotCT.RemoveControlPoints(4)
    +    hotCT.RemoveControlPoints(3)
    +
    +    # We must use a different name, as VisIt will not allow overwriting of built-in color tables
    +    SetColorTable("hot_edited", hotCT)
    +
    +    # set color table name so changes to it will be reflected in plot
    +    pc.colorTableName = "hot_edited"
    +    SetPlotOptions(pc)
    +    # modifyTable2 }
    +
    +    Test("modified_hot_table_1")
    +
    +    # modifyTable3 {
    +    # Change colors
    +    hotCT.GetControlPoints(0).colors = (255,0,0,255)
    +    hotCT.GetControlPoints(1).colors = (255, 0, 255, 255)
    +    SetColorTable("hot_edited", hotCT)
    +    # modifyTable3 }
    +
    +    Test("modified_hot_table_2")
    +
    +    # modifyTable4 {
    +    # Turn on equal spacing
    +    hotCT.equalSpacingFlag = 1
    +    # Create a new color table by providing a different name
    +    SetColorTable("hot2", hotCT)
    +
    +    # tell the Pseudocolor plot to use the new color table
    +    pc.colorTableName = "hot2"
    +    SetPlotOptions(pc)
    +    # modifyTable4 }
    +
    +    Test("hot2")
    +
    +    # modifyTable5 {
    +    # Change positions so that the first and last are at the endpoints
    +    hotCT.equalSpacingFlag=0
    +    hotCT.GetControlPoints(0).position = 0
    +    hotCT.GetControlPoints(1).position =0.5
    +    hotCT.GetControlPoints(2).position = 1
    +    SetColorTable("hot3", hotCT)
    +
    +    pc.colorTableName = "hot3"
    +    SetPlotOptions(pc)
    +    # modifyTable5 }
    +
    +    Test("hot3")
    +
    +    # remove the added color tables
    +    RemoveColorTable("hot_edited")
    +    RemoveColorTable("hot2")
    +    RemoveColorTable("hot3")
    +    DeleteAllPlots()
    +
    +def createContinuous():
    +    # based on http://visitusers.org/index.php?title=Creating_a_color_table
    +
    +    # continuous1 {
    +    # create control points (red, green, blue, position).
    +    ct = ((1,0,0,0.), (1,0.8,0.,0.166), (1,1,0,0.333), (0,1,0,0.5),
    +          (0,1,1,0.666), (0,0,1,0.8333), (0.8,0.1,1,1))
    +
    +    ccpl = ColorControlPointList()
    +
    +    # add the control points to the list 
    +    for pt in ct:
    +        p = ColorControlPoint()
    +        # colors is RGBA and must be in range 0...255
    +        p.colors = (pt[0] * 255, pt[1] * 255, pt[2] * 255, 255)
    +        p.position = pt[3]
    +        ccpl.AddControlPoints(p)
    +    AddColorTable("myrainbow", ccpl)
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    AddPlot("Pseudocolor", "speed")
    +
    +    # Make the plot use the new color table
    +    pc = PseudocolorAttributes(1)
    +    pc.colorTableName = "myrainbow"
    +    SetPlotOptions(pc)
    +
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.693476, 0.212776, 0.688344)
    +    v. viewUp = (0.161927, 0.976983, -0.138864)
    +    SetView3D(v)
    +    # continuous1 }
    +
    +    Test("rainbow_continuous")
    +
    +    RemoveColorTable("myrainbow")
    +    DeleteAllPlots()
    +
    +
    +def createDiscreteUsingVTKNamedColors():
    +    # discrete1 {
    +    try:
    +        import vtk # for vtk.vtkNamedColors
    +    except:
    +        return
    +
    +    # to see list of all color names available: 
    +    # print(vtk.vtkNamedColors.GetColorNames())
    +
    +    # choose some colors from vtk.vtkNamedColors
    +    colorNames = ["tomato", "turquoise", "van_dyke_brown", "carrot",
    +                  "royalblue", "naples_yellow_deep", "cerulean", "warm_grey",
    +                  "venetian_red", "seagreen", "sky_blue", "pink"]
    +    # Create a color control point list
    +    ccpl = ColorControlPointList()
    +    # Make it discrete
    +    ccpl.discreteFlag=1
    +    # Add color control points corresponding to color names
    +    for name in colorNames:
    +        p = ColorControlPoint()
    +        p.colors=vtk.vtkNamedColors().GetColor4ub(name)
    +        ccpl.AddControlPoints(p)
    +    # add a color table based on the color control points
    +    AddColorTable("mylevels", ccpl)
    +
    +    OpenDatabase(silo_data_path("multi_rect2d.silo"))
    +    AddPlot("Subset", "domains")
    +    s = SubsetAttributes()
    +    s.colorType = s.ColorByColorTable
    +    s.colorTableName = "mylevels"
    +    SetPlotOptions(s)
    +    DrawPlots()
    +    # discrete1 }
    +
    +    Test("discrete_using_vtk")
    +
    +    # remove the added color tables
    +    RemoveColorTable("mylevels")
    +    DeleteAllPlots()
    +
    +def main():
    +    introspectingColorTable()
    +    modifyExistingColorTable()
    +    createContinuous()
    +    createDiscreteUsingVTKNamedColors()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_expressions.html b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_expressions.html new file mode 100644 index 000000000..319e1ba32 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_expressions.html @@ -0,0 +1,42 @@ + +Results for quickrecipes/expressions.py + +

    Results of VisIt Regression Test - quickrecipes/expressions

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    materials_to_values0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_expressions_py.html b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_expressions_py.html new file mode 100644 index 000000000..4f3534e5c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_expressions_py.html @@ -0,0 +1,62 @@ +quickrecipes/expressions.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  expressions.py
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       August 26, 2022
    +#
    +#  Modificatons:
    +#    Kathleen Biagas, Mon Sep 12, 2022
    +#    Change OpenDatabase call to use 'silo_data_path' so that the test can
    +#    run on Windows.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# NOTE: Sections of this test file are 'literalinclude'd in quickrecipes.rst.
    +# After modifying this file, ensure the proper content is still displayed in the doc.
    +
    +# comments of the form '# sometext {' and '# sometext }' bracket the sections
    +# that are 'literalinclude'd in quickrecipes.rst.
    +
    +# mapMaterialsToValues {
    +# Create an expression that maps material numbers to scalar values.
    +#
    +# var is the name of the expression.
    +# mat is the name of the material variable.
    +# mesh is the name of the mesh variable.
    +# pairs is a list of tuples of material number and scalar value.
    +# The material number of the last tuple of the list is ignored and the value
    +# will be used for all the remaining materials.
    +
    +def create_mat_value_expr(var, mat, mesh, pairs):
    +    expr=""
    +    parens=""
    +    nlist = len(pairs)
    +    ilist = 0
    +    for pair in pairs:
    +        ilist = ilist + 1
    +        parens = parens + ")"
    +        if (ilist == nlist):
    +            expr = expr + "zonal_constant(%s,%f" % (mesh, pair[1]) + parens
    +        else:
    +            expr=expr + "if(eq(dominant_mat(%s),zonal_constant(%s,%d)),zonal_constant(%s,%f)," % (mat, mesh, pair[0], mesh, pair[1])
    +
    +    DefineScalarExpression(var, expr)
    +
    +# Call the function to create the expression.
    +mat_val_pairs = [(1, 0.75), (3, 1.2), (6, 0.2), (7, 1.6), (8, 1.8), (11, 2.2), (-1, 2.5)]
    +
    +create_mat_value_expr("myvar", "mat1", "quadmesh2d", mat_val_pairs)
    +
    +# Create a pseudocolor plot of the expression.
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +AddPlot("Pseudocolor", "myvar")
    +DrawPlots()
    +# mapMaterialsToValues }
    +
    +Test("materials_to_values")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_operators.html b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_operators.html new file mode 100644 index 000000000..371526a48 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_operators.html @@ -0,0 +1,52 @@ + +Results for quickrecipes/operators.py + +

    Results of VisIt Regression Test - quickrecipes/operators

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    adding operators error message
     "" .eq. "" : True
    adding operators exceptions
     "True" .eq. "True" : True
    setting operator attributes error message
     "" .eq. "" : True
    setting operator attributes exceptions
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_operators_py.html b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_operators_py.html new file mode 100644 index 000000000..333c729de --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_operators_py.html @@ -0,0 +1,80 @@ +quickrecipes/operators.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Mark C. Miller, Fri Aug 26 14:31:48 PDT 2022
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Get some utils shared across many .py files used for quick recipes.
    +#
    +Source(tests_path('quickrecipes','vqr_utils.py.inc'))
    +
    +def adding_operators():
    +
    +  OpenDatabase(silo_data_path("globe.silo"))
    +  try:
    +    # adding operators {
    +    # Names of all available operator plugins as a python tuple
    +    x = OperatorPlugins()
    +
    +    print(x)
    +    # will produce output something like...
    +    # ('AMRStitchCell', 'AxisAlignedSlice4D', 'BoundaryOp', 'Box', 'CartographicProjection',
    +    #  'Clip', 'Cone', 'ConnectedComponents', 'CoordSwap', 'CreateBonds', 'Cylinder',
    +    #  'DataBinning', 'DeferExpression', 'Displace', 'DualMesh', 'Edge', 'Elevate',
    +    #  'EllipsoidSlice', 'Explode', 'ExternalSurface', ...
    +    #  ..., 'TriangulateRegularPoints', 'Tube')
    +
    +    # We need at least one plot that we can add operators to
    +    AddPlot("Pseudocolor", "dx")
    +    AddPlot("Mesh","mesh1")
    +
    +    # Add Isovolume and Slice operators using whatever their default attributes are.
    +    # The non-zero 2nd arg means to add the operator to all plots. If the 2nd argument
    +    # is not present or zero, it means to add the operator only to the *active* plots
    +    # (by default, the *active* plots are just the last plot added).
    +    AddOperator("Isovolume", 1)
    +    AddOperator("Slice", 1)
    +    DrawPlots()
    +    # adding operators }
    +    TestValueEQ('adding operators error message',GetLastError(),'')
    +    TestPOA('adding operators exceptions')
    +  except Exception as inst:
    +    TestFOA('adding operators exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def setting_operator_attributes():
    +
    +  try:
    +    # setting operator attributes {
    +    OpenDatabase("~juanita/silo/stuff/noise.silo")
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    AddOperator("Slice")
    +    s = SliceAttributes()
    +    s.originType = s.Percent
    +    s.project2d = 0
    +    SetOperatorOptions(s)
    +    DrawPlots()
    +
    +    nSteps = 20
    +    for axis in (0,1,2):
    +      s.axisType = axis
    +      for step in range(nSteps):
    +        t = float(step) / float(nSteps - 1)
    +        s.originPercent = t * 100.
    +        SetOperatorOptions(s)
    +        SaveWindow()
    +    # setting operator attributes }
    +    TestValueEQ('setting operator attributes error message',GetLastError(),'')
    +    TestPOA('setting operator attributes exceptions')
    +  except Exception as inst:
    +    TestFOA('setting operator attributes exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +adding_operators()
    +setting_operator_attributes()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_quantitative_operations.html b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_quantitative_operations.html new file mode 100644 index 000000000..cd9d6222f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_quantitative_operations.html @@ -0,0 +1,116 @@ + +Results for quickrecipes/quantitative_operations.py + +

    Results of VisIt Regression Test - quickrecipes/quantitative_operations

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    defining expressions error message
     "" .eq. "" : True
    defining expressions exceptions
     "True" .eq. "True" : True
    pick string
     hgslice:   = 2.472 .in. 
    +A: noise.silo +Mesh2D +Point: <-10, -7.55102> +Node: 300 +Incident Zones: 294 245 +hgslice: = 2.47203 + + (prec=5, at=86) : True
    pick string
     hgslice:   = 4.043 .in. 
    +D: noise.silo +Mesh2D +Point: <-1.83673, 1.83673> +Node: 1470 +Incident Zones: 1440 1391 1441 1392 +hgslice: = 4.04322 + + (prec=5, at=105) : True
    pick error message
     "" .eq. "" : True
    pick exceptions
     "True" .eq. "True" : True
    lineout 1 error message
     "" .eq. "" : True
    lineout 1 exceptions
     "True" .eq. "True" : True
    lineout 2 error message
     "" .eq. "" : True
    lineout 2 exceptions
     "True" .eq. "True" : True
    query error message
     "" .eq. "" : True
    query exceptions
     "True" .eq. "True" : True
    finding the min and max error message
     "" .eq. "" : True
    finding the min and max exceptions
     "True" .eq. "True" : True
    csv query over time error message
     "" .eq. "" : True
    csv query over time exceptions
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_quantitative_operations_py.html b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_quantitative_operations_py.html new file mode 100644 index 000000000..462be9c66 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_quantitative_operations_py.html @@ -0,0 +1,219 @@ +quickrecipes/quantitative_operations.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Mark C. Miller, Fri Aug 26 14:31:48 PDT 2022
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Get some utils shared across many .py files used for quick recipes.
    +#
    +Source(tests_path('quickrecipes','vqr_utils.py.inc'))
    +
    +def defining_expressions():
    +
    +  try:
    +    # defining expressions {
    +    # Creating a new expression
    +    OpenDatabase("~juanita/silo/stuff/noise.silo")
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +    DefineScalarExpression("newvar", "sin(hardyglobal) + cos(shepardglobal)")
    +    ChangeActivePlotsVar("newvar")
    +    # defining expressions }
    +    TestValueEQ('defining expressions error message',GetLastError(),'')
    +    TestPOA('defining expressions exceptions')
    +  except Exception as inst:
    +    TestFOA('defining expressions exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def pick():
    +
    +  try:
    +    # pick {
    +    OpenDatabase("~juanita/silo/stuff/noise.silo")
    +    AddPlot("Pseudocolor", "hgslice")
    +    DrawPlots()
    +    s = []
    +    # Pick by a node id
    +    PickByNode(300)
    +    s = s + [GetPickOutput()]
    +    # Pick by a cell id
    +    PickByZone(250)
    +    s = s + [GetPickOutput()]
    +    # Pick on a cell using a 3d point
    +    Pick((-2., 2., 0.))
    +    s = s + [GetPickOutput()]
    +    # Pick on the node closest to (-2,2,0)
    +    NodePick((-2,2,0))
    +    s = s + [GetPickOutput()]
    +    # Print all pick results
    +    print(s)
    +    # Will produce output somewhat like...
    +    # ['\nA:  noise.silo\nMesh2D \nPoint: <-10, -7.55102>\nNode:...
    +    #  '\nD:  noise.silo\nMesh2D \nPoint: <-1.83673, 1.83673>\nNode:...
    +    #  ...\nhgslice:  <nodal> = 4.04322\n\n']
    +    # pick }
    +    TestValueIN('pick string',s[0],'hgslice:  <nodal> = 2.472')
    +    TestValueIN('pick string',s[3],'hgslice:  <nodal> = 4.043')
    +    TestValueEQ('pick error message',GetLastError(),'')
    +    TestPOA('pick exceptions')
    +  except Exception as inst:
    +    TestFOA('pick exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def lineout1():
    +
    +  try:
    +    # lineout 1 {
    +    p0 = (-5,-3, 0)
    +    p1 = ( 5, 8, 0)
    +    OpenDatabase("~juanita/silo/stuff/noise.silo")
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +    Lineout(p0, p1)
    +    # Specify 65 sample points
    +    Lineout(p0, p1, 65)
    +    # Do three variables ("default" is "hardyglobal")
    +    Lineout(p0, p1, ("default", "airVf", "radial"))
    +    # lineout 1 }
    +    TestValueEQ('lineout 1 error message',GetLastError(),'')
    +    TestPOA('lineout 1 exceptions')
    +  except Exception as inst:
    +    TestFOA('lineout 1 exception "%s"'%str(inst), LINE())
    +    pass
    +  # No cleanup because next method uses results from this
    +  # DeleteWindow()
    +  # vqr_cleanup()
    +
    +def lineout2():
    +
    +  try:
    +    # lineout 2 {
    +    # Set active window to one containing Lineout curve plots (typically #2)
    +    SetActiveWindow(2)
    +    # Get array of x,y pairs for first curve plot in window
    +    SetActivePlots(0)
    +    hg_vals = GetPlotInformation()["Curve"]
    +    # Get array of x,y pairs for second curve plot in window
    +    SetActivePlots(1)
    +    avf_vals = GetPlotInformation()["Curve"]
    +    # Get array of x,y pairs for third curve plot in window
    +    SetActivePlots(2)
    +    rad_vals = GetPlotInformation()["Curve"]
    +
    +    # Write it as CSV data to a file
    +    for i in range(int(len(hg_vals) / 2)):
    +        idx = i*2+1 # take only y-values in each array
    +        print("%g,%g,%g" % (hg_vals[idx], avf_vals[idx], rad_vals[idx]))
    +    # lineout 2 }
    +    TestValueEQ('lineout 2 error message',GetLastError(),'')
    +    TestPOA('lineout 2 exceptions')
    +  except Exception as inst:
    +    TestFOA('lineout 2 exception "%s"'%str(inst), LINE())
    +    pass
    +  DeleteWindow()
    +  vqr_cleanup()
    +
    +def query():
    +
    +  try:
    +    # query {
    +    OpenDatabase("~juanita/silo/stuff/noise.silo")
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +    Query("NumNodes")
    +    print("The float value is: %g" % GetQueryOutputValue())
    +    Query("NumNodes")
    +    # query }
    +    TestValueEQ('query error message',GetLastError(),'')
    +    TestPOA('query exceptions')
    +  except Exception as inst:
    +    TestFOA('query exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def finding_the_min_and_max():
    +
    +  try:
    +    # finding the min and max {
    +    # Define a helper function to get node/zone id's from query string.
    +    def GetMinMaxIds(qstr):
    +        import string
    +        s = qstr.split(' ')
    +        retval = []
    +        nextGood = 0
    +        idType = 0
    +        for token in s:
    +            if token == "(zone" or token == "(cell":
    +                idType = 1
    +                nextGood = 1
    +                continue
    +            elif token == "(node":
    +                idType = 0
    +                nextGood = 1
    +                continue
    +            if nextGood == 1:
    +                nextGood = 0
    +                retval = retval + [(idType, int(token))]
    +        return retval
    +
    +    # Set up a plot
    +    OpenDatabase("~juanita/silo/stuff/noise.silo")
    +    AddPlot("Pseudocolor", "hgslice")
    +    DrawPlots()
    +    Query("MinMax")
    +
    +    # Do picks on the ids that were returned by MinMax.
    +    for ids in GetMinMaxIds(GetQueryOutputString()):
    +        idType = ids[0]
    +        id = ids[1]
    +        if idType == 0:
    +            PickByNode(id)
    +        else:
    +            PickByZone(id)
    +    # finding the min and max }
    +    TestValueEQ('finding the min and max error message',GetLastError(),'')
    +    TestPOA('finding the min and max exceptions')
    +  except Exception as inst:
    +    TestFOA('finding the min and max exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def csv_query_over_time():
    +
    +  try:
    +    # csv query over time {
    +    OpenDatabase("~juanita/silo/stuff/wave.visit")
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +
    +    n_time_steps = TimeSliderGetNStates()
    +    f = open('points.txt', 'w', encoding='utf-8')
    +    f.write('time, x, y, z, u, v, w\n')
    +    for time_step in range(0, n_time_steps):
    +        TimeSliderSetState(time_step)
    +        pick = PickByNode(domain=0, element=3726, vars=["u", "v", "w"])
    +        Query("Time")
    +        time = GetQueryOutputValue()
    +        f.write('%g, %g, %g, %g, %g, %g, %g\n' % (time, pick['point'][0], pick['point'][1], pick['point'][2], pick['u'], pick['v'], pick['w']))
    +    f.close()
    +    # csv query over time }
    +    TestValueEQ('csv query over time error message',GetLastError(),'')
    +    TestPOA('csv query over time exceptions')
    +  except Exception as inst:
    +    TestFOA('csv query over time exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +defining_expressions()
    +pick()
    +lineout1()
    +lineout2()
    +query()
    +finding_the_min_and_max()
    +csv_query_over_time()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_saving_images.html b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_saving_images.html new file mode 100644 index 000000000..99a7a7f2e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_saving_images.html @@ -0,0 +1,52 @@ + +Results for quickrecipes/saving_images.py + +

    Results of VisIt Regression Test - quickrecipes/saving_images

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    setting output image characteristics error message
     "" .eq. "" : True
    setting output image characteristics no exceptions
     "True" .eq. "True" : True
    saving an image error message
     "" .eq. "" : True
    saving an image no exceptions
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_saving_images_py.html b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_saving_images_py.html new file mode 100644 index 000000000..328ff0c60 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_saving_images_py.html @@ -0,0 +1,56 @@ +quickrecipes/saving_images.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Mark C. Miller, Fri Aug 26 14:31:48 PDT 2022
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Get some utils shared across many .py files used for quick recipes.
    +#
    +Source(tests_path('quickrecipes','vqr_utils.py.inc'))
    +
    +def setting_output_image_characteristics():
    +
    +  try:
    +    # setting output image characteristics {
    +    # Prepare to save a BMP file at 1024x768 resolution 
    +    s = SaveWindowAttributes()
    +    s.format = s.BMP
    +    s.fileName = 'mybmpfile'
    +    s.width, s.height = 1024,768
    +    s.screenCapture = 0
    +    SetSaveWindowAttributes(s)
    +    # Subsequent calls to SaveWindow() will use these settings
    +    # setting output image characteristics }
    +    TestValueEQ('setting output image characteristics error message',GetLastError(),'')
    +    TestPOA('setting output image characteristics no exceptions')
    +  except Exception as inst:
    +    TestFOA('setting output image characteristics exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def saving_an_image():
    +
    +  try:
    +    # saving an image {
    +    # Save images of all timesteps and add each image filename to a list.
    +    names = []
    +    for state in range(TimeSliderGetNStates()):
    +      SetTimeSliderState(state)
    +      # Save the image
    +      n = SaveWindow()
    +      names = names + [n]
    +    print(names)
    +    # saving an image }
    +    TestValueEQ('saving an image error message',GetLastError(),'')
    +    TestPOA('saving an image no exceptions')
    +  except Exception as inst:
    +    TestFOA('saving an image exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +setting_output_image_characteristics()
    +saving_an_image()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_subsetting.html b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_subsetting.html new file mode 100644 index 000000000..7b84087ff --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_subsetting.html @@ -0,0 +1,52 @@ + +Results for quickrecipes/subsetting.py + +

    Results of VisIt Regression Test - quickrecipes/subsetting

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    turning off domains error message
     "" .eq. "" : True
    turning off domains exceptions
     "True" .eq. "True" : True
    turning off materials error message
     "" .eq. "" : True
    turning off materials exceptions
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_subsetting_py.html b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_subsetting_py.html new file mode 100644 index 000000000..f1945aa2c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_subsetting_py.html @@ -0,0 +1,67 @@ +quickrecipes/subsetting.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Mark C. Miller, Fri Aug 26 14:31:48 PDT 2022
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Get some utils shared across many .py files used for quick recipes.
    +#
    +Source(tests_path('quickrecipes','vqr_utils.py.inc'))
    +
    +def turning_off_domains():
    +
    +  try:
    +    # turning off domains {
    +    OpenDatabase("~juanita/silo/stuff/multi_rect2d.silo")
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    # Turning off every other domain
    +    d = GetDomains()
    +    i = 0
    +    for dom in d:
    +        if i%2:
    +            TurnDomainsOff(dom)
    +        i += 1
    +
    +    # Turn all domains off
    +    TurnDomainsOff()
    +
    +    # Turn on domains 3,5,7
    +    TurnDomainsOn((d[3], d[5], d[7]))
    +
    +    # turning off domains }
    +    TestValueEQ('turning off domains error message',GetLastError(),'')
    +    TestPOA('turning off domains exceptions')
    +  except Exception as inst:
    +    TestFOA('turning off domains exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def turning_off_materials():
    +
    +  try:
    +    # turning off materials {
    +    OpenDatabase("~juanita/silo/stuff/multi_rect2d.silo")
    +    AddPlot("FilledBoundary", "mat1")
    +    DrawPlots()
    +    # Get the material names 
    +    GetMaterials()
    +    # GetMaterials() will return a tuple of material names such as
    +    #     ('1', '2', '3')
    +    # Turn off material with name "2"
    +    TurnMaterialsOff("2")
    +    # turning off materials }
    +    TestValueEQ('turning off materials error message',GetLastError(),'')
    +    TestPOA('turning off materials exceptions')
    +  except Exception as inst:
    +    TestFOA('turning off domains exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +turning_off_domains()
    +turning_off_materials()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_view.html b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_view.html new file mode 100644 index 000000000..14e751912 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_view.html @@ -0,0 +1,60 @@ + +Results for quickrecipes/view.py + +

    Results of VisIt Regression Test - quickrecipes/view

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    setting the 2d view error message
     "" .eq. "" : True
    setting the 2d view exceptions
     "True" .eq. "True" : True
    setting the 3d view error message
     "" .eq. "" : True
    setting the 3d view exceptions
     "True" .eq. "True" : True
    flying around plots error message
     "" .eq. "" : True
    flying around plots exceptions
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_view_py.html b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_view_py.html new file mode 100644 index 000000000..eead8b0c8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_view_py.html @@ -0,0 +1,159 @@ +quickrecipes/view.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Mark C. Miller, Fri Aug 26 14:31:48 PDT 2022
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Get some utils shared across many .py files used for quick recipes.
    +#
    +Source(tests_path('quickrecipes','vqr_utils.py.inc'))
    +
    +def setting_the_2d_view():
    +
    +  try:
    +    # setting the 2d view {
    +    OpenDatabase("~juanita/silo/stuff/noise.silo")
    +    AddPlot("Pseudocolor", "hgslice")
    +    AddPlot("Mesh", "Mesh2D")
    +    AddPlot("Label", "hgslice")
    +    DrawPlots()
    +    print("The current view is:", GetView2D())
    +    # Get an initialized 2D view object.
    +    # Note that DrawPlots() must be executed prior to getting
    +    # the view to ensure current view parameters are obtained
    +    v = GetView2D()
    +    v.windowCoords = (-7.67964, -3.21856, 2.66766, 7.87724)
    +    SetView2D(v)
    +    # setting the 2d view }
    +    TestValueEQ('setting the 2d view error message',GetLastError(),'')
    +    TestPOA('setting the 2d view exceptions')
    +  except Exception as inst:
    +    TestFOA('setting the 2d view exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def setting_the_3d_view():
    +
    +  try:
    +    # setting the 3d view {
    +    OpenDatabase("~juanita/silo/stuff/noise.silo")
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    AddPlot("Mesh", "Mesh")
    +    DrawPlots()
    +    # Note that DrawPlots() must be executed prior to getting
    +    # the view to ensure current view parameters are obtained
    +    v = GetView3D()
    +    print("The view is: ", v)
    +    v.viewNormal = (-0.571619, 0.405393, 0.713378)
    +    v.viewUp = (0.308049, 0.911853, -0.271346)
    +    SetView3D(v)
    +    # setting the 3d view }
    +    TestValueEQ('setting the 3d view error message',GetLastError(),'')
    +    TestPOA('setting the 3d view exceptions')
    +  except Exception as inst:
    +    TestFOA('setting the 3d view exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def flying_around_plots():
    +
    +  try:
    +    # flying around plots {
    +    OpenDatabase("~juanita/silo/stuff/globe.silo")
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +
    +    # Create the control points for the views.
    +    c0 = View3DAttributes()
    +    c0.viewNormal = (0, 0, 1)
    +    c0.focus = (0, 0, 0)
    +    c0.viewUp = (0, 1, 0)
    +    c0.viewAngle = 30
    +    c0.parallelScale = 17.3205
    +    c0.nearPlane = 17.3205
    +    c0.farPlane = 81.9615
    +    c0.perspective = 1
    +
    +    c1 = View3DAttributes()
    +    c1.viewNormal = (-0.499159, 0.475135, 0.724629)
    +    c1.focus = (0, 0, 0)
    +    c1.viewUp = (0.196284, 0.876524, -0.439521)
    +    c1.viewAngle = 30
    +    c1.parallelScale = 14.0932
    +    c1.nearPlane = 15.276
    +    c1.farPlane = 69.917
    +    c1.perspective = 1
    +
    +    c2 = View3DAttributes()
    +    c2.viewNormal = (-0.522881, 0.831168, -0.189092)
    +    c2.focus = (0, 0, 0)
    +    c2.viewUp = (0.783763, 0.556011, 0.27671)
    +    c2.viewAngle = 30
    +    c2.parallelScale = 11.3107
    +    c2.nearPlane = 14.8914
    +    c2.farPlane = 59.5324
    +    c2.perspective = 1
    +
    +    c3 = View3DAttributes()
    +    c3.viewNormal = (-0.438771, 0.523661, -0.730246)
    +    c3.focus = (0, 0, 0)
    +    c3.viewUp = (-0.0199911, 0.80676, 0.590541)
    +    c3.viewAngle = 30
    +    c3.parallelScale = 8.28257
    +    c3.nearPlane = 3.5905
    +    c3.farPlane = 48.2315
    +    c3.perspective = 1
    +
    +    c4 = View3DAttributes()
    +    c4.viewNormal = (0.286142, -0.342802, -0.894768)
    +    c4.focus = (0, 0, 0)
    +    c4.viewUp = (-0.0382056, 0.928989, -0.36813)
    +    c4.viewAngle = 30
    +    c4.parallelScale = 10.4152
    +    c4.nearPlane = 1.5495
    +    c4.farPlane = 56.1905
    +    c4.perspective = 1
    +
    +    c5 = View3DAttributes()
    +    c5.viewNormal = (0.974296, -0.223599, -0.0274086)
    +    c5.focus = (0, 0, 0)
    +    c5.viewUp = (0.222245, 0.97394, -0.0452541)
    +    c5.viewAngle = 30
    +    c5.parallelScale = 1.1052
    +    c5.nearPlane = 24.1248
    +    c5.farPlane = 58.7658
    +    c5.perspective = 1
    +
    +    # Make the last point loop around to the first
    +    c6 = c0
    +
    +    # Create a tuple of camera values and x values. The x values
    +    # determine where in [0,1] the control points occur.
    +    cpts = (c0, c1, c2, c3, c4, c5, c6)
    +    x=[]
    +    for i in range(7):
    +        x = x + [float(i) / float(6.)]
    +
    +    # Animate the view using EvalCubicSpline.
    +    nsteps = 100
    +    for i in range(nsteps):
    +        t = float(i) / float(nsteps - 1)
    +        c = EvalCubicSpline(t, x, cpts)
    +        c.nearPlane = -34.461
    +        c.farPlane = 34.461
    +        SetView3D(c)
    +    # flying around plots }
    +    TestValueEQ('flying around plots error message',GetLastError(),'')
    +    TestPOA('flying around plots exceptions')
    +  except Exception as inst:
    +    TestFOA('flying around plots exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +setting_the_2d_view()
    +setting_the_3d_view()
    +flying_around_plots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_working_with_annotations.html b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_working_with_annotations.html new file mode 100644 index 000000000..01b188fcd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_working_with_annotations.html @@ -0,0 +1,76 @@ + +Results for quickrecipes/working_with_annotations.py + +

    Results of VisIt Regression Test - quickrecipes/working_with_annotations

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    using gradient background colors error message
     "" .eq. "" : True
    using gradient background colors exceptions
     "True" .eq. "True" : True
    adding a banner error message
     "" .eq. "" : True
    adding a banner exceptions
     "True" .eq. "True" : True
    adding a time slider error message
     "" .eq. "" : True
    adding a time slider exceptions
     "True" .eq. "True" : True
    adding a logo error message
     "" .eq. "" : True
    adding a logo exceptions
     "True" .eq. "True" : True
    modifying a legend error message
     "" .eq. "" : True
    modifying a legend exceptions
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_working_with_annotations_py.html b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_working_with_annotations_py.html new file mode 100644 index 000000000..abd29369b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_working_with_annotations_py.html @@ -0,0 +1,195 @@ +quickrecipes/working_with_annotations.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Mark C. Miller, Fri Aug 26 14:31:48 PDT 2022
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Get some utils shared across many .py files used for quick recipes.
    +#
    +Source(tests_path('quickrecipes','vqr_utils.py.inc'))
    +
    +def using_gradient_background_colors():
    +
    +  try:
    +    # using gradient background colors {
    +    # Set a blue/black, radial, gradient background.
    +    a = AnnotationAttributes()
    +    a.backgroundMode = a.Gradient
    +    a.gradientBackgroundStyle = a.Radial
    +    a.gradientColor1 = (0,0,255,255) # Blue
    +    a.gradientColor2 = (0,0,0,255) # Black
    +    SetAnnotationAttributes(a)
    +    # using gradient background colors }
    +    TestValueEQ('using gradient background colors error message',GetLastError(),'')
    +    TestPOA('using gradient background colors exceptions')
    +  except Exception as inst:
    +    TestFOA('using gradient background colors exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def adding_a_banner():
    +
    +  try:
    +    # adding a banner {
    +    # Create a Text2D object to indicate the visualization is unclassified.
    +
    +    # Note the annoation object is added to the viewer window the moment it is created.
    +    banner = CreateAnnotationObject("Text2D")
    +
    +    # Note text is updated in the viewer window the moment it is changed.
    +    banner.text = "Unclassified"
    +
    +    banner.position = (0.37, 0.95)
    +    banner.fontBold = 1
    +
    +    # print the attributes to see what you can set in the Text2D object.
    +    print(banner)
    +    # print(banner) will print something like...
    +    #    visible = 1
    +    #    position = (0.5, 0.5)
    +    #    height = 0.03
    +    #    textColor = (0, 0, 0, 255)
    +    #    useForegroundForTextColor = 1
    +    #    text = "2D text annotation"
    +    #    fontFamily = Arial  # Arial, Courier, Times
    +    #    fontBold = 0
    +    #    fontItalic = 0
    +    #    fontShadow = 0
    +    # adding a banner }
    +    TestValueEQ('adding a banner error message',GetLastError(),'')
    +    TestPOA('adding a banner exceptions')
    +  except Exception as inst:
    +    TestFOA('adding a banner exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def adding_a_time_slider():
    +
    +  try:
    +    # adding a time slider {
    +    # Add a time slider in the lower left corner
    +    slider = CreateAnnotationObject("TimeSlider")
    +
    +    # Adjust the height. Takes effect immediately as the value is assigned.
    +    slider.height = 0.07
    +
    +    # Print members that are available in the time slider object
    +    print(slider)
    +    # will produce something like...
    +    #    visible = 1
    +    #    active = 1
    +    #    position = (0.01, 0.01)
    +    #    width = 0.4
    +    #    height = 0.05
    +    #    textColor = (0, 0, 0, 255)
    +    #    useForegroundForTextColor = 1
    +    #    startColor = (0, 255, 255, 255)
    +    #    endColor = (255, 255, 255, 153)
    +    #    text = "Time=$time"
    +    #    timeFormatString = "%g"
    +    #    timeDisplay = AllFrames  # AllFrames, FramesForPlot, StatesForPlot, UserSpecified
    +    #    percentComplete = 0
    +    #    rounded = 1
    +    #    shaded = 1
    +    # adding a time slider }
    +    TestValueEQ('adding a time slider error message',GetLastError(),'')
    +    TestPOA('adding a time slider exceptions')
    +  except Exception as inst:
    +    TestFOA('adding a time slider exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def adding_a_logo():
    +
    +  try:
    +    # adding a logo {
    +    # Incorporate LLNL logo image (llnl.jpeg) as an annotation
    +    image = CreateAnnotationObject("Image")
    +    image.image = "llnl.jpeg"
    +    image.position = (0.02, 0.02)
    +
    +    # Print the other image annotation options
    +    print(image)
    +    # Will print something like...
    +    #    visible = 1
    +    #    active = 1
    +    #    position = (0, 0)
    +    #    transparencyColor = (0, 0, 0, 255)
    +    #    useTransparencyColor = 0
    +    #    width = 100.000000
    +    #    height = 100.000000
    +    #    maintainAspectRatio = 1
    +    #    image = ("")
    +    # adding a logo }
    +    TestValueEQ('adding a logo error message',GetLastError(),'')
    +    TestPOA('adding a logo exceptions')
    +  except Exception as inst:
    +    TestFOA('adding a logo exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def modifying_a_legend():
    +
    +  try:
    +    # modifying a legend {
    +    # Open a file and make a plot
    +    OpenDatabase("~juanita/silo/stuff/noise.silo")
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +    # Get the legend annotation object for the Pseudocolor plot, the second
    +    # plot in the list (0-indexed).
    +    plotName = GetPlotList().GetPlots(1).plotName
    +    legend = GetAnnotationObject(plotName)
    +    # See if we can scale the legend.
    +    legend.xScale = 3.
    +    legend.yScale = 3.
    +    # the bounding box.
    +    legend.drawBoundingBox = 1
    +    legend.boundingBoxColor = (180,180,180,230)
    +    # Make it horizontal
    +    legend.orientation = legend.HorizontalBottom
    +    # moving the legend
    +    legend.managePosition = 0
    +    legend.position = (0.7,0.15)
    +    # text color
    +    InvertBackgroundColor()
    +    legend.useForegroundForTextColor = 0
    +    legend.textColor = (255, 0, 0, 255)
    +    # number format
    +    legend.numberFormat = "%1.4e"
    +    # the font.
    +    legend.fontFamily = legend.Arial
    +    legend.fontBold = 1
    +    legend.fontItalic = 1
    +    # turning off the labels.
    +    legend.fontItalic = 0
    +    legend.drawLabels = 0
    +    legend.drawMinMax = 0
    +    # turning off the title.
    +    legend.drawTitle = 0
    +    # Use user-supplied labels, rather than numeric values.
    +    legend.controlTicks=0
    +    legend.drawLabels = legend.Labels
    +    # suppliedLabels must be strings, only valid when controlTicks is 0
    +    legend.suppliedLabels=("A", "B", "C", "D", "E")
    +    # Give the legend a custom title
    +    legend.useCustomTitle=1
    +    legend.customTitle="my custom title"
    +    # modifying a legend }
    +    TestValueEQ('modifying a legend error message',GetLastError(),'')
    +    TestPOA('modifying a legend exceptions')
    +  except Exception as inst:
    +    TestFOA('modifying a legend exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +using_gradient_background_colors()
    +adding_a_banner()
    +adding_a_time_slider()
    +adding_a_logo()
    +modifying_a_legend()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_working_with_dbs.html b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_working_with_dbs.html new file mode 100644 index 000000000..30e7d96b6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_working_with_dbs.html @@ -0,0 +1,68 @@ + +Results for quickrecipes/working_with_dbs.py + +

    Results of VisIt Regression Test - quickrecipes/working_with_dbs

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    opening a database error message
     "" .eq. "" : True
    opening a database no exceptions
     "True" .eq. "True" : True
    opening a database at specific time error message
     "" .eq. "" : True
    opening a database at specific time no exceptions
     "True" .eq. "True" : True
    opening a virtual database error message
     "" .eq. "" : True
    opening a virtual database no exceptions
     "True" .eq. "True" : True
    opening a remote database error message
     "" .eq. "" : True
    opening a remote database no exceptions
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_working_with_dbs_py.html b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_working_with_dbs_py.html new file mode 100644 index 000000000..69ddc4a99 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_working_with_dbs_py.html @@ -0,0 +1,78 @@ +quickrecipes/working_with_dbs.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Mark C. Miller, Fri Aug 26 14:31:48 PDT 2022
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Get some utils shared across many .py files used for quick recipes.
    +#
    +Source(tests_path('quickrecipes','vqr_utils.py.inc'))
    +
    +def opening_a_database():
    +
    +  try:
    +    # opening a database {
    +    # Open a database (no time specified defaults to time state 0)
    +    OpenDatabase("/Users/amina/data/pdb_test_data/allinone00.pdb")
    +    # opening a database }
    +    TestValueEQ('opening a database error message',GetLastError(),'')
    +    TestPOA('opening a database no exceptions')
    +  except Exception as inst:
    +    TestFOA('opening a database exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def opening_a_database_at_specific_time():
    +
    +  try:
    +    # opening a database at specific time {
    +    # Open a database at a specific time state to pick up transient variables
    +    OpenDatabase("/Users/amina/data/pdb_test_data/allinone00.pdb", 17)
    +    # opening a database at specific time }
    +    TestValueEQ('opening a database at specific time error message',GetLastError(),'')
    +    TestPOA('opening a database at specific time no exceptions')
    +  except Exception as inst:
    +    TestFOA('opening a database at specific time exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def opening_a_virtual_database():
    +
    +  try:
    +    # opening a virtual database {
    +    # Opening just one file, the first, in series wave0000.silo, wave0010.silo, ...
    +    OpenDatabase("~juanita/silo/stuff/wave0000.silo")
    +
    +    # Opening a virtual database representing all available states.
    +    OpenDatabase("~juanita/silo/stuff/wave*.silo database")
    +    # opening a virtual database }
    +    TestValueEQ('opening a virtual database error message',GetLastError(),'')
    +    TestPOA('opening a virtual database no exceptions')
    +  except Exception as inst:
    +    TestFOA('opening a virtual database exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def opening_a_remote_database():
    +
    +  try:
    +    # opening a remote database {
    +    # Opening a file on a remote computer by giving a host name
    +    # Also, open the database to a later time slice (17)
    +    OpenDatabase("thunder:~juanita/silo/stuff/wave.visit", 17)
    +    # opening a remote database }
    +    TestValueEQ('opening a remote database error message',GetLastError(),'')
    +    TestPOA('opening a remote database no exceptions')
    +  except Exception as inst:
    +    TestFOA('opening a remote database exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +opening_a_database()
    +opening_a_database_at_specific_time()
    +opening_a_virtual_database()
    +opening_a_remote_database()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_working_with_plots.html b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_working_with_plots.html new file mode 100644 index 000000000..49cc6a071 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_working_with_plots.html @@ -0,0 +1,76 @@ + +Results for quickrecipes/working_with_plots.py + +

    Results of VisIt Regression Test - quickrecipes/working_with_plots

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    creating a plot error message
     "" .eq. "" : True
    creating a plot exceptions
     "True" .eq. "True" : True
    plotting materials error message
     "" .eq. "" : True
    plotting materials exceptions
     "True" .eq. "True" : True
    setting plot attributes message
     "" .eq. "" : True
    setting plot attributes exceptions
     "True" .eq. "True" : True
    working with multiple plots error message
     "" .eq. "" : True
    working with multiple plots exceptions
     "True" .eq. "True" : True
    plots in the error state error message
     "" .eq. "" : True
    plots in the error state exceptions
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_working_with_plots_py.html b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_working_with_plots_py.html new file mode 100644 index 000000000..fc0e2bd15 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/quickrecipes_working_with_plots_py.html @@ -0,0 +1,196 @@ +quickrecipes/working_with_plots.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Mark C. Miller, Fri Aug 26 14:31:48 PDT 2022
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Get some utils shared across many .py files used for quick recipes.
    +#
    +Source(tests_path('quickrecipes','vqr_utils.py.inc'))
    +
    +def creating_a_plot():
    +
    +  OpenDatabase(silo_data_path("wave.visit"))
    +  try:
    +    # creating a plot {
    +    # Names of all available plot plugins as a python tuple
    +    x = PlotPlugins()
    +
    +    # print(x) will produce something like...
    +    #     ('Boundary', 'Contour', 'Curve', 'FilledBoundary', 'Histogram',
    +    #     'Label', 'Mesh', 'Molecule', 'MultiCurve', 'ParallelCoordinates',
    +    #     'Pseudocolor', 'Scatter', 'Spreadsheet', 'Subset', 'Tensor',
    +    #     'Truecolor', 'Vector', 'Volume')
    +    print(x)
    +
    +    # Create plots with AddPlot(<plot-plugin-name>,<database-variable-name>)
    +    AddPlot("Pseudocolor", "pressure")
    +    AddPlot("Mesh", "quadmesh")
    +
    +    # Draw the plots
    +    DrawPlots()
    +    # creating a plot }
    +    TestValueEQ('creating a plot error message',GetLastError(),'')
    +    TestPOA('creating a plot exceptions')
    +  except Exception as inst:
    +    TestFOA('creating a plot exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def plotting_materials():
    +
    +  OpenDatabase(silo_data_path("globe.silo"))
    +  try:
    +    # plotting materials {
    +    # Plot material boundaries
    +    AddPlot("Boundary", "mat1")
    +    # Plot materials
    +    AddPlot("FilledBoundary", "mat1")
    +    # plotting materials }
    +    TestValueEQ('plotting materials error message',GetLastError(),'')
    +    TestPOA('plotting materials exceptions')
    +  except Exception as inst:
    +    TestFOA('plotting materials exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def setting_plot_attributes():
    +
    +  OpenDatabase(silo_data_path("wave.visit"))
    +  try:
    +    # setting plot attributes {
    +    # Creating a Pseudocolor plot and setting min/max values.
    +    AddPlot("Pseudocolor", "pressure")
    +    p = PseudocolorAttributes()
    +
    +    # print p to find the names of members you want to change
    +    #
    +    # print(p) will produce output somewhat like...
    +    #     scaling = Linear  # Linear, Log, Skew
    +    #     skewFactor = 1
    +    #     limitsMode = OriginalData  # OriginalData, ActualData
    +    #     minFlag = 0
    +    #     min = 0
    +    #     useBelowMinColor = 0
    +    #     belowMinColor = (0, 0, 0, 255)
    +    #     maxFlag = 0
    +    #     max = 1
    +    #     .
    +    #     .
    +    #     .
    +    print(p)
    +
    +    # Set the min/max values
    +    p.min, p.minFlag = 0.0, 1
    +    p.max, p.maxFlag = 10.0, 1
    +    SetPlotOptions(p)
    +    # setting plot attributes }
    +    TestValueEQ('setting plot attributes message',GetLastError(),'')
    +    TestPOA('setting plot attributes exceptions')
    +  except Exception as inst:
    +    TestFOA('setting plot attributes exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def working_with_multiple_plots():
    +
    +  OpenDatabase(silo_data_path("tire.silo"))
    +  try:
    +    # working with multiple plots {
    +
    +    # Create more than 1 plot of the same type
    +    AddPlot("Pseudocolor", "pressure")
    +    AddPlot("Pseudocolor", "temperature")
    +
    +    # List the plots. The second plot should be active.
    +    ListPlots()
    +
    +    # The output from ListPlots() will look something like...
    +    #     Plot[0]|id=5;type="Pseudocolor";database="localhost:/Users/miller86/visit/visit/data/silo_hdf5_test_data/tire.silo";
    +    #         var=pressure;active=0;hidden=0;framerange=(0, 0);keyframes={0};database keyframes={0};operators={};
    +    #         activeOperator=-1
    +    #     Plot[1]|id=6;type="Pseudocolor";database="localhost:/Users/miller86/visit/visit/data/silo_hdf5_test_data/tire.silo";
    +    #         var=temperature;active=1;hidden=0;framerange=(0, 0);keyframes={0};database keyframes={0};operators={};
    +    #         activeOperator=-1
    +    # Note that active=1 for Plot[1] meaning plot #1 is the active plot
    +
    +    # Draw the plots
    +    DrawPlots()
    +
    +    # Hide the first plot
    +    SetActivePlots(0) # makes plot 0 the active plot
    +    HideActivePlots()
    +
    +    # Set both plots' color table to "hot"
    +    p = PseudocolorAttributes()
    +    p.colorTableName = "hot"
    +    SetActivePlots((0,1)) # makes both plots active
    +    SetPlotOptions(p)
    +
    +    # Show the first plot again.
    +    SetActivePlots(0)
    +    HideActivePlots()
    +
    +    # Delete the second plot
    +    SetActivePlots(1)
    +    DeleteActivePlots()
    +    ListPlots()
    +
    +    # working with multiple plots }
    +    TestValueEQ('working with multiple plots error message',GetLastError(),'')
    +    TestPOA('working with multiple plots exceptions')
    +  except Exception as inst:
    +    TestFOA('working with multiple plots exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +  CloseDatabase(silo_data_path("tire.silo"))
    +
    +def plots_in_the_error_state():
    +
    +  try:
    +    # plots in the error state {
    +
    +    # Open the database at state 20 and add plots for "pressure" and "transient".
    +    # "transient" variable exists only in states 18...51.
    +    OpenDatabase(silo_data_path("wave.visit"),20)
    +    AddPlot("Pseudocolor","pressure")
    +    AddPlot("Pseudocolor","transient")
    +    DrawPlots()
    +
    +    # Start saving images from every 10th state starting at state 20 
    +    # but take care to clean up when we get an error.
    +    for state in range(20,TimeSliderGetNStates(),10):
    +
    +        TimeSliderSetState(state)
    +
    +        if DrawPlots() == 0:
    +
    +            # Find plot(s) in error state and remove them
    +            pl = GetPlotList()
    +            for i in range(pl.GetNumPlots()):
    +                if pl.GetPlots(i).stateType == pl.GetPlots(i).Error:
    +                    SetActivePlots((i,))
    +                    DeleteActivePlots()
    +
    +            # Clear the last error message
    +            GetLastError(1)
    +
    +        SaveWindow()
    +
    +    # plots in the error state }
    +    TestValueEQ('plots in the error state error message',GetLastError(),'')
    +    TestPOA('plots in the error state exceptions')
    +  except Exception as inst:
    +    TestFOA('plots in the error state exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +creating_a_plot()
    +plotting_materials()
    +setting_plot_attributes()
    +working_with_multiple_plots()
    +plots_in_the_error_state()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_annot_macros.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_annot_macros.html new file mode 100644 index 000000000..7c4e969ee --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_annot_macros.html @@ -0,0 +1,301 @@ + +Results for rendering/annot_macros.py + +

    Results of VisIt Regression Test - rendering/annot_macros

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    All non-empty macros in all text modes
    annot_macros_allmacros_00.000.00
    annot_macros_allmacros_10.000.00
    annot_macros_allmacros_20.000.00
    annot_macros_allmacros_30.000.00
    annot_macros_allmacros_40.000.00
    annot_macros_allmacros_50.000.00
    annot_macros_allmacros_60.000.00
    annot_macros_allmacros_70.000.00
    annot_macros_allmacros_80.000.00
    annot_macros_allmacros_90.000.00
    annot_macros_allmacros_100.000.00
    annot_macros_allmacros_110.000.00
    annot_macros_allmacros_120.000.00
    annot_macros_allmacros_130.000.00
    annot_macros_allmacros_140.000.00
    annot_macros_allmacros_150.000.00
    Multiple macros in same annotation
    annot_macros_multimacro_00.000.00
    annot_macros_multimacro_10.000.00
    annot_macros_multimacro_20.000.00
    Printf formatting of $macro%fmt$
    annot_macros_printf_00.000.00
    annot_macros_printf_10.000.00
    annot_macros_printf_20.000.00
    annot_macros_printf_30.000.00
    annot_macros_printf_40.000.00
    annot_macros_printf_50.000.00
    annot_macros_printf_60.000.00
    annot_macros_printf_70.000.00
    annot_macros_printf_80.000.00
    annot_macros_printf_90.000.00
    annot_macros_printf_100.000.00
    Text annotation file (tafile) macros
    annot_macros_tafile_00.000.00
    annot_macros_tafile_10.000.00
    annot_macros_tafile_20.330.00
    annot_macros_tafile_30.000.00
    annot_macros_tafile_40.000.00
    annot_macros_tafile_50.000.00
    annot_macros_tafile_60.330.00
    annot_macros_tafile_70.000.00
    Timeslider printf format handling
    annot_macros_tsprintf_00.000.00
    annot_macros_tsprintf_10.000.00
    annot_macros_tsprintf_20.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_annot_macros_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_annot_macros_py.html new file mode 100644 index 000000000..1be39f76d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_annot_macros_py.html @@ -0,0 +1,219 @@ +rendering/annot_macros.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  annot_macros.py
    +#
    +#  Tests:      mesh        - 2D curvilinear, single domain
    +#              plots       - Pseudocolor
    +#              annotations - Text2D
    +#
    +#  Defect ID:  None
    +#
    +#  Mark C. Miller, Thu Nov  7 14:17:54 PST 2024
    +# ----------------------------------------------------------------------------
    +import os
    +
    +def create_text2d_annot():
    +    text = CreateAnnotationObject("Text2D")
    +    text.height = 0.03
    +    text.position = (0.10, 0.75)
    +    return text
    +
    +def allmacros():
    +    """All non-empty macros in all text modes"""
    +
    +    #
    +    # Loop through through all macros rendering with default format
    +    # both as 2D text and as 3D text. We skip "lod", "xunits", "yunits",
    +    # "zunits" and "varunits" because the input database has no values
    +    # specified for these.
    +    #
    +    macroNames = ("time", "cycle", "index", "numstates", "dbcomment",
    +        "vardim", "numvar", "topodim", "spatialdim", "varname",
    +        "meshname", "filename", "fulldbname", "xlabel", "ylabel", "zlabel")
    +
    +    text2d = create_text2d_annot()
    +    text3d = CreateAnnotationObject("Text3D")
    +    text3d.heightMode = text3d.Relative
    +    text3d.relativeHeight = 0.03
    +    text3d.position=(2.0, 1.0, 7.0)
    +    textts = CreateAnnotationObject("TimeSlider")
    +    textts.height = 0.15
    +    textts.position = (0.05, 0.1)
    +    for mtext in macroNames:
    +        text2d.text = "%s $%s"%(mtext, mtext)
    +        text3d.text = "%s $%s"%(mtext, mtext)
    +        textts.text = "%s $%s"%(mtext, mtext)
    +        TestAutoName()
    +    text2d.Delete()
    +    text3d.Delete()
    +    textts.Delete()
    +
    +def multimacro():
    +    """Multiple macros in same annotation"""
    +
    +    text = create_text2d_annot()
    +    text.text = "State $index of $numstates"
    +    TestAutoName()
    +    text.text = "Time,Cycle,Index=($time,$cycle,$index)"
    +    TestAutoName()
    +    text.text = "Cycle,Cycle,Cycle=($cycle,$cycle,$cycle)"
    +    TestAutoName()
    +    text.Delete()
    +
    +def printf():
    +    """Printf formatting of $macro%fmt$"""
    +
    +    text = create_text2d_annot()
    +    # Print index/state always with 4 digits and leading zeros
    +    text.text = "State $index%04d$ of $numstates%06d$"
    +    TestAutoName()
    +    # Print index in hexadecimal format
    +    text.text = "Index=0X$index%X$"
    +    TestAutoName()
    +    # Print time with 12 width and 6 after decimal pt.
    +    text.text = "Time=$time%12.6f$"
    +    TestAutoName()
    +    # Print time with 20 width, leading sign, 10 after decimal pt.
    +    text.text = "Time=$time%+20.10f$"
    +    TestAutoName()
    +    # Print time with 10 char width, 6 precision, exponential format.
    +    text.text = "Time=$time%+10.6e$"
    +    TestAutoName()
    +    # Print time with %A (hex) to see full precision of actual value
    +    text.text = "Time=$time ($time%A$)"
    +    TestAutoName()
    +    # Print first 3 chars of meshname
    +    text.text = "First 3 chars meshname='$meshname%.3s$'"
    +    TestAutoName()
    +    # Print first 3 chars of meshname
    +    text.text = "Left justified in 6 chars meshname='$meshname%-6.6s$'"
    +    TestAutoName()
    +    # Handling % and $ chars in string
    +    text.text = "State $index%02d$ of $numstates%02d$ = " + "%2d%%"%(100*float(13)/float(TimeSliderGetNStates()))
    +    TestAutoName()
    +    text.text = "State $index is 18.3% into $numstates"
    +    TestAutoName()
    +    text.text = "$cycle $US, $cycle$US"
    +    TestAutoName()
    +    text.Delete()
    +
    +def tafile():
    +    """Text annotation file (tafile) macros"""
    +
    +    #
    +    # Create lists of 71 float values for "ftafile1.txt" and string values 
    +    # for "stafile1.txt" starting at 0.
    +    #
    +    fvals = [] # float values
    +    svals = [] # string values
    +    for i in range(71):
    +        fvals.append(i if i%2==0 else -i)
    +        svals.append("VisIt_%03d"%i)
    +    fvals[13] = -13.333678
    +
    +    try:
    +        #
    +        # Write the two lists to their repsective tafile files.
    +        # Note this is relying up on the tafile being peer to database file
    +        # method to locate these files. The other options are via ~/.visit
    +        # and via TMP both of which involve different paths for py code
    +        # on Windows and so are less attractive. This is inside a try...finally
    +        # block to ensure the created files are then later removed from
    +        # the silo data dir where they are created.
    +        #
    +        with open(silo_data_path("stafile1.txt"), 'w') as file1, \
    +             open(silo_data_path("ftafile1.txt"), 'w') as file2:
    +             for val1, val2 in zip(svals, fvals):
    +                 file1.write(val1 + "\n")
    +                 file2.write(f"{val2:.8f}" + "\n")
    +
    +        # Ok, now produce annotation text using $stafile1 and $ftafile1.
    +        # Move around in time steps a bit also.
    +        #
    +        # There are a couple of test results here where the plot can vary
    +        # slightly from run to run. We deal with that by allowing for a 
    +        # very minor pixdiff (1/2 of a percent) threshold.
    +        #
    +        text = create_text2d_annot()
    +        text.text = "stafile=$stafile1, ftafile=$ftafile1"
    +        TestAutoName()
    +        TimeSliderNextState()
    +        TestAutoName()
    +        TimeSliderNextState()
    +        TestAutoName(pixdiff=0.5)
    +        TimeSliderSetState(5)
    +        TestAutoName()
    +        TimeSliderSetState(13)
    +
    +        #
    +        # tafiles macros combined with printf formats
    +        #
    +        text.text = "stafile=$stafile1%.3s$, ftafile=$ftafile1%8.3f$"
    +        TestAutoName()
    +        TimeSliderNextState()
    +        TestAutoName()
    +        TimeSliderNextState()
    +        TestAutoName(pixdiff=0.5)
    +        TimeSliderSetState(5)
    +        TestAutoName()
    +        text.Delete()
    +        TimeSliderSetState(13)
    +
    +    finally:
    +        os.remove(silo_data_path("stafile1.txt"))
    +        os.remove(silo_data_path("ftafile1.txt"))
    +
    +def tsprintf():
    +    """Timeslider printf format handling"""
    +
    +    text = CreateAnnotationObject("TimeSlider")
    +    text.height = 0.15
    +    text.position = (0.05, 0.1)
    +    text.timeFormatString = "%0.4f"
    +    TestAutoName()
    +    text.timeFormatString = ""
    +    text.text="Time=$time%-10.6E$"
    +    TestAutoName()
    +    text.text="Time=$time"
    +    text.timeFormatString = "%A"
    +    TestAutoName()
    +
    +def init():
    +    """Initialization for all tests"""
    +
    +    # Set up the annotation colors, etc.
    +    a = GetAnnotationAttributes()
    +    a.backgroundColor = (80, 0, 100, 255)
    +    a.foregroundColor = (255, 255, 255, 255)
    +    a.backgroundMode = a.Solid
    +    SetAnnotationAttributes(a)
    +
    +    #
    +    # Open up the one and only database to be used for all these
    +    # tests, add a plot set time step to something in the middle,
    +    # index=13
    +    #
    +    OpenDatabase(silo_data_path("wave.visit"))
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    TimeSliderSetState(13)
    +
    +def finalize():
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("wave.visit"))
    +
    +def main():
    +
    +    init()
    +    allmacros()
    +    multimacro()
    +    printf()
    +    tafile()
    +    tsprintf()
    +    finalize()
    +
    +main()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_annotation.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_annotation.html new file mode 100644 index 000000000..d0a03becf --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_annotation.html @@ -0,0 +1,294 @@ + +Results for rendering/annotation.py + +

    Results of VisIt Regression Test - rendering/annotation

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    annot_010.000.00
    annot_020.000.00
    annot_030.000.00
    annot_040.000.00
    annot_050.000.00
    annot2d_010.000.00
    annot2d_020.000.00
    annot2d_030.000.00
    annot2d_040.000.00
    annot2d_050.000.00
    annot2d_060.000.00
    annot2d_070.000.00
    annot2d_080.000.00
    annot2d_090.000.00
    annot2d_100.000.00
    annot2d_110.000.00
    annot2d_120.000.00
    annot2d_130.000.00
    annot2d_140.000.00
    annot2d_150.000.00
    annot2d_160.000.00
    annot2d_170.000.00
    annot2d_180.000.00
    annot2d_190.000.00
    annot2d_200.000.00
    annot2d_210.000.00
    annot2d_220.000.00
    annot2d_230.000.00
    annot2d_240.000.00
    annot2d_250.000.00
    annot2d_260.000.00
    annot2d_270.000.00
    annot3d_010.000.00
    annot3d_020.000.00
    annot3d_030.000.00
    annot3d_040.000.00
    annot3d_050.000.00
    annot3d_060.000.00
    annot3d_070.000.00
    annot3d_080.000.00
    annot3d_090.000.00
    annot3d_100.000.00
    annot3d_110.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_annotation_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_annotation_py.html new file mode 100644 index 000000000..87abb42e8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_annotation_py.html @@ -0,0 +1,469 @@ +rendering/annotation.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  annotation.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - pc, subset
    +#              operators - none
    +#              selection - none
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Mon Jun 3 13:25:18 PST 2002
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Jul 18 10:33:07 PDT 2002
    +#    Added test for combinations of ticks/labels/gridlines to ensure
    +#    that they all play together nicely.  Removed test of userInfo, as it will
    +#    always have a different timestamp than the baseline image.
    +#
    +#    Kathleen Bonnell, Thu Sep  5 10:55:47 PDT 2002 
    +#    Changed the variable format for SubsetPlots, to reflect new interface
    +#    which allows subsets of groups. 
    +#
    +#    Eric Brugger, Mon Nov 11 14:09:08 PST 2002
    +#    Changed the test suite extensively since the 2d annotations were
    +#    enhanced significantly and the 3d annotation field names were changed
    +#    to match.
    +#
    +#    Hank Childs, Tue Nov 19 15:45:12 PST 2002
    +#    Changed Aslice to Slice to account for interface change in slicing.
    +#
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from Subset plots.
    +#
    +#    Eric Brugger, Tue Nov 25 15:12:15 PST 2003
    +#    Added tests for axis labeling with narrow 2d windows.
    +#
    +#    Kathleen Bonnell, Wed May  5 08:11:53 PDT 2004
    +#    Modified slice atts to get same picture since defaults have changed. 
    +#
    +#    Kathleen Bonnell, Mon Sep 14 15:01:25 PDT 2009
    +#    Removed deprecated annotation settings.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Wed Jan  8 13:39:46 PST 2014
    +#    Added 2d tests 26 & 27, gridlines with a different saved window size.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +#    Alister Maguire, Mon Mar  5 14:10:23 PST 2018
    +#    Added a test for manipulating the triad attributes. 
    +#
    +#    Alister Maguire, Fri Mar  9 10:21:50 PST 2018
    +#    Now using a 'set manually' flag for the triad attribtues. 
    +# 
    +#    Justin Privitera, Wed Oct  9 14:47:05 PDT 2024
    +#    Changed triadlinewidth to 2 from 3 to avoid rebaselining.
    +#    The triad line width is now an int not a float and 0 corresponds to 
    +#    line width 1, so all the values have been shifted up.
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Slice")
    +slice = SliceAttributes()
    +slice.project2d = 1
    +slice.SetAxisType(slice.XAxis)
    +slice.SetFlip(1)
    +SetOperatorOptions(slice)
    +DrawPlots()
    +
    +# Test gradient backgrounds
    +a = GetAnnotationAttributes()
    +a.gradientColor1 = (0, 255, 255)
    +a.gradientColor2 = (0, 0, 255)
    +a.gradientBackgroundStyle = 0 # TopToBottom
    +a.backgroundMode = 1 # Gradient
    +SetAnnotationAttributes(a)
    +Test("annot_01")
    +a.gradientBackgroundStyle = 4 # Radial
    +SetAnnotationAttributes(a)
    +Test("annot_02")
    +
    +# Test setting background/foreground colors
    +a.backgroundColor = (0, 0, 0)
    +a.foregroundColor = (255, 255, 255)
    +a.backgroundMode = 0 # Solid
    +SetAnnotationAttributes(a)
    +Test("annot_03")
    +
    +# Turn off the database
    +a.databaseInfoFlag = 0
    +SetAnnotationAttributes(a)
    +Test("annot_04")
    +
    +a.databaseInfoFlag = 1
    +
    +# Turn off the legend
    +a.legendInfoFlag = 0
    +SetAnnotationAttributes(a)
    +Test("annot_05")
    +
    +a.legendInfoFlag = 1
    +
    +##
    +## Test 2D options
    +##
    +
    +# Turn off the 2D axes
    +a.axes2D.visible = 0
    +SetAnnotationAttributes(a)
    +Test("annot2d_01")
    +
    +a.axes2D.visible = 1
    +
    +# Test 2D axis labels
    +a.axes2D.xAxis.label.visible = 0
    +a.axes2D.yAxis.label.visible = 0
    +SetAnnotationAttributes(a)
    +Test("annot2d_02")
    +
    +a.axes2D.xAxis.label.visible = 1
    +a.axes2D.yAxis.label.visible = 0
    +SetAnnotationAttributes(a)
    +Test("annot2d_03")
    +
    +a.axes2D.xAxis.label.visible = 0
    +a.axes2D.yAxis.label.visible = 1
    +SetAnnotationAttributes(a)
    +Test("annot2d_04")
    +
    +a.axes2D.xAxis.label.visible = 1
    +a.axes2D.yAxis.label.visible = 1
    +
    +# Test 2D axis titles
    +a.axes2D.xAxis.title.visible = 0
    +a.axes2D.yAxis.title.visible = 0
    +SetAnnotationAttributes(a)
    +Test("annot2d_05")
    +
    +a.axes2D.xAxis.title.visible = 1
    +a.axes2D.yAxis.title.visible = 0
    +SetAnnotationAttributes(a)
    +Test("annot2d_06")
    +
    +a.axes2D.xAxis.title.visible = 0
    +a.axes2D.yAxis.title.visible = 1
    +SetAnnotationAttributes(a)
    +Test("annot2d_07")
    +
    +a.axes2D.xAxis.title.visible = 1
    +a.axes2D.yAxis.title.visible = 1
    +
    +# Test 2D gridlines
    +a.axes2D.xAxis.grid = 1
    +a.axes2D.yAxis.grid = 0
    +SetAnnotationAttributes(a)
    +Test("annot2d_08")
    +
    +a.axes2D.xAxis.grid = 0
    +a.axes2D.yAxis.grid = 1
    +SetAnnotationAttributes(a)
    +Test("annot2d_09")
    +
    +a.axes2D.xAxis.grid = 1
    +a.axes2D.yAxis.grid = 1
    +SetAnnotationAttributes(a)
    +Test("annot2d_10")
    +
    +a.axes2D.xAxis.grid = 0
    +a.axes2D.yAxis.grid = 0
    +
    +# Test auto set ticks off
    +a.axes2D.autoSetTicks = 0
    +a.axes2D.xAxis.tickMarks.majorMinimum = -8.
    +a.axes2D.xAxis.tickMarks.majorMaximum = 8.
    +a.axes2D.xAxis.tickMarks.majorSpacing = 4.
    +a.axes2D.xAxis.tickMarks.minorSpacing = 1.
    +a.axes2D.yAxis.tickMarks.majorMinimum = -9.
    +a.axes2D.yAxis.tickMarks.majorMaximum = 9.
    +a.axes2D.yAxis.tickMarks.majorSpacing = 3.
    +a.axes2D.yAxis.tickMarks.minorSpacing = 1.
    +a.axes2D.tickAxes = a.axes2D.All  # All
    +a.axes2D.xAxis.grid = 1
    +a.axes2D.yAxis.grid = 1
    +SetAnnotationAttributes(a)
    +Test("annot2d_11")
    +
    +a.axes2D.autoSetTicks = 1
    +a.axes2D.tickAxes = a.axes2D.BottomLeft # BottomLeft
    +a.axes2D.xAxis.grid = 0
    +a.axes2D.yAxis.grid = 0
    +
    +# Test tick locations
    +a.axes2D.tickLocation = a.axes2D.Inside # Inside
    +SetAnnotationAttributes(a)
    +Test("annot2d_12")
    +
    +a.axes2D.tickLocation = a.axes2D.Both # Both
    +SetAnnotationAttributes(a)
    +Test("annot2d_13")
    +
    +a.axes2D.tickLocation = 1 # Outside
    +
    +# Test font sizes
    +a.axes2D.xAxis.label.font.scale = 1.5
    +a.axes2D.yAxis.label.font.scale = 1.5
    +a.axes2D.xAxis.title.font.scale = 1.5
    +a.axes2D.yAxis.title.font.scale = 1.5
    +SetAnnotationAttributes(a)
    +Test("annot2d_14")
    +
    +a.axes2D.xAxis.label.font.scale = 2
    +a.axes2D.yAxis.label.font.scale = 2
    +a.axes2D.xAxis.title.font.scale = 2
    +a.axes2D.yAxis.title.font.scale = 2
    +SetAnnotationAttributes(a)
    +Test("annot2d_15")
    +
    +a.axes2D.xAxis.label.font.scale = 1
    +a.axes2D.yAxis.label.font.scale = 1
    +a.axes2D.xAxis.title.font.scale = 1
    +a.axes2D.yAxis.title.font.scale = 1
    +
    +# Test labeling locations
    +a.axes2D.tickAxes = a.axes2D.Off
    +SetAnnotationAttributes(a)
    +Test("annot2d_16")
    +
    +a.axes2D.tickAxes = a.axes2D.Bottom
    +SetAnnotationAttributes(a)
    +Test("annot2d_17")
    +
    +a.axes2D.tickAxes = a.axes2D.Left
    +SetAnnotationAttributes(a)
    +Test("annot2d_18")
    +
    +a.axes2D.tickAxes = a.axes2D.All
    +SetAnnotationAttributes(a)
    +Test("annot2d_19")
    +
    +a.axes2D.tickAxes = a.axes2D.BottomLeft
    +
    +# Test how the 2D flags play together
    +# Especially with gridlines on.  Changing
    +# databases so can also test that gridline
    +# length is correct in each direction.
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +ResetView()
    +
    +# Turn on y axis labels, x grid lines
    +# and turn off ticks.
    +a.axes2D.xAxis.label.visible = 0
    +a.axes2D.yAxis.label.visible = 1
    +a.axes2D.xAxis.grid = 1
    +a.axes2D.yAxis.grid = 0
    +a.axes2D.tickAxes = a.axes2D.Off
    +SetAnnotationAttributes(a)
    +Test("annot2d_20")
    +
    +# Turn on y axis labels, bottom ticks marks,
    +# and x and y gridlines 
    +a.axes2D.xAxis.grid = 1
    +a.axes2D.yAxis.grid = 1
    +a.axes2D.tickAxes = a.axes2D.Bottom
    +a.axes2D.tickLocation = a.axes2D.Outside
    +a.axes2D.xAxis.label.visible = 0
    +a.axes2D.yAxis.label.visible = 1
    +SetAnnotationAttributes(a)
    +Test("annot2d_21")
    +
    +# Test how the gridlines work by themselves 
    +# Turn off labels and ticks, 
    +a.axes2D.tickAxes = a.axes2D.Off
    +a.axes2D.xAxis.label.visible = 0
    +a.axes2D.yAxis.label.visible = 0
    +SetAnnotationAttributes(a)
    +Test("annot2d_22")
    +
    +# Test the 2d axes line width.
    +a.axes2D.tickAxes = a.axes2D.BottomLeft
    +a.axes2D.tickLocation = a.axes2D.Outside
    +a.axes2D.lineWidth = 2
    +SetAnnotationAttributes(a)
    +Test("annot2d_23")
    +
    +# Test axis labeling with a narrow window.
    +a.axes2D.xAxis.label.visible = 1
    +a.axes2D.yAxis.label.visible = 1
    +a.axes2D.xAxis.grid = 0
    +a.axes2D.yAxis.grid = 0
    +a.axes2D.lineWidth = 0
    +SetAnnotationAttributes(a)
    +
    +v = View2DAttributes()
    +v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +v.windowCoords = (-4.68395, 4.89802, 2.5, 2.5001)
    +SetView2D(v)
    +Test("annot2d_24")
    +
    +v.windowCoords = (0., 0.0001, 0.216897, 4.925)
    +SetView2D(v)
    +Test("annot2d_25")
    +
    +##
    +## Gridlines with a changed window size (#1676)
    +##
    +ResetView()
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_rect2d.silo"))
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +a.axes2D.xAxis.grid = 1
    +a.axes2D.yAxis.grid = 1
    +SetAnnotationAttributes(a)
    +Test("annot2d_26")
    +swa_orig = SaveWindowAttributes()
    +swa = SaveWindowAttributes()
    +swa.height = 800
    +swa.width = 600
    +swa.resConstraint = swa.NoConstraint
    +Test("annot2d_27", swa)
    +
    +##
    +## Test 3D options
    +##
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("FilledBoundary", "mat1")
    +DrawPlots()
    +v = View3DAttributes()
    +v.viewNormal = (-0.527602, 0.329431, 0.783014)
    +v.focus = (0, 0, 0)
    +v.viewUp = (0.115312, 0.940986, -0.318195)
    +v.viewAngle = 30
    +v.parallelScale = 17.3205
    +v.nearPlane = -34.641
    +v.farPlane = 34.641
    +v.perspective = 1
    +SetView3D(v)
    +
    +# Turn off the triad.
    +a.axes3D.visible = 1
    +a.axes3D.bboxFlag = 1
    +a.axes3D.triadFlag = 0
    +SetAnnotationAttributes(a)
    +Test("annot3d_01")
    +
    +# Turn off the bounding box
    +a.axes3D.triadFlag = 1
    +a.axes3D.bboxFlag = 0
    +SetAnnotationAttributes(a)
    +Test("annot3d_02")
    +
    +# Turn some axes off
    +a.axes3D.bboxFlag = 1
    +a.axes3D.xAxis.label.visible = 0
    +a.axes3D.yAxis.label.visible = 1
    +a.axes3D.zAxis.label.visible = 0
    +a.axes3D.xAxis.tickMarks.visible = 0
    +a.axes3D.yAxis.tickMarks.visible = 1
    +a.axes3D.zAxis.tickMarks.visible = 0
    +SetAnnotationAttributes(a)
    +Test("annot3d_03")
    +
    +# Turn on all gridlines
    +a.axes3D.xAxis.label.visible = 1
    +a.axes3D.yAxis.label.visible = 1
    +a.axes3D.zAxis.label.visible = 1
    +a.axes3D.xAxis.tickMarks.visible = 1
    +a.axes3D.yAxis.tickMarks.visible = 1
    +a.axes3D.zAxis.tickMarks.visible = 1
    +a.axes3D.xAxis.grid = 1
    +a.axes3D.yAxis.grid = 1
    +a.axes3D.zAxis.grid = 1
    +SetAnnotationAttributes(a)
    +Test("annot3d_04")
    +
    +# Turn off titles, labels and ticks
    +# want to ensure gridlines work alone
    +a.axes3D.xAxis.label.visible = 0
    +a.axes3D.yAxis.label.visible = 0
    +a.axes3D.zAxis.label.visible = 0
    +a.axes3D.xAxis.title.visible = 0
    +a.axes3D.yAxis.title.visible = 0
    +a.axes3D.zAxis.title.visible = 0
    +a.axes3D.xAxis.tickMarks.visible = 0
    +a.axes3D.yAxis.tickMarks.visible = 0
    +a.axes3D.zAxis.tickMarks.visible = 0
    +SetAnnotationAttributes(a)
    +Test("annot3d_05")
    +
    +# Mix up which ticks, titles, labels, 
    +# or gridlines are turned on
    +a.axes3D.xAxis.label.visible = 1
    +a.axes3D.yAxis.label.visible = 0
    +a.axes3D.zAxis.label.visible = 0
    +a.axes3D.xAxis.title.visible = 0
    +a.axes3D.yAxis.title.visible = 0
    +a.axes3D.zAxis.title.visible = 1
    +a.axes3D.xAxis.tickMarks.visible = 0
    +a.axes3D.yAxis.tickMarks.visible = 1
    +a.axes3D.zAxis.tickMarks.visible = 0
    +a.axes3D.xAxis.grid = 0
    +a.axes3D.yAxis.grid = 0
    +a.axes3D.zAxis.grid = 1
    +SetAnnotationAttributes(a)
    +Test("annot3d_06")
    +
    +a.axes3D.xAxis.label.visible = 1
    +a.axes3D.yAxis.label.visible = 1
    +a.axes3D.zAxis.label.visible = 1
    +a.axes3D.xAxis.title.visible = 1
    +a.axes3D.yAxis.title.visible = 1
    +a.axes3D.zAxis.title.visible = 1
    +a.axes3D.xAxis.tickMarks.visible = 1
    +a.axes3D.yAxis.tickMarks.visible = 1
    +a.axes3D.zAxis.tickMarks.visible = 1
    +a.axes3D.xAxis.grid = 0
    +a.axes3D.yAxis.grid = 0
    +a.axes3D.zAxis.grid = 0
    +
    +# Change the 3D axis type
    +a.axes3D.axesType = a.axes3D.StaticEdges
    +SetAnnotationAttributes(a)
    +Test("annot3d_07")
    +
    +# Change the 3D axis type
    +a.axes3D.axesType = a.axes3D.FurthestTriad
    +SetAnnotationAttributes(a)
    +Test("annot3d_08")
    +
    +# Change the 3D axis type
    +a.axes3D.axesType = a.axes3D.OutsideEdges
    +SetAnnotationAttributes(a)
    +Test("annot3d_09")
    +
    +# Change the 3D axis type
    +a.axes3D.axesType = a.axes3D.StaticTriad
    +SetAnnotationAttributes(a)
    +Test("annot3d_10")
    +
    +# Change the triad attribtues manually
    +a.axes3D.triadSetManually = 1
    +a.axes3D.triadColor = (66, 244, 215)
    +a.axes3D.triadLineWidth = 2
    +a.axes3D.triadFont = 1
    +a.axes3D.triadBold = 0
    +a.axes3D.triadItalic = 0
    +SetAnnotationAttributes(a)
    +Test("annot3d_11")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_axislabels.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_axislabels.html new file mode 100644 index 000000000..49f6319de --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_axislabels.html @@ -0,0 +1,150 @@ + +Results for rendering/axislabels.py + +

    Results of VisIt Regression Test - rendering/axislabels

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    AxisLabelsLog2D_000.000.00
    AxisLabelsLog2D_010.000.00
    AxisLabelsLog2D_020.000.00
    AxisLabelsLog2D_030.000.00
    AxisLabelsLog2D_040.000.00
    AxisLabelsLog2D_050.000.00
    AxisLabelsLog2D_060.000.00
    AxisLabelsLog2D_070.000.00
    AxisLabelsLog2D_080.000.00
    AxisLabelsLog2D_090.000.00
    AxisLabelsLog2D_100.000.00
    AxisLabelsLog2D_110.000.00
    AxisLabelsLog2D_120.000.00
    AxisLabelsLog2D_130.000.00
    AxisLabelsLog2D_140.000.00
    AxisLabelsLog2D_150.000.00
    AxisLabelsLog2D_160.000.00
    AxisLabelsLog2D_170.000.00
    AxisLabelsLog2D_180.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_axislabels_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_axislabels_py.html new file mode 100644 index 000000000..9d51e6079 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_axislabels_py.html @@ -0,0 +1,141 @@ +rendering/axislabels.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial, parallel, scalable
    +#  CLASSES: nightly
    +#
    +#  Test Case:  axislabels.py 
    +#
    +#  Tests:      Tests the axis labels
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       Fri Dec 17 16:19:49 PST 2021
    +#
    +#  Modifications
    +#
    +# ----------------------------------------------------------------------------
    +
    +def TestLog2D():
    +    OpenDatabase(data_path("curve_test_data/distribution.ultra"))
    +
    +    swa = SaveWindowAttributes()
    +    swa.width = 600
    +    swa.height = 600
    +    swa.screenCapture = 0
    +
    +    a = GetAnnotationAttributes()
    +    a.axes2D.visible = 1
    +    SetAnnotationAttributes(a)
    +
    +    v = GetViewCurve()
    +    v.domainScale = v.LINEAR
    +    v.rangeScale = v.LOG
    +    SetViewCurve(v)
    +
    +    AddPlot("Curve", "Exponential Distribution")
    +    c = CurveAttributes()
    +    c.curveColorSource = c.Custom
    +    c.curveColor = (255, 0, 0, 255)
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("AxisLabelsLog2D_00", swa)
    +
    +    v.domainCoords = (1.601123657864678, 18.12971869918699)
    +    v.rangeCoords = (-7.130672752885499, 0.04760456234965804)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_01", swa)
    +
    +    v.domainCoords = (0.638075437299828, 17.16667047862213)
    +    v.rangeCoords = (-10.48436074884018, -3.306083433605024)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_02", swa)
    +
    +    v.domainCoords = (-8.812882729839023, 26.61762864576098)
    +    v.rangeCoords = (-14.58885955523007, 0.7984153727848649)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_03", swa)
    +
    +    v.domainCoords = (-37.04643791101395, 54.85118382693591)
    +    v.rangeCoords = (-26.85053625423488, 13.06009207178967)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_04", swa)
    +
    +    v.domainCoords = (-72.49874837389116, 90.30349428981312)
    +    v.rangeCoords = (-42.2472784051628, 28.4568342227176)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_05", swa)
    +
    +    v.domainCoords = (-135.3046789498164, 153.1094248657384)
    +    v.rangeCoords = (-69.52354632680284, 55.73310214435764)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_06", swa)
    +
    +    v.domainCoords = (2.563824255463072, 8.936313157343124)
    +    v.rangeCoords = (-4.113141545611167, -1.345604897058017)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_07", swa)
    +
    +    v.domainCoords = (2.581093873083343, 8.953582774963396)
    +    v.rangeCoords = (-3.296916569328953, -0.5293799207758031)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_08", swa)
    +
    +    v.domainCoords = (0.4742005234102636, 6.846689425290313)
    +    v.rangeCoords = (-3.235890402877946, -0.4683537543247966)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_09", swa)
    +
    +    v.domainCoords = (0.6728011260433816, 7.045290027923435)
    +    v.rangeCoords = (-2.461620916030798, 0.3059157325223497)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_10", swa)
    +
    +    v.domainCoords = (-3.883839369631302, 7.405413441872227)
    +    v.rangeCoords = (-2.289688582041886, 2.613171410605579)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_11", swa)
    +
    +    v.domainCoords = (-5.087720394381069, 8.572275507538203)
    +    v.rangeCoords = (-2.632794183897802, 3.299666407205631)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_12", swa)
    +
    +    v.domainCoords = (-4.680511844459359, 8.979484057459912)
    +    v.rangeCoords = (-1.569922247785004, 4.362538343318429)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_13", swa)
    +
    +    # The curve doesn't intersect the window.
    +    v.domainCoords = (-1.565282256005422, 0.4651890936507914)
    +    v.rangeCoords = (1.046155226469858, 1.927977691841728)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_14", swa)
    +
    +    # The curve doesn't intersect the window.
    +    v.domainCoords = (0.7831595313488587, 2.813630881005071)
    +    v.rangeCoords = (0.07581375463087496, 0.9576362200027442)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_15", swa)
    +
    +    v.domainCoords = (0.1079984801721102, 1.494837732720581)
    +    v.rangeCoords = (-0.7549194057961169, -0.1526227967039314)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_16", swa)
    +
    +    v.domainCoords = (7.150150811017356, 9.18062216067357)
    +    v.rangeCoords = (-3.893382901287159, -3.01156043591529)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_17", swa)
    +
    +    v.domainCoords = (8.915537392097869, 10.94600874175408)
    +    v.rangeCoords = (-4.898933596142739, -4.017111130770868)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_18", swa)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("curve_test_data/distribution.ultra"))
    +
    +def Main():
    +    TestLog2D()
    +
    +Main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_axistitles.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_axistitles.html new file mode 100644 index 000000000..3da65c1ad --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_axistitles.html @@ -0,0 +1,120 @@ + +Results for rendering/axistitles.py + +

    Results of VisIt Regression Test - rendering/axistitles

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Setting axis titles in 2D
    axistitles_0_000.000.00
    axistitles_0_010.000.00
    axistitles_0_020.000.00
    axistitles_0_030.000.00
    axistitles_0_040.000.00
    axistitles_0_050.000.00
    Setting axis titles in 3D
    axistitles_1_000.000.00
    axistitles_1_010.000.00
    axistitles_1_020.000.00
    axistitles_1_030.000.00
    axistitles_1_040.000.00
    axistitles_1_050.000.00
    axistitles_1_060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_axistitles_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_axistitles_py.html new file mode 100644 index 000000000..27310d20f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_axistitles_py.html @@ -0,0 +1,170 @@ +rendering/axistitles.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial
    +#  CLASSES: nightly
    +#
    +#  Test Case:  axistitles.py 
    +#
    +#  Tests:      Tests setting axis titles and units.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Jul 28 11:07:57 PDT 2005
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Apr 2 16:44:26 PST 2008
    +#    Modified the 3D test since setting the 3D font scale now actually works.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Thu Jul 11 08:36:38 PDT 2013
    +#    Remove legacy style annotation settings.
    +#
    +#    Kathleen Biagas, Wed Jul  1 17:37:57 PDT 2015
    +#    Added title color test to 2D.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def SaveTestImage(name):
    +    # Save these images somewhat larger than a regular test case image
    +    # since the images contain a lot of text.
    +    swa = SaveWindowAttributes()
    +    swa.width = 500
    +    swa.height = 500
    +    swa.screenCapture = 0
    +    Test(name, swa)
    +
    +#
    +# Test replacing 2D titles and units.
    +#
    +def Test2D():
    +    TestSection("Setting axis titles in 2D")
    +    OpenDatabase(silo_data_path("noise2d.silo"))
    +
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +
    +    v = GetView2D()
    +    v.viewportCoords = (0.35, 0.95, 0.15, 0.95)
    +    SetView2D(v)
    +
    +    a = GetAnnotationAttributes()
    +    a.axes2D.visible = 1
    +    a.axes2D.xAxis.label.visible = 0
    +    a.axes2D.yAxis.label.visible = 0
    +    a.axes2D.xAxis.title.visible = 1
    +    a.axes2D.yAxis.title.visible = 1
    +    a.axes2D.xAxis.title.font.scale = 2 #TitleFontHeight2D = 0.04
    +    a.axes2D.yAxis.title.font.scale = 2 #TitleFontHeight2D = 0.04
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_0_00")
    +
    +    a.axes2D.xAxis.title.title = "New X Title"
    +    a.axes2D.xAxis.title.userTitle = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_0_01")
    +
    +    a.axes2D.yAxis.title.title = "New Y Title"
    +    a.axes2D.yAxis.title.userTitle = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_0_02")
    +
    +    a.axes2D.xAxis.title.units = "New X Units"
    +    a.axes2D.xAxis.title.userUnits = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_0_03")
    +
    +    a.axes2D.yAxis.title.units = "New Y Units"
    +    a.axes2D.yAxis.title.userUnits = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_0_04")
    +
    +    # Test colors for title
    +
    +    a.axes2D.xAxis.title.font.useForegroundColor = 0
    +    a.axes2D.xAxis.title.font.color =(255,0,0,255)
    +    a.axes2D.yAxis.title.font.useForegroundColor = 0
    +    a.axes2D.yAxis.title.font.color =(255,0,255,255)
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_0_05")
    +
    +    DeleteAllPlots()
    +
    +
    +#
    +# Test replacing 3D titles and units.
    +#
    +def Test3D():
    +    TestSection("Setting axis titles in 3D")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.749133, -0.494511, 0.440747)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (-0.588718, 0.802033, -0.10077)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +
    +    a = GetAnnotationAttributes()
    +    a.axes3D.visible = 1
    +    a.axes3D.xAxis.title.visible = 1
    +    a.axes3D.yAxis.title.visible = 1
    +    a.axes3D.zAxis.title.visible = 1
    +    a.axes3D.xAxis.title.font.scale = 2
    +    a.axes3D.yAxis.title.font.scale = 2
    +    a.axes3D.zAxis.title.font.scale = 2
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_1_00")
    +
    +    a.axes3D.xAxis.title.title = "New X Title"
    +    a.axes3D.xAxis.title.userTitle = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_1_01")
    +
    +    a.axes3D.yAxis.title.title = "New Y Title"
    +    a.axes3D.yAxis.title.userTitle = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_1_02")
    +
    +    a.axes3D.zAxis.title.title = "New Z Title"
    +    a.axes3D.zAxis.title.userTitle = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_1_03")
    +
    +    a.axes3D.xAxis.title.units = "New X Units"
    +    a.axes3D.xAxis.title.userUnits = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_1_04")
    +
    +    a.axes3D.yAxis.title.units = "New Y Units"
    +    a.axes3D.yAxis.title.userUnits = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_1_05")
    +
    +    a.axes3D.zAxis.title.units = "New Z Units"
    +    a.axes3D.zAxis.title.userUnits = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_1_06")
    +    DeleteAllPlots()
    +
    +def main():
    +    Test2D()
    +    Test3D()
    +
    +# Run all of the tests
    +main()
    +
    +# Exit the test
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_bigdata.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_bigdata.html new file mode 100644 index 000000000..58b643683 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_bigdata.html @@ -0,0 +1,54 @@ + +Results for rendering/bigdata.py + +

    Results of VisIt Regression Test - rendering/bigdata

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    bigdata_010.000.00
    bigdata_020.000.00
    bigdata_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_bigdata_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_bigdata_py.html new file mode 100644 index 000000000..b0344146e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_bigdata_py.html @@ -0,0 +1,36 @@ +rendering/bigdata.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  bigdata.py
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 27, 2010
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "hardyglobal")
    +AddOperator("Transform")
    +t = TransformAttributes()
    +t.doScale = 1
    +t.scaleX= 1e+20
    +t.scaleY= 1e+20
    +t.scaleZ= 1e+20
    +SetOperatorOptions(t)
    +DrawPlots()
    +Test("bigdata_01")
    +
    +AddOperator("Isosurface")
    +DrawPlots()
    +Test("bigdata_02")
    +
    +v = GetView3D()
    +v.axis3DScaleFlag = 1
    +v.axis3DScales = (2,1,1)
    +SetView3D(v)
    +Test("bigdata_03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_colortexture.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_colortexture.html new file mode 100644 index 000000000..190e25ceb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_colortexture.html @@ -0,0 +1,66 @@ + +Results for rendering/colortexture.py + +

    Results of VisIt Regression Test - rendering/colortexture

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    colortexture_000.000.00
    colortexture_010.000.00
    colortexture_020.000.00
    colortexture_030.000.00
    colortexture_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_colortexture_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_colortexture_py.html new file mode 100644 index 000000000..403ab3a71 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_colortexture_py.html @@ -0,0 +1,86 @@ +rendering/colortexture.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  colortexture.py
    +#
    +#  Tests:      mesh      - 3D UCD
    +#              plots     - Pseudocolor
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Mon Sep 18 13:44:14 PST 2006
    +#
    +#  Modificatons:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +def main():
    +    a = AnnotationAttributes()
    +    TurnOffAllAnnotations(a)
    +    a.foregroundColor = (255, 255, 255, 255)
    +    a.backgroundColor = (0, 0, 0, 255)
    +    SetAnnotationAttributes(a)
    +
    +    OpenDatabase(silo_data_path("ucd2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    AddPlot("Mesh", "ucdmesh2d")
    +    DrawPlots()
    +    Test("colortexture_00")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "speed")
    +    pc = PseudocolorAttributes()
    +    pc.colorTableName = "levels"
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +
    +    L = GetLight(0)
    +    L.enabledFlag = 1
    +    L.type = L.Camera  # Ambient, Object, Camera
    +    L.direction = (-0.131, -0.685, -0.716)
    +    L.color = (255, 255, 255, 255)
    +    L.brightness = 1
    +    SetLight(0, L)
    +
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.615147, 0.425906, 0.663475)
    +    v0.focus = (0, 0, 0)
    +    v0.viewUp = (0.235983, 0.902416, -0.360497)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 17.3205
    +    v0.nearPlane = -34.641
    +    v0.farPlane = 34.641
    +    v0.imagePan = (0, 0)
    +    v0.imageZoom = 1.56642
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0, 0, 0)
    +    SetView3D(v0)
    +    Test("colortexture_01")
    +
    +    # Turn off color texturing
    +    SetColorTexturingEnabled(0)
    +    Test("colortexture_02")
    +
    +    # Turn color texturing back on.
    +    SetColorTexturingEnabled(1)
    +    pc.colorTableName = "hot"
    +    SetPlotOptions(pc)
    +    Test("colortexture_03")
    +
    +    # Make sure that it works with specular highlights.
    +    r = GetRenderingAttributes()
    +    r.specularFlag = 1
    +    SetRenderingAttributes(r)
    +    Test("colortexture_04")
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_evalcubic.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_evalcubic.html new file mode 100644 index 000000000..1da1372d8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_evalcubic.html @@ -0,0 +1,66 @@ + +Results for rendering/evalcubic.py + +

    Results of VisIt Regression Test - rendering/evalcubic

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    evalcubic_00.000.00
    evalcubic_10.000.00
    evalcubic_20.000.00
    evalcubic_30.000.00
    evalcubic_40.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_evalcubic_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_evalcubic_py.html new file mode 100644 index 000000000..4f602b79c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_evalcubic_py.html @@ -0,0 +1,123 @@ +rendering/evalcubic.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  evalcubic.py
    +#
    +#  Tests:      mesh      - 3D structured, single domain
    +#              plots     - pseudocolor
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Mon Feb  7 15:52:37 PST 2011
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Example from:
    +# https://visit-sphinx-github-user-manual.readthedocs.io/en/develop/tutorials/Scripting.html#animating-the-camera
    +#
    +
    +def fly():
    +    # Do a pseudocolor plot of u.
    +    DeleteAllPlots()
    +    AddPlot('Pseudocolor', 'hardyglobal')
    +    AddOperator("Clip")
    +    c = ClipAttributes()
    +    c.funcType = c.Sphere  # Plane, Sphere
    +    c.center = (0, 0, 0)
    +    c.radius = 10
    +    c.sphereInverse = 1
    +    SetOperatorOptions(c)
    +    DrawPlots()
    +    # Create the control points for the views.
    +    c0 = View3DAttributes()
    +    c0.viewNormal = (0, 0, 1)
    +    c0.focus = (0, 0, 0)
    +    c0.viewUp = (0, 1, 0)
    +    c0.viewAngle = 30
    +    c0.parallelScale = 17.3205
    +    c0.nearPlane = 17.3205
    +    c0.farPlane = 81.9615
    +    c0.perspective = 1
    +    c1 = View3DAttributes()
    +    c1.viewNormal = (-0.499159, 0.475135, 0.724629)
    +    c1.focus = (0, 0, 0)
    +    c1.viewUp = (0.196284, 0.876524, -0.439521)
    +    c1.viewAngle = 30
    +    c1.parallelScale = 14.0932
    +    c1.nearPlane = 15.276
    +    c1.farPlane = 69.917
    +    c1.perspective = 1
    +    c2 = View3DAttributes()
    +    c2.viewNormal = (-0.522881, 0.831168, -0.189092)
    +    c2.focus = (0, 0, 0)
    +    c2.viewUp = (0.783763, 0.556011, 0.27671)
    +    c2.viewAngle = 30
    +    c2.parallelScale = 11.3107
    +    c2.nearPlane = 14.8914
    +    c2.farPlane = 59.5324
    +    c2.perspective = 1
    +    c3 = View3DAttributes()
    +    c3.viewNormal = (-0.438771, 0.523661, -0.730246)
    +    c3.focus = (0, 0, 0)
    +    c3.viewUp = (-0.0199911, 0.80676, 0.590541)
    +    c3.viewAngle = 30
    +    c3.parallelScale = 8.28257
    +    c3.nearPlane = 3.5905
    +    c3.farPlane = 48.2315
    +    c3.perspective = 1
    +    c4 = View3DAttributes()
    +    c4.viewNormal = (0.286142, -0.342802, -0.894768)
    +    c4.focus = (0, 0, 0)
    +    c4.viewUp = (-0.0382056, 0.928989, -0.36813)
    +    c4.viewAngle = 30
    +    c4.parallelScale = 10.4152
    +    c4.nearPlane = 1.5495
    +    c4.farPlane = 56.1905
    +    c4.perspective = 1
    +    c5 = View3DAttributes()
    +    c5.viewNormal = (0.974296, -0.223599, -0.0274086)
    +    c5.focus = (0, 0, 0)
    +    c5.viewUp = (0.222245, 0.97394, -0.0452541)
    +    c5.viewAngle = 30
    +    c5.parallelScale = 1.1052
    +    c5.nearPlane = 24.1248
    +    c5.farPlane = 58.7658
    +    c5.perspective = 1
    +    c6 = c0
    +    # Create a tuple of camera values and x values. The x values are weights
    +    # that help to determine where in [0,1] the control points occur.
    +    cpts = (c0, c1, c2, c3, c4, c5, c6)
    +    x=[]
    +    for i in range(7):
    +        x = x + [float(i) / float(6.)]
    +    # Animate the camera. Note that we use the new built-in EvalCubicSpline
    +    # function which takes a t value from [0,1] a tuple of t values and a tuple
    +    # of control points. In this case, the control points are View3DAttributes
    +    # objects that we are using to animate the camera but they can be any object
    +    # that supports +, * operators.
    +    nsteps = 100
    +    for i in range(nsteps):
    +        t = float(i) / float(nsteps - 1)
    +        c = EvalCubicSpline(t, x, cpts)
    +        c.nearPlane = -34.461
    +        c.farPlane = 34.461
    +        SetView3D(c)
    +        if i == 0:
    +            Test("evalcubic_0")
    +        elif i == 24:
    +            Test("evalcubic_1")
    +        elif i == 49:
    +            Test("evalcubic_2")
    +        elif i == 74:
    +            Test("evalcubic_3")
    +        elif i == 99:
    +            Test("evalcubic_4")
    +
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +fly()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_image.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_image.html new file mode 100644 index 000000000..1ff7f8fe9 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_image.html @@ -0,0 +1,54 @@ + +Results for rendering/image.py + +

    Results of VisIt Regression Test - rendering/image

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    image000.000.00
    image010.000.00
    image020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_image_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_image_py.html new file mode 100644 index 000000000..5ee3f00ef --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_image_py.html @@ -0,0 +1,46 @@ +rendering/image.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  image.py
    +#
    +#  Tests:      mesh        - 2D curvilinear, single domain
    +#              plots       - Pseudocolor
    +#              annotations - Image
    +#
    +#  Defect ID:  None 
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       July 1, 2015
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Set up the annotation colors, etc.
    +a = GetAnnotationAttributes()
    +a.backgroundColor = (255, 255, 255, 255)
    +a.foregroundColor = (0, 0, 0, 255)
    +a.backgroundMode = a.Solid
    +SetAnnotationAttributes(a)
    +
    +# Open up the database and do a plot.
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +# Create an Image object
    +img = CreateAnnotationObject("Image")
    +img.image = data_path("Image_test_data/manhattan.jpg")
    +img.position = (0.34, 0.12)
    +Test("image00")
    +
    +img.width = 50
    +Test("image01")
    +
    +img.width = 10
    +img.position = (0.5, 0.6)
    +Test("image02")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_legends.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_legends.html new file mode 100644 index 000000000..e77256b4d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_legends.html @@ -0,0 +1,435 @@ + +Results for rendering/legends.py + +

    Results of VisIt Regression Test - rendering/legends

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Test levels legend
    legends_010.000.00
    legends_020.000.00
    legends_030.000.00
    Test legend default sizing and positioning
    legends_040.000.00
    legends_050.000.00
    legends_060.000.00
    legends_070.000.00
    legends_080.000.00
    Test Curve plot legend
    legends_090.000.00
    legends_100.000.00
    legends_110.000.00
    legends_120.000.00
    legends_130.000.00
    Test setting legend properties
    legends_140.000.00
    legends_150.000.00
    legends_160.000.00
    legends_170.000.00
    legends_180.000.00
    legends_190.000.00
    legends_200.000.00
    legends_210.000.00
    legends_220.000.00
    legends_230.000.00
    legends_240.000.00
    legends_250.000.00
    legends_260.000.00
    legends_270.000.00
    legends_280.000.00
    legends_290 modifications totalling 0 lines
    Test legend copying
    legends_300.000.00
    legends_310.000.00
    legends_320.000.00
    legends_330 modifications totalling 0 lines
    legends_340.000.00
    legends_350 modifications totalling 0 lines
    legends_360.000.00
    legends_370.000.00
    Test setting legend tics
    legends_380.000.00
    legends_390.000.00
    legends_400.000.00
    legends_410.000.00
    legends_420.000.00
    legends_430.000.00
    legends_440.000.00
    legends_450.000.00
    legends_460.000.00
    legends_470.000.00
    legends_480.000.00
    legends_490.000.00
    legends_500.000.00
    legends_510.000.00
    legends_520.000.00
    legends_530.000.00
    legends_540.000.00
    legends_550.000.00
    legends_560.000.00
    legends_570.000.00
    legends_580.000.00
    legends_590.000.00
    legends_600.000.00
    Test Variable legend
    legends_610.000.00
    legends_620.000.00
    legends_630.000.00
    legends_640.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_legends_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_legends_py.html new file mode 100644 index 000000000..853e92c21 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_legends_py.html @@ -0,0 +1,597 @@ +rendering/legends.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  legends.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain 
    +#              plots     - subset, boundary, filledboundary
    +#              operators - none
    +#              selection - material
    +#
    +#  Defect ID:  VisIt00002740, VisIt00002737
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       December 2, 2002 
    +#
    +#  Modifications:
    +#    Brad Whitlock, Thu Dec 12 09:50:31 PDT 2002
    +#    I fixed the test so it uses the new interface for the SubsetAttributes.
    +#
    +#    Kathleen Bonnell, Fri Jul 18 14:04:19 PDT 2003 
    +#    I added tests for Boundary, FilledBoundary.
    +#
    +#    Eric Brugger, Mon Jul 21 12:14:52 PDT 2003
    +#    I added legend sizing and positioning tests.
    +#
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from Subset, Boundary and Filled Boundary plots.
    +#
    +#    Kathleen Bonnell, Fri Oct 28 10:00:30 PDT 2005 
    +#    Add tests for curve plots (legends_09 ... legends_11). 
    +#
    +#    Kathleen Bonnell, Fri Oct 28 15:54:37 PDT 2005 
    +#    Add more tests for curve plots, for testing reading of TIME 
    +#    (legends_12 & legends_13). 
    +#
    +#    Brad Whitlock, Tue Nov 21 10:54:18 PDT 2006
    +#    I made it use line style enum values instead of ints so the intent
    +#    is more clear.
    +#
    +#    Brad Whitlock, Mon Mar 26 08:54:40 PDT 2007
    +#    Organized different parts of the test into functions and added a new
    +#    function that sets the properties for a legend.
    +#
    +#    Hank Childs, Sun Jan 25 15:07:31 PST 2009
    +#    Turn off minmaxLabels as well.
    +#
    +#    Kathleen Bonnell, Wed Sep 23 10:13:13 PDT 2009
    +#    Add TestLegendProperties2, to test new capability of modifiying num tics,
    +#    and setting numeric values and text labels for tics in liu of the 
    +#    automatically generated ones.
    +#
    +#    Kathleen Bonnell, Tue Oct 6 11:36:41 PDT 2009
    +#    Added test for constant variable legend. 
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Brad Whitlock, Mon Jan 25 15:34:23 PST 2010
    +#    I fixed a bug that made small baselines. I also increased the legend size
    +#    in some tests so it's more prominent.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset, and Subset for 
    +#    domains instead of FilledBoundary.
    +#
    +#    Eric Brugger, Wed Mar  8 16:50:08 PST 2023
    +#    Added TestVariableLegend.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Test the Filled Boundary plot with some subsets turned off, and
    +# single-color on.
    +# This test ensures that correct labels are applied to the legend.
    +def TestLevelsLegend(a):
    +    TestSection("Test levels legend")
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +    AddPlot("FilledBoundary", "mat1")
    +    TurnMaterialsOff(("2", "4"))
    +    fbAtts = FilledBoundaryAttributes()
    +    fbAtts.colorType = fbAtts.ColorBySingleColor
    +    fbAtts.singleColor = (0, 255, 255, 255)
    +    SetPlotOptions(fbAtts)
    +    DrawPlots()
    +
    +    Test("legends_01")
    +    DeleteAllPlots()
    +
    +    # Test the FilledBoundary and Boundary plots, to ensure that setting
    +    # their atts works.
    +    AddPlot("FilledBoundary", "mat1")
    +    fba = FilledBoundaryAttributes()
    +    fba.colorType = fba.ColorByMultipleColors
    +    SetPlotOptions(fba)
    +    DrawPlots()
    +    Test("legends_02")
    +    DeleteAllPlots()
    +
    +    AddPlot("Boundary", "mat1")
    +    ba = BoundaryAttributes()
    +    ba.colorType = ba.ColorByColorTable
    +    ba.colorTableName = "rainbow"
    +    SetPlotOptions(ba)
    +    DrawPlots()
    +    Test("legends_03")
    +    DeleteAllPlots()
    +
    +#
    +# Test legend sizing and positioning.
    +#
    +def TestSizeAndPosition(a):
    +    TestSection("Test legend default sizing and positioning")
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +
    +    AddPlot("Boundary", "mat1")
    +    bndAtts = BoundaryAttributes()
    +    bndAtts.colorType = bndAtts.ColorBySingleColor
    +    bndAtts.singleColor = (0, 0, 0, 255)
    +    SetPlotOptions(bndAtts)
    +    AddPlot("Contour", "p")
    +    AddPlot("Mesh", "curvmesh2d")
    +    AddPlot("FilledBoundary", "mat1")
    +    DrawPlots()
    +    Test("legends_04")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "d")
    +    AddPlot("Vector", "vel")
    +    AddPlot("FilledBoundary", "mat1")
    +    DrawPlots()
    +    Test("legends_05")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "d")
    +    AddOperator("Elevate")
    +    AddPlot("Pseudocolor", "p")
    +    AddOperator("Elevate")
    +    elevate_atts = ElevateAttributes()
    +    elevate_atts.useXYLimits = elevate_atts.Never
    +    SetOperatorOptions(elevate_atts)
    +
    +    DrawPlots()
    +    Test("legends_06")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +    AddPlot("Volume", "u")
    +    DrawPlots()
    +    Test("legends_07")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +
    +    AddPlot("Contour", "d")
    +    contourAtts = ContourAttributes()
    +    contourAtts.contourNLevels = 15
    +    SetPlotOptions(contourAtts)
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test("legends_08")
    +    DeleteAllPlots()
    +
    +#
    +# TEST LEGEND FOR CURVE PLOTS
    +#
    +def TestCurveLegend(a):
    +    TestSection("Test Curve plot legend")
    +    OpenDatabase(data_path("curve_test_data/c033.curve"))
    +
    +    # Test legend on
    +    AddPlot("Curve", "parabolic")
    +    curveAtts = CurveAttributes()
    +    curveAtts.curveColorSource = curveAtts.Custom
    +    curveAtts.curveColor = (255, 0, 0, 255)
    +    curveAtts.lineWidth = 1
    +    SetPlotOptions(curveAtts)
    +    DrawPlots()
    +    Test("legends_09")
    +
    +    # Test legend off
    +    curveAtts.showLegend = 0
    +    SetPlotOptions(curveAtts)
    +    Test("legends_10")
    +
    +    curveAtts.showLegend = 1
    +    SetPlotOptions(curveAtts)
    +
    +    # Tests multiple plots
    +    OpenDatabase(data_path("curve_test_data/c044.curve"))
    +
    +    AddPlot("Curve", "parabolic")
    +    curveAtts.curveColor = (0, 255, 0, 255)
    +    curveAtts.lineWidth = 5
    +    SetPlotOptions(curveAtts)
    +    DrawPlots()
    +
    +    OpenDatabase(data_path("curve_test_data/c055.curve"))
    +
    +    AddPlot("Curve", "parabolic")
    +    curveAtts.curveColor = (0, 0, 255, 255)
    +    curveAtts.lineWidth = 2
    +    SetPlotOptions(curveAtts)
    +    DrawPlots()
    +
    +    Test("legends_11")
    +
    +    # Add DatabaseInfo
    +    a.databaseInfoFlag = 1
    +    SetAnnotationAttributes(a)
    +    Test("legends_12")
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(data_path("curve_test_data/distribution.ultra"))
    +
    +    AddPlot("Curve", "Laplace Distribution")
    +    curveAtts.curveColor = (0, 255, 255, 255)
    +    curveAtts.lineWidth = 0
    +    SetPlotOptions(curveAtts)
    +    DrawPlots()
    +    Test("legends_13")
    +    DeleteAllPlots()
    +
    +    # Remove DatabaseInfo
    +    a.databaseInfoFlag = 0
    +    SetAnnotationAttributes(a)
    +
    +#
    +# Test setting legend properties. Note that we currently just test the
    +# avtVariableLegend but others work pretty much the same way.
    +#
    +def TestLegendProperties(a):
    +    TestSection("Test setting legend properties")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.778207, 0.3577, 0.516183)
    +    v0.focus = (0, 0, 0)
    +    v0.viewUp = (0.283417, 0.933512, -0.219613)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 17.3205
    +    v0.nearPlane = -34.641
    +    v0.farPlane = 34.641
    +    v0.imagePan = (0.0768749, 0.057219)
    +    v0.imageZoom = 0.863307
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0, 0, 0)
    +    SetView3D(v0)
    +    Test("legends_14")
    +
    +    # Get the plot's legend
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +
    +    # See if we can scale the legend.
    +    legend.xScale = 3.
    +    Test("legends_15")
    +    legend.yScale = 3.
    +    Test("legends_16")
    +
    +    # Test the bounding box.
    +    legend.drawBoundingBox = 1
    +    Test("legends_17")
    +    legend.boundingBoxColor = (180,180,180,230)
    +    Test("legends_18")
    +
    +    # Test moving the legend
    +    legend.managePosition = 0
    +    legend.position = (0.55,0.9)
    +    Test("legends_19")
    +
    +    # Test text color
    +    InvertBackgroundColor()
    +    Test("legends_20")
    +    InvertBackgroundColor()
    +    legend.useForegroundForTextColor = 0
    +    legend.textColor = (255, 0, 0, 255)
    +    Test("legends_21")
    +
    +    # Test number format
    +    legend.numberFormat = "%1.4e"
    +    Test("legends_22")
    +
    +    # Test the font.
    +    legend.fontFamily = legend.Courier
    +    Test("legends_23")
    +    legend.fontFamily = legend.Times
    +    Test("legends_24")
    +    legend.fontFamily = legend.Arial
    +    legend.fontBold = 1
    +    Test("legends_25")
    +    legend.fontBold = 0
    +    legend.fontItalic = 1
    +    Test("legends_26")
    +
    +    # Test turning off the labels.
    +    legend.fontItalic = 0
    +    legend.drawLabels = 0
    +    legend.drawMinMax = 0
    +    Test("legends_27")
    +
    +    # Test turning off the title.
    +    legend.drawTitle = 0
    +    Test("legends_28")
    +
    +    # Add a plot and then delete plot 0 to see that the legend disappears
    +    # in the list of annotation objects. Note that plot names are created
    +    # using an increasing integer. If this test is executed out of the order
    +    # from when it was baselined then the number will change and the test
    +    # will need to be rebaselined.
    +    text = "Before: " + str(GetAnnotationObjectNames()) + "\n"
    +    AddPlot("Mesh", "Mesh")
    +    DrawPlots()
    +    SetActivePlots(0)
    +    DeleteActivePlots()
    +    text = text + "After: " + str(GetAnnotationObjectNames()) + "\n"
    +    TestText("legends_29", text)
    +    DeleteAllPlots()
    +
    +#
    +# Test how legends get copied to new windows.
    +#
    +def TestLegendCopying(a):
    +    TestSection("Test legend copying")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +
    +    # Customize the legend.
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend.xScale = 3.
    +    legend.yScale = 3.
    +    legend.drawBoundingBox = 1
    +    legend.boundingBoxColor = (50,50,100,255)
    +
    +    # Create another annotation object.
    +    text2d = CreateAnnotationObject("Text2D", "text_obj")
    +    text2d.position = (0.45, 0.5)
    +    text2d.height = 0.05
    +    text2d.textColor = (255, 0, 0, 255)
    +    text2d.useForegroundForTextColor = 0
    +    text2d.text = "Text annotation"
    +    Test("legends_30")
    +
    +    # Clone the window and make sure that it has the right annotation objects
    +    # and that their properties have been inherited from window 1.
    +    CloneWindow()
    +    SetActiveWindow(2)
    +    DrawPlots()
    +    Test("legends_31")
    +    DeleteWindow()
    +
    +    # Test clone on first reference.
    +    SetCloneWindowOnFirstRef(1)
    +    AddWindow()
    +    DrawPlots()
    +    Test("legends_32")
    +    TestText("legends_33", str(GetAnnotationObjectNames()))
    +
    +    # Test it clone on first reference again via SetActiveWindow
    +    DeleteWindow()
    +    AddWindow()
    +    SetActiveWindow(2)
    +    DrawPlots()
    +    Test("legends_34")
    +    TestText("legends_35", str(GetAnnotationObjectNames()))
    +
    +    # Now that we're in window 2, delete the text object.
    +    w2text = GetAnnotationObject("text_obj")
    +    w2text.Delete()
    +    # Customize the legend in window 2 so we'll know if copying window 1's
    +    # attributes over to window 2 messed it up.
    +    legend2 = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend2.boundingBoxColor = (200,0,0,255)
    +    Test("legends_36")
    +    CopyAnnotationsToWindow(1, 2)
    +    RedrawWindow()
    +    Test("legends_37")
    +
    +    # Clean up
    +    DeleteAllPlots()
    +    DeleteWindow()
    +    text2d.Delete()
    +    GetAnnotationObject("text_obj").Delete()
    +    DeleteAllPlots()
    +
    +def TestLegendTics():
    +    TestSection("Test setting legend tics")
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend.xScale = 3.
    +    legend.yScale = 3.
    +
    +    # change number of ticks
    +    legend.numTicks = 3
    +    Test("legends_38")
    +
    +    # turn off use of min and max as tick values
    +    legend.minMaxInclusive = 0
    +    Test("legends_39")
    +
    +    legend.numTicks = 1
    +    Test("legends_40")
    +
    +    legend.minMaxInclusive = 1
    +    Test("legends_41")
    +
    +    legend.numTicks = 2
    +    Test("legends_42")
    +
    +    legend.minMaxInclusive = 0
    +    Test("legends_43")
    +
    +    legend.minMaxInclusive = 1
    +    # turn off automatic control of ticks so labels can be added
    +    legend.controlTicks = 0
    +    # default values should be what was calculated
    +    Test("legends_44")
    +
    +    # supply some labels
    +    legend.suppliedLabels = ("", "second", "", "fourth", "")
    +    # Turn on drawing of text labels
    +    legend.drawLabels = legend.Both
    +    Test("legends_45")
    +
    +    # only labels, no values
    +    legend.drawLabels = legend.Labels
    +    Test("legends_46")
    +
    +    # supply different values -- don't need to be in order
    +    # show that values out-of-range won't be used
    +    legend.suppliedValues = (2.2, 4.5, 3.8, 1.0, 5.7)
    +    legend.suppliedLabels = ("this", "that", "the other", "noshow1", "noshow2")
    +    legend.drawLabels = legend.Values
    +    Test("legends_47")
    +    legend.drawLabels = legend.Both
    +    Test("legends_48")
    +    legend.drawLabels = legend.Labels
    +    Test("legends_49")
    +
    +    legend.orientation = legend.HorizontalTop
    +    Test("legends_50")
    +    legend.orientation = legend.HorizontalBottom
    +    Test("legends_51")
    +    legend.orientation = legend.VerticalLeft
    +    Test("legends_52")
    +
    +    DeleteAllPlots()
    +
    +    # demonstrate adding labels to 'levels' type legends
    +    AddPlot("FilledBoundary", "mat1")
    +    DrawPlots()
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend.xScale = 3.
    +    legend.yScale = 3.
    +
    +    legend.controlTicks = 0
    +    Test("legends_53")
    +    legend.drawLabels = legend.Both
    +    legend.suppliedLabels = ("red", "green", "blue");
    +    Test("legends_54")
    +    legend.drawLabels = legend.Labels
    +    Test("legends_55")
    +
    +    DeleteAllPlots()
    +    AddPlot("Contour", "p")
    +    contourAtts = ContourAttributes()
    +    contourAtts.contourNLevels = 6
    +    SetPlotOptions(contourAtts)
    +    DrawPlots()
    +
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend.xScale = 3.
    +    legend.yScale = 3.
    +    Test("legends_56")
    +    nf = legend.numberFormat
    +    legend.numberFormat = "%# -0.2e"
    +    Test("legends_57")
    +    legend.numberFormat = nf
    +    legend.controlTicks = 0
    +    legend.drawLabels = legend.Both
    +    legend.suppliedLabels = ("one", "", "two", "", "three")
    +    Test("legends_58")
    +    legend.drawLabels = legend.Labels
    +    Test("legends_59")
    +
    +    DeleteAllPlots()
    +
    +    # test constant legend
    +    DefineScalarExpression("one", "cell_constant(<curvmesh2d>, 1)")
    +    AddPlot("Pseudocolor", "one")
    +    DrawPlots()
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend.xScale = 3.
    +    legend.yScale = 3.
    +    Test("legends_60")
    +
    +    #clean up
    +    DeleteAllPlots()
    +
    +# Test the pseudocolor plot with original and actual limits.
    +# This test ensures that correct limits are displayed.
    +def TestVariableLegend():
    +    TestSection("Test Variable legend")
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    pc = PseudocolorAttributes()
    +    pc.limitsMode = pc.OriginalData
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    TurnMaterialsOff("1")
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend.xScale = 2.0
    +    legend.yScale = 2.0
    +    Test("legends_61")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "d")
    +    pc = PseudocolorAttributes()
    +    pc.limitsMode = pc.OriginalData
    +    pc.minFlag = 1
    +    pc.min = 2.8
    +    pc.maxFlag = 1
    +    pc.max = 4.2
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    TurnMaterialsOff("1")
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend.xScale = 2.0
    +    legend.yScale = 2.0
    +    Test("legends_62")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "d")
    +    pc = PseudocolorAttributes()
    +    pc.limitsMode = pc.ActualData
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    TurnMaterialsOff("1")
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend.xScale = 2.0
    +    legend.yScale = 2.0
    +    Test("legends_63")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "d")
    +    pc = PseudocolorAttributes()
    +    pc.limitsMode = pc.ActualData
    +    pc.minFlag = 1
    +    pc.min = 2.8
    +    pc.maxFlag = 1
    +    pc.max = 4.2
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    TurnMaterialsOff("1")
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend.xScale = 2.0
    +    legend.yScale = 2.0
    +    Test("legends_64")
    +    DeleteAllPlots()
    +
    +def main():
    +    # Turn off all annotation except the legend.
    +    a = GetAnnotationAttributes()
    +    TurnOffAllAnnotations(a)
    +    a.legendInfoFlag = 1
    +    SetAnnotationAttributes(a)
    +
    +    TestLevelsLegend(a)
    +    TestSizeAndPosition(a)
    +    TestCurveLegend(a)
    +    TestLegendProperties(a)
    +    TestLegendCopying(a)
    +    TestLegendTics()
    +    TestVariableLegend()
    +
    +    # reset DatabaseInfo for future tests.
    +    a.databaseInfoFlag = 0
    +    SetAnnotationAttributes(a)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_lighting.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_lighting.html new file mode 100644 index 000000000..808625243 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_lighting.html @@ -0,0 +1,54 @@ + +Results for rendering/lighting.py + +

    Results of VisIt Regression Test - rendering/lighting

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    lighting_010.000.00
    lighting_020.000.00
    normals_000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_lighting_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_lighting_py.html new file mode 100644 index 000000000..9dcda0087 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_lighting_py.html @@ -0,0 +1,113 @@ +rendering/lighting.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  lighting.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, one domain
    +#              plots     - pseudocolor
    +#              operators - slicing, elevation
    +#              selection - no
    +#
    +#  Defect ID:  8017
    +#
    +#  Programmer: Hank Childs
    +#  Date:       May 6, 2007
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Alister Maguire, Wed Mar 18 16:45:02 PDT 2020
    +#    Moved previous two tests into a function called TestBasicLighting and
    +#    added TestNormals.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def TestBasicLighting():
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    AddOperator("Slice")
    +    AddOperator("Elevate")
    +    DrawPlots()
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (-0.58136, 0.782415, -0.223267)
    +    View3DAtts.focus = (0.5, 0.5, 0.66382)
    +    View3DAtts.viewUp = (0.259676, -0.0816327, -0.962239)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 0.728621
    +    View3DAtts.nearPlane = -1.45724
    +    View3DAtts.farPlane = 1.45724
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0.5, 0.5, 0.66382)
    +    SetView3D(View3DAtts)
    +
    +    light0 = GetLight(0)
    +    light0.enabledFlag = 1
    +    light0.type = light0.Camera  # Ambient, Object, Camera
    +    light0.direction = (0, 0, -1)
    +    light0.color = (255, 255, 255, 255)
    +    light0.brightness = 1
    +    SetLight(0, light0)
    +    light1 = GetLight(1)
    +    light1.enabledFlag = 1
    +    light1.type = light1.Ambient  # Ambient, Object, Camera
    +    light1.direction = (0, 0, -1)
    +    light1.color = (255, 255, 255, 255)
    +    light1.brightness = 0.47
    +    SetLight(1, light1)
    +
    +    # In SR mode, bug '8017 was that the ambient would get turned off on
    +    # the second save.
    +    Test("lighting_01")
    +    Test("lighting_02")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +def TestNormals():
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.03622833898009251, 0.7402344653499199, 0.6713720606063838)
    +    SetView3D(v)
    +
    +    light0 = GetLight(0)
    +    light0.enabledFlag = 1
    +    light0.type = light0.Camera  # Ambient, Object, Camera
    +    light0.direction = (0, 0, -1)
    +    light0.brightness = .65
    +    SetLight(0, light0)
    +    light1 = GetLight(1)
    +    light1.enabledFlag = 1
    +    light1.type = light1.Ambient  # Ambient, Object, Camera
    +    light1.direction = (0, 0, -1)
    +    light0.brightness = .65
    +    SetLight(1, light1)
    +
    +    #
    +    # In the past, our normals filter wasn't able to handle triangle strips.
    +    # This test ensures that we now can.
    +    #
    +    OpenDatabase(data_path("vtk_test_data/polyWithStrips.vtk"))
    +    AddPlot("Pseudocolor", "fooData")
    +    DrawPlots()
    +    Test("normals_00")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/polyWithStrips.vtk"))
    +
    +
    +def main():
    +    TestBasicLighting()
    +    TestNormals()
    +    Exit()
    +
    +main()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_line2d.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_line2d.html new file mode 100644 index 000000000..1a127a121 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_line2d.html @@ -0,0 +1,102 @@ + +Results for rendering/line2d.py + +

    Results of VisIt Regression Test - rendering/line2d

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    line2d000.000.00
    line2d010.000.00
    line2d020.000.00
    line2d030.000.00
    line2d040.000.00
    line2d050.000.00
    line2d060.000.00
    line2d070.000.00
    line2d080.000.00
    line2d090.000.00
    line2d100.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_line2d_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_line2d_py.html new file mode 100644 index 000000000..acd57dca2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_line2d_py.html @@ -0,0 +1,101 @@ +rendering/line2d.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  line2d.py
    +#
    +#  Tests:      mesh        - 2D curvilinear, single domain
    +#              plots       - Pseudocolor
    +#              annotations - Line2D
    +#
    +#  Defect ID:  #1724 (arrowheads for 2D Line annotations broke in 2.7) 
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       July 1, 2015
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Mon Aug  3 17:35:13 PDT 2015
    +#    Uncomment test line2d01, also set nextLine.useForegroundForLineColor.
    +#    Change line width values so that they yield previous results, line
    +#    annotation object now uses a lineWidth gui widget that allows values 
    +#    from 0 to 9.
    +# ----------------------------------------------------------------------------
    +
    +# Set up the annotation colors, etc.
    +a = GetAnnotationAttributes()
    +a.backgroundColor = (255, 255, 255, 255)
    +a.foregroundColor = (0, 0, 0, 255)
    +a.backgroundMode = a.Solid
    +SetAnnotationAttributes(a)
    +
    +# Open up the database and do a plot.
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +# Create a Line2D object
    +line = CreateAnnotationObject("Line2D")
    +line.position = (0.62, 0.83)
    +line.position2 = (0.43, 0.7)
    +Test("line2d00")
    +
    +# Set the foreground color to see if it changes
    +a.foregroundColor = (0, 255, 255, 255)
    +SetAnnotationAttributes(a)
    +Test("line2d01")
    +
    +# Test line color
    +a.foregroundColor = (255, 255, 255, 255)
    +SetAnnotationAttributes(a)
    +line.useForegroundForLineColor = 0
    +line.color = (0, 255, 255, 255)
    +Test("line2d02")
    +
    +# Test line width
    +line.width = 3
    +Test("line2d03")
    +
    +
    +# Test line arrow at start
    +line.color = (0,0,0,255)
    +line.width = 0
    +line.beginArrow = 1
    +Test("line2d04")
    +
    +# Test solid arrow at end
    +line.endArrow = 2
    +Test("line2d05")
    +
    +# Switch arrows
    +line.beginArrow = 2
    +line.endArrow = 1
    +Test("line2d06")
    +
    +# Test line opacity
    +line.position = (0.25, 0.32)
    +line.position2 = (0.85, 0.71)
    +line.width = 4
    +line.beginArrow = 0
    +line.endArrow = 0
    +line.color = (0,0,0,150)
    +Test("line2d07")
    +
    +# Create more line objects
    +nextLine = CreateAnnotationObject("Line2D")
    +nextLine.useForegroundForLineColor = 0
    +nextLine.color=(255, 0, 0, 255)
    +nextLine.position=(0.41, 0.86)
    +nextLine.position2=(0.75, 0.6)
    +nextLine.width=1
    +nextLine.endArrow=2
    +Test("line2d08")
    +
    +# Start Removing text
    +line.Delete()
    +Test("line2d09")
    +nextLine.Delete()
    +Test("line2d10")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_line3d.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_line3d.html new file mode 100644 index 000000000..21d68e800 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_line3d.html @@ -0,0 +1,102 @@ + +Results for rendering/line3d.py + +

    Results of VisIt Regression Test - rendering/line3d

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    line3d000.000.00
    Line3d010.000.00
    line3d050.000.00
    line3d060.000.00
    line3d070.000.00
    line3d080.000.00
    line3d090.000.00
    line3d100.000.00
    line3d110.000.00
    line3d120.000.00
    line3d130.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_line3d_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_line3d_py.html new file mode 100644 index 000000000..28c629521 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_line3d_py.html @@ -0,0 +1,104 @@ +rendering/line3d.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  line3d.py
    +#
    +#  Tests:      mesh        - 3D unstructured, single domain
    +#              plots       - Pseudocolor
    +#              annotations - Line3D
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       August 27, 2015
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Thu Apr 19 12:02:22 PDT 2018
    +#    Remove lineStyle tests, no longer available.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Set up the annotation colors, etc.
    +a = GetAnnotationAttributes()
    +a.backgroundColor = (255, 255, 255, 255)
    +a.foregroundColor = (0, 0, 0, 255)
    +a.backgroundMode = a.Solid
    +SetAnnotationAttributes(a)
    +
    +# Open up the database and do a plot.
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +# Create a Line3D object
    +line = CreateAnnotationObject("Line3D")
    +line.point1 = (0, -15, 0)
    +line.point2 = (0, 15, 0)
    +Test("line3d00")
    +
    +line.width = 7
    +Test("Line3d01")
    +
    +# Set the foreground color to see if it changes
    +a.foregroundColor = (0, 255, 255, 255)
    +SetAnnotationAttributes(a)
    +Test("line3d05")
    +
    +# Test line color
    +a.foregroundColor = (255, 255, 255, 255)
    +SetAnnotationAttributes(a)
    +line.useForegroundForLineColor = 0
    +line.color = (255, 0, 255, 255)
    +Test("line3d06")
    +
    +# Test arrow at start (flat)
    +line.arrow1Resolution = 1
    +line.arrow2Resolution = 1
    +line.arrow1Radius = 2
    +line.arrow2Radius = 2
    +line.arrow1Height = 5.6
    +line.arrow2Height = 5.6
    +line.arrow1 = 1
    +Test("line3d07")
    +# Test arrow at end
    +line.arrow1 = 0
    +line.arrow2 = 1
    +Test("line3d08")
    +
    +# Test both arrows 
    +line.arrow1 = 1
    +Test("line3d09")
    +
    +# Tubes
    +line.arrow1 = 0
    +line.lineType = line.TUBE
    +line.tubeRadius = 0.3
    +# make the arrow a cone
    +line.arrow2Resolution = 15
    +line.arrow2Radius = 1
    +line.arrow2Height = 2.8
    +Test("line3d10")
    +
    +
    +# Create more line objects
    +nextLine = CreateAnnotationObject("Line3D")
    +nextLine.useForegroundForLineColor = 0
    +nextLine.color=(0, 255, 0, 255)
    +nextLine.point1=(-15, 0, 0)
    +nextLine.point2=(15, 0, 0)
    +nextLine.arrow2 = 1
    +nextLine.lineType = line.TUBE
    +nextLine.tubeRadius = 0.3
    +nextLine.arrow2Resolution = 15
    +nextLine.arrow2Radius = 1
    +nextLine.arrow2Height = 2.8
    +Test("line3d11")
    +
    +# Start Removing lines
    +line.Delete()
    +Test("line3d12")
    +nextLine.Delete()
    +Test("line3d13")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_offscreensave.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_offscreensave.html new file mode 100644 index 000000000..1aa7aa56e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_offscreensave.html @@ -0,0 +1,122 @@ + +Results for rendering/offscreensave.py + +

    Results of VisIt Regression Test - rendering/offscreensave

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    offscreen_010.000.00
    offscreen_020.000.00
    offscreen_030.000.00
    offscreen_040.000.00
    offscreen_050.000.00
    offscreen_060.000.00
    offscreen_070.000.00
    offscreen_080.000.00
    offscreen_090.000.00
    offscreen_100.000.00
    offscreen_110.000.00
    md5 hash for 16384x16384 image
     "19d173a8af27d8b552a58bf7b99fa771" .eq. "19d173a8af27d8b552a58bf7b99fa771" : True
    md5 hash for 23168x23168 image
     "e76139eb88920334c6f931b5fec9c09d" .eq. "e76139eb88920334c6f931b5fec9c09d" : True
    md5 hash for 32768x16380 image
     "5a6315eae4bf7912a0ab6bd15f62d624" .eq. "5a6315eae4bf7912a0ab6bd15f62d624" : True
    md5 hash for 32768x32768 image
     "e76139eb88920334c6f931b5fec9c09d" .eq. "e76139eb88920334c6f931b5fec9c09d" : True
    md5 hash for 32768x24000 image
     "8c9c5ba01ab8132a42b7d0fa457cabba" .eq. "8c9c5ba01ab8132a42b7d0fa457cabba" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_offscreensave_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_offscreensave_py.html new file mode 100644 index 000000000..4c606654e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_offscreensave_py.html @@ -0,0 +1,194 @@ +rendering/offscreensave.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  offscreensave.py
    +#
    +#  Tests:      save window options
    +#              mesh      - 3D unstructured, multiple domains
    +#              plots     - pc, mesh 
    +#              operators - slice 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       29Mar04 
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Tue May 11 20:21:24 PDT 2004
    +#    Changed scalable rendering controls to use activation mode
    +#
    +#    Mark C. Miller, Thu Jan  6 15:09:06 PST 2005
    +#    Added a test that involves annotation objects
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Eric Brugger, Mon Aug  2 09:42:50 PDT 2021
    +#    Added test of 16384 x 16384 image save.
    +#
    +#    Kathleen Biagas, Fri Aug 27, 2021
    +#    Put tests into functions. Skip the large image test on Windows as it
    +#    doesn't yield the correct size image. Ensure the large image is saved
    +#    to run_dir so the test will execute on Windows properly once it can
    +#    be enabled.
    +#
    +#    Eric Brugger, Mon Nov 18 11:44:28 PST 2024
    +#    Updated the large image test and added several more.
    +#
    +# ----------------------------------------------------------------------------
    +
    +import hashlib
    +
    +def GeneralTests():
    +    TurnOnAllAnnotations()
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    view=GetView3D()
    +    view.viewNormal=(-0.528567, 0.374238, 0.761946)
    +    view.viewUp=(0.200044, 0.927212, -0.316639)
    +    SetView3D(view)
    +    Test("offscreen_01")
    +
    +    # build some savewindow attributes that DO NOT
    +    # use screen capture
    +    swa=SaveWindowAttributes()
    +    swa.screenCapture=0
    +    swa.width=400
    +    swa.height=400
    +
    +    # simple test to make sure we get all the annoations
    +    # when we save window using off-screen save
    +    Test("offscreen_02",swa)
    +
    +    # now, test saving at a different size
    +    swa.width=600
    +    swa.height=600
    +    Test("offscreen_03",swa)
    +
    +    # Ok, now diddle with annoations a bit and do some
    +    # more saves
    +    swa.width=300
    +    swa.height=300
    +    a = AnnotationAttributes()
    +    a.userInfoFlag = 0
    +    a.databaseInfoFlag = 0
    +    SetAnnotationAttributes(a)
    +    Test("offscreen_04",swa)
    +    a.legendInfoFlag = 0
    +    SetAnnotationAttributes(a)
    +    Test("offscreen_05",swa)
    +
    +    # Ok, now put the window into SR mode
    +    ra = GetRenderingAttributes()
    +    ra.scalableActivationMode = ra.Always
    +    SetRenderingAttributes(ra)
    +    Test("offscreen_06",swa)
    +
    +    # diddle some more with annoations
    +    a.databaseInfoFlag = 1
    +    a.legendInfoFlag = 1
    +    SetAnnotationAttributes(a)
    +    Test("offscreen_07",swa)
    +
    +    # Now, use screen capture mode to save the window
    +    Test("offscreen_08")
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +
    +    # Test off screen save of a 2D window
    +    AddPlot("Mesh", "curvmesh2d")
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +    swa.width=400
    +    swa.height=400
    +    Test("offscreen_09",swa)
    +
    +    # Test off screen save of a full frame 2D window
    +    view2=GetView2D()
    +    view2.fullFrameActivationMode=view2.On
    +    SetView2D(view2)
    +    swa.width=500
    +    swa.height=500
    +    Test("offscreen_10",swa)
    +
    +    # Now test some annotation objects
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    view=GetView3D()
    +    view.viewNormal=(-0.528567, 0.374238, 0.761946)
    +    view.viewUp=(0.200044, 0.927212, -0.316639)
    +    SetView3D(view)
    +
    +    # Create a time slider
    +    slider = CreateAnnotationObject("TimeSlider")
    +    slider.position = (0.5, 0.5)
    +    swa.width=300
    +    swa.height=300
    +    Test("offscreen_11",swa)
    +
    +    slider.Delete()
    +    DeleteAllPlots()
    +
    +def TestLargeImage(width, height, md5sum):
    +    # Test saving a large image
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    view2=GetView2D()
    +    view2.fullFrameActivationMode=view2.Off
    +    SetView2D(view2)
    +
    +    swa=SaveWindowAttributes()
    +    # ensure the image is written to the run_dir by providing full path
    +    imgOutName=pjoin(TestEnv.params["run_dir"], "image_%dx%d.png" % (width,height))
    +    swa.width = width
    +    swa.height = height
    +    swa.resConstraint = swa.NoConstraint
    +    swa.fileName = imgOutName
    +    swa.family = 0
    +    SetSaveWindowAttributes(swa)
    +    SaveWindow()
    +
    +    DeleteAllPlots()
    +
    +    # Comparing md5 sum instead of image, since the image is large.
    +    md5_hash = hashlib.md5()
    +    with open(imgOutName, "rb") as f:
    +        # Read and update hash in chunks of 4K
    +        for byte_block in iter(lambda: f.read(4096),b""):
    +            md5_hash.update(byte_block)
    +    TestValueEQ("md5 hash for %dx%d image" % (width,height), md5_hash.hexdigest(), md5sum)
    +
    +GeneralTests()
    +
    +if not sys.platform.startswith("win"):
    +    # Cannot perform this test on Windows as image size is limited
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    TestLargeImage(16384, 16384, "19d173a8af27d8b552a58bf7b99fa771")
    +    TestLargeImage(23168, 23168, "e76139eb88920334c6f931b5fec9c09d")
    +    TestLargeImage(32768, 16380, "5a6315eae4bf7912a0ab6bd15f62d624")
    +
    +    # The images sizes for the last 2 tests are too large so they
    +    # will get scaled to be within the size allowed. The 32768x32768
    +    # image will be 23168x23168 and the 32768x24000 will be 27071x19827.
    +    TestLargeImage(32768, 32768, "e76139eb88920334c6f931b5fec9c09d")
    +    TestLargeImage(32768, 24000, "8c9c5ba01ab8132a42b7d0fa457cabba")
    +
    +    CloseDatabase(silo_data_path("curv2d.silo"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_ospray.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_ospray.html new file mode 100644 index 000000000..396919bcb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_ospray.html @@ -0,0 +1,50 @@ + +Results for rendering/ospray.py + +

    Results of VisIt Regression Test - rendering/ospray

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ospray_window_save0.000.00
    ospray_domain_boundaries_000.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_ospray_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_ospray_py.html new file mode 100644 index 000000000..f09abf0a6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_ospray_py.html @@ -0,0 +1,106 @@ +rendering/ospray.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ospray.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, one domain
    +#              plots     - pseudocolor
    +#              operators - Isovolume
    +#
    +#  Programmer: Alister Maguire
    +#  Date:       May 18, 2020
    +#
    +#  Modifications:
    +#
    +#    Alister Maguire, Fri Sep 11 16:16:49 PDT 2020
    +#    Added a test for OSPRay domain boundaries.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def TestOsprayWindowSave():
    +    #
    +    # This is testing a resolution of github issue #4286 where ospray
    +    # was not being used when SaveWindow was called, regardless of
    +    # whether or not we enabeld it.
    +    #
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    #
    +    # OSPRay looks pretty similar, so let's make sure that we
    +    # enable shadows and can see them in the output image.
    +    #
    +    AddPlot("Pseudocolor", "hardyglobal", 1, 1)
    +    AddOperator("Isovolume", 1)
    +    SetActivePlots(0)
    +    IsovolumeAtts = IsovolumeAttributes()
    +    IsovolumeAtts.lbound = 4.1
    +    IsovolumeAtts.ubound = 4.9
    +    IsovolumeAtts.variable = "default"
    +    SetOperatorOptions(IsovolumeAtts, 0, 1)
    +    DrawPlots()
    +
    +    RenderingAtts = RenderingAttributes()
    +    RenderingAtts.osprayRendering = 1
    +    RenderingAtts.osprayShadows = 1
    +    SetRenderingAttributes(RenderingAtts)
    +
    +    Test("ospray_window_save", pixdiff=0.2, avgdiff=0.01)
    +    DeleteAllPlots()
    +
    +    RenderingAtts = RenderingAttributes()
    +    RenderingAtts.osprayRendering = 0
    +    RenderingAtts.osprayShadows = 0
    +    SetRenderingAttributes(RenderingAtts)
    +
    +    CloseDatabase(silo_data_path("noise.silo"))
    +
    +
    +def TestOsprayVolumeDomainBoundaries():
    +    OpenDatabase(data_path("vtk_test_data/poiseuille_rayleigh_benard_3D_00000600.visit"))
    +
    +    #
    +    # Change the view so that we get a good look at the domain boundaries.
    +    # We need to first reset, otherwise the previous test ends up affecting
    +    # the view here.
    +    #
    +    ResetView()
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0.171986, 0.984799, 0.0243329)
    +    View3DAtts.viewUp = (-0.187983, 0.0570564, -0.980514)
    +    SetView3D(View3DAtts)
    +
    +    #
    +    # Add our plot and set up the ospray renderer.
    +    #
    +    AddPlot("Volume", "Regular/temperature", 1, 1)
    +    SetActivePlots(0)
    +
    +    VolumeAtts = VolumeAttributes()
    +    VolumeAtts.lightingFlag = 1
    +    VolumeAtts.opacityMode = VolumeAtts.FreeformMode
    +    VolumeAtts.freeformOpacity = (255,) * 256
    +    VolumeAtts.samplesPerRay = 100
    +    VolumeAtts.rendererType = VolumeAtts.Parallel
    +    VolumeAtts.resampleType = VolumeAtts.OnlyIfRequired
    +    VolumeAtts.OSPRayEnabledFlag = 1
    +    SetPlotOptions(VolumeAtts)
    +    DrawPlots()
    +
    +    #
    +    # NOTE: This test always has a slight pixel diff (~0.01%).
    +    #
    +    Test("ospray_domain_boundaries_00", pixdiff=0.1, avgdiff=0.01)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/poiseuille_rayleigh_benard_3D_00000600.visit"))
    +
    +
    +def main():
    +    TestOsprayWindowSave()
    +    TestOsprayVolumeDomainBoundaries()
    +
    +    Exit()
    +
    +main()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_pixeldata.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_pixeldata.html new file mode 100644 index 000000000..1ce37d3b2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_pixeldata.html @@ -0,0 +1,178 @@ + +Results for rendering/pixeldata.py + +

    Results of VisIt Regression Test - rendering/pixeldata

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Save transparent background image
    pixeldata_0_000.000.00
    pixeldata_0_010.000.00
    pixeldata_0_020.000.00
    pixeldata_0_030.000.00
    pixeldata_0_0499.80138.03
    pixeldata_0_0599.8361.09
    pixeldata_0_0698.49136.14
    pixeldata_0_0798.5160.19
    pixeldata_0_0899.84143.80
    pixeldata_0_0999.8361.09
    pixeldata_0_1098.34141.31
    pixeldata_0_11100.0859.76
    Save image plus depth
    pixeldata_1_000.000.00
    pixeldata_1_010.000.00
    pixeldata_1_020.000.00
    pixeldata_1_030.000.00
    pixeldata_1_040.000.00
    pixeldata_1_050.000.00
    pixeldata_1_060.000.00
    pixeldata_1_070.000.00
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_pixeldata_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_pixeldata_py.html new file mode 100644 index 000000000..ffc25c450 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_pixeldata_py.html @@ -0,0 +1,215 @@ +rendering/pixeldata.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  openexr.py 
    +#
    +#  Tests:      saving pixel data, transparent backgrounds in saved images.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Feb 15 14:16:45 PST 2018
    +#
    +#  Modifications:
    +# 
    +# ----------------------------------------------------------------------------
    +
    +# Saves pixel data.
    +def SavePixelData(filename, alpha, depth, luminance, value):
    +    s = GetSaveWindowAttributes()
    +    s.outputToCurrentDirectory = 1
    +    s.family = 0
    +    s.fileName = filename
    +    s.width  = TestEnv.params["width"]
    +    s.height = TestEnv.params["height"]
    +    s.screenCapture = 0
    +    s.format = s.PNG
    +    s.pixelData = 1
    +    if alpha:
    +        s.pixelData = s.pixelData | 2
    +    if luminance:
    +        s.pixelData = s.pixelData | 4
    +    if value:
    +        s.pixelData = s.pixelData | 8
    +    if depth:
    +        s.pixelData = s.pixelData | 16
    +    SetSaveWindowAttributes(s)
    +    SaveWindow()
    +
    +def test0():
    +    TestSection("Save transparent background image")
    +    db = silo_data_path("noise.silo")
    +    OpenDatabase(db)
    +    AddPlot("Contour", "hardyglobal")
    +    c = GetPlotOptions()
    +    c.SetMultiColor(2, (0, 0, 255, 100))
    +    c.SetMultiColor(3, (0, 255, 255, 100))
    +    c.SetMultiColor(4, (255, 0, 255, 100))
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    v3 = GetView3D()
    +    v3.viewNormal = (-0.569008, 0.313204, 0.760351)
    +    v3.focus = (0, 0, 0)
    +    v3.viewUp = (0.185488, 0.949682, -0.252384)
    +    v3.viewAngle = 30
    +    v3.parallelScale = 17.3205
    +    v3.nearPlane = -34.641
    +    v3.farPlane = 34.641
    +    v3.imagePan = (-0.0120947, 0.0574413)
    +    v3.imageZoom = 1.13829
    +    v3.perspective = 1
    +    v3.eyeAngle = 2
    +    v3.centerOfRotationSet = 0
    +    v3.centerOfRotation = (0, 0, 0)
    +    v3.axis3DScaleFlag = 0
    +    v3.axis3DScales = (1, 1, 1)
    +    v3.shear = (0, 0, 1)
    +    v3.windowValid = 1
    +    SetView3D(v3)
    +    Test("pixeldata_0_00")
    +    # Save a partially transparent Contour plot on a transparent background.
    +    SavePixelData("pd0", 1, 0, 0, 0)
    +
    +    # Save a partially transparent Contour plot on a transparent background -- with axes
    +    a = GetAnnotationAttributes()
    +    a.axes3D.bboxFlag = 1
    +    SetAnnotationAttributes(a)
    +    Test("pixeldata_0_01")
    +    SavePixelData("pd1", 1, 0, 0, 0)
    +
    +    # Test that we get the transparent background when we have a gradient bg.
    +    a = GetAnnotationAttributes()
    +    a.backgroundMode = a.Gradient
    +    a.gradientColor1 = (180, 100, 180, 255)
    +    a.gradientColor2 = (0, 0, 0, 255)
    +    a.axes3D.bboxFlag = 0
    +    a.foregroundColor = (255,255,255,255)
    +    SetAnnotationAttributes(a)
    +    Test("pixeldata_0_02")
    +    SavePixelData("pd2", 1, 0, 0, 0)
    +
    +    # Test that we get the transparent background when we have a gradient bg. with axes
    +    a.axes3D.bboxFlag = 1
    +    SetAnnotationAttributes(a)
    +    Test("pixeldata_0_03")
    +    SavePixelData("pd3", 1, 0, 0, 0)
    +
    +    # Restore solid bg, no axes
    +    a.backgroundMode = a.Solid
    +    a.axes3D.bboxFlag = 0
    +    a.foregroundColor = (0,0,0,255)
    +    SetAnnotationAttributes(a)
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +    # Make some expressions that let us plot a transparent image with a checker background.
    +    DefineScalarExpression("i", "floor(coords(ImageMesh)[0] / 20)")
    +    DefineScalarExpression("j", "floor(coords(ImageMesh)[1] / 20)")
    +    DefineScalarExpression("checker", "mod(i+j, 2)")
    +    DefineScalarExpression("gray", "100+checker*80")
    +    DefineScalarExpression("t", "alpha / 255.")
    +    DefineScalarExpression("omt", "1 - t")
    +    DefineVectorExpression("blend", "color4(t*red + omt*gray,t*green + omt*gray,t*blue + omt*gray, 255)")
    +    DefineVectorExpression("comp", "if(lt(alpha, 255), blend, color4(red, green, blue, 255))")
    +
    +    # Open the files we made.
    +    idx = 4
    +    for db in ("pd0.png", "pd1.png", "pd2.png", "pd3.png"):
    +        OpenDatabase(db)
    +        AddPlot("Pseudocolor", "alpha")
    +        DrawPlots()
    +        v = GetView2D()
    +        v.viewportCoords = (0, 1, 0, 1)
    +        SetView2D(v)
    +        Test("pixeldata_0_%02d" % idx)
    +        DeleteAllPlots()
    +        AddPlot("Truecolor", "comp")
    +        DrawPlots()
    +        Test("pixeldata_0_%02d" % (idx+1))
    +        DeleteAllPlots()
    +        CloseDatabase(db)
    +        idx = idx + 2
    +
    +def test1():
    +    TestSection("Save image plus depth")
    +    db = silo_data_path("multi_rect3d.silo")
    +    OpenDatabase(db)
    +    AddPlot("Contour", "u")
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (-0.483301, 0.412135, 0.772376)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.218992, 0.911123, -0.349139)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 0.5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +    # Save against a solid background.
    +    Test("pixeldata_1_00")
    +    SavePixelData("pdz0", 0, 1, 0, 0)
    +
    +    # Save against a solid background adding axes
    +    a = GetAnnotationAttributes()
    +    a.axes3D.bboxFlag = 1
    +    SetAnnotationAttributes(a)
    +    Test("pixeldata_1_01")
    +    SavePixelData("pdz1", 0, 1, 0, 0)
    +
    +    # Save against a gradient background 
    +    a.backgroundMode = a.Gradient
    +    a.gradientColor1 = (180, 100, 180, 255)
    +    a.gradientColor2 = (0, 0, 0, 255)
    +    a.axes3D.bboxFlag = 0
    +    a.foregroundColor = (255,255,255,255)
    +    SetAnnotationAttributes(a)
    +    Test("pixeldata_1_02")
    +    SavePixelData("pdz2", 0, 1, 0, 0)
    +
    +    # Save against a gradient background adding axes
    +    a.backgroundMode = a.Gradient
    +    a.gradientColor1 = (180, 100, 180, 255)
    +    a.gradientColor2 = (0, 0, 0, 255)
    +    a.axes3D.bboxFlag = 1
    +    a.foregroundColor = (255,255,255,255)
    +    SetAnnotationAttributes(a)
    +    Test("pixeldata_1_03")
    +    SavePixelData("pdz3", 0, 1, 0, 0)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +    # Open the files we made.
    +    idx = 4
    +    for db in ("pdz0.png", "pdz1.png", "pdz2.png", "pdz3.png"):
    +        OpenDatabase(db)
    +        AddPlot("Pseudocolor", "depth")
    +        pc = GetPlotOptions()
    +        pc.max = 220.
    +        pc.maxFlag = 1
    +        SetPlotOptions(pc)
    +        DrawPlots()
    +        v = GetView2D()
    +        v.viewportCoords = (0, 1, 0, 1)
    +        SetView2D(v)
    +        Test("pixeldata_1_%02d" % idx)
    +        DeleteAllPlots()
    +        CloseDatabase(db)
    +        idx = idx + 1
    +
    +def main():
    +    test0()
    +    test1()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_pointGlyphing.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_pointGlyphing.html new file mode 100644 index 000000000..e8e5d1957 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_pointGlyphing.html @@ -0,0 +1,900 @@ + +Results for rendering/pointGlyphing.py + +

    Results of VisIt Regression Test - rendering/pointGlyphing

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Pseudocolor_Box_polyData_vertex.vtk0.000.00
    Pseudocolor_Axis_polyData_vertex.vtk0.000.00
    Pseudocolor_Icosahedron_polyData_vertex.vtk0.000.00
    Pseudocolor_Octahedron_polyData_vertex.vtk0.000.00
    Pseudocolor_Tetrahedron_polyData_vertex.vtk0.000.00
    Pseudocolor_SphereGeometry_polyData_vertex.vtk0.000.00
    Pseudocolor_Point_polyData_vertex.vtk0.000.00
    Pseudocolor_Sphere_polyData_vertex.vtk0.000.00
    Mesh_Box_polyData_vertex.vtk0.000.00
    Mesh_Axis_polyData_vertex.vtk0.000.00
    Mesh_Icosahedron_polyData_vertex.vtk0.000.00
    Mesh_Octahedron_polyData_vertex.vtk0.000.00
    Mesh_Tetrahedron_polyData_vertex.vtk0.000.00
    Mesh_SphereGeometry_polyData_vertex.vtk0.000.00
    Mesh_Point_polyData_vertex.vtk0.000.00
    Mesh_Sphere_polyData_vertex.vtk0.000.00
    Subset_Box_polyData_vertex.vtk0.000.00
    Subset_Axis_polyData_vertex.vtk0.000.00
    Subset_Icosahedron_polyData_vertex.vtk0.000.00
    Subset_Octahedron_polyData_vertex.vtk0.000.00
    Subset_Tetrahedron_polyData_vertex.vtk0.000.00
    Subset_SphereGeometry_polyData_vertex.vtk0.000.00
    Subset_Point_polyData_vertex.vtk0.000.00
    Subset_Sphere_polyData_vertex.vtk0.000.00
    Pseudocolor_Box_polyData_polyVertex.vtk0.000.00
    Pseudocolor_Axis_polyData_polyVertex.vtk0.000.00
    Pseudocolor_Icosahedron_polyData_polyVertex.vtk0.000.00
    Pseudocolor_Octahedron_polyData_polyVertex.vtk0.000.00
    Pseudocolor_Tetrahedron_polyData_polyVertex.vtk0.000.00
    Pseudocolor_SphereGeometry_polyData_polyVertex.vtk0.000.00
    Pseudocolor_Point_polyData_polyVertex.vtk0.000.00
    Pseudocolor_Sphere_polyData_polyVertex.vtk0.000.00
    Mesh_Box_polyData_polyVertex.vtk0.000.00
    Mesh_Axis_polyData_polyVertex.vtk0.000.00
    Mesh_Icosahedron_polyData_polyVertex.vtk0.000.00
    Mesh_Octahedron_polyData_polyVertex.vtk0.000.00
    Mesh_Tetrahedron_polyData_polyVertex.vtk0.000.00
    Mesh_SphereGeometry_polyData_polyVertex.vtk0.000.00
    Mesh_Point_polyData_polyVertex.vtk0.000.00
    Mesh_Sphere_polyData_polyVertex.vtk0.000.00
    Subset_Box_polyData_polyVertex.vtk0.000.00
    Subset_Axis_polyData_polyVertex.vtk0.000.00
    Subset_Icosahedron_polyData_polyVertex.vtk0.000.00
    Subset_Octahedron_polyData_polyVertex.vtk0.000.00
    Subset_Tetrahedron_polyData_polyVertex.vtk0.000.00
    Subset_SphereGeometry_polyData_polyVertex.vtk0.000.00
    Subset_Point_polyData_polyVertex.vtk0.000.00
    Subset_Sphere_polyData_polyVertex.vtk0.000.00
    Pseudocolor_Box_polyData_mixedVertex.vtk0.000.00
    Pseudocolor_Axis_polyData_mixedVertex.vtk0.000.00
    Pseudocolor_Icosahedron_polyData_mixedVertex.vtk0.000.00
    Pseudocolor_Octahedron_polyData_mixedVertex.vtk0.000.00
    Pseudocolor_Tetrahedron_polyData_mixedVertex.vtk0.000.00
    Pseudocolor_SphereGeometry_polyData_mixedVertex.vtk0.000.00
    Pseudocolor_Point_polyData_mixedVertex.vtk0.000.00
    Pseudocolor_Sphere_polyData_mixedVertex.vtk0.000.00
    Mesh_Box_polyData_mixedVertex.vtk0.000.00
    Mesh_Axis_polyData_mixedVertex.vtk0.000.00
    Mesh_Icosahedron_polyData_mixedVertex.vtk0.000.00
    Mesh_Octahedron_polyData_mixedVertex.vtk0.000.00
    Mesh_Tetrahedron_polyData_mixedVertex.vtk0.000.00
    Mesh_SphereGeometry_polyData_mixedVertex.vtk0.000.00
    Mesh_Point_polyData_mixedVertex.vtk0.000.00
    Mesh_Sphere_polyData_mixedVertex.vtk0.000.00
    Subset_Box_polyData_mixedVertex.vtk0.000.00
    Subset_Axis_polyData_mixedVertex.vtk0.000.00
    Subset_Icosahedron_polyData_mixedVertex.vtk0.000.00
    Subset_Octahedron_polyData_mixedVertex.vtk0.000.00
    Subset_Tetrahedron_polyData_mixedVertex.vtk0.000.00
    Subset_SphereGeometry_polyData_mixedVertex.vtk0.000.00
    Subset_Point_polyData_mixedVertex.vtk0.000.00
    Subset_Sphere_polyData_mixedVertex.vtk0.000.00
    Pseudocolor_Box_ugrid_vertex.vtk0.000.00
    Pseudocolor_Axis_ugrid_vertex.vtk0.000.00
    Pseudocolor_Icosahedron_ugrid_vertex.vtk0.000.00
    Pseudocolor_Octahedron_ugrid_vertex.vtk0.000.00
    Pseudocolor_Tetrahedron_ugrid_vertex.vtk0.000.00
    Pseudocolor_SphereGeometry_ugrid_vertex.vtk0.000.00
    Pseudocolor_Point_ugrid_vertex.vtk0.000.00
    Pseudocolor_Sphere_ugrid_vertex.vtk0.000.00
    Mesh_Box_ugrid_vertex.vtk0.000.00
    Mesh_Axis_ugrid_vertex.vtk0.000.00
    Mesh_Icosahedron_ugrid_vertex.vtk0.000.00
    Mesh_Octahedron_ugrid_vertex.vtk0.000.00
    Mesh_Tetrahedron_ugrid_vertex.vtk0.000.00
    Mesh_SphereGeometry_ugrid_vertex.vtk0.000.00
    Mesh_Point_ugrid_vertex.vtk0.000.00
    Mesh_Sphere_ugrid_vertex.vtk0.000.00
    Subset_Box_ugrid_vertex.vtk0.000.00
    Subset_Axis_ugrid_vertex.vtk0.000.00
    Subset_Icosahedron_ugrid_vertex.vtk0.000.00
    Subset_Octahedron_ugrid_vertex.vtk0.000.00
    Subset_Tetrahedron_ugrid_vertex.vtk0.000.00
    Subset_SphereGeometry_ugrid_vertex.vtk0.000.00
    Subset_Point_ugrid_vertex.vtk0.000.00
    Subset_Sphere_ugrid_vertex.vtk0.000.00
    Pseudocolor_Box_ugrid_polyVertex.vtk0.000.00
    Pseudocolor_Axis_ugrid_polyVertex.vtk0.000.00
    Pseudocolor_Icosahedron_ugrid_polyVertex.vtk0.000.00
    Pseudocolor_Octahedron_ugrid_polyVertex.vtk0.000.00
    Pseudocolor_Tetrahedron_ugrid_polyVertex.vtk0.000.00
    Pseudocolor_SphereGeometry_ugrid_polyVertex.vtk0.000.00
    Pseudocolor_Point_ugrid_polyVertex.vtk0.000.00
    Pseudocolor_Sphere_ugrid_polyVertex.vtk0.000.00
    Mesh_Box_ugrid_polyVertex.vtk0.000.00
    Mesh_Axis_ugrid_polyVertex.vtk0.000.00
    Mesh_Icosahedron_ugrid_polyVertex.vtk0.000.00
    Mesh_Octahedron_ugrid_polyVertex.vtk0.000.00
    Mesh_Tetrahedron_ugrid_polyVertex.vtk0.000.00
    Mesh_SphereGeometry_ugrid_polyVertex.vtk0.000.00
    Mesh_Point_ugrid_polyVertex.vtk0.000.00
    Mesh_Sphere_ugrid_polyVertex.vtk0.000.00
    Subset_Box_ugrid_polyVertex.vtk0.000.00
    Subset_Axis_ugrid_polyVertex.vtk0.000.00
    Subset_Icosahedron_ugrid_polyVertex.vtk0.000.00
    Subset_Octahedron_ugrid_polyVertex.vtk0.000.00
    Subset_Tetrahedron_ugrid_polyVertex.vtk0.000.00
    Subset_SphereGeometry_ugrid_polyVertex.vtk0.000.00
    Subset_Point_ugrid_polyVertex.vtk0.000.00
    Subset_Sphere_ugrid_polyVertex.vtk0.000.00
    Pseudocolor_Box_ugrid_mixedVertex.vtk0.000.00
    Pseudocolor_Axis_ugrid_mixedVertex.vtk0.000.00
    Pseudocolor_Icosahedron_ugrid_mixedVertex.vtk0.000.00
    Pseudocolor_Octahedron_ugrid_mixedVertex.vtk0.000.00
    Pseudocolor_Tetrahedron_ugrid_mixedVertex.vtk0.000.00
    Pseudocolor_SphereGeometry_ugrid_mixedVertex.vtk0.000.00
    Pseudocolor_Point_ugrid_mixedVertex.vtk0.000.00
    Pseudocolor_Sphere_ugrid_mixedVertex.vtk0.000.00
    Mesh_Box_ugrid_mixedVertex.vtk0.000.00
    Mesh_Axis_ugrid_mixedVertex.vtk0.000.00
    Mesh_Icosahedron_ugrid_mixedVertex.vtk0.000.00
    Mesh_Octahedron_ugrid_mixedVertex.vtk0.000.00
    Mesh_Tetrahedron_ugrid_mixedVertex.vtk0.000.00
    Mesh_SphereGeometry_ugrid_mixedVertex.vtk0.000.00
    Mesh_Point_ugrid_mixedVertex.vtk0.000.00
    Mesh_Sphere_ugrid_mixedVertex.vtk0.000.00
    Subset_Box_ugrid_mixedVertex.vtk0.000.00
    Subset_Axis_ugrid_mixedVertex.vtk0.000.00
    Subset_Icosahedron_ugrid_mixedVertex.vtk0.000.00
    Subset_Octahedron_ugrid_mixedVertex.vtk0.000.00
    Subset_Tetrahedron_ugrid_mixedVertex.vtk0.000.00
    Subset_SphereGeometry_ugrid_mixedVertex.vtk0.000.00
    Subset_Point_ugrid_mixedVertex.vtk0.000.00
    Subset_Sphere_ugrid_mixedVertex.vtk0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_pointGlyphing_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_pointGlyphing_py.html new file mode 100644 index 000000000..6e790f7e0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_pointGlyphing_py.html @@ -0,0 +1,65 @@ +rendering/pointGlyphing.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  pointGlyphing.py
    +#
    +#  Tests:      mesh      - 3D point
    +#              plots     - pseudocolor, subset, mesh
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       August 28, 2024 
    +#
    +#  Modificatons:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def TestVertexOnlyFiles():
    +
    +    # These test files were designed to test vertex-only,
    +    # poly-vertex only and mixed vertex and poly-vertex datasets.
    +    # The polyData and ugrid versions should be identical.
    +    vtk_vertex_files=["polyData_vertex.vtk",
    +                      "polyData_polyVertex.vtk",
    +                      "polyData_mixedVertex.vtk",
    +                      "ugrid_vertex.vtk",
    +                      "ugrid_polyVertex.vtk",
    +                      "ugrid_mixedVertex.vtk"]
    +
    +    glyphNames=["Box", "Axis", "Icosahedron", "Octahedron", "Tetrahedron", "SphereGeometry", "Point", "Sphere"]
    +
    +    plots={'Pseudocolor':'foo_cells','Mesh':'mesh','Subset':'mesh'}
    +
    +    for f in vtk_vertex_files:
    +        OpenDatabase(data_path("vtk_test_data",f))
    +
    +        for p,v in plots.items():
    +            AddPlot(p,v)
    +            DrawPlots()
    +            v3d = GetView3D()
    +            v3d.viewNormal = (-0.396043, 0.723303, 0.56567)
    +            v3d.viewUp = (0.246238, 0.677138, -0.693434)
    +            SetView3D(v3d);
    +
    +            if p == 'Pseudocolor':
    +                atts=PseudocolorAttributes()
    +            elif p == 'Mesh':
    +                atts=MeshAttributes()
    +            else:
    +                atts=SubsetAttributes()
    +
    +            atts.pointSize = 0.5
    +            atts.pointSizePixels = 10
    +
    +            for i,n in enumerate(glyphNames):
    +                atts.pointType = i
    +                SetPlotOptions(atts)
    +                Test(p+"_"+n+"_"+f)
    +
    +            DeleteAllPlots()
    +
    +        CloseDatabase(data_path("vtk_test_data",f))
    +
    +TestVertexOnlyFiles()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_renderpoints.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_renderpoints.html new file mode 100644 index 000000000..44bcc7ecb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_renderpoints.html @@ -0,0 +1,444 @@ + +Results for rendering/renderpoints.py + +

    Results of VisIt Regression Test - rendering/renderpoints

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Set pointSizePixels for plots that support it
    renderpoint_0_000.000.00
    renderpoint_0_010.000.00
    renderpoint_0_020.000.00
    renderpoint_0_030.000.00
    renderpoint_0_040.000.00
    renderpoint_0_050.000.00
    renderpoint_0_060.000.00
    renderpoint_0_070.000.00
    renderpoint_0_080.000.00
    renderpoint_0_090.000.00
    renderpoint_0_100.000.00
    renderpoint_0_110.000.00
    renderpoint_0_120.000.00
    renderpoint_0_130.000.00
    renderpoint_0_140.000.00
    Check points to glyph transition
    renderpoint_1_000.000.00
    renderpoint_1_010.000.00
    renderpoint_1_020.000.00
    renderpoint_1_030.000.00
    Check points drawn as spheres
    renderpoint_2_000.000.00
    renderpoint_2_010.000.00
    renderpoint_2_020.000.00
    renderpoint_2_030.000.00
    renderpoint_2_040.000.00
    renderpoint_2_050.000.00
    renderpoint_2_060.000.00
    renderpoint_2_070.000.00
    renderpoint_2_080.000.00
    renderpoint_2_090.000.00
    Check glyph types for Mesh plot
    renderpoint_3_000.000.00
    renderpoint_3_010.000.00
    renderpoint_3_020.000.00
    renderpoint_3_030.000.00
    renderpoint_3_040.000.00
    Check glyph types for Pseudocolor plot
    renderpoint_3_050.000.00
    renderpoint_3_060.000.00
    renderpoint_3_070.000.00
    renderpoint_3_080.000.00
    renderpoint_3_090.000.00
    Check glyph types for Scatter plot
    renderpoint_3_100.000.00
    renderpoint_3_110.000.00
    renderpoint_3_120.000.00
    renderpoint_3_130.000.00
    renderpoint_3_140.000.00
    Check glyph types for FilledBoundary plot
    renderpoint_3_150.000.00
    renderpoint_3_160.000.00
    renderpoint_3_170.000.00
    renderpoint_3_180.000.00
    renderpoint_3_190.000.00
    Check all glyph types for Subset plot
    renderpoint_3_200.000.00
    renderpoint_3_210.000.00
    renderpoint_3_220.000.00
    renderpoint_3_230.000.00
    renderpoint_3_240.000.00
    Check scaling glyphs by a variable
    renderpoint_4_000.000.00
    renderpoint_4_010.000.00
    renderpoint_4_020.000.00
    renderpoint_4_030.000.00
    Check glyphed plots restored from session files
    renderpoint_5_000.000.00
    renderpoint_5_010.000.00
    renderpoint_5_020.000.00
    renderpoint_5_030.000.00
    renderpoint_5_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_renderpoints_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_renderpoints_py.html new file mode 100644 index 000000000..5b9a1d490 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_renderpoints_py.html @@ -0,0 +1,347 @@ +rendering/renderpoints.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  renderpoints.py
    +#
    +#  Tests:      mesh      - 3D point
    +#              plots     - pseudocolor, subset, mesh
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Aug 26 13:39:07 PST 2005
    +#
    +#  Modificatons:
    +#    Mark C. Miller, Wed Jan 21 10:00:10 PST 2009
    +#    Removed silly comment regarding global annotation object 'a'
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Thu Dec 15 09:16:39 PST 2016
    +#    Added tests for other glyph types, scaling by variable and restoring
    +#    session files.
    +#
    +#    Kathleen Biagas, Wed Feb 16 09:15:45 PST 2022
    +#    Replace use of meshatts 'foregroundFlag' with meshColorSource.
    +#
    +# ----------------------------------------------------------------------------
    +
    +#
    +# General testing function
    +#
    +def TestPlot(plotName, plotVar, atts, cases):
    +    AddPlot(plotName, plotVar)
    +    if atts == None:
    +        atts = eval(plotName + "Attributes()")
    +    atts.pointType = atts.Point
    +    atts.pointSizePixels = 1
    +    SetPlotOptions(atts)
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.51943, 0.317321, 0.79341)
    +    v.focus = (0.499552, 0.500362, 0.499909)
    +    v.viewUp = (0.172325, 0.948317, -0.266458)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.865387
    +    v.nearPlane = -1.73077
    +    v.farPlane = 1.73077
    +    v.imagePan = (-0.0139929, 0.0505193)
    +    v.imageZoom = 1.25645
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.499552, 0.500362, 0.499909)
    +    SetView3D(v)
    +    Test("renderpoint" + cases[0])
    +
    +    atts.pointSizePixels = 5
    +    SetPlotOptions(atts)
    +    Test("renderpoint" + cases[1])
    +
    +    # Make sure that it remains set after regenerating the plot.
    +    TurnDomainsOff(("domain3", "domain4", "domain7", "domain8"))
    +    Test("renderpoint" + cases[2])
    +    TurnDomainsOn()
    +    DeleteActivePlots()
    +
    +#
    +# Test plots that can render their points using GL points.
    +#
    +def test0():
    +    TestSection("Set pointSizePixels for plots that support it")
    +    # Test Mesh
    +    atts = MeshAttributes()
    +    atts.meshColor = (100,150,255)
    +    atts.meshColorSource = atts.MeshCustom
    +    TestPlot("Mesh", "StarMesh", atts, ("_0_00", "_0_01", "_0_02"))
    +
    +    # Test Pseudocolor
    +    TestPlot("Pseudocolor", "Matnos", None, ("_0_03", "_0_04", "_0_05"))
    +
    +    # Test Scatter
    +    atts = ScatterAttributes()
    +    atts.var2 = "vy"
    +    atts.var3 = "vz"
    +    atts.var3Role = atts.Coordinate2
    +    atts.var4 = "Matnos"
    +    atts.var4Role = atts.Color
    +    TestPlot("Scatter", "vx", atts, ("_0_06", "_0_07", "_0_08"))
    +
    +    # Test FilledBoundary
    +    TestPlot("FilledBoundary", "stars", None, ("_0_09", "_0_10", "_0_11"))
    +
    +    # Test Subset
    +    TestPlot("Subset", "domains", None, ("_0_12", "_0_13", "_0_14"))
    +
    +#
    +# General testing function #2
    +#
    +def TestPlot1(plotName, plotVar, atts, cases):
    +    AddPlot(plotName, plotVar)
    +    if atts == None:
    +        atts = eval(plotName + "Attributes()")
    +    atts.pointType = atts.Point
    +    atts.pointSizePixels = 5
    +    SetPlotOptions(atts)
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.51943, 0.317321, 0.79341)
    +    v.focus = (0.499552, 0.500362, 0.499909)
    +    v.viewUp = (0.172325, 0.948317, -0.266458)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.865387
    +    v.nearPlane = -1.73077
    +    v.farPlane = 1.73077
    +    v.imagePan = (-0.0139929, 0.0505193)
    +    v.imageZoom = 1.25645
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.499552, 0.500362, 0.499909)
    +    SetView3D(v)
    +    Test("renderpoint" + cases[0])
    +
    +    atts.pointType = atts.Box
    +    SetPlotOptions(atts)
    +    Test("renderpoint" + cases[1])
    +    DeleteActivePlots()
    +
    +#
    +# Test that we can switch to other glyph types after starting up
    +# in point glyph mode, which does not use the glyph filters.
    +#
    +def test1():
    +    TestSection("Check points to glyph transition")
    +    # Test Pseudocolor
    +    TestPlot1("Pseudocolor", "Matnos", None, ("_1_00", "_1_01"))
    +    # Test FilledBoundary
    +    TestPlot1("FilledBoundary", "stars", None, ("_1_02", "_1_03"))
    +
    +#
    +# General testing function #3
    +#
    +def TestPlot2(plotName, plotVar, atts, cases):
    +    AddPlot(plotName, plotVar)
    +    if atts == None:
    +        atts = eval(plotName + "Attributes()")
    +    atts.pointType = atts.Sphere
    +    atts.pointSizePixels = 10
    +    SetPlotOptions(atts)
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.51943, 0.317321, 0.79341)
    +    v.focus = (0.499552, 0.500362, 0.499909)
    +    v.viewUp = (0.172325, 0.948317, -0.266458)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.865387
    +    v.nearPlane = -1.73077
    +    v.farPlane = 1.73077
    +    v.imagePan = (-0.0139929, 0.0505193)
    +    v.imageZoom = 1.25645
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.499552, 0.500362, 0.499909)
    +    SetView3D(v)
    +    Test("renderpoint" + cases[0])
    +
    +    atts.pointSizePixels = 20
    +    SetPlotOptions(atts)
    +    Test("renderpoint" + cases[1])
    +    DeleteActivePlots()
    +
    +#
    +# Test that all plots that support sphere point texturing can do it.
    +#
    +def test2():
    +    TestSection("Check points drawn as spheres")
    +
    +    # Test Mesh
    +    atts = MeshAttributes()
    +    atts.meshColor = (100,150,255)
    +    atts.meshColorSource = atts.MeshCustom
    +    TestPlot2("Mesh", "StarMesh", atts, ("_2_00", "_2_01"))
    +
    +    # Test Pseudocolor
    +    TestPlot2("Pseudocolor", "Matnos", None, ("_2_02", "_2_03"))
    +
    +    # Test Scatter
    +    atts = ScatterAttributes()
    +    atts.var2 = "vy"
    +    atts.var3 = "vz"
    +    atts.var3Role = atts.Coordinate2
    +    atts.var4 = "Matnos"
    +    atts.var4Role = atts.Color
    +    TestPlot2("Scatter", "vx", atts, ("_2_04", "_2_05"))
    +
    +    # Test FilledBoundary
    +    TestPlot2("FilledBoundary", "stars", None, ("_2_06", "_2_07"))
    +
    +    # Test Subset
    +    TestPlot2("Subset", "domains", None, ("_2_08", "_2_09"))
    +
    +def TestPlot3(plotName, plotVar, atts, cases):
    +    AddPlot(plotName, plotVar)
    +    if atts == None:
    +        atts = eval(plotName + "Attributes()")
    +    atts.pointType = atts.Axis
    +    SetPlotOptions(atts)
    +    DrawPlots()
    +
    +    Test("renderpoint" + cases[0])
    +
    +    atts.pointType = atts.Icosahedron
    +    atts.pointSize = 0.1
    +    SetPlotOptions(atts)
    +    Test("renderpoint" + cases[1])
    +
    +    atts.pointType = atts.Octahedron
    +    SetPlotOptions(atts)
    +    Test("renderpoint" + cases[2])
    +
    +    atts.pointSize = 0.05
    +    atts.pointType = atts.Tetrahedron
    +    SetPlotOptions(atts)
    +    Test("renderpoint" + cases[3])
    +
    +    atts.pointType = atts.SphereGeometry
    +    SetPlotOptions(atts)
    +    Test("renderpoint" + cases[4])
    +
    +    DeleteActivePlots()
    +
    +#
    +# Test that all plots that support sphere point texturing can do it.
    +#
    +def test3():
    +    TestSection("Check glyph types for Mesh plot")
    +    atts = MeshAttributes()
    +    atts.meshColor = (152,203,0)
    +    atts.meshColorSource = atts.MeshCustom
    +    TestPlot3("Mesh", "StarMesh", atts, ("_3_00", "_3_01", "_3_02", "_3_03", "_3_04"))
    +
    +    TestSection("Check glyph types for Pseudocolor plot")
    +    # Test Pseudocolor
    +    TestPlot3("Pseudocolor", "Matnos", None, ("_3_05", "_3_06", "_3_07", "_3_08", "_3_09"))
    +
    +    TestSection("Check glyph types for Scatter plot")
    +    # Test Scatter
    +    atts = ScatterAttributes()
    +    atts.var2 = "vy"
    +    atts.var3 = "vz"
    +    atts.var3Role = atts.Coordinate2
    +    atts.var4 = "Matnos"
    +    atts.var4Role = atts.Color
    +    TestPlot3("Scatter", "vx", atts, ("_3_10", "_3_11", "_3_12", "_3_13", "_3_14"))
    +
    +    TestSection("Check glyph types for FilledBoundary plot")
    +    # Test FilledBoundary
    +    TestPlot3("FilledBoundary", "stars", None, ("_3_15", "_3_16", "_3_17", "_3_18", "_3_19"))
    +
    +    # Test Subset
    +    TestSection("Check all glyph types for Subset plot")
    +    TestPlot3("Subset", "domains", None, ("_3_20", "_3_21", "_3_22", "_3_23", "_3_24"))
    +
    +def TestPlot4(plotName, plotVar, atts, case):
    +    AddPlot(plotName, plotVar)
    +    if atts == None:
    +        atts = eval(plotName + "Attributes()")
    +    atts.pointType = atts.SphereGeometry
    +    atts.pointSize = 0.007
    +    atts.pointSizeVarEnabled = 1
    +    atts.pointSizeVar = "Matnos"
    +    SetPlotOptions(atts)
    +    DrawPlots()
    +
    +    Test("renderpoint" + case)
    +
    +    DeleteActivePlots()
    +
    +#
    +# Test that all plots that support scaling glyphs by a variable can do it.
    +#
    +def test4():
    +    TestSection("Check scaling glyphs by a variable")
    +    atts = MeshAttributes()
    +    atts.meshColor = (152,203,0)
    +    atts.meshColorSource = atts.MeshCustom
    +    TestPlot4("Mesh", "StarMesh", atts, "_4_00")
    +
    +    # Test Pseudocolor
    +    TestPlot4("Pseudocolor", "Matnos", None, "_4_01")
    +
    +    # Test FilledBoundary
    +    TestPlot4("FilledBoundary", "stars", None, "_4_02")
    +
    +    # Test Subset
    +    TestPlot4("Subset", "domains", None, "_4_03")
    +
    +#
    +# Test that glyphed plots can be restored from session files
    +#
    +def test5():
    +    TestSection("Check glyphed plots restored from session files")
    +    DeleteAllPlots()
    +    RestoreSessionWithDifferentSources(tests_path("rendering", "filledBoundaryStars.session"), 0, silo_data_path("galaxy0000.silo"))
    +    Test("renderpoint_5_00")
    +
    +    DeleteAllPlots()
    +    RestoreSessionWithDifferentSources(tests_path("rendering", "meshNoisePoint.session"), 0, silo_data_path("noise.silo"))
    +    Test("renderpoint_5_01")
    +
    +    DeleteAllPlots()
    +    RestoreSessionWithDifferentSources(tests_path("rendering", "pcNoisePoint.session"), 0, silo_data_path("noise.silo"))
    +    Test("renderpoint_5_02")
    +
    +    DeleteAllPlots()
    +    RestoreSessionWithDifferentSources(tests_path("rendering", "scatterNoiseHG.session"), 0, silo_data_path("noise.silo"))
    +    Test("renderpoint_5_03")
    +
    +    DeleteAllPlots()
    +    RestoreSessionWithDifferentSources(tests_path("rendering", "subsetNoisePoint.session"), 0, silo_data_path("noise.silo"))
    +    Test("renderpoint_5_04")
    +
    +
    +def main():
    +    # Turn off all annotation
    +    TurnOffAllAnnotations()
    +
    +    OpenDatabase(silo_data_path("galaxy0000.silo"))
    +
    +    test0()
    +    test1()
    +    test2()
    +    test3()
    +    test4()
    +
    +    CloseDatabase(silo_data_path("galaxy0000.silo"))
    +
    +    test5()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_saveformats.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_saveformats.html new file mode 100644 index 000000000..ff6aae5da --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_saveformats.html @@ -0,0 +1,120 @@ + +Results for rendering/saveformats.py + +

    Results of VisIt Regression Test - rendering/saveformats

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Curve Formats
    saveformat_curve0 modifications totalling 0 lines
    saveformat_ps0 modifications totalling 0 lines
    saveformat_ultra0 modifications totalling 0 lines
    Image Formats via Screen Capture
    saveformat_bmp0 modifications totalling 0 lines
    saveformat_jpeg0 modifications totalling 0 lines
    saveformat_png0 modifications totalling 0 lines
    saveformat_ppm0 modifications totalling 0 lines
    saveformat_rgb0 modifications totalling 0 lines
    saveformat_tif0 modifications totalling 0 lines
    Image Formats via Off Screen
    saveformat_offscreen_bmp0 modifications totalling 0 lines
    saveformat_offscreen_jpeg0 modifications totalling 0 lines
    saveformat_offscreen_png0 modifications totalling 0 lines
    saveformat_offscreen_ppm0 modifications totalling 0 lines
    saveformat_offscreen_rgb0 modifications totalling 0 lines
    saveformat_offscreen_tif0 modifications totalling 0 lines
    Geometry Formats
    saveformat_stl0 modifications totalling 0 lines
    saveformat_obj0 modifications totalling 0 lines
    saveformat_vtk0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_saveformats_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_saveformats_py.html new file mode 100644 index 000000000..bc0c18ec5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_saveformats_py.html @@ -0,0 +1,272 @@ +rendering/saveformats.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  saveformats.py
    +#
    +#  Tests:      save window formats 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       September 20, 2005 
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Mon Apr 23 14:07:35 EDT 2007
    +#    Don't create a mesh plot when we're saving geometry formats, since
    +#    the new behavior is to separate plots into different files (as they
    +#    typically have different variables and geometry types).
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Tue Feb  2 10:55:43 PST 2010
    +#    Fixed problem w/ setting active window that allowed errors to propagate
    +#    between test cases.
    +#
    +#    Mark C. Miller, Wed Apr  7 19:02:29 PDT 2010
    +#    Be smarter about testing curve formats while in scalable mode.
    +# ----------------------------------------------------------------------------
    +
    +# ----------------------------------------------------------------------------
    +# Function: FileExists 
    +#
    +# Purpose:
    +#   Tests if a file exists and, if the file is being written, waits
    +#   until the file size does not change for growthInterval seconds. If the
    +#   file exists but is of zero size, that is the same as it NOT existing
    +#
    +# waitToAppear: number of seconds to wait for the file to first appear
    +# growhtInterval: number of seconds between successive stats on the file 
    +#
    +# Programmer: Mark C. Miller
    +#             September 20, 2005
    +#
    +# ----------------------------------------------------------------------------
    +
    +from PIL import Image
    +
    +def FileExists(name, waitToAppear, growthInterval):
    +    if os.path.isfile(name) == 0:
    +        time.sleep(waitToAppear)
    +    if os.path.isfile(name) == 0:
    +        return 0
    +    curSize = os.stat(name)[ST_SIZE]
    +    if growthInterval == 0:
    +        if curSize == 0:
    +            return 0
    +    else:
    +            return 1
    +    while 1:
    +        time.sleep(growthInterval)
    +        size = os.stat(name)[ST_SIZE]
    +        if size == curSize:
    +            if curSize == 0:
    +                return 0
    +            else:
    +                return 1
    +            curSize = size
    +
    +# ----------------------------------------------------------------------------
    +# Function: SaveFileInfo
    +#
    +# Purpose:
    +#   Return a string representing the appropriate extension for the
    +#   given file format and return bools indicating if the format supports
    +#   curves, images and/or geometry.
    +#
    +# Programmer: Mark C. Miller
    +#             September 20, 2005
    +#
    +# ----------------------------------------------------------------------------
    +def SaveFileInfo(fmt):
    +    swa = SaveWindowAttributes()
    +    if (fmt == swa.POSTSCRIPT):
    +        return ("ps", 1, 0, 0)
    +    elif (fmt == swa.CURVE):
    +        return ("curve", 1, 0, 0)
    +    elif (fmt == swa.ULTRA):
    +        return ("ultra", 1, 0, 0)
    +    elif (fmt == swa.BMP):
    +        return ("bmp", 0, 1, 0)
    +    elif (fmt == swa.JPEG):
    +        return ("jpeg", 0, 1, 0)
    +    elif (fmt == swa.PNG):
    +        return ("png", 0, 1, 0)
    +    elif (fmt == swa.PPM):
    +        return ("ppm", 0, 1, 0)
    +    elif (fmt == swa.RGB):
    +        return ("rgb", 0, 1, 0)
    +    elif (fmt == swa.TIFF):
    +        return ("tif", 0, 1, 0)
    +    elif (fmt == swa.STL):
    +        return ("stl", 0, 0, 1)
    +    elif (fmt == swa.OBJ):
    +        return ("obj", 0, 0, 1)
    +    elif (fmt == swa.VTK):
    +        return ("vtk", 0, 0, 1)
    +    else:
    +        return ("unknown", 0, 0, 0)
    +
    +
    +swa=SaveWindowAttributes()
    +swa.family = 0
    +
    +AddWindow()
    +SetActiveWindow(1)
    +
    +# I=Image, G=Geometry, C=Curve formats
    +CFormats=[swa.CURVE, swa.POSTSCRIPT, swa.ULTRA]
    +IFormats=[swa.BMP, swa.JPEG, swa.PNG, swa.PPM, swa.RGB, swa.TIFF]
    +GFormats=[swa.STL, swa.OBJ, swa.VTK]
    +
    +a = AnnotationAttributes()
    +a.userInfoFlag = 0
    +a.databaseInfoFlag = 0
    +a.legendInfoFlag = 0
    +SetAnnotationAttributes(a)
    +
    +# ----------------------------------------------------------------------------
    +# Function: TestSaveFormat
    +#
    +# Modifications:
    +#   Kathleen Biagas, Thu Feb 11 2021
    +#   For Image formats, only convert RGB to TIFF, as all other formats tested
    +#   here should be readable and plottable by VisIt. Use PIL::Image for
    +#   conversion instead of 'convert'.
    +# ----------------------------------------------------------------------------
    +
    +def TestSaveFormat(fmt):
    +    SetActiveWindow(1)
    +    mode = ""
    +    result = "Failed\n"
    +    (ext, isC, isI, isG) = SaveFileInfo(fmt)
    +    swatmp = swa
    +    swatmp.format = fmt
    +    swatmp.outputToCurrentDirectory = 1
    +    if isI:
    +        swatmp.fileName = "saveformat_tmp.%s"%ext
    +    else:
    +        swatmp.fileName = "saveformat_tmp"
    +    SetSaveWindowAttributes(swatmp)
    +    try:
    +        SaveWindow()
    +    except:
    +        if TestEnv.params["scalable"]:
    +            if GetLastError() == "You cannot save non-image formats (e.g. ultra, curve, stl, etc.)" \
    +                                 " from a window that is currently in scalable rendering mode. You" \
    +                                 " may force scalable rendering to Never but if the resulting data" \
    +                                 " is too big for the viewer to handle, it will likely crash" \
    +                                 " VisIt. For 3D formats, try an export database operation instead." :
    +                TestText("saveformat_%s%s"%(mode,ext), "Passed\n")
    +                return
    +        TestText("saveformat_%s%s"%(mode,ext), result)
    +        return
    +
    +    # depending on the type of format this is, try to
    +    # read the file we just created back into VisIt and
    +    # put up a plot in window 2. If that succeeds, we'll
    +    # say this format's save actually worked
    +    if isC:
    +        if FileExists(swatmp.fileName+"."+ext, 1, 0):
    +            if ext == "ps":
    +                result = "Passed\n" # can only test existence for ps
    +            else:
    +                SetActiveWindow(2)
    +                if OpenDatabase(swatmp.fileName+"."+ext):
    +                    AddPlot("Curve","going_down")
    +                    if DrawPlots():
    +                        result = "Passed\n"
    +                    DeleteAllPlots()
    +                    CloseDatabase(swatmp.fileName+"."+ext)
    +    elif isI:
    +        if swatmp.screenCapture == 0:
    +            mode = "offscreen_"
    +        imageFileExists = FileExists(swatmp.fileName, 1, 0)
    +        if imageFileExists:
    +            # visit should be able to read all but the RGB format, so only convert RGB to TIFF
    +            if fmt != swa.RGB:
    +                SetActiveWindow(2)
    +                if OpenDatabase(swatmp.fileName):
    +                    AddPlot("Pseudocolor","red")
    +                    if DrawPlots():
    +                        result = "Passed\n"
    +                    DeleteAllPlots()
    +                    CloseDatabase(swatmp.fileName)
    +            else:
    +                tiffFileName = "%s/saveformat_tmp.tif"%TestEnv.params["run_dir"]
    +                tiffFileExists = 0
    +                try:
    +                    im1=Image.open(swatmp.fileName)
    +                    im1.save(tiffFileName, 'tiff')
    +                    tiffFileExists = FileExists(tiffFileName, 1, 0)
    +                except ValueError:
    +                    result="Format type could not be determined"
    +                except OSError:
    +                    result="Could not convert"
    +                if tiffFileExists:
    +                    SetActiveWindow(2)
    +                    if OpenDatabase(tiffFileName):
    +                        AddPlot("Pseudocolor","red")
    +                        if DrawPlots():
    +                            result = "Passed\n"
    +                        DeleteAllPlots()
    +                        CloseDatabase(tiffFileName)
    +    elif isG:
    +        if FileExists(swatmp.fileName+"."+ext, 1, 0):
    +            if ext == "stl":
    +                meshName = "STL_mesh"
    +            elif ext == "obj":
    +                meshName = "OBJMesh"
    +            elif ext == "vtk":
    +                meshName = "mesh"
    +            SetActiveWindow(2)
    +            if OpenDatabase(swatmp.fileName+"."+ext):
    +                AddPlot("Mesh",meshName)
    +                if DrawPlots():
    +                    result = "Passed\n"
    +                DeleteAllPlots()
    +                CloseDatabase(swatmp.fileName+"."+ext)
    +    TestText("saveformat_%s%s"%(mode,ext), result)
    +    SetActiveWindow(1)
    +
    +
    +TestSection("Curve Formats")
    +OpenDatabase(data_path("curve_test_data","c062.curve"))
    +
    +AddPlot("Curve", "going_down")
    +DrawPlots()
    +for f in CFormats:
    +    TestSaveFormat(f)
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("curve_test_data","c062.curve"))
    +
    +TestSection("Image Formats via Screen Capture")
    +OpenDatabase(silo_data_path("multi_rect2d.silo"))
    +
    +AddPlot("Mesh", "mesh1")
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +slider = CreateAnnotationObject("TimeSlider")
    +# make sure screenCapture is on
    +swa.screenCapture = 1
    +for f in IFormats:
    +    TestSaveFormat(f)
    +
    +TestSection("Image Formats via Off Screen")
    +swa.screenCapture = 0
    +for f in IFormats:
    +    TestSaveFormat(f)
    +swa.screenCapture = 1
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multi_rect2d.silo"))
    +
    +TestSection("Geometry Formats")
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "dx")
    +DrawPlots()
    +for f in GFormats:
    +    TestSaveFormat(f)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_scalable.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_scalable.html new file mode 100644 index 000000000..490857bb3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_scalable.html @@ -0,0 +1,117 @@ + +Results for rendering/scalable.py + +

    Results of VisIt Regression Test - rendering/scalable

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    scalable_010.000.00
    scalable_020.000.00
    scalable_030.000.00
    scalable_040.000.00
    scalable_050.000.00
    scalable_060.000.00
    SRModeHistory0 modifications totalling 0 lines
    Multiple Windows
    multiWindow_SRModeHistory0 modifications totalling 0 lines
    scalable_070.000.00
    Testing Mesh plot's opaque flag in SR mode
    scalable_080.000.00
    scalable_090.000.00
    scalable_100.000.00
    Glyphed Plot Causing SR Transitions
    glyphedPlot_SRModeHistory0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_scalable2.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_scalable2.html new file mode 100644 index 000000000..79fbc35e5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_scalable2.html @@ -0,0 +1,53 @@ + +Results for rendering/scalable2.py + +

    Results of VisIt Regression Test - rendering/scalable2

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Testing that plots of single-timestep are requested in SR after engine loss
    scalable2_0_000.000.00
    scalable2_0_010 modifications totalling 0 lines
    scalable2_0_020 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_scalable2_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_scalable2_py.html new file mode 100644 index 000000000..d76f041f4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_scalable2_py.html @@ -0,0 +1,113 @@ +rendering/scalable2.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  scalable2.py
    +#
    +#  Tests:      mesh      - 2D curvilinear
    +#              plots     - Pseudocolor, Contour
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri May 12 15:55:22 PST 2006
    +#
    +#  Modifications:
    +#    Mark C. Miller, Wed Jan 21 10:00:10 PST 2009
    +#    Removed silly comment regarding global annotation object 'a'
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +import os, sys
    +
    +#
    +# Test that single-timestep plots have their networks reset in the
    +# viewer when we lose the compute engine.
    +#
    +def TestNetworkReset():
    +    TestSection("Testing that plots of single-timestep are "\
    +                "requested in SR after engine loss")
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Mesh", "curvmesh2d")
    +
    +    OpenDatabase(data_path("pdb_test_data/dbA00.pdb"))
    +
    +    AddPlot("Contour", "mesh/nummm")
    +    DrawPlots()
    +
    +    # Use scalable rendering always
    +    r = GetRenderingAttributes()
    +    r.scalableActivationMode = r.Always
    +    SetRenderingAttributes(r)
    +
    +    Test("scalable2_0_00")
    +
    +    # Turn off screen capture
    +    base = "TestNetworkReset"
    +    s = GetSaveWindowAttributes()
    +    s.screenCapture = 0
    +    s.width = 400
    +    s.height = 400
    +    s.format = s.PNG
    +    s.fileName = base
    +    s.outputToCurrentDirectory = 1
    +    s.family = 1
    +    SetSaveWindowAttributes(s)
    +
    +    # Save out images, killing the compute engine halfway through
    +    usingSR = ""
    +    for i in range(TimeSliderGetNStates()):
    +        SetTimeSliderState(i)
    +        # TODO_WINDOWS THIS WONT WORK ON WINDOWS
    +        # Kill the compute engine partway through to simulate it getting
    +        # booted out of the batch queue.
    +        if(i == 5):
    +            pinfo = GetProcessAttributes("engine")
    +            for pid in pinfo.pids:
    +                os.system("kill -9 %d" % pid)
    +
    +        DrawPlots()
    +        SaveWindow()
    +        if(GetWindowInformation().usingScalableRendering == 1):
    +            usingSR = usingSR + "Using scalable rendering on frame %d: true\n" % i
    +        else:
    +            usingSR = usingSR + "Using scalable rendering on frame %d: false\n" % i
    +
    +    # Look at the file sizes to make sure that all are non-zero
    +    files = os.listdir(".")
    +    pngs = []
    +    for f in files:
    +        if(len(f) > len(base) and f[:len(base)] == base):
    +            pngs = pngs + [f]
    +    pngs.sort()
    +
    +    # Iterate through the png files and look at their sizes. Remove them too.
    +    pngSize = ""
    +    for png in pngs:
    +        filesize = os.stat(png)[6]
    +        if filesize > 0:
    +            pngSize = pngSize + "File size for %s greater than zero.\n" % png
    +        else:
    +            pngSize = pngSize + "File size for %s is zero.\n" % png
    +        # remove the png file.
    +        os.unlink(png)
    +
    +    TestText("scalable2_0_01", usingSR)
    +    TestText("scalable2_0_02", pngSize)
    +
    +    DeleteAllPlots()
    +
    +#
    +# Call all of the subtests.
    +#
    +def main():
    +    # Turn off all annotation
    +    TurnOffAllAnnotations()
    +
    +    TestNetworkReset()
    +
    +#
    +# Call main
    +#
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_scalable_c.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_scalable_c.html new file mode 100644 index 000000000..18aabc17e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_scalable_c.html @@ -0,0 +1,117 @@ + +Results for rendering/scalable_c.py + +

    Results of VisIt Regression Test - rendering/scalable_c

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    scalable_010.000.00
    scalable_020.000.00
    scalable_030.000.00
    scalable_040.000.00
    scalable_050.000.00
    scalable_060.000.00
    SRModeHistory0 modifications totalling 0 lines
    Multiple Windows
    multiWindow_SRModeHistory0 modifications totalling 0 lines
    scalable_070.000.00
    Testing Mesh plot's opaque flag in SR mode
    scalable_080.000.00
    scalable_090.000.00
    scalable_100.000.00
    Glyphed Plot Causing SR Transitions
    glyphedPlot_SRModeHistory0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_scalable_c_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_scalable_c_py.html new file mode 100644 index 000000000..6c0ec0e60 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_scalable_c_py.html @@ -0,0 +1,21 @@ +rendering/scalable_c.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  scalable_c.py
    +#
    +#  Tests:      Runs the scalable.py test but with compression turned on 
    +#              scalable.py tests for existence of 'useCompression' variable
    +#              and turns on compression if it exists. We expect identical
    +#              output from the tests but because this py file has a different
    +#              name, it will generate them a subdir by the name 'scalable_c'
    +#              and look for baselines likewise. So, in baseline dir,
    +#              the scalable_c dir is a symlink to scalable.
    +#
    +#  Programmer: Mark C. Miller
    +#  Date:       19Aug08 
    +#
    +# ----------------------------------------------------------------------------
    +
    +useCompression = 1
    +Source(tests_path("rendering","scalable.py"))
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_scalable_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_scalable_py.html new file mode 100644 index 000000000..c9a9e42b8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_scalable_py.html @@ -0,0 +1,392 @@ +rendering/scalable.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  scalable.py
    +#
    +#  Tests:      mesh      - 3D unstructured, multiple domains
    +#              plots     - pc, mesh 
    +#              operators - slice 
    +#              selection - some of the domains 
    +#
    +#  Defect ID:  '3359
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       01Jul03
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Tue May 11 20:21:24 PDT 2004
    +#    Changed scalable rendering controls to use activation mode
    +#
    +#    Mark C. Miller, Tue May 25 14:29:40 PDT 2004
    +#    Added code to test automatic tranitions into and out of SR mode
    +#
    +#    Mark C. Miller, Thu Jan  6 14:23:01 PST 2005
    +#    Added code to test multiple windows and auto SR transitions
    +#
    +#    Kathleen Bonnell, Mon Jan 23 21:02:56 PST 2006 
    +#    Added tests '08-10, testing auto-opaque mesh and sr mode.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to switch between Silo's HDF5 and PDB data.
    +#
    +#    Eric Brugger, Fri Aug 15 10:19:33 PDT 2014
    +#    Modified the script to use srun to launch the parallel engine on edge.
    +#
    +#    Eric Brugger, Wed Oct 29 12:08:54 PDT 2014
    +#    Changed the parallel job launching logic to use srun on surface instead
    +#    of edge.
    +#
    +#    Brad Whitlock, Mon Dec 15 17:22:38 PST 2014
    +#    Only close the compute engine if it is not parallel.
    +#
    +#    Kathleen Biagas, Fri Jul  7 13:41:36 PDT 2017
    +#    Don't run this test if the parallel engine doesn't exist.
    +#
    +#    Kathleen Biagas, Tue Feb 8 2022
    +#    Use run_dir for location of saving windows, it is cleaned up on exit.
    +#
    +#    Eric Brugger, Wed Nov  1 13:46:08 PDT 2023
    +#    Updated the list of hosts where srun was used to launch a parallel
    +#    compute engine.
    +#
    +# ----------------------------------------------------------------------------
    +
    +if not sys.platform.startswith("win"):
    +    if not os.path.exists(visit_bin_path("..", "exe", "engine_par")):
    +        Exit(121)
    +else:
    +    if not os.path.exists(visit_bin_path("engine_par.exe")):
    +        Exit(121)
    +
    +# sleep is needed to allow viewer to complete update of window information
    +# before it is queried here
    +import time
    +sleepTime=1
    +
    +# Turn on scalable rendering
    +ra = GetRenderingAttributes()
    +ra.scalableActivationMode = ra.Always
    +if "useCompression" in dir():
    +    ra.compressionActivationMode = ra.Always
    +SetRenderingAttributes(ra)
    +
    +# Close the compute engine, if it is not already parallel.
    +engines = GetEngineList()
    +if len(engines) > 0:
    +    props = GetEngineProperties(engines[0])
    +    if props.numProcessors < 2:
    +        CloseComputeEngine()
    +        # explicitly open a parallel engine, if possible
    +        # if it fails, the OpenDatabase will start a serial engine
    +        import socket
    +        if "quartz" in socket.gethostname() or \
    +           "pascal"  in socket.gethostname() or \
    +           "poodle"  in socket.gethostname() or \
    +           "syrah"   in socket.gethostname():
    +            haveParallelEngine = OpenComputeEngine("localhost", ("-l", "srun", "-np", "2"))
    +        else:
    +            haveParallelEngine = OpenComputeEngine("localhost", ("-np", "2"))
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Mesh", "mesh1")
    +silr=SILRestriction()
    +silr.TurnOffAll()
    +silr.TurnOnSet(1)
    +silr.TurnOnSet(3)
    +silr.TurnOnSet(5)
    +silr.TurnOnSet(10)
    +SetPlotSILRestriction(silr)
    +AddPlot("Pseudocolor", "d")
    +SetPlotSILRestriction(silr)
    +
    +DrawPlots()
    +
    +view=GetView3D()
    +view.viewNormal=(0,1,0)
    +view.viewUp=(0,0,-1)
    +SetView3D(view)
    +
    +Test("scalable_01")
    +
    +# rotate and draw them again
    +view.viewNormal=(0,1,0)
    +view.viewUp=(1,0,0)
    +SetView3D(view)
    +
    +# Make sure mesh plot doesn't dissappear after a rotate
    +# ('3359)
    +Test("scalable_02")
    +
    +# Pan and zoom
    +view.imageZoom = 0.75
    +view.imagePan = (0.25, 0.25)
    +SetView3D(view)
    +Test("scalable_03")
    +
    +# Make sure hide behavior still works
    +SetActivePlots(1)
    +HideActivePlots()
    +Test("scalable_04")
    +
    +HideActivePlots()
    +SetActivePlots(0)
    +DeleteActivePlots()
    +Test("scalable_05")
    +
    +# reset the SIL restriction for the succeeding SR auto mode tests
    +# tests to make sure the ERI actor doesn't leave stale image data around
    +ResetView()
    +silr.TurnOnAll()
    +SetPlotSILRestriction(silr)
    +DeleteAllPlots()
    +Test("scalable_06")
    +
    +# accumulate results of SR mode changes here
    +srModeHistory=""
    +
    +# function to save temporary windows used to force renders
    +def MySaveWindow():
    +    swa = GetSaveWindowAttributes()
    +    swa.fileName = pjoin(TestEnv.params["run_dir"], "scalable_tmp.png")
    +    swa.format = swa.PNG
    +    swa.family = 0
    +    SetSaveWindowAttributes(swa)
    +    SaveWindow() # required to force render
    +
    +# function to examine current SR mode of window
    +def CheckSRMode(winID):
    +   global srModeHistory
    +   DrawPlots()
    +   MySaveWindow() # required to force render
    +   time.sleep(sleepTime)
    +   wi=GetWindowInformation()
    +   if wi.usingScalableRendering == 1:
    +       srModeHistory+="window %d:SR is ON\n"%winID
    +   else:
    +       srModeHistory+="window %d:SR is off\n"%winID
    +
    +# function to force window into specified SR mode and confirm it 
    +def ForceSRMode(mode):
    +   global srModeHistory
    +   if mode:
    +       ra.scalableActivationMode = ra.Always
    +   else:
    +       ra.scalableActivationMode = ra.Never
    +   SetRenderingAttributes(ra)
    +   DrawPlots()
    +   time.sleep(sleepTime)
    +   wi=GetWindowInformation()
    +   srModeHistory+="force SR mode %d\n"%wi.usingScalableRendering
    +
    +ForceSRMode(0)
    +
    +# test an individual plot taking poly count above threshold
    +# with proc 0's data alone
    +ra.scalableActivationMode = ra.Auto
    +ra.scalableAutoThreshold = 2000
    +SetRenderingAttributes(ra)
    +DrawPlots()
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +time.sleep(sleepTime)
    +wi=GetWindowInformation()
    +srModeHistory+="single plot, proc 0 >threshold %d\n"%wi.usingScalableRendering
    +DeleteAllPlots()
    +
    +ForceSRMode(0)
    +
    +# test an individual plot taking poly count above threshold with
    +# data from proc 2 (or above)
    +ra.scalableActivationMode = ra.Auto
    +ra.scalableAutoThreshold = 5000
    +SetRenderingAttributes(ra)
    +DrawPlots()
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +time.sleep(sleepTime)
    +wi=GetWindowInformation()
    +srModeHistory+="single plot, proc >0 >threshold %d\n"%wi.usingScalableRendering
    +DeleteAllPlots()
    +
    +ForceSRMode(0)
    +
    +# test a addition and deletion causing to go above threshold and then
    +# back below
    +ra.scalableActivationMode = ra.Auto
    +ra.scalableAutoThreshold = 15000
    +SetRenderingAttributes(ra)
    +DrawPlots()
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +time.sleep(sleepTime)
    +wi=GetWindowInformation()
    +srModeHistory+="two plots, first <threshold %d\n"%wi.usingScalableRendering
    +AddPlot("Mesh", "mesh1")
    +DrawPlots()
    +time.sleep(sleepTime)
    +wi=GetWindowInformation()
    +srModeHistory+="two plots, second >threshold %d\n"%wi.usingScalableRendering
    +DeleteActivePlots()
    +DrawPlots()
    +MySaveWindow() # force engine to render
    +time.sleep(sleepTime)
    +wi=GetWindowInformation()
    +srModeHistory+="delete 2nd, <threshold %d\n"%wi.usingScalableRendering
    +
    +ForceSRMode(0)
    +
    +# test setting auto threshold below current count
    +ra.scalableActivationMode = ra.Auto
    +ra.scalableAutoThreshold = 3000
    +SetRenderingAttributes(ra)
    +DrawPlots()
    +time.sleep(sleepTime)
    +wi=GetWindowInformation()
    +srModeHistory+="auto threshold set < plot %d\n"%wi.usingScalableRendering
    +
    +ForceSRMode(1)
    +
    +# test setting auto threshold above current count
    +ra.scalableActivationMode = ra.Auto
    +ra.scalableAutoThreshold = 30000
    +SetRenderingAttributes(ra)
    +DrawPlots()
    +# save window is required to force the re-draw that causes engine to
    +# decide SR mode is no longer necessary
    +MySaveWindow()
    +time.sleep(sleepTime)
    +wi=GetWindowInformation()
    +srModeHistory+="auto threshold set > plot %d\n"%wi.usingScalableRendering
    +
    +TestText("SRModeHistory",srModeHistory)
    +
    +DeleteAllPlots()
    +srModeHistory=""
    +
    +#
    +# Do some testing with multiple windows
    +#
    +TestSection("Multiple Windows")
    +
    +ra.scalableActivationMode = ra.Auto
    +ra.scalableAutoThreshold = 14000
    +SetRenderingAttributes(ra)
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +CheckSRMode(1)
    +
    +CloneWindow()
    +SetActiveWindow(2)
    +DrawPlots()
    +CheckSRMode(2)
    +
    +SetActiveWindow(1)
    +AddPlot("Pseudocolor", "p")
    +AddPlot("Pseudocolor", "u")
    +AddPlot("Pseudocolor", "w")
    +DrawPlots()
    +CheckSRMode(1)
    +SetActiveWindow(2)
    +AddPlot("Pseudocolor", "p")
    +DrawPlots()
    +CheckSRMode(2)
    +
    +SetActiveWindow(1)
    +SetActivePlots((1,2,3))
    +DeleteActivePlots()
    +DrawPlots()
    +CheckSRMode(1)
    +SetActiveWindow(2)
    +CheckSRMode(2)
    +
    +TestText("multiWindow_SRModeHistory",srModeHistory)
    +
    +#
    +# test unhiding mesh to make sure it doesn't go opaque ('5947)
    +#
    +DeleteWindow()
    +SetActiveWindow(1)
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +ra.scalableActivationMode = ra.Always
    +SetRenderingAttributes(ra)
    +AddPlot("Mesh","mesh1")
    +AddPlot("Pseudocolor","dx")
    +DrawPlots()
    +MySaveWindow() # force a render
    +SetActivePlots((0))
    +HideActivePlots()
    +DrawPlots()
    +MySaveWindow() # force a render
    +HideActivePlots()
    +DrawPlots()
    +Test("scalable_07")
    +
    +DeleteAllPlots()
    +
    +TestSection("Testing Mesh plot's opaque flag in SR mode")
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("FilledBoundary", "mat1")
    +AddPlot("Mesh", "curvmesh2d")
    +m = MeshAttributes()
    +m.opaqueMode = m.Auto
    +SetPlotOptions(m)
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +Test("scalable_08")
    +SetActivePlots(1)
    +Test("scalable_09")
    +Pick(164, 136)
    +Test("scalable_10")
    +DeleteAllPlots()
    +
    +
    +TestSection("Glyphed Plot Causing SR Transitions")
    +
    +srModeHistory=""
    +ForceSRMode(0)
    +ra.scalableActivationMode = ra.Auto
    +ra.scalableAutoThreshold = 30000
    +SetRenderingAttributes(ra)
    +
    +OpenDatabase(silo_data_path("galaxy0000.silo"))
    +
    +AddPlot("Pseudocolor", "vx")
    +DrawPlots()
    +CheckSRMode(1)
    +TestText("glyphedPlot_SRModeHistory",srModeHistory)
    +
    +DeleteAllPlots()
    +
    +# this section causes a crash, comment out until fixed.
    +#TestSection("Stereo Modes")
    +
    +#ra.scalableActivationMode = ra.Always
    +#ra.stereoRendering = 1
    +#ra.stereoType = ra.RedBlue
    +#SetRenderingAttributes(ra)
    +
    +#OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +#AddPlot("Mesh","mesh1")
    +
    +# make the eye separation as noticable as possible
    +#ResetView()
    +#v = GetView3D()
    +#v.eyeAngle = 5
    +#v.viewNormal=(0.707, 0, 0.707)
    +#SetView3D(v)
    +#DrawPlots()
    +
    +#Test("scalable_11")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_shadows.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_shadows.html new file mode 100644 index 000000000..0b80e1004 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_shadows.html @@ -0,0 +1,54 @@ + +Results for rendering/shadows.py + +

    Results of VisIt Regression Test - rendering/shadows

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    shadows_010.000.00
    shadows_020.000.00
    shadows_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_shadows_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_shadows_py.html new file mode 100644 index 000000000..0713d3aa5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_shadows_py.html @@ -0,0 +1,55 @@ +rendering/shadows.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  shadows.py
    +#
    +#  Tests:      mesh      - 2D/3D rectilinear, one domain
    +#              plots     - pseudocolor, surface
    +#              operators - isosurface
    +#              selection - no
    +#
    +#  Defect ID:  5539, 7068
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 3, 2006
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "hardyglobal")
    +
    +AddOperator("Isosurface")
    +i = IsosurfaceAttributes()
    +i.contourNLevels = 1
    +SetOperatorOptions(i)
    +
    +r = RenderingAttributes()
    +r.scalableActivationMode = r.Always
    +r.doShadowing = 1
    +SetRenderingAttributes(r)
    +l = GetLight(0)
    +l.direction = (-0.707, 0, -0.707)
    +SetLight(0, l)
    +DrawPlots()
    +Test("shadows_01")
    +
    +r.shadowStrength = 0.9
    +SetRenderingAttributes(r)
    +Test("shadows_02")
    +
    +# Now test that we don't crash with 2D.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +Test("shadows_03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_specular.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_specular.html new file mode 100644 index 000000000..440bdd40e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_specular.html @@ -0,0 +1,102 @@ + +Results for rendering/specular.py + +

    Results of VisIt Regression Test - rendering/specular

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    specular_010.000.00
    specular_020.000.00
    specular_030.000.00
    specular_040.000.00
    specular_050.000.00
    specular_060.000.00
    specular_070.000.00
    specular_080.000.00
    specular_090.000.00
    specular_100.000.00
    specular_110.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_specular_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_specular_py.html new file mode 100644 index 000000000..d7ac01305 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_specular_py.html @@ -0,0 +1,124 @@ +rendering/specular.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  specular.py
    +#
    +#  Tests:      mesh      - 2D/3D rectilinear, one domain
    +#              plots     - pseudocolor
    +#              operators - isosurface
    +#              selection - no
    +#
    +#  Defect ID:  5555, 5580
    +#
    +#  Programmer: Hank Childs
    +#  Date:       November 2, 2004
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Wed Nov  3 16:41:56 PST 2004
    +#    Commented out specular_11, since it was failing in SR mode.  Submitted
    +#    new ticket, '5580 to address this.
    +#
    +#    Hank Childs, Fri Dec  9 08:01:46 PST 2005
    +#    Uncomment specular_11.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "hardyglobal")
    +
    +AddOperator("Isosurface")
    +i = IsosurfaceAttributes()
    +i.contourNLevels = 1
    +SetOperatorOptions(i)
    +
    +DrawPlots()
    +Test("specular_01")
    +
    +r = GetRenderingAttributes()
    +r.specularFlag = 1
    +SetRenderingAttributes(r)
    +Test("specular_02")
    +
    +# Highly concentrated, low power
    +r.specularCoeff = 0.9
    +r.specularPower = 100
    +SetRenderingAttributes(r)
    +Test("specular_03")
    +
    +# Poorly concentrated, high power
    +r.specularCoeff = 0.1
    +r.specularPower = 1
    +SetRenderingAttributes(r)
    +Test("specular_04")
    +
    +# Test that specular is properly turned off when PC's lighting is turned off.
    +pc_atts = PseudocolorAttributes()
    +pc_atts.lightingFlag = 0
    +SetPlotOptions(pc_atts)
    +Test("specular_05")
    +
    +# Make sure that specular is not affecting 2D plots.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +Test("specular_06")
    +
    +# Now do the same things over again with Pseudocolor + Elevate
    +
    +DeleteAllPlots()
    +r.specularFlag = 0
    +SetRenderingAttributes(r)
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "hgslice")
    +AddOperator("Elevate")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.35795, -0.730451, 0.581647)
    +v.focus = (0, 0, 10)
    +v.viewUp = (0.0642975, 0.60216, 0.795782)
    +v.viewAngle = 30
    +v.parallelScale = 17.3205
    +v.nearPlane = -34.641
    +v.farPlane = 34.641
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +SetView3D(v)
    +Test("specular_07")
    +
    +r = GetRenderingAttributes()
    +r.specularCoeff = 0.6
    +r.specularPower = 10
    +r.specularFlag = 1
    +SetRenderingAttributes(r)
    +Test("specular_08")
    +
    +# Highly concentrated, low power
    +r.specularCoeff = 0.9
    +r.specularPower = 100
    +SetRenderingAttributes(r)
    +Test("specular_09")
    +
    +# Poorly concentrated, high power
    +r.specularCoeff = 0.1
    +r.specularPower = 1
    +SetRenderingAttributes(r)
    +Test("specular_10")
    +
    +# Test that specular is properly turned off when PC's lighting is turned off.
    +pc_atts = PseudocolorAttributes()
    +pc_atts.lightingFlag = 0
    +SetPlotOptions(pc_atts)
    +Test("specular_11")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_text2d.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_text2d.html new file mode 100644 index 000000000..58b22238d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_text2d.html @@ -0,0 +1,108 @@ + +Results for rendering/text2d.py + +

    Results of VisIt Regression Test - rendering/text2d

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    text2d000.000.00
    text2d010.000.00
    text2d020.000.00
    text2d030.000.00
    text2d040.000.00
    text2d050.000.00
    text2d060.000.00
    text2d070.000.00
    text2d080.000.00
    text2d090.000.00
    text2d100.000.00
    text2d110.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_text2d_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_text2d_py.html new file mode 100644 index 000000000..7d57c4268 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_text2d_py.html @@ -0,0 +1,123 @@ +rendering/text2d.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  text2d.py
    +#
    +#  Tests:      mesh        - 2D curvilinear, single domain
    +#              plots       - Pseudocolor
    +#              annotations - Text2D
    +#
    +#  Defect ID:  None
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Dec 4 14:39:21 PST 2003
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Brad Whitlock, Tue Feb 28 12:00:21 PST 2012
    +#    Add test for words that used to get truncated.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Set up the annotation colors, etc.
    +a = GetAnnotationAttributes()
    +a.backgroundColor = (80, 0, 100, 255)
    +a.foregroundColor = (255, 255, 255, 255)
    +a.backgroundMode = a.Solid
    +SetAnnotationAttributes(a)
    +
    +# Open up the database and do a plot.
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +# Create a Text2D object
    +text = CreateAnnotationObject("Text2D")
    +text.text = "Pseudocolor plot!"
    +text.height = 0.05
    +text.position = (0.25, 0.45)
    +Test("text2d00")
    +
    +# Set the foreground color to see if it changes
    +a.foregroundColor = (255, 255, 0, 255)
    +SetAnnotationAttributes(a)
    +Test("text2d01")
    +
    +# Test solid text color
    +a.foregroundColor = (255, 255, 255, 255)
    +SetAnnotationAttributes(a)
    +text.useForegroundForTextColor = 0
    +text.textColor = (0, 255, 0, 255)
    +Test("text2d02")
    +
    +# Test text opacity
    +text.height = 0.18
    +text.position = (0.25, 0.45)
    +text.textColor = (255,255,255,150)
    +Test("text2d03")
    +
    +# Set the text atts
    +text.textColor = (255,255,255,255)
    +text.useForegroundForTextColor = 1
    +text.height = 0.05
    +
    +# Create more text objects
    +courier = CreateAnnotationObject("Text2D")
    +courier.text = "Courier"
    +courier.fontFamily = courier.Courier
    +courier.position = (0.25, 0.35)
    +courier.height = 0.06
    +times = CreateAnnotationObject("Text2D")
    +times.text = "Times"
    +times.fontFamily = courier.Times
    +times.position = (0.25, 0.25)
    +times.height = 0.07
    +Test("text2d04")
    +
    +# Set the bold flag
    +text.fontBold = 1
    +courier.fontBold = 1
    +times.fontBold = 1
    +Test("text2d05")
    +
    +# Set the italic flag
    +text.fontItalic = 1
    +courier.fontItalic = 1
    +times.fontItalic = 1
    +Test("text2d06")
    +
    +# Set the shadow flag
    +text.fontShadow = 1
    +courier.fontShadow = 1
    +times.fontShadow = 1
    +Test("text2d07")
    +
    +# Start Removing text
    +courier.Delete()
    +Test("text2d08")
    +times.Delete()
    +Test("text2d09")
    +text.Delete()
    +Test("text2d10")
    +
    +# Test for words that used to get truncated
    +erg = CreateAnnotationObject("Text2D")
    +erg.position = (0.5, 0.3)
    +erg.text = "Erg"
    +erg.height = 0.08
    +erg.useForegroundForTextColor = 0
    +erg.textColor = (255, 255, 255, 255)
    +era = CreateAnnotationObject("Text2D")
    +era.position = (0.5, 0.2)
    +era.text = "    Era"
    +era.height = 0.12
    +era.useForegroundForTextColor = 0
    +era.textColor = (255, 255, 255, 255)
    +Test("text2d11")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_text3d.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_text3d.html new file mode 100644 index 000000000..2a7ce9168 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_text3d.html @@ -0,0 +1,102 @@ + +Results for rendering/text3d.py + +

    Results of VisIt Regression Test - rendering/text3d

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    text3d000.000.00
    text3d010.000.00
    text3d020.000.00
    text3d030.000.00
    text3d040.000.00
    text3d050.000.00
    text3d060.000.00
    text3d070.000.00
    text3d080.000.00
    text3d090.000.00
    text3d100.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_text3d_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_text3d_py.html new file mode 100644 index 000000000..cee11cc46 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_text3d_py.html @@ -0,0 +1,103 @@ +rendering/text3d.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  text3d.py
    +#
    +#  Tests:      mesh        - 2D curvilinear, single domain
    +#              plots       - Pseudocolor
    +#              annotations - Text2D
    +#
    +#  Defect ID:  None
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       August 31, 2015
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Set up the annotation colors, etc.
    +a = GetAnnotationAttributes()
    +a.backgroundColor = (80, 0, 100, 255)
    +a.foregroundColor = (255, 255, 255, 255)
    +a.backgroundMode = a.Solid
    +SetAnnotationAttributes(a)
    +
    +# Open up the database and do a plot.
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +# Create a Text2D object
    +text = CreateAnnotationObject("Text3D")
    +text.text = "Pseudocolor plot!"
    +text.position = (-10,10,10)
    +Test("text3d00")
    +
    +# Set the foreground color to see if it changes
    +a.foregroundColor = (51, 204, 204, 255)
    +SetAnnotationAttributes(a)
    +Test("text3d01")
    +
    +# Test solid text color
    +a.foregroundColor = (255, 255, 255, 255)
    +SetAnnotationAttributes(a)
    +text.useForegroundForTextColor = 0
    +text.textColor = (255, 102, 0, 255)
    +Test("text3d02")
    +
    +# Test text opacity
    +text.position = (-5,0,9)
    +text.textColor = (255,102,0,150)
    +text.relativeHeight = 0.05
    +Test("text3d03")
    +
    +# Test Height mode
    +text.textColor = (255,102,0,255)
    +text.heightMode = text.Fixed
    +text.fixedHeight = 2
    +Test("text3d04")
    +
    +# Test preserveOrientation
    +text.position = (-10, 0, 12)
    +v = GetView3D()
    +v.viewNormal = (0, 0.707107, 0.707107)
    +v.viewUp = (0, 0.707107, -0.707107)
    +SetView3D(v)
    +Test("text3d05")
    +
    +text.preserveOrientation = 1
    +Test("text3d06")
    +
    +
    +# Test rotations
    +
    +# Create more text objects
    +AddOperator("Reflect")
    +reflect = ReflectAttributes()
    +reflect.reflections=(1, 1, 0, 0, 0, 0, 0, 0)
    +SetOperatorOptions(reflect)
    +text.text="Left"
    +text.position=(-20, -5, 10)
    +text.rotations=(0,0,90)
    +text.heightMode = text.Relative
    +DrawPlots()
    +ResetView()
    +Test("text3d07")
    +
    +right = CreateAnnotationObject("Text3D")
    +right.position = (-5, 0, 10)
    +right.text = "Right"
    +right.relativeHeight = 0.05
    +right.rotations=(0,0, -45)
    +Test("text3d08")
    +
    +text.Delete()
    +Test("text3d09")
    +right.Delete()
    +Test("text3d10")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_timeslider.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_timeslider.html new file mode 100644 index 000000000..67b892725 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_timeslider.html @@ -0,0 +1,174 @@ + +Results for rendering/timeslider.py + +

    Results of VisIt Regression Test - rendering/timeslider

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    timeslider000.000.00
    timeslider010.000.00
    timeslider020.000.00
    timeslider030.000.00
    timeslider040.000.00
    timeslider050.000.00
    timeslider060.000.00
    timeslider070.000.00
    timeslider080.000.00
    timeslider090.000.00
    timeslider100.000.00
    timeslider110.000.00
    timeslider120.000.00
    timeslider130.000.00
    timeslider140.000.00
    timeslider150.000.00
    timeslider160.000.00
    timeslider170.000.00
    timeslider180.000.00
    timeslider190.000.00
    timeslider200.000.00
    timeslider210.000.00
    timeslider220.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_timeslider_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_timeslider_py.html new file mode 100644 index 000000000..574068789 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_timeslider_py.html @@ -0,0 +1,162 @@ +rendering/timeslider.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  timeslider.py
    +#
    +#  Tests:      mesh        - 2D curvilinear, single domain
    +#              plots       - Pseudocolor
    +#              annotations - Time slider
    +#
    +#  Defect ID:  VisIt00003746
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Dec 4 14:39:21 PST 2003
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Mar 9 09:15:30 PDT 2005
    +#    Removed deprecated functions.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Update due to change 
    +#
    +#    Brad Whitlock, Wed Sep 28 14:12:00 PDT 2011
    +#    Move the time slider around a couple times.
    +# ----------------------------------------------------------------------------
    +
    +# Set up the annotation colors, etc.
    +a = GetAnnotationAttributes()
    +a.backgroundColor = (0, 0, 0, 255)
    +a.foregroundColor = (255, 255, 255, 255)
    +a.backgroundMode = a.Solid
    +SetAnnotationAttributes(a)
    +
    +# Open up the database and create a plot.
    +OpenDatabase(data_path("pdb_test_data/allinone00.pdb"))
    +
    +AddPlot("Pseudocolor", "mesh/a")
    +SetTimeSliderState(4)
    +DrawPlots()
    +
    +# Create a time slider
    +slider = CreateAnnotationObject("TimeSlider")
    +Test("timeslider00")
    +
    +# Turn it off
    +slider.visible = 0
    +Test("timeslider01")
    +
    +# Turn it back on and move and resize it
    +slider.visible = 1
    +slider.width = 0.60
    +slider.height = 0.1
    +slider.position = (0.2, 0.03)
    +Test("timeslider02")
    +
    +# Change the colors
    +slider.startColor = (255, 0, 0, 255)
    +slider.endColor = (255, 255, 0, 255)
    +Test("timeslider03")
    +
    +# Change the rounding mode
    +slider.rounded = 0
    +Test("timeslider04")
    +
    +# Change the shading mode
    +slider.shaded = 0
    +Test("timeslider05")
    +
    +# Change the text
    +slider.text = "The time is: $time"
    +Test("timeslider06")
    +SetTimeSliderState(14)
    +Test("timeslider07")
    +
    +# Change the text color
    +slider.shaded = 1
    +slider.rounded = 1
    +slider.useForegroundForTextColor = 0
    +slider.textColor = (0, 0, 255, 255)
    +Test("timeslider08")
    +
    +# Create a new slider
    +SetTimeSliderState(18)
    +slider2 = CreateAnnotationObject("TimeSlider","slider_obj")
    +slider2.position = (0.3, 0.8)
    +slider2.height = 0.15
    +Test("timeslider09")
    +
    +# Delete the first slider.
    +slider.Delete()
    +Test("timeslider10")
    +
    +# Create an alias to the second slider using the GetAnnotationObject call.
    +foo = GetAnnotationObject("slider_obj")
    +foo.startColor = (255, 0, 255, 255)
    +foo.endColor = (0, 255, 255, 100)
    +Test("timeslider11")
    +
    +# Delete the annotation using the alias.
    +foo.Delete()
    +Test("timeslider12")
    +
    +# Delete all plots and open a new database
    +SetTimeSliderState(0)
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "speed")
    +AddPlot("Mesh", "mesh1")
    +DrawPlots()
    +v0 = View3DAttributes()
    +v0.viewNormal = (-0.556371, 0.348221, 0.754449)
    +v0.focus = (0, 0, 0)
    +v0.viewUp = (0.185162, 0.93708, -0.295968)
    +v0.viewAngle = 30
    +v0.parallelScale = 17.3205
    +v0.nearPlane = -34.641
    +v0.farPlane = 34.641
    +v0.imagePan = (0, 0)
    +v0.imageZoom = 1.20945
    +v0.perspective = 1
    +v0.eyeAngle = 2
    +
    +v1 = View3DAttributes()
    +v1.viewNormal = (0.501427, 0.560716, 0.658915)
    +v1.focus = (0, 0, 0)
    +v1.viewUp = (-0.272851, 0.825194, -0.494577)
    +v1.viewAngle = 30
    +v1.parallelScale = 17.3205
    +v1.nearPlane = -34.641
    +v1.farPlane = 34.641
    +v1.imagePan = (0, 0)
    +v1.imageZoom = 1.52784
    +v1.perspective = 1
    +v1.eyeAngle = 2
    +
    +# Create a new slider
    +slider = CreateAnnotationObject("TimeSlider")
    +slider.position = (0.2, 0.02)
    +slider.width = 0.6
    +slider.height = 0.08
    +slider.percentComplete = 0
    +slider.timeDisplay = slider.UserSpecified
    +slider.text = "Using percentComplete manually"
    +testnum = 13
    +nsteps = 10
    +moves = {4 : (0.02, 0.5), 8 : (0.2, 0.9)}
    +# Set the percentComplete manually
    +for i in range(nsteps):
    +    t = float(i) / float(nsteps - 1)
    +    slider.percentComplete = t * 100.
    +    if i in list(moves.keys()):
    +        slider.position = moves[i]
    +    v = v0 * (1. - t) + v1 * t
    +    SetView3D(v)
    +    Test("timeslider%02d" % testnum)
    +    testnum = testnum + 1
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_transparency.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_transparency.html new file mode 100644 index 000000000..9b80dd3d6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_transparency.html @@ -0,0 +1,132 @@ + +Results for rendering/transparency.py + +

    Results of VisIt Regression Test - rendering/transparency

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    transparency_010.000.00
    transparency_020.000.00
    transparency_030.000.00
    transparency_040.000.00
    transparency_050.000.00
    transparency_060.000.00
    transparency_070.000.00
    transparency_080.000.00
    transparency_090.000.00
    transparency_100.000.00
    transparency_110.000.00
    transparency_120.000.00
    transparency_130.000.00
    transparency_140.000.00
    transparency_150.000.00
    transparency_160.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_transparency_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_transparency_py.html new file mode 100644 index 000000000..efcb5e8a1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_transparency_py.html @@ -0,0 +1,315 @@ +rendering/transparency.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  transparency.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - pc, subset
    +#              operators - none
    +#              selection - none
    +#
    +#  Defect ID:  '2784 + general transparency testing + '7772 + '7773 + '7879
    +#
    +#  Programmer: Hank Childs
    +#  Date:       November 20, 2002
    +#
    +# Modifications:
    +#   Brad Whitlock, Thu Dec 12 09:56:02 PDT 2002
    +#   I made the test use the new SubsetAttributes.
    +#
    +#   Brad Whitlock, Mon Feb 24 10:36:21 PDT 2003
    +#   I made it use the multiple colors coloring mode for the Subset attributes
    +#   instead of the single color coloring mode.
    +#
    +#   Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#   Remove compound var name from Subset plots.
    +#
    +#   Hank Childs, Thu May  6 09:34:27 PDT 2004
    +#   Remove out of date comments regarding test that was recently fixed ('4878).
    +#
    +#   Hank Childs, Mon Feb 12 14:06:10 PST 2007
    +#   Add tests for rectilinear transparency ('7772 & '7773).
    +#
    +#   Hank Childs, Thu Mar  8 11:13:49 PST 2007
    +#   Test transparency after scaling ('7879) ... that the scale factor in the
    +#   transparency actor gets set back to 1.
    +#
    +#   Hank Childs, Wed Dec 31 10:21:31 PST 2008
    +#   Add a test for multi-block rectilinear grids.
    +#
    +#   Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#   Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#   Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#   Use FilledBoundary plot for materials instead of Subset.
    +#
    +#   Eric Brugger, Fri Aug  9 13:45:49 PDT 2024
    +#   Added a test of combining opaque and transparent plots from
    +#   multi_ucd3d.silo.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("FilledBoundary", "mat1")
    +DrawPlots()
    +
    +fbAtts = FilledBoundaryAttributes()
    +fbAtts.opacity = 0.9
    +fbAtts.colorType = fbAtts.ColorByMultipleColors
    +SetPlotOptions(fbAtts)
    +
    +# Test that the normals stick around when we slightly drop the transparency
    +# ('2784)
    +Test("transparency_01")
    +
    +
    +# Test that it still looks good when we crank the transparency down.
    +fbAtts.opacity = 0.4
    +SetPlotOptions(fbAtts)
    +
    +Test("transparency_02")
    +
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Box")
    +box = BoxAttributes()
    +box.minx = -4
    +box.maxx = +2
    +box.miny = -6
    +box.maxy = 0
    +box.minz = -4
    +box.maxz = +4
    +SetOperatorOptions(box)
    +DrawPlots()
    +
    +# Make sure that it still looks good when we have solid geometry in there.
    +Test("transparency_03")
    +
    +pcAtts = PseudocolorAttributes()
    +pcAtts.SetOpacityType(pcAtts.Constant)
    +pcAtts.opacity = 0.75
    +SetPlotOptions(pcAtts)
    +
    +# Test having two transparent plots
    +Test("transparency_04")
    +
    +
    +AddPlot("Pseudocolor", "t")
    +AddOperator("Box")
    +box.minx = 2
    +box.maxx = 10
    +SetOperatorOptions(box)
    +DrawPlots()
    +
    +# Test having two transparent plots + plus one solid geometry plot.
    +Test("transparency_05")
    +
    +
    +SetPlotOptions(pcAtts)
    +
    +# Test having three transparent plots, one with zonal centering.  Note:
    +# this is testing whether or not we can encode zonal-normals as nodal-normals
    +# and have it play well with other plots that have legitimate nodal-normals.
    +Test("transparency_06")
    +
    +# Test that it can do transparency correctly for rectilinear grids ('7772)
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +pcAtts = PseudocolorAttributes()
    +pcAtts.SetOpacityType(pcAtts.Constant)
    +pcAtts.opacity = 0.75
    +SetPlotOptions(pcAtts)
    +DrawPlots()
    +Test("transparency_07")
    +DeleteAllPlots()
    +
    +# Test that updates transparency correctly for rectilinear grids ('7773)
    +# To test this, we must draw a non-transparent grid first.
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +Test("transparency_08")
    +pcAtts.SetOpacityType(pcAtts.Constant)
    +pcAtts.opacity = 0.75
    +SetPlotOptions(pcAtts)
    +DrawPlots()
    +Test("transparency_09")
    +
    +DeleteAllPlots()
    +AddPlot("Histogram", "d")
    +DrawPlots()
    +Test("transparency_10")
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "u")
    +pcAtts.SetOpacityType(pcAtts.Constant)
    +pcAtts.opacity = 0.75
    +SetPlotOptions(pcAtts)
    +DrawPlots()
    +Test("transparency_11")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +ResetView()
    +Test("transparency_12")
    +pcAtts.SetOpacityType(pcAtts.Constant)
    +pcAtts.opacity = 0.25
    +SetPlotOptions(pcAtts)
    +Test("transparency_13")
    +
    +# Test transparency with 3d multi block data
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_curv3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +pcAtts.SetOpacityType(pcAtts.Constant)
    +pcAtts.opacity = 0.25
    +SetPlotOptions(pcAtts)
    +DrawPlots()
    +v =GetView3D()
    +v.viewNormal = (0.432843, 0.303466, 0.848855)
    +v.focus = (0, 2.5, 15)
    +v.viewUp = (-0.0787945, 0.950767, -0.299721)
    +v.viewAngle = 30
    +v.parallelScale = 16.0078
    +v.nearPlane = -32.0156
    +v.farPlane = 32.0156
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 2.5, 15)
    +v.axis3DScaleFlag = 0
    +v.axis3DScales = (1, 1, 1)
    +v.shear = (0, 0, 1)
    +v.windowValid = 1
    +SetView3D(v)
    +Test("transparency_14")
    +
    +DeleteAllPlots()
    +
    +# Test both opaque and transparent plots with 3d multi block data
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Subset", "mesh1", 1, 1)
    +s = SubsetAttributes()
    +s.colorType = s.ColorBySingleColor
    +s.singleColor = (153, 153, 153, 255)
    +SetPlotOptions(s)
    +AddOperator("Slice", 1)
    +SliceAtts = SliceAttributes()
    +SliceAtts.originType = SliceAtts.Intercept
    +SliceAtts.originIntercept = 2.5
    +SliceAtts.project2d = 0
    +SetOperatorOptions(SliceAtts, 0, 1)
    +
    +AddPlot("Subset", "domains(mesh1)", 1, 0)
    +s = SubsetAttributes()
    +s.opacity = 0.403922
    +SetPlotOptions(s)
    +
    +DrawPlots()
    +v = GetView3D()
    +v.viewNormal = (0.281187, 0.666153, 0.690778)
    +v.focus = (0, 2.5, 10)
    +v.viewUp = (-0.285935, 0.745284, -0.602323)
    +v.viewAngle = 30
    +v.parallelScale = 11.4564
    +v.nearPlane = -22.9129
    +v.farPlane = 22.9129
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 2.5, 10)
    +v.axis3DScaleFlag = 0
    +v.axis3DScales = (1, 1, 1)
    +v.shear = (0, 0, 1)
    +v.windowValid = 1
    +SetView3D(v)
    +
    +Test("transparency_15")
    +
    +DeleteAllPlots()
    +
    +# Test with 3d multi block data
    +OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +DefineScalarExpression("x", "coord(mesh1)[0]")
    +DefineScalarExpression("y", "coord(mesh1)[1]")
    +DefineScalarExpression("z", "coord(mesh1)[2]")
    +DefineScalarExpression("radial", "sqrt((x-0.5)*(x-0.5)+(y-0.5)*(y-0.5)+(z-0.5)*(z-0.5))")
    +DefineScalarExpression("const", "nodal_constant(<mesh1>, 2.0)")
    +
    +AddPlot("Pseudocolor", "const")
    +pc = PseudocolorAttributes()
    +pc.lightingFlag = 0
    +pc.opacityType = pc.Constant
    +pc.opacity = 0.4
    +SetPlotOptions(pc)
    +
    +AddOperator("Isovolume", 1)
    +isovol = IsovolumeAttributes()
    +isovol.lbound = 0
    +isovol.ubound = 0.4
    +isovol.variable = "radial"
    +SetOperatorOptions(isovol, 0, 1)
    +
    +AddOperator("Slice", 1)
    +slice = SliceAttributes()
    +slice.originType = slice.Intercept
    +slice.originIntercept = 0.7
    +slice.axisType = slice.XAxis
    +slice.project2d = 0
    +SetOperatorOptions(slice, 1, 0)
    +DrawPlots()
    +
    +AddPlot("Pseudocolor", "const", 1, 1)
    +pc.opacity = 0.7
    +SetPlotOptions(pc)
    +slice.originIntercept = 0.5
    +SetOperatorOptions(slice, 1, 0)
    +DrawPlots()
    +
    +AddPlot("Pseudocolor", "const", 1, 1)
    +pc.opacityType = pc.FullyOpaque
    +SetPlotOptions(pc)
    +slice.originIntercept = 0.3
    +SetOperatorOptions(slice, 1, 0)
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.786444, 0.436457, 0.437048)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.599183, 0.367316, 0.711378)
    +v.viewAngle = 30
    +v.parallelScale = 0.866025
    +v.nearPlane = -1.73205
    +v.farPlane = 1.73205
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0.5, 0.5, 0.5)
    +v.axis3DScaleFlag = 0
    +v.axis3DScales = (1, 1, 1)
    +v.shear = (0, 0, 1)
    +v.windowValid = 1
    +SetView3D(v)
    +
    +Test("transparency_16")
    +
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_view.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_view.html new file mode 100644 index 000000000..5ebe6726c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_view.html @@ -0,0 +1,249 @@ + +Results for rendering/view.py + +

    Results of VisIt Regression Test - rendering/view

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    view_010.000.00
    Test degenerate 2D views
    view_020.000.00
    view_030.000.00
    view_040.000.00
    view_050.000.00
    Test degenerate curve views
    view_060.000.00
    view_070.000.00
    view_080.000.00
    view_090.000.00
    Test zoom in on mesh lines
    view_100.000.00
    view_110.000.00
    view_120.000.00
    view_130.000.00
    Test actual extents
    view_140.000.00
    view_150.000.00
    view_160.000.00
    view_170.000.00
    view_180.000.00
    view_190.000.00
    Test 3D plots with degenerate extents
    view_200.000.00
    view_210.000.00
    view_220.000.00
    Test interpolation of View3DAttributes
    view_230.000.00
    view_240.000.00
    view_250.000.00
    view_260.000.00
    view_270.000.00
    Test interpolation of View2DAttributes
    view_280.000.00
    view_290.000.00
    view_300.000.00
    view_310.000.00
    view_320.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_viewChange.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_viewChange.html new file mode 100644 index 000000000..a60e61599 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_viewChange.html @@ -0,0 +1,222 @@ + +Results for rendering/viewChange.py + +

    Results of VisIt Regression Test - rendering/viewChange

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Testing view changes with slice flip
    ViewChangeSliceFlip0.000.00
    Testing view changes with fullframe
    ViewChangeFullFrame_010.000.00
    ViewChangeFullFrame_020.000.00
    ViewChangeFullFrame_030.000.00
    ViewChangeFullFrame_040.000.00
    ViewChangeFullFrame_050.000.00
    ViewChangeFullFrame_060.000.00
    ViewChangeFullFrame_070.000.00
    Testing view changes with fullframe and glyphed plots
    ViewChangeAutoFF_000.000.00
    ViewChangeAutoFF_010.000.00
    ViewChangeAutoFF_020.000.00
    ViewChangeAutoFF_030.000.00
    ViewChangeAutoFF_040.000.00
    ViewChangeAutoFF_050.000.00
    Testing view changes with log scaling of 2D plots
    ViewChangeLogScale2D_000.000.00
    ViewChangeLogScale2D_010.000.00
    ViewChangeLogScale2D_020.000.00
    Testing view changes with log scaling of curves
    ViewChangeLogScaleCurves_000.000.00
    ViewChangeLogScaleCurves_010.000.00
    ViewChangeLogScaleCurves_020.000.00
    ViewChangeLogScaleCurves_030.000.00
    ViewChangeLogScaleCurves_040.000.00
    ViewChangeLogScaleCurves_050.000.00
    largeValueLineout0.000.00
    largeValueLineout_logScaling0.000.00
    largeValueMeshCurve0.000.00
    largeValueMeshCurve_logScaling0.000.00
    Testing view changes with fullframe and label plots
    ViewChangeFullFrameWithLabels_000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_viewChange_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_viewChange_py.html new file mode 100644 index 000000000..83b1b583b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_viewChange_py.html @@ -0,0 +1,450 @@ +rendering/viewChange.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  viewChange.py
    +#
    +#  Tests:      mesh      - structured grid 
    +#              plots     - pc
    +#              operators - slice
    +#              selection - none
    +#
    +#  Defect ID:  VisIt00003350, VisIt000032263
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       May 14, 2003 
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Tue Jul  8 21:04:45 PDT 2003 
    +#    Changed ViewChangeSliceFlip, to use Flip, then change so that
    +#    image remains the same .. necessary do to slice changes.
    +#
    +#    Kathleen Bonnell, Wed Jul 16 18:07:33 PDT 2003 
    +#    Added more full-frame tests: for Histogram plot, transparent plot,
    +#    and plots with ViewExtentsType set to 'actual'.
    +#
    +#    Mark C. Miller, Tue Mar 14 07:54:20 PST 2006
    +#    Changed how full-frame is turned on/off
    +#
    +#    Brad Whitlock, Wed Jul 26 14:31:57 PST 2006
    +#    Added testing for auto fullframe of some glyphed plots.
    +#
    +#    Kathleen Bonnell, Tue Mar  3 13:20:57 PST 2009
    +#    Added testing for log-scaling of curves and 2d plots.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Wed Oct 21 11:19:52 PDT 2020
    +#    Added TestLargeValueLineoutWithLogScaling
    +#
    +#    Alister Maguire, Mon May 24 12:50:20 PDT 2021
    +#    Added TestViewChangeFullFrameWithLabels.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def InitAnnotation():
    +    # Turn off most annotation
    +    a = GetAnnotationAttributes()
    +    a.axes2D.visible = 1
    +    a.axes2D.xAxis.label.visible = 0
    +    a.axes2D.yAxis.label.visible = 0
    +    a.axes2D.xAxis.title.visible = 0
    +    a.axes2D.yAxis.title.visible = 0
    +    a.axes3D.visible = 0
    +    a.axes3D.triadFlag = 0
    +    a.axes3D.bboxFlag = 0
    +    a.userInfoFlag = 0
    +    a.databaseInfoFlag = 0
    +    a.legendInfoFlag = 0
    +    a.backgroundMode = 0
    +    a.foregroundColor = (0, 0, 0, 255)
    +    a.backgroundColor = (255, 255, 255, 255)
    +    SetAnnotationAttributes(a)
    +
    +
    +def TestViewChangeSliceFlip():
    +    TestSection("Testing view changes with slice flip")
    +    OpenDatabase(silo_data_path("wave0000.silo"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    AddOperator("Slice")
    +    slice = SliceAttributes()
    +    slice.project2d = 1
    +    slice.axisType = slice.ZAxis
    +    slice.flip = 1
    +    SetOperatorOptions(slice)
    +    DrawPlots()
    +
    +    # We want to capture the image after the flip, to ensure
    +    # the frame and axes are still drawn correctly.
    +    slice.flip = 0
    +    SetOperatorOptions(slice)
    +
    +    Test("ViewChangeSliceFlip")
    +    DeleteAllPlots()
    +
    +def TestViewChangeFullFrame():
    +    TestSection("Testing view changes with fullframe")
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    # We want to capture the image after toggling full frame mode, 
    +    # to ensure frame and axes are still drawn correctly.
    +
    +    # Turn full frame mode ON
    +    v = GetView2D()
    +    v.fullFrameActivationMode = v.On
    +    SetView2D(v)
    +    Test("ViewChangeFullFrame_01")
    +
    +    # Does a transparent actor maintain the full frame mode? 
    +    p = PseudocolorAttributes()
    +    p.SetOpacityType(p.Constant)
    +    p.opacity = 0.5;
    +    SetPlotOptions(p);
    +    Test("ViewChangeFullFrame_02")
    +
    +
    +    p.SetOpacityType(p.FullyOpaque)
    +    SetPlotOptions(p)
    +    # Turn full frame mode OFF
    +    ToggleFullFrameMode()
    +    AddOperator("Clip")
    +    c = ClipAttributes()
    +    c.plane1Origin = (0, 3, 0)
    +    c.plane1Normal = (0, -1, 0)
    +    SetOperatorOptions(c)
    +    DrawPlots()
    +    SetViewExtentsType("actual")
    +    # Turn full frame mode ON
    +    ToggleFullFrameMode()
    +    Test("ViewChangeFullFrame_03")
    +    # Turn full frame mode OFF
    +    ToggleFullFrameMode()
    +    Test("ViewChangeFullFrame_04")
    +    # Turn full frame mode ON
    +    ToggleFullFrameMode()
    +    SetViewExtentsType("original")
    +    Test("ViewChangeFullFrame_05")
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Histogram", "u")
    +    DrawPlots()
    +    ResetView()
    +    Test("ViewChangeFullFrame_06")
    +    h = HistogramAttributes()
    +    h.numBins = 5
    +    SetPlotOptions(h)
    +    Test("ViewChangeFullFrame_07")
    +
    +    # cleanup for next test
    +    v = GetView2D()
    +    v.fullFrameActivationMode = v.Auto
    +    SetView2D(v)
    +
    +    DeleteAllPlots()
    +
    +def TestViewChangeFullFrameWithGlyphs():
    +    TestSection("Testing view changes with fullframe and glyphed plots")
    +    OpenDatabase(silo_data_path("fullframe.silo"))
    +
    +    AddPlot("Mesh", "fullframe")
    +    DrawPlots()
    +    ResetView()
    +    Test("ViewChangeAutoFF_00")
    +
    +    AddPlot("Vector", "vec")
    +    v = VectorAttributes()
    +    v.nVectors = 800
    +    SetPlotOptions(v)
    +    DrawPlots()
    +    Test("ViewChangeAutoFF_01")
    +
    +    DeleteAllPlots()
    +
    +    # Make sure it kicks in when the vector plot is the only plot.
    +    AddPlot("Vector", "vec")
    +    v = VectorAttributes()
    +    v.nVectors = 800
    +    SetPlotOptions(v)
    +    DrawPlots()
    +    Test("ViewChangeAutoFF_02")
    +
    +    DeleteAllPlots()
    +
    +    # Test a Pseudocolor plot of point mesh data
    +    AddPlot("Pseudocolor", "rad")
    +    p = PseudocolorAttributes()
    +    p.pointType = p.Box
    +    p.pointSize = 5e+8
    +    SetPlotOptions(p)
    +    DrawPlots()
    +    Test("ViewChangeAutoFF_03")
    +
    +    p.pointType = p.Axis
    +    SetPlotOptions(p)
    +    Test("ViewChangeAutoFF_04")
    +
    +    DeleteAllPlots()
    +
    +    # Test a Mesh plot of a point mesh
    +    AddPlot("Mesh", "pointmesh")
    +    m = MeshAttributes()
    +    m.pointType = m.Box
    +    m.pointSize = 5e+8
    +    SetPlotOptions(m)
    +    DrawPlots()
    +    Test("ViewChangeAutoFF_05")
    +    DeleteAllPlots()
    +
    +def TestViewChangeLogScaling2D():
    +    TestSection("Testing view changes with log scaling of 2D plots")
    +
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    ResetView()
    +
    +    #7944  ensure that changing curve view scaling does not affect 2D.
    +    v = GetViewCurve()
    +    v.domainScale = v.LOG
    +    v.rangeScale = v.LOG
    +    SetViewCurve(v)
    +
    +    Test("ViewChangeLogScale2D_00")
    +
    +    #8563  using view window coords to put a plot into a range suitable 
    +    #      for log-scaling
    +
    +    v = GetView2D()
    +    v.fullFrameActivationMode = v.Off
    +    wc = v.windowCoords
    +    v.windowCoords = (1e-13, 0.25, wc[2], wc[3])
    +    SetView2D(v)
    +
    +    Test("ViewChangeLogScale2D_01")
    +    v.xScale = v.LOG
    +    SetView2D(v)
    +    Test("ViewChangeLogScale2D_02")
    +
    +    #clean up for next test
    +    v = GetView2D()
    +    v.xScale = v.LINEAR
    +    v.yScale = v.LINEAR
    +    SetView2D(v)
    +    ResetView()
    +
    +    v = GetViewCurve()
    +    v.domainScale = v.LINEAR
    +    v.rangeScale = v.LINEAR
    +    SetViewCurve(v)
    +    DeleteAllPlots()
    +
    +def TestViewChangeLogScalingCurves():
    +    TestSection("Testing view changes with log scaling of curves")
    +    # '8880:  Add curve plot.  Set scaling to log-log.  Add another curve plot.
    +    OpenDatabase(data_path("curve_test_data/distribution.ultra"))
    +
    +    AddPlot("Curve", "Laplace Distribution")
    +    curveAtts = CurveAttributes()
    +    curveAtts.curveColorSource = curveAtts.Custom
    +    curveAtts.curveColor = (255, 0, 0, 255)
    +    SetPlotOptions(curveAtts)
    +
    +    # For log scaling to work with these curves, we need to transform
    +    # first.
    +
    +    trans = TransformAttributes()
    +    trans.doTranslate = 1
    +    trans.translateX = 30
    +    trans.translateY = 10
    +    SetDefaultOperatorOptions(trans)
    +    AddOperator("Transform")
    +    DrawPlots()
    +    ResetView()
    +    Test("ViewChangeLogScaleCurves_00")
    +
    +    v = GetViewCurve()
    +    v.domainScale = v.LOG
    +    v.rangeScale  = v.LOG
    +    SetViewCurve(v)
    +
    +    Test("ViewChangeLogScaleCurves_01")
    +
    +    AddPlot("Curve", "Log Normal Distribution")
    +    curveAtts.curveColor = (0, 255, 0, 255)
    +    SetPlotOptions(curveAtts)
    +    AddOperator("Transform")
    +    DrawPlots()
    +    Test("ViewChangeLogScaleCurves_02")
    +
    +    AddPlot("Curve", "Exponential Distribution")
    +    curveAtts.curveColor = (0, 0, 255, 255)
    +    SetPlotOptions(curveAtts)
    +    AddOperator("Transform")
    +    DrawPlots()
    +    Test("ViewChangeLogScaleCurves_03")
    +
    +    v = GetViewCurve()
    +    v.domainScale = v.LINEAR
    +    v.rangeScale  = v.LINEAR
    +    SetViewCurve(v)
    +
    +    DeleteAllPlots()
    +
    +    #8660  add log scaling to a curve put in an appropriate range via the
    +    #      box operator
    +    OpenDatabase(data_path("curve_test_data/c063.curve"))
    +
    +    AddPlot("Curve", "flat")
    +    curveAtts.curveColor = (0, 255, 255, 255)
    +    SetPlotOptions(curveAtts)
    +    AddPlot("Curve", "going_down")
    +    curveAtts.curveColor = (255, 0, 255, 255)
    +    SetPlotOptions(curveAtts)
    +    AddPlot("Curve", "going_up")
    +    curveAtts.curveColor = (255, 255, 0, 255)
    +    SetPlotOptions(curveAtts)
    +    AddPlot("Curve", "parabolic")
    +    curveAtts.curveColor = (255, 135, 0, 255)
    +    SetPlotOptions(curveAtts)
    +
    +    DrawPlots()
    +
    +    SetActivePlots((0, 1, 2, 3))
    +    AddOperator("Box")
    +    b = BoxAttributes()
    +    b.minx = 0.4
    +    b.maxx = 0.8
    +    b.miny = 0.000001
    +    b.maxy = 10000
    +    SetOperatorOptions(b)
    +    DrawPlots()
    +
    +    SetViewExtentsType("actual")
    +
    +    Test("ViewChangeLogScaleCurves_04")
    +
    +    v = GetViewCurve()
    +    v.domainScale = v.LOG
    +    v.rangeScale  = v.LOG
    +    SetViewCurve(v)
    +
    +    Test("ViewChangeLogScaleCurves_05")
    +
    +    #clean up for next test
    +    v = GetViewCurve()
    +    v.domainScale = v.LINEAR
    +    v.rangeScale  = v.LINEAR
    +    SetViewCurve(v)
    +    ResetView()
    +    DeleteAllPlots()
    +
    +def TestLargeValueLineoutWithLogScaling():
    +    # github bug #5066
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +    DefineScalarExpression("tlarge", "t*1e19")
    +    AddPlot("Pseudocolor", "tlarge")
    +    DrawPlots()
    +    Lineout((0.5, 1.5, 0), (0.5, 0, 0))
    +    SetActiveWindow(2)
    +    # Instead of getting *default* curve plot atts,
    +    # get *current* plot's atts using `1` arg. This
    +    # is to change *only* the attrs we want to change.
    +    curveAtts = CurveAttributes(1)
    +    curveAtts.lineWidth = 3
    +    SetPlotOptions(curveAtts)
    +    Test("largeValueLineout")
    +
    +    # save the curve as VTK so Mesh plot and 2D view can be tested.
    +    oldSwa = SaveWindowAttributes()
    +    swa = SaveWindowAttributes()
    +    swa.fileName="lineoutRes"
    +    swa.family=0
    +    swa.format=swa.VTK
    +    # need to ensure this is set (not the default on Windows)
    +    swa.outputToCurrentDirectory=1
    +    SetSaveWindowAttributes(swa)
    +    if TestEnv.params["scalable"] == 0:
    +        SaveWindow()
    +    else:
    +        # Turn of SR mode for the saveWindow, then turn it back on
    +        ra = GetRenderingAttributes()
    +        srm = ra.scalableActivationMode
    +        ra.scalableActivationMode = ra.Never
    +        SetRenderingAttributes(ra)
    +        SaveWindow()
    +        ra = GetRenderingAttributes()
    +        ra.scalableActivationMode = srm
    +        SetRenderingAttributes(ra)
    +    # restore previous settings
    +    SetSaveWindowAttributes(oldSwa)
    +
    +    v = GetViewCurve()
    +    v.rangeScale  = v.LOG
    +    SetViewCurve(v)
    +    Test("largeValueLineout_logScaling")
    +
    +    v = GetViewCurve()
    +    v.rangeScale  = v.LINEAR
    +    SetViewCurve(v)
    +
    +    DeleteAllPlots()
    +    OpenDatabase("lineoutRes.vtk")
    +    AddPlot("Mesh", "mesh")
    +    meshAtts = MeshAttributes()
    +    meshAtts.lineWidth=3
    +    SetPlotOptions(meshAtts)
    +    DrawPlots()
    +    Test("largeValueMeshCurve")
    +
    +    v = GetView2D()
    +    v.yScale = v.LOG
    +    SetView2D(v)
    +    Test("largeValueMeshCurve_logScaling")
    +    v.yScale = v.LINEAR
    +    SetView2D(v)
    +    DeleteWindow()
    +    DeleteAllPlots()
    +
    +def TestViewChangeFullFrameWithLabels():
    +    TestSection("Testing view changes with fullframe and label plots")
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Mesh", "curvmesh2d")
    +    AddPlot("Label", "curvmesh2d")
    +
    +    View2DAtts = View2DAttributes()
    +    View2DAtts.windowCoords = (-4.69855, 4.88342, 0.225185, 4.93329)
    +    View2DAtts.fullFrameActivationMode = View2DAtts.On
    +    SetView2D(View2DAtts)
    +
    +    DrawPlots()
    +
    +    Test("ViewChangeFullFrameWithLabels_00")
    +
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(silo_data_path("curv2d.silo"))
    +
    +
    +
    +def ViewChangeMain():
    +    InitAnnotation()
    +    TestViewChangeSliceFlip()
    +    TestViewChangeFullFrame()
    +    TestViewChangeFullFrameWithGlyphs()
    +    TestViewChangeLogScaling2D()
    +    TestViewChangeLogScalingCurves()
    +    TestLargeValueLineoutWithLogScaling()
    +    TestViewChangeFullFrameWithLabels()
    +
    +# Call the main function
    +ViewChangeMain()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_view_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_view_py.html new file mode 100644 index 000000000..2e40e27eb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_view_py.html @@ -0,0 +1,382 @@ +rendering/view.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  view.py
    +#
    +#  Tests:      mesh      - 2D structured, single domain 
    +#                        - 3D unstructured, multiple domains
    +#                        - 3D rectilinear, single domain
    +#                        - Curve
    +#              plots     - pseudocolor, curve, mesh
    +#              operators - none
    +#              selection - none
    +#
    +#  Defect ID:  VisIt00003915, VisIt00004247, VisIt00003398, VisIt00004896,
    +#              VisIt00005337
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       November 18, 2003 
    +#
    +#  Modifications:
    +#    Eric Brugger, Fri Apr 23 08:54:22 PDT 2004
    +#    Add a test to make sure that we can set the 3d view before any plots
    +#    are created.  Add tests to make sure that we can reset and recenter
    +#    the view when no plots are present.
    +#
    +#    Eric Brugger, Thu May 13 10:26:02 PDT 2004
    +#    Add a test to make sure switching view extents type to actual results
    +#    in new plots being centered after deleting all the existing plots.
    +#
    +#    Eric Brugger, Mon May 24 11:21:04 PDT 2004
    +#    Add a test with small extents.
    +#
    +#    Eric Brugger, Tue May 25 15:17:18 PDT 2004
    +#    Modify the test for small extents, and add more small and large extents
    +#    tests.
    +#
    +#    Eric Brugger, Mon Sep 20 13:37:52 PDT 2004
    +#    Add several tests for combining 3d plots with degenerate extents.
    +#
    +#    Brad Whitlock, Thu Mar 15 11:31:26 PDT 2007
    +#    Test that the bindings for 2D,3D views can still interpolate.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +# Test setting the 3d view before creating the first plot.
    +v = View3DAttributes()
    +v.imagePan = (0.2, 0.2)
    +v.imageZoom = 1.2
    +v.viewNormal = (-0.5, 0.707107, 0.5)
    +v.viewUp = (0.5, 0.707107, -0.5)
    +SetView3D(v)
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +Test("view_01")
    +
    +DeleteAllPlots()
    +
    +# Create a psuedocolor plot and test various degenerate 2d views.
    +TestSection("Test degenerate 2D views")
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +v = View2DAttributes()
    +v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +
    +v.windowCoords = (-4.68395, 4.89802, 2.5, 2.5)
    +SetView2D(v)
    +Test("view_02")
    +
    +v.windowCoords = (0.5, 0.5, 0.216897, 4.925)
    +SetView2D(v)
    +Test("view_03")
    +
    +v.windowCoords = (0.5, 0.5, 2.5, 2.5)
    +SetView2D(v)
    +Test("view_04")
    +
    +v.windowCoords = (0, 0, 0, 0)
    +SetView2D(v)
    +Test("view_05")
    +
    +DeleteAllPlots()
    +
    +# Create several curve plots and test various degenerate curve views.
    +TestSection("Test degenerate curve views")
    +OpenDatabase(data_path("curve_test_data/c051.curve"))
    +
    +
    +AddPlot("Curve", "flat")
    +curveAtts = CurveAttributes()
    +curveAtts.curveColorSource = curveAtts.Custom
    +curveAtts.curveColor = (255, 0, 0, 255)
    +SetPlotOptions(curveAtts)
    +AddPlot("Curve", "going_up")
    +curveAtts.curveColor = (0, 255, 0, 255)
    +SetPlotOptions(curveAtts)
    +AddPlot("Curve", "going_down")
    +curveAtts.curveColor = (0, 0, 255, 255)
    +SetPlotOptions(curveAtts)
    +AddPlot("Curve", "parabolic")
    +curveAtts.curveColor = (0, 255, 255, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +
    +v = ViewCurveAttributes()
    +v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +
    +v.domainCoords = (0., 1.)
    +v.rangeCoords = (0.3, 0.3)
    +SetViewCurve(v)
    +Test("view_06")
    +
    +v.domainCoords = (0.6, 0.6)
    +v.rangeCoords = (0., 1.)
    +SetViewCurve(v)
    +Test("view_07")
    +
    +v.domainCoords = (0.6, 0.6)
    +v.rangeCoords = (0.3, 0.3)
    +SetViewCurve(v)
    +Test("view_08")
    +
    +v.domainCoords = (0., 0.)
    +v.rangeCoords = (0., 0.)
    +SetViewCurve(v)
    +Test("view_09")
    +
    +DeleteAllPlots()
    +
    +# Create a pseudocolor and mesh plot and zoom in on a sharp edge to
    +# verify that the mesh lines are not bleeding through the surface.
    +TestSection("Test zoom in on mesh lines")
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +
    +AddPlot("Pseudocolor", "u")
    +AddPlot("Mesh", "mesh1")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.335187, -0.557088, 0.759804)
    +v.focus = (0, 2.5, 10)
    +v.viewUp = (-0.327416, 0.825068, 0.460501)
    +v.viewAngle = 30
    +v.parallelScale = 11.4564
    +v.nearPlane = -22.9129
    +v.farPlane = 22.9129
    +v.imagePan = (-0.136785, -0.172112)
    +v.imageZoom = 20.125
    +v.perspective = 1
    +SetView3D(v)
    +Test("view_10")
    +
    +# Test resetting and recentering the view when no plot is present.
    +DeleteAllPlots()
    +
    +ResetView()
    +
    +AddPlot("Pseudocolor", "u")
    +AddPlot("Mesh", "mesh1")
    +DrawPlots()
    +Test("view_11")
    +
    +v.viewNormal = (0.393726, -0.416942, 0.819231)
    +v.focus = (0, 5., 10)
    +v.viewUp = (-0.603958, 0.554522, 0.572486)
    +v.viewAngle = 30
    +v.parallelScale = 11.4564
    +v.nearPlane = -22.9129
    +v.farPlane = 22.9129
    +v.imagePan = (0.05, 0.)
    +v.imageZoom = 2.
    +v.perspective = 1
    +SetView3D(v)
    +Test("view_12")
    +
    +DeleteAllPlots()
    +
    +RecenterView()
    +
    +AddPlot("Pseudocolor", "u")
    +AddPlot("Mesh", "mesh1")
    +DrawPlots()
    +Test("view_13")
    +
    +# Test that setting view extents type to actual works.  Test that
    +# switching view extents type to actual results in new plots being
    +# centered after deleting all the existing plots.
    +TestSection("Test actual extents")
    +DeleteAllPlots()
    +
    +ResetView()
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Clip")
    +DrawPlots()
    +SetViewExtentsType("actual")
    +Test("view_14")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "p")
    +DrawPlots()
    +Test("view_15")
    +
    +# Test setting the view with small extents.
    +DeleteAllPlots()
    +
    +ResetView()
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Transform")
    +scale = TransformAttributes()
    +scale.doScale = 1
    +scale.scaleX = 1.0e-21
    +scale.scaleY = 1.0e-21
    +scale.scaleZ = 1.0e-21
    +SetOperatorOptions(scale)
    +DrawPlots()
    +Test("view_16")
    +
    +ChangeActivePlotsVar("t")
    +Test("view_17")
    +
    +# Test setting the view with large extents.
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Transform")
    +scale = TransformAttributes()
    +scale.doScale = 1
    +scale.scaleX = 1.0e17
    +scale.scaleY = 1.0e17
    +scale.scaleZ = 1.0e17
    +SetOperatorOptions(scale)
    +DrawPlots()
    +Test("view_18")
    +
    +ChangeActivePlotsVar("t")
    +Test("view_19")
    +
    +# Test various combinations of 3d plots with degenerate extents.
    +TestSection("Test 3D plots with degenerate extents")
    +DeleteAllPlots()
    +
    +ResetView()
    +
    +OpenDatabase(data_path("vtk_test_data/rect_flat_i.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +OpenDatabase(data_path("vtk_test_data/rect_flat_j.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +Test("view_20")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(data_path("vtk_test_data/rect_flat_j.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +OpenDatabase(data_path("vtk_test_data/rect_flat_k.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +Test("view_21")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(data_path("vtk_test_data/rect_flat_k.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +OpenDatabase(data_path("vtk_test_data/rect_flat_i.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +Test("view_22")
    +DeleteAllPlots()
    +
    +
    +#
    +# Test that the View3DAttributes object's Python binding still has the
    +# ability to interpolate the view.
    +#
    +TestSection("Test interpolation of View3DAttributes")
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "speed")
    +DrawPlots()
    +
    +v0 = View3DAttributes()
    +v0.viewNormal = (0.416973, 0.447113, 0.791343)
    +v0.focus = (0, 0, 0)
    +v0.viewUp = (-0.23799, 0.893974, -0.379699)
    +v0.viewAngle = 30
    +v0.parallelScale = 17.3205
    +v0.nearPlane = -34.641
    +v0.farPlane = 34.641
    +v0.imagePan = (0, 0)
    +v0.imageZoom = 1
    +v0.perspective = 1
    +v0.eyeAngle = 2
    +v0.centerOfRotationSet = 0
    +v0.centerOfRotation = (0, 0, 0)
    +
    +v1 = View3DAttributes()
    +v1.viewNormal = (0.416973, 0.447113, 0.791343)
    +v1.focus = (0, 0, 0)
    +v1.viewUp = (-0.23799, 0.893974, -0.379699)
    +v1.viewAngle = 30
    +v1.parallelScale = 17.3205
    +v1.nearPlane = -34.641
    +v1.farPlane = 34.641
    +v1.imagePan = (0.160832, 0.126504)
    +v1.imageZoom = 3.95662
    +v1.perspective = 1
    +v1.eyeAngle = 2
    +v1.centerOfRotationSet = 0
    +v1.centerOfRotation = (0, 0, 0)
    +
    +idx = 23
    +nsteps = 5
    +for i in range(nsteps):
    +    t = float(i) / float(nsteps - 1)
    +    v = (1. - t) * v0 + t * v1
    +    SetView3D(v)
    +    Test("view_%d" % idx)
    +    idx = idx + 1
    +DeleteAllPlots()
    +
    +#
    +# Test that the View2DAttributes object's Python binding still has the
    +# ability to interpolate the view.
    +#
    +TestSection("Test interpolation of View2DAttributes")
    +OpenDatabase(data_path("shapefile_test_data/prism0p020/prism0p020.shp"))
    +
    +AddPlot("Pseudocolor", "RANGE")
    +DrawPlots()
    +
    +v0 = View2DAttributes()
    +v0.windowCoords = (-124.756, -66.954, 24.5183, 49.3856)
    +v0.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +v0.fullFrameActivationMode = v0.Off  # On, Off, Auto
    +v0.fullFrameAutoThreshold = 100
    +
    +v1 = View2DAttributes()
    +v1.windowCoords = (-77.667, -74.881, 36.6969, 39.662)
    +v1.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +v1.fullFrameActivationMode = v1.Off  # On, Off, Auto
    +v1.fullFrameAutoThreshold = 100
    +
    +nsteps = 5
    +for i in range(nsteps):
    +    t = float(i) / float(nsteps - 1)
    +    v = (1. - t) * v0 + t * v1
    +    SetView2D(v)
    +    Test("view_%d" % idx)
    +    idx = idx + 1
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_volume.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_volume.html new file mode 100644 index 000000000..c3cb1348e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_volume.html @@ -0,0 +1,54 @@ + +Results for rendering/volume.py + +

    Results of VisIt Regression Test - rendering/volume

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    volume_030.000.00
    volume_010.000.00
    volume_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_volume_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_volume_py.html new file mode 100644 index 000000000..f5ff9ae86 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_volume_py.html @@ -0,0 +1,113 @@ +rendering/volume.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  volume.py
    +#
    +#  Tests:      mesh      - 3D unstructured, one domain 
    +#              plots     - volume 
    +#              operators - none
    +#              selection - yes 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       01Jul03
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Dec 15 09:36:51 PDT 2004
    +#    I changed the flag that's used to make it do software rendering.
    +#
    +#    Hank Childs, Mon Jul 11 14:07:16 PDT 2005
    +#    Added test for rectilinear grids with ghost zones and hardware rendering
    +#    ['5712].
    +#
    +#    Hank Childs, Wed Jul 13 10:31:08 PDT 2005
    +#    Delete wireframe plot, since that exposes '6380.
    +#
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Wed Aug 25 14:25:13 PDT 2010
    +#    SIL id shift (from 4 to 5) due to changes in SIL generation.
    +#
    +#    Brad Whitlock, Wed Sep 28 11:48:16 PDT 2011
    +#    Zoom in a little so we have more pixels covered.
    +#
    +#    Kathleen Biagas, Wed Nov 29 10:52:22 PST 2023
    +#    Skip volume_30 in scalable,parallel,icet mode as it crashes.
    +#
    +#    Kathleen Biagas, Tue May  7 13:56:23 PDT 2024
    +#    Move volume_10-volume_16 to volume_rect_singleDomain.py.
    +#    Move volume_20-volume_24 to volume_rect_multiDomain.py.
    +#    Move volume_30-volume_34 to volume_multiDomain_missingData.py.
    +# ----------------------------------------------------------------------------
    +
    +
    +def Samrai():
    +    OpenDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +
    +    # '6380.  The wireframe is not composited correctly when in SR mode.
    +    # So delete the wireframe and we should get the same picture in SR and
    +    # non-SR.  When '6380 is fixed, the DeleteAllPlots() call below should be
    +    # removed and the baseline should be reset.
    +    DeleteAllPlots()
    +
    +    AddPlot("Volume", "Primitive Var _number_0")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType =  volAtts.Serial
    +    volAtts.smoothData = 0
    +    volAtts.useColorVarMin = 1
    +    volAtts.colorVarMin = 22
    +    SetPlotOptions(volAtts)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (-0.369824, 0.535308, 0.759391)
    +    v.viewUp = (-0.022009, 0.812062, -0.583155)
    +    SetView3D(v)
    +
    +    Test("volume_03")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +
    +def globe():
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Volume", "t")
    +    silr=SILRestriction()
    +    silr.TurnOffSet(5)
    +    SetPlotSILRestriction(silr)
    +
    +    DrawPlots()
    +
    +    v=GetView3D()
    +    v.viewNormal=(0.507832, -0.301407, -0.807007)
    +    v.viewUp=(-0.831783, -0.415313, -0.368309)
    +    v.imageZoom = 2.
    +    SetView3D(v)
    +
    +    # test the serial volume render
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    SetPlotOptions(volAtts)
    +    Test("volume_01")
    +
    +    # test software volume render
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Composite
    +    SetPlotOptions(volAtts)
    +    Test("volume_02")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("globe.silo"))
    +
    +Samrai()
    +globe()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_volume_rect_multiDomain.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_volume_rect_multiDomain.html new file mode 100644 index 000000000..0ff6bd674 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_volume_rect_multiDomain.html @@ -0,0 +1,85 @@ + +Results for rendering/volume_rect_multiDomain.py + +

    Results of VisIt Regression Test - rendering/volume_rect_multiDomain

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    MultiDomain, Serial, NoResampling
    volume_200.000.00
    MultiDomain, Serial, ParallelResistribute
    volume_210.000.00
    MultiDomain, Serial, ParallelResistribute, ospray
    volume_220.000.00
    MultiDomain, Parallel, ParallelPerRank
    volume_2399.7622.29
    MultiDomain, Parallel, ParallelPerRank, ospray
    volume_24100.0015.09
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_volume_rect_multiDomain_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_volume_rect_multiDomain_py.html new file mode 100644 index 000000000..1bcab1148 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_volume_rect_multiDomain_py.html @@ -0,0 +1,95 @@ +rendering/volume_rect_multiDomain.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  volume_rect_multiDomain.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, multiple domains
    +#              plots     - volume
    +#              operators - none
    +#              selection - no
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       May 7, 2024
    +#
    +#  Notes:   Moved from volume.py due to interference between a 'Serial'
    +#           plot following a 'Composite' or 'Parallel' plot causing the
    +#           'Serial' plot to yield a blank image.
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def multiDomainRect():
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +    AddPlot("Volume", "d")
    +    DrawPlots()
    +
    +    View3DAtts = GetView3D()
    +    View3DAtts.viewNormal = (0.628533, 0.511363, 0.58605)
    +    View3DAtts.focus = (0.5, 0.5, 0.5)
    +    View3DAtts.viewUp = (-0.169088, 0.825303, -0.538779)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 0.866025
    +    View3DAtts.nearPlane = -1.73205
    +    View3DAtts.farPlane = 1.73205
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 0
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0.5, 0.5, 0.5)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +    TestSection("MultiDomain, Serial, NoResampling")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.NoResampling
    +    volAtts.OSPRayEnabledFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volume_20")
    +
    +    TestSection("MultiDomain, Serial, ParallelResistribute")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.ParallelRedistribute
    +    volAtts.OSPRayEnabledFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volume_21")
    +
    +    TestSection("MultiDomain, Serial, ParallelResistribute, ospray")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.ParallelRedistribute
    +    volAtts.OSPRayEnabledFlag = 1
    +    SetPlotOptions(volAtts)
    +    Test("volume_22")
    +
    +    TestSection("MultiDomain, Parallel, ParallelPerRank")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Parallel
    +    volAtts.resampleType = volAtts.ParallelPerRank
    +    volAtts.OSPRayEnabledFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volume_23")
    +
    +    TestSection("MultiDomain, Parallel, ParallelPerRank, ospray")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Parallel
    +    volAtts.resampleType = volAtts.ParallelPerRank
    +    volAtts.OSPRayEnabledFlag = 1
    +    SetPlotOptions(volAtts)
    +    Test("volume_24")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +    CloseDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +multiDomainRect()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_volume_rect_singleDomain.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_volume_rect_singleDomain.html new file mode 100644 index 000000000..e96e27afd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_volume_rect_singleDomain.html @@ -0,0 +1,99 @@ + +Results for rendering/volume_rect_singleDomain.py + +

    Results of VisIt Regression Test - rendering/volume_rect_singleDomain

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Single Domain, Serial, NoResampling
    volume_100.000.00
    Single Domain, Serial, OnlyIfRequired
    volume_110.000.00
    Single Domain, Serial, OnlyIfRequired, ospray
    volume_120.000.00
    Single Domain, Serial, SingleDomain
    volume_130.000.00
    Single Domain, Serial, SingleDomain, ospray
    volume_140.000.00
    Single Domain, Parallel, ParallelRedistribute
    volume_150.000.00
    Single Domain, Parallel, ParallelRedistribute, ospray
    volume_160.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_volume_rect_singleDomain_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_volume_rect_singleDomain_py.html new file mode 100644 index 000000000..8c9771246 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_volume_rect_singleDomain_py.html @@ -0,0 +1,111 @@ +rendering/volume_rect_singleDomain.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  volume_rect_singleDomain.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, one domain 
    +#              plots     - volume 
    +#              operators - none
    +#              selection - no 
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       May 7, 2024
    +#
    +#  Notes:   Moved from volume.py due to interference between a 'Serial'
    +#           plot following a 'Composite' or 'Parallel' plot causing the
    +#           'Serial' plot to yield a blank image.
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def singleDomainRect():
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +    AddPlot("Volume", "d")
    +    DrawPlots()
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0.628533, 0.511363, 0.58605)
    +    View3DAtts.focus = (0.5, 0.5, 0.5)
    +    View3DAtts.viewUp = (-0.169088, 0.825303, -0.538779)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 0.866025
    +    View3DAtts.nearPlane = -1.73205
    +    View3DAtts.farPlane = 1.73205
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 0
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0.5, 0.5, 0.5)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +    TestSection("Single Domain, Serial, NoResampling")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.NoResampling
    +    volAtts.OSPRayEnabledFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volume_10")
    +
    +    TestSection("Single Domain, Serial, OnlyIfRequired")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.OnlyIfRequired
    +    volAtts.OSPRayEnabledFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volume_11")
    +
    +    TestSection("Single Domain, Serial, OnlyIfRequired, ospray")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.OnlyIfRequired
    +    volAtts.OSPRayEnabledFlag = 1
    +    SetPlotOptions(volAtts)
    +    Test("volume_12")
    +
    +    TestSection("Single Domain, Serial, SingleDomain")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.SingleDomain
    +    volAtts.OSPRayEnabledFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volume_13")
    +
    +    TestSection("Single Domain, Serial, SingleDomain, ospray")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.SingleDomain
    +    volAtts.OSPRayEnabledFlag = 1
    +    SetPlotOptions(volAtts)
    +    Test("volume_14")
    +
    +    TestSection("Single Domain, Parallel, ParallelRedistribute")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Parallel
    +    volAtts.resampleType = volAtts.ParallelRedistribute
    +    volAtts.OSPRayEnabledFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volume_15")
    +
    +    TestSection("Single Domain, Parallel, ParallelRedistribute, ospray")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Parallel
    +    volAtts.resampleType = volAtts.ParallelRedistribute
    +    volAtts.OSPRayEnabledFlag = 1
    +    SetPlotOptions(volAtts)
    +    Test("volume_16")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +    CloseDatabase(silo_data_path("rect3d.silo"))
    +
    +singleDomainRect()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_volume_ucd_multiDomain.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_volume_ucd_multiDomain.html new file mode 100644 index 000000000..3421e4165 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_volume_ucd_multiDomain.html @@ -0,0 +1,83 @@ + +Results for rendering/volume_ucd_multiDomain.py + +

    Results of VisIt Regression Test - rendering/volume_ucd_multiDomain

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    UCD MultiDomain, Serial, NoResampling
    volume_300 modifications totalling 0 lines
    UCD MultiDomain, Serial, ParallelRedistribute
    volume_310.000.00
    UCD MultiDomain, Serial, ParallelRedistribute, ospray
    volume_320.000.00
    UCD MultiDomain, Parallel, ParallelPerRank
    volume_33100.054.10
    UCD MultiDomain, Parallel, ParallelPerRank, ospray
    volume_3499.494.93
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/rendering_volume_ucd_multiDomain_py.html b/2024-12-12-22:00/poodle_trunk_parallel/rendering_volume_ucd_multiDomain_py.html new file mode 100644 index 000000000..56a207fe5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/rendering_volume_ucd_multiDomain_py.html @@ -0,0 +1,105 @@ +rendering/volume_ucd_multiDomain.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  volume_ucd_multiDomain.py
    +#
    +#  Tests:      mesh      - 3D unstructured, multiple domains
    +#              plots     - volume
    +#              operators - none
    +#              selection - no
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       May 7, 2024
    +#
    +#  Notes:   Moved from volume.py due to interference between a 'Serial'
    +#           plot following a 'Composite' or 'Parallel' plot causing the
    +#           'Serial' plot to yield a blank image.
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def ucd_multiDomain():
    +
    +    # Multiple domain checks plots 30-34
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +    AddPlot("Volume", "p")
    +    DrawPlots()
    +
    +    View3DAtts = GetView3D()
    +    View3DAtts.viewNormal = (0.409673, 0.375032, 0.831576)
    +    View3DAtts.focus = (0, 2.5, 10)
    +    View3DAtts.viewUp = (-0.208428, 0.925952, -0.314914)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 11.4564
    +    View3DAtts.nearPlane = -22.9129
    +    View3DAtts.farPlane = 22.9129
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 0
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0, 2.5, 10)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +
    +
    +    TestSection("UCD MultiDomain, Serial, NoResampling")
    +    # This test is designed to fail, it produces no image that
    +    # can be compared via 'Test'.
    +    # Instead, grab the warning message.
    +    # Should this even be tested?
    +    try:
    +        volAtts = VolumeAttributes()
    +        volAtts.rendererType = volAtts.Serial
    +        volAtts.resampleType = volAtts.NoResampling
    +        volAtts.OSPRayEnabledFlag = 0
    +        SetPlotOptions(volAtts)
    +        m = GetLastMessage()[0]
    +        mtype = GetLastMessage()[1]
    +        # remove the first part that mentions host, since that can change
    +        w = m.split(":")[1]
    +        TestText("volume_30", mtype+w)
    +    except:
    +        TestText("volume_30", GetLastError())
    +
    +    TestSection("UCD MultiDomain, Serial, ParallelRedistribute")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.ParallelRedistribute
    +    volAtts.OSPRayEnabledFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volume_31")
    +
    +    TestSection("UCD MultiDomain, Serial, ParallelRedistribute, ospray")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.ParallelRedistribute
    +    volAtts.OSPRayEnabledFlag = 1
    +    SetPlotOptions(volAtts)
    +    Test("volume_32")
    +
    +    TestSection("UCD MultiDomain, Parallel, ParallelPerRank")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Parallel
    +    volAtts.resampleType = volAtts.ParallelPerRank
    +    volAtts.OSPRayEnabledFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volume_33")
    +
    +    TestSection("UCD MultiDomain, Parallel, ParallelPerRank, ospray")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Parallel
    +    volAtts.resampleType = volAtts.ParallelPerRank
    +    volAtts.OSPRayEnabledFlag = 1
    +    SetPlotOptions(volAtts)
    +    Test("volume_34")
    +
    +ucd_multiDomain()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/session_colortable.html b/2024-12-12-22:00/poodle_trunk_parallel/session_colortable.html new file mode 100644 index 000000000..8316e8a20 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/session_colortable.html @@ -0,0 +1,42 @@ + +Results for session/colortable.py + +

    Results of VisIt Regression Test - session/colortable

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    colortable000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/session_colortable_py.html b/2024-12-12-22:00/poodle_trunk_parallel/session_colortable_py.html new file mode 100644 index 000000000..02d608df8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/session_colortable_py.html @@ -0,0 +1,34 @@ +session/colortable.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  colortable.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - Pseudocolor, Mesh
    +#
    +#  Notes:      This test case uses a session file to create a plot that uses
    +#              a specific built-in color table. This makes sure that choice
    +#              of color tables is preserved with session files.
    +# 
    +# OUTDATED
    +#  Notes:      This test case uses a session file to create a plot that uses
    +#              a user defined color table. This makes sure that user defined
    +#              color tables can be used from session files. VisIt00004000.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Nov 13 17:10:35 PST 2003
    +#
    +#  Modifications:
    +#      Justin Privitera, Wed Aug  3 15:04:31 PDT 2022
    +#      Changed the session file and the purpose of the test to reflect that
    +#      we no longer save info about color tables to or read info about color 
    +#      tables from session files.
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +RestoreSessionWithDifferentSources(tests_path("session","colortable.session"), 0,
    +                                   silo_data_path("globe.silo"))
    +Test("colortable00")
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/session_correlationsession.html b/2024-12-12-22:00/poodle_trunk_parallel/session_correlationsession.html new file mode 100644 index 000000000..17ad3190c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/session_correlationsession.html @@ -0,0 +1,92 @@ + +Results for session/correlationsession.py + +

    Results of VisIt Regression Test - session/correlationsession

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    correlationsession000.000.00
    correlationsession010 modifications totalling 0 lines
    correlationsession020.000.00
    correlationsession030.000.00
    correlationsession040 modifications totalling 0 lines
    correlationsession050.000.00
    correlationsession060 modifications totalling 0 lines
    correlationsession070.000.00
    correlationsession080 modifications totalling 0 lines
    correlationsession090.000.00
    correlationsession100 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/session_correlationsession_py.html b/2024-12-12-22:00/poodle_trunk_parallel/session_correlationsession_py.html new file mode 100644 index 000000000..8fd12097f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/session_correlationsession_py.html @@ -0,0 +1,95 @@ +session/correlationsession.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  correlationsession.py
    +#
    +#  Tests:      mesh      - 2D curvilinear, single domain
    +#              plots     - Boundary, FilledBoundary
    +#
    +#  Notes:      This test case makes sure that VisIt sessions that made heavy
    +#              use of database correlations can have that information
    +#              correctly captured in a session file.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Mar 25 11:32:09 PDT 2004
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +import string
    +
    +def GetTruncatedWindowInformationString():
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 5 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    for i in range(5):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    return s
    +
    +def TestLength(testname):
    +    tsLength = TimeSliderGetNStates()
    +    testString = "%s has %d states\n" % (GetActiveTimeSlider(), tsLength)
    +    testString = testString + GetTruncatedWindowInformationString()
    +    TestText(testname, testString)
    +
    +TurnOnAllAnnotations()
    +
    +ra1 = GetRenderingAttributes()
    +
    +#
    +# Restore the session file and make sure that it at the right time step
    +# and has the right time slider.
    +#
    +RestoreSessionWithDifferentSources(tests_path("session","correlationsession.session"), 0,
    +                                   [data_path("pdb_test_data","dbA00.pdb"),
    +                                    data_path("pdb_test_data","dbB00.pdb"),
    +                                    data_path("pdb_test_data","dbC00.pdb")])
    +
    +# Restore the scalable rendering mode for the tests.
    +ra2 = GetRenderingAttributes()
    +ra2.scalableActivationMode = ra1.scalableActivationMode
    +ra2.scalableAutoThreshold = ra1.scalableActivationMode
    +SetRenderingAttributes(ra2)
    +
    +Test("correlationsession00")
    +TestLength("correlationsession01")
    +
    +#
    +# Make sure we have the right active source by making a new plot. The active
    +# source should be dbA00.pdb
    +#
    +AddPlot("Boundary", "material(mesh)")
    +b = BoundaryAttributes()
    +b.colorType = b.ColorBySingleColor
    +b.singleColor = (255,255,0,255)
    +b.lineWidth = 2
    +SetPlotOptions(b)
    +DrawPlots()
    +Test("correlationsession02")
    +
    +#
    +# Make sure that we can advance to the end of the time slider. Save some
    +# test images along the way though.
    +#
    +timeSliders = GetTimeSliders()
    +currentState = timeSliders[GetActiveTimeSlider()]
    +endState = TimeSliderGetNStates() - 1
    +nSteps = 4
    +start = currentState + int(float(endState - currentState) / float(nSteps))
    +testIndex = 3
    +for i in range(nSteps):
    +    t = float(i) / float(nSteps - 1)
    +    omt = 1. - t
    +    state = int(omt * float(start) + t * float(endState))
    +    SetTimeSliderState(state)
    +    Test("correlationsession%02d" % testIndex)
    +    TestLength("correlationsession%02d" % (testIndex + 1))
    +    testIndex = testIndex + 2
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/session_legendproperties.html b/2024-12-12-22:00/poodle_trunk_parallel/session_legendproperties.html new file mode 100644 index 000000000..a384ddd6f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/session_legendproperties.html @@ -0,0 +1,52 @@ + +Results for session/legendproperties.py + +

    Results of VisIt Regression Test - session/legendproperties

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    legendproperties000.000.00
    legendproperties010.000.00
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/session_legendproperties_py.html b/2024-12-12-22:00/poodle_trunk_parallel/session_legendproperties_py.html new file mode 100644 index 000000000..06c6352d5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/session_legendproperties_py.html @@ -0,0 +1,48 @@ +session/legendproperties.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  legendproperties.py
    +#
    +#  Notes:      This test case sets legend properties and makes sure that they
    +#              can be accessed via uses a session file to create a plot that uses
    +#              a user defined color table. This makes sure that user defined
    +#              color tables can be used from session files. VisIt00004000.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Mon Mar 26 10:48:25 PDT 2007
    +#
    +#  Modifications:
    +#    Brad Whitlock, Thu Jul 22 11:03:42 PDT 2010
    +#    Force some save window settings so testing routines don't mess up in
    +#    the scalable,parallel,icet mode. VisIt itself, outside of testing doesn't
    +#    have problems as far as I can tell so we're working around "issues" with
    +#    our testing routines.
    +#    
    +# ----------------------------------------------------------------------------
    +
    +# Get the save window atts and force a few settings.
    +sa = GetSaveWindowAttributes()
    +sa.screenCapture = 0
    +sa.width,sa.height = 300,300
    +
    +TurnOnAllAnnotations()
    +RestoreSessionWithDifferentSources(tests_path("session","legendproperties.session"), 0,
    +                                   silo_data_path("bigsil.silo"))
    +
    +
    +Test("legendproperties00", altSWA=sa)
    +
    +# Now that we've restored the session, see if we can get the legend objects
    +# and change them.
    +subsetLegend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +pcLegend = GetAnnotationObject(GetPlotList().GetPlots(1).plotName)
    +
    +subsetLegend.drawBoundingBox = 0
    +pcLegend.drawBoundingBox = 0
    +Test("legendproperties01", altSWA=sa)
    +
    +# Make sure that the plots are deleted
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/session_rect3d-contour.html b/2024-12-12-22:00/poodle_trunk_parallel/session_rect3d-contour.html new file mode 100644 index 000000000..8a35860f1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/session_rect3d-contour.html @@ -0,0 +1,42 @@ + +Results for session/rect3d-contour.py + +

    Results of VisIt Regression Test - session/rect3d-contour

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    rect3d-contour000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/session_rect3d-contour_py.html b/2024-12-12-22:00/poodle_trunk_parallel/session_rect3d-contour_py.html new file mode 100644 index 000000000..d452d3b87 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/session_rect3d-contour_py.html @@ -0,0 +1,25 @@ +session/rect3d-contour.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  rect3d-contour.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, single domain
    +#              plots     - Contour, with transparent contours
    +#
    +#  Notes:      This test case uses a session file to ensure that the Contour
    +#              plot can be restored from a session file and have its correct
    +#              colors and opacities, from  a bug reported in VisIt00004115.
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       January 13, 2005 
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +RestoreSessionWithDifferentSources(tests_path("session","rect3d-contour.session"), 0,
    +                                   silo_data_path("rect3d.silo"))
    +Test("rect3d-contour00")
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/session_restorewithsources.html b/2024-12-12-22:00/poodle_trunk_parallel/session_restorewithsources.html new file mode 100644 index 000000000..3934b9967 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/session_restorewithsources.html @@ -0,0 +1,48 @@ + +Results for session/restorewithsources.py + +

    Results of VisIt Regression Test - session/restorewithsources

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    restorewithsources000.000.00
    restorewithsources010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/session_restorewithsources_py.html b/2024-12-12-22:00/poodle_trunk_parallel/session_restorewithsources_py.html new file mode 100644 index 000000000..71d9af679 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/session_restorewithsources_py.html @@ -0,0 +1,42 @@ +session/restorewithsources.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  restorewithsources.py
    +#
    +#  Notes:      This test case tests restoring sessions with different sources.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Mar 28 10:36:04 PDT 2007
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +
    +tpath = tests_path("session","restorewithsources.session")
    +dpath = silo_data_path("rect3d.silo")
    +print(repr(tpath))
    +print(repr(silo_data_path("rect3d.silo") ))
    +
    +RestoreSessionWithDifferentSources(tests_path("session","restorewithsources.session"),
    +                                   0,
    +                                   silo_data_path("rect3d.silo") )
    +
    +
    +Test("restorewithsources00")
    +
    +# Now, try restoring the session with a different data file. Note that since
    +# there's just one source, we pass a string instead of a tuple of strings.
    +RestoreSessionWithDifferentSources(tests_path("session","restorewithsources.session"),
    +                                   0,
    +                                   silo_data_path("rect2d.silo") )
    +Test("restorewithsources01")
    +
    +# Make sure that the plots are deleted
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/session_selection.html b/2024-12-12-22:00/poodle_trunk_parallel/session_selection.html new file mode 100644 index 000000000..f65111f34 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/session_selection.html @@ -0,0 +1,42 @@ + +Results for session/selection.py + +

    Results of VisIt Regression Test - session/selection

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    selection_000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/session_selection_py.html b/2024-12-12-22:00/poodle_trunk_parallel/session_selection_py.html new file mode 100644 index 000000000..99188fdb1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/session_selection_py.html @@ -0,0 +1,29 @@ +session/selection.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  selection.py
    +#
    +#  Tests:      mesh      - 2D curvilinear, multiple domain
    +#              plots     - FilledBoundary, Mesh, Pseudocolor
    +#
    +#  Notes:      This test case makes sure that VisIt can read session files
    +#              that have subset selection. Session files from before 1.3 and
    +#              from version 1.3 are tested.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Mar 25 08:34:37 PDT 2004
    +#
    +#  Modifications:
    +#    Brad Whitlock, Tue Jan 6 09:17:15 PDT 2009
    +#    I removed support for pre-1.3 session files.
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +RestoreSessionWithDifferentSources(tests_path("session","selection.session"), 0,
    +                                   silo_data_path("multi_curv2d.silo"))
    +
    +Test("selection_00")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/session_sessionexpression.html b/2024-12-12-22:00/poodle_trunk_parallel/session_sessionexpression.html new file mode 100644 index 000000000..45ea389fb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/session_sessionexpression.html @@ -0,0 +1,42 @@ + +Results for session/sessionexpression.py + +

    Results of VisIt Regression Test - session/sessionexpression

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    sessionexpression000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/session_sessionexpression_py.html b/2024-12-12-22:00/poodle_trunk_parallel/session_sessionexpression_py.html new file mode 100644 index 000000000..acb65bea5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/session_sessionexpression_py.html @@ -0,0 +1,27 @@ +session/sessionexpression.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  sessionexpression.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - Pseudocolor
    +#
    +#  Notes:      This test case creates a plot of a user-defined expression
    +#              using a session file to ensure that session files containing
    +#              plots of user-defined expressions work. This test case tests
    +#              for a bug reported in VisIt00006070.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Tue Apr 5 14:26:56 PST 2005
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +RestoreSessionWithDifferentSources(tests_path("session","sessionexpression.session"), 0,
    +                                   ( silo_data_path("wave.visit"),
    +                                     silo_data_path("globe.silo")))
    +Test("sessionexpression00")
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/session_sessionview.html b/2024-12-12-22:00/poodle_trunk_parallel/session_sessionview.html new file mode 100644 index 000000000..2f71da931 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/session_sessionview.html @@ -0,0 +1,66 @@ + +Results for session/sessionview.py + +

    Results of VisIt Regression Test - session/sessionview

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    sessionview000.000.00
    sessionview010.000.00
    sessionview020.000.00
    sessionview030.000.00
    sessionview040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/session_sessionview_py.html b/2024-12-12-22:00/poodle_trunk_parallel/session_sessionview_py.html new file mode 100644 index 000000000..c252d5870 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/session_sessionview_py.html @@ -0,0 +1,55 @@ +session/sessionview.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  sessionview.py
    +#
    +#  Tests:      mesh      - 3D unstructured, 3D rectilinear, single domain
    +#              plots     - Pseudocolor, Mesh
    +#              operators - Reflect
    +#
    +#  Notes:      This test case makes sure that we can switch back and forth
    +#              between session files that use expressions.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Dec 31 15:21:23 PST 2003
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +
    +# Open the first session file
    +RestoreSessionWithDifferentSources(tests_path("session","sessionview1.session"), 0,
    +                                   silo_data_path("globe.silo"))
    +
    +Test("sessionview00")
    +
    +# Open the second session file
    +RestoreSession("tests/session/sessionview2.session", 0)
    +RestoreSessionWithDifferentSources(tests_path("session","sessionview2.session"), 0,
    +                                   data_path("ANALYZE_test_data",
    +                                             "s01_anatomy_stripped.hdr"))
    +
    +
    +Test("sessionview01")
    +
    +# Open the first session file again. This used to crash VisIt
    +RestoreSessionWithDifferentSources(tests_path("session","sessionview1.session"), 0,
    +                                   silo_data_path("globe.silo"))
    +
    +Test("sessionview02")
    +
    +# Open the second session file again.
    +RestoreSessionWithDifferentSources(tests_path("session","sessionview2.session"), 0,
    +                                   data_path("ANALYZE_test_data",
    +                                             "s01_anatomy_stripped.hdr"))
    +Test("sessionview03")
    +
    +# Open the first session file
    +RestoreSessionWithDifferentSources(tests_path("session","sessionview1.session"), 0,
    +                                   silo_data_path("globe.silo"))
    +Test("sessionview04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/session_simplekeyframe.html b/2024-12-12-22:00/poodle_trunk_parallel/session_simplekeyframe.html new file mode 100644 index 000000000..ad0cc7b7c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/session_simplekeyframe.html @@ -0,0 +1,130 @@ + +Results for session/simplekeyframe.py + +

    Results of VisIt Regression Test - session/simplekeyframe

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Testing keyframes from a restored session file.
    simplekeyframe_setup0 modifications totalling 0 lines
    simplekeyframe000.000.00
    simplekeyframe010.000.00
    simplekeyframe020.000.00
    simplekeyframe030.000.00
    simplekeyframe040.000.00
    simplekeyframe050.000.00
    simplekeyframe060.000.00
    simplekeyframe070.000.00
    simplekeyframe080.000.00
    simplekeyframe090.000.00
    Testing keyframes from a cloned window.
    viewkeyframe000.000.00
    viewkeyframe010.000.00
    viewkeyframe020.000.00
    viewkeyframe030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/session_simplekeyframe_py.html b/2024-12-12-22:00/poodle_trunk_parallel/session_simplekeyframe_py.html new file mode 100644 index 000000000..f1796a8f8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/session_simplekeyframe_py.html @@ -0,0 +1,78 @@ +session/simplekeyframe.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  simplekeyframe.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - Pseudocolor, Mesh
    +#              operators - Clip
    +#
    +#  Notes:      This test case uses a session file to ensure that keyframe
    +#              animations that modify the plot attributes and the view can
    +#              be loaded from a session file.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Oct 22 15:14:20 PST 2003
    +#
    +#  Modifications:
    +#    Brad Whitlock, Tue Dec 30 17:09:10 PST 2003
    +#    Added test cases to make sure that view keyframes are copied to windows
    +#    created via window cloning.
    +#
    +#    Brad Whitlock, Wed Apr 7 14:19:31 PST 2004
    +#    Changed the test case so the number of frames is verified first thing.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def GetTruncatedWindowInformationString():
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 5 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    # ignore the active source
    +    for i in range(1,5):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    return s
    +
    +def TestSetup(testName):
    +    s = GetTruncatedWindowInformationString()
    +    s = s + str(GetKeyframeAttributes())
    +    TestText(testName, s)
    +
    +TurnOnAllAnnotations()
    +
    +# Set up the visualization by restoring a session file.
    +RestoreSessionWithDifferentSources(tests_path("session","simplekeyframe.session"), 0,
    +                                   silo_data_path("globe.silo"))
    +
    +TestSection("Testing keyframes from a restored session file.")
    +
    +# Make sure that the session file created the right number of keyframes.
    +TestSetup("simplekeyframe_setup")
    +
    +# Save a test frame for all of the frames in the animation.
    +for i in range(TimeSliderGetNStates()):
    +    SetTimeSliderState(i)
    +    Test("simplekeyframe%02d" % i)
    +
    +# 
    +# Clone the window and make sure that the keyframes were copied.
    +#
    +TestSection("Testing keyframes from a cloned window.")
    +SetTimeSliderState(0)
    +CloneWindow()
    +SetActiveWindow(2)
    +DrawPlots()
    +Test("viewkeyframe00")
    +SetTimeSliderState(int(TimeSliderGetNStates() * 0.3333))
    +Test("viewkeyframe01")
    +SetTimeSliderState(int(TimeSliderGetNStates() * 0.6666))
    +Test("viewkeyframe02")
    +SetTimeSliderState(TimeSliderGetNStates() - 1)
    +Test("viewkeyframe03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/session_textannot.html b/2024-12-12-22:00/poodle_trunk_parallel/session_textannot.html new file mode 100644 index 000000000..6945aaf94 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/session_textannot.html @@ -0,0 +1,66 @@ + +Results for session/textannot.py + +

    Results of VisIt Regression Test - session/textannot

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    textannot000.000.00
    textannot010.000.00
    textannot020.000.00
    textannot030.000.00
    textannot040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/session_textannot_py.html b/2024-12-12-22:00/poodle_trunk_parallel/session_textannot_py.html new file mode 100644 index 000000000..a0b989a70 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/session_textannot_py.html @@ -0,0 +1,38 @@ +session/textannot.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  textanot.py
    +#
    +#  Tests:      mesh      - 2D curvilinear, single domain
    +#              plots     - Pseudocolor
    +#
    +#  Notes:      This test case uses a session file to set up a plot and create
    +#              several text annotations and a time slider annotation.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Dec 4 14:17:46 PST 2003
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Mar 9 09:15:30 PDT 2005
    +#    Removed deprecated functions.
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +
    +# Set up the visualization by restoring a session file.
    +RestoreSessionWithDifferentSources(tests_path("session","textannot.session"), 0,
    +                                   data_path("pdb_test_data","allinone00.pdb"))
    +
    +# Save a test frame for some of the frames in the animation so we can see
    +# if the time slider is working.
    +testindex = 0
    +ntests = 5
    +for i in range(ntests):
    +    frame = int(float(i) / float(ntests - 1) * (TimeSliderGetNStates() - 1))
    +    SetTimeSliderState(frame)
    +    Test("textannot%02d" % testindex)
    +    testindex = testindex + 1
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/session_view3d.html b/2024-12-12-22:00/poodle_trunk_parallel/session_view3d.html new file mode 100644 index 000000000..770326c5b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/session_view3d.html @@ -0,0 +1,42 @@ + +Results for session/view3d.py + +

    Results of VisIt Regression Test - session/view3d

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    view3d000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/session_view3d_py.html b/2024-12-12-22:00/poodle_trunk_parallel/session_view3d_py.html new file mode 100644 index 000000000..3d8bf65a4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/session_view3d_py.html @@ -0,0 +1,29 @@ +session/view3d.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  view3d.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - Pseudocolor
    +#
    +#  Defect ID:  visit00004724
    +#
    +#  Notes:      This test case makes sure that all the 3d view parameters
    +#              are properly restored from a session.  In particular the
    +#              focus, parallelScale, nearPlane and farPlane.
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       Thu Apr 22 15:05:59 PDT 2004
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +
    +# Open the session file
    +RestoreSessionWithDifferentSources(tests_path("session","view3d.session"), 0,
    +                                   silo_data_path("globe.silo"))
    +
    +Test("view3d00")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/session_wavecontour.html b/2024-12-12-22:00/poodle_trunk_parallel/session_wavecontour.html new file mode 100644 index 000000000..10db40b60 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/session_wavecontour.html @@ -0,0 +1,42 @@ + +Results for session/wavecontour.py + +

    Results of VisIt Regression Test - session/wavecontour

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    wavecontour000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/session_wavecontour_py.html b/2024-12-12-22:00/poodle_trunk_parallel/session_wavecontour_py.html new file mode 100644 index 000000000..7d631acdb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/session_wavecontour_py.html @@ -0,0 +1,29 @@ +session/wavecontour.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  wavecontour.py
    +#
    +#  Tests:      mesh      - 3D curvilinear, single domain
    +#              plots     - Contour, Mesh
    +#              operators - Reflect
    +#
    +#  Notes:      This test case uses a session file to ensure that the Contour
    +#              plot can be restored from a session file and have its correct
    +#              colors and number of contour levels. This test case tests
    +#              for a bug reported in VisIt00003883.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Oct 22 15:14:20 PST 2003
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +RestoreSessionWithDifferentSources(tests_path("session","wavecontour.session"), 0,
    +                                   silo_data_path("wave.visit"))
    +# tslider state is lost w/ restore with sources
    +TimeSliderSetState(28)
    +Test("wavecontour00")
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_amr.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_amr.html new file mode 100644 index 000000000..05b5b5b71 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_amr.html @@ -0,0 +1,68 @@ + +Results for simulation/amr.py + +

    Results of VisIt Regression Test - simulation/amr

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    amr000 modifications totalling 0 lines
    amr010 modifications totalling 0 lines
    amr020.000.00
    amr030.000.00
    amr040.000.00
    amr050.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_amr_py.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_amr_py.html new file mode 100644 index 000000000..214bcf792 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_amr_py.html @@ -0,0 +1,58 @@ +simulation/amr.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  amr.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 2D amr mesh
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 17, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("amr", "amr.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("amr00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("amr01", sim.metadata())
    +
    +    AddPlot("Mesh", "amr")
    +    AddPlot("Subset", "Levels")
    +    DrawPlots()
    +    Test("amr02")
    +
    +    SetActivePlots(1)
    +    ChangeActivePlotsVar("Patches")
    +    Test("amr03")
    +
    +    SetActivePlots(0)
    +    DeleteActivePlots()
    +    silr = SILRestriction()
    +    silr.TurnOffSet(8)
    +    SetPlotSILRestriction(silr, 0)
    +    DrawPlots()
    +    Test("amr04")
    +
    +    silr.TurnOnAll()
    +    silr.TurnOffSet(6)
    +    silr.TurnOffSet(8)
    +    SetPlotSILRestriction(silr, 0)
    +    DrawPlots()
    +    Test("amr05")
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_aresamr.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_aresamr.html new file mode 100644 index 000000000..6cb0f3efc --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_aresamr.html @@ -0,0 +1,62 @@ + +Results for simulation/aresamr.py + +

    Results of VisIt Regression Test - simulation/aresamr

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    aresamr000 modifications totalling 0 lines
    aresamr010 modifications totalling 0 lines
    aresamr020.000.00
    aresamr030.000.00
    aresamr040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_aresamr_py.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_aresamr_py.html new file mode 100644 index 000000000..3926f08b2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_aresamr_py.html @@ -0,0 +1,48 @@ +simulation/aresamr.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  aresamr.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 2D aresamr mesh
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 17, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("aresamr", "aresamr.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("aresamr00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("aresamr01", sim.metadata())
    +
    +    AddPlot("Pseudocolor", "zonal_scalar")
    +    DrawPlots()
    +    Test("aresamr02")
    +
    +    silr = SILRestriction()
    +    silr.TurnOnAll()
    +    silr.TurnOffSet(4)
    +    SetPlotSILRestriction(silr, 1)
    +    Test("aresamr03")
    +    silr.TurnOnAll()
    +    silr.TurnOffSet(3)
    +    SetPlotSILRestriction(silr, 1)
    +    Test("aresamr04")
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_batch.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_batch.html new file mode 100644 index 000000000..5dac93684 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_batch.html @@ -0,0 +1,426 @@ + +Results for simulation/batch.py + +

    Results of VisIt Regression Test - simulation/batch

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Slice Export with 3 vertices
    batch_0_000.000.00
    batch_0_010.000.00
    batch_0_020.000.00
    batch_0_030.000.00
    batch_0_040.000.00
    batch_0_050.000.00
    Slice Export with Origin+Normal
    batch_1_000.000.00
    batch_1_010.000.00
    batch_1_020.000.00
    batch_1_030.000.00
    batch_1_040.000.00
    batch_1_050.000.00
    Slice Export of X
    batch_2_000.000.00
    batch_2_010.000.00
    batch_2_020.000.00
    batch_2_030.000.00
    batch_2_040.000.00
    batch_2_050.000.00
    Slice Export of Y
    batch_3_000.000.00
    batch_3_010.000.00
    batch_3_020.000.00
    batch_3_030.000.00
    batch_3_040.000.00
    batch_3_050.000.00
    Slice Export of Z
    batch_4_000.000.00
    batch_4_010.000.00
    batch_4_020.000.00
    batch_4_030.000.00
    batch_4_040.000.00
    batch_4_050.000.00
    Iso Export
    batch_5_000.000.00
    batch_5_010.000.00
    batch_5_020.000.00
    batch_5_030.000.00
    batch_5_040.000.00
    batch_5_050.000.00
    batch_5_060.000.00
    batch_5_070.000.00
    batch_5_080.000.00
    batch_5_090.000.00
    batch_5_100.000.00
    batch_5_110.000.00
    batch_5_120.000.00
    batch_5_130.000.00
    batch_5_140.000.00
    batch_5_150.000.00
    batch_5_160.000.00
    batch_5_170.000.00
    batch_5_180.000.00
    batch_5_190.000.00
    Image Rendering
    batch_6_000.000.00
    batch_6_010.000.00
    batch_6_020.000.00
    batch_6_030.000.00
    batch_6_040.000.00
    Streamline Export
    batch_7_000.000.00
    batch_7_010.000.00
    batch_7_020.000.00
    batch_7_030.000.00
    batch_7_040.000.00
    batch_7_050.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_batch_py.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_batch_py.html new file mode 100644 index 000000000..377175f20 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_batch_py.html @@ -0,0 +1,393 @@ +simulation/batch.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  batch.py
    +#
    +#  Tests:      libsim - batch mode.
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 18, 2014 
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def test0():
    +    TestSection("Slice Export with 3 vertices")
    +    db = "slice3v_*.vtk database"
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "dom")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.0556426, 0.707794, 0.704224)
    +    v.focus = (5, 1.53846, 5)
    +    v.viewUp = (0.048696, 0.706401, -0.706134)
    +    v.viewAngle = 30
    +    v.parallelScale = 7.12383
    +    v.nearPlane = -14.2477
    +    v.farPlane = 14.2477
    +    v.imagePan = (-0.021177, 0.0636043)
    +    v.imageZoom = 1.09666
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (5, 1.53846, 5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +    Test("batch_0_00")
    +
    +    ChangeActivePlotsVar("xc")
    +    Test("batch_0_01")
    +    ChangeActivePlotsVar("radius")
    +    Test("batch_0_02")
    +    ChangeActivePlotsVar("q")
    +    Test("batch_0_03")
    +
    +    TimeSliderSetState(2)
    +    Test("batch_0_04")
    +    TimeSliderSetState(4)
    +    Test("batch_0_05")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test1():
    +    TestSection("Slice Export with Origin+Normal")
    +    db = "sliceON_*.vtk database"
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "dom")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, 1)
    +    v.focus = (5, 5, 5)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 8.66025
    +    v.nearPlane = -17.3205
    +    v.farPlane = 17.3205
    +    v.imagePan = (-0.00113806, 0.0530002)
    +    v.imageZoom = 1.33438
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (5, 5, 5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +    Test("batch_1_00")
    +
    +    ChangeActivePlotsVar("xc")
    +    Test("batch_1_01")
    +    ChangeActivePlotsVar("radius")
    +    Test("batch_1_02")
    +    ChangeActivePlotsVar("q")
    +    Test("batch_1_03")
    +
    +    TimeSliderSetState(2)
    +    Test("batch_1_04")
    +    TimeSliderSetState(4)
    +    Test("batch_1_05")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test2():
    +    TestSection("Slice Export of X")
    +    db = "sliceX_*.vtk database"
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "dom")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (1, 0, 6.12323e-17)
    +    v.focus = (0.5, 5, 5)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 7.07107
    +    v.nearPlane = -14.1421
    +    v.farPlane = 14.1421
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1.27205
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 5, 5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +    Test("batch_2_00")
    +
    +    ChangeActivePlotsVar("xc")
    +    Test("batch_2_01")
    +    ChangeActivePlotsVar("radius")
    +    Test("batch_2_02")
    +    ChangeActivePlotsVar("q")
    +    Test("batch_2_03")
    +
    +    ChangeActivePlotsVar("radius")
    +    TimeSliderSetState(2)
    +    Test("batch_2_04")
    +    TimeSliderSetState(4)
    +    Test("batch_2_05")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test3():
    +    TestSection("Slice Export of Y")
    +    db = "sliceY_*.vtk database"
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "dom")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0, 1, 6.12323e-17)
    +    v.focus = (5, 2.5, 5)
    +    v.viewUp = (0, 6.12323e-17, -1)
    +    v.viewAngle = 30
    +    v.parallelScale = 7.07107
    +    v.nearPlane = -14.1421
    +    v.farPlane = 14.1421
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1.32859
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (5, 2.5, 5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +    Test("batch_3_00")
    +
    +    ChangeActivePlotsVar("xc")
    +    Test("batch_3_01")
    +    ChangeActivePlotsVar("radius")
    +    Test("batch_3_02")
    +    ChangeActivePlotsVar("q")
    +    Test("batch_3_03")
    +
    +    TimeSliderSetState(2)
    +    Test("batch_3_04")
    +    TimeSliderSetState(4)
    +    Test("batch_3_05")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test4():
    +    TestSection("Slice Export of Z")
    +    db = "sliceZ_*.vtk database"
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "dom")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, 1)
    +    v.focus = (5, 5, 5)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 7.07107
    +    v.nearPlane = -14.1421
    +    v.farPlane = 14.1421
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1.2647
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (5, 5, 5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +    Test("batch_4_00")
    +
    +    ChangeActivePlotsVar("xc")
    +    Test("batch_4_01")
    +    ChangeActivePlotsVar("radius")
    +    Test("batch_4_02")
    +    ChangeActivePlotsVar("q")
    +    Test("batch_4_03")
    +
    +    TimeSliderSetState(2)
    +    Test("batch_4_04")
    +    TimeSliderSetState(4)
    +    Test("batch_4_05")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test5():
    +    TestSection("Iso Export")
    +    dbs = ("iso_0000.visit","iso_0001.visit","iso_0002.visit","iso_0003.visit","iso_0004.visit")
    +    index = 0
    +    for db in dbs:
    +        OpenDatabase(db)
    +        AddPlot("Pseudocolor", "dom")
    +        DrawPlots()
    +
    +        v = GetView3D()
    +        v.viewNormal = (-0.433402, 0.101212, 0.895499)
    +        v.focus = (5, 5, 5)
    +        v.viewUp = (0.0882645, 0.993663, -0.0695889)
    +        v.viewAngle = 30
    +        v.parallelScale = 8.66025
    +        v.nearPlane = -17.3205
    +        v.farPlane = 17.3205
    +        v.imagePan = (0.00394299, 0.0327202)
    +        v.imageZoom = 1.34799
    +        v.perspective = 1
    +        v.eyeAngle = 2
    +        v.centerOfRotationSet = 0
    +        v.centerOfRotation = (5, 5, 5)
    +        v.axis3DScaleFlag = 0
    +        v.axis3DScales = (1, 1, 1)
    +        v.shear = (0, 0, 1)
    +        v.windowValid = 1
    +        SetView3D(v)
    +
    +        Test("batch_5_%02d" % index)
    +
    +        ChangeActivePlotsVar("xc")
    +        Test("batch_5_%02d" % (index+1))
    +        ChangeActivePlotsVar("radius")
    +        Test("batch_5_%02d" % (index+2))
    +        ChangeActivePlotsVar("q")
    +        Test("batch_5_%02d" % (index+3))
    +        index = index + 4
    +
    +        DeleteAllPlots()
    +        CloseDatabase(db)
    +
    +def test6():
    +    TestSection("Image Rendering")
    +    db = "batch*.png database"
    +    OpenDatabase(db)
    +    AddPlot("Truecolor", "color")
    +    AddOperator("Box")
    +    box = BoxAttributes()
    +    box.amount = box.Some  # Some, All
    +    box.minx = 230
    +    box.maxx = 1000
    +    box.miny = 45
    +    box.maxy = 1000
    +    box.minz = 0
    +    box.maxz = 1
    +    box.inverse = 0
    +    SetOperatorOptions(box)
    +    DrawPlots()
    +
    +    v = GetView2D()
    +    v.windowCoords = (0, 960, 0, 540)
    +    v.viewportCoords = (0.01, 0.99, 0.22, 0.99)
    +    v.fullFrameActivationMode = v.Auto  # On, Off, Auto
    +    v.fullFrameAutoThreshold = 100
    +    v.xScale = v.LINEAR  # LINEAR, LOG
    +    v.yScale = v.LINEAR  # LINEAR, LOG
    +    v.windowValid = 1
    +    SetView2D(v)
    +
    +    Test("batch_6_00")
    +    TimeSliderSetState(1)
    +    Test("batch_6_01")
    +    TimeSliderSetState(2)
    +    Test("batch_6_02")
    +    TimeSliderSetState(3)
    +    Test("batch_6_03")
    +    TimeSliderSetState(4)
    +    Test("batch_6_04")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test7():
    +    TestSection("Streamline Export")
    +    db = "streamline_*.vtk database"
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "colorVar")
    +    pc = PseudocolorAttributes(1)
    +    pc.lineWidth = 3
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, 1)
    +    v.focus = (5.2835, 5.2835, 5.2562)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 8.26953
    +    v.nearPlane = -16.5391
    +    v.farPlane = 16.5391
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1.33131
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (5.2835, 5.2835, 5.2562)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +    Test("batch_7_00")
    +
    +    ChangeActivePlotsVar("xc")
    +    Test("batch_7_01")
    +    ChangeActivePlotsVar("radius")
    +    Test("batch_7_02")
    +    ChangeActivePlotsVar("q")
    +    Test("batch_7_03")
    +
    +    TimeSliderSetState(2)
    +    Test("batch_7_04")
    +    TimeSliderSetState(4)
    +    Test("batch_7_05")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def main():
    +    # Create our simulation object.
    +    sim = TestBatchSimulation("batch")
    +    sim.addargument("-format")
    +    sim.addargument("VTK_1.0")
    +    sim.addargument("-maxcycles")
    +    sim.addargument("5")
    +    sim.addargument("-render")
    +    sim.addargument("1")
    +    sim.addargument("-export")
    +    sim.addargument("1")
    +
    +    # Test that we can start the simulation.
    +    sim.startsim()
    +    # This will wait for the simulation to complete.
    +    sim.endsim()
    +
    +    # Test the simulation outputs.
    +    test0()
    +    test1()
    +    test2()
    +    test3()
    +    test4()
    +    test5()
    +    test6()
    +    test7()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_csg.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_csg.html new file mode 100644 index 000000000..19cfc38b9 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_csg.html @@ -0,0 +1,114 @@ + +Results for simulation/csg.py + +

    Results of VisIt Regression Test - simulation/csg

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    csg000 modifications totalling 0 lines
    csg010 modifications totalling 0 lines
    csg020.000.00
    csg030.000.00
    csg040.000.00
    csg050.000.00
    csg060.000.00
    csg070.000.00
    csg080.000.00
    csg090.000.00
    csg100.000.00
    csg110.000.00
    csg120.000.00
    csg130 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_csg_py.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_csg_py.html new file mode 100644 index 000000000..2bb50295f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_csg_py.html @@ -0,0 +1,64 @@ +simulation/csg.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  csg.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              csg   - 3D csg mesh .
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 27, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("csg", "csg.sim2")
    +sim.addargument("-echo")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("csg00", sim)
    +
    +def simcommand(sim, com):
    +    sim.consolecommand(com)
    +    # Read from stderr to look for the echoed command. Sync.
    +    keepGoing = True
    +    while keepGoing:
    +        buf = sim.p.stderr.readline()
    +        print(buf)
    +        if "Command '%s'"%com in buf:
    +            keepGoing = False
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("csg01", sim.metadata())
    +
    +    AddPlot("Subset", "Regions")
    +    s = SubsetAttributes()
    +    s.smoothingLevel = 2
    +    SetPlotOptions(s)
    +    DrawPlots()
    +    Test("csg02")
    +
    +    times = "Times:\n"
    +    SetQueryOutputToValue();
    +    times = times + str(Query("Time")) + "\n"
    +    for i in range(10):
    +        simcommand(sim, 'step')
    +        simcommand(sim, 'step')
    +        simcommand(sim, 'update')
    +        Test("csg%02d" % (i+3))
    +        times = times + str(Query("Time")) + "\n"
    +
    +    TestText("csg13", times)
    +    DeleteAllPlots()
    +    SetQueryOutputToString()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_curve.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_curve.html new file mode 100644 index 000000000..3037d401c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_curve.html @@ -0,0 +1,66 @@ + +Results for simulation/curve.py + +

    Results of VisIt Regression Test - simulation/curve

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    curve000 modifications totalling 0 lines
    curve010 modifications totalling 0 lines
    curve020.000.00
    curve030.000.00
    curve040.000.00
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_curve_py.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_curve_py.html new file mode 100644 index 000000000..76fe027a1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_curve_py.html @@ -0,0 +1,61 @@ +simulation/curve.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  curve.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - curve
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       Jun 17, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("curve", "curve.sim2")
    +sim.addargument("-echo")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("curve00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("curve01", sim.metadata())
    +
    +    AddPlot("Curve", "sine")
    +    curveAtts = CurveAttributes(1)
    +    curveAtts.showLabels = 0
    +    curveAtts.lineWidth = 2
    +    SetPlotOptions(curveAtts)
    +    DrawPlots()
    +    Test("curve02")
    +
    +    # Read the 'VisIt connected' message
    +    buf = sim.p.stderr.readline()
    +    for i in range(25):
    +        sim.consolecommand("step")
    +        # Read from stderr to look for the echoed command.
    +        buf = sim.p.stderr.readline()
    +        print(buf)
    +        sim.consolecommand("update")
    +
    +    Test("curve03")
    +
    +    for i in range(25):
    +        sim.consolecommand("step")
    +        buf = sim.p.stderr.readline()
    +        print(buf)
    +        sim.consolecommand("update")
    +    Test("curve04")
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_domainbounds.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_domainbounds.html new file mode 100644 index 000000000..0d8d4f4d1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_domainbounds.html @@ -0,0 +1,56 @@ + +Results for simulation/domainbounds.py + +

    Results of VisIt Regression Test - simulation/domainbounds

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    domainbounds000 modifications totalling 0 lines
    domainbounds010 modifications totalling 0 lines
    domainbounds020.000.00
    domainbounds030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_domainbounds_py.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_domainbounds_py.html new file mode 100644 index 000000000..639ed1d97 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_domainbounds_py.html @@ -0,0 +1,47 @@ +simulation/domainbounds.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  domainbounds.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 3D rectilinear mesh
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 17, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("domainbounds", "domainbounds.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("domainbounds00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("domainbounds01", sim.metadata())
    +
    +    AddPlot("Subset", "Domains")
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (0.672727, 0.569817, 0.471961)
    +    v.viewUp = (-0.252634, 0.776445, -0.57733)
    +    SetView3D(v)
    +    Test("domainbounds02")
    +
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "zonal")
    +    DrawPlots()
    +    Test("domainbounds03")
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_domainlist.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_domainlist.html new file mode 100644 index 000000000..8360ff9c6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_domainlist.html @@ -0,0 +1,108 @@ + +Results for simulation/domainlist.py + +

    Results of VisIt Regression Test - simulation/domainlist

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    domainlist000 modifications totalling 0 lines
    domainlist010 modifications totalling 0 lines
    domainlist020.000.00
    domainlist030.000.00
    domainlist040.000.00
    domainlist050.000.00
    domainlist060.000.00
    domainlist070.000.00
    domainlist080.000.00
    domainlist090.000.00
    domainlist100.000.00
    domainlist110.000.00
    domainlist120 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_domainlist_py.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_domainlist_py.html new file mode 100644 index 000000000..ca87b25c3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_domainlist_py.html @@ -0,0 +1,125 @@ +simulation/domainlist.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  domainlist.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 2D,3D unstructured mesh.
    +#
    +#              Tests that VisIt's load balancer can accept different domain
    +#              lists from simulations and distribute work accordingly. If it
    +#              was to mess up then we would not get all domains for at least
    +#              one of the meshes.
    +#
    +#              This test must run in parallel.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Jun 26 17:19:08 PDT 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def step(sim):
    +    sim.consolecommand("step")
    +    # Read from stderr to look for the echoed command. Sync.
    +    keepGoing = True
    +    while keepGoing:
    +        buf = sim.p.stderr.readline()
    +        print(buf)
    +        if "Command step" in buf:
    +            keepGoing = False
    +
    +def set_the_view():
    +    v = GetView3D()
    +    v.viewNormal = (0.48257, -0.684101, 0.54693)
    +    v.focus = (0.95, 1.5, 0.5)
    +    v.viewUp = (-0.352936, 0.419625, 0.836272)
    +    v.viewAngle = 30
    +    v.parallelScale = 1.84459
    +    v.nearPlane = -3.68917
    +    v.farPlane = 3.68917
    +    v.imagePan = (0.0637817, 0.0407714)
    +    v.imageZoom = 1.04766
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.95, 1.5, 0.5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +def add_time(times):
    +    Query("Time")
    +    t2 = times + str(GetQueryOutputValue()) + "\n"
    +    return t2
    +
    +def start_time():
    +    return add_time("Times:\n")
    +
    +def test0(sim):
    +    AddPlot("Subset", "Domains(mesh)")
    +    AddPlot("Subset", "Domains(surface)")
    +    SetActivePlots((0,1))
    +    AddOperator("Reflect")
    +    r = ReflectAttributes()
    +    r.octant = r.PXPYPZ  # PXPYPZ, NXPYPZ, PXNYPZ, NXNYPZ, PXPYNZ, NXPYNZ, PXNYNZ, NXNYNZ
    +    r.useXBoundary = 1
    +    r.specifiedX = 0
    +    r.useYBoundary = 0
    +    r.specifiedY = 1.5
    +    r.useZBoundary = 1
    +    r.specifiedZ = 0
    +    r.reflections = (1, 0, 1, 0, 0, 0, 0, 0)
    +    SetOperatorOptions(r)
    +
    +    SetActivePlots(1)
    +    AddOperator("Transform", 0)
    +    trans = TransformAttributes()
    +    trans.doTranslate = 1
    +    trans.translateX = 1
    +    SetOperatorOptions(trans)
    +    DrawPlots()
    +    set_the_view()
    +
    +    # Advance some steps and make sure that we get all domains for each mesh
    +    times = start_time()
    +    idx = 2
    +    for i in range(10):
    +        Test("domainlist%02d" % idx)
    +        times = add_time(times)
    +        step(sim)
    +        idx = idx + 1
    +
    +    # Get the number of processors.
    +    e,s = GetEngineList(1)[0]
    +    text = "Engine Properties:\n" + str(GetEngineProperties(e,s)) + "\n" + times
    +    TestText("domainlist%02d" % idx, text)
    +    idx = idx + 1
    +    DeleteAllPlots()
    +
    +
    +
    +def main():
    +    # Create our simulation object.
    +    sim = TestParallelSimulation("globalids_par", "globalids_par.sim2", 4)
    +    sim.addargument("-echo")
    +
    +    # Test that we can start and connect to the simulation.
    +    started, connected = TestSimStartAndConnect("domainlist00", sim)
    +
    +    # Perform our tests.
    +    if connected:
    +        # Make sure the metadata is right.
    +        TestSimMetaData("domainlist01", sim.metadata())
    +        test0(sim)
    +
    +    # Close down the simulation.
    +    if started:
    +        sim.endsim()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_ghostcells.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_ghostcells.html new file mode 100644 index 000000000..5c267a8da --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_ghostcells.html @@ -0,0 +1,194 @@ + +Results for simulation/ghostcells.py + +

    Results of VisIt Regression Test - simulation/ghostcells

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ghostcells000 modifications totalling 0 lines
    ghostcells010 modifications totalling 0 lines
    Ghosting with meshes
    ghostcells020.000.00
    ghostcells030.000.00
    ghostcells040.000.00
    ghostcells050.000.00
    ghostcells060.000.00
    ghostcells070.000.00
    ghostcells080.000.00
    ghostcells090.000.00
    ghostcells100.000.00
    ghostcells110.000.00
    ghostcells120.000.00
    ghostcells130.000.00
    Ghosting with scalars
    ghostcells140.000.00
    ghostcells150.000.00
    ghostcells160.000.00
    ghostcells170.000.00
    ghostcells180.000.00
    ghostcells190.000.00
    ghostcells200.000.00
    ghostcells210.000.00
    ghostcells220.000.00
    ghostcells230.000.00
    ghostcells240.000.00
    ghostcells250.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_ghostcells_py.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_ghostcells_py.html new file mode 100644 index 000000000..da0f60513 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_ghostcells_py.html @@ -0,0 +1,84 @@ +simulation/ghostcells.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ghostcells.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 2D structured mesh.
    +#              scalars defined on material sub regions.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Dec 18 12:04:01 PST 2013
    +#
    +#
    +#  NOTES: #3, #17 do not look correct.
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("ghostcells", "ghostcells.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("ghostcells00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("ghostcells01", sim.metadata())
    +
    +    meshes = ("rect_blank", "curv_blank", "ucd_blank",
    +              "multi_domain_index", "multi_domain", "multi_types")
    +    scalars= ("rect_var", "curv_var", "ucd_var",
    +              "multi_var", "multi_var_index", "multi_types_var")
    +
    +    i = 2
    +    TestSection("Ghosting with meshes")
    +    for m in meshes:
    +        AddPlot("Subset", m)
    +        s = SubsetAttributes(1)
    +        if "multi" in m:
    +            s.opacity = 0.4
    +            SetPlotOptions(s)
    +        DrawPlots()
    +        ResetView()
    +        Test("ghostcells%02d" % i)
    +
    +        s.colorType = s.ColorBySingleColor
    +        s.singleColor = (0,0,255,255)
    +        SetPlotOptions(s)
    +        AddOperator("InverseGhostZone")
    +        s.opacity = 1.
    +        SetPlotOptions(s)
    +        DrawPlots()
    +        Test("ghostcells%02d" % (i+1))
    +        DeleteAllPlots()
    +        i = i + 2
    +
    +    TestSection("Ghosting with scalars")
    +    for s in scalars:
    +        AddPlot("Pseudocolor", s)
    +        pc = PseudocolorAttributes(1)
    +        if "multi" in s:
    +            pc.opacityType = pc.Constant
    +            pc.opacity = 0.4
    +            SetPlotOptions(pc)
    +        DrawPlots()
    +        ResetView()
    +        Test("ghostcells%02d" % i)
    +
    +        AddOperator("InverseGhostZone")
    +        pc.opacity = 1.0
    +        SetPlotOptions(pc)
    +        DrawPlots()
    +        Test("ghostcells%02d" % (i+1))
    +        DeleteAllPlots()
    +        i = i + 2
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_globalids.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_globalids.html new file mode 100644 index 000000000..45335e956 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_globalids.html @@ -0,0 +1,196 @@ + +Results for simulation/globalids.py + +

    Results of VisIt Regression Test - simulation/globalids

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    globalids000 modifications totalling 0 lines
    globalids010 modifications totalling 0 lines
    Topologically 3D meshes in 3D
    globalids020.000.00
    globalids030.000.00
    globalids040.000.00
    globalids050.000.00
    globalids060.000.00
    globalids070.000.00
    globalids080.000.00
    globalids090.000.00
    globalids100.000.00
    globalids110.000.00
    globalids120.000.00
    globalids130 modifications totalling 0 lines
    Topologically 2D meshes in 3D
    globalids_1_000.000.00
    globalids_1_010.000.00
    globalids_1_020.000.00
    globalids_1_030.000.00
    globalids_1_040.000.00
    globalids_1_050.000.00
    globalids_1_060.000.00
    globalids_1_070.000.00
    globalids_1_080.000.00
    globalids_1_090.000.00
    globalids_1_100.000.00
    globalids_1_110.000.00
    globalids_1_120 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_globalids_py.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_globalids_py.html new file mode 100644 index 000000000..c696f2844 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_globalids_py.html @@ -0,0 +1,218 @@ +simulation/globalids.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  globalids.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 3D unstructured mesh.
    +#              global node and cell ids
    +#              unstructured ghost cell generation from global ids
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Tue Jun 17 16:32:51 PDT 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def step(sim):
    +    sim.consolecommand("step")
    +    # Read from stderr to look for the echoed command. Sync.
    +    keepGoing = True
    +    while keepGoing:
    +        buf = sim.p.stderr.readline()
    +        print(buf)
    +        if "Command step" in buf:
    +            keepGoing = False
    +
    +def set_the_view():
    +    v = GetView3D()
    +    v.viewNormal = (-0.707418, 0.404282, 0.579755)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.294715, 0.914272, -0.27794)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.imagePan = (0, 0.0589478)
    +    v.imageZoom = 1.0963
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 0.5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +def set_the_view2():
    +    v = GetView3D()
    +    v.viewNormal = (-0.542717, -0.70433, 0.457578)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.252732, 0.3826, 0.888675)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.722842
    +    v.nearPlane = -1.44568
    +    v.farPlane = 1.44568
    +    v.imagePan = (-0.00135472, 0.013532)
    +    v.imageZoom = 1.12868
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 0.5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +def add_time(times):
    +    Query("Time")
    +    t2 = times + str(GetQueryOutputValue()) + "\n"
    +    return t2
    +
    +def start_time():
    +    return add_time("Times:\n")
    +
    +def test0(sim):
    +    TestSection("Topologically 3D meshes in 3D")
    +    DefineScalarExpression("gnid", "global_nodeid(mesh)")
    +    DefineScalarExpression("gzid", "global_zoneid(mesh)")
    +    DefineScalarExpression("nid",  "nodeid(mesh)")
    +
    +    AddPlot("Pseudocolor", "nid")
    +    DrawPlots()
    +    set_the_view()
    +    Test("globalids02")
    +
    +    ChangeActivePlotsVar("gzid")
    +    DrawPlots()
    +    Test("globalids03")
    +
    +    ChangeActivePlotsVar("gnid")
    +    DrawPlots()
    +    Test("globalids04")
    +    DeleteAllPlots()
    +
    +    AddPlot("Subset", "Domains")
    +    DrawPlots()
    +    Test("globalids05")
    +
    +    # Make sure that the plot is hollow
    +    s = SubsetAttributes(1)
    +    s_clear = SubsetAttributes(1)
    +    s_clear.opacity = 0.25
    +    s_clear.colorType = s_clear.ColorBySingleColor
    +    s_clear.singleColor = (200,200,200,255)
    +    SetPlotOptions(s_clear)
    +    DrawPlots()
    +    Test("globalids06")
    +
    +    # Advance some steps and make sure that the plot
    +    # stays transparent. We're changing the size of the
    +    # domains at each time step and thus the global ids.
    +    times = start_time()
    +    idx = 7
    +    for i in range(3):
    +        # Advance some steps. This should make the plots update.
    +        nsteps = 5
    +        for j in range(nsteps):
    +            step(sim)
    +            DrawPlots()
    +        times = add_time(times)
    +        SetPlotOptions(s)
    +        Test("globalids%02d" % idx)
    +        idx = idx + 1
    +        SetPlotOptions(s_clear)
    +        Test("globalids%02d" % idx)
    +        idx = idx + 1
    +
    +    TestText("globalids%02d" % idx, times)
    +    idx = idx + 1
    +    DeleteAllPlots()
    +
    +def hideplot(id):
    +    pl = GetPlotList()
    +    if pl.GetPlots(id).hiddenFlag == 0:
    +        SetActivePlots(id)
    +        HideActivePlots()
    +
    +def showplot(id):
    +    pl = GetPlotList()
    +    if pl.GetPlots(id).hiddenFlag == 1:
    +        SetActivePlots(id)
    +        HideActivePlots()
    +
    +def test1(sim):
    +    TestSection("Topologically 2D meshes in 3D")
    +    DefineScalarExpression("gnid2d", "global_nodeid(surface)")
    +    DefineScalarExpression("gzid2d", "global_zoneid(surface)")
    +    DefineScalarExpression("nid2d",  "nodeid(surface)")
    +
    +    AddPlot("FilledBoundary", "surfacemat")
    +    fb = FilledBoundaryAttributes(1)
    +    fb.colorType = fb.ColorBySingleColor
    +    fb.singleColor = (0,0,0,255)
    +    fb.wireframe = 1
    +    fb.lineWidth = 3
    +    SetPlotOptions(fb)
    +    AddPlot("Subset", "Domains(surface)")
    +    AddPlot("Pseudocolor", "nid2d")
    +    DrawPlots()
    +    set_the_view2()
    +
    +    idx = 0
    +    times = start_time()
    +    ntests = 4
    +    for i in range(3):
    +        ids = [idx+j for j in range(ntests)]
    +        # Show the Subset plot
    +        showplot(1)
    +        hideplot(2)
    +        Test("globalids_1_%02d" % ids[0])
    +
    +        # Show the Pseudocolor plot
    +        hideplot(1)
    +        showplot(2)
    +        ChangeActivePlotsVar("nid2d")
    +        Test("globalids_1_%02d" % ids[1])
    +
    +        ChangeActivePlotsVar("gnid2d")
    +        Test("globalids_1_%02d" % ids[2])
    +
    +        ChangeActivePlotsVar("gzid2d")
    +        Test("globalids_1_%02d" % ids[3])
    +        SetActivePlots(0)
    +        times = add_time(times)
    +
    +        # Take a step.
    +        showplot(1)
    +        step(sim)
    +        idx = idx + ntests
    +
    +    TestText("globalids_1_%02d" % idx, times)
    +    DeleteAllPlots()
    +
    +def main():
    +    # Create our simulation object.
    +    sim = TestSimulation("globalids", "globalids.sim2")
    +    sim.addargument("-echo")
    +
    +    # Test that we can start and connect to the simulation.
    +    started, connected = TestSimStartAndConnect("globalids00", sim)
    +
    +    # Perform our tests.
    +    if connected:
    +        # Make sure the metadata is right.
    +        TestSimMetaData("globalids01", sim.metadata())
    +        test0(sim)
    +        test1(sim)
    +
    +    # Close down the simulation.
    +    if started:
    +        sim.endsim()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_interleave.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_interleave.html new file mode 100644 index 000000000..db3f2bcec --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_interleave.html @@ -0,0 +1,188 @@ + +Results for simulation/interleave.py + +

    Results of VisIt Regression Test - simulation/interleave

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    interleave000 modifications totalling 0 lines
    interleave010 modifications totalling 0 lines
    interleave020.000.00
    interleave030.000.00
    interleave040.000.00
    interleave050.000.00
    interleave060.000.00
    interleave070.000.00
    interleave080.000.00
    interleave090.000.00
    interleave100.000.00
    interleave110.000.00
    interleave120.000.00
    interleave130.000.00
    interleave140.000.00
    interleave150.000.00
    interleave160.000.00
    interleave170.000.00
    interleave180.000.00
    interleave190.000.00
    interleave200.000.00
    interleave210.000.00
    interleave220.000.00
    interleave230.000.00
    interleave240.000.00
    interleave250.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_interleave_py.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_interleave_py.html new file mode 100644 index 000000000..dd15405ff --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_interleave_py.html @@ -0,0 +1,86 @@ +simulation/interleave.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  interleave.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       June 17, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("interleave", "interleave.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("interleave00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("interleave01", sim.metadata())
    +
    +    meshes2d = ("curv2d_static_float", "curv2d_static_double",
    +                "curv2d_dynamic_float", "curv2d_dynamic_double",
    +
    +                "point2d_static_float", "point2d_static_double",
    +                "point2d_dynamic_float", "point2d_dynamic_double",
    +
    +                "ucd2d_static_float", "ucd2d_static_double",
    +                "ucd2d_dynamic_float", "ucd2d_dynamic_double")
    +
    +    meshes3d = ("curv3d_static_float", "curv3d_static_double",
    +                "curv3d_dynamic_float", "curv3d_dynamic_double",
    +
    +                "point3d_static_float", "point3d_static_double",
    +                "point3d_dynamic_float", "point3d_dynamic_double",
    +
    +                "ucd3d_static_float", "ucd3d_static_double",
    +                "ucd3d_dynamic_float", "ucd3d_dynamic_double")
    +
    +    i = 2
    +    meshAtts = MeshAttributes()
    +    meshAtts.pointSizePixels = 10
    +    meshAtts.lineWidth = 2
    +    SetDefaultPlotOptions(meshAtts)
    +
    +    v2 = GetView2D()
    +    v2.windowCoords = (-0.104083, 4.10408, -0.369428, 3.36943)
    +    v2.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    AddPlot("Mesh", "%s"%meshes2d[0])
    +    DrawPlots()
    +    SetView2D(v2)
    +    Test("interleave%02d" % i)
    +    i = i + 1
    +
    +    for m in meshes2d[1:]:
    +        ChangeActivePlotsVar(m)
    +        DrawPlots()
    +        Test("interleave%02d" % i)
    +        i = i + 1
    +
    +    DeleteAllPlots()
    +
    +    AddPlot("Mesh", "%s"%meshes3d[0])
    +    DrawPlots()
    +    ResetView()
    +    Test("interleave%02d" % i)
    +    i = i + 1
    +
    +    for m in meshes3d[1:]:
    +        ChangeActivePlotsVar(m)
    +        DrawPlots()
    +        Test("interleave%02d" % i)
    +        i = i + 1
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_life.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_life.html new file mode 100644 index 000000000..b08bc0fed --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_life.html @@ -0,0 +1,58 @@ + +Results for simulation/life.py + +

    Results of VisIt Regression Test - simulation/life

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    life000 modifications totalling 0 lines
    life010 modifications totalling 0 lines
    life020.000.00
    life0332.5531.12
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_life_py.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_life_py.html new file mode 100644 index 000000000..93f79c7ac --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_life_py.html @@ -0,0 +1,43 @@ +simulation/life.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  life.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 2D rectilinear mesh
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 17, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("life", "life.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("life00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("life01", sim.metadata())
    +
    +    AddPlot("Pseudocolor", "life")
    +    DrawPlots()
    +    Test("life02")
    +
    +    # Run the simulation for awhile to get a different image
    +    for i in range(100):
    +        sim.consolecommand("step")
    +    Test("life03")
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_mandelbrot.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_mandelbrot.html new file mode 100644 index 000000000..e4f29ad04 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_mandelbrot.html @@ -0,0 +1,78 @@ + +Results for simulation/mandelbrot.py + +

    Results of VisIt Regression Test - simulation/mandelbrot

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    mandelbrot000 modifications totalling 0 lines
    mandelbrot010 modifications totalling 0 lines
    mandelbrot020.000.00
    mandelbrot030.000.00
    mandelbrot040 modifications totalling 0 lines
    mandelbrot050.000.00
    mandelbrot060.000.00
    mandelbrot070.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_mandelbrot_py.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_mandelbrot_py.html new file mode 100644 index 000000000..086e332e1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_mandelbrot_py.html @@ -0,0 +1,77 @@ +simulation/mandelbrot.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  mandelbrot.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 2D structured mesh.
    +#              scalars
    +#              AMR
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Dec 18 12:04:01 PST 2013
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +import time
    +
    +# Create our simulation object.
    +sim = TestSimulation("mandelbrot", "mandelbrot.sim2")
    +sim.addargument("-echo")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("mandelbrot00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("mandelbrot01", sim.metadata())
    +
    +    AddPlot("Pseudocolor", "mandelbrot")
    +    DrawPlots()
    +    v = GetView2D()
    +    v.viewportCoords = (0., 1., 0., 1.)
    +    SetView2D(v)
    +    Test("mandelbrot02")
    +
    +    # Advance some steps and update the plots.
    +
    +    # Read the "VisIt connected" message.
    +    buf = sim.p.stderr.readline()
    +    for i in range(12):
    +        sim.consolecommand("step")
    +        # Read from stderr to look for the echoed command.
    +        buf = sim.p.stderr.readline()
    +        print(buf)
    +        time.sleep(1)
    +    # Update the data for the new time step.
    +    sim.consolecommand("update")
    +    Test("mandelbrot03")
    +
    +    # Make sure the metadata has updated.
    +    TestSimMetaData("mandelbrot04", sim.metadata())
    +
    +    # Test transparency to see if nesting is used.
    +    pc = PseudocolorAttributes(1)
    +    pc.opacityType = pc.Constant
    +    pc.opacity = 0.5
    +    SetPlotOptions(pc)
    +    Test("mandelbrot05")
    +
    +    DeleteActivePlots()
    +    AddPlot("Subset", "levels")
    +    DrawPlots()
    +    Test("mandelbrot06")
    +
    +    ChangeActivePlotsVar("patches")
    +    Test("mandelbrot07")
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_material.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_material.html new file mode 100644 index 000000000..d15f44ee3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_material.html @@ -0,0 +1,62 @@ + +Results for simulation/material.py + +

    Results of VisIt Regression Test - simulation/material

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    material000 modifications totalling 0 lines
    material010 modifications totalling 0 lines
    material020.000.00
    material030.000.00
    material040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_material_py.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_material_py.html new file mode 100644 index 000000000..3b0a7ada0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_material_py.html @@ -0,0 +1,59 @@ +simulation/material.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  material.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              material   - 2D structured/unstructured material.
    +#              materials
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Dec 18 12:04:01 PST 2013
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Force MIR
    +m = GetMaterialAttributes()
    +m.forceMIR = 1
    +SetMaterialAttributes(m)
    +
    +# Create our simulation object.
    +sim = TestSimulation("material", "material.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("material00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("material01", sim.metadata())
    +
    +    AddPlot("Mesh", "mesh2d")
    +    m = MeshAttributes(1)
    +    m.lineWidth = 1
    +    SetPlotOptions(m)
    +    AddPlot("FilledBoundary", "Material")
    +    DrawPlots()
    +    Test("material02")
    +
    +    DeleteActivePlots()
    +    AddPlot("Pseudocolor", "scalar")
    +    DrawPlots()
    +    Test("material03")
    +    DeleteAllPlots()
    +
    +    # Make a new plot.
    +    AddPlot("Mesh", "ucdmesh")
    +    SetPlotOptions(m)
    +    AddPlot("FilledBoundary", "MaterialFromArrays")
    +    DrawPlots()
    +    Test("material04")
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_materialvar.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_materialvar.html new file mode 100644 index 000000000..c3ffe256f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_materialvar.html @@ -0,0 +1,104 @@ + +Results for simulation/materialvar.py + +

    Results of VisIt Regression Test - simulation/materialvar

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    materialvar000 modifications totalling 0 lines
    materialvar010 modifications totalling 0 lines
    materialvar020.000.00
    materialvar030.000.00
    materialvar040.000.00
    materialvar050.000.00
    materialvar060.000.00
    materialvar070.000.00
    materialvar080.000.00
    materialvar090.000.00
    materialvar100.000.00
    materialvar110.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_materialvar_py.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_materialvar_py.html new file mode 100644 index 000000000..f62d89bed --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_materialvar_py.html @@ -0,0 +1,58 @@ +simulation/materialvar.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  materialvar.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 2D structured mesh.
    +#              scalars defined on material sub regions.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Dec 18 12:04:01 PST 2013
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("materialvar", "materialvar.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("materialvar00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("materialvar01", sim.metadata())
    +
    +    AddPlot("Mesh", "mesh2d")
    +    AddPlot("FilledBoundary", "Material")
    +    DrawPlots()
    +    Test("materialvar02")
    +    DeleteActivePlots()
    +
    +    scalars = ("scalar",
    +               "zonal_scalar_on_mat1",
    +               "zonal_scalar_on_mat2",
    +               "zonal_scalar_on_mat3",
    +               "zonal_scalar_on_mats12",
    +               "nodal_scalar_on_mat1",
    +               "nodal_scalar_on_mat2",
    +               "nodal_scalar_on_mat3",
    +               "nodal_scalar_on_mats23")
    +    i = 3
    +    for s in scalars:
    +        AddPlot("Pseudocolor", s)
    +        DrawPlots()
    +        Test("materialvar%02d" % i)
    +        DeleteActivePlots()
    +        i = i + 1
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_mesh.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_mesh.html new file mode 100644 index 000000000..3039451ef --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_mesh.html @@ -0,0 +1,62 @@ + +Results for simulation/mesh.py + +

    Results of VisIt Regression Test - simulation/mesh

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    mesh000 modifications totalling 0 lines
    mesh010 modifications totalling 0 lines
    mesh020.000.00
    mesh030.000.00
    mesh040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_mesh_py.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_mesh_py.html new file mode 100644 index 000000000..86c51bf92 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_mesh_py.html @@ -0,0 +1,53 @@ +simulation/mesh.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  mesh.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 2D and 3D structured mesh.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Dec 18 12:04:01 PST 2013
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("mesh", "mesh.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("mesh00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("mesh01", sim.metadata())
    +
    +    AddPlot("Mesh", "mesh2d")
    +    m = MeshAttributes(1)
    +    m.lineWidth = 1
    +    SetPlotOptions(m)
    +    DrawPlots()
    +    Test("mesh02")
    +
    +    ChangeActivePlotsVar("mesh3d")
    +    Test("mesh03")
    +    DeleteAllPlots()
    +
    +    # Disconnect and reconnect.
    +    sim.disconnect()
    +    sim.connect()
    +
    +    # Make a new plot.
    +    AddPlot("Mesh", "mesh2d")
    +    SetPlotOptions(m)
    +    DrawPlots()
    +    Test("mesh04")
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_multiblock.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_multiblock.html new file mode 100644 index 000000000..a5a00d831 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_multiblock.html @@ -0,0 +1,68 @@ + +Results for simulation/multiblock.py + +

    Results of VisIt Regression Test - simulation/multiblock

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    multiblock000 modifications totalling 0 lines
    multiblock010 modifications totalling 0 lines
    multiblock020.000.00
    multiblock030.000.00
    multiblock040.000.00
    multiblock050.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_multiblock_py.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_multiblock_py.html new file mode 100644 index 000000000..da993e73b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_multiblock_py.html @@ -0,0 +1,56 @@ +simulation/multiblock.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  multiblock.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 2D structured mesh.
    +#              scalars
    +#              domain boundaries
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Dec 18 12:04:01 PST 2013
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("multiblock", "multiblock.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("multiblock00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("multiblock01", sim.metadata())
    +
    +    AddPlot("Mesh", "mesh2d")
    +    AddPlot("Pseudocolor", "domainID")
    +    DrawPlots()
    +    Test("multiblock02")
    +
    +    # Force nodal centering to test domain boundary information.
    +    pc = PseudocolorAttributes(1)
    +    pc.centering = pc.Nodal
    +    SetPlotOptions(pc)
    +    Test("multiblock03")
    +
    +    DeleteActivePlots()
    +
    +    AddPlot("Subset", "Domains")
    +    DrawPlots()
    +    Test("multiblock04")
    +
    +    ChangeActivePlotsVar("Blocks")
    +    Test("multiblock05")
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_point.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_point.html new file mode 100644 index 000000000..c115ef856 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_point.html @@ -0,0 +1,92 @@ + +Results for simulation/point.py + +

    Results of VisIt Regression Test - simulation/point

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    point000 modifications totalling 0 lines
    point010 modifications totalling 0 lines
    point020.000.00
    point030.000.00
    point040.000.00
    point050.000.00
    point060.000.00
    point070.000.00
    point080.000.00
    point090.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_point_py.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_point_py.html new file mode 100644 index 000000000..47f6309f1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_point_py.html @@ -0,0 +1,79 @@ +simulation/point.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  point.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   -  point mesh
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 25, 2014 
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("point", "point.sim2")
    +sim.addargument("-echo")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("point00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("point01", sim.metadata())
    +
    +    # 2d mesh and points
    +    AddPlot("Mesh", "point3d")
    +    meshAtts = MeshAttributes()
    +    meshAtts.pointSizePixels = 3
    +    SetPlotOptions(meshAtts)
    +    DrawPlots()
    +    Test("point02")
    +
    +    v = GetView3D()
    +    v.viewNormal = (0, 1, 0)
    +    v.viewUp     = (0, 0, -1)
    +    SetView3D(v)
    +
    +    Test("point03")
    +
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "pointvar")
    +    pcAtts = PseudocolorAttributes()
    +    pcAtts.pointSizePixels = 3
    +    SetPlotOptions(pcAtts)
    +    DrawPlots()
    +    Test("point04")
    +
    +    ResetView()
    +    Test("point05")
    +
    +    AddOperator("Project")
    +    DrawPlots()
    +    Test("point06")
    +
    +    projAtts = ProjectAttributes()
    +    projAtts.projectionType = projAtts.ZYCartesian
    +    SetOperatorOptions(projAtts)
    +    Test("point07")
    +
    +    projAtts.projectionType = projAtts.XRCylindrical
    +    SetOperatorOptions(projAtts)
    +    Test("point08")
    +
    +    projAtts.projectionType = projAtts.ZRCylindrical
    +    SetOperatorOptions(projAtts)
    +    Test("point09")
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_polyhedral.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_polyhedral.html new file mode 100644 index 000000000..77cc23b3d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_polyhedral.html @@ -0,0 +1,68 @@ + +Results for simulation/polyhedral.py + +

    Results of VisIt Regression Test - simulation/polyhedral

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    polyhedral000 modifications totalling 0 lines
    polyhedral010 modifications totalling 0 lines
    polyhedral020.000.00
    polyhedral030.000.00
    polyhedral040.000.00
    polyhedral050.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_polyhedral_py.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_polyhedral_py.html new file mode 100644 index 000000000..0ea42e6ab --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_polyhedral_py.html @@ -0,0 +1,64 @@ +simulation/polyhedral.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  polyhedral.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              polyhedral   - 3D polyhedral.
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 26, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("polyhedral", "polyhedral.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("polyhedral00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("polyhedral01", sim.metadata())
    +
    +    AddPlot("Mesh", "polyhedral")
    +    m = MeshAttributes(1)
    +    m.lineWidth = 2
    +    m.opaqueMode = m.Off
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0.04, 0.66, 0.74)
    +    v.viewUp = (-0.35, 0.71, -0.62)
    +    SetView3D(v)
    +    Test("polyhedral02")
    +
    +    AddPlot("Pseudocolor", "nodal")
    +    DrawPlots()
    +    Test("polyhedral03")
    +
    +    ChangeActivePlotsVar("zonal")
    +    SetActivePlots(0)
    +    # show the tesselation that occured on the polyhedral zone
    +    m.showInternal = 1
    +    SetPlotOptions(m)
    +    DrawPlots()
    +    Test("polyhedral04")
    +
    +    SetActivePlots(1)
    +    DeleteActivePlots()
    +
    +    Test("polyhedral05")
    +
    +    DeleteAllPlots()
    +
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_scalar.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_scalar.html new file mode 100644 index 000000000..2d0776183 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_scalar.html @@ -0,0 +1,56 @@ + +Results for simulation/scalar.py + +

    Results of VisIt Regression Test - simulation/scalar

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    scalar000 modifications totalling 0 lines
    scalar010 modifications totalling 0 lines
    scalar020.000.00
    scalar030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_scalar_py.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_scalar_py.html new file mode 100644 index 000000000..fcd3641bf --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_scalar_py.html @@ -0,0 +1,57 @@ +simulation/scalar.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  scalar.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       June 18, 2014
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Replace obsolete Label text attributes with new versions.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("scalar", "scalar.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("scalar00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("scalar01", sim.metadata())
    +
    +    # 2d mesh and scalars
    +    AddPlot("Mesh", "mesh2d")
    +    AddPlot("Pseudocolor", "zonal")
    +    AddPlot("Label", "zonal")
    +    LabelAtts = LabelAttributes()
    +    LabelAtts.textFont1.scale = 7
    +    SetPlotOptions(LabelAtts)
    +    DrawPlots()
    +    Test("scalar02")
    +
    +    DeleteAllPlots()
    +
    +    # 2d mesh and scalars
    +    AddPlot("Mesh", "mesh3d")
    +    AddPlot("Pseudocolor", "nodal")
    +    AddPlot("Label", "nodal")
    +    LabelAtts = LabelAttributes()
    +    LabelAtts.textFont1.scale = 7
    +    LabelAtts.depthTestMode = LabelAtts.LABEL_DT_NEVER
    +    SetPlotOptions(LabelAtts)
    +
    +    DrawPlots()
    +    Test("scalar03")
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_species.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_species.html new file mode 100644 index 000000000..ae305e7eb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_species.html @@ -0,0 +1,137 @@ + +Results for simulation/species.py + +

    Results of VisIt Regression Test - simulation/species

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    species000 modifications totalling 0 lines
    species010 modifications totalling 0 lines
    species020.000.00
    species030.000.00
    Force MIR
    species040.000.00
    Turn off materials
    species050.000.00
    species060.000.00
    species070.000.00
    Turn off species
    species080.000.00
    species090.000.00
    species100.000.00
    species110.000.00
    species120.000.00
    species130.000.00
    species140.000.00
    species150.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_species_py.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_species_py.html new file mode 100644 index 000000000..804458850 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_species_py.html @@ -0,0 +1,83 @@ +simulation/species.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  species.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       July 9, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Force MIR
    +#m = GetMaterialAttributes()
    +#m.forceMIR = 1
    +#SetMaterialAttributes(m)
    +
    +# Create our simulation object.
    +sim = TestSimulation("species", "species.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("species00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("species01", sim.metadata())
    +
    +    AddPlot("FilledBoundary", "Material")
    +    DrawPlots()
    +    Test("species02")
    +
    +    DeleteActivePlots()
    +    AddPlot("Pseudocolor", "scalar")
    +    DrawPlots()
    +    Test("species03")
    +
    +    DeleteAllPlots()
    +    TestSection("Force MIR")
    +    # Force MIR
    +    m = GetMaterialAttributes()
    +    m.forceMIR = 1
    +    SetMaterialAttributes(m)
    +
    +    AddPlot("Pseudocolor", "scalar")
    +    DrawPlots()
    +    Test("species04")
    +
    +    TestSection("Turn off materials")
    +    TurnMaterialsOff("Water")
    +    DrawPlots()
    +    Test("species05")
    +
    +    TurnMaterialsOn("Water")
    +    TurnMaterialsOff("Membrane")
    +    DrawPlots()
    +    Test("species06")
    +
    +    TurnMaterialsOn("Membrane")
    +    TurnMaterialsOff("Air")
    +    DrawPlots()
    +    Test("species07")
    +
    +    TurnMaterialsOn("Air")
    +
    +    TestSection("Turn off species")
    +    s = SILRestriction()
    +    for i in range(8):
    +        s.TurnOffSet(s.SetsInCategory("Species")[i])
    +        SetPlotSILRestriction(s)
    +        s.TurnOnSet(s.SetsInCategory("Species")[i])
    +        Test("species%02d"%(i+8))
    +    DeleteAllPlots()
    +
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_ucdcurve.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_ucdcurve.html new file mode 100644 index 000000000..effa35c40 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_ucdcurve.html @@ -0,0 +1,66 @@ + +Results for simulation/ucdcurve.py + +

    Results of VisIt Regression Test - simulation/ucdcurve

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ucdcurve000 modifications totalling 0 lines
    ucdcurve010 modifications totalling 0 lines
    ucdcurve020.000.00
    ucdcurve030.000.00
    ucdcurve040.000.00
    ucdcurve050 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_ucdcurve_py.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_ucdcurve_py.html new file mode 100644 index 000000000..908de6805 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_ucdcurve_py.html @@ -0,0 +1,72 @@ +simulation/ucdcurve.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ucdcurve.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - ucdcurve
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       Jun 24, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +import time
    +
    +# Create our simulation object.
    +sim = TestSimulation("ucdcurve", "ucdcurve.sim2")
    +sim.addargument("-echo")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("ucdcurve00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("ucdcurve01", sim.metadata())
    +
    +    AddPlot("Pseudocolor", "nodal")
    +    pcAtts = PseudocolorAttributes()
    +    pcAtts.lineWidth = 4
    +    SetPlotOptions(pcAtts)
    +    DrawPlots()
    +    Test("ucdcurve02")
    +
    +    times = "Times:\n"
    +    Query("Time")
    +    times = times + str(GetQueryOutputValue()) + "\n"
    +
    +    # Read the 'VisIt connected' message
    +    buf = sim.p.stderr.readline()
    +    for i in range(4):
    +        sim.consolecommand("step")
    +        # Read from stderr to look for the echoed command.
    +        buf = sim.p.stderr.readline()
    +        time.sleep(1)
    +    Test("ucdcurve03")
    +
    +    Query("Time")
    +    times = times + str(GetQueryOutputValue()) + "\n"
    +
    +    ChangeActivePlotsVar("zonal")
    +
    +    for i in range(10):
    +        sim.consolecommand("step")
    +        buf = sim.p.stderr.readline()
    +        time.sleep(1)
    +    Test("ucdcurve04")
    +
    +    Query("Time")
    +    times = times + str(GetQueryOutputValue()) + "\n"
    +
    +    TestText("ucdcurve05", times)
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_unstructured.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_unstructured.html new file mode 100644 index 000000000..290148363 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_unstructured.html @@ -0,0 +1,50 @@ + +Results for simulation/unstructured.py + +

    Results of VisIt Regression Test - simulation/unstructured

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    unstructured000 modifications totalling 0 lines
    unstructured010 modifications totalling 0 lines
    unstructured020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_unstructured_py.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_unstructured_py.html new file mode 100644 index 000000000..5a5e77961 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_unstructured_py.html @@ -0,0 +1,44 @@ +simulation/unstructured.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  unstructured.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              unstructured   - 3D unstructured.
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 18, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("unstructured", "unstructured.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("unstructured00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("unstructured01", sim.metadata())
    +
    +    AddPlot("Mesh", "unstructured3d")
    +    m = MeshAttributes(1)
    +    m.lineWidth = 1
    +    SetPlotOptions(m)
    +    AddPlot("Subset", "Domains")
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (0.707107, 0, 0.707107)
    +    SetView3D(v)
    +    Test("unstructured02")
    +
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_updateplots.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_updateplots.html new file mode 100644 index 000000000..d85377bbf --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_updateplots.html @@ -0,0 +1,90 @@ + +Results for simulation/updateplots.py + +

    Results of VisIt Regression Test - simulation/updateplots

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    updateplots000 modifications totalling 0 lines
    updateplots010 modifications totalling 0 lines
    updateplots020.000.00
    updateplots030.000.00
    updateplots040.000.00
    updateplots050.000.00
    updateplots060.000.00
    updateplots070.000.00
    updateplots080.000.00
    updateplots090 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_updateplots_py.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_updateplots_py.html new file mode 100644 index 000000000..cc466d117 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_updateplots_py.html @@ -0,0 +1,89 @@ +simulation/updateplots.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  updateplots.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 18, 2014 
    +#
    +#  Modifications:
    +#   Kathleen Biagas, Fri Sep 10 09:37:11 PDT 2021
    +#   Added test for exporting vtk.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("updateplots", "updateplots.sim2")
    +sim.addargument("-echo")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("updateplots00", sim)
    +
    +def step(sim):
    +    sim.consolecommand("step")
    +    # Read from stderr to look for the echoed command. Sync.
    +    keepGoing = True
    +    while keepGoing:
    +        buf = sim.p.stderr.readline()
    +        print(buf)
    +        if "Command 'step'" in buf:
    +            keepGoing = False
    +
    +def testExportVTK(sim):
    +    # default export FileFormat for VTK is Legacy ascii (.vtk extension),
    +    # Test an export that sets the FileFormat to XML Binary (.vtr extension)
    +    sim.consolecommand("exportVTK")
    +    # Read from stderr to look for the echoed command. Sync.
    +    keepGoing = True
    +    while keepGoing:
    +        buf = sim.p.stderr.readline()
    +        print(buf)
    +        if "Command 'exportVTK'" in buf:
    +            keepGoing = False
    +    TestValueEQ("updateplots_export0000.vtr exists",
    +         os.path.isfile(os.path.join(TestEnv.params["run_dir"], "updateplots_export0000.vtr")),
    +         True)
    +
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("updateplots01", sim.metadata())
    +
    +    # 2d mesh and updateplotss
    +    #AddPlot("Mesh", "mesh2d")
    +    AddPlot("Pseudocolor", "zonal")
    +    AddPlot("Vector", "zvec")
    +    VectorAtts = VectorAttributes()
    +    VectorAtts.scale = 0.5
    +    VectorAtts.colorByMagnitude = 0
    +    VectorAtts.vectorColor = (255, 255, 255, 255)
    +    SetPlotOptions(VectorAtts)
    +    DrawPlots()
    +    Test("updateplots02")
    +
    +    i = 3
    +    times = "Times:\n"
    +    Query("Time")
    +    times = times + str(GetQueryOutputValue()) + "\n"
    +    for outer in range(6):
    +        for inner in range(3):
    +            step(sim)
    +        Query("Time")
    +        times = times + str(GetQueryOutputValue()) + "\n"
    +        Test("updateplots%02d"%i)
    +        i = i+1
    +
    +    TestText("updateplots%02d"%i, times)
    +
    +    # Uncomment this when #17008 is fixed (crash when Logging ExportDBRPC)
    +    #testExportVTK(sim)
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_updateplots_session.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_updateplots_session.html new file mode 100644 index 000000000..14e948341 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_updateplots_session.html @@ -0,0 +1,99 @@ + +Results for simulation/updateplots_session.py + +

    Results of VisIt Regression Test - simulation/updateplots_session

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Testing batch simulation with session file
    updateplots_session_000.000.00
    updateplots_session_010.000.00
    updateplots_session_020.000.00
    updateplots_session_030.000.00
    updateplots_session_040.000.00
    updateplots_session_050.000.00
    updateplots_session_060.000.00
    updateplots_session_070.000.00
    updateplots_session_080.000.00
    updateplots_session_090.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_updateplots_session_py.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_updateplots_session_py.html new file mode 100644 index 000000000..0d99f684e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_updateplots_session_py.html @@ -0,0 +1,88 @@ +simulation/updateplots_session.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  updateplots_session.py
    +#
    +#  Tests:      libsim - batch simulations that make images via a session file.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Oct  2 15:18:56 PDT 2015
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +import string, time
    +
    +def WaitForFile(filename, starttime, timelimit):
    +    fileSize = 0
    +    lastFileSize = 0
    +    samecount = 0
    +    for iteration in range(1000):
    +        delay = 2
    +        try:
    +            # Get the size of the file.
    +            fileSize = os.stat(filename).st_size
    +
    +            # If the file grew, wait a little bit and check again.
    +            if fileSize > lastFileSize:
    +                samecount = 0
    +            elif fileSize == lastFileSize and fileSize > 0:
    +                delay = 1
    +                samecount = samecount + 1
    +                if samecount == 3:
    +                    break
    +
    +            lastFileSize = fileSize
    +        except:
    +            print("Problem stat'ing ", filename)
    +            pass
    +
    +        time.sleep(delay)
    +        if (time.time() - starttime) > timelimit:
    +            raise "Out of time"
    +
    +    return fileSize
    +
    +TestSection("Testing batch simulation with session file")
    +
    +# The name of the session file.
    +session = TestEnv.params["script"].replace("updateplots_session.py", "updateplots_session.session")
    +
    +# Create our simulation object.
    +sim = Simulation(SimVisItDir(), SimProgram("updateplots"), SimFile("dummy"))
    +sim.addargument("-batch")
    +sim.addargument("-sessionfile")
    +sim.addargument(session)
    +sim.addargument("-maxcycles")
    +sim.addargument("11")
    +sim.addargument("-width")
    +sim.addargument("%d" % TestEnv.params["width"])
    +sim.addargument("-height")
    +sim.addargument("%d" % TestEnv.params["height"])
    +
    +
    +# Start the sim.
    +sim.startsim()
    +
    +# Iterate through the images that we hoped the simulation would create.
    +timelimit = 300
    +starttime = time.time()
    +for testindex in range(10):
    +    filename = "updateplots%04d.png" % testindex
    +    if WaitForFile(filename, starttime, timelimit):
    +        OpenDatabase(filename)
    +        AddPlot("Truecolor", "color")
    +        DrawPlots()
    +        ResetView()
    +        v = GetView2D()
    +        v.viewportCoords = (0,1,0,1)
    +        SetView2D(v)
    +        testname = "updateplots_session_%02d" % testindex
    +        Test(testname)
    +        DeleteAllPlots()
    +        CloseDatabase(filename)
    +
    +sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_var.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_var.html new file mode 100644 index 000000000..f4026e740 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_var.html @@ -0,0 +1,56 @@ + +Results for simulation/var.py + +

    Results of VisIt Regression Test - simulation/var

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    var000 modifications totalling 0 lines
    var010 modifications totalling 0 lines
    var020.000.00
    var030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_var_py.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_var_py.html new file mode 100644 index 000000000..191165176 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_var_py.html @@ -0,0 +1,62 @@ +simulation/var.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  var.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       June 6, 2014
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Replace obsolete Label text attributes with new versions.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("var", "var.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("var00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("var01", sim.metadata())
    +
    +    # 2d mesh and vars
    +    AddPlot("Mesh", "mesh2d")
    +    AddPlot("Pseudocolor", "zonal_scalar")
    +    AddPlot("Vector", "zonal_vector")
    +    VectorAtts = VectorAttributes()
    +    VectorAtts.scale = 0.5
    +    VectorAtts.colorByMagnitude = 0
    +    VectorAtts.vectorColor = (255, 255, 255, 255)
    +    SetPlotOptions(VectorAtts)
    +    AddPlot("Label", "zonal_label")
    +    LabelAtts = LabelAttributes()
    +    LabelAtts.textFont1.scale = 6
    +    SetPlotOptions(LabelAtts)
    +    DrawPlots()
    +    Test("var02")
    +
    +    DeleteAllPlots()
    +
    +    # 2d mesh and vars
    +    AddPlot("Mesh", "mesh3d")
    +    AddPlot("Pseudocolor", "nodal_scalar")
    +    AddPlot("Vector", "nodal_vector")
    +    VectorAtts = VectorAttributes()
    +    VectorAtts.scale = 0.5
    +    SetPlotOptions(VectorAtts)
    +
    +    DrawPlots()
    +    Test("var03")
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_zerocopy.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_zerocopy.html new file mode 100644 index 000000000..1bf8962b3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_zerocopy.html @@ -0,0 +1,285 @@ + +Results for simulation/zerocopy.py + +

    Results of VisIt Regression Test - simulation/zerocopy

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    zerocopy000 modifications totalling 0 lines
    zerocopy010 modifications totalling 0 lines
    Mesh soa_s
    zerocopy_soa_s_000.000.00
    zerocopy_soa_s_010.000.00
    zerocopy_soa_s_020.000.00
    zerocopy_soa_s_030.000.00
    zerocopy_soa_s_040.000.00
    zerocopy_soa_s_050.000.00
    Mesh soa_m
    zerocopy_soa_m_000.000.00
    zerocopy_soa_m_010.000.00
    zerocopy_soa_m_020.000.00
    zerocopy_soa_m_030.000.00
    zerocopy_soa_m_040.000.00
    zerocopy_soa_m_050.000.00
    Mesh soa_i
    zerocopy_soa_i_000.000.00
    zerocopy_soa_i_010.000.00
    zerocopy_soa_i_020.000.00
    zerocopy_soa_i_030.000.00
    zerocopy_soa_i_040.000.00
    zerocopy_soa_i_050.000.00
    Mesh aos_s
    zerocopy_aos_s_000.000.00
    zerocopy_aos_s_010.000.00
    zerocopy_aos_s_020.000.00
    zerocopy_aos_s_030.000.00
    zerocopy_aos_s_040.000.00
    zerocopy_aos_s_050.000.00
    Mesh aos_m
    zerocopy_aos_m_000.000.00
    zerocopy_aos_m_010.000.00
    zerocopy_aos_m_020.000.00
    zerocopy_aos_m_030.000.00
    zerocopy_aos_m_040.000.00
    zerocopy_aos_m_050.000.00
    Mesh aos_c
    zerocopy_aos_c_000.000.00
    zerocopy_aos_c_010.000.00
    zerocopy_aos_c_020.000.00
    zerocopy_aos_c_030.000.00
    zerocopy_aos_c_040.000.00
    zerocopy_aos_c_050.000.00
    Memory usage
    zerocopy021 modifications totalling 1 lines
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/simulation_zerocopy_py.html b/2024-12-12-22:00/poodle_trunk_parallel/simulation_zerocopy_py.html new file mode 100644 index 000000000..08c59dab3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/simulation_zerocopy_py.html @@ -0,0 +1,178 @@ +simulation/zerocopy.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  zerocopy.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Jul 22 16:07:12 PDT 2015
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +import string
    +
    +def step(sim):
    +    sim.consolecommand("step")
    +    # Read from stderr to look for the echoed command. Sync.
    +    keepGoing = True
    +    while keepGoing:
    +        buf = sim.p.stderr.readline()
    +        print(buf)
    +        if "Command 'step'" in buf:
    +            keepGoing = False
    +
    +def MemorySample(sim, label = ""):
    +    EL = GetEngineList(1)
    +    pa = GetProcessAttributes("engine", EL[0][0], EL[0][1])
    +    return (pa.memory[0], label)
    +
    +def sv():
    +    v = GetView3D()
    +    v.viewNormal = (0.284499, -0.766043, 0.576401)
    +    v.focus = (0, 0.499486, 0)
    +    v.viewUp = (-0.137723, 0.562352, 0.815348)
    +    v.viewAngle = 30
    +    v.parallelScale = 1.49949
    +    v.nearPlane = -2.99897
    +    v.farPlane = 2.99897
    +    v.imagePan = (0.0351381, 0.0550703)
    +    v.imageZoom = 1.15316
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0.499486, 0)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +def meshtest(sim, mesh):
    +    m = [MemorySample(sim, "Initial")]
    +    TestSection("Mesh " + mesh)
    +
    +    AddPlot("Pseudocolor", mesh + "/temperature")
    +    DrawPlots()
    +    sv()
    +    m = m + [MemorySample(sim, "Pseudocolor plot temperature")]
    +    Test("zerocopy_%s_00" % mesh)
    +
    +    ChangeActivePlotsVar(mesh + "/vx")
    +    Test("zerocopy_%s_01" % mesh)
    +    m = m + [MemorySample(sim, "Change to vx")]
    +
    +    ChangeActivePlotsVar(mesh + "/I")
    +    Test("zerocopy_%s_02" % mesh)
    +    m = m + [MemorySample(sim, "Change to I")]
    +
    +    ChangeActivePlotsVar(mesh + "/J")
    +    Test("zerocopy_%s_03" % mesh)
    +    m = m + [MemorySample(sim, "Change to J")]
    +
    +    ChangeActivePlotsVar(mesh + "/K")
    +    Test("zerocopy_%s_04" % mesh)
    +    m = m + [MemorySample(sim, "Change to K")]
    +
    +    DeleteAllPlots()
    +
    +    AddPlot("Vector", mesh + "/velocity")
    +    DrawPlots()
    +    Test("zerocopy_%s_05" % mesh)
    +    m = m + [MemorySample(sim, "Vector plot velocity")]
    +
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", mesh + "/temperature")
    +    DrawPlots()
    +    for i in range(20):
    +        step(sim)
    +        m = m + [MemorySample(sim, "Pseudocolor plot temperature iteration %d" % i)]
    +    DeleteAllPlots()
    +    return m
    +
    +def SaveTestImage(name):
    +    # Save these images somewhat larger than a regular test case image
    +    # since the images contain a lot of text.
    +    swa = SaveWindowAttributes()
    +    swa.width = 800
    +    swa.height = 800
    +    swa.screenCapture = 0
    +    Test(name, swa)
    +
    +def MeshNames():
    +    return ("soa_s", "soa_m", "soa_i", "aos_s", "aos_m", "aos_c")
    +
    +def PlotMemoryCurve(filename, testname):
    +    OpenDatabase("simmem.curve")
    +    M = MeshNames()
    +    for mesh in M:
    +        AddPlot("Curve", mesh)
    +    DrawPlots()
    +    ResetView()
    +    SaveTestImage(testname)
    +
    +# Do a simple, reliable test without quantifying since that would not be
    +# portable and would require rebaselining as VisIt changes.
    +def TestMemoryUsage(memory, testname):
    +    def AllMethodsUseLessMemoryThanCopying(memory):
    +        numSamples = len(memory["aos_c"])
    +        for i in range(numSamples):
    +            copyMem = memory["aos_c"][i][0]
    +            for k in list(memory.keys()):
    +                if k != "aos_c":
    +                    if memory[k][i][0] > copyMem:
    +                        return False
    +        return True
    +    if AllMethodsUseLessMemoryThanCopying(memory):
    +        TestText(testname, "OK: All methods use less memory than copying.")
    +    else:
    +        TestText(testname, "ERROR: Some methods used more memory than copying.")
    +
    +def WriteData(filename, memory):
    +    print(memory)
    +    numSamples = len(memory["aos_c"])
    +    f = open(filename, "wt")
    +    M = MeshNames()
    +    f.write("event," + string.replace(str(M), "'", "")[1:-1] + "\n")
    +    for row in range(numSamples):
    +        s = memory["aos_c"][row][1]
    +        for m in M:
    +            s = s + ", " + str(memory[m][row][0])
    +        f.write(s + "\n")
    +    f.close()
    +
    +# Create our simulation object.
    +sim = TestSimulation("zerocopy", "zerocopy.sim2")
    +sim.addargument("-echo")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("zerocopy00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("zerocopy01", sim.metadata())
    +
    +    memorySamples = {}
    +    f = open("simmem.curve", "wt")
    +    M = MeshNames()
    +    for mesh in M:
    +        m = meshtest(sim, mesh)
    +        f.write("# " + mesh + "\n")
    +        for i in range(len(m)):
    +            f.write("%g %g\n" % (i,m[i][0]))
    +        memorySamples[mesh] = m
    +    f.close()
    +
    +    TestSection("Memory usage")
    +    TestMemoryUsage(memorySamples, "zerocopy02")
    +#    PlotMemoryCurve("simmem.curve", "zerocopy03")
    +#    WriteData("zerocopy.dat", memorySamples)
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/unit_annotation_objects.html b/2024-12-12-22:00/poodle_trunk_parallel/unit_annotation_objects.html new file mode 100644 index 000000000..2499e1397 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/unit_annotation_objects.html @@ -0,0 +1,44 @@ + +Results for unit/annotation_objects.py + +

    Results of VisIt Regression Test - unit/annotation_objects

    + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ComparisonOperator_00
     "False" .eq. "False" : True
    ComparisonOperator_01
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/unit_annotation_objects_py.html b/2024-12-12-22:00/poodle_trunk_parallel/unit_annotation_objects_py.html new file mode 100644 index 000000000..7d70185d7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/unit_annotation_objects_py.html @@ -0,0 +1,30 @@ +unit/annotation_objects.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  annotation_objects.py
    +#
    +#  Tests:      AnnotationObject unit test
    +#
    +#  Alister Maguire, Fri Jul 16 12:50:11 PDT 2021
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def CheckComparisonOperator():
    +    annot = CreateAnnotationObject("Text2D")
    +
    +    #
    +    # In the past, a bug caused a crash whenever we compared to a non-annotation
    +    # type object.
    +    #
    +    TestValueEQ("ComparisonOperator_00", annot == "", False)
    +    TestValueEQ("ComparisonOperator_01", annot == annot, True)
    +
    +def RunMain():
    +    CheckComparisonOperator()
    +
    +RunMain()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/unit_atts_assign.html b/2024-12-12-22:00/poodle_trunk_parallel/unit_atts_assign.html new file mode 100644 index 000000000..40b36627d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/unit_atts_assign.html @@ -0,0 +1,1782 @@ + +Results for unit/atts_assign.py + +

    Results of VisIt Regression Test - unit/atts_assign

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Assignment to bool member, "inverse", (of CylinderAttributes())
    ca.inverse=1,2
     "True" .eq. "True" : True
    ca.inverse='123'
     "True" .eq. "True" : True
    ca.inverse=(1+2j)
     "True" .eq. "True" : True
    ca.inverse=[2, 4, 6]
     "True" .eq. "True" : True
    ca.inverse=None
     "True" .eq. "True" : True
    ca.inverse=5
     "True" .eq. "True" : True
    ca.SetInverse('123')
     "True" .eq. "True" : True
    ca.SetInverse((1+2j))
     "True" .eq. "True" : True
    ca.SetInverse([2, 4, 6])
     "True" .eq. "True" : True
    ca.SetInverse(None)
     "True" .eq. "True" : True
    ca.SetInverse(5)
     "True" .eq. "True" : True
    ca.inverse=0
     "True" .eq. "True" : True
    ca.inverse=1
     "True" .eq. "True" : True
    ca.inverse=True
     "True" .eq. "True" : True
    ca.inverse=False
     "True" .eq. "True" : True
    ca.SetInverse(0)
     "True" .eq. "True" : True
    ca.SetInverse(1)
     "True" .eq. "True" : True
    ca.SetInverse(True)
     "True" .eq. "True" : True
    ca.SetInverse(False)
     "True" .eq. "True" : True
    Assignment to int member, "samplesPerRay", (of VolumeAttributes())
    va.samplesPerRay=1,2
     "True" .eq. "True" : True
    va.samplesPerRay='123'
     "True" .eq. "True" : True
    va.samplesPerRay=(1+2j)
     "True" .eq. "True" : True
    va.samplesPerRay=None
     "True" .eq. "True" : True
    va.samplesPerRay=[2, 4, 6]
     "True" .eq. "True" : True
    va.samplesPerRay=2147483648
     "True" .eq. "True" : True
    va.SetSamplesPerRay('123')
     "True" .eq. "True" : True
    va.SetSamplesPerRay((1+2j))
     "True" .eq. "True" : True
    va.SetSamplesPerRay(None)
     "True" .eq. "True" : True
    va.SetSamplesPerRay([2, 4, 6])
     "True" .eq. "True" : True
    va.SetSamplesPerRay(2147483648)
     "True" .eq. "True" : True
    va.samplesPerRay=0
     "True" .eq. "True" : True
    va.samplesPerRay=1
     "True" .eq. "True" : True
    va.samplesPerRay=-1
     "True" .eq. "True" : True
    va.samplesPerRay=5
     "True" .eq. "True" : True
    va.samplesPerRay=True
     "True" .eq. "True" : True
    va.samplesPerRay=False
     "True" .eq. "True" : True
    va.samplesPerRay=2147483647
     "True" .eq. "True" : True
    va.SetSamplesPerRay(0)
     "True" .eq. "True" : True
    va.SetSamplesPerRay(1)
     "True" .eq. "True" : True
    va.SetSamplesPerRay(-1)
     "True" .eq. "True" : True
    va.SetSamplesPerRay(5)
     "True" .eq. "True" : True
    va.SetSamplesPerRay(True)
     "True" .eq. "True" : True
    va.SetSamplesPerRay(False)
     "True" .eq. "True" : True
    va.SetSamplesPerRay(2147483647)
     "True" .eq. "True" : True
    Assignment to float member, "opacityAttenuation", (of VolumeAttributes())
    va.opacityAttenuation=1,2
     "True" .eq. "True" : True
    va.opacityAttenuation='123'
     "True" .eq. "True" : True
    va.opacityAttenuation=(1+2j)
     "True" .eq. "True" : True
    va.opacityAttenuation=None
     "True" .eq. "True" : True
    va.opacityAttenuation=[2, 4, 6]
     "True" .eq. "True" : True
    va.opacityAttenuation=3.402823e+39
     "True" .eq. "True" : True
    va.SetOpacityAttenuation('123')
     "True" .eq. "True" : True
    va.SetOpacityAttenuation((1+2j))
     "True" .eq. "True" : True
    va.SetOpacityAttenuation(None)
     "True" .eq. "True" : True
    va.SetOpacityAttenuation([2, 4, 6])
     "True" .eq. "True" : True
    va.SetOpacityAttenuation(3.402823e+39)
     "True" .eq. "True" : True
    va.opacityAttenuation=0
     "True" .eq. "True" : True
    va.opacityAttenuation=1
     "True" .eq. "True" : True
    va.opacityAttenuation=-1
     "True" .eq. "True" : True
    va.opacityAttenuation=0.3
     "True" .eq. "True" : True
    va.opacityAttenuation=3.40282e+37
     "True" .eq. "True" : True
    va.opacityAttenuation=True
     "True" .eq. "True" : True
    va.opacityAttenuation=False
     "True" .eq. "True" : True
    va.SetOpacityAttenuation(0)
     "True" .eq. "True" : True
    va.SetOpacityAttenuation(1)
     "True" .eq. "True" : True
    va.SetOpacityAttenuation(-1)
     "True" .eq. "True" : True
    va.SetOpacityAttenuation(0.3)
     "True" .eq. "True" : True
    va.SetOpacityAttenuation(3.40282e+37)
     "True" .eq. "True" : True
    va.SetOpacityAttenuation(True)
     "True" .eq. "True" : True
    va.SetOpacityAttenuation(False)
     "True" .eq. "True" : True
    Assignment to double member, "radius", (of CylinderAttributes())
    ca.radius=1,2
     "True" .eq. "True" : True
    ca.radius='123'
     "True" .eq. "True" : True
    ca.radius=(1+2j)
     "True" .eq. "True" : True
    ca.radius=None
     "True" .eq. "True" : True
    ca.radius=[2, 4, 6]
     "True" .eq. "True" : True
    ca.SetRadius('123')
     "True" .eq. "True" : True
    ca.SetRadius((1+2j))
     "True" .eq. "True" : True
    ca.SetRadius(None)
     "True" .eq. "True" : True
    ca.SetRadius([2, 4, 6])
     "True" .eq. "True" : True
    ca.radius=0
     "True" .eq. "True" : True
    ca.radius=1
     "True" .eq. "True" : True
    ca.radius=-1
     "True" .eq. "True" : True
    ca.radius=5.5
     "True" .eq. "True" : True
    ca.radius=0.0
     "True" .eq. "True" : True
    ca.radius=inf
     "True" .eq. "True" : True
    ca.radius=True
     "True" .eq. "True" : True
    ca.radius=False
     "True" .eq. "True" : True
    ca.SetRadius(0)
     "True" .eq. "True" : True
    ca.SetRadius(1)
     "True" .eq. "True" : True
    ca.SetRadius(-1)
     "True" .eq. "True" : True
    ca.SetRadius(5.5)
     "True" .eq. "True" : True
    ca.SetRadius(0.0)
     "True" .eq. "True" : True
    ca.SetRadius(inf)
     "True" .eq. "True" : True
    ca.SetRadius(True)
     "True" .eq. "True" : True
    ca.SetRadius(False)
     "True" .eq. "True" : True
    Assignment to string member, "designator", (of CurveAttributes())
    ca.designator="123","abc"
     "True" .eq. "True" : True
    ca.designator=0
     "True" .eq. "True" : True
    ca.designator=1
     "True" .eq. "True" : True
    ca.designator=1.1
     "True" .eq. "True" : True
    ca.designator=(1+2j)
     "True" .eq. "True" : True
    ca.designator=None
     "True" .eq. "True" : True
    ca.designator=[2, 4, 6]
     "True" .eq. "True" : True
    ca.SetDesignator(0)
     "True" .eq. "True" : True
    ca.SetDesignator(1)
     "True" .eq. "True" : True
    ca.SetDesignator(1.1)
     "True" .eq. "True" : True
    ca.SetDesignator((1+2j))
     "True" .eq. "True" : True
    ca.SetDesignator(None)
     "True" .eq. "True" : True
    ca.SetDesignator([2, 4, 6])
     "True" .eq. "True" : True
    ca.designator='123'
     "True" .eq. "True" : True
    ca.designator='abc'
     "True" .eq. "True" : True
    ca.designator=''
     "True" .eq. "True" : True
    ca.SetDesignator('123')
     "True" .eq. "True" : True
    ca.SetDesignator('abc')
     "True" .eq. "True" : True
    ca.SetDesignator('')
     "True" .eq. "True" : True
    Assignment to GlyphType member, "pointType", (of MeshAttributes())
    ma.pointType=1
     "True" .eq. "True" : True
    ma.pointType='123'
     "True" .eq. "True" : True
    ma.pointType=(1+2j)
     "True" .eq. "True" : True
    ma.pointType=None
     "True" .eq. "True" : True
    ma.pointType=[2, 4, 6]
     "True" .eq. "True" : True
    ma.pointType=-1
     "True" .eq. "True" : True
    ma.pointType=123123123123123123123123123123
     "True" .eq. "True" : True
    ma.SetPointType('123')
     "True" .eq. "True" : True
    ma.SetPointType((1+2j))
     "True" .eq. "True" : True
    ma.SetPointType(None)
     "True" .eq. "True" : True
    ma.SetPointType([2, 4, 6])
     "True" .eq. "True" : True
    ma.SetPointType(-1)
     "True" .eq. "True" : True
    ma.SetPointType(123123123123123123123123123123)
     "True" .eq. "True" : True
    ma.pointType=0
     "True" .eq. "True" : True
    ma.pointType=1
     "True" .eq. "True" : True
    ma.pointType=5
     "True" .eq. "True" : True
    ma.pointType=True
     "True" .eq. "True" : True
    ma.pointType=False
     "True" .eq. "True" : True
    ma.pointType=6
     "True" .eq. "True" : True
    ma.SetPointType(0)
     "True" .eq. "True" : True
    ma.SetPointType(1)
     "True" .eq. "True" : True
    ma.SetPointType(5)
     "True" .eq. "True" : True
    ma.SetPointType(True)
     "True" .eq. "True" : True
    ma.SetPointType(False)
     "True" .eq. "True" : True
    ma.SetPointType(6)
     "True" .eq. "True" : True
    Assignment to Enum member, "smoothingLevel", (of MeshAttributes())
    ma.smoothingLevel=1
     "True" .eq. "True" : True
    ma.smoothingLevel='123'
     "True" .eq. "True" : True
    ma.smoothingLevel=(1+2j)
     "True" .eq. "True" : True
    ma.smoothingLevel=None
     "True" .eq. "True" : True
    ma.smoothingLevel=[2, 4, 6]
     "True" .eq. "True" : True
    ma.smoothingLevel=-1
     "True" .eq. "True" : True
    ma.smoothingLevel=123123123
     "True" .eq. "True" : True
    ma.smoothingLevel=123123123123123123123123123123
     "True" .eq. "True" : True
    ma.SetSmoothingLevel('123')
     "True" .eq. "True" : True
    ma.SetSmoothingLevel((1+2j))
     "True" .eq. "True" : True
    ma.SetSmoothingLevel(None)
     "True" .eq. "True" : True
    ma.SetSmoothingLevel([2, 4, 6])
     "True" .eq. "True" : True
    ma.SetSmoothingLevel(-1)
     "True" .eq. "True" : True
    ma.SetSmoothingLevel(123123123)
     "True" .eq. "True" : True
    ma.SetSmoothingLevel(123123123123123123123123123123)
     "True" .eq. "True" : True
    ma.smoothingLevel=0
     "True" .eq. "True" : True
    ma.smoothingLevel=1
     "True" .eq. "True" : True
    ma.smoothingLevel=2
     "True" .eq. "True" : True
    ma.smoothingLevel=True
     "True" .eq. "True" : True
    ma.smoothingLevel=False
     "True" .eq. "True" : True
    ma.smoothingLevel=1
     "True" .eq. "True" : True
    ma.SmoothingLevel(0)
     "True" .eq. "True" : True
    ma.SmoothingLevel(1)
     "True" .eq. "True" : True
    ma.SmoothingLevel(2)
     "True" .eq. "True" : True
    ma.SmoothingLevel(True)
     "True" .eq. "True" : True
    ma.SmoothingLevel(False)
     "True" .eq. "True" : True
    ma.SmoothingLevel(1)
     "True" .eq. "True" : True
    Assignment to tuple, "point1", member (of CylinderAttributes())
    ca.point=1,2,3
     "True" .eq. "True" : True
    ca.SetPoint(1,2,3)
     "True" .eq. "True" : True
    ca.point1=1,2
     "True" .eq. "True" : True
    ca.point1=1,2,3,4
     "True" .eq. "True" : True
    ca.point1=1, 2
     "True" .eq. "True" : True
    ca.point1=1, 2, 3, 4
     "True" .eq. "True" : True
    ca.point1='123'
     "True" .eq. "True" : True
    ca.point1=1, (1+2j), 3
     "True" .eq. "True" : True
    ca.point1=1, [2, 4, 6], 3
     "True" .eq. "True" : True
    ca.point1=1, 'b', 3
     "True" .eq. "True" : True
    ca.point1=1, None, 3
     "True" .eq. "True" : True
    ca.point1=array([1.1, 2.2]
     "True" .eq. "True" : True
    ca.point1=array([1.1, 2.2, 3.3, 4.4]
     "True" .eq. "True" : True
    ca.SetPoint1(1, 2)
     "True" .eq. "True" : True
    ca.SetPoint1(1, 2, 3, 4)
     "True" .eq. "True" : True
    ca.SetPoint1('123')
     "True" .eq. "True" : True
    ca.SetPoint1(1, (1+2j), 3)
     "True" .eq. "True" : True
    ca.SetPoint1(1, [2, 4, 6], 3)
     "True" .eq. "True" : True
    ca.SetPoint1(1, 'b', 3)
     "True" .eq. "True" : True
    ca.SetPoint1(1, None, 3)
     "True" .eq. "True" : True
    ca.SetPoint1(array([1.1, 2.2])
     "True" .eq. "True" : True
    ca.SetPoint1(array([1.1, 2.2, 3.3, 4.4])
     "True" .eq. "True" : True
    ca.point1=1,2,3
     "True" .eq. "True" : True
    ca.point1=1, 2, 3
     "True" .eq. "True" : True
    ca.point1=1.1, 2.2, 3.3
     "True" .eq. "True" : True
    ca.point1=2, 4, 6
     "True" .eq. "True" : True
    ca.point1=array([1, 2, 3]
     "True" .eq. "True" : True
    ca.point1=array([1.1, 2.2, 3.3]
     "True" .eq. "True" : True
    ca.SetPoint1(1, 2, 3)
     "True" .eq. "True" : True
    ca.SetPoint1(1.1, 2.2, 3.3)
     "True" .eq. "True" : True
    ca.SetPoint1(2, 4, 6)
     "True" .eq. "True" : True
    ca.SetPoint1(array([1, 2, 3])
     "True" .eq. "True" : True
    ca.SetPoint1(array([1.1, 2.2, 3.3])
     "True" .eq. "True" : True
    Assignment to ucharVector member, "changedColors", (of MultiCurveAttributes())
    mca.changedColors=1,2,3
     "True" .eq. "True" : True
    mca.changedColors=1, 123123123123123123123123123123, 3
     "True" .eq. "True" : True
    mca.changedColors=1, (1+2j), 3
     "True" .eq. "True" : True
    mca.changedColors=1, [2, 4, 6], 3
     "True" .eq. "True" : True
    mca.changedColors=1, 'b', 3
     "True" .eq. "True" : True
    mca.changedColors=1, None, 3
     "True" .eq. "True" : True
    mca.changedColors='123',
     "True" .eq. "True" : True
    mca.SetChangedColors(1, 123123123123123123123123123123, 3)
     "True" .eq. "True" : True
    mca.SetChangedColors(1, (1+2j), 3)
     "True" .eq. "True" : True
    mca.SetChangedColors(1, [2, 4, 6], 3)
     "True" .eq. "True" : True
    mca.SetChangedColors(1, 'b', 3)
     "True" .eq. "True" : True
    mca.SetChangedColors(1, None, 3)
     "True" .eq. "True" : True
    mca.SetChangedColors('123',)
     "True" .eq. "True" : True
    mca.changedColors=1, 2, 3
     "True" .eq. "True" : True
    mca.changedColors=2, 4, 6
     "True" .eq. "True" : True
    mca.changedColors=1, True, 3
     "True" .eq. "True" : True
    mca.changedColors=1, False, 3
     "True" .eq. "True" : True
    mca.SetChangedColors(1, 2, 3)
     "True" .eq. "True" : True
    mca.SetChangedColors(2, 4, 6)
     "True" .eq. "True" : True
    mca.SetChangedColors(1, True, 3)
     "True" .eq. "True" : True
    mca.SetChangedColors(1, False, 3)
     "True" .eq. "True" : True
    mca.SetChangedColors(array([1, 2, 3])
     "True" .eq. "True" : True
    Assignment to intVector member, "index", (of OnionPeelAttributes())
    opa.index=1,2,3
     "True" .eq. "True" : True
    opa.index=2147483648,
     "True" .eq. "True" : True
    opa.index=1+2j),
     "True" .eq. "True" : True
    opa.index='b',
     "True" .eq. "True" : True
    opa.index=None,
     "True" .eq. "True" : True
    opa.index=1, 2147483648, 3
     "True" .eq. "True" : True
    opa.index=1, (1+2j), 3
     "True" .eq. "True" : True
    opa.index=1, [2, 4, 6], 3
     "True" .eq. "True" : True
    opa.index=1, 'b', 3
     "True" .eq. "True" : True
    opa.index=1, None, 3
     "True" .eq. "True" : True
    opa.SetIndex(2147483648,)
     "True" .eq. "True" : True
    opa.SetIndex(1+2j),)
     "True" .eq. "True" : True
    opa.SetIndex('b',)
     "True" .eq. "True" : True
    opa.SetIndex(None,)
     "True" .eq. "True" : True
    opa.SetIndex(1, 2147483648, 3)
     "True" .eq. "True" : True
    opa.SetIndex(1, (1+2j), 3)
     "True" .eq. "True" : True
    opa.SetIndex(1, [2, 4, 6], 3)
     "True" .eq. "True" : True
    opa.SetIndex(1, 'b', 3)
     "True" .eq. "True" : True
    opa.SetIndex(1, None, 3)
     "True" .eq. "True" : True
    opa.index=1, 2, 3
     "True" .eq. "True" : True
    opa.index=[2, 4, 6]
     "True" .eq. "True" : True
    opa.index=2, 4, 6
     "True" .eq. "True" : True
    opa.index=1, True, 3
     "True" .eq. "True" : True
    opa.index=1, False, 3
     "True" .eq. "True" : True
    opa.index=1, 2147483647, 3
     "True" .eq. "True" : True
    opa.SetIndex(1, 2, 3)
     "True" .eq. "True" : True
    opa.SetIndex([2, 4, 6])
     "True" .eq. "True" : True
    opa.SetIndex(2, 4, 6)
     "True" .eq. "True" : True
    opa.SetIndex(1, True, 3)
     "True" .eq. "True" : True
    opa.SetIndex(1, False, 3)
     "True" .eq. "True" : True
    opa.SetIndex(1, 2147483647, 3)
     "True" .eq. "True" : True
    opa.SetIndex(array([1, 2, 3])
     "True" .eq. "True" : True
    Assignment to doubleVector member, "values", (of ContourAttributes())
    ca.contourValue=1,2,3
     "True" .eq. "True" : True
    ca.contourValue=1+2j),
     "True" .eq. "True" : True
    ca.contourValue='b',
     "True" .eq. "True" : True
    ca.contourValue=None,
     "True" .eq. "True" : True
    ca.contourValue=1, (1+2j), 3
     "True" .eq. "True" : True
    ca.contourValue=1, [2, 4, 6], 3
     "True" .eq. "True" : True
    ca.contourValue=1, 'b', 3
     "True" .eq. "True" : True
    ca.contourValue=1, None, 3
     "True" .eq. "True" : True
    ca.SetContourValue(1+2j),)
     "True" .eq. "True" : True
    ca.SetContourValue('b',)
     "True" .eq. "True" : True
    ca.SetContourValue(None,)
     "True" .eq. "True" : True
    ca.SetContourValue(1, (1+2j), 3)
     "True" .eq. "True" : True
    ca.SetContourValue(1, [2, 4, 6], 3)
     "True" .eq. "True" : True
    ca.SetContourValue(1, 'b', 3)
     "True" .eq. "True" : True
    ca.SetContourValue(1, None, 3)
     "True" .eq. "True" : True
    ca.contourValue=1, 2, 3
     "True" .eq. "True" : True
    ca.contourValue=[2, 4, 6]
     "True" .eq. "True" : True
    ca.contourValue=2, 4, 6
     "True" .eq. "True" : True
    ca.contourValue=1, True, 3
     "True" .eq. "True" : True
    ca.contourValue=1, False, 3
     "True" .eq. "True" : True
    ca.SetContourValue(1, 2, 3)
     "True" .eq. "True" : True
    ca.SetContourValue([2, 4, 6])
     "True" .eq. "True" : True
    ca.SetContourValue(2, 4, 6)
     "True" .eq. "True" : True
    ca.SetContourValue(1, True, 3)
     "True" .eq. "True" : True
    ca.SetContourValue(1, False, 3)
     "True" .eq. "True" : True
    ca.SetContourValue(array([1.1, 2.2, 3.3])
     "True" .eq. "True" : True
    Assignment to ucharArray member, "freeformOpacity", (of VolumeAttributes())
    va.freeformOpacity=3,17
     "True" .eq. "True" : True
    va.SetFreeformOpacity(3,17)
     "True" .eq. "True" : True
    va.freeformOpacity=tuple(arr)
     "True" .eq. "True" : True
    va.SetFreeformOpacity(*tuple(arr))
     "True" .eq. "True" : True
    va.freeformOpacity=3,None
     "True" .eq. "True" : True
    va.freeformOpacity=3,(1+2j)
     "True" .eq. "True" : True
    va.freeformOpacity=3,[2, 4, 6]
     "True" .eq. "True" : True
    va.freeformOpacity=3,'123'
     "True" .eq. "True" : True
    va.freeformOpacity=None,17
     "True" .eq. "True" : True
    va.freeformOpacity=(1+2j),17
     "True" .eq. "True" : True
    va.freeformOpacity=[2, 4, 6],17
     "True" .eq. "True" : True
    va.freeformOpacity='123',17
     "True" .eq. "True" : True
    va.freeformOpacity=-3,17
     "True" .eq. "True" : True
    va.freeformOpacity=3,1700
     "True" .eq. "True" : True
    va.SetFreeformOpacity(3,None)
     "True" .eq. "True" : True
    va.SetFreeformOpacity(3,(1+2j))
     "True" .eq. "True" : True
    va.SetFreeformOpacity(3,[2, 4, 6])
     "True" .eq. "True" : True
    va.SetFreeformOpacity(3,'123')
     "True" .eq. "True" : True
    va.SetFreeformOpacity(None,17)
     "True" .eq. "True" : True
    va.SetFreeformOpacity((1+2j),17)
     "True" .eq. "True" : True
    va.SetFreeformOpacity([2, 4, 6],17)
     "True" .eq. "True" : True
    va.SetFreeformOpacity('123',17)
     "True" .eq. "True" : True
    va.SetFreeformOpacity(-3,17)
     "True" .eq. "True" : True
    va.SetFreeformOpacity(3,1700)
     "True" .eq. "True" : True
    va.freeformOpacity=(17,)*256
     "True" .eq. "True" : True
    va.SetFreeformOpacity((17,)*256)
     "True" .eq. "True" : True
    va.freeformOpacity=(17, 17, 17, None, 17, 17, 17, ...
     "True" .eq. "True" : True
    va.freeformOpacity=(17, 17, 17, (1+2j, ..., 17, 17, 17, ...
     "True" .eq. "True" : True
    va.freeformOpacity=(17, 17, 17, [2, 4, 6], 17, 17, 17, ...
     "True" .eq. "True" : True
    va.freeformOpacity=(17, 17, 17, (1, 2, 3, ..., 17, 17, 17, ...
     "True" .eq. "True" : True
    va.freeformOpacity=(17, 17, 17, '123', 17, 17, 17, ...
     "True" .eq. "True" : True
    va.SetFreeformOpacity(17, 17, 17, None, 17, 17, 17, ...)
     "True" .eq. "True" : True
    va.SetFreeformOpacity(17, 17, 17, (1+2j, ...), 17, 17, 17, ...)
     "True" .eq. "True" : True
    va.SetFreeformOpacity(17, 17, 17, [2, 4, 6], 17, 17, 17, ...)
     "True" .eq. "True" : True
    va.SetFreeformOpacity(17, 17, 17, (1, 2, 3, ...), 17, 17, 17, ...)
     "True" .eq. "True" : True
    va.SetFreeformOpacity(17, 17, 17, '123', 17, 17, 17, ...)
     "True" .eq. "True" : True
    va.SetFreeformOpacity(fails[0])
     "True" .eq. "True" : True
    va.SetFreeformOpacity(fails[1])
     "True" .eq. "True" : True
    va.SetFreeformOpacity(fails[2])
     "True" .eq. "True" : True
    va.SetFreeformOpacity(fails[3])
     "True" .eq. "True" : True
    va.SetFreeformOpacity(fails[4])
     "True" .eq. "True" : True
    Assignment to intArray member, "reflections", (of ReflectAttributes())
    ra.reflections=0,1,0,1,0,1,0,1
     "True" .eq. "True" : True
    ra.reflections=0, 1, None, 1, 0, 1, 0, 1
     "True" .eq. "True" : True
    ra.reflections=0, 1, (1+2j), 1, 0, 1, 0, 1
     "True" .eq. "True" : True
    ra.reflections=0, 1, [2, 4, 6], 1, 0, 1, 0, 1
     "True" .eq. "True" : True
    ra.reflections=0, 1, 2147483648, 1, 0, 1, 0, 1
     "True" .eq. "True" : True
    ra.reflections=0, 1, '123', 1, 0, 1, 0, 1
     "True" .eq. "True" : True
    ra.reflections=0, 1, 0, 1, 0, 1, 0, 1, 1
     "True" .eq. "True" : True
    ra.reflections=0, 1, 0, 1, 0, 1, 0
     "True" .eq. "True" : True
    ra.SetReflections(0, 1, None, 1, 0, 1, 0, 1)
     "True" .eq. "True" : True
    ra.SetReflections(0, 1, (1+2j), 1, 0, 1, 0, 1)
     "True" .eq. "True" : True
    ra.SetReflections(0, 1, [2, 4, 6], 1, 0, 1, 0, 1)
     "True" .eq. "True" : True
    ra.SetReflections(0, 1, 2147483648, 1, 0, 1, 0, 1)
     "True" .eq. "True" : True
    ra.SetReflections(0, 1, '123', 1, 0, 1, 0, 1)
     "True" .eq. "True" : True
    ra.SetReflections(0, 1, 0, 1, 0, 1, 0, 1, 1)
     "True" .eq. "True" : True
    ra.SetReflections(0, 1, 0, 1, 0, 1, 0)
     "True" .eq. "True" : True
    ra.reflections=0, 1, 0, 1, 0, 1, 0, 1
     "True" .eq. "True" : True
    ra.reflections=-1, 100, -1, 100, -1, 100, -1, 100
     "True" .eq. "True" : True
    ra.reflections=0, True, False, 1, 0, 1, 0, 1
     "True" .eq. "True" : True
    ra.reflections=0, 1, 2147483647, 1, 0, 1, 0, 1
     "True" .eq. "True" : True
    ra.reflections=array([0, 1, 0, 1, 0, 1, 0, 1]
     "True" .eq. "True" : True
    ra.SetReflections(0, 1, 0, 1, 0, 1, 0, 1)
     "True" .eq. "True" : True
    ra.SetReflections(-1, 100, -1, 100, -1, 100, -1, 100)
     "True" .eq. "True" : True
    ra.SetReflections(0, True, False, 1, 0, 1, 0, 1)
     "True" .eq. "True" : True
    ra.SetReflections(0, 1, 2147483647, 1, 0, 1, 0, 1)
     "True" .eq. "True" : True
    ra.SetReflections(array([0, 1, 0, 1, 0, 1, 0, 1])
     "True" .eq. "True" : True
    Assignment to floatArray member, "center", (of RadialResampleAttributes())
    rra.center=0,1,2
     "True" .eq. "True" : True
    rra.center=0,1
     "True" .eq. "True" : True
    rra.center=0,1,2,3
     "True" .eq. "True" : True
    rra.center=0, 1
     "True" .eq. "True" : True
    rra.center=0, 1, 2, 3
     "True" .eq. "True" : True
    rra.center=0, None, 2
     "True" .eq. "True" : True
    rra.center=0, (1+2j), 2
     "True" .eq. "True" : True
    rra.center=0, [2, 4, 6], 2
     "True" .eq. "True" : True
    rra.center=0, '123', 2
     "True" .eq. "True" : True
    rra.center=0, 3.402823e+39, 2
     "True" .eq. "True" : True
    rra.SetCenter(0, 1)
     "True" .eq. "True" : True
    rra.SetCenter(0, 1, 2, 3)
     "True" .eq. "True" : True
    rra.SetCenter(0, None, 2)
     "True" .eq. "True" : True
    rra.SetCenter(0, (1+2j), 2)
     "True" .eq. "True" : True
    rra.SetCenter(0, [2, 4, 6], 2)
     "True" .eq. "True" : True
    rra.SetCenter(0, '123', 2)
     "True" .eq. "True" : True
    rra.SetCenter(0, 3.402823e+39, 2)
     "True" .eq. "True" : True
    rra.center=1, 2, 3
     "True" .eq. "True" : True
    rra.center=1.1, 2.2, 3.3
     "True" .eq. "True" : True
    rra.center=2, 4, 6
     "True" .eq. "True" : True
    rra.center=1, True, 3
     "True" .eq. "True" : True
    rra.center=1, False, 3
     "True" .eq. "True" : True
    rra.center=1, 3.40282e+37, 3
     "True" .eq. "True" : True
    rra.center=array([1.1, 2.2, 3.3]
     "True" .eq. "True" : True
    rra.SetCenter(1, 2, 3)
     "True" .eq. "True" : True
    rra.SetCenter(1.1, 2.2, 3.3)
     "True" .eq. "True" : True
    rra.SetCenter(2, 4, 6)
     "True" .eq. "True" : True
    rra.SetCenter(1, True, 3)
     "True" .eq. "True" : True
    rra.SetCenter(1, False, 3)
     "True" .eq. "True" : True
    rra.SetCenter(1, 3.40282e+37, 3)
     "True" .eq. "True" : True
    rra.SetCenter(array([1.1, 2.2, 3.3])
     "True" .eq. "True" : True
    Assignment to doubleArray member, "materialProperties", (of VolumeAttributes())
    va.materialProperties=0,1,2,3
     "True" .eq. "True" : True
    va.materialProperties=0,1,2
     "True" .eq. "True" : True
    va.materialProperties=0,1,2,3,4
     "True" .eq. "True" : True
    va.materialProperties=0, 1
     "True" .eq. "True" : True
    va.materialProperties=0, 1, 2, 3, 4
     "True" .eq. "True" : True
    va.materialProperties=0, None, 2, 3
     "True" .eq. "True" : True
    va.materialProperties=0, (1+2j), 2, 3
     "True" .eq. "True" : True
    va.materialProperties=0, [2, 4, 6], 2, 3
     "True" .eq. "True" : True
    va.materialProperties=0, '123', 2, 3
     "True" .eq. "True" : True
    va.SetMaterialProperties(0, 1)
     "True" .eq. "True" : True
    va.SetMaterialProperties(0, 1, 2, 3, 4)
     "True" .eq. "True" : True
    va.SetMaterialProperties(0, None, 2, 3)
     "True" .eq. "True" : True
    va.SetMaterialProperties(0, (1+2j), 2, 3)
     "True" .eq. "True" : True
    va.SetMaterialProperties(0, [2, 4, 6], 2, 3)
     "True" .eq. "True" : True
    va.SetMaterialProperties(0, '123', 2, 3)
     "True" .eq. "True" : True
    va.materialProperties=1, 2, 3, 4
     "True" .eq. "True" : True
    va.materialProperties=1.1, 2.2, 3.3, 4.4
     "True" .eq. "True" : True
    va.materialProperties=1, True, 3, 4
     "True" .eq. "True" : True
    va.materialProperties=1, False, 3, 4
     "True" .eq. "True" : True
    va.SetMaterialProperties(1, 2, 3, 4)
     "True" .eq. "True" : True
    va.SetMaterialProperties(1.1, 2.2, 3.3, 4.4)
     "True" .eq. "True" : True
    va.SetMaterialProperties(1, True, 3, 4)
     "True" .eq. "True" : True
    va.SetMaterialProperties(1, False, 3, 4)
     "True" .eq. "True" : True
    va.SetMaterialProperties(array([1.1, 2.2, 3.3, 4.4])
     "True" .eq. "True" : True
    ColorAttribute stuff
    ca.color=0, 1, 2
     "True" .eq. "True" : True
    ca.color=0, 1, 2, 3, 4
     "True" .eq. "True" : True
    ca.color=0, None, 2, 3
     "True" .eq. "True" : True
    ca.color=0, (1+2j), 2, 3
     "True" .eq. "True" : True
    ca.color=0, [2, 4, 6], 2, 3
     "True" .eq. "True" : True
    ca.color=0, '123', 2, 3
     "True" .eq. "True" : True
    ca.color=0, -1, 2, 3
     "True" .eq. "True" : True
    ca.color=0, 256, 2, 3
     "True" .eq. "True" : True
    ca.SetColor(0, 1, 2)
     "True" .eq. "True" : True
    ca.SetColor(0, 1, 2, 3, 4)
     "True" .eq. "True" : True
    ca.SetColor(0, None, 2, 3)
     "True" .eq. "True" : True
    ca.SetColor(0, (1+2j), 2, 3)
     "True" .eq. "True" : True
    ca.SetColor(0, [2, 4, 6], 2, 3)
     "True" .eq. "True" : True
    ca.SetColor(0, '123', 2, 3)
     "True" .eq. "True" : True
    ca.SetColor(0, -1, 2, 3)
     "True" .eq. "True" : True
    ca.SetColor(0, 256, 2, 3)
     "True" .eq. "True" : True
    cla.AddColors
     "True" .eq. "True" : True
    cla.colors
     "True" .eq. "True" : True
    cla.GetColors(0)
     "True" .eq. "True" : True
    cla.GetColors(2)
     "True" .eq. "True" : True
    behavior of dir()
    dir()
     "True" .eq. "True" : True
    behavior of help()
    help(AddPlot)
     "True" .eq. "True" : True
    help(CreateDatabaseCorrelation)
     "True" .eq. "True" : True
    help(SILRestriction)
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/unit_atts_assign_py.html b/2024-12-12-22:00/poodle_trunk_parallel/unit_atts_assign_py.html new file mode 100644 index 000000000..ef2410bab --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/unit_atts_assign_py.html @@ -0,0 +1,1211 @@ +unit/atts_assign.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  atts_assign.py
    +#
    +#  Tests: Behavior of assignment for attribute objects. Ensures good cases
    +#  succeed and bad cases fail with specific python exceptions. Tests variety
    +#  of types present in members of VisIt attribute objects. Tests both
    +#  assignment usage (e.g. atts.memberName=...) and setter function usage
    +#  (e.g. atts.SetMemberName(...))
    +#
    +#  Mark C. Miller, Tue Jun  8 15:51:59 PDT 2021
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Tue July 27, 2021
    +#    Assigning Max32BitInt+1 to int on Windows causes TypeError, not
    +#    ValueError, so change expected results in those cases.
    +#
    +#    Kathleen Biagas, Friday Feb 9, 2024
    +#    Manually skipping some dir() and help() tests that fail with
    +#    Python 3.9.18 until #19264 is addressed.
    +#
    +# ----------------------------------------------------------------------------
    +
    +import copy, io, numpy, sys
    +
    +# Some useful global variables
    +X = [2,4,6]
    +NumPy2Int = numpy.array([1,2])
    +NumPy2Flt = numpy.array([1.1,2.2])
    +NumPy3Int = numpy.array([1,2,3])
    +NumPy3Flt = numpy.array([1.1,2.2,3.3])
    +NumPy4Int = numpy.array([1,2,3,4])
    +NumPy4Flt = numpy.array([1.1,2.2,3.3,4.4])
    +Max32BitInt = 2147483647
    +Max32BitInt1 = Max32BitInt+1
    +MaxIntAs32BitFloat = 16777216
    +MaxIntAs32BitFloat1 = MaxIntAs32BitFloat+1
    +MaxIntAs64BitFloat = 9007199254740992
    +MaxIntAs64BitFloat1 = MaxIntAs64BitFloat+1
    +Max32BitFloat  = 3.402823E+38
    +Max32BitFloatA = 3.402820E+37 # One order mag down from Max
    +Max32BitFloatB = 3.402823E+39 # One order mag up from Max
    +Min32BitFloat = 1.175494E-38
    +
    +# version of repr that strips parens at end
    +def repr2(s):
    +    return repr(s).lstrip('(').rstrip(')')
    +
    +def TestAssignmentToTuple():
    +    TestSection('Assignment to tuple, "point1", member (of CylinderAttributes())')
    +
    +    ca = CylinderAttributes()
    +
    +    # Non-existent member name 'point'
    +    try:
    +        ca.point = 1,2,3
    +        TestFOA('ca.point=1,2,3', LINE())
    +    except NameError:
    +        TestPOA('ca.point=1,2,3')
    +        pass
    +    except:
    +        TestFOA('ca.point=1,2,3', LINE())
    +        pass
    +
    +    # Non-existent member name 'point'
    +    try:
    +        ca.SetPoint(1,2,3)
    +        TestFOA('ca.SetPoint(1,2,3)', LINE())
    +    except ValueError:
    +        TestPOA('ca.SetPoint(1,2,3)')
    +        pass
    +    except:
    +        TestFOA('ca.SetPoint(1,2,3)', LINE())
    +        pass
    +
    +    # CSV too short
    +    try:
    +        ca.point1 = 1,2
    +        TestFOA('ca.point1=1,2', LINE())
    +    except TypeError:
    +        TestPOA('ca.point1=1,2')
    +        pass
    +    except:
    +        TestFOA('ca.point1=1,2', LINE())
    +        pass
    +
    +    # CSV too long
    +    try:
    +        ca.point1 = 1,2,3,4
    +        TestFOA('ca.point1=1,2,3,4', LINE())
    +    except TypeError:
    +        TestPOA('ca.point1=1,2,3,4')
    +        pass
    +    except:
    +        TestFOA('ca.point1=1,2,3,4', LINE())
    +        pass
    +
    +    # The above cases can't be put in a loop. Put remaining cases in a loop
    +    fails = [(1,2), (1,2,3,4), '123', (1,1+2j,3), (1,X,3), (1,'b',3), (1,None,3), NumPy2Flt, NumPy4Flt]
    +    for i in range(len(fails)):
    +        try:
    +            ca.point1 = fails[i]
    +            TestFOA('ca.point1=%s'%repr2(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('ca.point1=%s'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.point1=%s'%repr2(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            ca.SetPoint1(fails[i])
    +            TestFOA('ca.SetPoint1(%s)'%repr2(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('ca.SetPoint1(%s)'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.SetPoint1(%s)'%repr2(fails[i]), LINE())
    +            pass
    +
    +    try:
    +        ca.point1 = 1,2,3
    +        TestPOA('ca.point1=1,2,3')
    +    except:
    +        TestFOA('ca.point1=1,2,3', LINE())
    +        pass
    +
    +    works = [(1,2,3), (1.1,2.2,3.3), tuple(X), NumPy3Int, NumPy3Flt]
    +    for i in range(len(works)):
    +        try:
    +            ca.point1 = works[i]
    +            TestPOA('ca.point1=%s'%repr2(works[i]))
    +        except:
    +            TestFOA('ca.point1=%s'%repr2(works[i]), LINE())
    +            pass
    +
    +    for i in range(len(works)):
    +        try:
    +            ca.SetPoint1(*works[i])
    +            TestPOA('ca.SetPoint1(%s)'%repr2(works[i]))
    +        except:
    +            TestFOA('ca.SetPoint1(%s)'%repr2(works[i]), LINE())
    +            pass
    +
    +def TestAssignmentToBool():
    +    TestSection('Assignment to bool member, "inverse", (of CylinderAttributes())')
    +
    +    ca = CylinderAttributes()
    +
    +    try:
    +        ca.inverse = 1,2
    +        TestFOA('ca.inverse=1,2', LINE())
    +    except TypeError:
    +        TestPOA('ca.inverse=1,2')
    +        pass
    +    except:
    +        TestFOA('ca.inverse=1,2', LINE())
    +        pass
    +
    +    fails =  [    '123',      1+2j,         X,      None,          5]
    +    excpts = [TypeError, TypeError, TypeError, TypeError, ValueError]
    +    for i in range(len(fails)):
    +        try:
    +            ca.inverse = fails[i]
    +            TestFOA('ca.inverse=%s'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ca.inverse=%s'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.inverse=%s'%repr(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            ca.SetInverse(fails[i])
    +            TestFOA('ca.SetInverse(%s)'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ca.SetInverse(%s)'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.SetInverse(%s)'%repr(fails[i]), LINE())
    +            pass
    +
    +    works = [0, 1, True, False]
    +    for i in range(len(works)):
    +        try:
    +            ca.inverse = works[i]
    +            TestPOA('ca.inverse=%s'%repr(works[i]))
    +        except:
    +            TestFOA('ca.inverse=%s'%repr(works[i]), LINE())
    +
    +    for i in range(len(works)):
    +        try:
    +            ca.SetInverse(works[i])
    +            TestPOA('ca.SetInverse(%s)'%repr(works[i]))
    +        except:
    +            TestFOA('ca.SetInverse(%s)'%repr(works[i]), LINE())
    +
    +def TestAssignmentToInt():
    +    TestSection('Assignment to int member, "samplesPerRay", (of VolumeAttributes())')
    +
    +    va = VolumeAttributes()
    +
    +    try:
    +        va.samplesPerRay = 1,2
    +        TestFOA('va.samplesPerRay=1,2', LINE())
    +    except TypeError:
    +        TestPOA('va.samplesPerRay=1,2')
    +        pass
    +    except:
    +        TestFOA('va.samplesPerRay=1,2', LINE())
    +        pass
    +
    +    fails =  [    '123',      1+2j,      None,         X, Max32BitInt1]
    +    if sys.platform.startswith("win"):
    +        excpts = [TypeError, TypeError, TypeError, TypeError, TypeError]
    +    else:
    +        excpts = [TypeError, TypeError, TypeError, TypeError, ValueError]
    +    for i in range(len(fails)):
    +        try:
    +            va.samplesPerRay = fails[i]
    +            TestFOA('va.samplesPerRay=%s'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('va.samplesPerRay=%s'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('va.samplesPerRay=%s'%repr(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            va.SetSamplesPerRay(fails[i])
    +            TestFOA('va.SetSamplesPerRay(%s)'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('va.SetSamplesPerRay(%s)'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('va.SetSamplesPerRay(%s)'%repr(fails[i]), LINE())
    +            pass
    +
    +    works = [0, 1, -1, 5, True, False, Max32BitInt]
    +    for i in range(len(works)):
    +        try:
    +            va.samplesPerRay = works[i]
    +            TestPOA('va.samplesPerRay=%s'%repr(works[i]))
    +        except:
    +            TestFOA('va.samplesPerRay=%s'%repr(works[i]), LINE())
    +
    +    for i in range(len(works)):
    +        try:
    +            va.SetSamplesPerRay(works[i])
    +            TestPOA('va.SetSamplesPerRay(%s)'%repr(works[i]))
    +        except:
    +            TestFOA('va.SetSamplesPerRay(%s)'%repr(works[i]), LINE())
    +
    +def TestAssignmentToFloat():
    +    TestSection('Assignment to float member, "opacityAttenuation", (of VolumeAttributes())')
    +
    +    va = VolumeAttributes()
    +
    +    try:
    +        va.opacityAttenuation = 1,2
    +        TestFOA('va.opacityAttenuation=1,2', LINE())
    +    except TypeError:
    +        TestPOA('va.opacityAttenuation=1,2')
    +        pass
    +    except:
    +        TestFOA('va.opacityAttenuation=1,2', LINE())
    +        pass
    +
    +    fails =  [    '123',      1+2j,      None,         X, Max32BitFloatB]
    +    excpts = [TypeError, TypeError, TypeError, TypeError,       ValueError]
    +    for i in range(len(fails)):
    +        try:
    +            va.opacityAttenuation = fails[i]
    +            TestFOA('va.opacityAttenuation=%s'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('va.opacityAttenuation=%s'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('va.opacityAttenuation=%s'%repr(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            va.SetOpacityAttenuation(fails[i])
    +            TestFOA('va.SetOpacityAttenuation(%s)'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('va.SetOpacityAttenuation(%s)'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('va.SetOpacityAttenuation(%s)'%repr(fails[i]), LINE())
    +            pass
    +
    +    works = [0, 1, -1, 0.3, Max32BitFloatA, True, False]
    +    for i in range(len(works)):
    +        try:
    +            va.opacityAttenuation = works[i]
    +            TestPOA('va.opacityAttenuation=%s'%repr(works[i]))
    +        except:
    +            TestFOA('va.opacityAttenuation=%s'%repr(works[i]), LINE())
    +
    +    for i in range(len(works)):
    +        try:
    +            va.SetOpacityAttenuation(works[i])
    +            TestPOA('va.SetOpacityAttenuation(%s)'%repr(works[i]))
    +        except:
    +            TestFOA('va.SetOpacityAttenuation(%s)'%repr(works[i]), LINE())
    +
    +def TestAssignmentToDouble():
    +    TestSection('Assignment to double member, "radius", (of CylinderAttributes())')
    +
    +    ca = CylinderAttributes()
    +
    +    try:
    +        ca.radius = 1,2
    +        TestFOA('ca.radius=1,2', LINE())
    +    except TypeError:
    +        TestPOA('ca.radius=1,2')
    +        pass
    +    except:
    +        TestFOA('ca.radius=1,2', LINE())
    +        pass
    +
    +    fails = ['123', 1+2j, None, X]
    +    for i in range(len(fails)):
    +        try:
    +            ca.radius = fails[i]
    +            TestFOA('ca.radius=%s'%repr(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('ca.radius=%s'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.radius=%s'%repr(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            ca.SetRadius(fails[i])
    +            TestFOA('ca.SetRadius(%s)'%repr(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('ca.SetRadius(%s)'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.SetRadius(%s)'%repr(fails[i]), LINE())
    +            pass
    +
    +    works = [0, 1, -1, 5.5, 1.1E-479, 1.1E+479, True, False]
    +    for i in range(len(works)):
    +        try:
    +            ca.radius = works[i]
    +            TestPOA('ca.radius=%s'%repr(works[i]))
    +        except:
    +            TestFOA('ca.radius=%s'%repr(works[i]), LINE())
    +
    +    for i in range(len(works)):
    +        try:
    +            ca.SetRadius(works[i])
    +            TestPOA('ca.SetRadius(%s)'%repr(works[i]))
    +        except:
    +            TestFOA('ca.SetRadius(%s)'%repr(works[i]), LINE())
    +
    +def TestAssignmentToString():
    +    TestSection('Assignment to string member, "designator", (of CurveAttributes())')
    +
    +    ca = CurveAttributes()
    +
    +    try:
    +        ca.designator = "123","abc"
    +        TestFOA('ca.designator="123","abc"', LINE())
    +    except TypeError:
    +        TestPOA('ca.designator="123","abc"')
    +        pass
    +    except:
    +        TestFOA('ca.designator="123","abc"', LINE())
    +        pass
    +
    +    fails = [0, 1, 1.1, 1+2j, None, X]
    +    for i in range(len(fails)):
    +        try:
    +            ca.designator = fails[i]
    +            TestFOA('ca.designator=%s'%repr(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('ca.designator=%s'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.designator=%s'%repr(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            ca.SetDesignator(fails[i])
    +            TestFOA('ca.SetDesignator(%s)'%repr(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('ca.SetDesignator(%s)'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.SetDesignator(%s)'%repr(fails[i]), LINE())
    +            pass
    +
    +    works = ['123', 'abc', '']
    +    for i in range(len(works)):
    +        try:
    +            ca.designator = works[i]
    +            TestPOA('ca.designator=%s'%repr(works[i]))
    +        except:
    +            TestFOA('ca.designator=%s'%repr(works[i]), LINE())
    +
    +    for i in range(len(works)):
    +        try:
    +            ca.SetDesignator(works[i])
    +            TestPOA('ca.SetDesignator(%s)'%repr(works[i]))
    +        except:
    +            TestFOA('ca.SetDesignator(%s)'%repr(works[i]), LINE())
    +
    +def TestAssignmentToGlyphType():
    +    TestSection('Assignment to GlyphType member, "pointType", (of MeshAttributes())')
    +
    +    ma = MeshAttributes()
    +
    +    # Test direct assignment with = operator
    +    try:
    +        ma.pointType = 1
    +        TestPOA('ma.pointType=1')
    +    except:
    +        TestFOA('ma.pointType=1', LINE())
    +        pass
    +
    +    fails =  [    '123',      1+2j,      None,         X,         -1, 123123123123123123123123123123]
    +    excpts = [TypeError, TypeError, TypeError, TypeError, ValueError,                      TypeError]
    +    for i in range(len(fails)):
    +        try:
    +            ma.pointType = fails[i]
    +            TestFOA('ma.pointType=%s'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ma.pointType=%s'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ma.pointType=%s'%repr(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            ma.SetPointType(fails[i])
    +            TestFOA('ma.SetPointType(%s)'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ma.SetPointType(%s)'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ma.SetPointType(%s)'%repr(fails[i]), LINE())
    +            pass
    +
    +    works = [0, 1, 5, True, False, ma.Point]
    +    for i in range(len(works)):
    +        try:
    +            ma.pointType = works[i]
    +            TestPOA('ma.pointType=%s'%repr(works[i]))
    +        except:
    +            TestFOA('ma.pointType=%s'%repr(works[i]), LINE())
    +
    +    for i in range(len(works)):
    +        try:
    +            ma.SetPointType(works[i])
    +            TestPOA('ma.SetPointType(%s)'%repr(works[i]))
    +        except:
    +            TestFOA('ma.SetPointType(%s)'%repr(works[i]), LINE())
    +
    +def TestAssignmentToEnum():
    +    TestSection('Assignment to Enum member, "smoothingLevel", (of MeshAttributes())')
    +
    +    ma = MeshAttributes()
    +
    +    # Test direct assignment with = operator
    +    try:
    +        ma.smoothingLevel = 1
    +        TestPOA('ma.smoothingLevel=1')
    +    except:
    +        TestFOA('ma.smoothingLevel=1', LINE())
    +        pass
    +
    +    fails  = [    '123',      1+2j,      None,         X,         -1,  123123123, 123123123123123123123123123123]
    +    excpts = [TypeError, TypeError, TypeError, TypeError, ValueError, ValueError,                      TypeError]
    +    for i in range(len(fails)):
    +        try:
    +            ma.smoothingLevel = fails[i]
    +            TestFOA('ma.smoothingLevel=%s'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ma.smoothingLevel=%s'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ma.smoothingLevel=%s'%repr(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            ma.SetSmoothingLevel(fails[i])
    +            TestFOA('ma.SetSmoothingLevel(%s)'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ma.SetSmoothingLevel(%s)'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ma.SetSmoothingLevel(%s)'%repr(fails[i]), LINE())
    +            pass
    +
    +    works = [0, 1, 2, True, False, ma.Fast]
    +    for i in range(len(works)):
    +        try:
    +            ma.smoothingLevel = works[i]
    +            TestPOA('ma.smoothingLevel=%s'%repr(works[i]))
    +        except:
    +            TestFOA('ma.smoothingLevel=%s'%repr(works[i]), LINE())
    +
    +    for i in range(len(works)):
    +        try:
    +            ma.SetSmoothingLevel(works[i])
    +            TestPOA('ma.SmoothingLevel(%s)'%repr(works[i]))
    +        except:
    +            TestFOA('ma.SetSmoothingLevel(%s)'%repr(works[i]), LINE())
    +
    +def TestAssignmentToUCharVector():
    +    TestSection('Assignment to ucharVector member, "changedColors",  (of MultiCurveAttributes())')
    +
    +    mca = MultiCurveAttributes()
    +
    +    # Test direct assignment with = operator
    +    try:
    +        mca.changedColors = 1,2,3
    +        TestPOA('mca.changedColors=1,2,3')
    +    except:
    +        TestFOA('mca.changedColors=1,2,3', LINE())
    +        pass
    +
    +    fails = [(1,123123123123123123123123123123,3), (1,1+2j,3), (1,X,3), (1,'b',3), (1,None,3), ('123',)]
    +    for i in range(len(fails)):
    +        try:
    +            mca.changedColors = fails[i]
    +            TestFOA('mca.changedColors=%s'%repr2(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('mca.changedColors=%s'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('mca.changedColors=%s'%repr2(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            mca.SetChangedColors(*fails[i])
    +            TestFOA('mca.SetChangedColors(%s)'%repr2(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('mca.SetChangedColors(%s)'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('mca.SetChangedColors(%s)'%repr2(fails[i]), LINE())
    +            pass
    +
    +    works = [(1,2,3), tuple(X), (1,True,3), (1,False,3)]
    +    for i in range(len(works)):
    +        try:
    +            mca.changedColors = works[i]
    +            TestPOA('mca.changedColors=%s'%repr2(works[i]))
    +        except:
    +            TestFOA('mca.changedColors=%s'%repr2(works[i]), LINE())
    +
    +    works += [NumPy3Int] # NP arrays only work via deref operator
    +    for i in range(len(works)):
    +        try:
    +            mca.SetChangedColors(*works[i])
    +            TestPOA('mca.SetChangedColors(%s)'%repr2(works[i]))
    +        except:
    +            TestFOA('mca.SetChangedColors(%s)'%repr2(works[i]), LINE())
    +
    +def TestAssignmentToIntVector():
    +    TestSection('Assignment to intVector member, "index", (of OnionPeelAttributes())')
    +
    +    opa = OnionPeelAttributes()
    +
    +    # Test direct assignment with = operator
    +    try:
    +        opa.index = 1,2,3
    +        TestPOA('opa.index=1,2,3')
    +    except:
    +        TestFOA('opa.index=1,2,3', LINE())
    +        pass
    +
    +    fails =  [(Max32BitInt1,), (1+2j,), ('b',), (None,), (1,Max32BitInt1,3),
    +              (1,1+2j,3), (1,X,3), (1,'b',3), (1,None,3)]
    +    if sys.platform.startswith("win"):
    +        excpts = [TypeError, TypeError, TypeError, TypeError, TypeError,
    +                  TypeError, TypeError, TypeError, TypeError]
    +    else:
    +        excpts = [ValueError, TypeError, TypeError, TypeError, ValueError,
    +                  TypeError, TypeError, TypeError, TypeError]
    +    for i in range(len(fails)):
    +        try:
    +            opa.index = fails[i]
    +            TestFOA('opa.index=%s'%repr2(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('opa.index=%s'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('opa.index=%s'%repr2(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            opa.SetIndex(*fails[i])
    +            TestFOA('opa.SetIndex(%s)'%repr2(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('opa.SetIndex(%s)'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('opa.SetIndex(%s)'%repr2(fails[i]), LINE())
    +            pass
    +
    +    works = [(1,2,3), X, tuple(X), (1,True,3), (1,False,3), (1,Max32BitInt,3)]
    +    for i in range(len(works)):
    +        try:
    +            opa.index = works[i]
    +            TestPOA('opa.index=%s'%repr2(works[i]))
    +        except:
    +            TestFOA('opa.index=%s'%repr2(works[i]), LINE())
    +
    +    works += [NumPy3Int] # NP Arrays work only via deref operator
    +    for i in range(len(works)):
    +        try:
    +            opa.SetIndex(*works[i])
    +            TestPOA('opa.SetIndex(%s)'%repr2(works[i]))
    +        except:
    +            TestFOA('opa.SetIndex(%s)'%repr2(works[i]), LINE())
    +
    +def TestAssignmentToDoubleVector():
    +    TestSection('Assignment to doubleVector member, "values", (of ContourAttributes())')
    +
    +    ca = ContourAttributes()
    +
    +    # Test direct assignment with = operator
    +    try:
    +        ca.contourValue = 1,2,3
    +        TestPOA('ca.contourValue=1,2,3')
    +    except:
    +        TestFOA('ca.contourValue=1,2,3', LINE())
    +        pass
    +
    +    fails = [(1+2j,), ('b',), (None,), (1,1+2j,3), (1,X,3), (1,'b',3), (1,None,3)]
    +    for i in range(len(fails)):
    +        try:
    +            ca.contourValue = fails[i]
    +            TestFOA('ca.contourValue=%s'%repr2(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('ca.contourValue=%s'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.contourValue=%s'%repr2(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            ca.SetContourValue(*fails[i])
    +            TestFOA('ca.SetContourValue(%s)'%repr2(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('ca.SetContourValue(%s)'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.SetContourValue(%s)'%repr2(fails[i]), LINE())
    +            pass
    +
    +    works = [(1,2,3), X, tuple(X), (1,True,3), (1,False,3)]
    +    for i in range(len(works)):
    +        try:
    +            ca.contourValue = works[i]
    +            TestPOA('ca.contourValue=%s'%repr2(works[i]))
    +        except:
    +            TestFOA('ca.contourValue=%s'%repr2(works[i]), LINE())
    +
    +    works += [NumPy3Flt] # NP Arrays work only via deref operator
    +    for i in range(len(works)):
    +        try:
    +            ca.SetContourValue(*works[i])
    +            TestPOA('ca.SetContourValue(%s)'%repr2(works[i]))
    +        except:
    +            TestFOA('ca.SetContourValue(%s)'%repr2(works[i]), LINE())
    +
    +def TestAssignmentToUCharArray():
    +    TestSection('Assignment to ucharArray member, "freeformOpacity", (of VolumeAttributes())')
    +    arr = [17,]*256
    +
    +    va = VolumeAttributes()
    +
    +    # Test assigning to individual entry via direct (operator =) assignment
    +    try:
    +        va.freeformOpacity = 3,17
    +        TestPOA('va.freeformOpacity=3,17')
    +    except:
    +        TestFOA('va.freeformOpacity=3,17', LINE())
    +        pass
    +
    +    # Test assigning to individual entry via Set method 
    +    try:
    +        va.SetFreeformOpacity(3,17)
    +        TestPOA('va.SetFreeformOpacity(3,17)')
    +    except:
    +        TestFOA('va.SetFreeformOpacity(3,17)', LINE())
    +        pass
    +
    +    # Test assigning to whole array via (operator =) assignment
    +    try:
    +        va.freeformOpacity = tuple(arr)
    +        TestPOA('va.freeformOpacity=tuple(arr)')
    +    except:
    +        TestFOA('va.freeformOpacity=tuple(arr)', LINE())
    +        pass
    +
    +    # Test assigning to whole array via Set method 
    +    try:
    +        va.SetFreeformOpacity(*tuple(arr))
    +        TestPOA('va.SetFreeformOpacity(*tuple(arr))')
    +    except:
    +        TestFOA('va.SetFreeformOpacity(*tuple(arr))', LINE())
    +        pass
    +
    +    # Test assigning to individual entry via direct (operator =) assignment
    +    # failures for type of second argument (color value)
    +    fails =  [ (3,None),  (3,1+2j),     (3,X), (3,'123'), (None,17), (1+2j,17),    (X,17),('123',17),    (-3,17),   (3,1700)]
    +    excpts = [TypeError, TypeError, TypeError, TypeError, TypeError, TypeError, TypeError, TypeError, IndexError, ValueError]
    +    for i in range(len(fails)):
    +        try:
    +            va.freeformOpacity = fails[i][0],fails[i][1]
    +            TestFOA('va.freeformOpacity=%s,%s'%(repr(fails[i][0]),repr(fails[i][1])), LINE())
    +        except excpts[i]:
    +            TestPOA('va.freeformOpacity=%s,%s'%(repr(fails[i][0]),repr(fails[i][1])))
    +            pass
    +        except:
    +            TestFOA('va.freeformOpacity=%s,%s'%(repr(fails[i][0]),repr(fails[i][1])), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            va.SetFreeformOpacity(fails[i][0],fails[i][1])
    +            TestFOA('va.SetFreeformOpacity(%s,%s)'%(repr(fails[i][0]),repr(fails[i][1])), LINE())
    +        except excpts[i]:
    +            TestPOA('va.SetFreeformOpacity(%s,%s)'%(repr(fails[i][0]),repr(fails[i][1])))
    +            pass
    +        except:
    +            TestFOA('va.SetFreeformOpacity(%s,%s)'%(repr(fails[i][0]),repr(fails[i][1])), LINE())
    +            pass
    +
    +    # Test assigning to whole member via direct (operator =) assignment
    +    try:
    +        va.freeformOpacity = (17,)*256
    +        TestPOA('va.freeformOpacity=(17,)*256')
    +    except:
    +        TestFOA('va.freeformOpacity=(17,)*256', LINE())
    +        pass
    +
    +    # Test assigning to whole member via Set method 
    +    try:
    +        va.SetFreeformOpacity(*(17,)*256)
    +        TestPOA('va.SetFreeformOpacity((17,)*256)')
    +    except:
    +        TestFOA('va.SetFreeformOpacity((17,)*256)', LINE())
    +        pass
    +
    +    # Test assigning to whole member via direct (operator =) assignment
    +    # failures for type of first argument (index)
    +    arr1 = copy.deepcopy(arr)
    +    arr2 = copy.deepcopy(arr)
    +    arr3 = copy.deepcopy(arr)
    +    arr4 = copy.deepcopy(arr)
    +    arr5 = copy.deepcopy(arr)
    +    arr1[3] = None
    +    arr2[3] = 1+2j
    +    arr3[3] = X
    +    arr4[3] = (1,2,3)
    +    arr5[3] = '123'
    +    fails = [tuple(arr1), tuple(arr2), tuple(arr3), tuple(arr4), tuple(arr5)]
    +    for i in range(len(fails)):
    +        try:
    +            va.freeformOpacity = fails[i]
    +            TestFOA('va.freeformOpacity=%s'%repr(fails[i][:7]).replace(')',', ...'), LINE())
    +        except TypeError:
    +            TestPOA('va.freeformOpacity=%s'%repr(fails[i][:7]).replace(')',', ...'))
    +            pass
    +        except:
    +            TestFOA('va.freeformOpacity=%s'%repr(fails[i][:7]).replace(')',', ...'), LINE())
    +            pass
    +
    +    # Test star-deref of tuple
    +    for i in range(len(fails)):
    +        try:
    +            va.SetFreeformOpacity(*fails[i])
    +            TestFOA('va.SetFreeformOpacity%s'%repr(fails[i][:7]).replace(')',', ...)'), LINE())
    +        except TypeError:
    +            TestPOA('va.SetFreeformOpacity%s'%repr(fails[i][:7]).replace(')',', ...)'))
    +            pass
    +        except:
    +            TestFOA('va.SetFreeformOpacity%s'%repr(fails[i][:7]).replace(')',', ...)'), LINE())
    +            pass
    +
    +    # Test just passing the tuple
    +    for i in range(len(fails)):
    +        try:
    +            va.SetFreeformOpacity(fails[i])
    +            TestFOA('va.SetFreeformOpacity(fails[%d])'%i, LINE())
    +        except TypeError:
    +            TestPOA('va.SetFreeformOpacity(fails[%d])'%i)
    +            pass
    +        except:
    +            TestFOA('va.SetFreeformOpacity(fails[%d])'%i, LINE())
    +            pass
    +
    +def TestAssignmentToIntArray():
    +    TestSection('Assignment to intArray member, "reflections", (of ReflectAttributes())')
    +
    +    ra = ReflectAttributes()
    +
    +    # Test assigning via (operator =) assignment
    +    try:
    +        ra.reflections = 0,1,0,1,0,1,0,1
    +        TestPOA('ra.reflections=0,1,0,1,0,1,0,1')
    +    except:
    +        TestFOA('ra.reflections=0,1,0,1,0,1,0,1', LINE())
    +        pass
    +
    +    fails =  [(0,1,None,1,0,1,0,1), (0,1,1+2j,1,0,1,0,1), (0,1,X,1,0,1,0,1),
    +              (0,1,Max32BitInt1,1,0,1,0,1), (0,1,'123',1,0,1,0,1),
    +              (0,1,0,1,0,1,0,1,1), (0,1,0,1,0,1,0)]
    +    if sys.platform.startswith("win"):
    +        excpts = [TypeError, TypeError, TypeError, TypeError, TypeError, TypeError, TypeError]
    +    else:
    +        excpts = [TypeError, TypeError, TypeError, ValueError, TypeError, TypeError, TypeError]
    +    for i in range(len(fails)):
    +        try:
    +            ra.reflections = fails[i]
    +            TestFOA('ra.reflections=%s'%repr2(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ra.reflections=%s'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ra.reflections=%s'%repr2(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            ra.SetReflections(*fails[i])
    +            TestFOA('ra.SetReflections(%s)'%repr2(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ra.SetReflections(%s)'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ra.SetReflections(%s)'%repr2(fails[i]), LINE())
    +            pass
    +
    +    NumPyArray = numpy.array([0,1,0,1,0,1,0,1])
    +    works = [(0,1,0,1,0,1,0,1), (-1,100,-1,100,-1,100,-1,100), (0,True,False,1,0,1,0,1), (0,1,Max32BitInt,1,0,1,0,1), NumPyArray]
    +    for i in range(len(works)):
    +        try:
    +            ra.reflections = works[i]
    +            TestPOA('ra.reflections=%s'%repr2(works[i]))
    +        except:
    +            TestFOA('ra.reflections=%s'%repr2(works[i]), LINE())
    +
    +    for i in range(len(works)):
    +        try:
    +            ra.SetReflections(*works[i])
    +            TestPOA('ra.SetReflections(%s)'%repr2(works[i]))
    +        except:
    +            TestFOA('ra.SetReflections(%s)'%repr2(works[i]), LINE())
    +
    +def TestAssignmentToFloatArray():
    +    TestSection('Assignment to floatArray member, "center", (of RadialResampleAttributes())')
    +
    +    rra = RadialResampleAttributes()
    +
    +    # Test assigning via (operator =) assignment
    +    try:
    +        rra.center = 0,1,2
    +        TestPOA('rra.center=0,1,2')
    +    except:
    +        TestFOA('rra.center=0,1,2', LINE())
    +        pass
    +    try:
    +        rra.center = 0,1
    +        TestFOA('rra.center=0,1', LINE())
    +    except:
    +        TestPOA('rra.center=0,1')
    +        pass
    +    try:
    +        rra.center = 0,1,2,3
    +        TestFOA('rra.center=0,1,2,3', LINE())
    +    except:
    +        TestPOA('rra.center=0,1,2,3')
    +        pass
    +
    +    fails =  [(0,1), (0,1,2,3), (0,None,2), (0,1+2j,2), (0,X,2), (0,'123',2), (0, Max32BitFloatB,2)]
    +    excpts = [TypeError, TypeError, TypeError, TypeError, TypeError, TypeError, ValueError]
    +    for i in range(len(fails)):
    +        try:
    +            rra.center = fails[i]
    +            TestFOA('rra.center=%s'%repr2(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('rra.center=%s'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('rra.center=%s'%repr2(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            rra.SetCenter(*fails[i])
    +            TestFOA('rra.SetCenter(%s)'%repr2(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('rra.SetCenter(%s)'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('rra.SetCenter(%s)'%repr2(fails[i]), LINE())
    +            pass
    +
    +    works = [(1,2,3), (1.1,2.2,3.3), tuple(X), (1,True,3), (1,False,3), (1,Max32BitFloatA,3), NumPy3Flt]
    +    for i in range(len(works)):
    +        try:
    +            rra.center = works[i]
    +            TestPOA('rra.center=%s'%repr2(works[i]))
    +        except:
    +            TestFOA('rra.center=%s'%repr2(works[i]), LINE())
    +
    +    for i in range(len(works)):
    +        try:
    +            rra.SetCenter(*works[i])
    +            TestPOA('rra.SetCenter(%s)'%repr2(works[i]))
    +        except:
    +            TestFOA('rra.SetCenter(%s)'%repr2(works[i]), LINE())
    +
    +def TestAssignmentToDoubleArray():
    +    TestSection('Assignment to doubleArray member, "materialProperties", (of VolumeAttributes())')
    +
    +    va = VolumeAttributes()
    +
    +    # Test assigning via (operator =) assignment
    +    try:
    +        va.materialProperties = 0,1,2,3
    +        TestPOA('va.materialProperties=0,1,2,3')
    +    except:
    +        TestFOA('va.materialProperites=0,1,2,3', LINE())
    +        pass
    +    try:
    +        va.materialProperties = 0,1,2
    +        TestFOA('va.materialProperties=0,1,2', LINE())
    +    except:
    +        TestPOA('va.materialProperties=0,1,2')
    +        pass
    +    try:
    +        va.materialProperties = 0,1,2,3,4
    +        TestFOA('va.materialProperties=0,1,2,3,4', LINE())
    +    except:
    +        TestPOA('va.materialProperties=0,1,2,3,4')
    +        pass
    +
    +    fails = [(0,1), (0,1,2,3,4), (0,None,2,3), (0,1+2j,2,3), (0,X,2,3), (0,'123',2,3)]
    +    for i in range(len(fails)):
    +        try:
    +            va.materialProperties = fails[i]
    +            TestFOA('va.materialProperties=%s'%repr2(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('va.materialProperties=%s'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('va.materialProperties=%s'%repr2(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            va.SetMaterialProperties(*fails[i])
    +            TestFOA('va.SetMaterialProperties(%s)'%repr2(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('va.SetMaterialProperties(%s)'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('va.SetMaterialProperties(%s)'%repr2(fails[i]), LINE())
    +            pass
    +
    +    works = [(1,2,3,4), (1.1,2.2,3.3,4.4), (1,True,3,4), (1,False,3,4)]
    +    for i in range(len(works)):
    +        try:
    +            va.materialProperties = works[i]
    +            TestPOA('va.materialProperties=%s'%repr2(works[i]))
    +        except:
    +            TestFOA('va.materialProperties=%s'%repr2(works[i]), LINE())
    +
    +    NumPyArray = numpy.array([1.1,2.2,3.3,4.4])
    +    works += [NumPyArray]
    +    for i in range(len(works)):
    +        try:
    +            va.SetMaterialProperties(*works[i])
    +            TestPOA('va.SetMaterialProperties(%s)'%repr2(works[i]))
    +        except:
    +            TestFOA('va.SetMaterialProperties(%s)'%repr2(works[i]), LINE())
    +
    +def TestColorAttributeStuff():
    +    TestSection('ColorAttribute stuff')
    +
    +    cla = ColorAttributeList()
    +    ca = ColorAttribute()
    +
    +    fails = [(0,1,2), (0,1,2,3,4), (0,None,2,3), (0,1+2j,2,3), (0,X,2,3),
    +             (0,'123',2,3), (0,-1,2,3), (0,256,2,3)]
    +    excpts = [TypeError, TypeError, TypeError, TypeError, TypeError, TypeError, ValueError, ValueError]
    +    for i in range(len(fails)):
    +        try:
    +            ca.color = fails[i]
    +            TestFOA('ca.color=%s'%repr2(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ca.color=%s'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.color=%s'%repr2(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            ca.SetColor(*fails[i])
    +            TestFOA('ca.SetColor(%s)'%repr2(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ca.SetColor(%s)'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.SetColor(%s)'%repr2(fails[i]), LINE())
    +            pass
    +
    +    try:
    +        ca.color = (5,5,5,5)
    +        cla.AddColors(ca)
    +        ca.color = (255,0,0,255)
    +        cla.AddColors(ca)
    +        TestPOA('cla.AddColors')
    +    except:
    +        TestFOA('cla.AddColors', LINE())
    +        pass
    +
    +    try:
    +        cla.colors
    +        TestFOA('cla.colors', LINE())
    +    except NameError:
    +        TestPOA('cla.colors')
    +    except:
    +        TestFOA('cla.colors', LINE())
    +        pass
    +
    +    try:
    +        if cla.GetColors(0).color != (5,5,5,5) or cla.GetColors(1).color != (255,0,0,255):
    +           raise ValueError
    +        TestPOA('cla.GetColors(0)')
    +    except:
    +        TestFOA('cla.Getcolors(0)', LINE())
    +        pass
    +
    +    try:
    +        cla.GetColors(2)
    +        TestFOA('cla.Getcolors(2)', LINE())
    +    except ValueError:
    +        TestPOA('cla.GetColors(2)')
    +    except:
    +        TestFOA('cla.Getcolors(2)', LINE())
    +        pass
    +
    +def TestDirOutput(obj, names):
    +    try:
    +        x = [f for f in dir(obj) if not (f.startswith('__') and f.endswith('__'))]
    +        y = [n for n in names if n in x]
    +        if len(y) != len(names):
    +            raise Exception
    +        x = repr(obj)
    +        if x.startswith('<built-in'):
    +            x = x.strip('<>').split()[2]
    +        else:
    +            x = x.strip('<>').split()[0]
    +        TestPOA('dir(%s)'%x)
    +    except:
    +        TestFOA('dir(%s)'%x, LINE())
    +
    +#
    +# Test that dir(x) appears to work
    +#
    +def TestDir(global_dir_result):
    +    TestSection('behavior of dir()')
    +
    +    #
    +    # Testing of global dir() behavior can't be done from within a func
    +    #
    +    global_dir_checks = ['AddPlot', 'DeleteAllPlots', 'Launch', 'GetMetaData']
    +    y = [n for n in global_dir_checks if n in global_dir_result]
    +    if len(y) != len(global_dir_checks):
    +        TestFOA('dir()', LINE())
    +    else:
    +        TestPOA('dir()')
    +
    +    #
    +    # Test a random handful of object level dirs
    +    #
    +
    +    """ 
    +    # These fail with Python 3.9.18, see bug ticket #19264.
    +    # Impossible to add them to skip list due to unhandled exceptions
    +    # So they are being skipped here with a note added to the ticket.
    +    TestDirOutput(SILRestriction(), ['NumSets', 'TurnOnAll', 'Wholes'])
    +    TestDirOutput(PseudocolorAttributes(), ['GetCentering', 'GetColorTableName',
    +        'GetLightingFlag', 'GetLimitsMode', 'GetMax', 'SetCentering',
    +        'SetColorTableName', 'SetLegendFlag', 'SetLimitsMode'])
    +    TestDirOutput(ColorAttributeList(), ['AddColors', 'ClearColors', 'GetColors'])
    +    """
    +
    +
    +# Class to facilitate stdout redirect for testing `help()`
    +class my_redirect_stdout(list):
    +    def __enter__(self):
    +        self._stdout = sys.stdout
    +        sys.stdout = self._stringio = io.StringIO()
    +        return self
    +    def __exit__(self, *args):
    +        self.extend(self._stringio.getvalue().splitlines())
    +        del self._stringio    # free up some memory
    +        sys.stdout = self._stdout
    +
    +# Below import works only for Python > 3.4
    +# So, we use the class def above
    +# from contextlib import redirect_stdout
    +def TestHelpOutput(thing, words = None):
    +    try:
    +        with my_redirect_stdout() as output:
    +            help(thing)
    +        x  = [w for w in words if w in str(output)]
    +        if len(x) != len(words):
    +            raise Exception
    +        x = repr(thing)
    +        if x.startswith('<built-in'):
    +            x = x.strip('<>').split()[2]
    +        else:
    +            x = x.strip('<>').split()[0]
    +        TestPOA('help(%s)'%x)
    +    except:
    +        TestFOA('help(%s)'%x, LINE())
    +
    +def TestHelp():
    +    TestSection('behavior of help()')
    +
    +    TestHelpOutput(AddPlot, ['plotType', 'variableName', 'inheritSIL'])
    +    TestHelpOutput(CreateDatabaseCorrelation,
    +        ['IndexForIndexCorrelation', 'CycleCorrelation', 'StretchedIndexCorrelation'])
    +    TestHelpOutput(SILRestriction(),[]) # should not except
    +
    +    """
    +    # These tests fail with Python 3.9.18 see bug ticket #19264.
    +    # due to nature of thee way these tests are named
    +    # (different name for failure than success),
    +    # they need to be skipped manually until #19264 is addressed
    +    TestHelpOutput(SILRestriction, ['GlobalAttributes', 'SetPlotSILRestriction',
    +        'TurnDomainsOff', 'TurnDomainsOn', 'TurnMaterialsOff', 'TurnMaterialsOn'])
    +    TestHelpOutput('wholes', ['SILRestriction'])
    +    TestHelpOutput('tensor', ['DefineArrayExpression', 'DefineTensorExpression',
    +        'LCSAttributes', 'SPHResampleAttributes', 'TensorAttributes'])
    +    """
    +
    +#
    +# Scalar assignments
    +#
    +# TestAssignmentToUChar() No instances in any .xml files
    +TestAssignmentToBool()
    +TestAssignmentToInt()
    +TestAssignmentToFloat()
    +TestAssignmentToDouble()
    +TestAssignmentToString()
    +TestAssignmentToGlyphType()
    +TestAssignmentToEnum()
    +TestAssignmentToTuple()
    +
    +#
    +# Vector assignments
    +#
    +TestAssignmentToUCharVector()
    +#TestAssignmentToBoolVector() No instances in any .xml files
    +TestAssignmentToIntVector()
    +#TestAssignmentToFloatVector() No instances in any .xml files
    +TestAssignmentToDoubleVector()
    +
    +#
    +# Array assignments
    +#
    +TestAssignmentToUCharArray()
    +#TestAssignmentToBoolArray() No instances in any .xml files
    +TestAssignmentToIntArray()
    +TestAssignmentToFloatArray()
    +TestAssignmentToDoubleArray()
    +
    +#
    +# Attribute Assignments
    +#
    +TestColorAttributeStuff()
    +
    +#
    +# Dir behavior
    +#
    +TestDir(dir())
    +
    +#
    +# Help() behavior
    +#
    +TestHelp()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/unit_compiler_warnings.html b/2024-12-12-22:00/poodle_trunk_parallel/unit_compiler_warnings.html new file mode 100644 index 000000000..2f8c1f36c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/unit_compiler_warnings.html @@ -0,0 +1,36 @@ + +Results for unit/compiler_warnings.py + +

    Results of VisIt Regression Test - unit/compiler_warnings

    + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    +

    Final Return Code: 116

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/unit_compiler_warnings_py.html b/2024-12-12-22:00/poodle_trunk_parallel/unit_compiler_warnings_py.html new file mode 100644 index 000000000..6f82af31a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/unit_compiler_warnings_py.html @@ -0,0 +1,213 @@ +unit/compiler_warnings.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  compiler_warnings.py
    +#
    +#  Tests:      changes in compiler warnings
    +#
    +#  Mark C. Miller, Sun Jul 13 21:45:49 PDT 2014
    +# ----------------------------------------------------------------------------
    +import time, os.path, json, subprocess
    +
    +def ShouldSkip(srcfile, msg):
    +    srcfile_tmp = "global skip list"
    +    if srcfile in skip_list:
    +        srcfile_tmp = srcfile
    +    for skipmsg in skip_list[srcfile_tmp][0]:
    +        minlen = min(len(skipmsg),len(msg))
    +        if msg[0:minlen] == skipmsg[0:minlen]:
    +            return 1
    +    return 0
    +
    +data_dir = test_root_path("..","data")
    +src_dir = test_root_path("..","src")
    +tpb_dir = test_root_path("..","src","third_party_builtin")
    +qtssh_dir = test_root_path("..","src","tools","qtssh")
    +
    +# skip this test if we don't have the make.err file
    +if not os.path.exists(test_root_path("..","make.err")):
    +    Exit(116)
    +
    +# To reduce noise, only run this test on Sunday evenings
    +# regressiontest script stuffs a line of the form "DAY_OF_WEEK=Sunday"
    +# into first line of make.err
    +mfile = open(test_root_path("..","make.err"))
    +shouldSkip = 1
    +for line in mfile:
    +    if "DAY_OF_WEEK=Sunday" in line:
    +        shouldSkip = 0
    +        break
    +mfile.close()
    +if shouldSkip:
    +    Exit(116)
    +
    +#
    +# Read per-file skip list and zero any line numbers
    +# We allow line numbers there so that easy cut-n-paste
    +# can be used to populate skip list
    +#
    +skip_list = {}
    +try:
    +    skip_list = json.load(open(test_root_path("tests","unit","compiler_warnings_skips.json")))
    +except:
    +    pass
    +for s in skip_list:
    +    for l in skip_list[s]:
    +        for m in skip_list[s][l]:
    +            skip_list[s][l][m] = 0
    +        if l == 0:
    +            continue
    +        skip_list[s][0] = skip_list[s][l];
    +        del skip_list[s][l]
    +
    +
    +#
    +# Examine warning messages in make output, building a single, large dictionary
    +# spanning all source files that produced warnings.
    +#   
    +mfile = open(test_root_path("..","make.err"))
    +warning_counts ={}
    +warning_messages = {}
    +for line in mfile:
    +    if "warning" in line.lower():
    +
    +        # get name of file generating warning
    +        line = line[0:-1] # remove trailing newline
    +        warnline = line.partition(":")
    +        warnfile1 = warnline[0]
    +        warnfile2 = warnfile1.partition("]")
    +        if warnfile2[1] == "]":
    +            warnfile = warnfile2[2].replace(" ","")
    +        else:
    +            warnfile = warnfile2[0]
    +
    +        if warnfile[0:len(src_dir):1] != src_dir:
    +            continue # ignore files not in our src dir, not our code
    +        if warnfile[0:len(tpb_dir):1] == tpb_dir:
    +            continue # ignore files in third_party_builtin, not our code
    +        if warnfile[0:len(data_dir):1] == data_dir:
    +            continue # ignore files in data dir, not relevant to VisIt for users
    +        if warnfile[0:len(qtssh_dir):1] == qtssh_dir:
    +            continue # ignore files in qtssh dir, not our code 
    +
    +        src_file = warnfile[len(src_dir)+1::1]
    +        if warnline[1] == ":" and os.path.exists(warnfile):
    +            msginfo = warnline[2].partition(":")
    +            if not msginfo[0].isdigit():
    +                continue # probably a garbled message in make.err
    +            lineno = int(msginfo[0])
    +            rawmsg = msginfo[2]
    +            idx = rawmsg.find("warning")
    +            if idx > -1:
    +                msg = rawmsg[idx::1]
    +            else:
    +                msg = rawmsg
    +            if msg[0:len("warning: ")] == "warning: ":
    +                msg = msg[len("warning: ")::1]
    +            msg_ascii = msg.decode('unicode_escape').encode('ascii','ignore')
    +            msg = msg_ascii
    +
    +            if ShouldSkip(src_file, msg):
    +                continue
    +
    +            if src_file in warning_counts:
    +                warning_counts[src_file] += 1
    +                if lineno in warning_messages[src_file]:
    +                    if msg in warning_messages[src_file][lineno]:
    +                        warning_messages[src_file][lineno][msg] += 1
    +                    else:
    +                        warning_messages[src_file][lineno][msg] = 1
    +                else:
    +                    warning_messages[src_file][lineno] = {msg:1}
    +            else:
    +                warning_counts[src_file] = 1
    +                warning_messages[src_file] = {lineno:{msg:1}}
    +
    +mfile.close()
    +
    +#
    +# Load in current warning counts baseline data
    +#
    +baseline_counts = {}
    +try:
    +    baseline_counts = json.load(open(test_baseline_path("unit","compiler_warnings","warning_counts_by_file.txt")))
    +except:
    +    pass
    +
    +improved_counts = {}
    +worsened_counts = {}
    +for f in warning_counts:
    +    if f in baseline_counts:
    +        if warning_counts[f] > baseline_counts[f]:
    +            worsened_counts[f] = warning_counts[f]
    +        elif warning_counts[f] < baseline_counts[f]:
    +            improved_counts[f] = warning_counts[f]
    +            baseline_counts[f] = warning_counts[f]
    +    else:
    +        worsened_counts[f] = warning_counts[f]
    +for f in baseline_counts:
    +    if f not in warning_counts:
    +        improved_counts[f] = 0
    +for f in improved_counts:
    +    if improved_counts[f] == 0 and f in baseline_counts:
    +        del baseline_counts[f]
    +
    +#
    +# If there were improvements, re-baseline counts file
    +#
    +if len(improved_counts):
    +    bfilename = test_baseline_path("unit","compiler_warnings","warning_counts_by_file.txt")
    +    bfile = open(bfilename,"w+")
    +    json.dump(baseline_counts,bfile,indent=4,sort_keys=True)
    +    bfile.write("\n")
    +    bfile.close()
    +    retval = subprocess.call(["/usr/bin/svn","commit","-m","'Updating warning counts'","%s"%bfilename])
    +
    +#
    +# Generate the (sorted) warning counts data
    +#
    +counts_txt = "{\n"
    +keys = list(worsened_counts.keys())
    +keys.sort()
    +for k in keys:
    +    counts_txt += "\"%s\": %d,\n"%(k,worsened_counts[k])
    +counts_txt += "\"last line\": 0\n}\n"
    +TestText("worsened_counts_by_file", counts_txt)
    +
    +#
    +# Ok, tricky here. Append all the warning details to the html file
    +# so others can actually see it
    +#
    +uniq_msgs = {}
    +tot_files = len(warning_counts)
    +tot_cnt = 0
    +tot_uniq_cnt = 0
    +for srcfile in warning_messages:
    +    for lineno in warning_messages[srcfile]:
    +        for msg in warning_messages[srcfile][lineno]:
    +            if msg not in uniq_msgs:
    +                uniq_msgs[msg] = 1
    +            else:
    +                uniq_msgs[msg] += 1
    +            tot_uniq_cnt += 1
    +            tot_cnt += len(warning_messages[srcfile][lineno])
    +
    +
    +f = open(out_path("html","worsened_counts_by_file.html"),"a")
    +f.write("<pre>\n")
    +f.write("\n\n\nTotal warnings %d\n"%tot_cnt)
    +f.write("Total files with warnings %d\n"%tot_files)
    +f.write("Total unique warnings %d\n"%tot_uniq_cnt)
    +f.write("Unique warning messages by count...\n")
    +sorted_uniq_msgs = sorted(uniq_msgs, key=uniq_msgs.get, reverse=True)
    +for msg in sorted_uniq_msgs:
    +    f.write("%d: \"%s\"\n"%(uniq_msgs[msg],msg))
    +f.write("\n\n\nWarning message details by file and line number...\n");
    +f.write(json.dumps(warning_messages,indent=4))
    +f.write("\n\n\nWarning message strings currently being skipped if matched...\n")
    +f.write(json.dumps(skip_list,indent=4))
    +f.write("</pre>\n")
    +f.close()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/unit_convert2to3.html b/2024-12-12-22:00/poodle_trunk_parallel/unit_convert2to3.html new file mode 100644 index 000000000..30fdcc9d8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/unit_convert2to3.html @@ -0,0 +1,44 @@ + +Results for unit/convert2to3.py + +

    Results of VisIt Regression Test - unit/convert2to3

    + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    simple_2to3_input0 modifications totalling 0 lines
    simple_2to3_result0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/unit_convert2to3_py.html b/2024-12-12-22:00/poodle_trunk_parallel/unit_convert2to3_py.html new file mode 100644 index 000000000..3840a8efb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/unit_convert2to3_py.html @@ -0,0 +1,34 @@ +unit/convert2to3.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  convert2to3.py
    +#
    +#  Tests:      Tests methods that help with converting python 2 style scripts
    +#              to python 3. 
    +#
    +#  Cyrus Harrison, Mon Jul 20 11:32:42 PDT 2020
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +test_script_src = "print 'Old Style Print!'\n"
    +
    +TestText("simple_2to3_input",test_script_src)
    +TestText("simple_2to3_result",ConvertPy2to3(test_script_src))
    +
    +
    +#
    +# Test on-the-fly logic for visit.Source
    +#
    +
    +test_script_file = "tgen_test_py2_script.py";
    +open(test_script_file,"w").write(test_script_src)
    +
    +curr_val = visit_utils.builtin.GetAutoPy2to3()
    +
    +visit_utils.SetAutoPy2to3(True)
    +visit.Source(test_script_file)
    +visit_utils.SetAutoPy2to3(curr_val)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/unit_default_methods.html b/2024-12-12-22:00/poodle_trunk_parallel/unit_default_methods.html new file mode 100644 index 000000000..64f744ebe --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/unit_default_methods.html @@ -0,0 +1,64 @@ + +Results for unit/default_methods.py + +

    Results of VisIt Regression Test - unit/default_methods

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    GetDebugLevel()
     0 .eq. 0 (prec=5) : True
    GetLastError()
     "Can't delete the last window." .eq. "Can't delete the last window." : True
    Clearing GetLastError()
     "" .eq. "" : True
    Version()
     349 .ge. 321 (prec=5) : True
    LocalNameSpace()
     "None" .eq. "None" : True
    WriteScript('foo.py') == WriteScript(f)
     "True" .eq. "True" : True
    WriteScript() file size
     4000 .gt. 3000 (prec=5) : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/unit_default_methods_py.html b/2024-12-12-22:00/poodle_trunk_parallel/unit_default_methods_py.html new file mode 100644 index 000000000..f210bb874 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/unit_default_methods_py.html @@ -0,0 +1,62 @@ +unit/default_methods.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  default_methods.py
    +#
    +#  Tests:      Tests default method interface of the visit module
    +#
    +#  Cyrus Harrison, Mon Jul 20 11:32:42 PDT 2020
    +#
    +#  Modifications
    +#    Mark C. Miller, Thu Dec 16 16:43:39 PST 2021
    +#    Wrap in TestValueXX calls so that we really do test behavior and not
    +#    just that something doesn't fail due to exception. Add tests for
    +#    WriteScript.
    +# ----------------------------------------------------------------------------
    +import os, sys, filecmp
    +
    +TestValueEQ("GetDebugLevel()", GetDebugLevel(), 0)
    +
    +# Do something to create an error (not a python exception) so that we
    +# can get something other than the empty string from GetLastError()
    +DeleteWindow()
    +TestValueEQ("GetLastError()", GetLastError(), "Can't delete the last window.")
    +
    +# Test that we can clear the last error too
    +GetLastError(1)
    +TestValueEQ("Clearing GetLastError()", GetLastError(), "")
    +
    +# This version number test assumes 3, single digits
    +TestValueGE("Version()", int(Version().replace('.','')), 321)
    +
    +TestValueEQ("LocalNameSpace()", LocalNameSpace(), None)
    +
    +# The long file name test is relevant only on Windows
    +# But, we should really have an example of a short file name
    +# there that LongFileName expands and we confirm matches expected
    +if sys.platform.startswith("win"):
    +    TestValueEQ("LongFileName()", LongFileName("myfile.txt"), "myfile.txt")
    +
    +# Test two ways of using WriteScript
    +f = open('foo.py', 'wt')
    +WriteScript(f)
    +f.close()
    +WriteScript('bar.py')
    +TestValueEQ("WriteScript('foo.py') == WriteScript(f)", filecmp.cmp('foo.py','bar.py'), True)
    +TestValueGT("WriteScript() file size", os.path.getsize('foo.py'), 3000)
    +
    +### dir is causing exceptions with Python 3.9.18
    +### so manually skip these tests until #19264 can be addressed
    +"""
    +# Test dir() on some objects
    +dout = dir(SILRestriction())
    +TestValueIN("SetsInCategory in dir(SILAttributes())", dout, 'SetsInCategory')
    +TestValueIN("SetIndex in dir(SILAttributes())", dout, 'SetIndex')
    +dout = dir(View3DAttributes())
    +TestValueIN("RotateAxis in dir(View3Dattributes())", dout, 'RotateAxis')
    +TestValueIN("GetImageZoom in dir(View3Dattributes())", dout, 'GetImageZoom')
    +TestValueIN("SetImagePan in dir(View3Dattributes())", dout, 'SetImagePan')
    +"""
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/unit_launcher.html b/2024-12-12-22:00/poodle_trunk_parallel/unit_launcher.html new file mode 100644 index 000000000..716099b1c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/unit_launcher.html @@ -0,0 +1,120 @@ + +Results for unit/launcher.py + +

    Results of VisIt Regression Test - unit/launcher

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    aprun0 modifications totalling 0 lines
    bsub0 modifications totalling 0 lines
    bsub_mpirun0 modifications totalling 0 lines
    dmpirun0 modifications totalling 0 lines
    ibrun0 modifications totalling 0 lines
    mpirun0 modifications totalling 0 lines
    msub_aprun0 modifications totalling 0 lines
    msub_ibrun0 modifications totalling 0 lines
    msub_mpiexec0 modifications totalling 0 lines
    msub_mpirun0 modifications totalling 0 lines
    msub_srun0 modifications totalling 0 lines
    poe0 modifications totalling 0 lines
    prun0 modifications totalling 0 lines
    psub0 modifications totalling 0 lines
    psub_mpirun0 modifications totalling 0 lines
    psub_srun0 modifications totalling 0 lines
    salloc0 modifications totalling 0 lines
    sbatch0 modifications totalling 0 lines
    sbatch_aprun0 modifications totalling 0 lines
    srun0 modifications totalling 0 lines
    yod0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/unit_launcher_py.html b/2024-12-12-22:00/poodle_trunk_parallel/unit_launcher_py.html new file mode 100644 index 000000000..19bd3869b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/unit_launcher_py.html @@ -0,0 +1,196 @@ +unit/launcher.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  launcher.py
    +#
    +#  Tests:      This script tests internallauncher's transformation of visit
    +#              command line arguments into parallel launch arguments.
    +#
    +#  Brad Whitlock, Tue Sep 11 12:31:34 PDT 2012
    +#
    +# Modifications:
    +#   Brad Whitlock, Fri Dec  7 09:08:22 PST 2012
    +#   I added a little more filtering of the launcher output to replace the host
    +#   with $HOST now that the noloopback case will always use the real host
    +#   name instead of 127.0.0.1 for parallel engine launches.
    +#
    +# ----------------------------------------------------------------------------
    +import os
    +import socket
    +import subprocess
    +import getpass
    +
    +# The launch cases we want to test.
    +launch_cases = {
    +"aprun"          : ["-nn", "1"],
    +"bsub"           : ["-p", "pbatch", "-t", "30:00", "-la", "-arg1 -arg2"],
    +"bsub/mpirun"    : ["-p", "pbatch", "-t", "30:00", "-la", "-arg1 -arg2", "-sla", "-arg3 -arg4"],
    +"dmpirun"        : ["-b", "bdivp"],
    +"ibrun"          : [],
    +"mpirun"         : [],
    +"msub/aprun"     : ["-nn", "1", "-sla", "-arg1 -arg2", "-hw-pre", "startx", "-hw-post", "stopx"],
    +"msub/ibrun"     : ["-hw-pre", "startx", "-hw-post", "stopx"],
    +"msub/mpiexec"   : ["-slpre", "echo 'slprecommand'", "-slpost", "echo 'slpostcommand'", "-sla", "-arg1 -arg2", "-machinefile", "machine.txt", "-hw-pre", "startx", "-hw-post", "stopx"],
    +"msub/mpirun"    : ["-sla", "-arg1 -arg2", "-machinefile", "machine.txt", "-hw-pre", "startx", "-hw-post", "stopx"],
    +"msub/srun"      : ["-sla", "-arg1 -arg2", "-hw-pre", "startx", "-hw-post", "stopx"],
    +"poe"            : ["-nn", "1", "-p", "pbatch"],
    +"prun"           : ["-nn", "1", "-p", "pbatch"],
    +"psub"           : ["-n", "JOB_NAME", "-p", "pbatch", "-b", "bdivp", "-t", "30:00", "-expedite", "-slpre", "echo 'pre command'", "-slpost", "echo 'post command'"],
    +"psub/mpirun"    : ["-nn", "1", "-n", "JOB_NAME", "-p", "pbatch", "-b", "bdivp", "-t", "30:00", "-expedite", "-slpre", "echo 'pre command'", "-slpost", "echo 'post command'"],
    +"psub/srun"      : ["-nn", "1", "-n", "JOB_NAME", "-p", "pbatch", "-b", "bdivp", "-t", "30:00", "-expedite", "-slpre", "echo 'pre command'", "-slpost", "echo 'post command'"],
    +
    +
    +"salloc"         : ["-p", "pbatch", "-t", "30:00", "-nn", "1"],
    +"sbatch"         : ["-p", "pbatch", "-b", "bdivp", "-nn", "1"],
    +"sbatch/aprun"   : ["-p", "pbatch", "-b", "bdivp", "-nn", "1", "-sla", "-arg1 -arg2"],
    +"srun"           : ["-nn", "1", "-p", "pbatch", "-b", "bdivp", "-n", "JOB_NAME", "-t", "30:00"],
    +"yod"            : []}
    +
    +# Some debugger arguments.
    +debuggers = [[], ["-totalview", "engine_par"], ["-valgrind", "engine_par"], ["-strace", "engine_par"]]
    +
    +# Get the launcher command for new versions of VisIt.
    +def GetLauncherCommand(args):
    +    p = subprocess.Popen(args, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
    +    stdout, stderr = p.communicate()
    +    ru = stdout.find("RUN USING")
    +    if ru != -1:
    +        cmd = stdout[ru + 11:-2]
    +    else:
    +        cmd = stdout
    +    return cmd
    +
    +def FilterLauncherOutput(text, replacements):
    +    for k in list(replacements.keys()):
    +        text = text.replace(k, replacements[k])
    +    return text
    +
    +def FilterHostName(text):
    +    host = text.find("-host")
    +    port = text.find("-port")
    +    if host != -1 and port != -1:
    +        return text[:host + 6] + "$HOST " + text[port:]
    +    return text
    +
    +def hostname():
    +    return socket.gethostname()
    +
    +def nodename():
    +    return hostname().split(".")[0]
    +
    +def sectorname():
    +    s = nodename()
    +    for d in "0123456789":
    +        s = s.replace(d, "")
    +    return s
    +
    +def FormatLauncherOutput(cmd):
    +    tmpvisit = cmd.find("/tmp/visit")
    +    text = ""
    +    if tmpvisit == -1:
    +        text = cmd
    +    else:
    +        # The launcher made a script. Get the contents of the script.
    +        index = tmpvisit
    +        try:
    +            while cmd[index] != '\n':
    +                index = index + 1
    +            filename = cmd[tmpvisit:index]
    +        except:
    +            filename = cmd[tmpvisit:]
    +
    +        cmd = cmd.replace(filename, "$LAUNCHSCRIPT")
    +        text = text + cmd
    +
    +        try:
    +            lines = open(filename, "rt").readlines()
    +            text = text + '\n\nContents of $LAUNCHSCRIPT:\n'
    +            for line in lines:
    +                text = text + line
    +            os.unlink(filename)
    +        except:
    +            pass
    +
    +    return text
    +
    +
    +# For each launcher
    +i = 0
    +keys = list(launch_cases.keys())
    +keys.sort()
    +for k in keys:
    +    # Test the launcher with each debugger.
    +    j = 0
    +    text = ""
    +    for j in range(len(debuggers)):
    +        np = []
    +        if not "-np" in launch_cases[k]:
    +            np = ["-np", "8"]
    +        args = ["-engine", "-norun", "engine_par", "-l", k] + np + launch_cases[k] + ["-host", "127.0.0.1", "-port", "5600"] + debuggers[j]
    +
    +        # Come up with a visit command
    +        cmd = ""
    +        for a in args:
    +            if " " in a:
    +                cmd = cmd + '"%s" ' % a
    +            else:
    +                cmd = cmd + a + ' '
    +
    +        # Run the launcher and get the output.
    +        visitdir = pjoin(TestEnv.params["top_dir"],"src")
    +        visittestdir = pjoin(TestEnv.params["top_dir"],"test")
    +        visit =  visit_bin_path("visit")
    +        output = FormatLauncherOutput(GetLauncherCommand([visit] + args))
    +        # filter the run dir, since there are multiple variants for nightly tests
    +        # (serial, par, etc)
    +        output = FilterLauncherOutput(output, {TestEnv.params["run_dir"]: "$VISIT_TEST_DIR"})
    +        output = FilterLauncherOutput(output, {TestEnv.params["result_dir"] : "$VISIT_TEST_DIR"})
    +        # Filter out visitdir and some related directories.
    +        output = FilterLauncherOutput(output, {visit_bin_path() : "$VISIT_EXE_DIR"})
    +        output = FilterLauncherOutput(output, {visit_bin_path("..","exe") : "$VISIT_EXE_DIR"})
    +        output = FilterLauncherOutput(output, {visittestdir : "$VISIT_TEST_DIR"})
    +        output = FilterLauncherOutput(output, {visit_bin_path("..") : "$VISITDIR"})
    +        output = FilterLauncherOutput(output, {visitdir : "$VISITDIR"})
    +        # special case filter to resolve csh vs bash env differences
    +        bash_case   = "ulimit -c 0 ;"
    +        bash_case  += " LIBPATH=$VISITDIR/lib ;"
    +        bash_case  += " export LIBPATH ;"
    +        bash_case  += " LD_LIBRARY_PATH=$VISITDIR/lib ;"
    +        bash_case  += " export LD_LIBRARY_PATH"
    +
    +        csh_case  = "limit coredumpsize 0 ;"
    +        csh_case += " setenv LIBPATH $VISITDIR/lib ;"
    +        csh_case += " setenv LD_LIBRARY_PATH $VISITDIR/lib"
    +        shell_filter = {bash_case : csh_case}
    +        output = FilterLauncherOutput(output, shell_filter)
    +        # Filter out $HOME.
    +        try:
    +            output = FilterLauncherOutput(output, {os.environ["HOME"] : "$HOME"})
    +        except:
    +            pass
    +
    +        cdcmd = "cd $VISIT_TEST_DIR"
    +
    +        # Filter out some other stuff.
    +        replacements = {getpass.getuser() : "$USER",
    +                        Version()         : "$VERSION",
    +                        "linux-intel"     : "$PLATFORM",
    +                        "linux-x86_64"    : "$PLATFORM",
    +                        "darwin-i386"     : "$PLATFORM",
    +                        "darwin-x86_64"   : "$PLATFORM"}
    +
    +        output = FilterLauncherOutput(output, replacements)
    +
    +        output = FilterHostName(output)
    +
    +        # Do the test
    +        text = text + "="*80 + "\n"
    +        text = text + "CASE: %s\n\nINPUT: visit %s\n\nRESULTS:\n" % (k + " " + " ".join(debuggers[j]), cmd[:-1])
    +        text = text + output + "\n"*2
    +
    +    name = k.replace("/", "_")
    +    TestText(name, text)
    +    i = i + 1
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/unit_mrucache.html b/2024-12-12-22:00/poodle_trunk_parallel/unit_mrucache.html new file mode 100644 index 000000000..89eedf438 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/unit_mrucache.html @@ -0,0 +1,40 @@ + +Results for unit/mrucache.py + +

    Results of VisIt Regression Test - unit/mrucache

    + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    mrucache0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/unit_mrucache_py.html b/2024-12-12-22:00/poodle_trunk_parallel/unit_mrucache_py.html new file mode 100644 index 000000000..075683011 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/unit_mrucache_py.html @@ -0,0 +1,24 @@ +unit/mrucache.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  mrucache.py
    +#
    +#  Tests:      MRUCache_test unit test
    +#
    +#  Mark C. Miller, Tue Jan 11 10:19:23 PST 2011
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Mon Oct 26, 2020
    +#    Retrieve the correct path on Windows.
    +#
    +# ----------------------------------------------------------------------------
    +import sys
    +
    +if sys.platform.startswith("win"):
    +    tapp = visit_bin_path("MRUCache_test.exe")
    +else:
    +    tapp = visit_bin_path("..","exe","MRUCache_test")
    +res = sexe(tapp,ret_output=True)
    +TestText("mrucache", res["output"])
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/unit_namescheme.html b/2024-12-12-22:00/poodle_trunk_parallel/unit_namescheme.html new file mode 100644 index 000000000..00fd70580 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/unit_namescheme.html @@ -0,0 +1,36 @@ + +Results for unit/namescheme.py + +

    Results of VisIt Regression Test - unit/namescheme

    + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/unit_namescheme_py.html b/2024-12-12-22:00/poodle_trunk_parallel/unit_namescheme_py.html new file mode 100644 index 000000000..6d58a99dd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/unit_namescheme_py.html @@ -0,0 +1,27 @@ +unit/namescheme.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  namescheme.py
    +#
    +#  Tests:      Namescheme_test unit test
    +#
    +#  Mark C. Miller, Tue Jan 11 10:19:23 PST 2011
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Mon Oct 26, 2020
    +#    Retrieve correct path on Windows.
    +#
    +# ----------------------------------------------------------------------------
    +import sys
    +
    +if sys.platform.startswith("win"):
    +    tapp = visit_bin_path("Namescheme_test.exe")
    +else:
    +    tapp = visit_bin_path("..","exe","Namescheme_test")
    +res = sexe(tapp,ret_output=True)
    +if res["return_code"] == 0:
    +    excode = 111
    +else:
    +    excode = 113
    +Exit(excode)
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/unit_protocol.html b/2024-12-12-22:00/poodle_trunk_parallel/unit_protocol.html new file mode 100644 index 000000000..d76a7fe7f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/unit_protocol.html @@ -0,0 +1,36 @@ + +Results for unit/protocol.py + +

    Results of VisIt Regression Test - unit/protocol

    + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/unit_protocol_py.html b/2024-12-12-22:00/poodle_trunk_parallel/unit_protocol_py.html new file mode 100644 index 000000000..d14471fd0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/unit_protocol_py.html @@ -0,0 +1,17 @@ +unit/protocol.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  protocolo.py
    +#
    +#  Tests:      vistprotocol unit test
    +#
    +#  Mark C. Miller, Tue Jan 11 10:19:23 PST 2011
    +# ----------------------------------------------------------------------------
    +tapp = visit_bin_path("visitprotocol")
    +res = sexe(tapp,ret_output=True)
    +if res["return_code"] == 0:
    +    excode = 111
    +else:
    +    excode = 113
    +Exit(excode)
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/unit_stringhelpers.html b/2024-12-12-22:00/poodle_trunk_parallel/unit_stringhelpers.html new file mode 100644 index 000000000..9a7b72614 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/unit_stringhelpers.html @@ -0,0 +1,36 @@ + +Results for unit/stringhelpers.py + +

    Results of VisIt Regression Test - unit/stringhelpers

    + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/unit_stringhelpers_py.html b/2024-12-12-22:00/poodle_trunk_parallel/unit_stringhelpers_py.html new file mode 100644 index 000000000..c544e1544 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/unit_stringhelpers_py.html @@ -0,0 +1,26 @@ +unit/stringhelpers.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  stringhelpers.py
    +#
    +#  Tests:      StringHelpers_test unit test
    +#
    +#  Mark C. Miller, Tue Jan 11 10:19:23 PST 2011
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Thu Nov 12, 2020
    +#    Retrieve the correct path on Windows.
    +# ----------------------------------------------------------------------------
    +import sys
    +
    +if sys.platform.startswith("win"):
    +    tapp = visit_bin_path("StringHelpers_test.exe")
    +else:
    +    tapp = visit_bin_path("..","exe","StringHelpers_test")
    +res = sexe(tapp,ret_output=True)
    +if res["return_code"] == 0:
    +    excode = 111
    +else:
    +    excode = 113
    +Exit(excode)
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/unit_test_value_simple.html b/2024-12-12-22:00/poodle_trunk_parallel/unit_test_value_simple.html new file mode 100644 index 000000000..ac1c5c847 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/unit_test_value_simple.html @@ -0,0 +1,120 @@ + +Results for unit/test_value_simple.py + +

    Results of VisIt Regression Test - unit/test_value_simple

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Basic
    test_value_basic_001
     100 .eq. 100 (prec=5) : True
    test_value_basic_002
     200 .ne. 100 (prec=5) : True
    test_value_basic_003
     100 .lt. 200 (prec=5) : True
    test_value_basic_004
     100 .le. 200 (prec=5) : True
    test_value_basic_005
     200 .le. 200 (prec=5) : True
    test_value_basic_006
     200 .gt. 100 (prec=5) : True
    test_value_basic_007
     200 .ge. 100 (prec=5) : True
    test_value_basic_008
     200 .ge. 200 (prec=5) : True
    test_value_basic_009
     100.0 .eq. 100 (prec=5) : True
    Precision
    test_value_prec_001
     200.0001 .eq. 200 (prec=3) : True
    test_value_prec_002
     200.0000000001 .eq. 200 (prec=9) : True
    test_value_prec_004
     200.0001 .ne. 200 (prec=9) : True
    In Operator
    test_value_in_001
     200 .in. 
    (100, 200, 300)
     (prec=5, at=1) : True
    test_value_in_001
     (1, -1) .in. 
    [(0, 0),
      (1, 0),
      (1, -1),
      (0, 1)]
     (prec=5, at=2) : True
    test_value_in_002
     35 .in. 
    (17, 18, 19, 20, 21)
     (prec=2, at=3) : True
    Objects
    test_value_object_001
     "[1, '2', 3]" .eq. "[1, '2', 3]" : True
    test_value_object_002
     "apple" .lt. "carrot" : True
    test_value_object_003
     (1, 1, 4.71e-06) .lt. (1, 1, 5.01e-06)
     (prec=5) : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/unit_test_value_simple_py.html b/2024-12-12-22:00/poodle_trunk_parallel/unit_test_value_simple_py.html new file mode 100644 index 000000000..553831e89 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/unit_test_value_simple_py.html @@ -0,0 +1,56 @@ +unit/test_value_simple.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  test_value_simple.py
    +#
    +#  Tests:      VisIt Test Suite Test Value tests
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Mark C. Miller, Sun Jan 10 10:24:59 PST 2021
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Basic cases
    +TestSection("Basic")
    +TestValueEQ("test_value_basic_001",100,100)
    +TestValueNE("test_value_basic_002",200,100)
    +
    +TestValueLT("test_value_basic_003",100,200)
    +TestValueLE("test_value_basic_004",100,200)
    +TestValueLE("test_value_basic_005",200,200)
    +
    +TestValueGT("test_value_basic_006",200,100)
    +TestValueGE("test_value_basic_007",200,100)
    +TestValueGE("test_value_basic_008",200,200)
    +
    +TestValueEQ("test_value_basic_009",100.0,100)
    +
    +# Rounding cases
    +TestSection("Precision")
    +TestValueEQ("test_value_prec_001",200.0001,200,3)
    +TestValueEQ("test_value_prec_002",200.0000000001,200,9)
    +TestValueNE("test_value_prec_004",200.0001,200,9)
    +
    +# IN operator
    +TestSection("In Operator")
    +TestValueIN("test_value_in_001",(100,200,300),200)
    +TestValueIN("test_value_in_001",[(0,0), (1,0), (1,-1), (0,1)],(1,-1))
    +
    +# Custom equivalence operator for TestValueIN
    +def EqMod5(a,b):
    +    return a%5 == b%5
    +
    +# This tests that '35' is IN '(17,18,19,20,21)' by the EqMod5 operator
    +# which says two things are equal if their mod 5 values are equal. So,
    +# '35' is IN the list because 20%5==35%5 (0)
    +TestValueIN("test_value_in_002",(17,18,19,20,21),35,2,EqMod5)
    +
    +# General Python objects wind up being tested as strings
    +TestSection("Objects")
    +TestValueEQ("test_value_object_001",[1,'2',3],"[1, '2', 3]")
    +TestValueLT("test_value_object_002","apple","carrot")
    +TestValueLT("test_value_object_003",(1,1,0.00000471),(1,1,0.00000501))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/unit_utility.html b/2024-12-12-22:00/poodle_trunk_parallel/unit_utility.html new file mode 100644 index 000000000..6259f9415 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/unit_utility.html @@ -0,0 +1,36 @@ + +Results for unit/utility.py + +

    Results of VisIt Regression Test - unit/utility

    + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_parallel/unit_utility_py.html b/2024-12-12-22:00/poodle_trunk_parallel/unit_utility_py.html new file mode 100644 index 000000000..16c29e94a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/unit_utility_py.html @@ -0,0 +1,27 @@ +unit/utility.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  utility.py
    +#
    +#  Tests:      Utility_test unit test
    +#
    +#  Mark C. Miller, Mon Dec  1 23:55:05 PST 2014
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Mon Oct 26, 2020
    +#    Retrieve correct path on Windows.
    +#
    +# ----------------------------------------------------------------------------
    +import sys
    +
    +if sys.platform.startswith("win"):
    +    tapp = visit_bin_path("Utility_test.exe")
    +else:
    +    tapp = visit_bin_path("..","exe","Utility_test")
    +res = sexe(tapp,ret_output=True)
    +if res["return_code"] == 0:
    +    excode = 111
    +else:
    +    excode = 113
    +Exit(excode)
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_parallel/zerocopy02.html b/2024-12-12-22:00/poodle_trunk_parallel/zerocopy02.html new file mode 100644 index 000000000..0f2ea2836 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_parallel/zerocopy02.html @@ -0,0 +1,31 @@ +Results for test case zerocopy02 + +

    Results for test case zerocopy02

    + + + + + +
    Legend
    0 Lines Added
    0 Lines Deleted
    1 Lines Changed

    +

    1 modifications, totalling 1 lines

    + + + + + + + + + + + + + + + + + + + + +
     Line Baseline Line Current
    1: OK: All methods use less memory than copying.1: ERROR: Some methods used more memory than copying.
    diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/Pick3DTo2D.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/Pick3DTo2D.html new file mode 100644 index 000000000..6601df0dd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/Pick3DTo2D.html @@ -0,0 +1,1896 @@ +Results for test case Pick3DTo2D + +

    Results for test case Pick3DTo2D

    + + + + + +
    Legend
    0 Lines Added
    0 Lines Deleted
    6 Lines Changed

    +

    2 modifications, totalling 6 lines

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     Line Baseline Line Current
    1:  1:  
    2: A: globe.silo2: A: globe.silo
    3: mesh13: mesh1
    4: Point: <0, -4.48889, 3.95556>4: Point: <0, -4.48889, 3.95556>
    5: Zone: 5545: Zone: 554
    6: Incident Nodes: 797 798 789 788 851 852 843 8426: Incident Nodes: 797 798 789 788 851 852 843 842
    7: u: <nodal>7: u: <nodal>
    8:     (797) = -3.726788:     (797) = -3.72678
    9:     (798) = -5.129479:     (798) = -5.12947
    10:     (789) = -3.847110:     (789) = -3.8471
    11:     (788) = -2.7950811:     (788) = -2.79508
    12:     (851) = -3.9185712:     (851) = -3.91857
    13:     (852) = -5.3934513:     (852) = -5.39345
    14:     (843) = -4.0450814:     (843) = -4.04508
    15:     (842) = -2.9389315:     (842) = -2.93893
    16:  16:  
    17:  17:  
    18: B: globe.silo18: B: globe.silo
    19: mesh119: mesh1
    20: Point: <0, 4.4, -2.44444>20: Point: <0, 4.4, -2.44444>
    21: Zone: 94521: Zone: 945
    22: Incident Nodes: 315 316 307 306 369 370 361 36022: Incident Nodes: 315 316 307 306 369 370 361 360
    23: u: <nodal>23: u: <nodal>
    24:     (315) = 6.3403824:     (315) = 6.34038
    25:     (316) = 5.3934525:     (316) = 5.39345
    26:     (307) = 4.0450826:     (307) = 4.04508
    27:     (306) = 4.7552827:     (306) = 4.75528
    28:     (369) = 6.0300628:     (369) = 6.03006
    29:     (370) = 5.1294729:     (370) = 5.12947
    30:     (361) = 3.847130:     (361) = 3.8471
    31:     (360) = 4.5225431:     (360) = 4.52254
    32:  32:  
    33:  33:  
    34: C: globe.silo34: C: globe.silo
    35: mesh135: mesh1
    36: Point: <-0.629469, -3.97431, 4.07401>36: Point: <-0.629469, -3.97431, 4.07401>
    37: Zone: 55437: Zone: 554
    38: Incident Nodes: 797 798 789 788 851 852 843 84238: Incident Nodes: 797 798 789 788 851 852 843 842
    39: u: <nodal>39: u: <nodal>
    40:     (797) = -3.7267840:     (797) = -3.72678
    41:     (798) = -5.1294741:     (798) = -5.12947
    42:     (789) = -3.847142:     (789) = -3.8471
    43:     (788) = -2.7950843:     (788) = -2.79508
    44:     (851) = -3.9185744:     (851) = -3.91857
    45:     (852) = -5.3934545:     (852) = -5.39345
    46:     (843) = -4.0450846:     (843) = -4.04508
    47:     (842) = -2.9389347:     (842) = -2.93893
    48:  48:  
    49:  49:  
    50: D: globe.silo50: D: globe.silo
    51: mesh151: mesh1
    52: Point: <-0.793176, 5.00792, -2.61567>52: Point: <-0.793176, 5.00792, -2.61567>
    53: Zone: 94553: Zone: 945
    54: Incident Nodes: 315 316 307 306 369 370 361 36054: Incident Nodes: 315 316 307 306 369 370 361 360
    55: u: <nodal>55: u: <nodal>
    56:     (315) = 6.3403856:     (315) = 6.34038
    57:     (316) = 5.3934557:     (316) = 5.39345
    58:     (307) = 4.0450858:     (307) = 4.04508
    59:     (306) = 4.7552859:     (306) = 4.75528
    60:     (369) = 6.0300660:     (369) = 6.03006
    61:     (370) = 5.1294761:     (370) = 5.12947
    62:     (361) = 3.847162:     (361) = 3.8471
    63:     (360) = 4.5225463:     (360) = 4.52254
    64:  64:  
    65:  65:  
    66: E: globe.silo66: E: globe.silo
    67: mesh167: mesh1
    68: Point: <0, -4.48889, 3.95556>68: Point: <0, -4.48889, 3.95556>
    69: Zone: 55469: Zone: 554
    70: Incident Nodes: 797 798 789 788 851 852 843 84270: Incident Nodes: 797 798 789 788 851 852 843 842
    71: u: <nodal>71: u: <nodal>
    72:     (797) = -3.7267872:     (797) = -3.72678
    73:     (798) = -5.1294773:     (798) = -5.12947
    74:     (789) = -3.847174:     (789) = -3.8471
    75:     (788) = -2.7950875:     (788) = -2.79508
    76:     (851) = -3.9185776:     (851) = -3.91857
    77:     (852) = -5.3934577:     (852) = -5.39345
    78:     (843) = -4.0450878:     (843) = -4.04508
    79:     (842) = -2.9389379:     (842) = -2.93893
    80:  80:  
    81:  81:  
    82: F: globe.silo82: F: globe.silo
    83: mesh183: mesh1
    84: Point: <0, 4.4, -2.44444>84: Point: <0, 4.4, -2.44444>
    85: Zone: 94585: Zone: 945
    86: Incident Nodes: 315 316 307 306 369 370 361 36086: Incident Nodes: 315 316 307 306 369 370 361 360
    87: u: <nodal>87: u: <nodal>
    88:     (315) = 6.3403888:     (315) = 6.34038
    89:     (316) = 5.3934589:     (316) = 5.39345
    90:     (307) = 4.0450890:     (307) = 4.04508
    91:     (306) = 4.7552891:     (306) = 4.75528
    92:     (369) = 6.0300692:     (369) = 6.03006
    93:     (370) = 5.1294793:     (370) = 5.12947
    94:     (361) = 3.847194:     (361) = 3.8471
    95:     (360) = 4.5225495:     (360) = 4.52254
    96:  96:  
    97:  97:  
    98: G: globe.silo98: G: globe.silo
    99: mesh199: mesh1
    100: Point: <-0.629469, -3.97431, 4.07401>100: Point: <-0.629469, -3.97431, 4.07401>
    101: Zone: 554101: Zone: 554
    102: Incident Nodes: 797 798 789 788 851 852 843 842102: Incident Nodes: 797 798 789 788 851 852 843 842
    103: u: <nodal>103: u: <nodal>
    104:     (797) = -3.72678104:     (797) = -3.72678
    105:     (798) = -5.12947105:     (798) = -5.12947
    106:     (789) = -3.8471106:     (789) = -3.8471
    107:     (788) = -2.79508107:     (788) = -2.79508
    108:     (851) = -3.91857108:     (851) = -3.91857
    109:     (852) = -5.39345109:     (852) = -5.39345
    110:     (843) = -4.04508110:     (843) = -4.04508
    111:     (842) = -2.93893111:     (842) = -2.93893
    112:  112:  
    113:  113:  
    114: H: globe.silo114: H: globe.silo
    115: mesh1115: mesh1
    116: Point: <-0.793176, 5.00792, -2.61567>116: Point: <-0.793176, 5.00792, -2.61567>
    117: Zone: 945117: Zone: 945
    118: Incident Nodes: 315 316 307 306 369 370 361 360118: Incident Nodes: 315 316 307 306 369 370 361 360
    119: u: <nodal>119: u: <nodal>
    120:     (315) = 6.34038120:     (315) = 6.34038
    121:     (316) = 5.39345121:     (316) = 5.39345
    122:     (307) = 4.04508122:     (307) = 4.04508
    123:     (306) = 4.75528123:     (306) = 4.75528
    124:     (369) = 6.03006124:     (369) = 6.03006
    125:     (370) = 5.12947125:     (370) = 5.12947
    126:     (361) = 3.8471126:     (361) = 3.8471
    127:     (360) = 4.52254127:     (360) = 4.52254
    128:  128:  
    129:  129:  
    130: I: globe.silo130: I: globe.silo
    131: mesh1131: mesh1
    132: Point: (in transformed space)132: Point: (in transformed space)
    133:        <-0.650387, 1.08398, 0>133:        <-0.650387, 1.08398, 0>
    134: Zone: 506134: Zone: 506
    135: Incident Nodes: 347 348 339 338 401 402 393 392135: Incident Nodes: 347 348 339 338 401 402 393 392
    136: u: <nodal>136: u: <nodal>
    137:     (347) = 1.86339137:     (347) = 1.86339
    138:     (348) = 2.56474138:     (348) = 2.56474
    139:     (339) = 1.28237139:     (339) = 1.28237
    140:     (338) = 0.931695140:     (338) = 0.931695
    141:     (401) = 1.58509141:     (401) = 1.58509
    142:     (402) = 2.18169142:     (402) = 2.18169
    143:     (393) = 1.09085143:     (393) = 1.09085
    144:     (392) = 0.792547144:     (392) = 0.792547
    145:  145:  
    146:  146:  
    147: J: globe.silo147: J: globe.silo
    148: mesh1148: mesh1
    149: Point: (in transformed space)149: Point: (in transformed space)
    150:        <-3.0785, -4.9863, 0>150:        <-3.0785, -4.9863, 0>
    151: Zone: 593151: Zone: 593
    152: Incident Nodes: 761 762 753 752 815 816 807 806152: Incident Nodes: 761 762 753 752 815 816 807 806
    153: u: <nodal>153: u: <nodal>
    154:     (761) = -4.75528154:     (761) = -4.75528
    155:     (762) = -6.54508155:     (762) = -6.54508
    156:     (753) = -5.45424156:     (753) = -5.45424
    157:     (752) = -3.96274157:     (752) = -3.96274
    158:     (815) = -5.59017158:     (815) = -5.59017
    159:     (816) = -7.69421159:     (816) = -7.69421
    160:     (807) = -6.41184160:     (807) = -6.41184
    161:     (806) = -4.65847161:     (806) = -4.65847
    162:  162:  
    163:  163:  
    164: K: globe.silo164: K: globe.silo
    165: mesh1165: mesh1
    166: Point: <0.782909, 1.53655, 1.746>166: Point: <0.782909, 1.53655, 1.746>
    167: Zone: 503167: Zone: 503
    168: Incident Nodes: 185 186 177 176 239 240 231 230168: Incident Nodes: 185 186 177 176 239 240 231 230
    169: u: <nodal>169: u: <nodal>
    170:     (185) = 1.58509170:     (185) = 1.58509
    171:     (186) = 2.18169171:     (186) = 2.18169
    172:     (177) = 1.09085172:     (177) = 1.09085
    173:     (176) = 0.792547173:     (176) = 0.792547
    174:     (239) = 1.86339174:     (239) = 1.86339
    175:     (240) = 2.56474175:     (240) = 2.56474
    176:     (231) = 1.28237176:     (231) = 1.28237
    177:     (230) = 0.931695177:     (230) = 0.931695
    178:  178:  
    179:  179:  
    180: L: globe.silo180: L: globe.silo
    181: mesh1181: mesh1
    182: Point: <2.87067, -5.634, 6.40201>182: Point: <2.87067, -5.634, 6.40201>
    183: Zone: 596183: Zone: 596
    184: Incident Nodes: 923 924 915 914 977 978 969 968184: Incident Nodes: 923 924 915 914 977 978 969 968
    185: u: <nodal>185: u: <nodal>
    186:     (923) = -5.59017186:     (923) = -5.59017
    187:     (924) = -7.69421187:     (924) = -7.69421
    188:     (915) = -6.41184188:     (915) = -6.41184
    189:     (914) = -4.65847189:     (914) = -4.65847
    190:     (977) = -4.75528190:     (977) = -4.75528
    191:     (978) = -6.54508191:     (978) = -6.54508
    192:     (969) = -5.45424192:     (969) = -5.45424
    193:     (968) = -3.96274193:     (968) = -3.96274
    194:  194:  
    195:  195:  
    196: Pick with all materials turned on:196: Pick with all materials turned on:
    197:  197:  
    198: M: multi_rect3d.silo198: M: multi_rect3d.silo
    199: mesh1 domain 1199: mesh1 domain 1
    200: Point: <0.2, 0.0666667, 0.0888889>200: Point: <0.2, 0.0666667, 0.0888889>
    201: Zone: 225201: Zone: 225
    202: Incident Nodes: 269 270 280 281 390 391 401 402202: Incident Nodes: 269 270 280 281 390 391 401 402
    203: d: <zonal> = 0.682125203: d: <zonal> = 0.682125
    204:  204:  
    205:  205:  
    206: N: multi_rect3d.silo206: N: multi_rect3d.silo
    207: mesh1 domain 1207: mesh1 domain 1
    208: Point: <0.216667, 0.0625, 0.0833333>208: Point: <0.216667, 0.0625, 0.0833333>
    209: Zone: 226209: Zone: 226
    210: Incident Nodes: 270 271 281 282 391 392 402 403210: Incident Nodes: 270 271 281 282 391 392 402 403
    211: d: <zonal> = 0.667304211: d: <zonal> = 0.667304
    212:  212:  
    213:  213:  
    214: O: multi_rect3d.silo214: O: multi_rect3d.silo
    215: mesh1 domain 19215: mesh1 domain 19
    216: Point: <0.2, 0.511111, 0.555556>216: Point: <0.2, 0.511111, 0.555556>
    217: Zone: 605217: Zone: 605
    218: Incident Nodes: 731 732 742 743 852 853 863 864218: Incident Nodes: 731 732 742 743 852 853 863 864
    219: d: <zonal> = 0.320833219: d: <zonal> = 0.320833
    220:  220:  
    221:  221:  
    222: P: multi_rect3d.silo222: P: multi_rect3d.silo
    223: mesh1 domain 19223: mesh1 domain 19
    224: Point: <0.216667, 0.5125, 0.55>224: Point: <0.216667, 0.5125, 0.55>
    225: Zone: 606225: Zone: 606
    226: Incident Nodes: 732 733 743 744 853 854 864 865226: Incident Nodes: 732 733 743 744 853 854 864 865
    227: d: <zonal> = 0.287983227: d: <zonal> = 0.287983
    228:  228:  
    229:  229:  
    230: Q: multi_rect3d.silo230: Q: multi_rect3d.silo
    231: mesh1 domain 1231: mesh1 domain 1
    232: Point: <0.2, 0.075, 0.1>232: Point: <0.2, 0.075, 0.1>
    233: Node: 402233: Node: 402
    234: Incident Zones: 335 325 225 235 336 326 226 236234: Incident Zones: 335 325 225 235 336 326 226 236
    235: d: <zonal>235: d: <zonal>
    236:     (335) = 0.646048236:     (335) = 0.646048
    237:     (325) = 0.66229237:     (325) = 0.66229
    238:     (225) = 0.682125238:     (225) = 0.682125
    239:     (235) = 0.666367239:     (235) = 0.666367
    240:     (336) = 0.63038240:     (336) = 0.63038
    241:     (326) = 0.647015241:     (326) = 0.647015
    242:     (226) = 0.667304242:     (226) = 0.667304
    243:     (236) = 0.651187243:     (236) = 0.651187
    244:  244:  
    245:  245:  
    246: R: multi_rect3d.silo246: R: multi_rect3d.silo
    247: mesh1 domain 1247: mesh1 domain 1
    248: Point: <0.2, 0.075, 0.1>248: Point: <0.2, 0.075, 0.1>
    249: Node: 402249: Node: 402
    250: Incident Zones: 335 325 225 235 336 326 226 236250: Incident Zones: 335 325 225 235 336 326 226 236
    251: d: <zonal>251: d: <zonal>
    252:     (335) = 0.646048252:     (335) = 0.646048
    253:     (325) = 0.66229253:     (325) = 0.66229
    254:     (225) = 0.682125254:     (225) = 0.682125
    255:     (235) = 0.666367255:     (235) = 0.666367
    256:     (336) = 0.63038256:     (336) = 0.63038
    257:     (326) = 0.647015257:     (326) = 0.647015
    258:     (226) = 0.667304258:     (226) = 0.667304
    259:     (236) = 0.651187259:     (236) = 0.651187
    260:  260:  
    261:  261:  
    262: S: multi_rect3d.silo262: S: multi_rect3d.silo
    263: mesh1 domain 19263: mesh1 domain 19
    264: Point: <0.2, 0.5, 0.566667>264: Point: <0.2, 0.5, 0.566667>
    265: Node: 853265: Node: 853
    266: Incident Zones: 705 605 706 606266: Incident Zones: 705 605 706 606
    267: d: <zonal>267: d: <zonal>
    268:     (705) = 0.327687268:     (705) = 0.327687
    269:     (605) = 0.320833269:     (605) = 0.320833
    270:     (706) = 0.295599270:     (706) = 0.295599
    271:     (606) = 0.287983271:     (606) = 0.287983
    272:  272:  
    273:  273:  
    274: T: multi_rect3d.silo274: T: multi_rect3d.silo
    275: mesh1 domain 19275: mesh1 domain 19
    276: Point: <0.2, 0.5, 0.566667>276: Point: <0.2, 0.5, 0.566667>
    277: Node: 853277: Node: 853
    278: Incident Zones: 705 605 706 606278: Incident Zones: 705 605 706 606
    279: d: <zonal>279: d: <zonal>
    280:     (705) = 0.327687280:     (705) = 0.327687
    281:     (605) = 0.320833281:     (605) = 0.320833
    282:     (706) = 0.295599282:     (706) = 0.295599
    283:     (606) = 0.287983283:     (606) = 0.287983
    284:  284:  
    285:  285:  
    286: Pick with material 2 turned off:286: Pick with material 2 turned off:
    287:  287:  
    288: U: multi_rect3d.silo288: U: multi_rect3d.silo
    289: mesh1 domain 1289: mesh1 domain 1
    290: Point: <0.2, 0.0666667, 0.0888889>290: Point: <0.2, 0.0666667, 0.0888889>
    291: Zone: 226291: Zone: 225
    292: Incident Nodes: 270 271 281 282 391 392 402 403292: Incident Nodes: 269 270 280 281 390 391 401 402
    293: d: <zonal> = 0.667304293: d: <zonal> = 0.682125
    294:  294:  
    295:  295:  
    296: V: multi_rect3d.silo296: V: multi_rect3d.silo
    297: mesh1 domain 1297: mesh1 domain 1
    298: Point: <0.216667, 0.0625, 0.0833333>298: Point: <0.216667, 0.0625, 0.0833333>
    299: Zone: 226299: Zone: 226
    300: Incident Nodes: 270 271 281 282 391 392 402 403300: Incident Nodes: 270 271 281 282 391 392 402 403
    301: d: <zonal> = 0.667304301: d: <zonal> = 0.667304
    302:  302:  
    303:  303:  
    304: W: multi_rect3d.silo304: W: multi_rect3d.silo
    305: mesh1 domain 19305: mesh1 domain 19
    306: Point: <0.2, 0.511111, 0.555556>306: Point: <0.2, 0.511111, 0.555556>
    307: Zone: 606307: Zone: 605
    308: Incident Nodes: 732 733 743 744 853 854 864 865308: Incident Nodes: 731 732 742 743 852 853 863 864
    309: d: <zonal> = 0.287983309: d: <zonal> = 0.320833
    310:  310:  
    311:  311:  
    312: X: multi_rect3d.silo312: X: multi_rect3d.silo
    313: mesh1 domain 19313: mesh1 domain 19
    314: Point: <0.216667, 0.5125, 0.55>314: Point: <0.216667, 0.5125, 0.55>
    315: Zone: 606315: Zone: 606
    316: Incident Nodes: 732 733 743 744 853 854 864 865316: Incident Nodes: 732 733 743 744 853 854 864 865
    317: d: <zonal> = 0.287983317: d: <zonal> = 0.287983
    318:  318:  
    319:  319:  
    320: Y: multi_rect3d.silo320: Y: multi_rect3d.silo
    321: mesh1 domain 1321: mesh1 domain 1
    322: Point: <0.2, 0.075, 0.1>322: Point: <0.2, 0.075, 0.1>
    323: Node: 402323: Node: 402
    324: Incident Zones: 335 325 225 235 336 326 226 236324: Incident Zones: 335 325 225 235 336 326 226 236
    325: d: <zonal>325: d: <zonal>
    326:     (335) = 0.646048326:     (335) = 0.646048
    327:     (325) = 0.66229327:     (325) = 0.66229
    328:     (225) = 0.682125328:     (225) = 0.682125
    329:     (235) = 0.666367329:     (235) = 0.666367
    330:     (336) = 0.63038330:     (336) = 0.63038
    331:     (326) = 0.647015331:     (326) = 0.647015
    332:     (226) = 0.667304332:     (226) = 0.667304
    333:     (236) = 0.651187333:     (236) = 0.651187
    334:  334:  
    335:  335:  
    336: Z: multi_rect3d.silo336: Z: multi_rect3d.silo
    337: mesh1 domain 1337: mesh1 domain 1
    338: Point: <0.2, 0.075, 0.1>338: Point: <0.2, 0.075, 0.1>
    339: Node: 402339: Node: 402
    340: Incident Zones: 335 325 225 235 336 326 226 236340: Incident Zones: 335 325 225 235 336 326 226 236
    341: d: <zonal>341: d: <zonal>
    342:     (335) = 0.646048342:     (335) = 0.646048
    343:     (325) = 0.66229343:     (325) = 0.66229
    344:     (225) = 0.682125344:     (225) = 0.682125
    345:     (235) = 0.666367345:     (235) = 0.666367
    346:     (336) = 0.63038346:     (336) = 0.63038
    347:     (326) = 0.647015347:     (326) = 0.647015
    348:     (226) = 0.667304348:     (226) = 0.667304
    349:     (236) = 0.651187349:     (236) = 0.651187
    350:  350:  
    351:  351:  
    352: a: multi_rect3d.silo352: a: multi_rect3d.silo
    353: mesh1 domain 19353: mesh1 domain 19
    354: Point: <0.2, 0.5, 0.566667>354: Point: <0.2, 0.5, 0.566667>
    355: Node: 853355: Node: 853
    356: Incident Zones: 705 605 706 606356: Incident Zones: 705 605 706 606
    357: d: <zonal>357: d: <zonal>
    358:     (705) = 0.327687358:     (705) = 0.327687
    359:     (605) = 0.320833359:     (605) = 0.320833
    360:     (706) = 0.295599360:     (706) = 0.295599
    361:     (606) = 0.287983361:     (606) = 0.287983
    362:  362:  
    363:  363:  
    364: b: multi_rect3d.silo364: b: multi_rect3d.silo
    365: mesh1 domain 19365: mesh1 domain 19
    366: Point: <0.2, 0.5, 0.566667>366: Point: <0.2, 0.5, 0.566667>
    367: Node: 853367: Node: 853
    368: Incident Zones: 705 605 706 606368: Incident Zones: 705 605 706 606
    369: d: <zonal>369: d: <zonal>
    370:     (705) = 0.327687370:     (705) = 0.327687
    371:     (605) = 0.320833371:     (605) = 0.320833
    372:     (706) = 0.295599372:     (706) = 0.295599
    373:     (606) = 0.287983373:     (606) = 0.287983
    374:  374:  
    diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/avg_value_02.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/avg_value_02.html new file mode 100644 index 000000000..4bee43e4e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/avg_value_02.html @@ -0,0 +1,31 @@ +Results for test case avg_value_02 + +

    Results for test case avg_value_02

    + + + + + +
    Legend
    0 Lines Added
    0 Lines Deleted
    1 Lines Changed

    +

    1 modifications, totalling 1 lines

    + + + + + + + + + + + + + + + + + + + + +
     Line Baseline Line Current
    1: The average value of vel is 4.06619e-17, -1.2443e-17, 01: The average value of vel is -1.62203e-17, -1.2443e-17, 0
    diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_HDF5_X_Ray_Output_spectra_topo_intensities_legacy.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_HDF5_X_Ray_Output_spectra_topo_intensities_legacy.png new file mode 100644 index 0000000000000000000000000000000000000000..48814d827e5e15f882d4b6bcd9acfc36e82d7427 GIT binary patch literal 1205 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_qWIPZ!6KiaBp@-_2X(z|atQ z=gsf^M%9VgCq5`kofW@ZoaB?8C?R2YYj)hT%6Sdv=2tO&*e|Sj#D&99(8;Go05|i* z^Bpm-B=;P>57d!%x+MO`{mtv8!&+)~oBzH2>vh}L=Nd#9LeQ2`1^D7%G<5KU&OX~i zruRpKq%Fwei3F<+I(L-0kP5=gsFSKOii8Z;Q>NBEHj)<#>udcv#uJn^_zg-@E*H zO@`NJ8@&sqwfXb?FMq3&^{J@5aQnew;ez5VySHDv=g42{+H(1QP;C76UGLs)+PC2J z(!0iY82uyO?KVI6>0I=^dUoq|^;Tz!^KYe}d-~wuM$5^~ze{Iax~G-%ZlC%8&!-Cu z1h4TQJa{ttwd3@kyv}GkyjZM+}~> KelF{r5}E+NNTN^x literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_HDF5_X_Ray_Output_spectra_topo_intensities_legacy_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_HDF5_X_Ray_Output_spectra_topo_intensities_legacy_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..6baf5d1cf3e278f63e3d6953190117326eb70370 GIT binary patch literal 869 zcmeAS@N?(olHy`uVBq!ia0vp^DIm)b0D<8=n1a^7Dy*wf7Yh-gomw|KAq>5PvGd>6p+hhBX2aI@dN`W=oKj z{rKwY{Jtxu&5Va1-k)zTVZPA4!pgsem|30jk{yf)|}0f5!qk^ zjHXT4*wUk#qNAA1Dd~LzWai)$l5P-nJ@R_z*|oxJ=be2~a^uz_9m#%8F2DK9bRzXm z8qI3E+7;KoN#*n{)o#|%tNY$qbj>*b^T)()@l2^S<4aTWrt8OBREsTG=NVjOYgfBS z<3$;xns8T>Mv|E_%dgr;J4Ao}n_D+u;6!o5&pmg`tWu30-ZuX<$70#-rT6pKC)%ld zb|l-?FVpZ4slOUBEP|{GO~rw`ONb_y^*xGmXZ1JgfsKh zKfA+<)zvl?2liI~`NJu|z>% literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_HDF5_X_Ray_Output_spectra_topo_intensities_modern.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_HDF5_X_Ray_Output_spectra_topo_intensities_modern.png new file mode 100644 index 0000000000000000000000000000000000000000..6236817d738de9e190d0b499085563e2282fbd4c GIT binary patch literal 1205 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_qWIPZ!6KiaBp@-_D!uz~JB* z^YwrIOuHSf89ODSH}<_bcVd$e`?S`l6ZSkYJO7!br0%M4!~eM)ifT?BodQWpEi-U4 z?T)<-JO9A8?z(Wp_o(H+oB!MVZa&;KLI3-*|55)BCjPbLG8A<3X%P@sJmSJJ${Y;` zIwyjS`u!iuR;L%7&Hh~T^Ub<975mNxx7WSas(JUI+rRfiU1{0+i{IRDpS^ZlCbx3S z_2A;_A9eM*@%+j>>nB_0x9_cJa({pL+hLP+{U1I&lF8j{_wL*6yXX7$u6K5?{(tCZ z?Dv&|>v*Tv&0BBx@_FT~W&7VBzPqhv-?kc~JB<2171w`tytZ7^Uu|^ar1Hx@JHpSU zR-4AjeO{?~_VW&h?_Xo><}dsE)oSL4Ukgq@I4oRHzNLNpwTq7DYn@vz?_auW|Fm6l z?>6mS@Or5&$he62)h6eDor}I-uWp@JZ*}H##;x#kPoEszXgzuI@6s8UE^57bS7-A7 z_36SQ!EO8p4<3zv9l8Cd>|&RQrjBj4Fu;$tK% zo;P%VPI_4I>bK72n)u1_|F-OQ@xA=uU+l;FTE_p&dsI_&7M?xM)wnC}eAw*%(vl zHDM`|sh;z;d%v1>bW!ciLJ`CHpa0oDKY!WeOxhC7yL$8O3V)e6gic(RA}Mco;r->e zOg?H~e!B>6mQ)N7IZ~+o>8rM@BgdC2hR>C|-yLzq{;||yOO%ga> z^T%Vq|D*}2OEeV=YVOS2FSq7k!_A($`4>C#?^~4j?JnP0Ki_+LgwBoo&%fpB#U$7~ zdmCL=ezN%9p2Ylqo#d@aCP`LLUk1zBJb38L#~-R4 zVDjiqq!{5^X@+SRXWcmF}=N+ShC*>+uz@3bb9bHxvcERpP6@K=h>%M&z3fi(5w8`b9(yi>?dR0z*Yuj~}0sY8~lt`GUzD3r7wWPDO+H z|F^32-OhhgcKhVnO=Uc^mbi1tx=g7m+f$QN w7G7qI(Cbv1l;RsvA2s_w^ZsM_QrHXjs>T102HW$k2j(6IPgg&ebxsLQ0K6QDM*si- literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_HDF5_X_Ray_Output_spectra_topo_path_length_legacy.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_HDF5_X_Ray_Output_spectra_topo_path_length_legacy.png new file mode 100644 index 0000000000000000000000000000000000000000..e1f19f9cdb08e1184ce0e0a49aaf3d19fd77c130 GIT binary patch literal 1293 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_qWZo-U3d6?5L+zL>Yli@_mq z$IJi!jlMS?5eVq&diN?)d)dWciDif1WcghxoVASc#h-A0hJU3>Ei*V2)tovy1(I+x z<1=KA*<0VTX19O6>#9op+vW2ZvZt>#<6ZuD<@2K7^DN#>7ME)Oc+F5^))%f}i=TsRB`oqSpZgcV1b^b7~{-oroIR(DL`H*POHnf&w9wd?Wj zx9jU_&NPe13M$H{Ni92l{ifEuw~XG84fOiw^GE-C{3oUKSL&I+2l8S|?pyfw&p9SI zo%f*Tz0VInh?L*`KL7ez=5t@y?!V}AV*2g6AAhnBcTLd$zUcdT;r6fc#v?F(e}CdQ zp15Xt!HKMS&;6>cZ!tgKU!wZ_p#9Udx$lCN@9fOIoqzXM>u-0vJ>}b*-`C8QU;W&@ zEy^~pxAMADOzgC|@dB%p%dS1YzS_p-{M^lUOJB{eVp5M-`_;t9J*-~lSmumpkEiQD zFJ7KFD}J3@TwG!G0b}8PR&P&lFLR5YyQ6C7ev#V;x9_g0JaEpYT(9uYgVocz3re@? z?~Tm=u=0J2_UGIg^84T2I;|Q0{rLLl=N{V^2Ty;l_x)7andsSdrDrzWc)eQTJ=YJT z`Kzt#ZhR>y5S$mY?y1t9ub1Z*eKnU@{?h+E|Gs zzx=}Vwds_Tlh22yz-*_UygR!J6cs+|FUN1ucSt{{VXr~YuC_xB#BdJ+5-NKyGnvD zy}u_a`1dfgb&1d<`E~Orl)QLz$H#Mb$<^jR>+FuqN-dju_3r-2gom8|4cGVlyDWeF zh-p^04wL-P8w);OXBCfJ6WHDP_iXAk^P68z+dX}0^?LJ}e|Klu$K;xC|Noy?{=);C z=kAhs=PzF!JU{&(n|WQ`N;{uvhh;CMZxP;e0OSnX6LsAY)uonRb^c*L=fA%6HT>e+ zn8xr$PwG89WzRhfi?ltH*sdM;sZe>5($PEXDt~=V7S-7E;HXsg`HE{xD*K9EyTo^F zI4UL}WcTc&tDaeApV6;*-;Z0E9dz;eGiiGH&gv#%YwxcQg?6>u$fVcY*IRh{#I?xx z7a#YZPxh(luMXc?)fH@6Bq=E%@Ix~?;i2Vu^_em$1v4Jro&5Fn@mtROk8;+nkI-p6 zDntqKMKP=|=3T-*Py4M;SNQIBQ1rJ`x|OilDYau^#|roLK9nFf&r{bM4&<*Y+R>2EI#tk3=3M?B zse}Xa{!Why=Ks92q;lHk%1^ns9NfYdO_|Wr692>K$c4J&s{*qxuM7BjWI0=};jwoG z>9byPs#%rX`|wQ7{Cq)LbMN*&d(V9}dK$iGR@yJ2>24B{NhcqMMMx$jbglF?+kSIh z@chJQQrB07-2eDaMcu!+s%PWxJM!r@^M2}XTNTn@w8eL~>ua;^&u7d|%Ie$cZnNvm z)6{9#BeE~fO4;O9+BWmC%=+N<0XvWC?qB(WS$Q>!=i}=B& Yl4>1w!v3T>Fsn0oy85}Sb4q9e0B8W~od5s; literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_HDF5_X_Ray_Output_spectra_topo_path_length_modern.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_HDF5_X_Ray_Output_spectra_topo_path_length_modern.png new file mode 100644 index 0000000000000000000000000000000000000000..8cecd669ff98bd129de7f8cb007296e60fbf33f8 GIT binary patch literal 1273 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_qV`o-U3d6?5L+ew(+-i@_mq z=gZ&wKi!cxU%s&6N8y3kz1d3@v)U6~%1nLd9Fq`V@Y#Pa!;k&Kibq^H3IWw&;LD;sUH8z z_WU{5W5RY{Ykpa95i*;g<)aGlMGel-ITU)?yHCmK-WikIdhgoFf;r6d&}?4yUQ-rUY0oj_C)UG&Fi^l$9;bIL4ben zyZH3AOnu*0)?aiv(H>p@<4^A8t_l3*mwrEQy!`7p4-x4Hrz7zvyFshX&gRg{xC3*S z-Q9iM@86w2%jcbZ`N#QB+Iy*o=T2|?cXjLPg8CeuP2hM!ycPo-&x%8n>}A@wRpDS&z1Vuxc9uaet2lc z-#dG<_Ltw>W0&{N`mTA-{|m2g&py4c?4tg$n6zXuM>~-ZPoHnySDAXgddFv#KTluI zn%~ks@2;YIePd=%{64221@fQ#INp1cmEI_g%8m7m3uh+GYTUg}1z4mpc)I$ztaD0e F0svkI&h`KR literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_HDF5_X_Ray_Output_spectra_topo_path_length_modern_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_HDF5_X_Ray_Output_spectra_topo_path_length_modern_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..912b141c55ec8a49424a13d91fe9b0a76cf280ab GIT binary patch literal 851 zcmeAS@N?(olHy`uVBq!ia0vp^DIm~29X*@y_)1&cHSL@&r=sh9Ptgjz!m3pdG_7~J9~{i z(_(nsg|?XOS4;8vT^lx2<@4-fyU*ump8dZ>lCM1}UF}#c1G{IEs7lyDiKMm0JC677 z`v3EY+-&O^`#tkdA7*@QZM)^Sg!3BiJ2(E#Jzc}N@BeZA?~xC^qsq>rU$G-Kl<7yFB;moBzuns_!||`L}APtKP?RaXnIpPi67F(SF7hKOus(GnDp3 zzss7vyJS;~`k(z-zjk~1#lN-e_k4aIZD?zgw(&dcBfb6fmv2|Ud^m1(#Qe?^?P-;r znQ;&GW;`m6OPwkF=S=XNW#_looG^}d>wPG;%inTq|Mm;KJCCy6Qoa0K`Q8&tHHo?P z%VSfg|D0tk^YF&Esb4=FzvbM2gtczHN|+-kAjv0s6t5j=tnDt_`ZS~0+2_(zvtpU0 zr`b01+)QcH+x#~8T4d79P^n!pPbGN!8y$BWu5z9qI`4tM)!SvO+W4+p`d!Z3V|7RF zyc+NR&1brOHnFvx*>F;%zTivax$^LhViC!G_ah#u$QSfo{_>--yt483pA)ywe3E@$ z(fc@N=|ih_%hR%9kxy*$4bS`Aoc=uLNwQyI=k7C~RkGK7uoJgD?P~Y9bY0bP0l+XkK!HR&( literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_JSON_X_Ray_Output_spectra_topo_intensities_legacy.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_JSON_X_Ray_Output_spectra_topo_intensities_legacy.png new file mode 100644 index 0000000000000000000000000000000000000000..b363725d9b807ec8ac4624ae0ff402f6280b4216 GIT binary patch literal 1186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_qW)PZ!6KiaBp@U(8$Nz~B&g z+PitKC$?8#-hM59d-VT4C!ZDpVZ|dZ9EO6U%+YY5cOrOm zTRG-6t4~$lT>tuAGdrIr%UOMiUVrHMyFZVTm1EY&z2CQ0ew$y<9@Ezgx8ALdt^dDA zX76svvK{CC=J~UoUsG&cx4Gx1ZO$2<+cJ+nTtEDFyWjQBldJz9Sw8#QM!~q-bAB2A zT_S&aQ%szB`R()HvXjl9y=0Y_+HLsw`#1G@g3p7`ZNDFN`^=r)<*%N6*|^)`anW0| z<*AzwO=excJMp*rgNOIt-HY1JSM^F;DMoL4N=)p+nVP?at<;{aD?WUVzxK!Hx--vC zR@oK)e|IC-#^%nMbj!*DnRQQ|)ZNv2c`ejpPF?oj&(j}2QF$ZZBt3ciwdQMv_cnwl q+}i#}wWVK`aONeLyGd7Y!@e)feZhu~AF05yhr!d;&t;ucLK6Tgwv}}N literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_JSON_X_Ray_Output_spectra_topo_intensities_legacy_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_JSON_X_Ray_Output_spectra_topo_intensities_legacy_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..ed6bfe0f7c128c5e22f65c4cb710c1bce578cdc6 GIT binary patch literal 716 zcmeAS@N?(olHy`uVBq!ia0vp^DImdE?5u{^BG z8b1tp7yZ3+`rWU6>-N1`niW3zXwt&Jo0t9n#`$NuR#?EsrZ9%=2St|FYZbM@^P#8T&ZKiq+1o5q?eum&sj0d7vBh}b^GdNf z2Fa7>S4hPeBzMc-NEDXYc(_HFt!!qW(*8}S513gZ$3~(*p6{BR`kR6S`8LOQ?>X;1r?`E4Wux=Hr((tX9-2kR6dy30|A|q)s6RXI zX-B%n6U`4&@rCCY&ljEJ-S^l#F7aHCrGC-L>vx{(#yuC#E1KRvqp-a;@3Y+d57rVt zX3YL`M%V5+TYkaO^gT9l+uFsyZ;UJaSJ1J|GCko`jm-9JwKFp|JV=_;?XJ!(tasxn z+Lz4 tjm!Y7OPm6%C;t>~)QRZkk z&^Zxo%f>{(95*X2<@s!R>XgwQAlyu(vZibo*-LUboZoy5_UG$*KYfpBX!)pqM~rywwZF}Ki|H39z8w#_`$38 zg=OuvIW57Pz3XNB?Ov{bY{2vXUV8cMzn@qBR^M#>;7CijZ@ zm)yHedlp+-v)_z&yG_r1IXC-Wy|uMoz18gJ*S7S}Ieo4`)rn<)SQ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_JSON_X_Ray_Output_spectra_topo_intensities_modern_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_JSON_X_Ray_Output_spectra_topo_intensities_modern_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..e4c40c9b63016ec63c70725581176d0a135eeed0 GIT binary patch literal 871 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 DK3mQd literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_YAML_X_Ray_Output_spectra_topo_intensities_legacy.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_YAML_X_Ray_Output_spectra_topo_intensities_legacy.png new file mode 100644 index 0000000000000000000000000000000000000000..28675de5ebdd0eacd1d5eedbc68b0cb8e8f75e60 GIT binary patch literal 1207 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_qWoPZ!6KiaBquMd#fL5OD~M zD(#a~Uc5wp#kAMr<{BB|yRNZ&_0-mG*y~w$CvQ9Vg`bi94F9bKoqSpZgcXmta2Vod z?&*E~HLCxE(EeA954KKw>38`Hzn->}-5v9`?~79ZT65viO3>_41^7aKG;|1u&PM+J z4^?}wDf3k3om*~y_eA6K-!(6<=y z-#?oluDxc?nLV*(ADHF#uKO0>Yq;;w;qKxs=RfVa9bdj(K6agObNT;HfAe>-$}v%~ zzcOdJtvghE{`AwL`dHiC&)=3-o_@tyk@Vp1+tbE+=@Ik3r%b$?dY<3%ex1qf6C3&G zUpaVqd1lnz1;78!-5&pMUzjqpzQ2|Jz8Z$Uu<9QfvU9)OQFp2MS-kq)vt4p>oAxd^ z9bKLBmBq&V?Yr~0Ys2oZdCs19KlW^;$+r{fmOmfenET{OWo&OriFg^m{jB;wWpiR$ z-cEmT>cQf#q4s&(Z*SM<>iIokf6Iq`cr!B1lGAVAbeG7tnVWNDfCUnRr>mdKI;Vst E09f*me*gdg literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_YAML_X_Ray_Output_spectra_topo_intensities_legacy_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_YAML_X_Ray_Output_spectra_topo_intensities_legacy_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..5bd79c4ff50a4911c1542cbdff9c843e902977c4 GIT binary patch literal 790 zcmeAS@N?(olHy`uVBq!ia0vp^DImHS(-G1P2JjbF9A}yTteQ$i;%-no5a*aszo8>N1xj*hPDH_k~k?&iuSyb@w zKfUkk`9IjZ>L?^J%GyusSTcog)76j3xn{GkW^JujT^e$|^m=K1%>B~X*z5IQwz~hn zzv1<+ZMpe*dEf58`l0^1L6Ey6!r=&$l9<58h7ML2kU4`|$e!tRRP}_~O|^M_hE~tl zY&AS4;502&U0vPKP4MHr?v6U)uN52*?OZY`Fd$;q*U^;!jf~A&z(4yFJHdv zhUN3U?|<8!HhMnCFm3nUXO-(-yQ-Wo&R$!@b9ln@ogFEW%Z^`OfBXHHUEkx%FU)`S z_Og41(xT({TJLeMUiZ3CX0r~rBG2Ifk)wC--hKS|agANS;kMk}5jv+f@hEP|jSijq z{omuqi!-Ha-<(a`d^ayXE>2EPZr;3k*IsWmeD>*6kwn|g9J7g`p(`5Rez{j)SNE;< zzRB6YfB(LH`_`iGn1o=Y-gMW%7J*f(s%mR(?d|vP+b1@0S?06PKXc4x&nsUaKF8mA zN|2CX_S$n3|E2X9b}iB_-BG4~S|WL^uV!kbSn?dT)3@#~pY`lwP5;SvvA-^!v%DK~ zJYcK_KCcLq;aKbLh*2~7amr(?(f literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_YAML_X_Ray_Output_spectra_topo_intensities_modern.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_YAML_X_Ray_Output_spectra_topo_intensities_modern.png new file mode 100644 index 0000000000000000000000000000000000000000..4831dc192afd0597edc575aa347527ad0e9634b4 GIT binary patch literal 1209 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_qV}PZ!6KiaBquMd!_SU~mWw zDqR^TR$XehM(Nb)8(pQ@-(@1hyb>hX^j=>7S|!_XZhaNghyB8eM_f1z1)Y3a1aLD? z+}^=6y^2f!5sEtL3wFwyly`|pDv;!M{3@58T~pz)&$@CE*8=nx8>H;0w? zfYRr38}swa*S|Z{c>K3b$*bx2TEENId|D@XFD$*d_uBrb_h$Fg^Uv>HEH~@+-S@ZC ze^nYDdQ@!i{ObmF{et(^8~-OsJ$K)++oJmSne)5BaDgXYT z7p5FbjJdPm_TRbN`0LkSoymFL-->r%1#@0s+4qaLtY2>Q?F@*b}aw@ckPBx|J&k!7$t5xe(&w{sJ|zpl#UC5_4cV2=rksC%6LDBU>eLq315?0 zofLFZS3WXRKR;7kMDpgGpQ7QWUuEB&naR&18mhv_qnhd-9<(f2OsCFPz*@j+m*!=6 zo310->$tm`9!)x3daZGu-QJ>uuD-DW47$0#vK%j+l-)Gl70%4)mEh$uHN9|g>Fk`$ z^*gdMwO2W4XkL%-X0_hcqa$!h)o9ZsBX$4pll8XDiAX+H{7f{|`Ezgn?3{g%t}?Pm z=aiN_pR@nLQD-?b6JfR8Z^A;-=g1aC1i3v@oo<{a|6{}Xf717A9tFE?JM8CO-Cxan zHujy{qu_aUPm=2Ldh`KTWWiwqQIqPOOIb)zH^6Vq=UkjFUoG$W0nhFPMpZGc^vT5NJko}Tq}KKp)`)&H6IyWmSkA7uR!f4!F7s85hZEZ#{-68STK)d(Jy(_ZzXj?yO#K`tef;n9JLR|Z=VeH&>$~|;N#@J$_vUYR z|G!ebpx5^pbKIAzUshar%_V5@r~-V^f-iIql^*`Ut1hT`K8@?~oa2AqZhby`bMF3q z_2;bpf9VT;$~pG&{pS?H^Hm4#82mA=lQR2%_~p?@A3o2y-56{Aav3Or97w$LbdTbV zquXmN?;KBm_xpI^>4v#`U);}7dUAE`{+fU3m%Ao}mtT1PyzcU^cFB%Tfh47t861jg zP9uf6x2olE!1@Pv-KFn#zxkTOf2RJ$)H!PP(`IkozPz{K@wT<~CAs2x{WTTu*QwvH zm?zhL{kzZBikR7-pRM2gcaPnNM{~@zcU4YnzrM5Z%H)v0f%*yj-PyK%<*|PgE2NLx zKYpISJo)&?^S6(l`E0z7y(aab`1IO;7u$|Dc5lBuJ<0ZG)%5f1Ictg^i+tzbmr*CE zx9;18*`<4y|5b^Zk$3pZj-A=(+hgv?oA=Ls_WzXcTzTvJ+OI9w=l(i6WBbjxc$S|l z8_vJpx#RKuFxxwog8M3VJ`;Z!y#KCVy8XT1FH2TkXRyDux<=^GWg&d23{ROsnYK6P ZpB-+@EG(N3EZP_tJYD@<);T3K0RU9k<&OXW literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_YAML_X_Ray_Output_spectra_topo_path_length_legacy_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_YAML_X_Ray_Output_spectra_topo_path_length_legacy_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..9670b1131f0aef96f44dfa68856adc5224ad7b0d GIT binary patch literal 980 zcmeAS@N?(olHy`uVBq!ia0vp^DImZtvZ- zA}g*ZTa;X{|8pY2VR`YZ8UHPA8Q$ZuUPncuuGek(Q4ed{Z~ zrJ8{yHeW`u?DQ@oL>DNR%O6%4glm275F@mXEbpr*&jEmP<^@; zHpjmAvvD$2*-G)6KX|xkl}e#^5+9#LZ$w<#cQaYDE)A}xhKn6LcXIb%&6})pC5wkm zMrOm7Bb(Fr)SUcf_1G{v+NSErC!_s!A0M;x%LT0c^i^9w?n2I`j1Ak{pI>|%wEpuG z&clkHPTNnf4!^VCfAh(2X6E^uwj5a-y{Go{E3NzcFTdZs?_Jzfi)Sx`&CDzR%sA_7 zX11etc3gkme2ZmQ7u|gFHT&7~o3|H-Exx)a>gjX;QIls z_<4@k(YajCo6huF&fFnd*S@*VYOUJj#XEn_Ka*5@ZE5QKHvI9^WY3T*VcXHrwMGk= PTNylE{an^LB{Ts5k#)ue literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_YAML_X_Ray_Output_spectra_topo_path_length_modern.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_YAML_X_Ray_Output_spectra_topo_path_length_modern.png new file mode 100644 index 0000000000000000000000000000000000000000..512ebda92bd04e9ca04ef3e200f60569431e8008 GIT binary patch literal 1289 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_qW3o-U3d6?5L+4$Qmd#o%yp z$*G{dI`6N(KP-BF>p_8}9j)_}TNX(6tAD%Gr1iCU)-wJDpI65*{CVxdVJPV2(;^_O zcmy}o?t;Oey_;=|KP^5Nt^4WXzE`Xp%5G&nuJ|+OxZm%?!n}u%8nVZ=u>XC>?)Uqp z{a3ql=hPnay|1#Zm2I8Dp{VB6(J7Fm)H2GXV>moqlvr^r(&a?=%)=H>H`Y|Y{P`;9 z_xk+#pN~ym*D*odxbMIH`LK^U>^i)M5@w~>;=E(MUzpo#j#>ifMeg8$56SHsE{rq!#nW$p^JIDF++5KM2rzwoQNdERr zkk5H<)9p3aD&K6{zWJ`yK@ufN8^>hC|f7_V;d{5NHtDEoaJvVo8+|pO;s~FiMVqX{TdHIU}@NtWOa{Ftn z<*obn-(Qy&H?Pq8fjYO{?l+hF%hvG4?7h2Rz1{lB8~+cMzQKFhek|X6QeAP69^uk~VDUkQf`81af-g@W UG&$-FEaDhEUHx3vIVCg!0H>w$qW}N^ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_YAML_X_Ray_Output_spectra_topo_path_length_modern_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Blueprint_YAML_X_Ray_Output_spectra_topo_path_length_modern_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..c4cdd87a8a4f25ddff497b74afc2d63a8cd58bc2 GIT binary patch literal 949 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-_Tz zQ!*>lf6X<&eA=4#)vjaz=6=}4{~-KP1k-V$80R&co@{!ZGVlLodok9~ua7^j?pieC zZ{+nUON(lz?{16uYqxy4_%<2&&kvaoOxLfkEe^c!+E9W)Mt0(|dgBKP4(rXiO=LcO z%{G2>yuZio%kSxZKM!C0r?cZ%{^9TMUzS8f?_P9w?wo>x1C!N@B~D$}X-wvn@qPfZ z+G5&)jVyht1=JV%5PgKJ>1U7d`Scn8w{OaMx9Im{zCB^9D}%24p1K??CeAo%NoA&y zVxNA?zMmT(&A1!e=KQPn(iFdTi)Zg*k0m!~B&D}kfAq3&Qjmdi&=&< z&s=k!s`~u-63s|A0fU(a5*s!-No?BS5F32`iRD_cM32A;sXBT=A}o%^9s&YwJnd&M zO?r7~^~*)8Uao6y$iMFq{O(R>AMc9nNiD0Cx-9I|Ghd!c{#y0K((_P;%dAcN&V7Eq zr|Rh6-#%(@-hck0DJ|XOCL{CVhoR@8=jZp-cy2%aO6#zqIYu0Vrc<`6i`+FB(ZrFeRrsV9|XCpm>=h-Ib_rJ~k_U*>ag||~Jp1kSN zNzU%hn{J*T5%=s#OWE#7kCGCX*v}6d|5VmzoxJ$PXWMNbwX;IY!&cACyKF4e#^U(- z^VdS2fN3d_n`Ju|rJ1!VhMLZfym02G%0i8fMcnomz wTG(pW$a88x>Wg__Z?22|XC{I#86GU}m}!@?a*D4RFgr4My85}Sb4q9e07^~9F8}}l literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_CGNS_NFace_Elements_01.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_CGNS_NFace_Elements_01.png new file mode 100644 index 0000000000000000000000000000000000000000..3149b96a569e45240e808770d6c6ba24fedfb56e GIT binary patch literal 30133 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 UcKJv!julBxMp?Q_(kSqM020=axBvhE literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_CGNS_NFace_Elements_01_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_CGNS_NFace_Elements_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..1c553c0ee9a28c748b2b95fb7e1cdce34292f35f GIT binary patch literal 11094 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 WJLekkoi#5D+}66QS%Q5O{{H}DTad#5 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Chombo_1_00.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Chombo_1_00.png new file mode 100644 index 0000000000000000000000000000000000000000..ef5a273b45af09a9e902156f695a0e6d5c391277 GIT binary patch literal 1698 zcmd5-X;70_6piBGSA>#)3n6967g@9*D#WrF)DXflLI7n^K!_0qAp(v_)IbzI*({5I zMU({M0tAszK~Rt_lzov+z!(WBC?LvKlz=QvpmnDG)t|jHZ|2?e?tAatbKcC0b+ETm zkW-a|!C(qD)&wUQY@MET0P7{l7Y!r`gUR~Y5Dp!sWqcBJ9(&`W(m>{r=0>|c`N&2X zayKUPM`s<0L!9l|I`DrGmNnS>B)VHX9Uq8E!PC&7` zq6=FC899mGH@QNFjRx)GR?Cw@Z9`mQM!U7Gjk^-0DGwQjPSxdSQcx7Q(~a?;ff%otxf)n1vIGR!|m<13Wcsi_}W z3Ncw&;*yiVKWvG{b`#rMnl^qEhV6eN3J7l?dA<_$m{(0Q#*#S6h=k~er_Bf=Ss`%cONtr~sfD3a1L;?yPVA3H_#0>I{*3fw#U*5}FUV2d9(92TH z94x4yUwOSUD-yM|w3Mdkm@kTFX2x41Yj?|+=PWIh;1Y)@sIC4(!%M++-Q1DcgY)^p zZ9?BB8!>-CY}}3RnK`lmD;N>ASS-N3iA^EaW*K{jMuWrw?x=>QCxy5+J?tEb z5hggFdfi3eYSLG!a?GRIQ?rZL3CH!pweHeoG`a=axj>K(YQWk22(;BaY>gV#GC{!p2N3C~H;+HB&3p$Ez@D3Y|W zm}2-t3>I@#Q;mZ}Um!qmZ9Gse1S*muP{CCQUOXHP#lm?KdP|n0ENtAE0bVzIxPvy* z#p^$g%E|0WpQg2O{P4mQ=anAqziYu4awvSeG8zimB1%7UKd8GbE(ptgFeobsg@R;O zd)EbpupZ5)Mn%en}4tV7`4M8IRq zF$)pER&>VX?~(Q7oVk{V!2e`Rbfd`g_G)1uRt%hHOZ3&ZCD{@I+?YAf$Mriwt)2ZG z;{7x0#=Ri4Mp)v5L?C5RjStt!7~6dE-?(gss*eIfefqeZ(we1}m|~OrS1U2ldIHTa z+u%njKk+Y*HhVCoZEo|iXuK>jJ^^ENE0;Y4uw@bUbnymGXG^q%&tF2d&sUd7`b|_q zL!VXIH3Vb@k>;5^qD-Jgr5y><2N#VfNiPv=+S3M-sqCk^nX4qr2Q;GUHPbqLpl$KB zPv!RY`arH^`SWPd!`oDTOXIu64D+j?z3EZSGz_l}YS^b|h0d=6sC~NGRRCLM&7dNH z3UG3Y0Ji#Co+HV3aB=|l_O<-3bUp7bz|J!VjbwM^Cj#uk?vAtZ^_sX`6np&`p%d6*eISmQdvL+g2tOLVYPXc{x7YJet^c2}^e6c*fnAh|>oU{* S{F_0&wA{who=|}Ij`$Ovf zKo9^Rc+Seg)G;D^HM@^2Ly>JWZk1dg{ncN#C^$9WfyrkKy#imevVQ@A6#%cB{E566 zvIw6aI(}pdlc^6WE<(WLY$jh{7QgLpqM9TsK52q0q;H4l`ubJQR`0H6E_ik|ij`9g z;gOV;J-3y;d(qp^_WsqI+cWePM*e2a)TK;C0ft~8I6PBFgnad?A}BY(w}?jfSLFI8 zjGK+T9vrD3i)X?z%U|h8SvQoCgIqJx82Rh;BSlQmg+|4IESu6E2-`H)rjFHfS<$u= zaseb1Zs?{G+iJ6n%=r)i5!>YQq>Zg(?nHl1o{jVaL1%x0<(_qt^XZ6>fe-sKJp3;p z$>O+;1Gc!*x53QK;#{|1frNZ4Yg*QbdKwbIzQ-a+;uW|))p2fYyHiD-rXbUz-UWf@ z^@ATS9a)~Pp)Q%hQ3(#Jide=8sjJr{rKp4cKrCIztH=kRjt%Y|Fe_C>*5K%!SIZta8IxJJag&~Y z^kQ>@5r8d`p&nm-RZKb&pO&^%J6AT&4SuK$seWQg3lDyrXu`=0Ia> zl;&4XJ?wd?eP*`xa9YiykF{Tppzd-#4*T*l^i-oMk22TWcW1qq4VKLgcXZr;H7|+j zTGw~5MN*?mI_~$SI9)Cik!UgAFJJj)U$hmXUul1Bf9siMn(?jZh$S^m_uhkFZp?@< zn+!xC7LDQe0#)tuF zo_p=&)I>hVJhS3=jI;kX07Cx?#A~80HcKo!l}0z7+FcJK2WhUHXWQ%mfVyyjl6mli1DQi5C_gBbz_K zIGB!KCyuCs^${m@ViH^u9iO+|*LtqM+@A;o>Jm`L-3+f%<6TFazI(8r^5h=f`(d~b z)o5<%>xrPe8LxnybdgyYl1<^Ov)bqPjRcjwcV{`|iF)6MUCDi-3~DfVx_kEx1uxZ) zJdNYiJq8kxsEl+1J%(bn&~${FLO?FLd(yYB!idF@(XQb7QQDaw3W`=fWg8fYZS^Oa} z(qQ+cZ+r*xipF@)<{Z==QAo;Tqxeh+?NS)cq|1bXQZVkC~+)mri(Vx zl3Ea-f{F3+;yb4lT;1-H_d!B@<-w}-7}1Jhr%dZ3nzwo--TQk57uH&hmNYVqj^gdC z!eY3y6>N;Gk)9{sNneIVPqrIiWtHiJx6|8q#JCllg^l3}EKaktdWpFPcE9_9-&T+b zf9dmhiof9G#naG>XVt*T zIM>OO2M(=jU!})F?9&PUSV&Mb%{Jbv)(CPNGxmz+)-~IHR$LbH8J?Yzw#KM+mJdMp zw1H^A9Z(@5Ko*uZRi$g_ZAmI?SHTARJcA-lUIl9l@zt^jr3UbX97E(%0YP&%_G@=vB<~-TJq)O}j*}8tbH6(pL#6&*8*H;XihWNhUp|Y6#`G znq0ISW!_>s))p%mM@^Y|dqxdVn9KdACi1w!0rO_v2ycrb=Xo`qGe$YdtZ+7lPK#W^ zDsK=n+ny4EcIn{%f4o7J^!bHG#tu09QDN?aL_53pr*x^4z6Y&pLY6DvrXp771RA&h fafSacl+Bp^FTjR#Nbu6{3k6tR##oe@dB*<-+(L%k literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Chombo_2_00.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Chombo_2_00.png new file mode 100644 index 0000000000000000000000000000000000000000..197ca9d01e542822dacc7b626ac04038560a8bc7 GIT binary patch literal 1157 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_l-%PZ!6KiaBrZZp;fY6mh*M ze&qlEPZxTZZ@I`T{UPeBrpHEQYk#rx%s?G*@Zs&gSM>+pSIGLrpTBD<$EZ_a+KffhXXITPo-Z}I-O_r#}jPtUzMiy8oS zfd}?*+Xd$QZ&-i*-Hl5{1(io23ak~+6syO4+T92=R=IC6D6H=QO#(XPJ})p-tl_XLjzf@1Yui^2K11t;IL zO)J;yx9D>^Qz-JxvQO{l#v{1Z0FzU(dQ0WI7VkRq4SR}l1p_ejE5&8px7U~NnRope zD8MkIghTNeF!VkHU9ev~^4`unGxu8dAt%=}>RdCP3m={If8{M~Q36aI?|~iwhQ
    IXN>E`z4EWy`|9@YC_0K3K PNsw|+S3j3^P6W zg947URTPvuX~-so;4tq5V1L@kP_3$$tk-dVo;>0d zjm0@!SDyctg=P~M7sA$RI6W2ha0ozJRg$KO+|1QNipB~8wA<2lI%u`zPIw+#Em3oh zQb}4>lAbr$SlKb_?jj{=W9j;gRVX12<8Mtt!cZ@8ytDV==H3oG^$x{B_iy<9QFgJ9~&jEdrtm za}%2uEVYs~)IQ?lz1wG2CeQ^!@p3|^5>{gSI(!}1m9XN3j&jLY-B(q!nmpqB_bda( z0S*iZ9PVMyhV4Osa~Hb<2yj}ks;DZLtfPL8i~!HUUAS={wqP~Uyogv(L+vyogDLHrvrP!*H^gw`L7~uO!z#mn@wFEdD32?4C z;gNF5S6_~^1AM?!IEeg5#vjo4&q=GM}t=G$r|cSg1IoSQu4 z6c?q#vj5||P#0IF(|!1V!taQ!w?DxD_03)FuVeZQ{vS{)dHZ4r_BMIQDQ3~+LRP*u z4AEG|Bd{{qP4u}XuoY3WGK@#ks*+qPCBARp{p4%y@lPri61IF&fFn8jo>xh0#dZ$wb!0BF1BBRY^`JbNBvIG?uPoYfH`r+t@%D zVmbO=ZCQBsOw_BZ*w~O(m84~5*RwcBvx%kX1D-s=r%(9&S=gsfadsx^N(G!tt4gv| z%C2YSawru3=ggWD0iFO)fG5B|+#~^>08fBlc#;55fG5B&JV}6GAm9hO1pEkBe_<3& zqMM9mU1S)Kq*Wz38Ee@AekuIsWj9|C>*(z749((?FU7jg^&0zjEbcU}u4o&UerZhA zO0I7W!yu!fuxY9P+b{dtV=<0&4abFh5sf4k(D?PI_jmOs>}_oSjt^=juLj53&xxg* z=>}QDj^B^1hsz6eFQW0d9tLp@urkcps*>#84rq{-X3@|r8k$9;Op<2N&@37?0H2se za}+vj32-(N;9LtUM+tDMl05#B9pG7LoOBNuk8o)0?Qpvn2yh;9O{wmb0^Q`ZsC^&FN2lN1$T|pS z{sAeH?EC)Q!{F)R`Txno^GPHUi9{liNF)-8L?V&CroRC!3_eQ6hw2Xi0000b<)F literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_GDAL_0_02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_GDAL_0_02.png new file mode 100644 index 0000000000000000000000000000000000000000..a20fc00c8055a4c77a4ff969e747695950d5551f GIT binary patch literal 40007 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%0AJEVomwW8(q<00q)$QhQ}Xe}5rNoT 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%0AJEVomwW8(q<00q)$QhQ}Xe}5rNoT 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 a!@MHIJ=?KA2$=I37(8A5T-G@yGywp@pHdM3 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_amr-quad_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_amr-quad_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..938bcc581ada1f386350648aa34b7939d1a5c894 GIT binary patch literal 1022 zcmeAS@N?(olHy`uVBq!ia0vp^DImm-eDYqSW!{1OrcDeQ+zrTt(+RKOlSbajlOlF)^0{>7(u~>Z9Fe_k zCA+5`+idI|zFoVwZK>IinIJ{Q#rqcN>82@O#+Gwmeo4L*BE@@J_V(-SmnBQ0N~dh{aZ`Suy?f`xr>XB# z7I|>3+h4n1|LwNad1sfsc~@s=(7HxrQqF8A*-?FyN(&>a$?~{LV^XADc-Pjj) z`mV(BdzT^><)4`l*3bU!D?gKV+3LDJ z%dWJalcYQs)pl0bf1h?KM7r3mz?5Zy4#O!XDAAz#Ez(mdJ$+j1&YM%hyu-p}mmYL@ z6v4(^{`l(EH^)OVwmy0A;B%v9%GA?EMM;@4u~Vz=*1j&NS=i72 z@$X2#B1){WOnQ3S>cvhL)z=H2sORkDdj2!rRKQ`@siUpduNOQQnzE*O()=HH%e@w# zm|c3InA7W;<4J!V-IE0wvtP0(rigMy0R>bwBH3;2AMP>l7k)A8>*2_D$%9t~Ul}8 z=c=-mta!wQ z!%)!4XAm(ru9hp4sIpIeb>)NYrxZ}FgX?H~(0xO3K39e8`*;8yV`` daJ%LYQ+~CzZ-Yf<0x*ggJYD@<);T3K0RSxWwKo6& literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-quad-nurbs_legacy_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-quad-nurbs_legacy_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..dd1aa0b6f8f5b61a4c478745307dc7c81277a489 GIT binary patch literal 925 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tI7PZ!6KiaBqu9^^e>z;k57 zuHWz9^eLJsvRnL6t|kS#}Y+zR34z--6h>FVdQ&MBb@ E031y9M*si- literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-quad-nurbs_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-quad-nurbs_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..7a392570c142794bbec7cae8e9c08adbdeb7093d GIT binary patch literal 410 zcmeAS@N?(olHy`uVBq!ia0vp^DImHqQMcH`Gx7uYl0R%>o1SB zT4m~G`PlD0!tu9~_WoRYxO{Q)`<#x@>@T%ed*dz#-d}$IQ}TPA`~N>Y{@GL7dpfng vYX5Tg8k|^>bP0l+XkKFb$tX literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-quad-nurbs_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-quad-nurbs_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..eaa615be14646da0496bc13d1e1adc3d5f91cede GIT binary patch literal 928 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tJIPZ!6KiaBquZWL@V;9+s} z`ET3J#nF-1Q?C8P!92>im~rlIIfmuJibq^H3{1(K9nW^gE~QNqkld&OH|GM^eok>eQKgbN&@>oay81m-*jPgg&ebxsLQ E0KpmbUH||9 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-quad-nurbs_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-quad-nurbs_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..647c9d1094e0bb00c6e8d79ca490d30a09fea461 GIT binary patch literal 391 zcmeAS@N?(olHy`uVBq!ia0vp^DIm%pyp z`~Kgo;c@YAY}lfb`6)?7VW#HxUv-mo%dPL`Z9jPa%z3#Fen+?l8#Fs&HTT%V4?9%X zKQEA2e);dgwus}8Bd)J)j=Q<5@A1cf3C?RWr9RKE>waG8b9s4lx^AU=5-SAWPWt;+ zTXvuA-L{C&Hq%ls&l2CR6aTMw+5Pw*g?sx>r@r~lKjZ7HbI&*4zWe=_!0Z1X8~Jhh b-j1Plo>HR8=l)s10A}!X^>bP0l+XkKo42aA literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-quad_legacy_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-quad_legacy_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..dd1aa0b6f8f5b61a4c478745307dc7c81277a489 GIT binary patch literal 925 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tI7PZ!6KiaBqu9^^e>z;k57 zuHWz9^eLJsvRnL6t|kS#}Y+zR34z--6h>FVdQ&MBb@ E031y9M*si- literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-quad_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-quad_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..7a392570c142794bbec7cae8e9c08adbdeb7093d GIT binary patch literal 410 zcmeAS@N?(olHy`uVBq!ia0vp^DImHqQMcH`Gx7uYl0R%>o1SB zT4m~G`PlD0!tu9~_WoRYxO{Q)`<#x@>@T%ed*dz#-d}$IQ}TPA`~N>Y{@GL7dpfng vYX5Tg8k|^>bP0l+XkKFb$tX literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-quad_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-quad_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..eaa615be14646da0496bc13d1e1adc3d5f91cede GIT binary patch literal 928 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tJIPZ!6KiaBquZWL@V;9+s} z`ET3J#nF-1Q?C8P!92>im~rlIIfmuJibq^H3{1(K9nW^gE~QNqkld&OH|GM^eok>eQKgbN&@>oay81m-*jPgg&ebxsLQ E0KpmbUH||9 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-quad_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-quad_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..647c9d1094e0bb00c6e8d79ca490d30a09fea461 GIT binary patch literal 391 zcmeAS@N?(olHy`uVBq!ia0vp^DIm%pyp z`~Kgo;c@YAY}lfb`6)?7VW#HxUv-mo%dPL`Z9jPa%z3#Fen+?l8#Fs&HTT%V4?9%X zKQEA2e);dgwus}8Bd)J)j=Q<5@A1cf3C?RWr9RKE>waG8b9s4lx^AU=5-SAWPWt;+ zTXvuA-L{C&Hq%ls&l2CR6aTMw+5Pw*g?sx>r@r~lKjZ7HbI&*4zWe=_!0Z1X8~Jhh b-j1Plo>HR8=l)s10A}!X^>bP0l+XkKo42aA literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-tri_legacy_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-tri_legacy_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..1679bcc21073da19c0db2fd0825fd13b74319e82 GIT binary patch literal 1110 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_l;cPZ!6KiaBqu26kNy5OBRH z{@nig4^@p@zgqIjUR{e~wulMJDZ2apFO${%SL_GMlv-wRD5^PibP6PmGDpLKhKbM=`q`>}J~>(cvXxnZ+kE7zP+%~^N%j_kw9dWpqvpFQG`FXNn@ZNA;@ z#~$w+F}rsf9deI5^z7EzT0y(7LT19f3gND$uA=UmE0H%lYG?ym8_pB50z|tDCoDd`6;7QMroUmTuc#4mE`B&JNG7&_UWVzUw>3J zFX}ja_=s|Ncwvc1dV1jX+3umD`uc^HlGW8fRWH-8z31iQd-T_KHlx|Jre|>@}~Szp(r3=-3#SBk9|JeVaKqv9xHl-T9u5ybV>Q ztLxQ7b2omnxp(i9bjrim~rlIIfmuJibq^H3{1(K9nW^gE~QNqkld&OH|GM^eok>eQKgbN&@>oay81m-*jPgg&ebxsLQ E0KpmbUH||9 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-tri_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_beam-tri_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..647c9d1094e0bb00c6e8d79ca490d30a09fea461 GIT binary patch literal 391 zcmeAS@N?(olHy`uVBq!ia0vp^DIm%pyp z`~Kgo;c@YAY}lfb`6)?7VW#HxUv-mo%dPL`Z9jPa%z3#Fen+?l8#Fs&HTT%V4?9%X zKQEA2e);dgwus}8Bd)J)j=Q<5@A1cf3C?RWr9RKE>waG8b9s4lx^AU=5-SAWPWt;+ zTXvuA-L{C&Hq%ls&l2CR6aTMw+5Pw*g?sx>r@r~lKjZ7HbI&*4zWe=_!0Z1X8~Jhh b-j1Plo>HR8=l)s10A}!X^>bP0l+XkKo42aA literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_disc-nurbs_legacy_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_disc-nurbs_legacy_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..17b31629c6a7143ea0ffc0269e232061825deb9f GIT binary patch literal 1599 zcmdT_`%hDM9BrEw?+RQgkEx9EC?W$}#0}^uut6U%UZqlSJPIvN$-0q>4uoJrQtZ6p zB_xwKMoU-dq_{igpe_ur)L=JdXeo~YlhlQcnia_~;07-H@GlsC*$+48e9!ls^Zn-L zlY48$q9j+EH;qIhxh8)g$Rv@-tepp;fU@CtfJq`bIVB4cvMReBzvd49_O6RC!KmH1 zeQGmfZ{*0GRzZRL11XuO3bbW3{jr`K|Fg_amRB&<;dEX*5|E~LJH$gg0@Sr`V*;e; zmF1ygbyHFm<;7yx)~#aoWFOjL-Rc6SEsYwp1bh*lB_CiE*_#zUY`nDz zFEhU;^2}i{Sq%5`8^kB>u+uz6J$@BQ#THlVDE--xSC$=9O|v09Yy``Gu-pk_<5h_{ z+>`D7&W0g+D|$d4ubPeqOPjYu9=TI1yy%tlGLXeMJ8!0ZS`T&I;YMOU2rO8`5j?66 zEM3YFd}D{)Uk$~F>VY^bS@^jIAZ@E`JgN~$u<{7Lu|xdasWUTh(%;E?Vm=OPvRhcV zAV+6%2%TB&4ED=6n^ItY7L@E3fb$}{(Ec6aZrd!IBkodL5m}E(H&Fo2Y_8P$9E7E7re%W| zggCC$%-j)rO+f|;2na)@{0h4E*h};Jy>ghbBFrNXhprHA_fMVRoV3^uwz6?SC7Cfk zAccfC*ClTR45!NWe^U+DJ8WMoX2bOg)39NCCK#%?BMDllw9?n~g;Cxn6)VM>;8|ANKRoSO&R<(l=OwF=JCy9(mvL>ApRLf<31}mimYv2W9}jB!XDefEwa+ z!;}V*^%Bc03!s(|4mLTF}GVNoTC!JTFUU->40q%PDB#MG=x%>B{ir}PdIcji|_HMnKpFu zl32AJJZl@Lhc+*%xr>oJ>R%cGmY=APA1ytPZ3zL(Ph(wxg=HUMF@TTHeuymy^zo=s zXNqHH`D2aGN-rQ@=Hv@8fBI@Dx9*zJ{3LyRScJhe3a$4W?YKfsJK0QToNExPT*}Ka z2c$U0o2Ek8UXacfX(2rk_7qQ5(+)nVL-V1$MpR*}hUKahtB0~fXL?L6fm!~N=y}^9 zq+Vw{EuDbW&Bsd*?oCDUt(`L7$AVq@oW9B&zjVEvXD->$kI%x7fs`y132yM@HU9y& CWpMET literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_disc-nurbs_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_disc-nurbs_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..604b74af997a614aa91a719d23349ea4308f2d43 GIT binary patch literal 780 zcmeAS@N?(olHy`uVBq!ia0vp^DImlvHYR~sc3%@#DPWb;v`>C;!d{(Cm>_?k^ea?DKhlMUu4 zTOEC=`EPGQncV^YGpD`Irdini`?RrXe*WQu6>pcE`m}$2wNiNLE{2Hg5VT#Wilgug#pDo}P!F><|M5Qm-X zlb!a=ymW8xoTUP#QI*d_LqD=@4V}7Mq``jQx8v z?emxR`sv$0seoGyRPzPCj^f#_q*bFo&v+8a0es l(L2aO@=)&XflF;0`Tz2>hdOofoB-xI22WQ%mvv4FO#qG@>A3&^ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_disc-nurbs_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_disc-nurbs_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..303d140aedbc41a26890a246c7170372765aada0 GIT binary patch literal 338 zcmeAS@N?(olHy`uVBq!ia0vp^DImyU$h!^PgF z@AhGRk0g0iwgpCh2v^z@?zgoj?R8||V~LvQpI)>75#Gpz0-tTmee=6g;o6;DeZT+O z2xPzexFIq=dfN8Jh`|Jl<=M55%-VhT*wdxwA3ZpJWn1s-uXnuH95ClO!i62qQ!zL4eh< zKk%Pszp=$0g^L}lyB_@ga_-!_e++Z)S25IB3p)9<2nZ`4ap5qe0@E&YS=z$JPRi_Ude(qZdbn*v}AAM8}4C)v* z`|euvIkQ)aA8=QXj6Hw0;zG1s-^_BKt)JuC-4B(E47Tu9YPs{6;II;i$ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_inline-quad_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_inline-quad_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..731aa5102c2a5d71ca06a823e382237d9ab083e2 GIT binary patch literal 762 zcmeAS@N?(olHy`uVBq!ia0vp^DIm`eOorDePM5kuRWx?>L&_iAyS zNjqh^JUAvMXWs=TZJxrqbupiHxaQ1#_@qT{ndY(Ns?q`m2T47#AAi@)6pL_dxE!2X zQPXqL<6u{EkJ}e5o{wLb@;t8KUfq3u&8}lbntZL(ybEtc{9LYxa17kjXhOPr|E8*{ z2|q16`%)yc>)`}BJG)E54Bf1oc)D3_eS%}+^FdDPDkxvh)9&1J{M1r!hVS3Mq?kF+ zdh~6YoSjWh?2<3riLfU&ftB%4fDBjbLW`U=Q89m3XFu6l6nwX)?{DqXXZydd-I5d8 z_A^FOj8#wHJU*jwYs{msp*y)NYTuprubPqS5nQ!ZO{^_)+gI)%x*OP-@7(D)yjojE z_Tu4w{->`#{I-sZo3i-Z@BasjWmkFCXdOM@ze&sc<43LD?VtUfk)s^V_s~@ENxtdF z@x#Yfaj(%3((iizR&%w2!2F#TEz;LF+y4j*eN?YBW$CB$asM~%|8QZ#G0WWtZr%LD h=#QG1&`jRXute*0_6yZ*t-v(R;OXk;vd$@?2>@|!Qj7oq literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_inline-quad_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_inline-quad_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..1fbd6e2d5cb6f0c8bf84c03e4a702be65d6a563c GIT binary patch literal 922 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tItPZ!6KiaBpDZ{$7Tz{9-J z;`jSEXFeQY4sTf#x?<f#_q*bFo&v+8a0es l(L2aO@=)&XflF;0`Tz2>hdOofoB-xI22WQ%mvv4FO#qG@>A3&^ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_inline-quad_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_inline-quad_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..303d140aedbc41a26890a246c7170372765aada0 GIT binary patch literal 338 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 U{Q~|@@EuCwZr}x73EX+)|4r#6ApigX literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_inline-tri_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_inline-tri_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..ef9fb71036c2c059512cc65d9abb78565408e71f GIT binary patch literal 1517 zcmVAcbZApTAxKDzqKH9^E(``m5jE(_L`95oMPlMd@k_WnuCg{5+2z^ZmPcFc{>? z6D?;P9_Hms@l-0sg9ogv6d$Y6a(c~)Mv2Gi>Jop|!5}Ry#A4zzj*U@YFP=&yn3|%k zjcm5~a2c!9ai$CuDbhBEi@gr%$tQAHV#&rKBkg9yubriVIS`z0}qH`Q4NSt5`}Dol?@lZK?mcbIr%Hixj3~*+>d=vFs&< ziCDIi!YnL1N?{6?O{Fj%%f3<=jAd&njKs3L6oz5#0V#~Z(jcWMP-RjWfTc}JQ5YK& ze_+kTs!A%QQwqIU3k$5RiSNFe8bTos9THy}H8o65($*#$^m<99`1q0jewmcpU2;It zzSm)Wokx%8>JksWdPP$cr%s8><%bWsa)o2Z1jUx3u)NIhFhfK5e1dk!AVJGp*cK&&Vv5{!>CFhF;=Olo$PwKZJ7 z-FZ5&TrL6u*+?ivPY-@SfdKpW%LdP#!|N^no_Eg12GJXDF5bK$ z5D*WpuWOW=nPFu`ETyU?2XvHwsT3bR5Q`BG%Lbo4qq7sYo5{)Dj<{U>_`%bs+_@v$ z?5wIxPZNpI*vQY|k?nO>Y`1dZ2i)Pq8l~#% zwRE1nz2x&+w*3CrI;~wR8}gK3+~#Nt*UII8p4w@hR;`t-Cxu08WlKt7#ah{_Qdq85 zwy+e|s+FxRg@tNm%S&OETDcmeutcp~B~nzrR<0f?DqJg9l@t}Ll~t8wvV2lHH%I@9 z?tdr`g=lT1yZ(jiRZ&&KVevX$rB{*;tXz(f5gHos zcvxKA?UbUhxX8PA3=R^H%l3JO!)$KS*C#j~u)4~~2!n&NbprADznA2%=)lTm@p@4d zW@dIfq9`Pj3=cCf!16L*zwUNWRr&mxNQC}=A`#g-pFhXrA(IiTvyjnI&Yv$nP~KWO zohBS69_Q>?*>2@8Ux>w6T;$d**%_y%*w_H*>yr&mPZJJv^=k2!-!e9(i3G1-bMhp0 zb!=`52BT3H7C3W8wvQGF25D@hqeFJO?ZKl*EA)DmzrHWwZ_(L#O5f{1#cSm%dY-Cq zt!x)5Ovkd36y{>tO9~UQY$t_TSay`c6fB!cVLX<7r7#%F)>0UWWp^nI!`cH<7=yJp zq%Z(W^N!fr+48l+mZ+7rNx58n`h?djzNT_H?H_nzLOf{Xzx{4)F)^X#?n|dhBE=Mvc-j51oGN@{? zSJ`(fS96?KoD1S$3F2T0;$R8lUf#_q*bFo&v+8a0es l(L2aO@=)&XflF;0`Tz2>hdOofoB-xI22WQ%mvv4FO#qG@>A3&^ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_inline-tri_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_inline-tri_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..303d140aedbc41a26890a246c7170372765aada0 GIT binary patch literal 338 zcmeAS@N?(olHy`uVBq!ia0vp^DImyU$h!^PgF z@AhGRk0g0iwgpCh2v^z@?zgoj?R8||V~LvQpI)>75#Gpz0-tTmee=6g;o6;DeZT+O z2xPzexFIq=dfN8Jh`|Jl<=M55%-VhT*wdxwA3ZpJWn1s-uXnuH95ClO!i62qQ!{AJmdyLgu)|u=$)`m?Sn-GphanZ1|K`uEI+)1!N5!e5 zQy@vHWd?_$+K^`MeZ^=$bEUYd!Cch|W6W)(izTKn_J582isAAK-Sn(dCxZ;1Y^I#3BRKlZ3d_Pi~uFMwH; N!PC{xWt~$(69CG@FG2tS literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_periodic-square_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_periodic-square_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..32cf1013a5f6f9aba4b5b99a9369ab625cf4490a GIT binary patch literal 473 zcmeAS@N?(olHy`uVBq!ia0vp^DImqB-8 zYX!IDrSIxxOU%|CoFQSZAh>*kDuw~NL+!(!|%ZrZey6^tm!pCx|a#-M*BrW$fGf~v{ zu%a1&5OC;=IGuW>bl1wGk3JuIzkQe9Ewf#D7kKx|^cUK>Uw$&nYVM$Pdw?uhlpzIXFJ{*%ANxbc*c+3bbpUp7S@Ewer++-GssM1Et@pR}*FHgb~7 z?>+4>6+XsdtO6$lPdkSlK%i^?kHh?nRXvgqEt7hGWOZl)!(r8H4fkD>HJ5jZ x=>K`KYsIQUxuR1mWj3ZM9lu_nhSQh_+`cng*Xu1{ss=_GgQu&X%Q~loCIIw_zli_< literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_periodic-square_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_periodic-square_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..7ab0a0590596e260dfe2a1f038f21f5449215938 GIT binary patch literal 969 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tH{o-U3d6?5KRGvqtuAi&}% z_VK^IzM-PW@?%9;xzn2Ms>{AJmdyLgu)|u=$)`m?Sn-GphanZ1|K`uEI+)1!N5!e5 zQy@vHWd?_$+K^`MeZ^=$bEUYd!Cch|W6W)(izTKn_J582isAAK-Sn(dCxZ;1Y^I#3BRKlZ3d_Pi~uFMwH; N!PC{xWt~$(69CG@FG2tS literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_periodic-square_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_periodic-square_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..32cf1013a5f6f9aba4b5b99a9369ab625cf4490a GIT binary patch literal 473 zcmeAS@N?(olHy`uVBq!ia0vp^DImqB-8 zYX!IDrSIxxOU%|CoFQSZAh>*kDuw~NL+!(!|%ZrZey6^tm!pCx|a#-M*BrW$fGf~v{ zu%a1&5OC;=IGuW>bl1wGk3JuIzkQe9Ewf#D7kKx|^cUK>Uw$&nYVM$Pdw?uhlpzIXFJ{*%ANxbc*c+3bbpUp7S@Ewer++-GssM1Et@pR}*FHgb~7 z?>+4>6+XsdtO6$lPdkSlK%i^?kHh?nRXvgqEt7hGWOZl)!(r8H4fkD>HJ5jZ x=>K`KYsIQUxuR1mWj3ZM9lu_nhSQh_+`cng*Xu1{ss=_GgQu&X%Q~loCIIw_zli_< literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc-nurbs_legacy_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc-nurbs_legacy_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..d771e33d3d60e71ce98a601e599831df20d3bf76 GIT binary patch literal 1855 zcmb`I`%@EF6vyMzKpHR-2tkAe6ND1p)v6FsN(i6>N+K8o_#i%L)c_fc1Qi&gTbF=< z)D{$Z7%4=lLPTi6aRig;)Rtm-Xb=%hfT;u!(^eu*8STlRVCxS%-*dm`+|N0CXLqiG zw>5Stc?Fq3AS~UyiMx$JSmJMaNC-G)4;LnZU}L?R8<~__{bDpV+cnfa`rbJ9y6eCL zo1fi>>0TRGG9gIz=ltMWuo2Cl>C>B}BndVeH_E==VL*^^68+g{%V+`qp5 zlc)MA<`q&Z*U6wqtWm-rv>2x-mA5!x zJfD&GvTGPRh86^%qV1%EfOb7zi z+*~`iFn80`DvW(Gb2 z2T^_h4CH}3iPF}1bsUCJj5#L5*w+;;}kqA$XV(ko1 zE-RE|We_*3=0X0#|c<8LI(JjcWM zd5x-2z&S>`}*p zeueD$Arfc0CCIa;$CM?L2nN&ur~@$^X* zFL+qXHa(^TS`c5~MhE>pQ9mh|;b95e^bQr%u;%GGIwKETmZ;CBgO>62R|HeA=II9- zf%lA`W_1LH3}UHE6k#+&K3SZugK2OiwW>9WS`Z^I=^av%-d*W7djqyBQSY4&SPvhG z-yj@e9j!wd%BG37vn2Z*r9K>DX3(g?O!YlSmUYN5@?_;s+%@*<=Wp$&B|{{q`zi-C z(?yBA(HPM=XHZ=ynn_n8$NCiL91Zl>WHi$e^d1YHqk;}EP}UdnE4P`GcIsacH{VtO literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc-nurbs_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc-nurbs_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..60e8f42a4dc09e961b569042b03bc8f5f3a1c940 GIT binary patch literal 864 zcmeAS@N?(olHy`uVBq!ia0vp^DIm%?&F zx%#{JfzuWqPucucYWwzz%FO*@4W=_6yyEIU%CPs8&}mgY{lM#Qryo8S>Du_SCL=Dj z^C;71Nk9LO&wGnMaMmTnshG}x{Nu;z<6K7eyzGy+PS@(%zfZs9r2)hG`AZZk=T6-k z&aTN3KPBzeRbQ@8;U8{RmQHIr_14cVPDV51u5{YNqf?q5^=>KD-zQQME_!hY% zLcNab_XTxqoR@k^+ktDM*#Dl2R!_xyUYSMf6Et07!~9;TDz@Ip{@}T%Wyyqu1i_o$ zeq5Q$tS|0ySvny{MC_n<6qn}nwpDRlK^`_Kp`R{Ibo$k~WykbcBA1dEJ`D|BxOnE7DA`|Im7H{5*iE6S5AYy*P`YhPbMQPbzo^Qt4(e)zUboz*#l z;aGA^%!4;;{y%$o|HS_@2P{|L-L6=$BzJcz&*?Hm06&T7!3=enpi!Ht-13{-qNh!p z`daGz`M=^e;o5JH1{p`BcD@yR|Nigwi?i8o>z*olaand&&%HYdR=l_TLmxhL%+Jes zFlXz0MRqU78GfPj%{_Zn?Q*Zz+*8q~+>YiHHbqg^_#Co5f#cqzGZRvta%rQzyX;d;QPGSV}p3v+Ce`p@+VAehK|Qs9dCaKaeVcN2&9OiNI*vhT3bZ#0x|P?;Z5n z+ra&^&&j7nKv?mJ3x}cLFk`0Awk(MmD9^oNPT}BBSvnl}JztSsz{a8D2}7i7(ypyy2h(-^UjClO%xtfJ@o2}4z4zZ=FqyrT{fBoC zs|2@!Sc1-hh=z>}$&AOOu5Y_o`j<7icX!OAy7&4L*>^s_w9nq8Bdvp~jtN~Orhwfw zxdqS5x_9-Ry>oy4>qj+xiy}&v=?8U%hHkun{G&y2^<|gPzq2E5=g#pfv^aBT-t&(Y zI#w3~lD@CGo;`Q(Wfd{)++&!gBHP<=BBjccZ`cwv6%-68_8zPKozS}R*xRz^>GH<*KMYspDxd$o kw}-Vtk_lBIlFkpDo;B9K2WD*O1I8AEr>mdKI;Vst0Gn{VTL1t6 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc-p2_legacy_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc-p2_legacy_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..1e2fc8256e4ee4fe250f69f1481591ee3e71a24e GIT binary patch literal 6529 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 CDL4TD literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc-p2_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc-p2_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..2928c41bb64401fb78fdb2a2673633bc84d55ebd GIT binary patch literal 7490 zcmZ`;Kn5uW0`8CO*W{Pym z07)N!N_6GkvD;H}(!En_S2{=*n>=^8g0{5LFa1vH>X)#-WK0}=W2j3>Q*qVflWWS; zNxTzu(Z2cE89sGwHIj1uf*af#SE+cSuO1dN7*2e_qTJc zAEPL!&$DT{EhI#Vm3*OuMi3vt)TNwF_MWUG9MQVXswv+O$2L8&vHK^#<7y5;49{OmuSY($sPOFfa}ey~FD65zc)= z96Ps%UIM#=302j7xKWMN$kZvlaY>L`ackZ!BsR|3xu^m^Jbb`PQmZDBaCq3f|N0I& zJGFAuv?+6eRXVlt+cH=1YuZjKFUw143{G4f1C6yWWt7eIT~)QPWSriRVA$JtI1;%@ zMSi*F4GmyN3Wncd>3Ix`OMTmmQWp^^FSxjRAFbemYt@gfPu==6qT}(ERTAI>Ze_?Q z3hrgRkr8W&>AAR}-ZPPn4QMhsU1A}#c7e471!Zr0C7QA*gqsFs>&UKy}9M=vHN#?2#x%a)eOwa!Y5)E zNN$q)ZW_`qjPD>iI}3Ior&f7S&C6R=H8B}!sjc*^^IWX0trgNY9@Y;J>%DF=6Wfk3 z*D|D{Bawe>j_ZhxBVyi!zPecyH}Uh^_wDYhvU4XvrZ$L=IP?!Z0RXPIDLzI`I!XEB z!*ENddR8F8&aPX%1aTy$mR$0Mu5KZEu6kSs0c8#^>Lh+!}W zIjGvs1E3y3Ey%-T?FP+b;Nw#TvGSwsq2R5#(Vx=9xSw(l4!m-$T3B3dA_Y6PdkIDy z$fVIb(Q&~!B1uUyVIz0PJ{Nq{0weE6tH2i zZlqrT1x1v()*Gytn3-8!^WWXseF~wnxKW z2DDnjF>w(Of7sK|lKz-Is$;_2uUZGU)OO$!wDkPTW%>#t3uj8rQB}ofXWx8fXZP~u z#7ytG*xp!?LGhf=orJ!=lJeO-aP1Z_J>44k)|3ttgt?XzL*1^^t!FsGulZ{R!IadZ z!fy?!Xlc76J-(kt%&OV3f3?&#-gh7gaI8;DGd4q(#io&yx~eFs;Mv%8)7pb|%=iIi zmT=4QzkBxwh2HB}NlDLer9Fygi;XB4Mmn(q{$O!%r{|)#2DW#|D5E>%>0q@Je3|R& z->k&N!H&VkId6Q$2H^TuJBong#18=?|GTZ2)!IeS& z&&JJ500hz$sM|_RWEVu63yZ+=vUg6H(kn)SH2of9j#qc?*2)_)pW@Xn9sB`!Jx1Z( zudGF)VvH(z_>t{Q&3V^>0dZT<2&`fB!NJC&_<(?mS85i3i)-SLQU3ndmnE|{vaa%y z_?3k3OWw+wu&qcAsbdNhDj|M-8$?Jblv`Qpb)Uw_STP$Nlln=`6?FnB*CL}CJP~SW zV7q=!LiJd;L`!4s6ff8w_zET@o+;`Wc>1wj?hC3plpYq_xT^4V%{L*?y#;BM6tm9I zEG5|KS5itat9dIaOa_ZhB_kwCNWiS?B|w7o&P)6>mc`bUV5Tcf%<(b>zb2duH){pVuU)yCB_klr~fpM$BNVxW^%e-#l1Lqp8p z8Qbkxb7X*6^RW}5(9k?-94+iOYJ{e*Bt0gk6hH)2RGY8T)9=r+&6_%7h?d*Xr&~Fr zd9v!^@}$h(f4O#c@?=0dFCtd{2yG(}m=o^iL1iWo;Ns@wut*utUmu6Un}HrH-PR{= zyLs!f->@7bvG<(Y6QXyYGQ_L%Xb{VUcKt2;+-)z?OrSFdYhGvDCFjd z-Ue?#0n~^BK$fe2Ryz01y-!352UJ;E#l)<~mJEDzSKp-SE5@yLaxL7`!$T=1E-W`T zOjuM@QtI`aMow;I%vLO|Q2T>mbMwrs*9ptyWH`^ahzP8y>6`3u8(+$L+7`x`?j7pC zSKLA=kxvR_k(CJ(I(qu2SLH4A$kcV~_Qz0cY#knBOMw6Ff&OYx+_2hn1{OAK1oSh@ zh=YTJu?6SrTy~X;8UVc;EOx;pL+$6!lZ#Sh)TO`Nb;OijwrZer!Yw43>777%Wx~2O z*;QF-+YRjdGbARvC<(p2rF?M1!_WRQCTn+JOA+Gq^;OI|HP~7h7=5elw0dkvQJniJ z6_WFxbXnQNfes3!Y8{fd_K>BXjkUSC{~PR*_;>GSlgNNi!2EMZ;U~J-SRKBgOX7M& z)k{Lcz++ilycK4}G>y_B9{VT*zOj5{8E)>V?8GCkrO1gg``p**DKKq ziwgsTiM8?Y$Ho&ZI@mRS{&OoUkG0(-3{?mW zEk+Y_Pf6J?cy{q-5%mw+#*1UPkvp$Z;=D2|lqrx@MTbR~*i z`cvc+Z=Zu-w*G*0g0_Obcd@bYP!4gbmi%~pZ0u;9jG_HQyO6vR4qV*%4(579ov?_A z(+6(3f_;nekmf}ht6h@j@D`n3!+9( zxRe%S$8^VV5%{-Un|zD{1|;7?zMzK29IPY$?)Bw#D|jrwLE6|vZiBP3_75<%Mm@sn zA0Yzz6ff}3{i^VNCFS3D<#z6{KOQdum`E%G6O%B^%^F$EMn~8CCscOW%u*S(BiX^q z5luwB+>x{d1%ciceg2Y|$FPTPsW(BR8Gs6b*AhL6NwhTUg%6m`-d**j^HN^l{Y|nu zc^}SMa6HEN62K(0z7haZoqw1P4H+C{VUOy1ySNw+FK^8Lhz+2|fW_J)V`*9@RceS) z<;fK$`EqFDAgphz`@!A?Z?PsPEi;|4p8|ukzI>^cjqgOg&&af?OUc@83fv+5YI(X% zaB=YrXYyz4X#c_VpYG`&su~H64kRYlpL7Du7ZV&2ZUrKVXlAC z=ZH#P2S=cv%YX(*2L<#?Eamiy&9ty^Zq8?Cdx=F<6kFUsbJZ#y_>i&tFv)U*QreN>8?-*TzPorD|>8cSO-jDXkie zaMb!*4;u+Y>KjW!cV{n7P?L z=Fk|uN8~D&LS7|3NUN&8DJ?FKo6ydv^Js<5>kPp2%bClP5m@?c<_r2h`0_kH4W2#-9S4$EQADnQ2J7tZ zx4F&M=9j<=N5s!XM0<|IRBVa{38cB(p~|T&wWb8mcjX_`KZLrPu{t}Z48=pYJ06lc zu8AThbTqiWeZx>=_?@H%7bW4(pD9E5L_Kra4`Ic{I+ac?#hTT8oQoO@$FDXk8wB z{1^2vxd-Z)=;=={>^+k2L;Cyo|CCjz;)_#Jm6RuuJYCO6G}QccZOD7gos|nG#eLe) zFf!)7OB}-P*3c;WTHXIg3a8r-7}Fw=u?Z_zEK()tA@6I4gL49@9HvyoBb_*SrY}Jc zgZ1{OeHtz=Bqvu;#g}GmXs9sQ-rG9V8v8T&sbF`A;w3;t#GG74RJ8kPR>s6MyLrj? z>Ll3CQRBN`LJ|O^?r&6EQat{zUlrB%?y$m#j2{xQv4bOEi0R-mAW3n?@44En3kK7X zQE{Y*92W7}o0^vRdH{8^S5yY2fR#UWZT^vy%NIp+D@#Bwd_;p7w?J-Zl6^er-a?^r zdy>6CR`DxFSS_1FAhpIRLno(29fe=`hKE(vu!ZOdh_(}l7Y{9|B*;%b@q|G3_pzk>q5Dn%>bCK@O}5g~?VZW_!ES76Mm*A~ zWhk7~-F;-l^S(*(`La_3HmQmw?idhD^5y9}Gt%3WK zxQr}vDjXpROyzQV+5&;XatgROlrr{PA@3Zy8yaS2ZN$zb!+R!?0#O6~=Dk(7klkG= zh=G(Q_wU6{)GVe{_7mUQ%E1D+EUI{0 zfy>Swr!?)-zevubVExom)7gb@XGbRRjTJK?jyKT%wY&RrD@FxS3*eLcct^{Tkwx}( z-yMqr54v1_8zkcPc6&r^;6 zVsL$vAS^0+f3!v@jB3ek2JY^)fsE`q$;hD4lV6z=H(G`LP8?jZC!Q*X>63%g z_g@FmJ{74O8_!j0rcWR4az>rRdi#Why8=4U^^V5XEupxm%yR9ZW7*wZrLKuiEL~kC zW$z8_n3&~`aTtBbMWzr^FJteJKP1Bl-Qa3=ejgO|G8cwN>f~J1nzv~S7P-I2pctXI z?uREyF+YtGlTy*bG)>`!JN8*w@yTUXP}F-X6wpg_WZdWC%ZqBQ!m=NLT#{UpY5*#8 zZ`|2Usk(ohv|&+KT3+_ZbL~*hC4Kk11?o8?pI?s=Fs$bymIb1E9d*@7R;MmL{uQ3U+Kd@JMf^GCXuW1?Rcn_jYm|#RT`mfKSvPn;%57}q$sJjO)`>xF)m30O=!xeS z)H~g(LS{8ij1-X543ksi%*-t2e97;Mnreg5Fl^uWj1}yx$_iN6dg%rlgB}F=$PuFm zS_em7f&Mj&1vHj->Q+#~2^8rbU~btN@ONC_+m-U{6xA0&*hzlXOHJ)^EIdswe8G4$ zfz2$x>nLyMsneR5x4o}BHFaJ1xN+$|j0S107<;ZqWTe(q_qpx9USpNYnb3)iOMr8W zQ6iw>*LbmUIQsst;Y_+ZSTD#TO*P+B)6(XyhImb){>4T{-ml{klLl*jjEMn49I~_a ze{Wko8q)YB(6v}pt(9+J(l!vM$fj~05&sm12xss~7_t21$B5A}}bj*ROYY#SN< z=lWETvuk;g_r}2ilya-n(>;i$C>@xZR=;y>E11-^Y*#9^b&9VOCdOrBgIgbA99@8V)19;YXCCU5k}Q&SBL zQZhNoZT(++1JP)iP(H9d!O+nBQOG%2YHG4Yk-63f!O+nA^YR>x>+6Zx7`>s59vYZT zu(BESVJN3*l7cLGsS#Zkzjw;T_) zwn}p=M@#p=-iMq-BJ<{UmhPrjF?OB&!zqAbSa_LViC_>+L;Sr#S6@*9`|3D7^PR8Q zzkkVe8=-fq+SDYJhbCt?K^qs(8QD0ZCv|OY84NvHSuwHs0{ZuF2)%Xd$HwmL#=#v| z!Q&=@!8i?Y&;siVdf4|LWM($Of&Viy>W2jO(|4Kq3%@OcIc==5>JcBY35kReGD%)FfltAjT2m{d zzxa50M@GFiqjgg9S^d&f_kWT9i+b`z2Ewu2obl|HfP;6MS!0uTObLgBsS zc4AYj$zKJXovUiRuLRV|?GJUG!zZScg)SXzt+Jy%_WFqa zYtiKy94@X+i6iCZ`CLclDOgHOO1<>P83(lTR8Fo~=)HG7d2z9-_FjI#gcC!utxIAK zO&uAcpzJHWi1pzr9Hfo$KH~u2XGNC zr?S@c=Gtz9q2yV%ifY2_1tAA-lUZE7T-atWz3Ml)u#s-;%F5&^xSwiYpIYgOrrsvR z;{K=8{_kE}FW}oZTy~FPrl!$+$IGD>mRc71PHE|A#w6EJWQ`sfqo(3hcJ_kue#q5@ zbS_sqPfUQa3!kp8ZDP=?A?err-$=6s)ANstC^buMA&aMadfuF;cL5!CUb^SmEup9k z%CfRrV<%^?1O4pbi!Wc4%ua8w0zA+Le7u6x-)12H+P3jDxqcloCKwXr@+Rw9LcqPj z;-zVP+mj(`DQMaAKJ|8y5DFsM=`z!Pc&_#=*}}EFy@qW5#7H zZ= zZTFDYE%5MqiDklI7$fLR#E5^qU~;0fqLHX>h zjS;<;*=elgGW2WboAK1T8TTTCv@`{a{NN|IGn7XBDsT*VL`89M5q{k(F~*>TO_7wY ztLwa5p1iguEDrerKrQ(L$1U`8+|`#%Nv4o`CJmsXi*=@$Q>DGBX~dzE2bVna=cb%; zZCQqO$9iGWo}0f=n7hx6mLoSG6#_AT#PqzHo;iTm%lZzf-I~2}I+*R#LuFlea^H*w z>Dbr^xZ6!Fyh~HsJ09Wij?X9NvL;8~{VE`uy>U+lC_zHdG-Y!0gUuy_V z(Y6)BF{9j`ccJ&WxcgrSd!yo?pXHg)hJa1^b(fnsc%&Y;35S7ay`0OkUfmXfIfViE zB42&-lCMbVm#)tbixR68jIO#j2g@8#tQa9iV<-3Z3Mm*g z{3T{*H%q~_C9r>o!hQ6>{xQVYdE@^6&RK)zkaki!5+t(L#uVgf2F=f>cO4O;!9d1Y zUGxBap<_+fC`HZ!l7^rq^J$gPZ>@Yv&e?u@*H@>Wl=P=;n09K?bPC8ruif13C;Xf= zn1zVvRcV7E*yk0XtXz`u^1j)rXYRnsDKNC`#KHMWd1iLw5dHflKR<))e+ONfuCC@S zu?k%qJq1J9Sy>eoZ&3Em&eO;bCDr4p>@zLs#!L0upzSka`+sS#Q$eJXU+34{Hwg_9!zPJmg#w0hqIQH~;_u literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc-p2_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc-p2_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..4098f4ab42d95ff1610f7adfac779fb66cee36ec GIT binary patch literal 1348 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_oAcPZ!6KiaBp@Ud+4YCE^fR zeD(kT)OXFHQ`7<+Q*Rj0+j{R(M2Xy*Iyrt*Z8$??~uOzZNc{Ga?d!FY_{%QG5uHN zmk;(eBIgAkO5R;|v+?X3`LBKcaq~FNKfU|;)wh#uj|*KYxaP|TfEX4#%akO0+yx$< z(VHH4@AvHlnI|^Eg^~7a8Snpi{q-R)d;iQ9VX4aRyGt#eeQZ-Xbd$$|VgJTi`%YL{ zP3^pwv-;&_7mNN*t~)P3SYEp*dFHq7>F^`!Gg>Ck_^vwd`;+-fhaUQFZ~d2||5sbE z?=1`KyOJL>IM~Z(F_l}@IJ7Lbifpu&y{8O}h60b}GR@Y9Kd=k-JwF0crY^|$>y$+m zkGMoc*YLc%Cf9~7!5BQ9^darxY9~P_pB4dOpkfX~2s1J3;r`S0+dt&?VoPspc52<3 zwom1b3x}m3U&6=49p5CtY@jL05oOA;b>eryQppDsGkEfDt2vzjC0Lo0LDDN@znFt; zXpT&gkZO+aD6m=nKA^E)=-~vvI}4fW1%OVlSQX6Yocuvfknc^3tkwrcV33&rX+uH2 z_bfnqy^BR>rS%+Ouzp%?$KZeC_=%p+DaVZK=XhH5zx)=&YUkb(JadIJtKC^EtJ%@* zhxa{dme03Qnsebqyx?)0t2fpxzARN>8v4NAkTc!vT$a@d!)GdoPTmc>yxzXf=j;D@ z-5mZ8uN^q9HtAxyjNrV}yV)0C{LZFiv$&kcZSnhDmx`?WY>)5Wuls!Iu#961cg2vHpj7(H-|&VxW7~Dn?ZDEJ N!PC{xWt~$(69Bx84=Dfu literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc-p2_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc-p2_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..03fcffd5a9138e4162c688389d0a472fb23ab88f GIT binary patch literal 965 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc-p3_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc-p3_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..4d8670ea048802d2c3d17c83ae1a811cc4bb217c GIT binary patch literal 7414 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 N!PC{xWt~$(69Bx84=Dfu literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc-p3_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc-p3_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..03fcffd5a9138e4162c688389d0a472fb23ab88f GIT binary patch literal 965 zcmeAS@N?(olHy`uVBq!ia0vp^DIme|~!U6XVgS z_s`tsud$zY(#C2*1Y1`s3B>tJaR(-gaWCpPKc8`5-P31nZ*%9_v){O_%yaYC^8Y#U z$-Qnag3XNUY&-FK=PL{HoIY@|`oL zM%dNzvNKoN&hq7Ay)7>%^Wl@~T)wYXjuXy2I2!yLEu?u!%kzQ!(eSnRm|c+Rt` z)cqC0tM4wmnNnWJB$YOy+!S z`1^O>vbXPz<&0xOK(#=tjHN7v{d%> zqb7xd8rzvC1z2KYcFf^iBA;!sB&g7STTr4!iJj@&h?_d)83!NyOWYEidHht$ijWSa>BfsY zypH}2e)c7K;(^-rpRGU3+jNBL1ZfpkzD&FIRCTG)(M7W}`6~suE$p7XIdf3>;mw}S z#(n*0sRwRbmwrn``&*RhM6T*y)>-!YYKd=P!?2e*5l+d3jb#Z!e82-y{8P zf`4?PO-sFTh;uT z@n$z)+g?EeOC#8RNl9r;YfO^FNz^c}a`|@oyVIXmVD@D2 MboFyt=akR{08(Md!T^9 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 TC8Yi(EjSu5UDZmcb?E;AZ^J_I literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..ec340dd88aecd371fbc3b48abe1c5aa6a59dd0e6 GIT binary patch literal 7500 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..4098f4ab42d95ff1610f7adfac779fb66cee36ec GIT binary patch literal 1348 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_oAcPZ!6KiaBp@Ud+4YCE^fR zeD(kT)OXFHQ`7<+Q*Rj0+j{R(M2Xy*Iyrt*Z8$??~uOzZNc{Ga?d!FY_{%QG5uHN zmk;(eBIgAkO5R;|v+?X3`LBKcaq~FNKfU|;)wh#uj|*KYxaP|TfEX4#%akO0+yx$< z(VHH4@AvHlnI|^Eg^~7a8Snpi{q-R)d;iQ9VX4aRyGt#eeQZ-Xbd$$|VgJTi`%YL{ zP3^pwv-;&_7mNN*t~)P3SYEp*dFHq7>F^`!Gg>Ck_^vwd`;+-fhaUQFZ~d2||5sbE z?=1`KyOJL>IM~Z(F_l}@IJ7Lbifpu&y{8O}h60b}GR@Y9Kd=k-JwF0crY^|$>y$+m zkGMoc*YLc%Cf9~7!5BQ9^darxY9~P_pB4dOpkfX~2s1J3;r`S0+dt&?VoPspc52<3 zwom1b3x}m3U&6=49p5CtY@jL05oOA;b>eryQppDsGkEfDt2vzjC0Lo0LDDN@znFt; zXpT&gkZO+aD6m=nKA^E)=-~vvI}4fW1%OVlSQX6Yocuvfknc^3tkwrcV33&rX+uH2 z_bfnqy^BR>rS%+Ouzp%?$KZeC_=%p+DaVZK=XhH5zx)=&YUkb(JadIJtKC^EtJ%@* zhxa{dme03Qnsebqyx?)0t2fpxzARN>8v4NAkTc!vT$a@d!)GdoPTmc>yxzXf=j;D@ z-5mZ8uN^q9HtAxyjNrV}yV)0C{LZFiv$&kcZSnhDmx`?WY>)5Wuls!Iu#961cg2vHpj7(H-|&VxW7~Dn?ZDEJ N!PC{xWt~$(69Bx84=Dfu literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_LOR_square-disc_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..03fcffd5a9138e4162c688389d0a472fb23ab88f GIT binary patch literal 965 zcmeAS@N?(olHy`uVBq!ia0vp^DIme|~!U6XVgS z_s`tsud$zY(#C2*1Y1`s3B>tJaR(-gaWCpPKc8`5-P31nZ*%9_v){O_%yaYC^8Y#U z$-Qnag3XNUY&-FK=PL{HoIY@|`oL zM%dNzvNKoN&hq7Ay)7>%^Wl@~T)wYXjuXy2I2!yLEu?u!%kzQ!(eSnRm|c+Rt` z)cqC0tM4wmnNnWJB$YOy+!S z`1^O>vbXPz<&0xOK(#=tjHN7v{d%> zqb7xd8rzvC1z2KYcFf^iBA;!sB&g7STTr4!iJj@&h?_d)83!NyOWYEidHht$ijWSa>BfsY zypH}2e)c7K;(^-rpRGU3+jNBL1ZfpkzD&FIRCTG)(M7W}`6~suE$p7XIdf3>;mw}S z#(n*0sRwRbmwrn``&*RhM6T*y)>-!YYKd=P!?2e*5l+d3jb#Z!e82-y{8P zf`4?PO-sFTh;uT z@n$z)+g?EeOC#8RNl9r;YfO^FNz^c}a`|@oyVIXmVD@D2 MboFyt=akR{08(Md!TiU%n!#WiS)yTj&w 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 UUQ36`M*si-07*qoM6N<$f?}5*+yDRo literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Lineout3d_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Lineout3d_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..b26db2e2e35b17af933b27053b8e23f30bfb203d GIT binary patch literal 6746 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 Y>=|x~O1yL%yaa|=Tbwli2S<+kA7Rnsq5uE@ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Mixed_offsets_2d_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Mixed_offsets_2d_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..9f3be205f6fc0dd489eb3ec34992b707e303d906 GIT binary patch literal 3207 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Mixed_tet_quad_2d.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Mixed_tet_quad_2d.png new file mode 100644 index 0000000000000000000000000000000000000000..93f3700f08f55d9d4cde700752484bf8beba2993 GIT binary patch literal 22812 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 z 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 G{C@!a$K*)> literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Mixed_topo_polygonal_2d.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Mixed_topo_polygonal_2d.png new file mode 100644 index 0000000000000000000000000000000000000000..d90e652802257799378eb004cbcc4d1360762f10 GIT binary patch literal 2383 zcmb_edpK0<8rRupvod5R(nA-F{jfdJCT-&`<1&eHiPap}OuJ}@nUO|m7@aKIL@J$1 zGqR~TEsaaAjigpPal}-}xXo;BnPU*;I%9Aao^$d%=dXSC`D6X_zTfZteeZAm-tYU; zeZ5KQs=BI5N=oV;`&|zzDQz%a`G7y6ky$+*ypqyJZ4X!HfHU0j0iWh$%pEU3P2|S< z`CY{Rctoy3#o^rkiu=VBCc95(@AK%~$T`_ndJU7*9vY(-S*qv6i`{%`7c4|$w1i4@#+NStSY zJ8T28ovu8IPzt4V9}WeXFUM3LKXuV?2mp(H@*PhO?U!H2FhxFRHb%B{A1OY!mMMJm zmLl?GehrgfkEAHS4h8ji@`LhB1N)h8604*cu%@xM{jBhZS}}X!%^gxlaUKa06pr#a z6lNr)gw;{3cBdY`K4~1jxNW3!-d1&0m9PWLp;a&~3_K0WZ*4Fgsy`0$V1B9R;R?ck z6hkhaJ%ODaCSYz@0<4_8)GunX>ci2*Ud#v5C4I=_#%H-SkmA?PBftdqhrb4Cvqw=+WfA*MZ$XN)xW*akG zBu@YjLYk=i~s=_$#B0yv$Ky$7AHhW}Ve@vZ# zQAc9cY%!5L4ZQMKr^iYH81F$LXp;=D=WU1$2_R!v=_9rc-c_d3Ygbsr`zjeVIO47~ z#S+}DpE(Qry3mdJr`=4Q%Eap8SBJ389BJ8vh-Oj9t6rHYmkPbs#_g%mpyYXrQH72M zIPq+Qn8)Oq9=XAgCaP^r1hpe&(h1Znlasm}Mm%e(`U0(Mf!v37B_ePp9bSN+Ty>1F z-R-IO^t|F{>1|jN0CuUsG}U~|Ew`aeiJg!3U!0QXYGLJM4W?nl7OG}S`RVdN;Ya;3 z`4C$nIor1Y!?XqR;)mX#9TT_6u@@@KgL%4(0{(?G`~%poK4_r6hZK}K*`MFB(7h=+ ziBj^LWZC63_`R&GCMPkPnD&sw-dbrJ28MD>Xg<)GNLj`UK9Mn%Ue22+>=Gd4Cs(XK zg-)N7@uG}hu(fH+S*ILvSF2ML@2Yd&&$>3(#B;^`V|TwLZlXO^ylZoKk?Sh#*B={C z*7lCUUb-gcdlc2>1X||+I%NGuW{y{^C;n(7BI9u=8Tg?d^0$r5IFHy(I4fI#wUC?o z%-Q;l;@v&}eztbI0Wt0MKKAHa6PgPY^7jgqFt-p$2zrk0#O%eeVf0z->~06lOC89v zg+B0;3C#w>$-ZpXX5Pp&v)|%Y7h)-(4^;VU4Q@6=N&Lwb<3OZ2z}m`5MLmycqYs#y z&@3^1mo6{nh!cvY1GEMeEfa-BR|)}%7klBVcf}wOi5?yTZfc(zQ5F+Ds->r& zLkoRZdNI1ng>7d^%fNHLlBpkgpcS0Oh)5}~b;Qis03Qf-3$KLa0~ ztvHhA;Rl&r5q~pg`@+a@jQ^2;p@XFMn;YF`PK1!!mlI^<_AryBa%oXpR&pO4sPrOiq&19Tsm@3~cQ* z5_i^@bZhwxgiNu9IcFtzePTBpCOLsKjII;$PCISplHcYpR*IIECMPUZrsiij?7}xd zV=(iyJk21nR7wFsjU|4V;^DN#_U8Lyx;)+8@G)Q7G_CGZ$CF-yVR~YLccN{Qn#$*K zr)V@wpvuovnU$d_4GDAvmVOLEj3C+CeEq*}u`h@BAGivCM-knu$tIZ8K~Nit0>MU> zeo~Wp`%($5;XW+w&F}14E-KS$GMkH8mFAw*a%7wGNf-G!gMq~!`L8cwSTyxnE~R&L ztNrQ|Il4t4o_5J{pO?Z;MfC7EdQxP=a25!Dmk_qNkUSEl%out!bA=KkFK{<}aQ(Z( z<=qXBHtm36x#BD4z^;yNFSptt-dn=c!i3xV{^(=icPQ{*e{R94kQ3)e-IF0gA4*Cd MZr-k?#PIX~0=Kg%$p8QV literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Mixed_topo_polygonal_2d_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Mixed_topo_polygonal_2d_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..8fd140aee541d6a8873accfa015d8d7f0cf83007 GIT binary patch literal 1664 zcma)-e^inO7spXa5HrJ!l_duGgC$s+tui&2JfW$n9Yc`NCtn_yikr(!jTA)l$1rP> zII_~2Xet&xDl@|$>|KSTSgB0X%4%D=)XcKYl{7j#r@!`|^Zs$~J?Hbi=iK|pJ>Od# zv6p6paljxD2%F#_>ONEDdu{aNl2EEYfgL*?w~@1zTRkWA*0eq8+KMWmMKsxExHFh?33&w7hPW$n5IGNkHZVB6>|%(Uwda%vzf&=UUo%OIWu50TeiuFt&W(ZBb}?MAiCtmk{~(W6P~tuJI*zf0qPnZ`aIWQg;NhmRx&Hq_o$vMy%0!kfdG2C z0)2yPSc+5knWT9&(H@32Gm!2qI%hvh6wxmk0I_new4!Yb1G$4G$paKH6sy;R*eR~T z7DuR}yn-E2A`sH%D9{TZ``+XMnlH2pd4ig_%8(TDL0T;tAv2KcS<@ICK}z{AEEEDk z2~BJ@(YXa;&|5%k3AfFikrR)3|^l$r7Mag zhNQ0)Xen2EX60J)t_`ed8yrDQ`47wy0<9YQm}xXe`yE*dVkz)Qu_?Dep%Sj5NWe`e zGN@YaYO%`-at)yL!IEnrWxuA(7I(*+<%q%E@nR)#dQqZ7XPb3PL};C4HB$v*ZCXaI zfmpS{Yki16gF3`bM1>%Hu376OX3TMu3PVIjH$tT?O0xQhWR7xRV(ic_;{heidXXEOwdgV~{-m^3IUhZMR2PUA3vP10EIv!yJ*5JSObovq=C?Dvz)Wum0a6AJs4x!e+K`C;Rr<;;u?5*TCMy#@)a_#2ObVZlzm|EWh-YADXQkmq807K>lnY8s7!wF1GN;b`l;UwuNy{c zOY4$iNXg$(D9m1$c@TT1d1tQ7%6FsS=%Gg5yPJKn%j2^`l*9Z&{oxZR;}t*8d~cjJ zNV6AfGrzWjz^U2Wqr8g^E9!4Q6s7mv{<$Y6QZ_X_F>0H!`_`A;RWZy?BdaT-2q0Fz zZP3Orbw@lyJ&OWanA1=Nd!K$+Du9Y5YOb9geOCJ?x^SVg-wN^eGq3iE7EQh!^jYQ*y zf;gqY)x(@byU@gUySQGPUw2a4fxR1AwS+i-C1>mx`V#Z8SzQ#1-Wta7TVryyb7aeZ zGrRwRmBr*Vr>AfIj|aA-NNF_s)dRX`h5zx3t5c(CL9)5fg8YBx+ImGJ`o3V}vXe2%8^+QOTP?|)kp&D(r1e8DLPo%`#r z`(*Kt@g1?)9oc`n>I%yD%pNYve|@NAzLE6#)0TH5@SO^dY0`k`8A|RD$ zb;%=Ogi#zLLNEm*B8=B5tQknKKqQJ#E>e(}Ua)_lf@<@Bcsg${@$M(8U2R%_JiI7BTKeh9gK`Nng@8(zBo}iI~4r4A9>cD zujY;)l^7jtXqwoTp@o3`rumaDlr3Dy+@Z~o~Q^0?rKL&<|TzMEY{t_z~mhj^U=+a89q0ga<2kYx^lEN^W_co?$C(-Ya+3@Wnx>36Sp+<`T@G~uL6%2sq{kIQAz`x zb$7OTkks;`Mzf-D5v;wwpZ7_O+gY>X7Oj*gcW>Hv$>XR+@!+%zy`g>dj4-+FwR*Cz zvxK*tL(2AlF-$1-aTfHCjy1Wh@2QIDKhl-Ca9DvS-6YV5w4tKKD4hAJw@t~)(B3~r zcNSDeTx}@-ILjrHE^tmbo~5bS`0a8Hy@}HOQjY}t-8`mXN8EEr=A2X{*6PlBKs1RE}n{DdK!#d}uj*flHh z^=uqDT7fi~yzPkW5>2&%jfVL_?l>L2W(vYHMQWuCSqDf<#tu*+VL$QNFjQ@(bFb=> zuS^S?<%S*bfP}d$^eKjER-PYaVXyYmHGi-Jx^4jnW2D>~9q;WHuzZ}2l6|3Qygma7 z`4X(D%D-TWIPS%6w}$1X+2~^*=>E_1PDro`;NOFTn?& zl!PN⁢Tjb)h?qnbJmv%m?o&((N%xViC8GFL^RTd^WFJOW6kr<=seP5w7JAItL{B zz~wX*Cyw9?mXRax$C#;xGnQ9II>v}GGfQ6y`2AmrV4V$PT1O~9?+F2 z%z$5mAu{$kUs9e#=l~X)Bvxj?kM`>v!cpLtc0$69EarAFf0&R4ekNIHQ$_B zumYZ5t;qKR9?O$*3jv?w1jU~`&ClzaOcp_YK)5qf?iDce5f%e}T3Bed15DFzLAN4q zD@|3oK(qo{On6`mfEJM~G{^xyt_P$Pa{B?`A<-%o0Cr-5E#(i`sFed;tp_~xqb}KT zmMZhTz($>8P}QImDz-p?^WCm1@~ky#Wz1aIB;^|OB^lQkR6eLEj!O0=8B{3%Boj(3?7L6v0BO0Jlj{*g z!s2Q|Z+Ou2=!QLw)M$G9ikIe_FZVUqkt@b2(9NkhWiY+?yTf-6qN@vmstfJ=qvl#A zIT^2xJ_)V;>89wqOIh!E@oHFJAncwo7PC0O?)3|LahE;q6ytCEy-0b8vbV8b@W<0d zbr+TAgp#Qeag=!YqQ{Y0Z3K^@tSMQS+Q_PtG)&E9-o0i1;^f@Gtq=S2Y{VhMpY50J z&3UvzyP6u!RR)HbXwuXV#H)RjAk>oHenXtOhGx!M_H_o0AjQ)m?YG34V_!sTPOEqK zQMDst01sTziY?#5>%~3c^!1sSE!x4!BaYnJ@aYw2Iz4?Td^vYdcDHx#S|43xo@!R> zQues!<<_~<+h6rK$G^U(#)n28oDBKE^>>Do&v1YmPRd{Tj(c~&{~s6SFN1I%LCJNQ zJ98d-w?)wx|FLb-t@f3=eL9Omr{~NR^TxsL*C$(uy6N%fV{m#{jxzuz`P;f)yAacm z{=?_=#p>n$^xTVWtoQPAZ@lw}Ojj<~JP>9{H`!x7v#s4k#`j+#9 X7IPUl($~OK$tb|*fOoxT>{tH=3{DFj literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Mixed_topo_simple_2d_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Mixed_topo_simple_2d_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..aebda55233ab0efc1cbb960b41ebec250c49534f GIT binary patch literal 1880 zcmb7_X;72b8po3W0YXDiAp$ChtR-)XC=`&gY6>JuAtJssMM7AGScI}F$R=7678eLt zL?}VZ8hpbNsh|X}As`5fh)L1Hl?o`bsX@RH?#uY)&fE`o?#y$}nfX7z|8wSto4%;bS8X8cX__21( zkYeNaKv|tJiF;N2K=-hX^-}1oT-^=yVENru)#SzSUvuq-Yg>J8y7}6`QpJK0*(~xqu#i%IYJUMGvGHxVYIO}oXvJle<5fRv(-6Ds(6$4;No zbDCJuW5%l_kt?a)aoZ6b8t>uSf!QbO1#NfI{z<4o;$Ekw(JF|l;ENuro)SG+{h2XJ z05D^IdxvzDeh?f#9#H5V)p(-g_5~N8UW5TAahteR`u2A0RtxP3ltEwvumX2cc#E=V8%1feq>ezql9NM)%cc9?2k`Y)(J`ERjFV zWs}}Own$F;B?FqOkP9+R_l??vMVd4iEoJUPuo--v4G>B9O%<34x$zPVs=rHHmnm}b z-wkTBd9IMfx3r@|?ue9?-nbjGFra19S5;%Br6_#$puapsC6lxy!6>sCEw(BE`3CPF z;!+G=6imKvoQ=< z(HX!S!c$ZWAza|w2)SmGVFVjPr)U6{=Xtt4ud+!;nycX{K6Vqd3c2nQRxscUj+oH& z>Apzj$xKoXWV(y84TvfuVxd|uL45antDHKfmv|V>)^D!H;%$342p~$IHq4Lj<}OQz z(fuxwMMNYxVk5X2@+ONk*YY0_mw$-vtJ0Ah^0VrCff+brLA!C!d9%*}P9$IiZoaaX z90kW2)aD;M%PRc}u)IWk0`7w>Zg-`A?5m2Ox(w59!lnJSUo9?Hs(nc}VAa8*i*fhv zICZqy8JhW~ z1LHcGuY)j>KN5K_XLXvT|02l5QMRo-vB{-Q}e6Wf3lICnJg|jSHI9nyjQIBnUETXs&Uau+lkVRk6ovv z{&-)Mv>T=6IyFy=la3rwC*1w^NZ3orca1objAZaz&|oH90p1r zEG%3b=r`Z1C^yj~6kL;Ejf0r&%@xzt`vPt|}{Snn3pN0)*(ljlRG`@-*feEQ~&?~ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Pick3DTo2D.txt b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Pick3DTo2D.txt new file mode 100644 index 000000000..8289839dd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Pick3DTo2D.txt @@ -0,0 +1,374 @@ + +A: globe.silo +mesh1 +Point: <0, -4.48889, 3.95556> +Zone: 554 +Incident Nodes: 797 798 789 788 851 852 843 842 +u: + (797) = -3.72678 + (798) = -5.12947 + (789) = -3.8471 + (788) = -2.79508 + (851) = -3.91857 + (852) = -5.39345 + (843) = -4.04508 + (842) = -2.93893 + + +B: globe.silo +mesh1 +Point: <0, 4.4, -2.44444> +Zone: 945 +Incident Nodes: 315 316 307 306 369 370 361 360 +u: + (315) = 6.34038 + (316) = 5.39345 + (307) = 4.04508 + (306) = 4.75528 + (369) = 6.03006 + (370) = 5.12947 + (361) = 3.8471 + (360) = 4.52254 + + +C: globe.silo +mesh1 +Point: <-0.629469, -3.97431, 4.07401> +Zone: 554 +Incident Nodes: 797 798 789 788 851 852 843 842 +u: + (797) = -3.72678 + (798) = -5.12947 + (789) = -3.8471 + (788) = -2.79508 + (851) = -3.91857 + (852) = -5.39345 + (843) = -4.04508 + (842) = -2.93893 + + +D: globe.silo +mesh1 +Point: <-0.793176, 5.00792, -2.61567> +Zone: 945 +Incident Nodes: 315 316 307 306 369 370 361 360 +u: + (315) = 6.34038 + (316) = 5.39345 + (307) = 4.04508 + (306) = 4.75528 + (369) = 6.03006 + (370) = 5.12947 + (361) = 3.8471 + (360) = 4.52254 + + +E: globe.silo +mesh1 +Point: <0, -4.48889, 3.95556> +Zone: 554 +Incident Nodes: 797 798 789 788 851 852 843 842 +u: + (797) = -3.72678 + (798) = -5.12947 + (789) = -3.8471 + (788) = -2.79508 + (851) = -3.91857 + (852) = -5.39345 + (843) = -4.04508 + (842) = -2.93893 + + +F: globe.silo +mesh1 +Point: <0, 4.4, -2.44444> +Zone: 945 +Incident Nodes: 315 316 307 306 369 370 361 360 +u: + (315) = 6.34038 + (316) = 5.39345 + (307) = 4.04508 + (306) = 4.75528 + (369) = 6.03006 + (370) = 5.12947 + (361) = 3.8471 + (360) = 4.52254 + + +G: globe.silo +mesh1 +Point: <-0.629469, -3.97431, 4.07401> +Zone: 554 +Incident Nodes: 797 798 789 788 851 852 843 842 +u: + (797) = -3.72678 + (798) = -5.12947 + (789) = -3.8471 + (788) = -2.79508 + (851) = -3.91857 + (852) = -5.39345 + (843) = -4.04508 + (842) = -2.93893 + + +H: globe.silo +mesh1 +Point: <-0.793176, 5.00792, -2.61567> +Zone: 945 +Incident Nodes: 315 316 307 306 369 370 361 360 +u: + (315) = 6.34038 + (316) = 5.39345 + (307) = 4.04508 + (306) = 4.75528 + (369) = 6.03006 + (370) = 5.12947 + (361) = 3.8471 + (360) = 4.52254 + + +I: globe.silo +mesh1 +Point: (in transformed space) + <-0.650387, 1.08398, 0> +Zone: 506 +Incident Nodes: 347 348 339 338 401 402 393 392 +u: + (347) = 1.86339 + (348) = 2.56474 + (339) = 1.28237 + (338) = 0.931695 + (401) = 1.58509 + (402) = 2.18169 + (393) = 1.09085 + (392) = 0.792547 + + +J: globe.silo +mesh1 +Point: (in transformed space) + <-3.0785, -4.9863, 0> +Zone: 593 +Incident Nodes: 761 762 753 752 815 816 807 806 +u: + (761) = -4.75528 + (762) = -6.54508 + (753) = -5.45424 + (752) = -3.96274 + (815) = -5.59017 + (816) = -7.69421 + (807) = -6.41184 + (806) = -4.65847 + + +K: globe.silo +mesh1 +Point: <0.782909, 1.53655, 1.746> +Zone: 503 +Incident Nodes: 185 186 177 176 239 240 231 230 +u: + (185) = 1.58509 + (186) = 2.18169 + (177) = 1.09085 + (176) = 0.792547 + (239) = 1.86339 + (240) = 2.56474 + (231) = 1.28237 + (230) = 0.931695 + + +L: globe.silo +mesh1 +Point: <2.87067, -5.634, 6.40201> +Zone: 596 +Incident Nodes: 923 924 915 914 977 978 969 968 +u: + (923) = -5.59017 + (924) = -7.69421 + (915) = -6.41184 + (914) = -4.65847 + (977) = -4.75528 + (978) = -6.54508 + (969) = -5.45424 + (968) = -3.96274 + + +Pick with all materials turned on: + +M: multi_rect3d.silo +mesh1 domain 1 +Point: <0.2, 0.0666667, 0.0888889> +Zone: 225 +Incident Nodes: 269 270 280 281 390 391 401 402 +d: = 0.682125 + + +N: multi_rect3d.silo +mesh1 domain 1 +Point: <0.216667, 0.0625, 0.0833333> +Zone: 226 +Incident Nodes: 270 271 281 282 391 392 402 403 +d: = 0.667304 + + +O: multi_rect3d.silo +mesh1 domain 19 +Point: <0.2, 0.511111, 0.555556> +Zone: 605 +Incident Nodes: 731 732 742 743 852 853 863 864 +d: = 0.320833 + + +P: multi_rect3d.silo +mesh1 domain 19 +Point: <0.216667, 0.5125, 0.55> +Zone: 606 +Incident Nodes: 732 733 743 744 853 854 864 865 +d: = 0.287983 + + +Q: multi_rect3d.silo +mesh1 domain 1 +Point: <0.2, 0.075, 0.1> +Node: 402 +Incident Zones: 335 325 225 235 336 326 226 236 +d: + (335) = 0.646048 + (325) = 0.66229 + (225) = 0.682125 + (235) = 0.666367 + (336) = 0.63038 + (326) = 0.647015 + (226) = 0.667304 + (236) = 0.651187 + + +R: multi_rect3d.silo +mesh1 domain 1 +Point: <0.2, 0.075, 0.1> +Node: 402 +Incident Zones: 335 325 225 235 336 326 226 236 +d: + (335) = 0.646048 + (325) = 0.66229 + (225) = 0.682125 + (235) = 0.666367 + (336) = 0.63038 + (326) = 0.647015 + (226) = 0.667304 + (236) = 0.651187 + + +S: multi_rect3d.silo +mesh1 domain 19 +Point: <0.2, 0.5, 0.566667> +Node: 853 +Incident Zones: 705 605 706 606 +d: + (705) = 0.327687 + (605) = 0.320833 + (706) = 0.295599 + (606) = 0.287983 + + +T: multi_rect3d.silo +mesh1 domain 19 +Point: <0.2, 0.5, 0.566667> +Node: 853 +Incident Zones: 705 605 706 606 +d: + (705) = 0.327687 + (605) = 0.320833 + (706) = 0.295599 + (606) = 0.287983 + + +Pick with material 2 turned off: + +U: multi_rect3d.silo +mesh1 domain 1 +Point: <0.2, 0.0666667, 0.0888889> +Zone: 225 +Incident Nodes: 269 270 280 281 390 391 401 402 +d: = 0.682125 + + +V: multi_rect3d.silo +mesh1 domain 1 +Point: <0.216667, 0.0625, 0.0833333> +Zone: 226 +Incident Nodes: 270 271 281 282 391 392 402 403 +d: = 0.667304 + + +W: multi_rect3d.silo +mesh1 domain 19 +Point: <0.2, 0.511111, 0.555556> +Zone: 605 +Incident Nodes: 731 732 742 743 852 853 863 864 +d: = 0.320833 + + +X: multi_rect3d.silo +mesh1 domain 19 +Point: <0.216667, 0.5125, 0.55> +Zone: 606 +Incident Nodes: 732 733 743 744 853 854 864 865 +d: = 0.287983 + + +Y: multi_rect3d.silo +mesh1 domain 1 +Point: <0.2, 0.075, 0.1> +Node: 402 +Incident Zones: 335 325 225 235 336 326 226 236 +d: + (335) = 0.646048 + (325) = 0.66229 + (225) = 0.682125 + (235) = 0.666367 + (336) = 0.63038 + (326) = 0.647015 + (226) = 0.667304 + (236) = 0.651187 + + +Z: multi_rect3d.silo +mesh1 domain 1 +Point: <0.2, 0.075, 0.1> +Node: 402 +Incident Zones: 335 325 225 235 336 326 226 236 +d: + (335) = 0.646048 + (325) = 0.66229 + (225) = 0.682125 + (235) = 0.666367 + (336) = 0.63038 + (326) = 0.647015 + (226) = 0.667304 + (236) = 0.651187 + + +a: multi_rect3d.silo +mesh1 domain 19 +Point: <0.2, 0.5, 0.566667> +Node: 853 +Incident Zones: 705 605 706 606 +d: + (705) = 0.327687 + (605) = 0.320833 + (706) = 0.295599 + (606) = 0.287983 + + +b: multi_rect3d.silo +mesh1 domain 19 +Point: <0.2, 0.5, 0.566667> +Node: 853 +Incident Zones: 705 605 706 606 +d: + (705) = 0.327687 + (605) = 0.320833 + (706) = 0.295599 + (606) = 0.287983 + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Polytopal_mesh_missing_offsets.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Polytopal_mesh_missing_offsets.png new file mode 100644 index 0000000000000000000000000000000000000000..2d645c3a8ffa4b69a1598ab3aba940adbee85c23 GIT binary patch literal 942 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tI*PZ!6KiaBquHgXfqkA z^4GlPvu3K>zn^3Ie7SrH=kSU9v+u4+Ke!q*P)WIrv1uKDuodT$IAA_x@O1TaS?83{ F1OR99B+>u? literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Polytopal_mesh_missing_offsets_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_Polytopal_mesh_missing_offsets_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..e186a6916e96ed2c7d5264bfd07d893992cda7f5 GIT binary patch literal 498 zcmeAS@N?(olHy`uVBq!ia0vp^DIm2F}y!&h4o|sKJjnRQq zLPL-I*kNQFcDwDa-j>|9)TJdkvvOnepY>bG@!kGwcX)w7pJwjtwBYOg+MCO+y%gD{ zcX(6VLiyt|(Izebs`k!5U+Kns`0vl~-n85so91kvGvD&#cmBQV$7&YG<((I|A=aA> zksI3-&nvYl-i~)p`7^!q5~|P7V546DFc= p-^Fh;ah}|3=ATXMID_B zNt83|uX9(N{QK`6bKZ9IddaK5{WtWSJRR{fHN8&A$)`m?Sn-GphoK-z%s2Z=bg!tr z%fG*k?S7W#YUTAdcb-P=)}Hop_VPd9;y+I<-Sc1IbVThzuG@h){2*JIlY2>@Gj++& z+|IWC^k#)N z|IIspHZNY>W2u`dDIdS#P?-ph0Cks(E`F*wdv<-!*{SW>uYX)JTzy>s|BH|JYt z@A$PQRL$;uX+PMK&voYlZB%-ac_yN0GMa*UvZY`jm6eF3yRWY~ZFf2%!I}#a)1PMo zZG3*zEb7OQmoc`?8;jN_>+r)H|83ypB^IP~?cYQ|u z&yTvMf=*}3OsWsP{a`CIe@1;y?i9oMoV;muzluQC&`lP<__O%;#{v14``rG05 zMgQxG2A}WM_lg2z#k$Bk%V6_1zUG=HO~wO<}a8LJ1_ltsd4{6Ny*dMrn0S` zU>5-Go7ML(!RpjPANP1wr;eL_Y5qH8_q9J3Ubfg>^7G6KC0~~7ivz!GQLj!p zo0->JRh?`HhJk(Taqjt?`u|f(zo114yKzl(d^+d%)$t$F?|~u=YpU5A_+Ok=m>OxW z@4I}G8AfK&2h+B(p5f#3mWO}(kG=zz_Y9t{elF{r5}E*S$ciff literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_amr02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_amr02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..8cad15cd02d9dd99756430cff88f3d3f83e665b9 GIT binary patch literal 2090 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_amr03_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_amr03_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..77b6ba7f52bd91177bb49d7db2675cfafd1562e7 GIT binary patch literal 2723 zcmai0c{tSX7XMmjn#|ZqS+Z3$YRHl$8QHgtbx^h#gsf>o*5m(+Qu!YwP`G>5#b*NSuXC`K&oCI#yiVl@<Y$ez0hJxHp$oJ*-yu+t#xrgAIo|fILY<-R_J&(cGi2K_-97x>aVJl zP28_s^3_qLwdt&eqaoEohIfI`0pvaozIZ^ zST90NU5)jWzNIbaS%fY%R^!#QHBH9v5nS^|O9Ng}x92gKAm0FymWJCILAO@q9-UL9 z(Ame~6}|ld?n$nBnYQJQ6=h6E}BblA*K z^;4!ej49D+aSbEt7;~8}I(L%W7y)1b4H+cvyiT0_6o`T(GwO5o)PU!pB@LHTBe$(w zihR!4F07TJ_d`;GQzFS_G6|g>z=lf`XwsJ&>7YD$0|E72hr#KObJlC3AsIzoo?8NKZDP`|vw!D+VO4%!(Loc^vNZN71BGD0EyJfU~$ zf%2T22p1SXnC_&uMNH@tR}WbC1k(YcCs!PC?A4-ig`9v<#lWJ2Gc!U()ZpfZclcl8 z!V75xhbiKSq*3A(Wmw_|6qi{JtADB%uaso}#zh?|79N6Io|$>EkC{33dH0-5F%O>o zVJ!UJ@8r;5J>j`R=B+U3v3U3yBJcU-qG%ZG7?Cf5%u;&H;Vnc2IeJ@w<9c5Zg3C%S zSlvpFD{cf;=O7SomJpajv2PFl=nTG8>%9pQ_q!8V0?*@ginB-Z8A|YgOtt!oxQ<|3 z4BO7|rmA7^Ska-IT7B-BLo$3?_syhY$~V4JjI3rYzkhKXV9GRi8)LUyxgKkF!(*8f{j}L zSlFaz12`20*azSKJS9LSAZpXq+>}o zl~l9jp4#uT_6~JIU%*+*SOa+W z0U2xSf|YKvlLy#NX;gh(ELhpuvDv0^GagszR(RrxLgR zs_+?Kj}RbLB4fD3Ct16JmguRdc@%N^D%Gesx;$-&7q5(Ai-{u$E{Dbkh+QC?3GfwU z3%oeR-hAJEhkW>bobcMTGgu$*j+K4`ga|&K8Wqqc|WeI^&UORZAv6eckkxM9g()Aid3RRr(Iwo_ycV( zx$ecyfX3ZVi8kX?ZeEsRcjN^P44&9Lo+(~Ai|MJ$Ei^>s1&G;%@16U>Z&xFC2qdQpcj^pKkA$#a$sBDGXx7-vH}RPV3$O^;#P(P?Ri_fVqX9L95? zpD#UWB_%(97@O*M>t~w2b!oP206w>?YXZ}3@}W07O>Jz<-4w~IL_ z1%vvw?LXzaYG#=npp{RzbnaadhUd|*$Gn*w+{7K`n-X_@7B&2#{%dMDqq1-Nk%z}o z%AfT9_oSKP!)Sw5(+A4u`Fsh_5N;qt-3j-jPt>qSeDeMI-|;%*^!$H49q7_6L@PUj zze&YAmfjs`wlUZB5@|^DAc0c`19QM*N|Lw&0*QKJ?d*^Zh>?1jYJKv);-a4_lH=XN zkB}jc5L3DB@gH6fVfN(l0mZGK!&*1(B8)v_7tV9X$W?HpK;==M|XxaRx=v z-?FB0Tv!*T_0}Au>R(`N7wWp8mABPVY+`SV==^UwV(wbH!b~E`UJ9RTvm~^TAC1dL zZnt4$%iYxPxsR~h|CLaKK*40;PgHM`IZElQtBzh~`j?4JeRIK|{Ry4!50XxLab<#= zVx%(^h$b0l4^;utq&upECn|z*w2898uQB@de@NcEsPAPLtp_HV{ zjF$QU;YDT-^~-jBTVajU8|;@oLzm-JEdmRkQL1H;oR51H zBl@=Ylva0Y+!Bd9$szkUv%CnXPHuiaOLK?ICt$2^p;xWz G8v8HBvKBl5 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_annot_macros_tafile_2.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_annot_macros_tafile_2.png new file mode 100644 index 0000000000000000000000000000000000000000..b55a1564ba8d94eb399214867fdc7ba7e5610d28 GIT binary patch literal 3651 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_annot_macros_tafile_2_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_annot_macros_tafile_2_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..e8babf8d3c2537344150fa3f3cb08ac7840c3198 GIT binary patch literal 2292 zcmb`J_cz-O1I52$#ST?_kCxh_YE@%}7&U4%Dnyl1^RfG&60024-demZs#+r|cFo$9 zs!d50MTr<8Mm>H1gXcZxJ?C@p{pJ3A&rP(vYsA9H#|Qub3*6Yi`cFRkufU)`eu)NA z0|2-cZlG%uR}x*_$*4n*kj9v%}=+NRq2l{b}Br3^zlp@b@ERM%HDZs+HwHsL~# z4v%mz0N3+Q5`M&btiGLM!QJV9>5kaJ0+TY&G z7n^S$kmK3dWJhEL&*mSmSC2h+?MkfCX$Vuv&f^)X;p$%Mnj1b4?~j*~EWN!`>T$Lo zF)y#V)+Q$+RyRJ-L<&!EAW5u!l%C*L^a7%~9UANhO##=cjW)j54Da!$1cfpC)_XD7N61`nmNm zBwNcEOgd+Xzs-Z7#;19 zgV%WF!rM}|Kx+hH-|{B%ZzGx;TUxS$ld8SK3#$JbTM)wpd=dat>W812PeMB#xsq{O zhR>Us(GW#hL7KP-IQpI?NROe6Z>^}&2-KY2eV5{iVnSrg$DnOsnjnA%0X{spxpP8NF7lS~|qVyE#^Vd3S2>0yEhv+BF6tQoYUS450?e_$u& zP;@S~?in;;Ror$KYF=2H6+JeGHNRBnbL*#?+V(IZkrk_=9o(~Qa#T>OO2U2cj;_Hu zIB$=71=VU#d0BoVDTZ-{!d>y{h+<0GWR|aPzg7lv{_c9`IO8Ix{d6_+)}3Z1#--S~ zxORPYh`un@+-L4$Ee6^Iw2*ch<+q>3<l90sHmLyT6pF4avGtK zuR2_4(bEyxxu|Q#jLJd>)LzG)Rje6s-88LDYanfJtLwz%4y#iYLDXAfYaIKW{iwNA z1wnhjZJLWl z4pBq+ih^|8W%y|(Vda=09VqdfKC++~h2_r7%)|QECEUA&JGJDrU075-GMbo7DwQH= zo?nXqDi?v7)K{s@>)JK% zeN3>U5*6BNYTFISFyIsH=t*%F(OO6wi)Djwo%iqvcjvLb>~byP6jRseI2mTUqn$P8 z3giKOXe*TPINM>5QXNQ^+7o4k5{(n<*W(DBL0#!#fh=_WDo)%E+4sF6)r1Cy;GES~ z9!iIv#Z4}Q-HW}2-pH~^Yuw+SCw@M`6$I}V}rca73G_iD}v8kA; z4fb*N8_SVLec!h8&oMNLPS<5#M6;RRL?B9l9~f;EHEjv=Y(rEdIS^RTf66Pc2gGkt z$uJ2_;f8_TZVk3|5KvQPGxf?hKzPgipd9!0#(wW9lIvVFNNwPh?%BA&X;F+y2pveS>;o|Feb8KkCF=ghHf1-V1f_L*x_Y9O!Nj|w`(+l5 z0Ch=Wkh1xd&+i5k9KKuJJ*mb6#}Fri0`+cs$b8leI19If!AwdM%zNf;|MerbX93^f z8=vjw7oIMumLf|Ai*Mrx9AsFFplS0iyk^&DVNCdq*;)x|@f18IaybFENH~Y%XqV}~ fS*8DbXU|!BnXG9cP&N4H%>Z!2y9U*IsOWzHy52;L literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_annot_macros_tafile_6.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_annot_macros_tafile_6.png new file mode 100644 index 0000000000000000000000000000000000000000..d614e30463852f05a7385b7997db2930a5e54c4c GIT binary patch literal 3628 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_annot_macros_tafile_6_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_annot_macros_tafile_6_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..235f161028019115bd05425399a7d042ec0d6921 GIT binary patch literal 2160 zcmciE`#%#30|szMijhl8NsLZxIIcM-jOH$P4Qmm`5?Zo_BbLk12#F|@OCfj7mKAb| zjlD%{0ZQv9U2kdTn1y`8n&&%OG;hzbAf z{dnO6LPBDO_SP1NsKTZE37n!Wh;H_>r7=3PL9lplx-4|jXfNxpFwOkrJzzP!rWmO` z#k9&&uOU{6OUIhG9$$@@(M?fX(I3DLRoaKP`iZ$fXJ(u9!I*+8KD5$0c%T)PSw8+c@OxHRky z(Gr@m1mUG@T@U@>=yBx^?GmQ9OnY?A4F&li?m@aHxZz&akbzX2jM8WX7mQ!_?Z2&X zFgiKX%krD@!jHN7q0wd&qRbD`=&wUb^Q%pIVsbisYM&f9j6WW`|6^sBUIN2%pFAlv zAxyc++!a+mIRbsb)7@6fD8wL<@k!t;V3S~PulIt^QhWP83o%)$Qn@){!XX7)h{-#$ zk2|18r#L45Nh3B1Tjbq8-u*$7WjT0QMGBl7D?1%HgdkiKTpoXOqHoK)<}Ch0Y2zku z@M{+?X0i>Z6!R^QdMM}S%ChNbo&KoTCT~cf3Q84$xS-NinouLkut&VS`NiIdTeHV? zW^xf?mZjX2e)4E`IzSF=;f1Up{iYv)tBn`4dK($^cyqyC8B5B2n72NEXMeLA0m?v*I_JL{-x1ogjli8Y4d!xnbux+t(F_H_83TfB_PcjNFUBU8Iq;wp>? zlPu!^H5YF&2MbJzH!C*>Va{ioH)yJqpN#Xnw)TxfFBvZeLe5q0(EF!4{zfJpJN2G` zd)!}<=ys|cNVsh;kjR2)=I>B=`W+`mgEfsdR)R=)Yu+-W4sQm;Tp`H+b$Rsj`p#r{`ZvYdMn zOp_){Gzvk@M5{2{+~nCV2oI5jMgD!zI8M$@kU7hpW4+^^k4}5#DE=Tqw+)LY1=wpH zlr}T?&eM&32P4gXWEEU=T&-W)v&!7j-MSRFF;!WqR(I2TEM#%fpCH$A@Y#2rSrSvY zapzS`q(**_NqV18=5R;=Zy*TeE}4yPNP30!|S* zru1r;ztw5GAG7(;-&*GEfL8@hdf*LR8U+q#t~FyI6MQNYZ*uyTVgBHL>$H>N4x5pX z=w4rD9`9_icG*cx9h)hC96`O0PI1tSdTfPT-4oc%;|ttft&O^w?oNuID5zu+l4=|H zF5$U8yf_e$nK&SD2_5ik^O*!hS%zLqrV@J0n2gR_aG8XM3_NmGfJMD2QcLbtmFrcW zUT=)rK38fQpwPlK#Fa14Bc!{2Q9#Ay`R=9-I!Z!WX@tJD&qd^-+>PBA(eFW8VG&M_ z04c%L3i>=OBPVL+;k>kqQ)c^g&JP#tsEw~0Pf80o7_aCfEFmM7iSQZoeDKk`Ks(?1xn=d2+dilW<1V@|h`{foY7_?d z%w~(sWGw`hWuisZAZc}4h|x)jT*BAomPjqFza=6WdWRXPxdbKQT>RrZ2VavP=a;MI z%uB{)fxwB68!nH&goHQG(P1LoojRv zph?@1IvhB#+)($W2nfseY|wageS?CGHI{_tWv z*n?=Zf(HEd=|fy67Z|VXnrCGxa)xa}hN!Y*4G+l!TWuAEdz#N{kA{2a-PnqEq0DQ( zJ$<2eoS(&d5d2^r6xV7{@nyQHHx+2mP_$a9oZ4M9erA)NU{tSs`;!4nCpVb3cGlfS z-Kx5x*H=Ze244+%mQSu~03uyH$F?rj=>sXv_UY8nfvBYeHPkXdhPR;qItbzPNZkmg z3+3thXh!4RyTLX6Ezd#y*OkSWEb zY%~{7L=snG*G-QpH_@k;NgKkOg zWg=pm!izJuBBsp5%=$q`Ea2fsG$&Zcvw4y7qA%BThy_Ld50L+h!Hw}E4Qj9|a3nE&32SF^XHQgvbS-urdawV{sS#8 B8xsHk literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_avg_value_02.txt b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_avg_value_02.txt new file mode 100644 index 000000000..f6443704e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_avg_value_02.txt @@ -0,0 +1 @@ +The average value of vel is -1.62203e-17, -1.2443e-17, 0 \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bestline_3_00.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bestline_3_00.png new file mode 100644 index 0000000000000000000000000000000000000000..9e76e3a7be016baab1f5f278a5ba77833e6f4070 GIT binary patch literal 4537 zcmcgwX*^Z$x91qzhP077q1c8W;V3eMPS_4AgrA|rQ3r=iQAEZ=wkf2Lp=1`xkm-<2 znKE`vB?=)!G82l!-TgoJ-Mydt^1j$Fp7mYpyPmc7de-N8R;1Bo-Gl7>>`7L7M z{Cx4!{QTbj9oAP}mA-fH-1905{MjFW>uWWMq2-LqCJO^m7YJ?#An+K(EFy|%*dbs< zG>Cc34GYV|072(}fQ3hQFhR^kmJ*hqihBeDS2XwHx#7m~=iaR6P>S6j;D==6ZIopt zPwU=3J=9PKU`%=|1t3z~@J8MCR_fy$HA$OLJg@RB1j3&Qbz%#|=?U?@@8fROR5P zBP_dtaKytm%jbvJzIsg4eAnz|R#xBR&+7qwax60$EQ?zTD4wEfMx7H%FMihOQ8zpx z8v$lH7o@}l{PCQ5l%CzFeyf2yzrQ^=b&yZegySOs2?y-B&KM2Br>=AT zzKejz*PA$|X{2!Xty{LyZvyMKhXJTx&N0pZuG^^6-y*o+Ey0X^Yf=k0Dds6Z!QgHR%YL9XkWqrB9fvd#2N6`8W&o-2W zfCl1ehM%kvkm$XV;qtOZPzr=K*wqvVBSB1@hkjFF2-Z|42+WduVbCRL?qOK%`piXz zVom*A-rt=e?|KyhV=~iu=Qe(p(1%1t+py*2DEfHA54^=Uc%dW9Z6Fbq_Ui~(DS28Phmd4v*#H}5r<)A((>GqqBb2|^Jxv_2|?$;lc7 zaUH=lbs>tWktiZ*u)kfqA2^(KKgoY!tyDn;pipv!N(g>KVXs;A)>}R&( zad;Fg;9UO}LLV~3^Ub856h>{g5QtUm{H_tT(8^-3(0~9uj&>_78W;=wg0(&2EBUDs zApjF@Kl-~fWlIOO)pczCY;;dlI;S*;nc6VJ0EOiiruCDfedE%)<-YUifm@0`b9^-? zMUWNcyG}Dkhc2`TNa%AzNCPX^y?tB%+WnC?m0nsPyv-r^PiezYre?$h0PRNNv@9TF zE(qzGitS4L_0!f$S9bIK~o8V()))%sB7kZd`R#1X@rUUH;hmM)RgO z*mP?EEfD?lEtkaU?WOj&ws=^e1u9HVF0WJBoCwCR9o(eeteUjilvVvv?l3y5e;6Vh zm%YBZ*Pe4RrTK_q280}6pNvXr{`hKIV8QjZ#P*?{F9LP??Izu+D&_ls=8VUe^|8< z{-s7d(-`e~#{s!;6T^Ha*@i{X`j-~Foa#=A&3|jvkf!pr{`u8E5Q586zQiFXT{NZa zq9}~uCR5|=zc+qs9SdNo&(qL#D6te2kY0K2ssmUOwvat?vJfQ!$H`e}WA-(0iz!Z4yzIhUOQpgbNmJ!AgQ(>*jf2p zO>*)X2l;ScJ{~QuU!uql_sh&5{miQ8)HM7Y9z^B_MYmpw0bevzvMVsf#Gef_d5(C1 z6qPR@eIgiCyMII=@U^tu⪙CCKu%OOKS>|8qpeDbL44AHJi*z1i-8dJdG9H=)~Gy!_NTAET*p5I++aqHVVU@$&>oC(uvgOV$17t(;k=NG z)NF6f}^-QPcCq}|a( zgFCam+-I7>Xx%#+&XRg5 zOY@RM9MpNbu-*UzMQe^T&Rk6rn@cm&{g4)eU;Prd(}?<$`yOeP$tHK-<07){e7e++ z#YqRS1y)<+>u~&P^5PFbbGK&J;VhxVoR?|67Ll2p@sjXWJbu@GYqYGjfiv3=?mQhS zf_xl!ynd<~s|e}ne%Mn{H4e*k)5k!C)@k&4tpw7-Y(>NY@3F!1y+ixE9^-Br;sEIv z27lJNP%n#ffFF5{IaQymVpUntsFF&?1{g*VxSQA`#?yT|Py1FiT_=ZN9je|lJXV0O zGOq5F_l8XUs>zv9Gl`CVP0}v_NG!WYTa#p(lPyhc7Ua7f(tigsIl+Lmux}Gc#%hVb zr~^ojH1$)K8|!gaYlV6?4iBgzNUjRSf99S|N;#)3D=uDF4Q%S)xayCl;%CK;O=CF%jmS**UaRtT5+piXdrgGLh}( zHXCS62?}**do9Aa^ILMFK(1fkx zS~O~Pj{QA5;+vr~j{|dAS6KfI3r3Cjuu<2mjTCmbv!{3yNH;_gi^yDN|*N?-H^;#_;=q$quGrGF8e55LRq zE5uG2gypQNwDSGnS>LbPQH17>_%)o3Ilp%hwpb5JJ)=vVlV}YWmXhlZd*@DMCk3l% zDDD~s0TXj`LGsac?vX^_w=eXd?lbgOvt7aEp2IlbK&oUo+7H5q;6BCwSTw@QWmgN0!e=8<3sp|OA zuxS=CvZ1~ETq{Mx8eB~gWh4eaC%f2WrJ(SYM{OR86%c{#BebQo{$J)}KD9N!Tpc{>I0rCvuaW$Qj z6;5W4oEbYWC?USgA}tsz38zdzb{I6DTAApc*sk^uNfTm9NN@q3R~pd|{{$C`%G_Fu zTl{~M`K|<;UsOU^3ej6coA056`$%!<2!5hP$MHjeQ_w^|=R}1g(-MQ0XMk?3Jy%Lx z7=O+&*u*aISg*cg*z2dW6*mWA;}8WcYU_qMUzN4|> z_K5Q|?cJotV2L*5Ib5knO+}Aps=DrC!qWKl%{YdEN$|un4!3f0C-~A^?{Z`Q`9}*4 zWmRKR6fV5tVBqPlkFOB$?uGKxOcfWx_XdT|Nm?d@A^*%70g7JI1YS>7_zjf1d9OLnT}L-oFY`PqGhYYf*kL z%4uY%s2+x29MbBf7RJ^FPtx=->}YoPJPps1 zFGc@kC_}Y9X6>Sg$ts@h*k*Yj1-JnET4P3yj&7;u%BV2anro>w$`R=R=U;y2Uxyz* z5YtKycf)zQ6xKL1hB+DnTT4BH^Pv2x!#xQzUyU=gM+VeB>xo2<^zIFwWEJZ*+CU%c zi$Bg+Ve{dAOr<&euz^em*;?}7cX$Z2h{I3V#-=oflSP|@E*$fZ^{5piE3_yOF81gaMG~ z@N42Y+Wp+Sv(0(vPsz(r5$NJ3;xZMbl;SD+PIYSVrG0TgJ(IUFb-L;iC3sLNR>f{(k`u`BPQ^ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bestline_3_00_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bestline_3_00_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..830dc7fed7213e91c17d7ef54042c5bd77fd14fa GIT binary patch literal 3969 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bestline_3_03.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bestline_3_03.png new file mode 100644 index 0000000000000000000000000000000000000000..e0638001f9a6a3baebbe352b5baee3ad804f3177 GIT binary patch literal 4697 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_biquadratic_quad_field_01.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_biquadratic_quad_field_01.png new file mode 100644 index 0000000000000000000000000000000000000000..3caaa15f80d312389304763138719b51f3180b10 GIT binary patch literal 10939 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 VRf={Ma48j}q4Gev6lwkZ{{UELxcvYC literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_biquadratic_quad_field_01_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_biquadratic_quad_field_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..6ef2ca1667a2a76b340171aa7d0770a912778e57 GIT binary patch literal 3273 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_biquadratic_quad_field_02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_biquadratic_quad_field_02.png new file mode 100644 index 0000000000000000000000000000000000000000..c94a9da12e3b948ca3dd97af3a7885ce2c5d03ee GIT binary patch literal 12709 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_biquadratic_quad_field_02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_biquadratic_quad_field_02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..0065d870beb1f636ec924ed86f29916b8ef86659 GIT binary patch literal 4373 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_biquadratic_quad_field_03.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_biquadratic_quad_field_03.png new file mode 100644 index 0000000000000000000000000000000000000000..abeb9f4f458a145c6c2c287a2d58cf24c12b4868 GIT binary patch literal 15708 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%0DnX6rU>Q*!D9slZtReoX;=P6GYy?T@DVbG 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 WK`GJ@f?oep09=oukX4BD*M9?p#rc^4 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_1d_curve_element_assoc_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_1d_curve_element_assoc_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..f45c2c24a2d2a89125ee0a8e66acbc6123885302 GIT binary patch literal 2579 zcmV+u3hecXP)9u1xkn%muRD zXfn+IXgW)J*PaZEqz_J-*Z0alsDh={eGTW z)7sh^W%ObGuRlOBQ5MSpWw8uU7E2ugVU<H=r6V4njeX-oQJ$Rfrtyp!Mj4p{Y0?u+=rl27?xtI9yrdarG)4^Qr{9N9zo96xf)W=iMCc?Zfhwx(*w=Zr z5*JGz;;pgXYD4LZCB4oJjE!Hdq>;M|F=C^PuIFl{EY=ufR;-OQif>PHGDJv^;TmhI z&ulS?b&Fe%d945ZMHXM_skK;KCA1I!(-& zGm8#6Sz_r!K6K#7JfzpD{m+?U<{al{nT-;4;@rF&nK5VEH;ZFt{lh7QH*^hZ3Z6o**TO!v{(K!XQQJMAm1=roki5i8bdrVZsD6cmS8l~lIUDyB_Lm@25q zX|lx97-O~6N+ZoQyK(E!J!Db@VhIR-{PMSYLgE!xdgzg_ZYE4FT>Mv93P`*2x-cL4w(i7J*n3Oeh|o zFyXv6HEr)9NH9pSiKZ;JTh0_ybIcv!Kr_vH&iCQ_n2+Tn9y}wAyvdsyR;u;)HP-HO zcb<6%jtCJSzE)ZfaNt*dZKpj%=rNCN*vyz0SeRq3i!KWm*)_M8F~;t5-+^P0L7lV1 zj$MlHM7rtD8ReevpF^B74~@?X5wAQ%s%VjObXH zF*|YokN*Mt*rzbx(wQ~OY!_WS*a5u23&RXQ<5^Ct{Pz27Q%^vUYwf}{z<}syc<`i2 zD`wNbuepVcFyh54zCOsoW}25-);5tU4sy0^b5yW(V#SG9QPoD9d~lLUZ7ZqbAg7kv zF~;%^r}Jj(#Jb5%aV-FX1d}BD>7Qdxe$E_o4|ymbv0%x3pqw~+=+PfeZxma%zz;Fx z!IL1d$l@a&wbT9qAFQ!9&2)&64O<;`Hf#X`gA5+xkOj*typkX>&9t;0%TWzzB=jUj zjaqGySmTTz;!p=29z0>f``Irp^Urt|BNidDi(LXj9d&l>DN?)GWy4lMg&A`;7g2** zW&;GW9o0}|iKWcGTZv5<>lx3gsg4ji%h}AJ{}{)7_!O&BAARDBQAVHe>2 zl<0ZRf6nJ=()HA*NymtZMHdGSjVTZ!G{8V5m6?YG1dYeghAms_*^BoQm!wTufg87C z3zC!n0-q##feW{|waV%xE`80{k9Y*6NX3XvF%>0xk9z`wC|sO)kl-q-VZze7E+7O6 zX3u$NO@}*i4l=0Wd1Uj>+Gum*Hfkl3|ID&s`;srEw^zA(k9%p-CpZDT&D%C?;-O#o zj&uAaUb@Id(F2y0 z5?`x!@Bmd*dGV@-FWT7>z=TPAL)>sS($6}xqQ(Tg9_w zrB%~G|NcmY!7|H=l>GX;8ncmY-^jU27K&JkMsML+%*dGTG|9b%}H z&UxmoSgWaSr@fKJbDaB(&urNCvp-DuJHG3scayr^3Pr3ITEc__1X^gh!yQGYaD|m& zhCAtOqUj+Ir4@P)d-~~j<4%&CVyc0L*Lht#qFfJ!B9^r<8PoyMC zKH-U2WPFRaqzqS*YN|D=eiGSQ05hWq1qCG54tBiH`$>|=IHnP-C{W}Mb8i1+X#tE9onc0M z#uboQKr_v!IMqt4&hw?*p){h};-Ema1#pzn!yMM`RVgg7jFOo<%o!w!WX`@cX*cd% z<+UOwMM~a}E6>nsqi|?Vm~uY9g|Zv2hcU)>vpY@NiSq_GI_U7?y}^wJ8p4EKxGY!} zSooX2`{=8uK1tGoWtrtD(RSMP->B%tYNYWizH;H(!=AnD{ed4uvHs*wE7k`*=%Oo4 z+KacD<_RV`=$K)~j{PtGs-)78Sf&#AfyD3mzLU;onui&V6F^+Wk;Q5w^9(RjW!deYg{|das95p9GzviQVa8y%$pZnSRz!hw3v1+K9WHL@% z=l2pyA)mD#QlwI(#BZLyES3Sv pVi}+;mI2CQ8K5kd0m@<-;QxVnPx2%NC&d5&002ovPDHLkV1kb}<_!P< literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_0_8_2_quads_mesh.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_0_8_2_quads_mesh.png new file mode 100644 index 0000000000000000000000000000000000000000..89ead01932dce6709758c494f249cd48b06b59f9 GIT binary patch literal 1238 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_qY7o-U3d6?5L+GVD`!6JT)+ zyzqbjo}#C7#a0A=Tch-b&Cq00$*a#_zkX%E@N;t=!=L+|0!d0OGdL90oH{6H{yoEC zKmYvs-IiZxTs^z;_?oy)v)4U7qgvLH>7GSpDC9<$vt< z|7n|letmt+JcLm>?hg%dy7aBao11<2qJ-Av`PrtG7QZrFEqyz%q6e3^(yY0vw=Ld2 zt!4G>;Qq+FbE?j~I#wnkr;N*yH~S9Fd;4Oo>cdyht|W(&t;ucLK6Vh Cz3Hw1 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_0_8_2_quads_mesh_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_0_8_2_quads_mesh_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..158be443ffb6e385c6ffda4f8d1fc3599187e6cf GIT binary patch literal 861 zcmeAS@N?(olHy`uVBq!ia0vp^DImutI)+C zFF(`X)OY#r+cMb#nTtEce@u6XASUPYI{zyIsdiNZvO9?kLEnDoTT#WPFxR1@U*SlYORj^{QUXyd6D$zF~6sD7FQc8 z`9%J$+kgN4>*Dp-KN}zYDRNq1|F`WM+IOv+tg>+ahp$zCzkL%szR}3u-kzV0d6xdU z)X07N_FYPvwdZEeyZ7%8Pf6|BxqJ8G=BQ~;-@bkO_3Kun<(a>J{P6gE^yjNrt1iEM zQ5+h2zfM(IU%PA3?Ag+%7GKP;k-N;CT_kh-@y8iyU7HP`J$~#w|FOlturP^q$>bix zUox)s-vplr>o^~XED)Phn$ouUfsO_DxnJA`(*!JDGZct1TXZwdQDr%2#W3e6!?`4e zbk4@jd<^M^4VxtnL^{nW_Pxw<^6kt`cT9XI{CV59b+KjSwOc=H{Jw9WeOAr)^234^ zXZ-#B>-JfMhfYn63=KUsXW7dXqo1G7>=w`w>wa6d`uydWSI&z(e_OUYLg&lQy%LS# zeG&_F*no~3ez4 zo;??`8BPBF{Tn-TvyS)WDbKo%w=O#$IjwZ}UH$Vl7u=6;h+5mV=)&`xInUC&iUUPf zU-gE}0_C%Fe}A6$=*@n+)hCxnv~hf!8&t2l@}#)9c-=A! z_rNFnO;??Kd$i-7-VyshD_-Ba|1@jU)@$#z&V9K)?~7-cZ=Sx`rZxXr_7ojKN~PGD a56oY;ygOg5QOXL;HVmGwelF{r5}E)Thp34F literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_0_8_2_rect_mesh.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_0_8_2_rect_mesh.png new file mode 100644 index 0000000000000000000000000000000000000000..89ead01932dce6709758c494f249cd48b06b59f9 GIT binary patch literal 1238 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_qY7o-U3d6?5L+GVD`!6JT)+ zyzqbjo}#C7#a0A=Tch-b&Cq00$*a#_zkX%E@N;t=!=L+|0!d0OGdL90oH{6H{yoEC zKmYvs-IiZxTs^z;_?oy)v)4U7qgvLH>7GSpDC9<$vt< z|7n|letmt+JcLm>?hg%dy7aBao11<2qJ-Av`PrtG7QZrFEqyz%q6e3^(yY0vw=Ld2 zt!4G>;Qq+FbE?j~I#wnkr;N*yH~S9Fd;4Oo>cdyht|W(&t;ucLK6Vh Cz3Hw1 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_0_8_2_rect_mesh_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_0_8_2_rect_mesh_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..158be443ffb6e385c6ffda4f8d1fc3599187e6cf GIT binary patch literal 861 zcmeAS@N?(olHy`uVBq!ia0vp^DImutI)+C zFF(`X)OY#r+cMb#nTtEce@u6XASUPYI{zyIsdiNZvO9?kLEnDoTT#WPFxR1@U*SlYORj^{QUXyd6D$zF~6sD7FQc8 z`9%J$+kgN4>*Dp-KN}zYDRNq1|F`WM+IOv+tg>+ahp$zCzkL%szR}3u-kzV0d6xdU z)X07N_FYPvwdZEeyZ7%8Pf6|BxqJ8G=BQ~;-@bkO_3Kun<(a>J{P6gE^yjNrt1iEM zQ5+h2zfM(IU%PA3?Ag+%7GKP;k-N;CT_kh-@y8iyU7HP`J$~#w|FOlturP^q$>bix zUox)s-vplr>o^~XED)Phn$ouUfsO_DxnJA`(*!JDGZct1TXZwdQDr%2#W3e6!?`4e zbk4@jd<^M^4VxtnL^{nW_Pxw<^6kt`cT9XI{CV59b+KjSwOc=H{Jw9WeOAr)^234^ zXZ-#B>-JfMhfYn63=KUsXW7dXqo1G7>=w`w>wa6d`uydWSI&z(e_OUYLg&lQy%LS# zeG&_F*no~3ez4 zo;??`8BPBF{Tn-TvyS)WDbKo%w=O#$IjwZ}UH$Vl7u=6;h+5mV=)&`xInUC&iUUPf zU-gE}0_C%Fe}A6$=*@n+)hCxnv~hf!8&t2l@}#)9c-=A! z_rNFnO;??Kd$i-7-VyshD_-Ba|1@jU)@$#z&V9K)?~7-cZ=Sx`rZxXr_7ojKN~PGD a56oY;ygOg5QOXL;HVmGwelF{r5}E)Thp34F literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_0_8_2_struct_mesh.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_0_8_2_struct_mesh.png new file mode 100644 index 0000000000000000000000000000000000000000..89ead01932dce6709758c494f249cd48b06b59f9 GIT binary patch literal 1238 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_qY7o-U3d6?5L+GVD`!6JT)+ zyzqbjo}#C7#a0A=Tch-b&Cq00$*a#_zkX%E@N;t=!=L+|0!d0OGdL90oH{6H{yoEC zKmYvs-IiZxTs^z;_?oy)v)4U7qgvLH>7GSpDC9<$vt< z|7n|letmt+JcLm>?hg%dy7aBao11<2qJ-Av`PrtG7QZrFEqyz%q6e3^(yY0vw=Ld2 zt!4G>;Qq+FbE?j~I#wnkr;N*yH~S9Fd;4Oo>cdyht|W(&t;ucLK6Vh Cz3Hw1 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_0_8_2_struct_mesh_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_0_8_2_struct_mesh_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..158be443ffb6e385c6ffda4f8d1fc3599187e6cf GIT binary patch literal 861 zcmeAS@N?(olHy`uVBq!ia0vp^DImutI)+C zFF(`X)OY#r+cMb#nTtEce@u6XASUPYI{zyIsdiNZvO9?kLEnDoTT#WPFxR1@U*SlYORj^{QUXyd6D$zF~6sD7FQc8 z`9%J$+kgN4>*Dp-KN}zYDRNq1|F`WM+IOv+tg>+ahp$zCzkL%szR}3u-kzV0d6xdU z)X07N_FYPvwdZEeyZ7%8Pf6|BxqJ8G=BQ~;-@bkO_3Kun<(a>J{P6gE^yjNrt1iEM zQ5+h2zfM(IU%PA3?Ag+%7GKP;k-N;CT_kh-@y8iyU7HP`J$~#w|FOlturP^q$>bix zUox)s-vplr>o^~XED)Phn$ouUfsO_DxnJA`(*!JDGZct1TXZwdQDr%2#W3e6!?`4e zbk4@jd<^M^4VxtnL^{nW_Pxw<^6kt`cT9XI{CV59b+KjSwOc=H{Jw9WeOAr)^234^ zXZ-#B>-JfMhfYn63=KUsXW7dXqo1G7>=w`w>wa6d`uydWSI&z(e_OUYLg&lQy%LS# zeG&_F*no~3ez4 zo;??`8BPBF{Tn-TvyS)WDbKo%w=O#$IjwZ}UH$Vl7u=6;h+5mV=)&`xInUC&iUUPf zU-gE}0_C%Fe}A6$=*@n+)hCxnv~hf!8&t2l@}#)9c-=A! z_rNFnO;??Kd$i-7-VyshD_-Ba|1@jU)@$#z&V9K)?~7-cZ=Sx`rZxXr_7ojKN~PGD a56oY;ygOg5QOXL;HVmGwelF{r5}E)Thp34F literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_0_8_2_tris_mesh.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_0_8_2_tris_mesh.png new file mode 100644 index 0000000000000000000000000000000000000000..5391cea7fb0fd63270648b634d89f9ca9e841604 GIT binary patch literal 3613 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 Cz3Hw1 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_0_8_2_uniform_mesh_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_0_8_2_uniform_mesh_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..158be443ffb6e385c6ffda4f8d1fc3599187e6cf GIT binary patch literal 861 zcmeAS@N?(olHy`uVBq!ia0vp^DImutI)+C zFF(`X)OY#r+cMb#nTtEce@u6XASUPYI{zyIsdiNZvO9?kLEnDoTT#WPFxR1@U*SlYORj^{QUXyd6D$zF~6sD7FQc8 z`9%J$+kgN4>*Dp-KN}zYDRNq1|F`WM+IOv+tg>+ahp$zCzkL%szR}3u-kzV0d6xdU z)X07N_FYPvwdZEeyZ7%8Pf6|BxqJ8G=BQ~;-@bkO_3Kun<(a>J{P6gE^yjNrt1iEM zQ5+h2zfM(IU%PA3?Ag+%7GKP;k-N;CT_kh-@y8iyU7HP`J$~#w|FOlturP^q$>bix zUox)s-vplr>o^~XED)Phn$ouUfsO_DxnJA`(*!JDGZct1TXZwdQDr%2#W3e6!?`4e zbk4@jd<^M^4VxtnL^{nW_Pxw<^6kt`cT9XI{CV59b+KjSwOc=H{Jw9WeOAr)^234^ zXZ-#B>-JfMhfYn63=KUsXW7dXqo1G7>=w`w>wa6d`uydWSI&z(e_OUYLg&lQy%LS# zeG&_F*no~3ez4 zo;??`8BPBF{Tn-TvyS)WDbKo%w=O#$IjwZ}UH$Vl7u=6;h+5mV=)&`xInUC&iUUPf zU-gE}0_C%Fe}A6$=*@n+)hCxnv~hf!8&t2l@}#)9c-=A! z_rNFnO;??Kd$i-7-VyshD_-Ba|1@jU)@$#z&V9K)?~7-cZ=Sx`rZxXr_7ojKN~PGD a56oY;ygOg5QOXL;HVmGwelF{r5}E)Thp34F literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_quads_mesh.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_quads_mesh.png new file mode 100644 index 0000000000000000000000000000000000000000..fa6914fd4e7292abfbeeb8affc8e1a2b1378ccd6 GIT binary patch literal 1248 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_qYpo-U3d6?5L+H7pVh6ku_j z_TXQ**ghU57GoCt9<1=UKuT=xnV4EcVG>9uq2EuGXr<@|$*6>I9uuMax f>`!z7@=dz_pLd7lN5?zBl8eF9)z4*}Q$iB}i(wDn literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_quads_mesh_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_quads_mesh_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..c97f1a0d27dfb092734cff4e0000a35eb7b19b3e GIT binary patch literal 1320 zcmZ8h4N%f&9R5SDIg&<;8At7=9e%TPnbOyEy8QTOnHqmoNRz`aOeiQbTbfZ~YU&Nb zP6V{Au$*Mm8L6v8ub5GYnsN+??I_X6Ss~>tb+ENv*L%>pf99 z@oNPwV#OO7hqId!5rszb*#U?zpsyjS4ruJ(SrH;`C=Ap$hP(TnV-lq(z0VB@092;fxO-!b>$c@R&)?*y0L5e{(w7U%-?%h+Rs5UM{kUz&}VW zE$adUYrR`%5T~fQLT?}w(%OA1@hWy&@+C{rXdaY!*6<5n1!Q2N)fWx~k2a4C6?_HqTGeWGSa|qqE>(XmLCMO_$$@zg8gI@b8_>*#%kQ2M5bY)<=(UkhTEk;nx2&6CE`P6&DxZuSYYXb?3BNZOqC#DV;*0 z@cI0zs;X-YN}bn(pfmOL^+scwx+?)lp-}e8^*T`1zD5ZHMm8MuHfP-4^!d&d)|%<* z=|-`*NV3Z1gta@8p=WlIMK-gU2E=v_v(F{@pvR0g?q@FkXuwL#hf=U9R2@pmC{iDv}@fm|+kJlSPp%V>*c=6)7~F}1Le zK4CVShlf9*;kTs9NX=3ykWo?+mXmZ{fCIb27v`TJ7skiEZ@`Vrd=>%|hua*oFqKNY)q1VlQeA_-NY!>%O{@gUEw-<8uFN~Cq3}0@;mzzU3afnXs9K7217z7)UMJ8*mW}VYqwtTJJh%Al z2h+5w{obZQIu9q5-e!rQs6?*M$f|IV#|_7R7y!oCt9<1=UKuT=xnV4EcVG>9uq2EuGXr<@|$*6>I9uuMax f>`!z7@=dz_pLd7lN5?zBl8eF9)z4*}Q$iB}i(wDn literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_rect_mesh_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_rect_mesh_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..c97f1a0d27dfb092734cff4e0000a35eb7b19b3e GIT binary patch literal 1320 zcmZ8h4N%f&9R5SDIg&<;8At7=9e%TPnbOyEy8QTOnHqmoNRz`aOeiQbTbfZ~YU&Nb zP6V{Au$*Mm8L6v8ub5GYnsN+??I_X6Ss~>tb+ENv*L%>pf99 z@oNPwV#OO7hqId!5rszb*#U?zpsyjS4ruJ(SrH;`C=Ap$hP(TnV-lq(z0VB@092;fxO-!b>$c@R&)?*y0L5e{(w7U%-?%h+Rs5UM{kUz&}VW zE$adUYrR`%5T~fQLT?}w(%OA1@hWy&@+C{rXdaY!*6<5n1!Q2N)fWx~k2a4C6?_HqTGeWGSa|qqE>(XmLCMO_$$@zg8gI@b8_>*#%kQ2M5bY)<=(UkhTEk;nx2&6CE`P6&DxZuSYYXb?3BNZOqC#DV;*0 z@cI0zs;X-YN}bn(pfmOL^+scwx+?)lp-}e8^*T`1zD5ZHMm8MuHfP-4^!d&d)|%<* z=|-`*NV3Z1gta@8p=WlIMK-gU2E=v_v(F{@pvR0g?q@FkXuwL#hf=U9R2@pmC{iDv}@fm|+kJlSPp%V>*c=6)7~F}1Le zK4CVShlf9*;kTs9NX=3ykWo?+mXmZ{fCIb27v`TJ7skiEZ@`Vrd=>%|hua*oFqKNY)q1VlQeA_-NY!>%O{@gUEw-<8uFN~Cq3}0@;mzzU3afnXs9K7217z7)UMJ8*mW}VYqwtTJJh%Al z2h+5w{obZQIu9q5-e!rQs6?*M$f|IV#|_7R7y!oCt9<1=UKuT=xnV4EcVG>9uq2EuGXr<@|$*6>I9uuMax f>`!z7@=dz_pLd7lN5?zBl8eF9)z4*}Q$iB}i(wDn literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_struct_mesh_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_struct_mesh_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..c97f1a0d27dfb092734cff4e0000a35eb7b19b3e GIT binary patch literal 1320 zcmZ8h4N%f&9R5SDIg&<;8At7=9e%TPnbOyEy8QTOnHqmoNRz`aOeiQbTbfZ~YU&Nb zP6V{Au$*Mm8L6v8ub5GYnsN+??I_X6Ss~>tb+ENv*L%>pf99 z@oNPwV#OO7hqId!5rszb*#U?zpsyjS4ruJ(SrH;`C=Ap$hP(TnV-lq(z0VB@092;fxO-!b>$c@R&)?*y0L5e{(w7U%-?%h+Rs5UM{kUz&}VW zE$adUYrR`%5T~fQLT?}w(%OA1@hWy&@+C{rXdaY!*6<5n1!Q2N)fWx~k2a4C6?_HqTGeWGSa|qqE>(XmLCMO_$$@zg8gI@b8_>*#%kQ2M5bY)<=(UkhTEk;nx2&6CE`P6&DxZuSYYXb?3BNZOqC#DV;*0 z@cI0zs;X-YN}bn(pfmOL^+scwx+?)lp-}e8^*T`1zD5ZHMm8MuHfP-4^!d&d)|%<* z=|-`*NV3Z1gta@8p=WlIMK-gU2E=v_v(F{@pvR0g?q@FkXuwL#hf=U9R2@pmC{iDv}@fm|+kJlSPp%V>*c=6)7~F}1Le zK4CVShlf9*;kTs9NX=3ykWo?+mXmZ{fCIb27v`TJ7skiEZ@`Vrd=>%|hua*oFqKNY)q1VlQeA_-NY!>%O{@gUEw-<8uFN~Cq3}0@;mzzU3afnXs9K7217z7)UMJ8*mW}VYqwtTJJh%Al z2h+5w{obZQIu9q5-e!rQs6?*M$f|IV#|_7R7y!s4SOC?HolBFUep&E}YL!CmFqZFE= z?8X*J_H2hpWy!9F7M$Pv&M4>JbM8O)KKGA#o_F5m`+k?t@_i#M&5dyD#nz)xD4g+L zvNa0Dr3n8p+~5pLQdAn8UuR6-ZR7vz#H|+ETP;4G(W=E|UJV(R%xp(ftaNUp!LpAd2hj?J5cBzH&r-RVba8PCU;_x#}Fc}eR|RQ{`hZcy~`@)q_UBS>h2mvYXaKj@a)rqG;PwvvrA@T z=q;izoW=ETWeg|1b?P-k$36|W^c?*;WitPhJY>4Zze8*^;&+N7h1~CvSN%nqV1Klj z>vpWg_cm7EVsuwI9K%};x+ z=Oys2r(F=ADdp&pKczk<_<6rDb-sgjl_~gP#@p=(X?;(et9mf0=Cc2iI)c(f_Fr2fzIvGy0Cne9Ou<$;mku74IwDhJih>K z@_b?=l-#Kqso3D!+~;g_%G+q;1-z4w#tsqtgiD6l#;X?;nVljulMO;iwKGje?%L**4DDv`lX~um~8HTh75Ii zt(2K61Ja;#%EVJN6RXw3hUPa?C((0u;itSi$~s4`6XQ2q<#?C;P2Wu1&VY^tQJI1X z6C=z#+v)|+)(tohh;MLVu_~pQQz0DMbCG^c@o^u@!a6E`(OLeb&s~LIa?1@8Kt^$1 zgp<%V01{q3tg=y~9X~k~cP_nV|&P1jbk{pRKFUKARlqD17#VwOaEg+N5Jw6?T(V&V(QU!<`6U%y6l6tzK-u2NdZA@FI!kZBM9H zMS`w5-mt3wQKKWfz#~qsNTX8PE{uSLSo+izR$<@!;!PMY#m9aC&8f1Rky2T5Otej7F7<6(%}g@1@bAN=fL;^0Q~W*=LMsx zFlf8rMjsIn7VUaMc<3y>J$(0BsueSz*w=DQZ^wyNNUPo%J;XnzsM{nv z-{YeSqltv*!voEWE@GA0ul5?f%{-DSGpj+BdllSWr{9a4mgTex(9o7%cUKY3i&u2% zrb%Ff43N>Oz)c6lyKfNZ6}!)QA^g<0CHpH1otX(05N@#N-uYZBdR;ODUy@tkiA}JJ zJ}E6a2`ML}?w=Wz8vdh9{` zbgaBD4sakAkOy42{pqj!LYe(Nh&mqEy-LHN4X}VYsXa@_ z%1%LD+ix<}!>l(b1r@-@0H?MOV#b$TfXGCyigxl>+9dtea7X@6r?+Lxgfg90q!B{| zX_UYL|BZ^zRKvWoS*3>b@vQp*okO_4?wg}@HqeJ&0yZJIB;VIxqlUHD5mygPDLuC59prz#jpL?t+VdVfRz=0V8r@feGOJ6=|e( z_+`_;)D;P8k117V599J~VzOPQoC$#J90k>G9^u|vIewG^SpTWb(O75iH90tRK!14R2SzFZUHDTuZx zcLNhdq#^N{df0OS|C&F|i$zVU>vM?lKUIu4^$_B>1HIGH%JoWTfpp=hzexwb;m{F# z`$9b@t+Bc&*n&8wzWCj5(dI@^I+me*`{CtaX;v;8U^GvuF}JMzC_?wEd(l(;V>&2* z`B5ONvMPM3<3P9iyn<9gpI5B>)W3>oak>UDk*n)-CPrxHUwvI-!3W#7H02zZZ*R)zDr2C!aqZFhx77tL`) zPvEvUZQylcXujznC?uaJ{1~S5z(mlsBJvX8?)iM(Bdf)=F_{heGhg0u#iXy+3_BnV zuQ(V@jsfp@!`TO902@96JUOEgJW0N&?pE4dGyKU+x`6@g3BTD9EEJOA^qbcjfF~&f zqopzRX7~p4Y{TF%)^PPedg?(_<=xr-kqnc^8a;P^nGtiTfG}Xp#;Iy>>&}-x&4vP4 z)~kePKpm|bGJrTqcTaiZCkKVigB^49c8&8p&kvl*q;pE@+O%MbGp7nj>fw_Yi9L${& zpB0Df!@alvu`#;qB}P7S*cR3F;be?E5}=k166VILhQ?Ys1_`*+A!)EX2_dcf^EN;m zKhGHkcC4=dMg_;7;uk5DO<#*ADL?iAZ4nk!1^yP30W}p|#VZ4HBW9Y?pNN{i5d%Vf znaPze_Ye!~+CWIp?5d8rl1P@|5jxvLMjlJT36(a(!n{pcmsf}y;K-&B&@}AeKeS1v z;BFYP60Z$4GSgDbwjO{5wX%vrheWy-_%=cr8<>-G^qoWh0IdKs AYXATM literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_tris_mesh_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_tris_mesh_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..08beea3809d316b6703a229f442bb5d8d3cec9f8 GIT binary patch literal 2538 zcmd5;>pR=o7FK0sOj>Hv8==O87HM2gT&j|yf+!WK5QZuusJIK&xD3XnoKkU8x1wn3 zl9rN5l~lFOF_}zGno(84q-X|pZ7WSRuJfC(=Q)4C`LNf1_FB*0`&nzf?^^2`?!5ax zO}lm1>HRY30ksJd50_9fZHj_;~36 z{2H4*_Wtcag=11fx)pma>(}Sh5We=V{@uDAjh!kdvh$Ds$y2FO-(&raD(R5guW-k7@;*~++d$x!DSSWBy`v-7h;5f>Nd?d_fQWL;?&S zqSy+1DBZ;D-JR_%rQD|xJ&>t?(CE52a5*mSWT-{<%9wuO&8a6@wB+PGnY~z! z^sZu(0$)?5v&k5v3V}e7F!cnLwUHVh-`U!Fy#D-YXjwGU0gXo6+1UZ|%$fJ=o5olp zEPezj^H5jKwM%&ONV>Xa9J(9pq5bdD!xo9qW4gNGM@)`@b<_@M7C6OGC}1^J6bg0n zAQ8K!1s zWB}2cosER@2Xl4}N{3!9q#9LBXBfQlGvf>n9@}4JT2fnA$0ovWzYvSRRkK2&MDoW? zcb=xRZOI4JhNq_9C)&HYxmkks^!3#VzW+L%zN)6Wr!XuNeT-)b7uwp{{R4b<R#a5fe8Qiq z^=fEn=nUegIz|wYsEs+m|2R<{$q53i)R3;_2Jw7~Lp_<@$6~SmK(&r6B=(zL_C2)tsZFquXi%{aK0`UQrKR3k)u99v>c_Nwf#$J&;iB%V+}^ zi+Ii>KTG4&xzeHV?tuYRl~6tZ834aamPGiWEOcl{NWF0OCG!5@;1muo5{dE*tG#w- z#0n7}5*ZtNZcG8_^7Hdk9R?mg{K`x$cNDv~43n%g($YR}Z>|R;fVfaYrrx~qheSq2 z%}-AoGCa386tTe75#(Oa8qr(_gSxHni1EE};llf=!9m)3yt}&w&$2gRihShm{rmeU zAM&0Vj*qo<=z`QN!R*NuD1V_po)a`VIqBo$bF}c|6-Q-ec4}&BQc{J?Ugq(29*!y) zvpYw>qje1JYE%*4UF`wOM28wxTne;hcn%}$y-f7<^jce6t-yP!WHJCm1ATp82tz=6 zd@;eg=94m0Kzg~7mb3N6%AmZlu~E;xqot*V48X<8!QpZ@F(@d=(Ln2+TS`hwY%EI} z|9){%HH(|Gi*8eMM%vg6BSTgV-aQ^$5|P<(;hVk`jp8Hj9c1#s(jg9qQ&6B@Ci_ha zB%ThF0xXM(!4gJ)GkEdhMGxE@p0G5@Nm6^mNyazQkNAnEHQBf8M#C|QUb4|uK;yuK8;HaX^okn*j9Nm8yXq_ z)@T+ir){>lm)F+T5^t`ot|AzoV4i*b`I6@4H11HiDMT|XE33lePH%73-IxbltFl+4 zdRw6@Y*5~G#uGm?W1VY-g@sHe^M~Gepdd(AKJ$1yKqHgMf)U3-F1B^vOniUmygY+I zU`v*}LI>f8gc}?E0+Pe2Q&x4Nh13ZgJ|N*kjt$ii^gO;dw$@(}PtC}XNF?n`4j5m+ z@rzwmVbz_Th?3^$+Rm=7!x$@wX70LYp5esAL?TpU9VGMU3+}9~Va7}-mCDuC)zRM1 z8yi<2&|Z+N0n`Xc^m*kKM}#ohq!J6$fnje>P5Tj0Xfy(%IUM~8hhIqTCzEr#cgM$x zqcG58&JXaL$?H$Iie>gC&1T%9u<>{A+9Z@6naiUY`$5@1F1+{S8P9M3b79 z=AR~>mjlo!lNq3{`bh@X?reRO@pFPfcIJvd1(h9HuN9)_Nw=EY3JMDP`yFt+nM8D> z4-;SGMNUZY(f)~KZ3=RMA3A4J*#plPn6)h}EdjiWjV*-HU*E>Y21|Dx`57*RU}ojY*RNkk zBPXQNeXd~Rp&p8;Fvp}aCOq5)G9(aSF}_!6v^d+zr%zQ1!+=^srBbKMggtP664ILu zKR5CTC?xggTgR3-5=s-U&Cd*#vF1v@1Kh-2|DIsR=&(>ukaO+ubXb?0kGZ+|PU z*mnly0T`b%IXm}C8l18fN_kWZcGO;zwzGBWi0tC^1_0(;*}GD1I;;73qd4Fo>iYHT z?Hvv_Hjzlv54_@u>H-&k5bjsaJ(_{vIellYc7jx(QgBcE_Kkz8kRF#G|1XSBN!By= zJBpA?OX0zsV`6Z5r~jg2=;$EwV4 zw0Lf#sNa+RNyaZ985vn??>4CvT;}AR(T74mt*_@_AP4ySKQ-+Go~WyI?Xn9R%eGmFnjpgRi4JUgP38eJ``Ceo);46 zu#ho~?<*?MS{UYE9PNi6!NavpF}@ItFM+d0?;7mc(QoCt9<1=UKuT=xnV4EcVG>9uq2EuGXr<@|$*6>I9uuMax f>`!z7@=dz_pLd7lN5?zBl8eF9)z4*}Q$iB}i(wDn literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_uniform_mesh_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_hdf5_uniform_mesh_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..c97f1a0d27dfb092734cff4e0000a35eb7b19b3e GIT binary patch literal 1320 zcmZ8h4N%f&9R5SDIg&<;8At7=9e%TPnbOyEy8QTOnHqmoNRz`aOeiQbTbfZ~YU&Nb zP6V{Au$*Mm8L6v8ub5GYnsN+??I_X6Ss~>tb+ENv*L%>pf99 z@oNPwV#OO7hqId!5rszb*#U?zpsyjS4ruJ(SrH;`C=Ap$hP(TnV-lq(z0VB@092;fxO-!b>$c@R&)?*y0L5e{(w7U%-?%h+Rs5UM{kUz&}VW zE$adUYrR`%5T~fQLT?}w(%OA1@hWy&@+C{rXdaY!*6<5n1!Q2N)fWx~k2a4C6?_HqTGeWGSa|qqE>(XmLCMO_$$@zg8gI@b8_>*#%kQ2M5bY)<=(UkhTEk;nx2&6CE`P6&DxZuSYYXb?3BNZOqC#DV;*0 z@cI0zs;X-YN}bn(pfmOL^+scwx+?)lp-}e8^*T`1zD5ZHMm8MuHfP-4^!d&d)|%<* z=|-`*NV3Z1gta@8p=WlIMK-gU2E=v_v(F{@pvR0g?q@FkXuwL#hf=U9R2@pmC{iDv}@fm|+kJlSPp%V>*c=6)7~F}1Le zK4CVShlf9*;kTs9NX=3ykWo?+mXmZ{fCIb27v`TJ7skiEZ@`Vrd=>%|hua*oFqKNY)q1VlQeA_-NY!>%O{@gUEw-<8uFN~Cq3}0@;mzzU3afnXs9K7217z7)UMJ8*mW}VYqwtTJJh%Al z2h+5w{obZQIu9q5-e!rQs6?*M$f|IV#|_7R7y!o-U3d6?5KRyO?>zL4eh< zKk%Pszp=$0g^L}lyB_@g^5)#Te++Z)S25IB3p)9<2nZ`4ap5qe0@E%d?G@+$r00A6 z%DV)Tlv-wRD5^PibPgh>+3x6k3p3-dEI*!TtbV;y_I%~(hchaV_ip|ix4ggQy#|#6 zf{LNK@#fvC!y9L=R6n5Z9vOT7ZN<50zT;=C^XAO`ZdI#N<389z7#QJa-(8dLJL_Z1 zXlHrqRaM^c;(J9FY4-{rzu9yBrSd~-E@~t-Duyt`IkWGsH9rvkS%~Te6PLR-+P^<% W7cOU4cORIK89ZJ6T-G@yGywoV@-s&O literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_json_quads_mesh_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_json_quads_mesh_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..5ca24bbc606d7aa154e57ee36e2843fb68b9223a GIT binary patch literal 822 zcmeAS@N?(olHy`uVBq!ia0vp^DIm(C47nN+<_Ncw!rFg-o&1J>8X0p2~9*E6aqS)-we$VuI{R^eDpX%d}DC{{eQE}pY zyIJe!D%qOaTGmJZIeyDM&|etA(8am{nXo-lbguF}=fx=Rhz_X@v#yrT zeQs&^JZtN&y?g)Gwf2j;UQ97kyk_%y*S?)QckbHdY=_T1B*Emybcs+Z~3 zN-=4OH6$_OCq8u7U%PcQ$uZ}8%-XPHGcIPdbe(=G6xyVaF>9Gd*RsrjixS24_5c5J z$!mK~I)2>UNv79r^Ua=!T|7+>UcTfE{bXZ)?9B7xkea$WyQn2sZVNbUWDw!TPb_GU zNR)63Jkr@B>M96yY2C;3)$!9*H?CZ_YSrb-!AYO*Cu-|viMj@ciYi_!wVms?KmK9z z*4*F!{`tLOvODwl=g-bA*FcHnfY%dd2y`#9_{C%=uif{!y`9}}&+gs3ckFOD+TYKg zR9dn5=AONK1sC(RAO3f~wBTIf@}M{0s}BJq`uOUS{N?`6_@WdX;V%@${yGcn*C|^o zm!#@>NVjYLoH+tv5^Z;8O5e3)-~Yc^{+#8z`5f1x9-X(VxjEm$WQlb;|HglMRR@^y c2m2r9U{4*-Ea7*Hf%$>K)78&qol`;+0Mm_RkpKVy literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_json_rect_mesh.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_json_rect_mesh.png new file mode 100644 index 0000000000000000000000000000000000000000..9fc2f9148c1bd53693dfde0d81d7523464d06037 GIT binary patch literal 1006 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tJ>o-U3d6?5KRyO?>zL4eh< zKk%Pszp=$0g^L}lyB_@g^5)#Te++Z)S25IB3p)9<2nZ`4ap5qe0@E%d?G@+$r00A6 z%DV)Tlv-wRD5^PibPgh>+3x6k3p3-dEI*!TtbV;y_I%~(hchaV_ip|ix4ggQy#|#6 zf{LNK@#fvC!y9L=R6n5Z9vOT7ZN<50zT;=C^XAO`ZdI#N<389z7#QJa-(8dLJL_Z1 zXlHrqRaM^c;(J9FY4-{rzu9yBrSd~-E@~t-Duyt`IkWGsH9rvkS%~Te6PLR-+P^<% W7cOU4cORIK89ZJ6T-G@yGywoV@-s&O literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_json_rect_mesh_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_json_rect_mesh_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..5ca24bbc606d7aa154e57ee36e2843fb68b9223a GIT binary patch literal 822 zcmeAS@N?(olHy`uVBq!ia0vp^DIm(C47nN+<_Ncw!rFg-o&1J>8X0p2~9*E6aqS)-we$VuI{R^eDpX%d}DC{{eQE}pY zyIJe!D%qOaTGmJZIeyDM&|etA(8am{nXo-lbguF}=fx=Rhz_X@v#yrT zeQs&^JZtN&y?g)Gwf2j;UQ97kyk_%y*S?)QckbHdY=_T1B*Emybcs+Z~3 zN-=4OH6$_OCq8u7U%PcQ$uZ}8%-XPHGcIPdbe(=G6xyVaF>9Gd*RsrjixS24_5c5J z$!mK~I)2>UNv79r^Ua=!T|7+>UcTfE{bXZ)?9B7xkea$WyQn2sZVNbUWDw!TPb_GU zNR)63Jkr@B>M96yY2C;3)$!9*H?CZ_YSrb-!AYO*Cu-|viMj@ciYi_!wVms?KmK9z z*4*F!{`tLOvODwl=g-bA*FcHnfY%dd2y`#9_{C%=uif{!y`9}}&+gs3ckFOD+TYKg zR9dn5=AONK1sC(RAO3f~wBTIf@}M{0s}BJq`uOUS{N?`6_@WdX;V%@${yGcn*C|^o zm!#@>NVjYLoH+tv5^Z;8O5e3)-~Yc^{+#8z`5f1x9-X(VxjEm$WQlb;|HglMRR@^y c2m2r9U{4*-Ea7*Hf%$>K)78&qol`;+0Mm_RkpKVy literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_json_struct_mesh.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_json_struct_mesh.png new file mode 100644 index 0000000000000000000000000000000000000000..9fc2f9148c1bd53693dfde0d81d7523464d06037 GIT binary patch literal 1006 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tJ>o-U3d6?5KRyO?>zL4eh< zKk%Pszp=$0g^L}lyB_@g^5)#Te++Z)S25IB3p)9<2nZ`4ap5qe0@E%d?G@+$r00A6 z%DV)Tlv-wRD5^PibPgh>+3x6k3p3-dEI*!TtbV;y_I%~(hchaV_ip|ix4ggQy#|#6 zf{LNK@#fvC!y9L=R6n5Z9vOT7ZN<50zT;=C^XAO`ZdI#N<389z7#QJa-(8dLJL_Z1 zXlHrqRaM^c;(J9FY4-{rzu9yBrSd~-E@~t-Duyt`IkWGsH9rvkS%~Te6PLR-+P^<% W7cOU4cORIK89ZJ6T-G@yGywoV@-s&O literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_json_struct_mesh_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_json_struct_mesh_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..5ca24bbc606d7aa154e57ee36e2843fb68b9223a GIT binary patch literal 822 zcmeAS@N?(olHy`uVBq!ia0vp^DIm(C47nN+<_Ncw!rFg-o&1J>8X0p2~9*E6aqS)-we$VuI{R^eDpX%d}DC{{eQE}pY zyIJe!D%qOaTGmJZIeyDM&|etA(8am{nXo-lbguF}=fx=Rhz_X@v#yrT zeQs&^JZtN&y?g)Gwf2j;UQ97kyk_%y*S?)QckbHdY=_T1B*Emybcs+Z~3 zN-=4OH6$_OCq8u7U%PcQ$uZ}8%-XPHGcIPdbe(=G6xyVaF>9Gd*RsrjixS24_5c5J z$!mK~I)2>UNv79r^Ua=!T|7+>UcTfE{bXZ)?9B7xkea$WyQn2sZVNbUWDw!TPb_GU zNR)63Jkr@B>M96yY2C;3)$!9*H?CZ_YSrb-!AYO*Cu-|viMj@ciYi_!wVms?KmK9z z*4*F!{`tLOvODwl=g-bA*FcHnfY%dd2y`#9_{C%=uif{!y`9}}&+gs3ckFOD+TYKg zR9dn5=AONK1sC(RAO3f~wBTIf@}M{0s}BJq`uOUS{N?`6_@WdX;V%@${yGcn*C|^o zm!#@>NVjYLoH+tv5^Z;8O5e3)-~Yc^{+#8z`5f1x9-X(VxjEm$WQlb;|HglMRR@^y c2m2r9U{4*-Ea7*Hf%$>K)78&qol`;+0Mm_RkpKVy literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_json_tris_mesh.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_json_tris_mesh.png new file mode 100644 index 0000000000000000000000000000000000000000..d39680933d1b1b95d15515da0da40e22ebbe1794 GIT binary patch literal 2722 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 N002ovPDHLkV1go-U3d6?5KRyO?>zL4eh< zKk%Pszp=$0g^L}lyB_@g^5)#Te++Z)S25IB3p)9<2nZ`4ap5qe0@E%d?G@+$r00A6 z%DV)Tlv-wRD5^PibPgh>+3x6k3p3-dEI*!TtbV;y_I%~(hchaV_ip|ix4ggQy#|#6 zf{LNK@#fvC!y9L=R6n5Z9vOT7ZN<50zT;=C^XAO`ZdI#N<389z7#QJa-(8dLJL_Z1 zXlHrqRaM^c;(J9FY4-{rzu9yBrSd~-E@~t-Duyt`IkWGsH9rvkS%~Te6PLR-+P^<% W7cOU4cORIK89ZJ6T-G@yGywoV@-s&O literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_json_uniform_mesh_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_json_uniform_mesh_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..5ca24bbc606d7aa154e57ee36e2843fb68b9223a GIT binary patch literal 822 zcmeAS@N?(olHy`uVBq!ia0vp^DIm(C47nN+<_Ncw!rFg-o&1J>8X0p2~9*E6aqS)-we$VuI{R^eDpX%d}DC{{eQE}pY zyIJe!D%qOaTGmJZIeyDM&|etA(8am{nXo-lbguF}=fx=Rhz_X@v#yrT zeQs&^JZtN&y?g)Gwf2j;UQ97kyk_%y*S?)QckbHdY=_T1B*Emybcs+Z~3 zN-=4OH6$_OCq8u7U%PcQ$uZ}8%-XPHGcIPdbe(=G6xyVaF>9Gd*RsrjixS24_5c5J z$!mK~I)2>UNv79r^Ua=!T|7+>UcTfE{bXZ)?9B7xkea$WyQn2sZVNbUWDw!TPb_GU zNR)63Jkr@B>M96yY2C;3)$!9*H?CZ_YSrb-!AYO*Cu-|viMj@ciYi_!wVms?KmK9z z*4*F!{`tLOvODwl=g-bA*FcHnfY%dd2y`#9_{C%=uif{!y`9}}&+gs3ckFOD+TYKg zR9dn5=AONK1sC(RAO3f~wBTIf@}M{0s}BJq`uOUS{N?`6_@WdX;V%@${yGcn*C|^o zm!#@>NVjYLoH+tv5^Z;8O5e3)-~Yc^{+#8z`5f1x9-X(VxjEm$WQlb;|HglMRR@^y c2m2r9U{4*-Ea7*Hf%$>K)78&qol`;+0Mm_RkpKVy literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_sidre_hdf5_quads_mesh.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_sidre_hdf5_quads_mesh.png new file mode 100644 index 0000000000000000000000000000000000000000..fa6914fd4e7292abfbeeb8affc8e1a2b1378ccd6 GIT binary patch literal 1248 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_qYpo-U3d6?5L+H7pVh6ku_j z_TXQ**ghU57GoCt9<1=UKuT=xnV4EcVG>9uq2EuGXr<@|$*6>I9uuMax f>`!z7@=dz_pLd7lN5?zBl8eF9)z4*}Q$iB}i(wDn literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_sidre_hdf5_quads_mesh_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_sidre_hdf5_quads_mesh_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..c97f1a0d27dfb092734cff4e0000a35eb7b19b3e GIT binary patch literal 1320 zcmZ8h4N%f&9R5SDIg&<;8At7=9e%TPnbOyEy8QTOnHqmoNRz`aOeiQbTbfZ~YU&Nb zP6V{Au$*Mm8L6v8ub5GYnsN+??I_X6Ss~>tb+ENv*L%>pf99 z@oNPwV#OO7hqId!5rszb*#U?zpsyjS4ruJ(SrH;`C=Ap$hP(TnV-lq(z0VB@092;fxO-!b>$c@R&)?*y0L5e{(w7U%-?%h+Rs5UM{kUz&}VW zE$adUYrR`%5T~fQLT?}w(%OA1@hWy&@+C{rXdaY!*6<5n1!Q2N)fWx~k2a4C6?_HqTGeWGSa|qqE>(XmLCMO_$$@zg8gI@b8_>*#%kQ2M5bY)<=(UkhTEk;nx2&6CE`P6&DxZuSYYXb?3BNZOqC#DV;*0 z@cI0zs;X-YN}bn(pfmOL^+scwx+?)lp-}e8^*T`1zD5ZHMm8MuHfP-4^!d&d)|%<* z=|-`*NV3Z1gta@8p=WlIMK-gU2E=v_v(F{@pvR0g?q@FkXuwL#hf=U9R2@pmC{iDv}@fm|+kJlSPp%V>*c=6)7~F}1Le zK4CVShlf9*;kTs9NX=3ykWo?+mXmZ{fCIb27v`TJ7skiEZ@`Vrd=>%|hua*oFqKNY)q1VlQeA_-NY!>%O{@gUEw-<8uFN~Cq3}0@;mzzU3afnXs9K7217z7)UMJ8*mW}VYqwtTJJh%Al z2h+5w{obZQIu9q5-e!rQs6?*M$f|IV#|_7R7y!oCt9<1=UKuT=xnV4EcVG>9uq2EuGXr<@|$*6>I9uuMax f>`!z7@=dz_pLd7lN5?zBl8eF9)z4*}Q$iB}i(wDn literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_sidre_hdf5_rect_mesh_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_sidre_hdf5_rect_mesh_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..c97f1a0d27dfb092734cff4e0000a35eb7b19b3e GIT binary patch literal 1320 zcmZ8h4N%f&9R5SDIg&<;8At7=9e%TPnbOyEy8QTOnHqmoNRz`aOeiQbTbfZ~YU&Nb zP6V{Au$*Mm8L6v8ub5GYnsN+??I_X6Ss~>tb+ENv*L%>pf99 z@oNPwV#OO7hqId!5rszb*#U?zpsyjS4ruJ(SrH;`C=Ap$hP(TnV-lq(z0VB@092;fxO-!b>$c@R&)?*y0L5e{(w7U%-?%h+Rs5UM{kUz&}VW zE$adUYrR`%5T~fQLT?}w(%OA1@hWy&@+C{rXdaY!*6<5n1!Q2N)fWx~k2a4C6?_HqTGeWGSa|qqE>(XmLCMO_$$@zg8gI@b8_>*#%kQ2M5bY)<=(UkhTEk;nx2&6CE`P6&DxZuSYYXb?3BNZOqC#DV;*0 z@cI0zs;X-YN}bn(pfmOL^+scwx+?)lp-}e8^*T`1zD5ZHMm8MuHfP-4^!d&d)|%<* z=|-`*NV3Z1gta@8p=WlIMK-gU2E=v_v(F{@pvR0g?q@FkXuwL#hf=U9R2@pmC{iDv}@fm|+kJlSPp%V>*c=6)7~F}1Le zK4CVShlf9*;kTs9NX=3ykWo?+mXmZ{fCIb27v`TJ7skiEZ@`Vrd=>%|hua*oFqKNY)q1VlQeA_-NY!>%O{@gUEw-<8uFN~Cq3}0@;mzzU3afnXs9K7217z7)UMJ8*mW}VYqwtTJJh%Al z2h+5w{obZQIu9q5-e!rQs6?*M$f|IV#|_7R7y!oCt9<1=UKuT=xnV4EcVG>9uq2EuGXr<@|$*6>I9uuMax f>`!z7@=dz_pLd7lN5?zBl8eF9)z4*}Q$iB}i(wDn literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_sidre_hdf5_struct_mesh_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_sidre_hdf5_struct_mesh_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..c97f1a0d27dfb092734cff4e0000a35eb7b19b3e GIT binary patch literal 1320 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 AYXATM literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_sidre_hdf5_tris_mesh_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_sidre_hdf5_tris_mesh_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..08beea3809d316b6703a229f442bb5d8d3cec9f8 GIT binary patch literal 2538 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_sidre_hdf5_uniform_mesh_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_sidre_hdf5_uniform_mesh_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..c97f1a0d27dfb092734cff4e0000a35eb7b19b3e GIT binary patch literal 1320 zcmZ8h4N%f&9R5SDIg&<;8At7=9e%TPnbOyEy8QTOnHqmoNRz`aOeiQbTbfZ~YU&Nb zP6V{Au$*Mm8L6v8ub5GYnsN+??I_X6Ss~>tb+ENv*L%>pf99 z@oNPwV#OO7hqId!5rszb*#U?zpsyjS4ruJ(SrH;`C=Ap$hP(TnV-lq(z0VB@092;fxO-!b>$c@R&)?*y0L5e{(w7U%-?%h+Rs5UM{kUz&}VW zE$adUYrR`%5T~fQLT?}w(%OA1@hWy&@+C{rXdaY!*6<5n1!Q2N)fWx~k2a4C6?_HqTGeWGSa|qqE>(XmLCMO_$$@zg8gI@b8_>*#%kQ2M5bY)<=(UkhTEk;nx2&6CE`P6&DxZuSYYXb?3BNZOqC#DV;*0 z@cI0zs;X-YN}bn(pfmOL^+scwx+?)lp-}e8^*T`1zD5ZHMm8MuHfP-4^!d&d)|%<* z=|-`*NV3Z1gta@8p=WlIMK-gU2E=v_v(F{@pvR0g?q@FkXuwL#hf=U9R2@pmC{iDv}@fm|+kJlSPp%V>*c=6)7~F}1Le zK4CVShlf9*;kTs9NX=3ykWo?+mXmZ{fCIb27v`TJ7skiEZ@`Vrd=>%|hua*oFqKNY)q1VlQeA_-NY!>%O{@gUEw-<8uFN~Cq3}0@;mzzU3afnXs9K7217z7)UMJ8*mW}VYqwtTJJh%Al z2h+5w{obZQIu9q5-e!rQs6?*M$f|IV#|_7R7y!y)v)4U7qgvLH>7GSpDC9<$vt< z|7n|letmt+JcLm>?hg%dy7aBao11<2qJ-Av`PrtG7QZrFEqyz%q6e3^(yY0vw=Ld2 zt!4G>;Qq+FbE?j~I#wnkr;N*yH~S9Fd;4Oo>cdyht|W(&t;ucLK6Vh Cz3Hw1 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_yaml_0_8_2_quads_mesh_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_yaml_0_8_2_quads_mesh_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..158be443ffb6e385c6ffda4f8d1fc3599187e6cf GIT binary patch literal 861 zcmeAS@N?(olHy`uVBq!ia0vp^DImutI)+C zFF(`X)OY#r+cMb#nTtEce@u6XASUPYI{zyIsdiNZvO9?kLEnDoTT#WPFxR1@U*SlYORj^{QUXyd6D$zF~6sD7FQc8 z`9%J$+kgN4>*Dp-KN}zYDRNq1|F`WM+IOv+tg>+ahp$zCzkL%szR}3u-kzV0d6xdU z)X07N_FYPvwdZEeyZ7%8Pf6|BxqJ8G=BQ~;-@bkO_3Kun<(a>J{P6gE^yjNrt1iEM zQ5+h2zfM(IU%PA3?Ag+%7GKP;k-N;CT_kh-@y8iyU7HP`J$~#w|FOlturP^q$>bix zUox)s-vplr>o^~XED)Phn$ouUfsO_DxnJA`(*!JDGZct1TXZwdQDr%2#W3e6!?`4e zbk4@jd<^M^4VxtnL^{nW_Pxw<^6kt`cT9XI{CV59b+KjSwOc=H{Jw9WeOAr)^234^ zXZ-#B>-JfMhfYn63=KUsXW7dXqo1G7>=w`w>wa6d`uydWSI&z(e_OUYLg&lQy%LS# zeG&_F*no~3ez4 zo;??`8BPBF{Tn-TvyS)WDbKo%w=O#$IjwZ}UH$Vl7u=6;h+5mV=)&`xInUC&iUUPf zU-gE}0_C%Fe}A6$=*@n+)hCxnv~hf!8&t2l@}#)9c-=A! z_rNFnO;??Kd$i-7-VyshD_-Ba|1@jU)@$#z&V9K)?~7-cZ=Sx`rZxXr_7ojKN~PGD a56oY;ygOg5QOXL;HVmGwelF{r5}E)Thp34F literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_yaml_0_8_2_rect_mesh.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_yaml_0_8_2_rect_mesh.png new file mode 100644 index 0000000000000000000000000000000000000000..89ead01932dce6709758c494f249cd48b06b59f9 GIT binary patch literal 1238 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_qY7o-U3d6?5L+GVD`!6JT)+ zyzqbjo}#C7#a0A=Tch-b&Cq00$*a#_zkX%E@N;t=!=L+|0!d0OGdL90oH{6H{yoEC zKmYvs-IiZxTs^z;_?oy)v)4U7qgvLH>7GSpDC9<$vt< z|7n|letmt+JcLm>?hg%dy7aBao11<2qJ-Av`PrtG7QZrFEqyz%q6e3^(yY0vw=Ld2 zt!4G>;Qq+FbE?j~I#wnkr;N*yH~S9Fd;4Oo>cdyht|W(&t;ucLK6Vh Cz3Hw1 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_yaml_0_8_2_rect_mesh_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_yaml_0_8_2_rect_mesh_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..158be443ffb6e385c6ffda4f8d1fc3599187e6cf GIT binary patch literal 861 zcmeAS@N?(olHy`uVBq!ia0vp^DImutI)+C zFF(`X)OY#r+cMb#nTtEce@u6XASUPYI{zyIsdiNZvO9?kLEnDoTT#WPFxR1@U*SlYORj^{QUXyd6D$zF~6sD7FQc8 z`9%J$+kgN4>*Dp-KN}zYDRNq1|F`WM+IOv+tg>+ahp$zCzkL%szR}3u-kzV0d6xdU z)X07N_FYPvwdZEeyZ7%8Pf6|BxqJ8G=BQ~;-@bkO_3Kun<(a>J{P6gE^yjNrt1iEM zQ5+h2zfM(IU%PA3?Ag+%7GKP;k-N;CT_kh-@y8iyU7HP`J$~#w|FOlturP^q$>bix zUox)s-vplr>o^~XED)Phn$ouUfsO_DxnJA`(*!JDGZct1TXZwdQDr%2#W3e6!?`4e zbk4@jd<^M^4VxtnL^{nW_Pxw<^6kt`cT9XI{CV59b+KjSwOc=H{Jw9WeOAr)^234^ zXZ-#B>-JfMhfYn63=KUsXW7dXqo1G7>=w`w>wa6d`uydWSI&z(e_OUYLg&lQy%LS# zeG&_F*no~3ez4 zo;??`8BPBF{Tn-TvyS)WDbKo%w=O#$IjwZ}UH$Vl7u=6;h+5mV=)&`xInUC&iUUPf zU-gE}0_C%Fe}A6$=*@n+)hCxnv~hf!8&t2l@}#)9c-=A! z_rNFnO;??Kd$i-7-VyshD_-Ba|1@jU)@$#z&V9K)?~7-cZ=Sx`rZxXr_7ojKN~PGD a56oY;ygOg5QOXL;HVmGwelF{r5}E)Thp34F literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_yaml_0_8_2_struct_mesh.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_yaml_0_8_2_struct_mesh.png new file mode 100644 index 0000000000000000000000000000000000000000..89ead01932dce6709758c494f249cd48b06b59f9 GIT binary patch literal 1238 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_qY7o-U3d6?5L+GVD`!6JT)+ zyzqbjo}#C7#a0A=Tch-b&Cq00$*a#_zkX%E@N;t=!=L+|0!d0OGdL90oH{6H{yoEC zKmYvs-IiZxTs^z;_?oy)v)4U7qgvLH>7GSpDC9<$vt< z|7n|letmt+JcLm>?hg%dy7aBao11<2qJ-Av`PrtG7QZrFEqyz%q6e3^(yY0vw=Ld2 zt!4G>;Qq+FbE?j~I#wnkr;N*yH~S9Fd;4Oo>cdyht|W(&t;ucLK6Vh Cz3Hw1 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_yaml_0_8_2_struct_mesh_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_yaml_0_8_2_struct_mesh_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..158be443ffb6e385c6ffda4f8d1fc3599187e6cf GIT binary patch literal 861 zcmeAS@N?(olHy`uVBq!ia0vp^DImutI)+C zFF(`X)OY#r+cMb#nTtEce@u6XASUPYI{zyIsdiNZvO9?kLEnDoTT#WPFxR1@U*SlYORj^{QUXyd6D$zF~6sD7FQc8 z`9%J$+kgN4>*Dp-KN}zYDRNq1|F`WM+IOv+tg>+ahp$zCzkL%szR}3u-kzV0d6xdU z)X07N_FYPvwdZEeyZ7%8Pf6|BxqJ8G=BQ~;-@bkO_3Kun<(a>J{P6gE^yjNrt1iEM zQ5+h2zfM(IU%PA3?Ag+%7GKP;k-N;CT_kh-@y8iyU7HP`J$~#w|FOlturP^q$>bix zUox)s-vplr>o^~XED)Phn$ouUfsO_DxnJA`(*!JDGZct1TXZwdQDr%2#W3e6!?`4e zbk4@jd<^M^4VxtnL^{nW_Pxw<^6kt`cT9XI{CV59b+KjSwOc=H{Jw9WeOAr)^234^ zXZ-#B>-JfMhfYn63=KUsXW7dXqo1G7>=w`w>wa6d`uydWSI&z(e_OUYLg&lQy%LS# zeG&_F*no~3ez4 zo;??`8BPBF{Tn-TvyS)WDbKo%w=O#$IjwZ}UH$Vl7u=6;h+5mV=)&`xInUC&iUUPf zU-gE}0_C%Fe}A6$=*@n+)hCxnv~hf!8&t2l@}#)9c-=A! z_rNFnO;??Kd$i-7-VyshD_-Ba|1@jU)@$#z&V9K)?~7-cZ=Sx`rZxXr_7ojKN~PGD a56oY;ygOg5QOXL;HVmGwelF{r5}E)Thp34F literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_yaml_0_8_2_tris_mesh.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_yaml_0_8_2_tris_mesh.png new file mode 100644 index 0000000000000000000000000000000000000000..5391cea7fb0fd63270648b634d89f9ca9e841604 GIT binary patch literal 3613 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 Cz3Hw1 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_yaml_0_8_2_uniform_mesh_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_2d_yaml_0_8_2_uniform_mesh_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..158be443ffb6e385c6ffda4f8d1fc3599187e6cf GIT binary patch literal 861 zcmeAS@N?(olHy`uVBq!ia0vp^DImutI)+C zFF(`X)OY#r+cMb#nTtEce@u6XASUPYI{zyIsdiNZvO9?kLEnDoTT#WPFxR1@U*SlYORj^{QUXyd6D$zF~6sD7FQc8 z`9%J$+kgN4>*Dp-KN}zYDRNq1|F`WM+IOv+tg>+ahp$zCzkL%szR}3u-kzV0d6xdU z)X07N_FYPvwdZEeyZ7%8Pf6|BxqJ8G=BQ~;-@bkO_3Kun<(a>J{P6gE^yjNrt1iEM zQ5+h2zfM(IU%PA3?Ag+%7GKP;k-N;CT_kh-@y8iyU7HP`J$~#w|FOlturP^q$>bix zUox)s-vplr>o^~XED)Phn$ouUfsO_DxnJA`(*!JDGZct1TXZwdQDr%2#W3e6!?`4e zbk4@jd<^M^4VxtnL^{nW_Pxw<^6kt`cT9XI{CV59b+KjSwOc=H{Jw9WeOAr)^234^ zXZ-#B>-JfMhfYn63=KUsXW7dXqo1G7>=w`w>wa6d`uydWSI&z(e_OUYLg&lQy%LS# zeG&_F*no~3ez4 zo;??`8BPBF{Tn-TvyS)WDbKo%w=O#$IjwZ}UH$Vl7u=6;h+5mV=)&`xInUC&iUUPf zU-gE}0_C%Fe}A6$=*@n+)hCxnv~hf!8&t2l@}#)9c-=A! z_rNFnO;??Kd$i-7-VyshD_-Ba|1@jU)@$#z&V9K)?~7-cZ=Sx`rZxXr_7ojKN~PGD a56oY;ygOg5QOXL;HVmGwelF{r5}E)Thp34F literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_conduit_bin_legacy_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_conduit_bin_legacy_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..b32c35258aab3cd8d50fbc488b25a868260fca70 GIT binary patch literal 3169 zcmdT{`9IX%9#^{g_E;Ku9x`Syg=#R-AWI&Z@ema*gC>Kl6D5N}vUKZ4Q3a>u>@#JxY9U(R`*_xtnye9q^b_er$3wUYh~`kR=T zn6&jd3kNZ=JzBd1*ejY5swf^26O%e_ZDEd!$etVOA&(l%fS$yvpF3>cqbv8W9}Anj zjgp}N5Q*?5&PZ&2vtj9k1hsy z@c*+!${Yx69J2krzC3%iJyR7#5B=;Znj-L&5!s_*1M}f4*pKEktE1pEM(y?Y<6-8& zv2(Yi8hjcTV$6YweA(a!5OUbU;hRQ21SA~7$`c;CROYV{kb%X}A98x$zO92HV8?n_ z)Ac_H0g!~Crj>ICQ2<|6zCHImEo)Ap{?7K7j-NdeZz;<`nMv6LYc10fSI2{|v?X6e z-lufY$?n2Q%7^9;BWzFPbADEv41(}M}G900Lu1QivOMvz;d}k1#g4&t= zZq=P#i}xVg(;Mkm?+Y(?hUNkMD2eu5P7mKX<|--*=IZf@bl0o{jh$xhe)h*K_@Zkby9%B8seA3o z9Q-3$Ipv_c=d0AAuGvZEZSNNgY{i#lQN*fZ!h@Mf^6l2=o%5F&1%%_62;OJu0rdeC z<%BHDE=EZX?v(gaIZ++NO8du|NfdDqqcCx8%-Z-Cm)@rr$b?xid`x(#vw$}tv&fwD z1q~L;OMt)pL&&y8h^YJng{P!3Yu#UUduk|ar8m4X;9JKc zd@g2cc<18I!T0!C)dyyM;#rCpCgs?Kez>))LjC45JW@F$dJBCya6+rT41d^s zc~~z@R6SBh*v8h2VBjFV7L#W=`|29tCR6{f-E-xJZ1-2h^a_ZSqN>ygYu7HajEdaf z|77UeBkOb&w*0KzHdbas8wNAnDpn<166%`BZFqvd%3R8hQB^)32;#?b`+Svh8ax|) z2BL^lzhm0@c1yxVT0ow0oKDvm$vgLEz!)+RQw*1jo*2}#=AmM;AOY_a%!s%cTqV~z z8REXnrx@FnLZ~*4RhX1zAsp&h<^)I6V|$^XU@hWyU?$E3ACHsykrLSYcVQ%;DIE)? zxxmp1rIElWL8ksn;jRoK($pmLN;Gy{|6)@*`^p&TvCk&Ke*S4jW#wF$qcii1<9c1l zy@tM?fsWmTElj{%GeC}$V{~-65=({N^u3bOP2bS-BL0P4i@XXu{dhC-*~FU*%$l!G z@lI0wI|}pKgr-HeX7>2a^Oto&wAz`$KWUhz#r!Uc@fe2Q$NPB_>&j@)^LIF&Iv0Yt zFw=d_#Bjd?uI)KG&=*mMiHLf8C;IJ-=4ki2t8WO3=RB(rhcTpixVZ~z7H5*5H_B>D zZ!Ad0>5Nnb9B8T5DwDFQu2HLm6|l{=e_g8k(0wXD#L;R7ryk!Zf5gwq>Or`$gl!^T zs6pvVrIUvbB_)!}-xVuCN{nOO}Ov^wLm1oQFB0$ zoxVQGbNATgHCT~z|}f(FeiQnEJYa!TKk`Y^Z=wZYFV@b^2P7TFPvA5K5=qWsF- zvW=*LZvP&W7d$olieX%6540P+IInU>vt@fteM6sWZWfaVxiQVRdvw%Ry~A0(WV6T_ zK>u3mlHu0nim3fHB~K`@nk}PZ8~fR&+KmE*ID39KZE8NNv9*pd$ zFD;=EaiZ&KQUiYcvCEC5#EtYPRAf!Q3IhgTNI3Ir^b!oZg0w5W12^T2U9)-3E%Xre zU8yqb9H(K~dZwbz^EFXl&5X#Jp|*>`n#K8YQElTV^O`lbQCq(_CXJ5Gi8FmM&z z6JVwG3|GRmL8rt?viAg-)h!^V1R0^S;?|vewLl_%`K_t2<$cbwhnZ8NolQ46=Eq{6 z81XsU{Z)CY+1bs9RW>aU+e2pLdz9qN2w#f{c1`RoM!PcqDRz8;HA0bHM9pd~q|l`J zMcbA~*5^m6@pK&dlRnr^*vPd}Fz7P``}y5!u?K?VIDSuK!~kD4@zFQ4lX@>LA1ccI@#kG=Ur(%`R4N&68feS>#|119yBpVT zI*QBz4_Nz~!g{Gj`=gy0S=J75l?rhYH9~Ja5_5QztK0jlP7Sl>*CrtLx01A|okw^y z43GfjN+cy3U;(oXUHgrJN&iq&n%M3mc)o=5bj%^+kQ~}1NB8xl_7aM4Yz(7o5_wKp zJBd;~V06IBP+tRDS!;M1Eft#?6tHOSni=bQPRi0|;^d&UKw?d~Jj|{7k3=RUWMNWVRbNf;a(y&y}ZVg*3M2f^?Vvf?iU%2CF6@Y#U=miwk-eY$BAr} z+{vQ0pWsB@*8GufC&r^maYS}&p=8I|y`bP&{(hS*Z^^H;$B+ur6YOpjTsg#MuY2tz z2GJdNMC5}uF{2?qRZh*SAeM16FR&%e0;sf(I7}X^#v2A{?)oT{ns^6<#Zk5*6i8k? z*jn{<@34-EF^h)}l$sc9`$#53%tn4p+~t(lb?VZC;qbPR(y5d*+XI6D-vPCC`9;lR z2rF1iMzm4OQWY$tFKhba$q<=a(YdvZw6_{yzFSjj0}PL%$cX&cO@xdr>wrUaUa(O$ zH0UfyIz^4q?&Dbkd|1hUA&!D*h6v)R*IgyZsM`Oanch0+rREi$a&lE)^mP!k{>#>) J0(0fwzX2qo;Y$Dj literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_conduit_bin_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_conduit_bin_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..96d06d7430efbd7f6fbc5191f5d79b03c17a1ca8 GIT binary patch literal 5294 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_conduit_bin_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_conduit_bin_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..b32c35258aab3cd8d50fbc488b25a868260fca70 GIT binary patch literal 3169 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 J0(0fwzX2qo;Y$Dj literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_conduit_bin_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_conduit_bin_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..96d06d7430efbd7f6fbc5191f5d79b03c17a1ca8 GIT binary patch literal 5294 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_conduit_json_legacy_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_conduit_json_legacy_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..b32c35258aab3cd8d50fbc488b25a868260fca70 GIT binary patch literal 3169 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 J0(0fwzX2qo;Y$Dj literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_conduit_json_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_conduit_json_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..96d06d7430efbd7f6fbc5191f5d79b03c17a1ca8 GIT binary patch literal 5294 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_conduit_json_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_conduit_json_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..b32c35258aab3cd8d50fbc488b25a868260fca70 GIT binary patch literal 3169 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 J0(0fwzX2qo;Y$Dj literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_conduit_json_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_conduit_json_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..96d06d7430efbd7f6fbc5191f5d79b03c17a1ca8 GIT binary patch literal 5294 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_hdf5_legacy_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_hdf5_legacy_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..b32c35258aab3cd8d50fbc488b25a868260fca70 GIT binary patch literal 3169 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 J0(0fwzX2qo;Y$Dj literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_hdf5_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_hdf5_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..96d06d7430efbd7f6fbc5191f5d79b03c17a1ca8 GIT binary patch literal 5294 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_hdf5_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_hdf5_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..b32c35258aab3cd8d50fbc488b25a868260fca70 GIT binary patch literal 3169 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 J0(0fwzX2qo;Y$Dj literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_hdf5_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_hdf5_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..96d06d7430efbd7f6fbc5191f5d79b03c17a1ca8 GIT binary patch literal 5294 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_json_legacy_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_json_legacy_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..b32c35258aab3cd8d50fbc488b25a868260fca70 GIT binary patch literal 3169 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 J0(0fwzX2qo;Y$Dj literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_json_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_json_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..96d06d7430efbd7f6fbc5191f5d79b03c17a1ca8 GIT binary patch literal 5294 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_json_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_json_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..b32c35258aab3cd8d50fbc488b25a868260fca70 GIT binary patch literal 3169 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 J0(0fwzX2qo;Y$Dj literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_json_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_periodic_hexagon_json_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..96d06d7430efbd7f6fbc5191f5d79b03c17a1ca8 GIT binary patch literal 5294 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_tri_beam_legacy_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_tri_beam_legacy_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..1679bcc21073da19c0db2fd0825fd13b74319e82 GIT binary patch literal 1110 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_l;cPZ!6KiaBqu26kNy5OBRH z{@nig4^@p@zgqIjUR{e~wulMJDZ2apFO${%SL_GMlv-wRD5^PibP6PmGDpLKhKbM=`q`>}J~>(cvXxnZ+kE7zP+%~^N%j_kw9dWpqvpFQG`FXNn@ZNA;@ z#~$w+F}rsf9deI5^z7EzT0y(7LT19f3gND$uA=UmE0H%lYG?ym8_pB50z|tDCoDd`6;7QMroUmTuc#4mE`B&JNG7&_UWVzUw>3J zFX}ja_=s|Ncwvc1dV1jX+3umD`uc^HlGW8fRWH-8z31iQd-T_KHlx|Jre|>@}~Szp(r3=-3#SBk9|JeVaKqv9xHl-T9u5ybV>Q ztLxQ7b2omnxp(i9bjrim~rlIIfmuJibq^H3{1(K9nW^gE~QNqkld&OH|GM^eok>eQKgbN&@>oay81m-*jPgg&ebxsLQ E0KpmbUH||9 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_tri_beam_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_mfem_2d_tri_beam_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..647c9d1094e0bb00c6e8d79ca490d30a09fea461 GIT binary patch literal 391 zcmeAS@N?(olHy`uVBq!ia0vp^DIm%pyp z`~Kgo;c@YAY}lfb`6)?7VW#HxUv-mo%dPL`Z9jPa%z3#Fen+?l8#Fs&HTT%V4?9%X zKQEA2e);dgwus}8Bd)J)j=Q<5@A1cf3C?RWr9RKE>waG8b9s4lx^AU=5-SAWPWt;+ zTXvuA-L{C&Hq%ls&l2CR6aTMw+5Pw*g?sx>r@r~lKjZ7HbI&*4zWe=_!0Z1X8~Jhh b-j1Plo>HR8=l)s10A}!X^>bP0l+XkKo42aA literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_poly_2d_hdf5_0_8_2_mesh_topo_mesh.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_poly_2d_hdf5_0_8_2_mesh_topo_mesh.png new file mode 100644 index 0000000000000000000000000000000000000000..0316570da1959a8fe45830d8400ebc219bc2e906 GIT binary patch literal 2432 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 uY0wOCxhVrs7I?D%Upf0OYX8q?W&jeC{l?r|vw> literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_poly_2d_yaml_0_8_2_mesh_topo_mesh.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_poly_2d_yaml_0_8_2_mesh_topo_mesh.png new file mode 100644 index 0000000000000000000000000000000000000000..0316570da1959a8fe45830d8400ebc219bc2e906 GIT binary patch literal 2432 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 uY0wOCxhVrs7I?D%Upf0OYX8q?W&jeC{l?r|vw> literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_rz_cyl_rectilinear.root_plot_2D.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_rz_cyl_rectilinear.root_plot_2D.png new file mode 100644 index 0000000000000000000000000000000000000000..a0b89b996fb0f316e3c9e20402d31e8f2ae3dea6 GIT binary patch literal 987 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tIuo-U3d6?5KRbIdyIAmHj) zdf~6X%!@k;9><<3#%#Uz==`J1w6gCER`y>Rev~P-%-~Q|bL!|6NE*(}blV52#$TJf zpIL0XSI|25{dV(dyEq4@zkyB_4d&nRPBZvz&HBBcKPoHR;Tg?!Xh TuSPatre*MS^>bP0l+XkKP|H9H literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_rz_cyl_rectilinear.root_plot_2D_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_rz_cyl_rectilinear.root_plot_2D_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..b8e85f72e8022ae81b6b2dae49f98ad8865e7971 GIT binary patch literal 765 zcmeAS@N?(olHy`uVBq!ia0vp^DIm?`&-*& zWG-xbbw{%&VS)SymU%COdCw%c%P(1V*PDP?CN`H;PBU~CAn7XfpgX?3BKTF zLm9W&`!Hf2ck7-V zl?OK^D(Ai1Vs*qyK7Q|={?FgMWcU1Wde8ZETFsGf!tdiw2A?(-yB|@#@LX(eSdHB0 zAHOE*yA`JH7dfJ>E{8_FVdQ&MBb@0N0LLV*mgE literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_rz_cyl_rectilinear.root_plot_revolved_to_3D.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_rz_cyl_rectilinear.root_plot_revolved_to_3D.png new file mode 100644 index 0000000000000000000000000000000000000000..493abf22e0d4ca689d03c2737912dced2612d833 GIT binary patch literal 2639 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 TuSPatre*MS^>bP0l+XkKP|H9H literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_rz_cyl_structured.root_plot_2D_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_rz_cyl_structured.root_plot_2D_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..b8e85f72e8022ae81b6b2dae49f98ad8865e7971 GIT binary patch literal 765 zcmeAS@N?(olHy`uVBq!ia0vp^DIm?`&-*& zWG-xbbw{%&VS)SymU%COdCw%c%P(1V*PDP?CN`H;PBU~CAn7XfpgX?3BKTF zLm9W&`!Hf2ck7-V zl?OK^D(Ai1Vs*qyK7Q|={?FgMWcU1Wde8ZETFsGf!tdiw2A?(-yB|@#@LX(eSdHB0 zAHOE*yA`JH7dfJ>E{8_FVdQ&MBb@0N0LLV*mgE literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_rz_cyl_uniform.root_plot_2D.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_rz_cyl_uniform.root_plot_2D.png new file mode 100644 index 0000000000000000000000000000000000000000..a0b89b996fb0f316e3c9e20402d31e8f2ae3dea6 GIT binary patch literal 987 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tIuo-U3d6?5KRbIdyIAmHj) zdf~6X%!@k;9><<3#%#Uz==`J1w6gCER`y>Rev~P-%-~Q|bL!|6NE*(}blV52#$TJf zpIL0XSI|25{dV(dyEq4@zkyB_4d&nRPBZvz&HBBcKPoHR;Tg?!Xh TuSPatre*MS^>bP0l+XkKP|H9H literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_rz_cyl_uniform.root_plot_2D_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_rz_cyl_uniform.root_plot_2D_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..b8e85f72e8022ae81b6b2dae49f98ad8865e7971 GIT binary patch literal 765 zcmeAS@N?(olHy`uVBq!ia0vp^DIm?`&-*& zWG-xbbw{%&VS)SymU%COdCw%c%P(1V*PDP?CN`H;PBU~CAn7XfpgX?3BKTF zLm9W&`!Hf2ck7-V zl?OK^D(Ai1Vs*qyK7Q|={?FgMWcU1Wde8ZETFsGf!tdiw2A?(-yB|@#@LX(eSdHB0 zAHOE*yA`JH7dfJ>E{8_FVdQ&MBb@0N0LLV*mgE literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_rz_cyl_unstructured.root_plot_2D.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_rz_cyl_unstructured.root_plot_2D.png new file mode 100644 index 0000000000000000000000000000000000000000..a0b89b996fb0f316e3c9e20402d31e8f2ae3dea6 GIT binary patch literal 987 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tIuo-U3d6?5KRbIdyIAmHj) zdf~6X%!@k;9><<3#%#Uz==`J1w6gCER`y>Rev~P-%-~Q|bL!|6NE*(}blV52#$TJf zpIL0XSI|25{dV(dyEq4@zkyB_4d&nRPBZvz&HBBcKPoHR;Tg?!Xh TuSPatre*MS^>bP0l+XkKP|H9H literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_rz_cyl_unstructured.root_plot_2D_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_blueprint_rz_cyl_unstructured.root_plot_2D_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..b8e85f72e8022ae81b6b2dae49f98ad8865e7971 GIT binary patch literal 765 zcmeAS@N?(olHy`uVBq!ia0vp^DIm?`&-*& zWG-xbbw{%&VS)SymU%COdCw%c%P(1V*PDP?CN`H;PBU~CAn7XfpgX?3BKTF zLm9W&`!Hf2ck7-V zl?OK^D(Ai1Vs*qyK7Q|={?FgMWcU1Wde8ZETFsGf!tdiw2A?(-yB|@#@LX(eSdHB0 zAHOE*yA`JH7dfJ>E{8_FVdQ&MBb@0N0LLV*mgE literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_1_05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_1_05.png new file mode 100644 index 0000000000000000000000000000000000000000..5337a03195601c43d899a3a7d6f9cb0a118ed2ba GIT binary patch literal 15401 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 TK?pu?00000NkvXXu0mjf0gKug literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_1_05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_1_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..eb7bc9e4766617bd0bed9b229ee3549e8f922444 GIT binary patch literal 5836 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 W=5uo0FC#|)0000 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 TK?pu?00000NkvXXu0mjf0gKug literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_2_05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_2_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..eb7bc9e4766617bd0bed9b229ee3549e8f922444 GIT binary patch literal 5836 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 W=5uo0FC#|)0000 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 TK?pu?00000NkvXXu0mjf0gKug literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_3_05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_3_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..eb7bc9e4766617bd0bed9b229ee3549e8f922444 GIT binary patch literal 5836 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 W=5uo0FC#|)0000 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 TK?pu?00000NkvXXu0mjf0gKug literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_4_05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_4_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..eb7bc9e4766617bd0bed9b229ee3549e8f922444 GIT binary patch literal 5836 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 W=5uo0FC#|)0000 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 TK?pu?00000NkvXXu0mjf0gKug literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_5_05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_5_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..eb7bc9e4766617bd0bed9b229ee3549e8f922444 GIT binary patch literal 5836 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 W=5uo0FC#|)0000 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 TK?pu?00000NkvXXu0mjf0gKug literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_6_05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_6_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..eb7bc9e4766617bd0bed9b229ee3549e8f922444 GIT binary patch literal 5836 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 W=5uo0FC#|)0000 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 TK?pu?00000NkvXXu0mjf0gKug literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_7_05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_7_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..eb7bc9e4766617bd0bed9b229ee3549e8f922444 GIT binary patch literal 5836 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 W=5uo0FC#|)0000 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 TK?pu?00000NkvXXu0mjf0gKug literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_8_05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bov_8_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..eb7bc9e4766617bd0bed9b229ee3549e8f922444 GIT binary patch literal 5836 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 W=5uo0FC#|)0000QPBInU-% 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 E2YYnUZ~y=R literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_boxlib_02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_boxlib_02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..735f53482db109c6e1ff5c10ff4925c875e9807e GIT binary patch literal 9004 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 R+r$w-N(>@eCT#HQ{{w(dA5s7S literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_boxlib_03_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_boxlib_03_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..f456435a7ce52149a9a314edbf87b8e195db89bb GIT binary patch literal 9718 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 T$qc?pg50{Hq5KYO@%aA$bZs03 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_compositing_01.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_compositing_01.png new file mode 100644 index 0000000000000000000000000000000000000000..6147ad6b8c3536e5c4bd2917f1764986c5358a63 GIT binary patch literal 342 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}VAV=2I#WAE}&f9~Gygj3 h@|iCHGDks!IIxsd50E!_s``s eUjSs{26a58Qy3Um1bngtsqu96b6Mw<&;$S~8x#Ei literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_contour_multicolor_02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_contour_multicolor_02.png new file mode 100644 index 0000000000000000000000000000000000000000..7b523efcbb2bc74b724297e7bb529463116dab40 GIT binary patch literal 63642 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

    2A=+p(#n>b3A!j zy5n#(ou4(C$p{R?(R9cyGV-!C%TiNcFOGvM2wJ$bMPAna@p1l(hGAA^dH?u0%$bB` zS>M{5$Tdn-osX*8niNtuaEUP}Jvg#0aMrPEpWZAwyuXk2i5X_NRH>ZDv&hotN zckg~Jl}-TY_xqwKavaAnj5rsABV-s1faQ6^i*(b=GF0kTx0WeLI`tq%4jIkgHzVGvMu?h$PaDAVqsNu0bN1qGM zKiPk$bcR^Sioilv1QxO)u#gpjg{%lHWJO>hD*_8y5m?BIz(Q687P2C+kQIUd012@6 UiMpwV{r~^~07*qoM6N<$f@$)Rw*UYD literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_scale_02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_scale_02.png new file mode 100644 index 0000000000000000000000000000000000000000..91c31b2c6696a693f5831d8521301b67eaebdd4c GIT binary patch literal 1907 zcmbtVeKb^Q7@un6R)ZN~d~3#GEUhR>kPXLHW}vFGeLd(XLl+~52AJ@4~8zvsPgwvV@~ z%4*%!7z{?m-Ho;jgITs7d7BA4J-Z!7Im7AV$ zh2Qo*(*IUUgAJ1FFGkeQC!ZU7N9)cmD*?|=Ld;IM*}^$p6QA&7;SD1rBfdm3oMidk z+t}lC8yvP@&RHFqunxpJVd+4!W1|wmSj`3B zVitX%TNOcGSSfALjnzH_{M8P@23rqUA)1NsmI1HpDlT|KkJMwj(Lf zz&s3Y&uJuMH=-dOPFv5`;4`?$R5WZ-+V^@MjS#)BWx#aKFas$~`c%8mr?tsPF-(KO zA4-eH;*B-IKGB4h0q=T!lyy|7-M2dhWeIY1(v(MzpjkaM37xQV1gR(nuc(@1SW%Sg zhcqQpI}OjqqAOcMuuAb(XhLAa$8DCnZ{`^0NUEN;`f0ChA}84`uRmL940@jA^Diad zh}dIZpO`ZDYLu0;1KuG2^vPN%dmmRgoK!rl-YK7-9F$*`sR@l*c(mC^#}nF3woZ3R z8Rmk3t5L~HG0S<7$FZS60(<;zL2G$pco_qW>}+>0kV?zN=tdlY1Nul^95 zGR<2j2&;K0!wwDoQNRhSls$jLnH+3vjmLNJIZQS|EMHk0nsv_UD&OMx{Pa75)C*R- z$MLVM+k)0|BFDNLu2nP_6s+7$*Xt0Wbs;7NC$zt-xqBY*E|Cz*V|poi0gQOiLof1Q zTp}tpge#j%+z`J(cY;F+oN4-PjO*X|!*N8$uWlOkd(|ZU~<_ zB>uX%&}d1?D!1MBw>69RII3mEs5MCA`5#JGl4OZQ@7)d7wC3W>iGX1P7zDa)$97{l zISVIXgW?bS5EW6c zfv8DOS*?Op5=;RaMm7kuHm}FcH5*rMg8unb@Z1%|o%REPb~M;$6Dq4%L}cy#t%3z( zxDCiCXMxN#;jNqfS==bdAN(+<^npyT_hVppEG+s)Ark{xPoHT`Z7f!hJcTmj#Qo6tV|Ew)IJEtDv6*zf;J9=s?D@b)ec2@IBATAT}nHosOQ*i3l&#HO(5I0BxsUgtkxoTb}#EnouG6b3#s^-Zd zZoC2#187%vKwf&JD`bE}+o_ue+F9Qt-aOvrVfom6L}A;!OdR8y>Q|Nt z39s*wrVzyHWIut0x*+*7EV4n%{|{HtzuZj!2cA|7a0%0nWHfk!%M{~I_oh`+Lr(t% DW26|s literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_scale_02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_scale_02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..cbed4263ce549b2bdf68baedf7eb66b8d93fb284 GIT binary patch literal 1927 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 DW26|s literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_scale_03_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_scale_03_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..cbed4263ce549b2bdf68baedf7eb66b8d93fb284 GIT binary patch literal 1927 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 IX&U^00C{}rS^xk5 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_01_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..6cd76f15085648fb932705a070aace2c5a5fb8e7 GIT binary patch literal 6854 zcmV;%8ad^OP)ecwN8?d!SDjCc_lixLy1be)n!jo3Bis7>t@1=Ktwasw!B0~rC_7rz<(1Nzc7 z4?>l?sRPGSlUlVL$DkZ1c4f(O(lVi_%63}8h)vU0F0gBo8j&+|?q^?DAJ+cuS!d?V zoEdT`$$%CJf;@Yleb)Z$-{t%Jt#ytv#_;yo+t6?J1b&>x+pzXA-iEc0@iwe|jJIL! zW4xKLCX?*a%YS?IT7P|G@+MAW@56snKK070uRr_Tcb@p~U%&F|jczB7!_ycrhP1$d0j*Y! zcB05X_ns52cJ$CMoNBeAbMJji;Cq8$^#{}EzINrw&wS&BKe<9$5c+6U9kYzwQIr@e zd^q^tdvBoB1Mfe1&#~_5Gslk}ZXG(*dIKh3k2?;_dfe}P`sFL%zK&J|K0;{@COgV) z|F!tCLf&W^hg!|RKYix-(Yu-ty#M4q$GfLbA3u8J&f>d+ur@vJ^&x?W?`<9{cX-cs zOml~U!e9(}NonVA8q2L_?4Le;{OBRUcjkcc9Xzc4dE8E~?~$ha#!~Ph_?86U;pPM9 zPTup5+r@W~u*BoOapgO&qcVbEvB&Kl)0Q)Lx**%|6%M{mtJx5I51hQ`9o^HXj~_j{ zS9}Kp>%zsqKL5wH$NBjF=1p(ENj2|v=2^|$GxvgNr!%ed;^1ouz9Y>C9yoc=J>Ao% zkKKR&;V|^rHf{@6zd!47k>hdO=eo;H?&4g#pUG`sv$O{se2w_`fB(^6`lWYmKlc_z zY2|Uh_wtqRTt_QHpN3Nm-15yI2&R3xHVTwe$>_->Pm*Hp>HCIt;o_{SYy`W_@<1@n zz3kr4-22IR*7J=w|2=z!)$dQA`rKcf|HE%xc+IQMbKkTW)|FRZ|DFH((z9RvuH$jLTGQUAxWC7K=L||$ZrFm*MD6g{-R-$= z-3`_YfBL;ApZfZ9|MPqO>w~Qx$L&4IgTi#1)2O1A!h<#hpeWm>Ecfh&2kCKh5AEY- zcExnNGZEK|pamKthzTQ4DK+N`TVTERdh*!E|Ln_O`M+1b{Ufv@3T{1qzjZLp|J*8; z(*oPeXhR4^aqfY8R=V-r%gn&a3-gK3nrZJO%ZDj@ltaofCIc`^vh2>&-AQfEo$l`E z&yDM9=S%I92j&=*28D(eM4-h7LkI|4d$X)K@*0iibQ0p*bdXVw$@&yGDEpWioOb5! z%yqu%+xgz+p1%v|xlH$EznfVP+TcL|E$|?Q4ix0xj_;p=)oFQW&$TZ6uQiMzhtflJ z@s{vTK!zEU^(k*q_Am*g7_-&lcAxa_&ay`qw|xED^%`Jn!C3y$g%~_&ao>rRo!&nK zD-8AB_l6t+4>Cv%Q^S}F94@$wyhpi?*`ORiDt@Iv-EmB}Vo;9j#bBTf5qQvn5JG4{ z$%8+0a;K|o&4xj&?Pc-BRx`*UHB1bX8k~o2qK`v?NiaRib;=FO0Vb7O(V!MR?fu^N zEf|!@C=a?~UQ6JC4@=++DIa1Ay*D=m9{PtXPk-|&21bxTHVdwVoQm4CAhT1CD{!Wu zNH9Ij8fHw{qfDTX8EJgS*PrQ1FouI_kPc}U{Dgvm3SOZw6co9v#K2; z8}ChLrFHhi{91?Yu+H4q>YNM)y_~5c2MtYVL1CQ{rt${}z<0nUFmk~Ka0q=E3|@*E zU^Xb$F+Ip2lUq`h^HcS1Q1&U$Mwy_cn1FFSu9!trY>Q%37|Wp=oIP3*H>8H#-f92=s*5^-$xvfVA8ug! z;D9p_9oK6Kw;EZ;DQhC}2|JTmL4vjx-4DHT zr&?zYEa2zvUwUTr8e>Qx0ff%7q`$FbwmSURQLH|ssv@4QMDs-0WdbgQ&OBGG8sagk zi8_ucFbVWv9X4PHnS6$x<9Y}VH%NJ+t?EFwNooW+3?R+R;ZCIH!@9Q_(@-=Og`sfh zWb!oJC^mL(K5!1zf+KgpAqF)SYI9vRff1xeTos7HDv|;+7(x$j!g@97TAG)$L8|V( zw50%S)r!HAn$)DAf8WaC{lW57rc}?+Lb&mCG$Xz?mP1C4 zHpLTbvY99bH>+;uTti+j|2aCdE@F@+3Y0QtS{>CX zI>A?zK1D1{#(v6-4gp;a7%UU7cZ{CxyixWgcjGU zJHc7Kyx?qGUs(Ggswu%DKVI21ZVt3Y?m$_ETmRoGX3nqc-;EVsX|~(^-pa!5EBVTy>YK4(IhNn-XCpRyuN~ zJHSjjE&uGXckT~XsJ*+xCS)*%G4!1lMvN}e34V(4C^bbu?vr_V(1eEQhKV4^XKl(x zXKOfa(p+}lmCVNe+7s(+Yr|iijw1=@9Y=-YB)+yyd3ZFt()Re03&~>P>V>L^FME8+{ruIZ5N5}HU za@%`rd(_+Fx+PVc+a{?Il(VFgP0M0b8na8Svm>mBR^IjW)jyXxM$nYxr{z(2l}VT; z1b7C&Aj~m}+#~bIJPKVU>4t!__dgPwiXpOl)r9F(M7x&HTyh+|KC0xY*}U9w#Aid; z#gYLxCBha`Qwa@rPQ!-R(L2{VyI58VufqyNR@y=zJdvkX`PEM9Lle`45akhCY956m z^T;%r-ZZy1q?@*16`{4BD8-1kR0XvsCX$HlMd}W^=Y(@v0b~h0S4{OKwoDyTqe?v# z<%9RUcR60(H>@+Q`#OO)$X`eK6639v4`JwNp$2Hkp$EOHGh~`o2gCzErvZf~_sA59 zrc|48sxFwu62gF33fsYiDYWv(9Fmn8^DP^er$PI{~0S)meYi_!#txXerv?4M@CC!3TG1VlROjUhL z+p$cfBpOTBb2Zx3$%$5oD2NQ09rZf3L?{-L3MqW>%X}A7JHj%?1Zn`QLdP0QB2P0G zaG?}_eF)^aTNP--Zw~@!U>Xpid^~6uv4qI)0S_*nd*-#z z*(z4-r713EqnIzr(P}Y!D|N;UArQk*VuMXbxTO+`LySG-SIV|&DkW8;F_PxoYAJ!;$M2q*)R3_nMkDl>UvK~~0W2gKGGUoFUOamJRD zNv)gtRjx3N%1L90O;v%{=2nY|7;?A?x|Rqjo;Aq2u-c7O1KQGwXc!K)I`FrIe6f-R%U1VD;w$QY|*UzhO8WMl0DhP7I z0^d~mZo{#)$dMFvT=S)#s1rg%oY7t(lsH(cxkO@f1R=&258jNqS!cWfdJ8Gr!yYUo zWhF;PoI5t9xn(yDR1jf0Qg4i<+=SF4El?#vL0E#=T5VR=BBm0pd{LR9xQ3-xt2Uh1 zLka1TP|n2+eN=-ouKF*bqNxD%2$c${x`s7-CuK{c?jl9H8?2VsIoCe>;@X8&Rdq#2 zgy9$_7)UiK=$xP=DhVXL4JohP!k34x%gLzq1|sKmZX@HBXsCZ>rg z(N-c@rz>~R3OkZ&N_3A3{?1RFYs5S5pIHFQ*WuCd?v5y>dKQ*i-AYI)6^Tz`(1xI- zQEqB37f@r?8EdyithV;VmJ`B8v-%^f%uo&SCU`edwz1g*BUyWk4^Azqh@y@QEr|t9 zc_2YX#BEp>aF-75lBS!zzgpFm;6q0Q>liXhgjzvphz$*)=4#q#Yc07Ms%!{bm+o)F zdA-&jZZ1ZeQwvCi6m_@F{@s>^mo`KtUP>`sQ0pv!b!O$EuU~!Imz$eNO=5(a4XSs+ ziWu6oqBd1bHGM-=R`;BVrVZtW!&zsn6O@t<>`OwhQOuWgIFO#&2nJ9}!*dQPjj?rK z$05~$j=+jbqKs_7%F=>bX929H4pu}6-6gfh2*y$$E{XU{#Hoy^rb$I@A`QAoZo9TM zSJNWFMT-r#B!tyA7(1&Dmh!q-memSdGT=aCB61(PLbtZ5DtMJdb}l1M{^WvMX928Z ztux1hPMQyLMPG!bEp;W#R}Gay9&RGuvgC9+(-~^DL{PIaz9r>Btyis6=1re##*%mwT5j7s}?B?Df0!j&H`AS@Yo^kuYraY=*s;Mq5^(Y;M<}?;~X`qNSPrf zSs=0&z|z`393J!2^+MvOC*C)4h%_A`mQa;<);(-DG?wzZ?kbm?Ww9Hr3c0E`tHNp> zSBngr7BgYA-KH|vrXoiu)TH#dGAlEn<#&$#^nzMv0W9C^9FNaVHZB)I)q1RBmM3;J zlJ<%3n4VpN>Bx@Mx`P`@r*E>k>#LAU`p)CWDShg==FMu_raVEmkxI9dYB|Ok7U)DA zaEuuchEe;j1+~rsSb(2rODQF!nna^iwPK%0wCFmrYba|49S19Hf}RRT8*9tW&Zu&z zxq6~*W@zcRH=V#gnN{j@NQENMo1#VI96uGaA60#FR4XKHA{P4UTjhtG3y1SYRjrf z^<@Uu4SSf7g^F}BtSC6a8cZ-Tvaa9bB=)+ z6Jtt9F;jGko~71wY|U!a9&6LNqEN_PQuHB_XPa%4X3Ju0!-`rNQ|6GO z6LhwfTHP1&C~f0-w1rg5sl~gJO2b-GP2^$&7?Qrm2S4`FcmK-|FC?`XR{O}=An&F> zx}lo#j4~Kjh89EwA#Fu!syQf;U1K5AmN!|4E#zLa%}z!|ts@~UfdV4Rh_ZwPFG1yK zvq>$KpjVO7)jHB<^%pxeb6gVT6`jhwhcF_&&U+qtUI1Nnf`) z4Ytc=rCt;gX*yKjUYRVsdvZX1qqxM+?4T_MWKxKFtUXC`^+HzTw zYR_Y2RcIwXCz6B4l^N$ZId=c4hyMLzeiR)HEHCc151(E8%L}R@TE)73>};(XV|-|% z8?*vikeMnbB$C5YnP)Ux6^(>rd$!(e3CH>dH6|vH$qRIbm*STWsm3g+jwIZ`5Lxj# zkf$_+A;mf?hfaL>nJ+E9P42PL&|(-H3jDSxC=HZe2_VwOFYU}~z~ zr6)DeSn8x&-%rGdV!2qYUA}667|~cZ zrqv1520mbEw)>dMcD~qAo3R*_eLc$2?%oE`R_Qe!{>|Sw^PxxfMQTs5mQFp$&EKpV zCoY#vDrx(0*F`vVC0vbA5hg~*G<+h+#XW27DmDM+D^qEt<1|%Aa?8G)mP<1-l0S7X zp(&)iY_m?TeK5PhxnFpO#C-RlOSd66M1m~gLM+;TrCm4@1rfd*;98xTs>Ru*J zgREAn)?St*#@EhRH_=Mz__(B65El5kKpjafHlSGN*!`z|`Qx9wHBx(m72kKV{jSsN z-~6WPq1%GVO^Ai_9b+S6p(Xn`EZ-Q~s0gpbn__&*2ourpXh31A5S+?VLfzGwI{Vv4 z60Lk`M&{BatffO(64pJCp6I<1Wgk5aKJ;6kJp9x93+nFJ)2|%mz24gM&tHA=$+Z_= zC_x9PWoXLoV0(YQv$had3w@Q|uC@|L$Z1vWJfkUMiU{L_A~%&ePG!X&Y0D4gn+ep5 z(;lzAg1$=RRhv1x5EVp)yutqI!vHftkD`D6pFj2PfAQ!oliDk+dTd;{uzLRd>K}YQ zd3{xBR7VO{f79ct@6FVbLQA#QmPSjxjw4M_ zxyrIvssGRrXDEAK9oL7@C%MW8|INq#*}r@Ic1Z0TmL2Kp>gwk||D)gj?eTXnmj>OG zu;odluMI7bP|um0m>gFnA$#uMeE4#|>e-CSu1wK@VT=^S>% z?&`k0Sf$Zq0a-|Hzv^Y&1-EMC9)I-;!>cTLl}+i~!DQ24pL~_0_nrF4m%p|zrGD_R zDr7LeeEIs5Pu%#*v!lyb0KEjuva>mmNbk!=5I3T^%Y#aUKpP^I#uy5pEF|+Nb*1xa zXEYwKzCv=9hDRgA%S3bbH%S#6EU%pS$d|viU!{JhVAUh<_t&0(?&|M8x%Sl;$`ai| zEki@7g;H8-F|@A3sJ1)3xzo+QS1C%nTihr0s_nZuq#l=FVQ`H`iJwbjs4wYnfa#+~ z(XT%F=`#=STdD6f4*sV%H~#Fx>KD#m|IAbA&Atv%%M#j^bRL@Gs#_MG1A%ClBkC*> zqcj)_pVTAqDHPh{+pp030U^@1={rGvNOFybAAkJkKKii(ytO;^qpsucU%Bx=p1t}FLb%-4pd+N3d;zCpT<8dcG% zs%bv)sdxYCZPhfpj5i0C9pmp`x$)ey*Z$iR<5w@2Il2W)k}H+ePi-g6cdO01N|Baa z`abCpHL7A(a_wMhnq9`53CoUhGTC_P;tzi7vEECP1Xg4}gS$;NlDgemmd~Zjq&?IS z#-vyI*+&khrrBk@`LOCSx^nsIr=Pg_!n32xSMbmsX+nE|)K6{DC`GEd^h44CYDj*A zqbConrrBk@g<#o{5Bk?X_tfeio$tMLp-8CIM*R&ryUN=n4Y>5Tq#KlLEFU?@nr4^r zmV;G~jTbMh{_*+ifACbg+Se^qOJbHrK^k&tm86HB9&k;w%XsU;vSa+}l^b7u_S(}= zjK6=mOwny?kLbjh8R};1iGaUcQ+1CSH@Q&4ugy z{a<_Z;s12NHO(&L#{*V9M&G-9^)pYb{pqu-|L4luKl#VM_RLogyr$V@{FuSAqZssm z^vu(p_y7FLsh@cxKljHH)|)kU`x%3`$CmN`0dpJn0hY9kvj6}907*qoM6N<$f_SlA Awg3PC literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_02.png new file mode 100644 index 0000000000000000000000000000000000000000..c2de1f7b45a0a8b0372e292602b1b9e94c392084 GIT binary patch literal 7422 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 FV1lt8lOq5C literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_03.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_03.png new file mode 100644 index 0000000000000000000000000000000000000000..8ad29e5c47dcfedb498c8e22a858606a100b7e7d GIT binary patch literal 9558 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 TGE4vbQUG~b6`69V$=Ck@S1e5r literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_03_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_03_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..0441e5703fd27cc4765de82f6c197c2a30630f04 GIT binary patch literal 5651 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_04.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_04.png new file mode 100644 index 0000000000000000000000000000000000000000..2e557d512b8056fef5eb0462fcaa705b2c7c6976 GIT binary patch literal 10241 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 Y68i=R-TRJjqkRA+Idw>_%!jc52g=@Tc>n+a literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_04_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_04_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..23f4152f914bd5a24007dcdb317a839a0b8ae946 GIT binary patch literal 5697 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_05.png new file mode 100644 index 0000000000000000000000000000000000000000..c1528694b5b2855e2db2583d367f0435e77b18ae GIT binary patch literal 8154 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_08.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_08.png new file mode 100644 index 0000000000000000000000000000000000000000..d66988f4d955dc1825fd27ea7cc7bb87246f893b GIT binary patch literal 15701 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_08_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_08_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..b9177d474cc5515ac2a89511ad4577ea5d9afaa5 GIT binary patch literal 7302 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_09.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddcMD_2_09.png new file mode 100644 index 0000000000000000000000000000000000000000..93f66ae7469f52025b79583461d9dfc87b49a5e5 GIT binary patch literal 16625 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 FV1j&n`;-6x literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddf_spatial_1d.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ddf_spatial_1d.png new file mode 100644 index 0000000000000000000000000000000000000000..77daad4d1df26f4af339136ab70c93c4e1714882 GIT binary patch literal 1814 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�MAhG739vJBX_edb?)AfNvSsAIue=s1+5ykzsc+w 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_exodus_12_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_exodus_12_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..156e0322317694412525e344a2300263818dfb04 GIT binary patch literal 14494 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_exodus_17.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_exodus_17.png new file mode 100644 index 0000000000000000000000000000000000000000..80efca37faedf2def15f3a122e4fc1f8767f0e24 GIT binary patch literal 2948 zcmd^>={wX58^^UA#wcSLlx#DWF~^pjDXB4NWXrB0riddM%w(I$$%PAC_xnk(v#~f1mICwf@g2uq z#M<-m9a8(dK!*<|TXH86e0)NeaM%lu;d!f*CR7g}+3t-+B+CpeB$O2MyEPOpgfg$H zI$cl|r&e<`SOQijV&2290nD(NM0rF_49YjRYhn4NNzpsKvoz(8rQ{Id#2`GLv7 z8yJ_D?-g5oa_3rSncszU1p)-mgji}Vn%q*k6CqhV3Lq zgb6tXbg8B#ylD3XDpaK(^ht)%KWTbQ7>~&~tKe=wVd84@GKzG}xw&}rIfXi-ie`%g z=Vb61_T(P)qa~_lv$=NFp@X#L47TdKd^{WvZ% zsqGFAQKnAFb8ecKeG->Mdb~7T&{5WBJeMQPgO`D5i8M=1Ry=p=oqXF>lmQzfgx$|P zHRF$Q`Ru8@%2d9fPaPm`x_{J%%vGGVyNK>3F$Lm4EdAxn6Di<3Roonjp_v#MlyK)q zIJ|}U=*YujDhLl=Rgxju4#s`IoIXTaGXk3eI&oX2aTu_4g4|M-1C|NZD*8|-r+*p) zn0{-SHRH5;!}~#`-LBuJHPO&<`K}LeT)*%4#BEDJ$|=hiuK%X>@-!iUv<+ye+uhIvZ`(< zE?b3&+mdFYtEg3HUf#%yaXZ%)pQJI7F)QLDOIVp^WuD9DE%K+T&lLE`!X?0a@~EX> zw&mv$Y!oJ~G>)z?g+n_qRQ$>E?Au^tliN{4tEtHL7!g8yG^pi8*?JBE*q|`>nel$B zG&3Z|)9tI(Ye=7Q3Qa0XJ2@!gGLQLN0)+f@SJ9;5iNev{nCafSCj(v8dN@h73@zOuIDWX`AGv!F9Im3({3`>)G)EwI0&x?mZ4~!M(w4@?Tptt&L0J@ z?q2Qrm2Fr~?lZ=odHlv$a(8jQztd`R_R+<(kqpnr-r|Ica}K&a5K{*~AowpYqm~ug z5fy!QR$Rq!o7H%*^}PU*8F^#ZO|3tQR$7H$Rw*QZvfQ3D)!qED5*^r}QIc3|{rkIA zG>hvY6$iIghz^BHewgqfAIOn zILlAGwDXeGFXvYV;m4>|Sp#DS+R8c57L!^f$$2mQLj&b>Q$x>qlovS5-C&Tpc+HI~ z+fe8hXRO2bnpBCaK`!HBby#B3>DK7x`&Vl@gVpQzwj#@zAQy=y4U{z{`IiBHsJ<94 zE#*~fHxX8;;V;av|MKQphl|+aubwWumK%|8-y+ZGtO2FtWv!Ruog2+Y z9VgQ1fIx9)bXd@^o4ETWxv1S`O;Qct|)z0N*qRT&!%ryP*P8Z3b*yq7*DUHTz5_(`QJW} zXJG*-$)P`_;{&el0w4smmfg+WOus2QSIPwyZDp=@D%2C~$$(6FF()gqDgMMc zM1V5+c7XK|J{x!cIHJzzPv(aWEqEmAU{SLo12Rb(&dZBRCq*YtK9Y&UJ`GJBEHHgCjUGw40Y_Js=uY3OmzMd|) literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_exodus_17_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_exodus_17_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..184c2f5de2d2dd612ffcc7b6383eab90efe9b4aa GIT binary patch literal 2931 zcmb`J`9Bj51IIDvV&n)z?aSoI6)Gg;o@1??6B2WL9XX2c+>Mr2!qA*;IZ|%J62sRy z$6QM$xt6n6>$hKacwF___Y@_kAt^ z2geBmnE6#lbm2xpP^j#L^nFtE`b1Q4!w3x&l_{Ff%5+s;$TShbY-4P%->d*SsaH6b zKU2M4dYpQke4LV?_Uy4^5f?mIR4Y68EwmJh77Jz0eVFqYU3VYR|5ew7oW|v@_h?KQ zlA=b}hlug}g$M2{a`q|~LrrG$8^E}nN4{7HK_bc3nco}v*Z(HPcuL?Rdw7z#K+X(#)-b+w{Y3A<2w)Bu!IHvIvn z27rFt0Ll{BmmW@+cs+uU@?R4lKJ$4oz7q?U5MI@-ZFFNQcGh==v+K@`FS&qIsO{Ha z7oD}-3q=80Qh5{LDe>~2E5DP%cA-I=U?tFnTbGRpePLyH8&fMvX!#&&M!&WNMtAIP z>X)_q#j52h4|ok)XaO$Pd+LPWX?Kbb8p89)ldzD_uMYC~TZ%;3T;n}C!^96P`Qp?V zULAJd=(oQyy#k=ZB{IuGb!ZYvZf5pj;DGEDOT~p9kbHrqrwML^@7(da=Cj^Q zg&&@L_bTa?>)RK;Q{^TS5N%{ydKvjIDR>kxWGS}FJ|n-l)!ZTL#S&`q*T5UhijkG0mj0P0QbO0rAyJV=g zm4=zWd4}Va3Sb_@pL?(XooF#}@`RL?)3%VLaW9;&mLFB^JWys$0cRuFz@mlT=HM zUe@Wh-~;UQ9U=r`iO+memzo-LXtMISu`zMffT9}-Ur{xE%Ek;p?HPm82rF+I%%xez zn)ofB#@fm;ON_F^D1L<7AkDOO^s-an*X)GO>5VlFW%N+eHd~vnDbz06`mw?*JuQ5d z(iyL4gFJT;nH3DNv0p45Bfb#Zx$+aaV)!L`Uv6=Y`9vAYc4K8jNK;FKXWtm3=W&+K z?qqsaHjh ztk<{Ny5=9=z+pJGF*Wm*YJI&GI<2oN>&S!=84pJM!`c&Sq=kMxGt9Na$=s7@4dzwi zy3%|gQk24FB4;9~5a>Afatl_UzIWr3=bDqVPxbg|U`VGaRt$5>p)1e-%C!}#f+lC~ zuI@-zr+(F!*UwHfJjyNXJvb4z0eoYm<;45_-p*v3a@zY3D-kl+X~SMiE!|_XI=8}| zx__&L=2x$2sGx^9jB>PpdI|^sE%2Hpyv3eTwMNyeNz#3wTH>Bo>cw!r!{QWUx`pti z(SEZ1wC1d`Y;`Q}mhx(RHPOPj?Im_oiqWrHrDgOkZbN0{j#i%EJi!uzw-~Hmo1?fQ zeVBeH$6%Yw&*1lJAsG$-t=FOt~vNPr_(m5`fOme#RjStEhvKmd}=fCefU*O zkQ97v>?+ISHnT4aoxYvKI8_?l6M}f8*r+yO#o1#JW1Qc)$*5GL!q3h|Uv3&&(#mr# z*hZW|$n~HL+pAYqm%tXdDssgAa^^d0)o_Qqnx;Ss2CuZ|sCgkZgNTy2qjl`HLs{lR zQC~d~ZKqv-odV;d8!wc|#AQ9u&C_X};s16@C(|@3k~G0B-x=Cya{nJgwUkfCu{FWm z=K5f+5)6y_sOA38^On@r8AU&y4B#y@h8zn^-5e*`Z2DbF^@Db6Mp8S&A3ycx{K~v zrI^HV%gq-;XE0W#C4{}?J9`M2Al!uLvSG7*{o^5L*Q$p6#s1{N&$$((J}O9KPCohH z*}Xy%(T!QAp2AC-U1g(S-nV;SA zZ*oDXwmT_AH-cu}dRkRxuStCgtV=Wj9ADT@+WBR_`USzNNXdbmAM%u&h42IjDzY(M zE^)8}$5ZSsZ+S{keK8J60Ay^mGgeE=!XwuDsF(cxa;byM=V^)kpS_xGkzTg4xJw-h zm=nVawgIeRd>m*8H+L>B)LfzREw7fr`?#QUBl?AKJTUlN&Qx7^#ICZ_Q?4Y%g zrdS})59!Mrp#d(Sc)*{-rFS>6M#P;dRkfgM_E+-D}d=d&)7{k(u$+v(hc|yU@ye1#y)s zdPb8>eK7mT1<}EukF66?@W9(X_ir%`dAdA_R+wRrK8?GqMagPBE~a45Y@M`VT{rV`-A75vE;zsT zPIh>(AV9@>FH7zV`AwTh??$XJ-B+)U+H}FVGIav3?{-^AN?=9=pz2<);ubgCXBJJ| zl70I_G3b)PK=A0l*s0(muF1FEZ6A)zOMf7ff}GMoA$J3aHx*T*_k(TxjvhBS-I@B} z(7Cp$;eE^GjHz3xaHatW5`Pb%`{V}h2bibenOG|&tGzf|QCuSD7^TEHY0+*LoxLF1 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_explode_repeat_labels_00.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_explode_repeat_labels_00.png new file mode 100644 index 0000000000000000000000000000000000000000..4b8e87073d19dd979426f1955944d36bd65037d2 GIT binary patch literal 17076 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_explode_repeat_labels_00_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_explode_repeat_labels_00_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..eb8398db95b735647bc68a5ddd6d68141c5140c0 GIT binary patch literal 5892 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 Nqp7O*x7ziY|%mji44;o++2m~Dnu7~fe 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_00.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_00.png new file mode 100644 index 0000000000000000000000000000000000000000..2bccfb5aba4c7d308a567ef902ef6434834ff059 GIT binary patch literal 13786 zcmdseWmg={^ENKQ-Q7ZPcZXm>g1ftGa0sx$-DQEGixXsVcX!y}?he82&;9!p&v{VIn90-^Z(ZE zF9~(sMY;=S22yN?sh_#kH^AUq%MSgFw9P4nX2+NyHx@BskKtl|TFVJui9!+rziV#JqN4bn7o*t4C+qp>Dw)BMbD!z=JZ9w8J&=`Wo^m_-~P&GzfR z!$z{Rc5|>^(Kv0Qh`y$sOiSC4escB$q2eIP6XMI67_hVG0x$gnR~-M>L!|X5Cwa`C z*itFdJ^)G#${<~|`ue{o{R%0Z{Mw-PYbSY18r|^Y@9`)AcqbDeApx_>qhU=)j$p%K zX{}1kV*T@TKrQ5#<~ZT=)d&esfY!Q2VUpGhxqc4aWRpbWLa+r)vubgV}A3nx9 zV7oSd|99u_?5Jd8AXM}0j*W{bMd|4B`*(tyiE4K;^>>#|L=UNNa6LXAp%jz_k$)u8 zZCV{uxvh|6?RVAR+U00JLjyTKL;Lp*vG{!^Y2RKBMQ)P7mT<+=EhL$Z^1M@=(iJhg zjp%w-aT?KvFz378`mY*egWv`PU~H)ANTquilavgoW#E!1H{pbdzstbiBH7R)n~MMJ zXV0(gSL7oJoC1x+zr8q4e;7(LCq4ycI!o@)BsfX|D25^=J%edle%W!>GEVd&9_k31 zU|Q+!e9EX06#i*BLaO{o%aHzTBPOvs6xo^&MO}Rx4&p1oN{aRluB@#Ttn$Ud=Eumc zyTqZBxcqEmRtQ(dJDu3gII{Iqe3?=b$wnMUv>>tBs#coM|D0hY{(WrcKU?r7-X+Nm z=gG30(NsXMJI4O$o*?Hz&w*%2&4}+xKhRRp$Gy2oXA+tqj2)@Q`CzLACzg-=m76oB zlDaR%@BZ$N$^egEawnB~<3*1b%MenIkEqK%FeEMa2_3XDn4s&~QyAAU$SCjfTQi(Q zLcCjmn+mx$Wq>xUQi}1-4qI){HMHc1NzDjDB7f`v3?j)AzF^&!BxaprKcb11tZ7V`yeS4ghf{|3g=q)RviZD>@ zMv5(gWhv*akVtF~v$qc^_7!@U6TL(x7?aRTWQ|M*1J6RnWF1%^VmCH}o)3oZ19%l} z#t*yhr5?pQUvCwM;$C`B!ekO#we5N5=>M4BFNu&O4w& zax}jwUqvP~#!?NS?we&LB=k??)xbxIc#wqMh1OG^NCCTAC2o>`E?l zyG+@(7i8GQZG_Dhc_0&Bfua>3g&uTT3RH8KjnxLc&Ez5M>aYJST4ICmhYTwnOO`S2 zGykfY`Tom*av6kXc%^K398%o*61H7w1=4U;i&|5wwp2GL<(LIH5q`B9`&-!iF+lEN zzOF{%?pwu&VpIXDL=4^>j-u9dL5c@{lD<{jp7Q5J2i}tar@Pz4hVr}1kO}y!kQ><| zMe@#WjGzab&cD2eBi_XS6ayu?cKeVbq+VWRuo20{BP0uA*!#VP)^_AE869z0%oD{= z;!9IVstwd{R0Ld_f1)%C;oYW z|8fw$SF>?daJSW0+&)M;2R^FQ@)yfrLVx!0ckKu81Jn*;rNF}~hz-6)6~p}0$ZMx3 z>OKn@LUsm3*N}5h(`+6VDY;DQ9gn!VT}taQ>Pe35iPQAalDOb<4)Pkg{vl$U*gsT8 zDQO#SK_kb&F;V0R79&o>^H54R^9hO^8Gw9n6})H0me*6!Cv9VZ z@)TEkF>i%xir#0jgYWLzSb;I>K%3o~#W7BVLbN}pK-bI^s~ji|6G$0@O0!K!5JO|S zInnhv9s3{Ze*Kq2{7y45J37cdJHjdJ^5Sr=K<4c!yD%~IxQ-^1pnzo>_$6FET7AwugsT*a>{W5*)bv-lgONX1#YD6hQ@BR|Mc$mb(N@UNjK>V#$3F|IpKyjcEB_O^U!KCl;)xXovZU z#90A$oPA8?YIKHlXs9^T5LLJPK7e-^G=U3jUo(jBu`Yv-8~qm~NPP7NkL~)`!67@; zo~kQH?abENZ(NbS@~U!0%d06`2BOlCO7g^y=k_+R%g=tl(R+OqC4P}irsYw^>z z+PQB64iR*vwqmN_x)jeaZp7orRWXvGb9gy_gjxKeJ8WaZQ6(tAC*hJRt}sibW=560 zy@D}wKCOPm#rWy5y0MG>5bu#a0fK{y(Q$gc!epD632X!_JE3g=26G3SJkgLNC99dfb)Z9lP@(t}((ZPheS zMY!ds!II^^1%dPf|Mwn3sgGcB>v|_hp-ExoryzRaMTcC=%=(0Y6lvfWb3V6FnRACx zPseSduWzxTj22uULE(hhi~6!2-H#&v=i+%P?rPNh?>&2;)U@{qT=EZH2uDK^Ls|+4 zT`wPljH1++>5Xl2vJw>%20cUNLwmy}=#J{f$KwzB@v_}{(+z~FtD3$0F11cHo!$CN%`Yu>+-69Gm!+IKuL|pM8yE zsB&$4F`8j@h(1C;njOUTmBI5V%@Wah;e3adGU{Pf>VoYARp6{ETs#IMR&H%~jB924 zUKjpRSc>n!p4u#0t{WwCx}C#^nk4kf4eF|^!Zw;9zU%|Miz?5`BKiKOvPa)x55Rn%xgYk5t@C!4Um$j-cGU8VN$q&F~#WiG@?s0kbzX8 z+lutzHLq^!@`I=FJH4gfAFaCR+~BlW8&~+G=qY6l!5w6BV`ENnr|oT%e?;lBQyYPK z^xFGbR$HmH5sv@<(8SQ$34U{@Q)0cqpW;8CBm5ZUO80%cie*~^%M?v9FZI4|H+GcB zKUn@SXyKjC|6v!MKO|2xb&X$1jM+S+oaR_zHbhk`a-9qPB{;}ZZ15xOUnPG7y%+r3 zXOdG|J-8}bA`CNK@25tk1mp|nqS)Vsd;p-P|B!ZBBXV!m7^AFx#t?Kg8$FhG`Cqr} z0i&4z0MgNaMf-`9TlY#leorRXN1ECHI2CszPxS59(?&IP_>uc`E_6- z?sMFs9Y)}qwnmtm_>Ls<%5bb-(Fe-%-ozRgRsmSFXLp_Gi{|U(dBX(Mh!yZw^qm&} zn<4#4zBlawwphKSaMqONb2aWA1r9ItS$+&Y`~T4P?0}?GD>;o>W?i}Am%P3M{YE&n zFx6!m$++f+I)!?SAKmpribE>0qdp*iCWL#NFl@VQo$#aK>ffH`XYI+RP7Om_!uedG zYEmV9VIPyh^paYW6Rnt!Kl)H01$Tw&DOrZnzSp##AZtg>eU52-4|c!)lTr?jW%8Fd z+}$g{c*y1q`;g~!)pMUdV7e|;b^DAiWy{H|j!m}x7|Ms8`(X@TaTx8!IQ-gXTt3%& zOYI|6o}^!q03<|W<{vVt^@Pr!vzrSB1$fkUG6fiPlma1#5vNM9=)iL4Y@wD9e z@?F?hEE|~ule@#Tk2nf z{=GkCUk?U#y`ubDty>s35p`L>R?z(2u!9ttLYekFGY0BPY@l+I`~JR>*HX@BOUM@L zJ-vip~GeBO2MEHbnbRkgy3!jIP|*K`p5l0(dc4H@`irF0zD zKqWI9MtFM=^rpK}YTC|y@tB;%I)i6Bu@Cf)tZwm-sMgK-Sl`-$_K8`x>Yb2i@@|yj z{@y8Oi;Op&#*HRdnvvpI&P30By0ZSZD0P~A#(T~=QFWzX%`?o^!pWcWc?^9q?3 z4=e+`eUuHZ#NJ;#k1lnS6Q6M2JN(bvR9zf(lN;PG&C7y3M|p6`d;(;)PYb^g&!&63o_^SR|{$S z)rf2toW7(jz)_0nNVA2{;8MW3SOO$4%Kw^S_;s$rhhT7RpY63Nis=lu_-9E8W~? zD!DYc}0138O}yE&>N-59qkGD zj_kp2+_-DA^;S47sLB?>2?Q7Mi_1mbl;TI0*g>gFrWDChgA;7CZt1JfJmHb?fCcEc z&2rbxq%FETuvC}8%S)=A&owQeuDf2mE}@;c1P0@e^-1ljw5z&@OWOe%`fzp;YW~;ac}yDV=w`ra5ggAz}$dX)_9x1^0cP z3K`C`{!Z`Q=$cp{nm27;#x_PsQ7= z-zbVo-0t6pEYyE{X)wfgqBIG@aAtmsIAq=hG>>i}i?oP5L&K_d#CplpP8PzZI-3lG zbaTi%Nr*LD|5EC?9-E&bS5~nrqljHf2WQeJP^Bk2_(uBYg{K+Et=SBooMVW!$Ltk~ zA~VUPBvfd_P&8T2`Eq=>YN$o3r0{6N5!sh0VeqCs-lN+orrSJI?mtG4%3ewiWbW$e z>Re+|hr6+YdZfxm2 zqQB+P#tqmNL7~g(-9kGBNr6Gd? zqb!FG!i-*`)mIGv+AkpuNPaeGN5Z<0!0JK9IN!=)M(EHnz6duV6;g|C5t-pYt*o9W zG`jfA_`2lP1C!?R3DgY#jc1WFAq;!r8;b*u-S}XBZtOM&X-ZUk4#^3^=N zx58igp+Gn^=5vmmO+fgQmtnhDy&x2=VHUhQxC zE-Siz5TRml83fd_oSil8wSY3Q=gj&;v>YEYZ;8l*4@!xMmXoeGZe?7H#5SFH!lsTl zqO6`l>v|&r=H0w^{60BxSmBP#^Lh!K;mM9}$#^aop3UZj5%`+rc?i&uIm9k2zEE6& z-|bvy&7#Ro8S5<8O50Z;W+WgGPdH9V^TVY2{xao%O?eoG!ylALD|`q|F(t5|A@K76!dDjy7-Xi)hKq>9B`;?;? za%BpaN6gJFlt+n{rfC9ZPt$fdwWk0G$?C#V4GBpon>3ZA!}Vp6{}`B)hS^oogYxmo zfi;mxfuEu2z#65+wVxFtmOb%90>g9t>0zdxXB^_q2_k46aC3hH4O-rvuzx{Q*vVj zrZ{?9^<`qpCU71LA&Xi+^3jUB_~;(WrQa9~rd1ep+i5aeD7f(+MW^%Kj1bC(rHEuJ zz)oqpgwFUNgDJxV7{w|QtIWyd?IS4pS!B4rU#fj_YOulz5EsYxouuEwWsq|WP!Jz~ z?S^87kX7mC(dbFaJf;eJ#~Hu#NH;SS(OMUFHn+B54DsXJt;JNz3oc-QMoU)lec{XJp&&~UFnSWiEK{<>(+~#lCUM!_uP@sri#^XvKXlX$5R!1FPE_*o3-y z(8#4sXtN_*B?hLW9;4gj*xfs_ljQ8mfW!j|cGPw&#`Q)Q?#73c4dY%esb*s6wFl!T zop-l~MZ@pz_pFGDMa*PlpNY#5rE(rprk$d}2J~4&DbccevRw>xq($wbvM{K{qIpQs{?*Am%Ey%S+Wc5m=Y)^{gp-~GH=WkObauyT?pI?H8< zz&vBbb&`4K2k8xaf@&K;gv4|Xj3vuBqe0ZF05#^jr!BH?3^d_8#op_#*EN|^X%Kur!=?%m4ZEL7qRmbXXi9vKx)+7Z@5HJMDtnak?gsgKwM2()t>O#D_jI+ zWhB_K$me8c79G3s2J}U13zd!X3|KC`^qvS@ zY`cO(VezP37Vl>cl}p{anWXA&_iFKN9==Z-Pc%`RBE~OA zQx<6VG?K5WK`5CC$VB!Ee`pq=zR@ont;vr`)@Dfeu(&Gfbi*_OEJ1y&ZiOskY(;{S z3NXYGtQQMP1>^SF%43@Ym^#m?`QsUGsa8RTDX)JG`l@RrEZVmx} zlR}OlH?y9AQ>+&|?SalocNRmwaWT2&tMJOy=Th@#W0;~UR$=B#8dGVQkG-2PEU``4 zxo%FK!QNs2lMRUVz1%&$?+Nhk>fBYDE#0^ zN8T$x$91iBsL&d0KxXYJM;*+A6$_EXRHX(00U5_CjGstMr`5i&=O(bqCl<-P1kzSs zK~vwWJb;H^zth*G^D@_a&Rmiui%l z5AZv$tY9S60U9#;NpjqHK2%g)0PMZWWiBL!`R*-zoF9tx?LVPjve4S}Y^UKg<)LxLOk|xJC8LKj1F)v{m6M4VU zoFr;mkm|(QY;)_dWN(RNgFGYAcWb;)iW9J}VpmiKp7=Y~3Y8xd)B+Tuv$XUan;z^i zq$cz|60=KbFN0|Tbl%vTQDquir{toWFiGxs&<9t!n*wC~0txXme@Qm(x=z%GtnS{= zX5#&g4vZF=2VQzD#ulj@1SKXDHJfhL9bK{k=i|$Q!24S{$LAg36U6Kuvp4C;2rFOf zeG#J>ng9uQ`!aYy`VwwRKEd=ouc+2K_m0Vh-#EvySRS&oqWpK3d_l621J;xNWD=uM zWTEJ*B{!~st>{K!wL|N^e--nutA?Ue{V@gJpOZLl0xLf;1_)U(4wAX=0G9)Kx7>@D z)187H0XO>bP2?N&jb=kns&+hHkFsiB6P<#x$4D*&s>Yw@+;F+?aT+hjo0%u=aFx$f zeVwjiaH#o*xHri{8TgU$={x5958}m&WqmQJ=i^__&k%panC7S@Iv2aHPpM0-BsnYF zdVo0_a^%}iKz7>o#tIpH)i(89P%t~#6Z$r)6Pv^ATf*DA%HHu_-a}=0b!$Gk3V?7- zvWe5?EFZOwn(q_sepI(*?F7zeyQ#i`*ap<_wAQQO;ctvmi=(&T!)dRu?*Tq|olfIv z-3OfKbfSrq-!a2)VraHqu}B$k*rY`RduoL1*pCbk%3_u!bR>VHqMYT7m}x(u0!~G@ z{h}GX74WjN6HM>44?>L&41==;4L<)`W^F6u@mCW1 z-}28L6y-Pa!kvz9$NKw&#tWTXeKUfOMG+D`mnFX z$`ad*&T_4|$O%Wo;HE!JF?1)hqBW)2`um=KIrn%0Q_ zuE}`B3D706Do^o)CLFiUq!TiRd>XSfEcC_4Ng@D{U+BQmPaWk477fN;;zG}cJ`E0= z-@mG>G(-s>{k~UjN(RWJL5po6{LL(!Vcl`bW&d4W1efp7*}-q=BdF+0d=-p|8Ga8p z_$v)uNI2-gYxykrDi%P1l2d$mgF0agsr%3G% zX5l|I(cDtnAj9D}hay_o(3D@g`Xan*3Lp{V;stbXgDA-ir06w*#xSbuD|dA>($!mORs7PHm;o7O54ZRd(jP z_b>R#DJH2_O*2Bm^kQI@=Gm@5M2m-&0ABpR!0P;u9nYGSKJ5IrQEO3&@HS0bC(-=M z34~rG*q-1%z5y%sqbN6jlvdFaOz3nT0c`x{AdXd(NGsmRqJ#e;8v~;H|cP5qJMv zDEW0ho)e*Lq=Vj>mVMV%FxM7z+SDeV(Kv3^=|=A9`rhMzy)?o+JP_dygm3p7EE^wO z+k%pj(oE1}(Svij;&MqQjy%#@C856ZaU8%twVxLINSKBFpTA#xI>!YkP z`uNDp54>zIoA#C=1tQ(1iv~dIQopS?dJ!D$4{tNLJljA2M7D5o? zy;l1@;lNt(h@F^d;bX19YLbc~k4E`|F&?9jq~>|f`0;JX)V=mYFkw?#AMRFM0BqLL z$)a;-+JJ@9K8}Ceh0Mx;Ob4!yH{sxHZuGcS!v3^EsxEING{yez)~lapIJo`UBiMaF z*(%xQ>~4^0)1-^8ZsE9De|YiL9kT4eMl6NWJZmpC_7l2HF_4^&qM559piZ| z_1g1NUY9do$l(TYj$Mo+cm1{>M@*3|g`59YzahFJ(#RLYWVbqL)NPKSYNZ19($yFD zdM%aX`^9cS6mJu{6S;%DRv3P%Lu!Me}A;(5;Vp%Yf_$XUr_U7R-H(u1gzZo8XQlG ziwK6GkCCTX#uTw@pLll6-T3DgbLH@JL*~(DGboS~WV3IPk=aTYd(VXnSr%f9rQt^) z-#tRuvwSW+aW+(iHdatyT1G34 zdOUNBoC63Y30sY+_+8?Oq)fiAJzHVOc)N5{)VV^Dp5IHokDN4VRa!C*n-8+T*Q?u- z)GfB|H(9}{&xZD3*){Won;r-@pWj}&8JyNZTW}e-L zXF4?b>5qMW1~}cZgz5hEQARre-nOH1KJFpy%DJl`FJ_C9AKy@4eMv@xN><@{Aiod! zlQnFT;>sVWvMWx~K#vA{waLLhO~IemgE?uTKx;c^pd#U1Ho^vg#jsMCdm1#aW^j&B z)_twGz5X0An*(mF=ZopR?+yD)9f6l;JPWURJ9D@r@~a}LIuoRKvU%n#`Je^A%B-Yt zKvEx~R!!!4mKF6yxgKFGjZ>;x)jnTs@6@6qt!lwV{pMj(+NPZp@q_4&Ko%0dRb?|4 z0`+<^57R;(C5rui=tJdeTZyo2z<{sAwhzlE1wHg&@{rbX!mjOo%|ENX9o6Mk0@3NB z%=;iQ>HEKBkWv!%4M^+fq`SyKjM06^{&!4$IjZGB-(nv}C#N*aL_tR+K25wmEqcs? zQxj~g)w^lNNY#I*PM1ECe(C$&5I`!k@WhEoum*asd2~0KA7QIoz3QB|Q2if0-}u#b z6bB>)w?92#!f)xV!(Ao%wm+nz7#Dc;P@pPfR=joNwpM1|R2{&aB54)BHK&?6QQO!A z*NBq0p1p19WsU8&N|B<=hNl*$Mw%i)3%X}xOGT{o#gn^`v#pn~D_V48fZ>AToAnWu z!&D=ZQj_klnw_RsMS)%*TKI&$PlOC-ylIot35Tx6yWxNn4R_ zDFTR3`%SP_QKnyn$%Cq$Y}dkg6d&NYkc=qwiHhZrAa5_dQ3BE%E_}rd5kq9NY$0t^%MVuw-#g4 zD+p}uTWk*pDHbVXt(>{Q+I;V_C&lz)6y`EqgNkmn)DE?o`OgOq$SduAl|Z|)cJ>Bo ze{K3@tt2`K$UVNs1EKy~Iu?Sl9r(ZwEVsVXB&TQ(L@3FZ(`b_}_(;eNQT8%?R&5kk z%ZS$>ZipXhn7d|=o^JfLR9$2n=HX;xrmP4T{zZ-JfsSn>l9?hGRX8q-h}$U19MiPK z7<$qneUf``w?51lM$@x}ILxW_N1O6tTFM0N7r-R8Z|2&J!N6jp_&CkC74v~UL$~Or~*Et@r8CeFLc#x0uwrtSh7tRn5 zER8}MQX?STUK>sAGI`T{F$}J7)Xadh(4mTjr^d*t(3~Rwz)BvD$0Uu*DlsW*_#`HW z1`p>LXjxs%bJjb%^Uf(8bf+H%XghTL*eXYnpZv|h#3=yjZ0Ln_kEWt_L=ZSqJ^}wA zrJ#E?ej||JCl@j>Dqhhl-?QI(;15l~+e%GZddMs3G&n$JXmCt<*tG{jkt1AtNw~xW@ z#Yfo<6c{d)R@@8hiG%$Fr2baZ-;OFL0*cDJfwgi-hR{kkk|!tc1Gij32p_qBerf)C z65@r&hsc&sPs0!xwqM>?Us=Mgl1NjL ztl{l!4_LHZ+fvuXoUm7RayUGqAWPW1*#coz&_tcSxz&QzH^ZBi;%n!1pnivA>hJGY zDB8EsgiT31SX;^_UzcW0^*@DOZ#XKJ>f8Bq>b=eio3yn>%;Wz0LQK_GSX=MP;#hh! z>cXe*{4q?qYd~hs!fz)gb`R4G0rI)MQ7K5B1}6Y)zwU|0qD(|ui(l3_i42JssO+0B zJ+~3H5w&AP*M60y=;)m4YbGO&N0ORY=D7}25Mq2LT}MqZpkR5L)vo^MX-Vc7BeQ}& z0cpsu@LZ9mm6*H$Es;4Y_NcYfTfxR^4_`GGsuB}7hQ;0WSv6{h33t-3PU<({=*h~I zRAQfW+EkxpP7}wE2o{MD1}7E&OdEnwybx$V-Nmkq%tWZZYq9K{>t}{l3wnTh+kQ#a z-!&wwDk_g_BQ{9e*IC+U8`?V-vpE7*V%r4-vueHxK}o+uFpMu4%vSN^hR7x!@MEwL zRAp5Sc%>KECgi*P>+E4F*7xJGm+=7;LH|5gOT7*eFd{iUODy2c!JeLE{57bGt&;DP zQ){~*Gg2N|x?WLsu3b8_tn9;;j@|F=U@)6U4(6U_5zvN z%MUfB=GNfzXwTA8E(n6x@ldb_#}fEujYwSnPMF#-8Eq`Dr!{*u^7#topv zwc>Gdyi2MnbT>$OYIfQmww}bFEU#weIBa_Fzirpt;dR$YbE(D+s8p_cy}9!5!0AtJ z#XiQ*XGCeYg9@0_a%3FG`hA*c$DD>~m(c)kHC^-mcH%SkaYCh(d25HI{Z;HBikF4q zxxBPp$-34%hc9!&q&|F^yvRGhfybIT-HzOrgtt(>>+QmzuZ`#Y(-5uXYYC(Sh<@-# ziRI&felK?T(d4}#q!27)#8jC%q`%8xHu7!UC*rZh_`L)2kQ*!1?b=cZrgf}VpUYC5 zc9dv?zOL_BR07J1H(Ar^@9aieM8h;OTR>I~@&Un8GzG%t3cU(1#Qv&24{i&dF zBzj>U_`Ra0p;3XfR2~{!)sXAVQw;X_IL&RJ`t2k|CE=fa=hfhPgKL`rFII0gorCLS zBksIj)&3K0{x;l!OQMF14np&fBxy?Dj_xl`97&oo3UR0sSWFKR?e2e{>-08O zpDYGS$gw`Bf}ypeX#};$8~iCLpVn(yYWb{Jc|HbhbUwUabi;^B1!Vb)SSS<9KwuuewzVKM zdccs7^SKg{SB5!`DOZ3;+8?y~44Q%*T=&TU@|s1Zmb_+;g^U*9*qQqah)JOA7Truy8D~(@}** z9gM!I-l3Jq9%$p%`TS;pWYC;6AIVm}x6{2~z^aut|Du;2{WZDExrS|-J$IZV>JJ^V zK9hQSLdKZou)WOdDBs1&FXBO_EhL%0Aq6+6(T#@EhNOZE@4GkmFM?=0sjdL(@rTxz zlTq+(N0k literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_00_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_00_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..3aefc72ad74513850a642cb55ed04d114c21fec2 GIT binary patch literal 3742 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 i7B+0QmK4M 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 E1HtJFQvd(} literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_04_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_04_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..3e09f265733c8e1eb725496733e6b03b2a43f725 GIT binary patch literal 4081 zcmV=|f$ev7H&a zI#^oAM}?^}pbMwITg6u$od%RvtVP;IM8_Hs2#+L}gqz&+nm_KnXb~hgCWeH3>#VH1 zPR`k9?{EF~@9eYBgE)?xnwl=TcC6xqCab0(AFkVgX}MvQ1|Y;0&~_}=%v7lz^0 zS6^LUUoWN9S~oX0-+c4UVHjq!+0T9MbC+Fq*+5r#Ad$e8S6(@O{P-JgxZ#EyZs_jr z&gF7(90NfR+;r1T=bd-n?YG~)aN)uypL}xl>eT~X;ekW~ot>RmTye$X#fzns%a<>A z90!n6?%1&-o6Vke)>%M0ot`pf%9=H62DrWhij3p<#v5;3xpJkHGL=e6Df8JX48y9b zD$nztdFC0QqoZTx%9RZb4Fg=?0YwWTF2DTp1q&7|Ted8jOwOA(@6}gdl~R_Km06Z` z{q@)X_{Tqf@WBVO+3eJ*Q%^bNl!31BKqB(#sk^(owY9ajwif8<=PHRFhful zFmmL`+S=N+ul%8JiyfM>fN|r-ty*#Kiu>>B!!n1gtS#>}z5L?+_bm8s^BYZlRp!u? zwQ2L(TYomaGq)+5-F*F=>0388_errsZJf1f`}(I=-n#n5C1GnubkMbxZErGp>dbHd z>>kUuKV;#$PpUZJbOqTzHvewLD~r}Ot;n@zQZWe+4N;cLkv#v{@}nCjUG%kUKIBmb zcVunLwyfT=@(&wdSoOw=E!+NLb&-Z-gzMwxaDAdSy0)=<3z-)CTesYE=7lpq%;5%^ zEI;zw{ax$Y*00(A`xoB%pO>~a?rd*y0@9EQNrWUqynsZ2xb29qqHHJ5p%b=_kdS3J@D#QL3Uh(aw$gm_WWR57x=0N2O! zvAW3Zpu2_LTiLl$TzA{DsTW_`yQ2>>S$oL%yH;#^YEjeTXPTeDr$Ue{`tpjwmB!VJ_#Q$z{(baE1U0( zGcNtk;{TFLm3pi}FDuXM?dun>z4iXr?v&krr63U$`eRvu>*M;653YP?+$4VV$kQjD zIknWI3=vs*8aFV_lFA=ampi9^ zZ0g-Jp8A*1FFhPJ3u5DyClB%lvS>wxIs)XPgQjxWX5vkEPPFwnq=Ps>CkM4{J zHGxD}C>QOaJ=_Ym{@;ctf4R7%VuxmA?ctr)rn{c}`i3{2O-CdGROh>yt8)vvuGGSn zFCTGaT@Onenvu1Kkrm^wzxatyH_Yyc@Fl`VduSKqVW;Ts$UOdw+j?Hw5SIlgX}&aV z(X43;LS;gYatb}sxRh1!@{^Bsw)gY_p`kAeP||#M;x)5oEQ*xDMtQ}|m1gtn8=mX& zY4MPdm1pAdvuB>S2+K$Z z;#Kgc-~M*}OD`U9$3syTaN?vnlg^wIYqX1Ykt+P(`|smGL(W4~7I6L-?>u_K8KFeG zcxhHWxV(M)_7C1=@4Guu6#sVhpIY16QIa@@2x6k(6XVC#RFr$J>pD)q)&CyJI=$U5ldWcI*|T)$6oaL&tCk6={42W{n?y;=aFAr`JfGOy;R)yg>>_l_Oq_Iz3HtMELo5xLqx9dS9B9+$+pqeT9Zy(JoU`^SI#|Z z{P_NCQ9shPJG0=clizr0UE4-3|JQ$?arL$P+j8FtepGGxj(?izh$OyCP)3*}Oc9k6 zrHInRX+#BykyMRo!MpXLM<>oW_m;%7m?4cl++uxS^ zJsX}eamD$+>j9_#Q!$I8B^FmQ(rhOtRvN?|=J>tG?pzKbQ|r4m)D(XJ&pWCVuhJ z2lh81dVrbI9j)C*O@4UC&fVx35g_wR4jrIEbPkY8FCIek03$L#ZM3OR?-JxsiyppH2)A55?rfq2l;Kq~x^Bs%_kZP^S21|fea*+~ zPQUbvD<8UVp96>(>2wU0*kzvq?uJUx{) zZk&74N#(?v*brL81}tKm*dn%w93q=Y6KWzu>=C&H8sTB3@Y2-Q{9wU9Z`iP*uiMox zRE`|wmL=P_x9qjPr?Rvb=bv8BQ zxnp5px2s>{LO8@4;b13m z%Sfg&e*0~|yuD8w)n8N`J|dB>*lT48va}WxCL}j1s9ZCwniwVMrx!%7^FfeghC3C2#vCkcA-~F z8)-won>lqYbXRGqZi|e&#?9a!S4w+UAF%m6N0xhvL zS|J3+6gJZa$I8+D;+g|LSa1+hvaI@JtVESTNOaMQkwqN_EzzK3Bxr?gV+;bcMrn+} zXdLy@D=+m&WBQwtWhFdWUvC2#&|pN-m%tJjjb$(fBhdmau??NU#lnl!X(5>-_1@YcsnBL5|;x z-n{lZX@Y~67|;S|p`Rrv{s!l^L7Mqnw7M90Vw6=7uIp*SfZCJvJ|m4opkZ@tX2 zlN)R-u!k6?^CT%$n8?@j_1 ze8rd;ofoGHqX$AnOdJr0L?J?c=S%-!nZa~tKTj_stGZHIDS;M6Q|}3@yg?mf1X>^> zA|DYFN5m0b**ViMKV!m_zHP=wLoa0=Kh{cBslq7K$|tORK*a@jIxhH<5s^)eK62VSz#Q9GQvcK$g=Wd2;NnuVpN0?h?pox9FWUSJ?>KvUib4d zC(*ZU_{iv`tduK{A7>#W3|KKH#wv~^bc~7$k)>h?@Vf}Q=1e~OiErLAe#GDPY5hM^ zdYRxYEou)_XfQ=D`J`@1WK{4aBSc89b95^Cqth>%b==?^E9^z@KM56z_+3*bMn|X+ z9is&@M1|m|EIIq6iPxPlarFD{lnh3CFUxjBF{8(rs3-5JFIs)~AoD zo%_iVr;V&|_28R+=?T4;<;RiZGG?T8_R&>S#v~?xELr23KCIb6NbkSv@Yl9nM^`kq z%5u%njHCB6#6N=3w;U=#(I*VcDuH2HB`_?j1cqgmz_6?m7?xE6!?H?XSXK!P%PN6k jStT$ms|1E+mB9Z4$icv8;9pCh00000NkvXXu0mjf+2RVJ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_05.png new file mode 100644 index 0000000000000000000000000000000000000000..a168dbcc1889ff3cb39a3a92db492a2164e0f0de GIT binary patch literal 16343 zcmdUWRa;z5)FlK7?(XjHPH=a3cXx;2?z}*7cXx-zAvD%F1Ogt%}U4U^7$Fazp5Wl=uwlVNfrjJ2!#O!XYTKt3Nfyu0DT_@x%n0L6*h3*P_gfO zVs{)8g^s~jrJbL69Xc_nSPc{u;hRqsQAIZhiRdo2U+g5+_K^Kn_`PPg9e~fLq6c{n z^+6}8n#(WFg5KX@h%9|q!@g(zpNm-o(04Z9qlM4RCbaE}Rrw%c z(LbgN-{e99AAk9Xo|&O~%)al7e(ZB>YZbfVm}S1hB1E?4Qw)onO<|$qASfJ^Nj`PY z1zqGgH26(x6u58u9iHzDepagloh<8^yr(7y{#l#rdA;a0`FvRw-N&En0$Z;D9b*r8dH>aL+F|tkV=nMOCiss`L+?e;)79MP+gxMMNe!*gE_`im?P0#pwnpL0 zl0#$vgGb@(*7d+SYv3+oqyKVk!9!amF`uicK)$i(f)uO&Lj3mog^x?`StM&PVXB--Yq#|S=F_cr>EsV zbN=CY(RVvbDRLb}=!_?$_jtLpLn`{Rko*A>eFt5S1y$^B2V4dL5RK_8+-Qj2 zYmmMl$$(4x9y@n}UpKcOIvU@m8=HuR!= zRzH5!)HZx!>Hd>;e}Dh+=3snF@EZ(h@AE-!@>9#;4ddV!T?d!$znQ)?_Vn)O?W?oa zts{kAr}dp82kgm^#&3JLkF?2j!&w7&4tI@h%UL zU3^FWW|;&7xmQP{`{4%n1qUc2T-$7Z1>OS3@qSy7zOFsRTA&A?XcTgc$4q_|xe6`q zpACBa^>`#BO3?N3ayoGs4+kFeKF%(q$+P@#+K?OC)pAJvpM&- zNSA&%QcvUu3DG-=Ax7itxNFP_inrs!54+#bb0HtiCbTE#d-1FyZ31376E$2T&xPj3?z5Jk+aC{| zAx|TuA{#KBTkeQgi91h;6T$hu02`6pA7Jp?+uQep8zYCWJ+>%>e6Pq{SB-prd950u z`Zqs*{04-7MInl*xKC4H;ScTfy&l6AJ>pjJUrgWY71)4z-10!ZS~huK1~)h%`f;tL z)$SAku8)n5ql`L{Pn)1Ny7LCy35=H9`xyTSyMRTWh?%P7WdJIx2}Dho2GO zU2>Pa^-36;!5w@WJNDFHy*K&1Hz5VS5DR!7fnOB5n)MmrEa=`(5;XU`dkpz}Og7`$ zdFbdg3c6nw{k#<=B^4PxI+_r9Xnxuw{kV#rP$Bwi4W0)civ;$AaY7fNjZ;S_C*kKQ z71)1lb^VNyO`oT(Or`SFv)Yg1`-hVB*(c=DC;HPfC`g!QtKh!QCh(QVb8%|CN+H>JM3nH^yT1{R?))DV1P%2L}Z$aEM%V4&2wX zC*73M3Lh5)T;Pk=p7t;{_Hi(rM29>@i{2HZ{_@!gx_(pQ{dKo>D1wWY%G-ae^sey| z_rpeLAOD(r=f1%wXcy5$b-BL2{@+s47Q)9_!D%=sqmCd}+8mDQtJy z8Tilx9p5Fo1n%=t`kieoh@9Ca9PjYBu3Kdh8@Ef?S?B#90mz8lq*{ocf-&j^M{?owjE%7?07eO9=srcw>I*;&zSjxyGC=Pj zsVM*Fk30WnACB`M8TA&E~%A_*04?-cok0C_jdEM@a+$62$)>-9|GvHl(EaJJ5_Z# zz+E3sqo-iP%2Y%*D{iv%_A;$dJm_Mkb)~R6}E0s z;h^JWCf5`I1;BRC5N553!4JF+@! zB%mXZGoG61OrYRV$nL>yeat3a_+JwOVddKscZLPmYpvqZ6aD0h#jewKXytlPgJ(YO z`rytr^*&|d{v;{`G^jUTJE;iXCYqs}nc=z}qy9u{tAMF)X3VCa`^e!m{2$B1m?jJx zzazD;u{hbR_VtoQ)4g;hb=R;1ml?~#aRL*0eZ#dqqx}E#Pn-&737EmJ9Rd6L z4gVE_U2(0PK$~ag>~CU#+GVM+l|ReQRSc&_G_`=fF3rtlSy(k7KmZ_6R|$hCb|vqs zDc=uE>~P5PdR{;vKc;BLKj}ak<-9P9WQ3XROH%+#Q$REC$u&)-3bgyu61ig=}udHH^vM>|@S50oGs||k%!Y1qnrHd-BHs*2jjG`{=HYxiPEtXe==h_f{ z4^Qx@`TkC_29gSdGaD+chW_k?Kyd@S%zkC`J!0rd;xUD>XeOTB1JF6gb=WRl;!FNp zBq#>&+~06CWupbIx^jx1P{c9J{vHK79L|Em!dJ}y({92+b&5x?E46oJwEbG((l0A= z^=K2r{%vg4g{N1CMa( z=aTLDP&Fpaq>d4KEhyp*j`O0wEw_IgFSc+02O%tX;HOkMm#NTyRHPvN(GplDb96); z1CU=CR5a{S6Qq8a1o2|=xPmP*N*@NQxhGczn!y;Ib6Cey<`lukwP?d6bM!;UKVPN| zGrV`;OM4UYWrNLtAV7(ImK0 z_F*mXBuZ&$kvw`zZgs=862=spm<7x@qBBFH-m!*rUUg7c$NY-wg8^3ZXpaGSzzrzU$gInH6oOW@V6==B;YCw8NFeQgP$gfy zuA|h^Ji`ykbF}m&yl}2Rcl}8T#l^^7y0aCYrouedDE}!p<7|G5cd^qh-oLs1ThWhC z&rHEo^ecWZ^en_iJ0B_T1{U*XScSd0SL`YWH&mRh4H8ocdrFofMyW&jzxmJ+P3XeR zFaR~NfI{w1TLzg;KXKX_7(}DXEOBf&oJL<;g0^ydyF*!t)?wa;sp!Wd4Sh*ny!o#m zhrVRE15i|Qvy#nLFdKE>(l4R1>Bjmb&q^F>=%46enZ`>pP1%#?OHiukQDTn~3f&+1 zM!jb80pX}^VVHrMJ?1br$5<9k$Qxz`Cpb<&>X;rceZs()Bz+IQe%%ih+Vx5Q>zBd3<+ZM-} zjYm_@&fG!6wWML&{U+3Xye(|~zkS2yGt`$XYe4uvwOlL%IR%+H+yCGgrjY!@vBT!Z z=TW;~Gn%W?kTtXFZK7+hi2p0~BKE+A;_Qy9!001S87?!vX7>@DXpg|LtEw>Upa^NN zTzmv`dvrwbUNnT?feXO48?PLXD_Z(?>KnpljFiw?23v+0KsLTP0s(W;oxO$~*1d#% zDFp*N2lks@I83c(94|CXbbbl379w-ok+Fxof=$q_WC~+2XE}Qw$AYHteui{)5lMa{ zHfX^Kpj~rf9p#K}eT35^wI*rvBymK<0}5I*AAq@yU8Dnj!_0=I36(2?=PKCXgy$mJ z+~Yk$*&{W*4IYLie7psGeVD=RMe=9JgM0a?z3bQ6wHOy))MvkIpy$tm6GMxxj}lOy z(pE#lcvp|FM~6aDw6AYMQKa=u!-&eCN2s5N&zF-}?~`NKStUbG*HV-a-fgj-Q;cM| zu-zS9cr=8WM17Oi|0u7rBUxNJ_%rbJR5kj5s6Q6F4Dz_;L8xOqdZ~>O<#5O=_#$G~ z6e`HcCm|y$n~jT4$!yVny05%|f_a1GwedEE{=(L5A|~dn8a=CqzvmyO$JBD+j_M0gyP?k zvt`{}4OhC=CpJmKKWQst@?N@5`CqX)jenUs zIm)K#jXQdl(MsLOM(F8Ho%-d`kb(YHSWiaV6^;uVxB5bzIM5PX!_0obuccNe3LFTa z(2rhHP{`{(G;AqudW3{yg*by^J|*u0$vC%Jq+4?na|f3HPa)B}unkKji`k|uo+NvD z?&2Tr-Ru4Tdo{lcd3Sq{)uF1)NY!AViEs6hFO{#oE1foLWlwNZQ*fo%1QGNpydc5y zhQ?WQcUM#ZR627;Pkyi6CTw%| z<=?3S;n}l$R#yrV|IvtzaoTI3lp0GhoI&#fc-C@i04qN~W@L(WhlkTrKc8yUj%TzR zuC^s@BJg+7%rFm*aDG`c9A9KZS4@{R7Kip&)zr~h&muI*1*BX+4#T#FM|d54T^E{6 zJa2d%##PYO<#>tv3^I$&F5zbRA)`^QWsZ=SgGI(Yx^aPp3w&@zsVJdlhO32F*Wk`3 z(9q!i`Ozj*0ygd}w*A&p9L80T!7HOM%A5^yF1dwQ`~v#6pDvt0)11Suwx{BtvPMQ^ z?oHYQcr)dQH9)-zH3AbOSb^f){Wq9dNz#*19`nGaJb+iTxfs!D3)S04=2+ZH??c-9 z?AEWRQe0x6f?#ktz7+(PYDUp-q&gTli0f;Tyc(p^z4*0jG~`n9w8Ws40Hz*G5<;sz zJJb@ww$ti7U?ZpCEhj4lKE1)y>#I76W`71>Lp&$;QCbCdmZisGiu_boK-VKng+^?fVNG>Y(ix z4XY0bGfIQua8JVO%_|k3M0O^yNDf#ieECK|nrE-1)L_d=j=FMHYKNOYs;1&;4fkUM zUfsgpG0{%Ft=;}fd!0Gb5$wN4i62W}*}bbMt>8AxuwXok(g^6)TN}$Jl^C-THp}Fl z4ay~@gtn=%eA=3LQ%w9B{NZjSJDf4|X%9J@FpiQfYIh~=zGzKQnRZ+eJ{=`Bfa+Vl zQknoO0wDv41E1ibKfu167^KU{bN^w8m@Q&MvLgHyRun}htGqISG@!|asn~9i@K4Ln z6*YD{;f3xpjE+5Xzd!vjJ4ulH73D^TOv8+5(OK+-mc?NAQEAk~@lRt?-*Fcb&y~e; zmiGvqR{unPVpj$olu6OjlUSU3sz`xM_nC67z)8!R#gT)EC<*F+-p#HNXQ|$9T^Unh z8A8t`;`WN+d?&CBj{S`KjPj-xO**NcuFeQ^Dbq3*I=gKa1eM}me%8UJ1Z>P7WV>j$ zuM5aM;cbL%Uw_o!PAJsVFoV(7StuN6ysVXV5Ko8AuYfP-$y)kGYZq6dTSN0h(!h*i zre%Z^46$&6ac5|Du*+hboF@0EUDz1m5=|u+iaBS{#elT^NfcwI0A&}LV>=g4HwH4e zwm0%h@Mydh>|2|V)g=<$>{>KA^NI5bbjOo4#Emp>%p?>BZtt-CG8ze@dny>^EGe+UM>4zJ zao~-c_UyjqJvW6^|Jz;Z*4C+{hd|U(((pV>4Wt3fsyu$8H@)*0VTIOX&{58Kz9mrs z*CJ49XxF}M_%Fg`xhgodDD8SY^Qy^B&FMMlzCV7D1xsNY zrow=J|8(Mot-U2Xj$}9bwNAbt2s-5r?;votyQ_FG*l%oc!1jlO;M`_TQy*-i#8s7aLPQ3^Ks&j94{E>FITFVsF2&Dr6jL|H*s47`jh&vn8LZoc!F@J zmi!NLm{LARbefEKen)5wxHGNsgdu9La7ve{d+LS7)#$0n>sbRF|yqLKRG51?q+u3(Z;6ULc^!sFG@r39V zkg|1*^pcINMUSq3F3>QM2diH`h38U}r3_}OMA)Qk7MeH|TUl~6G8pz>Ogplqk|nrU!~bGXk=h`kI{ zVG-P46O&ko=k5}SnkvyW6k!55BLU1Frm>{o*Te*>bK13?zxpi->r{Ph->%v*9@Q-3 zFUZXDUFps*1x+RzK@GPutr}G$m~HJZ1wK=^gQPG}YU3C#>pW>N_%E+XXe~5?Z?X}^ zBR*^T1rM@4Nev@D{;z=iw<7R|`KvIUzTXUrQZXZ}3~ePf#lwYrc*k<*Qsi@k2rVec za8)Sk8E4fPIOoN4+RYNe10$Vn%*A5?feKfiP8k&W6Fx7WPUma1ELbS}H4au7*>q;% z&cuUB&TIh?zf1>|duMwu1tT-BEO{eRar>}f)R5@#lu#!GGE#sRjpH8!60K%u)@`?E z72cjsY33of#-G6h8ijqTcpmrMi_m9CgJJ<_zlw}#>p=CKf-$0_0Vw$l#08E=GCS{u ze@#B2zZidAZF`g*DItK@9bF71n|MBR0 zLpq>(6bn^Ur?7A1+7;I!pRcs5IWFsC?ZD;t!PqL3vl?xAF4qw;C1hPoM=qRD6Cbv< zA^D|vWbRhKd8~7aq2rcL>VVj3V&-%Ziyp^2A&+h_Wp?$Nu#!Qj zRpQGd3KWSVmYEB7=?vC!y}4{A8w+kwJbHo{F@|pSwVRtRHO%-cgM9P2^8)`#Qb)Pn z-&!J0)@V4?3?m#w+MkX6av^&=aqY4Vf08uh-jNK7D`)U7W)M#ULZk{FPwGZ&Pg)2{ zsgdF=xnCTy6U~{=6E@6Y;McyN!!Zxgv^^!Usk9(5Ybh8t2gB`{F}Ii6+3Dwd-e8-r zToX#gMW&C0Rrp_ci`dt=dR8h%2zF~U3O$BEr5HwIUViP=Nc}#wtAQ`aZcIi3kCrAw zu;GYZ3U|29(?Mi7;S=FVyP4Tx)tVm8a7!^ZEO&jQ6Y~SpJnD)p7-~?t6W~bv>o+Q| z&&Ou_$fng#kA|NJGnpx=C;@Ic!DD#+8cG2|Ip5)JzkR`&cV-I@7TN0L?BNeq7Mx=o z=XX+Abu+O!I1(FH=l#ZVW@miu4u2Zq^+vw&bzWiyrQ~#G<$2^j|I_%qEjH1EL!g)ECa0g> zG>&cRwSp==0r4n^v=L&41!6h57xx*7RKLs=;3hl!oW+7Ebi)_g$haVzSe>n&o|b-TDiXhOU5@RQO{YUW+}9cm2rflopbGiUBq~GZGGRw2Uti>OR|+c7Fx3^(;dmY(%#X%1na| z$EF#Uw%AE(iAU36vEYl#fNRAK=}rmjpuXjw_#T3TCyk=)d>%dge zQwgXW!S9`82>SkVR%*}C!rotblKOqT>X@m!)GVryQ#8YZhcobJ;CNuvW!FwGe}$E| z&w|-5-_tcImT-oDjye2hV7SlwqtRs&jXq?IMFR5_eImt@?@t!n#bTOI5F!F}nK%}C zEYA~`7&ZV_vWiH=+k{}03}~1eq`bJ4Udm+2SkIsg%+2aAlPAyMeU)i^{M{0|;dJsw3W|6_6 z(c{^l$3xAPa_@CKZ&NPpL|8UhtaJsN1an1s{RqcL=sGfSG)YxR00ILZxo@4N9sz?G z(#bsj_Ac?bDbu()(y3}FoVEb(#2$%SW=v$XBFa?RE^eji3y8ig;=ADs&LpFRr_e~fgS0rA@vq^3P4JPIDJyL4|G0rxwBy{dl~ zhP)??pFLw#MPJSRwp=i&nBl@rp&ND6{b~9D58CL8L$W75F{PN{w4;9u&57fB> z5BD*{8dJlVb;a)VRh%k3=;nU*2|xzUb6YFQ3byQvbYQqtbY!V1KwYcNn>JonWfkwO zOU4&b3{KnzE_0b<|b_1Mzpil-bQ z9IW8YbzB*_9F`c@;GN@~T#=Wdd5i6I>wDgx2r9bX6(92lfYXQp@tq&d5ARBQPusUX z2et0{TWa%zpX7csg5)-IFX7tFaXJYV*cNr;nf&CY=3kqN5hdcp74^;JjoGF5?e>RN zuF0t%!;6S<&g40g$Jr>c=jm;81j;d;4)fvu`~3yPz0OqqHjLgJGuEZ~vx72^2K`Hw z1o;c> zj^hKn!DI~nN#2hEl$x(i|3FG5%o)AVO};$d{7>%lT0RU-vFAB(emsC2t{y44LfaEr zB%tZo`Uok19$!Gg)mH*nu#84F-DHJkHG}54bK6{}N#iWSpVZ-y&1giq3AqEXvbM2W z;pNHwV7P?A39>UFqWBS~dn#0I6VU&bV>eR7@ISpa;MQDUO4DhK-8Qwj|m9 zx~L#UBdPgfDclLpgNxS*LJJvIbcC*A>OTSIWd>!wYzt8gT|{C|&I!1as+B6jA6Y`d zW`tTdvTl7>U!LF7XEzF0-r?^}j8iDMMwku8wjrV%FQ6YX{hkXhEi>ICwXW)(>Gp|=sTao ziq@^Mx52=!T*dfeW?(6OTcR2r?e^WL&3$9FSF5^<3mGLzqu5+$pz;>4$@@+qlLf-I z2*XhdH~ts&CK?vQB2H?-GB-+jtP9`;$E9ck^)$}|lA^M-p{gl5#&5VQ^=QiD#peX5 zAl3q@$O|wKH#}GmbZiAAaBh&n8D~#8B}HnhO4xWP5AQkYv-^i9SEB%A;`PgKm)7WC zXTu2?%Eq}AY3k}s9Ui#1Wp#EPEMe^UE_Y+F0(9}ZcEfXOdYE;pGtgm;(^ z`x-+sfTk|k>o`=vWGb6y?t0YyWTdt*bi*0BwOxLSZe$bN!>Zp*MneoGn%pI_;ZJ=g zO5wg08XMo84D6Kh9VX3s{A)hhB88>v%oRq^Rc^|?_uh$UMRLUCU{i=5EZeltsPOw! zfTk_c*9jHT^`oh{o>8Xrwotb@^Mv3qONHeu#}+r1@DKmdbZPjIA8(fu=O4DBx=S!? zqUInN?*fOd-|Wu9$T)_F0~@^0iY);;`yQ1^CT{dOE9PiPKb~K`_@k<}&k|A3?wV{a zrx;Uwsd!3@50)ERPKqknnHK!UQ@Am5a8-+cM|7=Z0*aLP9&_|k=);|ITpCB4?? z2byX|^1)ivUC2&MA+Uo(Hv5A4mcd4@2(Muo$wpm=raiCa8Oau^^~O+F0wNFJIoOh> z^;O6{)m%Ps4EAf_T?F7c6Sa{GX&S!R zKPOdVTDci+6r#tq0DOEe}=sDG+6 z6CY>d#EH{-hKUoJP_6h)WYT`ct{CU8YamBnY!VQw;jzZ2g_iMPX)trD=PQp?oY^SM zlj&hnkX6?=gigx}Nzo3n9FZc;opP8=8R4Wa8A*wN`=XIuqG2h3w~5l1V0jFemQYEs zGJCE>y7=9K1N^ahg0mxW84|pMf(&f4WI~AT3=ukHP!21PRkhjaBO9a=0w7}CXL`h1 zPDy3CGby}Gt1l|RjC~Evs~U`J7{W^AnWtLiN*Hdc2Oz$pkg2(2>q{V`fK*qrYcP8V zO!kTIgB^jPP+)GGk$c2pS-?n2FxY~&Ml)V9BNZ7dQ_tP@LDp0F6RlQa^k7%2y6@K- zmOqSO?+*D5W$HmiZ+*fOMx(VON}%n_#6VQVc-QP6t#9thwjprZ(=McAxPd}@&hWVk z^HasInxd@J#d_W>!<TY#BG35KHxqm0+PJ(@wxHd@yDvllZbt#dCz5dkfj1r-iB!sbnH;@51#H4pQ9^ zgV<2fbCiU~B1J-p;Bv%qu)xhWX_9@~UbzyGpYbpQbsHsa4Z$j*wGCMXmE8dDpj`SmD?Pncz1 zCKngB#x-uBq_0|;Mxf*%#jaR+wwYYLXxQ7OR9nx+f+vs_R&AXI>r!8*+TFq-bh^F| z&PpLOq`0le$D39yk0=G6$<}tmSQ^RqtxHpFuN@-=*yxvQnsHOPCY2f3>KcmpWiiWb ziO2oIeLTaot6(NhL@KPTbesCFN-&=XeIH}kI6Ax@CJ$d7B~Pf>?dD!IwJfBI3BHq? zt!>Vc`7xSgJr;1vMbrOsSv1B0VaJ?G{2Z_&YFUOao`qb6W$GB#>f*pSIXig#*o5~l z>lKfv`Lw?tEn!bM7OPoc&aI#t%NCun$IA80PW$R-vp7HaV2kUVip5PF)|}>(&dxXC zndXUSqeM{4FHHc=sU+H*wA{kMl$RpY!zc;&r*UAccY$XY)3(WL%hb+Q)hW|fAKCg{ zmgHsOwUDCvjd^mI@lI+tXJX%i{XOQ^e!k32kyeplsba?}uTg`ygy0Opp6_#4Q)>#p z;Qq`FU3=w5sJ!Nt$>y@B^!o|uyOf%fAYU4mlSqul@=G!$>>-;M zfp!5;iw`}#n8_hA>xEJYWOyPZUT!$o^Ran0*Y%KutL=Yx4g^b09pKP!&EFY3ms}j{ zm5P8D6hR{cawrl_!A_UZl#&}YmC!h?VZCc8&Z+5ojx9-<=&qngnfqB3?3}lN=a45V4FIm*aHkDfd1J@F=LY0J%_B zO=|#n52I%#1ddW#mHqNY>B0s-?SV_7*M8z5b#{sERSgv)$IYUV{lIGld)`=AG38V> zI;j?{dLq5(mh;$m2adB}jHQ)?@wuk0wl6ukw)*wOHPwU(fbNVT)$|e>^H=<;AgLMz zF9|I(#cSC)^CVH8)_BRPU#sP%+Zp^(Xmmla<{3jVxNJCAvJf2dns~5s27qy+c7VVM z{ThHF$*B~*hQJ|h@+Iwiwc28r1}i;JX_R%G*BN7XTx&L_F3tr7`j?ci8y2p5cG@_X z$Sm^Bq-WuC+`#k`Xn<+cf#U?U3r3C7&jy+&n}ZrbmGsDb``qqMar5 z?@E#TW{YV|(MuPrk z^B^ws#}pQ^C>^qaESVk)!`n3l+kz~29Zh{=ReLM{_#R9iChP(|IY?!sHx1#Mx?^SkJqNWzZ(RC%K)m!jH6O zGY%d+y%qhMSLs5=_lGML#=o%gbR=UUTC0K>gRL`%qM;(R3uVcbRBAMpVQEMR6Q-ai z;oKxJ7neU7s$w#7yzLZGnSvvRq&Y;pP>7X2luzGX|JnPov;XR|W0Z-82P0~=Yqryf zg_}rEMXB48&Ob}RA@mbpQMng%2z&dfHHGw`4`h@+v?YKZJ%~rbSk26QZ%#l#ZOQBj z({fGEXz%py?PkVG8o$6KM?&!Ir`nT9BiRcznmOKNn*0cMJT1YhML1l<)Bt)ny5e)- zzneGxs35CZ(~KfObWY1+WS3^BouW*HT&fw@Maj@}jEo*{z$|tavdeHH6)Z2^-?m@S znIf`=(l~IflaOO6cWPRuqn>m{?OHpsL<0~oWMRYQSA?lcBp{82a(6i*A=|Sh^#C?7 zD4B(*yz}8W(=uxx*z&vj;yfr7_&S0cTzE24zkB$z{SX6ttmCB}ia0gP=ND-6GiCGx>K$*GX*AiBTFWFyc$uvA=C6YGGo7ld zOF;1k3KGIJ2Zm>Q_QTzotCv^g@zFL()i84%HK??N;%3EDjr*?*d2(m+=no1a9qZp( z#D3BS7=Ruh1@ySWOUp}*`dW5U2CCiehZ$*k)$I%dhwvOdm6)@I7JGds>F>s zSCGwZ<%#Wf$(snJsvZqn$Ow6RF3+_{xxFZVAk(Ny3v5*=%8AWh1Mz8)SN_Tq*xIx) zNBqf&Glk|=Hw~<%v7yI8b>_Bf`C*QvbnM6=1npf4hiL($9h9Ky`Yy(!N>98)I5I}D z;Z{Rw7l0+$t~XAxl+;5Gy}_S?wWczLrlfB8RvIgYT;Pbr%s_`1->m3uM$ysqbFH4j zGYq`RmXD8MwRQAesAm{IZzK^TYM(FB@{|`P{XyVtL`YjzD#H#_X>Is5RS3?jK5h^) zlv~14yzZOE@yvAhl&-eYies^>qIWIaYt2G4ic!JMo;!9fkop&eUBOt2PzIK~8*El- zg>y5$=mA?vHzG+bo>W9nMVvkAkZcO1sg>p?Gg|HqEgioaq?oSJSoWftny;&OHQc=d zE-Jfv7U=rV8?>It?1q@pwWKO}3=LDKezV#2g0 z&6vxclPuK>U~ep7>QhfnlZhUVGSqMa2Lf1=0g&PDuI^IhBj|la9(-|sTVh^ik~obh>IQbZ3r$=g6mjSOoA(1fMiv=hFHtWin)ECkREbz zxOwgGMb&o{goN>?&fo>?Hk$hdgC>G#eI%awI}!V>If~cX=8y4g7!UiNyMT0Df)ogn zbJb)m1_{EHx}hi7m-BEr1CpGS2Vy0oIO=cu;K6NTa4_JXd;N7kSC~eAAh9E55~}#ZX@ncCM>$)}|?fT)@I22G+AVAcl+$T2HceKv$Y8m@x9Ib9?{UH(@pT~5)3{r!e7oJN=n z53#8SHjLfsNq<-O%-JVnKvFsyrr1KZOQy1|(MQf&BN{$df?n~n3ANlARBQ^(T7>~! zI$tcZTH?o5MwS>V|HCF6pS>y!4Qq&R7zs%KYOnKYqNB^vYaGFI2o=p%Z7R+JDO_hh zo={*b{q=3BB08}0OCc_a<;0~q9R53+j6KLO1NO;y$+$snvIJkk#Uohar?<8#3@^b|VZ-%7 z(eY73GuT!Kk2qnv8X~x5TQ-K4Hgy~^K(0D2jLBhNpxf8%G{(mftL9kqTP+zrCQL>s zf?OY@;D(_f$&Qfo)jS)#n>pdEZE-x)@X3jrIqCfAeH2ZCND25hEj{|BZ91u@3|Atb zMcHuLt8#O{q%18b_?WIpgdQ#V@~Xftz24-4Ho=N3!i`cY*=-5}gD}UOKmvSPdcvGF zP|$FYY$@+L9U!h zOrjOGtOH>gOFF;do3kfF_scN*8X`r4Gc8hLcdXMF!sQ9RCdkq$25D|-J(7zef^UFB zgQPI&Wi6g$(S#oo$x(gUNc3hLi`fTz?KR-j0(ZvoXoxaqt1>c>U;T9vf^`?*Gc`+y zQMt4o!>6p+F)Ej!iFCt3eLJ=dt!jg+)R+$Dll&63Md5v(Z5(GF;W;Ghusoo@t`S#C z#Z8I*rto^2rd(0WlP~vj&&GMK*=ClOoYYxShaxXj40;IzmbhHNFEj?j1NkC%-CxP! z8;tqSfC{PRU~hv#e^@*bB*&3#x5b-y?B~N}A&gXKOy8u$0siiC<;tAIQzDLPHjjlIeOr(|4u5>ywt-5K5zaMR? z$UtmP97%qwCx1BcjA4K$-YM?(sQi zyF@@@>yMAfw4!5{$%k4-2?(Hc{?kgG-9dn)T~k%7jdPmjAKS`E9-$bVIWcN&7WhsM z3ks35_k~qh6+nm4z{qEA4d1XLE;^gAR|Ls;_)5#*uzIWAO%&TUyJ9_j7ewIaZw6BS zS^+H8dTuhLF1&XT5I_nkOUHkcvra+5bH`Y?v%`A_sKXnyML3hDLGb{w%z^qW#*A1= z021`wuGSCNb1fN+HPbs3#v774^RL9x)xe^WW@;k$sOK)TNflfD+B8}x1)lG2nLdRC zOae?q;lg`K?nsHLw-FZ6oT3SgLm$3py~APKdGnDA>M4Knr)3k_uu|n^#ni?iX!M4w z`nRlg|LFL-K15M35q?Bdj#{4`#W`Vk$+U!qt8(W8sybPKO=!UO4JsIxItYvGHXlO? zCR+uVt^K1)vbd8bk+;KucpO9-t46)y>t`{?l%`U-tqpeEx?2zpq9~1OOyz3G9(h`9v6?u=^ zRMpqy@O2(SJZXOaoq)0hV(xg6!(kfiqUrihTx^`Av2FC-4lsS0$xE4Z?%^<#mpV$a zD#r?A{;IMK$e?7&xYkJ^XchKtH+gq(~}ak;D`r$8nJ{|(&i1yEHS7;?>`== z7#R+4^ zHwOb_oeClFXfEyxB5G{E1^g5sdmw8ylpRlr9C%%)mVOIs7p(Xo<+a4-7GaRJc-N28 zyDdZAU0PkuD`Vxkt3%CM_4fDE2us(u>Wm&e$pK_&co0eCpSmR~mcxY^xylLy+`Z0r zg(h69)S8_ZJ(o5?b!_$*ljw*o zH{XNQi1$cWy?usTz;0Ex;2eT7kE+I{Cem2o)ngn!6VcZI`H226uNnQDIR3}N>Hygs z5!N_l+lx5963U*Uen*C}%7d3;b3r{RPIs9pYc_`WkxM27CL&UBy-nBnVGAO%#OrBW z3?O=2r5`$9gWl#r-9u{u-d|ccOAs&BX)B70pNyL6Zr8d71<~fvK+>J=j~8Du=<;7U z=)~Dles(d6r4@9w_v6WN$sfR~EsL_NHH;(Z{|HZ!QSN`4M z6WA!1McNEp*oHAOB(lEkYJ!6<-O|R=<%54vEI^yr5fN$U&?<#B(bc7J?#y(HZbgAd zB*#Bj1zK(W@;32|0VEiLEJsqFVNyp!4oi1u~UHMzE&aigPjC`X5JgJt5M81NP$hE`idnztT-=4z-j zZ}`6EXh(|OESfa>_WcXR;P7nIs$^Gxym)jAUaM~NFToOt{k{q4K9xhS+*^Kcnb)^n zb5^Mbsmu57lA+h0G{@7vz^RjQi@unRp&Gm*MGci8-9h==mgMiIK`WwbG zwg9CFwO}Tii^PijQ;T61fpRmo&?gvT`N?Ub#1~@CPF;0Mdbz4bW(4rfkO1Wfz2K3N zZNz1AHxhkQ0PKlvT{^U)E?fAf`h$eMh&@IS@a0CtV;9M$F?K%D-h7)7;!-o@OaXibHIg&0pJq5Caq>nYdJT!6Tcsm(1nb-xZaif(BMND^ z!!t0gWZraOj+Qa7nMN2zv2spsQK{HObRVUz0$dC#gfXu2>+fEg|TeWh7I z6F%2g;Rw#aRv{Z*AH205Vi5uGFMb{IQRSmBG4 zXy+dvV>+T(aHH2tPFPO3pzlTmwCS%t_csoiufd4ml@3=bTY>{3$SolW>u5o_@OhBw zIS2;s1?6sUM*si- literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..18d3ae6fc22f26a93e6fdec6a357b08a01882fc9 GIT binary patch literal 4549 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_06.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_06.png new file mode 100644 index 0000000000000000000000000000000000000000..c521ff200017910ff223bd997e80ea0a9aacf76a GIT binary patch literal 14818 zcmd6O^SAWUDJ)BO$I1eN2m;c*NQ%T#ONfA^l!W9G(%mV1Bm|_JMH&`qDe3O6 zd;R_gzi0P@y{`A3m^1U5IWu!ALR(Xbm;glZc=|NQ`%=#mR2TGl5| zB+67?%f9i-+;8=%ay0N;y1xFe?&9F!<47w-cnX%La5X+YRa_boZGQNZ{@2g7NrK~^ zC0bT}iR+a=?#WY3LsY+H%&2}@Umg90uZBF*ysFPtm{zMXoRSDWU>Tb3I!kMBV!;i> z3nEwk9Cy%qKjUz}5nDI4SUxIoxwDh435fZHl;6lw7dsIo-LgS zEKx8WA%eJGZmXo6rXTuWHXpWLE{?;`@<{!*{xw>cDuT{>sVbNT+@E(ac>Xy~og-$E z+BF)*l)maDJ!snP#ACwF{CF#UOp$!_aC`V69k=23pjqfPR=KF=I29WAbHRhodGzHa zKXsIv+GPRL{T6!oMlPA_e(^uf-FbHcSE!UWx7BEILF%ZVt^4nnF8!7~xhsvz9I@3{ zeJ9IJ&(BI^?gQ}{ulAQ7_SIze4gA*)K4*MrYkWT++#Yf5>)%Z*E_Kv_HT}+WVf6mb zD8n5NUlK7)C1j*gyzMyJD*7Fw(*L}i>ES3$VQuQ|hnI=sF1PzX15Ofhd~YUl{FnSL z6=G|l5-(HV{ru3lPVKON_;7Ieu$}X;-JAUp&H2#g>277av>+krFCR3D%?C|1z#GIcPp?oB8N}ZV>R)>ojA@_lW7SOv`WQzYl(VN7cJ+(4tkzXLdb+^{`jzyUzCyBS$fx z!MBU9r^Dh*N0Yos#MVsY|FnT_EYg0}E9Ae%#x(15h?XAbpVp`5g722U?>aSY7Yq3x zM@^gh?2kU)jWVqj@g_yvFp+~S7te~ttIfPN^1>Kz#=@k3_kAGgnqPXj(DMCD+2LS% znhrvgW!hg1Gx}c-nmMH-B`%AE{K}-5PVxS6!|^OOC7~kVc7BN@93TveemEk1Jc^{u zN*XBs5zB%750|!^$;yMK1HVHbGjHiRWCL6ZAag1rgZ0OIGwYu!Y=6u~i!WXsb(1n3 ziSi|BtiyKhwv=QDeCL1qy#=sjH$Fbx1|D9;9Bz&74Xzu?EhoQq(wVFbxZeej9;Z*Y zY&;22MdM%-pay8!vljBXK->8BXn^#$uU$ln;wQ{4XjIxxM_vS$SGL`>-5x}#bb+$V zGNFPjV_T3#w+W4JH+7YM@1+=H`&RLoe2-8yZS-na{aXGtQrCm+cZ07cAOS~s0Y}dt z!{6}IjVcJR9JMapwib+Ub)&7wp#5g@viMT_-GSu$-LaR+V#|L0yy<1r zv;cJ!x_lcAujJLP0WV!o(QB_^(dj>4tI?;|cZ)uUFDv4PdK-4XH)o$_Zu+hent9#t znpJ*NI@9G%5?zC`vX>w91>E(?+;3~iJfa0VjxzIoeQ0TGyNMQNes1n2Yw0>G=dM3T zDnAEWR>2a>(&bRudf`3lvxv5MVv;h$GYY9g^j~xVR?8~GVYv65>N?~I$jVOFot2gK z&%UL1JWoT#TUItQK3pueAGlZgEC=Gn-1O=3?tcD_V^~yU%s5Y>&zr%G;%C-TQ`IpO>#Vva048$s&XQvr^WI3WV`9 zT6B+!Y+WacasXeslAhKN67+{dr`?prQw!^N&+8;B(Dmdcx?yPY=W=>x51U#kBo4NI z)(qbLISIGzZpQv1e-y&r!~4`Z@1nV~2pF35+5=Us#S8F3 zz-Z=*oB!wuCn@x&q7EBPg%O-H$sRpR-Z%Z?q397r|DIP;^Y3Hx?*ryxiY;q}LjTy= z?aEkWE)eKpNiJ64e?JKC@#=EdlJ5T>YdAlb1Ob43;DkB-FmPh5zE)rrJT1M_vr~nZ z^pjKTJE?xcUKrgTVAWXw$-$t>*|N3Q|Jx!uMqj^w_yY|gOgpx^0n7-<4OhYv%nj6+ zot4PzL>Ys1jfj`-M|*hr;T_l&eO~Gvqxd3Cr&~e7w*J||mM$1Fw*GL!LUMr^SV4kh!7dOsY7Cc#P{C!X9Xn&lQ9ReLdovlGe_YcuEnOF= z_!AH?riWHBbHn03+da_+G<2|<(?N0>zAHR68jESTsJMF&*NXWEfYONCB9EqvIYVCe ztIzN|DzYF2DOMmH)bt9V+#$FnCH7hAln`$nz-G;CeYjeIDLfpF1nWu>L$6Z*-|mQTk>KAN&vd?oFX~wM^JkTkWw|0Bk@I zx1x4NA+UoG_YIlaQ8)}|UarHZXS|kQ5&#j{aUtH>mYU8=dc1%Aya?S{es%OQ$j~{G zJP7vX36iV>&`C*!gQch)%*#SXHJ?k^vP^{G+hK_Kf_rZ6%+?e~6|O|b$tX4LG+AU6_5w18O<(f~pf3+2XRionJ`1AAC;iN0H`fHCNDyS*w3 z>^dggTdb500^EY5(KBfs`s+3aml1P^yec>ONl0lc9QQwp4v?JkPGr3fa`}ho>G^ZR4_D>^WT?%>oYJ` z!*h~;0N~;KB-}kS#ahU*;GnN-L5kJhInh?XS+JdxpD5~R%O3${IcU4hg)vB3fngru zosvg9-LgZ=o97m*vvX@hXa;evqiKrjK>jLrpkA9(tb)7vTc9hD69_PbVi>o?#Bc{y z&q@i-%VR{ZOk@gEY4FJp7ejG&$8a&FnHlHvG2Caa47yfc7EntGEhNW&uqmvib~eCW zo6gCJ)IBPD#$ntmJSvXm)y2w4R~4xP>cs~2u4QO~3q=HFm^nzXG+iQzpI1fdS_NX^ z2~;VQieQv0E2UCUU-4LIrlN)cB6o>SkvY|=;O1B2>lvHZ!NiC}eKkYcvB#aIUaadn zTbg9D9!xudbQTZ>2_aTkn=3ovVxd+EGxM#&nVzbY zr&nKSYwxQmqSOjr)-q5#`ZB~4D=Qh2*<8{3M`|8_yrYsS$XJOoEjiVd_V@4hFGA1W zlrO%^cBM)*U#K?W%*|OUB7;yjX&zx|r1jx%9zkGGv?C-f{RLQP+53e84*I@o4b#A0J}WZ4vb=^!yg^3d{sTg77Rm zOJ0?Z`rG7)LBKi|!WQ9Kl2N3blsgi9B%O(9nth4Iu8+rHsQVVg@Fq3u`fMjArcEC4x4KoEg!2g&67 zaZQ+x>xp*98X#KUB>k5SKe8z5W4N_c*YmkhhXthimv88)D{&Lr=wGP>z^%bd2!V+r z3hB*-v4fTM(`gwSD@j_JN%*CUDT#Si9AV@cRH?t=U=kMyG0cu(HB{wC)8V=c6b(=w z*uQdSk>Q<(>aCQ;0DaIYPsNTKkD`6k-dA4Kit<;w-Rj6IDym8Em@)NZk*>^MoGwIf zqOh&BwV1Wox@87gURiRLD_ni4bkj-alN$FIYc>vw)>l#=qH0jqK0rRZH)JU!`C!C( z={R}x`a&x)Rj>nD1|rYBmRO^^&IT(J#oIN&a{5c)Ci*QzS&)0*?{`}egilu^uN(3{ zkt|C~B=gK$BbA^{V9H|7!Ug_LvYvPbQZQ^-u|QN(8(HPb?z>OzcccNrRuv^s$%Kag z_cMAh4b!niqu#?puzFHH4;o_X|NscGnQ8BhLHSpZ1B= z-pa;tT~9#2^QpiYcTa{Ti5h>u02H&tr4vQ>Lc+1c=}9lff(l#^Q;R^f?~TcPyt=O@ z%7jL%gpF^_QoT?Jw^1WtNKY1gQBHsi?5$rWi*g`Ks7*-@Pu9Uoc1f_AY^gAEuta+z z36eJF4F7{+RZW(Q2QH#Tn?#et7*3yGs32j}3LH8v#r6L1Sz*Np#f0!8J2*%&CS~B} zUu<^u^}QIrN&5+B5+YWJl$ldmSWn!@KrxG*8)D~CItDv*$OTt7P}3VCG&Yqa)IkOa zn`lCaLv~dS$ke%HCX>aHs{cK;U@^93xrMTXeEE!ElILab-<`CaV2L5!jj9Zk#yHOD zDbLr2R8((hH|-A|Cc@pTc~b!kYtg&ow@Hp$zNXk0WrTG+uOveh8D!%!6%Z2L4S64G z1H0wM$714X-H4|w7^1tsmxC*kt7>4TXHG^nVU39Si+xQDy#M6H>3bCY-{mqqU=A6X zyxQz1qHut_l0G=9rh;=^ERcuSb+=zC|8sqt`Nf zd02T77ge1bnHC9zZ5eft(0^&sm-cf))bv-?@eR6^aPUbNW=Sn`ASZM6uve(Z7GhSy z4WqG_C#{okEAtv{wPMzis|5}=ME_DS!knwX#Hm=d*RGnKz(O}3$G@-IWqkyOFLuw&!O?$m1MnY!zR$^*Ey$Q7Q90GmeRD;mnn))$~E zjCX6Zg}rxCz#sUhFy(E8(}0_5sz}!9hw0_ZfcFoeH@qop0oNaD&(!L~BRKWkOYVto zBOJYnehUK!Sa2P5D<^J%-RE93NdwkLfiK()X`Awj^5}$y%a~3^RT26O_|{qY$Gn2G?t4``MWfCl2M}b<$AgB3< z_rnt>Um+jbT?~CH^c>Oo>_pH^ZS}>NeX6C{NRXN+1Qy%;>0ih&zKZZHUo+>CkfYSd zw~PPk=t?$8Z|U`~D)K7gMM_Xnu?8z5;x^HMst2}z9G!!=Ho_q}!*pPykj0X~15n2GXWXT)Omb@gEo>{$;_CctjqN!s2~#zTxXo zzz$d&9Y3P)e!rC58e7iS<(>I6yLK{k*Zv{)58Hp}VW9pySn}3o`(d(a5OOx--qdCp z`|rM2l`YGMB@v96Th2NPRFketB(*aiOt3&_6FHJSu{vcYv@%zqafzXcwtN>!XYqmz za+{$NH$rK*6}S?XSsq~hx-xq7z>M?VB>}&CDF)9ZFuBt2(-G|3sg8mdqlIe z{i~OtjtN8W12Yb{E0Xh@NB<3N8M~qy8Q56ncVPyWL-4n3q->bXUxoR=i~Km6mcUy3 z$ra{>p^G?c2Gx~<3;Q>*X6)tRT-dd2ZrDtsWjVKZvNG@@R~P@IX7(OGg-th_qmOP# z$H=|} zqpEqx0e8Szo?|qp&{ZJ2oNlN+ftn$sP}UFuBKEKt82I_h;=k}wP8V5mF1Mjg{^B8< zn^#G&^|7nIO0t|R6rAWj@fzWT^bO59u8gt4tCQy)#3%VXRb~|F7iUxDrO;BFVr^K6 zrSrP#?ebUPGve-Qhxm5huL(!Z#a8dU?>8E|ubGo{hnl7HAGg*~T==~u zHiYdR#%I4MLc=I8#~*KPb=1PIHI?8fcX+M>9b7x?d95s6tp*Je8%y9>DDL0YxA45) z+A&rE6ijIbfAvQy^*joZw&%QIKVsTTnZvBrs#wnzc4EX^Li_gj#}d}VKW|*zjBdOC zlo@1SE)_4sh4ve2MIv$EfLRor)MK(P@LCt5ya_40MWmaHSr#}LF(;I?b95iGojPFy zUrwb?xKA6iGZ?41zGcce1(a1WuK_fMmOXWCKDv#3V376Ni2FI1+W5MKMNk(}8txwlU91w;+UV|+*E8@a@9u-PdKqi5{N_;cR?uwXQaVE$fV5e!JHrasPu-Xs1M!)HKc5>2knrHeC1#N!*JfqX*GibV~z7Io#dUtWEsTkFn2k`hQ9V3I!B2 z6( z-{0+p^tz*8J!Mln-AdE4==2@f!#w4QqCJ%$m9CiRCHLDIz+bI@d;|6DO;k9zydRc- z|LysJ9n|IUD3!KWb?Z<#SOtNR0dxVYrkq~&M-s?F!}W0bX{1>Dg>i$qW#d;t3_2$d zzu3CZboRol%>_na0$M+6L{Lh$N>{UdT%q*wDyu57=FO>S$M@NHH>=~|XviFkcBH2Z zJuCYS}sfVdy1Se`1_%h%_t`0Vqn zW3h}0BY696jekO^x*A*9Mu^y8-#i+Tv6HUP7;HEsU>Gb8iMh^0D#uPyV4iFq;C8AW z6qyVA1?v%g0TW4BeS>#gBy0a@jN%kb$&Q4*yrR+-Wn9&5EQ{#BS1@MX$#hcPO3m&b zJtk!I4mqW{+Q7-04Dnxw`aYg=jC@Yl!vARV@nL0}=>nu8jW^ z{Z9(_=iO5k9EgaGh?_s0aoc6zdxb-yh&qUffQY5n4q%RgBN9V?EdUuSG>C6m0b|udp2PYxb-Ek5F~K+mF*F=h35IYs(VoZ4hVAUzeKQGd6DA13M?wFv^X*j9Am% zx>?P!9eFEtv^G;tXhT`T$Rh}9ndQjH5QTv(_QIjUOilD00cZOnLnBz3J`n5MQN-ET zZ`}h5WL1#lFY9FDLQ?hMt9X03992Z;yjv$ZeVzi>R>&9`zrBu{Gu#o$lqWEk8)FW@ z6?Ma1YLAgU9lokC?<}0w38R(Gh?!(1u@h!foOe8QzTn>v?+^JwDKWt~?FpR~UcBX+ zv(4>w?Vefz9H&l&+>FU2a@|QYS^IAsSz6Oz> zo--ZgaCvh)O;9XOEXk4K#6`DZfB4^*ATR)OuG z*8+Q;um|)Ej-6jEBPeQjs%m5!^Hli5>Vmh9_Xi4>dy2lfV)h5i90@!hBai~b!z)HzmWv<(ngHA%?7z$bVrAg9U#cwzeMbJ*MzR18 zI~SmOe5P?1_kX0f3I(;otgo{&3Qb8-!jcIo;nedrAD z7ri#fDpsl^wVC{hO;H^9s6F%%@Pho295AoIQS6kx7g)7zg0iUf-`*x(e3}QsDuN4i znk$x}nip(bap_U)4E1a#gOsBvh?E6?z0-=J(cgoBN|!tJ)zG6m+2=@6i+p9?SE`Ii zNz{W4bIFM)mk8B+=(tA(oX~raKomQN+8+k4#**)(i2A{ii~%X->UkcQ8;HYgs15(Q zJ!1L!^LyRDYkOj`*{eL^^h)n^tb@t$-YtH-?V!KS@osm#34NN&OkM32_S1YqP7u@$ ze0#iB#Kto(Yf6u+ROO{+dm1@j=-qS7V>-t9$S+?7v4t7EHHL~=&I#;=i`asRhr>O3 zrb2WE6Z%{Y9gYSfmi=;QU7uDiNN*h?U81ywd=2tmcG4^uk84EdaL?Cg4ux-k%fa>9 zh1VU=u-*R}SO0*Uu!4fVaK2=|F88KQ!<34DJugd!q@2UA?-i>RC`hiiaOk->ZYD~q zD_#=cSYAofG>2hvZ|BZwX>(W<~T=9Y|`3oOe-pGUL zSJz)q^_4M`28F>hXoQZeO?u+e>MGbzcTB!wd>2Dq~=u^H!ri5t(T5F zxJ|3l?dRkjW%n2i5Afs(yE+#U$9u$pygBF8didgyF7PjjaH;>Fz#1P4RTH4|2WlVh5~BrdfDZw5U)mpP$cWvrvHesbt3@qP7htD)w3AlVNJ7AQ19}TRL^* z3tOOuFv+|yqa|IYB?@I+Z!hr{NBP}F<;#v5=el+kKL)$6Vpdu&HR4vh&|CWLwUwgL zAze11>kb&4zp&kT+*f>jfFg0s#50B0v}eg$g4<(Oljj=1>Y?Ek%dHyaOHx4xes3&nTFaktGsfg4t@sSV zu%F)a6um%Y7MPtD@QB!TF%bsyp-m3NW`gH6k z6(fQufD5E(sDcNZLnkByu8F)ehbPJc~K$@x~D^_8;%1OJ=)QbZ9#F^CT~@E zuPB5K(QP~uQ=QCJi$HIP^iN)s@C7;Rmx0CHSR9h7M?uWxBsjb}*xJs2=6ASFc8>Y$Rm z*SMG=K1@DcD&LQcYw=MhiY#W;QzH9=UB@k7sY_NrYW@}>&%cU4#ZmIxsGb4ufV zbFNxjsOz)j_{dJNRNRSWP!Eh@m3q@TG$N^Z=jiv3M%JOd=z?D-eNCw^_cr4%1Jk;a zZ!#tJ1PVVtR}YrlD#6M~6zC~_$M<)LP#`hQZA+MXlT2+Dg)Ep)R(ZNo*5|rPS-CcC z?)MtV^Ag%Tdd-poCnprcac${$f$1tkWDJsV=xc&O3xhzHqe)Z8BTnj;00#A&CONO^^%NcR0U9 z#^$N3frK&tB`Zm0L;jXe%$@kmHRk`VtE&omRsZ2uBH{M+>lD&LUsa-zm^jYn3QpP~ z>A_fL{vz>w@SBwP6>4um7nd+NmwJ6dzi7;l7va4?P?#t%_$i4cm7{fVWB%i#J9*xY z84j*{Q9E}Ei$b$QBM@BHp^)BX7L6l*y&cchoOB`l{&YnRfs64l5t8;bTDcj29Roz}9`C0a5`|x!3(0sa%N@v1r z!Xm%DNiFdHYp0=Of}E&MZFQ)PLq@;8F@2;pMAe7@Y#1z3J4uo4#Q6C5XdDq21=qUx z!%w{2n+?!zsB0ZflP`c-AnYQCDQ>ZG!xca#QDDQc*n+E7>BU*LB>EB;iT-gAh%Kxk z!ohlV22TF1jf{K9ym3v$+||!?@!%s5Y4u&j+J^(WRUScVM7JhcMicQZkws4`)p7*E zUSFUVXTPzckhsl$w8dUkS6aclIK0nITCv|83m&7QXDC{U`;W=lp<_ zh4Dq;0ZBL2#(0eLYLPfp3?J0(6)!^Fbs^R88pUvsgF3w|C&$QIefBRCMIRKA(&+9TVsFPi+mXa)y-bvJs1oo%g2~`}Q z^@CWy^fpRgFyove&tsH{$o!4@*`-OnfBYne#2*+A2>zARt~-s2Q$U%f3?5c zr0N&EQF{3faj9pX;l1f^%+g!*s7W~R~i1)OgPtEphY$m;ekkjV^vkUdK|HlUN7Are|D-MFf+8hF zQRL9dtVs9no+HPuK-Y`~(FR|@K@tCTj!vZAS9q9VX+P;fQ3j(O3MAy@|I{_Nc-q3u z;agXl3bX+*Wv+3q%$L&tDYD9$ljmu}AW+rC-&?d{*GT@G^K7H2fJdTM&6)i6po61W z1j&4JP3Vsoja-IfGv_b5&McsvfQ0TlC@)u19hHUM(gi0)a$&>t998_=Pg%Zg;+gtj z48r1~;TN?W#2a|mI6L6##NQ~$6TiM(k<^wsg!kRdcGQ^hYaqkg+tN(xDV>l{2SQlQ zIQ8uH&&(;O0|#T7(gjXdZ%_N#-f8-TcSZ{fieeC6;rM^enXklJ$nBs?ijYuINoe`` zalqe7Soqsu*MQ}Z7*_SfZ@ZQPnsL4hDZihKNG%?CHzhg#iPYAR3QtE!f`eQd$U$2h z*Zt4l{2KSPTx)(pgf#y<#68v!pIE5H#!u6&$LnKcKu&TUY9c7|dw5OljX9-5GXsj| ztIecQJY)X(N9%!V6Av365Ka-pxR{}ZU8cjuo1dO!P;EC`u7%kdD}3_rBa~MeSLuCs zy?SD??)MDaw|{O=bTUdLW*=;F+{2M2Di-RIi-hwAajKtYQ8dxU?m@Uc!7wW9c^DmH zq4hO35u!fwGHq$ctJca6r(Pg*PDjUEedZN|i^Qa%sl~&{V_>5dpDZzcVm#507%FqD|C(d`@2dZgv>$-#MGuT~q(HFqL zhL+?_^i&bWv5rsQ9Y67~1`w(NtH;xRvviJ4r}u7OPO*z7_d2*V!cTkg1>Y{VwQxpi z542;3x+E-yuHi*FPm=peBvJOZg z@JX#9b|pR$Q>9fWHqsDKZLzy-?$cmv!Dy^6% zeqQt}f};SG^H-hMcRS$k;sT#~=CgFmY@HAt_u&)ns0NcaGj`B-fn^w|fg;1zE$+hH zEp*ZqDz7nDmQR!%&*@Z9=w+8qNNJfjI}hPpf04gi{w`4%+E9RtfI)tW3RDFh_Ayef3wkRGKC_n^AU8C z`40(oRCZ!-9W9IdnJp4j2f0ow0w?loQWAbLe{sn-wc?Nz^<#<^8(s*!%8*Yv(>UwM z&VOIt?cF^6)TBPN{*mPG&2X{533!%#xc8fmvrGT<^WP%sgvo1vRn0V+8yi*PBr&R8 zd8T|dQh7wYcxU3YY+BC))E%qqSbF=p>ra|0N0WUOv1xV{UQ|#J%{>LDR&ev#X=^-- zXEBJQKKL$D=2pxEGbu9((YV^@Ud>TE&+lc`j$AiO;7TOS)&P2B(zGfaH~dzjfpM?Y|lGy4{b$Z6UOd6~phTt4Dm4NvXxayfWw18>zhL z8wrBFO;Kd7M4b9VGt%^FyVEz%HHhry_G+4>W74yrDTDA&mo-D%mjrJV=q(!0sCLYx0Y)*|kVI8BnqqJwd|ocW%FeFC{z6Sd=Xuj^ zl4U_IN&4P&^7w)1@R$X^Q6Q*hJ`GF6uTu8|u2OOB*E)EyD_D$05=3a`!SMu-joQ6b zB}`w3!5CXNgp)c3mnd9C;0tSNDgAJQP2}tFaeC3{(;yy4b8&ubjt4s2)@XW~CKIh6 zW_QIi8L8@!`^3dSY$$Suv}T z|99o%eL<$-6gg0zwTTH#4tPzkK1sxA)sfB2Rr@8VmW?zrMe* zaIyJ`!N1nmJD{}sF5UOHq1Qs?lmCi=h;bGmW$V~;M;mX#rQd^j>+GfU&qcfOiS?qA z?q|u!Ny@^laW49rNoERKTcfF7x-257V&K26Ty<{;>U`q>y>-qu&%E*|Q|NUPrsI+Z zdeMDcU1Hrn^m>$m@iZ^Np)Pr;st!c&Gg!fz@iW{U1{Ir%0&)IUy!2y#W>R+>efG~s z%OxvJGKtA8%36z`A0%zNx*N`Z&S?@niQ0P>%!8O!8{trM$S21F4y}&4j@tsTuJS%1 zl?Rr0U5SbZDo+d@LjmWHSM^ayg-Z?6;#L0M!d8DsD2e@^Ev>Nzd6qvM);MUp)RV&r z3rP%T3Yn%EgYQ&x>qp!ax%L{C@mJHb{t2_f`hj8c?Rk{vK27X+tG^vNAlh;c25^gW z13Pl2x3#Ih^&6R^v5ROet^{=taLk6()Ma;`ZJ+dTX?8lZF#eSW7fE|bmpV4x!*>lnlF=P5!( zPvm3&mUAwIQ?D1OqA#vdb5x24Rm)o=SzbJ|qyAPn6!NgrSa2)N%N0CKo`_p|(i%=N1+P>NfI= zDTVNB8M29MrS1jI^(r*nf|gsDVSbZNf*%@F+iSYJt^Xyv zZ>?llpVpCJaU4q5e$+5RE@;(or?a!lb6acKV20i#wHArgYmGVZ-l{uvwZ*>}c|Jtz z9YJs=p`IQ9ce=rX91{VvNx24&uiWkU9BKH(I0&_( zybyxh&d#b&Glt*U4{<5Dy+N6zjXkxAbA0M!Tc>Sabn<+b8y(kOBHSm%GM-Pr$O*Eq zX7V%3@F34uEfW7+Xi#iu3$plnKV*e_%6OSS3#29ojV)d6kq3|`QT8fE#8tdXnbhOl z8tl#9@bf76KwC1HXt_T)gV^VjyCvp=twJRL-6eOgjrBr1DM)IF$j+u8*Jj!f1O4Wf zm?BjrU%LdEdVuQe9-0mOy?(#e3pg(cE;#1ug_Z^9gyJvUj3U{YL>D-29CD=ZwBAW< zJ0^4R^H#Cl+U(rky*@06RG?Oy*egK({TMp*+9lLcL@zEbfiiE*lp9OrMlI)g@nNp( z-x+T5x%FKX`^9#rNp)I+z>#M`I9yPs-V8a3@lMP`Gm`|l&(?4r({;oB`%p8hyLJN ze52@o+@08k=6Io8*OM6tIi`kAd?@w4S}Rpxn`*K87$K6G5sO6&x~o>pL72)aOev5T z(nW;%O~&<-K-z0Pq{fa_-P@btPV0m=Lw84vu3MTy#PKDmvf#&Y3m4^T1VlnOIRBj~ zHm6AGuld4r1`5AAhZ>>b~({n7X!FgUd+tt)eO zzLU{r`-SPdt0cLe-=5NclqdBvJW?nVPwHl$_Z{4v=9uZE>aV)AStpo=Mpqy*rsubh zo!?}P))Q;&lH>BFLn}(3@lHHyZ1-~V&vu*uCx5niSThwuF~p!DI{wzwolnWfUE>v$ z-}$R)js85tGyT|d*bJS`A*Ql0%C@mQXp0S})@bs(>7D>>(aPPij$7J zOPX?vprn>*uDqXTGT=ts;9ik0X%I~g7@%**6~qss*KR3Q)|^$DHIu;B5LbninImeqXY^BBo7El?s@F_6D2lGS>Z%)Wym8#PaRBhW?|si0vuV?&RjXFj*VoUQHEZqK zwO3qm#kg_fR;*aDbm`K&?z+qKJdQ%FwM&*Px%Jjtt+m$L=H})(bLQ;Xv&UL{<&{@9 zH8ojlues)$hK7d5#>QE*X1)35oAzi$0@J2Vd*zi^+S}WK<;$1X*Vm^~DIiIbTrLMl zDcjrIZ@&5FYp=cb#1l_EtpD7@i3BPtD#nZ%vwHPv;OVEIo;h>ozKNu~>86|7+uP4Q z_uNBY#3Kip|21>w%#|xw{^c)!@jS1tu5O=1J9g}-t*tFDFMs^;#}9c4k05mZ*U2ZJ zoFvIDx7;#s-n{N@Ns{DOGMUVE*Iid$UOs>R{IO%ljvhVw&=>Sbpb%M7$|+N(Y~8x` z-3=|BPD?3)OeT{g$&evK7A#n>aN)wPuCBvV*u#ym*5=oeBqi^!$U4SBk%zkg1BpQ>tEs7}xw*MNavp@TYHDgaIy%;@S<~ko z%pjBn3>!9V=+L3-Uj9ShW;-}#0kyTYYnLru_V5FJnCGCCwe4>kUwrQ22X6ajC2du~fd$JTGpo4$Q>W1nO@*v45~c5Yby>>V#Ww>WNY6MN{~&W<;j zJazWhfAoOkx*sre-6usn>~uyQuQdK{*~^R8Z(NpZZp&Cw0UDAHDu=Q9iHFA4Pnz}R z>p$R826kla=xBOj+p~Yz{LI?dmu=heXQz`aq!auQKZhTZw9vVOz1wJOa&KJtz?4g8 ze~`lsFj-*|wuZacw`_Q6=kK5S+y6Yjea)`cCNCljnV3{eDkg|XMR*}Wi0L4=lg=Hq zHsU(NfB58@Jo#`}KT_!J=(f^^YW zPz`^WyTVFADk`+cvIsxK4QM%XtUPNrue|rAe|!0@6+uk7B?w8y@9MdB7JRjAruu~Ox2=3OmCclt z|Dd|uIr~FX@1L>!mQOx7Bs-!lCRBuySQBe-&?!s`Q%1UyP3zaMT>4Sk-( zU+-P>t>3L*l8VVD1R+6$?jYPrR}-B(XxmJts_sW?UJNoN1lOR7tZt6ajQGy92XDIg z!HVpN_JmjyNrZ#)(E&QZuVDL|4Zr#6eI;c(I3uf@zcp{X_cvc@cztCyAr+z8-|4y9 zw~_12-2Uu~Cwyezo5}}ba7I=)!zxC9`?9Cbt)IImA(RLg9iV+ofSaLfPur6}xwGfF z4RTq4lIDtOi{?zbEmkJhD6h~GjZawxFaG9<_SUu@W;OU_0ZN)rOuT;1j75nuxTv7m zb7k53TEnUypB9e_S$QU&I(PQWML0%!C?Dfve1Z(Wx?|ybC5x12 zgo_GLK3-8KkFKq$C=Yz!A1n`b zE9G1||L$Fzr#JrJMyHJCO}k!Qz3S{)m%Yy}`(EyZQ9S>`c64QVt?UM2Lu_3lS0TCEP>O;rn{x=uxvi`H9OuJ-w#7x<9Ma?>zRC8-9J) z!mx!TSMjf_UpW3f&mVWQ{|o8HZLJr6{;rL0HQ~sDEEywmg`c7e+d)SQoy|4b)MZnr zeDw?S#|+q~ay$37-S(x)uRp)OWiy}qmw%se?F|P?x&ID+_|WX#|1{eZX+oc(;;8 zKQ-!KK62XmADi(H(qYSnb$fR0I#9Cr8#-J+Z$hRlONS=slJg0D!W3beI75^sN)x9^ z(%3ZqP==3L*W7Z>rPJ?UviP6_mLm-*)$}jjTz-6JcT3x!);x2-Wbczj-H7b`%j?Bn zhn!Cs5S9_9$OYtlaz0%?VL+6|X0aJ$Ih7x7OILjUTVMbD)mMcF4(211At#Lb`0Ohz z_PNI&InadYL1s$dZtfa0`Im3++KaY`2$^4U=m-^~bLbqp3*Cv@i{6XeOV=(MUz_{s znTvk-AI5R|r)vE|XM5XsEHT^?aTTt=M6mf=@1a?Ii-L-AAhLwu`Y)YS zQB_WtOXw9lFPEGlXUKWv0-_W-pD;y~BFR7&w~`Tci+}aV{I7jEH=umgPn{8zI}I=H z|DyWf*M@bYQWst@jCM)n5E&we&?m~D76U@B5N^4A+_@wvC?lw5MBU=YAHM3ks~I@m zea(mK&cFP#&p!II{SF{{bRqr4c_X!U$!Q`(qzg-E2o<3wX9zu_?nden2N001X2i(* zpLpp0rG5FxaDVfuD{pLR+S0LS_j@<>NY*)%D{Je@2@SDF>=LeP36qzc_A0-G@*9=v(VvdGDqk$?|=9)fY#QC}K@) zNDQ$ltj8XaOY9N*gf5{Wbcj3>AM4{}DX-b%irMq$w6*p0Cd%POX>;}^bN1V9^>jY# zqG?q@;1MfgL!yhmx~(Z9L+p|S!~u~ec1S$%NL5lZbp573-?#Wb`?OO1$oR9*-@fS$ zTl{WnH$9bATkD^3Mmbhv4Y7kY;9y;>gLOze5|>01YZ8MENPHrV2yik4S%%hp_qKm- zXlUr`di4vH!-o51>DHZ1`+VM0Sz3$Fe5M){R)NGS5`~pmiB(t$rYO#k7!n5&khq2W zbJ>cvq&aO*}iR`&r6tAzUZRzATU@38Z3o^O+QpASpByK~7U<&LWn3aODAX%GgfPzs@t0whAC z9Hd)lmC{8Tya2~1lWEwrVa3W7eOIY|)WaNa20kJ^l7m1Q6 zi54h{)@XxvkqRkL662x_)?!?Yi|3Ipd*-Dz17d(`Tz8+xze|%P1Rp;yK;(NQQCM_w zB`-)x90%hfB*Z9%c2FAQq7A;kt8M4H1I&RO;gozwdeWJJlg_t6gVq>>)&)mKVkBCk z1X|)~ltKuMDJ0Vd&&kpC+)D?4u;2)!WLe|KIjJgxkm#ZpBa1o=TB1Q)Bxr@}VhjSb zMrn+}Xgu}&%g^^mW%`?vWu*c+e!L4{K!XuQUjj#9G>*X-j6@5x#5E{|lsE>d&>GL| zXxo|V8c36Zc}kY$IO41`JrsqurX-F;3k+z15g3VUa12_YK!R%kq%52eeD9BcTGzIF z0QB+u(3`LQPMYAMB?feY2Gt#9#YKZ7aUFDsOwbam5Edno5-p{#^6yU?SoEgE<43#c zYK;;Yg;6*PN8@OWD45C{RNyF-K!K4+komE`w31wS6f{F%XtmO10tH&&NF0d)BMa7y zcvqB3JO^R1F;W&rXGS+~+p%`-+CHyLf72UTDPNpA&Ow4B{;u^o5+iXmt}Jw68XSd| zBoWd=f)oIHKt8L~8(EGK)z!MtRploj3a7&SCjv)dB-$clRDzL(hvK9Fi;dGYm1muG zR-ad)b)|AL0xgQB-W67P zgW6&QS|AdV5D{Y&Y(i(pyy>62V8VHQTa80QFJ+xN%E?rz!YI_qcUbv=vITeA7JSKs zB*exf5qo!!A2t5RU%6Sy0r`H#UdoECjb(yK3X$dH#}K@uOj%Td5eQ3?!$#yfrk?V# zUo7}>nV0I@Ivg^3DJ$d4Q)?Y$f&s^3EKYGGp)D#YM3%A;5q1)F&YS$Hr>{B3Qr$(PhK>!#0v{l#{eb!T6Wy*_y5LeMjP)u(Th)%1=fEVW;?Hcbtaq%p`I`ah1zKa^%=Zt2H z8Qj)=%6Ht|xF>FZ==mAy?zd57(d?X^SI zXZ5^V`@_|Mg05R(#7g1Iab7r;0tw?m&n5FnxVAri==dvvX8{`sZYRw@7@I1ke~)K* z4&cfkw{0iLQ+n&H>|Icwb{xG1Ayay3cr?b73rbu~OEcxV^j&sE0fz&YIxVf+1VMNQRVJHJ*30;d<#w8I&z*w6g-(WhlQ#J zdh`B#->v92Dv6i7?V#JAdMtu}F^`w0`|ZK_96?u;KH~1{ z#dnhTJ1OP){tmXbd${rx=bMq#Z|`u2s6)g;fsA*F*pAan5#9rPg|l;XWXl*!*Vn5v z$s4gk!X&#o{dxvZ!fgR%+b3ju>zki3V)eGp#Q1AL{NcrnJT)8%pPj}E6P{`=L+A6& z>cZc7Wa>Z-Mal0L=b{_;SfSEb!q8LodZ=PEBy;A>67joB64c~UR6^lO^@I8ibVq&7*$mL)bw)pPv%Wcn;*8iauA?NM`Gpi+0S18Fzs>QmRorlrb~=_ zoCyRPCHDIkkYvzW;N=9WY4T(9j)yRav-_@iIg6$b$Of8}qoZSncq2+c6h~i*x&&$O zRLF~`<6q&uT!dePq2{`Lwf|7`MRe0NL1z&$Qg%kP*;N;EC4FGn726IJz<1+hmApl&?X&CpEvrJkdKRxZc}m&1`&iF-^SX3T!PBT%y?T8&AIle{)`l)m2uG@a2ejANGAj zKZwp+x0%ScR*TMG6{bJJW0r(bUtHorMgsa) za`6okkP(~d!Z+P#iB#ebH><880Gtc&$OT>2fb-z2c(SPf-VN1tUW`6mA1y3hB#54B zm_n45V;^emT!EtNJ_8Cm5FlQlj=rQ`%&AKT{R%^FS#e+k0rm0xbU9Ts7v&|NhIuA; zb@XM33W3Y#Sif-y&-{zNQFq`y0KEI3Z^&%t@??tWMCRCEWZOJ;l{RjJHp-Lz`P~3U zYV*JUPHf8TxVXOVvhwtN7NV!;hx4jQ+8VODvXUS2;&;0(Dk4(x&hCXyH`Mm_=leu4 z`)g%jrGV)?fF!>(2#jTLzQ<T*6oLHU=A_WFN?4Pn`(3OI)Q^$nStFCh5u;|AUF;|V~!pqHmT z$sF+?MxL0VDQY6oKG$_2&&n`9VDgtXUX%|~-=_~ktZ-h9D#+Qi&XcYK`LLPl^t%+B za&&g~j*N=%Xcw~{B>)Nj^h#M?hN0Aa+j+Xb6raL}jA!vOorb@yF@(jfF6fy$UlYBb z&lUEZ_jdLBl?>ML5qhnh+S}oMG;g12s?TQ7vzz`7i$Z96->vnh&p*b@_}PFGpuj9! zq;YS`|3{-@2Z~n5(*5}J44hk`aiV&ve;z6MRAls;+V@vjB!!2<8fPue*885vysw@s zP4*y{&U3k=8a>mXYgmTKzr`ik9%WHpWu7NZ`Y)6iP1i`mE0`b78FTGx-8Xi7W{p( z&9H?HelZO^mt_cnw+6Tm)UaG#704s@d^HzK#9`R!dp-+O{sB-a(6Exv2kI$|s{WS~ zf0;u;Z zu&kk|y4d*uU>E+;FVK@EkFIT-NFYEqTdK}9|FJ&^*uZ_7jLwq%w-1QlEx7Mf2} zi6GPBm%k?v3RT?UtG<0b>voL81`*E2Ns~?~mBNbWF88L+8erc=&pHvzj%r$4UYKLU z5Rj?7rr!WuJrAh#zf?X2mifp;xjo&T1MOtoWH<8x5gpWdK1j~?wtC6s>xmA#47dGk zDWvERK%5n^zX2sZ+TYIKJfvs{I1?~^QQ zWQEy51SWZh7~8JP(|KYDd&ZctK$+OZFr8ax8uYUL{&xh9 zfu4JOLoU7Rsl|&@sKI>P{KG_R6u^&&yPFvVQ@lpVRVgL+0YnLn)}`xu5$L?;y|Nq^ zR-)J;3ePx?5e!yFKOlR0`yby)5~Vc)YanP4qNB2#bn26?0uHXaFF&OQ-};{y5cb#s z{7S9X4Pk@bO!4FCSM1)~p1;p%*rb9kxuf{O7b8rl6Z6=SBN*H{N>CKs8-=tf`}?fv ze#mvL!vT@HY9<$4@5akb>rM(l%HJ|fgAY!rMSYIpkSXe&mU+?$>|I@Z0R9D4Y=W&X zc1A$|tjrF!VTaejs%uZpvH7irxyr5$)1MW`Iye$u8;rbZ4UWK#o{Ld7I3xc97*L>9 zJ4rMs!GFT3oz~jUe}!YO1Cq-2ROr#}6n6r&^4@rsB_<|;LpkfES%-9Kk$#I)7EZAS zGrMWGSjL!Nek(wbpX13W0jH>xMu$ZyGSA_YBN@{D5LO@_;FGI~_CX4f1DDWT`yyY+ zy?FkOp?kn#*zi4vj` z@@kC=uKOZ{o;?Brl_e1*@*IotS+DLbK0nZssexoF6f@vdtpsXGs?aK$94_+@tA$3d z*-Vw2g>RND=^lkon&#$1{+j-M(7XL<@x}KWB5|haD?R8NoH%kptllxsp6XgBR@#{C zolT+)mc^QP<+JZM9u`~e7(KORnXj)t)U>RyUWAK?i0Fg^M83X5UiBKF;21)-c`3le z%y{li#vl0rR1W+tfD>x;`WCPh-~9y*pj8z?fFsr#1xO#I7f^QT#%irmQeGR-lFzC$ z{tF*tmOieD#|Q&R$7_>G@?Oy@2QWmVP3^bq0d%XG4|uc#fJ3?JL+7lx_-Cn)0p(e> z&M*cY1MIZIqThM5;;8DRf%4{3 zCxuDfq{Ybq()S+VjIw84J>#^e+kXa=aewQvTX_1i({oaIC~tiR6IaPt)Zqm@b-8ca z^ur`zCcF7{fVP)3^iaiSJhP}zHYPoth|FiyipMtJ&&CKd9B&h_G=p&f_T!o6{SjGN z*KUkIdH@s8IL2ev3&IzXc-Swg;bE~!i6R8-gAVaqi2}WztJlYB+Kx5&-`W*qNTQ?#KDR8~lLguDK7%E)FTMgj|(SSMnZsJki07fYxQm zFe;W{E|~h~ftD;2gYI`T=*ZuzLu1q>?stIPQb-0r+2lBwuAIo6|)GFt0HF;aNgArXqC zM6~^-7_mv_S`o6tTrB-ytISk$TppFtdX%jBia;vQ4d8ewQickvK2+u5$}?pcY&9#d zv|Qi~d^!B^QY}qHtIc`!j*%%=phTs&qiE3@t9*^<6$CgBt5B8 z6blcGeZ1g$OdAXQ5=ev02N!UIO}Qc{W}Z1ef`B*t{%3t+FEEiaff!!OWVJu&F^t;^ zm&bbm6#^QDJ6uK<&1ClMo@Pa?-EqGib90ObV=Zryf!c33q%>s99tl@i^8TCKgVbp7CIR4;hXhfx?1L)8?cXo5Yh8CTSbw~fC|9ex zQ5QR;%wdh@RaCpQ&_1Mwy6+PLYKmbZ-j{f5%5u%b_}&N!ZXp0Z@vXPw>%789bdUq5 z3@?Ps^ci!OQ3WLPA598g6V~=t5GxBzUJinxR!Q@Mh!BbS&7dM zq#IU9z!X)Qq=DDz>eY5c`>z^$d&!n3lxdw370XzGhPs-Ng5kb|Eoy$RNKfa+ z=#w5OzA;n%U0;eENr{;+41}S$_IZrI((*vgfPHGNQ`d(q^LbEBtB9ySAP&nucW}X6 zv>wS9W?pCIBcFwHd&HgZPh?)8ZFj4cgtY61U54qU$$X_em!@vwKXAz>kNCi>e*62# zvNAL1BwOJ2>P!v41&U#F6bE0NkI)eBHt?OVaB-af(;Hv%6_RWlhFS8OOm6c98j3#d zYgkp1Dm-N`(y#Wx&P)U7cu1yfA4mH5mKAAblNAe60u4j-Xs8ejZn?15euRbX1frnf!oo36Dqd>CLL#7)eJcQWLT@w!O#~ik3)g%43#DIzF2O zSvnCIkXG<1U7B5me#~y>b9$@dDszCH2Z;-&Dh^gk`pB<(?W6iHqjpP_)~s7XEO2Z1 zKH9ig1%|6MYGw4IstAd`Ei3Fi0I@GS94PJ3|1ZeKUY*$1tM&6 z{4=9s=B7u8rkhu2oQ*6=?6C#m;p(aG9Jh^@fB+uXPE=-P$K`Oe4U`t_?rRx5P$qN- zgkfQ?nVo--#>%-X89-Ik+m%tEm%+*8i|jETsWhq#n8jXp3k~gq)7eK?PT@wY{}m`z zZA)?jx0md`gq>fNheb`62BVZxym{ds1yM7BXeib%&UiP!MwBep%aDH3knH5vh9_9P z5<_zODkI9#bhal+68KC_e6yZXe*;C0h4W=hCu^=$OjQXVr5Rl8rM~l>$%`oe6xS+o zS{WhdxqJP_J3MZELnp7NvIW?&!|>Tht_0@dEy3OT$|eXu9Ct)jya7u1L$Q{;{6qv# z^eCNk-Q$%wP|6XxuXjncVweLe{zTn3#FbC~PB-at zwF{F{h`+mne%I;xI2E9;_20km2zu!4rDP7K$<$|QEu!PF7hbSxB$X}E)ARE&(51Vq^pS0<6C)dE!+ zRYCvUmv>5^`%H?b8qb$F{n#k-#oXnaaU^ho!;j<^D&U&K7REe<@m#oY;l}!2- zYe8K<6(cwRp~#h&i}q^Umo+Xk@uigcNG*_aXaFN^>mAvWj=+1V&^ZIFY|KEh60eV)M@o*x~a4WJmS_w^UeCUDY zE@=O%)cDeprLuzne4GKUmZnqQ9G?0SjaHZMaeJJ=6aS6B?P}MS7{KNF-EgxqGNTO{`=cg2O*%w$==z@z z&8z^~B#Vxv2q4Mo_|qq#0o^UfFf+l%)h?%+3^Nyi(~G3JJgUUn6oT2jOPjg7-c0r| zi?G)TW{_dYh43|^yxr`h5M-V^(@0RzFFp} zr@fAVq;kvi9|H5;z}eg)57qKAvV1_=0nT3!Fj5{Y8Q+K^)EL$w{*0D?nj8cjqo6c&&t_jfztjQo6Yi#gBhMBtz4bT*+=|M^&fey`HwM9# ziu(aOMIMC6Hy!e$V5)06CZ3I&`a_ zN1L5)_4m97tkqo4o%j4t8>z+4!uH2?#WjGvf`{s0uiW2w`iC&)Dvv{Ljpwm|dDPK- zZg1V~>+Hh;5aoj@v1UnP_wacuRJMwmZ~wdU?vK)jd2CzsBGa1$(Us@#A=sE33`0S$ zG^c)_vvP`z&%^zNac=V%P_~s4W1YTI>izrqym>_xmx|?;!kZ3nx&<_Eg)<9=Fds8G zwv+?!RIKnnHS;3ZjUDIDmd%|!U+rC~KV3Yo=#|;(6=A_%Mo_QhNdJWWgfbtjlJyLI zu<}QQQ}`r|F?<}re^PIBgug%1#jNJ#MPiS)?WJ%gV1lv1Q7CiDWr8GO^@gW;rw7XQ z!%8v0mhvI}_B&ZXsdyLd_yOS^?2Vp7s-dgwR#|$kJn3E3!ti_qwLK+k3eEL`KDoD(UgKf<4rD_KVoIZ~i+keCnS z3(KgD)83Wjl}oE6pU=|BMJ~Q$6`<=2X6c&p)l~kXy)olJs+?R&C5hL!cHCW2Q{28Y z%8x#!!-Q+$?|x#A!=TXEsIZPF#XCb4H0i+dAcZ;%Crg7JM^uck1gbXY=MlGwNR=dj zpUl2zb&IEQ**>Vgm9HH+aaFX+?$;0Ohi3NNVixRh zpF`EmI5ezScz#-E<6JSVm$HdC(Dktr4`mJG5f)A7my@@+%QE*@U0x{{6~Ih#%c~0( z1Ys5i;bGTOSR~+qjB4q!uhZtV3XmSg0$pQelwW9{z7#6|)gxhv=Z$96wL@L-ML+TX zO1V@RG*9S+m*v8(8ihx5{gKH#w5bsZwf`_9+LU(JRbj9%W?BQ)?*aD36^@0nfl6mw zE+8Lk#|lKf1VSk+tl1JVBjJ*Yx|Ui9amSll5TCR)uaKvn zlrfzq6SkNypF0~`P1UZ+nZN7Ef<}Xlfnz~=lvJ5X4il3{*-lmBNHd&Ie!D@bJMK2R zyyjLRO3;J^J*DM?Y`b`U%8d7~G>Teys3EMDw$Z)|%Qu^;9FocFmA*bpV6Aqq$;rYo zpJVD5(6B~4(6pZI^)281b3#)zVP;T%#|s$eSNhmq@cke4M{8NMxqp+Dpqm7$M@4@2 zM_m}jgTHfLA_130MEIBIyZru*vHdC1+WFK-wDJRA)l!W#dB55(^uj#vVVyw(z*O?- zSFQ}!M_k@ka+j7L3xoLrqy%K1N>o^##4Pj}P?s`?M7px`>V{(aeWQlGG7MkYIM|`W zt)&WmgSS%uwa+z)hs5pksf?|o7mLCwmkg{ z4|v39#L|IFHWz+f?|;(-SL!^TOVHe-tCyQTq8SdNW=8o|%QDB%lqrht^|tlWP@d%! z2ZHk+_uSxd*tha}mPC+syMdR0Z|>6m-n3k8Kd0%%kRJhI-;9zcI+sNz3#uqu<$&t= z8UngSF=v^c&{Y`1GhAo9vg1-quf;lmCmkf#Z7dbEW2i$CfM;v3k2r{#gC>b^X&Wat zy(fALrBSOyVVkBSpVmyL32dVdj!mBl70aL;N@L_2Z^=$+z(ooDCSubc%#spUK9;6z zRjl3YUn>k2gW_BDqr1vT@a!;~O4`lD$=}RHc4SBibTXk^g^5iUhr@&mK}~QqT><4D zWnbFjpXBszAqSYszMZMJhiEj4)y2e?7zj0jB0DAb7$3>Y-z?#2F~}#BiWee)>P@J5 zG@_cFu(M=RNvn(R4`J4SWS4laC<4+DvO^h%+^m~6M-R|Q#?(3@xJy)XX!|mojf~L ziQ|n25j~F|4p>9S>j&{VAgOF6Z!y#;}%gLAAbruC> zkbzm@P4I#xDCvjDcm==-jA+}ol)CY3rFycy&{XhfgKW0UQ3G6$Yx>m%@ae!$3OKPL+Y3x`OrVezKqXxK(6q%;ov-zKz zJ;J@*6tIi1s=ib#*E>@vJZJ{HHm;u?e2mBm6RQ`dS)$^BiYnG_4O5wtcX9MdmzMUG zNH;^>Qm*^AM?WPH25tE~`12H@l;i(AFF&kOEXSWf+fa((Xnv5$l>0~&uk-oydcRho zTT4x3-@XP;ovzIFK?32WRLZ2S1}@gTk2*;BQ^i^w)NdZgi)(s(Fo|}JfkDBoh^dsO z520_9bZWUiiZ7H#q{*TNLOkKS*=pEFRauTaz#-*%rybbkVu56b#M6;k7VSNZQ$@(M zf6^NlM#i^q7A>ETt2R3JNAnZ?seS7Ax!p1)ONK6aakS9#Set5B4c+mY#qv_QIGgV> zpoyxgh;TlY%>2Jx<(`V-m3qiX(U%>(7z~;vS>g(_>c*Mpn7CIS+rB;&}Z2AQGMjm2Sd)vL763VUH%Qk!opTn zjEEaK09krTuH~=CLdY-c)w`tDwZ&cH-Et*g<$KZW~1OTL=4M(#Kopy=@>1|%XwCc znGmtWC5_f~7Bd5(u42p+da{}v9w}5RQSo40>CUI51{p_9tFFCc@vh@x>C-H`u3np0 zi3|HU$^GH@JnG4#bTR-$E{zm=qYwZt<&zZ>{*u3%R&hr^a;119x` zgezmvgulDYibRQI7vUYA9pVM#Pc|%0lx&55wh0==<9OPy6K2zwPd^-7z&Dv>5QTE< zisSF5KW*>-ULos8iHs#7uT|9k5!ls7DJx5>7+HC;l)X<;>%m-dj*zxkE{JBOa8=G@ zf__H+XdaB5gjmQQXi;`7ij6TF&)e~50@)CbngpJ};SrM?Gkn84#ZJpdzUZggfXXjBA!WcRDeX9rcB3Q(+PQvSm_KyVQp|H)eh}|A(XA#g zbwVZV^P}$}BzAW<_Ovt(8X}p!v3Y?`J5JFYM`6+P-lCghw|`_3;qIj-t96RM=Uy%OX;hN|%pNd9P>+MH5W;XRck-O;VP;zuuvK4TgL~F+ERyw0D`#X6KB` zUE7acKsAnEjTON$G}HU`1jJ`e zKyXR!>8D7`M4Qf4o=IvLRMVw;cM&d5?6jdaW*l4u`dC;gJU@#}WGc#TW7qAPco@<){TdXZ*z6bQQSy@i)P%!Sg8z{Jx`edw=Ff0F^<3BeHGoHk zP_tKim|Fl@Be!5~y~KC%0TQ{55fc)$j<7mjB0nn9n}7~nni@J>w7sluLKayWXZ@+S znezL18m%VtW{@|Gc$N>Ys8h>Rj$ss z>E^7Z-7;;B-8rtMSRYH|)C0nWZKDGWiDN3-5b;^C@SZ6L9E3N7D!g3%C0&s{Si~mpfZO@`VRGg1JfEXqe?AWd zw?yjl?M}pJsUx?PhsMLJtz%j*mbmM576;gbVV^O}P+JY!#;ZBb3Q^osso!^oZ->Fl z^n>lq5+n0Nm{|580p$daj|{34Wqla(3uv(8WS%sQ_h6kiqQverGjclbBSYbh=#L$< zFgPmcP*}RF6PQnKPa>dH<@9mbN%tLUA#K=q5u-@QIQRTKK<=b78QI&#n zD%rLmz1EzVxRSQ5I4=Xbp%_*qX*~uG`0sAY+A>Pq((=t4YpYzYTOwlYfIp#<-QOD2 zlUce|mLN)as+K6)X7lTckq}SM4}UcH{VJ84FHBoKqmf&M$D0*Ghr#*sW@7@H_@RVP zh|K4fnNW7pgNGA22|+c2OPPJgtbtdn3ByveoH#m4EBk8;8Gp0^6Qw$vLP{Fxep>s& z1F>+qAX*o1(ZOhgFJ#ExR}OKG!JD=3B-hFOgEfMtak>h7g9k?Pb80Bhz0qN|O`o>_ zL94{OiCx_rH?Dh>T2sr8QWGNo7#ZVEFBYaG@u-e_D2=9)Cox*0iYQN4+LeQv*EL$l zNlGGmA2nQY$VXz60<=<0Tl6fe!+E^EXy=%U)^X(@qgkz;^`>YifgMHJ!zaVJU(dr1 z@@@8%hrV&g38=gR5CuZ3)VXPmDHX>{Thdc z(5O#ujmTFr1xf_ZVI?vh4_yqhx5=1-AmMZ^nhBNdH)fgihk8&`Z$@hdm06`l^U~y| zz8bLH=JYw?N)4_6W|!fZ6pK+2Pn_&?%ruVeGni5h_mZi-WxgSP#1zV36aBi|Mpo$~ z)-1;K;kA&|D81GXuveYY50bYQL)Ff>Zwo~|@XeERv@)GiQ8>QZ63rLhKJ1#)rbrpb za$zacr!~pzSSrUaQl8W_%fFYs6=raXhOIB`-ako4u-ExfYcJ0m0d}H0XKd&A{1^LZkQQbj8s~>GQiH*R?bXt7jPRkDG#jZHqZMA|dw>oZ_}O*RPYKFh%ucmd zU=ip$IER(9QdkNH82tm9XW+F##bq|r)b;xHSgjH_7ZcabY#zn@F)3k(WD?6$aHLoVnaZWk0PVvZEuOB83oz z!<}Emz!fVMkd}5=k&Ga=-&-auz+)fwr#$D`?=vRx1Q$171PZ7euHRjZI97dl)Gy(lK0GtUrb7$5QFU>1Xj~>(o!|6ZXSl!}K#|V6SjkT2t$e zl60k)ZK-%^`ZP~O-xp|lUg>9JE)@z)nm*?a!w9}lZ3BfUU(1s1-^&7?%6tU>R$h$Q5Qs(TlK5 zuL6`?sUkU^r2%qzp6AFx9CHTTR2Rz{!R-~PL#x3cQv}6r#-Hn!%ELNRmQnRgUX^f( zYdCU3i`eGpa{-;xe=wXaoAwyFNCshvQ5uZhDng@TJOg-SYdj#wUPU^=*%^~v+rBGX zGHIyk!D1+@T2^w9;?P0-Rj~MwyZ1*X3QjLnY?LftVBG!cY1T)4sx46YIvS$P?*WPYTdlvW%TUW?PeaX{?<+=d%7x zX=hHud&2!PBGNJsGDWC6|03b1YRu1U{-%6C77h9#*|5T=tO*)zI7~W-;oylH@a}0J zPJ;DmXXbOnu!!r*G3i?xZBk$mae{$fCB0Q_RuvN_XV{{^ue8@Vf3saJRc1kE`Ey30 z)TAHYJjHGzTQHuEKf1nS4HTE-7dc0Wo^XH~PY*e~kTrRRU@xs5w2TDJW+ZPGDDaXH zi{?$(BrOvFfhq9W5o}jO$j5i2t#qbbeldNcKA;(So`S~&Hv zO0xkzD}P1-Op)VTBVWeAPB}a1&VoE}{C=YF1L5#hk{llGR@b*S_q=bT$6puOYuQ@i zc9GuF%vqAzt5hhs(QL;Rc|r1$Kc#SE-_F4qja*n($%Gp~Vxe&#*%aQ#Yy7zPB21_V zeBK2B@#o8DkU{iA)YJTpgA0?oU20QrhwcvPLjL$&JYf@k%p{ zqBv+5#a|p05LLIm=k9`RM{6WIp>88VQ4u6N+Btn2Z@9^9vKPYz zE19`#k`5gGK}o09rsm5>`AUI52xFe#{#q?wHfaY;n89Nt=??;~ZanJ?R;h<3!_B%j z-ef+Moy$ax;t{6k2dIQkCjq`-C1<$Lk}PQuzbNN?HLrPyk0%~@k>EAESXte)FCj0+ w+>l+pVi(5Tt=a!R-v2+o1@QlT+Kc27@rk2?a*Ph}-vl5 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_07_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_07_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..ab7cade70dce697b5041430d1e7130acbbe0848f GIT binary patch literal 4322 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

    DC)s>(i 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_09_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_09_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..de710f6756ee24304ae1c04b20927c8e77222e25 GIT binary patch literal 4764 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 i7B+0QmK4M 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 E1HtJFQvd(} literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_13_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_13_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..3e09f265733c8e1eb725496733e6b03b2a43f725 GIT binary patch literal 4081 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_14.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_14.png new file mode 100644 index 0000000000000000000000000000000000000000..a168dbcc1889ff3cb39a3a92db492a2164e0f0de GIT binary patch literal 16343 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_14_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_14_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..18d3ae6fc22f26a93e6fdec6a357b08a01882fc9 GIT binary patch literal 4549 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_15.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_15.png new file mode 100644 index 0000000000000000000000000000000000000000..c521ff200017910ff223bd997e80ea0a9aacf76a GIT binary patch literal 14818 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_16_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_16_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..ab7cade70dce697b5041430d1e7130acbbe0848f GIT binary patch literal 4322 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

    DC)s>(i zh7YH<_J3yiHM7Q#H*O~Q=p#;@LZRT$Ag&9BOGL`C7|hFX2QZlnt@d!3HDI$nO6Awx(>Av~M~3()J4$;iq=qd_hw zC550Mwrnx3VoD?o9!z{Zix-obX=X_lW%_g)8)P_ihRbC@f^~V3sc@IGE2qBR(EmTOuP_w1|rr&9BNrgoZMDG`YES zbliHe3uf8d-E>fBrLSH3|idjcnb@ zv}uHdFmNCxB^V5h7=cd5wrxE8F!$ZZ%9WIrv1U!L@vEkW)>f`wz4c1h%(Aniz8=8E z1&M^@WTaB&&c)lCKmL(3XDBY_zya#(nJ|G%mpFG0KR@ofkHSKx1^LldO9ah5)gn~&dHOMma=7w`Gr}6xVT#n z{g|>MU0!aqtf>i4PgE)f3?L(enKQ}GX8d^e?$Fg$8d5&qd~8ypa9_D zL1Z!x9m2uEtja7vMFlDqp`kZV(wQ<{7Z}L(>qsQzI0Nlqp*5<5H2p5@FLGYhi>Lx!+x7Yz+JrwIs8lpG5E4RM98W$;aWRF3j2eYp&e5Yxn1DvZks~-dVr$E`ZM|dFW5$f1 zogg;RtcVCsonquje)xfo4)l6LLYO+0L4(+~jpN68`f2?9h>Bw2LX=8Yt>UGZ$jd{a zVC+}~0VgNE`ihnobE>isMMa!AadU!+yJ$2TN=g_xlGaun9MEdf>B!0=E{=){bz5@ zL!qFxmBK>KpXb2`k;!m#Gj{y7wJcghXeb*tpw}~hK6!b#xG-%Rd-tMJ(b2)?&1Mv3 zDQs+Rc8c!o{3|J8zyM@2ii-&iW#>+S{Cwi#&}bMnincb2iYO^z)F_lnZrmUug7$Xu z^Rc(b$q5%1PM-YFc&+zfx>=r{R915T{e1TwVPQl>Fl-nB0Z64RUd+gm)YPzS8Cos1 zwPa@_m!s3s+)R8tjg7dwQ(H@IEjpbA{fJlTyf>OzZ2`pNKl@(uq&5D0@rKMC=QBgry7$ZmG;(|(rhX-C>BqUH?jPtTw>Jd^tXYGP zPwyCN{Wsk*tF4Xve6C;T-FK;};rMZe4`XZIAJ1EFq1EE% z#;2ds(ZTlZT)xatKXLrHxwTlFZkgrb!S~;D;|2-^_V!GhhLaOdJV9_U0|%njB9$T% zQBZ&&@W>+^I%M1fpi(h)D#^)=8)uw)?NxNkEIT_A5^#2A$PhX@P$+0_Mx#M2X3`|4 zP2>D|Dl3VMq^1Uuh`Kr&8)c##t)h>d0MUbI>y5+WjSaUm%QCnvKC`7P+KS*K6a z(LqZK*RK;8h)9G|No6HNhcajoR#udklahk9H9kJ*^#lb`UQT2r?d>!+;^&90tyzWq z7IfFFfdeTlq`I1{Eb{W$xs$acMm#Ux`eeguCAz5SX&zp@ijKGd^u;&VlW_;;_J(qGvwrum`G6(f@v9Y~( z+irIw%g2Z6YC1ZM6YW!`uy7$)u5jW6Vlg8}qSc~Q8W*S?9Eggdu8yakV%#{h*8ex9 zyJqS2h(yR_`1{k|&Z$#qH2mpLNF)>%A_&HLeg_BI+i`X#HJ--2BqlO>a<6uZ?wjT4h*U~j8&|LX=dhlS z4{|vN4j4PKOP8pv<*$Fm#ii?qw(n-Tdq!F!!P65UJRDnFu3RA~2*BPRy`J`V+}s#D z)@;?hJGg^w{uLGIbeukoT5YtfqJs8zl9KTC?R!pfN2l+@!?CeJuSYEAY}04tB8 z>>C~5?8BU(&w5rjPiARHLy4b%HCMLvGcQB{qq^isb@nXeB9;1Q7|*st&$=;_`}qEB z$b|b}Lte^3V&9ERy@`_1nU&HiC`=rWh-_sPwS5)Lg+t;%*ybDb)I9e7^8Ul9N3KoY z(pmP>{!6t(kI{h9mbCZFeoNb}HFS_PpXK*9NCXf$QLL;QNb7gNw>oPPztrMkGhBPL zmFZ9oqz$}YBi+ttwOV5}e*O3_Uh)Kqj*OucSoS-XD7@a5d=d$`^@JZSw#bBoBB_g5 zl{Be0A9%g?Ch>UMPadvT@`RiWH+Comtnb(9o*)t*&a0Z1=NbNJCojjVhti)W<=uZV z>k6#YtGeCf38I9wIxn^6JsjBlr1lv8`y)DDbdQx3#)kEV3k(%Qdy9Maqm z3yeh!3?wiFZ~jU%^IZ#TXlOvk1VQ-T^?iN&eL3jqVR4|rVaD|RW=aSaL3Me#oxT0- zkbdXs-)NrxVaKbZr7ILp@3(XG&CJZSwf`(G`d>`x*BCYoK}aAs7d1g9vPT_P%js<$ zPmgy$Y5g3#0v}FqvPqdJ2>pun)f2aj+z<74^Yp6sU~( z!cA9K_i|g^|1XJ4=grn9y1?s(ngFh=zIgu)hRaWTdwZW~Kd}0bG04Yp8aJObug87w zm1Xq7;r(#FLnG$x+r+x;yACEQudEdFJ%M+c{S*y!Xw0=P)>ae2 zu(h}U=6<^xLeSIu6}u|W`u_S~P5Y^mpWj_~2v%OukYUdwO zWNkjjLjCO*(?;K|M?_JO24mon`?~mEpRA1qJ)Y_LX_u(HM^W>L0wLgf?UPH##k57d zgpmKW>uMi~y7+ds$H@VSsrQ@}Qa$MQ&%jD?M@PWPYBzFgBun`*O)J@%z6Lv%40bMfNnCAweWw<>KV5}BDzcqDp!ga!k4)#Yco+B)y8`~`KX7glD@?lr~@?f#Wqt_;$TEzWykOe*Hx|i-C;c%hJ=%a7gxURH3cf3y3%m zYwIXDQyYr6^MV4e4>aXztZF`N=lC2Xpmazl;=U2ZQJv0fE78Mj))4ErY?#HfVh~g48Le6R6I;knoW!zlb+IlN5dHdUAOd`$Y zWRN8<+o<`&?o7?fzn^pj2GLYoUy{_&ypNZiBn^XhVH75$lDqTs^8#by0HIS>F|oLK-}Q9Yg&fWhP)8L6O3?my3oA#{bCXk3 zz?zOr!|sFx3+IjtJ)-v;3Gyhi9ph0|P}|Y*fbunwwNR2FFKEMcD&$AilC?_;l_l8!5#0spD~`kJjY+kMU|4OO^)9QxJI z@M%QrZGY1vJGt4FtcXd?QR#0CCW(oPqH=a0WJ=qJ`>#X@aSQUFj`$)JZTF?e#CS z$J4s_fMF^bo~xChCsZP*^A0s583LtQ)*gH1rG{jx8T^|WHn}(i{{=(YuM0^u1EsL@ zBFaF7T$b-qzGRpd(@{{U!@c|vrEeB+k!}$O%=JGV9013n9MVu0<%^BZOPOM5*@3sa zHJwEiOOZZ)i-)tlm$;G0{ z#ZkXUA)3hYJ#eij3=vx;vil_o1wVD0Vi7CbA3GcmqzZCj6**43S=3B0I8ne)ul6qiw>WktmVxkggE~o`j&t%k%vkdA2WDcpwDO zPQA$H_hy-v`QnR7U@f`OWh76jp>%PN?>L#Ms@WV2wUDfzxBxhPRp3<~rBTj{*&{W( zI^P@Fu>z^UPEmSSG!AG0d=)zX^th{5#-i~vMvL!&5Fz1;jW9V88cl$8+!$5-7r7!I zw?F(`4~rxer^DOizoBQ(@@baC@F9CQYNN!6D!@T7SI5adYDO_*Nx{Zp)72rYn-_8^ zWmMypiV7t-7dcBIH4lW?`&+waKvnI*aB$3VSoFjW_jJ_6lA|;N^J@Lbp6VaZOJQtP zSL}W$f)C)h-_3SO$}U|j|27y90w@c!2GwR6++A9X&As7OGgzry26>58eCdbGoWFec z(b~0?_ZhbkU<5GylDY?ngN7~UKw@93Ayi47mjYO^%H1`4Q0S>56^s>zIg8F!JyFtn z9E!~97?CMT)!3CQd9M98Et4pMgvmleXg&5!Edr|A`iE?z%=8@yMTM1h`*szNOw?4Lj5`lekP_nAjJnAA?pp!LDcYQLkw4$q9$%LA4cZ6WNS6cwlpN}3erui&@Kshg3()_ar*DT&{f#o)3O>~AZr?*oD-0~^1kV{yY{!czy%HwK% z4?nW+yo!$}P4rbQ1S8=>PrDcsE#yn)-%PP(v@>o+dt{NdRD|4^An1_0O{G*@YJJ@B zKw2+=i&kG%B0L0bT(aH-sNzj9-@4QW*Jkb-Mv1>Q^kQTqwWOCQpNX-N@wC?@0YAcD zV7Ts$ZFmk~aqSB963=fVOfuYALiwM5-s2H`N6ny|n| z9Hc3LTZoeo(X?g)Xk5)6$;3uMY4R7)f22E`_RarPSwSk$85HYROO8mugvUA%&!3Rfp5{ESWqj@9X;1d>D^{=n3 z;kWZDJrwdVTcOd)^!UO{c6W{mmzJ6!J_G1%+<4wzNcDYV%jx$?G~Qo;1OB%$d(&LF z#k}FJi~#jvl9K$$oOY!11MO067F92b|3bu4zIU zi1@h=#ph{tlG1{d82d4C25+2SoWD52C-nry>!iqZljxb+<(2szDBrD)zf?b z{D^+^x=%qrxbg=Z=F2{9**YPC7By7qic|Md_mO59@=et=4W?(#{=0KuhvG@FiaAfj zsA%s_`7Q~(H^cS-or7v!!bxH+KrC`5Mov%@ougj`Q5w6Zr|)fv!#!O*wfRmllec=S zmB+}{K1n>6F1~$^a!z$#TwtT82*IlXgdLTFj(*G|HILei zW3ndO-0~JGA<=VMo|{@}Q%B#aI7CxbVP)sfOrel2n^zQ+tL0sC!_t$^&^S;|fQCQW zT$!yv#0UA5p%<&UYzGCAHo;xbRWV$k_I)vl{5SjoXLWeM%+pviE`Zn?{urVT?IioI zuBY=1o3te0IZrcQH?AQ875Tt=qTnf@`Spb ziWv-io3j@*0{3F%H+&?GKyikau_-r5IxO@|6wm9E_OVmm;UQw5Q^E+)s5k9n%2kla z)SeR%@Bm_nHZutKy%%gadUI!JKuNAZBcSwyukF=Lba$%78Mo35-hLQ!Q25_xyNg_3 zzfj|u#IaLaBpH=BeetQIDogD$1>oQO8e3!q{9@-mM(sPnvEw32)~sraaLYaYf;=y4 zMW)p0Yw|I_)ja(^T$SU-Wv$ZQWS!P^s~u;ET+g*b;LmCwMW%*EX$%T=voDdOs>>+) z^^WG&GjrZ{JYAHylKU17$|~1_jghKJ1%s;m^_(OuY!;33?k(-O36m7Xs3rXBwJsp% zx#$GvPlo}nMZol@*_R20=n|ZcxTYa$KI*Zjq+{wl4bm$(DPOhV zy}TkJOQfaA8bs_Jp-b4PU)_zt4);Ri@1nPlUHt&1sHfQlA9#MxQ!=kCSibZl#{W`F zulqA*qH;E;U167|2X1>jI>#u3!V7BK|5-g)OnS+m>$1%S@7coVOmeSbR;3wR&Nd1a?4r`8a2hUTVz%^rAuslynmU`%5hg6~36r=tZJX$XY4q;pJmHx)9@gwRq2u;|=^%&%0c zN{M$F-3n(vP?Hr*U_mS)8=9-Wy)T*~4H4F}@ABo1sP^1-c9Uj#|CG~ORST-PTg|b8 z5a}gORxnhX8vHza}Tmu`uL;_A`+^)H_@?B0DTtHjW&uI0T& z&O6m`eA}JKRwRr^o(7{4n4ZzSzU4iZPz=~&9!oGoPv-#Y2j2mQF>+1?E?}zinyukJ zFwq&4=uR+_8z4kgfsxN7e3RNwfmcif;Kha*Y`UevQ- zaMC2TRypg!odt0d_`U>9ZCmGz(oz5+QseKVmkiOvyWsr|7{;wa+P7V;S;eK-35|28 zIiPR823R~@F`pPIc!(f4v9K3J1jZkOB%asf9l8$i*0u}ilhTDq>`xF!(0C1t*#aHI!ejdn`A!s*c{R-FQxGi+EV+fNLR14(wcL{RBWWB3udikTzw)}fj=cu z+%(Q;1gnkWw59BibDgO6;Um&jYSu8^h9fF%P`bznv*NAoPU@%R5n^Tv^KPGk2$R@N zz?P^mRdwB2@$aM41+KsXGTuqNePC}heIO8q!>fz3v2_I>om!@0mM&X2T50DV&e+!H z-TQ?i1UC%LrrG}3>iNpr#nGI6YS!9Knp--|H`K(YGTzViy#k}^gZaT3Tax^L0xX_+ z(A2+(hgW+RE{h)Ptx)b-m;Kxo^hq$M28DO`v}*-HiwOjbY!P%&1UQ@>GQnm2nRei- zaQq$V4)w4F`q_)=CBv{`pC)n{q4CH@N+NOmqEPTS8l;5$3SK;x7_FUkARK~@!Ro^E z+udbalFZ9h_ah!fc-%11XGL-s@81hw91r|)I^GyyD0q-tFZuo}0oeo(ogMSV5DJ2( zT!tB7`erUeU4q-`E5yyWyMIi`C_)iz_$~SF)mJ)r;{VuY@tpq6^@d2m{7H)y9KT1o zr%9`PpU<4Z6qQdETb}g&+S@*cTM?J(R9DD;z62y?O#GW4|tV zNzNy7+!3GV#^PMTf!4#O*NEnyX1PcnxQ1eOfzZ46l}u4BCPK~}7sUe;o6u|b&(OE? zhO};%^-T2+leMzZJ-3dDuiaS2R|FZlnLQ0XblF0irY;%HpHs6w$+XV!F)#pPno@^F z09#B?wRnJGyj+I75b;hu8|2|?|TPd!sbBk}p@#X`O(omWb4>J3w<_$+^X)sbdiCaft;L__m(dZ8JNzDVCQ1cdSx3W zSJg#NNhO!#e375SIFwS+mJ06vVA#`uFozYQT;%iox25t@Sx7^zV4G5lcIN<;2P5&y z$+4-%x^Vr3Uj-|4ZXB?noRK#{(cGM^ddM-)mlQ8GtBN!y;ak4=lg^Qo(`)HS+>ajK zz@(zJ8^(FUBim%j?l?mF$9a%jTlss^=(@O&#t~*dW($FbSzmw00UBl|bEpZTU=Y(E z>TO7bD-#^`9OIN-H7#$EB$J#XtD4r zJOBi8Gh0Oq7z+KVbz2J1) z6xM@)plucXwCYxS1aSQRSiUypmhbP$Z%C=#8=;Q2Syg-~Uj|gSL3W?MgQgI*RB~&c z?Hb9>1@z>Gd_uL!ZA`o&q~C&jfa>d|=0e2A%?1Lw$!cH0)a>KM_7M_XJ-$!_&S|40 zqpz77UKt3mr&5;QPbPY*iXS73f-0ob$b9}`-CZl+wg~UosM=6jE^P)gQl|qWyZxyi z57+31uq-;NKoIr}?u>Nw?@kJ(IPR-w%JQLFVEBC72f8!Ni5S5YHPiKm#6E|4+h9Zv5ro$q6F`scSgNwdfSTq?KqB^5kv-*q=^fRX2&sX1)! z_PT_jM**7N=SJmLiQ;iIn0A=FFpDYIRIV8A6Bpic#QvpZ0h+;)0Z-H*fP#9%)|iA`l&V0Ty6_fS zS~_Q{n=8yyC-ejY#3iBX_Q$s^Xhca@NqvL7bd3!skY-BWH@s-9xG4+aIN0CGe{Y7Gp zL6*m*_Kmt5UoDuyIk@qmo0~!@?~8*XS;{w90z=?gEvsZ~Hn1gAGfeB$0=GUA7!Gwa zq{-AMUbX*Xvh-zW4y{;6Mx}v6d(yG@?ixp!i{23~(y09-{9saUu@!?M21C@h4WzF1 z?Uy}zHFh+Mm2&!Y)FkEcMMD4aD^IBg3v?&@F!RD~&)D%5jp=5C;<3+lo3?IExG64p z_2y^bP65H|c)*rGgpE>tB3)9N#T*(LEv%2o;+=jx zp?*S_0sS(yRw$#aEo3bIn_9&8?4z=>G6wf5!^3Mt3yDYZcj`m&DSSc76oCGzR zPI*>6j|D}c#WT3J+e$DlS%FX2>n*N2xEqx;lnm(pOS6=}kVSa7S?sRS2Lt@u$2aaN zIJPWahb<+F&|I3%F0mtObmCUmO)xM^?*FSaRC_Oj>&0C z>x5#reN(q}z}jZ_XIW%CFJ9O__JFhx0U$Ft_7E)V_I=Wqj?`i8;0uMyPRh$SQBA?A zlUf-=Fsab6p9{hg`|E>w#~i1aBZ$&aPOPr)@1rlq`XL|{9i$A*v!IKQ&M)C%U zS$kfaYrPC-tsgpY@zIw>Yb~-KI;5X)iOtj9`xBTQZjBg6&DwDWM2~>nn@{ukpcK}W z1Fd$yl8>oH32tAO>u*Ox9?LZCJRkSlr=V`u<1KsarP>&cv~~qvH6lew0Gw+}M6Q<& zVZF$KQ_iV8TU>}Vxzp_l`)9?6Xrc7TeR_ojlnLr(HSefhhC7~>;9$pK+Kc_+Oz!;o z3TTiw$*7l#-OCu6$k!$j%+Jk_c0Z>Qj2Zr~Dw7(^j&)FDKKM}wtJEr8tlQ$&F=D~> z3+#$LSz2e@os{>G$eMR?Mfh)zw4#dp8^y@W_m6Uvw{4O!A$sONWWV4}HzzLOFGL4r zP6(HC5+!ak@gnB*U%^M(@n06C&g;5i%vdu2olfWb^D)l)J2K`v5!1slXpzVQO{ znxSpyN6EQ(CycE!R*joqno*ob$ydxgfFCL1F)nZj{3WJ*=-2KD?ey~{dgp?3D&j7% zAwOMXYSHR4ypKuGS{FmfZ9966+#9XG+|@jO5d*UImMHgE8r2!Kcc!U8!9RJV!9l9Atv z{IlM9NC=Qgps@#~+*`_o{wPuM+Bns@0UBtL&RZ2i z);>?OF^GKXQ({Vp^^yKFFJoP6**Wl(74g+GEvKid~)CG8^$21p^+ARuoy5sz$?6r^Kr9r5AtIz~t?n%kmB>U^^ z7_uo+zGS8LS}GPX=-SB_w-H%YU3(x?t1PX2k8Kc1B)6uwH~kftDIAx~JRJd!p(W9s z;Vo1>_FA?3oH~XnYGZMA1#Zco!k02|Z@9a`eFTZ)*zUv-D~Cn#PGE-Lb&xi_3?d_q zTJV-@y&)kg#RsGZr^6HQKBcJb3^O+0YUQ%N3sf>ImZlL1zDHKWb3fXbwr6@+icFGf zKA4(HnX>Y3MK7MiocUESL)pA%0&|RL&C-gLKxFnf42sKVoVTaQoj#Gv06m==kBFAO(e%LeP%E&gv#gHZTu`b$iiVsOaR@p=|Xf8NFG%(;^s zp3}oATC=i|e0w?XiV&U1Lg}=k!Mdr2=uZ1gqeUEmhgm7*u)O7ayk3P~h3#Ce~l&z?SpXI=gG{bd1@C5FvA(roixNps_rS zYqegR#%U5CQFyc-<6;_tvoa^A7g}R=nB<{>0Uo4eBkn$`22KCu4@XPVgk+I^dJ&v8M?@(m1vK(Q-6yk zEzlNyD=Ivu$Shs8$H-?{&JT*j2H$p z>QU&^j%xbe96)xO@g>JJ@ilAEqbx`-xF;52PI+Qh-(fuZo~4gLDSfi=%nPy9cJZZyfWhN>gi7V>mI? zi+d5^ayD=R22*(Sf1#+2PT&*U+yT!KJZ z8(B|Mjs~Q5yu}dzx>j)Z3o!9T(yq~)!D6mPvkrt!#EO`*5azW&I9we~eN=WEB5Y89 zvgEkqy=-k4M@ec844*^r;`4qLPXFMvSh?{6o&F%#`|P!4`FhIW9J1Z_u{)If)Xypu zXIgrGi&uBN+LV$h3KYTnBG{6N_(-wu5q;xtBk&KM;&b|SpJB)}-pGzvL1Nz5sPToF z;)u%ojJ6FnmL!68Gfk>+u_mvIiUw%)MYf6d;zn|(k{%3F0{^BZ-M)k!+qIpjnv00@ zzrbHI{{!qrGv|cw{Ieuv(zaxXrf+9SIPYnDF+@iqF-wkJ4J=$JU?M6wB*Faz#{xK= zFvEAG57~?LlWwHdO=M~1X|HJb@`e^ZkB_g6OO{HRM=zk-j>xPbOL=bBpjm9)4!a)( z$vKYxB16qAL|4gUzyWK(I@LT;b-YA2zzXYt|arwKdC zFfam#jZ0@oQSioND61X!~F80FRtAJ{$Cq-h%}*$EoF7%09c;=?wh>)_<0Ap=&*=zmwM~ zzP%{Y3uHFr{!8|xceI?fbEG5eD&UB(Zk z`IdcNL=#I$X(BiydEc%vA0M@Iz0f|!N|>eCL^~1lzBtQTxmhC&Tr~zc%~_MxTW^2A;=5 z9fJwKJ!T5=KqEFfl$f!yK<~QIxxGx$II-u|AW4*#;GBZhki0?Y?_S4Gx0zqKGdA8V z2<6PUdKKQWE0Mna7D}W@9JY~mK3aod(d*~vN~e}Kk3GU-H(^nxS5e5X7J^OJvXZ|H zQKA^UbQesl#STHoy%7IJQL&Y6g;)1pB}$7lqbZcgkGRgOA%}`QDHH{b)?}-xX~qN==DOM9hrsVrGV5 zJRT8&GFB^8aL_C=k*KLUusTzl)qvF1e%kN5FIlnJKq59nP!g*(XQ>iuPAqf_BE(M6OeWop&ANEpBl~TEdPDu=^Lu3j z`hbfoJ@(JTMmsc~S|UC?+?U-O&VR$5V1q8Gn44q5S4 pLF)hER{sBZdH?^u?Cc3B!QA^wa{jkJ>K}vvMVOjwHR=lTe*o4Kp~L_H literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_18_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_export_db_2_18_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..de710f6756ee24304ae1c04b20927c8e77222e25 GIT binary patch literal 4764 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 Mp00i_>zopr0346Oc>n+a literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_hf_2_1_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_hf_2_1_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..42bd796cde262ff05d527d4b64f5b659aadcade8 GIT binary patch literal 772 zcmeAS@N?(olHy`uVBq!ia0vp^DIm?oSQ^tRJ>t zRO)R#+O=e}fZ-yR&;PH7b!liFJfz1VCT7NUu%@@>cxP4Q=9?Qfe?FD1_GgB6S;c}A zpJnDGeSGzgVfLX2u0);I8!e@~@4ouWFndGV=9@1|R()j7ImC6iU}MCUAB<*+rB-uw zPM>>T94nt7EY?uBf4+)m?B%zIt>pTzzur3S<+Maj#X|-$degW1Z0F(LsyDqh!l~n6 z!iK1|XZpACb33fR?tS^nAI<|_I`_ZtzWc6jzq!qIFCB(Jk=*Ukhfk+!hv@kCl<#73z=2Yj_lkAQj9z&E!nl3S98s(_hw5r1bhsfAQiUsv@0+7fdqqu zHH$L0-#(kRxof$pqYlI6ms`4a^ZM#&sxrJi?JCUeAanfI>6ny_OQwLS0LPi#7Srx6 zH%--fTP}Sn;=ZH5#MT`nWrt+7^Uhx-w^O9@3GRg>+X)? z8$Y})vh4aAJM(m)PEF{uBJtPVyL)#>1lV&~^)B5N%h$9|ohp9&Ii_Dn%+3yq941d9~+%;r{#i4$s&BV%}gS=;YHPAgp-Ag~Jdx^NyXJ z-79?^-5oh1DOU$6nJ#&_7Gy;Vck&Kpkp7$$p6^OP8IYK@_)9&I$3BTA z|F8o|?l~>7&lBV_YlF7;0zhA%u5Hykl4)bFQH(@e8ZYf zkhOe?JoCZUE|xf~4)&SDu@90UC6?0+Ydk>u+l|}oLE(8qvgaW`G*sstas4F=vVYET zi8`?T%Z=LpgALj&dDtJMO30w?KiJQ0hJU7mtTHM4z0FVuP zj~)lp&JmS7u0X9uU8xWO=E!1*z%*8fz~RVTumI5Jo{W{s%qmIY%c# z1a`fI=n^;hF3|;w5-Bw~XK0j6H+=1?1qyHNnMGjLMTVby7lItOE`5`s2*|&xXHD8b z4&J#c6JoHq*>Q+Dx6~xy=9GVhIKz0y7qDcC&~;g`71UQu;0%3-4AOecXeP9(pJGSyv zOayr`#d0ykjxdue5JiEHd%%jWnVx_MWGX`h!lpxv1E#D;5HH-xdkI$362A)KzWu6T z9|-&__y>_V?*|FM53RIs1RMf~g8QVw zVe?^4GsL%h9(2IlpFvzEyT=$D zS-=Rqar_y?KX1}*LnLi;Ar9KG`S;&{m#U#j0DlnyOj*=cuyH?Q!2XDo$JhSN0hVwK Mp00i_>zopr0346Oc>n+a literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_hf_4_1_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_hf_4_1_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..42bd796cde262ff05d527d4b64f5b659aadcade8 GIT binary patch literal 772 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

    -%m)wDk6e*qm^ZR%+c1h zzZ9mvC0%w(xWqvY`C-EelQZ0Wt<12ozxIqY+=b(N`LF-ojTK;;uPHT=opOkxiV=um zk|(Z+^%vKbth76muaf9v0}aumeKgcRNy}SS&SuC2Jfn1Pd}<_xne#ShZkI#Teq=*Lg=z&*Q{w3QBR-LUC-#hYab|$k%Rk5Tm2o+ zbi(q9uuH&aW6a=vmv`-_KNI2tG~KBQp~uihTQPFL19fiQ``7>?E4&H^Fd5Ghfhu~x zmh~6Jjg*}Bv~kwmosnMLzk_T!xpRxTUPF*hH9P;*HIr6Kxm~y}`__V8X#Xqy9d_%6 zw)4Y!@|b5uZI zVW2GnhX)2HMth)Bi70|K1vnIzJT(cPseeh%ns0y=d|v$Xv&E-*HcCMB`5|>^UnLXX zCpV=VcK9c^Crzj|SiSrEv7PgBxsBGjxbC&OKzAaosS!>Ii-oo2sZE|HomeU1#lgLh zuL;+-?PL0^hVCfzP4z=H`Jf$Vq*n#Xs#t(Slbr_9wgg2^UDf=~p~^)){(6VrE^l|p zhQ;dk;Oi^l`j|{kUO1T^odac|Oxf{BWb@j^VeQMmx)N_ZC>!T ziEv@k8nVtw*Qvw27nTeVVfCMF{Jt~hzyIP1Uf8dkT}RAZ3&73zeg@UN{jIOfIkGf} zv~cPI(Q2;Xs|bsr{6J)9^q|j@bnh+ymDX#lK7bc1zDZNjZS`mu1=4FTT)Xs#>2zR5 zc(nPSDGrhJp#_?=9)yDa>BCJ=*RsC~UZ^^%QFJo)@FkfTALmT8ilvt{uftX&YA?>1 zm)=EkFOdM^hC}bHTN6s+z4MC?)v`TPRQXMA#`QCTYzIs@yVP^2TBT1Rc4ELrKI)ie%Xx zx#4}M^I5pW*n6J)Kkc`uwu7S6&)=P_+xG0c9ser-se6!iI3EKwh8uE}W<5~Q)eJE` z*vwW575-a>bKsEHpfs4x^fG_c8ad%umGZ_~!V4?-_xQX9V73ZvjR^GD^0WFDZpDO1 z6_`)ZuY^|QwpD9Q_WB&fEzOY6yQrx@Lm?wux+F~kf$=dP)RuWXrnlD9q{nk#DTM0zdkeEjbD z0{?}dz$kY1@72UQn$L_kPCNF3eKxWXd2o%(#@%cPA&3OBX`yru0)fZn`@^<&P5h1-Hm*?ss%yV~kD9*m-%9<11mme9>&zdlB!Rd1sN2f35|?MzS9KeR|3v~*#F{WWJKk&at!b@bW YEkm-mkP^p#$xsB9Pnrr%a@Jq|AL(Kc&;S4c literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_01_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..50bbc618dee625dece12c13981d0a1117e32489d GIT binary patch literal 3970 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_02.png new file mode 100644 index 0000000000000000000000000000000000000000..b29c8c123d066c15c9273c55faca79e22692de94 GIT binary patch literal 13340 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 MNhwQKi<<=fA8Ns&HUIzs literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..cd3b5182ff383d3241503a84d80db7407849edef GIT binary patch literal 4392 zcmbuDXFD4Xpv9x8Q3O?#7*)0RUPbM__livsTB|i;78SJ>wWBp^m)cZH?TEd%7@v%lrDiIOja)IbYyBzjy;Zb#hV$QUCxzuBoA7^j|vvuZSP~=l2m0@BsiytftB< zllOTCxj{BGXE;Qm?Rk_-)|L&82|>KJuCb_~NF8!OOMCJ<*zJ1gCtou7N_Qm8&Z$QjBf1}b41ZvB9C0K|E2-y(Yt{m6G`usrQIF-yY_qD$xG#TV7b#O-n}%pAm=Xzivr&% zG0eHwpX?{;0c-tdN6x`=J!v*4CNAQO-{^br=n0G-fTSR;YsdD2D`_pM5WMESguX`H z3AS%C#YGv?YMMp)s}#k-%qUY@cU>x3SZmbJPcO8o3J$ZjNc?&3JG}*Vy*s7R+T(Z+ zboyc8x|&B=LK)Vi5XD;kXm(le*LTXsUNKg3&OLp;mnW95p}Wr?TOG_m)0{XxMMKK% z=}s>JKFSbt@heIaASh9*ni@bbL0b9hXerrThCsodvH1eC|Iu`|iA-9P$c=u>B1wCR(cYIKxT&8b zDn2z!jsbJT?~ZBo&S*yLQXAn1qbDOlU9)A4Km&IgdRXg#eZzvtkcbG6D3aE1r_ncE ztkwT-WgPXI*jU5vEW3F==PQV&f^HNwfRU_A7#U^tQDOpJ_Kc!s0lr~;-?o=X%Fv|R z(GJy#7*!@3#)ncBGW8S%H}k_qF~$$|ck`B;i2sPM7Ps8zp>6(k2Aj2s_=#vaBx^jBQO)Lo1f#i z-J1nGB<3717+KeJ7oONioO^KgdTQch5iy`{t*xQEn!I>XIYi$?2x^+`Z;7N6IG-r? zxUSylCqG)0sWr;olrDbm2pM6$n_K@)f@k;Jdv|z5ofbB4VrJ^#g zF2|So@V0#AP6P|ShCJXH&~lc297wElB{Fo2SzG553<#}l<&(jE5DRcSXnOdiMRWP* z;nkTTv{=O2x9>Xf)Wz32o#6Td#yv2yDfHv$+WDZ5WC5?4E&XPplz1>n;?NtXcix$w zUku;eE?~nPo`nz{47L|u82u~nJxXx*=L}gd0*&F@vo?w!_{=k4)^vfmW7ugwJW|xc zUjm>5ytCifHE(bdctwoS^7j#1-5zU|dq@Y^Z!z_#N%_J{t$ck5vAhuwxk}ENczeT* zl~ZVF;n=CT+)OhMtdpBNgpe-@X!}U?UF57$4cU%)q8?lhsBRXIC$R4@&tWk2sl#kh z&jCeK{!%HA$NT+MtdRzNkLF{wBcif^vM{PI10kxO>8mr}tmIM@t$ddD#k=3tclL(E zJ*a#rO}5<1|6DaHjk~dUA9@WrHdYPW;v%l>Z|lxRkBZyona79AJW+B3Txm-)@L(lt zX(1dx`p(fwD{jlRGDvkhYgi;}(9{>ypK#^|ln~?|cb=>3@@5st+UhX`aKFzx&Cb7B zK{>4=b>qckQz*VSZFB(l?-N0 zF*K8x=_3J;O{%QIBn``!G8JZ8Wy8>yMObXH(ZGP7EeI6@cfuRHONb<)zy+-rssMT6w|5yJN17t7t~f z4=>PU&4U%D(|wz2A#Oo}Qevwff!@y=uZgDs7QZiq^y8$=BOEM-I-_sUufC$Xewql) zVlYw~0ev4C&BQ`OTZCI*MK764Y)BOd$cRbE8hKTPq$SCqQNn)}Z+|mwp8L4o+h&q0ZY4<|YU?t7RsM7vt{7;U{L_>seYx zKb7rk#^6cw&K&{~TV2D$)&S!2%WkR$+XJ#Vwx0a2+hV`w%2bT0QTz8J37+#+NzME8 z9(ZJBA}`CB^L#xvUwLi_1Q|?;Ts4kz(jXXQ<-|};fs;z^_{^3&>8|1^0}X&ul@{b{x3Sp z=3DW^y>(B>vq^6o-fv<(rT=t)fxuDx@;c4xvVV#gQsw1Xm+wm;sif6a0qbV-kzOug zaRb^FX&-LJY15BVrDHZ0qRl59%}~o>XG%MbpK}(1F1i*<Z$+@4%Pc|RBR^SP@bm^y25CH-2P03AG%*8{fg%w9K2ZpBq+m=s@pn?rK*5s%Pvxyoj$*WLO!vuCg@6UjfJ= zUbc6nnP{WaGox+4D5Yy=wM(@MF=B1);#S9Rxuh#H-P0+LRqu%sU$X zG>;mI8{sUIsjL)w?vc%TIqRU=FI~v_2jch7D1Faya)d45$?_|wkcnF2n*ET2ILyj_ z_r7^U5sx%_!||l{-l8@2NHm7Dwu0J@nd)VxG`IZb2+AR7D=5BOMdJZwH^s@hzM9}J z51dd^u(eT2O_D3)@ii*todpnF)E*zQjFu7*(J+pgpY>$+l=A6GS~%f3IX>K3rvSYj z2%HjJU9DT%z`V!nvXIrWmJ;)&v;^haq+M$|uMFFdNPs!iM1 z--nUKUUiI2pLM-hj&}l*)A+@qZrL0I1g(Cqcn2E6b-~}O@jm+(qJ^}I&eWT(3xM`%u>2w4MetOcZRE>5|21XN0`ceqL%bt}kzmO(6A zrKD5uKi=m&9w%Zvjr_|J^^nVTt>B+odH$$ibDCYYg!e@Y$zXiNVQn?3sy4&W&H<=q%4JzOKY_b`tv?jZn=omm6X9wsJ0%dcuk zSZu~Stu+hgI1@X($>#sSBs-4HJ^BI9b?6QA9!f|R6r#5c^N3h5{E!G>LI7c#k`q3M zhKyT!&s$Fi64lNAFvAkt=o^L5&)b&=XCw8AB*U-NiOzBBi%LZ0>L*{%T2NjAz5zbH zS?G4@o2)et`L2&$E=V)xLTGW|^4s+sH8c~hM?q^HN7kySnVRHdm}q)%G6y!W8#C3T zQGFp2uLK_u>`Z(6eA)HI9i&iu=^jc;-eG4y+Qp;UmmN`5L0NjTnrXn5A#LclLK^f) z=-<}$1H|y$PmamujZFU{ENoj3cC2|^G=UfKS30F<6HgZ(w06|;J2D)q@By9O$68&^ zBe{M|RJs>jt>wqUTi#+OTtR&iceUNx-iL(;wbb@A%XB7)w{v7&e74$Jo}01HqUDji ze`aa1k`a%VI#e9ZLTSl~qudHdOL-N3CW~2n*dt)J*>$o>k^~sq_O>?~k zUwnvNq!B>;J=od&BX66nqFeChumS)fY~xT)vPM>9RN!t=HRGHq!Lt2zX;D`VfA~K4 za>SqEmMT}{!z#(IhU@v#H)TkW)QRT#N@PLWmRd&a0`+oRuI@~&8puKM0_^-!`W|2j zh*+nOQG!QQKK)UKP*9#({orFF~kQdL<74Vf4j3JMBMPF7MK3JRL#e*+QbpXGsqhzbgdYfny6O!H^f z#fIlkJgtx6>qpN+I=-%O(c>;Y#)5)UlS{+zXHk|*O`c2dD~n;4I!o@J7g6mG^&UfP zL9$q2IW#itS#L=8^T&rQm6W`Li(?qg(f!jCh{JO-qwQ!Q!(%d{+>9{Hlck2)gwQ@4 zDc|(x-;imJZ$HGX3CXzt+^F#xn8abjiil_f=5!%pJ700c2d>ipzuW)C4QYmQx!-ZQ zfUU7Lm5eGaUvlU0P%i#R$~; z-37KZe|&sg@8g{XH+-wi#PT?Fa=WBb*`zGW1*P=Kc^+?z*ky_agcm2-cx&=dt1BWt zQq@0@#ZiolY|eHcomw^ccLW@2tLigKXk_*{Nbjd(Lh$xa42t%d7wr}+_wG|a&mCqG zk=uuPb-H2>O~j9d^sbQUWA=8^?gJEvYuy4)MfaI4xhZm&@T|`)CS)R1xX||=28izh z35#m!`cpW6r<@=OQ6FVfW(u26nvwmqL8Q3t02cC_rEq@xHyxVSF7L++eX&m^y%A1- zNxO7m-^jw)RfquTeL&|m$KK;X^YDE}i^S{xHIiLroMI8`R5~Uv-}4jFi^ty6xcg2N zNFo;Bd{K-AM;C3uiD@6oHbLYec6%yDr71l=O`;_){8L%Ti6FLA_=G;pH!vuv{De=8nv}%)QKjI6(qGn zL`7I?dUUVidYE334*HhG)@G=yQ?-$n2`im^f<#hDTn>O*fa->Vb+W0oaq@6A+Ti-l zXkdMHKjmSoL?s$vH0!bHDT%P}mywEE_DdQh~G6SIRQj#YopjKj; zLQpRdhJ=v>V2Q#Nd)vv*?4b9%EEva4w3>c6av<4}7t^B#DoYgPk;e8_2l=>Ry#ziP@JR2uIs;%wG_4_*O;-P|@ zuo`3SJOhv&!w>;1g0X;pSQD0&zQ!fZeVcyjN0kGuwxe~p1-4=@ff5J2V1$MFhVJ<{ z{6hn6ZHff0x|#vGewXVm$``Up9ORMk|IW=_5Agkv9Wz*CkW8)Db+~yMw1`y0;2-CW z%vn=Ir*Yc3v>fmSiQJucMe9&ZX<6*mvu*JXXCT7P1q?o9U4&~GyuuXA+Y&ydXh^0E z)(D(PL@?R4I8L}7sB(QkRB`N^fTh!rTee`hQR7Jj{D9 zbn7h#Wuv0&BSt%sV@O;kKNi3^%S1W!B5!MMSHOz!KiNz(m4;!qU%=PVM|#V?`({h} zz#x?d#|)4ek3De^=#2knn8n~DVn$SOBEI4dZBay&*b~IEB6qV{o>gNb0;t6Opxx^X zTO)_n3lkK|vM=2=hdVbIoRl`thrce=0);zBmW0C?sZL0881&`(Es zN%1YxmDzUdRsMotg?QsRQ}J+0`WrLs&#Bmip_Af3D*iD!nGII=1FUegU7@qckbFOy zNeT9yY1#nY6SSvxs|sSU$qu6M&`}Uv5Lv)TjAE+m5HW&KogmeO=035RX(i zfi!rYj;n=1d@q{%$|l&rMhS%V0UH0wvab>%Z&lVEc2D*~{T49U>x*$TdPTowB(F&O zH99}pgeV!CCD0|Spq3ysLU%=$*J2keicGVoFd!%MGH~mCX<|Kx6DG|}S>30=UX$-X z0;ojw^la3CWR0X^dnP=^Q$2hyFTq)-;1y@I5o4_E`%Mu@g&M+_~0}fn|NLQ6kmKu5~VWzJ9k>DmhhDzD^wR{ zhKN62ayvJ`{okX) z9j2MI>Id(^6eB%!D@DbEfg68fs8(S0;5+AEq!>Yc?8%Z1X4r~40@aL|7Z4Pp2ho0^ zZNGs@dd77KKvoJF$=-8RhD@&hE}#jkeAbBSjPcsNZ?xn|j;Y7G7$0vztR6B1iDcHS zqWX+K7S;_1_ySO{#qwbdBVQ@otuO75=t2M^42i6afJ?TOb*Tob8#WYy zwPt0jiZf~ZAGSxKQ4uj>a|x`iT>7H7ynyut_h!|w*U7jJS}q2-Y-e8HAD(hzGD-#% zajW(zn{p0%BTb{fZ@OBU83j7pdWO%32cxVu;IP(LRpW&iGTLiuIBUK zIL&g%(%xzQ^Ps?uhs)fV*PT%PXDD_loj2yxqDqF^v&uPjgmB$6{Pu7xCUa$BMf1W1 z%gU#cz`pIZRsD|EkGLi6EYZKLQTmJjnHeH(Bxw4mVbUBASBt|_M-~*FUQYbkRI))> z1sMOa8lf=1yJixQtyIHA8v=aG61t-z@@4dZ*%GPZ`=If%U1@EFG-yrPo_Fo`lriF= zD%r97sO=bEfO=#*zMQxtNhv&i;KCsuSPHQIgCJ-yh4MFSnOYAHZAD61-G(b4D3_!+Qgt19t)$=kY!=?9~6JPf@49HR1zmB0Tn(E-O}-#91fdnKE-Yq{La)Gl4scP_~yq zVOoWQJTj0$cFTFkZ)yZ2u?Z%8{qL@dhmQP^ntVVjg=ARNHx>xi$j|j) z5cLkQGEy)yR#C;$b;K2jM;h-)b3Mhw8UBTSOh6<8ttMvvvf82Wx?1s5(q_F;mlX>b~^w8WtM@O0;#J}O05 zhZ4O2jKLrm7YfS*;}+)kQ@un`pW(*CciPVmDqp1Put`~Dv07#moJsY4v32{LokTsk z`BKPMdgQ`en(VnRtVrSc-Sork@>$W;Xl3pMy}ymYgk#C-cSNpYg#!gyRGzuAjABmq zlqK7{8uweEE`3DfFdEhP%7mPL;R;5iAaVznGPZD_4L3&Wu8;DA;S*d3yq+9{4A-~a z{A5@uwa$O{PuNC9V;sH^nK#2MbRrUR_djPVq{TFTjD;#m{2^-V&p#@*J3YDubbBA- zL*2+D&t~qyk_-DRyQ0dsuo{SsfxV;7>Ut=VjFTY~Mdjy9(*6=G45TB$ z9{&YL8;HJKRvN1j*+pcCGN<=>Mx95tJ(um{aenYO2Zn&JGB0j9l7HrDw-*B@=&5dR z#trJ(0M}|+a}`*SkM!+c?WCFFqCEi=B7&R?_3f6T0B)#^s35!+^(**lh}_3RSFLxioedMO6>26|0*}N4b04E zs6S(B)i6)4&Pq$Wo7grg{6`-9ztueQ#~49}g_oBOS_J!YK1^rA zyV-lQNSCD4Ine6&$bSB0lK(4r5~rmA-%=JKz&*R#*DTfkT3 z1mAp$M6E3x?Lq?++R4mgfBio#iX@#JbL#7wY=Ow+4!x{>8?OHAx5RO;^1zrvGwP`y zOv60o$$B=%fF}AM9<*X2&0oBZfp;i(6&G~+vnN_#a+5@9$6t7gEA?m9Dx(2d*p%pI zXGga+;(K-VBt3_ROU*gyk*mhb-X*z}ToAT49?H=10Z?xke}k;L4Cfxuh-?nio>&(5GJTHgyiQ$FeLS-Y6c^y*fKKU)H#jRBzXSN?>rNJ0MW>v+bT z+}Qxmmr-NvYgqEH#`P+e2d-~Uru^fxWowleC)q61M*@*&gZ0c>1;A+bkR|NmNz8{n zzPMh&WaCmd3H;~@C^_FL=Ol^g9dgHRk$Ni)MDkoBxgXwY~ zC2~9JPJrKK+|h@&m_)+~TM}a$9RWs)v1aMStwk6dfXx*2|7zUq zx+EgBOpTH`%R%$OB8@AuTy7n5cz?DNgoYEZRBnZBPmou>TW8V&f!b3(OuaRCkEVxy zGv%JoA>`aNFFBLu+M&FM##8*vF}F%2FWBgY2cGal%s#36Sgal5j4EjUYsuS7zf$vZHbfH*|abEMHeu8z$e07 zKiNfy2f@zOan4|2F-`+jz!Zbxn4Z)(co4gb_XaR(adAjSK}?ivTL&kl@wqNL&ho8y zB*oy{3q<*2Hh#^!?A`AoerOBS`OXE*?oK=otaRW)0xuYoH5K;COv96~T#4Z}qp4Y& z!A8A`)Wu2sp?ckk>l20&2saX|o73e8@cNS3VS3MsUlNcjK@o_>mMsEWR$~#Vgvbaq z%gfm~DNSs1PCyVQ0l`o{hU*KUe8-C)|_B}>r4BEsjjfAqM}i2Su&(TP9} zHIn7as(xx0!vND)Kz_){RM~CnxY8O?c9nyFA@y+EPwo~UUxm?-4jp!sJ&8d-KYczO z0lp;_Vz6v@)ZIum`sYEW425y}AF2cJ3sb_U4MUQmvoS(d102LqOmX%Ljl()>A^%_~ zoZF`i6atn&SZ5oV!OBWn0)9V_9_&`E)Hsuu%V0VA%zyKCdAMf_bd>LB#Qi3>erpF@d6$uT?FEw-1Jp_gNBQEqr3^ro9m zUfSpRvV5}3KQzzivfxHuTiGQoMAkm(9r(@_5yg4hbHENy@%e{R$aG#06V0ExX7S*2 zz)iKiDp|Wy+ObjPu~hC5%cR2r+D(i8Ybeq5*+RGUamay;p>FKo-gmaQtwyac=&-#* zN0_L)uG7TlP;n#=vry*-QV&CuL8~iSV<1#{d`wS~q86{km9Dpl^~1B? z8)drPev)`jX>2x%SG_qkrry@J!=-wMO|^Z`M&Q9lf?Y1UKdNx<7- zp8$%1MJ%YvKyk8yVCqJhUurYy0+IuT8%zmel}(L1NR?VY*&l@WyNL3CT`cJPtLT>G zVn)~@y|7wPt69@N)sbbfE(=&IOXj2`8G(>TK~PBUOMbLOO5u~H?Dm3-GgJd-N7_u{ z1iRhUGYImt2+NFiH+(co|b&l=6`+6XCWgMUjWXpY5S$Zje|3f^`*X(_CBCW<D7jFfz+sPoIaP_t2E+ygp`r(;_A*TEufLa4$<$Q;gY#3r}65o4M(q) zzM&Q)1KDfx>Z^2Yf1#2CMM4HTv`vU(Uq5?Y@{zwX(cZ`4?FTE zt-C9{fwNO8{}3X&T54(Fmu?sv>dr+EKp~tkB5b+pQ|=p$sI-@uUSE-!f4#$*Uyczf8u z*ujMp`HBLwQyFQwC8F!{ z&Z$&52@ccH>IpPXGj0*)m$|}@@%o=QTs?`R#nJ~0AI}Ahv!4F5t2@zjy3(7RelH=P zyxZ`Pb0>3ehW%B@mT;qEYmcMZqNtDQ6&C)%$mFkBI)OH zY9^hm4gS}!cN8io@IShSn3tISWW&Fr>C0Juy_j5nDg3sPRH%Lj%B9vkA{$YQ%*q_J zwS1{WKuShK>ZBL|Gl?=$!d3YWNwERhQITNTNXi7WIU7AVh`-8SG>A2^du!0(D}}}> zv9BongHL*;1hxS=MawI>xJb4Cxy zBGi4ENRNyFDT2(wB11PuMdZfXuOyFrj#zQr6H@Z|h)Uu%C8(({b2Da*8Om@}MR++l z5ATI{LeWqBV>(>koM&egL`i~)Z7gD3zki{*`ZQJk3eX~hcXDg@cq$&fw`XW8C=_0; zY$zVn6``;&5&T_SCNRDsr^HfMEfyxGljU~K4>e{g)Q)*{nz|8YV4(7I`*rr+6PM-C zKPlOF8(igI)PkpwmpQ1XKLZv+OYx$)#0XxyotB5#+Js8fGLrH^6Dw|75A&_OeJ_&` zQl`wS)_+C(8WC-XTnB}lZ)@NK^Pdvn{8y|6MYP7BmSHA@bF+L_wwe}4Gcj6}2ntkJ z`Md52p^SQs&^Xf7IHrZmTPnlk%Htsw-CwFpeEMWg5w(f z)16Wt$$dmwXo9HY`MBi1WM%V%jgB?aXB9zZmHBzPSQZ=qK(|klxvum+eQEF7yWyiwT)i=4kB{CAcMGTTf4?T+5s(!jF| zhe+DlRoge5R4rnFwHE+v`=0cAjR_~_1R#F{h1@yx67wQhda00+tY+l9*XzDJC)HZX zO=+yy&r&O(3#aE5ZuydgX>H7BlC*PDrP!vP76Lk1rx6SB3B^$gdJ*tPct0N(CfM6$ zR{iQ4NyybR9-7Ru5l@!=oJy;Ue^4*V?RH;C;b#Z<@l{2hf!svqFm~gF-)f~WUIJwX zRBMvQX&ty{gcA6nu(DWTbyOdShH6?m6)+}>;o|7m5%E-!QdAB38rRF-gM$yb?P#Uq zd}b>G;Z_NvP{X^Y3ECxeV6-%S!bk&n{zPBfF-CIcITnhr;s8fG_jJ8ss#V@8j>SZ{ z>wsh;3FObSYYBgQlH8bPeCv|xl4`lGF=!9$+B?Tgbl`F2E^BDo&20&x35{59PD?Mf z^6A0Ub*jOsqU7x`?*;ksSmP-dtu4WSCf05fHR3Hs=^qejNU-}5#2BP*w+Ze@vOc*V z(Uae$zk(@J4t$=992ik|f~P1(mr*%=D%lnRj(l~*NIgmO9arwdOeKd_QMq~hD~6D$ z#%NkgDx`thMBQulb#WL9wOikDTknKvDhX?2Ks|+90HISp<_7GoGdYr}0oVn$2LJfE zqXVD)GqX1(cg?fk1dKx?jtiTIy8+8Q{U3i4b?cWZ0M)A)(^DRlVZf`>yT;G7Tp16b za9R{{RJ2}GPR-$eJ01;WV{osW3`zMXZb~$2W#xw@O22krm1=ZfrLYA9wuz%4dEA3v zo4y`JIdW(VlF~j2ENJK(p`g~_6N%ecZID9CQL4tUAwP@xJ$v#^$}K&SSy^ti_m1yn zENh_uoPD82l>#n?b0AtC|Im$79%!Rq=koHDo8_Sma4#P5lZB@V#E6=?KmNW>&_Xov zbG9EW{!)*;<^eS8^OyAeq}S>#4nBEiYF6a8Gk?Q z#r5>q@_*6SSqz$(%<3M54|1knWf`G_^bF6NKV#8clK+I!ss>)Wrk9514`KrC0m z;&{I?DrQ#rjsCji-c$|7746DJv7@`5T&qNMiS%8Twl=0T{sA@SV8XaKcq@~*dui)~`JmCcAT#iI7(r74`giax&J7b}DWQ|nt#Sl$MA}U3 z)ca$~*-E;0I{h=^QZk4__5O8nk@xCiAmq8%}3LBk+s&_AtsExEjvR) zxRHwuJ&m%da~Ifb9#zC`w%8}-hJU1o^e<8Q_fF{pYk-}k)!t_0p>#R=A{JFR0HA2>-5)DVpG$v{sv&zmP~+n zY7Ce%?{zB4z`M3s-1y25m6?(+$`{H_hV$%laGpGlO~z{a)@RJfYQUK4c5=X0N?O8G zR%#cz5gwTm!3y{yYC)p7?rC;k!qSz(H*Vkbf%zd{eLgj6c#NsgcH;{0&n{6ogXbPC z{?h9IMNH;%MiJ-Fc|s$>8PEdLLL7!6S&Xe6#y8Z#Gl`RQqGTIMdy8PwaT=(*KW|S* za2JfGWsOxSb+r2(>lz-XLAkV`Jgq+`cf=8HRTa^nwgr7JT^amR7KC=7xYeJ=ydok+ ze+fCSd)9l6CJlBAv#8C(H4OI)f9+|nu{(ZD{F>FPkFR7l&bRYSUNt8bC;mcd2!Pua z&5JVm`T+k#^azQdh<&At>VUt9UBF7DL?oGxch+f~Y+l8ecw!dlCONt*kf36pwDf9I z-XIyC(Ho9-gPB$m>=F8T>>_tA|NN*(Mi5pr3zXisu%Mj9QU~C(lm?l(p#drAZya}; z(Q$}SvO(OkAyCPAwlgY1>Bm(>jlF8PJB6R)Wv_FSn;dm%Pfc5EDeS*a0t_sV(XtF_ zP#^~-ubGRAI-*FL1$gdh(siePU{dj)>P-oiU#W0FIn!MZ{l>UV&U1CUR7UOe`r8c1 zdwlrsTA!KV6oGSp3VQ!}uqiSG+Y-;NcU0y!9}#()Y9!dbmirstX7*}6(*@wmfAJOo zJz4K_7BI>KUX>GO7?SDP^&!Xmv*R6qOf)`kSrIV4oNdrZ?Q^z?hhLx;HJhL>9LFXy z!eaZ61ZN^to$Bjmlca12IHCt>9moD9tG21V?K>0S^<$3G%a04W-S%rcr>Z?BTdOt? z>Q5%GNUSp^3sg6$ddk>#1U#mE#0fF~{%3Pr+qzUQQEH^D?O&++aR2I(3}x@-TUolD#@+tP#esSb;$Ctzc^pXq%#tX5MohXQ=Wy1cNZ zUnmt9kkk6#vh%h$Z9B}-@5L4E$5hOJ<}e9Tersr!*z+&1_L85$2UEGON{%i%yaM5T zZWfYM=stP{D!hzQH``+0PY2MZ{fn!&4&-v~1rsJQF`(UeAh%V`Lg#pZMs_UtMUgTF zYtxOoaNEOC+j{?+q?_;68}#42)jt-ZH<57Ry;yaOr|f6TQ)9tasK&U*AyVE(KY!;6 zl&39m7Y%l$J|2ZEW>A?Ym~vpgNO*z~I5CL=+;y2dxz_&r`6NNU^f&Xq54boON@WdA z2w9vWwv}q^=`48TPuW>$2I0mfdOmVn-Ez`SzBUsBHXYMrLXAMNZlatC9@AKy`6ROx zqZ|Tui6u3f6j^TW%N~W342$N6uCMZ>2d9vm4Z=3C0<{j$f1z|!`$;g;LkbX%j71rT zm7(afMUU%owz6i?l;OuzhG#)LM8dDDe1zTML%JJP+h9B_vg^NGarq?jXysqo3``gi9s59>O zhHdi*H(;1&Xpb}9{9s7zBBB6HVaJjM1rhN>R;CM>Ecripo^v@r58*orE)Kb+r4qon z@IQNkR(KZkLGUxJMY>+c>xbzbMH%nUv_$T(^gkr+fLUK=Tdk?`jy}0iZ3X#aCH7>S z%1{$YOtg4-*l6RF%a(7$4T=xZ^L-Z6HbL;$Z0b_(y&o1_UqI;h094Vh?MRFH4bvFT z{>zqV-rreQh7)-a{po~h)5i~|o(|XH!Pf^g^~to*f(`8sjmkXwPy)w)7kQ27#@Hzc zxP*(f>@{s?&xcnE_sVLYDzlP!%bT>#`ToO77Gr#S36Z2t7Q@;veyk&=EY0YZNcVUe9;+9|U6WpEd;IZf71y#azAk*(aRI+f&Bt*Rc- zTWTtgwNd)*{Vktv3P1$k%Xr`OOe!Y^mw4vg&p9HoRH$J6Q>Lr_LkiKH927|4GB23b zAX&UIGUn-75C5va1AAT>kQ6v&yoK{;{@?Ewe|}zfM|GoKKN&AWBy)n!p51+AwRc?n ze)WIdbrYm^-0ZoLfqtT;v$_9XMn?ym_d;3(TvsQ51t>57>o>APCsIQ1f?#FEcR|T? z4jPEyBw3fi*V1(@w-c-r@fhhMT=KpZ^SBmw^f~gm2F?+ie?+Dh*5`gxvUcfJ5Qq~*N z8eaa<1w>h&NfsEE8;_k%q8oo!A0uKUfD*tyLLV4B*yuXG0W&xFNf9c6CJ28*ovgns zG)a(Z#9={$^CwA}iHeKfv3#dZbM7%5_P?Z{wKI7)}$j za*!>Yvk`aWnWfK^8i6V}55XuN%rHakMK;umY4NhzQrDfm5eM zN(5O%grbg!17*NH`W-=&u|A!DBPyF`aXxHZyt{rhkv_t{$KxCcrEEnmd|_dbag}Y& zN%W@n+1;W1}spu?A-)f5-N9rzKp(dVZU(GZ%&H;Q%^T-hi8@e}1A-8PrtTg!FE zKBX_KwPEqP_;uIM#AUg1bx~la8S-CEH(|9w+dI;-dSzS!>yoc>w$^ecl7m=_=vUmr zCPy;E;7Jomihex^ycy#gfU}kK4D%3K@iy|cnV^) zc@GK1^_;wu?6$kJs;bUYfy()av?=ty*HkQ00Ml`M}WlU(>)hbShu)z? zxBlnxb9;mN>_K9cv#d3>T&N4W;N)Bc*^m<5h7#i)_OT?J0Qi7UHdrzKZUJqzrb% zy-->`UYH?UPc6rw9Vb#5tw_?WNcfTM0<>r-p68h+As8)f_{pz=uXIoriDuI@j-M|g zrb2_ai^$Y%ty(I6Yl_2S>oX(?o`ah00Iej2uSB+*FL)_}AHrY@B;Fc!7w`h>;o#hGd>x&yi*rt zUvh8BP`0e5d91%R2Wv!12YS1li2gXAI0#(dj5mK6YZkiMe1nn06ezOcgx_ zYNmaC7cknqP+aIqmfM1DqKk?t&oxGAMD&FFr7~jRJ5MnfS5OJcdfxwQdpvB}>O}RR zdK_Va6EmzM(k8dz-A1sd{Ga`8%z4xaQp@iTNAylyy@2Lk#!zy?n%?ZQgNTZ!HDa%G zZtZh3hn!Ozh_{~2u%g~xsE4ZjYu~;~ptm^NW1&9}9laTKlM*|6!PSr`E+WGdB|0`` z8y2%e!s?xGKUt@5QF*Y|YvNt%$tV1oS8CLdak1+hfnd*uPHkv+@af07Up2&k!PnSc z#6$dcLBq8V8UY3qw&a8TyALvtDs*&ajqoNXV14p5L()n#aOvLqcLnfdewdIWl|Fj^ z*w!P)3?f|*w0q11f5lFb9ZEbDe3;{rC)X4c(Emqq=so&Z1za6^GUj z(STS9oj`AV1rY}pY zAK(A;7q)cO^~>g)=p|<5#BY~CZ3V?o{_$ zE%unnXfRaJph$9+h-6CQGQHw5nlzuxAx-EHXINeG1I0Ct1FiR;Xv2Pzi-ZP{J*=(P zow^d9;ke~}cxs(_`)X&%l{8DC1oMbrO#eTfN6!D3ef+-=xO`%~(xGDIPAwSxQ~f~6 MNhwQKi<<=fA8Ns&HUIzs literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_03_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_03_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..cd3b5182ff383d3241503a84d80db7407849edef GIT binary patch literal 4392 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 MNhwQKi<<=fA8Ns&HUIzs literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_04_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_04_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..cd3b5182ff383d3241503a84d80db7407849edef GIT binary patch literal 4392 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..45163c387f198fd6198723ed4b287b0aa617a5ce GIT binary patch literal 4665 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_06.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_06.png new file mode 100644 index 0000000000000000000000000000000000000000..2dc50f3b250c673fb333c7513fbec1ac22f9d85c GIT binary patch literal 16481 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_06_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_06_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..45163c387f198fd6198723ed4b287b0aa617a5ce GIT binary patch literal 4665 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_07.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_07.png new file mode 100644 index 0000000000000000000000000000000000000000..b0832476758f008f9cddfb8e60adfa6abf5f6472 GIT binary patch literal 12275 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

    3*Y&z_N3luzvJC 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_07_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_07_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..001f2fbd2a8a0cff0ebd862fa71a912810b4f4b4 GIT binary patch literal 4369 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_08.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_08.png new file mode 100644 index 0000000000000000000000000000000000000000..b0832476758f008f9cddfb8e60adfa6abf5f6472 GIT binary patch literal 12275 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

    3*Y&z_N3luzvJC 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_08_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_08_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..001f2fbd2a8a0cff0ebd862fa71a912810b4f4b4 GIT binary patch literal 4369 zcmb`L)mPLH)b+n8-O??ffV6a%(lNkLGn7O3Fm!jP{z$2z1f-=KRD_WjLVA!8rO^TD zetg$@|AJ>d7iXV~z1F@t=VGr!UoRllK2|_C9 zq}X^#aJ|Up+}k{L^rZ%-^rj@-EQ;;4pB(F=yAzyzqIAl23FiexW}s~2ogxcEPrSns z1MF=wD=SM!&`MRpQ88(?^7;3fdl?fUsCKbVqxXuk#3zSY$2AMsLo3NiKk&eTx79{N zRv)b#ape+-5t}tks5rq+_!mAccSy<5p;r*A_nP?JKJ>p?Q%s`^ZQHQKP*CCNRd&#i zBpgG*;0F0SS2Xr#)*)f)^>bsl*~<)h2q{DkUlg!_`OlW>MN4qtyvBW&3~vm?-pv*g zrKhs*4+Y0KKS!fBHKeH~{5uYB8ZxvbGhbBUQDpOOYRB`&yeKa*pZ&7+HwxD)Q%48A**e6775u z0@na93KIBSmr9M=Z1=vp>(6c37WhHpIkCd9E@9@WsI8jhOld)~EYi9O)n%1+6p!-^ zmkPd>5@#X<{$6XN-N&yR%^{H3uDbkUs=(nNb&Uzw^-=K|7bAL%-PsiJ6pqgCoE<-6 zARK;IZ3BII)hdVVhY!k_teFh#{Q1n7tysmU?;`&4?zz5wFG?o4T-Yv3>!R&0V{#7^ z`cYQYU{E9Yi|Y?UmD%@K>T_w#ZBoXGt~(}lIBxjAcjQkI1u?(5(49O2k}Dl+Z=&zhk9Y^kp8K+N-gC3~%Y&a`F@&!!@tPjT4R<3SN3~VToQW=*EB+QSv&CLIqTv-@* z3pZYjGGp1ibk|E*X1z~*mINudtue0(uVXq}^pw>_x$`X)M1m`xInY^Z$`%>E<$QBU zHYfD3APzPPV%%Oh5JQlbFs*Y62q1+}6)&@US`;IhBIyF3IE0A}Cx45_4)+Ov?Fa{Z z2&?AL%A#|6$vn3`WDRJ#xPpA1R2e4hlOqOx*+wX0vY3_@Y`~zrBeo3^> z+cLy6(>zpaF~8aaRUpyMV~P@3dz}4GmfMl&mW6_tO@j*IAp#lzxE!rpsnL$OI*7SI z`>rA@(*JAc&ctE&pY}`<5>BPi#pPM2@h%Ko@e}_^1d2#?$krZ$LEI5bVe&^8tul%f z4z&B<=izzBbO2zmeN7SW&WJx4+-Ty)9J0KYxOAslL2Sa>`H1m97Q-Gh{EyLH3)YG7JJT39w(J0Zui#607Ss@@;S19T-*KH|l6EEIB=F?U z27->~MI`u`edTaf6m?}fH&?gty>8!HIKf()TUwR`_0Xb1rRKJJ*OT8R=sWk@7-TknmuN3)oC?h4G8{pA?pV}=_O0}ysDs`%TI#u`kWDy{=QGRIQyO=bJ6bH(IKaL9C_L`afUj2qxuHiu0WCtNyq0Re-I6tdy5?5|*2ch(dV%x=BJ$;=1umU_n zO>MwY!`wmD(6L&O@gpL#k7#J>Tu$oGj%C$wyk7h>d@=q8UUCdz4D&9Wz|O5b%E!~Y z3)o&)DBnQfOIs&X*yoQdnp#6KEnFQhy(#FEbR@-lFVxPX+5}0+ zc4**VkzDTi*}G0iceZesMP&BkTObX12C)>)Ou0UBeNLKEpOhCk$FbvW;O+R=8JfeqPWQ-kQd};p-RO+S(a{9oLPtXZk$+8%tH%Q6Lqk&4^Ir-^?|a z87C;QWx(6Rk+q4rRhNyaluCziuP*$hn0EWN8hi)8T8l3_f(3paT!U+8avREr+AESc z3FrUX!vg?Q0P%5i%o5I)^6I*#trSB5TRatTBXM)n+1F6o_hpJ|&0Ik)kMKMCZAbJ< zvQVO`p23o?rE7vBdnUxoMW2z z)53LA8!L59b@9Txv4cf;Df?%hzotX=j)r6XC1FT%r2dTZ%X}_MViGn-a~WG!1qtGc zH*kA-^b^F~=LkQu+gZUa>#AJ8vWycK4Rn;q3rbTm{^5IDZ@a&u#SS{$cw{^;4OC12 zRTKl|My$2_Prsam+Ef!85gQ3H$a8AQ+;~=rI5lR`%z&(AkKKeYGkLPjXNjhWdn#a; zhCaf{LRc&wU0%!e8wxGEaZc$~-4=c^zV({2s;xX5RMFL~V3V26^UI_qPXMYHu(O=dpRS&TK+{df0iM*ff{j5tacQ7`Vl zug^c>6uu(p%Fipz%$Ip~)YqW5vg~8~%h@$8cqmFL-7;;|nXfL_myBnO4-Mk)d}8)h zBhUV3B@iW+4mxMCTN2T~bW!kcQT_LB`#5Jw{yzO@_U%fc#t>A)_EAtw*8MM}zh0q$ z%Fq*n*ExZT^;h^8`ObD zpYjV~0Tbp{-WmWr^&81SDAntv+vXJ35vA-<2QD-3U`(C-jRv7+1$d1JV_-Q&b^B+J z{)R0C#{b9!rv;MqerqyxdfI>EqmGp*$j}K%H?tvqA$uWX(JB2_hAi3L&OvO;k=*{k z5#5S(F|^~>pf%FvAsD}~>xc)Hk6rx=9|zF>o)y^J3>dtp*BA=9k+c-Y zRr}^TL-Pzg3t#WT}NLzy;zHQ=pXVs|Wi?nSwp$1JN>u`r4!GOir%q*x^1I_q*IL7ON z7!}?br7o10W%)FVZkliRjys0*|mMxT^nCV_Hti!aNu{7A)i*1wCz!2c=&FR6g^FCU3rqLO) ztzHCfgJ_=XGIBP3sA%&t2gj?Z(f6@CR-H|1Qs&h(ndgdrYg>`0Q!J+63YC%IDjynBVEK3k|$SV47RGN6iintJS)R@c&(16z@80LQwqd@gPA*^- zRHnDBoV-IY1E*Kc_pP+In;wAyttXb<&o%hyaEw5cv(F<0T3VVyMs;CXkH0sPn=kZS$z_De5U4pB&sVTW+OsVky*~VGevx;YXCKVI_|41W=~>AmB<1|oXKuyc z(xHwdZT9=4Bj8=lU8OBHhn+ii$U2G$;kC->h|MB`Wo1$tT8LHCdWr_dxzjq(VZ{eSG6N$Y+R|P6#jMJlqXEGNUuq-dXUR&Z`2U{l3y7w_6zRM zn2ydn)oSAnX(6f{CY*%c9H+gWb=Z^E-5&U#S=ToF@jS|SCGXktIwgx9|K{6D z;bl9lVBorYS%eD%>L}$P<*^q<6fSw*osvb~aJ&|I~Uv89&N4d;0WT@TiN${mPw zwYT?lpa7H~lJJZ1Bq*7|o|D#Mzq)MDwrdkF`;A+^EAolq_)&(D@*2lqD-FixIyj}J zkuD4$F|I7S%sb9J?OZ)wX5jOAXL2;xQ+E8YIltWREfeZ!ygAhjUjISKiQXtIyac?; zBkTQ%XAi@VG8zQC4mfIKr8*>_VeUAruy;6LBXu3Oo=Y*3{5m%>2KT?ywI5AI%?NB4_xFc{{0OfRI90UpVEzf!}V+2{t qokrl@ec>g2^#2V5`2XbKhW-tC&s6`J+2lXe0cfd#R2yEvqW=dgX;C%+ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_09.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_09.png new file mode 100644 index 0000000000000000000000000000000000000000..9f4ca7ecef232dd79200ad357e77b806784e2427 GIT binary patch literal 14915 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_09_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_09_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..0d9916cbac7727ceb130f1073691a3e4f4918905 GIT binary patch literal 4973 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 P>4~PMqy?*0u#WyeYt3%j literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_10_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_10_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..909201ae2c17a23f020b4aabb8a56e2c28c4b678 GIT binary patch literal 4964 zcmb`L_dgVlu@$liOCJ&v;?*;(0yaAaoYxX3(YW}I2#WY6QM z`@X;b!{>+B>-jG{AI~I1eJvm*h!Ow*0HN9%FaD#`|Br&`zb8Z!5d#1Z1fUwK#-T+A zg&{EGm&?QO*=IaiYf$nTw-^#Ny;wdHdKx7@ry$dHp$~QYl-RxQqwa1s{co^Z0lj9Q^T_@aG{t+CvvZI89^hF%X?I`V7fxsjt zht&9i1{C~(Ni&}veKOJi6yu53cK}l;W3rbLTSSi>H-rE?_6u%-Zq$+2y{z5hHR>oJ zk!`#UZMXvs-mgxQfx6lmD)oXjZsHe(e;L_`k>7_q0NJt&^}mLQK;_%|$Xt>c>CchY z;lfvY9l5Mg1S{VPUNbbfY*oTdwNR#r_ndQqPbAw``Vr8`0+V^mEQGd`wEEONRx&Ae zI$_n+i)c79?`<8f=`%Fzun$6&<+I{h14a5*PLLO4-0AcX(|rp(dgfE&4h&`ATHT2! zxQtom+B6cpr+rIA6;Be!P4h+=8Z^Av6&^B6UqPxahd)jWdMeEZZ~Ni$1e#OGmPM%t zmJPh0SvS`{Ebq@wlWa4QI!&8E3XSIM(1WUe$AOJfS`2pcwo{cvjUGwqNyTTplYWlv zAa{XxH@*<$i9ct$F|~%1ur%p08cUl}A%A#D?+^kEf&&Bpjy~|sy$$nR&W%09EI@r= zf1U}KPRN=BFMCN-w=JBzBRoA_ijvh{iypf4OqO+c2^tAAfVrB*zaC`lO>VJ}#l_IP z&_Ik`y!7aTZFq$_HXl4^U1ry9{Y3NfKGKjs(@Bm(55;sZ+NBIA(8@MVBQ%}Qt@zG9 zWVC+rz8w9}h;efMcEgAzn<8)~bq6@!?Q;R$^WEIK??{_t*BpIK{*2O!@09oMBDaFX ztUB#Bnix-)_IF|JtEf#=J+@FScZ~3+$Q|F;_;@1h5qZ{KKp;b1PytTQ{PlZIjaE8l zL1U4Pn0r*ra%lsHr(IZ;m%8-W_aV--@5~#&6Ds094Tu*0`SIt|pruDx5GaDBsJTYM zKkEp8L%p>_Q^&Y!-!B)JXyfOuS$%_i{ypvh)0ogmF7U&ZG`a<`6@H>huDbX$>>;tDmDbVbTLVB4_|(jU zX8y{G@OI2<`zzM|aFZOphAz#Ub9!%8R%dUyWXvIh*u{28?# z<`ZMv>fDJAs}2nMwp>mWyXpzn!m`3mjO7!IvjD%PmCh+W94m`Dhy5GNsnwV=yF7cP zswZ-JqniO?#EC2~rs-d`lv+-CHn;1+1g1Pb$a49nm`+{!jZ=yEL<4LxX^6gyl+tWkM{8MeziSzHr3p;MP$k> zR4O#0%#$6!8F?qDzP8#ynkU-|9!IxY9jDi|I{yW+?6CkwIqCX$mYGjS zMJ`_|Gal_Ny)F4M1cREFWf{Cw&)2q9a3phjOZFZvE|sOe^47tXWE@48^1e-xBDW}; zVXW0GstJhNsj}@IS)?yzV*BBRHfA^OgjI^6za@aCRJ_~_wBAy_H8-25P9p9nyT8qO zYP=RwDjQiKDsVE;t~k9G;HT+j+JDJeLgEyqfu+oQ6#U7kX<&bEmE5-LGEgUsh~nGo z{OgY{L5UX@;cKU({Dxjm+x?L8T#ISkP%r;Bmy* zmGha)@E}c+aH0-S#)#16X7e)f^nno^k$&_?)l@$2u-FssT`3czU$`xKaIyOZ63?2= zSt-e^tKGu!I6s}kcQ%3Zi|*f#Ng|zE0;8VXGKusa7t7YQ3LVuxM}H1D;O-7g^lghx>|Mch@&T+d6oiPgx`icqso|yb2=?m1ONacH-LnTtZu1BU@kL|3B!~X z-W%b#R(d!aWj8*f_A_0x-H!>ao7_vea{RQ3>2^4zChjxsOWtfo8<)O~f#N%50J%tP zVKPPe*TY70Uzvh}DJu9;bl+g_fb**(<oG9=TJ2z9&>RNqmFI%BE!B5>J?HdKRk&Few{~NEX|0% z_iFa8PtR!J4*n$U37g#s#s#;~I+Wdj}!?xsihHZ+{ zpePeJ0cJs8L8!sv+1{z;F5tB4n)_eXJF`*hQ?y#wO^rCMn!YhJbr*=a7-Y@Y+j`&g zs;T(+ke)9CeU%~CUv~K__-yFBRhA*)I`^#)AUWtbCM|~lxhwi2WZ~YAX{<7Wy}M9A zzFGQ(-MG?Kak6EXvOtE>*XfR38Ck`_U+HVkBiStrpnvSv)!2r^Fz7!zh*lqqSeB7y zlI!ms*piX}gK!BNNRZ!l&ifp|z7^uR@apSNw=1C@2Ht|YDx!Gj9diiPddx4#qD@MM z_V34sR=)xbvfB}bo@27z`JtweQv8hy&PFaZ0s-qL8uM`Ga zG_QnYFYN>5v2(b zUgl$sHMUEj<{AYL@qzjPh6&S4>A;TTvpS+mm1vBkzb5H+%=Z0*@YUvq3WH!s*Yr^> zbVx2KX`kIAr`vQ*Kw9cyrm+~m3{4PS7i31)z}R)<742^R)TX9CZ*>K1n{oZuS!|Oc zZ%$++r}yEz)O;;;<@HxT}Y_F{0GDJ zA9Jx;P`qJlK|{gsJX7V|zWSCbe@U4E=pOHv8K0XYr889z>8_683LZRD<)4Um7-&MH zs$0@iT?++m&k98F#M<>gcM2Vc-*dLbfmXjnuayMGmBud{^h)(v#;FU~ZXI2}kz&Yt zSVycj04jB}eeZE!ijD>Oj@Lf*afgOk*iA0Saj!``TZH zxf?93h_S)-5I&*`>>lu4d~UCKncM1R7TMnC?fR8_|OSpP)IQ3_sS zMIUdZ8tDZxj(n2XauKebr$Op}!UUc9-PYoiU%*0&ALcwmvq7!9PS3}5PTn`#TUl{T z5z(;E3r7{S_-0@9-bs1-YmYIcnFwyh&^2@;FTlvDt+|pj|F`oFX%)$?}$Q@#b zW>{_kb_|M^dvRql&%YA-z#Co^v`=5GrcNQYH|~NAEAlib5p-x4CLZ(){cD=kHzHMh z#15>mun|Be%tnLwzO5B~A8MT0P5buO^pbar$4zP(IxO`tSx@JBV>}io7+TjEE^8VK z-j{d-l;k9bfLvpt0Wer+M~I_q_3}L2@jO|duw}X2`YA3tkroQ37h$Hk{2SQJxJPd=9Z|sKuihA|9cfT=S1UiEts!HhWhGr z)glWhHpw$7_KA-wx2$ZePA6sMWY?^^>%pi&B_N_f4@@zwKd;>qm>)wL4B_9S}wngM4m)}od&;$VR zlH@4NXEz`aZ!n|a>$-nUQyQyYSS(fNW=WRi8N;|jTYezx+V4dc_3ndNbjA}&TXp+L z`yE>y3B1`~!Ypj(I3dp+#!y7!M;F)}kt5xGZfk}1nyhK6UHjvEr%JTkY{{Fn4pbs_ z8c1d8wK_0i&D1@Wyv~LhqAu@}!N~9Vp!UB`_1hM1o+ESa^9_cs})I z^0dggoZdv2&!nV&@sWNUvalZd!3P@)GGvctdNjN|LZnWWbZ3kqJE%f%F(FRpL78|P z|2h!Ph$^Zym$4aXqfg1}=6p&7avK-Z0%SLTOF7#=z8e4dRef>_;iBwpqc-qvPqC1I#$cNk+fv!3;`DBoXUY07sKxo&j& z2GZ06l)LYDqx#;l{%!+>MKGHGi>`${Z@5p!-hIH@o4K+tj8#a!V2upL*rS8}4NQ1= ze>GK!SEzd>*-~`k)?D8?CQ4HA{_bGNf-LK7K$SPv@%_P?^5t{H6QFfy`Sxqh@2t&s zRz@7THmS+A>m!D%JBH1|m+4-Y*pR#aCA3=*N4L9d4N9S(*+6&SYRc}t32UbSkn{m< zvdrf=>2X853xi}s_aEUZ!on$TiKblZr}HZ(DJ~Kcbr7SzNMi8D1Oy@1-s3lTw%G@= z@(x$|xV2vVvn6}%QZGg#Gc#fSS;Keg^y2ueC^xQ7O>#ZEqV<_z>lt^J9(mcq9vcC(?3uQ30%1&vxE{A?hh(D}k3|(m@wty~Gi!C|mLzA{ucCc~r-g-Q00l+Wnz) z@5F&k*d-d7?4MgxPC}d(oF*uZCISOR>D9eTb^O7e2O*}#lQ!WtX8<{0wKp0cR&dlZ z?n0GPvc1aM<((qFcdL?AcVc6Esdc&)u74+G>duP<@;tyB(^Z_b^jY4LMw_46I*7Av!wU(d4u5y- h{%RHcZ{reyT82TqjLt#p<$v`I0M*pjXi&3@{Xh7)k9Yt8 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_11.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_11.png new file mode 100644 index 0000000000000000000000000000000000000000..8f0d5f4516c36c2582bf626962aba7d254b3f3a7 GIT binary patch literal 14864 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 P>4~PMqy?*0u#WyeYt3%j literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_11_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_11_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..909201ae2c17a23f020b4aabb8a56e2c28c4b678 GIT binary patch literal 4964 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_12.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_12.png new file mode 100644 index 0000000000000000000000000000000000000000..8f0d5f4516c36c2582bf626962aba7d254b3f3a7 GIT binary patch literal 14864 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 P>4~PMqy?*0u#WyeYt3%j literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_12_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_12_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..909201ae2c17a23f020b4aabb8a56e2c28c4b678 GIT binary patch literal 4964 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_13.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_13.png new file mode 100644 index 0000000000000000000000000000000000000000..a759b3ce8d46ecd51d307858af7082f72b47d30e GIT binary patch literal 14149 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_13_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_geometry_13_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..47d9499006c1fb458bfb88d478afa6533a9203ed GIT binary patch literal 5051 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_integration_09.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_integration_09.png new file mode 100644 index 0000000000000000000000000000000000000000..639cd405c981bb046c0820e2cbe6a88f2363bc8e GIT binary patch literal 5115 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_integration_09_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_integration_09_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..317ae2a82764857dc790b350cf30688be696340f GIT binary patch literal 3014 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 ZfPCm)ms}cv=HEUCXlv-J<5g`V{{zim!mt1U literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_integration_10.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_integration_10.png new file mode 100644 index 0000000000000000000000000000000000000000..40407e286d521d45ebc3ac3a5ad90ba32115d6af GIT binary patch literal 14747 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_streamlines_03_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_streamlines_03_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..3892f521d9e5e7b4d6557bf3b1a4d147748bacdc GIT binary patch literal 5359 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 WZnBJMq5nW8KwCp!y;{}bzyAR&5sXs+ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_streamlines_04.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_streamlines_04.png new file mode 100644 index 0000000000000000000000000000000000000000..d504ac555ff6526aa7795da5cbe44b69145e5211 GIT binary patch literal 19710 zcmeEt)mIzN^EOU!g1c+6;K3!h6)P^qr7c#VxP%Z~g1c+67U&0e3sStav=n!DmtVjC z#C!E#?9HAzXJ=<;&g{(dOpLCMDgiDHE(!_?fx4QKJ_-sd@BbD6?cdHdBQ*;Oiq??2 zl7gXM-ckOiR*N@nFLEcp1Ml-By4X1-_Lw6Hi!~{sOwqQ+^0BzFv40PyLXJwRe$`w3 zQEpg&qo<%$7Bee_!v?zy2*_{02?-6Iz%Rz|(h=fJZIqqzKhN8-cdYw%Q+rbT?PtKx z8}c_pwqFg2434l&cpoHKF5<659vG90{Ajs*(p1JHKgWIj4K~A0h;l? z8IGN{trq(KqW^C!u;eP<+ep7jx-)GBQS*094LM@`;g(o_9{t&V&O^ z3=ZWPG9Co({rvrL5BT)M?uT1`d5Q_}*cZvU++UOQ){C?nHP| z@c5+A{Q^vs2}{K4XBH}bzqgj1ApI=zbEWh~h5(5p3=SeW(o<2n{p%H6+wfcaKSL~@ z{=aB^{6|T5Lew@SJk&a)F4NxmHX2N}4%r3ZJaU zvr2d~tP$_&ExcdvYbasUQH2!mYIeaDyVjF_QB*c(X5jcB5YnkB)aG;N39A-Ak=!Zm*9QeaA~ zL9ek2UPo1WM$E`RIeEf-ftE)~?8!=wp;NALql?_!tM!+qM6~cK+aT$r=cRh*Du>Ls zl#afl=aU!U8!|_4Vqa>ywHSxTHLFJX*TFfat9xLen}uA`aDm9kjZ&@JMW>-*k(sDG$tg1XsLG9lg!kJi1n8ke+B zi*M90-QKIjM!oC3%M0O6HA4||U+XKs|LUIbE!KEg0;DqGfZRFO>k=0h%(SgWGlEG) zJ~B;I!yPlLnE1myfgt`c#buj$8-C@Ut$-+pem45Cw{N;v*Z)-@%^6`JqmHJ=a9#nfaM!fEHST} zm8*`Ppu5-!AWK{k0~*vVYL75+;LDf!xs^9IPKqHbqlX|LVE*}FeM7Ky?=fj2&JHd@ zVj9-Gx&R^7PZCkYn}tm(OWOZAkuERD@!q?6@7sZ!Migfeod@fLzHI|RqH(DUMc?Qa z1vM)i?{2OVC-4vW-_6BaE`$v>N=4I2=6^2HI@0y8AXY#S?0|O#lt&hlX}~uw}k8Z)MWS zSBU&>%5Zb}=#%aqJ{0Q_PlesDMy1$_H5G=6ioG(VG?Vk8>%$9%AVhMiLi)ztDe!L| z-(=e~VQMlPtQhNDw#y^x++m`RMA{K;56$~eC=x1u!rLfS;bg71{&{+j9C0ZsY%bVWA_fpoPDsQX~%RyJ99_1*1D-iFNJDM6s)dod_O& z+*!RoP+KcIwQFStgyZ2dkSIfl;qADV<1xq}=P1b~HYy7ucPe}Z)DW>j0UBzOg}|kZ zxg`A4{rt~5O08tVIIgHv@|naIm0?=GZPG)J$pua2Xq5kr*eZiLE(LexNw|{xJWqr2 z^mbJO-{Rd*QFc{|!dT<)YsYtUz8>-T6%`Rn?_d+_Li4j?8A4&wqM4VjD&{k(o@PZ9 z)e%&!t7|kOVZciiC?9GP_9IhW=-e5?2M~W2r0WfCtDsE0VGnIVDbUw)BVip6lnQ)yL ztMYLaFYU%?aFq*pNk6;Sut{zf^#fR2jn4|-_zagAEz)N5V?=-+0Z~oJ$5tWHNiqpk ze{2yJK{SOBUPtuj%1`gO&47s!$Tiq<-)=558gA}%Xz{XUP%l4Np9X&iTB_5c5Y>-<7Q=fP~fkY z%`hvSk{S0#@ZzssmYPo&Xk7jjgR>4Ru?fzK)rv5BG>cwE zL)9SwgIAJQ!=s-AKE-!_W1+(q!o<r=8wcLf^yKZd@CyJn)CF^nUAAY7cFzO%O|O~3+{+c%i5-jy1Ud|;cMLp(g+Yqg!A6a&kGNksz|np&lW!9L&J%Q>AyIYQdVsOP7A3a zuaBlSZs)n^i@*L%362_GNO^(phZ$LfD?`oSJgc8#+>5m1H=zZS1mkv5z645{+Z~eY zKbWcq=j^iNRksR?B)BPJdp?}OZ2<06PQ*R5brw1Vb(~)4t+#s8l*YYbeWI)D=s>N{ zwm;rbNRcFx?||519dU+Rzb?J$m7fJIB2o2%-`83{JQWt6vcpy#)01~&reU}#aB_^K z6T>di9d&!4XeNs&1~Xt9Ux9L&MyPV#yHt=);R5_Ljrkh5WD?GkK*x1v;4DpIHUo-~ zDAP4_JqCmdPvHJo#UlCPNv&h7k57W@sbOJHLYTdY%3@c$#_=uJGmXu3vvI4{IcnK@0l@=)t_B1n;Z}+ut zXJ1{W#(Tnw^c(|FOv*J{VG(0PQom!~hAyKV8gyf=((`^M{dQ$p`xE!S)0NIONxJBM zR(>HoDHaUPxUpXpP>R#6M5-QK@}QHypY8m(NXBw+R`NReHY`5mqw&obxMunB_f|e< zva7c+Manx)>f3I#pr*^lRYJ^v6%5Yk>d9_d%blqHM?kSo&ZJ_g8chCF`Y{C8<^0_! zpItMiBeP}l5Y7hPrYC&*$8KqQ+kQ-MtOw5|xuO&m8qr*wtoG@Sev&7l0?97ZGcMSn z7IXj2lb5EH_VlsGdvA|+ zl%T(-gPLZHhlD0Tw5&O09VH!JWgiLuM-fM?$*pzk(lB9cI&Z2IE5Dz9vE8BrhR#A0 z-dhLUPr8`#vmD=3H&#>|ae(l9(-6w-I@lDOcNH1KlCmYACl$gGO1CIVW;7>^D%>@B z!S2J9f5Nr|g99n22B!3=DyAWh><}VQ(4U2XxV4ULkD0bCM-eRl36y)PzTl1qw683@ zEDbCsVRK=OLpW=c9<#*5;^0iR_gFLIeXPIKwktOtz*lkTUcscQFc+gl{Lw{Vmn?SH zKqOTytBGhL+D&Mk8liaqC9Ar~THs~UFjDP~-156VIb*JQ9%6MCRMj#(3YqAi_a%& zJ8Rwo#dbiSIZp`w2b&*Vx9Xe3Wmt~Dm-@05;k7Q1bfgEX8=VhNb+5~g#uGE|BQZxL z>5#Z{_!4L_MCdQR+!);Y&>xK!&j%qJq zI3djz`4RN>wdQtHdC3Gqk<&Gq8A|)gUe6AIw}wV@_+BqH5wYha_`<@HK-`CSIv0PP zd|dG&Sa3J9T-)We_*1!xkY;tWua{ko_V_0=iZc2m3a31IDEi%>U)-fpfQaQnxjCq~-4D09V$w>&)mAS#!$@-|Owlny%KreYkbg0dtQ8!?P=au1uiK#`x>$ zmOSlGjn@JX$&ayzA6fDq!ftu?%n}xua9G?i80AnH`QE}$13Xn{Y^a7uiy*r+jW6FP zf6J6HK?Pd*sXXL8$OWJq>#%7Mjm_*2ec>c-Yj#m;arh46kNmY@Mo2jN>$2d`JQ|g# z#Y+tF(6h*V(HlI19`n4R=|qtYMhyDoFshIBlU*vQ~GF7lGj!o8M~)Pm8fr zanU<+9QGORtZXGY?b|mgJqoBFJEw858ZllvK1h6HWaA7@g!{v2Q5yeV);k{YNneDH zsrs%?9-keWv(&!igN1SS0aHwXHJ&iXw;1#)4>$`Oa`GOslK}kHh7n%X7lnYGR7|ob zU>~}1A2v6Ay#Zqol2v2fN68i}*om^o+yxKMHN96qx-H`c=Nd|dPpx7x+>+;YBxszk z{5(xx&kOUG=b2}&PBFk@7}SkORe3<&d{H)`tDv4e_?5E0V`%}Z&~(Y>#->*dLO&zp zYEuwO(2`SI;8(FqXomJpty!>2M}+>kaIhs9FbTvWBL^1ycGYK=d&X zd=@`Kzg9HrM;a}>ZML-oPqQ=>vA|2WnQ{UD$x{DBx^u_h+xkBhOAt3pYP^bUXsa2a zB2k4lWl_a^`0qDIAMQq^ics(3cb)$G?>ek0W&{U58i?<6HlHB~@o>SjHzTN_~qOD%ZrMJa-rffznHp1kBPq%W|=xyueEr_Kl#SPEXQ9P0X ziAB)=dfECS+>%25?tgs9yKu?jQSFSoj%Yo_O8GXp4(3M?*RSG+)wC)C6rrW98lVIw zP2aGmq|Hlyv74`-@$O)|l;l|fRa!Dx#iE;0$UxqX{2!kV50BCv5v*eswYmST?esh} zxyKMU*f$nYdsR~v#wU{%oL&vrS?W5*Vr<~qQ{(l~?{}JuKmnW6Q~(_YtYV@jl3==+ z#_M^?g~00;hdznH{j#S28G+m^Bt;o{hL8etz zFN8m%ZRZreqW4pyIm06>nfNyPwJ!#@JcB?KdOb0TEs!p{RcRoaB!-zlNpY}5L`=vI zFEdzUK~_6|U{x|e2xhz4ng6B;ro0^HPb4CbhEr^sClDuVL>(GtIV{W3zit(T3Iww# zvA`hsgTR4iFVMF$~N?0{3;R{n(VFpQDug-Il+ z6cSG;2yQnJH~2khfq|FI;T%p3LrB{fk+&&&f0AjvwEdrxDF?obNbKK>TIDa5THQOc zkEyap@2=eDMYK6LW@*s|%s7-^$O^2!SxISg(iJCv{V$msh@YOk8=n6Pbt)p*S*&&^ zn_AsI69Pv}qaV!NY=UX{m+tFL8&V_PcZzOO-?PySkT+7}KG};2w#Hr&eL2JulR4|h z%8F!ZP$29t4F3~moJ6}*hUb#2WhYz=N?euaN7oQZlo!zoqT+te=kgB$XTV6jEXBuKxX71{e2oz7yUUG`b(`;M!M_bjTsABywx9^@mDzoaS~b+wq=+(MTFeuWD^bk!1Pl~LF|CafFyfYZ)##a+_l#bVuT+b}2Wri55cil%-zYG`{8ZB%Q-F4a zA({okw+)yX!8!h?o97GbgQbckrw#^R^0LyD-TTh`hn~jZJ951@7aTLFdCYlS`>Qeq?gOJlVxpaOKi`Et^2uP8GYT(px1kga1uAR&v8y$ zt=>r&-ayN~ruePHv8Y%?7BE`t`1kwLMa%GGCUHj-{QZ!0AosGTOz`3k?!GOrtk>v|iapI9N;WpgXGhw%R+zC@Df~eYVHPj+ zC8k@||FomF3dXk+Cvlr8bSItifw+&B`AH<#ZM!&$r{V9JP(;U%iOf|lEgq3DVlGD% z%detP5!u%qp~)Un97@HROi)@l8zPh3=1`j?kY@%D5x@rDDP_$9;^s1=M>qqxv9`#A zuj2lIf}JV*e(|+^9_wc7zdz61a!Vz%|NYLP&tak?I)@?;5CZRh5l^OD!Sl zQ6Wc%c^=xZDK2~q=4r5bDtt9<8c~jm6tR(PRTFr=5Sn9pgG(GdW!Gm2;Ox!SLYdQLz4ody@muQzei6XY@k zb0{`Ysbb0u;|}dhDSWX?LBg1_% z)?q{aNb=oq=Qq(yx(L0>cQzJJi%7l3gT3~oPz#XWQT8Q6_9dZhQ#1#HF8jyjV+`j= z_gU*lHbR6tBS$we4)A@+i{pa8a_GYE5z?r&`Q+dnc24OA_GA0%7r|n5PqVYMqNM(= z_@K>E{}sia6K+Idr~ z{_vtfLowZ+Wx`j#nvi@{e8ar(6kf?WA=-Q~J{v-fZ~^Oe0)=>fJsKE=I{oyS%NUQI z7*Ss%5^9gVisF0g*mz3JMWT}9;@5Tgl`_Wo=>+jX|{t3|PNrIaK4o3R%R2v9Es^hxT>!BW&JHxar`bv;HQB&(zJtwo(FkYv zvhUh%THC)IICGSHL?A*9Ud+g}Vy6#h4-S@Dzn!R<=@#}2sq}n5O}g<*_>lQeBO&sA zCe$^rc1QVGRX--E5;I&R_S$IGPK-0QlOY?vf+9#4(Ez629e7P*iNYU=|19Y>PTiUB z#95!1-i)* zMG|*KTMUTb&GbukuwwY(P)+G%lyYK(sT%tHI(g5B^H%C+#{YV0E*YSOMSJ;O=-bkW zIYjm?eJeL0{37onF!$8hj-futmH%Trk{N_ULJSqTBx#RpPXfxOd7$eg_M6RyI$qS9 z0r>O-zn1ZHNN0NRJrggN)~2|7tfC+kj6T@jIm$ff$SYMmCEV&|VYF2)p7L{8#;GTp z4*ia}o^)%|zW$BS6=xX$L5GPc#q|rKD{RPArbE1|&~P#ANm9Zv+-f)X^ht`DP^}1b z_{^fRS^LgoulOz`5yq@Xy73q!DEC~=Yjok&3QhJIh-Y+}m$rB0w+iYOihleR8H!jh zF8@7Z^M)ipZLee2ekUUbRJs1iWS6FmVXhMiqQdXvTDJ3;u7B^9zW7d=%A)4n!PB)@ zL52+%b$_GM6RVi^zoHr*LsMK=X2PKe>8XHr7;0XLVu^0sfao?GA{9{$!f|EBMf0yx zc1>pc*K?Z!oqvRPcl=YqG{#ci4@&_}J=I#{#7S+XJj~*P-~OAG@7zc0l^gVaY|=W` z=(UORlZW~4@TIQPYscxmj+K3#b_1UEm_Jb+OT?y)pY% z$ki;_5g$FBRyjeC%?#mNZk2K1mw-DWD+|MrZ(_lU_9VxKc~~r!U$-{mk2SCV9R6jQ z@2QrsymZ#`YzKrez(F#*B$q_#4`p$_aDNeNqa0MmS!YlG3g?4!H3wH=)wn!toJX^z zcCWz~VREw{Ik9aE||y`PJ=vtla?+tqYV2 zMVXXSS=9!BHSOkoE}0#lZx2x8Jjjn{_Spvj|yx9XtL$68<=^d z%zPY{;g;S7OI%&?E)_}sJQuSz&JfW!L$y1CY;Z@66rh69tIFNTdjU598FaMFzA zC(JW7sXt=J@Yr9nFQk@3tcDAmlI&K9ZGa7(Ft8*4UCM+^R?=hgw&S{>EgVl;QYY=I zrAsZ!-9@-(ae_-nDgo`ZJ7jm3TlJiBj!{=L$3 zkbAkB%U#Q6-6n(+osr|$KPHao9CdfWuXk@bI8cRgdSW)k?KdTKMz*yOqtl80oRd3| zBJI%Cb{VULhiE|lEJzSO^={46YmjW&OWJr{tE>`5qjTt}YNf4K1cjOc zuDW7vCmU^8#H}-dK6bv8Nf4;F`NH%LQqmA9p@zHH+nKUyU3RL9d&4xsG(sw}&Ngl? zWSSLo!F?vz;&kBg&t9Hx+qf~Abhy?xo_ks2o7tT=QS%FkT22ZTd>wg7NC+%kd+Cdu zg8cjAi)AiKaSvsB92>){$BfkpzHQJ94YF8sCLCv%k&ju7tQk`sTEswtJ{{!JQ*iaA zps3_se2zSe?jyHjAs}6OH?vUl-D>&k-EQe+iss%&_tU{YfF7VzDAchGhjVDRJWJR{ zayG`m!uM6q$Y!$0{CbepBaV)abnziA3!R|fWZX_kWv6+?Wa$U7tM7TfIA>%r7{wqP zYyu=Xk`N>$zY-u;x7r7(x|jhYT&PshdLFBL#D+Gxx<`i5dcJ#b^r4gfV&41(IElwD zq!m$*4kHqEZr)t#`p&p740N8v8lO?9W&N*qCaMipf_UcuN@ zP9#AlOf45qM>LnbsB1wS%Zku{TjapVvP51oWYxPRP458|4)2f!-@HGToX-29^;rSuM(Q8#7?V zNeN??Waerg8NiX_kI_X{Cg*Fn8MS57Fmi zoe&<9vgAGfy+oyT$yc_-tLCYyW=9O-kP-mJ%F}S}@FRgL*t?dH7srg10qvK%Jp2=0 za-m0&Z>m5S)%~hPBKgU8>vCq*c*6Q`)ib7iC{ww#nHtoEe)PS$H(be`J*jl~&lopH z5ESbsf1)I=)tmK&I-nRc#TmnMylEP3^IxM=sRL)>`0d%i>s_g5{szB=vQvF8IfLFH zb7w^o-6(?y$|3Ev9yBtvJhXWxpRA_xM&VP-;bq?b3QVCBI!VISH`b-~2}%SA&=sW97x|K8?8h~bupCpL9d)7s>BYT-0#hFU8*N$Up`i(e}5Fwn#>mqbcr zB5}It?mUF?`l)u$OsGA6RJomTG!N@{IVt(Qjy}*ouV$`OE^%-#clKwSP!!|{LBF4k zA#E8KZt&QLc&gpq7Tlcznv$>2_oLBemO^$Wf0*ERZ zHdeY@(!pGZTKLP~-dx*eT3cBchf*90r3r`xJ=~EEpa0fbu2#{V-OnCPWSSsiRiXY8 zyx-QkeV0@UNmjlgu34dMGLG?hc}d%I=lG$-626fp+JtB7NkMZ5m7nJ!ZE%*LyV$2Vs3WOK5o_fhn@i-<5R0wIa=eHyIvP~&W(BogC^tiVx0`Utni6MSmi_D#R}c|KsK2q*OO z2^x82dBtvd+4>KZQ}D*Ze??Szbs*JFA?RztjMs&lD|4(fUP}{jE(y|ed-n37J*l(9 zou|UZ6uXnA+0A~U(+g1e(xp^Rt`saf5+_ok&Svq~?b0e>PH;C6zn@ zRzOmipn5bXC0iINb%SmGwRDLz0AxN02`a; z-Z8Y6va7M@e1RY*Py^*6qhvCN+PbO-h8GCtJ79NfeB%H2*7Uj)G5rtavzdlj$FZ{Y zKwJfNgu9cE2mVY>u}nG8s^;tbva zXoF0el5@zug4aN9i8J(5KCjd>-9MfGr&6IBjlGFi`~Bjr&PsE5>MK8>l=7)lIyVb8 zYn?NI?8qreO|I4QpDse!mFQ*~dXM!?+MBpp47gL%S3J0sotvn>PuF46BKby9j$6r| zmG#06WE=>%A_ZCy_FQL^u`s{)k@Fd)#39JcTpbYpT5KE%xPw05Q%V`t2HDeuE*54p zn-L7#^*Z?%c>OM&eQ!QOwDnc66uIAf;UOg1l55;XR-@&_uKoZBhfB?iP-gRzbJ zHQA_8TR8^~K`|hMH}%f5?ly^Su&=u4#e%myAXF>L9b)TLKbfyu*5Ftg~ zf|WYRrlCsbLq^R`#oiKsNCLl}_|h2Tm_%aJ8I)YR>)<#R3$^ZCQXbvM z^oH-H)v0HEg)1bVn`I+Pl_qqqW98zqz#g=iHT3R=2Bue-=(5F$`f+=mt?RPX#>Z ze_X@wwn8WhG^FT53AQC!G;AtdgTgQ0uGG2^ThS*-UuTAaSBYO98)Cqs$%S% zDW&S?SSIXm(?+VVhdZeqNkrD?6$GnQP=cLh^zlMp!V5mJ<77IsG7q70uj1Ax9jt|I z0Le=<5;O-{Ih5qR{1_q_4x;=%zZU2U?8F0|ePj@v`1v z3`{MGdE~Nt(jhRFwpafnIg-Z)qBD!cxWIMtBnG>Avy+ZGB$o!1c0+aY1vEx2xXfe? zGa{M2`QFPjDv5vC*_cOJ)9s@p_o1#nwyv3z4Se`qf1iABZHOT@izOiz!?$gB9Vbb5e@u`EFm4mYH4ozO;MFlUNoGfh{blo95`NLW?X^^)X+-9Gf8O)^>grV1c zD*s}se(aEDyhJ^(BU)lkeI7wDm%i$(ur8WLsh3`eK~Z`>)B=b6hm)O((o4s^88& zWE4rrPUTA(8%XEK?D%RndazjjOUz^4X3w`BA7s9L5*hPb9bh)PPjZx=H+z5%=kO}6 z3V{s6!9~E)I3@zAeF6Rti&YxbU%7B_6j9z&Xf>V(N+339sy9vyr=E_UPp>SM-JA)b zf)ebO?pos<*H3&%OUfGtV$TXDnDB(iylZ^imAz@7qOd%sR(>ePvm_u|lat%}M)#GG z{t8ClpDd6(e(@{7az^G@45n-qsTHmg4MAbJEFO1$!prHiPWZ(0lzDQ<-Vw*V zw6}YxyDHE!5C2xmUk0=22-@&W^!kgg@vy%%ayQ-xUC$#Yda&@kd-*;X`( z_U`@o9rFT&3)z+QBYWw2wdB-K8F%42L05(<4NWHtQCrIlRG(Vn58PL~wY|I!k=JqE zOjD6e6#=Mca%4JY?%{0z_^6c{bl|a&=rw?4DF!%g(A#FK7N3YeTQK5?^h|FST5Xb; z%4cmaN6ErtqZ)GIX=d=$F@T#3U_mlhdVeR+cM7-BCuA{O#cvHF^S6Zy(M(*S> zanX8{To*g$+@m@CEvHt371j>Rnu)#Gv*`!?&K3GcDw}Ej=MVHy{!4YgGzs@!Yn2zq zy=Malv-M7MF#aAapbTd{?K3~W>W#w9e~hX;inr+N1qsOVwCY|$|mu+X3!UzeBbnW`bb|zz8JAQtbLA;vp(mWKi;>$i)weFz?~We zDVV+=3eB&xy6I~rvP;APB3f83iZQb>d~R)`*U3mH9hf3jJY>0^#jjt{AM>yTQ9SL< z4Owq~7dHKc+yrN%jDS|Zmfgz|POXQkem{u3OMZ2dwNp%MX@!e#5?qdk{b)!-$T_0` zR%lMmG1KRxd)8|UeKh~jj>^rEhm0^5BeSn*E85nyx~Zt?r!-e0ROa~Cu@Zr>vU%G1 z0hM}Hn{N3NlL+k+(`0^{9}OLDO~LGx2SvY0usn(a|IntSP9d^)=Da~y zb+A%3_~EOCmx$a3svFJ&i&u2;i7>~Ns)Z;W5=miQ z0|5vF0>(t9r)rU%_KKDl`FoYell8edVYC<=^5Y3_tJ#o{J?%Xd({>g9E&CA2a?;8^+p1WoMft*GQnF3JLcp#nVC{KMJcM0|;z9-I`@(vi*dh9cqFBOWGXaAh zOtAI$3thY|O);Tu7KGhzdf#K|@qzQc-dY2~dKO^z2fTeHr5`PujkpFih$_L9qFW&! zvcw#GwYsHqvEi4WHVP?+EmMH5=kqGj7?0i+LFEQ=?G?9$eeUy}+QfqcqY$)y@K#gW zd!@{yMHkNh)YFx@c9KA)N&-TIH6_7P8VY8wL}x`b5mdi|iD| zLk@}K#XzxbAMNl^2k6LokkG{FG!Z25=Ymr9ezdO6>&9t8ywf`Bx)XTYUH{j_u28`9P)4Q(ly9|n31r@{MZpml#HK!& z&f3-62f#oAyzQ2GmsG#lx+kxn^i&wH@M-h?RtSNkUgYCwM%B}wZkdzf(Z()-Fy}odoh*nr62JsgSaBsQwF1&VH+-5}l^H@Da z@uLF=U;j_DDjwtqh)!+ZeJ2%Bad{RFaDFJJ$RU_wgR38l6Ux&HtpTIzgpIBy6vbtE zVKv-F;`7^WeZy}E>5eVn2XRi!O4~4RCL7Y&2=zhM^NdjdZ^`%=-r}+5m%O{iq9^nQ zZUR)R-0f%fyjHZyTe+ULIOHb_Cj_r1s%-A}bQAZw-v?DbU8TN5ZL5upDDj4=N%*14 zD^-bl!;v_EU=YR)<{xgiDf`S=-FBjFnB)>&Vw4_1vNVQYY>hd&3C*|IKji*ML@+V7 zq9B=~UcVj`Km#XsBNJEWjhxd+uJmO15SJAsJrerb=rMy}%f~->MCI;>{XOnHB%kEk zMSmSULK%&c90~q6xfUJXwe{6=&I>mxC0fsXG zxS`CZtuwotkUOe(#P~OziUOJ#PHyni_tuN{W8mR$#FrW6bQCX*KG44jtT1!@BtWk` zs`NZhehxDp^#a{pXTn3qKY##N^dhN;)zBa=-MU5^7*ih*!v?$R`hm2XtB=52L zdxX22D~{r26u+UU6=}xIJR7~UiY6!$%ZNsl3Xue1k7GDw`SH)P+4CI!ytG*0cd$=} ztGK2#Ykdy7yU!&E>wIEzO$qpJDP{g!)Vzgp>xU>fw$$Fxo$Bvs$|on^I)Je~>OG!! z@R6Kj9C*(XZzAdrjQea6cHO4)X2bm>4TJoBTd_At z@#dxt7omLVHpT)I(#GLop>2{Yz)=VvO`qT`=08@Z($4`bKjI^5)ymErR$Mxd$O&-V z!c)vV;ysfZu%XmOawJGUI(_bQWUsW70ur;OnaNOEgY|2yl|S``WLBien)v$Qe=7Sk z(F?4C6Eh@_9VwEB2PMfI`kKKqm0fzz{~2%kujE#R99F$p`N;A#GmX|gW4>1~9-zml z@huyXzW#ujcw44rtu-#q;=^X<(GOdHe7FHCV`Fo3`uO`QaLLDAtPx}EV$`B#wZ!l$ z=Da1*DWS`+-Et@f3=MrAb6h+AqsEL)919AzD%bdC7{4D!d@5HL_Aw@lDn~_i)f37t z^#||d35w?QtS_0wI-^n>t_GOHD^2Fft^SvwT&?bIwLBG^sa_qmI}(yg;JJjW--?32 zMVo7!mYD(~BFLuky*$_tf*-AP!044RIT&+J#*Oxx%D?!OOv=``_m!W|#bh3FB~}%4 zoJe)fXKHT8k`PAT0DoT=vt>N)`Vm(m{6yxdH9u37I$b=`)+=Hjsn&nwpg6ri31|6= zH;uplJQvAzK{zm5nfG%wLq)K042poBC?eH@t!7AF zd$eYeSfMsmdlgMvjXi2p#GW-$RK=`5>ghvCD~;M!GpJUzwF$lU2o>CX?q6|V+`r(Q z&v|ps@0|1dYIYU?VYz2r%^zJa6}K>U_MqWgdrM6=*?e@P-PbOFR-gcQ72>NS-qf64 z(#HPAvBlFZVF(8fbp?kMX*Lxyj***540tAPDsO(5!49_1w&I%%sYlJy7bd;aGE z*ljFcQuN#57?_i}3~fT=iwYECH(kkgPVD7g?C%AC(*K;uX%%$OQIy7e(`);X#=jci z1Db`Sa|hAD9U`_{xnp!Oc^8p{j-Gj zzWA|ajC4d%{@&l9mv_PLPCx!p$ca^M!jH^A?#i$zFWYQgJ#)_{Mmw(Ui-3x8-Drq= zZ$%{Xj8sfAq?njs04oskM{JThT)1tq!%!{kBgB_&#NZ0t&Joj@8|S0_$1OfQm$(&; zjS#6i)AJ}9_efVyOyYQ-x>72UqpyTEPgL3I`B!@8-1jbUc#GFyR)&}^%3HCtus zm%>qUJWOzQB;>2Yy*OEPW*As^6wWT5qP#^|bg8;lV(}XO zO#9-X`MOpQSa)@qvyn@6iA^E$rj@~6m_q36j)Mo~s`D8gj)(Kq(cj3VH41F!9pN3zR2m zktl~)NU926=|q*maoCc_WKRh?77eor!gE$9ZJ=TJ8pB#KLkdNpU1PxtwGQ zak9N)r@v&r;gk{~KH67A6H(L4>nJRIottpJ{?9Q0EoSJG#%m3~>hrv4&G<7`6v9!q z|87HBrmGcTSl!sRW4#53d^f8!iU7y+y$7nOK>Hbw9tYR z{aIKTK2Hy@+Sm>>$9lvH7~SC}g!TMf zdl%B@*QO-?#j1&0!yL-UM36uKE#Nl1Kld&?#xCsF?J>$^+BBTgXxGiH|IF{lP1vaN zcXr_k(>;Ba`r*93e$Ju*@mZv18d!#8@D~6qsh1OQwf88%V{Dg)YD>_g+U^5FVjrut zSIZ+PTHb9^6REFFc4SVvK6E8)Pf1DaCX{a0b$mWFhT17NL!_ltZAo+EJU{e_#4qm0 zo^iC019GS;2Ft#Oz(M59gl=*BIi5<{pMFGLuB&SlF7WXvm47B@EE^O)0{(Gp%6BhB zvwwB=P3pfZBQiwdM00Olv$}>5r)lN~!MKHmuUt)ok?G^mRzdwNNT_Fr0eCXe6Jzgc zKA4rYzVrtL(NC^n1o%@%r|iv+!@248waxU2ZbJ27%i*&}Kl63E>OLOUtdiNW zZTV^Uq4rRr^t#5t>X${s2}*ev1)cG4IA!C{-^QKY=ubrC9a<9 zQKD!8(`r5#=7!gm(!F@^tzeoX^DjaXN@0jE8}s``4;tM=Mws<|k?c7x7$aK72;}9B5z&l0XQ=A{uV5l5WQ32bCP%$cw7ydsZ3KOJ`A9x}YutqJhM)jmE9Om<$At zE1BMCuNUtf^qD)hzfWo0WS3Pl=JWdB_DZMemY%UR!zYOumH`&~%?AUP4 zqoNEbs>1xAf|8enGyahIov2-FHtJUN`DpWgpORCQZUv))O&(vTfzVWrqToE@Q;xpK zrI8AYp60?LN-No#PB*AZxEof-_#x(|V~RBTq&A)$&-!I~02l&M{eqr2Io+G%jhYv$ zJ@B$?hCWOmm$Wq<=J<8ucRHUZn?H*CY=5~nG^lxoyxsz729y!#Qb+nQJS@WwieUR6 zLZdZIv10UYVwBm5*;uXQz?6mYm{SIcGZ#9_uv!Rse)ptD?FCu%_jdTv!^8SlP6x_Q zTsk&$( z)qI5pF^kd>BGqDb{PxasCvNm=ZB4%ANO|v__7~O;o!51`N9Sk8#hPzjz`vS@)btg$ zjrlCf5)MqM7h)@!j{M$ecf(BqoLaht%+nOxw4FKL-rQfHa*~HYB0P*S5)#-5!8i1h z#Sgt5t2?%n*Bq+i;#x15sK)rO2VL-#=jUp6}?Cwi3t~pQ#ABZ5zyzMo5r)i3F#MMY!g2|T7 zB$qJlazIL5!BTNry&2x`t5R z|F`X<{-n+Pqd(Ly7)h|{{Ly3eCNC*G`NK};Nb^c46|0jIR|NJQo6AJ*K)KQU_ z(euka&T)MA{O5fyYV@USKUblZ5oIMyMp9b4<>=vJ~K|Ibqn|IfhNxD zy>%_dEnIP7_%ycK^9?xU+S)$Kn5-Djl55ivYA>G(Gi&e{`rZW=u=i+!FY|pT?>c>e8Zxs>QA$qR zQ{S}}RzAkhrPSZ#AA55>#re(3(|djyUk@L3HhC#@l1)SNOsS{vO+^DJw3Nx9?brSTrr?PO29Hl$f$QzXwbVq)Z$Cge9HcGRNUv2L_x6hf!AaPcj@H)W+!2eK z+{nT!Dsjk%sZZ3BI=XaC%tt&+79-4A-EeAps-Fd5@3455FOgZP^Dp?ztJWG2_HF#G+<=+rX72hG*Y_D{dcso8D}nJn)H*$qZm<_z@=Lim8PJ=u>u1wvX;fp?SL$ozQ)~8}lk(6$<;jDCwpqxQd#Sfu z<)Krevw&Eudd7RfzPLT`85Zpez^4uCn`^qQIc_q$2=0ZfHsq_Q8EFq3W-bcY8+8PE zP(q*ct%87+RrI@>8DZbcJfN~de}BG2Y~6wKrbTyY`;-?~%VE&>4_iY~W~*fsReEg4 zEdq7o0^ncX%9wChyPfXZ^^lp6&GXH*Nkl&23&yrY<-_$!H?rnA-m9>6&M;?ysf8UF z2t7J)CFnEj!!*^4tl!}2QQ^A$=%@KoC|_=Z)4ya0aq|@~#hI$49a2sn*;DMETGTY% z2nmF4wUW-nzFno-PMf_W7h~p!p?{!6346LMZ*~i_BKJduEccNzA%H>|AsCc_83YL9 znxUA<(Cg!G%lK|ntPbW53V%?g7*nRqo13|cTchDE_)70PaJCZsEb*5(p)a5ra0{61 zO+@f^VNyg_4N|-?#--A+bR7bAEr!v7eF7ixvR-oQY_Rf+^Kj4aXDg`(>dU}o%+&Lj z9frVauG2nJ0;bA!$lETp6yMwKHQ4(7P7^3@P9kDTM$b;!Wx0sYzd~Wf*3yVYeY;12 zQ&%$~rXV~WM+>Kx(KV;^(ae&t-Ab$aIY)RQjtH5#UC@oT9GYH|nFXi264%XM#=FDA z20_NXfJi1xCJ60mExNJn(!4j}T;rBd5$Tk*BfTrhZE0(#Qt_P~1mYkp6EIKqt1Q3F zS?c;Y5ZqQTJB%(Gp@kn!)-QB_rdHuLoWfE?#^@b1W4qtoT>qRF7f0^CN8Jo7*b~Jpyw2Uug{4jTO8h^t3*qRliBml>>{&tCsIDKx+ewY z*seYZTtvJ>J33%Pn8M;={AT*o3)j=*-^VAuA1{OPOk!wzuwFpk0Fj8>C-066ME;|~k4Lmf##%y#LLvy8e6H7xn(+YKu~@K|AtCxKllsXgoX zR^5u-ni-_w*Hvhhi3P+#`1bz&-!jATZnY&~T`Yz>ekXPExd9?3ZC^UuzORN-zX-!H zMiVM=-gbD2+qKz#4uAXx4PmhBuQn#?p$<59ICDz#4!i+gA;>i9OY(|mtPdE?(O2Q6 z2j&q*Z?i27_1k4XWPuabHts?}g@pJN7IuAuWUd2?kmA%LQ_6>(@RN)2<3w-~ zow8yWbV;{0(1N77ln3567Ot*Nl^c4_vTm$yXY#{|&xMz9nQQZA#aZ~1^Ic0PTZqQn ze({&V3JI$V2*0^Gd**g&51awwmUiZIVHWO%|^P^#`c11_4Ho1j;2{({e-mA4qH_~izd{IU6+OZlag(iqYI5M7m%*YV5f=M%A?TRn#c`j_jsCbZzR2) zdx$@FG|l#JkV=ziC8m5{@49hO%j_KI%ZsfHx54Cys2r%dSA%!mLw70Z+^}{qzL2NB zn7s0xMtnr1uW~BDb4&N$1@fu!U;ixJGwfsd+~l*IbVmcWo3w+Bayz z965(z^P&h829nTfrlS_KR_b(X77lySGg@TRxa4>-{0t|MsSi=RS{SSlCLIq|4=s*q z$$@%QyBp0!1U*x}l8YCTv6=Td{IN}md!sS$g7fk;>Rim97SZC{a%qC*my&K-5*eRc zm`m8$+&gIrI`hgS-+2XFVdQc`ms$QhsCe9 z2NnT-6Q1=y=Z7TDj5K4k%~&H(&W%Q?bR zG1rMi5WnArDXfB~{#wS;3#0;dn8KOO0v$koSHjKc~Jrb5VpKoJ}OX0&=p zTX1`ZxCahl(qo%IFzSJStoIxA%krcDIrT=EI@i}@gnkTlcEYDg3*d_Q-RIjyDLPK2 z-MFn^*E})J7hh3Rj)Gaf^r+ot9$JN>HJI3iMos14o)5L+kukapS?6ulgUa^BRjD!Gc)$mQqi=eq zl*~*9ri28J4yl8eBtzvM`V;iW`MlB?Re2$S*F0FABy_MLkyX!jvP(D*Knx#t-DbHA z=p|ecGtVZKZ_AfFX?_k~O22izLv{=jFnyGX3$|tcY%w#~bE9f2oI}LzUWQUp6MDt9 z0L`dz=A3g5_7se^kaw`FD`{6YEb~f5tRz5XmZ7Wu7bW=v7T{dU$7Yi!{kFQvmK>p2 zkro*}P>ZvaCurGV)c8fi$q@mn(FIq8YK{>rUE!5(D1mtE>rltIA_e0TE#g=6ZI?<= zGG8l^5d71;sC0(+FGR?={`=DCtgvL6VQdT80*JkFf}OXeYz7GdqW$@h0fni4N$I5k z8>sEeO5smzk@l$y+Nt1%5Dy z<@oTINOLh4`H{g2WmAD&dPjT_OefamS2ZeCr&u%1b(4`V0veZfT$2A5TB^IGyw~t* z#K1h!Ti?5k-xm4HaPjvtF_0ET34`y#l>&$DFInf`$A6nqJga4oVicktkUDXXH}jIO zGB`?rvYUt%KKj;PFDxH-%t(+EGvS2Bnj6`OM)v*Ao5c4NvVU6qTO_sRJ99~xHVL!1 zmeA=-P;lGR&}cyv4KxA0rs&r^SX>9q zsyQtm4;0TG{1Yyu@P?IlWQo4fzD1`h;Ji3ipP;+v4xM)q*YiAc&BsOq3+_pkv5wXQ zX^S3q4HG$qmtxA}^3hFF*!DCn(i@Y+0$9Qf3Qd{3fga-058Fv-mcJ2|8BQ%ae}B81 z1ujgMXBD)Nt45D%4zZ$C%m0-2XToIZJ@EofLaWrE+w-3|wQx(_n6dzF{q2X|{N{4> zZ`r-Ly-KzW`R@ExW;0mFVHld$*3Q<}59rn6B$M9OH}#3HH8>YtPm+-VRv$Iq1#pT- z7BSfDi7h{u(6T+vaQAc-%{laKDa!K}f0A_oSrCHb`pkw1y$G75sm!&UyaUsY9dXwH zUkP_ycgEYA%GRx7b!v5-0<5%31mg-o87j7wYCO-a%QGd?^ws|aUu&(=uRDu9n91~3 z872Qd$@`lL^4+$nthN7n`}oe`icv?*TKCr*NmM6+0KneD{O(s~9U;P!|AO-eF|A3+ zc1Mmm$`4eqgI5Ruy;x&VKEbg0Ky2Dl|L>hLzU}7xn_ryFdK2vu!zN%;cABF<%`zVf z%`@}QV7K&Vv9IaWvv||sK$jwSf{crKOc14lb^Afg^p0Jbpt5+zmkX1j&~Cqd$*+xX z13IORJ}js*%i)$Z#$PWJiSLtq1xkpUf27yF_vJ~C^8>B~7fUg5(0;KHwVWAKIHe+L zLe`Jj1sBQI0J&bi?7J^NE3!cS%>(yg!vLf~xH+T>3@7}Mw&)zAd;(l#F2%v-uUkwe z($h=f0e&L!Rad&;F1?x=-In&7Rt;xG4R-On0EfZD-N%mEY95Un$|-`Q@;bZed^$_w zuzj;YwjZYaZZ3vCwcI9HE@7s+^Y?yjbZOOM5R)XAX94aG;Ull5IIvR*l%ZiS z$USe?|IHc@a=o|0l>tiAqk~Vmzw-Zv#IJr#HGS)F{5AZkyiwdQAHl{`kXhgZ(J%UK zJ!xL0&D!E(HZI4Ji2)6pCWzAOZyn@+c-#88Cdh%2imCh_FiP%yE?r=G{2rd^FI@5E z>E-om^$2>Tz$;|dsafREMVm()#*sFtn68yO89Ct&+b=j~R9?N0GYxU1o5vi*X62QB z8NakcpUF5kKReB>R+93RF7WA}P%l;33qVi*&0vTUvBXuo~|{Qy#x&qM@8t zG_TSqNqYe$Dzvoe3Rt@R(!k6|siF?^ z9pH>KjDdcG5nEV(DzA&r`pB^0v^2~5O*bt^`a^6JB@;4pf zhyHx1BzvmEPes~fbBPHhqkHF8spJT1pGU-*tJzsIe zyk_Vnjkod`^Vm=jhC;8-ZzRciLae1&49Owon6t*IxCW+m`fI=AML9}OK9`vDtbZJ9 zGzs$K*eqzc-`Qdxh-ZtGef5!Z(CK=+(G#ZlniZgp$qJGtQd1#2ScLbuSpOTSNiEZU zV_x%~J^k8j2!RDzPJ=Z`cOW2FOAeJAXjgdB|ks>nKo8miq22aJT zBZzn}Ywj-e?~To06?EFa-kYh|{{#H?|Dhc^l>6CVEaruamH!|kKt(}AzFyWM;(q|` CR|Gx) literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_streamlines_05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_streamlines_05.png new file mode 100644 index 0000000000000000000000000000000000000000..b4066af951ef341d6bff91d54098adeb25ba25fe GIT binary patch literal 20964 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≪!h(|F1bf2uELHVCL^ORLeM2EX`e^27 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 HX&U-JZ?v)P literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_streamlines_08.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ic_streamlines_08.png new file mode 100644 index 0000000000000000000000000000000000000000..99516329dd36c566f2c79a9f880d46909773ff42 GIT binary patch literal 19583 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 A&Hw-a literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_amr-quad_boundary_topo.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_amr-quad_boundary_topo.png new file mode 100644 index 0000000000000000000000000000000000000000..e2bd2686b0495039fa6bc957debefa91fbe5a667 GIT binary patch literal 956 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tJ4PZ!6KiaBrZ268n!2(TXX z`S34%o{XY~)8vTKrsqz(|5@(-&1Chyios?shoYKON2frNQp*gAnKuIYcO<2~;;c_C zmwma{@9>dG~9YdrQ9%`4ye!RoUmm!Y7OPm6%C;t>~)QRZkkP&W~5Tr5{`@yr$B q2Xc8%9cSNNlYVgV&Ojx$H_ZEew literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_amr-quad_boundary_topo_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_amr-quad_boundary_topo_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..c5caf5745912cd2fde0960230e8ff476651d2305 GIT binary patch literal 464 zcmeAS@N?(olHy`uVBq!ia0vp^DIme*cxLF{jO|pINi`a=eY6<)=dF3-#K|KeByf~>es%f4QI|Xr&|gq^+@l1_INw{ z5APmU32pe(C%g zfkP&~`Tbk6`u{&T#w=%uu<95Sn%x5=@N#2P573Lp0>fUsJlplfJ9e{<_5AbGPd|M- zF>F=tZJpC{;ZC2LmdK II;Vst0PH8Z`Tzg` literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_amr-quad_mres_0000.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_amr-quad_mres_0000.png new file mode 100644 index 0000000000000000000000000000000000000000..0e6b8226a71b7b092307695fbfb06202373fae56 GIT binary patch literal 1105 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_l-hPZ!6KiaBrZI(8j45MXf3 zJo!If=EA>(PVsIxzpIurIv3{7Hz{6g+HlU_mZ8R4(8;GoKv?mJ3x^@a%#Go;2kOs6 z`hQsY(<<@#)#^S&KZ!4MephDRoM}!S8z^@pstGykw!V_on_YZO`9Qp0>epN5$L-cT z&y#*{nK!?r&(JL9>$m8tbM^Nh-ts>5T!T7cq}+ed{=~eclHcRM?oABfcD7SFbobm1 z>B4h!_@5MuBq_Db;80X^>gW_8pLrwZ^|#OGx6l5(@cF{eBGWfnm53kJwtZvTruOI@Cy6F9zGCCMLNwpXzF-(TjR zRI p=Miv9d$77vn2Pz06gO^+-yQBAsB`Vp3Sd#e;OXk;vd$@?2>_a0Xt@9Y literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_amr-quad_mres_0000_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_amr-quad_mres_0000_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..444b1d43343d2c22a418a768f5e10103504685d6 GIT binary patch literal 1436 zcmaKsdpOez7=VAK6>`aKr`!r7OrwrRa?h;Htr=}Dkr<9V=wM;F%xwyDsjO&e6Gtw& zhLp&qC?Q&itc4M|49jJ8<~V;iPtSRtbN=|g@BROKpZ6Nt@w9}Pf*1e*5-1yM%=X3q zJtCm(y+r~E0|3|;Wqr~minc&&4IMir*VP(npfv)(Y+V)v`fpVc>4v`2s&2-6wAim6 zb{$fA`WP{$;TuVq#R@4W$${~7Qh++r<^GoCjbg2dw(7tfv7mAvd#_YrS!&#qpJ{ci za7ozFxOsBcm$kgHfoI$Vt@dXVq}Z*ydeolRid5@@bkl(y+}oF9tLorH<=Nz^zd7_J zAur36o~pe|J7&d_6Mlfm$es}<+{%T1xts&#br1EmvouGi9{U721h3D|*fq!DDh77D z0|R;wPY znD%&qui0m(!?6rSO+D@|SBMZ5N%E8ScKc6Eu+>(Ob98#G2cb|J<|z^1-@)4>Z5Q4^ zajcaQzCqFKU7KzBk#7?yd6&~cpPXFf555%ZlX&6ICTPv3kW!R${ zJ?%~UQ?4%#7A+}JON#8hgsjJ+@ZCCDBsgDm=uyqYqzP-?B9E^WQdpdBOH!ORKVse1 zpB2BQpT>&YMCHQl==CBr%p_j6N|;gkN*J0?`mE#XeyqM*(>Ns7oqOkbF|0Hb++t8k zc#-ZeOGU9imQc!_Vva+1K4589YyVV2s#*ed`;!25<=!e|RFWkM?j-ldgKqBc;ITG& zOeQAtcl?*|2#(->XEoJfW&A3nJ&&!7ECEX&k>;w!j>V3$VaiPF~u&Y-B)ay1}BstFFH+ zCH3J~JX#NWDrJOem}3U66P?OzO%mJMMIkpAjf4^tw9yq+LHCo}Ujv89)w14x0K@F= z=033=sicj-m}MBwwJtgO*oWoto&sjDf=k<9;cOpd}QqwWuy0A*+Enfz+AK zc~^E43#)r?{BdqQbC_5cdZ3Rq7Reny%r|cw80}OMe=jNHDT-LjwNl1GD(WStYm><} zOd$u6+vUogG)*6~z0D8dZ8gl#^3VFfEs8QbcGDqlgV7}KJtd-;+0gC*pZ!LyQV{aw8 zfhpIZay|c^M7@LaRSW4ky`Bo)#c?F7Sn^k~0#m`a5N7o15B2p&wP`pP8;4=IR#cK< z2Fm;E@+=wsR%I~kr7Yd-l94BqxWDU+UK}UQB&uYh_Crq#Lp=*2)kaIV@B<+zaoJ3PZKIQ^a~y<}M~J3sure^HDInT0&R lSSv{7g3kPZDYjF>4#iN480{s7DcjWrP)JAXN-OWgzW{cKp$h;2 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_amr-quad_mres_0005.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_amr-quad_mres_0005.png new file mode 100644 index 0000000000000000000000000000000000000000..0e6b8226a71b7b092307695fbfb06202373fae56 GIT binary patch literal 1105 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_l-hPZ!6KiaBrZI(8j45MXf3 zJo!If=EA>(PVsIxzpIurIv3{7Hz{6g+HlU_mZ8R4(8;GoKv?mJ3x^@a%#Go;2kOs6 z`hQsY(<<@#)#^S&KZ!4MephDRoM}!S8z^@pstGykw!V_on_YZO`9Qp0>epN5$L-cT z&y#*{nK!?r&(JL9>$m8tbM^Nh-ts>5T!T7cq}+ed{=~eclHcRM?oABfcD7SFbobm1 z>B4h!_@5MuBq_Db;80X^>gW_8pLrwZ^|#OGx6l5(@cF{eBGWfnm53kJwtZvTruOI@Cy6F9zGCCMLNwpXzF-(TjR zRI p=Miv9d$77vn2Pz06gO^+-yQBAsB`Vp3Sd#e;OXk;vd$@?2>_a0Xt@9Y literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_amr-quad_mres_0005_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_amr-quad_mres_0005_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..444b1d43343d2c22a418a768f5e10103504685d6 GIT binary patch literal 1436 zcmaKsdpOez7=VAK6>`aKr`!r7OrwrRa?h;Htr=}Dkr<9V=wM;F%xwyDsjO&e6Gtw& zhLp&qC?Q&itc4M|49jJ8<~V;iPtSRtbN=|g@BROKpZ6Nt@w9}Pf*1e*5-1yM%=X3q zJtCm(y+r~E0|3|;Wqr~minc&&4IMir*VP(npfv)(Y+V)v`fpVc>4v`2s&2-6wAim6 zb{$fA`WP{$;TuVq#R@4W$${~7Qh++r<^GoCjbg2dw(7tfv7mAvd#_YrS!&#qpJ{ci za7ozFxOsBcm$kgHfoI$Vt@dXVq}Z*ydeolRid5@@bkl(y+}oF9tLorH<=Nz^zd7_J zAur36o~pe|J7&d_6Mlfm$es}<+{%T1xts&#br1EmvouGi9{U721h3D|*fq!DDh77D z0|R;wPY znD%&qui0m(!?6rSO+D@|SBMZ5N%E8ScKc6Eu+>(Ob98#G2cb|J<|z^1-@)4>Z5Q4^ zajcaQzCqFKU7KzBk#7?yd6&~cpPXFf555%ZlX&6ICTPv3kW!R${ zJ?%~UQ?4%#7A+}JON#8hgsjJ+@ZCCDBsgDm=uyqYqzP-?B9E^WQdpdBOH!ORKVse1 zpB2BQpT>&YMCHQl==CBr%p_j6N|;gkN*J0?`mE#XeyqM*(>Ns7oqOkbF|0Hb++t8k zc#-ZeOGU9imQc!_Vva+1K4589YyVV2s#*ed`;!25<=!e|RFWkM?j-ldgKqBc;ITG& zOeQAtcl?*|2#(->XEoJfW&A3nJ&&!7ECEX&k>;w!j>V3$VaiPF~u&Y-B)ay1}BstFFH+ zCH3J~JX#NWDrJOem}3U66P?OzO%mJMMIkpAjf4^tw9yq+LHCo}Ujv89)w14x0K@F= z=033=sicj-m}MBwwJtgO*oWoto&sjDf=k<9;cOpd}QqwWuy0A*+Enfz+AK zc~^E43#)r?{BdqQbC_5cdZ3Rq7Reny%r|cw80}OMe=jNHDT-LjwNl1GD(WStYm><} zOd$u6+vUogG)*6~z0D8dZ8gl#^3VFfEs8QbcGDqlgV7}KJtd-;+0gC*pZ!LyQV{aw8 zfhpIZay|c^M7@LaRSW4ky`Bo)#c?F7Sn^k~0#m`a5N7o15B2p&wP`pP8;4=IR#cK< z2Fm;E@+=wsR%I~kr7Yd-l94BqxWDU+UK}UQB&uYh_Crq#Lp=*2)kaIV@B<+zaoJ3PZKIQ^a~y<}M~J3sure^HDInT0&R lSSv{7g3kPZDYjF>4#iN480{s7DcjWrP)JAXN-OWgzW{cKp$h;2 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad-nurbs_boundary_topo.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad-nurbs_boundary_topo.png new file mode 100644 index 0000000000000000000000000000000000000000..3f845610eac2c6e50483ddd8faff42a23b5dd50e GIT binary patch literal 963 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tIXPZ!6KiaBrZIPx_ah&VWA z@A*IVbrZLObP0l+XkKcKrkf literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad-nurbs_boundary_topo_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad-nurbs_boundary_topo_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..dbb82523d0b64a9f4819e6fc35a077cb15b483c1 GIT binary patch literal 495 zcmeAS@N?(olHy`uVBq!ia0vp^DImf44+L+zopr0CH9%F#rGn literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad-nurbs_mres_0000_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad-nurbs_mres_0000_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..a0e117a4debf1cf6448ca09e2c61da766d629399 GIT binary patch literal 630 zcmeAS@N?(olHy`uVBq!ia0vp^DIm?j-7h08@9Su{$lT+>I&fmtM<%U zE%P=1ePjEldc;WJw1W=wMxH^;u+iPO>Ak)F^mXs!C$FxK<=>?`J+CWVcIk{cRTom% z+f_ac{XLuSU!wWb>gANU3FlTV zHQRh+Ug&c@o0n5|$F40dTNLtoPs05C(!ck%_2*aqJZ{hu5PI`;@-KP!NnW8rCwz57 zb!SAbJmWV-Ybtk|Sg7cs?JH~2B|B0TrZq;eB}x9%xMq+d|I#4qjIOU#TH3ia=g!EO zd@tynd39$k-~RV0KNp&`ByI0bedb=dcI%f(F;SVnC)r!A*%JJ0dfnR6szqC_YNh0f zFPR&*bMxUdc8|-VYwWFBj`IJRvFu}={IQRgwd$q5&lK*hezE1G%+_UY-)H>HF7Mhq z>q*eUy2X07fxA{q8b4n-v$jsub>~f+Z&7lu?T?7>0lN(DL=?tD@eihtYuPmx=K|9c NgQu&X%Q~loCIGKv5<~z1 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad-nurbs_mres_0020.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad-nurbs_mres_0020.png new file mode 100644 index 0000000000000000000000000000000000000000..b642ceab0e5414b8b3447aed5b43f74e782e5e4d GIT binary patch literal 944 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tJGPZ!6KiaBrZ9OQI1zopr0CH9%F#rGn literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad-nurbs_mres_0020_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad-nurbs_mres_0020_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..a0e117a4debf1cf6448ca09e2c61da766d629399 GIT binary patch literal 630 zcmeAS@N?(olHy`uVBq!ia0vp^DIm?j-7h08@9Su{$lT+>I&fmtM<%U zE%P=1ePjEldc;WJw1W=wMxH^;u+iPO>Ak)F^mXs!C$FxK<=>?`J+CWVcIk{cRTom% z+f_ac{XLuSU!wWb>gANU3FlTV zHQRh+Ug&c@o0n5|$F40dTNLtoPs05C(!ck%_2*aqJZ{hu5PI`;@-KP!NnW8rCwz57 zb!SAbJmWV-Ybtk|Sg7cs?JH~2B|B0TrZq;eB}x9%xMq+d|I#4qjIOU#TH3ia=g!EO zd@tynd39$k-~RV0KNp&`ByI0bedb=dcI%f(F;SVnC)r!A*%JJ0dfnR6szqC_YNh0f zFPR&*bMxUdc8|-VYwWFBj`IJRvFu}={IQRgwd$q5&lK*hezE1G%+_UY-)H>HF7Mhq z>q*eUy2X07fxA{q8b4n-v$jsub>~f+Z&7lu?T?7>0lN(DL=?tD@eihtYuPmx=K|9c NgQu&X%Q~loCIGKv5<~z1 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad_boundary_topo.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad_boundary_topo.png new file mode 100644 index 0000000000000000000000000000000000000000..3f845610eac2c6e50483ddd8faff42a23b5dd50e GIT binary patch literal 963 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tIXPZ!6KiaBrZIPx_ah&VWA z@A*IVbrZLObP0l+XkKcKrkf literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad_boundary_topo_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad_boundary_topo_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..dbb82523d0b64a9f4819e6fc35a077cb15b483c1 GIT binary patch literal 495 zcmeAS@N?(olHy`uVBq!ia0vp^DImf44+L+zopr0CH9%F#rGn literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad_mres_0000_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad_mres_0000_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..a0e117a4debf1cf6448ca09e2c61da766d629399 GIT binary patch literal 630 zcmeAS@N?(olHy`uVBq!ia0vp^DIm?j-7h08@9Su{$lT+>I&fmtM<%U zE%P=1ePjEldc;WJw1W=wMxH^;u+iPO>Ak)F^mXs!C$FxK<=>?`J+CWVcIk{cRTom% z+f_ac{XLuSU!wWb>gANU3FlTV zHQRh+Ug&c@o0n5|$F40dTNLtoPs05C(!ck%_2*aqJZ{hu5PI`;@-KP!NnW8rCwz57 zb!SAbJmWV-Ybtk|Sg7cs?JH~2B|B0TrZq;eB}x9%xMq+d|I#4qjIOU#TH3ia=g!EO zd@tynd39$k-~RV0KNp&`ByI0bedb=dcI%f(F;SVnC)r!A*%JJ0dfnR6szqC_YNh0f zFPR&*bMxUdc8|-VYwWFBj`IJRvFu}={IQRgwd$q5&lK*hezE1G%+_UY-)H>HF7Mhq z>q*eUy2X07fxA{q8b4n-v$jsub>~f+Z&7lu?T?7>0lN(DL=?tD@eihtYuPmx=K|9c NgQu&X%Q~loCIGKv5<~z1 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad_mres_0020.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad_mres_0020.png new file mode 100644 index 0000000000000000000000000000000000000000..b642ceab0e5414b8b3447aed5b43f74e782e5e4d GIT binary patch literal 944 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tJGPZ!6KiaBrZ9OQI1zopr0CH9%F#rGn literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad_mres_0020_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-quad_mres_0020_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..a0e117a4debf1cf6448ca09e2c61da766d629399 GIT binary patch literal 630 zcmeAS@N?(olHy`uVBq!ia0vp^DIm?j-7h08@9Su{$lT+>I&fmtM<%U zE%P=1ePjEldc;WJw1W=wMxH^;u+iPO>Ak)F^mXs!C$FxK<=>?`J+CWVcIk{cRTom% z+f_ac{XLuSU!wWb>gANU3FlTV zHQRh+Ug&c@o0n5|$F40dTNLtoPs05C(!ck%_2*aqJZ{hu5PI`;@-KP!NnW8rCwz57 zb!SAbJmWV-Ybtk|Sg7cs?JH~2B|B0TrZq;eB}x9%xMq+d|I#4qjIOU#TH3ia=g!EO zd@tynd39$k-~RV0KNp&`ByI0bedb=dcI%f(F;SVnC)r!A*%JJ0dfnR6szqC_YNh0f zFPR&*bMxUdc8|-VYwWFBj`IJRvFu}={IQRgwd$q5&lK*hezE1G%+_UY-)H>HF7Mhq z>q*eUy2X07fxA{q8b4n-v$jsub>~f+Z&7lu?T?7>0lN(DL=?tD@eihtYuPmx=K|9c NgQu&X%Q~loCIGKv5<~z1 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-tri_boundary_topo.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-tri_boundary_topo.png new file mode 100644 index 0000000000000000000000000000000000000000..3f845610eac2c6e50483ddd8faff42a23b5dd50e GIT binary patch literal 963 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tIXPZ!6KiaBrZIPx_ah&VWA z@A*IVbrZLObP0l+XkKcKrkf literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-tri_boundary_topo_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-tri_boundary_topo_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..dbb82523d0b64a9f4819e6fc35a077cb15b483c1 GIT binary patch literal 495 zcmeAS@N?(olHy`uVBq!ia0vp^DImf44+L+$C!4#w{&?Yi zLuR+7`l03VAR`n7^9n!`>MlEutLFIKwXr`GtCv{(>{--u_Z_EIbI#rQ^X>sh`OcQJ zGiTe+k$R{Hw5Ry9y1N@x@@l2vyCTln#^&|~5iPrct~ztJf365r+4jE9g6ZBj=Is2b zp6&wGaD)-2VS6=H!~RXBFxJ+5C`!#Pu;@@+3UA&V;8;7ErQ%9#j hl2XeIIx_Dw2r$3)PBQ$m2UvVCc)I$ztaD0e0sxwOc8LH0 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-tri_mres_0000_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-tri_mres_0000_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..b290ac854ef5ec3314af168b4f039fed74e6ce8f GIT binary patch literal 792 zcmeAS@N?(olHy`uVBq!ia0vp^DIm1W=_wGySwaov6jtLn}o3OE^M>R!9 zF_}}+`$UA(;1xQx?eFxfuht(u`u^&xr$2&v_vYQZzC$wpR(oF9Yo3EUr!8e$5^;V) zra{3o*$-w}yB1X;X4T5ANZI;^1#q=Wvslr=K7=z3dfZ5H{ikg!iU zZQbNpJ}&9RilT_CLQAz=41{)fDm~@e$?=Rc%52)=pk)${Gd65Ap1o6qMK|Jj#ew(J zCFUooP2UohlGgZ9>G#K_GTFg*v^QRRXl%K!{4n3GtDK&NJ`u88R!^SH)K`(VxAoS; z&-ZI&=diY)um5c7&tP9vV_^|IYrOzdoWow>v}5PjEKaC>skKMyapE67r5&gL);-f& z^4PmL#%puTv#J`+7QM9N67O4P=5wum-?nna-TNDE+_^b(kEzwiTvh)=|Gx^a>)BM@ zJpZHmUsc=LF*Qfr{wRM`^D#0wc)aG)@~6S`ey-bIUXc1UEB^jN?YGIMi!}C1U-Gc~ z`s#}D5~1@)qyne0r3j@t&AK&zU-+C)Xa1I01#2t`UU@kD*70BbpT#rrCZ%7zp00i_>zopr0Q{|9TL1t6 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-tri_mres_0020.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-tri_mres_0020.png new file mode 100644 index 0000000000000000000000000000000000000000..c205d3bf82662992575affea03e949766eb1ff6b GIT binary patch literal 1125 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_l-#PZ!6KiaBrZ1g^T`AmVzl z%i_Q0ae2on%g;}nHh0zTYYcpf(|!LH-Tl6|;oS6Jj0skPPChLH!iq;+I1ERbqv1fq zMDQm2FT?*wyVh-e_uX&Z)|^{4*Pqqy-|*6V$F*Jes##{6#VZ|J9&_l~jk6C0?Oq6( z9nbUY`w%&OgJoH9PD}spma`jY8!Oj5QqAeRD$C!4#w{&?Yi zLuR+7`l03VAR`n7^9n!`>MlEutLFIKwXr`GtCv{(>{--u_Z_EIbI#rQ^X>sh`OcQJ zGiTe+k$R{Hw5Ry9y1N@x@@l2vyCTln#^&|~5iPrct~ztJf365r+4jE9g6ZBj=Is2b zp6&wGaD)-2VS6=H!~RXBFxJ+5C`!#Pu;@@+3UA&V;8;7ErQ%9#j hl2XeIIx_Dw2r$3)PBQ$m2UvVCc)I$ztaD0e0sxwOc8LH0 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-tri_mres_0020_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_beam-tri_mres_0020_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..b290ac854ef5ec3314af168b4f039fed74e6ce8f GIT binary patch literal 792 zcmeAS@N?(olHy`uVBq!ia0vp^DIm1W=_wGySwaov6jtLn}o3OE^M>R!9 zF_}}+`$UA(;1xQx?eFxfuht(u`u^&xr$2&v_vYQZzC$wpR(oF9Yo3EUr!8e$5^;V) zra{3o*$-w}yB1X;X4T5ANZI;^1#q=Wvslr=K7=z3dfZ5H{ikg!iU zZQbNpJ}&9RilT_CLQAz=41{)fDm~@e$?=Rc%52)=pk)${Gd65Ap1o6qMK|Jj#ew(J zCFUooP2UohlGgZ9>G#K_GTFg*v^QRRXl%K!{4n3GtDK&NJ`u88R!^SH)K`(VxAoS; z&-ZI&=diY)um5c7&tP9vV_^|IYrOzdoWow>v}5PjEKaC>skKMyapE67r5&gL);-f& z^4PmL#%puTv#J`+7QM9N67O4P=5wum-?nna-TNDE+_^b(kEzwiTvh)=|Gx^a>)BM@ zJpZHmUsc=LF*Qfr{wRM`^D#0wc)aG)@~6S`ey-bIUXc1UEB^jN?YGIMi!}C1U-Gc~ z`s#}D5~1@)qyne0r3j@t&AK&zU-+C)Xa1I01#2t`UU@kD*70BbpT#rrCZ%7zp00i_>zopr0Q{|9TL1t6 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_disc-nurbs_boundary_topo.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_disc-nurbs_boundary_topo.png new file mode 100644 index 0000000000000000000000000000000000000000..7a9e712fcd4ff7efbcc441ddc22e535f410d1c02 GIT binary patch literal 949 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tIDPZ!6KiaBrZ9^^b6z{BdO zz2pD1seDXkiryc5SkJe+{(pA!F7t~$uNXg+D7DPsP*ij3=oCnzoSAO>pl{|%^#khD z>&m`O7nBpX7pi-9to4ITD-|uF+?k^$P%FX*M@Zg?lPFdtNVb6$?c`QU*nor6*#&o;U0?K0P1b9|rvAIBe+4_b^BkNvoCzh-ZBHfs4WXUXxX>!tIa?^?G$;!R&$ z;)`ADR;_xjVtZ{{uJ7e7xz$IL%1wMPZ_9n|`D>=AlSSX-r&IIZ{^7T?c_4@|IYH+D zs#OCdFhNfH*o@Sht*h@`SZ}UbP0l+XkKcS)*l literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_disc-nurbs_mres_0000.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_disc-nurbs_mres_0000.png new file mode 100644 index 0000000000000000000000000000000000000000..9b297d3871cbff78aec66f51fda4df8c19e8fe11 GIT binary patch literal 1612 zcmdUw?N3u@7>Db@L&|}66j~b{<(*L*D2vV&PBm6&DGj9KO?QT%rM|LC=?4moEz4jH zwV;S1)k!y~B6d(ni4!_yq3LlBrm_HnWFWH{!E~?!Q(l&lxx0VD7QXDm$#p;1bKk%7 ze0Xw>AyY1;VLLDig+i01iL)t`Epgt5ihx-S+a5`w_y)_w2XZS+zdw_8PbUUSMjDpa z29!STs?Gqxz|iHieeb@ohKJv0CH=Zwu@@Ws(-=xAi%q5mN9YWJPBFDGQuj6^`6@Lc zLl^kgf7T`LEyIcRWKMR#yrt6Jb6fVF^M{LHQD(Ht-LdCwrGuZsVWb=GWh>$th3FcqWMEJv(g^wJ=|t$08m|2z=I; z=5J-e@aVxQL^VQ9*O!j=JMsk1(TK+@T${1pR+^UbC1xG>wulE1)#uQX|KyJ2=O}2o zwZgac8X(S3z$Ap;xR^C2(d;c`eJtWHZ;@WUjW`U)oDCMRiF@9nV2w?@DTN~8BBEM^ zyp2mdTki#Ulf*xcaj1zdxDsy@ukYumc}En6B>_G?Oht{<*KOqafNT(9__Q+-#4k6< z?`a1?_~7{yr$Ov*Cs7&!A_vd^@hXUc>!c*$FbF@~G&2aIc|(hE)95;gqh@j_ zBMXECH$8~+id&>#MlJ{@hhE%`r0Y((HJM{9BC=nkC%@=%1iAL$A%ktunK0%GoP&c- zR@2FLKJYC4*vSN7J>6#;7kHUoawoMa#yL@1(Rc!jW0bX$ofW8#eo*v=XU_b$(he zt*l-N(dKro78FQ@Sqk=rj*f9PJ96Pb6{qW|ncAGAD6i9UoxRM8#wMIun1c0>@8Z8yJMjk6j1uMdc@rz-UxnR0|A1z+TMMVbRmBIR>xc z^;Y3@QZo97K36}LY7xya+?t=LtU}yszuOz00;R)!&{EviN8d{3R$diCo;Btf>A6kz8Ht literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_disc-nurbs_mres_0000_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_disc-nurbs_mres_0000_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..3b88d248ec8e66615202cc185d429df4f9df3595 GIT binary patch literal 714 zcmeAS@N?(olHy`uVBq!ia0vp^DImlUgKJC)ee!)sq79OdmOH&Yw+;+hH{oBBswO&ExxdFQ-KB~IR z%rh>D+51ND&QhDrGwI27*6KC0KYdH7DvH@ByRbb@^wsspFITVre4L$q|9Yw0U5DPJ z-%pzehA|p7erQ$@kRPbInNRTl49UcVJDf`0DUD`=we3 zp8R~Sx1s9MR=um5VPE3vJxhB+;NxXswK@RQK;cl(%@#^m)=koZTJ~F6bdemXLqMVU71slV>lHT+7uy`@h$L z9-u|vBff6_^yow9;r}n$rl0O+otL*iI`a2}&e{)FiGoVg&b@mP5^+0Xp~uEJtCL<8 zFMCWLF1`G{W%@HKfw)-`P8FGAybqUZx&sB$1>$ffU ze0OV3(C?|2tX9VR-IL+BUv^@9Y$MMak&1Ty{$tlmi}uyo8g8@yv9Wpc)VCYU3~bF+ gP}2mePZ!CrR%JVVdZyb0U>arcboFyt=akR{05onu;s5{u literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_disc-nurbs_mres_0020.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_disc-nurbs_mres_0020.png new file mode 100644 index 0000000000000000000000000000000000000000..aa75c611acf9ad141964dfd696ac46bf9dfc5a04 GIT binary patch literal 2374 zcmc&$X;2f{8qI)#CP1KpKnw&VC;~=|0}h&iED5Ut0R>?cq}@>ZU_W*P(UFe(NUix%A&FkX;)+o2qQWQ(>&{0Q}y1@SM{n+-|p|$J?FdM?K=0~ z?7#qTT>^!G!{Ky&eK^55+;{Z(2T;R${;*g`!{M}aeL3zM1x2I%y$4=;8MwJeZJ(Vx zMr}zx%3WucEeyiaK zq~NP%oWjn!rXNIaDHWnVUGPo2q)B>tA``gYHF6dJqg*nrOCjluOeq#qmdd>RT@@7@U2+9 zK@A^y)}|NkZfMtd<_ug~oAzcSe-#PstvdIhU^oyS4~o*NWAd$q1?;FbA$eKW=sGjC zWt9gwM(DxNC+(97Hu9xLU2c;^&zUT>-ur!G;K+H|uJ%JV@;{Bbf?J860&n^79k=cp z3Bao!ZtU-CjTe)lh|`i|XD_qCSrsqUlzL;5mwJ{%%~83!YWEG+W|!jkU*p@zS9~B~ z(d{Js{$MQHd3dAJ3(5ErskClpgKL+^l`HZ~NcCD{fv}_lS}7rsd4B*~P183q=`SCt zSs`dA*c^^A@Ips*1+&OWegact)KNF@<|3!O>dR%viKlv!i8_OE?SS_ah#4|=r>}6O zynnmO56RA5rW%1(N5C)VIT>vZs!rnDoH#x*vJjr)~|-_F@Ppk&Xl@R zXZ0nYE-D7rh~gtwh$2MQkC_C|Z2h$OtlCHRe*Q_k$NVgPKSRp}%PhnZKQB16ui~{8 zJj4N7Fzodnbn~HsL5?1SY*?TBAE??5TdXx88Q4)Q zr~a=0Ez#GH(C_6BU%x1h*-;m1Kc1`^`~VOe{%t?1tppq0{rq?Xl!zfOVBfcLu43h^ z(YHTu1)G1XI?RV+VGf9fKo4~q9EIVv6`#I1^|2njE*%gvL62G@*yE#B7h@8U$N|n{ z>oQtgaky%@k^Xd!ZfO7X^@{GOi1dd(LGY7l^rNU*NW?^Lz>}yB5F$So`>KDTh)?xEVIkea5y4X8#q~~m>8cL zSqS+NgqxocHDgSnYnY7Ql3~?JJ?CGJGYs)#`BjPurg!0XvR&L!GphM?gR~X2J|}|? z@C8|Kz)T_=Pc-g9Q!S40%u$19Vl_Rm6TQ0Ct<6;q5S#<0P5d0-F*TFm+}A)gpLOAG z;0S2=l8O%Jq9yVTnPRo|@qS3OkcwH+9!a<)!)Yc6+D*~|jL@Hq$QN27nVaByI&8cK z>w@Bavq@47Aex}sVV0+se0nt1;aQ(M5}2BuJFFUsX8%S;7ZJD@2R~vvMuHw2Z(Vmw zanyUUKLx#Zg^j;(qg+vl{QSriorDkqU0F_4m>aH+hadJ*?P_zKSh>Q$w1$3}<38~jWc%J}5}GV}cwV-mP|$HkBJ+gx z25bLOgh>gx$i9l@aUi;Z8N29U>M>xeSkazuQlF*r+>8WQ?W_(|zW4x-|F}uoA`x>^ zOi!s?LOToyBy4~>lUoytFcbCD|Msg5oX}~ON9f!F7CU#_Y9|B%>*2aUUfW# zkN?ujWad7d5%2+0lC$I0;uiA+(+e)N(DjbqYAKjpgET_T7i#_$iwk9aov7 zrA}PAqB|gA=;o2%^-~t=$^FgsAo7k+`ux6@k_Dc<4Qs%KF+BT@d%QG-Xl|vx|-yw{+>htoPM` d|F3pVvtu7)=z8 zi$iBAR-8J^H3^4Ym!oKwsQ%n$|ufF|)Up1j`l zjZp=!?==os2>_rNB7XnzXn|bN;i(t0`E}#5rGtlq4eI^%9;NGWcc!SsZ5~V{HnpXV z7JPV>`>ABK+IRkZpVFYxsNV-Ym6rtFqD&pQznwaG)HK1}P^7B~c_Q*C#Fg4Aj8&m3 z<*bRkC}=D$#zWEhq+?m?tU230+W(BU~-ao``3Vg-0Oas)j5nGI!Wv@>thE9yzd_rYQ;G)RSaN|AY;+Waq{!=e< z-4{#)3*eYW(bwYVE4K$$wwSuU4jNg9;^(ZmGy8Y`d`^#U<9ffIUk57)VTZ{rPv3CW zls+r3Za}?BYj5{zZ0zJ?-?*- zc)`=NPjQljsoiR&Gr!!lckk0fUKgmIls(N%c zX?iffHBb*>V%;ooE7L1-(g*`lb&LGx_jDzJQ*`3dBJ3bYhpk zS3n8*ZoCWoW*F)F?WS&qGI*t;J8*`6>5?Y+tT@8qkKW59kh1sGq#-(67>u13t#W~B$WNZTG-BV`yqiq77*q1^nd@hOBzS>kJpO2}#YjHEkI9^gN zvDelKB1#$g+Sh0%M(8Oxi8fp&m#2lXGT{(&+n*5}dFjwlLtpR0XFum0G=WGWsYxuk z9%yMrh2?%PGM{2WomrgxB3#XfTH8A_cN^2*V=+?xy;akeP2N{T=<3)rSC$e>vxq&P zK0(cbsOu_8ux;C5=lazt-*$lTDANjA($cbploLn2j*n%uw{bH|cy}Xqz-Lx$mI4AW zQtwv2f^oylAYz?2lv;vcO+~9Eb<^E+)t8PCUvwkYK_boVoJknp->)vPLubi=H1t3Q zWlKBe)TJuM;-Po~MI+aC!^>L98b>}l70?XK@FzUKo##FXJ?T1^(KBu}d!<%ed52n+ zqwFH<7_W*(i4m7odIWk%pLV~Oj*s74v2kC>>X-okW=-Fbe5<33mHTV9zUpz+gs9{% zbW_!b@tpZ&NRF_yRGsl;LybhSgG0M2&tjzCqT73Vx6Z>_$lbkF%su^=NETF&ppXcA zP!~GSJ3BJMK74oW6koW8s;#?MGca5;XZFSEv6Aei8Ye^{7+h_ro%>)WN9Tcq!-N%; z#&?R3p!1@Av*EIPkf>M0AIt39X_J!+>FK@NV#%T_U#IKsjFETmFHL4+)378q=)ONB zA*Ful!2tj)yd1d)7g_u))phHx2f@)St_92|pAbE6V*af37S#8VyGm7J8Al;1NK_0K zCMsa}6BUld90k4Ppw~x-@Q)7D^fpRFFgNYLA( z63<;locw$O2**nY$Ng;r`GFH7@{EzcCdYXaOaRs;e#upr+^e iAVQsd3?ToTHKo?=L}bMK>sjkh1RxST@RbMr68;5=H3dG~9YdrQ9%`4ye!RoUmm!Y7OPm6%C;t>~)QRZkkP&W~5Tr5{`@yr$B q2Xc8%9cSNNlYVgV&Ojx$H_ZEew literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-quad_boundary_topo_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-quad_boundary_topo_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..c5caf5745912cd2fde0960230e8ff476651d2305 GIT binary patch literal 464 zcmeAS@N?(olHy`uVBq!ia0vp^DIme*cxLF{jO|pINi`a=eY6<)=dF3-#K|KeByf~>es%f4QI|Xr&|gq^+@l1_INw{ z5APmU32pe(C%g zfkP&~`Tbk6`u{&T#w=%uu<95Sn%x5=@N#2P573Lp0>fUsJlplfJ9e{<_5AbGPd|M- zF>F=tZJpC{;ZC2LmdK II;Vst0PH8Z`Tzg` literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-quad_mres_0000.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-quad_mres_0000.png new file mode 100644 index 0000000000000000000000000000000000000000..e1286ade0aea686010e5b6140102b6f3946b9f81 GIT binary patch literal 1037 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tIUo-U3d6?5L+HS9WKAmDoN zn$h?Do4#>uMPQgg7qt2 zt*Q9*>dcup5xbI~o>_hT+#gOwHK&eFfh47t861O%Ilt;axu5NWm8Q1ii#Yz8`f+UJ_DTVHEXAzUaASrijC`rAH`UM~0HSl>qLuyZ+4ziyo3NYAr< zuyAwIi?}y6+mXL4Q7q5}Zem*rZ37E|pJYD@< J);T3K0RXF&Q*QtO literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-quad_mres_0000_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-quad_mres_0000_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..9a7b74e099df2d17826cae5ea0d0f55eb14dccb8 GIT binary patch literal 965 zcmeAS@N?(olHy`uVBq!ia0vp^DImv_HA zsY??M$4(3o+)?~c&2`lWb*2?XJWIG999z07g@t zf|;!@*}O%Uj!wGq#E#3L=?-%!lU~}hj5H40b3W684*jwIOX^k_-?|+hbJ(I{Hgp{E5I4E7YGd8j zsQAC}1*>hd4LFu^=r}gm+`8T4;l8=|VP&)U1|7!JLU@SAwJB?zR=RAI=5q5k+08mp znQQjZs}&#h7t4RHaadoT^li$nEAIc=%$4f`gR^%DmsPoCeNcTmclET#o3j4>n*09x zoYe=@YyLIZFAQtG|LHLIzTn{EAG2O6^Ic6ixt@RLjz6<=)55|wck5-J(3Nmr%J%)n zEPKAv3*Y0=a#vb_wTyw$Gh)ou50KE=8ChgZ{GLw1 z_~qt{OB1?2t@Es2%<{?q=`YEio_g~zho=4KlcK(}lG~DLj%-vb5lK%?x*QYFE^N#yh_*SQE z$C^2_)OuGr?EE&PwnJpv`(pc`kha=B=CfB9PhM78YMh$daG{#hHu6pO!qOKqZ-tEh zZm^q>zvNG*1~x~ch}}LJb#$H8@q5i2(=r-FH77;I`XAL^nj-nQ@WI+kvabSH%(6@A zsOz+AHneU$6dfxbS(a*a)L*+@KK$KDYps%a*4UNPKMHM`lKnR#b6)+5RR>e!qfh+$ h|ByEhf7Ct5f7bE(EaUXz8Nlqx;OXk;vd$@?2>=5)x{&|? literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-quad_mres_0020.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-quad_mres_0020.png new file mode 100644 index 0000000000000000000000000000000000000000..e1286ade0aea686010e5b6140102b6f3946b9f81 GIT binary patch literal 1037 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tIUo-U3d6?5L+HS9WKAmDoN zn$h?Do4#>uMPQgg7qt2 zt*Q9*>dcup5xbI~o>_hT+#gOwHK&eFfh47t861O%Ilt;axu5NWm8Q1ii#Yz8`f+UJ_DTVHEXAzUaASrijC`rAH`UM~0HSl>qLuyZ+4ziyo3NYAr< zuyAwIi?}y6+mXL4Q7q5}Zem*rZ37E|pJYD@< J);T3K0RXF&Q*QtO literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-quad_mres_0020_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-quad_mres_0020_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..9a7b74e099df2d17826cae5ea0d0f55eb14dccb8 GIT binary patch literal 965 zcmeAS@N?(olHy`uVBq!ia0vp^DImv_HA zsY??M$4(3o+)?~c&2`lWb*2?XJWIG999z07g@t zf|;!@*}O%Uj!wGq#E#3L=?-%!lU~}hj5H40b3W684*jwIOX^k_-?|+hbJ(I{Hgp{E5I4E7YGd8j zsQAC}1*>hd4LFu^=r}gm+`8T4;l8=|VP&)U1|7!JLU@SAwJB?zR=RAI=5q5k+08mp znQQjZs}&#h7t4RHaadoT^li$nEAIc=%$4f`gR^%DmsPoCeNcTmclET#o3j4>n*09x zoYe=@YyLIZFAQtG|LHLIzTn{EAG2O6^Ic6ixt@RLjz6<=)55|wck5-J(3Nmr%J%)n zEPKAv3*Y0=a#vb_wTyw$Gh)ou50KE=8ChgZ{GLw1 z_~qt{OB1?2t@Es2%<{?q=`YEio_g~zho=4KlcK(}lG~DLj%-vb5lK%?x*QYFE^N#yh_*SQE z$C^2_)OuGr?EE&PwnJpv`(pc`kha=B=CfB9PhM78YMh$daG{#hHu6pO!qOKqZ-tEh zZm^q>zvNG*1~x~ch}}LJb#$H8@q5i2(=r-FH77;I`XAL^nj-nQ@WI+kvabSH%(6@A zsOz+AHneU$6dfxbS(a*a)L*+@KK$KDYps%a*4UNPKMHM`lKnR#b6)+5RR>e!qfh+$ h|ByEhf7Ct5f7bE(EaUXz8Nlqx;OXk;vd$@?2>=5)x{&|? literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-tri_boundary_topo.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-tri_boundary_topo.png new file mode 100644 index 0000000000000000000000000000000000000000..e2bd2686b0495039fa6bc957debefa91fbe5a667 GIT binary patch literal 956 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tJ4PZ!6KiaBrZ268n!2(TXX z`S34%o{XY~)8vTKrsqz(|5@(-&1Chyios?shoYKON2frNQp*gAnKuIYcO<2~;;c_C zmwma{@9>dG~9YdrQ9%`4ye!RoUmm!Y7OPm6%C;t>~)QRZkkP&W~5Tr5{`@yr$B q2Xc8%9cSNNlYVgV&Ojx$H_ZEew literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-tri_boundary_topo_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-tri_boundary_topo_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..c5caf5745912cd2fde0960230e8ff476651d2305 GIT binary patch literal 464 zcmeAS@N?(olHy`uVBq!ia0vp^DIme*cxLF{jO|pINi`a=eY6<)=dF3-#K|KeByf~>es%f4QI|Xr&|gq^+@l1_INw{ z5APmU32pe(C%g zfkP&~`Tbk6`u{&T#w=%uu<95Sn%x5=@N#2P573Lp0>fUsJlplfJ9e{<_5AbGPd|M- zF>F=tZJpC{;ZC2LmdK II;Vst0PH8Z`Tzg` literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-tri_mres_0000.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-tri_mres_0000.png new file mode 100644 index 0000000000000000000000000000000000000000..cbccfd783b0f42a8c084c39951e0bb175bbf3c8c GIT binary patch literal 2734 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-tri_mres_0020.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-tri_mres_0020.png new file mode 100644 index 0000000000000000000000000000000000000000..a944fc8ddd4701ae0542c2aebe3aa4398b695576 GIT binary patch literal 2741 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-tri_mres_0020_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_inline-tri_mres_0020_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..d6409792d3f93cec4a861e85068315f35ed1baf5 GIT binary patch literal 1661 zcmV-@27>vCP)P+!~AtF-UdvEUC1>?8ojZP|+4+irf_)$nEs69ai zq(s3QI~lJa|{i_aAp#j^!9Btj2PZ6qaH+ObY9;oF|1vSdNs!3M{8e zVLFzBr7#!E*;1H@<#;K~!kP(En1VG!q$m(82dY7-*7gBwHLs*EWF<9I7T-nw zDkHEGk0yDlvZ#9qyhLUt!;+xqPxKZRZKtmsb?P0sj(REN-ekzV} zv`zNf^wscnl=pXX2C63i_4|UK2I<~OyX4)Vz}O4Ke&^Notdks0gtXG>usmgA)`3oFdGj+ep| ztT6FT8XPZ0A$=Aw0<{Jou(4X%U^|?nLgiY4QWWya($Jq}uYq>hgHp%Gr&%uz>fCN* zqr4qv7C-D~wN%RYK(S-IR_;#^ZH#OSrf&(`Vc!kTW_Th(xg@A)4F60|9Zv>??eHkc zOZcB-K^6hBhA$Vo(3(6mFEnrb)MY?*i0x$I% z(vqUUT6qj2#Jgy&k$t8ppf|DkPM0wC$y4UzT08YoiIf+{2t+s{U+2Uzj+H}yjD34~ zrwY=N;B~YYd3zV9ZX(!`r^5(6AF{fhE26{QfF*p8XB*aQ|au}k*-X7 zOxO;OE@Af{Y*Cm$^#kju0e$A#&!%?CcVONx(TA{mx<LHXxwj?s@WxPprx@qL&%qBn#N&(OJ#Z=^wgWu@Y|uR$|j zE9-e(8SFd+xWrW{oo%qogE7`)fZIMxgt_bbi?<6;TM z#S)B*B^Vb=FfNv0Tr9!3Sb}k}1mj`}#>EnhizOHrOE7-}T46*yAu$XR00000NkvXX Hu0mjf$^iqk literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_periodic-square_mres_0000.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_periodic-square_mres_0000.png new file mode 100644 index 0000000000000000000000000000000000000000..279c2db9b8ddc2a3ba04f451eb05e9d486a1ea11 GIT binary patch literal 1012 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tKco-U3d6?5L+J(zpgK!nxt z-vQBIvwlrl9GzliaDd^^p>IB{{sPk;`ELFm=kR>B9K(FS76Dq z|LBk0|FuQ??Dweme^;-m-1GJG-E`T%Z_Z2?NK$H>4 zc*@ncyJW9d?oEDtWX;!#*Xn!D|7s|&I8Z7wOuZUjwYM4Q)xW{{J1*7i|NYzgu@x6p w(hcP)k8%@ozTNxE_9J5-#hHLir@Y~B|EcW1?eC29z}(E>>FVdQ&MBb@0Pf;HQvd(} literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_periodic-square_mres_0000_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_periodic-square_mres_0000_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..d00fa4edb88f40e9aacccf3bcac366d5f5e9bfe4 GIT binary patch literal 893 zcmeAS@N?(olHy`uVBq!ia0vp^DImp0^)6R1x@pMxLX5UC;H9Zsi)%c z`k3*3(=40)C8nI_+yC^X8v zHsRS=Q@>kxr zcAf08DjlUUSAC7YR$sOgYvAEquFuUr{mrGBsd^XZJ%}+Y4iK+Eb6b~d0J?LLg)Sdh ztu_AfczbGi&$Tqum1eH?8WT~h!98i0yGlPg$`P5@GzEo!KA1%qo=IVPkq^} z>t-Cr?zfJwdSGU-#-MtBB=_#gul}Y5>sUTc*~0ui$6R~kyNS2UrzYzsl~(=TX18ch zuln(8A4M4yZXbEYJw^Lj;*FSn+y9DWbGofLAoj`d-8}mwiA{&T1}vMgk!fH5YRfLw z;xz(#dP^iXGS#-sH2%9@ViObZtM|rXpJ#0C+@F19RlaiU<1=&PN3cugH$m0I$+BN?t=zV~tU1a;IB{{sPk;`ELFm=kR>B9K(FS76Dq z|LBk0|FuQ??Dweme^;-m-1GJG-E`T%Z_Z2?NK$H>4 zc*@ncyJW9d?oEDtWX;!#*Xn!D|7s|&I8Z7wOuZUjwYM4Q)xW{{J1*7i|NYzgu@x6p w(hcP)k8%@ozTNxE_9J5-#hHLir@Y~B|EcW1?eC29z}(E>>FVdQ&MBb@0Pf;HQvd(} literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_periodic-square_mres_0020_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_periodic-square_mres_0020_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..d00fa4edb88f40e9aacccf3bcac366d5f5e9bfe4 GIT binary patch literal 893 zcmeAS@N?(olHy`uVBq!ia0vp^DImp0^)6R1x@pMxLX5UC;H9Zsi)%c z`k3*3(=40)C8nI_+yC^X8v zHsRS=Q@>kxr zcAf08DjlUUSAC7YR$sOgYvAEquFuUr{mrGBsd^XZJ%}+Y4iK+Eb6b~d0J?LLg)Sdh ztu_AfczbGi&$Tqum1eH?8WT~h!98i0yGlPg$`P5@GzEo!KA1%qo=IVPkq^} z>t-Cr?zfJwdSGU-#-MtBB=_#gul}Y5>sUTc*~0ui$6R~kyNS2UrzYzsl~(=TX18ch zuln(8A4M4yZXbEYJw^Lj;*FSn+y9DWbGofLAoj`d-8}mwiA{&T1}vMgk!fH5YRfLw z;xz(#dP^iXGS#-sH2%9@ViObZtM|rXpJ#0C+@F19RlaiU<1=&PN3cugH$m0I$+BN?t=zV~tU1a;P{V<0!d0OGdL90C}x(eWw%L6d&T)- z^6r0c-b@jUd-rGJ2P6I%j`@oPgcXmta2N_Y`LqlZ=I(3EJ92@Zt>3i!Ym0L+XXUP$ zmcOf?taPa;k-NYBdGQw$zh8mRRf{Hj4+U?p`^r$44fKsotM>`*H+i-XcL4pd`!#1> zzMcDd$M*a)s?LwhBo`FAkgo PW?}|US3j3^P6y?8{!^g9y zm9y5inhWf4(R%+tcFh`_X0xUZOB0kiG;JC}`yL9~G##7pR&3*~{4<}PJ^ZfC&i1eF zfym5^OD1RA>z2Xs1m7@rxN(jwKl0dRw;oYLusuD?E;wmE+9mtKu) zX`5eu|9x=&HXWeze(G&pcl~vW(M-SPiMKcF+f>yu~prb@WN(F+E0wEAoiipX8Wq_y=BZ-#LuCsLw z7(l3(YAQrP@Y?m#fQlt1qqT#e(25KNOo|E-kW9JMQK~)p-9JvpADQRf_ndvdvtQ<$ zPa_ry=g>Xr6bfZd+*&~jh4K;G@uN|}neti4qEMU|ae}B+wQjWU%Tm7x*Vw2HHB&8H zCW#mBdF7w3oH-@NCbm`Q_s+6BIIn5q+HIn}EA~5>1=ui)&m=0-B74 zhx~8*&0%i~^H}R0NlLKh z=YyzJ-!!Iw4q``@TUro{&2*iRVUL!A!Km^`(}GcOC5C<>lW`OcZ%anj-=xJ8I*XBd zJ`1mlIlwa*^E_p?@+dTze7z=(_f+9WztH9AeOOIB|24Frp_hz3iy_X(GhI5$fZj$e zhcswN+!mNA)!4bb-gal?DD7RXS(}goh7YgT#0O)n zL$*`mp2jL#O>Avj4~0->*a{i8)D&zZkAy?iULlc~un`Kgcp3fo;f<;q^S6nP%v@eZ z=QJ3b_2xV5WH4fR8FvF6M!gwfr-Bj0)Agi-@ubci7qkJ489ZHkF&LlMm^JKlFtT_$ z(+x1ns?B5_tmZ8sLeG1ovG}Fv3{N-UcWBb18l$VVL#eI^gGQ%^R>co=HltK;#!kT8 zi`Eb^6U#}#stR;&*A-}#^7sjlsqy%L%}&um;;CrD$F>QUV)Ke5Z=kTO)7o0-PYTo= z=FiefFzSD^N~Qux!SQPIcKJG~CPYBY9fhq35fUnS8t@BZU-wm`tLy~2ug3sO%v3h* zf*lH%_gSCANcER<37Duo`zGqH_A{N8|E{O*V_4;eAu-l6&x)T=H5gkCDnwf&QY|fl zRTmF11MM6}`-OD`y-0vp=6C9;Eq1@pC{J!=o{Q4Zi`L@#O_?5S>{VCAChEQn~qB*mhJFKurdIQowWDjQP6340Am9HWgqAev3Q9>KMoQ!dK%?#@j z!*Y1Z@h_xXv}o*t#$6cqq{`pKM&4fANwAz#EIx)&F&;o~&Uyf4y^#nT5#xgr3%77s zj4zW|B!(AaJSW96d&(xp>ys_5VZcGLP1 zG~A=7IVD?Mf+F0kH2R{3%>;|DqZ0XDdRkeXu~G@CPAQhNJxYI5jekhB5Xv|;%M%_S z1cb;Z(b!kMh)8Aw&O$`leZVk8l+yw9MnrjcfFC2Gt=EBp2uFGm=!$T%^guqs`RWL8 z3Bt+M0G$zz{4FpD;cWj4xDp8qg-@T}Pu=*vA%+oo+IZkOe6uQmyf_PnZE@@Fl{1U& z!Sr5JDo{o5y~hW7Alq^(&{%biF|qBTo)(XtEK&JKBd#wM<23hsNw-l|sTiB~ePlH- z0?Q*<%$E!G)ZIhVDEE*UD;ju;s!GHd|Ji-Cu~>{XTdtvhYk(sh%J-aC@LOx$l4gVEm7DB4- zMFaYWpkXx?wUI)czU28h>IILc$PvXPgtiHj8pE=5cC{|g}>^N;`l literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-nurbs_mres_0000_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-nurbs_mres_0000_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..68b942b4d9d3d0866c6ad406701ea022120f5206 GIT binary patch literal 815 zcmeAS@N?(olHy`uVBq!ia0vp^DImL6(0;^Y%1TcectNoX!C<1^ab}6yQVctt*voO*cVm^?)hfAr6S^R8voMP zB_}I_wr{)kN8Na4{igl;wyeui?2rFFf2PVy)9LD`*!>Q(nZ%S643UY&rf;V%)%tt1 z=hTG=IGWxiHay()3M30clVR2g1wnOC8EdUCq0=RxyG;Z@1#>5 zAu{#b8m|hjPt{xtNQ*>-(2T9nR{#E*s>VwDrL2 zyp?SmU8?_vud38p7#F%^PD1DBRT@vZyeEX0YPLrx?THA=+bC0AxO7gk<>yNiCN(@g z;O+0l5w@3is8_j1b%V%A51ZrbnqRUTV`4^@D?wHuh9XPT3{u zU9Xh8<--KE)^M9%znb{s->#9<-izN3HdV|PE>ete5s~{I_h#O{SKsActewC7et)~> zS>1Q46PjIT-@AJFph8#D-lyN2axVWaO#C)?oqG1^z(5hdYhgZO(>^pD<%sAZM0kjW z39x`PT)2K}de+m>9k}IW_aH6Yo3%BOxxJw&0bRXL~MN{80;>J&P&sF=Tv*^4Do2C_d zoLgPzR^cJ0^zs6&GbYnSG}npyZ8F+Z;5O@F>*en}`gdL*_;9FK5y)^o{Na$UJCHH| z=!ZjRb9nTF;KF?TYQ2?5=UCWuKl%ARy|Psywb}T{@6z2FwTyp00i_>zopr0IGt6 AlK=n! literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-nurbs_mres_0020.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-nurbs_mres_0020.png new file mode 100644 index 0000000000000000000000000000000000000000..e8261e1a868b14449803c1309e45ce285addc6d8 GIT binary patch literal 2260 zcmcguZB&wJ8b;c;VM!^(4=UeGuo2W$MrUo%H3hUBi_o;}1H&9j%Zw7iZOoz=(ZrN2z5Am{Xc&sFi)0d(-}C|LvbWd(OkTF0SXkulsu5 z^FHUi1w8I52mB&D27_^kUd@TaVC;NtKO7d6=k5zB7!2-AG$$fHTlM(fZyEQS9K$=i zB4=m)M+sl|?0fCJl9uq**4-UPqtY|=$GsEnE@?&=g`b@jx?^^Du~vWhzh2M1USrNB zp1OLj|+=%E#D?s;|9Zh=*YFZFyXe) zncTe!0>{m>Cq~H$UZq)oPXU_nrBHB07UI5Z-nMB?p<105EpM^0plZk6Jw zPXZL$p@iDaP;gzmqT&dWhdbA0;q7uEQ{EgWd=T3J4)er)Ex*FXwo2m(Xa4}si;qxA zO)hjuhqZxxu*y*qnmc1am>$v2L7kyBpAa)z3$4}S#CR#RUa2tdKi~_kDC*Lc29*~_ zwDMet+fZTrjPFXOq;nK$2f(}U1c7AF6Xa{@=-FL`Shl=w#Oi5;8KH*>^Mm7{GiBHs zeiUYe782$&l0cx2XzM+|YRMW!d*Nm{P&PANV20M}4$H=CegT|p7c@8Z1qfbUmi`?y z5d6^ABN`U81w2EUx)cMJI=Jq+-Hryodex!(Nrfv% z1l=&VO%kQpc&lzS#=X&ZRyY1N`}ahMd$^K$ckzMxCZCNL@0-gajFWRCF`2$sT2^BEu4sL{ znJd4g>$H@7WBTr|S9{l8(3dNoAv15?4%Nh)Gx)uKeDSatuiNg}^E7>lOWWS*(be(h z;K%ALR(Tts|-I|FU9FlyTV5atT4(2}ZIx*SLzi=L(WAN1MeO#}< zXS((G-l=op@@LCuTpBm^KKsId?Zah;!6tuErO}In`-PKudufU&g&amPT*~tXv6++D zeHh6QXUE8k*T@lvkh#Hm7H8syz--xKG|AD!lax$fU-;AUqom_DPPB1iw~do2 zaxq2z8AT)L;)_$L&ah+KY^srVwht|?!Fim1zcOELcyPVV)Skbfq~O1-^NcwwtD3^UO>>? zU|T|8;kU`D_T%rKLc5c(gRJv39GUxsC)@Z=>ekw%Wrj<0$9OVnf%cM`8E>Y(Ys@Hy z#xM`Vt0t)aXMwg=ICJ?rfAcBf@%-UuZ@gY84`R;tXNbno3%i4~I^`>({5DW*@$ zPcAQ&N?KOex9-6tm779!F>>K@X?2t<`j#JYam4C3n!0w{f8zY)t^=2k3<&*OgpMvx zHTt#fx1LInmfu3*jo2{txvZHNO!=Xqu}NkTJB z(XFmOX3-2vx^>xlz(BgyVM!Br8Gk&T`Q{(ak8kL`r7p9 zG3yF^diqU5WcC7N$@Uw7e?pd|>Ijj2D(w8=L1M&`A!hE4oSm43ZLw;H!4R&ay? z(Mk9l;Ty~uLzNivF0joI62Qe)D_~S#zv2eCUMR; zihd^SJi(K_q1GDHsPRjsRpJ#p<@h1>RER2og-m{_3{foyEC~!zc?0HkGgV%I4Vg@p zC!m_dRCxfNtPF7rVUkVe>RExvgG)x;-ZkT zU=|Yh`%YA{NR6dGI(p`^ruMb{X=b@Rfbjkb{^xc4|M5$+b9{b^El96tjl^@w}t=! literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-nurbs_mres_0020_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-nurbs_mres_0020_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..36d55b0ff1cf8e0a192050fb1d8b7bd36372ffd7 GIT binary patch literal 1327 zcmah}donbSC5o7pZW-1z?>41jY)8w@DV2F!?sP>~9$Qu+ZDaOp z%eq~nIl?H87D5g~p>sUPv>}h(-M{Z2_nhx_zVrS4LC_nFDjmQ2= zsFp_6Sz6mbpzSJ@_iv$;C-Wmx^nq{?WHCW>m1~CW#gstLvHi{lA^h^xXZ4K(3J+6h zWvcJ*UJ~UJA3yyw`Vv_-rMeh7L-^7qc(d=BGOEP-%U+Zfuk=&@#?jJglFEQ}{y^qr z_uENvt{m-HP%4z_`y6XJA?41(y=U^CDnWn|6>0DvJdp1y5AQ{*GIs}&pSzni5u8dQ z2It)_O=VpNS_9NN9d{DTGj3IAi$mkQA}w~rpGt~sRH=hxaYjgH#F~RYFKhIo{=P>o z^upNyWG*(di~BM*91`la@nVvrm9a{dip+zGO)dir#ZPOFRs&4k4+V^uY8d20j45%` zL-KJ3O-$ynvWO^Q2#1wTbQZp1vvP>0!bCPJmk1Uvb6EM3*Mqd+?v8Jt`IZj9;6{@B z9VB{rHo~7A6TLGXPbD#J=gFYZ911*!W^?~mnwH-Ec zDJqJt_+$lhWSA!-9xpG~+4A~g>9)5%O2-rwH(q{?8zPFMMUBW*gGvNjTh!B55O(!n z>4qv?cJ`&dzB&hEOu(3>`A8)Wr<(}0tWuiz{KteCEOup;VtFWV4tCd>(Yh2(sHCUN zw|SShE>Tl{je%7ib3XnVExsLBJvi+jC?w{)x)k1m6K7syst_)P9DJ8a*SsU#e15+d z{pfDr#^K9sO~nrtUEZ+0#xji=ns1I2JM285wr+SBn zNls|xggGM`;%t*PM9t;EiIBERJVkbPN_E3oc2Q%9V2eYu>OBS{OageVjgUIL#mTXY$!IJOzZ{(}3r7+JJ#nu@i}eM_M~0 zKVZ{kZv`DjQ(?9W0*NG>J^$G)SWzPpP5UHyoU8h(wElgj1+zQ>uH(nWuF1vX$D#;j zWWsH)@PSL^b{Dpm3hV}o752p5JP!sABCRWqcDgPv&|Z*5I}w}FBMI-7n>lHyJ;}ML zY~8nQvX$+4LL@}XsWt{mWq!%aX-3c8@E*5QNv#+6dcN92afR~tvB_dHYCk+UGPP&) zyh1b|Lf-g0vYWekbCdZ-z7@A^^Yu`CpUy_kSgN4ib$EGZqP?oc@#|=3d#z*iYPbo3 f3WeSIUu-}sbky&$ta}R05rR-ijJM!S)SZ6-srHC& literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p2_boundary_topo.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p2_boundary_topo.png new file mode 100644 index 0000000000000000000000000000000000000000..cedf118ee0343036c1262d47e6246685d13b135c GIT binary patch literal 1452 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_st*PZ!6KiaBrZUd+4YCE{@L zht~i9r}yzsn;^=;>a;2S%~rWj7lMpC_f#MAS*rJXR~^IL|F2jN-0T!cQfisOp{VB6 zK{>Pb8h6FfO*&tN_)=rT?Js?=dS!1t+vrfg`hL%UC(nP5jr;NXOqmE3Eu`GZ1Wf?? zNnx|j>96|hUjO>8ZD}becmM2-d9@oY>iaqR->m#2w{wa}eKQCDi-X_t#7h64kE;vs z%~v_({PSn>y>k73MXAjndtEA6>OUxKkA0Qa^}cqou+YOh|9%LcJ3W>6n0b+(#m3i6 z*GvD-7RuXqQQDr}N_28T*l+87QjXV~3nRroe~46?bDra8?Z*0~EvB{8-o8j-)A^9J zUoQIc@y-G@W$_&sA9A}`^!}|pFoQMk+v&>>m0c_vQzMsIPrUr_v5UpzNUl3?tfxGZ zRg$?|VqB1a%=EvlAYbk)Ci8Dg|EnA-lwEM3m+!ss!v%c758T?zI|^LbwF?#>e%}F1 z7c%D*k3TqOu*b6{*|MNfS~gDjp#xt$P+2@!_NeDEpzIxC#Um~phJt(#L#i+K%D!v` zrlmvoI6)fkfRq6fSMu_^-Fa_3>|Ho41*iGhv6;6m#FpUBSg7o=_!)>PXHfj<{L}A# zby3RL5~+6|m%U%T#}7rP6P*TSpAs{8>N*69K=xKIzdP|(cOJxbEr%~i>=A&tweL}g zbx`$1TR|tE7G}$n1}1F#1s+E5-CxMGzO%rB{arw#IVfGoTvTjdX!t``kndH3tkwrU z!M@i9K-x}_?=1t6o(~LmN$ZdYzyRM>8mm6Hy?Cve${|ai>ksSLq?*5X7D)Z(bN4IU zZ}ZdEsm1u_{maQ^JL0D@$*UYX*>h(hQ~c*h{f6ba-@lg~&yW9X9am?scqnr1>#Ch! zSEp}y9k}Lz_>DflH^2J+Z$6)sw{Id-e6rBF-2J9|f9yT@Blh8^-<*PS2g{dta!7%6W0 a%dfVhuWQ1`XVJh?n8DN4&t;ucLK6V@eL=MV literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p2_boundary_topo_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p2_boundary_topo_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..6ee3b0303a784dce24a34f335f354897eefd213d GIT binary patch literal 1360 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 JrKEAt{{W`KtS0~f literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p2_mres_0000_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p2_mres_0000_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..4063b5678b757e01e307567c049e955eadb9edc0 GIT binary patch literal 7133 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 TuHJ+X00000NkvXXu0mjf8EOEa literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p2_mres_0020.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p2_mres_0020.png new file mode 100644 index 0000000000000000000000000000000000000000..685969901ea72742beba686589f9e2b64ea90efb GIT binary patch literal 7779 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p2_mres_0020_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p2_mres_0020_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..2cc0dfe9811c9e193fbbd73a25aa7ea16739aa24 GIT binary patch literal 7166 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 Aq5uE@ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p3_boundary_topo.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p3_boundary_topo.png new file mode 100644 index 0000000000000000000000000000000000000000..cedf118ee0343036c1262d47e6246685d13b135c GIT binary patch literal 1452 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_st*PZ!6KiaBrZUd+4YCE{@L zht~i9r}yzsn;^=;>a;2S%~rWj7lMpC_f#MAS*rJXR~^IL|F2jN-0T!cQfisOp{VB6 zK{>Pb8h6FfO*&tN_)=rT?Js?=dS!1t+vrfg`hL%UC(nP5jr;NXOqmE3Eu`GZ1Wf?? zNnx|j>96|hUjO>8ZD}becmM2-d9@oY>iaqR->m#2w{wa}eKQCDi-X_t#7h64kE;vs z%~v_({PSn>y>k73MXAjndtEA6>OUxKkA0Qa^}cqou+YOh|9%LcJ3W>6n0b+(#m3i6 z*GvD-7RuXqQQDr}N_28T*l+87QjXV~3nRroe~46?bDra8?Z*0~EvB{8-o8j-)A^9J zUoQIc@y-G@W$_&sA9A}`^!}|pFoQMk+v&>>m0c_vQzMsIPrUr_v5UpzNUl3?tfxGZ zRg$?|VqB1a%=EvlAYbk)Ci8Dg|EnA-lwEM3m+!ss!v%c758T?zI|^LbwF?#>e%}F1 z7c%D*k3TqOu*b6{*|MNfS~gDjp#xt$P+2@!_NeDEpzIxC#Um~phJt(#L#i+K%D!v` zrlmvoI6)fkfRq6fSMu_^-Fa_3>|Ho41*iGhv6;6m#FpUBSg7o=_!)>PXHfj<{L}A# zby3RL5~+6|m%U%T#}7rP6P*TSpAs{8>N*69K=xKIzdP|(cOJxbEr%~i>=A&tweL}g zbx`$1TR|tE7G}$n1}1F#1s+E5-CxMGzO%rB{arw#IVfGoTvTjdX!t``kndH3tkwrU z!M@i9K-x}_?=1t6o(~LmN$ZdYzyRM>8mm6Hy?Cve${|ai>ksSLq?*5X7D)Z(bN4IU zZ}ZdEsm1u_{maQ^JL0D@$*UYX*>h(hQ~c*h{f6ba-@lg~&yW9X9am?scqnr1>#Ch! zSEp}y9k}Lz_>DflH^2J+Z$6)sw{Id-e6rBF-2J9|f9yT@Blh8^-<*PS2g{dta!7%6W0 a%dfVhuWQ1`XVJh?n8DN4&t;ucLK6V@eL=MV literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p3_boundary_topo_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p3_boundary_topo_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..6ee3b0303a784dce24a34f335f354897eefd213d GIT binary patch literal 1360 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 U=(?ikUw(_Gte_!Z1GNnQAJzV!z5oCK literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p3_mres_0000_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p3_mres_0000_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..44336d1083191e129e656e6e0e839daf5f0be871 GIT binary patch literal 7194 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p3_mres_0020.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p3_mres_0020.png new file mode 100644 index 0000000000000000000000000000000000000000..1da1b2b0fac69d398e253425daf24769cbc3301a GIT binary patch literal 7773 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p3_mres_0020_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc-p3_mres_0020_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..bfd1ffeb2e93d324884ecccd66f7e1f0652b4b0d GIT binary patch literal 7367 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

    ueCZ1h~F@n&LH2o8PicQ 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 a%dfVhuWQ1`XVJh?n8DN4&t;ucLK6V@eL=MV literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc_boundary_topo_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc_boundary_topo_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..6ee3b0303a784dce24a34f335f354897eefd213d GIT binary patch literal 1360 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc_mres_0020.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_input_mesh_square-disc_mres_0020.png new file mode 100644 index 0000000000000000000000000000000000000000..349e7f4f102ebdd7ea3ee7f8a8706bd7f3204fa9 GIT binary patch literal 7730 zcmc(k)l(Y`u=bHcgA-gD3c;axp)F2ucPUWZ-JM{8K#=04p#_2$cbDQ&pg?i=7k4Sn z>GwZ;XU@gm>^!r(7dx}h&M!toO`ZUk1{VztjX+UBMhguM{muUi0LH(}^=oP{8XD+U zQASF~@7vM$gM`CkLb=h2tiK`a>F*^J*pl7&%$&GQ9PF>X^sz{8EG+S<9J$yK;DP6S z&K$O)Jg^R#xeg2gjzef@!Zd*#2wo0|EKp9in60}QKrTx~j>-l6uZsT7F&@rWR)CI% zwll8_W_E!_JX0y(3ut)HeKqVB{VzK*gyI-l>l|~~=WcTyGX5dZ zSq)SI=#0KhGe%i@4L;(ZOB zJ&T=F-BOY6X~^DKs?kzGrmVlN3PuKQ@ts#|*-W4io4c;kflJi+~)V@AUf`DX7b(QY)BbfYWLe1 zeBaEZsr4anDowH`hiS`+7Wl{}cJI^x$nAt_x_0N{-JHiPg{$k%FD$AJyJs8MBpKmP zw$l}Zld@PNjDun@|doPlS!;IiXF>Vpu$xNuPeJ=jSbw9B6Ky=KI8tl?{ zKozAMl~25xkJb++FM@O*h#XiSyR{$bD?cUEPZUR>}jtS9d9=hS<+NLz9#aOx4nc6>HcLS30C|jhQH^l z7ZP1*QWW)v?wF}NhRlFm!~Tuy;kIepx9O-!P{6)Ft*OAY6YE#PMt6B;@|&ZCyn}Fo z&?H;PM$Gc_n*YYXeU|W)w~79yh1gk(me|5v*1YW{GZWn_WhV~MJW1`ZMvK~%toI#W zxF;8lS7fS!(?+|cVvq*Js-!lr($WXE+U#oPVs?i4*&&{H655WHx&Iinq>jKIvzk(^#OiZ|ba4(t+7 z*Q7KT9tj)k!y;plFPuhY_r53ahKi}}N#ONAbSRehAS#v)ky`QbrqlM5>$%{EWsZ7x z#~+xzv}ye!-$$|HAw@muYN9EQ4$p31M;T%fyi-|&wF7_CxY-GH%?bo1@&5#P&xw~I zmEiTmKfV}$43TgYX~z(w$hqsK#->$hO@c*cm0tDFz4@69R3GIdP&ZQqc9)2#8wHV8 z`=jbw_3QSlQV}t&i1q@uFn8aHQ;v_iF#5ut-xu7@nusX5Fbmh>01(O8CD>bGHe_LY z$G`wapCes!G^4H6whadr6+j<6Oc2LZ%?BYufhCw*JO)jE62{k6`p^VjOo1%E>i^ib zmbb<7GI&FWR&K@4caUmtCZCvdv1RHt`~1CD3oqL_z*L=?YbS>jKNgzb#e%}%1=@Wqe7vE@SqQW z^J^)kOWLn9c&)Z>+`K;jpzZdyh+x|&Z5k6`YC4;{Neo=3?mLX6);|iC0UW^*qzT_=#IrwVn{fxF)v9v8|R#2A%5$E4eGA+ zusHX0;)Y}#uU$28rr-lp`cD}pRv91PadbD}@P#-qw(NF^I(IlV*@XbZd%upwkOWq| znw2b~mceByla>=o(_B>1JNF7{kRz`o=>?0VP5ippl6&M%C{^|7b)_DFkXhZ)ps$NQm zz1FXwk@j0NrY~q~7)!~l(l|3}rR8UMqH>;2Yx#Vkl_PATv=pmWOw?NC#zLmh1LK_Y zIk|Iz%(^nRm&ZhVaTR{zsMYH>VV*pvKy)CVDn2VBW!M*!K0Z-(_k*#(b6gAA;_FlH zsNc8kqaRqbr`)Fkj+~G_9##=}=y$6CtQSe6mHl*}-I`_mBn9F^-nBS4@vnrbbe2@C z+@90|d5Qgt#0@dY8QW*Vlga;cQ~gY_uI;y_z91U7#h7a_UvUc!4Y2JTF)Q0y52W=V z(#lcVMmc_u+Qf-EI34F(KRPpAFdK2HUDu%%|NcB&^xI<6So8Son z>E2D5o8)Y`A-qzRc|#GkIuopyCxoh2gO4GSzIN#Y=ih6%P59+(XG*e0g8m{!lwq2; z{s4UjJ;L#hC_a0%Sbb&dM#06@r-5X?m_Yz*UltD2jupYgIy)F2-z7{7r(XU`C?=KvdkFY$itKcCT5P_YzSvN_vjg7LNZfP zNUwkRPq2&vr-b?_MzK53r{dI&$2Ys_gH6iRUNuq>=nu-#`^5~G`0@2|inGgow-i3} zi#Z~kX<|Mx{$7_y9h!J5G)vb7j<1|gEZT6}IRW`+?NO63`LKivjnVUTw?y;@Ef3W| zq$u>-;7;(l7V(5T`?^UF-hscFM&yzMN-vCGK~BA!9&`9vqvTw+~M;9}9&F^F%@5kAd97995Cb1F*XFy$)eCz?3B} z2U$N(lPe&<>|fr(z~WO3{V(ho{09u%CIHd+`qGe`&LBz0NVx{Z8al7ZV(*z zF}L06=0c^!L?w*yb%{TAU7q>TYN6m&IWwW2{%QF{B}8Q>emn^q*uet-pBR)Q2&Hx^sni^L_R)mJ_yda4106EN&-^ zke3mJwbD}O*0aN$<4M!zMyx`E#_?UkOa{N|G6CjQgn{9FKTu{1R4%!a@@Zmk1TB{1 z9(X~2oFbc00P_q&cij912YXH|VGCiW-2tu-e3)Je4b*#CU>G_INkeOJlnR!M8c6a> zQAtnpYbe4*0kZYNU4EIsu`bcZY+v;hC5w_Hio~y!CsfGh2@)) z2a^_4K!PqJ!l79?jrRqYMjIzQkljghTSJvJjO9!}S1jRggh_!0;}!9{lk17n?CI)8 z(%o6hHsEKiEFBju6*)((#bQfyH6X)V=kI#1*zr7^O&B?NV%_+{2%T2ddO}xjHYEUPs|fE)m$<)oH;o)#XJjRBkW?WMocGJh-r*^@YVC ztPJ~n;s;ZUkc9`c%Nva`)>o1y@Q+wXj-$v_FTX^deY*w19$|K^uyIt@lt|nZF<<>x zEMt^&-K*HYq_X722I zt@nE}06cblT{U;L6#Os=n4+`!A!3pCiwSzjkb)s4y9;O#G7q>c>3Knr9zVh)3~F(x zVkb@@7=g7V=+b}it>FK7sbM+=gxMxTAie4Am_^@kVLe>yo|7`2(_bQYvXnQGTMckr z4W`16o!P3a1n{3%Zp8rYz;x_+XQ3P3U_X{aR@O`@INq37e%}L4G0*JZzhD>f<$|zH z8G|MM_vzOAmPKqA8E3MXNArUxzx&0sp5xpfpBd7iSlAD*z~5P!Fgq=Mg%?FE=ulG% z>Pg>SE)h3y`=A!X7lx}_MRlL!KIHqs0JK6Q@?|Y-H>G@eMLMVaaqqSQe!hSVD7kwA zufOSQ*52(MRsLtPp+umrpAz(6&VKk8GH*>Diev%&1AR=Rn=4w-VbVl%ov>8qxATFt z#;Q!_GUHDDLT5p@L}Gcp6aoJ`{`B9(SH|!;k!5+;Tnw34v41*~>_;nl zUxp(|OZY^h+;wG?8;!MK8)8kh7-5v<-O1n=*VPBPzxj8cL}2G;CRYtt7WC>4z$Ez~2bDi-Fa0nR)jwrP60 zq@?M~O+fnk)0400Wht&NDJqY3nsjX7wymGl9PbCceT=MyQ&Z=p8TWisNL_|(p#s;`=220266^`Pu0vk9(yScG=rh`8<*5MaNi$JU3KgI2%*Np)RXX0 z`v=NzyZPFYT|V&2?C!sRva4j2*FF@!@@;_8k)*u0xLXgr>#Lq3+N_56d%Z7KS)Y02 zLKS^zEaYD&b;QS{+}&-X&gRtKtZgITHAeKpY0JQlzelCOFqT;_jgInBcQWgLlgF9#eYcGvrHsQ`s)P&=M1xKyA3ysPL zThadAqU(9jZ_R1&g;SFPSeJ zXJqeVgcwr>^e%wQCsW4C3w}Bt%g>77%?^#4Wgv_VDR223&Ua5MZHXT$SdKmxA_RpM zWAP^b3N8haoHiE@VA=4VsVf6H@oN8YR5ti$Og(tWI9~*}{A9m7C>-B%cM4vtcS{76 zvY?50&k@J?L#>TKNZ)iHHFzIG%cS|WBC7CR&G>7Dn+*W4K@}}|PCA6I%f7gM2-z!y zd1GCsxMT_wyEvi9S?9`7QW-X8y-p*DUmw61UihvxHo$aE`;#ZntEm>CNHXqJpg5B5 zce%!kl9ZQ$-|T_q6K@r*(K_+nRsWJP_+!v$!2zT4UKz7TbiyMX;}h0IlX#4SC|}ig z-*Tx^vmj#LnwsbPDHH%KA(F+zr6!!XuCZ7T49lSzRqK(jba=VV_SeH&~uNxgRQR$;2CGqSL zEoJpLXm5)$x!*wMRB=TBHAb0;ZQZ=(no8;UNH z!KwVAJl_b>bN(R3Dl~(F<#x`{&D2unUIPSY>GI!RtrYXzT;(FeGXDkwTsBv zg9z47o+WXPv@4&`r<1LNtWuZ&4voD7!ZQXi1IrP7t+vt$ZmbI(vkSFRQwIv8OYL8* zpR4mlaM$z`y6{=5Ggp}NP2eMh4#m$|6!wClvyHK<+a5})#HFQXipslH9xP`9jYhVk zyAY+0=T8?lPEmZk!JW4)4HSy(iQ`l?<4-i73}A#%5K9fGFsn0d2c7d(Hko`eUz3MN zg=j`n$a8^&@_ius)~vj6L7}HcONj`LhX`Z?%D&UjbQ@mL2~@MuQ59Wc=O0rc=QdxAEcn5oqHLqW#x3v7_EiIsGdtEv8)rA(|%o6>ZDw&V_wNlw zfG{tLYQ?bnMT4z>1{zzuc-s8z0(HHlp27O!uQ*Va9jboF08r37aLYMbc2>E`4T+vJ z#|#XAyYA3~s+e80(IdFc&3@Nq3N!%x#>?QxO6A8Uwe|#dzpaffXZUJ}AM2KXog&fDN*ZwS&J=s45QM$$0##>Sm6`r5M6|?VCE+G%8p7{AVJ@<4vI{u@ZG}G zzYml*R)H)|O7+qDi9$@AF8~N34f9oMuPd&N%yr?Y=J?a^)`WLgjII5_Gt^gAu?GbW zrKB{ft3LVtI7hxA(z-G$5~#k88QKMXT2#HNWHKze#A#I?GhBGVO9*`Jto)~9)e+y2 zU-NC$#MM(z4cUY0Q$^^!f<@X@*FX$0aZF*k&FKV}(>@WPTLbz;ED<={uuG6EBOVs$ znv`vHL;dLsXXw(|c9w{_x72HLVm40siXeD;`%Bc5Wh=>EEs32O3yER zD|*)saW@}C`eg8Wn6uE^7sMVRk>7RQXNgz$y)NwDBAWV3X0r9o2N-(-1w)Y64PQij z329`Fz-==+1uYx6bDWXtoo)`$c%Ms>ZTcM4NXp3RmK7OmjKu@F36G zt0r&1-Hg*d&(or4d*Jn$rabgHS0R&|_8F8Gr5C zdaLSBd9Qt#QT=j^IdbSTD#fNRH;D(Uu#G5ZOfuTD0`N)VPSj$j`V0$Qj5$^_qjd0m zUwxJP=AH_>&0NKK4BZ1Y`0J}AVTxZafb<*>n6jZj$IATH?nHKmw=fP>_K;)G4Q)~s zRfYj>BQ=yJAjdhTRvw;kzRP+vG-;8WAe#Ou>+S7X{je~WGcuswFCHs_QadMJ5|*ul zycN>NjdRRgt2#{<_h)uo(l^JyQ$F!nE{k?W9~)VIaoFK7F^;MeS4LN^%GrBI`DfKp zL|eU;(janN-R#f_N2JUYG0ah6PjXu-Hn^+DXYoe<5P58mb2d|nqm(jt%HqOtSN_wz zpIF>hP0@Mxt%u?ZYnM?M@T)fxMDf1A(uhEfVG&+8qrqu|SjyHtgY>i9Qql@;2o-X zz9*_2)_CD!dS*A6<^MT;Y^mL~;}*d4+~=)HuN+{!5+xwpZVzd+viiYmb?zhtiPm^#ujNs5VP0`unQ>oY{qQ**>kVJoc8j% z320-9Wfq+#K=Zu3V!AQ@N%)wU(7;$?m{;^aav;ADWWWmQ$#(FmL`v!Z<`vrNXa}Im z=M^yX!EwiB;U?Ig6Fsc$YQzkuLPn8{3ugGX9{-&CG>%F;+;ZWT7>J=?t13ul)nt9P zJFAgFBJmr@5O>1YLq6!^2AMvif(Y#O7^QHj?yv#7VXnvKq*31##HRN>CU9+4p`xlV z-m(D|J8Y0BE{fecN+9_rrH_b=f!?TsMN)WL<5c;R`gfzFykT+!G`B)PSlxC2dGwjW z&YZEE6Fcb(sCD|o=cB(H{$;FF;B0;`3TaKlZgLFrSCrSj;c-FRz@~s zXa8-j&}*D@UndqbB6ABYjL>SIjRp2!=*7(c*U0n#A7Oodne&+dD6vfS_a6&JQGP5H?`GhC6AgmZ2O0#c4>Sl?A7~J)KF}aoeV{?G`apwV z^?~Fie^V)1TXDI1ozx9I7l|J78EbXAP=aXD>+_%sqCShQ?j8WC_cq4`L(Y?M0eX9) z)};;AhYHO%=hDGCeVSWt;q>XqGrHmWKWUSmbye&{#P%{xls!Oav_<*lSQuYEgtM6&O%>Qc$+ zR6~ah%WeDKAI!KG#90%q6NmR=xwPHt2tz1dpsP9JnbSs zoJf_0j3;sELJ@YLuxuOZJnHoS$(IF|#S)os>#NdXk_y>{_^K`Pv?}R{k_uz!RaQ*l z@ETPkj|i#IYckNABdm5ruNfs3vKvua3f*C+iODwEg}yr;?J(9FH6I_U?3&YBbm|r4Yo^=k1;6>b^ zua=HzsgS22X^n@~FnC=lutFc-Ac@%>JT2OxS6RcpRei4sYn2xT%{DpU)2(Lorr_1` z?DA~DBAPu9+9HD9fhe#=WcUh!74}7SA*L+^m*32@nmsQpQtr`cBBv61#P!SNnZS>_ zLxd}Shujw(yh0mXT(<@u4oywD{LUMNi+9 zh&UGMWe+4+-m|Y4zKe@Nky9y7`q0t$lUBzh8~4wmI-UK{3JU75nsG2=Ze6%~qiAjFG3&-!u_-K;*BICnG;pArC_ObK-^EFduy)NZJ@ljf4g3(v4CdSy#!; z4`c1>ZH_>jv$JQ{GV$DFmOYGnolzfh+gprmW84KSeiL1=ocu>w+l7^m|EtY7!xJ-H z-~9&{3e2*1El|t_}WHBd`o@xm}^&x=uvK)anCsQQJUXk8a)?=4_$cn=B{(0 z_II=*`fM+;@su>f|Y82cl$t;Q63HrKEmgCez>(I0a5{hFP-w+xOoo)@3lJ2112> zdU<$8tX1NWOnb8*jnYqCDHHxI{s-BLz8}5LqSsk8TY)Gl5(PFaby(_PKRBTsy0vBF z#JqckvExbd&xGUAfvFH1bo%~gsgq8mLLPxpH38ETb`O2lv_G0}umF0(A}`9z>7l3; z1r8I1Ht0n6*YQgxLPvPKa;s8TUgiAcL_dLb`ee$3S>!!|rH+`L5#Oy>sdu4Qr^7{P z%c7#1j3A_}{3ZB{NgH&J^`x&JMYPYj7q>k`8|#zlaSLN-C{nT$6!T{J#CAa`q8ZJ1 zMkf(b(9c=MeB0?f)=yxm6KU^_V9ZOAca>MFE9DWSLhg?u)@z+MPh-(G5*5^tlfee) zaw8tI6H6UwwdCF#vl-e!p(`}oWVi?ly-DA0rW1RP|K{xsLP{!Vp*r2iiVG^OMD6u# z$^B6z>1S<+8_|9~O^BZu#eut`M@Qe5Pw8CE zo@4A~eLu1V{hyGz+$M4>a>%u#H-LiMmw*yeACldmD7r65*>yv=7b&U0$(rO~p0=6E zssx2>^*BA=kx{KxWXU#!B5h|snhwf2Oj(3NI!vO_7P1kH5p1ak`-$VK`NeQ^hPvl#cZc-@@3iDNojNu0(aI1CqGCCT4V;1sJt@2TYh6l%)Zh~gd*U#9=QC>sAh3O!>5_}ka0=1--F)If< zG>)M5=Zqq@Ua!i&;$XSY_)Own*B%=uPX(B!-obZ=G1Dr~`*AjNp8MyR_KTuvTJhEL z5V95NM0XPV7I($v83vJ#Tr z0$jz+HIQh9J;Z%AdgRq&F&uImAbwUvDWwXIqb0M!ZE%#%zak3WfT;mdRt5)2U8lbp zC&v9DRI8e)KS)eHi8>#Fg8gFhBjT=n@!*Z#7c1^7Hq^iVzDb*H=r$=hIxzok(N4n26-k#<(gNrL#gNzH zi$@%^O3q=f}%K`tDe% zkPcIzF?ghgQO3VoAf4(!Q>#X=$qeHk2;<0##7ss^QhB#)Vbx& zzm?P#o8K|V{gEbknyf6Ih8CX6)$7I@hm4qDlU*Lc_u+MMJ|$kK+y%2J3*G@H2i2Kr zJBRe21%L6=)Ma17x+07@8ns{Fnc&-=+ss&3fqI0g{`2nUd&D*x7N)*sDAKsUIyENu zM|S&~hK2)5_4LL;k2>IJc>1~DP0CmTr$G_>hIB}&&}*zD?AD*ZCP1Gah3l$r;Hk5L z>=scJ#t0M5mM<=Jo(%8}FFl?m=uz+F&^Q}R!Jl=eb37W{(IQcJMt}7ivb<*a`#aX^ zDEHSH<$94>uZ!!>0AgAz*&EsSox;L5S3dn6Yxc;`=0GFcnw4$MnmqC2hZnxFeft!? zv=(bO7Z5i!ikoJr`drs*U-Si|q)zn8Ir=;CJps!^8CyQ+R#sg_cML)W{_&C}OF4(R zVyMjY?lQmO)axt(Z}m`=$hGsM>uL3#isb%;FDHG0^ja~iOniS5v#%>J-PGCHb_vXM zcD9wz-NfxThzDki96K>vv~ONd<`e#0MR9Z)<466H%5ed_R+Em;5%7%L9!}dD)xVCk zMYwlaRWMj@aWvksf z;hN`V2ihMpy~j%iHLJ;J2g_zm%~V-^yw;H%43@P@9EwWYois3}gTo~9?S9IuMXyeG zBh_J?i5J};jascAjO8Lv=DDXXWip(bH2Iaz&hwYdj0dmtlPA3bE&4N=QX$X5*cG6x zR5>sihC*5$D5CbUBi_xx29gDz_#-79rUACI+WdWKmnfU%Hk#&_1fKw7fA+Ovj(WD^ z2QYDr?SSLxWg=yeVTi_wB&V8ShRfWTZf=>`0yYvcN zSQunRe}0wA^0Djbm2_F@hyv6LS?Yx+JSV^j(snX+eYAB)+T&4Q;-~H8YIMWtUq0NO zZT%b?{d15td*s8VnM-bd)7H&Zw1}(0@rCA1!Ye9S7Xz`%N8jg zH8mbgO86Hj6CeB?^DGv`vD;357o7D-mOFr>$f@F;C^A@sso6iB;0pPMQlbA7G43jH z{T52Hb#Kx7Sl+M3s$d>7K|$Lzeo&7& zeIx!nqZs!hH(0(bR_A^jp;uJ5nqAAkPU0IxwW|-t@XkpR9bz=Z0BBBTzwMrR zBTZAIO27Ue&-I>x*LM;NzBxkMcIO?Z4+ArJyP9?|Zx!F!J^EnR6HZXC@`>JbCiSWrGt;Cy$&=sZT;dGZfC% zetxa{b-tJ$aQ9`cluaht;dgCe+N&*^rZ)`4g@rSTiY$>;;TKU01S{AC>lRC==n8#H zqPT4l(fbP~zTDB#e%aszQ%8HpQLXXnFq>J|D5JLcG7>@%hXxP!iZRfBya|U zrH~g9Q$~xg-GJ9z9#EaNGs$~Rr*BFWcRj?-H!|@yc_1Vs(ziDiC^D+`>I|Vs+m#%o zvo5p3LSRC(y{G^E4w1jyZ3l-vbKf)d%y?M+_X_QvBl?Tq6J@hS&T?XQ>$FN!uL=H_ zL{c|trvxpi`WUs@qTb3^vB!otcE@%dQ^(^1IfJta9^2)xD4Qqi=ZUhz09_#l%_YCR zP~T9q6?zl1eUjA{AbQ&O3cWf@ZzO8QxUGNPbJ>yz_1+Uj+kWmdv%$Xw<`nE)oZx2vv=B=_x_e>s3?0ZG`_O}J^ zQpM};qj88RafkV>tZKxhU^?D}tOhY{kzO}UI|OOV#M}kmdz~xm?i@yY;2TW1oyFHf zm62UUN%BLYCPDK_^%|CkuGxEXnxg<$$0h>f)cVm9Wwep z`Q51CpK!(89Y(?U-RUoNpSksX`vd(|7zpDz48SARrK<7+=&`r5|VS@ z^ga5o{}vh^52j0gf#J8|UL&LC+&oIxTu0PV@P6ua$C$K7$CFy7uXbNhYtLE6WdF!< zpnu|74UWSTGJf?YLk!8;WI?pT847LeGto>`0&jrIpxVf$I|CLrf=d+I^t}U@+8tKG zdlY#QMGC5{ByRJ=OCb+Llei1haecMN1^M$Ba891oPm$8en?Oxvi4mDCDF&B2x{&k+ zkKfENemjo^&7OVe1dI2Q)x6D{Qa_NFtkoGJtHM7bYJjC+uZgTG4_;>>&+eWRwNI~4 zlwEMm^M;XKK4;CP-Bx&zYAY?T_0|C_oR`%4hSzt=>g+so zNl2Y3Eno8=j9JR00&Eu6#<8g=akRERR$HDU3Tz~8fKz1ri4Vof%wE89JJ@1pLfRW~ z{RdXZar5#?;ft>V!BWsPgp86ztdEPL5>Zqnii*U%S=v)0MDDe6pSyHItH^=lg@v0P z4IlQ2llL7T6&7xWv-2o69@h%5k$BaZba>Y@so{v|6)Y5{eJN9lohOd> z4_F;1k9|FE0UY~0VC^E&Os)3UfJ0i}WybuPUgtIi#l6MG^o-G~>`(lmp~3MPH`1!- zK!f9H`!ka=mKX*>I;&bi!9f#ueINN=6hmM4adFKGBbNdfb4%S0PGqnSrc5d7H?Wk` z>9WLBl4&CJk~ILVvyg`!l*kUq1r$X^?%!aYBC3(!UQ0rS+5Ap%(b_Gq>~T7e zI-N(AGW_ie#(%eL-cvk#LxTC;SXLf_rA#%m0}lTKb90nWON!$A+$+81d*CLzs zYOA~mDQiK&`(kFcC3%y@vb~^SLs7}ng0HN%Shia%uZjsbF`^Qbh4rV6olex9EWRh| z>g!hf&R@MY)o^#j)P>S7F;^%?*YJ^`Ef}meQ8-^Z`dh*KS2~3jM|i=i#0p3JxN+w% zYs<2H+GJ?G{#pXVf2Y4N&alWx-Uy%S)noM!A^L4laDvB^82cwsa7KH@ESn{TkEKw3 z7EZwWVU!d@=G~Oe)3=!2C1mFy^N;YczSZon0gTO9UP>#Zc)>F5)$I93oNEBVQqT$W zDfJ$U23Y%uj%P=(kSD$&-j3s1Z{_4EI7QTh{4CLp_Bn`uN!CyuWmRF7p6*h;Wi;&0i5OwB^Wmo)|>CCxR6cvfGS$cK4z9yM3PO%M5ekzCJA_^9u z-F~f)@AB!O#Dqs=2U4Ngrh-%7Xp!g89+^r)JL`_**PPKJcqK zItHorceBJ;p#_o?9v6??VH{ris;l6*X7}CeiD@O;qnYA{r;G$aF~KH#kljJ$8*L)% zX>Db`_KXG2L%T1p)hKtd)RFiyV-}N}D;=N9k?w!66uirjoAs2LjQbH2*J0To65?)! zv|5jC?d~j~bQ*UPV}RxM*YfT9Rl5T* zjo3FlFjW{;B~qcUvqY@G8ofbVmQB(+tTq07@Ct#|1{GP1f0DRgoAdek^Na~wq|yRc zRlC8`w;Hvo3c4O*YRGZkz>EjD{aUSdm?$YGtrl8HTrXSD51`o!L{0e9{vin z`orYbP3w~2WEd{2mGVQW?}$Y^?$++MLhly`7Aym%tO|FePy2fUQHSA778Mm_1wrP5 zd&)os_h~S*^#k;v<2;InZ$)Ja-u5kEsgo^!4tzzfm^4G=Ptl&q3NF=GX!aZkDsc4O zg9VnAcZz(w5qlUYu!3N6b9u_Y;Hs?<+ZN3J{2J-oAss-v7c=d=A6OIx&0>CO zP)h>0pI{7=BcQLrS;$!yPEWLPe|c)9rQfc?&V1Z*)31^_7Xp))%i?>(@zF4iMGj1V z9RWYh3sXqO>0dBnIO`Jr zA7vT-n6u@h{sHUcaaZER7if&wp+J<)3atV+MiSe{$4us$5-e-|N`{@rv6;-Xsr;mt zaiQNlNOTr;SYDAAkxizEb)n{Mnmyl0brJ4&ISlnYwa#|J6tv)%Tf^ zyM+8DJ#q!In#KI=pCej)#prsSMXyd5W%qFBjPy*?*Ndr6r_Ms1g`F{OEL)+GAz8_@ z#FN$)j$Zjun4V&ao|)xpb5-!)t*hkb2YaktsXHwDtq#jbzpfLP zC0V_93<=wk0~ODXeMBqR6^p4Mpm%^_3K&}7XmsWESf$T*SP<81YM=CvP`#j{>3A!KBR(O-w+roE3Iw9Qo*}Zqa zQOKh@*VMRi5A74QKZ^MJut*I&SfSjz{HiY9f&o@-8JbF4zuP41W)z>ho zSG=@^Q#~h4a6c#++SK8Sb~y_B$iM`ZJnTV5Mh%kqUB0dqeq!aZBtnG37yR@+G0c^+ zJR~r0^-T-uZ5Gfj-vGNGTK7EHfBoGi^^%p?D zo?J4(IgbEqD-2)N%SOI}U>Qs_nPe*r-2`1WCP$juBuU17mW3Q|(gdr8|nQO=T{QQ6C$x$tRp zKtr)$y6+9Py|WaHIr5ZfHvd+1b*Q*65FcrdiOtW8hdb4~x00L@xeg(o-)t0xrP}}b zrLdZN>wp`TSl?A7~J)KF}aoeV{?G`apwV^??S#>H`ge o)dv~`s}D2?Rv%~(tUl2H1MBz34{MnorT_o{07*qoM6N<$f&+g`;Q#;t literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_kulllite_01.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_kulllite_01.png new file mode 100644 index 0000000000000000000000000000000000000000..f263ddf5543db48552f18b1f1cc8e4012fdfaa28 GIT binary patch literal 996 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tKUo-U3d6?5KRJDAJt$iw1z zIpCjWu;CiH>k%=bET1zcY~Ee(@O-}DeV>K@w_`{ zjMw!Pl)vUoPkVOk?AMmKI!0Ono>Pgg&e IbxsLQ0PEK*!vFvP literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_kulllite_01_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_kulllite_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..7d3a938016f888f65473bec4e481fcc3afd9d6a3 GIT binary patch literal 491 zcmeAS@N?(olHy`uVBq!ia0vp^DImW9S z6gMk$X@C9q{DhwLd4;A5M)t@1o31KnPO18xb}UF~3-|2nufHz;zU8L)54B@VJ*-cT zXe~YSdC#AmrE?-4Tg0uu{xn_t>5(cMxrhGlXF-C#mzSIg`^3mE!EGRxpmQLiVIxB_ zBS{Qlrl=iu&NzGC z^XH!>=ly+?dhhvmMchsRxoJnUx_i6&-Gj{U9x#@F;4WnU{~OJrXf7}R@Z`mZCDs)O zWNjYs)hWJvP(L55|6tlC2(M17p8msL$a3SaefhT^Tr}N0b=DN~RZ}jN#=bGVekSZx l=hvk*2bf{%F`WB>pXtN)^WJYPs)3Qn;OXk;vd$@?2>_kE)@%R( literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_kulllite_02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_kulllite_02.png new file mode 100644 index 0000000000000000000000000000000000000000..bfed2b797f0365df04c145c26c692a0eadabeab7 GIT binary patch literal 935 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tIlPZ!6KiaBqu9^^dYz{7Iz z>cc<5(~>RfrQWRKU~^o2^Dc8q-B*SmR)S7GEds)dM_f1zN0|c<4jWg?eK;~_rTU)J zbJnWwIs30LaK1p2Qp*euMK!06&QT_D;c)idHR%VJYX&OB%9vNZ=MI)+^5+F+Kn71& KKbLh*2~7Y~QVW#; literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_kulllite_02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_kulllite_02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..3f1671e51103a8af3351ce45c9640f01444f1b51 GIT binary patch literal 458 zcmeAS@N?(olHy`uVBq!ia0vp^DIm}fpCeC<4kzt6O~ z9&vo%x0RV?Z_0F+Fa1_4d;E0ty#Er@rs&;eHv5paI`nj==k=viP7CkbObur>>`t0n zRCUEFuh4G$oN05`z0do{zC-n?s{U!6_tAnI;?&QdU8Z{b?bY;2so(hRvtAhkUNB2qT*d}C^V&Hf3u9L}(6&{s*^>UrGSP#73T44$rjF6*2UngG#Lv4Q{q literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_kulllite_03.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_kulllite_03.png new file mode 100644 index 0000000000000000000000000000000000000000..061119ef498f4075aff8a08864e7c49e83c0775a GIT binary patch literal 1061 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tIgo-U3d6?5KRJLskCDB*T- zzsmdnr%bzbjtENTwnp2|+w92^StGJ@WnA@pMl1cV3_sqwa2N_Y`LqZKD;^nT4n#P} zeQnUb7G-R_``*WiU*Aoh?X&mfnVFB5zx&(TnCH~dDUh_iM#lDgAbe_0)eQ>&;m* zTOet`JcDBKjm2^WCuhx^DZBp1g{tq*eysHSvOLDZ(;SplHg5gCQQZ0u*MP;tH}?5P W>hTZXU8w&N%RY?316*6b9Z;8)Oh6T!GkR>F$Lu&Sw20+ZXGR+8!RjhXE1CNdeEZA zZu3`0M#tjCXQxXhcHuMpDk`h<7WnQnIUD44WB*FtUyMA$$Av7W9oWdyr&^%Xn9M2T z{UCygMnVU7en`2fnHG0W znYpCBW-5E!0o~dSyzyUGmQI^i!G8V7PTw1Rx;3oj4~yKHW1X~Qr_FDfLxC9&=bM}RtZ!rfuW>xF%d`M@T(rGhVsg6a_PJMT{vV60LR$ZQ z+ay$$;2$4;>8;znY1`QEJHJoYUbU+HkJld??cdXS?d8|o3-KQle`r|Kmi}m;>$PhU zXLf3y(>+j~p~Qc#xA*SpP1?2Ln?!6?z4mUY-f%nn>%V_%|9ahM|6JgCCwvlDl%(>b zJ9bkF1S>bJxH@a`;;sAY|5dE{KOvr%6}Ka0ygvwAPgS@w;egE#U~*>gboFyt=akR{ E01X>Z2LJ#7 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_label_6_04.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_label_6_04.png new file mode 100644 index 0000000000000000000000000000000000000000..8a2ae97a580985a105ead341a6a16b75696ee310 GIT binary patch literal 6189 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_label_8_11.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_label_8_11.png new file mode 100644 index 0000000000000000000000000000000000000000..8964410d9019a3fddd64f7e596572a598ae576f5 GIT binary patch literal 58824 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%0A&i-YZo&# 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_label_8_11_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_label_8_11_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..0d2d4045838b05ac123a0ad0258e945e11fd02c4 GIT binary patch literal 12521 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 CdXu66 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_lata_00_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_lata_00_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..1b7aae878a7f6d1c18d508a8300a221a172fd262 GIT binary patch literal 3394 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 WPCBW;e!TvTZs=(nYkkpljQ%g#FskSP literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_lata_02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_lata_02.png new file mode 100644 index 0000000000000000000000000000000000000000..38b63f5139977c13dfd824f2aa37bc47aa7ce29b GIT binary patch literal 4571 zcmc(jX*Ap0yT=_>4Mn4BXhLgf(Fh?`W6_$GP%|~pl$hu7Xwn*MrWDm0a*iU#Qi9Z2 zv(^+r5Ur`^Arw(p@4f5(|M%s6an^nD+t1$nS!?gL_jj%Dem=jr$GRHKj37oD8X9IT zO;rOLnm?ewKLG9d%)!m;{4_MIg<7f)je_$wNJ_EXZlRxd<{WgLg&tS6aa(s>WCQ5F zkN^aJ0{57;futV4o#z%7H|vI%H=0AMm@ePg=AL~J&E(Krl5 zfDf1m{LkQ#&34zUX0L`b9-n+1f*AfZc+j{1_Bdhf2{Kh5WduIaNuv&@lZ2&QOHssP znl*X(r^h*K8bp^FZ&KKv9Z7Y@DA(NZdYP!f0NI$>QA_`U9ou(HL5H*PcDlc`g`?Po zd>*G;++2hf`|fz_p0bC6Y_;zZm^PIVMdxvRvP-}tc6_O@C+`qL%wK(Wx%6q)JsSE0 zb-mKT!Z+0tl4ziUG@gczIO&t z%u_*mQj4|eD~2|v=z+L0fKCAYuOK6iG5uhcP`8 ze*K1{HC|CXA_ZCHFx4v=EC^fjt{j_hS`V!s#FmE^gFdn($V&2jpPozz|APp7#H=VH zDSSUap#3=|B>&6)SU~lDmr~02V}2{g&lITPyFT*WkoU@&9qH>=!!tWhR{7J^W$#yr z7&{FFWS82?dGlb7ZDHS+hkse)cn&#t=d@bsPCV?xq!TD*qszcR<6_Viu)4(fTf1v# z9}eeU-Zr+qAnm)mQ)VP!Cuo24(|EIgvE?VJDKrtCFpW-4@hpE!%V%jR#Mk*`!P{R` zYA@()D#!tQ0M)1YH?0$a2iiW>mVN9C;W+Y*S9AyAZ$J=YHrEMXMJzVfx-L8cBIhb zU=}Y7$Bc$-bGGZ_MQ_+CeAw4DD*Mzkae2GlzgB-B>FO!>Fxev)5`$gq+n}Q=rx7+9 zou;2;51N-(j${wm8QazMH%h%M;;ViLqC`r?b5bb<0i>VRLVlCL1j-<=T|auZJTX%w zFZKJApX7av zJa)Q7>Pkkdm$Q?z8kNGFh{Z1M_fqji+*jM3Cxp>v5{Jh(3xcf9s<)$J&Z5`ngz$ab zO59L=I`9CnPMxGFwZlQ;3Zpl*xIq8nw;|Z!C1>joC~5M~#>si!!8$g$S&YdYC(z?bl3xo`}p{nQ~=BGzjzxNLE?*4 zMpZ${jyFs21%rMckAZLr6nk%H5jywpAS%Y%f~Q|G~YP#w|zr`nnG zpZFL81D~bdIQw#L-Tjo)V$Mq(xe0MOWC>)Wb$z8FDQ)%fFSc0&_IM!nonXg&booJ` ztC@nbjChw_RXW|!rg?5Ym`XIu9X_SRDDhA3IRyIq3?waygbSqm^YQe14ck+7pH5Gu zYK=tJv}+Sh+-eg%vp1b=NOwndu|0m~z9PxDR#Vp>RfF9U(PmkY$hk!3Y{TgA<@F9P zL!lC5Y7#WFL-fdqB_@`r4<%d-p?q=V{oEoDrSS`o^>VrwJ#$D~v1?UU%Nyd0>}1S*ZN1&XQ9e< zIg^rBz6x&U#SzkSP=mi8^Q2A;WthYi$*&%AxGZa03?=!>G`-M~2G=##J$tjS?flMO z$XA#jom&Q?m)1_;cFtm~tg{f{LthvTcL}WTDM9Gi+DJ&$dg@49edZbS(aLFf-@os6 zQb{WzG1?9CvZ$TO79}YRGS`_uw(+MLoR(dR8F#&3Cdc;KcbX&NS z3cD>CbU41gIyw}_=^}6#k`e04VnJ5@`}Jk;dZTU)^UzTz@&)Ja-=s*8a_sG=X&sPw zku`%WtjbVRAEM#N&xflS3%0?xyyUsm1<)%v7M4fTjkluO={E;`s@tLttTmK?uLz6p zIW(Fx86s+1#8yFfhEh3v&F=FfC8S4vP1Moe4pvzTH-6HLl7z1K*Ox&GLAW4S-Y) zK=lN?VTtE()T4H~pT~oN50lwYkqKhbNiS))XR)Bm1loJHvXM}YlGmB`1juQu?U6ep zo-jh00jiy6!%FWmb5l=tgz?ku;YI%CN4Syt`00uGWnYAt%TKpbMD;@sKGnl@k)th* zpu%^_5yV&QqWtI;>vX!~0uE4KdJE{+t_m9(2v7$^Pblt7{q@`uDLP4O+OyWItc2T9 z@G|o2-yk?tI2SCyPu46ip5azq5D_b9W}8~+Qg_ZP7C-lsl<(=^y+YcrL^SzO4mPTn zCnW!-B99FX)i_35+dWcE2OqU^yPHhEw4cL(#;AWu1_!X6vHG3+z=HP$SPiCodN7`? z_^1exB`noxc+};QV(A%2e`)u^k>FAlSv`vykf#V`za!Pdj|SgLR~engG#Kj5q#Gxf z1c(|bM)!XnpWr7BIBg>=ju3YZ3B3g^Rj+#QQcpdRci6H zmhjZbHjb9WRkA6`^A!?|txOo-?Dfou%%wg!P}*o1<8ETniP`v(_whhS=rRW%dPQ9@ zOaQUa5G}*4wk3I;9_*&ndC!#j#pUzVs}~H=0_MP#tXF!MEqKu@sg2#ASabon4=c8s zfUg1)4CPDC3qa-a(xpa7eR+}^_(tlG64%xCNQv>e@*e-@g*P543*QGtqxM{8mCLT7 zy}2x<&+AzQov1#8=|=?f7{j8$WoO-)x%^70=?VUEq(vC{(JZ9Pf4xa|2bL~htaHW6 zbW~4z99b%H_vnho%^_=sr!MeM!#^NQK6o>|riTE5!57|}jC*ID1D;~}TDx6Tc4DC8 zurq`@;RtK3$d!?>0-us7w#T)jB$=%^)LzELR`6DDtJnsrMHF{;`2Lq>lI`b#?mM1h zqSkCafwzqK1MX)2g);5;w>FT7#;^^~2CIy`f#OFg?nfRhoZFW5Ev~G}v61GsG&*+# ztAw(%A0|uc*{0i7i3ELb&>np=dtbhNdgG4*s=t;--(z1oi_2+pT?kGM2i@c7Dav7t zk~&KK*2MVDR4m_0y&zQdq{e8;5I|V>;**Gi(NREhC_3#k~VrC%M8yC}1J%*Sj4(FNx^XC8Zi6w3*6@6|7g1 zhv~N4W+ehp{borH484&m#?IFXdSa`%MDD|QJ6EZ)x*@ZKf8SK%e*xGxZ%Ko_j;~+4 zH%k%7ZyJimxkM{3Ohsu_P7`}+PVZcwL;s(o@P82S|8Gm@;4}{Zm~{Pb lG5#Hj|2HE4zl~0!re|pj@3*qeXPlR`0zmtMfa0#g?}BIv5sBV=u-fVt z!OOe7>pRTMH>bJGH;0MW)72ma(gOhi0I8Oys=+^X_+JoW|Kmp}HVyzlL#3svY!sAt zl)vK3Fc&-=;T+gN3>|!`3qJZz^-eXp!DNG%ZW;^Qujo_(?CENn^;`OAERvShwl^)jEcsF|cbbeYdp{d~ z{%&8x3&B$4+GTzN;6AiTt{kS@ZQAdcT*ttM^XlYY6%hDf%HJZdPRJyBd0m_sFH{l=( z{LZ+XY{f7o>K>{YEWF#38-1+a80&!<%IEm|f}cB?UJ8>w1_`$+h>=&%N?&X)G!hUF z)8}!aRvP(k$QCSxM(C%gR3#2Vm&?M1o;@cpgzBTu1$mH3uU7Qp;Uhhi-4f@ zX`XJ=fdBxEwgWgSXlD^s3)L6GtOG#nP++4Xm~c}_|C242<@*r?zy8%G@stEZp-C7- z&5|t;(F9Fi=i(b0l&7d@)3ir1m)AwQl2P%5?Q7G9VFe0^D>y;NfbfF ztxMRSiCfiIhC=0viT!pl`rr+~g{b7y-9a=A^%*gEU;?A*8PwUtM{t5VlAf92K$aU9 zqTJ;p;`=-hqOAYh$vj1qMnq1*GTS^(9mzY2JLyW2DQ0iq_z>i!1f_W0r6|@N;SlOs zC~98rnv|4uEUb?FUF^3gKF)NNla54!=WR&>{K?6|Q=VLb^8y-4NnhFq=4s-|Nzr0= zcLDR9hsVQJh81s@Ry|ya2nx-I5&=djEDfEyj^L8ScLimpanCBazi$b+sy?FyYoi=D&9A0K#d>LDAk?009|ZUu*^9` z%bVVo!S~ln-m!66;huPDHaRv$RS zQ^cj1dG6hSSNN!uEC{2RQ1^g*lpd4ESebH(LSa+0TE9Ze6IqLz%;!g zah=(k;J}M3o|gk}B}4b8c|OD@TSOA4r4bVopPK!r{9_$}tyc73eh2eep24p^Zk``r zz~=8-9#cLx7vhYmv+Y`#a?KLN;9k1V@Z5pMpcuCl)85!CY&z){hx}?eM zvQB`7+EJkdu?dq*##?C3Q3b+j#le+TZ}Z%33)q3#a}IDE`#VC8wo3PR5b zH}~OF;$Ysh%wCUSmRmQcQrWk#Hlvyh&`C4$e?CSQ>HWL*gRe@swTtbQMEyFe6rlOu>Lm&9n4;hg0 zPnIB5Ge?3Y@=T|iCF+M*{&`pu1=$R#V#7CV(+)obks5EGtFH5R>~sEPZ{rL(k z2B7{DuZ0<{WKk6C&oTTSbB|F7hf1G%o_=Bu0pw?Af;R<{p>IyKxxq&9#1L8Za_4O= zYg`WGk!#wk79_;^cY=7FaxdIU@FcZVeDHy@k&=jUr(UkHd+&)XryR|BChNg&-U{zy zrr1F(A4u{{W!Q3)BOvC~VEx!$*W^u7B{~8xT=|`17A!Kv9QXH{+MbdCx@{Byj3kVx zS{FNc7ajQ8N)~lk&Jah*SiIJA!Jc)CT)i|^jS_6rE1_nae9;Ewzj=aB>Q~ekrK>ca z(?@5|EuG4Sv;B;31T1hX2x<9RIwY^D)jCR7LRjzfA%_oO%z8jb!&aGL_SvmzK0(^i zG%#h^*Zt$ip)(JkS5dX52jPq?UsM>I8{8dO8mKRO{Nf&@CxB`I4H?ntmP@j9PRBJ%?*u@Vt9X_7=RY0!;6j4x65EG+< ztK-qXXX3I2HlK<#8F-TwLzJ3%bd|)kt!{HkJ zlka@BBCt2#wFb;8hHZ>%`1+}D4)B{QEL^8|uE>pbul8VEt2VGjjM(xi*d z5HEXWY=%0FbZnFLFzy}=Cwb-v8!HoLELv6v9{eXm6?E0U<)20jROqcJ6i_z#SZ{H% zm9UKKc&0;AgqVW9YW92y_$*lIa+naP6T#4d$UOfCzIOIBI{0tQ@9gfL6-a{yn9=P{b!XDqcD^UuN2;w*Cm;IgxD`7POz0S*l#dPxfL}I|{KCxI5r$aM0 zmv4{511p67)#Q3vgps>Z*gVfXJExl-h`V{y)UhNB5qUGF7;3v&E|N~aytv&KK%V@18&|Jz+2aFx0B z3G|zBC$8%`Ih7fk+oem7(`O;qixk2qk|H(KFMb5^(@KqFt73gqA*57LD0jW$NV6at z!X|w^Gt^H>Zhx;^dk%HI;!IQM7Sk4w9O-+M9cnTADfuGp+X1Eogs%_*vxGf$w$Lw; z`S#?xKJ6ECOikmf20quTSb7~;mNfRf!9Hm@6y#!~gPOmpkiQt_b_Zz48pEv5Qr%wL zhbJ|`kn<47D__~aK_t+jT)#`5G3;-;MRb4+$`8S)=Itfnfo=;khX!q9Rw#WYAO8IO zEE-;;BRx8x^oxNPszuE0s&=u57xG%k8ed9cGe3e*Q7^6xBI@#(CNxbJqBhdHvd%dS!4YsbbPwHsm=us)O3v|Pq!JH_KGsg;$=61MZElHc$3-x- zeVY^^_1nGDx6#+_WvS9IaHQo%fx(xRsaKS6Inw0woKTGD2p%k&gaSiv-Bd4+nd+{w z1F%KmNzU<9x+q)-`Mi8C@Wwvuf~U9Api1xl<QgL#1sIv~fbazM9 zV$&%C54L^fFmH$&_vI|}_Urbh0^&x>CU`5gZY?j>)#CN86D0rOes+c1OxPx=#Vu-% z9@MT5P7&^h{M}~A-Jb;V&Fx>kn-ICeg5B=5yaKS;Mf$XepaX|XFoW0#c z0<2?`o^)%aF81*A@0?#!G~>I+R*cV}g9vWxQf$8zJ=C&x;=)*pQdMj~=ar{r=j=?v zlYoli4C%PVAm`Z4Qx%P{#@3!f0k+@Wa3Edfh}J&g4Dy5jns7dpd~K=wXoy&~`9wIB zv(m-2;E1cPsFK;=YNFkNC$4LIg}>~D`?-oPZKY6WosF^5oDutEgs)5TR2-4j@ek@W zmCh1CTi3atgyjC_=2-zwnFc|Kj;6Q=EgT@#Dk~!s9AV4GoS;QPc#Wo?b1JVx6qoYJ z)>N|AiO9*wAYN%Y+AYY4LX!eggX6^%B_2%nKDi2Zn7_NO{E4*A$;-1gGYh{O);yjG zAxP|Sdq5l*B9uTW39qvS>gZ{tK81TI2D0^_J=?BZIXQAflb-4ij~X7bw>LL8b4$?a zaFI+?=0Xdh(Rm1jRz>Ve6+vat+c!ELfBJi>3RaopIVtFwiN}<`2>YIB-o~kR=9WBp z4{vI0PS-9=;7zOSH5mLy{>TtYfq>QEepvf65Z?JODlEW zbV1($mWdC0N$U2>hQ=b@ssIKf&5MhR+)&Ej^O=v{^=j-1PJAu+MX&Nv^7Amt@dNmP z%AiDj>8GVc3P5LE&-ZJ?M8J;aIiZH^9^qtY3XAFj0a*+UWrOaf62dMo90#liTl+E) ze2s6)bN~K3Z)>{lcfsX#s+tXqr?+dt0i<*Pfne5TcKf1PB;b{?1=`)^u<=kc{BjeA zG0&s(9#d7Z!KEY}9ASN9L!i&9I_*&S6#Pqn58Nkb1yQ2d3T2$ur;)$Le2p%asC(vY z(~-JKVJAH1aQ{)LXFK8{_*0q5NdzuP^E7(~VHp|-!H-zH-^hdXa7d2_UYgfP4j(h+`nKF&XFI#CcCXCaD`MpP zJ?~dF$~O!HPO9(grSQWDNKZ78W2a^MfHcLxWYW^Zo;73v>cNgZWaqoO75TmJlOvoE z;ohan?%kihYjU@{@XQP}1-4NYcnddKGM&Xn$x-Q#b1NBRD5jtJy_IE?WBbK7aq6F@ z4;jd?f(_fVo6kYAfCz;*PU^|W!aF`4O04VWN7Q|yh#$w~ArHH}S+m+;=6i2>#nbpXx<@&`{L)85J4Yqq@ zj?(|vo;WxxysQR}(LR9L4lS+Mz{-6P!p^Q-Ox5HFn}hscyOJ3Swnp}M$3zg@@xQHS zXb78-~S9Xhs|=xVsp$fu_DKu8aW?AQI69==&(79FtnjU&XtH%NJu%Pu*@M* z2_fe>=eSat62JHK>3e_f-{Zdj|2=+xcze0F*|qEadOc6q;%%)>;M^kI5C{ZrW@=;y zfv_pDeqc~=KDcN;o-NgF;$pG8K0$~t z()f1OP2R)hh96|TW%qM?>1RKj>wT;})3b8$;YjsT(dybtL`dD`<%Xn-t7SIB#r`&0 z%eqQC+r!sv{Q0P!pFZ!4-Pzvp|Hz_sdWr4qcs5O6aL95l6#*G>4$>*^!$9s9G_jSx z@H}3e&GoxMJy~$AASQCxS)n3+x3FryWCtR1&x9A7qA{$Jc1$8Fv#yIikBA&(9?@1K zWgPV}hFzhRQjuHB6P!R{(l1LQZO#7L$u5U$NGS@AB)PRfDf>xF=QsSTYYLd7*Q4)k z9$nv5xDbL*AX?t4-4Xp6D}#;QTBd9dZvScjQ1TgLnUDf_p<1pDtr#rP-g;T_G1DVH? z@>_+(9I*;Nb-#U#Tu-8JW@#lbg-j!}e)&P>j#5kCa5gn0Y`#T62N(QJ#nNj18GhrD z2Vn&dFRN*ZN4%mhHK}lt&X1(($^Wk1m|132nM`&R(Qb=*m0P%d(^UDvG)%JiB*Pcx zA|AFLk#svtMn|jtCRZ4g?PGYq5bW$UEyuv)>NKs;01{4uMB?Eq{~QHa`Do&uW|F@wL!Iyl3`SAk|m7Vzl4>>p6bE7dBkZw zYqHZglt@j^rX3+k?xLVclKz_6lf}4D^t)U61>Y_|_!YP&FKgWlTZ7`p5jUZ@d<3Xs z5w2^L;8;h@IE|XCz3%-9>lUc_C^^6NH$vlz%4ymsLWA=CS>-*KLRF3~?PGsVO{R(c z8q#_+zf+1NxnWlGE-<`^nyeANRNK6Bx2E8o6|~yAKI9di>2~z1;w^=J;bn?DN;u*) zvR$1Zo2gyo3&k(3XS3~L=bo0`p%g$JrJ3@V?;-oAb*nz4auy2Hhj3X+2R7FCc0cH) z9oZE9?K}KpFvH@R5akwmdFQo>?w@@pcBU!XbTHd>l4FU>Eh@T@p>dszQ$m!nV790R z1HQJ)A{#boWtB>Mj!MP$;`d;UCd!3OCu~_QXAS1(IqTAb>uVrF>CCge`@*mjbCLQ= zLHWo+P`_&zL1^e`v$L+2rsFZGpUDm{=@v3&i9*LhJ;xG0ipPYJzi*VwF{CKY+M8?e z){w}4fm!QD_s+HVGsltv7q~`Z6>RE)uUq zK-{A@i+_HMsT$Z3O($q>|AF-Ep%V}bk{mSfYv^$7?ToumV#hu0zR=I!UMG5glMl!m zV*OIvpSVCQs^fEcZ_kj$o&w_-^jZ+bAN*R-biz~D@=PuZ^)UlLY;N~^c?vOag zdWA9%ojl1~qp{ru^X{n5(45kYF5X505-F~n^71%}n}czhuO>BxSi;3YsNFu4!~xH! z;N^_IY+L&q`UDjVP&J$ah6+kyCrM6srnK=RA8?Qf=rbJTaZTEp3%xRu;Pqp1^ zrQat8VMb)!X~Wv<85{nVUSWcZp|i4e--92+grK-+8g`E&2YG1Mh6s~K5bQQR(Ma=X z^kGc%Aqu%O$oZ*d^4B#&aZf^LmN-qfg+iXFl`N*s8N3F0K1V$3;zHVCA(S};6o_6E(>zkHdZKO3PSa-n#g-NZRl zaa3S@;oSw_vZxg>VV#$^)vwLo8Khl~>=$C8_V^K^!X4N#iac2U6@vlCBhI zIc(*_RNCzdv7vdwG6#Dx_R2EvL-WV0a+dc43z4R96FNF#JROP?`(D$_mh5u9UyeyN z^3jl^Xz0Eh%NTQmh*cxRMn@x-zaWDxcb?B66H+)RKBPCJ4qtEF?}_jUC&hhXA1im~ zC<{(1AW$;=`^3W)bm$8dc1Gt<{|i^x2`U#K)WVg2PBV^ao}mR2lA3Zt_YFN=_|#Pg ziPT$pKCe>pRdDT78!mK}d;I`pOsw6CTxTKp+kKclQt*Nem~nn%jXrJkcSyNhm}aej z@)3^YP|8_(Pgm(&&$)c#JRB~|8j9bOyrH^?jlsgsHP~o@x#J|CLN9T|<_o?{_@F=> zL>KQ+o@ugVO&xs5D^@0~m+=Z^S}Of^4rNSSWc_-B@P-@Hd6(CI zS~HE_u2r@-$y#D(3_%`iG+8c}EV3Ixf#N#wp;=Fl_ekFQtd?ssR(4f)aeS{j*e(T< zq$L>E9;$y9KPo?HHeod@Pwe19s}C(+Ax0w8cCMnEx_R1Lzg| z{iun^FaAC3i{i2PhW>m^r{otuCzx9TO4mkJF%KhI@Fl3dHuLOS5 z-h48;$sk*5i%Tb>V8hJ;sBn-=_bVrdTGR zJtGKpREfM+e}miQfEv#+L7+{ZT+iY5(?!p?`F&Mpv`B1 zR!v7o{i->qcaGDJhOY^ZpTX5r-`?Ej92TJ<%*8Xh(>g@+#FQmU>JH$^BBT9amhEB) zdV+6BQ&2WbKZ&^~`r$>Q=u#ec8Cp#_^VuZdRnY*^!Bcko4w<44bJ}se$2&+ID97}M z37!y3GHG<=YMvQu$6PoucNmsKyJn!c%b&HGycC_|9vYjY={*m`F@vXTz z1(EZ1kT{f2?!@nF_gu~S6D1m_rcTW6-luIRl_zmq$JrnDQz1yZ<44qciK z04@@7uRg|Y7J=(7g|G>8kqoUrm)dOgT2B4*3cAv5YxD(7Www8V7UdCZ?)cxOJaD3&zu)@~V3OVR1#eOh>vP+aqZ&PR29@wlOA(>+CQ z;z55*v~IZl_IxRl>A8wo;xXp9no+R$kB}j{&ooNe3hgu^tu+>|`eU+M2Cm;HHmVHI z)8T3mj!+p|eFhJvi9>8BI~QX%+1B~Sp55MD$PO8rBl^bEVi*dPqoLDLaX*y=almn)l10!i3i+BMo!n31mecneWjO@zjpmaE~z=&wAs(QtRoPsl8ei3x{WWX$uEJ%bw~-!5;ldW>y)Tf3$+i;Nq5!m@Z%sC zp!ajynKeq9NF0D+E@jJw1XY}hK6yl?X4wAV65;dV7DQ$S0?PD0(X(q`=|hBg_#3@9 zJ+Ug-Q?s_alg+mQOL0c{uz-dwq1^x#nnfbm^*o-=c=tDwqPCzDRXTws^Cf5 zO7GP*hcmXyrz5mk@iiIvBLv3AfNm}NjV6I<{&l~;96Mcz4`DWec6WO9R z+w<9KE<&Rk%I?z7wD>dpllVSICdtTJlCL1H`laXg;?pVjHUy&!;&irc8s0rppu`2e zh&N2o7%Dl4%8^;h^iT58_2(Xnc8EuwpgcB!Y?$B2ty(cfZ}X?qYB`iu#7Xb7rH40q z5|DlrS5l8ea6f4LLqHRzqOWE&NPZJePx3T;Vj(!pz#us7Vw&i-66xibrAe*M%g<`q zg46gWB+ya$0;>8-;>~}CE6u=XOv{q1fS*jeqlAo#tN>558YgtyvBs){r+~bV63W_* z8aPxqoPGFudqJjrMikN;SdgCNpw~N0Ww8v4(citiVRB}K!kvZdRt>vD_b6@5!ep;Xk_(JWg!$io0h~t76^oa@q=~%vvT^hFPz84v!Yyy4R7uN>t^8~1O0%*&g{-g9?jpM55HC<1{~n) zLI8t4D1R^%GD5)d5>_x5=&d{#SHB1pq&~P13k>0|E&N+dmQFUW8pf~X&-hW6IBT?) zI++Wy!<$N}2|EC38DYQx;W{MUCDKjNm$LU3T4$swfB#xjK07r-vw8C5c3?;!34d8aMA}EkUk7g2%y*PW=4!X;^~yO7N|e6T!~*FqgV@&CAk4H9jHv-ttaI z1+ab0m0X#w7nu+I_*~X;ttsWb!@Va=jb&`E>3bFAc^tjo%x|~nP-N{! z<&u%TUwjqawwqBDjStWLg64B)>};X$5v!heZ!o)gN@QrD@PVPj&z#O+39|`nY6Bna z1yNiiEa({>`T4tJg+#MOeVIOLx^*ImQda1`l)cYmOymSyrfLY| z?W>jba=cs!tz|yIF{duNI5tTB&K^q!ayCP&T)3=mXqhKm|n~MOd>ggobc>8-WZH+-1fyx zv>!3y2;tz|u`f#ZCI#N6{?c$N8tZKo*4EZlHRi=HI3`h-F+@$R#yhE06(5ywY5rM) z<2P>Z74fv>-vmBmxwcWQ?44l;T@)9z0uaUeZ)?j05EGCF9$1G1<({ELe;?n3jQ#`R zS~>N3LV&>j$-aZiIlpCh6t?+CG+O+)dda4rn`12aRh`sD%?fqgTyG}JuUN=3OUN>} z(x{)tFK?jsrcX%#pLjzXj2wR+t<=B=OL0z3qwdY!hIb z?!FX$R3j0H4jEpG0;%V&-|U9S+$L5UX9A_*BEd(t|k5Z;kl@%tA^hp2l6NwS|S}1-LC`CTtVSLB?{$phP@#j>GeJje{gIDCaPL zlDM@D;kMMKW96HhokgWB=g#=7ul3z-J9Fq7Ce7S#K4F(TgQUE=6T;*Zgi|r>kWF`P zk%(hzkgHOuT-jUBeE|>`d{dgDl7yc=u*ho!~VVJ-&lUBDt{xOI&939 zxXSXAcbtZ8S}-%(3)}&%z1F3*(n=Iv(o(3-zSOJp;RpTrBM@bw3(Cu(TuVa)Vq`+M zs?hsb$?P={(3BovOw-o=HCOWL_|ncyOxNKbWO4akw&}Op_>FgyIB=~_e^UN!gT5N+ zsaLT#lKPyXVpZ+>mLDm_f?1I+#M-i`J;DmiwIWGUK-&d&s0sa*g|B(vI^K5Xak=6lxW3j43jZP_WG&7AwtW{D0G7ywsN@?=;&OP{PTOh@^#{)m+99?m~|?-qCDMuxZj zp2p`Ck0+B-o=4~9<{#eV8hvy=q|Td3i^i`z+vmGZ4vTgF^yMahakBq<`aJE9741Vb zej)GTQnxj?M)l_YU-}BD)}-0n4PA*7^Ewk`Y(2Y~$SPv-3O)ES@M>;ybsHT*yNPWL zJ3PMs!mS=$d_Y$@Zpfc`aNDK=grQLip0gC&zz139JC@ue6E?QV4sl~(EK-IR7{X!@ z>s5^DIB^}e@dCmiJ32w5shFoh4l^J|mGJ|T)5lf|n7sHQ;P^!xfQ)gF3I;T~EuD4@ zBwMV&^>eupDxXluA9rcTp(U0(*o^?5&v5pCE4OSt)@Y$z4pg>#kVmCsn}EtmXRwSP z`{4gpZfPNpI4a(ORgnyO5|Ia4_F?}t7EB%rp$d4o1AkcJ02U;5c5PWKdE}wl0pn%) zepI6$SoY7ATT1MVLY_pJ0Mjr)FEsFZt^IGO2+pDa!)lz8KdJgXaBl=O5^tNP($2Wk z5=H}(_7dq$EX#pw{NG9s)1E)cABg{Y=z^?7F^(meQUZal=)n?zrIeXR0D#7i{foi# zOg&8BvzDfMW6;JfHe`(Mu70|1R!@w z-#=A1mr>oGGj`sXj3Hw+O^33FhOPLvlv`uvlX?Z- zZEO6PtsHg|p0sMIfaJN&^)NxF$lXSD3Y#c2ObMvKhl_4pC1|`qcx?qE_MQ1|;SqUs zf>7NWppj4giX=zgOSmu<#vdVUTV4u(ODRa`tvrzHs8lP?kYw(mm&N|7uc8k!+&O^l z{O!o3F(~v1n@>m%s4>DulNyQKi23>cM~Z>vJmCoJg$dUi=QVW@7fhA^+GjjfTlL+_ zDt(n*k0bJQ_gz1hc1x#8{Aof-ZOZQCmOOBf_vSmg9}uc1obv-+qG2m6tMsQ4 z%m0=huu;5`#Pyg(tRnUlH^>pP^c|c3kppXQ_dCrGv@BhGMPxZy-v2VStWpw9F(auV z$h2$JWKYUR>B;Q9V$ai;vkVm5v?tFws#cVqx0FbqT;84yDB<{j35N>Mq~u9VBCLRT z3iKqeg1?i-p^fjiCLf1~0+~opZooVExr*9=mR;K30g^>73J{4Y1mM87N=XHZ61X!E zi+ey#hEjy2)7^}-N>(O@HTAL=M0$EH?oV}JhBbRumN|Frn9JmDz+1yV@76VNWLj9jVf zc0kUQvEh$jvmGnOi?2r}A1Sv^r@A?lYvMs|Wv(n*?)^KpKTj1phpopJL^ICB}pF}LUfZ%w197^%}{$dD)r zZ;{d~n_hR17MO=DW?p_J{#eIMACZ?|`P$uC21MPZk9~EF*C-!#@7#0g>s^Z@Z$waA zwO84X0Vsqr#O<{MMqS?KYi}9y!Y(=m6VbK)L2)Y~mrF-9j4?(qPp2d&5z_MmlL(5O zL-YK=Hu03MAwFjRSOoP?H~!<)|1s?-sUYCoCz5p>xQsr+B#BvoUWi$>1(HsE8O*Hw zg$OD;NJ_Tilr2j9uM*s+z=8gX$36Z7iQqj$5G%q$$L9ws#095E_%uO=fkN0ri%2tA znSYho*eURL%PW5;i9hb6B=G!6gjVKvlitdGdd2z?`eP-mCjFP^XC*LO0qSA&G-sD) z3p#_VX+O|DVEFegCO4GJJ}4uR~gHt@VIC87B~z{o*taiqQn zFwmbh|0eMcUBtf%3)hP_2j|+0vEGg3!Ns-U+b%e5LE$IP)k`0Mb78^aC!Szag+IXP z;0IYcao@m)rN_w0;6V|S34%7MF!<9zhODNNOP~5H>^miX%}-dpW4j3zc=VM$NX=o* zoY>oT5*Zo-rJ#!yLQNWS$RgH_%ZkGq`@)Uxopl}D!K^c$AAr=zeVg|#q+ejNGq#WE zx!G21-;h_{!}PD~rteI0KKLdAE#BNNRyLSHiT@Vt+@1asw>q9fbQLZCnVc5kI(XwF zrJx59V~|$j`$BZXK$Z6~O#<1e!wbcI14lhhfLszadfw_p7YHS_dMnv}Cn@;!R$@L! zS{|VTLWd^=p2z%U@aL?r7F-83{yG359F46W6lpl+DskZ4a;-WqNNd448?Z6~R&x9A z8bnAQaUFOYkJmM;tTdw!koRjr#3Pf} z!{_(9r|dL^J2#ZVkN-!$wXmq0Hd|W-8t+fSyVY$i7;x`RP^UyR?_71ILtB=CPyd_1 z^B&+c{tJR@Vh-vch|W78K{lLeMm=5>(!q>PkG94LHfSwd&=7yaQZC zo&OT~ziSYKc$f~c=$k}4u|v`E{$m|h)KSz|X(*p8a%p}b7Kn^t;Iw{sp3O%udJRAE>eGg9v}-? z(S8AuXm0=2@H|cB7Fk~f)v|gkrJ+xK$Y6B6Voasg_>ulVX61yY$lYzo<$X?2NHAgp-?~tBtbQu5ba&U?8gYhmOfyj~7B1H-i{DC( zUjqazGMxHv%8`5)UCfd17Mm=PkYk(v*w^Af+|u^-W1hqzt{__cYkYYRxHbDvn|1!T z5_DPKF^S^CFs{4~8Te9dRXF=f1a%*PL4Oq3?sMR_&;MLXx==WwM|2J`VAtIo(C&RL z-l#fp!U>6VkYBi{zG!0xS(`hP0PO&9=ZR}JG(lFeOJ z8@1}Lxa9~cKgpqD35Y|HZ7iMmr{Q?fAnEzjZ(F?lStr|6A|n<#AKN2ZS}9`;XURlG zZL32k$Y7Mm3(y@_1rn>-P5fNdR~MIFmOZfQ2gpE>_%o$5>XYVpQ{uYMejKT8~H z>&F^__snr}lOqC>1pyx`>kIf#xg`XZM!%MayAHm_h9K?%iPOZkB)wd%cC7Ic-G9~N$v;V2b3yeyx+^Pi-MO88G`^rvhF`1jAt zUSYdHPnDYQzdBI?VBw|?cM>oPCA61+jmdG4wf7_k0!TA|gYLav9^Ov-8hCyj&+;Ip z=J{7AP~c@BbhufqwsjNaPpkc_B+(Lf{JA7nTGv<>Lq$%wqdhGLhR`3Dctdgj$JznW?sONq1&70eEHbl^AQ0 zkH4lm2k!o2f!llPCRxoKoZbkZhZn$${j=bdQ`64%V&C+tq|nCU5*9%vhvpeyqsd-T zP?E#f4NO$0=W#p52%ED{l%&a>o;S7r|64Z2%|1-}CH&eJ4!&0jF*CL{Dm~;8{eJ+L C9TZvs literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_lata_06_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_lata_06_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..9e1e26597747dce6944d3711460bbe76100577dc GIT binary patch literal 9261 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%0DAo6+L+KE-M}4 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_leos_06.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_leos_06.png new file mode 100644 index 0000000000000000000000000000000000000000..46c1e09fcd08b89cc095b6d59897ac23426a88a8 GIT binary patch literal 3852 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_leos_06_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_leos_06_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..4df8fc8149a1b13a33c21b680812b138bb19d933 GIT binary patch literal 2972 zcmV;N3uE+&P) z&5t8T8ODEA-S*fso{!CDq$ErtB*LNyg>XSpgd)%$kT@YB?FHq`KgWp+a6o%PTF8Mc zQX+^$E*rD6yR+W0J^t#iDh@T}bi3Pjx4S(agrCExr{uS$>gl)Mw?3Zo2(2|cPm4U^3wkkUChkwVN$)+g)o z^71DieptJ_{JG$lk^o+5ek=K-=2rsXndWQwSb+I+@rMO?ruka)@eR29%B-gN>zzB_ z`^(?ndhNAYSt-xDc=@v4>kS+{7at}X_VA2r36#dy#r#Am{H?fF`u%DAaimm&)b+^% z9LI4$?jf285DJbEV>kdHM1;`H@fv4X!z7J#&qb%YRU3I<{)bp$Rtc*3Mb_}s}f{2 zpfp($TxfuX09r7#WEn3$1Qq-Il3;I~RHRI{gm=kB@TF@n}jk(GXPbF-F>cviy(`(rqOV>{47ID{y7 zRc0*bH%Zqp_iNE482_X{Ush2z+_%19Jj)D21s=4DkQF!CN)n9MJgnTaq|JsQs2Eui zLYOQiOT;R{1}qOw*7d9kA)z;4R$a^rZMd0{<--ULAx!a-=@D}#+l7S2d|9Prg-NnJ z8^3b8iJ51aWV&^-oQ#D;6~nM*$qHiG(1j32aFn~}hOGS?@vJ%5PA}a}AWoH){;OuW z6G0fuh7!imghL4ORV86m&}7zzxnI{#f-|_4dzOw(N<;9H0e)!5RDQCC*0X|S`5ZQv z1ZQwJ5woNvD}ZT?EC;R@lO&XsAtW{YQix%a0pGh7PJu1W}EsPE;ePBO!DNU9=#~w@n;3iBcx%{iT&9WftRg@KX_^ELmpd zI{_a&7{L^V;J^qbFfK9*uV4%#@UyyllN*9{n5GKLlBH}KG-M4^WDS#K>DYr#78RYl_`h^2yYko_}nnN|ia0&rL*nnR!63`iz^gt6Y*Sf#>n`37yQeIISjt+OQ)Ux(}dVpua?YT%bbz0+lpbo&h)K zfDtGckqif=x0N-%A`Br!hlCJ?b_2^t2di%-Bo;tED!7SL!Ie5P}Z}#cmB0Fj+2zDLIyvy^{1T z%6pa(JM7y@Z_CR5jS$``erv#-W$TL6Fl!?tbe1P8uI)BL_^~BxxvG6m3}_xE;K0eP zS@0xK{zO_JYq(96!gb&X_X>_cP_I#&X}jY|a8W{>GubxWNu|Tk47H~Lk0%70LBPWS zk0%^of#70FXG$=Pk+rJ2iwT`EL2s+~QLLwb9`J6W*`>v7uH{9L3r7Y)Wm6waGNh7i80sly^6ywP??i!0Ponl~mm0$KclM(Tnp=V zIe$hsyz!e(Y1C+c#d|-C7nNM@X!aVs^IbmrDZWqlk_VqalLx;Bht3n)Uvd8z1@y{= zO$_pE=Hw|!Hs;}a8UF6vkPl7COT=77B$=eT!<>) zgE!kgQ-LS&U;oRM+{$CtObGw?M}#5MA%C($cnSS3 zm*>3fW+5q&M{>3Wo{0*#pB)n+zn}iU)^gPQ5;oq@B_zxa1h7YU|{=Cfx_X%@E zchkO?9iF#&Keu*%b8w(NFNCiyX3c54iQVzazv+;vonNC#ISZGRiwwDP6=a#16pU{8Og=}v8!s!rpXI_4;!R|LY~b9(Y2(~OfH3lqd)ESWRBK-%e-JOI!n4#KQ41BK6wzH&i|{T2 zB1JSLyqm3=O-CgGp&}d-+^xRnMWI2q&=n8E2!G7Diw=o~^g4{YL>++e72yRz5h1)W z$*-N?95l4Lh(!3PVxFb!_b@2?oeZX{Ds{PHCDt(65Ol`3mXsnZQVM*gukfEhgdXF6 zj(Wnh1;7B+MHcG!8YTsiGu3FK+VjdhO9=7$>!*&>hd%t{+Q-Cy&>rGnfZgl*tVpeE zm~0Anj`xK~c$ZlFAAV@9d%d1gD!J&;cH`!{{^BEQ4U>&P3VCwpu829;`egkdV)s8R z3SdW80qn>sfE`%{up_Ggc4QU6j;sRMkyQXYvI<~FRsrnDDu5kX1+XKl0R9WE872Ub Sw-^Ti0000eVyDXpME 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_life03_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_life03_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..2061bbd30b10fe634b315b763c7dc2ac949034f2 GIT binary patch literal 12766 zcmaJ|RYO$K7N!vx8l=0Mp}Pl|p-V!#Q5ux)?(UQZX^`%Yp+g$!R5}&7bAQ0S4-;?u zoU_+nU#%0RuBw2EPKpi(2Zsq(l+%R$TK@O*4gvQ47Knfd2L~(#%Smf{=Kjw0&`$mN z^Fk89jff~qCRJ5fVG07l<6_(!*T)z&C|E>+`G9k_u?=K#$UYaFE26aT>)DtK-I2nl z`vBZ-Z$g4y^iP|Aje(yxzx@1C_hd0~lY4Z2k=r!0wcR}foIShqO@HG}`nUb3?@j5N zq&gvS#?&v=7v+p@pI48Hrl9}%-4kG0Va%ppLMFD#uiRKomC`kjl(~N~+?`v~tPa&} z(OaEH5UCIW(4XHWR((q?U00|c7KTf#ZC8)bY>I$V2v5fyie6t-Pk@iXv$QfcTLnxj zoE#n^j-6XiES6!Bb^;r7F5|f`TLuN8@XAhLXdG7o-pRUuu(aMQMBFU+O%@^y3d_t0 z!UPRx+5x#yqLA3w09Eb{&!z{5yL%Bff0QuG)NF6r$h=)&@r-(p%B{tCr7oubwl4CQ zLF42|ND*&4iRnO{p%?b!uW?-YyGFrs_e`3qzVCKNz|Wr(zx;Y8J00Ge4}7E{-x??p zw%?etRWmPG@Fa9oo#Vpm1)k@Rt))Qqrn~Mp*3<&rg!-UmVp(I$4D9a?Ed^TA0>Xu} zxmKT0#T)CJ=-7hR{&e-K?eVjB%IQ)h*BWk2(EIRQ{Ms{BS@f%Rc*U&0^=@pMI}~o- zQB^Rmv&bZLB6XDo4SW4tckLz;WoK?v>eKt0tz|D8Pg>1PJ{bM?5yhnq3zy55KvlFa ztAtB$cWS}mc1}usfXsQ1QM%8|K;YMiPPWkXEzj#zRJ_8@WV^y*wbYlyElo}BV{L7u zCWVN7+9@^ML^V51W6NT#msK;S`3oS>Q#J<-Z{`L3{AUrUt;O27@ROA&LRiHx3Np(lxyZvT5AA5O!k#+}dD`+EY+<+*#+sizf^mg;9n2JeSGLkNW?gn@qd>__O?+mv^dJYOve;7H{TJXWkV1aRk4E&vaTbNg1?cV;U}h ztr@@U$p~`Vo0-cRZwv;An=mswGcx2Z-{?t%=Lu9WHt1t7JpE>+$Wz>$&a6u_vs*pT z(GjQ+I7=*@f4KDJHMskTK&j$+pO~({@`V2+E?Jp0ISV*YCm9(Oswk|NWcr-)OEwkv zAY6Nq<`4f}Q+=mmt2wmG>yyH=&{w%#Y-Q7Rp|3-``jIkXli|4rU4N5*jHH4Vx&V79 zT^&*nG6cHEhCg&8h}UwD1s6pX>g2nGq@4*QkoDlU#C{LAliOqQ%7tl$Gsez}HpA!7 zl?cyKwB^U#p?=~!7)J~4PGiA0FVA7Ac?(O@$<6E5czRLC5=lXLP8SoB4lwx>A`y9( z*S-;Qv#`P)Dti}++$~NO?&?fR)&lII;nH3qFk8-(RGpPXQ3FbOyR^W81UVzk=A$F= zZ?`Ak;X_zQr{Utm>Sv-2X9W*jmduc!N5sAluEYJAVA+D$>T(9Z`n(UA+0CZ^V``7J z{31j$mX~zyLgR(x(`%{1RNK5SZS~i@HdZSi0)35{SZdXGWnFU_PHfc94Kjz;&ORaX z2in_*w7G;7y4`+)-h{DBKofg%(~D|UWXQjaG`(=vxHbG40g<^vS*rSQ+7w&49)Gju z4bh#CRe|TVy7It37|6KGkA)EL@$n!lwqJd4wSFiq?~nWP%+xDCxqxYFMf?f1=-! zx}0lX)|apN5k)$x4PJy^_oM`r9l4I)0~u`~I{I|kA3C1~of_)Fu}81 z-x2EOQU~v?1qn_05>jYye|Fs>QKvR{!Lk+AR%0__&6r`Jz@! zYoUVL^m-DZ%8h?6>!47)$fteHW^rLI5F6-k_OsHXBX)5#uv5x|LsKf=n*{>`dIlW?|t_##u zZs7rveZ=IUNEU7OlF<@J@vw#M_wRN)$T&9^3SLjnoHYR=$}t7FV6;xNS!=}-62*nR z<~#}~&Yd*{FL#`{QTAKhK*idPV+%Y>XmO9(o2lhq@IjPVKd`Z?r{Gs=FatxF-hLsH z_hkfSNCw~Sp&jm_X7eGz-EOYv1>L(@+RXuax(POJzHhfITa2karGL15>C(F_09}ys z?X0Ro?x3}HJu`RcINAwdbXhxD6qnuc=*uuWfN3`2?8TST zB+KgU!imk+2iJ`$Ot+E|nFE;O%~m#Bz|T&%(2gG0`#9?ESO<)P?PO+Q}uMN|kbDis}CWZNaa^wC;OoR5o1 z*VCO$c^amal!-Oa*ocsQ<*sGG1~qvDw3&Ybc~R;jnzhwEGif&4xf3l!iEU)3zlfw- zlt`z?o-vlePNaNMTPq=MFOPz><&|baKcPm3cNPKASAXCX(DarfB_?xNW07v$v?Je>>L+1UiAulB&C=+`>6A&k; z_SdcP6z@c8L<1#Db3TjhOJozH2ffctgSPrg7Tdz=FBx?y+wj#ZLeXl^3f?wVFT$ZVj3TJ9RxY1`9P4HLdkCQ-Xe+S&KAiI`@NMf;T z^xL6vutcceC^2>UN?OSeXtT7{4C=>5az))_hu9YE@&)JfVSO}0+D4Mmds54l!nHv~ zj*+7immo(BeS#1h&JPwVCsN){)1mb<*}27lf6*qLH=|XYd=?k}L zW+n$}uF)@%)&GQ|H#>v$tDKZH3J#!rVNkfX zmo#(G4<6U@>P6 zv>qifRY-p%jtT%6fAM1bSJoX%KB-DKAs%JaH{V{}T-cXWF2z*avcE&?Z#xJh8S^f= z!`U(f3#-&1pO8ZK^V)e9yf=7qr@rqR=PtAyL}zq>_j+fEk2w6fh=E+#(+j-VVI&N1 zSbE5?*0dTruRgFirsa}em@}L$GIV!j>EjqZ31wj&wdG`saG6cICAU8xhpn&~%P9w= zNeaz4{g{QaJi&fvnNR$a>n@YIMPx|GI4;4axI>DwEE*(QjOiHokUYhl!Kx4duM`)k zvmjCHHfHF}qm1+DGjDXp)o&M+l0Bh#3X2shuta@u-KUga(p|*1hXhfTt=X&KMF4dX z1`!6Zj(qP;tIFY5Q`4PmX%9A&LgQ%EBB>=glMvB&kG9@Xl@)EeiRlHpP(Oi+XIIwf z!w{kQL?Zmv`Ix5N;1>YZg!E_ERLeRmYu+N8hG#&xF1H7~QmAZV$PZMP!d3=0JV`h7 zFigs^IUzCYrc+LM${`ACXDU_fUn~CMKaX^Hi!f({wxSkI9@nB4YeEf@QJ=eG^~Q?a zZV8MB$Unqe|Mb}iZ|cRJ8O*#S(>i4Jc#UJJ>Cr;Z?6c}fGpCi<8ofZzLyXKEtjf=A zWpaZX#i(ZQ0=-OQR2 zxIO6>{zb)($_7uT+mnz|6_H*Q!Nu6wS5L0bojZ=~i8f!+K!X2Z-r0{k_S139%Mg@i z!ge{b*s1cf+>=y%nyGipSGKH=!7KsO50b|X(ZUYxMxjrf@}&!xX8|sj`fPWF1yY%h z0Yi#*0}B(N4q=VmNon$^A+Bue@?*C5zx7T}q{F7zKm5Hs=JQ(y79-*7CTHXRR@fJ@ zCb#Ibdxly%96+3AB80@M$L&Bv+5)Q7)xsK1m2_eW`qla4YaLzseaXhTMq@>*)ufYH zXoMlc&-6Io3TYp(Bz`5(QBknXoLvuH)IQB*8_P-F#&B@OH}$+I8r6} zYB@Li%puv=a?$t5ai6YKtEH13b2K)B&VHU;qKXRu58wvRuD@azlY_UXJ;hPH0WcCx zH95?#Tx9Kl$2XS0uo9m8**$mS!sg@!Zd(TmEVJiLNvX&R3gN=`z8ppF$gtR#GdRGT z%W1MXUIlA`?rflkf89=#x7f(5MD$%RRS?)0~Myu`!9Y7`MJBaap>E#4}{pTDLGf zv8J-7-djdbS~qf1j9LJo1GTtZjP)GZhfWngV@FAZ$jvJ-SRCm;CEo4(3d<+h2?Xwa zwcMn(6+(4a%)WZWGb+A>-2?S#Hojj-Ay4e^1YBG4Ipo^QI~@OAs<~@ykj7)G=~~#N zK?yF>M(LfJ@5R)DPxEsEtF9KHkk||Bn%P&x*^jUDuQMYuQ3DhMc1tZAUm1i+e)_T_ ze?O8p#}QO!_5&e)Z0z>(j;j3qhIqf)UT#7u|)@bxkWDqO8t5 z<(V6y<5ncdD~uT7jPN;yJGpze{oaz(vH_7~xRQiMT1=aDDob zOCKY&zLya^a3T!F!9a&OG?Kx0m0>hIeCs3yQoln0_`EXV^6WFay7-V@>nB_k!Cy-b zYmOGdf@(RJ=R8K|V;#ywl7B9&_JzI0`yPN(=VLrYhT+y|+h6u}Sr6f!^eC;zczOtj z;7k?6fL6Fj|3-)+NO&^oE?h3gz2<_5_&TIKJhl?71x=-cNQQx)e&cJ1fV!D8CHETe zJY(5PQd+zP3Kk(TI@VfdqfzYB%$k36PzKxGi*QFEgRq{B+282r*NwB0uqkED4&ETU^x|(S{=(Knn)}bZd zLn0~j2`OHB{{7FLNcIf3k|W^-a%`XbG8?yY`AcXi6ZFK+t_}%a{>*)1jyS!(=P??1 zXVkAtBIJpi5{yv@sseR{Uih2NX}&l7))|+Ey5C}@=uy}nIl!h-y_40hPiz$ z+gTzJI)?J3zh$7W>pmL`WvZz-j^pQIa#iueqy%@ zy0nD=abr8%?1@ot8gi#m#8CqI+xv4@rXRUww)Y%mD*I~TVp48@(ljvmkc%Rq^(Jg% z2FuZj(6{ToO%(`~$V3ZJDfMOYh&Eo=^GKNlS6=3`mcDb7iu=cZH#6Uf<}KC~3$o-?-m^pCxf#-wpM*z2Eu=ndG^E=gg}0rISOA6g$EY_eVA_cg5y zo^Ik|&qn1B)$J_xdfzREd%-|ico(}|Lm1djsC1_}2KaDwL(7=TEqrPY-L24C)n;L| zIr%M{8a!ZW_LW`8C_k=~Wrhf(!xd zd`FA>Z|D}`sce?jP?HJp{H7jktnUPMDpO+08|&nqrUb0Ae)8Te@-8ks22PQKGYZ{~ zy2+vpN|GK0_Zm>IJZ$MQx24IA#&$gxv!_nU?Q0iya5?_9NhVsXlf31Ql%+B=vyWB) z_GrlcWfl~gD|~aw`Arpv4L{UcI?|xCtR#Mvl2=Gr>$HDrs(}KnzA%?y`4St?7|M7mW6KP0GG#1UF zO+5ZLI(k*hLi)$wZ7hFW=^dyQN^OVKmfyH9Vcr1+LZrO>n#CbA>K&*Uvh6JL^GWrKp1 zKa^iqN9|QTMg~o)QLgrVw(7_&+U8ip+_feDVrlyoIFiZ3G=JF06RU19@hJsI(NlcO zuq+1O?!lH}ep>R%4+Tr-3k*Kg%$LRjtY4Y$Q_T!R+d~@9U8=iSYYhD)mB9T@P}0FI z(dN~mRK8r=cid&?@ICoM(NVL>5kODaIwq<|<~8!K7~8Ogsczu_m183xsFAzM{F%*! zR~}uqlWq;Vniz=^3vZ}<;OmBbnC8jBy5Dm9pAD;j0&j#6z1^0xH)H{r4AlsOHhj3X zAMp4WT%dzh_`15hKJ22{+`fFBHRJq6D3!PTmjG*`6fdC35`w&;w>6F!t++%#CfPN>|RBr%aHlltz zhM3=#X`aXVlIfbW26Gm};Esml0besGv^&MwnTqIh{@W$Lv9a; z*5R>;U~tJCv<5@o_>V;kj`YTbe>q2Dt&Y%pG>aw%ROt<2vBB33(#dI0G2>aqxPO>; ztQktOtOjlmq!hyemt-dFmM*%SS?Vyjg(+~+^y9>LRXwNy&HFpp>{Y{^djR6mcm(!& z7wCX$oLIbw@Cv>9M{o-UOSq>l%t1E=?=U*3&Y>_5dg3S`qIu9Yuw}@_1;cymCKuZo z$K(DQeZg=~C~N0$zj=CM*+SOSQ>T{Yg`ve$Bfc)G8$E>rZ?uogbc$ZXK=kNl=?}a# z(TgvNp@S^ZAU`i^h3;4L2Q#96+_tY8#^-D>NRzJ+C} zI7ev{`2OVU2w7n-sM9!?ZD1p_krs-4?C@&v54oU)lr`<`N3~uu6R0Vv64Q%j;@S}G z9rsi3>&i`kWFwcJNuW6^nU?dkJc-(G+iVr;YQ&%Z2j5Am*GD`R=1H&qQT#y^7KvFh zsegSJBKLQ*?J`$>ylrS_2OOKbO9+kY=OxLAvVRJE(Lm`)WC!sk7TXD-zlRdn=*9Qi zxLE08&W?*91`bdf{rzEj-lqJY==X1suyQ6=LdI0AJyYC6abZ}# zgO9YHOcA1sXbjqEiWbJc%$p9scmjvD*Sa+pvL_6COa(D@o=f}ThEmdI=x z4D<&ROGa6OEZ}9MTuxJ5$-Y@leylkLpL+L7EuvIE;{fFc6#YwC~F$) z*ZYN}Vs1q!^5>8|l{R&tb~97T=UOfTWyXnv*DwdY-`e0TCNA&>$f~~UOpR9Y!`~k+T zb{~UJEVA>;%O#U$Y-yP>ccikkES2u%TK+IuVi&^%7;wffk`$UWcm8MW$GCkhU~;s6 zGP7}%?>jiT;?l0acn~mMWE`-sgHcw6osQ{+DBO~ZHeFJ-doBav*b2iH3Ax)rnl_Ki z)W3NW4vf^!-QIhRWz=73PbOD<1V7uDJ%oD)g(}T19er_{Mu2F~*v`j){NdRepVfOg zW&Zws(eZ$lZnCKBZ>44b8MRhB(Qu;~+aej3c>#g_=7W2Owb$uIYR6Plk(?#*$HCC~ z6MOX{R=Fg(sdO=WRd*!#wCT$WWr}Hdw(HaD7F@2aJ&ACmULb#lhvu_ZX;1YtigEd~ z^S0XnnvSSj^fGWEC@a;Xevq5XZv;L=;#jWDcfCz{Av~&J<(bW@K)f! zY;0ZBQO}I4p>|tyYeJzyuXm;?g|Ab^IS1QIq#Kkx*rp{M;PtEz5n%5kAE&I6L(!yj zA+rvaYabW|el1a~=_Nhnj>LI!Dr^QT5E5hU+QPr5IsZwMHF5F9>ti&SZ%R^qFzd0&2c97~xd_+3oVjLg*cKVt zPe?o#vBffquRM2m+HiX453U47`zKX1K~A|{CjT0D1p zj)wJgyg>#Z(FniQF>fYou$FtWi}qMf$r@;vSx9pgH=~dwJ=R#Ki(YJa9Ss)iK(}Tt zFCHsd5;(^HrWcT1ZN&V%w_IWUlJ)jp>r?DLpSX!S9Z`-swCwsXV;O-NEI-rtj`=L7 z5kP~^Wj@l>jY9PSc!VRXhGQ6HMm1e+eebiO#0}%tM0_Gc>PeWNhP(N4@m$CzXoOGi zpkqV+LZ~umWc@v=h8%q|QKy_WKd(!9VeMHz5X8cWeR;<;pIhXh?9BLMz8txFoL_1? z<%Vw6C;4^qsRKAuUT?=_K}hh7lNR;ju%>E#gXkMK>tCpW{Hmk#T5=wbvgb}-GbTCk z%NfB$t9Sk=e{7iy>Bq06LUg=}?wmOuzT(yHjHJyrTL>6AoGoiTyVHs|hP4Pl4guOt zZ7R9v4Zu9BE~U?O6Mm79;nnD_K>&*!jTjf<1flOzDielYM=Em032oqevcTXr4ZDF} z>vqW`$|15swSESS&WAS9#BZ{$iDo0IH5S$!TO8IqupDJNT(bX#cjCpp9uAFuH$VPf z!e8yGC&7dUUE?4rIEG|+#ttC2KrSTBeVP5t!zU95Po6OBhObp(%f{`S@YiR9sPPeQ z5H_z63Ny>!XVa5&%tU}I{f6jeN4?Ttp0beaIn1< zC(FcG`EgX>gU)+bO@I2S6(L7&+`o~-%AW$iK1AH~N->oiM)D`-NgIA?7x8FFVl ztnbbo`t0T^@O@jI3s(@6hpH&KLO3=A<@k;m z#;xV^gJWn2`*?c9`q~eWA zJ`#U(q!&r%oUqIT>(I5*OXB-rHnwbhP$!lStPrIdYv^o-WtpPQ4TXh-4~z| zJL6Ke;b+&GS=4t->gRi2vfcd9=iqJHcg&*|!gC5F^gO!eCT8#c@;c8_!@%u_Z+j~8 zlOCytql%+KEv&xuz6$JuNL7pM8^i@Cf!SlrvVf@}<8XQUSolp?z9pe2thbWbl-RAc zdQHd%OX5)UF(~~e8}-CC70>(bg2>k=$70;q)gpN-{}LyKYq9;Qv2LL|5hXd3fgt?w zaed|Z0%QIU|C+B>UzjV)8gCUD`56;gFjkkD`hD?uV zn>3h{lEHd|pbe^tFd1S^bb*ivYSjI(xC0>m8d2KNJ zl5)t#VmqJNN{3G;glT8lv05ost{XrY~Ac%)Twa9YV}dqU3~9%E78pcWueel(0SNaLj*A&t33!r&os}6nGVW2_Js9vw(6U zKl0Qj*d2nPZlrZ)A1HQ58t5|d%^$3-z#VMk6m7MI&g`O~mP3HwEip`%oZERT)MV46 z^^S*lGRFaD<(^E@lkE?oDU6bP*oh~Y+%(+MRMGvES&_^|3=#UIoaK3(QC%~+ zz6W3)-e>#`TH#_No5C16dI zVmG-WOHM@#qKd5vhNa1V`0WkQ1glNuRJrqF~A3 zHx5ttaETD1wFq8O;@0GL9iOGR7{PatQDEo`Y+zv*^!}@#5Ug(=9a|}e!9VNr%~E49 zRMY*`bbbl~p&WlsZqAv54LSU~!zl|ut(GC6O@IxzTzS5;QR~wv_^I)zZ7mzHKblSN zU}Y{W{~~NBe}xtt(gqB2sAP9OqUTI1kUeCOYH?R}hEY=ZdiSukIz|j~JOSDK? z&5e4Ylz+M|M4M4&{yj)Soh#)shUA=R2GK6!Q}*3cvs9=RFFC-^K23bYXSv2T3!TtF z#p7hgH=#5vE+%ZRlB`^WJbBosCrS-OxJf1SQ_A!2A6Rv?-E0NL5*W&rc~H^C121`u z+!YP3>oGC}xi@1n0pudCHG(z?yrw8;h-eS=Er7j2z-r&EShZMG95rl2279+={0GBd zxWQo(JWNmic#6GM%7h4Jg@)r?@H_U61R=?&YNDMDYufmiu1?r*nB z%O5Cr&A~lbQCLxQCn5lCNW!CD>f49$B*n&Phmhcu4TUj%@2sM&X(41}_zjiO9n3FI z^QyD?SS96q&Vgp==-K#p_}f9o($eo+Jl?s}bKpt3{EA0@B3TpyZIfE^F@2I8tQjMu zmu7ggi(Sr21+fEmpLu$&sB3{UA9%lGmw*2Q6dNd1a)%|+*wa3EyalC1$1Op2JI%G0 z6e6y7;*R<&5+z|m+G8@6GtaGh5fJ^6){6=&l|NV`4%UqfPZ)aHL4(xsWxpE3!0!p@ zHMC-yk+ifR5TKV_Os!!Dq}<9EV{F#a+$89mWRmm-j!jI--b$dZIoY`C$Xe1;*ksYY z3Dn(UVx(y^YZ0bhq>E7>!|S(0Je~4k{trV(^q(IGU(w1iy;u}D$iwcSv(#k6`FXJp z&>Lq2Q2UPgdqZt=lE@jZB+b`Y@ohbUzN(l-U95 z`CnJ`+Zr^giGIk3tsJJbH!nDknfdR$8Dv+!%&5JlFFZY2&@v*v>J6vUNk1mdjQYa& zXk`@-xI7VQg#{zwCXde^W$&=QH;y^Hi;yeL4G!Kzdh1KbA5uPQU9GNye9tQk5Qb6k zg?uvC=%ad9I;{|4tmka{jwEM@uxde`p3cE(h)%MRyOgjW70rxob%cuY{UMl$(+lTF zp+xdw&GoF8DuvlBPmli40PpQQ_6C#Z);6><=s6>!r|@>zxZC`Vn!8_rvP(D{w9GI_Vr1=_x!Sxfq?3I`+$6 z{WM4t%^WPGs_rsKHG*A|+Be&Mm&KF5Z_|eQW4kauC)-^nb~4JsH18Yv98GxVRU`f3 z2jyR<+}p*KQI)j75JXQY0E60%HA&7n{G*mh{SWlj{k^UhU$mrOleBkV+H zoQ94=F~$r!h6S^WvY3+Z(uuWnUYiTzjuQ&aMH1Qge5w3)J|{(NQOQyTL4p@4T09L$gF zvNdCW!%bKpv=Ol{DaNU@pK&UYUeBIegZ0q`>xOd_!XNO3r6kqyYNi&C~o`c zd3oTpBIF6~W!fK%xM8Iz*Ss8J^Rn`iMw(UPW9Nf|w5Wl9WB4{(CI>Som zNeUAKoqzx~{h}iRo;4~Dp*!K>d(uNk-HfkZt(E}4{qSW$&n&BF$(7>2jyDvQuE*9u zsE%lEX3}z=4TKr$mt2D@ZRn-_y}PMcM}2<(kOGht=M2=<1H;C4e;l+B0Y7F5MHYuK z!=4Qzm~Q0=q%0Jq^Vz#A68F`T{7bl7Up%|yA2rjQ$ECQTuN%<=rGgTi@FSsFG^HB4H1^--YZxq-;%3x>adG(ddDQfP~RvO$Uy7dwaH4^3%CAv-)KH z^nG?~X)e{HZ(~EoGOJ%lGT+(*0L%mQsFP3Zl!NzQ4QGan2rQ&jcP^B9iVKk{-$&t( z^DOoP84x6uT)U!RHf}e-gVv5~kZP`oxao7Vq-t*|yE+}$z(y)9;shHtY77rOA$L@q zzudlQG3c5@38CF9vEP8+poCC87A!1}Oj!0D@LgiE5ANefz<2xdEa;)!Ml6d`KPYM< z1NAKHD)SzGNM-Msb7ZVOw$Q}Fc*ep9_mJz@G^)Ds&p^z^m3_juBogcVeQR~+;BoON zzHfZdfBsbXTorOXQ0_hijW7^@Eb39%wlp-EGY%gKdHmRn+YhF3yfm?C$+espC6z3T zgJ;&T(b|4T=C%(R8yt*F&dWKsg|`ve3Wtv=aWLbuAd@r{@-g45+QfE|KrUFs)I1qkk|m9D%g7)aA1(CT&;|0@P7bP4SQ(- literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d07.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d07.png new file mode 100644 index 0000000000000000000000000000000000000000..cd0165bbe7bfac9a9e4cd8a5f589e65384c89fa7 GIT binary patch literal 16043 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 wUrW7$!$@Ucm^}YO*!q8o{=f0H0op7Cga7~l literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d07_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d07_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..6e2fcd4cc477d856f18a0d84cb1d3473cb358b27 GIT binary patch literal 4278 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 F{s)G?KU)9* literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d08.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d08.png new file mode 100644 index 0000000000000000000000000000000000000000..cd0165bbe7bfac9a9e4cd8a5f589e65384c89fa7 GIT binary patch literal 16043 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 wUrW7$!$@Ucm^}YO*!q8o{=f0H0op7Cga7~l literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d08_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d08_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..6e2fcd4cc477d856f18a0d84cb1d3473cb358b27 GIT binary patch literal 4278 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 F{s)G?KU)9* literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d09.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d09.png new file mode 100644 index 0000000000000000000000000000000000000000..cd0165bbe7bfac9a9e4cd8a5f589e65384c89fa7 GIT binary patch literal 16043 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 wUrW7$!$@Ucm^}YO*!q8o{=f0H0op7Cga7~l literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d09_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d09_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..6e2fcd4cc477d856f18a0d84cb1d3473cb358b27 GIT binary patch literal 4278 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 F{s)G?KU)9* literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d10.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d10.png new file mode 100644 index 0000000000000000000000000000000000000000..c0c555e55f6a1c567789e2e249cac3b9e7f5d2e6 GIT binary patch literal 16063 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 HJotYA=P_q& literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d11.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d11.png new file mode 100644 index 0000000000000000000000000000000000000000..e333b05cd5a78822dcb387003efa54eec4879528 GIT binary patch literal 16155 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 e-gnhM+*vGKi literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d12_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_line3d12_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..25f7cd5efb572b44a9d48e4b6b3708838ae0cd81 GIT binary patch literal 4301 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_1.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_1.png new file mode 100644 index 0000000000000000000000000000000000000000..a4bb2f6c74560448e02c8c2f2f97600c9be71ea9 GIT binary patch literal 1780 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_rj>o-U3d6?5L+yS~A3k0in#H|-!@Y#Pa(}$NX9EO5UJ}m;mibrrU zH=1`ANVI*_o^yJ(3&(R+r;bj6B&C)a9Exh_%=%ZN6`MXjUaa^2eB_?cmgEY%lV>|E zWLmMQUH(6L@BY)pWy||NJQB{DGv{z1Zga8QhD-FuZ8r;^=KtDl!4>B@)?Z)!U$t#B zkoC|7mj|(hz`rZnA1uPxKd_x+ap?5ZM^a*Y7~2=)3ngrZpjf!kyuUz#?K;P^2lp%w zz5e>@)d89N*6tk370^Qwr@!1?Ui_)*d-GShq|TQ8`#-@$2hn5V#!h9K|1AIS?mt@p z`eQWzzI3(ypA{RgF7?U36Ui%|d}6NYq1(%f_r}HV;{99m%zD0X#n)@^mATRjuW`6v z_RZb-zCOYE{;UtD52lnpnd!ULeudutdp{pkzq=Km=md=1A1f0j%F2Fj-@VT!D*D{R zdC|+t_vSUr9sg5(?fJip{*A{APfaYSXO7C-x>_?%T`u~_m*a(MzmxBt^GiHkZvWfr zwstP>QNFPLBos~GUJ6<*?7ZXd{-Q;#@4;f_7G(iwo_Yh!Y3&C49ADK+)y?Pl&wc*BmIsbp zq4Y<7x%j8wEksY-iQul1Up|*1iu{zyGVS^x|grm}}d9KjkT(_q!-J zUAS&%#{2xcCq;Mce_plsp4pnrncLsDCrZ4Ry_*~G_-qx&wd9&n#&zkMHEns;2L>T+D ztL}c!>u=tOm@b?r+o~tOL1w~o{tAU>PlIRtvxvQVQ{S=ud%=ng&r92b9&cQI-`?%e zvAOOgHB6xLDgJ|<_4;R~Cu8?iJTC2N`EI20Nl9r>cd&MaEJ*tP;{{Wef37>cy;tzp z)sG@>hw?xFn(*96$nM;P6TuRk^64H=G+lnM+*|ul-Q`E{Mc)tznxzf zdNTZhsLKx-e)(B`=Zod@Z|)2^;wK#)eAdrv&bbuJldtw#8%OS~wQ65mtWbWf%<}wN z*0W+CbxupZTXXDu=ZBMF+n40e{A#oJ$I;Z^z6-7%^>u%F^N!x+-U=JeAKPwiE^Z1x ze<4;kYtHS8)48l^zIkumr&%wayL{W{8T#d((Z9Fe+-vQ_`mbd2_4}V*W_oV;{P%OUKO5Amx6HVXw;CW=z>%-uP5k{*&3Xggiig13jKR~@&t;uc GLK6U`g9xqw literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_10.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_10.png new file mode 100644 index 0000000000000000000000000000000000000000..4219b2a93c372401b8e78e1a5903ca9da6f3883c GIT binary patch literal 2474 zcmc(hXH?T!9){78A;D3jC`u=wzz_s<=p~s6A_j;QhZaI{04br@03nRyUl9?)*^Hnd zAVe&*ASECoVL^ftiZp3L41}hJP$UonWYOK(o=#l&`LeO{p5I}^T=jEa~TI0AL%r=Rh6x#OrTO8stedtt$-C~NA# zqvKA|S>SijXr6M0T(41Q^`3K!+X6xSE@P1mRqWGw5Y+ZB5jML;Bqh&Zh9GbM&rA#n zw+xz^B#`(E2m~Uu=q(ru=t6){GnMgXsu9-7aL1j9*VJb}H8}0ukK)dfEL?6R9z=qq{+yN> z8Qz!)G&pyu>45T=Bh>&qU7BTz1j_&oV}|u?W^>v3x&6p>jj2V}QUE%B_yIweHK%@p z`4TN@r{KWLRtXN0+Wo<2Nr68fp9eUPXo~ z6?7vk-GaGGE(Lzr4x(=73Al&i zv~WHL{k4*=%mgIHwg*~?*HV#V4yN4v)_}gv{2t$B;VKgsu5b>N8$IIOXK(SCSho_Y zWDO!kFYPz)Q3fRTZg&ua{UYo#GCcjK2t&N5XTzTXiz-Kz!YR-kii-xxe>BV&39_pb za!%*HmN#!M*Q~p+W@dZ^vfY9Iae08-^x)aby^qS6r`Ct$)B#hp$#~B*QANxvk*3^A zi(Iv=`uCK2hseZ2{VQN;R-Ub^h*eKqZ$X3D#MSZB1{;oOMlS*T;w(Lr+E7TuRb5Mi zHO3Z2J}DSy$S0@*r3RR2AuYcR|DDc)T$3)9^#I-q!F6vOsUEyF0IaPt(_?%H?@&SSFM{t%wFrYE ze75SlPZA$hgD<)kq^M}jpCaGKyen1%jP%*3YBWdCpab4|C+Se&0_#m6+Skr9$sbvN zFBLnOINTnuC~-;oOOE7xcnk3#rD!iE##O;=Fa10c)lI5F1rRN*Z?|i&#abZii{JXX zlUQ@7lsKp4Zws1ll^f^&mqfkknF zOBhkFfxQe_J=BuD9^s;JHB+HRS^G5)&K7RPid9})&nxeTG<;BA>kS04;XtM)hBtc< z>3qw|uV$iWYEDCx6YWH9V1l5@V9ztWE(f9Uix>~74fgE*1S%N%PsNmdNJ8>^ONFjM zNIr!A&5i;70usjSC9ZvFHg30~r}x_VPRTc9t6iX_U5q7HHDlQNLC9E5DyY$wE&ogVcRF$(>iKe?PC_|#9W<72n!M%> zRHig6D}LN4dCTYWlVSex>07%DVh`dpJKNlnx~@@ zGc*ta^1+mZ5yLvlr5IXd_G&3u-|9cyYuvT~$0{5`X3X+Oz5ZNciQ6v|%#T%fi0Dnh zY57Vm**thiq(DYZ@dy&p@I9FcWbC0bD9H6?N^W(mxFoq&BL; z=6ql^t>bMeLqNvM+DCQNk8CI)+_7)sG8|ey7mldBuf~zyxXHT5g)G3g-Hh4x!R6sy zwgw$Wc+;U-(fvV4w~oFkG1)JYq1c+{k-|KxPBOF(HS=)C3O4xa827=Pn0%dt9Q#z%+)qQ%Zm(zw~*Tyj)uIwdJ(T-7(W!O1__)MC1-B4TY z$yv9G#Zi%eNb244!JI|s1;Pk#1B>#uCPUwbp4nGkhU(G{n>yLFULyC9K0NyN`lKr{ zWM=h9?=Mo(5j65qL)i&!bmkyoFK6+=&lVxoRq+B$U`%${IMuo(m+pY;^*$;EYO5Y=D$KB zapro~SO2(<9E6)4B0piq9(~S6QJVfo*Y;hLD4@o9U;9?C24*A^=wSh3>k1hvd!bwb zzM`m{EW-x}+D=cSa<8*~-0AYD-%|og!5BxW4)g5{E56I|6FpA7L?#5Mlz)rv|F+>LBg@jsRc#oP Roj;fu%JTe~3Z(aM{{S1Tf(ZZs literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_10_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_10_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..5d40efa060127f3c1e31f8ab171bbe4358388da5 GIT binary patch literal 3361 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_16.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_16.png new file mode 100644 index 0000000000000000000000000000000000000000..4f0e4379d1fab95aaa2bfae1cac967ff71eb5cb8 GIT binary patch literal 1899 zcmbtVeLT~79A9;@^0<@oxY;!17M`_KFJ`F@_>pU?Xfz1x|nwp?#H1OicW zbRg`7Ko+f=ebB`-$QVKw1%W7UbR=wZ4dwN>wZx@5K(_C>`eu6i@aytrruuQQG4PG< zy*EF!*_QpWu4E7=09I&Gg0l8+u z7tjsCX;3g}uBVfg(6&xddaDKAO{FlYWjoZ(cy8aPcDy-`ToqUk^)i2D8=!|IM=ivT zC-F^kZs8eE;)MLt1o^i%W58x19%ngQRx0Kj!QLbI;{q5+U$HRjad83@xd;w{bicf-Uz6}s8G-rm`}mN1dQ z&=Nd!RVPmsVk-K7(vL?|BG`*C{9Cr*U>JWWKf@QrZW_MRZNsUz`sG*^t)}NlKC3QI zuaVZlFl~8Yj<|Lno2(dVXGmW1QzxxDB_zA$twusa(XQjoJ1Cw~M)PrdwHvo?ZuCwMPnFu*B-9xf5k7tS{JI z&LV`WuUZqD{ApOgr#wEmAGJBYepB(bkKx`qqPM27^-z`3a`wJZ=XeHCvFD>0On6DR zR#?CyE?GaL1OK=YddsUXs-ga}6{t4-D-UvJ@y1`BfGvL}AgQx?{AHz_UZcvngo-Rb z!Jlr_nh_IU1MZNCP}Pidb+!VX*Vk9TOtGtFNc=f1@Ee=eC7WQc%{82E8o8_+#%5_y z3NVFbMk$)$S=xYxC?+#)m&UGPcl|?(!jn!WO*bdO z$>Y5_X2sb}7>@vsWPRciCR2qvtf+hM_i&|T>1xDXXB&Nr`-$%qxG?=e8Es$$E+|tJ zJ+_V=un3A>o0pMd)m`HegZ5{u8D2?_TC^t+RxiICLWJ%FPYn-<%0HH*xIBV>R zGN5yz2JCpyC&dqr@x1khCkc(w?lCFKg?5U!=N%*)8sJ{iJFa4XmQVF_OtnD#kbE{z z+kFa~O!r-uUzl)vE!A4t4bgV3LOx#NDrz~K0aC3|hKd2poYo{!;1OoLYkRddF4y3Y zeK(Ca6cRG3lqFlt4Z4!}s-lcJ2H^BnE|f9js6||csHGq*lh^-bCkNfd7!UOmAI3`@ zU%uaZnd(}SLhW?qY6V;<6Y=F1ndLNQ!3O%2{QhK+e^^HN3rofQct)m-lf^!Y$+x1i zUNCeywf*-RJ>PPs8|ty?O77~!`M2ha>OW6q|CjYUmA+MP(zTIKD`t);#BsYbAshew GnZE(ejWh!Q literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_16_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_16_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..db6b974b9d2102aaedd9d647cefe9a4e1b1ebe20 GIT binary patch literal 2010 zcmV<02POE4P)(;- z!{LZVqW}Zy4ZvT+ZnrzY>kxotEiEnm`0)d5O#J{@md$2!I-Ou+>Id-4%I$W0Q0G11 zWhIlzL0t|6FN^2-L0y;!FAKx4QmI5y6!6HJ174QT=X1GSBuN5~tT~G88)6tXkl#c_ zWU(w;EEWfElBkHRSS+@+wKaH?L`7tcj*iaG&UU+9C4y^+Qnd~&%bLw*g@S8^QnEZA zPb!sCD7aQAC2M|u9>Xw&f@_6QawG!`PC~NR$)C$Vtc^-xb>T9mx!#JJJ zgM)*5y{=pnDx;t*9LE!hM6=nXY5Ly=s5DLgdO}J<5CrKY(4QY^3xN8pzp%Ep20;+Z zvZ5$D91f4i6OYGVym&#=wAbr(yWM+xdtR^i)~#DMn{8)jXL@?t?RGbt&F$@N1VPH> zve)bN`Ftpfx?CU;B-1oCQ~#T4TVCFA3t7MS@C#03O$ap zYXcWAUVQWB&En!BhGDf@?dQ**2!h1pagO6q6wPEZH*Va(FwE=qS}d0H=g;#zKQc1n za=8+T1k18hQ&TVuTdmgN;bDeh91cglUS}A_WHNO+op3me<2cXr@87>)TwFv^bYWou zMN#D*N7*+Ef}o9!jj5?AX=lIN?OLtY(~nq|MG!=8Kv5KVo)<;&G?X9+>hvUvx6$cz zPR}0xY6^m&9!x=~mQ1jTg9F zE*A;~6&g|+HDoO>FMs*+MTLfxMh#hBuea4|4ZxDT8nS#oU%6Z!fF*e~WZ7)C>FMbK zsLfSrgd&RK08~(_BulEGBnU#C<`hCDSq_II5{aDkJ$>~S=c3W*Ss%))Co3Ed4-XHk z)|?Wky6oF(wf6V-)oc+gs>(_xlet{(?DmPO${HFPB1y7VtEt&2Kvb0_jZW9r)^z)K zVt+^Nt*Wb6uL^?D+h37sj@q(N6pcostE;Ojw+jRfHbE1KM7!NSiw7~Z*)hI$?b^F{ z?=)$;AGDD*IXOuXL?)Bbr1hTBMizn~_wL=>+}!;B{ktX!^oC}I8^K`k=FOYWpFd|= zR;wK3qGgp!C={BTn|t-@m4-RULh&8xzr*wVqeqYYe*ehGNFWf9&i#yyjn(V*Y&I(h zLMRm4-`~e^d}d~*SS(7TS-ahiAP7m49*?I~D!E*)NF>r~wNMmwI2;s3kt8WqSJdlu ztJUguyNkslf*@9_6-800DximKHLjmBo6Qd&KCIX4&z?Oil}e39Bb`n|5R^`*E0szv zmrJEmjYgwVskB-x=~Pg&*$f7QPN!2U3@Mk()oPU_$#%Pae0*G~RO2z=$m#zzf@cHxS zcswpQAkXvpe4eK1@$qpKMJtsGP1E6UxX(OwAxq-JhYy>Zo8#l-*RNmitqekGbR-Lc zAc~^a*VkLE*22QV*w~oX>HLnqWJ!=DnM$Rq)oMH*k3=Fam&@n#Ngw6&d4^#^p%8{) zU%!6M<#MrDjHYQAhIe*$W@cuh(dh2(E)2t^QpxRhheDxlw>vpGd3bm@F)@)&r#&9e zg$oxbiaI(vvRbVaMFoRFf*@cR9vT|rIPSD(n4O*dEipaHlBiaz&1N%~%Vo1!9LEs^ zak*TDLgD1(1VvF%6x;3g_V)JW%a>soCJ2Hch~?$wU@%Bgl=OzS+wJ@J?-K-(%jM?g z<|>s+CX<<%n7DoW_RE(qrOHB%<7Q@Nj*pLbcXuB=cmTt2rBcB#?BwL+&Ye3_H*%Vi zer5dzMN!hij@fJ$MNt$*sVGpYRux6jY&P>eF9?F)@0Wh^IF2)!OdQ8?9A~%N1wlAH z1<5ds*=&|7SEU;*7K_DVk#3PL{+Yv>k);O)s!m;L3|TTTWXZsgB?Cj23=CN^Fl5QV skR<~{mJAG8GB9Mxz>p;aLzWEw0TT~ZKXNTP?EnA(07*qoM6N<$f~8BmcmMzZ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_1_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_1_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..7478a86d43f456bfe7eb901c2e5799a97ab47588 GIT binary patch literal 1847 zcmZ`)X*e6`7EUA8RD(>bnn4MZYOZ2}jE1Uxi?Qz+*Af$ZB}JtumC1}Krs<_aP=pxf zqJpSeVr{Obgc{OVs6TT=ID6>Ztpd0`oFU8v1_@Ec@n*SZOA5Wy=n>$SZy z=1-Wi#g6)J{MM;rn8(MF#gnk_2zf^Gzaq>PUxRXgd_Oo5AIxowJJ3MmMvgXy7P`3J zj+suVCv9SBjb!d%B^J*^!5Is3W@{k&X}12U4vzkxP5Qx87qAn_=bcTJ{s_fcj4g0) z-djzD&tNnF0Y%8%_l4WD+R%S3Z)|Dt_qHybqT&7gBofIzUV39FZjN}l(4{AByZ-Nn za@c1>l^N2$+87@npSRn`5!x4pP5K}kUq1&Zh=zxsG%LByT^b%%;Gy{Ve(FBM!Ry6L zYt%hEtzY&TS#W;zz>Qx^Ut0ZD)#5ORa!CN}C!Eio)hSlh%T2s~9f0`l{;_W^oV6h+Qtm#DUB{ViRVhcceXIF)chiN^x z5BHNj>oCk-f;RXy*^Uvq{1?g>$RM;TVDgDe4X3^RgkGu1F}Ect?8-e zK|wjJz^17NQT<+M4>)^}sXWxhwo3hk$an6}IM{i5SDgyKMk0B*yBiu9l$#~#-X9{g z&Un{7>gmalybrd4e%k9s=GOVj#&VF}d*-4$`oXCCAHvu+y~5$?=|BrjW^r+fjE(l$ zxmT~sn9POg={x*oj=m7x)7_oEGF+IIb)0gyUEwqTEIpU?Cb82K`McQMO(^3&CgyJ? zt}LWW0Rf{C5)x7yv;U&bXCo#3=FM{siJ4 z7IL94^8`%j1*jO%B3^D$@8`(h%KA53(LlB#fL$V{|3E-dH#Iiqa5zBI+9ZH}9GP6i zLN*(f%k3I2lkLud6C-d>)@iDMh2~?H@yEZ7qj&@j2-FsZ{vSE=DF*R^ur;Fe&`>U& z0uCukrA%Mx`x?4DPxacUWkJ;fzkLKkzP9qz<>(UQ)MtgTNwbUbmx#alx`1PaS!q$M~ zt)#vD`ufPP9JzDS2%Pr^9+SZ$_mvDkbtoHKJp-!pM55L1ibSH$&Q8bbjTHf7ww)B! zI%8V}1%uFTK7M{GgGsB;w``4|CVOKNy}66?L)PeM+26g(I+CNvre>1CE!fgO`@o?X9#P*^?cOOp1=agTQVM z1q4qW-nQbQn3fqXHQpS3aTifl$x$cY8V=2|A6_vY+iVFO5pU~&!@DYxxvYO$!z+<4 zXtkP{uJP#NCfdR0Jre)##}>sxc)#$L{2LmdQUVKpch%k8dM8|3T8c&wCuj&bOV@WdmiZXE3B=^;)gIYV__QMU zo?&>GPM7hOzq)tB{Hmp;bZy3jhr-aSkqZ2c@D_}jnVFH%#u6`^*v{?fNI8-omY1Km zfrhsP8Zv&wJ@#)Xx5|``S38xsMv_RR$Vf*O2apYfSIlJgU0-@qHMFlaQhw6pC#EC` z?Z!i0i;i}lO2!o#LF~MIr;-a0UMgAm4*v!`>?sOD!@pJi#s(T`t--%iu0(}{sm=xV z!bkk&{D>J81XnbQrPao0-s6`IsL_66MK_38F+UU_Xn0@0EPUY9wp}lWZvNi(CGdZ) d`TtLj03F3jy1GTyBH4!sz&g0wvu(qu{{{9JgvtN_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_4.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_4.png new file mode 100644 index 0000000000000000000000000000000000000000..86ffaa65cef4fb6a70c5035b319464b00d6f0aff GIT binary patch literal 1705 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_rhQPZ!6KiaBrZ-k!85jKLw$ z^X&isn<_UrNgUXHSGr(r`;L*S zcNP3NU$MQ`_CtsLSMDDM%iT9wx8D*vB!^Q6*vN09f`0yM8`fIZwH!9E*xICPUDvXq zkiGvxoW||)Et9L3r&TYUuJCr&CR6vmf~=hLib~PNAMOU;uoHChX%P@sJmSJ(h>Q6~ zTDjz;q}kKgN;dP)pHoi>-lykuLkgjK<71bMD~)rlPN?$7o|y30>fAJeGA}}gV%WOR z-08l@LARRBmVFbO-u}46k!X#_O&Hpd)b6u&61P+NepPVS2gT?QR|OA=b)W_OjrqS= zznpvi*&;6g#)SLn-W67oTh&$Z#0qk>{prqT{QTSHhkd%}BmtCwE2}^0tjzW1?mK0h zoe>(=>E$AX;~UvzaN0N|3iSVdl|z=m(9p*pF<1lPo>5%pvsUkOYwS|YE>6v{nCn;n zN_<1+W( zEN=gPn(%Io%zxUo8dU)ua2EHT(arvB6C8uBQ+;+A5;R=_E<8NesewbPiV%--Y zBy+e=+2*F@6M;R3%vh7mu4k;~4b zMd0@Lr@B#(zz>b`w?OzwZ^$~Q)bdUs!Y`?RgTAnn^;>s`K& zubZ7MYkqoMOYmREaytiO>rJ&?=E?jHE%CmGqZJO_-*zWh_Wl*wbPL^25pyf5+uZZw zqYvF({kV(7y$r@2AzIksp2oH^Tk`nPk3@BiFg@H^uBt;pnl{hv=e<-gzB+)=PNFNZ%} zx%YHw`B&%S$Nlf_)n=*g`=<9=`SCP!JFSxP3q_?T%j@Uv-hTgQcR|%x|EV0?^M2e; zee{a6ceQbkUhp#hm~{o44<2*R+Vjn&zv9W2v$vh~Hw!1p)u@`+t-tA6(EnGCU-v)T z`@XzeML7lAn$A6&;~Ocqbyw2aN&7ZxR;OIu^Y`7mSN_X4@^)Xou$FN-9}H*elh6a_r; z#Ia=PaPHhWhGBq5o;a4YS#Dj4x1>nSYW^=im`|d=mZWaiF+_&56 z!j{E4ER=;HU>>A!4pzxhRds7?%c9_u!mO;{4G}J1zT9fHOa^xvW@S+nC5qy&*D(wW zhr=d=I}Nk4oANV z0ORqP=XvYm+mD5^=H})$Ha4t_Z$B2wI&GI{LNFMVWf?`$X0w^eWO}_GhG7iDBoc{mIJ~#FM-T+VFp8qY zVlij-4A#nOwOU(STRhKy`0yc@%V8KcH8r)qzJBxO&1$vEvh0x~M?#@csZ`qA+v7Oy z)2C0hTJ7%LyUAqIx{UoX7RrjpS{b5H}1-AC+48t7i(Wxm}Fbo@d%65K!zEY`} zNpZ56>J6*a>WddIu3Wj2NF*4BnVFdp1Yu`qCmas5EW5C-q~Ns^{%`cEB2Q8Y~x1VR7v-Me@9 z?%mtj*|~G)&R{SQMX}LnP!x4AaC;kd_I**b-UfyuU|Kt%|s#*i9|?}ESJj&f-EjB27^KUu&G2M zfud+U9>;M!l}ag!l1il}wW~ORn)MSDMKKKX@ZrN-w{B&#+3|RcVVEe2BuNg3Lj*yp z)oM5#E|<&t&8Qz5QLopJ9XqBdiY&{uTJ7xFvw|Sh>-Bs-uW4GR)1fFTpU=ZEtZ7;( z6dH|248u%MPk;ONEtyOXhr@6oX^Nt#sw#@&!Ks)a2t3b6B9VhxoxCiaMx*ig z@niiY-E=yg&1Q$gVZYy>ot>@KYR8Ws-`(B4e*Jo@)lw9NAc#(76Oh^NOPQd_D+*WLd^>T(2o8ifWpMAc($wsc(Qwl7ylt%d+~FU@)j@ z8j7O7W`^UqgQk2=ljU#@)i7t$c(M%O$ufW^%K)A%19-9w;K?$8C(8hyECYD54B*K! gfG5iUo-70W16~ZuG+4p5wEzGB07*qoM6N<$f^`3TqW}N^ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_7.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_7.png new file mode 100644 index 0000000000000000000000000000000000000000..0e960ff90da588e557b816974bc911192768ebc0 GIT binary patch literal 1482 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_suNo-U3d6?5L+yqDX(=ed<7!lw;PK&&N~JHoA~IJz!PIq6rIyD+ zWVjByPjW17eqUj;Z^p}%@7==Iw>@6Go@p^>vnxltGNDk%@BSN^$}(*a3(fLwY%X?t zVRJ|3gr#x|vmj~i_LEy^e0D>9df$baX%;QU?i}q3#JOsE#|8K5o0~tozgWEY&7Ggh zEprLRr}VndoXy9V&sxnDA z>BW*julHWqBU$!nk>D)z!*wwxPB-{b%zN`nuxk5+J4=A;gv_mhx_fnAOCc`wC&;fJ^MdC z{n@{L|MMfYG4tXRg`QWW+l5)gbGoY^@>MJKoz^crx5sa?-#w!;Nd|wn7JpmoZ@(qh zKWkqs&wYIH(^D6pZ9aVW;6vt{afej&;8xjpWi4XrSjXy z9xkuzUvKCC^LzH}#H8Oc7r)-Wuy~PY#q0l>n?C8j&*EGBbKPXgvcs3&>^z#gHb3L{ zxt?%~doNOiKZmZhaXV99QFHdF<*$C{+3|ITF)j8bP0l+XkK;n!DU literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_7_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_0_7_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..98dc1594876b26e5588247ddd38610120be18088 GIT binary patch literal 1327 zcmaKseNfT|7{}2-QSl__e8~>6F(dm$mZXXJg5nD%Bt|7^zBDMce3^AqQiJfNzHR;DI16HIeto{?wH;~aU+Ig=868E$v`b9bNT{qDKv?z#K&q9|e3mRl@A zAdodFoEUA4j17aD8vQ!QbQ1^!){%$=TFwpa4f4Uij=?!8R^hvlP_M@vh-**~muDvH zdrS?ETR6Moyapcs1Lk|YDm;>QB~)xhhHj&F{}NrFcKczz13A6RJA0bcbic!IgpYQb z#Xpi|4%ZhpreKCXBiXo%Q($2cNLa*irAvXk63c7+r9G&*m6fi^^x%dQ`LMz2NVhL? zJqAn&R4?r8g&<7C((qpiPfFhcWiz*eIjLe32)eIp&^7sQ$m ztrsv|IYtZs_zI>&rS+;IR~Uy>y0f#hjg1YmCB{W8?VD~JpM#M4^&kALOw6yHnn|QX z{{{3ii;`g3HhiIHzQPG4me!3XcdE4KaL9?6tzv1Oe}Y%dO-j>7#ZkR>ZH)V(gj)bs zCjSAVS2z09^UPyVA=JtAaSJk@b1%=I&0=W^-4KEHG7rtUcNVQXB3r3;5L8+J_r#=P zQ$-NyUm}GnZLuYjp2%pCoX^d*vX#qwUmibA+DrVCWMoFLDg&d+W3>g!`;OY1KDy;+Do__r zeB(iV zjPRLDiAh32=Ebny7qN|hO8Nc2W$p*toQ8a0wn%V}urm__GKF*@-nt98H6j{hoblP8 z647}xqCu{fu0A<*h|xc@z}UNkU+46k4R7xrD3VRj%zP){uG^g~ol`F^mz0zoxjUAO z1rwlV1rK6|=06Ki6X~5J!^2+Q-VnlTtoGwaNfi1u_W1pA2;t@IBA7rFQw6r3TwZ&r zN~JP4H;2i7_ig4Pu{Ez4dwm>XXugEz-g@LN&E3!6UuRgQGzms#cV3gffB)XNibZ$2 z=+WVd!{H=jslL9xfWj8+O0t!CAj-q2KaM67uhvh^i%^5wAFQ~6%7+q(UC1alEj}XD z3J4A}>`b%r3jf$+FzYifSH z>02=2a{r0#+qV}5O{>*Kv#jy~&wv0I9&t-)C>|j~X_l8+OlHH>d^=!RTSGv>UGcj^ zsGgpl7|{Wt`dI7Rxh0`UM7sJ0y9*A5nH7vC+wq9Fo5Ov5eFFnw9*%Dg6xN|75{jE3 z3jJwcTG`CWQ>T`y*awAWXuk0jDPVIcn5=|yp+!L`Qr6b&vuD5J5p!zGL&XxwixUr0 zJE{j6wY9ayvZQU56)4hG6c<_j%1t57&dz@N^l8C!q$A9DLLd^(BSyE-wpHFv(d+f+ zGcq#ph>Wx}&3XaNeMzU&EiY@9&NJ!pv9Z2*{3pZeohYT($-R%^uA8TmCT8mh0Ar#>qdzoEAfbt?5wpt^q$Qs1g6U5AE_~_ c&HvErGBk%wt{*u(ViZCUDTG4&DJYTqHyr3^A^-pY literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_1.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_1.png new file mode 100644 index 0000000000000000000000000000000000000000..5bb027d709824f2dbc123e53a62afea4c24c2e1e GIT binary patch literal 1823 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_rigo-U3d6?5L+y2;RQ4G27k3urFCw?(50WJ8#RK#FsuOdMBnB(?{6F zIP4%z_^uhy+nTC-#WuX1C)oGcqA$5hH(`3U8;7_Ome6{0OYqv|q=Dxpq z!qiH;3a9gL7TxN+AIV$yY?a_Xv$@~S%-ChPRejCYso$b+znOFRPMPJ--FQ04DQ*S(;B)H8z zX|r>TecxC2_|3xYwa!Q0Tzux$Rr+sf>-XgMezUW87d?0-^L_G;&;O5{-?sVY;XsRX zs_uuJzwW<#a3SH?ee+DP>c7SF^5-0}Vr||#idzaeF_IC1(BI(h@?vtD#pd7cAZq7t zcMf%REa6NjvBGTG@M%sz^BQ^EUvrk9QMJiX`NFtl&gEvMmSQ2C=^Utaoa~~R5RQ9fTv}f%q5qn;y9(d;bpdYvJ;cu58_WAlMPH<76Jr;+v zm()z=SiZ;Y)O3*dcRb8)U#8u^DV=rNvr6CpCxU0ho;as!y(eDrkm>sGp*@dx)Jt0> zW&i&B@M9tS4Zgee{w>+B#IEIKc_%-9cBCvIN@~G9soZJr?&;Umnudw(+hq6k_3rZ% zIR)Qss`tKSX_Rwr+wx;|iocI9Jvk>|wsilyY@RnDD4RH~VM-Q%Z@pwo@{U$|mseE`9X7LDPpt zdkj8TeocOOe^<_p=$Ca1Ki`kxcx&-d)S`)lKk$Fg#+gZfRsL8_yS96a>UQ%q@k@1Y zr(e)tzBj-A`^}^8DtFXzzMg(IqN?xj=h(=N@^6m*GQDa4H+}P3frpK1n(t(!Z|`^Z z%i}-2KX;q=yZ3SHH(Bhwll1ewkm2v`k8c{?R=v`$Q6Ha~toibna#s2~eJRtK_tdQ- zbN&~+etGVlwc7u}$?doQY<%;i{Lo?DT>s7gcdgWkaelT|d*-@38~=V=Tl#wXW|Qc> zchB$tw^>RoYVGbxbsO+!pd0wt}7@DneP*+RUC28^4&v! u5rJpr$ia+WPr#!PImU1#a`J@#Grd_5)_0=%p#`wwWAJqKb6Mw<&;$T@Wfj-} literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_10.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_10.png new file mode 100644 index 0000000000000000000000000000000000000000..7ae61c751915e0834b59ced19d42d79cb612d989 GIT binary patch literal 2531 zcmcImc}&yU7Df>)C_~-Z3a_&H#3Cv+KoPYfyU31E*+gKVA|23HrBt2y32|v*P+L?= z5tOB@vQr9`GO`r`(Ehdo1C0`bI!TR{l4$sb#k;; zQdCovk&#idwXt-Ok=bzI>jG_D%gkx1?v;^IpxauWbi0-;txOWZppjRVLz_-nB5(t_nT5opjx>dCU3HqPFo;gNq8}~D`0YM%90h6q8 z#rDJ0(IL&ZvhTP1QYA`f|Ka3%g_g?ny2$>}g8=5@P?sFv`RgF>A=U5(qGzfu6ESmt zeXuBp?()d|mqLjB5o4cwV65nIH7-ivG;Map8tPzwO-FlWGF8|7oDN}3V;Ejm^l~FQ z$U)}-puO**-_+ap!{U=yakNCET}j9CYw$vrKwP>p-g}yCa6Xz-eCB{wfqRCtzc79_ zoRMxj@Tq2HY3YEc)LVkL;Dm6@TI?)VAR;dd>5VWiVOL`0LeFq%GX+fu&tIg626*|; z$#a^SDc;ep+&r3-T(<_hl&KV40tDIMSm|)9fnJzvrum8(S3(^(kFei3-5|F$v{tqyP4_%Mo_?r|BkaT-B8yk z(WHUd2Hxtm17dcaL0$Pc$(M3es8<5e7VEP^ic8(wECW@%*|N#t2jfiZdTju#_Z8)V z%(1YoEqxqk)-kga#}dFrO+9abE*={j>TBIx)t zlc3=(lr1^GN9?H>JDZBEa5ar`s$`lq)uPJ@Xyu&N)RI?r@k4}Ot_ghf_O+$n?PdCo z+49%sD)8EEZ*pw~xZgyMCsRm~fmz()+J2Hu!psgz9pR{kR{Y~V9 zY}D-1u$_1W7MF>=^_`cJ1KC@~(Q!4Ssh8t{>HQjZeDc&jKmqy<0S}-`zFS)^s>BAQ z=>kSDXhVBd{~3@cEP_(6Hh*~$nEK?`c3g9AzoQPYn$^#7vc6x?0SPz7nC&^2uG{w_ z`J)_37ZAOJ3owlIh;|jRlJ~kCuoX8GlA8_Zd#j_uC6^&uc{(8oqH%$H6%)Cksi^lMxGIgeI$qvh; z*VC|H;u8Kfzlmo9YHGJ}1QKM37j3`m(WQ|Ah02|EM(7eCxxwFon}kAgv6df1-lLSBJW=@4@8F#2R`NBNU|d zwzsGD$&%%UKS{7o2*|4CAo4~38CE;l-sQ2vgb5JelWF4@?D|v=z5T^HZ(?xPxQcLE z9Eafp(!w2E94neqLFPwbpV$}b>0=xkPxC`+?rlTF1lnx%RnK|{Nqy&wVNMg+bgC|8CM8%krf1KjrFo8B;<4fZ!v1}VeB=#HP4z@bs z7ZQEZ`3H0JBQ`jq7za`jPF=I+e$Y^dy|qFF*w`?o5`Gw35ll& z{N$P`6i!zPY_*E1-Q8nPSXPZHdlw`}erDKqDZjJqe2CYem{*S)HLflL9va~9_$_3P z2rCm`KQcUZ4x2``ql-Cp zEjg}pjI-UHq|6CHgm~FA_Qf(8G4bp%pJP3nclAq#S_U;*T9p)I+B$cer&ZWzxA4Z; zzxV6d2RQK^>}YjkU_y_ALAr%B*Rlk z#cpF!)JuUF>Ics5Kzs&HA;5az{w3p<5c=N)_^)ET9^*`LkDh&+d2|_iQG=S&0R#Hp zL|$gPoe2gKP)YpS6_;uc*&|=IKLgSH(U3cvyB%4NqaI4yzwXN4jMxgh?EEC|wyHdK zW+v$_IpNt23)-Gg{W}Q=#)pxx^*-{!A6H$9)xs183mR{ykrPl=Y?*9uq@QrjwcB>| zSn-{+l6>y2y8rit-!oDAG|p%VT+*;GhCwU*@z-cM1jUccex4}>rn8kBB1?ewNVZNd z5|k7CtF%KD$4Fndt?Af^7Jn#E$Tj}uH2hvwU8ui&{}BPE5~Br!0#sbo=~O%WzxdSm imVYPh|2w}byIJ}=1F|*KZte3XV|&`sG9T&x^M3#jxT(DW literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_10_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_10_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..10f062ef1a7b563f792136231efcc94dfba19c17 GIT binary patch literal 3619 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 TTfXbS=1%}=>0nW3=1u$$Ntg4$ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_13.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_13.png new file mode 100644 index 0000000000000000000000000000000000000000..827f4becb4e4b3bafc7b5262196b561535aa38c8 GIT binary patch literal 1479 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_stXPZ!6KiaBrZ-VR#r!Qc=$ z^V9$OnUxz-G!$4&O|1_^`OhkNnPGO<{p?ADzQ^nrelC||xHFeSQO&8NQy@vHWd<&0 z*&~kj#2-gv^>50>z1S>w;5F~zf}Y@6ZdyVP6zH_6Lj)v5fD~9 z;=*A#Vwi942=W~^;BmI)`Y~D9-Jz{ism0LDbC63k!FDzg3V2Pd(h}xqkq&R0f(H@@vl_4&ts&Mc1 zA4Ou*y9&6@|1Un+8PP`|{cJq#_TnvK@=?*g&2e|$jY;-FLG;ZSCKx@6*|i z`)~Y_@cBW#<>`q_|DD@cfAjBx=<_X;j|SJ*y}dt2{@Ui7Nym@Avrdn>V<(&bPiKyN z%Ep5=$A4bg{?kBS*ZMkt@!sp_yh=ab5Wl|Z=*R2vtB-0uxOhFKm@TfRvRv**5>NL; zd#NYC6xjKHFTUD1^Mn26H|A$*&WO#lw#>b^yYAfEH81x0ncJUxcBs_$*4LZmVS8q; zetmYcPSmV(oA&YOu8VyA(WW*i@7`|9hQDX!WXp=Tyng-cS@M1PC*CtSr}xz?uivuh z_MLwh8Ozn?{1vn_E!|iAZF#!oq{|aEvukgB^?24kE1p;U^7V5G-}d|ZhYMS0cU}K9 liK!!!P>P~eIkmB#QSHj3zs&h@|9}NFgQu&X%Q~loCIG}WPTBwf literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_13_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_13_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..202d0502ea89db6aa251134923b1a80bdf1d1607 GIT binary patch literal 1329 zcmeAS@N?(olHy`uVBq!ia0vp^DImA0JaSW-L^Y*T{_vZ+S10Rbg zO_&n3K2$r)W&6DkP2Bnm6kfQ+{E&=!`Tc|S56&2k*c}ytEUtwYmF|hTept6qYvtEV zSvf^TGhNv$B_(FG&zafz_H(pbb;YOUwj0-mzN(aS{NMATp8vz-1RaJR)(6^R$!AJq zojNjS^*yeUFPAxP;=6w_YybL)PM1e7Uv>%<)z#(Q{`UQ2iqXuoX@C2~Y$nZ@j-D2} zC;jV}FMsN4Qc{jw4{&_?dY-H1Q`6)94bnCY$CwU8Fi3DSBr}3-XxPYLAV!kl2WfAC zQySaX2XEDR{q^hA>lz22Ylnr0U%z)xZhc_W`EZ@kP-$uD%3h(Gy7D=X-ltFPG`cnK z?_qqFJ`m1i*uRnIu!V)i10$~wKYLAWZU6rJcP@3xgU25XbmmWgc>1Z$P9%5pZB#jV z-Tgp_i2b;IFkeeSLjizj?#+HfCjK@7}%J)c5h$ z1cr|_4@yc)W##0ieQ=*&aV#iw>+apvxw*ZMXEh$G^p=y6Su!OrCr7|Z=D4TYvAHm0o`FW*KcXivdnw;@5jf+3OarI`RDFk+54M+SWo%AKXrpnc4?`p4Bz+f z-;Y23xN)Q5VS}#oTh5<9@9yp%A0IF3+Ijr(9Pxy6*M9{rhJx%bb-K96Wj5>!bRD zPI~(K$`dNJyxxw3O<7_wJpY zjZH{sXlYrQnTd(PF&4)YX`4esLvQAo33Zl~mEF5@N5JXT>({2fuV1`~h>YZHb=tL# zpP%2}#zvw|u-6S36Z`k=6B8Ft-gx86l`B7f{P^~*%tR_Q^y`~9IkmO5iHV72Wo5wN zoqyik+#Kkx?OV43{r&g##(jpz;^N|Bu79=h7jZo%v2;q17Dv-#i$xkiUa{Aws(1>t z?Am2@{&UxT2ab(8-U2MAH}M>vkUG;aEHYA)!|9{K(t5u28eNYqrlnTS3y%RhvD;9s zE6LT>_2afFmpoLGW~CMSuUNNkn###-xn7#dJpxXeKvSnZbz1nq;#_^zc`Z-Xf5ztV e1WJSt?0*(8@*F8p{01xv89ZJ6T-G@yGywoPO>OxA literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_16.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_16.png new file mode 100644 index 0000000000000000000000000000000000000000..eedd99c68a976ee48bbc034bcd50bc570a1e3575 GIT binary patch literal 1932 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 B0FOF?u2|=lmNz zQiUmot~|)u_z+PN$uB8+FjZOUXSlC&>%D@d(-TglPtTxT1xG8ZW1u_MKW*+({O+;N zm7PuTka^ZKTai;mw0fJV?t_1ZgeYT!UKQcQh-CdZ8$Bu`@)GE%RqAtzewwT#=y$m* zw8Kt>i>9Q7r&kCNl!u3m<9S%uLgzc^^4B3p z2burvF$@clhn2q4H0LC@OctKMnUnfC;Cdw#hKO&zry+u#Tw(a{IIQCcP z13i{|#`H^7BiviRy7u<=y1F`Nx=q&o`;(S9S7^V4&1N^=oERS)tNO5b_wHQ)aD}R& z7sTStSRMmz2EKw&52+tnTQjHl>RpPDZ1P-OTpSu2%6Br%6DY_gu~;lJS%F4MY0+n7 zh{-%baO3Dhhff_@+Lte1w(8&ix_^G7F5}v4BOpWsrBXuC!Ef8WDX=kFee`hg@j18 z3FWO4Zpw+&GPmxjTL4hdJIns1_J-(H8C(f?Ivm_2`m(psXCWQe95;xFzDB8n=J)Gftl`ATTR}!m<)%XL)DJ&HLR!ws7-g*|!iK%i_M=+}!am zvi95NU@~erSk0r^SU#+8WMTX>_MLp~cfA2+2vBMMwJr zC)9awQYn^TnSBnNB7Ni2b7M<^R-v~YPtD)hd-J|cpKXSZ{zL^meJ$JOOauOiIAOt_;B z{ZhhSoZ%xGz@9n4jTURU>r_eTbvqgebwNi5rE|I^EG{PI0tDm&oe6I;1)o;WoZu&D z$V(Hwd-pD#aV)cabvy2bu;|GXA3_74pAZpot{Ary_Xbtk9OlU!=$exdBhG7OIa1$- z73qVtwY5i*Q$j65)}F=4i4ov7uQzd;;6rH?O8gEBA)vx^7#i4XJ0*QZ7bLsek_0U* z47&=+Z@o`z4;!1G4`dFQuASPUOz{f5YBv{#DtH4FQ%}6*ab0cgJNtXQ0gVyG4JO}8 z`a6u5DjH@5-*RSFZgYf7Jv}`(o&uNq*Do%)z@f8qbJFpahS&bejdIYaS$c%Xa$`Mq zEThqA7!0PoyqrRzgg1Gz+%HBgU9~7ALk7)%t;QP}8J){_DsxMMG!V}KiT!ihy1IL- zGnoj1RsYVn_{?@UIP@5W<$h{}bAmwY?Cg{Qq=4R!JboBdDwt^v+Z}DZ$z(ET!i9_L zCCF&poe=*~40znlXP(wzQ?G z+_j;@GpMi?D{&N8+B)6(4xZ(HWBhf@#u9-&T;OEb*wFAr#BJn$*aZBSF_6?)UbgQs zI|$Oi6-s8nk9VF(1%Nz(fgrq|XaGts54ujO?+tiF(nS6HMq@SpG?rR$m_XAxoc5>l zKUnUj2WoVMaz*38^`K;ZkSq!=;2;E0bT_B!4DV0%YaxqyXTd|U#wvS#7hkU}xp0qs g-xL3{H2xp#%Gep}^rR_sq~!nr7LBv7LHQ*A2f-b_NdN!< literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_4.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_4.png new file mode 100644 index 0000000000000000000000000000000000000000..6da2dc03ba2fc1b3c4356ac8c8fd04027e7e6d1d GIT binary patch literal 1664 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_m~FPZ!6KiaBrZUMyO4ipe2x z=hXlIQ{Ok2>MV0j5-Mq4_jQ7o$kbIQ=do?EzWlSsj&bh)tJVzj{aOTs6_2=Z7z#T1 z;9^#v=UAS(tFCn}knzyrp3R}mSv~DfyLGZW z=J)b;S{zu{)5X6}k6rapK96wCb8eRV-Wd}2w?zeA-0*XqOT~57{fT|=zy3ZQyM6oo zX>NzU*6H0oKff~7_}+Q*{qn!Rzg_<$Z@!FP53V$W9@_Bq1qy<#Kc#%H?R?jT5gSSashRY_LPlR~#cy(jzU3q53uS@=-j`%KdtT$ghst~Q$s6o3EU5nd^4uby z!@Aq;`4&H_VS4zKbNy|eVs2m4CxXZO3hY?s{^QNBJAEo*OQ=fHaF z_fb{O_T7G)4qvs8`X^}wC( zE$bhD;^~Iwp7qbpOlahYfAwen(UlSVJ3jZ@{(hgp?=oX%eNO3)+J9f~ojEymcb@r- z^9Oc`-}|sjJ9?9@pjn>%X|o!QKi?D&yPprAm$>ijsc&yuILaTIZFqR^=*$Vt)nD&b zAD#bB#Xm{RHM6kk=-WAK+_|3Y(D@e~70H|MaY}w+-zK~MbM+goH&x6{yOB^B_o-&~ z(RO}b`6?-|>F>iT{E@c#X$Y|n9)Kbe@V-W?vlZeML@b$}ZY&*YCc$j%Tf9Kxvk1wkJSN~8s$9ezksr)mK z5-%Bi;#vKbN7~-v#=l<|@_v;&F1YNQc9`+!>+c^Vzil=D&?wV~yEMj`vq&k3aH-w+ apE+1g$^S!ffjY2eVeoYIb6Mw<&;$TpVYz<* literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_4_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_4_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..0fde64c02a52afed24bf37f4549536d67bbf54ec GIT binary patch literal 1773 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 NgQu&X%Q~loCIB#=O9}u0 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_7_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_1_7_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..f82483016d6d8c9210d09aa1bb9535c32210b5b9 GIT binary patch literal 1391 zcmai!c~BB~6vq)s(=?efBV|p^jK~a&@z~HU@t+4T3nbenTlYAE&Xd@18BzX>{8;~8n&S0|P*nM&+?mx9^FQ=mLHs?!MFnmzM8JzZTV(Mkh5G%_-x zP|(`^)Usr7qmUiIBpm$X^c7H-cUCRgu%eZ2@cZK0=Pq{p9m9h(F7@+;XevQRN5|UQ z`aN+1&|Y6xSLbJ;ZaAdfB?zZb;^X7jg2|dE+`R6`wk`19>Rv9MT0RJcBDGXetGP2S zDw3(GPB!~Phx2LoM%??224#Sgig5LGoQY2C-B*8iT=TYqQOnDSOF(Hoefy5{X2?C)=Jr{e{f@dH+|# zvPFWPTrMvuDQRwQR<0zY*z#|2gCMmR&7&eC@$e#rLQz#!MMXu~c{Yf{ot>STwHnD_ z%~UPU+~VTI$cT$sp%y2MSqtM!B!uYbCuC+dOeqTeG?7@mFWc!b=A_oS;SFrvJBg(3 z(Y#V(2uQupW0a6l&0RwY*gK7jLzb78l=`i~=7$i#ph{urcdy?fFW~Vho^Eae>8Z&} z4aEZ_&UB1P{$~|}o`;7=DtdZ$wuj%+(4c*#y{X9<^LBGH9;SOcF7Bt&QZA{PZ7zQ? z8HNNVb@6x^Q_D|=<abb9rA429a(x1!N|)-#7(~9+JoSV3I8RAcs;AeJG(p8j)#+z9)^VkRC6p zl>RZl@dDpsoU%phY?N=@_6LJFh>OLMWO9>zZ;oZ_O{)fR+Kf%kj6%|k=o_l6hAGO| nlr6HUH;?pbJTwRXFACLTzpW<-bMsu4hZKNuba!Y(2PXdsB3PrC literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_2_1.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_2_1.png new file mode 100644 index 0000000000000000000000000000000000000000..70b6a4b9e1f8857faa2ea152bb8a3f4591f5c53a GIT binary patch literal 1860 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_pL+PZ!6KiaBrZ-k!9`ilHs= zrs@0tr`~aAOIWpVn0zRXc%8KBHuJ4%^BWs{zSr%KcQ{x7Qk}tH-HAh3v87YskPAnm zQj3A0(+mzppB4c%6yXir?l(&Bx{C8Ti}w}S$6o(AOSN4vv6abk5*Ed1X2e<_TKBr< zdB^JA1ugHt-@Y!pqmkR430hs|d0zgUV{T@f_m1M00?zOKAO6-wYd$^mPX6KRubYBS&9qf=vM@#p#n!oqLOg(UMY$@R(KcCXm3Z*~C#ou-cB({E>pxn73#pX!@uK1esWQSy*;vuW!XA2}q z_tXA@N!;JAS#}OdV#5eQ5MeY?Gy+UP8WNwE!el z|Iq&X?cwwGrL((@^Y6#~(BB?te&@*FT`P|9&fBw8_fRg+cG2T!eg4Ln?)m-WSg)(8 zT=}#1qdykzPYd3A^UTvVzn|=q7ku}0^3&(CX8(3x=jC~C@vrjS)_DKJ8>^Bsv!ZtF zI`HkXT-=HS(>bn7?pJ=kXXdhd9eZCf>sBRo-@Dc=wyz|u;#_3qoSn}PuikLUFkd16 zvburLyy;BxPA$)u9%%nDxsGXi_}qZTpFJ(o6Xf?Ns>GcCVl`Xfp_iNewxm)Kq-<&a z_>B0P#|KvE-Yh)N<#tHdl9N}v10}Z3=yk>32tQb(bZ4T-%)_r<^t~}l;RA-h{#Usp zt2BdqT8>YY4^^^h$`8MgP+C&X=5WiU!bG}V#HC_|osIU2FFC@H+;4c!^Kd(dvCKs` ze{izc+^w|!hS8Q;zf6>DS`#b&O@FgoF!9C}mX*xe^PF2e-yXR4etWHie?k%)*ts^! z*$exVW`8I-bHt{XLqEa7!0Suhn!b5=mml~S5!_yTzn{bZ?ceJku0JwsPrX?&#nOL4 z?QGwFEw7x?^elf|R6CUYTPALEM*kzZ_uKBTQTgutx6J=}`{(rsx<5?%b#cALy|={= zuiW_Y_0Yd}NB4J&UD{WZ_3-WTixCx%e}=^OTGl^4=u%-DeBX7>&x!l5o_%)3BJRYW z!j(IoF53F;eC>IAwz`fFhjukST6LZ)%e2!{d|%zZm#g3Z`{>NWZ#&=KtZ)6?Umck) zSLHUYUVp68BH@3Sna!Ku!Bf_k$QY}B{ntdyO_hx^s#h+~FXp?G z>GO8m^4#fui}Y?~TOIW{@kFmNJa^Ils_7r?_9k&2ElVqv-Lb#mhsM$KS9kmWjVg)Q z>sZQG@#?4ecFnj&SJRyY6ytlA2mOAyXjgba#hRb1w;9=dT_%5TN4;~ncqofmsmFm2 z5BJHr8tmKlyV~PHf#TJS)#uCXRxjQn;y!_2zoz$E_;K-lZmT=qGBa@Pzj^rHzWm>r zGJB%$dz|n(Y7o&QeK>UAM-9V2+v9IpTzu8~*j=W-sF(N9zgv$cFOt}Jy>!Q?xM#a9 zHXqAM*}C@_*TYM`JB}rritSL+04BIx*DttpRE01tr_tg(6LKt^1zt zLb>LujgA*3^@hl9kG}M5zj#G$W}|RSO}XF%4ACQ<0K$A8 z6j>5)_x(R?d?ffk{(G7KolfRG6E)bF6523XyizQJyj|ZL0bjco&e4Ngn}4_|VxNV_ zqE+>hVK?+!k6Z>VPDG54qo!bM!Y>KBierY@*)v?y786U#(rZ(YV+&-x<^|9Ls|RgRH#3S?V2D16feS&5Uoj6EriDbb zEcs9(&qy@aa9}fEi=wJFUQWuJ5X)mvUQ#?Nn100~hbqp~EaXMPql~UilfpKh37?Eq zx+6TIFrCd|Ug4sj_=l?vliDFoShPu%XN`eIV3f`k;!#mcrxca!GVOLR{HN(_!l8gZ zg*Sul;eA|V5XR!LyEJ>qNP>01R<}@}pg^Fdrp?on{hWP;C{Bj_kkWxRPOrh(B|1{O zU?VF0;utNxnJSlChF!Vw%QnZXsz0|V?nFV3p<>OnirXl zvOV?9koK7#_t_okuR!JMEaaAZLV3<6Ca3DCYK56hn%|u~Yb+*ssbVbg`zf)2-TXYrkje@DS&FyKJn7v7Dui02{h5CJYuN@I6Nh{@bYY?csK*Djm%NeJYuE3dH_W^l?uA~-ZA7E$~> z_;Er)rN~wvu4QAr5x7x5l=F@nn%VxWXBR4N#^PO$O;)a0G3EY@QD$`G*R`MfF=$DN z^Rtt^o7_*^?|=-mk91o7IL&A&Ejm0~F7%Xh??l56`%v@d$K0AKM!Cu>4uhF*U2kP$ z{jp~26C-UN_S$2fzQc{t!ZYAlsE7{ZD(0Eqn<=q+=mpSZqYBkhKDPC;-i(75;c>NT)A|bC>$KjCjJI}I zalPTOppK0N8kRWlkas}qJ5wAUi$zy=d(`r@Zg(&0!l5Qm;e9( literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_2_10_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_2_10_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..9fba8ca04215911b1ca04ca7cd99d83a40042cfe GIT binary patch literal 2061 zcmd5-c{Cg77EeptOdD#*N!3KfPIs0Dv=-7<-gwVyS5QhU-MS+UsqiNI>s}njF#f)$<<& z*`Eke06GB^Vcaa=$wx8VH;M3M9qt=tnkn;178Jg%anV7EdP4Wn3(FDNoYzBO&Z^aw z-w(oxQEg(&Kfid-u(3(c*!p<5yWdSreMc6hgt;ZuIAg)G2bO;vi{%g90}TNt5PxoxVJ_n$l0t}o4gq--64S4Mh`0wNYuW%qg zIERHWHC3l95TmxDBlyAS3T(+JgyxVzNlXB!fZ&B;3>3rRMLIWXXL>}2i*9xa6dzF-*c@xt~64V!=y@ z#*PkQFx%79^Y_S?`}_Nyot=RuiIM~H^t5l8yY4Va4_wS-ZftH=69mLIUB#S4{XwLyabfJ zY+w+6_pYx|QE%Wp!f59U95{^ay}Z1vN4acdR7FVMob4(y4k!$3XS2EMVtEj#zP_GH zrGg=l1w`Y-noa7*YYO&Ko?BZ|9pq(Cy12NQo134`>RsIa+1H4 zInxntQF30@Dzs%P6kkOU+-t3xAfT~|Isb$KX*60vK>^!)B+}wM2(*Q?g~KO#JTw-J zQef#(SWXjg`eJ;1ynj<$U0q#c;|AwpytEfO@0F>Z*e|*r;N#Ol z78S#QJ_Ql*%NUP$!4(x1Sy@?z!`ILySGPf;u~N*;^KA= z4?EqfU33bxFhk9yt~&pKoa-||j`5`h(Rh3f1{*e`ux!ekUcIt<>U@#r(BM_ajmYeU zjqN>&Si$EeZ zx3u6Ij#jJ(2L=Xsb+?WEI}z5_e*XSUR~=nl-B{@6#s;}#CdYnZzBdc*_CYL8LSCxl zy=o249$RS)Zo1_3>tg=*r5&j2K9W%y(4a&ryuUO-p!($4`GXHx49-W{P*|aYqW-RHN2Vl_d_KnvAGyenX CGRj{7 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_2_13.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_2_13.png new file mode 100644 index 0000000000000000000000000000000000000000..f615291c98a4e64ba70be24b536353d85aeae42a GIT binary patch literal 1106 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_l;MPZ!6KiaBp@A1qqrAmR{M zo%Qek^lGs%4KBgnh*I@ubEbMU`#+qOBU5~i`@+v)eun*XITY2LIywcClv-xsVt#8@ zmPy{T;kEAThrR!EpB4dO#Um~p zhNH~UaG-Z0m}h#-V&{XIsk^JM`~R~~-c!)#FZ$uYWzgywK+4@&1pxN;Xf;+D`xN-e|LbpX;=s zu_xOY-}uPD-(U51Zrv-1e*dCp2@h=QISFSrg1M0#1vl)clq~Yg(7*g2SXMB2y85}S Ib4q9e0M^)G7ytkO literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_2_13_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_2_13_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..9a067c8ba955673a6dde906312a60a179ceb358a GIT binary patch literal 737 zcmeAS@N?(olHy`uVBq!ia0vp^DIm; z9L=}>)35XsmpW8Db*%dTT<89y+QXWl$dhS(s-S<-+x&| zety2Zy!^D(vuT?zzx+~bH`6C%eD5yiQ8}QTxUJ|?3AFne#gK6eONG~)`I77(#9LFzt;U@nfSC-zEI|Q z(az7+k<*q=IrX&Yn8e!Bg#j0$mfu%s3GnjN^j|(%;Lx_W7JZky(|T^c|GqRx)7F2I z3&+O0dA)`&XFRspmYZ)jyJ)A*(mQXmdKI;Vst0OtNlBLDyZ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_2_16.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_2_16.png new file mode 100644 index 0000000000000000000000000000000000000000..ca9f7175a4bf94b58053b5fd9adc36729f460693 GIT binary patch literal 1133 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_l-rPZ!6KiaBp@pU!*aAmZTo zUE}}%)ALxlKHZS;>3H^G#jT5Z2UXuW-!OPqIj`Z|{3?bYB}y$bI26^KIywcCa4~Oi zyIUOlad2t;&G^W3KeddDFNfP6crTqS^MB%#mm2$z^lP1e|N7Y({V&UAEPL7a`B%=n zF5Y?9xa(zGzboK1n4rz03h>3tXy_0MokQ-uhH`fbQf?nzefsEg`Nt(M7az0mXz8Ez zywa*5d%ASk?Ya*I)eoLk%5j??k9c=ycGmk>Kdu)QnjX71|LNP~JGwdKjm!*vrssXj z`g`Z?k9X-ibH5fmE!h)RttYqsb@G|dd;a{`VR7u`R=sltxAxRd+B^OBx|(Ma;+-E9 zpGTMOW4v6h9&Q#Nx%1^8!~N#RiatKbydj+&{rl6UEta{}$uc!N&7~jjxci*-AOC+& g0-2Cjk$odxG53<+e{XpaU@^kr>FVdQ&MBb@0L*8cm;e9( literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_2_16_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_2_16_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..12feee4e9524c008ce6099013db2dcbcad41d2be GIT binary patch literal 770 zcmeAS@N?(olHy`uVBq!ia0vp^DImUZ4YO9 zUdgx>;3K%?=8g&5#4m-G?_KWnewlXoq8*wyl=8TPxR!on_uA<4Xh!^Qj*_?Ohb))R zc^}DV{P;;~$LuV@z~>!zklx*NHUwP>iNmIuDbg7&!0OFxAF7yo12^ej9UA(#7ehl&!v+} z|J#}mKKSwD#^*gk{9p97OExc=k~;Ts_ycaa0}%|zm<+@kHZt_ECV(uJ;2zXMGhD@- z2IK7RhCQ@&RH{rU4|q0I5Zn)}zItouHH{FoRSCgS?G%zFNt zU3mg5+j8~AxNmRsz3ek7WoJy(w5Px8mIeiSy?y_Fec0-!MK3GkA}8;@o0qw9)zwu& zx9^=@zkdD2j3ra7?Cs@w*uH=NE-o&<`l?s<-Ipa&y~nbP0l+XkK6^2W5 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_2_1_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_2_1_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..17b076bb62392957f6ac69844cad2f0d7ea61f3a GIT binary patch literal 1980 zcmV;t2SfOYP)ykdFp&XU%g@q5DW&}!NEW}}&qqJ&ho_~mzHY4S{k;3i^E`c?cT0OD zNrH3^2i)!iItg8t40KsCXh~MRUKd62cSjqIMy*zBCBD{ZN!IG>>hA9D?~bO^>0BwDQk9&;Oxkc|4w0f@_eLdR9+Q52!pkf>tMZ7(POmh?Y*3=lMdR04f#j(~_(} zAh5Es0w|LXpe0!zkH=!MtgWqq%0}a~I^$frbg5J-0ZB#sv?@y!#iKLFw|bsOs%X)w zEUVQT4u@aAe%)m|n}4KLS$4bq&Ye3f%hEIrBq1#WV7f7xOirh>^*GuG%-sBk9bz{D zOx97jCW1Lbk|dXxmw|-RGGJr{gF&;|3?!760XBB@VW{&z=(1!0Ox97TngWx>Fih9) zc!0_Bcs$F?%iX;?1tx2DcD7Qf{Nc`67XWgC@9*#L?urdaS;ND_OG`^E%L0t4DL~5d zcszrHgP~9eU`$N`c%3ypJ)KUc!N$}MfMsDA*4x_)Hl}s}zk=`LIbPrH$Uv7R16`I3 zz{~359S?X}l}aTX4g(LX1;ER?eED)b9`DL)B6wNHjvdQpvlK-EkKA^^%fc{hczC!g zZ%`|8HT3)aU%!6svPYF6g=Bd=9=F?FsZ^8*-bR#KXNjU{Fc=gH-Y%4q#q)gkJrSss ztUw^}^5x59GO1Afw$P*8f@pJdGm%JKxpGCJ`0AtJ-jF0o48xR*uRaRO5=AkW%XQOI zUO`!XeSH)~?d|O;*M!O_C=0`|Kp-Fpf^to$jI#BtZZZYw#Xni-vSgsFEKwA@=}{zQ zWsxMgva(XGRuyeUHI$VV3b znx-3#29Dzl!+ih#9YxVdBod3oj7B4l;{-u)92bd1Se8vB5)8vstJP>U3d3+b9$#Ny zkHumXMG1mHQB-q`^F06a=T8JdU>Gi!%j@gwO04hH=vfd1y?y%@MNy;CI5|1_k6$Ph z3Mh(d{8FIOcE@J3g+ieZA3pr<3wFC*%Yhq&J+qZ8E3kxc@3j|ds_yg|Wzt3^p-Me=? z>t0!VDy8SopLaMMOG``jdc7?P{5RUuvmgi(1mW4UXXE4Jfk2=w3H%4zR)a?ns_ z&YWq!3(xEIRw|WLD%IY6{!E*P;Q^IO<NQ4~p%&6<}eihuuo8cov#K^P2%TCHZaTAP2|+1YWs-G@n1E3yuF z^5jXg>{TololfVC8#hv^R4f*|aN)w%)>a~sfMHmYBvBMumOXdwTs$5pNpfgts8}pU zqtQ~S)U0hyO-&&P!m_N>>1;lt5|76b1nKYZZx+1Ho;@3hL<|N)u~@uy>(*g%)10h& zz5edqI|M;Kefor==-k{K$8qU&nqipn@$qCb8488^`ub*OW_X@QQM6DfSglr@%|;Le z!!X%wwpOe4^z@)8>UO*L_xE8Kwpy*_aygU9n9XLF%T=jV5{U$cVWKEXl0*>1(9qCf za?_lw1Ip#{;^HEPVMe3z$B!Q_m#bVZd%fQ6?d_SFncdypsi~<$z5quMgyuMfAgETW zH7nY`9_4xd*B1{p8V!TNP_New2E(sSXjc{lL6Rgf3`3G+^W)muTDe^I`Fsx_KJ@u~ zD2jT$Uc24Cv$F$1P(Gg@8yll(8pANJ*Zb<#D;&oW1R)5b(P*$NJ2^QSjYgx&?+qZ8^lH_zcOQq7&r%!{yV6|GEo11gFTnG7RTGsDqPU`h~ z{o}`v8ygz~0|Tj4il*tYv9XPf4T2zG7;fI_peQPr%Z-kXX0urg!)mpf*Xw=${COY{ z7#SH^TwKiMa?{h(kw|2Ie%|l*KYsk!X0wT+Xt7w_Zuk8Byxnd;XtyI}9iB#`K~dE4 zUC15) literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_2_4.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_2_4.png new file mode 100644 index 0000000000000000000000000000000000000000..b8788580abf0893fac0e3dd7cda070d2f3d87e5e GIT binary patch literal 2156 zcmai0c{J2}8=tz)+i-6fDlLX)Mj8y+O2+nPnIT(wttGMz-D_kBW1FHMS!cMHaBWG= z4TG^0l2Mjx%QD$XmU#_jD`OeFMaS)S&*}Z+`_FT}=lMR*^I4v6v!2b%R#TnH*f`3|`Bhv6@@*}&s!ibD%4)6MnLpGB71QuJ zeyR)Sq@NNrY_|p42spp;Qp6Dv9J*CD;n7IEARlb6C1Ts^%!+3s#tPec?6tWomB+NhvxeS!nJc{ECgiKZ9N58AcJq$UvCbV zBqz5h9xZO)1+%9s^SI^+iHqKFMgs8*eW(;g#NK%S2KUM&0>`K2=Rgeb9bTRUSBKia zZ4j2>;zP&ep<(oU6yR_QIqD_XPkMp1cE0Ue8F)r_inC@${En`u*|Eij*`gT6 z5mk#i~ zk2?75l7G+FYRc64h6&?-^ypBZ*4h20ey0ah2r$HsyBJ}sp0jC*=`nz9L)aq|C81v{ z7OO7H$_tqR=ax@I>{;Pb$VBgZoKJ$RY+({N<`b0CV!Xz`5yPVpb4K^0SQn!LlgVBp zuIle3v@5$KmosKF$l8}X4sKzzJNk)rTIfTx(aIbP6^K`VqmAJ_iD_zdyE344s;@yr zyftmqoptTvN$r9nNPo4#;L^RJcGQ``5<*E-MBFlUyxnfSDAIYCk77{xLvS+r>0t&VBw8;UJZ4HX|`VHGz)t;_J!Q6q&69<&#Zpv40uxsz%?)m_&A9f#_ zEfnTJM}-UjqypT3F|p^>igPwL$g7KPIq73$>U??$rB!t7Zt6&nPyXxCW;WT=#|#Z9 za%1~fyH#{t9_J2Ars2(vhGt)57|aV^oy5wTO?CrAC0CT!YD~&+nouhG zIB{-7aaRGUhrwVchDHrv&1&}TETPU3YT&brzF2Q6a0j^st}``Q1F3( zcsqh?uFl`2u#Ch8|Dz}f6DZp3&OGRGm$@97)W@hw1?Mzi4!7FNas&!Zq^#!q@p3%0 zM)m6Yu9+uzZE3pqV|;l+tvU)9;kvR+ahjORDsO5Lmhp!_Qe|1zBvrpC2+)KBT4q>w zMBITZ=?#@5b<+{zPmajz(rAn$XB-dw$057WhjYdz}5=F8+2cet&a+ d@AlRY^IJ|Hm?hPiPrnF|fu4zOf%f&#{{f?3<*NVy literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_2_4_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_2_4_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..afb541e94919cf88037e5061c2198cd4d9fe5a37 GIT binary patch literal 2896 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_3_10.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_3_10.png new file mode 100644 index 0000000000000000000000000000000000000000..6f0bfe2f61a14d416c8ed6114c01581f1a8dd730 GIT binary patch literal 2203 zcmbtWdsGrw9%kCph;JD)-(wOmo(dEW-7XIq510>DYpr<}1xt zPL!DDBW-+^iY6Q%n-b%sW-7RB5e~}Zpn(MFHjh81o!Zl${p0@g-E;5#?)UrM@4J`3 zLLm+Htn>f?fMHM|;urw%(dR!8;I=o2!p;&5002)1A-+6Ls1T zNIwfBb~P=h+od7R#=mys*{;MsRpyZ0E+K7Q@8QB_6D9%}1E#owe5-)=M=2(bzCcrZ z%74PI;%XYSWjZE*oO#cJ{{!A?IPtC7WY|_9xOGyg4r$+})9I=AUW%=ePY$4PBmihu zq}CpyiY-6nI{za(#rcfwa{{%tr;}b?-*ha1DXMn3oAyr8Hf%zkbm>T%@_=@Aa2#|* zlqUG#^#!kS(BoDSUf2FY5#){?dlOr}fi#LnXW2iC&n!Z2e?9`Sx{(^jI?=XD9M zkj^jUWvwTLp+h5cCHkLh?o|U-c(D2{I|r3BcEOyNVg?!HmvGg--;zRHg|8EYqxpVn(2DZJhy&5e{#7kmi*nhqTf9kexbLNWL06p zFKpFbN=oS>6(^W+gg9qVM4YJV)hbQjyyJzUi3-JLhp%7>ZSpz^nv#CN`^1^!d_9z) z-}&ooJ`vWkGs;8NnLIkVdO8-}v~Owc27;i^Nas&CO;V9&k^$VZg-fg(S6=ssW=r3L zhI(e-Qa|K>5+EgJrTZ|JKhhKWVTjD>)%aS*w$7U2^KOf{k;ixlnd-!2v&x#KLyvQl zCCmHq%9}e6%OKqY*Pm`$@nLx~R~Gl0z?jcQ5bE*=Z#o20gkQ|=pD>60+A}l`wbK4< zAf<}#IB5?1>`HWpZd%4qfpePg71{FV$x>V0#IrzTaauDu5{%a?>*>1yg7j%^5w#W5nnkeAFl!1!gh~uC79umcdrAz>ZvC zFfWC={SuFm$NU)5EAK1)VSJQ3@C}3#Mf9g2Ll~|DPU@?>p=5>p+5)-;e#wiFNg0Bk zFnXpZcCL44%bWEvP}=S~WiM4_p_k%TPRj^V31;@99rm9rGN!f(k%VT+*B&fdR0vX; z&7xIm#H;B&*L}XpIYS}^OFJ7}4M%0&Xl@y85Ay!nRl@}yJZufTj<1UBpX2>l;e(rD zk`g@nm|?M7g-M_t6-QS7F*b}xUYYVbnUyGWL^>2>3a<~`aq=cYT78|*&r0wkSK&OT z=;@FFi3guMEyrUH1|yuIBF8Jgm@SD!amff?Y;j2KuKLt22sBuwTAEnOBDri0e+t$V zWS6cmGE#O(j!;Y#lk8A0x8pCWL7A)E(BiRx`}w71yFgYjT~qt4pEf({iW?I)(#j9- z`2_PWAD^Qe&3dV?Sizl`#bw@iO4y;l8NCy4Pilt`=PPC4T=Z>@vTnLX0(9pv`<>?D zVUg<8QxSJTJ!>O3Ub`#}$(TBn!>Xo(%-QLF@{EC;r6aL%YHW}%_!Mj2^sKOymXT*n zEf+Z~YGyrUaHVw#I>S_1F%Xj^<}BHThruxF%+GE=0`}V}=xdm)kIVjIY+adpLWiD;7;G>_T~sd zAfef+m%Z~b7W1?qqgaUeYeN2?!^xvZD>($wtJ+c%r`^7eo^~=TFs^nb8T-;+O{s14 zvUnsn0N2-(n+}T4SmF8Qo(EatIjL)YOuAuk1IqO2ir_-ySg@kjaoQ(=Ec+l)m|N0D}Bch&JC-m;Md^LG@e! literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_3_10_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_3_10_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..0a8cadecaf3b7f335557eb6b9963a56447cc0f1a GIT binary patch literal 2979 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 L>gTe~DWM4fg|BNV literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_3_13_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_3_13_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..3dab1303d98fd7221165ea69f697063942b7571a GIT binary patch literal 1482 zcmb`Hdpr{g6vwA@y>hq2>?2o{FmEnORJM$HzcMW$G0OXuR~}v0BSI4k8>73=ax-~` zOz6`x%ww_7jHZ@5l9sD1<}uuL|G)p;Kh8P7b3UJQ{y5*y=U3?I?x-lQCJz7r6rGUv z-jW*nBV-Rq^8TFz2LXUXWlr|6OQ|(0HRG{LZjhJZDKe1yUg@HlDPvsGaXGVy5Fm<) z|K!9U-+wtUl4?#TsJ4`(PDNNu>R8<@mIFsvzR5#Dk~akBqNcD_q7skfZR#tb4R-v1 z2XWVIXUuf0UK(bH0#c$6A9|7vrqv$GTFG>AhQxp*m~)5I#* zev`S=4*2&rfN|jemi9PHUxQPmW~d6>HcLFyZito}tVXt9@_onS?SEe`2f3>$8giSLTMFMKAyY7#!Axz~S0vdn4R2}UzrR6M8^u4uagR=J1%dN_X8dl#JUplD{8o+lS)lrTNnv!(KQQe z!t#z~i8sB{$Eq~Z)9V5bccp8t>Km-xkX{uGNeH3KY<15|1E0r91MT{o*>&RweMf}bsuRB=9gZ|+vW zXge4TZVv3*UL37dH3{@|rm!O#SZ#)a>8Jjs{HT~1CAj)fPvX)9tpKQym$SMv8}-o4 z%Ere3DaruHpwk^FY;(7c*(hUUWBlXURZ&VxN&u&}wze;M1^?Y;^YlV@)AhFJ9UT{; zwRLqDGPj>K3#wf|zAii(&Lm1E;lR2K%fc&S~GlbWJ5$z>$wg$`TGD2t|5D3=OGh<>(LFQ^D zkPt_Y^_@(b>E6^}&X9T18;j`JSQ9aX?sf#8&@&elQKVkp#AdT4zslI(+dY%B4_i=8 zg(Iy9=Mq1Tt@1uR#BBA)LL5$%-LN7IUib2E_&AxhtSP%861k8cfZ&|hIMf5)9!sPUt)U3G+CW;?u}B*n$G_V(W16Q^;ztd}GlU3JP=l6zUp8GGU_ z2F^fY2CMJ;`~w4nl+DI25I`wH52CQ+GZyeQON^AC?gB z>gv)XKg6&jEaAh~OrNK$z9%`}*RV}B?JwqEmd`+TbKM$P5|*cfnARMNaZx5y2niuB z-NZj`Z2Uv7Cehb7fa9x-U_JZF+)C`Z3X(1;D4;e+;vHm6lliJyLlovqb~MGxskuDvvw0(gP}6^8&A fDLeFk$UQ0D#S@J%s}_dDqXA9`cl&1ewVZzd6T#1~ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_3_16.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_3_16.png new file mode 100644 index 0000000000000000000000000000000000000000..ca31da336a02b754131fb3f703da46642231ee7a GIT binary patch literal 1554 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_sufo-U3d6?5L+y<0Xbf}tUB z=GE`@sn3**r!*;eUao7XjxYJ?{2}A#fu&DUB#wV%Ecv&Ro#DM-i-54=5f=_aK_?$v z%-sbohYe~TuFH?yXC(hT^w=41`&W!L`x7Pl{!e;xd|6Fr{Hi(guAerHf8qJD!p3gn z-g#%2CpBN*_2G8l4t6}|60~?2DcJbi#e(Os0nb;B2bc4N9vbjGwz#&qVf_xzmV#KN zmKhw1YEB)U0!idBW38Pw=M^)H_Z7&vLl^?@9KmtjXIzcSQK2Qqe9%Wyut z^iFJHKHttc)&Cl!>vv4&-g$eXfSx;M)NedJ-+EWFRp~MD?{jXR?Qi+?_)ngk;+*+l zm)_OzYpwzaMNeYxqEdX%OBif5OdO2r#E%%p4rP(c6yZBmg z^yFFZ?rd6-l&!z*p5~r2FEf{RUw?brx^Veg$1@Yr(l)abE?#9OrMk*N6fP2Ja!-X*AkcjX!g*2lP5_^X<9yhm@8U84;#H z7;i|u=>1rO`vRw#?48T40a(OHomGQMWH9r$-Q97#uB=; zv8_TDSJ`TAZw zY*1U9J-hlw!9Lr$zPmki@QHLOY>MUoJtc;i|FRNMT+3h#nBlJlKtto>t!Qp_87k`In?|-) z5bJu{OYlFUEaPm7>}?u+rekC_2$sZlEv4MRi7xt}S3I83S?A`d4TZy1r35YI<1 z?*`zP2{KFXPZqRd`JWwOy`=HsUh_BpMgG_Q=PN`;W@@IVWX3aCp z%dLi~E~U-Q%|`xh@!Ow62n0f6A{M1ErzkwV?CS+r{mI||HDPh2yStmkN(sqdk7*HM z>nYl!ENE_q)Pnr{%T1Gxj*g7#BZzlKPs7aOA|pE^-U$WsIE>$t;u^fJ4T@~uO-)o+okNK7@>M>c$EfDT zR*ZIncnoZnmx#;{nkBkvB@2nS6Tj_X*l>Fkj74)RJFh2ti5KNQ6{9*jI?`Qt9G*x@ zO6K8kCMs+=d$FEtp2?L*K%6bkoZ(DPruPJL!Ww7zOqGTLp7!C?j>v883J+bY#GS3_ z*0@Kmb4lS>;i~%j`c}g;jHpl&NhlJwDST#?U;*NaB)ew5v&^X@SWI1Rkd>1wD=R~? zyFns}FnO~Sig*`{NF-KcTYU_v%F4>dtZ4o;vJ@Q}8d{=@H&MB}J~A@W*Vjk0jP}FP zq1Fl8p9gaF$r@qd;YmAND9_Qan|!qt6jaH`@71sTO|=XbMN;m-;NrQZ_ak9u+Roc^ z24BQsEV9OUBNB*GxFvraC^jqrYTh*-7VIX1H6cK9oOu#d>ALznZ>%Q&S+nVfRrK|u zdG5M7;`!vtM56(aTtITlfjH-A0P{qa<;wmYKC~OAk^Bl-ARn2(JJGm1)ENlI$$)Jw gzkHJXZyQ^as~vDtuG7`JC$e{dv%Q;LH6nog7xvNN^Z)<= literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_3_1_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_3_1_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..ae75d93804c03d25c34640d1ab37b543203ac1e5 GIT binary patch literal 2989 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 H+MoD0&MIKG literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_3_7.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ls_3_7.png new file mode 100644 index 0000000000000000000000000000000000000000..4d93e0deb333f2633fc45ada46a7b28719239958 GIT binary patch literal 1740 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 Hl+XkKDy0>7 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..7e42730de26589bba394903370a2af28460ab3ec GIT binary patch literal 1476 zcmb_c`8(4M0G}L-5TWLN$(&yyN99Onjv0G<6`A9e*Dw*4oI`Gg9?divO3s`Ub2Gdn zM;LlVDqF4Obv9l%>(yWI{_;N0=X##c=jRXpD#}JgNJa<*0*N4O;f_a+`N`wQj`T;| zF8*D+Lz`-Xzdp}!9WV$c(CN5Y}_4LHQ6Cr2uFfC2j5;-^?2E5cpnD1hdvkji?=Vj+YFVEpj zI`&m*o>4O+2cB~eVof%lMF!86lWxC<^rht($Lo4w5I6rnh+PZHv%j|t87hUn(R-1U z6iv^lpY;kk?Mf?&?Q5F=?CF|u!YWEU+G=RS`Dr&(6wZXR)9n`M^lD%wT}W1vOG~jR zOGzzgxv;H^o}a~v(Oh@jjfR@f%EiP<6S$h1%N))JOK0;&AOoI|C!Jg_UZ1m$|k11=%>hEi@5 z2f%GdrGD7bVsu-1i*+UM2Dw}wh!?FYH-()F>7?q^Cki*#czmR8MWrsU`UdEP@PtBK z(E%w7%j=^45LW-WI`FjLMIW@${`R;oOMdEIKbdE;H&hmdHW6)P*N58%=ybI6t{NpZ z$Oz1IgI@;_LU-jToz{_8n-&F>a(?cW*2Ll`DX>-y6kb=C!o!@T*uKC_W!@{IZ!az` zuWKKsC)vFv1xH&OC08zGB-uDmNrwMemQ}tpUn!x0&gy2!U)C3(c`up@;%oWyf8tJ{z6?kB}|9z0_<^7&IgC#H^UMVVYh2%sq2D}?6lwmVjiDS^n%R#-if-E zR92EB>8Lc*Bj5(TT7{p*=J(YMaMPs~4jLeMtWNcw(8-up`N{j_&BOjdD;#=T(U0yq zrxebG0X=v~_&+2mszZOwF4%Y7;}e;4C2GF1|YvMHO;rPq&e0i zdAI{9Wk7NY$y>4Mv;^`=#Qq@xDyix4xM6OWr8BC2x8gH~cW*eo>|Nv_ZWV%EDGTbn zC>T#`An#*WH$-0sDjfDr`#r*H1kkAaW+qM!cbP5y2rQ4bk6=z1Yl|5j;M#-LKo(JX zv!dqaK+t`S&JaEF{|7#_Q+a#S?iMb^b4pkUA?%s4PM0co!A{5zG6NX zEMAbuh@SOgq$sG?v9<~>34h}mru-J`%PleANa0Tm(MW7(VIKE(Rf))+IqjzNJSf|F zJB&CkF#gZk_m0H@5d*A(Tg6Cq#Hd{xZQeF=jxSiUa?b+zWOxfvMr4YQuBN!r&fx7H zOBtW^Gay2ni!JT_zhhOk*j!tJW&G)(o#H$|Z^TF4?yEumSWbDsD8}b-10D8pbK5i7 zS`GcjH+xl0mv;#^KjTQbKEJ0nI|bDci2QQCMp0wS;H|Rp(5aH^EwDe;tFQlBx&YOZ z?cGw8r^o{^&9Ma)WYK-M=C%EUW5q;(IVoSZmp)h!@_Z2KY|TN2<)tF_Jra%3`K{B+ zS1P#&JB&|XH<$JwYvHR*6<-y0m%5R5Ylc0noA^WTp>0S&u~bES)DUG&+ig=ZcE;!i zCEMvqg4)*u8KtMClm2y)1Qo)0XZQZ>zYR`EUyYnggS)&`p3ZHr`JrSi6|th%prZR< a*a6SDxQ;@7qIHkn8HBJx!Ruf*6aEFB=*}qs literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar03.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar03.png new file mode 100644 index 0000000000000000000000000000000000000000..5c105fc6ca033c5d7dbe9d214ab434a238f621a4 GIT binary patch literal 1023 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tJ1o-U3d6?5KRJJ@;HK*Tlh zucBz$>|dLFyJzvSRUe4)Ik)mbVqxmpd)16{=T|Y*SPMG&vM-NyUvGfq`N;AaJFi7$&yRTJKRA6qdvE#Phg)W@R6h{!m-=-_-tnpL ziVDv_y>RDYx7~9y_WG{p8iOzPHr}khF6}paW);()ry*heughXy>WLp;^LL%OjKTWz yvin{X=M{fgUePx=Q(xNq*!+g|&ju`2)G=zzQ}<20#2*LD*bJVoelF{r5}E+BDksMP literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar03_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar03_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..317fa91a02dc0b2b39f57ed412b151a078a38168 GIT binary patch literal 810 zcmeAS@N?(olHy`uVBq!ia0vp^DIm@DkM7kmsIbUrzR&0Ij(Gr zIPrB!z>(MP%MQrC`{RG&gUNEw$Z0n!4&~~9&@a?!Oy-pFeh|TQT*zYDfsHJEss+Rg zXbTrF@WtetW^d(gig?&><|vld=6@&8Gj%45AJ;PLGsoY|yqGsRwLVVwSG!_$ z^_D0Z*_V?q=STi``Yh*>Zxdbf_tn$S=P&K%+pzVxQ}=SiYQN3<{5DtqbNQpL?Rnz! ziik?Dphgj)RGqa;w~7R%syV1Co>fdcKj+D%wtwe{adOj-!}b~rn15B~e(W^AKXYyO z@l#X(_OriVxc-dFg|{EKE>O?qaA3nP`j zz5cIR{kMp&uQipPPB5@0&q;UXUgEglPm#0JN=#vi`M1s)D%S+I9cA8g@ebd8z8_P& z)R$hpeE0HP-g8rCvV7w|*`AZ3&BQWee@(7hr)h)fmZ$E;v)8;WN>^xGCzn4rXWgme zr`qj3+16xfGle{SclPM2LyK4JWb99$F|~i{Yx{e;dM}TkvK3pUld1jh?%JC4ubRIu zh$pvhivM=hK7!?ixS;&M?D(_Cp5l+;881503_7H>AO11iR}{hbbmm3nqVubhh40qh z&za<9ez@PnXp+pbE0Zs|tqn}}+m&qZFmHnC(b?bJrFyl??;rmk-@a+d?bH?W2ZhhA z;9vK~ux&|@%=4Kg-`EXwJa>mAf8)9GTKs!Y|5y1>;(PF>vO4CL>C5Y@xvGBw^8kaV LtDnm{r-UW|zTIx` literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar04.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar04.png new file mode 100644 index 0000000000000000000000000000000000000000..cdd5107e54d31b6bff5bc6d2600fb6a24c469092 GIT binary patch literal 1255 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_qXOo-U3d6?5L+I-UC@Ou*ry zyR+umbB2|VP38)xU)=C;qw3ZhN|iq?)fpCEIFKsp==<4*f5GQyTZTJxITY2LIywcC zlv-vCW9E%$+XGX5FPoe%wmn*WeSYz*YxADYR4wkB;CP~#m(y|LWCM55SZ**>%AgtJ4c-qv$g~L*?h^IWZ*||mLP%k&w z?3H(`fhGVAU6QvSs8v(5phwZ^MCXJK(;w!7PChLnYYx^6D(((`u-=8kP;ire_J?|x z6MZ5-dj!OM$07Y|IB5$2fOOAizd?CdnE+>wyIhYPsuA2RU+vP->$PZJcmK&hZ zI-GR*iQwslx~E>{?zY@kJdORh$=t`1+mFt<{A1%gd70#%m+SBQe<;>_Ceu2DBl5ml z_J>^{gMfCeIitI43M5HQFx}}I4+{-t$*QH0~%vx5(^5e{+HTSm7 zPPR_3EbzH(Ij_+Fxy>2pe5v|*55C8ovg87L*rsqs^p{Nt7l7@9_y*|G^qQ6T8zH7+ zWVW9Z^uPWVfH)AQ0TPHnkG%i9w9Xty?tCJ<@5*~mNLau%KtdzlPUsytBvG6JQj|06 l`ObNad1uuID#zP1M!a_^o&3*kJFoy_@O1TaS?83{1OUv~)#m^J literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar04_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar04_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..ae40d60a05e680dab4ea1530a1f1e43aea05180b GIT binary patch literal 1317 zcmbW1`!^E`0LN!@rLnc8a6N7)<#mm0Zb!DZB2%Gh*j&$fj76zvW5}+k`uRAW}mzggL$JfyI z^pu`8tD|G``LXr^MyeJhC;g}1fz!C8fca2l~aFB&3ozknEZcfl>O(%8%_Z0OS zW{cqaoSek)D8s|ir{=~>j%3N3MN%#mtLC1lAho<0lgjSAG>LhM>{wwY~=mR@tZsR3f*`CT=mT+I>)(?u2B&adzBgdLDstq#@T zBmcv}GI^{(x|XDN3zSK<6jd2i;%Be&s5JUdJczXfB`A&X9se=16uW`?NEE+0d2{i=M)Uknj!O6G zR4;n|FkZH-mzt(@a{>{1U0&;-YR{M3BzDGH2ROvwPMHE0x};7OAmu^HzL?#fftM9^i{N>i~o2ipK-Wg&1(5>|nMvQod(>aA@-NR-bd>qW28$d{sGUTe}r4h?M* zbX2_Qm1w=9p=jd@MKp%Hsk&)iVc(uP+IFk!E!Agi^~1OQr}t8p5v4;9^Fu^~gr9{1 zlASXKBQ@CP>?~`Mje-GlAmp=IFhnJNCj;%a{JZs>qDyW7^cQ@I$P%GC*Sfp~w=trJ zBZ>3fAI`XoM(PZ2mp0@CBgjSUVe6YaM-XdwCZ0CQU$ORB3j_DD@i2iYZ08e*sx2l6-fBXyI`f)V? literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar05.png new file mode 100644 index 0000000000000000000000000000000000000000..5587db516cfc65da9cbdd0b7943aaf7944b487f5 GIT binary patch literal 1404 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_oAVPZ!6KiaBp@8y4LT6LAPs zcszC2iFucfaG#nKWWaiSW}s5A66=FU^>c!EZP>3EyN|soCV%^FrjokV{0!mhP92>B zNlGm!bhW+OM^rChlMPZhjNT&0BV?`(E7n zdADRoDU$bSf6}z@RM?N zCpY83x^g?i!_#Fg*_LY;2r9;x&SP&rETq`{qxg_yg}T$e0}^+dI4ZABWIboiCNAjY z*Rtn`#GO8l%6UxYs=z>>pf1@QEv$IN<%Dt1LD`N8{=pCITsRB`KUp4okmqtj{YTG> zc`heT#^mtmDLqLRyEwOVLc7kQ-@=N^3r`yE=$PQ%bI`eCLcGO}1FQQEy0*+Y)XE*> za^knnB6cCgt=auRp*@EsY^HHkp8jpvF03fas&`t+>E4D8F_#nmVi!9=F+VNUkj-1^ zNdZ@lcZ-0q;&CIk|L!f*zfadccO2xBxY>pkOrS)fe@4QFU2u~5zNF0Sn;5IXi?2RK%^cE4zIv0&c);sS`vcV0qfE=T1o=|j1oj3hHVwuDLP ziDlWvvz-MA#~#RlwXp1dA?ISDwflt$Sc|4)bJ@kYARA=*cON_nVmt}HBk<0>rFmob zId_n&JXRTIh~K?hwY#^x_Il~seujRVsaGcm_9exd@7uF`?~gU7-}j%Z{GGhK{=4Pu z`16xD^nrb&C~t96&&m+uHAtWV#SeclTo?(>=9Nb#|6&H&h$YKUi2t#SU9ZDa0x>h2U5eX)UB4HA@_I8{YmQG}0eBf#oE5ce0 z2pD<|fncp0+HNJ>bO1w)%s3>7y3TulmUEAg?B4yMTpz=YY&rm0OrF}{F zrvPb?o#Hi_bZ=7ur_X>jUjEchE#+e7tXZFlxILp}H-QrjOB_pE=w+_ZrLz5B9Kfyd zsb()%0bn7sO-4$4@Eh(*r(M;H#&ggEt(y2z;vJb^>3RVXCMa_bN4kk89~N)|pGt<+ z>OS~2try^uH4X;so8xHSZ7^`;m7SFG8cz?jB!R)$B5t9nGfQJxq{GZ=+Oz5{9cMBw zha266{cYUwvHimDay0!kY>TbK42 zQ`TRsk+`sdBGJ08Ng#dGvyEs(y*4IyypCejKc}O(Slim~QzVpe+IbD911DV;voP%( z`ECUNsNnHvzE*C>?)^VaAdPo2jJ!eZvz9997V?7`-nS}z2CY4O3LZZu5Pc%iqb;Y* zFOh`z?hRprxa;$4O~f#EwS8j6T(VM0RL_-(*DOP^p7M9OXs(l^MZ^{L2ZxWHL-}Cj@0eS-t%_$IO%-%_k@S%PJOJOK|Mmt zPP*Usz+%yJ4t&96VS)+VR4$(54lNCzpcPQP=64MY3RLROMT-GD)li?p@<>f!a> zZ#e31lfhdS;CXwjuS)7-yiCKYTH_qbUxfR9=bwSrBVv)cN3#V%g?y&3uWxnrtD~5w z<^3}?I$9gIdsC9GOV6ib`~#7rT>X-?5LR$P2)V;6wyCM2amW@ViW-Ww{W)t-QFnxU8(!dT?Wcz&%F2Ck@rk zsW*Ycb)DU9J+UW`!7DHHjOjMJi5sx~U4ChCGtlVgC0CoN@~MdJJKVM2UZy6xDPT2n zr_*tU&5R-LVoc-~?&6W?+lpr2nww67B~fG{LBouu9wa>89b-`Y*~6S{`jq~ zGy<(KOkDc@F$x1r31H35MF-B{+~8gAfW!&P^_9-wtgfE;0YXfb)Jyrv8Cd79IYdd{GtN6g`OQoI`)T5)hf_S{73P literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar06.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar06.png new file mode 100644 index 0000000000000000000000000000000000000000..5e1e3c8a64517395a625c8704fdea61709009d36 GIT binary patch literal 1240 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_qY-o-U3d6?5L+KAU^jjlu1r zd1IEB{kC3&H=kR>`FNT6rrIr~S zifT?BodQY2nVJ8Uao(rnEBp(le|(+$J4pT!-{af4x4(DZK6n22ZHZ*-XD4;NPuvT8 z^CUniC7i2f4k%2%C9};}aw=PNARQDqDg0?4SV2KlIa9Kxm!qkhpAi@B*{MW;9ijCCxU4o7?hsmaoMziOn#Tl#;@%3ZovU%u;l+4 z2b()5@N0gk02%Sq()fp_%L#vt51TtcT5Z!l2!oZer+p~yobW&B!E#~6BQ7WQ&p6n` z@zbwSP|(Sz^bnSA@%@7;ZduapnC%bj}lc1N*H<}~r+JN|Ba9=QE}dCd*` zV>2Gd+MKqOe`>`A4s5U|AmI*XTJ$#m3-$*E3p_rEU_O+o3EOV~aS-wPgg-?7y#@6) zHcN7HZimfh)H^E#jt1h*#by>LB1tu2<9>#-*B7v}cfHjDmRJm)u6{1-oD!M<_?5nD literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar06_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar06_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..1cb963cd61afccecda0421373e797f2e3fd99ed6 GIT binary patch literal 1311 zcmbtUdpy$#0N=*gWQ~y|@8{LlW$N77@>+|ni5it(ddOLM9O9Ur>looCmq%Xtpd#u- zefVXp2#YhBjJ(!tJyx_V(Zev0PXFJ3_s93~$M>J_=kxu1vkv-tqjXGkAP@+ON+HwN zHS`-0uyy{*hG{?`np0G=X8@~wra}~H!!QyBCR{&u_8%JTq^(|=#csTWS4T+`PIu9rIK>XOzG?AN30l-N=7(*Q!Jje_whQ`RcrNRcZEWOq5=&DgEPtM#scE`EwKtv@2 z$RP2-`V@=UoyyaD)RW#y2Zf%9Vc=f)v1ftj9Lo#h(bQEeBBOzj7+IApYgy2e4`EK5v$o*-&Luwgh`h20cjidD`h)yP*y5VuFChlcXANmgV+MKZlf8xY{7 zVm>~$#R+1nI+{)Kxn_Y~Xq=0v%8wa2l!&W4Qa2e_`atZ_nEfbhH-ShbS^<5e*C(13 z8DoZb+jF}6e*@6?R*rPiKa<%y6GAv%H@d&(sYGJp@)q7Uk4rRw4rLH7#Id@nevFe! zXBSS?kIgWDztJ%(R?Lr|J6uxw_pYSJeZJZi!M5uq8G}f#suJ9j(|~6DTRwU{A^Iv2epwam0n(UZdD=HLv(XZ<(2A9qD0;{WJl4*BIFW9&zHvp$Fwi)s& zCK2GY*2Ip?xx#^FSMke?dl<}GOsE`9i^n@SCN)?)W)j(H3~QH9&E?T8O1YqzE@?KqYZL$g literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar07.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar07.png new file mode 100644 index 0000000000000000000000000000000000000000..7cd5da62d2c41532bf5e6401fdd857a37177da07 GIT binary patch literal 1394 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_oA3PZ!6KiaBrZ1m@j#6LARK z6!3k2BJ->EE)n0@+mk%v&V87}%EGKV{r$u#o9?~;&idj{pghAmzZL;u#Um~phJsE$ z!hDFkbix#p4-26j#5gpwdjvok3Uy8 za@@RB$t9z-pIy*sYU8cnt}QvsWSfq^g zdJ-*mac}2@^${-o3Qp%9%}Op1RE#%Z>sNHLD=%oAF5BGAVcD!LzN2G;f22#lic^xf zJW%MTe)5L|r6=(={g(4MPHKE`Z25CoX_kOu{pOA^Q0#BgIhNqnBIDb*Ul5oaPAu#> z_+RMZ)t?V*KndjGQpx6Y1)%dj?CLo#l+n! z41WkKrRa10Q51~pb2m!geDD3^*mc*g+AI6LUAZRj_uORr#W5DwzLs3y;eY(W@m+Ve z**&w{{bHBS^ItaRiL$LTIBw2!H}V&J*jk}d><0>`^@q5BT^53*(72}9FK0kjojX6f zb22E|o=CeRu+Ob!^5*V&^EnjN4$b^I-?bg&(1NIUZ0?FqW(nf8?H~!uo389iPWMv9 zYbSH4r||T-Lejd$?B?=7^OpA@vn)jWQ`}UX;?l+Mwt%!$-f(4Cb&5+7zuU#3p2*V& zj;Hk-y7N3*j5l=i`GUgbL(jpBofDStRJ=0{q-EnxS9JxadCB5;=Wwv6@tku6+2X&U z`<-LU;!WLt&LAxlCK+ak-|Yk`|F}bXP7jdbRCk2;VV#SG#O@b0An)}pk!mix7`yiS z?~3{FcSW7F*t&evuD9iVe|w4^MqKY*Uuf-nsK0b)ZRMHEK8H#p{fZ{(M!Exy0VbdP zIcef^L2dzZfawPqfIxc^f4us(24pZWi`N{T{filtw7^nGszAE`KlS}<2vrCx7WxjJ zf29sJ?n&{zEAnoTpo16(Qw1{l(ClBza7!U3%QVctdL9%~iu*rL0;WGKmI@@j{`>B% l&J-V1w_tZ6EkwVG_g`3Zyea8`39u|>@O1TaS?83{1OP>27MB13 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar07_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar07_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..71d5f91b657c40d1854dd4fb59080527353ff68c GIT binary patch literal 1602 zcmb`I`#Tc~0EQQGEwSUWB$uL*l3Ka+#7X8d_abW;mP?e|iA{`h8;0f9TvI4Yo5@_3 z%5~de(+ZtrV-g~lsZq=#r}LaY;QVr)=l#C-`Tl|r@9t{9TV6vR008WUIY2M`a?n4K zmH5@$$r6$PfV3P8YVCRBuAtH-T;(F5?-pc?kMVJOOsva1jMpp=ok^A6bD)PIDXn<( zuBDE>T!K>8kkn;2g0Sj_a+pKzosl=71Nf~=?&&~bKy`sv&QcqUc2s3lKla57$Qzpo zep@qSwV2N>o7p;%x%|4~<@V<3)lQ5lNlw@OnN1@mS*JP(R`vhkKAl8_Kp+GHVJOsd zt((PSwY8ZJAm=uMvmb`EM`;ZYQboPVN1)7h!K;>0xH|r647k9d$EP<&EEWUtP&pY) zT%1p*_HSv*%60)A`jd}pyS`-1b2&L5=vxPBw?8Z_GMARJv!6r<&p)Sxji{$sR=bA^ zDhx0D;Fjpazd4_TO7c3;v-tPSAv0#^i-Coj^IlAHDtTp?DMZ;VxgN|m-zaaV*=){x zc^pqYdM&-+pk~{bhYW4E()-JqGN){-u=HJJw9&ZCJA8|vnvlNg>y;tN!If2{`=whA zD2zb037K!`M6f2F>VbkQ75UJ_2iy(CBX>x{XW784I1AC9KXN9T0L`lap}np@B|*}V zRN?`)2##`OU`ml#wola8ApI=usj9Q1{Is&ut7+@3zlgMjNtQVO^*(3w@nj?x8g9=e zDHf6qhME~xj|L`GgoKc}6h|r9LULH$dUMph+$3-)MoXu&3AiIwZ}G^L{UN5ru=gc$ zxn!04fz4Tyr;ZJfwWJGcn544qesSS3%JGFkiuSFv0z5l8twQp?JB z2-K60PVwKKdX5}PBnbUv>d~r%^J1WjX@zCXtg~qa(emrUJ5pd^Acw;-9++drMeEu7 zbvZOO{=n~xnDUhEr1Ihw>L!cBU9-Af4KBfrQSs|L_JTmArKQpSH$8o^4p6l9;}Q*2 z$9&W+&%~4)64ILL1@9v{oT*ukDoi4JpVo9U_SM+V4*#g1qCy$irtzX8&22SpE6aMb z6DM@hN*BH$-xN0rX>l<$oyw98eeTCy}yn#UBUR` z^O7~~kB}I$iPNH^c!>$>>x&)u8Gl5~tM9|pCVN%N&1w9KGa`i7F-yoRi}5rwZRL`- zgd&*_YtT7uzZ6gbQcXds+x9k4Vy8-Y#=z+Lb=AvX6frZ^4?! z8$Xn%#v*Bn8Bqn(nnt`9^>oz|+Vgv7GTG?zTDK9Gx6X%(>cZGs=9ZTH!NCB~pFE@- zFzK6m1n&w8nCwdsiOXu$Z#(z2EcW6)4|*Fsk40pla`W=$u3K;=!C-Jo?CA~+Jh#VZ zToJ{;j5h>HPWn}XC_V`v`)dMAa0+ttjFo=*O!`<`gpr_oZEdYsEeA~U7~h%ghlm^U z11PD}^2Z`PqV*vr^0iQ;ttyY~YYblsRLpdZ-moS?jTDw;mJ#`#n@5H4s2eG(6gF-k zW`!zp^1A!1;_}pH4AJ#6zAFe9tr@T*i+x6KI;$(F-Ikvb2{X(7$hlb0^{2*~#j9O~ zwRu_P?6fK*9!kQY=9I1bb%KtI*8$or?*Luca8oI0!gu~raQ4T82#s>mmSlyWX0^>2l?7|s9y literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar08.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar08.png new file mode 100644 index 0000000000000000000000000000000000000000..d62ad0274b1eecf790993e8eaf6a9f4e156453d2 GIT binary patch literal 3478 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar10.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar10.png new file mode 100644 index 0000000000000000000000000000000000000000..6486b4f0dc363c951a4242cfa457a2054866ffeb GIT binary patch literal 3738 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar11.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar11.png new file mode 100644 index 0000000000000000000000000000000000000000..6779b0364a4c58a7c543b7f132173decab20dfb4 GIT binary patch literal 4347 zcmeHL{XdiY|DSF@b4U$G%1uYsWh=LH*pSKx+32Ftkywu0mtxG_X*iX1n2~KP*(|aU z5mICknl(fnC88FaiQGk}nDDtepYsQNe*FIM{o(rI{eC>&*X#XyzMjw5>v>)29^heB zqZ7^^?+tgZJSVOEw*a!#5bN^Hj>{R93-nEUqn1fx)i|*uzYn zC)3=fan9iRFTM3&9xf!E8W;2pE?4>Nm-sGM#>;yGNZv{?+mm%$VDI}6Iluz1ZhgGn zaD&+K%dq#J23Cug2I_GQQ~MaaD|;T<=(QHO1Rbt4E7S^hzzY~ zs{_x)-_8~mF%jhh`iZY*l^!566i%KsEJu^;-4oZre!iDPd_=ff5&8W_BdfAhFm6~* zk0ILdy;{XhB0K7$&gb)w8&efuLB1<}NFGZec9c*&gsTe+FJ_f^h<99l(Tu)BC1)5& z00GS%7!vwR9ma!0Sd6OKpO3x694XVmmoug4I1#@PWrFn66PYQrxvZyFkq*EsblhLW z7Sfp7m8W~D(&KF_Vr_2spgiAJJF9MbJQ5~Bn0&G}qcJsy1in=RHBz<0kvs3&jaet4cX4qHRd)7==7O=&ec?k`-X^7YS`el9P!S z?`qs{^)6j|pVoN;o9oeN-dFpQv7Z#d-FLQIC3e0eYAH*7EEo;6*Ni3;Ux|;nY4)9W zn(sNA`#r&iriLt#(9x6lBarsHr|1hz*S zsreDdFD<>qv&N}aTp;47+9a*TL4ohN*l7Abv|Wtw z1|*LUZfikg#2(l!!l(Nud*V=BB6_-4W!Nwasqrz{Ig42{u1qly`=53sAg5)z!E--Q zU5)xzGAsIKfrOAN_+#*#Lu1J&mi_K+=d z{+!7XJboM_AQ(A+1)W^+y8`4Cb%1ZkpUx5d;nv~@KY~gk0E0i%^cBJ$D z771dew^tq{Is0xG!1pKgkY7Yzxrz%8e{4f8Iln|R)nk!Z_4 zonWCe*X0Cf%D2W;FNJQgy|p5hm~1?wr9EA;0Wo=)D3d+UII`bOYJqbiZSVzlws;*E z;o(FZBgO-xOJu5R!+`?@%={rcUm!S2xVmT49x^IGWYQJ}e7v8i06TsoNewPQ(JZTI z&tHrCj$4!Z#7I*$%^YfhMS^NIBBOI`=mQifP6OX^%Gw4V?ziVOMXTs0Q<<*4lEIyo z*|J(ysIFxxvtE-y@}9wde7I})J~c`EV>>?r)?KnTS>I4?7GpDL&i_h1arbKbL&fsP z$tdjcE3m7@E_>OzbFSHuW|_@n3C};b=*pH`*Jw>=s`a(-ip58l1TAq{GST`k#aAwM zT_P@+8pGz`k4EHdl5_UL3pp#v7jdPLl$rrovxJK6Qs zkzPuzw{TVU{EKJ~A;B)*G;ZI0FirXg!`FQO%97$_&cSV9UxV6tXP})|d{?#VT5@!B zm@v%}T!^FU1b*FBhxK{*3_~XBwKP_`W^X2tjf)I74hfpy;c+RKLjs*eVzZu%WpQ7M zLfty`7&h0e|C;t_(5UHRg?9?XCoB+yj=RP5$mnwmu?orLLR|)GEVn5(;Fq@W$;lm< zH(=V@vBM>k{5N~Q_z%$fM^Cgl=U8$qBf4d#npws<2X#SpY_U1!34V~veJ(b8+Tn6z zUFo1_SU1H7Jv@`t$^q{?A`SFww9Y;*PZhn@AE(Txn=t1w(nd$1f2kP}^hYENqq71%$fa#mGGjJ!T+Z_|t4~&t@VA|dXrW^U# zBXXLkRM&}g`_BncRnF60fN$PKXHH18`j@wr-%)faVKXg5RLD@2`FXAgj~d1m;2K}P zb5HJ34ZtKLSyNrF`^C~F@(T(QXwNAw&F&liF_*2{30hf&SaMX>o~jnvgUmtVNvq7b z+Q>j>v3QQ!)}B(QHGRPoZkxweO@bhM;Va4G=gm<^H^sMPUykDtuvLPHuy|sfx#y#o zwXWqdESxmAw zbw8ODm3_q!xNcLNaWe5X+Uj#_IC^|yxs=OdaO>_cgEi0Rt~sBC389i6J^7{jUhKRH z_L>Y=NHeXd7|=Q{C2T3^I3lx>xq z${{(*7UhH@jnzG+6>Td0TPvk!3okM?QJ3wpxp%7sA8b)MD()YGNQ9#GAX0E%$Cc*~ zKl)BirYpGS=cA$_~$_KPzI3ENDsB2=S)UczeRu{=N2NktoaPp zw~z#!v|2mG4?8lOnLg0r?A=`s`$1$xWcLT`-*F7-+8AgC{oUpXS4Xl8=us9euQzhZ z#(z5vv}H)gv8g({%J~3U=|S~(NUsl-E(J^lJ)f+(Gwr>X!%A~XJ#$&5cOuA%P^1PT zUz(bxPr!lpqdzh7_+j1GM!X&JZ}Mu^+#!Dxbo>CLSh^RwhU9Rv!99rHD`Gfz-^$E& za*oV0#OSw83GCO%$uRAweR?jZeu{GuV4@^Old3vkwmI zZQ1;BD~zZSK30dQTHBWM)_=~moh<$Qlz3&fQ}Ok_%gpZarsneY^R>;qYt5b2!Rxkc zX8$Zj+aoD`U)cg~jFY5(wt$hzYBPd(0nL|h?;sM}*r3Kxm(MM-q8>3zo7yr$vmpOr zlVfS4eP^KJn}x+j#e2`Tvl8+NC`BCOVee~yKjn^5pEgyDjdoh_vguaug{xHqW?Op^ zCgQnJa_v3yz|kOV^uNpKq42Tcc04yCqPyF(CP2d;N!27rIs?mAAsx6S10Nt@m%XQ8 zY86|~9Kn`#qrD=w(|qCT#3QnxhP*77OK2;VC#9)hv!xSVYx3Cngyc%U;Z4UPKBT+D zO|3%q#MVmL%GO|Y`9Ot0m$xnnvY=pK2;?-ryNg1fngFalvJ$EXHqokQL8n(Jbrh!6 zH00hrYWOq2vrokI#@ONL+8IT9=a8%j^$6~;pZLiB!er4RH^8rRV>1C4mBd2wH$aw@pO?g z1e1~JFW{}6m<4R2Ip3x1qC0%3i@)i$9a}`r$;r=1vXr_m75DFs;aHX8U2=d`NZ( zo{xmhUiksCf8#gZuhW|xyaN-r$hs?CpMR6<7P%lN zTYPfzHrviicmFR!OWzsjJW8Zf*Q=vd|O>&5>7zTE)S literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar11_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_materialvar11_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..1216f4059e83633329915bc80eabce56817e4760 GIT binary patch literal 2469 zcmb_e={FmQ7ftO;BUJ4~ON-il3Rdh;`&*V?R`#@wGHRKzGN~7m@h0F zAI@6lm>fP@Y@UGaY6dT?v%zmPx!mGWD{g3wR@%?ru5%1>q8uEk3p6EO9Pa$=&hKpZ z{~G*wLw)nR($LJ*4M7n%A28^jmYS9gy%yg6;>jH4jOGTyz412C^L(L<#p_sGfla_5 z6*b@AG)9iiC8j9z6vLo4d#AdTp~T%$>*ly@#>5OYes3yvsfV_ZbFku-u+>ijz1Fne zsW$>;?s+2G*xlwJqZ-d{y7NQv=-dJg ztBVomPYC$lew^5D#XU&*-Z8&1f_K33iN`VS8`oW?3?%D+3*f)<#PM#Hg0mcCBk2w) z-6!F|O7&N!bMvW>AiCQ%Ai3@4bzwsP-Lu#D zYtE#5oM_c|(W~UUW#ex$U1e51Tn~=to|s}BaA$N*1dH5LKvm?=$*9r{AD<{G%d!uwXn~2!XhW(KpHO z6cO4eY=|R^PuMSM$3{!EgZ`O*FXg4{<*VtG9CpEaGazb49!BD5ZDRxHPrs;+g^ZUS zmB3))$2;D$-Fsg3uG+(p<0%z;p?o;c!IS_?8_tNJ@!W%1&2hBcPR{2_lFBymxd&P}I4+z(EZ*2F6Mr zHY1a%Z*eM31$=ONOn1oZdvGihq#j-G&v^O6_Rjd-ob2R;&3<~k2ld2R%hjT zL0yTqfcdiW!u^XU&s6BlyO}Y8RyZRaY%L)22`D zwzeudZCIj*BRie)FF~q}zUBI1SfJbyMl1n&0g_YCsEN37EeQ3_8MT7<@~Jf^z2fF$ z%_!mz8db;!Ofg!T@#7Jkbn0g}xGZP!LbTN7stK;k@xNT_$v{27(cK3jSHv(9Itdb} z4afL`8#8t?$7GdRFoh@Pb8|M%(vTh$Y6sFPG;_ojUA33;7_aZ)eBMd1np|p!OvMGf z`a>W$5xi@&dM=VilcbS8JJN0#wVIU>r6mJy%&#aKdgq{Tau@|nfo#6$2qmbqL`Pq} zXmny7kw1E@g$DEz!ehXw(w8%v;AhpGxhdtnYe;a0SZe^HAwaJ4Mrg>rQiwdpI8*mr zO-Z<-vtR^YNVrZcvM;bOFl7m zVm0v{IB0Zk1KN6|(&shz6H(#en)&F5HP0KTwds*#_SHvYHQ* z{#yL^yncdfkj}ytYeCy(a?PMCp$S~mN zbWt>(7VCXK+;<9+c_psh+HA|%=^&ad1u9U}ynPvNE2J?|)T_`gU7463&YY0mQLTxA zVqgJ9(bhL4;SS{kFv*#XZ+hB8a3xwiuW2`kH8yplWy|zENY&mniSX{JeI!kEIyM10 z2iBx@&evxR8R)&p)lz&~rAsscTL$-Qb|NoBI~;ZugSVuHvfv(K>T9|FN5)G^-qD1j z!e4XmMr#em1QY+%nEcg4Js8Q}&%61CaU2sQtF+^$DnLcykrIOBcO=ICh*6J^@fbo5#7N5%m1fCV#1unBRDFeT z&9PkyyzpwDy0$STK$x8%di{_&upH~R!lY2Ek;!#0xf+HuwNv}Bx(g=0IE?SL@n2L> z=9kl_JF1I*Pz&{i{c!qak`RgCr(CE2Zo86m8gu-V!ayJq_d_*bWa_P^Gc}NXXNi6> zZ|}QI4~K@`YkNQ@{~1hwrv)T*d4=O`bIpGjq>3O^Lom1LF20bAx8bSPVbo8D%g;v8 zC|QdTPGcbTzRoSRt!^C^Ifo)xZpHmF0zuCG5MuX^GvC+*U0FU2edpSsK|)r7uU>iR zB(GY0ING=|s;-LF&5j88;<3)?l-7&62XxkK?lL@?+!=8^E@`X6J< a8-D8Uf((oQ@9yLH1%O{g*nfZqB>xADB(1*y literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_mesh_point_05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_mesh_point_05.png new file mode 100644 index 0000000000000000000000000000000000000000..c6e0213ad42c149c35a7b2fa4ac84ba33bf75295 GIT binary patch literal 2176 zcmc&$X;4#H8jYeeFD&v*Kt&B0*%yOJ00~jhfCd*pO^^{02sE1;K_s9AQF&;~ZUYJ! zKt%{3OO(xF2^cV-gHTKwu!#^LDva<9i$M^OPMn&as{TDyQ+4j2`{S$oopZkP-P=c9 zsT!)ARS^h;#zAMN;|Rnm3*`Y;D{kiWbhaZ90QI2LK6(@f9z1nXYzwYE8f_LmGdcsm z3~23SYy1YTpKnS92Cmtfl^)UdxJ`c z*n`8413ho5-Kz^x7er@5fC{=`k3rf^h)F~~-T{x(bW>Cc?-)VMEi|?j7Zb01HEaTv zK%fy6&U4}Z=wfTUXPpI_cv-?0wHsa621ZQylE3(-?_~@e1JHtFYt(W_g71P|`z$@P z@C@tjR9%_s0}gk|Sr4JfnO$C>uATR&xQU zER@c~q3>lxv_pEb(Ef)W$!og!?{+Ot%W5wGiGSz3pnZK*N9EJEd1#I_awjq9(pk?K zR>ng%?wYyR35fS|$(Ek(geH!xd?cfZeJLcYPpk( zTGa)Y=z$uw=Gey#x+M1U!r9`Qwu$LUTQk_CYBNto66s6xp*9OUoWuiukGsMv>kdmj`upReC~4ldlNI%3HNUSoj?DgbO#DiI;Y?R(P8phTE38lbz9@x~bqHYm&=W#3 zTnYxa)ZKIqEdl%J5!;^{povqVr}MqdAdz|FHJcpQ(1;hTOEpi^)^t_)0t}o&4;m7C z1o#6R-2<`Q7BxJ1pwlVwV?R3buFBPM+|^nB2JAUsVfd9thlO8N8$mc&MZvr%_pc%h zlRBuP=`bhs`iY_Z$r z+t8J5M|}E4enYhPqgSji+j}Z19uRaNMY<890n3{)+I1m%vq1B)@FTXvYoqFk{Aw!P%t+_qGoecuvdnQhw?TvQpoJzj6aelq)bNvK(RU=9;dUH_v z>{OG-W2L=+BD{P(oXFA|r3)gGcapmkK?;X;X@5Z8=+QW^;>nQL%H!$+Wsf!i^J3%RS`Y*Q%l4G~bdWV$l1!Ak_oDbarZA|?xIy=RKXY>I>xsdL>P6wMlM2uyJ$+dZiD+18ihx_5PC)YYoR zqMjGTX4V8#+FsQBX2F12H#U}^AG!+{%Y}=*$*(`H(J zXkr=8{?i8KggpPcG;kn&xhar3l3L!7k<(eG${@ZF^F)2G^a@$k8sw_qTmZ4{yw&QD ze(mau|H@7!&#M=8(*=C1V!4&<%4F6_0bKK-H-70jz2Bld`D@M@YV@YLxt-;N@Ws{C zsM9nWvf=sQfxms~I$G)tO=$F0OD5xn*yQ^F8{av-Tz>wU6 zk*xA*BZWHmOMK4z6)kM;I(o?4C(lFv!Q(6y_F~xenqhNy)8g&iOEGR>*5Ma;?D@fU zRQ;gX1$o{XI2bK0Taz@*GTk0yVO;`k?e%wicRUHX;GcF8Jl#yPBCGxbM?xdKRIp3qaWUJ-gHJ!bZc|Tf`o7d#FomlSJbci#{}y)a+*4 o!`&2As>mn>SIQ>-uUJtbH5TRv#behiein#>`(2$XD84s-2PAXPjsO4v literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_mesh_point_05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_mesh_point_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..2eb39a96174998067e15755605fe38d7378ef571 GIT binary patch literal 2484 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_mesh_quality_05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_mesh_quality_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..399a142e1e1b240d6b5067afcb2d6e26804aab99 GIT binary patch literal 6040 zcmai&WnUA3qlFQW?i}4EC0zp24HDAbB_%yzG)PGfX-Vm3z(z=y;K

    9ny~G|G)PG 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 F{{S>h#^qG_bfki#r5&F85cwRd3x7 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

    hSE~dvM=d6{zQ#cP0~jzdc*Nvf>_k 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_meshtype_point_07.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_meshtype_point_07.png new file mode 100644 index 0000000000000000000000000000000000000000..383feba1f8d47cca6e5fe8d3848fbacb1b1c1b88 GIT binary patch literal 10433 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_0_00.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_0_00.png new file mode 100644 index 0000000000000000000000000000000000000000..07042d6f0cd727646bbefc0b37cde0c659d6053c GIT binary patch literal 20546 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 if2{5Qf>f7rBIC*fIJ=vbmh;C36RG1(GsHs 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_0_01.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_0_01.png new file mode 100644 index 0000000000000000000000000000000000000000..d2744143641383ab4341b3a285051659a03e2412 GIT binary patch literal 29942 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_0_01_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_0_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..885044d4b778bf7aafea8a22eee141828b5bf1a6 GIT binary patch literal 7515 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 z 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_0_02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_0_02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..8b804764e501387f8059a8008072d487583c2da1 GIT binary patch literal 7495 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 D6w%n* literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_0_04.txt b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_0_04.txt new file mode 100644 index 000000000..aa3004f72 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_0_04.txt @@ -0,0 +1 @@ +Pick could not retrieve the requested information, possibly due to a bad expression in its variables list. Please check the requested variables list and try again. \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_1_00.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_1_00.png new file mode 100644 index 0000000000000000000000000000000000000000..37fee62f8da3986d7a31652dd210cdd62013bb50 GIT binary patch literal 29836 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_1_00_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_1_00_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..e6e4d7bb88a492934a68fb9f2f146d00ad9f0526 GIT binary patch literal 7284 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_1_01_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_1_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..c71ab43c99d1756120eefc053ff8b8e52f4bb5de GIT binary patch literal 6736 zcmbVR)nC*PwEVJwq_T9w(%>SXfPggYQc5EoqJ)GZA*oBZbc&>~0>aWrw{+(sNK41k zz03XGKj6OHhdJ{wpEED#Y0gCIXsO;OWg-Ot;J&&VOz%Io`Ckx&{+o9JAbbE|qF0A0 z8hB^!Xa1@F+xu~8RB8b`Z`a~3vAha`@FW6W(a}YriKSJv(u+2KG`=k8qR+Vf5M*UaXWGFXuzWg1i%D%pn7_*Z~G%d7>PF2O{UC{ zxgfXNYqc@ghbN!YGcu%4b`P|3CI`1C>EQ$$jZ))x`=qyR1yZGqV&US!8x?kAEHmU8 zT^Wk*#-eW@INckz9?t!Li;(*OXO%p|<2(P)Vle>lL74zH>pTV4#c#*GIz1ZwR5`g| zwDW^pv&`pu$u2S=B7&H>LPV4+Q4a>|6a*spIb#`N>4YTk-*1&e00^gAUu+uPH~H&x zBf5;UV%v|6H~XGBG*!0Xd)x{IC3^%wxlgD>OT#hg9*an@9?WCCOG4sb>LeW)tU%yN z9+EUCz9YUQ3agrRE@hRY;XCTtm^mM@L{j-=_fN=>c5#IpC5NpeyS>GZgAS*PjpkZ7 z7+K-t-kDYI)G!fOWk4rNEpO&J+b>SS(b{Wl^!U@8{J~GtGoU3g=9m^OzSFI-mD=iZ z3y3WcLTt4$ff)06Id(^tcwxZJ;}f=zD^9Mec0u-R0@`^y`-Y;tRPZKHev9I} zNYOMjMrC2LapApR>&0qx;b`{!?OHhkJ7G7P;uHI+d*xI-^n1kKucmNA7vZK=0z!hm zz#?^FTc3t%G+kKAo01q`WUWr|^f!8;eE=LWaZmQ8kPyM;440{CdQvO5LY)3c#vIXlrHXlotHPpuWfpu#&k7?}?MAW~w0wC_Hn(9@rB za&A>7<@7$4^K9hjemR$ySc<=Xqaz3BdDGqby)&_;<=9QW?AtE+PpkSlxWi4vZkjZ9 z_8IP!PmX*yys$nHZnHl25D&5UCax8CJ!odu#B7E?s_z{`v?W2)jAoO<$z;pZ~tx zW5}WfD}gC(QhV8(^7Tq?Z@Xh~5LGY4yNaL(i*@0+Y@-UU$%)^w_SQ3Yd-Hge&Kx){PkMNl#UP14SVF_ z5%D%84pELu3TLF#C0(5xc~9xg9VWrHwLB5V6?Cz`HE6)rVDXnO1SSuL^iU7zm?P~8 z!0kRWI}?E)x%Hm)lYd1GniNhR)JYsPU|KDkye_h8?Q{HF_=!~Grlhk<$DNx!&xhX2 zBlgCTRyXVO{y4o&BJDQGh?8=eqv7EgBiye4)qs+_b>~_qa=7h!Y3b&K&;R`PE5cfr zvejB_3>^ScurwPsN{eo3!SN?R)BxD-kGv;``lH5>@V;z{>`lCZdYA{8pV1!9F=E<( z?{j|SA5yYp#)nGqP$=!&SLc7CsFZ4Js#0m;*@aow6v+(8&++XA5drOC8sEE33Fnoi zH9W)xDF;i3YG<-t+X<85-5289c1|4Hy$gzIs~sQihI+cwKvqQA{->8jB1=N7-8V-K z+`cBevL_K4d5D4#vY7khh;vHaz* z_TTy0Kkm{NUiikb)|Dg|S*OA-+5Xt?F>75ZrV^vFn`*@dC6tLaTJe;4lob_U4N39( zJNT*Z;Q@4PG1NK=1Ta$dTpBPHO-w+LpDP7r?L@v!eJifR)32^0mgg^KM`Ji9`u7Ql z?<`unY*LjH@&t%263bSL3^$6qzvkv+d$dUHmFaUfwb4VUuwX7T#g;|b@xma1*MYRB z$T~4o_9i;I>8EIs_-;y-hpG`%od4FrehYST^nGSi4JIUV%U&LH*L!#Rn=4M{5Gi~& zA8jx3_)rrJC}a|DN^ptgUg3L!q!++p;i0)&RgFD+CTTLfI(Bufsq4=YBb-qhpFD3&ddPuRNc{_S!mH zl&R+vo4zJOyo#`ipGvApO$*C%G+a$m6%|qR?}LWNVh{fa#e*on*;{T&6D8G7PwN#9 za!g5DO0UY_v=q{r-Mpw1C597FQU-oi%oO2q{pfE@i3b}ZtE*jTXy%D}wXY_7ESffJ=kyp#wUqm)LD0up zv~uezt9>^xUAOU7^8CTMtS}_81%(?3I_QD!eIWta`QQrx3Ivpg9(0DjXB$B?G9Q)k zB&(kMM0?SixaKCiL$uVk0U8lJ5Mj|S!uaGu?={GP0Lb5+mG=d-hF9ktA8Vd&H(Xi)JFu4g*h zpvGYsBpLfH=&;B7mdTR*p*mfZV7g#7Z)&J&+V+G{(0jXv=#z0Jn=l_Xf^o@nT|8yq zB3hQR+PSYSn`LKF0X#n$WdAN{A3w2GpZEv!zQk9J({T8#*(E7ZDz1U2(|vNi?Y;LT zbmw)sMX_&wU^G!lENuWpNwQ$0*ayGx*MFxC%JW|jhgG30%YP^4?&Wlq5KZ_nA3KL z>?$LDc6fYQ9JJ1-Lu2@fi$5sR(5^MRBl11(h<2Yt^FDsH{-PRO+Lyu}Hr=TEs_!!8 zXYD6%B%>pQ0P>f;yWG0wN{?g0o7pts@2-Soa?TwsYHi-JMn_GzPx!LRPu5;C) zK`sq1qk|xWkH}JdW)3`Mkg}+e{k`T7+npksUe8_=mRf8bl<^a$3?MSX>TLY@gUaGH zY%<77b{k~BRR7}|Y)l_u{mk-PZ5j+s4rJo-4z?HgM{$zoJbIc|`^4YPUV1 zSZHkZ<7gH&sE8n$OMeutjpI*oY zg=0(+huK_>b46hrb?oxZ3(pakd!f1+;$S1@S{JNGoyp2{_s<`>rl>GS52Lg5_7kg? zW}jjU!~7k?a`|66rndTpTs6z9GLM`S_&B6##(b>b4-nc>awNyLo(+vCdrfDYjYlqT z&8D=xuW6bz_(vOSHf+q;-Ax|)Wbj?MlmB6f6U9=4PH~7D5q>jJ1W_Z(Fj4viR}_g& zs)xK`%4?hMzw_8U#vpb^))f#KeZJPK)34R^7uqg0&v)7UAdT-RJ%9azW{h3>go8rpS?uQ_OL*;4j$9z3de zeZn8>6J->WIUL?GuFzFfy}qQx{o_!`e;5SwpB zs%uOaBe@id%%{i&qIh$h0KocN_fyT}r-RV&=AMcArKBgDRcb`}3jLMJi#h(7)BZC@ zdmXv6lXI(2cR{vday*Qg&%#yN#?^3>@^yX|gh8fhgC!llEmci}X^p!5Yt#NY1N>2Wj0tyV& z1nDZxV}l|*pAEbP;ujV&Bm-=VrmwSe=EVrwzw3~aL2)<#!qAVYYnMv)FC6D)`M=O- zG}$5wY6dRG(RRtk3WO3-W0uNfEDd+KJ<)={rYMB-`W9DPmmR3YUp=OIKkCYmL>*|Cl4W^%GQ@B3P`|9~yo7R{vAR3UQ+9ZV7$lM5NNi0r zSuI?@aeM%G!I=A>mJdA1Y=0fLKWtcM^~G^*>H!HQtuehz(cW~5Z@`tgXr^nuQIb$0Dn*5&jcpGB|DmP_2@sea7F`nbL_ znI?k>ZCIyrlp~jx^=CB_-}26!zf`K?sWtC+!H6F939$~yXDH`%rPF&o-#0=P2ETtNrXakKld2?*%5ZS`YgkQ3gTzCSag;5RErZ zqlA=L?Z5k8K@%I$zvh>obr(v&TLh9_kxJ<1Ua@y3y1KG-fLIjr;423RKX?4iDD$PF zkuFZc{hU8YSLfc!D~3(@b`2+;8kv1frMYj)2^mU@N6=-~JtD~alI2AGY#}9X~d&-(8x!HBhHZu)S~A#12)onUd%SPk%BPbsNu6BnC9h9@`n9obh$2 z%B!PUCT|>HahjLI0-tiJMaEME*&?a)Te`=r9;_8cF0866B10RFdlARR-hW!!$vuRnX~q- zb$!D)-*F-pLx2!u(kvOXrk(H2=h=@H>Fa^g^s!SOUdbu8CjXFy(^^zkTOpm7EAwIW zH&0%4)m2aJiVMs?Blo~nQm>EGQSR3Mm@`d)kAA+OhdT~`<7xyBW`10N743~%t4!`L z`@0u#-B~u|Uj}q0MFXgwOZDZ|Y_NKjy0Czh#CBzt6>3NL zGjKs0DjL%d0>?Mq#kcsS#MRwSnZlmwiBgo_xUP_-Ecx`)dNPrxhqUlbuD=j`uM+VA z=hirP=zo(>al1~D6N9W#FbsAVqDRMZrFw}#y_IWeI@Vj03E3=4r)A}%du_LSd;&s( zDrCP@{ml`0walO`l+xzrH$JicA-Qpgw@apPU&-Jo*%CG9_n@2D^LYINyX4AGETf(% z34N6JaP}SzNf2X6^gBXFbPyC>s zqBG?m^UyH$^_iY5ih*32Ve(=l2}gD72pe9#LpDAKWW=HcKtrfQ>bH*<$Drw&7)OPX z?J;oSx8Lug$i5uwx_Eb=yI*{~iG;Sr&zSRjir&rwg%H}1p0d}W5}ox}`S=GG;qqvhAtQoG|7+5p0bhVo{Y940VA|!bGW5KV*(r+`o zIgJVO-Tfe|?V?UWZFawK^tMKUhMQkd`$+)b>y4EUr?C_bCdQoYLqp^1gkS7ELQ-~sVd2)hFjUdLW?|Y8i>YJPRkj$t5y|s7p zddB6z$r)f4<}&dH_Am2gL9*c*H{mAR%~tT;YR>1CCV%W?Id-%S1h%t7JlC6fCNL;C zSiaGL{+S~D`RJrPYsr8#hI6#YHA9pibyy}HhjvVfrWeL;l=~m!ZVrmkC1-u?yjLPx zu($q_w!Q@H8vt;EPAq;>Y6l{fFUMPO9IzF zYN_!1WK#%xxSg|q;OU25u`Ilc{RT_uzaJS)Mrss704bXC$ai?;6ZWpb&08QgDV$yI zh}nNrzwPGFsEh}O)e1W&ku*LVg8OHWmdpHV;Sk739Jl0Y^Lc-awT}JdGX<|hqQoDg z2LXf%1jLj9Cctm5439VcN|Vo4Q}pF%zzUo;c%Ft(LhtxlB2FL!3@|{{t6gNzPN}W1 zJ?OhV0SI?~d5xk%L5)$IF-g9L0ZPSmJb^1bmfb?xhK{PkvJTn~T*l#6?CF_mJG)iibB)qZ~j;Y6b#BLR#+yH2=fl z6w*o5VQS+8dioaBTW$ak{(n#33W%0dj2fU6LC(oZoD?B#3?=X6+zTM4ghNB4z#UTQ z1!vW7meBXw@g%c_OyB`J;16zk?!e$GhR2rrPqp?o^ArTC8{=O?)uJ7Dx{{U9B zsajA{u%iRu{Jnn77+l`v@b7 zMpJf?L`0N>0Z!Bpb{j((x#&yrQ7fw`*?si}M4@m&nFi&84;iBUAj!wc+n z#XrhPzT!wyv1oYe&NB^Ac)lYFBL)%SX%*}~HPb)&T{10SUoVdIAET4xCxO|x9q>bD zNI1bO9;!U;{GF3h5AckCM{Y%$tfVOM;rIPBG4eBjfr%Zi4HX^?QSwSe{m6f$)zcRl yolpUgbaZ5uUbT_6`V5z2NB;k%$p5{GWp9ych6g=~lKHPG0@UGJurj4rLH`4RmX{191^=t8MVFi;i@_uRF+)hobl{{*-FGYq(6 zxM3TxVZg424GU#iwpk)2QKFRm%11K4-q*eNoQT+aueIiIW3C$*-(25Z-&{Yx%YNQ(;G654>;K=cZ-Vff>znK6e0>vy-(25Z zKj-V4ApGX~=K48b-vr?|*EiSC`T8aZzq!7-e$Ll7LHNz}&GmD>z6ru_u5YfN^OgVI zFMaoa_{++PmS6^>T&NXhNCprDU4Ya(D5eAf1W3>TsXKZ@cNhVH#Q1l<^CARv`#}Pb z&^z2^gakPVy~`vZ(W)fIA9uP#k~<}k0%RsLn1S(2L;$sdDZawi*czFv6iyS(NRxnV z!}Y4xU_~jB?q)ts-MhO>0tw5=nJJ+Zh-gCZ0AL1pw1&C?j#|fCiZ@Tf3;029{s>8HQ*?qc}l@BccUA90$vo^!8w^IG%d_xIX1t}9vvfKpH^ zNE#t|?~q8s068S)G~RaagaF_I1pva^m$`j%(|GnN!3Y7QZYzcajfpUm6yXMWEE{l-K#ZG6 zqvDQRqQzs>h$8Ckiu@~a9E;nX@g{o%33t+z3^WiVWyaGbUH@teZy8}M^LMh3T)>Yev-Z{_co#(Skff;B>gc)PS)8S%Dw>@$E z$r&k)r4m=H>DzzCU47?Y2{>TVSX6(7=Jl8M_rLrLZ##1Q=Pd%w_J@uUoMT^bwyt=l z@%_EiT>xoFHr8M~s_LN8hz`Z65`ns{6i^E9?{R-eOIj8{@b8%j ztpvOjnyL43)7>Eej@FS3mY5TAhTh&ydIzYnVG#fvj1xdm?{ER2nT%)+W{6Wz4#gTW z7-8@ZOa|4>wL!LqG{s&z2D!{4BLvj zAtw-koFG%A03%y4Lrxqoq;cq3hCy{jN=k_-DfTHj+?W#MSGWrX2$qmC2+&c1R#6EN zmY{_8HPppVzVivDhRM;4h4}GT9VDP_L$a|jwhe&p?%wW4Al)NJpaD5SLU#a>M2JSj zL2*060FD2%_**Z#7m&Z!2%L4Gegceop5(TN?2E%pRjG1_%jD#+(Z&7 zBN+j?;){}ylFUd#l;p0sLzpHW4w#BS^ro$HUB=s`z1;-?keU)K?HgDgp-G730g5Nu zn_7b!yrVWyFe51M*dG9LhS@l*QhIwJ_m0+7E4+{J-cuS#GV@X*uSmT?(4O29jD45h z>783-gHSB%TH|p72E9$T$3tq4R^hHaQyNP%-l|!=LjZEex-wG4R?!+_=Qhx^Wnq$oEc{NjALebpU~y&j44ii|+)`@>BMd%Adg zaFiG~Gj`(rwIYQXQKGS-zg=%5#&t`D07Q-|qf@5X=`r3U_QOL$DI*h%nA~feTLLV+ zlb|W~fV~JhpV699Qmt4Q$dL=w|J@t?H9@G>S({QrDVQdbYz>mubsWl(%?mU`$>SVI z2`PytcW#y27CGT~qj4+UdCR9=l!KHJW+ELTBw9Rgqzsal*t@Gkj@}{X?E%D%j#rO` zn-WTi9nRwftHj~3FHn#~B4|oU?z~*oJ3-zSQ0%h=N&(5kDkh9E2z~2(5J>wnkd0o-kIGN>08Kp~NYe)(A_qe;G*@(Ao({(}b%7u4H zy`fdMij9W})c7DQ6u9+|?pApnd6Pyk0F6OZ!t`=tN^)cc6Z*k`#v(NX$Ff+UcJy`+4* zruFtK`;U)0PeS*<6oC;%@gugs?TEnGQYESz%x_!Kj%#Q?y6Fyg)f!LGyThVF|Ji~t z@?f+Ue`GfHmDb38y+-nr5=iTPY(lYf*UD`}Yd9XYzsa$UncZ$Ex<+1?5_0Tj0%FhG zOKVH8q?FJ*yd!d}sM8|0-P!wFfQ0cdA$M&Xw++I`Lia;>tc*QE_9WwNW;E_*+{D&o zM9!=gwX3__Q7gLdH5jm;qQG8P?>y`=|fv2Ve8_flog9 z6%=VUl6gPGm`o{0{xWV6-Z=!`y|~8)_R>8bjXT;%OrjEb`$Wd=7eQG9!FM(2Wb#U5$+t|j{&AAquhlAIb1|+lN10o^p0F~gKDB&B4i?fT*jtlj8HL`qC#^= zchCYyi=7XxDX=V{N24abdBnfG^+5RqqIU}DVnmKRERCH$&UWDKu9P#41SN;|vM{B9 zXWs6$@p7?nQWW~sR5%wrd%*K&I83@OJU{BXNY1$+7bHV%Xq(_V9Bo}801fJ5lO?5s zTwn>zKpL^kw7Y2C+U=ED3elRz-hNneaj%mUK4qE zf@`ERv3lb_2jFSQ1-aaIXSl;V zNA~ZO1l#d#`hJ)K6buC6ZJcbN_6>8?(#hCuEU+CqVZ1~v#hfFb0s!xH*R5sn(}VDI zLL4tUWHgei@kNa7AsG;rfJG@K@8h`31*IUsn>fLNfI}5qsY^1TkEf#ec?e{8w1(aV zAt$C3+o=>KyU<&_H;bo|GV%^Xk3bSEX_}DJNSVYsI>#wE?$C zl%qN1m?oW0ER!A|(K~8Yce$W=-+&w};~4ZfX&I02(?9;JMc^mD_U*A;dqYZ^$wVd^ z9fW8|22weThIcDKcZ_`VokK4$n>ak9QggjM*(@PvOf$+faP{6$Yao#OYF2;)@tfb? zy*+p|4qD#AcqE#8(HP$x;b^zW3?R_{at6*le(|>6i=`Tnl6t@4iTkOaB6fNE@kp3& zh2j3jD4{jEt9P~zcX@|>O~id&5YF@4yR3c5+N~56BL5`D7qO#)-p88|(E2FN$G2jD zoN?c1NN;Z|y6>GvsCPsr9hcciQ~_)odW{H-Eoa=>z|EqPzLks9L^I`#*65Pi*kc9y zXe5l=A8#OX(r5%(k|6m2JmcBK$Bz=OWXJ$QF5d&du$MP`{+ZI)jAK741+A&I5znIo z`L-W8&VY5}`HYky$9zDlqci|f3Jw!W!F*6oOvc)@uGlKJj_wdp8<>y`0=nRU6RuDH z^w0lN?EU@UKsKxkR3S$(%*JFeGV&G4K^U2KNXdPa0PfLtyCD;A(T=nuB4dI2=;hEr zC?%wVl*fS}9~;NJN0|g0DCD?%V}E+*n7h5=?FaFf>OlSF)b#C7N6z`~naRB)@=gHX z8W?}6ih1YNNkeP!w`sZWZKd1Wh(5!N&=HU=4 zIL^R5*v9Dx2_xZT+;nL)`lG?9Ju@6TeH3q_bun(4S_g>MSevdFP%tuQlnEt+7C$@o zNRO&A+8!>NK(;2`Z~~#bTBCQktM`#R-4dQulrs|HLP>B(t?Z2@YdS*0vH%IWMDU29 z`+)f4vnB(mWSl0H2?1-ZYZTRy=i`>H05HOcS^*-NXlRYgisH(dIiq*R(Q!QDc!E26 zz13YZQ%bT9b2#9F`lo;R)z>`Mzj6_u{_ej4@X4>ekK=?wgCm>b)bcLx5`YxPj#`hH z8T+04h>hC<9l1an`4J#En4={z62fGF$vf8eHUa~|jx0`*i3Z7l#NMkJx#>F{zgXz+ zL@)P4a_s)`@8gXK-q6#i8g941fRO^n{{v{Z4o5`nI4j>pddLA2Mgn{5e8h^~e=xpN zr0p1z`e>B@mFsI;6rvHn!xnMer3^EsH2OR=Oa&>SwvkEG$o(uPDPp7vx)lebGaAVu z43e<{inLTl0x0>N<{L*vS1Vd0h?Fr;m?q>5BfHcqy0av-K5lpKXqBytjkRH0aogjB zkrf0sGtC1k0Fbihj8s?>a=~FnHf)>L1-)aMa5!PBs2frm6>rKU=zb#uKu#laLN1(V zl$nyY4JqMz9X+ewmDBAEM>6z|oK+H1X39*abwhV>Lo#et$0MIT({#Y=H+b_(222y` z=G!U9`NV2rET5<{qN)eLaa8X6@BWv; zvJzq9{@nvX=%apS0tMKf&F&w<086sO{dkCtV1)NA2&Dlcx(gJOM}8+jzHdNAB8UwE zYDxie=x417X-O`c!4f?vp}Y4kGp5AgNtlgQ zLbJ&DlOehny{lCyfre?0-WT103QU?Ncw!!)5ccvr7%9ZHBDw?QRio>`lo9{Irs=z=Az6|E^}2rRBIU*X4}efqDy0`N=! z`6u)huU~mo@2%0h0WvBP;3t3YC7NSvpZ>{tMBT4HN6LUk%6iNwhfn^KUqs0)X04*F z4#&E(JG)0+2a>HvexX_!rO&Ohj{$xBAGLdBl%=xsy<-tNP2r8^*2V} zRs@d+M1~P8obIX>wZc2Emr=OJei7gA4q@;lBxrB21Htyx`|mR)uA9~stx}>T){5n# zWGETgkW3dIGd`1lAj%roTZ6%d{j`xNtx(+Tqdxd1@xST`&y zxaU+kV=4d;G=Qn76zq2-VA#>pJYVs68BeG+B#yhJ;4sAEC3cPu+%cz5{_eAJpcTR# ziE!d{7rh_kL^BfZPS5BQA++wXx60W&YSc@eX5c$al(AMsIj>hJ@_#BNlB^pj<-{pt znzZL*u|)>fihY5_qKWfRqwg?{O`l8wl#g2LmT`<%A4TIR+!zI(ZdK%742@SeK{jr_ z?GYF!m>eld4s~#k6Ov|;bB@=22bB#32_t-WL_@cCs6CYv+~qA2?zdpa-yDR@Nl2(I znsP95T}e6ynTEc@7{a(Uw@R0LQvnFNkVP&(u*bdpB?lluDg|RJ!E9vh!846cU9@+D z^EMqI(HrQbDQ8U+TUGB`SN6e9LMbSDG)Q_^E*M)t)R`KXtvkQ`a%>gR6Q3sD%}T^3 znBjEd!vhZowdR+Ls^iTgU%ke%pf)(LRRDPYfamX_WL(Zzu7IO=EDP5ab;VP|)6>A{ zONNA$_l>3ws$F-ODQA_!0J=t-*pM?m{y6yMye0}lcSDgd`9LPS)B9dm`yl8?adu0NaQ{mH5&%NH;YK^@|EC7wU@dGbddC#K zsp@~J{x;mw<#!;U8;Cm))HuyU+r9Jv}=6FQ?oA8GfxqP3ug zIRT4pTy!6)e`_PiZ9gb_W8KgkE+L2kd2o>ctgHGs?U@o%;))mu)oRHIK5Ji2pZn$328kP+ZrU?%Z$O+qu<$5Ej z!37Ytf(DmbCxDc2I3OjYjAFn1tFul=<}{dYwZ@4NuN8!(9vMX&4X(lVPDv$UnpiSZ zX22KT(SWtH?~;ObW$zFMLt}@3Mn=D*d;jJn!!)5J zO>=xsMa$^+t=`cG0WD~k2uR0ACxd%7J6``rPVW`!qfQUthZ9PMB}@f9At%(0waG{g z&ihDuqp`cEDC`a1P_hWLM!C?V&VvD>EHRf*aqL2;ogrZW2%3WU>aNR`A#eW)jdkaz-+|{t5zGRU%7aPVlHPG7@Q{sSp^i3nod9lJ+gH z0||6e^oAK8$KE0ub&T914;l?QlNo!LoUH+*(l5LGj;^QZ{JMcIXaS38u&tdrzGC`0K(v7Xt1N9EN}$n&i;XbUS)Snz znHW?lMRCtKqTQuvSQ$JaCv6+IRdU6dRrl7A7@=7!9&!#rxQxS z;P9sjo@d)LxBsoK|wI@%Gz_gvh09{9ou;bH# z>Dd4sN6nv;JkUrWCo~75MGX27h3v`O$f+oaJNt|Psd>gU4@QS2%^7C$9(oxhAQ$CC zCI~?{K`!)Q0(N+pI~7%&4_sskpCF4>T_?ra8@ z#>m}A@o8_FG~8FSS+JsZ3@2jgmhYuNl?MGa&SeLTk**WkAsb*YZop~!nSzi;l%o4P z0L&$HG(j|HfYT9R(MK{H=MwPtkcGi7)mth!r`dcBSZZ$`_QCLK>BT`UD#1BrRo=>!@NC%|z!(Oqv| z(|~l~{k`t)1}&jhJw0Ko=pEM!`h>$#AARsk|L|8(fZzNL%=5@9y~7()!tsDpfvbmgDphFPetoElq)G|o+($|iD?7C0CGXf zG9nk`gkZfVkFwkwqE#@&ae>>p!8O=-rnH%c)6RN#%zQY3_l|}3OS~X zav$I%YK4urDjUEwMsWaXRJw2VJAoEyXN{Q2eQzF&902NppI%q9_=g+QcyDHkem6aEFxRUrj(I#R9|Whz7q@-ZLNgk z3GkbQLfpdx19AyXEO#NaoH8HyO&r&wI~co3K*8g?8LJ#S9R)W4oP&*Q7FxWBJ>Ht; z0A2fWBKFRdZrX{#oC#39`CtMD^HZX3H6+KY?bMWjYW7_99l~n-HnYFZP3G%r!YBjM z;ENzKYy^S~-Z*th116Catca0z?~DaA*iDJ7L2bEZq1j|+winR4snm(Qe-gVlI~YPKwmAH?$3AOhn44U*Yi)PmgFFFJ9pO z0e2_d9nc-lz*kjCCd`K80om~I46Xr_0w`Ilm^0kaJ4#VXsGA^^!fiv{BEewbs%El; zQsNvKELk5}A7r?D#>-_?3f@P2y30Ec2R2t4JsyyvDOlTeT z;Sgb_lzBQ1<<6)iJ3ujW1Z1dh%^-6}_TIchqRo7 z$TK;*HPNIcLGB1eYbHesyZ_MW#p_lI#&IHsV}*K9g-8c)2g%^(yp4ZABQXtA819%& zi1ktee&!a%$UVp*5RN5irVy?z4S~~=D2XMhJGSlZe&AwngZB_!qaE%Z-UpFpmrM(7 z0U%e%aC>K@SdmDiw5JYEBlZMA(HL_C2Mu!6ZDi{y2*<`Cl$+r&%OlZpPMJ);EZkO{ z?)2s7006@@;dH`BAK@pT;qFd3>o|}8tdFFZ&t4)ImBQm`>>9WWER@G1%=p=7SgxZq zfANBc89(_6u4j;#3Qk8oy9dDa0veb`nKh36%IEhu9FPpJU$YN~7$n2##O~S_#%2e= z8--ZE?ig0WroAVl5c4$%s9=M3Ug7;FyegSvT9v%T~sSvjKwogsug9T znOcW;AtC3`&}i2az&LbKE<`)&asi0>pi)?}BB8K^+IChLU{uPmOqzlZ7t~x!0F0e5 z74w{&kGtx=r zq@0wJdi9_;jsy<~wYob+^t#dELXmM~mU~kW}pBjW% zw=j?J@UDq8!%QvO^0$UW+}Q+}ritC((%I)3uArF6cFG6JSPba#R90X~>%Spg~)+&$p_Uh|C070ZHLaDR{Qd`Bu|9wE}8J18o(qJ9|RLY|t5czW&+X_m;bca&##TWSTj|8zdfB1lR zN43riX{`3Epfqo2=?~L>kR3+A1JiT+bu9#o#==Wz(#ym_s89Gv++9h6GHL z_Hz_BM!WB1qp@^vDiF~dVEP$V6yiu76)B23;vo-jvH^XLKxkE#k!;W!Mjo7ypldUl zWP{kYAN~%YM8!OGF~0X&L8)z^L21Ncct(u^-FJO`P(T|A%tZi>)4&OmS)dnTMkKII zN(BPfipyu%s;&!j){7VT>Xm-@L(B&qj`-*!eD*m$|6Io-jt8`c%LP*jO^I3?o<%_e zu%U8BYe_kWd`vw{|AY221rAFYnJEtiow!LtPF#wj<} z4oQ|Y&7h%G%7;ub+gsvcgsz+ta=|nYNV${|r4R%3jtW+Tifqn+KUfR~_1@d&a;73C zj|TO&L2l8SCtT|8Xw7TYx?)`+cE%?RfD$9%O0juDDYsxCLrmP56ZV$8!m@}19pti& zaw*bBOE*In_CAt6+o?#FTpBSF?~gz-h8LmHQ@ZiJ-l8NU6zywGX1*>6_h+U!O-n6chlAc0@K7pa^#CXndmEf2%N$F};Xs$xEBCh1 zfc^u72x4$7fRrJzHwsFbsh~`I5GGJi9?hpHx>82YvV=HhK$r%y5ZgqQg=XR&49UUPLU0`zb;AxLu8e~#(x0E6+jr*)VSX=^Vf<*%}#Ul&5E#<60Qbt=6x7u|l zk^BrnI96WV!DLcGZ`@rQMi=pI$O>Hp0ZW8#o}Xly1R|i9y-Pl%5{%|@A3D+THG>g3 zqwO5=V7)~$8en4|t-pagz11{vWbL&EnM-#EJb#IY2fTib>x%1wZPn=x@4rV$uU>Oq z387Y%6TbQi%a!*JXcgxt9FHgk>jDX-jJ_FnTs~*4D-w}x9GJ@j0Mh|?!sCW-eT2h| zb%mPZG#EQDkOctE;Xri-zSdOs6|ooP;aHgoCRQ8(VZ5{ zH>Aho9{TYB+!O~RSsIbhHDYfF$cH`Tz|_i&GPxye8+zA#&@?f}0cb;fz+Jy<u51HSkImkUZkPLN|=aXjkt&rvJp8S^|uTO%5Ur!x#J2b7|^;c~{~ z)98Y%3oaMb_waC!-mq>v{^qE4L}P6EW z3yD^>A`(g-u5Htd!wi?)8P#KSy-4JQIrvXft+Wl6Lbd~hP3wc^IkaOi!|{aUVI(*^ zr4zTeRPs0*b3AXq8MMHX5^c{~2Z+D{B@DC7FsdT3HPnh4X<>(V<)k(e!id0d(;5Be zSO~GC%~%Si5>HT|c3Q{;%+Lg6FheGZOhO`~@g3$|(HLZ$kYt4J;5^eZoGz(%vXM&3 zOj_R%9leD?tR8-kFdAz{oJ^K|pNQN)jS!>stv7M4vy zbP>%U&>Z_IOvFi;2BGe@fzgRQJAGGU9&&ga=x_w#ASHPpkoB!)qTOy3I|J@;Kq+dC zz4P@Oyne)oA7EJ&70Wyi==pTgJnP{B+lpnyH1Yl(uU?JqVB74~S8j${xve-HbUY#@ zy0cd7y!w%ixs$+g#@z|8UV~8GC~2NiH$>su8r0DRBmv9?v%|pvW?aaLr;`BWG?1sL zNm`B5k8L*~ytU~f4^K&@DCc+@Oc^CB=VAUC>8ld6q-i9jiRi9Yv96;Pxi1U?{_q@@ zc)3WDCEh=9p2zRGoq;#xHson#0>VaRI8SR&65mo-F`T$!l@I+vR2tp~jdmPFf|-(` zcki98vTmr2eSrIe%o+)l8B*3Xah{QrNpLrJ1Lu@ZX2oS14nXD}Ctd-%S(WO3Kuf9- zVpgKD&6CK4Eh7PJqivHDcYFyEf#^Gpz(Bg3-Nj+=2^*gCa1V!^ zaZYwX9dfo75}r|NMktn|w4pSQyrJfAT&=?n93n%%rll15qsw|o=$lFfKs4@ zZ0Hl#C3ZMuAWbMU@(NH}9cT4am~2>D3FB-uU@CBqLN_}2A+{hP>2N^KBXh}F)2yjL z;N?8hzhEuiFuKv%u5dCLSYQXFG`JHa@&tDr4=5SA;BXv~zL{0BLr!M*S%O&yHnK$WoKhz#Gr#H3qXht(44fz?W67RNCy~ra zX{hv!$kIVLkw;oGx^M=&)LrTr8UuGau>Fj_qrD>mO4zN3a5{}%*4Cg-4agnZ~1RT33_=n{ap1;ecdZE~?uI!Z;1htV7-rKwYh&$&e9u_aM*o?NRXNAxBsAPu4plcYo`RkN!*yBnNxkB-ly`wwj?89g5rw1XYjNa8M7eJ1~5rc zgP2bc(*egj%=0MLyLO|BNGXGDC>Y_7*jBg=mQ$2NM!B;$%@dACnCZHpUqJA9Kyd0? z=Qt=jo}SPe@9!ZYXI?Ifc`U~xU%b$Z=UQf5&R90o1^|oj`A_irD@L*R`~gpo`07g$ zELkL$tCmIg_d3kD4<6|OwPM?_EjY}G+$_M-x?x@L^c0T6!!y5boF=SS{P~~ZaKP~h z4;$jDFbE9+R7$vBPz)~~kZr_3YnUg@W%%@L8`d@OeOSh1XiaUwx?)>FVO{XrG|!x8 z9FIZP9lCNkt`~$3=5#{J=$);(k=r68N*P<2Ss({NWMQjtN6DCrXsBK8ObiZ))Zs0h zxCHPp`QgB@pD`Q8lZoTRi$ATQRcY{ZMYe1rbxq;n%t#vWGGPmBfRc?)lk~_(pQu&#J5QllZ zkH}J5#kxdhs9FUuTmZ_1WLURQPXlCkSi$g#vN5qF`VGeu9_~>xE>C#%6>`GifWu*& zW7-Ma5}rNidPS{xdKzfk@xYvQIPiKUDH^tIr0&n3;vE*JC; z%QzkJ>|Xcx$XT_jRkV$-Un?bj=VKgZobJ#&-g}9)0l-R~?vTbDnT*W|%n3)JouoM&-gq|a`5gc`L#C)`r=zt}K56$4gy3BYua3G%!7h8|=54CEi z2M6a9xgc~KQ3k`1l37+RNClSMta=ZV6wgW1lybhhzj0px8S}Pf2)+AImUDs~AU7@L z;B@(5*ii$*H%l$SE$341bDE5s934iY7^7Dq0d#0VTf4ON*6KD*ZlWvq=qAz(B7FC& z`Wb@o_I(P`G&H>U5!#snjqE+yz@`bRb)2Ld8coR7!cB+KRtc@fx{Y=vg_Oxq19r&w zWi5E;x*{xF0kn>-p*2N?aF~$`=leh)P}hJ((1#igee`CK@<@QwZd+n?kmGdYvUjuw zs~|=#oK-R`_1?|QEHh<>Plu(J zlDci{TBKDvr{vRA$tD>&k;Tkf&+fT;avyyQNWdZ4?A|1IR}WE@Xx2$svYZ}r`Y2g; zf8F}(o`{L&jCqn- zlrbPeQ_EU$K5JPB;Q0$Ze;x_|0|pFBa$Sd8#55@-l?hW(vLKpsE|_O|$K9QW&af2Z zc~6{N(?k%~K&M%dk|Ux9P05HZp|dtIFeioGFq4Vt)>a*m6^YXc?%X!D78d;i)PcI< zbW*U1e3vz-0~|ncyz{BE6qHrVhPI(Keee=YVeW=9X)2lz47jpwup}dCa92b0449~J zB_)*;atfG#kOT(7O{kUEMKqR-ln3t0-3vG+mZFrAcDa*xg-6@Au?}xo4LyRxOs%nX zNa!A4k3j=yb*NHv1~MY0ZylF2qW?+8Zy2s60M@NrQp&VsG&4g^o=fjucpr+nE3E=O zrBupYN^`4O4r`_N=k9kxc6Vu!H~37ulbUPoJ;d=EWOJpIO0t9T0Lb0FTkkV?M6ab( zV1pV$W!+sa3Mq7BJ4O;zXd-G|`&nzkd5&%s19(hn@0LgZC)gFyDKY@qF#1R-VLD(c z=pC0cKKmS(E4B@HclgeC@STq_Pgt%vU(g$l2bc}(2kzpuh~B%qH~?{XLQd>r45A>= z8~f-f@p9I(!5z<^Ygs78lsu1&Wtx-=N=B>b4mb=98rpo|JZYLxvTEby9KaonxLzco z%*>hBMJ~`7XHlqbqEwsbvHR;b<%=L-hFZall#q94mt0696>KX~QQ>XRhR(Ew3MjJWhC?JQvEO;|JnU1%tD#+zZ z>K*Moa_K$@x3D8o`_r1S> z*tlx=HfL}qC$gpF;Yo&=W5rxbHtWDyx&n`80CMjphf)VB&_;eMBp_un)2vIb05@p@ z+&v)b{A1?hfYH(=oPQu;0Hg%mtO&fhkJbdE&R$a z;l*>rL!Bm^FJo7;KKfn3#_SE}^LXURqIJ$)V+wa{E3V7XPtg!9rn+HSux&aV`mKwl z!7~>xy~iJaMaGZ4$`*_?^KWi~AFPO)0>b zn93A(one7wGBAb*g6OX6!etp_dYPaW91H-1C7;4&V@MDp`x||25!;4sW0`b_RLvLC3)`D9HNgiTAf@4sH>!`|Y(-QYgl?9JdE zZ{FzX3B7}c;{nNr57PN5sB+O#2X}Lax`p`?=b48C4hNRfgV^7@zIqLE{GP`Z63sNv zuoSoj$I9@XFOp%7WXc7HnWq!x8SYpXtgE8m6>2PEw1!$om-o)=b@bnXooq17{?t9> z+r#;$HF_PR0dm58P@2M%MtvUDU~A}Y_!{{hU;xn7I$%0X5Yelaq){H4kZTKyiTFsWfnD3B421T{M*2gX_Zs?s8V|G-|8C84`AhX&6Ao4T+R0 zg&olDrZG>^bQ#kB4$0ZO1j>_S8en@NGoap6b8VYi)iir|O84MLI62j4SWhzL#w%#hLq6sZs*8`S~EM3$SCuu;jpR@dln zN7F?TU9iMGnfPfz7#x%vJY#mtNMpksEIaR_tH<)0hChfn()am*(qRc-eTDNG@4v*i zzk~PRgA1249-d)Y(3bJ|x0`P)F-_xa=?zja=oDG#<&38@mIWl{8Pfr!gqw?AykLr> z)rRdynjo0EmtxNz?BxsI-616h)E(!u+J@S2oTE@-@0tsYjJU#>paNh3p~d1%2ob~B zbSwd6;Dnqo&jJ(@cpr93fwl4eewU#*U22W%ItrwcIhSw`;I=^uKUE@}X&UAurU}L| z#X*2~?Ss}tg`ay217?h!3)p7&l^<=Pz(8-*IS?M+J25rwW=rXVEMdg3KaBohj{KNI z{OQ5GkKWSQQ(6b1*0inGyUtJ88uv<4W%!(;RV0H=jLM&scl5@d6d+SL@%8YDXv1MO z&ilk9W*SQ7G>MjbPwOK0E^mUD!j~_Py+61=yIxbPQ>|C`wfolU;=M~Vcpy6g_tt9T zkOCTz+|_$u*Dx7uDS0U%bMN=S3t*yMGu@14DJ2g&#E_V~1dqbOM=#w2ITOtZeoe%E z9WY}%&oB->?v`(H7t)aV4Ilqt&<-xFkS9D$0|Z|eeE2cE;U_=Ft5@Ojg1bA=@c4-H z1+60`V5c<&6Dg>=wIPVGK_a_eaJe|a!vV(^gMQIn%Yt>qmtXK(A5*}(V%xB8o)YI7 zmPE6|frleNM(3kefSM*N38xbXY}?SP+}&Yomlv2|Ttg~eE7ldug3E;=w@)eZ z(p>`yS+G{rs%3kdV&JCJ!6@)-Hv;8OX90kQl(22u6)L0wZtlw2 z-I)?|5>34`V9e0ezQx^zP`QyTlLM@kfl-x$X|f2pWDGkDDTo=d4`SO!?vn^hY#rUv zJ8Q#eoiqHA721x&q0Mu0;kwwmGG{$JSe|e?rFq^i=ht6+!Pjr5b?Ij7VZL^4(%f2g z|4O_XpNKEvTlb!@1-T{89rxe;-6sHl_dhBvC8ktTdH_C@UXVT6C8z4{VHInXoUNkD zyWBhLs@fFJ?!k6&(1C1CKif%Yqlg?SB74WWdd`@px1JY)XibOV(+;5plY0dWdBTSu z;>)jK#NiI#`WUai!s8oUFL?GGFJ55XP$q3>a;}OTBe)YR3 z#jY2G)!nvXS+P|5N(tre;y}ZX47vACS`Mq_;s{XYZ~UyBD$} zj3w^Ai@XkqJ|q+~1xArS7uJg7yhGoTItd*nm5I?O20Vvt1c`d=^%eu{_&xO+@vo2RD z{&3H!^y8r&?rferaJAIR^k$w?Z}73EJMBci4o(cx)$E+o25oiSwykksPP(ya53^EI zG8mI9%jv2e*M_y$b~^Rr0T1^u;(EoKSH3RclwrvPsRu-yj0MKpZJSO%+ez4l1e3$1 z3yO4q+W@flu~X&@6W5Jh!_p%qSOyGoEDg_|$H;4xg8O?M4oaExL9MgLWLd^qSF3}r z4MDPX#rZ6w&+~Az>`qk1xb|ALuIgPW^LVmSAn~g&RVJNI!^$#Jwcb@5U%e?QrKt#L zG4J;N9#e*7my5NAoaNA3@#;+|yEPw?5)KDpixV29gd@=4n%i!l6L^D!6iN|bT`f;a zVFM(!5b_8q!2?8j$Eqyo`$h(#ClxR;ThLh)qd1NyqzT(H(&O_b46i_-Z7AWZJ%%44 zwAb!~akistfwB;k?V_YT*%>_hIL*e1Iw(GrPzvUGh{Yo0db>H7jpB9`F9XI<_)Xe@ zlhC?Im7-~iJ|x$5h+vGU8(WKH4s9^dGx%BI0>phW{Q?6TXJ@;nr4Y-=gY%>$o+!?n8)HU!pNn)G=}Zoj3++=D zc4(Ul(*z+E%+t`|ghy3Q=sxO`si2f8M%8W`A%!POYvE!x{OxkWvhZ?2>&nL9i-m>R zVJ4Y+=hKs(o_crP-E*34o&o6DGaZhBRT3KhU$F}jWtyg`p!Wq_*0r=Z$0<9Y)4>l% z<;i-(^@??iflUt6TD7d)w&>0W^hKj$d`;c=spvaL+i=_^fj8-pF$j|aTw2zkk7Jr( z*uCTknpzE_4D%FS0Vj5AdSaT#uqxlj*&1cWOGodzG!RjDsT52z=Y-lc!fx=94TDWK zP|)Zu47TQI{fk6*w90iw>%&~HcLp>y5L6AkB=qS)HttT0jawztjB<$R9l4;)G@@3@ z-x@~siezL_aBG%jaAE<}P2CysoDxgEajHc6{hdltE-}$0$}S10;*|2X3B~g~#5(xL!dh6az&fc561I_HW{^9d^oHK`k+wt^xoG*`0vTNE_ ztm|+OFynR6x)IP@1!|!1drg%yNZ#f~d1tbbsE5blP?My+{p|$2c5WLmhU6f;SaXIG zU4VuoxD-o};fj4Z<8Z=I`tE@KG&3h0XIvLtFRUB9p_G`22ulcAiv~hNA21O-#$WCe zdv08%eZ(pNxGRPQ1h>27NKl8J0`{&(fatLur!?>?-$zqw5T?Pz+H_gr9&>ECt*D#U z#oAzLkF&Qmwifz!rX*?L%%Q3Y+SlO#D1`jO_0&h+%#`eUHAm?kz4hMdeeP}UeeP}c ze&{N43kS1g0nHn*nM)%yZ$fKpN}1UxE~-m&zNU3Uk} zNv4cWx~UUxl~ZLtVtPdR{Cj`+vjt(TjC^T-LgVY)hbRrMLyuW5G1`W`3mck)Df&nn z&Q?V0=#_GjmLg{mTSKo*St-f8^&W&kl(LgE$FVE`y>XsHW6t|$>2Nad)?K~V^EoJ* zxL&cYI2`ct$N1nqO%q9@|+>#MCi_e*!?(QGA=I4a~dP8?6!|~*1@D;b| zSwjOUf|@4G2jqx%iPfT4GqOt?|ek|0J(IGSd=*w3<}fb@dZo?=k5X~EdZ1i%6eKv+AG)B8}aCcoaP6cHe zD(9Gm>fvJ4;SJtyr!gW4jsXC)Kuf<{*k$$FJro59taWfUAWek;*G1QhZEFy?N6#~4 z>?r{Vp-@CPQ$orXFt{0jYG-N#>I7&p2$l|&5S7}0KH$_+55I_*WR01FXgRMZcaPs(yeZcL7gx%arD55 z&T8{&hs^0u{>|5f-(MSqJf8>dw;y^6;apH}M}NY{u2`FBRwmuR6|{kAmx5l^J6kpN z0RYI^g$5ZJT(G*?^{Uo9jN;8SO}M)oPr78b4$ErIyZhZ;digR*)AgD!m%gs*y}O&c zUcUy3=g%=sEJgQsyqx*j=Xm*Yy)Nr~@Wj5=v~Cr+I<8yYKK~5Qp4-SZ!F6*7OYz>q zw}!XvHWW#R8FzPV4Rsp@l3TEfhaXSt6vqUp;RdAPerE|LjERnW|0CM#eGH@L&QjP7 znhev7a)4uc9Dz>m!RJmq=8+z4^g~}PWc$F9Mjv?J6auNQ7KYi_MS>fha+?L zoB=2d{zx}V`>{;YS}#*B5?ZUR_1;VGSrTm}oph6c+-hEzd09%W2jHcpPjW8oKXkkX z?x2sozv$jtdz4@2!$ti^(v_@c4itA=*Iw&u;HfpaucT5KLkvb*E5&7yTWwk!np@a_ zN9VQE-I~o?J~ADD@caMzuZzI14??-yHl{reicE~ii`d(N8IH%cd7f;Z;-;&;1u9T7 z+Q#(?cV+VtfsSZo9gj*0+s4a<=QDceG(qa~fkoJA0Q5#Lr`^HnuW%S|L3q;;OP&%rAtkiVZNueB*DHD* zdvvtj>&C4n_fjT>F+$j@l_`#5g>4*Qt>TO8lw}u++XoM!&*9`#Ijm?=SB$>M&&z1^OLG2(Q^19-B#a4a0@=Z5D z-D};v*3FEEgWugTXERgIHcd89@E&g)Uwx?`e};eX5AX}WqWfo97e0HyXFpk%^>TU2 zuaLj^g6>F3&z|A#6eG|Sl8cz6>7A`1z}scT)0sJ8o}#8wN}#bS#Y&GU&BmB?r-WS49a@LWpzS1E5?;s4#qKK%5-9+`3>%If zbFYLfGJ^!tXngxVifC|mi%$0(<{g2a>}+*+Y}GJUT5-K9jOv1jFGtQ!`aJvH2@m&}X4R_hm=0D-8d2hljOtfc)=dHEc7GX#SDcs%>M zP{Q%ZmoI4vZ{G0p&(n1Y-KPTleR{&vlcr+5MgA1>n3|I2OqZR{Xw7rR<-*Ga01q>d zGX$+`-x~kPKf!x{Xy5*h?jKYuT4mePJoBTE1mMjZU9afwDbcLE{JQ9Tp&90bdQ&bW znNx@cqDQChI-GQO4^Zn8iQgDPw9l>@Jn|maeY;;<6cu|edNVji$;i%DMjoL^It2Cs zy0-RqsAvG27RYbLVZz}6?B!oX!;2Sh*@d^GSd|UiFtNkDqY>( z`?>eOfGU|Ry`;UoT-RFv+<27}iI5X0mQ$Xm39i<>#XwkKX{pV}Td;g@EmA&7cV=74 zSvIL3tUOcxVf|SG@UIC%oF65r4?i!3>+91Qm#Sf_3Pk2$3FouTM@w1kh!YW>YMZt# zNm6eqbwSesWkPc;3!c6Lm{Ly9-oq!K=#x)i=70RhC?|HYcmBl>M^h*#&a+N;IvugB zzAkWuxJlcl#|uq;D)`_7m5jTi{KZI?vLPj{)vpU^c(~J?;gz5LNY|@=>6cg=&S&+m z=g;)u-WXG*-BZ93@LGj6K` zNXBJVt3x1ixgaH`q!`N_2d8&b4k?hjy2Jax=yPTPQV{^}OnD%#wPL;KFjJ21!p`cB zG9l-|<_jXh4oXA9y5M+ZcX&lu5L*HhERzX!lkfgo(fU&uxf_-ZDRZ6}^9u|>LJce4 zk=c&I7%`+_NA*SvG!eqKYFPlcd1lUBmzV{@rzZh^cV~wqQ=*Kv0g2Nw6=SQ~Hm_UE zOY;}cVCF_O@4>IyHgu;eul0D{?$&nP>fF5$4HO}w1C?wkDYLqr-7k{6f7M#4wTl;U zYh7V=os82|rgEAN>AW@RdN-QvEx#z+TLa(z`+pICIsN+I|4z!8_Q%HU_kZVSjlaJx z2&KVb2!M_trh>y9@G$_Cg2PNRTrPIGa9Po%byaI3QnCq{$+E5}rCI9ky*IV)wGAul z!#zLxmYzLVn*7rr_^033t5V@6?c*K0fRMb0i3Uq{mx(_&`Hab8 ztsx~D)hmFVoJmm3NjV`LZ=?8hCmG>H6ifghGqetD!P$q4t?AaNj88Nc{dk<{juaD= z2p3CH5>*)Kad?L>gX$3{AO_JU{Oklcd&e9c!vv1u=>VMu@9Yl3NTCm7WgqH6^v>p? zgwVR8x0ub$Ri?s7NNx zOZUTNxoiDlTc_4n`IYQ6Glgi%hzSY{nIyN~*WNGPd&$;8I@QOtT_a?Yb6u0jJokM1 z`~T?gu9yC!fAQ(p2GZpZ|K-0|;Qh29B#?|6El`!L*5Piwm)?^Zrded)HoSh#(}{xW zs$SWfrIeX+N?D$B!trQ_Lj$Z5EH>Si7KVUXo&-(DAG)*O;oG*Oy*j~R{U%%>8@n84_Yi)@A z@9yc2FF%KO91lF*>v~lvO`|_|JbBJmic%TKe#m@wnUVxp281q@M9X8!*WSk%t%y=& zaPJBiu*lq|i3AP@nK9UBCTtx4+8yXYL>@5{`hD+%Fd5aJQRNUSJJt;;L?o03#hheN zu5ZI41>7j+!0W4RxZr7F9#kw1jdSiD^Oyu0^wAJQqjWLvxft(#!(bg?;l zx7w5Yq1OAyr)T87;L@482#z*6vcY1)I@BS#n|k(^q|Km`fo|Q=-G_U)p?9xob0=q} zDJ!Q{-}`U=&424i`}YgNou8!+z$|FExzwTwI7c${1j6G#ojHYL`&{; zbqS>B+%YJu%0w=nN@w;rPk-fg{kz}gFaIJQp6TO{@$t9t<>&Z=Kj0_7!r%UF{L(Kf zWe|Mxl;kO=X}RRje#~{n@tCE(^Ya5_vf3`E#C5kcK6G$t;<*!iCm@XwLa40L?i~NLe@aP=u%xy(_T`lq(E~0hlpt z%jRj2jU*Q`ff89A_?xtSOg5m zNOgpc!G^|)DWeq56LMB`*u%&pek>59a0JC*$b|JCZ>*i&!-7DJ0h6Te)|<7CZ5!-1 ziLG<3YK@^vs$GQDO1ZU`YNKE&o6)+sRmk4Zb%9<{3*|8urMJ>sa%A^I>vsZ# z=4#zde%RKRzI{9AXJ(H;m!8~L_mwJOf|BTDB|2PEGAopW&Y0=lyM>6GDLjI^+|4aL z3BULM`kQ(T{~fQd3qlvXdkd4tlz_Rl)4JXP(>(W5E;O~~4nh6tkue?$pqWW%)qAV0 zDJSpEub1AtFRNTAMU#}_zWU1-zx+S@pI~cz^-3?E<8;J-{NKaF1AhDO;TL~VfBt9q z-oM4Kd>79iaCfJ>dpz9RkAB4KIZgB7hd;Ud^iPk=)c|<2!(85b&$eaBdFhpV3*BgL z=Dp+2aQ6TJ*Q+g8yI#|}@$=7hzW8+TGAkvOg4PAFWJUo{rXa^~+hC^o2oiO;*@ndG zW=Wzh#&qc*B9D21j+-w|+}qyiF4$1GTg*I4oMt#6jS?<(N~D}32Vh3#W9Te_9vS4zH|nQV6>VV zU1np}bnZR1mO_Ws8od+7)>WH&cQa9Pxq3(?(z52(Y-G`7ZNz2vez&f7(`=SnO4(%I zQ|;K+$$Nqfn0kLv+xq~(tGEg-KhVE3=if^CrSZq!x8`4YTZ9H=At?l3G$Mh;%%v<5 z@E)^f+-Xdf%nC3$vzSnxn*HAI{K?;51b%%G!m@goJUQmoU5IZfG_7`=apSN32cX{svZd(P{l&V=T zi6xW9-r&IJpXpbBjdypru6*^1Z{FBer<6D!x~opJNG(ecL0KD)N0kZQ5ku{c$1qJ% zDno^g$n^*#!y0o`(4btFwTDfBqQR&hvXs$fd^fsu%!9@;0C1R{L_Lh3r zJp0mzR6kPj)>Uh&&2pxZeH1LYH`ZuPfm93+4k?d|PPnVr%FAZ!YOPvyWI)uKw_27( z({w%Ep_H{`nsTdYS?BJVG2YmV_fzZlQX*$?5xe}s^hwUYNxlFm|CC+SYG}rtWr9rH z(+(K3c?_bv)I`-p6l2Z?rskz%7LKX>vsM3Yi2SVwp-SWqq>S03|<6m-udta8G3rHSkVG7U;t%6DKzlT5i6qkz*NB+_; z;`}Iq+rr03{vZDL_=o>}O$ASnRAvgNkVQMd*54XanC%t*2U;lL+PjFzK@!oqVg=^)r2j1VSHQ$;qt1s6v@0v+QJUtCZ zli@E^;I8WE+s@`2-r><348;Qs8f43YlxRR0icOPB9`#kwaraa<#!!PmZ;VkeVd`;f zm$zM5>>l$TBW@917IG-XAUXh}g&1!*#0o(Ztu4 z@Xp@ZyY(JZ98{aNCI~4x*?Z@EfR||C1 zM2k+U5e6ogLruPQhq@V%Ni)k?Ox}ZWW~TIi{=FakZAakO2O;V=3DJ4xg}pKUq2!xFU7z0v0Pl&;R0S}fAdxQ{3qxY)6{cnNZw3U z^d=JXq?{3`gm5mhUeWe93p#kMLX zgh57BW%T{@vtdXPYQt><2=6iV4y7O!!Q>l zb;r74T~#aUX00kGpQi9xpQVY+xg-#B_s(rIZ)hg?Bo!&sC)Wf_qR5u{|LXnw z?tuPL!vDziBX_m>+I<148AyXu(C|g(#o2%^ZjS0<$taSECYZ}0xKc$wPi1B!l!UrDyYz$5SdLcTd~ah^N!(46O3DEdBh{uL~f1 zcwi}#biK-*B$${B?(g(>egn$*{BwTvAzr?~vuBtJu4fVY>?e?Lxj>FG>EXb;JD#8H z;X!ZSpm)4}-Iwc?-0tpRslR^JOYy@j0uHop*DJS*dG_N;FJ1`3vf|Af)QV}6L(iZ0 z=g$>m(~oy}`91(`8?FmLOw*Wm>8|r-Or-?SMcO#%%oO7{YQ4?ViV85~muwxzLCOoT zF?wQvmm=?2mf@WfuuUiidXKi7V&+7kqou%-ddIrzHsP#Qwx)Fpxfy}Mxi`bMnWV6U zD`mJMg!d(2aO9%euq^p}Ib6=Cb)Dp%td-KFPK?nggh?eZQVF%GHg~y^y&Y zeg&RLCl26=P)b*FOUX$xm)7UnDP3E;w%XuIRGR3SWvz^qbV#7yAWSb_rmd##E?iRH%r&3F29`2LPF(C1>b_w$gIoH*;4YeM6 ze+j&h04-)0>3Y4^ZOy&EOzAt*bSUKusMcD$PlhSwUW##yL1nVi`*UIjugQK=a;4Ce zTDQo|%?MfVDZIUb4)j5GH#27WVcC*dNu`h#`9h)*iI^r#GwOzA4fN}alJVyCz1csv zqRAe~E%?lGxKf!?_XhUpQo5{nBT84cjNVrF?n;)Xbj;suyK_2Z!huFEmaKPdm8UyfR(N)%2h=VB?JbO-f zOe2lSsYpqrT8CU_m}hhMVNV7i)CC%DS-#unOa&<;Fqk~ycn<=H38&NW`3{+H%()YMJVeYARHTEY?7pU%7SrwzM@>hc{xARU|3DG=^+A|`p7R-8$tGQUUrOfV`7}*_ zI5g06Mr%pv$2(lFTbZ_2m#v=FFSWK;uX$ZrG7cG+1$PavA6c^AJmNdQfURPAgc%aU zP*lZmn8N9uaLt8G^v33ZaCgKssa0IAn5S@93XcZnZ1be!LG$b--)4w22BQvtE(Mi@ z(k^SIAd3?(860RKXn+Y)3LkL@m=8J_l3~g_HdDE-Y8A&5!a@sx5mOnI(bn+rfIJOg zMq?%xybBzIYuwQ@`hYzUyntj%#$<%tn|iYdEt1~ZwlV9KK!^-2IMcgTen6HH!$wBW z(B2u&Jm}!@T@2H~c08O9hsC?*xgO?PtGioDm?ldpRPbAC=UVCga$UB0@@X{- zMCx_Bf-BABG<#-tFnfgDv;~`ao}1aVwzV(T+g)$j+YFV&DVM3_f9&oxDECZ+8|7y5 zWF?vXrzvGiEHhJn?f%bd$9ci!f}oA28OH-G!G-k-Oi=zM_u9H8{Mcazw5p^45We4NNSaQHNu#6PrC>lc%*1HHie?AmIIYT?8 z)1Au|UQr5jH%}qAPhr7Cx*4}k;eiqjWI2$e8`GiOUh zW^3=8(RzoOhj~x$9YH5B7Z>t#;1OWAdc$Jn-6- z3{$zb?scoz3$NFQx;+QpFX?5T?~ccRA^+3Xk%(>26f7fz0eSk6_D7D~JJ$~R|8v{0 ztopql1K@8y$DGlKO?R$eUfr5?=1J3s&>tEmswI0gF6!U)R+D8zu|#z9UcCeDARR!$ z`tjMHdF~a{+W+P6{?XrRynXHUbwRkUnCF@^$OicJ%6V3vwt0SaT~uqI3aY2p`0=;> zvefIkEYg=E`B)pJmK>n4%H zBTcLu&Ku?lcX!Ce4-;#@>8%-*%}`p5xhn`H9V5C(KpZ35#nAr`=Lzld^1e)WVWc+IY;LI3(h~TmJG1Vg+y8%5u!u_qeaL(8^)HUQ0Oeu!u z4W>>?txP@KuW87+r$l$H8+?Ozm?1J#qlS-DFg9Htqa7^nY;b@>>p&9OBy)FbHMI&? z_YQZ~s-d-oV$QRC8N;s0!wF0b(u^c`cL$J?ncU1KzDcZ zJ-|Pi=3kkoZ{OeF=k(*P!uBzk5OUtfAx=osXC0rlRsZ;pzh>D^cRJi7&3DcJi>|`r zrTl^A&GHw`|5TwbCy3v+@}uOP`i?qtIiTgX^}1w7Aq6&@{^IcP2VY(F|NS|HUtC|; zqImThDfu)DRBH%h{B={x%lq&9?h&mbkqu>zQD<AWDu2{#m zsa1F%_FlbHEmF|o`v?pA?|2XK=jjQT3vyOUXqBXoP3nJ#_%iWxCBT`JcJC=TP+k9z@BNjv$=~=0DdGMB^Znga{tNd5>sQe4bpO{K z`p3Wb?=ENl5B}~)$sUZJCbOL7Y}Uvlc}4ny`FH-S|8V8s*Ir*2gxdypyDl!UwRCsF zcfQRJzolRNMV9QZU+eWFE?4}~A8T#iq4NcI_xku_FIp<{PX%O5JNE#C-4lixCwNeKd;!i-S?UqhI06Fw3!o@CA$0Z^+>>xG6Vf zElnj2OX8U59OhK-{L~mcq~Wd|kcqD=w@vC{SJmCEcXy9=Um^u~?*z=dB$dg_)cq9G z4|%;p4Xx697!bx-a;7wd|9f*{pgv(Z)wfypUaQZy4boTBbOCzcK&6;@SUI|6-6>fZ zTU{1fvXnBJZf1(DTW{rbB<<1t?9P~msMgk+dPS{$+g3=q9a^1%yJUAIf9rVsm6SfNRo?!W zb^X6fB)(<(N8y7SS9Qoy8@p@yn%ODiYC!Yvh4?<)^Ro7UoppoyXq;K6Cw+ z@3TRFuGiPKDBgQt%fh;`SGsf-zIuhPzVz;4M#s~MzwnFv_}lu0U)Bd7_0vQD!4Jdt znd_>b`~(KPe8Kg^$*xFd!z!bygC*BEmNAo5rma*>M?wuat9 z+NV4t%>o$nfZTzO{hU$BN(sH;dO;`>Q_|sp(+MJKLvyTStULhZ9Qt77gyn*#Cmbd| zdl(67NC9)3F0};vwZ7VKU zt}CBE_ugZyyf}v9Np9W`fAmN9hvQtPHqB2jUMwZMD`rtf7ZIg|YyBA686Tv(ng{pQ zTT`p8R$o`!Hf~$-o?5NFuijg0tyY;Ga(+MY!&08hUzGf-rTiNC%>92M{hxMb>>=m> zRUUsIfHQ%u>T%H@eE!!j+hZ-ya9QxxqyF#@ex{W^Y(Wxwf??~Dyvcj>fAIIe_0Q+` z+VA`=>LmW=>+86qUwjU@!vD8cIgHTdN!@EQG`9~wO5gc5-~X`JT3@~C*Uf+VSMD4P7@7TMpE3T{7%}Iwt@PGR~%yXV6FOzanYh12rTiuAum1VMN zQcmvOmj#!LB+YXO?a;acn@uJfd(F%BRMMffmeQN4d@;}0Wf>}s5MBfUpm)}4F(W>x zJO`q7v~WaCIzRTuNA%w1Ad0b+Vq~pOpa8S`OX8PO`bFr2JbyS%zW_W4-SYQ>;0gfv ztTogPIpZ*cf^9$_7P^1^rGNIj|K2OzGI~REs56_8+_1KmfffB%`FQ$IfA#V^Uk3vH z?O$J)j+O+=Xf;GuCh@w2n`+Bh^mKRU*F}H&soy>8^I0E#tkWjKmqy$XXJ0G8{Ry;h{@u+Fiy54FVrD-@u*M?q^ z3wW#DwR?Nop39I-dTY%7|Ksk@er?UN>rQNpIoJA{-JIq&5pg3TyU1jcOo|j~iJ~aU zC9CYR%P1IzUJ3?mKh(Qm_{D&qTrd6u{Ny(`Fbue07YZ`qLX`l?WvM8OMUj%oB$=7a zE+R7G#%)ixo3B}G&gqA5-ymJO5}9OVsHBB>2;6h-KIfjZ=eO3HbBy0uvYnScJ_(-G z6$|AWfcV0+TxP=<3(AbykTTm9+;G^T@6ffUo%VFgQk+h(IBmj7AqvA1p8}F?rgnf~ znpkI8T~38ds{=Vh1%3hzLnMwzOf%CAaycGHmplx|BM&?Gpj$zVzKAME+h@;#mQ!&(Ip6%}DP z4G^V-c8TG}LD zj?Y+vO*KOT8R!Tkys_n9`sw(M&&)*o7jpAkv7~)@04tH7g->8YrE0Fj5%t|)e0Lh~ z{5v0gR$uf_xL#L;eGfM<7|r53g?r>SrZHA4Z<1hf8h&<;)Iu8oDh{*p7GTJSn?PnC%B;RvDvWJ6Vc;%M6Ea;;D(gR zh$h1WLqVOxO`0YEABSlij8qY-AgMMvYC*S=l#)^~$3qYuLop$YZ9L}w_5j*!|DUI0% zNRo2W`%UvsZoZ;?XjR<*SHS;mDZCRDQ&0b;bjrY30s>Nl2W!lZar~^_sPh!1pPG|<3A;P}LikN2P9EQ{W({&)d zT6o0a5KO2R>ow2Md2=1pgvXDu-ytUiqSUa;^#+<=xbeR!;8h#S5atkaVfl`nXa-wE*K-;2eVgX>k zc!40~74|UI^j@ z7O;Fw6H`LdoGc4V5NbHRVmvMo;fRPjVLDSi%5I_|+$!inGfftthRS)ke zsp|^+V{U4j3p@nSvK&7w&_*vX3QvGkLcgxb)EWrQkbO|7knAYj(k zvLSQ$G!8xd-7?=Zn?ybYb|Otm_elvUg3ezMSkAWQpdHV0t3Df>nusTlvE5+qF#9b`exL|LM1Hzw>!G zm_A*vhyQYkWKxBBfZp|f7y!iW9a6&CG7~E(6Wfe0yo(19@$_lzB>FXmftQyk1zi{W z9p)Jh81eLFytsl3R$K1(;*{d-lWi}eFD0S`ZK1dWE+-;7tfCk!B*UvMEtv&y^y$O_ zKrE+L_fOk1jEGX`HRhQqEpaQSWY6P~!xVF+8QKmhL-YiISccK#ggPV1$?f{;ri8BJ zb{pk1)&owh*X8hxlrT>?9-5~ zp`7B!7EsbF2O$_1q3-VHIvfI#+&WFFq_>k$bJkiyHI^9Q#T@9Cilu5vBx_D7sffN3 z$DQm~5sT_b-Ip7&hUc&@q9rj;;?b+FRZ^Lo<9OcWFXj9uaV7FnB)JQqfD|8Vou_FK zIV91D0k58qa@v$naFC@M%^>nn}UH)`g?ktH&UfPS659=`;R|2DYK7en4<7J?4{$hO zwTTB0F-{0VC7Mp>nN~Q?bqimuD_~}xGpflvAZ4nY^kU=4d8R5lr=+0rRSd{!0#CZ& z#2q?ei}{GJGKrf8i)wV9Fb+5l_*5v<_NOQP0*pEwWS(Q5<5NIr*P}_uisAUF_zrU= zBb3o)L~yP!qe!SgWZ^PPDNv2R<6&=iw?o&;`FSFXd#$sCHYyOBSJtBQB&A5LX)f8! z*6Rs6H;wTG!4Q>DQIDX&j2;p}1_4E6GUp`b5+O;w_+YgyHAN({2nUf_6+n;&_a|m) zHuri1KI__ZYDwwvso-H5+kAR#0Zu;(@*@CdUk*RQ_I-XZq=zwwQAzj`O;e!qW~@g!phDZqV;+(i5J_ohGiocc7c z8&NEyA;3kvZLRHm)%)GvFV4w^cek9zu*&lb1Y;iYPyPuWKgL(T%FFxgb(!q3>!NMr z%U^+N9FO576H*t`5xc>+moXg5VHYoMY^n<(Uz$uXx-Klj3j-(Mub zBVecnlCas}Zs(;+myvUbau}MqEI!X^zpJGVO|H|#VTjEpwp*?@scqbgxFxIEJ&7DnzmaBx|!3zBv z?Ft?!6`GMd^ok4l=ij|Q#@bC)bjs2+{eAU|h!-BSac10STt@uyukabI*A!t+NzJ21 zRkeQQeeZ`uEa>QQTI3Ws9?>*tdej+Z;$Qt$9u5%jowvBz$djiKLDTv>??%de@)Wy6 zP~+hnym}cI7jfA6_B?K{Fb=pqFpPw>EzF}I1BkZ8s%O83W*i5U61Tg!-#|_%e$;|$ zKt#@D#sWNF0+g1}^IGZdk^rCvrU}!`@I{tQIF1A26*WwWtT4mjzRVdQR)X^qQszLATJl+k% zOY&Oe;BG($&r~j(=B!_>yEX~k?ZWJT2mCLAKYVBcpWYo#np?9|hC)=#^XV6qGVa|+ zY5>7l0iL{OY!J%-;eQV<*pKlK|G|&_-Y*!(`klEz(+irTw6HbU2#GkPf3Z~HvtF+| zj=u4R4hQV+VxCXQ#?@lGUE-k8cUY~^b>R{7g!}i|wD|hhvEL&geb3!ax(<)tff=U~ zAAf?69^>{7Z#{~)-*HN;R(^YBZ$FabL9SkMcgHe8Q*>>VImRQ71BZ!oLDoeN$@My# zZiz<*c#;%{hbUEj$*evNq#b3#I7X=ufo7hcBW3IlaeEuXAQ6!g=7PK1lS#MCK%h)G z9b5S?|ax5(|}q}$tufma?zSD@kUE7 zY6MbREJer)AnF{RsFi(-zDES+LUa7!{SW@j)1m9jf8(ohe$L!zE!(l&KRX+0y&i_$ zILxGVecZc;v-8;sz({!2N$q zw&ec-`1XR>S)>l1o?;eL2!PaL)#G@;JW+EXVRi(-2CEKLzy^gU2(k-?`A_lI|F`?I zznJh{u*}0V)?2Hz+J;cn1&M$BD|}Y#HAPrnO=(>fsxlQb!|h8Zja7fr^#MqViwl1F zi`?(=-S2R}$7;p4lVN1L;s+n1?cyt6L(^cj!g0WM&m(ug7U*)9Af>y4sY$p_UNclyY853XGyNgw>^1sm7>__T6f+h-f=b zlg?ALP1G8r(F%*<7>*EMpfbrxt6`-erR3Jmb8d7WcwXymt(x+M`Bs&=X={B*c}LSD z@{LkgR%WZS`xnSYbxr;sU)>BBKFF)o`#+MUAqlsKe-HAXqKPRWfFx)O?NEuq;_v^% zKl@w%&1%mj#%XVjTvZ#Y84#)zN~!V32?jpH^_n7_4hKXPz|G<~U>IZ=Au0L|-g-Cg zcF0Yvx2RPRQcFB}5+8jOrSPpstcLvo`y+E3T~7xtF8S;^M50!C_(p8EyuOx)Z(4N@ z^XZPaUg5>dn8s)_-h704#_ctaDHed&;lSf@!T3QMYK9PVU_1gqQZDlUWu{*%?Ul*h z3^C(yJl!Q0jGx;nBL%=T;r@M`ZBBr*ra^jDx0-N%fdKaVQ)uZtBLee`wv8uGI86Z9 zG-#SvVN3x5x^6MEpW3I3;$-;_@oF0W>9=?C7AfxTu-zb*1VX?fG_hO3BhJp=`&<8` zs2K%Qa~^@ zUTbkj+opN$YDvJH^E3{1zr%5lQbH9%N5DN&GN4kcgX7pu!@ahBcz*V*%*U56$CT~? zZ;_WGV??2}se9e!B0SW>EoPOOEcv9U#W}8*Ts1;wS+KQjc~8 zW)xsI#XtOw&*ZKD&*u4;i9v+0a2Qx~4$*9+$0|O*t?)HPXwx)#5i`tlOf%*}5m~K} zvx`RGAvK(5xw)ng$0MIVi>5_ZmPu~!I2BZbIfo&pi4dHf;}?DrZ#?8Yvaa#YJ0SV| zS%5B#VZ_ttxVsGm&d+e~9*2SJH6FdC^DNUS^Nj1O@HnNHm}8hwr;`$zf&g;^l+!Wq zQ!J-d%oU%`GEOmIILU>nFara_u&~UK(<>!0kz3r{zzj=bX;S2b!x8foIdciGo@bO9 z)2pAM65B2A?oKdll|QV&T2ACuysE%jP%0O7`0f@F&=lh=H+P|mevN64-4O`R1^o&S z9?CSvZXfe(dNyqO7sTzeC-iKZQ_@Z~d#r0+iTBmRr$hKo^^npivP4|zG;5hjVw|fv zQpzbc^exb-9^7y5?uNTNJ0214O-9ZU?(=NnP8t#^n`wL${%+sj-)_hKE|ZPwMNaor zS3vQY+yQCbSMKU&?n$sEd(t8V_!{sYDN7b75afSMCbFDbrUGq#-vu>bil#%eg|s-9 z_`5&;#qVFd9HuE7l9owrfi_D6=|G6gqW|vCe)T{9*5_d|e7%*)yx4*ja;H$*h9bDV zmC23d`K46DZWr?uFP`V7Nnigd83tB!O}0Du;Sjq$f*20bboknPw8HOx8>=-|D|9`Z zmi^l9-N(z9&J%PU$32b%KK>Y1d9md<$uw}Y!8>o`Y{UH#9xz}oku%y1tB9Z~-69;r zh~AX=1fv&T(~xCZC32i!-=w!=1x`1>+sBVDgKh34jQ)LKE(GoThMq zh~s!_8`grWYpmByvPfED)knlQ4%0kE+ep$@rLSH}v7iE7%4>I;AC(94Xzr!5R!*~& zN^{f_bLljp$rNpYGhq*=X_`xQ^D>u$a8+b5;MHoG6Ykpe_Pp&LHO-fV5Bgr*bsXDT zBj>JZogB=@QoL4|Tq8yg^I&+Qb|OkvV2Jo%lS;1Ldyydj8SsA>xjuDkQIT>L;TvWf3|OZ6{n(@hr0&4pgLAyBdKbN$p6o8{@2}%KcV%yA{>T*ova5Wnl}2C zh&JcCWPzR)#wJG{#|v^@bv-Gk*7*IRDWSLy7Nyk4=wX z{!0{T1R^DV@ymRE<%dHg1s%sD z#tAvGZSeHz=|-o5CZlbs82~&m&nF_hdsM;#An1YMGQ^w4Q%RfK;`a9D zxe9J6nPG;%zAhq5{ncr!XpIe$evWy37AhN&{zI?0Hp#%YLR<{ z;C3Is{!c&ix4t9*7KE)24xc?Ac4^`~%@a!pG zUcoEd7B642YXdoykrOnz2mvyfQk-~XC)*)(Njh3|Fb>HlaCOP2iN!Lrss;~eLffHf zLBTNMlP8!al!~&K+q+mKAbpR`8mkqo^6Dy@d>Rr0(Y6#>EGc|77K^Zxr*Yxxd$4U| zy=Fw*+`tBI&yX671NS@Vk_Q?bh8QQ_5df?bkmG?VIXIeY#4I{Dqxb#Xw6$qN(7I-` z8Zpnsrzw}xBU%rcCr8wMuC;o^9B?4UG3VTf5V3O4?u|-nn%uTc;Eepjdh^Au>s4Pw zJejA**Vp^IJ4tEfelC7b^sH@K)duWxTaz4s1$kD1$vsGSH+PVQyj}PtWc_r^OF{*L z)_}kSkN^B1{e<54{H6E)e4iLKmC*y@(K*OewH>wlVKl#G?T__>`tDC72T|b@*8Q(W zeBkjTm6N_d0%gWr{>Rh!w}15PzxH=uHzy2lfg}7;h|G$g>6c! zQqJMc#~*9kHcit_b95{3dl9L}{o$8>Vf=+(iXZ%dj~_FDwvD>OevcO~=o(L-;rfaX z?{T|9+v4HF7!KH+;rbry!8m@_uz)%fN93@5O+7eT#*5iwZf7y zwh$0W%!|i&Ar49a3;!lciBDU9f2eD~0&+>A#_nO%?EO25+8N>j>N#dCvLMQEGrJPq?)Zg1yd za8kiWqyaS|3v-iKNzYcR^=g&+J~d4eJ&$(6c1zmz;m)mrO3Pt2J)YyQV*ew*!x7V+aL0sczs(a2iZgpB1@BU}h1AOiw7cttIL zr+rPuy{-s7I!)WQZTrqr9?g$8Hw zP{H}Ro5eWB%a{20F|Mv)hKqBMF&<;R=I)Nuz-9WB6WZ35;Q=d1DLx&hFZ~kHSmGAo z5CsJ0Sdu_<6G3<&B_x7@%lX5Cm-P^uz`yNf3H|J+67wh$Q zy~?Twk%OqaAE!ec#~b%2ifNj*z&o4G7epSqUpDQ%roBulgO<`=YT#w8ItxuAx%KV< zv_MP0$sK^dl5vMwaW5j*5&xG(pP;JBp9M$6M1%gMG%Nh;zx+#09x+QqiqMP8-NNIZc9mdB9a0$92TK(_$?LXM|vbo^- zbIvpR9_uxl4sX1L@fd9b2`V5CoAKfqKlnlX`9IH#v-sina6Do<&<(1=z&v|ujbT>e zu*cmV!lRaCeKQ0fAcKh7g2v87*!%2+*dm8crwYa01$BVJa@1&1QG6mTFxGHzMuvn1*3n=55<_O}o}~-nN@{->Q!D{Qfw;0B@5X z+$nn7)+jM#&(UvYjg##DMC-VsJb?qnog7%E!e6~t5uXL zWyX5lHSOgveQn);)k@cQA6xy=YIO&n568hVoNaDC{NZ7mDu~;W0X7QscyPfcMGZEJ zc|r-6A!gus^f%tXhd<<-Z!#R4HKO9Mi{Tim(YAiJwRwt{S7>G=%f zS3*i)zlS;QcBDYlLWD)B@L=0;NupjrhM!_oRUIs~1Qn@~2pPwE94Aq1&r}4%Xu~iM z$9g#Az)I7ZdB5GR*Xv7>i=5BQFLJ(Un@l~Je=?5KZhu$iLrN^wlFmiky`=z{1209c znr4;rG)^&&7mhZiw#=)DxmpbqFRNPD?k!P41JqsJfVf4xbblgpC6e7QYCSk_fpF{E z_HT*v-}?rtAOzZhi%ksicmGUt!ua)n$iMijAGPW0(fwcl#dxSc;ri9DfBnCbg~A-5 zyb1{?445pwy<0ww-?+bP4O#KJt?+eo!qsL{*=;s$O2asoX*|qx6$a;}PpR zzcUX%d)R%WX|(H-mD{uJaU5pQ%UpJMqt%gQY8DC@lA>=J4hi-xIHAb|LBswQ)$qy3 zP+?ZIEt(wHFMSwY=uLyJ^RSrbxVhr_CGK5@1a`Mk3v&WG-rmwGU+K#hYcCg*?oujp zqQ~>pkOb5zvPhN@0hL&UFH2H90%qt}AW#ZYM%ROawuJ{4arUPnzRT6F?-5R$QA)(Z zTd$}ym+a25V49E;mQ=iypi2chykZ(LPeJhdC5J=wEfyEZIAR!R22z&%nd(6~MH-gM zaEOxP5eyIkizuZ=I8`+#56qK6>UvXwG|k-aeK=0TQ0BQ)9p<7rn@AQ~wR${;Xci%H zbbnIHhsWXhFzm?Y=LJ#2rI2dH;@ep)Na>IK!ln(UKeZ3XzD0 znh<4alLD$*MebCOB5-fa?#$kIKf1pycocj%4h`b3kZ)73Z2Db~$0Tw>Zqa6>HIhID zY39#)Sis?{qlku5T|crtR6s?z?Hc&iVT}Js~>AeLy`jaclJk zD7n+7i3L-Ax1%{EV|~t_`#F63yHRVLou3+v^223j*^vp^0ePRwcrtRGY?9 z>(sWT$))D8)~GetI=Js6o&x&xNe6CKQ%aM{KBAZ)I&GM}PLuy(#)Dbw=C%GP=M0&42dK zf6j~Vzh>Kf%`4Wv7gg38fUAZo-PtrbY3tS`O`4A64otI&kbrrFpSZ^)TmZ*%W+t%+0jgsmthqDbB3|a| zu2j$Nuv#tLEu}h7Bs3z0cZd}r%W)|%s9J=Er&<&$WENQoo1ASNt9ejVs6=v4W-D?{ ztb`G9aKAGzWvmqXpFJ&^9PXvf@vh~-H6si!6kwc>7u8RiMY5lw?> zLi9N9@aRpv`2c0as>R(7DmWaF6ND&+#UTvY;a$Kk+_ALH2-jQ;4YxV*%NAM%3_cyq;{ z`e}GY)3O#l&cOg9#?cW-DHea-IG%`Wu_Ow%vH0cZ8RLvv7hL*X@VvpvD+8=H-1N9X3t`bS13ARKQEr22V4+0!T(~ zU=a}p)QEs*tEm=+N!xmOa__;FN~>ByhUaSMB5kb=z=#?#A!@C3Lxc)b%95MZ8gGJF%>B9gmCoH`YYCXVbPDmjt|o=S8EZxAoR z$K(Lq01CdhBnp;ts=Ypg4kZ*JpOgQcfAKHEkBAWp`K9;%+K6ADb^aq~%fIu3-}+O( z_-j*{W*ml?3zn`NT@Ob|8GWyP*KD?m;Neimqt@DpbZ$9Z!k>rl!YzDC@ut~_7LP;sI#u5}Hga>SX z6-9CCuY@WPKn^pMnTuH=EQ(MiNWeoC6nZeimuv>U3Tat}>A{mQ=+!OoWSCn1IROtycmx6IdZ{j@uoNQ$lfQk&as+ndVWF+LpE2GPW)bUGodbqp_PNI2GW$;^|Jw$% z#E?KD5*YYgijY6^^N0a4pat5zCi?JSPM=w#{p*gS3(PZRCR2=ZJR&7q4iB16J%(Wr zMCFkG+Vhp0v_~TPsV!vqG>*~`tdx!)HGnUd4{{qv)74_KW5)X-vBd-oN_Z`;e;nWo#SfZ_zLMofC`VOud3ox z5AL!dE$Z!M4_wZxIh}?ROU`CW*zM4*mSF~j7;L$c#c*Vq;kF!jvEN6^TmYUqP9T}3 z)j3a?U!7#!>3%wGs**~~r(7CQz@t=Hr8(vTzRGV~mc;^D_bR_#+gAl)S#9`4pyeW?27 zl-^QpfU%UL`IX2g<31B6>ho$B4;&Hmkr)-ih2s?A+&4%#4Cg z^--5v)s65%cy1N7{IzP2g@0K%Tm9ec?~pU3#R9_k$*=hKHvydg^gI8poW?qLljWM8 ze|9aQ*A=1JVkyyDSS`-aJtYFsHf6n@l5#)TaX?C~V1?)_)xAbcwWeC{iF}#zX86k4 zhz^~8!R$lT$CMYUcY_|MdaO}$j_YfG{J4DK-C}NEd(X4RC!gSWK+}j)x*jRH*XY++ zb$I>^T^BG}8aZYd27DR^zs%etFiz-N0H>7cq%cF7p(z#Ta`~m__30VO@Wql7v)Pi}22ii`|W1J8`w_?-y;+8 z^I4X2Wmbj=Yvkp6>FyCVVk9d7;T!>CptyTo&eB9up-9wffk4oGQ~aLQb%f=7Wj46) zM4m=GvHEfvY?}I7scI=5QZnHfXd@c;95EuMKm|;7E@et;qM~vrF`DIwHTj0fMM~@0 zHl>`0B#JWrr$j;gpO44?VAcMgtRe%s#k%{5;=*kqh8V z^*r*!)}J6g@px{ynaA4nyt%e7fARRuZytW;XXfE(s=nl?j6*cp9=^eO@>+2JJ`h1c z&b-~@YxOWflzmJ?S7mg#QIi?ZrEEa7m)x(LofJC>Bwx>IW ziA~G4gGhYxB<8|uprFZdbBkfbdM$xageXekJjY_#Uk0I{au$UCDubRN90b{iRK(4y zicva*M9j|T?l)$|Y*g91UwOSQ^EgjUnQ3kj`-nq$R_!A461`|v$&ym2avTVxq?@F| zbY*rZWlh=SbkXEKoTX^B4oz;dm|ECC`*(Bt|5*9&0)H=MbQ^3N{^ehYU;ncTU;ZTP z*MIN*|M}0pJwxZ_Gp2OE?oPOb4T*S4NI9B@rO+%uE5+tn&6<>??RC9c@Pc7R_Y7PB z_o3TxHLJCnFhyXV&*mv=l?Ye0B=m~i9f0xoe-E|PHirU_9>r$u1H>#IeF^jAx3}DG zkXzi{plxv2gMwNyjF?7HVxBQgm;wNOd9>t(x%uJw5gfZ?6nJ>tuv@2IRJ z%xnhHG`mtpueHoZwmF??I*RyQIJ<8*`t12k%%6PZjA)zKZlq3l|A#1(Q`ojRJHs&Y z$ul2zc=!Mjv9v&!^n~4k!x8HZ%pfTM*vUQ$ke0Un%E$x|U zI<-$13w+by`E$N_0g*@v+cWe%G+~@EI#P}@<2cZR?l6yd)!?x}nYcc~YKz@~=TFhM z^3J*Ulgw&iic@XZb4q*fqG(Eu3=0u^ch0_Q#E+&ua zm}|5xx|KH_LI|aUQ;A{9U2{?GE2>}2`Rz7uMQX&Ay8ub}rr9INSy+vD>HZ{Q8!?a; zL3an1w&V>t0VzTv0+=J_a3`Fwh&wWwZOeSY$mA4J%;4TIHY$zEZ7I9C2x%gfT&j9> z&%l}cefLgPMG#Q|BUh^DP4ke^t4^gH%PbZp^r$fjo@%-ylGJt7RwU(&Bn%79Shf5M ze?ETe$M!w^Db|jiQ2xu`{*#5V{fXD>j-&I;Qcf{+OF-W+SV|TV5gF)Io0O@^B1$Py z>scvpy1yIo1=TG$BPNn{odF7^NWR1wgnoPPxEl-hLZxi?)lgL@|VLe}GqPwz#>$bVP0< zWv0v;$oZ7LE)7!4{lMcG=l38IKl+5vUI2ko@bM>j;~}jEg#8*G0f7kG<`nBIJWVF2 z3CANBInLSHt91LyQch7&3%I^%f(j=@v08hR-CghQF6a4cIe(*R-s`%zvS#4cERhY7 zRo{$wEBt;i$PJl+4S6I-(n$eEas{;HKEflGaYX_GSWd=;sNt=FrO>Um?HDoCYHnSU zGfDSFR_&*2Fn+2A*r2oo!!`SGT*tEd=bECW0S* zP(7xvf4zR`OQ^;VKEyD@_AFY7l-T5$hG;s7(u|Z4M7!d8jed<22Y{F-Of%*Q4(xBy zwcKulh*~fVXd9?R-|=|laB_u_+;=6D1@*#fk{kVC-roqJ}a>8Mc>Nt$y&Za|Tj5DU;$$>2409sH;Av?r~n8Op0HC6DGONVfvBl_^{ z5h@C*nTBtGH_5N5THC%LugnhQL=GNR2*gdX5M8e0>>B#{Lk;fn{dO z-gUgY#d?kH7CFNMwczGgp zQb0vABmg255Fm;4BAt+`3T#qZ3*IHZ2)rSpBIm02+;3EgLu7S zrtPuxf67b{6qX{Oct|za(oJXYemNcAy1u^W-nfmx9e4}w30HNI(d^|sKQ+5WXp+|b zXg0eyKsya9Nf-AYmNNM?_*@1=$~vRE+X3du`@%(uZ*ly5kRHq1Y4waBsn^?P!VdUxz>n)}k+cSLq zr}>rlA}mySdmBIe0MDMq*Yf--!B^e)R@<1|XuCyO~6^WRN)`A_OpS21f7*n1{LxBFF*U z1#S@sUD_hE~4%^$-Ay!1I|eg9FmSA>VD?Fj@XnUCmksZ zuq8LDIi-oba=$jaj<^w-NOKFX#&D;Y*8Q+QHt_p>i}WBJj-ypO42P^kOgavH_S6IO?arRRl=CzBcm5sR-nbP`lg-67 z#pNYPnDfDXoL??u@mFjZ0|i+yji`nI+~6L4PZ3W^h5^T8TwaD5S1YK-&CMc|0g0S3 zj(BkeD(?1NZ4i#z8*I0D@PKDqjAJ~0%rQchUB|YIltL6x81bbqMZdxJ99Qpi9{KQL zGzmFl-Nz4phzAej`WA;>+}vWE@#Y(R^DX2CH&>j-lbV#mbaFF=YIHphM@%!k!UJyb z!fFwWH{OV+FHkF{l8%SVxxCq=dq|x}3`0%H$x=(y3bKe4(%e%70S`)3p_WwDP`|IibzEEDppLjN>=CwXu>arYfb-|I8s8_p=pu3C5{5_ zsDBy^{(p1U>xT70DzVT~RHDg}C>D!)#NBAVIUe7v(}QVfR44KX)Ch|xz#*j@ksVOn z)FY{66(EMWJj=NA+5#yhIZkbzS7%!sk1Jt43{z`Y9%Cu{^~!E`)9np@_(SGK&VD98 zf68I7rs2&kr($ouWo;YNhyX4waB+c;KjPI@+}=U`wVY?HSFzupS|e@{K?rW|*ks=A(XVi}IaT;C{vz++i{JZw{@{n4XUr8{2Ue^$ zICV!d-h2a7K?mI4;`*9h0|a*a*sk#X$LM?XYvwi%+t>}fJm=5+9KQW+3^Nu)^3@A0 zfcyw(!fuDRAMvfX@boEx&;(eNnWZd&95GGkJ06dE+;?VO-+~+w$9dd`Bo6>?1raVX z(nm^=Yd``(6XQYJ+^Fc|AEn(jR%>d42e)U~9Z}4u5%UZpx*k7xAFAAJ(KbuAS%fp^<-`aw za*CTP2j!Pc<=!K_&4R_kHlR- zP~73iDK>#=K+aI$gC9XN9zR8`Jlx?g{|Y|-nAb0{-$lQ|Y8AtT?HS(tDZIGCpZj_I z!S|vBYS0lLTm%D$11>M|@yBs_jt39$@FC0=4u6cpBH#vz;fVb{-g{5K{q5}DCR*4n zxCVN}N>t6nonDv5rjt&mKm(a96fBxt#Ey8T@?7Ob_#IF{5X)r312ZsF455JrR6-D9 zRoxnf5Nm`+G=W?24xE7N;PYaG#ppK8a~C11Ie1Rpq;%~2mu>Sx36 z;hm~>?Fd$L3lY)xg@4~2Wr7m|R09bbGSDf47-y7!^L9caYDKN$!7!;sYf%xpA8c|gbZM$zCNwdo5-*n15TZCUWLH#@RXUZsYa_05)5UV`$*%v&fkXZ#VD?eCG53D=eUjQfU>_NH`9A z{MK*c#dC?!CaVyjx%)82)lC4ryhPtaG;a5}x#e!hHu3NOeOPfKF3z!8#p91$Q_2b{F6Lr+D!UU;ZLL{ut*M@$tvV8EuE-!0T&xI0Yg>;o{87 zIdY0eZ}IFbbzMIV2{F0fiJXyhN|V{njAkukopYOW7Rj~7Tso1Qk^+@HxF5owgg+L! zNejR?oG_ruf`2|OB{R|D6jxLMgD3aKttBetNZf(@z|nnQ?GQ1+$7#GZQ!=NtAt&Ix zZTIW-mCEgIH;q3pkKl48C8!8R{p#@z`c zr6}cOi>8Q(HVsu-s~(RHiKe-8hnrCDa(>pYp7yILB6&@e+BDvEE;0^7ai0Ud`N~5q z=&?YKroJz;-gygM!p#f3`2gEBZf^PViv0?!6~-Cw{|GmCxW1#LP^BcM z7AZyBASt?@^Q_aPW`UT=QRJBPAnA6R_7NI!rn+vLP1hx$AWE5*PIn@6#DsX}{*n80 z;jEf!&7=XgV9|Io&9(szv}B7AvVs#Z0SK%j2;KopV|sh#J6M^ME=IEqY--)P zcM;J8W>V~B^?xG3g6>$Xo{Nt;6eQ+~s%R?^m?Qq#w?4;` z`Rv#0WowJgCsGP`>M5=r^W0rsHMtp@=11;MlvO{jR)>C7+BVlJWiDn$#UiuVY-+72 zg=REUvt~IcdaV(p&w#tN6&H>b8RRH@ODfj=s>vUYT696__5OI5ll%yPy5}v<+d&tQQ zvn2S!j4C9V8}K^V9k%Ak@p=rSc1=6DBGXziJSJMN-5RI5h2Hvnu!RnTO=2OR43Yz^Yb&>VTQ_on~k2#ofcL zR-5PbG)b9LDQ$Rimv8}-c^3e}fc0G7&26_@ZQACeoL&g;hM~BRf_WO;9ID!6Nhv(a zG)?0Wx3~Q6A8>olwvDcfwzX2CRyGYDzJW4h7*A-K8q6(fLDyrL;T3h^)d^A}0#;x_ z70e~ZVX-ohz;1{2Iu6Ge_MVbQ1tqFMh0}<6#BK)%QWKicZ{m22F97vuU4AAS%Xc>5h(JVDc<$tV+EJjdlZa*o{rn==}4cZ-XAaeKp*(QhI*L1A^y z1?DUYC5DMs7{Q!LSj66JE@fBb!tC7re#FLXoaeoJAqV#>au?B}`i;7aptw*nM&umW{?KE6t~2Xce9hboR0ho2y*`}0|^DZ(zI zs20^wO^8OMRb5|S_jh-z<56>-x7%^O9@ndyvs5EswN7R;SvAe1M|easZ#@7MN&pjB z0<(Ej>V|Tr+~mB8=mH59=8lkvX1#8y4cQ{ja(>ZuPemS=lH876SKMr&*_Y94bq{Tu z5Miw{9KCJ)!2|o!m(@I8JjZHtDyaU&Qymw}9^B-o0pBe*AH)SL|1)1_#D5hEbBT zX^4cITlJFMbIuy>?jw1$Is}hE1v-%l*w+fPN?xfv6Hc|>GuyiF$(Kows-arQ5-uVs zqIFk5$pDs)hX>rfI1)ocazqnQV0ORuxXF?z55nF6+i``unttmkz0S(Ybte-tw9ghuJ&(7lh{pfol@-%^TU^JiHvE&UdoI)S~eI+>b zK!CF&y~?P~;7W9rQfnq26(|w2&{w@w%cb56U*+_$@6K~dwYFCGDUG#GR_9U*qd-aO z(yF%LaUUx7;)UPduxa@AJ9cs5)dGUm2D_b|Z|n9v)~opB2~@ex9A`8=r!gRCTTqyf zn5R%ODyIQi;WePqb}<`jK-G6gy!966O08V45R6g~V8hs+F*RJDVLT!XPaZSy{y%yj zz?c86ulnK6_lIC;nTQR$4#xwg5r6QV`0M}elOr)V$T{*9O^&Beael#4AcDiloWp|w z1nJIN zQu1knki#Bk*sOh;&~|+13pkE^3%=hAB1%CJlCauFah4gH(KK>)fo_c#FXEHOm=1XP z`~(yQ{N^PBni7z>zvI1oxV}QM7)LyM6X)l6|9w1v5h6SsXvQksZsT~2aRf;B6SbAX zg?};6>fR>FNfYVr9^tA84}`myh#}$%afdhpM_@FoHCFCN5s1809Z0&j?n;8}mCY+y z{X)T63ep3WOvDzrj94#zi-;b0Lx57wC}-{^VhL1hhyZE?%(H4QvTob$Y85#jQ?dv) zjf_K89Z8ZSF#{k+_m{;#IUHUFw&Cl!KqXYNpq<=mNN$qo+HKByFwfPF zb19{GP8uPbRaR|wx6NGm{Q1~4`>X4s65szJ-*}53emKAT&hX)f)8QCr=XA$E%Jo zM{hF%zx_M-_+vbO>c<@tBd@;r%WudyWcOyf&5)>3j{EYX54_((6E~Z9cprB+_=7)) zX@XfK)r*VfuumzK<6#DTn#7DL`8Y1&frL>+R69W{;_hZv`d%U$kxVoZ>OM!jgwGLE zgp-L(1X4PP3?d`h0NaQesNspsNCwPgT^zmc8IT3DubRj+w>6=pkO{tuXx(!u9jK%Q zGPxC!xD}az=)2B+Ez)&esO}=>X`x5|`F1;{G^&P&h!`=0Gie?u zC6=r`5q||jVT8DgdypcsF6Dd}*5jCJT_d(4Yt`pgZycui9PG?n2~SzNKHMg^!(4ap zI|18vP@UoQD*Z)vbW4|9Ke>~H)HYg^vC&)@!SKKTUOO(NM2p3 zJ4#_Vb7GrWi-u*hSy}p?z$)UN>RHkt!_3U~?goTNPN_>tmEpdN$Yevd!b0vN!d=}F zQGhYRB9ey!3*3oGDcV(U5F(^%BV4l2QOZP1P)F z%_815hf;3G@pw2yDf^^XB8}M)F=*0=m780*vL=e2z8p6JM_> z!n@UKA`h$8m{Q5vSF5?}4yp%{0CNN*jC6u-LMliST!6I^zHr*Z-34gP`dS;a1@&3Y zMnKFDa~*`YDL+Xm$P3Y4nB8Tbm;B5boBr(pvPqiK=PJ`LN$l zssgqFMHKg=BO(7ghfoM3(q1U(yQ3u z1-pcZ5>a1`=!2}Jk_a|{nkTay?1ksh3z0UZl69Wv5}20X7nlP*ArTcArl~G5pycd6 z&+`HrP2*5fI=GJ!5itN)WRQt$gejmRK?b=BD0QRFzF8x!aWvc>;{W}p=L`NfaJ{Ao zU#wO;k$QH<%?3>~lY`ljGJy_E5z9uW5ecDWqAahn6dv8xjqY?$5o+eOPVV8J%u=m; z^Fy(r*3dj?dM3$4E9Ji1nl63Ys|F!%rPi>DV5=#$v0blp92sWjlSpcEM@dOiR@{G3 z0hZd7S*PhRPEW`Au9Sn7Hf2h*W@<&;mCVI(cdg(3c0L^3-Bo=YW1RS-_xa)pzxTa( z{7J1|`n9h&PD&{_9^F4;DXc|m#oaA6Fk;lWtm( z9L^dPiO>alQyAI2_efv?59WtbCsBfJ%G)Nd$WGHLX-;X%?I(TtQS~d2<2+S|3Qbu9 zZBFOz$GV**qHj^=ApEU|m?n;6|2zL=bA6pxn;CL5&)56g5%hUTS#lzRPKn%T&XO8+ z3t`$_`?a%eNU+Op0Hp1^v#xzB>O*pkh={@Mrp#Bz@ut>;q*9BIQy4;1ta@^p&z4BZ zts0tRlf{};txkjL2D%UtPq!l}C6!rKHC){pL`V{u$tQsukD+bvB8FN8k-?7CluWfM zDbkoJK%zt(feAPXQb~)jr8^qoq`PZ`gSiwqR5Yj5q?A-TcP+)dP7#BqMe0377%%~M zK#52yxoJ|@1t8-n5lO^J3$L#LDhoR`WBDh-MP~O9Ng*xRP$tc;Evn*XjNkZ)IQst8 zuGbXds%sBzH|FdSrIdM^ylD_%1PLc8%2;6W;bsho`zb!URxL%AmW+spSN9yDQg|{u>x$8DvJrK{Cct7-wveSvE(Apk9q$wgb^A_A^L6Lm&gb7yQZA%63l zpL>CP9_uwlcqvla_EuzcuV&gbtr-L19^~o%M-p)Ni)r(s1YBf{=be?S8xnN6qK(2?e2-oHp zjoxZ=u*Ow$*C4|QC3;O~UE9vHodhN1swc&O;jll3GV4Y~i7|YzxORJ1=3Dne(^NCg zm0)xYQv(s--LdOXMhFA`!ME-J{M4_0VG3{_MJ2n5f#x3Oq7*hvea?Nv95K5qqY(_pVx%pUvI0#zhu2`CoE+XKFxDoo=G{^xo}}ol9Yu%LLkJAB91V3sWoa1 zs|)^+5e&~{ORgevM2WZ|nG&g>jnn~{YPDMK%#RF1Sa_RcOW6okfu7L>%q-lu?yHDI zHIXr*I$EG1ThWDhFYao-#Pm_w=JZh6cu2(Btsy{}lTPrX)m^)KuDp_%(aJn?-IvvB zwz(V2g_T}Cy6(-nMz2%T?B@B-ZO$m5t7OV~+nm+f)M;w-*d-52B5K)R-8|{L;z9T7 zzK<9@?%=nGgV`uF5r)GpB%|*@{qQ%Q0QllBoJZ0S2|K;jqRu`}5-v^KN+>)O26Yh< zX|W)SAP}{}D+w2|Wu{##OVON_%&LtDBj}z*S|UX-VgPOfp8$sl0R*UlB}vY_-ml*SfIuqC{d$In5~@MS3nb zz#`-d*t#c?5*Q+ea3fmPUbGPvp_IZva?b%JL815t(h?kwEukP1O;CewbyD6pTr&!R zHlu9@m7_;)^lX3VR&7>kp)D1OcaBfMr&$(aRi}Dkb?bAmvS~f550mT;bt?62GfZ{w zj#^#d=6m-eVveZhPGKpicA{@b#C#GTGc39`+#SSB`Egbk6BG9?4u z%;(voP6%wa9$^HEO#z0BQ{7mX77mq6;ZiIRrb&}plimI3{?z?|xN)B&7KP`Gn9OX6 z!2yC0fDy}gT53JQk&~yCM2(y+Eapv_-lClM{Vw7r_|p9tQNto46KzhtyCR%qlNrfs z4f9xp903s#5}<Yibco)p zQAXR2O`gF6Tp}_#3p$_!Brt_Lq7^1lU6|8E*4zMTnv=U$7jslsx8xpe6Law;wE<|t znY4|Nd1}nejVaYy53>zco4!B4i(XSMr8V#1>UNvc0seT^-PJmaRCl3H$VKFk@=&S` zgY@gzp6#bHhF4(?_fl)M(ZeXHl?EbME!??eUmy1bzx)epdWeXV^i$ARszpkLCa4A= z9xE`VCL*S4gLyTp3+~CPh1Y5Yo}mqcRwE+XMo9^i*&=*aDXQ}V3>v3{`7vw`I3f`q z5yTXz;l7|iNR?Ai&f=?)xr$OWN7Gc{44+CJY>sJeFE35=%ZMlDR}tfqH${kW1=}K^ zGLn^W5RRz!hmUHC10|S1ge0JkSa%&f5D92en?KC(_&0RDrU-N2zHxJ_lxeQRVGM1M zGnX;laKza;>Wpxlf>=DNc`Y>K5))L7)1=dsYZcX+Q!Kv#A`s>laC!|@RJZ9^jz zN-E4|O==gp6GckIf^D7*&pAZrf^>aJ($1>Oj9Yq ztXYaRHi`S3l%ihiG))!s)Sl9mTqr^n$l?TIhzdg8s1iBFJh9fF`q{1#>8TWPpt`#V z=DM!Fc9y2OqfV)zxFn4L=E`B9l|*DhBuv02bFSZgqkk$Tt*; z^4u{GgOl2}A=K4si6RSkx4K+N#4Oxcir8s3$Wl0tYE@HmmBon(4*?XX3{5Y^M7$Ia zuY^VT@>#?xr3Prsl9@$#`0PHrPly|!2QGnkM0$~P(L@G7kEEKLM%q>)Fwb!~c&W8* zY|{%jQVNd)hCxadHy15!H?DL_Da?XW!mF8t3sBruwJ{TqKva)iwU0~r4*5wbG|Qw= z5=04gFA5a0H5o zsIEk|!Xvo{1z5rmIL}cgbw2|(|G)PB{K=B*%Jam&=bU@p{k<0vxd0#lV#&n569B>D zR$EU^RjYfX>7FV5Ael*HGLy{4OwvD~-(;;ZNhXtiluVLIV>UA~wMjNo&vdn>tGbr1 zB8yuUNG!y@?*u>qxkbG9-2L8jzWTuiWyBSS?ieFOih{+bn1=e zs16C6_Vf`Jk!n?UDMiQ8#=#Ri3f%_=OVLuN_77I#aLDy$3(Hii9%DoZTgbxl7~Dau$r>?`gHu32 zLzEzDjev_%&o(Uu6rz*9t_sw4_isi^kt!3|0G;mkQCtxr7zJyQ9w;hdlle-lS026q zt~R^c6e+!z()+3+nDzYtR#3=9YV20luFZ;yb8>cbQdKu{Dw~)L(ny=qxJ7Et3S@2O zi$yJ5^@E2`0ryd2$46PM)Lm62rASHWxdc>1nA8eotgPTrI0h=20v2J46oCkZ5(361 z{U+dc;TKgOZRXfIie`b~A~xdPJ3cOBX1!jI<9n1oWw9hVg+Ou^1wF7XQj3TvV701h zu2mv50+Um298;~P8dIQYGQybl9S{*y0U*XH=fg#&1SNo#T(8$j1gd66Q>TtVQH7wc z*XAC8iD=H=G&fi}3iRX|HFuxYnj;4Cgve>YA`TDru<0V@CS_|(z`m3-xn9>|v3$`T_6#Ex+#Dk;s(M$wbOQ&R$p*JT;b1OYjm z5}nKNl}b%n)ufC7HNpTv$dt|yK~+E!m`M`|glcX{R8=*tRzd8LLvV=b$q<=V__b6) zs7f|%P2EgP&1^RX6c~ZsrtTsGWC!R4Be7d)79pg?*@vl!04kDH6R9FpEmOuBv=>2= zrfaVPvq%j6sou}HYpsoliUbe{MVLthTx67~V{rh~U`JLWK{}CkO88cd)M&(^h--)S zbz)cK#t1eMk3&xR?IQKB5aa3^9;hmzr^txNVxf|S2L|71K3!Oj;DWF6|#9%gg z%}DwMLnl&&xvAn%XGr_}IdrTXb{SQ4|gO-;6@DVCCG@*2Z< zW*APphe%d!RNdo@_)mj5;wq6$%m9ZVHJ4fm__lKm!KC{Z6+XpTr+(Lj$JC2PMJytny_-h?1!_tnsQ|K6 z6=99)WH=qD!Wz*iAzD<=n5|8x+691Pll$-zVdSXhW<$z@$Qa@7h|q|{NU=K&sz8X8 zl8UNY20M|g+7mlohg#3XI*D~^M@6mxcEbDcGo;zHu$BmCOm(AE`~eYDqXbitEY=|= z`3zB|SW&o&sT~1sa=#InrS$%6M1g zjPPBt+_a^RMS-qiGUUua)JoM5SV}pic0HzHh;gj7L@DBKrKG;MQlJ`UoFa#%Oh$;a zaelaH>{eV%8wl<$(x`w$)M=ySfpD+YBdSQ4(o9s7$S63aI+CZz8BkPCdr)mtbzX{$ zV+4^>q%=!O%$9_fk;AYahm#S#XxHS8lp1o)@)OmQs#~I?2t`fA5<+C^@ zTEGLE5~x)*rrmfA_o#?Ux=4nENG~|4(u*v~H94tQj||7;0g`IwU=6Qccb|F@iEMz$ z2#ve?_ESMjC$c3nGur`ra?KdMcEXmNK^hY^HPhs-;i{sli0Z+R-RH0Et~Ny}Nz#Vu zQOd$nkJt(Bh|#1I+YDaiyxN*H-+Z^}9#7qm-M;@PpS%xTO|7Bemr3~k)zPYsz>OhibjbxPE5Fhty}s)ow0=$2}ztcg`bl;UKljv^4u#$({%+z zzg`WZfp8zfw?$SdL2WbT(M-nSH25B*sLn-WDrTLe#&_jRrv67MQqr6y91LmOMzjqd z!~0ryL{0!F+)uf`N1hU?DkFKqy$4pNFf|Z#sHlpHN=`7P2i!SjZPf~h3zEvA;G8Vs zCj><#sRBlkAX%$V{{a+8lVg%R2kI2)6B#4mmC35$Y)BWuaDr31rrB&id>!6)3W@_S!H-MPi_;$tsd2z%HQKE?=_ zg_D>E+lFm}oOEZ2_uloC%Qe@CS@zKNGLNOj6lR4?#sf_0zoAoNjfhB0a{3Y6&5{=p zz@41rXl0rcchhiGlZezR!w?LbMcc;I9|~c^kVVzZA(b)KI*?;2p(=}o48w95n~0g} zLePLawJujXGgW~)(5nn)5Sc;RQdVWGrJN?lU?MsqM+iX?LLvw?6;L%&_S~>(grN}v zSP-?YYWZozyQ)7GIZd99I0fv8glKVJhP%jMNmX~BC%Zukk(At&EFJ<8nXF4RL<~48 zn1kMdkD-M}b7RfMF;q zqo|u^mqX&$GF?xd6Q{I!E6Y2neIeSv9xA`{N%`6Ghrf#yS8KVEmzBfjV~lWTJ(@VO zO4A8MSL^uTeZ2QxG|g@r(^z5{1k$QCIhi!cJtBJdeu~lMCZ&X&N!D5;oYT&SRDl9; zcZjP}WV#hp#Lc2x}G;dH0c)rts3mXOn; zJ1T`CUK;?gU{uhjnNvQzHYmW3YBTN3$RwyD(KKR~MKo%7MXdp-s_e@6?xt%dz#vK( zVT7iXR5PjM2sn@;4%aHBtX506R4oHguj*7$Nm{y2*Xz02QPBm|)t)Znx<(&Sfujr& z3$TZ*1q>b~ZVtU((wunD+Sjdn2KG+q-!8!)d{U!NdFVl0a~MN3Sx?u?-3UXvAxpE7 z&8a&pPECn776{_S7de}a)V@XyCScQSW*x)(ajZ?FA`zh?nKUxUQKX6xyS})|0fPvr zIgle}{3k&S6(avYB5TgVg3#d1c}*X;B41}+W6j%X_IjHC6`DW&i*t(ve&Gt3-#GNQ zy1#kZ8{u2;Zy&q%sB1TlRhLU`lU{L!Ky(~UCHf(#Yq2w`i_jy(umMQa59g3!+Svn5 ztzK)Yb&O!dR98U}f|$DDsjAsR^-9&r-cCl0%cZ#ITBlB2no-7%ViwtHp z8C1|VVHRzRzE=PdF^(uT+*OcNtX7-NX1PsXV;pnu4KNpJ+h)v3hhZMvfE)o2tIksr zU=jsTQVAJHlp<}Dx~{fujgVzu+|Q8jl=`~x{bapa@fscpBBHX}&qx|kRU^q-Btnzv zVj;zADYaCO0H$(QOtmR00-2PpxdB`YY>9-(2WBUL3dLEcqX1A$Gn)d&uv#;tQ8kew zB#Ch}ck$}sl~KqFD4EG@)`>I#BBrkN(?Zuoazr9CFpEgFCUOSMQ#v)9kF(A#MX)Vp zR!X=#0rE=sFQ)tjN!MDwR?Hj-LGIAxzcqX_>ajYa4)d`dDSidhm8rFye9(96mOKXxYkfB*m5|LBjybk@pD%qZOlC)3zVK>J>6sAg$qeQr)@ zY}Wck;4t08R}rVlGa@5sM6R{Cd+hr0L^Y|JNPweF@vyTF(y4aFtB`D4C#4i~7nN3I z=Dy{gybSJ3uov-3kT)eHL(U=+i-qS55lr4u_tC7lOBtXt6VAxwuI`NZpq5^xs1~vb zhM*-j$w_f6B2Wq=YLE~D;x*OkIhR_ax)$G}AFbsua9X7|n>IlqIwgNm1ZtYIngyvU z7LjK&+gQkY@NoEO5jxeBs}X@@fgotXE5UmqUlLrYcw6MVrtd?>pem+JSwdpkZ=2O{ z)(S^b3DZ#RRR$6Ey?`VOV~kz5rGQg1YE1cn!1P%3NzPwn%0L=Ll1S@5kJwP%NU3R> z5-#I7gy-sQgqoR}1+I~Lt;pe==krb3*cw%kW(Y#WYhNfm7(ojw#2cyIX*QzS`2X1a zdp+Mjd6G{&dak!B6Grh-)^5){_1bx}fPKKnb?ODicixAO{YH~pIhMIKtf1J*sn%%L zV?*`48Up>!nNvp&jlf~}JYpnI11HGSlaG$X)Q?hR6iKSB>LHP&a;nyK_3AF}19@7+ zRhCnXem)lxswhPnIiih-T6e~NX|@dvQ}r+@5t>pqqiRv}T3IXHg%q=?8i0U|LtAQ7 zJ&gmrE=_C1X5Xub)+&%etrrw`uXVE0h$vnM$|^TiWj2n7h9TN^6mhdeZmh@SYQ?k( zzQTHf7*t(UBBDCgBqvD;rb1}W*)(r#Ypa2e5l}L$EoixN1z}@86i7k;w zlu5-YyB-`7PJ&vT+6PWyl&A<-8EH@*RjNSEOvI;kJ1C@*5DBu71L+Y;0-$PDg-EAb z%tB;}-FM^&6hKwC%<9lfEju2FXjPM?CbbnXGj|rvz2y^@UWTEWsvn4zjL!Aoxi)Z~ z&~(N+!|dTPeVgR>zWeEJ)e&$Doy+>NQhCC!GD3W?4SHFn!wtVu*WLEXomunN=EmC6 zETn0=p702t&uT3sW)g?V0x00B1kV62qN-G_;0R0tp@$+iYH%D+_^y$xRR@u(R#Zea z^}R)yyVWWTQ7s}Rypl^`AP~Ftil&;?nv`f(RmZW^QbJYdb5+$^gN&vb$=+*UtBhj^ zqHSi*JPcdloG};ORGE|J&QcJes#SFbJ7MXhnU``!tqXTE``2yzXrAT1AKG?%HrrPD zk5)TcOHm!ne9EK+s4B^({;CRCwzOC@vsrWcbON&(1jSuFI5}7>LC%UM@Af2Z3?3FUCd}-V_!)Nfr$xNh#*i=uU3UbnfOjH@!?+kCKJ*4_*+k^_l-!J98)!4eI zi-^f+q(A%QXA%oN(?dbbzVpIkpZ$K{mwdbt@{vd7>kmQlwPRefJ{?)zIU5TbnZpvK zMr0qmp+DL-3s40W7*vZYc6UT5li7$Ah==bMCAdp?au*0xBc(niPVK$~O3KcTO^@yH z5E;yRvmipG0C6^;Z)A>Wl#R$V+2-&H$+`KH-26}#I^xJtbh8^`yn7r@*ZQW}`>IiW zk}ZNv*+Q1L_g!GUgB`~_IU>dp_>S^Z3n{+BP;BaDleEt2N&%SbA?o|HhZ{(ie zdHbpFpO>TUD}KdH2%rKqN%_Pz*Ns}2QEHMLOr?k~O^1z$1#opO8;qsM8PydqOd25( zDZJD=kZX6JO4Qu@T2Iuv3g0$!Gvq90R1pT_Z1P&fv}z&{5iT;70#5NXn|v54P1zoe znx&*ES=$;!8=`4^vQm*bDrA zhbIwZ7(*sWHPXW;hjXh_=J@1f1&A7;*G!JUK(xS=)H4c;%0hL|_AsXCa7pr%x&rBxZH^fZXjjAqDr zSHrKCsa*&`5j7E=`W%RuN&{&j$&5MEk^bSjL z_p1MC+r9}P_z!|ti=jy=Hw`%q!;uo(>oWHBxzPW6o}rmRr*K`uVgV5>cV1fe{~OVN zmRowEdx%m5Uf>1clWe=1ww4wmi?)rNhm_l4m}SeB28$qq0r#nifC2=TA}1h)0FeX@ znX#Mu9x9N@`zh0PIUBX!RSbj(MInrc5J*GsSaTL`W*8%al)soC>}v9K*Mw(wV%VjI&`3)nw`^F(rz)$jWp| zAWj|{LlhUU6iCit1~VyzQ+X7DsmM(Ps!7F`%W4Q!6K&OIB0`p66-F)SW&~v%rB+yy z+^CtXSKMBPnM1-7n^w)d*7bThScTm`ggGH+YulWgCZ)zwSPCM0bj8^6a>-)q%ZE7oKgsE8aI(XxWNNoaVv5{PIWj`o)ueDhMP{a(BAImIAaQ!E zgK0!mNj0pxfRdqEBqR^H86;DpqGZ!U%FQNi%;zlQd(a)EaH%8CRC%Z7wWNRZ?H^vi z+w=3muQ9@jm&@#{j#QS7_tX@vMv}r3mD>qfbY&R8D)^S*m2j!!RpamKKmkQXEs4@2 zoZ;cQ)~f_ps+AG3@x?7&9tUbpTY zZGDt~{%4=kv3bBJa!y9Le&pHjTyx|fU3+x24&(MXu17Mue7Z@0zFyOeRF6PJ9}ahx z3J=+s4MFv={?1mjk=xW|O>tV{uh-+00Xcc$P%FH`10+&f zN0e+~rr}LQXOE6^~B(uD;nMN)+QASKQ=PUktsiZJZ_Ea=2Xe~r2`pZ%!n-tfd* z0JeVTu32jfj;w2OpAu}Lf}lW5lcrQX*srMxqz4@kOF5-P!Z}8`V8PgAkX#dkOu4JF z>zy(qL(bOb?>bWj5+NcK>Aeo1}BKAs*sG7#)zJ5rZg1yAllOF} z&V1*YWB=g6R%JB6-6|2`TGb*&EddpLn!pROrX-UkKLI8}Zn1!6e5h1o)nI*tLo(A4!{G`Sgi(j)Ek6AOc zo9nS)Iq;F^e&vaILQt4aYx`OVhD*LX{Ql%q--56F#diV7*Y5!WoxuzHCBo4rGz~-` z1`#Jhq*D=9V!k3~A_f{5Q=%q>psTI{kOUfc2i77>#yZ&7F)TN#LX08< zW$-{LST329n5CR@POdtZvR%fp)`p&kWoJ3(kfyB^6ruu>fQ*{>m*=O;gv=?^$-s))xCPtR5c5#s6j<2)G5()1Go`#7kLHwF8SV6RwA-10HX>O zP|g+!fvPYSQQ7UPGzqmh5sV-M+PDKk3onc_kT;!+u^bI-C7I7>KnoZC{U=2c_}nXU z`!Py9(fdy!82r3ks{=m5XPgK4gQw)Kn^6+h#Bv+r*xZ1%Xc7vISTEP>u@r$Pa?^d0VUov5#<*!A4MxFF&u4$1wl?q2($OR=gH^Xu=wPr$0En)u zrH;j=R(FEJ2rnKg22F&LJ^3E_Ht~UAn93}HBx0se{ZN;Q08$b&@qh|}P!;)5E+h!j zop6AYNb_3tH1M9|ZI4&9DYf~NQTUhV;MlCh=ufW-a>A~`A8?-e?29oz^YYLCC||o7 z*1!y2kJE1loRP*MMBKd~s#riH3AKv|RF_&&3&~IoGq>bfS<2MfuBwPC%v^N<`Uuwy zwH?Y*)YT}`xPvs+=vr-?D&VkQ_p5%n8pkm}O=%9@%H5(_tkUeYFw_LhPz~>&;djnw z@b}HX{oa*-^n1%>l%`EHgfLKQj2-|G^is;sDuzKVg-3OFsN^gvtB5xu-X}-k46rTY zB8^A_+LUriG%FDxD|aiSL3L=>oqzGK&f8i4BJcmjw*f4E>*lLdGh~T6lvUsFtisGxqSn~iX5VA6 zF{yuqP_tG@?|eU4fdQEMOtm5zXjL24q()H+s>rT%B8hMbCskCbvMXQkVeo#E)tdT{ zK_s}LBB|My`Kj&7Z=ah!k_8fA%*u^yU^?``mrp!>CnS(x54m~9KdSI={8PO3e#B}RPM`6p z>Cl$683GO8?Wz+I)x!hO8Zi=1PKl=p_)vjjY7p;JY8g2>NT*o6PK_d_q6&A^N(QHN zP!X{NQvuw4B%g==i=_O^C;u1cekO}1WuwJ^Fz;qHR@x5fU`2ZVId4WNY&dc&t2DDW zwEh?4Xi5H&swl0x0MrE2aL`?wMoKwb5rC<<*1s1yyThl4~Z@Tw8Y(1=We46{MCnoXJ9RB_dq+8+9(zE*`4RW)TY znnFoc*G5!0iFaBS&5dDRz4P37{`(L5Cr^!h^gJgMe=^^#b{!h3iWZGXrC8sCQInw- zj(rG1Ej()YlnOKTmJ`xcCNUV2lZ3ep16Ao~rJJVJrlvS+lX^Dg9T6ZTDpMlBNw;6s zyY9Je1LLP?>hO)<{py$c9rdN!kfm;s=$-grYU2^q|d1;0uPT$Q4Ll1 zKyj7SG^q{DNAKv3G!M)C$q&|i`255n&Yf}TKN)bnNunuW&elT^C2934?vmO_%38ff zNJdIhtGS!NG@F?Ms5K(IRw+fNzV5pT?G#cJlPaD9Q}BMuc+=g26i|${S{ak2p_?N& zsOK~j$~XU8$GW(-mfEj77OJjlG{bm$xXc@~>=ozJ2>I|M@&{i>0Lp)l*kl}13DAiW z^k7tSEUd-BNntI6Ib4FplB%>RK_um@IfsfTD`th9${SW5HKq=U2vA7Wirr?fia-k8 z3LK$*FV9SY5zo|?5AQ*uWBJjp+28cQO-i4I;zn?ltT4=W`HayL&AnHOA7E zQF8-C1;iv20F2Q@EQ)sx+V!}oI%{XoHw&;qKjN1%lJ|xhEET27)H%g85H6u&*)$Za z)u*^$N>KT*eA!dN)R=Wr|22b%m~o0pn5k+5B~p!={y@@tcQ|xt-(^IszV?&vLRf= zRRA~<$nY8wQwm7zO8+4uA|*6ga$~CCl!Qfq0vbI<&B6jQTx*?;WuwN1b9U;q>da=F zKeX=oW#M1^)%iWI-vk>+4j@|*1;Lz|R1sN~ImI~oP{K@2FeRf;0^ey;HB~{75QU{kxiU%_r+y;}Hf79x*&NHE5R>eqcZa%_b*pvo zum1M@p44whRJNiyrA|=6nhiOLS0q}Kqt`K9OoR%O43IKa3}Uyzk>o@GwMumr&{Ttv zu$)aTr_`Fs)b*A!rP8}dN;!3v;~1n1*9a^9vEoNJF^J9hW|M>?FTE-ayG z*`?-u-@tpq`9FuTVhHnKb_Y#t>W`@iMW{N=t9z|cd#UBDDtjl=fEG-Icnqk$uren3 zvtp^x`xw`j+)@s{w;o_`%M3KcnA}ZPTM&w`ki%3q9um?WDJ0W;}3v@HRw*TSBHNj94d0bvO_M@kSu5Kg*BIQl;4 z9E-UK##%kXfeMdWPAqXxp1+j$`nr62N|usDJaQ?fy`;I-%OR)y{2Srp%=ZxpQEChW zS(p+uQ!@pO%2Lh5gKk!HvdQ6Y){3;Nb=!8D@{Y&|dI-kq<50S0&^jWa^lwFZPjYV! zIz!Ho4xaw?$#Q0A{V9}WFCuM9^RBTndR@DZ7)MP>Qj6Tc!;&@g86t)&4#)c+L>a4C z6_b=TrPTMfwIyu>GQts6y$U_1o*rGMSO|RTf+QLygs@Z%m&zm(O>%ZVh?W8*EOH5+ z=5TFuZl2Qp#7`c7?16iZ6{X}hHFHV1UKSZV=idmWP+gMdjtn9^LOh^E0vT%2TCF2g zLXziQ?U}GdGmjW8naI@e4B1@OQ*t=^(&hXd{S6XG5Jhg#EWj4MoH>0GXNL2BF6V_j zpP5>XiXeauOO58*v^BSdB5F<3$a)9B*d~Ck7HY^%B5iYXQh%DNOti_ULJ0*3q7+F} z$5Dj}b?R3GC9v)hI<>e!GLy-PGd2xP(Y7=VOGDF$nUo?q zYtvNsQI%#gmNb?GrqIV~yzDZy(*q6GA#K1jqVVbcI0x=Bn-x>I>sS^NTOuW;o!q?C z&R$ZBcE)CPKVv&Wx>Gs&4I@Q_;QE*w?Frl_Jwh$xgQG{Q6j zj0jbvBq>>PVaPB7fWQrN!!a>=@IF3zY23v3-go=4MpghO839NEKV2r?zU2HHp;p?I zLS2WfE)g{_Dk?EbRAZ#XrlE4OH%-Z#rf=IpM22CyV=xRP(>Qjkb=$9VlUr-w?pFwd zBuGXTgu;oj;`HjgpT&8kblqAb4K){U4Y^5@+P8E2z1+ew$ZH_4lrr|~D{||l)(AkP zR;?AJs|slhRb?`-qz8iPp&pi-Nrwi2PD$QC6+zc&4Y*@UFq-aKh9D56C{>RlehR-X zC;9S&d}JR##mr}y)T2lNF9pkG9)>P_qtuPy8!5Y{ZDv@8H5dZR9;+o-_{06)wfs<% zLrR2JYt~7b(i^$^OKU(wCCGO|(9Tmoeu0b{K|;cYVUi(d&I;u4NqdgL@IVlONw(K9 zbsv>9^=uW08QRt?QYjw0brk`NOiY^t!pU*$uZVKS;tHF|efMI!@YP=}b+Hf7C^Pki zVjaF7M+CUM3?{-09u;SQqWqwzMd~&JMqIX;ih{`#ZliUbWdo%u~14<|hJG{dQywMCnl~ zyh4dCBP6_xC90|krB+c0LXuiA2Q`9DsR0iHV#$RN6*Ez5MMM;05GaUYgj&vkyAoBj zQV1nQ+#wp(W30t>ZebR^rFBcW`3}CkPwh}{zv-JT4<+;}r>ejB!^2UWu;W^i2|%*cWHF^wOJU|_bb-4}k!Vs?LC83&Do>wIr%!v=_VXj#hYoE(zfuva zo&O98>x#AG)IRmW{4!5|=VAGWzjH^5p8BTglU@)bqM$hX${+0B@$!%Fr^_(LKov?l zEBPU$nJFCt3a0clLTMJN0GS)rL{XSRO~eE+caBwZX3A53lI|+wyN_dxMQqCY4n!Ry z-2EElHz9Jx7v#PN_{3v-c*TAtv+nAq=HwZ*Eti$-;)RNJ{&ZdbB+384X+uQgW)6_ClFv%9GYR*3E`o-Ma_DrP|&$RmHyL|Z4E2ZI|pM!|Ti6v&K zuL#WAEWi9aed1ESm&rW65y z2uM)Fqx9}7>0YF#x=@JRb|+u>7zM<=<&U%8)a7L|I-)=4)}ogJ7cAjmsOV+LlHVnql^J61St_BggF@0+^}m+kxWd82oKU>QBkW51&aklQ7cLXV{&(;rm1Z! zk>HgP#MC-8GF(lzligKzUWs(d_TxtDg~~sphG-~9vArJ7`Q$?7F7c_SxHJ6eP~Hme zgbb7*gaXT$&E(`sD@8?NNz??8QZSCN1P=hL6|0`BKAg4ds#^aq|B7$^JLyZ0B~BnqG7qD<64luZMF!xqu0T z>(%hV5Nns^7=7^?2vOvOew11h)KZe1(KIld(I50NLMb0?4(ad z&aB#sGzP-h&Ot~wQx$D;YMU83ANtuabmN#kl4u%6Q&j?`ax7DqVnk3C;1rWcs>#gS zR+|Q99||Tyl&UnPDM&$x5QdROV;q$7&_jEDJwD2-W5sI3c8|+yKL}h5$JvZ+w=2g$Mw30IXxo@|NGV0+h$NRocG4$P9((rt4?njm zVCpC)V$!vdb0kHwlvA5hmr~QTmb2E1x+*+fm2It_du4f+_BfgIiFncB=l3X^|+qZ z?3CTU5oHufQxgSDH;u|vK){ryRO3iV%xoNmA)0BIUdsPxLnTXN7`B;HRnu%t)G*~Xs@=GivtMs?3ZAW{x9_I)!98zO3!OVsM?sTzO1 z7Bh_^OyM4-R*zc7Af;9r$LNPp4X;5&-;)x}j6etoojQ~v0E!Y>)l@y3n<3?E@Bhl% zkMGOggOSnf$6f1Z=3+ciW*%qUV;G0ks^8fuWs1l%#D%c#n(qD8J|4d|rQ z0+DdMrx@-kq*k*L#m4PP{1e{bAs(3{MnFrZf`% z(vS9HSf7!LRG6FsG4?A~QM8A)a@Qgp1gfjJh=`dXB^8L&<+7MLFnLW+j>GqG`8#Gl zqy?ZFKxQmTsjK*o^ScmT4KRl0tDE*F%W3S*OPC@xAwKP{!%WN!;N~W)N8d}Sa0*~h z^~&{H77K<;OnnKIn#m}XRrOR^8?E5F^!+}zK`cMMN!#@%|6aEL`l77w&LbDe2%pz< z%Ht-lVN7kdTBJI|L1y7XFi$3IR$ytejDwg`<&AFk7-T1i{TMyIP`v!?>qj0ub|l7d z#CjBVJ`mg6d}KFU@`gWnAa5)>dYsvbc}5UkQ5<7Y25XHv`gLFAve#O;?g?nhs-}q{ zx|<`h+aQZV#MGV63)Ijgz)FdM`_VTu!Ph@Nq31t)>9O|quf?VI#J)&IxLtT%w>UJ0 zFFIZK$xN-GDp_Z>Tr0TNWR!RrKKA8@ij(62kGE%YG!6QS*~Y~g=RP6#L+)%0*s|(s z%^$w~^Y4moree)74!yVvQ-TNFA;i4Xrp5<5tQ9`myoKo`ttF*mXTae()Br#T5`n0N z;g*sm?L1;w(#ZJ+^48v*{IBDtyMO1Er+;N8;8+aZCFaJvSUNehO8zL%zTsZ`!47S; zrWAz7M);K`SFxU^sRL#FN#NA>HYSN_3TF#x_NkNL0@0{8#BwZBJ$2nj-j!aS8vLPw zYn!9Q5cCQ%peiMz%YOAW;Z?^$M8p&-&@58I)-07~lX@MA@E|Cvjp;^8n}$(X5(=yB z>^rrdiJh*y<=)?W>B(<@?7MvB*SCDzZ(JlJ?!w~i#H+-!y@Q)5w7GJ zi4(%L3f{^h<1&{~OXmjI2Sp@Rww>Uq89zQ$GT5=UsQLq6`hP$wExV zP^~fVV$pF}2cYgkNJCGlUV>f`xIw(EdL&B*MO4PSW%Mz&hqRMSbA|)Kvnn!kgyPip#T(~7AgKnNlnT>d zYRx%WAb@9|d1iWX^@DewMmgNCYb{|KB(uuYmO@CtN=f0V%{AMQwFIYhaF7rvL9zz> z@FivRnxZk=r(vPx6aV(yKP)$Wjj#OOg&WLy;o{9OeEN9|M3t^^Jhff=wIisqa{uXi z_4dxr$@MB~RgXoj*XNAICgxkvgzX*vm;d^rjdRbD+mE|w6%AOJolBGIcOQM01>3!s zRq>NMeD{4laZ1;N0@BTL+jdzuvTbb6HW%GY*&rI!2FxniOe~FNrzM@Lv34TRq&Bs) zi*T|Rn#lt1y6w03dLW;~MP26cxtHf|$C27)U&b=J57ozUsC}>FI6{z{aUB0>*)L&e zXRwUE;DhtoS$_Y+=U*Lyg%YAdN$Yb;<9zqYm)?5*UDwuK_4F#e`L1oR)N*t5=*HDw zICACDLsuMH9NC(8Y0f%FnbT*=Hd)SDbK|M$QywiFtPANh6}cRAbth)JuN|fr`$E6| z!fXHhzT5IJyuVymRyXL-oBNx|{+p?y;?y?Q17?a6SQivxXMePmxQLYM3IruXpMCO$ zbN`}P_u3OLO|S3z(qW^_Q*-5PwqeS)>6JJgol?iXlrl~|pIkB#HNr#OL~~>Ilhppi zE-@eDC-BH~=TKL@ckIE_?l>)rJwFWZVHnzsCflsjoY2iM?NT%$x1gX@xIp*m=H$YW zJTzG~9Y5tC=$)Ty1Iqc~l)AatqI%c&BcmSPDlBOkNn;Q}p#ern_2OJIiZ5`Tjqo_MhZ#t5I6E;+{dZ--c*v%o;dem;7>*u&O8(^TnPF zau2!jjvK8><7e%5^43eQ062QjO&S&zC22d>t@TorgBK#YWxr!BvSFZjeoDJ#v?rE5 z`kqfdeO^!Hf^*M3Uzugx(eDr<_uS2=K05w4pWg4``@J#3|9oBlLztGZoz+-sKh|SS zx<({H+8S)S*BXNhOwqNl&)sr#6gv!gm8xSdvKwotaR9-_0> z7-H4vw>+chPew{aJoB!caF48 zzcGuhQM1%EX(;22Of#550`Bn7orfSqKANlc>EW|4PA`7L>nRf4Yam+goy+w^E|-41V8Yfwuks)`ImKk+3*~`4RNNzu%X&^Ph&?x7SLLcRXFmL-eC;cH zIL?dDSt;N11D}3tv}Wakb&*v?S|DwqWSqHtbj#%4-{E}o{Strv%1i(1`CVP}OTq%N zw=-cg_-v@^Rab4^jE=JI$EDfM##Rl9_?Z!6e`h?LcY-mV*A(S(XT6*?u*4%*V{sU4 zus!0`Wu#+Gi_lRn$wdFXG{Scz|3&H`ez!J%+-)ouo2OUnbto$yTdiMQ{!GGv-+x%{ zy$eUK;@^IJ0n25^HIM=xzyJ2v9AL|*e$(z>US$k{&9HG8>wnSn1neqKhqAK+8p zI&{-R-^rKc!+I}`ut#273#so}^PhH$|IX}C9rVvmoLs%T{pMeM|05s%(luA^h;BUa z;Lc;0KqtN5kO2@8w)r;6FO>7JIUKgGdN>J|OMdHbe)FU4PfovbPP#IS;{W=wA9Heb z`lMfZ#TPQJ`TCceb$$KuA7A95UNmmH%)j4C9@>gK5*;o%lFD%U-}G3ll%W6s_^^&=Dd${fAWR-}updgqPO*`cJZ z`yA*-(q$^ADyq~6!{kbvAIrzSu`l*0X`sd{M`;a_|FlW?oU98981%e*Ya7e1L& zLlo6JQm(oAT5f;5FMD_H6YduETAQC&=B|TF2^1ldN2-zXOhiYockMHss7qrxy7A=) zB+dXMz4zQ)Gdp}$vvpb)&;8rK+UucRSh`z}AAsx#?%(hAh%PaH_p4v< z#9T`^j=5bB^X<}%gZ|*D=k|JNKjYF^;VeUT96Q8vtUb|$Zw~!_mWV!I^e?`~k!?Sg zQjhPmMbssMbu&%bOy{}1YA8pR>t-0?`)lI4G?t@6We7y!geW4GK6twPjSzsiytM4U zpmr$fRbRUOy&pfn*CV=QxceJ-90gFTYW}Ytes`~j^DDVDWdVxpm}? zZ~yIHkLzO4zxwJ=Lr>H=ExMSsH+}hz+wQ$-uLpH$aP>OI9?te%-`6rlmxvL*@MBa# z5zG&pc2{m)`BGfYp~7DxzlD^D+sb&04`}VGuif+OzqIeU^^SYLaL0WY?)a~aNuy=V zLiTlC_@&{P`4GA9?k{!CYpFY3g%5u;zx1-_!3S>L;5Z7y(y&urTVs{Bs%O5okD^}Z z$g#WbC@KM|A@4tP0W~%5{PO)x(l@K0cx0c`P_Xm>02Sy-L_t($SzQ`?!VlpSmzV;| z`DJu!6yX@Esm9IS?AbP@dPyz{Mjatc(4>0o&fDJ{;V)m1?e4RWJpSAFfAz%U`#10Z z(pZijFp*R=JbP)QHtL#jcXG+Dx7@kcL;Lh_-T7)B>yB%nhZa3{%LV#X-+g>vhjuQp znecPYv(4-}Utbpk8KOui>+#HuOg~AN-ej1iS30OlOUTEp$@2MXfcGH>MtCVPLK$SO zG$0&8^&y2_rQMac-1PoSuk7^z&xsrEzeYJ^6p;u*VM)X_jmE3)yfd@;$#eU3^LBwa zSdLy)wr+XoH~RiiP-;K`APQr&7;+2??>paj#R0#}bvIvk?cLWRs(F#9fCB+I#VHZ2 zUDVB5zIglsx=i;W2Q%SCW$okU?GGHS!)q@;1K^wY-3Q>kVcc$J?>za~um64xiZL~8 z0#X8joUP)~7e4@S#f{g0@cNq<_5^-2<}AHOMpafI5CI4QfF3nm-+2B~k}5o392nt6 zr9zi#P1?Qe-+ST-0AIT6<_71KlE$Z>z47j2KF=)M6saH(kG;5_-u>Y9H@|rMT|asL znF}=d&&;hi-`t^87D_bX0tW~LKmn*4mLihI=k#v;oSybx!B;;fpjYa)J8!w`i*vUp zo`2($j}ToKT-P8)f)V8x6w@gCE9!gv_;pnrQU}mLBgG>a07W6H6m?6Ua*6@z6Bg_i zewml2{VEQOaL>5%?z8{g#)VJftW7iaOMKOes5<(F&A_7WL5mAbaKm;4-i_d;e(_#-CGkeDSPe1+6 zGcSJlV_SR{aerf1-1@Yu~a)-ESQE72e_ zLM0f%2n6X2XsEebQ5&f*e=f4|Kb`|4+%HI}TdUQk#8)se zn-oosyk7!_rE5~7*&u)bipix5QUL`NVpOA=s?8w#=IOBq92nug;MU{Ult`46RC4C; zfBAt=_;3XJ)cs(#d8qALQH=lyQzYd+_N~J@+0IvH#mBBL|KZ)Y+<)I~AOC4h%XV%XTN}-MVX1>Q z5K|Em?1RGJYLVb6ij)Cf0gxcY2?7wI2t*NJanxvQY`LTE{mA!<1INsM;cacN%xw_! zab;d3RZtMIw>9I(Z@sn{%p?UZDx<;# z3<8YZavcI76e2+&2sO|t_#E#E4~%fXa0bocie(uihGfi1MOIt2blJY~)h|A>Tn|s3 zoIc5CUY}m1Z{8`Q3t*v2hqKDX`h&_X4{th# z@$pxG{wsGpbe%V;)Yu#%3JRMSp1t5nq;l_rTiK7+Rg@)b9|l2Kgp$Cd8ZJaofB+q@ zzP9tTbG&iO%pp#pr&P36Z&!nzcx_*&`&>8q7*7UQyg+r9n<0o;H0-P;){RyOvh8%0*A2z_3L7)R6^lk?MEA|RNiI)&nA?c4}aszH=g z3DF25U=9l=ff^)-%ty@EWq$g(&tu1%&+p^s62KEgs;e^S9&|8NLlGdGv09X1+7z2V zaLw9)WSGy;`{-p1$8W58(Q62caR}*W5D!EIYaME}psGm-833pX$ZN0uto7eb$EK19 z0eE&w1nB{YLQL2sB!wy@2Tej|iletYbmFCRYPfqjabSe|n8@lj3^i$phDrcbL?fi2 zh_K0o&fUlGO`=KZ12t)k5g2|LV$u-UmgJ* zyQTX`q;GP2f`kf0up1Z*iXZ{m&=?d{bC^^ttFw&TFCEN;2ka*l^Al0#!D=)B$}DV^ zNm`^cn&Q2%%&)X^crgI-~^Nee5@K$=q@Lj#f>@0`lXREPN~<{S5>5eNAxQ&&dg@(#ipg%&UemFasBc8Z=K81xMX4} zy%?cNz=IBR$#BY0#S)zGc=d%ffaAv-s6dUX5(Gd|Q2+t26tFdIk_dt_pn2z!_s+{` zFI^61!u`%knO_AT%eG0GXDij$ti7|gSqzNOs2QN@R&cW~_5A(n4{BV2I&k!+MQhY4 z+bn<(ihvME7L)-_oGpWR_0Q7!Z}b(5|)5spjv892nsx0N;2Pz>&LdzE*WZ5|Enks8LlwiV$X#a8g!DDnI{S zx#dB=^cmYQc*vvp*}Pf{g#izE1Vl`siU6y;^8ES}j)AZ1pHqFO z4>>TxONNurynO53#|BBG5eTZNxt&@&aXHC035&l5G0TsYT_;-6m_PeO=4O*Fn*3p2>~1!;ibikPrvry zonI6t00L0~yaofR3WZSUHO^;=`dA=$+;CI|MVUkS^UKa4LHvqeckGtK3K5}-GYgZ6 zS1kd7tGGxJ8OM6^iF3+sJ#x!KCokV1{y~W1662~{ufK+)Yn3)pBFgBjVk%R)eK3iJ zHm`LXSd}`WfA0KfT3>hjm7PX~OZcnL?*O>@)6ny2yGXQSB zcY{i;qk4s4w8nMTvwi=`U*E#|=<$a(8c^z)aeexg{iTWc#ar%BjLMMUYp=fknUC{1 zE+DxyX{t7^U_)(z9BQx>Y7~+16s{l)n?7vR-s?GR)y|E#o_}8mpM;tK0589|{Llh# zx@~d%w#D(=7u0};iVLb>H;YXX$`Dc^6oaHqN#|mL`GyCMYA^=)`fBz^kA3lcoz8jT zCoerWLv+i?z-qn8+Oz54pyH{Jjd!Vs0BR6xiGsZ~Wx0bw4N>l!A% z@Q{_8Z{^D`{;DIN1B8GdSDe8_OmRa%8Rno65x3uBNG7UcfZC+DZPvcQb8^O%Hy-=Q zzubK5wITNE3;U($>AhE8yYl#rDmq=3Yi~Lp&{ookf}J2QO!b^{*Uw`9{+irt|eotu(60um9XdOh7IgAu4zoC-kHNeE3XX-b5RjPP|L<1=Oys3Ps-E!3C#-c>(nXRqN?JSh&0@RH

    &{y7GhUBwqJUC`pTiZzjXTPPo3y2l0&>I zESZ5hC8$9HfRJFY25O~8g(ML|poz(tl6LK!$iq;eJ?+L%dE?!7%k{tr#6m@Vf6atH z&tYV|^65_(LTuS|DuXuJV}{5gB{)Q_rW6q`QRB^LcYBrIbmu};B$=ooCDCj(6b4ud z+dj7p*Sl`HdmOecBbl6{z5UWpr+@$Qjn_Q#`a7R$@E3=d+jamyP_7S_qn|fOXkfRt z-AqJLM~H}tDpU#amBgJ7e4#0_;i+#9ow83opY)iWX3|34pM(st&c}uf9Ja6w*>Rs zuRZ%|&*H*y&&{{?IT5v}56Ww9Joe7(=M*10Fv3e1yW_4yST8WlC4o$22tte+LPCYp zJcJ5|lY=OmyyNn^#UxPwsW^!RyyufI{PJ5HWAoCpyE5TNZoayvd^pW!0u`u2P@UKb zS;In`oyh0%>lPxtyUjYULj&3`W&%~s#5o=3qVZFe5s~OADCEbwkw2DwyvaS_*Wu4S zbK<#Ii{u^2NmCMQAc<5`Ma9Hn5^p9&6#n?r7r)jl>yLM+y!3N&!zW*U zcl-G_-+219^`P6HP9vE#MbZFcq!D?Lb9(gu=;f!LdhMmQZ6!A*7W~<-zU{_aLXwKz zcI^I7eHK5*#_`|&O}_pS!db&p8RlhJ#MrW2ckG&T`QpJ$c**n5v#(!&@A0+9Ar_60 zNpV*v)ujO8kRnnA0?Zl0;NzdAbcoM=?^AvLjptqgaP5P)pD|qspM89HZ6>$hbM6OO zr>3uEQvyHNw&{h}U;5&)dsWbVssa5HJFkBCH#@*DFsFQQRyKBG>-aTSAHTi}ol~EA z`SkZJFo9|Wtt<$ZVNCm8jNqh{?SZ>gPHL1;n^o%yY2qtiA-b? zs%W$=x|y2h;yP629ys@Z6AJ`@Guw-;dEV?~-T(5NCyyMuDqR9a7$;x*n2q#@92ntc z#oI$%sbZoVnj`=RiYvt|=Pui4%~RP+LN>=?rrApQ*oa#inF=$s?dJ2@=3Wo*)6+Dm)Li4OXP*1zH?J%__4H@gblfK#7~$nc z|Ki&}DcX6`$XZkf=7L6=E-&VnqL4&4A0<_MyjS+k{$r-cOOAu(=w-;6m)-$z^_|BK z*EnopInU8%G^@f#>!p|e}m3v@Nhfqagq02YWrJ&o2ji!p|3S>{iSb zT9JsP|4z!^GyC7eC^|rDZvU&kKD@K$lfP09R37*mAN#wDIp)ir10(#LB6r+?Y)JNd zqDO##23ZMqX7fJ{yg0_6{OIEgo#Y!|L)QtxpJ>ln=(jWxjGs3rwhas!g@~G+mJf+U86@5JTR=9*KigX66|1)2G3-(U| zfl`tyNXmR+fqyxSeE58p=Y4)Smf{w@t5lGTTs!AQR-k%JDsR?~Z z9w~5k+Wc=zeWoA(?#cZnQ-7&&V1x&pEC0!ZH$2#6HI)eQFj$5rh>iY*kpCs||Lh0! zJ*b#1kY|X@=N{YZQC|Wa7~uh*1^LSDh)KoC{*UYadusnYX9Q7-P?%eUp$eZqaNGQP z4)%lxd?tPxP=f;M|4F;?ZUCp(7)O|JzJO(b*k^k6`<8>5@PG?~+@ z8dBoa3;Qca@4yHTxXd|x*Edf+^XU{*FER&?nFIDO*WUK~Z@=)Z&;0c}@A-q0q~>#K zNV725<9~kcU%CEE|Hut*Kl*1EZdB)sgL=XPE&=Kf|J4m`cjVqb zJjc)9boU>c>8W}N=mO)w2oJbac=^oo)Hw^yTnX%y()S-D+Px1sSdJcWz#elj6CQBD z9&=!X2OO}+92nsN2kbEial!)*_;h^X?g!uVA|OQo0|*CS`1GBR&vM|HIpBbE;`aN# zalOVUv6lMCxJF|Lf&nPRwkT)D;Ip44`~1KN4>;gc@WB1|JIa$~iN@d#1X8}C={8dP zY^bis=qty9G5F@o=XlJ6<>&zid9vUVnnS7TtQhtPs2hiiJ4`q-i&os{R0X_L11c}OyQ3o`^Yg5 zX2Jsw_%tjUm>kP0t8MX$U_i3iQf;OPAq5n;acEJJ9&yiQ%;64YPHmq3@*xk5@PGr( z3Ay7oneoabl<;t600NN^t)iwPDo_apeI!Y8&Jc!}L!bb~gX6~>`CvJEzyW*9L9qUS z1NN8$BRt@MJ?6j&4>(|tIWWQl4%lN3jPQU1_L%=a$8R@j`{nHS00000NkvXXu0mjf Dh8p=i literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_1_02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_missingdata_1_02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..249bdcce8f45f6a7d7e080457ca25e7ce79c95a2 GIT binary patch literal 13149 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

    ?ptz% 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_moveoperator_0_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_moveoperator_0_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..e6b38c2c7c3456cd2e68382d533d428030b29c24 GIT binary patch literal 8470 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 Ef><|)X#fBK literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_multiblock02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_multiblock02.png new file mode 100644 index 0000000000000000000000000000000000000000..35e851bae48fe32722c7cc52fcc974b88e74045a GIT binary patch literal 1750 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_multiblock03.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_multiblock03.png new file mode 100644 index 0000000000000000000000000000000000000000..18ace3e1b9e36ae9bd383887923a791f8cb43cb6 GIT binary patch literal 5170 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 AL;wH) literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_multiblock04_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_multiblock04_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..7c3e0c23e0c5b399ce0c6ce9ae85f6b90a9173bf GIT binary patch literal 2296 zcma)8Su`7p7LBxqAk?fX)Q~Dt#F&y>C0dQSt|3G<#+oU0&0~nDat#$iC?!QzDwmqt zr!h2WO;uBgsfMdHm#P|{yWZFPcx%0nea_lzpO3Tl&)%t47RF$132p!Y07l<3vOeAJ z|9}g4I#1$(X8-`Mw`d~+n{dink*VK>uJc`SERj6A>x9i^$6UEm+OnEjBGs(j2g*gK1wL> zINi|Usn><4QlqryRf9jX55)U7q34VA!}pi;_3BQhek~OSdQvepb|@4d^N+AugG5nN zHb)q{7hSmIopt>GN3P%fpyeARhNS9d;5`%@7b0w`JLhjN5?0E4O<J7S+Y&$aRc zGgc&?k<}lKlc=Heb%sk*na#auijcx%Y)fdG?-(Ld^Lg||{aBfUdE?!KwO`23u!A#y zpe?THXZAUdzdgyiVu}qM1+r|P*ENiqm=>qZbG@(bckENe0)lUT{tMfet_62xaPEiRervw-UKb#W zX2o>$v!h)@w#iG7TGL>^LR5+b%%AAtP!ql)=4?e%*TDO4_iAK8&>^xveIh#pEh~B! z#X;lHtM>-1YqT*tYBupwgh+8xrpiXC#~us|zmp}$-^u>{ za?mCYPX*J>a{L-11k0rw%vCB_R_Y)wr2?p)9+Oc!L4{cyKf26&r-~os&;`fq#@s?WS>{)8w1-_OTDae(I3>dmCM>lC;eO@m=^hEy=;-TUDYl!ws|pE1pf8*K{V zn4=^UN{qk-bO6iYaD{xlAs@E(Jy&???=^Sze+*q689@bV?$zio0y#97$u!Q2ujah=Y1{nia7mN&O`s*CbkcPyA%%)Ida7}7C4-{sk?pYRj#{irNg+an3;)7pPMk}sRhbVj)4vN`P4VUCd z9$}|wfLgKoIt8`d5r9@uWh{IcUO!(a8wQ)0RA5wnJa=^_K~X$|q7g-qqV8k64mJgl z;3qTd#jC8fgKL$H85z((!zS9+zE*AqCghi&qTs^iS+1ko@@Vv3Fpjdh8o=fUtmgOb zUr=HZ0?{eAIqWbJx)#V`m7cFW#7`|4QKOi6)g|r5%Es9tvm{zcDE(~2kc_zZB~pA29QXJn{kebk zB_i!CwYYN%gjm7y=$+HkN)+p06?;c_4G^%EZL81zq)bwz6GSLKi!>-`4vS!s%j4s1 ztT*yq%=PhBm#}*sAZ^!PXg+>mR%P|GB#5VQTTYD_I-uK@It#8q8~ca!1oa0uxE&Ct ziokV#o%!BPU}@Bm!cglky1jB2r;9eP58ZsbtQah^iR&j!Chc}U+$%9*rf?x%&D!Eu zbxpO(+jXfC#%C#xukiOEu5b=cI4V1z)QLJ5BzUHLWn1Is#cZ#7UU?4JubD|1$sU?3 z#CSI_=H~p9sI*td{Q5px>(k&P!9n&qvNJHl%?drTST{O_J+dE47wv#s=i0zB0U`Iz y&FH79Z(V0O%VQMl?fQ;=cj0AVIhQ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_multiblock05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_multiblock05.png new file mode 100644 index 0000000000000000000000000000000000000000..26040927d721878818bca7d1415312ae0f2be15f GIT binary patch literal 1740 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_netcdf_3_01.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_netcdf_3_01.png new file mode 100644 index 0000000000000000000000000000000000000000..99c83df67ac3066e8cab61d707e8502161c109bf GIT binary patch literal 80912 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≫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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_netcdf_3_01_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_netcdf_3_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..d0627fcb0d925c72b40c52106a9fc111154cbd96 GIT binary patch literal 11897 zcmV--Oq49VVkvHxFbR_hy3SJQi%t9wz~D0`f)5x5Lz z84mGFwB!k0rXd)owG|WMWSC1RpP=**^#Q7fvHKu{^N*Ot*e_!bqBc=@J-$FGghQxE z=T%IT^O$`fweQUT{yAxuBD0SAL3kc@J^zr3;7zn#M*kphSV_aB?1?ZjuB0rOPSGWV zp`@ura)CAb2%Q|Ko?f<8`Kg)G!wAeI2cRW#g$F46csu3AakIu4hZ zD^m9;)zAsC#nJc{*HE-n+9+wNhRIe!jb}*>Qc)AQb(BZ#0Ib3PBk)P9L508as2 z2QIY{`uey!WtmH{n;%S5sSrX{U?kN#HbAF1Aq^>o3?{>PmeMRy8Rg;TFcy_S3*`q1 zzefId$Ouf0nuARNtiW2N0ZHT&Dr_AQP&4OhhML+#WUeLG#`X8JW;J@8wHp!rlorv@ zz-ND-qu+u0`6ep|`><2^Z{amDOA<^shvq0c#4s$FNFhc$$QT0ZbyP~hXHZfLDf=Xk zV-CV`YzgX6gdZVXvP;MsLPaJ)x+DfSLHQ&G#~>BLfI}oO8df5**cu?uV$vC$chkO@ zOu(>ZY)VuQ%iwRgd6I4IICVPO5R1<@Q@|7qAh*(3Kp$XnH}x)tEpsV#K}8T*YLYsX zG-(V19HKfoNs!W#(zKn1+Y#&FLD&HgLJd2~&{r)?xvRuvm#mQ4V#B)n`wZLGPn_0&|kXw{yCm@vEpO3}>jGV0IU$KMTiS0ID2X zuf=brMbNd3y{()YCrN0?anfU?PB|bFL{JFvEm%B*C$W%dgav_DCBK!qH(~yQ^fPc1 zvV;6~QjGx(MqnffxO&0P7FJNOQ8zsbx5%hVIVE(dDy9>>43#32Uxa%Brk7KA6T(9#G`iRX&%+2b7(>2>y%y69 zRq9_Oxr~xQMr6QdNGvr$P2ksP4A34XMk=r*7AM7Tz+Xu+z&SdlDdyt~fBd-vv9pKM zi?fUMH_+9`QIFGQW+ZV$;vpo-6#O|<0IVj|WWZXqMOeHTCGjkwLu?5wY{p6Gyo!oL zT*W##DPD@Q7?+A9N=agrk5OoWHux#R#Tr=H5YJ|T|D~Xd_DflP5hGP1OC+f!_>!_m zHKyhgK5@psa|zx?E{Bk$K4D5KNex(>gd$`Wo$RI=Yy0Incn9Wo9G994#J7;%c0gkOdHz;VmLa z2qeNKv80x&VlE|4u?ay+PT+ggT`GcDV=USslGH3F#47vy5=AM z=gT^XEZaUpwTJc-6cU=-854|oL^blDV&XhQ8Nyvqfi}GVLQW9~q=S}(E@6t}6IrA} z8@vP+5K44{c8Ovfixt!b7=$ICARKa<)W?Fg3koF-4hZ$*Sol8`S*wt1$Sq}R4f#j7 za2dLVp@6X}LJ>7kF5zlUy9|Du^ixnkz8iNDvWk}{lB5PJi3Qq_I@DtVP!6%hN$?fP z1W68?;!99SgUt}dWL=~{3yi`Vghn}7gYijIWD~;0Cg+_j2VMtXUs!t277{w)CSJ0Y zrZv>|aDl_BlVn{U%X8A;Xfg$=c}9v1e1i1D0OD4H>+up?fik!b+M*1?AvI`=QKV1@ z3pS)ZA>Yb`ff_;~z%fFtw3b4bLX8b19PCyMMNO3=7MY4 z8nOOPw!o}Qp%X7cw9;ki%rjlX#F!$dcaVGn00(gig_yhxE}?}K2}Xj!g0KjevZekV zoFzE@qzWe`2TnpE!?Z_i&>HCyYCN-Gg9@xc2<%fgeZvc|z#I7Hxx|U92;R%0JXe2} zYY#9mL47Adfml;(B6UbzTtT8yf|&yK&%q1;DdzK3D?}P?Nd*biAvPpnEI{NETg=yp z-%9O+OhLUuzD6;F16fU@A?MhwhKf{Kw&IKkOYX97lN#FLXO63xiH{5!Ehof zJNebyIG#nP>>0ty@?-@wON)co$fU!}80>$F_~X=eGOMU-VnM2L1Xf}!CZLw5s&OR# zZ^9x7Atq7i1jiv%*cfGT1lHoDD1`v+kZOz|24hJSv4#emW&E-ic!AJ#&XBu_x$oNM z3X^44UBeScskiXt98nu%Woi)>gOG>_#-BET1*0%2o(4&(sQDx{%sr%I$i>i&x&ZNa zr~=BtXzCGpiva}M!CJIKO)unU5{m&TNWr8y0_&ie&*c2akhKy9;F-a8j5S0$z4KkY6X>1SstAw*;@&s*gAv`$0f&kbd(vW%vEx@N95q=u`AUq17 zw<3QP*@@SRw3rm72@Fc&TC{|iKoR+b5w1o`44^Ou1wvs`q@XUbo&RBEg^)hm^E^qB zV*%?*Y+XWAGqX7kmnfx#ZOqM47kHE8JfcR13{f5TFG&9e`vq7BHTWd)PLfLrJ1`FB zF1R1oBi2A3`TOMiur9(73#`G_2#+X533474mo&mtScw2(aTMAh3|3(+Mq&*DoDC#j z`i~*&)N?#nL>DpeByVpZZKduqx|*Hi#O=&R1bL<;YL@0ACPU&A)o~>Dx6o^`{{$1D zVFz{xDUd_H6!&9fHi1Lk;-rKU6Co5*p%rn25Ey|4Cnj(}p)83+L}WZ7L835{^o)0^ zVj5g3DfRQISqhqA0x}T7QrHMz{h1?9cP?ql6oHyhckz*h~quOFf~U zXCk4NVhm)V0Y;vptv)DtC+^$uV`Q?R7dpZ-xE`^@ShT>n)JwFuq#2R~&!8PN2rvpA zleJifx+K;xuWJHj2wD*C`64R=?}c5khgBa$c#KC(f9m<9id1$HRA|{ovVsB0!8(&6 zGpBL$G^B(XN*U6K)DR^|i}f%i?027T*BjwwaDqf)V_bm<@q8i|YN!m>;3v2qS^-Ey zE`kgti%Ag{Wsw$FViZP$gR%&Vkr<0i@RlQU=gW0S;CrZHw*4W?u41-G>7U`@=abrl zQ=;ca_U71?=ZP-%JU*X4sASBWxK5 z97{f=#U*K=TBQ)-d3c6QOuLH{U@a;pD^U_GnV7tfc1bLWL>uhlRM>D*F zV3rk288_rca9+X0N}@Yq@@EO@CwXukrxe<9^bqyGg@fQzDiA3vpa*zUh zCKy1V0Uyoxp5i0-^ks=MBjQIIkS_|1B`9K=3pO;01%OUh~)2R z^XPC%BYa6YAhs-=;k_Kfg)}L^cD&yw{SxMrq^HO&rArbuQ>oz^go{_D#bY)@>QQr$ zfF^5^J~8;o!V-o6i%M}_QbFR7MtBBXXvAN2zQ}TMZ^l~Mi;Oq3)3WO%bAJZYXCYh1 zKJ=82Z-uYGY0_QTONqcs5I)L623i4_{c-jZT;vtF1v2lXv>vmD#4;lwLL}rA+Jh`L zO{PYgB{e965@=8{Sw(758YK`G145t-MxqRec>)1!dcMf&B^hRRB@apx!6`xYcG!6? zBlvI)q6b>BF(kxar+hiC#F4lWUItx-F#w)QZU%oNp21NB*OQb;V?yvW%Aza?Qbh_f z!41#`3?3KgrFERIEjmS8XmS%K#uEZU_KqXih0AlUkI?1l~m&_v<= z^!^X}-$3){aJIlF=t}9yQ!LZnMECpQvU3&WU{MZQP=hE! zS{y;Dz@EEPDi%?^0^3Qjf+Qj_$P_zB@&!ap`LCgotskbhfl`K}my&${tP_Dh!j!2u zB0|(hA&2ZC`9mt}5p#$PEW;jqhLnT27~4o9vEYE4;u?GhsmaQPXgTXpb%+dB0vLg{ zX97Tjk{ECzT!;B%3gc7Nm=viNY!FSb`5eizrzq_ra|3lC#>+7mQ+@{wLIE_^aO4QB z7cxDEe;dgR{N33NJ%ZLqi~b^_fSJO)15RM>1E3SpcIKO%I2&;Y3U;0#*wv{BQ!|78VE8D%EhE8iM42jjR-Q-1Tw*Z0V~hA<^V_y5+g`0 zp1>#~a8tbbHO?V22!jMAu=4E53Q+H+{c18jm~nzEkwE#Bz6~V^aDI)YtxPYa+KMXS zxX2LMN7M*&XEA;P2{yueJLZ+7A46URw_w4nhdUA1;%y<5rzJp1!YY|9h$Un-UV`vQ zHKD?WWE|2nZhJy~lh zTu)mIlNNHs6{>j>OYI-#4@t<3v-Wllw=;Q|sVvng0!6eKx}J}$HEu3XDZ4ghptLN6p}Z(WK@lHOeABd$NWoeS$+55S@mja2)aw!z>h0Yw2E%^zbUU zd1eH%jMqrDg!ikUh(88{&locUjqonG9A1KS@e^b~YDpu41UG|8aU4VsPKXxN=HFSP z1=1iO^+{8-Ln;s&Pt2RlLPBa@k2DLaWI+kEz*?}R^9g&qaO{dEkfbh=CVq;!&Ij{G zpO@0^ccZRn-2{s+;&DZ7f>F7 zLP|hM5^ywDAyXWIYmwf9FD^mMhb%EUiIgB0s9|1}fcfoD;|h#RYDqzB1W1bj*CG^F z<5;9iaz<8L9E)Da%AXgqTv$utRW#mAHKLHBbC{Gwp$&0{crVGjo^FhnAYOyG5aBPB z&k7HlARLUrwOEf(V=V%N0fmZjJZy?oNR5<8ixLavph{phS&axV2Id9D!nu}}km7;^ z#wXTjNdifVGDry)IiEpI@IAC%P)~E_3{gvrJ|D56vz)?PD6C^rQ%Jx?NFs?bL|MYS zv48rMie?`&a4TGosN;tCKBNRyS_Cq{j1v?Y@i8TQNvtpeG(w^*sYDnYivtp*CTEZt z5=$gW!AnqT!8M)tKLIQ#(g;uDYNR4gaV4Qglwwk(Lwcs*FR=?1fv#OB)KcK4s9!Xn z)kyGCnqEWmQpPIy71AO#jZ=mq#^5B#99lyoD7XY}fL>%DRFM{G31TuKi!^>ak-^Te zxPX`8cnVc~d4?&CE6|GApi;6R9fZYIh?IPcEHJB3C9+wxAQh0H9E@G40+cR7A}zw8 zB$|czIr5285Ez3{#1;#V#cJI7w2i^j`05ul!&^~Bn8Lk=@I&AtmSP(qMJCuw;co14 zyjw7D#nh3l^FbDFij+u@WmZkHEMWN(4h2*v2?AyU%2mREs6rr+hFpTz)1*PX7ZG$7pkjlj#`M4kdm?BBNC*G(MYf^H9?eMC6Oew7>yBNFp9(? z3^Kv@um;ECYW(0opm!%j@pJeqnGK;%HYMYsQktjf?P9>iImYS&aUYct8eRODMu=LO zNeCxd8X?;m2ysE}V8ePU?L3j^R28Z;Xc{DiEHhcA>Le+i1qF2)B_>BwrCAf?2`yG5 zBu0=}tR-=YQnVs8SiP_?#b6C~-X1|ESO=-`Q~dn-J_?f?F~Ac5aviFj>}9Ae4P)l;uD_(=}pEZJh3AWHYnFw1zBip;V!}i(ReEl?g-C#SFz1zfZr% zs*N1zXZkdCi>e`g@-dzv5V(p;BS{%ABxlJeq`)<3amGtPFJ?>?gFQa!-_%m{O3IgpjmtZ3#D2=L8wCGOu z8^i#MdN`J0xJ=Pus*PF|H;*h)tkB$nX(uzq5y#DsZ}rdy>U1(83{yp_rKpg_tCu9wHoKjffEfToR8cMGF!@lX}!Fsl`a@4mLvi zgef+|RED{uzaUw+;$2BohA79}$FPS{W%?z~Z!ve0h9Xr2*nQh|6Dr%pa0-$278%?bG;agIUFu|?z`;qngL7UY1n_i@p$ zaiW>sF_qJ(VbbMSA!;F|TvG~7V1#wjwcm>a{7==90uFb2nG&Y_-C11dBb+(xP~*%`WuL=GxJ zXc}Ekw=wr59Uk3v7PXN$$SO`V5N_I?BsLoV zk>MOOee9}pEX6-W+esEh^qgYLCQ4WGSis2!2CJlXZj-(r>PUO zij#G!4z)Tnjp!QQIBkdM7)9;mmVhm9X7`Q!`!uIgW=dp3yc~50T|)+h5PDQg*bt{_ zAyh=8UF?V93-fRL3!33x%wEhkW^co}1fj4lv1Cq@iHUvE6niGDbu6yItJCJuAc+$4 zC)m)<9iv=UW_`+5m&!6uM|c)bpe5SHTaNAF`*p&TEE~f#k=INKv|=y|?Zizq=1IoL z3*tUTEkTJOOVUbdh^5V}ejR%rCi`733$R!5`6^)zA#oDCfZ2dF0gq@J^9L|V@@GgF zeF(N7y5R~q1V?c$IxoB7k4Sc5K83p)G^s))SVc`@4Ngo>5CD>FjiRN!NG;3cDK?e} zuOR&tSFgkgn6Q+_SniW4Fj~fulq2L6#e~u{7=k0LImM>e@-dfFh9p5cXiMFvA{lb1 zRUpL*sM4uv*odhz=reH=yASaYtFx@$M4Doo8A+f*-Y4=YWl25<^G&Dk#0bPCWUfS} zs7-i(L*!9?^8B3}&IhHr8crLf`JAi)2NhB9aV$=mr7jJ5#yc1sCU29))Fd`S?rJ7b3-V=t4T&s z1sZ%(f%zu-)8~t<7;_(XIY~l84dbINHYJxJGiZTL$xYI>lF4R{&Eg*B;vv@dGZ8sP z`_VwdslTglDRn2KYY)%3gUoDU-81Wp-C4nV62hx8+gQJe2O5&v)DXy zF|mah>7(b*L=`rsJVf*)m#<@V3DsG8Z^6#uDh9vBjj!PEHM&mZkVvX7@y8bG-xg5C z{w|3ixsl<&f=|MSIe*1$2J>mct>`VdReXUTQA}u&cn#>3sDY%DfruGJbd3J*bM4Fc zmjjvPGySvW?bpv8T&nAbxw?nOCicYg!6PlpudYAoR0dbB)%6zY8>wyN#6q1m7CC=n>d<~QGcor>%p9V@3iklZ8tsH4dxF(vGMyZqLxF|F!uqF| z<(M;diaX(>@VWV?=huUuM7l(p%q(4&?vP~}nq$%yc2APa;@7EK8V|GmQoe9xW$ka{ zHHPG+DN%dnjxL0FUR;C zwXZH5Rs1xD;D7!2!}%r4MOhRJc{p34t4d~oppBzrT(yz|orGn&TL@d(_2IQW)m$_C zZfG2D`eXK0ljV1fud)*=Z%;O{W@ak7fq!o2_(e>0Gx->=emBQcs#)gdNIcRM0d=3c zAxal|DFLepUEB(p366e>cU{EiFXCVyZLeiGCT-%5W{#GaOYkA`N#<9m$DX5*^J)0m zWVx^yj+`A+y~u6Y1fvlF(}t|1l;za7c=b(8CoBrkf&*3ZMR(sfdKe;W4&K)P#J*dY zzMkVFu*mKjw8NTkfTg$dWyN?8@i0uWH(|}^*nSg_b#ZEjT8vI99%T7Oj%KLU0UV9% zkXWR|9H(=XRj=dmTbVn`{#HsB88GEBp_xn38Y57Ossm$Z>2E$OSsAzpJlb1W`6l*! zi1Nl|%yO z-#+~>p;A|N!B zB5;|5l0!-2Rgpb}DNPbuIawkT5-X%7l4wJ!aqDzPbOxwAHNi*`-3}8!7g=_Q%-6W> zGMW|9W7PIh*u!scWIEvZVh(QOflZ7bhX-KlOm*4Kc-LSege7nx$84EQgq&f;Dx4YW z>$#(yCr;2k&2_Ic-+N#-JbwJ4iCpiOt5mbH)+4FoYnp3x zW$?3<9Ofi^?CFgg&&JZ?wOrZ!Y-A~qphQJdyIU*^Z9ZY+ZO}wzfVF+xyq?#*lD|rr zcqbDP;a}0G@qU}CA}jC%gvJJ>mYF)~4B3qgwsL11yCbFpe8p%#qG9;LD~CTd?zViA zb$`Z#cQJZDPY8PI^z7xfU*YnNJkZ46O_Y|yQAlA3AX&mU`+01bzLUHxrWXdMs0?%M zOF2;?YZ%IrAE9A0$B)wW2wM)ZsF#@)Bp&4|jWH@i-LU95eHXDy5PFE8-RAAlxr}#S z&-SKgE^LD4*KkE6?|Tzpx`WISUb3F$Z{$>+`Zx`eB%x?=*6>hBeU`Bj{xr2Qf5(Bw z9>3myRr$mwCOxKO%s!S4<6gqfW=6&d1B9V(H`^D%6ErvRjU^0J;ej*Tvq1FFb{!2{ zXr5qA#Ijd$ZyP`SFv-6@Ww*MK+*&SfrfHn)2n{*1gY+(?rAqI5#0Z1!9M4d@oE<-6 z(*VsyI=UFhF}eH7h`EMUOF( zg{`c<5(K}gw6(DXWFIhWG$D^#9eI{9bv|4)mIG`x!m~m-! znF%o(;S<$x5?smgqjVhMwZF&5H?Zdj+xqqT8)v1NJ@`;I7*Sn^vIp;OzGdxH`@?+e z4)~t{jKky9;ema4Bcxx2!_P9mcsF7@W;IRiOg3}kb8O#5^iJ;jK74)QJLVv@!?1>f zjU-?cxdyVY;GaG(wp8rC*DzsNGC_mlM3pD^GdU9+{Z#aZHyUR>zMv{`YUEQwhp{S+ z$64}r4vu0^!71b#R34F~sA(^={0Pg&Sh141pRUhRWUgj&3yT`)Y^1Dcm*fNmL#>%w z84-~T)8*0rast7L9bCMc1FJYuLo_2omUh(&F!DgT(TbC+nWo|*U3<< z${#VUFSmmmIJtzo9_Pw6mA?>t^=_`ci%8nJNGly_a%^`)0}h2KU_0x_j-4IombO=p^2&_|aFmyuzZJ z=&Lfak+LLnjJYA2>J%1XrpUH4@;%I7K?h{;R9!JliLYpHOq;bxyS;FE)6nfaXi|TUj@z6fsewZ~GX1myzP#Y#cOf2y= zoMi5wVKdGYTubZ2Y*jIc=|}Z8OD_v@E3>kp*d}?`G&u z`kT0NJIx#L3#2hkvoOPZ%aT_y zy@R<&p8oto_$T`AWl4$XAg@|S!<+e>=GYYDAH{zD8RNJ#zM9r!ynZ{`klv-tP4U=z zeo&O=f4wGO7M=oSj2bT6h-#dXPUq<0f4WX7lF5rnkGXhR03=AcS8!?(Z9neDv*0wR_hOzYwF}#YtY=WAjp+I_^^<5-&dTMm`Fqfk~MMi>Q+r`u} z95}>?1l!9J38 z92+HhoRwXqKFKWdC~nGZ%84T^ZX?Ywc#Kq|7HS=Q~juFV!W25iaaR z=gG!+%|sGa#cOB6ASdw3bmU1om0@+1S8V0*4#dCk=<67G zIhn<@J;uZ{?j}r6Ach%wlGe4PTPf|q`ytzxv+Xh_U6^8GKR?#>Rw0P@?Zj4h*rWlifZgAN}Z0Pl5~KR@esr1$IBB zFX@?R;8?W$KB4o?JK9(%Q-@x8`*)&9FfzcMm zZbCkW8F|`h@gw+4QCk>1#x|FD3^PW!k}urHmY78zVi~0%K2_&|AqOP6m(iZ3Bg@GY zX{g7{cnr@{R3s6(2I_EX4tJKWES2M2oM9qmQj!hu26@FKpZY_lZ-*MZY@tz;`{B)y zg=irLelBEFIxgeXDXQLCHD%Zch7oyA|1Q7&n|yLBGk^T_JI{85;QqS^E~jH9#c#2F zgl{R@SCVd_u!JPf)TbA|D|+A-(k`k`vcDNSz~T$ocM5NqlOrfgx6dnH!y^HYj5^>G z^>X?V{8manaVr(YNr$ROV8NrP@g2G z2F^@+`1#))NEHJ1g{1%I9G1NJFnSd`TB$ce@Qhu>VveIPAiRtnk1;mPYyo!<{nz8A zoV4&LY63HhK1TgR;GiyKd>u*0V2iRC+?I2q(h8O%V*7MpRac@evtade!ND^o@or-O;{#)A02ynMF&AAr9m2m zclSO6^@n9v5TNvN*+`FfM#n^k{IN>xe zU&FSy@cth%_Z>tG5z+j=s}BYul4&^3L`bxTCu>yJAqS{8o9+oNnc&fY6UUx)L9LRT zrt1WO$NoMhB@f7WZy@g}vu!cU+8A8QxBimwo^!nS>E}Zcu?+tj;;)byWm!9N6OX?f zIl^P3Bp-cl!4iBDt|zIme}&Z%$YVuvxC_k& zU&~aLQ-8~u3rwF5aUs3Gk18VrC%8RsO9ur$i@vcbr7_0pU1J=vAfP;47ClNgDapPJ`Fzrpa9k9 zc#&7b{b$}S+Ps2$7>P+fk8LITz;kr&-vZm=tLNCQetz&%WGV6= zVY$bOVP<3G4vtPS*i0;7XueeNjNDrMPMkHQ$LRkP^c<}dT$E*Mn9FNqyXj34E>+3k z2#a$lO*Wxr69-eObFA!SpJDG2HZ9_CFMCeY+`&*nC>bp?{7sU-eu4i#gHFT+ShJwN zLSY>kf}dsGPbF&!tR;9e-GZJfE%$KcEbBHi^hQ3bI5f)S{fIjVQ@DVROSyg}x&yt3 z)@3AnSS7fyiA)C5#*rEP3b`HzrkNRG^aordS-qJgOXG58OXMu6BG<>kEW3`=tnd|+ zeS9;+o-dI6-U~_7JT@Tz0GmJ-KSMHz-VM8+t-JpxZ~$a4{*C0`OzO}%NwFO_qJ9;J zj?&qII>yDD$&a#mGx?YC@WZr(T%zb~Vz5MgmgN%+PO!8_Q;EixaKg}BAU3pmq!(~- zlGBozgY4W%=SlgJbtZQOB?WVMd7MesL=?+3Z{c4%IdB5Cg5+X&^aZ|>crWHHV8J6% z=(D;~L9pl}^e(2O2RV&fqGgOAhwNwncX(})j@!9!n$ag{-N_Xlj1N&bO;;j+4}h6YAIf%v{Yc2ZFY1@I#6&l^K!=(wJ(Q)((;wU1!B5%+#4WLcyhw zVQidoxX_b5e literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_oldsilo_01.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_oldsilo_01.png new file mode 100644 index 0000000000000000000000000000000000000000..dbf16e134fa9c094f4fb689d1c05e37c4fedcab3 GIT binary patch literal 4115 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_openPMD_3D_Fieldsrho.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_openPMD_3D_Fieldsrho.png new file mode 100644 index 0000000000000000000000000000000000000000..3cbdb6c40b050739bf4448058e499005e0a60f27 GIT binary patch literal 22967 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 i6wZIYg^Ulb;h-)9=^^ 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_openPMD_3D_Fieldsrho_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_openPMD_3D_Fieldsrho_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..87fa4f78ccf00597faf134af10334b418cfb4e36 GIT binary patch literal 6437 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 bANq0}JO8N0qxXOM15HIyQ=v}IJp6wE%mHDn literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_dualmesh_mesh_plot_2d_00.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_dualmesh_mesh_plot_2d_00.png new file mode 100644 index 0000000000000000000000000000000000000000..04f201189d4fa773f74f0ef0b1c5a05f16863489 GIT binary patch literal 1262 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_qX`o-U3d6?5L+G4zvh5O6&h zdHVZ)qjM9L+3SA!hTgcyb+&og#2+=awYCdBul~pI;c}-yl2XeI4n;Mm4xCJJr9U-x zYHIa!eRc>a`Uoo?ap5o&bb7P-hkcq`{r_k75jE%czvlm-zpr+o{rva$y?pB4JmKBc z=j78O08xBB&@Zy){JOQQx>tf{4GW%HWFP}PD?XG*68i{0P+ zdd10=C#6$lTjB0ow|LH`AM;|}ef@mzDZJKzI0R@-vFy_+N58+Z$|}nG#1`p}@Xc$D z6Ir}M!hf^ z3nL;Sxo~VeX&-n%wN40;V`2FOoYUd?m`0)-?PD&i)IYPMXEU%IWAJqKb6Mw<&;$Va C4*FjJ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_dualmesh_mesh_plot_2d_00_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_dualmesh_mesh_plot_2d_00_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..1b50af50d512f5e747c64721fea2a0c33307f6c7 GIT binary patch literal 462 zcmeAS@N?(olHy`uVBq!ia0vp^DImRfilzTrZwH z^I2VGQb_Z+fAzUs8@GEmDJEnp^EAH~-!u7<$`1dH)(2z4CVH(t|NQZd^3SjIH!LmG zIcza4v7Xz0eh`=9lR4%g@3}j5rk3uFi(h~JZP{(F=aqVOH;N)Pm!5ulsr2sSk1u}L z$sGS$K5N;ob*#s^6zBLYfBw1BM$VbT@YvV#?YDI+L$&O~&i$<0|GoD8Uir3zmfQdN zT`sYk-z{G`agD@doAZWl&+n+c+UqX1X+rCo&=o(Iop2J{^u!g&Rn-Ry=~PZ^)k!(o zt&^hY9haiW9r;O#JMzRN@yHWS)AmqXX}IR<+}nu~x3>9e<}R{K@6~z#w{E|^44?1i zJ@?HnlE*gkAPH}% Ye-IcfVzkxF9T-mxp00i_>zopr0O&~61poj5 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_dualmesh_mesh_plot_2d_01.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_dualmesh_mesh_plot_2d_01.png new file mode 100644 index 0000000000000000000000000000000000000000..c8d59dc37937b7b654da4a1cb34c1a09f17a922a GIT binary patch literal 1507 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_stuo-U3d6?5L+Hk>4DF2L%z z_FaAYsfOhbW^}!BPo0%}(4o*!cE0`oy1&1;U;K%cXZZKtg~L$L$)`m?Sn&uh=EjE{ z^>uYVK6TbNjbs%6NY;t{4}Sk^f6bqAwfCPNEu24pe!cv?BPkP~Yru_|{b$iu*{7$U z)W+F-Db7_+FG}BZv{)obsbvO-qMB2OZ{5XPeV^mTik`X6`xP-CnmY_leItpKTR=a6fE3 zsULMaaG%e;=SQ9GubUOAm8(VDxPxp3YE^2v@kD&>Ta9>#%d@2|CtFX}owpe7{hUwT z*UF~oPySx{@xuA7y>m{^Jt=lR5TX_60JER2+196~pZvY2;>Gh@Zs(qyOX(gC-o{7( zYW43QZ-)o+-?)pz#it`Qf=9iLmYr|cAAiXIKp%Ih2QQ6q6^j%p_|5JfEE}>$H-0*> P@MiFI^>bP0l+XkKSs|7t literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_dualmesh_mesh_plot_2d_01_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_dualmesh_mesh_plot_2d_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..cfd93c4f44bfc8286133cbe58691d2e6ec501482 GIT binary patch literal 545 zcmeAS@N?(olHy`uVBq!ia0vp^DIme!{lb=*clHaG zSWFW*F63o(ZGG*%zq9|Iy8gPrLD;{Y?{E*SzW0Nm11Pt;8L9;?%wqPGXxj;SkREiwq6T-G2M~@7PmjzLVXj z73b}YX%m=tK3#Kn-1_v*MxE!=EuYr}E{!>*VmH6kZoYi~aRZ+3zxPhDmFusZcb-e} zOYQqPuXnBMIQz3k?0#GD=RfmJZBsZEy*VPCP6#L~W99@*Fejux2UU&eLK`um@0#N7o(J%gvKpUXO@geCwF751Y5 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_dualmesh_mesh_plot_2d_02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_dualmesh_mesh_plot_2d_02.png new file mode 100644 index 0000000000000000000000000000000000000000..04f201189d4fa773f74f0ef0b1c5a05f16863489 GIT binary patch literal 1262 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_qX`o-U3d6?5L+G4zvh5O6&h zdHVZ)qjM9L+3SA!hTgcyb+&og#2+=awYCdBul~pI;c}-yl2XeI4n;Mm4xCJJr9U-x zYHIa!eRc>a`Uoo?ap5o&bb7P-hkcq`{r_k75jE%czvlm-zpr+o{rva$y?pB4JmKBc z=j78O08xBB&@Zy){JOQQx>tf{4GW%HWFP}PD?XG*68i{0P+ zdd10=C#6$lTjB0ow|LH`AM;|}ef@mzDZJKzI0R@-vFy_+N58+Z$|}nG#1`p}@Xc$D z6Ir}M!hf^ z3nL;Sxo~VeX&-n%wN40;V`2FOoYUd?m`0)-?PD&i)IYPMXEU%IWAJqKb6Mw<&;$Va C4*FjJ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_dualmesh_mesh_plot_2d_02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_dualmesh_mesh_plot_2d_02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..1b50af50d512f5e747c64721fea2a0c33307f6c7 GIT binary patch literal 462 zcmeAS@N?(olHy`uVBq!ia0vp^DImRfilzTrZwH z^I2VGQb_Z+fAzUs8@GEmDJEnp^EAH~-!u7<$`1dH)(2z4CVH(t|NQZd^3SjIH!LmG zIcza4v7Xz0eh`=9lR4%g@3}j5rk3uFi(h~JZP{(F=aqVOH;N)Pm!5ulsr2sSk1u}L z$sGS$K5N;ob*#s^6zBLYfBw1BM$VbT@YvV#?YDI+L$&O~&i$<0|GoD8Uir3zmfQdN zT`sYk-z{G`agD@doAZWl&+n+c+UqX1X+rCo&=o(Iop2J{^u!g&Rn-Ry=~PZ^)k!(o zt&^hY9haiW9r;O#JMzRN@yHWS)AmqXX}IR<+}nu~x3>9e<}R{K@6~z#w{E|^44?1i zJ@?HnlE*gkAPH}% Ye-IcfVzkxF9T-mxp00i_>zopr0O&~61poj5 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_inverse_ghost_zone05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_inverse_ghost_zone05.png new file mode 100644 index 0000000000000000000000000000000000000000..3a2bc1ed08c7dc7afac1c727bf3ba0ec68286d2f GIT binary patch literal 2443 zcmcgudr%T;7Duf_%am)oW}>B-*j^v0rMODulPEQNtah_9)70{f$UNN6(Vu=XJ znz>%PKESXvx)@|BiZ3h`Gt5Wg10mE5UvO#nPIv#6G-!Kow5u<^xGt(?Kecu z>T0x$e^p8fW%d@IrKpxWZ^cOVET8nIsP^z%iTH814||;V88~L;94U8mEr6RQe3Rkh zNOR8Eagx$|Seed!A)zD^J>!BOKIA3J#cPMinsC}8!(lOe+RjGIS?s=+GOGI1B4JkP z@SH2~#eag*EXv#iBw(U6OUs7So0_JsJnw`WP-ca<2ln3~d=VmiGDgg2Wsmv22A zh>O@#0DV+X1>I^K3HOum&|@|1k;NFCIV-4$eM zPZkB^g3=^CU5?V`AWI%S_U7Y{%_QT%EBa^oDd^x9ZDQ@*8UwS9SlyX~T6Oe+Yx%r= zIj`p1PA+oAj^qLbiv_bv6a!Znxy4uW`;U8AE7FJWUDpe&$3$!2?r$l`*?rK9ME7D&DyyK-qz6sA$buw}T#qzW_UR5}lV6U9hvJIq1CH}kyk z+XrdOnHA85?xC$N*9}%oTFsLnooyo|smv)bJs_P%g@V`oS6(CWf8Mr}>yFhy7Rw{5 zE53J%aFzD9FH|E-_NUt#f#FsUXLrG_dqP0@`uQyNP>8dC&EPzc;zZ2-u-YRs}V*+MNF&ibHPf4bn^?I(4ZO`Q6hz_inFz|KK;Y=|{}*HoW7 zHn4wyGa9^^7V~nvqkVxH)m!j~q=0evDn=UP4rO>aD>`175yq~h2!XN7>!io!DZd5ei|^#gN77@~Ab&eu^22VINa5TBfLW z)IRq!Wm8{&S;$db!I+v#CCZbezrn054CAL?nd&Nh zy&gOs?0@V6Q3|2`lnwM>+4!*V_y+X;Iy&eeBuw`sW?{8;ce$G8mLp^pzM(LTwOY#Wc}) z1+|(^%mhu)@Z?=<&N_YmSKJ%UCMUDr7v{-nV<|Oee4kBUlU66q2qlOvlF7 zk-GX^v6d!cjTUP`+ano!a^Td!yPclr?n!+w=qJ9XFGkSBFUjUAnFnIB?{!A<`D_RF z$|QF@U}3OmW2wSsxcd^_S8yIdEYF4qq%!&ucVvDuEoCy^lEX|q*Z-&twiq{Bnz#{; zZCv*lf|m*{Elz|(9oTW`0LdFL;~JHG?l|L?=$FZ>Xmj52N4Q*e+(OH>C`ClZr^kPE7NN zWD~H%^r2M#^jZi)3-;h9Fe=XsAq#kA6tqv#MncS63CN2GR;_xaXgaF??lDO{OZN(d zWn~n!nWjJ1)cri=yW&R>T7BT=n)i8x%e~M}?sA!y&tW}KnMi1A=B5W?scReV2-|4& zc-%xyL99-il=#kpt`?vpkWFbx#}nSg6?O9{W)aBHS|kI%eAEe6fzcs3M+EXI0I2+X?9y2DgopK!xICWYRx<2>V?_$>PcQ^M&@kms*pkiIOmO8&w_)tiIOQ`hcyA_ zqttN(n3c-!fr=L-{k!iVqffWDOemCGBBSo;awFf7Oh zLOQ@ZOMNxW0YYQ+lCQ3Ke0^2ml;}=bRG8g_e}(k7-~PXN*ARBPZt&u*e)EbY3xIO- Ka;^WgpDY73y&6NW0*^lq#Ui0LPL(Z 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 IM6N<$f|gB(mjD0& literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_resampleop_noise_point_small.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_resampleop_noise_point_small.png new file mode 100644 index 0000000000000000000000000000000000000000..e53bae49d34ba3a5830bb543054ce770a8f48c34 GIT binary patch literal 18786 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 I#Ek;~2kha>lK=n! literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_transform05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_ops_transform05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..0191f57cf267ba81950ca70918b7a726673dec66 GIT binary patch literal 5549 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 UBuKV10_z(FPgg&ebxsLQ0M~QFeE z%}*0e0LFjYN=x}DVyn~=1iwHqQNW8a(MY^_;pAVU|CFcq*2)Tz2+hsqOCu3}{||@pj>a7YYi9>V;o?P|+uV@_FgM5T+xoY8y&N6c(Y|wFrPCynM5Fq5 z_Vuy8ZbuiK1MAZ#1_$vN=&;8l_sB}8+1ldfO+z=gwAd8l9Rh1@jc61_F?4e%L?U5F zFPs2NRr&mxJ9lc`4@bb#e!nRzzn@gf@{TwJ*1&++Bf%iMyOwvP?qU7-K~oc*oqw*R z)A}F^1w+0msB@OrXt7?t||$$@o}xEf5xB!-urBnXkm2Tv|`Cj;G$!r?u`%dDRW9>Zjfb6?17I zU`=g6y}*ja*x#>q>YY$Am-h5nR$=X79Ud|{Nly>=?^|564Te}#SZix6FEctySC{pb z+mK6Z7fNF>Ha8g?vxOA47#=1XB@&^dqxOpj!JzqEnoOSlGgkr2>*dK4^7+zhoyWtoXQeNa zH8*qNg87=QQZ>^s9zUI#tAOS4*!8AjmBL|WW=uYt%bi}{sqYPoDisKr5Amn0kOqfk zTIH;e#)nnRrJ^clg)}~_VlEX`IV+^`VVN_;c$~|ZPhW0ySmu@h%UL0f539JiEUI!= zNaMpYF%2tNA&n0!92Oo~6|9iPhh-v{e*0GG3*?Os%Y+gM+S|*PNB~PTmmVHgS}&9U zmS`@`WGa0_LIPMqhPbzyQSPb}r3kjT~H%2A0>WWr*wR6@Sa~FG&N- z^y{#)L-njkgpmZ{rLzpW`#%x3utcU(IeX1dG)HaMV8GPJeH=&`)?VFr~2;RWn+U-h=GC9F2ACn zs(k%QZ|{kiTIOj_&8Hjyn9D~Kdr5N`NE}3EG@CR%DsDkpEN8=;*oW%{e8S% z0)f(YY(7smOCZ3xlOxH6B_R1e;H!`eOF%9x0lBaQC literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pickarray_02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pickarray_02.png new file mode 100644 index 0000000000000000000000000000000000000000..9787870710f04d6b69abcb66ac5a655dbf8e38fe GIT binary patch literal 1100 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_l;kPZ!6KiaBrZZY&gL6mbnq zF=0`;@{nuA;i*CG+6(xEn2uF=%G~~QwQpTnso$EbHLT@JJl=27Ijz3nbAUX)X@MUjzjY zrNzZv|C2nKBhmPI`{l0X_|1h{d`N14eBAabZNWoQ@#kl6Rd(v=6i8BPnZco`hMQ@( zA*raqrR77T=;UT)rIzn&X3NM3D(*?Y`{Y3fUX3u5D>gp_DSddh4Qv2@+hCeHIw$Nd zZasNWP_U?coq?r=5^e_~X;EIS#_sNNVqz%JCTk19K3`k`jTRFp1n=AexzVyI8tgj) z(FD?c;@lf>xV$-|2eh;ATV+ByQE>o_&pRt({rUPjCP;664e}uF|NclF_m^J|GY^5nr&V!cfrSDgFGm~CTkdrkd7n&0V7SIiH@ mel8Y4Bmu(dnTl%vGOy<|o}tr`l?yB-7(8A5T-G@yGywp@#9G11<;&*H zn-d#zwcY(b`|p;kdu;XRrCm+ge_+j=S#z9!RIa|DzD8hmL~oL*mhoDtt?ZSJ>>z_x z!gibb*C%a_E*4i8^U#?Pp|CM5w`Mbty(YBq@@t-r4oQtim^!z<`?+jt!~@-}KzWD= zNH18!0>z}#e^vP%5p(w+l2i(N4pa@711fGlaO)a>9$VwqwfxW7fh3wV*mPv|qzMG9 zFVn7n+wSMP(s5i_@% literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pickarray_04.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pickarray_04.png new file mode 100644 index 0000000000000000000000000000000000000000..6c4b81fec16536e91b2aa7924357ae8ef82be604 GIT binary patch literal 1100 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_l;kPZ!6KiaBrZ8Wvq<5OEEZ zu@Ny@qpY1E8>#vF1Xlz*FRQT9tSg-H*M3BOvfTRgr{232pRILIf8u;$bA|oDUSY)} zE*yq}PChLHIGN|ZGJcsiU+%SV-?QKS^Z)-(%y;VO6i8BP(f#}DbNR0hjzsVK`)cOd zDLLIZbNcnH`Wzv}oM(RuqCQUHP*j5|oq?Mf@%a1c*J1IhP7#k^S8gsN=p2xOL+oKb ze0?1Pb{mq43S3$~%qyMTtgO`Xea&nc89^evjm0k}Pn=A5GPbq1Ce zN>1<2iK?-?qe)^9#iEp}Pabq|SZ>NHDo9~hKeQ1Xc6b5=61X!sESsXi-f=I;2K$Z( zEjMSzg2H9O+?z+AJUDT&j{i*`?tq8c1CFE#(pz7jJSZqww7AR`y zQuQt!6xK24|AOO=cr)j|X1-QYSGC5!;cSI4_CQ7zjXCnq5SM@sstJt!Ty)|tB&!Eyu#+&z*2(2)78&qol`;+0GLN-i2wiq literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pickarray_04_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pickarray_04_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..8d2739bfa9ad66772ff8d02de251ce462501d440 GIT binary patch literal 569 zcmeAS@N?(olHy`uVBq!ia0vp^DImia_1okQu>i1cH55&j>4BwluVS zf_lY)h=z>}$)$65{5B4|-nrTWWK$2T#OoJtPR#>K$Q~^|EeRIkHn_I(_iVo8#?UON z8g2uz1RaQeM(>`hzhCZEJ@)Fa$T^|puW2xGh}H;~H5=o0L;^{G8LJoo0I@5p*hXzx98&#}!_|h1cgT|I%N2Sj;@725y%U$CZ=Kz{@xOdsNPP49x7*KtWmdKI;Vst09l>*5&!@I literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pickarray_07.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pickarray_07.png new file mode 100644 index 0000000000000000000000000000000000000000..47fb681a5c9888f2160d815f477b3d2a4bb87a41 GIT binary patch literal 1091 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_l-`PZ!6KiaBrZZY;bKAmJ96 zQ^w)3qM2(&v)4)xd4w@pN9efO{;3zqMg4pYrzm2A$LF3qD80Go15l5fD~9 z;=*Al=;VWox%-Ovg72SyU;oAB{`u|k_5bT{OczK}YMH^2=)M2{pSf~^ia9S&FYmvs ztkiPWX8)R>$JGQ6rRnwaYx{LV)G4Ytb>Lx|&YKs%?U$zDA*uQLv$rbaRXc+NV%WWn zNks)NEg$+sCpQD_-M(hFjEtb-p47Wf9&|vJfSrib>WZxoK}sK9Z37zsGZ(+6j?M{} zcOC@kvz#mK!`IhAjQ^gTSatHCpkPtT)h7>5@U7!Gjz2UIE_uT7E*IoUnS* z*4bPB-g`qRtgilVRi)SI!-8p7CuQ?Ke81YsJ3?{Uj9oK!6)szvXK{kv#zSWU(B!t< zAHRgNZ?tW<*yxbdc!a5QYu@Wq^MDf9j^>`01dFf=Wncb&R$=1-t*s!ZK*hLK#6Tu2 zuuOWpr#inc!utK8nabDBb+QUUWxz_)8n>>OzjKBuJ6`&EI*<*t0964+0s+D4+Sh}; z*Qxd!XAhy9bV_PDk>~7v|-r W&O*AEzViTMkHOQ`&t;ucLK6UX^~Qn# literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pickarray_09.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pickarray_09.png new file mode 100644 index 0000000000000000000000000000000000000000..287be51dcf9f7b113af44e4aaea1e4a9fba5d969 GIT binary patch literal 1055 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tJ5o-U3d6?5L+-WbRfDB%_u zz|6IQQ+orS_EtXa4V>Ht0oPkjC?*K(*t7k4$OrcK=hS}ZPEWnbFn9Mah6rmxC!ZDp zVZ|dZ9EP}z`k7^ACLeA%v-mt?$F*&#Ubi&m}zIkS}-sm&s7i zBcpgG@ePOl{`yzK5B4AHD=4@B_IHD%t<#JK4n;Mmj!uCjrIs1!%(KD^D;1k(sXKjk zVl(w`F<7xu$wWWJCD=71?nK9)C>**_%`$ceDi%oVyRc`1V#P87{(}TSm}Kp>exDab!JIqbpJvWz+3-}SEX|Mq_N?4omt_1Qn(v+8JWbVzF4 zw*9}!^V69S&w7Y$!mc8=%>z{wr=AAuB^vTOzx9#`K+~3~suX=yx z!bNjS<@TSqpZ_#MaOF9^+!)3%mnDk4vz^v-cpNrzOTVcVtdn4WWi^Mk>z&^|>uwo+ z`#)DjYz5P`s$*fiYp!O59*_z%elj;w0c86TrqIJtho?sHX7h$GIxe6h=Ajdix@O<; z8W6DuA}}Fh!LJC}_>Qj|t@a7nwt@9UC6-z~iv|%;fm=zXX3uVe2&ljjCe!1uUOMIU zUA^4;!jPqtRfyX}I7~jdPHm0dF}TT4M}TBOc29^PQlRTz*tyG7mS;cY`c!iEa>$Q~ zm0Ab9GPm2iJdyIBBmeHd;g1fF?f)Mh|0Q=`|3FkcUj=TH|1url>V3lG8lxmIUKu=H L{an^LB{Ts5u6x&! literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pickarray_10.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pickarray_10.png new file mode 100644 index 0000000000000000000000000000000000000000..ea986807ae2a3a0d91970202bf47b40a417c2768 GIT binary patch literal 1068 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_00_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_00_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..5eb1bc53653d3cda5c73918cec9a5f85980b44d9 GIT binary patch literal 16331 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

    CBjeM)~TbZ_Pu%yr}wP!y0^h19e6KW}|x8M6< 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 N002ovPDHLkV1oUM9?Sp$ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_01.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_01.png new file mode 100644 index 0000000000000000000000000000000000000000..8c2bd9ad833a7f93e22343c057689832ae2e8f58 GIT binary patch literal 90717 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%0AN;Nu^_>NIcaMEHQuHJqkZn{US+xwA=vEs*` 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_01_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..4f3d86ef20ea67837f9f71f5f905fe616a5607c1 GIT binary patch literal 17667 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..48154c2915a2e039330fd0f533811c7b8d9e0c74 GIT binary patch literal 16501 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_03.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_03.png new file mode 100644 index 0000000000000000000000000000000000000000..1ad7aa7f0a073854c603d5a3468efa8d8f2e829d GIT binary patch literal 99311 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

    y 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

    TSDm>o^ zL!Lubfwf=^XbpQuaPpHktuZ;wtDq867;6yFfDw+!^L()+0swI#`vf4AA;O~_kL|n7 zPruW;`HLK3KZGA$*~@P&?eFVpqUF)HnbfYVagyftOxR8{Y(}wSwvdXeSV2KaT@{ZX zh$IiksWR}mqE)TEJT*m@jp9k!w&7~%RsiEU)I8W5fbZa(8WjY~qB)-W-p3u{w(!B> zjW&yCY%-ADWs|@73saAI0n&%b1b+T===C6qAc~;bJVzD;;QQcuMhL?g2o6M`Bp3rl z0Ysn_a1KO}reG~(CG7re%RG3cWbuSeSae>hX2=jy6h*V~3>big^Q^;S6U`V?%#&r| z9FiXP+%kKezL-bN&#$}$4|bLR#=BuJ;uZ^++MV_fQbTbXPWa)P1RmY^P^`@ic9peRR zow8R}D4KF>sTPV$JH_Th#HK^5~)q-a8iCMWI z1aJ-jU@aiRV(OO?90wQ!W1uWyK8NEoNPqT2oUJBwI%jjg<^z!i8mc)0NiHu=2QQ9e zKXpR@AO=oeIi}PNnLCA7k|$red+U|M-IG@L-L=g}Ov3W!17BbD>K+eW3v~anZ)u5( zz>qbN1M!-_2~cEJ|3Tw0r35+>S`1tZ)^`E(=q{=@5U+3VM!QgG)sOs24T3ECa-Jow@Z_}S0k-~1c!{c}J8B6Frp!Q4s?|U@tsZHf#I3JhgfV6mw91mbgp^ zKY+xARSz~?SaYH0LQlfF16v`z=!-Q7#}3A;l6c1Hn*VJ z4|jDy;4%mpH~@&C5g0%rDsH5$hyG^MNh=sKCdWf_bwfG?MdA(*6;$P9v@(c(d{+OD zZ|$h42KzsOA2h*l^IqLX0sYMb=xeBNg5$v69_;L#OVz^B7W3WWrSo}fQmQOw#5%M+3yfR6gN@!5P5D0+*a0FuD zGH^IbZYr$M6z)s9xGULYoB@K*)?d^ZCDfyfe&G!$kk<(yEv(yc;B)0hDwlEmooKkf~ zf`Qcx}?a-k}tN_KAra_3}N;dYMjNNKL7j0cP>He&py~JdXpt@dYFOMKm=t8 zNdf@p$QHBSLbj9wr69{-HiO{^?tUh3|Dtzd9)`VTDZQe~s;USyt;m)@rpYYm7;7$8 z(H9+D#M7ye2mo^B6k0kCG;>`!l>q_-S9&UhG>rj?GiE5*FE;t(lT9{FR_m^B71=yi zvm*;sD@j#kJZfH=)AZ5ZlxKi0R0N2C1hIxQEvGB}9ev`RNr!Vn%UdO1dcQyW{B*uP zTnROhEWqCDtmx(|FrPy*fDO%xig_R^P#k~^5{Ebi&Y;%=BFJ+f0wJI*!Smo^m9i*q zND>&1;O-afXa9NaD9Qb9OZd^TnF)d|>vg$j$Qm*i@I6!cH~Pr^_-U+$dGg8&SH zfQCsex6jJzR2^pDO|!zvyI}RkWWw1(UANn3_(HwV1DXwdHoP z;lpr0eC1!*UwjC831h9D?R$T6KM*9@#$K&HdzixnU~2<*cFrA8YnabLi1T25;f4zb zjAOWeAO7MGmyY^P*>RkD>sXexl3!Pm2i$;J09tTaZ0Zh^QhRUs-IE%4&87Lc-J&liDVV+I`BF3io;4000ffKAG|s=bJK>CuRJ!0oD1e`ivU_K#>=YD?+cD zWIjWKfPTqhp)E25KqB;_T*uO?5udtDHcT|k199hS9FY=^|^c zcOU-IA>2w}C8%0n_1*z|k-*kA{No?N>#svuf)FsDLs3FmLYjfrkfuNuW>XlC;pp+| z?!9Z{G%$^<;Wm}3B1mTa!dX+Bq`s5>>sb&9-Lgj45kcp>l$Ue=Ps zE5Vc{1T;c3x5SbeupAfzV%n2XRGQ?-nMo$&(@RZ~Jr~%X-D(j^Tt1Y)UBJb0k z8*ga+&-UK_DeM_Is^Fx6wWjwkUt0ZF|N1dQa9u!zNL<7sW(s3@TNG7mt= zqAc<<&A|e3FpeP46OK!sGRP{WRSab=1dG6T$(M&`Nv9Q`7ECo&{5d>25dUiZJO4!ft}~rvC;vxdXKr#Z1gHDX<6rcO!}e_8o(-Bs zwt-PsFeb_wnz3a?&A!m5}A7XPr#GbESK0opqV8 zLp<3fKZ#YI_))o3!+L{<8Y)AElP!&!VmS#93ooNaH)w26dj}D0NfMxSgwhmzgl#RV z{Y&cj<_YAb`DEQ0cY~F33A52pud2(cvA*iktE&fT4H~mi`HTPg&DQUHESia$2FIT_ z(-Uua7Cb&$Gisd+r_9m>%ZbX3FN7aRP!P{;S$ckBoDSzzRw-)hK`8T*P3C4i*A@ot z7OpRq$#Rf1dZEkwy5|HUXh`XMs*)!IZ}0RdKAb^)RiO)$X7injIliA5Rh?l#41GBr zF6A;&#mvrfJ~0@8?8GN6c1qgXicmpW@_y+kjHD9;d7qJX!DMJlVWxtn9tx2+Oz3Q0 z*-rT`RZ>n$)n2DDJJ;!!Mxu0A9TU(QodWa-%w2jsh0u!gs|qRe~$W!K`9Y zWY?Byxp#2ib&haZfksKhNq9^Kyo?LIe_D1>HH=-0iyTz!`Z1>}HZr&KL_nIlQ?vkW z9@Tmls49w4J^&3!%!09?x$mIlz6co6e43||$f22_0jH9a3Y^dt5}+KPO-5&_A3}F6 z>aKH4p_mrh>P2DOv%H>8eNXO-r~TcK7NO~*`;V-#uf6r!{oD8SaXd3EKx2Wqg=Ssj zG(n(aV&8R`5TK9XQXOh{q5h_|zj4?6#hSLBCp9iQDluZrvfMf@C525M;OXPjlb|sO z3inm{=$(>x%pmnH^P2n`go$eFh3)Gel9in;Vv*Y^VM*s^5Sc!1WI zix7#3lSQz`<`q~|RK<9#0-Fh#3vgZGyH1E`EG0xavXZDs<8(eh*k0NA?i;TeF!w&Y zH#i-f_s?1=lzo!9dZxkYQ#ZUYIU&XV?*4Q%{qFa^6NJZ~d^XWG@`UR8aVf+cLd~pY zz@<%7nC!w%t?nNt!LemG&h-7UI#>~5g#bbV<5U`xn)2vW@80)AU5l944W#jGcb z+U&lH_eQFm^;dJV=75vK@Dz|i10a;9D5axB(=n6CB+mZmv@Jzly37z-3)U`{{a`PC zA6w~aRulm=9q9??3FZ-iwXvm&s3fR}N}>W;wG?!q#Gn7<=dGpI)fcW_xpC#rXLrs{ z&lc_GI?J8K^|R(C7DbikGv#@xMV#|2%YOEkZ@>0~@BXl}^3%V4(DqAL0*`GH`9@MD zDy_QK$eC5svwFT4b|0L`7sx!n$4=JK3hk2ClnTv+IT+;od)Tc>=0jLZG0$gtcjSs= zwArK6VpilL0ZUN#q2mG?7#~BHK`k=?G3mB-xaYEF7m6Z{XIVDqWF&Hj2~H@GS!)R_ z05aqVvgt((14~4dTgr)uKoc1PMWig10ID4{LnqW$bHT^MasU76w|nhtFJ8Oy!j(I> z?i}tPdcJpha(dne^GO)-RX4o2UL0@z;O!5$uUz`Q-+SfLcRtLM!X!~CEfH`apd zOPL7{Z>5g!Ew5zx@j&Mr0z4Nw0_GVU&jJ0?Fjdxs@FA=f&AKcKhDO=4R3()OT5?dh z-0_6R7!X+oK#&`o6Ce>I!gIp|vZO6(hqI>Nb%kTBxyTQ5$wz}x|1bLO<@VJVuC85L z>nwG4AMKtmoS${W3xj&rxE8L<1wVMaKO0S7dGnQnhX<#-$3dKDkyFX4V!?FqTD|w@ zkB^g6nXH{aF9(WBY!6|$0~$zy%0-`!G1@TMPC^Iu^*e7YztnAc!Y>$&SNKu9E78}9b~Fn5v?vr&o){y2lwQRr+`)j%nfAZFqa`%FqX6> z1)wbHb5kN9coHlDF~Fu@3*7(!7Bk(mz5NzF|ISX%%Ch|a?|gr0WodXeJSX*}9kaNI zxPIBV7T1iiBu+l~*#|Fv=S9!=_V4e>#H|{vkSWivgZuu?-<*7Y25<=9n*ti(wPTxK z$|@Mg>dvTtmTk%6$3~USrO%)Hod+w}T}!V?&(zs?vMR=*?|T*8o&5yXwd*&I)M!Tl zGOz@mg;fVs4i6F%9yt~isjOrqn|vk2ASve)s7Be5WTGMJH4Gdc7*Gp$BT|->1;YSb z$$aSs(pxO_zCy|vqm=R^fAh-b*5$1(BzMPAtw7t#O0hzJD5Ire<$$iN=vW0alT<-#t zQi_0DORY=KUGf8ea5nhaPkxpp2>~(AzO?9hHqLq)$N$pxVz@Ym_{qDUY+l~{-m5SE z)xrL($il(2Ht(K|e`7bky?u3de-D@ddT80*a@d#C!z*rTnzczOWZ_|}MfC`3o3T4M z_71Oej*-VzL}f|M26j&P+W4wgmHp6xm99HP&^ga4%yVmISjIG+ugshdw2so_yLgAL z0CXJi5gZF>pfV~o$AgpfIJs&zmIB{*tYk=F%`>L7Af=5~TKS>Bad~57XCuq9$M+wf z9-mgKVw`c#4VjBc@M$~dFU48U^lT;|i}oTz$dE09H16=j-NV^v`s3evbN}96zuZq; z*}|SbUOW2Z>EtJ-^aopm?|P#RQ}`MT;51c9Fqd-|7JXlcfNdShq679L$sb7(WF5@W0ZrL`(WTGn;bAS1?TjlnWN z8zHg~Sa2*LfdaUkz~(88%J_45_nr5Cl>BJ%8=b3?R$l0>@2s!ytmk>Ydw=)z_;j)K zI{|nHhxljojM!h8(z9muOxEFR4GP%T@B&!0g820PTRYcx-u&%1Kl|Xb!Dx`#)HQCy zHV$}d!CJJMYjA*&rg|>Qe0pzn_tBtMx3Zmky5be3xs5Y3i`D708+6_xk-MnsmW+4I z0yJ(}F_o7ltCD6FGR8HTfT9&zJq`{bA_xf_3*3NI@X`ow^dTW|062`;sQAl5DyfVj zqUKU_`|7qExWlvIJAeI7nxq7T44GgTK)*+=R5r!98!x*sk69eYlm2pQmtg5M3DQa~I?SUbLN!|*Pp=Hc z>wWv;baZ0`6|_HW<0-EH#rpG;=eMtIyP-Qi8$Y`HC^_F#{BqyqzmL?H^lp)X*l27l zNc}y4zL^&QAmK}|y~H{H{KL-?@%$gW;Kf*4rjvBCNMv8Gc3!6Ezx#Wy?f>Bc6A=D` z|Ge}1@QcCO$A5Hv;mF&?~Rn*x~y=*Q8#a1b?+1*p)dZeVH- zSxadvHQEI8U~Ow{b!WAta{s~p*~!^OS;tp?|6hsJ`OsQn;asG?>T!Sf@QFVzu7SbF z?|!^}W&3;o;Cmmx{c)b;i^mBp%6`dG-~^1ZNix9-QZ?VF<129ev9}kqxZN+B{H!w8 z@%bCd$@d@cPezlM-+1}p;la`Fk>fgxmDi%pyvyBQ zy{8LZ#&yjo?^#g;k{wS%Nkve0ED zO-+I}Z2j{3>eea|9qk=`_Q_{TDaIIbydd(d?)>_s7Rwz=_E`$Q91$Lr!K z%XzCi#Kpqs^7EH(zH#&R$G5f8oO1#~LWXRymO=t@A!}r;AVn2J&WYtBOWiE>aptpB zP(8JED>N8bWGpQiV}#^8*Vfjy)*OyUd&jpw`dlf643Q(y)8`a@1=F)Z)2~hHDXd?c z*COUvfVe;g2={K^+t}H7?FX;jdjD1yXN%^70EB>Gq4ecssdl*2h^7gza;bFXaLq7x zdEsy%sHeJ}SqlI_T5BR|cAD##);lYm;py7-@Cte_~;N_VGv1(GH}vH@FJNEP1f>J8>WqA07Sw< zQ0OStUS*6WV+@ykXxvc(LDfXFdRv%men|MrzPUupN+pS<%43T_zMvUEpE%u_a-1ESQ#2n2yw z8CO|u$QoNMOlfDmyV4z;3~qmTdor3JBIo=R88YzY=c)a&HT_p{#;^V8YXtsV@%knQ{5oVzu>D8-S(4p+ zjnPr=Jibu_;(>=I5->3e>Q*d)fXMld3^7&C990G)=D8auWW8?ZxGP&-toee zIOmIa(pYnWh%QQ{o@MpKxV|N(ztS)(!*U_#~)u?(@J?b8HM{U&R+Q>$jYa?s{FXjdkCo%Jyychu&5Fp_2 z!!RKyFfk`4fe8ehkQ;mh3S8g?-rzeS6EnaYb1=ewv4wqc3-^m#=~lWlU79XUm!`MU zTc@_Bwp90zwVt(~UEMbR(GGdf@lwgI-nIAI>&NqbeywLcE7##{Ia|(_FRuJMxw9ZV zTh5j*w)}@Lx&dd)+44VnISazGP{ls^U3>2elT1BB6arm2 z3&lk&|D%AAW1wq3G5wKO1y1~Ri;l+A0ih{pp|~jJe;^QY0suQHRGd`lg3##z;E!Mm zo_N_l)9L)>SuCDbISaz>a^}=Oe!P|Ywy{V6IL&r076^gu-|TeWI3qYT^Y!1oy!|7B z@D4}-NWha%35K8tDo}whol3>I&QD+mc;I((hmL>q@o{(t5h!I5sh?AA@Zz=s*gn$% z7FQ&?nfmV@glBx6aBqhdP=q-s-l-4>l%NV8BoIRc9VTHEHhkW=w>#v4If&>?-V5M^ z5C29_nI@G^u6aiLb!uhNsozxC4aJ$Q>Gz&(i~B}h3_R}du%#!reWsK9*F{rJHLtwC z^WQlRPgfGY)}ahnsxiuS{vB={;`L3i0oDLVA%+0@xTe6)T&HtKjuMo>g8%|3Lj_iF zG|#yJD>}K6`LAnrC;)R%10WIUYKm_WzGev{5OaAa_g+^GU#uiNgNmpI-tkKc%e%Mm z7bpAnE=b#B8gd#j02tE1N7gSeS)x#mY zPA=(c_Hl4{Mh(I(_nitUZRht8!_I|%)SW+J93E3P-m!(hJkE0`f&`00*uo>HhMZjI zdkeCv|Bi8ZLLfYrcHYzBR(R}An1lvI>>6joJ1`DApawAjLr{T1xB%92bQS0FYUhdT z2%rSLP=zYH%Itx0sKbbPYOuXiuHh8g@PDmxayDTX`BuP3*?1l$L?;}A1|)KmpE_d#7~(pMPak6Y8Gs?N4NDMG z|Cioe38tYpf)HZ*m)pvWz|-AG1SLS=R|MG+{zi&4^9EU}p#+G+`Q= zFa}LLSOKd_>_{N8SZjh`A~q7vS09814OPbSuLEI&0aym>w{Wj&_QK+B3y*w`Bs>lR zb(s&vnXN#VB;3yLp=o&qb6L6PV5V{Csn79C0$b#ZzWJv>wh}MB^5dJi?`7~HukN|Q zX%`Dx=?j)q5NPuexL{dy&(?9u9}SkL=^gbAl_aTkR*7h~Ac7+z*rzp^vyu43vmb0x&oRCHmRr4-cRLB{;C1-)`ZG<9B8|-&;V2EVg%XJD))W zO*kYxD$3fpiIRTvf!A%~X76{Py%)Zt?lF(o0X6Vm=F5FgTdVrVw{aPOcb>DSJ@9iK z!)Z&M+$bkgwv#dQPG{|*tEy8gC;r|)&O+sBg0Ko+tQa+1+2oZHnDv1Mpj5;VnvmeZ zFv_@_fjTtca^i^B9i;%vU`(**Tsb}zj?sr0=G2ucaf2pI!BKb5=Sw_Y94wFLv&fb% zz0}n3bGHB8M-ag%%nDzMmGq0C4G2>ri@+|nlVr`}`H~a36Sk@cx2bB87j@O|gU5Xj zfj`V6V|*gDReZjb5G4T3T&H53-JRUN1qYy$d*nnUn?vLFnT~4S87Zd*B=^)AT_!nA zb@Y9B3?}ZN=1ji_C=Cz}K`$gw0v{rnh8j#jOcmaEigl6F8zX2btcLQ63Y3J&oBGS7 zs~gNS1rwN4^+ZsEgcYz9wrt@-X}OR{m*{)-7(=k-1cs@r7#x1Om4l*2fBiAhKO?!R zm4!{5l}BhBR5yTFL7REU*Mp_W>^Cv^EkA*K>6hx?V;ScM8Sp$dbrf{&MQ z;XDw&3Pq?w8OAfKDQP((UzWmQn1R7#D}V-vSHs83>Eyw>H$~)|qMv_6z18(K5j#4B z*jGQ4vZByejn&4Y6M3;*RB!F-WZK)e2{q8$GFf-=LuJZ(!Xf*iI?P35b_z-`WCE2w zR~Q}-fu@`S4u8D$49P$iX~XyYazY?HRuF?J+t~tpVYEuTUJ0uT01xmP00ZECmp?;s za;I83UDRARAT*U!C7{jG-vj(}z+d}T#r+f#cpN+!fIixHl3y!mqm9$n` zjnshfRp=L#8v%GEyQ*nC7at3;Uj|d)!C_c3Pn>9yo`HV#s|V*iJ5O}F#}f5?06zs! zq+dNyLu$l&Ri4y_pa!9XoF^5zpSns@eK$4yPHJvsD~!eeb0c?1$dWHpRE6FZTpigc zsS@;ca-+uw;lc=9&>T2%DE@H~Xv*p1a8W?`A?$!7Fxm%ISShTs56IeVhJa%0Ce8R` z44oV4=BpX*5e6Gr8OsnXfhs)8tD^k*;>6hx+aXZTg;0e)SPB>LPX&OZ&<}$OeuXwP znCV|YLL7xj`7?oWSOOO+N#TCdrAJU=s_K7Ci6W;zl6Cre&;!5>++HFniGk^`+?#z# z0z0`C_Bs!jN8$uvsF*7Zq=+~GcpVFidcFCTP5(}UT$5@^Mfz|k6Ukn(L4jeX%+T~%4V*NL6zyH z%s>K1#dp#J5sb^DMF?PAn%HGG)uc-fa$sGp=C)W}_n;+cayaPSChDcG*Ha9~w6*|K z&@__pVqPgJhOiufChXuFFba(-Q7MaK)cq*^!i}&fAf5tb0KG%J{)u|rVc7f`iF955 z40z=3?1OqGdqYeBm5Zr`P=jcu!!(@Njh`(%k|OZ<*y}2v2gNTCgq#Krz0bep1j-h! z+s-c_Nr)OW9ZdiU6ctIggc2LFHW(>Fb!3EsqLUFm4D-AZY6G@zvMUt6qB=5Wj}N`j zv!C-5*~OSpPB>a-Q0brNi_miz(c%gho&am-i9RKFETHt2Oh;W^Zjju?!$R=W5caF4 z4Z#Bp!&nuD`E?*tydoS5QRWj>DGE+)Wq3y<31LVWQ!^JQ@c(=P|5r))Q|aG$viyW= zX$cx3$uNW>XCtDJXdk6769#Y~fFc4!@yjVMV4SEV zJibP1%65JMZ$b?k&~&n?BvY!na>FVuLnS6+k!TLRCFPQF2I0NjeK|i}4g+v6KhGk! zsQCJb{r=KQBDl?XM`lD41WL&S91)@q7r(|8v0KAb-*clhAZ$!9Pb zLlHW1f8id%n8S3Suvbz-JCsPi5V)HWANt_iP=W#IS9f~~D@AE?j170sLrbnC3Vu$* zJSb~OzOv7gEE_|8i9rV0e3tv{2(T_PPnn}3!8eE!c#D6hljkVZ;fky^emZ3#D4sbG z>T)6(Qckv<#8##g%MI~1?1#fphdP8FiJLcVs5EV)=s>`PQ+s?Ntct8mloZX~#dmJv z@geAg8#5sEpdcclV)tPDb^~qr%AEM^V^Iaodjh z$4N{lG=Y*uW4;Y}1;RV$flxD?lB}dQVbYAvcNh!cQR{B9*z@NtoF+<5&?QohMR~$z z)iOqsU3LuRV*3~o0FDdAVmQQLf`wPG(^EIsAjI25vXkFKl~%!O{!0M(PiC8Gwk)_3 zyM3XHrp&|P9|wf490v|3i^G!u;fV-CU_1W?Z^9uMSG$j5i2F!T!Z4x)eXvQbBd6l5 zBDz*ZKzKV(-NXX}@CdJFDI|b`Jl6+r^5M;Pf%2kBMK*C3x5gmd1xv-nC(@#`Qu?eq zHc6%oj;lYM>m-08%tDZYFn^oemSjyqPYISW*zjd8GUl$<8cM>y%CaortLL5d>Z#h3 zEQDeO!bDh6TY<_+NR(~sK;_A%w0PcAkxXzCA1=6reeS(=>w5iET3zBF^EBY$Xa8S7`MG?!j?akA9dfNblFqL;r z$(C3on^XFHfLuO1z~+xzv!0aEm$+&@^tK+SV1pJy>7FNb`J%siqI^QuON5F!g_g2O z9lCspozN(CpSEQK-V3LKUGw zOG$)UKlG_kwOvq#S9o7QWyr7~`D&{CLzyMA%CQs*2W3H|mGz4hL?caLH>`w<>6FP$ zih<*b5jOqS!kRAFI{LLFMCqk5Q%h1=bM9XG6(z3RIPCssZttIlG4-}U1f+RlRFuxD ziXoj36fet>uy&zdK#AsAh7M6=zo4EXI~?X7y|5HQ6K0?R6VRjtmt4-T-{Ut>VrFe> zFHS=OuR;UX0w){~cpP~M+_&wEl7zaP@>2dur?)r-9J;cdKLDb_c;bqfhAUySATWf; zCpI9gK(Aku2BO6} z$Op9YDGptkFA|+j>#5dviGMdzEoCBx(12+eg^o4-oD>vJAIfX%YOe+R@P(nyj!*G6aTsz6))Ken6 zB*s7qhT&2u(UKjYufY-7^jU;yn1ubuc$+TAl7wH}a>en>iAQ^%v?N5fY%Vqqe+X9? z6JrSavW`AeJc!|8-iBSwY@k#o57RIM=e-7njFaIgoKwnf-Xq&zFLkKIP#A(ykvqUQ zRjUKUT0T~zN~=oh42vHHnD$5&SZB@caWxF@xe zoivLTRuJeo`R-*Kjx|LSUyYi6JSI`9Wr9Smsm2B3{W0;i0qlV_6iRf;!m&*rA1WMy3*Qw7;gx_|X)`2KNM#tn9C0z@)^OGL@3P9@F+YA9GcW*E ztT=VDNz0)m`;f0z;{BBDZ+pz%ZX}|?p_g^EI9Te6wY>AP(k+-bM^55u6EA^;SjNCG zmjDJJfhmZshy2q!Ij;?HB%h9?C)>`9RQ%PvSAK5!JlAL@h+GBS{L#R9BBz_2A_zGn z@^Ane3#v);zew@seUbZ&grtXZC<>C3l1A3~FaQI5nwMubWlf}HfocH`LZ1bpzPJBP zg&3zGdWw2I@Msl@icR^}00&-T>fx=-dup}$fWDvWDn1!xroffr*3B-1^L*?Q! z>qC#@J(hV#QAt8yyhC-7;W%X$bP=hAxy z91#T8jaJFDLcm6~wS1m1wV0_b51`o$$Ux0WIl=j6eJ9QX={rb-j!GHACOFu9x= zxNvuF^BtWxcbMl=$ucL+LDW=T67blzD}$x^oU3?@7&L#LUh3{~W1cA7E(kv_dz+`O zOwNH%J5NX)6Ni%EpaekeZ;G5h$J_G+yD7cWbpP{QHK!y7Pr-WH(vv&Wi4PY6gel8hgu*iL>Ey}HQ1oTzmJcP0Rf;|X1!mV%j`nQaF$DcB zs7tDkrs`HC6$`yT_D)7>b%{aL?K-SY+kxIf!7<&_Fz<_}w0W{POyI~-W#Gl+J$iib zDCKQ$^419!?H%ApBcwQ!3-6vlc*7Q!gKeV^CrZzQ9H#d#U3hRdK;;@=a$^Q zmpTByf@@$o#5y%B0OvviUz^vslPrtqJ3K=oagh%RJ$)Q*=fe`~Dspyckaabh?+@5a zn679KipMW6<(q9AHyJ|{#?6TqYLUtS@8|LYlb0z_^pz+fS-3$q5)Z-vzg)s{;oM%f zeUAPT$nORp#?`8yyS1R20t9e1Z2UKVTHXUkQXlON57||;E|!$cLnBI3>5FmdMooob zqC7NYLDMpO3gnulhGR8Ri&Wiv<*<4}Wf*axq_+5s4ZRjN%#VHQG|f*$xx zymPLcuoygZIrA46hl?f&7prVx-77+NUY4-6!!cW8bz_2uB?m8$4{f1?X{ac40hhst zkVu$-Hc^cJ*?R+dUp7DeS_U2zXp5mW1$FSCB64WjZu(XPhF?$@?bT(u<` ztAFR~_a02}k!+BNvr)CC<&Vo+YpJvQ-SijKUG7g$`qxLRhZ>B*IP8aCzuHMxqAofr zgA?#+4p?_FH0#mRA%CJ<4X$;uhMuHgnpe`Hc zLIGGXFAlAs;Ai;EgU}<*-Z0E%j{5{^cSM&xwxA>=Yvwr+M(Q4ix@aBWns7w% zq_`_iW`GwRup|3rpz}g49htm<*Rh(SMCA`KSF~p$9EKzC>tA*lgbNQ#^QG$!hhLv% zvdrK@IQ;Qe?%Vdq#GWpHyu70)TNVX`gHV;}^A!R;xW%R@$!DK)^S@IO@Dnz@QLHSD zahd2MTqEC~Qz6lRbJQaB=Ve;ZfF&>pE0tMiN8cdu5QMO`kFh#mRU7ww0g?2;&nQ^=6&Z9<#)z@z{#REla> zO$_t8n+~lLMDk?QLUBds!2|ZWK-rp}sO08^=3yoa?15YGXtf6lxkO<*v7;#s&#BGsmK3;b% zTrA0mt5Ad`a=WJT*pgmV4#pUsM+A2X;wrEbhKIS=i31e5cd;L*sgnId_KFjCUDjZO z-^gaFIQxq$PVNRiPdbj`hS*bgBm%_-L=1Eus$~pWr_Tfe!U5*`8G+Yf2g9_EQaG5E zgg*Fmiu?vb=!Z$R+;T!xzn$NSRG$`h8O`fmQsqTAGLdaxWs5z_@kGlXBl+*imQx1d zcK&@Ce>MO;*~Au}sAT5*RThW3c#2Tpl`9n$%;||fw9$r@9)Vfe%(e!;dC*S8hwE)M z;~D(gMhu!0VWKZ{*&0{{!%&67oRtD=R(3lfL)p9}OJzf_64t0QE_|PRV=KKY_82MF zEaMs$3LavfL5#ZCg~KHKiPb0M4dE$HOh#hK1>$!p!?Gd1G`>HB(A<^(0vAFfAgQVV zSkv*Qg<{ZoC`#LuD122VX~Hl^^X!I4q1o!#dkSv%v#E6#`0yeug+9Z`wyC{R)1z5FI-D zd{4fY)W#wN(VJ)$Q_*0y2VZ!QmsWA(EWebzqaHNX>Y}d>Y29ra80s!tdjO2tvFqBy~6p6L_7YN$TJCAYsk=Og|TdqAQ6a z{w^6<=bvHs0wJ}j`Y>2xU7$qL;XUg4cBb~+Z7X1`kGP`R7TL8IzjJ4t>gEoFCBfkk zGyUv?-LPY>lVKs{t>Aym!?9rKI#vjWDp`5@4;%TLX@1trT~p8yyFZkmh)|A0b_2i) zMx1iNLPO+Kf)Gv|il>ajKRFQYf?<{YzM>F_B8bcQnLMG@QFmpZy4``$eKyeUPscun zo@cE)_LpmjB_GkWIxeOt#972$1|yG{^ol~AHP*1>KHD@}(O7_EEcpZM* z?W(nMbw+WqC)or63@ML+C+*N2&t>mP$KYaWo|4$^MW|6Sjc-bu2@l+>e0tksDa(oA!ZRD1ZvAV*6L{h^TMR0@zx#f3s z4(~{*$OqWJ8(_`)6y#mwqh%mjYp=oElG(<{z>+vWdR>s1lU1hc2luF9ZYyeyGPK-z zY@caI?m<=q;KL9=l6%?f+?J%H>Z@jj0DW?lP^18ih%nD(c?1u(uyZ@t!UXima+78? zp{O^JPN8)%_5SQAbultGRxKIn(Eb~5Kc&N(Pq6$6fp9yeWrP*AcBX|Fs;!st6Gas6 zau+FH03*sp;&|VsDJb#J zlu4h1n8()g!rl}Ku}Bpyj+)dGLmxS_cOb4p0)5bgGDOfvQs+oU#wU_rDQ5p}tDTY^ zjs<0)An;c(4t4pZDtNyX&I8Y6OxH}%!|8G4HeL@$I?s(b#X24ML|Bza=LvET4)js0 ziYgM5)}$M3R7~fO_)jA=A|@gNi@is9})b9 z#z7jd!w6r6Lx%eMg@R_ROJ-yNc^6pKbpIY!U7G20lKt-JII#$v${q(0z)HAT{!9{* zL@ZDWz)id|3{Tu0q%(xuoAXXmjRK85?OQV>8wBlql3=bnko zbQvTc!drtcNiLgN&YH;f>?q?k;c|Ao$E^|)6)NCGj@@~X%yyFU-WRR9@}}IGs8qB* z6n1cj5yrRjwL}zuWDv}sXGk9Yseo_?49{o40JOy~YDxk^)t}q=VKOGQHxIpTCcG3k zvvO}yF$1$g_dZ;=bT!eXum+a5VMHQiW|WU3hL{_Ad2^bUa_}X>v`ruX4Mw2^YhZ*! z$XUFx;LzxLb)wwT>pMqY={9~v#Xh)~m21<%(Vf&vX`N4DFN9E2%4Pt!DOQz05|KFl zVU!OaT(fQ&yf1;brZ^qjVEX=Nc=~3!8o^Hc?$*N;TObJ$VIt#GN}$)8&VekR_Q2KC zogeh(x~3}39xGR}E2_`G$XAsm5Gqvz_?Lu3l%IvB3Ydx&V%=yOu2zMK=lKo{-^7i+ zf*&#+pNqp&5QcveAl#0>nz*C{PghCQ#f26pOj)omRl%VL3GD}M3KK&s7tO#6_Sb(X za)pw-1r;)fl7vM4W)%;ZfJrC`4kN{@6Hu0DqI6L+wTF+uati_vN;GC?pvOi4cw(qc z+g=^bu$_5=@$ep&OW3zo58UY0`5o+*9N8X3;`!Pk;PMn^Lqm3TKKvo;%o?=)gPhrkD!TDz$WT-cq4!$AqB!@QZx+ZXQiUP4dJ<^k6&QmhQ(- ztDHd)9_vK%Ej<}Vv7L%fvy{!PriEbwc_9;pKu?Y1@q1B)CY^^eHzv;3NdP|VweNcy zl5B`J$}?LAA|tMgDCX>mG(&&*h!gdwzjZnvBgg zp_cZ>b-_`GLSr&dLy$4rFU!_Ij1B9#D;t%BG@Y0*=6%?<6o#R94r)-dXS?Q`iSqbc&<7xq$&{8(=3uJ%v#zV=nZxDdkCEh$vQM(AD)W z*5=!JYg|Q1F8>Ce72of)SPM-Eec~XiFGy8!U`1qy~YDP z2IE55F*M*1Ou{78Y$!{G4|0b;Oea!4o!;6$n1W447;dZDz7?}j0OMv_23t4q&_)*o zmtAB~ZS~dsyiW+n$;T_l`M(dbIBOo3YH*7`LDTiSNtdQ+$74YrOvN{~y&K-Ux za>u^+c^0!Qz9c*j{B+qq)7jFK+b+>wu7}ztbaLn#egVv*vEvsH;M3de*RDi*=Z{-n zo$Cka%s^}t!vXU_$L>yw!w`Tc?h)M%NLT@f zZCeww2wuwDmAe22tuh@$Jr#3V>F4_DN}N{D1iyvd5;dC$t}ligvee}%M)5K{4@WPB zrL#hivss(VB#t!DUPAvgKkVgVxSeZqdq3)|zsL?kWSvXxB^1W_GHifXNUT;6NaH<= zCr=cP+^&JnhT3BrQ;=Yz;4aAt9?odsJZ9<`(ma z5@HJZbdjbc|AtI2P_L(&0Y~?Bx(f6!vH*>axVqYD}X3L6JCV9pEA0< z1)~y&(2)3(w(?Z8pbrj1lindVF2$p93%hc=Kj~~dKc!i~BWCq`9Jm}H%-wl$XXm~Q z{C%ri7#i4QG;lXodA44o*t1r7_>y@&& z=^|*5)M&&c5NzkEEj-{WExQCS!c82roRmhom>@hU1cKe7vs8>Fe_m^DdZ6WkfzW+*XVxfgTZ$ zKuix@xs;c9{6>Z;3w6tcbk-lp?d}_+ehJA3MCs-g(SIC?Cq`@C6?8U4wrg#14CwB~ zoLK?`&;h1d(`&0QDkIa&hU2=~K+uRNt2LT121Q>zqIt`rltlw! zHv-Mk#IGwakZu zLVrRjBn-(WkT%rYT*yjuWwDzp(4+>X$N9+??)8dk55P^Ru)+u zJ<&1?gOD>@uM;f;@8vgkWICJ3wZVj##WF;jWE_gL946hD+T5_sl>vdI~gnQB23?5$RLCr6_P3}hYMi2z%M_e zmWvVzw263Q8$@hByxm@l#XWT#O-klBc%tfSJRV4E&;$#i{31tihBx;}n6N4GhkyWpC8%X-&>g z=hi@RHc$EG&v|L`IlpI$hsuDRa8U>`)BW@gHpE}JyeI2rDKEUh;v`DyW(n-a^|J{U zuYe8>aBV>iL!tobDOjR;%{Uy9?X{s)Giz9$NG4)xka%Jj)<__E-72^JcUQz&1AButEE9|8R1DlUWKTKEm@ zBR8uMn5g;J6sO71Okza2O#23o!g()uzsr>q@9SY$1#@|o+#Z15aadnxhdF9?5(f1F zgB9hvb{O()e;&I>MW&bSYFsF*$T0)3oa9~8x%rv1ZFO3(lj@!6zX`wy7f9M0^NBo2 ztghS$gr+nzS>kQd*)MBFujXwem@!XT_>s)xOdz026s zH^^X>So09xBAJDY14465+KJvB0CRlSPXR76mlAjnW?;MQN4P_4FblOa&R84Fk`Fj9 zPwNH>3yDPUr?4}MexD9`dq59dz-%xt9R@)6!!B8we;J>(q-D@su`O)d%xuBd4a zAYd*}118}~fNJNtCv66J&yEO6j{~n;yY@4rpK_-dpFj8;RQ!s0v7l ziZa0SO<9f42kI4V#ropxN^VJY7LdKPu%6PWMWj=DJUaXD%B}foOdUC3)af>{{9BQO zVTy=fbOvhH^_BO@yVr&DPGR;eTQ=KSGPYzF6y2c3$}^M5pqtMe)CqcQ5QXOH`(KcZ zfaf1`>+A`dg_V)L6$mhs^H5E9;iyY8$rv6or}fEfD96n#n26lHW#O5*&if-jkDhG_LO0psu{ zB=*SzY0p$ETJEdvy&eorIte6pudG2}Nn9Ou!k7Tsp4dEzVhd$>?Ll%+l%^#WR?*NR?JEN9|cy>#1y?4?;X(NdoX3Em(y9vUHh5a2$vqh+Yd)! z0w!R(06lOCHvNM7G|k40LFl($ymr5h#2mxqIq8GzQ>TvCg(;)BD}zi4J;)A2i~J@V zg!B`d6(wry_UT>$<%Pl=`H@alJHfrvXSn+4`1I2H9^;0mZr=QJ_z5HXSy~vp|lt$ z4@1w8(WmevI;c09we_iu0PtQ-QwDb6>MgfH>1JMJoLnjY~_#MDCumQgx}M6s(9~F#|9F z6Exv)pk|-|uRUh5b?cXF+wOqJ7S zt>|#nZKo}e7Mg|?fLZa{hH9sngBH^9wyYSmv*Q&h^3ga%Ja}0rBfGpBSp;e&BZi0J2Qr5(g~LP{E|I(-0r;DQe<)j1 zaH($PiQ#Z5Oet@4s=nR8k2dk+4cs>#(%8$0`MC#{4+y=7!nQpKXaGY{w%x12VHkmf zc0<8%=h?S1X>5{o6e1y~&d%4Z1{h?q=SZOqkh^W!#f(={lfP_E?IcTZOGF+_PM&BU2vNiN2z*bC9P&L@s#=t>GQ6^#hH;40UB}0vOVAw2EcQPw zlM}R$VtU!e;mrzo7XLhZ zcwb;Yrq6S!m0ZPZSOn_cci}Lm#OP945UfHkywif18{~|PWh8aRLI@1}x(3^$vudn- zkmb;Cf=c_c@A6?-UJy!hilwlUL)c_ZWAuH>fp{KmmC`F7Tmox69`?Er*izCj5(I`a z9dptcl%PWxlSZAV;NkQncf~20p2C|$U@_}j^T5kw^MI^>bzV7H94)z1xf`_J4t864m<)AkZ=J!*Ln85G@()n zs?6ro)x9a}6B&R;MxwcS3q@{t;IUd|P3uEsNX*L-1Z*txn$?8IM#v6)l8U5|f&J8m z3|lBt?1Mzk&)FnG){JKpd}f!h4-Uf~I7Er|RGiNxD%qSVQK}dl61Ggy6AuV&CGjG~ znIl1_D_yLZc?+jnLvrtk6|PWl_2u7E_BcMzj^=EhahP(iOR`TLx15NB^o)QIwR3m- zOeaMka0G7LCXp9zkQ_tST7_eDZfK1>{4RJfCph%7_qYl@@c7CR{%N`WF@O?$QXqnL zEjl{vA)hWkDeaCJ&U;gdK~HgAC_DrqY=LDLaQi`JhLvPCP3_a-I54JQ4I(b+JaLHN ze7mCU+qrKG0%v8PPzar!2Qr$Kmo_2Iz7mpuhK&%wQdkCsX~p6^hCf?NKrNO@M8M# zF%LLVWDyuDp%;mD5@k8_{Nl~~vr9lZ&g^Ax=)#gG(Mf^Wy~0opx2d}dUB@^k2v15F zo+%KzMr`THZNE=xr=M(1S#EnT`4_VMig`L#S4rSe_}&6Do06xWx$>1GyuaMyswlzC z9~X#BI4E`zc)n_pz!mqy2C)kRY+9kJay0_+|Rd%gnHvV{S^p!x@f7?lSAb~Ib7)gz#H7y8@*(yx*@Ve7hl@#AW%fDs>ce1 zNw)oZ!W~a`MFWg^wBrP$m%ZpI1QwJN*q4Bc3hjd3(mWteo45k5g*Bb0*WoJ!7E|AStB{6&)Fm+k zY{1)*_D_#QWM7bb;;YMeYZ@yO%YJr8I`YT_g%X7dfv}wltbCcn8`ZI=fJf*4Z{v}B zqI47CGFS@9DiYYOIu*f~RjMzA^}N6SrOR@~mr_SdATJLVm`xuSBGZ)|#JpgBeqmR% zN~te;(u-In6afm^ylRQugL=eQT(hLsW-3+&9)Zp^p=Cer)yDJ^JSaL9#0OY+1UzPzI`z{&5knbvD`tEZ^lw%Y z=M}gX66S8EIHMyBRKpI#Ueo57&tjWj$SFEO!Wt-bo;?rLMvAO6hQO+0(=Z|NAt5U| zukA=>l;bUiSX&U2+q!HuZ|&E?;F_R~ur2s0;xV6$-g?s zsHfy!l5VuOm1-8_sUg?eCRsM1H7#fRIRR+C^urMJGXoRwj&b>V3w`D>m{TZc5QLrF zBe{R=qzB5mas)2C8y<&Qm1)vfD}M7^cr0nzR(R6ab%|0Vz2`yjn0|}|3JV=9_DyKP z%xkuqIjJvN$siOxHE+5-zTz4eLZtc158+O8uzN`^ML+9I$#m=bjhxig`sml*otT3G%vM{bbL`l)2-9DJA+ zk&AekuO zdBS&`9MeRRsPFD&vBHVNBy3_tn#hVlZ{BxLgdxYZ4^Z>7Bjxky*jJQOvjQdS9zjjj z$8t_+ep=SBj*2H?OwObYvjIJH_CvxGYf0dty-JQb9$bO4?RG-~vud!NEl`2A71kw6 zq(nkaB?zE_iTh><9y6P3>#}vAOOgZ`_mB0*R%jQf!HArgyXyuSn~F&667;|j?WOz~ zcaVG54Ct3TIS=L6V(b zFUvUG65-MaGc83~|OrVv;nvo9#gJAJz%>^8oIP={;yGDI*10j%1@?S_PO z5Cd?C6%|I1eGfid3_UOd`>!N|^*dE>95@njM@8ya4`RxB8}3?!9>~2$=QicNNF?eY zq1eXHvjP%qa9m01HpSs0FamH|-r}e~2AXekRmB~A9IH=DRp%)#ih_!(%~Mj&T`?^v zXW#2(5o@jtKuK{Z#~BNDZ}4R5_3gv2XDaa|ys5;Zlrs*(Ej_vJEWl1McD9l;^E?GB zWiaj*sjzpRgD=jGs}J9TGOdl-?MqHUL6-Gh4R^p#6#~umNXbS&J>sVv;1w8`>_;BZ z;@pVe^>EHgIY6`ye2Yh`vah8n9KV#u>!H{Z?ov_>&!-4%!aBYTO&FCx%-*|sL?jRe zAyEVLDkH!I%hodLtJL(Xz=t((coQpkW1@B))jKIYgv`KJjGdQl7n1XZQJ%}=ZWQXpGk=>`~W(e>lp)Ae#8sg*F%N5JVl2_M|~~jyipWkC*PC3I!RVi zB;XMhIR6EB1tO?bXb!;OIqc*q*ac$&jbRv<8rx77|59icHwsJ{&8^I9S-s4F>T6s8 zH6f4y`hURlD1$B(5H=uYS!d@c9?XtzzL^+afjYbaF$6FTD-SAFK-07*Uwm=Qs(XqB zsv^xdLjEDz&q#|91vvm%R-^%aP;Ns^v1mJvTXRp;p-)cRn1KYACLeND2?}k6y)H#3 zoJW;iqR)LPsP83FO3a;kD_7?V_C577OM{eKwDLrd2kF0Mt3L{CQAtua3WH&F~=J?-9kF#s<9 zC4m{a=!<4+c&7PcjF|W)&L4+;z005m%be+0vhw$VKDd`JM~qC+FjQ@XRYf)jc|uNO z03?#E3<%|j>btmD^zbSKPqEMEkV8kPNOTO^FJl8v6Nq^2et_jqbE_O@YI?M$W+lDISPB97E(yyfM@^!9C?Tv9<#4*8lATXdR4TVuF;cc z+iGZK6g_c^t^^-eJ;=f5vSWiK)dI4YFUopCqb#&snS+GfJ@3EIWhHa6MWlF4OHGRd zp~jy1;sjAXyQttpxjX1El4QlL?27Y~Sv$_i>{y(#p;!g5qI2^|y4LBbK8llhu8>Jk zcRJ;dBnh|lix?6mqy+3}$a75E*G48Wgp_ZWM}7^zBX z208GHyQ~wyN~IAdOb_2>3xrUB>d)97aIRaBPr!(oF_?xASi!_dDoWkPr^S+IwNuVD#K>uw_y)1!#jzgMvG{kn+IE)ntTk2g2_umNw z1BTg#>draUuSgoE|MkQX(pHgT4uR(17E!@g6RN=XF3CEf%#T2|)a{gNKm!j}bnZNq zqOJ>szGcHr{)9oepcw29UONnBXh>-K_u+QGPfe7gg{JJN z=z$Q{!2qoPIgcXq9>Qby%TNX?PB*k>TzP<6K3zR>;4fvlvui;Fo#~&Nc(dH47dJRm zBQ~^A0r;{uWuIqdz|M$Y!T5LBUU7LGl>LgLo&(UiXC(7JPwD0{H0a!U)z)X3wO(BS zO3<$?UkyA@%)&%DJYxH2Ax|Rir9M~-`5S1zCT((q=s^W)>U0?m!g&#A58cCde)|y@ z4kGx7)Ph8uWe|=pIO=z(L#d!%iomeED_Q;04$I!f;n|{uVI26TFnHl8$vtzYBdaZ31#D-<1zf#S)Y`HVum*VM2$mYW19SJw`*e2$K|i(;CVj6vW(ibY zT~`vpiQ#g28HYes4#h(HhAOOp+~x~9yAGwYG?tn#ft{*V4$rX~AlUX00sM+9mLWk6 zu>wJ)6wxmDb(Q%tFi5ion~wvy(@1Bsny(q*2^dno2T9birt{GA@MuQUT2Ku7Oov7D6CYUNca<2ZiGS=LU>9Nyfk60tgRX@wlUyqF(fH%CPI})7$g;$ zvYJ(258loa8ozbAkh^)K0YTl4s zT4kiPP;6JIB>rKyuv*P76dLR{l-J&4RC3b$t^p+#O62G}Ryb^lODmFlVrwoI@(e&t zQvTIBl-qDeXV;F5Waxt!u9s87v~U)k`Q@$l%@6bGN1PX%u)i?t`HrQ-ZuESmY@2s= zc|qNf2?9gulRK`WuDoAO6$>C$1c%a~K_3cmacAqjiib%{v@|XV@+x%T}okAR=-+I#KL670Oz7N^oan-}$t~ zI3kCB$`4@gTP$0{sMBtANkla|{Fv0{)UZfu@s&Oac+?4w5}8)aLD5_v5X(@r8;8`c z>xoi=^Z2k@qG9IX06VN`^~Ea{%d_{>g2EFi4)<(LAL?o4N*iXJ_sS@beMH3qE3%)c2{VkQv%ONmSqp8PYepCI- zz~bA$?@(l_NO4WV@}{SuhstEPBa z3FG?Xkl7}mx1zoRgK(+A;qrmbWG!ug4~5Ku#k#*Hm&X7sHy*YLF~VFb(I{g&b|bJ$ z73{*HTIF-k#Y)3%*!4>zjm={NunLA?2t3%-nfs6U_cAPxt;f>HY<8d&@)fdF=`1qyc7ABV_GzOT8sU0Gis|0#p&Do;q5O*|M}8ny-!YPrGHo!J8^+sbOPiM(e@vg5CUWytYRP6jq*%;W5sb`hf| zZ_yf)(2S?L63dK4S%1uX0AGbfWjm-qFOygPVK8UYEI249GSp=|gZ9;0Yh%$C=({?4 za^*A-h~j}QzWyA)y^T+y2bMyoOzzMMSO&{Q)>TCL>>a1z$-GA__3ZW|GucOB4El%< z@NUR3$(SdJh}>Hf@Q5QKs6i1XU+1^4`BzwBq$P|gZ_>BXrcjztj)N}YW=cCxzLYW2 z@KPac9{hl};aLNBhv%CW4$ZjihtAZymJbami4lv5=BekGqzI_PfPk=R?)5~!m=yAI zs75(46yr#>HVrKP}i zBkN`7!k>pg9|~4hdBUd6_i0NVOv4zAaj|f(ii9DQpoi%zKN-x`4CgE;>&^+@L{txV zZh`~E!EIhMq4ensWZ2BFk>UXf zBy{$(b`5)Ep&~)Zvjj!iq^HSUXHoVPwzE^@<&73*b;;$>&B6ZHKH+nsLWU}e@F z9_0@|=g<3~2W7NH*(kDDnQ?mKz3YBnzG&67V9%G2=BdGfWaara$N}}{l~dN3V;ENb zb8il19i}x$O0S)i3^^Jf0XZ(|@BxcmP7Z{pEC#pm$adbBF1BdhV6#mA*8+o3JPfbH zivz?jz^+!-i*3exN(ReW-yZl>i>VcDZtUa9dcNew*4EQeiVDYcOo*!(RSIL$Q-5&hd3nr zBO+0mcFMsVZBd>BRZ9$sbq3D5g?e{GAJoOvAv@=ukhrVI3Bv?D3T+B`keoNZ^^fih z3I2*@u#yj7{%Bp!f%g`E&yNP5`rBM0fxm@FDWV#O*^nASo2fr-p{JVXgke_jqFg+& zkc_MX)&Y6G1PLtfOrJ-uJKlr5n}bMwCY2!_DXrL}lly=(P)-7br>BSlS2I1USWuf+ z3tR-fN8lkCsS*#tTYQ=;Z0$_^Ivtd8@FW99kTpRd4+CgVE*SKVc4;m6jN|CZ- zLIzi}NQ*1Y?3Yd`56J>L>RBwqHw&Vgg9 zf_gjaA&fwuI)&1RPhTxtIrc4@V_A4fgsRYdd7M7@PLsPp?fN?^t6c!EINt84$Oj5` zcshJA2uoo`boRDUl1)>lMG|X5*W%R4Ltz`*LR%BEYmiN_3wz{R111S;gmoqoYOoeI zy!5x$ap8%8>FHXI3bXN|?ryDJyNkZUp_e&0I8mb)K@%R}=WwK?`cZ`}hcMSk34r z*t3R9cfxDxoJvm&4#(XaLTkMc(K`f1u7|_$j=kf9*XKHy7jua<7(6l1D^{xln1; z_X3|`Xu<}`MsG;^gLGn-{TmlHQ=QNbS7zcp;YqQ2yJiHAI~3;mVq4N}VURryX?tswf-Av7V;T$Wd{xdul+=O!=cq!i?^-6mljTb*)M~!f)Z4 zOQ>H9D`5rpm5TzoMC{m$WOsLCX>JbG+tW&mn`ciUd^1;Qh=Szg2(kvTGDW66Wd?3d_RAtX#Af#m$ zk$=OxUxR}(NIq1cP*kA02@a()A|rep{Cw3kPj#Y~K7r&2+=|W7_yL!9o_X9%P`*Nb z6@?Y_6z#^2d|O;w9_*MWV@v8q8j8|o+mk$Gby0`IS%6WPh8JdeI5fc!40UdsAZ`%L zLP}HOUB{)%{lY{|lR{Y#3!w%FWDAC!)PiG}Lvoz8aVdloCre63CdBXBvN<7g79Kk-dXc#hHjv<=H31K zN!XVt&XADV>m9?rc71pPX67ZSugYA^z{_x%2`x%UHg1mI+-1RVJv)xT2u)ZYGhJh> zM!ip#TtYFBf5z)~Q5mOch{p~^o??#-*Okz)=R(<1QW>M%zfKAPK6&w{&cTSd)>cF3 zhM!vF+JP{XOgoWcL`WBx!N@{7o@1sZ<#e)|2W>bcKAjL7`qZ@Na{Dj~tKfysozR?M zcEV;E2q7VNWLanFXvTGhSTRjl0|ynyiKRV>5VCVDow0Jdl5jiUf(AS&gR_)0lb97x zzoHI212I2sK%M3%jGV_XO#8$m-|uh*uzLWOK%H+NewLMkLcb+pW13OLGG2~1#@XfD zwA5h`k4@a@7T8QlY<003<0hV|j|?uJk;kU5b0(gq)nKuMyBgI{w~Zo||jehsv(n%#swu*NuO>O@WAAypRut4Ddu zQL-DeQjt6`C#rEEn%xpWYyAOEOn;gDuu?d7c+eQAoKCb`1{GRR@>XcfH9l6tp5 zGeJB>p&w80T9b>+VRf27bU>53^zdYu_5;H)9hR6R`+#Lb4A@(c+O} z$`uO0AT8N^2K=;Whd-9%={8)WIG`sGie*wtGU%o&!|=ND>Lv<)E^AXDzNR6YFRGc{ zbkPt5jxf-9u$Ft`ny-@hum);0QUp#{vMkpFa^pjtRTJrjfT`XyEfg$ z+d=6t?t0hSZ4+ildUVIEl+vO{iK#%%ym`V{YlCnE`rulaf*-uijk|ZJd)Z>C%^}bw zD~ht&O=9>dt7Sg7*|TNR!FQeU)Wuujbydezz&>6Y;zrNvXi;QyxPd*bD>mIQiw6;G zVPrd%63v2gg^(V50d0Dbcs%!WAWC4_o~am0Xs*#kDq?>=3|mnaNvM<%}>jgT1#1;MUF!+X-s9XD@+mZ(*DZCAfg_Ix9L; zTG^uPqrFbMPBjltTH=QPO468`f{66JTZ?-XT0Uk*#^#zV!1=+`blq80d#$OQc=on?`*X9-aq6Z{8R4tFP7-BKmrqz2n3{ z5-E*U1eep-oFAYh#|w#q)<@Bi(4#s5udz4P%iTk$#Jr;`XGBr6V)rh{` zFh<}L4H1>tzV>B+i}_$5FT!3)G`D-h5sL8I46sp#p()ZdfnlB=BZkM+$sC%H+`pb8 zJkPmsH7zb?IZ;X2wJoY5Ofhiz%+)mHraLT|_49u*1Yc%HkGKM-tj2!L#O>dZ886Y( zhFYBqra6?6PfGDiY0WiR%dJ3`>`T^c^6V5BoT#ZQ2u1cC?nz%sh(4K_Wso-u+rJMEeES+&_Fn+F;kWqdlWaMJmoRGDW29#_D+3U}POSJy9h(iF^kNAZA)JvFPvc~*LT=Y@J2zjU zPwlpzo&hEc?1c@$giOCF1*L*|A_My@Vbvu6=P1m<){R@@@XDOD|?6Mz4m~c{$053qQmsw{rN`jC~b)U{D&`%N0E@;KB6GDkyP)qXl-u z8Ys`owt8O%(Fqk_6w#`M?sVR)Jz4<=Tu);_80;TPGm|UyF zg?nLe1+_j|oL)7hL_^Gj9(&d@jajxExt(F)5^^8#A=JkR;O-g^EbApdC}f2)<$dM3 zE-4BxDJT_Ff=yf6E;RFQR4YQOx~{;IXe*Bg@lq?0VymYiT6d%-s0)OlIA-4Et0I?u zHO`*BQh1rx4HTy2AkZMYT;ar92=~L&3gbZhGhVri@4^m)!^%8W)61@o{D22M_%?Uf z*;S|Rk@N|RYsx)M`|c_XboL$~245l2PkYcgIz~cn`S2x-^(rmm0*GPN3nq!o3RwRJ zPhQjR{4k#zK-Oh^fnSmZp<`2n_Eg5*@FFDeWf+9@5Wp2|0w7dL_l=G)IKdqggj;ys zhcz47{{o$zBe_k(<^`SIBWV{B#nT7Gdt_1|9#+ZHyZ*&(;yxq7@Knwxoa^90LFMYn zecE9uTsU|MwY4w=D`7eCSk?uYF!z|{{7au8_h27H0b#@^um|4cANOAH_1r_Su?^?S zV8y~jH3*$*Qh@=9gz2MIG*MJs#aGkN{@F_@yQ6wa${S!R8ip#Yvd;J;0=Un(_A9xP zV6>DaAt(1Daom|@rvqHC5Z={jm0@)5N{Vx0v6wn$Rjp>c%p==UC7KwbUl8BI_h2WC zl}IY$hV-RNzRC>dnt~|Y*YFL|UVP~P1FsjISU1I&F2xJ2B_!aHTXKDsS1Kt9xRI&A zGPwS?+~Pq6me0UGwTC@Q6+CL-%L#8Q7%xzVqi`3m4s)Hkyauke4R)|_8j;zsd!=Zv z;rDob0^Wg{7XZ=vQ3tq%G7w(2vyRcZ^|dj%ArNQODvE2FI|DoGPX&an4h4~cxgU49 z5SGLF)9@y|^9gSaL&0o%e=)m_tw8&=RDk?7!(#dWD~!NScoBZEiEnR$O~93aI0`f| z7nDg_5wSY}J)wpVs`D`ehP;4+BhB&Xi2hoHDq2{R7{;eP$XpV9Q;7Vdy|pk5Um z1`;0=h_fS5?I5c|xF-5Ciq4O1Wxbc(eB?BdNW@79S%9rJX+2xq*3MgbWSfe zSOGYWIyO;C6X z87Pnzv@!s&RV|m=N{qol8RYe_2CA@*OR@<3xf0C@JneBs0S~p|~=;l4n%Al4z%W(9ev@QgV>X@5-nh zPC<<2-z4k1AK`9gA{FIJm9O{nHJE~{MaTO-e5ejB{&*`Fw)ka%-@3AOLmSC&o;H^Z}1L%9NRM4ijv{T>E?4!2+Ocex&5jmVNv za(4wn2ZP&_96wU;`%Kn0_Es&{m>)}mkKpx66C99zfIeXqkVjhfmO8Mw)ll_dVLER%PrOTNFL?NU74>5I*;x4X-2_$xzbaBhcgD_Sf z4haIs`0*6?z(Nja=n*B!epLbwAp;yNTC-Vt8&1^nHXwGSi7J6IC!*rEd3|eOXgpfDov<< znC6F~e>QC-$MnaDIq zVDs!QsE}JT?BW;x@}D}agQD?)8ZI_qHaL6AGFdKLQW|jEGdy>5c8+4ZhEsxEXP}d- z9d|}guAC|e?VKEeqfq0{2|qSER}L+c@Wh2ex+`A8%!OKZOc} z^o-lMloCwBK%PRI*(u;tliHST0L~zFA5T%V4^dY4OjPX^*(!wu z>Z0mI-5fz5py1)`xk$3|Ypp1eSv8gSK|s>rP_FF3GM^Ep0w-!(u7rKy2|>B*oCWX_ScF9EKTK|A{e&m=gv!Z#M?aH= z!L?6`DOjU5OW_&V1N-2U&d$GP2A%|z4=&7h><8v>J}8k}dXq$GG~falsnF~b$7cne z*{={72!AeHUuaEa;1L+Lu^qpHOZgp~)25xLF7}k!Sv4zenpkR^vJ`Z|H*d&kstM4!|l{ z4TIw5LxNO~KpmdBLAn>HF};-BN;+TgfiS5cn1FF;Fgr{6Wf*}Gc%#B!a}bUw$YsS! zZhXjm>%3eO8mUO7feGwx@>!Fspzf3WE3iViZjm(wD36HxTAFAA~w=mX|w8T!GLd_C>b$$#$+l7>60Fiityo+{;@!H*D{ookm96 zUzBq4lJH}3jjq2OCZG<#g8lFgY#rw6ZLnzuE)xFMCj%Vu!eMSvu>+@n&B(^;ho>|XaYl`vK!iJN?MQ_)M4C4`d8sfxSXlY^p9JFvTs6c)WiuO#NG1w1J+@S2BlJx@iY+z|~@IxyOa_fho?i0m4 z1-s!r_&x0COh3*9Y*s9{3LekywIg?<^)MxJhu_&XmfP@ea0vE5Q^cELpy3Y%0Lx$y zs^WvG%l4KD>)KucYhi_~&KvJZ6=1H&Q33e4tSx)6B=y`H1p4z7QAZ*%#PB+o8wa=` zaFCyGjk-hD^Bll zYJaSD(>K#*_zQtBQO0HjktcVQ(%61{=(mBB*4QaQ)hwvQ5YR5#!~=)n{+kuv18aHo zZeaQgR!5yKFFUtj6vnu$&HFFI-sQamsfJt$r z0gY>6uT=I9#BxGVB&UegAff`pupEZrN*H0VO1p=A2+%6xL9ZmgFN>LAb{Y5B1_p{m z0%hbl6*RHCA{_CUnYozT<)EIa&qLseV6W@u`?lFSKibNY9?oqO=NUIgzXOc$iwd^@ z9)vK&BNN;KQG*HN{fk9A^|G5B3exL13&kMo$*yPC08+PbMb+65ZrXrJS?fc^ibaZ- zA)7p$7iKpmhows5Z0}QTcIo~m3?+r z%`BY{A4`~c8vI;& z4cKb6)AP15zLov3#^h5PG!bcId<5%+_3r?)%{FS%)Kc9MdXMUzuZZ54ce*>1>?btK z=L|s7pzc{FHvq$<)`Ez!Vk)DKx>67$)>jjssA1Q~^Rz{sie$z@`Qo%8CuTMKaCr7) zt8k#4>-}(v+ks$8EU%12f&-9$f%a{g5z!)jvC1i-Isq|ftMDGpD%6;PsXiE^mY<~E z0}0gBS+nw}ywX#ut?z#ByqenuU%RoxODo`4!rvoVm-s0xhXDFylf)38mO1YQ&YSo> zkADddZjzV85Rnuz=FU|rgyg8QP4PG7y$;Zxg+T37M}r3Dq25a?BEMI3Df&P48X2&||WM?*L1 zS*3_bb(B~qUSbKg;u;!4iRbR@4rW-Ca_SXMzsd5A=4czhJ#Ckk*tMBXDG zP=rq2`Y*7~&ELk8H({%OjrD54R_CZ7ge ziWP&N1iGPxXsn`5{cN>~QWv|JAo7Ug*KYC+{9H1-NOY`N7NHXr@e`>1EG60XWX53@ z%4G?jiPbZS{WB7HPTwgVs_Netxhx{8n-C=c8xQh`H3%F}%f8Zsw`p9}Z8CU<@MDQ! z0Xlc*co$Z}0CR)9D4u`-qH`F6T>u0B!d+w5^AZaaL~zu!TeNc}@W>_5An$R`07=1D z)2|H)^W?qOqh^LZtE`pbN8?c90r+{gA6-zKUycPo{i}oGW_7<4w$m^JYv7;O@RcKq z)J*{Mx$qn8K$arHP&s~4-qB+TLpN^&k_^701Y>B|RYN+@kb72gg8ItK6T9(>)#;}B zd2bIS9zbg%UD7gyKx~uJ)Z73Cj6ax$ zLNB^Tdh#H=0^YV?MfCSYHnox;0Us_OS$8qjebzSj>{7VKqu2f7hGnP$c!aPT-b4U3 zXjO_wBxR3tbH4(k{Ob2yJqCy20UJc-DTd{#KkL$JgVF})mR|g)&X%v_ymYiv3b@P8 zNhpm>GUFd$XC#FCwk;s^F5C(WiM0h0xOv`BT~IVv+@Irc;}c97(h%;^eu4ZNxnmd( zo1e4=)srQ0P3x{`A(_A`wctH%an^`E|93~2!R@W-7qHx zHNX;uMuVt809BG$S!MVvK;VPn~;G47=Wsc=?I}|wgLFG22)Kqv2^3JsO6N@QNfU*(64gf zEruqT;FA|>=T}0We2E)PHc`gJpOR!=6?avH54(R)ZMxU0k0Ss>3?CwZDsyGKOR#Ci zPKM*Kc(H-I*d$wJ8$vvh(1fQfdE|=;+4Y~K^F4A}2Hw)$(L^2*ah{u&g$^Yf7nFyl zyq47}QFz-j@8(tWp6#j!nAu9tgPe04KYET%5B6Z(gw}ovD`}6DZ@~qy$35z0S3$Mb z=ZXWKlRtq{*-TwSHY}#Z*J1N|zBwQ}xEoN1UEn!smdLZkEXYd=lUn+j?{5=7*uE^^U5%ye378T-bQn5M9AXI! zK$*+ZtwUakqzTAyH)T>~N1#dbofkd01ju|j_0kt(-Xxf=2hv7Q!orY5fCAq{O(nt# zfb4b}BM&cJ2#P-d(nWSy2!5sHfcz|sz-klLlUO~x zo7S~apw&Nj-B)PzU@bOcK7;|n+7eiY+MdyX85o9ULNlZ}pejU3zd-)1X01Vsz^+pQ z5G5Dz$a~~{3VGV_f!xxcJuW6%h^)=QCH=sp-0H(2Y063)_8SVN9fr>20V-A<3dJwg z1XvAk9e0LKuAHhQG^3k$yVrW*64n*?T?_6wL~?NIVb;o!$2LjK%`18BFl6MS{l7C< zV-1hJ#wfI4gn(*9ADdS)DQU^fW^0d{Ct+iK5{Vmw#PpL@vJm%MpXxv)D$*gN?>xZI zf5zSiaAS`v{t0Tf^_g8mAjzD3NYb%wtNJ>k!Qo9^?h}(k12q?HMZxsqkC4BD6%Ond?h`0|VIaJ}vp^PL zd^&HAilubwXh|U8!4cuHi3pYihNMOhxDCFBb;;U|zBZehCyHM+dmu$gJTXHM z$a=r01Xn5moqCa|If&GkASK&;F&%z~G*9WMp86Ar&GFqq`dd41mmenNc<376?Y!_P z*JdQ`gly(m+{6~RAw9v8!J#Hkd%}xIW{FN!$IqozXR`4 z3U&}1awKqQ_v?KA6fP{Wj$KYp9ZhS$2tKk(U+10C+?4}RqL62;CoPaGu&YJFUb2=nD=7M3Mxg0CR-=ht=kzS#iVfJmh` zs8_^B=v7hLa?}zP**|4b7eP$EsRUpmNklx+m64{*iNp+)!edHI!Aoy4z_XM(KEa{Ow(2Zv$Uk{ZC0S=q`z z1x@bXW>J;Mwtz&IWh3Y#X%fYjDhHIG#;Kzo#DO%uB1&;l&Inn?2c!IcfG-Ij{Vn*g z7FGkadMG>xMToi`CyQ9tKpD>MUfnaJZh1*VnhwNJY>PCRfkES>bUiPrAxN@1{E@VJ zyXDWwn~K~Png;_jABn71%xMHxWv6UK*4%yh6p&0mq5Ny0-mp;>?IaPR%i6(D?L0 z)mLtn!=@@+R3tY?CpwQ!a2O_rVS{^5Xtps6G^)@GLuNk%lW-{jNAiqGe8zGZf@MGx zj#~a}5a`5eN&Gf}Vh$cCMz1N*aLK^q@e(E+AWcPYZrupa^ET9LHt)Km+H`SCK1|+b zb8$?=`&)VG7{YMyG|a+&@SzXB-r{{xyrknXOmGv|z_{G+nK<=C^em%iD)&v%V)4-jH7t(*~dm;Ba~nW`k@b2Fr6oXDcA%> z7*@yl7$dO1CHYP3Jor$$zT~M6#A=fu*`ENBc0QEBGx^m#32t4g6xK)iZPvC=vNgr2 zsaXQV88^5{yOz320!yI|e_yZ|@&NYnDGb0Z5ZR_5hBcz*6_NJO!W=w0!f+pBLofrg zqS%^F?pGK~)JMH7C2KAMAlH)Ac#(58`s#4Gin0UE_l&bY77vNWo7RlAf{F;k(mW74 zokkF7uK0=!$kqhRNR-vIWM()FWBBk%=h?qbHR-_0z=mCuJyT+k(*Yq+Sc(s`N1#M! z_g%U5PeIj$^M)kv((pOA&+GyTWVk)$Bd@>^lX8F=Gqm*c_AUev1Agjw5+sZCIifgwp(62qHtt366-wrmHyhE2m3!K93H z6?wPKyEg1|t{0%|(E3`2AsbkYym`Ra-Gl<@aQKiQ!N@F|p*N8i9mm@IIwK)1JHM z3f2^?LCAn?95`M%H8IF(NvC>}k5AzL-i2wSi`o^2QDTn!0#H)A96&)U)X@;j7qb(~T$jjZBx*sv^8X z#t4~HOK84mX04?ln$v&o;qQ;I)|gal0Ll~ch9bL3Jh}CALZz_k)Abbo4r~RH@ZL}mI4dA*LW2riK0V1?e2ux%;Zs%2LNu1Rlu?(|Pvc z`8N5y>GH=~4V6EQCle~i&c3v(hY9o{142#wX1Bnw41V_tTewXTKe1@0&J zNI@#`Q?O4f85m-tk*j9QI4fXP=cl=JOH}{`>T;}59X|I^UWdR_7K1Db2)7V#$AiQS zh#80KRL+MQe}LOx$6H3yfED1u63JaZP@q)6gToU31YTe?f;rj0R8M)F8D~e5UIu~f z>_$axUU;d)C6pjw;41h^%QDX&t>-FOCyGq~Kn#BY!2bzfZ<90P>Cy#;pwp(5x4ieL zShRlDj5!RC!d38;tWudo9h1uAhq(I;ICE~RNdifUKeuXW0ttDKavr|FO_5n_Qms}* zzl4?M0Nf}&D=CHs=T!M&fv>@j+VHr_TGo<~S|jAvldp2lQvMOf;f)^tZdRO|jgngc zl!kjyXp0Lnnzt|*i9sGIv8II~*}6PwGRjctLZGL-x^Ba-BI`sc!qakaWrLGWe6f1KmeF z`u=Y$uoYRCoc#Jpck$I4~j?mFAZM3)Y9K%*31P8P5`!aj|>7mm~oqe zJZM61U6P?8TO*c~MBac8-;uQrGcxa!8{~h5|2O1!!eKb9EJoBw`Cts-C+P2^ub)Bq zhs`{-nU4koqCPoMtWRx6v?Ua!H5C2N^d`>Az%DU3ABTD}J*A7fa8s?FrlXbq@7^$F z&rR^Ln{w8|cd0&ZoiTk-Vm5EN#2CO(CwEK)c0u5D#2|~Ljv8TT_-~SkeTaM+D4h<0XK}m#L158}e!{%JWSQNH7%ahHvw^sJOH}aB#WLqNsJw>M;9l2)i z3gI8!JSC8D-%@Uq+vg+jq{{yUz<-60VF^q@picb@U~(ygqXck1Oo~U}Q;VCJrEpDC zRQPi@m?`_OnFaDt3EUXkzv3!qaEbP?4c>%tTKoAf{GV{{q#Ut)1V+t9CpRKeO4u51 zh6=fU1_v12z}0K`@nmpct}0H^KG|LExhmX3e3aEcyNp1TO1U5o$)Yh9&!%A!OBYy@ zay58D2acaNKvqdFg_WI`|132Heeh_&gVtqQ?c^qoHOY%50J}PRa^)Dp(3dsd$f>4I zcQ7L|#Mgic-iQ4)_SYEksC!VgjM|5|Vk&b}m}F+5u+U_Eeo3ThiO__bw!iP^YqI0@ zKc4hZEL{F4_*%vJQOFe;xT1wtDKJh9)pL} zY&itFVwAt@_{FiCqj;ku0wX~FH}Q^^09XPQ_-Nkl_0uf>34Slq&r|ymc0*ptJwKZh z+cf;uGS?aJt+#@|_Epr6ha}brz$3Tu4mhG#_%K{-+FE|V-O$Hup7JyF-@~U+-V1wR z6b_cCRaM@XBD`+He{9n37-Zl=<-3@I5$;>@)=Qn`H|7vZF3yVn8D~+acPcH2Ll)wx z3vyYf^tkr<$GqRMamifl!37Y*s?HNv*x;;^-RXE3BDfi9c(58iFqM3+&^vtuvWOrA zwlJ}sVMyF6SV9~w#KnN&U*v$X_d8tnAk<_LH7pqp9H;#6=2h%Gm@)Fqzprx3bvC*> zS*Rm2y`DPi&iP19xvR(^TnJY$o)~oHOYm<%*2C!=?@kM^kT%(UNm)k%T*6;#_}L#r z`8_~~P`jrB=r<~+6=IO8oF z*(i?e$cd7iB!_TFE{RAEfri~sr4>Y!0|+?K7BK8mO53o3Qd($nOLswl06_$tl3UVE zD6kW5f|8shJIN*y@ojvuRa?i__S||@kLsoErOwh__mAiKt$CK;V#jX@%vU3rjAz!% zv!3tsd;dLfbg8&aquN4QL-k18T6GAZ6i^CuNl;OO0BNqzJo%gOwXa+H4g!%o1LN3x z!B`9o#^GCK7>rR0WR%p1l}F`?ijefhF;o&=6q;ZSY~a9ZT@{|y?KjkaG1SqsFp4=x z-&FL#eXL&k`-T(f)o4QWnAhQ%S{wDw2}2q zk3vya7dZth`}lB3HLm3*co1HM0zX^H-*>}Xus=)B3aN8_FWbioed8p?>(Z~@z3s~S#a zO;mIr7i`M$#!zD+FciCB+KKwsoeZ zA4EzdRTk3l`aMSAxrju>ktHq<>0ao9qom=qC|P|x0K5vP)AX#6opkEOr}BMTbrF)) zk5wiW`pZL%`b&8e$n)veJGw3^v(eyDWOCTXvSQxd2-CtIhk+(cebpZINpu|ZmCy_< zO0g0&!If}jxXX%ax2+mi7?@T~i{^!aOoxQyT|_HKE7c&CYBC4xXlP2Kyk+%V11(Tr zf)YH_Xjm%F$S37go~*f$n#G|eZ2fWc2nV1Ml7sm01}qsK^^=)Jz%j{XRI}s^yf0~* zYMS3X$j!ZMQ|e{lNTFP`WT%x~S*+MP)-&}`f@5-TF4&Om(ff1UBup*v*(R)=&;wly z(A)mzp%xn9&YMGi{|vkd4-@Vt+{;im|AO~vSa>Mxv%>g#=!=S{nxP+JF{^$N1{m~H z_v*yS7RjqI|2x*0jl^gM+M`|$INBFGDCyS$wXh7NN4jv01Bx~ONFZ;YE@CG-^N=*QQ>Fss!?^&2x(r`FJSxHEvSRV>5N(L5iL z6|VoI+R+*^gAm}WnsjfBgx?v2mE>RJpEN@wELNRvJ-PTGvhFelv7)){1H+Jz|7xLB zlu^tBKjr3Aa7w3V2k<`ZXW<#>hHjTqgZSiC(Zl8YLSE~K-4b8-v@w;aVaWoPH1iX? zYkAo8i4}+)TB-=*0`ybU$*M*Va*iPhop>(Gh}Q`9ay)f(^d}JyMdFR1pIR+SqJ@eW zY=I5o>z72?<-)*P$iVj?+sY-=dBW4gtdJ0B<-<0<9Cv1wqTyGuL?^zY)pB_szlQoA zI(m@FQiL40Zs7I3IxQ@^;^^_c&CSBY5eNW6Vf--k!WuC;KTXo8YTiqPeOSw8X(#}e z_sS(l7iPn)@D31n7Ws(V+!ql<Ssq^;Gb;v} zrcHRZtI0@lNLp0Wtl8+rv=5c0O8IWs+K1CmygWNoG3g_ig7h_R9(8unR0C1`in4zM z5GGmDsgH6N58aGFomIR{dIahW2^<)g5j@SFNWWA+PAhe^4@!{0dizTB=IoAnz$bCg z{jo&)yQpn&(i9>cKcj;tPhZXRSMu>vKFV`q0bK_u`~kmS6ty+*bGVA9;hGL!>$y3U zJBglH0SYV{qK+c*U0u?KbV?fUO@V2TLoG(V8U1tfbEa& za{%AejV70nQM;_?#0?LYlGp&trDq1h0}{4dbc|9nY{e$1_c4 z2-b*pE$Yo`5_cFk5xam$rwc?)3@}3t~PQb1Le=x4m7ao=fv>7&(G-?V>F_ku` z;u?P%E!;-%%{7+J=sPLn=WgW`LsA6ZqnlQ&4v*g{p@>=;qQ&RHz-O%4Vjwdfq8N=< z+H`O2kvxpX+wtR`QVx6rR={PaV7L($Xm7e_grzIOA&%%14_a6bf5RQ}hkhzaUP=oM z0EYvxZ{@5i1#-#q8cH#!Xn6zWl+mxllW#gjqpYY1CAj|{sDlNnhjO5GdIA=GAfD8s z+=T_tew0N&w(6d+?)i)LA40ly=l2z`TDPj) z3%dguKA@5$>S&v?1j7kqo7}9?_ctAnPL80EGuCVLpGN;MB{M6d>o<5Pa6)!%Q*~f(d^B@b=YtnJPwb* z<8bj!*IM7W73-0ZE)u=8z-nls2pC4NmK|Q=n8EkIps&nf>Koqm@V6 zcvQ})dMp>gHL`?Jlgigm_!6JbI(S@h=Za=Bu3qZ0@v1_MtZqi-EmoeP4?h|p%;6=( zx>7iKREBF5wC?`lH=r=#jYDZ&`Ad{0}QEQ0*7KgWTxi1^L*ho5f z8VKBq+;qW*HLwdjY3;K$&Er|<8d5{zxrQKy=j&;25m}XopAtkB$SVnIA*JG}$1ID_ z!Xpdwb>yKQIyeL$#C69&S=YXiU}~#~g)2`YBTp+Z{G!8#t!S#CrkNq)ex!pZEesST zdpJb_Exb2J#1$?E2W@x^Q{jf=X z6Y(%Gv{UmX3Q(3_XxK@3kN%#TIt$NGUQG#du(6-t*Dy=y1{eCJpRS&B4g}P6(%Xm) zE(|8|lGJ9f$`Bm-eaN+`NI<-jEOo(?yZ}8=>udc}J;4NQfe)Y=4my130`xF|k^m9$ zuj3uKI~uXIZ-hVHW(`9QZjI_l0vLipY}f+U=B99{!%b;*xujJX$502;P_m6*tN$j_ za#r;!k9u0RJX$2rqHK^b3g4JkiyN1LdC2Q{%Kim&&p>8Y5>Anaj&y#q4XQz8~7eovMz)g_I$v>1% z?#j7+gLs(ch;du$hfAfSsw=ZbWZ*zT_wa3pBWiO`o+7ghvaouBXVNwh0^}Zx7&tHV zQ^hSDrz2L6i+ljzqD%%u%3RPlNpEa^DuXhY~ zp;KDkMolc$JQzrjZYFWIf{m#{CC9xjwwI#fO6U|R;>E>6!~_K&_9R#a$+YZUU2p7Z zq}Ho%z$b75w${_;KnhmqyKI7dfsR2vChMS0ja35_$@WoffGrQp6!*b}8mO;a*HA+D zgb(xu7f1c3Jr*Qo2r8aa6C4jf3T#kLQUMtX1ASb?2U(lQc*Hl)P+>+01(DL0W8 z+71VyOSQ7)Zpe>dpeY75{b1e&V1y}4!ijslO;Q+A;b93njRjP#hkist^-z@mvkp{i z6yPvi4ukPY8%QaqUm;-wY+>OBXy6Yo(kQOPlk%Hv#UYCg-B6d{|C_l0>er0-$Kg1n z;TmwD50=4@cxxOngiI3J(w<@uY|FyC(q%L-ChT7EU7UmyJ^b?L+-t)+C3XJLz@i!t zr+{AqtVY7cMLK-l2Yl-(p3efe!)7=sP41RLoivE)=1ha`4p&l-PTPTjWCA%0q)o7? z(gsHTU@`^u@gOhq-Z4lRjLNODjqnZnO*x}IF{+F95opJS@4=5HC|$vM&OoM0LX%_D z@3<&DY!qeFF_aa+4}_P)@_-tIvMwBkMY>jndbt^2Y$gd#Erm4P0x1^ta;#4GtG^E3 zm0)7taFnZF+6DLv{LMMuR|OFR-!?uh!JCkWjnHds8=`6op?bud-O!Nw!x{FC*{a$YRa=fHQ~yl`!1L|XHm8sjPBQq zkAOWgIzN=uiD`;~;*7ZqUX?Dy<}9jUGy~_IehM>S6Plt=W%o?JJAm-8PI_WTFGs!c zjP+KniHqTJaG)PLWzj2$3(Sw|UG`GLyoYeZThYkrU1|9#8QHh6<=5i8lgj!f{td+j*f|AzV zBzyN$_og^QYIS42eM$DfH(upIZH1qS_yn-(GlhZB_&!4d$2&;d^aEQL+H@MG>=r?;D}9KxPs2F}~AOk={x zkI@)S%aIs*j?|Ems->1Z{}co8p|PQWZ!WSY=(`zTc^Rx7@*GE$ z@dE)2$ZQ(Ydpc-Lta&P&RTz#5b>w4kF91s<2{$zi9-rn|(#=o2#Wu_dpN0FaWM3NvU5%Z;Hk~3jJ_oa@?B^MjZbnERWo$ z9{4O7fOb-O2-?^OrDI$Vn^XdG3-sYxb%X`Anyn#IWH>`|h~K5S2p+hVpP|BxJ||Dn zbBew!er=_dl%plgLkC%{_JDPbaq+^}FV$+i`Ya9T!A<}P-4Q(^USK{pVVz@$N>6C% z8}}VCuve;@p#`3TTSfZijEevmgMqUk181r;;yFsfNnXL!gdxzsotm<2rCO3jd02#@ zKO(O!{!D?p#KAswt@=6U}g1;w?ovl*z#N;c+>L7V|1dSd{JeDu1Zl`@m2!cgA6n`rTy| ztsC8Nrx)(Etp6CY53Yd?P@wB@$ZNcIvvu=*A&VPnhQ-R8d5}G8`0ub7E?2`DSph+K z|0Q~ieaV~&q&K&sqAS&r!=#d$*@3Pzs)Q#3_(1q;3!i%Q*XjXdw~O0hiBZMmK%+rh z7{>|UnwuF0j;Z?1NCMfptD{U>C!R77!|hlDq7+5`m_d1ed@Q}j#O?7JX-h=Qj@ON* zDQED+>9!9%cwp4UoRy9J!o8?mRcW)gLSi89iGag(AoH;-_jeis7#v4K23Es1Nqnn= zV*p$OiC!r1o0Yh5?QYo^-V+DMcIf;z3w`N}){YbI_G!X;DC9<14z-XNWGF)?{3o`C z)=pfw0ye`ItQxL?diW+ZDrZ$0g76-rW4WS0F)qlIlGs!k?{bnp=rVj;YDD%Mrl8V4 zIslr)aM%EgDX$}u9IL{&#^|Ck1_Rp$LdC%8P-TKiK2!C+=b1XH;6chU)KMp{Pd1Cg zKB8Z=LMyxkx5tkd?ZXt&H2_H1WKx_Y|)Z`SL~lE>suABIPN z#o_O8xvxjiw>Do9?miU$cgy-khzHG3m(l5c{|`Hlh5P^-pbi3f5^T6!_5cq!oV;lD z{qb?|U~B|d!C1{gT8jG4iT`)Nr+W=R+hY$rD)-f15Sh8T?2&EB!(VI+0}xC=0*Mk=0=;z%yA zqmw@dp;z`bFG*y?JRb79lr*hOi`;W%@+AjFEeqmN&B!!GA8245KD;5*-G{t1>nlO8 zOztQ+u?^mp&7@ST=#9g&<*~y*t$?$JARsePPkFv+r&AGj3O-z+7lbO;NKnL#W;v{Sg4C!Z*AbQorH<7T#Gy&ex6X9?T zz3}xHA%G!CQuGZes(!T-Trv)sj1V=iANjEceR5MUN2GSeZKU`A3F2kS(YjzxSOB`W z0F*0T(PAo^I+5bxy~eNJg=G@JOhr+M7sqop4S@HY#*Khze9V^%%k;QhXM7w;@ZFcS zD$sP=08Q`!yu>P1Y-KK&j*-NzhW;{TE4H#^f~hn~woE?QFdHprrYi}VC1E(con*I> zFEL~Y7T>THqiwi6D8cvSPmZoS9oVYP$r5zJZEwP>#+1m6GG$zY8QP%>y5T|H zOlk3Uz_2}uHvTb)vk7tx!dj!|LOq)f@UZn3)q2bAZ^J?vx9C~e#zS!>0l3z%2J2hT zmQOe_XQmqHo28~tb4Nm^#KZD-5)lbKQAbT3&l7J=4*&sdHMXdjdBA`i;4TIGmPO4P;wcd)7%b9%s%i$Ub{**JeN+ol@DvWMP}{Ov6v1&v1UY@D%KVlSX_$ zT1Rh$r@$rUl5(j@Q3uWN!a)M~<_5!ikcpR<+EV5p376>XMQ8&bZiuJR`3!8;SN?>! z4{Ql@+M*Oc5Ld3%+)Rq|C@?~Cb#MS0Wf!+&q5&$>DP{a(gMq+*fqwx<)efnTqGe#$ zhy1TAxkTlC=E38XwfL$(@lhKbgaY-j29C4p2yBIey}Va~TvqCq+DX@O0(#+|`+4?R zaOC>2A2YiYb^TQi>yaQkXWc2_pY2?$*9lX~E zc8bgb9Ro}Zla(!o8}Ffu72&fd@WrIG!C~_nod=;F*dZhLA)p>wU@?3fY*=JO`D`Jc zZAf#MV=odwFBIXMCtF!Qskvj&W||UW4*HJHfI6x$!x8F;N`eh<3g6fq}oY=Ug(9tUt_GwNrQy8LBdFnEW_*ip948fzm%cd znhB`US{H~sEWi-lW@xp6k*wlLL+t~Q6`SxFtb()zMgH4_1Ng5-WM|P+hB|Hkg$Gtu z%7W6c6mEw$c+gOb1GwvI{`Y3MMY7P6WlkqJj&5|_DfzaisE2Pu0L50GR+RE&$vj^1 zYp0<_c7uH+ZvJ6d1Szoj^mSc6I4IHoZL#}1YY2Wu6tp>DAahSbCdMeOk_KwoWr`!ic{L-QdG@hL|tQ71zNa^r5$YP$kI6V7X{y-OoirtqiYZ5B%LugNIqzb`xBI-q^1M-4Ye)m#U&Z5nKl-?h@krLcD${ z5iXL4&9D?~csxEpk-{$?=flrw+gOc8_gG03(L@==#x@>3hs|C_V{RD843dx;7KW;Xn%{PE<@L(e#i_9=I$VK-+H@s`a?z^EG8kp1& z{$IxBuX<5VpN8CBY*hKGM{(dCxJu_)cf+ckauL1oJBOW{VS#F(h#sLn@Kl8%X|NAd zRLk5jbU~jX@7tjV7h2#!7y#hOIQJY0`Z?MkvuC?r7L}v;-tlg46yAXQ9s~IL_SWA_ zi$JRV_H>RgCCsT!s4zLp&^O%L2%(VoF!Va9-Eb6+LywLB9XJln@(o*j96mU*IhxCN zPw6giX^A^Y+stH^x-_*((y-?U14=3?bMYNHwV{#zpr+FJ&xr>+lF+cpEI0s+>=_5r z{9-?U2Mtk^NBQrfGQ)|O3?A`_)Q~(5Kb&y<{%<%4`ACGTk!V)S!){HX148|Fk~YZz zXBqul>4epgI1XEVT6VH)1*b}Y=oCJvy_a65T^Xmo=(mH$mfjs8RezUBG5+J?MNJ!S zD_1I#(vYJU1{q_&$qDdA>|Yla1DRP#$V>{uP2kF&$BKuAN<47YiyS)wyI?<@$ifye z^=#<~5f~A4HH{-H<#}$Yq>pM5mKIK?Dd#9iDgSHW!^{2fH7(}e*snJyYk<_CG$-qq z4bn?S9f4P|UG-HciRQ@rEWNw+*Bc-wP1nMtp6s8BKsZtv7tX*M$iNd5j^BIoMxFet zfE2O&a1z$;m)LitTmTN;>uBiK{-rV`o`E7X!6A7T9;AQDhZvkx3*@lqs0ApIhfT0T z7Lq6B_S2#~xFQepL<;>+*2QuLCj-U6`*h!mX)2;~rh=N79}+TI9wOFYWZ8M(Q+|cS zQ}6*Ct;b&}MqaJ(sa_5dSz#qf2#a1Xag)r0tkF**E3chUqubIP%Tc46c=n1*Vyn0( z3bOhar3BoQOD&0qLoEW1EFzAq`gv%CCO+BD@@~UHpVGU)d`KP$1kBB0qAEp3}& zE1VYd&#kOGG5V!t5v+wY1F=?xlfoMn`f*`0kQrA;XEbIQ&DRJv*!;sQ{DU$YI#%Fk zg?H$C6oxA$7T+1UWUk`zkA55S)!pzSy!U0; z0JgaA(ngdwp{B36MurXXRFI^Uk~A{vGm818gHS}ptb_|Z@$Ym)mrbD_vT&5UL<=n$ zU-PmC4+7)AeuW@usF!X6W70|@(xua|0IoOu(jyRwdfO1@w&8t=0`8IipN1UNx9U`M7}bvH z>@d3bav?L2*>KFvbOOzQiYnLh-CFplF68&9PSJVE?_4dDMbocrUj|wD z8o01qpY~k{q_4HYsyGkT(xi3*c)(zjCoJ!mUj>lr9yzWX2jyKfBreb^KOqAoUkca^aE~zw*P!TDq@MIEs(ww#juc*?D@kNOCN?*j1 zdey@^SO6}(%g5JI557Yoaz2>)pbfQvVUgLInI5>XA6n$ITj3Sn5&93tYYRv4P-WLP zh_BHM&e(GM```!tqvDm3?22AlIZ&E~&%w%8R<-30K)s~Vc!p&j#5WO%h7(z8qE#*{ zvDrM>Jy{QA+@oB;CeeWNdoH8yYPp(UYqS|h~J zCS?K#4t;&vAEPE&LFvXV;%BH;jbqB-(O;mhSzl_zy68dzW2_zHbAz)s;oDl|+zU@g zx2Ona=hB{0Uz{@EDxE_2d(dgdAs;8uBXML+KCK~-9Dw}e&@neO+zomG6l4E4&2hdJ#CALiIoUyzI;!Op=k1oTlS90(?@xYXz1gV6Um%V4GX|AMh z1<=K(D_G);8fX!ij)>AUyrb2Qv&!fB!$9U;9W^m}lpO-!u;~Jj)TosKJr2OGG^gq$o}e>}Jwr>1 zG(ub6_>#g^0tfoQCYRHm$Xq@CpO>Z`3m#P^vmv7(+6HNc=WFLXwApXrstyg(9Hl;Ly| zmg%3QQ`D3hOz12a37p4lImCJ_NVb&&mvB4u>fM_0Tmpyh7P(781PPI^kqgn4bz&HP z3@r@j2p~1UU=AB{oisM`l}V5CXuN&47X7Q?2z-mSe+*};E$37*Vzcp=kWEZ`7UTB@XCFPPYJMCa97JB?Zc&L!G-bZiC=Y@gMOIS(1g9FTAVVK~VV34}p_u)_&} z{|duOTjZs3_+rV@DJ#Q}g|7G^ibAP~3sJzX7%RZdW+{DGd<6U9 zjM2XjgjnqmKc6G#QzBUXw^sjk(LrcpU^BTv$a92gi9v;n;ZLJJ+&1c;Z@_(zMTXhj zuyLe6+$3IZ7NZX5Cj*&BNjPFe#^Y*WM7#nJ_a6c3+BfNX&&0EvSF(Gj(UvVT#FR~G z$AkEa6lKG&E+dh!$)>dP$1$9xHUvs=aSV1rj~qI!60!n3Pk&dP<9T@0NXQ9{gGCa# z4mzO@JkmLiWk|z+nZ~f17?X!%LWGi{$Lz)5D)gHx;zc-b8OYp_a5TXtKO(nFi$cLN zI8`CdZ*zRr4&Wy49YQ=Vkw>%`FGBRh9J7T8wrH@X2i75xie-))OMnZ9;gsyvZfku~ z=i6XJ9DxB?Cg&KEb9mw)O2cL-iK^>rJMpJbKUNs<+;CPNZX4q>Q&P<=AuC6l6XHcU zpBc!!NW$?(WCCG`&|oP`PVs_{fBh4@3t#d+BVk0aa~P38WSEGfMpy}5+4WZO!al;?OV)WdZUiz8(lI0M;Z-!5_$0S%gJbASkg(>X~JHtVTMxlr&#z5G>cZ* z2M5|Y($13~Q@jj5n@z~Qq&8sKD-RXa(!up?gAbG0^%!E9gyk$5=jGu4#$oW7& zE)WJXmn59#hy;~fO;E{#hEL_QNf6NaC zz}8n4l}ao|cVwJxOj;ODjPrzhTsZVonEyE8BoXDhG_kgW_aP5W4Ak*ZFKahI7c_bN zn9TJR*Gmxpy?L*Jp_E4P!-D*^9d~7=0D|t*48W@UDL<1=Si(TZsQnLMGwiCT&;-qp zmoh6GHgM<~-Oa^@^bhGMKo)u^cJUGP@YO8z@Y%Cke|BJ*=%Say`_mq~Srdi|=MVQ3 zE-VIe9+GeZjnoz65SqY)l>k45^{d(Fz=Lq34wkzj?v(2>ibMEDkwFwGu%(d5k#y&@ z-gYDjC9a?!F24h|@N4}0qQvV+m^$zsxbw@hpM0&+I?C1bF9rbiF$x9fg<5ItaEdOE z4`2feUxYg}_X22;hcgu4V0xA?upK6qKONzG;~p0v{S?kS5{?Juo=JlbOE+?0cqGs^Qqdv?I!5mWS64MCF}VxieJBoKsuL za}W-~DK3Ls2=CAp{-P-;}V2jmQ2el+^@)?~_<3o|7ebixXp*DvNXP_*R%(c@a;W^=~ z^lOW+;jQ5u(c*JMKZWy@gkz!=+KgC5ZH?9UNyzd|5I_c&LHF)#-m@`gqoB2*V!QC=Zt$1&R-Ia zBMhB@00JE|JOKTRxz>Tb5@Fa`;FAJ(z=@Aws9t7#PO2*cN#{%(-7ab%Pq~2(*%Bt8 ziNlXAxZE9g_k%Do8ZFA2v)D}EbJfbHSi5dI&Q z^_!5sMy_upcM$dhaF1%F=CPT^x2QLgMG;BrN#$SEFRhkSa1u_yQGlDcd`;&;>eh^N zDL?6ko;0k6m5PDg&?PqKfSkoNC6yt$Kyu+k9wuD!DZQ6P792kE=>VIgO-+hM=mr~- zQ+JbwQwcfD5dFsd`8iPWbI-j9=QRn(6o#$%ZMfhL4teAW@3gERgbcwoYgn`f_QOHw zfq{^>hPRHqLnV_EQGh-Vje670{cr@1LWytxf$uNktzG#$6pHsInamibjD3rcecvYg zHpV)QeMy$F3t3B)-Ixr6VQ>ooY%m|Ag=P`Ml3_ z&Uw!Hl*Ii424=4J0OM;X4^hmW#17#&GKtExk; zv>-1(h~kKy=Ma8CAciZs@KBP_*@ohCjvNr>I}(+MDkNWGN*puHAYc5dkZc*~34eWe z%Y*}krT5&UJr!jJQck6rKarMvtnHb^vQ0<<&Hg@@=ki3c9l(t3?v`Vd&_Z|T!^`g` zO4iMHG*z5bo?7*;25yAcch8Ww(xH2M+!L%C83M;!;Nsv|DMiOWsqeiPnM%YOqQ48hpHyzrvRM|hXN#mJ8rea zSC71yf;FegtuC>X0uVR9Q~@pRwx)tXpg$S<4O zh90(}%tmOEo-ey|d$Hn<@XPOrJ-Xg02s&)B(%NBXznj0M4Z$3>y%ycH23t2Bpcs^^ z(gX)IHMTi3hHRTRJGOo6GTYH6`uq0y@>d*~U#oPO22EQ(JD6?415-P5E`Q6!^ZT-k zb{A;YPJ4k zTI0qWxQw{|8e%X{7$!@gm(Td#p@SUHp8sw1gy&X2*qw6o%=4oecRkV)k|3tGc=Egt zFe#B3{DP@7PetDxhy@|3Q7SnvQfI0jpt4gn{cu5y_x=dwzSxroc*F?yx`P?znjprE zm@PCYd%oA3O&tRkeQ|V+=JWXL3?e;tHcyHg%cACzzDOyUZYH1nBou^qF(a3#a|K46 zcPlZv^b0e8?N`v!=NNYb!$n2S1P97@+YqmQ~Q!1itWspcO z3p@-NHuF;BXXeJCrNz1??#%M0Mya077Ma%)tEd2&Y7Al0Lt*}QZ1&O;-ukA(5lZ(g zGSAf?OCtIz(H@ef5HHUnC`1)Sc-Qx~@X4qY+TY#xUR(Sf_IeIG;gGh$|B^@5(g>;v!}l%`)L^x5)h-w|{0gB=zA(;-Pv4f|Gem_;bh0U zR6@}^#EVcXH;34p^TUd^y7l@$aEoU}j_uWS+A5Z&4&(SiA;gf9ramxGxyv&_!tl}P zq};-e&#%0p-7kwi&k%!g5i*h$+`NUelAGurb)f_tzWsKauPkGPL_;bukloroG((3CZ=8@$yT1*fh5|C(#ALJi3Gxp#C1wsbjCZ>eMg^Kdv-2a_8JJFhP#@^ zqo1^}#(G}SGWgth;BT<;-f8rNi|-`7=U0v%B9WLC&Ah7LbFdK9?p3UT_D_)co0hQT z+3=pr)fT3!Ao=Kz+Uj||pq%VuI-6kH%RHRx<8LZUF|OOj5Z>r!E6F>%fQRln6dau+ zbp8C%iI!_Fq+iP{EmIA~fnX5##ooY$RRM_AS2~&oU2Eu%<}Ia$$|OC;e9c$Vw3Q$N z{U0Y+4ezNGPuizCtKp_<&SgJa__b51Cne$4DJ6jA7j^7g;~jHa-H>tv_4LXqX`2mM z@GEJzA^Lah9V%8zYV`qYU39W|uBPN8bM%XO&Q*>M=n3E(0Ebrcp|3Ej4q zZFAf7x3}{;J+_VBD(_d9@E=_jJzl5^XcQVan!FO9Ks(N#%$>C2n(cqq>rF7sY9j3U z?B%=JM&YI{MvF|gva`^OJa4x`R&>m!!t}R2Y_>+)ik4dLZa27Vi#)m)kk*ja%&%D> zQX@Q)_fTLCm{~R`5W-iEeNh z^x+?Ram$gSdQRz#08B};7%rv$LHK3xprUms&(ppbaTAP0kY&q+=X2A1#kx>p_Qt!3 zq$Wbl7%L($8FZrtV%NU2hU58mKThsdxjFaz2*!h4*4F>ZnwZP&)r$G~r^1mro9Z6y zXoPnNI`pIG&hRPfLU`}(b=dt0V(sxhOekIr>%4)(cgA z280F4fhh&iLg6w~#X0<;{+HCL(o8lGid&4L?^o~_B$^H<w^-aw!ae>>i)yavfb4 zuTcVi7EI$vYfsQ^(>Y8G&TYiz_G)NwdW~%dYc_%mve2wj^_vs312=xfEHti{f1F`g zEcM{b?XB-t^j5NkA;-`5RmdWPn@Sv?!EU=-;sK4GHw!i%{6Z14<8$Xy?5n7= zAvF>qMopt?VkHO-aRd0$Sq-wF=_cr?`@ti4JqND@487F-2w_c3{Zq&_iV{D5eyB|8 zKT?Ge3pUV6K_DWFbW)n)cHHC>~lAP?b)@v{M*jgj#{70Wn$q4^}_1Pu< zyBqNTCH)81=aAvw-GKKM^`d>`-Gx%=svLWzih<${ID7u(EgRRr6IR0lMzT46KC%g2 zqJ0*+5#ht1N!SQm5g-9GS2E?re@|0K^^aWOWgBrjj{dPfw#{TPm+T`r`riMHYNT}* zg9RM@0w)&`17`#vVq=7q9&!vQ-DHOFfHwMHM9`5u^j^Ptle=40MGAJ{>LBYdsVDw% zt^W-AN5UG(;mMb|&yq{<4k^+Ymt4B>KoY zLQOLh1EhimDySfW2*SlYS-?s8z2|@<#H44;a~?>_Z}0lJCMjkN@qbtcPY+AABZQ^C z6tg2YVwp;;+iZ`^LWzcp!EHj)W*xu|HFQ?F_EZ~k*No(>6;k}_hHvrQuP}j%`8DN+ zAw#l`20Eyqg8-6%0HPQ*U21(al^z8|Fn|OS4B|M%^h5gGh?atqfnfk4njth?E<9x+ zqK`jI21^`wrxe+}sQfk8)hkztx_nA6`X}-1AGr1=l1~1kVJT)#E+JT6cwxkH!}WU3NbHw& z$Sxw7{>0Z4*a0+=E&24>Ne?l<2}BgvqQpCMY;PtYj@?h@5Cxq~3=+Tp=2It#vpUVoLk%($&C#~&Dz|3 z4Ek6-%bXf_=WBhd(u|u0Zwm3r1cRz3DmXMWftbJnv&H6L^sUY79$UI3V78k{)T@`q zu^~0{&G|ey8^EA(-$uT_7P;mud9BTMqMjLjB>Ax_00~e=`vM7cmBdn*j&Ks=3kYTu zCs7|-PFC!(E1rF0*^9xNeOTiFXKeoBq4};mjy*YZjlc3$oK2=hYi_Qq$Tbi#BA-9} z#w6{?C@xJxHern7>LG6@qD;mS?0qD+VDHD*^4Va8llbKcLP<1HT93YjmNl4a2&%A} zoGUR(G#y6pBZg4DPyj^`#t_1C0#6tAZWhd9uu+}VpSTdeo2`Y2&>ZDH3o!ve2e-!4 z8*ooG7H*L3p>dp@sskm!UCu)-`z#B?DlNhQY?xVMe7&L(oI$;1}U75p)x&V3{FJcCdh zCu<|syAX8{tVArsj_1#N<;a9-Pzrx}nZA53xtE$}J`q;TWc>BJ_WrpeCa9x& zEqVgVUP;TkqiY zpAmE-!Q8)c#jQvm-ZS1eN-YU_%HPE|=SmW475g=&Z{V_n?9QOqiO`NEfZIS%CZij> zL&4L-LX8;6gezz+pwv%x2iVa32zgj7Xl`sEfGdh`5Nv1;L=)OBgl6!7)kP?mR|`3u zjbMjDqWO>vW(Y$RM$o$OcS9evBOXDQQ8iJw7wJBeA%^Z_#2{#4&tSawhL(Cw-;+u+ z>;w&}Kq%n3FS2Bfx!}MJ&+hp+Qoy|5Q}PaV=dta}Y`77{%+)u1h}VZq2fxew)9oI) zqE{T-#S0qAX~)(_v4$rq3mBiZ(li%!0meP#y~$4%49FGKO(Z=;`WEPg3^0Qi%pie_ zPzq`Qw;$b3)J8-i>0R_NLdj*rul?%SgK3F?BBCU)*)iD>03%qz3O3>v`V0g_A`k=x zBv2s&eyBs(jk$@OF6C);XgaF|4#VGI7yt>bhH0SStk|^a2bWFVGr*@Q=3>tcth<|n zeO!C(`88w(VR^43SOMA+&-IJVe1HlgK1tAsWGX3?U0O34{NJt$)w|?*P5v0vDu061a(G zP+Li73I{WZNhAcqB4LO@V%#oM5M+p9?84PSfle1r9glzl1>>+(H~=#tPB2|wwC;=7 ztvGtwi$^MJ`_U!ea8NkiK(hpx|1i^6@cOTK@sC_~`xvi}8l}SO>oeYdqF*%1?|HSO z{+bcqB6W~~>1ajJ!u%KYpP+{rNMpw|CMZPtOlkT})e zKd}_+2)VmY4+~)L_5A%$Xyy;OwIU24y@61TQUxbjxQZV^kiiTNRg)tSQpxtC8`$BZ z3JT+(qgd!_B54GR0g{kZ6fX%Ap)h9i1a-~M!&fG6R@ey<6p^-SUcZ~xED{hJ2NVK7 z#6blOjN`_b29m}ZL1v5CZQ_6={;uh|+8vKkYNQ2Tg;j7Rl)||$Q*r=|qn?6`-pTCA zrpb(8#NEUrLW1HBhTPQ(n9L;+klZxAjCPG#$@n474GddN_kfbS@T20}T_o1#De1cg< zygCyF>KyqwGwO&D3m6#lzjX*h0Qx8x z-~yR62tp)B?mBm1ZKuQB?HC#oFvN{NdP%!xkBk$lXugnh%s1Do%P{o20vVB7%iNO3 zDqZU&N$!&hPcpfg%n>32F(+L%TCH?WVlW>~KvzMO`O4W8Z8#OkCk6isw%{5j#%p5v08k^4nmi%Q*a zSYlT;@q7l%$O7Ro971S8T!3nTgprpY=FT}-0-qU{HH=BeFcy9z0gb4WQJi3d0JbAc z7~jSmkPQKFp~$4ICZdo&3l*}#*>+aJeMN`hWvq29ce3|doS-t4&qD|Gq{{^{CPdyy zGT+)KUN)r72y#~i%{Gh>g>DuPvH+sc2ya^mOp7NANy@Y5S#mlf(Jp@agwk#h?!QvF zdGG?3T~ z^S}sg73{l?xsQAZ$R{N%*3T<_MOpEB@cH$j2mNZ^K}bSR2OESj|B2L zXEAg>y*9!#iC%;a(!hma+j@i4?5=}Gs3ZSnQgys=#|eJeA1-Z8*c^M!4`*NZRFrYB9>QRTzCt=`DBSXC zuzJ#+cRh5rY{)^@5d?I?=DdJ-MYArxs9$qToR98;LC~QCp^JDD1I1Y2QFz({a2Phi zEGX9%HLukGd5{lwjA0TdC~m~46ZMkNY~o-d&7DXS6iJRCgAq~VwhmT1&xnd~2w3P! zFsKm`8NMsL$GQbJ!*MWymrEuMZ#pa3vom?_P=9W-Ye$7LPl^U4a@_iZ_eeR%lcE;2 zrBs;i8F)IZOgIGf9Eou>mryC8WWp|zAi}^tTty_C80dhB5HnDF$!CDoROk<tbKr zWA?HdZVJ^jI10fB0mObVf(yL{xtu@%*@zKZKJb(v)M^yUy0LtwQl_mM#4}7i_;T&N}q8EUyRf}a2$@qK`Ohc96+^@aML%7a5h&|vE!`H zjP*vVz~KVq6rx_*rlXiJBt8+=jNP4QzkTA(bEg5QP!E}Q&1Z)v5gNb)=RhX-5rP=A zFc%R71LW&$9k(@fh>LVY$P(U;-S&|8mtUQauN(X*Y4|)0PvjS(sj9{4Ryu|tf@qKp z$PkABdu+mV!%jE!5lN6!f^gkVy*t=-;w-(O7?NNDxS@!ii8M(Ldv%N;bBwXWL?Vy` zSsJcR*bAE>3>t(X2z}s(7*Yu9AbH(T0%i*4#5XDNOAc_!X1ZVD&#%)pm4yA%U>Rlg z*{fc;aoY zz`Z9vxa2{#Ma+2Pny-Y@MwscK*3N@S&3%&|Yd)q=qYJc{K6@~N2_n$RnnmK(qE-~< zc|&Zcx$n9y(v43k^>XO(dD0mRRa*xD*+g^sWq~W72+om+lL&SLSrUC76{#H#zFY@X+fE$+nD%w!(}#r_S2wAm?cQ}fq) zpSUo*bXj6^CVs)TOPUxg} z@O9Jlgvli4<<3p2zvDPGKoHVN7C5Vz7r)D*-|*G-!y8iEzpl=BZqFC&Wy(2W`TO4I za!o-8SQH|fX_B!|8h}>lhA0@p30^RO1&m+>GiVS88)QKZO*QOk7w_rTsDZ&T0@cqF z@xBk_lVB+>%~yEL5crlNwqbB!XorPR22RF88CLW*s6ZG21E^RIVrhgND1!wI%_N=> zb-$*hW3W#`x|q(d%l>Ufib}vmyG!^b$=N9iy5Y_Rq&$CtNeqJPt|;j55ThI1)S!?+cW z!2l${jxd5=j$RBs2%~<_J}`TAp-5S9(Pe%#eW4??Ni5UZS4IDawknr!W$JXS}9(z zQ9)$c9^+#b=3tSWHUWkp0WpZe5EUu3XYz^{3kd$ zJ^=-=LkjpH3oVC}R(8X2XoqGI8?<5U~4}kb&STPrSuIJrv z;m_l!Hua=fO6maqWFk=OAvf3K?wdnT5Mu*sH!j#$qaTP1eJ4qAnR0Ja2Bz*;DMPoB zJqa_R(HxjZh%XPsm+z<5D0EHO-b&H{%GETd!U34GfeTs{(!qq-FY8@$qzE#=0C9*z z1O^d@nUl)KLY~r%wAW0B zvn=}6)y^MOlejcWG{F%o@0h|b;GH)V8cbr4{w+e**Ur6kUEoEFt_dwvP9V>&Yh%+0 zQX!MI`Fe*Tu#ZV0b{&9)(3LPtnHXoB;Jj*9LkF}%auNfR`HP2s zY(toh#2XV7H?8eoJ7F@t)y&4??X4>{L|1I*W1>Lqv7hlF<7D3 zB%AU+EI~ukJ_gp7JL%8HJRZ-LF~#v&IB62DGg*EdDc|kX)Imw*H8=tS)Zu91)+O}& zPCTanD1~3hLMnQ}uM2M|c89JX-fy#V7QBJ!6_Alz1y&?^cOnV6bkY@kJ&Zg}aoCU% z8Ch@JOQTO-UqX?SEc6J5Z73PJm|CH8EVMxc`VmH$oXj^BTWjsskgj`nWJ)>W(|?splWs&jF~1DD;61XEDot(Un4TllGNlVN+Dw z5f+DUv0m7aET6%#wJ64uW%vD0`(RP@g|Fp@49PPQ68LH;84nG&>bwI2SRnwt&`eS#ZmA(8l$Wseuml{J?brW=Z#p@Y zrW}2G{njaBxUGgl@z@Xyz&6~6$$~79!3-mt?Y>!yit~gzjl@3Oee^FN(uM0U$Y1v9 zB{NZ@2nq&)xRp+wqZR_-?NQEoatIkRk#bSI7}B8yY~VvL=1@A@1a`?rwbj{E!1)Jv zo%LqyjE9OMM%SwUI=b*!2nCX$5HunR;S?cd=wl=8@5Abv%thZ|<{G+c)eEC-ZT*># zS}PpZ1E70!Q>~&>s2H&3=E!5kWLA*C0%nW~s$>icp>_ykg9$JJ76;=OU2eD~_T}&f z7=Rw=f!*Y6rAEgJ7sCO@Ua_Z7+&VypnN~A_I5eOaqHdtLhvunmquO5dO48Td) z!lEt~KrWG7dMYr?B((|C5Ml_TBI_ziJ&wggpBYR9m(o6faW6I_#&g7>(zrBrNOkvv zNjaQkUYTWHwel$_dA$#7v;x8~hpj!czELz=w7pt> zz@GYOlrB+A^xFMHHjbn~r!=FK2L9?WJqpO+AZwCU(YI^P2Uis&jg)wNg7 z`F2dw+8_w6h}*enK)ss5sk9~`^r0QXWu##~sXERGrfNmB1%q!*~+CL4}n8NIICNS@I$SG+- zg;vm!-xac_t6#db^EalQ!^t_1T`pahuX7n6=bJ~5e7We&ZQ6H&>ZTZ&*oH^u}pILHnmo!!ZTeVeY}+uj)oilfod88Qk|B=jt-Y zResf#AMFrEzAw+qso7K|G9>UaJWEPP;wRXWiRf%H(F*ybWc|IQ1rba_OQ^}kg>cw=QSIi8Xq|n{L^e1m4!-8r< zYS3q>;j2YsvSt{@mQDto#2RUtHtn7aLH9uy#?5L?G%}CI1*8p<`8=q!m$GpwL+N9+ z?#Cx%4Uu(%`R}Ovm+VdYL67ZTnLr~|0*5jn3a0T)wI4C7eX(_kkF(W)GVlgi7-cHY8cZ1DQPGvk+?{!kC^FHBp(ke#yS1G zHAI(NG73j- z4;{&Oa=U>FSb}Xgc_S=_I*fG~hbhb%l&fXm^&9Dj^*c>9&CfypReL zAq#vu1|3Bp1_J^u&;mnX1rcmI2^C{9LMlyOh62XG9r96!=+njbeA!d1hb~3wA*o*|45+%ZX{~*5=e0h;MDU92~G1$~w-Dm-!Ia2pq21>v|<462VFmW=i28w0-!kX;29lVs&d?%@hfz=*c!r+d;Nt%_ih! zG}4C+av)WfHpXt%GxiC*Q^wF7m;(zSxeHog07k$MDj3E}n=EM*Lq$gM+9LksKT-dz+_Qkx6)AdiKosB1WDleZe- z9v7XnU@6Q=;Om4Fj73UA<7Hi=)v8{Yh+xC+!Y0xIqXm8|a9y)IwaU8xPaZ7mrFk31 zR;%tR#027ptK~lgD|;W=CulC=2YFFRc~=^E7*DPGmH&#nF!y0^B3OzhFteG>Mw%v( z4t|WgId?PH$H=3*n00odb3^BTvCbVQ8p3ABd;-fbqKh04^F-bi@ypB%Fa^Re0x>9r zWpEx8hQDO_agyr)mgOZ)5Ip+HAx<`6e=xYz63Et!eaP-KS)FVKLi5 zU*(d!I7J_VWr|SxCOsuoA#OCBaB;g9x#oA}ge9K_ZKex3WnGx z!UASL#`Z5$ZsjoE!SqHC_aD37B=OKP@Jeh_YqU{FYCv$ z@M-4iOLEy9f?m*Y;ax)Cm$Q3rI5YjJv;Z83eb5L45QGrO@7a3Q%#5DMhdrLL|cR`GGPSUurQ)> z&}cjyPzyDxPZ%_YNUKEvCkc7%2?8XDsMsJT&|&5QK2jwOKnMH~WR&2c)~YdX}17 zpckSLg<ooXe|?&rSCDp+ zi|;;lwK_d4QDN5Oqh-r zGVUmP;?%EtPxbIK4MU7%Kj-yv$$(+e(JJGvjE=ir_Zv3)6RAkb&$;p3zO#WKjZpH&fFuiy1b-W-|2Wh-;-Ui9^+gXis zd0WQ4k^f#ax#Umc)w6ltYio}xVU(2*ePltJtLIAB2&0rNlN1sW}`oo6L{l`R_ov zbhPv~+dA2p2{M+R;})Wouo$L7G2}t^xPO=fnUDh$po*?6o+9~DOux&>>l3G4qHVF_ z*I)oo>iU%1mKvx2{gYnt=`+$be`DKM=%~PmayIY6IY+4kO+^%pYhNJ4Tg~}lcIpTM z8g#>uAd}leVvv9fx5jKUg(@dMCgYtAM@^VCDtz?2aXR;M-(gcAzU25eiWFjKEVF;4eQ_+!49|<(^Aq7W&e`Xf%kN;px}k~kogd zh`_gCk%-O9kbq4}7%CE>x1K54if28vA}S)vwa$ip)~aK1-%u>4#ogu{(UN?SjmH!U z>PRHPv_cwk@rPhI8BY~L1Om_w21tNy%%6-*;%O(3FtuMOhO~=#sxN-wyT&W?k8FJE znw3*)J3krIX<(T{w9IDZLlo^Ke=l-t)`{ZeG`bvw&R|!RB~45MDMWva=s~nXQCHF5 z8ZE-m<|ElLxao%;$P=lt@Cf_`c7GszXNGDp!6w)RZwZt^3M7LdP(PnVDWtDWmtKiT z@}OSzH6?U&q9&uU{AA6MaB})jUg+<&iFtH42u{EDWyHK&6Hm-G$`OGm*wQhd!C2~f zG-+lfnogIC*Cied&*|5v;qXpkM8dprU5+Ct&}3khfdddrA<~IU(=X8VGY|!+{4BBPLiI(Q!YoBA|Gb0Jox2(hKw zyDtoEdi2|u-}JY&A3Z@AbF=MslA4(G(y0c-X^x{j^*nno#|Q>k&)NG~I3C|okTVg! zfT13a!kTgO#)Wqj7BaiK!sr#M%aqH7()nQ1Xm+vg&Y%^ zBvC4H2G`JH<^Af)FPE(Pi@Yk2` zxh~K4%Qy5T)`J;Z+>PB=I-~Z%wO?Pfb;nq>j0GW|6AqpesE5PQPfl1~jIk5?5qc47 zyrf>jqgE1={jc1(di#6*je6;t#KFtheJ7qTqaDm8cz^>4RMOO+u+OEadQ|G@d~) zohX%xAw17@ZIq55o*#{0?}A3u7Wx*D@vNQ0V2|=u zEq)FCW|Zw%c9GhGXlL|{9U|IN>Pl(#5;0>3aePzPp$qz99qfh+VLPmb9QZxV-(mBv zU(SQ;i54(%vwnftpZ#*mS1;;iT^et;8>Sw1XJiM4G@S|({>*I zsaX|uON>8HGaS?bzu}U5mB#thpUFrnjGws9sOR#pFme6IlKNO!9~@i~G*kF8H|e7z ziy|n6-RNz^voV~^HLRG2-vX_0kn0Dz3b~B#bfP=3zecKzG?$^X*yAS+T4=vT*l|&TJMq~?yTqG5# z5%$8yN)B5|bYbczKS2Q~;DO>~OtHbGq3~oJd_uRWsAseL47Pz48X+4d zj~AXKRBQq4Mua!9?LxoIt4xXr197nvj7KONy|V>ekYU4{O>{D^+tl#$`Yod+=STxs zny~JwNO^lHZwlz|jgJJ(SjqBRkUq_J{}foF%9#&vaxR($74m7xq@k12LXJgv*hc$M z>EaZrWmRNpp7iqK7hnWDc(RzCN`48GP0Aavfvuf1DmbSSx);UmAHLjbA221mFd7IO zP(~O~C5c!PVd#bq=z~5;hcY+{f=JZC1j&`QFgs_cRCp%acz=+z9*UbO*NA}z4hMl8 z4y1F;MZXDFM;?s|B9@()8!@z{2+a#vpGy-TxB^3ljCwBm_USji&j$-A+Q6K@u;DAC zE|<2nXG^cQw#vMJ1GEFywg?`Nqw&1XD0`q4ykNzgL;g9~rXq@%QQxAY9Vw2w6K}oQ z(ki77F&BaYB4lWK6y*lY`E=@R5#A4hHA4qn22Oz{BZqJ=$h;uu6^TRwl4wn)wUT#E zX|M(Y?2<1&XvoL@SDVqgeJmxqxSU8$4y9iVmpglbOnc#0q?5`J#JFNtb<5v}oj+F763&dKz zre4acksi+$8q@V=m*5}$*l9_n)bqLYDX@|osCkaCm#c3?l9~Mo&p%9xFgn(HFy$nA zGT+I6^|H}|jR=Gx0tWD6OC@dS=#CX~^u4L+J#jzi}E ziqxmW0?zv$rqI~Lp7I=PeoQ0@H-s4>$DkgldUL{*K=N*vO(6&)U;rDmLkEo$Iq1J# zP$vl9n>2<4q;;asjvnYT5u1+VwK#?j z@;jKY50iz#99kz*n@5v~CZId<>u}mtXw=V}^$Zt$4{z(|CiR(Meegyu`w&xBviU0% zLnlY9u8Sh#V4~s1_%*w5z^d^&g3&Opl~&wgt;DGQSP_m8x^=R(@i*f789{a`b#Ghi zt~K#z^Tt2tos7g+GRI3dJpYle-w#8O0y;#i(JWXFB88I0{t3d)N;dciO5=Aa>ZiNH zXmk!5Ao~y(eVdX~7rK8atPe?N!Ef1nE$J=6F(>k3@S(f zx=5@tpU&B?N8BTw{TnAWHGgr-jyV~#ccxeGPn)sZY>mD*@3iru)00K1`R>SB9jy*J;)VDSob8sT6%SQb^qg!O+-3538`o#@x-m+fDRCt8e$OGC`G8iQ7U3EjDE za12^tG%y*395VB%E(>ks+sya^>9=$Fe)1bh4E~#7D5+7YPt_46@Q*L#nb3pK&x|r71TY*z z?xHY8Ssxh36RWpiyaq0gu5PP=l(;cSLox+Vs*X#u-No7}!GDH0tl|Ql*Dr zEhIw$ETV21Pnx9?)Hh)jXJt@&HIFE0L!`7Y@vuI}AGz~7>zPSny$*?h>-j|+`u10U za+A(y^&4F9f9~0-`bXWZEDU&sgs2(dM2R)GC2ole$%DFt*0zKv*P()hSc_*e!RwC7 z`FkM+Es5R5;tIhuwauMv3cQ#T{kv^Ol&o9X=wMg?6C7lUu;c70Q-2wtezISHrq< zg1@~eYpbb`)FV`;(pSlmY&ve^u@e3%*LnYM7WmI4QRNG_p^6;5o+$DJhNo$ff>xA6 z6z(G{CDe3AXvt8=w2A5YE%{3g$NSXYg$p=w32T1NHf!~Qr^7{UgS3%;h(E2Orx@et z&3~@I;_1(SDfs;8;rKz4Y(%X5AML15>&rj&>7z0vSau6%enV&um>!28iJrrS_>4Gn zuuWwTmLo|ftE5YF)7VBg0MZEJ}26MRX25IJs)0C7QxtQX$m?9tjmw&qcJtJ%9Exh(qraw)=7P1e6 zK*uE7W^;HM?M1jETzUJyVU~TW{zb54E1eUp{(L!-q3pY!WAnz&hwEU~0fGWX$Y`Kq z74se=wE7FPuTAin+g!b5&a?n&^;0T2LyjJSxJd*V^wwDV#U8(bG$bhkdZtVSx`b+yL{uGxYDz^4Lvmh4-LkD^yq9% zqu114!s%Yox$BbYH}x(~Iok+w)2Ia5I&m#;033iK0U?kyE&|%gJKf%wNl$!rE3@ro zfagK7wKs_rVoGnk-pEw4H|nqBMe_ll*M+@OA^0zkT};MK3p=A;t2CF0yYnj1##-0L z8Sp>($Mk>#`Z^KUfSboE^wyZ8vv=zMSHa@NJ;Ewc^^2zNC-^&F+Hhl+^)>(Q><+oT z(PmDMu?X4)UJ4!6{{8#d3$&h@VFN&ve%QjcZ4$PuFD);xe&S8TCxYp?yE}_osr`nJ zcP(RQg@8-sag8MEKWsoB!k_`z+1PH3(z+Hin4TB*l_1<3UKDhxk#TX>-LH37I@aj_ z^0XH?0)sa~J{5hc;^>4#WbR}N=rpM9C`GpEj}ldJ^YiatFIj_A6NhfU<7+Mb)I$8J zrGys;_Y+D`*ai?CguaHl54$0Q$Uy^f_oCj{NVDT7aTQEg?_*a#@VMAcKG^$@W=ez} znxz0}SpHA|W`kqDBg$Yh7?+=;RN`+x0Mau?9zGtYObcHke)S zz)va+vFraUAkGT<8jnDKl?r-ub^dyp6)+hk(}W9Q_~u0Mr1#4BfFyVo8u7yqMH%@b z{FmN*j?Bz0)i?c>D}6-x|N1wPot2)Qot=(P;C%gd;a8@l_t(MD@#+{)6jFM0Uftf= z+3QcE>l(T+1O&8$Kb&so`slCE4y4^=5@leB-h7vcpcmt~azK}yeSua#&dA{nt z0U_A1$eP?u&*-NlD4T!pvk^qR=JO4oQo{R`>SyG*Yh`!0;l(2vN9lvkg5Mgwk!| z=?Uo|jLO{^I^dA@x{0>l{CGPf%-|}%=@TRj(8-t@n_O9Kb*;qfF=W822F4ou^Sf_u z+M%ESTcFQ4@6Bo?kNg4utD~hBLkYP>L^Eeafu@~mr-Kw7lH2F`7HDk^=+{ss5+@}v zTS6li`1kiOdohb-o1=C4pXMbr5+6$R=Vuj|=$~fA0zx^AxO|g{U_kXL7WFwl!2|_A zau@VU&{rtxfuWjhe|}00kD17TDqn_KMu55 znCMfod|ewGJ3;QlfIqP{GBw?!R}y^c6M78N@M5xyF?&rNh|wlY{h{e+7=jTZwenJ( zDbP|Th7N_CzrRtmeViO^4Va5+*Sm@&2xf{4JI;d~?E0C5ONlvjF{vt13GB9mT`#?}_>aAg*HpBR^B!P55OK`=UWxdXn(1!H>%7@~ zzdNMw<{%Hz4Db~l(m*jwM~}cCZ;|0F5Z1j-AoLJ%;TZ~StPc-Jc}#G3(PSjzt(j(0 zY(2Wi=@{Z=R#`<8Axm{d{Djg7AMnM+u5{(zi0^ zDQDk(ZEk9S#P79S|IMPLKz#PhF8lB8B7ATmHaI~R?PBW-kCdHsPr|T>;A2Fh&=qT# z&v99a;@dhcl<^=Q9xOdOjm$z*brzo=cxr<<;5|12GEY=Q+QZ*jy6;HPeZuQJ8)D9d^(z z?2Ey8V*7USe;p1dhjJbx`aZ$rV`*w>>0x`;+}OzUK7P?U8r{6a-|?{i)r6)Cq0Vg;Xzgx;s~n#D+jo~|y(nLe(Wgq{yOGP2Ij)-oo>_v`EDMt@oV z!OjK$)@~s2yPdjtyVL);`~Gp86a)-c0pchLV+70|&)?5)JT`Y+#ge=ZEWE8AA0Lb5 z_?8kSAy9wkmmnp#8WaIx4^ABw95Ec#A7sCsJbbuZyj2T6mM`S|TpYr7Us`!oIMY=gvW|XV1|f%_F}q(hUP;L_y0EH4rw?=$QG#k$^i*;^ao3S{vy%s z>5_Lp1n@htR3)u$MxMRL&9yhjdy>(J(}=2M+=}OEh|7(?ezANdYLft zmP)u}%Xu2zwr3)qgtB+vAoM-mjfHqTH5Yp6V|w5A+E{7XiRp^}+CHahyeVLBUqVkm zbZlj9S>|&zZKEalae&(nE`)HWOeIvZyH)6rA0a~v>C?HW@VY0Qcn^a6fbgfz@xJCF zc^z|WJNkjo%JsAT5+@}bS>9hU&Ke-z*W-1Utghi&#s9GCT&DC92KNzmHPil|n=O)S z$utPZq^bn((etSQFoTdg4WK5cr|0P9G=hwHn&zdt^o6Ui@B^ zh@S_Q-WH`{d2u-=F6(Hv$)LVPBOq=a7s%G2y<)asaPLgssay4!oF&(_{ug0jn2(~6?+CKOW#1tcmOF~0?0R?p21 z^~bcn=hH-o!|VFR+j{lKb517r6)Y(P@+Jh-V0U*VwUX~dxxlg?&Q2)BRtOR<&P29E zImc@K!R{9~_6u{Z6taxjAuf>pziXx{lfir2bFUp|lEo8z{qM^ej!3=e5PQ5@qRvHM z8hw6by=*DHo+-VK#l9&FjMtX`Wwp_kp)b+Z%ycyBt@oP=TfcpHZ|RWAUU!>#S%27n z5HU0e7AM_-H!)JZz66Aavq$z1nK&sP!16za2|b{F%m?|MJeOOUjNgfWxa3zo(Mza@ z4ps=hcWd!}S6KV^!Oeb(aOa5CRhH(J^_$1Fjlc#ulduh%bh^p)Xc|N#jGSMdTFpXf zaJ{lVZpw5kHcJR;nP4)L3m%4J@}OVv>YKIkk=SviWv&1N-H0|?-C63Jj&WnNJ-2)L z&h3gVw(eK-`Q$j0B-Y_5)h zPHq?529#fNYsOU_Dt4G@={$9QrL;mJU{P_W*3DEa|3+ikudgiAs?YSORZ$#FMl;?4(hD;R_wGTxxYZ z08A(=ULkHMM`jp`fT_e;{=--Fmo4R%0Ocq}WmOcnH`xX2`4UMz-GHEf_e){Mm$Zzx zdE9nngT~E`w~dd3RQ)dtXdu8%Vq!*6*YIcO1#j?~(LhS?kFg!2sft;=cb7e}3y{oE zX%1?g7uOx0QR)hl;kiKSSMxW72sehfXn#*cJ%v;p5JDxyj&z9TB!PBuY zH-X_rtLL4S6zAU#R(HBa1~Hj)jfL1%*J9)8;FZiKB6K`BRTgctb_)GMRsn$%UyJ96 zSuZC@CW`F5(HNa!b@@gRRy`b!nc|^@I~s?yc%MH40$SP-dRiAWq@y#JG)N||cNaz; zEZ^UWScG4<7e@SSKJyuMvmN#Kn`xapc|!oyr*9Rmj85dt*sf*J)8}TGgk-3H!j+dy zV6Ew(5yd*i0VKetf_T3W7y_+YXsR+>;8nQMAjClhgL4+g34z@H%2E!~Cw5Yc-1$7R zi>e`(@k~yK%BIRAnsZrMR^akQf-l8_kbu+llWd>o)zfZBe?($gXjjoce@>a!KI9;W zyzfQn-$HiYUoJk{HeTACHL8LWGjq~;obQe!#KM-vbDqyOV5iWzpQd8<9xA_=C6#Gt3O(Q;iiv?CwiGU)lOw zpn(JoHi>{Jk%g_8I_r}U?Gj(DA&-1!rV}9*|BO16$>Y?Qgx)R$KYWB9YEPJ~PM!A4 ztu`}lL%4PXbll7$>n@K7v&z*g!>1orW7AP8`8%FZVXj2;(K~5_H(>~n`H6@0jMF2y zS*Y+Uv##(OS>mO|TW-}F&r*VFp7&*CLddlFK))XfqD*aVnOodQu)OxEI2RUVR+p!r z2~mj=XRHk}9Xo!0Fu@2-R`Wm7S2H6R>-N0P&Zd`ZD4lMQ=ru(M-tl!n8GM?$l&{Gt zAAa0fjCIMg#~DmMz4`cM1Q2O#;#ZfFtCXxRT=P^CO4!~|qR$M* zz>RlF(a=y1%Bls>SKxb^v5IrpO7|Lf(L*xjmcFF3^DxuODbmQqhbkqpu_1v++SaR( zTGz*-{quNE0wA#J_ih&KY`}^ZAEVRFI%uny=Yq*?-jlyAD5a>+`hiMtB!UQKa1q@= zo`3{!U|K$5T$dUXA8cB;y4VhY0+Nf<+NXP`Q=S)Jg!>ex&6bNt1U-@&XKn1RKUG#! z=L=?IWWLKv-W&Z1Js_NBV?36K2lH=(zhr=>{l`(z$88APWqhpn?rhn2G`}#UCSXONCUC)e}~cwIFG8Tg(R?$ zzn1Y6LdAJ9CF5T7MS-nUN=5H9C8golh2f`Bc=1`v5uxMFcahILZ_KEyc{noh@FxG# zmgeVE6cVJE|9W9Ao9j)q#%}xGaTj*+(R?V2z`GUf{IodC31-j%GT(tjYZo5v+kRUL z#G_7R3b~!s?j+f#=$!BiBtP8H;VPsSglSa*t$ z5)A$bSi1*EHcN-7Q*_qm{CJQ6{zPa3s!?QVj(%Kd9-tZqrEsnZMS4>6Qu-3{gZhH{ z3h-=h3`EJ$6!}#u7Cu6B?(jdOFH_RjWe(-&LEe8-JQ%%p`id+SnQR58si&R3QjdF_ z_phyuC*^y$u`;rBy||qDgr16k_jd1S6m334SQ{x`SWn{uG!I1dCmo<9v?k1+{5R^eThF?*@nAomd7GQ%!-~xQ^Tvk69P*#38@Z zO$lgyRY6};Wf1{3=&3(sE0c&4@gL-&WfLOYno`wA1k;kbx5Og`ck`2l&HtT^HF5xe zJ$Wvu;HN0~&iKd&TlrFB^=iaZYtYlMbEsPQ7cKoVrsOY);Lx)bdJppIczA3oW75(1 z5`^#XrC!kawH}+9*+1&WYd$}(`0ZQoofvfP z*E(+(m?X|8U0|Y_rKPEp(}rdf?wln(GL|qT&D0*7`D1T{y3cyMx)eQWPFm;2Bcb2N z>C!-ZG~XlZ&Sy9ag(Gwo@nLGXH8_+=;!%nELN_<%NE6D?0B+@FdYZq{FpDKom2`XF z6x^OmuBR}7f>Db=37_@QPi`NKs{GlZkoFVRBTo;MCyNOk z1lie?mxb7@je!TBx1^2r?}gcAG#$)B>WEllnx;Oz#ui~GCqb&5oOR|6hRm#CMGj&} z;;7O_6w8G+rZHW#KnVIuCDrO+AQ2(l1%tm%0ckC|o}la}c2KOvv5EpJbFK}<BF@z^EU-OBoWa(fc%P$&~XnD7DUq+Tp-0ZucGH z>e4Y@Vve1b&{F88As8Sriem|3qV0_8ShrIBIoYK7e|2tj{^$|i1uNqe zcav)2uFrOo+f-um%C#k2;>KucsxBRd2j2tQ+4feslB@S_`Hn*m3m2g9782t?yFj2 zI`+n8ol8KpZ|_go)rzwUV_!OMveDX(&V}mTE<`~oAP|m6V-wrm{-3u=uZ{x&2;Xo> zIJ<#QslB#o`+W`U}9N@!rD*r@2$42n9!t+g_fdONqh)@ zfL4@ARMOvy5Q;)oXp>&mf2}_IUU;R z5GW+Sn}c^M<`iFy3rdb!_b&%2)p`<(Kx=5%mHy&!xU)caPbcMP`wAODE;C9xWeDDT zRD$}NnfQ*kKYn{03!**$BaHv(i0$v~MWOLuhHY%c+iPNm^8aDZ81JLN1(mA5`Bp)N zQlcZAc;qP4^RezJ*U9YPw|UrYWaR(-jvemNo_~~S_T7)YD~*w0CtC&^^R|4`6281d zhFrQH>d)G9B|Dpzl_&dZm8#j0q3CVOg}iH0ggi1Ml8G36p$hDy@W{UdCiFyXWGrw6 zqQzxmqQ8Wi)VV=mH*gV;vgvZT8(kwM63c`%IJ6KY4lx5kcsQIw>MwVMA7&A$Q|4C{ zJSr4j8UXs_5gzs8l4Jd9U5)xok~Wr*hbvF0Z0e;Kn^AfOa&=sm;=(L&~ID zYE}yIel_BP1-^n!-1M)6eFY`}{9ATe#N4Eo9(sH0;l#IoL-(J1+02nc z!Cb;W%Rd5(>zeDI_Mu64^u@k?C*7XE-qFSO{t&{T@M^r|DE;gVSYJ;{@BsHY17g;X zDh(1?r1DDV6*fX#LM}-DEE_?mzS|HVw=?IbOH97h?(S18>H6)>MI@9( zvGMt%CY?8I5K{g37Q8R5F-NZk0$_7jW5Nr=vQ^~u_M@!-HF|n|GRMW?mchH!_=6~m zi3i15!$||8T%tI`41tO?H-0Iak`46ce^@OXUyVMBO2 zNR)6yhiULFm910`|J=6%*w~y%8d@&x8AYa?%*@ch)&!c~9zFoGBuWU0nrfUUOivsE zWDDyLX>&ZP!wmHCI6BK@yK3(f`uS3o98FVHMM)IcpK+d!4$5H&ENT>XTm;$vSQN6d zx;7|gXdjyq)48saF_3w}0Dg}E3JIqXK06-$ETOkY%Yv~O^hI6l6uRnSoML{Dtl2Yf zbLSEvXA_}cBEMn%?^@Q3J=(qR2quRsuC_*6ekyjS!SO0LE4O(@Jq<&lX~ zb+}(`2QlrlKA{eLCKX6L4__AvqhDC~BUVIykAJ2H^6YmWxe&Ym?sp!DR6K|RjG{Bf#T`p-_(C>XzFO`yV3{*qcy=mCLadEOH!mQ zYSx7&1Y?RtkXa9=cuf38y1A*B5zSJ38CDOWAhS07hL6f_#F%LY6c<&dEEAU5pnU4o zcu%iCNYPk8Ky+7`pA{Cq^;q$yr*%^R{3kUBv%gJNndOgaE z&BK}v&|(0^^Ki#=_?-7wXLofkBSc$0(XI$i`HF=P5F-M=VUmj(6wF&Z!~{{BnIFIx z4xb_DdTk47+B5xzb3f^_;_&pEu#R3)&ZTR0GchoD@e>>69K|_jZ89MB3Cl9OZv^LIfkXnZ& zX9)i5fXF*vTM_W{buNcnTq`q#o~-<{=DAY&hr>#G*Y_*d-s;m<_vjQ$hxa9Pity9m z*9rc|O}`IYgH70hPm-zsAHuINh{O5${r!E(FQ)GS8eY4EAgPH=9_Rh50j1WRFHXbV9!-9%$}rG@U`z}$ zZKi-EYVynd{(3nL#*U+CFU%;#78j4U+}Zvc!)e|U+PeErXjvgV8&L2U+F%43(Jxr# zh!+quvLc1jY-)^d7JmT#c)Nkr83fM_m)M^g?GG`F@h+pwGgv56d07}~`q8~Y-z zIiB-OIc^MWOvFH;vFWk$jQX4U)xEhbb!vs-y~Z!`%{x*S+~2aj6f;-)q|gm@@l?;K zihi@@54vu6R-pV4bn`VgydOOGB!{%=Sf2X;_fHi_`R$v>oQIM}3y}GzrsjBULbPfV zt<%6?bbP!6sTIHZ-ej=!h0-tW8><^8$rbh{4o1B@3{c8U&|)GIi!};E zYDURM4)+vmLB`G15$w-qkut{z1~+H{iH;_&;>bb}*)tPGlf(0?$v2f+(UH~inZ6T6 zSbPm_Rc^IYm4pvcRuM}{iY9=vHa*^)%|ql{nRr!cGA|Bph_1m1lzbWo`Vrpm0EiZb1MP67;^i$=&mW@5Nf<6;=ecj8Bs{|c~0B!fvC2e$#YGF>cN zq)WfdODY$3A}8y_DrNHd85-_)+GRQ1NNT*fF+*apVE*ED#fBcdzII0A7yjg0KcY!) zKoob`p9}pne#&$|(J4405{93JAcQ8($rkiHs6EK>P|q@#$?a;2@D51KwHBH6xI<(@ zzX&_g@SK6e@n>Ecg$BhCS3W|K3io-T3D-CH99f}dDTX)vdi54S(X&LASRx76KGRSx zA12V9V=k0|_c7v*`$wcjf8`&NNE)GFB`oOPAUQIQnURa%C!Ia0PHMyiO8|hr8aCMx ztgQQ2C&0$yi` zo=u^ApE+Is>?egRQ8Rr5u!E zrC+s4(cxU1Cq%H`$wl9n${)U@r=L4`N^$L~xd)`WKSsp-oQaf9OG3dCg+_FWrI1X6 z&6N<)#aOKaBYb6P1fXKHB7-!E*-%}6Vsxn>#nEAgl9A}eCv|PZiclc>fFKDEBs$5H z-MQ-joE&!FH!>7R{rcUSXn(+G#XxBiK?jgU5TQ4h$dY-4Jq(8eE~)yZNz+>uUO_`l zR!UI^yf@#_Be8ku+yA&NlJwvHU%q~fWk)?VbwcnGV22)7UDeu`&SpOD{dS^)$JwU> z$@Lv1od7Sl?`>wb)n*T;V(ol$%{75h4>TWyb(vAov#bKgaFZE#(kY&JyWWB6hV^6+ z3^--g^Stic9nCyTpDQfj5B9YYC`&Qn3%~T&=;J4r670elfOvxc2qRe0JR`WA#yeal z#Q{$iYh!;*EI9G{9df z#<`OW*HR++Wlk4?fK+0*e@oMf*%tH$_9irRB1iMaUK2kwyLIot z>etqM=gkM%|D|#rKXLW+ETE?+_|ggW^LqD1@9Lx)HJHra^J=yX_^`?bna9FHz?>wF zuqzQ>X*ga|eBXMY2OzbouGaT@4-DrWrymMJ2G&Xbyjvb$?e^^yPNucUr?|{tk1}Qr z)l7!%X?z#HABTetX^60-f;7NN_Ftl@uxgu521wp6YelA>N<}gzOH>sb18Vl%xnY&1 zhD14_j~AysloHfKsAfY;6*l`+e!hxynUHEjKqjB9*JPPCj!}X!jWNSTdexb{-&Q}) zUhb8Cva{5DlUH$(_b-#dgB3QRH?nje0RU9O=~UD_AmHP1ow~pUhlp2-6w!Rq8ZM#^ z0Ypd;TaFhvpgoo{cyxn6Nz79A*^HGfMjisdcC4t$G zE(DJY{z1G@w>gyg7#`+$hP%k%X@?{X)ShNa_l1@9duP8Bdx1x^kF9d;iRv?pz*cLT z>+9=uIO0zF?Mo1@=f98l7o~5EjDk-lYEstL%yk?)vCQ3Vl#o*nuC7*gsDL$BZ!2fE z@W~OsTPcmys_WTbrLhPu@uX~_z@T6V?7Q7`78aM96+QH$8BI0I8a3pj6gH%+!f*8C zl?_+TVGPc#OHk-vRf77ZbAwBv!_%O;A}vf=2kBYj0n*57vo|$P%T`NWxzIKVH4lx- za}L7jkdQOW?y4Y;2-HY^xfKJ|&Ii~5sui!|pLVkKNvuJ$m~2?b*b4J3^$98<_f9W# zF*RhG-hr@H3d*?1t>tDZWsulmAwi_CJ6VYyhyw;tO(PpF&Zlg(qXTiVlN=2Hy9OqD z8^h|u(7mcO;u~csE5_KV7Uzsk!ab~BURizxw@iZ&UU8P4KVzpndVH{3(90fN+h!3t z@2!^MXv_Lzf5%OPlJ4rV=OxKofrjJag6A)ht7d|*&&B%CKC024Wo2zX{u#_2&+-X9 zig4p@M9vDF1(Fl=l#P=k;hT0!rviCyyU>Wqmzy07_pU)P7zm_BBbNCo=`??bx1i)K z69vA{B=TiwxQr4}by1PTT-q-e~D( z0y~JaM!w%a`ge^6JSL%qnyLD>wv5fO>38;63-JURj6q=v?XI4opxBBGmkx{rLg7xO z#m0nwRA{SEmQ#UsF_;@RuZQuAO6vT1nUmR)!*{elKBt0Eq%bVM$PPsOIg;IEQe3Tz zQo;i@(%Pg%h6^K_A=sxEwPLaloA;tacEa)y58_OVzg>Lv>EEuM2Yu{(JPr?duSsTw zaL4qdR;b>c`7_fLDP{8B#k`zHk=a-x&faMg5OIE0E<^d|QgQt=deO+o$J)d6qFqef zX0Z6TCP%n;j>VS-39yIn`!%ae@p5x{H%y#STW_xkF3rgcAb8J4(mWpq*Txf{OvT1cx5TsgXE`XZA&Ts3XfbVjd#^dmJq(Gr|6wbnY=xOw@UY5O$G}8Md1&+Z! z3R|PQ{L%ui?sU%(PX+tdCJTNSfj|Em9ZmuM7DOCHFHocszaAbwwwYkv2)z7kU0i%8 zhym+qa34=Op>hQ{5eIs@=zvGX$PeG$uOvL5)oAu_T_lTg5d2~C1;-T=k4bPs%2{}4XI*8Xy{%6h>z&%0E#qN5(zt8ftd8wJhO0B*hBfq_`StEB#J8c)ypMK=9@;OVHdJ8Fy)N3^?Ck8Wt_Gy+ zj}~DGDc1ic<1NnSHgd`^x{NBA`({TkdD?-7z!)lM)iE?2XS}@}Hd(ySmHpEQi-aqu zZgd&kQ{UKB;l0BNHJlJjrksGvMZ55ddFqi?hbQ(6R59~=SKAkdp7z`;L&D1^$(7$k z>S=?Pvk-)vi#0$4kk07_-TcB(B_qm4AxVl^R!1NaMRu0oMK#5FVE}dEw4s`Q%deI3 z1uJJgN)@IM0f>R_s3I*`$F-Qw;bQslU#YN@d3!~IZ0x0r+-V7#Ft#Oq+m#EdLu`Gp zKDViOFeZ?NMfg`7K3(Buw}T?^OAqI9=X|awpT!n56HmXA+C-%-g z(2+S1(p~a4(g@%rJi&kUYP?A?h)U&^u4q4m8KM%Krud)Vl7o}r$BmW$DmGc0GTsIG z+rcXoHhN(NF}%3S9%Nkm@EV9zb|||M|Ip= zGu1uo@0FHI{t(g&s*=YDixuR>v=(Rih~ruIU8v>oh{+EhQXX^dTg}c`u|Au3J{iW; zod9eSEnyL*7`>IV>Pb53(ogq?LXk#RBqOquBvs&?Vu3VQf)RJIMG?xYmEkZ+5yNWm zzP^eETkzFW2Iq=*S(k_pvNGNnvcR`XO!wD8(i-8iY-^5cw4u*}VX*W7Nw;Neh~kN~2c5x>{=@i8j@pyp`XORa&DeuW~_Vb4nb{JHm)>JS6{%o-B~ z(TsiP*pgy4h1p03x))ySl!|hSSv6Oa3CttvH`(IlU;oNR9__XY($s%1A~5t)`hpTRlZ2h{&6w%ZR)69J8t*~WRNb4G?E5W(aGu= z8!Amv7&byvl@!J(<6kqI1Wuy;G)hs{Qb)})XUxm8qL$$LZVaJnz4H&lADJDV2{N3s zuBXJcINl4zi~=AGGRnip_=_kLsU0`hOtbpRW6D96$GG?c3u2@HytmC*pC-2&F67$L#;sYsRl0>lh`!F(D2w}_o z2q}WJ%Ctt>v2=735mSiU$%Z=8+VH^$!D`YHeRGh?$E*yI=xg6Z^Ac*M?Mn{PBJHSe zkZ!=*>Tkg|<;iNGIn7^hS^V|3*f8rki9I9 z*@mMKI>VQ|)->d(*H$b%8c|FjguNP^00CaFkxy{7MdbXLU*qgo$S7_!4w5HFmw4nD zxt5TUC*42^J4r)|ZyGFlzeEcIFWeP9qYhXvQT#L^iD{w#SwW!n^|oIGuPNt}>c+t1 z>3BN12hPs4CLkI?A^eHC_ctXR?*5akePcVx)+NhAb;*!gNl>M#SYdt~WcFa)Kg~Hw z$tP8ZOI1GRz#CC1H#O{hx^{=O3>yWv@91|(T*;JgXRTQj08p}U^gQZ`V#!RYO^-;r zDZ@dq@n{CZG*lN&B0P+{Wl?2T)5o%EO7*voO}>B07L;_d0D%Ri6tjy=g_1O^qCjXc zv!hg0t$A-8I^r=xp$%Z#JKVK}rP8?ljYh(r;`O(W%^&Hhsdt?Frg)Uazf|yrL0jWq zo=VWHU{3L#A1Z(dm60TEcM(ceo?&_dbt^dqFqxLkUm0UMeFeNTxkr@hvA#28uzCUx zXegr6v>{tZ=Lfg14Rq5L9CP++L1H3?ueMaeFT%Jhaw{2w(J0{tML9f=g|roNwAZ1W zRcWtGLZWK1l649Qbe8!vD-^7<@c^sBq8Qm;QIq?@_=u;ccV~gB=oVp`K;daT%e(OV z-!bkFoyrz49FfA8eX(iimPDH3=)%ObC(6?Fcq`k#Bg&HT<5!QehZLnG#D&@C#$fq+ zx>BeYmpj&0)k8vAIRV0xiVHTjD12IQfFzV(7e&v|ye`%~M8BGTk>4Avn8%`*5un97kx_B3lNyF7(yXQ`EE2rX{6Z7Y^s`3& zCly~zpZ0f90;O&eWy$^O@qG8yQ%Ho^!a^)!&&!}VfS1Q(dz??o&x(}&y{nD?n&19iMT{%YCnSm5*0fS3}0tsJgx6UiDjB~+_sFKs;cpSxA{ zsDCM#Vlt)fB*dgn8Cx}8kx=O<*?M8-*+gMw z5Xs*h?X(t=>P%Tx$}OyslaoK|EF89m1AQ96tucp7iweqjY?Oic(*o?y!v-*SMXD#ftK6ib82Kq!GEzgKIY5$J|I8 z2L+CN%@F*MJgM}uV&$LpZ4d-&;kHi)dWIuc5n|rDg+)2p ziO$=QB2ppHQZ;#edH1Mfod4lf0wl*s^Mk`250?R$rrD>h3dPqT<4{klhDOBget1b} zr7co+buESfnOu4I{xczXHon1@k?{wQ>kGRG!oS+u_O@nXu&@ZIhgc<1l7Q`-F$TDk zIyV`E(De6Oi<_(O#T}_Qa0!Vt^1~rt8743B=X@0^jW9mdQ^qIM}JDR4QRiJ8X zeO3$?MWr%@Hp=vST#Ku!SA80yUUAG>2P*RF$&Z!AMX&AN2(EU=hAKU)Ur0S>dq6UF ziM7?%_nU>X>Yd_9x>kK|$L-w*?~+P6eK;5PUnjr$xs(D;>}R2jC38reDXc26N{LGU zz>dj&BSrUsvo^L&Mb{y~#eopdqx_X_)yP3|8;%JAd=mvrqx7bB)ymT#SawWCB+J$Jt`g9>%r0F6gz#z9`H@Ym=Hz>G>?~&>Wk);Z0 zmIGACm-9{5)IWr+VB$#GIp&tNSJKCqdrw21Za2FQ#&!SQp|D-)m2(!We=AWT^dwl@ z!aMq1I2p%d-+(&3(r8SonmvU|q{3uTl66-e6hIOeH`m*1^#lGhGktOAda+Mewk2$) zdiaNum+xVT$yy@8*8XEJ7T%xvz3vIqG11bd=%?W zCD~Z7@-c-!RXqig8s>Xo9(<)hR7a&fW{&%vg#g=z)OIJG$DFt{3k|L`(xd_0(QW5O z)Pk$HDiTsa*s8Z-*sa2i$;x~u=!WESvr!!L9_MFj+7yz=2Jl4ujR;_Xq!hdXBK%EW-+1G5k#nY3wh(fV(>-`oHZC|*JR16-n0WTM7%GfPb(WW)Q4`- zri~eBRpzB-1TY}%B+9yPt`SigBJd~$++~f^rFX|xEBDLE@5)Z9VqmpD7S_t;cd?0F z&V(b7BfkLLaqSs+{u7U__|8P_;G+U5~0vva){> zcuY_G$v)rVIy^nRvdwgxa71rH*!1T!5{Ye+zwAju|NJf$!xvU*ne!HwTHX%zFTk;8$2zUlNbm-Wk0Oa z@ar+_amm1w%H%HJ>cs-F){&cZnLVIDJ8zE~P)w1ec1gy-Q|7(if^mbJDnku*S-ccGJG!-{rLBr0y(G0w4GpivO0D7s0Yg|Fp72UajpVal zrzlFYd$MDe-IH3vabkRLm*SuZfmvB@jwHO%dq(|LFMfA2wLE3(UlFZJxoHMLbG}(n9BImPTv~a6nU0;hu0v=)0s`iD=q_p!K_c7EQq@C?{K>kr zyOFm%66U|CQY9zUEbp0-m#6z6DHmLcKrjghd$gfKru%;0>gOe&H;o*hTPB|hv0xHYps%AOAcX|Kdro9}7!hHvzgL@QR}*nEZAR{5%(o z2>(1EQ&)bD_|i>b1LNKLm!Ttzo6uMkIJ^DM*IlA9x#CHI%aK@t=!&+>{jUW(`XvLL zYvT~%Nh2d@-h1@a8*k?ty}eN}3&3EqjLJ=D5pBeob?U;JfJU=;Ku zrKx=W@6z33Cq&gSgeDd*P%=&SDT9&HtBh|7H zH|9Qbv)DetS>{A-qCdu3Sx3iTIoDL@Bo&UrF=*zw+E5ZEp8~SFFbM2<(}LPzzH_1= zRT?&5+~H{D{9!WUUs)Gm2xd@(@RHt&?Ku0=albU+_iRkdE{;XZR@Qq-W{9oQV-(GO zP>Ev_uZdZ{ZTR)B2>LErTSnzEBArL+yr}><@fsEuCTjo0wgJ@8&?Se?|MWV0OE+}T zlglIg4mNGodOBy=YQB?j7-3%+fM` zlQ$A6b{skz+8?mMO1WT&oX^Qoy}g%G^=<%1-mbqMLDTr8AWWjWLB${ug#0n~xP*%s z^tLs1q+}B&i*}`Ti(D#KSm5Reb&$!UA`lpuIUYC^$5Ia(E z*J>3Qj@V;&w`Kj#)_?CVDHspvzd(Dg;LcUG&@`tFq<39tdu(_YTsTXod8DukK>rR& z@Df58P2Y+-5~sE$K!@A+Rpv4g;iq+h&{F#1I^+JsC@8spK5!6khtB*POo?z7NA*0G z=(ye6__D1AT2)7httD%LYvebPgkB^C?0HP#&~$h$BrQyNzHo~{J5wr*tSrU(`5Q)7 z|6zu;j`rh9Hw3SXrI~J>^T#(K-$$qopc4{yXWsoKd{zg$g+R~EZW|`dc}TvOVi%Sc z0q9N;T#Fg_liQ%ixJ84>R;%_>gqx+bs@}A=wW<9gWhiD@%(Xaua@^!Wpu7Y*B=Uus z;3O1o`Sz^-iLXP6L}#S^-9$)CJ0B9Dg2}vf`I$AV{y5Y4DDRj|*@TAdGzw1cW5#Dn z=@Ulw_Pu&tO-FK5^kJqOwZ#t4xg}mtbaSw^CE00^YQr9b+1^r{iHP64~4! zz1};xi~UG%e-m+$msb|dkRmm!@|wYevdLLvZ|ciL$1nbS1__-3tvT;gNNB_M;|~Ky zyxQDu6(c>0r`Wf~Qm}t(ca*v!tXNfM3U+2GwMJRBQOGL6<`o>WM)uDPGc@7~-Y+sh zTOBLvRaqK2n)<`SG@F7%l>{exHcMGfGULBE>r?*G8L$yIcD_oU3>Ope`hNTPUu|aN z0+W?#_gKBQ?!02=T52!#_zr*ePgWZd_Cu_TG#O7K9I~oeZd4YI{XrM5m zZQEYH*fZV)E0l@BU<0yP+uY_!*?)Wnv9K^1wX9}ha^k(KPmmfYLzzQYCM5$-U=lSJ zhQ+*d&+zBpuRrts!@J*s0(sQOoi~mSz5VU~+rQ00oMg60s@3Mu zVlmD*)We5ZpJt&<>f~O^LZ^U`rfFae5>^Xgc!n?ulV|cwVn_@tyPUGQJu?UPnNU~@ zhF}<$VOg!EG&8N#v@>p}oLNq+NfT}vlUb9Ia~n@yi;KBg)#EazS?8~Qy#63;9Drd0 z8>Y0e3G1o^*88=yD~2-WgxE4$3bjfSOEx7A9nJ`#tDE1vcZl~WPukxqUhU5}+=f|z9%QI)_`MlwZ3HO3X8 zW!tNl`XtP1C=^;|Wmc2Xwe_|6V-ul+A`7z`R!f17*3j*OPxsoN`a+A39%!j2I#SVvNN5rrwb9bo>1B z?+q~=VwfW@Py{jPL%GIUWom1CmJCAkNl@ssz+%W5c80xSZ&@s>WnuE{`(|eU{;9TX zZ$7)dd3I~#%=YG)?aedWTW5OPXM5XcpL+693eDu$Fc~I8WSC57f?_y9S#CVBG+Nle z3(?pf4j*{zRX1jPoz>A7Ey321rHxoug{oMaP|Luwa)^?FL`#ffFfkJli{M)e0@`g< zW%Lu;7rB6wDFVye5b zdX>Sf#2&U{A*<>{gq(J$qgvGrRkZLz&9y_Fp{kzAr=!B9(fQX*tcnKr0DyMdUA;62 zmG{GxfYc;rZDVWC@y`BZvw=U2{ttl)h^af#edo2)=gRC`PiouX*d(QUvM-#508UW| z3Wsc|{0l#gXuY!%cz)+wKX8}Z?7rdjV_;DuR!ced&i6d<8(+Hr&rjCrkxHb7p;~s@ zt#T*GL$F1KifRoepw1)WP+}5Iz@cuaH=%v1vJuO|u_!>@S8ry)Tv=VS6S}#%wz(Pj zUu~46pinE({Csl${KKL;9NN3y`0fxaDMYAqqCLZv#l{m$vv(iZWfnF|Iz(T-dSUoF zgAmvytgqWYP#c6qrYyIfS+kT948amHi3xOC*y$oGj@ZCR(7|r*z8FU|l_dnG6L_Pwifw*ke{USFf$BH8BmU4j~!&yTWTG zG6qRPB4oP$`R5)k3VX+$@8;N@DD;z4W|gv7f8xsA-3LcFY#2vo0PVrxfvp07W>+@cPHO|0x>BIJM|#DXLQXi#3bxONF?7Fl)xtyZKC zQS(=5WURvny&>yw1!C;n~n+ke4w-AIvP4N*{Tn3}jRVvvv3Op8JBmZfhD!7_)kM8o z*x+Ob>CRv{c{Ei|P*MqL5Kti^RiWWZVp#lk+?Y$bIcxnOcc4^~Gz3*bKWuc4y4y6n_mb9HSk-_qD@K%*fWSUjd6 z{F+q?K&?TVu&RoX7g!_b&OUnk?eA7FK^R2Ltj4o(WwHLm<+-~LjY3UOvo+(w=7z`X z2*QURdg#e>=Rql8YI9Biw~#T{l||JGoI#0qL~Kc~L^UlX~x}%855o zRUxiv0)i54e~u3-hu&pYl0>Wpvl{Xy0T9E+;u%Hywnyt!9fB2<`fBTOD4%J#hno<@_;b0AGWH6Xw3I&1LWNR0fo_Bsu8XyjO_ZXHop#rG~hW>~G3-8Mm$ zKt3hno!o(Wu?E#5>#_+}_=Z%0aMrs?ghA+u790#UXoE z57rQHha@$H7U~f*uq1Rt7aR67|unNGB*lcAL&v6L`PWSE{n zCqp|Wn*wipG|O_}`~U0znw;bC@SeTrTW|e0AN~nfa8>5poteS@x4-4reyi{b1&w#~ zAP~8t(}7XU`|>B>^^

    xZA_K*du4e$_S((OB<9<%k+F=&|li@uU2KrTp4nf#jp~@ zfDD*~Y^`fGjpr?3iBe;YVPnV`wh3EftYvH6bLYOoY?@RaX2WE)D!0CI?Rx$0h1S-M zjn^K8pZw$}AA0BsUz1+cQIyJ@Wf^;4M(qnEK54fb;0Fx{s;DYceEd^XhsbcPlDu^m@9ur8xi1u< zQQUX!(YU)SkyKd*sYJDN^Pd`3=ETUwW-96M{$!`AyEZ+p||M z?ikM`5rITxQ(oQJ+_N@%9lxNyB-QiA3t(2@mVxq-si7ZoQ zXsSi6HtdIge|~=Z$dTUs{Kla}@Bf8gpa8$BBJYiJ=J4UqeBZ|hLoTbL-=5BcKz4$V z(GnukL$~xmr>xF){=fg9|MsrgyMF3jKlPLE`pG~4u0MbG8}8PoQ#rJO<&;c)=$#+( z`~4&5AG&nzNx!i+v9X$^8n|y3wa|o+CM4cxsWK^}Szek1ww}NYYuFgJhD?00F>I6S z*)v}WuKd`zHf*!wZ8XOH7GpQ!2FGixj(+l!pM2<{$AKvz_zx5at7e={Vju(3dk^f{ zc;uVUUR=8KP4DFBzK-RiDUg{80^4lk;_78;cWQqI!P@98+;yc2txFgvpvuFIqCdcB z%Y$K6!{p?|Ep3cBqwYO8+sww3ODl6a8=@_XLff6zpg&;l#IVEb1z=b}aTyW9jT*TY z>AKqylOG}i6@Z9QpQN^Q5U*^Al~jo}01`%-0i%>489PcuU{I{XL?7z*0i4-xH(Rob z_f=uNjbfMryG&c#y}4r@D0?5xJW&qSdqptl`^0(xZ`(LC)5TD(lVS_`7}vh2*y|MXw|tDpYWU)^ONmE}a0=&&e^_(Sh}>#u$8(U1So zv?zC)|Vj@C2w@gT#^oqOk-|94%u4ewGICRHdi z`>NP_;@b4x`>w}8@KyBt4}AUWC*SgxSA+~+TM*U=+y|t91zc>m5-~7VPm&B^R7ur& zH+xFCX3l5JjEzKET`_lKL$ur~5{EOnitaOGoxkJ<#{jD%bG;l$9sJ;{rm zejIN)F#q)0de?QrGB0v5oGBbY#1i7n8=Y5`>acRdJyJ!| zujc8!7^}?eow6lkSX4-fgbX-b8EJf8$B#A$tgn9D8bl0kB-2^FR2n2^x0=QI`M<*tX zbIL5t9Kr_=9{m5^_mPi3{JA7AdacRCuoVqGxs9UF_UT5SGe;!E)1K^rePd!c)Vun=qEq<$%h^~1?&x4DA9J# zf?ax6uncRhk64CIyt)1G)al2c8k-^_;w0T%*?Qvg+7%>8r<+>i3|E%QLDAo(e~yvx zalO~IGkCaJ?1T=?RJ$br#lD$WzT{&wQvYgs<+BDtr6G<_Zm6L7P%_K9@-n#mh^>5rMt5k2)^>S=XgdkA^?LZv=CBw!t zn_vQ3A}*f#)|W#~#>q5#rl^UBI4ux)j-vdTe}SD|Z#646B4tgrOkU_BhU;#RvoF*5C=H#<5f zfJRuv?Q6Obz4yWto5f)kl1dJ+JVH-AM(kAn%m5?f@QrhNw$-0AtIjPKu&B9b)tWgpD0a zhFCZ>Wx@FS1>AFXQG+jFq;X#41~B?&em zvn$maC6FNqYksW#Pk;Y!5Bg|O1gIgMOf+F6tZj>KrtJ(ZinNf5J$sAPuMc}^HgeW0NNP>D z_SYzZPPF`wXk1bcYiWBMD)gpn zXKb6=tyY#GOEj^XSQv(PYSXx_^2tvEu$Ee_Kw?`U^}g*~XLD07UVLhD((mj96`Eqa zDB;SL&8w?Cfi6w&|Mc%)`o6bMkT40WvM4(-sx&(@Q*R?(Ud$Dfoj_6+z57F8xWp4b?V%? zl>-M3*QBVOm~c5e)aeepHy?fe{Dq4bE>UzuC~5WB<9!&*W#{X# z)=H8f(6y?5WDUf8I!@DIYb2_vYNp!V-j>zXr|0HezaRI-;7(%3^UrTwS*@lq3GVFl z2fZDz8VHN9_v9S6JCjqBQ{E|)7)yJPx5`2dH?gMir$dZ(3=gFUMel~{O7Tz=C|_{o z`M@9>mlc@k7Q1;1HZ^J#_{J8WnYwFwYC1ONPzWFrc^W6AvDwtl?96N^^Q7bjzVyYB)8-dSjsE#TifUl3K<66?L4-zylg7?jGZ&>86n%Fy$^?JQD zK}Zdyn)9WG`K6l4YLt??T0@w%sf?@+R{JtBG4X;E+r^N);z*QA5`tI5?4&*fioBX^ zeV~_r+WW-&q^i=gL_?4QHpGsE=;UbiA#9>LIW>9Tm9JEyPT&QVS0`GDI;o!mLMZ6#wNhG8XE23W)q!3gmvg_Ddym}tYK zqTZ#4FP!6vI(05`mQkeyk%V3rKmWhR_LfyNezpEGJBf=BGxFgGLcg3VFQr}KO+fCV&DxNks&0}n-Z03j(xf6 z_(6c{7Uy9x-7}+ap{Fn~PT@UQf=a0LTngu6c1kmF$xu>x^4$9l{yBj-avQCUC(*Y? zw@+Wg(d_y)M0Eho4UE?Yg!kTiFMx+1eg>$31gIND#Pb*jWDL%*D4ZXbo-EsniENg% zhA`Y>VrHnz!F4-?#?Os$`v^^a8N_mzmFP^HdV}8NWV?2rHJUnEbE6;($DgptaIn%! zXGA$sSGfW}cY-!{CX1pnrnI(9Q#2qXGNn-E6&%{pMC!$P@(K|xyoit!R9?NJ@~AwO zUU!7HcgQ~1zyIJ55Z8-&0({UkmMq_&>C}JyARRUQlWEHcM>AHl3cf$f< z5ZHu5q@toiU?L4+@g^k3!%m+)?`Gf}ypmUhyx17Y2BFw!i@fLP+!NzNcJXL-*?TIA zWP6*d3L>Pc#>9RcZ+XkKoaV`gx=*03VuQrLy~axkWxbGePVo;h_#@Q ziKYl!f@Mi841oxa!Z{IyYzo_CLl8BjZa`ygT@#vJAe=fNApedmfM zmMyV^!LV-(bDeibly;fm-Ef@8iu8M|kplReQ{VB`>|PN8>Kf>%c@#rJMh%N$H72ZnNv&(8Vyzkm2XGRL zP^g3)=>k!*qzVf)T!$`!m|<#}|DyLgWWwpV8w2t9D#YroHB`d9*cwvkJ@?#m&pr1n zE-o&vt&LF=H#%N37sb8z-uu1ZdpA%5IWPn&z{O6~@gaatq-8nSuKjjI0JE!H!7<^s zeuPZCG@D3mhdhYth=r!hUtM{HFjB;7u5jqI-D!n>)-Spdyz)>$)GHZdiwcU)#6;J$ zWo3Q1Z}x4@O*q#n%XXfJHJ24dmglx0yE)*U9Jxo~sqn}>DoR=;nj8ch}^nbHpQGB5GkpUubrZigd)Tsv{?5AAjNRv#1mhI@vJL@c_Axo zVHnm3Ct?#dl0+dA9D)I`W=;efzK^fjHI>zFJW zhh4={iLNn^Aj zX2+wOy0R)7w>ki0s-0XWXFJ9)*}Bknq(MP!h+u4|TNQ(*z*nuKMkz4vpQtt8aP-tF zL5d2oV2sk0wHw`ZdfvCpBmqv0we6xZ#!h=_&CGC?daO-(UsaXMb03%q5hb#fQYp6Z znixrvz`Ro>B+PF*|J8wq7kI_6!qDlU(j8AbLpW7B)BC^P`4LAB6e`^ZPd*wTCO{5gdNzB$f)+dqIRNC zXf__17y@?V4OD}_c~i%f>K6#J&=IBXL^|eU9RE-(t+cYTYjM8Pcr8JA@4ffld+)uc zPMv!A;it#kc2UFXCgNSCXmYs#Lg{UH+AsqKOtmh`1b~=pVM!)yb<3g;i|o~u&6?bf$H zbLLCkt|M}F4yUWCr0_w3QR~S#u?Z=HFp)v2l}8}E2M&W014jdgQb5o5|KgrM>&Q8H z2QLs1NsI!B{Lb=YPyF^N5mYe{dhL{Aal+* zC&q;I$Ry9RJa6TBt0-Dkl{v>dJ6u(WIIB7F5VZPBQ zq5*+*0_<3SJb<%Sx5)dHMoCy(z^cl@XRWn#AVAUdxh5d7L?kiI75efxyjr;_+BeY> zXccZsQPI@&3_(?;(=t0dy9)H)x%Z~!6dxHv)<({Rkn`W6=)G%~?^^Tnj8i#MPcSUG z@@$}`0}QANN}3op{eI?L;+zkaDO9uJuss;Ghr>=$bgOEj*L&pNdz%c2nn@!Wb;6}2 zH(Fc)9ji?W0+AX*t%ZUq0?)D-14C+A!(JMWST_P!RTi%d1(ByH;%cio_#0w;W1}0^ zbzGxLj3@?404L<@o|L0M5qTx=8g?;Ee7L-qz~RyoZfv|R`Goi0dvCwr|HheTffSm6 zq?@w$uD0I<@Iy!Y4lY2dVC)6kx$d)0jSP%l3RMEQ)$SHKP|rOOP%e>}30fIx6b{&_ zWFj*zcM1;S`B_R;RVGO~toF5&7ul<>ZdOy>eTbnfU?%Yn>QzMpLs6?Nn`^^^``*63 zb=tY^V9<9?R#%PYiGdnY!^EP7#TY;+cgQO^k5W)L5sPlyL&(4;5@{` zSL8}6D{>Y2imHl*$-{Di5|l`!4@Pwlgnzm zTH((Ad}ly@XbSr5w*7N;4IltSPSgoCfdqv!A!H}~P->~9Z1Dcixt(rR8SjPJTT9+| z27~Tk&??J`vYbegyT0|UM-Lxn)fmNA5Aq%y8cu-_Isu?g`6CUHdd7%l4fQIl36mMh z-9#CPni3z^^^_=7vV)LP=tC7a^Pr{1AV6wxHO69!z^f9e5>-N#hmWzWP>`3VSjbq`?z0Z7U!;A#MJEG z!veN&K86I=B}HqKuOX6&Kp_p26sFbbXjMxA)Qu}cEzh8bM=lfq2s@Qbw5-dWMh;W0 zsZ=WG6JVj{O~bcTp;O(Ul1T0I^hN0=CT1Y9))_$s60DNmW|7jJor!d-|JBvivxhg| zRj8OylT6e=P3<@+JP#{%f>J1VT6&a9@?8JtXFlrg^$yOH)DQ0<6}f=J5@o`z<;TDA z@gKE8`Jtx1Z@{7|t6E~Kx;6R6$G+6>Dv{Hyvh6Apky2q`NXd{asv=RnD1pq)~>nQ^&`N+Ssr))Xp*^NFo&h1+$`$H&0rPbzPzi$jwq_!t$uv6^c_nwOvm*%~-#tTAOQFQ?Muyk}# zA@^Ddl@67lRPxXDe`e-~9R&+e1Nj+BYkKycyeD6=cjUd%966#prWXGI0MZ~mC`6pH zYPGy|RF0Z78CLz4WR+GyG=ypOqzXwxy=WzP*`A&J>}S`1;^T3blhD3VX|>?>Z8JY( z(j=PNDqIP9?k+D+5lLMwf>n)3>Rh|3I?PAY^!UY#EE0O}1ob)$);f34427B6XFoShQ6HqDo2xc9A?I zQFcOJ!oMVJ#3a3*Dl{N)JjwVaVeqHvtbfT-RjK#O+uKdDBLm%*U0zyKD7EHhlVX@} z)f-bZ07FQ7P46~#b*AR_MMOC9KPL1UfQi9Yu zwl=9b7y(IMnz@BN9fu1QkbBv39lh#@jx!^~@zMhwW5iPQBLlnqn;< zt_-;llM6N8Nq019n}b;K@fNG)2M ze%qHGS!!KbeY3uag-pdQpII?bf!d%ug>D-}t%_VFp4pLrE9%Y6fBMraKlxLkp=gMS z!w<}t^h4|0^ZUO1hxts`r^aO_UC*J3&GV_+FUmkB(iQ2dPPAJ4|KJaP<41q=3-{lz zJ3BGyx#nP-3QOT-eYYsIUJRx6U@5rQwI*Y=A;Nc!I`1SrN9@o6Rd}J&0SZ%>1PUmD zXkB8_d)D7v#AmjfAi^mhlL3QDLFzm)F37jcquDT(pg9 zU=lQZXvAquxr-Y(5mcb)mmZ3=Rp)k$kgck)#zA8-2a8b(v0j`v4GwDtphS!Px*|qcM6B3)S#ta$CTf?<-bMuQ^|NUEj827-DSEz?* z)IYroVvxjwoz(KNCb;M4&O+_$0=0NTg(1n`;BTrLK=n zV8Aep2}}%PXbY5@!t*>%eggoMMNk_g0LXcA9x8}UYE(r?G*ajF+G%(lfP&mp5wO50 z3E&l8sSwURm7blNlCoiC@&b+M8-KhE4sUS0jvx&5%oo1-&8hkMI&UR<3PM z%*>PeP^EUXZ`BxVd@veub-mb+qMk+`!s}Sm2*_XwfI!r*(3+SapAQH5SfGN||4LO! znk9*r{f$etA1nS_l!H(#NF%2Zek-mKg}^HT{iVEX7f8T`KowP0T-m;L;+-GtAELLQ zB8NucvUl(v;>kM-luT7nRZvw?Rgn)&>Ex|P9zM5V$TSk4411`mOzxduUmvdh$<-s3 z-hsQIAb}BMz_E0q`WRsXVUTC<)Q>hgKvcbI$0fa)*-!uG+E08O%mg$5%G2L> zN3y;5_)}jm5_P6CH5klh88fHM6U?17o%r|v{$Krtzo38lFQbkoRc5iamS!AdWojI% zG0MYh-}8PPx>D4P&$__~(#@Tec7s3!nB{stIR{)_ld)iBm*S+rOT$-+L zY)sA10}(e{)=uu9r;FF}%@wQODH%}`5Xad;{S?~BI?BE22?2l z0`-CC_A0vh`11Q_54wegCzHXG`=?GUuWDR5(GwW37xd4df)*$%@>?ChyiTT|c4V)7 z;q)*3)nC5O6m0CnmsP8>1o@{n?@1od(S-+7l9g zwf@@ZCjzYoh!?2030G1n6e5PnJ5NIKPvTj8NUjgPJV`tn zBGfqwo(W%(E2vuQRM)l!sE93>Ydg2@nMyocG0IS=iiEIP5iv?y`LyEHv^*-B>0DmE zbUWQP3g%FXEe8n<7HFuu5FFzM3`Ih!Dk)i~iGyF?WB$!&27mG69b$+|U4KIeWLVN` z&$}z&={X2A&@;(snaBJ*37K04zk;k8n#R( z&^yGI)etj-0s_M^qboo|;x7=>GB8#SBgj4PL%ges1l5VW*QT>|b89IaRn=N3f-Xv4 zA%?_5z`-E&3Qx8ac4}9?`mO)dU;Jec--y0&?*w8?`@WO!dj%wX*Cio<(5!1NNzm_u zXk8?qoSdAW>#z0*24tsNq$PGTEV1Q{o%tj4V>sM> z!6EBK$ke`>!SXhNm5lMmIUxede7HFbIVct_))D*ySV$8s!`r&IGo>4aws`3B z_S{r0xMDg&y-h}l5Re+__w$J?(UDOdmCx9F0TNg{sA|0D>MJn@@J?M-xT@31@++LV?(EE2AuHz4-n~x6fP^5V&O0{NE4(@f4}!o8i9j4lz~Qxt{L;p@DLA1- zSUiiY7q{=7CLtk>_EAV;CCLZ<&McW$d*e(sKS%ItV1riB))rUNp51e4`6SOZZda%ozMIBUx^6=og_ zE{Uv+wWYPLE|e7g^+Y&z>fUFb=3-?txt&sGOC~rWY7mBUpiu_$h;dPXL$+G*qXYse z=BY?r8>&=P+{2=`1I3(i5aBn!ra{Q_V#$smb57HqM)wvg9?BV z=hp|qhF}a*4k3gT?Z28wAX2cmBpis)5IdR=Fq^XL4T!NlEL(F^P+#A?#c5CR46b-B4OjrdwHisr=!{CI;^)OAh-9xq03hWX=RLqaX3CVSvdz`h^nvw zsS+`Jscg#LIOlcSZag*LIkL7&tO6C%fWY-md1Yf@#c=Eu23adkEX*MI=2cmlh!q}& zD6Jd7ms$|&rh6_3$l&(-jSOAu~%mk?+_9_Y? z@~9(m16!MF((>vdz1g|n`kmg#e>4#mQ4eJjwMhsBEn2P8xhhFql7xJpuvr0h+cXhJ zBt#=hCZy*l35rXbA9`OJ>g_Vf)Tu^|Gm4;=YICH%?}6nFj=_c%32lS}$u4S~n5}`| z=_>$H@~RAoQsod@;FW!CcS3q3yavBKAWESiw}TND;!4!dlab2Iypfcc z>cDq~#=fz2TuU^ruPv=cp*QlGiLt)0OeA!5X;Asr>;#3z0vZf930-~m&F`H|%}7HP zX@IJ#@S+fiu3lPt^MWn8)$4YXmZ?gGx{dX91D7Q_*j{h5>cs5Q1x-9Bo-?&Z*($SA zVE;qiG(%Kv+j45EySJkQvMvF^5F81}`?;jr819>&B!Uu(tNmMMJ2Vr+$iVOrRcvl- zme%iFxcHGjSKa+#xM9Ug?c%w2pGYt0-cw)k6Rxx2H&aOxwTWj__E^|L0VFmBqj3l+ z6bwgBpb4oXCnTOFVV9Aw*tf|~+R3S`9PVi4bLUD4dC3xpMD@zS( za^b@A$_lJSmciO%$BzdPc7Qz34<9+!Ti*c^8i17*L_z+=;ELL*M}T5^`P#K>R|D{B zWksQ)R27MVI1P-#6;}${)16v<@G5d>|NedR^OLduhH7L%r8X4>UY`5*|)u>B!*xPObs{keFvwZ+Sxbx_~%c(@7BXycXbAl8aVPBgRTB^SHAzx z_57V$<(jch=u}hU_z+gM-#|}&x#&o%MQI|YrI~tf#kP@UY0IWb9R(5mZYm^}t&j+- zg9X7`aqJy?7ic6SQ;A+XY<~B%&wl?86%t~&JXFc4RvwjC{leY+{SO(VK+N^hNBZR7z zLO9p|h5z&aG^~bE|5Wk8AknJQs*s{D{psoHSH!~1%nV*BqvG|n2}hA=G=JhmmFJrq z+Yo>&o0qN1m+DI}k@2c~_D)@0UQgOx6+?v&DkMhLeJIAlC>dBoDKyk^3ASMNUU;%qS{1FKjYP@?wl!H;s7{Xm5Eb^-8Xe@ zDN5Ser9&B``cp8J+msa_6>!7A+`bu5ClnZlQ>j&Q)G*53N4LV(##o(Es`SDYO2Ym zn%YL^sOQYgk){QaY)P%9Nr@sU00amYw!%^<)PmY8E2DCW$k>!mlOkHj|p=IBaj{ND(nu_@-*nZ{m3M zgYf?Q@4x@yhk?A1qz%RW&CO~O0YNeldyp7%@-t%eWt^>GXB4Ic_P=`Fei3KHR)? z-;GHP36_8;__lZSqb0{lgaicjP0%du*N(0rGs%m24uPJGuhLCCx#w;!M4zeo@u#OH zyqGWo8}Y8 znfw0e-+%6V?(?NmK_Y;_gjz{dwk@BXXS6q6>f8rS6)BSqAT>*dluWbXnIh(B1cFjy zE=CwA8NjAlPeFjV5RuuBWWmFkv4Io-Scw9tGBn`v!@EE8GyhYxXfU-7gE5VW$x^Zu zH3kc(7f*l3hrZ*R3W@(8_k{P~fB*eo`qJUo%mDVcw$|1fHi9q=tSKe6+#E;pEQ|fo z*1Te{|=rdq#OL7CB}L#M#!>lq@h+A?wJ@Ge>o33>2ANH*jW0G(7Da+X?~NW`+RV zGpJwxCKlE_0pJ-Q-|SysABUp0fv&7vd+qB^9rMF$pM7+$=`S5yq(rPN%I)NPhT7Rw zEILg+zVhX-{HY)8X;1>^`vJ09wYKgI0F05KyMlt12 zTEBvfHAO|rQpGmjC}q|wwU$x_gDCCe3-G|e35 zK?Yvz51VPNAh$S|%ogU$o%Jg@#T6yTYme&cqiOX~Y<)HCJbwKvUl2GVA$D!kiChOU z8}gvg!GL!A zYinhRLra$#&YHs`M=Ol7L68}48^t^BIC<{eaB)Fj``S|gn0YcdBRNi$+x=%soLE%4 zRV8d*HXeTRPyT?YNmX&vP>N)UQ=*tCMp%-RNR>2Elc=Jm$(~XmgC$sOA>u6KA^=cg zBFh1$#Ca@M+nr&Q?dOf4!~xz4G4>|CD174dZ+>LMC=dH5BaNhi>Z#G@N8XfOx1H0X zQ18`y%bK;izVp#PeD||oSne&p7hRL|c5$ zK8XoQDPLl<2#gAA*XS5vaFmE6C;`TK=^H6?Vp4HQoR)*SsKX?%u{^!%O&Yh#M_CPQS z%;VK?>YlgcNqROTEf?0Oi^q>AO$xxw!KaKE^z7OOUz%>;d)qu*JKkxe21=IN+mRWw zF{1a5DkCV9GLD!fT3Z#f<@HI2^jKCgWtdQi5^QDapX%R$Rv!ldWjVU?-0u8nZlfu0 z*g7C3R%x3wYX>hf!Fcf4;larh=tMWMDD9biSEL};uT z*{~B4kr_ydIg>I3W`hD`YQ#*Yr0qbp8eE{cG!Ux|&_?IzOtebL5)jFhH7g&+(LMX` z-qv%~4Ig|sQxw;)AKQ5N&e7a_p8J=@H-GGR{_y?p7O&QWl<=9K5F;Uy*5{u=lrp1l zpmsGr>oIygfRxlT$IUl~fG>HH7+5{Mqd56~FgA8`ACl5UE#igamK24aXr%p+8{DHYkuai7wNH9=S zgt}*W>qAhRJ0p|bhj(9SPT&1TfH1A74h+fb>BU?=u>`Pz0^fY=t&cwa)V;T#`}p(E zf5$DVu#{QFeEV%HOcepKQc{L8u@a7?zC4LRq{Mk1mMtr9O^ zxC(WaOkHli(3t{Q9%RU{RyT@ifaa{kK!O7vJ;>g zC}ov|W-9U;<5LB=)K=!;2b?(c@RGQ@Wa3JyT1!&lw})!&b5y&8t3Nc z(Z9NOWk27>L4deOi(X30Z&*m?v-_yUga;n@-%p;bMH=UV2!O;~R`-1B_>=Dfl!Vo& zWb_0I4g>)t!E5T@Ad{U(rdx6O@s}}kvB5E~ac`r=f(Mk|11JSpcm-Qop(XGoRVr z+e1+t=Dl2eip;pdqZ9=MfKsfRy$P|K)V)G_b(n&32aWBCPOkml^74dvZ!m}=$dU^{ zfoWeN5v!RRhD1Sp-MW&PBP4?}II&{cO?RIirke`$0x{EE{E`_VwF5q&)T9fy+7YN@pTMFrbuOnwP(WsK4YC9h5Fu$h;jTbpg3*=Wo-WUz zHY3ECbA*bz+yp|Yw@|F=;<=pz0EX7k*o16JuFzWDEHi$I~OzoCqjQjQ~bCTQ7$Eb7z!rIUZ~ z@vHB7pQ@U5EP8vHQme8CnG#2$U^TSv!}URZcxNm|(mLWu-hA3FySC1H+h~>mVeJ@% z8Rb*2-QZALxMX9YZssFrN@X*m#HuhVd!gV;Ya(xEKt<$<+;Fh``~TwK{?t$YOhW4R z&UUz)AyR~8fQn!(NMmL>AD&$}d*6rddj(PRb&i)Egexm6_kZCFC<^p?h_Ma4P6yLI zj>aK?L(hn|dI4x>UlxZwwJO#rOje3mZB^5Sg{mm3qNvI;I+q`kl1uOT{n2MXkTZbv z(ts@)HQBi=>NH>)P(^sM=}5-gPZ8ddciEYlYeg3VGl4*fi7llYZ@cBwzyIvJZY`Cx zD>L)j2?HQHUYIYcnlxKaC+o&|$+V-rjZ_UrrkwJ1BrX1tZK_RYi4eWPXyy5hp7qHj zuPZa7a?xMW`5Sf)x(3y(+=f=5Dy*wzuDV>f9*% zCgG4GPff66i{*Ida!O6p94sy_rgUt5y()^T*Q@&dy4P#U@?dUmG91Lc)2o zdv7n3&;h0?SBYi`ri|1&c_T{ztyMwr44Z1lx{NYwPcu5E)nk)WF0Jq;MUr9Thl@A< z!NZFm{bZ~yP7x{#m4yniLTnHcbc(w^^_gj5PY!$ItjTT- zZ(4Co+Yq9aQMaOSYUOxnaaAL)#;{)5^m#%Pvt%hEq;^0svE$wYANlt``Xm20XHHCV z*@=8B=|rgn^6ckiZbTzK5+G)Far@$L-Tzy!LfF0dczHp%va)jjLl3i6riY|64J%TSin z!NBYE zx;2a8EQVN^?*@j^!EZ1^x#X@cjS|dy+>~j|Rh*`t&vZdvzDFaE(E_Fosv0pOB?^ir zqKRmdH4#BAsD;)#QDLlT!%rDCqPB$yVHSHW8U*b?YU-jcJ2~aMtT$I$QJQz=Gl$`W z&4u1*?(7#HKK;3;Z~D!DQ{^x)*wx*$k34_-@BO=n-t$fm=0wRTGC=^B!I+H7Jwq;<*3C-~GcM z{lULhSdsU0%m`ir3B;2xxaf0#j^=vk<=F z%KZ;Ne2Bq#-}Zs6bLEShz}aE#RCE9M@!{p`d)wOp)zv%@hC??#xLDWwRkb=CR?Lk^ zv#{{y=N`K8;_rRz`+r77@}utc2#9%<#t90^)-A|LAFQL97tTx_N=oVsxCiywdH+iuRUGb0YIVwKHG4ui4?P4d~7mRJ+P)9!={q8@nI zZ;ch8fC`wB=o-ljy<AU5va`+cTe?Df%$mekOg)~Y=yz#t2pOd&?xd4E`^ zp=pIbd2Y&x0i%=`L%57K8dOLWPCTsgCf;1bF<5f@;oe(r{mR3d$dZ`#`%gXk=%4xV z#a2f_oJgh?Oe3T4Moip-FglYz5CFFJe3Egu%bv1UrqgP-y=?9Y+c?Bw@uINl@btxt zd$-=Q**Ad_a}kqIVDkN>#g~5jQ$O`*e#y){eEY0sLk#oFsHv{07M4Es3lsnhd4wf% zHaeRKd)1GZ*%Q8`>w8JCVJ6OK{axCBN(mt##&WQHYH*xL7LJ|p#c0sS{$4X4Z_LdF zqFSV0Sa{>J4_@tstoBpP2(3`-BD{BuDUKg`+AOHNXfv z2OzZqwlErhX+OQrE#)p-&6LfYDH6MkUM2^5%lp6m|MgoR|FeG*sUvj-q}fhMBT_85 zNYH}eh+-E%3Ix!kqC#LyFeHT&P@*76shi&?5Vgd8o;~df!cM5r-4@CvKb|i)_m*Ou z7?G)gjWvyWDu5H4Z)jl|bp)aF1(*I0+Ie+YC;ZJHvd!dm8_;Uw zl4DJz3>8a6$|8kE_xK-t_Rsy9U(S79qSSidfCZ9W-4tqMExu3A!5J*;V_;~|oSi%S z`VYPSTZ*>-$nnhv;mXR&{f|BN(g=JJ`qG`oS?tZCG#e7+wz`F!Y;n%k)*d@JSQ`!l z&@k7Fi?4h3OD_!5)=+mxCr@7cr&n(I^E=0n(`=H(OhwcjxB!5pR3!=tO{6NC1Ogcv z;~@?rCI)~P=B8iTw%7L-&@zpd-7OOYY1(_Z^>p;n}yG4_RiY0D)Cm69-F% z#7L6el9Vlh1*%YjCQ8&IB_aq3dyZF&1vG~QEs@0t5GPXyfteAsr39>7RbpU3?AQ$p zkJW?0+LPzbK#+z$mJ2lAHyGZ&s3*RMAAdBvl7R`SQzqx%!U>_EhGI>PBM}Y_QleG{ zk%X#H52y!kfubfOW|-y;G&%RQy{>{t8s!ctB>+k)iF?!&i;g%U5kN{Rn4kj4nCkVF zA9&v&Sn82DBS1h<1VDgp3Kynkg0|>jA~Wu!Js@z$0A)M|$y%o-JraTWFhgo15S!>- zzh*by+MCpyNF`KE9aI2jDxd!7m;d}v{+e}O(V6MYyFSe<*QFkwh#WbAM2pPaLoW-p zGZ^!#4AFnh0~R%&yKvLWO8Uae#kZZGDmW>tvPEZ6l8Ty{8X18(B-TV|$T2`B zo{;ipNfO0@r|WLc0$PK;w$wsO6yt2I8DL#kNNok2lVXbSQnHiL=-Bb8j~ewRjB$jNGTE#)R;uu z5{tVUur17UqR8Gb`DcnGb28eaeMN$Ca5&(Dl){jDlfovOPyfJo_7f$?=tFwo44^nF zlxRv8tzshqIdIn2aVABm)yHItVwUmLvKL(kSa)vAFm(2>09Y-pTkrDKAnbRZzxu{E zFCaQIA@j!l=RfhtfAtf8_d9;##}yh7s9nd%InkN56S`*Bqh8^Pl1c{`H05!`dRin~4duPJTz?}R~{s#WZpU%DuW=KqqDX|H` zF`U3FxddTl%PX>|km=)NyQOpijj_Q2M1zIF*5+=nFRqZJF>1Q!^>6(A1L-rk_~!FX zmKa)cDX<1IWegU!>VwVw1649*MC3hg`wbZ8a_6L=A++qyRu_S}63*HzBg_7onmQ*r z12L@g=PU|;5Oscj^qAdv_q8X;AvRE0QZluv+Bjs@Z2R|S#Y`R=5Vl1#ce=lEB~4Qx zNT3wSgpApusuAgsCiTvM`x&8T6C%o{rrB|nGCpd#m2T%Y@~tD0s->P5jySSfsE+eO zLvgR)G;2@)h3`KtY)m}S)DXcW!4j0o#MB!*Dnxg0!0p8j{4=!PO#87D~x;3e*7!{^-ul1@BE2Y5Sw#dKoFB2dfBU@ zK~q{eTfb9KQBqk_>DVpULZ#IN6D4iX=uy+USNnK5L6}Rfm*l`B|GN3iGpj3?v$q|A z3iOcAUpMZsP}2Gf7rC(E0$#XUmqj27%;EIuAH4R$&e=0(_PD=${o%Kqo{qR0I29i5 z{k?;Qzd~jZ2}J?GBnvv#h>(Z+B74MrYA$aAuICrJxZWe=_{qkNo{M zQNVsje&@5#eiA*Zm---3t(p8%ST{?HkN{%Kj@ZcaKpkno6dUu$mkp}ULLJZDvT*6C z=N1=-FD$(2v5npD;3ohW?BT{e{-E{esH)+}yyV*rJR=z#n->^RdF<2JlXE1AG?6JR zk><6?mLN%d^2A6)#H6Oglr%^ZFlFAGh)9`LK$bWutf7>zMKXAE#9DzwX)=ekFKzwB zzi@(y1OQRN>WJA~P1ZnxT(B#^QTo?)?KqvtZcF*?;chb-pyD`9Npra8p{>rh(qNi* z37I7z7#c;LY@3R;Rdo=p)52mu*c`b3(Es|yU-HopDFrKP2L)dT`Dn`NA! zNEQg}q+jXy*onJe2)48S!fgv?>Y&cdr%7O6R8iss@qhY}zsH@25`gbb-+SB5w>@eb zhYFHzDVTNT)m)rg481DF*c*}xDO0xsoj@{A2`QKJ^NX@_@!IJNw~x1;Cb8k-@PX#$ zdnZpQ=s2fyCwOW$CQK`80zAX9MTR#xMl`sDVYC}g4>qqhj(p8ANMenYMW+fTq&{}i zei5a#k}?;=mW4GrBjt~YG_|wrt@9j%*u=;hj7oYvbJKs-4nHAKQf+7c(IPKg1$VLp#=}t%( ztfm5SsH4LmH!9Tn&kM zWWY0LHiZg=!2!XOcjO4<;PUxp;)04m!L#rA-l1y!)jqzdAl%*E-N`{n1m=@>-Swew z`!)cVFJJ!jAAb7W*;@tT%oQjELT3q#{jculCYX$9o(!e~En=ah+~?=EpIf`Owy|-o z-)}ZIpWM10CY!6rV>9W^9ekp9@4g<_5hG8VYwNli`7(zYar z2&cuf;C3)85{} z?rveFz_H29lJIaOA?H$+aaYO`(V5d{Ttc;U?Bw-TA~vF>MIRwy9z?LHq{*=njG<&I zP>FWx^(U@g8dq!6z3u%{ecy`Gio(1n5pV{I6Kg;Kr@U4!S8izSJZ&@>&J9OkBxj^t zQV;Wf8{4^>jyvO%ILT|(y+3ljKmjs^1F1P9vMPjFH_<|EAxLdVo~VIO#rTAc081^g zM@cOv4GDFyCZLW`DSf|G6_=!7IB@Jn?Ay6ZgNm3hpZUbYKkyfS>hquZ{BU9D*wK&< z?7*q>cIm<3G3s}e- zkqzeAk9ZV09)yGc1OW)VTwvzp-FJT|v&F!ZPd@qB7al9E%=&{&xgeuz%1d`IO&^)& zq@Q~yOXi~wbr=)_XO5U8TWsY!s3p%zWE^xZ`JOq+xZ1o1+_QpzdMTf^``j$a4=AED4;lR1=d@wy*1Vf8a+xGklEma6YpF zr~!s%)v@W3yk`kB`)bI%Zm{Y>A|8$wq}tibuPyr=w|`j&Y5{;$Oy)Nm-M(rU;FMgoJF<5ooZqv{_E;Q`5))cm2^nneuKK7?UB9 z=6Z?Rxk^qHtK_5Gb!o6odyGXQ_5eZh0+y)SnC0!ofC_U^3QEyPEgSNZf|NvyUXcD5 ze&h2$_t$>y&cA%^(JPNO!$zYzc3kpP&pcI9Sx~`Xy6sj7r{-X?yGHD2JS9kR>9Nm0wlG@o=5qw{tiyo-AdpuNAl?+e`uvxejK1d zYBQQqW0)yZ zc2EIY8FnVzV5V(I^?TJI?DGMoIWR$CYzk!}$#NqCSjiy9o}3Z_HQ8N0aq9d2sDwI1 z4w^w-Mntfh`{;ow)=gpl#GCK_r@!^^kN=6j5D8gM?+R`Z15!kah*flr+c?g{k@F=N z(NcvFDdp^=-~Rztc#6B$Fu0QLog$sDCLdF-)=%QSEEXWxD{kIW~eJli!Jr$9ST zVzc^lws7J4H5D1vj`MxGhvRy{e}G}FMa8H@6q#ncetl? zj!npjiG<^{(CfQpU7bIl3p+MTuvC`4{SfEM7QIe~yTmg;G+Th)BIzyaN}Tt*C#7f< zl0}tPU(aoF%ble2l#=D?*w!MdKuI;b4!4S7 zfXK*{4KU?wYLRhK7}N+duiFF8l(Jbe7`W`s&sBT-x!31Iwy&i%x)sFY!3t}ijLb}@ zwL5*`wu39z`(k8ZR&cw4DF30{GWVR43Q_&S)|r!Y*VorjV_xS}G$Kt1Wbk={p`Ag< z&&CN!vs9Bca+(_?Ec!r^^4zlLh^R>$4ras}L`0z)!;L@q?w|gjf9r4krL*41A&)a5 znAVymi2Is?Y#x{1KzyIQhs#u7$iq>lY8+ImyhS{kBZ5hz(wGEtO#l!3JL`47f2uHY zwIie6`QBF^eB!lBcZiBsDp8zsDq8l+>GRV!yx|Q`;z>slc~XvhtV|lv1Xn3a?9k4^ z0|z4;4c|Ic(hMTz>*6RSctnyy1{>6a@4fGPU(Mj_j&CXmPu_m}hu(d-_2Q979(m|v z56undvIku~?RT=1j4_^dIiH^nO+qCM2cO@2V=S*XaB*CKGGB zsFZx!->;_w1&AVB%^IL)q8jD*8@eQkK+WSgxC2E@d3?|Rq%XFgMUHOgHYwIzUg99mJ_5l9|wnx+w%@Rno*MatadT<(==icbsQ-6BKO9Iz4{V zS0As&lgU8)5?H{*6rSDs;19j`Kdel*zx?!n{-<07B2uF|*0g7#@;eJ611fst$t1DT zYR||H>^6OI*Q`?Gq;|-{!A*JpJKQt z)2XD1q>5r}J=Bc}nzGX~%-H^mf0lmZ$HUAN5**Dm8^X382WV#y@&X0|s8s{Ul+7%T z)}pX>-3~!>6Y5e%g@`SRkp+ZExr3)1rgKUG5+wt*yJ8GUEusy1 z-yaR?gE7IG36oiduQJ}7!-vcO;c&3NcJkyYL$(DZ813)(E_~a&p8d?HhCRTHHL*}0 zuy1c^0H|fX4Olq9Qg4258LJ!neJPy@EBkzfF%o6NElZq?HL}v$-Vc1+Nn$DcqdZR1 z#<&4S<;KM~oJ`H}TONLJcRtODf|UtCtp&-+*WLAr=g9hedHdS)PhVTU=h)*P>0{TO7neS;b^+|{hPT7*m&mJVj5P<)n_04?0s*#k9zdj>T~Fo?wR`g@BMCt(qgMdXfA@s# zlqNQN*qd{6%UJHCk1huSnXqZ^kK7K0znb1?`FJIh^+fGJ^vng|VDaG6>QfsVm(QNv z9uCL7UgQ0=->(LP?Gw*6+!luh($IJN5=K6bdbEGeHa3i?2!TMN@O5$Q>geha!dHGZaMRnk)NIY0yJ9Y9jx<#|SUVUlOzx5sWUHtrKN`bIiGBy)O8qxN_ zXt5saitUA|Eslo7DrCETy}B`B5D}S}Uf=)r*DO0`VIpDNxU_GzB^_Fy>XKQ-QCl%s z%Wf9i&))mCJHPzp^@TJqoQvajRYd01%yDh?&Brd?dSAcKZb+p=5j78sB}WD|O^KBX z?MJmLViGWEFbzna+^I89esbg7*>i*7eB+1bhga%tN+o(zrnJu0F&fDEh#j7wuqUTnXh%}>5g=O4;O$Vx7nbK4j1zGv>z!}}i2PFncYpSHWT7H@2%VQX;nTi^No7e7_ziFiPxF^nDO z$>aRDw|Sn>D#gqUn4j9xycdScCD+nYoh+$3Ax2&eX)H)a0m&I_YG0f&tC=NYA;0;= zn=e?xT3WjO=_ivwV9LZ)5D$vWU;grUf4d7tgw!V#C|e)UjB01mC@3gZv59q2MXM7} zBTX8lQ8{^H{p9cW&Zb#atgh ze)|(oeCh3PuY0{vmXiMThs%HcUmEAmOGmbO%e|w=zbFMWNMj^s3t@4pJAKBanz-`V z^}*&cHN$Jwtv~%+`;9PAa_Bdd5{1BkFgsO?O3^4Ol(;rc#wk~%;-@t*;2GDpu{}9? zl1(i|G>vjzFWHh6Fe6KrH=Dx%V?YTM10NmM%4laUP+9^Imbtl{31z`{`vOv8>&9bY zZBeXZb*!tL&H^CLflNGWOkF6qq3DESJOH4HigKh1N7DAZMn>rM>MNiNX8xudn@cN& zw6ZV)SyCZm;S`P9P9_ftLXoI5l_-e{^y6InPNX37dmv6V%1~j(_Yczkce}jZb{!fj{@5zcmZR zeClU|zgheCs#l~h`{}awCujEk#r-EPet9}w^L`>yG1n(gzGeH`nMY@Y>T44>nfaWVdlUO|jj$ zgCNtXOs7&+T-UCyIVc4~NEDQs#6h`9h)RiE9Vi)RI)gZavP2LwNr^(EO+bv6)KY?~ zS+tf<=$JkxdExTzdoH}|$e-Og6?29aIvfX<5ev6qdxKW+oF92c{p7qabW&I~oldMQ zsPu*BwR%#%_U_`|yNi48?%#MOjRwW2FC|Q(ax%{Ct%+EQ`@p0qs`2)!Qq;EXO_plY zh~*{s_P0mlsBJ;mnnxxTQX&;OVyu>L20#L$Su~4k!8EEy)9k_#OzVVcK;5)=9e@)M zkqtUXZMF|kQY0jSW@!RjVkBqErff=3cE$ti6>+GOlFenO(5Q&XLP8aBFs4aOlaT6w zTCIvSNmNxx(|Q<&Wm6WZAnCIV*$=okfOsO#ZaW|bhql+@7 z7%4^;5$Al~wHb{^=M*&cxV4SjpCc!Zqh?#SuF-1zoFj5N1BzwRaTE8aClMYy2 z-+kBFcjZ5}twdYaL4hNMC=^V}>KCy$U~nP=iGhsSMm@K^v%57NP}x(FYB)G{%Z2<7 z-U!SL2kh9fxs>*H_gp#Ro-m1M2-QTJ)ESUjujl)WwJXmqowV0{1Xp3O zJ)k$ybCXpW%o7(xzBh-x$sTwfDcq9A-l znUI9ROw7taO;j^iXU@F)fj@eDDO_Gm*G|yp*-_~AlK07bBUWM~NlYf3SE$2*J>(Ac zx7V+ak$b&|Pn|BQ7&g6=FHGmQs$wtroyPArekT??)k`v=ZxS^ruhHR{kRT1XftyB7 zM2T6!#GI#K`n}dth(LKnEhQsEh}jG2uo}#{vzi|Dx(8;H+?3%5RY}RkSf<7|yp(na z04HLDC`cEEuBi^jO(=&0$FzEIpf{dvBM^AeP^uZs^u&qLZMXJM%$YUGLS*5=Lb)&x z=h!>2B~2;n$>Z~wT;JZfLO{RY?DW*C31Xns;BD`Y;F!n$m|EN6e1)?G1kOYF+)k)# z=WCS6f?6=E)#_+5Wwms-@&OdVwP};LqnVkKv9G2bpJ<#vCM8o=lNbp}O!G)IrNkkj zjvRxsqY$Y{r~>a!Wn+&w_i24ku5Qcfwyf{+{sE-`7R=vy?sMU{S(#j)P%xK_g5Y3F zWNtQ$pEE)xY%|lMp?_}it>1Iw_ng0QzTzrURMYyl`k9TVk|cFWT~dkWQj!{?U?o;! zWtWH>PfdwfP;=^@TR!&Dzj~CK&!u1H0#3i~^w0jp&wh)6cl3BAL6{>j-xY{z=5WIe z?_asNanp_G>f!lkuWm2<@o4$%)Bk-3^HJxWn|I(C&2xR@8#fs2AO?=nhv2+_Zuw-X z(hoA)+?x*O7M|N5U77UOr{z{9YBziO8HSM8l|Wb%r(k^q#=$ZO5}u@ zIVKgM!inSp28gkZD$>^13EfaBfi7Ly`i`^jLbvjVvY&H{g{pCi9J_@fR?hQ&Pg>_* zvceHW_o}8C44LTq!FYONdHL20FMSh_jyuo3x3JJ(8kse!jarBx9*uZVnv*JwVo0-C&m1(jay=!BuxOT`$uybFig#C>2JwACs)G9FAY zB7xkgcYg5f2bXSK+H`A^@p{SCK*)oHU9w12_dJP<;-eI?EW)VNk+Z&7L8(A01YTZ5 z*5@E(<3Texf9`yV^5q83*EwExIm*mTERf6f<;|;~BWjpKRb7qaO|N54HyD5Y7~{DaWD=>K`D}p-~=ufm+Hl1FsiD?`F8BXIc8=Ugb*VnTUh7UgVsH7 zb#43Ir{3L4&+}PLsq=rboM8YEnOor9zMHakoHx9qU@;HlIHoK6`^&eSpUHgM`ZG)K zzNQloV9U$>Bf7EX@6oWF>jhc>zrBSuDxzZcna#J~4oovGUr0Css zYxBf2EUCTIz|h$rwU$!Uieqw(MJ<7u!JBrdkI0f{1CTttm+kVESb|1UC3aB}6C~3# z#L)n49oncBGEp6>m^x32#350L6a!l#7_o{PYwB(cS(pa^#AHm$h@`BhgAv>Ki##{H z{N>GC-uKG33In95TF)` z%ge93{Pc#misE$fAnQewa{dsd3Z(KyFpG>(u2Nnn!#MF~(< zXD|J1og^-))-JaxgpA~Q3QLw;7 z%;bb#*xft!k_bFZNS*1<%!uIVd?sLXbHlnm*xTon0GTGJ?~|8-m;K#6)>4R%9V?%D z?yINg?p(%c9HN7k;cd{|7_7Wyiz zEO}PpA&%4&I}-*uh7%J`OmKt*NXhcHxBu#|{*|Bq`M>+305IgD^yLQ5 z*Ezn0AS4lvL@~x~Z?(ng!m%?KKecswO^zSG;p*S{FJJ!){|J9y`KPJ9-x;?1H+*G! z^7?hbXozZBYxq0YghJrT>HuP4Le{?y| z34ksy50;l{YiqK*53Rsy8k7pRxV*5vwOtgwrl~L7F!%IR4_`QQheOE_CPuHRm_1?v zB0|!{Y{XD&J$<|6do<<=o$VwAbP5?47IB9<=<>y6b!DE&stgUF1%oIY#lwfSx3yai@6=YEXDx3@BX8Ck4KJq)( zo&)4|eNVO2dQ@mPUSljR)xZpf5;;(0O2Tj=OjK|ja_ISWRrX^Ns<#^T({xmy5eS-OJ*Rs~V) z_Y*VvkG-=o3CdAfNpcQU_9|Yl@H_o%2%}&lw)r_(-`Xq(BLal!g`K@)H=mz@pFo!hXZP$J zdy`3<1Lg3Zx&SmQEBW(XvlBPo*k4*2EzOIl5lv%&bHlm$x~h6Tx3xV!ac=JNwP((q zxs6R6{B({*C!^Rbdl0W`d9q6@-GkC*OuBL0G-hJX*73_9D0quNXz!Bj#IoM#Y~PsVxq(h)tXX$(_4Swi(mN4!Wif7x#f!=f96N+9)^J^ zbvb|lBF1Q#3V(Xhuh*W;U=9TZm)4v4dAqQeR+=U;M-eiMfOOw5%#J5*Hz zt9r=0k64nil2aBX2X@jc#|KUSxGO<*Py>munv$7_blry$k!4LwHw|P{o^NjoQj|iP2WE3MO#mcGDvOVo_x!NhvWatK|)G(O{}12Wv81A{IyeIFaoI=Gbx}^McV0O5M@13=9gTK zUG8Fulo`xKM0q_hf#p!$2LKE!3lz>o3~I!tIm(4ow|HU}b+xZAKY#hvEk|EzR?Q+S zO3W||Y;phU;|o(qRXTRpjh}r#&!fcO_$A{`9-Y~?W5>|zWe;44%QPz;Yd7tRpP$3| z7<(b~o2EaVmec8QXQvpCeOeUMK!*SiKgOBQC;-uMZhf}LxCD=Jx%#J~TdwUZg z;Go{9r;#@<7k)2BO+`^yr&&}*N*Yqy-QC;cJpvJt7kTaJ`8Dh3-9_qv7*JQ^=XKYEDQP>)ZZLAw~bwdrs#?}=@ zb@gf_;mMU3hQq=2YI>}EarOfM48~&~kI$Yta~OCpMq*z2<rXvVN^)$A$Cf!8OW~*%%UX;y zyNuE-NU|Ayo4s~-c5)4!b+#ZFOPx3whiEVrF=iM^A`VUB-6V`m-7OzGo}~u)$r;ve z7&l0Ul5#>OHf>oy>CV%^{w~^2b54d@W|Cl(2SKUhn7V(0fyl9)KDpd=iPja-$%#6r z%z60Bn6#8;Zlpz_A}we|KvhpU1x>zcnmW2ksK&=m{F4v=U;p%v{q2MlEF`3z>CWcX z=F5$muYbIfAS}z0Kon?ud(AmD>rXbq?l^8;9S$c{*LCmq{@?k<^mBicoCW=d()>AC z(!IUCJ!yk*eqr&%sZ(nGJOHH5ECy=oYwO`HYxUj5eErsYpS<*RzkiEaI}r;gGmpoc z2hZ@u)z$11o%eD=WU^h2hRO#UuX)?>`PJV3-tJ*Hol>{(1Q*UKM*NxQpZXM zy*YzvE#_Tnx4So!>uUw;jc1P^Kei-L$t@WfS>83#snD}1^61emJlfgW+1=gge6P&_ zRTv>K?@gsPn(oB;1*E91;24Z4dEd^SojiH`*oosA$I3dlnbw`N2Rd3q5klK5QrqTW ze{cWbVBgxoO3bQR>xNKT!F}!|2vOVRFa|6wEiElCb=a3O8K6v2SVfYsGAE(rC6tAT zQzm65z}OI~rmmW3DW#@qWbc5+4eeA64k3nY%y;SF(o;`9HOBa5?Fs#c$14YUPWThA z8T}OiM8CRIIk>J)$$5<5%}9qs8H05Fq?ImajSK4*dxGDuSX@*_8l_nXgu z{HB}U7{X#%9xuz2-XBkCl(-1wYPcwV?Ww)nk8ht{9xp5<+q?d*_v&t49F)V^M#MZ* zn^ltp%R86rs*0i37)|Z|k9^_V&)t_P4sKVM9Xebyv0IX@k?&r4HKL18)j03D zh4*QJsJV1$ePyL>0yj3=5)?T6&%4LSxgpUIFMXuCc@duhfT#pUlgauEF96V6Zynuq z0sX%7&RRCkq@S*@zYq~YAf#ZFfW$~y$O&yB44QEgEi=$*g*wF$0eL*DZR1;1I3}(W zR}F^>1*MYGaGsmQ5mHBr+D$We@*=dmHxzBC+fi5}tNDqt)qegbqwEyS5P}!;VouD9 z6@o%gI+PBDSm{tWctPPHj3WPlgJTm`CS@ch6(}P)N}f$P--gtYIRUZ6#3{CuplrmD zmdfo0U-E+NlVS2BKk{p88Z0zutWz4jy7q_P>dyMvL8f9v;8^l_JU%!$aA5t#{{esV zms(F3%=XC$Fl>lSxrkz3FsmW#`l| z?WJTScISPGN(vR4jkWiF7fos;Q?PX=muL-NI&O?$s!3xqW3UB7Pjt2(sI6Z>xtRwM zFJW^|T0KUF*=&|KsIFmb8t67a#Mz z9t?X;ke-Lx6d-0(1<^tX>nkfKE?huLWGSRHnCndr4*KP=6%-H%%)GFC+bz4#KhtEV zLPSGm_Dr~os#&%7qGZ@1fs~tm2tbaiU<7jvC8SJr7+EkH_=C;RFVu^*%btMQ-ka{p zVMyE-zS(SBbJPKrVXz#c+@d_%P7C7jm9@ITOtKmhTb_>=Yeja7eD5@d8fEY-2_+}S zti;xt7PL1XHBJd+U~ks0cFHL?qr(&vqETH_ULJbAy1w%0N=-F7BaBxeX1e2LXTtgU z`8$93&hF32yDueX=!IZpaVXR2^z!A)Q;rRi0?g|Ei+_dOlN~Ck4tMRCL6!g*QcO@| zq)_!_P@`ssSy9)%XnrL!V0*M#*c z&G%woQm+T7WdgQq)edK#(M~A0h6QL z7xT`XO)1!9KP{FC3TAaOMU@hVP*#;|nzPrxa-$MQ zP}EcuW|De7+<9W>HMb!oBu*rW5D59CgOoJ3!Ps7JYL*g6g+x;##$+$0~qUxZvru0D0T_rPOOics)@d&iNX%tt2ND2?w zLBPn*?y&^ed{L$*9>y^9LRGE5@WP3kZaNO&v1f!SSyWiwdFbF~X^n*7eA7^`eNJO0 zv`hYSwb>2?zX2u^}=>z0xCHkl)+ajIH9QC;>o*OG&k-Z=M}+(ueg+2(*W5E)We z-x`@Qw^SjSN(O1TgJ%R@z%aCT7vPA-A^*R28)H~aLEPEs_q~>bVtm_|yEjZ*Jsl}? z5>e$KkG>vlo@NCiV37!@8m=0OijWW$Q4thXg$B(O(^(;EutaH!>9-s>hsU=Rgleiv z&h0JUGunSVsXM+tKTS=%<$3qP&&r-_iil;H{69$l&)ub!(_ohY4MwU+Db&?uW99AV z!z2OZl5iAj*rwB*1APdRH?Agwl4eFKvQ9!8lrW;5$+7FrDDVD2-uabTs1_tM7%U`8 z5rA@Hc2EM-U2nPfGoSs$yH35I&E+CYmas8$ZI#sCMh##l2f!>wv}UTvGJY}uy1d*o ztH$F$j=l`NPa!Py`<7bFcCSvtUc5Wrw=QY7$0S-O;~@Y;X=_mcrE1+Y==ErOdv|lZ zU_I~Mpl@cH8NOa0YilbfPAu(TdqKR!K!?w3U3M~Si$ioCKJ5?C>^nqYG0MT0OIbny zPY;Zs&RYOC1JdO%O$XLX4X1pSGgpJ{vzCG8e3#0)Z*+}cjzBXpaLYEgkSukPFJzou z1X>?C5VA$N!Yx-HJ8mQjZY(B_iIg~HDM^Y(nIJ+-Pqh~thyl$zCKbpY@7ZI>lB%(TCL^`7 z2PS8k$z7z4xg2b8BnqXr*3LLZM%Rz@ax{}4lO8)(EG_ZsY7F5ep?Iv{2M|m_0su*m zk8t!tnH>Yilcdyk3N}ldvu9hVs@YZ`2(k}0IU}-^TXV=a1fW@cJh+9f<_qy+<`T*D8?O4Km`w$<=f!q>~L@JKEf~=Q0mjD5=8xD3Z+h=#swf z$fmNPD4L?M&PaMXyzkRyq}o6D4|k_o8cb-EdOMT1-ThNF>YV+uV|TWz8DorB?|3Ca zXdU?rAX!R@Rav>Dy_LoJ8@6LvA*?*U_Lkx`J5-%gN@^m>{n)>J%|HLoWOwDEbPl1h zrUn>+tZAsOSHAG2pM5u7?kzt0j5QXypaV>s#!V)7JpbiW$-F`gKB~oJV9V{hXB12Y zkt6XCG0r%sC0NW>UXa{2F*LLtb^GGUG)1r&?AF)b`q0yV@W#Ohc!4%XF7sQ`?wnw1 z9kq#=46J%EIoNZ=ooDYK;~2`4@~Yn1yWCw7-bskM*WlE`*PDeI$Se*CfS4t->@QZD z)lH*=flE$c2CzdM*Wz4Oq+? zwoF(n5bk&^m)#z%$KKVeZ{69Mm^IG9%<>4Qh|WGTE8TESDKRU(a1LD)MWpS`%q)|K z+`bqFObp&3hFR?8+z4i}PQ)3Enz!7a5}8r2lh9bd#|h@X37lTas`M4s+jJP~u$Wsi*f`FxuH8z24~uOM*#W5+8A!i9x} zJO1PykNopT45p?rviCcSw=M2GUf?>&lv<}|W*qS+Za;o44$wO}ReX)_zvMU?hbad<9X_WXG_LOjN|;9}sX1gE z#M|`x(}fsdu5_CHeKYPyfT=LSl+g{u8W`DpW|q@(!$x`esonDxk1hs`%(N)XxsX!r zeSWb?#F&jpMUse#B<4tzh>}R6o1YPJ>A7?HSL6*%)V;gJ#0I96`9l%)k_{_!Cd_#n z1|&oCj!&AQQ0gQ}tcsL4rCdw5W>f&$#7ntI20&(#k`W0}5}{m$b`i@VNC>gH>#NfV zSC76H>yvlg@>AI%YF33t#6aQyK;>wDWld`8+N*+@6p{#T@6xHorH$d>T9~Mp-I^DC z90|-|WOpqFrHyCzL32xMYx@@;`25d)uy5avF==fYU{YN^bUKW_4R5x1+ynI{o@!K zIsV2Gn2&+*B)<3=h!UVpA}$%;K@(y?Y?`|CL&|&vIHXuQp;mq+#y*7Py>)=7G7(Ir zs+5l%2)%GVrz{%@>;?z31aF6x|{NvmATc)tLYwqRd&T zezdx7?<^TaRJD}yOKpFH8K)#oW7BDxO#Hz?F+OoQJbNq$o_5VlLTb@3<-dsOx?$PIhy9=uV&<2eb0kof0y?& zxMD-bsm~NMz1s>MRtMxhdZG5OZ07`HuG8n)y{w zJ3=O6)M3*0-ap8|jI zCKBpeRn^|Gx3w2q&c^bF+^kM81~FNFxz-Kfv-8zGU+NaKsu`GPgua#~0C*p=5M8zD z_qB_z+zncn5|t=1N9S_*C6Sl~oJ2-+FnZe;MU>fv&%P-`p_#kSC8c}+Ctp(9XOsva zRZFRjz!~wJ<5R?#6A=JOxl)0PF*-M!FK;s;kZm6%C02DY&Vta__2Bw-$_X%gmNsZ| z1b&m`#LCLbM?UhA4}IuE-{e_-dFALV4i^>{?)npVJ@n5Xg5k~+cM|>7SGWH^&RtzT zcXsOvO%a?*q<}{DlN%?Guy;#Fw*Z3*5r`5j5!KL&Fj1SD9FX5lRUK;C-#gcP^V5^3 z7W9PH0S!~Chkf;=a7^s`1(hCG>*C^d3_#k1#u}2s`a`hG4q;W@USc3N5X=nSm_iG+ zS&E@wBsL?>peolpYa@}{?r>5*w6PZFkH4+WhfH8faesez(?Qy+mKf}MTJJu0W#Q(t z?b~!DD+cGv5MI`s{F1{n1tT$mrksj%3CXP((=jm-)CzP+=Akqc7VEm#@ci*RTWab}sI*qZJ)tueY%IZ})C1gMaQ0JH^uW%+alw~N2pep&s zMZ~H`l;d#L8RjRKfB&oJ@ z&wltDTRfdVfBu_~Kz#Fxne*q*-*@2xx;Q-gPiB@e(ilbL+S1ukkWs~>jqBI$InA~5 zIF(yd0OD->GeWcs&h7blw}-^(qNF$AoE_mH}9=1Q?Hi>gE$(+;V||4DgQuM62GWT zC1O<{Lasa|rTlO)`WTC*DMKjhx~wWM@}94sw^Ac!hZvFxnojDZxE&YZZu zIXQK~SLq5d@9yt_JU~DK5um<6Gub65Nc*f;AKEzkhSwavO-EE4nY8}nT*fy%f&*s}i`5yi+Mv^%*}EiX=2&9nriL@`2@X6e)pVP4JLM#t2<7|}NQmPA}iF2*88 zA7j61Y&zw&HHtUIh!`#AZNB*t5Ej$o&wu#mUqQTl!{e2sqiKKtiM!nGPeg&d;p`iT z=&P&0(=;lAqWJRNcc-EVA>6R`%w!<3*=ygXqKJb({oC9B+xHpKG+7O6K$D~mC8J&# zPv*iLjk%YWn@BMNF_o~MXwT`uYrmuoH~+w6t1K#m0m`yn57kvUknC2Un~N6DhXG<{ zFc$LOplT#!$vGCaCZ!NPWvJ8o$Iq;;HwL%6nLr+7AUR}`TdKLuZylu$H5}{pnrEK} z3^QK&@FNaCzMO+#A)2tbG)}4Ai~!X+KUvv%u->j0&%A|75Ws>I8|TYbM?KRCsa89C zr!Nc-4i044_>z-Kipjg|6+`Cz^v*9+Czt82*Ni;^Xo(#nFq`*{2+Rz~X)tG-wgO;Q z?~g`cE=2Q3>wZ3m-|S0!F|GqMOR0^({C($C1SxThS*zR{5v9}uMfuWFMfYM_@UyE( zW*|-e(#M#X$;`*-Q}QwPW9+B2{QUF(;;()8@77ia3poyR_+@5dAN$|%e7)RmFdr{7 z2w%*7?X0YP{OZN^#uCr+V5uc36L0_bJx$_nY`EI$0^1<(_<-7G6PXG z3y_Me)(B#wq6w3JJrS4az;kh=X-C|#4B%zh9{^hB zPI7N$fDmFxr6-G8n@L&t7%MY~97K%@$B0Rte6uaUYLj|_UBM(8j6{U8>Yb>Hc2hC6 zQ%L&xI+iw8Boyq-_YBs~@c|m5bC#kOgQ5z9{V|-UCPvR0n1S@l$sG^D*bJ1t(ptoV zQexE>#?RE>Ll1rX_3IPo%q)l2EU4PFmd$}g4&%_d=zTo$1GAq`T{O1Ia27lwmSGqX zFt?CQ-g%Rgb4uvmhW3&av6MP#Jj`%@*yt#+t-fOm%-wWe>;(xn?xVnW@Dy~ zsI()BnS4-35{jy*`WPATF_tOyQ|cGR%}+kb@ut?+S)m8b!RC{jvu-dVzV!6`vE!Ac zLA=6p^ib2@9w3^IuUD?WxcKIcjR(y{HJdf%+MUMZa&EX3i^yw{@GKl3C1Uap_t z{pf4*E4qtk21Sp^QYs26V7hUAT=-t9^L>?Dqa&ixe6I;%XL~Xj3|l2KVCFni zs4MS#*|&zgfw)>nr(I=<2r6dPtcB3?X5BDB zU}IQTfMib}G+}VMxBgsx_A~*|5D7+1b0_BZ)>!Kry{I7HFAr{bL~7?8h**_7Vl7cN zJvIUoAd`ta_Sk#3w|7J$5W3(=T_2eD9i*brqDV!Ni_(_3cP@ILoQuwBC#aI2a@g#VaOf>ou9!+grh7)#ZDN`nU<{D*(@ z2mZr;y&o)8T1|D@Sd)+fLPb@X%3uEQFMs{>wX(8u|EE9w4NvRWJYHT9?(FRB?(6{V zMY*`RsQrGqoi9ZqfR>lfpFel~`d7`We8QL`QDwG${rWV7x@nrZxtNlrgb=QrdiT{B zxoL`ngZ}pRXzPpjG&>`XQL=PnVMs)mrr5)w2jvml#`5r%Vab#-fLaWN$Z(bo3fw4#2m zCUWO)xEa+H1Y$K#D5TTV7?FXL$$AAqZK*V_gE+T34FH~f_G!TN9Zby$$=3yGHkDk+ zY=lmt-g?*Vge+Uut%K<;^K^XU005C0W4?D%B+f_&c5<+>b8=bEpFXp`GGX12R)Z%> zEaIHm`jHQ<;Y!e)vb-Fxj@ik=v8DOr$Ma4aW6CZ;elUM^ zwHDVucLR5G0j+}`kvT`i%8ciqfA+a&pUch{O_K+)5gKzO5cZ`tO&x+S%W`{r%uFd| zsi}@9*Y3LOHRp~W%gu%_tx18)lJk%vvRSt=*`UwjjEMHCM#Ka58qZHX`ONdrJe$!S zM=2SZg2)PaQOz_}QWX~0f;nal__n)mIe+7gxf`^U=<4d?QaZXqvs04$Rcd zQqmZeInP_=dSOg|Mu4jij|d>PkrulJ3BikPn>vJ(KI_=DLQ&Yr_ibu^1urzOg4Ay!iBrm*H~&ePtGjfTfT&bgS< zzUiRwY{o{S){eO=XgI8!YE5`lPqZBNLNG3eFzx1;%+$b0hH0h!K0AlLlkD5w)kTzr z%L+;%GJ6B60FW@Db3fBZz#{_z-+ufAW9)6CbU# z%Jvsoq!uYQu1S)ff8_bEzm#`nW##?{9)Q`&lP5p)XaDRg3#M1v6CS~ylE}g>$9A9F zq}D}90b1Pv(a94hPe1$2?_RjDG#*dA_c2a;Jp-DQ{AA)&;<7Xmi_sq(6qAXh1T%Bs zQm9{`Ur_1I5tDc9goVgEb}mZ{GrZ#Zb62h=P#^H!v_m`2n_nK~Io6DtcIcS_O(4hf z!y$pl7YCC`#l+&oj6ss2n|}WQ!1{XK8yr7#&fj?ZQID z=h!3WSQHW?b>VjyoXmMH>5!S|go6NDf-#q)tv71~k!u=X*AM>1w|p$Oe|ZH^qEt)0 zb#cqQsnf4NH@LF0a{m{;kblQ3mj}OsAiVFs`vBbk+;ae4{EMyiri6B8cGw^5$ul2Z zn8TA#d}J`#^?tvu_eP@{aFa<{RjDX4*yWmrGwmY+P%4~rOoc<~i4({zg+p zcYqyC_usVpC=n^lED0$akW|dGV2tL`~61<17F3%XZ@e%!cl@It{oU8THZTX~#<}2Ja4yX}-o#0N-cu!?em#)-%W&G&#te2Y%-Z_ZLRF@Un|R$Pd`z6qf!Mh zw|37ToV@fs0um-BIEHu;AuilYWOl9`UAgK(4sBd!Ku=n>VCJEnZx^iy%XSZ>-yfO+ zmWafc2jhdWb3Gy%4C+_-h5!I=zUd@@iz^!oqs7?N>?oOiQPPC8^=cx^v8t z`qLkM;~S$$5XnK9rJ=J{;Aq*2S^arL2Qwqq58J~00=U~7JQKUj(hRd^DZX=56cl4Q znXsz1U1WD@9*xHQ7j-!>KcHGPjo;t@%rAW3Z`D=@4FQ2bMiwP*t!yQio__f0U;FT{ zea*AHva)jjm%j{j3GizSti8PBl>}ij%uP8!MMDLNofEY6(ug>KGGZuz0k!5XWdw-h&o*i>g1HP*asjEY~UkaeJ)6^Gj zBr-q&@@aF#b9p~qA2MEA9?fXEad80y=gD^iel#p#<$cznQs-_?%qR^bWUFd~_gB|B8 z=Nj)blOD=aJ55>pDpD%y8fMz*q_c2_%|c51L~%Ne?|%1pee7eu{q5hb%vqeBA(>f5 z&2m%g#4)qa+ho|)pD*bK(SfBcC75q5`6u(}EnuqoU-LgHFavD9#-YkFN(gN?7(&rB zl9J!s`}|M8=l3eBas(!84Yrk3MK3;b@mD|mt1o$~m6etIAAK};ocV3apHC-~ZzT=l z)$tw8Oq|Hl%_p{=U!Se9q1@3RFCc++@9<F>AEauXO42S)HI{j zH~-G!BR|Bm{ZG_NK#qhEx&GXht5cx&Vo~N{2vYlXYj2aQzJp2G?|Z1Kf%1SW%sGzX z8?&+B{Bicw;*%Gz4a~Q{B@s*jh=i14-Z+oh%Q||;07_W3Kkg0tWHycVhEpDSZ3~$J zBHH(f1qrr2|E7n(x+i)4Ui%&>RGpK$B9N$;daz`1qp4~BL|k9r==Uq}@p$ch@B99be)L~|_jkjr4aK5}IUlCfMqO6D%<4nt z!%&=s-|X>{t14?&XQ#Cr0&LG}uH&<$Cjb0Po*}b{owzi|p%1}`{O;}pfAu>)T4|Mq zX^l3ORt|3HhMO;Js@Fa2#YS z{gMexS|6M{J9p)(!L%a=0T?>_v)Okt7?aO>3x1Fps8?1^6H*8iWwi9Iz7sDw?!5WT z<4;`~^0Kv60>J=gm~>-Cvv=>vZDdyG$2e{D?h7L!W^m358CG$Eyr_f`1q`*;*tRXd zlwscWD)lJ^i^L=aBW~73G4;MK%TN?ezaM(NmM+g}u&x(&cQZ-YvUZ))JrNNQ0cRG? zl!(owuJ^w4JAe3he&?V4@DJx-o>7@tmNDN+kYZ_}BZ5nHWg=v`XZPm6wPhYzF zwx9T+-~8Cej*3zai@qaEe(-ft@XI+~p$-0h_ucpITW)zNQPF;$w;)Bd2w-b%Jo^bC z^F?ZwM)Nn^bUgS*VrN$auK)%Au{VbKHH$xxHosW>6zDk(g3|v2#coj4B)%jXu1;nr-h+ zFPtpzK0oNL&TP?1WW<1H^F*FVGPPmZ7Ze0YQP!M7U}djvcyN6>=#P@AAA~(xbFS+3 zs==U|o2y5oSeB_MQdy>=(7Ik;UvJqEIug;DWG6Bp5k;UOngaXGQ?n|i>IZ({r~a4! zr9J=Maa1k+A{vl6cZM&Dz}Z5oBSCw}-5<@9oT=!JuYWN}KLcP6BT%*F=tJ;zU4-CM zDpyuM@vA@jZ)Op=vb*xROAmi><+01F>n8g2r5E1xo$oxlO!7sK7~9j75@MWAr{8)S z#J94G;-xPUfLRndcHxx4h@g3qZVtJ2{l|;ruzd;?y~U+t@2jf(_3Rx)%07_k5UTiE zM*;#Y%QEsaYv(=DCLv8Psa1?fQxl-9fxLUwb^-kHGwlXgkCT7`>`ly5tt4RPG7ysDM?+wVLE-&-rgIwwqEzCPv*8T-`CnWWL6-V z1+%Hy*lgM~2Xk|WAW)Zx+6P{Ypm&io1AzeGB|$iAO^=+c_G9;3W;&Y}J#7bsl3Bif zD8|gxO9**nsknOeQ-9-!ek<7jx4l1&vgEqX1JQ4vb0Xr7nK!elvgQH`g~CY800|K& zai*ITEyC9I&b(7ZoOAYmKTbsC&8)&)g#yIf>#kc-k#Xb3jfgMy{B3K+KC}GH z7mt4Z#KJiSvv^1D>1R&e`HnY_X1~`dn92}kz9g<-B`+U@x88c|p=+;QJH%3~)?2UI zE+t)YxG1tVIY$KS#d~-W&%z-ZnA9e=PQBAw?HqYegTeSScm7Am5H;!jk7y0``z zU;!&)3mPvl#38WFfC;YXf-jGez&>|irHD*|VW7vpe4;5z#QSQ@3zTA|t#@9^>zd~d zP^5G%i34LzLHDgF)I)0$rC<~yO<`KiLhF`qJ(9L}?l`xYhVmeRkXE9Vr@Ey^zsKZ6 zdxA;(wbQklHzokjh4Rig_HpcvAAi$RN49krI^Ee;ws0a}e8#Pw;laY4x4ofNf6vaH zANk`y=29PWnWOiB1#<5P%<22yclh7@8ww*1iB)Oy=d(e#H@mQM z=R4oL_D#UrQzSTq)%zuK1uMC9qqj!_wN~q`SM4ZFB@&@(Xh*3MArKA-ELcK>*<0u0 zG&Ol%K+y?uC)O78zQRLr^gDgl+qqTm*&P8EVo7Y6iW&9~I1w%)sRRHkt4NaACScZvTt@~vfoL@cr^fTZ4@`rxB=z}5HpUwdoMc}1!1uMBkARN`#0067?wtYJS z{17x@>8gcGz`|8ImWUTfQlHp5_4aV$@?2+`vR*QW++lx&TX_~Gf=frKc>1|?bNx-};t4+7HzG_*lwy}VEt(+8c;_rB4VK|b?b4iw=a7DCiCZMqt3gs@+1si` z>jI-dQEn&7P!vtU_qFYQ@N zyBS=Pa1@1F7Cv+4hVxI)jbnK{N^2@hD66ZqPU(1l>dyAe4f5#D)h};%$5xL%^!9t- zaQqtx-hMDQM0@}t5sUcuyyxft&A-vkg%F5xPWix#~IRcb#~8KQY^^1RmTed8azQ{mtv( zhjq^bIJXvw@%~b|f|a}?cc|zveCnxca?qMRK?LT45~~PzahYXM<>W~Q5eYLCfrWyv zThrP{k;`+HJLDF*fw6E5ub>G9sKpm0F$5*#((dkE?K5Z7GG`d>O9mMtu!v&P5qa;6 zv;e_*W1<9?bh5{D2}R+#p^BLpApl5VCNN*fe33-*@MGuixMgR+TL=VdC>E1&Y#}r4 zH+<#W^NG{|RfdC!w2H^a`+3bfK`kNxQ4Af4b6UG7a>1~1j5SfDy!L&ao+UR_`NXx?UfXKC;lFCD6v;54_Q^&j#5Ah^6Qa8T&p0)a#%9|Efq#a0M?l0&&Ua6NaO&phyG} zYs}Q1owKLUhUXTcEUhl1qo7dcqKZVipw`^FW7na@`7f@lr0sU+*e!o_{o_9z_#_-4 zVp$Vg2k#0#CIXQPxo($sw@r|##b?ju#YB3LRuDjuVi9XWC`ONvFpB`>Qr&DN{jMcy z*T!C$zu@HwC84f%^d2Kpg-Zw#f}%3f08l8wqiRWnpdcik!e}$)e8dScrRSD+jJH@w zlVK=bt4Z9*)D9AcQlubDb5eJ4oVMGxUavS{b9#98zowy;TLyrudfbS zE5xv!SQ~Auuwvt3IE_|MKXz58$Qe-4-5YS|z0Yek?Y(wRh~S)NR>p)>Q|N^!fUDNq zO5Fvr45cdL2Gw$Pra}vEg}}g>J)-(_S#G7g*Vej#z&tl;8s&N1?|<_b-}$>;?moNx z?D12_xtOxZHqr-gxMA&%MVT=g^}W~)b5?Z zBdB7?!POOb5thO;EW(%&iEHCqw!PK4&e^lA)2HK=9(o!2DfTMdEQ{hr7!tl`jdfnC zyr9jxTPN}@6Io|0otn}D*J!9b8){;JnTvLK3X}R|r1bW(Bq<6xI5oL6IEyOL8OpM> z&)oi|GHYR@(PL01Ku$bCl=sA*;B}ts+#0q-o`^L(bq?$~-R-j|QYP)?d3vkvZ)?XL zVQIBp+URCko+P5w8UjzAyyeKZdYzg}v=|aYJTCLMOu4VSyFc-nEfc1{tL2*7)+wtY zP0+7NFXo=gSN9&c>Ew5-LtHaWiHJyhA6aXxHF>V{Tv?0Yo;gR>Ql19|Mb?JShQfIZ zk?=s}7A)8iPp_)FUUU4)+(Y361}Fvuj#!~O%c3lcoqOb`@BZCf@&bWjvK(ZTDl zFE0nytkBYW#)u`2EF1QE4?OU|T83FT}8khQ&TH&TiR1Jg~z*iL9oxq>$ZYN)iqgr%_Z02C!(;W3M0cQr9$l!{^k zd99UaOI2|}xa(Pz7L#PdOkG~T&;(US0Ky}HS(zlu^;U87D5lF)c|i$50S!p7xIE>< z!CMDUq{>)PHUYdMuZVQEI2el>MB3%7+cyXa5%rf%tKC`2pUm^LUSF$tCW2C2ulJiY zY(=7o6|p8h5#9ZThZ_;pfg2D0pEEbPnmRW9@NfO%kVr^|9+BhN`Pk<5Moc5_oRpa% z(K--huu=#WDp91Y4XjN>1Y=Ov!39#L;uR1`G^}XkcBPL2k^B-Mc{|@I}ZJYdWyVUWAS?h(PMi?Ys8ADNUon!1S#w_p#K& zN?*1!uJ?=VWi3z^C}O=x$SQ^hm@t^xak!QHy`FGhubI$(Ch&mwUd3^posJrfyl;}Y zz99{A>7{@@NHK@+qVi@_V^v;rP0yRiI|&g1DYIUK-1KvEzJ1`^j}PG$#026goy2(x zs_z+}(hG~vz}u+Ki^smC;hpP^jfJisg!K2BGuI#eW`8UZMXVs2WMC!-kBo2aM&n&I z-c#-Ke(Mv%4_y0}nOpw%k9w%zT!uQ~q&l_8V0e5_KsV)b-Rc~5B? z&(BB8%TceVv#ijBc}~^_7Q?Vma25uI=^V{sa#p)A*|I|77S67 zWwEv2`S4r*RVwMJvDT+!q zgq$lJ?%E|JfDcI{h7Zxv(m>@RRUsmfq}JIw_2zEZ3>~^wmIkuem-(*rhvGaWZ0kjw z7wg1%vA#$tGKcJ=2&5Q<7kQbX4$MOBCl;1F$rMPS zJPVhl=D|v50t>auBw`UBOd@&g_`EOf&LY^*&!T>6oCO?djsY#A*i$mTEz>PwutlUy z)bR61{;V0NS{L1SquhkG+MuPfw#gfYBP|BL{iR#Br?v6ajHhN|Rqt6!_NDEyfwI5% z$p7?n|Id&AyPYwdhSidj>%(>%aT)pom7S5SHI;K60ye6uF>;RbJhZnL$%6`t!BPzd zYFMZ$U7V|SRl#yi`<0Pc<6P05WUa9_$}*j%QJN-MHh$`qPB}ffbn@8gV-_})x`$r< zi`=xM#b|jR1E2rOSKj~r_dod0|M_LQD=N7(=IFkC`)*lYe(1=N(Vno4JzjtiojZF5 zq%`!_sjUVE2*DDnYUs<307clkXV2e%`pG}Iwf9C5&Ph_{N#=>c;8-xPNuybX= zpkNz?iS=RBqxEnC$8zrc`EJj~5?_7wJ|W~8YpN$TbXWR~M%(3St*NZHliQweY~Yb2 zM_%6f(WI{0zZU|fi6s=)Aruqcrcj!+a<-=wm0c8AT20&SwzW8Wb`b=4J-cKX zSk7kW=dzd+mBhoLP+HML{w)^4*oXf$jb+az)A zc1Na6Tcne{U<7$m@rM;5);e`*%ZKA1L_vh36R6aO0IDSKaA|K8S9IrUrvG@J0&$Mxod}ckcX| zGdp(e+P!_Z2o&_%AiAP0u4E+)p8(}we6*RcVpr3yq5PnRCkD3F3baND@qN+=146wJ z172WRa?6>Q-1*$G^KN;?-+KK`yZ7uQO~av6ss>N7At7yteJE;;CtG(sr(<~J$dQ)~ z!m;gpZrFE=HYyN%1`@Hs&_;1xK(z$U+oD^9$mLxkfuPZdA9>{IiCR22HxIz5`mXac za}k|e9O^WV>bq44xe{}fXPmM{Qm^It$;kPMHcV``+;#Kf;_{X)^NmKgUeBW_Yc_x2 z$d}Kwv0BG4LfX0GC;#x@{_*?Vb;g0ddHy~2+L{<>8a8mQkv8(7fJ5DwAa8}B3URk!=pTi${Y{^@iY%%T$)>G}XhQ>Gz{J-rj6pZSBO-qhCC9+y8pv z>ADaGGk}Ftr@s66;{bfU{@_2kcqidyl1o-LS#;b#@x)q? z24%Le(uyMO9XkLJ;NcXsgbBE!s#KYvXn_bdPu9!$4R@{_`A#FDp#>SjVs8(I^R*VK z$|oTm!aGIrC^5iZSRlFe*0C4od`piNtoR7?BPcTPp1`7$2IqtRY7WTO9ra6fPAZ9% z(h;-Aa!eX8~1nLQVg9}h*G=iZoz;gUo%h@BMaJ0V?b`MkfnnDtik ztFIfsgr~)NiA_>(DCY#KtQBIA1}Pzc6qG>YQ!^QosIX5)P^EsRRS4*<}K)gTfBh(d@8 zX%G~g5(g%MX40g6s09sOSfoP4vV3ufbE3Sri7rGS0AJ=9!uqOmHn5@xy{CfBS(R&x zAkU*L^HEgcP+3b^rYjJZIE;uIL_20?j_lrYk1{GpUYwsYE?h*$i5eoav$KnX!Pvya zSf>N#XP1{B{1^Y?5?=QgFE1@HGcz;u$xnXu1vc6cYq}s<3c!qw?cBYai(qNEm!v48 zK?u+n1#Z3QDnwiQLS#G2qq$9z~HEnC?g0AO9)kUpyE|D_=HkX z6N~dH$O~B(CSos+!2&N}kjNlzHWHgI$F;b(gd`EABvQWF%#2BxjYt%%N1&AzlW$0T z9>p~qiPw@ob^b23$0;xgD>#ERk}PBgM3kbOm1V`n$O=_v=K?8{F@vkUjY~nYljctyWy{eGJO2;>X8VPS;PvBL=efNXy@+T=gypAVGUDeuqo7!lnj6Z zkPwGfLU9!Bz9(P$vpmH($*xZC44R?Gj*67Oh=}(g3nyX1wr31h(b>As(+X>NCQe-x z8^^3PaUi^BKv;xKt>Mza%+cq7boGH?+02CC7S2e?4DQ2s@X>Vzsomsr~4Ju-^+nF(A z)}9wJ%#rstN$xs3IM-?o3+7nGiXU2GbIBZ&7b4u0YzOlLYOfq&V-~D3` zFXV|6<%M$9>^Bq_BRGpHb7q$$+WWwwEoJ&G#7nD=hd9f!QDcw@QAA}0Oi?3ht#?iV zqhqmy4m4qnbHNtXr5ZGYK{Ob|!(j_pzGnA(p`~E0SE@kZjW-sT0GOShM-(j%24myn zAs+MfZ-4v2kAM741tP(9*?regcx5PYS9bb-mP>!g-JT4FoDN-{dFQ=n z@s7P`7V#{kB^~BAjcc`dW_9Fky)w=VQ#iGokM4Izb_||v^p_($Am7 zomg$Wvq(fcm!xT&rh)S_Bo%@_G-bPk3EB2E4W_0_Qt=T~MWWc|m((gJ^bf5mB@_9FDcyaPI4mJ@$7$@{ucxK)hm~Pym{pJ@T=S6=B1v zshbWTJ_KO;vBxU=d(B0>U`@c`xznc^UWpds!vA0UOsI4V4hKUFd4nCd%su@m4BB4y zP7I!vx{!EZlmfGe6LFy`j*zFEB)b4+cxwriL^X;N63$5h0u2&X)P;v}eBOIy>ZeZH zJy*T_%;C@#2)w97T6O9PfK}&R<}|_kLIoCXGC>5+i&g+J0iM~IIBJmhd4DP2615Nu zlR$xoX7?00(he?S6*)y)w|?Q9&;G>Qx!H6;$NRo>R;hgV?qB`Z%(rSf^FFi4N!5JZ z$y?A{Yl~KlkRpg8iD<6p&aI}oVf6dsUI!3%yJJ5;Q#h~)Y`9_ykrpW+qdt~Axuvn zFDo6_wE)b{KJl@S9qD$@o?l%As#FX~+&Oqtr&u$p4+9Q&?>=|>j2EwA%8JB5s~ngt zLf;D&p@n-HafBS-@m!(aK7% z)oMAL1I2zp1xtn^2t0vKoy zXHpEsq=dcHCZmC55U~Sp*PE*=>DHLqK5gud=TEa@O02@ptNz2M&;R`2A(4*A60^0| z4u{YD$)EhjLp}0)002;PNkl(N7uXX7r6vM{IdohNI3UX1AKnTF29f09B;DYG22o8%7vvv-n zy-QgZ4Tr9z8%5b5Pa|yh5Fu+#x7%7?j`BRo^QqIPpS^nL?I3WZiU3d)y{KD<(FL)f(|mz^Um z7rrBWlqW0Nh-1ka zsi#4Y8_k^%DN>OFt-vDINqel3TkC`xiLrU;z$wTSsW7Dr%LRqbkP&&Toq_NF&|;L z^GnY@d3<}+M672X{?@@a&n)FN2W?qfQN7yL^XVXt0aWHFb-UmCg7L0CX!6rhDuORN-;B*oYPB8n50im&yIR4li|Bw-+>>vnEb!&;NSy;84% zMJw?ly%a2PIXCJ%W$haYOkj8?N&$)nnVXm#>#z2kNin_E`?AJbs)H=eL*ijSDhY*! zl+==<+;o_ErDFg}>Gh_;X!`Rdhydh38^2Lxlm?K4$Y`Z#z%Y%5Ck3*?AkrXHPdFRq zi85pRwmvyb@1g!S8P>0g&z@u>D)PELan-j!UBCb5zSC^}?j3hL@ZIk^YdO!Cr>3sf zy1sDcWWAw>y%nPdmebQ;{yii4)np@4oU7aJUY%Qvyl5-hiW$~+uiC(KQKcM}2stNF z1g(8ZE?Dy7sA>oYu*Oxf0gzJ8)2-I4EX#&NGfIsy+N5i(%Ce;24^h@A&(pfPH_UWn zcp-w;1T>Ol>BuqMP@ZANFMd|=`R7&>Aa%E^2-F_zJ2@dzkm5+%CM3VWjKn%YU2%xk+3@C_QXVY zVTnBxRQVtj5JfR%Em!Lq5DA4D*dC!n9z-BfIpYRxv!S!0{;iQ<1OQSz9HihV^&X&t z!384S96$seZD~+8OodAXh94y$A`?R!78E1wos4juVr|=ts6hfCxnmJg1Q10pdSdqI zDP<~)`$&Nl5xHTmDJBAGO(2ktcTSz?rD#NUV2#Aelgj*_gZF*wul~kgee+*D@S$J& z&UY3kCnwX?pFR8J&Yjn{TCJ1MoG?+$`M~>>*($Ll&OIz`N0F*7 z-O|!m{>T5Z>IMv!1BLM~VR&c&XZRH(@EctiP4^e|-$COsllR(M5@BP&tg@`u?<;GQ zG_B`(YjN@H-rYaQ;sFU5FTaZBmX?AcT2yNR03Q64Kl$?S|Ne_U?JpqH)6>(_Uj`8T z+c=J|#4L(68HLt`3m2-!5)B*vCIF$EadS&&u(0C6ij)-f9U?%Is0^;wGg7o8QDBQ$ z`y!CCNyE^PTre8TvRElh;v(~3%+O*l4rtcmey?v@&2SV81DUATytQG6Bkv$hYn8?8 zyWcKUeTsxVhev+qD9y02oHy&n7foBFg55-jwKAG69Av-ZB&Zb-oKiNaC17$cC}L6? zq=`gHq==!kD6JF-LXn|b(yymx!KaIfo`4K;qW*sD-?HUj-G2Koo;;Zl<;*fW`wUU^ z^wF=r>%MoLUmE1YuDBG$BH|%KW&7My&8ZL~b1sh}RKeR&gBHp#nMDLz3qa0^F-j?` zHD?)>J|RZn2cX#>8FoYjqW0=403qUj-wuZZ5pAu`vMA5BwMF|pbL3n+7%Wb0ePgR} z9fO6)Avl)^e)8P%^1&N!fC#*AC^b7j526P@_qi{B`qR&G1HUwxo}Qkb{z~~j24re# z>NP-vzlNovZ@v0Mp$u0RK~fA-s_=kvc|8s_k(3TuVT=}klsMK|%j3MP|K3Wa3X09E z4Mx#kd_>B!90G;f{bnuFu*N{U<=Avj$*E*DG)ft3tzF_?*}yqfUPxYn&f$uW!gE2gdRf8T<`VfcW!%6yBV5C z!GH&&;Ozl`exBcb#~lHIl^T5b$dRA>;0Ise7Jd;jJv}`={ne2>$^&@i2*fJ^VKKFL z`sn(Q49Y_+{yT!ha{Z_llnovfR#R?Hbo$+1X~G6QR&-26M&(VGwRsm(`uxQP%Eq+_ zDeOpKoTxBsi$^#C;=#eL6bOsAGSRF7`BE>9TVp7p2w&_%t^O< zcHf@2G#c!{LJ%l{2p6|hQOjXW!5LHa#S=aJ#1r@3bI&Uw^O~NXo}T{N`loq#0$dsd z;!0!8RdN@ zV!d}F_RN{5e)LD*og~|V+&K#z8xD^F;+)kwOai6F#YaEVddn@pF>=jFv>vUDTFdx_ z!tTHm!yFiRmB@JS=^Z4BL<32{q|(OiI8CHQ;=zE2!_3;)IXxVn-?#IJg=C^5T!hRZ zB3#hAGr~h!xHq5P{@maphSq;NJ$>K3_YR#q{Qmd9^cy?C@9UMRQ!dD*MIc@w z2#ZS5>7y5O2-l?D-i1OLu1{2~la1L6MMawc3)a+K;ij=~Y27P)jS9V`8X{$rdPGCA z>-I?_=aWn8SW1u!DFYG+ODl=VTPiGT38})fY0hOtsf?XQr3R)l{z{1ncnd6Y8VJK{ zNXmKZ!=4aytwGM)dQ)dMQxcJ)+=(%y6lESpft(kk>m;0&1mQ#x#9IOBaw>QP(%!Zc z-OGyEfLxDM*3DAOoyoctYD_e)y7LW>eCLT=67Mau4HRj?dYqg4)`up3C@y(GMlPdN?SB;x%lD!@%{k-! z&V?tpfE9@XMa~=X#dHMrglG2vDr&TdRGP~C{K*@x{Sld{MjA-@Uhq$Vm_z#-b2lJx zv^C!QL7Luo=bgX>L^3ZVCHAUYr$S&g@8nV<5SO%-X@i=hk%bK#mOpGwy{+5EXt*pl zag9P4pnS5f-;3v_R{eEfDgZ%o((4UoB!f=0PfV}tI?3(;W2#hE>7RnoAGms5JW6&! zh|((L>Ff2#xnP5d%}KloUsa&DvQ3M6vtqgl0(^_#RSZ)JL;k{{H`YQC?gJG z@J)!lDuH7d4RUTtE7NM?JOF5G^CBjzM08O`00MO7ic1ky_O-|_FWQ|uRmM{5w9y%3 zu_Q{;JTdWgH~%-E{+ECHfDiWumTgYh8XrnypmA(Mp~d% zt>z?JJhg1hjgxNM#Kg_4WCVL65EfwwNJLoJ+tpOSgVf&fwl@`|H%*=e|Gk>zYyu7}e`XUItwD1e^NBQL+*#2thI*5jR_r!+8Oe!qQMCR(CY&<(X9w zlDYvL!UVT~8up?zLCK((gAkq*%xpBAtr`TvK2&*lp`eEV6?oHxh&ZfQ#Avou=7-@Y zWIpK0pu~%zn8GCsCqtBYM%}1EmO&&M4yiZb!XO}m(&Rmy7uHUB(JJwvsC=>sK?78a z{PLpTu|wtFUwixYk3V|shIpW0@?JN|%q=&*??3+^fA*fgJ=<#i`u_bBOG_q-9+;nZ z%mo#t2%kIm?Vm9}F|LzV>n`$W>Sj-^vUrlvPl(DysR#>8>NEv}Nu$Jk_1PmW3XBGtv9SakS@=VrhWd%&z zwy%vhJ>AV~)Gj#Nz!1OE%OQxpLB9e#5W+kueP>e@$Of@opQOu~kp7BS39DCVenZb9uH-&vLwqAE(|a0W=EFcCssZ9!l= zzu3L)?WGeKXlJCLNGqmC0CB5z_`@H5jytwWGY~G)OEl^P1`y&ECIg>GE)B=b%*@R6 z^s#E67eydIah%VtE`sRn*|TTPo~z2c%eM-dAU_!P`wE(%AZrtQ0ot{5*Y>HMx)`+y z5^A*7!tuu=WwjC@FjSWfiG=z@XBgE0BBGgRXJ%$*1khTsmxa0hRg(u0a{gd0=okyj zHlV8FK-;-%_wHT05K12f5UMpymLfD71+tgsn8{rVQezXfoO2Xa&vdrPAY!32+6joZByH)s$_m~`-C$?qBKFvQzvHb3R46t9q1gG zR~8qS7Zy;G?@#UCJqp6<>FMd|hX9nQqjH%5bUNeX7)Y#-~VU(7+hjm8msQo~+cCrd-MTD!Mrr_V@nJ_Qo*`Pye{d+u1Z)_AYD zeJ?>&y1bk>+U-Fmuqu=bvZg>PYK)4kqxw|`zWGN7o_gX>e)?Bth{6m&5}`D`>Dyn( zyGz{~G+0?5_Xi}N;5EZorz|T+ai&^X*X^9#6-uDOqfo%CSV9Ls0fg}__2F=+jZs?8 z&o0a@b#H(By?0%+XAOaJ!RWGZV@yp21Wr#+Pft&eoS_Xj)kPhs@bb9K@C$OuC=U-E z!iX}wXh^1f#?bo5&8RuLPDl_YW}`6Iif9L_w)5?K&GBcxW6bL0bB9}7 z>H|BVgq%cUoqFc8)TI)Gsn@>zOnT2=b^0uvKtzmEaeeBUhilDUei+{s zQs2J0_3DFf=zimfPoibppHNL9)+EZv5S)1y0$WDkU$gJNZ~fFb6LpLy!gU;jK>}b+7F}W7d3HO2!3$Z8}-%?NWA)s^XO`H%>x0j7? z-95fVdNT`vfB49;``&t2fxznBty$(Ex&VHar{)t)GS zei?nD^;-d`AO}(eKMG(J%7ciyD`HHKXrOgguh)k=p48$ESczBS4LJjE$ZL4JG&kml zD5k|1-bY|uA_=2f{k9#gZan+U!cp=<9^|EZDG%}j&v4x8B&z9DoBMVsq$anuleW${ z3j{Z1BV*~#3zv13BM+wHF@QvgGb3a~<l>4CK zo(qPZkdi2pD2bfkKIYrwNC6AO^=@3r&kZ`tP>kyU2^qmZ%K&~=$y^ank?GQUXR5MQRS&8W^mwe z^6*SNzO|m_xl*yxhLkdqUhQR3qYY?40|pY^cKvm|v&+4+i(mT7FK<9#x7&UC>8EGU zox1>mrrd*iZVId0tpPuaHs&w{JLKN|jbbMab41Q%l`1 z2Lu8GW3pPUmhF2&1;Ytmi#OyAu?A~+w>;O8REa3Cf)KM-62hn?3}NvM=50IL&nzBQ zp2@TFLXOEZJd@*gr>5F6a4D1#rMGM!Yi&tVpL=Fz_TI0B7MaC+E+XdTL|$1pW+Z6G z2;S+DQNaQh(!~UC0Vn~pwSWv6kulJk=miiML`B8(zGmF&k}scjq?@%bJga-D@-M#+?_saU;#xTqz2NfY@D9&#Nt3eN8e^1E zCeq!0-p`}BF%Ai=i{(2AqJikPn{Mqb_IpcxVfpTNA3l2Y=-k}gqmMpa-ARA~YCsIA zk#x>z*aGVVp+1hI&wu{guMPrnd3?eRGKxd0l;N4PXUo5qEl!miIU2AjQxt-ABeTXj zdVcY1z<_9|b*_|mZhq_5`e2Yn+Cz$#(6DDkDpaKC;p&9Wm%Is+Z%eyU%21351DdvM zZ?Dokh~}SN+&^)E>%MOXd2_PwQz#WWemmFEvpFrAWAJ@)Cy9My)G{UH`xicKJeIwltp)icc^0CRO8XVdElj zNRf#5fG8g&-83J@(Mn?rh^T>38KJ-la=*OjM7*v?HHfjp+xBLUJ~Q5qh9;*-#0V?E zXg0iZ{`CG`$>h$?(29`q!IXr`ogU_jp>j{TSGm`=v5Pvw7GqHy#t?8tPe~#WA4-pi zL2ROEwVOqaF?hs{c-AN%nO6u@XOCJ3)jMfjit z<2e4zXTJ2{gTL`Sr}xszr37K=8HSwUXh=qI5!E05IJ$mhGole^NGS-zt5PfOxhi_( zk*_zKeXWODr^Yyu)$wt7-)}SoZ}?{X*c|`~i4b{)h|?q>)zG|E<%y=bTvvJfV1AXC zOyCPo62SJWxAd{Ry3$YFSmMTHP}{n%u{v00_RGtQ%*^78iJ1fuE)j~Ut+kNB4n=r6 zk~l827y^KzB-#?i&iVc@*Ceb`__~gj9&I%T1js=uia5(bWQA&)`ndy{=RBnVfJn53 z3IvJ(wDK+ou?PcDNh?0?;zpw-;L_*~DndsQ(*7`_C^9pO3Rs+Ot4N~I(a8aUWo|!A2VsF| zZ*}T522C zGr+^)@PP*&c>l{Pb9>qHDrmw=)-Yzw`1W?^e0O=n`n63}9JP^mhYU6dah4FNPztoV zB(>T=si9J-F*(t&Rs#Scuawi8)m>kWzI#uxFB49%VsN4)Rx~bID?*Rr`Ao@3;Tjin zh6sSqY!VykdjXBr5|^i`oM)xa&p2V*9Bbyv6r7(ZSUf}cvq}n5h$kr`Kq(?c5K@Xr zbcjVT0Iiyh*gM-xZLCEKZk>{lTLdHnQOjCSBysG#h*zL`Y^>wufpi)g&mqJ_25Vtr zP0&h|f(TeKYZB2CRYL>vG!1h|A<9SuQDEaOHEIp5Jj2D2sJ(kV^U70CPqbxXa@$JI z3apHff%hO%0_{D4REBKD_Ob!1$^Bz&0A`JVR;F?kS6So|2JeQGnTd`XW&Wm8dI(W8 zS+~AK;L}G>O>NsUH8llDzb^+5-duueLwvsEO1_B46v8m_syTrhbD(l;L^{ zA>3+ZtYS1q4;0D}Wm!q}q2}0dVflN^RwPrZpCnExr?u1CMv)7{545(C3Xj0hfln;V zgv3ZKf@Sh7M)Gz7$LLYK&}SB4FzmD<7aA68#6{yFNkMYb*BDysAa1bORq(BeiEh*= z@)Z!Ji=-ZIIDibx!4C1 zYp_5oVy($P=Pb9GJgdd!P>nT1q_Q$pVcm!HHwcoLxY_h+uiGsu?*Qo!d1VmFen=51 z%%5GJn%cGJ`dbDy)qCo(TI{uAr3gYoD%2lkgJFI02AJ7;yDzXLbmx8&y?SL>f8t%7DW|s?%6!O4M?tmA96Qy7CJ`&>p&>^7AKWuHA8< z8jb;~wZ_oxt+KER16>VBk&bBY+|uOa)Ycu_MSR+4)kk~FwP9aUmI4Ks*Xkl*Ph4WJ zDuF0eABT!F5h3p9{?2#&Ksczmqeo}YE&xe&kn0>aDVHT^EnZw4j*T_SDf2QnmmNHK z>&nVP`6CVBOE+)y)~epu>A=fWkM<(v(u43~%J9O3p=?|eGGiAJMZvq1=FXkX#rY>r zpJ{B_LUEjH9dsZQ4H^v+sSp@ysf6zTqWaPylmQqP#0s$vGoMI#aS|9k!)!!QFj+*1 zpg3ga0YF5Qq2dk@CNPnN(j4NPSD)QJ;bx;PG@{0fp4*~moJbdOAP^Lh21)2kEtDlY zC(LoXHRXAEV0#eKVttra1B4SebW%4|9w}lC3l+MAmwIKPyFd{PX+X3l^48~8YaFou(=o^+L8? zh`{6>Tu|l# zIC$`;i@ABvv*0Tocx4fY%dZJ9YLpg#Dq5U+D`i*U#(vo#EX|!e8ljjwidx3xA|MI~ z^h)_8`EMTo%EIc=Fa6-pbBV(c9hJ}u8?G}H#Tv1JVvq+B0!s!1Mu5z0wL9|N1WT$FdnS7tRGi2u#ky20Rr`ATfi}OzwEc zy#?^RFS|T3cjCnC*##gfW0+jVKMO?%k;SEaY%GRgteq53lZ^=Ekymx6RSw~(@%b7; zATARK*M~`;4~NCOU?f$&21J&|)b^Sp4S-bObx?p4;Ytm*+aLPom!25om0f%HAN%)D z-uw|JLOG&c=xu+AzkF*!4Figl#5xRF5k(*(#T+TX5DTnO?vZ=Ry_9#D5Q78Pn>ej} zh$9GFC4*+eMTRwrR&0hx4w)G2;fj4R^b?hsG7$l67C@u z5z!({Agwn%p<=D_(jnADI#$-P57WWRa7Wl>;8LyENU~n;k<@BM$0RYxv+)^ap*4XE zocJ`CTi&f>sclX=x zE3jA12nx#qha!LpZpTRVt_QHVa0O>mSZ)D*$ zA+Kh1bb|_yRHZp`FMib4RK=qn!cnBGhhtIz zTNgMH+2=`(iCB}5w2LD)N>q02+DMM7JwX-H41}?Gt+FECNDM_0$TOTTxah+Uorp3j+_kY5*g@_kienIixK_v9^106V zM2JuJ()_Ns|3G;KN;CsQr6#W47gpDq&(53{7Fu@$uT}IEk1p+2^Wj}@`+>Dh%6Xq_ z@8!bW$&<6^M!Z1)z~Yh}YbyX_Z9?(gh0YV`UQFP*g0}+cNKNzF{c~QnX zugMq^&j7}1FL0S+O#pI;R)HIhm^pJCMWo6Rwbme3TF#~2yWjiP;>?GP z9k8aIs{fWU1Umb6U!+fOLod#FqqTc`88x}!uNcvXg+&?xfKYBDrImATtX=Wh6)FAd zRtXAl)TCSwxoUm!O(XCN>)mS#fw-)i@Huce8YUHhiZE$^6(Ffi9=v&?%vDh7#FTmo zLZpbiQi1)FnHQAp)+jfy5qT|HQmYSsr`P$#(i|lyCF;lii~Eo715u* zLx>HDgBZyjMMYtWfCyR~LxdDylo%}`7$abJ8|~R*$m~+5pd>s*Zz)Y_+pM?7-yuU&sxDw`Q^++3q zB>+g$Ie7C#xs@Q~*F+T&hX5&304GT^%hFm+m{+yy)wDJ23|tHwla0w&Ly-Yd$}2^p z2w-T4Kr<wulIm5eP&nApsnOMQdUYh$wglM+Oj43Z%7TrTZ-8U-{rL7eRDJI2Z?U(Gd1eLhr zgiMrrSg+I?tp@pUVuf48(jWGnMJ-vo<1f7RM`9;0*rh&lg=MYFc624MVgGYy&di=) z%x&Bri;^0^E;J&8{pkKm-wzi<-Kc|ip$WR-BXY?(nl6c4UJ$NVhCxPszd{Zic>8;= zA50%Tx?z3XY>pkI?$JdS26+ub6!HkZOu-plYxhqixYSbIQ0Txh4LDH)2_!UCnGo*;9QdC5IAgGk^YTpn?masVkWL@Y|N*?QB_ z3-02*i~tTPsf!0GgV*;qc+Rrl+Ti zhwcSWT%uykO86h(iM&$Sw(Y%7J#sQ;mo&!)tZi>$`#5WI5%~zVR-^R~Vq>+BpmX+K ziS}d^Sr*M~8i*}2FPWpviP2ybnR+8&4S}#Jzda~qXwRxSb@2R|Y~iRV59LXV3h6@v zWpk^OTl7k+T@+`oIlfdzE}@Ey0x1QTdKsosvmt^wA)$4u;AO}e%Wb7y97(-aDPZF= zZwnasP=KKHM7{OUUwrNUx8Ad6KnAD;ZAP@wuzW7LCgvkMO1sqnuQP~< z-0?HBH{SRrfI1xjqx{RGHk6FqLKlW)q%=)8VD&YTkhoAT4ZX$l%Oj6G^3X#^M-W(8 zM{&I4@ZmSDZFBs1`S&u)M#R?kjxCq9C`uunJ^!c1WX24~#@_YFBadvOh4CnD?6~m@ zzx$0}egCm7N#2OqD2ZX~zg+E40Pk&pcM`K&&7gA+8@?;2#p@cLP1Z#)hio30`vMUlJB*lSDMWEn?6)Eqb zJtGopovy`EtjESL!Nc*Hp|l�)fCtjIj*#vr816K7D4-uAS*H2l$y&XYT*OA6Qd^ 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

    2vUl&^ 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

    n<^NgPy0ku!17@%{Oa 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%0A@56YzVkuE~BmaoyEn3MM27sVeLFM`299 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

    TKDEC~pLWUg__SR7 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%0AX5D9T<|=(~G%$ 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 YVY^!L>s6KBS`aYI?mW0%ZR`^DU-sBoEC2ui literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_09_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_09_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..03e4044ec0d30cd319b56ed6a95ca54bb44766a1 GIT binary patch literal 15349 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 TW{cG*00000NkvXXu0mjfV+h99 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_10.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_10.png new file mode 100644 index 0000000000000000000000000000000000000000..42b1f13325c1fff7c2e7ae1221dd42a2bbe888ba GIT binary patch literal 52900 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 JZ97 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 h0GpQNwXiK6b%5q7*mdp0ByqFvNVi)#_ zA@;_koD{eSg(=_wfgo52A;B!Lga8Rj$OZ~hzy+7#1mEB+CcxTUo5H@f*Y?3GtP^XI zDpIXftGUrsG!=ENx}vVz_mB5|dfwJAOO|BWWWJ@cN2BSU?zi9X`#kUS^S_IAG_7qZQMjmtyETT{nfWupZ)x;|&Z&qvF+R4%q*1^Cb$KC?jw zXQg$f<0_~74We-$ytTo%o)fmk`QR2tCa=_A}?5gUm9-}0~%hjfQ|zp>mHO? z(Le=2c^I^@+1||V6EUHx&a;bKw(02V@uXk$cx|KAU1TFwxGO~+tc2@kPYg!59R3K1 zgTWes07qGOhOv{eeXBxw=?H+UxXdx=r~g=zzq^5G3$%7JF0A68AhRDn zfTM71shCZp+(KDHwM4bG>JUIFpcLqoprSYd(p;B$>Q~|G-?a1{1R{3^CfM%<<1sLp zfN$ktFh(hmQBor|GA2$`mNs7uLnYBgp#fIIdOlgDv%<5w{DztoYj{!>nQmdxtSg+8 z;~YsifkujqO5SLg<*QNh<xQ@BV3wX0lIQLU1HaGJ5~ijZsGt-X5nu)RIv*gF zrK#qozY9P8u@&QyZ5%&}Y2Fx4PDDc6c;rF+S9{C{FtmCHoLF=~LBe8S6+^4S|JO28 ztt{OhXe+FOd<%=lyPEMaD`Jot7XKZK7TV;oR!c0Q3w99KP)4nW3)lu*)o`laMA=C0 z0*n}ip(a>10z1X-nhqbJQtCSK4h)RL%J8b;23E*ElO4&_XDrN=`=knq?1mq*i^nxi%vqa`mshx zh5qsoBmYuf1oC{kbw}4lBWy5u6m2Sf?aqFl6Or*HhlFGojj7qs!ErOi}4Jk=Zk?%JO(pD z3m>=gmDt8kNEg*C^Nn#6G(%5;j(&VC46|BYRL7XEI<&^2aS?2mb z!U&S{^oh zY6Y?nEtLgv0s5)xWM#bvImeKMPCS-n)XymOaw2tf>^l(;MdFR3pIR+SqJ@eWTny{O zH!h2!%Y}i}kb&<(wuQ@P^oVDMIUym?!iTMVHEzr*MZ>RriB5b)tLDl+egU;Tbo3yT zr3g8;ujh^Zy5D+q#nIz?o127(qYwau!uVn6h1Ig@{47bmDuq@e?890%M?;~pyf?m8 zvSB;C1BgO^yw+xOUqleHy^hbz`bdTVxRr3sdA4;D-(7~q-EO*NE@eN(Cku;b8I{eeutyDU0fN|u~1G%43L^74k z2toWAE2PIf`%&~uim*5NQyJC6{UX!5GGl2 zMxW&@7P?tPL^ela+e`@@T}JRM`y%}k5s7I;TqUsHz6#x(-7!!26b`yRmaxG^wZTbK zsF#VF(VqBczru@G@$phV%5!o7U7t|+9e%ASYOCQVa5c}uH66U(b5lrJx%YL@0 zQA3eV4y#vX3|xaFTg3D+s;z?Wv&VlXgm6yjLi!jgGsAaf@P zffjbQa;rRqQQC?6H3$f7St5aS!Yc6z_&(3xm*ctW^0I2GucLGsb?i&r6u@0Nog#X> znn2>w8YQkv-*kWr-yGn#ja++_a6i`ixf=~bq#;T`EhCVK24wWJaEy6KWVO_H)+V!b zg9uI)zOo5!G;ZI;0ot;ByuxT$>%wx5XIWVT847l@h|V3bnA7dh$kyKYf2@^BP3!!`N@_cn1FIOG^b&|FwE6vE>ThS0iiH=N

    iqFRQi=^PmNoHbVrWY%32W6?sZuB|Qd(#LID7&Jn&(t0kV}@Y z7)mjy=F#PXlPd@1sjkKa7l;FO5pavGG8p?sz=?Pf$fml+D@)ZtjhHh+F(ycxm zP2)6>de!DVw=6%fw!UxO`523SXw^Jv-Sa2wKZkVd%I_;+l`d7eANB?^d_Xx!)X{s& z5)3DdHn~}&?r%Eoog76WXS|=We;RvWN@i9@=Wq0=KH@Be?x9T)FWDbGDKlExg&MidZsk%DRn?A<;%0`o}R4(zY_gTci*AHRX#}1EKW!KkujB}{Mzc2qo3UXtJOPiw6L9H`*IM7&j`e6r7l~dL z!zyT?2pe%O5=&LkHaIQUPJ>ddJT})1WbT)LjTRnl#G@Py*dRgI)vz0_rmtU_OQ2hptdjh_I@&(Mc|7=Ro@3E5rQU^AQ`>9C=b1FH!S zVXdC4As9)JNYHP-mDQWwAVDT4!=ly@|1FMujVpa=>|!I~;AtRm2}EwX;KORz1D=%j z*_!5wEOZU2A@SVu4FfOM(!N+^RUV!uh%%6y392Eb{Hez+i_gQO3-dMPp%ywg3?IaG z#{hg>?Lds)%{g*uzT}Zay9jmAu(4M(RZw%AA>w|tfhR2t6eW8&MFB0m+W@X+_&KUt zd*L#!f<`cRt7k_mkA>Ew&rN^dcn+8y5>6b&R)+A8R}sWwyRXIEUbl_Y1qg~7E;t^?i{2EN}MuCn9&iY))16S&;#it30Kxa zTdvOh)iIVG$9OX^Xc;ju5#L6p*1 z`YD_zNvI$^bfHVCAVyF;R8vqdhAx-C1z!VSrKDwOx`KnSQH}`=i%t+1gT6jjTDwVl zp>8+fJ^FKM>MT6N$SO*ZgAM)swu-q!KlH~NL8uv5)k$wXHn=dD#7k0>QBih>e;aab zDiRQ{CQDuL6fZ#!RQp>0R8KGgTi^p|ghLJ=x&S>4pd>&<{LQ=rcSa+&W>@(1HftDi zuszBn31A2Yv0)2Xn;OEQ4mYLM<&sum977#UL&-LdR{ti_@~!G;WX#jD<79$1; zBlnGC{J3!$n1{UfSDt|ra10yP{+TtGa5cD47gcPWoPqN~KZRK%;Z%enWgaeoE~%Rv zLGjSTST3)Jx6li|4Ni)^BRrnaD`xb`Q6wBLn{cu^K4i^a04pM{3ju?5dRZMwl7MRm z_~#t|b+(2i4pl@ptsTlZat*i)NkXGq`v<{JK!PPOI7H?i@F9H*du*Le*oS7VZ5$Tx z%Jbav0-SI~&ny&CEegGI@v#9U+Y|WmHmd^yr7$}2p-h6FzXg1pl%_z`_7IX{^h}Sc z9;a4QI}zuhZ#*-Mr|pdSOe6`38$~1TM+~f{KcTBdx2x_`T*ct4mt;A z5RxnRFF5}UWOgOtGCu zI#Q5Y=z}`g3!CuZc!G3Jr|YW+Je(wHv*8S3fYmgM!@@E+1@DXcl##W3SeomVWJV^9 z$%hQg>E~H9!f=A*jR6~ECe|2wfUT2^Zc!a`+SEi{3QfPZp5=YW7bum=reh}}VTY9Y z3ovv-r5|S13IUWzM|*YR?L^d10XZ&+7zluyAd!<_in4Sl_y+MXwb3{S>B0!gH=MJPN|Yu6T30NGfU` zVkA%0LBEu3zq&?;z*PxxquqyZloTrasy?r0VIJC*34v~DV-yv!RP$gULAsGd^qsSW zdN>7d$lgm)u^Bo=igJA)8s>QYsl16y%h_M1Y1|cH`B5$U|`s?b|K`A$p7TOMnpi7mquvST(-_^0G%EKw(mjJ7tu&GFguj_zsZR5o( za4T$rQ&Qw^Dbz@Tm~PJ0>FRJL_2~3IFc6K}Ss-PCO_eq<@&}VCsEs>$k=Kqv!eG3} zZ%5oW=ocdyZHZA;w2wkNE_@GuC{F1zE^r1iT@socn|Z}W;h{>f4P>w*_`dLRSRPQF zeAI;_ut@4@*2>MOiCF+~PA!Er+zcre^>VyM*Q?(Q?}{@q4@oH>q-^s&@F)1IbG)xI zzA@gLC3q9^umO6Fwh_tr?kG~mO0rn&N|LK#Ll4+e2J0;V>fu%!E8q_3hJpKe>|Gvh z8UmX?F0#JFE;v=7qX@e~Ya2iDIdg{g0eGDkZ{jN_`S45~={lTMAY-T|cL}I7I`Qhk zcEJECc7AehRa&Cp1N$itd?ubpYXEjnu@BejN3}GuB(RCN{wn;6Oig%A!{g6PO?6 zyXq&Q9B4_skggnr48N7iywOyMrccxzGk`xz-O+QyxD1R?fHwfx40WnKh9M9lWlU+| zz%Z?r}{9X2e5V^mA^G;cF6{V8>OYLJW#i5uXfKKgp`wpk%zCv>#Y zQBBYWaAS!=D{a*>=$=gRE+~@z9;JS%R#qAa$-OBaL1pT7!l5;!v=hJ{!^1KnZ8exc z;;Fm#4a1CG_6m+9wLa{jU4n{%hXEepr5)V9sT`Uvh{WIp%Rs<7hiV#Us&!$$14;J5x8R_h zG!^$h+eX^EnlYD8bBy8)4BxgaCLOgj)X8l`jW2CkW6nShn!$rSESD9=fy58t`f4s; z1qg%u*+ODFw3ZCN6aCw$KM~CU8 zVFA>=&u+z(Za4^sp~Qc{doU=$HV(L9?@ImK2*5}p7UCPxQf~%F;x@FvpdazAg^0o7 zL^(yU1i&D4z_S2LVIwd7klWYlcC+PE*yovn^VXGVTo~~&8e?fW8bdFT8Ztt))RO17 zF#sPL4F!C2kv&P@t>BaQ_1YY`cpeTkz^#mIr{-0|Tvq~@ksK~G!rPKu`-w=QoUjhV zTA+UY9}vLbobAphmwuC=B->PltgPw2>{QQ)VwQ)~BD2NB84dz=1R5VbM`z_Lr+*kA#QUne~U^fflLWWs1Q$5`fHmFN)d0y2tr! z2aRlj?O^tO%bEce+rgI=2H)RmJC2UsXPR&9Dvesu7iy#fO#?W z;aN3=1+|*3CR1cMLvo1Uq__m`-_DOwZbqL|ZS=I!m&LCxmy&X{gn8%?t5gqI*BBQs zeB*L$Pg3ut0X^6WAfYRwM~}+1$Y2=6BT?xIEq&v@BL?=CD_bpwXJETXznpOq0OK%l z4rJhLRYp8VNjSwTn4T~M`gc$@BCS+QvM3LWF!V>owZ)$)aL0H%jEICvDpo@sL(mN; zU~~KewkbJds6@z$Js|do=_7pGvg$*SmSBac9Tt&LNx}kLBh4SIUPfw2oPg7?6}qH@ zyvo&j&7u7(q9J~S3vY&RY__fsNxZ@Ew@8lAo#1k4g#QOJXSAJPcl<2~JMxgn+QW9Z z2EINZw#xwQ@R`eE8);uQ?rDh)cfe*ip?4Q!eO!gC=<2=uZgjf^WxT=}b(Wf&E5g%uVn%{GaHge@E19We@I@w$r0viounz z4PKYKv4DWY0Q4D0`a4drj4*WCpvLIu1y&kfv zk%cPqB+3=@A>gG4^);_URC?JodvQMb!XZVb1zKxKW@4X0JiQ9)hJI-bj3YkOZe`~! z*F>v=6|ff8QTJW(8`jAY8gtFSv9jj^DuX{R##(63j!tMwNL$Qk%db}7^%65UM(hZqNfr*rZeXxc8wO?vlU%BLLr?-cr{~B@tu7UMX zpzBD;>%4xGb<@2eP4zTFld@(WV&7{18#KX{YK)zTcHw=O=>hg7awd@4+=_~>WJeB@ zN@`{YI?t%=o(SLr;cuj?^yrV(0!FusTVaWj#pFP}L0g!>2;Y*M9R`l8`prrJ*}1Eu zOj#$MHV?xcSOcOIMfR9Md3|C$y~f0?@fm3w$qTL#gP3L{gC|C}1K`2^V=m^bZ0r~A zMd_+ao81lxRaAq}`fDrvH-IBGAoFoV?(Z}NFgSsR46K4}@HR9<9UKAR8c6g)fnPP_ z!nJ#alb#qjc0lLdEcB%=T02g-*QWvNp^zJ3IaEVpkf98n@L$*(TDx)K%diQyU{!Gq z)WTg*uZ&eA5QO&_70VR`ig7`vl*ESec#kCMgD%6ir53=0##T`29~}Sx5}uZF%AP;2SUZbnNVetNj_Woz89D}s^CG&G1O5UZeS~q*glZT3j>eo8}V`@Z+d5)p@MC)jZLFkpf<|Xlr znCC-|OG(knv{B@Dhg~w=eaK6(z7q7xmkjMgPd#zF%tBZ zuyJ%q-M?2^0o2?#W1NWUO9ef3XOyorP@TNB`2{h1?G^ujk^hCs?5 zCJkSdFGuYLmyAOuBLXw8ANlb*{pF@$j!5l_*+}>Q3F2wW(Yl~6zEu88_ZIzPvtc6i z4XPtN{El(HcVU@0Fw+qDZ ze)uITRkD@2TslS&w;K8@)LyZLCF9Q`V9IQny0c*}O3utw5;8}^aCisFZX;e|$Pg^P zu~&@RaCuOI@5!GWopm~}Rc|Lt&L2ZvDG4Oy=4$9OvN>v2Cid>%0kdFbG#d9aKRltc67*x(LRvmX*WE)YMg6 zt$SETW9wI0nL$;@paVMC8g}nicf32r0NnM{P>V#7X`e2!mW@C=bU`;fsEa8z?Es9u zCsE@cgE$)@#~`dRaxT=f=>QK~x2V=Fx9^69GBl2H8|Dr$DUGe8-C%9Y+2RQ&=gf2+ zeREXw>HLw9Y4LDm2Z?S8SMp?TnmV2*)|wsw0@!M_sI+Aze?&jOA@QOW;0)Zg+KAK~ z%Ru#$m5m36p;g6GZ!x5tc}YRJrT4%M(WDG7v8?|vhH0z@J!}wpQ2zC0bNHlK9oNb9 ztA}-v0|v1&b@VWVkZ>%D%{8MwXA#w zzW*-4)hddq2YO*W16A6-vh_K+T6O(dW64tAeg#ccW$%6T*^(YF7xJ(g9+SY_=wMsc zP>jG~*C?e?1=$wXoOKdS#F=w*vd>-FwOLR{rKHdU?--WM1-?+DKP%5_;jD`*{9& zNtvklP~ozY}q{Zs_txR}W-ozudH=XFmw zO}Al0k746Emc*qb)AsN7^Wy;>P*FCDU??-2;RWG@ODavuWqXQlIIy2yxM?-m#@D3` z9%Aq?B4J5H-?MNdK<_5~@u!v1U&<3Yasr|n5@KJuU4*OpYhcVnwc6B)0oFvID&jx@ zN8!JWH*AWBN+TUno5RQD;I|HruwKGq9q=h$$|KkFL?D~5 z+6R~zCM_+7>+hk972)$I@nuVCgTtoPIu1fTu){{|LqIJoh9$p092If zXqZplgdw;k{saPphpybc2^achgZ1r+hwX3Re;6k$`*^StKlu~)uPmnp^}wOG*afX{ z8w~3&{_Hupqm$d;f}0^o;wDL^Ii1k?W`TC4pImkiZPdcu5J2&6o^6sR=Zgfj^{;7h z{n@a@SlvuX=;}rAvp015;GmrA8!)h}RpQ{M;)0*~oIDQ zXS7HJo`erzKO~@cF~`iO8W?-E67=yiaE)q}S*?W*N$^Q048Xl>}o2z}_*4=M%uIII-UeImF%p}0rr z?#r&AUs8mN#Z{>>QfCjK%q3AhSq9 zX4y=tYOHn1ggq)-CEr+Ne*t^oBRC}<#nRV|jfow%bQGbBr^}T{wQlEXP7Wt1Lbo!a zt{P);S9nui1Q2jIkxO*00=L)tbYylagpX5KsR`>0gy#z80zGrd!QTM zHGKEo&@j+#PIC@v6sg;2pSH$60s7%H47iz3>}{-J4*6DxioS zp+4|bh9PONk5E+0+%R-OpR6;=9p8fsi{U{S0N|-O_Z)HhIockxZwJGwxeS!zPMXQF z3+{a!;F~*Iel;Tksq))1Im5JYUiX9wQ`;H(hFKdS6!IE|-XOIXj=>4&vGE^(6VNE1 zutlfy!4WT^%Xiy!mAAC`ouq7LGD}UG>Lh8{ca#Ao71eg}9rY^f#^6#P%h7&OvJn9jtA$bBGnRNXACmfRUIX0rCH>%}f zucpu^Lj87m+Dd@v6h5flORvzbHmAPmw}VDY?+%cx zzbhme{|V7g(}vl~m5ih``FprQy6XpS9%^R9u~^}z?Cm^ z{3z^!gK#nnTf}x|OGSvl@Sv+{?1>ipA~%=AN3{q`mw!fb6eN}Zb@1Vpe)xtKbGr`e z=45q{8kFK>{n8-4WaJTekry$vidL94ic;8m3FzIcKVAnpDY_OW^<@7{1VYp)0yqP! zAp=iNI)3lT3ni7l4j3IgPQjXk;`@%23&5d!Ep^?Rz9W!$4vNqKhviv#kbasEF*vCf z$YIe@3s52t8)1bkBu~lhr$u>iMIPpf6#5^njl~R31&V?9>bey(R7B643Tk40NXS%q zi0lTVot+0hBd?Np20nmewfN1l$*UGV)ygR%D@sWM!lIvFa-+fC>hk9t>(;Y1DHVpJBy-ocL z`Xr;`+i)BJ4{D^i`>PWV-fs+RF6D-WWq(TD%VGst%7Gf{#UZB+k&0F}lw@&>j78sq zJ_kQ5zPuu!*%&Qtn_w%PmhGQgUUy>jOUoiy4QU2qr3$BnU1j=laWaruS4U^nOd8GC z2sYUK{j2=F+B9^mz|RW(stt*jmjePhk$S%*RP^9`>?}bMcGDssSDD&*>BL#BYZ9)k zhC@(j$Q{7(Fzb++Pf5H#+E@@|78$1JVlrz`MYJ?*_G}5pJ0(cUteRlTI*H;cs za)rcup#-~Ok1TMJ*T)$wOZCtZtod1(4k1+*|(bB4r@6E(w`UVc0Cb_|C{A zb2U$V^y`qX?}eA)y|0SFyT)h;tbP*1;wuBBJ4H!~b`2WkgOqgZE1O*NMqBf|2*#oz z-@2j8rceu6IK~~Kg_ewud07HP86L36gfX8rATm1->!Aj&(i3zfp<}o^VV|)Vj(Dh0 zFLlHncsc$jH5;S-aUhAykua?4W?vl}MpapK;D|OPmv!khEP(3_yYwhT`o3)lbK9`K zL=JbyQ2TRG+oD6!VN5xuv%{#~%f-w<=E5*D+djhq<-4opyVdYfO~`Lim7?UA zi>BX*5yyg_U`dB$a-7f%jG3iY^%4a?7Ng@qALQkX+HaMHG&I3_UVMV9;-RgjX#W?@ zS=&&{d@YSjGToO!7QO*4?A2fUE(B87T480JhiYk3odE7P*yIVz`{k$rQr)A+b;Dr% z(iBf_fjpl-M-4boRCE0;s5WBEqk9SrOI2i*BJQY(sF;REQTWp>TsG~A5Ft)KE^-Dk zFV@irXET#(fsy5wbQCK5W3@NyfkIZi4GTE{FaDX`i4h~9+9aWZODc^cR76rLJefqE z6sPUME2=PKd=a85ZQhSIm9?-I7Jv)y^6_SB!FMP`#)nb*V6EJeZ+I~R6^Ft>SS;^t zhgW$==sy_GEgZ!|6k;OV1@zc<&Te^%!k70Tmgh6Fom9I?57prqG zgJ0EP!`Fv2-&A#8A97cSi_?wjxU^`mC4dT&ZskuhHoamEjTV#W&P+)kF)#xSkXBp1 zbHoJPW5)Ema4?^ekV%DM3!7Wx@3^Q**{8&yvSzaF1bpxnSPv&^Xnw}Xqd*p78&dLq z0eo@+ITsc)kklF>hBk?&aNy9_r|mInk`>hKUMzNoYE?L91U&i+)HLc#4Gdvy%RA9n zJI4D4XKli_waEDnJSo+pBD`(9?in*)-H?+UT;zI}i67F2S5gFU9r#kxta}eDpOK=S zwJkcCXzYV1H|1#Mk5DwIXbQvFZgA=`*5ix8iMhw@(eFYKgUlTXXCe&84sltqa_~H{ zz?7f_sf3o7y=SOuEQf9d(8Xs=P2c%~{YRFH}%U zQbhb|V|S*iLmd})g%6#yto-g2ABsZDjJk770h4l1uHg&CK;~2uPP1pIejWd#9Y~`> zL9eXsIKZ{tu(wvaOwa|(V1HZ^`9@LNlIU!C;Xyx{DgsG~A2ycv0Z~Tt;8FA>mm)2? z>3}xmP$T80t;V~d6YezPj`z0l7(9BCCxvoVkabutId#=g4=Wf+08|Y!oYBd%{{)v# zXT*C%O&x|Nk?B#t)4VwS-!=;8%s0mERW>eWSNXhf7|6V5!&*?mteLMIJ)z6E~hP#Inf(kIXWwwLK`o@OB;VJh-Z=n zR?UrY0(L?GYYj_=4}le4A6nnH!dtq>=X5cuS^QYck=^A&V;~oTBs}Y&K8q7T311!h9=qTeoKaykHi07{UJbl> znCp$K3KjVh$O~IGl{Td5&d~@QBhvsS!e-sPcqSNE%9(-AtF(3+l?FVYXyvi-891BEK97UoKfXWMvq#(!w`7MNudf2p1xU zT``t`o6UfXi!W5o>zn}fA=l^kC;12t!Wn4-p*3JdtagZhpOU;O!+wY)+XpN<1Pd70 zL~aoB9A!pgP~lSe!jrnyK-1~U6F*`qO9BmIbiIOG+4@#HeS;HuYZDf z;p-0+xj%rDs0GcF>M#71rh}B~CLL-bYlE7=!SM`IV{Ad+`O6Wg5?Xfx+4D6VSi<~igxk)%V*J|z5ap5zN z^DGI^IwIo=!#m(b*~f`sTMP?|6zK<+LQ@A_uxT&tTOzB+xF{Ka4J4!{6_>U?_&SB4 z3p$|#htCJ8gHuUX?k45J&iH2UI(3Q?pM1zc_@SzY(F=ioTqF$Se3Ed6BNCJiq&6g!Fyu6R zl4OkyweZw#c-1xTsdl{0Rmm_b;tkCErn2}>C08oB=gY=S+t6dIrr@{(p{!+H*1qpP{JL;4Xq z3Xp{!id}pJJ$yY2J$(MW)}I|%Cc5aA@cxX)Zq9_E!iB>fd}CBuS!4pY6)j^%hBU1+@N@zLIHZAT1q>#(dF?0tY_iNaGT~{0Cn;WL-7XF zbA*8%Fs1nE2p1anxCrT|aKVvqA_P(@#)k$j@8B~ShCae3mYn9N%UJgUJV^F8(`R4FfxqTJXN}-J` zq@x^v$ff|&1Pv0hU62I6B6M&P3UD(iSPq|x8&hS?_d`9i5JNK+Ohqr9KGNkT&ee! zhbm}bq@I(o7oK7T1aKp--*Is0?1!E3;yd&#R%P2pj7%rB%Gt04ekWg- z(S>b1I9PW4*Fp=!_vi$T(?athcoz=NY(URJ9gWzigyi{(r#S~))C}Yzl7tGLT=4?_ zQx|`LGmz$+O?b*ay$T z+WbwX3`Dk@HY-oTA=s0pXMrkt+Ano*i&Ez^LWhX*EHznbT!wR0!!kGohv;eJEs`#^ z+qLF=S|VN7KnYIG;lPfA3ir+zE>IFq5^)+uq0yhCYGdRLe2)&;@-=oBVE}wsTu&lD zrshxr>Y!UvdtIXfSRQIQ1N&hwz!mUaxI51hKW^m_9EaWTL6&11;V3lqLzi^6D9IKy z8soiS%dW8os!7`9GdiHgha$)NsKMGqbq*WOz=(J<*PM3}PJw={aYd>nJWsUv!q89Q z0wv+NXn|J4S5aMM^?e$$d?N&qfo0JB8-AAOJGGF9J7IlIyZ~SH+K;tA(48l%8Oi8C zn8N_;;l^qfnoh(xPQZSb!)xIRSOz0iBo0eG?vl9vrE4eyV_K3rWL&BfT6GfCi2{zTisB!zqEjlM6{SOpXGG5_nXL?^cDX)Uwn`gm>R~CZUHLy0UKbwO8A}-J5Fw0Z zNY;iJjU{0)w(=brvL~X*Zp>K5nq^31XUG!S6=D#P5<^HYW69RHhNubYo%eru@6Y$1 z&wb9lpL0L=-1|HSEp_ZEOtdksDt>T=M65jAOrVD> zSN8(w-P_oCXGU!-U2%w`@)`NNvQH8cKTqMaIwW%L?qyCDpP6qlx%QX@aUw)*aY*IP=;bBPgc`gRVy2&&f}RZgCK|_EjAO=m(GzF)5Y80XKCbKL zoB%v|rFd5D1|KI)@L<4X?B>u-i{%O-T-ul^GYgSi4&bCIgOh|J{$_oLu1@G5lwOz- z;k6g$wG%ra*JM1nH&DmDWeT4L#wPvU5&0L%ci#d2fhEPApiCX*hy`; zN|2Xzgltoyqfnz>E5L2N9hBob&4ZumqA3LuSNv;h*&UJvLx6ZVnIm**XupHnm@qUI zjs2CAa0j28gIRNtHEp*4z@)|FmyuHZ2RWy|x7h@heSi7(~zbBJK|dxdL@EYoS{g27h~&KU}m&omi90D0o|neX2~6lB1zY zY~xUT7rkZ21IxeFiw6|C~t94L~1+d~AF~kGVJn zi?{Z3>K3D&m!)<0r0R%%t`JoS#(Hxk4_*Lw|MTWt!)a_JZ`88jrpjPBT`z;|SX! zAP+dFbUO|v=(Zi`VUcOyKz?)#d+dW21ekNv?;$(2vrMh zPz^;+E0ezzZrG*Pe0pcDkS{4JpFFIR25J+N)$=30PFkJ`Ge~E#G##>nNi_phKBkI9 zWGo(6MfyqI$ESHz-1*{CQ}e+5pp?_>$axdEX#q5^qa$gn7vzxn3vuvPS#U@$rcG;i zkrU9@GjDVp+G&0fIi|Ud9zC>9#24^SI%8GEfO*io~AR+WYuHbwCOE37MU-))d z>SNv6^lX5974odNzJ@@onT|Bu?NRs9{<7zC>X(hBeuf6Iz8|<#>#1{K>UDofNlTV! z=Up_D;O;Tb1&$b0FXT@-`Lty0_f=~|wn3w1etc714P4-O`Mxb$AA_to4}8U?fa;#a zSk&D)4Td?~u-WMIqMC(ye6im9hFJhVyvf+e~7CFX`NXOVawrZI~e7ql4;qPI!^2zDUAyNdu>R{Wd1;@7@w>}6m^ zVFpx$TZ<&&9Eso^y@A*bNAR;J14Sl35dSUawe{GM4>n-@a7)b|9>-wBG7;A$FjJUPi~ardeB>%BWDK!`iMm?C{*7>7!-q(YAo@nIMgL=Q<*E29&g!NhmO) zd7LNPUSVIR>#y^vX0g_;#M+{VoLJ7O66Wf@{=QJZ@9;{HVQ`7i?WA;1&MqRiY)EcP zHag+KGQGZN^+jE_idBB5-eLO3*fBEE&TsW3b@){X$G(^~WqVa3J;m%_AH5_`5ztGT zv~hn{^J(s{PRTgDde`gsm827mZXolrY-=h;O3a(59bpy%b_nA)Ms{onA)S*OEN-D! zOK%l(K|6}dv2zNk*rv_YOc2v_Lslv4H{J;;>(%EP{!g<*`MMTQ?xnXY#5(k_Iz3GP z%NCCnVZ|^ExTHfQv-a}3dY18l3~uTG#t&H5bwJ+ZdEuB}E~zmqH6Gv>5J(cZ&C}$^IXNs8wyZXu) za%-Ms5mh_c;X1xuRvV!BpD+S8xY9oGvy4wvg>}4JyR`IuqqTichzup{U1L-A`n&TG z1(+Djx4`UE<(&$Q<+*T*+`>mb6=;8J19=$nNc3-VL&J1X%5dE0=Y;{2-hS&fNgGEs zxx<&9C1FHVFSuM)G6*4bc?_ym!YN_6;?y`&3J<$qUhZ8Z&7wRtbVtEgfPm-_kLz21 zf0C)rC6gxp^29~8mo!~+M^Ss!k^h7Vb1Rj*0Nl z*m|`{!_xgH)HChD^6cU=KKf5Txh~0XSRdb7u~`Ur4vpefTJf5<(rqVHK@rbJnU72m zCX@G38d8qdSOurJC4e-Njg@<*6JIAkFzzF4Ox)6<4n*;y3+I;P&50?zZjCQa&M6<5 z0@7*RTS+A_!T#Tky04Cqto{!gH`!vwoGK3Y*u=s#fGB-c0aYN07iFm**g~n9Vy&^H zf*5}=8h5em^lo-e;P<%ojWIYuyCv0SMKcD#UYC4Gd(u2I&iQd$VTBxJYiGhSQW+YX ze~gY<&J&QMs^aoJ?~6?AFmibg!Zpv8!Qj&CO=5%opFY@a$|_Le68gYtLy!n z6_Q_be4UO$V$)i@_nHNn75WC93BcxQ9R03MxkbQ5GO)ujYqD`5@Vy}fV&|{9rZJzZvA)JXu z<{Z7sP$~E>zTnu28Xhy_)61wBc0DR-6K}kQM(zohTDYHw)HLtnaGWmYNulm@ATCGI(JEb(WML>94R?hz-TW^xrS0D^yl1)PdJciJ^gR84cKXmEw(> z^pkQpWiQl2-`A0Dy}v4KmG8ox(ur$RxdC}>U^;S~_8_4xauUQ*s)stkiAg}>dZ99q zT>6P;(A}qD`Z4EG;*onyls{M;drCAwwX4x}n)FI0jzyuBO^ zjM)h{)N_f($9VuzmXY6zhOvgVo+Q-PuMs#CIR6NnYD^F+sk-O%HBbL7W{4se6-1Th zRZ;q&x)24D&fDSci@z5j3=DGz8kp7uShG7?C}PN1o-YywY6KogkuS>9)s+251`oGt z-K|o4IZt-bTWyF!V>$LAb4DPP=KH#wmj87J2{|JNVN5gs*FmT8U6t8UUshgz05F>s M!uIMj_$};z0V!-a0RR91 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_10_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_10_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..80b66ccdc3ca36e85986239f8b569fbc51cab44f GIT binary patch literal 14836 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 ap#KNiFgu9bn}jL=00004h-JO^FIe+2QT=Qjr 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 yTHz7uWeiAV{8x&pMP?$^%DP(X=l@C=N8LWceT literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_11_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_11_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..26c29bf19611c58b6746eca286f9231f3ba0cb0b GIT binary patch literal 15442 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

    4=A_uB5gKKyCOZl zshV0n*~3YC0|j$R-Q^?}5SgSd3~W``amNTIko^KC{7- z_)mV2yparXpxc?YsaX;{W?=;Nbliq<17=BqBPvse;q!~l$^6dMj;;GzHEz4xH7L8| z4t*$I^)GEW3L54>cht>&9e{(V)Y&3Sux1urHf_2b6`VFm1aQn2DB9YUY?+c_@6U%k z&S8}D4&2LK8_rN{7Ock5Jq15TAz;&(sK`U+)dKW8wVGotHniJRD$tImdz~YH)`;4{ zf1-@QOPub++vaAj{%z3Vaft{+mR3A0&wqNc@%t2bydCq*+pR!PsW%Y8)tAli~$Oo4X}Z2~a4Sc$`}ueu(S#_en`Bcfa0~(M1nN zAJ0iX_XlMRDCBCjTwKJ2b&E2{)rtOs;OV-Xrjxg z%c$>{xoudj;W{3M>~h?MolsQp--d`IDEt9s%bBC__I`caZ>^py zz!r~H-Uns-5irSA{~*vun|#y!G8dsU&X2&{jG~I#h| zm(O0e^As}LcSXZv6|YCw4F1e~e@c?TK&VWi{64?8JXoc7H2u#}=dkYrS`9&rdRk2q z?;tEqkI$*L;+Eew7Oja(?J^3Ef}i{_2v?x&`MUUxxC!9JMkTU#4M04a77da@X4^sO z54AIh*%rsoPfXm?;D9HOPJ-q5va^q_7g|MdHA|7P|s9BN@>^&A>{`x5-Dh0#W{(T;W1gwOWjy}{=< z{#coYZH6#4st;F*1@jj)%0-i1IsjWd`rKE;yRiXwF~OA}7*jJALx8X@fg2whTKjmZ z16K6GPB@Kz4yib`ZiZg_@}H4gnvy*#1UY#MaA?N7m8MYJQ++b?-7fBfRU z(WRiYyP7P}PIX@{9$)znqkot^AF$yhe7Z0E1_QyyWFQo~RnSD(#^hp+%Sp+6s}GOw zOG2u+FkoavE=#O82%xMyo)OspLjsmeg4vN&v#!w+?Qlvpl-3wvx2z93=(uD^QECX} zw7t#1mM+QY?Zf;&^(0R3wC%9_$HaZtR=mph3GCJdUQmWpgcUN5bAWa%ZdZIOrP#TVJqGC`VBAh--yXzn zbo8A#Th+R@M4Cc<_s>$XCexYQnHv^8VEIpE3=*$vpE(5^Vu1k#R$jpvVzp;{oS9?W zvIA_vxwEZcm0vVU;K#ePLf2n~uE?U<2#?zYkQ7j3vR4-a!+>?;rHlY(G7JA^*~XwT4Sm3%*se zq~pH7v33kr;GbYZC>+CHr<^@99HXPFhN0iub518IC)|;TD@CD=f%sgr#o;R3MdC;} z0ShOQd$Hfo+mgQ~Luhqm$fj!vm5l!EpwJG7#DpVvfT8o6``Mw?kCr-_*D({RYFn@( z|7`@>u!mNI$C1|&_Ul(+062)$%*o?k^WLeN-hyh6$3qP|4J*s-=?b}xG!ECsFZU)p zB6$2Gfm05v0Er6=*DwF<4eca(>omJHo2kZNwq3aTA^1{=13f2j|6nwROP5+Kr`7@= z9bVYY#R83tmTk!?W~y;tA7)y}w%%Zs_R#cSW$uN-7swwnywb(OUeruS`0i>3iZB2> z>R`m~4VIP*`I*_!nk?=?)|dRNgEbWjo_~A?$lh$UHgVzh$9Y?8Y*qg*$?`)bEzURv zdLRF3z!7}u^ri&mYKIe|>la$SqYVF*R1#r#xb>L7+1^7joIG06`Y z9&&4J zIMV$(PTPioIP*WYuX{w&`v@8l$VkKm02phfJ-tns7)%(YEuEHK-%;362AVg%d z?@w~LX%l*u?O`H*fZQc0dYw-kp9Xi6mHQ4Nh1AXLEuGD{ylg;Ub5s2{ZN|Qqs;ig* zWmY!z3{39H>oHvv|He&=e9zB4uScLc8HIRfiVK|5F^Pgtzl{M)BNkg6D`!MSc!o;8 z;}=}jaI5gh+L1F8F%650Qvj5K@kcgN&18;PKt#k(OQcIJG|=0q^}_Cva!^pcmdCw1 z9_N6y*_PmH%i&?Z=e@dX#*XM>VI0&D1PXg;1@an-n@dqLVLQ~9?E$OaB#}`uO02Rg zr7%X*LPSj*qub2@z))7$@Ve51#hm2rpb-&V30N6=)7eQm$!pFapLF8~(^q z$WaI&6|dJB87)#KdpIK@3r>0XfpQig^Z^ca4@t8EQo(w5h8Y=%CxoQYZpeNpZVf4F z0}6?WJ)sA0p1U6xpHsMFT1Jg`utI-Iomv^P>YKlRvu&X!Q~X=ChKhG|{v_mERb`9Em*2qlc{At^9>bLWwhDZv#VW*j2_%sag$m++? z4I$2lNvYy$nCcY>SGdCOFSNw_4)x~9vgux3`z>13e33IP(ybzTH|>`yUZ|;h`?Jw55bJtv+}GcrH9QWj#@ufXm4b(e zX}Hdv#?U{7TAti&$KwJQ4n<5SOUPL({oGzpv@L9-gIy3n?Eo+PGOLM6U0asu%6v!T z-)Is~Vor)Nh~~OW(3h}K?Y4c@&y>(33<<$w2Y^5!DC)nM((rhKsMdglghPU!S2dX- zol4KoseaMS9i6p>`E_3|!y2r58TjcPTqo|`1G$+c6Wl-nzq5yfPI7m1rqC9QzzJ!05sGotX6|4YxmA1MnE%`()YMTdB%u7TD=s zr4kbXm)epm@bepmOzPD@s@GUmKx0vUmu}z_(%9IsiVElaN=)0 zMDbuTkX*{We|gFNsV92xgTGYt_e4N4cYsC{#X*-Q|0=G=KGTmY7^U1}N~vge;!-wc zq<}8n1Iu}4dPstjyA6E>pYJ1q^6Qc}Bz&&B`_OEt(V7hKMJetz(9#-!QDNb?$Daiy z{Rfa_MZ=fg45PJY)ZyU)Eu*-l(oS*KH|Mnj|Uw=9O^;a+U;Pp|^lO%!i?F z!TZOitxy}c4PdxIsWe6umilDLj2YxX+lbw$Uz>n5Dl9Z$6cHJ&K$%P-U*k&(P5(%; zso6EO;&Q{Kks_)W&Wez5V~}UYk77e)oOtiMylfN~=5C*;@&KY|<)9+eE8)M^m`n2G1Y$eg!TLYBe zGT@6wkAuvst&y@#wO`&()|4ycE&c(~Uu}E6_*`CbiT_mFb3Jdl-#-C(X~v)BfBe## z%`BUPYV@o+bqM)`CCFBU;tFU8Aj6c|(oAmfBg%j=#dQ$H)@;5g39|MNWe$=D@Ug;{ zRT^3~wktP7zqGsas_A*%%OH>uR2=Ajde8kFZS8|^F_flkBYMx_K4f9avaImV1O73i zza8qv$VG7=4gk`6_?^SdC#Y4R%acoGkJmIgKKD)G-Aw+X6DgXKYtXsz zff<=mP?U2F!N_Rp)2nI$Kt2mxV*UJ%cxQK9>*2$*y+ha#%f17Jo~9%Q@z7$K4?1rz6T>h{5^Rfrf8`}wVStrixp6tTK~AF|pzP!#ymfjcRSIR5~t6V@b?~2AG){&#T$=c2;*j)DpQp6J2Yr$WCoMLK~^ErRwX?k2@Q++9aV z_d4?x%x#Sa`9qnEFOrgQ_`zMlg|26raTAL(Win-jZm1FL`@6cEATgjlmnvV4=rEEh zV6U+gNtJh8?}oH@%40X2bzVu5zJUzas+Tk>ciglgJShr}#8lvvq7zLRT+0H;`E^@$ ze=mYA>;Ba#lv6=lYZw|AAsANs#b@z*#W0;-JsAmJ4mH2u*$>Q$hQKzo!hHxcaV}M9 z)*aGiYs?kW;cLuv;p1yg*M7;?n64cH$qNr-VYL8ZeES8o5y&`i(`Xo0OA%4NjHNeu zG+0PG7Aw zgPu{nQY~3A{R<2XA+O7Ctp;OZP0s28iy{yzzB=cwVV$s8sBbohf^$D0)i8G#;(RkTe3gi5B>jr_a+#ocl zx^?S&$ou&1KKx9&+f-G$j78>KM6B63PMN&Pi5gf0cmqGiK&aVP*(@QI_IeO|`5cp4 zI1)Xj%tcxT_Um?dKJ~P$TG)82f|8maB@0a$jvz7lrqJ-F2B1H`>(Qv1uufpwawyR=Od6l!j4TPq! zH}9<6{HvR}`~nD1_fnohJ~eiBTAonr0~H9hS`sJEwdvAfD>dr`U+!$WO|gGXK_7 z^WV!(O9+Kg2(CCeNGTk74ar>2>_iJVdhl;fkCRq)r8WGu74?z(Up=!Ts*;YiPsfcA z1D3G~F3&7RIhy4BafyM@VqLl64+Jc=u+^Oc!yoEBdI>?S^-_%~60FRc3z_mMZwt#b z_`8N{4esTy=A8HlDam6-jOqdxkg1`!l`?E}N(5)E+-dnmobiM^h?(lV5rZ&@SREeM zMLukjaRg}3FwoF|ii!%TFDN-e{(fR&Vj?0z!#%&x&_r4q9Z23^XyWIGRp3-=?U0tV zT9xd?#1ay=d8+^8;Y?M;3c{GJ!50i#ZK<_2+MTiXHCiz9mFlNQGsVJVX$&pDwoq^c zBn(vqD5;%2k_Beh{9x^$8T&P&H(t)+u~)#}BflzI!N9FVENO&OWaUp@`n}G2~E)%ESC; z!%-ZGVk}EHY}qSdM%$4ydFL2&dm}ywh@wbI52L{Bw@mxd$@&<8fFj)+pc%8|P`|f( zq>8rfhX7&Y`AH5H7>&)uX*~~jwBE*6Z$6P#Utd2zKmQ{b7UK4Biip)zN<^g3+TFGp z454!*rd2Y^0V)OiQhR%ue46LK7G&hrW{Sh3oWesZNU-7IU3~Hs%zn@$(DM64eQJge z1qj^P_Kt4cSx#6BW8z?9k|WqI)o!>w78r^KvRRr^JIw#iK1Nn<7z8RRc2R?p63 zmnJlfk*iXZw&Q$c)zFaSFqJzZp@g(`RAxa&FhFX0R0$Qp8 z$6-nD>AAr;RHeX(F2>HPLZ8!gmfYAFycF%Z(@KkVLsNfBpve@`$7aBb%6Dtg25tP-zMCc zXp?1TV-v?^z~YUc=4cIQ!%JM_8ee!Mi6Zc?%~DusXlcoRAHXeWB044}htIus!FsT! zv(`4@TpZk_SITt$5I5W1OQmq(Zgrc$@MC-PCu6kM5;-n*W11SB`vhaKxNn|i-;L&x zYCMH-BB{9F>v;=!0~2sN0FLI$r_gV&^m}qgl(vinC>0JtPToI7ZlP#Meh83ROqm0b z$`sTg4pQk>I`OyHdAi=v3rN3FP+=*w8X=qZQ&$oUQa7p6?jX<{Cm}Eiy&@^X59<;k&QL-oImXc}>S)wvA0yL_x2P84<;GD3U zV%8o`i16~otrrJy+)7V1n(>rz+g~GX-6S2C?w(!`?O|ifkrHk=^=Q6`DMLM-w`}G4 z+(;WPRI2xfAw%Wd1OyHbOBr6Qw~2M$q~=ym=a{px<_G#-FcHuUiDP=I;3 z*jQ8A-hZ*aBlC9+_*uKYNeayoSk3bDb~rHx7wUo&8I0_6Wj;?}m6rd7`f$n__0iTa zc!0BmH_&`XyFtNdRIMzEF5+j%w~8kY1MJe@?2CP&>M9T|SLo;wQ8!Qd5~$3SVb^;L z4<*uaxs~Gu`@5wU)Q2nt%EvBJH^PvG!ML`I8R=D4oWZIYtcj8O@BKxX-(c`i3Hy;` zDs+egVW^cNL{Yc>uxJv!>&@ za;V33XVip@49hg4iy=#0U0pS`6fv3DPuqC;l4cSYI>eu7Xgf691D(d>powZd#IIOo zedV`@Rk~(k&^B98M{kg0iWTl02ge&e>p8Ov(hyPK=pIh%x)riH?Lgz1J=?v(*z`&~ z16>zJYMtJX`X{v#x$;*Y?vd*mEL?MBov|Cr$H*vz)(}&otL7%F>}7H!%n3h&wc0gS zsBz-}^ECR+n1QV|`7`B7n`#P7lVKBq#YFFm4UpzvS8qvVwQXKhhZ{|Zn#$|CMFP5q^$Uf1*+V2M7hhRP+#9p39X%1 zT1DPR$Hgf~OT!}~X7jn*@2V;yf9zw3`Z;Oo>aI^0infnulI_Th{PfsZOCTA~l{F;? z_xZ?p4%-2%zdQ>2wtGjh?KH#wUed(>5mdYY?WOTIl{cOWU|{t0~P-#fyXj zWK?b#FZ%3GhwWh*w2UKgr#yI-h>hA;d#eKD7+aM{>-2?I`GxN0s1#Fl@K5F7id;cE`+YoHZ12Sj(lq)6i;{xHFhGS^sV+~YpoH4% zuE*TuSjCJXwlPqiXu5`gPI0cCRCepRnnW=Q^0NE$;}Q%d8G^nq!--_&iur=p^VDrG z+u`43?q=CT!opCTmmr4WVzS347{uTCAixOWe$2+~*CFFG7VI#A=XL@8w2R273!s)= z;rs&u%VG&98ejzOFRv0~pe5LJZoXn&{sIVH&wZ=a1+h*S z1V-WFNblqC?8QUO&bE4`j-@XMaFret!-{`}5JRVNUGB$$jWOM)mWVaK!vO+JaQX7C zF*1l@9S~Fpa`Q&#t>mE4rFHwW?yI-P&4ow*ZtZn4J>MW`2C&c8Ivk*<`yDJ{8$esm zhSW13AV&cPZizT!cKR38f-Yd?6lsTnO;du|r(fiJLAWd2YCi~he4ZSHy<&QJc_G78 zX$kwpYkCBPTF~(9W_JG>6yGTYFfsw|ssYm(<)(+hsDjk^Q?0*%1yk>j_-j@9-jmCm z9jZ*aTooCwZs!I+s5x@q%|_?`45`|EAN2V+ov7w)j#FSK9r@#%Qa2E2*`VAaCwFFDaM zaJdtBoFih?plICAl;*z3noA{oDRR-JV1u9+5*N)|AEFYb%X@!V`xQ7_Dx1&ejw0o7 zh_SZm`3}z9YS?Q^84UrU(da~Y8bEl)JvtNr1Sdsy zPOBOC&vikI-0)~xH>+ZalhS=2M{}l@kk7qRt*{-xG>%3$!)u;S>W4E9UmChP{q0s2Q`+#{(Au z2cy_F+Q?L+7J9icRKOe1^_lmFJpgYWXWY<`TGVX(RZ0S{Yuy8wJu#*Q1b#KSVB~cG zvmoAM3DvQ`K_O>-V{HZryDH9Io77KO14yg&sRd%S|N2btoK|~m4blr^34Rco0I6>A zDR>;;xRLQkb=un21lCcb+v+g12@Pp3JFfZ=!MZlp0Bl%T*d&8G!jaR%89s<(bh|W} zN<5qgjg9*G#cxe(8G)EJiN|>!VmI3DC}GT7Ts1L~o=3V40pLs9n69|0VvcALNR{WY zJEtfFv%9zVrCneN()iKHpv{S4%U@`zot3RPkqXgwZ#|6^ll+?zw>K7|$q+imo@aLtU@udiCBG^%!x#thVfbbas_oV7X~a~yv519t^A5? zh%qdYPeM$Lt=$F=sfWN^`t9ES`>ZWI!-eBFzo(T3iv**bw%+K$eV|O*-TLj>3KD)= zJ7uhVb~^_?=M`Fujm~iAp`JV71pJzT+D+!TKqd4r70IYI!t)k+SD0AZ20}i|8Ic;C znX2?vD^oZ}cf$1CB2AdI4$+@^YcZ_$pC6Ci|7`$N$8y5=>P6X1YuH@iWtWZ5@8XL% zI%dNjK$DFx+o_qo4H_QEY*(yI?z)4Wb}7ax0=fxqVn?Zw%bp3Xxp;%oO}Z%PY*C_m zAcsdx@)O>`<<8Q4e7m;2gQ3s});TKS%&W;TbJB%n`^JeixfJ8nHGHLuF&Q#@&WGp~ z$w19IU>t`FbjjG$wMli;_qA{*ar5-!%TwE9iuddJ<2okM*LM|y6XvSyYL-+FryG>8r(v+-&Um%)>%wm9NU(xUBpi;oZgnzG`bwM_y z)mPd1Ml!TVrmd8ZvZETz(#Cqr|QURUA?YLW-t`GTgcYG@s2-zb`rT9_q<+@$5 zHzZW6qwf1ga1-kqf5ysNs*i+QRL0Lf<o-_OK^N-<{p!%`-#77;qRswje7&GKVJK=K(iaqtyY!lb0 zxln%A7fD4aI3I5~JYm_RMd*ix{kQgS!uVQ{vgMMFmlx075ca6IEG6wk5m6^- zjW9M!#l|;l={tJ@|LAlfy)V@o#aa=m=#;?Y`bv|9bJxt&9V)kan^S7COnW%3n&r)= zH!wfRk|iM*D7!R4t>6Bhbgx3qW)u{9Ca>#p^<%Z!?9skjV>ET|^8>ZVz8vc>z1D67 zhPN>m{>oYd%$StKq-mMZhdG+ypepN^S^{%1`e730y7tj$p(Lo7F#Ehfpz-yc&$t!T zm7hK!DH^*Y%49&BgDqzVl#Xn#sB)>zh zbG?QSa7$U)zresl(CzZ^RMd_|7Oc{_AK4prX?TKy^vy67IPE@99o&M(j~-4m6#SCc9cv zEgB;i0ONdxiLL*37fa(K`t3Gs_T9M!JPiC-d<;=3b6o^(<{D-DR-7+99tpu2CmrOZ zyqP1(8RQ@{f<1BumZZd{jC-7T9)~{#gFjHP$~|Ccabgz&i>*}i{P3c!5^4wg{#b!s ze@GhxkvAm+#ztpaWr~_>WD;NT$4ugP9Hu*XzMz0d;F0KfOcSYq>c za2<(bwQ2Vc)XG3Pj0~C`ISab43Hn1)E0u=~JYK>6QWZTticAKuepPzy;D)g$xQ-@T zd(_S$&wUErBmv!h6I1b@cR4MOxrGLw7J**{eEmqMTCn~e?9 zk5adDk+M|zv5c}hmPd53$KsVL8zhs#8tS;`)D|u@cD_oL@@HUwgqDl?_5tiPG}l_| zCVDQ%PpfB%ooM^P6Pb>k<*ZmMAi?IzzSuFcGBf(F$Rm==bIEh)26n@q^DlYJPG0Z& zYlH*gk$#=~oUb-sXRe`lU2<}B$Ri6dhIb;a)$)dHJF?y?ZppM=3fbxO6)h){0UxL? z)-d$P@+mrg*lVJJ&(lZ=7zR-?N=NAZhs^0TNKVG7SaYg-5LK})o^gy z$&!E0df6Wn9?JfXe|C6C$U1SzWk@b{^G_+y;zp~F0Ke8}YRuRL5m`3E>SOE8P{WXF z6mLys(Zpd+6~#Xdd^7zwn%kQpi}tQV^R8V3e$TF7975<$JEQ91p#ALh_*^z7iwNeW z)>_ALLecMdPu_wDxilid-Rl~)>8xFmILJEV+p%1yKAX4q1IH_#{ahv)eErYkH@Y+4 zWJ_GeH&V#%DeJ~1&jV-CT^6ISj)bVsm-}EXU9)(^O5e$I^RRdXPokfiV&o8cKla(M zZR%%XkM86C*}A@BI9EFTBd&loyIz09#JJ<*^EeFxnHdpwx@-*lukk?KCP`~bB@lCJ z`{+mc8{ZUH-+5M1!qJh3dx}0V6~(>0__R&)gGB}Nb)`H1Jz#$VT2yE0{Qdy1CBgmR zwcELqtdj_X2j#VYNUYX9Z>YV)xC1y|r2mVBzEHDvH{Ri3opnetcMK zbgVWO7Y&h!>hma0EFx~9A0#rqz{;XA=z6oN z1|LzVG6|W=E*enb1A36a7slhjyAf9M!NL>m56EOo`~W`wHr&Qgzn)` z(fqRNZCztzPR=~l?hYpGsp@#a`UR0`YMw|jX2xk*fJc2%c&GA%)jr1}Emk_2KU1!) zAD0baK506JrH=V?rsJC( z)WIXpY;U|PU_2(n0ZWLiVM-zHX-%BAz}a(LTqhk@SF$0)2il3(&X1I|GK7gzF(5T9 zGg;OY8MQT1aLxd^iJK^$25w?Z#U58u;t2Uxzko{QceyJgl-C_9n?iv;vYQ#xq`x-0 zHcD;7Yrp2IaTNs)q>IM028R=^fBFp#d{q}sjejUjN{MH5pOV>{63`vSp)>V?xYVpr zd8la#z(}Q4=iNDHb#o3k{m(r$(X@4h!D%=8a^IF7FCkIM@-*9yR5P%PVY?fQ!rvXp z)&pjjuRGyHknb<|Y@7G<*L&r(nzh>x3AZaN8O%E%Ooy%7K-~1`>%C0&k-0mwz3xx- zF{S7SX5V~+t5B)oBbZEaOZ^b3<~b=@D#8{xpvuOn!YH84WFafey$dXmEOP5r9<@`Cf=+n1&>{<(2^?ZjQTZ#yY8D_KEpHTa|{ zo>{S%4|q#4&u<+%^|o@xvsyqrKL1^+;wEyT*6daF+V6ZoO#{yqlP-ulyWS3>N4CE8 z#fh|Ok7m3_{um>+%wr0XCXaFS+`bf+n33n|L`5SXc;Hx013??ErE0foSfXO~ z`8OUth+L^crF3s79!fTi{`qK@VjIleQXmlWGbCs|(7#=<;bGM3F@=+y77Y%Xo!%el z^fS==hHrk;_F?@A(egUy*<~XNV9Mq9JmVF&mf!Mb0@Ji5p$$xMA=tJ5qOC2L(bMXf zr$GwKOePx1ETH#(j4GbtY(bfsy^JYW|76vwiHJd@sK)L>-DG}1AyRjqfg=&8cFFM_ zqsU3FM%RTJVT626mZ}(6Al3?K7jN-KPI-`(%$zO8a;$B7ZuU#yBoeY|_#cpCk72hL zZ>#27iOv60U{qnM^t5ETLF9+#)@JrDB zDhDTtN$=M`;>zJyT&a^V2uEdkKGkc@6O6tqKAjvJ>;r3cm3dv-a5%@=@}_0|fK_*Q zF0P06Xdn6B@htJO+AWY23o`@jylO2qi!Adnld;KDp4ZnmSzq9<{XCHKqd0t?Ui7nF9H#R>;&AVZGb`Qi>( zfItQh9S7QP<8v=MH97IRUN1n0`COYea^0PVy+IyXc&}6n`#@3FzVq~=ujK6XpQqz; z60s^|^i+!GPYxW{i{OIM2I+8s(ESd3MJ6OTAR2&nl0wiUB?0`(mNmnw?*@rsy9{LW z<7|pnB2VaHbXn=o+r{*cOz%1XGm&v}wuByuSdTkpEP7&AbQASZ+`KG;12#knUsQWG zdtwQ&UVTtpk!wscfDY0zHt!gJt%E%-;dAtgRMN*Yh$znk&NHyb6h15RG_eBjYh{Ws z`uh3+RqZ+q_n8(0L+!g*hnxRgd0c6Ed37+Ut9q-8O{f;38a>{N7Vij4G)_3uiY?bP z#3d(0y$=GpJ(wdS>G{OtZ>qWF>k#Pq?j6}=E_aJ-ayr2(aM$O@YrN2h7D$(kQc(A? zA64M8+yB{p3&L(HNBd=*&A1<%K?f5Lk9K5=JE{|3tr^*=E(Es;98&I+p^jiIH? zMCo_L8S%C%2h5Q)wGqCL$F=a*$hu;hsh16(&`W;v^u6l+53s`R%bA>@R=YV`US-aKbki^TVIxH8Zb_JTT)E z&=WT{{i$*5_n=*?uWqy{68c--PFtiu%uevujKSzRl0qZRIr%kz(xpP1?J5gW)H)0) zD=UYtH&Ruw8fI*aY6`o&HG-LWdaZ(Un5VVE<9hdSDxXR3-yeEcOd=wthx+6BiuRX# zs4iJqDDZG1)(U09BTZth;|KjtpT-?NfZ65u3GT(3}iDErIbx618##L^gk9ULTZwbUk&}fbW zW{Ka#=jp*>-!vSF{vNmyVKkD)U)4RR#1Vb=O^hb;8&0Lu?Ud2NfrrmK3SCBSlC)Sa zZxCXLy>pqJ({4{oV_0YoL1)s3uGf0H*Nk)6r`3#oi$bI4c!Y}0sKNXjYgUc0O}~ zDVzRury7NQh~ITA9B!I4@ln1ank=x?%9$A1k3-2jV22d%+<{r@xBX@1`TbG%U&#O& z9zJVGD>nr{{OQ<-a&ZQ)I*cKuA|-894AShZS~D|Q@SV$F-@ zX~7P*zqv|0C^mE6wDv`#X5I-CT*_!NdV?1TDaog=qysoEXZmx`*CvMKJ-ql1Q7{nR z-fpJ`qrTyDSf|MOWF#fcPUxZA)A#=|9ZA{*TXC~ZFH>Gl)RL*T{`^L2X@{FI7})O3 zgGrKzHD2ddf7)s&&hn|z<&jB+^vHkYs)vvwm4-yuZ-}BUGG|rIqI8J00p9rDK~B;pVo~Yb3EqWEOUZ~7;Fo;j@~85$2q)%WbqCk9Yb@kxm#1tg1IivwX>l% z)S?z_YtzdPVN-@-M)Dyz2vH=Irf2j^{)?fnNS28n$Eu|NF_IgrD17 z)vPw2s1b+A1zG_X2~9?~lUe3c058-yGk-P7(5BC#zALDYo-Fm zc%uELT$f)xvz>R4VCxB&;ZPi5EIt>kMxFi!%Mc(I>^eVQ+!@fEcgV~hwqp`G#+}Sp z{QMZtKBP&<70j`klTx&}v;60}cVh-V|0(nB{`2)-v#h%t`$(+3>kj5+&Yu|S3kzHX zvB=_eEU65vfV^o@b?RE)L#!2&T0!3&|2ua)RKDM6vt6|g3^gGN!O<~klsj!>M4b5| zed@QAq2CcoF@@Aus~ie>`wc^_9%$}EQMWni->u+CZZm&L8N!L~MzHBiUte8%vWH9?D^+< z8Zep5S6)&Q5)v|=&4r4??XbPx=1fLPTB3vewcJG-U!?iBw^nNc1k}8nScpZ*>|#wG z1wuMKgp`7YpB311v8fszQtOvqd*BgVM|VA4<%7a*ae(pfwA18xs?{ z+Mv5jI+@Zb((1xxe{RRw7q2EN|8fcoH7x$U5&pcF2BS7gAMKN{U!eU;LzGiMDNESxYi)Ue;rGQ z3yFf^rTq^C06XYx&R72ioFT!(XM#O>pC9j~PG*0-Q*GHQYL1uU_f5@qclVkm{->R@ ze2c0J_b?&d5>g^aH_|bLbax|24UB|z=K#_n!XTX@(mm8r0@B?rN|#6t&Dp-^&p7A0 z_SgO8x%OV`S*$&<)(0j>Lt+D7_E138OzwQ zY;5%Qb6yu0lTfMTNdfixkuXy^4CAB)4XE)ZpPcr4m9|9+?R`NOjH6N5CX;JkfwsZP zLLZ@jd$U&IcyFQ^t4MRI+`WhbEPfT2ziIyt^YKHH(8Wkz<)$wJyTJ0ZQbAhLk5Kg4 zDZjeYwq9gmp+3sH6;Z_`y8&WZIaJezd<#k2Y^0vn->cuLT!Tr{r_66v+1L^qa?b?| zRU`LD?qxiDG4;Ulc=P&S3GJIHC9k`Wl4G%@e-+7~CE%jsrMoQgV=WX|jG-Nh8VXI-gP%339lX-3e;({;5sF9SRU<0??`(}!0a-_Q(AP>nSI zXnb)^@-cVA;?l6#f%@H3xC-n2rV6!?^|kw~anJX3>2(Q^O@wVEfu6~z+wXKf=z_8B zHzeFSHv@GoAgSKI<@SAOefDZ!)kVeIF?afmO{P!VuZWcC8FGDbvI(sQXtycFQ)l8p zsv{S>EwK}PkW`CFxA!a#adUr&?4dwT*mx^h^PSIGO*(o8^8A-J_R1$U0)9{lz4Y<1h%pzOfy5=6z!` ztm?HM4636KUpt3eYcLB%5YxavaM2FPaL&m;eO8lCk8%IkMX9a*5F-p{t(%Z_Y$5+g z6yan8dtdB^E5JA1-;`dqT0&!i3XkMz>6009@;s}zFE;?w`G%sRFErqUgxuXhCPIJr z&sr~S4SVd9y?du#wlt9#L=@mZISiHaY!1Z$pw;tV+pn}``!kBIIw*Rstele0sN-chnV_No2bN z$|SP3$F2On08gJQaMCFDioQh-U3#t$ObMT_eJ`9d4tFz3^1C8>^h=Mb_8H&USUAf4 z5I`f{*P#VDqh)l^VUH0}T5ZwW_jj)(o>m2U9C%w<7LfYsAf3`dmlUG@ zds`4Itxgc8PY;{AA1YpJ4|rOyQT<(J9y*siCmV$ydCoWSl$kD z9qLp+kUmYWsDwB3BS{*K!y+?xtUFx4vMkm;@kNO&MqS-iY&HJ?L^cJ?mGW)-qBZQ_ zr9W*uEtf!}hRssoHZPdHCg)Ir5g*wP=)eJVb}a2rIzkXtJhbxHnj0~v2%0u z`YviwK57#uHkotU#g(X_?aZPSrA-jMwQ!ON;P_>UyN8P+>(92v>LbFeh{D5amVx0O z1@}U2IN|e}Ws`bE15*Hpgs@@Y62BPljd6%DrWy+D!n!DR>F-Dis)T_1T0d~->~Y!I zQVq-Ec>VlHYeP3v88;oXI#y+Vz6&7uecyle4e^;)GO^kV#LGomHtHfoZTjoHE8Xuh zg?|5h?Ii3ZTxDKlAxTJUsT=Nq!R8u@UI{TsEv(zTu%?J2u>*Q8B@8a(rz*5V+Sk|= zT(5fLt>VcY8F0zJx>8!vEbbtv7!hiST;t1%ErSqa5RViKFDEcSOvejpQB#&<7?{kRetJ6AQD%s5j` z_|*a{{EV?1g@lbCJ&HP`5HucBFw(4K-BlaV-(?reN+j#6$TQHA&2m@f?YwN@$TJ+#~S zHt86^Ovc9pNsn1+lOz4W@306hqG(*()SwZjYK6U4G$=z8a(qe|JsR25eR;GmX1(jW zAzLiB!s6y=WLj;frIpELlqZ|nrY=XR3By1%7Cx6;fi@^q4!D!Ra}?tA_gx+Wfq9uu z25I&c>@Ak`DiFMF?-XpIvawkI-Ji^^z$x9kydG+1X>-7L!DoG}IM1-nM>4DI8_qDR z&wMknKjN1&us;&?T)R(v1vn|@aLaaMXFO~PfCj?XPo0Iz#N6n%T}d+m1k_T=Y-z|d zCu?yf4Nk$8wJ?(u?0u-hG>DDaa^CsS2RyYlGu73e&5qA1O|2TO>ucQ@S6fSuiq&uk z`raFvq=5h<4c;?j>E?a6M3FBA>7uM-qfTik)eskwIQ$m|o}%g9FFEkio;;1@*Uz46 zYmvx4A#ftLVPmaOTb=hErIa=ar*2zZJ*)bh@jyHq#gFR$4}KHIiS7(w-j<#*zbPi>=|16^gb=4cZwn z7aoH=yibXM^^H8Zk0Ucx8urCjMK$tiE0lncmS4lwhWf>3KEbj=G ztKFjg@MyyOdr9#(i1Z0Gkw}&evkRdl+O|? zX4Lg{FVA>Cpn_5;`|e;EGTh{H@`K0QphCGomW)f;lAcBw$OOS_FM+74-=ZqT&(6;% zWl|%5ABhb!Qk!6xPxiW1J)454go9D|EJLZaxE4Q~F{M4?kl==x1cYcb`60>`2@buT zgf09&uxO-S!d*&&0vg-x2!P4cb*Zi{r9|58pPeD{!oui;t?w9sxT6>Qs|F)?La%)A zJ#0vykO|Nz#a@6d#%|YcCi*{uaoL}Cy8Q&aJv#BG-MFlplLh3CfJVpWt@vJst+=aT z(W3aA`KGn%hlxUk+C@><(61Wo`q(9UF|K>MFk=4)i?KVI3nkxs&i_>fkj4?%Em&C7 z2spiP(}-R|=WD`A4oIJlC)CUKt3VrriGJrbVpX+j?El-Yx^+h^AZy9})lLO}R_@|(;a+J$*b{b|n<1nf;K3Z6w4o1b}aeL z2%M|$9QAM#D_>ivXFaC6mo!3<-;Kv;H!B>-ZWjz93``5q2(dI-`x7VgQH5y$$;cNR zo@W$z0hbeq7TgHYoC*t#Mu%*v(XHX!{`zbLn?l~t7&NjPD~a9$OhICeV{0Q$(-=I5 zzSiUf^Ihv67T(Wwf~ne^hFFO*XkfG~5U>*Go&#r=xHl`h{`-$p*!McD*(X720xoxq0%>rmQ_^H^l4>HPStG1h>JgKrR(nI zuw%3lg(BBWoJ^!{qNj@e^7$VB_<*CSVc*xsEX9p}2{k$6)zV1=TTo^?q1f!uO zNJ-rLtA|l5TKnE}RY=Iq@L@$tdaC*<8b$9@PV}4-exWpDo5h~*WWpVS83Iyl1GjXU zLg*i3Lcp_(CX~oY>-|uNM>NQ3gFky6D$E&6YZ5*$^7|qgTs6U>F%!yHm#@N}ac}%~MALY+LPCU=|CHxZa}hVtG8N7E2nrZQt%eiR(M1C!)xgd5w$t^oqKA zwkVe@*|hf9)}Cf5`c;FK+3-^Cd4n}_tJ9J;FIX# z`Fv1X!j%`ST4}m)#35_bSQjGQ-F>(^ywNjL+OyXF1gkzc2#$d{Us0g;4DhfCq(}wn z_X&T4PCg~e5lbOqJiT2sYtXK06HR$pGh4p5N>dJ-(FfnOdUkJFADM1>$L<|0Bwrjz zuAi+ld^D>(mB`9^=)9_b6gnHeL(~cuLx=RM6dRXjs+1(@(|-c;KTVI)bZ3QfiUx>^ zT5Xy$WI8!2*)p9r;n%Or;PqB=)Iw-8%@jDMv3+K6^*&8q zJybx*;?DbOvR=@|sluKh9>H!n5|E^>&M~k=F0(VX_`oC-|6H9h79g(8VktJb8QyBJ ztlyQA`mf48{3#J`JkVy1rq4$upq>H(j#(2=AaYs44W$a))#Y#g6e3rZTHI$URF0Nr zO3~Sb#&RnS4bxivN?&J)Xn{92n=%%R?J~mTs}3aA>~ceLhhU}V%k@gSA7rKv1uEeV z#ews4m8eS%gIlH{N{-h7JVkET`WY6LLx?k?aYi||(-6e9EQ~{^2(!+j{oCZg)u5+J z%BoFS@7!qSmQGH|0= zN3?5D@5?cP zg0~0ofjioiaW&snt+D0dThQseZn3`ZYeAF-r&8foALIxXDfNDkun}RA^PB%Pp3F5j zUFe{{@;vq)*RoKaoWf>-X7US69=&(3*P=4|OPlMWE)sGqnjC0D=FRWUNt2`#rw0M< zL%%Y%!s!KV{OYlJ%;jg7HCRzP`;O$J22Knugk-IDrB#*QBVhEFW7`I?2J2tW^9>7m zl=v*L>Axh6FmPvE4-u|;~hr@0!%Rk>UU}g9C?w@{^eN%cX9cd+2RQh(qMNuY)UZ@@Q&`8`9T|C8??Hxy3_W-b%{zoz*AQU$IbsD4LQgN~uk4HA`%QqGrX88DcfHilX+cSv885+Pf4Lo7SdQ zt=6dZxL-a0zoj)Tk+0DFFZgwT8N~!A*Sj9|IBJ_-iaN z2><{M&`?%1^v~MOFi&JR#`IkWw`rgJnfE&uZ64FC*sii4fOq#Ykp;beYN$SwQlYNM zNE^{TU?-p_6LF`LVYNpR4Kp<0jWB#IihhG2X%HdS!oSZf{_zIcJoa0&&a3Ts=ugY} zs!b%f33fJhH$7uvZfEE?>uNWLun}~fz!QP$f3Mg!MdB|nlEN64UkL)+tDxY5#E(ts zn7`uN^^m}*S{~v5&J${3o9N5a^mj9RCoc7~hlirtgrlRQvmiOnggeOtmd(Cvo{#Va z1y)BVipb_4G~tV#kyI1T^@ai*(!Pjnom?p&{JYJNwl4OKp1?qQ#bN3^V^#@Z`8Pgz4v~$G@kBW>)N~N z6sQ)~R9B-+C%r~wH_k)eBQtYz9ZegoKD;XEN6!yuOH+3VYd=jY`qAt+GCXWw_ZC@k z)JY|eG@3Zt2|hm-60&M=%Pc6}ool>*@7_SIMa4wY!1&r=8cP&rxBjX1Y3IUx;9g6k zsKA!&i)7b_nGuPRk&&9kwKX;9qBIXb%-&aR85l|S6?qP-r@Zw;(P4F0D=Uy|?W2ITl%oF3TLn3Nd` zSvGaox)vMI0Xxv_rl}9!K54PK$zNQLt;^J;!GIzEn*)yAcbkW6o>Fi5p-z(-k-?Gv z0#+5{B_$=dm~{G9a6LV*GS&wvlPEq3Ig5L+yGpluZ7dl$b)8&V2>Jb<*H8qNPc)Sm zOyS;fGZF4O@3>f>|9ea;d-}8A`C(>eT`xLoBRBM?&yS;xktt_!z^*SFpby=Y6Vtcy z&Z(?CRg+ITd;ROzwa=d~Te+UqZJza<1xbCN_qps0kcmB7G%AI{X)M^$fSbO%F4K21 zlMCE(yx(>qtJuB@rKhmSiblXPRhnsYaJzb7FWoXj!L-4uIW1n8h8`416b``?&xNma z({co?3R<59$jKl69xyXA3;4HLGLrS^fxP^SjCb~?FTND>iK!srcpg}s^HB#mSCjXq z%;3MK-?U_IMn>Uz73DTHEK{6^HQ{{7bS9h}U6fMOO#OasEm?kT6M{fySd-4hx7 z@!3epC`ltrF7klRgC-_!9bm^gF7ipV6Ed_|wKKVUYdyiZV!I3)#AUbg{Ndu?j_>e? zi8_h~ktF1t=OrcArjQ6f3uL2<%-L%4!o_;yw0o3V-P*d|;M67}Uz^bVJu?}|6; zJ45wQ?d{yV*(gO-)yyM}nJ>&547Gki-E6 z0{Y;Sl?+B3%t*~js)=hLH5dC;G5hwfv{jZt3?ghrL4Q%QU(~@NZ~HkLJbQSqSSF5$ zc1f!0PNK)6qzA8hn#W7xdi+G-!P0gAh3wPPfBZKsDEUhB?N-#7uY4niH&@kiUpK#e zVpZ=%-gokiE@UPw4-O*MtVlF{Qe0il@9dCtCk)W*9S~IRw>4g4Y=v2Stwz&!ySB-4 z<&||%Ct4>V7MAu{D$bk9I3eyGURv3Mo|h6zq8cq1uVfClWXG6-G)Ay)+#mq#O}LvK zn(j8{V!zDo`L@(^av@q9ss``TnJ70)?+xKT?98hc$`ncZ^v|NHB#*h@MmXMPg3rK0 z;&$Hea8{1(1~4E_PLkD1y`{DHh{TQkfVydF(e18YCqJ3a zbIK}kLaHJm@2&^2Or|f{G9oE$ z1}We32|QQsL&)#`yj1bw>f`t4_M&BTi0#?>ZMAqAKD-<@h_lcR6ficDlby|PN|pkA zNmQtm-M#8Q#L00PJ)e@90>i^rduuZWuq&gkww{9VvdIODguJcNjn^*<9<^gh%~gC@ z2|nX}!VR(ZuWGFgLt)}5);uQ*vj{g)p<9V`7%BPLyJ@D1mGx{4GlumxyZzsHeW!Q0 z!As{bU_s2cwhHiXsQILy?mh`YJirr48=Ls|%*FUamel3!Qs%DyLTY89S}sv}*?3$% zEV)NZZH(tNh?v2hE10R0YASM2QL>nQr5Rq|fzES^;ASR!N1+n7w=yeLl{={SOL{T* z)ILQ`WLCwG@+sRiJTFg)qwf?*8T+eRTEf@$aYZ=*(L%i`?6S?#@( z_k&x1|1De{C+BPs=|LlaY%WjGA}rA^I3}3KVv>5fUZbtxh(XOjh*CH_+y(|(!~ls@ z)kGfPl!?V`dUs^GcVtvur-8h6jnfL>-F?4rbKRz*`Zsg8W5J|siH~`6zqhRm# zS&X}K&p24#omo@v#esL^?`;}}X`4n`rNt%?F)Turd!L1>RbYEUv!~w866)5qF9s6P zK4Fs&U7OyJzustkI*CHri*n$@t8TyT{__wH5wcZ^R#xCum+>ciLKLYV`+?7j(Y_lx zDi*%jD>g3X%B22LQmBPrpZhje0u=+PD8)l8KaqiN{iZ}Z2tP}k=5CJk$Is~ygIWb`4h7Tnd20%WLcewkM6QxZK_HeiJt+%URf`%vu1@nzUbgl*-<=fN}`=BU>LMK3ZDUBckP z4+^*Rb`){x3IWhI9ny=VdAP$Nz>YYlQn;Sce6WN+#d?9^BN1)XSRO&$Snq9n1Q8B9 zWK$J)tjG?Ate38~RgAAf&3sl>N2_e(^1;$#WS8$ZV_ASa-0sXs4z>L+4U1YtFaETc zfG4)%Y|^yU)vH~xJQJFHckrC;`cM@D$3ntd63+S6hMSUmt&hLC_^E`BCY1DI;nmYN zf9-`G!JpIJ^R`ZDWZGdoFhJ-2dTxG*$h!qh&~|g%1;-sQ&RlN4qsiQE z)|>x6!X(q4jEV`s6_UZ*L}qIJcmZo)IMoY-acc=0?BJaQ5H4gy)J2l+xD|Sx>1E4% zQMPPlP$`a4u`!m9E{Ue;5nt`Sw7b+#TebAXM{e_eEWhXfaT^cyVZgnxoV>d9v#(=U z;pS8mh%D3C$*FETS@9)$)?UE*v{AN6LT!?8LNIG>_Soc<8*PSmGbR z@x*3OxO5Td8IN98qa*F)Bn-bVb1KB2{L4Eg4(r`KiKrr-Fe4lIvSr<&6<;l(#Sm+&ZOlFBSc|3&|wnHbh z5hJ@^@(KEi!;GEPgGrsxWw4*(Gcj;Zbhp!}0yrVLm%0(QPHiQ3(YC444G64R?IGTG!Hn zvUUBkDM_TQmC;LOFzV`yS$cdj??*5XF{ip%>IzlT|Ex-KDTko?E9D?(Sa&y>tWaS9 zmaHUz8v;8t*qmG9&Wj{(2CPU}5a-S2Y+^KTKzT!F5d4(sU+V5EGQg@)NBwDfl#oih zA6R`QCsIKbsC9RO#E$PLv5+&$DyyEaj9^#DPhGR{y+8(OUvGw&RaJpv@5ws_en21n zIe#vOnnN+~%b3tWsgoP(6BFJ-O*Dt?n+tw{WbFLu8Mj!Ure`%>)>1~kRO7^SqD=rj zJgI4;e=F~C$%jUo&MG)jy9k-GpK7$F$0+Cj? zxc({Qu+)mR{rigq^%p%z#x0>8&D$*`(vu2$Vd-TA4Dm2S`>CN{xliZcfPAwbNC z)1sx-p(d8$bVj+!$i;!N_9yLUpn-<#)Y1tc5?SN1VC5jAWhm&ZhDV^BMJu~aGf+>8)1rIG{;N2*k`Y)A&`g})Sm?8Re>>b zR@PhUd1Fm${F*)D{>m@?i$xZT7pB?W%L2&3QiM%ev=w!|)E55`V?JFRm4EEP`-}PBQW!#Ja5G}hen?tNu1Bnd8%68jUTK{XW!Ve^`Cn)mTb-qCPKFCT&Qo}A zqa7W>l4ci^-D66HWSrm(i0;4a=-K26=B}>x5tJk%>2)>u^C|b4`Nx@BvFF^|`e?gA zCgY|>3)2S^G}dd9{gkY3-Jd*8K6#;A8r{d-)#)EfES`Ip-xoYc2>Fx0kg~Io!+P-{ z^^FQ0;(V~yvu=Dm{}tq}9x;%Um~SSn&w5EYIltpbLZCQPaB3QuI@~XK|A{7>G$@D^ z4?<%VInP*~Nuh`RE~7vYQ`QUJ(7Wtqd`9W~<=Zjj5csk4o481Wu~bMlxeqJsfC)V0)G@TR|K467sFiFjG*~>bWn1Aun_Xp^y~)+5u3rSl$FRI zbV@QfA9@l-8TkIYg-trEHiIG-&I8Ubzfm;`bv)xt4H5SQUPh4X;#3u$^|OjG?ey)} z_*CxogA^cuUQEJ7fy1kbB?f{K=w$H*j)Abm`>1Ux%0I97py7reJJ(T<>Cs-%2FIv7UCCkOQ&+7;%q zGL-bxm4qHA=LYFQgzHHuIH+#HsQTAOS+E^t4s2_0Vt6 zz5k!N|M`LJ;|Ilq#ota_ja(Ry89$~puq=#>`Ol;fcW@Bt@TbpdGjh!#={m%Ux?irjjeV*yA zr@N}UtA6!FDJx1NA>bi^fq@~(%1Ee!fq^sp_kn}>YIz{WB?AMKNs*NhRrk!f$o0sf z&{*otcdhQUvP`$oX@VmQ?&<15Pr=bwHVJ};f==9JnuMSeMNMnxJ^I}gDoGIu?rtm! zP6?MJnglP~Q~zNI868BzfNyD4)_JjYxoos8kX+*DU1+$!y1RAk21 z*cr>KRU%>of{9giO=Z?laY+ZZo~0Vf{J{#_F^a~@J1lV?^+l?E*DE{^Y33Q)^f5#C z;W9Qo*3b}r3~EIv&3Z!vumRtDkj0DwdiFTm*X5%Yq?2>Uc005uV;bzKsTNHUf{?*u zzyZ;^VAR8kONECf*M{uzuiq7I-4D^*z9y3yLV|wRtZRdLQpRlI&Zu;-0|cBj$sD1t za)J#YQi9M^+yMe42`Zm8-dP0;z#fTuKFOrYR))E8d%ZgN#D6_~h-4Itj#8xdHwDvt z-ItgK>HvX8j4VvjtL;?`DQGFCYQ#j{&mu{bwFE>8(nzv}G>Lx%oWlYI=pRmNWf5_@(+c->h(DUKa!MKdlhc{p+wQ)gQx~$l0LCKib z{{Z`H(j7k)A_Ql&l5@uPpoEaMr+`g0g`;Qwr}rs27IQuw-az9a*slv)pPDgNMH}8= zYKt+ZdyG3|DfSt7?q&2hkb*1eUKwCAv}mi44F|5HlU4&BMDd`DFUcCZq{@1E3Q5tp zvfds|dYq&9m5Ih1^9KJKoW2S;;DY&E7;)17 zB>5D~{Nqv=i99OS9Bqga<&`S?oxQ9zdoc0^(p+6~0`Xqiqas4kqScTF%seg{I9B0p z$)?^NIQgQ|AWXRzANTH%)ewHI7k?JV71^YEowBxEu4D^GauPc>4law7`K8q|No{aG zL(@w=KOHZtVPF#Orp-gZaK(AR%+rNhvX&X(ilc*S3RmPx|GOAyJMkbKlm9YgL{YMyr{@RhL{MSQm~vxN7x(Om<(KG{bNtkVbF@DpR$9*K#o^bHeSjns_{K zX*Rd@T^{Sqy9(EyFZ_(y)5e7yC3?Km5hT*X)4;AEQB*rHwmr%4I{|O7N2rf zuj&gXD=VT&@mrTF;XMH=uOw{rtA~`aU@jInX)FWVWNM8E6@{CMy@&dFA^dKY3Q8%cM@<&xk^-7Snwp|K-L~g z1s%9#Sz&_x>$ACIAz}k3Sfdjh0(H7bCJkDpxG$@ z@E4Kcfml1NNF)Qz*=!(U3v4iKq*-P+L1%w|9Hu{aVFp@L88^Xqdv2aNy>u1TYK}F>db%c<$v&?&YRF=2XW+2z#oQC!_s<^hv z{fGdY@|#9g^Qo=a^YhD&)ApOuV8jtJ93)9BD<6b;WYIoPTHpRr7ouqa?Or)XtJMCV z4iI=~?Avui6{-xtL}N+oR!01#I_xo>Gq9${5XesTlAMlOs2#|GFM|=PnyMPeN|nPC z-48cB+jG^7Y+%k-(0*~PhfHqJih?e#jd&j+_2NWylHM!#37gQ0Mm!a@`f3w{I&}xz~-#Gq`8gE2uDwpeNsK{tXY}vRZ{d}`^kA3_lAI@ z!XRK~PbTDDh?)SkhL}x_iH1Wsxmnho>mlSblOB+?2Sicz)DM7}*gH%85Gf4D4n-=J z;*P)DFsgM3T!aLj4A)zch{Ae_nJMsRLXm~{5`f+?U}LLI2)XlGU(Vjpg^@?a_$zYbl|WB!X$#h61}@Z}Zb1+;?ZaKJOBy zn;o6mfROu_JpYi>F?NnRob>&W1A_MoOn`0!a6B3ZZG~;orpL1~QZk4D5yQhIia;vnSe-YJ{AYxSy#@ zLQ%>n$oi#9{=3S}6=~iFXxV1$bI_MY zgH?(`z@Zr3w1q!#xG>~+Pn>Yumv9a);pnp_dh`cTTItPT5t;opx`ts5ZCjOSfzU;1 z0nl!Y2C~Gf??7Oyx^cDHfgMm-hGTZ-689o|3cFWSMq4+#BkP;Lds^Y|cf+)1>hF1?KgB zjhwG4^phHT9fZphyP=|S?gmLfvd><6Wed*W^{_`F6A7%Tl8{h?rf^ z;yn&bFk6trF=Rl|ql7B1_5};?1s%TOZnl@qz-~6|5)N{5vqsf*^g}v3>`s+S!pYnv8IZWV{ylGs`yLHx0XbK;hMQf z1n8HjWI|6c3aBCLco?Z!2i~;=T%wb^LhqBCwv- z=ZadQ$4yyU?x;3;Tm{tyb0DXzDi|#(S*6Nlj`&x5I+9h3g+-PydJad1%>s9TF!-d= zauOh~zYT*DXM*+b*`kx_{*!3t)7__kGzi<%ner8ICNq%`%Wpnzf|HLscIDhYT z`|)qrsxJY8z0XIb<-gOTBnHDC?yRfb=qguQk#5FF2fmcqyzc8XwRsCRT1>u@B`Tpt z0m$oOR$S5!Z4StLX*irD^cg)-ckRrq#}&pgnTdE??s~YO2Ug;0BdCPGdEw^+ho*b<-{Ga9gc zjpBO#e(21Gp`|Fc|ILsq3^17oduz!`Dd;#v6|Z#Jb^aW1d$ltqI3}HlJxjBLUWb;+ z0_Xj8BRCu2l@V!L4?8<{GY3sJ1h!QjUJTf044q}nU@i=YhLN)stuPV?TMAT_Ddc|w z?Lhau;@7_TaP@@FU>6r;H-Vi%anZ*6+0{rNz^W&bk`+wRfb(H3E{%u8lC_283TIM66a{ig6Ibo9B@+|BKEe*{Yi&Tk_F%mtVcT2RMRTLM8%#Y@9 zFq(L_T#JD=bBj#C|6oK$Hov)f&J%|;cymnsGZ@DC2u!%3?lm3kEv091TkL5u5|RW;V6(`~oqwFyn=+)5 zzxOSiplRntn_lz&#);cY4UPw^CmY%b9~J2v2fCv&Hv%H(f$GzaN-{h%+grE#Nw) z&;Z3`Qpl|)9P4#{eT2fUdzLG8ap0AA#o0{;YbU33i+{tvr*G z4sZ=qya`Pn*V;*MtUcn52oL~Q6si%`y+gcLnx%AuRL9JoHZjgbZ;1V!dh5{@mKUIAAX=#=2zBHvu?hxLmybw64gyMwFa2HnvDV+blRuMx;T^6eF7;C)?@pHwM~2*QYc=#Jy{LW^m1E++m1_ z-nM4E@Qn;vY$ov7Y`{>1 zpSyKsi!~NYI`w*r^%P8p3zWDM#I z89(ij`&#}MF!lPfO;?QxzzDw&eCGYy7g7?gm27Kh_+b^U|*oaGjx*b5A7`xwloz?1Vw@fe^#NV_pcw{flCaZ;` zg=Dq;C#?U3-vPQJRZAi1fHVCc+~J2=K)@yJqt}frIU89b+|C5?hlK|Ng*Whr>ib!o z>WL`%J@Ot)yLHWZN#-mX=UjGPm~pdF!SxikEQL(zYI~wY@W1_hErgN6=Hxmi{{{?K z9OfLWm_WAJR34Wl3&lU{Frrl5>d_Lx62U$X z*VVaGh8@O2v|wf5p{ox%6H8Ly^70P;;Xv=PF$SFRV}w_q({YOD1i^G ztobAN>mv!fPB=ZkUn%Z$kg}83OlWqoW$c#EL9(rYy--8Zw&ddtJQm)h!evu^oRC9R z7cL@W*wCCh8EX^mgA+XT!!LJlSxUJ9@(npDAuzW98grpOvlrNxmX|S*s$c8aRS||i zlNbT?pLxQezNi5`kIw`+qDOhKXYNjs6>ugY;%SJB1FM=G>E3ZU&=<5N`tMYl%QUE3 zEUqR5pD8!cw|R11ErWt@oh18DlXnGy$h1$0$;8qbKT}M=6bzx$4Tm^S`EihwvuFO4 zpF2O|Dk-gr_CJ;9v5|dtda-*gqmYR#b8_a_`-^JFnwX&2GH|CRE#NO^4R12&*P73S ziA`KX!D-SydAbE-xbZao@`9S*?eh}8k+-7HU*WA@g#ak@pfmjnKSSSnwT$uov=iuK z^2oJdiIOmV+mE+P^zB0ch~gU)0GIk2LV0Z&@O(Hyi&;`?v&f5bXm>@ZSziXj(gusl z*H&;u-VmU?zHrhr`GVaiBfq=kJlDFp=`xWi>&V-ELfZDZw+54!)tqbwvRJ-@)1K~u zVU2`DA5azq0IGSc8QMDiIUbCG)!)qe)wY=iJ1;O@Pjx%RG=oew2{(D;z*@c~TrUK} z=|A}_UcJLjV)6H(Dd>d+hCB54mDueLoLS?qEl2kktTw@i33MI|(&Y+$^ur3G1!-|P zoF4VB7`}%!3=`RiYHYHovg6UG*iUNpNb8E?8MPaCLe~3HfBqQ2DD+{h2}r-$;hoz$ zd0=j!1fb|oE6P9-9aB0LF7FOZ_sETL#3f!D{=dn zF)##w2AVvfrAwfqwALLH1sVCx{oL!y29xmT*`D*rc}vU}4~80xNWZe*m?>{oLxYqL zK^RbecTubSQr7jk3WH zauV?3iySrSHvaj8?#uML+$N~D-bP=ubeBHv9#Tk#$~Dl?V8yvvkXW?>_w|@!ihZJ0Vh-;rvE4EjhOwaSF?u`PM&M2V!UE)cprYV`?8mV6dfXcPRu)fV z0EczI^!7T){=ler5g#7Iroc2)PHJ5_+V*d87BmKcFZoiYunn(T@ZW_DzZpEEB#dcAk_21kdsT_MNAFHwe}-PgY>xgy-fvi$JdL-`!d;75~As zDO`QNpCw~I41Clbza1852Iq3o7mkapK7Hvd(x|A}m|Ud!TBgvv3@bj3*lf$P5XlJ? z42y};Z>O_##JzfyhBKI2@^u1j0p{SMEuNF~hf=~kB@<9=YZ<$J7m@K`td+=$RENNf z;(?TwX@cg6<*xV~`eF6=Ep;-ExXxlHqDlivqDkeswH~8-j--oS$!f?X$U-r_ha{m` zY_Zt55*olalCB5%&#hWYH*y+V=e-J}kRZrB@WJan<|_vd@BL<IkDN?KrD{}Tk9QINL;6CNnG8G>=$x`6HU@JL*TNcZc!WXqe}@Oe zUrOWHqp7<^Gp%F!FmbK@Y-vRilwd=X&zR%#nTypsCXE=;p~cjz#(-n2SVe!RdugwH z*K{<7@x_B==-&MxvQF9M_=*m7?aUNV30uv?$RlIp@T_eIe$1`sw+)xYa&W)u15vre zAyi5F|G-DpXhU3E8To+WJ{E>>m!pa5b05QC1U2+v`TWN)g(|8X>HJDqspS*vYx+Qu z@FNjqTbir|bE-Ju&g$2m82UnANdsm=pBnhPyG24p!|e|uLR%I0*m0<)p@U3DP)4&pkzpMU}n>gfr-rj$Q#k5US+dssiSS# zegrkG_@ko|vyAnoLCB}%xpLskC$C$@FslD1(#88>eO5GG6^Wy~?f``J7B>TmdEOKu z!L$+%B9+Mpk8Jdf3H4%i`Q>Xz(0}ErxwYBz03ZMys7YET#qQI*&q;9aPq-zERre(c zYp{p~DM8BM0Fio9wywR$KT)%~I7VT4QFHXl@oDWR4j8DcS-Nn@QMlOEC`&ZBQlDX( z%Fs_KO`CaSN>oyyidLXw^VR{OmNioBO@rco?hV@Sr72E_zH|p5efP z=Z6(f823Pj{t%}@z9*zj3rJxRV8(ZH25+LTRe4ccKHV6OcxbSC(lzp1a%{P1)uJ_; zJ6)>&qHn9^POX2cSVG08$Qdh|kj%ndFt%gIb{Y1M1{%8=CHNjWn$3d(AEVTI= z0VB;6?9JUgY|Y5&8v1CtuIt_?8E3Z{VtseQfP^hq+}>V&LY5dS$;e9 zH{`rLheeyuEkeS#`+6RuUuVCGe|bV=oz3*T*nbdU);jMBLt?Ve0+Qkf6 z#Wavz4LT#){RsX`?F3fn}}wqsMWzf z5_hd>CVh!^{VG|PyM<~Y3PtyQ&l)r~bE z6JWF0;B{+Bk}5};JO)YinJ)z>V-G3zJYxZRbQb*MD6g}+_p0t0;}2pq_+CaF&Ff(| zDw1{PbYsS@G62|f;J=w@3rdX}kO->jRKG$wDW<}VCWtVcLeBONZD&Wv`o>0W@6$sl zK9|+g3J@e(Jn~r(qqg#W%1cY(pnErJVmboz9R3qruV0fT+Lf6S{#*ZD#-%IyE6VJ; zris~VMpYUm0~Z?z$xI{lv(?TF70qm2(5d+-YSeiI_mYQEj+3_3_0U-gCczwEieFDx z0@>iHth7Whws;oLb)B)?s5g;azplghZFtBH|>+9&Y^{uX2q7BYkfsV4^MvR9v_9wAR zq-UNgU1ZG7@Yqhjahz2CLwCJFXOJtWmZ9hKkUgLvHvm`vJ5LEI(yQx9VZz?&mCj9$ z;Z{*U8*>Y$#x^0e;!K`9u=~JT=Cxuequrs|CXt;-pLfrKKR=K4%;3?;z`)7vM|ZBG z(_I%+?ba-LE55s~4U7EnZ5JeV@0{#mJ+{!zqzaL_H`G05hvQHw zjGk%$%^8ybNw1%)ff2_*45Q@fw6&*KcN86u1v>i`SyN+zaB6HY{GkDM5U4lwF%fEH z)@P!bMuv_<*`B%Vox6O-mI*;hfW~?_9fBfdhqiWf)BB@<;5WK;kN?7&meU`xDXjFG z_Qk6veh(O+wmUrRXLuaWYFFliyWywQ;{d4SQ;TdQ=N>#fuL{~^^+`^;>@+Rd^y6Jz z%ff=zrAJB+iq`6{p(q}I>*f55!HNUCwY{nwbg^hb2q@%6@hOoP!F3sFr@bmShJ&8j zz&~@x$a$JUn*)Bg{WF3)`2C@{I_AOs;g!?FZ+b>kTWPWK58Ebqc~yIH-`cSG&G^%A zAv(zz{kw-2GanzYg!iR2hcmqn6>9cBS>B@hiyk_n_|0p#+hgY2$LDWaS}TP4&!Brr z52I&kl-!S-_%8B))6Z@F&W)CTODCx3p!;&x8m#HcKa&3i95v_vEeHYfCaDy!n!viR zh24IDG0x5tx-dT2>6QLXMXIqCg|iPwK8{wOLtuW8VD-XRL2|@=E&ZbtZA9p8%`u2< zpRRCtKrs-5{|5(vchM%SG?h_~%qwA6+q!MGln=<*52%SRINPi?*mSiyx{*&;y1|i} z%!EWNzrFY9@zon?wA+wY`t?fA?qoT^h|8OlNWNxE-?qJ8Z~AX3y8|P!F|dm2jG5iC zF)|txO(l`E=(mvV4|8gV4N2GspE&OlUS4=Y%Zq063im-vUt#yDGnhSj;bpTi-&?s^ zoJ5nM5{u+_&D-XqfwxTkbyokc1ju~3s zGoFe@OK6{h8CSpeDja?xC>*EQN^B_t%UHB==T*xlO+ z7t7j<%PwX2KDShlKRfa+5np;1OwaLxuCJ+}%Qa-=$&sy7QqFFW-*~zO6$Q!b9PqFc zUE5|_tpa-CA*RkODGfs-??^{QaHmxl4$$u0*azV*^lDW#S0R!%tY)N}5ZVVKHK47N z5@w16Un^3RN|}mV@hcBY`ePH8yTO0K!*_z`u`(06L>j5U+%-O)4xVJSqqhU5ZpJ3c zb_dR%CoPfL@3_-?JRar)I%|bz%js$M8(%M#Z6*AI@XVgP3i(=*2`^}nT*e^fPmLcKSv*@{Eg+zV&Vhkt}o)n6j5nOD-^_z z6U^y=~dPyM*P;HyeOqjlbexzJ?{H3CEO=)d$5U6d#!Iqf54O3TmS+B3r7ibHwD(7_a(!AN|3+}_w; zxcd_$n|NQ>DevkUqe^vs`zhqj@ub%M_-o$}()Ys()UWUb2yqo+(AyK9y|?ujSby|9 zGRS!zuI2uebow@N|9FbVk^4~E`%Hr;utgY|DD`%Uuh<%L&6#MD0B>(h*0~vpf1>Kb zX5EhU5XjhEYs$uULB(go7H zg+Ujk8wlgz2?G@4cz&}A3_9B@ZZOD;KfN22p6c!Gw+LR~`x9%5v$EdodtRF>Ojw>H z(uNsE$+C%>s6^;ZGfR78g*Il+mI;akeb|JP6SKnLhGh1b533r#B%N4i`~q4snHFZQ z@lvy6T;Wd62y>$g4RhhyGgBeu?+wD-rgsWAyhbSj!@f$aCJoZ{G(F3#jL!^f8_2$d zn`@%{mH<$`L%+$`oWnDYmW0D+za#b z@rl8CtXZV57zGH*6)dm2RCK7hgZxLa621_oF=|GmIgD``b0#==5aMj+9l@gx*zIEf zqyL>zrh?_+*#<30l!Iz>H4#mY1(nmkQBLKesCbT~{2NBOF%S?!WgUFDI}b6H00E00 z^e%w>5VS(ZuEO0~S_5WtO7GzVjGePaY4(4AnL_(jmpx{#zj80Y z?Cnt6DzsY&>SuXSL549t{Da$vj!4Fi{Y5wtS+_TNUvN_j@&yhWl^oVhV;H4C!0$tO zpSQV?AKxzw1KgC6>4M~nl4vMb<$*{SA9~@@_QYdBd^u zS5S`D5XshpM~w~Fv5(4##y@#$eCFDa3b=0a@H zh{Fh@OE_ExxSsp7eGhEUiy!bvrf4CYY!FE?`-fy$*v@|op8rKd_{H~c($ME(X>+sd zYZ}eja2-nBuA61SV`T|Gph)t?r*t@6StmiOeU!%7%vly)&&`ty86zk@52!Q1PyeOP?ni1;F>G9FK? z$r1;i%X~!s{EX`x^r8I9Bcv!$eQk_$^^T0jY93L8c`PvZyo;M*&Di}4X)MWbK`~ZE zIMaVBEmbb^FHdj-m$Xp2LDoUyLGNqNCLd0Ss#6qdJl}ZCj0h`N5kA@1qso$a?qt8%FU28qPPa@3 zrF@3Xjwy_M;1GMP4#$E(*#D=aDXg7WJ^YCpF(yhtJ2PV8LH={tY;e)LTxNKkoj_|*W>8e$o`C@eY|Y8nq`P6z(5 zh`$z#`0YRYE_`X_0sNYPz#SCoR!+uz;|LGyfcQ8@83$2Yo=Qx`XbA-BFi0uF8&|YN zD=>6K>`6m7Hapqt7k2Fd^t4G4V%`OTSg(UfoOrwE(HQ2QOvT>ox7&cT^S5ywE9i;K zPH3JuayK_(>&1~sjVxQ(LL9(SmpyXsE>Y@Na(^^7`)kj4YWH+ECL#_;kw}V$V$MsR zPY_cZtn7}*yB`eRTe7h`NP`zm#w3(51{g5OIfufJyk7)tA3o!_>q?Jg+n)}&&N6wE z8_?!3TCWGIvqw>(7bAb9f*+A2#T-JqDp%;lSV2r`f8pS!lv0HiX;PTmYqZ|i@d|_d zfbGch6uFBGIl{L4Wx~g;mBM?=nT?lFjNsM?C?xUbUb0Gr@Y>oC?8|jg&mvY~09|#q zfCq=1*=Qk#D67KV21ymuL9tXsOg=2+V_)5FAJr0)Q{{;F%Nfnla~x3xv|HmS)CQr5xn4KT4X8awedxYal)}m^*rePr z6Eek-1f#Dnv{0x7_mxZal8WY$bS;N3iUP%No4jrh^&qU6^RUp{K^6?@Hiz&}Ybt$T z*!kjN08v+Bkcg4daF&LuaM9UJ->iek`?z){fGEMAdS5=LXW3Tw^;rt3PPd+#BT?#< zE~8^BL}T(%g|eL;t>Dg7Gq9Wx38j*pxN0-=we%e(0K+Sey=4;K zASXbC-|Z`Y-E&o#vujqUS#`<3Ln+-Pfc#t%#b0yi{PWTik}R!B@WUyb!^5v|ASKH( zFEB!g`FfnTSm+_f=m`oL-;%@xL|qi({UmGcp7WFZ3D=Cm8Vj#lU(&T=~m&v%O;_;FXD{}(2-MEt*To)K3mVwa?m&K6{e~Fc& z{XG6$uB?8C(&J)h(4H%Yf*zZToNaL_lVZ+FH?C`No}SkMTS)J3v6w*ng6TvNu<qCCVQsdiP7gbOg(< zJ5^iw$iHk9)*_adQx@WeLnm(y$T~C5LVQd7<>bDP*nsk;WDb*43%;V`OUatZ`&BU4 zso{dIKf5wC^y53HZt=#($#Fq-%;%euK>VZdc!yy7n@!v+Pkr}L%;&Ds)y<*Q_PT^= zK+gLd-jBZ)HuEuue3QvTlRA9(z7Xm4BE0nF;~3Ywtjs?h-{sDheLio}<08qMeB@&g zP7}kIiU<-zWmGFmMup;qi3C@VW_H?Uh*^k8q|_sBun#gNqU=M%S%o93nre$M#^}Qn zv#pDIBPj9snv889M}sTPDGGG$h<{AkD715WVtrb$nX9wly1siS$tKC7!wV~t4`}s{ zzYatZ-^P}7FK3mVF`*qq^A741$V}>CzHKTR!PpKV$kb$+5{2aZ@1a;-rMPS<3EYAV zaJuBx)ShtP9t8E*tt$u#F;fKtqTw6?%v zP1YTjb(0dmp{QF3QV4OTAAjwhlS^7Edq~b+eVE0vTfd?7eaIWf zHy{Rp>*M9K6ncN=_38Ho?`I}DR^_bre%y4#04$fz_ZXDF$`GvE@=G#%2o|F!%4KfG zX>WLL`fxs+r(q?{caHMZ$l^v7zkQqAE-?QDTf>TOOVPW-xDys*|E*yszxq|=b1ghE z#=M3^xOvVSiI@9Pc0!P!sw^oZbzZP z#_uwUF{r5b)hn$PyD-)AdK<^X()3kVr5&PmO5b6Yx7Q;?m-|UZRFgu}{w_(^x6gn7 z)k+xg>Y!_V`=iqS856+cVZ~~BRi4*$=y+y6|G5OmmXze9O9rr_e5lH(_`)GyF%gtDF#l3=Nn0;hJZ_is$F1&FyITAOg zvNtrF0q382Kb!lg^S#FdvDfGlN1u({W#$kK9yTv!Tgg?;^&yqM-RSKJ-)LYKyrIG)?t-ObfCXc z{P*>|T=ja*qJvzaKv#B|6Jo<}@QhyLxlOnrdW$8BRDD0%_&&dp_q|}0uR?1-!pbxD5IC7!yZf*4Wzze~%9vr-$t{htKJqY-<fbl*6Pz8+zk$xw?dECRg+oLx%XiZlk8@qX6N5p<6PN%j-uK z872&SpSaa1Rgj@`CMIz%)4It&wQj7>Nn4LCUMmVE9mb^^Gve{)Ju!h#vgZBjY=6qq zcrL<;tU2cV`U^Yoam0s+02r zJ@U*>>pcNgFokXcs(SO(j)(b_j!Ot4DSwx){|Eexl7Z<Xy znDRgk6q@jIJ4`w?>-G#MtQbkh%|Aj_akEc=6yX z5#R8!6q%X{hF0Shvh63aRT8Q~zH&f89@+a~@{DL?+HjgVt6x}@kVhP&(0vX6m$%i= zVh7z|T-a;rGA@_lMyXYe&up8RJ)IcA(r_V&VVKdB9IW=AS)o1WKRld%9GRxpyojt0 zHZ&BtD6Sda;;K?a%29|Vhe&${WXwk*Otpr7>oa`EQ5=ib})Mu=93$`K#H?mfj>$YjpEmp!MCcRw}ZY>{Yn)8Bt7)k2-rl z?m&cuW*}C@S*Wrm@4euQfu3KKws41#F_m+SCUN7VRuZ*ELnIh`q~7rPX9pHIw_5U& z5i#!liw+I=pwZ^&Ii9LLJC8xY!NG`}5a1p)ndmWN@kh-#$D2n3?Nh_>;r{4bpEKX_E&$se$-Q6HAbr?l!Thu(Z)yq1}%=jxl%ZzBeWa!71@;_-CnnjsP2)K+(IGLG+6vo0TR zlz5pW=Q>}$3uzyxzt7-$kK``vYt`YHYfy;L;!tMZOfD4!poyC6VSu>49b;O9k~@Ev z8CPMCcS+ph z?zvsN6>7xrj)APl`vWmjE>X%;4;hRmbvlpx#u|vb;G87o9&r?Gu8F!(t_I_-^$!9E zisuS4y*Oc{z)4t6@Y;|09Pxj=+Q5g&ZThcY&dlc&gqb58{j%s>YqGZaddQ)?)jf7> zQHT=t(fCvaavNPr!&FH8T-Jyta(yr~yMlL0r$}X1Iu;pc1`LwBPulp^zB&VrsyOeK z@bjYQ{>Kyd8-M_~alxU~+5gF~0VC~l((2rQU$cc^h8fL2j2lu6^xqo7+bar7L577{S_bN3DZmn%K!dG0B+=a$0wG5?i# zO7zm8y%uUp{31|UVN<9FjkAKmM14q^f+VO*#DZ!RTS_fPv5*q)`G3w}#sr*v`U1#+ zO?cvPlYZ2HX4k@rKRoFG* zt?%AJ-IpB`NNJ~<%EkG}0&a>Jq`FrNs{lP-E zPc>g#Faa@VmH_}q!4D`E2uYZz;}S(ez6TW<4jZr+>pZPw3@P`105xJP^fv!*I5d9_ zEV#YSF8f}W9r!JJQ8lF9+No6C3au*SvH+cAkZY;S|nJ3^w>)%woyIxY5IbJ-Y)fTH7=0e(jLG&Hx?? zqo52cRiIO;Xz-7hy>Wbn~`uyZJT{zqdk&B=BkwWL==s78Z}DH++SQz z-fij{;)r6^L^Yys6Zi9*&jEGOES zRrC1in9Yhje1$RWk`v{5i(?O}FO9D{$y8__kHvdn(>wfK~#9msRNI7VKpF>i)tCd1mRec@6{Sf6MCNCG}je5iL ziH_&@UOL+Ow3k9$W?S=^(b2FDNfdEeTC2*wx zA@xDSP|{yxa%8DGKD<`^B1-RWNubdGOw-JN5@O*R<<8pL-KIBvE#arEjN$B6{9Vdd zM59O-gT8Zy72clJaa`_>!STZ)_SOYHO7$Hw(%Hj?^-x%x?-N+3hYu}8K=r@v(moapPeFx zSBJg|*$2@i(Y+wh8v6?{IO_J!;^dnTs5P*ow_+|$3)bbb@?910*!J{-ESt!-saSVZ z{lz4^PLMkK#FLzsyfp(qvBBui=>sDT!VWfVK)2xjR+eG|aw1hQfx4YwC@Q+pdY<;;5TJ{ zh!9kkXU7IVjJTHkc(HGB+v&%PhS|hVf{D)qeO;7T?f%_9|HZXweOm6bGkD#Q82(MR zMM_PfU%nt~_Z*3Me~KwtnD#<}g3zjCD7R6;M-V?|c_kTtQJb^)=j5yRHsK4;o7C3^ zaczjV>uu>8fDiQ0qXl)M%&xZ{(zTM#IcV623B!>|j zs)H1V^5nX#2gAfLStd=rc|pt3;%Wi9X8AR$B;F9?_H&^VqWe0@*g{D~H`Ryi0kU0xm`Rl>+3z0gF>1|R``p62hrjc2JUw)1jVJasb8EkI@ESwSU8GT} zFrnb6W&QhY4J3uRu~tYW(zjFnc{w(on5>Q|O{}>~3Ky$(BmUCf|o}Ifz1;>}8&nOw|XXjia?TMh$zNyHq?6xyiNJK03fWe%J zd06O|3PST3fptl<8fMHd2u43U0Zf{dPyPCGb5s4MZx}Ot-xE*1zOs#;wRZ1d zWsoB67eS@%O5?_GPshrXi4#z63KPK0dH!4@ceR!hK(vZ_+1?G91MSd1$56ebqs(Hv zbWcKvS7u>e14_+HR8)1;P0h9~j%N3AYP>8I;ebf;Kr5!}_>-G^9tRHW+$tr|Moj=e zC_fVAwG&u6yA#Uw<04(9yZC0|@DOUx*-n-xf(f;1%b$F7KBo`D7Xj}eJQ?NTUVB!p zld(Q@BV&MNB4Iq_Hwv#SiU3zAs*CbyNk3jGYqfA!WA#9t5PYqD-h8>n5li&(WYb0< z$#Ua_uhJs}Z;SmO0T_f*R8U9un)HFMLVmE!9-ym97>LiadHM)Q-)3zOTDE@W-qtD||u!1n)CkF~CXefCc9yCRl&b&ZP@QhN8Zd;l^>ajw({h2c1Nuae0Q3%GQ$RTAL z%pG@*JqP#6xEv3eU!*87@~n;8M0VMCr_L9kPDnZpj=Cy%(^zAVlTJt? zjg6Xf^5GJ3ye8jyP}ms>UFS)os^1B^A618HMwkBvO;jR~K!}IjI-+SW%!@~go{%I- zU>wG;GO+`f!*#32R^485S+?=#T4vYvFCF1`H5MmrIkrMm2YFaczJ&3t0z5pG`u0V9 zkx@s%z1*QSu17sKhG5jdf2io(LQv)6x>BPiJ_i+1cet5{s3v4Np&&UNqkgGs)S!z` gi;yG#S?_lGl@*V+W%V8($fii;jJr3v#x*$W|M^;iH~;_u literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixie_05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixie_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..f5806d639bf358664c1585bfda90896d840025cd GIT binary patch literal 9486 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixie_06.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixie_06.png new file mode 100644 index 0000000000000000000000000000000000000000..75dac86096472080d55f978d5658ed34940b8070 GIT binary patch literal 3762 zcma)9`8$-~8y@4uJH*V`vSkb-Tb3j{^EQmNA|~0wkQQ4JB{F*JB_BnLZBjA5B2tzT zWu2x_p_D?FGL<5gu}=(r=kp(Yet56zT<6@^{XXYD&vT#i{NuUXSz1y>5`{uZySg}f zp->`Q{{29-aAt|1tcgO&oN{&CK})>xYs}_qAXO!u>+#IR@-8%>BriS}d*FG|_K;rl zB$3vvy3Rte9`(+n8)U>S{YA3blUwgMS0vwbKe%3S`jaPM_{K%Y(RTJwQ9$b{21615 zVKHw}1ec`_{&P{3cqLYYWGaI=cEXpRTjFGuB`BI-AeRGb|8ep6(E$l)cXA@XfHXC> zzE7QyT5ru9ZRJKs#=kXaf7@L3Nut{gzMO5XSTO>=J~xpGxftJ^H86BYl->Ltpfq*X z)ML1(YHhJd=}B+a9W7f-4x0OX?90B03%nK)zq7}leVa8{bV>|L%GXe<)<#c=aLw#e z)&+Bmw>=1R*8nbL_;sJDljSattM;h_tIMCTzHt78xVp(gn81fdAlWc4&H@V|BS4y{g zIUvXRt&H1SIXU`;0G;nYXYi0>8O#z8b4kC13Jt9{^A4o^9F~fDtH}r&dB2hcDLrHf z5cUH|$(ZlA&zl7)83Bbp*Mcz!{r;EbuFm7z^!SxmAlSq)_I5GOQVW-4Tn+JiHz14) z-5y||ENCZACM@D~?JscX;KCjqI8?Stl41X&s|KKKO#7w-#7H4aX^PB@;+=pb(vbG; zHVqxk&w~!j32ejlJT-m>?_@ZitR~jRX#Diw38#v+E5fzjZ~kE5UNn8)i?`~U6wsFa z+M^oCv^nTsKpl5aM^Cr%>564DxZCCCU81H2}X09 z;&^hRea;$zfikf2$upU{o*IEP8OBR1lmd+fSw6@WT=3GCVUL zr4K_e&;JNt?-zd_eU>}O%k|i*y>lY9R;Mdu@#iQ1gGHsoE&;gfNtAG7mSjhPzf8T$Ba|6}&p z@9Rh09vP~E^iYNh6!JM8VqPr1iiM=LJ+(A;ZoVwStmy%BX5~bA509**G_ICUl`L%0 z;fxB*8rY|`9hm_dg1J0NdJH3uSi5pFvQ&zug8bp@{YA;6-MRSk?>fLiV{;17xq;zK zrGo9XL|%O&=q-#|!bpjei{@G+(sAWqbpS6A;Yq2ZXBLDtJ&J*!IE=3ec2oFbSjO@B z3=;#gHs134tL=c%^G%$)Xm8$iWpu#=NcUl=xM&ClzM_c&FNB@8F%*7enOKmeXGy>9fq_Z`&M4Yhk%f+p1IXH z&~^FFH}L%D+eDyAx4+7HL{rTzMO9&#$h`0<7v-IJdgN~6h`&n~X!|N~oL;)cC%~4954$GW{vZ%zt2dt* zD0um_tBde0<;(d&g1W=FUy+#l5@~ID(fO)%%SXC|mQXkC_ zCJ4=AM;p4{w30+U>3~pzsoB}$y^NaeCwmfmXBxs%b6|9SbVQg5!n4EvP}6RSYOiwMYlNaF-=uIat*oq zErk)+_k`&j(x+W94ARa{OwMTj2dhjl`-3WcuQW!gg7JGIg|->=QjkWgcJ^;Vlvvq4nl;pvJK}wjuFw;0!e_{;p zJlsiT)mTf>@TkUaFhRIp*xC>1=I-xwvVvE z+>DYMK_KHa#flw5&R4xr@`qC;^w4Y1;^L`whe8T3z-~m(O`GY}0f*4!D>Q56GvGoW zuKSH!$G6*#?w;DR6${|>{`=0XQd5k4GDms)=fTBq+kvF&F4Dyo!wqCq8nmn(oE;+t zx4G#Fy*n`Zg*x2!Qr|OyY_xhJolxG&3#)IQjeMlj6Tj87QY->-eN-DI>IudZ4mo3| zx75DCyxr;UDXrmoZYSkXRbM*MByFCmIWs38(-5hE2@<7d&&jDAL-H=2{Ktf9ZgTJl5SDo@sl=2vrufZ{mX`q_nHYBehtHDBB4?BEMm2GI1Jsc-I zop|QF+_q~4ENg|KMbY{Igq`rggEMXLwggDW!c`BP6D!p%N)tXRYF@6Mz|m(!hUftq zP}7x0J9>k5g;%j~JCR>QW!qw;@Jd?%pBG}3KP&9=2*Zt!rsnC^=h^=MK9d{l(@WLW z*T?2B8K`o8=o~SRLWc#GK_MM2J2@$rE|Hi1I!qT`f03f%1m3;b?E0wYwae&y)%Fb* zQVaGNysuq5=zdRcfa)72-sF_QRy^hG8{t+r&`|qU|D7=fFxMC7cxh$sO{c$i$E$DB ztlfVFmw(55G`n`G13C%fhlH2CyMkVfTCA+vvBV*Y#Z z$M)1e)c(Pz_0$ZA4D%{35eOs&L?)>3-Af{RzZgdu55$3Y{c2fXxNo0E@6e|>?QxaLM+7)}v0Z5lZ z?%i>Y6`=r58<6O#9kE72oHSxL>=dgg#7QG-{_eB(LQWZ^HDLFwj1Y%K%nffPz9*vP z07~~k@0N==*a}^evQ0M#%3zzpeeM=|MVgKw<~cF=3f#chI!{1iDa7X`ro^?|Jvs*r!E-~d>2D=AYm_x Na;5HetfqvV{Xgd{qgns} literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixie_06_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixie_06_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..9d84f05f786fb7e23b043d4e0b96df515a78c56d GIT binary patch literal 3724 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 KABOk!tbYJP`hmj$ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixie_07_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixie_07_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..cda4bfbe34cb5b1824f91a95d4ae0c1c290df6f6 GIT binary patch literal 865 zcmeAS@N?(olHy`uVBq!ia0vp^DImp0vb?7RGiiiCies69cNNnPUjuuxH9i>D;&TfwgmqSXZLK=(Q z|FGhtiy4MmeM2aSLO6}DHs-Ynzb5LEKd(~(;3GE-SUP-?A;0!xe8Eyjf| znTD(lOs?X0B@9iwj-8qq|G27i=|wNEDc(B2Uxf4P05$ek+&MhY@|x|t^ciOj*PA`I z&+km_tC7BK`AKHyQ4!Ts(RaRGluvNrU9xf0gt-sb+|qe-l~_y#W6 zarkbcMGE_;h{Cd0evc2x9yqVBaAk+z#$cU0k1Xuc*e^vqUi@*5@o71uZ$VC}Ri-)t zDsxk6Oh6Kc*FHQseexIgS8FzCDI9KI?eg>A-HIKiDeTuOgSp}lu~tkL-m_OUhVzHj z^rGW+Z@+)~biKst+$Q$?pPnZz84P~86$L7IUenjRbn%6*=>)q?m%h~0*Vh$%*dn)B zOKrF2rOy+_W?PlI51$J9av*ZY{f=#r522(uMp-8EXz6 z@Kw8Uqv4`iPx2ANb?XFAz!DvG8QhYuDC%^AI^${pO90?S>Q8 zE`n9IRSLaZ_x0V4U2V&8pxUDS;DTE^YQYxl?*%{Sug+Yf;j}%w;?>%^O&4#zI#|}(sT63|enyM)d%4<}Ca(Zy9R^QVKbLh*2~7azpoCHY literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_polar_curve_01.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_polar_curve_01.png new file mode 100644 index 0000000000000000000000000000000000000000..a88abc8909cc9ef997ab7e96060e87193b5854e9 GIT binary patch literal 1673 zcmbuAX;c$e6vw00I&~=-QUMjCGi+5OqN!{m=r{<7M60DpS!^N=C=mlF0RhwMphOfX z_OPX*cs#hVL@03q6axs7L{U)*nZ zwzItE&0aX0LZQs_@y2&hDAO3=fu@s@(IpE|3gz?dKKRD(;(yn5_(t_?p?Yropc6hi zV)a=}(2&>iAuiYR)ZvI)x8k60KIjYv10`n4_ajBJ4#sjJWGg|n#UL6&h^R6gVxxq^ zKf}t?dY$g2u(frt-|fTXvSpH4&Jj#TT`8x_bAgbT~WtX5h7cIfp~67t(l<93mt>F!+2OWQus)nkavz z=L--S$E|Z)WEDdyYN_+{??HJJuDy)Dmv?(mEvHs~VY03(1sYg3!Z(Qz{LK!CwmRs3 zU2sy;syJp+fodmR!-6VMqH15pQrOn{`Yi+t-9ACQ#t1h}{T%}Gjge__;{A)s`fdhh zH+N+2Ny+#?=KgsnsfSIG#IKWRu)0sdb*CX^%aUXV5sc2~?Di!5UD#3t%O4PO-kKNE zj&q9ewvUIJq(wO7an3Dgad&EFj{kc0Z7MS6e0`NQDU8kLcGGe1a4YU`Htfp2 z943bfvtT&A&6*d96MA2p11K;$w27yo!{yk6yca3ZxJ;D15_liU9Cloawdb!9dqV80 z%@LY!H-CgK@l2)9Jg^8B!7J+a!-;^^;)D$Vo!J$qVY2eMJY^1mC~;#RaD|^dJ+ES5 zP=_hopqSWyD4n{QiUeJK@3MjDXNt$O!Q?Rf_i7Fy0K}5ckWF|Sk>`{H z;s=>gj%iexG@~UX?GGuO-eJwVwx4iFfmHr^;#81f7c1zqL&GZ9Fw5qEo?X&O38p~5 ziJ+tq_g+B@uK;;mIysS&0+>~8At@<$o|WNUsUc?>L2*ZavVg~9&ot%!|yQ}^toFRALi$B#7caWPi+`UMam z>vhBm{Ag?^Znv}1iTX}pBTYR^uoA-|Uqdoz3vU{I;sk?rk5-Q*y2?eFPcMdt8jT!O z^6UW>+40UwE{rTbRiFg>bUO@tQ^5&)p73UHIR?GNfkwA`uin0980R>ADB#>~s`|b{ zvk-jIK2R*e0o-Qs5y5&pO zfDL$Zg%~4RrT2JdYIBxFsSRLMte5f3kR+(fSUq^(v26)t^@sh(hHrp1omr}25wwmu zOmZefnX=JbC0gC6=)ph-GI^+&Y-N$?6TSiMyJZ=Dc#};M|A^6dL$0zRRpP=d^MH3e zbF`BJFHLe2f;|a+e$FS9dQ~6knti$Ql3O+n33yjBFb$5nFAB*3xrV$1r6@BiE?VqB&{QJ2&HIi1;aI?Hx#|_PzPZ8Ia)5dV3$j%9-s-Lq>RUoHTt9%i^KY zMz_evWQU!xYVv@r>d>y3PO^y{e?F1|-B8z;ZXtF$v)fIP2CaZxWXG~#*<$g{w`oCy zzSiH$nN(O* zR-}cw6YebUI?*A&;0RBpJB`hZOAbt>PDPB!G2&7CNM+60VXsW+(u#?4iQXfXZ)qZM zLMPXnj9qCiXzQmTlf9#cL>Za8P4!o0O;&WYWn*-8O=9lSW*?FWspP-h(EoCA|DUi{ Y*jt*-zol9lJVKAtSR6#Mb$-%w@E_5c6? literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_polar_curve_01_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_polar_curve_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..c1575374c43e083285b8f037e66b7e253a9df9ab GIT binary patch literal 2257 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_rect_05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_rect_05.png new file mode 100644 index 0000000000000000000000000000000000000000..40ba62d667348cd73631e06f8193895aee3b5d3a GIT binary patch literal 987 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tIuo-U3d6?5KRGt4_;Ai(0d z{^9@n%DL7S9gP>nLPWJC*nA7izH`5*xz7CHtqX^tpp#FFfUx2bDlmV%KjUNjFplp> zJBOm0Q%9#jl2XfzABgJ9y$^4kxgz{v^5Qjh?`{{)SC5mqe%9tw+Maj3>^8sd6^jh{$VB!lW8B&K d1C>1gGO=A&3*(4se+UHGozM55IR2g<|=lkDtKBtF!X)gWzvu1DH?seRzuZnig z@mqdh{qn|H%Pi&kU8j|N|NXbXB4_*UfW>nC$6welxxDe!u6u9Gzopr0PzgRr~m)} literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_rect_06.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_rect_06.png new file mode 100644 index 0000000000000000000000000000000000000000..93a14a72975d18ed8f5a1c050f9b685b75714f03 GIT binary patch literal 2056 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_t)?o-U3d6?5L+b<7j-6k!Q4 zmr^-r&dq1py;E-5hAYL)Q!ImCrl;)L{!Qsow}!LnjO)Mu{$qGnGn8 zlSEpJ!5NOk8G?rllv@(rI1W=L@n-!?hX1Euo6ddUxW2!C_y5Ifx|*#2-<@UBXtd06VCR-g?Y$wX|edqV5GnLQy>~%b-HuLxi zBIzB!S--b8#TvQKm|4}_PZkf5#T;qnyX9+^| z_5BaRHh4bcFb>WS0Mdp=B+~2tPw@nLk)T(1{A*VRItbw~axGq0e{gNWHF~O`3k6O@vE;twFH~vfF{8GkMJTP-ynqp z$hEB7n?jY`EB+RTV1x^%l9bRDAn5`c2Z~O!lQIv#o)1Je1xXRuXrNnO*ZWKW8Tz9d>;kZe@!|wwWt&M& zzC9m2xXcU>DQn(1!qLA3DhP7GavzBC^NqlT>h=F=ZWvC6ST+-q1K`dE@q^XCegIlFHAq&CdZS*% Xx@PzPT(SSa8lJ(^)z4*}Q$iB}!qAOU literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_rect_06_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_rect_06_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..105a4a045aba8f599c1ceec3970c1ee4adde360b GIT binary patch literal 1614 zcmV-U2C?~xP) z%Wm677=^zfDe6YqvRlK58*~w;&rtL&`qYKH$|kGsiUKLn)U|9~ZHY5oFmx=DXiNSF zu-o!12hj)4@js)v94an^K&OAE=(!)@-=xm02I|aepw6rY>db1O&a4LN%xa*{tOiQj ze>4PcW(044h%LmTznc=}qWEMQIrrFNFze=q@4n^w2KV>>_OEpXmvCXlNKt{S)04}q zA1_W%AKMIO5m^7uaz<=@u!kHUVK-fg@;vl&@AvkC2D2PYV|G~0a<~m7W{wu+aoHio zW>yCG0<(x9g&r6;^+HsD{$ZQVtRu+H)2V|1L+C5aQlUagdm@`zW7wL_ir^l`FfjK} zhyr$p4K}lm0fku`n7~M3mI?)|wUw2DSD1ANW5^U{sZe#YnKdcrREuJm!32)XJrtrG z?6j4oGHV1G9D#8=AVfJ>$|rbdUIE51EXR)BEEOt(*5!VuN?;5}Fg5p3h>GA3 z`2?RR%uACR(#6F3%`B}DDZHVp0aDA0d0D;s+#M5Q$wO!EY9*W;{w ztefB^sBukOd+mCbPk&MjyM$d2ALDIDV_H;RA+$Fuz+ACiO<@Idm@9^k5Vfu}n#{Tr z&F@Q?!>wXc7NS;_?|GA1OV}w^4jWj)LeWDNDuGR1V@m~CiI!RG9;=jvVoj<-C9p|! zm9^dS!xgKo;LzcxcYOH3^h|J^B}D!5p6}o8HMTd)#f&a-USQVXBcnHDuN0eK9jbpV zU1tq0K3#%Xlt6k;|1|@14~3{0dS?XTM*0?3ii6UHXPA>HP6|}02v(Ir)7~r(b66cwMP)^>1Rz(Kr9y?8+k3NFw~AcI5Mr?AW-ZFE9*c^pwCJHx zLX?NJ(rBIFXCkviSvDEULnc3USSX%s2azZ>t3u^?+U~d= zeNWG8s@@)&(4z93!&7sUS&+e6F>5`D;_E_`uU_vM%{nS$`W6-Yu%7i^PK>GbBCjlaPSQaRBSmahh^pB#+2<^Kw!4VUW;Nl0=R{H62pG+pKoIQ? zGZ>3@hY}R!M)R}m!%z|`y@N?<{R=_4>PWOt@b=1jngq3*r9!#towU8O?2DSX%%4pa z2g@o{On!&6%=JFeS^<2L(h>ttoob&1nfmt$C#C7lB;?Q!*8gcQpCV_i?&FimtbuLId z$WRGq^Mg0Q?dvQ>G{ld{B`=W(Q3+nZHEb*vd8L$sHEnt z0rN1lo0XK^>nnPwLd7+24cN?D*5%`xDk<}NLs2 z#s5P>D5XtGdL90oH{xSjIX~w+N`Fo3}g!=!G(d$JDq=zXd=YwUX^{m?&Gfr(j&dj z?YtL;H9OdUcM4-#op+$_(H(@#_&=OEW849;Dm>l3unO5upsS`o%PL{Q@WsPjZ`9ia z;6AiDW^Bw4wMy?)T@oLrhORg2Zh~+P;2_x{6TbK|)M~KjC$v|-erX7D!1W}1!wc_! zF@HE_zDsjoanSc3C&78m_Y*eTeBDqZ+giORA*Ks8cx)Jdckb;J*!R}-aS&=yB%ZBH z0tWE=%9}ex6wg1HIg=gPPJ>i?!=u{%Xu+3w{Hn(E)2=Na>hzES_t!||{=8E6?ej9|V#wD^Yq2UfvD_xa?}9mt<(Z|GVW1afwz z*7-Ac{96Qm$JRGoHom@GqB=^oQPQ6Z6|?%B|&|ixOyx zYKO|jb`^A2rahBWN?EY=7`kW8vtxG{c5uv0+gYfInlnBW?bNAwcuYYlWr`?97@6wd zsajw0I`iUWA(W)It-s(R&}TR8oR&qDqot&3_Z{zArJLW#DhBJ=>bW9k;f=k@F~1JI z6^Z+J=1iAa-vrGt`RUhhU;1xjVZWaf7MQS{42vjK=TcqthP>991&J+xpUeZ6Rt%o5 KelF{r5}E+;yT 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 D7UH{R literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_scalar02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_scalar02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..c1f4b03fba78bd2b7e5fac0b76a49e42876a1b37 GIT binary patch literal 1813 zcmZ{lc`zFY8^#ks)Y+4u>e$uBou!(%k1r}(jhm_~S#bnws1oW5DW&eCN!4l)t+Q@h z_tjPrX{%NxXa!5PjXL5;wD`KS|Lix@?~nI=X5PP^dFGkln{JP`mJpQ_1pojNHYlXy zcg6iZA_Cv{AyEJX00__8AT6Aue_t(`%Q^8vq2Ele%X?;*)Y7yDwuV+`Up9Z}kaWo{ z(BV(iU3HgJsA^|5J}CdNJP|qByRGJUCjZ4n%To^2K+)qWZk8Pa4@V#7hMA=?_%8z* z2!uUz5pODEb*f8QCepMM9IUTr^p(Zh;1K-dMj<3s*}a+ie!>xr%f!2?{iDY*en%Rc z1+Tgb)M)}k?{uf470Q3MF#@8Au4*rZ6Tmv-tmZOWo0B?zyY-D4E;1;tmFVN^CUl0P zqxWQ(gAm{EWrxkL{oVx+i87$jmpU}u{CC$5_fVbWrG~{R0!8RRdi*C?HLh)He!h{l z#KS_K&k0Qo3oMl~y~vjM=x^{=&8+LG45O2yA5EyMY@vUwxRL=sa#%FFw`byTE*i@j zVREr{`6ZfGJr*rO_b26gsavC2*vD45z}s=Gmvx53B>glc;-sditxV*~#fZHu=3bn z${a(yNNM9vO~H}@2JlzR5b7gZY0t<)EC!MAVEj^|JFxX|Y=A469=tO6M$1*v9{MKC zAkr}x4&K$qF0@>EN_V`!A#3;yC%bYUT4F8pYx=%T%><|TlTI+5<|zQRv;RU77Qxg$ z+f~fSWxPk#a62_6mufr)@mYqi24YV!fyd?)3vpF*%;#WVO zF^|YIHB>wf>XJ z7yN-TAlFhdhy27xZv(x_f`0jf-&S5x>_S--8p%ZAW|Qx@U6_;;l7*+ydGxe~rk+*SD%kr}$ioseiHp zK}+YYeob#L^3{%lrqoGL;0d-Z)_pO}Y$!)=T0U@tJ~g5Ui4OJx3uTbx(Ez>_BHa7! zA4C}oi!1l&Nkgj6A*FXM$!|_dy|yJI%&hRKgJbIxRls&X|5{mbU_N^=C|wh7cq9#m zt?|MN+ae3YNWMWTX*XZtXp(|gc&2W}i$_dWUAi~`ncBd)0FE&677CpJEBJD8=T z?viRW)e!-@YcWzpmrMEVl~*SS4SZkOHn^;tLvF6i6X;{?#hV^zFc@3%BwdONF~2Se z0x9xab{UlB10#%{VwFB@Jk`4=k{ByBnyfr1FmU#84@A?kA9g0E>bSK>W`X7^^Vsl+ za7;iT`%`IcELnSlfRj>|pMF)^KV5Y~uy*7E#q+=#?q^wS5Ygv-ae zq8Z;bs<8LJq91q|e=dSxL%fhts%u5zZwbI3vC)-GbpDA4vo0IeJE;E`e#H%0mxizW@X2OfHE6=s*%O6*ISWtMr*b)3Nf zYDga{dhMy*lzKs+A*ax|a%O71`9P{kq5Fqa{@=uTitmo85aL`hn&00Yz{U!VthdA@ F{})i2Vp;$I literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_scatter_21.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_scatter_21.png new file mode 100644 index 0000000000000000000000000000000000000000..fcbdbecf588716c88bab8310e22f34d96b759370 GIT binary patch literal 1578 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 Hu0mjfO1u_- literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_shapefile_4_00.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_shapefile_4_00.png new file mode 100644 index 0000000000000000000000000000000000000000..b5b02b83b2cdff60f8a6e61bb1f3587422aee65d GIT binary patch literal 6911 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_shapefile_4_00_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_shapefile_4_00_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..cc485a785b06b9195cd651d99cca2df0517357c5 GIT binary patch literal 5130 zcmb`L<4w8j;EK?!*!grysG3F(Gcy1N@;#if*5x&`T2Se8_2M3(NQ1Qu9u>0G*` z8+K`~_fNPp_rp2o!=84hORv{y%BYyDU0hyYrqW<6M@W1th;BUVVC3y7U z0p+Ng;#))Coc%dJUn`?L{IQO9mISz$%T;}IOjK(#)9+<1%M*}?Jk|Me?1#3O)<@QF z|4SJF`co5iYE-`lm4$*DiiEuKT_qdA3aNE~toPD@Aqfe;`wu@~r1U9-uAZ)6o7CVX zoNuSZ0uXIeSSfcaD=Ytt=_d?_5ALtY4 z`v1LLfK5&m7WNGC?{4|poCFre><$gO1mG@C;QvGn$(UH?l=Il!)ug521r}A}+|aSg zGRL34Fi||y&^Fe~(_yx`&Kl$oVWxy+%Q!#-_I_=RYEPFE2$uiuzRi)?~iUND8rZEU|9eTXdao`d`wdqL~J;ZL2WBV$SLG zZo0-?bo;^ehXcXZYg+QcwQ#b>U^aDLGHLW~-S}JP@Ip^kg*)(%zbcNdWI76qm^J)n z^zpp}>Bwwgo&RDmVphS;qXk;IWv!N$Ic2Xwpo3XKWFQBWl3e&$E4EXpWv0fk2YMZRz6Jg8}op{yH!r>Bz)7&_+*hrFoOb?A?ld zhTM`2{w2T9wABGpN8Dxd_3f3KX5i+Sd7VoY>()Nsv^o8AKRkykw*BxLi1_^2_=uh> z6$N=AkP4;}2o56^#_5{d4+r`;5N9c zUFG;HP#o4gApx?dYgpK3^)@X11sDv4F6Px0r3Vk=iK>S{KhZr8+bLkeTChN5_on zDJ=c`zt3mgu9f)c!0SsPLCAgg)j!#C{okK+vJ=>lXY>n^mSk*{Z-9yWSA?X81PS7~ z`U@D|Q9hDL(wq3?GK81)j#lQicz+FRn=&DtVS=D+SEhIUD8Ar@-3Zc_ z&VQ183(e0Va|T62!a{2LIZb?4j*_QdB{pkWh=$;9F>N>T%K@|dXlz*~ zn6}!)I@i~Oox*kdTm2S&739M;_#?kv&LZ4g$D<5#^ecn2!1S(`j#ec@3y`J5J7I7P z#Tx29>HdelQGTI33TXYqIH+liTSj8EheOQ-*`loFS7<2(+j9_cJf%5FbUnz{%!_h3 z0dvYH8!4g-4)(Qz4{InWay*CRWUkRVJ9}RDw^!$>DJxJ77i?h*-PqX837kvkB$>#d z@UD{_TL(hNMhA}4^wEdFkrbT4*b?T`nU$}!RF>ckeT_J38esd7cfcMx72mpfy-hX^yMTpfYQFB&q-KQ6nrOQ;vk<)EI^x>v8ziWV&0+SPHF8rut6u@qUkW4AoW8<#(};u z?Pm6UKFy{Q^X&xmW;aB?zU?eC^Zk&(CfUdN1Dug@k?Pxqz0gjcT4Re_sSc7SH`vNy z?*m$U^LpH*PjMzdaIENKV^G^UjiF_-@z>%AIRk~~W>f<494FhDA701ok{@h^hV|rM z+c(9Lt|o%@e5RugwF8jr4hX~xo~loIkt8S-Kz2U*xrfKiIyc2Ln{`BvUzCUjo?P7* zm#tK}DD0L{6m;%7-Hzs3A7pkpdQ3T1s3ibOe(U+WdGXvnVZm`pbWUD=*uOzRB?j93 zN88t~YZ(zyudgKF>Q((&7*Z7>E$iduoELLfo|mrQE0nY1@+Y9rMJ}+aW|8Y)NQ&3= zd&3mx=JmexmZYR7F3zUuShHB&0unVKf*?PQM z%r|JSD6|>IxmOT>-m26$DzYYwgR0BINI_zekA1_+J0cGcTJW8l}UP3n1tJL4`7b#v)S?zkwd}z?UY~L zXj;1$#G1E3B=9I}#1!ER12U=fQ7_cd62UbsP0*6NgZ}-%!^)08Jd!EMP${y4FDAyV8TD1h zJUsXKnWcE%&RL3$_(~!xC`>MWKHbuo>9?9X`hdo!W)4VlzVA52LoVmAri?=6vx04^ z@Ps8bIk}|vZ0Bbn(g4%02XxWwuu4yf`koXOqFwRr4EohCyd(iU_s!El%_1&Ls1!zg zrE*hJ3I-22QEQxMqoZc#|M%aRe)MQaGKuU9OPtGQHhn;&kVEOJKvq^fo!z2zN;En( zf%)$TAhxiM?z8m&(ysLzHZK0HI{p?8WhOF{?yX-p=oU|B5Q=4^ zJ0Jhna;nYC+hr$y?XsE6En>9sQ10rv-sNR)e6@Q)izKb={O6}#cGT4R2K%%2znHaT zFih4UO0~k{H|&|evW4BLZIW2=?tcCLzSfqH^6%^vlv$RGvn?T+7rrlFCTEpZj~eLA zHlX$@6<%@xHG*X3J(G}!kkuIFgfV1e8Wr5COhn@!XF!*uYC(ifvV16sUsPpp`gM0Z zefVQ-?ysozQT$A;9_CB=g3FaxW+qdhu4gUQJX?%j+SDpnwWmbRb;r=mOj44R*7nF2 zg|hZX=P3vZQB#S7TPE@#&^|y&KKae|u^EYCn+nNBnYG` z8~4*q(cr5O&1*fscxq7#bPZ~3P3!r{~{rrqk>Z{Qk<0U{ouc&M};;l*Rw%9Ig z{T)3GY}ZkyxX>rlkJV;~`@mWsxa{RqYXn z@RP=}+4V^N7-$B^1Z(00cf*e(=0Fh}+?$O-GI5OBJ?NO%e0M!jx6S$&N6hw4!;XyZ z^!4fE8}R}4<2zVm5lz@CH^)ZY5CG4>rq`+&>;m3|qLla+9yy!#=| zgae`LTrb1FP3nx894&2oTe=;z9o2`=9ixo)kW;z|C9I&BUMl5TYhRC*qZLi9x}gjLWj zckXn!K4dPA`$O!`Fwg4P6nC$K@<4tQ+aV6(-j>r^@$#OlH{20hu&6{c-3?Rp^tk6Z zt^~_ZjQ__q40e8TFmf&D%4i!Lm8TS5bcLDzIU2_6)TqFq1|T?YVS}F5P1E}phr8oi z*#b&Qf;o@3%8rgYnTfIW|NY{)Ttfoz7uIGbr$kprS-5wIh`N1)6JWIiw-ugQI>J*&86$*GSLwUSMhTj#5jAhnG6$BIKutmpHBA(&}8vrDnAReQVW-RTu5II6UG$+hWPqMEAbI>CErYKVW@7_AhXs(| zn!EQ~C$f~}iOv8;_^0w1h%6${aOjQu#C{qiTtTYn+z3~uTU+K$F?J?rhPF(Be1WJA zq~Y#yWH?a|_crAm za-8|O+2hq9J7{La?*$%;`ur}aV7KQ+;fyISU5O90$9in7s4vrO>rW<*^gPaC(6dlG zO-{X3$+F~>IeFA3s2OqE7Fh7v@L0`5MY68jB96hd;9aEktA?S*9hC;mG$59BjcEEN z<7rQGS^q?Pa0e>rCmCjvmSP$tAGY&7-0P7bFTdE!@dJMm-h8`mL7v1btG3*qUf!`f z4f_Hsq7U=!sDTb-FsZR#6~m7WA7cu6o`NN_>cj>ZL3^7$_o+T%OEF1Z4?=i;Rb3kc zRmXuWw1Rv~k9KeUO41ac9+z1J27U%@Touh3JAX=Fk%*$E#pRS!UnQjp7+w;?{-V>d zCMGjY{7)LAKf7M$J}h~ip$K1rm-54;)b$TTWUwkaQ+A8x4OgLQ*2Od}J36BK1vJM) zw59n<;CfGGQ_ugLRUxriT&W~MB1%|_5^K)pjs)^K+-Fvy+)r6`fs6_A7+mG^Xt;ZL zQ)oGBY(|&bBYePOekl;%lg(?)vc`TJ)>1Hq@fqG zPfp8NVq5OrF;+5Dl(Y>i|2ZC3KSrWt?(MC%!%H_BU|a4ki>+CVTyi@(6)|U1r|0;G z6z#PV^GtL%{_4iG+u5+va}^~>)RE+UH#gvv(BxfhCt*FiE5{|_`TZhv;Qb_`rA71A z4a*eQeM3zZVrW2pI$?BIp{3+rYEXV!Ztr_=a$wpYv%@g*(X@~NGiJX3Lm+l^|Im^k X^t6j^q4{sd_drcaTd_jkHvE48nNw1~ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_shapefile_4_01.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_shapefile_4_01.png new file mode 100644 index 0000000000000000000000000000000000000000..5e1a2b1e281214500a60584d57889de486752f23 GIT binary patch literal 8938 zcmdT~RZ|=ckR;^8-Q5<~;K2#7xXZ%g?ykWJ!57zHi)7Ko-4Y1y?jGDjaEHtNi@S$; znVOoasp_8Tn(7!0HF+#_a&!a)1S~}bpcVqcJC6SiRK$OoTN*L|0s^2;5h$hOn|lU5 zsfUTgMU2mhUHgR{wb%qtxnrzzY|`nQdP7H;27JDfq%bCX<{o4rAUxgYuM;5rUJONj zw}c5q{bfTdjUf0Q53!ak8u!cir*H%(WWaxBe7JN7Isa!%uDUvyr+VC3P$pBm(i4q7 zK*V>o0W!JFAyVr3-O2a46JGE^QQ=wp_`S*a=3((Nlq18&yI@zr`=Fw$)Q-;%r)qi+cQ-`7sgqU z-SuJegz+nhC44ybTtBLk{?|MXb?;Qz<)twM0j{;Fj7` z)Fea`()#@B^F#%(qOnNfxkiEh*YTH6x3s}l``|b3V#8X(faH-(m08{_^$E(Y?5FBA)0ufKN7Y*XpeEp)2F5$vWbA3~qSy~V zb*tGX1bdP5S>hNUUc6$ka_Xa4fBa&mU1_U_@y8j7{)7Rc0xqqyCL z3ero)VLM=Y3z;cdllj=heN;`gSUCM@9U>DFSg%--uF{<@pAVzhcs!X2KsC2 zj1^K*=Oou*-4cu9AEgdp&V4R7Kwj&Y#2+Eflhx1e7)MK-Aggz&A-PC2wLV#~c~ZhN zxX8@yys}<4(wcRvp2>;E8lkTYI#2rkku`-*Fe;K~{%?5%5y6PoX?_l6@_Hh?MBco6 zHIicRA6yxn(m+f4j&wUY!xJ^C>qvFta&LnB((#5fE&jyqRL9Wh* zVG}hM=^5NXz@D$)A8vDSMEd#1!b>_LKO~E$^Rz%x9!J+{l4Ehaeij77yu1R8ulQu}i-5cIO>%k`xA z9j*kl(a@dVU6+YY-8%Q3fjw~=t;2W%TSSk69Gu4G03Aa?b(IrM)+0ASDvVN7ID?Xl zw5p16+njhXo1DrTB^J*h!_cF8y5w;*m0zI)Nm>KSxZ^@xyUJBT(^c+PmMH&ZQm0Gw_z#otCL#ynT!N4p z=`$a_IdQq6?3NBb$XK`qF@RUe8Y zzhQLc8012wJnmk1Sm10Z2|JNJ-gK(03NcK}QDhI5)jH9EyO> zSFYGW%Gw*RJBEFc;)V^PYz-W`Z{m;Ps4y_n+Qa$^n})ox?uaIpKUU}H+|FFNOYN!d z4PR^+e3o4oTW5UJ^?a8i$C6Fv-T<%U3)XdA3eD@GI&G(1jrZO8WXeryH-)LOZX5%? zTlPVq!GnKvEq19>JZJ_p1obaKOQSu44QWH|IS{u^j%rxnnmu7z5x6BqF!J9T@mmpZ zDxl@I7sGc?n~(#)m)g3OIw-S9+#7o`G`r^N{^>*4M6KkNRPgR`)SS=3hgBZ!1djRJ zQ{#siaKNK2F!bQS4_n@>8|#3<#0gD%dteIP>=t!q(**7fS1&xWG}Y>mKwCctS*vb~ zv5|B++TJVS@v<|#skpTEJK)BJJg$o{yA<5qdXlEvGDVcnd61LrsIaz~R~f4vvCFa~ zPZY)_GwJ2G>2u?l_nXnw>7Cy8C#IsY%OrI@vY zfMM9zK2#<{;lN{0;Cvu#)>qDszpPq-=^`DFrfk#{Uatyq#@i`JZBlQ_bP>?CcLLGa zDhZo;UXG-ji800amPqKT*uS(Oc$2FMsJrjK`~ZiOWmVMjXITJL7$X{5AVj4BhkgdY zC*=8fi>XRkFFWYy0HjprIk-{^y4uI^^q_>NRfc(bb9EPS^*0>ywtgD4^j*bPL+Gd_ ze;Yj(Rq>23W&Cb52$H2(`u07?V2x2^f9@dNPa2Y1KlxVuSwDvzs(@nv6_OEkJ?m<_ z8T<9R%M0}tt+7h3EHVYf$y3*Ha5|nc=vCAE&4YJRti2gjeT6y64sJ4%096*eyy(Y> zo~K1ujAxs#ipaWbV0TUrqxjRi|0IJ*S_GA|RE@%7e9VGwcLhyc(KxG-VATUV_qOFl zJZV1jdW&I=-?Dg^AFK8(`)L3Btb4t-#=DAJq1x`4h|TN_UArt#eejhIiPB{xM_bhr zT_YY1x;szc&BU_=31s-0!BaV7A0m-J9^PfeGFY{z#|Jm=CBWcX{uTWf>C$t99GT{F z?I`V?b}ebOdWr25!2`a|5vrfH^*#>;H2uS+LMA7$^6~g)_t%cQ08jT`Hn?T^icIOP z?Csj`n#Z5h>JF?`!fdIXTH$0(31cItb=r`DGgZ@77OIpF5yh83yPM(=1C+@Xb!)Uw z>Cl?Wuqrpo_*n0fINXlIomcK{@Ra7rN&KgH^M;eIMKcfB2Ro72xum~&yH8gJW)TGyNk zkg0+}W+l;k5eCC@Cw=*mYc18eTkgab_@EsAl}M2&T^zMr$u{2Goh+;{k-?zgQG64H z7Hy(JZ9mV85?7Z?&TxqcyJj>BMoD6PG-+b(uO58%<MmR}7y6Xw2 zWaXpA{;K=!wf13JijD`LKnB5)5!ORl3cHH{)T)36%!Y`UkvLjqiSApA^PLX__I~s; z?7aAC!GqSFfTHK;9-xS1k7Sd}t*)+dy~*&eFE7rP7+<%ApzEc=e1M#hrugtc>RWUH zfw#^C@id;mi$*L>k+nAGKSdS7d>aP%QRbf{JxSEr2Z7tGguU|a8 zsiX-Wy0I7I<}RRa2!-iK8D6pR65#4*KX8m53WF?@?c#}$nru@3>}PkLERyzxGO7$? z&t#s->zB^3q=9LBz$US-)Y}z0cistDPXB;t`(alFVqCtZ3zV<0kM`u6GGC_Wl(-iH zdON41M`EW^h*Ft>oKnkle+opIbMP(II!2&U=-XhbyE7Df$vNF|na-&d5r2-s8UU(J zm5VA0tV*!yXd9}1>dyO1wOjFWw;~}G{OXEpcQM~=Y+=VGZKmSg`J4Xb;FkXhKsAjF z>cyAHhL9c&kj4=hHD9bZ!`F>@{v3M|;mqHQf&|uS{sTCL=P;eEUj^?H))Ajv-+#)N z6NME}hdO9Ez7bN9iW?4MRVLvy-+SLosky{NUE!E$`SctdTR?9@N$I z^W@1trpxXSw5aJa8f#P}{HE%>jmk3#_Xff0Xxg!0DD%u|FTsyA%O1f-VIT^qtw;i& zAN}L`WwLS!$DyYI)y&);Yp@zy%V3@x9&gy9E2%YM<6h5wadiM|wj)Nx7qzOFri+$n z_ZYYj2x|s86xA@3t_P^2SM}+j^xf`7Iu59|VXmK;6-g(Apzw%?SXnv&YmD#;*I58r zLDMUFPyS|B1$%>kgXASQ)W1kq6RIBoa=k`Nj4pc|>u?wc7~Q#iJvkIva*um83T zS+6gkg4E9W6H(qdv!P?k3pX13xV?W5V|_O}pg8vM5CNNW@ec7TGNj68RGAVn2Zu@x z!0G3rGTCm@@Oe^wsUGjoJPg;libfxcTLx zMl>Tb^Q`;iRvXS%(-=@rUUdK`O2#1o;lgMGemR^j&=_q>q1M%HIXrT<{6vM5L zT{p6AQ8yc|I&%JV0Fin0cm4cmw&Os1&@h{@wMz1A+&Q z%ssd{7fYSOcU5*+m|6E#8t%rQu*eE)S0Eclw_;wng}Gd5wVz#kl+EHhGwTQBKP8W? zoOqI4WYSH_NQcw=b>FsoA}O0+FRlq`TTGLKemU3;l4p;oJ8StX0PJmQnb}fldqOck zK=q}9EUNa>2w5WB!>trY(^EHM)`boppQB0xYnrg4HA=S}sf&MMDY>Ao&K+}uC%%{L zXNiw}cWyWaB-8KNriTS{lzYS^eb4MMX=r|c0|hOib+Z;(>_M@`jFt4mM9iZhc^i|U zwTalO2pfzTtDxxU3gIcL^$=65eQDzb7=BDYH8@z(-lQU1?D~l?VsRK(%a*GXm7{Q2 zZ|`L1J|zjs4qmgA2x9N8%oku({H22&vLu)9I+!?Uu6|E=I4?RB^36h#<(#z2!S&4x z!$9`84&iPRQx#m3StB>nku!&LWBINk3U^Ces4rjLOVcVPDT2i@)&qZ-5`1hSEHk)a zuvIK|`@rip@&3k{JW}-dBDRiqxiaZ7x)~n5DaNjTsSU@TRP3zjR7mJzUL9IDc#oAaRsO~D9IkFWR2Vzy zw%f2?9D0B@nCgkMsMjHz<%PJa@iF|!M&;PPVDXOwLR$q0L)4rC8j(*>=#ZQXYmU^Bbj9IEsr7tS$xk6 zhf7wqvV1E`Go_$TcQ8sPHP~U=o;&88pF2?JYO(vI3mx2pcrsdlwKh|FS)hc;1`gl&faAi!X%?N&6sck_AYUIpB!ohV|#>Yb!fn5Ij|1V5HR$ zlfyjAvd!@RkMc~H2-MkR*Qm64^+I~5E^DaL3~kT@pDb^OYDPPA>7(VccnOw6?A#Yf z5!-wr_J~{@gKSZEW68RCwK-ZCu+wyK^E#Dk@L=uEGi#eKGZXRyY ztTv)0&KMMi%G%)(sph~yqxUhuowL>;S3-{%fH_keSy@}UIseThfwOs<*If-gFV9d` z{+-Ck!a&b)wYtT2k>~KesUU6Mz70XZIGPNn^X56^7$ErquNxXh2SdIpWYnZ`*U6R#Q2CaAs(_|@dosndQ5pE zPj>i|J)FCioY!3bA`U;I032O9)6A+$3@BlOFj>CjJSbk`(;G|@RNlO!MUcD`d2IbiOM58lP8?hnBV+Lyp?@u?3b?w~?|UmvT}eK4Obx)? zDVh^K-;)eP%f!~_o`pCQ+iMi0Q#ZC-;}G~D;0+YsLYAuq@k9jpyZYi#$o<{stbaxv z9@TuoTkBn6VOGn4DZkq3HM&4l1i7dpO0Xw_pf)Wh={YOZ%H!Umv}A+*)wz zn~IuT>ALfy%ZFHLN>yCqEjUr;Da6Z%2|?$5v62DP-QJokQisv7gv{#I!2PGHI`9%0hKh6{@C#~DND)8 z#|pF!v*G9`d1hMWeOmo6`@ZoT^22u$wTWK!ahwsA=Mw|~zmSn4H(0>F z=t{vgI7dKCCLk>|pvP?7!2RP=3t1#;tcucg{Q8mRq~C9(Acry^Gscg~dJX;h8?l7CM4|qc*j}2d$1jI=%omMYbdAQRd_w#b*3pQQQEc2; z0zh6l_`j*lmnQUoQ4!r2PV-eVHW@B};4STJ$1&m$V}pDP^zkj_E8+uR7wtQpJC{{w?pCx6bgrad2?s7ZL{iq`@+M(a@C|b76)ci;gn6wGm zq!ke%w81Um(ol}#cxkP4*%v=C|2;W#&xY!Qfrl-7GqSI!xllsAa$^0%L9tA7d>1BY zLm~ObYO+xOA@m)d0k{K3rj@q;$LO%!CfiaC$Lz8>9=898m#H5?q^mV0?2wUNHUdsL{)-gOIQ)LCw#Tr`x7y5oqu?+w2|?k1T3I-`_|sw@Pd8zD3F zBly6OR9ZB+h9LpQA$w5&Bl5HSep@pnx1^asm;@{xhRhQO_s(<134=;HnG1~ubw^Hx zq$vuPy=#KKFBENmC8Dg+hj#Z8W}bq$Lbl79^~}3}j2Hf*0u^qJJiC&)D-$^lWVixX z+x9YC3y|$GnaKt$W_lievXVq=cm%$#Qr4V*)bR2w!>0N`4Dw`~7(7axs_w5jrtDZ{ zbCEicfuR8~wXM;0$QHLt(Tf`?`$w|Mg7Q8;x!&Be*?{|}%?YEYq=TosYhGLReD6-U z6}kpl)+YuJ{#+$yGgU!Ui%q3r5%Gs*;pCywqs*}ra}uJnhZwc|Z?#0*R!FwtRx4%6 zMBib=uNfRo{VbW)Su_>zG3&E$fTyErY~0McAw!|&Z=S%R4M>Yq=8_Y2 z1KSE=S;jONI*EE*@FjrK@BCmf0!}=`!yyA%$xi+E)uFM+cNAWGV>i?-0DWm6k&p@} z=9p#{AEq9x@wA8;gDh{*>5v^~c{smr5z7bEGh(#cNcvp9p)kGw+=$u`>b|p(Md7vI z>&3GE8@S=X#QUI_KRqFbc`A8tl#;mD*F!~xj^&HpcCzT>kwj7--mgXL{ErBP7p@Jj=pzf*YK0DQ*U@QvP)mJ{D|3z*mJD@c4bBwT_u&qqGC%BcOx{B;4zR&_G9}_g zJ4)((SK-QL!u0ccEQxG}ltRk&3@iLdYS;xMe6N^YNzsTPyMA?-w3heK%Hne4yV{m zMD{Tcf!TGF@{Vq8$9#*}03DI(^R>^lwoH$M+XtLa=$o`XWP~;UH7J}KW&1{h(csTl zE{A{;?_&HpT5Yk<^)bW6d`koqza|0o@mcA+1sy`!XxD=vlE&0ka9p;&pICBfnO27` zT~GPY5QK&tghlc~LdJviL+Yj~eJDWbuiQV)l4DRK6YWOrl*6ozq=*rkK>n>?N1Z41 z-i_UPKMblBlP+92M+a=hA4O8F>;H_~PmE&0yiYQ=6VE*&@>9u7%1Vu6u-#3aO|P^GRds&d*{hfiN!mon za3gD?Blf9Qnidd0XX0<;$swC7q50GB=vgFLgFern#lMTT8Eb8o3le2RWvHq!jgY~9 z#dCeN#q=0H?`l~dc&o_cTbuT)O-Z}@LkTwx2wPA3Q=D2HXM6C~rKnggbS`fsZ#qX+7VMQVkde?dLatn3vD|DGb$b9w6Jsu+>ne_CTKzy{ku^#~9I zrNV8DC=dSeq=^s%! zYGW@z=E25h?^b<=F7_sT*m=|oFRyAe@3bco! zv}#`!`!hlM#XHcVk3Kc%S$srKHFv%q)`JZ&iX;gCQKt3V{H-Eey}l)Srmd+N_Mbu6 zK8kRVyTQ55yuN>qm1}tqRr$yG1o15;%B*=d?zZj}xZ|;85daLGj))F~Eu@6v=Qi3hN_E~peYP-6Tm-TRa!f}_u8n~5 zG%C|v!t9p}K5|MED-+X!VFHY$`HxmHG;~E;xi8_sX>Y6e7kex3y?`iBg7P=u5&>6< z;8%||W8h8NHrKSUW*$gD+cB?!S&bl$l%?2Z6*+Cs4H$XcA@}qa z{ys}7o)3z1?ZV3V{nMz@{piok8PrH{+3@jVZED2lM|rR7WkOg&V=?Lr`*8dB zcCc%5C?!&Ra*<@62tJvb%0M=?*6Biiea+cBK;V0|YV}A)dJoliv&Wd(n)5?e!!G{; zGuqsAj5~CZZa?KWlpU`~RZ*Hgcm9Qa;@t{m3!uU^__t<66F=Jq@5C zp+d^2K!ap;u472%1|_)mJPIa1Y!E<8RDaDuEUSHg|gg*uG802W@w-BVoDmbq&CZlgUkf;TgMsX zzQ|b~g+d+sy1#8^<*2yMI~^ih?RuU;$QpiD39 z;ZSC-TX^2pd~Z3wA;J#s`AK;fWY9-kegHp5ekwdmb=Iu9Wi8H<{Bw=|h(2qMcGm*{ z3=U2akyMi}i8YdR6Qcek5z^GI>XjVu4ATm|3}t%!G*u9Vzfc&w>u-jZ|B3sn#U800 z^GpV>tp0$m&B4nh`9j-Y;VVZB{pY=w5Fx6M7}0;}fP$_W$SE2yqG{m>UB-+6Cq~i; zRMvXk{ZI=EQf+5MKp>(N(#YPQ)qx>g-ux{qq?hnQD%$ayoyujEgmlxO$iIk^uTSU+ zlOfAUCCF9IJeuaS;0h-js50|WwIn-?DkR&yl|$Z}MH2fm9N`BlQ2zg~XXAe@CRuMN ZQJ@G}!HuQ2e;yVDMOigqwY1sS{{cQh0po0xcAmqNPZR7k4Po0>Ry-xCVC#6{NT(I20)E79<2(q-cT!cPJj* zoyYqN-gzHZ&VJb4*)ucup1TvNp{79ag8IdiCr=1~iXXKeN9+G>xc@!&4`2Sndh&$v z3Gkzgj$hW^ynhO00wQ#{glO9E=iZQw@+Z@fNqiG!={A`rBu7IU`-g2q+0tl^2iPQM z**={vpa~ab)g%>^XK|#}Aj3%keqc>3r7C|{lE2Zi6BMHJ6g!DZ$Lq{U0(0+<8TY>s zy=d87IFK4%+?1Eaja$x@J4NUGeqg0##1OfKR>=J(u6y-Vp-=4D|Gm&1yu~3dmXaFX zv$j!Inh0g3AdR%Q*D&YdR`Y>Hz1Z6uL&LcpK#;_vc;|f>9Hx8K6!U__je z`4m@@n=rM5)~pIokf!S|f>J1~NWZK6r0bSQ_EU);SDTRV5Q5!gLj05hH%iW3;3IZ# zsFe#r(>dWCzpT8#NA(u~yz7Yj;c&YP)JnUXd7!=Y7CsY$(QSE|$8rDc?7UCrnAXy5 zQTTI3rKF59U)O^+CMmO}b}emkiq;1(HZ}>#eVm}K^u@`a=jPi3&+r_^b|#waOZ8%( z;o*_EcspgcGKT+B0->Qi9o6lk9#Es!#p^%MFUHDEt_bhk!e84Au%>&}XPTePYQ`xg z>68h48t|DD=W(5E^F1Y&j}Zok5`T(9xyfe;I5!F^s70k97Nl-LX<55-OL|(X(^ila zk##a21T&W^u9#Tc$*TsKqsw_WseCL+U?IVIit=WSH&}o>#Y;gagAmt7?~*(oKSp+H;&f+^h&WXtK}SxF zgm=8kdM(G!GnfiY-lJ2Bd6!q3Ik5bthNDpwTypsS6Xi?CmGKdrWRx^w<49p;Ag@c- z`rzJdVWX~=mVU&LiUJ)A2j-0mlE3-{lWlL=dg?sW=vZ%^r}Fwa)qC`i>y_U3@Lma@ z>Oi}6?LZ%eT>S?kezeCCGPz_HLF>Q5$J!?cpXw@OK(^T_Fc{z1y4% zu?SRh>f3dDh2F?H8~yL$X$BE-ivg|;N7PfanCamwle#tQ{)Nrk6}gB>y`!U?kVRBB zl#7(1`qxLN@>R>=>vxp)=ggsZo3*)k?vt1=^W0nN zsd#Mtw}+c&TteS-Cziip(MZb36n4C$Z` zza}d_o$y7RX^wu3oT;M`Xu~X!>pf#M4JaE&XM=N2uDA6IU$7`q7z&K_J-hLbCG4mh z8*`riy!=6Uacd<4nQnFXnMt9nlsBY3g-kLqV3+q~BVEE!Ir?HzTbG4b(}NFtJu#8v zWL@p2=Fh&$y+2_U-Xp-Rv#}d&pYDOM z<4}wIO?xvWENu=>`lVA!oCtz>Zz(1wafz!MMJA;gM5XAIMsrd-ZmHj$V%isfTI5IG zoed{wRt3e07Q~44iY`bWNBACAR)X(6fxyK;b<2G4-RbUjQ%9p)-hfgc@@zFaD*B?w zu%u*UTG69mK57r<+Th+eQIA~wELS-jaJCSk2%T5RHEA(F4EqmTe9y#b?;~l)R`deA z(H@v^m`|y1IHBIb817ZoPQqd*4nJ{vr$a@&-S#IDz@t2An+ZreOeyBG5prrrdAqN= zcw@Y)0%rzAJ#x;Ri|ZdstizU-&BsRGP>21CZwhF}Uk~ z4DEnwQq84v3yWpm4Wm=dMM}CE4cR_I4zqK421mlC#=lBrf?JNC;h7&n)TZEL1A`_) zJ&zBg%!L?(6pLUV_}L-Onp(Z1x%`hOjh8A!4Lw>wKHB zDNd(CB3aNX82W1PmN?dEHC`TyqdXmdOpX_vEcT- zQ&zi(c7EKg3tdPke2b?pu@c!h2}W(^oUSq4=GDu!EJ%9?ewBLI#vvZXi-Y${{)-t* zxl#x*adxj;E3prciI5;8r?dZ@Ugvj|P5d_<71T)@NO#K(KVBDhtk9+meMJWlExief z^Q0}x1pk(hmM~2GaUIYVA-?m@E*FH+tE{Z?EY6_j;*vc)9)xmgnpUx#El zKGxWoO(*Tm3izTL7LaPXJ=RMN?~Dpupds#0?LedCW7)K#$aA-c@Lz|$;LveyLMV>n zgsc$;(@ahow~SSpuC6vT_$@!Ru?aYDaD)gtoo+FT&dfG~PiTU#FOjYdu$?LOc={rB zVgF;CxoVe6#hZ!X+JoQ@uGz7yH;qqWWPX?Xz(EvE3R`eSX?ewUn7M$XN^1MuKB|w& z92}d06jJ!eXX7Kad~TWL4&Qa0l0pw9%I9F_eG%~K)j!YUh3|hFcOoti^W*~IVJ{n- zqUGrVD|mwbJluq=uIlL6J80_J{(h2b%1Yt+_jQh6=XC7`>TK2td`yZ&GB``~Lus7s zi2+rW(QKz69+8`{U$4uf)xhF+)n*w^``c;{z7J+aob0o5@yaH3)2oKIbeql3@cfUp z3c(Zl|9b5D2a*~G$|_-cWo<~1sE62{QOI4rwdC%~gr4uK@q8PIZY(uieVZxl)n*PR z+t+!1tFmcrqxHt6rNwrr#=l-QGX**eL&m%&VyJF4QjM*(GIbB@?hdj1GQ!O-XFLav zC1{kRm?C78uC)2E@;fkO^u+vN4q~A1(p##Q4LXM}a%r8G>6@Q>WVa5Qf?Ltm-k_o( z)TUM0_#OwYQYMyI&?eLAs)aet)rnnyy6ce-F8wbK~*Z zbz2DwIIRI?s%DyaM20@I%d%JyTe^nQOPYir&}zvE%Y~^~!ROK--$9Cy+X70n_jV}o zp1V6YT*Y!0#-jdkosRA;$`<+Xuo526U!`S}-|e;Cg+J$f0&?lvbIG+^?6^!dv?X}I ztd+WWaBqvmenDX*f*#8DQ4?xWF>F2k4;u^rF>SM#U+>%yENw|0_rAF&rwG`1Ej+)B zBkgvAbaaBx8^+V4MC8=sqPacx8nv_u!`R5kE}KF;XKZj_O^q!#E)OS}x2?Yz33&zx zTmHqWLvJZVUfX|;hJJl+JIJjY&~a0)t6!F7J=U*wUolLm|ci z^SDfo<0^cm8W#E8>(GZuSBAq6?YGHUr&YcuYq3JDAMvhtXh_AoUe_bl65PJitnQ%~ zrECpbLPAtkZINS>8%3EZ5dU>@Ci&?az5c%;UMns)I0xC&wOz;SYEu5v0Acrh90mb! zn~k!iuHeJ5z45`Y+4Zuq{^CDho`55trV!-R3-U+mVX|pEc#l|0Wv|qlsFF0j##6hj zI*{5wie$Z?Fehc%=not;e#zOFbe0gYk?|OECt1GfgKy7CpGa*$!k`qxlAC{N2pIOa z3SwUuG*2hL48Bmd3^6Zk`P!SVO!ydoj&)WM8PtT*&i~|j+G?tuj52P6&dvq~FJQX! zfj5}cxGX!AKZ--g4^j>_^hrwADqP&%5cAFi$rt>^V_h5Q$=<)MI)FLujeLDP8diU@ zet|xCp>I7v3p(`;0;n%8YDy)2^weNx7P<54r7h5}4vy6hFWF?+Ixx@A(%)`!KzEaK zd@LX#l{|?F+@EoEjcgSgwNL$~sqqu0XJ+Oi|KQ0Ei0v1>RtGm3p9O<&zHPd?5AxsZ zmDFggJi!A06Lw$KGZgHKc}{>uATd$8K0s;krQ>Rj8!rFa`;jng@go}qC%q_f>Ea;X z8f|~ORPrH$F{^Zwo@7l#!!Gy94nuEdM^{D_OhXW3T5N1(Wvvz6mQhj8b1)t?Wi@CH zH(USZk(#t=b$exQ`r)RkG@Z!hkb7jZnUHwxj2(%3&%@<{9!qhi)coN(beMOOUBA)E z+@i-b=cdsd02G^Q`Az^{z}Sg8L3BAPE(@e7-c8@IN!>qQMgoP!xq`g7bHb6fV3E!n z`eREk=F3knVN9j-=i4Dq^K2F+}COpm~? z&c*+^aHjG3&B6wRK}Mf7j$RX1gL2(=VOAu3HaT0}D(Sv07~0LO-L)TmZ=)AaH|lft z3iXRQ(WQH|3AAEu)|FP|JV#>1BWjG|=LaW&`SUHQY~7ZN0m>cV<6{AVK9tYj*8>AF zbeI{t#)j$US`GuQcN%6@MbC@W^^JCTLWJ(qx*r0Q;rmLL(o0h87<(HYgNC0|N!hXv zOZK&9HUXzpHsf!;QyAZVqkK;7*NQejQYsxYznUPDwFN zjJ>dM_20x42YXV+PKx%g-Q)>n=isjSug`NHy%ZaCd}SSnwNI zcmlm_5bjJKzudL2d2#rNhXyGKl-DXYALyDUA&O5;h8xN#Cws8?l_)Y)k(rs*r;$`k zt8=`R5dcuhqG~_MK3q5mM`p@7I5cnN*Z6zdJL3;aHs#(;96*QKFHQ(HH^U_Ue0jgz z>1N^nPD+Rt&R1bVL?IA*H|7(;8=Nc44%(f;#sHVTpT+!JmiffV%G5R0zEN5%arnie z>obyi4hB^9UhwAQJJ%*dk5!nK*J)W5_%0@>fG`~+p;DPs~q3w`{$vmVDO8ZS`I6+|v*aH{!|!T@1pl%dSc3vLTMXmkN}PDfJH zR2o6vuD33jBM$p7>*+b+2eS>QQE~g<8P0Lcn2Q? z;Z2LjH%su<7c@f658%SWMX<3C?A)iM`l3E}rUgA#m;*KvU}uuE$ZHnq@2`TRII2r3 z&thGvL`G&CCo7K9hp8l{n>sc(eMgu(;wO~h$}ADt6asy0V&)1_zj{utO37P0-aK%z3mRV#C&H$_Id{arF(D9YHrmY%7yE zT}d5i%Df1%ePgGsc8xP9_Twz41{|#K^Q+ZJ?t5!%)s6dN8`e#4Po%uAPTwHux7(n~ z$~Y+_<>&z=*LDXqYfDR6ISW7;I9j^|^7Eq$!etCqxDYw&CgPJ7;RrnlbJNCk4Ruq& z6=lq#>QrWM2!+8kG>LQkS%dB{H~)=enf3R7O~|BSRlx;h5$(5fwB5K|qH|?cRSlZo zOB^dsw<88;VIYg`F}FY1c|YIm&d&sAssAhzC@XJU6?x8^65Slm4(_y{tleUYC5rCv z=d}v2AKo8`?_kIld!*k+Mr7pvmli!e9-dsLJ84!XZeKq|a~f|f_=bHRq5@>Eb(6y9 zm*|83BSCVQ{MEZg_Z_LMvK*%&sREKwQ*8Go?&iS=_`&(Ow&`}!u?Glb$?NW(k;%fU zq>Rz>_V8TrD?qE&TZYkzH^9ou>p_`cvBEx|+Rw~Dd4zo`#>WvG(ogG@UaJxC8b$8= z*Hg0LuUJ;C9*||yv+p-|MUk7bNIfEQT5>iQ1$wqjp9c{DRPnl6e@q%sF7P2%$8F&w zgOJ)6Y`55eL#B_90C$DoK+SaVQBFamTCXH8DyL<3ts?EX)Fab(lU4S?D zjmf>jiklSF7tUXk`k20IH-{554BKyS$BCoTcxUG(rf4LlovIxiwv)Wf0+BTqw#cN! zQC*w+X{*U9U4wU`GlM*tymB^$y5+x$F$=~5?6B&n4N?O`xMSQH)RTpy2S?N+u`CSEa_7#z&%+M?5mC$GG75wqI^u@l zGxCQj;@-(A?!!2!sXE7rs&FkXZk#70-gAW7Fpe{HeuQ$p+}_5S!6GLQd&z^3E{+gh z#2rkHz*G~O-#M0);xUE}3|wT2R=fg}8=fvZ+z&*XblBAj)TcaaSA9XioB#)yajk&% zSD5JwV_vWu{NY!zYjD9~kfJJ(7u^$}60q+$@BUbv%T02$&I7-847n?Bbeb4{$0O{T zGdqhlL_0a>#%o^`ReLI7kV{~K3d~Z$=J6WLV%cUlK)qE8^^rd=kn;k4MzdbbTlKyo zlpKfLsjGMmuuWD8f-*9wK_IgLU?5yujX0K?|8ELgoOC;!RHDL~izzWrpziy9N`egP zegW!9Ib2(4oDv^o6j_@oV)WyEjLKp$;ugz!`e&WiQv0LkSNNFC6SJJrtXt^b$;yP} zf?7?JET^hR&vih@Fz_(`i3IpaGx{62b_r1&aRN_qh|Pk`)dI-$d2NOZM3YCmOMWF< zti8{n`f3^kkv`dx7LT?ckE0WEd6Xe;gKE=2bFHh#YDJd3XJ^zjHa4PXI_vA;bAHU^ zYl+L>0Vuii*@!RI5%1rHt`TiSJR&r1o4if{<)~;oJHp?D z<}seWV3Z8)Ceo5^mIytORm5AFl}l4pP?&BLH3{}kd(X(s6802J*3zQ=v)Vv85W%LR?G{W_b7-@T8xri9y4{c|}U1=p!d%;+4+{wums>vwfg{%FJ z4bO8kJT9(EIy19tLO&u|{S~DNk?ruShcolMl6Tg22gzEG_kWz8?$OlMcU74##M0^E zETObHi=ZDu0uHfrR-V*>&Fj8 z0Ehf$>nAC7>3GX@|H1u}?w>i9S}xEFt`a)`hqrcQo;3i!6(8R6aVw`WLyvHaxi4vs zUKEr9wUV;MxeS)CF{W-`C-vf`_t%mi72Do8buoBXsASB1Cs)k6n2`2hCT*`gc-TNF zxhGAs40V##Ps3^T?x><5Y%eHU==pmn1-pHI9Ah?ZO_G^bl=NrEY>ACc@oi?`1)Jp$ z>e5^k{NT0?+jt3&4;ShsDs?pA{_0C?fM-_@nLI7#oi&!Z9l0?uFY!OVmMkT9(Vv_g zaViO)qd@;LYb zdg-EcpQxD+G}zsV@2lb*8zH-rw*k8DuOM9*jBo^egd|3Bg zwM$nCDi(@$eZ5|x`%KH=oD~%qUp6(xF|{l4yJdc6&zBv)C?8Z^xz}x@UJra%$+L~G z(RB6x+MyerG+l%+4IRnzO7~?T6{8hgfC-b)aXS+kp=kk9W@wkUvl$G_#fNv2(0SOajz(beNr_wFp!DHZpD+-~E7!#fsB~d~XQG`6LB_ z2>yUKe;1&>SaWMk-aWl5 zoxe#mxB!M2S@)zp%56||>8})s^~iUeboICXr<)!9MS#1O2==m48{y%@wpdRHKCfSE z)}OlPB@5habBDvmH~MVYvowOcW0SaSY(_Ma!rIJbwOUFU;U0tgQ))(WibL0SOFRQJ^U2~>9dk`*Va40f4(YKRI0a8^v)Y<+`qyJn6+iG(#ry-&&l`p zpz}6cVH9^pmKou6JHC-UFX?V%D-FI~l8yQy1&uNbH%gaSs3B>LyviNJ(;~(KK-v5? z6Hz(Uo0iaEU7y^2*ZbIYLFoHzKaakjfQcCFc-~wRv1uTyx`qs^LrOv~tFD~lNVBna z<3xPf>@S~adkL=wAKr;Z=C>K;69?mqoRwc*vCWW-v25Bq)vaKQHB6Lqr1I+sutWVa0|{`Y{)uCOEjDmss13CcC+O{hL%j`w6AOo`W#R_h@B#I&k?DrF{5 z2%>xZGbHnJCsR(zs{DSL!p##7HTrrffNZ4ZXxODNn%EoBsT@AKR&CtinY|Eqxplaz zP-A`{W}ZCc3$zn`jc+BOY$!|Yn(+G#b!mPKO9MK$-zW-XUcTmCNx(j7UzsYd+a6&g5$%&HH~2Qf&4>s*JuFQ= q>%db0KfU<>))D+~rNQCDQ=9?}NY-I|`LQJ83GkEJ$12&+-~I=}BPD+T literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_shapefile_4_02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_shapefile_4_02.png new file mode 100644 index 0000000000000000000000000000000000000000..2eda628db6a4ccc6d82eecb802995fdd447d20ca GIT binary patch literal 8178 zcmds+RZ|?$vV{rm!QBbYpur``;DZLYpaTRL1`iGag1ZHGf&}-$eemG!?gS@5I5~Ce z{)l@Y_Dk2=)m^*#+tt-8LPJdf2a^I50RaI=NfD@pfbfR%zXu)hU*wLKoB;uWwp9rz zt^FnIEc+yJmpwYf+;ZbJWr?JtpV+L<~UI6uyDKr2~O#5?96)m(9{YGBULD-~nXFWHTCiel#dY&YUH; zr+%p8t%uWNvqjjUF>%m1A02E8OXeXCf4U5bngDh<>EjP?VOvL*{t-3aw%ysSzDmlu z{C@Z_=T*nnm`OnV9kME*1yi_k@qZv52*ot!w5(+BiNbUTDL$Iut8qZz&t}a;KV|s) z&CvxU(&8#arJqba=S=)Ql~moQELtl;Pk1guPqJteysW>9YN+gVwG>jp_;2iYv*$a3ryRgiO>7tSPFI=+7J5U6mHX`g#s(xi4~r4!gUz#YdHGC zBkY;=;!~biW^UCW7q-Id?BJMXe(;N&VU5eYtBZc>oFYDfO92XnSd+X_7S)6_J^=xP zkjz}B?5&Sn*gr^cj~(+@zq1`UP5!)y)d~p-DFys`dwcqFiWRN-k1XF+rwX>mxqALA z*9f95RpZ8N)$@1L`Kzs(ZNh~AU@M9@w}}a!#`q`2n#1YW^u;;5(C0T4VcuZ)`z&z--1hL3*(zS^`F4VB{ah@Ew< z*xA2?P*h`nX6+qceKu*rDwMwE?&By3K-cI{ih{g8NEJ7E; zb1X5a<~we@GP^*o0^fW~5j-Qy<@wl!U#Ss7c?br2aD1pQ6aJy}G^uhx+4U};`YOhU zJs-@R{eFw{XoP`fVO16ZC&6~S6b~gCBK*mnB@WD&ublfp|mA3 zWnm7o$=n<@7($#HQ@Z6&R=rt|q3#^_ydOKnaFVY){2a$iSXS7|oLxyNqVojS(E zd#N0>@^Hst9C-;j_VVZ6H#BnVKW!#Z5q5S_8}EEwAu8 z;I{XR^C8k_?Omz4K8??6yG~!lMviUB7Pw$1S7ey6)0S8cd}E|R&>k?erqvm;LZnX? zyZ#M?5{4*KBald+J{u#*aiRuHl%2cSC~Ex}6w1&ZbAD3yT*2cx4_=2?o+^PuU#QL zYt`JV(8Cg*KBo5M7viBV>{n-QIH@P+mR&giRVsK9l5>e`mA6QJ9?h=}cvb$Srs>4=mzFQjtM zUZW9mZ&u&ABVl?inVMjiuq3HdYtNk6U;V_;9Wp5DsXG2~T)K1nP9uKna3LW-qs`2S zms1UhwJ4Uou3@qo@q!Ad1u5p_b<3!Kd8;tZ{X?1NraxjPugF>s_<*R~}Bm<@)AVlH!o{f197Bo%@} zw+{7cF;6?EU>+_Yg~U9RR?_3ttXQ+Qxi!AePJ;F863YMH{F&yw)9e0s^;lfRI-VIm zc)4qL9QbW4GllN~{XC4JouKBOjl7qe|GR_V+tKQ3H?98Mt6jB7=a2{qD2$)w8S`q1 zMTjNwx-gQq`BSs98;0JP_QmU?M{Gnl}kLjEaeB>G4qv07AqwUHCSLo&(4O{n<(N(*0&GiLF1 z^M#D5=!gyF(7P!Zgib9`N2B!h*aV5h>l7GpF$g01EB8Tlw$4so0Ig2ii;bPlXq2iY zRRKlnNBXfsI!W5F(`#TtTzN|)tib!{F;O*PzP5Hm3OFFLdC^Ef9?eUnm5WJBv!t=G zpsp!1R9?@%JvYK6{U?okK4-E}mFU1yNVG6b)nN1UYshCvP?=!zhZZrHyLNk}qK3~C zEfUOqADW|&(czMj1Z#fqQZa`>BTWg!d*{XR8hCHDeCx^cOBNoQNM0nsb+{gR$&&iR z_d{ncuRixA%rTo3!WFrB8K0fW-MFwq&5#JYR~jP$(F8PEHe(^Sgm-L%6F+PNR;OecbL6-M20~;QM&dw1_lJ%knr8oQ<|H(`s zV=e23B|KA6fYQcQ$~D6ME@Tgffs+v{fB6U7fdb7iGk4LbI}_j{<6ZDqThtZ7lnRm9 zHj4?e)k@P2O~CJT7n)^SsVHX|wK*ToQfqnUPi7(YUj!6#PV< z?=GscQC_7?w=g~|a$3N#f)xDKFYO9@EY~XwK0lu&pZ)Mh$kXFk){duo^n%s(o&~>a55nOehX>V^p$qeBRN=74?>NB#_EY3^ zbH3|jj@~}^2O&BA0ZTIF@wSN{{r0V#t>^qvnubMQ6})!x5|fHL^2^xRs5v-_1sQSd z7teb3L)QVu=KW}=wFmlu1PY$fXN^?-5jE{#6qIrhnTAlLpJ#GdZ9eb5OtCHCETk=ap6NB;5hgu3dG~HJ z{W&h>svzf>LBb5 zb#zOM3CLARIpuS9LLtHQsfSDh?}?aKDha*dG;~axlRbi z?rD~b4PIycjpST1 zoe4-P%c=b|ICf635*$&zmMVdp8Aq-GRQzC#H@0 zg=fuPdW9a^CJPS(Xnt@1UD=2Nt-1>tE}Y#&mIue>8O%wRvR1^IMvhoz<-d?AO>~fM zzE$C@KM?EF3$Huqy2lO5>hW<#C%+fs%OF|U57@YXR|D# zAi=i_n*SqZO5d9Z#gA;iw& zHZ-#KX2Z+KttAEHjizXXk=U0PuMiX}%atVpIHggE1t4?o=9ge3IEJHkJ!XqRfxwfU z=3&nUX@0LLUR&P&u)1yqjxiRQM$Fsc1TxS1R zl`FG`o@0sA!|t3(yt#54CZGpQQkmG*$027T1*?2N+Ohw|7AJi06D~K|mQ~Ru)%rFD zFZqEb>Cs_y$8M^D4czY2N*%yVfG3&5Bh1!sl}2o8V-I8WD^?wUH`j`0hSjJWwdKB) zXtzfvqpxQ-X<2F#4vkJ=MSspO>cLW}YYMNQgRpkB5H4MSree}t;om*TRXF4J{PnNA z$NHy%z(2W`w&AP4gp?U|0GVPA2ks2WF6>~x4rMv1-Gs^05y?8BDay5jEhbEqmI-Ek zUw$kn!FYnv<6_BS+6Xls-~b+?0=k3r`52ClZPdCk}_wVMY{!o!>2`eDqg!mOcFQ zj`m^8ouQrn-%OnDBR>$c@Y%>4d%>EC#ZBvOZB5(PEUsrlch-HOM^ZItFO)&MMV;ay z3$mq|piqzIwg!6R+4ZJKLiZV>K$mqst@@aVXpdnMvwZj7ltl)Q$lXuPpP06;XL)Br zg)Y z4Xv=oW^tvAqgjCK4S@k}Y;jL{Ha+e71de2kX9U#RKEE3S6PND_VK~!Bez2B3y}?_T zB5GRgq?FOp%ARbF)YQ6a&DMF3+IrN-D+--aFDZ-m81$E}-t2AJn&Zb~@r(`4Kz62M z62;|<5maue?)u?FiXv<#t~>|f*tr+UpyqImT7pnm8}r(C{z4DRwXH92`95H)hSyN;{odqzNL8DbW;r1-e_ubq5c} z%G*?O>d#4}?$533v&~*LNQnB4azsv3+MaC8&U75p1sk=XWJLIeXJp8t0(Db- z4mfDSG*$jJ{ikD$xgI>(2Ju=uPIdq1u-Sai;nth539{Q)b;_dk|NfQbUxGmf0BF?#Ah92fn%WgA|4_X360&I$Wa0N zFcZF0Amj?p@Df+^axt_x-ZKtT7Eq z*v%s5eTS#ot`Zj**1z)ANXWEc&dS=@Rwog3WhLayhXTJd^QFk0}W@zvcd9oh1jc zR~knRfY6r#=Ul@D8_6J{NR1;K1`ZXHa}US2HG}2&*z1-x2|1Y~x*zqkb4lVNbFYW_ zZR@j`Y<3VAa3lf9Deb>s3m$knI(VJUe8er(giIq5H!TdIakYC~n$NnR(X`2Zk~p#^ zV9pS^9WmBClF7D@oN#^t;>Q*&S2<79^7&J~fHD5L%_70l+F*`l10(eyU#To@6ja-H#P3gb3ps?9`ZC?4C(FG#>&jFiC^t;b3f6q zN={w1u2;MQ~Qa8d5{s~+Ua?sullqqXHa$%elv8on(3;e(BIMz%IArn z9^y2Po6U(AO0cnCoTE`9i}t9&?~)^nCN+JxWF*#842eFNZr}K92Z!oh>P`-tAxSB6 z_JLFWj2zE%tQU4)$>5h0&&q40^=DOe7iiDWlqNlv#k)Cc>KaUxCyg&7%u$ojeS0_V zMidhl?NIT9!KnC)wbjCzIPU$WD87Hq4%XLP`VBG+2e_;}s-isra;qqqH_pnXbA^!b z*ua0v9CS=`;^l6;ZH4jkjKWK&D&fFg#GIUJ8xHWjmAVVXk;F7R+HR}SDTqJ^#VD&K zT_AGPJ|6FhBR2omQhzXK+DwiCwJ1aLo{4iv1eKG&4O=uZ(79~R{ltQRoT+{Sf0)P( z?@7u1;2Po4F-dJ*;_fgEK_d?ZhVEV4Z%d7T^CeoT$t=uVI?5WZD@lI^eW8 zJT@aG^DIkDbC5DmtF*MMIM7@x=m-|t4`G6*X(wuQsO%Zn_RpxOrLiWur5$4v&cM<| zYyvDP3nJJ2o$I}3Dctg#boj=gHxT0m?O+wi*v{YNmdI1l<=4Y`RZ~ZBjzM*)FXMS} z#)cUP(`_mWp%GYS!o1!IT#?lXd7V;SA)2}=-~O>unEBnh-TtVNTh_q(gW?uU1Uj1_ z%3m%)$KtavT?CFy`Qm$7UK@4)mu==3GY}kGJ~$_i@E6%FA>sF-vFDz-&T@>3;~MMt z$$0G+RVr`Lj`o=!7eF+E)VBb)*lHF~r8H)cnF1QX1nhJiF#DVW6E6pWYxV-My0LYaLW8~D-)3sgi zj7NR?rjXj#xw&HKHjhYL?cED!p3<>659*dcZ!`$v%tc0@nr44@Fd)~Cyg!Kq1WB$r zeiIAzG>YD&T?$~7<-D{!8Np+{8e2HunlPabnaa}mZEZ+`ajeLHvaGJub)811xv>dc$FJBRE z?HMBrEAPI*nwG3Mk9-qNl7HvBRw9m%1eY?P2ZjM}KjZsD3$cvGwp07tP>!cOWG&i2 zt9SvhH#M+7#WX7F>?4(BybYM?`rNTQg$8Eov!{3$#OA!UpG@T*1<#7d9HJr(xRmA? zd~`EZy=m^X261pv*rqO*8@cQ8tbP`-j9JKq4;55Qml}kQJgg0fVY**FBY{h=mAKy^ z0v6aE0I?h2EN&0AW(|ke8XaEgW)eDP#Q&`ccw({O#k z9J@#NzB;wsbll5FzHxOTjq}zQ4~6JVT=>jae%^7tF9x}coyJv`yf7!5&qX^ZG^d6v zKxbPT6k9#=0{s*@#>buM!mY#~m{8s}rAR>40@mY)C#W15PIoY_A|9d$Re3k-^0H(N zjc=C>F{K-&26VKDYOaL%0f0_ z*{2&V-NJDAGp-yY()0m1mvsV-vK-dJX>xuo}9A= z2$hh1Wx%$Ri8;4yqiR0B(U`0s0vzR>PRv>%m#QsS6|1-*!Qm3inImW&k%{cR z#-Ly(5T`Q}O%1JpmMqpZZtNYu`hZF68q!nEnw$xBDcPy5s(f@ER3z z7;Cq*+()V?D&#FGLD|wg?U-o`gaN2_Jz4TLc?}AcS2@36=P}rJZ3TI%1!ryTINi41 z9(1k!9#f5KKaZt72V8RHOrsqk32Q8X&q$OpXJr@8>%h`rHdekB+mpWAEJpEZeE4>| zmMImV3~W}sv@?aFsv}bBr3S`xQn6JeQ~Q95yPXiRGnk|`(!@P9Gl8~yVw|F|rJti* zB}(#Ffy|9vnj-$^-Px>Cqv>lGQT-GynbsCo*eJ4H04;dt$Q1?5!g1*{6=c8L-?9`TwtM)~^`lyKKP@*fW(?{c z`HMhe79>Y1bSK6Y6gl&*IMW#d*&=|8VW6W0zNva?vTht{Flb8pi69drAeC34(i~H1Bsw4l(??cY4$zwtv+63uJY^`O;l>51WL6 z+Am|e+f;7gti1{|I)+3VF_7KB?2fBy=>-v@9W?D{as1HbBtjoRv7R*?NB&!x3V9Nj zm(@lf!_84uf*{@>9?=YP@|FR<-6V;ua4zLqWGvty4=KkQs7ek0FAX`he>Wwzr%(KEqT1wuq*TFPR;2E0A$A%%;VqQ>X$yao@ID7>1jPwMqf` z+IU!t(R0=K>^*m;MFLn2B4px7YQmgXCJ*8@Gnpowk~ZJB7`0@E!vIbp)vR3m1bQXR zSp<(jGdsqEQZ~G&VfL!Gr;u7;YgXf%{_YV3dyv1u^XFd)VL3eSjxa{O_?Yf7R^|DC ze*w7cEhqc{$t?{WwwIo$A?_~*sI$O zuV!n5lGJ%Od)3yVZ4n0Nzg_H~_L}$K%aPR{PLlZ1PXrch)I}RrkeRsoxZ#9nq^PpN z9t)#<1Vqa~f5=&T!*BBlfHo~vYYOeqnc00e{o^aE2&@VuP=o3FkDSx|`h5OQlCGBf zKES$RpV7~_B(*E#U!M8|22B|EqqRR%QKvhFy$VU=o2sqbuhqn_m}ph>fy;qSDc4MR zH;4|G4w)msfdI5f9t)%_z?B7NF@35Z#x6dA* zXJlaDXS201b$dYCn2w1eE#=B=6@QiA$dLBT3$yDh6uBJMkf|nh4nqU-GP6FA8S0QC z;{7WN?eDLYkK;)sB7W_U9$3~kF!|3oSo6}D6c{ba(xE-&1M+E5>j6!x=e_YF@8h8I zR|m!CH_lP#)zu4%zV2N6a`0&H(dOTYM>7vMBRBK2p%v8GsVu!8jEDJXVe;5#4$okp z>2bsg$%^vHS z!)fTbxrO+{UC`g=1U4?&#v$ts%CGuYaL#`<9u!9WM?KmZYN;0dfe%nbIFJ4pRIq|ZdoQF#%`Ux z$xzuJFaGxa%ZsZ}sPXJ2V=0j~e~0-kUrx@i^$7#*?WQ_EgZ@VQ`%@^j-ZiCWmPvY% z-{U{z3EJgTs8KtE6w24h zFUZIlT?74Jm4$BZ?~gQ zB4Af@t;Mf;29L{(RxbyvN{rKWKMU4)Sxn*%zf6riTZm4X4gyHh;kW7SiXI>$HFQ4 zlzTKxc$_|azg=1c0XfJvmo%Uy@OzHqFAr57oYo&ZZ*KzTw33CF_-YM*6|6PZ+T;G0 zZ4Gh3)vlyN4wA($@mTd0*7dgW4OJw)oH<1Wn%ETe%xeHYRtIkQ|e}X&=Y869TGI06JOiFnPVi6HV)T zS`QEH>JV!#CdEa%p}c2LX2Jzce70Q#v*%e|-tMq**3PP`xOUTKW7TyFWt;PjlT-0N zInYm^1Lf=j-KK?~KM@INz2`P=`&Fj}E5I?{ceFS*C`hOEaOI6TDbZe!I?61?<-nrJ zc%au>1qm**QyrhTqbRZ0l+49s4T2iQV9$VL4ugp4n7x_);wX{ExAgc=B&+Y;8P z&eRGKxWy*v7joEjwlHlD#9WMpAiyn)B%xy1gB^eH49A6=1|3IANS9L61()$jCo1a zffG#q$9qzVVHMfh zJWl0`O>^l+-mH3dKA@4Lw2SXuv@d`lv^Prf;(I&>04%!r-?m%)fzDA>$+N9IUySnG zt?PL^dcXRXE(svixQviVJDr^SEY{*==GI!wfdUzdRy9R${{@^ z2E`Uq%|0hV0aWD`sT#RG=CFd4JpDR5#3oltNK^z{vAi_*_eE=`1EhGPkJac?;?xim z9;@JaH}!s9WpZVJ@LRg-!M6PElE*e62@32cxR6z^tAk6_pFBnYQFL3~aGhXBaKD)P zlsO|Lxz7jXmAobk<*GuD_+~v@%TPX;)R@StsYoFW9p#dto{56Uxsk`6ML)G<%Fhmxk$Zdu|2*>LWFhu8^etp4V#<*WeHp94MXbDX6dJ* zaB^v_OpmNCQPyl^_o`z>R>Xc2aq>u4Wh-(YslX$ME6>LhXWf!%ojX+aU$eyxgv=-; z^TWjd?xWS8ZUMzFvd8E=LR?xY$co>5j?V}xM;iw?v3ug-<44}s?pX%Qba`$y3+t^! ze8j%{C%*Yw{8aZ{x#y{mNM?*Kd8&>A7o=KJyt(KgzFLIVZT^N7FJw#VFg`2W@fqBZ&u1d;auR&a9(8)8I&6s(uBR*JUr z>MKpMJ3K!l-Eq^sDRUqu>->w==jpOFvXrM+cD=c>+V$&Z+ro{k??uO_B5rhly_68> zGQ=}am9P>sx9IcBV!E)%yJV9k(v!Nish2+;w50r=&}mq7LAtA^LSgmg{YF_d9q+!Q zspaeHgd1Qk@dV?v#)Vff%!>deOCVC>npIi3&nH4~yGa|t7^l&D zID6cWSxoL&VJfqLNNI#!<)g}qd9MT>=^N-4>PM@kRD#~?B+*yQ_IFq)X3IGx85Ye* zy2*$9pABZ>l4c4w5L>{rK2V@oQ<{UcC;k9fR_y7!K^h9zz4^Hpuq<%g_dGSW9UK=?y)}B~KJAY>Q5?8=NgGxhW z2p7I?U+Uz?mtf3aH{g`>wmI|AK_Bv^2F&8HtsJ9{7`aHfGA!G-Rd!C%2y)*77qS^E zY8JwVlX8hQlT&;1@Aw+9E*(Tie znADw`CEI8h8%|-(3rfCX1|5Peq5L|HpWqLElxsDsDfy$85Qa{meZ^)xK^4hMha&LOR70u_K=Y z)Pu`$qMCGI+lt+ZFn0UhiQ4d3zqb20l>6n+$Y|Fv&-yKCUW}_L#<(XfSwv1Yr-An_ zo0d$FuiCU6>*U$>c+;GC!ElwxW`gdDORv)!s2|AHu<=T=#-Go~@Jf6Z6)0DlE)KKd zdNM#OE;&j#`HH=Wrc*cX*B)Mm0Qc zNfvaRv%IsE53)kPqOMGn_A9e7bO!Ehb8eNULS(_A{5y@9UOVJwa*|s^ zA}kNaD>7qhEQ&luDwjXKBR1##Y1kvxQb?`iR=5E>sCXcU&kfnZAN#EUchLrZB0?ld7<*nh#F5 zC8KDIO=|$DBgorYp4h1?j4Mb`*CiLqp{(FGaPWJVE%-Lc9+QW+gFMmfG7YJSaD&~rQ;@GCgy7_$m<~HAvhl2Td2NNt$70QGO z+k*CGZozM8I#Zm2O4GaxXuV!^T_er8bqTCtU1i4a!;pq%Ah5+S%JtI~W11A8ve2Jo z!B`xSI^K*`Qq+GDVzh_wwVZksZ;iUTh<0t8bE;Wb2%F;xXhaoyng+9yKO73wNAg?@ zd4QgAr9e!3g4kbi-;TqCMWf-T;E)*7x!9PZuuq+5pkh&PsN~*BUg%U8Yuh}}&GG`R zIC}LY(9uTYdU}ed`I?Jf*9@9GB`ZAJk)`bj-E0by!E#Xml?7hp)a+qZ;%l{h?H3Qy zh9l&^ge?jDhq~K<9fl3*xs(A`M z09gB9UkF>V_WrCV0w?^~MWR^%;KcLlauPbPU$#;tdH`SnOps14hMXZv>bOM*2;nSA z23JJ=KHBI!>Y@z@7R9*!2v;ulcM0my+k5u@o)fF59Kz&XQr)`kE?tEE$Vsv6@r616 zX~{Go>-fkOsW>cB||$IeqlqL zl;<_PhrRyHZZS@{d`WOrAxUoBC%BaHhEL6;?vEb@DTYZ^D zFk3xwd0VG;?rO4bp;x#N*1796N<%Da#q{PfL&8A!$DVvzul3W|8~1ows`Y>Uc*aL= zcY>4K0*y`$?HIYqMXmri;l+rT>u{)V_)D|a1q!HI+y}+;&3rS+NI>y4_AFij9wXv}tW?kuydilF2M8#-Gw*wj2czOVn_eE$nLyWAW{yp<8ROOJZqlkv6L z-gXo+MpJh^E|2^S$P5WcSXH@QRp8W^mC>S37-K|?_IdvaxJaayJ?(8SwhWW9y{H50 zEQ$(ufvjFtg#pyuiVVe`1%^Ii|M;-rfx1Y-IyaQX^nn*dL zF4+$HMd2{YCwtE8-3p6}BVX$qpaErU@E-vixq8>Hzx(f^on5&+!hQ>Lm@9FEHI<<^vDfD_zDjTOoApT z^U7Z_*qq|$$(2ncD^2P^zlhGnInJt=D;~U3q2;G;i))0{N9bIhvI)-Gx#LS#nwLi4lU zq_DaAYClL2tC5`S===kv-xh68c~`;@NkY8s*&}~U)(T`V>t4F}Wom5XP*5@vIl`wu z`m`q~C?3Eym?LZ|Ov329V(@mjG#&q2Yrgt3h*O~yK7sbLgtY&sEBin2p-IZqpGJ)g TY-<0?K?Yk(M~gZ$AJqQ@N()sfLg-C; zClOG=bsApigfTpH=#w+=<`JFm3$DpLww>|b=lPd7uX94>*kqy}h%pITDMqc}+5OLG@j z75b$?JlDZ@V)VD>CIx(zWb~8jCtKO2d-S*58i8CXN&gqY%fF9FfiALhVkNSdH=H*X zH`;E>jicns=i@?;Te)RvzqqZtvnXg$(_YCo@u5L$H)&_Tzph2J6_Oe)j@W6(Y$A9i z$)*uRNC*MYQyo7Tja7j}MR}XgWPu3Vh6z!&BS+pY~bE$QBHgzFC0b z9ue(JmA3zxC;P>?e`|PB%h@tZ(5bn?G5J_t1Ecq1 zf2!$GXIwL7r}SNg}nW64+g!`EINj!f5K9a}T4%;#P`LjA47{gk8d)#(C*V)duU0~>pw03p}9zy<6@>9$B z8Uo)<%BUdU0azQzUAxr>%IwG8LdrA(MG43a63P>9;Z2e(pKa*AvV3^v_XX=Of7ZpQ=gehcD!(sS^_NDDT%NEq#%#{x97Xt_j1br;7s5xhj;5iNX z{A|)?-ml2x>D}HjgkVv~ZJmTP%E~CdaZ#se?DmOGPkO4WE15S#6rfRQ4RofBC)@5R zT^rcA>T{tnPxNAE>iElNrbi9?%3fMcb5`F2$C7Zc=XZW_Gt&X9<NXe77dif@I!LfGW5n4DIoC-vH)&zo>*HB>l$D%1ElE$0k@wQi1s-S4wS| zJ@4?QJ~}*2hM&MGasaK$eQsilk2v(^R6+_o4tk9`o$+l4GCh#|do*u;(5J$`K;m(h zklg155ZBmF?k|BUPPwIPg57j4OPH$`P$E&NG1wMDSa>IF#dGlSk)CM((hI$_SjtNs z!?>ahJevfRDbfCGi}=Zk={rxGP?qO&@RKJjXScmDjCTihM4H(O_?O4N3RkISTf{}b z_8(51D)8(Huzh!1{kP~o7uB^=rm{}+n2SGWCbMN0zn}Sqsp7`p($mGj?G%cN zcJ5|5^Ql8D{Nz%t<0k|Z<-R7M!S&^Sl+oIbR0!y&vg{4|i~JwBbqId??#A2(i^ky9 zWO@hPyu0NSJmzR&b~pj~j@Ahw8q-}So50`Occ9$hra&2?r!VVezt9C(&#sJT-QcK~ zU85|$kBBbQ5^VzIfAl|Q-WN$(MRiQ1%0`)HM5 zE3Ih%PYAoEc8jz&{nCLoG{Df-ppOi;nqC9&~n0TU=LB4DXOk_bnjFWnwrq*{(ohjUWmHe@c zwmkW=Jq|MQdrz4}(%AW&c`c_2=m*H%T2gDHiIwqu3Tts#9X@m~x$bJy^9DffaDAYW z?ZBKD`CA>^j1k=Ryu{KS5o#sXBIgz{W;-f}suD`_#(>3nzn-q<2j`)a0=W1ti9KPM z1#Lw26~V@m)WkM+#nVsrubNZb3w5=xT@%wLa*doWjzVCfH>pz<8|J3v9 zVc@b%Q5;Q`KcNv88yF09YT-D_h8b?Vo?j-hZrsNHrZ37x=!MyAf8JAWfIrdU@poDf z>v#>`B_iH1>#SB~qfCtM>uJdy$jP0R3UBQM>s#o$NtzROM{fpy?-&$YWvmKoUyt{; z*S$2GqE(z^S?`lBm&;aQ>2rzUeHo1MvUqX_*668fB!9vKsSA~QT%PKBt{!l?TGw@| zNGvTJ8&Xh`@Suz&mD;sAVdqJhB6YyK9hu}cW|$3A6)ZT*-9_65U{3mQ8CcSCQttQg z6ROtdD4L+Yu{ONkG7ia1r+S$!nyf97U)tbsRN!0n6jZW(BJBTPy-a00AWE7^-^x_P zYxbLY0;q7;dk-&XAjFeu)5)!}9ENv?{)@7E98TwQuOg_k?ns?wocaq(bg}n-fJEb6 z65G29+*cdRl5f*%qJ)_ITdf#$W?4sK?eh89h3{1qs()OAI$pud7&iK4CvA-c`myc#oHl zDP+i3r%GeqC{oY9Yr(s(j}rFw1DX5V%nx(eHXaVe?IZ{+2j01zw0z@(=aPXQ+hWzw zPUivlpPj%_{3yD&LOqL4rV?$rNwye>tw68Dqzs2XPxkWyUdirul;m6N%I}=g$-0oP z8XTmjgnLK-R0$H17`S8?R$%_rB>B&ntjh@6@s)p<)z^+0We9$yqMKH9!2ijKujG88 zU;kgN+TQjg`qr+2)ZVfuw_RCmnDt4`yPfT zj3SL!yP&+LfJ?Nuu+BY%3{#vzN7nig_%@`{QeZJNzueD9@v+VK;jruTZSh@M+VK&U ztKXn2wu!AXk2UYV${(e{6Q?Eeees>PkXdfniE=trpH5Ko7I{jAcEPAtlZ#3CahQ^qGnvsk7a$LnW{Euun{NPEkBj7 z{9a}9Yl)yyuhWpCNrW^ zaIH42D=$z$l`_s%Q8WYICL0#^Ijg!?#Xd#UT@&)eWbcCAqny~l{}(AP-yd@_`Oi)j zx%i`%$z{Nm-zug6xJzmV{m(Ro(UmCi`#Qfr**5aNHPR8XJ#1A8(z}si_S80J9bh_uk(3D~D8O ztZ56ip=NhA&}@HVJzRkkUvP}l(nR+TwU4I58aaL(_+k$;c(HmPW8?iLwMF-yJ3r0o zer0ix*6~-~{HWxCLUIl1hh9*L!F}ZBtwj`s`jpF&LbUULT$DQ)YJ;qW6=$UqZ&sLT1qR4-J&CWtd! zTbU1k3ih+tD<~hW89ag4%QiTN82d}<>^&c%S#b`yXwZzV>{&B~WmyRf#Rz&vgE;eP zDso%$`+SqEn7T#W4>sxKZB~?+7?)%dCDYkNy_Tz)DRm0yXDykVOSQwZG;N9Kye0G; zM@YK6fpnqzAgVKHR~IGuE^u+dZ^{A^rIUvHcCLp_5X?mtP?NpyY68YsyT`?!Op;yJSZF znKUu*OU94kHIaC%aTYoU&~%=FHN%~vt~WSUSoi}^&;H`;I>zWFHH%fh7is5C*k&p} zE2#fih112y2g?-bsI>vccuJNM19i5@Ll?~J53SbRwIvN43t9V(Rw`yi(q~Y5!YwoN zN|ssZ4Y!nn#K2dDkL&Nz`3ckO8%-8v-E8DVGUZ4+SQ9~Q0C#WvFK$jz*YF<< zv~3cdWhIxq&KRO_r~)xE;C*i*%l1dF0@wF%LKX}i5d`lwUB4cPPtWR|qSNfsNUk4) z732Uvk+zvG8NYUg3#H)FT&DETkEOxRtpp*4>y6Jm!aNVcin(I<%Y|;tY>Qn|o7q0p znO3eE(AC#J-3C?2+*Qft8n7|5f|EZrO~vu7&2(-O(c48bhkd!Hq^%^ zJu@%VeldUflvb#uFm_uLna*+eEi!Msx9R9H@6`89^S1*cit!JR@<$&zcFA2OoNX<<934{ste2Qt76DC_MZ8ty% zzHDa+M}z)$Wi1c#cWkJz6!T4f`1biVRw6edNErfgL&J>Vn%TTY_suGBRn~BHcXQ6J zxGQP%h8Zh=z51jCTPpmJV(GzzQ5e<-uH0FM`^G_y4eJ{>ntG@(CT`0OB$A$&74nrC zSu0=EY>jlUVo}>9TW9f^J_6lE6qS znVPzRY&@`&R##JL3v9NS0aJG#!0Ma;6KH&GL_K6eO09?SnlI@5Ehev~I4!a}DG^D7 zojj}-1Gj7T^>thS303Z_pin&&VhHbf)m`Z^c4CcTKI|D5)lzx)Jy~sNLQr^O_sshe z)Z$@tK8spDl+qt7)6&pKOm1BsKVOYy*jY;-RSFN3C?)TN2#HDzcq(wD1|PZa^p9$X zz63VZtA6y9ls_c8eDMCuzrm#f;d!_|#u;&p7?YZ@|6<$g;yNF?0~u}A39}UVx^tch zn)>5VV^nw_X<;w{k~(i_0lpNa(Yiuynb2m&f7j|?8>-XG+ua!|b*ADJl|PJSZ4T~; zKO&QCc9q%@)eMQGgg}?7tooxv?-_V@Tcwgx;)2$x1w|=Y?EPPTo!E~^)SLckjqRLY zE5S9sl_#cxQppuR?WdP#w+`31FTyX?8DF!yFczB_ILY=v0(>ATh1t#M1iW$?H`Uv5 zt>D>-wHR}aTkHFBaTeucSMgMhaaTH1*AV`D>#PcQX>wM&5Gw{&OWnH8X{`np683Hd zP@^mk#En~Q>O!IzWE_2rHhb@Tlo+L&iM2r!-{vJnM{}Z>*ywwR%Y&Gs5aknl2Y?)S4W=-sC)xKGK<@&;0^PQ(sokj52TdqSMCEYy4Lj3$lj-*8VCA7)vl^>UC+&mUx64j~9Inq;YIbw@i z5*io>1~Fz}rMkyw1R#?!On+I5*|R1eellw;PsrpaJYMg>sl+4&T9%wkU>T;Vv~1i> zavF2Ov=A4G>8TelDb%8KPoe&j_w|@w^NK8vH}WHdMD=TnVQ#;(6lWxK&EZJWwO+nw zt8?6;flnALOUUO1MFGvZs7o!!&RH@#5$0U(hKv%NVOTZ<>ysJU7j0k2e>Fmy)7lQa zF}L6Ku_!v+WKNi-qN_EL-<9gYl;$$-WF^_V%n@LlM=+6(;v}gWB8pu>jgD!zTUa+j zet=C+bH+Wg!3m=MMOL+cAw?lPd74Wgtm)94G6FVdtBFf+X z+U0rDyiYgUS?1_8_gPH-*U1mR@sjD;!-TCgl(XiE{acGHGx}ikvm7!b~4U2WS?;6&`8v5_fjV z%A^CoMK}31DJ8k9s36fCAy(l1Zb|glR3Elp7s4CPZ{Q}TCT#FNp6AbhtO}ckmaDPF zg|TN>3%1UH=k<|oeMFoMq)P+J&JS$aweVP8I!pGog zR$ivd4CE7V4jNrc*vkBZ`YhS^v~B8>G!GB^FXlpN8lBK&U};PdXkj9BG)bRM1nH1a zdBcmH{Et!xUZkk~P~gbkc;=kJ{xF~dVf{jLMP$9sd*pL${84(s?LauK0}NHVHT^MtS=U~JpPKiwvKbmda!XN* zNXh>us7jsR!%JP_SxotvXdKb;P%V*ZYN1%SY@7y*+e^9aLlejBKrA6re;#WbETwRZRSu&ncku>3^V<8J zfz`CSzgvX-4xVLaZi*M{)4p9pU$~H?_=A}Q%i(qFw1`(++l0$rIil{iXQ#Qqv}dC( zDyIUbaa4$!_GpIMaqK2h$mCRSlDv`r-9ZtCiS zF#tDNeRWzi5hfeq3IT3Zx1KPe@Q0T0M#}!kMO?3{(~)(25tCc^W5c(pTIXs_6ei7= z>0Fpt0yTrb`MbhVT^>@OoYb#?z-dayL;5vYuz&v>ZlJmuP%WQBqw#5?jIIux{n{Fw zUoCp27Lv+bs->HJ@_KbQD~nz5uUxBTlemx8cSX`t$s+*j*uPZvEK613B`FCXw_n3v(UV< z3-J|!(5?RpCkVk=+zsEc zcJEI2?3;yOZ0%97BMBUlRtz~}1Vxr{2@5ueY`u{oL?cm~XbBex!*$+gnDk}Ugp4es zpl>%tq3lb=|C2<^XXvaH!g_^3h<-<~)3>X>Mx}81PfxPum5L1@Zoa-bXw{J#`n!LM z@3s%V4j4ExoOb?#}4T(vlr~fLyI5}E>0@@Sr&noD(2sk+R{q^Jit6j z#-OYGIXV4B9->_jw8h%jbvI zICtl&B+=xtzbk*Vg2;|~wr<*%{rPzvZs#n1+`ZPy=_PE?Mw$~z>^@T=t+sQSVNA*F z`%|dkJS#Z*^}SV$M9OU*1E^NvQnB>C%;mDcpe9Zgq9WL0}U2??!Dukb>ho~j1Us0viOW}d6&p(%|@e!+}^ zfe5eT5(3HVrJW&*hxsQxrehORw%A=30U59pINv>@@S4IzM$VsC!wf;FE=w4l;5Xli z`cby;xY@WrMVGZq*tsg1gFov^e)Q?n9gz=;5||A3hwMGax5=-QL@88VU3@ZYWKrdRDTj-QvPG_Qho=6;zZ5 z-HP57g$}wG&@t`lV25nSTG}Jt{XT zW;ldfrM*$Bq?ic8zs(rVezL4V>|nX@sa4-W3h|&#p&x7s^2y`1G}E+)ey9TXPnQV# zFvKjFgA*UOkuj2e5#-9?2Jc~9k1waKJkH`4IHY4bmx}Yt=FVN~ds;#T@vr7~FH~09 zpCPabb*F=LhG&{PXOlcX89+|u+!&gquJ#PK8l=B%hd*<-xnvM;_ncr{NhsUb^$Yy` ziZWtQ zndC6GMc=J!cF&KyxrF zIUZr0ob%39FfBT0U6+?`gLY*cGHm#-?z-$Kre?cmJzyh97&gIj&hx)!(NAK&jHO&s z4jkC@<)!-r1|iGu#s~4Yz%&V0A)6!uBZJ}|pOT|04YeH?MZlF}E`5f{{(Z;D`OUh8 zG+W&2ouI;^7tA!o^i<~=>JZTrQ|c9YAL?XwGDpj#xPJ%56&)_*W#E+!Uws{B2!`sU zoF1tH0$mw?F#We?GKwhZ6~KBMaf|!_$s=0V9`UNh`!81eP(ph!HFmn-$hkAp#?pRe z=6-Qr6|@th3JXkxB(?r&)&4U}p)hG_h@uxGs~vx$b~<;RVf^P{Xvk$X=$_N@k@v=N zCgwiGzXW#cf8QY$vC^z%G|JBTNi2Myt>A7V3}7BlmEhDM^Yb~QgMHpYPRAxQe*m%c zL^I_GZZI`F3%!B4Q5M?jj{GEZU>@c)F|kF5i#UL@1sNrcW}XFEzM8vupbjgYjNj0* tWAavt;`zUw>i9n!ANl_qeY*iL0dHrT-}@Fy9ESlI=|OcrXg_@Q{{RsdFvtJ^ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_silo_41_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_silo_41_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..68acd5d4b78038110918dae1198fd1748c4ca6b2 GIT binary patch literal 6820 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_sph_2d.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_sph_2d.png new file mode 100644 index 0000000000000000000000000000000000000000..6b6732c00d698dd969a6093fadf47fe40173e8c0 GIT binary patch literal 1461 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_ss|PZ!6KiaBrZZtRLlm1%!y ztk}pQC?c{&VA7>Shm00Hnp(kmZ;4n_Q|r>ERwou#W;Py`f;CFre2@M9oS6OpN#!bG zi=+7u_xwytn|}B3zW34>b_Vh{gwN$rRCDU+6i8BPnL#o0#@VU^pDkowu@+p4tbcvR zlfzKZ$)`m?Sn-Gp8BFP))$Z-<+7{1&ny_)^`*mp${_M(SXJUBWEjbm$oe)lTmFo}oiiNwSF<0mQfj#YWUU9X+H3E>=1sTG@t+s_ z?|1KmGylVO==?5w{mY!cHf8@x_5+#U*Vn(kz_EWFkU3rc;qblzHjx#_TlcY zEEcKv>WTX9+vQ&|7Tnrv{BEw~L;tS~5$S0y_W8HXO0EAKKEwWV zdlkbPW8*{Z5Q+WQz`nBsnr&sQToVKKa^%%@&5p**1xFv0va9Q0;`cVYXIRRwoApx!oKS!os-OOPzy86??)!|~GT&;~o7=QI z+cNlpB2WEcIVd?a7w5@IKHLssep3FkN{(T9ZP~fAz_?!ojr$FIto{oUORF@zdiich2`JsY#FBQY~YyR_g5?7_OX5HHji1&_f-70l#f2s^Woss z`X3ujs5Kiw))XDv3rq$d?r%RJVyygUDcHjwzM~|WeZD7HfxcS| z5j+m`qOU?nZm6EEhujERx#{(1WNmL<$7$K;v3Wx93ClJ86MD9Ff=(*v&Hk(t?7ym+2%qr z_oFAyoA>|1!&Ot?%>N_$Q={}=^_qI^pZBE;W*g}^wyB=jz#=(K;jmCjL=%s9!0M0j zRsPcgrwN*;?e!9BbDpz1CbQ3U?xy|cOQaGvU)y}K<8kt_$ET+*P=5WSMTh(TD$}(Z zD{4h}cBL)Nyl`zz<@N99^gaL$nvlo|Hhsm<#fR7LFI(_wUc{OWoCk^~III%k_BaqK zcBpR+U&)jt(F-frx5`G^zIc7~m8;Dr86A7`m3urz4Ej2z9%8-`(iM8>?=Mf`hO15L z2F&cg?%7toxLV1yVOPNm&FOyc^!L|DdoPH-xt?K7O5Mi~rgIuEcZ9}WXcph_F@2?F z*r}U(>zDb=aniJ@I}&y(QDzO}zmCXrPKu%x8OG8f`p3?0jIyjg&bjkg@PwsdhwQfK zUuRku`TPT4-HY0i8!g8-Zs7XC5WLs_gR+KJHe-ZpOE7!OF4XV7oer@Y zH$MGKD}2u*?%A5T&e89y50~9xytD7s^fiB9Ts{@2ANC~ksqBvB-)EWjSgf6MNN&!n zqf#zMUL7jl`~IEnmIcv~*?n6*DnGB7@p|s0I}0pU6qz2kQms6Bu4Uil3c0F3Vvo~R z3OCp^_bkrWnG(09#_PE8j$I-JXHVTe`Fr`3h0RZj9d!g!~+g8Tkdxro!5Pw#eI zJ|(Ysx!bhIdhH+2uUkH49$}2(j}JY6aJ$mEDOEEL$LL?P(F@~yUbXR&zjpP~`4wSr z!zIEP<6g?xXn*s5n)`nldTMLhz_r#t;=roC+5ZAw$=tp@YyYYelT|h01`nkEAMUsQ qare~Ojqei58pXjW6Hj>AGZt*yIeY7K8#Z9hVeoYIb6Mw<&;$VQmz0+P literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_subset_02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_subset_02.png new file mode 100644 index 0000000000000000000000000000000000000000..cf277c5e47b427cdabbbc4815140e2412601c9a8 GIT binary patch literal 2412 zcmeH}>pK$+AIDcNSrSb-G)?93sM|t9nNuV=G&DrclVpw)HsyR9a!zD7$x_H+PTgcI zhvtcp!{)Tuusg+#&2k#c?9r?H#q$q5FP;~_>vvtB@AbWY*Y$h#Nwc@Taa0^E4gdg- zT3MPS0DuF~Ujsb2Pqt2k~;R9AJo*pQlwGpb|$j zLAUCkJ^kz(+Mtp%s&n+}5Me_kVJ7Vu#T^*Okq_Pkco^4zC#(#bZ?}h}cJKOPVNM#4p%GG$e}wRpJv}N=@+qj@hgD;wT%gI%=yWNQ^nlN7qk#OsZYah4 zO`!J1cs92?>AFsn6M6-HlsF$-jgS*XwaxMAEn-ruLKg3t7Zd0*z7g6Ax z`Qi9N<(bv})J?xVT97`YSKk?Xm!LAGubSo!nE zD{HFgQMlK;0eWxfnAE|z>8U8^M2Ftc?;ZDL2q~yjJz@S^P9fpa;Djtxw8}f#QuVGB zxCtRI0QwQb$@W`c<|?AN=PwudDCdpreRuqGc?C49c%MO0KT_>S`xL*oD+5tn@&El%l?g`TYu)tzRjp}YAd=ei)<7{JO&#O z{UDK`PZr}IN)s0k540ZPdrB#w8p(?Y4=h~$@rZaoHsJ4u4WP^?kW++91Ws3$zGdP1 zQG;)@1Cf1nw~ zb7rCsa%eE9Dy2s}C{#JvTh8OR>TV^aAmY_(d)w3)EI8=5CvA)`EC>kW>D{h?N+mDSf+3!Y$OTbEb2Kah zdxBDzH6kBV8K%sRk$b_^lF-bwPi$f>N!F+D?|GVJeHz+vE;KT@3`1>RhP@Ah)Gj0> zUFbm;*XdVlZm-QgJie(rrNinBT`keLBRy1t8wmW+>vidpbo|)c+^Oq$MXxErEDz(w zb$GwW!@}+ zboT4Cx?Q6x#hbFrtVjavx`k3X-w=QwQb;MijK(sMeF~^yvOm{Ot^~xwhTaNqNzr~! z7F(aOQXA_ADL%}r9M5lxRbQMs36bSKr0l_<;mT~Z+=co2`=>Lw#9?a}cWwx)JQ8=JvVH#NfbEGc!lkU*z1RF8inq)Yo zP*UG1Q3So^gyY3vuP@i2^c7IkhEz)!q2W-x~w8Ql{MG-(S%-h zAugG51{J8{cbQgzp>hH4Q#;pc=Zny_rIPw}uhhGm2SKvhhw$Kbw{DH(nWQh5Bx+vZ zq~OGgs;s6&kEWM08wtT6*(-7A)VZJ*!S4J^+M})@^1w^xvCWD}K^L9B^9m0uQ~A>=P=2p76qT zL$HBhH{}qz?Q=+i!uu!@>|HUc1HPS29+wLRSNtf#6EhBabrQ&HIognj4{FkG7r3kq z$s+=tx%M{q8~7nN_%sQ)>(Ajv>90jc=^dUnE;NaZ(uKqudoz-H7yPBN|E+i=rZIP` zJzE3f0yi)WJSukEL48qE$$fiiK${QcvN9y6x6RVS)6n;ZEmvB*QrQr2LOoF_!sV#j zjaT?3q)qCfIj>=jBXG*(45qTHoVTB^Mhex_dDa4Rp9^iVYEv3QTeCO3=KD2Olc-=L ziQ1RLwR(udy-K`zpR4MBhMJnV%)?joZ}k67~j>*dQUP?VJX^&O~M|*C|ZoG z`@TVG$^7tDqTB9QA!bnCFaxyeJcB6(&24z1)sH{`^!)W7Z25Y%XgeH z1OEIEe^s{~`ZvHgw^EFX{@;wNMkxzC{77 MuG^Z|nR);IA4m39A^-pY literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_subset_02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_subset_02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..0d65bceb8b58231393210cb24d91bf7d5ec05ffb GIT binary patch literal 2090 zcmd5;`8yMi1KvT-jdEm|Fi{AhK21Jm`#Q^!t#3_)n%QJ6NkVc>W*?R$_fd{asJWhU zEzGqwB$7M#6-qIo@bUdGzR&X>&+|U-5ATmJg(ew-#XA4)aOL4MF_$h{vXmqB6`WjLHOIX;i-0ewVH)QQy{_`IR?Xv=JV9@^={OZjH?sGEY%<}h_j5$fYs&!6c59cCc1On7d}aOSj7eQBHtGW5{*fpQ;M!_n&2gO z`^UPfNZ!U|?0{~DG>a8@Z+?&Rd{XKi?}>2Q(+gc^>`NGr5hXuFD!rph_LyFAlb{o= z1#-~7;VXZD_;P6z^A2~tS5o?v%Hw+3F{TOJJLFi#A=`)PNsNa`e5(G?sn6YKREX8d z-72y5F3LXFAl+V1zk-u;8P-U=qExEAc7fHiwT6s232pt*BV>gH8FPuXiO3;khie$^ z)UM{r{mFtdaEJMt{gYUP@>2y7LkF7MOj#5V1S9|jvf@TY>OEhW_cMJBzo?@L2bnxc zOL3p)_N%Sms7}s&Z|PS3qEuD=7mOm94<-hrwAB+s4AB7Lyi8;rJhVUO(yRx|9ZxD~ zOttBSzQ$K8EPxWpk3rtVd@@vVvboQCKvEAwlHgs58u6zcj4pIAO{G~&8~JCAVBXzG zNipfaMaB}Mo3SA{y=X{T^T2g)w{5) zrC9GGQ=yde*Hvc3^Jn2+hI=-`V$CH0ch&O!bAy*`*6Z#XHa?-wj8E(pGZ&Y$n6PZj z$Sr$2L6gWRct0IbQSY}pI(F3;iRX#Pou%m5EmnU_7LJFQyOdSZMQhyK8>d^Y;k;cd zHcZNuw{2LCL|4>LSFw!<1e^N3k@ntG6MB|~2_?YMuFdF!n7WmCDMb6(k-=4((@oWsyLKhX5_=1yUs zHT}Hz&4tg!qehVPN+tgCh)hOhfRUvaE-!Q9q?MP% zKmG95I5dPn zZ5RfXgXh^|&cbsIZCsw+#~Izha-L)9@ZseLJwSoKZF!x0q@b-&XKR4?{Y7nEg!Z91 z8Bdi25Tz2PInzw&@K{39XkowLi|hSi29Fg)NRYk~*|VKoUHvBTjU(*}msCzNzc=bA z7QB@3SIhQYzcg}7`e{(IR+=ldC?wUj!sLWvwo^1ZmcAxtv8)m<<*8Dl z2zJ5KHHwiq>?+6uJ$^QOFR!%p`UBl$jYE?QRS_$04>;>z=EGOAI?>VLe+UV%QBwz2 z$j_MC+ELH6%177WYOuxCO3&Z}cl$T4Xh^x0Lt6Zuy-U1#l&Y1Mdx`fE2@4V5XWm>k ztWhF0bWS}F%C#U;5;lS?c-z2mslVHQcUDQbC5vuewk|5K z^R5+(+6j%PDI?9jNp!jlKY~P5KY;xv7SIC6M<*H2ZmVw!9X?x8laWrN@%Q31F5AzE ziBl?0bp@uhp_ylL%3jR|^`446X3DR(E#zV-9~P*Dhw5AKCaxr_$+#rQlv$*m@A5O2 zYka8u@so#xz!>JY)0Z^gf`k7%Deq<@@v$$t{! zc8Nk+<F4lyw zlKt@r>RjirQTWg?huZvqOqYYEZZk#F*9&bGG5wMjhhVB&^4!9a?U7+SEz|Di!g;fx zynzL?F@T~JhtvKGA$-Z6|KnaT^t2o3!M)mNW+)h|ZwT|fG~d;g=^B4v;)FIz4U4fA zyEUHKU)xp0AAWUwPDB~CJ)MwgLqO>06b0sXWo}ThMJED<6+?E5V{Csphh$>Xo0elX kr{mko#^r^BY``9vj||X=z4I$!{{sN*t(~l1W4xmO1>s}RTmS$7 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_subset_03.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_subset_03.png new file mode 100644 index 0000000000000000000000000000000000000000..967e3fa629b5803ce13ad57d67c04c20b8d3425a GIT binary patch literal 1918 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 GEaP7&F%YK! literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_tecplot_04.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_tecplot_04.png new file mode 100644 index 0000000000000000000000000000000000000000..c20b136386ebd7b063875f9dbfdb7116bef2119d GIT binary patch literal 1790 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_tecplot_05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_tecplot_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..e5e1ae4618c0d32532c5a54b0e38d324161b7b5f GIT binary patch literal 9308 zcmV-iB%|AjP)Pbv$HeHy>ORz?yf|UqGXwp?MQM20|8>edGU*#2R{qQ zdmjB17#4y60sLSav6KXn9UvAdS(H}f^0wqIcV_3_)0gS{y}PQ;IeFNj6~svp&d@6= z;s0S!Q$1DF=ZEk6&iTIYR0(S>pXvWj@|XPuewFkYtdF73V0{cZC%)2J+iEtA4Zwf^ z1H@zTSUmHIeY;PYP7bTttUrJKm1g5<)LCo^@g&C2=WAE4EP8JLt6yD9B<%I;>ybz_ zo1OlD!-U0&XTy5^==|E}TCLx}y^P+%{W7M94lp;cAHpoWpUp2voWH$({lXVM@2s3n z-~8NT`TXp!F1V9h76|27Vl})1VHIx+J4V-$Ey6P5EV|X~E)(Rw_g6Q+_aA-$*YdM} zcJt=k7d{`n^2&{i7ndRWiH+lt=v0<<;qn*j`dcKPVEiGe-$Hi?TXp$UAf(+EwL73X^z=$ zfUj3%+js6p-t8h4rfJiC9*(%0D-F?$|WBfdhlgt~_< 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 KMNUMnLSTa1$l+B0 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_tecplot_12.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_tecplot_12.png new file mode 100644 index 0000000000000000000000000000000000000000..d367a1cf2edf65d77e11068c46188e9fd7e00431 GIT binary patch literal 26853 zcmd3t_cxn=`2RzK#EiZ7-g}fHcI`cCt4)!X+AGAWReM$KJ=>zHR7929o7zFGmYTKs zdVkLMhtHqz`QbjvNphe2bv1O-=xGq))8PXE03yvNszv|+mcV}p82jOq zf6TOO0DxP)rmB)j;M@JK7xj#NuN3bdxi!5ia()xdkjUm?m`J8|DH{sm4AtB_^yO8e z`XFFZZ=k%KNv5?tpbUOGpiK4QO^kpOYfeXv_FE)bL=3+ZE5YY!U7N2$uWGby_PB&v ztJMTOCb*9&-mUYm)Sg^B{(CDg?&@;>^_(#Ex>Ljae1BQq$3MVD!FO~xbc^uO_P8c@ z;c%g~#2m@PJL(QUmOtegkFtr8g??iFlZfUFy)6q_sQ=^-25mgFo@}1uE^J$IQ#woiIYUEiiDoXE%op3pRU6OT7%)nRG`t#?LsAeTCG+EpWv@>l?2C|Mp zkCbYg{LzMCzB$dgBv+G&rp2a+=2J#Pw>L_QHnD~~U$g{yzgp%br%r^vdV&*?BUXj! znJSLNXKKLLMF;%YqRoPbjThG(x|0DuoDmd@dySC}bz+xjtU04(nmH=qNchKI08F6( zr{XpVO^bFWc0Ix0Kyo(L3jMe#WD)Q-LBU15adX>deyCcG2*kp6-vB(Z^y_|BA59e- zL=I9#mH@cY1Z4A(R)iENz-O-fQIri(7Gj-dD1#r+=l4P;0>%UGB$UCrd22YYVewl8 zhJ)^_QB5K9ey&;*SKVZ!2@Q^aJ%4is^)i6PPnHM9OAUyuyzHi>R|zTkh&|s7KE2HB zvA_{&dIOwiD;|h?^Bp4ue5}}idbTrb+#%8olB$d3;7+>nI9(f}nzjL{7HtWKh0U1-qg|}$ccvziCXk6QXT%d|S zYLp!Ngri{Gg1*;`jDM?{YZ$K(rcIiN)V1d7suH7@i3G5zUc8Sx;PHwL0bdATqk9JiqQ}|BqYVTw(MZ>yxWp#z zZb|!Gp}nSu1zN4yahYip(7jH%9(5y*4~{EO*nS&gl@zw{!e}*}$R@l!CI?3d5$|>A z5zqQnm7p|Taq7F}VlQ~1vs`*b=D*Zk*BaNv<~}(x$`S{#+s$MjKFbMoVx@_Q}1uAO8`7CBGjaJK$cTU4RK2E%bxu z;_e)3Qn21?(f$DcnAKB7PC}Tfhk4&Rb5B{e*x@>@Uxfa^PZMiM%OAB7z86WvV!CsrQcGuJc~VdJVrD*LBVk-uH@GCRQjtnl7erO#ZJVjw%Yt84A@<_m zs+!VUorW?jf9wNUN5G6IW9%2>yszOGME0U?1WQxT0m6FiWi1p34L<`*epu7cx~muC zVf1bOL=hWUsR8K0WACZ+TaaHMBr&(J2$8mZcFO<)OKznh*t!nv2`$v@|ES}^ z@A~&88DQxQ6XXR<1w?*{9=o{1^Pqncvc`nH9~C0u2qYK}2Ed#8aL1D!$Z|nK+eqwCo5>O&kzJID4IN`vU zp)H903Ci?pUe97!Qt~SMJp=NDp<|DkE%YY_TvBvoA}_iI;*XE73(AMb)WNH@4MP{= z<*7N>E3&S$*Avx<%MS&8*WQyu)TdINCV8_QN>Ylniyi9?zODL!4~WN=n7Skwl^1Z% zoAVP>*Q9YNiodMc0vkZt9Ba~mZ1TGa3<0tTkQn*C4+Y2tT|^Qe`|7D|k$~r*D}ELr zdosZJ4FKSn)H?)Wh9`bi#c06;fh5(~7xiMP$3J0#e4DLm;3c)d$SQ^&$!A*ft`G*6 zrIIxV(w(2amaHFMRZ)ZpDHq@G_PJN=U9q*&dwRb5ivv6tSCMqYbz^& zZT!xmf~8C#2s)|B^g~rkX>9BABoV!M2D@H6a4=xSQeMD6=imo}d)* z^t-rKzy%vd*!mS=DooM4BbW4oWhn#oBbH(0M<@V8h4yVcW(qcb4&eq8PAIpNL>5(d z+>oE*pW+vz`sAUez}jcuvXLy-nt^>dZwvZZv874hfvXruu_;mB=&+?3iU`v$Wq6QJ zk{|RR97`XeF|8MuaYy&|*sd*yMspF}8C7+iWM#pxY8=G-u<)7wM1hh|_F@Ix_mWgg ziT}`H(UcP4K7wV!^A>c${rMQ^fM*$SuJRNdW1qZC_GDVva*N-s3^Wa(Ok7D>KCJPI$7S8ts%vCQ7}K?KQJkL60cYHwF)D6`6djN*$op zBhCHlNSG&Z3~iIvQF|P%hq7sUt6m3x*w0zN(&S!y6j!Jh=V~1(Gb2K>iR^{brUY7S0mQ}^he+?%2NWG_+MNZO&{F)aM zO&SjZ@8Y(9`q{JNSfBcysaOD0feiSGI|$`BiTG=aKDP#RW36fkl$@Kq5}qESVGfiw zO*D}$%5;4*q^)YpLJ@7vE`q(-o@bK8;RCGLBSG(eWiw0Uo-&>lWAU<#sV<-{nFbD% zv=XHe76os9mse*O!(3Z_f@NW&t`jh!ilWwOrX1w z(QjZcUAlVlRU_9_ni};fED^W%1G0trz&m3#N>p+DxH=DR&Qg8`7tU7}#D-29$#7AH zlu6TCqE|Veo7+~00(1b5s5$VxKU3vT4N4?8aRN#&bi3^#r_Pyrx9e1qjsS9epRBx68qj~y7*e18MAQ71!^BY!IkPnW&- z_%VtV9`-~0JAtWb5)(3n?!rfiW#i+xQG392=!S(_5P9yZa$rW?8EnSg3nESSPFMFT z(e!k){cr;NQSKhkUVv_HxRm5{jnY7&x+UJZis_q&zo>HPnn zUH!wW0>gB%KCNcFZp;3s<_?H7Kd%sAEyOM6S~AXlLku)1D>U%5?8I3F0uHQrg{P~U zA%LY%mp2vW^jBX7swPe0f)NO6s|Qo>vrUTo9tfUk}GSX zwSE-j;m{nn)iK_(I<)IxJfH;-#vsuB0Gdeuo@G3i@(jIWS3n2#K?ooc^2#Z0Rx5&4X?yL!N-;X0a7wy4%+xhD(nKu7TS_|?~$uGF@3H<%v zSG+*5;(I^+d?VwEL-3OL**LM*JEBbz!RU}CBN~ry z4x$aU?2DP41wfB7Yc|WM8`oN>54@){j#q2ef& z81R$DYG@pE6n=w+ku8#+H;w0&vr_krc_^@Nd%nK8$QD35##)fG9zI{p?83ybeYZ$P zQT)RO{ToRt0_X(J&_d0o!W^|&8PZEUF)PkG*cUp4-M*-8aKzuJM@~fDnrpOZpZ5g# zOk1;k|45K_5S3gCF`7;Kix3PGo}T2Uo8A@#oO9W#&5iJ_GzS%f_M@$azBlX<@+Msl z9ttYdDDgng%DgkUVz7C}=~YN1&vl&)=WVR}mOlAfJF{hab3Lv}D(8tj+Hj>{_fspq zTrDjl4XpG+8^l}*pyfD7bFo+%*Kz)2|6Rvw6Sp=+(jfg5mk0&}aOh84#Kq4O4|m?S{dyj^5@s=S>tVqLVAUGugm*^O7`)Q*=(Z~*l^tj;;Wuqh z{wlU<45qUDr9S$YhYb$`e zE>?{K=S`(RMa-*yJ*6KaD*IlOSnZ1@ziE`JNscM{NFG@cf$LJ%<1l`L)0@SvcA9xQ<|HJjMKW3Rt0^`@ zt(qhT_1++^$E-HcQ zQGbV~@B(QfiN#S8H<_H}#&Gi)i^;Ff70vVqtm-VvpwcT1OPq7{_8uk3si+h#Ak3cC zRQ$Dpnm|XGy(EUyTzX36V8^VsioD^%GR+!MqSge|)ABe{b=!H^5^P{=`cbS{nldlA zK61MiO|v7^Zccef2zF<^>&HpcmOybKd{Ko+#f`LF-%4*C>{af1%u0|uEKpC)Go{lY zZI%6I1V_gT2+uquqBe^YVcr#4O2#~PaD(g$ETy;GRVi5{SL)$bN&==h%xRQ#p3wgyV$ z(A4zAH9%Aoo!_GX7*`JcwnGLcQszIWNB*r%quEakF8oVwCjLrJxmXzRG}E1Qr@M&t z#$ChecX@{X`{9U%1!v+pKsWO0dV36uoBtT<1q1{*e#gz8kxDgPt@5$lSJ(joR&eW@ zz`}`yF=alvtEJ5hfF=Dp45W)`M0&)W9MFj&8{4sIxQ4(O-_3{Py3~A~ITBrN)aJx4 z-V95m3|Txq-w}w^F*i5|&eb9e>ejS>@n$_$%aY7OdjQ}*G7-uj8Kbh3t@g z)w^)~xQ}Sd7A6JU)czoTp*8jrBo`!c+v$kn2LTEg!bvYU*QgO=cOV&@8yXp$x1c*l zzfjAwpp}W)Hc|c&)OY5o^1P@NqeDzViPpfhx4t8x2aJ~Dv0z+C+$*g$Yt-}}(42h5 zC8DaS)~TrQ<27WJAjs?A#{!jxOZ_n(2Gie>``wQ5GSnW)q0ysC0C%Y*mT~zX6-FFP zpDkw-B(NuX)sRIUe2Vl?@Dwl!dhvTWZALIpy?8|%hWGw-wFx@gesLSMSy`C~8y1I7 zcER;)4JACkj@Dj`{-6k56aEpf=n8#CG>igJOFi@jmHCYnjNdUv=<7zNo1{N(SoQ3k zJ5hVjOWLCk1&x^{h&fdi#fbHP^M#O;$hiY=pR1M^-&HUrO!yd2mt^yS{ypt!d6Ex& zp@-;SfVHr~i?wDWDhaWBWGBw;$itU$gw3}FeousZqpMiicT>1xydy&(7bKD`cGWeV zSUWVSF|U!dmb#I*`51P@ja8A7A<)MGc=tmoFCkomBeu$ErX+CXsTZykSF*1QLr zpVlnD`toQ}NvnSdG3*!Pb`}2|SZ1ItYvxn#`{YR3xJ`;CVL~>Ih$3cyj1OdaVLxeKPWa)6`sP-iz<^%)Viy`*j1zXC<~fTF5`$-QVzqXUJJ+60PHr~B!so_mWnv)> z_nIg@f2ooiuPFX4^VX@|pSOm6_|H4py5voNNqSb2#ilPQl-PX-tg34kF|g%CFIcg^ z{3$3_y_n_cIWVK7DfI5@`*{(#dwu;pe#!8mvzW*`a@hhtxTS^MeaTyW_>7Q@J-T5K zH$SIw$;66~4sjib6MOSTnHr_D0nWqM@q4s{XL`+dRH*ui#9B9S3TF+}H1p<^!y*>9 zgeu`)upx+}YN6^6US6S<1S%!h9_c{T;JV44(;)?i~p0-fuy`!(hFR4z~4CwI(sL4p!OVij%skG zr!nONto#48tRW4A9uTiF1UQv<8s3)c!pC^(-57m<=BTbRitpG{2DRh8x6s{%_=atp zxHKa`a~!b78sroiS@#6j4J zJC?Yq6rUbRU~@*Oact<3hl{Efj~d)(WcPI8-)N{*N)5S1!`U@t=>hVR03f_*6_4v) zeJMz#r9;WpE@kJMM zTW8HHY>oYpWIj3SJ+gn~-3pf++g_Wzkc?iEEIHzhKT>LZ=NmXlzyTMbAonf)DM@Y_S$Aw&fV)~_X57_7?> zGx}`v*>aaOkl`R0bO8gPJs#NREk_9RCPaTQotgkbkB8ku` zaOpnVK*}1*ST4CzU4P?jk@ze#kZ8UKNTHIVMf4%rHiR-Zy-_Nbhyq5#h?+UD@oLGz zF({6knzEME_y}9qsPVCLAQoX@M`=#5O$2=V z5+eKhf4U;(xc@AIERG*x2WW)7f^))g4)aJ5Q^k~kwRc<2j^v$zNfBm?hF2}6gm0v5 zN}un2w+x$mLGMRVRjN>_0f0NjhAUTXwVokt<%>gQ{yT&1AJa2FBW$ko>`NaI?wP?L^)U-y|GI(`gwq#Y<63)Ky*sx^qXoB!)7 z+cM1mo$!WblOLedq^eFdTFtvNP?7GP_;1nZt~Pbm+-8PZ;b{Z#A3m=h_k&fKSG-{> zY_Jb$Vm7XmFQrJAr)DP63f}_?Z#1+>7MD(b7ivzK|1!k0^OtEy$dpe+*fNr8ErPH_ zN5S|pnd3=@I0NTl>2a#onc$y~|33X{<&bKspt>dX#o;HB^$^6JQe)Yo1@Drj$R?OH zefxVJOzFw}MM{nSbIay?NUjzOU=jPgoR(+~pMNc!f=@?HpY)A(MiCLxRcAoO=KS`m z@@<{*;Vgw$P%vL#uhDtQGDCyNV>{PsSCJimmQW{4@b>yryx6`pIKsuCHsUT4Ztk{P z`j3vX4Qj zy?y2c)Q0(!i(RA@&1l_B?trm<5FzZQ$(4H_zP>$d)P7uPl5mFH&csHa1Nx(1=L%fG z%!VZ)g|T10mzQ{WcRiw={AsCH)0{Wj?+01ZfL}@xpe)h%&Y5~KPq!n&i<*U)SK1}^ zlfS=H{I>|$(fF9i)~z3i6qm4V2~6#NZM z;}<}*dP4a#B^iKM%$F)b{V6eKSiAbXZLnzaOYXhu#maZnvg9>SL(ar4>`8ZZusHkC z1DD#y#gg!*O-e0$d;&1@ucxnZnqv@gwx>fXBZSEBy z1In&dKy=Z%+L&Q2Z6`3X^`_r8tzS zmpyW`RAVSCNqP*Hei@lvn{@RyRoQTc8kCwXAkXfwf1{IRky*3eLp zVqI5S;sT+E&y?$sIT+7c#UGOj?j~o0?zMyNY@XhfJBqLf7FEk{ zkbiDjARu)Z$#U$ber8hh%M|syARTZnXxcM~kA(q$L^5gUrJQ-Uz zEFN*1k{xYiw}=!}>yj2NtpZZ_ghvd&pG*(JvVWMFh)vz69~L|Z67=a%LCyGgTsYYY z(P5nq(SB^W;Qhs0_?Qa=p@OmSNozP4pgFCDiIjPqb<5usW}#~ykC&yo`wRXT=Tm%s zA|+B%E4>2KJxim@qWXH{-64S!p1QjBgrw zYkuNl7e4IQ%gq>k>@q47O z`AArC{s$kj4-BOPKQi}6(xt}#x^bpxh^-I?Zd2X4FG_a%sM7iqpN(-tQrqWGkoi1U zcq`J_H!NmU^ujIF3df32voCZZYG5_M&@J8U2|HszONQQP_i)6)&a*iFNdCwoU?V^X z82*k#h`aq9mebosb#O1!Q&bd5jAg&4Gq_*#jBTsGewPB!{yUSq?D`-af1g#Y`VT*j z|8qAYK>Hl|W34f+tlP*KoEolJQNSz|@OXRui$T#09a*@k|kd!B>h--bF|X-2SQsMYc_{A=9rb?V*PI}6 zk^QeeQ~e`^PsOoyN9wr<8{9yR#=Q%;;jq5S7EFe!H+Sb`JWSD&4U>B%$p{H4Ce5d?z zI=l2O;^5u z`KRhn#=Q_8H`u(DW_G3RsM%h+pP@j z*3v`c=QGEgA$W*tq`0ajR;TmZ_|LR}ui`us^&={)ZuI5pkAxj`3=ws? zJ&G(hd5OPqOPHujiQuV{@~#CB1j6~@_b??#I_3D;lTpEExUas<<1zl?)B}qL2ZET) z-aYy5S*i=ykHaq!EvJP06a%rJYHn^Dr#LOCP(TO4| zmq|dX!xgd$_s>p{zX9S7_MM?chXt2^A{VwS6&;<($BK)1S$toh)B)!Y|FO@G`39vcw8>x&P`Bsv?N>K7l>B4>J znsjDHhk6^0O<^ZB!MS_9eKoxA2(wF7 z8>t=YNn~?ZHL-es!b%#{O1s9r9!Jr%{uU$qDCWdMryW@Ha_Ra0!BO~mo@@Ok3ucxI zl+9HM%e9a{$PA*gWd4w6>|((7lw}5<{a+rXpZsk=zdNv0=?-zopFAa}Hb^i-B8U4} zZ9cm+fB?Mf(atO-|9xC6o#k!uw+CQ_AoIaMv_C`BL{B9>yqFL)*a)$hSOH>pJYk6; z){(ELlxLUvkvaE`=Hd&0;j zvVR45Gx=lC@a_jk33xnbo{Of`RVuDb+B=GJ1zQ<`GlTm0(g!co{{PrT2>g&ip`1}; zSlR~6cDMpq*`$E>^T;121HGCqPk+!^e;ghoPu;sv=cNaC)50B=Y<|A-Apx}e#5`_R ze(`x07#YIZ_mn?UVaEty>b9nIaRl_`hX8E-jz;$_|6>;{RlG9vpIH6oepfk|A~%xG z6f~|IsTv?4COZT`g@NV>n3S1r2|$2|lD2eaq$m?JH(-7z3JYKZZ#op}v`vqey@vtz zAduy$6a6bj?8p(Jo~I{x+F@tG%nv{U&K&`bdB5u;nPmwlj^zp5r|K7Zhc5N(tmLsG z%?<*l(G^lScOccq>Y<(k{Cy0mYD00j8O9uHYpS?A$#)S=+4M!s+PNsx=Jn@n6Z)t& zE;;>83aOaigT};yf&?y#Uao%$klniSaUB0-;vNlMe3o?QI#w!6)3x2l z($3SN35YGfRhS?vW92--M@mCi(hNUwgfn3vDoCW{PZ42h3qD>3<6BsmW}zksHfdD7 zVyy1QyM(8UFHLIe3DWQRVk{9)9GMxEvVmE&j1h$ES9mwR%I@u&^UE0{zk7f5h>0Mf zO#Vbbn0(gBE&SzSKx`IOgX}+WQm({;r4aXx376U*3ss2hTUQgw|9rv&{X4jGdR>ER z;di=$OgWH`%}NZXi~e=IH}9=L{x3Zqaf=KWF|s@&etxiz#KI@+d6!(zv;}BOYlfiC zKz_$^v9I8goGyM5`;G4gY^WExpDcB#_U=QfmhSJ1F#oelFk;meGf zERl;rg^4Ey#0LS<*X&z#gyA>J*MyF^3S8^UHEa~pXJC3wtMAs;X9D?8oG5Q5PaYUI z+vN||*Oq82udq8oR^O4qhs#gZsM~bu=q~F$9oTdBHc*K#$rmnn_6n&5zmPZs0}g@j zKIEK`3euzQ*>56PcLm~5*4NiKwiZN42PqKZi_8{E$4Ma)E{<8`;xms#Wx<Ilhq(5k^IH+pOO39`LuPhDPhmg&mKWLI43lKR=f|VD&gq}G;(o0V)3-q# zTcXR-)uSa!*YbW=kAZjr03X-Xwema70?fNX=}VQ|WNqhGr?>us^c22=ym1Teo*7

    1ejYg~}~o`>R| zR~rV{uxl8#ZG4jV$TCWAA#$kRA;^s2Q zm2mPtU-><|vTP}Z;PLKQ=Z!8- z>nv0%NYWP%ihZ`lSTsTlW>exp=U2Y*XzeQO){z`Q7 z$vK|^_ng3&#UD?)>W1(|mh^Tx1gd}QH=Ia;N*a%ugpHAYM$JzZB;E=UifJ~XPDYGZ zB{?3WshNW5mHX}oJ;FLHeYU9lPKscik+R5VEi?7- zEdJ>dXQ6oVC&=gkkVA8|WuO|UA3f|tCc^kp;J|m0KR}3O?AZAdo{nEjHG(F>hDEGF z|ITE`z5Y!{^XNyddHp;d2`uU6A$++?qp3CF{hi23IW15Vuw#2^B}O@h83<3(0wrY~ z9=in{-8UmkeYNC(xHl_PP+9udOC8XjF@oPkD)e(0t2>?+@<-;|;Ep8=nb`|N-7+F$ z;e7gkqK)31tjTJ<;u!i|=)y0Vte)@IoNg@1yjNiq%Ip_QG_N|+&%>2v%0Du+okD=v7bp2lg(Omd* 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_transparency_05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_transparency_05.png new file mode 100644 index 0000000000000000000000000000000000000000..b3268b854ea9e26c11dc8acfc8ad2b192b05ca31 GIT binary patch literal 13914 zcmeHuRajJC)c%0P3@|V-bPphnfP|!UcY{cYGzdr!t+XH@-Q67m(hj9`cMV8)H~jhi zFTcz0`nxz6=j^pt?C0$Dtmj?t3RhQ^17ne60RRB7g1odQ0D!{&-vdN_{&Gn}Mh5`! z!xW??v^~=gGQ6u9rhHdAio7ik+XmW`j85u-KlHgGBB5j-mA=yl&-SuxM90_NbTw<2 z6l;HEl2=G4U=Ke~G_XM95634^E&rilq3}4%ps2H-%sTMW%rGqJBRv{%*)06`XFU;* zq>Z(s@h%^wN+2)8*e_ zA8XzbOa1xqlRYG+$JPJ`_HC+`RFb&Nf;)&^ci;oipgge$QmfDLe}ez>c+w2NH7?eA z4sbZopzqZ)rPh;zoE}GtUUvYpwme{)&-M_KzMAS{-JEJe~ z(g&jdMnu5uCB8K-M{pPhpnZ<7XS@hd(~D@f7Bw>Sx*7Go`su7_`3?suIJI`rn8(aG zYs9*VGc@`Y0=6HWwo9v9HKDR3bjNG59XF?qP>pTQpQ0VXj6*mBqyH@0zd*3tOhhv zku}y9ytX?3Evr8-Yv79EAsB}w(N36F<0S?mJKKa{@}NXf*^~F-Fp;j*NSY}5vy|j& zNMeNuYTM_+U)y}xEJ2ZLg7{LNz4e|84sUH>o@UZmBna)_tmQei`N4c8sBS$m%>m+f z@a@W$;lc1UuV){{wN|ZQ+R)lRd|4N>b^;XR)=~6 zE@0n2oa-oRPkj{oNH|hYiU8XR-4l8ei_M!<@zzWwMJw@WFlWf*_E--@NPVN*;dz$I zBt?|C^&Zzz;i#aFF%BV^BfwuZ#q0W*GhMiYw5(4W7JNEWF|(-sv;@r>uQ^HNQv^h3`Z>xpv%AhC6ZmO5&AyPers;!}PTvXozrT**lI8`qa&5!xN%A zb+C}?SYkYC>8eoUDjPz@le&yRYCkh~ZJS&uzrrA|tK>VW-*wk>x6BbKO|HIFdwYXs zQ0|~O9q8IDah*EudriOMcvd;9JVgr& zh;+W0G4Dp8R!(uTIc^cY6ls!Lwp?D6Jd4fEYMp{WsttJjR2#`W&e3JlHC7!$jL>%# z>9y{rR3(%m9YaHP5ZJA0teG}_OBvN{0tLpp_gD)w*CgiX0lPFds{=_TO;kYn8rD+x z?2f_SG+JG*)}`ZG+d*apeIGZLhyKORQTABZse9!~#tKG;!(9JCW{+k#I++8Z!fQO& zW8%D&9hO$Hf4Y_Jp_Zq-K-n@BTy6R6WXG3q1@g`68dAhN3I?ZKnnGK|^r|$lYp(c| zKMdo|9Y5NL9rSf51%XsCUy8Ue`2v0QFB<+ph)s(f!8cY5I!#9#YD9_1C|f91$e@`d z4$MgwXrD|UwU*T1Z`!Y~U7{ep%ZJN!3uD}nN$Hw^NHxJw^B}53Ut}@A^MmB___W73 zPq;OgSX4wZWJebR@ zG7lKp3sMfw8_TYT`K5^SraKh-gfPZs27b%s2o1ERM&N`l`djn1KvWO$1|i$OOlDu_ zTZVx}<#^G}&bo03AoHi)iLfu2bnvl~K4U`3O{X80gpyCoVPI%-V71w6Mw&3y1zK&a z4y}JQF4^_IzNT*;PEU2|WYo^RFY(H^C; zD=XGHyhz5hA0y9~z)Xc&rkS}wo1L6kxptXwlkzMk4nkh;Ogv}f1#Ec8#uxJooVCfXF5v9lkmX?|z z5sqw9Iz;^h0Qhf5wS!jX9}Di_tft;&iNyFiM z!_&lMgwuInY44%qj-kJn?nXz1NB?HQzLz8qK$38wzt?F zUr$JTKhUa@%MqNb-+Itccj7Iu!b_o=-1u9&i}N3c7&bv{uEZ7X%YHU`OAnRfyxLEe z9@bq-7w-J@thEMO%~DEvTM^SQ0&ne^l_Hzz+?4i0rvW+`ZkB`9cdFY9rq|uZN1qQ< zq|OPbFS?4$KH`kl(Kk)!$Im0{p-YC>?oON#D4y_bY+ey_{mC|nbCHQ z;!jUGw5p_hoyXd2S9vRwILT&78BQmc3lwvvK>a^fgfdl;3TPpYMe$d~PE`1$pG#ja zis(Q^iRdgtkbRMvF`Gp-;bhBxcVv&w>1w<6P-2NJw2Hqb$z31`RsVOWG6;YS0^{sk zu42WeAWVLpEBzv!i?=tPX1w-dc2jGXJsr%mUk-h>?ANlwBynR*MldHa;rY?oZ30pc5F}tU9VO~arzeGZpXOp%y-yMO! z<8ymUzYxo}i|7RLFwK?aOmF?f5w;DXaz)Hzv|+Pu^tZf|;~c+PQN)t(*4I(QPd=r= z8vrYp3~4!1O{?8oLq|Xr3K?6YIKg56>Yq0nxgx*|ro0xZBjuh|$jmOc+_ccT`X9v9 zsaZZ4pWa>AR;mz@_E0~KkDz3!b%eiPFM;1k)n|7$dDfc(q zgbUIK94;*3)P|*uXLET)Z1=AG&O}iH+j}_mI4v7N6b-*8djvW_1V{_NpW%M;b1n?2 zf;qLE4{DCNk+IEmjNnv>)zJFYpD(n^3I-uH6W>?wM?%QlF%dn6jy;zLj~hI2UlpQO zN}Lb;q`Dz>Iia)QvrMT4zc2S&`-KMbtoc%TOY*FQDu(zwqrCgO)&$?N-bg{$6f;Jb z9|$=JWmHTJa!aYD7WP^I zYRnfW;82b+^_e)ntG2T8xUxk^y_6VNmt5nD$9)a!TM^n;+)tKnK*aIw?gf@5)(y6c zt<+sR(k@=~Bj_B=bxE(~hR5-5xJ!ji{EIA6o}$4ULZVQps5)9jd(=-Hrc9sJv5Koy zE9MVd7Xpu@f*i|9<3w(_l31A)cr((bKV*>@1rz1 zL-%}?B6Xz`7v+O*KvaPWOhU20q|1FD#HPEaM(E4 zu`>?Niat{`3WS7vj^AC-n=;xukHK$cz2t_Z6;nF}-?>eL>ajS+J{RjHpY^4}`{_wi z833!lX%?wQn&955ZI0)xDZgAl@w=fTV#p|x=p;4f~IsIK=n*7t?tSZ{kcj5b+bl(s=1lS@kM}=vU1K5UPHd%{MY`T|T zA7S=``f|e4c_Bov!mQH7UuH=S$g(qM6w^NX9B(@^n9po)h9Mp5&)}5)>`VIFLCxqe zprx^~>jxacAqr97{XEE;QIe049{_pcc|^DEzm+KdGE@qk2BheAksp}nWbJi)*RdSG zpkAUMpSz$zAw5I8*qKBa%0QC$*fTCiB;a4;T2}frrX)6T-nMHP_odL(9F=Cp#l><5 zT=h63>+NNYBGw{_8-i9~T*zC7`E)-ZrwKZFUzw{5zMa(g)M*R2eFFPwhp5WuvPA`N-A9LnR+(;#Z+8_zdZa*;;`fEtX4fjRP@THzg5?m>tMAsMu>0Fs-Cf@bT6}Z!n)q&3(bnB zWs!)K?Dz&8FbAIBh2H0&R$ViX%S-KO@ppn68T?(t5@Be5CEy(_Xooh8wwp9a90(Xt z%VcfL<$7~m!gUtQ`4rh)aoKisC)q@A^@$+RzYsKet%n+swbc|65Z|t;D0fH!#md-RCHuSlz=;QI zPG8_$e9`;ReF=%{B9kXzz=_twmC5-p`Nr=2JkMl^!1v&Y9JB!JXl7iRWtX#+As79= zEY*SIvkqTOKeLqDn!WywnU1z#`(%e}K1X8Nbxlr*+wFX73!XAIh$VHN-N z7d!(ydNtu8;C?MLO)LgE%GWg_c2&jG=i)xqZ8^qrA1{QG^CN62{F{9YnOo03$$dc{ zO)%s_jV5LkEEzbzRr;Ai+2EjD@*v9u!C^ahw{f%~7N?48nH|{ z7WT5Y7sIXbtGLW%#SbE)hm&pp>o_IH-)fh%$6Eg6&ZT1WzB~*Ju+dM{xSwjiI^CPx z2FrD`={<~Pruhq5hM3%h((v{uY0{*$_M}|*IMOOd`5DLxFJB}=)t**yDD}PP&mkX- z3n(Wtpin4}v5GwB&02;&Au8%PfDz3?%i-JSy##Z>%C17~AGA`$kDG$5W&?@)N6x8Y zW{UF~wci*n{sfB_1TxjPNp_dDuWnWvR!I_h2Hq5pZfw&jlMiefE8M+FFT=;RQc0sh zaLo`jT;($E^pvTrQNqr%{?cogi+U;A^R@7@y(`k>OSn_2RPd|B^ym_M3@CKI<^zx( zz18%fY%(Sf<@!8IdL*dX4xgeq{N**^9sOot-(DN+&0;TDKIkZ{^RPL#848hzA(Q2V zHaawY&LDru7d%0({rZ598v`H_$Jo^HJ~-F5 zppv4{%gcD-F$cESHJ(PS+dA$QT2d9UbtFmJn3tpus%mabhNQiJPUx>JUC-V97FcwC z3I25xAGexF{t~Z_=c14drTwA}PS+6733n6UXEa|^X)U-QuE=wmeNj>OQS&46+PV`IP(aZ(G_vzM)J_GvN>r3B(novu@lbHRa;Qp zlJ2)_>Q#zg;qBtem}PP^t9$3gsOQ%Vg31pZWbE3Zb{HD%SY2V1}VcS~V zPW6?&4!X9u1(vzEVr1aJ^rZd8b|pM?#oZ-A6IDvmUH|wy{d>9blHV&{6T3wu4wqJI zj)!7Emu;6Utr7MUCf0WfCUv(r1BZd^wAgX`K6t9aVm@h%_3>Zmxw{z3nBw zyxFe-+KF^)%)02)dZP=L2$6YCvomotgn4IA@SH*k+W~Py{O)y90OTSTe!zFOGWHvF zx&C5$L$Nk|iL)d&CR&9DuyGD(a^L!spT@NRG}UKr;;c95m%$4{l5^Ubk=uMa}y?^XwY8}u14H)aB_&t>Qo8e}czGwev4OV<{en4J}fY6owQ zzRS`s(GX5xJkh@+IuT8s$}brTdDOUEfjO zy_m?VVF24Cwv8jTgdCZ6G*$94TsN{8*UOdvCY`g=%4bPy@Q`KZhVy|tGD>v+G_u$a zZAQzC1v?R-`Z5fp=pw)n@H0fs@kiJe^Z}>5-9?srbNc zGQX?K$>++Ui<3N0c8T+s6*kO)h5*-%6a9o30MTczE?w>s_srJ6w+M4}W8~(7(ug$tO#2VZ^i; zSrD#gLTT1Wqvdoadgod{nk*`5mF<+WQi4js&m4BLqgn)haUBg!Ned<@yQ~z4_K%yM z&H_n>_96=KFRz^PNup)UK8yUe=2P=t5y1j5M-N{qAJ4h)L);0|CI!dEy!rgye}Xfo zXnb9_N>&Tlu36l$B^^mU7*_|Kn3p>4EJ!It-b5P*`UPf+zf>oTK_&7UFCoOoeYw~I zK=(uQjKC=r3V&uL0S7P>+>mAJx+4EiKoP%)ACkfz}6m){QGJDd?VoWxD!j9^o8){;>{&o(e z_)k7f0scW37bV;hI38?$6e!RT@@?p=Vd6BMAMg#gxiFD=*6v1dW3G_yN_x(;@I~R~ z=zKP-$iFpo_lsujb{}hlT&prma_@`u+^aK94K8z zhEhs?eCX2mU^sB|FPm#qa{1{iI=9ilzzy zgTkw$O4BP)DwGwbnBAR4<90Z^Vj$@6^Ch$1XGof2Fx|hoKF3h?y?IbQvwH%8 zZRP1KbGRpRoYoOM6RLkDKo}yWWZn$(N2d-L`>zKk{Qg*Mj-Sf^ib^rs}DSzt|oxRs*d3 zTCzmfq>BN62sU;7y{Roni?�kfX2jmx5iAB2u=lGjOFDlPN?$>22sOzCv+Y*lViT zS2$c~A>(8`QKX@Ly6M#}Hbe_6#Tw_KpVYRCkHK1r0zV^}+P9>0AWhEN6UBv7DAO2! z@3!AiVk&}G=c&4lq^iEP>lG~o87U0X#?s2{lSq|l*(8^u2GqK`Tk!B!ReiXlguj$c zXzywW@Y|eE&bM+c4e2gOP*_N(+*!EUuJ~$OJoJbqx5yMuW%yghFvB@tXh{}*w$z$E8 zkrP03I?)YakTH2b{qYkfEpME*k|ThC6SdQ{ZyFg+WOZg`j0%AWpkbYUO-$|m1-)e$ zouJ4(o&+@iNxh9XZZRiyB%kH`TTb1qLgF@zF~$On1+tW3$sq4C^^W@+vPP#VO?oc9 z%tM}AALeJPKsGBoC@FA-2WdoS@oA2YUs*BOvQrDsL(zu{pi47^>%OGD ziyIVr*fL_KrjjUro673>3Tq3~bye?e;Ln;(Cx)6=+!)gZjH9^%#KmZeJn)5qQG0H@ ze+9*(B14a85lRCB4Uq+JYVwnnUGYi_{(BYCSJ>a}%?X#Zfn&s=x>O0!h_Ek^S2=Q- zfA#YE-BE#a;v(qtkdnl7makW0ULZ*a}f-@M4dWB0H3n0@@$I+p~U8? zKgK!*!q|W&XK+m6kA`iA{LXYQ{ek*GYuSH3j1FAgBXz%vY24+PoFxIFZ*Tt2Ka`V| zl8@j#gADg7yZC%ume*xjo%5vYSbIdW=H+Q&^*`out`32p^10qDO}y>mz;4HcQ(ZAT z=>(UR{sF5m^O}h@KtB|(tBH~FHyZFUaVe@cooZVqHw(Z|zTLDZ`dtYR`QfKYEq#_u z4+F|3ayjd9?@J`KpCXsOIQ{<-ebbZ9g|^sP7XQ!&lvrO`kGN9 zw|-D8w-otE&_P#-rM?cP-vLzLuuoqw$A-+fUF{01)Y%r>1vhB&g&F230NX6H(Di;u zRZnMDYTU(M9+0NMQQuDn=YCZU z3nF7>(zXoK$7l^FE2aJheU3~cku++I&3WkMZDt|ja+oAJt8Z7HULq}wtG#HKgt)qP z(_=->g2ZTJ?1P8$-jEd z7Gq45NgB#?u32bY5B1wPJlgE+ctX>a)2}+tbL_)2$pPiBH?X0A2Jv>uM?>g-9Z{oV zW9#cXmH(|1AggQd{f5z|lx|t-N1xWfUD@RR>#gq)Xb>}(qCtYZ4vlZAPQrBpWoN^)Lr8KPuuzGd(yW`0AesdslMK&%R&|{aJ#e#cxI8JaZbFRVzvlwQa4;JHiHc z6u0MIo*#jc7`bS5P2iCBPz?Urp6P5&xeQ2gMHPEmp+esBwh$7@ME!+XJ+%YVma3p$ z)%syHeru~n=-lyrcCY@CJbJMqz;y2Z!oVz1QxCi12X&+?F%CQlJd@?Y*)(oq=)3%r zjr-cJHZjr_R0yo!2)9h0?N*Bz7PnJ>?mUGtTFRT`b-ivi5!a#e`}dT(ko0FsIianB z#Z_i6^ena)R?G%(L?_Xo{lY;aEyCsKi`3lpzL54w-c%~+oL{&gvzMnel1`fc1nTsU zdc8AeI&+6n(!3W$%OPbOQrgSYr7(dE^`~j0?nme+DJJIn1^;!PO=Hqd2c2mb-=MFB z9(&{4IWl<1cis~p1Wn`V{V_q!qaAh6vNcn*8P6eb3^LGDz?nu^t~7H8X4c`?YhTF+ zNja+6eXW7ipYa35|ET)6_6Q$}chIE3MbF{PN>Rm%$k{K3Z|{4=#H*yMq&uoe5^Q5x zwiAL&NFe7^9OdOH!kO7|ybakKsPsWkCyIrrAeFmX!-m83$&W2+;T}vY-^m|(G zFdvnxs>(vLn9ZxA#(Yv|ePKnn8VCSQNE4!#NwpP%fxZTDyj9~bM+asHvXxWfWvXZ0 zm4MjYAQi1E@NgtJw`)$LOv+C>+|=dI*QB-K+bocyXQMl-hPRqO~%Bvl$5 zGXJzJw^V8WCjKLyYevnT`*4e}9d18c1~QLTe5n!Y?I93qbqm&{(ffx zn=f>HFcqQyVNca}B*&fO?pTwjLMm@BPd@AQzRGJ&LEM4EhJK8z1H^Jh<=nhR)gdG8 zkZP61Y>c>tpP4oJMQ1>lLAAsnFsPG(hj;%Mr61a}q3^sAT{$ORITFr6$mVc)@Mm)b zvblTOi1Y=?erF=p1&>WR%5GYYa+|EPgxVQ4is$nWlI37d90j#N|96kNNsQrg)VZAT z{X&Nk`A>U1b{n;CrA`7>E2ji`oS;fIt*a2| zuj}>W%J0SZ<#o>49=VKdp#&D;n%T@6@v|NvK-{vnOyC>UNedxC-;l7O)C~5CNBGfR zTw#&%6FmbUrt5$+EeKrVu?n)CtUuH6aBPmD=MrwaY}!;|XvS<=dLz&GVorl?K~x@^ zzqc0>*o1pO&Pn|^_z-YVP< z7lj8^5_K2(ZIg&mLMV9#bL*o5pQV1%$3*_W3=CX}me7_jaK0N&mF(iA(viE}X!9$* z^U7h$z+zSd9fSk+U_AIkVLGI9?f2JMXCC)cj3ITg`@x6gG`WswW0MYC4AS$lEc$lE zhw4tlX&*F%RUTlLsg&vOUmd2Tr}W(9!hn+)!}+QaV2cY>`;sU6Nnz1VCexEh3{*2(5@}|ACW&&vDq8i_V_I*EoMU%|S zq=V?ZEFhf5u~Mkp2vWD)Cd+=q@#C(uu3nbXeS4z-P69S=9u|qmz%t>a9frJW-*UpnxwMbAPtbI* zb5j@cxya8__qv03gB;jdL7}gVX5K$k*U>N@D_ax8x@|sRvviqd&}VdIM=w)i_}-5S zJ0Uj!v}mfCk%n|Yc~y79t|LDt{kZQWeENlgl~6>>P4l?oJ7TOqk?6>NasVk9G^Pi z+a-PoY z>BS=oa_JhV{K`z*ZQ7UJ{@{4E(R{zD&|v`7;-|#T@^0Yot;I==1>vgnGZGjgf=Aze zR@L>KNnekOr?k$k^wJ|23jm2|rP=_I&ep<*X->@DNVTQt-y(1!Ix6GGPreJ45J-=y zRfnwe%!Uv)mb7|3zd7ODakGWGR^I`}r(6|4*J9cebcgnuL%K)nz6v)0G1#ffirs z)F+tH&_X^B3%=&uyx)Wd1TPZ8Ujia`*8j4Cr}$>lI7A)MXt|%jV%NO9#%FnWFXE2t zs&=Mnp|k2Zuxf5xm7C+XE4->lvfV)Bo~c!pdqqali&97RwqKX^Ir}qp7X($vEw=}3 zkt+tk`-4-<4WD1N{K~bB#uLh;xp5f%ikFz zi$Y3>9+Kx!KR^vR#5E5rCXku=CgM;LC;Sr~w3_OFyc4xfGRYH2F%bz~{gf@`vHZ*P z*i@9pI3K>5U!k<5K=Qq^eP0f+>aCVX2qBP^oc+Bxp3NM}sU(i$o?j%Z>$Ur*Zj8hy^ku;6~jzilvmW-?bv%qWHK4`7ac!#&#?o3VvP|g&hr^Wn zw_+fk*K?Ah>aN$lr~qJKMa#N#3Hr`Wk;e26*}ODmt6TKSonB}mYUeR#7p-#e3x*3J zqsfim#%77#ZHEpt*O9NX82!j_Q##9^IlH-()PC*(lH#40nmB5McBBo5V}`dzK#ZI` zwV9Ew#+&g0kCtm9+@M@_VZaR@Y8Or9-kTo)u34)@&Ghsy`P9X`E0+@;b%7X2yOhx2 z(?9zxJrGrO&nG0(YBRlq$1IziI&0>|=&RWmLC!3;j3z!9=&oXq7Q&!7l!*Et{c2I; z@2y8!qJyCGVdsTU|2S>KOyb1{V9?oTy7)&8Ts$#viGN3J&t>KbM?lWu7twa`t{@6v z#GmNF3yAY-;qcs;b|~jyI}|%xbM!$RON0HO%x3}9UoR;S-$v?QTkeZ)qxbLg}Yrs?5 z=2QT`KR@LpacWK<1?s1cRp|G4{d!!vRv1%hX|kUjl)O&jp* zY9(AU7ZSj`uK+YN4rjv>oV{U`=Jv5b0Zf~8&7!khq^1^ZK*aJZI8Scp&AIyq)~(X~ zBUfy~U?Ln9zB|tvvYMfixm^3GEXsV!M%ZRS7?Kz7#J)$J2zz`0j#N*# ze}3Kq_Fzm6D@8GAx_Sj#ArfUr@#kyerRz0*W+eX;p_)Q(DxhRij4H)(WL9B}UDVQnQp&q=bkS)GXBzY7<+DJ!4a& z)ZRa}S8KNBzt6k>%jZ1jp6|Uc?m6Fg_k8d9MCj{1V1y!|004kdM;nRyH|_pM5YWGV zfd|n50L*JTNHrs0(iX|;t>qH7^J3t{I<*dTZm{=ZqSwn83#2*u{cKD+cW64vV!-W6N zPrT=zz@_R&d)YIa^ zO7oA}4a0mz>2h2&s-)nf|8R`&? zh$|EUJ{Jnb4z~2RA`GPu1$=0M?X)ZYMw9l;gv{jG!k7Yf-&s#G*p0E7a12w``xGri z$#=q}^_^4VQM~5ifmzO7%=XB3i`uTK!)C#@kJ$mPwEyCqKmIaq{Kw$L~^K zneuNuA!&T#*YO5VRJQKU2JUplU-)iOK6zGJqC4#*cD=`9$yGort+OoT{5_J!`=T2K zW4Uj!tJ`%=hvT;98?MpM{V>>_i^Go&smcL&^NftRZ$!%5tP7I+>hTiVOVQtJ7`v2s z+^U90M#6V$H`atx$4$^vrb<7vQmsvi%gg%W{4jdy1Bd+p3s-LwNi3GBs4ljn*&G}M zZS9&|;a~^65G&atjND-B|CVN?&h4XfVB7O$zqaYT(-P}6>1P+_xly{?>3;(nw6#o; zD6Qm8s%iu}EKR+y?4e9pDrN?l;&4>&J%mbOk)6nbX;hU8qD!HLQG2eR9L?mBIDm8hryedHT=O3=XTz}p`olS1K+p*fgP*7X3e_CdX$tFDW zC_Qj>3s%hRvs%EvsqE2VWaXkM+4Q?+Ke5*tbI*Scw^v@i2z4iE$Uca^fEy;*gEBQV!7`rbpSf){>Pt6B}gPQYg*l+Nu5mSTDDUu zJvcvjkjr;sSz%&#u~3sU zX3TOi==INb4wrscOhF$*-keawiy~H-nn)JHIO-95vUol_8GZ5eVne|eq3wLO{A#-^ zN-{?9oAiFzNWoLiC;bg0Z91sd!s2 z@I6cwf`>zb002z){1RL;+|g;gk>{eyXY_A#g|QGy=y65e>VQh%QkPH6>C9?;OpDnV zf^l+sI{^E8;>O4iUqMw3J^(7T7upMT1>sGlT0daGZ^aNr@GrUsU>UTewI6K*B$3~h zRZKeZ6)tJctTMOw#{k-*ep0VE#i>#GO;#p#-Ajoh-`I7_<}%_}{N(s?B0)%&70obc z1YwAR=8BsrD4ogbWBmDB-LwoBmH^=_tl;r3?KGqYS?E2-%*Xd{itL}{dPTR@s3v~J zz%TxrwurXRG!l_0nk{EsC?Yeov>})ag z09J!XR*jZ_4Dw4rkkjee(M;NjUN|=sTyT7=%y-E*q+TnIe_gO z0H`Ivn*=dctyQ%nCa(V}G`A>Z6;o!|P^Xyhcu^ld4=$3=5vD7tb{@TtUD#Ivd!*ml zTU)yt;JUmStT~;f1pG3{uOISg;rnp;+^g*JnmXj_vqgIPHThw*xlBaPpg_rO(NRBrQLcH>_N2&V>r&C5;qD(I(+uHKYN#=>$oQ`R)n3$}- zJCjnc?ALPLIp#2q&pIX+xU*M&24AqnUpFf6O{AMO<{}j;SJ%5gzWm$6MKIsU6eN=r zMdtD?&rN~l60eJE{ZD5O$u8TLm4OU=SW$IaI2}ZwVZ*tz!IoEMkao8h`OrEK%`H7{ zfN8*;pN?jxJPabHv92LMNp$D+#h9r@NUXkiy8iWYilulXGxwXEp<~BauPFvf57255 zewXi}AMc+W7dO3ixI~#SEXpa6*#4ez@Jjq-<~T3-%D&KH#NEWMV|)m-E_}bIW=sp_ zEns@9*JQU=ttdM4NbwOb!ETvP}r@XCEmr!2RCr+{)~K1S^HA=-}Bm_tjsb{ z4Qvgf>tNKC7l($O--aE=-$a^+3+P5CLI%@)$RI#>AQ&E(g~rD5;fcge*4K$c9hPRr zLOLvA3;oT<+57~h%3Vp0nE?{nLzT#qzj=GuujMC-W(W*|r8UR>!WTkejvRT&Umyv0 zGt`r~iOXzpP?`+|UY^@B#u72{(1*DrhUbYz06e5fD4#2St~!3Z+1Q039+SHfq)Tl+9n)Q<(_`_%MZ%fw3?>>cAcNi)WPKk+K8+_NC{5v2G#gH z@znWfcV1dCQ8GW%yTi* znBZ*lNM1~9gF$uwF6oE;opP7tpPq&_HKQrCs`kO3zY|+vCK*7laVHc|R)5e@lvRSj z$)yGa`4ab0=*L2;o9W_~_kAR*NtjW-Z54&T57LinOp59(xcwh#Bgg0N1hx`eVxSv2 zfB(K>73}}s%)|YSdOwR`FieJ^vf+6dVMtyYzHeeAlU371@#0V$04Rgm zP8?90h!JdW;9{L0?eU;UL*fbO&&z-J;Y@@FaU)Sf(@~FEw zn1=MC%94u)pbs@!>27ioL9F1LB8hD8*vsyj`(dBgdR$@4)*J zf9-NQ^VWkLZ`Qk|^uA9p%;OT{nt9<}qbo1CGZJO0VUhE!vxVvN9$i5U2?q!SKYs8L z2FfDBzFqmSAIV+*r^a0?cKUkEr}@mAwN3%E4img0_8xA|N81*c{i%{wgFsa1<5v1# zKmpZfX^e+1H-p6pVGl?c4!%*MMjP;1K_^(6NP2{YAV%)pgb&U?JYGA=2or zfA;Ib%Cy@J-Lm+9&nVXZaM5RGU~JOSS0A4SU}y#!fi1xF zrNG0hn`2VY0)l483D@jE=_(m0%CODM&Cd#pQ&)H+q<+V-z-fcOoeHuic;#=p#FX3l zr0@PnZah!N%c&?F)jYw8y2!=}bbWp8iDlZs4b^Nd`si`k--#@9LF53S3ljCAP|PJ& z2!p;%Hwi8YFL2tBpXG{9{0RefR_#1J0> zzvOBl^Wk6J%F9biojnIN#60X(r{kL|*z(2nf zI$4%|iy2oO98`Q(QZA0y3otJyseZfY;C{64(Lq%1=Z8j|L6AXwm^79FYIb$J%)qBK zbS&Q!RKXw7Jr;TeU=y^dsi-jx%G+^PQ*UQ0w-;L|E~DL@W@NR=YjVF{@U~BTspXEyXy$I7~@xM}$~_y6FG|=|MUS)c>|o{d&~|%tC1(?^=4|+i zoI72%2*gPGM?1@lF0`WbOuXL?ALtN}=2}G$4^j<%x${Xyv3y0HbEI9vcdOrbVM7Bt zB}-RA2{?`r2Hb5bg@cfexAkuIXUN26g>@uUOa{m;N_}r9w#tmFz1e7CO|%lr~7^_G>AA5|p3V`1yUfr=|LX9^vLb#y88;XsmF-R&3>D3r6^`Fd+@zhk9SzvdATm?d1t?J(G z4M79u$JhDuChH%CQo=WqLYuop!Ct zMvmc^ae0g%>TQ!NuNKVRIi>!hyy>6%qs-xcNV1n)Y< ztGZ{uZv^ghG#xlhJ%o%1->`>Lk z-*KNnU+0=s6gN+OA9v$`um9llrcY~>sEYv15^{9SOB%P(9lSS2V_3{%s((IOll?Mq zXI$lcK6+{=5BHN-4L3-;KK%`ZAe1Vswzc^R_d;3-7i!9RDu$8w6v(Z z7NM+QmPAuq)+J$yjkp&@D~Pxh5v%QvGuu6LX8(A7lI0 z{m7(@h_p*n`^XB2gZc-P-rmBK9;gv9$pm>p)HdJ1GV)IrQ7q%o!a$_d>w_fzsc6w2 zeZcfF1b!ZrQ89(c!a<@89RK(FMFO!vr{vpiopzn^KQrDmURA(xursiED^N3TaJgx@l=7$7GOCBsmI~{HO5V zizYk;#EtM&aUjT4TZeV}Uws?YbgL20o*+U`#wj_mpXfo)D(-r>)3wiD1FpvPeFlU+Cbv0!p_ zNxkySO>G~B<;s5hq4c!h3Z6AJ?%Bm6kgydBJ#h$82=W6&fKCNzhs8#+IqrsrH!ii znqdMXoHFFTn5_NK{EkopsEHTf3bK}kJAE9lWtS33l8rRyM2Nl?@0G8+ODUDw+K6JO zZFwEQ%jS)ZQmMJ2dID=ual@Z;Z}6$K8Wk5P3M}`x+M~HCcoSv_QrE0JCfK?uz?dt} zJo1$v+1eU94~;>W;8{;7id~nw+BCexUcf5=%QdittBXU(I4iKJ0&M0;)6!H;JG6Le z7f%Clk2!8nui6P{r8PgYjuzcF($X_>K&lwneFaGh-7k0q`A5TPx4}Xggm2%(;9aP) zdc#=@&~KB=n-iuJ(UmWe0A+4Nn6B5R)7`&BVVV(0tmg1(-lESZcTGt~qTT$h!Ki#P zwm+M^`U9{WzpkUbZ4njmBh19R8Y%v`k1iq1zt)0U#(Zf zjku{}cB|ip-ff%gS#rNV85@plXlR+)vP@ciK5{9SjAGX&?oTh9^?V~qsCG@NGIyAz zB|{v$y6@Dc`jx}JD8YUfaiV)uVEh1bY{jWgc60IC`bWvZN#=0VekQXrn|Auzh2HF# zViY@GF91rVELCeoqLZrE4y#yvq{x?kW?B1rC?{CDd;a|)oYnhtk?wxoO)aeU)ZR*$ zoSF9n;Vd5jH{$;xidDxbzm^2?vbtl#K-_Q{s#?9WKIJ?(ZL8?BtpS4l zUkpL$C`5(%ont1C+xv|CUd$H83j>SgM$SAq3azJ%2WqwDKM###a6C3QZYdy(ZigQ6 z_tC%5hH-dF6l3UlS2~oYK*{75HDImfqEGy%XsJf+a0Ycb0FXKRmp<2ochJ31q&LMH z%=bMqPKWSg!nT&F#j!>a@db{Q%1X~yir$9QAP&n7Ok1?t<_|V<)`^aPyT(jYeF)K6-5x5fLJuqB zxlxrBs=JY_kI#HL{_aS`b)}+cT4uEEU5M9MTaC>rnJ+p*aCr0_Cd-xhXIN(OP-?+S z7bc8y`O!Y+rmBRWChXUkr;8cnS$-dtCuasse3Q#8mZRDv77$1=+)iD23vlH_NpeR1 zUhw((xK8#+{P?ZuRf^Gm4FWG!}phmFybJ2bPynIB23l3Gsyq#sen~BqnmugGWt}gBJ}%P2`{+hz5*YG+q`C z-1Oj@pn=nRkWDloxPdIlBL)l)&CIa7)AQJwe*7MKcea_C?U{a5cbE2em}K@*UGvrd zfA!Z_Rf9wX8HNK(x&tyHBg+RevV0(ybO(Zh$gEevwo%o1epNirl$9*AUY+^i^;Y@b zx|eo8_SQi_%#ExDM4=BwNoPY-pPPPrw=q}d`Bf}mP*$(ocI4aK=o+C9l{K;e02xEh z$ux}l1^|NiQI}uf5s`6ZaeNT@$%+vfSw4`F1?RV5%x^=_5B;2#aB46Xbd%KXS-dl=ju59E+odkSVfiSEpO0yY=fA zk?}-2AQM@4CytdSzvG1wL6hA;$drbdQ^b`8!$2mo+^{GCKU}6XbW0UOuWCw=s7bJ4 zVKwWwj(=)3YPD+@TctY#i6Gn3Hf|o>@(f=!`sm(+yf6|~Pb47A)MtO+x67C-Gc7+% z$Pj>SS=e64jcs^-d@@&D8&yxF&@5!C)|aWi|O?g1tZqBC9K#?0&%$k71hX$V$*|?~7EE)z@zKvt-6z_c;twP1Z_wI{;Wj+*_d> zM{w#i)AGfw+tu|Chwo4Fu{|V+z;exX1GOBHSd0~f5tvKI zJ*cAP-#TeXQLTQYi7fCxb!HCc|&XVdZ;(AoO} z*IPGMsw$%L3sdSk+&g(fpE+yH-`B64AMD9^>%DCix4xjPSy$Y)gYgy~gEXG4AF zTxoJ*NW0xznUHaP=A6~617Jw9QksUncDp+n!?zX;X(g*C^%y=7LBkUlhUG4#D-Fps z<}RGEjn+W>c$lJq2oM)lKN7yuMV7NbS#*$tW=%)$BX_sbmWB^F$c}Z@*TC{>LO{11 zq>Zcx;DkoJMb+(O9AubNYF92?Kk{yv z&BU}+@Uv$pZybG}DXLko0#R>K?p>yPz^0`M(YEZ?f)ZjgF*T88w2k>PQwvTe_VN-q zrr5H%)$v^eHkKOAV!ZcqSD2U=kuS+dmes72*|r*b?|?h+gC(GdDKvSqZXN%uGIa_W zW2)MhmqOP|8qDe$K+84pBmITOhA5rT%`X5_(1#@2$ z(5%Iqxr#<``;FduYpbxQaoCc6!)ND@OzC@Y#Nef8uMkNItxi$X&wk*ILPWue3dgl z8rAzuO+}?XG!}39cqe0IWK}QydhPH#Ownwk&GV6cJ3yRp4uRY4miEx*(JjyR`GfG9 zb?@Yf>ZM$nt@VEFZ|o@_~#jAIQk^fs8C4_!s@zo*0^^ R=lB2s002ovPDHLkV1m7yYUcm| literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_transparency_14.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_transparency_14.png new file mode 100644 index 0000000000000000000000000000000000000000..e0cfe5e3e711d49bef2e9e6458c66501a8e19f1d GIT binary patch literal 7903 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 AvH$=8 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_transparency_14_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_transparency_14_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..70ac42f3671736e5429723b03c7777135caed0d3 GIT binary patch literal 3674 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_var02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_var02.png new file mode 100644 index 0000000000000000000000000000000000000000..53b6a988bc5cc1367e019f291fa0c738eda96c7f GIT binary patch literal 8460 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_var02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_var02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..21adbb049f127e809f2313606d51ad4c6beeed49 GIT binary patch literal 3286 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vector_16.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vector_16.png new file mode 100644 index 0000000000000000000000000000000000000000..dcf37e379d2c441e65c910bcf2c7bdb32d9172f3 GIT binary patch literal 5612 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 ajJ6#vM2}kD-ny9L(rBscs#RdDUi?3IBVbSf literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vector_16_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vector_16_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..efe829facbe970f96d7b667b1c860d6297295e0c GIT binary patch literal 7495 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�s8U=w4`%F{nh)SljrldV2Z2aOmZ)O%Ulday+bf z(M%Z#exTLMY`-v33tpt>OjFCIRn-Py|$8fM<>nOB#YNE zR1f!B1HD}id1xVCA~>q{hL2&dD@g)_5`=FpsGLpK5}RK-fNj$|e^FkgQRjvPDX}0e z>p*5Ve+{JjkK@7X@AsxH^2N#)quUUMz(*Q3GvQ?KQsIP~NB6U|Al>=OLu0@`y?n`5 z4l|a{D<^>GtM8*XQO15;9!mGlliRu?3p}&R^iQ8si?VhCk_PlhhV1@CZx1rOBhRjf zHouD_<-P6wkb^$DpRFj{X`0+n%Adj-QS|R94QWk>8JuPxPI)7QJ{Ymyv+!W)dqT(w zGOeoIQ7*~Fjo$76I0urR%1QiJe_`!9Ay B9+Ut8 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vector_17_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vector_17_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..87513f9b84de5c5ccf127b74d3c773bb82f18e6f GIT binary patch literal 6033 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vector_18.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vector_18.png new file mode 100644 index 0000000000000000000000000000000000000000..5f819a13847a5cd2b9fd55b22415f8385fcbde2a GIT binary patch literal 5723 zcmcJT_ct5f|Hp$ODpk}7Eh?%6MeR*PimFwcnzhxaJ);QP*roQ~)U1lVB2?|#qr|K| zW7Yh6pYPxB`QiTZIXFjFAdn^|@izbHk zh+RLN1Hk4f;7UDaoG=)PJQcM77!@1ap@Bq#!XQs9`Ds{LLvny*450r}3lA#>T<|l4 z;!f%pLqSpY?-QNcO~P(k7qWy#Iu>M9gwrC`6prSdRo?b^YKZ$5>H8_U-OB0>3NWsM zUExz#c}Sxpm~vGZ&AhdYsDQxgC^pgNa@Nh=V+$9FUJXBV6u{Z1edT&Bi;Q1a=yiOe zgxji{jmbY#lFzk}>D8&YoDGxyNCa-|=DqgGgKm7k@xl`=H{Di3^jM6i=DyN6ldpL0 z&{e!<-_bdNKQmB6I=8RQzOe3HKXzyNgB5X{&*w(D)W0)G+l=w(3lg0cvp1;91>)pR z>*T*WkQ;gk>tr{ycUJG321cML&m@lQ?mCo@BpmN=l*!W+H%CNe($lg&$9O5F(4b<4 zEb`^IT?PZ_g~B1&pny%M@(#)IV=dyBk-FR8;Gc%_8gwYIGsw@1QY5GhEo62RrI*&c z|6ES3qhJh;%Njbuc|GZOIt1j@jPGR}&gOQ=^K;UD&z5)j0|FXs7ECvZ%`|;L`AEc0 z?0Fd2==gFd9~zH=cIaAQi-e>f^0?}QDPix&7FTZXIfGMUuFc)Uw@Av{la$Y^N7Ui>HW;@QV_{yEh;C~5dTNzq?B0$x3Ii$}QS zzw*-zVTGZ{6%VGmfIC*ZX>)U$tWNGTfA_gvaS|tpA>G&**&_dQa=43 z2SQ)b{pg20b+5)SHd^Boi0@DdP3>B)cZ0jO(Vg=%gERNi*5|IgTkK3a3hVy$TtYy5 zQ@&ehb1jXr@jWHyg#lw2QlE1}myMzZDhjqSxbs>P{vmtlM;XAZ)7K<#C=E&?QBE2j zSB0DflH^nm6kD+X>a#KbN1S|*jPmb&TvH>2S1GQ!E%w@aFaYPCuLtYxX_7|k;5{tv;BW8ga`OCmHk`XpRpLy8n}dDmsG{=Y|1q| zA8$#0j<&1G6L(TEtanTXtBHfFUOjQ2g@!IX1|ud?TM!vV#NR$qs<0?O9H0bxzn;&p zwZ?u7RaoZ_-jQ<`TiF!b-@?EkAUDrf#$n)i_3y|unlo5-xOM`*e1PW;zwtRHp+w!AvquJ5eQz2=#yWLgzF=Sv&hV)odK|?LnzQmTRK~w;;Ie=zKQ_ zdg`S1fu9)Xp*hqzUS_jm6<0MxohY*i_k0Elxb{u~dP#^a74NRzOUTkQfnu1Ng7I^Y zTHZ7!WI59@J&3k&xJlPX@c3Gu)hxt&uXaI@fpbnuxvNi!yNI*m`HO(81y+yLuz7}E z>!P%7D1OdTX7)XyXWKdJ38jW#pECDIz0OR|>10n1NJ+F~TZ|TXk1Vqx-^+LvV(!-A zqt>K8*bhOTz2&79l_(26Gzu1n7pIWbS2GL~dv=YzWm>Jft2MzCN`EuA1J;@8nwYwW z^OW$`iB((t=lWYR(c7Ht9T%;g z_-~;coJ>rAYPlrg=iTS3Scew9c=ZX6F_m!pXD)Yaqr5ZZxy~*2BW0GGchvkWbg9fq z>w$$FGA5qSu~ngzOIar%##?DrLvrqCJ=R&5V!e*Mcth;2)Yr@N1OpgZBp_+O1~tsi zDkA8Z2K^?e&E@WsfdPI3mX!u~0}dn#QY622B)f@I<(dJ~Q}34KJFPLFrxs0pDC2}( zHK7PxctjWmk@>TB8~3?yId@_pS`bK2@CODU^tF)!V1O!vmtO}1y?b^cP#y^S*iw9I zjLiEPP`1W*#FPzW09=e%O-`Dwr!6iHwne}?=!)A3{GBfFd#PS^myWiSJJz;<#-!t~ zar=H3xi6x~N3xnCBR=HPV)`KFCM4abAqL6d(r{c1fekryH%NASs#+f-2{CWXp_!L! z6%CX>JH-pow~IT;bMkicK7-jii!&!S(A4~4td-iN>_9>CPy8R8noWu6{pO$a64~|p zH)aS~amS&sozbnO@3MQJPb^YHEZ4V4dYQHwKedepM4f0(Nsjm5ZVWTSNssa#j*0Ra zv$d&vlQm_$d){=DMAVk*Mo`Cg;!!TXMke03Mqt}8**20wf#(=E)QCgNIk& zzvC-?hSUta60#7(`&u37t0|^-BF<@vv)sZAPWreMU#kOCs`&A4cnWn_N=%8=yBuzt zL|TEq?R3-1Q+6(Ut`lAK=3lg^p+i8hTQu2cW&>wfL&x4lOG4XN-*~o4L#v)_;?~q` zF3_~UHQo4SUXtiG|BRaH$8xFPKSFMOj#A0!V$G$iWG_NYH{9nN53L$i>%+dtkM@B( z;$U>Q{3q8&1wGV$IY2Kf!#2^hz%1-YMT@!bbu7)|g%a6)qMu(B+wdwmQ_WAAP<;C? z2_K|ZETw?epSFx$5#YpYiJ09~j!ZplLxRN%O za+wazId`BTue#>bl93s(HdE@4y;PqWzjqhaLNhZ}*cjVzW;bEBt9Eb8~P)o?W2@On;rX&Q;F zsZxl=P^pgjO>eS2EooeR9|)sP$Dk007M zraARZ<)rz+KGD8+J>SnoLMMv>(;GJ>u92mD%GIf)lRTi_UvMk0)Zx@kGgLfC74hgg zGPO=_XJk_c@fq?qV>TMMy5d)NXd3>&uGf*qip|7Q>r#<-0YS{v82p^%U?!=C&7LtG z{erAJ{8XeU7~xOK)W#acN zmVKn(S~Mlmxq7WE0 z-SVQUwN}L6#cpevZXk22^T}No7{TtLdFHAOZsB&C1{_@k#{U- zybQ&(nw>VAW~^8f@{8IsxnT=9rS5b_OXLHSa!Zf0jR$B4v|C9RnQZ6Ya5~DuZHIi~ zEVmYE)$1IIU$1&1SpgwA^Gc&C3KEe;K)>pY*0XW^EPuiKMt<0`{2V zV0pkMv%e-EMk7sqLYm0A7weRlJK-|+ zRId$%gtx8za^7d2_-7A95Ldh>51aHgTFeARjm7XvD%C-YA8Y6yjBXOGE$ zuy0BTIQa6hgZE`k+Rwc&s?aRGmHRX~j8}fAlkX69zf5R8mPqD3@rMSwc#Mg65@f-I zMlu6p5+K;eWy+d|gI9a^{|)&LeH7Dhb^5^He@&@b&V_b?abkXd;s9*TsWE&T;;S+)3wK_Xy6J|DE164lbwj6*}pCG3DB#GpJ!xbu3aNnflv-q`{MIWV}=beoi_) zE$AEI7kyV_0qD{6nL^S?!WaaJk|n%D9KlT`*;Znn~`_$|ig<5>+>bM#1BtR7$R z6n4b@l)mZ$FBov&gqEGmeJ$7!Kn- zks3_jG~=E1%6;9BQfn?K!ls73K0(8gJX8I;h{-pOXFbVK})j)bkN$6fl zVLNE-2a@7&d4;0bZzCYyftX8A6E@g(NPn4hVDfptk6M}fI;G?fqE)&5r)?RNpD1ew z#i-cKps%C#QL$WI9Bcy8Om zc-&x`LVce83(vRri2TRkT2o~k9ooyPXHF6BrJc&Fb@=btNQ-;!=HkU;+C-o3j1-hC z4KW{l-J0?jR>WRF%yX^M@l}i@VwMv6BkpXfr-X93KX$KWT z>4h~v_S^$c$8~&K`%+u2|7MGcb4v-|z>&?Xx%)I@R0xsdt0pmjY{2dl;n(pdbhV{o zCxTGipSiJbO?g)6XP+YSGA7H`{l2WpI)Gp^Ap>w7{WMX$0TKMHPcP_@HmA!@!XsX) zB7Aowzbh;d&WYjipt|mTKnOCqsvW19nA9Yx{?2KT=DS(>SsV_;UEs%a#!(vg_KBxS zne6*#?sT5^INPXE%}BAhM4kIP0Y=#FiKtbk6v*L4{_WiQa3VzO*k?nE)EioMxV8=T z_g0!oBSg`q=U*CDiN`b+kB2AS)ODP5f;ELW9WoouE5G6f(;?W3D`{@Zhi(`sKdLjj z^L2@ugtHPtMxY2tR66P{O`-iBT`X3)RBKw<`4jhtSKHR%i&@fs#6=cqA+34r*1nO; zldv;w$bfq|GTHuif)usS@S2Tc)U}@E5RBjliga}eQSsgAR)F$WpT>;22gE<#o=rr{ z#9~(HH%$u|r#|o2L%j5bYiL0}v&V8Jn9TMtbj!{@&p_u^bD*tp>go zFS=I&5BLQNBawFKD}fDHPvoU(l~eEx>u>Xw313tqPLP1j`W02FYi9DX6Ru-XwCy{w zaT|?rAh0M`c{`9RwBY~h~HdAa-Lp8MUZEOhqQN# wE*F{`&-hrGy*-{h!4mziBhmk5_Igb!?AqG&1~z}276Smva5aSrm|5`u0f8;zqW}N^ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vector_18_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vector_18_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..186fb06670836e2c9b7b33bbc213e31982748f31 GIT binary patch literal 8254 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vector_19.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vector_19.png new file mode 100644 index 0000000000000000000000000000000000000000..7397efcf288430cf52dd17756e13fe5487dfd3c1 GIT binary patch literal 4889 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 b>4dGc9s04@!CCOa@}jzpFo9RV9Ao|m6s{^Q literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vector_19_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vector_19_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..2557e2901ef54430fee66dae5b89017e2173d737 GIT binary patch literal 7345 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 XWvIP+Y<61yt0{Q6UV=41BYyiAc7LpN literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_view_09_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_view_09_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..116ffae91d5c51f5f3ea59033a3f4963da114efd GIT binary patch literal 2070 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 JeZw>U{{fZsw1xlx literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_volume_20_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_volume_20_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29381049d94f791ce9a43e70cc09f8237b91eb47 GIT binary patch literal 7451 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 XB470rEcq@?PbxEGYom9DZt?#IS)!sa literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_volume_23.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_volume_23.png new file mode 100644 index 0000000000000000000000000000000000000000..dc061476539ae7acb4bbc507645ef2f4f2066718 GIT binary patch literal 67522 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_volume_24.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_volume_24.png new file mode 100644 index 0000000000000000000000000000000000000000..69e47646c2c47460c214a17440d08f94e8cdb9fa GIT binary patch literal 61537 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 xd`IK{{>-B+;+B-%8 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 Ip`9cC2W8BdhX4Qo literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_volume_34.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_volume_34.png new file mode 100644 index 0000000000000000000000000000000000000000..59a321068b20d119dd1d3d22b94b0c86ded43f70 GIT binary patch literal 28521 zcmeEt14k<203dIuKtxyO~acgmRm*7&o6etdbqHW>R zC*Sq_8^0I#-nH(Vd*;l{nZ5VSjnmUnB_;q70001Dbv0!J004vce-|DQ{pOCDjtv0t z6jWDMFbc>!dvXtA|C+{5kke5}kp`$X2~Jx|e-D)n`S;JW^L}lur%QJ6-Fq`~)A3k| zi&o}GWuS`sVjWW)x52UQOB*0IbwXwHjku49#-QwlcS;*!(5YO%?8Q|Z(>v1bJtj|v z|9kx37X1Gx5THx%z29g02fO@lsBx$!RK&#^3A8t>=T&u8jU zo$seNtt8UbdP5nh=1xw({oVbY7xpmHx8~&egxfxL$Q0E>5zzUg|GEl5Ffqt=@TGty z*P2Cr+otM|Bl(xN$KO2CyWb23Jzlljez9V?E$z(~NcwgzZB3w$zt243hb>8Mq96|o zdysvkSKgDQ*xvi=J@^cXFDSyH#!aMgz4%9`XX)c4B|bikBAuNT&LVH1A(DCSC zgt+Iq`7gRCU^enTAWmdU!Ju6D&327029$jq^*d*R5-+?e?i0#9w1fBg=8#XIi!eCCkcAbvc!N{;MR{!Fyj zN=_c!A!LLor*JSalL)^Pfvo}vj*{=sPv4X<{M19_?lJdNwR=f2*mvBXnUCbIS8*se zpas9cSow+o?gw`mk?@utZ$e9#Hrb+@>V4a^MB6fQggD;$7{JY`Dj|c3ux8zp1$qld z7~G@pW-(%yF*2-6=-P^#P1WJM;M?+EAI&0kEA)k3c)Tu6U%sbNm_@Es9cu8q#ATXE`X^%34 z7=U4%T0CWH4oU6+01uwX-z~37pFakHzoPpyHfw)JG6%xs7LuB{vEMf#0lM{6oE#n3 zVpBqUx^6HZYyHP*m2$SXi400$Va1Y{N%-TGY*ba%N_%c3O=b!^wYuuLmPIZr;YiAJ zUTq}S&Zu%UchN*5+Zq;mnp9e}9_?B_dv3(;)QXUTV#XSw=wWTlx1+;{tb`!WNBVdT zxV=-N43rWt1)QA5!)OmQ=qC#t+E$}N8N_EGlTaFO$jOD9s%4_GPK2V&@z+rR%7sq) z2^eL4ySiD9x|0VKA|js7wn~rRDuSC{S-l)0mLx&A#QfLb3hkiGR6%HBvHh_3zV|TR zxvKIBtq4W(60b4>+}LQn1XKJZB#L2L6OkcL;Bvv*(cpjoCe1X8`-Qq#NiN0_j6Dxx zFDu?ySYI37+VyJU1PTt`4Gb+?AAJ69R&FYVHX6OxH+x#}K!y%xZ-&6cJUs?Uwv;rm zPb4(SK^RPBP^z3r8e8jtM|J1R=Cx7?Q;DKOLd2TZnA2z0u=p=nK*;_RtH3X*P1&O2 zTUkc$-ofr zY)Jzi4$=iR1SzSa;&W;c5|CutgfxvRu-9tR^Y>A}*5=CTViz|@oowV;Yyu!n{+zm8 z`9~fJxn!@BsVz?9`X(c9OX0!vmH*Lt2QZ@^GfK#JBEK^Y+iUzK&RxFwD!X~e2@l#y^%`3S^YP5q2VR`t1$>28GR`)YikH4!a zo5>BvDj*?)zhq!PW$H%)KYT{yt%ZXDkX*2>n9>%8&!a9~QHnLLt?vYx8}}$k<@mb7 zi!ZNE4sOm)!2^TqX+K0tRANJIunjU`-vS~fCU!;&q`MTr7zg|1+eHtfa!+z17c7tX zqo*WZ8>6jbza!RS(EIQq*kJz#=!mKDaU`yKqq{LxCQ^XbHzMe8w;29gVF6 z#%!V`Qcq+9%IhnFlQHM=lI2ZiQO885w-8M#GT+D{6RF0ybTT?VLH6Z`gCYr!=SCQY zM)uRgYnuClOD?KRfG5XM>xduy2Gdt}H`Oy$^aV~H4{>-^oC%2Wbx20BVq@*5Dq~^U z16aa=JZz?QMbC+;2`M98Fak)NU2wlmk0Ys`f-jnvd*)pnzu9>BuDi5mOV-ih^TKNA z5hJUpoOzdwlQR#jO`A~|FMoUA`kTktKSSt5J62A!xeGZ{Jqz02G1hG@VcNr^B1u7k z-*T&-NPHJpaAMF%!^9VgW0z;oz=|uyVx8Z_Mv53(<L+m+ z_G532kMs|p#2Nt-SQq6TV8li|&qan|z7cWpZqNt}HGFj`HV2$_nZ5oL2dnqE-*s8p z9e2+FW33~^pX3X@>h(igqvUf== zYK@xHt-O~Fg%?leP)C5-W{#_1Br=i zB~EIQxp8c1c=gFgd}-59P>16c)X@QZ-oed9-5p-S{meGX_$PoV*u5FH?W7Y_zl|aa zzS&k!Pgskf>t9|?N?6-nArc+&-djMKWW}%Km0A%yzqDrG7Wtkc(5tFcLw58#_Rw9% zbIivtVi`Ai6?&EyG|Cjn9rH_X;EQlE4wVt-0;!$`A~i#e7LY_FL>OwYYZMCnp~H%i zZR2crp)}2C)YLlGQljq*ioG}=Us;QaB#l*(6)BT}Fa=xAf52f&rSS#g`&~!9rVPhz za-BR<0)b!K|LI0ZLH~5u80fqFqDcEa+sxe)aj8m8&gNTEY}uyI61<%(CvRhs;>}hs z{}A4fkjZeaOu@(l({WJY=@pZfsp)5)4zsgxMj7=Rb^TH{k|d}OqWFb3XCo}0;0x~Z zlcxjE`MXW8_g~pO``Z1vmo{m4Z0Xg8%ak2)_!I!ru7rPfTOd#Fgp65L=d#}~Gi9Xj zvW-kkB*n+1VA&BUJEs3f{GaXS)I77{CizZlikV_J%BJ?F_=MQ@T5&>l~(GpbKRBWumL#@;z&PmiV*OWlR+Lzqi4AMJ%9?Lr?3M^ ziRjP#X(x}~Rp9O}jeG)M4IdWs7IG1^WEOmQ1Sr*7!>lWIM@5L zQ0Ht-<-u$7;oODe!|4AVH{Qb)<`0_$L0|VefA}%aZah46Tc-qUk6wpb+_xvUGnF)2 zzbY0XZq%5QNp+^J=G4PykOW|V^5QN}ts*tl%Cj!cAP`iSj|1tj0ok%GO3^o+wKg+VFsnvT`*1)u#z1G62=wyUf6 zMt|?GI^}-aC$uMbGwr=kIM}Lp}TQ~^LQl?N`aW$ zB!x(c+klQ^FOrCeXIM*TJ(0A2$zh(zAW9w_x&Hk_dxvlpBwyIEG!aPdD|up_07oLT ztX|eL{hmK!oyu@Sl&Y2Z@yA7lv&R#5aX2T$Y7Z>}u$FD4aK-X{C&&S6qQcl^o3v4b zsnUm9_e}~c=;|+1f=W4{4xK&qbNk!w;k~sRC|%ID*ZIaBSa^SR71%c#*Z*9(X~E_K z8L>(g0h+{!dI8tN5f*l!GkD7`ENV2N#~Mj$S2nE2C|9qS<)HrG0VGFWooyRZD8aGj zko`@9J%`RTl**D0GE1p;?YRHFl?5BGH$7xu0kagGEL@YyV>rDT_?usRPo=-jyZe5- zUti-d4;N2+y(aVqmUb=6rXQ}qYgGEjBKV0%ogku*Sdl)5vy;m0cY-7xDJsAN^}BPM~J z+5nM?upyX?hhx+o@BviMdsar06RAeD$bbN{vHzgVs;b4)_p|f_sIkhEld)tfaiqSU zLn(-Gi#+rBf>Ap^{Kk|fXkRBNQki#R^_I5|XQRF&SRqUY&#W#iYh!T5nc2spRu9sVd_Tgp}i5wCR=N)Yz-#LGEfjlGcQ7K2N zA~~DNIG!*u%a2HXtds3xr|rea)LJl3jt~$)r}lyDt%C0uDuvZYzY301m-MiDM*bQ{ zUvn6KIylDHwlFE@khXS&c+4IvxphsRxftf;lNYD28u3!@5v`~5Jt?12+F!&uoc0dD z{k}2gD;>XiUxn4=eih8PAyn|?1M#)R*3L_GSig60>^r61h;<#Nwy()7vP-t*eP*MF zi7ZEGJr@O%ISL|5{GTn85-2SbH_A&S7z~+)E6Q`o(>X*cWw6jqAfG!MMnuDFot6NQ zLqS0a;=C!T5j~u(!>VXWJcmJc6K+62!z-{WLJXJ%DCs$+Ieew}}1M`SSlGrvtnt`e}LnT>T)8at%&u z-ZbVK9CY>WYj7_uTljwudBzP76>!^Pt^j$xmt0u>W+esyS{`!FbTvdAd}rs-`)?5L zck|J6%1dlSkPJGie_!q0wlhg`eNwd;YrpVLYG<;a+Jt%_HzfRjV4ROf1Uitswyh{u z%l&(=91XP_x0<%09At(0MPxoB427m;VshQ(2}iId365jA*u7 z^%1G(6vZLc7+DGhBI&Nhuc8?U!og_};t*epXtBwt;G1{F-YU)ncr#6 zGvUF@a!MjIo=ro?57RCa=jwauW@FNCxRc7`JD#!nYH0TTp#BD)ARMr$ zF|%u-DB*aGA;5xt$srkX$qx^V*341x+PT8GYp7O2a@77iTiyRIEv=Z{87Eyy?n7U(_z8WZNIFVlO=GAcpY@y> z5BzZ>spWLR5*)z|TIYV6?IE|ZYTFCUWzRm$iDlaRE%jOTWl9KrpzN-c9sQW-Xu&F* z|8Rk~TGwt7jvxajD85vYjMiBrX@@jJCX$ug8!v`;gf)scN`akD6kGH|Lwdm@Dm0Y( zQ>C%bq&my=CTjY~YW)rZVA(`HE*)}ULi9HS0QYN%*U#FXT5Ub6i_ERs4v zG}Vs>RjdLdtCZsRB@Dljq8Sc#!f0gEgKsX!5ekvM5n1S5u256g)<9bf%Tuq%5n0Aq zaQpKx1J$SF-lEyolAk8x&gBwOL#2uswpzCgcJsUwJbF)d#Inm&=g7rdlO9%4o|Ow z^IZGE@nlk}Me&yFyAnm1fr2r|EI4+bG3X}nlxcTx~pRR-33Feqx$$Mp~2dAm=;FnatvT}sW!a?`|&{{q@ z_y^9k+(T}UAiCzWej?v-Rr!;p^l&P)wmKHjo1F5ufl-vOF1LS`t(7d-u4XYnCCQcm zfeT5+q$^JYrymq#?3t6OdfVae{DY)p7OCHE#Nsujx@f?3V%AeU6G($D)a!y{Qfc9 zq^mCGF4}*(PAHL~QK`c@yFEN+Dbc)IAEL>lT-vD%wk4=eVrB24OFKs^S?{}b;D;bD z8Eeh>-F6TC-20TTPw$6s#}7mLn7p^_6V@@%$m&H~tfe>0yJLBxlm2sV9z`#y zbd&NED>R%_EqV*2J+!b->9A^x>}sP4HQKR;jzA3)hu+wPOd?6r6^_#L$xZ zGXlGhh}ei#aP)V0w6kCgTcv!Yqm!9Jch9Qde)nXhYEUq_phBRajv6MOb zdYphx!g@8jo)#^IG?>^T1s*rJ!SL4|Z6MWOz0+=nb!y&lBK81o12Yun^8sSO*KyqY z#&(Rr(oP}8Q69R@b(z|pH-m*n-LV6kM69i=cLCeUKwC>z%ln6btuNp&f7@TVPyIkx>H(@shz9vnwCt*LpE*V_K~XcMB) z;;Ybzjn%%qCmzGs$(XSv=@WQq0Y^|3?k zXhcj)=k#Rf^?mj1!@rZJdI(NnXi9!3QO)6`o7QnWCyy(h2V{2yHHnQCc)-p#Z>H~l zu3+qH!TodCg@EkS2^Ge8$^;tiNMy!jU_M^X5loLgc$<*R7D+3;k?x(XK+8j*`8+x~ z<+l*!4VUKWP0A8Y>jfS3TLzyb3#fH`nJ;pbZQ4Xb%n#sjhcofNPJ+WDg5k)!OGWA# zaIcejHmGVaaYC8?Q0Srqvo^P%QK$@=I`pe3T+-#KU(I24d;%!D5G}D}K=eH|s+kbi zVi*vPw`idla9rdlbv$aOW)xxUzN!hVRZqyBr$@2)yb<}rfu*OZkfWeTwAT?8mI;^* zA|PEf_gWA9=pZ0Su|rwtHK!G>EN3~xu0GKWkj;!4Us7n6E$EVESU0v%q?=?ME54ZX zVbZm*i4|tT$u>Ka@z5AJ0=|MEq(sp@B4+pC*$=fQMdB)duGvB@Qm(p3uEjpvTcoVo zS)_DC^=T`-Tc+iFc49+hV=^O)CE}Ks@Sv4=qegV4MihAdMDm>!_%afM_!@%EW1Q*~ z9yhI-w8(2(6Z?KE*XF~OX@pKTG66cjqbZ*I@t1$He3B84U->X-$c7V24#9L_l{~gm z$At+tH9oRus9)!NdQPF^Y$e4aL`4YRF@lK}Bc+L={YvSd#)s<8r4s$Qu?GHpELq$P zp2gA&`~nqZrQ@y|mZ=4OYpYcI$?`}z>?+!Pp2@m)yFai5x}E@9dpP{Wcb0PHm| z?>v7QTF~-Z+`c6uvWo_zNy4d;PAlYE3oawwk1|t~S6|+Yip9de59dGW7L$MX2hs)C zPxCeO^L%|mS*0w@3(aZjoy>%=a-4Tanj3$!d$$@CR@)gcYjTX)F-bDPhV42Eb^#N3 z`lJqDcOT<^{+}7&;^ls*`&%g{8sZ-WY-?bmZ>|q?8xypxgsNtT1S@Ed_N*Tib?;7Vf^{Z z=N~!M(}srR2iY0Zrt2KZ95c%-q$pKK2fRr8;VeuVA4aO;?cZQqICw0F{pM?pLZ|rH zo^D`zK7FiETv5e~sq2>o_YEVf(VzEL(b`di<{{ss@(xS#M8t%Iq|-HM&ht<$CU|^| zSK&O>-vl5{H>%G9!A5FJe!F#i6)t6a>~k-eMGBbhVLlAxCpv&McPdp|TGU}qJs(A3 z>ExKL`M~CQ+F3JAA;`d&Mv>X+crb(T4=eCISa|iqb(z{LWg$~N5;us$$tt$VJ9Pwc zwXF-YlwybtM3gj$gqHuv9NI<=2Y^*S8oqPqIVfE^B=|v$7JUDy1*b&&Pa;;R9tnYO zDBAn#(?(CO}s5~Hf%{%XM)16l}%YkKEt{yHV-$Gw2Z3^45 zFk|@u6V8>BpiTnaKo!Ye1(Ng7rUJ0-%Z00DUub%8q$=UxL0R?ypKlT}Siq`+8o-F% zaX>>ghp2FPFJ2G~H^`n_U5+ic1C#ya@@syD#{DznG_=a|Ms)(Qg4b+Pv>~=U=Yg4h zcs9yj&=OB7Z*9|4;ZqQYS86d1a-;=W z*dCq5B+G71izRW2H@V`#RYeq7MX6~3RaJNM^oGLA-itk4j~07DkmjFP^;~~z<=b_2 z?s#xSB%QtraS}qVZL}3U!Fr7G^|f~bsR%G~LXCbRO~yeq$I+7gbRL%J7w*`vxflN*SIi|O2MXy)7^%bMx^!Vigg0bv} zA#eElX-JXz7Z|i1rK2h=LqM#Pkfv*rkL1n>v_lJuQR4Drwf?ToDy zC z(|Si*d?bIFgwVz3%-y`@V~1ALDZLd@R~<~EggUjn$L)8A{*B;!js}ozXvp$Ks$Ul- z=<}asZvURL&C;LZM(Y7jF@#_ARNmlfG$LDCUfJt2bK}c(Bp`%c>AiK@j@>8jJSvdshV)ITMzy4)D}p5@d=`|{sl^q*3; zS!mSUZ%*_1FsvpfEb}vujeGgvDe>4Ei|G)~t8w_TCng%*tDApd??%Bw>!Z*D-#;k2 zA2gPxGWe2C@S40WZvuw@J~6I;0v>mo-K(a8wUs$!#6>owkzT*@j4pmBHoTAuZ+5pS zr~d@tj{D9_oWxGt&ExwjW6+cnb$*F0FDm&a5xcejeRPf3FIo54q?vr*rm~rDNwB2S zAf$O$%StT|=I_Cwm(EV`#??<5khR%zN_1D-kRwekdhn>OSO>gWesQQJaeFNBLKm*r z0w;qsB3=5d(mk_xwKYtPM+I|isv_B_FvrqxlN9lTOH292T=+1!z*L`8rD%DUGkcts zksGK!-~ZrU@zQwzjIVfz-7VS-l!8WpvQ}U({@sMQ*Gb=&>~i9Z0$FtR=h8pT_2ca? zMd&jsDcjMMyq8;JExe?7XDhN%ycN(+($w?ai*XBj=#-c_PboVVbu`HllG%Z>mA$Ti zape`6fnU;q?^W?twp)6-R`mX&e}4eIpCa1W*ZWgy%WdB``3JY~v>7?%4MYUSIICCP zMS+ehTZYdu+49xqcu2`AtBCZhMBVu1HB=N+>GA>@EOPo$`G7UHXC(>gUi)4?>JuI0 zDAWLZT^Z^P{){oNI*_;KoaKhDKy#OjvVuOk`Iv&G&A6G7_4WRthG zOTfAbQTHT^9cmX}V-H|v&^m?>`_}^_A8>_U;_ZcRdHMcYHw*8lN?r=AP4#8HZ>Ymv zTmD}OIEFqtD>gWjG_JzrWWJbi8M?f3$|EEFP7KJ`GeyLO>GcOQ=GVnFT2l7e9Xqg= zRlsrA9rkJQ(BeCi2+7q=-|H_3wx%pkrzhKD5I%MV`SCM4boott7|ys}rdnWT@v_>T z5khe*Y`5Qr8Yb4q7L6+qRcp)@r!7@db)S&-niSd3*wjx&yS-otm+rvG-4k@5nQssB z$S-Lk4d4a6c&l#_Uh_a|BD~VfDVgIO!DJC{xnR;|UFh@~$~C=J*AevP`Xvx8Q0YE3 z=QUB&rr~93fS}<;^v-&CP)-9U50$?TF2bVjFijusG-Ok8tvMUpthdg*@?kR52Y1V* zpRh%FPKwvR`8KsD#}ybR+>X){SB{Fg<7?p=(Y`_;S_5t{Uljz#W_VDhA$8b{RyEvr zziBJcfARco{iDAFP|I_K;1wGD5OMb$V}%w+$>@@Opi;h_a4av}CB}1y#C>!tAiH(6 z=etvb=!S99h}}p7_v?|IPKTH9XPBB^j4O(KJ06lB8{*d5WX~;!et8Wyu9ulEY;}wK zC{{i_Obo4b4{Ph~xN{E*_bsb+W@@a<=v80T(K%~P2)lI@5_A129B}}CCh~1h@L_T}6`&Z8f_#7ot4r|`v8IjF zJUeG=*u%9lKh_K^t2d4K*7+Rxj@y zTTWdj+o>duY>zYEEfQ25!`2yS`&PXh`{4eqD2M)ot3`iH{j zbr2CB0ctb%El;AkeF%Xlna-3mzmN3Ya$bAE8zV^ymc*N1gO$R*D`n#j_OOMz_? z>*bv|H>WgH_Dds9NCqpu*Mf;BnT*|uSHwpiPahV;j^8or=ph{7m)6TLHKiaSbcwu7 znYMW;s~m5jBptZ=L(AV42$tm{t|J|H))X7DX~*oU$H=`Z5&ivGdfeCT}_u!n*a&y9+PzWDflj~W#p$uZe zDLT7Yp%m77e0p!at}3bip0$hB&g7`5o{(kl0TWUFw5&P9{k1emHaa2uRF#5~`n_dGudm*d6`Iey zQg&w{h}?4nMo2++Ux%|TvO!+V?$7xG85T(uaou8w_lii+2aZRHeE`#z-GGVY^S_pq zHM^|05;tB)LhfV?TTSZc;JCd8#@>-%mV5uMmt#VH|0(RVpzispJ zsu_vsXh@vY>Bu&dY4%~z$n_}RCU5btsGNAcm{%%@ndX-ptNf8X)N}wM_lmFl(I2`r z$zTX@d0mk6kCZ)t&jM6C1nNk&JkkSaNzwX}N6V&+(8MgyIdU5cgCb?^8*o?+woLw& zNCkd5oZ7=(H+Vb`zZ4~Qm(yXoyPsw0)m4(t?YBdmEQ2mTaC)I<#+*R{F=}a`MrZY> zbU+2i6e-Cri~nx@dY?Unky!Q6g!IKIsDX`tA;K5`CCN)Bi?W&R9V5+$`sMpx%fRJ7 z8x=pSSFF#h>-w(mX->EEE|O+GS!`&*Il2kU9JfRz)5e8^kv=rjbf{)zARA|4Ke zjuMnr=MBJ=YXZ9uYTZwRCH2w6b+2)?)63G`vV;HZ#b1}6iZ3h3qYp(%;333HHxgsq zsL=ne<)3^$sr_fFe<}#Bw5n z>15wD;WA|7!c|Q2*;S}IM$>!Mf|6Y7{ZAGdG|rj){YtAtX(>a6@Q-y!iVy%wl!T## z@%u*1*uT)<^>RIbx4Paj)`?aG-M{|GTW@S9m=~d{*es?EPP`6grQmSQ2Bxz_?>PA6 zd*u2(voODO&h+P$-y|E{Pil5xidU~><|kvnR{wQ zu@Pk%Tb*S5R{3vh%F|W>>-9cLEV}u;y2Ts`Y57KJW3-%@KQ-w0qZ3UY)&zQM-D+B* zTC=TDG)>qRi3w|Vt!T*;%i7s5?75&w-`&?x)Boz=m)}&B{$e4%I5~lJc;Xdzh(o28 zxjkH*$TFW&xqzPi319K@%JYamvWqS7_?S#;Tb>M~fdU(EmFVx(JFg?wKSSQWNX&YU z?=cwjZEq4GApw65Z-?$~e}uJGsJNasujEb7@X2fiCd*I5iRv{**LjWBs-%v2gdl3Z zHmE8hb;l)datsL{f4IP>l1je_?I>EKlI*5thkLE*_f+s)H5HiU6ZAmF3Yas*u)SmH z1S71^zHP#^pziYJt+Avwf6ZURN4PPPh3)Q$cCIU7d(M{wLc&ms&CZ6|6t|fR-%ry@ zj)1n5`?og&lr2%;?i-jJeg^)kPs!!b6sos&XR*5QPQYq%+;sC!5mtHM5<@GFL-dA9 z>RFl>rd9WI1=Xr6pniECtb&Go-$;oyRkj7-`c}J-p_Aw((P!kx9}%Y|e18?JlIks= zthWWegz zxX|ufLx<}0>UeNeFb}b;Grp@)9q<$~pQf?LT{*}%S;w;V@fR0|h>Ld)^gv`|ui;m{ zwg0{)$*Cv>aj1qV?bIlh((uGzm;G>`lf~sl0Gv(mTvaYD&K0XCY`E#qt~@+9vxX4`;UXPlUlZsdgmQGjlzn*khQe z|G?&;u`>aNM-fkB^-J}t+Ac!mt0(oJqHv5Z^LL+Tw$B$DZd`yJ7H4k2HR|Ssdu;!P z-Z|JE*tlr~J%u;>t+Gqh-bbv2-dqGc`Qv63`84nu89K@GhzVM6Kei2fOYrcsq9=dSYgB1X>Zd6=yWBF2|hdS2D>gQlu$v4BLF{C$CwySK`|cvk1xV zA*ot=>2})p*UJsQ{97w!8hX4m)--ns=+K^QoqKIWC3QNxTxZWYmqp%81+0_YIvV|z z@%&YoG|j!7$sHP56)R7Uw*)nyaFt*Od|{fKL&emwvbs-(yNS z(x90F74$?dI3GZ(2%NiS6?d{MGR^vVzD#8KD)+^VZG#!_Q(xGTMPcZ@%FmP2lkM7u zV(QaM(=y#2h{1?GG55=4by6l&OY=v(z%~(7vZb^u`Y4{k=E-2p4ee*VV!B znF`QWs$mG2v3dU2@z=g>lN;-QMnEFL@o;N1(;;0$9jWh;WCd^Qr*f7)gcRZXyFA4) z6m!sm`&_Aie*L$$vS%CjE-MDdHR&KJNy7mSdu2&hia9tgd1v(eCR^!)_-*Eh0W?6D?05-hBUnkl+9u<=_a|S%r{JD<#Q8WFZj=0oa zoYPVHLl5-S-toQwXr}Ilp__4&tHhp7&O9TpM>WeEEsWjcXY{fi%mj!2&ezM@!K}svW$iO z5_5LicHw+wh#DQ4r?KkfBm9_|wfr&a$?jAO9wonyLhRf1=J@S?;Hfkhxq*pey$163 z&aGkfuASahU=GS@D@h*~Zq&H;(}33V22f*^`?6K50kXgzXCcQOKYX*VaLGWyc48X? zhJHQ_oin`8(q?%x%-l(`jh%%K|f9+eAC`_FX(v!#%Hw@N*C&o$H{@agoLbaHQW04uz@LbP=H zPgZzXIfU;`F%PiV)B}b}i$zxnAGLZmPL2|+(UZht@MFRamvg(2me&3i)35?{BaiP+t#THirv zUI!~4DMPm^puGd)`Fk3raQXaC&TjEG!+E#d2Ouce6jRPV{I zYYd-0AYe<)4lgmVLYh3Xa z61t*}qnZ&LEe#O-+N<|%i8j`Wh1`x2u1Eg1P2E9Z^T=v`f~|9}uetQc%u~D55q`~i zYaMbF(0uLnALXJAJFA2T4+%{@*XRScFL$Kk4?QP}guA-sCyRGeg+k>;jk+VWtJ=#4Q@Inl% zuruVP?%dpeu?&m%0<5Fi@i$+F@pMTKc9<)Qdpv-0bp4y;EI?{`TI^`UT4F3my{2PA z&r}SZ`j4TD85GyD^R#*-yj>)MoB8L0vkCj|J!(I@YCG`lmk>-{x-V!d*m#QQCjE&_ zfewqZpZvIGH6NJN#+?sFhNzF9e>1C0Okj7=dlmlnF1uy(T8cB#AOktsts-3$BwLk? z$px$-C>z*NS2}eNKb3#SKeIe9O%RlYJ!LmF8QS2dz*^sW+1vlxv&Os*V^#qcu0<4Mxbvye5M!;sD19gWQ(IVqJv~d|kJ9&0qE`$>d(MkoP-`t#W zj19v~w4WV3E!2J_W;LB&In4RIT6~e7_~An!$cRREBbEF^&I!3-AwiVY3Mr13zB}8C ztz&jCLd$OCWtiIOaQ*0u|W}gbkEPd9Ks4nV5YY6{d(|P~W-m zJ@A)?i9fW1g|?10Y0J228^j;tEgn@)DXP|(7Kf#+9@(Aw-6Ovv=o%$7{Zc_C)#;SoZJey zM}n=;&4@q}Iwr&Ye!O?~!@qJN^mO;@o3^2DQdjcn;$sDQ|FUtxsEq6X$<;qA6sq;( z=+v;^zPnoS-n)lbPR>$MrmtYY!NT5+PWr79!&34hRqF4?s4-^Moj}5W;r$zEF)^|} zIH^Z6gq7&+LiJ&KaCOs?1=-B6Z4tc4MzRYOjCk}y&`K-B)Hac|97&dB2p(}hzOLRv zVw3JSDg*S66av#y%U3I!Q{fHGSN-weNWN(LHSWy4COV&c?{bFjL3e%E3szEa0fZtl8mR^pY|Ed1}S@Tm-&k7_z`I%|4)WS2Tv0n9i~9zCH}QvA0xGM^`=u-fm=Ifry-yTpO!8xSvF||}& zBHw+xQrKp{c}*1Fy8`suR$9UdPgqNeu{6}`-E!kHKc24{&S z-Q3}4$DYfK@W3A8RXA0HJ=T>tkM z>R2VG*O@ByqYmkI<2QZGY}42kwwHS#fy)ig>QxGazE-o4<2)P0!$NQCkNofpCV!x_ zfK0Y&AgGZJ?{{f&m4&Cao%bNOU2nSQAC1?!Q3t{iT|*e=UsYB*hsnO%5Hm22LL*e& zx1}8!Vu;*`@m#Dr>6;$jT&K2mn9vUx=pnIkczY8amNCNBGDnA-WosZvd^YdNm&$ys zI-<=q9NE{L1<@;3Bx$weHlD3Ivb4MjUlNx2f)Vxn-cP$zcG%s45z-Vk?!f7fNPsnt z;5h|TYnma);TXJ^uFy}?Y^;z>3TgzZCHK8Ui2U3tFGA1bUkeqal$^}Ej=r)tbQ>pb z0Ka?vf)>}Bz2Q)lMKkS~1EYX(rw)sFON>;UntLW_Q%Z7f-yti1$Q?I;Q$B!LaawEH zcizeG{NkV)=5e%Dd!;9M1R+0wktQK&)oP&RC4X-IT?HqeqJP6qrpFT>j$Wme_E9bPkS#+HN;`l*n9F|0rHQ9(X9F7q zgtvro#k&2dscIs~|9Vwf)7SXeV7SPbHzi-PmN8qFh#mm^d2z8_D;f?`O7@6u_VqDA zDmb_}t3<${pOA6NZfHLe~#{hjCE%P}yS@AbL6dJy7&gR5Fuu#m?5PU=Re(>kV zCl3y%bHG)JCcN!|LBXVK`ku7?X9IIb%IaMMBld_HV1?Yy0{mI%v!t9yEU~>(0bXL9 z{6Vok9z!LANx0J(*H?J#Fq&~t#0FyFQ3)*S-<+z4dyfl>|7?1y!5W_ssd_d1SWwmG zI*oEV@Yt^HnCHVTowtod66tgf+;MLWaN8Kq!Vbv3^xEe7z} z7No^SU~OX9$0s4}9C`$7sPi4vBUUzwuOPw5$5}<25FJmaLk=uywBjF+<-^aql6e|l z)_VEk?@5TGwaqp4geFCu+G=awJNVQTUF0ks3XRL2xXEH?Nh8Ivpxp79{`8{^BLAa4Uu4?(R-;cL`9mK(Q7tZpGaSgyK-#g59_jin|2Jo9B1D zYu0?4wXP3I=9)d{KK2eNIcl3nU!AbM$2`5awligpr&Us$6hGlWA&_9eoG^h6&%fIG`V&=!KviH>n&4?-zs^iE~Y1q>@P`~H^CbEEJTE)Zw zZIb?AMs5ZJMI)f~td$v8szS@8p4Ae*-lK3la@@>wgWTz5@oSVc&TyZ^Fq}C~Owgc3 zg}HyvCzgy|=+8d@j2OD6m(Y;yvP7V;+!qG88L7xfp0Gt)2s-FJQTSF_^PvL1*% zoYTVo51A@{jm*}%Bse92j);vDRf{jzCxw-#g^6Mk!zq`rhBiGI&oi-idGJNm1^9Wm zW!Yqc8@>Drva)vh?XnM;9MK;yU4Jmy>va&PW)-JRN2a*$ujd#Z4RLDz&M5jb{)J3R zfZhQZ;dqKR1e(q|MGwGhH$3#>;&+NgXCSm?p0{$IG`^=9J)Ns-`tO?*qrF}my#GLZ zpId;$m0Q1}cef*a27TwU6z2pB@wIHixi1cic}<;t)!i!gbr;&TTD3q( zMG*1B5A+LA-L`z>>mNY>keaOVP% zgVV5%PVm|RCR>Jyr=T#r_AK)>|=={Z6@6_5SxN%k*E$p-B=lq|~94K$oB+QW_aok+HE! zOabys4UYh~DFcu>bv5)v&=7g?NWO96+m5{@s?H%xBnz_@Q@knUj{X`Fw5@RbB}Leb z$iGtaJMHZ_1QRWLCQQnrShK)hiBCFA%Y}sh&P6YnG`%?Uy`>tK;uS0>AV=<<>lgVMch=;F^!~d4MgAryqyf^fSBl1n(^=D?`0F#J^g{k{ifok&il1Erci1#+%qKg}?@^+uf9vZ!zvAiK`5$44%I_Y5ZR?%QISk$)k*HKLXhwNj{yDU}qIL}d?`u}t^#BF~5)Ag`=BW1(So7Ojz z&KR|LDtUNdrhjJj&=&K9EkKhJ`E%l3&Uv>M?x{6m{XI3h%u!qK9~ujxF;08GDbjeB z5i-UD-~6>g&I96nZhUO>tuu|J+}{!VdX(0j)(H}sI6ivjp+fbfJA2QDrKI6rJ13IJ z4HeYP=qV%T$jE(3dcQ_X)j5f^Z9y~gup8a|AJ%Q5%P#p6T97^N@#u#Z=0wjJ^%I|X zo0h2jxAXvqk9b)l zQa~W3BGMUhRbWVUEn#mo3l)FEX4I2Q+Avf!LbjQltUqn3rpelbk^Si=Tg(|YsCg43 zAd!9Dq!KGSXMwsGE92J8rGlOgFzOUxTsF!e!riADF#2o{(|fdn!Wh?uvA72ryG^Ai z&EtE?@N1YVCP}VYkv#_&xAZ?Q|5lKh@opg%!#3vN5^k~(`lQ#rupI~G`=M};UC1uP zUc$2qUAS5HLp$^BK>Es{>Qa=ca9BT)4q&b%07U^XJwda8p6%dzikHY_>C;R=q>^3& zSM-U#@KsWBTJLO*sM6w65F7s9=>(T$WMTA5i(G={jO&5 zOf1k-ywP)WiSL#sXsGt$9el8GXT;hH+?KLf2&#{&Ed({#h71U3s{4Ax5Lg5H3WgNn zT@3XLl+gmr0-vUtUi&f=I{@8qV+L?94w9bgSdi}C}gnXSGbPi#T5(F9U6HGrEMhUj< z3m}4P}QvBK}0AgU#pBZ8i-lSL{ZcM;IFg@XJqQ_=yxbV9(d>83O z90?Qc#d(1MRhKWHJUF!dE%>4gzcX6^X&g0xuVYk?y(3iD0y7z~)$!_aJLEZ^?`P$6J}=Aduovvg1f;4?@WFJ-U;&Y~)5cx{DCNwb z;pBGz?0kafRffyR0Hf&vnZIGlv+V(?JPrU9A=x#QJd6XHXnsS!qfIN==%5C+iRfYu z!@wU~!SFePik^1KFzvV^@tWt(HG-65-Djkmv2BZsn2R43^?~rEXd}@*^1@VM(wDwVH)XKs_|qFX87cx!a%_}fsul% zJpq`#SCnnbPJopF%!^{;hzE{AYCEY(Po21td6j5j(d?!&$S8Mfz>;P!v4oN`CJ}fi zf*mp%K1CY-js~J4#wz}LYQRo3xDPDaMAS}18l#2wVL~R|AwR)8i}mMt^B->}dIEzC z3P~0IqMSQd=aKo5k{Krwsnn6V?{hTZU%7M9w!Ts%PSb`f1?&4ECnp$+>A5X3HVQM{ z_^(uE{A}g1@h8+5dA>#H97~4NQ={**vEGv~4TyayX!5)F#vmiVi#m`w^7Y^x8;vmR z;DRl#^2o6FPU}0hyb4}MnKbr?vdzBVCx;Rcevx3oylVUWvFi=C8*4!mgII-QU8?1{ zO{R!WQuf861`PlWx#1j8iprga1H#EsC8EX4kjHB}?Tu3L&-#B|MFH}22FYull3dfM zK6_I9y-oI9B_m8aEOzX82H!MGIMC5$MgK4ll3*S++wyQ|S9$5(5Sac6o{kAa61hmKt}NT*vK z_PvN^lEhnhIb8$;1ky16q6eHVy~cKW)epHC`-;@IwuQNsORd@J(!4v0(m@L-(A0sK zJj!wP=;+(OL&mm!%lP|GKfg2b@#2PqWh>0w4YKM7ETV@pS;<$YeaFH-?HMk?xh^#C z6Waxk(}%4Z*hH;tYiB>36fV?j%G$w;cG>?V4<>!^8h+lK=J>PB*H2nNzLJ!SR2*eIxjLes zA@;SKq(KLw?~zPQpI?QWs`1W&i0Dp{NixOUyP6R!E9UfZ%w{HOF8bdx*|Q)=dmR#$ zH1YptkHo(4)>G-rAK8&NFpC}XlBVg!G_s@D^m6jODWLu;i2hR!2*BC#b^y!$c34Yh zMzKDZNq7G#$4=<@&bFO*f3$0rvWRzWzoB0NU`b%TZ?T4BWUs(oXxEB=THk?IQZuv< z)rz+^Tq$)jR3e^#EE0+6a5sG3BYH_=T^1WUft)fRCmN|zohPqC`}mtBgw~lzA-rU& zxg4(xiG(?3jYS@{QtW!cM8KqJ;uYzjH$|+d`BksqKqJI!0r)d-IJ~0t_AnmkKWI>F zqk>XCY%wVNlSq^GjZuG=WXs(bPR2hJ?+Sl=>R7wJKyg%6AS^h$M~+St&S*!_Yon?$ zBqg$-)HlC+hJ8pUdZ9pF8Amlr3eY$5J=MGJlJR><#9)Ln zOOt=?mjv{&?@jakqH&QEYMhgUE&OJ`z^2dJgg#j9^E|G$60JA;IFdaM;V^b&B0!zw zb{Sm|Zf(UKI(J@mUnuFX98q^^xkdCzB)c$>tt1S!5?wgg12^0UlP6$lb&TvPODo6Ipm801!m9}5^ zwxJ2aa(&ezAU3a&T@4!JK;>V&o=n~03BcrLBy+%k4+7d_I%&&HZ*Kp9I98fwEWk@L z)o_jnM%Y=>JZ%7b5VmS`?KS&IUN5qId|AtQ6uxT~uO_Z}E(k-8$BByo=hve?r7%K{ zj0G51KK8Ci#D(A#{rEm3)OpnLb>QsuKgv78)^pv^7yPdu5fm5E9B~~#G9$7AAG+A;w0RoHVVy|IHGgv(Wb^ z{t}nO<`>J422PU%1$;kH|3m#?#Ap01&uQ-0&$Gt|*RUCamz_E{{;xv&JP>^^S0+2$UQG`27by{x3&clIQmceZON z$`z9yhW(W22{!tC{^fqX;}kzV0=H}NmGiqdRys@!+Rl%>F>H*-!RuuNvH{y_>akw< z_fns;gowcW{5u@z&;{kQrg%Eq$TlPITQPyOtg*)~B>N&=Aoo?R95kRnQvqx!XF-kn zYb3>ww`flpzg^@XM$1cA!FurahKV!hv9PsY=)Mdx9b5b`yENVR88wLC8%@sFN~q zr}0`ji&0hI(Ogf>xDmq#P4jaXG3<;5@lVV?Lr5gpu+0~X(q2ha zD7Z~9=wK)4Pc`9f-{7D|0e#*GZoMWs0P^pKh$Ke4*XEnrdNw0R{MOD@8YHxnG zJ7Bxk2i?BSxa2+l$y8$73aMIQD#iAJi*n(aUo_4jf8MxEiCpDzGJyxh9jYb6G z+mW=y>if2jt(+>nV7kZa{+Ocp&#cu zEU~nq&c)Q-FxYSb{4EVeew$Vf09We~3-R>r=@bj^9h}(V-LtBQZ0zpcb_^5Z^{G3~ zh|ud!?w?0mk*A?4sNH{2+Kp!zklAD)Llv5{1PmO+Mz?d*@zSNK|GAs)*Faz+2%hxr zyRU<`fVXK=A*!vXxU~B5H)}0I5wu(lVkYV3gL;dX{vFrgJX+fIoHJ|qvrqFnUCyEX zN=~f?b&k{Ycy5Bt!2$ljG$s2rhQ<)X5gB%ePsb;wcxr$WurazokF0UjsS2Zjn5R2i z<2W7La8!#)%PZ57g^gH&QQMX_o9x^A3}C4mgq@?~+-#Ro25aE-MZ%?y6g}g{OlG3b zy+Ii@X4aWj;g`Oc$eG@TzV!PndkI;d%pR?$>AeG7f+--2s_a2V5r1QFSXrkH^GAk( zAFf0gQpbIm$3qb`Ho`?fz1@h*ln1py)*GiszwNWZ4cwkI1nt|W=l;(z0*?{v0!!9A zJ80o`3WZne|`m8OLIV=D!`B9 zoQK0k%$Pzf{ZVVgozM3s3TB_d=#o>jPM);heC=yEuV;n?^*AYdyzgyK8G>`goVjeU zz=DV1BlhUE2{XJ=XechCP5FP*g&4HLGOKlv8N)f##5h`xqT_hvA9cL%nHK33pSFm6 zlE$_uKMEJ|QT))>*t50?m4lPtzCUm4L(E@-@_IIV#JVjb6+YcQK!Ga$B^} z1TT-kKg~vXwNS%8GuFQWC8uUJpKtH=7fXYT>$yz8E+_vexZ-c(YvOOBd>fE_>22z( z#T=ra9uDirr0TI}?6VuBn>`Zi7V6lrb`x#tQX=6uQFh^#p1=lxgaRA78ciw+?WQD6 zv}7a$z*Ez#l2FF168$-3#jQ8=4FV%+2yrGMzN@dkdjB|fH!PGy_xL!dy>vM^2YuS6 zAUs>z2)$VldXCTk0EI6+-bsYU5ZjJK0V(z{M z1-%H?EI&>*@ZD7zQndqz?elmnzScw$QSx2GDnYY1J01YXZCwRA4KTLlWrYn5X29ybIZd@wAhO2QrcaIag5fSvizoww zLFMG0H+p$?-G&k_qfoHieIM#V74yK`&j{bAWcm^{^Q9(+F5(Vdr+=sn2}(LsD4h%TOTPm+!vpH|NRf&=oFO@9$7 zbXdpT=CrpL@2P=L7ZrbfgG;C$(Nbc+l3@>|z?Myj7-tKRS$EYxVtj8DiP!l-Be5z8 zje1s!A?uum`)MEW_O*)ahTHNPzesY{wB;RF5FE)^bDdU=Wq;swe2bjAZ6ifmyb_w7 z;i1z}eD!e!#a+vagc?IRHF0yUwno0ru?T7ia+0ntiRkkG);nIqHRvK%?69JXB~UPt zaiJ{mPE!%rE)zpQNp~>CMsWAFX)Nm|Z?nmQcwZF=&1E*dFo}suz0h!_eCLJPAiu{&lRjR|@<~j)aCqU$*!uHL5s>5mB#Oe*|U7JsaY1HGhfmIOSt+PizWJzHVW++Y0vX{Q+}w2i8$0a=n5Q! zxL*L%razyphm5*C-fuTT9_}af&q8ngp3fi;TNH@V_8wLZfb8++WGc%ixkEwv!`Lq|+oxso&=^a*>B-R6YYf*+@xxh-~0 z7+m;IDa;`Z2Bu>3t2zM_J+TF{sDCQY-O@R)^LQUo=u9brfHZx#B zM^4S72pNub!!<^qALWtJgF!;MZwqqCG@f|W8<9Fdg2c^V)&qis(Y>(bGO2;im6E}9 z;arB%e1l}NMWk;7>1j#E!l8vBCC{|}+=tH>t`C6$cjxV9tDVC$bfFyyV|6_Veolz( zt-ojRy)&+!hlkG4`-zyb(10GU(0@}Z+m{nlwD(Pj3w6X_$g_Qq$>PyjQW8Sq@qJKN zJ9ITav<<%3;O$A9*H_a1C)rgicK;6}k~SQRe-Svb=K^G_msRYS)jt;+d` z@>eRmCx5Xje8bLte`%@Hwk~fUxQ5)sX!Sv_mGyhh8v~6uIWk(7SKx74eXVN7vGH)R z{+dt(S^p`9M1INq70F$BUG(i@B3&@Iwp~Lt4nB9y~qAx@bNUhysqcz zd=I>$ABwmMeH_mJ5aM+;`lPK1ZoHF#PrSVR-FV(WyxG9-hL>IjI3togn_tdfb}lY1 zQbQOB2CpnbCWuvp-&9;~%;zb#xQ=Ml`^Aso&DyGFVZR!(V?z|L5DFrzbw@Qn z9uAcz)XrqE%IV$Md%x2u8#ZztRNXBc_dyzAJm!@iB1 zy`4Zr1Cp0aTK{&;_oZzs5!FBHW9Ezu>DojVf#|Y*if!8T3o(_p;a$>Wp2- zF1(`%7rxNwh#vUDT#)$+g;P*_@B-~a{Xu^nWJ~>Qkr1f?nnJFw%n_GsLWqZcFk;Nw z_~jW~R4Q=kf!P1Mb9ixik-wAwa)w5S7vl!^e{wu5d8Ye81Ij5&rP0DzNO-h2YkcK#Ryyy;98LuFF}MKil4rh9hGq zWLCVP=dIaw@4!={5gNpj8T(&<@~Ak0ojyXX!q+p1LR0R0Ki>1EGL$E%w_LLDjmB%> z2?lBqlQ+}9=d|FN#*62(HKah3QS28)1{%u14leCMbcsYBhLOfl?nEN1vNH*!@{1E?+^4+G?H}>C{hhCkl!#y4>)RQLN z>UP?;`$?G+P@?ntO-6usfnneFk(w0^!}1gqFNoX)#jdh)UOS>ia*N}dP)UM zL7(}C404!QJ9_WCy zv;Ibwz_`=@2o3eQ7i=R$#Sc&Imqmpoe?+a2Vyg+qn*N9dvi<0EjE3)6w$4NTHPJqc z{4iCVGaedv*Hs;gcxep2`ssJn9|S+&L*Abzp*Lf7q0i<}2x6@C0db2UprwUwOF%bX zZhBTFp3RNnuaOC|1~D_azQq*L#Em=9;sPcE1K!(M56U%{F9|%U2hEr`JeiRR>%`0_ z(GHlxZNi`58&RbStZ3DSxhjh=3e@H*x7p4FUW|Q)I5<^UWzgOZK3bK^S%RTIz>qK@ z9?Bm>VR}~FS7g&>{bvNdJqAw}^kPTqM3@D)VMEnJG5oy0nJ`$Wm>;vqCBL)z;@J3o zl9-Rw#qKvq1{GpSI67o*&QXdS1ZhwP)im zykPoS+DDSJ9>&@i^Q5y!tWEo@87oQ7VLu*W*jTKSAFa-uFynt>36wFt<1nU76lSED z0s$Eu|1@c~?KzxbNEiSqet2F_x*Cvol08+TnVjgL+tw-nmj=1u9k%7EKO#pW52})J zNUkh%=IyN_YFGamm?{WftZJz=9_O&R0iLG3Cp zk=RQtueGIvWgHf!s30c(yT`wMX`?MT`0*SP@L2h<5ps28F7f<#Blu>p4*VP{gz{o3 zR!z78fir~O9=)sr@9q?D{3p-0Jq@ii7jGJ?gPcFK#?o}-kM7tzE{|))hO3li$Y$~C zeqZL?&nwY-b!Jtps&2B5H`v~s!%78PSVVR#Asxv9>pwiEU7%*e&+7vg!usbM+9jba zQGdJ9o}7jWS4i{5J^~CDy;7Dfn7s^0<7#ORgJ>q)nQ|NyIcx1^fSrRwu_#%+_AvsP zF}*l|ykPk99KgKhx!?9-c0J@~LBHn(sR4Zu=Q(v?^OsVR&AUDaq%ittUPreGhIAm3 zQZ`<2cTXeEvvYjfF#6-WG9}>u#xA0|Lyuo3cEHfb zW$??(B_ZN4{)R3O_M-nB>fvPmbSd%t(i1Z7w6w>=_tx5wF2+-$Hom^aX9hx}uiaWo zM?a*NRgo2xIuh?}+z;T|R0kOw`lD)y^ggJB@K z(;E>C)0(>DZ}>YW-_cs4GV_Rr)N0o{L#$pSJaIgbAh&EVIeqY3JO29QtLZ?tBueXm z|AzVnTU`PGJApKGNf*^SRL`0x0RwG2muq|d#VzGXZ4hub)^lY3(mxgYk~93m>R=yw zVZTlbxyac-+rG}#*m>g*4YxaWI;+c_?l z=ECm!D%>q?M$VF2C7FIFo4lciCBkyZ!87-yU-!n~^I8go_JaAi_P^lvhg0}%44rsO z(u+h-G$)8i;`AI5v!4X32OXKQY2nZa-Wtnv zD?vs9D!TC+ug+D5y> z7qxWot^eRI0e^2v{K9$$x^qJjo%ds!YNJ~BCqZ-)xrEY>Y(>Wt2TTEFGwhyqztk=5 z1Z_E1t6kiSowHPbD(a1v>4@dnf>uKczL&L>=z`LGI?-#aqS_nv*3`DeCsRXO6w4Z? zq%tkO9V>M~i6GLMQETyYV{5NoiYk45&$xWy;%D10{&i%cQZGz0s&W*&D{E9gB5R#o&D4H z52L#3-!%3G1`wOe{`i^Y>Qf{;2yU?tqTAX5Y9Lo;K&~u1R6s1f_lz|`>F39o(v9ne z^)Z!iP}ND(TxWGt)<)IrtDAvds;+&Cyl3$p4KH7hOlUuP0H@c$asm9Z!u=6(@5+HPBDZ}EEDP;dtPGIC0 zjHg!4T;e~;99eKjvm0XnV*?KfWiQxjvZuRlO}aA38I2??eZ!6aMz-JhHd1Ka6}86< zgULCyn;d)VN*QoEL)g&rM#<%|43^dzkE{P}Qgl}4pUCS&sV)uvCgW1s0L@B3?P0pB zBe`RBx^s2jaWmbgUo`z7^CZu0zGi(ahG580FqAGAGwRPO;pOQEfw6MJUvog1K z8%z{Dme$aDo)6BcDRItNTj1g!{x}}bM16l*$8Wb5p-_iFK;UtJpvb4Q@dz(UTO^0P zp4DzsX|JqR*te@9*DJ+RlFc}p&8ebPG@xWNK2)T#3isQP-)iH{41NFS3%1#N$j`Ev zPvj{;c*mV&_wbgxXmnz~aBfFF@co{`>r@&gN0G?EZ;^%~Y2QR-Qv;HjK9Dh9!A2_k z{#?7`ZA&<(GC=Ckr0%62V+(|bh4TnM$Y;#(F$UnhE@Hy5`%`n1FOr3M(Mm|fG@!D| z_KKs4oBiw#QpPz>*m)lL{`Vp_L$JfD#C_~B52h_0F!FJPUTM4A(gl6y)`QyP5+>5L z@Rlznj=S`a*+|ebQ$OJ*M--7-I$WIR1h_R$96%MkOkp0&<^YdcEgtcHKnY%Al72Mf zh&=ygqvhPv^PP}%sbgwHR-BCOY|51O-^as3GBPvf$n!v#i`AHcJ2vs-foW!l!bVjL z5ford07jS}^uP3k6QQaIHl<*^!e&6vBtV{c|Buh({OOKq%d%i=1>|4oy;77_lc|-m G`22s~s0?ZV literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_volume_34_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_volume_34_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..5bbeddd3e5817606c36f842f9485003688953857 GIT binary patch literal 4790 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vtk_34a.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vtk_34a.png new file mode 100644 index 0000000000000000000000000000000000000000..6c7639d9add1de4e480efd0677147c732c8fdea5 GIT binary patch literal 976 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_tKoo-U3d6?5KRGvsSF5Me#| zzTmdK II;Vst06woPc>n+a literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vtk_34a_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vtk_34a_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..810eebf322279bccfbbd9c0fc27cc1f185670b6a GIT binary patch literal 650 zcmeAS@N?(olHy`uVBq!ia0vp^DIm(LIEGZrd3)C}OE^)Y{p0^7 zQl1LAi()I7&F^}D6o{?>ugc>^3M)mwR4R*n z{5kRJh3WdARg7EvCz#~kcB@}jeBJ*+e3H(Ah=z>}$&AOCdRQg64a5?tEAZ~B`}EUu z=A`UgQat&|jx7&X%lLn4I)8TZ=O-O~ylj@XXA?G*uF#$Bce`%C?~BL0@;mE#jP=ge z`rQ*}`~A1fYH#5&>zFp*$#Lrqwui@Vn4OooZspzFs=X#>dzJ5P#^>w;_Kl~!%`)r$ zyYJudeY@Z0eZjYu#XiY8%)Vdc^QEroJ9T=`O>#~Apf%U*aL!(*uMy%m>t|gTkGyy= zR88Mo`n0=c^=$Q$ta)cEuetB^XWuRP_IdKB5636Q-iy2&d93?XhPkBpF}de=Ki4b> z-uxu^)0z!&*G~4n|8e_e(z-l>$L5c>`f`ca?o+#;_4=-r{eNjDJmH(LJmPg}?z$h& z0$X)w{i@pTw|?Kx>n4^qXW~-*UpwX=ZI)5#e-Wa7)IU7UFVdQ I&MBb@0CTq&YybcN literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vtk_36.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_vtk_36.png new file mode 100644 index 0000000000000000000000000000000000000000..6e6fe12301e8d33a75230b449bc64b5747e99bd0 GIT binary patch literal 10188 zcmc(lc{G&&$>ho`g)p-$GMMFP*5;xYhAuh zK|v{T^aF)}uWa+36ri9GiPyfYV&s$lJ>y!DwR%nSP~8s}Hr7_8A~c`5H{#y8t9bgL z2b)dj$5Xbo-Zq(Cl#4%@*2?&r$M`jff^^(Y?2QT!#Go}>hK;rNDSx_rzWcVtN=c!y zlj61SRwH`@GSIniK~AOSi@V>g-WGNTUDLaE?atl1`B?`qyeZVwIIXA%IXT_j%rHjJ z&kwM7^DAk>)YLLA@WZ(miYZCG`u2=aAVSXR66*Yb+5f}0Ze3ZS;Lk`elMIkt4|ANH zHl2~<2^(XnYpY&;WLbxph{ps7Nq>#G?126YQxS_*Q4&HdHM1(i)4U+>1DEb9U*M(S;P5XQ8m~*$7xJjiKm{2 z>p#)ww*0_uQNHt z&TdTGHz}BI!w6a;qq_-HFysZ(ZQF6Xv5psmTXR9ToVig0QI2H&oy2gpuTvT@&prwG zg2*{s{>~5~C(}zD@Y_n7TfKSdZrclUI$d-T+}tvEukYrv7$Dp1p|glFQmeLf+l)4o z3fLl;HLK9O`%v;%*_Y`v?cp`b!vh11ajycCUtO9y>5|x7^ck7(;QOtW>*GsLDa?15 zWFWe@T5ssPI^Dvlz>httMEU+0zX5qtta_93N?iBY4?=6i_l$6z%DD`N4$e>V7aO^N zw-L-8=0-fu75;WC&fSV$VzOJxR5Vt>4~LL3NV^ZW7SFoD%J1a(o+&q;x`P^%4!hDQ z^$6S17;lg~I5%l(#}Yt@u!y>^tq%#!lS0a$P!&#LWCcQ4_s%Cyu962T-_JT2c#d*s z6ztd}+KJN+K6L_?nPw zOn`qd_ADec8ZOq2#NCj|k5vmlAqf1$XuzUAaia&~?a2BCUkwQ)DSpdje6|>1e9Z`5 zWmegac@`rEaOfA=7ko7PUOZD_+~r&Cc#R4e1+eUp(1b|t()P%5h0ya&6V3h!At`~a zh3Oq0EhhEOe0cGci%)Fo-D};Trl*mj7N$cR+Mlft<|B(ctgbnk4L8JJ9FdXBw5mL{ zqj%@d#)@CuN(U(sVVQx?HuDTlsn^_?H*}r~n)S3DU$6ODWKg+LZ|`RRwS~je&X{7h zN*-5h29;;wIzPx|U71?kEQz`H1TbB_C!$P|+6^nQ*VDGGxp<}efvLB@TWyz%(?pr8 zg;U(J@_8TAuTG3pF>@B@35)Xe;co+&S3d2137WWVGurWXqNe%X>oS&L({G9?d{vWk zr(#WOIjo)BBz@G$r%J--)RnS{wVSldxvqU5dG+q!JE8gk?W}3b+)28PiXgV_Ac0b$ z-ygsoB@|3rE#}BTZ_2w@G9T|7{rvkZizD1n?h1I4(?Y36S2sNtwW!ogGGMQFgMQ_y zVaWOMvwb5acbkn(3Z}Qe)FPLvOe3}PNuDsEyY94LOJm3HA zmKzKWxueXiqr|z$%9Y?5v50teTYsq1B=N+Mpv}DPP`tgY-4GS_jOUZN)nn+FbO}}} zq8rhh{K&hrOt$sX)n|~4s29hQ_pc~JIzMy^(B_5oQ`g(S@0XP6@xBLS*A6w-(3sR&UjdrfASaZ zG|TRj@kauElTB{k^MPoA^FW6uPdm?*-ypzOaW?4%otFg^1Ct_+o8h9p0S2;@*`W@FbhV~fSGLrJg>zc-5K$H7TIM@3p13ip2CVS zi_Mq0*K!4`*uivptKIXnZ_br@yv$G&vZV!b8(z0#+SIS2#;C#uFW*3ca^

    g6Tj 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_xdmf_6_00.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_xdmf_6_00.png new file mode 100644 index 0000000000000000000000000000000000000000..edf2a6a85b1da8eecf1d7516d5dc7fb60bc6f973 GIT binary patch literal 1298 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_qX!o-U3d6?5L+RNTBRSft_M z=3W)4!0SDWx+bm4bo!L}hQ0UQ&T^TN4zp{sIIJ^1zx4q{}kD6-l@!#?M zjb*m2T)+5&&ryGwAG~wnFcft1X%P@sJTl5e4TtKz{}}(Dj5_@0>C=zz+otKt$Jh0| zHm>JXRCDU+6i8BPnZW^Ku3h_o=|BH9FI^b_%ST7%RXf zKeT;0|DR-D+`hB@-}&h2$7=>L^)Ua*q6Puff8{%b>r8mA_ro03j_Ig!i@+LFp6k6&&+2zRJBQp@;9%0oDXOI@E)l0;2)!$>xWE`+!`b~)hp zhzsxTofKgaAt9i$ot3#8rjlJX9-)3-DW$!9RdX~Pmt)XGtJ?ptt+8enpjwlPp@@oU zc;{*I|KN{f0FzJLM6-1Y+b*4R`buRup^FLm%{gr5fvF&tJo(_Kg*uwDTa?k%_=Yc? z8@e{cuRM;I%~Zud&fJbmzP6+3rUUq2;kTTO1h=+nikqTRq<~8*1>c_Epf6R(T0bBu zP9_$RNQjR$ko{WMOe^}%k_(^19_>dknz<>&Jbb66o)~ zwp1rSk+NZ$G#oG=HRvZDxj;CMAkNjn#-x^BATRCh9+Y``HW)m7gp8EiPal4}uzTkj zz(qG_jwHOfuYYki`yukN2{R5GZeL4B#zV)}6#4`W!fCyrctG>vhm%*P^CVegrj0E{7OuzqWoq%yIQ$m+GaAL(%y*t(gedXX%J3G`@LHz;ab><2 z76C8iZUKkXxC%Dpa+tjcRHYsO7dVWMy&GPzbr|F;$$G`g_<$fo8cO-Qj*z8c;yXuu zT9vEgAXi%vZM@w8y@xj-=cfIlMMC^dWt9f9fHV;4>#uBc{|7?m}kJq}K&l)wjH^|a50pb}0k zl2;DI=oA>wFw{1I4S90J?|V(B$)~qu+gus$4`3?|Fo7emjR?;ofid}m(DX9Tkpk^- z|L?wR#;pbYP5`|BWoP2exW6NFV)|B7nO4ei5$CVC8_IJezCk$ITf`n`t&?|yiuCsV zdI}Q&_EZtQK05+8Q+YJL%=K+M0pY#Ggy%a+_jR%N+RmkutrGzqw0oP`DjlEhZC6en z{?goF--4=5JC`oveK)`yl_WKOr{zPDT6gpOz^3wzEoM1(lV^Fy0O}J7Uo^;i~#t`SUR`*jy?a!N(@M`zM}q?3D0jCXU!HXx8!wk4Tsc+_BPFaRt zJV)$09Qs|4-FSKJQuAxe47-l5Ky)C}-whFJSG#c*aX*)%*fkgn(!3KH#>>)&I6u#mOsemz&xR%_t-J^)6;f{WcuoXPsC@36uI-HL=nwP`98q^i zT#P!Dk#Kf)0Lo|YGnp=Djqt^q!kcsujZ4Wooe|N&*q4{0*)z>@qI_u2kp!qSh`s0b z1?uniq1V4LMN~IIyqmx#sqhawnZMe7 z&*v3yu60NAQ=D1Rkyp&HE%Z(nWoSc~g8px8Dk`M|crJV*cK2Zj*;zYTJ+kmk{TGFm B05$*s literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_xdmf_6_01.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_xdmf_6_01.png new file mode 100644 index 0000000000000000000000000000000000000000..f54fac1a56ffaa262b4a018858f609aaa5bce16c GIT binary patch literal 1343 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_o9(PZ!6KiaBp@E?gbQDs%kd z{fXrTx^1fe84vDRbTG?U(nX*-)Ik44)6Fd@0wT?^XSkaZw$I>UGyK7RB0*o~@LlV& z_tsBhEI-`*QW+s(&v)m$+_#5u-(s(o$}adE^q29$f4>$1VZ|dZ9EO5UKBG*OaMP*Wy|6=C+`}Esr{o3pO_IjVcS#4h@$8Q|3`}re?^@|;Y1W$HEi^gd&L`FOee@6Y_YeDmYo$o+fk z<~-IZPv2W!_9y9DzaPJS)vJFA*UZn${VTl|zFz*h#p#$e;rlvIU;p{*=0}6ihmGFP ziMurU@%7U+pVqY7$3FXa^KWzNK6~r9Gj}4NP5=7qU#wD_aUdAGcJt3jRR+B z_=u=+B^aY5tTTQbzc<(Xgu=7b_8%=+fMOX4B}ptgpyDA8bOt@!4=UxxY?pteS2 zDIbvy_QI{5hk)7`%uo~Yo0bjs)(hue0BU1FmNE`J@DJoFpf;u(sOf#P@S%S||2P4) z2_Q?2c+Utry=lF}`EdUcf2WR4fh47t861jgbY*@s55CfH$vyB(1F&FZ@O1TaS?83{ F1OQXX^0oi~ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_xdmf_6_01_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_xdmf_6_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..a5ddb61615dd84c40550c76535c2f692094b940f GIT binary patch literal 2043 zcmc(g`#%$m0>;f)vo%bVOD>b9d7jVn{P6txEe<3ehe3=XYHDgQ zKi^|PKQit=0;~VJU^A@GHW<0LLdgqX(SeOicVRa>60N-?K_4i8JEoJNO1uSyYx*zr|b( z^x@uJ8a%hho=8Wi2JcFAY@8voFi(H|_L8Cc*N@|`639reGNk0l_qUQmw}AB)b}dje zp7ZTnze6)(W<={~�gJMiJ>YrhjGXmo{VNW$c6{?ZT56i-LV`6ziu3JGxY_yIo{1 z7weBsdhpK1tB!0PwKSf#n|^HMtxAU5Eqk3oZ&mi-)BH06vXj{5PqCK$?}I39X37WH zM0j%Ax%RKr!8vTHW!70*`xBR#$)ySSKR(jihL$^2mxwC+xr?vkeLhb0;+^iUOgbCQ z-Mi$gDxwjO#H+ZuULo$wJ|8<)KCgUDFf~v817O`(nDi%`r*ThfPf8UX^-AdN1zD*K zv5c-z0=e=thXtHX67G zW#R`4)zT~1M*+%VzEdzXfFN_P~U`~WD!m~j-G3?!p z3-#HCXJjZAq#3W$dRDawheAVjO@Evw+FH?kDr5D<0qf({k(-T!4;{BwaU-%Q;bU(b z-V5o?p$w4inKUn&i==&XDDRtH&mQ`{zUHA6T%(WV&Z&Xd4xNNir0w*9=m$o#{Qcm& zh}M~%Cmx~unLae~O%EaU6zo-U%VS2W@Eq$5;yp;mE*CBJWF0}&fecuYIz?gI4ui>2 z4~(|UNyTeK;{vzq8k8~ICu@=55XlGLI_Asgz7$z^lPx`n zd`y!vh8a%(pj1?TpsZ*T@} zZ5S>bY<&VcQ%v765x2z*8<&^Fv#TA)8WslE##UJIF==o;3VS-XtA6(Gy9)9BFCtQ> zX&BZzmA26tcD@ZiytMB2)U2_0`n>WB=lk_H0i=_P$~Du)Y}LD_h$%oMxg-&Wr= zpQJo=uaBLFF2-jWkhD#UlO0?XS`otDaQNoIR*gq+3(Tt8bDn<7O6uEFuukej^OWV_ z&%c10YMg+yt-V1UaWNvR6L2p;8yJSYP--FdtFW+GQ-(A1_=J?aURK9(=~R=h>n1XyII5bD zFPq=PUn>vBw?QSqpPQ)*@HSbdlsZdRIk@>8aG-N?Kv$Msp&;I4$9 zXVLRIzfxpIhfOlBDr4m}jFFw;Bbx^FfbN7U+2Rl<#4=_)QEso`4402`sLu%1OR?Cp zy+hqK%E@>v-!@ZsJ+3e`aT|a}+(I`>-Ak541)IAPb~i_D?|g#H9r2eXlmyGG+zMXq zA?S3gd#piJLYqmT0QdhW!tr=>0IBaySyJ6V8A(X=OcqVMci?F|B$`J}^j?0YiR#q4 zqFi|qNELVkWpDVe%0E0i3DQ9B;cd_bKX5+JHIZE3gPhf~fQk_bb##%Z@aH}gJaJ_f zq6Bi89ak|8sn+sz+%{*7QgT~wQN?Qr48Ko>0?a5`$-u*ciOIt}c94O(dS85T_} z3k-K~Vz^8QlBBT919-6p^{Ttv`5W_~m9{~{>s82!!1FC{3$NSh2GZ52Capju(TKWw z_LvcsdoZMh0>;TYrBQ@I;~9R%YJSUk&7Tgqg#c=niQH}vAUc>n+a literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_xdmf_6_02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_xdmf_6_02.png new file mode 100644 index 0000000000000000000000000000000000000000..013bd5f8ea7adeb90a45dc0f9c2c3b3d3ad35d30 GIT binary patch literal 1342 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_oAEPZ!6KiaBp@FI=@WRHpsm z|4Ft5I&L4?SSAN{hZ;m*l@{=EGn{cWM`SOPVI||D$juiO;u_>W97vyGIcM|1l*;s4 zJAa9^{C$$&a;}|@d}#jKqL0x^|B5`rzxOU2hJsE$Eds)dM{qGWdjDno*S$3@FHO&Q z`pnrg?_b|jW%K**W%K%|&)*F7&mEq9f6dPiGt|H9=cn1le*XE@`2G5y-)5Y)+4J++ ztoi*rXSUn__%zGDf9DySnKSpN=cVs8IWBL!-MIXGUF`bvA0Hn+y>sr@cQWzk@7Pv7 zdu(a9yZ*sT*xPi9oO#v_iT4$`Si!HPXEX~n|(e07=QM? zo&Vfxwmw_ze*VsxnoZBTA3uDW`fRW1{aE|Y$7aQ^n_u~FU(d~t`=9;v#O=?Vw-%ox zv#-iGKEKlUyz=zh7iSW!v#fuuzkN}5XCLmc*)01sq|E00w#6W5cs;PAQy@vHWd?_$ zniCpx+u}K=`kvn`y8?tJ&#bs`hWMGXDZw{C+T8BD1%$_9+%b)US#YzjNXvR&`t3j< zyg1{v2F}PcydCJ5di-+^&_`L;QpK{Z*c=EpHO>0e$~P7Ba@|2NdEH{%Ng~JHa;oh4 z&2Lu#VaAzK5ggtIn)+5_`KHH}+hn%_Vee>QVvG2p5tzUd;&#yi-tvonTi747b_2^r22WQ%mvv4FO#m9C6}JEY literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_xdmf_6_02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_xdmf_6_02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..5df5f7456aa36885c54e79564b2c9c9f34fd6787 GIT binary patch literal 1118 zcmeAS@N?(olHy`uVBq!ia0vp^DImvIEGZrd3*PKzO<{zfsgOc z+(;2IOwuthY4yYtbK=;J4EeV)c#I9qFa?afu9 zuYPBkMn#^Q{9Sh6$CG8T*AstzeE*yG&-@#kL~p3rmi8UKV1#U*zqf z+got2NNrEfPJuAp?1zh7Tei7g+w$CFNvx97ZH0N?L8@k*lNkU6@DwCSBZXYTjg!~x@-E^*9RZZ>gI|s z4!d}DPS~34zR+gj^VW9t{-?Qi=zlohY3X<4tmmP)bFBpvj0NSM`LrIlw04^JIP6LJ zMAe@%k(2x<6c_ccIl&q^aray8bI(~SZ6jLt&MAHv=cjCQW+q2}@v>6~E!t{WKxgLwLZlj-vrMJ-kkER<;>+XCtA{+ z)Jz)BTz+6w<9w!o*IM$D!Fh>T$v0ARDJ828_O&^lmilL@{ov5kmrQllpYQMGZ+R=p zbTD7vy&(Ud^Mg}oU%%Gnll!sd+M4n$I@!~jOuf&}y4r2(eQ?&>I}L)4nF14cd^V z8L|1wn#jEon?=?{a$VCg%?{JQro%djm47&Bnth>MdpV2dM4{MSdn!wF*X^Aolv(_C znX>AnJwKDGOb@FDIo-SWK=FL_=Tyt%2N@HkcE0{NvDUxqjIE*3=OrhOY!;TRRug>R zDQK_e_fhzfUY*mN$F_z1`bWg&R6G7kvYl^@``aB*`*KR zi2uL;G-qEI!M856aV`J#mZUptV?1a_;iz=@+?@`>=AEM1Eb==u#O(KgI}59QTbrSu z!*S`W@muYXRpBrXF5mIHn`@{0w%|@9={ktW+Lcm+x3kHXKR2t^e-A$1>OF15SKv85 z66{XSJZ`Y^!1-=iFy&2EM6#cKcSfhly5D+`ORYcUABHMyDfjlP=I|4oYcWgN?;qa7 z#IYvYEn|05Bo~mcaa5M9DN`ZVJ0h;+xNlRGu+(OlJ+@w)qfbw!%U(h4r`BC z{uqXLPw?)hu6{6p@WMtfNS25{7!O0ZRCZ5%&m5&|zHAC|fIKoRFK=WLY#z!TtT0%E zm_cM2s@_9ka||)tv$6tCA~03Yghafc*j0+d2c3x?!FUv6d&9n$Y)KK;f28& zKYZ(jaz^=H9TySGzL=Ca6ExmU|D^D^S@Ka{MvBvZnAI~bDb>>lV3l48u#Z)6UYG}& zmc!*$YV>tk(w?RTCTa4esoV!G2)8SL{eGa-G0ye#vUkEvIyV5=lGFC=D821y-(uX= z*>1Y~m~aHiPNM6pazEUvG3~wqsaR(ETox@V?@uz zEAIw_p_5-ND6}&RYt@i5{RrXgK!L-^cVtWHVo`X?+TQzLXG+?=&7uXxf;h=~19L=7 zieh1vbB$mNL$n(qocR=)+FZHvc#qh4zdBOdEb^R*pby|}j>_c+wfh^#mRKaTXY8+j z{Qryw1(C%(xs*cT&k}(7N!y-X^MTLbGJI3`g+^N|aZB({V|NCfElOKSnF+j#?ypt3 ze6MPM4-PxhFON(UMA@I)c+YeHkUec9Mvj4mP)rULH1Rj7nEA2Q^h~EzMP1uV#Yt9J z!7=tdo0(P&X8ZTx(w~GJEifmc5<>dwBrCr$bRnS*{AMf|&d^-$gd{HJIkpOjVAZ4I zSlQDzNGMcU6F;szIdnge4jJ|u&OGF-^X7V^iw|UkYwr24MlpL@cgrN}S$+@?#r4VM z*nAqMrYc88o%~R|HIhW-yQWY+0G}p@$)@D*1PZ##jh_;R;RPo5MXp<(`B1AB+f5%< zu!&F#=^;@K^d8br1^uro%ph_Mfe=dL`L}ajgK{H6Nw@G%4Gov$I{-Y-5koTrN=O*m zDZ0%8f3K0L=RniA$PieI);m_x!;jqw^HHlXFyteWWlq8<0g;RL;;V1nXL=N|PhJ(W z71YmhhVy=O@q>qvW0Hor%-OJMOG%GVl81k2-{oXq|8$a(;dC16 zTi(Js>M0hhd%`J$^*W5%CdJhq?&;cp|GOQ&uW4#7Pbl5ef=~MMM%DpXJapvdNfOaW zdq)Z35@w$+ws-zu_(gQy*2t}Rsip2aW2BgFdSk_BR4OfLAH|2+R(gpivUHxO^!oc8 z6}hBJ(1F$cHS2E)g0P)Ci>?hz1TaFEJ<`Qbk3Dsu6=dKDS0l26&Cz+#%qv7Ao8vxs z(D$+NT_~^FOE(+WOR|j(qs0rp(6(*3`Ocd>+U^+T<{gbeOTis>@*NZ6t#cJ5>J7QJ4SMn)gA^W6ItLK@B@*n3ZY>np zX|5(GnXRsX%vE^@_!COekwcC-Clx!OOs3P&wWDo_)aEr_N3u+o5Ugc1hVv_TXFuDK z$~7tsgvXSkKX1$k!9Io4?6Jw=K7^p!$27(sxhIbHw1In2ImYsnmc-$h128KSonp*L z)Pj!Ok&>3LBEpl#HB_yv6EL{D8{b&45!%%AIxMXh6TFS80MKJXAl{MGV!tPEMtJHqw#7M*kt z?6%v*L3h~JyT74lgNxC`RJQ#->l1Y@R^gfl@jF|NZbI7x;sKtl2Q+R4Ddt@n()?o# zBKUj!IXqXeREbb@s0vy{W+JgCfC$*dqq|pMg$wR-S-Db~nJiCgATVpSR;%1^WT*FAaWzlV&Q%;)1s9eyXfeT z^K5r;jC4!*&0Fn2Oa1gh?V_tr>USgzZ*L13Avf@%!g}19yd~{WFjf8UBapL{%ux9vg`T!dr&U(xr}uKmrueBl^f5shobfiiYpcvn>Ma606jAg z6{VSEE;5yMP7)UjP!^vLiOLFnuOLnQ73y5E(TzA(ou@TUZ5(X;o=e%^R$_VxIWLCX zLps_waw`qwMg9D`24qj6P4%QupAxbRqi42(brS}T^QLJ=hIbc(8S-`O1d7!`V=O69 zy6MNhl{{jj?nWi8%tInGmH9b=NgwHZDN~;Vy|^7p4gt|-zX(8AP)?b*373x2lf!pk zsSN_+?TdIQZaT^vI!WryulzR&N*VaOl|nS#GaFqj_|mdQxR#+5S43>6tzE8(k?oYR z;d0Fd5C2lrU~yNpX*BNkLsP=y8$(3)`E7HF0|(OVO|;?`*%H3s(}_)`e6@l~spQT0mj zzQ>L4KZ=Zlp166+{Gh+)=8j)5%JzB^!6UXv2Z?0084=jPHgbg`@RZr3UU>ED!Qf%a=W_oJ@pbsq8hS5F7zvpZM}gdv%!Nlh;t)0bjQSx#1g^fhYxB7%rum z)&JU9`-J9|i+f2f;BJSmSpAi3|JjwZiK$H1dcC6BKD*p;f>;&u+a0%rlM>YszkUVe zX5C2}YLWi+L}<&ND8ipW+I;7t33@L$Iml0kf&Q5oR7zv4vJn^Q+}>Wb$T}BvaT6v4 zF!DCADaJ2_`P|#As{Usx)sE7dS1L&>DkCDCYPvzSzX>_jfS1;9n)3z0@}Qg8iNdDE zSh+NYUuLb_cBz}sOWGUMR9}UB0e{X((#pwE=fLS)qr*X{I(ky}DUXWXIY2!(nJkZ| zUlj=H^dePlahp6Y+R6XkCqJ$WJ_CzjkaRl^5}(KOayex5#M#*HzctScAf~$kiYdMe z+RQTJ$eFYW5|P?lGlG?10t<4}z{Im&`z~v6`_EEpe@1W8#NQGP;c!vc&Db)VEG+c#v2a%(fyqA zNHvEm-@JIB}iEkiM=FU4_ zd&gGmTi3*;>b3dr^sqH(T(0a zs~vI|>1|i=Pg2vJYRj*(cf-jSdT7bX)#|Iaz}RaSa<#)aOWMP@;9_6y_!L7atN!7* zsS@GiWXx z*rm!%dH1c7@@g{d-!>$y(ubYQ3m}7sSUt0|GQ*2ZmOpQRNBDaeUDAS+6=^VcfAUz>#(M47RtJ3~(7q1mrvN12d(FGg%tWJlG=%yWS60}9w zTv|vh{nvmG)#B!=F-_n%?`g8yesW_qr)+}=XQ3#(Z+S$O*zi#0=kaiRm#n^i26uDAnk!kGWl8 zzEth~sh!snH;+31@`J5D)Ah+KTg~MiBJ^?N6i~>B=yh1>? zW;i-H9A0?m{)*o)5&CKF7tED>=3`L33r1*6=EDn{`)P2fLSQPo@cqW?paj|W90pNJ zJ(!4Ml=4c6#&o+SQpd@=*N#t)DA$|bN|x9pFj-lEj8!+HsOG^#aU^QqTU*t1*|c7V zXG^y4vUTTk6aF|1Gpy&!d6JBzgih-Yzx74E&l~fV`sPK6D6W@^VP7VL83n~_*HYwm z%ypCk_hrppsss_e*l=`J;U!M3Xsu5B<+;6)chB-fK4qJ1*lysIAYGht!uKk7*Oybl1mE?(izrMev|vPJR!ga~ zv|d-XT1xH-x#m&f5SJuxxM*K7I+ENvC8ygY>&)eJsyp5?_3*6)5JzXhwolcVhyhpn zu)GFYrZQX+i>c&HkiCubAEC35GD>}aGtx|uJNnk?#55DLY!cO(A5)b0T1QTjt3Iv* zJgbNfBFxIM!KP4(J7B}IKTl+4+k%#y>oF&4e79Rwf%RN;qL_ zKty}U;#r?CUW!^gaHJ_kr>4d^u&Qlimt%W_>48)0%Y~_%--wJgh2K2aga^|@$^DO$ zST?xL&hhksD0K8@K+&L{rkrGYzE)H>9pi>ImC>v)z}cenNIZZnrOF#gP(!a*+c!9j z)>SO}mMlZy+>*wLs1)P@#&r_S%f-dKm{uM~6@DoNVt$-wP#0%V0;h5b~@yQ3$hH8eK zX{?|Z8w8i}tnEunmIdBP5OzL}weN97%Gw;Mx6V%(b9naMwuTpH2|w0L_E6UT6#w<9 zJTj$9a7HYde+oXfFeul>Mq_>rbKgt@+k+a?j1$6P^7ug8dC%&*xO6U`gyQ+`Pq@h9n{t0dw zM6m_20?6b)r6MpZ8t0@$AkLqzY#qBK3=fC^ z6iW`e(69H974UgBk{yC^6TlXwjor@~+dd+4XE3z5ETife{@QX2^7^al@sp3tiQJab zwc2YBh9$sh*5p-Z?0IzSYHCeB0G|TDH+OGwOX%i4bb*nw_K2B$W{7T4J2E`T^`F`` zc%8`#Ocqj7m07tFrPq1kq5QCSteIhS{(;3SOR<5=UrSW(<;E#f5U|ePkIzmz+Dl$8 z1v5xox5;_VzA6riUSSG{7mvoEh~@zGIb< z+(G6w;$DLK&G^7C@9fdUJ`-4P;8dIKekWabTK{<2?wcyCB(Sz^K_`c~YG*fD`4nNH5SH2OeQa@T*f(xpVv#GT% z*I~dZI{0*Z?8fSn4$nrpyj;hN$lACHTdKBUv}-L(iamJMKdNB7y?OxS}b=km=d>@|o5>#T|}9K{(>QXKbcdn7i3s z;07`etyiqdZTtiD&&~et&O{x#5w7{6wHyB_ywudL2U})e!)a}RzvWKF-Tv+q3zCAYf+zQ4h~)M6ju{&Z zKKe(CQBSEst>mHE*?B+6ZXDPfch81uRq{I){~9z8# zVU8tsyB%<8Hht?wx+&!y{3lyOU_gBi;N~)YRr|>sHjORqdxuhIb5stD%U*tQciL`4 zGo<3n**I`rTK5>Hm#xC)p970B@Vojd>E(&ng3Q|+KHBsd4J7=eBD92%@g1yD0+u>P z23>+kk7c z-ID6K6@@?9*w9U9x+gVPb2|@_m&{GxDtVVAhdDV-(}3+<2pP%xF@mj5rN$~1Wz(Ra zrM=f$_AxqY7zUPdTdDrn1NeU`3s@Ot0V|^{U}cmAtc;wM;`ruuM=%i8a)Ox>n82Y*5io`q2B{YE*{5B)|d=aD*nF3X{$&pS%)l zJ=T-gP$CV@X|Ei#V{tsb?=`oA^CY+)imXrgOmdbCc?H=jjao$yXA6$Ai`S%+9zxAc z9s8qcc!+}~LtaN~rE@qdmTtk*{^CR?&55Srr&04@x(Se12m2{)r*hDZtOuk}*G>$q zF|yhl27eEE^)6e@;w34Cx{6wdPm_j01N10)b#Z`#Fj-YX3iYuNShJkqZAy>u5dlkpynckfP+6_VP?M3um82Si8d&K}oL%xXngQ}Ug;7XEle83yS_e?D z0X{R50vS0ygSf4q5Fx(zZ^W=5%{=E8PDI8CQ9K4CFCs0QY zAMxeSBd@ddwc7n=Wm(g&kV4_e+UQIi=nkCb(`^pT=N8qPP+HA3S5OM|futHLSi=(l zT~Gf(=g&Wllt1OoY&3p_6pr0Uf~6x%-xco9>>nhrR)aOxF}~tlKAoVL6bf4h%-!!{ z9La;^wZ+_AkNK(D^p=!D`N+~~c!}=2$*Y1!w^C6h!Y9aCMWnD6=PWx7FZFKnx-7Mt zPJTZ7tSTpkbs;qzCZozFuiAuF2SXLn!E~SsOX0XsVqlGFI0Y-0yjHNa%he8s~`R0?$!1B(d3XOLHID8`vX+G>4~6c&sumkMqsueFyf zGgd2kDk_CVA}h*Sv*cC5HZ+;A)k+&KLs+6xC{OUd8s17?ZD_T-wAD&-mZ%i2N;vrW z$cmBI)&R27ACU7(Uc~yHo_(;tCfg@T3iaH|G~oC&kBMyLtf9J zPo%6?TH@ue3Ts&hue`{bMpKNu8u!osWE>#uyILy`rczQ^Bn>rZo#Oxn$SW2C*Bpsi zt=L7PuoRB(h=Dcwtk^2X$m`V6b&)A`w^*&>Qm9Ww|3w-$aJ-$fOx<^MiCpb&ysK4K z3X2eY@Hv;bQwOW2k7L-DH&YC>>K1*JE4VEtoleh?2tuK|rBAj(fj%qUO z%TvdlOUA*NoUvNPrBEKMjTap0dU-rFc2B2ESgj=A7mz}Eg7=?AOOV(2z*XI&I)*%} z3Mm{<1@FNh;Hjb7L`G$g*7=RZK-JNY zDBfzdV)H5@g|eKbAB3-9vqsHc=J2US^A+;pjNaA^6ISzuCA=p zbBe8e*lPJO6_-L;pLGEXs+v`TyaEE2ZM9-Q8Ym@&;%Rt*!L@QlyxxPvlWnzP5l~7BWx)bIp|^YV$?F)C{cNihn^!3*ED>4VBw{Ay<^NFd z0jm`Pu9y^-0BfZ0aY?S^b@Ybyu+{RSp_mlb=GX2bU}1hQ;9ux&)~L?qKSR9BYE9yxtQ3krQ~DWC`KCh6L`9y}im*zttHKhI6aFgLE7`Uolza2ls})G)(pQC@ zELejDkni0lc%_gO!iH)z8`Oe0h`ToHtpAOzg)ZZ6@%hT*U4>= zs1(1vQUkB>CwPVptc^##?ABVLR?xx|Jj09GDDZSi4phUBH+Y4gU<*&MF?(`Vm|51) z!rE*jT3=H{hh1ZyGXJzdAIz?@4Gg@5w#oeoUfga?>jOVGt-V(;pzi(;KZb$b&RTXA zIk-5k@zp;V?2iYVQR807CKT*VU;D_heVVZ!v)ProI-cH|+Q#dCu>OGMG3)RLD+^c| zWdSRrEMR4n1+0v+fR#}eurkU5Rz_LC$|wt18D#-0qby)$lm)De@?RFe#-)S+N;?1m N002ovPDHLkV1h`Zf_VS{ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_xdmf_7_03.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_xdmf_7_03.png new file mode 100644 index 0000000000000000000000000000000000000000..1f317df40aa3b046fea84d0dd9786c2bd91e031d GIT binary patch literal 5602 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_xdmf_7_03_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_xdmf_7_03_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..3a6d787072f73d51300e849f3b47a2cdc82eaade GIT binary patch literal 2814 zcmV z+m7qD6^1|R=)=rp?;uTr-uAlJea${r3-mdP?j%iiX6&&Jme>o5nk7+^C5u8))C+<^ zQySa){QnfWNNbeVnn%ow;J^I={+HqbYe76n`28uQX>1g7W$)3{~)Cm#_Q^Ih^2ZdC7v_LkSgBG$PaxKmZ{`c1xhLQp9|-5Qx3O6$-*V zi6VkfXsw0{N+_X#94>ISyk6lA3V>I5vD*bQ$nD>mPe&^&*jL4yt~+DF`(c3&8%9?s z;o2)GbULCYqm*6uQ5Mo}A=V8B6_F%OW#Me4eJsW2Fk1yxr=k>iOYs^xq>#foRAujk z*TAab4Soj=SIE0t5kb0S+d(o^p8%zO)rcr&rX!o2`E0$j67$Z{%DsdJODs99y1|=5+lB z)xt8oyctl!vhMLAu1s`qdlCAyp@CI(VfCm*lZ+M^uzNLZo95Nx3L$Vb)t+DJSy{E! zapagW>gsE)0W$&1kGS4PG}WG;KV=2*3|heIX)1K|b*BLfQEp+a5Z4YWxNxmFPr~xr zz&`&>Jk%z{e2Z0yNnFT42CzsLfg~uH*Q* z4Dr&C`m~{hH32Ac?77&0W3Xn6s~YJbjPn{ee60~JSu0!Z#s8a2~^ZRMb{hQu{??VHW(-RE#8u*03ftKkhm zT1+IALyUR`Y>`FXuEUVHQZ>+@S{i3+$a|G*ZK$1r&M2VTCR48>vD!&T-`d*bUoy1U ziffnLuc7*_1i3#z)sVijF0aT|w&KceoW%O}tBuvl%AocH$UV&Me90cXJ25&EcknVD zL4P)^EiAu)WX<@z;qb)hcr4|m-7e|M2EJKwRC@(~*kXu=btKr1N=!}@ptDm6p0PD3oDt1*i zNas3vxNk;>2tW#bVV*u+h(hGlC=QT12K5ybftNh zLJY4iw%~4;?wH;=J`PFM$0yo%zv#;QaEAasLuAtlt|D$CC}$sOly!j=j&^UW}2X}-U$?hkcjhdN$td=sX2Cc?HhfSVI!pz zWL;jevfb5-6|fY1Z>O2Oo35=XEh!D5UH{$s>nJqUQ`xceRHx)Ywa6XIQ@xvD>puBQETgQ$ zw$?jaxn&-erQs)&R#t=|F$58jU0k|~U?toq!@%0idYKi}8Qz9Y`F>b6d;u+{@7ok} zw31-S=t7NTL+i<1Z$ra`Rj_`7Y7Exh1P3*R)4*?FJt@7D-{Fo?R@q$`as$>af-&q< z)Y!Ohuz~kyJ*h9Vy5Fa=ezuvC2`)1Un$-`_PzM~3Bg13^>#&veB+3${NqX2edJDbg%${4S(d-?Niy^B4#CbEY2^m{`MU*HYWC8is!iS6X}M-1|68~AOk zcZM8vgJ}nx`WgP+{n5bfYoDl0>^hvOtY^!s?K&K`v)-}W840~93slZ?!MOma z6tzMJ)PX~1>e@HweOg{&lh4}BdcDrB&)-M~iXUwGs<~>ebu)5ll7WK+!``)TKCciG z%4k#Twb`EoWFD1e5?aPX!^6B0g4dMg_k#;K>?zdN)@!prPwq!p3F`-lx-%9xvkHag zlyO=lEEAP#G7+0uPYw=@4LvI>8G<#IBre;u%TitnDmz26nf0W;j_}_5467P=_yg?3 z0?27)72QqpU5hCsp?1 zU0L6E8M&~=QhEKj$;&kGmu;;l6R*#Hm8Gb^L)GI+;<=xt}7=8ksO+wfv;UufMo z*hcx_H8?i(Y(1HHEw)hB$u6;enM`{6;MI-|H?Uqx7IZoz=4Ne{YcJq>+t9i9u zhpnt9N9Sg&;89uCKj9U=u^rO7ySewFeQ|m9?wDIUTLo3dxw1bxyZ|VB2hScFmz1>L zp)V+7y>oYTZg^!>@BKFAeppKLohFPRwLMbPuTo;Lm_rKh_Hr4(li?-r<<{PH<<*|> z8@#|Pe1=yznMLF=I)p=W@KMZ*wNDS?HmGB}?4z0UxY%{2rbRbjNC^d>gG7Zv_muDb zhaXz=^((cOw<881uH)()z4*}Q$iB} DSI8Zb literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_HDF5_X_Ray_Output_spectra_topo_intensities_legacy_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_HDF5_X_Ray_Output_spectra_topo_intensities_legacy_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..dfef14dcf1ee980b18e81938e14303c21ab48d0d GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5Cdl zrqb{87ks@AFAjTpP@d(^LH0K-m$#hSc=7wDcT=CNvZ;I)w{LrqJje_Xc)(*Ht;KfZ Sp6Ra%Ag-sYpUXO@geCyIf-JHC literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_HDF5_X_Ray_Output_spectra_topo_intensities_modern.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_HDF5_X_Ray_Output_spectra_topo_intensities_modern.png new file mode 100644 index 0000000000000000000000000000000000000000..df8ab162e90c2031e263defca641491b9c1e40e6 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sx;#WAE}&f5zIIT;K%SR60c zU%b^Upqlb*e?bfjQ2qdKdi8;hoU-~o%phIV1$&k-sLWtwGLLG%4>H)()z4*}Q$iB} DSI8Zb literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_HDF5_X_Ray_Output_spectra_topo_intensities_modern_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_HDF5_X_Ray_Output_spectra_topo_intensities_modern_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..dfef14dcf1ee980b18e81938e14303c21ab48d0d GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5Cdl zrqb{87ks@AFAjTpP@d(^LH0K-m$#hSc=7wDcT=CNvZ;I)w{LrqJje_Xc)(*Ht;KfZ Sp6Ra%Ag-sYpUXO@geCyIf-JHC literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_HDF5_X_Ray_Output_spectra_topo_path_length_legacy.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_HDF5_X_Ray_Output_spectra_topo_path_length_legacy.png new file mode 100644 index 0000000000000000000000000000000000000000..a7d539c44d2a49fbd3642c914af80e3ca4b23cf5 GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r~q#WAE}&fD{jf(#5ChYddH xONH>*bvDMW1}PHyrEGQm;B;>go4TN(fpuy;Bh%u4EBQeNd%F6$taD0e0su2+8TkMJ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_HDF5_X_Ray_Output_spectra_topo_path_length_legacy_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_HDF5_X_Ray_Output_spectra_topo_path_length_legacy_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..992c31587612f932814a5e781462d2ba27b67444 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5mdKI;Vst0K>>5lmGw# literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_HDF5_X_Ray_Output_spectra_topo_path_length_modern.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_HDF5_X_Ray_Output_spectra_topo_path_length_modern.png new file mode 100644 index 0000000000000000000000000000000000000000..a7d539c44d2a49fbd3642c914af80e3ca4b23cf5 GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r~q#WAE}&fD{jf(#5ChYddH xONH>*bvDMW1}PHyrEGQm;B;>go4TN(fpuy;Bh%u4EBQeNd%F6$taD0e0su2+8TkMJ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_HDF5_X_Ray_Output_spectra_topo_path_length_modern_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_HDF5_X_Ray_Output_spectra_topo_path_length_modern_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..992c31587612f932814a5e781462d2ba27b67444 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5mdKI;Vst0K>>5lmGw# literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_JSON_X_Ray_Output_spectra_topo_intensities_legacy.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_JSON_X_Ray_Output_spectra_topo_intensities_legacy.png new file mode 100644 index 0000000000000000000000000000000000000000..df8ab162e90c2031e263defca641491b9c1e40e6 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sx;#WAE}&f5zIIT;K%SR60c zU%b^Upqlb*e?bfjQ2qdKdi8;hoU-~o%phIV1$&k-sLWtwGLLG%4>H)()z4*}Q$iB} DSI8Zb literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_JSON_X_Ray_Output_spectra_topo_intensities_legacy_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_JSON_X_Ray_Output_spectra_topo_intensities_legacy_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..dfef14dcf1ee980b18e81938e14303c21ab48d0d GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5Cdl zrqb{87ks@AFAjTpP@d(^LH0K-m$#hSc=7wDcT=CNvZ;I)w{LrqJje_Xc)(*Ht;KfZ Sp6Ra%Ag-sYpUXO@geCyIf-JHC literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_JSON_X_Ray_Output_spectra_topo_intensities_modern.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_JSON_X_Ray_Output_spectra_topo_intensities_modern.png new file mode 100644 index 0000000000000000000000000000000000000000..df8ab162e90c2031e263defca641491b9c1e40e6 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sx;#WAE}&f5zIIT;K%SR60c zU%b^Upqlb*e?bfjQ2qdKdi8;hoU-~o%phIV1$&k-sLWtwGLLG%4>H)()z4*}Q$iB} DSI8Zb literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_JSON_X_Ray_Output_spectra_topo_intensities_modern_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_JSON_X_Ray_Output_spectra_topo_intensities_modern_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..dfef14dcf1ee980b18e81938e14303c21ab48d0d GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5Cdl zrqb{87ks@AFAjTpP@d(^LH0K-m$#hSc=7wDcT=CNvZ;I)w{LrqJje_Xc)(*Ht;KfZ Sp6Ra%Ag-sYpUXO@geCyIf-JHC literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_JSON_X_Ray_Output_spectra_topo_path_length_legacy.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_JSON_X_Ray_Output_spectra_topo_path_length_legacy.png new file mode 100644 index 0000000000000000000000000000000000000000..a7d539c44d2a49fbd3642c914af80e3ca4b23cf5 GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r~q#WAE}&fD{jf(#5ChYddH xONH>*bvDMW1}PHyrEGQm;B;>go4TN(fpuy;Bh%u4EBQeNd%F6$taD0e0su2+8TkMJ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_JSON_X_Ray_Output_spectra_topo_path_length_legacy_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_JSON_X_Ray_Output_spectra_topo_path_length_legacy_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..992c31587612f932814a5e781462d2ba27b67444 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5mdKI;Vst0K>>5lmGw# literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_JSON_X_Ray_Output_spectra_topo_path_length_modern.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_JSON_X_Ray_Output_spectra_topo_path_length_modern.png new file mode 100644 index 0000000000000000000000000000000000000000..a7d539c44d2a49fbd3642c914af80e3ca4b23cf5 GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r~q#WAE}&fD{jf(#5ChYddH xONH>*bvDMW1}PHyrEGQm;B;>go4TN(fpuy;Bh%u4EBQeNd%F6$taD0e0su2+8TkMJ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_JSON_X_Ray_Output_spectra_topo_path_length_modern_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_JSON_X_Ray_Output_spectra_topo_path_length_modern_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..992c31587612f932814a5e781462d2ba27b67444 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5mdKI;Vst0K>>5lmGw# literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_YAML_X_Ray_Output_spectra_topo_intensities_legacy.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_YAML_X_Ray_Output_spectra_topo_intensities_legacy.png new file mode 100644 index 0000000000000000000000000000000000000000..df8ab162e90c2031e263defca641491b9c1e40e6 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sx;#WAE}&f5zIIT;K%SR60c zU%b^Upqlb*e?bfjQ2qdKdi8;hoU-~o%phIV1$&k-sLWtwGLLG%4>H)()z4*}Q$iB} DSI8Zb literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_YAML_X_Ray_Output_spectra_topo_intensities_legacy_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_YAML_X_Ray_Output_spectra_topo_intensities_legacy_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..dfef14dcf1ee980b18e81938e14303c21ab48d0d GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5Cdl zrqb{87ks@AFAjTpP@d(^LH0K-m$#hSc=7wDcT=CNvZ;I)w{LrqJje_Xc)(*Ht;KfZ Sp6Ra%Ag-sYpUXO@geCyIf-JHC literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_YAML_X_Ray_Output_spectra_topo_intensities_modern.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_YAML_X_Ray_Output_spectra_topo_intensities_modern.png new file mode 100644 index 0000000000000000000000000000000000000000..df8ab162e90c2031e263defca641491b9c1e40e6 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sx;#WAE}&f5zIIT;K%SR60c zU%b^Upqlb*e?bfjQ2qdKdi8;hoU-~o%phIV1$&k-sLWtwGLLG%4>H)()z4*}Q$iB} DSI8Zb literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_YAML_X_Ray_Output_spectra_topo_intensities_modern_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_YAML_X_Ray_Output_spectra_topo_intensities_modern_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..dfef14dcf1ee980b18e81938e14303c21ab48d0d GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5Cdl zrqb{87ks@AFAjTpP@d(^LH0K-m$#hSc=7wDcT=CNvZ;I)w{LrqJje_Xc)(*Ht;KfZ Sp6Ra%Ag-sYpUXO@geCyIf-JHC literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_YAML_X_Ray_Output_spectra_topo_path_length_legacy.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_YAML_X_Ray_Output_spectra_topo_path_length_legacy.png new file mode 100644 index 0000000000000000000000000000000000000000..a7d539c44d2a49fbd3642c914af80e3ca4b23cf5 GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r~q#WAE}&fD{jf(#5ChYddH xONH>*bvDMW1}PHyrEGQm;B;>go4TN(fpuy;Bh%u4EBQeNd%F6$taD0e0su2+8TkMJ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_YAML_X_Ray_Output_spectra_topo_path_length_legacy_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_YAML_X_Ray_Output_spectra_topo_path_length_legacy_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..992c31587612f932814a5e781462d2ba27b67444 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5mdKI;Vst0K>>5lmGw# literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_YAML_X_Ray_Output_spectra_topo_path_length_modern.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_YAML_X_Ray_Output_spectra_topo_path_length_modern.png new file mode 100644 index 0000000000000000000000000000000000000000..a7d539c44d2a49fbd3642c914af80e3ca4b23cf5 GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r~q#WAE}&fD{jf(#5ChYddH xONH>*bvDMW1}PHyrEGQm;B;>go4TN(fpuy;Bh%u4EBQeNd%F6$taD0e0su2+8TkMJ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_YAML_X_Ray_Output_spectra_topo_path_length_modern_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Blueprint_YAML_X_Ray_Output_spectra_topo_path_length_modern_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..992c31587612f932814a5e781462d2ba27b67444 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5mdKI;Vst0K>>5lmGw# literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_CGNS_NFace_Elements_01.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_CGNS_NFace_Elements_01.png new file mode 100644 index 0000000000000000000000000000000000000000..55eeef990543463d0c084a7b75289e859add8e60 GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMKx(?Di(^Q|oVVvK`5Fv(SPp#s zFQ2O=!0654WpdflZZb$Ek>G>(*L_QaJ@t)uOdE9mavtv=P@r+&(h38Ag-sYpUXO@geCxSy(@kI literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_CGNS_NFace_Elements_01_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_CGNS_NFace_Elements_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..6373946e7c68b1de84ea87b732896a3a553f6bc5 GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5_T>a#| z!x7gV4Bz8-GVD&!_25!w@w}4HC2g2F>DRopw#<9Xo|9BS$lmjuv*2c?b;&ydpE1-1 zKP$EsUd2#s%e;`Q_VB_tGj*elYOISa`5$lVDX8DKK$<~qm*Tn&+cb}eCgfi3OuqS9 haC`rJRft)CAM<*N7_RAFf36bbGEY}Omvv4FO#ltXM(zLr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Chombo_1_00.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Chombo_1_00.png new file mode 100644 index 0000000000000000000000000000000000000000..53c1fe9f30b651a68da87e2a2bd23a4239fd6a99 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r&k#WAE}&f9Z_j0_AsObWlJ s-}6)c;lLyWQp3QoBAOk-pdQ)K$-Xj*kwGN2bUVmUPgg&ebxsLQ07kPF(*OVf literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Chombo_1_00_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Chombo_1_00_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..c2e3fd86f3aaf5dd7b77ae098ef2c282c2f0cba0 GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5wO1lqcX_js#w6p)SEfo2V}6PtDnm{r-UW| DoRb}t literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Chombo_2_00_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Chombo_2_00_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..db078e44f498e1a1b6e0a579bbef7ea073d6651b GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0G&H4q5uE@ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_GDAL_0_02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_GDAL_0_02.png new file mode 100644 index 0000000000000000000000000000000000000000..8dc9192627c5e00ae011e0807bcf668ac3b1d15f GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r&k#WAE}&f9a0ybKH+%nQEj q*CxM^QBhz7%I#QpR}Q3<%Am&lHaFvcGh=>Ekinj=elF{r5}E*$sTKwR literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_GDAL_0_02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_GDAL_0_02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..599823f19f9c02b2e5be6b8f757d466a279c359b GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5?Mkcv5P&l++vFmNy!96Wqm uEkinj=elF{r5}E*$sTKwR literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_GDAL_1_02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_GDAL_1_02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..599823f19f9c02b2e5be6b8f757d466a279c359b GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5?Mkcv5P&l++vFmNy!96Wqm u@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_amr-quad_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_amr-quad_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_amr-quad_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_amr-quad_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0675158a6cb910218d1eee7c0cfd06844de73f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9YbIT;K%SRCK( ze{sV}!O@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_amr-quad_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_amr-quad_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_beam-quad-nurbs_legacy_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_beam-quad-nurbs_legacy_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..5d3fa917e99307ecdedc023ec27a9cabe37321f2 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sx;#WAE}&f7B^c^Moymds`;Qp^C+e+@y%xmgc%`xNuP{_gbe{+I3NZQlY&t;ucLK6V9 CKpf8i literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_beam-quad-nurbs_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_beam-quad-nurbs_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..af15f8f1b52fe1b48e0a7eedb54ba0eb809495c3 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5ds`;Qp^C+e+@y%xmgc%`xNuP{_gbe{+I3NZQlY&t;ucLK6V9 CKpf8i literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_beam-quad-nurbs_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_beam-quad-nurbs_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..af15f8f1b52fe1b48e0a7eedb54ba0eb809495c3 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5ds`;Qp^C+e+@y%xmgc%`xNuP{_gbe{+I3NZQlY&t;ucLK6V9 CKpf8i literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_beam-quad_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_beam-quad_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..af15f8f1b52fe1b48e0a7eedb54ba0eb809495c3 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5ds`;Qp^C+e+@y%xmgc%`xNuP{_gbe{+I3NZQlY&t;ucLK6V9 CKpf8i literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_beam-quad_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_beam-quad_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..af15f8f1b52fe1b48e0a7eedb54ba0eb809495c3 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5ds`;Qp^C+e+@y%xmgc%`xNuP{_gbe{+I3NZQlY&t;ucLK6V9 CKpf8i literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_beam-tri_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_beam-tri_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..af15f8f1b52fe1b48e0a7eedb54ba0eb809495c3 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5ds`;Qp^C+e+@y%xmgc%`xNuP{_gbe{+I3NZQlY&t;ucLK6V9 CKpf8i literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_beam-tri_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_beam-tri_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..af15f8f1b52fe1b48e0a7eedb54ba0eb809495c3 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5v?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSp@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_inline-quad_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_inline-quad_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_inline-quad_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_inline-quad_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0675158a6cb910218d1eee7c0cfd06844de73f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9YbIT;K%SRCK( ze{sV}!O@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_inline-quad_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_inline-quad_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_inline-tri_legacy_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_inline-tri_legacy_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0675158a6cb910218d1eee7c0cfd06844de73f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9YbIT;K%SRCK( ze{sV}!O@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_inline-tri_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_inline-tri_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_inline-tri_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_inline-tri_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0675158a6cb910218d1eee7c0cfd06844de73f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9YbIT;K%SRCK( ze{sV}!O@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_inline-tri_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_inline-tri_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_periodic-square_legacy_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_periodic-square_legacy_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..ed914ae20dcde631255c8de5388f767fb95e07f9 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sZ$#WAE}&f5zIIT;u@m<{jN zXUICqE1mqmz=R2;3v?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSp@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc-p2_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc-p2_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc-p2_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc-p2_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0675158a6cb910218d1eee7c0cfd06844de73f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9YbIT;K%SRCK( ze{sV}!O@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc-p2_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc-p2_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc-p3_legacy_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc-p3_legacy_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0675158a6cb910218d1eee7c0cfd06844de73f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9YbIT;K%SRCK( ze{sV}!O@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc-p3_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc-p3_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc-p3_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc-p3_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0675158a6cb910218d1eee7c0cfd06844de73f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9YbIT;K%SRCK( ze{sV}!O@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc-p3_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc-p3_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc_legacy_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc_legacy_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0675158a6cb910218d1eee7c0cfd06844de73f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9YbIT;K%SRCK( ze{sV}!O@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0675158a6cb910218d1eee7c0cfd06844de73f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9YbIT;K%SRCK( ze{sV}!O@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_LOR_square-disc_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Lineout3d.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Lineout3d.png new file mode 100644 index 0000000000000000000000000000000000000000..4e528588b0660e1fcdf2ba313e2013ccbd07ee77 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r&k#WAE}&f9a0ybKH+%nQEj suQjxjRZ(CBslf{JW|mzopr0MvmMkN^Mx literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Lineout3d_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Lineout3d_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..fe942cdcaa2d3538fafe586f2ba53f9220f678f5 GIT binary patch literal 98 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5#BhT&kq8pJ-H$3fkII()ANT(K_wM%B$NRP3 zJ-%BPC;!N1e*N>G3arUK0fMVle%uy4v*x{Gn8TWe2*!;}u}QV3Emt3U_@dx$M_6pq zSp}Fx66+DJ4p9MZkbuMVh z4!mEU|KNN_a@h2lPuJhQEeJH`0GoV<(dL{FsGN;F%)V*UQg_InHn@&e9~E$`F+1pY96uX+q*5(qRj z`1nm*=OgE6_aCv_Ds&~Di2z^Bi29G z{m!GUi~Nkd0*m|u7uBd`mVG*X^mOw~?Rw1sqj{d0|1vf&vB_O(Vg163f#HX=Jo800 UFVdQ&MBb@0G5<@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Mixed_braid_2d_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Mixed_braid_2d_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Mixed_offsets_2d.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Mixed_offsets_2d.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0675158a6cb910218d1eee7c0cfd06844de73f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9YbIT;K%SRCK( ze{sV}!O@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Mixed_offsets_2d_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Mixed_offsets_2d_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Mixed_tet_quad_2d.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Mixed_tet_quad_2d.png new file mode 100644 index 0000000000000000000000000000000000000000..ed914ae20dcde631255c8de5388f767fb95e07f9 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sZ$#WAE}&f5zIIT;u@m<{jN zXUICqE1mqmz=R2;3v?ZkQpHGz{8&9Bir4g RE2|%axSpp=fS?83{1OO1T B8(jbZ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Mixed_topo_polygonal_2d_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Mixed_topo_polygonal_2d_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..9d10d70b40240381fb33b105790cc0382210b09c GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5p=fS?83{1OO1T B8(jbZ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Mixed_topo_simple_2d_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_Mixed_topo_simple_2d_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..9d10d70b40240381fb33b105790cc0382210b09c GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5bj^SU816pM6~SJ*LKH-G!d#XQr1w`E#5ZD09P{G4&en T7I_&*Z;(PyS3j3^P65;~}c+0LG4Xz3i+_#npRj%KCKZdF1(1#1hN_{5DeAfMbX4lo}lQ&IKIca&f=zLCf gwFSsP5NNo+gCU<)fLVCC>kSa!)78&qol`;+018SlH~;_u literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_amr03.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_amr03.png new file mode 100644 index 0000000000000000000000000000000000000000..159d9a4dd8526164f865887a3a6d341ea8eedbd4 GIT binary patch literal 188 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&si(#WAE}&f5zIc^Mp7SR8)o z|1x5;~}c+0LG4Xz3i+_#npRj%KCKZdF1(1#1hN_{5DeAfMbX4lo}lQ&IKIca&f=zLCf gwFSsP5NNo+gCU<)fLVCC>kSa!)78&qol`;+018SlH~;_u literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_annot_macros_tafile_2.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_annot_macros_tafile_2.png new file mode 100644 index 0000000000000000000000000000000000000000..3ecbce8e2e9a8a01033ec272e55b699f563101da GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMKx(O{i(^Q|oVV9EayB?HupB)8 zulicZ!IZ$7qcges&gSueloA9D@zLr070s#N8uSIV1+c&!Ql}5vDFPj`q4>1x2jf1u hH;T3dO@%3_-^f@{#4eH~;&&D#=^~Dy9Gc literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_annot_macros_tafile_2_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_annot_macros_tafile_2_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..523ae1ca589cab2f1e303f57d55f126f24f2c4ee GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5bvKPKLJv~3EZnH2WP(wle*$L_S8~OkKZkqJ|dDEnrNt3Qm zJ7tx8(q>)$)qmTctej-M>h$5lMV%d+_h;W~-)1GFzAN}ONaq80Zk_FHOH7KMHUoJK Mp00i_>zopr0OtciYXATM literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_annot_macros_tafile_6.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_annot_macros_tafile_6.png new file mode 100644 index 0000000000000000000000000000000000000000..3ecbce8e2e9a8a01033ec272e55b699f563101da GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMKx(O{i(^Q|oVV9EayB?HupB)8 zulicZ!IZ$7qcges&gSueloA9D@zLr070s#N8uSIV1+c&!Ql}5vDFPj`q4>1x2jf1u hH;T3dO@%3_-^f@{#4eH~;&&D#=^~Dy9Gc literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_annot_macros_tafile_6_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_annot_macros_tafile_6_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..523ae1ca589cab2f1e303f57d55f126f24f2c4ee GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5bvKPKLJv~3EZnH2WP(wle*$L_S8~OkKZkqJ|dDEnrNt3Qm zJ7tx8(q>)$)qmTctej-M>h$5lMV%d+_h;W~-)1GFzAN}ONaq80Zk_FHOH7KMHUoJK Mp00i_>zopr0OtciYXATM literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bestline_3_00.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bestline_3_00.png new file mode 100644 index 0000000000000000000000000000000000000000..bb772d57f385260f33b38d5a18e7b623de99cd28 GIT binary patch literal 940 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AM3=GW0o-U3d6?5L+IvDiWLc}5P z?3F+N^}p+EDd2K4-|m@o(lY&Y+nuVaBA#TBCMdZ7?flLC2UgYfeq4EOfBGM#-9p*| zVEE(xoA?CV{rmoOp5!|6tGAzjVG=6{<{g%fzu!DLqWo_C{s$6l5J9m&UzT?l^eA3S z-(Pw09ZVFYIN#R9CrS3-kL#7k4Il;!XjeS{f8I(?YG35R6tIyHGv5DmwX(I^o4)2l z)U#>H5*?y2xaY3+tUqzj+JNqW!+S5*9**CawIgv;lliPQhws~U&R*jHgF5pbKhppI zEco|gyCo2VV!rQwcs|~!CTUZX_Pw_9^jCuNS3q`OkNV&r@oM`z(bxOh-=-cn*l{Yi z;y;7kkIOUHJXmG@T2uX43hVFpYx-}$>YRT9;@If-YxrNkdO80nh$~*HQG3?xrpdL* z_m9>bG~_wLWoFyf9&YzLNBs4iTvN-o#)!sdiP zhRK?09)9jM-%h5mYWrPlT3u@t3ACXLsPIhIe4nrlH&S$W-##v(rY)!)@kT;U?DpGa zp2<^nj3cwxgY+b^o|ZX$xC^R{>3BhVb%9ajL8i&25#?L`)qpW?@m1p8W{6cfMbhi) z`2EzhEiyNiMZcX4iU7a(57l7XlUUc=w^hfrfQ+BB^FjG7utgoBdp=3z?E&eZv-!bx zsHP)aaho@9+s_UZ-Sf-r&KJ2kK4A(#_~Fgm(urUPyv{qk_WePy1Cv<&??g`D#c^Ch zKk9?{4WO~d4FthSvf@qfh9))?H@NMU%YLT=nL{c4E_jQv-;or7vXjP?3d<$ hY=OolEZcx->!0$j2AV>((m_cezNf37%Q~loCIG4QpX>kt literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bestline_3_00_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bestline_3_00_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..09d35e09e0567cca00dc834bdc9ac6798ac23686 GIT binary patch literal 759 zcmVHDy8^49n#uw5fKq_k{9nRd6NQ1 z0boGTB5ObR*%s6X0OZL}1|XRvYo|8KWs2zo0P1-om+_{rZvJH@5e6z=_4L{HUI8W4w)o|Let+qHlW`mX;1Dw z_Z!-EPcUq--rDw2V>10c$yH}U(Bii9nmouz7Rpq!WKhUS z9;Y$o)yR4;FJRwaBWX`6{C?((Zn^?4@E7qZsq9brWAQ{#j!;# z=G;o)Er?oJsz`oRvK^TPF9^K1q87HZLKcN{7VveZPmdl+lZ}k* z(zV@EySgTMvI3Ak*~IvNE}j!Ro0M;2Tsp_aNvJ9(^002ovPDHLkV1f;oS|I=c literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bestline_3_02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bestline_3_02.png new file mode 100644 index 0000000000000000000000000000000000000000..c6888f682e14fc0f3810b50c30bd2e31bcea7794 GIT binary patch literal 1033 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AM3=GT{JY5_^D(1Ysdpj@6T7)$q z=*|+BEyeaqjK6AHO*MeZNKC`VH?a(tVZJ z9C(&oQ5yTP|MHrK4NQl)-fT}RwMokcY5RNZLu1(Fl|X|SwQqi0_J#d;yx;qxk{1P? zHTlyw#1+`My0?S%aA+4SVy(Nm*m?TgeZOa3lwk8SX*(C`+?yYE`+OG9(#Xb@+1HLg z-JFpfQ}jrms(|$PP;=*=)7; zVe&S%vs@e?g^hPNJaav}I5c206YH$d%Zszk&vNzTgv~#E;XwHPS)vwqXO%ul3f;_f z_5JNx)|b{8CR=>)ZJpPX2=uqn?uT5HSAoLsRL?`}dy;pR@6TQl*;sgX)$Y9d&&Bc6 z zVWVlbhWd|rAjO{}P1ab>&e^!Z>JQuTwzih72LxZM9-U=+eY5)3@`&A2UKQ=kxVGH= zzE45=iR{C%uS%b#)z*qVJ^J@Lr(M9tNPWMzKOSCN)3Eq(Z~E?uX{=i7A~)O2WlCh_ zc0Ib`)V`C6XSqUhu5mvL@!Jec0HDwV$7;!)X8w7)^*_E`IU~FpfG?w;P?H2t*f;iwrd3bJZ=J z1~O@dbzA(YKcAe>a;*^#Yg}5_YPiR=RN{JO7$eC33#n(dDo);X`O3QQO1E6Hgh1GW zUlMVmk-tDG0O+*4*VZVV_6eSa>>!5-28LRbeV#YJ`fku}zXVN|FrQRt=NuQlHZ_fv z&oq1Wd;R)GB=1Pg-~8>K)a=%+-?!eMYRCgj%NlEH+23tU&c1f?l9kvs$*`}|*VZ_! z-q7`D_u758^dOP)7%Q6vzK-SL@W^HqN?5g@l5r6p12kM7WIyf=xIrw*a zGjC?zy!m)l^&_p)OZ~XcmAg)W_C4vRvE6bOu1r+z?y8%Lyai#YhoA`A+sB8rh^Y04Og$aAGtI zc6l^Gc*@JtJFq9w_?M?O(R=p!_QzwAAey&t!Mi6f_aT*Jt4ep5sv6(t7Z!QvW5IOnv@BmYr0~9CUvDFAraua@g-7Z0#G^-Hiy|FDeJmo=D7Z%ygj!E;9D-Y zI*{G~AcC>=Zgt?E-sabOWw{K1&l7i7S|I=*jID|$rP!6;vh4ZER0iPlC21c3 zp5-d6*C(=tRb%|B-cuc-Pr$!r01&Dvv$>J)78G6SPoq+B$qhCz9LxVbvIzj<${09} zsD}IyGb;6NYIvpJFIBpD8dbdbB*~{MdU{OZKN$ZxD**t`m}52@{Z#~XC&q>oJAMGs z_@!x1BaLVD8qrtH`W$-mfL}m@YHxz(M>uadqd#0N)jxL{-PGuR=jKW`?7oT`7`S-M zZ&-G3ZmuRrh_V4w7mO371JY199MmeBoi4$hQ4AH{-SyB~YHVHM)@*P8yOD`mww6IC z7cy3ep(8cN9 zjtuPfL>v~8OfeKBli!WSt1ZmWgz@pLL-0TMmn<_5o&|QEP~IYvlcK!j0)IrYJ;I&~ z%NGAr&`uyXAgRZl8OSb0(mG#gY73#K<%i}Y!1~5B5|;BY6IN?jA7Lt#RrXuN5i0LD zDSOK9&DAaex(>j}UOUY88vHvfIo3@1;YB4jnrD&-o88wX{%d SrDcEs0000sWNlL4Y-2 z;;Fyu-{@>Pptj?}^fWiyOVztm9BLbpcYoQeWr@;h)eyuVOr#B+kcM|*RHEr%-GPDR}xU8>t26%^%}nOp{pKW zuAjQW%wpc6>DEx29=I{r-MYH)wCDZW^eb(R(pwkWX0P}-_3F31QqC*a9C&G*t-Hli zuWrSf12d<7&9Kw6*^43n%I}k?|Nv}^SjFzZ%KUMHuY)S(SXI;t1t7&7n`hr_(H^j_jTNg z%DF8dEkJ)Mr-#i?&3Ldnf2ycPfmC1Vligu?;@39m>=s^Kw|DJM<>_yZhg>@_o6A=6 z1JEa@cz#G)g{A_-PUCW0^_$GQ%J*ll*u?Z$YxTQ3bswwu`rU2Y{kG=Omc#`;P7;sZE5ASu8+Z5bxS|vTxYR%(#yAQL!_gks0$>M%_&Rd49WnD)W>U9F}e zf6inaJ}_5X+sU-p-l%WaLfj{C=N-k$hYI%)6WRex{q|MBJUtVp0!y3VdynDfE* z?#@k*4yRw*ASJiyAhQVf>cjB`e^erT+gnTzc5U_Cc*^Sfa`mg35&@B`ec$(lM>blA zU;DgQL;8IDRM8a?k<#Y9AGteEaeZ00X63hw{_cxTafQr@O#gX<_0X*Es}66{Y0WR1 z5!u)^b?ZS()#V`1z>`CXO*8+yX@BhmH_V1a6f}_lBjUO3>c5BQ@2p$7#^G*vJ*&Rn zYFG*aN*=$w;j3cVKXV0;tnKOt;#n&}vZc2_tUM!c9}?MEc}UCPReHwZ_kOv@Dz#QK zfKuuUqs?4#PjVLhYS90>$X%MPMRdizw$)0D{XtP75Vqj<87-riD5uheQ4!JHxewYxRle+kR#3o)Wi5a%&%h~ioGClPgg&ebxsLQ0H4RzhX4Qo literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bestline_3_03_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bestline_3_03_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..8d69519f6354e78615f1d9d36617a0adf70f3e70 GIT binary patch literal 1295 zcmV+q1@QWbP)7hVZn+ zD)zvIlc`j)l9VQ1*m{3V(nK@OYw%9|!M#|_utmn*YgI|`>$6vR|ILOd&k$X75MEB# zl7V-gX;}y2ibgb_h%tp%uC(5r~?$x@A*RLOC?QqGMX|ocdAp|&jWH3ym$^b6jsja#? zX`)NDOtfH)#D@k%fX@o@k`pBR5Fe`Ru^NuY${>lM-mfSkO4gkpDUAvOmhwIKQ zJC=1`C3ADt)FZp_Gix^Z<%9XmVm0@Wqjvy6ER~uJR?-32f3o^lu-wqyl6?ti6O~~< z9`kXW;EYQ`LFzmgQXlc!sOAQvZ=W z&}k7aeS0duYOOB@1w7aQ0HMBRx)F$&1sMQv!XC5Pn3p18@|Y$Jt%m_5Q|HDxl{EV3 zC8F=$+U!5JCoCXcKNGmQuz|eAM}L_%sFrCovqJAjKYiE*vJ0F@&{)_q>{79Q{u(AK zL~TtlLX?fluO@0oC^zpCkW(!MQdd3P8;!Ng+?wj?{djn^9vj@0XxYcsg52P}TH2?7 zkj>fKWHN96FplSM+;g}S*%0L>ca9N_c~b!5igNdxPj^(aZkFiThJxT1L7b^Xi_%JG zk=bgd7aJ;5!iRZRVk|`_E!`Qb6RvUI5t}P9k4=T#sQi^jFANo;1)`D0LP@g~xzOAa zDs5=CsSVsN&uL(Xx`|coj9hr%?!uk#9ZmEAIJ_9~LIn;Vb{IoM3a=$Cz1&GlHy4)2QQW7r(wY-lC0eJ? zw;*eS-gML~pwbHO{<#H&NXrM!CxG*cXKYyB!`!f1!`X$I8X{`o#b=A9CK1JduIl0)S3Mv3~#Q;A2RD0X_KgvkXWwXl$4ztDO` znuzFvcl|Nf$*=lLyIIdpt>O??x+Lzmmo{zMv}yA{=RZ7vvc;!`TAu&_002ovPDHLk FV1hb$djkLf literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_biquadratic_quad_field_01.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_biquadratic_quad_field_01.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0675158a6cb910218d1eee7c0cfd06844de73f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9YbIT;K%SRCK( ze{sV}!O@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_biquadratic_quad_field_01_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_biquadratic_quad_field_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_biquadratic_quad_field_02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_biquadratic_quad_field_02.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0675158a6cb910218d1eee7c0cfd06844de73f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9YbIT;K%SRCK( ze{sV}!O@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_biquadratic_quad_field_02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_biquadratic_quad_field_02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_biquadratic_quad_field_03.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_biquadratic_quad_field_03.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0675158a6cb910218d1eee7c0cfd06844de73f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9YbIT;K%SRCK( ze{sV}!O@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_biquadratic_quad_field_03_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_biquadratic_quad_field_03_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_1d_curve_element_assoc.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_1d_curve_element_assoc.png new file mode 100644 index 0000000000000000000000000000000000000000..b1cc123ad28e3397d10e35de26e96889e68ea6a4 GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sT!#WAE}&f9Z_j0_AM%nQEi q+txF`VCM7yso8P0jvqu*8Ej*;nZx*>>(3&0kinj=elF{r5}E*!v=?Mkcv5P&l(Cc7;vx{ypx!* vdeJ}GM~}pXm{&fUVc+&* literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_hdf5_0_8_2_quads_mesh.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_hdf5_0_8_2_quads_mesh.png new file mode 100644 index 0000000000000000000000000000000000000000..ed914ae20dcde631255c8de5388f767fb95e07f9 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sZ$#WAE}&f5zIIT;u@m<{jN zXUICqE1mqmz=R2;3v?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSp@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_json_struct_mesh_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_json_struct_mesh_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_json_tris_mesh.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_2d_json_tris_mesh.png new file mode 100644 index 0000000000000000000000000000000000000000..ed914ae20dcde631255c8de5388f767fb95e07f9 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sZ$#WAE}&f5zIIT;u@m<{jN zXUICqE1mqmz=R2;3v?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpa4i)b^$V$OKPUKbLh*2~7Zr C3Leh@ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_conduit_bin_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_conduit_bin_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..e5c3a134c2c1d0453e27d45c75bfc241381242a9 GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5UKXc23eT83_T$vEYnYnJWDaarosJO$H Wa*&Pr!S$1!Ag-sYpUXO@geCwF;3%K~ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_conduit_bin_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_conduit_bin_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..87d03944a0249ca4a4b787fe52383eae6d0ba4f1 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sZ$#WAE}&fBvac^M2iSPXB} zXIxtThmG^*-a4i)b^$V$OKPUKbLh*2~7Zr C3Leh@ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_conduit_bin_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_conduit_bin_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..e5c3a134c2c1d0453e27d45c75bfc241381242a9 GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5UKXc23eT83_T$vEYnYnJWDaarosJO$H Wa*&Pr!S$1!Ag-sYpUXO@geCwF;3%K~ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_conduit_json_legacy_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_conduit_json_legacy_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..87d03944a0249ca4a4b787fe52383eae6d0ba4f1 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sZ$#WAE}&fBvac^M2iSPXB} zXIxtThmG^*-a4i)b^$V$OKPUKbLh*2~7Zr C3Leh@ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_conduit_json_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_conduit_json_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..e5c3a134c2c1d0453e27d45c75bfc241381242a9 GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5UKXc23eT83_T$vEYnYnJWDaarosJO$H Wa*&Pr!S$1!Ag-sYpUXO@geCwF;3%K~ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_conduit_json_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_conduit_json_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..87d03944a0249ca4a4b787fe52383eae6d0ba4f1 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sZ$#WAE}&fBvac^M2iSPXB} zXIxtThmG^*-a4i)b^$V$OKPUKbLh*2~7Zr C3Leh@ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_conduit_json_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_conduit_json_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..e5c3a134c2c1d0453e27d45c75bfc241381242a9 GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5UKXc23eT83_T$vEYnYnJWDaarosJO$H Wa*&Pr!S$1!Ag-sYpUXO@geCwF;3%K~ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_hdf5_legacy_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_hdf5_legacy_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..87d03944a0249ca4a4b787fe52383eae6d0ba4f1 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sZ$#WAE}&fBvac^M2iSPXB} zXIxtThmG^*-a4i)b^$V$OKPUKbLh*2~7Zr C3Leh@ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_hdf5_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_hdf5_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..e5c3a134c2c1d0453e27d45c75bfc241381242a9 GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5UKXc23eT83_T$vEYnYnJWDaarosJO$H Wa*&Pr!S$1!Ag-sYpUXO@geCwF;3%K~ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_hdf5_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_hdf5_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..87d03944a0249ca4a4b787fe52383eae6d0ba4f1 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sZ$#WAE}&fBvac^M2iSPXB} zXIxtThmG^*-a4i)b^$V$OKPUKbLh*2~7Zr C3Leh@ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_hdf5_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_hdf5_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..e5c3a134c2c1d0453e27d45c75bfc241381242a9 GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5UKXc23eT83_T$vEYnYnJWDaarosJO$H Wa*&Pr!S$1!Ag-sYpUXO@geCwF;3%K~ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_json_legacy_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_json_legacy_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..87d03944a0249ca4a4b787fe52383eae6d0ba4f1 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sZ$#WAE}&fBvac^M2iSPXB} zXIxtThmG^*-a4i)b^$V$OKPUKbLh*2~7Zr C3Leh@ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_json_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_json_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..e5c3a134c2c1d0453e27d45c75bfc241381242a9 GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5UKXc23eT83_T$vEYnYnJWDaarosJO$H Wa*&Pr!S$1!Ag-sYpUXO@geCwF;3%K~ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_json_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_json_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..87d03944a0249ca4a4b787fe52383eae6d0ba4f1 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sZ$#WAE}&fBvac^M2iSPXB} zXIxtThmG^*-a4i)b^$V$OKPUKbLh*2~7Zr C3Leh@ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_json_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_periodic_hexagon_json_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..e5c3a134c2c1d0453e27d45c75bfc241381242a9 GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5UKXc23eT83_T$vEYnYnJWDaarosJO$H Wa*&Pr!S$1!Ag-sYpUXO@geCwF;3%K~ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_tri_beam_legacy_lor.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_tri_beam_legacy_lor.png new file mode 100644 index 0000000000000000000000000000000000000000..5d3fa917e99307ecdedc023ec27a9cabe37321f2 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sx;#WAE}&f7B^c^Moymds`;Qp^C+e+@y%xmgc%`xNuP{_gbe{+I3NZQlY&t;ucLK6V9 CKpf8i literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_tri_beam_legacy_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_tri_beam_legacy_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..af15f8f1b52fe1b48e0a7eedb54ba0eb809495c3 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5ds`;Qp^C+e+@y%xmgc%`xNuP{_gbe{+I3NZQlY&t;ucLK6V9 CKpf8i literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_tri_beam_lor_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_mfem_2d_tri_beam_lor_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..af15f8f1b52fe1b48e0a7eedb54ba0eb809495c3 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5;4-LCJ2{GbP0l+XkKx7Zs4 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_poly_2d_hdf5_0_8_2_mesh_topo_mesh_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_poly_2d_hdf5_0_8_2_mesh_topo_mesh_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..c9db8ef2cd9fd34549c1c7d1cb87e8d17d04090d GIT binary patch literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr03NC} A>Hq)$ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_poly_2d_yaml_0_8_2_mesh_topo_mesh.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_poly_2d_yaml_0_8_2_mesh_topo_mesh.png new file mode 100644 index 0000000000000000000000000000000000000000..32b9d19ff50a7c05f408f71804558ad2cd5c212a GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sNy#WAE}&fBw&j0_Ac2ONI2 zFKgj{$CM)oQUd~WrYzn%>;4-LCJ2{GbP0l+XkKx7Zs4 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_poly_2d_yaml_0_8_2_mesh_topo_mesh_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_poly_2d_yaml_0_8_2_mesh_topo_mesh_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..c9db8ef2cd9fd34549c1c7d1cb87e8d17d04090d GIT binary patch literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr03NC} A>Hq)$ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_rz_cyl_rectilinear.root_plot_2D.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_rz_cyl_rectilinear.root_plot_2D.png new file mode 100644 index 0000000000000000000000000000000000000000..083af9aeeaf219634c9feb080f18cdde3163dab5 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sx;#WAE}&f5zIIT;Lim^YUE zUpQNoNpA`N%ld>ER**t$pl7bizV%^$w5r&#$r3Hr5X<|sgOTZV!0C@5J)W+9F6*2U FngF>X9yR~~ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_rz_cyl_rectilinear.root_plot_2D_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_rz_cyl_rectilinear.root_plot_2D_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8a09ebc7148344fb1cf1f402439d7cfe6f6bb2 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zF5F$ip)A z&;Rr15+^zrd0a}FtTc7i?8JntYcey_*x73MK)SGi1OLx$zs*?p`1SPpZA+zvp1;=L zKVR^3QP+OYUvqaC=C4~f>sNu{$E{0~m)YIns!hM!vywl&C_cg@|CMw7mv^GE%j`^+ z=f|GQe&zg}p*A~o#;*%z&exqvSDnk8{iyo9(bjdV?Ek6jUSEFTE?z7yo;~o zAJz-!HM19J=W8rpGjZLTjWwIvb``O0J}LG3l*C!p>eelBGxS@q~4zrxu}@ksO|63yhe1Lj^XTo22XfDZJH)>TF^u{yI0#e zWZOcAuxpEwo*q_9U0XD@@3fi7iIY)bYjPe;SyQ@h(!`r>Op=k@-BY>ePS|=WRI4oJ zT2T1R2Xi8s5+k#_r*_Cq-FhR`#^!c_f<|`f#zP-7r#bjs`;_F$z95q6gb>HcsQui{ z$`^DRJJzswiAp!6aVmH#D7@~Bm5^#q<9xA6PBSb;V3ulw4rAmsQf)(Y zY9+vef!Bg}2gtRjab|3i)1GD}a8}4+8p9@*2_Oxg*NV-Z3su1CQh>%XL^5@)Vb5>7 z6<`8lpMWT3iS)n6vvgwyTpLs=R2pm&Rw0f}QU5+y+aHQRHVvv=W7E7EtZox0U%Auvw7t{uu+s`Px; z)^lNc1x3<&o2T~7w%r_d^HiI!{Dw&gA@nF4y`T@ zAwz;fDRziTl{08HLcU#+;oe;Cecm5g%6-S=z4w#%z1+R`yhjuzN|Y#30yCw0z-uD< zGchE)9DnnXvhRtgc}+ilzkI(|w4}nu-W7yg?QLWyD_C}%>KI|*R2_3;vlT`FKx@;G zSU8Xo0C2EiKsZ&8V*sB1oD~{80stBXJ!8GiH-PrKj#25U7(lNwc|%80H`Em!Lscnt zbqt_e;v0!WJp(vQun||+09^KDF|YHWc+3fNn)(LNR(&hBX zCuPG$$SKR)B&Ca#EUlz;BrEe~10kAUks@0$QzW(}YmvV-oh{&2JoVy8%4ySq5Tzxj zKBcr8j!QcgI+9q%d>}*_;k*jS;;ap1b}H6%ZWTK#nDoUVJcrj(8{vor;(E z<)!&RM*0wu$9;2T|54V$v~mcl9Y*em7dxf{*}0InnLrT~5QEwm;MTv+xruQeP^bm0 zQuo`e-!dlK_q=u{H8!)tCZd9N0nt|2z+2PWBm#PCe1oX+q+>iOZg^?^kJ-C7gCy$e zMxDP8HAq}pscSri#9gJc-*fezbW}Em^|pnHh~{>=#_pW1!JabRsTyXrCcX1}wN)d6 zh^QFOcs22{L6dRE?t!&j4#9gn=X@@I$cbA!cb&5@Us*SH_A9{TtEErxmWC(z<>cqL v6YnqcShbg#>ERmJzf(FcN|Y#3q6Ft3O4(qfINbDR00000NkvXXu0mjfg_K_o literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_rz_cyl_structured.root_plot_2D.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_rz_cyl_structured.root_plot_2D.png new file mode 100644 index 0000000000000000000000000000000000000000..bccaaf82a1f86dcfd8df44bd0326538f35f4038a GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sx;#WAE}&f9YbIT;u@m<{jN zXT&-N)TsV1>IJF73XT;SuUjqd{8O&x9V1o+#0nOyU{sA^Vww{jDGt)&>FVdQ&MBb@ E08e`xiU0rr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_rz_cyl_structured.root_plot_2D_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_rz_cyl_structured.root_plot_2D_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..90063e7663502c034597b84b48de099e2e281019 GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5izI?5s2&Q L>gTe~DWM4f?}j1J literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_rz_cyl_uniform.root_plot_2D.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_rz_cyl_uniform.root_plot_2D.png new file mode 100644 index 0000000000000000000000000000000000000000..083af9aeeaf219634c9feb080f18cdde3163dab5 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sx;#WAE}&f5zIIT;Lim^YUE zUpQNoNpA`N%ld>ER**t$pl7bizV%^$w5r&#$r3Hr5X<|sgOTZV!0C@5J)W+9F6*2U FngF>X9yR~~ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_rz_cyl_uniform.root_plot_2D_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_rz_cyl_uniform.root_plot_2D_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8a09ebc7148344fb1cf1f402439d7cfe6f6bb2 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5IJF73XT;SuUjqd{8O&x9V1o+#0nOyU{sA^Vww{jDGt)&>FVdQ&MBb@ E08e`xiU0rr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_rz_cyl_unstructured.root_plot_2D_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_blueprint_rz_cyl_unstructured.root_plot_2D_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..90063e7663502c034597b84b48de099e2e281019 GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5izI?5s2&Q L>gTe~DWM4f?}j1J literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_1_05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_1_05.png new file mode 100644 index 0000000000000000000000000000000000000000..08e108cf852c4a40ec608df07a26a0f4b5b0494f GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&s8t#WAE}&f7~HIT;Lim>nno zE${m+(ikH4B(KSR1xPFPfZc}W%qP~c%c$WfNS z{4DW*?hM6sL3h6DpAH471p$Nmv5r@A?{T{AD*MDD@rZf)a)v3X)}gf^IZszVmvv4F FO#qYDA(sFE literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_2_05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_2_05.png new file mode 100644 index 0000000000000000000000000000000000000000..08e108cf852c4a40ec608df07a26a0f4b5b0494f GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&s8t#WAE}&f7~HIT;Lim>nno zE${m+(ikH4B(KSR1xPFPfZc}W%qP~c%c$WfNS z{4DW*?hM6sL3h6DpAH471p$Nmv5r@A?{T{AD*MDD@rZf)a)v3X)}gf^IZszVmvv4F FO#qYDA(sFE literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_3_05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_3_05.png new file mode 100644 index 0000000000000000000000000000000000000000..08e108cf852c4a40ec608df07a26a0f4b5b0494f GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&s8t#WAE}&f7~HIT;Lim>nno zE${m+(ikH4B(KSR1xPFPfZc}W%qP~c%c$WfNS z{4DW*?hM6sL3h6DpAH471p$Nmv5r@A?{T{AD*MDD@rZf)a)v3X)}gf^IZszVmvv4F FO#qYDA(sFE literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_4_05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_4_05.png new file mode 100644 index 0000000000000000000000000000000000000000..08e108cf852c4a40ec608df07a26a0f4b5b0494f GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&s8t#WAE}&f7~HIT;Lim>nno zE${m+(ikH4B(KSR1xPFPfZc}W%qP~c%c$WfNS z{4DW*?hM6sL3h6DpAH471p$Nmv5r@A?{T{AD*MDD@rZf)a)v3X)}gf^IZszVmvv4F FO#qYDA(sFE literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_5_05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_5_05.png new file mode 100644 index 0000000000000000000000000000000000000000..08e108cf852c4a40ec608df07a26a0f4b5b0494f GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&s8t#WAE}&f7~HIT;Lim>nno zE${m+(ikH4B(KSR1xPFPfZc}W%qP~c%c$WfNS z{4DW*?hM6sL3h6DpAH471p$Nmv5r@A?{T{AD*MDD@rZf)a)v3X)}gf^IZszVmvv4F FO#qYDA(sFE literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_6_05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_6_05.png new file mode 100644 index 0000000000000000000000000000000000000000..08e108cf852c4a40ec608df07a26a0f4b5b0494f GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&s8t#WAE}&f7~HIT;Lim>nno zE${m+(ikH4B(KSR1xPFPfZc}W%qP~c%c$WfNS z{4DW*?hM6sL3h6DpAH471p$Nmv5r@A?{T{AD*MDD@rZf)a)v3X)}gf^IZszVmvv4F FO#qYDA(sFE literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_7_05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_7_05.png new file mode 100644 index 0000000000000000000000000000000000000000..08e108cf852c4a40ec608df07a26a0f4b5b0494f GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&s8t#WAE}&f7~HIT;Lim>nno zE${m+(ikH4B(KSR1xPFPfZc}W%qP~c%c$WfNS z{4DW*?hM6sL3h6DpAH471p$Nmv5r@A?{T{AD*MDD@rZf)a)v3X)}gf^IZszVmvv4F FO#qYDA(sFE literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_8_05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bov_8_05.png new file mode 100644 index 0000000000000000000000000000000000000000..08e108cf852c4a40ec608df07a26a0f4b5b0494f GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&s8t#WAE}&f7~HIT;Lim>nno zE${m+(ikH4B(KSR1xPFPfZc}W%qP~c%c$WfNS z{4DW*?hM6sL3h6DpAH471p$Nmv5r@A?{T{AD*MDD@rZf)a)v3X)}gf^IZszVmvv4F FO#qYDA(sFE literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_boxlib_01.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_boxlib_01.png new file mode 100644 index 0000000000000000000000000000000000000000..71a6e2b23520e63ac39eca70fc6855351ffb3512 GIT binary patch literal 454 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMKu)ixi(^Q|oVRzq`I;OA92^bq z{6Dp$^rf<7oBvhLW7Cf@EPK2Oq#P%>b9~o%yMw(oY4Q*Jj&L1eLRPpeI$b_t(VnbK zZJmnuDY6j{O(PGQ{bmS0`ubD~YZ49MwnI#lMfa3%%GreCj`9?3oeiR5V2Qq`|9P1w zi*^tJZC=X$X}q5;HCfc=dHG?x@SmG!uX*5kKl1Q;VN?Th4$H5oyK;Mh@%eB4ukTHX zTYIIbXie=K-ESYB$J~!RSavVFo%#CJqxU*ztZ~2tA8=p!%J)R^S+g%F5ItS}T-G@y GGywp9vY93T literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_boxlib_01_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_boxlib_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..dea633470be022556ea1317008696a5f1af0fcb3 GIT binary patch literal 288 zcmV+*0pI?KP)L3ViUcuGL8wg&)3kae&@CeR=lel!V>QG(V7qG!J5$yM~ zy%64ykf#4U4*&oF02;*KItXbw$N&KRly9NsU=~;p=^d}<`nw9reJn<7JQ?%IL5PA7 zLI@$mu;)_@IJwnZSV=lP)!!5V@HM_qKH&SLp&^+sFWJz%sXP~PJCifaLzHuISjksN zbLzQ}YS@$P6<5p%HU8D7^GmUeMw3plR`)>CS;=r&D!c1`seUZ>8cnKfcBL}8RqcVK mvyvbe1M=QfM~Jci33&r{Eh)W*T)amB0000^>bP0l+XkK6@@@& literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_boxlib_02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_boxlib_02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..5ce02ca68e677991643dfb4559bd8091be5d0789 GIT binary patch literal 140 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5efo;}4L5-XbDQp{83r+TR=`4JkIXg=!UkM20cU<0cMdj9>uUoFV{Hk2?y<6$x gwMBzopr0GBT>sQ>@~ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_boxlib_03.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_boxlib_03.png new file mode 100644 index 0000000000000000000000000000000000000000..71a6e2b23520e63ac39eca70fc6855351ffb3512 GIT binary patch literal 454 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMKu)ixi(^Q|oVRzq`I;OA92^bq z{6Dp$^rf<7oBvhLW7Cf@EPK2Oq#P%>b9~o%yMw(oY4Q*Jj&L1eLRPpeI$b_t(VnbK zZJmnuDY6j{O(PGQ{bmS0`ubD~YZ49MwnI#lMfa3%%GreCj`9?3oeiR5V2Qq`|9P1w zi*^tJZC=X$X}q5;HCfc=dHG?x@SmG!uX*5kKl1Q;VN?Th4$H5oyK;Mh@%eB4ukTHX zTYIIbXie=K-ESYB$J~!RSavVFo%#CJqxU*ztZ~2tA8=p!%J)R^S+g%F5ItS}T-G@y GGywp9vY93T literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_boxlib_03_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_boxlib_03_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..dea633470be022556ea1317008696a5f1af0fcb3 GIT binary patch literal 288 zcmV+*0pI?KP)L3ViUcuGL8wg&)3kae&@CeR=lel!V>QG(V7qG!J5$yM~ zy%64ykf#4U4*&oF02;*KItXbw$N&KRly9NsU=~;p=^d}<`nw9reJn<7JQ?%IL5PA7 zLI@$mu;)_@IJwnZSV=lP)!!5V@HM_qKH&SLp&^+sFWJz%sXP~PJCifaLzHuISjksN zbLzQ}YS@$P6<5p%HU8D7^GmUeMw3plR`)>CS;=r&D!c1`seUZ>8cnKfcBL}8RqcVK mvyvbe1M=QfM~Jci33&r{Eh)W*T)amB0000pi>b&J_s!>V`cMJVVGwz`W&YlEkM>>pn)df>&Bv>2!mhQX)DI%^w{mtiZMyaH@~)h{ z|59_=czouZmy#}eqja-h+m1Q< zlVz7aPK%W--4?U)&6;n!rj|Zmuz1&^n_Exssz0@Dz5b@x(?snb#@?8IbN){OW{~Ho b0ur`}d;Atny2`SY5oDgHtDnm{r-UW|rv{w> literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bp_sparse_topos_example_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_bp_sparse_topos_example_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..21a12fcd9e437dc6f81eec68f13dbad00005eab8 GIT binary patch literal 304 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5Ar*7pUN-DHQ!Py33E6=*!y_oy^vGu+SRR+Ig z)F%I)y=!Zm<3zz+tJ*6+JwmQ6Jhs#J=ba{t6O zBR8dZmm}xbK8e~mF+y|etNVJtSKn^Am~>t6w*38wIny5B+`o@+*ZsH4-qiJeds@zS xzQ3aPNyd^a-@eX^Sy!DW=1YM53d26Egj>{)NLY}UEF6*2UngHwchl2nB literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_chgcar_05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_chgcar_05.png new file mode 100644 index 0000000000000000000000000000000000000000..c7cc8a5b3d9da6815efd35c9443f400e11b66f36 GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMKSR5Yx z{~z=Ih)c%;)^xqNlef%FqCnblfe)L0{9@pq7%E@M$gt+<-?f3VQyzfTHt^JJW?+yw zewS;~#VHKy4e}Tn7#?^hnzx6PsBHdv?S|n~k(}cnn2NfC4lT(NzB-xh5EI;v8%^{3 z>QB#pZW+oV`ND;Pp&>d literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_chgcar_05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_chgcar_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..2cc050cc4fb44891ff6abcb3aafe54c1dddc6868 GIT binary patch literal 265 zcmV+k0rvihP)*}tk{s8-(F1^ph=_=YXcC>x z3@`;r%)TIKhHRA#l`Pk&gRg<;q^Bj)wTv20kG%Ma2Yd}cWx3*4!{4)ry7>w1ljbj4 z!dw5aG0F=Tet6NSrITENI9#5UY>G|0KKIF}@NcE*FGtxKiHNej=;!YA(d?lCF!jyE z?sA{eMOieu=pS&gQrWJckYpKbR}z(ZCAyheKTn*>*HbC2;tFgvL_|{Vu<;2Tf@VBC P00000NkvXXu0mjf3*mWO literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_chgcar_07.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_chgcar_07.png new file mode 100644 index 0000000000000000000000000000000000000000..66fcc7454a2bfb44e83f497c3a56000dfadc1221 GIT binary patch literal 294 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMKC zzrVeC(9+dD4>Kpv+gzYKeW75q6&pwc9w5Ey*LU-XHlPIz3_3^dM{Y4(mtC^k$&^9v z&_s5yzJl;~PmZW8p57{(7VPm&jb(pAy5!!B;KK))o*p$un7sQ#OopE^!vn=XZx|bz zlLaFtc#D@m$rY8{DU@~gG8cp0oNg0C-Gs0?*OMiqE*{yEkrXAl7h!lpss84*M(6$~3*H3@db;|#taD0e0swNiUm^ei literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_chgcar_07_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_chgcar_07_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..7d51d656e9c95689e76f6bf5e7ed9c9d2fea4e8d GIT binary patch literal 318 zcmV-E0m1%>P) zp(Rs_h>0lIHNQqaqokg#*FGmSY7G_J!w3d7!>~bud5G1_oM8ZTsOh zMi~aPsr8P0T2Sl^gZpf58{(kD^6vl0_&?TjyQ(sEDr?T6KeS&-e>Jczap)kGD2^xl zvZlJ#SrdsR<6XL#Tt9RePqqS+s=3 QTmS$707*qoM6N<$f*|0BGXMYp literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_chgcar_11.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_chgcar_11.png new file mode 100644 index 0000000000000000000000000000000000000000..7355bcd6ceb330ee5090887ee689cb0c98ee645c GIT binary patch literal 502 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK+axI7srr_Id5;DE;?ku!+PPu z%m4p3?Rvp{>!nYQ!?v7rkyCuxPxPitk?3Ov>B0tnh!p%RNJG*eL&i-I)@p#RnJ-W@I zuK#2Uh|I|la$J=6cZ{S5XUDUX4#ge4Q*qIM8%@u!BSc)6h#y-#YYeyz*q60@8Vl{_n>$ZlpYE~4uw+M z6c5!}O0wNeb_I2Qmwe2}pX_WV695E35ClOG1o=NW#`n3dN~B|}%8Vetp4xuIO;fT+ zcO*IC4C<=NJg2eDK|=4M)$}>IAbTvUCPl*nZOAZ7Y4xPd)R4o5r8`Oz>(=}gIa4B1 zIRL|7x_PH0e&c&qChQLsi%dc*;H`Fw-F28el%FhF@(#+Nunh*`@=UQ@0dYdUs-zI1 znPR5IzYb1@C4y zEx4SYb76Lz^O(9wg?_ej^;5gy1Dzg{!ckhg4g&x%Cy7OP(VD6%KZn1jUIXY4j6VRp j;}3!$2!bF8^2hlAao{*-up?K;00000NkvXXu0mjfXFc7{ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_compositing_01.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_compositing_01.png new file mode 100644 index 0000000000000000000000000000000000000000..6806f65ec390b957f3470b8f977a11d4381633d1 GIT binary patch literal 687 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AM3=B+Vo-U3d6?5KRaO7lAU^w8g zwLX3AgE*x-suHuS3$pj}{pgHr9EGDHK-Ca9$mn9s93JY}wH%ZZJzf1=);T3K0RShy B7o7kA literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_compositing_01_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_compositing_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..cda3bbd5c583d97dff7b548115967d306d01e616 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5gTe~DWM4fT}Tyk literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_contour_multicolor_02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_contour_multicolor_02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..ceb0f61138249feff7b26f8df8e4bbc18007b85d GIT binary patch literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zBQ}z-Z@T?9w0ctFW1k)AU#9<_G1v&)78&qol`;+0PBVy AEdT%j literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_csg_02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_csg_02.png new file mode 100644 index 0000000000000000000000000000000000000000..790f7869ab4d2ae29d178502c6e5a71dd9e2b81f GIT binary patch literal 489 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK+XnF7srr_Id5+`<~=sxVGUUI z;_v!1dRLCjWMEZe_DZsP|F(o{P1pl0V$#3$; zUo+RfXzb~D#Q7nsDe!*S#%I!hW*DB&Wev|wvYQ_B^~J2Ir+-!XZhW*mPExt--0`1f zE9*G#t=%{Ij`5j!8_n(p_P9!6Yk1wZY{$wq;ctC&U#ytD z_x;-6JvtKR$!}r=w)2@hJyCd{`S0sHV{JmmT|0i!uq%$)yLaDKAw$C@K zsAFcr{%ec&RxXyaxmI&eV^4-lb4sb#{*ALcz~J9ZeRdY7`+qlxO#ua>r>mdKI;Vst E0Pr!SuK)l5 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_curve2Expr.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_curve2Expr.png new file mode 100644 index 0000000000000000000000000000000000000000..a09b928455c51473e53781520845a909974e2ff2 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sx;#WAE}&fD_`IT;K%SR60c zUyN#GVc~3?`M&O*5=f!hoa@ZTHgW%tV*>H03wCG)Y-ePesPi}+WUi;HpUXO@geCwJ CDje+q literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_curve2Expr_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_curve2Expr_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..227b6091c4c6ca77a3f6d22b3f872f2b73e2e6eb GIT binary patch literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp51?K3{nII4cBVeVQebU7Mn_<7#SX(2-*cQ%+uA+Wt~$(69BB_7i9nd literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_01_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..f1613c47dd0a57451ddaf82039ddf2d6ea00b985 GIT binary patch literal 102 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5hu^>bP0l+XkK&b%9> literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_02.png new file mode 100644 index 0000000000000000000000000000000000000000..56ff88f719d0a0e69815b6cf565adf72c1a6121b GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sT!#WAE}&f9Z_ybKH+%o~21 t^NM{Fm>1?K3{nII4cBVeVQebU7Mn_<7#SX(2-*cQ%+uA+Wt~$(69BB_7i9nd literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..f1613c47dd0a57451ddaf82039ddf2d6ea00b985 GIT binary patch literal 102 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5hu^>bP0l+XkK&b%9> literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_03.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_03.png new file mode 100644 index 0000000000000000000000000000000000000000..56ff88f719d0a0e69815b6cf565adf72c1a6121b GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sT!#WAE}&f9Z_ybKH+%o~21 t^NM{Fm>1?K3{nII4cBVeVQebU7Mn_<7#SX(2-*cQ%+uA+Wt~$(69BB_7i9nd literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_03_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_03_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..f1613c47dd0a57451ddaf82039ddf2d6ea00b985 GIT binary patch literal 102 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5hu^>bP0l+XkK&b%9> literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_04.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_04.png new file mode 100644 index 0000000000000000000000000000000000000000..56ff88f719d0a0e69815b6cf565adf72c1a6121b GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sT!#WAE}&f9Z_ybKH+%o~21 t^NM{Fm>1?K3{nII4cBVeVQebU7Mn_<7#SX(2-*cQ%+uA+Wt~$(69BB_7i9nd literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_04_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_04_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..f1613c47dd0a57451ddaf82039ddf2d6ea00b985 GIT binary patch literal 102 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5hu^>bP0l+XkK&b%9> literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_05.png new file mode 100644 index 0000000000000000000000000000000000000000..56ff88f719d0a0e69815b6cf565adf72c1a6121b GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sT!#WAE}&f9Z_ybKH+%o~21 t^NM{Fm>1?K3{nII4cBVeVQebU7Mn_<7#SX(2-*cQ%+uA+Wt~$(69BB_7i9nd literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..f1613c47dd0a57451ddaf82039ddf2d6ea00b985 GIT binary patch literal 102 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5hu^>bP0l+XkK&b%9> literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_06.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_06.png new file mode 100644 index 0000000000000000000000000000000000000000..56ff88f719d0a0e69815b6cf565adf72c1a6121b GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sT!#WAE}&f9Z_ybKH+%o~21 t^NM{Fm>1?K3{nII4cBVeVQebU7Mn_<7#SX(2-*cQ%+uA+Wt~$(69BB_7i9nd literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_06_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_06_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..f1613c47dd0a57451ddaf82039ddf2d6ea00b985 GIT binary patch literal 102 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5hu^>bP0l+XkK&b%9> literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_07.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_07.png new file mode 100644 index 0000000000000000000000000000000000000000..56ff88f719d0a0e69815b6cf565adf72c1a6121b GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sT!#WAE}&f9Z_ybKH+%o~21 t^NM{Fm>1?K3{nII4cBVeVQebU7Mn_<7#SX(2-*cQ%+uA+Wt~$(69BB_7i9nd literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_07_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_07_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..f1613c47dd0a57451ddaf82039ddf2d6ea00b985 GIT binary patch literal 102 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5hu^>bP0l+XkK&b%9> literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_08.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_08.png new file mode 100644 index 0000000000000000000000000000000000000000..56ff88f719d0a0e69815b6cf565adf72c1a6121b GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sT!#WAE}&f9Z_ybKH+%o~21 t^NM{Fm>1?K3{nII4cBVeVQebU7Mn_<7#SX(2-*cQ%+uA+Wt~$(69BB_7i9nd literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_08_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_08_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..f1613c47dd0a57451ddaf82039ddf2d6ea00b985 GIT binary patch literal 102 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5hu^>bP0l+XkK&b%9> literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_09.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_09.png new file mode 100644 index 0000000000000000000000000000000000000000..56ff88f719d0a0e69815b6cf565adf72c1a6121b GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sT!#WAE}&f9Z_ybKH+%o~21 t^NM{Fm>1?K3{nII4cBVeVQebU7Mn_<7#SX(2-*cQ%+uA+Wt~$(69BB_7i9nd literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_09_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_09_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..f1613c47dd0a57451ddaf82039ddf2d6ea00b985 GIT binary patch literal 102 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5hu^>bP0l+XkK&b%9> literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_10.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_10.png new file mode 100644 index 0000000000000000000000000000000000000000..56ff88f719d0a0e69815b6cf565adf72c1a6121b GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sT!#WAE}&f9Z_ybKH+%o~21 t^NM{Fm>1?K3{nII4cBVeVQebU7Mn_<7#SX(2-*cQ%+uA+Wt~$(69BB_7i9nd literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_10_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_10_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..f1613c47dd0a57451ddaf82039ddf2d6ea00b985 GIT binary patch literal 102 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5hu^>bP0l+XkK&b%9> literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_11.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_11.png new file mode 100644 index 0000000000000000000000000000000000000000..56ff88f719d0a0e69815b6cf565adf72c1a6121b GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sT!#WAE}&f9Z_ybKH+%o~21 t^NM{Fm>1?K3{nII4cBVeVQebU7Mn_<7#SX(2-*cQ%+uA+Wt~$(69BB_7i9nd literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_11_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddcMD_2_11_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..f1613c47dd0a57451ddaf82039ddf2d6ea00b985 GIT binary patch literal 102 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5hu^>bP0l+XkK&b%9> literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddf_spatial_1d.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ddf_spatial_1d.png new file mode 100644 index 0000000000000000000000000000000000000000..11f20c622c2eb3fa7944a5fa59821e6193b6f2fe GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r&k#WAE}&f9Z_j0_AM%nQEi suVwu9nwirBq=r~6|qDrn;Wh>LvK`IZ(egEn+@5&Pk5a-Vt#y?FAlGzisih#JDu6{1-oD!M@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_exodus_11_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_exodus_11_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_exodus_12.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_exodus_12.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0675158a6cb910218d1eee7c0cfd06844de73f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9YbIT;K%SRCK( ze{sV}!O@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_exodus_12_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_exodus_12_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_exodus_17.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_exodus_17.png new file mode 100644 index 0000000000000000000000000000000000000000..44b0b1534cec77e75286df84598663e9e36dffc6 GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&s8t#WAE}&f9Z_Tnq|4%m;q` zcRzmc>e?oechh_nS2BTA5(5(Yu4XL{JYQ<3UbP*lUhc$uW@5BK)EL}jvslW)_~gX= Pb07gvS3j3^P6&qh{ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_exodus_17_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_exodus_17_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..5edc453b42997ae30a07675a5f11d076ca588393 GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5KJE-YiTv>qW&khzLJf_vg`nVUUg=e$pw|gC{N7TORr6+5dApOOG3@Ep`XVB&f^E WMlkkPu)GcgaXnrAT-G@yGywo)11YNj literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_explode_repeat_labels_00.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_explode_repeat_labels_00.png new file mode 100644 index 0000000000000000000000000000000000000000..10fd7e5dd88ce8c3dc76ac5d54b79368302f03cb GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r~q#WAE}&f8m#ybKH+M>c%U zm(uybJSprTiw+}58Gi6!(=9%PiU-ElS_mEiRx)o{6yyIg!!5BOg`Tc{F6*2UngB6| B8omGk literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_explode_repeat_labels_00_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_explode_repeat_labels_00_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..97d2613498e5e50995ef498234691b8226d20c7a GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5?Mkcv5P&lz$uFmNy!#B<-U wU$uX`!ii}Kfkcv5P&u-*pU|?Y|=sfu5 ue|qe}MYRhAL8^dYPgw1Q6j>DphSzMd{tU|M7h2zfggssTT-G@yGywqEg&S1> literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_00.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_00.png new file mode 100644 index 0000000000000000000000000000000000000000..831d31c7664426dc2e9d0b465ea31564a1f76c30 GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sT!#WAE}&f9Z_ybKH+%o~21 s^U8?{%?ooB1}UN#EHJvyh+)W%%_Vag8N{Dkcv5P&l(CcFmSLagmd4p uU$vTX&-?`pp&(^IaKN;4i7+R_hg?R5a|{aWQXV`2iF&&FxvX=iDlm8sWL?%nP<@alPThoqpOZrRV7CvuY{_L+a%o+bDGxPZI0-6IAoq!wxx-7e$?efp?cSTO2oMuhG=`Im;OI1wdFJC+Go=@ ze9IEmzvi|1l=y3zYo#*LTUUu|&#V2xnKh{+>22auu}e#$bd@#%mB@wdFZ0_zO+U=O z?SAxR-;LMaMLzv274|dCHRGC4qOQQTrspM3pY=suG+Fad+y>++s)9e=;!EBu*`+H> Qc!JFJboFyt=akR{0AG1=F#rGn literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_01_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..2d8071e26194b7b9431d32f59a0b2df879c0e485 GIT binary patch literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5o z$EH@~@!i$IeEXtW_MHCjt@)1ce82Q&`FZd4S6u(3;rYq>^nWeSL(hJ#C^ehm=Go=? zyXfBx#>um9?{#cxp0eoM&kHrY412f#Q*xUW7}eKc!W#GMy&<2`HSLCzopr0J!C7(EtDd literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_02.png new file mode 100644 index 0000000000000000000000000000000000000000..054d706c54c86ffb3d56d56c9a57eac5e190c686 GIT binary patch literal 483 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK+Y;p7srr_Id5+`_T4t%VGSrU z_`ct0w?|Uoq~$M`xhC%2-l>x=SU+LXoSu%3F7Lj?kp1iICG789f1PZTxAlS2=BGFI z8TX$5xYa*Y`ielIZ}%TAp-qd6(g!TWE`x>rl?Tr)ef zgK1S|WB==OfsCcUXI;(K+^lY_A6Z)aGXLMc|EJ`xWo&qR?CzqnNwe>MnCw}%tHAS# z>EGmK{M*`0ZGT63zQ1=`su)JiSk>1HEi{o z9x2)KwGrEwx8FZ!AD(~s&&!*udynZ!y1#7^eBJ#;ef`e6zg{XHH+ni}YBK+u%Z0|0 z%S#^$U8}x%tDkjezfs;lhU#rgHyOS9Iz3Ep^Xr5Eb}@rOn5y9a1^wKpTwQZ(w*4S; NJzf1=);T3K0RZJh$Xfsa literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..74a2b5ee03c8e0bff11ed40bbbd1ed4ae41696dd GIT binary patch literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5)ky``Q5o9$?13J1l-P@_(tjNgDn%IiZ9I3u-`T* zu>Z>A`9I|Dudja)o1gh_+cPotC-!Gbvn{hTjqfhHYdiDF)M~4J-{uC?=cELQy4p5B zoM2mcfKDOAB*KRRzw+==+GSa`ub#Hs8vB zS@6G`O6l}JbAn5kO^D~8K5v^+df!8j;9BdqCjKdUrn~2_EotrB|Hf|f_LP_3-+xs2 zc}>If==UFi_x{J6XFZ*!Jn8(jCOhv*OtM+o-%mX@y$cEe1n~TSB;P&A{>&UpkeH{d KpUXO@geCw){EjjJ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_03.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_03.png new file mode 100644 index 0000000000000000000000000000000000000000..a496eaaf377238d4bf66c8dfe86c9b30bdf158ea GIT binary patch literal 341 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK#q*3i(^Q|oVPa|^O_w5SPtYp z`CngI9C5&6)Aet+M#x-nV~;TgcdEn-p^0pOMIG`&T%6(wn)pFCwy! zo5*--uiLu!;P#Ue#~$9YA_3Hp%-^GFRV~ zv|StWKg^X53%zkl*VD?)c>5al*3zF(|C~R2YF6vlKc6owU;+7wn&83vAB;IlT6U_I R`6ofgxc+#EUw+Ws5?m9bJs4%IpH7Y+srrrz|(KydAXp@ zKKA?SJ{iNS)8DFOwXJoXv!h$(YDHDul8dK}-YFeFmG|T0lbu=~n`#!@>z%#FCp_t? zS+o0t(<;X46QA#@-jTES$Li>{=2|;miJWdcW1hNn&S_(i3*q43UH;nB%8xpyYW@L< NdAjcbn6jtl+F4XdzBqzUe5a`5i9mMfrN7TC)@=S7)}JLM zyGrYRcKTbpInUSJT7Pl-wZ5#DtAA@I?%P_WoOgfwnQML7{I9nyvZ`OROEgDPJx)E@ zr(*5gmdKI;Vst088(j(EtDd literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_04_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_04_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..0e21907b0302488eedd2d9bb285a924769736fa4 GIT binary patch literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5pa&L$m*dYk4<>y7(1tFq@eCV&ZFaZfp_o*goa; zTg`oM|HM7uasRY9qta5t=2=Sb#mx1eY6CB{m&`bQY>mq!F2A_l`(0;lDBS&bPOq7m zlH23Q?D^XRDxTQ?{u^}D$@$rXH8)S*d%N_;?G)4KkhLz8zTdNYYt_f;{q;=czoTwP zF8bb%wTt!7ZeAUh^v`a~$0HMso~1wjr`oJB_fmMqLPn5};9$~{`qnkZk|A84Z$V<7 Lu6{1-oD!M zr~makV+AG&bV$i}FFY3+af3PRDHqE!7nfrTkDPz<_QG%fxO36jQ{wF|{{0ZT$g1_~ zS^Z`A7XN!K9;NgD`PzplG@Q|q=vYphOht20vm{cK6l z>{`v`&HnX2zxtZ}sEvL5`%=V9ucv7rvV^mQ!YsqiUb6}Jx_P+6J6U4SoSU~dM4Ns7 z`SI-3tv8;`YWbSZzvE2YRiE!`Cf~oa{`#!2k5@VEKBtw{7`GpNBz4$o@2lc9Z$8Fa z-{p-vDG>Ja&5?pR*Um5fclvN;E$8Of=U(oSTPk<)_o>35{>34;w`Nay^Qv3o@T%|o z&OE+#UF+>Nalx-42KRWkugjk2`P{wzZ`Jj1y`|nyt!88`e0@)O-=AuS2!4*&jERh( d0H-48{>322y^Y7V{+chyR8Lnwmvv4FO#pH()HnbD literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..62ecb2e276f5495b6889f7be7768dcf78968a835 GIT binary patch literal 410 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5*k%xu%_FK|ifENhZ(%9{G~`j(vq{%g;Nc6^w&xGzC*>(?M1&3*%=wK^BKzyCBp zeno4IsQRSd$(5H*P5R`;>i=3^h7}aB$e^MAop6&-QT$f6jCCM!Pgg&ebxsLQ09!e^ AW&i*H literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_06.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_06.png new file mode 100644 index 0000000000000000000000000000000000000000..00c1daff5950eac25a8b98362596b7281e95c6ea GIT binary patch literal 398 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMKu)Nqi(^Q|oVRxjCmnL&VL5Q| z@Bj0=4oIwLoXx%7>n^8+h_B}@T_!D0^{KAU*Ies5=lxZ|{`P6h`Bg^(OKT=AF31Y2 zju4Nl*0D8T8N2-V;b8m2x9)%4Su|_y=6l<(xX+ck8`W1>gTe~DWM4fr#qKg literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_06_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_06_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..a52767b24fba0ed93c3a73175df9c2356228e8f3 GIT binary patch literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5^vkKM z=Kena$M$5}wpm|ooLXM5Z@swHnoHzFcpP8#{01d^ac|Ee?gQVWzkbwkQaSMS$2VUt z#$$fp%*~Ztx-P8qk9C}uR(?%))rXGese8@F&h1CdoqhI+x>J>nHvc{Hhh=^pn|*n9efaOcYgzth zT31^AxcY4VXT$GvMXz4A$*x@!`PSclWBP@E&s@t zQ`I&-`txkB`ffX=Z3=6|vn)>JPF-XBx9@qJrFf?Koa7v>=StOwqnE7eQ^?IdxADZv zo#m;aF6Y;zRbQ!1u{DVlJ$#mDVs3t}_9W4Xp*z=xeYUdSUgXp5JU8y;o_s0i(BmiK z-Y@Q7XcV>R&GFlPm;@U&I8QW`rff6-U!3VMb45zXqmDz>FVdQ&MBb@02WP=%K!iX literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_07_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_07_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..837d6e5bb300aec1078e33ce6dfdaa8d94e4019c GIT binary patch literal 642 zcmV-|0)737P)Nkl$`CV&lGZhO54lQU@D?>+^k`zj2BNQpHE~1N~f-bELx+x+k3o0VX zAX{}|Ceg@Lq*^4JLu)8qXimf250!21*V$Ru<;DC1p4a6E9^O329Vo$`7Z#NFY4AUj z_vycbu{{ST7iD?z1gb^@0Xu+eHLK26;g>x&n6*Wy{T^aQqgKTf0MmhOG(c?Vxxx(V zd1HFZsEL+*cnq_{#~17-{01nfGbqh$Cqr5NdV8S;S>DSnzJ5NSlIaK zsq-xpGj6lGtjK-VeY3wQ&+qPzz7FoZddk&Y7`*&IbKH^J{pn2tNZvQ;w?E<49FWS~ z0FTiXJLg=vI5Rc-a@IR$8`KlLC&v6e_UuBh)ndNmZF#&!bWYaQbbZSl;Q*yN8V4@}OpUm(C@aMXz_L?* zs3b`hlc5(?%6U^#H? z{r&%^HZw9crW}_Jm@1+9=DP8*JWnmp(@TFHuaVQwd;9Z|#C#Rc*%Pl!Jt}lj?%dA6 zuN!WO`M#~p*=il*y-wFd+JwffgihObfaj+nYCe7i`t@gb@2tF0$|)4BHWw(aY4tNxllYJNLU zGA!QX_oVta8y>e8w1j3}-Td>S-fi2R`5$Z--EUqIvGdTb>d$YtiQfMEX}U@=$M2o@ zc5eB#^9Hq%UyYTAw9$iLB4^Svk75tlB-=7z38fF=012Wgs)z4*}Q$iB}9sjLy literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_08_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_08_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..1cae7ed435c4414c4094b7e1833e18448b739dc0 GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5F=6xuf=N{nyuj_J6p0NAvCRyAex&ZQ8cwVy*Xt11Bnh7G_^Vj9 z_VAx7oTt~aJ*o0npRmbU@(JES;Q-h0WhUUi5VJb6Mw< G&;$VI7j|_3 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_09.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_09.png new file mode 100644 index 0000000000000000000000000000000000000000..b4550c7dc7a0c6c803e3de36db0e3c09c40eaad3 GIT binary patch literal 503 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK+Zl-7srr_Id5;AEn02B!xo@f zeEWA5+hII*HE{{7y+>aL|N zri;5eYK+(Ue|piJ6&|_w8&EPXcG9nFm*=Gl);+&36V~S%5g9pAG_u&)T6RY9vQ2g6 zQ~ufJp3mYgth{(?@u^ix#!BuP$x72}*PWibx$4#Wsu=fF*V$H~mx}Id=TEuztaYp2 z;l+D?{W!69m3WNnw%HRiVw+CBzT)Thx`1WViRa$&ZMGLJCtv@%W9f03d0mV2nm=Ay zv+wcon7Z4yFHH%HU2Iu7({-y_?)M#45yu~$TD~pet5tho&g}JvQqQmYZ2l;E)zqu^ zTCX0S_5RoFJw~6Hw|$oj>vjIWZCBRa-~Lm#)F$@w?c2J*ennq4zo2|z*u_J$p5J)u zbY?}*s#U8_%$nc3)8yCftp8S5Zt2`zdUZeV_2*jU@1-Acte$p#Uwp?*clWT@A7}pl h&I<~3s)9fK`xpcsv=}j+;xGjn?CI*~vd$@?2>{e`)m#7o literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_09_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_09_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..8a838f7951de78f883eb073c28da38f7ab3b834a GIT binary patch literal 352 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5@4MK26x)&@DXuq0_dGmPK>6X=rwq zrT@8GR({RIc%9vW_do37A2^;amHYKj=wGy4Yska*e}2W~Z@8)=qAv8=j=}cHUiOJ> zhd6IfpP~`4&Dwjmxv|^kwdzOD9n9IDwX^N>rH zYIT@iRqV%=O>3B$Bs!P2uReCN_|f;HHd!;upZ-1gDL3tm{s}7u1Ct5H;kWB`I2cd& z^?z5n9KPzN)z06Vx}2*uKWDDh|IHTis-ZmR%xYELPo+1@6yG)|nH+BwTWeZ#w%BD0 no9&aIrS6^KPgGqn0K*4%QKN*K=eGiNKtbo}>gTe~DWM4fC|;Ot literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_10.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_10.png new file mode 100644 index 0000000000000000000000000000000000000000..4f16da790a55e9ca09cb38f290c6c6a5171ce117 GIT binary patch literal 342 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK#r`Zi(^Q|oVPa|`I;33STD?6 z_I=iDlm8sWL?%nP<@alPThoqpOZrRV7CvuY{_L+a%o+bDGxPZI0-6IAoq!wxx-7e$?efp?cSTO2oMuhG=`Im;OI1wdFJC+Go=@ ze9IEmzvi|1l=y3zYo#*LTUUu|&#V2xnKh{+>22auu}e#$bd@#%mB@wdFZ0_zO+U=O z?SAxR-;LMaMLzv274|dCHRGC4qOQQTrspM3pY=suG+Fad+y>++s)9e=;!EBu*`+H> Qc!JFJboFyt=akR{0AG1=F#rGn literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_10_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_10_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..2d8071e26194b7b9431d32f59a0b2df879c0e485 GIT binary patch literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5o z$EH@~@!i$IeEXtW_MHCjt@)1ce82Q&`FZd4S6u(3;rYq>^nWeSL(hJ#C^ehm=Go=? zyXfBx#>um9?{#cxp0eoM&kHrY412f#Q*xUW7}eKc!W#GMy&<2`HSLCzopr0J!C7(EtDd literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_11.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_11.png new file mode 100644 index 0000000000000000000000000000000000000000..054d706c54c86ffb3d56d56c9a57eac5e190c686 GIT binary patch literal 483 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK+Y;p7srr_Id5+`_T4t%VGSrU z_`ct0w?|Uoq~$M`xhC%2-l>x=SU+LXoSu%3F7Lj?kp1iICG789f1PZTxAlS2=BGFI z8TX$5xYa*Y`ielIZ}%TAp-qd6(g!TWE`x>rl?Tr)ef zgK1S|WB==OfsCcUXI;(K+^lY_A6Z)aGXLMc|EJ`xWo&qR?CzqnNwe>MnCw}%tHAS# z>EGmK{M*`0ZGT63zQ1=`su)JiSk>1HEi{o z9x2)KwGrEwx8FZ!AD(~s&&!*udynZ!y1#7^eBJ#;ef`e6zg{XHH+ni}YBK+u%Z0|0 z%S#^$U8}x%tDkjezfs;lhU#rgHyOS9Iz3Ep^Xr5Eb}@rOn5y9a1^wKpTwQZ(w*4S; NJzf1=);T3K0RZJh$Xfsa literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_11_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_11_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..74a2b5ee03c8e0bff11ed40bbbd1ed4ae41696dd GIT binary patch literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5)ky``Q5o9$?13J1l-P@_(tjNgDn%IiZ9I3u-`T* zu>Z>A`9I|Dudja)o1gh_+cPotC-!Gbvn{hTjqfhHYdiDF)M~4J-{uC?=cELQy4p5B zoM2mcfKDOAB*KRRzw+==+GSa`ub#Hs8vB zS@6G`O6l}JbAn5kO^D~8K5v^+df!8j;9BdqCjKdUrn~2_EotrB|Hf|f_LP_3-+xs2 zc}>If==UFi_x{J6XFZ*!Jn8(jCOhv*OtM+o-%mX@y$cEe1n~TSB;P&A{>&UpkeH{d KpUXO@geCw){EjjJ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_12.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_12.png new file mode 100644 index 0000000000000000000000000000000000000000..a496eaaf377238d4bf66c8dfe86c9b30bdf158ea GIT binary patch literal 341 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK#q*3i(^Q|oVPa|^O_w5SPtYp z`CngI9C5&6)Aet+M#x-nV~;TgcdEn-p^0pOMIG`&T%6(wn)pFCwy! zo5*--uiLu!;P#Ue#~$9YA_3Hp%-^GFRV~ zv|StWKg^X53%zkl*VD?)c>5al*3zF(|C~R2YF6vlKc6owU;+7wn&83vAB;IlT6U_I R`6ofgxc+#EUw+Ws5?m9bJs4%IpH7Y+srrrz|(KydAXp@ zKKA?SJ{iNS)8DFOwXJoXv!h$(YDHDul8dK}-YFeFmG|T0lbu=~n`#!@>z%#FCp_t? zS+o0t(<;X46QA#@-jTES$Li>{=2|;miJWdcW1hNn&S_(i3*q43UH;nB%8xpyYW@L< NdAjcbn6jtl+F4XdzBqzUe5a`5i9mMfrN7TC)@=S7)}JLM zyGrYRcKTbpInUSJT7Pl-wZ5#DtAA@I?%P_WoOgfwnQML7{I9nyvZ`OROEgDPJx)E@ zr(*5gmdKI;Vst088(j(EtDd literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_13_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_13_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..0e21907b0302488eedd2d9bb285a924769736fa4 GIT binary patch literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5pa&L$m*dYk4<>y7(1tFq@eCV&ZFaZfp_o*goa; zTg`oM|HM7uasRY9qta5t=2=Sb#mx1eY6CB{m&`bQY>mq!F2A_l`(0;lDBS&bPOq7m zlH23Q?D^XRDxTQ?{u^}D$@$rXH8)S*d%N_;?G)4KkhLz8zTdNYYt_f;{q;=czoTwP zF8bb%wTt!7ZeAUh^v`a~$0HMso~1wjr`oJB_fmMqLPn5};9$~{`qnkZk|A84Z$V<7 Lu6{1-oD!M zr~makV+AG&bV$i}FFY3+af3PRDHqE!7nfrTkDPz<_QG%fxO36jQ{wF|{{0ZT$g1_~ zS^Z`A7XN!K9;NgD`PzplG@Q|q=vYphOht20vm{cK6l z>{`v`&HnX2zxtZ}sEvL5`%=V9ucv7rvV^mQ!YsqiUb6}Jx_P+6J6U4SoSU~dM4Ns7 z`SI-3tv8;`YWbSZzvE2YRiE!`Cf~oa{`#!2k5@VEKBtw{7`GpNBz4$o@2lc9Z$8Fa z-{p-vDG>Ja&5?pR*Um5fclvN;E$8Of=U(oSTPk<)_o>35{>34;w`Nay^Qv3o@T%|o z&OE+#UF+>Nalx-42KRWkugjk2`P{wzZ`Jj1y`|nyt!88`e0@)O-=AuS2!4*&jERh( d0H-48{>322y^Y7V{+chyR8Lnwmvv4FO#pH()HnbD literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_14_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_14_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..62ecb2e276f5495b6889f7be7768dcf78968a835 GIT binary patch literal 410 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5*k%xu%_FK|ifENhZ(%9{G~`j(vq{%g;Nc6^w&xGzC*>(?M1&3*%=wK^BKzyCBp zeno4IsQRSd$(5H*P5R`;>i=3^h7}aB$e^MAop6&-QT$f6jCCM!Pgg&ebxsLQ09!e^ AW&i*H literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_15.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_15.png new file mode 100644 index 0000000000000000000000000000000000000000..00c1daff5950eac25a8b98362596b7281e95c6ea GIT binary patch literal 398 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMKu)Nqi(^Q|oVRxjCmnL&VL5Q| z@Bj0=4oIwLoXx%7>n^8+h_B}@T_!D0^{KAU*Ies5=lxZ|{`P6h`Bg^(OKT=AF31Y2 zju4Nl*0D8T8N2-V;b8m2x9)%4Su|_y=6l<(xX+ck8`W1>gTe~DWM4fr#qKg literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_15_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_15_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..a52767b24fba0ed93c3a73175df9c2356228e8f3 GIT binary patch literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5^vkKM z=Kena$M$5}wpm|ooLXM5Z@swHnoHzFcpP8#{01d^ac|Ee?gQVWzkbwkQaSMS$2VUt z#$$fp%*~Ztx-P8qk9C}uR(?%))rXGese8@F&h1CdoqhI+x>J>nHvc{Hhh=^pn|*n9efaOcYgzth zT31^AxcY4VXT$GvMXz4A$*x@!`PSclWBP@E&s@t zQ`I&-`txkB`ffX=Z3=6|vn)>JPF-XBx9@qJrFf?Koa7v>=StOwqnE7eQ^?IdxADZv zo#m;aF6Y;zRbQ!1u{DVlJ$#mDVs3t}_9W4Xp*z=xeYUdSUgXp5JU8y;o_s0i(BmiK z-Y@Q7XcV>R&GFlPm;@U&I8QW`rff6-U!3VMb45zXqmDz>FVdQ&MBb@02WP=%K!iX literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_16_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_16_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..837d6e5bb300aec1078e33ce6dfdaa8d94e4019c GIT binary patch literal 642 zcmV-|0)737P)Nkl$`CV&lGZhO54lQU@D?>+^k`zj2BNQpHE~1N~f-bELx+x+k3o0VX zAX{}|Ceg@Lq*^4JLu)8qXimf250!21*V$Ru<;DC1p4a6E9^O329Vo$`7Z#NFY4AUj z_vycbu{{ST7iD?z1gb^@0Xu+eHLK26;g>x&n6*Wy{T^aQqgKTf0MmhOG(c?Vxxx(V zd1HFZsEL+*cnq_{#~17-{01nfGbqh$Cqr5NdV8S;S>DSnzJ5NSlIaK zsq-xpGj6lGtjK-VeY3wQ&+qPzz7FoZddk&Y7`*&IbKH^J{pn2tNZvQ;w?E<49FWS~ z0FTiXJLg=vI5Rc-a@IR$8`KlLC&v6e_UuBh)ndNmZF#&!bWYaQbbZSl;Q*yN8V4@}OpUm(C@aMXz_L?* zs3b`hlc5(?%6U^#H? z{r&%^HZw9crW}_Jm@1+9=DP8*JWnmp(@TFHuaVQwd;9Z|#C#Rc*%Pl!Jt}lj?%dA6 zuN!WO`M#~p*=il*y-wFd+JwffgihObfaj+nYCe7i`t@gb@2tF0$|)4BHWw(aY4tNxllYJNLU zGA!QX_oVta8y>e8w1j3}-Td>S-fi2R`5$Z--EUqIvGdTb>d$YtiQfMEX}U@=$M2o@ zc5eB#^9Hq%UyYTAw9$iLB4^Svk75tlB-=7z38fF=012Wgs)z4*}Q$iB}9sjLy literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_17_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_17_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..1cae7ed435c4414c4094b7e1833e18448b739dc0 GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5F=6xuf=N{nyuj_J6p0NAvCRyAex&ZQ8cwVy*Xt11Bnh7G_^Vj9 z_VAx7oTt~aJ*o0npRmbU@(JES;Q-h0WhUUi5VJb6Mw< G&;$VI7j|_3 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_18.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_18.png new file mode 100644 index 0000000000000000000000000000000000000000..b4550c7dc7a0c6c803e3de36db0e3c09c40eaad3 GIT binary patch literal 503 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK+Zl-7srr_Id5;AEn02B!xo@f zeEWA5+hII*HE{{7y+>aL|N zri;5eYK+(Ue|piJ6&|_w8&EPXcG9nFm*=Gl);+&36V~S%5g9pAG_u&)T6RY9vQ2g6 zQ~ufJp3mYgth{(?@u^ix#!BuP$x72}*PWibx$4#Wsu=fF*V$H~mx}Id=TEuztaYp2 z;l+D?{W!69m3WNnw%HRiVw+CBzT)Thx`1WViRa$&ZMGLJCtv@%W9f03d0mV2nm=Ay zv+wcon7Z4yFHH%HU2Iu7({-y_?)M#45yu~$TD~pet5tho&g}JvQqQmYZ2l;E)zqu^ zTCX0S_5RoFJw~6Hw|$oj>vjIWZCBRa-~Lm#)F$@w?c2J*ennq4zo2|z*u_J$p5J)u zbY?}*s#U8_%$nc3)8yCftp8S5Zt2`zdUZeV_2*jU@1-Acte$p#Uwp?*clWT@A7}pl h&I<~3s)9fK`xpcsv=}j+;xGjn?CI*~vd$@?2>{e`)m#7o literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_18_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_export_db_2_18_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..8a838f7951de78f883eb073c28da38f7ab3b834a GIT binary patch literal 352 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5@4MK26x)&@DXuq0_dGmPK>6X=rwq zrT@8GR({RIc%9vW_do37A2^;amHYKj=wGy4Yska*e}2W~Z@8)=qAv8=j=}cHUiOJ> zhd6IfpP~`4&Dwjmxv|^kwdzOD9n9IDwX^N>rH zYIT@iRqV%=O>3B$Bs!P2uReCN_|f;HHd!;upZ-1gDL3tm{s}7u1Ct5H;kWB`I2cd& z^?z5n9KPzN)z06Vx}2*uKWDDh|IHTis-ZmR%xYELPo+1@6yG)|nH+BwTWeZ#w%BD0 no9&aIrS6^KPgGqn0K*4%QKN*K=eGiNKtbo}>gTe~DWM4fC|;Ot literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_hf_2_1.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_hf_2_1.png new file mode 100644 index 0000000000000000000000000000000000000000..d5c6240714530e08c5556d93a5f72e6ff024cf27 GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sBu#WAE}&f9YvIT;LiSPawu zFMKS@BX92bihmtQW5Qw2N55YsY0P2;X`(Lp;mCY8fstuWpm-t3U{6;+mvv4FO#ry- B97q5F literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_hf_2_1_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_hf_2_1_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..e48ab5fc3fc8a8122f030861f0ee6edad3fbb53a GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp58rObY!(pL_!%X1kD>&b{8%v-nQ>qYL<&$Z`oS@QRNY{a=w>>xux;6S37=0%pP TYd(uz1aUoG{an^LB{Ts5(`YDw literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_hf_4_1.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_hf_4_1.png new file mode 100644 index 0000000000000000000000000000000000000000..d5c6240714530e08c5556d93a5f72e6ff024cf27 GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sBu#WAE}&f9YvIT;LiSPawu zFMKS@BX92bihmtQW5Qw2N55YsY0P2;X`(Lp;mCY8fstuWpm-t3U{6;+mvv4FO#ry- B97q5F literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_hf_4_1_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_hf_4_1_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..e48ab5fc3fc8a8122f030861f0ee6edad3fbb53a GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp58rObY!(pL_!%X1kD>&b{8%v-nQ>qYL<&$Z`oS@QRNY{a=w>>xux;6S37=0%pP TYd(uz1aUoG{an^LB{Ts5(`YDw literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_01.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_01.png new file mode 100644 index 0000000000000000000000000000000000000000..937fc2730b7a7b287e0e2d7a17e075c9ad6386c2 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r&k#WAE}&f9a0ybKH+%nQEj vuQhz9rlPH$>skhB;ku?zAg-sYpUXO@geCy# C(H}$r literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_02.png new file mode 100644 index 0000000000000000000000000000000000000000..937fc2730b7a7b287e0e2d7a17e075c9ad6386c2 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r&k#WAE}&f9a0ybKH+%nQEj vuQhz9rlPH$>skhB;ku?zAg-sYpUXO@geCy# C(H}$r literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_03.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_03.png new file mode 100644 index 0000000000000000000000000000000000000000..937fc2730b7a7b287e0e2d7a17e075c9ad6386c2 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r&k#WAE}&f9a0ybKH+%nQEj vuQhz9rlPH$>skhB;ku?zAg-sYpUXO@geCy# C(H}$r literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_04.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_04.png new file mode 100644 index 0000000000000000000000000000000000000000..937fc2730b7a7b287e0e2d7a17e075c9ad6386c2 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r&k#WAE}&f9a0ybKH+%nQEj vuQhz9rlPH$>skhB;ku?zAg-sYpUXO@geCy# C(H}$r literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_05.png new file mode 100644 index 0000000000000000000000000000000000000000..5353dc721a3a50375f6786c5ba9cf553e416defb GIT binary patch literal 189 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r*l#WAE}&f8lDIT;Lim^WVd zTkaRG@plGGX4B#Pa7K_y>|k|?)q}&H>^@0ABcUMf>ydCp7>9V;Q9NN8Gm}k?#Xpc9 MPgg&ebxsLQ05Y*3egFUf literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..b9a0571717b8794ba2d8e899f1218248eb37e467 GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5|k|?)q}&H>^@0ABcUMf>ydCp7>9V;Q9NN8Gm}k?#Xpc9 MPgg&ebxsLQ05Y*3egFUf literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_06_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_06_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..b9a0571717b8794ba2d8e899f1218248eb37e467 GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5&&kYr0$;#wD6=Si4TaA|fq z9?o;%pYbL}mq*$gZhIHS1~D-(+zYsMu!!$mExYW2)U4R07q@RR{AFJbGKWDSgGufn ULwzLQ1TPTR)78&qol`;+0D4{}+5i9m literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_08.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_08.png new file mode 100644 index 0000000000000000000000000000000000000000..89245eb2b47e69c247d346c8109d92e72bf6e992 GIT binary patch literal 185 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&rvh#WAE}&f8lXc^Mcum<;~a zN5vNy&-%vXB;g5Ch8;A7XIV4YONzl{4>&&kYr0$;#wD6=Si4TaA|fq z9?o;%pYbL}mq*$gZhIHS1~D-(+zYsMu!!$mExYW2)U4R07q@RR{AFJbGKWDSgGufn ULwzLQ1TPTR)78&qol`;+0D4{}+5i9m literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_09.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_09.png new file mode 100644 index 0000000000000000000000000000000000000000..8d76837c23740cb74c915726808cdb5203c6b794 GIT binary patch literal 196 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&so*#WAE}&f8lDIT;Lim>j;x z-&!|e57*nfERF{H!XSm%!2{j5Z@C}jTY=32DmgIk;>ot&b0NZoxhJw#eB6p%7aq|E ZvFzv8^M3w(s$&XBm8Ywp%Q~loCIAy^DP8~o literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_09_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_09_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..d958de4be49666962d0c8aa38b8496a8899757c6 GIT binary patch literal 146 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5^jR zXSIOqmp%(Gk8FyOqQs4@@8#dM0#*JwV)Nwvwa((xbx-U)O~c;*XOMe+eQD>Bm0N|( q-$qM!p5Edres1*%MUdeP`yQ}KzG9OtsNG=*;(EIJxvXyGSlSi^l}SAx>DpM{$`Cr&NhC;KDqw0Q-@FpaC<-O~#K*5zGOwA8pR zrfmfxR+)z-WPUxy^`cj_Lhjo!u8eNcxmr2hsjCE#Trkh+@K^2fmyX|$xJKKv&biU| z>CVzS-+w-Nac}OnsErZn(JPfDR&NNsFSct*#+q%@+g;XdbJL$VHPu`b$q*dO&vLa_ V#Z43JwL?J)JYD@<);T3K0RTwfaB2Vm literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_10_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_10_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..4f978f888d3725117cc1a2a47767e3f913b0d27c GIT binary patch literal 234 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5_M4zl-#r%@A=g~7#T|tKJ z;M}(DUl?Eh{n;H?G_RiZ-=34Z)Z?bjkriDVi})ud#K?U}u8d3DSrNC1Cy3|$%gsTr zj^(>vpY54GGkLYBUD?kNhXF@NV__@R9CokyGSlSi^l}SAx>DpM{$`Cr&NhC;KDqw0Q-@FpaC<-O~#K*5zGOwA8pR zrfmfxR+)z-WPUxy^`cj_Lhjo!u8eNcxmr2hsjCE#Trkh+@K^2fmyX|$xJKKv&biU| z>CVzS-+w-Nac}OnsErZn(JPfDR&NNsFSct*#+q%@+g;XdbJL$VHPu`b$q*dO&vLa_ V#Z43JwL?J)JYD@<);T3K0RTwfaB2Vm literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_11_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_11_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..4f978f888d3725117cc1a2a47767e3f913b0d27c GIT binary patch literal 234 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5_M4zl-#r%@A=g~7#T|tKJ z;M}(DUl?Eh{n;H?G_RiZ-=34Z)Z?bjkriDVi})ud#K?U}u8d3DSrNC1Cy3|$%gsTr zj^(>vpY54GGkLYBUD?kNhXF@NV__@R9CokyGSlSi^l}SAx>DpM{$`Cr&NhC;KDqw0Q-@FpaC<-O~#K*5zGOwA8pR zrfmfxR+)z-WPUxy^`cj_Lhjo!u8eNcxmr2hsjCE#Trkh+@K^2fmyX|$xJKKv&biU| z>CVzS-+w-Nac}OnsErZn(JPfDR&NNsFSct*#+q%@+g;XdbJL$VHPu`b$q*dO&vLa_ V#Z43JwL?J)JYD@<);T3K0RTwfaB2Vm literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_12_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_12_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..4f978f888d3725117cc1a2a47767e3f913b0d27c GIT binary patch literal 234 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5_M4zl-#r%@A=g~7#T|tKJ z;M}(DUl?Eh{n;H?G_RiZ-=34Z)Z?bjkriDVi})ud#K?U}u8d3DSrNC1Cy3|$%gsTr zj^(>vpY54GGkLYBUD?kNhXF@NV__@R9Cok)9>m{aQSAtM#AHwQMhL*R3?`+HlNyhW(m0 zDVYoMb}ME?IVW${yp%Kl$Y~WlbF)5U*RcH}=N+OhzWcvrn&9c|e<9B4H{_b8I4)my zyNlm}Pd@ZaLw28m^3)TF5~o|PF3PX)&gSf%Tt2l+;+LdQAeR`p*dp7%t>{_Fmx@Eny=if`s z@<0D!)0%s78}8N{*Qd$vE{nF`f8zqjY~4lHPOpOWqJ4tOEP4g5MPCz}S`=sdeaf;| z7d?H2uPt8uEz&Xj`m~64;nuBPIZ997{QQ!h-@JaW?L7ACstWg6m-7zXN}sc2(IM9r zKc@y|8MI!!cCXk+?%=Y^bEWq4*`}S-SyR{PU+EKl|5~lNx<_(g8H zZ}`a7_>>s5t^77sJlBwSt>`}Yzp94S?4Zb8W_*27`j=cTdz)X!?8T>j+|@g)?1{ej z9oNa%ckByolT4g@@4QXnW}h7w^ZsyrI%V+k!Tl+_X6kN_`6Zs56=A9SS|;d!+3aiS zQ)NRQUdz>g+LBgln0d|q&kTcADl22(TeHv4jyuwq5%qq;wdf_$#t*Jh@oF!b7z{L>V;K|<&0xflz8ZA?GbBBETz+%O`9zQsPgg&ebxsLQ0C%8E AumAu6 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_13_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_13_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..ad169efe81c37205313ab247f7a6c264f0a0425d GIT binary patch literal 645 zcmV;00($+4P)(I_KQe`@OwA_eTK`1VIo4K@bGFRs;ZHp%fpd z1Sywg*sQ)3`MVfAK02=p(5O7L0HBZ>lZgHe&SC3#4*>4I$hhIv8G4IVL>QRy<*;r+ zb@3DcNUdcDV}({R-gZ*VMu$}|0GjC9X391eHjL@C6HTo=liierSR7S}h+<549X0=0 zafh^_uMSZnY>>pwsEA3QL9~J&1eV2UV}0I+*?;EV$FoXKvcrcYDW=!7 zLXov2cDnToN2myC%k?tJ+8<^~AA!?#v37pLb)<=`%C8Z;3tt|5b!~lCIBo|eG7$XXcj|S={I0@} z?n0K0A@r`GOKz{Z2U^fz2zzz#LJ8HzE~0tgW6J2W1tUm5q$lBr#8j@wp`829^6$6n zVeLt?#~~TMW%;zz*$%ry&3JYgHR4fXlRbJ>2x%sFJnl4?21vIzd f1VIo4`H%bsmfBd4Ullg800000NkvXXu0mjfOt~!J literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_14.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_geometry_14.png new file mode 100644 index 0000000000000000000000000000000000000000..02a7705dd77a43fd28b3df248f13f3df3a3fc032 GIT binary patch literal 978 zcmV;@11@BhyKzOb=5DbRqTS?i*m=}^V5fZ!ob2><{900000000000000000000 z00000005w!NO5!({@~wUJGu`i;^_w`v0GSo=BTCv_WYqE!aA+p!kV5t-g7rR!7#Q< zSh0NBFpb|akEq}+whKaTCw4WpokMVbcBYNxPrDMUne(2BWSoM3GGNIZ^OF(30| zk;so~aVvH0w9-Snd6U&ot}Rx-+5khiIkhu$M5%&V%PDm4K-N+#Th1R8AUy4 zqtHCGmux40nn=U9z9^bItpE0HTKjISdn#DAx#1K0yC|Bd{hV;K?JCATSA5c}D)v&* zXi6q32id7wMbp(-hQL9?+C@Bk%N83psy!-Jv5#@P;8V!7zIxsi+H z_1UGmy2al466gU{9VQSvRAixPAuBMYvdb~ zmZDAWqIp%~c0*>n1umEMer}kpmMuA{tQh?%pI?!t$UcoTEkUdo&2D8?>qn0IweczQ zXke7aFnvMG%8NAJ{joY6S@Vb44jVq_CkK~^dbEP}PyQX1*7UINEMJ$BZ_WY zK3KPw)ibN3J}#=mF^%*t>G1#eXpDv7ox!T}KvrYzzs5mzJyS$udY7P7UzW$CjZNb@ zV?YPgxoVeZ%(S1(TRJ<{;u@q?wB-V#qsiD1;syrDARssODH`v+~ z000000000000000000000000000000007wVAMi4v(7bt>(f|Me07*qoM6N<$fohcU@OUk*-+84>@7o}=Dq;H(JPb^gf~<)G|x#mK-wyy|5o^| zy19V={M?6M#RV}uiTQK3X%ErI!wDe1o=C~F)@CvMdO0o|Tz~uF0XZEXCZizYU}6lg z?*IVjvP9&`uKL-YAEUBDXm#=**A%(s-n*)qbe<2xblH<*0CoTX`|HYNYSI>;Qx%QD zpNlEg@U3`;ww8{16049fP^A0J>sn_iBEw3)#^LVNhM1tK*v-WA)X@qjP5f0Aj!2;a3$^gEb|+oLqzl zZZ%%u;tgvh0Kir62)S$3ZBzstZv77*Lb(%5c3)$=f{9sqp}L}X3g4B2sP*wPO&hyq z%ER<;#tJ-9(&f$Dz~U%LisvHgNL9$031}|w$k)*SA_e>lt zc~sL0a{zJMAQ~> zrEES-?2>{#3IHfikrcG*N-n4)`_>vUhFGm^MShEQx+23?e-t?0ta~2g9}*Pm@-Bk6 zQ*w4XaL4Z78uZh}=XAL?T5%E_k^eTQQYQANLa+khW{WG5_hLMo?ZP2SQ{+?RPd zOj#D3nvktdl90;X?7S3=BGKyPq>Czu$5w8N~B+^>bP0l+XkKn-3ZA literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_integration_10.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_integration_10.png new file mode 100644 index 0000000000000000000000000000000000000000..4a05a1d5e1c77208b24f161c3604d408ff85fad2 GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMKx(a2Ns>-f)+@_6(b_w)T~qAik%opUXO@geCw@1TrE3 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_integration_10_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_integration_10_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..8474d4573047bc987607b7e38ec059c01b73579a GIT binary patch literal 144 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5Mx!xI9IbfK9rGx;RE|!nGTa!1ttcEnCJ~F@4IbtSaP3v;zur* rYt{mi=NwY3;^d}8F!3@lG@Q4Ywt{uZngc)1f~@j%^>bP0l+XkK#wRi+ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_streamlines_03.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_streamlines_03.png new file mode 100644 index 0000000000000000000000000000000000000000..3e0da4b2e214b09744d394fcc73cdb9eaa835054 GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sBu#WAE}&f5!(oD2#)EE|vi zE#GD>vLs{@XP-An8FtXH{?5yWHe=ZhosrlT5G8s*nl(0_k)_Q(c`8V~r>mdKI;Vst E0IxY5-~a#s literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_streamlines_03_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_streamlines_03_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..4c5149c9ddde5ce57d4de887be4f46a043f8ee86 GIT binary patch literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5*t^{q2Nniv=kyw*#7%iwzP)s}b=*VEO{Wt~$(695>1 BA+G=c literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_streamlines_04.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_streamlines_04.png new file mode 100644 index 0000000000000000000000000000000000000000..3e0da4b2e214b09744d394fcc73cdb9eaa835054 GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sBu#WAE}&f5!(oD2#)EE|vi zE#GD>vLs{@XP-An8FtXH{?5yWHe=ZhosrlT5G8s*nl(0_k)_Q(c`8V~r>mdKI;Vst E0IxY5-~a#s literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_streamlines_04_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_streamlines_04_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..4c5149c9ddde5ce57d4de887be4f46a043f8ee86 GIT binary patch literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5*t^{q2Nniv=kyw*#7%iwzP)s}b=*VEO{Wt~$(695>1 BA+G=c literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_streamlines_05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_streamlines_05.png new file mode 100644 index 0000000000000000000000000000000000000000..099a95a86252a3aba39e670d87bc930ce87eb43c GIT binary patch literal 332 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK#s7di(^Q|oVPbO3N;xBxCVas z|G!eVge9=+!W-^lKj$?!b~gK%oMr;)zz*(smGT!HTwL8Svx60+;y}aJukWtf9++`1 za&>)+AtSrkXPGY3W2@%7?%Ee|S>@K2qpK#DZfYpMW^+VJ;aWpS#O60!ZY7-+%2@yY zWYqsPhfM2uuOAi#8nk2TmHB@rreCcT*4^oTRj^)L{>nosWrMJo#r+2&W^=usCcfIw ze#_}@QJ*!8NxUbzMYr$1_2lTUNuhcMVPOmQ9*D3`ynEFVdQ&MBb@0D&@YbpQYW literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_streamlines_05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_streamlines_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..13240afbbf000dc90363bc0196a4aab017218ea1 GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5e0XcImnR=3=Q|cvX$MHoFvHI Q-Us4)y85}Sb4q9e0FKmG?*IS* literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_streamlines_08.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_streamlines_08.png new file mode 100644 index 0000000000000000000000000000000000000000..3e0da4b2e214b09744d394fcc73cdb9eaa835054 GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sBu#WAE}&f5!(oD2#)EE|vi zE#GD>vLs{@XP-An8FtXH{?5yWHe=ZhosrlT5G8s*nl(0_k)_Q(c`8V~r>mdKI;Vst E0IxY5-~a#s literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_streamlines_08_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ic_streamlines_08_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..4c5149c9ddde5ce57d4de887be4f46a043f8ee86 GIT binary patch literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5*t^{q2Nniv=kyw*#7%iwzP)s}b=*VEO{Wt~$(695>1 BA+G=c literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_amr-quad_boundary_topo.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_amr-quad_boundary_topo.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0675158a6cb910218d1eee7c0cfd06844de73f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9YbIT;K%SRCK( ze{sV}!O@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_amr-quad_boundary_topo_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_amr-quad_boundary_topo_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_amr-quad_mres_0000.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_amr-quad_mres_0000.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0675158a6cb910218d1eee7c0cfd06844de73f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9YbIT;K%SRCK( ze{sV}!O@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_amr-quad_mres_0000_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_amr-quad_mres_0000_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_amr-quad_mres_0005.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_amr-quad_mres_0005.png new file mode 100644 index 0000000000000000000000000000000000000000..2e7603d9bc6c24a922100f8b023d23f5aed6688b GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f5zIc^Md3m>s^! z&k|MH^W*j1WO8kq!M)w_BK*coO7SfK2ps^>bP0 Hl+XkK#-AQg literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_amr-quad_mres_0005_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_amr-quad_mres_0005_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..e8b1e520c735544805cafebe2a24876b2cfd3d6b GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp55;~}c+0LG4Xz418V*h6dO!95j{2nx^9^k8+`88EY$uE3{okiOVzUj3&N>?O3GQJ6 e83zOn_jfS{KIdW%di~M}#P@Xdb6Mw<&;$TjsxJ8e literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-quad-nurbs_boundary_topo.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-quad-nurbs_boundary_topo.png new file mode 100644 index 0000000000000000000000000000000000000000..5d3fa917e99307ecdedc023ec27a9cabe37321f2 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sx;#WAE}&f7B^c^Moymds`;Qp^C+e+@y%xmgc%`xNuP{_gbe{+I3NZQlY&t;ucLK6V9 CKpf8i literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-quad-nurbs_boundary_topo_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-quad-nurbs_boundary_topo_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..af15f8f1b52fe1b48e0a7eedb54ba0eb809495c3 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5ds`;Qp^C+e+@y%xmgc%`xNuP{_gbe{+I3NZQlY&t;ucLK6V9 CKpf8i literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-quad-nurbs_mres_0000_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-quad-nurbs_mres_0000_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..af15f8f1b52fe1b48e0a7eedb54ba0eb809495c3 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5BjNIBWyf$Y;|JD*LsrOdW<&H7K1Z+tzMXK}CovkW!^8}6G< We5lXls}mIplJ<1_xG;-$Y12MzMh5QLn3?DLsh1m2Tpzm>GE{-b6Mw<&;$U0TQ*|= literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-quad_boundary_topo.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-quad_boundary_topo.png new file mode 100644 index 0000000000000000000000000000000000000000..5d3fa917e99307ecdedc023ec27a9cabe37321f2 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sx;#WAE}&f7B^c^Moymds`;Qp^C+e+@y%xmgc%`xNuP{_gbe{+I3NZQlY&t;ucLK6V9 CKpf8i literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-quad_boundary_topo_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-quad_boundary_topo_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..af15f8f1b52fe1b48e0a7eedb54ba0eb809495c3 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5ds`;Qp^C+e+@y%xmgc%`xNuP{_gbe{+I3NZQlY&t;ucLK6V9 CKpf8i literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-quad_mres_0000_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-quad_mres_0000_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..af15f8f1b52fe1b48e0a7eedb54ba0eb809495c3 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5BjNIBWyf$Y;|JD*LsrOdW<&H7K1Z+tzMXK}CovkW!^8}6G< We5lXls}mIplJ<1_xG;-$Y12MzMh5QLn3?DLsh1m2Tpzm>GE{-b6Mw<&;$U0TQ*|= literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-tri_boundary_topo.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-tri_boundary_topo.png new file mode 100644 index 0000000000000000000000000000000000000000..5d3fa917e99307ecdedc023ec27a9cabe37321f2 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sx;#WAE}&f7B^c^Moymds`;Qp^C+e+@y%xmgc%`xNuP{_gbe{+I3NZQlY&t;ucLK6V9 CKpf8i literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-tri_boundary_topo_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-tri_boundary_topo_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..af15f8f1b52fe1b48e0a7eedb54ba0eb809495c3 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5ds`;Qp^C+e+@y%xmgc%`xNuP{_gbe{+I3NZQlY&t;ucLK6V9 CKpf8i literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-tri_mres_0000_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_beam-tri_mres_0000_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..af15f8f1b52fe1b48e0a7eedb54ba0eb809495c3 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5BjNIBWyf$Y;|JD*LsrOdW<&H7K1Z+tzMXK}CovkW!^8}6G< We5lXls}mIplJ<1_xG;-$Y12MzMh5QLn3?DLsh1m2Tpzm>GE{-b6Mw<&;$U0TQ*|= literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_disc-nurbs_boundary_topo.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_disc-nurbs_boundary_topo.png new file mode 100644 index 0000000000000000000000000000000000000000..ed914ae20dcde631255c8de5388f767fb95e07f9 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sZ$#WAE}&f5zIIT;u@m<{jN zXUICqE1mqmz=R2;3v?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSp_VS B9%ldm literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_disc-nurbs_mres_0020_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_disc-nurbs_mres_0020_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..e270f98c8934e2e43e06141269e2c4fec527ec00 GIT binary patch literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-quad_boundary_topo_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-quad_boundary_topo_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-quad_mres_0000.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-quad_mres_0000.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0675158a6cb910218d1eee7c0cfd06844de73f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9YbIT;K%SRCK( ze{sV}!O@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-quad_mres_0000_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-quad_mres_0000_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-quad_mres_0020.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-quad_mres_0020.png new file mode 100644 index 0000000000000000000000000000000000000000..2e7603d9bc6c24a922100f8b023d23f5aed6688b GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f5zIc^Md3m>s^! z&k|MH^W*j1WO8kq!M)w_BK*coO7SfK2ps^>bP0 Hl+XkK#-AQg literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-quad_mres_0020_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-quad_mres_0020_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..e8b1e520c735544805cafebe2a24876b2cfd3d6b GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp55;~}c+0LG4Xz418V*h6dO!95j{2nx^9^k8+`88EY$uE3{okiOVzUj3&N>?O3GQJ6 e83zOn_jfS{KIdW%di~M}#P@Xdb6Mw<&;$TjsxJ8e literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-tri_boundary_topo.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-tri_boundary_topo.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0675158a6cb910218d1eee7c0cfd06844de73f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9YbIT;K%SRCK( ze{sV}!O@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-tri_boundary_topo_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-tri_boundary_topo_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-tri_mres_0000.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-tri_mres_0000.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0675158a6cb910218d1eee7c0cfd06844de73f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9YbIT;K%SRCK( ze{sV}!O@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-tri_mres_0000_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-tri_mres_0000_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-tri_mres_0020.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-tri_mres_0020.png new file mode 100644 index 0000000000000000000000000000000000000000..2e7603d9bc6c24a922100f8b023d23f5aed6688b GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f5zIc^Md3m>s^! z&k|MH^W*j1WO8kq!M)w_BK*coO7SfK2ps^>bP0 Hl+XkK#-AQg literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-tri_mres_0020_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_inline-tri_mres_0020_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..e8b1e520c735544805cafebe2a24876b2cfd3d6b GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp55;~}c+0LG4Xz418V*h6dO!95j{2nx^9^k8+`88EY$uE3{okiOVzUj3&N>?O3GQJ6 e83zOn_jfS{KIdW%di~M}#P@Xdb6Mw<&;$TjsxJ8e literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_periodic-square_mres_0000.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_periodic-square_mres_0000.png new file mode 100644 index 0000000000000000000000000000000000000000..ed914ae20dcde631255c8de5388f767fb95e07f9 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sZ$#WAE}&f5zIIT;u@m<{jN zXUICqE1mqmz=R2;3v?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSp@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p2_boundary_topo_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p2_boundary_topo_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p2_mres_0000.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p2_mres_0000.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0675158a6cb910218d1eee7c0cfd06844de73f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9YbIT;K%SRCK( ze{sV}!O@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p2_mres_0000_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p2_mres_0000_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p2_mres_0020.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p2_mres_0020.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0675158a6cb910218d1eee7c0cfd06844de73f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9YbIT;K%SRCK( ze{sV}!O@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p2_mres_0020_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p2_mres_0020_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p3_boundary_topo.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p3_boundary_topo.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0675158a6cb910218d1eee7c0cfd06844de73f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9YbIT;K%SRCK( ze{sV}!O@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p3_boundary_topo_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p3_boundary_topo_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p3_mres_0000.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p3_mres_0000.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0675158a6cb910218d1eee7c0cfd06844de73f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9YbIT;K%SRCK( ze{sV}!O@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p3_mres_0000_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p3_mres_0000_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p3_mres_0020.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p3_mres_0020.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0675158a6cb910218d1eee7c0cfd06844de73f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9YbIT;K%SRCK( ze{sV}!O@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p3_mres_0020_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc-p3_mres_0020_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc_boundary_topo.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc_boundary_topo.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0675158a6cb910218d1eee7c0cfd06844de73f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9YbIT;K%SRCK( ze{sV}!O@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc_boundary_topo_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc_boundary_topo_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc_mres_0000.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc_mres_0000.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0675158a6cb910218d1eee7c0cfd06844de73f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9YbIT;K%SRCK( ze{sV}!O@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc_mres_0000_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc_mres_0000_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc_mres_0020.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc_mres_0020.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0675158a6cb910218d1eee7c0cfd06844de73f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9YbIT;K%SRCK( ze{sV}!O@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc_mres_0020_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_input_mesh_square-disc_mres_0020_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_kulllite_01.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_kulllite_01.png new file mode 100644 index 0000000000000000000000000000000000000000..1a0c898b8fe47dcda6fa788901ab76838b2d85bd GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sBu#WAE}&f9YvIT;LiSPawu zFMKR{=D4fFEB9$3)57Zta!aIk_ye`s$T$cX#rG%m9Ig`Ig39Yzopr087^;b^rhX literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_kulllite_02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_kulllite_02.png new file mode 100644 index 0000000000000000000000000000000000000000..32199c3c45e652611a628a1f2002eb8bfa55a200 GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9Ybc^M2imOg7nB0tp00i_ I>zopr0J!fUJpcdz literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_kulllite_02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_kulllite_02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..9ba09a586c33fe433e0c409046a13370dc6ae4d4 GIT binary patch literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5(kAmi)@UQrX5VTyLRZ`tJW8LHwQ3+ br2l+mgTe~DWM4fQnV}< literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_kulllite_03.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_kulllite_03.png new file mode 100644 index 0000000000000000000000000000000000000000..32199c3c45e652611a628a1f2002eb8bfa55a200 GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9Ybc^M2imOg7nB0tp00i_ I>zopr0J!fUJpcdz literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_kulllite_03_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_kulllite_03_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..9ba09a586c33fe433e0c409046a13370dc6ae4d4 GIT binary patch literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5(kAmi)@UQrX5VTyLRZ`tJW8LHwQ3+ br2l+mgTe~DWM4fQnV}< literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_label_6_04.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_label_6_04.png new file mode 100644 index 0000000000000000000000000000000000000000..edf0717dc94ca21072eb7b11d44ab201e05f8bab GIT binary patch literal 349 zcmeAS@N?(olHy`uVBq!ia0y~yVEh8Y96$kvcY7PcfE*Q17srr_Id3l+axp0IFdz8! z-~GDlouxr8@22IPoCH=0QayA)#r2HHlcu3(cq%7t*m_6t{goYhlsW!S64S2P2FyE7 RYo~(@@^tlcS?83{1OV=1Cz}8O literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_label_6_04_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_label_6_04_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..d87ba6eb039e6177c5c58ad8d5b8604ff6c7d70b GIT binary patch literal 159 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_label_8_11_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_label_8_11_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..3624ed2ea6e6a0e96524f8dfb65200593264e1d4 GIT binary patch literal 3627 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 YUGGK?8*}XKIA0Lg)78&qol`;+01ALA^#A|> literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_lata_02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_lata_02.png new file mode 100644 index 0000000000000000000000000000000000000000..6e59f60688df921b600b96c2049af0e07b723341 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sx;#WAE}&f5zcc^MoymYPaoSeiTwO^Q?F8*g=MXz@O{fr_)%j T&ffY)2E_Gr^>bP0l+XkKczG-2 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_lata_08.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_lata_08.png new file mode 100644 index 0000000000000000000000000000000000000000..0e2684857a5be80eefb6bd3ad6090e53a8a426cc GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sZ$#WAE}&f5zIIT;Lim<`MS zFPzQ$sZ{e46Z>?KG7$K%H2B^9qWbImm?3;>k>@3^G%_;XJlvcJGSSo3&t;ucLK6Ts CP#%W> literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_lata_08_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_lata_08_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..b7d053dd087fe21fbfd50ffa2c91a42ddae5b6ae GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5XQVKgD_QLWGe;l95wYOg-8e(ibg@1f7v{GY8T2blo^58TC+XR+OI SKd1cz#PxLbb6Mw<&;$UElq^~R literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_lata_09.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_lata_09.png new file mode 100644 index 0000000000000000000000000000000000000000..ed914ae20dcde631255c8de5388f767fb95e07f9 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sZ$#WAE}&f5zIIT;u@m<{jN zXUICqE1mqmz=R2;3v?ZkQpHGz{8&9Bir4g RE2|%axSp!v2^nSQZ2V9fQN5E+Ehk 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 B9XJ30 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_leos_06_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_leos_06_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..8c88cdcb3dd0d42fb40c49eb46b116b87aa34f77 GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5$A@`lrHuQuXCC?^jtxZqDKanE?V1WbAu4u-!eT RYvTptdb;|#taD0e0sv)DCOZHC literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_life03.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_life03.png new file mode 100644 index 0000000000000000000000000000000000000000..c0f2d101405b3e25d3b3f519accfefce5debd8a0 GIT binary patch literal 3565 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_life03_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_life03_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..a8346ef055b580ea8aaf52a4b9035cc6d3524ab4 GIT binary patch literal 5828 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_line3d07_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_line3d07_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..24c1a088b0ecaec3305c1ca01f5fea55219431c0 GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5W=>hL*mU-=&9X-{nQN?o- z9Nl}QY`ka2!H2V}xOS(m6h5oGsMSpA*~~i{#(VZ25}sFZS4?~7nz-FpmqvJ++}-eU zmPXj2k0xuDCu>d9uFPpG{j3pjXqH^nwVffa<~wZt{paE9{A*8>JWE|%Vz)4O>LEMK=)L&YYsZs_U+jltrIpo zf_bg~-RiaX-K%zc7Hnb*+Q@hB`O5Gbt+2Tf%u6HMCu_gmAfoNRrZHg6G7grsrV%f;1w9$@7chg~yHR%G` p3j|+3J|ktFbA$=xSL%R&cg^!x$XhRaVPpt0(9_k=Wt~$(695zPdHetX literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_line3d08_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_line3d08_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..acd03fe674a2ebc16bceebd3631e15b9d5495cbc GIT binary patch literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5`dEX88aB literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_line3d09.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_line3d09.png new file mode 100644 index 0000000000000000000000000000000000000000..49a9dbe221d616d696f01bf02a7eb0cf4a325f8a GIT binary patch literal 539 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK+Ypi7srr_Id5+o7TtCbVLjOT zu0GvjvMV>sYxfzt4+4^ zF{}7{UQHW!Rc$;MFD|(^A~A{gNz&Zu(|LDBq$crRNt&CV&y=ufKf>=?hc6CI+pYn`)c8AcCgcBqtjX!f}Jk%`s^JmZJnd9 zgtHfjye=wOD7q}^X{YIgu2RFDm$;%gz6zRu$Ns-|%+}+@o7ljCmIn(o-D@AesVxxG z_FdB$v*z)qO^V{HebzL_t$BRi)lEMv!rb$7+(AMS17n=s_L}^@@b!y U*503RG9MHMp00i_>zopr0NLHyW&i*H literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_line3d09_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_line3d09_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..b6776f1ec0f363a62862e35760b4c5f7e734f8cf GIT binary patch literal 376 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5%IEGZrd3$Sp-k}5$)(^p# z6tVYDO-P3)}sNIu&cq>QNYWkM*Y0u3hS517bE-0Xy(oqw1 z=;~$hxVozFO>LL9Y8q_So3509oxyZLTVuNCPHE345tlOWUJpCIUPZ$8-h=`dTZ0hK z;s`n3*?FpeB~~z(D!ence8qk72ZPyxbVidIb2^a0AJJFmpJ(&m*rQm>7WO_a+{A1% z>js0(hLacnoAJzj0Rz{A8M~*-q&>a(=0RA}&E%Yivt~wfZrlBP*Xz%du0c*Bs*3{F6v}a+FIgTe~ HDWM4f@FGc) literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_line3d10_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_line3d10_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..bb30a0cb86f1ba8d498a95e1f61dbbf3ca934537 GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp53NZkcv5PFKpy&FpzM0Xs_gS zt7BclQtc(%Jrf_!Xi9Y}5RblXakz11P5gfgi_QOESy^U2NxJ{k<=MH*q4JXNssp5d zu9I*Ikq({heKPmy#Fv^+XCCp`t6gb4U#tI2ne4WXiCQ^}*VaB21lbA$54iQ&I{ELO SHWStc33g-dCJ+>RLTpKX>t3Mg|7i(9P;Es?NwgnA~BiU=+4htddVTd8tsg zL(-Zk`$HT<<9EjLjt-{$e)q4$N<;GVVIwp#1N5rgorDuHPsF&KchAk1Lzl0QY z!%Q}^wH#e_`ufd7NvXow2a3Nj*m`Fdx^LLJBjWVBi$=M8AQ$2RFQU`<1(w|M<=<%b z^|yt;(zR9Fo_bC_Ud{H?AoT9~w`;E6cQ|g6wAbRz@~5A^?*7Vmzi89Hs=u?dvY#}` zf0$$Iu%;B?d5gig5yyLz7&#qr;v*%<_Zf6InVPLqo)+Jtvq4IqF PL=ex@)z4*}Q$iB}{5D$C literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_line3d12.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_line3d12.png new file mode 100644 index 0000000000000000000000000000000000000000..1b2dfb95f822414ac254cf2889c29cf54748bcb9 GIT binary patch literal 273 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK_UnJuN{EKEc_aX5XB!Vbi=EZZAfV4r0Iqt5+9U=XgwUlslC5==TeEr8S;glGUeP zujkr1qvOlgbF==iZRvB1FkW4^YWDT?({1a^&h<~vUo~wa>;A*PUof4^v#UCEE9v0( z9(&o6Fuh!*#8j)#X*{zZ_HQ{Cb;*Vp7l74l|Hv4{$E_MMdyX!M@9FC2vd$@?2>{c1 BP+9;0 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_line3d12_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_line3d12_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..8a8e4f20ad51110eddcb7c4ef1515124450ced38 GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5~Cfh zc#|Mj?(Q6MlA&qw+?d$?n;G{h%n5#Qs9F%D??e9IZGBHCYJRqRzR>K_yO}euZ!8h? j&0Tdvy|}i>2Bcz-ZK{`$%E^0Iwu5+{u6{1-oD!M<7v(X} literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_0_1.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_0_1.png new file mode 100644 index 0000000000000000000000000000000000000000..a0186c66343d52d9261570a58a098a2fef9d8c54 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r&k#WAE}&f9a0ybKH+%nQEj r*CxMEQ&C_9%I#QnR}Q3<%Am&Z)o;fCE0ybP0l+XkKysa2x literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_0_10.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_0_10.png new file mode 100644 index 0000000000000000000000000000000000000000..13326b9f60fbfb930beb9e6cc68f191e6ba1d17d GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r&k#WAE}&f9a0ybKH+%nQEj q*Ct!Yswgl5;fIGMHnK+Q|67=9brNkinj=elF{r5}E))85ZaO literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_0_10_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_0_10_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..419623cfde4f6c1134d305658e6d421c2a8cb1a9 GIT binary patch literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5VwSFDX5IYN61p$np7XD%mIrA8gVQ#ml8owd8;b6OxSp?Mkcv5P&l++vFmNy!96Wqm uXvJoL0nH)KbLh*2~7av9U8*` literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_0_16.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_0_16.png new file mode 100644 index 0000000000000000000000000000000000000000..79c5fb770d33eec3bb1c888b7af81b2861b61414 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r&k#WAE}&f9a0ybKH+%nQEj q*CxMEQ&C_9%2_PGD+f|aWng3c<1OQVZn0)Bkinj=elF{r5}E*UH5Rb| literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_0_16_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_0_16_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..820bcca91199995272cc3c7d57522f243d44c2fc GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5?Mkcv5P&l++vFmNy!96Wqm uXvJoL0nH)KbLh*2~7av9U8*` literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_0_1_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_0_1_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..e177bb27deed913abf7412f644d45ce94beea5f6 GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5?Mkcv5P&l++vFmNy!96Wqm v?Mkcv5P&l++vFmNy!96Wqm uXvJoL0nH)KbLh*2~7av9U8*` literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_1_1.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_1_1.png new file mode 100644 index 0000000000000000000000000000000000000000..77185886fa0cb4b3123a517448e67e92334db45a GIT binary patch literal 176 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sr+#WAE}&f7DNf(#5S3%AQqKDo7Bm(j7-<+V_QH5d%F6$taD0e0s!XE8My!e literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_1_10.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_1_10.png new file mode 100644 index 0000000000000000000000000000000000000000..b6464fd4be54e9daad695d7e6a6d836dbe2d8a88 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r&k#WAE}&f9a0ybKH+%nQEj r*CxMEQ&C_9%Kcb*R}Q3<%HWQn{&vRyr*34bfDHC@^>bP0l+XkK(V-Yq literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_1_10_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_1_10_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..f3a31330211c1b66fe0e293daa0f77398954df46 GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5?Mkcv5P&l++vFmNy!96Wqm uXvJoL0nH)KbLh*2~7av9U8*` literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_1_16.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_1_16.png new file mode 100644 index 0000000000000000000000000000000000000000..79c5fb770d33eec3bb1c888b7af81b2861b61414 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r&k#WAE}&f9a0ybKH+%nQEj q*CxMEQ&C_9%2_PGD+f|aWng3c<1OQVZn0)Bkinj=elF{r5}E*UH5Rb| literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_1_16_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_1_16_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..820bcca91199995272cc3c7d57522f243d44c2fc GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5?Mkcv5P&l++vFmNy!96Wqm uXvJoL0nH)KbLh*2~7av9U8*` literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_1_1_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_1_1_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..9093d6a8f1e5dc34d67f8595bf5adfb109821c94 GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5?Mkcv5P&l++vFmNy!{#j%aW+QfunAQore~`5J)))G^`i9Z^n?S`K0>|i0kR<=d#Wzp$PziqZsr6 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_1_4.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_1_4.png new file mode 100644 index 0000000000000000000000000000000000000000..ec178a26fc1f4366349f160282f8623deacaa2ef GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r&k#WAE}&f9a0ybKH+%nQEj r*CxMEQ&C_9%I#QlR}Q3<%Am&JF*D?Mkcv5P&l++vFmNy!96Wqm uXvJoL0nH)KbLh*2~7av9U8*` literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_2_1.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_2_1.png new file mode 100644 index 0000000000000000000000000000000000000000..79c5fb770d33eec3bb1c888b7af81b2861b61414 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r&k#WAE}&f9a0ybKH+%nQEj q*CxMEQ&C_9%2_PGD+f|aWng3c<1OQVZn0)Bkinj=elF{r5}E*UH5Rb| literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_2_10.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_2_10.png new file mode 100644 index 0000000000000000000000000000000000000000..b1cc123ad28e3397d10e35de26e96889e68ea6a4 GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sT!#WAE}&f9Z_j0_AM%nQEi q+txF`VCM7yso8P0jvqu*8Ej*;nZx*>>(3&0kinj=elF{r5}E*!v=?Mkcv5P&l(Cc7;vx{ypx!* vdeJ}GM~}pXm{&fUVc+&* literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_2_13.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_2_13.png new file mode 100644 index 0000000000000000000000000000000000000000..79c5fb770d33eec3bb1c888b7af81b2861b61414 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r&k#WAE}&f9a0ybKH+%nQEj q*CxMEQ&C_9%2_PGD+f|aWng3c<1OQVZn0)Bkinj=elF{r5}E*UH5Rb| literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_2_13_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_2_13_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..820bcca91199995272cc3c7d57522f243d44c2fc GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5?Mkcv5P&l++vFmNy!96Wqm uXvJoL0nH)KbLh*2~7av9U8*` literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_2_16.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_2_16.png new file mode 100644 index 0000000000000000000000000000000000000000..79c5fb770d33eec3bb1c888b7af81b2861b61414 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r&k#WAE}&f9a0ybKH+%nQEj q*CxMEQ&C_9%2_PGD+f|aWng3c<1OQVZn0)Bkinj=elF{r5}E*UH5Rb| literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_2_16_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_2_16_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..820bcca91199995272cc3c7d57522f243d44c2fc GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5?Mkcv5P&l++vFmNy!96Wqm uXvJoL0nH)KbLh*2~7av9U8*` literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_2_1_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_2_1_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..820bcca91199995272cc3c7d57522f243d44c2fc GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5?Mkcv5P&l++vFmNy!96Wqm uXvJoL0nH)KbLh*2~7av9U8*` literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_2_4.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_2_4.png new file mode 100644 index 0000000000000000000000000000000000000000..15e82d62332ccf3e56203482716ffc426949939c GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r&k#WAE}&f9a0ybKH+%nQEj r*Ct!Yswgl5;fIGT39Z)sXT31wOeuAcH+!{an^LB{Ts5B9s?Mkcv5P&l++vFmNy!96Wqm vR{e3Q;Kvw)O?z=P?mw|g0!SGP}y2XQ@J{an^LB{Ts5{n;DN literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_1.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_1.png new file mode 100644 index 0000000000000000000000000000000000000000..8cf0a36189451436c2cfde6d67d2a0a072fda0af GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sNy#WAE}&f9a2f(#5S3VF81OJ}xU;)l x#P#Q4>F!mNbC~>o#9enNI`6;)(f|S*ZZTh3#gKX<(^U+_^>p=fS?83{1OS9J9oql^ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_13.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_13.png new file mode 100644 index 0000000000000000000000000000000000000000..79c5fb770d33eec3bb1c888b7af81b2861b61414 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r&k#WAE}&f9a0ybKH+%nQEj q*CxMEQ&C_9%2_PGD+f|aWng3c<1OQVZn0)Bkinj=elF{r5}E*UH5Rb| literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_13_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_13_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..820bcca91199995272cc3c7d57522f243d44c2fc GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5?Mkcv5P&l++vFmNy!96Wqm uXvJoL0nH)KbLh*2~7av9U8*` literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_16.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_16.png new file mode 100644 index 0000000000000000000000000000000000000000..79c5fb770d33eec3bb1c888b7af81b2861b61414 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r&k#WAE}&f9a0ybKH+%nQEj q*CxMEQ&C_9%2_PGD+f|aWng3c<1OQVZn0)Bkinj=elF{r5}E*UH5Rb| literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_16_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_16_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..820bcca91199995272cc3c7d57522f243d44c2fc GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5?Mkcv5P&l++vFmNy!96Wqm uXvJoL0nH)KbLh*2~7av9U8*` literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_1_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_1_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..8ba227e882f1cfa7e3d69abf32ddafb903ffb1c6 GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5VF81OJ}xU;)l x#P#Q4>F!mNbC~>o#9enNI`6;)(f|S*ZZTh3#gKX<(^U+_^>p=fS?83{1OS9J9oql^ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_4.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_4.png new file mode 100644 index 0000000000000000000000000000000000000000..8cf0a36189451436c2cfde6d67d2a0a072fda0af GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sNy#WAE}&f9a2f(#5S3VF81OJ}xU;)l x#P#Q4>F!mNbC~>o#9enNI`6;)(f|S*ZZTh3#gKX<(^U+_^>p=fS?83{1OS9J9oql^ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_7.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_7.png new file mode 100644 index 0000000000000000000000000000000000000000..79c5fb770d33eec3bb1c888b7af81b2861b61414 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r&k#WAE}&f9a0ybKH+%nQEj q*CxMEQ&C_9%2_PGD+f|aWng3c<1OQVZn0)Bkinj=elF{r5}E*UH5Rb| literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_7_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ls_3_7_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..820bcca91199995272cc3c7d57522f243d44c2fc GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5?Mkcv5P&l++vFmNy!96Wqm uXvJoL0nH)KbLh*2~7av9U8*` literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar02.png new file mode 100644 index 0000000000000000000000000000000000000000..083af9aeeaf219634c9feb080f18cdde3163dab5 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sx;#WAE}&f5zIIT;Lim^YUE zUpQNoNpA`N%ld>ER**t$pl7bizV%^$w5r&#$r3Hr5X<|sgOTZV!0C@5J)W+9F6*2U FngF>X9yR~~ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8a09ebc7148344fb1cf1f402439d7cfe6f6bb2 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5ER**t$pl7bizV%^$w5r&#$r3Hr5X<|sgOTZV!0C@5J)W+9F6*2U FngF>X9yR~~ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar03_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar03_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8a09ebc7148344fb1cf1f402439d7cfe6f6bb2 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5ER**t$pl7bizV%^$w5r&#$r3Hr5X<|sgOTZV!0C@5J)W+9F6*2U FngF>X9yR~~ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar04_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar04_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8a09ebc7148344fb1cf1f402439d7cfe6f6bb2 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5ER**t$pl7bizV%^$w5r&#$r3Hr5X<|sgOTZV!0C@5J)W+9F6*2U FngF>X9yR~~ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8a09ebc7148344fb1cf1f402439d7cfe6f6bb2 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5ER**t$pl7bizV%^$w5r&#$r3Hr5X<|sgOTZV!0C@5J)W+9F6*2U FngF>X9yR~~ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar06_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar06_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8a09ebc7148344fb1cf1f402439d7cfe6f6bb2 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5ER**t$pl7bizV%^$w5r&#$r3Hr5X<|sgOTZV!0C@5J)W+9F6*2U FngF>X9yR~~ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar07_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar07_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8a09ebc7148344fb1cf1f402439d7cfe6f6bb2 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5ER**t$pl7bizV%^$w5r&#$r3Hr5X<|sgOTZV!0C@5J)W+9F6*2U FngF>X9yR~~ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar08_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar08_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8a09ebc7148344fb1cf1f402439d7cfe6f6bb2 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5ER**t$pl7bizV%^$w5r&#$r3Hr5X<|sgOTZV!0C@5J)W+9F6*2U FngF>X9yR~~ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar09_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar09_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8a09ebc7148344fb1cf1f402439d7cfe6f6bb2 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5ER**t$pl7bizV%^$w5r&#$r3Hr5X<|sgOTZV!0C@5J)W+9F6*2U FngF>X9yR~~ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar10_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar10_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8a09ebc7148344fb1cf1f402439d7cfe6f6bb2 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5ER**t$pl7bizV%^$w5r&#$r3Hr5X<|sgOTZV!0C@5J)W+9F6*2U FngF>X9yR~~ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar11_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_materialvar11_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8a09ebc7148344fb1cf1f402439d7cfe6f6bb2 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr09AVzTL1t6 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_mesh_point_05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_mesh_point_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..c5cbc9119e7fa38daec1d87727241a27c360b702 GIT binary patch literal 97 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5bP0l+XkK($*F7 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_mesh_quality_05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_mesh_quality_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..ce70a2b54ae22a09f89a36fcc37605fa11ffe084 GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5gTe~DWM4f&zTmb literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_meshtype_point_05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_meshtype_point_05.png new file mode 100644 index 0000000000000000000000000000000000000000..3600a7b386052c43d2e927e3ee52a294bdc9aa69 GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r~q#WAE}&f9a2ybKH+EDJW* zXRLj2ey1ao5J(X*pdqmdKI;Vst0AB4J ASO5S3 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_meshtype_point_05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_meshtype_point_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..35f73d482f36fe5738eebc0a6fcf30f1e0a512e4 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zIIQ8Y14;<%L%nrC-tn={yiF?ykyExU4|$6Nu~S>gTe~DWM4f D07xGJ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_meshtype_point_07.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_meshtype_point_07.png new file mode 100644 index 0000000000000000000000000000000000000000..458d99aa5618eb730d20fb4542c1b9bd05b455bc GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r&k#WAE}&f9a0ybKH+%nQEj suQhxpqoTkFQbR6yup^Tlr{0GDVtNM|88Yt%d;qEOboFyt=akR{0356rq5uE@ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_meshtype_point_07_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_meshtype_point_07_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..196ee32c15b6da51965d8ce467d4b8d2e4ba902c GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5c%U zmkMD}%oKgIl?9{?nT2Kn7lvl#3zaYft#@jPAqT-G@yGywn& Cl^?|b literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_missingdata_0_01.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_missingdata_0_01.png new file mode 100644 index 0000000000000000000000000000000000000000..309f7ab0601fd0d40744e43b8d753cc6fd049fbd GIT binary patch literal 187 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r{p#WAE}&f8ljc^Mcum<+zh zM{WP$WzEPR*8)}sQi=yOxE5Iq}gQewe}nXlxaYL9)G%gpe=LG4qED-(l|FHp4S!52n`Usq~- eI>d0AcSFoikK@P6!#~e}lz6)OxvXh9Uz%46?539My-dFF4$6d(H*2j^)q)lF_ y-&pSMoc@Z{dEs_H{Z^A4yYJ~gKh9)gU{DqJvu6}|-#@z>WT~gCpUXO@geCyqoHq#o literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_missingdata_1_00.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_missingdata_1_00.png new file mode 100644 index 0000000000000000000000000000000000000000..2a2993738b685cd54ef52b7244f7a78d0ed20c63 GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&ryi#WAE}&f9B-j0_AMhd2B* z=jE#?pP=#LCJRUvk>G*JTcFB{qm9f&Y6#dQxsdVyqZ^GoKpH$<{an^LB{Ts53(Op3 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_missingdata_1_00_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_missingdata_1_00_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..27b5cd4960530b5c7d3b7aa310b1f3e7c73ab3e8 GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5bP0l+XkK D=}{ev literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_missingdata_1_01.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_missingdata_1_01.png new file mode 100644 index 0000000000000000000000000000000000000000..45e3d3dd4b9ef9e9304d652d93c3db7039ae929f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&fB{?c^Mcum<_+h zOHFflG||@aRkjc#NF8=ya^fXe_JB~9B1naU@k3GUDj6ycax&wPVqhq6Vr1XQ{MS=# Q_a%@TPgg&ebxsLQ0EI&xhX4Qo literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_missingdata_1_01_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_missingdata_1_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..8597d3ddbd08cf4850e243bafa783073c9521539 GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5Y+$n5v{>d6!}@P5~;@3;V)QcSv0z@!Jbl28M!+r$?vO^t;yvGBGgJWH8@y VVJO-We8C-LuBWS?%Q~loCIE7*Cj0;Z literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_missingdata_1_02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_missingdata_1_02.png new file mode 100644 index 0000000000000000000000000000000000000000..7914097c9a254f61ad8e1d9a0dbd2c5158a1426c GIT binary patch literal 171 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r^o#WAE}&f9Z}j6fcf!vFc# oB*h{em_SNEpx|0Lgh4H`flQLPS3k%^Pgg&ebxsLQ0NsBSQvd(} literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_missingdata_1_02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_missingdata_1_02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..052e568e1d40024bfa700abff903764a7920aabd GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5&E~8M&A{zCthajHoUxbYjMM}Ozi_FSXBedltJ1cV8@O%`wpys#Vt}H>{S_NK4oUn zPls>Q%L8Y&Ef%v~-Sd9ZO8xD-TdsC%87nQ?DnF}jfBmyfySL5@KmG4(uQ1ad_tdA8 zj?M~w9sDWPV`p_pSa(m(&OOp!@6Wwren)wYYWFqf*P&lKo^L(&>W<2qj*gs*)8-tj zId}S%TH@1LCj$~6Tg`tT_BZ*i@|tU_Gdr^)_sP{;tzEePaNdlW&M&vz%h4?^oZC`) zEN72n>e|0ow^hH`=3TqhIwUOrX7zIep95QG6nzd}`a1mDj*9Iy`_}!OQ}JbIO~lSE z3*Tlt--=_KcDyWU`lfik=-BFg(YwDTKCoJH?W*?cjqKkpMgCg-&FImRpA}C}oia=N zS{CxB_Kf2?nXsC<`S0CaYfQe#$6BoEpWT?gJL*rS-ktQfXII^8J$!5RRQsaA_-P^M)PNfuIR$NP>ReFQYo&8S(HP>Z30$AbC$$KbLh*2~7Y24;HZi literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_moveoperator_0_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_moveoperator_0_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..3fc08b3cb4d7aaeda8e8b8d2340e6dbe457fb4f7 GIT binary patch literal 97 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5Hq)$ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_multiblock02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_multiblock02.png new file mode 100644 index 0000000000000000000000000000000000000000..1c8719ef46bea6abfdbcfc324ee680b777bbeb85 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sZ$#WAE}&f5zIIT;u@m<{jN zXUICS%Afqdz=R2;3<)%FTXtq=9}QnzjwDC{vw@k{Y#k%hH#e4JAX7YD{an^LB{Ts5 DsWci- literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_multiblock02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_multiblock02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..9afc867cdb6d5dbf457aa9f41a292ed64fdae0b1 GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5F=m2zfJi z&;KW?HlCSc+$R-ZKJ$EqRpjO@PLLr$@S~b>g&*79 S_=|jJL0nH)KbLh*2~7YCc`1Sb literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_multiblock03.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_multiblock03.png new file mode 100644 index 0000000000000000000000000000000000000000..1c8719ef46bea6abfdbcfc324ee680b777bbeb85 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sZ$#WAE}&f5zIIT;u@m<{jN zXUICS%Afqdz=R2;3<)%FTXtq=9}QnzjwDC{vw@k{Y#k%hH#e4JAX7YD{an^LB{Ts5 DsWci- literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_multiblock03_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_multiblock03_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..9afc867cdb6d5dbf457aa9f41a292ed64fdae0b1 GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5F=m2zfJi z&;KW?HlCSc+$R-ZKJ$EqRpjO@PLLr$@S~b>g&*79 S_=|jJL0nH)KbLh*2~7YCc`1Sb literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_multiblock04.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_multiblock04.png new file mode 100644 index 0000000000000000000000000000000000000000..1c8719ef46bea6abfdbcfc324ee680b777bbeb85 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sZ$#WAE}&f5zIIT;u@m<{jN zXUICS%Afqdz=R2;3<)%FTXtq=9}QnzjwDC{vw@k{Y#k%hH#e4JAX7YD{an^LB{Ts5 DsWci- literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_multiblock04_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_multiblock04_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..9afc867cdb6d5dbf457aa9f41a292ed64fdae0b1 GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5F=m2zfJi z&;KW?HlCSc+$R-ZKJ$EqRpjO@PLLr$@S~b>g&*79 S_=|jJL0nH)KbLh*2~7YCc`1Sb literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_multiblock05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_multiblock05.png new file mode 100644 index 0000000000000000000000000000000000000000..1c8719ef46bea6abfdbcfc324ee680b777bbeb85 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sZ$#WAE}&f5zIIT;u@m<{jN zXUICS%Afqdz=R2;3<)%FTXtq=9}QnzjwDC{vw@k{Y#k%hH#e4JAX7YD{an^LB{Ts5 DsWci- literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_multiblock05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_multiblock05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..9afc867cdb6d5dbf457aa9f41a292ed64fdae0b1 GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5F=m2zfJi z&;KW?HlCSc+$R-ZKJ$EqRpjO@PLLr$@S~b>g&*79 S_=|jJL0nH)KbLh*2~7YCc`1Sb literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_netcdf_3_01.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_netcdf_3_01.png new file mode 100644 index 0000000000000000000000000000000000000000..1222082c9f450ef1ba60a2db77f738bea2d007f9 GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMKx(O{i(^Q|oVRxjxf%?3STEH7 z_pWEx*0^@kam9Pz#uk;k-a;VN7$EHGdT|Uvu)vSm?=G2S&e~@wc{kD~_eM(3tH6&o y74u%IO8HwXuhy7jUk!hzZoASIrzelF{r5}E)DoH7Lf literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_netcdf_3_01_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_netcdf_3_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..2207b34d44d8e04fa820c47b57bf4cbe37443533 GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zzBT{FHz_DS6nKB(P?L-5v3TCp5Hn-@C6gd6cEUH$SmT? Ua#j0$;%X4r)78&qol`;+0NuPR_5c6? literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_openPMD_3D_Fieldsrho.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_openPMD_3D_Fieldsrho.png new file mode 100644 index 0000000000000000000000000000000000000000..b8db7be66ad2808bcaa43f4a02a4b1923f887ac2 GIT binary patch literal 333 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK#qu~i(^Q|oVT|R@*XzeVLq_n z_xn3*66|^+p50|(RNT1kwhcc>H3CTg-CxI`7itr^f4w|I!uoq{;U5eF@>3asDr6S_ z=sLEw$RWZYF#qstoxY2^+j3GjFz79PaPx2qW6Y`@4`Tln_B^ufIjNcRCCT&tEVUtbEi|KA#m~BLjoamETb_wjW|T#Koblu%=-{g3@yxF$fbb z24Zw4|HwPRl*rn`D*V$VrEvpOWyIcSj^`WNA%?}Q`o7%Ye<{PeYq#GU%y}BCqR}9D f#T3~h5c@!G+?{3e3dS2bw}7~wu6{1-oD!M0oneEP)@Vt^iUTxWV4=?VPsPK7nKb%*wfX|Wt~$(69C%7 B9KQen literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_dualmesh_mesh_plot_2d_00_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_dualmesh_mesh_plot_2d_00_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..ac3b0d831a27f31eab7cd3948047e600f281ffaa GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5AmJltp4` zTcZ?HPtaipUPiZ-i3{2o7GE(4aBc|9l31a5K*N;hia^2?g31{_lrTsXFL`+Kq8*5elF{r5}E*u#&D|u literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_dualmesh_mesh_plot_2d_01_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_dualmesh_mesh_plot_2d_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..23350613df49634fc5cf1c3ceca69f1b586f5ef3 GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5-Z^T{;56=HMBhH+M zNi$h$%~{u+8+8@Jp^R`)sh=fQrZ`LZ3d{Oyw^C2sizuJ}%1`LqYWMs#_Mu93o44-w zKj&X)%A^^*ZTfdk4peYLT@Vt^iUTxWV4=?VPsPK7nKb%*wfX|Wt~$(69C%7 B9KQen literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_dualmesh_mesh_plot_2d_02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_dualmesh_mesh_plot_2d_02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..ac3b0d831a27f31eab7cd3948047e600f281ffaa GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5x$aB)^JnYfKqbtU1JQX@NB00qfSSEtykyV*R@}`wkiYYp?2`+-f_~G>Nxr z?vp(C`3F3XaCL|ZXe)#{tZ9g7JX#!7InyFAw*9m@`|O8)Uqi>6_#B ztF0L~G9|Gh>j4SOom+mGTR?k5#_T80@16Me_y4S{`A;_4E(IF3HGQM}+P1y6vWe@$ z-bI2GGw$Kp?Zm;bdghzV7p3eB7QH)2 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_inverse_ghost_zone05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_inverse_ghost_zone05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..3838f947e857d2c5cb48d877581cd1c13780eb11 GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp58$bJYW?QV z{WIsz@pXW~3Hy*8m*Q5mKSdv|#MH}95L?N?l7A+|4qQ}B_L^8|t8KC29` xsdT+jbrHSZciy?BgY zUnni}hj(R8-K9`QpnQ&nXH9&p&qZO79_oSv*QL%@GBSnw+`kSo*wfX|Wt~$(698^< B9N+)| literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_refl02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_refl02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..d690fb3267b4d5ee1b9d4bf0d19e5a217e74fd51 GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5D~m$P6&BH)c%x%XW9} Rf@UQU-_zC4Wt~$(695lmD7F9q literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_resampleop_noise_point_small.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_resampleop_noise_point_small.png new file mode 100644 index 0000000000000000000000000000000000000000..4ca3469c5eb1d376fb4183f6bee618d75ae20b6e GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r&k#WAE}&f9a0ybKH+%nQEj quQjxjRZ(CBsi7{Yn_UJnuz^`@>SRU+n?#;W5ZBYy&t;ucLK6UNE)+um literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_resampleop_noise_point_small_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_resampleop_noise_point_small_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..f57ede34a70f120074755ff41fdd9304f3c47f04 GIT binary patch literal 101 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5kcv5P&l>VFFmNy%2=V3p snSJ!ATom(KCXg}^_>rwX!G~Q)h%fgBgYuCG;oTrXPgg&ebxsLQ09D5rF8}}l literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_transform05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_transform05.png new file mode 100644 index 0000000000000000000000000000000000000000..2b25646125a1f46f73f922dba9d08957a69b1f84 GIT binary patch literal 3037 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_transform05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_transform05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..e4e0c245e589d73473fb838c6973e3add17a718a GIT binary patch literal 2506 zcmV;*2{rbKP)?O%8pr?Ho9;>4bhQhmiz$UxWi3>|4%LEyBcLLVjtHm&C^F(u_aL9vG)Tr4!lS!tF0CoWmH{W-sq_%` z5{2IfNWl2}0Dn#KXsllumNO;(52=J7E9fbds*AOaj zK05}GEA|#*n>rStTx=i-nO;G}p@f?VIJO(uK=|+Qyn%$I8C99U(NGB+2xiUl#wvO? zeCtW!JRPfzLdee}rovPigQ9H(Vs;Y&X3g{h;v6r2#J{v|E=vY@n|(Y(sBnG&watGL zsAhJQSucBrfI_bQVpbw7Y`c~X4|s%dxI{?#gzxs@dFPT6Euud)D>`C4?hMuy5R;gKIDd0*eNz&_dBNJjFsOWZtQmt8Jso+0B<-qzEqy%210Rq27`7YoHDB|L!*)i z*#G?jx-$X*Y-n59v}XX#XU|_k;5Zwl-#IXRwU3YNDeh=y`c~fufE( z)w{Ih_NNX)nmPy}4cn}`v-(|1LI|-EVyPuvl|zks!|Fgr1TZ@zC+s_U!{Wnd8l9Eq zbKO<9Ze7w9kaj}ZhI@0kKHmMzLZH6C1Z=@B6~rWjSS z@Q25aZO8(EqII?K00AJ&ZF@QI_Z8xt{)bv;RP$p>=YIUhrfsfIzg&9a`Ub=9_xyVi zGCno)k;vzkr0If107O74FnbH`az6=^5b z(0WsZtgR!&Ngs{Ev=Q#;Z(&1XBE(DK92uEhxqH;>n?biEYD)YNVuL5HELzib4dT$a{j0!2}5kAPpwjwA~X< zl_c}Rldn?6h_=w10s!VjNPK|2SLnmR0O8kk>Vl0+imwUGxuF-idA`f6FuH*NCI^Zc z7)%gnm(nlxa)!BYNw=zJyL@$v;JAS? zj@t1|NdBYJT_LD=;G3d&dzm}Np+n5S(RcMQ_lUZI}=-Pfi5mBft`*wO>Q9cl8cw| z`R}fj%`mKvAFR$SB%iM#s--GYdW)jTEgj8ON11Cmqq4)_3Pb8KNpj;4;)7)AtBvYE zoFJX+uaL4|=yLmDZ^FGZkS%{A12N@KPkcp}`EZ_U{(PdHS>mdCxr%5D>0Y(%W5K|< zp!DUUd0RG&m6n|3F1%Iu%sQKT)gfXzT1K3$-FNp4W7$9e|F0t!K3EkXm~CC2`=GUH z;-*&nzJ;yiTzs{T-@b6z2c0PsykjZ;OKAeyWQ5UW6MDB0e)7buzYj2DCVGUKu2irQ$}=FuC&+moool8~=|+6lR4Z1JTRO~`us1@#+0#-#2{X!!P8K+co^ zTTPu`YK%W+u-HB*U<2Xu9J0t-Ny3)hm3km<;(XSA8vY}I(AYC73Ndf)a~hX?;rpG znV1*H;|6okWeg#xGK2y`i&^IK;x8;VuQFv~KpQX)fa*Gn(?>O`QH^R;qhhCj0sD7u UVtz`>WB>pF07*qoM6N<$g0q|F{{R30 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_transform07.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_transform07.png new file mode 100644 index 0000000000000000000000000000000000000000..a09b928455c51473e53781520845a909974e2ff2 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sx;#WAE}&fD_`IT;K%SR60c zUyN#GVc~3?`M&O*5=f!hoa@ZTHgW%tV*>H03wCG)Y-ePesPi}+WUi;HpUXO@geCwJ CDje+q literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_transform07_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_ops_transform07_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..227b6091c4c6ca77a3f6d22b3f872f2b73e2e6eb GIT binary patch literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5kJ_|VD}8_&q3wsgu-kinj=elF{r5}E*4 CdmYdK literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pickarray_02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pickarray_02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..14d6462f718494c8a5e56b6bd18bc8ea545e4866 GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5p8 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pickarray_04.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pickarray_04.png new file mode 100644 index 0000000000000000000000000000000000000000..d6efe3c77167db4bce4880d6988064cf8a3ca08e GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sx;#WAE}&f5zIc^M2im<@OR zzhJ=J-?Zu$cgz%!x(4ZU-x~Vn@Y#Lk1L>kJ_|VD}8_&q3wsgu-kinj=elF{r5}E*4 CdmYdK literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pickarray_04_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pickarray_04_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..14d6462f718494c8a5e56b6bd18bc8ea545e4866 GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5p8 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pickarray_07.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pickarray_07.png new file mode 100644 index 0000000000000000000000000000000000000000..d6efe3c77167db4bce4880d6988064cf8a3ca08e GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sx;#WAE}&f5zIc^M2im<@OR zzhJ=J-?Zu$cgz%!x(4ZU-x~Vn@Y#Lk1L>kJ_|VD}8_&q3wsgu-kinj=elF{r5}E*4 CdmYdK literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pickarray_07_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pickarray_07_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..14d6462f718494c8a5e56b6bd18bc8ea545e4866 GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5p8 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pickarray_09.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pickarray_09.png new file mode 100644 index 0000000000000000000000000000000000000000..1b887a5dbeaf6eaa59158dfab2eb059a7a2e7cdf GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sZ$#WAE}&f5zIIT;u@m<{jN zXUICS%Afqdz=R1X{lLlZ(XFVDS6|42^iUTxF!P>y&&YJn=Z+T0U{6;+mvv4FO#sW) B9XJ30 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pickarray_09_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pickarray_09_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..8c88cdcb3dd0d42fb40c49eb46b116b87aa34f77 GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5$A@`lrHuQuXCC?^jtxZqDKanE?V1WbAu4u-!eT RYvTptdb;|#taD0e0sv)DCOZHC literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pickarray_10.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pickarray_10.png new file mode 100644 index 0000000000000000000000000000000000000000..d5c6240714530e08c5556d93a5f72e6ff024cf27 GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sBu#WAE}&f9YvIT;LiSPawu zFMKS@BX92bihmtQW5Qw2N55YsY0P2;X`(Lp;mCY8fstuWpm-t3U{6;+mvv4FO#ry- B97q5F literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pickarray_10_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pickarray_10_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..e48ab5fc3fc8a8122f030861f0ee6edad3fbb53a GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp58rObY!(pL_!%X1kD>&b{8%v-nQ>qYL<&$Z`oS@QRNY{a=w>>xux;6S37=0%pP TYd(uz1aUoG{an^LB{Ts5(`YDw literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_00.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_00.png new file mode 100644 index 0000000000000000000000000000000000000000..b5611c46117d9603f1ac1e5e25dbf1b94f6702c2 GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sT!#WAE}&f9Z_ybKH+%o~21 r^NM{Fm>1?K3{pfccz328kJbg7$~Q1F?CD+F2~ygTe~DWM4fa5@-3 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_00_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_00_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..03558bbb1dd2b5f7a87fbfea0041f610db316a6a GIT binary patch literal 101 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5kcv5P&l>VFFmNy%2=V3p vnSJ!ATom(KCXh0QhWTYoCrcC<85n~2j*2rVAAiTX4kYgB>gTe~DWM4fZUz|o literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_01.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_01.png new file mode 100644 index 0000000000000000000000000000000000000000..051385a514f0758fc1b42052394d30cb0a1a15c5 GIT binary patch literal 440 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..b82ae607887c70fbf421926e0b9bffeb39bcd5e4 GIT binary patch literal 672 zcmV;R0$=@!P)cOU`6}J7>1SO@|_Fnmg3*M zD|{x6a`(zA@WxQ42zhLEuZC>i7}pa*EZp3}%>V!rZWOFZGExiSS{jgI=hLC+uw>jt zts(sofkN&gl3tFd0f;UGQ4mQ1;@t8q2}Tzk&L}~c$IbLIl5^MDrsVBvk?W%7uGaO& zip2XwZQ9|*UaNfPp)6*AxpAJ}?6B)XbW zfcRTapS!4E4{CE4-Se-t&E&c;svi>6yGtvB0XhC&;T!!{6l22*kV%4ct^DYs2g^!- zrx5w>vcLX|_tPfl+1o9nV3tzYCp!yM5#N%B(KjulUdYe+B1r3|$ZdXx)EixMKVp<^^jOeNdA$I9R9rCyBj^kj( z(6c6u{}alP#s>fhMVWasrUrSf5$P#j7;+)?E8*FR=U&#g>#Ym0zC~!XX6-Y&004khI>p8A>K%HH_q&W)G06VbjWq%Q1mM%+H}r9q zeqnQwiLTn1c+B?vEZ-=zCSz4$dEq>NMyyi%gjQzxTiW^P=IR(@ z*H3Q4&|C@Mk~5TC{p$C9p5O1U-}AiQ@Av2VeExnv&nLm!(o|GLP6Pk|h?-$gSO90q*vbrLh`X7+oHHKrQR#3jx;gwO-a{jmBR?iodz{#ZF6o7U_Na$E z#Gpgiio1=#qh>&9_mVVi2A_+cfcNQ+tv7aL~`nuL+$UqW%701SEm1WmACCW`J4a!S(GKc9Hkk zA58wR&wBIVE*0*kHiNfwoG(d^ob($Kq`*J?N z0$!B2r4IZR0_#qxN8p`jGGpAGP>1{+{AtO=55mG6eaVaZC(Bw%xSjr0tU2bxzSYm# z=18eUmb$lt-nH}wx%SDtM2h$)r^%(m7S*Z=|7 z8K~<&!wi$VUIGK7PX+G6j%D1qU@`Lz=wQ9^R}tVlMVSLktS3;>WIUd!3s= z#JW+*fQqYp0WgIIrDM{#wrUQwJWtrT(nqUJ^OB^yqh00Ip76gL3>00zKQ`^@dVNp7 z$r2?8k*A-__U$qIO6U5crD>Whw3(2L;AMoa@qQxLcy5W2nUg=CSko##GQo&(Dyk#C zJbyAQ^@?RO%yV^K=UwL63zaLpeM@l&)yYXTzrBFVr~>z>=FObjYwvT%LJb}{d_J`D zK@rXh`O|^RWS+VVE*&P>scf5M`Ih}SFw&EMZ_y&MM$)d!NOjWR4h>JT^5sTCMtg|a z4H9#(CE{oK$-YeYunj^xTH8*=%$t-wltONo{Z< z*Tk+o)?55;n{4$FnRV9oMiSKZu3;(&{-j(a-R-R?j~==X!^g1h@hq`TDH^{#*3TXi zs0e!45#cFq%6?_w>%h^ip}kx^=v|7NAsb%7pd-km-P`e46cd4?6rFp5|UI6tdLD?nT#fOG2OuhhmRp9U9vT`9gMDESMJ{_?17QL7pLmw;?jbgbi%|-!8|#(}{4 zrM|49wd>@uZCNQEgXQwl^mmhmB+F^5{k07g1qp&)%aaoG;!`_lNtVX9ZPidRF*g5F zlk>)J>a^P7am#Y#uaHPE>#|m%B3CDP~{;t?}w6!^ys8H zN^5DHjwtGk1`iez*mP1~T^1+KwNY{j(3w<1Q&8Vl0POen!Ud`0pJEm$_be(8lpi%6SLgo+~ zb*j0H>fZe0Nn6pOhsW7sW_W^z@~2VVX2PS&{(@^m@Oa*rbvwCZ-ZN?Yut_PrJnub&fgOehBB{inc1&qw zA7guff~HJ>_By8<-BYX)o(9ffN7HwVf137R-&91pwFljoxbyqx0+^vKQFJ3h)V~4V C=7(Yc literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_06_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_06_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..46c86563ef313dd660c6ddfd15a9d7012960220a GIT binary patch literal 2120 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_07_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_07_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..7b5863c29c109c3374998345b891d230ba94e90d GIT binary patch literal 1641 zcmV-v2A27WP)C{196!hp7POck0oZ7-WNer}7w(q)FSuG-*PU zCQWGK32hHUOh}*!brYAqk%F z2||*Dlyo;UrCB~sk_MlpSwl*MWR^*SCwba+S*qSkn_4DGoS!Xa^i3K;XxDs#kZD3P z%cLw-zhs$j@J*%ia(1>b%hwAEL?$Gw?^-HX?+Slc`>99JLMTf~GEJtJGqSlYLw*>1 zVQEuXmVy=uTgdLQO=>=Dcv2uwLpk&dT}(*xvG`*PHizM}VgQQ$FQ?o1WGKuyS?MZ(cwDMI~D*++9in*s^}8hkZ7{VneodNF}#nzvhY~Sp+(xkzoKq9{>VB6c02~ zm-}59Mg;I_4puR1m(XC8omt52c-#j+6ra9HO&ixXHwqSe6Q1{Lu<{E0;O5&45dqed z#5Xc2;OX)!SbDEdfQ4t}N`Ar8y&3?EJ}i0z2@hDh83Gm|lx&}OR5k?bh#&zAz+NHm zU2p&afLu*p1cV(Xe)zDpUzz(pZ*cV2Oy&jjf`yykuzY#E%ccnfzz^)a`CO}zj`wVv zFa%)XO6%=yr2{U9%Yj|lw+03Gnna@JWTdTHPZYq9Hf#L`ZViUZ$E`u)&nW;4@3h|1 zM4EWdwBE`DCJeAZh?JaZc`LSnUYe7j50d?w(wZ><;0G|?kD&FNg9i`-8p*Xb=47Qq zg>1dvKFF1QDx^PKr<(D=v`7>d#dblooB-%=7lc)yMbZYNQ!g>1La5f)Rx>UkB>vfO&2LSPs%2FXnw*kWM2Wb6Bhl@OD17s5bRUg3u=<~HrS7@2d z0*>nXRw1MUaZ=Z}Xe%96hVCD(jvL)FqAJBI8ield2BOVDE@!N~LXK`3(RZ%I2%zSqr=nZe zhdQkuw6D#^BkZ?Qh2EPw*A#aUN(m9+vtXC_l)X`yyCCd+@YD*i)!LIZ7-q2 z2X|&%$EiM2h=)s~aaE%FXqfS`gohPy5 zx6bPuF3#DWok*oeix(G_H2g91HdpLmY-*BM^-(t&Bgez1pH!P&{ld0v4R#Nt&i(U{ zwLIa89gO`sr5^Gy`uP{XbhODerJ+5Xk=|NY13~`8p)rpL!d+1uQ&$`#1WV^v-uFN) zNqR9K9nc1mG0WA}-#>|1J(uZe^nxttGcVi~#k~<-Ems4z%xLn%p@1kF`FM6cmayEX33u!@&nG4d|NC4$@;LT@r z*Et98M;C_%ErX~F0cL*rv|D$X;_Nmo3Nr^3b0+K{NS%3gta>FT2kRe0<=2rX(foJAg*jp{)y~AD|TJ~cL?wH00000NkvXXu0mjfVS)Xp literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_08.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_08.png new file mode 100644 index 0000000000000000000000000000000000000000..5c327613fc3a7830c1bceab7f69263c5d343d896 GIT binary patch literal 996 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AM3=GVxJzX3_D(1Ysdp7T~gM>q% z^v8eeW5gP~mUca{GTvxomws@QXZ~~P+dmC|A3wIaZq8qpbuMchNQMs**Zh?||42#h z=%rWkyZtZPoS!G!A!;Lk`kiRf%{y^2hi9+dc0K8C&eod`m^U(QY&yI#Z`=0#+uxkl z%zpd!_BP4GPcqh6`#pRZQ9j2hIYQ#_0SUHa1{oXkENkXRt%>HlubwQ?0W=U5RvcFP z(B_)J)118VokjEQi$Ki>&q}Bzv4Ws`(%ml+6*|{i`&xfruwRoO!Ls^&q;vQ+&W*?V zjxo#MK9FF0Z8iVi{eL+ObC$o{7+3Q`Tiz@D{^m9-)oY>s2gL15Z`_yqcPshFGu{uk zHr{*lDEUWRSeOD;VZn!QTH*hc?i8|zU$fmmz3@YvNmy7y>c@tNMkIK!eB-;ys(&r- zlkR^0@`v-7fq*s){;1bUkBR?dKh1cZeorEXij&$CmrzHDqZP5v7j*t~eHeZlXrZouQ&Zu9$lHr8_%wNT*?ocHXamhJom@v z!_%a>o0Z;#FHm^H?oXpw{(Wu)vt`WeLrv0Cbj!D&y%m6w^zOPCfq9R>a0IPXCv1$oUOcb zQagKX_-Qd)sdJJ?T$9f#fV#`K zsuGG=RuF;^gmeSqgKzN+$kPNIvRZ{{+E))zpnSRD{lI`MltLQb8TkzjAjGQHQ>-Iw zB%}%oJvA;@XCcYe`3?UF0|e2n(D~w8+a6ts{D@Z{a{pF!WR2yT4lMPM>e{3{K?p(+ zvJnt&+c@Cb(9W%_P4j?hSkBh@4m3AaW{Z1qvG^BW>`#ncWbZOyP-bKr9^j6gU; z;IPz3vroN-Ykr#92hMAQ>&EKH48}FT%XGvK?8-l0RJF#s{Lu2_yNcCofJ|YipBAu1 zJid2rUH{bEnYF*VpZ``UPB<62;NZrhtHD(TYj*w3`^$7sfBCKR4!ky-yjK3*bK^k7 z*ZFIurB;{W2^+$phoa)vajEZ{Jr=%A{@FP1t_`mvPLsE^KV>`H{cXdY1(g$*E25Yo z^xFOS>yOE6o?iO|qIIr+vj1el0*rGyQGNuCs&8WUYE3X z-{LtzQH3eB*wgjrMAmoxXWFJJ-~YtlS!z(>RPNq(r0XZkmrCcPrC%hRetL!-eYem5 z{_`nX?**St3aabbthN8gzKNmr`dgn&3er5d`Ip-MRSYI?=3G_6nr&v)K986CV7N^3 zzDK)ku<)7}YuB%6=9;_t)9b&dg?>)Sx^kZH$f=bwfBD_{UMj3*STm>CZr*9OoNN=UcFEqg8eL75QsoD>hp$vR?C6<<`vuMNR5o4K`It wJLtb=%${-ZF7q`59GM+8sbMP)u&B5oKl@oycz8idGpH=`boFyt=akR{0BYqG5&!@I literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_09_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixeldata_0_09_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..b82ae607887c70fbf421926e0b9bffeb39bcd5e4 GIT binary patch literal 672 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 VS1?PHGhP4y002ovPDHLkV1giCajXCU literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixie_04.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixie_04.png new file mode 100644 index 0000000000000000000000000000000000000000..80e08982c2be5e074cc1035e59a2fc68f2ff712a GIT binary patch literal 320 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMKn}a7i(^Q|oVT|Ru4^(7aJYE! z|NrNOpL+ryC$p_}uuVVOHD&fT6Ga!04npAdlWWWtJv|+Jo}CJLXYXGaw9fU}73n3_ zAGA8wuJ+To!Fzh6pLUp}LE*Xi`&B1z%6D}!Yz`}px|+#aV3YjqouvPVdquWYp}g9r zkBwy9*061qI+7*8-F``{eU04SS8Q8n6-qKyKX8t4UfUd1e`f8jB(|*$i#NpI)!81v zZI=8~_vG*FgKpNjwhj3w<*Tk;{qybigZ58ywS=4vl)tf)JM^#h&5ieEfZ@Zy;OXk; Jvd$@?2>^KZYiy8 z!j_&X7pz3?HZ5>|{^G{c?cW5e81mrd!xJbU~`@22!q)3>N7EZV1#z28)N^~XexSyTFbo_pDyy>6nYoVlW- z;HllcFEchxd(q0rC4TnGf?emP<{t=7-uL+A;*u>Pfy?wyZW8O7!?#M~^46lf$2;^E zU5J}1_Dt&7?SOa5%NHgtS$C)Hsl@HOrYFLkFL+zdjE}yZvbO0|a_{;>MjOwre(YAh mZ%XK)&z)KI`yozb_+Wi+nvj(6&6m>0K_Z^6elF{r5}E*~#)5PJ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixie_05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixie_05.png new file mode 100644 index 0000000000000000000000000000000000000000..cc8211b6a13efb52cb0ee635fb0486e0fb347c03 GIT binary patch literal 226 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMKx(C@i(^Q|oVPbFayA(7xL$nq z&-%D1&z_*p=R5+ZRPE13fz*-=J_MKkVw`>VV5I5ZFr#axwc9t%Hr*3evH8V{i>p}~ z7z~1ceU6q+t8@GG%3xjuZ<6fOMPKKI>1HwFw#b&>Y9=46afZTSkQz@{KbLh*2~7Yx Cp*4&E literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixie_05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixie_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..000e27c302f1d5b0f9e5095f5d922d3d3e896ccb GIT binary patch literal 144 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp59#cG+fn pHMrFNZThMc&1pIUj0_BM51G28Swjx473v1*@pScbS?83{1OQ@BF&6*; literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixie_06.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixie_06.png new file mode 100644 index 0000000000000000000000000000000000000000..a7a58c8ebbcf5b5164a9e3e16f5c2d10bfea23ba GIT binary patch literal 1439 zcmZvcYc!O30LEvtNkz%-pkzA=wKHS2?5uQgE4P_*Fq(JxV~j1YT%wY}YN@4&O-gf7 zqL5neyx!ej1~W9r{W3#t85X;8FKQK)+e~eJ?d*r=Ip_I(e$Fr5%fnS?!?q0s0zt>! z?T9yl@CD^lv_1ktfPQxgfv`5j{fHwo{`Skfq39uB?Jo`7{u0yt0Q*5Q}1nbr} zy-|>0%eh=#=ht44$wgf!tetvb&fPVJe!Z%&zsxvD~DV-;yKRifu8IEG2^)Us)(b+fX@Od6EU2MeGw< zWmEH^<wn!H_v_ijy{ioq(T0;iEK;z=LIGN#7&V6Pod%Fh!3X;lU*^RF6;K zBmj~De}>;vba&%ghQBw3ZY|2@74IwcmOa5Tf{Vx zB8o^XaDdH_`ymK)g9`}ny<$>T@kKU0Tm6PCOq`h#2~mk0jZsvH~2j{aVP_FGsCp zUFjOr{>6E?+eodWX3gN4)&zGWMWK2wm(!M!x@5K_#dB=5YbO zr|U1@&x7y*n|;4x``vDbb#q$skEW@fy&I1iK3?U_QmAw2!OJSAWmQ;MZ=#GWpONlP zNI_M%SI6J{9g(%{ujxr&IQwr_uk>O=0BbJV;1uYfr|iX3AD2so3|nEJY@*$l^l3ck1C!YWGDwnTprro+an>WlVBY?b?r;h zpWXhx9l;%TOpRE>3hmO-b=Q15(C2C5eQmd5Cru-UiC+5W?5EgU1nO+v)05FNcON>n z9u_#UV5_Ij0VZ&_2OSEq<(ZAk9Ryd&iNFcFiyN-qo7lkCkFU?Ni~4Y&C#|5ljJqUxM`~3;@iZ+iWW6+-U;K;~Q!9F;6Idr$yF#&;q0R4Qa*N{)X;($a z$HVp${q(2)f(tP%_>s*hpIu^{+JlvA*1Q;cN{j(>FAyntuwj9tp5w9C8>bGABgjR~ znqSE^s6pI79kCcSNEKWnUvKDY;5T0AKW|jC(@T&^PDW3}4Yd#-peM{#49H-!&v;rv zTd4h30X&&uGMk>a7~P~wY-o9(b6wQ7Kq;!MBcHWabP}DFhc&g?59KS|@EX_E^`6St>XCLfmoKh|ZlK0kC@#zS-u}_b1z+Xs z`JSE20A0Ft z{cqZ6-5zyD$&F7ngsvD)i1_xBwoRJ}okl*4;sG4@jvglTa&Z#hzW34;upCF|=i#Jy z04JsZ7}f{{+MR@K$Vs!4KQ`o~(FuhOXmt{9V}qu-2ofAa#p3styPN_cQsIarKCB`6 zO)_VM;COK)qAB%#s&uW|FTU`Kui{H&BPl29Bw+(U>MTzuk~a8C+6I8FK5kCPHkKC* z%(F>~XafLxGo;%Y<5Mu4Rxw2E-Bu#q&h&8!9oCCv1Yi`jLo8j3#{#kygrLwvg!Y}9?n%AUMQt7d2V?Y=$SE#W03p6r-?q>OZyI=LzT~}?tT(8ip zJ{}_F&m_t)sN(Tg#69F+Ng@tPqKk(z5C0b-`|-9wMbruAh;%U|m!gNSsU$ zy^6iy;~Ni=oYoLy;NvbW^T=KoMi2aEIAiwBMh!Bx#Ry>6v(=M9Eev^?UYUTbKwoV1 z5P;ELhCOpF(L?}nbevvlj4}iJzxmEan}Ha+%I6zhx^(H%rHj9Q0s6PmFDvA)dH?_b M07*qoM6N<$g30%}fB*mh literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixie_07.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixie_07.png new file mode 100644 index 0000000000000000000000000000000000000000..c33941619573a996040f94c5d5477b2bdd818693 GIT binary patch literal 402 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMKu)Bmi(^Q|oVRz*W*tfpaJabf z%inm*Sd&Rkn?EqCUjH_y_4PxmC*pG%L0a&G2YYjGUlpFSJJ$BV&fHCl4_m+cIBc$RD1s=P2m(LG+p_h~?`G>mV v6MlqB>~Sl&|JV26qF475@P`9f_QMAK^L|oM)Barf4&r;d`njxgN@xNADz=|8 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixie_07_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_pixie_07_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..fb526504e98a9d8053c89a5f1fa3a501e5d3193d GIT binary patch literal 285 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5*Ua2Wsi5Gwd$(+`zzr4|o`{#8l`|F?K7 zBBW*?ckF9fMEdi%lEe-}fvKcjYt<8 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_polar_curve_01_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_polar_curve_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..9a245d2d1337eed13ddb6a21624cd948e3b06491 GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5a4Fuaj6NvhPvFIn%AX*J`Foox5SbGTdMD)vRA0hbNYSi~@uD Z&rIjPF|HAMtg{Ei_jL7hS?83{1OQqrEUf?l literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_rect_05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_rect_05.png new file mode 100644 index 0000000000000000000000000000000000000000..ed914ae20dcde631255c8de5388f767fb95e07f9 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sZ$#WAE}&f5zIIT;u@m<{jN zXUICqE1mqmz=R2;3v?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSp?wgc&+E;ulODQPDolPz1pOpw8zu6{1-oD!M< DeBT|6 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_rect_07_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_rect_07_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..681c070f513e6bfe0bfc53a2e48742491b8b6868 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5v?ZkQpHGz{8&9Bir4g RE2|%axSp0Q^h<^O_d%FcBmE*JG#Hs`eH@rTMtZvXxvX0me_N&C}XG`Rw&YhUe57G<*Kd!UM%woA4-29gl#PxLb Kb6Mw<&;$T9*ds~+ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_shapefile_4_00.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_shapefile_4_00.png new file mode 100644 index 0000000000000000000000000000000000000000..346a7f48779124001b47dc146e931c037bee7a85 GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMKx&ewi(^Q|oVPa(xfm2U7#x28 zU!1F*Q9S8M-X%|V)`MWBAmv1WgjH|y7&f#qI5b{v%wIEaQ@Q&rDX2EKljbLds~!YT fc4H%8(2P{(h8 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_shapefile_4_00_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_shapefile_4_00_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..5198160962a7b83d11766f10d1250d59983d9f57 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5U^ta) zWo(N6q~GFkDpMmkHwyX8R?^Wl<2?BNR^$JAV?mJC19s*%wcek=D@GZCW!q2|GH_Qf1*Oi@Lz?|=k7UHx3v IIVCg!00yBR=l}o! literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_shapefile_4_01_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_shapefile_4_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..b2440fd9a63240fd5e42db5ac6b5a7e855894ae8 GIT binary patch literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5t+~FC!`ox_l#7dI9x}|kYZv}~ fngt_B!H>P-PYwADz8)@G0OESO`njxgN@xNAM_4cc literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_shapefile_4_02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_shapefile_4_02.png new file mode 100644 index 0000000000000000000000000000000000000000..347a38d1d2c8ddc1b44df10f0cf1e7334b71a5a8 GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMKx&ewi(^Q|oVVu<`3@LxFgyJC zzxeLLtg9|BXDRNAHarx<2vSQqC|Gi@TJQVbGqRT|S1q}JqkL)G(fvPXMBVyhh-UVj Zr%d^$xR_>Zq?m$aJYD@<);T3K0RWcrDP$>*G(SV}YE9GDdDPBY7uoTBnFyp~aI Wm$JZxBNNI&&hd2hb6Mw<&;$TEZbJkVh?W#bG@qy9RT z&VCTRxOK&Smgu=wCQ+3)g1(mY+vVSw;_{*ZgGK`EE=8?^97fI}5&Vn6sTfdNb#~+}Ox{K0VPf;nvj(t74Zw xR&K7nJTp~T=G&DGw>EA%^R>{-5hYmNY8ZWdB3K$NE!Tp?Jzf1=);T3K0RWt#wm|>@ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_silo_41_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_silo_41_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..c02428f4659b802a4542d918f3da121272c52c61 GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5BS^IE{iY~xLq-l#KbyE)Wyn{MhqV83yL_nlbFfBk*m z@7eB=E_VW%3IQ8?qz^_#<+nVXy*|NoscCY^{`pR)tekr?3x9J)Uy!);rnPUO@sSy6 z-xnrlT#2gURPQ*G64)JeZDL@l^=|h~iaQ|InC46&t;ucLK6VL@^-TT literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_simplify_mixed02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_simplify_mixed02.png new file mode 100644 index 0000000000000000000000000000000000000000..33134ca9178704a0aa5429f3bd0ac68e11c38d5a GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&r&k#WAE}&f9a0ybKH+%nQEj ruQhz9rlPgTe~DWM4f<#-mO literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_simplify_mixed02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_simplify_mixed02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..112492b5f5ce6594ea2d46233a5daccd3b511198 GIT binary patch literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5{YI9^6ME9CKlbRj^)q-|%Wf8YErDXjffjcu_wP{!wo zqtzn?TfNXVA<;}W>6B=R!ySfC#Euy}dj7l6 zN_&%!^aq_}3B$I>C1EbzQNOR)1YPerx>8B;BCp*Je$3EDO|GH?dACZ*4)I?q-o#h5M1Iw^z;mpY`O_ zRx2;@?C6Yjo0E40tbFlELDtZm;ebVT*pYdxn*?y}vd$@?2>^{wq0#^V literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_sph_2d_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_sph_2d_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..bdb1f74cef4aad50788d5f73798164b20b3ddc43 GIT binary patch literal 458 zcmV;*0X6=KP)~?0v(7_$Jp$lMj94 z{vJz`Mu1%SiPj`b5;k8TXA&JZS&{@$B-sVaf!Jx1U^`$*21P*b!ug2h_(aMiz1+AX zUB)QYB-!l&M*%qXo_Mt?OA?E{(J&0dFpR%}IL^(|X5y@uL4K_i7fLKi@}Nmjrb#|F zN|ZR-5Tw8A(+;mDDJ#;CNTDcaO$8mOS&~}hBnd;v6S2>cf{s=jf zc)yENiUV&k6p6o_FV1izuf8Vn3Rlmh>liseu8F@?WgYM2oIQW4NSTyYcn$I_fn1ZE z*t>El5|7x0JxzjuCh@_D17=~dOhGD3@1Gj~3we~=89smFU07*qoM6N<$f|lmU A761SM literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_subset_02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_subset_02.png new file mode 100644 index 0000000000000000000000000000000000000000..e6136a5263c28d06a5b9d9d2431cf3883273a03a GIT binary patch literal 363 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK#q~8i(^Q|oVQmF@-iFpuxwQL z`+d%p4eKw`V46y!QPi`;-n-f!9mKYoewB>1F?9qpmru zS^TLyBa(UJx>ffVrt%)K(ynU9)n$rQ-~WF2eNu@elS-L>>YaD0Z(n?yq>`tfdF$=cwHe0=d#Wzp$P!v;AS`g literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_subset_03.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_subset_03.png new file mode 100644 index 0000000000000000000000000000000000000000..a647573671bca06a34ebfeced1764ef2c350f967 GIT binary patch literal 233 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMKx%`hi(^Q|oVQmRIU5WFSPmxq zx6S5dZ_+yxA~5au9A=P8vOxaM{dEprTdsZm%ItMSs^e?@S^v|U*pgUP-d_Mxq9R~Q sl?6mdKI;Vst0Prn3ga7~l literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_subset_03_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_subset_03_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..1c1a702c98501be7fb2f897790a9f5c6efaac4d0 GIT binary patch literal 150 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp56MTu^E5VW6#qBX<}gbbM?lx8uN{t^L#tr)H*%c(f(dJHQGoi u*y+h0t#4g!tG;!)Kl?s$#}uF)`@b_p&*SX8E}eG}q|?*Y&t;ucLK6TI*fxa# literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_tecplot_04.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_tecplot_04.png new file mode 100644 index 0000000000000000000000000000000000000000..a76a477832f8f1d62fcdc68b2e34bd54ae5bdea1 GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sBu#WAE}&f5zIc^M2imDusL-L(^>jC8O=&-&x+sE@0!SrgKGK#FzOIYy?0=u%6NQcqVumvv4FO#lc< B9WMX? literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_tecplot_04_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_tecplot_04_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..342b1dd69a6f0725902683fda9b3103ec48b138f GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5v?ZkQpHGz{8&9Bir4g RE2|%axSp;8B1*zCg3_xH{EFZe1n%x|VF|Gu4?;@6h)XWV}39Q@EV<>0BV zj%$l|=pDTFOl-|r-^gpxZIZSt47;rNW_4R$SRsB*bLyd6;uo~5|11cKSbmi+`(r|^ z^%~bhRY^MgvJ$txxczJLUfXi#sFj-&^XGkspV}UtJi$|7=Pnle)M&x^;6l8 z=g%w1@;oKS-GHRI0W4-nyHa z8JeO4Th^HE_ivbe?3mPa5d+GJq6_vnP=o?UQRtRWAd@THNSVHlncvUo20!br7B&T;orBk)UDQg zO}+&F5AK${|Nj6dgTZ^*hJ8;@L~osWzEH56sm6`#_t#ao_id_KXZ6xH|L-=A24S7J x^!a5`=gXw`zn#??X!rl@?XDg>B^da0Se*Tz-Fp6Oj|D;D;pyt=@#iU9xs literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_transparency_03.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_transparency_03.png new file mode 100644 index 0000000000000000000000000000000000000000..4fffc294f46d8f66bd10678fa579f82dc3332ab0 GIT binary patch literal 272 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK+Je) zwKa8jmQU~YcfD5<9=f*g>}{`iXLd=|rhRO^5%p!)^sIMk$F6;ly!iRDMXu)goq@&D yTUXcZ{N%=eR`c)c0%PN~a}P<)62s;$naiw4){Ail&Xr{XNqf5bxvX3NZkcv5P&o1OWlpxZ2@w>3X z0uE*cj&+$?0c#F2l+JBd^pI#uGcqsaN6Of)V%tcp#0`Rm-a^<_sqT#i(h|KDil?ie%Q~loCIAQhM2!Fd literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_transparency_05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_transparency_05.png new file mode 100644 index 0000000000000000000000000000000000000000..dc72e7d317902f57ade5d51da2630c0cc2ab31bd GIT binary patch literal 865 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AM3=GT~o-U3d6?5L+xt+JzfrlYr z^R55?pWb9wSaMs1^_8OGoX->7vO)~kz1`U$#0b(x030};`F9ZTi7 z#&(@^+Dicjh4}7kLSj+%!g^0PtLnL(mtUiJiK%SvTR*0Qj})U{&R;s`H=~T|+Vt3@ zmlu}3?eqJ;`P*Aw|E<%uOx))pxoIBT{y6T`9aG=!J0-E~+i%-PA6|R^tk6|z6XQ(Y z>nEwU!(l_4#H3fx|D=D=U8Gt%n>!`UQU;IVg!k$#4?B!Q< z)(EcI_NV4K*XJjxJ7gwoTW#_qGxq0dX%orFK&1%5jqh3Xccz_>ZPQJvim^-6TCh9i>h$;w)~%UdnaGw zw{+DHX^<<;e$PgpSbqUGu3I1liX&Oa(DCoVC9JN zu=iC_|1K?b+fep~tJ-IQX_KjoPrsGhk!?3(3w?JP21ae+bH89}q@A>8P1)~{m(zEz z5MHAn=f3!Q(|(T)W~OiQW-pfNzO?f2`q$U~noV+TGPV0*zh-CVN5$Fi_&4RPI^7pN zG4;fx$kV4U^SimM@jA4&%jAdebECT=FC*{U^4%}6o-bi_WNp?4xnrx2-aT18k?pft z@$L6tm$JB4h55vv`H;2w@-+XlqIoHM`7c(wZM{4t@_fDhyUo>gj3H~;{@WxUi!68* zu~%rd&-t$DN3Z7TueU$`=d8`$t6GPjKfCg3R%p7%O?}I&#SUMaP1{zTKK8Tz>gf*` zF0c05{IJ|R{J)Xxw;;=i@4^oXs$Z_ilic_4$BwKG%eLKnthwfS*15L+O|KdzhVWby zT4lMpFT&jAsL`JDtIUr4_;2^DK2CS@v$&(@Zz;ZBnXa{dGhevw!vEf@vZmMTqGulJ<1lFFx-3_y38t7^fDSc=M{yYm5CidIlKJm-sU!;g4Ikx5d95 zQb2`^RPUTJs)}&#o;B^yo+UruFoj8OQl8iO{BwPXVDs|2`S+8O zcfR-`x;x8AIqu)J+3_n>h322Ra{J7Du%h2`oEBb-UWo4f_~G%|{UKYQJc)m2|Lczj zQ%)b>xwai4lOwr`cl>|;^S~xvLG6v4e*1aXJq++&=3n>s$M?t04N@`YySbgW8|zu0 z*!pDt49(?Jq73AxoZjW|`^~|_7NL`8OGeuLeNgq`Xn%7f2-x;kUteopAu>7hr2O^b zGfL(6|0RGxM_J{!r$;?sMQ{3e`hNWR{68rmQJu-P8fCTIaz~#;ed_%A_Um;X5P0)3 z&;HBpYm+ni>KL;BeAsF?+vxg)UbQj@#`=T3|HVI>aNKYV%yv~!oErb@+THZ+g(B)9 z8(cILo&G*%JO1{1xxj|zrekvxZto6fmzZCxwrHNxe#MV3FKLP~{;LmJ%WcSLyxuBT f7bOWu_%Sf_>2<#IzF)o=lz2Q{{an^LB{Ts5tUnp( literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_transparency_10.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_transparency_10.png new file mode 100644 index 0000000000000000000000000000000000000000..e2260854444906899a00c96eb234d1248e64ae04 GIT binary patch literal 184 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sx;#WAE}&fD_`IT;K%SR60c zU;MS9NkNFoc>dpet{{au7VFu0Ql3BO263nirgQn7WMm4JKPm+>*wfX|Wt~$(695S@ B8~gwO literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_transparency_10_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_transparency_10_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..b5371ce1edabe1d693563cf2523c995161e9889f GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5v?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpv?ZkQpHGz{8&9Bir4g RE2|%axSpf wuIpF1h4|8*BMw6UE|x2-G@bxb4+c437_Qu8aK7{Ji!zAs>FVdQ&MBb@0Gyv6G5`Po literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_volume_20.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_volume_20.png new file mode 100644 index 0000000000000000000000000000000000000000..8ad08a7fd9e68dcc32a4d41c1898af5b5253b37d GIT binary patch literal 1376 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AM3=FL5o-U3d6?5Lsy;yeJfrB;E z|NsB#m)lixbG$#rao%7(Yx8_f0!zi#E@5MkCR`xjE{$E_xc+-q`=n{HOz+p!T?@5N z-p9FjTY`4tx|45uSL+?K`D`KcR<_0RnZXCch&wale=Lq}J9Oxd)AeoProEM}wMp7h z{xgD)EZ_ciY0plU>W`eudkp#=V&}1GOB8ope1EdCH1Yc5&vvO1H*P$=;N+JgCR%2? z=D_9EUwdMEG=43~*G;^>=%l4+?6DhD9gO%VOcy9q?D%u|+s$L=;_EMUcg{TI7hnC# zdyeO^b8%(=xYu(Y@{23lr)}&lUiPl2d&e)8^EXy%>pneoW>d@D9jB^R?c*?C7M~Cq zo+hT_6IYWPKHo+1x9-0h*6>8fu1#J$xSS`K=7-N(W3;Y`DKuqjq3F^159jaMtF>@b zfvMi=8LMX$u&0U^iyoPw6EpMXf;CO+oSft)hF%EeVct~m_3Ul-FPl~|^~v1}4T}sH z+%vIt^?aGrhpsZWZ}QsB#qrN0EHhkC=ER|^#=ke6+WpBtAv~-yobip!zlB-dZ%-Y% zsy2JmtQ|%E$=+eY;s0`g>g3jMlG^#n@2P8;a`-zNph=AVzjZ=nKLtd-jj>e!5*%h7 zes9J8GiBLzr)K@VI)kBRcIzo2hiM0z*R<8X@cMqLNH*$j>dq#eM)yeG_G#(zL6J-+ zgeoRo-M}yVGCs1;dG&rB_X(;WbXGsS@aeU)mN!Erlm4a`hig~pFs5)Scs~dgbIukA z3rhoqZNb7hC$ny}+ud2Rsiy6kZ_3XGokm}f;ocC#Z%hLkZo9)bwUTG;?GvAX23l|W z#jD%j^DZb-ue|;bze?D#m4V;1R)@-0sTQ}JmF)g#KH=$gmA|Q$d{bg0W80>s%iYyJ z{dJ!C^ryGw*;ilvpS1eB#><$iq9tv2Rn+f4|JPXPsTX#A<6l@iU()dRf$c z)2nZZ0Z(MlZ$6Y)bl9vXyQ6LsQ~U9SYr34Zjh^LA6|JhDeX{FqYjWh(Uj`QU!lsJW z=1afb{OI-r-&E08hg$+}Z%I6s`&LPNDeJ5grzFMSr-({MS?Y(+3JK!_2AFoY-5>s` zstuq}*)#pR$Mj6)da>6jp}`t936-O$(XEvWbN) z^o ze^-P$z+=-pyDi|D$k>#3uN`WU!l_-~FDwGNWWlLjrI5Io0J2A5S6JAI3$L`aSyDJ( zZ0h1!+hMl^q^!W{S}nvzphf3S?0O5*EpmA@SqNGZqdVg3~6P+;UkgKUuQV z$97hc$h1kv{}kJZCtGHonVwn}8xbUyeZpw7_OVTqB0Q$u^i0gO)KNQqCM3C2a*f7m zAAxBz53JgBCg(&%)*tWFM%C&%=6{~1&b+yAC8WF mZHZqh&-NEG!%DjbyFaYYCE6EBMAr#|#5`U7T-G@yGywoXK6OL@ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_volume_20_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_volume_20_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..6aa3291420153a2c21e8287d38e4bd3669812ae7 GIT binary patch literal 859 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 bghb&#a5Sw2s{)R(00000NkvXXu0mjfWy=A4 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_volume_24_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_volume_24_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..0792e1d2aed67fa70861b7dfca8c168292ea0842 GIT binary patch literal 1079 zcmV-71jze|P)TyZ5&@zi;lIosYkJ&pr3<9Dv>IMm~nP zh|nW-vo1$jMo1xZ<0c}a$MwQdXw~q2fuoJ_wcYo}LifkG}$FTA9i|Moo@cYsLX$oMaUn((xx1zpSwF8rBslaEh*+y^SUL#|>p?Fl-|v24cOa zTmSncytpMz`DAh@N%lxJQ5lFhc2JryR_h+RzHAms8VNdPLbUq(`DoFv!w#dPKM&h!O0fN1!BHjKKGw z^oTi=K?XxGf0_0%$mS<{1j>!f2Zv^f-&GND`GB|*_!WZJugG);S^Gwh^ak`<{FnM{ zH3z-`C+b}8VB@W0FFOF3G_Rvc=J%cLenr2!yu&mXVk;Y0Y9v3;TA{0Bx>N>_7$!3Y z<$qT_q%t1+FIqDzEmZG#?bny(52nshl(E?;F?9XXN`cffow5s4V_Hs*I2#XctF*}0 zy};sDU$lvY-(O!hqNxnh0-&{8m=rrj3wZV9h*k4rccY0A|YDBNawdWXfRX0ol00!(cN{7|Ff&&%0X(DJOIGpE65brAJqJ``}7!Mp4684?A?Z|4;seXV`0dr*@3Ra(ZGbhS`gmAgRHOdzwJ;w)HSvtU!R?Vp=H94oUL^HSkgTCi{e)*j9`SmM|;cO+~J@Ggk zj=+kF*ong}qJ7}A{{=3|{b3yr_op(L(R7uFWi8AV9_D3d{iGF5`tWnF?~fZj$D&S6hFS)KiH0a? zWS#rTg0s+TT}yK2VX$BfKV*=egAOgO2eS`=)=r>kL@FKm6}t`ONVLa2_PlrNY2uzK zcMy{Eq2J`_6Put1u+e(UPLEtD^Xr-JOHaV;j@#}Uw3@cie5ZZIIEgwsm{&I?FpHW} z?}uJtu9{-L-`!wV!N{Fxe3c3}00G?vyUQ*&q{k7E^F@@k^9v`RdJxW)xDc-@LD_1C#0)22^ zjNYx71qilCEOtPJG@&Pa%W6vV0ijUL2m=N-cs-+}#|?(TUEvX!XM^~eDZL_ggw8*! zo^&fqpYh|zqcVx53;soQ#+-SLeL5K%Z4_*?h5`G{p3l3}%T)Y_+tN z1vL*AH^h-AQWD2)fdz&VPsMiYLlj#`jau$UZfoKh2-17Tay5*i2&&s)-t-t&URI(@ z9rn%=QOC=gBmo$59GcYz9!Oiu^(fgKBSTzDSg{q;)ruF4rPBElhut;QVLLM9+5=gZ zUqJ4ze7xVCb|dhr&@3n#zE~JB+|c%zqdv;M(cWmXLK zuJ-3K1Y8t78z&|T*7!tOXT`)qsi>)=m^5TEbUJ~a{M=J0O11s4amn;7^= z&YRzJG-q99=i}NrY(~g3)h$27cO{5C;9@GAGwfm)ZY;zWbfk8i);va@hijr>VBlL?V>tXG?$eJqk30}rHeU!ov784>E zK%MXGD&(SO(%VQ(hyjF~jbA6E?4qmIs~5@vkG}%oj%i<{ulgfzB*D3O>l(%9Jw>cP OJ`}7-P6WCo<=B7Ll16L* literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_volume_33_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_volume_33_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..95326cfed2d5786a81c2b93cf3e24a6715d45d2b GIT binary patch literal 656 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 I>zopr0J!fUJpcdz literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_vtk_34a_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_vtk_34a_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..9ba09a586c33fe433e0c409046a13370dc6ae4d4 GIT binary patch literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5(kAmi)@UQrX5VTyLRZ`tJW8LHwQ3+ br2l+mgTe~DWM4fQnV}< literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_vtk_36.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_vtk_36.png new file mode 100644 index 0000000000000000000000000000000000000000..159d9a4dd8526164f865887a3a6d341ea8eedbd4 GIT binary patch literal 188 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&si(#WAE}&f5zIc^Mp7SR8)o z|1x5;~}c+0LG4Xz3i+_#npRj%KCKZdF1(1#1hN_{5DeAfMbX4lo}lQ&IKIca&f=zLCf gwFSsP5NNo+gCU<)fLVCC>kSa!)78&qol`;+018SlH~;_u literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_xdmf_6_00.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_xdmf_6_00.png new file mode 100644 index 0000000000000000000000000000000000000000..6a52987b871b5d7ace997e97458906f63a4015ef GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sZ$#WAE}&f5zIIT;u@m<{jN zXUICS%Afqdz=R2;3@2#dw(QK#J{rEb9H$Zj5)I6}UC$Yra%MI*fmC|B`njxgN@xNA DcEB3m literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_xdmf_6_00_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_xdmf_6_00_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..b482286a70de9cf666b06ffac31f6d12d3214ae4 GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5n;jLq~eV`5-%SX*}D*X7mEo?B18)1KD5`qh)@P;Zba3=H*~7$Z5^ U?#A>S)&g-oUHx3vIVCg!0L8B;TmS$7 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_xdmf_6_01.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_xdmf_6_01.png new file mode 100644 index 0000000000000000000000000000000000000000..6a52987b871b5d7ace997e97458906f63a4015ef GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sZ$#WAE}&f5zIIT;u@m<{jN zXUICS%Afqdz=R2;3@2#dw(QK#J{rEb9H$Zj5)I6}UC$Yra%MI*fmC|B`njxgN@xNA DcEB3m literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_xdmf_6_01_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_xdmf_6_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..b482286a70de9cf666b06ffac31f6d12d3214ae4 GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5n;jLq~eV`5-%SX*}D*X7mEo?B18)1KD5`qh)@P;Zba3=H*~7$Z5^ U?#A>S)&g-oUHx3vIVCg!0L8B;TmS$7 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_xdmf_6_02.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_xdmf_6_02.png new file mode 100644 index 0000000000000000000000000000000000000000..20e4d21c684d90400849c08a01492f8aca4bdc45 GIT binary patch literal 182 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sZ$#WAE}&fD`F1sM!Dm@Vt^iUTxWV4=?VPsPK7nKb%*wfX|Wt~$(69C%7 B9KQen literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_xdmf_6_02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_xdmf_6_02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..ac3b0d831a27f31eab7cd3948047e600f281ffaa GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_xdmf_7_02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_xdmf_7_02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_xdmf_7_03.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_xdmf_7_03.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0675158a6cb910218d1eee7c0cfd06844de73f GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMK&sKx#WAE}&f9YbIT;K%SRCK( ze{sV}!O@ePCkZb%;&@8R_Zj=d#Wz Gp$PzNo*w4_ literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_xdmf_7_03_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/d_xdmf_7_03_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..29b8b72052e205793fd28f9614ad8e9b41f28933 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5zopr0HKvD-v9sr literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ANALYZE.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ANALYZE.html new file mode 100644 index 000000000..e0cf3257f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ANALYZE.html @@ -0,0 +1,84 @@ + +Results for databases/ANALYZE.py + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ANALYZE000.000.00
    ANALYZE010.000.00
    ANALYZE020.000.00
    ANALYZE030.000.00
    ANALYZE040.000.00
    ANALYZE050.000.00
    ANALYZE060.000.00
    ANALYZE070.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ANALYZE_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ANALYZE_py.html new file mode 100644 index 000000000..267a127cc --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ANALYZE_py.html @@ -0,0 +1,113 @@ +databases/ANALYZE.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ANALYZE.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, single domain
    +#              plots     - Pseudocolor, Contour
    +#              operators - Slice
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Dec 5 09:50:05 PDT 2003
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Mar 31 09:13:47 PDT 2004
    +#    Added code to clear the engine cache to reduce memory usage.
    +#
    +#    Brad Whitlock, Wed Mar 9 09:12:05 PDT 2005
    +#    Updated so it does not use removed, deprecated functions.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Set up the window background color
    +a = GetAnnotationAttributes()
    +a.backgroundMode = a.Solid
    +a.backgroundColor = (0, 0, 0, 255)
    +a.foregroundColor = (255, 255, 255, 255)
    +SetAnnotationAttributes(a)
    +
    +# Create a plot using the large database
    +dbs = (data_path("ANALYZE_test_data/s01_anatomy_stripped.hdr"),
    +       data_path("ANALYZE_test_data/s01_epi_r01.visit"))
    +OpenDatabase(dbs[0])
    +AddPlot("Contour", "Variable")
    +c = ContourAttributes()
    +c.contourMethod = c.Value
    +c.contourValue = (40)
    +c.colorType = c.ColorBySingleColor
    +c.singleColor = (255,240,220,255)
    +SetPlotOptions(c)
    +DrawPlots()
    +
    +# Set the view
    +v = View3DAttributes()
    +v.viewNormal = (0, 0, -1)
    +v.focus = (0, 0, 0)
    +v.viewUp = (0, -1, 0)
    +v.viewAngle = 30
    +v.parallelScale = 399.965
    +v.nearPlane = -799.93
    +v.farPlane = 799.93
    +v.imagePan = (0, 0)
    +v.imageZoom = 2.26061
    +v.perspective = 1
    +v.eyeAngle = 2
    +SetView3D(v)
    +
    +Test("ANALYZE00")
    +
    +# Look at it from another view
    +v.viewNormal = (1, 0, 0)
    +SetView3D(v)
    +Test("ANALYZE01")
    +
    +# Look at it from the top
    +v.viewNormal = (0, -1, 0)
    +v.viewUp = (-1, 0, 0)
    +SetView3D(v)
    +Test("ANALYZE02")
    +
    +# Look at a new database
    +ResetView()
    +DeleteAllPlots()
    +CloseDatabase(dbs[0])
    +ClearCache("localhost")
    +
    +OpenDatabase(dbs[1])
    +AddPlot("Pseudocolor", "Variable")
    +p = PseudocolorAttributes()
    +p.minFlag = 1
    +p.min = 0
    +p.maxFlag = 1
    +p.max = 1300
    +p.colorTableName = "gray"
    +p.scaling = p.Skew
    +p.skewFactor = 0.5
    +SetPlotOptions(p)
    +
    +# Slice it.
    +AddOperator("Slice")
    +s = SliceAttributes()
    +s.originType = s.Point
    +s.originPoint = (0, 0, 0)
    +s.normal = (0, -1, 0)
    +s.upAxis = (0, 0, 1)
    +s.project2d = 1
    +s.axisType = s.ZAxis
    +SetOperatorOptions(s)
    +DrawPlots()
    +
    +# Add a time slider
    +slider = CreateAnnotationObject("TimeSlider")
    +slider.text = ""
    +slider.height = 0.1
    +
    +# Animate through the rest of the frames
    +testnum = 3
    +for i in range(TimeSliderGetNStates()):
    +    SetTimeSliderState(i)
    +    Test("ANALYZE%02d" % testnum)
    +    testnum = testnum + 1
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ANSYS.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ANSYS.html new file mode 100644 index 000000000..95ed576fb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ANSYS.html @@ -0,0 +1,108 @@ + +Results for databases/ANSYS.py + +

    Results of VisIt Regression Test - databases/ANSYS

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    pipe.inp
    ansys1_00.000.00
    ansys1_10.000.00
    ansys1_20.000.00
    waterjacket.inp
    ansys2_00.000.00
    ansys2_10.000.00
    ansys2_20.000.00
    intake.inp
    ansys3_00.000.00
    ansys3_10.000.00
    ansys3_20.000.00
    cubeF.inp
    ansys4_10.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ANSYS_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ANSYS_py.html new file mode 100644 index 000000000..cf53dd9bf --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ANSYS_py.html @@ -0,0 +1,217 @@ +databases/ANSYS.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ANSYS.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - Mesh
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Jul 7 17:46:51 PST 2005
    +#
    +#  Notes:      The data for these tests are supposed to be ANSYS versions of
    +#              some of the data in the NASTRAN tests. I have not found other
    +#              ANSYS datasets in this format to confirm that these datasets
    +#              are actually ANSYS but I think there may be several ANSYS
    +#              formats.
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Wed Feb 16 09:15:45 PST 2022
    +#    Replace use of meshatts 'foregroundFlag' and 'backgroundFlag' with
    +#    meshColorSource and opaqueColorSource.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def AddMeshPlot():
    +    AddPlot("Mesh", "mesh")
    +    m = MeshAttributes()
    +    m.legendFlag = 0
    +    m.opaqueColor = (153, 204, 255, 255)
    +    m.opaqueColorSource = m.OpaqueCustom
    +    m.meshColorSource = m.MeshCustom
    +    m.meshColor = (0,0,0,255)
    +    SetPlotOptions(m)
    +
    +def AddPseudocolorPlot():
    +    AddPlot("Pseudocolor", "one")
    +    p = PseudocolorAttributes()
    +    p.colorTableName = "rainbow"
    +    p.SetOpacityType(p.Constant)
    +    p.opacity = 0.2
    +    SetPlotOptions(p)
    +    DrawPlots()
    +
    +def test1(datapath):
    +    db = "pipe.inp"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath, db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.786306, 0.379526, 0.487527)
    +    v.focus = (0.149902, 0.212562, 0.124929)
    +    v.viewUp = (0.316186, 0.925114, -0.210215)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.585963
    +    v.nearPlane = -1.17193
    +    v.farPlane = 1.17193
    +    v.imagePan = (0.0173275, 0.033058)
    +    v.imageZoom = 1.45734
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.149902, 0.212562, 0.124929)
    +    SetView3D(v)
    +    Test("ansys1_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.786306, 0.379526, 0.487527)
    +    v2.focus = (0.149902, 0.212562, 0.124929)
    +    v2.viewUp = (0.316186, 0.925114, -0.210215)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 0.585963
    +    v2.nearPlane = -1.17193
    +    v2.farPlane = 1.17193
    +    v2.imagePan = (-0.108127, 0.0971661)
    +    v2.imageZoom = 6.92887
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0.149902, 0.212562, 0.124929)
    +    SetView3D(v2)
    +    Test("ansys1_1")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    SetView3D(v)
    +    Test("ansys1_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test2(datapath):
    +    db = "waterjacket.inp"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.65317, -0.673371, 0.346324)
    +    v.focus = (0.03, -0.03, -0.1125)
    +    v.viewUp = (0.225064, 0.264053, 0.937882)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.289925
    +    v.nearPlane = -0.579849
    +    v.farPlane = 0.579849
    +    v.imagePan = (0.0984407, 0.0467479)
    +    v.imageZoom = 1.40003
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.03, -0.03, -0.1125)
    +    SetView3D(v)
    +    Test("ansys2_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.65317, -0.673371, 0.346324)
    +    v2.focus = (0.03, -0.03, -0.1125)
    +    v2.viewUp = (0.225064, 0.264053, 0.937882)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 0.289925
    +    v2.nearPlane = -0.579849
    +    v2.farPlane = 0.579849
    +    v2.imagePan = (0.100347, 0.0410472)
    +    v2.imageZoom = 7.7658
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0.03, -0.03, -0.1125)
    +    SetView3D(v2)
    +    Test("ansys2_1")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    SetView3D(v)
    +    Test("ansys2_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test3(datapath):
    +    db = "intake.inp"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.61876, 0.311053, -0.721375)
    +    v.focus = (0, 0.011, -0.0935)
    +    v.viewUp = (0.208418, 0.950364, 0.231021)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.198752
    +    v.nearPlane = -0.397503
    +    v.farPlane = 0.397503
    +    v.imagePan = (0.0151275, 0.00167627)
    +    v.imageZoom = 1.43299
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0.011, -0.0935)
    +    SetView3D(v)
    +    Test("ansys3_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.61876, 0.311053, -0.721375)
    +    v2.focus = (0, 0.011, -0.0935)
    +    v2.viewUp = (0.208418, 0.950364, 0.231021)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 0.198752
    +    v2.nearPlane = -0.397503
    +    v2.farPlane = 0.397503
    +    v2.imagePan = (-0.101283, 0.0396808)
    +    v2.imageZoom = 6.28038
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0, 0.011, -0.0935)
    +    SetView3D(v2)
    +    Test("ansys3_1")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    SetView3D(v)
    +    Test("ansys3_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test4(datapath):
    +    db = "cubeF.inp"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +    Test("ansys4_1")
    +
    +def main():
    +    # Set up the window background color
    +    a = GetAnnotationAttributes()
    +    a.backgroundMode = a.Solid
    +    a.backgroundColor = (180, 180, 180, 255)
    +    a.foregroundColor = (255, 255, 255, 255)
    +    SetAnnotationAttributes(a)
    +
    +    DefineScalarExpression("one", "(zoneid(mesh) + 1) / (zoneid(mesh) + 1)")
    +
    +    datapath = data_path("ANSYS_test_data")
    +    test1(datapath)
    +    test2(datapath)
    +    test3(datapath)
    +    test4(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_CGNS.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_CGNS.html new file mode 100644 index 000000000..21535c2d6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_CGNS.html @@ -0,0 +1,206 @@ + +Results for databases/CGNS.py + +

    Results of VisIt Regression Test - databases/CGNS

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Structured files
    CGNS_0_000.000.00
    CGNS_0_010.000.00
    CGNS_0_020.000.00
    CGNS_0_030.000.00
    CGNS_0_040.000.00
    CGNS_0_050.000.00
    CGNS_0_060.000.00
    Unstructured files
    CGNS_1_000.000.00
    CGNS_1_010.000.00
    CGNS_1_020.000.00
    CGNS_1_030.000.00
    CGNS_1_040.000.00
    CGNS_1_050.000.00
    CGNS_1_060.000.00
    CGNS_1_070.000.00
    Variables on only some of the domains
    CGNS_2_000.000.00
    CGNS_2_010.000.00
    CGNS_2_020.000.00
    CGNS_2_030.000.00
    CGNS_2_040.000.00
    CGNS_2_050.000.00
    File with boundaries
    CGNS_3_000.000.00
    Arbitrary polygons
    CGNS_NGon_Elements_000.000.00
    Arbitrary polyhedra
    CGNS_NFace_Elements_000.000.00
    CGNS_NFace_Elements_010.200.03
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_CGNS_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_CGNS_py.html new file mode 100644 index 000000000..764241619 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_CGNS_py.html @@ -0,0 +1,389 @@ +databases/CGNS.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  CGNS.py
    +#
    +#  Tests:      mesh      - 3D structured, unstructured, single and 
    +#                          multiple domain
    +#              plots     - Contour, Mesh, Pseudocolor, Subset
    +#              operators - Clip, Slice
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Sep 2 11:19:33 PDT 2005
    +#
    +#  Modifications:
    +#    Brad Whitlock, Mon Apr 21 10:55:14 PDT 2008
    +#    Updated variable names to compensate for changes to CGNS reader.
    +#
    +#    Jeremy Meredith, Fri Aug  8 11:23:29 EDT 2008
    +#    Updated streamline settings to match new attribute fields.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Cyrus Harrison, Wed Aug 25 14:28:14 PDT 2010
    +#    Variable name change due to changes with SIL generation.
    +#
    +#    Brad Whitlock, Tue Sep 11 14:38:37 PDT 2012
    +#    Test file that has boundaries.
    +#
    +#    Alister Maguire, Tue Mar  2 10:29:37 PST 2021
    +#    Added tests for NGon and NFace elements.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("CGNS")
    +
    +def test0(datapath):
    +    TestSection("Structured files")
    +
    +    OpenDatabase(pjoin(datapath,"delta.cgns"))
    +    AddPlot("Mesh", "Zone___1")
    +    DrawPlots()
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.673597, -0.70478, 0.222605)
    +    v0.focus = (0.5, 0.827196, 0.0589651)
    +    v0.viewUp = (0.150257, 0.164313, 0.974897)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 2.30431
    +    v0.nearPlane = -4.60862
    +    v0.farPlane = 4.60862
    +    v0.imagePan = (0.0171482, 0.0494526)
    +    v0.imageZoom = 1.09899
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0.5, 0.827196, 0.0589651)
    +    SetView3D(v0)
    +    Test("CGNS_0_00")
    +
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "Density")
    +    DrawPlots()
    +    Test("CGNS_0_01")
    +
    +    ChangeActivePlotsVar("MomentumX")
    +    Test("CGNS_0_02")
    +
    +    AddPlot("Vector", "Momentum")
    +    v = VectorAttributes()
    +    v.nVectors = 4000
    +    v.scale = 0.065
    +    v.scaleByMagnitude = 0
    +    v.autoScale = 0
    +    SetPlotOptions(v)
    +    DrawPlots()
    +    v1 = View3DAttributes()
    +    v1.viewNormal = (-0.59445, 0.745055, 0.302528)
    +    v1.focus = (0.5, 0.827196, 0.0589651)
    +    v1.viewUp = (0.177264, -0.245548, 0.953039)
    +    v1.viewAngle = 30
    +    v1.parallelScale = 2.30431
    +    v1.nearPlane = 0
    +    v1.farPlane = 4.60862
    +    v1.imagePan = (-0.00797807, 0.021628)
    +    v1.imageZoom = 2.76008
    +    v1.perspective = 1
    +    v1.eyeAngle = 2
    +    v1.centerOfRotationSet = 0
    +    v1.centerOfRotation = (0.5, 0.827196, 0.0589651)
    +    SetView3D(v1)
    +    Test("CGNS_0_03")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(pjoin(datapath,"5blocks.cgns"))
    +    AddPlot("Subset", "zones")
    +    AddPlot("Mesh", "BASE_1")
    +    DrawPlots()
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.56714, 0.62864, 0.532131)
    +    v2.focus = (18.3432, -132.647, 108.59)
    +    v2.viewUp = (0.353654, -0.397621, 0.846656)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 390.48
    +    v2.nearPlane = -780.96
    +    v2.farPlane = 780.96
    +    v2.imagePan = (0.0358739, 0.018554)
    +    v2.imageZoom = 1.2581
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (18.3432, -132.647, 108.59)
    +    SetView3D(v2)
    +    Test("CGNS_0_04")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(pjoin(datapath,"multi.cgns"))
    +    AddPlot("Subset", "zones")
    +    AddOperator("Slice")
    +    DrawPlots()
    +    v3 = View2DAttributes()
    +    v3.windowCoords = (-0.101847, 1.39507, -0.777335, 0.779882)
    +    v3.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v3.fullFrameActivationMode = v3.Off  # On, Off, Auto
    +    v3.fullFrameAutoThreshold = 100
    +    SetView2D(v3)
    +    Test("CGNS_0_05")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "MomentumZ")
    +    AddOperator("Slice")
    +    DrawPlots()
    +    Test("CGNS_0_06")
    +
    +    DeleteAllPlots()
    +
    +
    +def test1(datapath):
    +    TestSection("Unstructured files")
    +
    +    OpenDatabase(pjoin(datapath,"StaticMixer.cgns"))
    +    AddPlot("Mesh", "StaticMixer")
    +    AddPlot("Pseudocolor", "Pressure")
    +    DrawPlots()
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.791423, -0.34473, 0.504788)
    +    v0.focus = (0, 0, 6.65045e-11)
    +    v0.viewUp = (0.453682, 0.222176, 0.863024)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 4.1231
    +    v0.nearPlane = -8.24621
    +    v0.farPlane = 8.24621
    +    v0.imagePan = (-0.00919414, -0.0394234)
    +    v0.imageZoom = 1.4092
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0, 0, 0)
    +    SetView3D(v0)
    +    Test("CGNS_1_00")
    +
    +    ChangeActivePlotsVar("VelocityX")
    +    Test("CGNS_1_01")
    +
    +    SetActivePlots((0,1))
    +    AddOperator("Clip")
    +    c = ClipAttributes()
    +    c.plane2Status = 1
    +    c.plane1Normal = (-1.,0.,0.)
    +    c.plane2Normal = (0.,-1.,0.)
    +    SetOperatorOptions(c)
    +    DrawPlots()
    +    Test("CGNS_1_02")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(pjoin(datapath,"jet.cgns"))
    +    AddPlot("Pseudocolor", "CoefPressure")
    +    AddPlot("Contour", "CoefPressure")
    +    c = ContourAttributes()
    +    c.colorType = c.ColorBySingleColor
    +    c.contourNLevels = 30
    +    c.singleColor=(0,0,0,255)
    +    c.legendFlag = 0
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    v1 = View3DAttributes()
    +    v1.viewNormal = (0.89973, 0.23533, 0.367566)
    +    v1.focus = (1.82694, 0, 4.12744)
    +    v1.viewUp = (-0.354779, -0.0961553, 0.929992)
    +    v1.viewAngle = 30
    +    v1.parallelScale = 47.9514
    +    v1.nearPlane = -95.9031
    +    v1.farPlane = 95.9031
    +    v1.imagePan = (-0.0544089, 0.00587157)
    +    v1.imageZoom = 1.62963
    +    v1.perspective = 1
    +    v1.eyeAngle = 2
    +    v1.centerOfRotationSet = 0
    +    v1.centerOfRotation = (1.82694, 0, 4.12744)
    +    SetView3D(v1)
    +    Test("CGNS_1_03")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(pjoin(datapath,"yf17.cgns"))
    +    AddPlot("Mesh", "Zone1")
    +    AddPlot("Pseudocolor", "Density")
    +    DrawPlots()
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.79815, 0.489358, 0.351405)
    +    v2.focus = (0, 31.7504, 0)
    +    v2.viewUp = (0.286761, -0.204385, 0.935946)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 95.2512
    +    v2.nearPlane = 0
    +    v2.farPlane = 190.502
    +    v2.imagePan = (-0.129267, -0.0352136)
    +    v2.imageZoom = 15.4243
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0, 31.7504, 0)
    +    SetView3D(v2)
    +    Test("CGNS_1_04")
    +
    +    v3 = View3DAttributes()
    +    v3.viewNormal = (-0.79815, 0.489358, 0.351405)
    +    v3.focus = (0, 31.7504, 0)
    +    v3.viewUp = (0.286761, -0.204385, 0.935946)
    +    v3.viewAngle = 30
    +    v3.parallelScale = 95.2512
    +    v3.nearPlane = 0
    +    v3.farPlane = 190.502
    +    v3.imagePan = (-0.130871, -0.033492)
    +    v3.imageZoom = 66.7586
    +    v3.perspective = 1
    +    v3.eyeAngle = 2
    +    v3.centerOfRotationSet = 0
    +    v3.centerOfRotation = (0, 31.7504, 0)
    +    SetView3D(v3)
    +    Test("CGNS_1_05")
    +
    +    SetActivePlots(0)
    +    DeleteActivePlots()
    +    SetView3D(v2)
    +    Test("CGNS_1_06")
    +
    +    AddPlot("Vector", "Velocity")
    +    v = VectorAttributes()
    +    v.nVectors = 4000
    +    v.scale = 0.2
    +    v.scaleByMagnitude = 0
    +    v.autoScale = 0
    +    SetPlotOptions(v)
    +    DrawPlots()
    +    Test("CGNS_1_07")
    +    DeleteAllPlots()
    +
    +
    +def test2(datapath):
    +    TestSection("Variables on only some of the domains")
    +
    +    OpenDatabase(pjoin(datapath,"HeatingCoil.cgns"))
    +    AddPlot("Subset", "zones(Base)")
    +    DrawPlots()
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (0.27344, 0.876709, 0.395743)
    +    v0.focus = (0, 0, 1.125)
    +    v0.viewUp = (-0.0932919, -0.385311, 0.918059)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 1.8071
    +    v0.nearPlane = -3.61421
    +    v0.farPlane = 3.61421
    +    v0.imagePan = (-0.00158217, 0.0267093)
    +    v0.imageZoom = 1.11866
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0, 0, 1.125)
    +    SetView3D(v0)
    +    Test("CGNS_2_00")
    +
    +    TurnDomainsOff("FluidZone")
    +    Test("CGNS_2_01")
    +
    +    TurnDomainsOn()
    +    TurnDomainsOff("SolidZone")
    +    Test("CGNS_2_02")
    +    TurnDomainsOn()
    +    DeleteAllPlots()
    +
    +    # Make sure we can plot variables that exist on only 1 domain.
    +    AddPlot("Pseudocolor", "Pressure")
    +    DrawPlots()
    +    Test("CGNS_2_03")
    +    ChangeActivePlotsVar("VelocityZ")
    +    AddPlot("Mesh", "subgrid/Base001")
    +    DrawPlots()
    +    Test("CGNS_2_04")
    +    DeleteAllPlots()
    +
    +    # Draw the 1 variable that exists in both domains.
    +    AddPlot("Pseudocolor","Temperature")
    +    DrawPlots()
    +    Test("CGNS_2_05")
    +    DeleteAllPlots()
    +
    +def test3(datapath):
    +    TestSection("File with boundaries")
    +
    +    OpenDatabase(pjoin(datapath,"with_boundary_faces.cgns"))
    +    AddPlot("Pseudocolor", "Density")
    +    DrawPlots()
    +    ResetView()
    +    v = GetView2D()
    +    v.fullFrameActivationMode = v.On
    +    SetView2D(v)
    +
    +    Test("CGNS_3_00")
    +    DeleteAllPlots()
    +
    +def testNGonElements(datapath):
    +    TestSection("Arbitrary polygons")
    +
    +    OpenDatabase(pjoin(datapath, "spherePolyMesh.cgns"))
    +    AddPlot("Mesh", "sphere")
    +    DrawPlots()
    +    ResetView()
    +
    +    Test("CGNS_NGon_Elements_00")
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath, "spherePolyMesh.cgns"))
    +
    +def testNFaceElements(datapath):
    +    TestSection("Arbitrary polyhedra")
    +
    +    #
    +    # First, test the simple case. This mesh has 2 sections,
    +    # one for NGon and one for NFace.
    +    #
    +    OpenDatabase(pjoin(datapath, "trappedvtx_ngon.cgns"))
    +    AddPlot("Mesh", "ComputeBase")
    +    MeshAtts = MeshAttributes()
    +    DrawPlots()
    +    ResetView()
    +
    +    Test("CGNS_NFace_Elements_00")
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath, "trappedvtx_ngon.cgns"))
    +
    +    #
    +    # Next, test a more complicated case. This mesh has 5 sections,
    +    # 4 of which are NGon. The single NFace section references all
    +    # 4 NGon sections.
    +    #
    +    OpenDatabase(pjoin(datapath, "spherePolyMesh3D.cgns"))
    +    AddPlot("Mesh", "sphere")
    +    MeshAtts = MeshAttributes()
    +    MeshAtts.opacity = 0.4
    +    SetPlotOptions(MeshAtts)
    +
    +    AddPlot("Pseudocolor", "Density")
    +    PseudocolorAtts = PseudocolorAttributes()
    +    PseudocolorAtts.opacityType = PseudocolorAtts.Constant
    +    PseudocolorAtts.opacity = 0.4
    +    SetPlotOptions(PseudocolorAtts)
    +
    +    DrawPlots()
    +    ResetView()
    +
    +    Test("CGNS_NFace_Elements_01")
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath, "spherePolyMesh3D.cgns"))
    +
    +def main():
    +    # Draw antialiased lines
    +    r = GetRenderingAttributes()
    +    r.antialiasing = 1
    +    SetRenderingAttributes(r)
    +
    +    datapath = data_path("CGNS_test_data")
    +    test0(datapath)
    +    test1(datapath)
    +    test2(datapath)
    +    test3(datapath)
    +    testNGonElements(datapath)
    +    testNFaceElements(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Cale.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Cale.html new file mode 100644 index 000000000..c0af0ac1e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Cale.html @@ -0,0 +1,69 @@ + +Results for databases/Cale.py + +

    Results of VisIt Regression Test - databases/Cale

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Cale files
    Cale_0_000.000.00
    Cale_0_010.000.00
    Cale_0_020.000.00
    Cale_0_030.000.00
    Cale_0_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Cale_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Cale_py.html new file mode 100644 index 000000000..04784399e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Cale_py.html @@ -0,0 +1,65 @@ +databases/Cale.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  Cale.py
    +#
    +#  Tests:      mesh      - 2D, structured, single domain
    +#              plots     - Pseudocolor, FilledBoundary
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Oct 10 11:46:45 PDT 2007
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def test0(datapath):
    +    TestSection("Cale files")
    +    OpenDatabase(pjoin(datapath,"jet00405.pdb"))
    +    AddPlot("Pseudocolor", "p")
    +    DrawPlots()
    +    Test("Cale_0_00")
    +    DeleteActivePlots()
    +
    +    AddPlot("FilledBoundary", "Materials")
    +    DrawPlots()
    +    Test("Cale_0_01")
    +
    +    AddPlot("Mesh", "hydro")
    +    DrawPlots()
    +    v0 = View2DAttributes()
    +    v0.windowCoords = (10.1155, 11.6375, 3.20767, 4.82837)
    +    v0.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v0.fullFrameActivationMode = v0.Auto  # On, Off, Auto
    +    v0.fullFrameAutoThreshold = 100
    +    v0.xScale = v0.LINEAR  # LINEAR, LOG
    +    v0.yScale = v0.LINEAR  # LINEAR, LOG
    +    SetView2D(v0)
    +    Test("Cale_0_02")
    +
    +    # Do a PC plot with mixvars.
    +    SetActivePlots(0)
    +    DeleteActivePlots()
    +    m = GetMaterialAttributes()
    +    m.forceMIR = 1
    +    SetMaterialAttributes(m)
    +    AddPlot("Pseudocolor", "den")
    +    DrawPlots()
    +    Test("Cale_0_03")
    +    DeleteAllPlots()
    +
    +    # Test another file.
    +    OpenDatabase(pjoin(datapath,"vpgz.pdb"))
    +    AddPlot("FilledBoundary", "Materials")
    +    DrawPlots()
    +    ResetView()
    +    Test("Cale_0_04")
    +    DeleteActivePlots()
    +
    +def main():
    +    datapath = data_path("Cale_test_data")
    +    test0(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Chombo.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Chombo.html new file mode 100644 index 000000000..1ba47089b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Chombo.html @@ -0,0 +1,77 @@ + +Results for databases/Chombo.py + +

    Results of VisIt Regression Test - databases/Chombo

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Changing time states
    Chombo_0_000.000.00
    Chombo_0_010.000.00
    Chombo_0_020 modifications totalling 0 lines
    More distinct refinements
    Chombo_1_000.000.00
    Anisotropic refinement
    Chombo_2_000.410.63
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Chombo_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Chombo_py.html new file mode 100644 index 000000000..2e673a1eb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Chombo_py.html @@ -0,0 +1,101 @@ +databases/Chombo.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  Chombo.py
    +#
    +#  Tests:      mesh      - 2D AMR
    +#              plots     - Pseudocolor
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Mon Sep 25 14:17:58 PST 2006
    +#
    +#  Modifications:
    +#    Mark C. Miller, Wed Jan 21 10:00:10 PST 2009
    +#    Removed silly comments regarding global annotation object 'a'
    +#
    +# ----------------------------------------------------------------------------
    +
    +def test0(datapath):
    +    TestSection("Changing time states")
    +
    +    # Set up the plots.
    +    db = pjoin(datapath,"chombo.visit")
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "Density")
    +    AddOperator("Transform")
    +    t = TransformAttributes()
    +    t.doScale = 1
    +    t.scaleY = 8.
    +    SetOperatorOptions(t)
    +    DrawPlots()
    +
    +    Test("Chombo_0_00")
    +
    +    # Make sure we can change time states. This demonstrates the reader's
    +    # ability to change metadata/SIL over time.
    +    SetTimeSliderState(1)
    +    Test("Chombo_0_01")
    +
    +    # Get the time steps.
    +    s = "Number of states: %d\n" %  TimeSliderGetNStates()
    +    for i in range(TimeSliderGetNStates()):
    +        SetTimeSliderState(i)
    +        Query("Cycle")
    +        cycle = GetQueryOutputValue()
    +        Query("Time")
    +        time = GetQueryOutputValue()
    +        values = "Cycle=%d, Time=%g" % (cycle, time)
    +        s = s + values + "\n"
    +    TestText("Chombo_0_02", s)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test1(datapath):
    +    TestSection("More distinct refinements")
    +
    +    db = pjoin(datapath,"chombo.visit")
    +    OpenDatabase(db)
    +
    +    AddPlot("Subset", "patches")
    +    AddPlot("Contour", "P_y_Over_Rho")
    +    DrawPlots()
    +    v = GetView2D()
    +    v.fullFrameActivationMode = v.On
    +    SetView2D(v)
    +
    +    Test("Chombo_1_00")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test2(datapath):
    +    TestSection("Anisotropic refinement")
    +
    +    db = pjoin(datapath,"aniso_refin.2d.hdf5")
    +    OpenDatabase(db)
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("Subset", "levels")
    +    DrawPlots()
    +
    +    Test("Chombo_2_00")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def main():
    +    TurnOffAllAnnotations()
    +
    +    InvertBackgroundColor()
    +
    +    datapath = data_path("Chombo_test_data")
    +    test0(datapath)
    +    test1(datapath)
    +    test2(datapath)
    +
    +    InvertBackgroundColor()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Curve3D.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Curve3D.html new file mode 100644 index 000000000..10bdbcd92 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Curve3D.html @@ -0,0 +1,48 @@ + +Results for databases/Curve3D.py + +

    Results of VisIt Regression Test - databases/Curve3D

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Curve3D_000.000.00
    Curve3D_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Curve3D_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Curve3D_py.html new file mode 100644 index 000000000..afba42c2b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Curve3D_py.html @@ -0,0 +1,157 @@ +databases/Curve3D.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  Curve3D.py
    +#
    +#  Programmer: Olivier Cessenat
    +#  Wed Nov  8 18:45:00 CET 2023
    +#
    +# ----------------------------------------------------------------------------
    +TurnOffAllAnnotations()
    +
    +OpenDatabase(data_path("Curve3D_test_data/a3dcurvf.curve3d"), 0, "Curve3D_1.0")
    +AddPlot("FilledBoundary", "segments", 1, 1)
    +# Begin spontaneous state
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.087671, -0.95302, 0.289943)
    +View3DAtts.focus = (2.5, 1.5, 0)
    +View3DAtts.viewUp = (-0.114612, 0.279481, 0.953286)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 3.08221
    +View3DAtts.nearPlane = -6.16441
    +View3DAtts.farPlane = 6.16441
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (2.5, 1.5, 0)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +View3DAtts.windowValid = 1
    +SetView3D(View3DAtts)
    +# End spontaneous state
    +
    +FilledBoundaryAtts = FilledBoundaryAttributes()
    +FilledBoundaryAtts.colorType = FilledBoundaryAtts.ColorByMultipleColors  # ColorBySingleColor, ColorByMultipleColors, ColorByColorTable
    +FilledBoundaryAtts.colorTableName = "Default"
    +FilledBoundaryAtts.invertColorTable = 0
    +FilledBoundaryAtts.legendFlag = 1
    +FilledBoundaryAtts.lineWidth = 2
    +FilledBoundaryAtts.singleColor = (0, 0, 0, 255)
    +FilledBoundaryAtts.SetMultiColor(0, (255, 0, 0, 255))
    +FilledBoundaryAtts.SetMultiColor(1, (0, 255, 0, 255))
    +FilledBoundaryAtts.boundaryNames = ("mat_toto", "mat_toto_0")
    +FilledBoundaryAtts.opacity = 1
    +FilledBoundaryAtts.wireframe = 0
    +FilledBoundaryAtts.drawInternal = 0
    +FilledBoundaryAtts.smoothingLevel = 0
    +FilledBoundaryAtts.cleanZonesOnly = 0
    +FilledBoundaryAtts.mixedColor = (255, 255, 255, 255)
    +FilledBoundaryAtts.pointSize = 0.05
    +FilledBoundaryAtts.pointType = FilledBoundaryAtts.Point  # Box, Axis, Icosahedron, Octahedron, Tetrahedron, SphereGeometry, Point, Sphere
    +FilledBoundaryAtts.pointSizeVarEnabled = 0
    +FilledBoundaryAtts.pointSizeVar = "default"
    +FilledBoundaryAtts.pointSizePixels = 2
    +SetPlotOptions(FilledBoundaryAtts)
    +
    +DrawPlots()
    +SaveWindowAtts = SaveWindowAttributes()
    +SaveWindowAtts.outputToCurrentDirectory = 1
    +SaveWindowAtts.outputDirectory = "."
    +SaveWindowAtts.fileName = "a3dcurvf"
    +SaveWindowAtts.family = 1
    +SaveWindowAtts.format = SaveWindowAtts.PNG  # BMP, CURVE, JPEG, OBJ, PNG, POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA, VTK, PLY
    +SaveWindowAtts.width = 1024
    +SaveWindowAtts.height = 1024
    +SaveWindowAtts.screenCapture = 0
    +SaveWindowAtts.saveTiled = 0
    +SaveWindowAtts.quality = 80
    +SaveWindowAtts.progressive = 0
    +SaveWindowAtts.binary = 0
    +SaveWindowAtts.stereo = 0
    +SaveWindowAtts.compression = SaveWindowAtts.PackBits  # None, PackBits, Jpeg, Deflate
    +SaveWindowAtts.forceMerge = 0
    +SaveWindowAtts.resConstraint = SaveWindowAtts.ScreenProportions  # NoConstraint, EqualWidthHeight, ScreenProportions
    +SaveWindowAtts.advancedMultiWindowSave = 0
    +SetSaveWindowAttributes(SaveWindowAtts)
    +Test("Curve3D_00", SaveWindowAtts)
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("Curve3D_test_data/a3dcurvf.curve3d"))
    +
    +OpenDatabase(data_path("Curve3D_test_data/a3dcurve.curve3d"), 0, "Curve3D_1.0")
    +AddPlot("FilledBoundary", "segments", 1, 1)
    +# Begin spontaneous state
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (-0.960174, -0.252458, 0.119713)
    +View3DAtts.focus = (2.5, 1.5, 0)
    +View3DAtts.viewUp = (-0.254446, 0.613076, -0.747927)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 3.08221
    +View3DAtts.nearPlane = -6.16441
    +View3DAtts.farPlane = 6.16441
    +View3DAtts.imagePan = (-0.178886, 0.187104)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (2.5, 1.5, 0)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +View3DAtts.windowValid = 1
    +SetView3D(View3DAtts)
    +# End spontaneous state
    +
    +FilledBoundaryAtts = FilledBoundaryAttributes()
    +FilledBoundaryAtts.colorType = FilledBoundaryAtts.ColorByMultipleColors  # ColorBySingleColor, ColorByMultipleColors, ColorByColorTable
    +FilledBoundaryAtts.colorTableName = "Default"
    +FilledBoundaryAtts.invertColorTable = 0
    +FilledBoundaryAtts.legendFlag = 1
    +FilledBoundaryAtts.lineWidth = 2
    +FilledBoundaryAtts.singleColor = (0, 0, 0, 255)
    +FilledBoundaryAtts.SetMultiColor(0, (255, 0, 0, 255))
    +FilledBoundaryAtts.SetMultiColor(1, (0, 255, 0, 255))
    +FilledBoundaryAtts.boundaryNames = ("mat_tata", "mat_tutu", "mat_tutu_0", "mat_tutu_1")
    +FilledBoundaryAtts.opacity = 1
    +FilledBoundaryAtts.wireframe = 0
    +FilledBoundaryAtts.drawInternal = 0
    +FilledBoundaryAtts.smoothingLevel = 0
    +FilledBoundaryAtts.cleanZonesOnly = 0
    +FilledBoundaryAtts.mixedColor = (255, 255, 255, 255)
    +FilledBoundaryAtts.pointSize = 0.05
    +FilledBoundaryAtts.pointType = FilledBoundaryAtts.Point  # Box, Axis, Icosahedron, Octahedron, Tetrahedron, SphereGeometry, Point, Sphere
    +FilledBoundaryAtts.pointSizeVarEnabled = 0
    +FilledBoundaryAtts.pointSizeVar = "default"
    +FilledBoundaryAtts.pointSizePixels = 2
    +SetPlotOptions(FilledBoundaryAtts)
    +
    +DrawPlots()
    +SaveWindowAtts = SaveWindowAttributes()
    +SaveWindowAtts.outputToCurrentDirectory = 1
    +SaveWindowAtts.outputDirectory = "."
    +SaveWindowAtts.fileName = "a3dcurve"
    +SaveWindowAtts.family = 1
    +SaveWindowAtts.format = SaveWindowAtts.PNG  # BMP, CURVE, JPEG, OBJ, PNG, POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA, VTK, PLY
    +SaveWindowAtts.width = 1024
    +SaveWindowAtts.height = 1024
    +SaveWindowAtts.screenCapture = 0
    +SaveWindowAtts.saveTiled = 0
    +SaveWindowAtts.quality = 80
    +SaveWindowAtts.progressive = 0
    +SaveWindowAtts.binary = 0
    +SaveWindowAtts.stereo = 0
    +SaveWindowAtts.compression = SaveWindowAtts.PackBits  # None, PackBits, Jpeg, Deflate
    +SaveWindowAtts.forceMerge = 0
    +SaveWindowAtts.resConstraint = SaveWindowAtts.ScreenProportions  # NoConstraint, EqualWidthHeight, ScreenProportions
    +SaveWindowAtts.advancedMultiWindowSave = 0
    +SetSaveWindowAttributes(SaveWindowAtts)
    +Test("Curve3D_01", SaveWindowAtts)
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("Curve3D_test_data/a3dcurve.curve3d"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_EnSight.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_EnSight.html new file mode 100644 index 000000000..b378346a5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_EnSight.html @@ -0,0 +1,102 @@ + +Results for databases/EnSight.py + +

    Results of VisIt Regression Test - databases/EnSight

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    MT, ASCII, EnSight Gold files
    EnSight_0_000.000.00
    EnSight_0_010.000.00
    EnSight_0_020.000.00
    EnSight_0_030.000.00
    EnSight_0_040.000.00
    EnSight_0_050.000.00
    EnSight_0_060.000.00
    EnSight_0_070.000.00
    EnSight_0_080 modifications totalling 0 lines
    Make sure that we get correct values
    EnSight_1_000 modifications totalling 0 lines
    EnSight_1_010 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_EnSight_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_EnSight_py.html new file mode 100644 index 000000000..02054a32b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_EnSight_py.html @@ -0,0 +1,84 @@ +databases/EnSight.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  EnSight.py
    +#
    +#  Tests:      mesh      - 2D structured
    +#              plots     - Pseudocolor
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Tue Jun 27 10:27:50 PDT 2006
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Sep 27 10:19:38 PDT 2006
    +#    Test another dataset to make sure that the cycle/time values and the
    +#    dataset values are right.
    +#
    +# ----------------------------------------------------------------------------
    +
    +RequiredDatabasePlugin("EnSight")
    +
    +def test0(datapath):
    +    TestSection("MT, ASCII, EnSight Gold files")
    +
    +    # Set up the plots.
    +    OpenDatabase(pjoin(datapath,"CHR.case"))
    +    AddPlot("Pseudocolor", "Pression")
    +    DrawPlots()
    +
    +    # Save images for all 8 time steps
    +    s = "Time values:\n"
    +    for i in range(8):
    +        SetTimeSliderState(i)
    +        DrawPlots()
    +        Test("EnSight_0_%02d" % i)
    +
    +        Query("Time")
    +        s = s + GetQueryOutputString() + "\n"
    +
    +    TestText("EnSight_0_08", s)
    +    DeleteAllPlots()
    +
    +def test1(datapath):
    +    TestSection("Make sure that we get correct values")
    +
    +    # Set up the plots.
    +    OpenDatabase(pjoin(datapath,"dataset2/CHR.case"))
    +    AddPlot("Pseudocolor", "nb")
    +    DrawPlots()
    +
    +    # Query the values at all time steps to make sure that we get the
    +    # right cycles, times and min dataset value.
    +    s = "Time values:\n"
    +    v = "Dataset values\n"
    +    for i in range(TimeSliderGetNStates()):
    +        SetTimeSliderState(i)
    +        DrawPlots()
    +
    +        # Get cycle and time.
    +        Query("Time")
    +        t = GetQueryOutputValue()
    +
    +        # Get min value
    +        Query("Min")
    +        m = GetQueryOutputValue()
    +
    +        line = "Time=%g\n" % t
    +        s = s + line
    +        line = "Min Value=%g\n" % m
    +        v = v + line
    +
    +    TestText("EnSight_1_00", s)
    +    TestText("EnSight_1_01", v)
    +    DeleteAllPlots()
    +
    +def main():
    +    TurnOffAllAnnotations()
    +
    +    datapath = data_path("EnSight_test_data")
    +    test0(datapath)
    +    test1(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_FITS.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_FITS.html new file mode 100644 index 000000000..abf5e8003 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_FITS.html @@ -0,0 +1,87 @@ + +Results for databases/FITS.py + +

    Results of VisIt Regression Test - databases/FITS

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    2D truecolor images
    FITS_0_000.000.00
    2D pseudocolor images
    FITS_1_000.000.00
    FITS_1_010.000.00
    FITS_1_020.000.00
    FITS_1_030.000.00
    3D pseudocolor data
    FITS_2_000.000.00
    FITS_2_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_FITS_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_FITS_py.html new file mode 100644 index 000000000..85db3be57 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_FITS_py.html @@ -0,0 +1,124 @@ +databases/FITS.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  FITS.py
    +#
    +#  Tests:      mesh      - 2D structured, 3D structured
    +#              plots     - Pseudocolor, TrueColor
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Jul 20 14:07:49 PST 2006
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Tue Mar 18 15:40:19 PDT 2008
    +#    Reflect change in variable names.
    +#
    +#    Hank Childs, Sat Mar 13 10:57:19 PST 2010
    +#    Reflect change in variable names.
    +#    
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("FITS")
    +
    +def test0(datapath):
    +    TestSection("2D truecolor images")
    +
    +    # Set up the plots.
    +    db = pjoin(datapath,"mandrill.fits")
    +    OpenDatabase(db)
    +    AddPlot("Truecolor", "MANDRILL")
    +    DrawPlots()
    +
    +    Test("FITS_0_00")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +
    +def test1(datapath):
    +    TestSection("2D pseudocolor images")
    +
    +    # Set up the plots.
    +    db = pjoin(datapath,"y2000m2.fits")
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "NGC7083 V 550nm _lp_Intens_rp_")
    +    pc = PseudocolorAttributes()
    +    pc.minFlag = 1
    +    pc.scaling = pc.Log  # Linear, Log, Skew
    +    pc.min = 0.001
    +    pc.colorTableName = "bluehot"
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    Test("FITS_1_00")
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +    # Set up the plots.
    +    db = pjoin(datapath, "04May04_standard_*.fits database")
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "HD43583")
    +    DrawPlots()
    +    Test("FITS_1_01")
    +
    +    SetTimeSliderState(1)
    +    Test("FITS_1_02")
    +
    +    SetTimeSliderState(2)
    +    Test("FITS_1_03")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +
    +def test2(datapath):
    +    TestSection("3D pseudocolor data")
    +
    +    # Set up the plots.
    +    db = pjoin(datapath,"ngc6503.fits")
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "NGC6503")
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (0.406249, -0.543192, 0.734782)
    +    v.focus = (128, 128, 15.5)
    +    v.viewUp = (-0.273573, 0.694941, 0.664993)
    +    v.viewAngle = 30
    +    v.parallelScale = 181.682
    +    v.nearPlane = -363.363
    +    v.farPlane = 363.363
    +    v.imagePan = (0.0160165, 0.0533909)
    +    v.imageZoom = 1.05918
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (128, 128, 15.5)
    +    SetView3D(v)
    +    Test("FITS_2_00")
    +    DeleteAllPlots()
    +
    +    AddPlot("Contour", "NGC6503")
    +    ca = ContourAttributes()
    +    ca.contourValue = (0.0075)
    +    ca.contourMethod = ca.Value  # Level, Value, Percent
    +    SetPlotOptions(ca)
    +    DrawPlots()
    +    Test("FITS_2_01")
    +    DeleteAllPlots()
    +
    +    CloseDatabase(db)
    +
    +def main():
    +    TurnOffAllAnnotations()
    +
    +    InvertBackgroundColor()
    +
    +    datapath = data_path("FITS_test_data")
    +    test0(datapath)
    +    test1(datapath)
    +    test2(datapath)
    +
    +    InvertBackgroundColor()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_FMS.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_FMS.html new file mode 100644 index 000000000..3946c6a8c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_FMS.html @@ -0,0 +1,1156 @@ + +Results for databases/FMS.py + +

    Results of VisIt Regression Test - databases/FMS

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    domains - ascii
    FMS_0_1_000 modifications totalling 0 lines
    FMS_0_1_010.000.00
    FMS_0_1_020.000.00
    FMS_0_1_030.000.00
    FMS_0_2_000 modifications totalling 0 lines
    FMS_0_2_010.000.00
    FMS_0_2_020.000.00
    FMS_0_2_030.000.00
    FMS_0_3_000 modifications totalling 0 lines
    FMS_0_3_010.000.00
    FMS_0_3_020.000.00
    FMS_0_3_030.000.00
    domains - yaml
    FMS_1_1_000 modifications totalling 0 lines
    FMS_1_1_010.000.00
    FMS_1_1_020.000.00
    FMS_1_1_030.000.00
    FMS_1_2_000 modifications totalling 0 lines
    FMS_1_2_010.000.00
    FMS_1_2_020.000.00
    FMS_1_2_030.000.00
    FMS_1_3_000 modifications totalling 0 lines
    FMS_1_3_010.000.00
    FMS_1_3_020.000.00
    FMS_1_3_030.000.00
    domains - json
    FMS_2_1_000 modifications totalling 0 lines
    FMS_2_1_010.000.00
    FMS_2_1_020.000.00
    FMS_2_1_030.000.00
    FMS_2_2_000 modifications totalling 0 lines
    FMS_2_2_010.000.00
    FMS_2_2_020.000.00
    FMS_2_2_030.000.00
    FMS_2_3_000 modifications totalling 0 lines
    FMS_2_3_010.000.00
    FMS_2_3_020.000.00
    FMS_2_3_030.000.00
    domains - hdf5
    FMS_3_1_000 modifications totalling 0 lines
    FMS_3_1_010.000.00
    FMS_3_1_020.000.00
    FMS_3_1_030.000.00
    FMS_3_2_000 modifications totalling 0 lines
    FMS_3_2_010.000.00
    FMS_3_2_020.000.00
    FMS_3_2_030.000.00
    FMS_3_3_000 modifications totalling 0 lines
    FMS_3_3_010.000.00
    FMS_3_3_020.000.00
    FMS_3_3_030.000.00
    quads - ascii
    FMS_4_1_000 modifications totalling 0 lines
    FMS_4_1_010.000.00
    FMS_4_1_020.000.00
    FMS_4_1_030.000.00
    FMS_4_1_040.000.00
    FMS_4_1_050.000.00
    FMS_4_1_060.000.00
    FMS_4_2_000 modifications totalling 0 lines
    FMS_4_2_010.000.00
    FMS_4_2_020.000.00
    FMS_4_2_030.000.00
    FMS_4_2_040.000.00
    FMS_4_2_050.000.00
    FMS_4_2_060.000.00
    FMS_4_3_000 modifications totalling 0 lines
    FMS_4_3_010.000.00
    FMS_4_3_020.000.00
    FMS_4_3_030.000.00
    FMS_4_3_040.000.00
    FMS_4_3_050.000.00
    FMS_4_3_060.000.00
    quads - yaml
    FMS_5_1_000 modifications totalling 0 lines
    FMS_5_1_010.000.00
    FMS_5_1_020.000.00
    FMS_5_1_030.000.00
    FMS_5_1_040.000.00
    FMS_5_1_050.000.00
    FMS_5_1_060.000.00
    FMS_5_2_000 modifications totalling 0 lines
    FMS_5_2_010.000.00
    FMS_5_2_020.000.00
    FMS_5_2_030.000.00
    FMS_5_2_040.000.00
    FMS_5_2_050.000.00
    FMS_5_2_060.000.00
    FMS_5_3_000 modifications totalling 0 lines
    FMS_5_3_010.000.00
    FMS_5_3_020.000.00
    FMS_5_3_030.000.00
    FMS_5_3_040.000.00
    FMS_5_3_050.000.00
    FMS_5_3_060.000.00
    hex - ascii
    FMS_6_1_000 modifications totalling 0 lines
    FMS_6_1_010.000.00
    FMS_6_1_020.000.00
    FMS_6_1_030.000.00
    FMS_6_1_040.000.00
    FMS_6_1_050.000.00
    FMS_6_2_000 modifications totalling 0 lines
    FMS_6_2_010.000.00
    FMS_6_2_020.000.00
    FMS_6_2_030.000.00
    FMS_6_2_040.000.00
    FMS_6_2_050.000.00
    FMS_6_3_000 modifications totalling 0 lines
    FMS_6_3_010.000.00
    FMS_6_3_020.000.00
    FMS_6_3_030.000.00
    FMS_6_3_040.000.00
    FMS_6_3_050.000.00
    FMS_6_4_000 modifications totalling 0 lines
    FMS_6_4_010.000.00
    FMS_6_4_020.000.00
    FMS_6_4_030.000.00
    FMS_6_4_040.000.00
    FMS_6_4_050.000.00
    FMS_6_5_000 modifications totalling 0 lines
    FMS_6_5_010.000.00
    FMS_6_5_020.000.00
    FMS_6_5_030.000.00
    FMS_6_5_040.000.00
    FMS_6_5_050.000.00
    hex - hdf5
    FMS_7_1_000 modifications totalling 0 lines
    FMS_7_1_010.000.00
    FMS_7_1_020.000.00
    FMS_7_1_030.000.00
    FMS_7_1_040.000.00
    FMS_7_1_050.000.00
    FMS_7_2_000 modifications totalling 0 lines
    FMS_7_2_010.000.00
    FMS_7_2_020.000.00
    FMS_7_2_030.000.00
    FMS_7_2_040.000.00
    FMS_7_2_050.000.00
    FMS_7_3_000 modifications totalling 0 lines
    FMS_7_3_010.000.00
    FMS_7_3_020.000.00
    FMS_7_3_030.000.00
    FMS_7_3_040.000.00
    FMS_7_3_050.000.00
    FMS_7_4_000 modifications totalling 0 lines
    FMS_7_4_010.000.00
    FMS_7_4_020.000.00
    FMS_7_4_030.000.00
    FMS_7_4_040.000.00
    FMS_7_4_050.000.00
    FMS_7_5_000 modifications totalling 0 lines
    FMS_7_5_010.000.00
    FMS_7_5_020.000.00
    FMS_7_5_030.000.00
    FMS_7_5_040.000.00
    FMS_7_5_050.000.00
    hex - time varying
    FMS_8__000 modifications totalling 0 lines
    FMS_8__010.000.00
    FMS_8__020.000.00
    Root file
    FMS_9__000 modifications totalling 0 lines
    FMS_9__010.000.00
    FMS_9__020.000.00
    Converted MFEM data: escher-p3-0ref
    FMS_10_000 modifications totalling 0 lines
    FMS_10_010.000.00
    FMS_10_020.000.00
    FMS_10_030.000.00
    Converted MFEM data: escher-p3
    FMS_11_000 modifications totalling 0 lines
    FMS_11_010.000.00
    FMS_11_020.000.00
    Converted MFEM data: Example15
    FMS_12_000 modifications totalling 0 lines
    FMS_12_010.000.00
    FMS_12_020.000.00
    FMS_12_030.000.00
    Converted MFEM data: Example9
    FMS_13_000 modifications totalling 0 lines
    FMS_13_010.000.00
    Converted MFEM data: fichera-q2-0ref
    FMS_14_000 modifications totalling 0 lines
    FMS_14_010.000.00
    FMS_14_020.000.00
    FMS_14_030.000.00
    Converted MFEM data: fichera-q2
    FMS_15_000 modifications totalling 0 lines
    FMS_15_010.000.00
    FMS_15_020.000.00
    Converted MFEM data: star-q3-0ref
    FMS_16_000 modifications totalling 0 lines
    FMS_16_010.000.00
    FMS_16_020.000.00
    FMS_16_030.000.00
    Converted MFEM data: star-q3
    FMS_17_000 modifications totalling 0 lines
    FMS_17_010.000.00
    FMS_17_020.000.00
    Converted MFEM data: toroid-hex-0ref
    FMS_18_000 modifications totalling 0 lines
    FMS_18_010.000.00
    FMS_18_020.000.00
    FMS_18_030.000.00
    Converted MFEM data: toroid-hex
    FMS_19_000 modifications totalling 0 lines
    FMS_19_010.000.00
    FMS_19_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_FMS_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_FMS_py.html new file mode 100644 index 000000000..6bf702da9 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_FMS_py.html @@ -0,0 +1,590 @@ +databases/FMS.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  FMS.py
    +#
    +#  Tests:      mesh      - high order meshes
    +#              plots     - Mesh, Pseudocolor
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Tue Aug  4 11:25:39 PDT 2020
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def FilterMetaData(s):
    +    lines = s.split("\n")
    +    txt = ""
    +    ignores=("exprList.","#expressions",".enum","simInfo.","blockNameScheme",".missingData","DataExtents =",".rectilinearGrid",".unitCell")
    +    for line in lines:
    +        keep = True
    +        for ig in ignores:
    +             if ig in line:
    +                 keep = False
    +                 break
    +        if keep:
    +            txt = txt + (line + "\n")
    +    return txt
    +
    +def test_mesh_plus_dofs(prefix, db1, order):
    +    OpenDatabase(db1)
    +
    +    # Get the metadata
    +    md = GetMetaData(db1)
    +    TestText(prefix+"_00", FilterMetaData(str(md)))
    +
    +    # Show the mesh (curved)
    +    AddPlot("Mesh", "mesh")
    +    m = MeshAttributes()
    +    m.lineWidth = 2
    +    SetPlotOptions(m)
    +    if order != "one":
    +        AddOperator("MultiresControl")
    +        mra = MultiresControlAttributes()
    +        mra.resolution = 10
    +        mra.maxResolution = 100
    +        SetOperatorOptions(mra)
    +    DrawPlots()
    +    delta = 0.03
    +    v0 = GetView2D()
    +    v0.windowCoords = (0.-delta, 1.+delta, 0.-delta, 1.+delta)
    +    v0.viewportCoords = (0.04, 0.98, 0.03, 0.98)
    +    v0.fullFrameActivationMode = v0.Auto  # On, Off, Auto
    +    v0.fullFrameAutoThreshold = 100
    +    v0.xScale = v0.LINEAR  # LINEAR, LOG
    +    v0.yScale = v0.LINEAR  # LINEAR, LOG
    +    v0.windowValid = 1
    +    SetView2D(v0)
    +    Test(prefix + "_01")
    +
    +    # Overlay the dofs
    +    DefineScalarExpression("X", "coords(dofs)[0]")
    +    AddPlot("Pseudocolor", "X")
    +    pc = PseudocolorAttributes()
    +    pc.pointSizePixels = 12
    +    pc.colorTableName = "hot_desaturated"
    +    SetPlotOptions(pc)
    +    AddOperator("Project")
    +    AddOperator("Transform")
    +    tform = TransformAttributes(1)
    +    tform.doTranslate = 1
    +    tform.translateZ = 0.01
    +    SetOperatorOptions(tform)
    +    DrawPlots()
    +    Test(prefix + "_02")
    +    DeleteActivePlots()
    +
    +    AddPlot("Pseudocolor", "zid")
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    Test(prefix + "_03")
    +
    +def domain_test(datapath, prefix, protocol, order):
    +    db1 = pjoin(datapath,"domains_"+protocol+"_order_"+order+".fms")
    +    test_mesh_plus_dofs(prefix, db1, order)
    +    # Cleanup
    +    DeleteAllPlots()
    +    CloseDatabase(db1)
    +    CloseComputeEngine()
    +
    +def quads_test(datapath, prefix, protocol, order):
    +    db1 = pjoin(datapath,"quads_"+protocol+"_order_"+order+".fms")
    +    test_mesh_plus_dofs(prefix, db1, order)
    +
    +    ChangeActivePlotsVar("r1")
    +    DrawPlots()
    +    Test(prefix + "_04")
    +
    +    ChangeActivePlotsVar("r2")
    +    DrawPlots()
    +    Test(prefix + "_05")
    +
    +    ChangeActivePlotsVar("r3")
    +    DrawPlots()
    +    Test(prefix + "_06")
    +
    +    # Cleanup
    +    DeleteAllPlots()
    +    CloseDatabase(db1)
    +    CloseComputeEngine()
    +
    +def hex_test(datapath, prefix, protocol, order):
    +    db1 = pjoin(datapath,"hex_"+protocol+"_order_"+order+".fms")
    +    OpenDatabase(db1)
    +
    +    # Get the metadata
    +    md = GetMetaData(db1)
    +    TestText(prefix+"_00", FilterMetaData(str(md)))
    +
    +    # Show the mesh (curved)
    +    AddPlot("Mesh", "mesh")
    +    m = MeshAttributes()
    +    m.lineWidth = 2
    +    SetPlotOptions(m)
    +    if order != "one":
    +        AddOperator("MultiresControl")
    +        mra = MultiresControlAttributes()
    +        mra.resolution = 7
    +        mra.maxResolution = 100
    +        SetOperatorOptions(mra)
    +    DrawPlots()
    +    v0 = GetView3D()
    +    v0.viewNormal = (-0.736972, 0.363225, -0.570035)
    +    v0.focus = (0.499999, 0.500005, 0.499787)
    +    v0.viewUp = (0.289138, 0.931697, 0.219863)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 0.900499
    +    v0.nearPlane = -1.801
    +    v0.farPlane = 1.801
    +    v0.imagePan = (-0.00987149, 0.0367767)
    +    v0.imageZoom = 1.15249
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0.499999, 0.500005, 0.499787)
    +    v0.axis3DScaleFlag = 0
    +    v0.axis3DScales = (1, 1, 1)
    +    v0.shear = (0, 0, 1)
    +    v0.windowValid = 1
    +    SetView3D(v0)
    +    Test(prefix + "_01")
    +
    +    AddPlot("Pseudocolor", "zid")
    +    pc = PseudocolorAttributes()
    +    pc.colorTableName = "hot_desaturated"
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    Test(prefix + "_02")
    +
    +    ChangeActivePlotsVar("r1")
    +    Test(prefix + "_03")
    +
    +    ChangeActivePlotsVar("r2")
    +    Test(prefix + "_04")
    +
    +    # Check that order 3 interior dofs look ok.
    +    AddPlot("Contour", "r3")
    +    c = ContourAttributes(1)
    +    c.contourValue = (0.6, 0.8, 0.9, 1, 1.2)
    +    c.contourMethod = c.Value  # Level, Value, Percent
    +    SetPlotOptions(c)
    +    SetActivePlots((0,1)) # Delete mesh,pc plots
    +    DeleteActivePlots()
    +    DrawPlots()
    +    Test(prefix + "_05")
    +
    +    # Cleanup
    +    DeleteAllPlots()
    +    CloseDatabase(db1)
    +    CloseComputeEngine()
    +
    +def test0(datapath):
    +    protocol = "ascii"
    +    TestSection("domains - " + protocol)
    +    domain_test(datapath, "FMS_0_1", protocol, "one")
    +    domain_test(datapath, "FMS_0_2", protocol, "two")
    +    domain_test(datapath, "FMS_0_3", protocol, "three")
    +
    +def test1(datapath):
    +    protocol = "yaml"
    +    TestSection("domains - " + protocol)
    +    domain_test(datapath, "FMS_1_1", protocol, "one")
    +    domain_test(datapath, "FMS_1_2", protocol, "two")
    +    domain_test(datapath, "FMS_1_3", protocol, "three")
    +
    +def test2(datapath):
    +    protocol = "json"
    +    TestSection("domains - " + protocol)
    +    domain_test(datapath, "FMS_2_1", protocol, "one")
    +    domain_test(datapath, "FMS_2_2", protocol, "two")
    +    domain_test(datapath, "FMS_2_3", protocol, "three")
    +
    +def test3(datapath):
    +    protocol = "hdf5"
    +    TestSection("domains - " + protocol)
    +    domain_test(datapath, "FMS_3_1", protocol, "one")
    +    domain_test(datapath, "FMS_3_2", protocol, "two")
    +    domain_test(datapath, "FMS_3_3", protocol, "three")
    +
    +def test4(datapath):
    +    protocol = "ascii"
    +    TestSection("quads - " + protocol)
    +    quads_test(datapath, "FMS_4_1", protocol, "one")
    +    quads_test(datapath, "FMS_4_2", protocol, "two")
    +    quads_test(datapath, "FMS_4_3", protocol, "three")
    +
    +def test5(datapath):
    +    protocol = "yaml"
    +    TestSection("quads - " + protocol)
    +    quads_test(datapath, "FMS_5_1", protocol, "one")
    +    quads_test(datapath, "FMS_5_2", protocol, "two")
    +    quads_test(datapath, "FMS_5_3", protocol, "three")
    +
    +def test6(datapath):
    +    protocol = "ascii"
    +    TestSection("hex - " + protocol)
    +    hex_test(datapath, "FMS_6_1", protocol, "one")
    +    hex_test(datapath, "FMS_6_2", protocol, "two")
    +    hex_test(datapath, "FMS_6_3", protocol, "three")
    +    hex_test(datapath, "FMS_6_4", protocol, "four")
    +    hex_test(datapath, "FMS_6_5", protocol, "five")
    +
    +def test7(datapath):
    +    protocol = "hdf5"
    +    TestSection("hex - " + protocol)
    +    hex_test(datapath, "FMS_7_1", protocol, "one")
    +    hex_test(datapath, "FMS_7_2", protocol, "two")
    +    hex_test(datapath, "FMS_7_3", protocol, "three")
    +    hex_test(datapath, "FMS_7_4", protocol, "four")
    +    hex_test(datapath, "FMS_7_5", protocol, "five")
    +
    +def test8(datapath):
    +    TestSection("hex - time varying")
    +    prefix = "FMS_8_"
    +    db1 = pjoin(datapath,"hex*.fms database")
    +    OpenDatabase(db1)
    +
    +    # Get the metadata
    +    md = GetMetaData(db1)
    +    TestText(prefix+"_00", FilterMetaData(str(md)))
    +
    +    # Show the mesh (curved)
    +    AddPlot("Mesh", "mesh")
    +    m = MeshAttributes()
    +    m.lineWidth = 2
    +    SetPlotOptions(m)
    +    AddOperator("MultiresControl")
    +    mra = MultiresControlAttributes()
    +    mra.resolution = 7
    +    mra.maxResolution = 100
    +    SetOperatorOptions(mra)
    +    DrawPlots()
    +    v0 = GetView3D()
    +    v0.viewNormal = (-0.722008, 0.525589, -0.449957)
    +    v0.focus = (0.500085, 0.501459, 0.49554)
    +    v0.viewUp = (0.465249, 0.850161, 0.246515)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 0.989501
    +    v0.nearPlane = -1.979
    +    v0.farPlane = 1.979
    +    v0.imagePan = (0, 0)
    +    v0.imageZoom = 1.12555
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0.500085, 0.501459, 0.49554)
    +    v0.axis3DScaleFlag = 0
    +    v0.axis3DScales = (1, 1, 1)
    +    v0.shear = (0, 0, 1)
    +    v0.windowValid = 1
    +    SetView3D(v0)
    +
    +    AddPlot("Pseudocolor", "r3")
    +    pc = PseudocolorAttributes()
    +    pc.colorTableName = "hot_desaturated"
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    Test(prefix + "_01")
    +
    +    SetTimeSliderState(9)
    +    Test(prefix + "_02")
    +
    +    # Cleanup
    +    DeleteAllPlots()
    +    CloseDatabase(db1)
    +    CloseComputeEngine()
    +
    +def test9(datapath):
    +    TestSection("Root file")
    +    prefix = "FMS_9_"
    +    db1 = pjoin(datapath,"multidom.fms_root")
    +    OpenDatabase(db1)
    +
    +    # Get the metadata
    +    md = GetMetaData(db1)
    +    TestText(prefix+"_00", FilterMetaData(str(md)))
    +
    +    # Show the mesh (curved)
    +    AddPlot("Mesh", "mesh")
    +    m = MeshAttributes()
    +    m.lineWidth = 2
    +    SetPlotOptions(m)
    +    DrawPlots()
    +    AddPlot("Pseudocolor", "coords_magnitude")
    +    pc = PseudocolorAttributes()
    +    pc.colorTableName = "hot_desaturated"
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    ResetView()
    +    Test(prefix + "_01")
    +
    +    DeleteActivePlots()
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test(prefix + "_02")
    +
    +    # Cleanup
    +    DeleteAllPlots()
    +    CloseDatabase(db1)
    +    CloseComputeEngine()
    +
    +def plot_converted_data(prefix, db, var, v0, resolution, meshName, dodof):
    +    OpenDatabase(db)
    +
    +    # Get the metadata
    +    md = GetMetaData(db)
    +    TestText(prefix+"_00", FilterMetaData(str(md)))
    +
    +    AddPlot("Pseudocolor", var)
    +    pc = PseudocolorAttributes()
    +    pc.colorTableName = "hot_desaturated"
    +    SetPlotOptions(pc)
    +    AddOperator("MultiresControl")
    +    mra = MultiresControlAttributes()
    +    mra.resolution = resolution
    +    mra.maxResolution = 100
    +    SetOperatorOptions(mra)
    +    DrawPlots()
    +
    +    # Try setting the view.
    +    try:
    +        SetView3D(v0)
    +    except:
    +        try:
    +            SetView2D(v0)
    +        except:
    +            ResetView()
    +
    +
    +    Test(prefix + "_01")
    +
    +    # Add a mesh plot of the boundaries and refine them.
    +    if meshName != "":
    +        AddPlot("Mesh", meshName, 1, 1)
    +        m = MeshAttributes(1)
    +        m.lineWidth = 1
    +        SetPlotOptions(m)
    +        DrawPlots()
    +        Test(prefix + "_02")
    +
    +    # Add a mesh plot of the dofs.
    +    if dodof:
    +        AddPlot("Mesh", "dofs", 0, 0)
    +        m2 = MeshAttributes(1)
    +        m2.meshColor = (255, 0, 0, 255)
    +        m2.meshColorSource = m2.MeshCustom  # Foreground, MeshCustom, MeshRandom
    +        m2.pointSize = 0.075
    +        m2.opaqueColor = (255, 255, 255, 255)
    +        m2.pointType = m2.SphereGeometry  # Box, Axis, Icosahedron, Octahedron, Tetrahedron, SphereGeometry, Point, Sphere
    +        m2.pointSizePixels = 10
    +        m2.opacity = 1
    +        SetPlotOptions(m2)
    +        DrawPlots()
    +        Test(prefix + "_03")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +    CloseComputeEngine()
    +
    +def escher_view():
    +    v0 = GetView3D()
    +    v0.viewNormal = (0.301943, 0.349059, 0.887124)
    +    v0.focus = (0.015155, 0.00931501, 0.00220501)
    +    v0.viewUp = (-0.108572, 0.937093, -0.331767)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 2.69081
    +    v0.nearPlane = -5.38163
    +    v0.farPlane = 5.38163
    +    v0.imagePan = (-0.011426, -0.0216873)
    +    v0.imageZoom = 1.62652
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0.015155, 0.00931501, 0.00220501)
    +    v0.axis3DScaleFlag = 0
    +    v0.axis3DScales = (1, 1, 1)
    +    v0.shear = (0, 0, 1)
    +    v0.windowValid = 1
    +    return v0
    +
    +def test10(datapath):
    +    TestSection("Converted MFEM data: escher-p3-0ref")
    +    db = pjoin(datapath,"converted-data/escher-p3-0ref/Example5_000000.fms")
    +
    +    v0 = escher_view()
    +    plot_converted_data("FMS_10", db, "pressure", v0, 5, "boundary", True)
    +
    +def test11(datapath):
    +    TestSection("Converted MFEM data: escher-p3")
    +    db = pjoin(datapath,"converted-data/escher-p3/Example5_000000.fms")
    +
    +    v0 = escher_view()
    +    plot_converted_data("FMS_11", db, "pressure", v0, 4, "boundary", False)
    +
    +def test12(datapath):
    +    TestSection("Converted MFEM data: Example15")
    +    db = pjoin(datapath,"converted-data/Example15/Example15_000000.fms")
    +
    +    v0 = GetView2D()
    +    v0.windowCoords = (-1.74594, 1.76718, -1.7, 1.55366)
    +    v0.viewportCoords = (0.01, 0.99, 0.01, 0.99)
    +    v0.fullFrameActivationMode = v0.Auto  # On, Off, Auto
    +    v0.fullFrameAutoThreshold = 100
    +    v0.xScale = v0.LINEAR  # LINEAR, LOG
    +    v0.yScale = v0.LINEAR  # LINEAR, LOG
    +    v0.windowValid = 1
    +
    +    plot_converted_data("FMS_12", db, "solution", v0, 8, "boundary", True)
    +
    +def test13(datapath):
    +    TestSection("Converted MFEM data: Example9")
    +    db = pjoin(datapath,"converted-data/Example9/Example9_000000.fms")
    +
    +    v0 = GetView2D()
    +    v0.windowCoords = (-1, 1, -0.966025, 0.866025)
    +    v0.viewportCoords = (0.01, 0.99, 0.01, 0.99)
    +    v0.fullFrameActivationMode = v0.Auto  # On, Off, Auto
    +    v0.fullFrameAutoThreshold = 100
    +    v0.xScale = v0.LINEAR  # LINEAR, LOG
    +    v0.yScale = v0.LINEAR  # LINEAR, LOG
    +    v0.windowValid = 1
    +
    +    plot_converted_data("FMS_13", db, "solution", v0, 8, "", False)
    +
    +def fichera_view():
    +    v0 = GetView3D()
    +    v0.viewNormal = (0.76587, 0.438546, -0.470235)
    +    v0.focus = (0.00682861, 0.00298607, -0.00561833)
    +    v0.viewUp = (-0.368491, 0.898664, 0.237945)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 1.82615
    +    v0.nearPlane = -3.6523
    +    v0.farPlane = 3.6523
    +    v0.imagePan = (0.00522255, 0.0292194)
    +    v0.imageZoom = 1.09494
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0.00682861, 0.00298607, -0.00561833)
    +    v0.axis3DScaleFlag = 0
    +    v0.axis3DScales = (1, 1, 1)
    +    v0.shear = (0, 0, 1)
    +    v0.windowValid = 1
    +    return v0
    +
    +def test14(datapath):
    +    TestSection("Converted MFEM data: fichera-q2-0ref")
    +    db = pjoin(datapath,"converted-data/fichera-q2-0ref/Example5_000000.fms")
    +
    +    v0 = fichera_view()
    +    plot_converted_data("FMS_14", db, "pressure", v0, 8, "boundary", True)
    +
    +def test15(datapath):
    +    TestSection("Converted MFEM data: fichera-q2")
    +    db = pjoin(datapath,"converted-data/fichera-q2/Example5_000000.fms")
    +
    +    v0 = fichera_view()
    +    plot_converted_data("FMS_15", db, "pressure", v0, 4, "boundary", False)
    +
    +def test16(datapath):
    +    TestSection("Converted MFEM data: star-q3-0ref")
    +    db = pjoin(datapath,"converted-data/star-q3-0ref/Example5_000000.fms")
    +
    +    v0 = GetView2D()
    +    v0.windowCoords = (-1.8181, 1.8181, -1.7, 1.58418)
    +    v0.viewportCoords = (0.01, 0.99, 0.01, 0.99)
    +    v0.fullFrameActivationMode = v0.Auto  # On, Off, Auto
    +    v0.fullFrameAutoThreshold = 100
    +    v0.xScale = v0.LINEAR  # LINEAR, LOG
    +    v0.yScale = v0.LINEAR  # LINEAR, LOG
    +    v0.windowValid = 1
    +
    +    plot_converted_data("FMS_16", db, "pressure", v0, 8, "mesh", True)
    +
    +def test17(datapath):
    +    TestSection("Converted MFEM data: star-q3")
    +    db = pjoin(datapath,"converted-data/star-q3/Example5_000000.fms")
    +
    +    v0 = GetView2D()
    +    v0.windowCoords = (-1.8181, 1.8181, -1.7, 1.58418)
    +    v0.viewportCoords = (0.01, 0.99, 0.01, 0.99)
    +    v0.fullFrameActivationMode = v0.Auto  # On, Off, Auto
    +    v0.fullFrameAutoThreshold = 100
    +    v0.xScale = v0.LINEAR  # LINEAR, LOG
    +    v0.yScale = v0.LINEAR  # LINEAR, LOG
    +    v0.windowValid = 1
    +
    +    plot_converted_data("FMS_17", db, "pressure", v0, 4, "boundary", False)
    +
    +def toroid_view():
    +    v0 = GetView3D()
    +    v0.viewNormal = (0, 0, 1)
    +    v0.focus = (-0.0503261, 0, 0)
    +    v0.viewUp = (0, 1, 0)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 1.96586
    +    v0.nearPlane = -3.93172
    +    v0.farPlane = 3.93172
    +    v0.imagePan = (0, 0)
    +    v0.imageZoom = 1.29234
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (-0.0503261, 0, 0)
    +    v0.axis3DScaleFlag = 0
    +    v0.axis3DScales = (1, 1, 1)
    +    v0.shear = (0, 0, 1)
    +    v0.windowValid = 1
    +    return v0
    +
    +def test18(datapath):
    +    TestSection("Converted MFEM data: toroid-hex-0ref")
    +    db = pjoin(datapath,"converted-data/toroid-hex-0ref/Example5_000000.fms")
    +
    +    v0 = toroid_view()
    +    plot_converted_data("FMS_18", db, "pressure", v0, 8, "mesh", True)
    +
    +def test19(datapath):
    +    TestSection("Converted MFEM data: toroid-hex")
    +    db = pjoin(datapath,"converted-data/toroid-hex/Example5_000000.fms")
    +
    +    v0 = toroid_view()
    +    plot_converted_data("FMS_19", db, "pressure", v0, 4, "boundary", False)
    +
    +def main():
    +    RequiredDatabasePlugin("FMS")
    +
    +    datapath = data_path("FMS_test_data")
    +    DefineScalarExpression("zid", "zoneid(mesh)")
    +
    +    # domains
    +    test0(datapath)
    +    test1(datapath)
    +    test2(datapath)
    +    test3(datapath)
    +    # quads
    +    test4(datapath)
    +    test5(datapath)
    +    # hex
    +    test6(datapath)
    +    test7(datapath)
    +    # time varying data
    +    test8(datapath)
    +    # root
    +    test9(datapath)
    +    # Datasets that were converted from MFEM to FMS
    +    test10(datapath)
    +    test11(datapath)
    +    test12(datapath)
    +    test13(datapath)
    +    test14(datapath)
    +    test15(datapath)
    +    test16(datapath)
    +    test17(datapath)
    +    test18(datapath)
    +    test19(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Fluent.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Fluent.html new file mode 100644 index 000000000..15114ec80 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Fluent.html @@ -0,0 +1,60 @@ + +Results for databases/Fluent.py + +

    Results of VisIt Regression Test - databases/Fluent

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Fluent_010.000.00
    Fluent_020.000.00
    Fluent_030.000.00
    Fluent_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Fluent_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Fluent_py.html new file mode 100644 index 000000000..99af9b283 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Fluent_py.html @@ -0,0 +1,43 @@ +databases/Fluent.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  Fluent.py
    +#
    +#  Programmer: Hank Childs
    +#  Date:       September 8, 2006
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Tue Jul 15 10:43:58 EDT 2008
    +#    Changed number of vectors in vector plot to match the old behavior.
    +#    (We now account for how many domains there are.)
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(data_path("Fluent_test_data/Gas2OxyEntSlurry3d30m_MSmods_Ar_Wen_Moist_CO2_WGS_HCl_COdevol.cas"))
    +
    +AddPlot("Pseudocolor", "TEMPERATURE")
    +DrawPlots()
    +Test("Fluent_01")
    +
    +AddPlot("Mesh", "Mesh")
    +DrawPlots()
    +Test("Fluent_02")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Vector", "DPMS_MOM")
    +v = VectorAttributes()
    +v.nVectors = 400*5
    +SetPlotOptions(v)
    +DrawPlots()
    +Test("Fluent_03")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Subset", "blocks")
    +DrawPlots()
    +Test("Fluent_04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_GDAL.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_GDAL.html new file mode 100644 index 000000000..3a9887f75 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_GDAL.html @@ -0,0 +1,130 @@ + +Results for databases/GDAL.py + +

    Results of VisIt Regression Test - databases/GDAL

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ArcInfo files
    GDAL_0_000.000.00
    GDAL_0_010.000.00
    GDAL_0_020.000.01
    GDAL_0_030.000.00
    GDAL_0_040.000.00
    GDAL_0_050.000.00
    GDAL_0_060.000.00
    DEM files
    GDAL_1_000.000.00
    GDAL_1_010.000.00
    GDAL_1_020.000.01
    GDAL_1_030.000.00
    GDAL_1_040.000.00
    GDAL_1_050.000.00
    GDAL_1_060.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_GDAL_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_GDAL_py.html new file mode 100644 index 000000000..3b9a83338 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_GDAL_py.html @@ -0,0 +1,107 @@ +databases/GDAL.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  GDAL.py
    +#
    +#  Tests:      mesh      - 2D structured, 3D unstructured
    +#              plots     - Contour, Pseudocolor
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Sep 8 16:35:17 PST 2005
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("GDAL")
    +
    +def test0_and_1(db, prefix):
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "lower_res/resolution_0067x0086/height")
    +    AddPlot("Contour", "lower_res/resolution_0067x0086/height")
    +    c = ContourAttributes()
    +    c.colorType = c.ColorBySingleColor
    +    c.singleColor = (0,0,0,255)
    +    c.legendFlag = 0
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    ResetView()
    +    v = View2DAttributes()
    +    v.windowCoords = (478545, 489295, 4.38614e+06, 4.40004e+06)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +    v.fullFrameAutoThreshold = 100
    +    SetView2D(v)
    +    Test(prefix + "00")
    +
    +    # Increase the resolution a couple times.
    +    SetActivePlots((0,1))
    +    ChangeActivePlotsVar("lower_res/resolution_0268x0347/height")
    +    Test(prefix + "01")
    +    ChangeActivePlotsVar("height")
    +    Test(prefix + "02")
    +
    +    # Switch to the elevated mesh
    +    ChangeActivePlotsVar("elevated/lower_res/resolution_0067x0086/height")
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (0.514425, -0.612921, 0.599745)
    +    v0.focus = (483920, 4.39318e+06, 2025.5)
    +    v0.viewUp = (-0.383293, 0.461288, 0.800187)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 8729.59
    +    v0.nearPlane = -17459.2
    +    v0.farPlane = 17459.2
    +    v0.imagePan = (0, 0)
    +    v0.imageZoom = 1.16907
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (483920, 4.39318e+06, 2025.5)
    +    SetView3D(v0)
    +    Test(prefix + "03")
    +
    +    v1 = View3DAttributes()
    +    v1.viewNormal = (0.514425, -0.612921, 0.599745)
    +    v1.focus = (483920, 4.39312e+06, 2031)
    +    v1.viewUp = (-0.383293, 0.461288, 0.800187)
    +    v1.viewAngle = 30
    +    v1.parallelScale = 8777.87
    +    v1.nearPlane = -17555.7
    +    v1.farPlane = 17555.7
    +    v1.imagePan = (0.106418, 0.0224564)
    +    v1.imageZoom = 2.73653
    +    v1.perspective = 1
    +    v1.eyeAngle = 2
    +    v1.centerOfRotationSet = 0
    +    v1.centerOfRotation = (483920, 4.39312e+06, 2031)
    +    SetView3D(v1)
    +    Test(prefix + "04")
    +
    +    SetActivePlots(1)
    +    DeleteActivePlots()
    +    ChangeActivePlotsVar("elevated/lower_res/resolution_0268x0347/height")
    +    Test(prefix + "05")
    +    ChangeActivePlotsVar("elevated/mesh/height")
    +    Test(prefix + "06")
    +    DeleteAllPlots()
    +
    +def test0(datapath):
    +    TestSection("ArcInfo files")
    +    test0_and_1(pjoin(datapath,"ADF/w001001.adf"), "GDAL_0_")
    +
    +def test1(datapath):
    +    TestSection("DEM files")
    +    test0_and_1(pjoin(datapath,"DEM/Morrison.dem"), "GDAL_1_")
    +
    +def main():
    +    # Draw antialiased lines
    +    r = GetRenderingAttributes()
    +    r.antialiasing = 1
    +    SetRenderingAttributes(r)
    +
    +    datapath = data_path("GDAL_test_data")
    +    test0(datapath)
    +    test1(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_NASTRAN.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_NASTRAN.html new file mode 100644 index 000000000..1cbb3807a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_NASTRAN.html @@ -0,0 +1,204 @@ + +Results for databases/NASTRAN.py + +

    Results of VisIt Regression Test - databases/NASTRAN

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    pipe.nas
    nastran1_00.000.00
    nastran1_10.000.00
    nastran1_20.000.00
    waterjacket.nas
    nastran2_00.000.00
    nastran2_10.000.00
    nastran2_20.000.00
    intake.nas
    nastran3_00.000.00
    nastran3_10.000.00
    nastran3_20.000.00
    porsche.nas
    nastran4_00.000.00
    nastran4_10.000.00
    nastran4_20.000.00
    Rohr_01.nas
    nastran5_00.000.00
    nastran5_10.000.00
    BMSP4E.nas
    nastran6_00.000.00
    HAM6D.nas
    nastran7_00.000.00
    nastran7_10.000.00
    simpleCQUAD8.nas
    nastran8_00.000.00
    simpleQuadSphere.nas
    nastran9_00.000.00
    simpleQuadSphereBlock.nas
    nastran10_00.000.00
    simpleQuadTet.nas
    nastran11_00.000.00
    simpleQuadWedge.nas
    nastran12_00.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_NASTRAN_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_NASTRAN_py.html new file mode 100644 index 000000000..d3667841a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_NASTRAN_py.html @@ -0,0 +1,511 @@ +databases/NASTRAN.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  NASTRAN.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - Mesh
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Jul 7 17:46:51 PST 2005
    +#
    +#  Modifications:
    +#    Edward Rusu, Tue Aug 21 10:06:24 PST 2018
    +#    Added tests for quadratic elements.
    +#
    +#    Kathleen Biagas, Wed Feb 16 09:15:45 PST 2022
    +#    Replace use of meshatts 'foregroundFlag' and 'backgroundFlag' with
    +#    meshColorSource and opaqueColorSource.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def AddMeshPlot():
    +    AddPlot("Mesh", "mesh")
    +    m = MeshAttributes()
    +    m.legendFlag = 0
    +    m.opaqueColor = (153, 204, 255, 255)
    +    m.opaqueColorSource = m.OpaqueCustom
    +    m.meshColorSource = m.MeshCustom
    +    m.meshColor = (0,0,0,255)
    +    SetPlotOptions(m)
    +
    +def AddPseudocolorPlot():
    +    AddPlot("Pseudocolor", "one")
    +    p = PseudocolorAttributes()
    +    p.colorTableName = "rainbow"
    +    p.SetOpacityType(p.Constant)
    +    p.opacity = 0.2
    +    SetPlotOptions(p)
    +    DrawPlots()
    +
    +def test1(datapath):
    +    db = "pipe.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.786306, 0.379526, 0.487527)
    +    v.focus = (0.149902, 0.212562, 0.124929)
    +    v.viewUp = (0.316186, 0.925114, -0.210215)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.585963
    +    v.nearPlane = -1.17193
    +    v.farPlane = 1.17193
    +    v.imagePan = (0.0173275, 0.033058)
    +    v.imageZoom = 1.45734
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.149902, 0.212562, 0.124929)
    +    SetView3D(v)
    +    Test("nastran1_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.786306, 0.379526, 0.487527)
    +    v2.focus = (0.149902, 0.212562, 0.124929)
    +    v2.viewUp = (0.316186, 0.925114, -0.210215)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 0.585963
    +    v2.nearPlane = -1.17193
    +    v2.farPlane = 1.17193
    +    v2.imagePan = (-0.108127, 0.0971661)
    +    v2.imageZoom = 6.92887
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0.149902, 0.212562, 0.124929)
    +    SetView3D(v2)
    +    Test("nastran1_1")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    SetView3D(v)
    +    Test("nastran1_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test2(datapath):
    +    db = "waterjacket.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.65317, -0.673371, 0.346324)
    +    v.focus = (0.03, -0.03, -0.1125)
    +    v.viewUp = (0.225064, 0.264053, 0.937882)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.289925
    +    v.nearPlane = -0.579849
    +    v.farPlane = 0.579849
    +    v.imagePan = (0.0984407, 0.0467479)
    +    v.imageZoom = 1.40003
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.03, -0.03, -0.1125)
    +    SetView3D(v)
    +    Test("nastran2_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.65317, -0.673371, 0.346324)
    +    v2.focus = (0.03, -0.03, -0.1125)
    +    v2.viewUp = (0.225064, 0.264053, 0.937882)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 0.289925
    +    v2.nearPlane = -0.579849
    +    v2.farPlane = 0.579849
    +    v2.imagePan = (0.100347, 0.0410472)
    +    v2.imageZoom = 7.7658
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0.03, -0.03, -0.1125)
    +    SetView3D(v2)
    +    Test("nastran2_1")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    SetView3D(v)
    +    Test("nastran2_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test3(datapath):
    +    db = "intake.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.61876, 0.311053, -0.721375)
    +    v.focus = (0, 0.011, -0.0935)
    +    v.viewUp = (0.208418, 0.950364, 0.231021)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.198752
    +    v.nearPlane = -0.397503
    +    v.farPlane = 0.397503
    +    v.imagePan = (0.0151275, 0.00167627)
    +    v.imageZoom = 1.43299
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0.011, -0.0935)
    +    SetView3D(v)
    +    Test("nastran3_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.61876, 0.311053, -0.721375)
    +    v2.focus = (0, 0.011, -0.0935)
    +    v2.viewUp = (0.208418, 0.950364, 0.231021)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 0.198752
    +    v2.nearPlane = -0.397503
    +    v2.farPlane = 0.397503
    +    v2.imagePan = (-0.101283, 0.0396808)
    +    v2.imageZoom = 6.28038
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0, 0.011, -0.0935)
    +    SetView3D(v2)
    +    Test("nastran3_1")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    SetView3D(v)
    +    Test("nastran3_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test4(datapath):
    +    db = "porsche.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (0.518428, 0.424019, 0.74259)
    +    v.focus = (0, 7.9285, 0)
    +    v.viewUp = (-0.299854, 0.903405, -0.306506)
    +    v.viewAngle = 30
    +    v.parallelScale = 24.7409
    +    v.nearPlane = -5
    +    v.farPlane = 49.4817
    +    v.imagePan = (0.00934164, 0.144131)
    +    v.imageZoom = 4.02409
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 7.9285, 0)
    +    SetView3D(v)
    +    Test("nastran4_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (0.518428, 0.424019, 0.74259)
    +    v2.focus = (0, 7.9285, 0)
    +    v2.viewUp = (-0.299854, 0.903405, -0.306506)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 24.7409
    +    v2.nearPlane = -5
    +    v2.farPlane = 49.4817
    +    v2.imagePan = (0.0898178, 0.146581)
    +    v2.imageZoom = 19.659
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0, 7.9285, 0)
    +    SetView3D(v2)
    +    Test("nastran4_1")
    +
    +    v3 = View3DAttributes()
    +    v3.viewNormal = (0.945904, 0.10945, -0.305429)
    +    v3.focus = (0, 7.9285, 0)
    +    v3.viewUp = (-0.0962433, 0.993666, 0.0580174)
    +    v3.viewAngle = 30
    +    v3.parallelScale = 24.7409
    +    v3.nearPlane = -8
    +    v3.farPlane = 49.4817
    +    v3.imagePan = (-0.000386251, 0.195232)
    +    v3.imageZoom = 17.0743
    +    v3.perspective = 1
    +    v3.eyeAngle = 2
    +    v3.centerOfRotationSet = 0
    +    v3.centerOfRotation = (0, 7.9285, 0)
    +    SetView3D(v3)
    +    Test("nastran4_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test5(datapath):
    +    db = "Rohr_01.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (0.528785, -0.54024, -0.654619)
    +    v.focus = (4308, -300.408, 1264.41)
    +    v.viewUp = (0.848128, 0.365992, 0.383052)
    +    v.viewAngle = 30
    +    v.parallelScale = 80.5714
    +    v.nearPlane = -161.143
    +    v.farPlane = 161.143
    +    v.imagePan = (0.00712918, 0.0383046)
    +    v.imageZoom = 1.48788
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (4308, -300.408, 1264.41)
    +    SetView3D(v)
    +    Test("nastran5_0")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    Test("nastran5_1")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test6(datapath):
    +    db = "BMSP4E.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (0.489205, 0.349064, 0.79927)
    +    v.focus = (0, 45.5, 0)
    +    v.viewUp = (-0.206708, 0.93671, -0.282569)
    +    v.viewAngle = 30
    +    v.parallelScale = 87.3806
    +    v.nearPlane = -174.761
    +    v.farPlane = 174.761
    +    v.imagePan = (-0.0102947, 0.0427356)
    +    v.imageZoom = 1.29632
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 45.5, 0)
    +    SetView3D(v)
    +    Test("nastran6_0")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test7(datapath):
    +    db = "HAM6D.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (0.470653, -0.53132, 0.704403)
    +    v.focus = (23.6, -6.3125, 0)
    +    v.viewUp = (0.882043, 0.303259, -0.360602)
    +    v.viewAngle = 30
    +    v.parallelScale = 74.2944
    +    v.nearPlane = -148.589
    +    v.farPlane = 148.589
    +    v.imagePan = (0.0131053, 0.00691564)
    +    v.imageZoom = 1.18535
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (23.6, -6.3125, 0)
    +    SetView3D(v)
    +    Test("nastran7_0")
    +
    +    v.viewNormal = (0.347772, 0.646944, -0.678615)
    +    v.focus = (23.6, -6.3125, 0)
    +    v.viewUp = (0.937573, -0.242724, 0.249084)
    +    v.viewAngle = 30
    +    v.parallelScale = 74.2944
    +    v.nearPlane = -148.589
    +    v.farPlane = 148.589
    +    v.imagePan = (-0.0229218, 0.0211742)
    +    v.imageZoom = 1.18535
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (23.6, -6.3125, 0)
    +    SetView3D(v)
    +    Test("nastran7_1")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test8(datapath):
    +    db = "simpleCQUAD8.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +    Test("nastran8_0")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test9(datapath):
    +    db = "simpleQuadSphere.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0, 0, 1)
    +    View3DAtts.focus = (2.88777, -1.45671, -0.629586)
    +    View3DAtts.viewUp = (0, 1, 0)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 6.98115
    +    View3DAtts.nearPlane = -13.9623
    +    View3DAtts.farPlane = 13.9623
    +    View3DAtts.imagePan = (0.204513, -0.111237)
    +    View3DAtts.imageZoom = 5.50207
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (2.88777, -1.45671, -0.629586)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +    Test("nastran9_0")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test10(datapath):
    +    db = "simpleQuadSphereBlock.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0, 0, 1)
    +    View3DAtts.focus = (0, -1.38778, -3.66334)
    +    View3DAtts.viewUp = (0, 1, 0)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 12.6655
    +    View3DAtts.nearPlane = -25.3309
    +    View3DAtts.farPlane = 25.3309
    +    View3DAtts.imagePan = (-0.00429799, -0.061086)
    +    View3DAtts.imageZoom = 9.89552
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0, -1.38778, -3.66334)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +    Test("nastran10_0")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test11(datapath):
    +    db = "simpleQuadTet.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0.585895, 0.392177, 0.709172)
    +    View3DAtts.focus = (0.5, 0.5, 0.5)
    +    View3DAtts.viewUp = (-0.133518, 0.909858, -0.39285)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 0.866025
    +    View3DAtts.nearPlane = -1.73205
    +    View3DAtts.farPlane = 1.73205
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0.5, 0.5, 0.5)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +    Test("nastran11_0")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test12(datapath):
    +    db = "simpleQuadWedge.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (-0.468638, 0.237166, 0.850959)
    +    View3DAtts.focus = (0.5, 0.5, 0.5)
    +    View3DAtts.viewUp = (0.128356, 0.971346, -0.20003)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 0.866025
    +    View3DAtts.nearPlane = -1.73205
    +    View3DAtts.farPlane = 1.73205
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0.5, 0.5, 0.5)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +    Test("nastran12_0")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def main():
    +    # Set the window background color
    +    a = GetAnnotationAttributes()
    +    a.backgroundMode = a.Solid
    +    a.backgroundColor = (180, 180, 180, 255)
    +    a.foregroundColor = (255, 255, 255, 255)
    +    SetAnnotationAttributes(a)
    +
    +    DefineScalarExpression("one", "(zoneid(mesh) + 1) / (zoneid(mesh) + 1)")
    +
    +    datapath = data_path("NASTRAN_test_data")
    +    test1(datapath)
    +    test2(datapath)
    +    test3(datapath)
    +    test4(datapath)
    +    test5(datapath)
    +    test6(datapath)
    +    test7(datapath)
    +    test8(datapath)
    +    test9(datapath)
    +    test10(datapath)
    +    test11(datapath)
    +    test12(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_OpenFOAM.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_OpenFOAM.html new file mode 100644 index 000000000..2999c6729 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_OpenFOAM.html @@ -0,0 +1,210 @@ + +Results for databases/OpenFOAM.py + +

    Results of VisIt Regression Test - databases/OpenFOAM

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    OpenFOAM_010.000.00
    OpenFOAM_020.000.00
    OpenFOAM_030.000.00
    OpenFOAM_040.000.00
    OpenFOAM_050.000.00
    OpenFOAM_060.000.00
    OpenFOAM_070.000.00
    OpenFOAM_080.000.00
    OpenFOAM_090.000.00
    OpenFOAM_100.000.00
    OpenFOAM_lagrangian_010.000.00
    OpenFOAM_lagrangian_020.000.00
    OpenFOAM_lagrangian_030.000.00
    OpenFOAM_lagrangian_040.000.00
    OpenFOAM_lagrangian_050.000.00
    OpenFOAM_lagrangian_060.000.00
    OpenFOAM_lagrangian_070.000.00
    OpenFOAM_MultiRegion_010.000.00
    OpenFOAM_MultiRegion_020.000.00
    OpenFOAM_MultiRegion_030.000.00
    OpenFOAM_MultiRegion_040.000.00
    OpenFOAM_MultiRegion_050.000.00
    OpenFOAM_MultiRegion_060.000.00
    OpenFOAM_Decomposed_010.000.00
    OpenFOAM_Decomposed_020.000.00
    OpenFOAM_Decomposed_030.000.00
    OpenFOAM_ReadZones_010.000.00
    OpenFOAM_ReadZones_020.000.00
    OpenFOAM_ReadZones_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_OpenFOAM_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_OpenFOAM_py.html new file mode 100644 index 000000000..e7e12f415 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_OpenFOAM_py.html @@ -0,0 +1,250 @@ +databases/OpenFOAM.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  OpenFOAM.py
    +#
    +#  Programmer: Hank Childs
    +#  Date:       September 8, 2006
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Tue Jul 15 10:43:58 EDT 2008
    +#    Changed number of vectors in vector plot to match the old behavior.
    +#    (We now account for how many domains there are.)
    +#
    +#    Kathleen Biagas, Tue Aug 20 14:06:46 PDT 2013
    +#    Reader has been updated, default mesh is now 'internalMesh', and
    +#    variables need mesh name.
    +#
    +#    Kathleen Biagas, Wed Aug 28 12:04:03 PDT 2013
    +#    Added tests for new data, different Open Options.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def OrigTests():
    +    OpenDatabase(data_path("OpenFOAM_test_data/bubbleColumn/system/controlDict"))
    +
    +    AddPlot("Vector", "internalMesh/Ua")
    +    v = VectorAttributes()
    +    v.nVectors = 400*5
    +    SetPlotOptions(v)
    +    DrawPlots()
    +    Test("OpenFOAM_01")
    +
    +    TimeSliderNextState()
    +    Test("OpenFOAM_02")
    +    TimeSliderNextState()
    +    Test("OpenFOAM_03")
    +
    +    AddPlot("Mesh", "internalMesh")
    +    DrawPlots()
    +    Test("OpenFOAM_04")
    +
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "internalMesh/epsilon")
    +    DrawPlots()
    +    Test("OpenFOAM_05")
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(data_path("OpenFOAM_test_data/mixer2D_ascii/system/controlDict"))
    +
    +    AddPlot("Vector", "internalMesh/U")
    +    v = VectorAttributes()
    +    v.nVectors = 400*6
    +    SetPlotOptions(v)
    +    DrawPlots()
    +    Test("OpenFOAM_06")
    +
    +    TimeSliderNextState()
    +    Test("OpenFOAM_07")
    +    TimeSliderNextState()
    +    Test("OpenFOAM_08")
    +
    +    AddPlot("Mesh", "internalMesh")
    +    DrawPlots()
    +    Test("OpenFOAM_09")
    +
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "internalMesh/p")
    +    DrawPlots()
    +    Test("OpenFOAM_10")
    +
    +    DeleteAllPlots()
    +
    +def TestLagrangian():
    +    OpenDatabase(data_path("OpenFOAM_test_data/simplifiedSiwek/system/controlDict"))
    +    # Point clouds don't exist at timestate 0, so advance by 1.
    +    TimeSliderNextState()
    +
    +    AddPlot("Subset", "internalMesh")
    +    subset = SubsetAttributes()
    +    subset.wireframe = 1
    +    subset.colorType = subset.ColorBySingleColor
    +    SetPlotOptions(subset)
    +    AddPlot("Mesh", "lagrangian/coalCloud1")
    +    coalMesh = MeshAttributes()
    +    coalMesh.meshColorSource = coalMesh.MeshCustom
    +    coalMesh.meshColor = (255, 0, 0, 255)
    +    coalMesh.pointType = coalMesh.Sphere
    +    coalMesh.pointSizePixels = 15
    +    SetPlotOptions(coalMesh)
    +    AddPlot("Mesh", "lagrangian/limestoneCloud1")
    +    limestoneMesh = MeshAttributes()
    +    limestoneMesh.meshColorSource = limestoneMesh.MeshCustom
    +    limestoneMesh.meshColor = (0, 255, 0, 255)
    +    limestoneMesh.pointType = limestoneMesh.Sphere
    +    limestoneMesh.pointSizePixels = 15
    +    SetPlotOptions(limestoneMesh)
    +
    +    coalCloudText = CreateAnnotationObject("Text2D")
    +    coalCloudText.text = "coalCloud1"
    +    coalCloudText.height = 0.04
    +    coalCloudText.position = (0.4, 0.85)
    +    coalCloudText.useForegroundForTextColor = 0
    +    coalCloudText.textColor = (255, 0, 0, 255)
    +
    +    limestoneCloudText = CreateAnnotationObject("Text2D")
    +    limestoneCloudText.text = "limestoneCloud1"
    +    limestoneCloudText.height = 0.04
    +    limestoneCloudText.position = (0.4, 0.75)
    +    limestoneCloudText.useForegroundForTextColor = 0
    +    limestoneCloudText.textColor = (0, 255, 0, 255)
    +
    +    slider = CreateAnnotationObject("TimeSlider")
    +    slider.position = (0.4, 0.6)
    +    slider.width = (0.5)
    +    slider.height = (0.1)
    +
    +    DrawPlots()
    +    Test("OpenFOAM_lagrangian_01")
    +
    +    TimeSliderSetState(4)
    +    Test("OpenFOAM_lagrangian_02")
    +    TimeSliderSetState(7)
    +    Test("OpenFOAM_lagrangian_03")
    +    SetActivePlots((1, 2))
    +    DeleteActivePlots()
    +    TimeSliderSetState(10)
    +    AddPlot("Pseudocolor", "lagrangian/coalCloud1/tTurb")
    +    pc = PseudocolorAttributes()
    +    pc.pointType = pc.Sphere
    +    pc.pointSizePixels = 15
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    coalCloudText.textColor = (0, 0, 0, 255)
    +    coalCloudText.text = "coalcloud1/tTurb"
    +    limestoneCloudText.visible = 0
    +    Test("OpenFOAM_lagrangian_04")
    +    TimeSliderSetState(13)
    +    Test("OpenFOAM_lagrangian_05")
    +    ChangeActivePlotsVar("lagrangian/limestoneCloud1/tTurb")
    +    coalCloudText.visible = 0
    +    limestoneCloudText.visible = 1
    +    limestoneCloudText.textColor = (0, 0, 0, 255)
    +    limestoneCloudText.text = "limestoneCloud1/tTurb"
    +    Test("OpenFOAM_lagrangian_06")
    +    TimeSliderSetState(16)
    +    Test("OpenFOAM_lagrangian_07")
    +
    +    coalCloudText.Delete()
    +    limestoneCloudText.Delete()
    +    slider.Delete()
    +
    +    DeleteAllPlots()
    +
    +def TurnOffSetsByName(silr, cat, names):
    +    sets = silr.SetsInCategory(cat)
    +    for s in sets:
    +        setname = silr.SetName(s)
    +        try:
    +            if setname in names:
    +                silr.TurnOffSet(s)
    +        except:
    +            if setname == names:
    +                silr.TurnOffSet(s)
    +
    +def TestMultiRegion():
    +    OpenDatabase(data_path("OpenFOAM_test_data/snappyMultiRegionHeater/system/controlDict"))
    +    AddPlot("Subset", "Region")
    +    DrawPlots()
    +    Test("OpenFOAM_MultiRegion_01")
    +
    +    silr = SILRestriction()
    +    TurnOffSetsByName(silr, "Region", ("bottomAir, topAir"))
    +    SetPlotSILRestriction(silr)
    +    Test("OpenFOAM_MultiRegion_02")
    +
    +    ChangeActivePlotsVar("boundary(Patches)")
    +    silr = SILRestriction()
    +    silr.TurnOnAll()
    +    v = GetView3D()
    +    v.viewNormal = (-0.566091, -0.118534, 0.815776)
    +    v.viewUp = (0.0223539, 0.987037, 0.15893)
    +    SetView3D(v)
    +
    +    Test("OpenFOAM_MultiRegion_03")
    +    TurnDomainsOff(("maxY", "maxZ"))
    +    Test("OpenFOAM_MultiRegion_04")
    +
    +    silr.TurnOnAll()
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "heater/internalMesh/T")
    +    v = GetView3D()
    +    v.viewNormal = (-1, 0, 0)
    +    SetView3D(v)
    +    DrawPlots()
    +    Test("OpenFOAM_MultiRegion_05")
    +    TimeSliderNextState()
    +    Test("OpenFOAM_MultiRegion_06")
    +    DeleteAllPlots()
    +
    +def TestDecomposed():
    +    opts = GetDefaultFileOpenOptions("OpenFOAM")
    +    opts['Case Type'] = 0 #Decomposed
    +    opts['Convert Cell Data To Point Data'] = 1
    +    SetDefaultFileOpenOptions("OpenFOAM", opts)
    +    OpenDatabase(data_path("OpenFOAM_test_data/damBreakFineDecomposed/system/controlDict"))
    +    AddPlot("Pseudocolor", "internalMesh/U_magnitude")
    +    ResetView()
    +    TimeSliderSetState(2)
    +    DrawPlots()
    +    Test("OpenFOAM_Decomposed_01")
    +    TimeSliderSetState(6)
    +    Test("OpenFOAM_Decomposed_02")
    +    TimeSliderSetState(8)
    +    Test("OpenFOAM_Decomposed_03")
    +    DeleteAllPlots()
    +
    +def TestReadZones():
    +    opts = GetDefaultFileOpenOptions("OpenFOAM")
    +    opts['Case Type'] = 1 #Reconstructed
    +    opts['Convert Cell Data To Point Data'] = 0
    +    opts['Read Zones'] = 1
    +    SetDefaultFileOpenOptions("OpenFOAM", opts)
    +    # need a ReOpen because we changed the Open options, and the file
    +    # wasn't closed from previous test.
    +    ReOpenDatabase(data_path("OpenFOAM_test_data/snappyMultiRegionHeater/system/controlDict"))
    +    AddPlot("Mesh", "faceZones")
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (-0.407812, -0.112136, 0.906154)
    +    v.viewUp = (0.00527397, 0.992124, 0.125148)
    +    SetView3D(v)
    +    Test("OpenFOAM_ReadZones_01")
    +    ChangeActivePlotsVar("cellZones")
    +    Test("OpenFOAM_ReadZones_02")
    +    TurnDomainsOff(("topAir", "bottomAir"))
    +    Test("OpenFOAM_ReadZones_03")
    +    DeleteAllPlots()
    +
    +OrigTests()
    +TestLagrangian()
    +TestMultiRegion()
    +TestDecomposed()
    +TestReadZones()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_PATRAN.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_PATRAN.html new file mode 100644 index 000000000..3782145d5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_PATRAN.html @@ -0,0 +1,120 @@ + +Results for databases/PATRAN.py + +

    Results of VisIt Regression Test - databases/PATRAN

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    pipe.neu
    PATRAN1_00.000.00
    PATRAN1_10.000.00
    PATRAN1_20.000.00
    waterjacket.neu
    PATRAN2_00.000.00
    PATRAN2_10.000.00
    PATRAN2_20.000.00
    intake.neu
    PATRAN3_00.000.00
    PATRAN3_10.000.00
    PATRAN3_20.000.00
    patout.neu
    PATRAN4_00.000.00
    PATRAN4_10.000.00
    PATRAN4_20.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_PATRAN_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_PATRAN_py.html new file mode 100644 index 000000000..9352c6ef7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_PATRAN_py.html @@ -0,0 +1,242 @@ +databases/PATRAN.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  PATRAN.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - Mesh
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Jul 29 17:30:33 PST 2005
    +#
    +#  Notes:      The data for these tests are supposed to be PATRAN versions of
    +#              some of the data in the NASTRAN tests.
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Wed Feb 16 09:15:45 PST 2022
    +#    Replace use of meshatts 'foregroundFlag' and 'backgroundFlag' with
    +#    meshColorSource and opaqueColorSource.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def AddMeshPlot():
    +    AddPlot("Mesh", "mesh")
    +    m = MeshAttributes()
    +    m.legendFlag = 0
    +    m.opaqueColor = (153, 204, 255, 255)
    +    m.opaqueColorSource = m.OpaqueCustom
    +    m.meshColorSource =  m.MeshCustom
    +    m.meshColor = (0,0,0,255)
    +    TurnMaterialsOff("default")
    +    SetPlotOptions(m)
    +
    +def AddPseudocolorPlot():
    +    AddPlot("Pseudocolor", "one")
    +    p = PseudocolorAttributes()
    +    p.colorTableName = "rainbow"
    +    p.SetOpacityType(p.Constant)
    +    p.opacity = 0.2
    +    SetPlotOptions(p)
    +    TurnMaterialsOff("default")
    +    DrawPlots()
    +
    +def test1(datapath):
    +    db = "pipe.neu"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.786306, 0.379526, 0.487527)
    +    v.focus = (0.149902, 0.212562, 0.124929)
    +    v.viewUp = (0.316186, 0.925114, -0.210215)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.585963
    +    v.nearPlane = -1.17193
    +    v.farPlane = 1.17193
    +    v.imagePan = (0.0173275, 0.033058)
    +    v.imageZoom = 1.45734
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.149902, 0.212562, 0.124929)
    +    SetView3D(v)
    +    Test("PATRAN1_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.786306, 0.379526, 0.487527)
    +    v2.focus = (0.149902, 0.212562, 0.124929)
    +    v2.viewUp = (0.316186, 0.925114, -0.210215)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 0.585963
    +    v2.nearPlane = -1.17193
    +    v2.farPlane = 1.17193
    +    v2.imagePan = (-0.108127, 0.0971661)
    +    v2.imageZoom = 6.92887
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0.149902, 0.212562, 0.124929)
    +    SetView3D(v2)
    +    Test("PATRAN1_1")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    SetView3D(v)
    +    Test("PATRAN1_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test2(datapath):
    +    db = "waterjacket.neu"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.65317, -0.673371, 0.346324)
    +    v.focus = (0.03, -0.03, -0.1125)
    +    v.viewUp = (0.225064, 0.264053, 0.937882)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.289925
    +    v.nearPlane = -0.579849
    +    v.farPlane = 0.579849
    +    v.imagePan = (0.0984407, 0.0467479)
    +    v.imageZoom = 1.40003
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.03, -0.03, -0.1125)
    +    SetView3D(v)
    +    Test("PATRAN2_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.65317, -0.673371, 0.346324)
    +    v2.focus = (0.03, -0.03, -0.1125)
    +    v2.viewUp = (0.225064, 0.264053, 0.937882)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 0.289925
    +    v2.nearPlane = -0.579849
    +    v2.farPlane = 0.579849
    +    v2.imagePan = (0.100347, 0.0410472)
    +    v2.imageZoom = 7.7658
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0.03, -0.03, -0.1125)
    +    SetView3D(v2)
    +    Test("PATRAN2_1")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    SetView3D(v)
    +    Test("PATRAN2_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test3(datapath):
    +    db = "intake.neu"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.61876, 0.311053, -0.721375)
    +    v.focus = (0, 0.011, -0.0935)
    +    v.viewUp = (0.208418, 0.950364, 0.231021)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.198752
    +    v.nearPlane = -0.397503
    +    v.farPlane = 0.397503
    +    v.imagePan = (0.0151275, 0.00167627)
    +    v.imageZoom = 1.43299
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0.011, -0.0935)
    +    SetView3D(v)
    +    Test("PATRAN3_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.61876, 0.311053, -0.721375)
    +    v2.focus = (0, 0.011, -0.0935)
    +    v2.viewUp = (0.208418, 0.950364, 0.231021)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 0.198752
    +    v2.nearPlane = -0.397503
    +    v2.farPlane = 0.397503
    +    v2.imagePan = (-0.101283, 0.0396808)
    +    v2.imageZoom = 6.28038
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0, 0.011, -0.0935)
    +    SetView3D(v2)
    +    Test("PATRAN3_1")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    SetView3D(v)
    +    Test("PATRAN3_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test4(datapath):
    +    db = "patout.neu"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddPlot("FilledBoundary", "named_components")
    +    f = FilledBoundaryAttributes()
    +    f.legendFlag = 0
    +    SetPlotOptions(f)
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.765801, 0.0434351, -0.641609)
    +    v.focus = (-3175.88, -94.6135, -37.6065)
    +    v.viewUp = (0.625813, -0.179298, -0.759085)
    +    v.viewAngle = 30
    +    v.parallelScale = 3328.81
    +    v.nearPlane = -6657.62
    +    v.farPlane = 6657.62
    +    v.imagePan = (-0.0688128, -0.239564)
    +    v.imageZoom = 92.5361
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (-3175.88, -94.6135, -37.6065)
    +    SetView3D(v)
    +    Test("PATRAN4_0")
    +
    +    DeleteActivePlots()
    +    AddPlot("Pseudocolor", "elementMats")
    +    DrawPlots()
    +    Test("PATRAN4_1")
    +
    +    ChangeActivePlotsVar("elementIds")
    +    Test("PATRAN4_2")
    +
    +def main():
    +    # Set the window background color
    +    a = GetAnnotationAttributes()
    +    a.backgroundMode = a.Solid
    +    a.backgroundColor = (180, 180, 180, 255)
    +    a.foregroundColor = (255, 255, 255, 255)
    +    SetAnnotationAttributes(a)
    +
    +    DefineScalarExpression("one", "(zoneid(mesh) + 1) / (zoneid(mesh) + 1)")
    +    datapath = data_path("PATRAN_test_data")
    +    test1(datapath)
    +    test2(datapath)
    +    test3(datapath)
    +    test4(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_PLOT3D.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_PLOT3D.html new file mode 100644 index 000000000..84906d841 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_PLOT3D.html @@ -0,0 +1,650 @@ + +Results for databases/PLOT3D.py + +

    Results of VisIt Regression Test - databases/PLOT3D

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Open using MetaFile .vp3d
    bluntfin_Density_010.000.00
    bluntfin_InternalEnergy_010.000.00
    bluntfin_Momentum_010.000.00
    bluntfin_subsetDomains_010.000.00
    deltawing_Density_010.000.00
    deltawing_InternalEnergy_010.000.00
    deltawing_Momentum_010.000.00
    deltawing_subsetDomains_010.000.00
    post_Density_010.000.00
    post_InternalEnergy_010.000.00
    post_Momentum_010.000.00
    post_subsetDomains_010.000.00
    sslv_Density_010.000.00
    sslv_InternalEnergy_010.000.00
    sslv_Momentum_010.000.00
    sslv_subsetDomains_010.000.00
    wbt_Density_010.000.00
    wbt_InternalEnergy_010.000.00
    wbt_Momentum_010.000.00
    wbt_subsetDomains_010.000.00
    Open using gridfile and Open Options
    bluntfin_Density_020.000.00
    bluntfin_InternalEnergy_020.000.00
    bluntfin_Pressure_020.000.00
    bluntfin_Temperature_020.000.00
    bluntfin_Enthalpy_020.000.00
    bluntfin_StagnationEnergy_020.000.00
    bluntfin_Entropy_020.000.00
    bluntfin_Swirl_020.000.00
    bluntfin_Momentum_020.000.00
    bluntfin_Velocity_020.000.00
    bluntfin_Vorticity_020.000.00
    bluntfin_PressureGradient_020.000.00
    bluntfin_StrainRate_020.000.00
    bluntfin_subsetDomains_020.000.00
    deltawing_Density_020.000.00
    deltawing_InternalEnergy_020.000.00
    deltawing_Pressure_020.000.00
    deltawing_Temperature_020.000.00
    deltawing_Enthalpy_020.000.00
    deltawing_StagnationEnergy_020.000.00
    deltawing_Entropy_020.000.00
    deltawing_Swirl_020.000.00
    deltawing_Momentum_020.000.00
    deltawing_Velocity_020.000.00
    deltawing_Vorticity_020.000.00
    deltawing_PressureGradient_020.000.00
    deltawing_StrainRate_020.000.00
    deltawing_subsetDomains_020.000.00
    post_Density_020.000.00
    post_InternalEnergy_020.000.00
    post_Pressure_020.000.00
    post_Temperature_020.000.00
    post_Enthalpy_020.000.00
    post_StagnationEnergy_020.000.00
    post_Entropy_020.000.00
    post_Swirl_020.000.00
    post_Momentum_020.000.00
    post_Velocity_020.000.00
    post_Vorticity_020.000.00
    post_PressureGradient_020.000.00
    post_StrainRate_020.000.00
    post_subsetDomains_020.000.00
    sslv_Density_020.000.00
    sslv_InternalEnergy_020.000.00
    sslv_Pressure_020.000.00
    sslv_Temperature_020.000.00
    sslv_Enthalpy_020.000.00
    sslv_StagnationEnergy_020.000.00
    sslv_Entropy_020.000.00
    sslv_Swirl_020.000.00
    sslv_Momentum_020.000.00
    sslv_Velocity_020.000.00
    sslv_Vorticity_020.000.00
    sslv_PressureGradient_020.000.00
    sslv_StrainRate_020.000.00
    sslv_subsetDomains_020.000.00
    wbt_Density_020.000.00
    wbt_InternalEnergy_020.000.00
    wbt_Pressure_020.000.00
    wbt_Temperature_020.000.00
    wbt_Enthalpy_020.000.00
    wbt_StagnationEnergy_020.000.00
    wbt_Entropy_020.000.00
    wbt_Swirl_020.000.00
    wbt_Momentum_020.000.00
    wbt_Velocity_020.000.00
    wbt_Vorticity_020.000.00
    wbt_PressureGradient_020.000.00
    wbt_StrainRate_020.000.00
    wbt_subsetDomains_020.000.00
    Time Series with meta file
    plot3d_timeseries_10 modifications totalling 0 lines
    plot3d_timeseries_1_1200.00.000.00
    plot3d_timeseries_1_1220.00.000.00
    plot3d_timeseries_1_1240.00.000.00
    plot3d_timeseries_1_1300.00.000.00
    plot3d_timeseries_1_1320.00.000.00
    plot3d_timeseries_1_1340.00.000.00
    Time series via Read Options
    plot3d_timeseries_20 modifications totalling 0 lines
    plot3d_timeseries_2_1230.00.000.00
    plot3d_timeseries_2_1330.00.000.00
    wnb020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_PLOT3D_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_PLOT3D_py.html new file mode 100644 index 000000000..447367efa --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_PLOT3D_py.html @@ -0,0 +1,217 @@ +databases/PLOT3D.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#  LIMIT: 1500
    +#  Test Case:  PLOT3D.py 
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       Sep 5, 2014
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Wed Aug 26 09:21:15 PDT 2015
    +#    Removed Magnitude scalars, no longer provided by reader since VisIt
    +#    already automatically creates vector magnitude expressions.
    +#    Added tests for time-series.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def BasicTest(testName, testNum):
    +    # These are the scalars and vectors from the solution file
    +    scalars = ["Density", "InternalEnergy"]
    +    vectors = ["Momentum"]
    +
    +    # These are all the reader-calculated scalars and vectors
    +    computedScalars = ["Pressure", "Temperature", "Enthalpy",
    +                       "StagnationEnergy", "Entropy", "Swirl" ]
    +    computedVectors = ["Velocity", "Vorticity", "PressureGradient",
    +                        "StrainRate"]
    +
    +    AddPlot("Mesh", "mesh")
    +    AddPlot("Pseudocolor", scalars[0])
    +    DrawPlots()
    +    Test("%s_%s_%02d"%(testName,scalars[0],testNum))
    +    for s in scalars[1:]:
    +        ChangeActivePlotsVar(s)
    +        DrawPlots()
    +        Test("%s_%s_%02d"%(testName,s,testNum))
    +
    +    if testNum == 2:
    +        for s in computedScalars:
    +            ChangeActivePlotsVar(s)
    +            DrawPlots()
    +            Test("%s_%s_%02d"%(testName,s,testNum))
    +
    +    DeleteAllPlots()
    +
    +    AddPlot("Vector", vectors[0])
    +    vecAtts = VectorAttributes()
    +    vecAtts.scale = 0.5
    +    vecAtts.useStride = 1
    +    SetPlotOptions(vecAtts)
    +    DrawPlots()
    +    Test("%s_%s_%02d"%(testName,vectors[0],testNum))
    +
    +    if testNum == 2:
    +        for v in computedVectors:
    +            ChangeActivePlotsVar(v)
    +            DrawPlots()
    +            Test("%s_%s_%02d"%(testName,v,testNum))
    +
    +    DeleteAllPlots()
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test("%s_subsetDomains_%02d"%(testName,testNum))
    +
    +    DeleteAllPlots()
    +
    +# Open using the MetaFile .vp3d
    +def TestMetaOpen(metaFile, testName, testStart):
    +    OpenDatabase(data_path("PLOT3D_test_data/%s"%metaFile))
    +    BasicTest(testName, testStart)
    +    CloseDatabase(data_path("PLOT3D_test_data/%s"%metaFile))
    +
    +# Open using the grid file and openOptions
    +def TestOpenOptions(gridFile, testname, options, testStart):
    +    if len(options)> 0:
    +        # Grab the default options
    +        opts = GetDefaultFileOpenOptions("PLOT3D")
    +        # Set the passed options
    +        for k,v in options.items():
    +            if k in list(opts.keys()):
    +                opts[k] = v
    +        SetDefaultFileOpenOptions("PLOT3D", opts)
    +    OpenDatabase(data_path("PLOT3D_test_data/%s"%gridFile),0, "PLOT3D_1.0")
    +    BasicTest(testname, testStart)
    +    CloseDatabase(data_path("PLOT3D_test_data/%s"%gridFile))
    +
    +# names: [dir,  vp3dname, gridname, testname, openOptions]
    +names = [
    +    ["BluntFin", "blunt.vp3d", "blunt.x", "bluntfin", {}],
    +    ["DeltaWing", "delta-40.vp3d", "delta-40.x", "deltawing", {}],
    +    ["LiquidOxygenPost", "post.vp3d", "post.x", "post", {}],
    +    ["SpaceShuttleLaunchVehicle", "sslv.vp3d", "grid", "sslv",
    +        {"Multi Grid": 1, "IBlanking":1, "Use IBlanking If Present": 1, "Solution (Q) File Name":"solution"}],
    +    ["WingBodyTail", "wbt.vp3d", "wbtg.bin", "wbt",
    +        {"Solution (Q) File Name":"wbtr.bin",
    +        "Multi Grid":1,
    +        "IBlanking":1,
    +        "Use IBlanking If Present": 0,
    +        "File Format":1,
    +        "Big Endian":1,
    +        "Double Precision":0,
    +        "3D":1}],
    +]
    +
    +def TestTimeSeries():
    +    TestSection("Time Series with meta file")
    +    SetCreateMeshQualityExpressions(0)
    +    SetCreateTimeDerivativeExpressions(0)
    +    SetCreateVectorMagnitudeExpressions(0)
    +    #SetViewExtentsType("actual")
    +    OpenDatabase(data_path("PLOT3D_test_data/BluntFin/blunt_timeseries.vp3d"))
    +    md = GetMetaData(data_path("PLOT3D_test_data/BluntFin/blunt_timeseries.vp3d"))
    +    TestText("plot3d_timeseries_1", str(md))
    +
    +    DefineScalarExpression("TD", "time(mesh) * Density")
    +    AddPlot("Pseudocolor", "TD")
    +    AddOperator("Isovolume")
    +    isoAtts = IsovolumeAttributes()
    +    isoAtts.lbound = 2000
    +    SetOperatorOptions(isoAtts)
    +    DrawPlots()
    +
    +    #v = GetView3D()
    +    #v.viewNormal = (0, -1, 6.12323e-17)
    +    #v.focus = (3.32801, -0.103006, 16.13)
    +    #v.viewUp = (0, 6.12323e-17, 1)
    +    #SetView3D(v)
    +
    +    #  step through time
    +    for t in range(0, TimeSliderGetNStates(),2):
    +        SetTimeSliderState(t)
    +        Query("Time")
    +        Test("plot3d_timeseries_1_%s" % GetQueryOutputValue())
    +
    +    DeleteAllPlots()
    +
    +    CloseDatabase(data_path("PLOT3D_test_data/BluntFin/blunt_timeseries.vp3d"))
    +
    +    TestSection("Time series via Read Options")
    +
    +    # specify sub-selection of time slices.
    +    opts = {"Solution (Q) File Name" : r"TimeSeries/blunt_??3?.q",
    +            "Solution Time field accurate": 0}
    +    SetDefaultFileOpenOptions("PLOT3D", opts)
    +
    +    OpenDatabase(data_path("PLOT3D_test_data/BluntFin/blunt.x"), 0, "PLOT3D_1.0")
    +    md = GetMetaData(data_path("PLOT3D_test_data/BluntFin/blunt.x"))
    +    TestText("plot3d_timeseries_2", str(md))
    +
    +    AddPlot("Pseudocolor", "TD")
    +    AddOperator("Isovolume")
    +    SetOperatorOptions(isoAtts)
    +    DrawPlots()
    +
    +    #SetView3D(v)
    +
    +    #  step through time
    +    for t in range(0, TimeSliderGetNStates()):
    +        SetTimeSliderState(t)
    +        Query("Time")
    +        Test("plot3d_timeseries_2_%s" % GetQueryOutputValue())
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("PLOT3D_test_data/BluntFin/blunt.x"))
    +
    +def BasicTests():
    +    TestSection("Open using MetaFile .vp3d")
    +    for f in names:
    +        # test opening meta file
    +        TestMetaOpen("%s/%s"%(f[0],f[1]), f[3], 1)
    +
    +    TestSection("Open using gridfile and Open Options")
    +    # save true defaults for resetting
    +    opts = GetDefaultFileOpenOptions("PLOT3D")
    +    for f in names:
    +        # test opening grid file, possibly using OpenOptions
    +        TestOpenOptions("%s/%s"%(f[0],f[2]), f[3], f[4], 2)
    +    # reset to true defaults
    +    SetDefaultFileOpenOptions("PLOT3D", opts)
    +
    +def TestIBlanking():
    +    # Custom tests with specific views:
    +    OpenDatabase(data_path("PLOT3D_test_data/WingNoBody/wnb.vp3d"))
    +    AddPlot("Mesh", "mesh")
    +    DrawPlots()
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (-0.489596, 0.871773, 0.0175216)
    +    View3DAtts.focus = (1.5, -3.00142, 0)
    +    View3DAtts.viewUp = (-0.0396695, -0.00219579, -0.99921)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 11.0231
    +    View3DAtts.nearPlane = -22.0462
    +    View3DAtts.farPlane = 22.0462
    +    View3DAtts.imagePan = (-0.0355573, -0.00323714)
    +    View3DAtts.imageZoom = 66.2641
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (1.5, -3.00142, 0)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +    DrawPlots()
    +    Test("wnb02")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("PLOT3D_test_data/WingNoBody/wnb.vp3d"))
    +
    +BasicTests()
    +TestTimeSeries()
    +TestIBlanking()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ProteinDataBank.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ProteinDataBank.html new file mode 100644 index 000000000..3d0a83397 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ProteinDataBank.html @@ -0,0 +1,252 @@ + +Results for databases/ProteinDataBank.py + +

    Results of VisIt Regression Test - databases/ProteinDataBank

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Testing Rattlesnake venom
    proteindb_0_000.000.00
    proteindb_0_010.000.00
    proteindb_0_020.000.00
    proteindb_0_030.000.00
    proteindb_0_040.000.00
    proteindb_0_050.000.00
    proteindb_0_060.000.00
    proteindb_0_070.000.00
    Testing small DNA
    proteindb_1_000.000.00
    proteindb_1_010.000.00
    proteindb_1_020.000.00
    proteindb_1_030.000.00
    proteindb_1_040.000.00
    proteindb_1_050.000.00
    proteindb_1_060.000.00
    proteindb_1_070.000.00
    Testing insulin
    proteindb_2_000.000.00
    proteindb_2_010.000.00
    proteindb_2_020.000.00
    proteindb_2_030.000.00
    proteindb_2_040.000.00
    proteindb_2_050.000.00
    proteindb_2_060.000.00
    proteindb_2_070.000.00
    Testing Black Mamba venom
    proteindb_3_000.000.00
    proteindb_3_010.000.00
    proteindb_3_020.000.00
    proteindb_3_030.000.00
    proteindb_3_040.000.00
    proteindb_3_050.000.00
    proteindb_3_060.000.00
    proteindb_3_070.000.00
    proteindb_3_080.000.00
    proteindb_3_090.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ProteinDataBank_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ProteinDataBank_py.html new file mode 100644 index 000000000..3d243dcc5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ProteinDataBank_py.html @@ -0,0 +1,366 @@ +databases/ProteinDataBank.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ProteinDataBank.py
    +#
    +#  Tests:      mesh      - 3D points
    +#              plots     - Molecule
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Tue Mar 28 15:46:53 PST 2006
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Tue Aug 29 13:23:30 EDT 2006
    +#    ProteinDataBank files now have models as directories, not time steps.
    +#
    +#    Brad Whitlock, Thu Mar 12 11:04:32 PDT 2009
    +#    I restructured the test into functions.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Replace obsolete Label text attributes with new versions.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def LabelTest(testname, var, zoomview):
    +    AddPlot("Label", var)
    +    LabelAtts = LabelAttributes()
    +    LabelAtts.legendFlag = 1
    +    LabelAtts.showNodes = 0
    +    LabelAtts.showCells = 1
    +    LabelAtts.restrictNumberOfLabels = 0
    +    LabelAtts.drawLabelsFacing = LabelAtts.Front  # Front, Back, FrontAndBack
    +    LabelAtts.labelDisplayFormat = LabelAtts.Natural  # Natural, LogicalIndex, Index
    +    LabelAtts.numberOfLabels = 200
    +    LabelAtts.textFont1.useForegroundColor = 0
    +    LabelAtts.textFont1.color = (0, 255, 0, 255)
    +    LabelAtts.textFont1.scale = 5
    +    LabelAtts.textFont2.useForegroundColor = 1
    +    LabelAtts.textFont2.color = (0, 0, 255, 0)
    +    LabelAtts.textFont2.scale = 4
    +    LabelAtts.horizontalJustification = LabelAtts.HCenter  # HCenter, Left, Right
    +    LabelAtts.verticalJustification = LabelAtts.VCenter  # VCenter, Top, Bottom
    +    LabelAtts.depthTestMode = LabelAtts.LABEL_DT_AUTO  # LABEL_DT_AUTO, LABEL_DT_ALWAYS, LABEL_DT_NEVER
    +    SetPlotOptions(LabelAtts)
    +    DrawPlots()
    +    oldview = GetView3D()
    +    SetView3D(zoomview)
    +    # Save these images somewhat larger than a regular test case image
    +    # since the images contain a lot of text.
    +#    swa = SaveWindowAttributes()
    +#    swa.width = 500
    +#    swa.height = 500
    +#    swa.screenCapture = 0
    +#    Test(testname, swa)
    +    Test(testname)
    +    DeleteActivePlots()
    +    SetView3D(oldview)
    +
    +
    +def AddMoleculePlot(db, var):
    +    OpenDatabase(db)
    +    AddPlot("Molecule", var)
    +
    +    MoleculeAtts = MoleculeAttributes()
    +    MoleculeAtts.drawAtomsAs = MoleculeAtts.SphereAtoms  # NoAtoms, SphereAtoms, ImposterAtoms
    +    MoleculeAtts.scaleRadiusBy = MoleculeAtts.Fixed  # Fixed, Covalent, Atomic, Variable
    +    MoleculeAtts.drawBondsAs = MoleculeAtts.CylinderBonds  # NoBonds, LineBonds, CylinderBonds
    +    MoleculeAtts.colorBonds = MoleculeAtts.ColorByAtom  # ColorByAtom, SingleColor
    +    MoleculeAtts.bondSingleColor = (128, 128, 128, 255)
    +    MoleculeAtts.radiusVariable = "default"
    +    MoleculeAtts.radiusScaleFactor = 1
    +    MoleculeAtts.radiusFixed = 0.4
    +    MoleculeAtts.atomSphereQuality = MoleculeAtts.Medium  # Low, Medium, High, Super
    +    MoleculeAtts.bondCylinderQuality = MoleculeAtts.Medium  # Low, Medium, High, Super
    +    MoleculeAtts.bondRadius = 0.12
    +    MoleculeAtts.bondLineWidth = 0
    +    MoleculeAtts.elementColorTable = "cpk_jmol"
    +    MoleculeAtts.residueTypeColorTable = "amino_shapely"
    +    MoleculeAtts.residueSequenceColorTable = "Default"
    +    MoleculeAtts.continuousColorTable = "Default"
    +    MoleculeAtts.legendFlag = 1
    +    MoleculeAtts.minFlag = 0
    +    MoleculeAtts.scalarMin = 0
    +    MoleculeAtts.maxFlag = 0
    +    MoleculeAtts.scalarMax = 1
    +    SetPlotOptions(MoleculeAtts)
    +    DrawPlots()
    +
    +
    +def test0():
    +    TestSection("Testing Rattlesnake venom")
    +    AddMoleculePlot(data_path("ProteinDataBank_test_data/crotamine.pdb"), "element")
    +
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.967329, 0.252251, -0.0253765)
    +    v0.focus = (31.726, -54.1675, 13.645)
    +    v0.viewUp = (0.252129, 0.967661, 0.0079404)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 24.9831
    +    v0.nearPlane = -49.9661
    +    v0.farPlane = 49.9661
    +    v0.imagePan = (0, 0)
    +    v0.imageZoom = 1.44471
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (31.726, -54.1675, 13.645)
    +    SetView3D(v0)
    +
    +    v0zoom = View3DAttributes()
    +    v0zoom.viewNormal = (-0.967329, 0.252251, -0.0253765)
    +    v0zoom.focus = (31.726, -54.1675, 13.645)
    +    v0zoom.viewUp = (0.252129, 0.967661, 0.0079404)
    +    v0zoom.viewAngle = 30
    +    v0zoom.parallelScale = 24.9831
    +    v0zoom.nearPlane = -49.9661
    +    v0zoom.farPlane = 49.9661
    +    v0zoom.imagePan = (0, 0)
    +    v0zoom.imageZoom = 7.15293
    +    v0zoom.perspective = 1
    +    v0zoom.eyeAngle = 2
    +    v0zoom.centerOfRotationSet = 0
    +    v0zoom.centerOfRotation = (31.726, -54.1675, 13.645)
    +
    +    Test("proteindb_0_00")
    +    LabelTest("proteindb_0_01", "elementname", v0zoom)
    +
    +    ChangeActivePlotsVar("resseq")
    +    Test("proteindb_0_02")
    +    LabelTest("proteindb_0_03", "resseq", v0zoom)
    +
    +    ChangeActivePlotsVar("backbone")
    +    Test("proteindb_0_04")
    +
    +    ChangeActivePlotsVar("restype")
    +    Test("proteindb_0_05")
    +    LabelTest("proteindb_0_06", "resname", v0zoom)
    +
    +    LabelTest("proteindb_0_07", "longresname", v0zoom)
    +    DeleteAllPlots()
    +
    +
    +def test1():
    +    TestSection("Testing small DNA")
    +    AddMoleculePlot(data_path("ProteinDataBank_test_data/1NTS.pdb"), "element")
    +
    +    v1 = View3DAttributes()
    +    v1.viewNormal = (-0.320353, 0.944248, 0.075961)
    +    v1.focus = (-0.0580001, 0.0915003, 0.3815)
    +    v1.viewUp = (0.342959, 0.190354, -0.919861)
    +    v1.viewAngle = 30
    +    v1.parallelScale = 22.575
    +    v1.nearPlane = -45.1501
    +    v1.farPlane = 45.1501
    +    v1.imagePan = (-0.0021177, -0.0481532)
    +    v1.imageZoom = 1.27797
    +    v1.perspective = 1
    +    v1.eyeAngle = 2
    +    v1.centerOfRotationSet = 0
    +    v1.centerOfRotation = (-0.0580001, 0.0915003, 0.3815)
    +    SetView3D(v1)
    +
    +    v1zoom = View3DAttributes()
    +    v1zoom.viewNormal = (-0.320353, 0.944248, 0.075961)
    +    v1zoom.focus = (-0.0580001, 0.0915003, 0.3815)
    +    v1zoom.viewUp = (0.342959, 0.190354, -0.919861)
    +    v1zoom.viewAngle = 30
    +    v1zoom.parallelScale = 22.575
    +    v1zoom.nearPlane = -45.1501
    +    v1zoom.farPlane = 45.1501
    +    v1zoom.imagePan = (-0.00906313, 0.0442979)
    +    v1zoom.imageZoom = 6.4294
    +    v1zoom.perspective = 1
    +    v1zoom.eyeAngle = 2
    +    v1zoom.centerOfRotationSet = 0
    +    v1zoom.centerOfRotation = (-0.0580001, 0.0915003, 0.3815)
    +
    +    Test("proteindb_1_00")
    +    LabelTest("proteindb_1_01", "elementname", v1zoom)
    +
    +    ChangeActivePlotsVar("resseq")
    +    Test("proteindb_1_02")
    +    LabelTest("proteindb_1_03", "resseq", v1zoom)
    +
    +    ChangeActivePlotsVar("backbone")
    +    Test("proteindb_1_04")
    +
    +    ChangeActivePlotsVar("restype")
    +    Test("proteindb_1_05")
    +    LabelTest("proteindb_1_06", "resname", v1zoom)
    +
    +    LabelTest("proteindb_1_07", "longresname", v1zoom)
    +    DeleteAllPlots()
    +
    +
    +def test2():
    +    TestSection("Testing insulin")
    +    AddMoleculePlot(data_path("ProteinDataBank_test_data/1UZ9.pdb"), "element")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (0.215329, 0.245957, 0.94506)
    +    v2.focus = (23.441, 26.835, 23.6865)
    +    v2.viewUp = (-0.351063, 0.922561, -0.160113)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 29.1931
    +    v2.nearPlane = -58.3862
    +    v2.farPlane = 58.3862
    +    v2.imagePan = (0.0260607, 0.00408113)
    +    v2.imageZoom = 1.8463
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (23.441, 26.835, 23.6865)
    +    SetView3D(v2)
    +
    +    v2zoom = View3DAttributes()
    +    v2zoom.viewNormal = (0.685414, 0.259247, 0.68044)
    +    v2zoom.focus = (23.441, 26.835, 23.6865)
    +    v2zoom.viewUp = (0.700183, 0.02186, -0.713629)
    +    v2zoom.viewAngle = 30
    +    v2zoom.parallelScale = 29.1931
    +    v2zoom.nearPlane = -58.3862
    +    v2zoom.farPlane = 58.3862
    +    v2zoom.imagePan = (-0.0257104, -0.00810227)
    +    v2zoom.imageZoom = 10.3892
    +    v2zoom.perspective = 1
    +    v2zoom.eyeAngle = 2
    +    v2zoom.centerOfRotationSet = 0
    +    v2zoom.centerOfRotation = (23.441, 26.835, 23.6865)
    +
    +    Test("proteindb_2_00")
    +    LabelTest("proteindb_2_01", "elementname", v2zoom)
    +
    +    ChangeActivePlotsVar("resseq")
    +    Test("proteindb_2_02")
    +    LabelTest("proteindb_2_03", "resseq", v2zoom)
    +
    +    ChangeActivePlotsVar("backbone")
    +    Test("proteindb_2_04")
    +
    +    ChangeActivePlotsVar("restype")
    +    Test("proteindb_2_05")
    +    LabelTest("proteindb_2_06", "resname", v2zoom)
    +
    +    LabelTest("proteindb_2_07", "longresname", v2zoom)
    +    DeleteAllPlots()
    +
    +
    +def test3():
    +    TestSection("Testing Black Mamba venom")
    +    AddMoleculePlot(data_path("ProteinDataBank_test_data/1TFS.pdb"), "element")
    +
    +    v3 = View3DAttributes()
    +    v3.viewNormal = (-0.242177, -0.689536, 0.682562)
    +    v3.focus = (-1.73, -1.927, -0.202)
    +    v3.viewUp = (0.243612, 0.637752, 0.730702)
    +    v3.viewAngle = 30
    +    v3.parallelScale = 25.6826
    +    v3.nearPlane = -51.3652
    +    v3.farPlane = 51.3652
    +    v3.imagePan = (0.0337528, -0.0400135)
    +    v3.imageZoom = 1.49054
    +    v3.perspective = 1
    +    v3.eyeAngle = 2
    +    v3.centerOfRotationSet = 0
    +    v3.centerOfRotation = (-1.73, -1.927, -0.202)
    +    SetView3D(v3)
    +
    +    v3zoom = View3DAttributes()
    +    v3zoom.viewNormal = (-0.558032, -0.716666, 0.418318)
    +    v3zoom.focus = (-1.73, -1.927, -0.202)
    +    v3zoom.viewUp = (0.120358, 0.428875, 0.89531)
    +    v3zoom.viewAngle = 30
    +    v3zoom.parallelScale = 25.6826
    +    v3zoom.nearPlane = -51.3652
    +    v3zoom.farPlane = 51.3652
    +    v3zoom.imagePan = (0.0337528, -0.0400135)
    +    v3zoom.imageZoom = 8.39928
    +    v3zoom.perspective = 1
    +    v3zoom.eyeAngle = 2
    +    v3zoom.centerOfRotationSet = 0
    +    v3zoom.centerOfRotation = (-1.73, -1.927, -0.202)
    +
    +    Test("proteindb_3_00")
    +    LabelTest("proteindb_3_01", "elementname", v3zoom)
    +
    +    ChangeActivePlotsVar("resseq")
    +    Test("proteindb_3_02")
    +    LabelTest("proteindb_3_03", "resseq", v3zoom)
    +
    +    ChangeActivePlotsVar("backbone")
    +    Test("proteindb_3_04")
    +
    +    ChangeActivePlotsVar("restype")
    +    Test("proteindb_3_05")
    +    LabelTest("proteindb_3_06", "resname", v3zoom)
    +
    +    LabelTest("proteindb_3_07", "longresname", v3zoom)
    +
    +    # Make sure that there are multiple models in the file.
    +    ChangeActivePlotsVar("element")
    +    ChangeActivePlotsVar("models/model_09/element")
    +    Test("proteindb_3_08")
    +    ChangeActivePlotsVar("models/model_19/element")
    +    Test("proteindb_3_09")
    +    DeleteAllPlots()
    +
    +# NOTE: This test is not enabled because it fails. It needs baselines too.
    +def test4():
    +    TestSection("Testing file replacement with ProteinDataBank files")
    +    AddMoleculePlot(data_path("ProteinDataBank_test_data/crotamine.pdb"), "element")
    +
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.967329, 0.252251, -0.0253765)
    +    v0.focus = (31.726, -54.1675, 13.645)
    +    v0.viewUp = (0.252129, 0.967661, 0.0079404)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 24.9831
    +    v0.nearPlane = -49.9661
    +    v0.farPlane = 49.9661
    +    v0.imagePan = (0, 0)
    +    v0.imageZoom = 1.44471
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (31.726, -54.1675, 13.645)
    +    SetView3D(v0)
    +    Test("proteindb_4_00")
    +    ReplaceDatabase(data_path("ProteinDataBank_test_data/1UZ9.pdb"))
    +
    +    v1 = View3DAttributes()
    +    v1.viewNormal = (-0.320353, 0.944248, 0.075961)
    +    v1.focus = (-0.0580001, 0.0915003, 0.3815)
    +    v1.viewUp = (0.342959, 0.190354, -0.919861)
    +    v1.viewAngle = 30
    +    v1.parallelScale = 22.575
    +    v1.nearPlane = -45.1501
    +    v1.farPlane = 45.1501
    +    v1.imagePan = (-0.0021177, -0.0481532)
    +    v1.imageZoom = 1.27797
    +    v1.perspective = 1
    +    v1.eyeAngle = 2
    +    v1.centerOfRotationSet = 0
    +    v1.centerOfRotation = (-0.0580001, 0.0915003, 0.3815)
    +    SetView3D(v1)
    +    Test("proteindb_4_01")
    +
    +
    +def main():
    +    # Set the window background color
    +    a = GetAnnotationAttributes()
    +    a.backgroundMode = a.Solid
    +    a.foregroundColor = (0, 0, 0, 255)
    +    a.backgroundColor = (255, 255, 255, 255)
    +    a.databaseInfoFlag = 0
    +    SetAnnotationAttributes(a)
    +
    +    # Call the tests
    +    test0()
    +    test1()
    +    test2()
    +    test3()
    +    #test4()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_RAW.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_RAW.html new file mode 100644 index 000000000..21875c624 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_RAW.html @@ -0,0 +1,57 @@ + +Results for databases/RAW.py + +

    Results of VisIt Regression Test - databases/RAW

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    RAW files
    RAW_0_000.000.00
    RAW_0_010.000.00
    RAW_0_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_RAW_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_RAW_py.html new file mode 100644 index 000000000..6b70fd8fe --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_RAW_py.html @@ -0,0 +1,94 @@ +databases/RAW.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  RAW.py
    +#
    +#  Tests:      mesh      - 3D unstructured
    +#              plots     - Mesh, Pseudocolor, FilledBoundary
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Oct 10 12:05:17 PDT 2007
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def test0(datapath):
    +    TestSection("RAW files")
    +    OpenDatabase(pjoin(datapath,"visitrocks.raw"))
    +    AddPlot("Pseudocolor", "x")
    +    DrawPlots()
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.567094, 0.226914, 0.791779)
    +    v0.focus = (0.000999987, -0.1635, 0)
    +    v0.viewUp = (0.130227, 0.973912, -0.18584)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 1.5462
    +    v0.nearPlane = -3.0924
    +    v0.farPlane = 3.0924
    +    v0.imagePan = (0.0382352, 0.0259835)
    +    v0.imageZoom = 1.29479
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0.000999987, -0.1635, 0)
    +    SetView3D(v0)
    +    Test("RAW_0_00")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(pjoin(datapath,"visit1.7.raw"))
    +    AddPlot("Pseudocolor", "z")
    +    DrawPlots()
    +    v1 = View3DAttributes()
    +    v1.viewNormal = (0.548073, -0.470773, 0.691367)
    +    v1.focus = (-3, 2.5, -3.5)
    +    v1.viewUp = (-0.467318, 0.513182, 0.719902)
    +    v1.viewAngle = 30
    +    v1.parallelScale = 26.3154
    +    v1.nearPlane = -52.6308
    +    v1.farPlane = 52.6308
    +    v1.imagePan = (-0.00129203, 0.0275781)
    +    v1.imageZoom = 1.17533
    +    v1.perspective = 1
    +    v1.eyeAngle = 2
    +    v1.centerOfRotationSet = 0
    +    v1.centerOfRotation = (-3, 2.5, -3.5)
    +    SetView3D(v1)
    +    Test("RAW_0_01")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(pjoin(datapath,"llnl-logo.raw"))
    +    AddPlot("Subset", "domains")
    +    silr = SILRestriction()
    +    silr.SuspendCorrectnessChecking()
    +    silr.TurnOffAll()
    +    for silSet in (1,2,77):
    +        silr.TurnOnSet(silSet)
    +    silr.EnableCorrectnessChecking()
    +    SetPlotSILRestriction(silr)
    +    DrawPlots()
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (0.373419, 0.166874, 0.91253)
    +    v2.focus = (0.108829, 9.95567, 5.85852)
    +    v2.viewUp = (-0.0717588, 0.985936, -0.150933)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 91.211
    +    v2.nearPlane = -182.422
    +    v2.farPlane = 182.422
    +    v2.imagePan = (-0.00129203, 0.0275781)
    +    v2.imageZoom = 1.17145
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0.108829, 9.95567, 5.85852)
    +    SetView3D(v2)
    +    Test("RAW_0_02")
    +    DeleteAllPlots()
    +
    +def main():
    +    datapath = data_path("RAW_test_data")
    +    test0(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_SPCTH.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_SPCTH.html new file mode 100644 index 000000000..efd130a13 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_SPCTH.html @@ -0,0 +1,48 @@ + +Results for databases/SPCTH.py + +

    Results of VisIt Regression Test - databases/SPCTH

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    spcth_010.000.00
    spcth_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_SPCTH_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_SPCTH_py.html new file mode 100644 index 000000000..36a3acf29 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_SPCTH_py.html @@ -0,0 +1,36 @@ +databases/SPCTH.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  SPCTH.py 
    +#
    +#  Programmer: Kevin Griffin 
    +#  Date:       September 15, 2017 
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +#efp2d.spcth
    +OpenDatabase(data_path("SPCTH_test_data/efp2d.spcth"))
    +AddPlot("FilledBoundary", "materials")
    +DrawPlots()
    +Test("spcth_01")
    +DeleteAllPlots()
    +CloseDatabase(data_path("SPCTH_test_data/efp2d.spcth"))
    +
    +#efp3d.spcth
    +OpenDatabase(data_path("SPCTH_test_data/efp3d.spcth"))
    +AddPlot("Pseudocolor", "M")
    +
    +silr = SILRestriction()
    +silr.TurnOnAll()
    +silr.TurnOffSet(silr.SetsInCategory('materials')[3])
    +SetPlotSILRestriction(silr)
    +
    +DrawPlots()
    +Test("spcth_02")
    +DeleteAllPlots()
    +CloseDatabase(data_path("SPCTH_test_data/efp3d.spcth"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Velodyne.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Velodyne.html new file mode 100644 index 000000000..dcce417ed --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Velodyne.html @@ -0,0 +1,88 @@ + +Results for databases/Velodyne.py + +

    Results of VisIt Regression Test - databases/Velodyne

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Solid
    Velodyne_0_000 modifications totalling 0 lines
    Velodyne_0_010.000.00
    Velodyne_0_020.000.00
    Velodyne_0_030.000.00
    Velodyne_0_040.000.00
    Velodyne_0_050.000.00
    Velodyne_0_060.000.00
    Surface
    Velodyne_1_000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Velodyne_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Velodyne_py.html new file mode 100644 index 000000000..a4e86eb4b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Velodyne_py.html @@ -0,0 +1,79 @@ +databases/Velodyne.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  Velodyne.py
    +#
    +#  Tests:      mesh      - 3D unstructured
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Feb 10 14:51:33 PDT 2010
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def InitializeView():
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (0.715595, -0.551955, 0.4281)
    +    v0.focus = (11.5, 2.39999, 1.04954)
    +    v0.viewUp = (-0.34794, 0.249768, 0.903633)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 11.8686
    +    v0.nearPlane = -23.7373
    +    v0.farPlane = 23.7373
    +    v0.imagePan = (-0.0579851, 0.0689456)
    +    v0.imageZoom = 1.2342
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (11.5, 2.39999, 1.04954)
    +    SetView3D(v0)
    +
    +def test0(datapath):
    +    TestSection("Solid")
    +    db = pjoin(datapath,"pelh.*.vld database")
    +    OpenDatabase(db,0,"Velodyne_1.0")
    +    md = GetMetaData(db)
    +    TestText("Velodyne_0_00", str(md))
    +    AddPlot("Pseudocolor", "Solid/Pressure")
    +    DrawPlots()
    +    InitializeView()
    +
    +    Test("Velodyne_0_01")
    +    TimeSliderSetState(11)
    +    Test("Velodyne_0_02")
    +    TimeSliderSetState(22)
    +    Test("Velodyne_0_03")
    +    TimeSliderSetState(0)
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Solid/Velocity_0")
    +    DrawPlots()
    +    InitializeView()
    +    Test("Velodyne_0_04")
    +    TimeSliderSetState(11)
    +    Test("Velodyne_0_05")
    +    TimeSliderSetState(22)
    +    Test("Velodyne_0_06")
    +    TimeSliderSetState(0)
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test1(datapath):
    +    TestSection("Surface")
    +
    +    OpenDatabase(pjoin(datapath,"pelh.1.vld"),0,"Velodyne_1.0")
    +    AddPlot("Pseudocolor", "Surface/Velocity_0")
    +    DrawPlots()
    +    InitializeView()
    +    Test("Velodyne_1_00")
    +    DeleteAllPlots()
    +
    +def main():
    +    datapath = data_path("Velodyne_test_data")
    +    test0(datapath)
    +    test1(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_WData.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_WData.html new file mode 100644 index 000000000..c48a83ea2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_WData.html @@ -0,0 +1,60 @@ + +Results for databases/WData.py + +

    Results of VisIt Regression Test - databases/WData

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    wdata_1_010.000.00
    wdata_1_020.000.00
    wdata_1_030.000.00
    wdata_1_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_WData_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_WData_py.html new file mode 100644 index 000000000..5d9db74e4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_WData_py.html @@ -0,0 +1,58 @@ +databases/WData.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  WData.py 
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       September 22, 2021 
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def Test1():
    +    OpenDatabase(data_path("WData_test_data/WData-test.wtxt"))
    +
    +    AddPlot("Contour", "density_a")
    +    AddPlot("Vector", "current_a")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal=(0.363715, 0.43572, 0.822339)
    +    v.viewUp=(-0.158317, 0.898996, -0.40834)
    +    SetView3D(v)
    +
    +    Test("wdata_1_01")
    +
    +    TimeSliderSetState(5)
    +    Test("wdata_1_02")
    +
    +    DeleteAllPlots()
    +    AddPlot("Volume", "density_b")
    +    DrawPlots()
    +    Test("wdata_1_03")
    +
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "density_b")
    +    DrawPlots()
    +
    +    SetQueryOutputToObject()
    +    se = Query("SpatialExtents")["extents"]
    +    AddOperator("ThreeSlice")
    +    ts = ThreeSliceAttributes()
    +    ts.x = (se[1] - se[0]) * 0.5
    +    ts.y = (se[3] - se[2]) * 0.5
    +    ts.z = (se[5] - se[4]) * 0.5
    +    SetOperatorOptions(ts)
    +    DrawPlots()
    +
    +    Test("wdata_1_04")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("WData_test_data/WData-test.wtxt"))
    +
    +Test1()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Xmdv.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Xmdv.html new file mode 100644 index 000000000..780dc689b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Xmdv.html @@ -0,0 +1,66 @@ + +Results for databases/Xmdv.py + +

    Results of VisIt Regression Test - databases/Xmdv

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Xmdv_010.000.00
    Xmdv_020.000.00
    Xmdv_030.000.00
    Xmdv_040.000.00
    Xmdv_050.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Xmdv_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Xmdv_py.html new file mode 100644 index 000000000..dc3d55686 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Xmdv_py.html @@ -0,0 +1,105 @@ +databases/Xmdv.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  Xmdv.py
    +#
    +#  Tests:      mesh      - 3D point mesh
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Hank Childs
    +#  Date:       July 21, 2005
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Aug 10 10:00:45 PDT 2005
    +#    Fixed due to a change in the Label plot.
    +#
    +#    Hank Childs, Tue Mar 18 15:40:57 PDT 2008
    +#    Reflect change in variable names.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Hank Childs, Sat Mar 13 11:13:26 PST 2010
    +#    Change variable names for forbidden characters.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# First test that we can open a Xmdv file.
    +OpenDatabase(data_path("okc_test_data/astronomy.okc"))
    +
    +AddPlot("Pseudocolor", "classmagi")
    +AddOperator("Transform")
    +t = TransformAttributes()
    +t.doScale = 1
    +t.scaleZ = 0.03
    +SetOperatorOptions(t)
    +DrawPlots()
    +
    +Test("Xmdv_01")
    +
    +DefineArrayExpression("sub_arr", "array_compose(b, d)")
    +AddPlot("Label", "sub_arr")
    +L = LabelAttributes()
    +L.depthTestMode = L.LABEL_DT_NEVER
    +SetPlotOptions(L)
    +AddOperator("Transform")
    +SetOperatorOptions(t)
    +DrawPlots()
    +
    +Test("Xmdv_02")
    +
    +
    +# This is super ugly, but I want to have something in the regression suite
    +# that tests reading in array variables directly from a file (for coverage
    +# purpose).
    +DeleteAllPlots()
    +AddPlot("Label", "all_vars")
    +L = LabelAttributes()
    +L.depthTestMode = L.LABEL_DT_NEVER
    +SetPlotOptions(L)
    +DrawPlots()
    +Test("Xmdv_03")
    +DeleteAllPlots()
    +
    +
    +# Now test the writer.
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +DefineScalarExpression("uc", "recenter(u)")
    +DefineScalarExpression("vc", "recenter(v)")
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +e = ExportDBAttributes()
    +e.db_type = "Xmdv"
    +e.filename = "xmdv"
    +e.variables = ("d", "p", "uc", "vc")
    +ExportDatabase(e)
    +
    +DeleteAllPlots()
    +DeleteExpression("uc")
    +DeleteExpression("vc")
    +OpenDatabase("xmdv.okc")
    +AddPlot("Pseudocolor", "vc")
    +DrawPlots()
    +Test("Xmdv_04")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Vector", "vel")
    +DrawPlots()
    +e.variables = ()
    +e.filename = "xmdv2"
    +ExportDatabase(e)
    +DeleteAllPlots()
    +OpenDatabase("xmdv2.okc")
    +AddPlot("Pseudocolor", "vel_lb_0_rb_")
    +DrawPlots()
    +Test("Xmdv_05")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Xolotl.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Xolotl.html new file mode 100644 index 000000000..3e77aa772 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Xolotl.html @@ -0,0 +1,90 @@ + +Results for databases/Xolotl.py + +

    Results of VisIt Regression Test - databases/Xolotl

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    0D Example Xolot File
    xolotl_0D_HeliumVacancies0.000.00
    xolotl_0D_HeliumDeuterium0.000.00
    xolotl_0D_HeliumInterstitial0.000.00
    xolotl_0D_HeliumTritium0.000.00
    1D Example Xolotl File
    xolotl_1D_Helium Concentration0.000.00
    xolotl_1D_Deuterium Concentration0.000.00
    xolotl_1D_Interstitial Concentration0.000.00
    xolotl_1D_Tritium Concentration0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Xolotl_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Xolotl_py.html new file mode 100644 index 000000000..e7b264d53 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_Xolotl_py.html @@ -0,0 +1,47 @@ +databases/Xolotl.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  Xolotl.py
    +#
    +#  Tests:      Xolotl hdf5 files
    +#
    +#  Programmer: James Kress
    +#  Date:       Mon Aug 26 13:00:15 EDT 2019
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("Xolotl")
    +
    +xolotl_0D = "xolotl_test_data/network-PSI2-0D.xolotl"
    +xolotl_1D = "xolotl_test_data/network-PSI2-1D.xolotl"
    +
    +zeroDVars = ["Helium/Vacancies", "Helium/Deuterium", "Helium/Interstitial", "Helium/Tritium"]
    +oneDVars = ["Helium Concentration", "Deuterium Concentration", "Interstitial Concentration", "Tritium Concentration"]
    +
    +def test(var_name,tag_name):
    +    SetTimeSliderState(1)
    +    AddPlot("Pseudocolor", var_name)
    +    SetActivePlots(0)
    +    PseudocolorAtts = PseudocolorAttributes()
    +    PseudocolorAtts.scaling = PseudocolorAtts.Log  # Linear, Log, Skew
    +    PseudocolorAtts.colorTableName = "hot_desaturated"
    +    SetPlotOptions(PseudocolorAtts)
    +    DrawPlots()
    +    file_name = var_name.replace("/", "")
    +    Test(tag_name + "_" +  file_name)
    +    DeleteAllPlots()
    +
    +
    +TestSection("0D Example Xolot File")
    +OpenDatabase(data_path(xolotl_0D))
    +for var_name in zeroDVars:
    +    test(var_name,"xolotl_0D")
    +CloseDatabase(data_path(xolotl_0D))
    +
    +TestSection("1D Example Xolotl File")
    +OpenDatabase(data_path(xolotl_1D))
    +for var_name in oneDVars:
    +    test(var_name,"xolotl_1D")
    +CloseDatabase(data_path(xolotl_1D))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_activesource.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_activesource.html new file mode 100644 index 000000000..1c7616c69 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_activesource.html @@ -0,0 +1,80 @@ + +Results for databases/activesource.py + +

    Results of VisIt Regression Test - databases/activesource

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    activesource000.000.00
    activesource010 modifications totalling 0 lines
    activesource020 modifications totalling 0 lines
    activesource030.000.00
    activesource040.000.00
    activesource050 modifications totalling 0 lines
    activesource060.000.00
    activesource070 modifications totalling 0 lines
    activesource080 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_activesource_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_activesource_py.html new file mode 100644 index 000000000..189e83873 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_activesource_py.html @@ -0,0 +1,82 @@ +databases/activesource.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  activesource.py
    +#
    +#  Tests:      mesh      - 2D, curvilinear, single domain
    +#              plots     - FilledBoundary
    +#              databases - PDB
    +#
    +#  Purpose:    This test case tests that the viewer uses the right active
    +#              source for the active window.
    +#
    +#  Bugs:       '4527
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Mar 18 13:45:29 PST 2004
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +#
    +# Look at the first few lines of the string representation of the
    +# WindowInformation to see the list of time sliders, etc.
    +#
    +def TestWindowInformation(testname):
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 5 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    for i in range(5):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    TestText(testname, s)
    +
    +# Create a plot of dbA00.pdb.
    +OpenDatabase(data_path("pdb_test_data/dbA00.pdb"))
    +
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +Test("activesource00")
    +
    +# Create another window and make sure that it has dbA00.pdb as its
    +# active source.
    +CloneWindow()
    +SetActiveWindow(2)
    +DeleteAllPlots()
    +TestWindowInformation("activesource01")
    +
    +# Open dbB00.pdb and make sure that it becomes the active source.
    +OpenDatabase(data_path("pdb_test_data/dbB00.pdb"))
    +
    +TestWindowInformation("activesource02")
    +
    +# Create a plot from it.
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +Test("activesource03")
    +# note: py3 div creates float
    +SetTimeSliderState(int(TimeSliderGetNStates() / 2))
    +Test("activesource04")
    +TestWindowInformation("activesource05")
    +
    +# Create a 3rd window by cloning window 2. We're making sure that the 
    +# time slider got copied to the new window and that it has the right
    +# time state.
    +CloneWindow()
    +SetActiveWindow(3)
    +DrawPlots()
    +Test("activesource06")
    +TestWindowInformation("activesource07")
    +
    +# Switch back to window 1 and make sure that the window information has
    +# dbA00.pdb as the active source.
    +SetActiveWindow(1)
    +TestWindowInformation("activesource08")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_adios2.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_adios2.html new file mode 100644 index 000000000..4d773ec4d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_adios2.html @@ -0,0 +1,60 @@ + +Results for databases/adios2.py + +

    Results of VisIt Regression Test - databases/adios2

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Adios2 Blosc Test
    adios2_3d_bp_mesh71x71x71_mesh0.000.00
    Adios2 BP5 Tests
    adios2_2d_bp5_1_mesh512x512_mesh0.000.00
    adios2_2d_bp5_2_mesh512x512_mesh0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_adios2_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_adios2_py.html new file mode 100644 index 000000000..3c0f2fc8d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_adios2_py.html @@ -0,0 +1,115 @@ +databases/adios2.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  adios2.py 
    +#
    +#  Tests:      mesh      - 3D single domain
    +#              plots     - Pseudocolor
    +#              operators - Clip
    +#
    +#  Programmer: Justin Privitera
    +#  Date:       Mon May  9 18:05:05 PDT 2022
    +#
    +#  Modifications:
    +#     Justin Privitera, Thu Jan 18 09:40:00 PST 2024
    +#     Added BP5 tests.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("ADIOS2")
    +
    +from os.path import join as pjoin
    +
    +adios2_test_dir = "adios2_v2.7.1_test_data"
    +cube_data = data_path(pjoin(adios2_test_dir,"interesting_cube00000000.bp"))
    +
    +bp5_test_dir = "adios2_v2.10.0-rc1_bp5_test_data"
    +plt0 = data_path(pjoin(bp5_test_dir,"plt00000.bp"))
    +plt758 = data_path(pjoin(bp5_test_dir,"plt00758.bp"))
    +
    +def set_3d_view():
    +    v = View3DAttributes()
    +    v.viewNormal = (0.844823, 0.290329, 0.449425)
    +    v.focus = (35, 35, 35)
    +    v.viewUp = (-0.239502, 0.956325, -0.167574)
    +    v.viewAngle = 30
    +    v.parallelScale = 60.6218
    +    v.nearPlane = -121.244
    +    v.farPlane = 121.244
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (35, 35, 35)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +def set_test_view(tag_name):
    +    if "3d" in tag_name:
    +        set_3d_view()
    +    else:
    +        ResetView()
    +
    +def test(mesh_name, tag_name, var_name, mesh_plot = False):
    +    if mesh_plot:
    +        AddPlot("Mesh", mesh_name)
    +    AddPlot("Pseudocolor", var_name)
    +    if "3d" in tag_name:
    +        AddOperator("Clip", 1)
    +        SetActivePlots(1)
    +        ClipAtts = ClipAttributes()
    +        ClipAtts.quality = ClipAtts.Fast  # Fast, Accurate
    +        ClipAtts.funcType = ClipAtts.Plane  # Plane, Sphere
    +        ClipAtts.plane1Status = 1
    +        ClipAtts.plane2Status = 0
    +        ClipAtts.plane3Status = 0
    +        ClipAtts.plane1Origin = (35, 35, 35)
    +        ClipAtts.plane2Origin = (0, 0, 0)
    +        ClipAtts.plane3Origin = (0, 0, 0)
    +        ClipAtts.plane1Normal = (1, 0, 0)
    +        ClipAtts.plane2Normal = (0, 1, 0)
    +        ClipAtts.plane3Normal = (0, 0, 1)
    +        ClipAtts.planeInverse = 0
    +        ClipAtts.planeToolControlledClipPlane = ClipAtts.Plane1  # NONE, Plane1, Plane2, Plane3
    +        ClipAtts.center = (0, 0, 0)
    +        ClipAtts.radius = 1
    +        ClipAtts.sphereInverse = 0
    +        ClipAtts.crinkleClip = 0
    +        SetOperatorOptions(ClipAtts, 0, 1)
    +    DrawPlots()
    +    set_test_view(tag_name)
    +    Test(tag_name + "_" +  mesh_name + "_mesh")
    +    DeleteAllPlots()
    +
    +# requires adios2 to be built with c-blosc support
    +TestSection("Adios2 Blosc Test")
    +OpenDatabase(cube_data, 0, "ADIOS2_1.0")
    +mesh_name = "mesh71x71x71"
    +tag_name = "adios2_3d_bp"
    +var_name = "/data/0/meshes/admbase_lapse_rl00/admbase_alp"
    +do_mesh_plot = True
    +test(mesh_name, tag_name, var_name, do_mesh_plot)
    +CloseDatabase(cube_data)
    +
    +# requires adios2 to be built with c-blosc support
    +TestSection("Adios2 BP5 Tests")
    +
    +OpenDatabase(plt0, 0, "ADIOS2_1.0")
    +mesh_name = "mesh512x512"
    +tag_name = "adios2_2d_bp5_1"
    +var_name = "/data/0/meshes/gasDensity"
    +test(mesh_name, tag_name, var_name)
    +CloseDatabase(plt0)
    +
    +OpenDatabase(plt758, 0, "ADIOS2_1.0")
    +mesh_name = "mesh512x512"
    +tag_name = "adios2_2d_bp5_2"
    +var_name = "/data/758/meshes/gasDensity"
    +test(mesh_name, tag_name, var_name)
    +CloseDatabase(plt758)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_avsucd.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_avsucd.html new file mode 100644 index 000000000..75f563cfd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_avsucd.html @@ -0,0 +1,60 @@ + +Results for databases/avsucd.py + +

    Results of VisIt Regression Test - databases/avsucd

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    avsucd_010.000.00
    avsucd_020.000.00
    avsucd_030.000.00
    avsucd_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_avsucd_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_avsucd_py.html new file mode 100644 index 000000000..ae60b6e15 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_avsucd_py.html @@ -0,0 +1,41 @@ +databases/avsucd.py
    # ----------------------------------------------------------------------------)
    +#  CLASSES: nightly
    +#
    +#  Test Case:  avsucd.py 
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       February 6, 2020
    +#
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(data_path("AVSucd_test_data/cell_data.inp"))
    +AddPlot("Pseudocolor", "stress sx")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (0.804006, 0.580568, 0.128511)
    +viewUp = (-0.482246, 0.763086, -0.430278)
    +SetView3D(v)
    +Test("avsucd_01")
    +
    +ChangeActivePlotsVar("stress sz")
    +Test("avsucd_02")
    +
    +ChangeActivePlotsVar("temp1")
    +Test("avsucd_03")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("AVSucd_test_data/cell_data.inp"))
    +
    +# file with vectors
    +OpenDatabase(data_path("AVSucd_test_data/vec1.1.000.inp"))
    +AddPlot("Vector", "vect")
    +DrawPlots()
    +ResetView()
    +Test("avsucd_04")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("AVSucd_test_data/vec1.1.000.inp"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_blueprint.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_blueprint.html new file mode 100644 index 000000000..2b72e0d11 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_blueprint.html @@ -0,0 +1,3139 @@ + +Results for databases/blueprint.py + +

    Results of VisIt Regression Test - databases/blueprint

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    2D Example JSON Mesh Files
    blueprint_2d_json_points_mesh0.000.00
    blueprint_2d_json_points_braid0.000.00
    blueprint_2d_json_points_radial0.000.00
    blueprint_2d_json_uniform_mesh12.580.64
    blueprint_2d_json_uniform_braid0.000.00
    blueprint_2d_json_uniform_radial0.000.00
    blueprint_2d_json_rect_mesh12.580.64
    blueprint_2d_json_rect_braid0.000.00
    blueprint_2d_json_rect_radial0.000.00
    blueprint_2d_json_struct_mesh12.530.63
    blueprint_2d_json_struct_braid0.000.00
    blueprint_2d_json_struct_radial0.000.00
    blueprint_2d_json_tris_mesh8.430.64
    blueprint_2d_json_tris_braid0.000.00
    blueprint_2d_json_tris_radial0.000.00
    blueprint_2d_json_quads_mesh12.580.64
    blueprint_2d_json_quads_braid0.000.00
    blueprint_2d_json_quads_radial0.000.00
    2D Example HDF5 Mesh Files
    blueprint_2d_hdf5_points_mesh0.000.00
    blueprint_2d_hdf5_points_braid0.000.00
    blueprint_2d_hdf5_points_radial0.000.00
    blueprint_2d_hdf5_uniform_mesh1.400.64
    blueprint_2d_hdf5_uniform_braid0.000.00
    blueprint_2d_hdf5_uniform_radial0.000.00
    blueprint_2d_hdf5_rect_mesh1.400.64
    blueprint_2d_hdf5_rect_braid0.000.00
    blueprint_2d_hdf5_rect_radial0.000.00
    blueprint_2d_hdf5_struct_mesh1.400.64
    blueprint_2d_hdf5_struct_braid0.000.00
    blueprint_2d_hdf5_struct_radial0.000.00
    blueprint_2d_hdf5_tris_mesh0.980.64
    blueprint_2d_hdf5_tris_braid0.000.00
    blueprint_2d_hdf5_tris_radial0.000.00
    blueprint_2d_hdf5_quads_mesh1.400.64
    blueprint_2d_hdf5_quads_braid0.000.00
    blueprint_2d_hdf5_quads_radial0.000.00
    2D Example Sidre HDF5 Mesh Files
    blueprint_2d_sidre_hdf5_points_mesh0.000.00
    blueprint_2d_sidre_hdf5_points_braid0.000.00
    blueprint_2d_sidre_hdf5_points_radial0.000.00
    blueprint_2d_sidre_hdf5_uniform_mesh1.400.64
    blueprint_2d_sidre_hdf5_uniform_braid0.000.00
    blueprint_2d_sidre_hdf5_uniform_radial0.000.00
    blueprint_2d_sidre_hdf5_rect_mesh1.400.64
    blueprint_2d_sidre_hdf5_rect_braid0.000.00
    blueprint_2d_sidre_hdf5_rect_radial0.000.00
    blueprint_2d_sidre_hdf5_struct_mesh1.400.64
    blueprint_2d_sidre_hdf5_struct_braid0.000.00
    blueprint_2d_sidre_hdf5_struct_radial0.000.00
    blueprint_2d_sidre_hdf5_tris_mesh0.980.64
    blueprint_2d_sidre_hdf5_tris_braid0.000.00
    blueprint_2d_sidre_hdf5_tris_radial0.000.00
    blueprint_2d_sidre_hdf5_quads_mesh1.400.64
    blueprint_2d_sidre_hdf5_quads_braid0.000.00
    blueprint_2d_sidre_hdf5_quads_radial0.000.00
    3D Example JSON Mesh Files
    blueprint_3d_json_points_mesh0.000.00
    blueprint_3d_json_points_braid0.000.00
    blueprint_3d_json_points_radial0.000.00
    blueprint_3d_json_uniform_mesh0.000.00
    blueprint_3d_json_uniform_braid0.000.00
    blueprint_3d_json_uniform_radial0.000.00
    blueprint_3d_json_rect_mesh0.000.00
    blueprint_3d_json_rect_braid0.000.00
    blueprint_3d_json_rect_radial0.000.00
    blueprint_3d_json_struct_mesh0.000.00
    blueprint_3d_json_struct_braid0.000.00
    blueprint_3d_json_struct_radial0.000.00
    blueprint_3d_json_tets_mesh0.000.00
    blueprint_3d_json_tets_braid0.000.00
    blueprint_3d_json_tets_radial0.000.00
    blueprint_3d_json_hexs_mesh0.000.00
    blueprint_3d_json_hexs_braid0.000.00
    blueprint_3d_json_hexs_radial0.000.00
    3D Example HDF5 Mesh Files
    blueprint_3d_hdf5_points_mesh0.000.00
    blueprint_3d_hdf5_points_braid0.000.00
    blueprint_3d_hdf5_points_radial0.000.00
    blueprint_3d_hdf5_uniform_mesh0.000.00
    blueprint_3d_hdf5_uniform_braid0.000.00
    blueprint_3d_hdf5_uniform_radial0.000.00
    blueprint_3d_hdf5_rect_mesh0.000.00
    blueprint_3d_hdf5_rect_braid0.000.00
    blueprint_3d_hdf5_rect_radial0.000.00
    blueprint_3d_hdf5_struct_mesh0.000.00
    blueprint_3d_hdf5_struct_braid0.000.00
    blueprint_3d_hdf5_struct_radial0.000.00
    blueprint_3d_hdf5_tets_mesh0.000.00
    blueprint_3d_hdf5_tets_braid0.000.00
    blueprint_3d_hdf5_tets_radial0.000.00
    blueprint_3d_hdf5_hexs_mesh0.000.00
    blueprint_3d_hdf5_hexs_braid0.000.00
    blueprint_3d_hdf5_hexs_radial0.000.00
    3D Example Sidre HDF5 Mesh Files
    blueprint_3d_sidre_hdf5_points_mesh0.000.00
    blueprint_3d_sidre_hdf5_points_braid0.000.00
    blueprint_3d_sidre_hdf5_points_radial0.000.00
    blueprint_3d_sidre_hdf5_uniform_mesh0.000.00
    blueprint_3d_sidre_hdf5_uniform_braid0.000.00
    blueprint_3d_sidre_hdf5_uniform_radial0.000.00
    blueprint_3d_sidre_hdf5_rect_mesh0.000.00
    blueprint_3d_sidre_hdf5_rect_braid0.000.00
    blueprint_3d_sidre_hdf5_rect_radial0.000.00
    blueprint_3d_sidre_hdf5_struct_mesh0.000.00
    blueprint_3d_sidre_hdf5_struct_braid0.000.00
    blueprint_3d_sidre_hdf5_struct_radial0.000.00
    blueprint_3d_sidre_hdf5_tets_mesh0.000.00
    blueprint_3d_sidre_hdf5_tets_braid0.000.00
    blueprint_3d_sidre_hdf5_tets_radial0.000.00
    blueprint_3d_sidre_hdf5_hexs_mesh0.000.00
    blueprint_3d_sidre_hdf5_hexs_braid0.000.00
    blueprint_3d_sidre_hdf5_hexs_radial0.000.00
    MFEM Blueprint Example Data Tests
    blueprint_mfem_3d_periodic_cube_json_sol0.000.00
    blueprint_mfem_3d_periodic_cube_json_ele_coloring0.000.00
    blueprint_mfem_3d_periodic_cube_json_ele_att0.000.00
    blueprint_mfem_3d_periodic_cube_json_fall_back_to_old_LOR_sol0.000.00
    blueprint_mfem_3d_periodic_cube_json_fall_back_to_old_LOR_ele_coloring0.000.00
    blueprint_mfem_3d_periodic_cube_json_fall_back_to_old_LOR_ele_att0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_bin_sol0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_bin_ele_coloring0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_bin_ele_att0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_bin_fall_back_to_old_LOR_sol0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_bin_fall_back_to_old_LOR_ele_coloring0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_bin_fall_back_to_old_LOR_ele_att0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_json_sol0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_json_ele_coloring0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_json_ele_att0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_json_fall_back_to_old_LOR_sol0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_json_fall_back_to_old_LOR_ele_coloring0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_json_fall_back_to_old_LOR_ele_att0.000.00
    blueprint_mfem_3d_periodic_cube_hdf5_sol0.000.00
    blueprint_mfem_3d_periodic_cube_hdf5_ele_coloring0.000.00
    blueprint_mfem_3d_periodic_cube_hdf5_ele_att0.000.00
    blueprint_mfem_3d_periodic_cube_hdf5_fall_back_to_old_LOR_sol0.000.00
    blueprint_mfem_3d_periodic_cube_hdf5_fall_back_to_old_LOR_ele_coloring0.000.00
    blueprint_mfem_3d_periodic_cube_hdf5_fall_back_to_old_LOR_ele_att0.000.00
    blueprint_mfem_3d_star_q3_json_sol0.000.00
    blueprint_mfem_3d_star_q3_json_ele_coloring0.000.00
    blueprint_mfem_3d_star_q3_json_ele_att0.000.00
    blueprint_mfem_3d_star_q3_conduit_bin_sol0.000.00
    blueprint_mfem_3d_star_q3_conduit_bin_ele_coloring0.000.00
    blueprint_mfem_3d_star_q3_conduit_bin_ele_att0.000.00
    blueprint_mfem_3d_star_q3_conduit_json_sol0.000.00
    blueprint_mfem_3d_star_q3_conduit_json_ele_coloring0.000.00
    blueprint_mfem_3d_star_q3_conduit_json_ele_att0.000.00
    blueprint_mfem_3d_star_q3_hdf5_sol0.000.00
    blueprint_mfem_3d_star_q3_hdf5_ele_coloring0.000.00
    blueprint_mfem_3d_star_q3_hdf5_ele_att0.000.00
    blueprint_mfem_2d_periodic_hexagon_json_sol0.000.00
    blueprint_mfem_2d_periodic_hexagon_json_ele_coloring0.000.00
    blueprint_mfem_2d_periodic_hexagon_json_ele_att0.000.00
    blueprint_mfem_2d_periodic_hexagon_json_fall_back_to_old_LOR_sol0.000.00
    blueprint_mfem_2d_periodic_hexagon_json_fall_back_to_old_LOR_ele_coloring0.000.00
    blueprint_mfem_2d_periodic_hexagon_json_fall_back_to_old_LOR_ele_att0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_bin_sol0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_bin_ele_coloring0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_bin_ele_att0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_bin_fall_back_to_old_LOR_sol0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_bin_fall_back_to_old_LOR_ele_coloring0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_bin_fall_back_to_old_LOR_ele_att0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_json_sol0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_json_ele_coloring0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_json_ele_att0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_json_fall_back_to_old_LOR_sol0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_json_fall_back_to_old_LOR_ele_coloring0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_json_fall_back_to_old_LOR_ele_att0.000.00
    blueprint_mfem_2d_periodic_hexagon_hdf5_sol0.000.00
    blueprint_mfem_2d_periodic_hexagon_hdf5_ele_coloring0.000.00
    blueprint_mfem_2d_periodic_hexagon_hdf5_ele_att0.000.00
    blueprint_mfem_2d_periodic_hexagon_hdf5_fall_back_to_old_LOR_sol0.000.00
    blueprint_mfem_2d_periodic_hexagon_hdf5_fall_back_to_old_LOR_ele_coloring0.000.00
    blueprint_mfem_2d_periodic_hexagon_hdf5_fall_back_to_old_LOR_ele_att0.000.00
    MFEM LOR Mesh Blueprint Tests
    blueprint_mfem_3d_periodic_cube_json_lor0.000.00
    blueprint_mfem_3d_periodic_cube_json_legacy_lor0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_bin_lor0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_bin_legacy_lor0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_json_lor0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_json_legacy_lor0.000.00
    blueprint_mfem_3d_periodic_cube_hdf5_lor0.000.00
    blueprint_mfem_3d_periodic_cube_hdf5_legacy_lor0.000.00
    blueprint_mfem_3d_star_q3_json_lor0.000.00
    blueprint_mfem_3d_star_q3_json_legacy_lor0.000.00
    blueprint_mfem_3d_star_q3_conduit_bin_lor0.000.00
    blueprint_mfem_3d_star_q3_conduit_bin_legacy_lor0.000.00
    blueprint_mfem_3d_star_q3_conduit_json_lor0.000.00
    blueprint_mfem_3d_star_q3_conduit_json_legacy_lor0.000.00
    blueprint_mfem_3d_star_q3_hdf5_lor0.000.00
    blueprint_mfem_3d_star_q3_hdf5_legacy_lor0.000.00
    blueprint_mfem_2d_periodic_hexagon_json_lor2.260.21
    blueprint_mfem_2d_periodic_hexagon_json_legacy_lor2.260.21
    blueprint_mfem_2d_periodic_hexagon_conduit_bin_lor2.260.21
    blueprint_mfem_2d_periodic_hexagon_conduit_bin_legacy_lor2.260.21
    blueprint_mfem_2d_periodic_hexagon_conduit_json_lor2.260.21
    blueprint_mfem_2d_periodic_hexagon_conduit_json_legacy_lor2.260.21
    blueprint_mfem_2d_periodic_hexagon_hdf5_lor2.260.21
    blueprint_mfem_2d_periodic_hexagon_hdf5_legacy_lor2.260.21
    blueprint_mfem_3d_esher_lor0.000.00
    blueprint_mfem_3d_esher_legacy_lor0.000.00
    blueprint_mfem_3d_laghos_tg.cycle_lor0.000.00
    blueprint_mfem_3d_laghos_tg.cycle_legacy_lor0.000.00
    blueprint_mfem_3d_taylor_green.cycle_lor0.000.00
    blueprint_mfem_3d_taylor_green.cycle_legacy_lor0.000.00
    blueprint_mfem_2d_tri_beam_lor79.490.41
    blueprint_mfem_2d_tri_beam_legacy_lor31.680.41
    blueprint_mfem_3d_warbly_cube_lor0.000.00
    blueprint_mfem_3d_warbly_cube_legacy_lor0.000.00
    MFEM LOR Field Blueprint Tests
    blueprint_mfem_3d_esher_pseudocolor_mesh_nodes_magnitude_lor0.000.00
    blueprint_mfem_3d_laghos_tg.cycle_pseudocolor_mesh_nodes_magnitude_lor0.000.00
    blueprint_mfem_3d_laghos_tg.cycle_pseudocolor_density_lor0.000.00
    blueprint_mfem_3d_laghos_tg.cycle_pseudocolor_specific_internal_energy_lor0.000.00
    blueprint_mfem_3d_laghos_tg.cycle_pseudocolor_velocity_magnitude_lor0.000.00
    blueprint_mfem_3d_laghos_tg.cycle_vector_velocity_lor0.000.00
    blueprint_mfem_3d_taylor_green.cycle_pseudocolor_mesh_nodes_magnitude_lor0.000.00
    blueprint_mfem_3d_taylor_green.cycle_pseudocolor_density_lor0.000.00
    blueprint_mfem_3d_taylor_green.cycle_pseudocolor_specific_internal_energy_lor0.000.00
    blueprint_mfem_3d_taylor_green.cycle_pseudocolor_velocity_magnitude_lor0.000.00
    blueprint_mfem_3d_taylor_green.cycle_vector_velocity_lor0.000.00
    blueprint_mfem_2d_tri_beam_pseudocolor_mesh_nodes_magnitude_lor0.000.00
    blueprint_mfem_2d_tri_beam_vector_mesh_nodes_lor0.000.00
    blueprint_mfem_3d_warbly_cube_pseudocolor_mesh_nodes_magnitude_lor0.000.00
    Blueprint Expressions
    blueprint_expressions0.000.00
    Variables With Parens
    paren_vars_000.000.00
    Blueprint Matset Example Tests: venn_small_full
    venn_small_full_mat_check0.000.00
    testeq_t_mat_check_max
     4320 .eq. 4320 (prec=5) : True
    testeq_mat_check_min
     1 .eq. 1 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_full Matvf Exprs
    venn_small_full_vf_bg0.000.00
    testeq_vf_bg_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_bg_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_full_vf_c_a0.000.00
    testeq_vf_c_a_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_a_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_full_vf_c_b0.000.00
    testeq_vf_c_b_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_b_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_full_vf_c_c0.000.00
    testeq_vf_c_c_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_c_min
     0.0 .eq. 0.0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_full Val4mat Exprs
    venn_small_full_v4m_bg0.000.00
    testeq_v4m_bg_max
     1 .eq. 1 (prec=5) : True
    testeq_v4m_bg_min
     0 .eq. 0 (prec=5) : True
    venn_small_full_v4m_c_a0.000.00
    testeq_v4m_c_a_max
     20 .eq. 20 (prec=5) : True
    testeq_v4m_c_a_min
     0 .eq. 0 (prec=5) : True
    venn_small_full_v4m_c_b0.000.00
    testeq_v4m_c_b_max
     300 .eq. 300 (prec=5) : True
    testeq_v4m_c_b_min
     0 .eq. 0 (prec=5) : True
    venn_small_full_v4m_c_c0.000.00
    testeq_v4m_c_c_max
     4000 .eq. 4000 (prec=5) : True
    testeq_v4m_c_c_min
     0 .eq. 0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_element
    venn_small_sparse_by_element_mat_check0.000.00
    testeq_t_mat_check_max
     4320 .eq. 4320 (prec=5) : True
    testeq_mat_check_min
     1 .eq. 1 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_element Matvf Exprs
    venn_small_sparse_by_element_vf_bg0.000.00
    testeq_vf_bg_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_bg_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_element_vf_c_a0.000.00
    testeq_vf_c_a_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_a_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_element_vf_c_b0.000.00
    testeq_vf_c_b_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_b_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_element_vf_c_c0.000.00
    testeq_vf_c_c_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_c_min
     0.0 .eq. 0.0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_element Val4mat Exprs
    venn_small_sparse_by_element_v4m_bg0.000.00
    testeq_v4m_bg_max
     1 .eq. 1 (prec=5) : True
    testeq_v4m_bg_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_element_v4m_c_a0.000.00
    testeq_v4m_c_a_max
     20 .eq. 20 (prec=5) : True
    testeq_v4m_c_a_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_element_v4m_c_b0.000.00
    testeq_v4m_c_b_max
     300 .eq. 300 (prec=5) : True
    testeq_v4m_c_b_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_element_v4m_c_c0.000.00
    testeq_v4m_c_c_max
     4000 .eq. 4000 (prec=5) : True
    testeq_v4m_c_c_min
     0 .eq. 0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_material
    venn_small_sparse_by_material_mat_check0.000.00
    testeq_t_mat_check_max
     4320 .eq. 4320 (prec=5) : True
    testeq_mat_check_min
     1 .eq. 1 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_material Matvf Exprs
    venn_small_sparse_by_material_vf_bg0.000.00
    testeq_vf_bg_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_bg_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_material_vf_c_a0.000.00
    testeq_vf_c_a_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_a_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_material_vf_c_b0.000.00
    testeq_vf_c_b_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_b_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_material_vf_c_c0.000.00
    testeq_vf_c_c_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_c_min
     0.0 .eq. 0.0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_material Val4mat Exprs
    venn_small_sparse_by_material_v4m_bg0.000.00
    testeq_v4m_bg_max
     1 .eq. 1 (prec=5) : True
    testeq_v4m_bg_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_material_v4m_c_a0.000.00
    testeq_v4m_c_a_max
     20 .eq. 20 (prec=5) : True
    testeq_v4m_c_a_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_material_v4m_c_b0.000.00
    testeq_v4m_c_b_max
     300 .eq. 300 (prec=5) : True
    testeq_v4m_c_b_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_material_v4m_c_c0.000.00
    testeq_v4m_c_c_max
     4000 .eq. 4000 (prec=5) : True
    testeq_v4m_c_c_min
     0 .eq. 0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_full_yaml
    venn_small_full_yaml_mat_check0.000.00
    testeq_t_mat_check_max
     4320 .eq. 4320 (prec=5) : True
    testeq_mat_check_min
     1 .eq. 1 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_full_yaml Matvf Exprs
    venn_small_full_yaml_vf_bg0.000.00
    testeq_vf_bg_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_bg_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_full_yaml_vf_c_a0.000.00
    testeq_vf_c_a_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_a_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_full_yaml_vf_c_b0.000.00
    testeq_vf_c_b_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_b_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_full_yaml_vf_c_c0.000.00
    testeq_vf_c_c_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_c_min
     0.0 .eq. 0.0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_full_yaml Val4mat Exprs
    venn_small_full_yaml_v4m_bg0.000.00
    testeq_v4m_bg_max
     1 .eq. 1 (prec=5) : True
    testeq_v4m_bg_min
     0 .eq. 0 (prec=5) : True
    venn_small_full_yaml_v4m_c_a0.000.00
    testeq_v4m_c_a_max
     20 .eq. 20 (prec=5) : True
    testeq_v4m_c_a_min
     0 .eq. 0 (prec=5) : True
    venn_small_full_yaml_v4m_c_b0.000.00
    testeq_v4m_c_b_max
     300 .eq. 300 (prec=5) : True
    testeq_v4m_c_b_min
     0 .eq. 0 (prec=5) : True
    venn_small_full_yaml_v4m_c_c0.000.00
    testeq_v4m_c_c_max
     4000 .eq. 4000 (prec=5) : True
    testeq_v4m_c_c_min
     0 .eq. 0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_element_yaml
    venn_small_sparse_by_element_yaml_mat_check0.000.00
    testeq_t_mat_check_max
     4320 .eq. 4320 (prec=5) : True
    testeq_mat_check_min
     1 .eq. 1 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_element_yaml Matvf Exprs
    venn_small_sparse_by_element_yaml_vf_bg0.000.00
    testeq_vf_bg_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_bg_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_element_yaml_vf_c_a0.000.00
    testeq_vf_c_a_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_a_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_element_yaml_vf_c_b0.000.00
    testeq_vf_c_b_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_b_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_element_yaml_vf_c_c0.000.00
    testeq_vf_c_c_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_c_min
     0.0 .eq. 0.0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_element_yaml Val4mat Exprs
    venn_small_sparse_by_element_yaml_v4m_bg0.000.00
    testeq_v4m_bg_max
     1 .eq. 1 (prec=5) : True
    testeq_v4m_bg_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_element_yaml_v4m_c_a0.000.00
    testeq_v4m_c_a_max
     20 .eq. 20 (prec=5) : True
    testeq_v4m_c_a_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_element_yaml_v4m_c_b0.000.00
    testeq_v4m_c_b_max
     300 .eq. 300 (prec=5) : True
    testeq_v4m_c_b_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_element_yaml_v4m_c_c0.000.00
    testeq_v4m_c_c_max
     4000 .eq. 4000 (prec=5) : True
    testeq_v4m_c_c_min
     0 .eq. 0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_material_yaml
    venn_small_sparse_by_material_yaml_mat_check0.000.00
    testeq_t_mat_check_max
     4320 .eq. 4320 (prec=5) : True
    testeq_mat_check_min
     1 .eq. 1 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_material_yaml Matvf Exprs
    venn_small_sparse_by_material_yaml_vf_bg0.000.00
    testeq_vf_bg_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_bg_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_material_yaml_vf_c_a0.000.00
    testeq_vf_c_a_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_a_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_material_yaml_vf_c_b0.000.00
    testeq_vf_c_b_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_b_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_material_yaml_vf_c_c0.000.00
    testeq_vf_c_c_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_c_min
     0.0 .eq. 0.0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_material_yaml Val4mat Exprs
    venn_small_sparse_by_material_yaml_v4m_bg0.000.00
    testeq_v4m_bg_max
     1 .eq. 1 (prec=5) : True
    testeq_v4m_bg_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_material_yaml_v4m_c_a0.000.00
    testeq_v4m_c_a_max
     20 .eq. 20 (prec=5) : True
    testeq_v4m_c_a_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_material_yaml_v4m_c_b0.000.00
    testeq_v4m_c_b_max
     300 .eq. 300 (prec=5) : True
    testeq_v4m_c_b_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_material_yaml_v4m_c_c0.000.00
    testeq_v4m_c_c_max
     4000 .eq. 4000 (prec=5) : True
    testeq_v4m_c_c_min
     0 .eq. 0 (prec=5) : True
    Venn With Modded Material Numbers, 0.8.7
    Venn_with_modded_matnos0.000.00
    2D Example HDF5 Mesh Files, 0.8.2
    blueprint_2d_hdf5_0_8_2_points_mesh0.000.00
    blueprint_2d_hdf5_0_8_2_points_braid0.000.00
    blueprint_2d_hdf5_0_8_2_points_radial0.000.00
    blueprint_2d_hdf5_0_8_2_uniform_mesh2.740.64
    blueprint_2d_hdf5_0_8_2_uniform_braid0.000.00
    blueprint_2d_hdf5_0_8_2_uniform_radial0.000.00
    blueprint_2d_hdf5_0_8_2_rect_mesh2.740.64
    blueprint_2d_hdf5_0_8_2_rect_braid0.000.00
    blueprint_2d_hdf5_0_8_2_rect_radial0.000.00
    blueprint_2d_hdf5_0_8_2_struct_mesh2.740.64
    blueprint_2d_hdf5_0_8_2_struct_braid0.000.00
    blueprint_2d_hdf5_0_8_2_struct_radial0.000.00
    blueprint_2d_hdf5_0_8_2_tris_mesh1.870.64
    blueprint_2d_hdf5_0_8_2_tris_braid0.000.00
    blueprint_2d_hdf5_0_8_2_tris_radial0.000.00
    blueprint_2d_hdf5_0_8_2_quads_mesh2.740.64
    blueprint_2d_hdf5_0_8_2_quads_braid0.000.00
    blueprint_2d_hdf5_0_8_2_quads_radial0.000.00
    blueprint_2d_hdf5_0_8_2_points_implicit_mesh0.000.00
    blueprint_2d_hdf5_0_8_2_points_implicit_braid0.000.00
    blueprint_2d_hdf5_0_8_2_points_implicit_radial0.000.00
    2D Example YAML Mesh Files, 0.8.2
    blueprint_2d_yaml_0_8_2_points_mesh0.000.00
    blueprint_2d_yaml_0_8_2_points_braid0.000.00
    blueprint_2d_yaml_0_8_2_points_radial0.000.00
    blueprint_2d_yaml_0_8_2_uniform_mesh2.740.64
    blueprint_2d_yaml_0_8_2_uniform_braid0.000.00
    blueprint_2d_yaml_0_8_2_uniform_radial0.000.00
    blueprint_2d_yaml_0_8_2_rect_mesh2.740.64
    blueprint_2d_yaml_0_8_2_rect_braid0.000.00
    blueprint_2d_yaml_0_8_2_rect_radial0.000.00
    blueprint_2d_yaml_0_8_2_struct_mesh2.740.64
    blueprint_2d_yaml_0_8_2_struct_braid0.000.00
    blueprint_2d_yaml_0_8_2_struct_radial0.000.00
    blueprint_2d_yaml_0_8_2_tris_mesh1.870.64
    blueprint_2d_yaml_0_8_2_tris_braid0.000.00
    blueprint_2d_yaml_0_8_2_tris_radial0.000.00
    blueprint_2d_yaml_0_8_2_quads_mesh2.740.64
    blueprint_2d_yaml_0_8_2_quads_braid0.000.00
    blueprint_2d_yaml_0_8_2_quads_radial0.000.00
    blueprint_2d_yaml_0_8_2_points_implicit_mesh0.000.00
    blueprint_2d_yaml_0_8_2_points_implicit_braid0.000.00
    blueprint_2d_yaml_0_8_2_points_implicit_radial0.000.00
    3D Example HDF5 Mesh Files, 0.8.2
    blueprint_3d_hdf5_0_8_2_points_mesh0.000.00
    blueprint_3d_hdf5_0_8_2_points_braid0.000.00
    blueprint_3d_hdf5_0_8_2_points_radial0.000.00
    blueprint_3d_hdf5_0_8_2_uniform_mesh0.000.00
    blueprint_3d_hdf5_0_8_2_uniform_braid0.000.00
    blueprint_3d_hdf5_0_8_2_uniform_radial0.000.00
    blueprint_3d_hdf5_0_8_2_rect_mesh0.000.00
    blueprint_3d_hdf5_0_8_2_rect_braid0.000.00
    blueprint_3d_hdf5_0_8_2_rect_radial0.000.00
    blueprint_3d_hdf5_0_8_2_struct_mesh0.000.00
    blueprint_3d_hdf5_0_8_2_struct_braid0.000.00
    blueprint_3d_hdf5_0_8_2_struct_radial0.000.00
    blueprint_3d_hdf5_0_8_2_tets_mesh0.000.00
    blueprint_3d_hdf5_0_8_2_tets_braid0.000.00
    blueprint_3d_hdf5_0_8_2_tets_radial0.000.00
    blueprint_3d_hdf5_0_8_2_hexs_mesh0.000.00
    blueprint_3d_hdf5_0_8_2_hexs_braid0.000.00
    blueprint_3d_hdf5_0_8_2_hexs_radial0.000.00
    blueprint_3d_hdf5_0_8_2_points_implicit_mesh0.000.00
    blueprint_3d_hdf5_0_8_2_points_implicit_braid0.000.00
    blueprint_3d_hdf5_0_8_2_points_implicit_radial0.000.00
    3D Example YAML Mesh Files, 0.8.2
    blueprint_3d_yaml_0_8_2_points_mesh0.000.00
    blueprint_3d_yaml_0_8_2_points_braid0.000.00
    blueprint_3d_yaml_0_8_2_points_radial0.000.00
    blueprint_3d_yaml_0_8_2_uniform_mesh0.000.00
    blueprint_3d_yaml_0_8_2_uniform_braid0.000.00
    blueprint_3d_yaml_0_8_2_uniform_radial0.000.00
    blueprint_3d_yaml_0_8_2_rect_mesh0.000.00
    blueprint_3d_yaml_0_8_2_rect_braid0.000.00
    blueprint_3d_yaml_0_8_2_rect_radial0.000.00
    blueprint_3d_yaml_0_8_2_struct_mesh0.000.00
    blueprint_3d_yaml_0_8_2_struct_braid0.000.00
    blueprint_3d_yaml_0_8_2_struct_radial0.000.00
    blueprint_3d_yaml_0_8_2_tets_mesh0.000.00
    blueprint_3d_yaml_0_8_2_tets_braid0.000.00
    blueprint_3d_yaml_0_8_2_tets_radial0.000.00
    blueprint_3d_yaml_0_8_2_hexs_mesh0.000.00
    blueprint_3d_yaml_0_8_2_hexs_braid0.000.00
    blueprint_3d_yaml_0_8_2_hexs_radial0.000.00
    blueprint_3d_yaml_0_8_2_points_implicit_mesh0.000.00
    blueprint_3d_yaml_0_8_2_points_implicit_braid0.000.00
    blueprint_3d_yaml_0_8_2_points_implicit_radial0.000.00
    Polygonal 2D Example HDF5 Mesh Files, 0.8.2
    blueprint_poly_2d_hdf5_0_8_2_mesh_topo_mesh3.890.21
    blueprint_poly_2d_hdf5_0_8_2_mesh_topo_level0.000.00
    Polygonal 2D Example YAML Mesh Files, 0.8.2
    blueprint_poly_2d_yaml_0_8_2_mesh_topo_mesh3.890.21
    blueprint_poly_2d_yaml_0_8_2_mesh_topo_level0.000.00
    Polygonal 3D Example HDF5 Mesh Files, 0.8.2
    blueprint_poly_3d_hdf5_0_8_2_mesh_topo_mesh0.000.00
    blueprint_poly_3d_hdf5_0_8_2_mesh_topo_level0.000.00
    Polygonal 3D Example YAML Mesh Files, 0.8.2
    blueprint_poly_3d_yaml_0_8_2_mesh_topo_mesh0.000.00
    blueprint_poly_3d_yaml_0_8_2_mesh_topo_level0.000.00
    Blueprint with Partition Map Style Index, 0.8.4
    bp_part_map_index_example0.000.00
    bp_part_map_index_single_file_example0.000.00
    bp_sparse_topos_example9.750.88
    bp_part_map_spiral_case_-10.000.00
    bp_part_map_spiral_case_00.000.00
    bp_part_map_spiral_case_10.000.00
    bp_part_map_spiral_case_20.000.00
    bp_part_map_spiral_case_30.000.00
    bp_part_map_spiral_case_40.000.00
    bp_part_map_spiral_case_50.000.00
    bp_part_map_spiral_case_60.000.00
    bp_part_map_spiral_case_70.000.00
    bp_part_map_spiral_case_80.000.00
    Blueprint Strided Structured, 0.8.4
    bp_strided_struct_2d_ele_vals0.000.00
    bp_strided_struct_2d_vert_vals0.000.00
    bp_strided_struct_3d_ele_vals0.000.00
    bp_strided_struct_3d_vert_vals0.000.00
    Blueprint RZ Examples, 0.8.6
    blueprint_rz_cyl_rectilinear.root_plot_2D0.590.64
    blueprint_rz_cyl_rectilinear.root_plot_revolved_to_3D1000000.0069.22
    blueprint_rz_cyl_uniform.root_plot_2D0.590.64
    blueprint_rz_cyl_uniform.root_plot_revolved_to_3D0.000.00
    blueprint_rz_cyl_structured.root_plot_2D0.590.63
    blueprint_rz_cyl_structured.root_plot_revolved_to_3D0.000.00
    blueprint_rz_cyl_unstructured.root_plot_2D0.590.63
    blueprint_rz_cyl_unstructured.root_plot_revolved_to_3D0.000.00
    Blueprint 1D Curve Examples, 0.8.6
    blueprint_1d_curve_vertex_assoc0.000.00
    blueprint_1d_curve_element_assoc0.130.00
    Blueprint Polytopal Mesh Missing Offsets, 0.8.7
    Polytopal_mesh_missing_offsets1.310.42
    Blueprint Unstructured Points not using the entire coordset, 0.8.7
    Unstructured_points_not_using_entire_coordset0.000.00
    Blueprint Uniform Coordset + Unstructured Topo, 0.9.1
    Uniform_coordset_and_unstructured_topo0.000.00
    Blueprint Mixed Topos, 0.9.2
    Mixed_topo_simple_2d0.330.42
    Mixed_topo_polygonal_2d0.330.42
    Mixed_topo_simple_3d0.000.00
    Mixed_braid_2d0.440.63
    Mixed_braid_3d0.000.00
    Mixed_tet_quad_2d0.440.64
    Mixed_offsets_2d1.260.63
    Blueprint Specsets, 0.9.2
    Misc_radial0.000.00
    Misc_specset0.000.00
    +

    Final Return Code: 120

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_blueprint_axom_klee.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_blueprint_axom_klee.html new file mode 100644 index 000000000..ba68fdd2f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_blueprint_axom_klee.html @@ -0,0 +1,196 @@ + +Results for databases/blueprint_axom_klee.py + +

    Results of VisIt Regression Test - databases/blueprint_axom_klee

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    P0 Material
    blueprint_axom_klee_0_000.000.00
    P2 Material
    blueprint_axom_klee_1_000.000.00
    blueprint_axom_klee_1_010.000.00
    blueprint_axom_klee_1_020.000.00
    blueprint_axom_klee_1_030.000.00
    P5 Material
    blueprint_axom_klee_2_000.000.00
    blueprint_axom_klee_2_010.000.00
    blueprint_axom_klee_2_020.000.00
    blueprint_axom_klee_2_030.000.00
    matvf on HO materials
    blueprint_axom_klee_3_000.000.00
    blueprint_axom_klee_3_010.000.00
    blueprint_axom_klee_3_020.000.00
    blueprint_axom_klee_3_030.000.00
    blueprint_axom_klee_3_040.000.00
    blueprint_axom_klee_3_050.000.00
    blueprint_axom_klee_3_060.000.00
    Testing display_name
    blueprint_axom_klee_4_000.000.00
    blueprint_axom_klee_4_010.000.00
    blueprint_axom_klee_4_020.000.00
    blueprint_axom_klee_4_030.000.00
    blueprint_axom_klee_4_040.000.00
    blueprint_axom_klee_4_050.000.00
    Refine low order field
    blueprint_axom_klee_5_000 modifications totalling 0 lines
    blueprint_axom_klee_5_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_blueprint_axom_klee_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_blueprint_axom_klee_py.html new file mode 100644 index 000000000..40fdf6cfa --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_blueprint_axom_klee_py.html @@ -0,0 +1,213 @@ +databases/blueprint_axom_klee.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  blueprint_axom_klee.py 
    +#
    +#  Tests:      blueprint hdf5 files 
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed May 31 15:59:22 PDT 2023
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Jul 19 15:11:35 PDT 2023
    +#    I added some tests for an index file that has display_name entries in it.
    +#
    +#    Brad Whitlock, Tue Dec 19 17:29:53 PST 2023
    +#    I added a new test to make sure refining a low-order field happens by
    +#    making sure there is no message about adding extra 0's.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("Blueprint")
    +from os.path import join as pjoin
    +
    +def bj_test_helper_mats(rootName, prefix, sectionText, extraPlots = None):
    +    TestSection(sectionText)
    +    db = data_path(pjoin("axom_klee_test_data", rootName))
    +    OpenDatabase(db)
    +    AddPlot("FilledBoundary", "shaping_mesh_material")
    +    fb = FilledBoundaryAttributes(1)
    +    fb.SetMultiColor(0, (255,0,0,255))
    +    fb.SetMultiColor(1, (0,255,0,255))
    +    fb.SetMultiColor(2, (0,0,255,255))
    +    fb.SetMultiColor(3, (0,255,255,255))
    +    SetPlotOptions(fb)
    +    AddPlot("Mesh", "shaping_mesh")
    +    DrawPlots()
    +    v = GetView2D()
    +    v.windowCoords = (7.83773, 12.304, 8.64959, 13.1412)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    SetView2D(v)
    +    SetActivePlots((0,1))
    +
    +    Test(prefix + "_00")
    +
    +    # Increase the resolution.
    +    AddOperator("MultiresControl", 1)
    +    m = MultiresControlAttributes()
    +    m.resolution = 4
    +    m.maxResolution = 10
    +    SetOperatorOptions(m)
    +    DrawPlots()
    +    Test(prefix + "_01")
    +
    +    v2 = GetView2D()
    +    v2.windowCoords = (9.50025, 10.5163, 10.8769, 11.9097)
    +    v2.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    SetView2D(v2)
    +    Test(prefix + "_02")
    +
    +    SetActivePlots(0)
    +    DeleteActivePlots()
    +
    +    # Possibly make some extra plots
    +    if extraPlots is not None:
    +        extraPlots(prefix, v)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def bj_test_helper(datadir, prefix, sectionText):
    +    def pc_plots(prefix, v):
    +        # Look at one of the volume fractions. It should be refined
    +        AddPlot("Pseudocolor", "shaping_mesh/vol_frac_steel", 1, 1)
    +        DrawPlots()
    +        SetView2D(v)
    +        Test(prefix + "_03")
    +    bj_test_helper_mats(datadir, prefix, sectionText, pc_plots)
    +
    +def test0():
    +    TestSection("P0 Material")
    +    db = data_path(pjoin("axom_klee_test_data", "heroic_roses_o0", "shaping.root"))
    +    OpenDatabase(db)
    +
    +    AddPlot("FilledBoundary", "shaping_mesh_material")
    +    fb = FilledBoundaryAttributes(1)
    +    fb.SetMultiColor(0, (0,0,0,255))
    +    fb.SetMultiColor(1, (80,80,220,255))
    +    fb.SetMultiColor(2, (93,241,160,255))
    +    fb.SetMultiColor(3, (0,120,0,255))
    +    fb.SetMultiColor(4, (90,100,50,255))
    +    fb.SetMultiColor(5, (241,132,171,255))
    +    fb.SetMultiColor(6, (184,158,241,255))
    +    fb.SetMultiColor(7, (240,0,0,255))
    +    fb.SetMultiColor(8, (255,153,0,255))
    +    SetPlotOptions(fb)
    +    DrawPlots()
    +    ResetView()
    +    Test("blueprint_axom_klee_0_00")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test1():
    +    bj_test_helper("balls_and_jacks_q7o2/shaping.root", "blueprint_axom_klee_1", "P2 Material")
    +
    +def test2():
    +    bj_test_helper("balls_and_jacks_q7o5/shaping.root", "blueprint_axom_klee_2", "P5 Material")
    +
    +def test3():
    +    TestSection("matvf on HO materials")
    +    db = data_path(pjoin("axom_klee_test_data", "3mat_q12o12", "shaping.root"))
    +    OpenDatabase(db)
    +
    +    AddPlot("FilledBoundary", "shaping_mesh_material")
    +    AddOperator("MultiresControl")
    +    op = MultiresControlAttributes()
    +    op.resolution = 16
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    ResetView()
    +    Test("blueprint_axom_klee_3_00")
    +    DeleteAllPlots()
    +
    +    DefineScalarExpression("vf_inner", 'matvf(shaping_mesh_material, "inner")')
    +    DefineScalarExpression("vf_middle", 'matvf(shaping_mesh_material, "middle")')
    +    DefineScalarExpression("vf_outer", 'matvf(shaping_mesh_material, "outer")')
    +    AddPlot("Pseudocolor", "vf_inner")
    +    AddOperator("MultiresControl")
    +    op = MultiresControlAttributes()
    +    op.resolution = 3
    +    op.maxResolution = 20
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    Test("blueprint_axom_klee_3_01")
    +    op.resolution = 20
    +    SetOperatorOptions(op)
    +    Test("blueprint_axom_klee_3_02")
    +
    +    ChangeActivePlotsVar("vf_middle")
    +    op.resolution = 3
    +    SetOperatorOptions(op)
    +    Test("blueprint_axom_klee_3_03")
    +    op.resolution = 20
    +    SetOperatorOptions(op)
    +    Test("blueprint_axom_klee_3_04")
    +
    +    ChangeActivePlotsVar("vf_outer")
    +    op.resolution = 3
    +    SetOperatorOptions(op)
    +    Test("blueprint_axom_klee_3_05")
    +    op.resolution = 20
    +    SetOperatorOptions(op)
    +    Test("blueprint_axom_klee_3_06")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test4():
    +    def pc_plots(prefix, v):
    +        # Look at the volume fraction fields, whose names were changed
    +        # in the index using display_name.
    +        SetActivePlots(0)
    +        DeleteActivePlots()
    +        AddPlot("Pseudocolor", "volume_fractions/air", 1, 1)
    +        DrawPlots()
    +        ResetView()
    +        Test(prefix + "_03")
    +        ChangeActivePlotsVar("volume_fractions/rubber")
    +        Test(prefix + "_04")
    +        ChangeActivePlotsVar("volume_fractions/steel")
    +        Test(prefix + "_05")
    +    # Make sure the material still plots, even though its constituent volume
    +    # fraction arrays have been renamed in the index file using display_name.
    +    bj_test_helper_mats("balls_and_jacks_q7o2/shaping_mod.root", "blueprint_axom_klee_4", "Testing display_name", pc_plots)
    +
    +def test5():
    +    TestSection("Refine low order field")
    +    db = data_path(pjoin("axom_klee_test_data", "balls_and_jacks_q7o5", "shaping.root"))
    +    OpenDatabase(db)
    +
    +    # Plot a low-order field that would normally *not* refine with MultiresControl.
    +    AddPlot("Pseudocolor", "shaping_mesh/mesh_material_attribute")
    +    AddOperator("MultiresControl")
    +    m = MultiresControlAttributes()
    +    m.maxResolution = 10
    +    m.resolution = 2
    +    SetOperatorOptions(m)
    +    msg, severity = GetLastMessage(1)
    +    DrawPlots()
    +
    +    # Executing the plot would have issued a warning about VisIt having to add
    +    # 0's. Make sure that message no longer happens.
    +    msg, severity = GetLastMessage(1)
    +    if msg.find("Extra 0.\'s were added") != -1:
    +        txt = msg
    +    else:
    +        txt = "Padding the field was not necessary."
    +    TestText("blueprint_axom_klee_5_00", txt)
    +    Test("blueprint_axom_klee_5_01")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def main():
    +    test0()
    +    test1()
    +    test2()
    +    test3()
    +    test4()
    +    test5()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_blueprint_export.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_blueprint_export.html new file mode 100644 index 000000000..83776ba43 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_blueprint_export.html @@ -0,0 +1,1122 @@ + +Results for databases/blueprint_export.py + +

    Results of VisIt Regression Test - databases/blueprint_export

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    basic_multi_rect3d.silo_input0.000.00
    basic_multi_rect3d.silo_isosurface0.000.00
    basic_multi_rect3d.silo_default_exported0.000.00
    basic_multi_rect3d.silo_isosurface_exported0.000.00
    basic_multi_curv3d.silo_input0.000.00
    basic_multi_curv3d.silo_isosurface0.000.00
    basic_multi_curv3d.silo_default_exported0.000.00
    basic_multi_curv3d.silo_isosurface_exported0.000.00
    basic_multi_curv2d.silo_input0.000.00
    basic_multi_curv2d.silo_isosurface0.000.00
    basic_multi_curv2d.silo_default_exported0.000.00
    basic_multi_curv2d.silo_isosurface_exported0.000.00
    basic_multi_ucd3d.silo_input0.000.00
    basic_multi_ucd3d.silo_isosurface0.000.00
    basic_multi_ucd3d.silo_default_exported0.000.00
    basic_multi_ucd3d.silo_isosurface_exported0.000.00
    basic_multi_rect2d.silo_input0.000.00
    basic_multi_rect2d.silo_isosurface0.000.00
    basic_multi_rect2d.silo_default_exported0.000.00
    basic_multi_rect2d.silo_isosurface_exported0.000.00
    basic_multi_rect3d.silo_input_output_dir0.000.00
    basic_multi_rect3d.silo_isosurface_output_dir0.000.00
    basic_multi_rect3d.silo_default_exported_output_dir0.000.00
    basic_multi_rect3d.silo_isosurface_exported_output_dir0.000.00
    basic_multi_curv3d.silo_input_output_dir0.000.00
    basic_multi_curv3d.silo_isosurface_output_dir0.000.00
    basic_multi_curv3d.silo_default_exported_output_dir0.000.00
    basic_multi_curv3d.silo_isosurface_exported_output_dir0.000.00
    basic_multi_curv2d.silo_input_output_dir0.000.00
    basic_multi_curv2d.silo_isosurface_output_dir0.000.00
    basic_multi_curv2d.silo_default_exported_output_dir0.000.00
    basic_multi_curv2d.silo_isosurface_exported_output_dir0.000.00
    basic_multi_ucd3d.silo_input_output_dir0.000.00
    basic_multi_ucd3d.silo_isosurface_output_dir0.000.00
    basic_multi_ucd3d.silo_default_exported_output_dir0.000.00
    basic_multi_ucd3d.silo_isosurface_exported_output_dir0.000.00
    basic_multi_rect2d.silo_input_output_dir0.000.00
    basic_multi_rect2d.silo_isosurface_output_dir0.000.00
    basic_multi_rect2d.silo_default_exported_output_dir0.000.00
    basic_multi_rect2d.silo_isosurface_exported_output_dir0.000.00
    basic_multi_rect3d.silo_extra_options_input0.000.00
    BasicJSONOptions0.000.00
    BasicYAMLOptions0.000.00
    Blueprint partition
    multi_rect3d.silo0.000.00
    multi_rect3d.silo_partition1_0_0.000.00
    multi_rect3d.silo_partition1_1_0.000.00
    multi_rect3d.silo_partition4_0_0.000.00
    multi_rect3d.silo_partition4_1_0.000.00
    multi_rect3d.silo_partition19_0_0.000.00
    multi_rect3d.silo_partition19_1_0.000.00
    multi_rect3d.silo_partition45_0_0.000.00
    multi_rect3d.silo_partition45_1_0.000.00
    multi_curv3d.silo0.000.00
    multi_curv3d.silo_partition1_0_0.000.00
    multi_curv3d.silo_partition1_1_0.000.00
    multi_curv3d.silo_partition4_0_0.000.00
    multi_curv3d.silo_partition4_1_0.000.00
    multi_curv3d.silo_partition19_0_0.000.00
    multi_curv3d.silo_partition19_1_0.000.00
    multi_curv3d.silo_partition45_0_0.000.00
    multi_curv3d.silo_partition45_1_0.000.00
    multi_ucd3d.silo0.000.00
    multi_ucd3d.silo_partition1_0_0.000.00
    multi_ucd3d.silo_partition1_1_0.000.00
    multi_ucd3d.silo_partition4_0_0.000.00
    multi_ucd3d.silo_partition4_1_0.000.00
    multi_ucd3d.silo_partition19_0_0.000.00
    multi_ucd3d.silo_partition19_1_0.000.00
    multi_ucd3d.silo_partition45_0_0.000.00
    multi_ucd3d.silo_partition45_1_0.000.00
    multi_curv2d.silo0.000.00
    multi_curv2d.silo_partition1_0_0.000.00
    multi_curv2d.silo_partition1_1_0.000.00
    multi_curv2d.silo_partition4_0_0.000.00
    multi_curv2d.silo_partition4_1_0.000.00
    multi_curv2d.silo_partition7_0_0.000.00
    multi_curv2d.silo_partition7_1_0.000.00
    multi_curv2d.silo_partition13_0_0.000.00
    multi_curv2d.silo_partition13_1_0.000.00
    multi_curv2d.silo_partition19_0_0.000.00
    multi_curv2d.silo_partition19_1_0.000.00
    multi_rect2d.silo0.000.00
    multi_rect2d.silo_partition1_0_0.000.00
    multi_rect2d.silo_partition1_1_0.000.00
    multi_rect2d.silo_partition4_0_0.000.00
    multi_rect2d.silo_partition4_1_0.000.00
    multi_rect2d.silo_partition7_0_0.000.00
    multi_rect2d.silo_partition7_1_0.000.00
    multi_rect2d.silo_partition13_0_0.000.00
    multi_rect2d.silo_partition13_1_0.000.00
    multi_rect2d.silo_partition19_0_0.000.00
    multi_rect2d.silo_partition19_1_0.000.00
    multi_rect3d.silo_output_dir0.000.00
    multi_rect3d.silo_partition1_0_output_dir0.000.00
    multi_rect3d.silo_partition1_1_output_dir0.000.00
    multi_rect3d.silo_partition4_0_output_dir0.000.00
    multi_rect3d.silo_partition4_1_output_dir0.000.00
    multi_rect3d.silo_partition19_0_output_dir0.000.00
    multi_rect3d.silo_partition19_1_output_dir0.000.00
    multi_rect3d.silo_partition45_0_output_dir0.000.00
    multi_rect3d.silo_partition45_1_output_dir0.000.00
    multi_curv3d.silo_output_dir0.000.00
    multi_curv3d.silo_partition1_0_output_dir0.000.00
    multi_curv3d.silo_partition1_1_output_dir0.000.00
    multi_curv3d.silo_partition4_0_output_dir0.000.00
    multi_curv3d.silo_partition4_1_output_dir0.000.00
    multi_curv3d.silo_partition19_0_output_dir0.000.00
    multi_curv3d.silo_partition19_1_output_dir0.000.00
    multi_curv3d.silo_partition45_0_output_dir0.000.00
    multi_curv3d.silo_partition45_1_output_dir0.000.00
    multi_ucd3d.silo_output_dir0.000.00
    multi_ucd3d.silo_partition1_0_output_dir0.000.00
    multi_ucd3d.silo_partition1_1_output_dir0.000.00
    multi_ucd3d.silo_partition4_0_output_dir0.000.00
    multi_ucd3d.silo_partition4_1_output_dir0.000.00
    multi_ucd3d.silo_partition19_0_output_dir0.000.00
    multi_ucd3d.silo_partition19_1_output_dir0.000.00
    multi_ucd3d.silo_partition45_0_output_dir0.000.00
    multi_ucd3d.silo_partition45_1_output_dir0.000.00
    multi_curv2d.silo_output_dir0.000.00
    multi_curv2d.silo_partition1_0_output_dir0.000.00
    multi_curv2d.silo_partition1_1_output_dir0.000.00
    multi_curv2d.silo_partition4_0_output_dir0.000.00
    multi_curv2d.silo_partition4_1_output_dir0.000.00
    multi_curv2d.silo_partition7_0_output_dir0.000.00
    multi_curv2d.silo_partition7_1_output_dir0.000.00
    multi_curv2d.silo_partition13_0_output_dir0.000.00
    multi_curv2d.silo_partition13_1_output_dir0.000.00
    multi_curv2d.silo_partition19_0_output_dir0.000.00
    multi_curv2d.silo_partition19_1_output_dir0.000.00
    multi_rect2d.silo_output_dir0.000.00
    multi_rect2d.silo_partition1_0_output_dir0.000.00
    multi_rect2d.silo_partition1_1_output_dir0.000.00
    multi_rect2d.silo_partition4_0_output_dir0.000.00
    multi_rect2d.silo_partition4_1_output_dir0.000.00
    multi_rect2d.silo_partition7_0_output_dir0.000.00
    multi_rect2d.silo_partition7_1_output_dir0.000.00
    multi_rect2d.silo_partition13_0_output_dir0.000.00
    multi_rect2d.silo_partition13_1_output_dir0.000.00
    multi_rect2d.silo_partition19_0_output_dir0.000.00
    multi_rect2d.silo_partition19_1_output_dir0.000.00
    Extra options
    DefaultMesh0.000.00
    JSONOptions0.000.00
    YAMLOptions0.000.00
    OverrideOptions0.000.00
    Extra extra options
    DefaultMesh_extra_extra_options0.000.00
    JSONOptions_extra_extra_options0.000.00
    YAMLOptions_extra_extra_options0.000.00
    OverrideOptions_extra_extra_options0.000.00
    Blueprint flatten
    noise.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    noise.silo.csv-element_data.csv0 modifications totalling 0 lines
    multi_rect3d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    multi_rect3d.silo.csv-element_data.csv0 modifications totalling 0 lines
    structured_multi_rect3d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    structured_multi_rect3d.silo.csv-element_data.csv0 modifications totalling 0 lines
    unstructured_multi_rect3d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    unstructured_multi_rect3d.silo.csv-element_data.csv0 modifications totalling 0 lines
    multi_rect2d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    multi_rect2d.silo.csv-element_data.csv0 modifications totalling 0 lines
    structured_multi_rect2d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    structured_multi_rect2d.silo.csv-element_data.csv0 modifications totalling 0 lines
    ucd2d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    ucd2d.silo.csv-element_data.csv0 modifications totalling 0 lines
    noise.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    noise.silo.csv-element_data.csv0 modifications totalling 0 lines
    multi_rect3d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    multi_rect3d.silo.csv-element_data.csv0 modifications totalling 0 lines
    structured_multi_rect3d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    structured_multi_rect3d.silo.csv-element_data.csv0 modifications totalling 0 lines
    unstructured_multi_rect3d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    unstructured_multi_rect3d.silo.csv-element_data.csv0 modifications totalling 0 lines
    multi_rect2d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    multi_rect2d.silo.csv-element_data.csv0 modifications totalling 0 lines
    structured_multi_rect2d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    structured_multi_rect2d.silo.csv-element_data.csv0 modifications totalling 0 lines
    ucd2d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    ucd2d.silo.csv-element_data.csv0 modifications totalling 0 lines
    Mixed_topo_simple_2d_export_field_vals
     0 .eq. 0.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     1 .eq. 1.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     2 .eq. 2.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     3 .eq. 3.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     4 .eq. 4.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     5 .eq. 5.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     6 .eq. 6.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     7 .eq. 7.0 (prec=5) : True
    Mixed_topo_simple_2d_export
     "" .eq. "" : True
    Mixed_topo_simple_2d_export_field_vals
     0 .eq. 0.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     1 .eq. 1.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     2 .eq. 2.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     3 .eq. 3.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     4 .eq. 4.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     5 .eq. 5.0 (prec=5) : True
    Mixed_topo_simple_3d_export
     "" .eq. "" : True
    Mixed_topo_braid_2d_export
     "" .eq. "" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_blueprint_export_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_blueprint_export_py.html new file mode 100644 index 000000000..272044e34 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_blueprint_export_py.html @@ -0,0 +1,818 @@ +databases/blueprint_export.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial parallel
    +#  CLASSES: nightly
    +#
    +#  Test Case:  blueprint_export.py
    +#
    +#  Tests:      Tests blueprint export features "partition" and "flatten".
    +#
    +#  Programmer: Christopher Laganella
    +#  Date:       Tue Dec 14 12:35:16 EST 2021
    +#
    +#  Modifications:
    +#
    +#    Chris Laganella, Mon Feb 14 14:39:48 EST 2022
    +#    I added a test case for user provided JSON/YAML options
    +# 
    +#    Justin Privitera, Sat Jun 29 14:22:21 PDT 2024
    +#    Added tests to round-trip mixed element topologies.
    +# 
    +#    Justin Privitera, Tue Jul  9 10:47:29 PDT 2024
    +#    Added tests for setting the directory, fixed the cycle numbers, added tests
    +#    for using the new relay.io.blueprint.save_mesh() options, 
    +# ----------------------------------------------------------------------------
    +import time
    +import sys
    +import os
    +import conduit
    +
    +if not os.path.isdir(out_path("current","databases")):
    +    os.mkdir(out_path("current","databases"))
    +out_base = out_path("current","databases","blueprint_export")
    +if not os.path.isdir(out_base):
    +    os.mkdir(out_base)
    +
    +outdir_set = pjoin(TestEnv.params["run_dir"], "testdir")
    +if not os.path.isdir(outdir_set):
    +    os.mkdir(outdir_set)
    +
    +export_test_save_location = pjoin(outdir_set, "export_test_save_location")
    +if not os.path.isdir(export_test_save_location):
    +    os.mkdir(export_test_save_location)
    +
    +# Uncomment these functions to run the script through the regular CLI
    +# def Exit():
    +#     print("Exiting test...")
    +#     return
    +
    +# def RequiredDatabasePlugin(name):
    +#     print("This test requires database plugin " + name)
    +#     return
    +
    +# def TestSection(name):
    +#     print("---- " + name + " ----")
    +#     return
    +
    +# def Test(name):
    +#     s = SaveWindowAttributes()
    +#     s.fileName = name
    +#     SetSaveWindowAttributes(s)
    +#     SaveWindow()
    +#     return
    +
    +# def TestText(name):
    +#     print("Testing text file {}".format(name))
    +
    +# def silo_data_path(name):
    +#     retval = os.path.join("/mnt/data/il/VisIt/VisItClass/data", name)
    +#     # print(retval)
    +#     return retval
    +
    +def load_text(file_name):
    +    # print("Loading text from {}".format(os.path.abspath(file_name)), file=sys.stderr)
    +    with open(file_name, 'r') as f:
    +        return f.read()
    +
    +def set_view(case_name, view=None):
    +    if "2d" in case_name:
    +        ResetView()
    +    else:
    +        SetView3D(view)
    +
    +
    +def test_name(case, i):
    +    return case + "_" + str(i) + "_"
    +
    +# Export DB as bp data set
    +def export_mesh_bp(case_name, varname, varname2 = "", dirname="."):
    +    export_name = case_name
    +    e = ExportDBAttributes()
    +    e.db_type = "Blueprint"
    +    e.filename = export_name
    +    if len(varname2) > 0:
    +        e.variables = (varname, varname2)
    +    else:
    +        e.variables = (varname,)
    +    if dirname != ".":
    +        e.dirname = dirname
    +    ExportDatabase(e)
    +    time.sleep(1)
    +    return export_name
    +
    +# Export DB as csv, return the folder name
    +def create_csv_output(case_name, dirname="."):
    +    export_name = case_name
    +    e = ExportDBAttributes()
    +    e.db_type = "Blueprint"
    +    e.filename = export_name
    +    e.variables = ('mesh_coords', 'zc_mesh_coords')
    +    if dirname != ".":
    +        e.dirname = dirname
    +    opts = GetExportOptions("Blueprint")
    +    opts["Operation"] = "Flatten_CSV"
    +    ExportDatabase(e, opts)
    +    time.sleep(1)
    +    return export_name + ".csv"
    +
    +def test_csv_output(case_name, dirname="."):
    +    vert_file = os.path.join(dirname, case_name, "vertex_data.csv")
    +    elem_file = os.path.join(dirname, case_name, "element_data.csv")
    +    vert_baseline = case_name + "-" + "vertex_data.csv"
    +    elem_baseline = case_name + "-" + "element_data.csv"
    +    TestText(vert_baseline, load_text(vert_file))
    +    TestText(elem_baseline, load_text(elem_file))
    +
    +def define_mesh_expressions(mesh_name):
    +    DefineScalarExpression("nid", "nodeid({})".format(mesh_name))
    +    DefineScalarExpression("zid", "zoneid({})".format(mesh_name))
    +    DefineScalarExpression("mesh_coords", "coords({})".format(mesh_name))
    +    DefineScalarExpression("zc_mesh_coords", "recenter(mesh_coords, \"zonal\")")
    +    return ("nid", "zid", "mesh_coords", "zc_mesh_coords")
    +
    +# 's' for structured 'r' for rectilinear
    +def flatten_multi_2d_case(case, dirname="."):
    +    case_name = "multi_rect2d.silo"
    +    mesh_name = "mesh1"
    +    export_name = case_name
    +
    +    # Use multi_rect3d to create all cases
    +    OpenDatabase(silo_data_path(case_name))
    +    AddPlot("Mesh", mesh_name)
    +
    +    # Define some mesh based variables
    +    vars = define_mesh_expressions(mesh_name)
    +
    +    AddOperator("Resample")
    +    ra = ResampleAttributes()
    +    ra.samplesX = 5
    +    ra.samplesY = 4
    +    ra.is3D = 0
    +    ra.distributedResample = 1
    +    SetOperatorOptions(ra)
    +
    +    AddOperator("DeferExpression")
    +    dea = DeferExpressionAttributes()
    +    dea.exprs = vars
    +    SetOperatorOptions(dea)
    +
    +    if case == 's':
    +        AddOperator("Transform")
    +        ta = TransformAttributes()
    +        ta.doRotate = 1
    +        # ta.rotateType = "Deg"
    +        ta.rotateAmount = 0.00001
    +        SetOperatorOptions(ta)
    +        export_name = "structured_" + case_name
    +
    +    DrawPlots()
    +
    +    # Create csv file
    +    export_dir = create_csv_output(export_name, dirname)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(case_name))
    +
    +    # Test text
    +    test_csv_output(export_dir, dirname)
    +
    +def flatten_multi_2d_unstructured_case(dirname="."):
    +    case_name = "ucd2d.silo"
    +    mesh_name = "ucdmesh2d"
    +    export_name = case_name
    +
    +    # Use multi_curv2d and remove cells
    +    OpenDatabase(silo_data_path(case_name))
    +    AddPlot("Mesh", mesh_name)
    +
    +    # Define some mesh based variables
    +    vars = define_mesh_expressions(mesh_name)
    +
    +    AddOperator("Threshold")
    +    ta = ThresholdAttributes()
    +    ta.listedVarNames = ("zid",)
    +    ta.lowerBounds = (8,)
    +    ta.upperBounds = (11,)
    +    SetOperatorOptions(ta)
    +    export_name = case_name
    +
    +    AddOperator("DeferExpression")
    +    dea = DeferExpressionAttributes()
    +    dea.exprs = ("mesh_coords", "zc_mesh_coords")
    +    SetOperatorOptions(dea)
    +
    +    DrawPlots()
    +
    +    # Create csv file
    +    export_dir = create_csv_output(export_name, dirname)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(case_name))
    +
    +    # Test text
    +    test_csv_output(export_dir, dirname)
    +
    +# case = 'u' for unstructured, 'r' for rectilinear, 's' for structured
    +def flatten_multi_3d_case(case, dirname="."):
    +    case_name = "multi_rect3d.silo"
    +    mesh_name = "mesh1"
    +    export_name = case_name
    +    # Use multi_rect3d to create all cases
    +    OpenDatabase(silo_data_path(case_name))
    +    AddPlot("Mesh", mesh_name)
    +
    +    # Define some mesh based variables
    +    vars = define_mesh_expressions(mesh_name)
    +
    +    AddOperator("Resample")
    +    ra = ResampleAttributes()
    +    ra.samplesX = 5
    +    ra.samplesY = 4
    +    ra.samplesZ = 3
    +    ra.distributedResample = 1
    +    SetOperatorOptions(ra)
    +
    +    AddOperator("DeferExpression")
    +    dea = DeferExpressionAttributes()
    +    dea.exprs = vars
    +    SetOperatorOptions(dea)
    +
    +    if case == 'u':
    +        AddOperator("Threshold")
    +        ta = ThresholdAttributes()
    +        ta.listedVarNames = ("zid",)
    +        ta.lowerBounds = (1,)
    +        SetOperatorOptions(ta)
    +        export_name = "unstructured_" + case_name
    +    elif case == 's':
    +        AddOperator("Transform")
    +        ta = TransformAttributes()
    +        ta.doRotate = 1
    +        # ta.rotateType = "Deg"
    +        ta.rotateAmount = 0.00001
    +        SetOperatorOptions(ta)
    +        export_name = "structured_" + case_name
    +    # Do nothing for rectilinear
    +
    +    DrawPlots()
    +
    +    # Create csv file
    +    export_dir = create_csv_output(export_name, dirname)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(case_name))
    +
    +    # Test text
    +    test_csv_output(export_dir, dirname)
    +
    +def flatten_noise(dirname="."):
    +    case_name = "noise.silo"
    +    mesh_name = "Mesh"
    +    samples = (5, 4, 3)
    +
    +    OpenDatabase(silo_data_path(case_name))
    +    AddPlot("Mesh", mesh_name)
    +
    +    # Expose coordinates as variables
    +    vars = define_mesh_expressions(mesh_name)
    +
    +    # Resample
    +    AddOperator("Resample")
    +    ra = ResampleAttributes()
    +    ra.samplesX = samples[0]
    +    ra.samplesY = samples[1]
    +    ra.samplesZ = samples[2]
    +    SetOperatorOptions(ra)
    +
    +    AddOperator("DeferExpression")
    +    dea = DeferExpressionAttributes()
    +    dea.exprs = vars
    +    SetOperatorOptions(dea)
    +
    +    DrawPlots()
    +
    +    # Create the CSV output
    +    export_dir = create_csv_output(case_name, dirname)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(case_name))
    +
    +    # Test text
    +    test_csv_output(export_dir, dirname)
    +
    +def partition_test_case(case_name, targets, view=None, dirname="."):
    +    # Write the original dataset
    +    OpenDatabase(silo_data_path(case_name))
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    set_view(case_name, view)
    +    Test(case_name + ("_output_dir" if dirname != "." else ""))
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(case_name))
    +
    +    for target in targets:
    +        export_name = case_name + "_partition" + str(target)
    +        export_filename = export_name + ".cycle_000048.root"
    +
    +        # Plot the original dataset
    +        OpenDatabase(silo_data_path(case_name))
    +        AddPlot("Pseudocolor", "u")
    +        DrawPlots()
    +        set_view(case_name, view)
    +
    +        # Set the export database attributes.
    +        e = ExportDBAttributes()
    +        e.db_type = "Blueprint"
    +        e.filename = export_name
    +        e.variables = ("u")
    +        if dirname != ".":
    +            e.dirname = dirname
    +        opts = GetExportOptions("Blueprint")
    +        opts["Operation"] = "Partition"
    +        opts["Partition target number of domains"] = target
    +        print("About to partition " + case_name + " into "
    +            + str(target) + " blocks.")
    +        ExportDatabase(e, opts)
    +        time.sleep(1)
    +        DeleteAllPlots()
    +        CloseDatabase(silo_data_path(case_name))
    +
    +        OpenDatabase(export_filename)
    +        AddPlot("Pseudocolor", "mesh_topo/u")
    +        DrawPlots()
    +        set_view(case_name, view)
    +        Test(test_name(export_name, 0) + ("output_dir" if dirname != "." else ""))
    +        DeleteAllPlots()
    +
    +        AddPlot("Subset", "domains")
    +        DrawPlots()
    +        set_view(case_name, view)
    +        Test(test_name(export_name, 1) + ("output_dir" if dirname != "." else ""))
    +        DeleteAllPlots()
    +        CloseDatabase(export_filename)
    +
    +def partition_test_extra_options():
    +    dbname = "multi_rect2d.silo"
    +    TestSection("Extra options")
    +    OpenDatabase(silo_data_path(dbname))
    +    AddPlot("Subset", "domains(mesh1)")
    +    DrawPlots()
    +    Test("DefaultMesh")
    +
    +    # Test JSON
    +    e0 = ExportDBAttributes()
    +    e0.db_type = "Blueprint"
    +    e0.filename = "multi_rect2d_json_target_1"
    +    e0.variables = ("u")
    +    opts0 = GetExportOptions("Blueprint")
    +    opts0["Operation"] = "Partition"
    +    opts0["Flatten / Partition extra options"] = '{"target": 1}'
    +    ExportDatabase(e0, opts0)
    +    time.sleep(1)
    +
    +    # Test YAML
    +    e1 = ExportDBAttributes()
    +    e1.db_type = "Blueprint"
    +    e1.filename = "multi_rect2d_yaml_target_1"
    +    e1.variables = ("u")
    +    opts1 = GetExportOptions("Blueprint")
    +    opts1["Operation"] = "Partition"
    +    opts1["Flatten / Partition extra options"]  = 'target: 1'
    +    ExportDatabase(e1, opts1)
    +    time.sleep(1)
    +
    +    # Test that the JSON/YAML overrides the options field
    +    e2 = ExportDBAttributes()
    +    e2.db_type = "Blueprint"
    +    e2.filename = "multi_rect2d_override_target_1"
    +    e2.variables = ("u")
    +    opts2 = GetExportOptions("Blueprint")
    +    opts2["Operation"] = "Partition"
    +    opts2["Partition target number of domains"] = 13
    +    opts2["Flatten / Partition extra options"]  = 'target: 1'
    +    ExportDatabase(e2, opts2)
    +    time.sleep(1)
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(dbname))
    +
    +    OpenDatabase("multi_rect2d_json_target_1.cycle_000048.root")
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test("JSONOptions")
    +    DeleteAllPlots()
    +    CloseDatabase("multi_rect2d_json_target_1.cycle_000048.root")
    +
    +    OpenDatabase("multi_rect2d_yaml_target_1.cycle_000048.root")
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test("YAMLOptions")
    +    DeleteAllPlots()
    +    CloseDatabase("multi_rect2d_yaml_target_1.cycle_000048.root")
    +
    +    OpenDatabase("multi_rect2d_override_target_1.cycle_000048.root")
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test("OverrideOptions")
    +    DeleteAllPlots()
    +    CloseDatabase("multi_rect2d_override_target_1.cycle_000048.root")
    +
    +def partition_test_extra_extra_options():
    +    dbname = "multi_rect2d.silo"
    +    TestSection("Extra extra options")
    +    OpenDatabase(silo_data_path(dbname))
    +    AddPlot("Subset", "domains(mesh1)")
    +    DrawPlots()
    +    Test("DefaultMesh_extra_extra_options")
    +
    +    # Test JSON
    +    e0 = ExportDBAttributes()
    +    e0.db_type = "Blueprint"
    +    e0.filename = "multi_rect2d_json_target_1"
    +    e0.variables = ("u")
    +    opts0 = GetExportOptions("Blueprint")
    +    opts0["Operation"] = "Partition"
    +    opts0["Flatten / Partition extra options"] = '{"target": 1}'
    +    opts0["Blueprint Relay I/O extra options"] = """{
    +    \"file_style\": \"multi_file\",
    +    \"suffix\": \"none\",
    +    \"mesh_name\": \"mesh1\",
    +    \"number_of_files\": 2,
    +    \"truncate\": \"false\"
    +}"""
    +    # opts0["Output type"] = "JSON"
    +    ExportDatabase(e0, opts0)
    +    time.sleep(1)
    +
    +    # Test YAML
    +    e1 = ExportDBAttributes()
    +    e1.db_type = "Blueprint"
    +    e1.filename = "multi_rect2d_yaml_target_1"
    +    e1.variables = ("u")
    +    opts1 = GetExportOptions("Blueprint")
    +    opts1["Operation"] = "Partition"
    +    opts1["Flatten / Partition extra options"]  = 'target: 1'
    +    opts1["Blueprint Relay I/O extra options"] = """file_style: \"multi_file\"
    +suffix: \"none\"
    +mesh_name: \"mesh1\"
    +number_of_files: 2
    +truncate: \"false\""""
    +    # opts1["Output type"] = "YAML"
    +    ExportDatabase(e1, opts1)
    +    time.sleep(1)
    +
    +    # Test that the JSON/YAML overrides the options field
    +    e2 = ExportDBAttributes()
    +    e2.db_type = "Blueprint"
    +    e2.filename = "multi_rect2d_override_target_1"
    +    e2.variables = ("u")
    +    opts2 = GetExportOptions("Blueprint")
    +    opts2["Operation"] = "Partition"
    +    opts2["Partition target number of domains"] = 13
    +    opts2["Flatten / Partition extra options"]  = 'target: 1'
    +    ExportDatabase(e2, opts2)
    +    time.sleep(1)
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(dbname))
    +
    +    OpenDatabase("multi_rect2d_json_target_1.root")
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test("JSONOptions_extra_extra_options")
    +    DeleteAllPlots()
    +    CloseDatabase("multi_rect2d_json_target_1.root")
    +
    +    OpenDatabase("multi_rect2d_yaml_target_1.root")
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test("YAMLOptions_extra_extra_options")
    +    DeleteAllPlots()
    +    CloseDatabase("multi_rect2d_yaml_target_1.root")
    +
    +    OpenDatabase("multi_rect2d_override_target_1.root")
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test("OverrideOptions_extra_extra_options")
    +    DeleteAllPlots()
    +    CloseDatabase("multi_rect2d_override_target_1.root")
    +
    +def basic_test_case(case_name, varname = "d", dirname = "."):
    +    OpenDatabase(silo_data_path(case_name))
    +    AddPlot("Pseudocolor",varname)
    +    DrawPlots()
    +    Test("basic_" + case_name + "_input" + ("_output_dir" if dirname != "." else ""))
    +    # export default
    +    export_rfile_default = export_mesh_bp(case_name + "_default", varname, dirname=dirname) + ".cycle_000048.root"
    +    # export post isosurface
    +    AddOperator("Isosurface")
    +    DrawPlots()
    +    Test("basic_" + case_name + "_isosurface" + ("_output_dir" if dirname != "." else ""))
    +    export_rfile_isos = export_mesh_bp(case_name + "_isosurface", varname, dirname=dirname) + ".cycle_000048.root"
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(case_name))
    +
    +    OpenDatabase(export_rfile_default)
    +    # bp var names are qualified by topo
    +    AddPlot("Pseudocolor","mesh_topo/" + varname)
    +    DrawPlots()
    +    Test("basic_" + case_name + "_default_exported" + ("_output_dir" if dirname != "." else ""))
    +    DeleteAllPlots()
    +    CloseDatabase(export_rfile_default)
    +
    +    OpenDatabase(export_rfile_isos)
    +    # bp var names are qualified by topo
    +    AddPlot("Pseudocolor", "mesh_topo/" + varname)
    +    DrawPlots()
    +    Test("basic_" + case_name + "_isosurface_exported" + ("_output_dir" if dirname != "." else ""))
    +    DeleteAllPlots()
    +    CloseDatabase(export_rfile_isos)
    +
    +def basic_test_case_extra_options(case_name, varname = "d"):
    +    OpenDatabase(silo_data_path(case_name))
    +    AddPlot("Pseudocolor",varname)
    +    DrawPlots()
    +    Test("basic_" + case_name + "_extra_options_input")
    +
    +    # Test JSON
    +    e0 = ExportDBAttributes()
    +    e0.db_type = "Blueprint"
    +    e0.filename = case_name + "_json"
    +    e0.variables = (varname,)
    +    opts0 = GetExportOptions("Blueprint")
    +    opts0["Blueprint Relay I/O extra options"] = """{
    +    \"file_style\": \"multi_file\",
    +    \"suffix\": \"none\",
    +    \"mesh_name\": \"mesh1\",
    +    \"number_of_files\": 2,
    +    \"truncate\": \"false\"
    +}"""
    +    # opts0["Output type"] = "JSON"
    +    ExportDatabase(e0, opts0)
    +    time.sleep(1)
    +
    +    # Test YAML
    +    e1 = ExportDBAttributes()
    +    e1.db_type = "Blueprint"
    +    e1.filename = case_name + "_yaml"
    +    e1.variables = (varname,)
    +    opts1 = GetExportOptions("Blueprint")
    +    opts1["Blueprint Relay I/O extra options"] = """file_style: \"multi_file\"
    +suffix: \"none\"
    +mesh_name: \"mesh1\"
    +number_of_files: 2
    +truncate: \"false\""""
    +    # opts1["Output type"] = "YAML"
    +    ExportDatabase(e1, opts1)
    +    time.sleep(1)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(case_name))
    +
    +    OpenDatabase(case_name + "_json.root")
    +    AddPlot("Pseudocolor","mesh1_topo/" + varname)
    +    DrawPlots()
    +    Test("BasicJSONOptions")
    +    DeleteAllPlots()
    +    CloseDatabase(case_name + "_json.root")
    +
    +    OpenDatabase(case_name + "_yaml.root")
    +    AddPlot("Pseudocolor","mesh1_topo/" + varname)
    +    DrawPlots()
    +    Test("BasicYAMLOptions")
    +    DeleteAllPlots()
    +    CloseDatabase(case_name + "_yaml.root")
    +
    +def test_basic():
    +    basic_test_case("multi_rect3d.silo")
    +    basic_test_case("multi_curv3d.silo")
    +    basic_test_case("multi_curv2d.silo")
    +    basic_test_case("multi_ucd3d.silo")
    +    basic_test_case("multi_rect2d.silo")
    +
    +    basic_test_case("multi_rect3d.silo", dirname=export_test_save_location)
    +    basic_test_case("multi_curv3d.silo", dirname=export_test_save_location)
    +    basic_test_case("multi_curv2d.silo", dirname=export_test_save_location)
    +    basic_test_case("multi_ucd3d.silo", dirname=export_test_save_location)
    +    basic_test_case("multi_rect2d.silo", dirname=export_test_save_location)
    +
    +    basic_test_case_extra_options("multi_rect3d.silo")
    +
    +
    +def test_flatten():
    +    TestSection("Blueprint flatten")
    +
    +    flatten_noise()
    +    flatten_multi_3d_case('r')
    +    flatten_multi_3d_case('s')
    +    flatten_multi_3d_case('u')
    +
    +    flatten_multi_2d_case('r')
    +    flatten_multi_2d_case('s')
    +    flatten_multi_2d_unstructured_case()
    +
    +    # test setting the output directory
    +    flatten_noise(dirname=export_test_save_location)
    +    flatten_multi_3d_case('r', dirname=export_test_save_location)
    +    flatten_multi_3d_case('s', dirname=export_test_save_location)
    +    flatten_multi_3d_case('u', dirname=export_test_save_location)
    +
    +    flatten_multi_2d_case('r', dirname=export_test_save_location)
    +    flatten_multi_2d_case('s', dirname=export_test_save_location)
    +    flatten_multi_2d_unstructured_case(dirname=export_test_save_location)
    +
    +def test_partition():
    +    TestSection("Blueprint partition")
    +
    +    # Need a couple different views
    +    rect3d_view = GetView3D()
    +    rect3d_view.viewNormal = (-0.467474, 0.301847, 0.830877)
    +    rect3d_view.focus = (0.5, 0.5, 0.5)
    +    rect3d_view.viewUp = (0.140705, 0.953323, -0.267166)
    +    rect3d_view.viewAngle = 30
    +    rect3d_view.parallelScale = 0.866025
    +    rect3d_view.nearPlane = -1.73205
    +    rect3d_view.farPlane = 1.73205
    +    rect3d_view.imagePan = (-0.0154649, 0.027457)
    +    rect3d_view.imageZoom = 1.14276
    +    rect3d_view.perspective = 1
    +    rect3d_view.eyeAngle = 2
    +    rect3d_view.centerOfRotationSet = 0
    +    rect3d_view.centerOfRotation = (0.5, 0.5, 0.5)
    +    rect3d_view.axis3DScaleFlag = 0
    +    rect3d_view.axis3DScales = (1, 1, 1)
    +    rect3d_view.shear = (0, 0, 1)
    +    rect3d_view.windowValid = 1
    +
    +    curv3d_view = GetView3D()
    +    curv3d_view.viewNormal = (-0.254971, 0.246468, 0.93501)
    +    curv3d_view.focus = (0, 2.5, 15)
    +    curv3d_view.viewUp = (0.0453522, 0.968953, -0.243049)
    +    curv3d_view.viewAngle = 30
    +    curv3d_view.parallelScale = 16.0078
    +    curv3d_view.nearPlane = -32.0156
    +    curv3d_view.farPlane = 32.0156
    +    curv3d_view.imagePan = (0, 0)
    +    curv3d_view.imageZoom = 1.21
    +    curv3d_view.perspective = 1
    +    curv3d_view.eyeAngle = 2
    +    curv3d_view.centerOfRotationSet = 0
    +    curv3d_view.centerOfRotation = (0, 2.5, 15)
    +    curv3d_view.axis3DScaleFlag = 0
    +    curv3d_view.axis3DScales = (1, 1, 1)
    +    curv3d_view.shear = (0, 0, 1)
    +    curv3d_view.windowValid = 1
    +
    +    # Run 3D tests
    +    targets_3d = (1, 4, 19, 45)
    +    partition_test_case("multi_rect3d.silo",
    +        targets_3d, rect3d_view)
    +    partition_test_case("multi_curv3d.silo",
    +        targets_3d, curv3d_view)
    +    partition_test_case("multi_ucd3d.silo",
    +        targets_3d, curv3d_view)
    +
    +    # Run 2D tests
    +    targets_2d = (1, 4, 7, 13, 19)
    +    partition_test_case("multi_curv2d.silo",
    +        targets_2d)
    +    partition_test_case("multi_rect2d.silo",
    +        targets_2d)
    +
    +    # different directory tests:
    +    # Run 3D tests
    +    targets_3d = (1, 4, 19, 45)
    +    partition_test_case("multi_rect3d.silo",
    +        targets_3d, rect3d_view, dirname=export_test_save_location)
    +    partition_test_case("multi_curv3d.silo",
    +        targets_3d, curv3d_view, dirname=export_test_save_location)
    +    partition_test_case("multi_ucd3d.silo",
    +        targets_3d, curv3d_view, dirname=export_test_save_location)
    +
    +    # Run 2D tests
    +    targets_2d = (1, 4, 7, 13, 19)
    +    partition_test_case("multi_curv2d.silo",
    +        targets_2d, dirname=export_test_save_location)
    +    partition_test_case("multi_rect2d.silo",
    +        targets_2d, dirname=export_test_save_location)
    +
    +    # Test extra options
    +    partition_test_extra_options()
    +    partition_test_extra_extra_options()
    +
    +def roundtrip_simple_mixed_topo(mixed_topo, export_name, test_name):
    +    OpenDatabase(mixed_topo)
    +    AddPlot("Mesh", "mesh_topo")
    +    AddPlot("Pseudocolor", "mesh_topo/ele_id")
    +    DrawPlots()
    +    ResetView()
    +
    +    outfilename = export_mesh_bp(export_name, "mesh_topo/ele_id") + ".cycle_000000.root"
    +
    +    save_mesh = conduit.Node()
    +    conduit.relay.io.blueprint.load_mesh(save_mesh, mixed_topo)
    +
    +    load_mesh = conduit.Node()
    +    conduit.relay.io.blueprint.load_mesh(load_mesh, outfilename)
    +
    +    # 
    +    # make changes so the diff will pass
    +    # 
    +
    +    # grab the cycle and time which were added in
    +    save_mesh[0]["state"]["cycle"] = load_mesh[0]["state"]["cycle"]
    +    save_mesh[0]["state"]["time"] = load_mesh[0]["state"]["time"]
    +
    +    # remove the pts topo
    +    save_mesh[0]["topologies"].remove_child("pts")
    +
    +    # remove the pts_id field
    +    save_mesh[0]["fields"].remove_child("pts_id")
    +
    +    # check ele_id field
    +    save_mesh_element_ids = save_mesh[0]["fields"]["ele_id"]["values"]
    +    load_mesh_element_ids = load_mesh[0]["fields"]["ele_id"]["values"]
    +    for i in range(0, len(save_mesh_element_ids)):
    +        TestValueEQ("Mixed_topo_simple_2d_export_field_vals", save_mesh_element_ids[i], load_mesh_element_ids[i])
    +    save_mesh[0]["fields"]["ele_id"].remove_child("values")
    +    load_mesh[0]["fields"]["ele_id"].remove_child("values")
    +
    +    info = conduit.Node()
    +    diffval = load_mesh.diff(save_mesh, info)
    +    diff_str = info.to_yaml() if diffval else ""
    +    TestValueEQ(test_name, diff_str, "")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(mixed_topo)
    +
    +def roundtrip_braid_mixed(mixed_topo, export_name, test_name):
    +    OpenDatabase(mixed_topo)
    +    AddPlot("Mesh", "mixed_2d_mesh")
    +    AddPlot("Pseudocolor", "mixed_2d_mesh/braid")
    +    DrawPlots()
    +    ResetView()
    +
    +    outfilename = export_mesh_bp(export_name, "mixed_2d_mesh/braid", varname2="mixed_2d_mesh/vel") + ".cycle_000100.root"
    +
    +    opts = conduit.Node()
    +    opts["mesh_name"] = "mixed_2d"
    +    save_mesh = conduit.Node()
    +    conduit.relay.io.blueprint.load_mesh(save_mesh, mixed_topo, opts)
    +
    +    load_mesh = conduit.Node()
    +    conduit.relay.io.blueprint.load_mesh(load_mesh, outfilename)
    +
    +    # 
    +    # make changes so the diff will pass
    +    # 
    +
    +    # grab the domain_id which was added in
    +    save_mesh[0]["state"]["domain_id"] = load_mesh[0]["state"]["domain_id"]
    +    save_mesh[0]["state"].remove_child("cycle")
    +    save_mesh[0]["state"]["cycle"] = load_mesh[0]["state"]["cycle"]
    +
    +    # rename topo
    +    save_mesh[0]["topologies"].rename_child("mesh", "topo")
    +
    +    # rename fields
    +    save_mesh[0]["fields"].rename_child("braid", "mixed_2d_mesh_braid")
    +    save_mesh[0]["fields"].rename_child("vel", "mixed_2d_mesh_vel")
    +
    +    save_mesh[0]["fields"]["mixed_2d_mesh_braid"].remove_child("topology")
    +    save_mesh[0]["fields"]["mixed_2d_mesh_braid"]["topology"] = "topo"
    +    save_mesh[0]["fields"]["mixed_2d_mesh_vel"].remove_child("topology")
    +    save_mesh[0]["fields"]["mixed_2d_mesh_vel"]["topology"] = "topo"
    +
    +    save_mesh[0]["fields"]["mixed_2d_mesh_vel"]["values"].rename_child("u", "c0")
    +    save_mesh[0]["fields"]["mixed_2d_mesh_vel"]["values"].rename_child("v", "c1")
    +    save_mesh[0]["fields"]["mixed_2d_mesh_vel"]["values"]["c2"] = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
    +
    +    info = conduit.Node()
    +    diffval = load_mesh.diff(save_mesh, info)
    +    diff_str = info.to_yaml() if diffval else ""
    +    TestValueEQ(test_name, diff_str, "")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(mixed_topo)
    +
    +
    +RequiredDatabasePlugin("Blueprint")
    +test_basic()
    +# TODO add tests for json and yaml output when https://github.com/LLNL/conduit/issues/1291 is fixed
    +test_partition()
    +test_flatten()
    +
    +bp_mixed_topos_dir = "blueprint_v0.9.2_mixed_topo_data"
    +mixed_topo_2d = data_path(pjoin(bp_mixed_topos_dir, "mixed_mesh_simple_2d_hdf5.root"))
    +# we can't do the polygonal one because we are using generate_sides to get rid of the polygons,
    +# so round trip will fail.
    +# mixed_topo_2d_polygon = data_path(pjoin(bp_mixed_topos_dir, "mixed_mesh_polygonal_2d_hdf5.root"))
    +mixed_topo_3d = data_path(pjoin(bp_mixed_topos_dir, "mixed_mesh_simple_3d_hdf5.root"))
    +mixed_braid_2d = data_path(pjoin(bp_mixed_topos_dir, "braid_2d_examples_hdf5.root"))
    +# we can't do the polyhedral one because we are using generate_sides to get rid of the polyhedra,
    +# so round trip will fail.
    +# mixed_braid_3d = data_path(pjoin(bp_mixed_topos_dir, "braid_3d_examples_hdf5.root"))
    +
    +roundtrip_simple_mixed_topo(mixed_topo_2d, "mixed_topo_2d", "Mixed_topo_simple_2d_export")
    +roundtrip_simple_mixed_topo(mixed_topo_3d, "mixed_topo_3d", "Mixed_topo_simple_3d_export")
    +roundtrip_braid_mixed(mixed_braid_2d, "mixed_braid_2d", "Mixed_topo_braid_2d_export")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_blueprint_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_blueprint_py.html new file mode 100644 index 000000000..b0c367fbd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_blueprint_py.html @@ -0,0 +1,985 @@ +databases/blueprint.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  blueprint.py 
    +#
    +#  Tests:      blueprint hdf5 files 
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Thu Jun 16 10:56:37 PDT 2016
    +#
    +#  Modifications:
    +#
    +#    Alister Maguire, Fri Jul 17 16:29:50 PDT 2020
    +#    Added a test to ensure that variables containing parentheses
    +#    are able to be visualized.
    +#
    +#    Justin Privitera Fri 04 Mar 2022 05:57:49 PM PST
    +#    Added tests to test new implicit points topologies.
    +# 
    +#    Justin Privitera, Mon May 23 17:53:56 PDT 2022
    +#    Added polytopal tests.
    +# 
    +#    Justin Privitera, Mon May 23 17:53:56 PDT 2022
    +#    Added mfem lor tests.
    +#
    +#    Cyrus Harrison, Thu Dec 22 13:53:17 PST 2022
    +#    Added bp part map and initial strided structured tests/ 
    +#
    +#    Cyrus Harrison, Mon, Mar 20, 2023  3:34:04 PM 
    +#    Added rz test examples
    +# 
    +#    Justin Privitera, Wed Mar 22 16:09:52 PDT 2023
    +#    Added 1d curve test examples.
    +# 
    +#    Justin Privitera, Fri Mar 24 17:47:26 PDT 2023
    +#    Fixed view issue for mfem lor vector field tests.
    +#    Fixed an issue where test names had two consecutive underscores.
    +# 
    +#    Justin Privitera, Tue Sep 19 11:36:45 PDT 2023
    +#    Added a test for material numbers not in the range [0, N)
    +# 
    +#    Justin Privitera, Wed Oct 25 17:29:07 PDT 2023
    +#    Added a test for a polygonal mesh with no offsets.
    +# 
    +#    Justin Privitera, Thu Jan 18 14:53:32 PST 2024
    +#    Added test for unstructured points.
    +# 
    +#    Justin Privitera, Tue Mar 12 13:29:30 PDT 2024
    +#    Now that blueprint presents material ids alongside material names, we 
    +#    must use the ids and names to get specific materials.
    +# 
    +#    Justin Privitera, Fri Mar 15 15:56:13 PDT 2024
    +#    Revert prior change.
    +# 
    +#    Justin Privitera, Fri May  3 09:55:25 PDT 2024
    +#    Added test for Blueprint Uniform Coordset + Unstructured Topo.
    +# 
    +#    Justin Privitera, Sat Jun 29 14:22:21 PDT 2024
    +#    Added tests for mixed element topologies.
    +#
    +#    Brad Whitlock, Thu Jul 18 18:29:49 PDT 2024
    +#    Added mixed_tet_quad_2d test. Moved more tests into functions so it's
    +#    easier to select which ones to run while debugging.
    +# 
    +#    Justin Privitera, Fri Sep 27 12:09:46 PDT 2024
    +#    Added tests for specsets.
    +# 
    +#    Justin Privitera, Wed Oct 30 14:18:31 PDT 2024
    +#    Added tests that ensure periodic meshes fall back to legacy LOR when
    +#    new LOR is requested.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("Blueprint")
    +
    +from os.path import join as pjoin
    +
    +bp_test_dir = "blueprint_v0.3.1_test_data"
    +bp_venn_test_dir = "blueprint_v0.7.0_venn_test_data"
    +bp_mfem_test_dir = "blueprint_v0.3.1_mfem_test_data"
    +bp_0_8_2_test_dir = "blueprint_v0.8.2_braid_examples_test_data"
    +bp_poly_test_dir = "blueprint_v0.8.2_polytess_test_data"
    +bp_devilray_mfem_test_dir = "blueprint_v0.8.3_devilray_mfem_test_data"
    +bp_part_map_test_dir = "blueprint_v0.8.4_part_map_examples"
    +bp_struct_strided_test_dir = "blueprint_v0.8.4_strided_structured_examples"
    +bp_rz_test_dir = "blueprint_v0.8.6_rz_examples"
    +bp_1d_curve_test_dir = "blueprint_v0.8.6_1d_curve_examples"
    +bp_venn_modded_matnos_dir = "blueprint_v0.8.7_venn_modded_matnos_example"
    +bp_poly_no_offsets_dir = "blueprint_v0.8.7_polytopal_mesh_no_offsets"
    +bp_unstructured_points_dir = "blueprint_v0.8.7_unstructured_points"
    +bp_unstructured_uniform_dir = "blueprint_v0.9.1_uniform_coords_unstructured_topo"
    +bp_mixed_topos_dir = "blueprint_v0.9.2_mixed_topo_data"
    +bp_specset_dir = "blueprint_v0.9.2_specset_example"
    +
    +braid_2d_hdf5_root = data_path(pjoin(bp_test_dir,"braid_2d_examples.blueprint_root_hdf5"))
    +braid_3d_hdf5_root = data_path(pjoin(bp_test_dir,"braid_3d_examples.blueprint_root_hdf5"))
    +
    +braid_2d_json_root = data_path(pjoin(bp_test_dir,"braid_2d_examples_json.root"))
    +braid_3d_json_root = data_path(pjoin(bp_test_dir,"braid_3d_examples_json.root"))
    +
    +braid_2d_sidre_root = data_path(pjoin(bp_test_dir,"braid_2d_sidre_examples.root"))
    +braid_3d_sidre_root = data_path(pjoin(bp_test_dir,"braid_3d_sidre_examples.root"))
    +
    +braid_2d_0_8_2_hdf5_root = data_path(pjoin(bp_0_8_2_test_dir,"braid_2d_examples_hdf5.root"))
    +braid_3d_0_8_2_hdf5_root = data_path(pjoin(bp_0_8_2_test_dir,"braid_3d_examples_hdf5.root"))
    +braid_2d_0_8_2_yaml_root = data_path(pjoin(bp_0_8_2_test_dir,"braid_2d_examples_yaml.root"))
    +braid_3d_0_8_2_yaml_root = data_path(pjoin(bp_0_8_2_test_dir,"braid_3d_examples_yaml.root"))
    +
    +poly_2d_hdf5_root = data_path(pjoin(bp_poly_test_dir,"polytess_example_hdf5.root"))
    +poly_2d_yaml_root = data_path(pjoin(bp_poly_test_dir,"polytess_example_yaml.root"))
    +poly_3d_hdf5_root = data_path(pjoin(bp_poly_test_dir,"polytess_3d_example_hdf5.root"))
    +poly_3d_yaml_root = data_path(pjoin(bp_poly_test_dir,"polytess_3d_example_yaml.root"))
    +
    +uniform_root = data_path(pjoin(bp_test_dir,"uniform.cycle_001038.root"))
    +
    +unstructured_points = data_path(pjoin(bp_unstructured_points_dir,"unstructured_points.cycle_000100.root"))
    +
    +uniform_unstructured = data_path(pjoin(bp_unstructured_uniform_dir,"partition.root"))
    +
    +mixed_topo_2d = data_path(pjoin(bp_mixed_topos_dir, "mixed_mesh_simple_2d_hdf5.root"))
    +mixed_topo_2d_polygon = data_path(pjoin(bp_mixed_topos_dir, "mixed_mesh_polygonal_2d_hdf5.root"))
    +mixed_topo_3d = data_path(pjoin(bp_mixed_topos_dir, "mixed_mesh_simple_3d_hdf5.root"))
    +mixed_braid_2d = data_path(pjoin(bp_mixed_topos_dir, "braid_2d_examples_hdf5.root"))
    +mixed_braid_3d = data_path(pjoin(bp_mixed_topos_dir, "braid_3d_examples_hdf5.root"))
    +mixed_tet_quad_2d = data_path(pjoin(bp_mixed_topos_dir, "mixed_mesh_tri_quad_2d_hdf5.root"))
    +mixed_offsets_2d = data_path(pjoin(bp_mixed_topos_dir, "mixed_topo_with_offsets.root"))
    +
    +misc_specsets = data_path(pjoin(bp_specset_dir, "misc_specsets.cycle_000100.root"))
    +
    +#
    +# venn test data (multi material)
    +#
    +
    +venn_full_root  =  data_path(pjoin(bp_venn_test_dir,
    +                             "venn_small_example_full_hdf5.root"))
    +venn_s_by_e_root  =  data_path(pjoin(bp_venn_test_dir,
    +                               "venn_small_example_sparse_by_element_hdf5.root"))
    +
    +venn_s_by_m_root  =  data_path(pjoin(bp_venn_test_dir,
    +                               "venn_small_example_sparse_by_material_hdf5.root"))
    +
    +venn_full_yaml_root  =  data_path(pjoin(bp_venn_test_dir,
    +                             "venn_small_example_full_yaml.root"))
    +venn_s_by_e_yaml_root  =  data_path(pjoin(bp_venn_test_dir,
    +                               "venn_small_example_sparse_by_element_yaml.root"))
    +
    +venn_s_by_m_yaml_root  =  data_path(pjoin(bp_venn_test_dir,
    +                               "venn_small_example_sparse_by_material_yaml.root"))
    +
    +venn_modded_matnos_root = data_path(pjoin(bp_venn_modded_matnos_dir,
    +                                "venn_w_modded_matnos.root"))
    +
    +polytopal_mesh_no_offsets_root = data_path(pjoin(bp_poly_no_offsets_dir,
    +                                "polytopal_mesh_no_offsets.root"))
    +
    +bp_part_map_root = data_path(pjoin(bp_part_map_test_dir,
    +                             "tout_custom_part_map_index_hdf5.root"))
    +
    +bp_part_map_single_file_root = data_path(pjoin(bp_part_map_test_dir,
    +                                         "tout_single_file_part_map_index_hdf5.root"))
    +
    +bp_spiral_part_map_examples = []
    +for i in range(-1,9):
    +    bp_spiral_part_map_examples.append(data_path(pjoin(bp_part_map_test_dir,
    +                                       "tout_relay_spiral_mesh_save_nfiles_{0}.cycle_000000.root".format(i))))
    +
    +bp_sparse_topos_root = data_path(pjoin(bp_part_map_test_dir,
    +                                        "tout_relay_bp_mesh_sparse_topos_hdf5.root"))
    +
    +
    +bp_struct_strided_2d_root = data_path(pjoin(bp_struct_strided_test_dir,
    +                                      "strided_structured_2d_hdf5.root"));
    +
    +
    +bp_struct_strided_3d_root = data_path(pjoin(bp_struct_strided_test_dir,
    +                                      "strided_structured_3d_hdf5.root"));
    +
    +bp_rz_examples = []
    +bp_rz_examples.append(data_path(pjoin(bp_rz_test_dir,"blueprint_rz_cyl_rectilinear.root")))
    +bp_rz_examples.append(data_path(pjoin(bp_rz_test_dir,"blueprint_rz_cyl_uniform.root")))
    +bp_rz_examples.append(data_path(pjoin(bp_rz_test_dir,"blueprint_rz_cyl_structured.root")))
    +bp_rz_examples.append(data_path(pjoin(bp_rz_test_dir,"blueprint_rz_cyl_unstructured.root")))
    +
    +bp_1d_curve_examples = [data_path(pjoin(bp_1d_curve_test_dir,"curves_1d.root"))]
    +
    +braid_2d_meshes = ["points", "uniform", "rect", "struct", "tris","quads"]
    +braid_3d_meshes = ["points", "uniform", "rect", "struct", "tets","hexs"]
    +
    +braid_2d_meshes_0_8_2 = ["points", "uniform", "rect", "struct", "tris","quads", "points_implicit"]
    +braid_3d_meshes_0_8_2 = ["points", "uniform", "rect", "struct", "tets","hexs", "points_implicit"]
    +
    +class mfem_ex9_example:
    +    def __init__(self, name, dim):
    +        self.name = name
    +        self.dim = dim
    +
    +mfem_ex9_examples = []
    +mfem_ex9_examples.append(mfem_ex9_example("periodic_cube", "3d"))
    +mfem_ex9_examples.append(mfem_ex9_example("star_q3", "3d"))
    +mfem_ex9_examples.append(mfem_ex9_example("periodic_hexagon", "2d"))
    +mfem_ex9_protocols = ["json","conduit_bin","conduit_json","hdf5"]
    +
    +class devilray_mfem_example:
    +    def __init__(self, name, number, pseudo_fields, vector_fields, dim):
    +        self.name = name
    +        self.number = number
    +        self.pseudo_fields = pseudo_fields
    +        self.vector_fields = vector_fields
    +        self.dim = dim
    +
    +devilray_mfem_examples = []
    +devilray_mfem_examples.append(devilray_mfem_example("esher", "000000", ["mesh_nodes_magnitude"], [], "3d"))
    +devilray_mfem_examples.append(devilray_mfem_example("laghos_tg.cycle", "000350", ["mesh_nodes_magnitude", "density", "specific_internal_energy", "velocity_magnitude"], ["velocity"], "3d"))
    +devilray_mfem_examples.append(devilray_mfem_example("taylor_green.cycle", "001860", ["mesh_nodes_magnitude", "density", "specific_internal_energy", "velocity_magnitude"], ["velocity"], "3d"))
    +devilray_mfem_examples.append(devilray_mfem_example("tri_beam", "000000", ["mesh_nodes_magnitude"], ["mesh_nodes"], "2d"))
    +devilray_mfem_examples.append(devilray_mfem_example("warbly_cube", "000000", ["mesh_nodes_magnitude"], [], "3d"))
    +
    +def full_mesh_name(mesh_name):
    +    return mesh_name + "_mesh"
    +
    +def full_var_name(mesh_name,var_name):
    +    return full_mesh_name(mesh_name) + "/" + var_name
    +
    +def mfem_test_file(name, protocol):
    +    return data_path(pjoin(bp_mfem_test_dir,"bp_mfem_ex9_%s_%s_000000.root" % ( name, protocol)))
    +
    +def devilray_mfem_test_file(name, number):
    +    return data_path(pjoin(bp_devilray_mfem_test_dir, name + "_" + number + ".root"))
    +
    +def set_3d_view():
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.510614, 0.302695, 0.804767)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (-0.0150532, 0.932691, -0.360361)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 0.5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +def set_3d_poly_view():
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.50151, -0.632781, 0.589979)
    +    v.focus = (-2.46025e-13, 6.43929e-14, 4.5)
    +    v.viewUp = (0.364523, 0.463898, 0.807416)
    +    v.viewAngle = 30
    +    v.parallelScale = 7.93494
    +    v.nearPlane = -15.8699
    +    v.farPlane = 15.8699
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (-2.46025e-13, 6.43929e-14, 4.5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +
    +def set_test_view(tag_name):
    +    if "3d" in tag_name:
    +        if "poly" in tag_name:
    +            set_3d_poly_view()
    +        else:
    +            set_3d_view()
    +    else:
    +        ResetView()
    +
    +def test(mesh_name,tag_name):
    +    #
    +    AddPlot("Mesh","%s" % full_mesh_name(mesh_name))
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_" +  mesh_name + "_mesh")
    +    DeleteAllPlots()
    +    ResetView()
    +    #
    +    AddPlot("Pseudocolor", full_var_name(mesh_name,"braid"))
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_" +  mesh_name + "_braid")
    +    DeleteAllPlots()
    +    ResetView()
    +    #
    +    AddPlot("Pseudocolor", full_var_name(mesh_name,"radial"))
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_" +  mesh_name + "_radial")
    +    DeleteAllPlots()
    +    ResetView()
    +
    +def test_poly(tag_name):
    +    #
    +    AddPlot("Mesh", "mesh_topo")
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_mesh_topo_mesh")
    +    DeleteAllPlots()
    +    ResetView()
    +    #
    +    AddPlot("Pseudocolor", "mesh_topo/level")
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_mesh_topo_level")
    +    DeleteAllPlots()
    +    ResetView()
    +
    +def test_mfem(tag_name, example_name, protocol):
    +    readOptions = GetDefaultFileOpenOptions("Blueprint")
    +    readOptions["MFEM LOR Setting"] = "Legacy LOR"
    +    SetDefaultFileOpenOptions("Blueprint", readOptions)
    +
    +    dbfile = mfem_test_file(example_name,protocol)
    +    OpenDatabase(dbfile)
    +    #
    +    AddPlot("Pseudocolor", "mesh_main/solution")
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_" +  example_name + "_" + protocol + "_sol")
    +    #
    +    DeleteAllPlots()
    +    ResetView()
    +    AddPlot("Pseudocolor", "mesh_main/element_coloring")
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_" +  example_name + "_" + protocol + "_ele_coloring")
    +    #
    +    DeleteAllPlots()
    +    ResetView()
    +    AddPlot("Pseudocolor", "mesh_main/element_attribute")
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_" +  example_name + "_" + protocol + "_ele_att")
    +    #
    +    DeleteAllPlots()
    +    ResetView()
    +
    +    CloseDatabase(dbfile)
    +
    +    # reset read options to default
    +    readOptions["MFEM LOR Setting"] = "MFEM LOR"
    +    SetDefaultFileOpenOptions("Blueprint", readOptions)
    +
    +    # check periodic results fall back to old LOR
    +    if "periodic" in example_name:
    +        dbfile = mfem_test_file(example_name,protocol)
    +        OpenDatabase(dbfile)
    +        #
    +        AddPlot("Pseudocolor", "mesh_main/solution")
    +        set_test_view(tag_name)
    +        DrawPlots()
    +        Test(tag_name + "_" +  example_name + "_" + protocol + "_fall_back_to_old_LOR_sol")
    +        #
    +        DeleteAllPlots()
    +        ResetView()
    +        AddPlot("Pseudocolor", "mesh_main/element_coloring")
    +        set_test_view(tag_name)
    +        DrawPlots()
    +        Test(tag_name + "_" +  example_name + "_" + protocol + "_fall_back_to_old_LOR_ele_coloring")
    +        #
    +        DeleteAllPlots()
    +        ResetView()
    +        AddPlot("Pseudocolor", "mesh_main/element_attribute")
    +        set_test_view(tag_name)
    +        DrawPlots()
    +        Test(tag_name + "_" +  example_name + "_" + protocol + "_fall_back_to_old_LOR_ele_att")
    +        #
    +        DeleteAllPlots()
    +        ResetView()
    +
    +        CloseDatabase(dbfile)
    +
    +def test_mfem_lor_mesh(tag_name, example_name, protocol, devilray = False, number = "000000"):
    +    dbfile = ""
    +    if (devilray):
    +        dbfile = devilray_mfem_test_file(example_name, number)
    +    else:
    +        dbfile = mfem_test_file(example_name, protocol)
    +
    +    # get default options
    +    readOptions = GetDefaultFileOpenOptions("Blueprint")
    +    readOptions["MFEM LOR Setting"] = "MFEM LOR"
    +    SetDefaultFileOpenOptions("Blueprint", readOptions)
    +    OpenDatabase(dbfile)
    +
    +    # we want to test a picture of a wireframe
    +    # new LOR should only have the outer edge
    +    AddPlot("Subset", "mesh_main")
    +    SubsetAtts = SubsetAttributes()
    +    SubsetAtts.wireframe = 1
    +    SetPlotOptions(SubsetAtts)
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_" +  example_name + ("_" + protocol if not devilray else "") + "_lor")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(dbfile)
    +
    +    ##############################
    +
    +    # examine legacy
    +    readOptions = GetDefaultFileOpenOptions("Blueprint")
    +    readOptions["MFEM LOR Setting"] = "Legacy LOR"
    +    SetDefaultFileOpenOptions("Blueprint", readOptions)
    +    OpenDatabase(dbfile)
    +
    +    # old LOR leaves a busy wireframe
    +    AddPlot("Subset", "mesh_main")
    +    SubsetAtts = SubsetAttributes()
    +    SubsetAtts.wireframe = 1
    +    SetPlotOptions(SubsetAtts)
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_" +  example_name + ("_" + protocol if not devilray else "") + "_legacy_lor")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(dbfile)
    +
    +    # restore default
    +    readOptions = GetDefaultFileOpenOptions("Blueprint")
    +    readOptions["MFEM LOR Setting"] = "MFEM LOR"
    +    SetDefaultFileOpenOptions("Blueprint", readOptions)
    +
    +def test_mfem_lor_field(tag_name, name, number, pseudocolor_fields, vector_fields):
    +    readOptions = GetDefaultFileOpenOptions("Blueprint")
    +    readOptions["MFEM LOR Setting"] = "MFEM LOR"
    +    SetDefaultFileOpenOptions("Blueprint", readOptions)
    +    dbfile = devilray_mfem_test_file(name, number)
    +    OpenDatabase(dbfile)
    +
    +    for field in pseudocolor_fields:
    +        AddPlot("Pseudocolor", "mesh_main/" + field, 1, 1)
    +        AddOperator("MultiresControl", 1)
    +        SetActivePlots(0)
    +        MultiresControlAtts = MultiresControlAttributes()
    +        MultiresControlAtts.resolution = 3
    +        SetOperatorOptions(MultiresControlAtts, 0, 1)
    +        set_test_view(tag_name)
    +        DrawPlots()
    +        Test(tag_name + "_" + name + "_pseudocolor_" + field + "_lor")
    +        DeleteAllPlots()
    +        ResetView()
    +
    +    for field in vector_fields:
    +        AddPlot("Vector", "mesh_main/" + field, 1, 1)
    +        AddOperator("MultiresControl", 1)
    +        SetActivePlots(0)
    +        MultiresControlAtts = MultiresControlAttributes()
    +        MultiresControlAtts.resolution = 3
    +        SetOperatorOptions(MultiresControlAtts, 0, 1)
    +        set_test_view(tag_name)
    +        DrawPlots()
    +        Test(tag_name + "_" + name + "_vector_" + field + "_lor")
    +        DeleteAllPlots()
    +        ResetView()
    +
    +    CloseDatabase(dbfile)
    +
    +def test_venn(tag_name, venn_db_file):
    +    TestSection("Blueprint Matset Example Tests: {0} ".format(tag_name))
    +    OpenDatabase(venn_db_file)
    +    AddPlot("Pseudocolor", "mesh_topo/mat_check")
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_mat_check")
    +    # value check
    +    Query("minmax")
    +    res = GetQueryOutputObject()
    +    print(res)
    +    # We expect:
    +    #int(res["max"]) == 4320
    +    #int(res["min"]) == 1
    +    TestValueEQ("testeq_t_mat_check_max",int(res["max"]),4320)
    +    TestValueEQ("testeq_mat_check_min",int(res["min"]),1)
    +    DeleteAllPlots()
    +    ResetView()
    +
    +
    +    TestSection("Blueprint Matset Example Tests: {0} Matvf Exprs".format(tag_name))
    +
    +    # check all volume fractions
    +    vf_exprs = {"vf_bg":'matvf(mesh_topo_matset,"background")',
    +                "vf_c_a":'matvf(mesh_topo_matset,"circle_a")',
    +                "vf_c_b":'matvf(mesh_topo_matset,"circle_b")',
    +                "vf_c_c":'matvf(mesh_topo_matset,"circle_c")'}
    +
    +    for ename,edef in vf_exprs.items():
    +        DefineScalarExpression(ename,edef);
    +        AddPlot("Pseudocolor", ename)
    +        set_test_view(tag_name)
    +        DrawPlots()
    +        Test(tag_name + "_" + ename)
    +        # value check
    +        Query("minmax")
    +        res = GetQueryOutputObject()
    +        print(res)
    +        # We expect:
    +        #res["max"] == 1.0
    +        #res["min"] == 0.0
    +        TestValueEQ("testeq_" + ename + "_max",res["max"],1.0)
    +        TestValueEQ("testeq_" + ename + "_min",res["min"],0.0)
    +        DeleteAllPlots()
    +        ResetView()
    +
    +    TestSection("Blueprint Matset Example Tests: {0} Val4mat Exprs".format(tag_name))
    +
    +    # check all volume fractions
    +    v4m_exprs = {"v4m_bg":'val4mat(<mesh_topo/mat_check>,"background")',
    +                 "v4m_c_a":'val4mat(<mesh_topo/mat_check>,"circle_a")',
    +                 "v4m_c_b":'val4mat(<mesh_topo/mat_check>,"circle_b")',
    +                 "v4m_c_c":'val4mat(<mesh_topo/mat_check>,"circle_c")'}
    +
    +    v4m_test_vals = {"v4m_bg":     1,
    +                     "v4m_c_a":   20,
    +                     "v4m_c_b":  300,
    +                     "v4m_c_c": 4000}
    +
    +    for ename,edef in v4m_exprs.items():
    +        DefineScalarExpression(ename,edef);
    +        AddPlot("Pseudocolor", ename)
    +        set_test_view(tag_name)
    +        DrawPlots()
    +        Test(tag_name + "_" + ename)
    +        # value check
    +        Query("minmax")
    +        # We expect:
    +        res = GetQueryOutputObject()
    +        print(res)
    +        #int(res["max"]) == v4m_test_vals[ename]
    +        #int(res["min"]) == 0
    +        TestValueEQ("testeq_" + ename + "_max",int(res["max"]),v4m_test_vals[ename])
    +        TestValueEQ("testeq_" + ename + "_min",int(res["min"]),0)
    +        DeleteAllPlots()
    +        ResetView()
    +
    +
    +    CloseDatabase(venn_db_file)
    +
    +def test_rz_example(tag_name, rz_db_file):
    +    OpenDatabase(rz_db_file)
    +    AddPlot("Pseudocolor", "mesh_topo/cyl")
    +    AddPlot("Mesh", "mesh_topo")
    +    DrawPlots()
    +    ResetView()
    +    Test(tag_name + "_plot_2D")
    +    DeleteAllPlots()
    +    ResetView()
    +    # now revolve
    +    AddPlot("Pseudocolor", "mesh_topo/cyl")
    +    AddOperator("Revolve")
    +    DrawPlots()
    +    ResetView()
    +    Test(tag_name + "_plot_revolved_to_3D")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(rz_db_file)
    +
    +
    +def test_paren_vars():
    +    TestSection("Variables With Parens")
    +
    +    #
    +    # Testing bugfix for issue #4882.
    +    #
    +    OpenDatabase(uniform_root)
    +    AddPlot("Pseudocolor", "mesh_topo/rho.Y_lp_CH2O_rp_")
    +    set_test_view("3d")
    +    DrawPlots()
    +    Test("paren_vars_00")
    +
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(uniform_root)
    +
    +def test_blueprint_json_hdf5():
    +    TestSection("2D Example JSON Mesh Files")
    +    OpenDatabase(braid_2d_json_root)
    +    for mesh_name in braid_2d_meshes:
    +        test(mesh_name,"blueprint_2d_json")
    +    CloseDatabase(braid_2d_json_root)
    +
    +    TestSection("2D Example HDF5 Mesh Files")
    +    OpenDatabase(braid_2d_hdf5_root)
    +    for mesh_name in braid_2d_meshes:
    +        test(mesh_name,"blueprint_2d_hdf5")
    +    CloseDatabase(braid_2d_hdf5_root)
    +
    +    TestSection("2D Example Sidre HDF5 Mesh Files")
    +    OpenDatabase(braid_2d_sidre_root)
    +    for mesh_name in braid_2d_meshes:
    +        test(mesh_name,"blueprint_2d_sidre_hdf5")
    +    CloseDatabase(braid_2d_sidre_root)
    +
    +    TestSection("3D Example JSON Mesh Files")
    +    OpenDatabase(braid_3d_json_root)
    +    for mesh_name in braid_3d_meshes:
    +        test(mesh_name,"blueprint_3d_json")
    +    CloseDatabase(braid_3d_json_root)
    +
    +    TestSection("3D Example HDF5 Mesh Files")
    +    OpenDatabase(braid_3d_hdf5_root)
    +    for mesh_name in braid_3d_meshes:
    +        test(mesh_name,"blueprint_3d_hdf5")
    +    CloseDatabase(braid_3d_hdf5_root)
    +
    +    TestSection("3D Example Sidre HDF5 Mesh Files")
    +    OpenDatabase(braid_3d_sidre_root)
    +    for mesh_name in braid_3d_meshes:
    +        test(mesh_name,"blueprint_3d_sidre_hdf5")
    +    CloseDatabase(braid_3d_sidre_root)
    +
    +def test_blueprint_MFEM():
    +    TestSection("MFEM Blueprint Example Data Tests")
    +    for example in mfem_ex9_examples:
    +        for protocol in mfem_ex9_protocols:
    +            test_mfem("blueprint_mfem_" + example.dim, example.name, protocol)
    +
    +    TestSection("MFEM LOR Mesh Blueprint Tests")
    +    for example in mfem_ex9_examples:
    +        for protocol in mfem_ex9_protocols:
    +            test_mfem_lor_mesh("blueprint_mfem_" + example.dim, example.name, protocol)
    +    for example in devilray_mfem_examples:
    +        test_mfem_lor_mesh("blueprint_mfem_" + example.dim, example.name, "", devilray = True, number = example.number)
    +
    +    TestSection("MFEM LOR Field Blueprint Tests")
    +    for example in devilray_mfem_examples:
    +        test_mfem_lor_field("blueprint_mfem_" + example.dim, example.name, example.number, example.pseudo_fields, example.vector_fields)
    +
    +def test_blueprint_expressions():
    +    TestSection("Blueprint Expressions")
    +    OpenDatabase(braid_2d_json_root)
    +    AddPlot("Pseudocolor", "uniform_mesh/scalar_expr")
    +    AddPlot("Vector", "uniform_mesh/vector_expr")
    +    DrawPlots()
    +    set_test_view("2d")
    +    Test("blueprint_expressions")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(braid_2d_json_root)
    +
    +    test_paren_vars()
    +
    +def test_blueprint_venn():
    +    test_venn("venn_small_full", venn_full_root)
    +    test_venn("venn_small_sparse_by_element", venn_s_by_e_root)
    +    test_venn("venn_small_sparse_by_material", venn_s_by_m_root)
    +
    +    test_venn("venn_small_full_yaml", venn_full_yaml_root)
    +    test_venn("venn_small_sparse_by_element_yaml", venn_s_by_e_yaml_root)
    +    test_venn("venn_small_sparse_by_material_yaml", venn_s_by_m_yaml_root)
    +
    +    TestSection("Venn With Modded Material Numbers, 0.8.7")
    +    OpenDatabase(venn_modded_matnos_root)
    +    AddPlot("FilledBoundary", "mesh_topo_matset")
    +    DrawPlots()
    +    ResetView()
    +    Test("Venn_with_modded_matnos")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(venn_modded_matnos_root)
    +
    +def test_blueprint_0_8_2():
    +    TestSection("2D Example HDF5 Mesh Files, 0.8.2")
    +    OpenDatabase(braid_2d_0_8_2_hdf5_root)
    +    for mesh_name in braid_2d_meshes_0_8_2:
    +        test(mesh_name,"blueprint_2d_hdf5_0_8_2")
    +    CloseDatabase(braid_2d_0_8_2_hdf5_root)
    +
    +    TestSection("2D Example YAML Mesh Files, 0.8.2")
    +    OpenDatabase(braid_2d_0_8_2_yaml_root)
    +    for mesh_name in braid_2d_meshes_0_8_2:
    +        test(mesh_name,"blueprint_2d_yaml_0_8_2")
    +    CloseDatabase(braid_2d_0_8_2_yaml_root)
    +
    +    TestSection("3D Example HDF5 Mesh Files, 0.8.2")
    +    OpenDatabase(braid_3d_0_8_2_hdf5_root)
    +    for mesh_name in braid_3d_meshes_0_8_2:
    +        test(mesh_name,"blueprint_3d_hdf5_0_8_2")
    +    CloseDatabase(braid_3d_0_8_2_hdf5_root)
    +
    +    TestSection("3D Example YAML Mesh Files, 0.8.2")
    +    OpenDatabase(braid_3d_0_8_2_yaml_root)
    +    for mesh_name in braid_3d_meshes_0_8_2:
    +        test(mesh_name,"blueprint_3d_yaml_0_8_2")
    +    CloseDatabase(braid_3d_0_8_2_yaml_root)
    +
    +    # test polygonal mesh
    +    TestSection("Polygonal 2D Example HDF5 Mesh Files, 0.8.2")
    +    OpenDatabase(poly_2d_hdf5_root)
    +    test_poly("blueprint_poly_2d_hdf5_0_8_2")
    +    CloseDatabase(poly_2d_hdf5_root)
    +
    +    TestSection("Polygonal 2D Example YAML Mesh Files, 0.8.2")
    +    OpenDatabase(poly_2d_yaml_root)
    +    test_poly("blueprint_poly_2d_yaml_0_8_2")
    +    CloseDatabase(poly_2d_yaml_root)
    +
    +    # test 3d polygonal mesh
    +    TestSection("Polygonal 3D Example HDF5 Mesh Files, 0.8.2")
    +    OpenDatabase(poly_3d_hdf5_root)
    +    test_poly("blueprint_poly_3d_hdf5_0_8_2")
    +    CloseDatabase(poly_3d_hdf5_root)
    +
    +    TestSection("Polygonal 3D Example YAML Mesh Files, 0.8.2")
    +    OpenDatabase(poly_3d_yaml_root)
    +    test_poly("blueprint_poly_3d_yaml_0_8_2")
    +    CloseDatabase(poly_3d_yaml_root)
    +
    +def test_blueprint_0_8_4():
    +    TestSection("Blueprint with Partition Map Style Index, 0.8.4")
    +    OpenDatabase(bp_part_map_root)
    +    AddPlot("Subset","domains")
    +    DrawPlots()
    +    Test("bp_part_map_index_example")
    +    DeleteAllPlots()
    +    CloseDatabase(bp_part_map_root)
    +    # single file test case
    +    OpenDatabase(bp_part_map_single_file_root)
    +    AddPlot("Pseudocolor","mesh_mesh/braid")
    +    DrawPlots()
    +    Test("bp_part_map_index_single_file_example")
    +    DeleteAllPlots()
    +    CloseDatabase(bp_part_map_single_file_root)
    +    # sparse topos case
    +    # single file test case
    +    OpenDatabase(bp_sparse_topos_root)
    +    AddPlot("Pseudocolor","mesh_topo/topo_field")
    +    AddPlot("Pseudocolor","mesh_pts_topo/pts_field")
    +    # change plot adds so we can see the points
    +    pc_atts = PseudocolorAttributes()
    +    pc_atts.pointSize = 1
    +    pc_atts.pointType = pc_atts.Sphere
    +    SetPlotOptions(pc_atts)
    +    DrawPlots()
    +    Test("bp_sparse_topos_example")
    +    DeleteAllPlots()
    +    CloseDatabase(bp_sparse_topos_root)
    +
    +    # other spiral test cases, which have both index styles
    +    for i, root_file in enumerate(bp_spiral_part_map_examples):
    +        OpenDatabase(root_file)
    +        AddPlot("Subset","domains")
    +        DrawPlots()
    +        # spiral cases are labeled -1 to 8
    +        case_name = "bp_part_map_spiral_case_{0}".format(i-1)
    +        Test(case_name)
    +        DeleteAllPlots()
    +        CloseDatabase(root_file)
    +
    +    TestSection("Blueprint Strided Structured, 0.8.4")
    +    # 2d
    +    OpenDatabase(bp_struct_strided_2d_root)
    +    # ele vals
    +    AddPlot("Pseudocolor", "mesh_mesh/ele_vals")
    +    AddPlot("Pseudocolor", "mesh_orig_pts/orig_ele_vals")
    +    pc_atts = PseudocolorAttributes()
    +    pc_atts.pointSize = 0.5
    +    pc_atts.pointType = pc_atts.Sphere
    +    SetPlotOptions(pc_atts)
    +    DrawPlots()
    +    Test("bp_strided_struct_2d_ele_vals")
    +    DeleteAllPlots()
    +    # vert vals
    +    AddPlot("Pseudocolor", "mesh_mesh/vert_vals")
    +    AddPlot("Pseudocolor", "mesh_orig_pts/orig_vert_vals")
    +    pc_atts = PseudocolorAttributes()
    +    pc_atts.pointSize = 0.5
    +    pc_atts.pointType = pc_atts.Sphere
    +    SetPlotOptions(pc_atts)
    +    DrawPlots()
    +    Test("bp_strided_struct_2d_vert_vals")
    +    DeleteAllPlots()
    +    CloseDatabase(bp_struct_strided_2d_root)
    +
    +    # 2d
    +    OpenDatabase(bp_struct_strided_3d_root)
    +    # ele vals
    +    AddPlot("Pseudocolor", "mesh_mesh/ele_vals")
    +    AddPlot("Pseudocolor", "mesh_orig_pts/orig_ele_vals")
    +    pc_atts = PseudocolorAttributes()
    +    pc_atts.pointSize = 0.5
    +    pc_atts.pointType = pc_atts.Sphere
    +    SetPlotOptions(pc_atts)
    +    DrawPlots()
    +    Test("bp_strided_struct_3d_ele_vals")
    +    DeleteAllPlots()
    +    # vert vals
    +    AddPlot("Pseudocolor", "mesh_mesh/vert_vals")
    +    AddPlot("Pseudocolor", "mesh_orig_pts/orig_vert_vals")
    +    pc_atts = PseudocolorAttributes()
    +    pc_atts.pointSize = 0.5
    +    pc_atts.pointType = pc_atts.Sphere
    +    SetPlotOptions(pc_atts)
    +    DrawPlots()
    +    Test("bp_strided_struct_3d_vert_vals")
    +    DeleteAllPlots()
    +    CloseDatabase(bp_struct_strided_3d_root)
    +
    +def test_blueprint_0_8_6():
    +    TestSection("Blueprint RZ Examples, 0.8.6")
    +    for db in bp_rz_examples:
    +        tag_name = os.path.basename(os.path.split(db)[1])
    +        test_rz_example(tag_name,db)
    +
    +    TestSection("Blueprint 1D Curve Examples, 0.8.6")
    +    for db in bp_1d_curve_examples:
    +        OpenDatabase(db)
    +        AddPlot("Curve", "mesh_topo/field_v")
    +        DrawPlots()
    +        Test("blueprint_1d_curve_vertex_assoc")
    +        DeleteAllPlots()
    +        AddPlot("Curve", "mesh_topo/field_e")
    +        DrawPlots()
    +        Test("blueprint_1d_curve_element_assoc")
    +        DeleteAllPlots()
    +        CloseDatabase(db)
    +
    +def test_blueprint_0_8_7():
    +    TestSection("Blueprint Polytopal Mesh Missing Offsets, 0.8.7")
    +    OpenDatabase(polytopal_mesh_no_offsets_root)
    +    AddPlot("Mesh", "mesh_test")
    +    AddPlot("Pseudocolor", "mesh_test/field")
    +    DrawPlots()
    +    ResetView()
    +    Test("Polytopal_mesh_missing_offsets")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(polytopal_mesh_no_offsets_root)
    +
    +    TestSection("Blueprint Unstructured Points not using the entire coordset, 0.8.7")
    +    OpenDatabase(unstructured_points)
    +    AddPlot("Pseudocolor", "mesh_mesh/braid", 1, 1)
    +    SetActivePlots(0)
    +    PseudocolorAtts = PseudocolorAttributes()
    +    PseudocolorAtts.pointSizePixels = 20
    +    SetPlotOptions(PseudocolorAtts)
    +    AddPlot("Label", "mesh_mesh/braid", 1, 1)
    +    DrawPlots()
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (-0.64536, -0.104723, 0.756666)
    +    View3DAtts.focus = (10, 0, 0)
    +    View3DAtts.viewUp = (-0.0863273, 0.994211, 0.0639709)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 14.1421
    +    View3DAtts.nearPlane = -28.2843
    +    View3DAtts.farPlane = 28.2843
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (10, 0, 0)
    +    SetView3D(View3DAtts)
    +    DrawPlots()
    +    Test("Unstructured_points_not_using_entire_coordset")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(unstructured_points)
    +
    +def test_blueprint_0_9_1():
    +    TestSection("Blueprint Uniform Coordset + Unstructured Topo, 0.9.1")
    +    OpenDatabase(uniform_unstructured)
    +    AddPlot("Mesh", "mesh_topo", 1, 1)
    +    DrawPlots()
    +    AddPlot("Subset", "domains", 1, 1)
    +    DrawPlots()
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (-0.520784, 0.423114, 0.741457)
    +    View3DAtts.focus = (5, 5, 5)
    +    View3DAtts.viewUp = (0.238073, 0.906059, -0.349827)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 8.66025
    +    View3DAtts.nearPlane = -17.3205
    +    View3DAtts.farPlane = 17.3205
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 0.826446
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (5, 5, 5)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +    Test("Uniform_coordset_and_unstructured_topo")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(uniform_unstructured)
    +
    +def mixed_test(db_name, meshplot_name, pseudocolor_plot_name, label_plot_name, test_name, view=False):
    +    OpenDatabase(db_name)
    +    AddPlot("Mesh", meshplot_name)
    +    AddPlot("Pseudocolor", pseudocolor_plot_name)
    +    if len(label_plot_name) > 0:
    +        AddPlot("Label", label_plot_name)
    +    DrawPlots()
    +    if view:
    +        View3DAtts = View3DAttributes()
    +        View3DAtts.viewNormal = (-0.561705, 0.419207, 0.713269)
    +        View3DAtts.focus = (0, 0, 0)
    +        View3DAtts.viewUp = (0.238433, 0.907571, -0.345636)
    +        View3DAtts.viewAngle = 30
    +        View3DAtts.parallelScale = 17.3205
    +        View3DAtts.nearPlane = -34.641
    +        View3DAtts.farPlane = 34.641
    +        View3DAtts.imagePan = (0, 0)
    +        View3DAtts.imageZoom = 0.826446
    +        View3DAtts.perspective = 1
    +        View3DAtts.eyeAngle = 2
    +        View3DAtts.centerOfRotationSet = 0
    +        View3DAtts.centerOfRotation = (0, 0, 0)
    +        View3DAtts.axis3DScaleFlag = 0
    +        View3DAtts.axis3DScales = (1, 1, 1)
    +        View3DAtts.shear = (0, 0, 1)
    +        View3DAtts.windowValid = 1
    +        SetView3D(View3DAtts)
    +    else:
    +        ResetView()
    +    Test(test_name)
    +    ResetView()
    +    DeleteAllPlots()
    +    CloseDatabase(db_name)
    +
    +def test_blueprint_0_9_2():
    +    TestSection("Blueprint Mixed Topos, 0.9.2")
    +    mixed_test(mixed_topo_2d, "mesh_topo", "mesh_topo/ele_id", "mesh_pts", "Mixed_topo_simple_2d")
    +    mixed_test(mixed_topo_2d_polygon, "mesh_topo", "mesh_topo/ele_id", "mesh_pts", "Mixed_topo_polygonal_2d")
    +    mixed_test(mixed_topo_3d, "mesh_topo", "mesh_topo/ele_id", "mesh_pts", "Mixed_topo_simple_3d")
    +    mixed_test(mixed_braid_2d, "mixed_2d_mesh", "mixed_2d_mesh/braid", "mixed_2d_mesh", "Mixed_braid_2d")
    +    mixed_test(mixed_braid_3d, "mixed_mesh", "mixed_mesh/braid", "", "Mixed_braid_3d", True)
    +    mixed_test(mixed_tet_quad_2d, "mesh_mesh", "mesh_mesh/braid", "", "Mixed_tet_quad_2d")
    +    DefineScalarExpression("nodeids", "nodeid(mesh_mesh)")
    +    mixed_test(mixed_offsets_2d, "mesh_mesh", "nodeids", "", "Mixed_offsets_2d")
    +
    +    TestSection("Blueprint Specsets, 0.9.2")
    +    OpenDatabase(misc_specsets)
    +    AddPlot("Pseudocolor", "mesh_mesh/radial")
    +    DrawPlots()
    +    silr = SILRestriction()
    +    silr.SuspendCorrectnessChecking()
    +    silr.TurnOnAll()
    +    for silSet in (5,6):
    +        silr.TurnOffSet(silSet)
    +    silr.EnableCorrectnessChecking()
    +    SetPlotSILRestriction(silr ,1)
    +    Test("Misc_radial")
    +    silr = SILRestriction()
    +    silr.TurnOnAll()
    +    SetPlotSILRestriction(silr ,1)
    +    DeleteActivePlots()
    +    AddPlot("Pseudocolor", "mesh_mesh_mesh_mesh")
    +    DrawPlots()
    +    silr = SILRestriction()
    +    silr.TurnOnAll()
    +    silr.TurnOffSet(5)
    +    SetPlotSILRestriction(silr ,1)
    +    Test("Misc_specset")
    +    silr.TurnOnAll()
    +    DeleteAllPlots()
    +    CloseDatabase(misc_specsets)
    +
    +def main():
    +    test_blueprint_json_hdf5()
    +    test_blueprint_MFEM()
    +    test_blueprint_expressions()
    +    test_blueprint_venn()
    +    test_blueprint_0_8_2()
    +    test_blueprint_0_8_4()
    +    test_blueprint_0_8_6()
    +    test_blueprint_0_8_7()
    +    test_blueprint_0_9_1()
    +    test_blueprint_0_9_2()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_bov.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_bov.html new file mode 100644 index 000000000..eb3ba0ffa --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_bov.html @@ -0,0 +1,439 @@ + +Results for databases/bov.py + +

    Results of VisIt Regression Test - databases/bov

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Reading BOV file of FLOAT
    bov_0_000.000.00
    bov_0_010 modifications totalling 0 lines
    bov_0_020.000.00
    bov_0_030.000.00
    bov_0_040.000.00
    bov_0_050.000.00
    bov_0_060.000.00
    Decomposing BOV of FLOAT into smaller bricks
    bov_1_000.000.00
    bov_1_010 modifications totalling 0 lines
    bov_1_020.000.00
    bov_1_030.000.00
    bov_1_040.000.00
    bov_1_050.010.00
    bov_1_060.000.00
    Decomposing BOV of FLOAT with small header into smaller bricks
    bov_2_000.000.00
    bov_2_010 modifications totalling 0 lines
    bov_2_020.000.00
    bov_2_030.000.00
    bov_2_040.000.00
    bov_2_050.010.00
    bov_2_060.000.00
    Reading BOV file of DOUBLE
    bov_3_000.000.00
    bov_3_010 modifications totalling 0 lines
    bov_3_020.000.00
    bov_3_030.000.00
    bov_3_040.000.00
    bov_3_050.010.00
    bov_3_060.000.00
    Decomposing BOV of DOUBLE into smaller bricks
    bov_4_000.000.00
    bov_4_010 modifications totalling 0 lines
    bov_4_020.000.00
    bov_4_030.000.00
    bov_4_040.000.00
    bov_4_050.010.00
    bov_4_060.000.00
    Decomposing BOV of DOUBLE with small header into smaller bricks
    bov_5_000.000.00
    bov_5_010 modifications totalling 0 lines
    bov_5_020.000.00
    bov_5_030.000.00
    bov_5_040.000.00
    bov_5_050.010.00
    bov_5_060.000.00
    Reading BOV file of INT
    bov_6_000.000.00
    bov_6_010 modifications totalling 0 lines
    bov_6_020.000.00
    bov_6_030.000.00
    bov_6_040.000.00
    bov_6_050.010.00
    bov_6_060.000.00
    Decomposing BOV of INT into smaller bricks
    bov_7_000.000.00
    bov_7_010 modifications totalling 0 lines
    bov_7_020.000.00
    bov_7_030.000.00
    bov_7_040.000.00
    bov_7_050.010.00
    bov_7_060.000.00
    Decomposing BOV of INT with small header into smaller bricks
    bov_8_000.000.00
    bov_8_010 modifications totalling 0 lines
    bov_8_020.000.00
    bov_8_030.000.00
    bov_8_040.000.00
    bov_8_050.010.00
    bov_8_060.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_bov_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_bov_py.html new file mode 100644 index 000000000..4e430e5c0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_bov_py.html @@ -0,0 +1,205 @@ +databases/bov.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  bov.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, multiple domain
    +#              plots     - Pseudocolor, Subset, Label, Contour
    +#              operators - Slice
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Mar 17 14:37:45 PST 2006
    +#
    +#  Modifications:
    +#    Brad Whitlock, Thu May 4 14:02:29 PST 2006
    +#    Added testing of INT and DOUBLE BOV files.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Replace obsolete Label text attributes with new versions.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def SaveTestImage(name):
    +    # Save these images somewhat larger than a regular test case image
    +    # since the images contain a lot of text.
    +    backup = GetSaveWindowAttributes()
    +    swa = SaveWindowAttributes()
    +    swa.width = 500
    +    swa.height = 500
    +    swa.screenCapture = 0
    +    Test(name, swa)
    +    SetSaveWindowAttributes(backup)
    +
    +def TestBOVDivide(prefix, db, doSubset):
    +    # Take a picture to make sure that the division took. There will be
    +    # a lot of bricks.
    +    OpenDatabase(db)
    +
    +    if doSubset:
    +        AddPlot("Subset", "bricks")
    +        subAtts = SubsetAttributes()
    +        subAtts.legendFlag = 0
    +        SetPlotOptions(subAtts)
    +    else:
    +        AddPlot("Pseudocolor", "myvar")
    +    DrawPlots()
    +    v = View3DAttributes()
    +    v.viewNormal = (0.534598, 0.40012, 0.744385)
    +    v.focus = (15, 15, 15)
    +    v.viewUp = (-0.228183, 0.916444, -0.32873)
    +    v.viewAngle = 30
    +    v.parallelScale = 8.66025
    +    v.nearPlane = -17.3205
    +    v.farPlane = 17.3205
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (15, 15, 15)
    +    SetView3D(v)
    +    Test(prefix + "00")
    +
    +    # Make sure there are the right number of zones.
    +    Query("NumZones",use_actual_data=0)
    +    TestText(prefix + "01", GetQueryOutputString())
    +
    +    # Let's slice a few times to make sure that crucial areas have the
    +    # right values
    +    AddPlot("Mesh", "mesh")
    +    AddPlot("Label", "myvar")
    +    L = LabelAttributes()
    +    L.textFont1.scale = 5
    +    L.textFont2.scale = 5
    +    SetPlotOptions(L)
    +    SetActivePlots((0,1,2))
    +    AddOperator("Slice")
    +    s = SliceAttributes()
    +    s.originType = s.Intercept  # Point, Intercept, Percent, Zone, Node
    +    s.originIntercept = 10.001
    +    s.normal = (0, 0, 1)
    +    s.axisType = s.ZAxis  # XAxis, YAxis, ZAxis, Arbitrary
    +    s.upAxis = (0, 1, 0)
    +    s.project2d = 1
    +    SetOperatorOptions(s)
    +    DrawPlots()
    +    v2 = GetView2D()
    +    v2.windowCoords = (12.0201, 13.0004, 9.99781, 10.9888)
    +    v2.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v2.fullFrameActivationMode = v2.Auto  # On, Off, Auto
    +    v2.fullFrameAutoThreshold = 100
    +    SetView2D(v2)
    +    SaveTestImage(prefix+"02")
    +
    +    # Move to another slice on the far edge that will have the max zone #
    +    s.originIntercept = 19.998
    +    SetOperatorOptions(s)
    +    v3 = View2DAttributes()
    +    v3.windowCoords = (19.2017, 20.0179, 19.1966, 20.0217)
    +    v3.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v3.fullFrameActivationMode = v3.Auto  # On, Off, Auto
    +    v3.fullFrameAutoThreshold = 100
    +    SetView2D(v3)
    +    SaveTestImage(prefix+"03")
    +
    +    # Move to another slice in the middle.
    +    s.originIntercept = 15.01
    +    SetOperatorOptions(s)
    +    v4 = View2DAttributes()
    +    v4.windowCoords = (14.6419, 15.361, 15.638, 16.365)
    +    v4.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v4.fullFrameActivationMode = v4.Auto  # On, Off, Auto
    +    v4.fullFrameAutoThreshold = 100
    +    SetView2D(v4)
    +    SaveTestImage(prefix+"04")
    +    DeleteAllPlots()
    +
    +    # Test that ghost zones are right.
    +    AddPlot("Pseudocolor", "myvar")
    +    p = PseudocolorAttributes()
    +    p.SetOpacityType(p.Constant)
    +    p.opacity = 0.25
    +    SetPlotOptions(p)
    +    DrawPlots()
    +    v5 = View3DAttributes()
    +    v5.viewNormal = (0.772475, 0.402431, 0.491255)
    +    v5.focus = (15, 15, 15)
    +    v5.viewUp = (-0.355911, 0.915018, -0.18992)
    +    v5.viewAngle = 30
    +    v5.parallelScale = 8.66025
    +    v5.nearPlane = -17.3205
    +    v5.farPlane = 17.3205
    +    v5.imagePan = (-0.0253114, 0.0398304)
    +    v5.imageZoom = 1.20806
    +    v5.perspective = 1
    +    v5.eyeAngle = 2
    +    v5.centerOfRotationSet = 0
    +    v5.centerOfRotation = (15, 15, 15)
    +    SetView3D(v5)
    +    Test(prefix+"05")
    +
    +    # Zoom in on a contour plot to make sure that there are no tears.
    +    # This means that the ghost zones were created properly.
    +    ClearWindow()
    +    p.SetOpacityType(p.FullyOpaque)
    +    SetPlotOptions(p)
    +    AddOperator("Isosurface")
    +    iso = IsosurfaceAttributes()
    +    iso.variable = "radial"
    +    SetOperatorOptions(iso)
    +    DrawPlots()
    +    v6 = View3DAttributes()
    +    v6.viewNormal = (0.373168, 0.412282, 0.831125)
    +    v6.focus = (15, 15, 15)
    +    v6.viewUp = (-0.181836, 0.910964, -0.370244)
    +    v6.viewAngle = 30
    +    v6.parallelScale = 8.66025
    +    v6.nearPlane = -17.3205
    +    v6.farPlane = 17.3205
    +    v6.imagePan = (0.0994254, 0.0810457)
    +    v6.imageZoom = 1.94126
    +    v6.perspective = 1
    +    v6.eyeAngle = 2
    +    v6.centerOfRotationSet = 0
    +    v6.centerOfRotation = (15, 15, 15)
    +    SetView3D(v6)
    +    Test(prefix+"06")
    +    DeleteAllPlots()
    +
    +    CloseDatabase(db)
    +
    +def TestBOVType(bovtype, prefixes):
    +    # Test the original BOV file without it being divided.
    +    TestSection("Reading BOV file of %s" % bovtype)
    +    TestBOVDivide(prefixes[0], data_path("bov_test_data/%s_indices.bov") % bovtype, 0)
    +
    +    #
    +    # Test 2 BOV files that are being subdivided into smaller bricks
    +    # by the BOV plugin so that there are multiple domains that
    +    # can be processed in parallel.
    +    #
    +    TestSection("Decomposing BOV of %s into smaller bricks" % bovtype)
    +    TestBOVDivide(prefixes[1], data_path("bov_test_data/%s_indices_div.bov") % bovtype, 1)
    +
    +    TestSection("Decomposing BOV of %s with small header into smaller bricks" % bovtype)
    +    TestBOVDivide(prefixes[2], data_path("bov_test_data/%s_indices_div_with_header.bov") % bovtype, 1)
    +
    +
    +def main():
    +    # Define some expressions
    +    DefineScalarExpression("x", "coord(mesh)[0]")
    +    DefineScalarExpression("y", "coord(mesh)[1]")
    +    DefineScalarExpression("z", "coord(mesh)[2]")
    +    DefineScalarExpression("dx", "x - 15.")
    +    DefineScalarExpression("dy", "y - 15.")
    +    DefineScalarExpression("dz", "z - 15.")
    +    DefineScalarExpression("radial", "sqrt(dx*dx + dy*dy + dz*dz)")
    +
    +    TestBOVType("FLOAT",  ("bov_0_", "bov_1_", "bov_2_"))
    +    TestBOVType("DOUBLE", ("bov_3_", "bov_4_", "bov_5_"))
    +    TestBOVType("INT",    ("bov_6_", "bov_7_", "bov_8_"))
    +
    +    Exit()
    +
    +main()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_boxlib.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_boxlib.html new file mode 100644 index 000000000..4bff49ff8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_boxlib.html @@ -0,0 +1,88 @@ + +Results for databases/boxlib.py + +

    Results of VisIt Regression Test - databases/boxlib

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    boxlib_013.391.15
    boxlib_020.350.09
    boxlib_033.451.15
    boxlib_040.000.00
    boxlib_050.060.00
    boxlib_060.000.00
    temperature1 min
     295.40999999999997 .eq. 295.40999999999997 (prec=15) : True
    temperature1 max
     295.4100000000001 .eq. 295.4100000000001 (prec=15) : True
    +

    Final Return Code: 120

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_boxlib_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_boxlib_py.html new file mode 100644 index 000000000..9a5e3fe6e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_boxlib_py.html @@ -0,0 +1,119 @@ +databases/boxlib.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  boxlib.py
    +#
    +#  Tests:      mesh      - 2D AMR
    +#              plots     - Pseudocolor, mesh, boundary, subset
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 31, 2005
    +#
    +#  Modifications:
    +#  
    +#    Mark C. Miller, Mon Sep 15 12:05:44 PDT 2008
    +#    Added 3D test
    +#
    +#    Mark C. Miller, Mon Jan 11 10:40:34 PST 2021
    +#    Replace Assert-style with TestValue-style tests.
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin(("Boxlib2D", "Boxlib3D"))
    +
    +
    +OpenDatabase(data_path("boxlib_test_data/2D/plt0822/Header"))
    +
    +AddPlot("Pseudocolor", "density")
    +AddPlot("Boundary", "materials")
    +b = BoundaryAttributes()
    +b.colorType = b.ColorBySingleColor
    +b.lineWidth = 2
    +SetPlotOptions(b)
    +
    +AddPlot("Subset", "patches")
    +s = SubsetAttributes()
    +s.wireframe = 1
    +s.colorType = s.ColorBySingleColor
    +s.singleColor = (255, 255, 255, 128)
    +s.lineWidth = 3
    +SetPlotOptions(s)
    +
    +DrawPlots()
    +
    +v = GetView2D()
    +v.viewportCoords = (0, 1, 0, 1)
    +v.windowCoords = (0, 0.04, 0.09, 0.13)
    +SetView2D(v)
    +
    +Test("boxlib_01")
    +
    +SetActivePlots((0,1,2))
    +s = SILRestriction()
    +levels = s.SetsInCategory("levels")
    +level2 = levels[2]
    +s.TurnOffSet(level2)
    +SetPlotSILRestriction(s)
    +Test("boxlib_02")
    +
    +s.TurnOnAll()
    +level0 = levels[0]
    +s.TurnOffSet(level0)
    +SetPlotSILRestriction(s)
    +Test("boxlib_03")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("boxlib_test_data/2D/plt0822/Header"))
    +
    +OpenDatabase(data_path("boxlib_test_data/3D/plt_asgc05_0309/Header"))
    +
    +AddPlot("Pseudocolor","tracer")
    +DrawPlots()
    +ResetView()
    +v=GetView3D()
    +v.RotateAxis(2,-45.0)
    +v.RotateAxis(0,65.0)
    +SetView3D(v)
    +Test("boxlib_04")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("boxlib_test_data/3D/plt_asgc05_0309/Header"))
    +
    +OpenDatabase(data_path("boxlib_test_data/3D/plt00000.cartgrid.body.small/Header"))
    +
    +AddPlot("Pseudocolor", "temperature")
    +AddOperator("ThreeSlice")
    +DrawPlots()
    +ResetView()
    +v = GetView3D()
    +v.RotateAxis(1,45)
    +v.RotateAxis(0,45)
    +SetView3D(v)
    +Test("boxlib_05")
    +
    +silr = SILRestriction()
    +silr.TurnOnAll()
    +silr.TurnOffSet(silr.SetsInCategory('materials')[1])
    +SetPlotSILRestriction(silr)
    +Test("boxlib_06")
    +
    +# Test precision {
    +#
    +# Test double precision is working by reading a known double precision
    +# database and ensuring we get expected min/max values within 15 digits
    +# of accuracy.
    +#
    +DeleteAllPlots()
    +CloseDatabase(data_path("boxlib_test_data/3D/plt00000.cartgrid.body.small/Header"))
    +OpenDatabase(data_path("boxlib_test_data/2D/plt0000000/Header"))
    +AddPlot("Pseudocolor", "temperature1")
    +DrawPlots()
    +SetQueryOutputToValue()
    +TestValueEQ("temperature1 min", Query("Min"), 295.409999999999968, 15)
    +TestValueEQ("temperature1 max", Query("Max"), 295.410000000000082, 15)
    +DeleteAllPlots()
    +CloseDatabase(data_path("boxlib_test_data/2D/plt0000000/Header"))
    +# Test precision }
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_chgcar.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_chgcar.html new file mode 100644 index 000000000..fc35e688e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_chgcar.html @@ -0,0 +1,126 @@ + +Results for databases/chgcar.py + +

    Results of VisIt Regression Test - databases/chgcar

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    chgcar_010.000.00
    chgcar_020.000.00
    chgcar_030.000.00
    chgcar_040.000.00
    chgcar_111.800.19
    chgcar_120.000.00
    chgcar_130.000.00
    chgcar_140.000.00
    chgcar_050.110.00
    chgcar_060.000.00
    chgcar_070.170.00
    chgcar_080.000.00
    chgcar_090.000.00
    chgcar_100.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_chgcar_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_chgcar_py.html new file mode 100644 index 000000000..406ae1deb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_chgcar_py.html @@ -0,0 +1,156 @@ +databases/chgcar.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  chgcar.py
    +#
    +#  Tests:      mesh      - transformed rectilinear
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       February 20, 2007
    +#
    +#    Jeremy Meredith, Wed Aug 13 14:39:11 EDT 2008
    +#    Unrestricted the number of labels plotted.  Since I now
    +#    have automatic decomposition of chgcar files, the actual
    +#    labels chosen was varying based on serial vs parallel
    +#    (which is fine, but doesn't help for regression testing).
    +#
    +#    Hank Childs, Wed Dec 31 14:32:34 PST 2008
    +#    Rename ResamplePluginAtts to ResampleAtts.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Replace obsolete Label text attributes with new versions.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(data_path("chgcar_test_data/CHGCAR"),0, "VASP_1.0")
    +
    +AddPlot("Pseudocolor", "charge")
    +DrawPlots()
    +
    +View3DAtts = GetView3D()
    +View3DAtts.viewNormal = (-0.85796, 0.216484, -0.465874)
    +View3DAtts.focus = (4.5, 0.5, 4)
    +View3DAtts.viewUp = (0.135878, 0.970204, 0.200602)
    +View3DAtts.viewAngle = 30
    +SetView3D(View3DAtts)
    +
    +Test("chgcar_01")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR.vtk"))
    +
    +Test("chgcar_02")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR"))
    +
    +
    +AddOperator("Resample")
    +ResampleAtts = ResampleAttributes()
    +ResampleAtts.useExtents = 0
    +ResampleAtts.startX = 1
    +ResampleAtts.endX = 6
    +ResampleAtts.samplesX = 80
    +ResampleAtts.startY = -2
    +ResampleAtts.endY = 4
    +ResampleAtts.samplesY = 80
    +ResampleAtts.is3D = 1
    +ResampleAtts.startZ = 1
    +ResampleAtts.endZ = 6
    +ResampleAtts.samplesZ = 80
    +SetOperatorOptions(ResampleAtts)
    +DrawPlots()
    +
    +Test("chgcar_03")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR.vtk"))
    +
    +Test("chgcar_04")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR"))
    +
    +
    +DeleteActivePlots()
    +
    +AddPlot("Mesh", "mesh")
    +AddOperator("IndexSelect",1)
    +IndexSelectAtts = IndexSelectAttributes()
    +IndexSelectAtts.dim = IndexSelectAtts.ThreeD  # OneD, TwoD, ThreeD
    +IndexSelectAtts.xMin = 2
    +SetOperatorOptions(IndexSelectAtts)
    +
    +AddPlot("Label", "charge")
    +LabelAtts = LabelAttributes()
    +LabelAtts.textFont1.scale = 7
    +LabelAtts.restrictNumberOfLabels = 0
    +SetPlotOptions(LabelAtts)
    +DrawPlots()
    +
    +Test("chgcar_11")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR.vtk"))
    +
    +Test("chgcar_12")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR"))
    +
    +
    +DeleteAllPlots()
    +
    +
    +
    +AddPlot("Pseudocolor", "charge")
    +AddOperator("ThreeSlice")
    +ThreeSliceAtts = ThreeSliceAttributes()
    +ThreeSliceAtts.x = 3
    +ThreeSliceAtts.y = 0
    +ThreeSliceAtts.z = 4
    +SetOperatorOptions(ThreeSliceAtts)
    +DrawPlots()
    +
    +Test("chgcar_13")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR.vtk"))
    +
    +Test("chgcar_14")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR"))
    +
    +
    +DeleteAllPlots()
    +
    +AddPlot("Volume", "charge")
    +DrawPlots()
    +VolumeAtts = VolumeAttributes()
    +VolumeAtts.lightingFlag = 0
    +VolumeAtts.opacityAttenuation = .6
    +VolumeAtts.resampleTarget = 450000
    +SetPlotOptions(VolumeAtts)
    +
    +Test("chgcar_05")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR.vtk"))
    +
    +Test("chgcar_06")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR"))
    +
    +
    +VolumeAtts.opacityAttenuation = .9
    +SetPlotOptions(VolumeAtts)
    +
    +Test("chgcar_07")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR.vtk"))
    +
    +Test("chgcar_08")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR"))
    +
    +
    +VolumeAtts.opacityAttenuation = .4
    +VolumeAtts.rendererType = VolumeAtts.Composite
    +SetPlotOptions(VolumeAtts)
    +
    +Test("chgcar_09")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR.vtk"))
    +
    +Test("chgcar_10")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR"))
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_claw.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_claw.html new file mode 100644 index 000000000..928d4007a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_claw.html @@ -0,0 +1,54 @@ + +Results for databases/claw.py + +

    Results of VisIt Regression Test - databases/claw

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    claw_010.000.00
    claw_020.000.00
    claw_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_claw_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_claw_py.html new file mode 100644 index 000000000..6272f295a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_claw_py.html @@ -0,0 +1,65 @@ +databases/claw.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  claw.py 
    +#
    +#  Tests:      Claw files 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       September 13, 2007 
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# test the mesh
    +OpenDatabase(data_path("claw_test_data/2d/fort.claw"))
    +
    +TimeSliderNextState()
    +AddPlot("Mesh","claw_mesh")
    +DrawPlots()
    +SetActivePlots((1,))
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "level3":
    +        silr.TurnOffSet(i)
    +SetPlotSILRestriction(silr)
    +Test("claw_01")
    +SetActivePlots((1,))
    +DeleteActivePlots()
    +
    +# test a variable being read 
    +AddPlot("Pseudocolor","col_00")
    +DrawPlots()
    +Test("claw_02")
    +DeleteAllPlots()
    +CloseDatabase(data_path("claw_test_data/2d/fort.claw"))
    +
    +OpenDatabase(data_path("claw_test_data/3d/fort.claw"))
    +
    +TimeSliderNextState()
    +ss = SubsetAttributes()
    +#ss.colorType = ss.ColorBySingleColor
    +ss.lineWidth = 2
    +ss.singleColor = (0, 0, 0, 255)
    +ss.wireframe = 1
    +SetPlotOptions(ss)
    +AddPlot("Pseudocolor","col_00")
    +AddPlot("Mesh","claw_mesh")
    +SetActivePlots((1,2))
    +#AddOperator("Clip", 1)
    +AddOperator("Clip")
    +clipAtts = ClipAttributes()
    +clipAtts.plane1Origin = (0.25, 0.5, 0.75)
    +clipAtts.plane1Normal = (0, 0, 1)
    +SetOperatorOptions(clipAtts)
    +DrawPlots()
    +SetActivePlots((0,))
    +DrawPlots()
    +v=GetView3D()
    +v.viewNormal = (0.383221, 0.582931, 0.716473)
    +v.viewUp = (-0.29125, 0.812382, -0.505182)
    +SetView3D(v)
    +Test("claw_03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_closedatabase.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_closedatabase.html new file mode 100644 index 000000000..c73353e5b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_closedatabase.html @@ -0,0 +1,94 @@ + +Results for databases/closedatabase.py + +

    Results of VisIt Regression Test - databases/closedatabase

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    closedatabase000.000.00
    closedatabase010 modifications totalling 0 lines
    closedatabase020 modifications totalling 0 lines
    closedatabase030.000.00
    closedatabase040.000.00
    closedatabase050 modifications totalling 0 lines
    closedatabase060 modifications totalling 0 lines
    closedatabase070 modifications totalling 0 lines
    closedatabase080 modifications totalling 0 lines
    closedatabase090 modifications totalling 0 lines
    closedatabase100 modifications totalling 0 lines
    closedatabase_exprs000 modifications totalling 0 lines
    closedatabase_exprs010 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_closedatabase_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_closedatabase_py.html new file mode 100644 index 000000000..35a3bd823 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_closedatabase_py.html @@ -0,0 +1,108 @@ +databases/closedatabase.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  closedatabase.py
    +#
    +#  Tests:      mesh      - 3D, curvilinear, single domain
    +#              plots     - Pseudocolor
    +#              databases - Silo
    +#
    +#  Purpose:    This test case tests that the viewer can close a database.
    +#
    +#  Bugs:       '3283
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Mar 19 08:57:09 PDT 2004
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Wed Apr 14 15:41:11 PDT 2010
    +#    Added test to check if database expressions are cleared after
    +#    database is closed.
    +#
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Look at astring representation of the GlobalAttributes to see the list
    +# of sources, etc.
    +#
    +def TestGlobalAttributes(testname):
    +    # Get the window information, convert it to a string, and use it as
    +    # a test case.
    +    TestText(testname, str(GetGlobalAttributes()))
    +
    +def GetCloseString(db):
    +    if(CloseDatabase(db) == 1):
    +        testString = "The database %s was closed." % os.path.abspath(db)
    +    else:
    +        testString = GetLastError()
    +    return testString
    +
    +# Open a database and create a plot
    +db = silo_data_path("wave*.silo database")
    +OpenDatabase(db, 32)
    +AddPlot("Pseudocolor", "pressure")
    +DrawPlots()
    +
    +# Get a picture of the plot.
    +Test("closedatabase00")
    +
    +# Look at the list of sources.
    +TestGlobalAttributes("closedatabase01")
    +
    +# Try and close the database. VisIt should not let us close it since there
    +# are plots that use it.
    +TestText("closedatabase02", GetCloseString(db))
    +
    +# Create another window that uses the database.
    +CloneWindow()
    +SetActiveWindow(2)
    +DrawPlots()
    +Test("closedatabase03")
    +
    +# Delete all the plots in window 1 that use the database
    +SetActiveWindow(1)
    +DeleteAllPlots()
    +Test("closedatabase04")
    +
    +# Try and close the database. VisIt should not let us close it since there
    +# are still plots in window 2 that use it.
    +TestText("closedatabase05", GetCloseString(db))
    +
    +SetActiveWindow(2)
    +DeleteAllPlots()
    +
    +# Try and close the database. VisIt should let us close it this time.
    +testString = GetCloseString(db) + "\n" + str(GetGlobalAttributes())
    +TestText("closedatabase06", testString)
    +
    +
    +# Try adding some databases
    +dbs = (silo_data_path("wave.visit") ,
    +       silo_data_path("globe.silo") ,
    +       silo_data_path("curv3d.silo") )
    +
    +for db in dbs:
    +    OpenDatabase(db)
    +
    +# Look at the list of sources.
    +TestGlobalAttributes("closedatabase07")
    +
    +# Start removing databases
    +testindex = 8
    +for i in range(len(dbs)):
    +    index = len(dbs) - 1 - i
    +    testString = GetCloseString(dbs[index]) + "\n" + str(GetGlobalAttributes())
    +    TestText("closedatabase%02d" % testindex, testString)
    +    testindex = testindex + 1
    +
    +# Check that database expressions are cleared when database is closed.
    +OpenDatabase(dbs[1])
    +TestExpressions("closedatabase_exprs00")
    +TestExpressions("closedatabase_exprs01", prefix=GetCloseString(dbs[1])+"\n")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_correlation.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_correlation.html new file mode 100644 index 000000000..631fc12ca --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_correlation.html @@ -0,0 +1,510 @@ + +Results for databases/correlation.py + +

    Results of VisIt Regression Test - databases/correlation

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Padded index correlation
    correlation_0_000 modifications totalling 0 lines
    correlation_0_010.000.00
    correlation_0_020 modifications totalling 0 lines
    correlation_0_030.000.00
    correlation_0_040 modifications totalling 0 lines
    correlation_0_050.000.00
    correlation_0_060 modifications totalling 0 lines
    correlation_0_070.000.00
    correlation_0_080 modifications totalling 0 lines
    correlation_0_090.000.00
    correlation_0_100 modifications totalling 0 lines
    correlation_0_110.000.00
    correlation_0_120 modifications totalling 0 lines
    correlation_0_130.000.00
    correlation_0_140 modifications totalling 0 lines
    Stretched correlation
    correlation_1_000 modifications totalling 0 lines
    correlation_1_010.000.00
    correlation_1_020 modifications totalling 0 lines
    correlation_1_030.000.00
    correlation_1_040 modifications totalling 0 lines
    correlation_1_050.000.00
    correlation_1_060 modifications totalling 0 lines
    correlation_1_070.000.00
    correlation_1_080 modifications totalling 0 lines
    correlation_1_090.000.00
    correlation_1_100 modifications totalling 0 lines
    correlation_1_110.000.00
    correlation_1_120 modifications totalling 0 lines
    correlation_1_130.000.00
    correlation_1_140 modifications totalling 0 lines
    Time correlation
    correlation_2_000 modifications totalling 0 lines
    correlation_2_010.000.00
    correlation_2_020 modifications totalling 0 lines
    correlation_2_030.000.00
    correlation_2_040 modifications totalling 0 lines
    correlation_2_050.000.00
    correlation_2_060 modifications totalling 0 lines
    correlation_2_070.000.00
    correlation_2_080 modifications totalling 0 lines
    correlation_2_090.000.00
    correlation_2_100 modifications totalling 0 lines
    correlation_2_110.000.00
    correlation_2_120 modifications totalling 0 lines
    correlation_2_130.000.00
    correlation_2_140 modifications totalling 0 lines
    correlation_2_150.000.00
    correlation_2_160 modifications totalling 0 lines
    correlation_2_170.000.00
    correlation_2_180 modifications totalling 0 lines
    correlation_2_190.000.00
    correlation_2_200 modifications totalling 0 lines
    Cycle correlation
    correlation_3_000 modifications totalling 0 lines
    correlation_3_010.000.00
    correlation_3_020 modifications totalling 0 lines
    correlation_3_030.000.00
    correlation_3_040 modifications totalling 0 lines
    correlation_3_050.000.00
    correlation_3_060 modifications totalling 0 lines
    correlation_3_070.000.00
    correlation_3_080 modifications totalling 0 lines
    correlation_3_090.000.00
    correlation_3_100 modifications totalling 0 lines
    correlation_3_110.000.00
    correlation_3_120 modifications totalling 0 lines
    correlation_3_130.000.00
    correlation_3_140 modifications totalling 0 lines
    Creating new window
    correlation_4_000.000.00
    correlation_4_010 modifications totalling 0 lines
    correlation_4_020.000.00
    correlation_4_030 modifications totalling 0 lines
    Altering correlation
    correlation_5_000 modifications totalling 0 lines
    correlation_5_010 modifications totalling 0 lines
    correlation_5_020.000.00
    correlation_5_030 modifications totalling 0 lines
    correlation_5_040.000.00
    correlation_5_050 modifications totalling 0 lines
    correlation_5_060.000.00
    correlation_5_070 modifications totalling 0 lines
    correlation_5_080.000.00
    correlation_5_090 modifications totalling 0 lines
    Deleting correlations
    correlation_6_000 modifications totalling 0 lines
    Automatic correlations
    correlation_7_000 modifications totalling 0 lines
    correlation_7_010 modifications totalling 0 lines
    correlation_7_020.000.00
    correlation_7_030 modifications totalling 0 lines
    correlation_7_040.000.00
    correlation_7_050 modifications totalling 0 lines
    correlation_7_060.000.00
    correlation_7_070 modifications totalling 0 lines
    correlation_7_080 modifications totalling 0 lines
    correlation_7_090.000.00
    correlation_7_100 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_correlation_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_correlation_py.html new file mode 100644 index 000000000..0a373b7b0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_correlation_py.html @@ -0,0 +1,215 @@ +databases/correlation.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial
    +#  CLASSES: nightly
    +#
    +#  Test Case:  correlation.py 
    +#
    +#  Tests:      Tests database correlations and automatic correlation.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Mon Mar 22 08:28:25 PDT 2004
    +#
    +#  Modifications:
    +#    Brad Whitlock, Fri Apr 1 09:48:23 PDT 2005
    +#    I renamed some baselines so I could add correlation definition tests.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def GetTruncatedWindowInformationString():
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 5 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    for i in range(5):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    return s
    +
    +#
    +# Look at the first few lines of the string representation of the
    +# WindowInformation to see the list of time sliders, etc.
    +#
    +def TestWindowInformation(testname):
    +    TestText(testname, GetTruncatedWindowInformationString())
    +
    +def TestLength(testname):
    +    tsLength = TimeSliderGetNStates()
    +    testString = "%s has %d states\n" % (GetActiveTimeSlider(), tsLength)
    +    testString = testString + GetTruncatedWindowInformationString()
    +    TestText(testname, testString)
    +
    +def ComputeStates(nStates, stateIncrement):
    +    lastState = nStates - 1
    +    states = list(range(0, nStates, stateIncrement))
    +    if(states[-1] != lastState):
    +        states = states  + [lastState]
    +    return states
    +
    +def GetTestName(sectionIndex, testIndex):
    +    return "correlation_%d_%02d" % (sectionIndex, testIndex)
    +
    +def TestTimeSlider(sectionIndex, testIndex):
    +    Test(GetTestName(sectionIndex, testIndex))
    +    TestLength(GetTestName(sectionIndex, testIndex + 1))
    +    return testIndex + 2
    +
    +#
    +# Tests that the database correlations look a certain way.
    +#
    +def TestCorrelation(name, sectionIndex, testIndex):
    +    names = GetDatabaseCorrelationNames()
    +    s = ""
    +    if name in names:
    +        c = GetDatabaseCorrelation(name)
    +        s = s + str(c) + "\n"
    +    TestText(GetTestName(sectionIndex, testIndex), s)
    +    return testIndex + 1
    +
    +#
    +# Tests the time slider length and the correlation list.
    +#
    +def TestLengthAndCorrelationList(testname):
    +    tsLength = TimeSliderGetNStates()
    +    s = "%s has %d states\n" % (GetActiveTimeSlider(), tsLength)
    +    s = s + GetTruncatedWindowInformationString() + "\n\n"
    +
    +    names = GetDatabaseCorrelationNames()
    +    for name in names:
    +        c = GetDatabaseCorrelation(name)
    +        s = s + str(c) + "\n"
    +    TestText(testname, s)
    +
    +#
    +# The databases that we'll use for most tests.
    +#
    +dbs = (data_path("pdb_test_data/dbA00.pdb"),
    +       data_path("pdb_test_data/dbB00.pdb"),
    +       data_path("pdb_test_data/dbC00.pdb"))
    +
    +#
    +# Open each database and create a plot.
    +#
    +for db in dbs:
    +    OpenDatabase(db)
    +    AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +
    +#
    +# Correlation Types
    +#
    +IndexForIndexCorrelation = 0
    +StretchedIndexCorrelation = 1
    +TimeCorrelation = 2
    +CycleCorrelation = 3
    +correlationTypes = (IndexForIndexCorrelation, StretchedIndexCorrelation,\
    +    TimeCorrelation, CycleCorrelation)
    +correlationNames = ("ABC_Index", "ABC_Stretch", "ABC_Time", "ABC_Cycle")
    +correlationTitles = ("Padded index correlation", "Stretched correlation",\
    +    "Time correlation", "Cycle correlation")
    +
    +#
    +# Create correlations between the 3 databases
    +#
    +sectionIndex = 0
    +testIndex = 0
    +for i in range(len(correlationTypes)):
    +    TestSection(correlationTitles[i])
    +    CreateDatabaseCorrelation(correlationNames[i], dbs, correlationTypes[i])
    +    testIndex = TestCorrelation(correlationNames[i], sectionIndex, 0)
    +    states = ComputeStates(TimeSliderGetNStates(), 5)
    +    for state in states:
    +        SetTimeSliderState(state)
    +        testIndex = TestTimeSlider(sectionIndex, testIndex)
    +    sectionIndex = sectionIndex + 1
    +
    +#
    +# Make sure that a new window has the same plots and correlations.
    +#
    +TestSection("Creating new window")
    +sectionIndex = 4
    +testIndex = 0
    +alteredCorrelation = correlationNames[0]
    +SetActiveTimeSlider(alteredCorrelation)
    +SetTimeSliderState(15)
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +CloneWindow()
    +SetActiveWindow(2)
    +InvertBackgroundColor()
    +DrawPlots()
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +SetActiveWindow(1)
    +
    +#
    +# Now that multiple windows use the same correlation, alter the correlation
    +# so it only uses 2 databases and make sure that both windows change when
    +# we change the time slider.
    +#
    +TestSection("Altering correlation")
    +sectionIndex = 5
    +testIndex = 0
    +testIndex = TestCorrelation(alteredCorrelation, sectionIndex, testIndex)
    +AlterDatabaseCorrelation(alteredCorrelation, (dbs[0], dbs[1]), StretchedIndexCorrelation)
    +testIndex = TestCorrelation(alteredCorrelation, sectionIndex, testIndex)
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +SetActiveWindow(2)
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +SetActiveWindow(1)
    +SetTimeSliderState(19)
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +SetActiveWindow(2)
    +SetTimeSliderState(19)
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +SetActiveWindow(1)
    +
    +#
    +# Test deleting correlations
    +#
    +TestSection("Deleting correlations")
    +sectionIndex = 6
    +testIndex = 0
    +for n in correlationNames:
    +    DeleteDatabaseCorrelation(n)
    +TestLengthAndCorrelationList(GetTestName(sectionIndex, testIndex))
    +
    +#
    +# Test automatically correlating by setting the correlation options such
    +# that we automatically create a StretchedIndex correlation when adding
    +# plots, etc.
    +#
    +TestSection("Automatic correlations")
    +sectionIndex = 7
    +SetActiveWindow(1)
    +DeleteAllPlots()
    +TestLengthAndCorrelationList(GetTestName(sectionIndex, 0))
    +testIndex = 1
    +SetDatabaseCorrelationOptions(StretchedIndexCorrelation, 0)
    +OpenDatabase(dbs[0])
    +AddPlot("FilledBoundary", "material(mesh)")
    +OpenDatabase(dbs[1])
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +# At this point, the viewer should have automatically created a new correlation
    +# and it should be the active time slider.
    +testIndex = TestCorrelation(GetActiveTimeSlider(), sectionIndex, testIndex);
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +# note: py3 div creates float
    +SetTimeSliderState(int(TimeSliderGetNStates() / 2))
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +SetTimeSliderState(TimeSliderGetNStates() - 1)
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +
    +# Now that we've verified the correlation, add another database to it by 
    +# Creating a plot from yet another database.
    +OpenDatabase(dbs[2])
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +testIndex = TestCorrelation(GetActiveTimeSlider(), sectionIndex, testIndex);
    +SetTimeSliderState(int(TimeSliderGetNStates() * 0.8))
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_curve.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_curve.html new file mode 100644 index 000000000..8d6c7b65d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_curve.html @@ -0,0 +1,62 @@ + +Results for databases/curve.py + +

    Results of VisIt Regression Test - databases/curve

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    curve10.000.00
    curve20.000.00
    curve30.000.00
    curve2Expr1.800.02
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_curve_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_curve_py.html new file mode 100644 index 000000000..8128e2262 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_curve_py.html @@ -0,0 +1,53 @@ +databases/curve.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  curve.py 
    +#
    +#  Tests:      normal curves, zone-centered curves, errors in curve files
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       October 31, 2006 
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +ca = CurveAttributes()
    +ca.showPoints = 1
    +SetDefaultPlotOptions(ca)
    +
    +OpenDatabase(data_path("curve_test_data/zonecent.ultra"))
    +DefineCurveExpression("curve2Expr","curve2+10")
    +
    +AddPlot("Curve","curve2")
    +DrawPlots()
    +v = GetViewCurve()
    +v.rangeCoords = (-3, 11)
    +SetViewCurve(v)
    +Test("curve1")
    +
    +AddPlot("Curve","curve1")
    +DrawPlots()
    +v.domainCoords = (-4, 16)
    +SetViewCurve(v)
    +Test("curve2")
    +
    +DeleteActivePlots()
    +
    +AddPlot("Curve","curve4")
    +DrawPlots()
    +v.domainCoords = (-4, 25)
    +SetViewCurve(v)
    +Test("curve3")
    +
    +DeleteActivePlots()
    +
    +AddPlot("Curve","curve2")
    +AddPlot("Curve","curve2Expr")
    +ResetView()
    +DrawPlots()
    +Test("curve2Expr")
    +
    +DeleteActivePlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ddcMD.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ddcMD.html new file mode 100644 index 000000000..cfe2ae13c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ddcMD.html @@ -0,0 +1,181 @@ + +Results for databases/ddcMD.py + +

    Results of VisIt Regression Test - databases/ddcMD

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    2D cgrid single files
    ddcMD_0_000 modifications totalling 0 lines
    ddcMD_0_010.000.00
    ddcMD_0_020.000.00
    ddcMD_0_030.000.00
    2D cgrid multi files
    ddcMD_1_000 modifications totalling 0 lines
    ddcMD_1_010.000.00
    ddcMD_1_020.000.00
    ddcMD_1_030.000.00
    3D cgrid multi files and multi subname
    ddcMD_2_000 modifications totalling 0 lines
    ddcMD_2_010.000.00
    ddcMD_2_020.000.00
    ddcMD_2_030.000.00
    ddcMD_2_040.000.00
    ddcMD_2_050.000.00
    ddcMD_2_060.000.00
    ddcMD_2_070.000.00
    ddcMD_2_080.000.00
    ddcMD_2_090.000.00
    ddcMD_2_100.000.00
    ddcMD_2_110.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ddcMD_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ddcMD_py.html new file mode 100644 index 000000000..417dae6fa --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ddcMD_py.html @@ -0,0 +1,112 @@ +databases/ddcMD.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ddcMD.py
    +#
    +#  Tests:      mesh      - 2D/3D structured automatically decomposed
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Oct 11 17:04:32 PDT 2012
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def GetVariables(db, doExpressions = 1):
    +    md = GetMetaData(db)
    +    txt = "Scalar Names:\n"
    +    s = []
    +    for i in range(md.GetNumScalars()):
    +        s = s + [md.GetScalars(i).name]
    +    scalars = sorted(s)
    +    for s in scalars:
    +        txt = txt + s + "\n"
    +    if doExpressions:
    +        txt = txt + "\n\nExpressions:\n"
    +        expr = {}
    +        for i in range(md.exprList.GetNumExpressions()):
    +            e = md.exprList.GetExpressions(i)
    +            expr[e.name] = e.definition
    +        keys = sorted(expr.keys())
    +        for k in keys:
    +            txt = txt + k + " = " + expr[k] + "\n"
    +    return txt
    +
    +def test0(datapath):
    +    TestSection("2D cgrid single files")
    +    db = pjoin(datapath,"cgrid2d.ddcMD")
    +    TestText("ddcMD_0_00", GetVariables(db))
    +
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "mass")
    +    DrawPlots()
    +    Test("ddcMD_0_01")
    +
    +    ChangeActivePlotsVar("mass_Al")
    +    Test("ddcMD_0_02")
    +
    +    ChangeActivePlotsVar("mass_Cu")
    +    Test("ddcMD_0_03")
    +
    +    DeleteAllPlots()
    +
    +def test1(datapath):
    +    TestSection("2D cgrid multi files")
    +    db = pjoin(datapath,"cgrid2d_multi.ddcMD")
    +    TestText("ddcMD_1_00", GetVariables(db))
    +
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "Kx")
    +    DrawPlots()
    +    Test("ddcMD_1_01")
    +
    +    ChangeActivePlotsVar("Kx_Al")
    +    Test("ddcMD_1_02")
    +
    +    ChangeActivePlotsVar("Kx_Cu")
    +    Test("ddcMD_1_03")
    +
    +    DeleteAllPlots()
    +
    +def test2(datapath):
    +    TestSection("3D cgrid multi files and multi subname")
    +    db = pjoin(datapath,"cgrid3d_multi_subname", "snapshot.*.ddcMD database")
    +    TestText("ddcMD_2_00", GetVariables(db, doExpressions = 0))
    +
    +    # Plot the gid to see that things are put together properly.
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "anatomy/gid")
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (-0.463775, -0.476999, -0.746582)
    +    v.focus = (12.5,12.5,12.5)
    +    v.viewUp = (-0.885851, 0.236876, 0.398946)
    +    v.parallelScale = 21.6506
    +    v.nearPlane = -43.3013
    +    v.farPlane = 43.3013
    +    v.imagePan = (0.0101758, 0.0313539)
    +    v.imageZoom = 1.01954
    +    SetView3D(v)
    +    Test("ddcMD_2_01")
    +
    +    ChangeActivePlotsVar("state/Vm")
    +
    +    # Iterate over time.
    +    for i in range(TimeSliderGetNStates()):
    +        SetTimeSliderState(i)
    +        Test("ddcMD_2_%02d" % (2 + i))
    +
    +    # Lower the transparency to see if domain boundaries are good. I think that
    +    # currently they are not good.
    +
    +    DeleteAllPlots()
    +
    +def main():
    +    datapath = data_path("ddcmd_test_data")
    +    test0(datapath)
    +    test1(datapath)
    +    test2(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_empty_db.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_empty_db.html new file mode 100644 index 000000000..1deae2033 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_empty_db.html @@ -0,0 +1,40 @@ + +Results for databases/empty_db.py + +

    Results of VisIt Regression Test - databases/empty_db

    + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    empty_010 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_empty_db_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_empty_db_py.html new file mode 100644 index 000000000..d1710bc38 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_empty_db_py.html @@ -0,0 +1,28 @@ +databases/empty_db.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  empty_db.py 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       28Oct10
    +#
    +#  Modifications:
    +#    Mark C. Miller, Mon Nov  1 12:24:23 PDT 2010
    +#    I added specification of the Silo format to the open call so that we
    +#    can be assured of having the real exception (DBYieldedNoData) returned
    +#    in the error message. Otherwise, that exception is caught and then folded
    +#    into whatever other possible exceptions other candidates might generate.
    +# ----------------------------------------------------------------------------
    +import re
    +
    +OpenDatabase(data_path("silo_pdb_test_data/empty.silo"), 0, "Silo_1.0")
    +
    +errStr = GetLastError()
    +tmpType = re.search(",\nno data was found in the file for VisIt to work with.", errStr)
    +msg = errStr
    +if tmpType != None:
    +    msg = "DBYieldedNoDataException\n"
    +TestText("empty_01", msg)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_exodus.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_exodus.html new file mode 100644 index 000000000..a7c0ba149 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_exodus.html @@ -0,0 +1,244 @@ + +Results for databases/exodus.py + +

    Results of VisIt Regression Test - databases/exodus

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    exodus_010.000.00
    exodus_020.000.00
    exodus_030.000.00
    exodus_040.000.00
    exodus_050.000.00
    Testing SHELL4 support
    exodus_060.000.00
    Testing support element block names
    exodus_070.000.00
    Testing 2D "NSIDED" element type
    exodus_080.000.00
    exodus_090.000.00
    exodus_100.000.00
    exodus_110.440.63
    exodus_120.440.63
    exodus_13a0.000.00
    exodus_13b0.000.00
    exodus_13c0.000.00
    exodus_140.000.00
    exodus_150.000.00
    exodus_160.000.00
    exodus_171.310.00
    exodus_180.000.00
    exodus_190.000.00
    exodus_200.000.00
    exodus_210.000.00
    exodus_220.000.00
    High Order Elements
    exodus_230.000.00
    exodus_240.000.00
    exodus_250.000.00
    exodus_260.000.00
    exodus_270.000.00
    exodus_280.000.00
    exodus_290.000.00
    +

    Final Return Code: 120

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_exodus_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_exodus_py.html new file mode 100644 index 000000000..3847c118a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_exodus_py.html @@ -0,0 +1,272 @@ +databases/exodus.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  exodus.py
    +#
    +#  Tests:      mesh      - 2D, 3D unstructured
    +#              plots     - 3D - Pseudocolor, mesh, boundary, subset,
    +#                          2D - Filled boundary, label 
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 31, 2005
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Fri Oct  7 14:27:33 PDT 2005
    +#    Explicitly reference the name of the variable to displace by, since the
    +#    default changed.
    +#
    +#    Brad Whitlock, Mon Nov 14 14:31:46 PST 2005
    +#    Added testing for SHELL4 support.
    +#
    +#    Eric Brugger, Wed Mar 14 14:04:32 PDT 2007
    +#    Added testing for element block names.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("Exodus")
    +
    +OpenDatabase(data_path("exodus_test_data/balls.e.4.* database"))
    +
    +AddPlot("Pseudocolor", "EQPS")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.75, 0.55, 0.36)
    +SetView3D(v)
    +
    +Test("exodus_01")
    +
    +s = SILRestriction()
    +sets = s.SetsInCategory("ElementBlock")
    +s.TurnOffSet(sets[0])
    +s.TurnOffSet(sets[1])
    +s.TurnOffSet(sets[2])
    +SetPlotSILRestriction(s)
    +
    +Test("exodus_02")
    +
    +SetTimeSliderState(18)
    +Test("exodus_03")
    +
    +files = s.SetsInCategory("File")
    +s.TurnOffSet(files[3])
    +SetPlotSILRestriction(s)
    +Test("exodus_04")
    +
    +ToggleMaintainViewMode()
    +d = DisplaceAttributes()
    +d.variable = "DISPL"
    +SetDefaultOperatorOptions(d)
    +AddOperator("Displace")
    +DrawPlots()
    +Test("exodus_05")
    +ToggleMaintainViewMode()
    +
    +TestSection("Testing SHELL4 support")
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/balls.e.4.* database"))
    +OpenDatabase(data_path("exodus_test_data/aircraft.exoII"))
    +
    +AddPlot("Mesh", "Mesh")
    +DrawPlots()
    +v = View3DAttributes()
    +v.viewNormal = (-0.51221, 0.429119, 0.743974)
    +v.focus = (0, 0, -4)
    +v.viewUp = (0.222628, 0.902964, -0.367549)
    +v.viewAngle = 30
    +v.parallelScale = 66
    +v.nearPlane = -132
    +v.farPlane = 132
    +v.imagePan = (-0.0367114, 0.0152384)
    +v.imageZoom = 1.51675
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, -4)
    +SetView3D(v)
    +Test("exodus_06")
    +
    +TestSection("Testing support element block names")
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/aircraft.exoII"))
    +OpenDatabase(data_path("exodus_test_data/test.exo"))
    +
    +AddPlot("Subset", "ElementBlock")
    +AddPlot("Label", "ElementBlock")
    +DrawPlots()
    +Test("exodus_07")
    +
    +TestSection("Testing 2D \"NSIDED\" element type")
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/test.exo"))
    +OpenDatabase(data_path("exodus_test_data/porflow5_2_1_r1.exo"))
    +
    +AddPlot("Mesh","Mesh")
    +DrawPlots()
    +v = View2DAttributes()
    +v.windowCoords = (-115, 70, -80, 100)
    +SetView2D(v)
    +Test("exodus_08")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/porflow5_2_1_r1.exo"))
    +OpenDatabase(data_path("exodus_test_data/kassbohm1.exo"))
    +AddPlot("Mesh","Mesh")
    +DrawPlots()
    +v = View3DAttributes()
    +v.viewNormal = (-0.664463, 0.34202, 0.664463)
    +v.focus = (1, 1, 0.75)
    +v.viewUp = (0.241845, 0.939693, -0.241845)
    +v.parallelScale = 3.25
    +v.nearPlane = -6.5
    +v.farPlane = 6.5
    +v.imageZoom = 1.5
    +SetView3D(v)
    +Test("exodus_09")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/kassbohm1.exo"))
    +OpenDatabase(data_path("exodus_test_data/dodecahedron.exo"))
    +AddPlot("Mesh","Mesh")
    +DrawPlots()
    +ResetView()
    +Test("exodus_10")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/dodecahedron.exo"))
    +OpenDatabase(data_path("exodus_test_data/tri3.exo"))
    +AddPlot("Mesh","Mesh")
    +AddPlot("Pseudocolor","elem_map")
    +DrawPlots()
    +ResetView()
    +Test("exodus_11")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/tri3.exo"))
    +OpenDatabase(data_path("exodus_test_data/tri6.exo"))
    +AddPlot("Mesh","Mesh")
    +AddPlot("Pseudocolor","elem_map")
    +DrawPlots()
    +ResetView()
    +Test("exodus_12")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/tri6.exo"))
    +OpenDatabase(data_path("exodus_test_data/exo-plugin-problem-kassbohm.exo"))
    +AddPlot("Pseudocolor","SP1_S11_avg")
    +DrawPlots()
    +ResetView()
    +Test("exodus_13a")
    +DeleteAllPlots()
    +AddPlot("Pseudocolor","SP3_S11_avg")
    +DrawPlots()
    +Test("exodus_13b")
    +DeleteAllPlots()
    +AddPlot("Mesh","Mesh")
    +AddPlot("Subset","ElementBlock")
    +DrawPlots()
    +ResetView()
    +Test("exodus_13c")
    +
    +s = SILRestriction()
    +ebsets = s.SetsInCategory("ElementBlock")
    +s.TurnOffSet(ebsets[1]) # SHELL
    +SetPlotSILRestriction(s)
    +sa = SubsetAttributes()
    +sa.lineWidth = 4
    +SetPlotOptions(sa)
    +Test("exodus_14")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/exo-plugin-problem-kassbohm.exo"))
    +exoOpts = GetDefaultFileOpenOptions("Exodus")
    +exoOpts['Automagically Detect Compound Variables'] = 1
    +exoOpts['Use Material Convention'] = 1 # ALEGRA
    +SetDefaultFileOpenOptions("Exodus", exoOpts)
    +OpenDatabase(data_path("exodus_test_data/snl_data/mixed2d/explwire2d.exo.8.* database"))
    +AddPlot("FilledBoundary", "Materials")
    +DrawPlots()
    +ResetView()
    +Test("exodus_15")
    +TimeSliderSetState(5)
    +Test("exodus_16")
    +DeleteAllPlots()
    +AddPlot("Vector","VELOCITY")
    +DrawPlots()
    +Test("exodus_17")
    +TimeSliderNextState()
    +Test("exodus_18")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/snl_data/mixed2d/explwire2d.exo.8.* database"))
    +OpenDatabase(data_path("exodus_test_data/snl_data/mixed3d/coax3D-wedge-tm.exo.8.* database"))
    +AddPlot("FilledBoundary", "Materials")
    +DrawPlots()
    +ResetView()
    +Test("exodus_19")
    +TimeSliderSetState(4)
    +Test("exodus_20")
    +
    +s = SILRestriction()
    +msets = s.SetsInCategory("Materials")
    +s.TurnOffSet(msets[1])
    +SetPlotSILRestriction(s)
    +Test("exodus_21")
    +s.TurnOnSet(msets[1])
    +s.TurnOffSet(msets[2])
    +SetPlotSILRestriction(s)
    +Test("exodus_22")
    +
    +TestSection("High Order Elements")
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/snl_data/mixed3d/coax3D-wedge-tm.exo.8.* database"))
    +OpenDatabase(data_path("exodus_test_data/sphere-HEX20.ex2"))
    +AddPlot("Pseudocolor","coordx")
    +DrawPlots()
    +ResetView()
    +Test("exodus_23")
    +AddOperator("Slice")
    +DrawPlots()
    +Test("exodus_24")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/sphere-HEX20.ex2"))
    +OpenDatabase(data_path("exodus_test_data/sphere-HEX27.ex2"))
    +AddPlot("Pseudocolor","coordx")
    +DrawPlots()
    +ResetView()
    +Test("exodus_25")
    +AddOperator("Slice")
    +DrawPlots()
    +Test("exodus_26")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/sphere-HEX27.ex2"))
    +OpenDatabase(data_path("exodus_test_data/abl_551/abl_5km_5km_1km_neutral.e.8.* database"))
    +AddPlot("Contour","velocity_magnitude")
    +ca = ContourAttributes()
    +ca.contourMethod = ca.Value
    +ca.contourValue = (7)
    +SetPlotOptions(ca)
    +DrawPlots()
    +ResetView()
    +Test("exodus_27")
    +v = GetView3D()
    +v.RotateAxis(1,-30)
    +SetView3D(v)
    +Test("exodus_28")
    +v.RotateAxis(1,-30)
    +SetView3D(v)
    +Test("exodus_29")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/abl_551/abl_5km_5km_1km_neutral.e.8.* database"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_export_db.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_export_db.html new file mode 100644 index 000000000..8a7d0ac81 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_export_db.html @@ -0,0 +1,526 @@ + +Results for databases/export_db.py + +

    Results of VisIt Regression Test - databases/export_db

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    export_db_010.000.00
    export_db_020.000.00
    export_db_030.000.00
    export_db_040.000.00
    Test export of some surfaces.
    export_db_1_000.000.00
    export_db_1_010 modifications totalling 0 lines
    export_db_1_020.000.00
    export_db_1_030.000.00
    export_db_1_040.000.00
    export_db_1_050.000.00
    export_db_1_060.000.00
    export_db_1_070.000.00
    export_db_1_080.000.00
    export_db_1_090.000.00
    export_db_1_100.000.00
    export_db_1_110.000.00
    export_db_1_120.000.00
    export_db_1_130.000.00
    export_db_1_140.000.00
    export_db_1_150.000.00
    export_db_1_160.000.00
    export_db_1_170.000.00
    export_db_1_180.000.00
    export_db_1_190.000.00
    export_db_1_200.000.00
    Test export with write groups (parallel).
    export_db_2_000.010.00
    export_db_2_012.640.20
    export_db_2_01fn0 modifications totalling 0 lines
    export_db_2_024.580.30
    export_db_2_02fn0 modifications totalling 0 lines
    export_db_2_032.500.18
    export_db_2_03fn0 modifications totalling 0 lines
    export_db_2_043.210.18
    export_db_2_04fn0 modifications totalling 0 lines
    export_db_2_055.440.26
    export_db_2_05fn0 modifications totalling 0 lines
    export_db_2_062.950.19
    export_db_2_06fn0 modifications totalling 0 lines
    export_db_2_0710.720.62
    export_db_2_07fn0 modifications totalling 0 lines
    export_db_2_088.630.22
    export_db_2_08fn0 modifications totalling 0 lines
    export_db_2_0911.440.24
    export_db_2_09fn0 modifications totalling 0 lines
    export_db_2_102.640.20
    export_db_2_10fn0 modifications totalling 0 lines
    export_db_2_114.580.30
    export_db_2_11fn0 modifications totalling 0 lines
    export_db_2_122.500.18
    export_db_2_12fn0 modifications totalling 0 lines
    export_db_2_133.210.18
    export_db_2_13fn0 modifications totalling 0 lines
    export_db_2_145.440.26
    export_db_2_14fn0 modifications totalling 0 lines
    export_db_2_152.950.19
    export_db_2_15fn0 modifications totalling 0 lines
    export_db_2_1610.720.62
    export_db_2_16fn0 modifications totalling 0 lines
    export_db_2_178.630.22
    export_db_2_17fn0 modifications totalling 0 lines
    export_db_2_1811.440.24
    export_db_2_18fn0 modifications totalling 0 lines
    Test Tecplot multiblock export.
    export_db_3_000.000.00
    export_db_3_010.000.00
    export_db_3_020.000.00
    export_db_3_030.000.00
    export_db_3_040.000.00
    Test VTK multiblock export.
    export_db_4_010.000.00
    export_db_4_020.000.00
    export_db_4_030.000.00
    export_db_4_040.000.00
    export_db_4_050.000.00
    Test bov export with and without compression.
    test_bov_uncompressed.bov exists
     "True" .eq. "True" : True
    test_bov_uncompressed.bof exists
     "True" .eq. "True" : True
    export_db_5_010.000.00
    test_bov_gzip.bov exists
     "True" .eq. "True" : True
    test_bov_gzip.bof.gz exists
     "True" .eq. "True" : True
    export_db_5_020.000.00
    export_db_vtk_tets_ucd3d0 modifications totalling 0 lines
    export_db_vtk_tets_specmix_ucd0 modifications totalling 0 lines
    Test htg export.
    globe.dx.htg0 modifications totalling 0 lines
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_export_db_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_export_db_py.html new file mode 100644 index 000000000..79eeff4c5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_export_db_py.html @@ -0,0 +1,611 @@ +databases/export_db.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  export_db.py
    +#
    +#  Tests:      mesh      - 3D unstructured
    +#              plots     - Pseudocolor
    +#
    +#  Defect ID:  '6288, '6290, '6587, '6366
    +#
    +#  Programmer: Hank Childs
    +#  Date:       July 1, 2005
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Thu Sep 15 16:33:48 PDT 2005
    +#    Add test for exporting CMFEs as secondary variables ('6587)
    +#
    +#    Kathleen Bonnell, Tue May  2 08:58:01 PDT 2006
    +#    Corrected exported database names (from .visit to .vtk).
    +#
    +#    Hank Childs, Wed Mar 28 11:33:16 PDT 2007
    +#    Uncommented tests for '6366, which were previously checked in, but
    +#    commented out.
    +#
    +#    Mark C. Miller Fri Aug  8 09:11:44 PDT 2008
    +#    Fixed typo of missing '()' on call to DeleteAllPlots
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to switch between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Wed Feb 25 14:08:53 PST 2015
    +#    Add Mesh Plot for silo data exported as VTK, to test that mesh name
    +#    was properly exported.
    +#
    +#    Kathleen Biagas, Fri Feb 17, 2017
    +#    Update for new VTK export options.  Added test4, which tests the new
    +#    options.
    +#
    +#    Alister Maguire, Thu Apr 26 13:31:31 PDT 2018
    +#    Added test for bov compression.
    +#
    +#    Kathleen Biagas, Wed May 16, 2018
    +#    Use python's gzip instead of subprocess('gunzip') so test will run
    +#    correctly on Windows.  Modified AssertTrue calls to have text stating
    +#    what is being tested.
    +#
    +#    Mark C. Miller, Wed Apr 10 10:24:32 PDT 2019
    +#    Add tetrahedralize test
    +#
    +#    Mark C. Miller, Mon Jan 11 10:32:17 PST 2021
    +#    Replace AssertTrue() with TestValueEQ(..., True)
    +#
    +#    Kathleen Biagas, Thu Jun 24, 2021
    +#    Moved test for exporting and plotting different formats to new function.
    +#    Added testing of the export-and-plot with changed dirname. (#5462)
    +#    Removed cleanup_files since temporary files are written to the _run dir
    +#    which gets removed on exit (unless --no-cleanup specified).
    +#
    +#    Eric Brugger, Mon May 1 15:28:30 PST 2023
    +#    Added HTG export test.
    +#
    +# ----------------------------------------------------------------------------
    +import time
    +import os.path
    +import subprocess
    +import fnmatch
    +
    +def test0():
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    AddPlot("Pseudocolor", "t")
    +    DrawPlots()
    +
    +    # Set the export database attributes.
    +    e = ExportDBAttributes()
    +    e.db_type = "VTK"
    +    e.filename = "test_ex_db"
    +    ExportDatabase(e)
    +    time.sleep(1)
    +
    +    e.variables = ("u", "v")
    +    e.filename = "test_ex_db2"
    +    e.db_type = "Silo"
    +    ExportDatabase(e)
    +    time.sleep(1)
    +
    +    DeleteAllPlots()
    +#    CloseDatabase(silo_data_path("globe.silo"))
    +
    +    OpenDatabase("test_ex_db.vtk")
    +    AddPlot("Pseudocolor", "t")
    +    DrawPlots()
    +    Test("export_db_01")
    +    DeleteAllPlots()
    +#    CloseDatabase("test_ex_db.vtk")
    +
    +    OpenDatabase("test_ex_db2.silo")
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    Test("export_db_02")
    +    DeleteAllPlots()
    +#    CloseDatabase("test_ex_db2.silo")
    +
    +    OpenDatabase(silo_data_path("wave.visit"))
    +    DefineScalarExpression("cmfe", "conn_cmfe(coord(<%s:quadmesh>)[1], quadmesh)" % cmfe_silo_data_path("wave0020.silo"))
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    e.variables = ("cmfe")
    +    e.filename = "test_ex_db3"
    +    e.db_type = "VTK"
    +    ExportDatabase(e)
    +    time.sleep(1)
    +    DeleteAllPlots()
    +
    +    DeleteExpression("cmfe")
    +    OpenDatabase("test_ex_db3.vtk")
    +    AddPlot("Pseudocolor", "cmfe")
    +    DrawPlots()
    +    Test("export_db_03")
    +
    +    # Ensure meshname was written by creating mesh plot with old db's meshname
    +    AddPlot("Mesh", "quadmesh")
    +    DrawPlots()
    +    Test("export_db_04")
    +    DeleteAllPlots()
    +#    CloseDatabase("test_ex_db3.vtk")
    +#    CloseDatabase(silo_data_path("wave.visit"))
    +
    +def VTK_check_binary(filename):
    +    if (sys.version_info > (3, 0)):
    +        f = open(filename, "rt", encoding='utf-8', errors='ignore')
    +    else:
    +        f = open(filename, "rt")
    +    line = ""
    +    for i in (0,1,2):
    +        line = f.readline()
    +    b = "BINARY" == line[0:6]
    +    return b
    +
    +
    +# Test exporting some surfaces in other formats and plotting the results.
    +# e = ExportDBAttributes
    +# v = View3D
    +# a = AnnotationAttributes
    +# count = current test number (used for test names)
    +# usingWriteGroups = True or False
    +
    +def export_and_plot(e, v, a, count, usingWriteGroups):
    +
    +    # formats fields:
    +    # {DBName: (no-write-group exported name to read, write-group exported name to read, plot type, var name)}
    +
    +    formats = { "PLY":          ("export_PLY.ply",          "*.ply",         "Subset",      "PLY_mesh"),
    +                "RAW":          ("export_RAW.raw",          "*.raw",         "Subset",      "mesh"),
    +                "STL":          ("export_STL.stl",          "*.stl",         "Subset",      "STL_mesh"),
    +                "Silo":         ("export_Silo.silo",        "wg_Silo.silo",  "Pseudocolor", "u"),
    +                "Tecplot":      ("export_Tecplot.tec",      "*.tec",         "Pseudocolor", "u"),
    +                "VTK":          ("export_VTK.visit",        "wg_VTK.visit",  "Pseudocolor", "u"),
    +                "WavefrontOBJ": ("export_WavefrontOBJ.obj", "*.obj",         "Subset",      "OBJMesh"),
    +                "XYZ":          ("export_XYZ.xyz",          "*.xyz",         "Subset",      "mesh"),
    +                "Xmdv":         ("export_Xmdv.visit",       "wg_Xmdv.visit", "Pseudocolor", "u")
    +              }
    +
    +    keys = sorted(formats.keys())
    +    test_name_base="export_db_%d"%(2 if usingWriteGroups else 1)
    +
    +    # do all the exports
    +    for f in keys:
    +        export_name="%s_%s"%("wg" if usingWriteGroups else "export", f)
    +        e.db_type = f
    +        e.db_type_fullname = f + "_1.0"
    +        e.filename = export_name
    +        ExportDatabase(e)
    +        time.sleep(1)
    +
    +    # now attempt to read the exported files
    +    if usingWriteGroups:
    +        files = sorted(fnmatch.filter(os.listdir(e.dirname), "wg_*"))
    +    for f in keys:
    +        # Add the exported data in window 2.
    +        AddWindow()
    +
    +        pattern = formats[f][1] if usingWriteGroups else formats[f][0]
    +        filelist=""
    +        opendbs = []
    +
    +        if pattern[0] == '*':
    +            # Read all of the filenames
    +            ext = pattern[2:]
    +            for datafile in files:
    +                if datafile[-len(ext):] == ext:
    +                    if OpenDatabase(datafile):
    +                        AddPlot(formats[f][2], formats[f][3])
    +                        opendbs = opendbs + [datafile]
    +                        filelist = filelist + datafile + "\n"
    +            DrawPlots()
    +        else:
    +            if OpenDatabase(pjoin(e.dirname, pattern)):
    +                md = GetMetaData(pattern)
    +                AddPlot(formats[f][2], formats[f][3])
    +                DrawPlots()
    +                if usingWriteGroups:
    +                    opendbs = opendbs + [pattern]
    +                    filelist = filelist + pattern + "\n"
    +            else:
    +                if not usingWriteGroups:
    +                    files = os.listdir(e.dirname)
    +                    files.sort()
    +                    s = ""
    +                    for fn in files:
    +                        if pattern in fn:
    +                            s = fn + "\n"
    +                    TestText("files", s)
    +                else:
    +                    filelist = "ERROR: " + "\n".join(os.listdir("."))
    +
    +        t = CreateAnnotationObject("Text2D")
    +        t.text = f
    +        t.position = (0.01, 0.91)
    +        t.height = 0.07
    +        SetView3D(v)
    +        SetAnnotationAttributes(a)
    +        Test("%s_%02d"%(test_name_base, count))
    +        if usingWriteGroups:
    +            TestText("%s_%02dfn"%(test_name_base, count),filelist)
    +        count=count+1
    +
    +        # Clean up window 2
    +        DeleteAllPlots()
    +        #if not usingWriteGroups:
    +        #    CloseDatabase(pattern)
    +        #else:
    +        #    for db in opendbs:
    +        #        CloseDatabase(db)
    +        DeleteWindow()
    +
    +    return count
    +
    +def test1():
    +    TestSection("Test export of some surfaces.")
    +    maindb = silo_data_path("multi_rect3d.silo")
    +    OpenDatabase(maindb)
    +    DefineScalarExpression("rad", "magnitude(coords(mesh1))")
    +    AddPlot("Pseudocolor", "u")
    +    AddOperator("Isosurface")
    +    iso = IsosurfaceAttributes()
    +    iso.contourValue = (0.55, 1.455)
    +    iso.contourMethod = iso.Value
    +    iso.variable = "rad"
    +    SetOperatorOptions(iso)
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.467474, 0.301847, 0.830877)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.140705, 0.953323, -0.267166)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.imagePan = (-0.0154649, 0.027457)
    +    v.imageZoom = 1.14276
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 0.5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +    Test("export_db_1_00")
    +
    +    # Test VTK binary
    +    e = ExportDBAttributes()
    +    e.db_type = "VTK"
    +    e.filename = "binary_VTK"
    +    opts = GetExportOptions("VTK")
    +    #opts['Binary format'] = 1
    +    opts['FileFormat'] = 1
    +    ExportDatabase(e, opts)
    +    time.sleep(1)
    +    line = "The binary_VTK.0.vtk file is NOT binary.\n\n"
    +    visitfile = " ".join(open("binary_VTK.visit").readlines())
    +    if VTK_check_binary("binary_VTK/binary_VTK.0.vtk"):
    +        line = "The binary_VTK.0.vtk file is binary.\n\n"
    +    s = line + visitfile
    +    TestText("export_db_1_01", s)
    +
    +    a = GetAnnotationAttributes()
    +
    +    AddWindow()
    +    OpenDatabase("binary_VTK.visit")
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    t = CreateAnnotationObject("Text2D")
    +    t.text = "VTK"
    +    t.position = (0.01, 0.91)
    +    t.height = 0.07
    +    SetView3D(v)
    +    SetAnnotationAttributes(a)
    +    Test("export_db_1_02")
    +#    CloseDatabase("binary_VTK.visit")
    +    DeleteWindow()
    +
    +    # Test exporting some surfaces in other formats and plotting the results.
    +
    +    count = 3
    +    count = export_and_plot(e, v, a, count, False)
    +
    +    # change directory and retry the export_and_plot
    +    edir = pjoin(TestEnv.params["run_dir"], "exports")
    +    if not os.path.isdir(edir):
    +        os.mkdir(edir)
    +    e.dirname=edir
    +
    +    export_and_plot(e, v, a, count, False)
    +
    +    # Clean up window 1
    +    DeleteAllPlots()
    +#    CloseDatabase(maindb)
    +
    +def test2(writeGroupSize):
    +    TestSection("Test export with write groups (parallel).")
    +    maindb = silo_data_path("multi_rect3d.silo")
    +    OpenDatabase(maindb)
    +    DefineScalarExpression("rad", "magnitude(coords(mesh1))")
    +    AddPlot("Pseudocolor", "u")
    +    AddOperator("Isosurface")
    +    iso = IsosurfaceAttributes()
    +    iso.contourValue = (0.55, 1.455)
    +    iso.contourMethod = iso.Value
    +    iso.variable = "rad"
    +    SetOperatorOptions(iso)
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.467474, 0.301847, 0.830877)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.140705, 0.953323, -0.267166)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.imagePan = (-0.0154649, 0.027457)
    +    v.imageZoom = 1.14276
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 0.5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +    Test("export_db_2_00")
    +
    +    a = GetAnnotationAttributes()
    +
    +    # Test exporting some surfaces in other formats and plotting the results.
    +    e = ExportDBAttributes()
    +    e.writeUsingGroups = 1
    +    e.groupSize = writeGroupSize
    +    count = 1
    +    count = export_and_plot(e, v, a, count, True)
    +
    +    # change directory and retry the export_and_plot
    +    edir = pjoin(TestEnv.params["run_dir"], "exports_2")
    +    if not os.path.isdir(edir):
    +        os.mkdir(edir)
    +    e.dirname=edir
    +
    +    export_and_plot(e, v, a, count, True)
    +
    +    # Clean up window 1
    +    DeleteAllPlots()
    +#    CloseDatabase(maindb)
    +
    +def test3():
    +    TestSection("Test Tecplot multiblock export.")
    +    maindb = silo_data_path("multi_rect3d.silo")
    +    OpenDatabase(maindb)
    +    DefineScalarExpression("rad", "magnitude(coords(mesh))")
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.467474, 0.301847, 0.830877)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.140705, 0.953323, -0.267166)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.imagePan = (-0.0154649, 0.027457)
    +    v.imageZoom = 1.14276
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 0.5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +    Test("export_db_3_00")
    +    a = GetAnnotationAttributes()
    +
    +    e = ExportDBAttributes()
    +    e.db_type = "Tecplot"
    +    e.db_type_fullname = "Tecplot_1.0"
    +    e.filename = "rectTecplot"
    +    e.writeUsingGroups = 0
    +    e.variables = ("default", "v", "rad")
    +    ExportDatabase(e)
    +    time.sleep(1)
    +
    +    # Add the exported database in window 2
    +    AddWindow()
    +    OpenDatabase("rectTecplot.tec")
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    SetAnnotationAttributes(a)
    +    SetView3D(v)
    +    Test("export_db_3_01")
    +    ChangeActivePlotsVar("v")
    +    Test("export_db_3_02")
    +    ChangeActivePlotsVar("rad")
    +    Test("export_db_3_03")
    +
    +    # Make sure we have volume data
    +    AddOperator("ThreeSlice")
    +    atts = ThreeSliceAttributes()
    +    atts.y = 0.5
    +    atts.x = 0.5
    +    atts.z = 0.5
    +    SetOperatorOptions(atts)
    +    DrawPlots()
    +    Test("export_db_3_04")
    +
    +    # Clean up window 2
    +    DeleteAllPlots()
    +#    CloseDatabase("rectTecplot.tec")
    +    DeleteWindow()
    +
    +    # Back to window 1
    +    DeleteAllPlots()
    +#    CloseDatabase(maindb)
    +
    +def test4():
    +    TestSection("Test VTK multiblock export.")
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    Test("export_db_4_01")
    +
    +    e = ExportDBAttributes()
    +    e.db_type = "VTK"
    +    e.filename = "multi_rect3d_LA"
    +    opts = GetExportOptions("VTK")
    +    opts['FileFormat'] = "Legacy Ascii"
    +    ExportDatabase(e, opts)
    +    time.sleep(1)
    +    ReplaceDatabase("multi_rect3d_LA.visit")
    +    Test("export_db_4_02")
    +
    +    e.filename = "multi_rect3d_LB"
    +    opts['FileFormat'] = "Legacy Binary"
    +    ExportDatabase(e, opts)
    +    time.sleep(1)
    +    ReplaceDatabase("multi_rect3d_LB.visit")
    +    Test("export_db_4_03")
    +
    +    e.filename = "multi_rect3d_XA"
    +    opts['FileFormat'] = "XML Ascii"
    +    ExportDatabase(e, opts)
    +    time.sleep(1)
    +    ReplaceDatabase("multi_rect3d_XA.vtm")
    +    Test("export_db_4_04")
    +
    +    e.filename = "multi_rect3d_XB"
    +    opts['FileFormat'] = "XML Binary"
    +    ExportDatabase(e, opts)
    +    time.sleep(1)
    +    ReplaceDatabase("multi_rect3d_XB.vtm")
    +    Test("export_db_4_05")
    +
    +    DeleteAllPlots()
    +
    +def test_bov():
    +    TestSection("Test bov export with and without compression.")
    +    maindb = silo_data_path("noise.silo")
    +    OpenDatabase(maindb)
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +
    +    #
    +    # test w/o compression
    +    #
    +    e = ExportDBAttributes()
    +    e.db_type = "BOV"
    +    e.db_type_fullname = "BOV_1.0"
    +    e.filename = "test_bov_uncompressed"
    +    e.variables = ("default")
    +    opts = GetExportOptions("BOV")
    +    opts["Compression"] = "None"
    +    ExportDatabase(e, opts)
    +    time.sleep(1)
    +    TestValueEQ("test_bov_uncompressed.bov exists", os.path.isfile("test_bov_uncompressed.bov"), True)
    +    TestValueEQ("test_bov_uncompressed.bof exists", os.path.isfile("test_bov_uncompressed.bof"), True)
    +    ReplaceDatabase("test_bov_uncompressed.bov")
    +    Test("export_db_5_01")
    +
    +    #
    +    # test w gzip compression
    +    #
    +    e.filename = "test_bov_gzip"
    +    opts["Compression"] = "gzip"
    +    ExportDatabase(e, opts)
    +    time.sleep(1)
    +    TestValueEQ("test_bov_gzip.bov exists", os.path.isfile("test_bov_gzip.bov"), True)
    +    TestValueEQ("test_bov_gzip.bof.gz exists", os.path.isfile("test_bov_gzip.bof.gz"), True)
    +    ReplaceDatabase("test_bov_gzip.bov")
    +    Test("export_db_5_02")
    +
    +    DeleteAllPlots()
    +
    +def test_vtk_tetrahedralize():
    +    dbs_noext = ["ucd3d", "specmix_ucd"]
    +    for db_noext in dbs_noext:
    +        db = "%s.silo"%db_noext
    +        OpenDatabase(silo_data_path(db))
    +        AddPlot("Pseudocolor","d") # both dbs have variable 'd'
    +        DrawPlots()
    +        Query("NumZones")
    +        nzOrig = int(GetQueryOutputValue())
    +
    +        # Test VTK binary
    +        e = ExportDBAttributes()
    +        e.db_type = "VTK"
    +        e.filename = "%s_ascii_VTK_tets"%db_noext
    +        opts = GetExportOptions("VTK")
    +        opts['FileFormat'] = "Legacy Ascii"
    +        opts['Tetrahedralize'] = True
    +        ExportDatabase(e, opts)
    +        time.sleep(1)
    +        DeleteAllPlots()
    +#        CloseDatabase(silo_data_path(db))
    +        OpenDatabase("%s_ascii_VTK_tets.vtk"%db_noext)
    +        AddPlot("Pseudocolor","d")
    +        DrawPlots()
    +        Query("NumZones")
    +        nzNew = int(GetQueryOutputValue())
    +        TestText("export_db_vtk_tets_%s"%db_noext, "Ratio of exported zone count to original is %d"%(nzNew/nzOrig))
    +        DeleteAllPlots()
    +
    +def test_htg():
    +    TestSection("Test htg export.")
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    AddPlot("Pseudocolor", "dx")
    +    AddOperator("Resample")
    +    resample = ResampleAttributes()
    +    resample.useExtents = 0
    +    resample.startX = -10
    +    resample.endX = 10
    +    resample.samplesX = 16
    +    resample.startY = -10
    +    resample.endY = 10
    +    resample.samplesY = 16
    +    resample.is3D = 1
    +    resample.startZ = -10
    +    resample.endZ = 10
    +    resample.samplesZ = 16
    +    resample.defaultValue = -10000
    +    resample.distributedResample = 0
    +    resample.cellCenteredOutput = 1
    +    SetOperatorOptions(resample)
    +    DrawPlots()
    +
    +    e = ExportDBAttributes()
    +    e.db_type = "HTG"
    +    e.filename = "globe"
    +    opts = GetExportOptions("HTG")
    +    opts['Blank value'] = -10000
    +    ExportDatabase(e, opts)
    +
    +    htg_text = Path('globe.dx.htg').read_text()
    +
    +    TestText("globe.dx.htg", htg_text)
    +
    +    DeleteAllPlots()
    +
    +def main():
    +    test0()
    +    test1()
    +    if GetEngineProperties(GetEngineList()[0]).numProcessors > 1:
    +        # We just use 2 processors normally so let's set the write group size
    +        # to 1 so each rank will write its own data using a different write
    +        # group. For certain formats, there will be 1 data file per write
    +        # group, or in this case 2 output files.
    +        test2(1)
    +    test3()
    +    test4()
    +    test_bov()
    +    test_vtk_tetrahedralize()
    +    test_htg()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ffp.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ffp.html new file mode 100644 index 000000000..fb74be76f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ffp.html @@ -0,0 +1,60 @@ + +Results for databases/ffp.py + +

    Results of VisIt Regression Test - databases/ffp

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ffp_000.000.00
    ffp_010.000.00
    ffp_020.000.00
    ffp_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ffp_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ffp_py.html new file mode 100644 index 000000000..349afd899 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_ffp_py.html @@ -0,0 +1,260 @@ +databases/ffp.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ffp.py
    +#
    +#  Programmer: Olivier Cessenat
    +#  Tue May  8 21:49:21 PDT 2018
    +#
    +#  Modifications:
    +#     Eddie Rusu, Tue Apr 13 12:08:59 PDT 2021
    +#     Changed Pseudocolor CurrentPlot to ActualData.
    +# ----------------------------------------------------------------------------
    +TurnOffAllAnnotations()
    +
    +OpenDatabase(data_path("ffp_test_data/nasa_almond_pec.ffp.gz"), 0, "ffp_1.0")
    +AddPlot("Pseudocolor", "cffp", 1, 1)
    +# Begin spontaneous state
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.160095, 0.96257, 0.218697)
    +View3DAtts.focus = (0, 0, 0)
    +View3DAtts.viewUp = (-0.983472, 0.136561, 0.118883)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 3.4641
    +View3DAtts.nearPlane = -6.9282
    +View3DAtts.farPlane = 6.9282
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1.21
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (0, 0, 0)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +View3DAtts.windowValid = 1
    +SetView3D(View3DAtts)
    +# End spontaneous state
    +
    +DrawPlots()
    +SaveWindowAtts = SaveWindowAttributes()
    +SaveWindowAtts.outputToCurrentDirectory = 1
    +SaveWindowAtts.outputDirectory = "."
    +SaveWindowAtts.fileName = "nasa_almond_pec"
    +SaveWindowAtts.family = 1
    +SaveWindowAtts.format = SaveWindowAtts.PNG  # BMP, CURVE, JPEG, OBJ, PNG, POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA, VTK, PLY
    +SaveWindowAtts.width = 1024
    +SaveWindowAtts.height = 1024
    +SaveWindowAtts.screenCapture = 0
    +SaveWindowAtts.saveTiled = 0
    +SaveWindowAtts.quality = 80
    +SaveWindowAtts.progressive = 0
    +SaveWindowAtts.binary = 0
    +SaveWindowAtts.stereo = 0
    +SaveWindowAtts.compression = SaveWindowAtts.PackBits  # None, PackBits, Jpeg, Deflate
    +SaveWindowAtts.forceMerge = 0
    +SaveWindowAtts.resConstraint = SaveWindowAtts.ScreenProportions  # NoConstraint, EqualWidthHeight, ScreenProportions
    +SaveWindowAtts.advancedMultiWindowSave = 0
    +SetSaveWindowAttributes(SaveWindowAtts)
    +Test("ffp_00", SaveWindowAtts)
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("ffp_test_data/nasa_almond_pec.ffp.gz"))
    +
    +# Test standard ffp format
    +OpenDatabase(data_path("ffp_test_data/sphereMie.ffp"), 0)
    +AddPlot("Pseudocolor", "mffp", 1, 1)
    +PseudocolorAtts = PseudocolorAttributes()
    +PseudocolorAtts.scaling = PseudocolorAtts.Skew  # Linear, Log, Skew
    +PseudocolorAtts.skewFactor = 10000
    +PseudocolorAtts.limitsMode = PseudocolorAtts.OriginalData  # OriginalData, ActualData
    +PseudocolorAtts.minFlag = 0
    +PseudocolorAtts.min = 0
    +PseudocolorAtts.maxFlag = 0
    +PseudocolorAtts.max = 1
    +PseudocolorAtts.centering = PseudocolorAtts.Natural  # Natural, Nodal, Zonal
    +PseudocolorAtts.colorTableName = "hot"
    +PseudocolorAtts.invertColorTable = 0
    +PseudocolorAtts.opacityType = PseudocolorAtts.FullyOpaque  # ColorTable, FullyOpaque, Constant, Ramp, VariableRange
    +PseudocolorAtts.opacityVariable = ""
    +PseudocolorAtts.opacity = 1
    +PseudocolorAtts.opacityVarMin = 0
    +PseudocolorAtts.opacityVarMax = 1
    +PseudocolorAtts.opacityVarMinFlag = 0
    +PseudocolorAtts.opacityVarMaxFlag = 0
    +PseudocolorAtts.pointSize = 0.05
    +PseudocolorAtts.pointType = PseudocolorAtts.Point  # Box, Axis, Icosahedron, Octahedron, Tetrahedron, SphereGeometry, Point, Sphere
    +PseudocolorAtts.pointSizeVarEnabled = 0
    +PseudocolorAtts.pointSizeVar = "default"
    +PseudocolorAtts.pointSizePixels = 2
    +PseudocolorAtts.lineType = PseudocolorAtts.Line  # Line, Tube, Ribbon
    +PseudocolorAtts.lineWidth = 0
    +#PseudocolorAtts.tubeDisplayDensity = 10
    +PseudocolorAtts.tubeRadiusSizeType = PseudocolorAtts.FractionOfBBox  # Absolute, FractionOfBBox
    +PseudocolorAtts.tubeRadiusAbsolute = 0.125
    +PseudocolorAtts.tubeRadiusBBox = 0.005
    +#PseudocolorAtts.varyTubeRadius = 0
    +#PseudocolorAtts.varyTubeRadiusVariable = ""
    +#PseudocolorAtts.varyTubeRadiusFactor = 10
    +#PseudocolorAtts.endPointType = PseudocolorAtts.NONE  # None, Tails, Heads, Both
    +#PseudocolorAtts.endPointStyle = PseudocolorAtts.Spheres  # Spheres, Cones
    +PseudocolorAtts.endPointRadiusSizeType = PseudocolorAtts.FractionOfBBox  # Absolute, FractionOfBBox
    +PseudocolorAtts.endPointRadiusAbsolute = 1
    +PseudocolorAtts.endPointRadiusBBox = 0.005
    +PseudocolorAtts.endPointRatio = 2
    +PseudocolorAtts.renderSurfaces = 1
    +PseudocolorAtts.renderWireframe = 0
    +PseudocolorAtts.renderPoints = 0
    +PseudocolorAtts.smoothingLevel = 0
    +PseudocolorAtts.legendFlag = 1
    +PseudocolorAtts.lightingFlag = 1
    +SetPlotOptions(PseudocolorAtts)
    +DrawPlots()
    +# Begin spontaneous state
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.782512, 0.282334, 0.554944)
    +View3DAtts.focus = (0, 0, -0.454083)
    +View3DAtts.viewUp = (-0.175089, 0.955097, -0.239027)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 0.557719
    +View3DAtts.nearPlane = -1.11544
    +View3DAtts.farPlane = 1.11544
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (0, 0, -0.454083)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +View3DAtts.windowValid = 1
    +SetView3D(View3DAtts)
    +# End spontaneous state
    +
    +SaveWindowAtts = SaveWindowAttributes()
    +SaveWindowAtts.outputToCurrentDirectory = 1
    +SaveWindowAtts.outputDirectory = "."
    +SaveWindowAtts.fileName = "sphereMie"
    +SaveWindowAtts.family = 1
    +SaveWindowAtts.format = SaveWindowAtts.PNG  # BMP, CURVE, JPEG, OBJ, PNG, POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA, VTK, PLY
    +SaveWindowAtts.width = 1024
    +SaveWindowAtts.height = 1024
    +SaveWindowAtts.screenCapture = 0
    +SaveWindowAtts.saveTiled = 0
    +SaveWindowAtts.quality = 80
    +SaveWindowAtts.progressive = 0
    +SaveWindowAtts.binary = 0
    +SaveWindowAtts.stereo = 0
    +SaveWindowAtts.compression = SaveWindowAtts.PackBits  # None, PackBits, Jpeg, Deflate
    +SaveWindowAtts.forceMerge = 0
    +SaveWindowAtts.resConstraint = SaveWindowAtts.ScreenProportions  # NoConstraint, EqualWidthHeight, ScreenProportions
    +SaveWindowAtts.advancedMultiWindowSave = 0
    +SetSaveWindowAttributes(SaveWindowAtts)
    +Test("ffp_01", SaveWindowAtts)
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("ffp_test_data/sphereMie.ffp"))
    +OpenDatabase(data_path("ffp_test_data/mksn10.ffp"))
    +AddPlot("Pseudocolor", "sffp", 1, 1)
    +AddPlot("Mesh", "sphere", 1, 1)
    +DrawPlots()
    +
    +# Begin spontaneous state
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.382511, -0.663647, 0.642852)
    +View3DAtts.focus = (0, 0, 0)
    +View3DAtts.viewUp = (-0.146698, 0.643316, 0.751415)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 1.73205
    +View3DAtts.nearPlane = -3.4641
    +View3DAtts.farPlane = 3.4641
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (0, 0, 0)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +View3DAtts.windowValid = 1
    +SetView3D(View3DAtts)
    +# End spontaneous state
    +
    +SaveWindowAtts = SaveWindowAttributes()
    +SaveWindowAtts.outputToCurrentDirectory = 1
    +SaveWindowAtts.outputDirectory = "."
    +SaveWindowAtts.fileName = "mksn10"
    +SaveWindowAtts.family = 1
    +SaveWindowAtts.format = SaveWindowAtts.PNG  # BMP, CURVE, JPEG, OBJ, PNG, POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA, VTK, PLY
    +SaveWindowAtts.width = 1024
    +SaveWindowAtts.height = 1024
    +SaveWindowAtts.screenCapture = 0
    +SaveWindowAtts.saveTiled = 0
    +SaveWindowAtts.quality = 80
    +SaveWindowAtts.progressive = 0
    +SaveWindowAtts.binary = 0
    +SaveWindowAtts.stereo = 0
    +SaveWindowAtts.compression = SaveWindowAtts.PackBits  # None, PackBits, Jpeg, Deflate
    +SaveWindowAtts.forceMerge = 0
    +SaveWindowAtts.resConstraint = SaveWindowAtts.ScreenProportions  # NoConstraint, EqualWidthHeight, ScreenProportions
    +SaveWindowAtts.advancedMultiWindowSave = 0
    +SetSaveWindowAttributes(SaveWindowAtts)
    +Test("ffp_02", SaveWindowAtts)
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("ffp_test_data/mksn10.ffp"))
    +OpenDatabase(data_path("ffp_test_data/mksn20.ffp"))
    +AddPlot("Pseudocolor", "cffp", 1, 1)
    +AddPlot("Mesh", "cphere", 1, 1)
    +DrawPlots()
    +
    +# Begin spontaneous state
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (-0.187617, -0.963273, 0.192107)
    +View3DAtts.focus = (0, 0, 0)
    +View3DAtts.viewUp = (0.0378766, 0.188339, 0.981373)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 3.4641
    +View3DAtts.nearPlane = -6.9282
    +View3DAtts.farPlane = 6.9282
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (0, 0, 0)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +View3DAtts.windowValid = 1
    +SetView3D(View3DAtts)
    +# End spontaneous state
    +
    +SaveWindowAtts = SaveWindowAttributes()
    +SaveWindowAtts.outputToCurrentDirectory = 1
    +SaveWindowAtts.outputDirectory = "."
    +SaveWindowAtts.fileName = "mksn20"
    +SaveWindowAtts.family = 1
    +SaveWindowAtts.format = SaveWindowAtts.PNG  # BMP, CURVE, JPEG, OBJ, PNG, POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA, VTK, PLY
    +SaveWindowAtts.width = 1024
    +SaveWindowAtts.height = 1024
    +SaveWindowAtts.screenCapture = 0
    +SaveWindowAtts.saveTiled = 0
    +SaveWindowAtts.quality = 80
    +SaveWindowAtts.progressive = 0
    +SaveWindowAtts.binary = 0
    +SaveWindowAtts.stereo = 0
    +SaveWindowAtts.compression = SaveWindowAtts.PackBits  # None, PackBits, Jpeg, Deflate
    +SaveWindowAtts.forceMerge = 0
    +SaveWindowAtts.resConstraint = SaveWindowAtts.ScreenProportions  # NoConstraint, EqualWidthHeight, ScreenProportions
    +SaveWindowAtts.advancedMultiWindowSave = 0
    +SetSaveWindowAttributes(SaveWindowAtts)
    +Test("ffp_03", SaveWindowAtts)
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("ffp_test_data/mksn20.ffp"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_flash.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_flash.html new file mode 100644 index 000000000..63ab0342b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_flash.html @@ -0,0 +1,42 @@ + +Results for databases/flash.py + +

    Results of VisIt Regression Test - databases/flash

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    flash_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_flash_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_flash_py.html new file mode 100644 index 000000000..efbc33842 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_flash_py.html @@ -0,0 +1,46 @@ +databases/flash.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  flash.py 
    +#
    +#  Tests:      FLASH data 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       March6, 2007 
    +#
    +#  Modifications:
    +#
    +#    Hank Childs and Randy Hudson, Sun Mar  2 15:38:05 PST 2008
    +#    Reflect new naming scheme.
    +#
    +#    Hank Childs, Tue Jan 19 13:29:29 PST 2010
    +#    Go back to original naming scheme.
    +#
    +# ----------------------------------------------------------------------------
    +import os, string
    +
    +RequiredDatabasePlugin("FLASH")
    +
    +SetTryHarderCyclesTimes(1)
    +# the following open command doesn't work (#7873)
    +##OpenDatabase(data_path("FLASH_test_data/orbit_hdf5_chk_0* database"))
    +
    +OpenDatabase(data_path("FLASH_test_data/orbit_hdf5_chk_0000"),0, "FLASH_1.0")
    +
    +
    +AddPlot("Pseudocolor","pden")
    +AddOperator("Clip")
    +c = ClipAttributes()
    +c.funcType = c.Plane
    +c.plane1Origin = (0.5, 0.5, 0.4)
    +c.plane1Normal = (0, 0, 1)
    +SetOperatorOptions(c)
    +DrawPlots()
    +v=GetView3D()
    +v.viewNormal=(-0.707107, 0, 0.707107)
    +v.viewUp=(0, 1, 0)
    +SetView3D(v)
    +Test("flash_01")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_global_node_ids.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_global_node_ids.html new file mode 100644 index 000000000..7c7872849 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_global_node_ids.html @@ -0,0 +1,96 @@ + +Results for databases/global_node_ids.py + +

    Results of VisIt Regression Test - databases/global_node_ids

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    global_node_ids010.000.00
    global_node_ids020.000.00
    global_node_ids030.000.00
    global_node_ids040.000.00
    global_node_ids050.000.00
    global_node_ids060.000.00
    global_node_ids070.000.00
    global_node_ids080.000.00
    global_node_ids090.000.00
    global_node_ids100.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_global_node_ids_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_global_node_ids_py.html new file mode 100644 index 000000000..a74f30aa0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_global_node_ids_py.html @@ -0,0 +1,91 @@ +databases/global_node_ids.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  global_node_ids.py
    +#
    +#  Tests:      mesh      - 3D unstructured,multi-domain, global node ids, but
    +#                          no ghost zones.
    +#              plots     - mat subset, domain subset
    +#
    +#  Defect ID:  '5448
    +#
    +#  Programmer: Hank Childs
    +#  Date:       October 5, 2004
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +view = View3DAttributes()
    +view.viewNormal = (0.557976, 0.651128, 0.514485)
    +view.focus = (0.5, 0.5, 0.5)
    +view.viewUp = (-0.0955897, 0.666272, -0.739557)
    +view.viewAngle = 30
    +view.parallelScale = 0.866025
    +view.nearPlane = -1.73205
    +view.farPlane = 1.73205
    +view.perspective = 1
    +SetView3D(view)
    +
    +OpenDatabase(silo_data_path("global_node.silo"))
    +
    +AddPlot("FilledBoundary", "mat")
    +DrawPlots()
    +
    +# Test the normal material plot.
    +Test("global_node_ids01")
    +
    +# Make sure that the ghost zones were generated correctly.
    +view.nearPlane = -0.3
    +SetView3D(view)
    +Test("global_node_ids02")
    +
    +view.nearPlane = -1.73205
    +SetView3D(view)
    +
    +TurnMaterialsOff("1")
    +Test("global_node_ids03")
    +
    +TurnMaterialsOff()
    +TurnMaterialsOn("1")
    +Test("global_node_ids04")
    +
    +DeleteAllPlots()
    +
    +# Test that the SIL from the previous plot is preserved.
    +AddPlot("Subset", "domains")
    +DrawPlots()
    +Test("global_node_ids05")
    +
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "dist")
    +DrawPlots()
    +Test("global_node_ids06")
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +Test("global_node_ids07")
    +
    +DeleteAllPlots()
    +AddPlot("Contour", "dist")
    +DrawPlots()
    +Test("global_node_ids08")
    +
    +DefineScalarExpression("dist2", "recenter(dist)")
    +ChangeActivePlotsVar("dist2")
    +Test("global_node_ids09")
    +
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "dist2")
    +DrawPlots()
    +Test("global_node_ids10")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_h5part.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_h5part.html new file mode 100644 index 000000000..8ac7fed20 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_h5part.html @@ -0,0 +1,60 @@ + +Results for databases/h5part.py + +

    Results of VisIt Regression Test - databases/h5part

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    h5part_010.000.00
    h5part_020.000.00
    h5part_030.000.00
    h5part_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_h5part_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_h5part_py.html new file mode 100644 index 000000000..6436943bf --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_h5part_py.html @@ -0,0 +1,64 @@ +databases/h5part.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  h5part.py
    +#
    +#  Programmer: Gunther Weber 
    +#  Date:       January, 2009 
    +#
    +#  Modifications:
    +#    Mark C. Miller, Wed Jan 21 09:36:13 PST 2009
    +#    Took Gunther's original code and integrated it with test suite.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("H5Part")
    +
    +TurnOffAllAnnotations()
    +
    +OpenDatabase(data_path("h5part_test_data/sample.h5part"), 0)
    +
    +AddPlot("Pseudocolor", "GaussianField", 1, 0)
    +DrawPlots()
    +Test("h5part_01")
    +
    +ChangeActivePlotsVar("LinearField")
    +View3DAtts = GetView3D()
    +View3DAtts.viewNormal = (1.000000, 0.000000, 0.0000000)
    +View3DAtts.focus = (31.5, 31.5, 31.5)
    +View3DAtts.viewUp = (0.000000, 1.000000, 0.0000000)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 54.5596
    +View3DAtts.nearPlane = -109.119
    +View3DAtts.farPlane = 109.119
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (31.5, 31.5, 31.5)
    +SetView3D(View3DAtts)
    +Test("h5part_02")
    +
    +DeleteActivePlots()
    +AddPlot("Pseudocolor", "px", 1, 0)
    +PseudocolorAtts = PseudocolorAttributes()
    +PseudocolorAtts.pointType = PseudocolorAtts.Sphere
    +PseudocolorAtts.pointSize = 1.5
    +SetPlotOptions(PseudocolorAtts)
    +DrawPlots()
    +Test("h5part_03")
    +
    +AddPlot("Pseudocolor", "LinearField", 1, 0)
    +AddOperator("Slice", 0)
    +SliceAtts = SliceAttributes()
    +SliceAtts.originType = SliceAtts.Intercept
    +SliceAtts.originIntercept = 30
    +SliceAtts.axisType = SliceAtts.XAxis
    +SliceAtts.project2d = 0
    +SliceAtts.meshName = "particles"
    +SetOperatorOptions(SliceAtts)
    +DrawPlots()
    +Test("h5part_04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_history.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_history.html new file mode 100644 index 000000000..dac1c5e46 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_history.html @@ -0,0 +1,48 @@ + +Results for databases/history.py + +

    Results of VisIt Regression Test - databases/history

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    history_010.000.00
    history_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_history_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_history_py.html new file mode 100644 index 000000000..4781f4d52 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_history_py.html @@ -0,0 +1,47 @@ +databases/history.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial
    +#  CLASSES: nightly
    +#
    +#  Test Case:  history.py 
    +#
    +#  Tests:      variables that only have values for real zones (not ghost zones)
    +#              Some history variables have this property.
    +#
    +#  Programmer: Hank Childs
    +#  Date:       January 9, 2004
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +
    +#
    +# Test that we can detect that there is a problem and add 0's.
    +#
    +AddPlot("Pseudocolor","hist")
    +DrawPlots()
    +
    +v=GetView3D()
    +v.viewNormal=(-0.35, -0.47, -0.8)
    +SetView3D(v)
    +Test("history_01")
    +
    +#
    +# Doing material selection flexes the code in a different way (it confirms
    +# that we can detect the problem immediately upon reading it from the disk).
    +# Test that that works correctly as well.
    +#
    +
    +sil = SILRestriction()
    +sets = sil.SetsInCategory("mat1")
    +sil.TurnOffSet(sets[0])
    +sil.TurnOffSet(sets[2])
    +SetPlotSILRestriction(sil)
    +Test("history_02")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_image.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_image.html new file mode 100644 index 000000000..d46a94605 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_image.html @@ -0,0 +1,60 @@ + +Results for databases/image.py + +

    Results of VisIt Regression Test - databases/image

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    image_010.000.00
    image_020.000.00
    image_030.000.00
    image_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_image_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_image_py.html new file mode 100644 index 000000000..7d18cb289 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_image_py.html @@ -0,0 +1,90 @@ +databases/image.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  image.py 
    +#
    +#  Defect ID:  '6277
    +#
    +#  Tests:      image reader and data selections 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       November 4, 2004 
    +#
    +#  Modifications:
    +# 
    +#    Hank Childs, Fri May 20 15:08:37 PDT 2005
    +#    Added tests for image volumes.
    +#
    +#    Jeremy Meredith, Thu Jan 14 12:09:57 EST 2010
    +#    Changed the way the imgvol test file was created.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +#
    +# we'll make all the pc plots gray scale
    +#
    +pcatts=PseudocolorAttributes()
    +pcatts.colorTableName="gray"
    +SetDefaultPlotOptions(pcatts)
    +
    +#
    +# test ability to read an image as usual 
    +#
    +OpenDatabase(data_path("Image_test_data/manhattan.jpg"))
    +
    +
    +AddPlot("Pseudocolor","intensity")
    +DrawPlots()
    +Test("image_01")
    +
    +DeleteAllPlots()
    +
    +#
    +# Test a data selection on a format that cannot
    +# handle it during read. The selection will
    +# occur after WHOLE image is read
    +#
    +AddPlot("Pseudocolor","intensity")
    +box=BoxAttributes()
    +box.minx = 0
    +box.maxx = 100
    +box.miny = 0
    +box.maxy = 100
    +AddOperator("Box")
    +SetOperatorOptions(box)
    +DrawPlots()
    +Test("image_02")
    +
    +DeleteAllPlots()
    +
    +#
    +# Now test a data selection on a format that can
    +# handle selection during read 
    +#
    +OpenDatabase(data_path("Image_test_data/manhattan.pnm"))
    +
    +AddPlot("Pseudocolor","intensity")
    +AddOperator("Box")
    +SetOperatorOptions(box)
    +DrawPlots()
    +Test("image_03")
    +
    +DeleteAllPlots()
    +f = open(data_path("Image_test_data/manhattan.imgvol"), "wt")
    +f.write("Z_STEP:60\n")
    +for i in range(3):
    +   f.write("manhattan.jpg\n")
    +f.close()
    +OpenDatabase(data_path("Image_test_data/manhattan.imgvol"))
    +
    +AddPlot("Contour", "green")
    +c = ContourAttributes()
    +c.contourMethod = c.Value
    +c.contourValue = (128)
    +SetPlotOptions(c)
    +DrawPlots()
    +Test("image_04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_imgvol.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_imgvol.html new file mode 100644 index 000000000..d3540905c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_imgvol.html @@ -0,0 +1,78 @@ + +Results for databases/imgvol.py + +

    Results of VisIt Regression Test - databases/imgvol

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    imgvol_010.000.00
    imgvol_020.000.00
    imgvol_030.000.00
    imgvol_040.000.00
    imgvol_050.000.00
    imgvol_060.000.00
    imgvol_070.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_imgvol_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_imgvol_py.html new file mode 100644 index 000000000..220741926 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_imgvol_py.html @@ -0,0 +1,67 @@ +databases/imgvol.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  imgvol.py 
    +#
    +#  Tests:      imgvol reader
    +#
    +#  Mark C. Miller, Fri Apr 23 23:01:06 PDT 2010
    +#
    +#  Modifications:
    +# 
    +#    Mark C. Miller, Sun Apr 25 21:30:29 PDT 2010
    +#    Added missing Slice operator for contour plot.
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(data_path("imgvol_test_data/tcup.imgvol"))
    +
    +AddPlot("Pseudocolor","intensity")
    +sa=SliceAttributes()
    +sa.originType = sa.Percent
    +sa.originPercent = 50
    +AddOperator("Slice")
    +SetOperatorOptions(sa)
    +DrawPlots()
    +Test("imgvol_01")
    +
    +ChangeActivePlotsVar("intensity_nodal")
    +DrawPlots()
    +Test("imgvol_02")
    +
    +AddOperator("InverseGhostZone")
    +DrawPlots()
    +Test("imgvol_03")
    +RemoveLastOperator()
    +
    +AddPlot("Contour","intensity")
    +AddOperator("Slice")
    +SetOperatorOptions(sa)
    +ca=ContourAttributes()
    +ca.contourValue = (65,)
    +ca.contourMethod = ca.Value
    +ca.lineWidth = 2
    +SetPlotOptions(ca)
    +DrawPlots()
    +Test("imgvol_04")
    +
    +ChangeActivePlotsVar("intensity")
    +DrawPlots()
    +Test("imgvol_05")
    +
    +DeleteActivePlots()
    +RemoveLastOperator()
    +
    +iv=IsovolumeAttributes()
    +iv.lbound = 65
    +AddOperator("Isovolume")
    +SetOperatorOptions(iv)
    +AddOperator("Slice")
    +SetOperatorOptions(sa)
    +DrawPlots()
    +Test("imgvol_06")
    +
    +ChangeActivePlotsVar("intensity_nodal")
    +Test("imgvol_07")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_kulllite.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_kulllite.html new file mode 100644 index 000000000..7a76869c0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_kulllite.html @@ -0,0 +1,90 @@ + +Results for databases/kulllite.py + +

    Results of VisIt Regression Test - databases/kulllite

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    kulllite_0112.580.34
    kulllite_020.870.63
    kulllite_030.870.63
    kulllite_040.000.00
    kulllite_050.000.00
    kulllite_060.000.00
    kulllite_070.000.00
    kulllite_080.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_kulllite_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_kulllite_py.html new file mode 100644 index 000000000..a1a02e925 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_kulllite_py.html @@ -0,0 +1,89 @@ +databases/kulllite.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  kulllite.py
    +#
    +#  Tests:      mesh      - 2D, 3D unstructured
    +#              plots     - Pseudocolor, mesh, boundary, subset
    +#
    +#  Defect ID:  '6251, '6326, '7043
    +#
    +#  Programmer: Hank Childs
    +#  Date:       June 14, 2005
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Thu May 11 11:35:39 PDT 2006
    +#    Test reading of density values.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("KullLite")
    +
    +OpenDatabase(data_path("KullLite_test_data/tagtest_xy_3.pdb"))
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +Test("kulllite_01")
    +
    +DeleteAllPlots()
    +OpenDatabase(data_path("KullLite_test_data/tagtest_rz_1_0.pdb"))
    +
    +AddPlot("FilledBoundary", "Material(mesh)")
    +AddPlot("Mesh", "mesh_tags/edges_mesh")
    +DrawPlots()
    +Test("kulllite_02")
    +
    +DeleteActivePlots()
    +AddPlot("Mesh", "mesh")
    +AddPlot("Mesh", "mesh_tags/nodes_mesh")
    +m = MeshAttributes()
    +m.pointType = m.Box
    +SetPlotOptions(m)
    +DrawPlots()
    +Test("kulllite_03")
    +
    +DeleteAllPlots()
    +AddPlot("FilledBoundary", "mesh_tags/nodes(mesh_tags/nodes_mesh)")
    +fb = FilledBoundaryAttributes()
    +fb.pointType = fb.Box
    +SetPlotOptions(fb)
    +DrawPlots()
    +Test("kulllite_04")
    +
    +DeleteAllPlots()
    +OpenDatabase(data_path("KullLite_test_data/T.pdb"))
    +
    +AddPlot("FilledBoundary", "Material")
    +DrawPlots()
    +Test("kulllite_05")
    +
    +thres = ThresholdAttributes()
    +thres.listedVarNames = ("mesh_quality/shear")
    +thres.upperBounds = (0.5)
    +SetDefaultOperatorOptions(thres)
    +AddOperator("Threshold")
    +DrawPlots()
    +Test("kulllite_06")
    +
    +DeleteAllPlots()
    +
    +# Test reading of densities, for both per-zone quantities and per-zone,
    +# per-material quantities.
    +OpenDatabase(data_path("pdb_test_data/2dOverlayTest21.pdb"))
    +
    +AddPlot("Pseudocolor", "density")
    +DrawPlots()
    +Test("kulllite_07")
    +m = MaterialAttributes()
    +m.forceMIR = 1
    +SetMaterialAttributes(m)
    +ReOpenDatabase(data_path("pdb_test_data/2dOverlayTest21.pdb"))
    +
    +Test("kulllite_08")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_lata.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_lata.html new file mode 100644 index 000000000..6d581304e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_lata.html @@ -0,0 +1,136 @@ + +Results for databases/lata.py + +

    Results of VisIt Regression Test - databases/lata

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    lata_000.250.19
    lata_010.000.00
    lata_020.530.44
    lata_030.000.00
    lata_040.000.00
    lata_050.000.00
    lata_060.250.19
    lata_070.000.00
    lata_080.490.45
    lata_092.940.64
    lata_100.000.00
    lata_110.000.00
    lata_120.000.00
    lata_130.000.00
    lata_140.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_lata_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_lata_py.html new file mode 100644 index 000000000..46a0e6f45 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_lata_py.html @@ -0,0 +1,134 @@ +databases/lata.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  lata.py 
    +#
    +TurnOffAllAnnotations()
    +# on change le stride des vecteurs par defaut 
    +vd=VectorAttributes()
    +vd.SetUseStride(1)
    +SetDefaultPlotOptions(vd)
    +OpenDatabase(data_path("Lata_test_data/2D_VDF/PAR_2D_VDF.lata"))
    +
    +AddPlot("Mesh","dom_solide")
    +AddPlot("Pseudocolor","TEMPERATURE_ELEM_dom_solide")
    +AddPlot("Vector","VITESSE_ELEM_dom_fluide")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_00")
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor","TEMPERATURE_SOM_dom_solide")
    +AddPlot("Vector","VITESSE_SOM_dom_fluide")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_01")
    +DeleteAllPlots()
    +
    +AddPlot("Mesh","dom_fluide")
    +AddPlot("Vector","VITESSE_FACES_dom_fluide_dual")
    +AddPlot("Subset", "blocks(dom_solide)")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_02")
    +DeleteAllPlots()
    +CloseDatabase(data_path("Lata_test_data/2D_VDF/PAR_2D_VDF.lata"))
    +
    +OpenDatabase(data_path("Lata_test_data/3D_VDF/PAR_3D_VDF.lata"))
    +AddPlot("Mesh","dom_solide")
    +AddPlot("Pseudocolor","TEMPERATURE_ELEM_dom_solide")
    +AddPlot("Vector","VITESSE_ELEM_dom_fluide")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_03")
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor","TEMPERATURE_SOM_dom_solide")
    +AddPlot("Vector","VITESSE_SOM_dom_fluide")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_04")
    +DeleteAllPlots()
    +
    +AddPlot("Mesh","dom_fluide")
    +AddPlot("Vector","VITESSE_FACES_dom_fluide_dual")
    +AddPlot("Subset", "blocks(dom_solide)")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_05")
    +DeleteAllPlots()
    +CloseDatabase(data_path("Lata_test_data/3D_VDF/PAR_3D_VDF.lata"))
    +
    +OpenDatabase(data_path("Lata_test_data/2D_VEF/PAR_2D_VEF.lata"))
    +AddPlot("Mesh","dom_solide")
    +AddPlot("Pseudocolor","TEMPERATURE_ELEM_dom_solide")
    +AddPlot("Vector","VITESSE_ELEM_dom_fluide")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_06")
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor","TEMPERATURE_SOM_dom_solide")
    +AddPlot("Vector","VITESSE_SOM_dom_fluide")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_07")
    +DeleteAllPlots()
    +
    +AddPlot("Mesh","dom_fluide")
    +AddPlot("Vector","VITESSE_FACES_dom_fluide_dual")
    +AddPlot("Subset", "blocks(dom_solide)")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_08")
    +DeleteAllPlots()
    +
    +AddPlot("Mesh","dom_fluide")
    +AddPlot("Vector","VITESSE_FACES_dom_fluide_centerfaces")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_09")
    +DeleteAllPlots()
    +CloseDatabase(data_path("Lata_test_data/2D_VEF/PAR_2D_VEF.lata"))
    +
    +OpenDatabase(data_path("Lata_test_data/3D_VEF/PAR_3D_VEF.lata"))
    +AddPlot("Mesh","dom_solide")
    +AddPlot("Pseudocolor","TEMPERATURE_ELEM_dom_solide")
    +AddPlot("Vector","VITESSE_ELEM_dom_fluide")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_10")
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor","TEMPERATURE_SOM_dom_solide")
    +AddPlot("Vector","VITESSE_SOM_dom_fluide")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_11")
    +DeleteAllPlots()
    +
    +AddPlot("Mesh","dom_fluide")
    +AddPlot("Vector","VITESSE_FACES_dom_fluide_dual")
    +AddPlot("Subset", "blocks(dom_solide)")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_12")
    +DeleteAllPlots()
    +
    +AddPlot("Mesh","dom_fluide")
    +AddPlot("Vector","VITESSE_FACES_dom_fluide_centerfaces")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_13")
    +DeleteAllPlots()
    +CloseDatabase(data_path("Lata_test_data/3D_VEF/PAR_3D_VEF.lata"))
    +
    +OpenDatabase(data_path("Lata_test_data/./FTD_remaillage_vdf/post.lata"))
    +AddPlot("Mesh","INTERFACES")
    +AddPlot("Pseudocolor","COURBURE_som_INTERFACES")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_14")
    +DeleteAllPlots()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_leos.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_leos.html new file mode 100644 index 000000000..4e804d414 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_leos.html @@ -0,0 +1,68 @@ + +Results for databases/leos.py + +

    Results of VisIt Regression Test - databases/leos

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    leos_010.000.00
    leos_030.000.00
    leos_040.000.00
    leos_050.000.00
    leos_060.410.64
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_leos_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_leos_py.html new file mode 100644 index 000000000..917b3a6d8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_leos_py.html @@ -0,0 +1,86 @@ +databases/leos.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  leos.py 
    +#
    +#  Tests:      Auto Full Frame Mode
    +#              LEOSFileReader 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       July 20, 2005 
    +#
    +#  Modifications:
    +#    Tom Fogal, Wed Dec 16 13:12:57 MST 2009
    +#    Fixed a bad path.
    +#
    +#    Mark C. Miller, Fri Jan 22 17:30:29 PST 2010
    +#    I replaced OpenDatabase with FindAnd... variant to deal with data
    +#    we don't keep in repo.
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("PDB")
    +
    +OpenMDServer("localhost")
    +readOptions=GetDefaultFileOpenOptions("PDB")
    +readOptions["LEOS try harder level [set to 0, 1 or 2]"] = 1
    +SetDefaultFileOpenOptions("PDB", readOptions)
    +
    +(err, dbname) = FindAndOpenDatabase("sesame.pdb")
    +if (err != 1): Exit(116) # Indicate skip
    +
    +#
    +# Test default full frame (became 'auto' 07Mar06)
    +#
    +AddPlot("Pseudocolor","Calcium_Ca/Pt")
    +DrawPlots()
    +Test("leos_01")
    +
    +v=GetView2D()
    +#
    +# Test auto full frame. This test was obsoleted when
    +# auto ff became the default
    +#
    +#v.fullFrameActivationMode = v.Auto
    +#SetView2D(v)
    +#Test("leos_02")
    +
    +#
    +# Test turning off full frame
    +#
    +v.fullFrameActivationMode = v.Off
    +SetView2D(v)
    +Test("leos_03")
    +
    +#
    +# Test turning on full frame 
    +#
    +v.fullFrameActivationMode = v.On
    +SetView2D(v)
    +Test("leos_04")
    +
    +v.fullFrameActivationMode = v.Auto
    +SetView2D(v)
    +DeleteAllPlots()
    +
    +#
    +# Test Auto full frame when changing plots
    +#
    +AddPlot("Pseudocolor","Water_H2O/Et")
    +DrawPlots()
    +ResetView()
    +v=GetView2D()
    +v.fullFrameActivationMode = v.Auto
    +SetView2D(v)
    +Test("leos_05")
    +
    +#
    +# Test the "catch all" mesh
    +#
    +AddPlot("Mesh","for active plot")
    +DrawPlots()
    +Test("leos_06")
    +
    +DeleteAllPlots()
    +CloseDatabase(dbname)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_lines.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_lines.html new file mode 100644 index 000000000..d9577f19b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_lines.html @@ -0,0 +1,62 @@ + +Results for databases/lines.py + +

    Results of VisIt Regression Test - databases/lines

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Verifying 3D lines
     6 .eq. 6 (prec=5) : True
    mesh_plot_000.000.00
    Verifying 2D lines
     4 .eq. 4 (prec=5) : True
    mesh_plot_010.000.00
    mesh_plot_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_lines_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_lines_py.html new file mode 100644 index 000000000..eb1c7f943 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_lines_py.html @@ -0,0 +1,79 @@ +databases/lines.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  lines.py
    +#
    +#  Tests:      mesh      - 2D lines (unstructured), 3D lines (unstructured)
    +#              plots     - mesh
    +#
    +#  Programmer: Alister Maguire
    +#  Date:       Tue Mar 17 08:50:32 PDT 2020
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Mon Jan 11 10:32:17 PST 2021
    +#    Replace AssertEqual() with TestValueEQ()
    +# ----------------------------------------------------------------------------
    +
    +def TestMeshPlot():
    +
    +    #
    +    # First, let's make sure that 3d lines are read appropriately.
    +    #
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +
    +    OpenDatabase(data_path("lines_test_data/spring.lines"))
    +    AddPlot("Mesh", "Lines", 1, 1)
    +    DrawPlots()
    +    Query("SpatialExtents")
    +
    +    # Check dimensionality.
    +    ext_len = len(GetQueryOutputValue())
    +    TestValueEQ("Verifying 3D lines", ext_len, 6)
    +
    +    # Check the rendering.
    +    Test("mesh_plot_00")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("lines_test_data/spring.lines"))
    +
    +    #
    +    # Next, let's check 2d lines.
    +    #
    +    OpenDatabase(data_path("lines_test_data/2d.lines"))
    +    AddPlot("Mesh", "Lines", 1, 1)
    +    DrawPlots()
    +    Query("SpatialExtents")
    +
    +    # Check dimensionality.
    +    ext_len = len(GetQueryOutputValue())
    +    TestValueEQ("Verifying 2D lines", ext_len, 4)
    +
    +    # Check the rendering.
    +    Test("mesh_plot_01")
    +    DeleteAllPlots()
    +
    +    CloseDatabase(data_path("lines_test_data/2d.lines"))
    +
    +    #
    +    # This test makes sure that consecutive points are only
    +    # removed from one line at a time.
    +    #
    +    OpenDatabase(data_path("lines_test_data/consecutive.lines"))
    +    AddPlot("Mesh", "Lines", 1, 1)
    +    DrawPlots()
    +
    +    # Check the rendering.
    +    Test("mesh_plot_02")
    +    DeleteAllPlots()
    +
    +    CloseDatabase(data_path("lines_test_data/consecutive.lines"))
    +
    +
    +def main():
    +    TestMeshPlot()
    +    Exit()
    +
    +main()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_metadata.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_metadata.html new file mode 100644 index 000000000..a43d0f634 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_metadata.html @@ -0,0 +1,200 @@ + +Results for databases/metadata.py + +

    Results of VisIt Regression Test - databases/metadata

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Getting metadata
    metadata_0_000 modifications totalling 0 lines
    metadata_0_010 modifications totalling 0 lines
    metadata_0_020 modifications totalling 0 lines
    metadata_0_030 modifications totalling 0 lines
    metadata_0_040 modifications totalling 0 lines
    Use the metadata to plot the variables.
    metadata_1_scalar_airVf0.000.00
    metadata_1_scalar_chromeVf0.000.00
    metadata_1_scalar_hardyglobal0.000.00
    metadata_1_scalar_hgslice0.000.00
    metadata_1_scalar_radial0.000.00
    metadata_1_scalar_shepardglobal0.000.00
    metadata_1_scalar_x0.000.00
    metadata_1_scalar_PointVar0.000.00
    metadata_1_scalar_tensor_comps_grad_tensor_ii0.000.00
    metadata_1_scalar_tensor_comps_grad_tensor_ij0.000.00
    metadata_1_scalar_tensor_comps_grad_tensor_ik0.000.00
    metadata_1_scalar_tensor_comps_grad_tensor_ji0.000.00
    metadata_1_scalar_tensor_comps_grad_tensor_jj0.000.00
    metadata_1_scalar_tensor_comps_grad_tensor_jk0.000.00
    metadata_1_scalar_tensor_comps_grad_tensor_ki0.000.00
    metadata_1_scalar_tensor_comps_grad_tensor_kj0.000.00
    metadata_1_scalar_tensor_comps_grad_tensor_kk0.000.00
    metadata_1_vector_airVfGradient0.000.00
    metadata_1_vector_grad0.000.00
    metadata_1_expr_grad_tensor0.000.00
    metadata_1_expr_grad_tensor_diagonal0.000.00
    metadata_1_expr_airVfGradient_magnitude0.000.00
    metadata_1_expr_grad_magnitude0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_metadata_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_metadata_py.html new file mode 100644 index 000000000..2cd0a7ea7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_metadata_py.html @@ -0,0 +1,112 @@ +databases/metadata.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  metadata.py
    +#
    +#  Tests:      Getting a usable metadata object from the viewer.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Mar 14 16:40:31 PST 2007
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +def test0():
    +    TestSection("Getting metadata")
    +
    +    # Get metadata for various test datasets.
    +    md = GetMetaData(silo_data_path("noise.silo") )
    +    TestText("metadata_0_00", str(md))
    +
    +    # Get the metadata for the first time step
    +    md = GetMetaData(silo_data_path("wave*.silo database") )
    +    TestText("metadata_0_01", str(md))
    +
    +    # Get the metadata for the 17th time step where new variables appear
    +    md = GetMetaData(silo_data_path("wave*.silo database") , 17)
    +    TestText("metadata_0_02", str(md))
    +
    +    # Get something with species and default plots.
    +    md = GetMetaData(data_path("samrai_test_data/mats-par3/dumps.visit"))
    +    TestText("metadata_0_03", str(md))
    +
    +    # Get something with label variables
    +    md = GetMetaData(data_path("shapefile_test_data/alameda/tgr06001lkA.shp"))
    +    TestText("metadata_0_04", str(md))
    +
    +def MakeSafe(varname):
    +    ret = varname.replace("/", "_")
    +    ret = ret.replace("(", "[")
    +    ret = ret.replace(")", "]")
    +    ret = ret.replace(":", "_")
    +    ret = ret.replace(",", "_")
    +    ret = ret.replace(";", "_")
    +    return ret
    +
    +def test1():
    +    TestSection("Use the metadata to plot the variables.")
    +
    +    db = silo_data_path("noise.silo")
    +    OpenDatabase(db)
    +    md = GetMetaData(db)
    +
    +    # Test all of the scalars.
    +    for i in range(md.GetNumScalars()):
    +        AddPlot("Pseudocolor", md.GetScalars(i).name)
    +        DrawPlots()
    +        ResetView()
    +        testName = "metadata_1_scalar_" + MakeSafe(md.GetScalars(i).name)
    +        Test(testName)
    +        DeleteAllPlots()
    +
    +    # Test all of the vectors.
    +    for i in range(md.GetNumVectors()):
    +        AddPlot("Vector", md.GetVectors(i).name)
    +        DrawPlots()
    +        ResetView()
    +        testName = "metadata_1_vector_" + MakeSafe(md.GetVectors(i).name)
    +        Test(testName)
    +        DeleteAllPlots()
    +
    +    # Test all of the expressions
    +    for i in range(md.exprList.GetNumExpressions()):
    +        expr = md.exprList.GetExpressions(i)
    +        if expr.type == expr.ScalarMeshVar:
    +            AddPlot("Pseudocolor", expr.name)
    +        elif expr.type == expr.VectorMeshVar:
    +            AddPlot("Vector", expr.name)
    +            v = VectorAttributes()
    +            v.useStride = 1
    +            v.stride = 1
    +            SetPlotOptions(v)
    +        elif expr.type == expr.TensorMeshVar:
    +            AddPlot("Tensor", expr.name)
    +            t = TensorAttributes()
    +            t.useStride = 1
    +            t.stride = 5
    +            SetPlotOptions(t)
    +        elif expr.type == expr.ArrayMeshVar:
    +            AddPlot("Label", expr.name)
    +        else:
    +            print("Add support for plotting expression: ", expr)
    +        DrawPlots()
    +        ResetView()
    +        testName = "metadata_1_expr_" + MakeSafe(expr.name)
    +        Test(testName)
    +        DeleteAllPlots()
    +
    +def main():
    +    # Draw antialiased lines
    +    r = GetRenderingAttributes()
    +    r.antialiasing = 1
    +    SetRenderingAttributes(r)
    +
    +    test0()
    +    test1()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_mfem.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_mfem.html new file mode 100644 index 000000000..df9463bce --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_mfem.html @@ -0,0 +1,2098 @@ + +Results for databases/mfem.py + +

    Results of VisIt Regression Test - databases/mfem

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Input Mesh Files
    input_mesh_amr-hex-nc_mres_00000.000.00
    input_mesh_amr-hex-nc_mres_00050.000.00
    input_mesh_amr-hex_mres_00000.000.00
    input_mesh_amr-hex_mres_00050.000.00
    input_mesh_amr-quad-nc_mres_00000.000.00
    input_mesh_amr-quad-nc_mres_00050.000.00
    input_mesh_amr-quad_mres_00000.440.63
    input_mesh_amr-quad_mres_00050.440.63
    input_mesh_ball-nurbs_mres_00000.000.00
    input_mesh_ball-nurbs_mres_00200.000.00
    input_mesh_beam-hex-nurbs_mres_00000.000.00
    input_mesh_beam-hex-nurbs_mres_00200.000.00
    input_mesh_beam-hex_mres_00000.000.00
    input_mesh_beam-hex_mres_00200.000.00
    input_mesh_beam-quad-amr-nc_mres_00000.000.00
    input_mesh_beam-quad-amr-nc_mres_00050.000.00
    input_mesh_beam-quad-nurbs_mres_00003.330.61
    input_mesh_beam-quad-nurbs_mres_00202.750.50
    input_mesh_beam-quad_mres_00003.330.61
    input_mesh_beam-quad_mres_00202.750.50
    input_mesh_beam-tet_mres_00000.000.00
    input_mesh_beam-tet_mres_00200.000.00
    input_mesh_beam-tri_mres_00003.330.61
    input_mesh_beam-tri_mres_00202.750.50
    input_mesh_disc-nurbs_mres_00000.440.64
    input_mesh_disc-nurbs_mres_00200.020.03
    input_mesh_escher-p2_mres_00000.000.00
    input_mesh_escher-p2_mres_00200.000.00
    input_mesh_escher-p3_mres_00000.000.00
    input_mesh_escher-p3_mres_00200.000.00
    input_mesh_escher_mres_00000.000.00
    input_mesh_escher_mres_00200.000.00
    input_mesh_fichera-amr-nc_mres_00000.000.00
    input_mesh_fichera-amr-nc_mres_00050.000.00
    input_mesh_fichera-amr_mres_00000.000.00
    input_mesh_fichera-amr_mres_00050.000.00
    input_mesh_fichera-q2_mres_00000.000.00
    input_mesh_fichera-q2_mres_00200.000.00
    input_mesh_fichera-q3_mres_00000.000.00
    input_mesh_fichera-q3_mres_00200.000.00
    input_mesh_fichera_mres_00000.000.00
    input_mesh_fichera_mres_00200.000.00
    input_mesh_inline-hex_mres_00000.000.00
    input_mesh_inline-hex_mres_00200.000.00
    input_mesh_inline-quad_mres_00000.440.63
    input_mesh_inline-quad_mres_00200.440.63
    input_mesh_inline-segment_mres_00000.000.00
    input_mesh_inline-segment_mres_00200.000.00
    input_mesh_inline-tet_mres_00000.000.00
    input_mesh_inline-tet_mres_00200.000.00
    input_mesh_inline-tri_mres_00000.440.63
    input_mesh_inline-tri_mres_00200.440.63
    input_mesh_klein-bottle_mres_00000.000.00
    input_mesh_klein-bottle_mres_00200.000.00
    input_mesh_klein-donut_mres_00000.000.00
    input_mesh_klein-donut_mres_00200.000.00
    input_mesh_mobius-strip_mres_00000.000.00
    input_mesh_mobius-strip_mres_00200.000.00
    input_mesh_periodic-cube_mres_00000.000.00
    input_mesh_periodic-cube_mres_00200.000.00
    input_mesh_periodic-hexagon_mres_00000.000.00
    input_mesh_periodic-hexagon_mres_00200.000.00
    input_mesh_periodic-segment_mres_00000.000.00
    input_mesh_periodic-segment_mres_00200.000.00
    input_mesh_periodic-square_mres_00000.440.64
    input_mesh_periodic-square_mres_00200.440.64
    input_mesh_pipe-nurbs_mres_00000.000.00
    input_mesh_pipe-nurbs_mres_00200.000.00
    input_mesh_square-disc-nurbs_mres_00000.480.64
    input_mesh_square-disc-nurbs_mres_00200.500.64
    input_mesh_square-disc-p2_mres_00000.500.63
    input_mesh_square-disc-p2_mres_00200.500.63
    input_mesh_square-disc-p3_mres_00000.500.63
    input_mesh_square-disc-p3_mres_00200.500.63
    input_mesh_square-disc-surf_mres_00000.000.00
    input_mesh_square-disc-surf_mres_00200.000.00
    input_mesh_square-disc_mres_00000.500.63
    input_mesh_square-disc_mres_00200.500.63
    input_mesh_star-q2_mres_00000.000.00
    input_mesh_star-q2_mres_00200.000.00
    input_mesh_star-q3_mres_00000.000.00
    input_mesh_star-q3_mres_00200.000.00
    input_mesh_star-surf_mres_00000.000.00
    input_mesh_star-surf_mres_00200.000.00
    input_mesh_star_mres_00000.000.00
    input_mesh_star_mres_00200.000.00
    input_mesh_wedge_or_prism_example_mres_00000.000.00
    input_mesh_wedge_or_prism_example_mres_00200.000.00
    ex01 results
    ex01_ex01-disc-nurbs0.000.00
    ex01_ex01-escher0.000.00
    ex01_ex01-fichera-q20.000.00
    ex01_ex01-fichera0.000.00
    ex01_ex01-pipe-nurbs0.000.00
    ex01_ex01-square-disc-nurbs0.000.00
    ex01_ex01-square-disc-p30.000.00
    ex01_ex01-square-disc0.000.00
    ex01_ex01-star0.000.00
    ex02 results
    ex02_element_attribute_ex02-beam-hex-nurbs0.000.00
    ex02_gf_mag_ex02-beam-hex-nurbs0.000.00
    ex02_element_attribute_ex02-beam-hex0.000.00
    ex02_gf_mag_ex02-beam-hex0.000.00
    ex02_element_attribute_ex02-beam-quad-nurbs0.000.00
    ex02_gf_mag_ex02-beam-quad-nurbs0.000.00
    ex02_element_attribute_ex02-beam-quad0.000.00
    ex02_gf_mag_ex02-beam-quad0.000.00
    ex02_element_attribute_ex02-beam-tet0.000.00
    ex02_gf_mag_ex02-beam-tet0.000.00
    ex02_element_attribute_ex02-beam-tri0.000.00
    ex02_gf_mag_ex02-beam-tri0.000.00
    MFEM Expressions
    mfem_expressions_10.000.00
    mfem_expressions_20.000.00
    mfem_expressions_30.000.00
    Input Mesh Boundary Topology
    input_mesh_amr-hex-nc_boundary_topo0.000.00
    input_mesh_amr-hex_boundary_topo0.000.00
    input_mesh_amr-quad-nc_boundary_topo0.000.00
    input_mesh_amr-quad_boundary_topo14.320.28
    input_mesh_ball-nurbs_boundary_topo0.000.00
    input_mesh_beam-hex-nurbs_boundary_topo0.000.00
    input_mesh_beam-hex_boundary_topo0.000.00
    input_mesh_beam-quad-amr-nc_boundary_topo0.000.00
    input_mesh_beam-quad-nurbs_boundary_topo22.030.41
    input_mesh_beam-quad_boundary_topo22.030.41
    input_mesh_beam-tet_boundary_topo0.000.00
    input_mesh_beam-tri_boundary_topo22.030.41
    input_mesh_disc-nurbs_boundary_topo14.370.42
    input_mesh_escher-p2_boundary_topo0.000.00
    input_mesh_escher-p3_boundary_topo0.000.00
    input_mesh_escher_boundary_topo0.000.00
    input_mesh_fichera-amr-nc_boundary_topo0.000.00
    input_mesh_fichera-amr_boundary_topo0.000.00
    input_mesh_fichera-q2_boundary_topo0.000.00
    input_mesh_fichera-q3_boundary_topo0.000.00
    input_mesh_fichera_boundary_topo0.000.00
    input_mesh_inline-hex_boundary_topo0.000.00
    input_mesh_inline-quad_boundary_topo14.320.28
    input_mesh_inline-segment_boundary_topo0.000.00
    input_mesh_inline-tet_boundary_topo0.000.00
    input_mesh_inline-tri_boundary_topo14.320.28
    input_mesh_klein-bottle_boundary_topo0.000.00
    input_mesh_klein-donut_boundary_topo0.000.00
    input_mesh_mobius-strip_boundary_topo0.000.00
    input_mesh_periodic-cube_boundary_topo0.000.00
    input_mesh_periodic-hexagon_boundary_topo0.000.00
    input_mesh_periodic-segment_boundary_topo0.000.00
    input_mesh_periodic-square_boundary_topo0.000.00
    input_mesh_pipe-nurbs_boundary_topo0.000.00
    input_mesh_square-disc-nurbs_boundary_topo9.670.42
    input_mesh_square-disc-p2_boundary_topo9.640.25
    input_mesh_square-disc-p3_boundary_topo9.640.25
    input_mesh_square-disc-surf_boundary_topo0.000.00
    input_mesh_square-disc_boundary_topo9.640.25
    input_mesh_star-q2_boundary_topo0.000.00
    input_mesh_star-q3_boundary_topo0.000.00
    input_mesh_star-surf_boundary_topo0.000.00
    input_mesh_star_boundary_topo0.000.00
    input_mesh_wedge_or_prism_example_boundary_topo0.000.00
    Direct Mesh Open
    direct_open_mesh_file_amr-hex-nc0.000.00
    direct_open_mesh_file_amr-hex0.000.00
    direct_open_mesh_file_amr-quad-nc0.000.00
    direct_open_mesh_file_amr-quad0.000.00
    direct_open_mesh_file_ball-nurbs0.000.00
    direct_open_mesh_file_beam-hex-nurbs0.000.00
    direct_open_mesh_file_beam-hex0.000.00
    direct_open_mesh_file_beam-quad-amr-nc0.000.00
    direct_open_mesh_file_beam-quad-nurbs0.000.00
    direct_open_mesh_file_beam-quad0.000.00
    direct_open_mesh_file_beam-tet0.000.00
    direct_open_mesh_file_beam-tri0.000.00
    direct_open_mesh_file_disc-nurbs0.000.00
    direct_open_mesh_file_escher-p20.000.00
    direct_open_mesh_file_escher-p30.000.00
    direct_open_mesh_file_escher0.000.00
    direct_open_mesh_file_ex01-disc-nurbs0.000.00
    direct_open_mesh_file_ex01-escher0.000.00
    direct_open_mesh_file_ex01-fichera-q20.000.00
    direct_open_mesh_file_ex01-fichera0.000.00
    direct_open_mesh_file_ex01-pipe-nurbs0.000.00
    direct_open_mesh_file_ex01-square-disc-nurbs0.000.00
    direct_open_mesh_file_ex01-square-disc-p30.000.00
    direct_open_mesh_file_ex01-square-disc0.000.00
    direct_open_mesh_file_ex01-star0.000.00
    direct_open_mesh_file_ex02-beam-hex-nurbs0.000.00
    direct_open_mesh_file_ex02-beam-hex0.000.00
    direct_open_mesh_file_ex02-beam-quad-nurbs0.000.00
    direct_open_mesh_file_ex02-beam-quad0.000.00
    direct_open_mesh_file_ex02-beam-tet0.000.00
    direct_open_mesh_file_ex02-beam-tri0.000.00
    direct_open_mesh_file_fichera-amr-nc0.000.00
    direct_open_mesh_file_fichera-amr0.000.00
    direct_open_mesh_file_fichera-q20.000.00
    direct_open_mesh_file_fichera-q30.000.00
    direct_open_mesh_file_fichera0.000.00
    direct_open_mesh_file_inline-hex0.000.00
    direct_open_mesh_file_inline-quad0.000.00
    direct_open_mesh_file_inline-segment0.000.00
    direct_open_mesh_file_inline-tet0.000.00
    direct_open_mesh_file_inline-tri0.000.00
    direct_open_mesh_file_klein-bottle0.000.00
    direct_open_mesh_file_klein-donut0.000.00
    direct_open_mesh_file_mobius-strip0.000.00
    direct_open_mesh_file_periodic-cube0.000.00
    direct_open_mesh_file_periodic-hexagon0.000.00
    direct_open_mesh_file_periodic-segment0.000.00
    direct_open_mesh_file_periodic-square0.000.00
    direct_open_mesh_file_pipe-nurbs0.000.00
    direct_open_mesh_file_square-disc-nurbs0.000.00
    direct_open_mesh_file_square-disc-p20.000.00
    direct_open_mesh_file_square-disc-p30.000.00
    direct_open_mesh_file_square-disc-surf0.000.00
    direct_open_mesh_file_square-disc0.000.00
    direct_open_mesh_file_star-q20.000.00
    direct_open_mesh_file_star-q30.000.00
    direct_open_mesh_file_star-surf0.000.00
    direct_open_mesh_file_star0.000.00
    Legacy and New LOR
    LOR_amr-hex-nc_lor0.000.00
    LOR_amr-hex-nc_legacy_lor0.000.00
    LOR_amr-hex_lor0.000.00
    LOR_amr-hex_legacy_lor0.000.00
    LOR_amr-quad-nc_lor0.000.00
    LOR_amr-quad-nc_legacy_lor0.000.00
    LOR_amr-quad_lor24.970.42
    LOR_amr-quad_legacy_lor10.080.42
    LOR_ball-nurbs_lor0.000.00
    LOR_ball-nurbs_legacy_lor0.000.00
    LOR_beam-hex-nurbs_lor0.000.00
    LOR_beam-hex-nurbs_legacy_lor0.000.00
    LOR_beam-hex_lor0.000.00
    LOR_beam-hex_legacy_lor0.000.00
    LOR_beam-quad-amr-nc_lor0.000.00
    LOR_beam-quad-amr-nc_legacy_lor0.000.00
    LOR_beam-quad-nurbs_lor79.490.41
    LOR_beam-quad-nurbs_legacy_lor46.270.41
    LOR_beam-quad_lor79.490.41
    LOR_beam-quad_legacy_lor46.270.41
    LOR_beam-tet_lor0.000.00
    LOR_beam-tet_legacy_lor0.000.00
    LOR_beam-tri_lor79.490.41
    LOR_beam-tri_legacy_lor31.680.41
    LOR_disc-nurbs_lor50.000.42
    LOR_disc-nurbs_legacy_lor20.090.42
    LOR_escher-p2_lor0.000.00
    LOR_escher-p2_legacy_lor0.000.00
    LOR_escher-p3_lor0.000.00
    LOR_escher-p3_legacy_lor0.000.00
    LOR_escher_lor0.000.00
    LOR_escher_legacy_lor0.000.00
    LOR_fichera-amr-nc_lor0.000.00
    LOR_fichera-amr-nc_legacy_lor0.000.00
    LOR_fichera-amr_lor0.000.00
    LOR_fichera-amr_legacy_lor0.000.00
    LOR_fichera-q2_lor0.000.00
    LOR_fichera-q2_legacy_lor0.000.00
    LOR_fichera-q3_lor0.000.00
    LOR_fichera-q3_legacy_lor0.000.00
    LOR_fichera_lor0.000.00
    LOR_fichera_legacy_lor0.000.00
    LOR_inline-hex_lor0.000.00
    LOR_inline-hex_legacy_lor0.000.00
    LOR_inline-quad_lor49.890.42
    LOR_inline-quad_legacy_lor12.530.42
    LOR_inline-segment_lor0.000.00
    LOR_inline-segment_legacy_lor0.000.00
    LOR_inline-tet_lor0.000.00
    LOR_inline-tet_legacy_lor0.000.00
    LOR_inline-tri_lor49.890.42
    LOR_inline-tri_legacy_lor8.390.42
    LOR_klein-bottle_lor0.000.00
    LOR_klein-bottle_legacy_lor0.000.00
    LOR_klein-donut_lor0.000.00
    LOR_klein-donut_legacy_lor0.000.00
    LOR_mobius-strip_lor0.000.00
    LOR_mobius-strip_legacy_lor0.000.00
    LOR_periodic-cube_lor0.000.00
    LOR_periodic-cube_legacy_lor0.000.00
    LOR_periodic-hexagon_lor0.000.00
    LOR_periodic-hexagon_legacy_lor0.000.00
    LOR_periodic-segment_lor0.000.00
    LOR_periodic-segment_legacy_lor0.000.00
    LOR_periodic-square_lor16.740.42
    LOR_periodic-square_legacy_lor16.740.42
    LOR_pipe-nurbs_lor0.000.00
    LOR_pipe-nurbs_legacy_lor0.000.00
    LOR_square-disc-nurbs_lor31.870.42
    LOR_square-disc-nurbs_legacy_lor21.970.42
    LOR_square-disc-p2_lor31.770.42
    LOR_square-disc-p2_legacy_lor4.370.42
    LOR_square-disc-p3_lor31.770.42
    LOR_square-disc-p3_legacy_lor4.380.42
    LOR_square-disc-surf_lor0.000.00
    LOR_square-disc-surf_legacy_lor0.000.00
    LOR_square-disc_lor31.770.42
    LOR_square-disc_legacy_lor4.380.42
    LOR_star-q2_lor0.000.00
    LOR_star-q2_legacy_lor0.000.00
    LOR_star-q3_lor0.000.00
    LOR_star-q3_legacy_lor0.000.00
    LOR_star-surf_lor0.000.00
    LOR_star-surf_legacy_lor0.000.00
    LOR_star_lor0.000.00
    LOR_star_legacy_lor0.000.00
    LOR_wedge_or_prism_example_lor0.000.00
    LOR_wedge_or_prism_example_legacy_lor0.000.00
    Legacy and New LOR Fields
    LOR_Fields_ex01-disc-nurbs_pseudocolor_gf_lor0.000.00
    LOR_Fields_ex01-disc-nurbs_pseudocolor_gf_legacy_lor0.000.00
    LOR_Fields_ex01-escher_pseudocolor_gf_lor0.000.00
    LOR_Fields_ex01-escher_pseudocolor_gf_legacy_lor0.000.00
    LOR_Fields_ex01-fichera-q2_pseudocolor_gf_lor0.000.00
    LOR_Fields_ex01-fichera-q2_pseudocolor_gf_legacy_lor0.000.00
    LOR_Fields_ex01-fichera_pseudocolor_gf_lor0.000.00
    LOR_Fields_ex01-fichera_pseudocolor_gf_legacy_lor0.000.00
    LOR_Fields_ex01-pipe-nurbs_pseudocolor_gf_lor0.000.00
    LOR_Fields_ex01-pipe-nurbs_pseudocolor_gf_legacy_lor0.000.00
    LOR_Fields_ex01-square-disc-nurbs_pseudocolor_gf_lor0.000.00
    LOR_Fields_ex01-square-disc-nurbs_pseudocolor_gf_legacy_lor0.000.00
    LOR_Fields_ex01-square-disc-p3_pseudocolor_gf_lor0.000.00
    LOR_Fields_ex01-square-disc-p3_pseudocolor_gf_legacy_lor0.000.00
    LOR_Fields_ex01-square-disc_pseudocolor_gf_lor0.000.00
    LOR_Fields_ex01-square-disc_pseudocolor_gf_legacy_lor0.000.00
    LOR_Fields_ex01-star_pseudocolor_gf_lor0.000.00
    LOR_Fields_ex01-star_pseudocolor_gf_legacy_lor0.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_mfem_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_mfem_py.html new file mode 100644 index 000000000..217a0d321 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_mfem_py.html @@ -0,0 +1,270 @@ +databases/mfem.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#  LIMIT: 1200
    +#  Test Case:  mfem.py 
    +#
    +#  Tests:      mfem files 
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Thu Jun 12 14:58:03 PDT 2014
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Sep  2 20:56:13 PDT 2020
    +#    The MFEM reader now provides original cells so artificial mesh lines
    +#    get removed. There's less of a point to seeing them here. Keep min/max
    +#    refinement levels only. 
    +# 
    +#    Justin Privitera, Mon Oct 17 17:33:30 PDT 2022
    +#    Added new tests for the new LOR settings. All prior tests use the legacy
    +#    LOR setting, while new tests use a mix of both.
    +#
    +#    Cyrus Harrison, Tue Oct 29 10:52:33 PDT 2024
    +#    Added wedge example mesh.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("MFEM")
    +
    +readOptions = GetDefaultFileOpenOptions("MFEM")
    +readOptions["MFEM LOR Setting"] = "Legacy LOR"
    +SetDefaultFileOpenOptions("MFEM", readOptions)
    +
    +mfem_roots  = glob.glob(data_path("mfem_test_data/*.mfem_root"))
    +mfem_roots.extend(glob.glob(data_path("mfem_wedge_and_pyramid_examples/wedge_*.mfem_root")))
    +input_meshs  = [ f for f in mfem_roots if f.count("ex0") == 0]
    +ex01_results = [ f for f in mfem_roots if f.count("ex01") == 1]
    +ex02_results = [ f for f in mfem_roots if f.count("ex02") == 1]
    +mfem_mesh_files = glob.glob(data_path("mfem_test_data/*.mesh"))
    +
    +
    +def set_test_view():
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.510614, 0.302695, 0.804767)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (-0.0150532, 0.932691, -0.360361)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +TestSection("Input Mesh Files")
    +for f in input_meshs:
    +    base = os.path.splitext(os.path.basename(f))[0]
    +    DeleteAllPlots()
    +    OpenDatabase(f)
    +    AddPlot("Pseudocolor","main_element_coloring")
    +    #pc_atts = PseudocolorAttributes()
    +    #pc_atts.colorTableName = "PuBuGn"
    +    #SetPlotOptions(pc_atts)
    +    AddOperator("MultiresControl")
    +    AddPlot("Mesh","main")
    +    AddOperator("MultiresControl")
    +    SetActivePlots((0,1))
    +    levels = [0,20]
    +    if f.count("amr") > 0:
    +        levels = [0,5]
    +    for mres in levels:
    +        mc_atts  = MultiresControlAttributes()
    +        mc_atts.resolution = mres
    +        SetOperatorOptions(mc_atts)
    +        ResetView()
    +        DrawPlots()
    +        Test("input_mesh_%s_mres_%04d" % (base,mres))
    +    DeleteAllPlots()
    +    CloseDatabase(f)
    +
    +TestSection("ex01 results")
    +for f in ex01_results:
    +    base = os.path.splitext(os.path.basename(f))[0]
    +    DeleteAllPlots()
    +    OpenDatabase(f)
    +    AddPlot("Pseudocolor","gf")
    +    #AddPlot("Mesh","main")
    +    ResetView()
    +    DrawPlots()
    +    Test("ex01_%s" % (base))
    +    DeleteAllPlots()
    +    CloseDatabase(f)
    +
    +TestSection("ex02 results")
    +for f in ex02_results:
    +    base = os.path.splitext(os.path.basename(f))[0]
    +    DeleteAllPlots()
    +    OpenDatabase(f)
    +    AddPlot("Pseudocolor","main_element_attribute")
    +    #AddPlot("Mesh","main")
    +    ResetView()
    +    DrawPlots()
    +    Test("ex02_element_attribute_%s" % (base))
    +    ChangeActivePlotsVar("gf_magnitude");
    +    DrawPlots()
    +    Test("ex02_gf_mag_%s" % (base))
    +    DeleteAllPlots()
    +    CloseDatabase(f)
    +
    +TestSection("MFEM Expressions")
    +OpenDatabase(data_path("mfem_test_data/ex02-beam-tet.mfem_root"))
    +AddPlot("Pseudocolor","mag-gf")
    +ResetView()
    +DrawPlots()
    +Test("mfem_expressions_1")
    +DeleteAllPlots()
    +AddPlot("Pseudocolor","comp0")
    +DrawPlots()
    +Test("mfem_expressions_2")
    +DeleteAllPlots()
    +AddPlot("Vector","curl-gf")
    +DrawPlots()
    +Test("mfem_expressions_3")
    +DeleteAllPlots()
    +CloseDatabase(data_path("mfem_test_data/ex02-beam-tet.mfem_root"))
    +
    +TestSection("Input Mesh Boundary Topology")
    +for f in input_meshs:
    +    base = os.path.splitext(os.path.basename(f))[0]
    +    DeleteAllPlots()
    +    OpenDatabase(f)
    +    AddPlot("Pseudocolor","main_boundary_attribute")
    +    AddPlot("Mesh","main_boundary")
    +    mesh_atts = MeshAttributes()
    +    mesh_atts.lineWidth = 2
    +    SetPlotOptions(mesh_atts)
    +    ResetView()
    +    DrawPlots()
    +    Test("input_mesh_%s_boundary_topo" % (base))
    +    DeleteAllPlots()
    +    CloseDatabase(f)
    +
    +TestSection("Direct Mesh Open")
    +for f in mfem_mesh_files:
    +    base = os.path.splitext(os.path.basename(f))[0]
    +    DeleteAllPlots()
    +    OpenDatabase(f)
    +    AddPlot("Pseudocolor","main_element_coloring")
    +    ResetView()
    +    DrawPlots()
    +    Test("direct_open_mesh_file_%s" % (base))
    +    DeleteAllPlots()
    +    CloseDatabase(f)
    +
    +# reset default
    +readOptions = GetDefaultFileOpenOptions("MFEM")
    +readOptions["MFEM LOR Setting"] = "MFEM LOR"
    +SetDefaultFileOpenOptions("MFEM", readOptions)
    +
    +def test_mfem_lor_mesh(tag_name, dbfile):
    +    ResetView()
    +    base = os.path.splitext(os.path.basename(dbfile))[0]
    +
    +    # get default options
    +    readOptions = GetDefaultFileOpenOptions("MFEM")
    +    readOptions["MFEM LOR Setting"] = "MFEM LOR"
    +    SetDefaultFileOpenOptions("MFEM", readOptions)
    +    OpenDatabase(dbfile)
    +
    +    # we want to test a picture of a wireframe
    +    # new LOR should only have the outer edge
    +    AddPlot("Subset", "main")
    +    SubsetAtts = SubsetAttributes()
    +    SubsetAtts.wireframe = 1
    +    SetPlotOptions(SubsetAtts)
    +    set_test_view()
    +    DrawPlots()
    +    Test(tag_name + "_" + base + "_lor")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(dbfile)
    +
    +    ##############################
    +
    +    # examine legacy
    +    readOptions = GetDefaultFileOpenOptions("MFEM")
    +    readOptions["MFEM LOR Setting"] = "Legacy LOR"
    +    SetDefaultFileOpenOptions("MFEM", readOptions)
    +    OpenDatabase(dbfile)
    +
    +    # old LOR leaves a busy wireframe
    +    AddPlot("Subset", "main")
    +    SubsetAtts = SubsetAttributes()
    +    SubsetAtts.wireframe = 1
    +    SetPlotOptions(SubsetAtts)
    +    set_test_view()
    +    DrawPlots()
    +    Test(tag_name + "_" + base + "_legacy_lor")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(dbfile)
    +
    +    # restore default
    +    readOptions = GetDefaultFileOpenOptions("MFEM")
    +    readOptions["MFEM LOR Setting"] = "MFEM LOR"
    +    SetDefaultFileOpenOptions("MFEM", readOptions)
    +
    +TestSection("Legacy and New LOR")
    +for dbfile in input_meshs:
    +    test_mfem_lor_mesh("LOR", dbfile)
    +
    +def test_mfem_lor_field(tag_name, dbfile):
    +    ResetView()
    +    base = os.path.splitext(os.path.basename(dbfile))[0]
    +
    +    readOptions = GetDefaultFileOpenOptions("MFEM")
    +    readOptions["MFEM LOR Setting"] = "MFEM LOR"
    +    SetDefaultFileOpenOptions("MFEM", readOptions)
    +    OpenDatabase(dbfile)
    +
    +    AddPlot("Pseudocolor","gf")
    +    AddOperator("MultiresControl", 1)
    +    SetActivePlots(0)
    +    MultiresControlAtts = MultiresControlAttributes()
    +    MultiresControlAtts.resolution = 3
    +    SetOperatorOptions(MultiresControlAtts, 0, 1)
    +    set_test_view()
    +    DrawPlots()
    +    Test(tag_name + "_" + base + "_pseudocolor_gf_lor")
    +    DeleteAllPlots()
    +    ResetView()
    +
    +    CloseDatabase(dbfile)
    +
    +    ##############################
    +
    +    # examine legacy
    +    readOptions = GetDefaultFileOpenOptions("MFEM")
    +    readOptions["MFEM LOR Setting"] = "Legacy LOR"
    +    SetDefaultFileOpenOptions("MFEM", readOptions)
    +    OpenDatabase(dbfile)
    +
    +    AddPlot("Pseudocolor","gf")
    +    AddOperator("MultiresControl", 1)
    +    SetActivePlots(0)
    +    MultiresControlAtts = MultiresControlAttributes()
    +    MultiresControlAtts.resolution = 3
    +    SetOperatorOptions(MultiresControlAtts, 0, 1)
    +    set_test_view()
    +    DrawPlots()
    +    Test(tag_name + "_" + base + "_pseudocolor_gf_legacy_lor")
    +    DeleteAllPlots()
    +    ResetView()
    +
    +    # restore default
    +    readOptions = GetDefaultFileOpenOptions("MFEM")
    +    readOptions["MFEM LOR Setting"] = "MFEM LOR"
    +    SetDefaultFileOpenOptions("MFEM", readOptions)
    +
    +TestSection("Legacy and New LOR Fields")
    +for dbfile in ex01_results:
    +    test_mfem_lor_field("LOR_Fields", dbfile)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_mili.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_mili.html new file mode 100644 index 000000000..cc199cd7b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_mili.html @@ -0,0 +1,378 @@ + +Results for databases/mili.py + +

    Results of VisIt Regression Test - databases/mili

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Vector components
    mili_brick_comp0.000.00
    mili_beam_comp0.000.00
    mili_nodacc_comp0.000.00
    Non-shared element sets
    mili_non_shared_es_010.000.00
    Shared element sets
    mili_shared_es_010.000.00
    mili_shared_es_020.000.00
    mili_shared_es_030.000.00
    Material variables
    mili_mat_var_010.000.00
    mili_mat_var_020.000.00
    Tensors
    mili_tensors_010.000.00
    mili_tensors_020.000.00
    Vectors
    mili_vectors_010.000.00
    mili_vectors_020.000.00
    mili_vectors_030.000.00
    Sand mesh
    mili_sand_mesh_010.000.00
    mili_sand_mesh_020.000.00
    mili_sand_mesh_030.000.00
    mili_sand_mesh_040.000.00
    Materials
    mili_materials_000.000.00
    mili_materials_010.000.00
    Multi-domain
    mili_multi_dom_010.000.00
    mili_multi_dom_020.000.00
    Particles
    mili_particle_010.000.00
    Static nodes
    mili_static_nodes_010.000.00
    Labels
    mili_zone_labels_010.000.00
    mili_node_labels_010.000.00
    Sci notation read
    mili_from_sci_not0.000.00
    Multi-subrecord read
    mili_subrec_offset0.000.00
    Derived variables
    mili_derived_000.000.00
    mili_derived_010.000.00
    mili_derived_020.000.00
    mili_derived_030.000.00
    mili_derived_040.000.00
    mili_derived_050.000.00
    mili_derived_060.000.00
    mili_derived_070.000.00
    mili_derived_080.000.00
    mili_derived_090.000.00
    mili_derived_100.000.00
    mili_derived_110.000.00
    mili_derived_120.000.00
    mili_derived_130.000.00
    mili_derived_140.000.00
    Global integration point
    mili_global_ip_000.000.00
    mili_global_ip_010.000.00
    mili_global_ip_020.000.00
    Material edge lines
    mili_hidden_material_edge_lines0.000.00
    Displacement
    mili_displacement0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_mili_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_mili_py.html new file mode 100644 index 000000000..0f73331eb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_mili_py.html @@ -0,0 +1,572 @@ +databases/mili.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  mili.py
    +#
    +#  Tests:      mesh      - 3D unstructured, multi-domain
    +#              plots     - Pseudocolor, material, vector, tensor, label
    +#
    +#
    +#  Programmer: Alister Maguire
    +#  Date:       May 22, 2019
    +#
    +#  Modifications:
    +#
    +#    Alister Maguire, Mon Aug  5 13:02:05 MST 2019
    +#    Added a test that handles .mili files containing integers in
    +#    scientific notation.
    +#
    +#    Alister Maguire, Thu Dec 19 13:40:07 PST 2019
    +#    Added a test to make sure correct subrecord offsets are used.
    +#
    +#    Alister Maguire, Wed Jul 15 13:38:17 PDT 2020
    +#    Added test sections and derived variable test.
    +#
    +#    Alister Maguire, Wed Mar 24 16:06:33 PDT 2021
    +#    Added a test for setting/changing the global integration point.
    +#
    +#    Alister Maguire, Fri Mar 26 10:25:08 PDT 2021
    +#    Added more tests for derived variables (stress, strain, sand mesh).
    +# 
    +#    Justin Privitera, Tue Oct 22 10:32:27 PDT 2024
    +#    Add test for hiding material edge lines.
    +#
    +#    Justin Privitera, Wed Nov  6 16:41:21 PST 2024
    +#    Add test for displacement.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("Mili")
    +single_domain_path = data_path("mili_test_data/single_proc/")
    +multi_domain_path  = data_path("mili_test_data/multi_proc/")
    +
    +def TestComponentVis():
    +    TestSection("Vector components")
    +    OpenDatabase(single_domain_path + "/d3samp6.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(90)
    +
    +    AddPlot("Pseudocolor", "Primal/Shared/edrate")
    +    DrawPlots()
    +    Test("mili_brick_comp")
    +
    +    ChangeActivePlotsVar("Primal/beam/svec/svec_x")
    +    Test("mili_beam_comp")
    +    ChangeActivePlotsVar("Primal/node/nodacc/ax")
    +    Test("mili_nodacc_comp")
    +
    +    DeleteAllPlots()
    +
    +
    +def TestSharedElementSets():
    +    TestSection("Shared element sets")
    +    OpenDatabase(single_domain_path + "/d3samp6.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(90)
    +
    +    AddPlot("Pseudocolor", "Primal/Shared/strain/exy")
    +    DrawPlots()
    +    Test("mili_shared_es_01")
    +    ChangeActivePlotsVar("Primal/Shared/edrate")
    +    Test("mili_shared_es_02")
    +    ChangeActivePlotsVar("Primal/Shared/stress/sy")
    +    Test("mili_shared_es_03")
    +
    +    DeleteAllPlots()
    +
    +
    +def TestNonSharedElementSets():
    +    TestSection("Non-shared element sets")
    +    OpenDatabase(single_domain_path + "/d3samp6.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(90)
    +
    +    #
    +    #  eps is a section of an element set that is only
    +    #  defined on beams.
    +    #
    +    AddPlot("Pseudocolor", "Primal/beam/eps")
    +    DrawPlots()
    +    Test("mili_non_shared_es_01")
    +    DeleteAllPlots()
    +
    +
    +def TestMaterialVar():
    +    TestSection("Material variables")
    +    OpenDatabase(single_domain_path + "/d3samp6.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(90)
    +
    +    AddPlot("Pseudocolor", "Primal/mat/matcgy")
    +    DrawPlots()
    +    Test("mili_mat_var_01")
    +    ChangeActivePlotsVar("Primal/mat/matke")
    +    Test("mili_mat_var_02")
    +    DeleteAllPlots()
    +
    +
    +def TestTensors():
    +    TestSection("Tensors")
    +    OpenDatabase(single_domain_path + "/d3samp6.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(90)
    +
    +    AddPlot("Tensor", "Primal/Shared/stress")
    +    DrawPlots()
    +    Test("mili_tensors_01")
    +
    +    ChangeActivePlotsVar("Primal/Shared/strain")
    +    Test("mili_tensors_02")
    +    DeleteAllPlots()
    +
    +
    +def TestVectors():
    +    TestSection("Vectors")
    +    OpenDatabase(single_domain_path + "/d3samp6.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(90)
    +
    +    AddPlot("Vector", "Primal/node/nodpos")
    +    DrawPlots()
    +    Test("mili_vectors_01")
    +
    +    ChangeActivePlotsVar("Primal/shell/bend")
    +    Test("mili_vectors_02")
    +
    +    ChangeActivePlotsVar("Primal/beam/svec")
    +    Test("mili_vectors_03")
    +    DeleteAllPlots()
    +
    +
    +def TestSandMesh():
    +    TestSection("Sand mesh")
    +    OpenDatabase(single_domain_path + "/m_plot.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(101)
    +
    +    #
    +    # First, let's look at the sand variable on a non-sanded mesh.
    +    # It should be well structured.
    +    #
    +    AddPlot("Mesh", "mesh1")
    +    AddPlot("Pseudocolor", "Primal/Shared/sand")
    +    DrawPlots()
    +    Test("mili_sand_mesh_01")
    +    DeleteAllPlots()
    +
    +    #
    +    # Now let's view the sand mesh. It's a mess.
    +    #
    +    AddPlot("Mesh", "sand_mesh1")
    +    AddPlot("Pseudocolor", "Primal/Shared/sand")
    +    DrawPlots()
    +    Test("mili_sand_mesh_02")
    +
    +    #
    +    # Now let's look at sand in its sanded state.
    +    #
    +    ChangeActivePlotsVar("sand_mesh/Primal/Shared/sand")
    +    DrawPlots()
    +    Test("mili_sand_mesh_03")
    +
    +    #
    +    # We need to make sure that other variables can also be
    +    # viewed in their sanded state.
    +    #
    +    ChangeActivePlotsVar("sand_mesh/Primal/shell/stress_mid/sx")
    +    Test("mili_sand_mesh_04")
    +
    +    DeleteAllPlots()
    +
    +
    +def TestMaterials():
    +    #
    +    # The tests need to be in this order to work around a bug in
    +    # the filled boundary plot with getting colors from a database
    +    # that causes the colors to be set the same for subsequent
    +    # filled boundary plots where the colors are not set in the
    +    # database.
    +    #
    +    TestSection("Materials")
    +    OpenDatabase(single_domain_path + "/sslide14ball_l.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(12)
    +
    +    AddPlot("FilledBoundary", "materials1")
    +    DrawPlots()
    +    Test("mili_materials_00")
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(single_domain_path + "/d3samp6.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(70)
    +
    +    AddPlot("FilledBoundary", "materials1(mesh1)")
    +    DrawPlots()
    +    Test("mili_materials_01")
    +
    +    DeleteAllPlots()
    +
    +def TestMultiDomain():
    +    TestSection("Multi-domain")
    +    OpenDatabase(multi_domain_path + "/d3samp6.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(90)
    +
    +    AddPlot("Pseudocolor", "Primal/Shared/strain/exy")
    +    DrawPlots()
    +    Test("mili_multi_dom_01")
    +    ChangeActivePlotsVar("Primal/Shared/stress/sz")
    +    Test("mili_multi_dom_02")
    +
    +    DeleteAllPlots()
    +
    +
    +def TestParticles():
    +    TestSection("Particles")
    +    OpenDatabase(single_domain_path + "/sslide14ball_l.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(0)
    +
    +    AddPlot("Pseudocolor", "Primal/particle/stress/sxy")
    +    DrawPlots()
    +    Test("mili_particle_01")
    +    DeleteAllPlots()
    +
    +
    +def TestStaticNodes():
    +    TestSection("Static nodes")
    +    OpenDatabase(single_domain_path + "/m1_plot.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +
    +    AddPlot("Mesh", "mesh1")
    +    AddPlot("Pseudocolor", "Primal/node/temp")
    +    SetTimeSliderState(10)
    +    DrawPlots()
    +    Test("mili_static_nodes_01")
    +    DeleteAllPlots()
    +
    +
    +def TestLabels():
    +    TestSection("Labels")
    +    OpenDatabase(single_domain_path + "/d3samp6.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(90)
    +
    +    AddPlot("Pseudocolor", "Primal/Shared/edrate")
    +    AddPlot("Label", "OriginalZoneLabels")
    +    DrawPlots()
    +    Test("mili_zone_labels_01")
    +
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Primal/Shared/edrate")
    +    AddPlot("Label", "OriginalNodeLabels")
    +    DrawPlots()
    +    Test("mili_node_labels_01")
    +    DeleteAllPlots()
    +
    +
    +def TestSciNotation():
    +    TestSection("Sci notation read")
    +    #
    +    # Some .mili files contain integers in scientific notation.
    +    # These need to be handled appropriately.
    +    #
    +    OpenDatabase(single_domain_path + "/HexModel1.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +
    +    AddPlot("Pseudocolor", "Primal/brick/stress/sx")
    +    DrawPlots()
    +    Test("mili_from_sci_not")
    +    DeleteAllPlots()
    +
    +
    +def TestMultiSubrecRead():
    +    TestSection("Multi-subrecord read")
    +    #
    +    # This tests a bug fix that occurred when loading variables
    +    # that span several subrecords at different offsets.
    +    #
    +    OpenDatabase(single_domain_path + "/test4_0.15.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +
    +    AddPlot("Pseudocolor", "Primal/brick/stress/sx")
    +    DrawPlots()
    +    Test("mili_subrec_offset")
    +    DeleteAllPlots()
    +
    +
    +def TestDerivedVariables():
    +    TestSection("Derived variables")
    +    OpenDatabase(single_domain_path + "/m_plot.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.49, 0.19, 0.85)
    +    SetView3D(v)
    +
    +    SetTimeSliderState(85)
    +
    +    #
    +    # Node centered derivations.
    +    #
    +    AddPlot("Pseudocolor", "Derived/node/displacement/dispx")
    +    DrawPlots()
    +    Test("mili_derived_00")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Derived/node/displacement/dispy")
    +    DrawPlots()
    +    Test("mili_derived_01")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Derived/node/displacement/dispz")
    +    DrawPlots()
    +    Test("mili_derived_02")
    +    DeleteAllPlots()
    +
    +    AddPlot("Vector", "Derived/node/displacement")
    +    DrawPlots()
    +    Test("mili_derived_03")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "sand_mesh/Derived/node/displacement/dispz")
    +    DrawPlots()
    +    Test("mili_derived_04")
    +    DeleteAllPlots()
    +
    +    #
    +    # Stress/strain derivations. In m_plot, only stress comes from
    +    # the database, and we derive strain and all of its derivations
    +    # using VisIt expressions.
    +    #
    +    AddPlot("Pseudocolor", "Derived/brick/stress/prin_stress/2")
    +    DrawPlots()
    +    Test("mili_derived_05")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Derived/brick/stress/pressure")
    +    DrawPlots()
    +    Test("mili_derived_06")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Derived/Shared/strain/almansi/max_shear_almansi")
    +    DrawPlots()
    +    Test("mili_derived_07")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor",
    +        "Derived/Shared/strain/green_lagrange/prin_dev_green_lagrange/2")
    +    DrawPlots()
    +    Test("mili_derived_08")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Derived/Shared/strain/infinitesimal/x")
    +    DrawPlots()
    +    Test("mili_derived_09")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Derived/Shared/strain/rate/yz")
    +    DrawPlots()
    +    Test("mili_derived_10")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "sand_mesh/Derived/Shared/strain/rate/yz")
    +    DrawPlots()
    +    Test("mili_derived_11")
    +    DeleteAllPlots()
    +
    +    AddPlot("Tensor", "Derived/Shared/strain/green_lagrange")
    +    DrawPlots()
    +    Test("mili_derived_12")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Derived/Shared/relative_volume")
    +    DrawPlots()
    +    Test("mili_derived_13")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Derived/Shared/volumetric_strain")
    +    DrawPlots()
    +    Test("mili_derived_14")
    +    DeleteAllPlots()
    +
    +
    +def TestGlobalIntegrationPoint():
    +    TestSection("Global integration point")
    +
    +    db_path = single_domain_path + "/d3samp6.plt.mili"
    +    OpenDatabase(db_path)
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(90)
    +
    +    AddPlot("Pseudocolor", "Primal/Shared/strain/exy")
    +    DrawPlots()
    +
    +    mili_options = GetDefaultFileOpenOptions("Mili")
    +    mili_options["Global integration point"] = "Inner"
    +    SetDefaultFileOpenOptions("Mili", mili_options)
    +    ReOpenDatabase(db_path)
    +    Test("mili_global_ip_00")
    +
    +    mili_options = GetDefaultFileOpenOptions("Mili")
    +    mili_options["Global integration point"] = "Middle"
    +    SetDefaultFileOpenOptions("Mili", mili_options)
    +    ReOpenDatabase(db_path)
    +    Test("mili_global_ip_01")
    +
    +    mili_options = GetDefaultFileOpenOptions("Mili")
    +    mili_options["Global integration point"] = "Outer"
    +    SetDefaultFileOpenOptions("Mili", mili_options)
    +    ReOpenDatabase(db_path)
    +    Test("mili_global_ip_02")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db_path)
    +
    +def TestMaterialEdgeLines():
    +    TestSection("Material edge lines")
    +
    +    db_path = multi_domain_path + "/d3samp6.plt.mili"
    +    OpenDatabase(db_path)
    +
    +    AddPlot("FilledBoundary", "materials1")
    +    DrawPlots()
    +
    +    AddPlot("FilledBoundary", "materials1")
    +
    +    silr = SILRestriction()
    +    silr.SuspendCorrectnessChecking()
    +    silr.TurnOffAll()
    +    for silSet in (24,29,34,39,44,49,54,59):
    +        silr.TurnOnSet(silSet)
    +    silr.EnableCorrectnessChecking()
    +    SetPlotSILRestriction(silr ,1)
    +
    +    SetActivePlots(1)
    +    FilledBoundaryAtts = FilledBoundaryAttributes()
    +    FilledBoundaryAtts.colorType = FilledBoundaryAtts.ColorBySingleColor  # ColorBySingleColor, ColorByMultipleColors, ColorByColorTable
    +    FilledBoundaryAtts.singleColor = (0, 0, 0, 255)
    +    FilledBoundaryAtts.wireframe = 1
    +    SetPlotOptions(FilledBoundaryAtts)
    +
    +    SetViewExtentsType(1)
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0.673534, 0.187326, -0.715025)
    +    View3DAtts.focus = (0.75, 0.75, 2.6)
    +    View3DAtts.viewUp = (-0.667323, 0.570092, -0.479244)
    +    View3DAtts.parallelScale = 1.13358
    +    View3DAtts.nearPlane = -2.26716
    +    View3DAtts.farPlane = 2.26716
    +    View3DAtts.imageZoom = 0.826446
    +    SetView3D(View3DAtts)
    +
    +    DrawPlots()
    +
    +    Test("mili_hidden_material_edge_lines")
    +
    +    SetViewExtentsType(0)
    +    ResetView()
    +    DeleteAllPlots()
    +    CloseDatabase(db_path)
    +
    +def TestDisplacement():
    +    TestSection("Displacement")
    +
    +    db_path = single_domain_path + "/d3samp6.plt.mili"
    +    OpenDatabase(db_path)
    +
    +    SetTimeSliderState(100)
    +
    +    AddPlot("Mesh", "mesh1")
    +    MeshAtts = MeshAttributes()
    +    MeshAtts.opaqueMode = MeshAtts.On  # Auto, On, Off
    +    SetPlotOptions(MeshAtts)
    +
    +    AddPlot("Vector", "Derived/node/displacement")
    +
    +    SetActivePlots(0)
    +    AddOperator("Displace", 1)
    +    DisplaceAtts = DisplaceAttributes()
    +    DisplaceAtts.factor = 1
    +    DisplaceAtts.variable = "Derived/node/displacement"
    +    SetOperatorOptions(DisplaceAtts, 0, 1)
    +
    +    DrawPlots()
    +    SetViewExtentsType(1)
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0.709435, 0.445393, -0.546193)
    +    View3DAtts.focus = (0.750029, 0.750029, 1.28125)
    +    View3DAtts.viewUp = (-0.422366, 0.889093, 0.176411)
    +    View3DAtts.parallelScale = 1.66334
    +    View3DAtts.nearPlane = -3.32667
    +    View3DAtts.farPlane = 3.32667
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 0.564474
    +    SetView3D(View3DAtts)
    +
    +    DrawPlots()
    +
    +    Test("mili_displacement")
    +
    +    SetViewExtentsType(0)
    +    ResetView()
    +    DeleteAllPlots()
    +    CloseDatabase(db_path)
    +
    +def Main():
    +    TestComponentVis()
    +    TestNonSharedElementSets()
    +    TestSharedElementSets()
    +    TestMaterialVar()
    +    TestTensors()
    +    TestVectors()
    +    TestSandMesh()
    +    TestMaterials()
    +    TestMultiDomain()
    +    TestParticles()
    +    TestStaticNodes()
    +    TestLabels()
    +    TestSciNotation()
    +    TestMultiSubrecRead()
    +    TestDerivedVariables()
    +    TestGlobalIntegrationPoint()
    +    TestMaterialEdgeLines()
    +    TestDisplacement()
    +
    +Main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_miranda.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_miranda.html new file mode 100644 index 000000000..885ff5c65 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_miranda.html @@ -0,0 +1,108 @@ + +Results for databases/miranda.py + +

    Results of VisIt Regression Test - databases/miranda

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    miranda_raw_reader10.000.00
    miranda_raw_reader20.000.00
    miranda_raw_reader30.000.00
    miranda_raw_reader40.000.00
    miranda_raw_reader50.000.00
    miranda_raw_reader60.000.00
    miranda_raw_reader70.000.00
    miranda_raw_reader80.000.00
    miranda_raw_reader90.000.00
    miranda_raw_reader100.000.00
    miranda_raw_reader110.000.00
    miranda_raw_reader120.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_miranda_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_miranda_py.html new file mode 100644 index 000000000..faa2cc86e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_miranda_py.html @@ -0,0 +1,156 @@ +databases/miranda.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  miranda.py 
    +#
    +#  Tests:      miranda raw dumps
    +#
    +#  Programmer: David Bremer
    +#  Date:       Feb 20, 2007
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Tue Jul 15 10:43:58 EDT 2008
    +#    Changed number of vectors in vector plot to match the old behavior.
    +#    (We now account for how many domains there are.)
    +#
    +#    Jeremy Meredith, Thu Jan 14 11:19:12 EST 2010
    +#    Changed the path to the test data.
    +#
    +# ----------------------------------------------------------------------------
    +import os, string
    +
    +# ====================================================================
    +
    +OpenDatabase(data_path("miranda_test_data/TG_vortex/plot.raw"))
    +
    +AddPlot("Pseudocolor","density")
    +DrawPlots()
    +Test("miranda_raw_reader1")
    +
    +# ====================================================================
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +Test("miranda_raw_reader2")
    +
    +# ====================================================================
    +
    +SetTimeSliderState(1)
    +Test("miranda_raw_reader3")
    +
    +# ====================================================================
    +
    +SetTimeSliderState(2)
    +DeleteAllPlots()
    +AddPlot("Vector", "velocity")
    +vec = VectorAttributes()
    +vec.nVectors = 400*64
    +SetPlotOptions(vec)
    +DrawPlots()
    +Test("miranda_raw_reader4")
    +
    +# ====================================================================
    +
    +v=GetView3D()
    +v.viewNormal=(-0.707107, -0.707107, 0)
    +v.viewUp=(0, 0, 1)
    +SetView3D(v)
    +Test("miranda_raw_reader5")
    +
    +# ====================================================================
    +
    +DeleteAllPlots()
    +ReplaceDatabase(data_path("miranda_test_data/jet_2d/plot_mat_t83.raw"))
    +
    +
    +SetTimeSliderState(0)
    +AddPlot("Pseudocolor","density")
    +DrawPlots()
    +Test("miranda_raw_reader6")
    +
    +# ====================================================================
    +
    +SetTimeSliderState(1)
    +DeleteAllPlots()
    +AddPlot("Vector", "velocity")
    +vec = VectorAttributes()
    +vec.nVectors = 400*128
    +SetPlotOptions(vec)
    +DrawPlots()
    +vv=GetView2D()
    +vv.viewportCoords=(0.2, 0.95, 0.15, 0.95)
    +vv.windowCoords=(0.00640306, 0.00963122, 0.0128936, 0.0161598)
    +SetView2D(vv)
    +Test("miranda_raw_reader7")
    +
    +# ====================================================================
    +
    +SetTimeSliderState(2)
    +Test("miranda_raw_reader8")
    +
    +# ====================================================================
    +
    +DeleteAllPlots()
    +ReplaceDatabase(data_path("miranda_test_data/stem_2d/plot.mir"))
    +
    +vv = View2DAttributes()
    +vv.windowCoords = (0, 2.23563, -0.28, 0.835625)
    +vv.viewportCoords = (0.05, 0.95, 0.05, 0.95)
    +vv.fullFrameActivationMode = vv.On  # On, Off, Auto
    +vv.fullFrameAutoThreshold = 100
    +SetView2D(vv)
    +
    +SetTimeSliderState(0)
    +AddPlot("Pseudocolor","density")
    +DrawPlots()
    +Test("miranda_raw_reader9")
    +
    +# ====================================================================
    +
    +SetTimeSliderState(3)
    +DrawPlots()
    +Test("miranda_raw_reader10")
    +
    +# ====================================================================
    +
    +ReplaceDatabase(data_path("miranda_test_data/2015-05-06-RT_XeHe/plot.mir"))
    +
    +SetTimeSliderState(0)
    +
    +AddPlot("Pseudocolor","density")
    +
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (-0.626786, -0.71511, 0.309445)
    +View3DAtts.focus = (0, 0, 0)
    +View3DAtts.viewUp = (-0.109109, 0.473773, 0.873861)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 11085.1
    +View3DAtts.nearPlane = -22170.3
    +View3DAtts.farPlane = 22170.3
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (0, 0, 0)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +View3DAtts.windowValid = 1
    +SetView3D(View3DAtts)
    +
    +DrawPlots()
    +
    +Test("miranda_raw_reader11")
    +
    +# ====================================================================
    +
    +SetTimeSliderState(1)
    +DrawPlots()
    +
    +Test("miranda_raw_reader12")
    +
    +# ====================================================================
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_moab.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_moab.html new file mode 100644 index 000000000..0bd991d34 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_moab.html @@ -0,0 +1,62 @@ + +Results for databases/moab.py + +

    Results of VisIt Regression Test - databases/moab

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    moab_011.290.01
    moab_020.000.00
    moab_030.000.00
    moab_040.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_moab_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_moab_py.html new file mode 100644 index 000000000..0c8bffba1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_moab_py.html @@ -0,0 +1,61 @@ +databases/moab.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  moab.py
    +#
    +#  Tests:      mesh      - 3D unstructured,multi-domain, 
    +#              plots     - Pseudocolor, mesh
    +#
    +#  Programmer: Mark C Miller
    +#  Date:       August 10, 2016
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("MOAB")
    +
    +OpenDatabase(data_path("moab_test_data/64bricks_12ktet.h5m"))
    +
    +AddPlot("Mesh", "mesh")
    +AddPlot("Pseudocolor", "NODE_vertex_field")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.RotateAxis(0,45)
    +v.RotateAxis(1,135)
    +SetView3D(v)
    +Test("moab_01")
    +
    +DeleteAllPlots()
    +AddPlot("Mesh", "mesh")
    +AddPlot("Subset", "Materials")
    +DrawPlots()
    +Test("moab_02")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("moab_test_data/64bricks_12ktet.h5m"))
    +
    +OpenDatabase(data_path("moab_test_data/64bricks_512hex_256part.h5m"))
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.RotateAxis(0,45)
    +v.RotateAxis(1,135)
    +SetView3D(v)
    +Test("moab_03")
    +
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i)[0:8] == "GeomSet_":
    +        silr.TurnOffSet(i)
    +    if   silr.SetName(i) == "GeomSet_427_dim_2":
    +        silr.TurnOnSet(i)
    +    elif silr.SetName(i) == "GeomSet_433_dim_2":
    +        silr.TurnOnSet(i)
    +    elif silr.SetName(i) == "GeomSet_438_dim_2":
    +        silr.TurnOnSet(i)
    +    elif silr.SetName(i) == "GeomSet_443_dim_2":
    +        silr.TurnOnSet(i)
    +SetPlotSILRestriction(silr)
    +Test("moab_04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_multi_format.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_multi_format.html new file mode 100644 index 000000000..d6ff4993b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_multi_format.html @@ -0,0 +1,60 @@ + +Results for databases/multi_format.py + +

    Results of VisIt Regression Test - databases/multi_format

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    multi_format_010.000.00
    multi_format_020.000.00
    multi_format_030.000.00
    multi_format_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_multi_format2.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_multi_format2.html new file mode 100644 index 000000000..21d34d3ef --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_multi_format2.html @@ -0,0 +1,42 @@ + +Results for databases/multi_format2.py + +

    Results of VisIt Regression Test - databases/multi_format2

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    multi_format2_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_multi_format2_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_multi_format2_py.html new file mode 100644 index 000000000..ed7a66f11 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_multi_format2_py.html @@ -0,0 +1,53 @@ +databases/multi_format2.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  multi_format2.py 
    +#
    +#  Tests:      Using multiple file formats types in the same engine.
    +#
    +#  Programmer: Jeremy Meredith
    +#  Creation:   March 23, 2004
    +#
    +#  Tests a strange case related to the original multi_format.py where the
    +#  engine is restarted implicitly.  This is currently skipped in parallel
    +#  since an implicit engine restart does not pick up the same paralell args.
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +db = (silo_data_path("rect2d.silo") ,
    +      data_path("pdb_test_data/allinone00.pdb"))
    +
    +# Create a Pseudocolor plot of Rect2d.
    +OpenDatabase(db[0])
    +AddPlot("Pseudocolor", "p")
    +
    +# Move it off to the side
    +t=TransformAttributes()
    +t.doTranslate = 1
    +t.translateX = 11.0
    +t.doScale = 1;
    +t.scaleX = 22.5;
    +t.scaleY = 22.5;
    +SetDefaultOperatorOptions(t)
    +AddOperator("Transform")
    +
    +# Create a Pseudocolor plot of AllInOne
    +OpenDatabase(db[1])
    +AddPlot("FilledBoundary", "material(mesh)")
    +
    +# Close the compute engine!
    +CloseComputeEngine("localhost");
    +
    +# Allow it to restart
    +DrawPlots()
    +
    +# Test it!
    +Test("multi_format2_01")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_multi_format_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_multi_format_py.html new file mode 100644 index 000000000..6c9273a84 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_multi_format_py.html @@ -0,0 +1,66 @@ +databases/multi_format.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  multi_format.py 
    +#
    +#  Tests:      Using multiple file formats types in the same engine.
    +#
    +#  Programmer: Hank Childs
    +#  Creation:   March 22, 2004
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Mar 9 09:15:30 PDT 2005
    +#    Removed deprecated functions.
    +#
    +#    Tom Fogal, Tue Dec 15 17:34:00 MST 2009
    +#    Fix path to data.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +db = (data_path("silo_pdb_test_data/wave*.silo database"),
    +      data_path("pdb_test_data/allinone00.pdb"))
    +
    +# Create a Pseudocolor plot of wave.
    +OpenDatabase(db[0])
    +AddPlot("Pseudocolor", "pressure")
    +DrawPlots()
    +
    +# Set the view.
    +v0 = View3DAttributes()
    +v0.viewNormal = (-0.661743, 0.517608, 0.542382)
    +v0.focus = (5, 0.757692, 2.5)
    +v0.viewUp = (0.370798, 0.854716, -0.363277)
    +v0.viewAngle = 30
    +v0.parallelScale = 5.63924
    +v0.nearPlane = -11.2785
    +v0.farPlane = 11.2785
    +v0.imagePan = (0.00100868, 0.0454815)
    +v0.imageZoom = 1.17935
    +v0.perspective = 1
    +SetView3D(v0)
    +Test("multi_format_01")
    +
    +# Create another window and make sure that it has the wave database as its
    +# active source.
    +CloneWindow()
    +SetActiveWindow(2)
    +DeleteAllPlots()
    +
    +# Open the allinone database and make sure that it becomes the active source.
    +OpenDatabase(db[1])
    +
    +# Create a plot from it.
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +Test("multi_format_02")
    +# note: py3 div creates float
    +SetTimeSliderState(int(TimeSliderGetNStates() / 2))
    +Test("multi_format_03")
    +
    +# Switch back to window 1.
    +SetActiveWindow(1)
    +Test("multi_format_04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_netcdf.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_netcdf.html new file mode 100644 index 000000000..ea8c3518b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_netcdf.html @@ -0,0 +1,212 @@ + +Results for databases/netcdf.py + +

    Results of VisIt Regression Test - databases/netcdf

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ADAPT files
    netcdf_0_000.000.00
    netcdf_0_010.000.00
    netcdf_0_020.000.00
    netcdf_0_030.000.00
    LODI particle files
    netcdf_1_000.000.00
    netcdf_1_010.000.00
    netcdf_1_020.000.00
    LODI files
    Basic NETCDF reader
    netcdf_3_000.000.00
    netcdf_3_010.080.00
    netcdf_3_020.000.00
    netcdf_3_030.000.00
    netcdf_3_040.000.00
    netcdf_3_050.000.00
    netcdf_3_060.000.00
    netcdf_3_070.000.00
    netcdf_3_080.000.00
    Basic NETCDF reader with zone-centered data
    netcdf_3_090.000.00
    netcdf_3_100.000.00
    CCSM reader
    netcdf_4_000.000.00
    netcdf_4_010.000.00
    netcdf_4_020.000.00
    Time-varying curves
    netcdf_5_000.000.00
    netcdf_5_010.000.00
    FVCOM reader
    netcdf_6_000.000.00
    netcdf_6_010.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_netcdf_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_netcdf_py.html new file mode 100644 index 000000000..ac5912b38 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_netcdf_py.html @@ -0,0 +1,425 @@ +databases/netcdf.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  netcdf.py
    +#
    +#  Tests:      mesh      - 2D, 3D structured, single domain
    +#              plots     - Mesh, Pseudocolor, FilledBoundary
    +#              operators - Transform
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Mon Aug 22 11:37:35 PDT 2005
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Oct 10 11:20:44 PDT 2007
    +#    Added tests for CCSM data.
    +#
    +#    Jeremy Meredith, Fri Aug  8 11:23:29 EDT 2008
    +#    Updated streamline settings to match new attribute fields.
    +#
    +#    Brad Whitlock, Mon 16:37:34 PST 2009
    +#    I removed the Streamline plot and I fixed some other things to get it
    +#    working again.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Brad Whitlock, Thu Sep  9 11:03:30 PDT 2010
    +#    I added tests for time-varying curves, FVCOM.
    +#
    +#    Kathleen Biagas, Fri Sep 21 10:12:15 MST 2012
    +#    Removed pjoin so that tests can run on Windows.
    +#
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#    individually to match current baseline results.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Replace obsolete Label text attributes with new versions.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("NETCDF")
    +
    +def test0():
    +    TestSection("ADAPT files")
    +    OpenDatabase(data_path("netcdf_test_data/narac/adapt_etex_metfld_from_obs_102312.nc"))
    +    AddPlot("Pseudocolor", "u")
    +    AddPlot("Mesh", "main")
    +    SetActivePlots((0,1))
    +    AddOperator("Transform")
    +    t = TransformAttributes()
    +    t.scaleZ = 200
    +    t.doScale = 1
    +    SetOperatorOptions(t)
    +    DrawPlots()
    +
    +    # Set the view
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.70982, -0.515727, 0.479773)
    +    v.focus = (0, 0, 753888)
    +    v.viewUp = (0.359948, 0.319901, 0.876414)
    +    v.viewAngle = 30
    +    v.parallelScale = 2.38503e+06
    +    v.nearPlane = -4.77005e+06
    +    v.farPlane = 4.77005e+06
    +    v.imagePan = (0.000886525, 0.00976909)
    +    v.imageZoom = 0.952092
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 753888)
    +    SetView3D(v)
    +    Test("netcdf_0_00")
    +
    +    # Set up another view.
    +    v1 = View3DAttributes()
    +    v1.viewNormal = (-0.434823, -0.389027, -0.812149)
    +    v1.focus = (0, 0, 753888)
    +    v1.viewUp = (-0.545125, -0.604143, 0.581249)
    +    v1.viewAngle = 30
    +    v1.parallelScale = 2.38503e+06
    +    v1.nearPlane = -4.77005e+06
    +    v1.farPlane = 4.77005e+06
    +    v1.imagePan = (0.00461106, -0.0368703)
    +    v1.imageZoom = 0.952092
    +    v1.perspective = 1
    +    v1.eyeAngle = 2
    +    v1.centerOfRotationSet = 0
    +    v1.centerOfRotation = (0, 0, 753888)
    +    SetView3D(v1)
    +    Test("netcdf_0_01")
    +
    +    # Plot the terrain by stripping away most of the air.
    +    SetActivePlots(1)
    +    DeleteActivePlots()
    +    AddOperator("IndexSelect")
    +    idxsel = IndexSelectAttributes()
    +    idxsel.dim = idxsel.ThreeD
    +    idxsel.zMax = 1
    +    SetOperatorOptions(idxsel)
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.394106, -0.0944361, 0.9142)
    +    v2.focus = (0, 0, 508267)
    +    v2.viewUp = (0.867549, 0.290123, 0.403965)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 2.31912e+06
    +    v2.nearPlane = -4.63825e+06
    +    v2.farPlane = 4.63825e+06
    +    v2.imagePan = (0.012587, 0.0291994)
    +    v2.imageZoom = 1.08833
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0, 0, 508267)
    +    SetView3D(v2)
    +    DrawPlots()
    +    Test("netcdf_0_02")
    +
    +    # Plot something 2D
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "ustar")
    +    p = PseudocolorAttributes()
    +    p.skewFactor = 0.01
    +    p.scaling = p.Skew
    +    DrawPlots()
    +    Test("netcdf_0_03")
    +    DeleteAllPlots()
    +
    +def test1():
    +    TestSection("LODI particle files")
    +    # First put in the terrain, though it is not a LODI particle file.
    +    OpenDatabase(data_path("netcdf_test_data/narac/adapt_etex_metfld_from_obs_102312.nc"))
    +    AddPlot("Pseudocolor", "u")
    +    AddOperator("Transform", 1)
    +    t = TransformAttributes()
    +    t.scaleZ = 200
    +    t.doScale = 1
    +    SetOperatorOptions(t)
    +    AddOperator("IndexSelect")
    +    idxsel = IndexSelectAttributes()
    +    idxsel.dim = idxsel.ThreeD
    +    idxsel.zMax = 1
    +    SetOperatorOptions(idxsel)
    +    DrawPlots()
    +
    +    # Now add the LODI particle file.
    +    db = data_path("netcdf_test_data/narac/ppart.nc")
    +    OpenDatabase(db)
    +    AddPlot("FilledBoundary", "sourceid")
    +    AddOperator("Transform")
    +    SetOperatorOptions(t)
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.57737, -0.765477, 0.28406)
    +    v.focus = (0, 0, 265602)
    +    v.viewUp = (0.165375, 0.231057, 0.958782)
    +    v.viewAngle = 30
    +    v.parallelScale = 2.27828e+06
    +    v.nearPlane = -4.55655e+06
    +    v.farPlane = 4.55655e+06
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 3.17577
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 265602)
    +    SetView3D(v)
    +    Test("netcdf_1_00")
    +
    +    # Do a Label plot
    +    AddPlot("Label", "sourceid")
    +    AddOperator("Transform")
    +    SetOperatorOptions(t)
    +    L = LabelAttributes()
    +    L.restrictNumberOfLabels = 0
    +    L.textFont1.scale = 6
    +    SetPlotOptions(L)
    +    DrawPlots()
    +    SetActivePlots(1)
    +    f = FilledBoundaryAttributes()
    +    f.pointSizePixels = 10
    +    SetPlotOptions(f)
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.57737, -0.765477, 0.28406)
    +    v2.focus = (0, 0, 265602)
    +    v2.viewUp = (0.165375, 0.231057, 0.958782)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 2.27828e+06
    +    v2.nearPlane = -4.55655e+06
    +    v2.farPlane = 4.55655e+06
    +    v2.imagePan = (-0.0022605, 0.0057171)
    +    v2.imageZoom = 111.554
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0, 0, 265602)
    +    SetView3D(v2)
    +    Test("netcdf_1_01")
    +
    +    # Delete the label plot and go forward in time
    +    SetActivePlots(2)
    +    DeleteActivePlots()
    +    SetView3D(v)
    +    SetActivePlots(1)
    +    f.pointSizePixels = 2
    +    SetPlotOptions(f)
    +    TimeSliderNextState()
    +    Test("netcdf_1_02")
    +    DeleteAllPlots()
    +
    +def test2():
    +    TestSection("LODI files")
    +    # This test is reserved for LODI once it is assured to be right.
    +    return
    +
    +def test3():
    +    TestSection("Basic NETCDF reader")
    +    OpenDatabase(data_path("netcdf_test_data/narac/etex_fill_lambertcc__4000_001.elev"))
    +    AddPlot("Pseudocolor", "elevations")
    +    DrawPlots()
    +    Test("netcdf_3_00")
    +
    +    # Elevate the data
    +    ClearWindow()
    +    AddOperator("Elevate")
    +    e = ElevateAttributes()
    +    e.useXYLimits = e.Always
    +    SetOperatorOptions(e)
    +    AddOperator("Transform")
    +    t = TransformAttributes()
    +    t.doScale = 1
    +    t.scaleX = 100
    +    t.scaleY = 100
    +    t.scaleZ = 3
    +    SetOperatorOptions(t)
    +    th = ThresholdAttributes()
    +    th.listedVarNames = ("elevations")
    +    th.lowerBounds = (1.0)
    +    SetDefaultOperatorOptions(th)
    +    AddOperator("Threshold")
    +    DrawPlots()
    +    # Set up a light
    +    oldLight = GetLight(0)
    +    newLight = GetLight(0)
    +    newLight.enabledFlag = 1
    +    newLight.type = newLight.Camera  # Ambient, Object, Camera
    +    newLight.direction = (-0.626, -0.427, -0.653)
    +    newLight.color = (255, 255, 255, 255)
    +    newLight.brightness = 1
    +    SetLight(0, newLight)
    +    # Set up the view
    +    v = View3DAttributes()
    +    v.viewNormal = (0, -0.5, 0.866025)
    +    v.focus = (0, 0, 1646)
    +    v.viewUp = (0, 0.866025, 0.5)
    +    v.viewAngle = 30
    +    v.parallelScale = 282140
    +    v.nearPlane = -564281
    +    v.farPlane = 564281
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1.43024
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 1646)
    +    SetView3D(v)
    +    InvertBackgroundColor()
    +    Test("netcdf_3_01")
    +    SetLight(0, oldLight)
    +    DeleteAllPlots()
    +    InvertBackgroundColor()
    +
    +    # Try some curves
    +    OpenDatabase(data_path("netcdf_test_data/3252ATT-A1H.cdf"))
    +    AddPlot("Curve", "ATTN_55")
    +    curveAtts = CurveAttributes()
    +    curveAtts.curveColorSource = curveAtts.Custom
    +    curveAtts.curveColor = (255, 0, 0, 255)
    +    SetPlotOptions(curveAtts)
    +    DrawPlots()
    +    Test("netcdf_3_02")
    +    DeleteAllPlots()
    +    OpenDatabase(data_path("netcdf_test_data/AAtestCTD.nc"))
    +    AddPlot("Curve", "ST_70")
    +    curveAtts.curveColor = (0, 255, 0, 255)
    +    SetPlotOptions(curveAtts)
    +    DrawPlots()
    +    ResetView()
    +    Test("netcdf_3_03")
    +    DeleteAllPlots()
    +
    +    # Try some files that I found on climate web sites.
    +    OpenDatabase(data_path("netcdf_test_data/pressure.cdf"))
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    ResetView()
    +    ToggleFullFrameMode() # Did this get set somehow by the curve plots?
    +    Test("netcdf_3_04")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(data_path("netcdf_test_data/aou.cdf"))
    +    AddPlot("Pseudocolor", "aou")
    +    AddOperator("Slice")
    +    s = SliceAttributes()
    +    s.axisType = s.ZAxis
    +    SetOperatorOptions(s)
    +    DrawPlots()
    +    ResetView()
    +    Test("netcdf_3_05")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(data_path("netcdf_test_data/NASA_vegetation_lai.cdf"))
    +    AddPlot("Pseudocolor", "lai")
    +    DrawPlots()
    +    v2 = View2DAttributes()
    +    v2.windowCoords = (-139.883, -44.1452, -18.7702, 74.4037)
    +    v2.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v2.fullFrameActivationMode = v2.Off  # On, Off, Auto
    +    v2.fullFrameAutoThreshold = 100
    +    SetView2D(v2)
    +    Test("netcdf_3_06")
    +    DeleteAllPlots()
    +
    +    # Try a file that used to crash on Windows
    +    db = "netcdf_test_data/Case5_2D-Q.nc"
    +    OpenDatabase(data_path(db))
    +    AddPlot("Pseudocolor", "Q")
    +    DrawPlots()
    +    ResetView()
    +    Test("netcdf_3_07")
    +    SetTimeSliderState(29)
    +    Test("netcdf_3_08")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path(db))
    +
    +    TestSection("Basic NETCDF reader with zone-centered data")
    +    swa = SaveWindowAttributes()
    +    swa.width = 1000
    +    swa.height = 1000
    +    swa.screenCapture = 0
    +    db = "netcdf_test_data/oase-mapdata.nc"
    +    OpenDatabase(data_path(db))
    +    AddPlot("Pseudocolor", "national_rivers_2D")
    +    DrawPlots()
    +    ResetView()
    +    Test("netcdf_3_09", swa)
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "as_zonal/national_rivers_2D")
    +    DrawPlots()
    +    ResetView()
    +    Test("netcdf_3_10", swa)
    +    DeleteAllPlots()
    +    CloseDatabase(data_path(db))
    +
    +def test4():
    +    TestSection("CCSM reader")
    +    db = "netcdf_test_data/tas_mean_T63.nc"
    +    OpenDatabase(data_path(db))
    +    AddPlot("Pseudocolor", "tas")
    +    DrawPlots()
    +    ResetView()
    +    Test("netcdf_4_00")
    +
    +    # Change to the last time state
    +    SetTimeSliderState(1187)
    +    Test("netcdf_4_01")
    +
    +    # Change to the global representation of the data
    +    ChangeActivePlotsVar("global/tas")
    +    ResetView()
    +    Test("netcdf_4_02")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path(db))
    +
    +def test5():
    +    TestSection("Time-varying curves")
    +    db = "netcdf_test_data/timecurve.nc"
    +    OpenDatabase(data_path(db))
    +    AddPlot("Curve", "theta_1_1")
    +    c = CurveAttributes()
    +    c.showLabels = 0
    +    c.curveColor = (255,0,0,255)
    +    c.curveColorSource = c.Custom
    +    SetPlotOptions(c)
    +    cv = GetViewCurve()
    +    cv.domainCoords = (0, 9)
    +    cv.rangeCoords = (0.40657, 5)
    +    cv.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    cv.domainScale = cv.LINEAR  # LINEAR, LOG
    +    cv.rangeScale = cv.LINEAR  # LINEAR, LOG
    +    SetViewCurve(cv)
    +    DrawPlots()
    +    Test("netcdf_5_00")
    +    SetTimeSliderState(4)
    +    Test("netcdf_5_01")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path(db))
    +
    +def test6():
    +    TestSection("FVCOM reader ")
    +    db = "netcdf_test_data/chn_0001.nc"
    +    OpenDatabase(data_path(db))
    +    AddPlot("Pseudocolor", "Dens3{S,Theta,P}")
    +    DrawPlots()
    +    ResetView()
    +    Test("netcdf_6_00")
    +    SetTimeSliderState(47)
    +    Test("netcdf_6_01")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path(db))
    +
    +def main():
    +    test0()
    +    test1()
    +    test2()
    +    test3()
    +    test4()
    +    test5()
    +    test6()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_obj.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_obj.html new file mode 100644 index 000000000..13550bbab --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_obj.html @@ -0,0 +1,126 @@ + +Results for databases/obj.py + +

    Results of VisIt Regression Test - databases/obj

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    obj_cube0.000.00
    obj_face10.000.00
    obj_face20.000.00
    obj_face30.000.00
    obj_face40.000.00
    obj_face50.000.00
    obj_face60.000.00
    obj_tri10.000.00
    obj_tri20.000.00
    obj_box0.000.00
    obj_colors0.000.00
    obj_immediate_colors0.000.00
    obj_scott10.000.00
    obj_scott20.000.00
    obj_scott30.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_obj_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_obj_py.html new file mode 100644 index 000000000..ff7b56753 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_obj_py.html @@ -0,0 +1,85 @@ +databases/obj.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  obj.py
    +#
    +#  Tests:      Wavefront OBJ reader
    +#                  - relative indexing
    +#                  - groups w/ and w/o multiple inclusion via enum scalar
    +#                  - groups with coloration (via material)
    +#
    +#  Programmer: Mark C. Miller, Tue Oct 23 16:09:00 PDT 2018
    +#
    +# ----------------------------------------------------------------------------
    +def TurnOnSetsByName(silr, setNames):
    +    silr.TurnOffAll()
    +    silr.TurnOnSet(1) # the block0 set
    +    for i in range(silr.NumSets()):
    +        if silr.SetName(i) in setNames:
    +            silr.TurnOnSet(i)
    +
    +OpenDatabase(data_path("obj_test_data/cube2.obj"))
    +
    +AddPlot("Mesh", "OBJMesh")
    +ma = MeshAttributes()
    +ma.opaqueColorSource = ma.OpaqueCustom
    +ma.opaqueColor = (192, 192, 192)
    +DrawPlots()
    +SetPlotOptions(ma)
    +
    +v = GetView3D()
    +v.viewNormal = (0.00415051, 0.90155, -0.432654)
    +v.viewUp = (0.959161, 0.118781, 0.256713)
    +SetView3D(v)
    +
    +Test("obj_cube")
    +
    +silr = SILRestriction()
    +setsToTest = ("face1","face2","face3","face4","face5","face6","tri1","tri2","box")
    +for set in setsToTest:
    +    TurnOnSetsByName(silr, (set,))
    +    SetPlotSILRestriction(silr)
    +    Test("obj_%s"%set)
    +
    +silr.TurnOnAll()
    +SetPlotSILRestriction(silr)
    +DeleteAllPlots()
    +CloseDatabase(data_path("obj_test_data/cube2.obj"))
    +OpenDatabase(data_path("obj_test_data/cube1.obj"))
    +
    +# Test coloration of faces from matlib
    +AddPlot("FilledBoundary", "GroupsAsMaterials")
    +DrawPlots()
    +v.RotateAxis(0,30)
    +SetView3D(v)
    +Test("obj_colors")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("obj_test_data/cube1.obj"))
    +OpenDatabase(data_path("obj_test_data/cube3.obj"))
    +
    +# Test coloration of faces from immediate mode colors
    +# Should be same picture as above
    +AddPlot("FilledBoundary", "GroupsAsMaterials")
    +DrawPlots()
    +Test("obj_immediate_colors")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("obj_test_data/cube3.obj"))
    +OpenDatabase(data_path("obj_test_data/test.obj"))
    +
    +# Test various objects from Scott's example database
    +AddPlot("FilledBoundary", "GroupsAsMaterials")
    +DrawPlots()
    +ResetView()
    +Test("obj_scott1")
    +silr = SILRestriction()
    +silr.TurnOffSet(17) # Plane
    +SetPlotSILRestriction(silr)
    +Test("obj_scott2")
    +silr.TurnOffSet(18) # Prism
    +SetPlotSILRestriction(silr)
    +Test("obj_scott3")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_oldsilo.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_oldsilo.html new file mode 100644 index 000000000..4e32f637c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_oldsilo.html @@ -0,0 +1,50 @@ + +Results for databases/oldsilo.py + +

    Results of VisIt Regression Test - databases/oldsilo

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    oldsilo_010.410.39
    oldsilo_020.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_oldsilo_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_oldsilo_py.html new file mode 100644 index 000000000..bd4a910f7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_oldsilo_py.html @@ -0,0 +1,38 @@ +databases/oldsilo.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  oldsilo.py 
    +#
    +#  Tests:      old-style silo files (netcdf driver)
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       February 11, 2004 
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Thu Jan 14 12:38:24 EST 2010
    +#    Changed path to point to new location.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(data_path("old_silo_test_data/pion0244.silo"))
    +
    +AddPlot("Pseudocolor","d")
    +AddPlot("Mesh","hydro_mesh")
    +DrawPlots()
    +Test("oldsilo_01")
    +DeleteAllPlots()
    +
    +OpenDatabase(data_path("old_silo_test_data/fwl.17217"))
    +
    +AddPlot("Pseudocolor","d")
    +AddPlot("Mesh","mesh1")
    +DrawPlots()
    +Test("oldsilo_02")
    +DeleteAllPlots()
    +
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_openPMD.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_openPMD.html new file mode 100644 index 000000000..3cd0fbe88 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_openPMD.html @@ -0,0 +1,47 @@ + +Results for databases/openPMD.py + +

    Results of VisIt Regression Test - databases/openPMD

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    3D Example openPMD File
    openPMD_3D_Fieldsrho0.220.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_openPMD_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_openPMD_py.html new file mode 100644 index 000000000..93ed2d634 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_openPMD_py.html @@ -0,0 +1,40 @@ +databases/openPMD.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  openPMD.py
    +#
    +#  Tests:      openPMD hdf5 files
    +#
    +#  Programmer: Dave Pugmire
    +#  Date:       Mon Oct 28 13:00:15 EDT 2019
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("OpenPMD")
    +
    +openPMDFile = 'openpmd_test_data/data00000500.opmd'
    +
    +vars = ['Fields/rho']
    +
    +def test(var, tagName) :
    +    SetTimeSliderState(1)
    +    AddPlot("Contour", var)
    +    SetActivePlots(0)
    +    ContourAtts = ContourAttributes()
    +    ContourAtts.minFlag = 1
    +    ContourAtts.min = 1
    +    ContourAtts.scaling = ContourAtts.Log
    +    SetPlotOptions(ContourAtts)
    +    DrawPlots()
    +    fileName = var.replace("/", "")
    +    Test(tagName + "_" +  fileName)
    +    DeleteAllPlots()
    +
    +
    +TestSection("3D Example openPMD File")
    +OpenDatabase(data_path(openPMDFile))
    +for var in vars:
    +    test(var,"openPMD_3D")
    +CloseDatabase(data_path(openPMDFile))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_openexr.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_openexr.html new file mode 100644 index 000000000..a98ba222d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_openexr.html @@ -0,0 +1,78 @@ + +Results for databases/openexr.py + +

    Results of VisIt Regression Test - databases/openexr

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    openexr_0_R0.000.00
    openexr_0_G0.000.00
    openexr_0_B0.000.00
    openexr_0_A0.000.00
    openexr_0_Z0.000.00
    openexr_0_L0.000.00
    openexr_0_value0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_openexr_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_openexr_py.html new file mode 100644 index 000000000..db803cd97 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_openexr_py.html @@ -0,0 +1,54 @@ +databases/openexr.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  openexr.py 
    +#
    +#  Tests:      openexr reading 
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Feb 15 14:16:45 PST 2018
    +#
    +#  Modifications:
    +# 
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("OpenEXR")
    +
    +def test0():
    +    DefineScalarExpression("masked_value", "if(gt(A, 0), value, 0)")
    +
    +    db = data_path("OpenEXR_test_data/noise_rgbazlv.exr")
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "R")
    +    DrawPlots()
    +    v = GetView2D()
    +    v.viewportCoords = (0, 1, 0, 1)
    +    SetView2D(v)
    +    Test("openexr_0_R")
    +
    +    ChangeActivePlotsVar("G")
    +    Test("openexr_0_G")
    +
    +    ChangeActivePlotsVar("B")
    +    Test("openexr_0_B")
    +
    +    ChangeActivePlotsVar("A")
    +    Test("openexr_0_A")
    +
    +    ChangeActivePlotsVar("Z")
    +    Test("openexr_0_Z")
    +
    +    ChangeActivePlotsVar("L")
    +    Test("openexr_0_L")
    +
    +    ChangeActivePlotsVar("masked_value")
    +    Test("openexr_0_value")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def main():
    +    test0()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_overlink.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_overlink.html new file mode 100644 index 000000000..448d341f4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_overlink.html @@ -0,0 +1,108 @@ + +Results for databases/overlink.py + +

    Results of VisIt Regression Test - databases/overlink

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    overlink_010.000.00
    overlink_020.000.00
    overlink_030.000.00
    overlink_040.000.00
    ANNOTATION_INT nodelists
    overlink_050.000.00
    overlink_060.000.00
    overlink_070.000.00
    overlink_080.000.00
    overlink_090.000.00
    overlink_100.000.00
    Large number of nodelists
    overlink_110.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_overlink_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_overlink_py.html new file mode 100644 index 000000000..9c6bacf17 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_overlink_py.html @@ -0,0 +1,152 @@ +databases/overlink.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  overlink.py 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       November 11, 2004 
    +#
    +#  Modifications:
    +#    Mark C. Miller, Mon Mar  2 12:44:59 PST 2009
    +#    Added tests for 3D and 2D ANNOTTAION_INT nodelists
    +#
    +#    Mark C. Miller, Thu Jun 18 21:43:45 PDT 2009
    +#    Added TestSection() for annotation int nodelists.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Mark C. Miller, Fri May  4 22:54:55 PDT 2012
    +#    Add a test for modestly large number of nodesets to test new vtkBitArray
    +#    approach to handling nodesets.
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(data_path("overlink_test_data/regrovl_qh_1000_10001_4/OvlTop.silo"))
    +
    +
    +#
    +# This is an interesting mesh 
    +#
    +AddPlot("Mesh","MMESH")
    +DrawPlots()
    +v=GetView3D()
    +v.viewNormal = (0.530656, 0.558421, 0.637629)
    +v.viewUp = (-0.401835, 0.82812, -0.390828)
    +SetView3D(v)
    +Test("overlink_01")
    +
    +AddPlot("Pseudocolor","nvar1")
    +DrawPlots()
    +Test("overlink_02")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Subset","domains(MMESH)")
    +DrawPlots()
    +Test("overlink_03")
    +
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "domain1":
    +        silr.TurnOffSet(i)
    +    elif silr.SetName(i) == "domain4":
    +        silr.TurnOffSet(i)
    +SetPlotSILRestriction(silr)
    +Test("overlink_04")
    +
    +#
    +# Test ANNOTATION_INT objects and read options
    +#
    +TestSection("ANNOTATION_INT nodelists")
    +DeleteAllPlots()
    +CloseDatabase(data_path("overlink_test_data/regrovl_qh_1000_10001_4/OvlTop.silo"))
    +
    +
    +# First test open with search for ANNOT_INT objects turned on
    +# but none actually in the database.
    +readOptions=GetDefaultFileOpenOptions("Silo")
    +readOptions["Search For ANNOTATION_INT (!!Slow!!)"] = 1
    +SetDefaultFileOpenOptions("Silo", readOptions)
    +OpenDatabase(silo_data_path("multipart_multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor","d")
    +DrawPlots()
    +ResetView()
    +Test("overlink_05")
    +
    +# likewise on single domain, single file
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multipart_multi_ucd3d.silo"))
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor","dx")
    +DrawPlots()
    +ResetView()
    +Test("overlink_06")
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("globe.silo"))
    +
    +
    +# Ok, now lets do some real annot_int work
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("globe.silo"))
    +
    +OpenDatabase(data_path("overlink_test_data/annotInt/sweptCellTagTest.silo"))
    +
    +AddPlot("Mesh","MMESH")
    +DrawPlots()
    +Test("overlink_07")
    +
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "negYNodes":
    +        silr.TurnOffSet(i)
    +        break
    +SetPlotSILRestriction(silr)
    +Test("overlink_08")
    +
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "negZNodes":
    +        silr.TurnOffSet(i)
    +        break
    +SetPlotSILRestriction(silr)
    +Test("overlink_09")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("overlink_test_data/annotInt/sweptCellTagTest.silo"))
    +
    +OpenDatabase(data_path("overlink_test_data/annotInt/overlink2dTest.silo"))
    +
    +AddPlot("Mesh","MMESH")
    +DrawPlots()
    +ResetView()
    +v = GetView2D()
    +v.windowCoords = (-0.360608, 6.36061, -0.115684, 6.11568)
    +SetView2D(v)
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "posR":
    +        silr.TurnOffSet(i)
    +        break
    +SetPlotSILRestriction(silr)
    +Test("overlink_10")
    +
    +TestSection("Large number of nodelists")
    +DeleteAllPlots()
    +CloseDatabase(data_path("overlink_test_data/annotInt/overlink2dTest.silo"))
    +
    +OpenDatabase(data_path("overlink_test_data/annotInt/overlink2dTstA.silo"))
    +
    +AddPlot("Mesh","MMESH")
    +DrawPlots()
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if (i%2 and silr.SetName(i)[0:5] == "cell_"):
    +        silr.TurnOffSet(i)
    +SetPlotSILRestriction(silr)
    +Test("overlink_11")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_pdbdatabase.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_pdbdatabase.html new file mode 100644 index 000000000..cabc0d7c3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_pdbdatabase.html @@ -0,0 +1,348 @@ + +Results for databases/pdbdatabase.py + +

    Results of VisIt Regression Test - databases/pdbdatabase

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Testing with /usr/WS1/visit/test_trunk/build/testdata/pdb_test_data/multi*.pdb database
    pdb_multi_000.000.00
    pdb_multi_010.000.00
    pdb_multi_020.000.00
    pdb_multi_030.000.00
    pdb_multi_040.000.00
    pdb_multi_050.000.00
    pdb_multi_060.000.00
    pdb_multi_070.000.00
    pdb_multi_080.000.00
    pdb_multi_090.000.00
    pdb_multi_100.000.00
    pdb_multi_110.000.00
    pdb_multi_120.000.00
    pdb_multi_130.000.00
    pdb_multi_140.000.00
    pdb_multi_150.000.00
    Testing with /usr/WS1/visit/test_trunk/build/testdata/pdb_test_data/family*.pdb database
    pdb_family_000.000.00
    pdb_family_010.000.00
    pdb_family_020.000.00
    pdb_family_030.000.00
    pdb_family_040.000.00
    pdb_family_050.000.00
    pdb_family_060.000.00
    pdb_family_070.000.00
    pdb_family_080.000.00
    pdb_family_090.000.00
    pdb_family_100.000.00
    pdb_family_110.000.00
    pdb_family_120.000.00
    pdb_family_130.000.00
    pdb_family_140.000.00
    pdb_family_150.000.00
    Testing with /usr/WS1/visit/test_trunk/build/testdata/pdb_test_data/allinone00.pdb
    pdb_allinone_000.000.00
    pdb_allinone_010.000.00
    pdb_allinone_020.000.00
    pdb_allinone_030.000.00
    pdb_allinone_040.000.00
    pdb_allinone_050.000.00
    pdb_allinone_060.000.00
    pdb_allinone_070.000.00
    pdb_allinone_080.000.00
    pdb_allinone_090.000.00
    pdb_allinone_100.000.00
    pdb_allinone_110.000.00
    pdb_allinone_120.000.00
    pdb_allinone_130.000.00
    pdb_allinone_140.000.00
    pdb_allinone_150.000.00
    Testing mixvars in Flash files
    pdb_nomix0.000.00
    pdb_mix0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_pdbdatabase_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_pdbdatabase_py.html new file mode 100644 index 000000000..c12b5a7a0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_pdbdatabase_py.html @@ -0,0 +1,247 @@ +databases/pdbdatabase.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  pdbdatabase.py
    +#
    +#  Tests:      mesh      - 2D,3D curvilinear, single domain
    +#              plots     - Pseudocolor, Subset, Vector
    +#              operators - Clip
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Sep 25 09:31:28 PDT 2003
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Mar 31 09:11:08 PDT 2004
    +#    I added code to clear the engine cache to reduce memory usage.
    +#
    +#    Brad Whitlock, Fri Apr 9 16:54:15 PST 2004
    +#    I added TestSection to divide up the tests a little.
    +#
    +#    Brad Whitlock, Thu Sep 2 12:08:59 PDT 2004
    +#    I replaced some deprecated calls with their new equivalents.
    +#
    +#    Brad Whitlock, Tue Dec 7 17:52:33 PST 2004
    +#    I added a test for mixvars in Flash files.
    +#
    +#    Mark C. Miller, Sat Feb  3 00:42:05 PST 2007
    +#    Added tests for array variables
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Replace obsolete Label text attributes with new versions.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("PDB")
    +
    +##
    +## This creates a name for a test.
    +##
    +def CreateTestName(testName, testIndex):
    +    name = "%s_%02d" % (testName, testIndex)
    +    return name
    +
    +def sv3():
    +    v3 = View3DAttributes()
    +    v3.viewNormal = (0.516282, 0.582114, 0.628169)
    +    v3.focus = (0, 0, 0)
    +    v3.viewUp = (-0.488576, 0.80261, -0.342213)
    +    v3.viewAngle = 30
    +    v3.parallelScale = 43.589
    +    v3.nearPlane = -87.178
    +    v3.farPlane = 87.178
    +    v3.imagePan = (0, 0)
    +    v3.imageZoom = 1.41577
    +    v3.perspective = 1
    +    SetView3D(v3)
    +
    +##
    +## This function performs the test using the specified database.
    +##
    +def TestWithDatabase(db, testName):
    +    TestSection("Testing with %s" % db)
    +
    +    # Open the test database
    +    OpenDatabase(db)
    +
    +    ##
    +    ## Do the 2D tests.
    +    ##
    +
    +    # Add the plots.
    +    AddPlot("FilledBoundary", "material(mesh)")
    +    DrawPlots()
    +
    +    # Do the first test in the series
    +    Test(CreateTestName(testName, 0))
    +
    +    SetTimeSliderState(6)
    +    Test(CreateTestName(testName, 1))
    +
    +    SetTimeSliderState(15)
    +    Test(CreateTestName(testName, 2))
    +
    +    # Do a test on the last frame in the animation.
    +    SetTimeSliderState(22)
    +    Test(CreateTestName(testName, 3))
    +
    +    AddPlot("Mesh", "mesh")
    +    DrawPlots()
    +    v = View2DAttributes()
    +    v.windowCoords = (-6.07862, -0.374491, 4.48986, 10.8545)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    SetView2D(v)
    +    Test(CreateTestName(testName, 4))
    +
    +    # Try turning off material 2
    +    SetActivePlots((0,1))
    +    TurnMaterialsOff("2")
    +    Test(CreateTestName(testName, 5))
    +    TurnMaterialsOn()
    +
    +    ResetView()
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "mesh/a")
    +    DrawPlots()
    +    Test(CreateTestName(testName, 6))
    +
    +    # Define a expression. I'm testing this because of the strange
    +    # <mesh/var> syntax that my plugin has.
    +    DefineVectorExpression("testexp1", "3.0 * {<mesh/lt>, <mesh/a>/399.0}")
    +    AddPlot("Vector", "testexp1")
    +    DrawPlots();
    +    vec = VectorAttributes()
    +    vec.nVectors = 1200
    +    vec.colorByMagnitude = 0
    +    SetPlotOptions(vec)
    +    v.windowCoords = (-9.51217, -0.289482, 0.983025, 10.6717)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    SetView2D(v)
    +    Test(CreateTestName(testName, 7))
    +
    +    # Set the time back to frame 0
    +    SetTimeSliderState(0)
    +    ResetView()
    +    DeleteAllPlots()
    +
    +    ##
    +    ## Do the 3D tests.
    +    ##
    +
    +    AddPlot("FilledBoundary", "material2(revolved_mesh)")
    +    AddOperator("Clip")
    +    c = ClipAttributes()
    +    c.funcType = c.Plane
    +    c.plane1Status = 0
    +    c.plane2Status = 1
    +    c.plane3Status = 1
    +    SetOperatorOptions(c)
    +    DrawPlots()
    +
    +    # Set the view
    +    sv3()
    +    Test(CreateTestName(testName, 8))
    +
    +    SetTimeSliderState(6)
    +    sv3()
    +    Test(CreateTestName(testName, 9))
    +
    +    SetTimeSliderState(15)
    +    sv3()
    +    Test(CreateTestName(testName, 10))
    +
    +    # Do a test on the last frame in the animation.
    +    SetTimeSliderState(22)
    +    sv3()
    +    Test(CreateTestName(testName, 11))
    +
    +    # Turn off some materials
    +    TurnMaterialsOff(("1", "3", "4"))
    +    sv3()
    +    Test(CreateTestName(testName, 12))
    +    TurnMaterialsOn()
    +
    +    # Set the time back to frame 2
    +    SetTimeSliderState(2)
    +    ResetView()
    +    DeleteAllPlots()
    +
    +    #
    +    # Test array variables
    +    #
    +    AddPlot("Pseudocolor","logical_mesh/marray_comps/comp_002")
    +    DrawPlots()
    +    Test(CreateTestName(testName, 13))
    +
    +    DeleteAllPlots()
    +    ResetView()
    +    AddPlot("Pseudocolor","revolved_mesh/marray_comps/comp_002")
    +    DrawPlots()
    +    Test(CreateTestName(testName, 14))
    +
    +    DeleteAllPlots()
    +    ResetView()
    +    AddPlot("Label","logical_mesh/marray")
    +    DrawPlots()
    +    Test(CreateTestName(testName, 15))
    +
    +    # Set the time back to frame 0
    +    SetTimeSliderState(0)
    +    ResetView()
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +    ClearCache("localhost")
    +
    +#
    +# Test mixvars.
    +#
    +def TestMixvars(db):
    +    TestSection("Testing mixvars in Flash files")
    +    DeleteAllPlots()
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "mesh/mixvar")
    +    DrawPlots()
    +    ResetView()
    +    v = View2DAttributes()
    +    v.windowCoords = (-9.51866, 3.29394, 13.9258, 26.4126)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.fullFrameActivationMode = v.Off
    +    SetView2D(v)
    +    Test("pdb_nomix")
    +
    +    # Do the same plot but with forced MIR so the mixvar gets reconstructed.
    +    ClearWindow()
    +    m = GetMaterialAttributes()
    +    m.forceMIR = 1
    +    SetMaterialAttributes(m)
    +    DrawPlots()
    +    Test("pdb_mix")
    +    DeleteAllPlots()
    +
    +#
    +# Run the test a few times with different versions of the database. We do this
    +# because we have the same database split up three different ways and all the
    +# ways a database can be split up must work.
    +#
    +#   multi{00,01,02}.pdb  - Contains multiple time states in each file but
    +#                          we group them all into "multi*.pdb database".
    +#
    +#   family??.pdb         - Contains a single time state in each file but
    +#                          we group them all into "family*.pdb database".
    +#
    +#   allinone00.pdb       - Contains all of the time states in one file.
    +#
    +
    +databases = (data_path("pdb_test_data/multi*.pdb database"),
    +             data_path("pdb_test_data/family*.pdb database"),
    +             data_path("pdb_test_data/allinone00.pdb"))
    +testNames = ("pdb_multi", "pdb_family", "pdb_allinone")
    +for i in range(len(databases)):
    +    TestWithDatabase(databases[i], testNames[i])
    +
    +# Do the mixvar test.
    +TestMixvars(databases[2])
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_pixie.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_pixie.html new file mode 100644 index 000000000..3758e1a80 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_pixie.html @@ -0,0 +1,98 @@ + +Results for databases/pixie.py + +

    Results of VisIt Regression Test - databases/pixie

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    pixie_010.000.00
    pixie_020.000.00
    pixie_030.000.00
    pixie_040.390.00
    pixie_050.100.00
    pixie_063.720.62
    pixie_070.980.01
    pixie_080.000.00
    pixie_090.000.00
    +

    Final Return Code: 120

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_pixie_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_pixie_py.html new file mode 100644 index 000000000..172d12e16 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_pixie_py.html @@ -0,0 +1,161 @@ +databases/pixie.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  pixie.py 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       April 4, 2005 
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# test a 2D pixie database
    +OpenDatabase(data_path("pixie_test_data/pixie3d3.h5"))
    +
    +
    +#
    +# Test simple read and display of a variable 
    +#
    +AddPlot("Pseudocolor","Car variables/Bx")
    +DrawPlots()
    +Test("pixie_01")
    +
    +AddPlot("Mesh","curvemesh_33x33x2")
    +DrawPlots()
    +Test("pixie_02")
    +
    +# really zoom in on the center of this mesh
    +v=GetView2D()
    +v.windowCoords = (-5.84435e-05, 5.84435e-05, -5.12076e-05, 5.12076e-05)
    +SetView2D(v)
    +Test("pixie_03")
    +
    +DeleteAllPlots()
    +
    +# test a 3D pixie database
    +OpenDatabase(data_path("pixie_test_data/pixie3d4.h5"))
    +
    +AddPlot("Mesh","curvemesh_33x33x33")
    +AddPlot("Contour","Car variables/Vx")
    +v=GetView3D()
    +v.viewNormal=(-0.5, 0, 0.866025)
    +SetView3D(v)
    +DrawPlots()
    +Test("pixie_04")
    +DeleteAllPlots()
    +ResetView()
    +
    +# test a pixie expression (plot vector magnitude)
    +OpenDatabase(data_path("pixie_test_data/pixie_expressions.h5"))
    +
    +# Test that vector data can be used. We use a Contour plot instead of a Vector
    +# plot now because the glyph indices for the Vector plot can change depending
    +# on how the mesh was automatically decomposed by the reader.
    +AddPlot("Contour","V_magnitude")
    +AddOperator("Transform")
    +t = TransformAttributes()
    +t.doScale = 1
    +t.scaleZ = 0.25
    +SetOperatorOptions(t)
    +DrawPlots()
    +v=GetView3D()
    +v.viewNormal = (0.557477, 0.525516, 0.642692)
    +v.focus = (0.484375, 0.5, 0.984375)
    +v.viewUp = (-0.252277, 0.844773, -0.471926)
    +v.viewAngle = 30
    +v.parallelScale = 1.22474
    +v.nearPlane = -2.44949
    +v.farPlane = 2.44949
    +v.imagePan = (0.0454993, 0.0670485)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0.484375, 0.5, 0.984375)
    +SetView3D(v)
    +Test("pixie_05")
    +DeleteAllPlots()
    +
    +# Test a transparent plot to see how well ghosting works when the
    +# mesh gets divided up in parallel.
    +DefineScalarExpression("one", "point_constant(curvemesh_33x33x65, 1.)")
    +AddPlot("Pseudocolor", "one")
    +pc = PseudocolorAttributes()
    +pc.SetOpacityType(pc.Constant)
    +pc.opacity = 0.31
    +SetPlotOptions(pc)
    +AddOperator("Transform")
    +t = TransformAttributes()
    +t.doScale = 1
    +t.scaleZ = 0.25
    +SetOperatorOptions(t)
    +DrawPlots()
    +Test("pixie_06")
    +DeleteAllPlots()
    +
    +# test a contour plot on double precision data
    +AddPlot("Contour","Car_variables/Vx")
    +v = GetView3D()
    +v.viewNormal = (0, 0, 1)
    +v.focus = (0.484375, 0.5, 3.9375)
    +v.viewUp = (0, 1, 0)
    +v.viewAngle = 30
    +v.parallelScale = 4.06202
    +v.nearPlane = -8.12404
    +v.farPlane = 8.12404
    +v.imagePan = (0, 0)
    +v.imageZoom = 20
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0.484375, 0.5, 3.9375)
    +SetView3D(v)
    +DrawPlots()
    +Test("pixie_07")
    +DeleteAllPlots()
    +
    +# test a mesh plot of a non-square, 2D, curvilinear mesh 
    +OpenDatabase(data_path("pixie_test_data/pixie3d5.h5"))
    +
    +AddPlot("Mesh","curvemesh_65x33x2")
    +AddPlot("Pseudocolor","Diagnostics/q factor")
    +DrawPlots()
    +v=GetView2D()
    +v.windowCoords=(-0.241119, 0.241119, -0.162714, 0.162714)
    +SetView2D(v)
    +Test("pixie_08")
    +DeleteAllPlots()
    +
    +# test a pseudocolor plot of a 3D curvilinear mesh
    +OpenDatabase(data_path("pixie_test_data/pixie3d6.h5"))
    +
    +AddPlot("Mesh", "curvemesh_8x8x8")
    +AddPlot("Pseudocolor","Curvilinear/temperature")
    +DrawPlots()
    +v = GetView3D()
    +v.viewNormal = (0.465617, -0.587141, 0.662168)
    +v.focus = (0.5, 1, 1.5)
    +v.viewUp = (0.884708, 0.327576, -0.33164)
    +v.viewAngle = 30
    +v.parallelScale = 1.63698
    +v.nearPlane = -3.27395
    +v.farPlane = 3.27395
    +v.imagePan = (0, 0)
    +v.imageZoom = 0.9
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0.5, 1, 1.5)
    +v.axis3DScaleFlag = 0
    +v.axis3DScales = (1, 1, 1)
    +v.shear = (0, 0, 1)
    +v.windowValid = 1
    +SetView3D(v)
    +Test("pixie_09")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_plaintext.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_plaintext.html new file mode 100644 index 000000000..d4d87054e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_plaintext.html @@ -0,0 +1,87 @@ + +Results for databases/plaintext.py + +

    Results of VisIt Regression Test - databases/plaintext

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    CSV data as Curves
    PlainText_Curves0.000.00
    CSV data as Curves inferred X coordinate
    PlainText_Curves_noX0.000.00
    CSV data as 3D points with variable(s)
    PlainText_Points0.000.00
    CSV data as 2D array on uniform grid
    PlainText_2DArray0.000.00
    CSV data with 1-character variable names
    PlainText_2DArray0.000.00
    PlainText_1dArray_Short_Var_Names0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_plaintext_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_plaintext_py.html new file mode 100644 index 000000000..d996354ff --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_plaintext_py.html @@ -0,0 +1,341 @@ +databases/plaintext.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  plaintext.py
    +#
    +#  Tests:      multiple curves from a CSV file without and with implicit X
    +#              2D and 3D points with variables in a CSV file
    +#              An array of data as a 2D regular grid
    +#
    +#  Notes:
    +#    - Code snippets from this file are literalinclude'd in our docs.
    +#    - Test image results produced by this test are also literalinclude'd.
    +#    - Input .csv files used here are also literalinclude'd.
    +#    - If you ever need to change the .csv files, you can regen them using
    +#      this script with 'genonly' CL arg and vanilla python (it won't make any
    +#      VisIt CLI calls).
    +#
    +#  Mark C. Miller, Fri Mar 11 14:33:30 PST 2022
    +#  Based on original code by Eric Brugger in our documentation
    +# 
    +#  Modifications:
    +#    Justin Privitera, Fri Sep 27 15:03:48 PDT 2024
    +#    Added tests for files with 1-char variable names.
    +# ----------------------------------------------------------------------------
    +import copy, math, os, sys
    +
    +#
    +# Example of PlainText open options dict...
    +#
    +# {'Data layout': '1D Columns # Options are: 1D Columns, 2D Array',
    +#  'Lines to skip at beginning of file': 0,
    +#  'First row has variable names': 0,
    +#  'Column for X coordinate (or -1 for none)': -1,
    +#  'Column for Y coordinate (or -1 for none)': -1,
    +#  'Column for Z coordinate (or -1 for none)': -1}
    +#
    +
    +#
    +# Use this function with deepcopy to ensure we always start from a
    +# prestine default state for open options.
    +#
    +def GetDefaultOpenOptions():
    +    if not hasattr(GetDefaultOpenOptions, 'defaultOpenOptions'):
    +        GetDefaultOpenOptions.defaultOpenOptions = copy.deepcopy(GetDefaultFileOpenOptions("PlainText"))
    +    return copy.deepcopy(GetDefaultOpenOptions.defaultOpenOptions)
    +
    +def CreateCurvesDataFile(filename):
    +
    +    # Curve gen {
    +    with open(filename, "wt") as f:
    +        # create header
    +        f.write("angle,sine,cosine\n")
    +        npts = 73
    +        for i in range(npts):
    +            angle_deg = float(i) * (360. / float(npts-1))
    +            angle_rad = angle_deg * (3.1415926535 / 180.)
    +            sine = math.sin(angle_rad)
    +            cosine = math.cos(angle_rad)
    +            # write abscissa (x value) and ordinates (y-value(s))
    +            f.write("%g,%g,%g\n" % (angle_deg, sine, cosine))
    +    # Curve gen }
    +
    +def CreateCurvesDataFileWithNoXCoordinates(filename):
    +
    +    # Curve noX gen {
    +    with open(filename, "wt") as f:
    +        # create header
    +        f.write("inverse,sqrt,quadratic\n")
    +        npts = 100
    +        for i in range(npts):
    +            inv = float(100) / (float(i)+1)
    +            sqr = 10 * math.sqrt(i)
    +            quad = float(i*i) / float(100)
    +            f.write("%g,%g,%g\n" % (inv, sqr, quad))
    +    # Curve noX gen }
    +
    +def Create3DPointsWithVariablesDataFile(filename):
    +
    +    # Points gen {
    +    with open(filename, "wt") as f:
    +        # write header
    +        f.write("x y z velx vely velz temp\n")
    +        n = 100
    +        for i in range(n):
    +            t = float(i) / float(n-1)
    +            angle = t * (math.pi * 2.) * 5.
    +            r = t * 10.
    +            x = r * math.cos(angle)
    +            y = r * math.sin(angle)
    +            z = t * 10.
    +            vx = math.sqrt(x*x + y*y)
    +            vy = math.sqrt(y*y + z*z)
    +            vz = math.sqrt(x*x + z*z)
    +            temp = math.sqrt((t-0.5)*(t-0.5))
    +            # write point and value(s)
    +            f.write("%g %g %g %g %g %g %g\n" % (x,y,z,vx,vy,vz,temp))
    +    # Points gen }
    +
    +def Create2DArrayDataFile(filename):
    +
    +    # Array gen {
    +    with open(filename, "wt") as f:
    +        # Only the first column name matters.
    +        # The others are required but otherwise ignored.
    +        f.write("density c2 c3 c4 c5 c6 c7 c8\n")
    +        nx = 8
    +        ny = 10
    +        for iy in range(ny):
    +            y = float(iy)
    +            for ix in range(nx):
    +                x = float(ix)
    +                dist = math.sqrt(x*x + y*y)
    +                if (ix < nx - 1):
    +                   f.write("%g " % dist)
    +                else:
    +                   f.write("%g\n" % dist)
    +    # Array gen }
    +
    +def CreateAnother2DArrayDataFile(filename):
    +
    +    # Array gen 2 {
    +    with open(filename, "wt") as f:
    +        # Only the first column name matters.
    +        # The others are required but otherwise ignored.
    +        f.write("d c2 c3 c4 c5 c6 c7 c8\n")
    +        f.write("0 1 2 3 4 5 6 7\n")
    +        f.write("1 1.41421 2.23607 3.16228 4.12311 5.09902 6.08276 7.07107\n")
    +        f.write("2 2.23607 2.82843 3.60555 4.47214 5.38516 6.32456 7.28011\n")
    +        f.write("3 3.16228 3.60555 4.24264 5 5.83095 6.7082 7.61577\n")
    +        f.write("4 4.12311 4.47214 5 5.65685 6.40312 7.2111 8.06226\n")
    +        f.write("5 5.09902 5.38516 5.83095 6.40312 7.07107 7.81025 8.60233\n")
    +        f.write("6 6.08276 6.32456 6.7082 7.2111 7.81025 8.48528 9.21954\n")
    +        f.write("7 7.07107 7.28011 7.61577 8.06226 8.60233 9.21954 9.89949\n")
    +        f.write("8 8.06226 8.24621 8.544 8.94427 9.43398 10 10.6301\n")
    +        f.write("9 9.05539 9.21954 9.48683 9.84886 10.2956 10.8167 11.4018\n")
    +    # Array gen 2 }
    +
    +def Create1DArrayDataFile(filename):
    +
    +    # Array gen 2 {
    +    with open(filename, "wt") as f:
    +        # Only the first column name matters.
    +        # The others are required but otherwise ignored.
    +        f.write("x y v\n")
    +        f.write("0 0 0.5\n")
    +        f.write("1 0 1.0\n")
    +        f.write("2 0 0.5\n")
    +        f.write("0 1 1.0\n")
    +        f.write("1 1 0.5\n")
    +        f.write("2 1 1.0\n")
    +        f.write("0 2 0.5\n")
    +        f.write("1 2 1.0\n")
    +        f.write("2 2 0.5\n")
    +    # Array gen 2 }
    +
    +def TestCSVCurves():
    +    TestSection("CSV data as Curves")
    +    CreateCurvesDataFile("curves.csv")
    +
    +    # Curve plot {
    +    # GetDefaultOpenOptions() is a wrapper internal to our tests to the CLI method GetDefaultFileOpenOptions().
    +    # It ensures we always start from a pristine default state for open options.
    +    plainTextOpenOptions = GetDefaultOpenOptions()
    +    plainTextOpenOptions['First row has variable names'] = 1
    +    plainTextOpenOptions['Column for X coordinate (or -1 for none)'] = 0
    +    SetDefaultFileOpenOptions("PlainText", plainTextOpenOptions)
    +
    +    OpenDatabase("curves.csv")
    +    AddPlot("Curve","sine")
    +    AddPlot("Curve","cosine")
    +    DrawPlots()
    +    # Curve plot }
    +    ResetView()
    +    Test("PlainText_Curves")
    +    DeleteAllPlots()
    +    CloseDatabase("curves.csv")
    +    os.unlink("curves.csv")
    +
    +def TestCSVCurvesNoX():
    +    TestSection("CSV data as Curves inferred X coordinate")
    +    CreateCurvesDataFileWithNoXCoordinates("curves_nox.csv")
    +
    +    # Curve noX plot {
    +    # GetDefaultOpenOptions() is a wrapper internal to our tests to the CLI method GetDefaultFileOpenOptions().
    +    # It ensures we always start from a pristine default state for open options.
    +    plainTextOpenOptions = GetDefaultOpenOptions()
    +    plainTextOpenOptions['First row has variable names'] = 1
    +    SetDefaultFileOpenOptions("PlainText", plainTextOpenOptions)
    +
    +    OpenDatabase("curves_nox.csv")
    +    AddPlot("Curve","inverse")
    +    AddPlot("Curve","sqrt")
    +    AddPlot("Curve","quadratic")
    +    DrawPlots()
    +    # Curve noX plot }
    +    ResetView()
    +    Test("PlainText_Curves_noX")
    +    DeleteAllPlots()
    +    CloseDatabase("curves_nox.csv")
    +    os.unlink("curves_nox.csv")
    +
    +def TestCSV3DPointsAndVariables():
    +    TestSection("CSV data as 3D points with variable(s)")
    +    Create3DPointsWithVariablesDataFile("points.txt")
    +
    +    # Points plot {
    +    # GetDefaultOpenOptions() is a wrapper internal to our tests to the CLI method GetDefaultFileOpenOptions().
    +    # It ensures we always start from a pristine default state for open options.
    +    plainTextOpenOptions = GetDefaultOpenOptions()
    +    plainTextOpenOptions['First row has variable names'] = 1
    +    plainTextOpenOptions['Column for X coordinate (or -1 for none)'] = 0
    +    plainTextOpenOptions['Column for Y coordinate (or -1 for none)'] = 1
    +    plainTextOpenOptions['Column for Z coordinate (or -1 for none)'] = 2
    +    SetDefaultFileOpenOptions("PlainText", plainTextOpenOptions)
    +    OpenDatabase("points.txt")
    +
    +    DefineVectorExpression("vel", "{velx,vely,velz}")
    +    AddPlot("Pseudocolor", "temp")
    +    AddPlot("Vector","vel")
    +    DrawPlots()
    +    # Points plot }
    +    ResetView()
    +    Test("PlainText_Points")
    +    DeleteAllPlots()
    +    CloseDatabase("points.txt")
    +    os.unlink("points.txt")
    +
    +def TestCSV2DArray():
    +    TestSection("CSV data as 2D array on uniform grid")
    +    Create2DArrayDataFile("array.txt")
    +
    +    # Array plot {
    +    # GetDefaultOpenOptions() is a wrapper internal to our tests to the CLI method GetDefaultFileOpenOptions().
    +    # It ensures we always start from a pristine default state for open options.
    +    plainTextOpenOptions = GetDefaultOpenOptions()
    +    plainTextOpenOptions['First row has variable names'] = 1
    +    plainTextOpenOptions['Data layout'] = '2D Array'
    +    SetDefaultFileOpenOptions("PlainText", plainTextOpenOptions)
    +
    +    OpenDatabase("array.txt")
    +    AddPlot("Pseudocolor", "density")
    +    DrawPlots()
    +    ResetView()
    +    # Array plot }
    +    Test("PlainText_2DArray")
    +    DeleteAllPlots()
    +    CloseDatabase("array.txt")
    +    os.unlink("array.txt")
    +
    +def TestCSVShortVarNames():
    +    TestSection("CSV data with 1-character variable names")
    +
    +    #
    +    # test 2d
    +    #
    +    CreateAnother2DArrayDataFile("2darray_short_names.txt")
    +
    +    plainTextOpenOptions = GetDefaultOpenOptions()
    +    plainTextOpenOptions['First row has variable names'] = 1
    +    plainTextOpenOptions['Data layout'] = '2D Array'
    +    SetDefaultFileOpenOptions("PlainText", plainTextOpenOptions)
    +
    +    OpenDatabase("2darray_short_names.txt")
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +    Test("PlainText_2DArray")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +    CloseDatabase("2darray_short_names.txt")
    +    os.unlink("2darray_short_names.txt")
    +
    +    #
    +    # test 1d
    +    #
    +    Create1DArrayDataFile("1darray_short_names.txt")
    +
    +    plainTextOpenOptions = GetDefaultOpenOptions()
    +    plainTextOpenOptions['First row has variable names'] = 1
    +    plainTextOpenOptions['Data layout'] = '1D Columns'
    +    plainTextOpenOptions['Column for X coordinate (or -1 for none)'] = 0
    +    plainTextOpenOptions['Column for Y coordinate (or -1 for none)'] = 1
    +    SetDefaultFileOpenOptions("PlainText", plainTextOpenOptions)
    +
    +    OpenDatabase("1darray_short_names.txt")
    +    AddPlot("Pseudocolor", "v")
    +    DrawPlots()
    +    SetActivePlots(0)
    +    PseudocolorAtts = PseudocolorAttributes()
    +    PseudocolorAtts.pointSizePixels = 20
    +    SetPlotOptions(PseudocolorAtts)
    +    View2DAtts = View2DAttributes()
    +    View2DAtts.windowCoords = (-0.4641, 2.4641, -0.4641, 2.4641)
    +    View2DAtts.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    SetView2D(View2DAtts)
    +
    +    Test("PlainText_1dArray_Short_Var_Names")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +    CloseDatabase("1darray_short_names.txt")
    +    os.unlink("1darray_short_names.txt")
    +
    +def main():
    +
    +    if 'genonly' in sys.argv:
    +        CreateCurvesDataFile('curves.csv')
    +        CreateCurvesDataFileWithNoXCoordinates('curves_nox.csv')
    +        Create3DPointsWithVariablesDataFile('points.txt')
    +        Create2DArrayDataFile('array.txt')
    +        CreateAnother2DArrayDataFile("2darray_short_names.txt")
    +        Create1DArrayDataFile("1darray_short_names.txt")
    +        sys.exit(0)
    +
    +    #
    +    # Idiom here...we can't manipulate open options until *after*
    +    # mdserver is running
    +    #
    +    OpenMDServer("localhost")
    +
    +    #
    +    # Make sure curve plots are without labels
    +    #
    +    ca = CurveAttributes()
    +    ca.showLabels = 0
    +    SetDefaultPlotOptions(ca)
    +
    +    TestCSVCurves()
    +
    +    TestCSVCurvesNoX()
    +
    +    TestCSV3DPointsAndVariables()
    +
    +    TestCSV2DArray()
    +
    +    TestCSVShortVarNames()
    +
    +    Exit()
    +
    +main()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_rect.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_rect.html new file mode 100644 index 000000000..ccc428370 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_rect.html @@ -0,0 +1,99 @@ + +Results for databases/rect.py + +

    Results of VisIt Regression Test - databases/rect

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Curvilinear grid files
    rect_010.000.00
    rect_020.000.00
    rect_030.000.00
    rect_040.000.00
    Rectilinear grid files
    rect_0516.740.64
    rect_060.440.64
    1D Datasets re-interpreted as curves.
    rect_073.090.04
    rect_080.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_rect_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_rect_py.html new file mode 100644 index 000000000..6794406b2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_rect_py.html @@ -0,0 +1,98 @@ +databases/rect.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  rect.py 
    +#
    +#  Tests:      rect files 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       May 15, 2008 
    +#
    +#  Mark C. Miller, Thu Feb 12 01:30:24 PST 2009
    +#  Added test for rectilinear mesh case. Re-enabled setting of SIL restriction
    +#  which was disabled due to a bug that was resolved back in May, 2008.
    +#
    +#  Mark C. Miller, Wed Feb 18 17:52:44 PST 2009
    +#  Fixed missing AddPlot() call just prior to image 08. Changed name of 
    +#  curve objects that get re-interpreted.
    +#
    +#  Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#  Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#  individually to match current baseline results.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# test the main mesh
    +TestSection("Curvilinear grid files")
    +OpenDatabase(data_path("Rect_test_data/curv_data/datafile.rect"))
    +
    +AddPlot("Mesh","Mesh")
    +DrawPlots()
    +v=GetView3D()
    +v.RotateAxis(1, 30.0)
    +SetView3D(v)
    +Test("rect_01")
    +
    +# test a variable
    +AddPlot("Pseudocolor","pressure")
    +DrawPlots()
    +Test("rect_02")
    +
    +# test going forward in time
    +TimeSliderNextState()
    +Test("rect_03")
    +
    +# test restriction
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "domain2":
    +        silr.TurnOffSet(i)
    +SetPlotSILRestriction(silr)
    +DrawPlots()
    +Test("rect_04")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("Rect_test_data/curv_data/datafile.rect"))
    +
    +
    +TestSection("Rectilinear grid files")
    +OpenDatabase(data_path("Rect_test_data/rect_data/datafile.rect"))
    +
    +AddPlot("Mesh","Mesh")
    +DrawPlots()
    +ResetView()
    +Test("rect_05")
    +
    +AddPlot("Pseudocolor","myTest")
    +DrawPlots()
    +Test("rect_06")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("Rect_test_data/rect_data/datafile.rect"))
    +
    +
    +TestSection("1D Datasets re-interpreted as curves.")
    +
    +
    +OpenDatabase(data_path("Rect_test_data/1d/rect_data/datafile.rect"))
    +
    +AddPlot("Curve", "Scalar_Curves/pressure")
    +c = CurveAttributes()
    +c.showLabels = 0
    +c.curveColorSource = c.Custom
    +c.curveColor = (255, 0, 0, 255)
    +SetPlotOptions(c)
    +DrawPlots()
    +ResetView()
    +Test("rect_07")
    +
    +AddPlot("Curve", "Scalar_Curves/density")
    +c.curveColor = (0, 255, 0, 255)
    +SetPlotOptions(c)
    +DrawPlots()
    +TimeSliderNextState()
    +Test("rect_08")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_reopen.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_reopen.html new file mode 100644 index 000000000..c4a396f15 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_reopen.html @@ -0,0 +1,261 @@ + +Results for databases/reopen.py + +

    Results of VisIt Regression Test - databases/reopen

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    reopen_1_000 modifications totalling 0 lines
    reopen_1_010.000.00
    reopen_1_020 modifications totalling 0 lines
    Reopening virtual database
    reopen_2_000.000.00
    reopen_2_010 modifications totalling 0 lines
    reopen_2_020.000.00
    reopen_2_030 modifications totalling 0 lines
    reopen_2_040.000.00
    reopen_2_050 modifications totalling 0 lines
    Reopening .visit file
    reopen_2_060.000.00
    reopen_2_070 modifications totalling 0 lines
    reopen_2_080.000.00
    reopen_2_090 modifications totalling 0 lines
    reopen_2_100.000.00
    reopen_2_110 modifications totalling 0 lines
    Reopening .visit file of time-varying data
    reopen_3_000.000.00
    reopen_3_010 modifications totalling 0 lines
    reopen_3_020.000.00
    reopen_3_030 modifications totalling 0 lines
    reopen_3_040.000.00
    reopen_3_050 modifications totalling 0 lines
    reopen_3_060.000.00
    reopen_3_070 modifications totalling 0 lines
    Reopening overwritten file to test engine
    reopen_4_000.000.00
    reopen_4_010.000.00
    Testing reopen/expressions with multiple windows
    reopen_5_000 modifications totalling 0 lines
    reopen_5_010 modifications totalling 0 lines
    Testing reopen at an invalid time state
    reopen_6_000 modifications totalling 0 lines
    reopen_6_010.000.00
    reopen_6_020 modifications totalling 0 lines
    reopen_6_030.000.00
    reopen_6_040 modifications totalling 0 lines
    reopen_6_050.000.00
    reopen_6_060 modifications totalling 0 lines
    reopen_6_070.000.00
    reopen_6_080 modifications totalling 0 lines
    reopen_6_090.000.00
    reopen_6_100 modifications totalling 0 lines
    Testing reopen on a deleted file
    reopen_7_000.000.00
    reopen_7_010 modifications totalling 0 lines
    reopen_7_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_reopen_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_reopen_py.html new file mode 100644 index 000000000..1c2dfe675 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_reopen_py.html @@ -0,0 +1,550 @@ +databases/reopen.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial
    +#  CLASSES: nightly
    +#
    +#  Test Case:  reopen.py 
    +#
    +#  Tests:      Reopening a database where the SIL is invariant.
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 1, 2004
    +#
    +#  Modifications:
    +#    Brad Whitlock, Fri Mar 19 15:09:09 PST 2004
    +#    I changed one of the OpenDatabase calls to ReOpenDatabase. I also
    +#    added more extensive reopen tests.
    +#
    +#    Brad Whitlock, Fri Apr 9 16:28:01 PST 2004
    +#    I added a test that really makes sure the engine reexecuted during
    +#    a reopen.
    +#
    +#    Jeremy Meredith, Wed Apr 28 11:42:31 PDT 2004
    +#    I made the "Don't need to copy" message go to stderr.
    +#
    +#    Brad Whitlock, Wed Feb 2 16:27:54 PST 2005
    +#    Added a test for making sure that expressions are right after reopening
    +#    a database when there are multiple windows. I also added a test to 
    +#    make sure that time sliders are shortened when we reopen a database
    +#    that has had some of its time states removed.
    +#
    +#    Hank Childs, Wed Feb 16 07:34:07 PST 2005
    +#    Rename variables that have unsupported characters.
    +#
    +#    Brad Whitlock, Tue Feb 22 13:56:56 PST 2005
    +#    Added a test case for reopening a file that has been deleted.
    +#
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Jeremy Meredith, Wed Jan 20 11:02:36 EST 2010
    +#    Fixed some file path issues and checked for "from" file before
    +#    assuming a symlink return error implied a different error message.
    +#
    +#    Kathleen Biagas, Fri May 26 08:31:00 MST 2017
    +#    Fixed reopen_04_01 for windows to use the same file as for non-windows.
    +#
    +#    Kathleen Biagas, Monday October 12, 2020 
    +#    Use TestEnv.params["run_dir"] instead of "." in calls to os.listdir.
    +#
    +# ----------------------------------------------------------------------------
    +from __future__ import print_function
    +import os
    +import sys
    +import time
    +import shutil
    +
    +def GetTruncatedWindowInformationString():
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 5 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    for i in range(5):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    return s
    +
    +#
    +# Look at the first few lines of the string representation of the
    +# WindowInformation to see the list of time sliders, etc.
    +#
    +def TestWindowInformation(testname):
    +    TestText(testname, GetTruncatedWindowInformationString())
    +
    +def TestLength(testname):
    +    tsLength = TimeSliderGetNStates()
    +    testString = "%s has %d states\n" % (GetActiveTimeSlider(), tsLength)
    +    testString = testString + GetTruncatedWindowInformationString()
    +    TestText(testname, testString)
    +
    +#
    +# Returns whether all files in the list are in the run directory.
    +#
    +def FilesPresent(files):
    +    currentFileList = os.listdir(TestEnv.params["run_dir"])
    +    count = 0
    +    retval = 0
    +    if type(files) == type(()) or type(files) == type([]):
    +        for file in files:
    +            if file in currentFileList:
    +                count = count + 1
    +        retval = count == len(files)
    +    else:
    +        # We got here because the files argument was 
    +        # a single value instead of a tuple or list.
    +        if files in currentFileList:
    +            retval = 1
    +
    +    return retval
    +
    +
    +#
    +# Removes all files ending in .silo or .visit from the run directory
    +# to ensure that there are no such files left over from a failed test.
    +#
    +def RemoveAllSiloAndVisItFiles():
    +    currentFileList = os.listdir(TestEnv.params["run_dir"])
    +    for file in currentFileList:
    +        if file[-5:] == ".silo" or file[-6:] == ".visit":
    +            try:
    +                os.unlink(file)
    +            except:
    +                # Ignore any exceptions
    +                pass
    +
    +#
    +# Function to create a .visit file or virtual database using time states
    +# from wave.
    +#
    +def CreateMTFile(prefix, makeVisItFile, percent):
    +    # Create a list of files that will be used to create the database
    +    # for the test.
    +    nStates = 71
    +    t = float(percent) / 100.
    +    maxState = int(float(nStates) * t)
    +    files = []
    +    prefixfiles = []
    +    for i in range(maxState):
    +        w = "wave%04d.silo" % (i * 10)
    +        files = files + [w]
    +        prefixfiles = prefixfiles + [prefix+w]
    +
    +    if makeVisItFile == 0:
    +        # Virtual database
    +        for file in files:
    +            fileFrom = data_path("silo_hdf5_test_data/%s" % file)
    +            fileTo   = "%s%s" % (prefix, file)
    +            if not os.path.exists(fileFrom):
    +                print("Error: %s didn't exist" % fileFrom, file=sys.stderr)
    +            try:
    +                # Copy a file from the data directory to the current directory.
    +                if not sys.platform.startswith("win"):
    +                    os.link(fileFrom, fileTo)
    +                else:
    +                    shutil.copyfile(fileFrom, fileTo)
    +            except OSError:
    +                print("Don't need to copy %s" % file, file=sys.stderr)
    +        db = prefix + "wave*.silo database"
    +    else:
    +        # .visit file.
    +        db = "reopen_wave.visit"
    +        f = open(db, "wt")
    +        for file in files:
    +            f.write(data_path("silo_hdf5_test_data/%s\n" % file))
    +        f.close()
    +    return (db, prefixfiles)
    +
    +# Function to remove the .visit file or the virtual database.
    +def DestroyMTFile(makeVisItFile, db):
    +    RemoveAllSiloAndVisItFiles()
    +
    +# Function to create a new SAMRAI .visit file.
    +def CreateTimeVaryingMTFile(percent):
    +    # Read in the entire dumps.visit file for the SAMRAI data so that
    +    # we can get the list of files.
    +    f = open(data_path("samrai_test_data/sil_changes/dumps.visit"), "rt")
    +    lines = f.readlines()
    +    f.close()
    +
    +    # Create a new .visit file
    +    nStates = len(lines)
    +    t = float(percent) / 100.
    +    maxState = int(float(nStates) * t)
    +    db = "reopen_samrai.visit"
    +    f = open(db, "wt")
    +    for i in range(maxState):
    +        f.write(data_path("samrai_test_data/sil_changes/%s") % lines[i])
    +    f.close()
    +    return db
    +
    +# Function to remove the SAMRAI .visit file.
    +def DestroyTimeVaryingMTFile(db):
    +    RemoveAllSiloAndVisItFiles()
    +
    +def SetTheView():
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.735926, 0.562657, 0.376604)
    +    v0.focus = (5, 0.753448, 2.5)
    +    v0.viewUp = (0.454745, 0.822858, -0.340752)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 5.6398
    +    v0.nearPlane = -11.2796
    +    v0.farPlane = 11.2796
    +    v0.imagePan = (0.0589778, 0.0898255)
    +    v0.imageZoom = 1.32552
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    SetView3D(v0)
    +
    +###############################################################################
    +
    +#
    +# Make sure that Reopen does not reset the time slider state and also make
    +# sure that we are getting the metadata for a late time state.
    +#
    +def test1():
    +    #
    +    # This will open at timestep 0.  The variable "transient" will not be
    +    # available then.
    +    #
    +    db = silo_data_path("wave.visit")
    +    OpenDatabase(db)
    +
    +    #
    +    # Now set the time to a timestep when "transient" is available.
    +    #
    +    SetTimeSliderState(20)
    +    TestWindowInformation("reopen_1_00")
    +
    +    #
    +    # If we were to try and make a PC plot of transient right now, it wouldn't
    +    # work.  We need to do a re-open first.
    +    #
    +    ReOpenDatabase(db)
    +
    +    #
    +    # Make a plot of transient. This had better not reset the time state to 0.
    +    #
    +    AddPlot("Pseudocolor","transient")
    +    DrawPlots()
    +    SetTheView()
    +    Test("reopen_1_01")
    +
    +    #
    +    # Delete the plots and close the database
    +    #
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +    TestWindowInformation("reopen_1_02")
    +
    +
    +#
    +# Now test that reopening a file actually makes the time slider longer. First
    +# create a new .visit file that we can add onto later.
    +#
    +def test2():
    +    VirtualDatabase = 0
    +    VisItFile = 1
    +
    +    testIndex = 0
    +    for method in (VirtualDatabase, VisItFile):
    +        # Add a section title.
    +        if(method == VirtualDatabase):
    +            TestSection("Reopening virtual database")
    +        else:
    +            TestSection("Reopening .visit file")
    +
    +        db, files = CreateMTFile("", method, 30)
    +        OpenDatabase(db)
    +        AddPlot("Pseudocolor", "pressure")
    +        DrawPlots()
    +
    +        # Set up the view.
    +        SetTheView()
    +
    +        # Go to the last time state.
    +        SetTimeSliderState(TimeSliderGetNStates() - 1)
    +        Test("reopen_2_%02d" % testIndex)
    +        TestLength("reopen_2_%02d" % (testIndex + 1))
    +
    +        # Create more time states in the file.
    +        db, files = CreateMTFile("", method, 60)
    +        ReOpenDatabase(db)
    +        # Go to the last time state.
    +        SetTimeSliderState(TimeSliderGetNStates() - 1)
    +        Test("reopen_2_%02d" % (testIndex + 2))
    +        TestLength("reopen_2_%02d" % (testIndex + 3))
    +
    +        # Create more time states in the file.
    +        db, files = CreateMTFile("", method, 100)
    +        ReOpenDatabase(db)
    +        # Go to the last time state.
    +        SetTimeSliderState(TimeSliderGetNStates() - 1)
    +        Test("reopen_2_%02d" % (testIndex + 4))
    +        TestLength("reopen_2_%02d" % (testIndex + 5))
    +
    +        # Get rid of the .visit file that we created.
    +        DestroyMTFile(method, db)
    +        DeleteAllPlots()
    +        CloseDatabase(db)
    +
    +        # Get to the next testIndex
    +        testIndex = testIndex + 6
    +
    +
    +#
    +# Now that we've tested time-invariant databases, try testing reopen with
    +# a time-varying database to see if we get the right plots.
    +#
    +def test3():
    +    TestSection("Reopening .visit file of time-varying data")
    +
    +    testIndex = 0
    +    for percent in (30,60,100):
    +        db = CreateTimeVaryingMTFile(percent)
    +        if(percent == 30):
    +            OpenDatabase(db)
    +            AddPlot("Pseudocolor", "Primitive Var _number_0")
    +            DrawPlots()
    +
    +            # Set the view
    +            v0 = View3DAttributes()
    +            v0.viewNormal = (-0.598154, 0.519575, -0.610127)
    +            v0.focus = (15, 10, 10)
    +            v0.viewUp = (0.418052, 0.851849, 0.315574)
    +            v0.viewAngle = 30
    +            v0.parallelScale = 20.6155
    +            v0.nearPlane = -41.2311
    +            v0.farPlane = 41.2311
    +            v0.imagePan = (0.0200698, 0.0374771)
    +            v0.imageZoom = 1
    +            v0.perspective = 1
    +            v0.eyeAngle = 2
    +            SetView3D(v0)
    +
    +            # Save a test
    +            Test("reopen_3_%02d" % testIndex)
    +            testIndex = testIndex + 1
    +            TestLength("reopen_3_%02d" % testIndex)
    +            testIndex = testIndex + 1
    +
    +        else:
    +            # Reopen the database to add the new time states.
    +            ReOpenDatabase(db)
    +
    +        # Go to the last time state.
    +        SetTimeSliderState(TimeSliderGetNStates() - 1)
    +
    +        # Save a test
    +        Test("reopen_3_%02d" % testIndex)
    +        testIndex = testIndex + 1
    +        TestLength("reopen_3_%02d" % testIndex)
    +        testIndex = testIndex + 1
    +
    +    # Clean up the time varying .visit file.
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +    DestroyTimeVaryingMTFile(db)
    +
    +#
    +# Test that reopening a file that has been overwritten works.
    +#
    +def test4():
    +    TestSection("Reopening overwritten file to test engine")
    +
    +    # Copy curv2d to the current directory.
    +    db = "test4.silo"
    +    if not sys.platform.startswith("win"):
    +        os.link(silo_data_path("curv2d.silo") , db)
    +    else:
    +        shutil.copyfile(silo_data_path("curv2d.silo") , db)
    +
    +    # Open up the file and create a plot.
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    Test("reopen_4_00")
    +
    +    # Delete the file
    +    try:
    +        os.unlink(db)
    +    except:
    +        # Ignore any exceptions
    +        pass
    +
    +    if not sys.platform.startswith("win"):
    +        os.link(silo_data_path("rect2d.silo") , db)
    +    else:
    +        shutil.copyfile(silo_data_path("rect2d.silo") , db)
    +
    +    ReOpenDatabase(db)
    +    ResetView()
    +    Test("reopen_4_01")
    +
    +    DeleteAllPlots()
    +    # Delete the file
    +    try:
    +        os.unlink(db)
    +    except:
    +        # Ignore any exceptions
    +        pass
    +
    +
    +#
    +# Test that expressions are not lost after reopening a file when there
    +# are multiple windows.
    +#
    +def test5():
    +    TestSection("Testing reopen/expressions with multiple windows")
    +    db = silo_data_path("curv3d.silo")
    +    AddWindow()
    +    SetActiveWindow(1)
    +    OpenDatabase(db)
    +    TestExpressions("reopen_5_00")
    +
    +    # See if the expressions are right after reopening.
    +    ReOpenDatabase(db)
    +    TestExpressions("reopen_5_01")
    +
    +    # Delete the window that we added.
    +    SetActiveWindow(2)
    +    DeleteWindow()
    +    CloseDatabase(db)
    +
    +#
    +# Test that time sliders are shortened when we reopen an MT database
    +# that has had time states removed.
    +#
    +def test6():
    +    TestSection("Testing reopen at an invalid time state")
    +    RemoveAllSiloAndVisItFiles()
    +
    +    # Make sure that there is no open database.
    +    TestLength("reopen_6_00")
    +
    +    # Create a short MT file.
    +    db, files = CreateMTFile("", 0, (10. / 71.) * 100.)
    +
    +    # Create a plot and make sure its database has the right number
    +    # of time states.
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    ResetView()
    +    Test("reopen_6_01")
    +    TestLength("reopen_6_02")
    +
    +    # Make a copy of the first window.
    +    CloneWindow()
    +    DrawPlots()
    +    Test("reopen_6_03")
    +    TestLength("reopen_6_04")
    +    SetActiveWindow(1)
    +
    +    # Delete the last few time states
    +    nStates = len(files)
    +    for f in files[-5:]:
    +        try:
    +            os.unlink(f)
    +        except:
    +            print("Could not delete %s" % f, file=sys.stderr)
    +
    +    # Change to a time state that we deleted. This should put the plot
    +    # in the error state and we should get an error message.
    +    SetTimeSliderState(nStates - 2)
    +    Test("reopen_6_05")
    +    TestText("reopen_6_06", GetLastError())
    +
    +    # Do the same thing in window 2 so we can check leter if reopen
    +    # causes the time slider, etc to be corrected.
    +    SetActiveWindow(2)
    +    SetTimeSliderState(nStates - 2)
    +    SetActiveWindow(1)
    +
    +    # Reopen the database. This should pick up that the database has
    +    # fewer time states and should update the time slider so it is
    +    # in bounds. The compute engine also should not crash.
    +    ReOpenDatabase(db)
    +    DrawPlots()
    +    Test("reopen_6_07")
    +    TestLength("reopen_6_08")
    +
    +    # See if we're at the right time state in window 2 too.
    +    SetActiveWindow(2)
    +    DrawPlots()
    +    Test("reopen_6_09")
    +    TestLength("reopen_6_10")
    +    DeleteWindow()
    +
    +    # Delete all of the plots in window 1 and close the database.
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +    # Delete the last few files.
    +    DestroyMTFile(0, db)
    +
    +
    +#
    +# Test reopening a database that has been removed from disk.
    +#
    +def test7():
    +    TestSection("Testing reopen on a deleted file")
    +    # Link a file from the data directory to the current directory.
    +    db = "reopen_globe.silo"
    +    if not sys.platform.startswith("win"):
    +        os.link(silo_data_path("globe.silo") , db)
    +    else:
    +        shutil.copyfile(silo_data_path("globe.silo") , db)
    +
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "t")
    +    DrawPlots()
    +    Test("reopen_7_00")
    +
    +    # Remove the file and make sure that we can't reopen it.
    +    RemoveAllSiloAndVisItFiles()
    +    if ReOpenDatabase(db):
    +        s = "VisIt was able to reopen " + db
    +    else:
    +        s = "VisIt was *NOT* able to reopen " + db + "!"
    +    TestText("reopen_7_01", s)
    +
    +    # Do something that will make the plot be regenerated. Here we're changing
    +    # plot variables to force VisIt to recalculate the plot.
    +    ChangeActivePlotsVar("u")
    +    Test("reopen_7_02")
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +
    +#
    +# Run the tests
    +#
    +try:
    +    # Remove all .silo and .visit files that could be left over from
    +    # previous failed runs.
    +    RemoveAllSiloAndVisItFiles()
    +
    +    # Run the tests
    +    test1()
    +    test2()
    +    test3()
    +    test4()
    +    test5()
    +    test6()
    +    test7()
    +except:
    +    # If we got any kind of exception, make sure that we get rid of
    +    # all of the .silo and .visit files that might be left.
    +    RemoveAllSiloAndVisItFiles()
    +
    +    # Rethrow the exception so the test won't look like it passed if
    +    # it really didn't pass
    +    raise
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_sami.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_sami.html new file mode 100644 index 000000000..c79a2b672 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_sami.html @@ -0,0 +1,78 @@ + +Results for databases/sami.py + +

    Results of VisIt Regression Test - databases/sami

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    sami_010.000.00
    sami_020.000.00
    sami_030.000.00
    sami_040.000.00
    sami_050.000.00
    sami_060.000.00
    sami_070.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_sami_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_sami_py.html new file mode 100644 index 000000000..ed8b2ade5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_sami_py.html @@ -0,0 +1,80 @@ +databases/sami.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  sami.py 
    +#
    +#  Tests:      sami files 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       October 12, 2006 
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("SAMI")
    +
    +# test the main mesh
    +OpenDatabase(data_path("sami_test_data/bdw.sami"))
    +
    +AddPlot("Mesh","mesh")
    +DrawPlots()
    +v=GetView3D()
    +v.viewNormal = (0.433013, 0.5, -0.75)
    +v.viewUp = (-0.25, 0.866025, 0.433013)
    +SetView3D(v)
    +Test("sami_01")
    +
    +# test the material object
    +AddPlot("FilledBoundary","mat")
    +DrawPlots()
    +Test("sami_02")
    +DeleteAllPlots()
    +
    +# test a node set
    +AddPlot("Mesh","nodesets/sl5m")
    +DrawPlots()
    +Test("sami_03")
    +DeleteAllPlots()
    +
    +# test a couple of slide plots
    +AddPlot("Mesh","slide_0/sideB")
    +AddPlot("Mesh","slide_1/sideB")
    +AddPlot("Mesh","slide_2/sideA")
    +AddPlot("Mesh","slide_3/sideA")
    +DrawPlots()
    +Test("sami_04")
    +DeleteAllPlots()
    +
    +# test a multi-part sami file
    +OpenDatabase(data_path("sami_test_data/sample_sami.visit"))
    +
    +AddPlot("Pseudocolor","global_node_numbers")
    +DrawPlots()
    +ResetView()
    +v=GetView3D()
    +v.viewNormal = (-0.866025, 0, -0.5)
    +v.viewUp = (0, 1, 0)
    +SetView3D(v)
    +Test("sami_05")
    +DeleteAllPlots()
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("FilledBoundary","mat")
    +DrawPlots()
    +Test("sami_06")
    +
    +# turn off material 2 and domain 0
    +mat2SetId = -1
    +dom0SetId = -1
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "002":
    +        mat2SetId = i
    +    if silr.SetName(i) == "domain0":
    +        dom0SetId = i
    +silr.TurnOffSet(mat2SetId)
    +silr.TurnOffSet(dom0SetId)
    +SetPlotSILRestriction(silr)
    +DrawPlots()
    +Test("sami_07")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_samrai.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_samrai.html new file mode 100644 index 000000000..79d426782 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_samrai.html @@ -0,0 +1,294 @@ + +Results for databases/samrai.py + +

    Results of VisIt Regression Test - databases/samrai

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    samrai_010.000.00
    samrai_020.000.00
    samrai_030.000.00
    samrai_040.000.00
    samrai_050.000.00
    samrai_060.000.00
    samrai_070.000.00
    samrai_080.000.00
    samrai_090.000.00
    samrai_100.000.00
    samrai_110.000.00
    samrai_120.000.00
    samrai_130.000.00
    samrai_140.000.00
    samrai_150.000.00
    samrai_160.000.00
    samrai_170.000.00
    samrai_180.000.00
    samrai_190.000.00
    samrai_200.000.00
    samrai_copper_matvf_010.000.00
    samrai_copper_matvf_020.000.00
    samrai_copper_matvf_030.000.00
    samrai_copper_matvf_040.000.00
    samrai_gold_val4mat_010.000.00
    samrai_gold_val4mat_020.000.00
    samrai_gold_val4mat_030.000.00
    samrai_gold_val4mat_040.000.00
    samrai_210.000.00
    samrai_220.000.00
    samrai_230.000.00
    samrai_240.000.00
    samrai_250.000.00
    samrai_260.000.00
    samrai_270 modifications totalling 0 lines
    samrai_280.000.00
    samrai_290 modifications totalling 0 lines
    samrai_300.000.00
    samrai_310 modifications totalling 0 lines
    samrai_330.000.00
    samrai_340.000.00
    samrai_350.000.00
    samrai_360.000.00
    samrai_370.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_samrai_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_samrai_py.html new file mode 100644 index 000000000..900685ccf --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_samrai_py.html @@ -0,0 +1,413 @@ +databases/samrai.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  samrai.py 
    +#
    +#  Tests:      presence of HDF5
    +#              default plot 
    +#              sil changing with time
    +#              nested ghosting
    +#              zbuffer contention
    +#              2d ale data
    +#              operators - slice
    +#              selection - by level
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       November 12, 2003 
    +#
    +#  Modifications:
    +#    Brad Whitlock, Thu Mar 25 14:05:32 PST 2004
    +#    Added a check to see if plots at later time steps get the right metadata.
    +#
    +#    Jeremy Meredith, Thu Jun 24 12:58:06 PDT 2004
    +#    Set the vector origin explicitly for some cases because I changed the
    +#    default to Tail.
    +#
    +#    Mark C. Miller, Thu Aug 19 16:22:49 PDT 2004
    +#    Turned off database info flag so future changes to samrai db plugin
    +#    are less likely to result in a need to update the baselines
    +#
    +#    Hank Childs, Wed Feb 16 07:34:07 PST 2005
    +#    Rename variables that have unsupported characters.
    +#
    +#    Mark C. Miller, Thu Feb 17 09:00:41 PST 2005
    +#    Added tests for variables defined on only some patches
    +#
    +#    Brad Whitlock, Wed Mar 9 09:15:30 PDT 2005
    +#    Removed deprecated functions.
    +#
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +#    Mark C. Miller, Mon Nov  5 20:15:05 PST 2007
    +#    Added tests for sparse materials, expressions
    +#
    +#    Jeremy Meredith, Tue Jul 15 10:43:58 EDT 2008
    +#    Changed number of vectors in vector plot to match the old behavior.
    +#    (We now account for how many domains there are.)
    +#
    +#    Brad Whitlock, Thu Feb 4 10:18:23 PDT 2010
    +#    Turn off sets by name instead of index since that can change.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use Subset plot for levels instead of FilledBoundary.
    +#
    +# ----------------------------------------------------------------------------
    +
    +LevelZero = 4 # set id for level 0
    +
    +# Turn off sets by name
    +def TurnOffSetsByName(silr, cat, names):
    +    sets = silr.SetsInCategory(cat)
    +    for s in sets:
    +        setname = silr.SetName(s)
    +        try:
    +            if setname in names:
    +                silr.TurnOffSet(s)
    +        except:
    +            if setname == names:
    +                silr.TurnOffSet(s)
    +
    +OpenDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +
    +#
    +# just tests that default plot comes up automatically 
    +#
    +Test("samrai_01")
    +
    +#
    +# test exterenal face overlap
    +#
    +AddPlot("Pseudocolor","Primitive Var _number_0")
    +DrawPlots()
    +
    +v=GetView3D()
    +v.viewNormal=(0,0,-1)
    +SetView3D(v)
    +Test("samrai_02")
    +
    +v.viewNormal=(0.34202, 0, -0.939693)
    +SetView3D(v)
    +Test("samrai_03")
    +
    +#
    +# test level selection
    +#
    +silr=SILRestriction()
    +silr.TurnOffSet(LevelZero)
    +SetPlotSILRestriction(silr)
    +v.viewNormal=(0,0,1)
    +SetView3D(v)
    +Test("samrai_04")
    +
    +#
    +# test changing time steps (and sil)
    +#
    +TimeSliderNextState()
    +Test("samrai_05")
    +
    +# go back to begnning of time
    +SetTimeSliderState(0)
    +
    +#
    +# turn on level 0 so we can check that
    +# nested ghosting is working correctly when we slice
    +#
    +silr.TurnOnSet(LevelZero)
    +SetPlotSILRestriction(silr)
    +
    +#
    +# this test is here to remind us we have many internal faces 
    +#
    +v.viewNormal=(-0.537631, 0.372794, -0.756292)
    +v.focus=(15, 10, 10)
    +v.viewUp=(0.262569, 0.926375, 0.269976)
    +v.parallelScale=30
    +v.nearPlane=-10
    +v.farPlane=90
    +SetView3D(v)
    +Test("samrai_06")
    +
    +#
    +# add a mesh plot and slice operator
    +#
    +AddPlot("Mesh","amr_mesh")
    +sliceAtts=SliceAttributes()
    +sliceAtts.originType=sliceAtts.Percent
    +sliceAtts.originPercent=20
    +sliceAtts.axisType=sliceAtts.ZAxis
    +sliceAtts.project2d=1
    +SetDefaultOperatorOptions(sliceAtts)
    +AddOperator("Slice",1)
    +DrawPlots()
    +Test("samrai_07")
    +
    +#
    +# Animate forward 1 frame
    +#
    +TimeSliderNextState()
    +Test("samrai_08")
    +
    +#
    +# Now, go back 1 frame
    +#
    +SetTimeSliderState(0)
    +Test("samrai_09")
    +
    +#
    +# Tests for data from a 2d ale calculation.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(data_path("samrai_test_data/ale2d/dumps.visit"))
    +
    +ResetView()
    +
    +#
    +# Test the default plot.
    +#
    +Test("samrai_10")
    +
    +#
    +# Check the last frame.
    +#
    +TimeSliderNextState()
    +Test("samrai_11")
    +
    +#
    +# Test a vector plot.
    +#
    +AddPlot("Vector", "Velocity")
    +vectorAtts=VectorAttributes()
    +vectorAtts.scale = 0.02
    +vectorAtts.vectorOrigin = vectorAtts.Middle
    +vectorAtts.nVectors = 400*47
    +SetPlotOptions(vectorAtts)
    +DrawPlots()
    +
    +v = View2DAttributes()
    +v.windowCoords = (0.31, 0.58, 0.15, 0.36)
    +SetView2D(v)
    +Test("samrai_12")
    +
    +#
    +# Tests for material/species data 
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(data_path("samrai_test_data/mats-par3/dumps.visit"))
    +
    +ResetView()
    +
    +#
    +# test a material plot
    +#
    +AddPlot("FilledBoundary","materials")
    +DrawPlots()
    +Test("samrai_13")
    +
    +#
    +# test material plot with some patches off
    +#
    +silr=SILRestriction()
    +TurnOffSetsByName(silr, "patches", ("level0,patch0", "level0,patch1","level0,patch2","level0,patch3"))
    +SetPlotSILRestriction(silr)
    +Test("samrai_14")
    +
    +#
    +# now, turn off a material, too
    +#
    +silr.TurnOnAll()
    +TurnOffSetsByName(silr, "materials", "Copper")
    +SetPlotSILRestriction(silr)
    +Test("samrai_15")
    +
    +silr.TurnOnAll()
    +SetPlotSILRestriction(silr)
    +DeleteAllPlots()
    +
    +#
    +# add a species plot
    +#
    +AddPlot("Pseudocolor","species")
    +DrawPlots()
    +
    +#
    +# Selectively turn off each species
    +#
    +silr.TurnOffSet(24)
    +SetPlotSILRestriction(silr)
    +Test("samrai_16")
    +
    +silr.TurnOffSet(25)
    +SetPlotSILRestriction(silr)
    +Test("samrai_17")
    +
    +silr.TurnOffSet(26)
    +SetPlotSILRestriction(silr)
    +Test("samrai_18")
    +
    +silr.TurnOffSet(27)
    +SetPlotSILRestriction(silr)
    +Test("samrai_19")
    +
    +silr.TurnOffSet(28)
    +SetPlotSILRestriction(silr)
    +Test("samrai_20")
    +
    +DeleteAllPlots()
    +
    +# test matvf exprs
    +DefineScalarExpression("copper_vf",'matvf(materials,"Copper")')
    +AddPlot("Pseudocolor","copper_vf")
    +DrawPlots()
    +patts = PseudocolorAttributes()
    +Test("samrai_copper_matvf_01")
    +patts.centering = patts.Nodal  # Natural, Nodal, Zonal
    +SetPlotOptions(patts)
    +Test("samrai_copper_matvf_02")
    +patts.centering = patts.Zonal # Natural, Nodal, Zonal
    +SetPlotOptions(patts)
    +Test("samrai_copper_matvf_03")
    +patts.centering = patts.Natural # Natural, Nodal, Zonal
    +SetPlotOptions(patts)
    +Test("samrai_copper_matvf_04")
    +
    +DeleteAllPlots()
    +
    +DefineScalarExpression("gold_den",'val4mat(Density,"Gold")')
    +AddPlot("Pseudocolor","gold_den")
    +DrawPlots()
    +patts = PseudocolorAttributes()
    +Test("samrai_gold_val4mat_01")
    +patts.centering = patts.Nodal  # Natural, Nodal, Zonal
    +SetPlotOptions(patts)
    +Test("samrai_gold_val4mat_02")
    +patts.centering = patts.Zonal # Natural, Nodal, Zonal
    +SetPlotOptions(patts)
    +Test("samrai_gold_val4mat_03")
    +patts.centering = patts.Natural # Natural, Nodal, Zonal
    +SetPlotOptions(patts)
    +Test("samrai_gold_val4mat_04")
    +
    +DeleteAllPlots()
    +
    +#
    +# Open a new database that has levels that change over time so we can test
    +# that plots get the right metadata and SIL as time advances.
    +#
    +OpenDatabase(data_path("samrai_test_data/front/dumps.visit"))
    +
    +# Get rid of the default plot
    +DeleteAllPlots()
    +AddPlot("Subset", "levels")
    +DrawPlots()
    +ResetView()
    +Test("samrai_21")
    +
    +# Go to the next time state. This used to cause an InvalidIndexException.
    +TimeSliderNextState()
    +Test("samrai_22")
    +
    +#
    +# Test a database where some variables are not defined on all patches
    +#
    +DeleteAllPlots()
    +OpenDatabase(data_path("samrai_test_data/viz_2d/dumps.visit"))
    +
    +AddPlot("Pseudocolor", "Function_0") # only defined on some patches
    +AddPlot("Pseudocolor", "Function_1") # only defined on some other patches
    +DrawPlots()
    +Test("samrai_23")
    +
    +#
    +# Test a samrai database with sparse material representation
    +#
    +DeleteAllPlots()
    +OpenDatabase(data_path("samrai_test_data/sparse_mats/summary.samrai"))
    +
    +AddPlot("Pseudocolor", "energy")
    +DrawPlots()
    +Test("samrai_24")
    +
    +#
    +#  Zoom into a region where there is mixing
    +#
    +v=GetView2D()
    +v.windowCoords=(-0.296975, -0.223086, 0.0437891, 0.120943)
    +SetView2D(v)
    +DrawPlots()
    +Test("samrai_25")
    +
    +#
    +# Turn off different materials and see what we get for the PC plot
    +# and zone picks
    +#
    +silr = SILRestriction()
    +j = 0
    +for k1 in silr.SetsInCategory("materials"):
    +    i = 1
    +    for k2 in silr.SetsInCategory("materials"):
    +        if silr.SetName(k2) == "material_%d"%(j+1):
    +            silr.TurnOffSet(k2)
    +        else:
    +            silr.TurnOnSet(k2)
    +        i = i + 1
    +    SetPlotSILRestriction(silr)
    +    DrawPlots()
    +    Test("samrai_%d"%(26+2*j))
    +    PickByZone(247,15)
    +    TestText("samrai_%d"%(26+2*j+1),GetPickOutput())
    +    j = j + 1
    +
    +#
    +# Test some expressions from the samrai database 
    +#
    +silr.TurnOnAll()
    +SetPlotSILRestriction(silr)
    +DeleteAllPlots()
    +AddPlot("Pseudocolor","von_mises_stress")
    +DrawPlots()
    +Test("samrai_33")
    +DeleteAllPlots()
    +AddPlot("Pseudocolor","speed")
    +DrawPlots()
    +Test("samrai_34")
    +
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("samrai_test_data/sparse_mats/summary.samrai"))
    +OpenDatabase(data_path("samrai_test_data/curv_bnd_ghost/dumps.visit"))
    +s = GetPlotOptions()
    +s.colorType = s.ColorBySingleColor
    +s.singleColor = (100,100,100,255)
    +SetPlotOptions(s)
    +AddPlot("Pseudocolor","Y_01")
    +DrawPlots()
    +Test("samrai_35")
    +
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "level0,patch7":
    +        silr.TurnOffSet(i)
    +        break
    +SetPlotSILRestriction(silr)
    +Test("samrai_36")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("samrai_test_data/curv_bnd_ghost/dumps.visit"))
    +OpenDatabase(data_path("samrai_test_data/matghosts_fullzonal/dumps.visit"))
    +s = GetPlotOptions()
    +s.colorType = s.ColorBySingleColor
    +s.singleColor = (100,100,100,255)
    +SetPlotOptions(s)
    +AddPlot("FilledBoundary", "materials")
    +DrawPlots()
    +silr = SILRestriction()
    +silr.TurnOffSet(30)
    +SetPlotSILRestriction(silr)
    +Test("samrai_37")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_scale_mesh.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_scale_mesh.html new file mode 100644 index 000000000..f8f5c9728 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_scale_mesh.html @@ -0,0 +1,42 @@ + +Results for databases/scale_mesh.py + +

    Results of VisIt Regression Test - databases/scale_mesh

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    scale_mesh010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_scale_mesh_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_scale_mesh_py.html new file mode 100644 index 000000000..2f8dd734a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_scale_mesh_py.html @@ -0,0 +1,28 @@ +databases/scale_mesh.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  scale_mesh.py
    +#
    +#  Purpose:    Tests whether or not we try to scale a mesh when only one
    +#              of its dimensions are out of whack (we shouldn't).
    +#
    +#  Programmer: Hank Childs
    +#  Date:       April 22, 2004
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# Create a Pseudocolor plot of wave by opening it up at a late time state.
    +OpenDatabase(data_path("vtk_test_data/near_planar.vtk"))
    +
    +AddPlot("Pseudocolor", "hardyglobal")
    +DrawPlots()
    +
    +# Set the view.
    +v0 = GetView3D()
    +v0.viewNormal = (-0.661743, 0.517608, 0.542382)
    +SetView3D(v0)
    +Test("scale_mesh01")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_shapefile.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_shapefile.html new file mode 100644 index 000000000..5ae79942a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_shapefile.html @@ -0,0 +1,189 @@ + +Results for databases/shapefile.py + +

    Results of VisIt Regression Test - databases/shapefile

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Test reading a shapefile that contains points
    shapefile_0_000.000.00
    shapefile_0_010.000.00
    shapefile_0_020.000.00
    shapefile_0_030.000.00
    Test reading a shapefile that contains polylines
    shapefile_1_000.000.00
    shapefile_1_010.000.00
    shapefile_1_020.000.00
    Test reading shapefiles that contain polygons
    shapefile_2_000.000.00
    shapefile_2_010.000.00
    shapefile_2_020.000.00
    shapefile_2_030.000.00
    shapefile_2_040.000.00
    shapefile_2_050.000.00
    shapefile_2_060.000.00
    shapefile_2_070.000.00
    Test multiple files for showing different features
    shapefile_3_000.000.00
    shapefile_3_010.000.00
    shapefile_3_020.000.00
    Test a .visit file of shapefiles
    shapefile_4_000.180.03
    shapefile_4_010.120.05
    shapefile_4_020.330.11
    shapefile_4_030.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_shapefile_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_shapefile_py.html new file mode 100644 index 000000000..da9785640 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_shapefile_py.html @@ -0,0 +1,236 @@ +databases/shapefile.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  shapefile.py
    +#
    +#  Tests:      mesh      - 2D polydata, single domain
    +#              plots     - Pseudocolor, Mesh, Subset
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Mon Mar 28 11:06:05 PDT 2005
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Wed Feb 16 09:15:45 PST 2022
    +#    Replace use of meshatts 'foregroundFlag' with meshColorSource.
    +#
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Test a file that contains points.
    +#
    +def test0():
    +    TestSection("Test reading a shapefile that contains points")
    +
    +    db = data_path("shapefile_test_data/m195mbsp/m195mbsp.shp")
    +    OpenDatabase(db)
    +    AddPlot("Mesh", "point")
    +    m = MeshAttributes()
    +    m.pointType = m.Box
    +    m.pointSize = 2000
    +    SetPlotOptions(m)
    +    DrawPlots()
    +    Test("shapefile_0_00")
    +
    +    DeleteActivePlots()
    +    AddPlot("Pseudocolor", "DEPTH_M")
    +    p = PseudocolorAttributes()
    +    p.pointType = p.Point # hack -- remove this someday
    +    p.pointSizePixels = 5
    +    SetPlotOptions(p)
    +    DrawPlots()
    +    Test("shapefile_0_01")
    +
    +    ChangeActivePlotsVar("LONGITUDE8")
    +    Test("shapefile_0_02")
    +    ChangeActivePlotsVar("LATITUDE83")
    +    Test("shapefile_0_03")
    +    DeleteActivePlots()
    +    CloseDatabase(db)
    +
    +#
    +# Test a file that contains polylines.
    +#
    +def test1():
    +    TestSection("Test reading a shapefile that contains polylines")
    +    db = data_path("shapefile_test_data/morrison/499071-HP.shp")
    +    OpenDatabase(db)
    +    AddPlot("Mesh", "polyline")
    +    DrawPlots()
    +    Test("shapefile_1_00")
    +
    +    DeleteActivePlots()
    +    AddPlot("Pseudocolor", "TPMAJOR_2")
    +    DrawPlots()
    +    Test("shapefile_1_01")
    +
    +    ChangeActivePlotsVar("RWE_INDEX")
    +    Test("shapefile_1_02")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(db)
    +
    +#
    +# Test a file that has polygons.
    +#
    +def test2():
    +    TestSection("Test reading shapefiles that contain polygons")
    +    db = data_path("shapefile_test_data/west/states.shp")
    +    OpenDatabase(db)
    +    AddPlot("Mesh", "polygon")
    +    DrawPlots()
    +    ResetView()
    +    Test("shapefile_2_00")
    +
    +    DeleteActivePlots()
    +    AddPlot("Pseudocolor", "AVG_SALE87")
    +    DrawPlots()
    +    Test("shapefile_2_01")
    +
    +    ChangeActivePlotsVar("MEDIANRENT")
    +    Test("shapefile_2_02")
    +    DeleteActivePlots()
    +    CloseDatabase(db)
    +
    +    # Look at another file.
    +    db = data_path("shapefile_test_data/prism0p020/prism0p020.shp")
    +    OpenDatabase(db)
    +    AddPlot("Mesh", "polygon")
    +    DrawPlots()
    +    Test("shapefile_2_03")
    +
    +    DeleteActivePlots()
    +    AddPlot("Pseudocolor", "RANGE")
    +    DrawPlots()
    +    Test("shapefile_2_04")
    +
    +    # Zoom in on some interesting areas
    +    v = View2DAttributes()
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.windowCoords = (-124.76, -118.94, 43.9999, 49.3856)
    +    SetView2D(v)
    +    Test("shapefile_2_05")
    +
    +    v.windowCoords = (-78.596, -74.3052, 36.34, 40.2596)
    +    SetView2D(v)
    +    Test("shapefile_2_06")
    +
    +    v.windowCoords = (-83.2497, -79.3216, 24.3312, 29.1338)
    +    SetView2D(v)
    +    Test("shapefile_2_07")
    +    ResetView()
    +    DeleteActivePlots()
    +    CloseDatabase(db)
    +
    +#
    +# Test multiple plots showing different features.
    +#
    +def test3():
    +    TestSection("Test multiple files for showing different features")
    +    dbs = (data_path("shapefile_test_data/alameda/tgr06001lkA.shp"),
    +           data_path("shapefile_test_data/alameda/tgr06001cty00.shp"),
    +           data_path("shapefile_test_data/alameda/tgr06001wat.shp"),
    +           data_path("shapefile_test_data/alameda/tgr06001lkH.shp"))
    +    # Put the roads on.
    +    OpenDatabase(dbs[0])
    +    AddPlot("Mesh", "polyline")
    +    g = 180
    +    m = MeshAttributes()
    +    m.meshColorSource = m.MeshCustom
    +    m.meshColor = (g,g,g,255)
    +    m.legendFlag = 0
    +    SetPlotOptions(m)
    +    ResetView()
    +    DrawPlots()
    +
    +    # Put the county outline on.
    +    OpenDatabase(dbs[1])
    +    AddPlot("Mesh", "polygon")
    +    m = MeshAttributes()
    +    m.meshColorSource = m.MeshCustom
    +    m.meshColor = (255,0,0,255)
    +    m.lineWidth = 1
    +    m.legendFlag = 0
    +    SetPlotOptions(m)
    +    DrawPlots()
    +
    +    # Put the bodies of water on.
    +    OpenDatabase(dbs[2])
    +    AddPlot("Mesh", "polygon")
    +    m = MeshAttributes()
    +    m.meshColorSource = m.MeshCustom
    +    m.meshColor = (0,0,255,255)
    +    m.lineWidth = 1
    +    m.legendFlag = 0
    +    SetPlotOptions(m)
    +    DrawPlots()
    +
    +    # Put the streams on.
    +    OpenDatabase(dbs[3])
    +    AddPlot("Mesh", "polyline")
    +    m = MeshAttributes()
    +    m.meshColorSource = m.MeshCustom
    +    m.meshColor = (150,150,255,255)
    +    m.legendFlag = 0
    +    SetPlotOptions(m)
    +    DrawPlots()
    +
    +    Test("shapefile_3_00")
    +
    +    # Zoom in some
    +    v = View2DAttributes()
    +    v.windowCoords = (-121.845, -121.681, 37.608, 37.775)
    +    SetView2D(v)
    +    Test("shapefile_3_01")
    +
    +    # Zoom in even more
    +    v.windowCoords = (-121.763, -121.718, 37.6533, 37.6983)
    +    SetView2D(v)
    +    Test("shapefile_3_02")
    +
    +    # Clean up
    +    DeleteAllPlots()
    +    for db in dbs:
    +        CloseDatabase(db)
    +
    +#
    +# Test a .visit file of shapefiles
    +#
    +def test4():
    +    TestSection("Test a .visit file of shapefiles")
    +    db = data_path("shapefile_test_data/bayarearoads/roads.visit")
    +    OpenDatabase(db)
    +    AddPlot("Subset", "blocks")
    +    DrawPlots()
    +    ResetView()
    +    Test("shapefile_4_00")
    +
    +    # Zoom in a little
    +    v = View2DAttributes()
    +    v.windowCoords = (-122.614, -121.92, 37.3495, 37.9982)
    +    SetView2D(v)
    +    Test("shapefile_4_01")
    +
    +    # Zoom in more
    +    v.windowCoords = (-122.522, -122.362, 37.7017, 37.8424)
    +    SetView2D(v)
    +    Test("shapefile_4_02")
    +
    +    # Zoom in more still
    +    v.windowCoords = (-122.488, -122.445, 37.7816, 37.825)
    +    SetView2D(v)
    +    Test("shapefile_4_03")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(db)
    +
    +#
    +# Run the tests.
    +#
    +test0()
    +test1()
    +test2()
    +test3()
    +test4()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_silo.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_silo.html new file mode 100644 index 000000000..9986865a8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_silo.html @@ -0,0 +1,707 @@ + +Results for databases/silo.py + +

    Results of VisIt Regression Test - databases/silo

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    silo_010.000.00
    silo_020.000.00
    silo_030.000.00
    silo_040.000.00
    silo_050.000.00
    silo_060.000.00
    silo_070.000.00
    silo_080.000.00
    silo_090.000.00
    silo_100.000.00
    silo_110.000.00
    silo_120.000.00
    silo_130.000.00
    silo_140.000.00
    silo_150.000.00
    silo_160.000.00
    silo_170.000.00
    silo_180.000.00
    silo_200.000.00
    silo_210.000.00
    silo_220.000.00
    silo_230.000.00
    silo_240.000.00
    silo_250.000.00
    silo_260.000.00
    silo_270.000.00
    silo_280.000.00
    silo_290 modifications totalling 0 lines
    silo_300.000.00
    silo_310.000.00
    silo_320.000.00
    silo_330.000.00
    silo_340.000.00
    silo_350.000.00
    silo_360.000.00
    silo_370.000.00
    silo_380.000.00
    silo_390.000.00
    Silo AMR w/Mrgtrees
    silo_400.000.00
    silo_410.320.32
    silo_420.000.00
    silo_430.000.00
    silo_440.000.00
    silo_450.000.00
    Variables defined on material subsets
    silo_460.000.00
    silo_470.000.00
    silo_480.000.00
    silo_490.000.00
    silo_500.000.00
    Various arbitrary polygonal/polyhedral meshes
    silo_510.000.00
    silo_520.000.00
    silo_530.000.00
    silo_540.000.00
    silo_550.000.00
    silo_560.000.00
    silo_570.000.00
    silo_580.000.00
    silo_590.000.00
    silo_600.000.00
    silo_610.000.00
    silo_620.000.00
    silo_630.000.00
    silo_640.000.00
    silo_650.000.00
    silo_660.000.00
    silo_670.000.00
    silo_680.000.00
    silo_690.000.00
    silo_700.000.00
    silo_710.000.00
    silo_720.000.00
    silo_730.000.00
    silo_740.000.00
    silo_750.000.00
    silo_760.000.00
    silo_770.000.00
    silo_780.000.00
    silo_790.000.00
    silo_800.000.00
    silo_810.000.00
    silo_820.000.00
    silo_830.000.00
    silo_840.000.00
    silo_850.000.00
    silo_860.000.00
    silo_870.000.00
    silo_880.000.00
    silo_890.000.00
    silo_900.000.00
    silo_910.000.00
    silo_920.000.00
    silo_930.000.00
    silo_940.000.00
    silo_950.000.00
    Scalar and Vector ASCII Label Plots
    silo_960.000.00
    silo_970.000.00
    Curve with polar coordinates
    silo_980.000.00
    ghost_zone/node_labels
    silo_990.000.00
    silo_1000.000.00
    silo_1010.000.00
    silo_1020.000.00
    Curvilinear (quad) surfaces in 3D
    silo_curvilinear_3d_surface_00.000.00
    silo_curvilinear_3d_surface_10.000.00
    silo_curvilinear_3d_surface_20.000.00
    silo_curvilinear_3d_surface_30.000.00
    silo_curvilinear_3d_surface_40.000.00
    silo_curvilinear_3d_surface_50.000.00
    silo_curvilinear_3d_surface_60.000.00
    +

    Final Return Code: 120

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_silo_altdriver.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_silo_altdriver.html new file mode 100644 index 000000000..25512b247 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_silo_altdriver.html @@ -0,0 +1,32 @@ + +Results for databases/silo_altdriver.py + +

    Results of VisIt Regression Test - databases/silo_altdriver

    + + + + + + + + + + + + + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_silo_altdriver_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_silo_altdriver_py.html new file mode 100644 index 000000000..8c5fdba49 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_silo_altdriver_py.html @@ -0,0 +1,21 @@ +databases/silo_altdriver.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  silo_altdriver
    +#
    +#  Tests:      Runs the silo.py test using the 'other' driver. If silo.py
    +#              was run on PDB driver, this will run them on HDF5 driver and
    +#              vice versa.
    +#
    +#  Programmer: Mark C. Miller
    +#  Date:       25Jan10
    +#
    +# ----------------------------------------------------------------------------
    +
    +if TestEnv.params["silo_mode"] == "pdb":
    +    TestEnv.params["silo_mode"] = "hdf5"
    +else:
    +    TestEnv.params["silo_mode"] = "pdb"
    +
    +Source(tests_path("databases","silo.py"))
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_silo_datatypes.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_silo_datatypes.html new file mode 100644 index 000000000..1aea789aa --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_silo_datatypes.html @@ -0,0 +1,79 @@ + +Results for databases/silo_datatypes.py + +

    Results of VisIt Regression Test - databases/silo_datatypes

    +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Silo Data Types
    silo_datatypes_quad_fnvar0.000.00
    silo_datatypes_quad_fzvar0.000.00
    silo_datatypes_ucd_fnvar0.000.00
    silo_datatypes_ucd_fzvar0.000.00
    silo_datatypes_diffs_hdf5_fsoff0 modifications totalling 0 lines
    silo_datatypes_diffs_hdf5_fson0 modifications totalling 0 lines
    silo_datatypes_diffs_pdb_fsoff0 modifications totalling 0 lines
    silo_datatypes_diffs_pdb_fson0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_silo_datatypes_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_silo_datatypes_py.html new file mode 100644 index 000000000..bce4fe2af --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_silo_datatypes_py.html @@ -0,0 +1,152 @@ +databases/silo_datatypes.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  silo_datatypes.py 
    +#
    +#  Tests:      All varieties of datatypes, centering, variable types,
    +#              meshtypes and force-single mode. 
    +#
    +#  Programmer: Mark C. Miller, Thu Jul 15 14:42:12 PDT 2010
    +#
    +#  Modifications:
    +#    Mark C. Miller, Tue Jul 20 19:26:04 PDT 2010
    +#    Adjusted names of temporary output files so they don't stomp on each
    +#    other.
    +#
    +#    Mark C. Miller, Wed Jul 21 08:51:30 PDT 2010
    +#    I side-stepped around a subtle problem with long long data from PDB.
    +#    Turns out on alastor where tests are being run as of July, 2010, sizeof
    +#    long is 8 and that is the same as size of long long. On the HDF5 driver,
    +#    if it reads integer data of N bytes, it will put it into the smallest
    +#    native type that fits. So, when it reads long long data of 8 bytes
    +#    but discovers a native long on the machine where the data is being read
    +#    is 8 bytes, it returns long instead. So, HDF5 driver never returns
    +#    a type of vtkLongLongArray. But, PDB driver does. And, for some reason
    +#    that one single case is getting handled subtly wrong. Its data extents
    +#    wind up getting set to [0,1] (which I assume is some sort of default).
    +#    So, the plot looks bad. So, here, in that case, I manually set the
    +#    extents and get around this problem. I am thinking there is a VTK
    +#    bug in computing the data extents for vtkLongLongArray type. But, thats
    +#    just a guess.
    +#
    +#    Mark C. Miller, Mon Jul 26 17:08:59 PDT 2010
    +#    Override pass/fail status for long long data until we switch to silo-4.8
    +#
    +#    Mark C. Miller, Thu Sep 23 21:23:42 PDT 2010
    +#    Remove override of pass/fail for long long data since now using silo-4.8
    +#
    +#    Eric Brugger, Mon Sep 26 11:35:01 PDT 2022
    +#    Changed use of test_root_path to more appropriate test_baseline_path.
    +#
    +# ----------------------------------------------------------------------------
    +TurnOffAllAnnotations() # defines global object 'a'
    +
    +#
    +# We do this quick open and immediate close because one cannot
    +# set FileOptions for a plugin type without having already opened
    +# at least one file of that type.
    +#
    +dummydb = silo_data_path("one_quad.silo")
    +OpenDatabase(dummydb)
    +CloseDatabase(dummydb)
    +
    +def SetForceSingle(val):
    +    # Turn off force single precision for this test
    +    # Note: We can't successfully do that until we open some database
    +    readOptions=GetDefaultFileOpenOptions("Silo")
    +    if val == "on":
    +        readOptions["Force Single"] = 1
    +    else:
    +        readOptions["Force Single"] = 0
    +    SetDefaultFileOpenOptions("Silo", readOptions)
    +
    +#
    +# Test reading various datatypes from Silo
    +#
    +TestSection("Silo Data Types")
    +DeleteAllPlots()
    +mtypes=("quad","ucd")
    +dtypes=("c","s","i","l","L","f","d")
    +vtypes=("n","z")
    +
    +#
    +# Test 'baseline' for node/zone centered quad/ucd from float data
    +#
    +backup = GetSaveWindowAttributes()
    +for mt in mtypes:
    +    dbname=silo_data_path("specmix_%s.silo" % mt)
    +    OpenDatabase(dbname)
    +    for v in vtypes:
    +        varname="%s%svar"%("f",v) # using only 'f'loat for baseline
    +        AddPlot("Pseudocolor",varname)
    +        DrawPlots()
    +        ResetView()
    +        Test("silo_datatypes_%s_%s"%(mt,varname))
    +        DeleteAllPlots()
    +    CloseDatabase(dbname)
    +
    +# Build PC plot attributes to be used to set min/max
    +# Only necessary for long long case from PDB. Why?
    +pa = PseudocolorAttributes()
    +pa.minFlag = 1
    +pa.maxFlag = 1
    +pa.min = 0
    +pa.max = 20
    +
    +for path in ["silo_datatypes",
    +             pjoin("silo_datatypes","current"),
    +             pjoin("silo_datatypes","diff")]:
    +    if not os.path.isdir(path):
    +        os.mkdir(path)
    +for smode in ("hdf5", "pdb"):
    +    for fsmode in ("off", "on"): # force single modes
    +        SetForceSingle(fsmode)
    +        diffResults=""
    +        for mt in mtypes:
    +            dbname=silo_data_path("specmix_%s.silo" % mt )
    +            OpenDatabase(dbname)
    +            for v in vtypes:
    +                for d in dtypes:
    +                    varname="%s%svar"%(d,v)
    +                    fvarname="%s%svar"%("f",v)
    +                    filename="silo_datatypes_%s_fs%s_%s_%s"%(smode,fsmode,mt,varname)
    +                    AddPlot("Pseudocolor",varname)
    +                    if (smode == "pdb" and d == "L"):
    +                        if (v == "n"):
    +                            pa.max = 20
    +                        else:
    +                            pa.max = 19
    +                        SetPlotOptions(pa)
    +                    DrawPlots()
    +                    ResetView()
    +                    swa=SaveWindowAttributes()
    +                    swa.outputToCurrentDirectory = 0
    +                    swa.outputDirectory = pjoin("silo_datatypes","current")
    +                    swa.screenCapture=1
    +                    swa.family   = 0
    +                    swa.fileName = filename
    +                    swa.format   = swa.PNG
    +                    SetSaveWindowAttributes(swa)
    +                    SaveWindow()
    +                    DeleteAllPlots()
    +                    tPixs = pPixs = dPixs = 0
    +                    davg = 0.0
    +                    if TestEnv.params["use_pil"]:
    +                         file=filename
    +                         cur  = pjoin("silo_datatypes","current","%s.png" % filename)
    +                         diff = pjoin("silo_datatypes","diff","%s.png" % filename)
    +                         base = test_baseline_path("databases",
    +                                                   "silo_datatypes",
    +                                                   "silo_datatypes_%s_%s.png"%(mt,fvarname))
    +                         (tPixs, pPixs, dPixs, davg) = DiffUsingPIL(file, cur, diff, base, "")
    +                         result = "PASSED"
    +                         if (dPixs > 0 and davg > 1):
    +                             result = "FAILED, %f %f"%(dPixs,davg)
    +                         diffResults += "%s_%s:    %s\n"%(mt,varname,result)
    +            CloseDatabase(dbname)
    +        TestText("silo_datatypes_diffs_%s_fs%s"%(smode,fsmode),diffResults)
    +shutil.rmtree("silo_datatypes")
    +SetSaveWindowAttributes(backup)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_silo_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_silo_py.html new file mode 100644 index 000000000..02cffb73a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_silo_py.html @@ -0,0 +1,764 @@ +databases/silo.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  silo.py
    +#
    +#  Tests:      multi-part silo files
    +#              operators - slice
    +#              operators - onion peel
    +#              selection - by domains
    +#
    +#  Programmer: Mark C. Miller
    +#  Date:       March 8, 2004
    +#
    +#  Defects:    4335/4337.
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Tue Mar  9 08:48:14 PST 2004
    +#    Turned off databaseInfo annotation, Used TurnOffDomains instead of
    +#    SIL sets to get correct domain turned off, reordered DrawPlots for
    +#    test 3 so that we get same results in parallel.  For OnionPeel, use
    +#    SetDefaultOperatorOptions so that options are applied.
    +#
    +#    Hank Childs, Thu Jun 24 09:59:12 PDT 2004
    +#    Add tests for quads that are stored as hexes in a ucd mesh. ['4335/'4337]
    +#
    +#    Brad Whitlock, Wed Mar 9 09:15:30 PDT 2005
    +#    Removed deprecated functions.
    +#
    +#    Mark C. Miller, Tue Jun 28 17:28:56 PDT 2005
    +#    Added tests mimicing Ale3d's history variables
    +#
    +#    Mark C. Miller, Wed Dec 13 18:32:20 PST 2006
    +#    Added time invariant mesh tests
    +#
    +#    Mark C. Miller, Wed Feb  7 20:23:22 PST 2007
    +#    Modified code to set SIL Restriction for mesh1_dup to be independent
    +#    of the file structure. Added test for multivar that spans multiple
    +#    multimeshes; it should fail.
    +#
    +#    Jeremy Meredith, Tue Jul 15 10:43:58 EDT 2008
    +#    Changed number of vectors in vector plot to match the old behavior.
    +#    (We now account for how many domains there are.)
    +#
    +#    Mark C. Miller, Thu Jan 22 16:27:54 PST 2009
    +#    Modified tests of defvars using mag and vec to make them less sensitive
    +#    to differences in platform. The mag test was computing a vector magnitude
    +#    whose range was very, very tiny. Switching that to sum fixes that
    +#    problem. The vector plot was simply generating way to many vectors that
    +#    were being drawn on top of each other. I changed it to use a moderately
    +#    large prime as the stride.
    +#
    +#    Mark C. Miller, Mon Sep 28 20:58:24 PDT 2009
    +#    Added tests for AMR data from Silo file using MRG Trees.
    +#
    +#    Tom Fogal, Wed Dec 16 13:11:19 MST 2009
    +#    Fixed a path to a data file.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Mark C. Miller, Fri Jan 22 17:30:29 PST 2010
    +#    I replaced OpenDatabase with FindAnd... variant for largefile.silo
    +#    to deal with data we don't keep in repo.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Mark C. Miller, Tue Feb 28 00:36:09 PST 2012
    +#    Added a slew of tests for hybrid zoo and arbitrary polygonal/polyhedral
    +#    meshes and variables defined upon them.
    +#
    +#    Kathleen Biagas, Thurs May 23 14:09:15 MST 2013
    +#    Don't run certain tests on Windows that cause a crash.
    +#
    +#    Kathleen Biagas, Thurs Jun 6 11:04:13 PDT 2013
    +#    Re-enable tests 42,44, and 45 on Windows, now that crash has been fixed.
    +#
    +#    Edward Rusu, Tues Oct 2 8:20:24 PDT 2018
    +#    Added tests for ghost_zone/node_labels in the silo files.
    +#
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#    individually to match current baseline results.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Remove obsolete 'colorByMag' vector att with 'colorByMagnitude'.
    +#
    +#    Kathleen Biagas, Tue July 11, 2023
    +#    Don't allow tests using wave_1file.visit to run on Windows, as they
    +#    involve symlinks. Symink access on the testing machine is disallowed.
    +#
    +#    Kathleen Biagas, Fri July 28, 2023
    +#    Allow test_26 involving largefile.silo to run on Windows.
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOffAllAnnotations() # defines global object 'a'
    +
    +# Turn off sets by name
    +def TurnOffSetsByName(silr, cat, names):
    +    sets = silr.SetsInCategory(cat)
    +    for s in sets:
    +        setname = silr.SetName(s)
    +        try:
    +            if setname in names:
    +                silr.TurnOffSet(s)
    +        except:
    +            if setname == names:
    +                silr.TurnOffSet(s)
    +
    +OpenDatabase(silo_data_path("multipart_multi_ucd3d.silo"))
    +
    +
    +#
    +# Test simple read and display of a variable
    +#
    +AddPlot("Pseudocolor","d")
    +DrawPlots()
    +
    +v=GetView3D()
    +v.viewNormal=(-0.5, 0.296198, 0.813798)
    +SetView3D(v)
    +Test("silo_01")
    +
    +#
    +# Test an intercept slice (that can use
    +# spatial extents tree if we have it)
    +#
    +sliceAtts=SliceAttributes()
    +sliceAtts.originType=sliceAtts.Intercept
    +sliceAtts.originIntercept=5
    +sliceAtts.axisType=sliceAtts.ZAxis
    +sliceAtts.project2d=0
    +SetDefaultOperatorOptions(sliceAtts)
    +AddOperator("Slice",1)
    +DrawPlots()
    +Test("silo_02")
    +DeleteAllPlots()
    +
    +#
    +# test selection down to just 1 domain
    +#
    +AddPlot("Pseudocolor","u")
    +TurnDomainsOff()
    +TurnDomainsOn(("domain11"))
    +DrawPlots()
    +Test("silo_03")
    +DeleteAllPlots()
    +
    +#
    +# Test an onion peel
    +#
    +AddPlot("Pseudocolor","p")
    +op = OnionPeelAttributes()
    +op.categoryName = "domains"
    +op.subsetName = "domain11"
    +op.index = (5)
    +op.logical = 0
    +op.adjacencyType = op.Face
    +op.requestedLayer = 3
    +SetDefaultOperatorOptions(op)
    +AddOperator("OnionPeel")
    +DrawPlots()
    +Test("silo_04")
    +
    +# we just hide the plots to keep camera
    +HideActivePlots()
    +
    +
    +
    +
    +#
    +# Do some os work to create what VisIt will see as a
    +# 'virtual' database of multi-part silo files by
    +# creating appropriately named links
    +#
    +
    +#TODO BROKEN:
    +# Cyrus: I tried to change this, from prev code
    +# b/c symlinks won't work on Windows.
    +#
    +# also silo paths in multipart_multi_ucd3d, don't point to
    +# gorfo files,they won't work out of the data dir
    +# (and we shouldn't be modifying the data dir !)
    +
    +# KSB: Added copy of original file, and removed silo_data_path from
    +# shutil copy so that this will work.
    +# All the copies are made into the run_dir by default, which gets cleaned
    +# up unless --no-cleanup is used.
    +
    +# remove any gorfos
    +for f in glob.glob("gorfo_*"):
    +    os.remove(f)
    +
    +i = 0
    +
    +
    +for filename in glob.glob(silo_data_path("multipart_multi_ucd3d*.silo")):
    +    # copy the original file because the silo files have relatives paths
    +    shutil.copy(filename, os.path.basename(filename))
    +    if filename.endswith("multipart_multi_ucd3d.silo"):
    +        shutil.copy(filename,"gorfo_1000")
    +        shutil.copy(filename,"gorfo_2000")
    +        shutil.copy(filename,"gorfo_3000")
    +    else:
    +        shutil.copy(filename,"gorfo_1000.%d" %i)
    +        shutil.copy(filename,"gorfo_2000.%d" %i)
    +        shutil.copy(filename,"gorfo_3000.%d" %i)
    +    i = i + 1
    +
    +#
    +# Test opening a 'virtual' database of multi-part silo files
    +# at something other than its first timestep
    +#
    +OpenDatabase("gorfo_* database",1)
    +
    +AddPlot("Pseudocolor","d")
    +AddPlot("Mesh", "mesh1")
    +DrawPlots()
    +Test("silo_05")
    +
    +# go to the next frame
    +TimeSliderNextState()
    +Test("silo_06")
    +
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("ucd3d.silo"))
    +
    +AddPlot("Mesh", "exterior_faces")
    +DrawPlots()
    +Test("silo_07")
    +
    +AddOperator("Slice")
    +DrawPlots()
    +Test("silo_08")
    +
    +#
    +# Test something akin to Ale3d's history variables
    +# Note: time state 0 is purposely corrupted with
    +# all empty domains. So we go from 1 to end and
    +# back around to 1 purposely avoiding 0
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("hist_ucd3d_* database"),1)
    +
    +AddPlot("Pseudocolor","d_dup")
    +DrawPlots()
    +
    +#
    +# Build a sil restriction
    +#
    +silr=SILRestriction()
    +for i in silr.Wholes():
    +   if silr.SetName(i) == "mesh1_dup":
    +       silr.TurnOffSet(i+11)
    +       silr.TurnOffSet(i+12)
    +       silr.TurnOffSet(i+22)
    +       silr.TurnOffSet(i+23)
    +SetPlotSILRestriction(silr)
    +Test("silo_09")
    +
    +for i in range(TimeSliderGetNStates()-2):
    +    TimeSliderNextState()
    +    Test("silo_%02d"%(i+10))
    +TimeSliderSetState(1)
    +Test("silo_18")
    +
    +#
    +# Test defvar object
    +#
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +AddPlot("Pseudocolor","sum")
    +DrawPlots()
    +Test("silo_20")
    +
    +DeleteActivePlots()
    +AddPlot("Vector","vec")
    +vec = VectorAttributes()
    +vec.useStride = 1
    +vec.stride = 41
    +vec.colorByMagnitude = 0
    +SetPlotOptions(vec)
    +DrawPlots()
    +Test("silo_21")
    +
    +DeleteActivePlots()
    +AddPlot("Pseudocolor","nmats")
    +DrawPlots()
    +Test("silo_22")
    +
    +#
    +# Test curves from silo
    +#
    +DeleteAllPlots()
    +a=GetAnnotationAttributes()
    +a.axes2D.visible = 1
    +SetAnnotationAttributes(a)
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Curve","line")
    +curveAtts = CurveAttributes()
    +curveAtts.curveColorSource = curveAtts.Custom
    +curveAtts.curveColor = (255, 0, 0, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +Test("silo_23")
    +
    +DeleteActivePlots()
    +AddPlot("Curve","wave")
    +curveAtts.curveColor = (0, 255, 0, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +Test("silo_24")
    +
    +DeleteActivePlots()
    +AddPlot("Curve","log")
    +curveAtts.curveColor = (0, 0, 255, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +Test("silo_25")
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +#
    +# Test objects existing past 2Gig limit in a >2 Gig file
    +# Large File Support. Because file is large, it is NOT
    +# part of the repo. We create a sym-link to it from the
    +# data dir.
    +#
    +
    +(err, dbname) = FindAndOpenDatabase("largefile.silo")
    +if (err != 1):
    +    AddSkipCase("silo_26")
    +    Test("silo_26")
    +else:
    +    AddPlot("Curve","sincurve")
    +    curveAtts.curveColor = (0, 255, 255, 255)
    +    SetPlotOptions(curveAtts)
    +    AddPlot("Curve","coscurve")
    +    curveAtts.curveColor = (255, 0, 255, 255)
    +    SetPlotOptions(curveAtts)
    +    DrawPlots()
    +    Test("silo_26")
    +    DeleteAllPlots()
    +    CloseDatabase(dbname)
    +
    +#
    +# Test time invariant mesh
    +#
    +OpenDatabase(silo_data_path("multi_ucd3d_ti_* database"),2)
    +
    +AddPlot("Pseudocolor","d")
    +DrawPlots()
    +ResetView()
    +v=GetView3D()
    +v.viewNormal=(-0.5, 0.296198, 0.813798)
    +SetView3D(v)
    +silr=SILRestriction()
    +for i in range(1,36,2):
    +    silr.TurnOffSet(i)
    +SetPlotSILRestriction(silr)
    +Test("silo_27")
    +TimeSliderNextState()
    +Test("silo_28")
    +
    +#
    +# Test that multivars that span multimeshes are correctly
    +# invalidated by VisIt
    +#
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multi_ucd3d_ti_* database"))
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor","d_split")
    +DrawPlots()
    +t = GetLastError()
    +TestText("silo_29", t)
    +
    +#
    +# Test that we get correct SIL behavior for a database
    +# with a varying SIL and TreatAllDBsAsTimeVarying turned
    +# on
    +#
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +OpenDatabase(silo_data_path("histne_ucd3d_* database"), 2)
    +
    +AddPlot("Pseudocolor", "d_dup")
    +DrawPlots()
    +Test("silo_30")
    +TimeSliderNextState()
    +Test("silo_31")
    +
    +SetTreatAllDBsAsTimeVarying(1)
    +TimeSliderNextState()
    +Test("silo_32")
    +TimeSliderNextState()
    +Test("silo_33")
    +TimeSliderPreviousState()
    +TimeSliderPreviousState()
    +TimeSliderPreviousState()
    +Test("silo_34")
    +
    +#
    +# Test a database with some odd multi-block structure
    +#
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("histne_ucd3d_* database"))
    +
    +SetTreatAllDBsAsTimeVarying(0)
    +OpenDatabase(data_path("silo_pdb_test_data/odd_multi.silo"))
    +
    +AddPlot("Pseudocolor","cyc_00000/den")
    +DrawPlots()
    +ResetView()
    +Test("silo_35")
    +
    +#
    +# Test a database in which all timesteps are in one file
    +#
    +DeleteAllPlots()
    +CloseDatabase(data_path("silo_pdb_test_data/odd_multi.silo"))
    +
    +if not sys.platform.startswith("win"):
    +    # files listed in the .visit file (eg wave_1file.silo:cycle_xxx)
    +    # are symlinks to wave_1file.silo and symlink access is disallowed
    +    # on the windows testing machine.
    +    OpenDatabase(silo_data_path("wave_1file.visit"))
    +
    +    AddPlot("Mesh","quadmesh")
    +    AddPlot("Pseudocolor","pressure")
    +    DrawPlots()
    +    ResetView()
    +    Test("silo_36")
    +    TimeSliderSetState(23)
    +    Test("silo_37")
    +    TimeSliderNextState()
    +    TimeSliderNextState()
    +    TimeSliderNextState()
    +    Test("silo_38")
    +    TimeSliderPreviousState()
    +    TimeSliderPreviousState()
    +    TimeSliderPreviousState()
    +    TimeSliderPreviousState()
    +    TimeSliderPreviousState()
    +    TimeSliderPreviousState()
    +    Test("silo_39")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("wave_1file.visit"))
    +
    +TestSection("Silo AMR w/Mrgtrees")
    +TurnOffAllAnnotations()
    +OpenDatabase(data_path("silo_amr_test_data/amr2d_wmrgtree.silo"))
    +
    +AddPlot("Mesh","amr_mesh_wmrgtree")
    +DrawPlots()
    +ResetView()
    +v=GetView2D()
    +v.windowCoords = (0.368424, 0.412063, 0.265434, 0.310012)
    +SetView2D(v)
    +Test("silo_40")
    +AddPlot("Pseudocolor","Density_wmrgtree")
    +DrawPlots()
    +Test("silo_41")
    +
    +silr=SILRestriction()
    +s = silr.SetsInCategory("levels")
    +TurnOffSetsByName(silr, "levels", "level2")
    +SetPlotSILRestriction(silr)
    +Test("silo_42")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("silo_amr_test_data/amr2d_wmrgtree.silo"))
    +
    +OpenDatabase(data_path("silo_amr_test_data/amr3d_wmrgtree.silo"))
    +
    +AddPlot("Contour","foo_wmrgtree")
    +ca=ContourAttributes()
    +ca.contourValue = (60,)
    +ca.contourMethod = ca.Value
    +SetPlotOptions(ca)
    +DrawPlots()
    +ResetView()
    +v=GetView3D()
    +v.imagePan = (0.2066, 0.104372)
    +v.imageZoom = 6.03355
    +SetView3D(v)
    +Test("silo_43")
    +
    +silr=SILRestriction()
    +TurnOffSetsByName(silr, "levels", "level2")
    +SetPlotSILRestriction(silr)
    +Test("silo_44")
    +TurnOffSetsByName(silr, "levels", "level1")
    +SetPlotSILRestriction(silr)
    +Test("silo_45")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("silo_amr_test_data/amr2d_wmrgtree.silo"))
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +TestSection("Variables defined on material subsets")
    +sa = SliceAttributes()
    +sa.originType = sa.Percent
    +sa.originPercent = 50
    +sa.axisType = sa.ZAxis
    +testNum = 46
    +for varname in ("p_on_mats_2","d_on_mats_1_3","m1vf_on_mats_1","m2vf_on_mats_2","m3vf_on_mats_3"):
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", varname)
    +    AddOperator("Slice")
    +    SetOperatorOptions(sa)
    +    DrawPlots()
    +    SetViewExtentsType("actual")
    +    ResetView()
    +    Test("silo_%d"%testNum)
    +    testNum = testNum + 1
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +OpenDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +
    +TestSection("Various arbitrary polygonal/polyhedral meshes")
    +
    +ma = MeshAttributes()
    +ma.showInternal = 1
    +for meshname in ("2D/mesh1_zl1","2D/mesh1_zl2","2D/mesh1_phzl","2D/mesh1_phzl2", "2D/mesh1g_zl2"):
    +    DeleteAllPlots()
    +    AddPlot("Mesh", meshname)
    +    SetPlotOptions(ma)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView2D()
    +    v.windowCoords=(-1, 10, -1, 2)
    +    SetView2D(v)
    +    Test("silo_%d"%testNum)
    +    testNum = testNum + 1
    +
    +for meshname in ("2Dz/mesh1_zl1","2Dz/mesh1_zl2","2Dz/mesh1_phzl","2Dz/mesh1_phzl2", "2Dz/mesh1g_zl2"):
    +    DeleteAllPlots()
    +    AddPlot("Mesh", meshname)
    +    DrawPlots()
    +    ResetView()
    +    Test("silo_%d"%testNum)
    +    testNum = testNum + 1
    +
    +ma = MeshAttributes()
    +ma.showInternal = 1
    +ma.opaqueMode = ma.On
    +for meshname in ("3D/mesh1", "3D/mesh2", "3D/mesh2g", "3D/mesh3", "3D/mesh3r"):
    +    DeleteAllPlots()
    +    AddPlot("Mesh", meshname)
    +    SetPlotOptions(ma)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.RotateAxis(1,-30)
    +    v.RotateAxis(0,20)
    +    SetView3D(v)
    +    Test("silo_%d"%testNum)
    +    testNum = testNum + 1
    +
    +for varname in ("2D/n11", "2D/n12", "2D/n12g", "2D/n1phzl", "2D/n1phzl2",
    +                "2D/z11", "2D/z12", "2D/z12g", "2D/z1phzl", "2D/z1phzl2"):
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", varname)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView2D()
    +    v.windowCoords=(-1, 10, -1, 2)
    +    SetView2D(v)
    +    Test("silo_%d"%testNum)
    +    testNum = testNum + 1
    +
    +for varname in ("2Dz/n11", "2Dz/n12", "2Dz/n12g", "2Dz/n1phzl", "2Dz/n1phzl2",
    +                "2Dz/z11", "2Dz/z12", "2Dz/z12g", "2Dz/z1phzl", "2Dz/z1phzl2"):
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", varname)
    +    DrawPlots()
    +    ResetView()
    +    Test("silo_%d"%testNum)
    +    testNum = testNum + 1
    +
    +for varname in ("3D/n1", "3D/n2", "3D/n2g", "3D/n3", "3D/n3r",
    +                "3D/z1", "3D/z2", "3D/z2g", "3D/z3", "3D/z3r"):
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", varname)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.RotateAxis(1,-30)
    +    v.RotateAxis(0,20)
    +    SetView3D(v)
    +    Test("silo_%d"%testNum)
    +    testNum = testNum + 1
    +
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +
    +TestSection("Scalar and Vector ASCII Label Plots")
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +AddPlot("Label", "ascii")
    +DrawPlots()
    +ResetView()
    +v = GetView2D()
    +v.windowCoords = (0.362263, 0.967737, -0.0277375, 0.577737)
    +SetView2D(v)
    +Test("silo_%d"%testNum)
    +testNum = testNum + 1
    +
    +DeleteAllPlots()
    +AddPlot("Label", "asciiw")
    +DrawPlots()
    +ResetView()
    +v = GetView2D()
    +v.windowCoords = (0.362263, 0.967737, -0.0277375, 0.577737)
    +SetView2D(v)
    +Test("silo_%d"%testNum)
    +testNum = testNum + 1
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("rect2d.silo"))
    +
    +TestSection("Curve with polar coordinates")
    +
    +OpenDatabase(silo_data_path("multi_rect2d.silo"))
    +AddPlot("Curve","circle")
    +curveAtts.curveColor = (255, 255, 0, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +ResetView()
    +Test("silo_%d"%testNum)
    +testNum = testNum + 1
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multi_rect2d.silo"))
    +
    +TestSection("ghost_zone/node_labels")
    +
    +OpenDatabase(data_path("silo_ghost_test_data/specmix_quad.pdb"))
    +ResetView()
    +AddPlot("Subset", "Mesh_gnz")
    +AddPlot("Mesh", "Mesh_gnz")
    +DrawPlots()
    +Test("silo_%d"%testNum)
    +testNum = testNum + 1
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("silo_ghost_test_data/specmix_quad.pdb"))
    +
    +OpenDatabase(data_path("silo_ghost_test_data/specmix_ucd.pdb"))
    +ResetView()
    +AddPlot("Subset", "Mesh_gnz")
    +AddPlot("Mesh", "Mesh_gnz")
    +DrawPlots()
    +Test("silo_%d"%testNum)
    +testNum = testNum + 1
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("silo_ghost_test_data/specmix_ucd.pdb"))
    +
    +#
    +# Test the way silo reads in curve data with expressions
    +#
    +OpenDatabase(silo_data_path("multi_rect2d.silo"))
    +DefineCurveExpression("alias","wave")
    +DefineCurveExpression("waveSquared", "wave*wave")
    +ResetView()
    +
    +AddPlot("Curve","wave")
    +curveAtts.curveColor = (255, 135, 0, 255)
    +SetPlotOptions(curveAtts)
    +AddPlot("Curve","waveSquared")
    +curveAtts.curveColor = (255, 0, 135, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +Test("silo_%d"%testNum)
    +testNum = testNum + 1
    +DeleteAllPlots()
    +
    +AddPlot("Curve","alias")
    +curveAtts.curveColor = (168, 168, 168, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +Test("silo_%d"%testNum)
    +testNum = testNum + 1
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multi_rect2d.silo"))
    +
    +def curvilinear_3d_surface():
    +    """Curvilinear (quad) surfaces in 3D"""
    +
    +    OpenDatabase(silo_data_path("quad_disk.silo"))
    +
    +    AddPlot("Pseudocolor","sphElev_on_mesh_3d")
    +    ResetView()
    +    DrawPlots()
    +    v = GetView3D()
    +    v.RotateAxis(0,-20)
    +    v.RotateAxis(1,-30)
    +    SetView3D(v)
    +    TestAutoName()
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor","sphElev_on_meshD_3d")
    +    DrawPlots()
    +    TestAutoName()
    +    DeleteAllPlots()
    +
    +    AddPlot("FilledBoundary", "mat_3d(mesh_3d)")
    +    DrawPlots()
    +    TestAutoName()
    +    DeleteAllPlots()
    +
    +    CloseDatabase(silo_data_path("quad_disk.silo"))
    +    OpenDatabase(silo_data_path("specmix_quad.silo"))
    +
    +    # Index select doesn't work quite right here
    +    AddPlot("Mesh","Mesh_3d")
    +    AddOperator("IndexSelect")
    +    idxsel = IndexSelectAttributes()
    +    idxsel.xMin = 5
    +    idxsel.xMax = 15
    +    SetOperatorOptions(idxsel)
    +    ResetView()
    +    DrawPlots()
    +    TestAutoName()
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor","p3d")
    +    DrawPlots()
    +    TestAutoName()
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor","u3d")
    +    DrawPlots()
    +    TestAutoName()
    +    DeleteAllPlots()
    +
    +    AddPlot("FilledBoundary", "Material_3d(Mesh_3d)")
    +    DrawPlots()
    +    TestAutoName()
    +    DeleteAllPlots()
    +
    +    CloseDatabase(silo_data_path("specmix_quad.silo"))
    +
    +curvilinear_3d_surface()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_singlemulti.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_singlemulti.html new file mode 100644 index 000000000..e136b0ff8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_singlemulti.html @@ -0,0 +1,76 @@ + +Results for databases/singlemulti.py + +

    Results of VisIt Regression Test - databases/singlemulti

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    singlemulti000.000.00
    singlemulti010 modifications totalling 0 lines
    singlemulti020.000.00
    singlemulti030 modifications totalling 0 lines
    singlemulti040.000.00
    singlemulti050 modifications totalling 0 lines
    singlemulti060.000.00
    singlemulti070 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_singlemulti_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_singlemulti_py.html new file mode 100644 index 000000000..49207472e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_singlemulti_py.html @@ -0,0 +1,116 @@ +databases/singlemulti.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  singlemulti.py
    +#
    +#  Tests:      mesh      - 3D, curvilinear, single domain
    +#              plots     - Pseudocolor
    +#              databases - Silo
    +#
    +#  Purpose:    This test case tests the ability of VisIt to have single
    +#              time state files in the same window as multi time state
    +#              windows and do the right thing when changing time states.
    +#
    +#  Bugs:       '4011
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Mar 18 13:45:29 PST 2004
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to switch between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Look at the first few lines of the string representation of the
    +# WindowInformation to see the list of time sliders, etc.
    +#
    +def TestWindowInformation(testname):
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 5 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    for i in range(5):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    TestText(testname, s)
    +
    +# Create a Pseudocolor plot of wave by opening it up at a late time state.
    +OpenDatabase(silo_data_path("wave*.silo database"), 20)
    +
    +AddPlot("Pseudocolor", "pressure")
    +DrawPlots()
    +
    +# Set the view.
    +v0 = View3DAttributes()
    +v0.viewNormal = (-0.661743, 0.517608, 0.542382)
    +v0.focus = (5, 0.757692, 2.5)
    +v0.viewUp = (0.370798, 0.854716, -0.363277)
    +v0.viewAngle = 30
    +v0.parallelScale = 5.63924
    +v0.nearPlane = -11.2785
    +v0.farPlane = 11.2785
    +v0.imagePan = (0.00100868, 0.0454815)
    +v0.imageZoom = 1.17935
    +v0.perspective = 1
    +SetView3D(v0)
    +Test("singlemulti00")
    +
    +# Convert the WindowInformation to a string and use that as a test case.
    +# The WindowInformation contains the list of time sliders, the active time
    +# state, and the states for each time slider.
    +TestWindowInformation("singlemulti01")
    +
    +# Create a Pseudocolor plot of curv3d, a single time state database.
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Transform")
    +t = TransformAttributes()
    +t.doScale = 1
    +t.scaleX = 0.5
    +t.scaleY = 0.5
    +t.scaleZ = 0.1667
    +t.doTranslate = 1
    +t.translateX = 5
    +t.translateY = 0
    +t.translateZ = -5
    +SetOperatorOptions(t)
    +DrawPlots()
    +
    +# Set the view again
    +v1 = View3DAttributes()
    +v1.viewNormal = (-0.661743, 0.517608, 0.542382)
    +v1.focus = (5, 1.25, 0)
    +v1.viewUp = (0.370798, 0.854716, -0.363277)
    +v1.viewAngle = 30
    +v1.parallelScale = 7.1807
    +v1.nearPlane = -14.3614
    +v1.farPlane = 14.3614
    +v1.imagePan = (0.00100868, 0.0454815)
    +v1.imageZoom = 1.17935
    +v1.perspective = 1
    +SetView3D(v1)
    +Test("singlemulti02")
    +
    +# Make sure there is still just one time slider.
    +TestWindowInformation("singlemulti03")
    +
    +# Go to the middle time slider state.
    +# Note: this div in python 2 returns int, but returns float in py3
    +SetTimeSliderState(int(TimeSliderGetNStates() / 2))
    +Test("singlemulti04")
    +# Check the time states
    +TestWindowInformation("singlemulti05")
    +
    +# Go to the last time slider state.
    +SetTimeSliderState(TimeSliderGetNStates() - 1)
    +Test("singlemulti06")
    +# Check the time states
    +TestWindowInformation("singlemulti07")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_sw4.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_sw4.html new file mode 100644 index 000000000..319a556c0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_sw4.html @@ -0,0 +1,48 @@ + +Results for databases/sw4.py + +

    Results of VisIt Regression Test - databases/sw4

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    sw4_000.000.00
    sw4_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_sw4_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_sw4_py.html new file mode 100644 index 000000000..5644d0567 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_sw4_py.html @@ -0,0 +1,50 @@ +databases/sw4.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  SW4.py
    +#
    +#  Tests:      mesh      - 3D curvilinear, multi domain
    +#                        - 3D rectilinear, single domain
    +#              plots     - Pseudocolor
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       Tue Jul 21 11:15:20 PDT 2020
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create a plot from a 3Dimg file.
    +OpenDatabase(data_path("sw4_test_data/berk.cycle=0000.p.3Dimg"))
    +AddPlot("Pseudocolor", "cp")
    +DrawPlots()
    +
    +# Set the view
    +v = View3DAttributes()
    +v.viewNormal = (-0.555957, 0.661021, -0.503948)
    +v.focus = (6000, 6000, 2220.93)
    +v.viewUp = (0.540018, -0.173664, -0.823542)
    +v.viewAngle = 30
    +v.parallelScale = 8928.79
    +v.nearPlane = -17857.6
    +v.farPlane = 17857.6
    +v.imagePan = (0., 0.)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +SetView3D(v)
    +
    +Test("sw4_00")
    +
    +# Create a plot from a sw4img file.
    +DeleteAllPlots()
    +CloseDatabase(data_path("sw4_test_data/berk.cycle=0000.p.3Dimg"))
    +
    +OpenDatabase(data_path("sw4_test_data/berk.cycle=0000.z=0.topo.sw4img"))
    +AddPlot("Pseudocolor", "topo")
    +DrawPlots()
    +
    +Test("sw4_01")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_tecplot.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_tecplot.html new file mode 100644 index 000000000..8cb9c5927 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_tecplot.html @@ -0,0 +1,200 @@ + +Results for databases/tecplot.py + +

    Results of VisIt Regression Test - databases/tecplot

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    tecplot_010.000.00
    tecplot_020.000.00
    tecplot_030.000.00
    tecplot_041.450.64
    tecplot_050.000.00
    tecplot_060.000.00
    tecplot_080.000.00
    tecplot_090.000.00
    tecplot_100.000.00
    tecplot_110.000.00
    tecplot_120.440.64
    tecplot_130.000.00
    tecplot_140.000.00
    tecplot_150.530.42
    tecplot_160.000.00
    tecplot_170.000.00
    tecplot_180.000.00
    tecplot_190.000.00
    tecplot_200.000.00
    tecplot_210.000.00
    tecplot_220.000.00
    tecplot_230.000.00
    tecplot_240.000.00
    tecplot_250.000.00
    tecplot_260.000.00
    tecplot_270.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_tecplot_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_tecplot_py.html new file mode 100644 index 000000000..dd2e169c5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_tecplot_py.html @@ -0,0 +1,323 @@ +databases/tecplot.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  tecplot.py
    +#
    +#  Tests:      TecPlot files
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       November 17, 2004
    +#
    +#  Modifications:
    +#    Hank Childs, Wed Feb 16 07:34:07 PST 2005
    +#    Rename variables that have unsupported characters.
    +#
    +#    Brad Whitlock, Thu Mar 31 17:12:06 PST 2005
    +#    Changed the data directory to ../data/tecplot_test_data/tecplot_test_data,
    +#    which is now created from a bzipped tar file.
    +#
    +#    Brad Whitlock, Tue Jul 26 16:27:57 PST 2005
    +#    I added a test that has 2D data with a vector expression.
    +#
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +#    Jeremy Meredith, Mon Jul  7 14:20:12 EDT 2008
    +#    The tecplot reader now successfully parses x/y/z coordinate variables
    +#    from the simpscat.tec file, so I changed the plot to be a pseudocolor
    +#    plot instead of a curve plot.
    +#
    +#    Hank Childs, Sat Mar 13 11:13:26 PST 2010
    +#    Change variable names for forbidden characters.
    +#
    +#    Jeremy Meredith, Fri May 20 09:37:14 EDT 2011
    +#    Change subset mesh variable name since files have more than one mesh now.
    +#
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#    individually to match current baseline results.
    +#
    +#    Kathleen Biagas, Mon Jul 17 10:59:26 PDT 2023
    +#    Change two_triangles_node_and_cell extension from 'plt' to 'tec'.
    +#    Second triangle's point ids were invalid, so data was regenerted by
    +#    exporting to VTK, fixing the ordering, and re-exporting back to tecplot.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def SetTheView():
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal =  (-0.553771, 0.509362, 0.658702)
    +    SetView3D(v)
    +
    +# Databases
    +OpenDatabase(data_path("tecplot_test_data/2dfed.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","P")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_01")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/3dgeom.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Subset","Zones(mesh)")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_02")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/T3L3CLS17u.plt"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","U")
    +DrawPlots()
    +ResetView()
    +v=GetView2D()
    +v.windowCoords=(-.01,.03,-.02,.02)
    +SetView2D(v)
    +Test("tecplot_03")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/channel.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","U")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_04")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/crystal_plot.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","t")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_05")
    +DeleteAllPlots();
    +CloseDatabase(data_path("tecplot_test_data/crystal_plot.tec"))
    +
    +
    +OpenDatabase(data_path("tecplot_test_data/cube.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","R")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_06")
    +DeleteAllPlots();
    +
    +# We must skip this one, as it has column-major
    +# ordering instead of row-major, and we are
    +# expecting row-major.  There is nothing in the
    +# tecplot file format to specify which type it is,
    +# so this must wait until we have options for
    +# the database plugins.  See '2440.
    +##OpenDatabase(data_path("tecplot_test_data/cylindrical.tec"))
    +
    +#AddPlot("Mesh","mesh")
    +#DrawPlots()
    +#SetTheView()
    +#Test("tecplot_07")
    +#DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/febrfeb.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","Temperature")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_08")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/febrfep.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","Temperature")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_09")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/fetebk.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","C")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_10")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/fetetpt.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","C")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_11")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/flow5.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","V")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_12")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/human.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","R")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_13")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/movie.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Subset","Zones(mesh)")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_14")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/multzn2d.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","Temp")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_15")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/order1.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","psi")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_16")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/sample.tp"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Volume","X Velocity")
    +v=VolumeAttributes()
    +SetPlotOptions(v)
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_17")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/simp3dbk.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","Density")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_18")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/simp3dpt.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","Density")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_19")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/simpscat.tec"))
    +
    +AddPlot("Pseudocolor","T_lb_K_rb_")
    +p = PseudocolorAttributes()
    +p.pointSizePixels = 6
    +SetPlotOptions(p)
    +AddOperator("Threshold")
    +t = ThresholdAttributes()
    +t.outputMeshType = 1
    +SetOperatorOptions(t)
    +DrawPlots()
    +ResetView()
    +Test("tecplot_20")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/simpxy.tec"))
    +
    +AddPlot("Curve","Temperature vs/Distance")
    +curveAtts = CurveAttributes()
    +curveAtts.curveColorSource = curveAtts.Custom
    +curveAtts.curveColor = (255, 0, 0, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_21")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/simpxy2.tec"))
    +
    +AddPlot("Curve","Only Zone/Temperature vs/Distance")
    +curveAtts.curveColor = (0, 255, 0, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_22")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/symmetricFlow.plt"))
    +
    +AddPlot("Pseudocolor","VELOCITY")
    +DrawPlots()
    +ResetView()
    +Test("tecplot_23")
    +DeleteAllPlots();
    +AddPlot("Vector", "VEL")
    +v = VectorAttributes()
    +v.useStride = 1
    +SetPlotOptions(v)
    +DrawPlots()
    +v = View2DAttributes()
    +v.windowCoords = (53.9908, 74.1434, 66.5995, 88.2732)
    +v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +v.fullFrameAutoThreshold = 100
    +SetView2D(v)
    +Test("tecplot_24")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/pointmesh.tec"))
    +
    +AddPlot("Mesh","mesh")
    +ResetView()
    +DrawPlots()
    +Test("tecplot_25")
    +DeleteAllPlots()
    +
    +DeleteAllPlots();
    +CloseDatabase(data_path("tecplot_test_data/pointmesh.tec"))
    +
    +# ascii file containing both node and cell data in block format
    +OpenDatabase(data_path("tecplot_test_data/two_triangles_node_and_cell.tec"))
    +
    +AddPlot("Pseudocolor","nodal_field")
    +ResetView()
    +DrawPlots()
    +Test("tecplot_26")
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor","cell_field")
    +ResetView()
    +DrawPlots()
    +Test("tecplot_27")
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_timesliders.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_timesliders.html new file mode 100644 index 000000000..692318836 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_timesliders.html @@ -0,0 +1,256 @@ + +Results for databases/timesliders.py + +

    Results of VisIt Regression Test - databases/timesliders

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Set time using different time sliders
    timesliders000.000.00
    timesliders010 modifications totalling 0 lines
    timesliders020.000.00
    timesliders030 modifications totalling 0 lines
    timesliders040.000.00
    timesliders050 modifications totalling 0 lines
    timesliders060 modifications totalling 0 lines
    timesliders070.000.00
    timesliders080 modifications totalling 0 lines
    Time slider behavior with a correlation
    timesliders090.000.00
    timesliders100 modifications totalling 0 lines
    timesliders110.000.00
    timesliders120 modifications totalling 0 lines
    timesliders130.000.00
    timesliders140 modifications totalling 0 lines
    timesliders150.000.00
    timesliders160 modifications totalling 0 lines
    timesliders170.000.00
    timesliders180 modifications totalling 0 lines
    Make sure cloned window gets time sliders
    timesliders190.000.00
    timesliders200 modifications totalling 0 lines
    timesliders210.000.00
    timesliders220 modifications totalling 0 lines
    Make sure opening ST database clears time slider list
    timesliders230 modifications totalling 0 lines
    timesliders240.000.00
    timesliders250 modifications totalling 0 lines
    Make sure replace sequences give right time sliders
    timesliders260.000.00
    timesliders270 modifications totalling 0 lines
    timesliders280.000.00
    timesliders290 modifications totalling 0 lines
    timesliders300.000.00
    timesliders310 modifications totalling 0 lines
    timesliders320.000.00
    timesliders330 modifications totalling 0 lines
    timesliders340.000.00
    timesliders350 modifications totalling 0 lines
    Make sure we get the right time sliders after deleting plots.
    timesliders360.000.00
    timesliders370 modifications totalling 0 lines
    timesliders380.000.00
    timesliders390 modifications totalling 0 lines
    timesliders400 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_timesliders_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_timesliders_py.html new file mode 100644 index 000000000..f23172aa1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_timesliders_py.html @@ -0,0 +1,247 @@ +databases/timesliders.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  timesliders.py
    +#
    +#  Tests:      mesh      - 2D, curvilinear, single domain
    +#              plots     - FilledBoundary
    +#              databases - PDB
    +#
    +#  Purpose:    This test case tests out using multiple time sliders.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Mar 19 11:45:12 PDT 2004
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Mar 31 10:34:27 PDT 2004
    +#    I changed the calls to SetActiveTimeSlider so they can accept the
    +#    unexpanded database names instead of requiring fully qualified
    +#    database names.
    +#
    +#    Brad Whitlock, Mon Apr 19 09:20:29 PDT 2004
    +#    I added a few more tests to make sure we get the desired list of time
    +#    sliders under more conditions.
    +#
    +#    Brad Whitlock, Wed Feb 9 11:10:29 PDT 2005
    +#    I added another test section to make sure that we get the right time
    +#    sliders (or lack of) after deleting plots.
    +# 
    +#    Brad Whitlock, Thu Dec 21 11:57:52 PDT 2006
    +#    Added code to make sure that the dictionary keys in one of the tests
    +#    are always sorted.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to switch between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Look at the first few lines of the string representation of the
    +# WindowInformation to see the list of time sliders, etc.
    +#
    +def TestWindowInformation(testname):
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 5 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    for i in range(5):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    TestText(testname, s)
    +
    +def SetTheView():
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.735926, 0.562657, 0.376604)
    +    v0.focus = (5, 0.753448, 2.5)
    +    v0.viewUp = (0.454745, 0.822858, -0.340752)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 5.6398
    +    v0.nearPlane = -11.2796
    +    v0.farPlane = 11.2796
    +    v0.imagePan = (0.0589778, 0.0898255)
    +    v0.imageZoom = 1.32552
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    SetView3D(v0)
    +
    +# Print the dictionary so its keys are always sorted a particular way.
    +def PrintDict(dict):
    +    keys = list(dict.keys())
    +    keys.sort()
    +    s = "{"
    +    i = 0
    +    for k in keys:
    +        if type(k) == type(str("")):
    +            kstr = "'" + str(k) + "'"
    +        else:
    +            kstr = str(k)
    +        s = s + kstr + ": " + str(dict[k])
    +        if i < len(keys)-1:
    +            s = s + ", "
    +        i = i + 1
    +    s = s + "}"
    +    return s
    +
    +# The plotted databases.
    +dbs = (data_path("pdb_test_data/dbA00.pdb"),
    +       data_path("pdb_test_data/dbB00.pdb"),
    +       data_path("pdb_test_data/dbC00.pdb"))
    +
    +# Create a plot from one database
    +TestSection("Set time using different time sliders")
    +OpenDatabase(dbs[0])
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +Test("timesliders00")
    +TestWindowInformation("timesliders01")
    +
    +# Create a plot from another database
    +OpenDatabase(dbs[1])
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +Test("timesliders02")
    +TestWindowInformation("timesliders03")
    +
    +# Change the time state for the second time slider.
    +# note: py3 div creates float
    +SetTimeSliderState(int(TimeSliderGetNStates() / 2))
    +Test("timesliders04")
    +TestWindowInformation("timesliders05")
    +
    +# Make sure that GetTimeSliders returned the right dictionary.
    +testString = "GetTimeSliders returned:\n %s" % PrintDict(GetTimeSliders())
    +TestText("timesliders06", testString)
    +
    +# Set the time slider back to the first time slider.
    +SetActiveTimeSlider(dbs[0])
    +
    +# Set the time state for the first time slider.
    +SetTimeSliderState(7)
    +Test("timesliders07")
    +TestWindowInformation("timesliders08")
    +
    +# Create a database correlation for the first two databases. This correlation
    +# will be an IndexForIndex correlation since we passed 0 for the correlation
    +# method.
    +TestSection("Time slider behavior with a correlation")
    +correlation1 = "A_and_B"
    +CreateDatabaseCorrelation(correlation1, dbs[:-1], 0)
    +SetActiveTimeSlider(correlation1)
    +Test("timesliders09")
    +TestWindowInformation("timesliders10")
    +
    +# Set the time state for the active time slider since it is now the A_and_B
    +# database correlation.
    +SetTimeSliderState(0)
    +Test("timesliders11")
    +TestWindowInformation("timesliders12")
    +
    +SetTimeSliderState(5)
    +Test("timesliders13")
    +TestWindowInformation("timesliders14")
    +
    +SetTimeSliderState(19)
    +Test("timesliders15")
    +TestWindowInformation("timesliders16")
    +
    +# Set the time slider to B. Only B should change.
    +SetActiveTimeSlider(dbs[1])
    +SetTimeSliderState(5)
    +Test("timesliders17")
    +TestWindowInformation("timesliders18")
    +
    +# Add a new window and make sure that the time sliders are copied to it.
    +TestSection("Make sure cloned window gets time sliders")
    +CloneWindow()
    +SetActiveWindow(2)
    +DrawPlots()
    +Test("timesliders19")
    +TestWindowInformation("timesliders20")
    +
    +SetTimeSliderState(19)
    +Test("timesliders21")
    +TestWindowInformation("timesliders22")
    +DeleteWindow()
    +
    +# Make sure switching between different databases give the right time sliders.
    +TestSection("Make sure opening ST database clears time slider list")
    +DeleteAllPlots()
    +OpenDatabase(dbs[0])
    +SetTimeSliderState(0)
    +TestWindowInformation("timesliders23")
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +ResetView()
    +Test("timesliders24")
    +TestWindowInformation("timesliders25")
    +
    +# Make sure doing various replace sequences give the right time sliders.
    +TestSection("Make sure replace sequences give right time sliders")
    +DeleteAllPlots()
    +OpenDatabase(dbs[0])
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +Test("timesliders26")
    +TestWindowInformation("timesliders27")
    +ReplaceDatabase(dbs[1])
    +Test("timesliders28")
    +TestWindowInformation("timesliders29")
    +ReplaceDatabase(dbs[0])
    +Test("timesliders30")
    +# There should only be 1 time slider at this point.
    +TestWindowInformation("timesliders31")
    +
    +# Make sure that when we replace an MT database with an ST database, we get
    +# the right time sliders.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("wave*.silo database"), 30)
    +
    +AddPlot("Pseudocolor", "pressure")
    +DrawPlots()
    +SetTheView()
    +Test("timesliders32")
    +TestWindowInformation("timesliders33")
    +# Replace with an ST database
    +ReplaceDatabase(silo_data_path("wave0000.silo"))
    +Test("timesliders34")
    +TestWindowInformation("timesliders35")
    +
    +# Make sure that we get the right time sliders after we delete plots.
    +TestSection("Make sure we get the right time sliders after deleting plots.")
    +DeleteAllPlots()
    +# Close all the sources so we get fresh time sliders.
    +for source in GetGlobalAttributes().sources:
    +    CloseDatabase(source)
    +
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +AddPlot("Pseudocolor", "pressure")
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +AddPlot("Pseudocolor", "p")
    +DrawPlots()
    +
    +ResetView()
    +v = GetView3D()
    +v.viewNormal = (0.163324, 0.442866, 0.881586)
    +v.viewUp = (-0.0889191, 0.896556, -0.433913)
    +v.parallelScale = 16.9558
    +v.imagePan = (0.0834786, 0.0495278)
    +v.imageZoom = 1.53171
    +SetView3D(v)
    +
    +Test("timesliders36")
    +TestWindowInformation("timesliders37")
    +SetActivePlots(0)
    +DeleteActivePlots()
    +Test("timesliders38")
    +TestWindowInformation("timesliders39")
    +DeleteActivePlots()
    +TestWindowInformation("timesliders40")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_uintah.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_uintah.html new file mode 100644 index 000000000..e9eea0689 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_uintah.html @@ -0,0 +1,79 @@ + +Results for databases/uintah.py + +

    Results of VisIt Regression Test - databases/uintah

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Particle data
    Particle_000.000.00
    Particle_010.000.00
    Particle_020.000.00
    Particle_030.000.00
    Particle_040.000.00
    Particle_050.000.00
    Particle ID
     281474976710656.0 .eq. 281474976710656.0 (prec=0) : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_uintah_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_uintah_py.html new file mode 100644 index 000000000..b58db2a91 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_uintah_py.html @@ -0,0 +1,66 @@ +databases/uintah.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  uintah.py
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       Tue Jan  4 13:05:47 PST 2022
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("Uintah")
    +
    +def test_particle():
    +    TestSection("Particle data")
    +    OpenDatabase(pjoin(data_path("uintah_test_data"), "index.xml"))
    +    AddPlot("Pseudocolor", "p.particleID/*")
    +    pc = PseudocolorAttributes()
    +    pc.pointType = pc.Point
    +    pc.pointSizePixels = 40
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (0, -1, 0)
    +    v.focus = (0.01, 0.01, 0.015)
    +    v.viewUp = (0, 0, 1)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.0206155
    +    v.nearPlane = -0.0412311
    +    v.farPlane = 0.0412311
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 0
    +    SetView3D(v)
    +    Test("Particle_00")
    +
    +    ChangeActivePlotsVar("p.particleID/0")
    +    Test("Particle_01")
    +
    +    ChangeActivePlotsVar("p.particleID/1")
    +    Test("Particle_02")
    +
    +    ChangeActivePlotsVar("p.mass/*")
    +    Test("Particle_03")
    +
    +    ChangeActivePlotsVar("p.mass/0")
    +    Test("Particle_04")
    +
    +    ChangeActivePlotsVar("p.mass/1")
    +    Test("Particle_05")
    +
    +    PickAtts = GetPickAttributes()
    +    PickAtts.variables = ("p.particleID/*")
    +    SetPickAttributes(PickAtts)
    +    SetQueryOutputToObject()
    +    p = NodePick(0, 0)
    +    id = p['p.particleID/*']
    +    TestValueEQ("Particle ID", id, 281474976710656., 0)
    +
    +def main():
    +    test_particle()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_unv.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_unv.html new file mode 100644 index 000000000..7973da1f5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_unv.html @@ -0,0 +1,78 @@ + +Results for databases/unv.py + +

    Results of VisIt Regression Test - databases/unv

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    unv_010.000.00
    unv_020.000.00
    unv_030.000.00
    unv_040.000.00
    unv_050.000.00
    unv_060.000.00
    unv_070.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_unv_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_unv_py.html new file mode 100644 index 000000000..15cd80b3d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_unv_py.html @@ -0,0 +1,206 @@ +databases/unv.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Tests:      smoke check of unv file reader.
    +#
    +#  Programmer: Olivier Cessenat
    +#  Date: Thu Oct 11 08:42:44 PDT 2012
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Fri Sep 23 15:08:38 PDT 2022
    +#    Remove use of obsolete FilledBoundaryAttributes fields: boundaryType
    +#    and filledFlag.
    +#
    +# ----------------------------------------------------------------------------
    +
    +datapath = data_path("unv_test_data")
    +
    +OpenDatabase(pjoin(datapath, "small_sur.unv"))
    +AddPlot("FilledBoundary", "boundaries(freemesh)")
    +# Begin spontaneous state
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.446545, 0.0881432, 0.890409)
    +View3DAtts.focus = (0, 0, 2.5)
    +View3DAtts.viewUp = (-0.122457, 0.991793, -0.0367666)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 3.4641
    +View3DAtts.nearPlane = -6.9282
    +View3DAtts.farPlane = 6.9282
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (0, 0, 2.5)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +SetView3D(View3DAtts)
    +DrawPlots()
    +Test("unv_01")
    +DeleteAllPlots()
    +CloseDatabase(pjoin(datapath,"small_sur.unv"))
    +
    +OpenDatabase(pjoin(datapath,"small_mix.unv"))
    +AddPlot("FilledBoundary", "surfmats(surfmesh)")
    +AddPlot("Mesh", "surfmesh", 1, 0)
    +DrawPlots()
    +Test("unv_02")
    +DeleteAllPlots()
    +CloseDatabase(pjoin(datapath,"small_mix.unv"))
    +
    +OpenDatabase(pjoin(datapath,"small_vol_pri_bor.unv"),0)
    +AddPlot("FilledBoundary", "boundaries(freemesh)")
    +AddPlot("Mesh", "freemesh")
    +DrawPlots()
    +Test("unv_03")
    +DeleteAllPlots()
    +CloseDatabase(pjoin(datapath,"small_vol_pri_bor.unv"))
    +
    +OpenDatabase(pjoin(datapath,"small_vol_tet_bor.unv"),0)
    +AddPlot("FilledBoundary", "boundaries(freemesh)")
    +AddPlot("Mesh", "facemesh")
    +DrawPlots()
    +Test("unv_04")
    +DeleteAllPlots()
    +CloseDatabase(pjoin(datapath,"small_vol_tet_bor.unv"))
    +
    +OpenDatabase(pjoin(datapath,"small_vol_pyr_bor.unv"), 0)
    +AddPlot("FilledBoundary", "load_sets(facemesh)")
    +AddPlot("Mesh", "facemesh")
    +AddPlot("Mesh", "mesh")
    +SetActivePlots(2)
    +AddOperator("ThreeSlice", 0)
    +SetActivePlots(2)
    +ThreeSliceAtts = ThreeSliceAttributes()
    +ThreeSliceAtts.x = 0.1
    +ThreeSliceAtts.y = 0.2
    +ThreeSliceAtts.z = 0.24
    +ThreeSliceAtts.interactive = 1
    +SetOperatorOptions(ThreeSliceAtts, 0)
    +SetActivePlots(0)
    +FilledBoundaryAtts = FilledBoundaryAttributes()
    +FilledBoundaryAtts.colorType = FilledBoundaryAtts.ColorByMultipleColors
    +FilledBoundaryAtts.colorTableName = "Default"
    +FilledBoundaryAtts.invertColorTable = 0
    +FilledBoundaryAtts.legendFlag = 1
    +FilledBoundaryAtts.lineWidth = 0
    +FilledBoundaryAtts.singleColor = (0, 0, 0, 255)
    +FilledBoundaryAtts.SetMultiColor(0, (255, 0, 0, 255))
    +FilledBoundaryAtts.SetMultiColor(1, (0, 255, 0, 255))
    +FilledBoundaryAtts.opacity = 0.258824
    +FilledBoundaryAtts.wireframe = 0
    +FilledBoundaryAtts.drawInternal = 0
    +FilledBoundaryAtts.smoothingLevel = 0
    +FilledBoundaryAtts.cleanZonesOnly = 0
    +FilledBoundaryAtts.mixedColor = (255, 255, 255, 255)
    +FilledBoundaryAtts.pointSize = 0.05
    +FilledBoundaryAtts.pointType = FilledBoundaryAtts.Point
    +FilledBoundaryAtts.pointSizeVarEnabled = 0
    +FilledBoundaryAtts.pointSizeVar = "default"
    +FilledBoundaryAtts.pointSizePixels = 2
    +SetPlotOptions(FilledBoundaryAtts)
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.440531, 0.546377, 0.712323)
    +View3DAtts.focus = (0, 0, 2.5)
    +View3DAtts.viewUp = (-0.429096, 0.825111, -0.367517)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 3.4641
    +View3DAtts.nearPlane = -6.9282
    +View3DAtts.farPlane = 6.9282
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (0, 0, 2.5)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +SetView3D(View3DAtts)
    +DrawPlots()
    +Test("unv_05")
    +
    +DeleteAllPlots()
    +CloseDatabase(pjoin(datapath,"small_vol_pyr_bor.unv"))
    +OpenDatabase(pjoin(datapath, "small_sur.unv"))
    +
    +AddPlot("Vector", "normals2d", 1, 1)
    +DrawPlots()
    +# Begin spontaneous state
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.554906, -0.684409, 0.472931)
    +View3DAtts.focus = (0, 0, 2.5)
    +View3DAtts.viewUp = (-0.448111, 0.233062, 0.863063)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 3.4641
    +View3DAtts.nearPlane = -6.9282
    +View3DAtts.farPlane = 6.9282
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (0, 0, 2.5)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +View3DAtts.windowValid = 1
    +SetView3D(View3DAtts)
    +# End spontaneous state
    +
    +SaveWindowAtts = SaveWindowAttributes()
    +SaveWindowAtts.outputToCurrentDirectory = 1
    +SaveWindowAtts.outputDirectory = "."
    +SaveWindowAtts.fileName = "small_sur_normals2d"
    +SaveWindowAtts.family = 1
    +SaveWindowAtts.format = SaveWindowAtts.PNG  # BMP, CURVE, JPEG, OBJ, PNG, POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA, VTK, PLY
    +SaveWindowAtts.width = 1024
    +SaveWindowAtts.height = 1024
    +SaveWindowAtts.screenCapture = 0
    +SaveWindowAtts.saveTiled = 0
    +SaveWindowAtts.quality = 80
    +SaveWindowAtts.progressive = 0
    +SaveWindowAtts.binary = 0
    +SaveWindowAtts.stereo = 0
    +SaveWindowAtts.compression = SaveWindowAtts.PackBits  # None, PackBits, Jpeg, Deflate
    +SaveWindowAtts.forceMerge = 0
    +SaveWindowAtts.resConstraint = SaveWindowAtts.ScreenProportions  # NoConstraint, EqualWidthHeight, ScreenProportions
    +SaveWindowAtts.advancedMultiWindowSave = 0
    +SetSaveWindowAttributes(SaveWindowAtts)
    +SaveWindow()
    +Test("unv_06", SaveWindowAtts)
    +
    +DeleteAllPlots()
    +CloseDatabase(pjoin(datapath, "small_sur.unv"))
    +
    +OpenDatabase(pjoin(datapath, "poly.msh"))
    +
    +AddPlot("Mesh", "mesh", 1, 1)
    +MeshAtts = MeshAttributes()
    +MeshAtts.legendFlag = 1
    +MeshAtts.lineWidth = 3
    +MeshAtts.meshColor = (0, 0, 255, 255)
    +MeshAtts.meshColorSource = MeshAtts.MeshCustom  # Foreground, MeshCustom, MeshRandom
    +SetPlotOptions(MeshAtts)
    +
    +AddPlot("Mesh", "freemesh", 1, 1)
    +MeshAtts = MeshAttributes()
    +MeshAtts.legendFlag = 1
    +MeshAtts.lineWidth = 2
    +MeshAtts.meshColor = (255, 0, 0, 255)
    +MeshAtts.meshColorSource = MeshAtts.MeshCustom  # Foreground, MeshCustom, MeshRandom
    +SetPlotOptions(MeshAtts)
    +
    +AddPlot("Vector", "free_normals", 1, 1)
    +AddPlot("Vector", "normals2d", 1, 1)
    +
    +DrawPlots()
    +ResetView()
    +SaveWindowAtts = SaveWindowAttributes()
    +SaveWindowAtts.width = 1024
    +SaveWindowAtts.height = 1024
    +Test("unv_07", SaveWindowAtts)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_vtk.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_vtk.html new file mode 100644 index 000000000..77c7ce9e3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_vtk.html @@ -0,0 +1,447 @@ + +Results for databases/vtk.py + +

    Results of VisIt Regression Test - databases/vtk

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Materials in VTK
    vtk_010.000.00
    vtk_020.000.00
    vtk_030.000.00
    VTK XML-style data files
    vtk_040.000.00
    vtk_050.000.00
    vtk_060.000.00
    vtk_070.000.00
    vtk_080.000.00
    vtk_090.000.00
    vtk_100.000.00
    vtk_110.000.00
    vtk_120.000.00
    vtk_130.000.00
    vtk_140.000.00
    vtk_150.000.00
    vtk_160.000.00
    vtk_170.000.00
    vtk_180.000.00
    vtk_190.000.00
    vtk_200.000.00
    vtk_210.000.00
    vtk_220.000.00
    vtk_230.000.00
    vtk_240.000.00
    vtk_250.000.00
    vtk_260.000.00
    vtk_270.000.00
    Quadratic triangles in VTK
    vtk_280.000.00
    vtk_290.000.00
    !NBLOCKS in a .visit file
    vtk_300.000.00
    vtk_310.000.00
    vtk_320.000.00
    vtk_330 modifications totalling 0 lines
    PVTU files
    vtk_340.000.00
    vtk_34a0.870.63
    PVTI files
    vtk_350.000.00
    2D Unstructured grids with lines
    vtk_360.430.33
    VTM files
    vtk_370.000.00
    vtk_380.000.00
    vtk_390.000.00
    vtk_400 modifications totalling 0 lines
    PVTK files
    vtk_410.000.00
    vtk_420.000.00
    VTK ghost types
    vtk_430.000.00
    vtk_440.000.00
    vtk_450.000.00
    Database Expressions in VTK
    vtk_460.000.00
    PVD, single pvti file, no time, no groups
    vtk_pvd_010.000.00
    PVD, multiple vtr files, single time, no groups
    vtk_pvd_020.000.00
    PVD, multiple pvtr files, multiple times, no groups
    vtk_pvd_030.000.00
    vtk_pvd_040.000.00
    PVD, multiple vtr files, multiple times, groups
    vtk_pvd_050.000.00
    vtk_pvd_060.000.00
    PVD, multiple vtm files,multiple times
    vtk_pvd_070.000.00
    vtk_pvd_080.000.00
    PVD, multiple pvti files, multiple times
    vtk_pvd_090.000.00
    vtk_pvd_100.000.00
    vtk_pvd_110.000.00
    vtk_pvd_120.000.00
    export_file_version
     "# vtk DataFile Version 4.2
    +" .eq. "# vtk DataFile Version 4.2
    +" : True
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_vtk_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_vtk_py.html new file mode 100644 index 000000000..f6bba9b2e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_vtk_py.html @@ -0,0 +1,494 @@ +databases/vtk.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  vtk.py 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       October 28, 2004 
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Fri Sep 23 10:55:44 PDT 2005
    +#    Re-organized code into separate methods.  Added TestXML method.
    +#
    +#    Brad Whitlock, Mon May 8 15:57:12 PST 2006
    +#    Added test for higher_order_triangles.vtk
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Brad Whitlock, Tue Oct 23 11:18:12 PDT 2012
    +#    I added tests for NBLOCKS .visit files, cycle & time, and PVTU files.
    +#
    +#    Eric Brugger, Tue Jun 25 18:20:31 PDT 2013
    +#    I added a test for PVTI files.
    +#
    +#    Kathleen Biagas, Wed Feb 25 14:10:13 PST 2015
    +#    Mesh name has been added to blocks.vtu test data, so add mesh plot
    +#    to test is has been read correctly.
    +#
    +#    Kathleen Biagas, Tue Aug 18 14:00:16 PDT 2015
    +#    Added a test for VTM files.
    +#
    +#    Kathleen Biagas, Thu Sep 21 14:56:25 MST 2017
    +#    Added a test for PVTK files.
    +#
    +#    Edward Rusu, Mon Oct 01 15:09:24 PST 2018
    +#    Added a test for vtkGhostType.
    +#
    +#    Kathleen Biagas, Tue Aug 24, 2021
    +#    Added a test for PVD files.
    +# 
    +#    Justin Privitera, Mon Aug 19 16:42:10 PDT 2024
    +#    Added a test for export file version.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def TestMaterials():
    +    TestSection("Materials in VTK")
    +    OpenDatabase(data_path("vtk_test_data/globe_mats.vtk"))
    +
    +
    +    #
    +    # Test simple read and display of a material variable 
    +    #
    +    AddPlot("FilledBoundary","materials")
    +    DrawPlots()
    +    Test("vtk_01")
    +
    +    #
    +    # Find set ids using their names
    +    #
    +    setId1 = -1
    +    setId2 = -1
    +    setId3 = -1
    +    silr = SILRestriction()
    +    for i in range(silr.NumSets()):
    +        if silr.SetName(i) == "1":
    +            setId1 = i
    +        elif silr.SetName(i) == "2":
    +            setId2 = i
    +        elif silr.SetName(i) == "3":
    +            setId3 = i
    +
    +    #
    +    # Turn on air, but turn void and uranium off
    +    #
    +    silr.TurnOffSet(setId2)
    +    SetPlotSILRestriction(silr)
    +    Test("vtk_02")
    +
    +    silr.TurnOnSet(setId2)
    +    SetPlotSILRestriction(silr)
    +    AddOperator("Slice")
    +    DrawPlots()
    +    Test("vtk_03")
    +
    +    TurnMaterialsOn()
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/globe_mats.vtk"))
    +
    +def TestXML():
    +    TestSection("VTK XML-style data files")
    +    OpenDatabase(data_path("vtk_xml_test_data/curv2d.vts"))
    +
    +    AddPlot("Pseudocolor", "d");
    +    DrawPlots();
    +    Test("vtk_04")
    +    ChangeActivePlotsVar("p")
    +    DrawPlots()
    +    Test("vtk_05")
    +    ChangeActivePlotsVar("u")
    +    DrawPlots()
    +    Test("vtk_06")
    +    ChangeActivePlotsVar("v")
    +    DrawPlots()
    +    Test("vtk_07")
    +    DeleteActivePlots()
    +    AddPlot("Vector", "vel")
    +    DrawPlots()
    +    Test("vtk_08")
    +    DeleteActivePlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/curv2d.vts"))
    +
    +    OpenDatabase(data_path("vtk_xml_test_data/curv3d.vts"))
    +
    +    AddPlot("Pseudocolor", "d");
    +    DrawPlots();
    +    Test("vtk_09")
    +    ChangeActivePlotsVar("p")
    +    DrawPlots()
    +    Test("vtk_10")
    +    ChangeActivePlotsVar("t")
    +    DrawPlots()
    +    Test("vtk_11")
    +    ChangeActivePlotsVar("u")
    +    DrawPlots()
    +    Test("vtk_12")
    +    ChangeActivePlotsVar("v")
    +    DrawPlots()
    +    Test("vtk_13")
    +    ChangeActivePlotsVar("w")
    +    DrawPlots()
    +    Test("vtk_14")
    +    DeleteActivePlots()
    +    AddPlot("Vector", "vel")
    +    DrawPlots()
    +    Test("vtk_15")
    +    DeleteActivePlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/curv3d.vts"))
    +
    +    OpenDatabase(data_path("vtk_xml_test_data/rect3d.vtr"))
    +
    +    AddPlot("Pseudocolor", "d");
    +    DrawPlots();
    +    Test("vtk_16")
    +    ChangeActivePlotsVar("p")
    +    DrawPlots()
    +    Test("vtk_17")
    +    ChangeActivePlotsVar("t")
    +    DrawPlots()
    +    Test("vtk_18")
    +    ChangeActivePlotsVar("u")
    +    DrawPlots()
    +    Test("vtk_19")
    +    ChangeActivePlotsVar("v")
    +    DrawPlots()
    +    Test("vtk_20")
    +    ChangeActivePlotsVar("w")
    +    DrawPlots()
    +    Test("vtk_21")
    +    DeleteActivePlots()
    +    AddPlot("Vector", "vel")
    +    DrawPlots()
    +    Test("vtk_22")
    +    DeleteActivePlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/rect3d.vtr"))
    +
    +    OpenDatabase(data_path("vtk_xml_test_data/ucd2d.vtu"))
    +
    +    AddPlot("Pseudocolor", "d");
    +    DrawPlots();
    +    Test("vtk_23")
    +    ChangeActivePlotsVar("speed")
    +    DrawPlots()
    +    Test("vtk_24")
    +    ChangeActivePlotsVar("u")
    +    DrawPlots()
    +    Test("vtk_25")
    +    ChangeActivePlotsVar("v")
    +    DrawPlots()
    +    Test("vtk_26")
    +    DeleteActivePlots()
    +    AddPlot("Vector", "vel")
    +    DrawPlots()
    +    Test("vtk_27")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/ucd2d.vtu"))
    +
    +def TestHigherOrder():
    +    TestSection("Quadratic triangles in VTK")
    +    OpenDatabase(data_path("vtk_test_data/higher_order_triangles.vtk"))
    +
    +    AddPlot("Mesh", "highorder_triangles");
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.429056, 0.759111, 0.489553)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (-0.901832, -0.39065, -0.184638)
    +    v.viewAngle = 30
    +    v.parallelScale = 1.73205
    +    v.nearPlane = -3.4641
    +    v.farPlane = 3.4641
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1.45106
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +
    +    Test("vtk_28")
    +    DeleteAllPlots()
    +
    +    DefineScalarExpression("zoneid", "zoneid(highorder_triangles)")
    +    AddPlot("Pseudocolor", "zoneid")
    +    p = PseudocolorAttributes()
    +    p.colorTableName = "levels"
    +    SetPlotOptions(p)
    +    DrawPlots()
    +    Test("vtk_29")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/higher_order_triangles.vtk"))
    +
    +def TestNBLOCKS():
    +    TestSection("!NBLOCKS in a .visit file")
    +    OpenDatabase(data_path("vtk_test_data/visitfile/dbA.visit"))
    +    AddPlot("Pseudocolor", "mesh/ireg")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_30")
    +
    +    # See that there are multiple time steps.
    +    SetTimeSliderState(5)
    +    Test("vtk_31")
    +    DeleteAllPlots()
    +
    +    # See that there are 2 domains
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test("vtk_32")
    +
    +    # Test that we can get the cycle and time out.
    +    txt = ""
    +    for i in range(10):
    +        SetTimeSliderState(i)
    +        Query("Cycle")
    +        cycle = GetQueryOutputValue()
    +        Query("Time")
    +        time = GetQueryOutputValue()
    +        txt = txt + "Cycle: %d, Time: %g\n" % (cycle, time)
    +    TestText("vtk_33", txt)
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/visitfile/dbA.visit"))
    +
    +def TestPVTU():
    +    TestSection("PVTU files")
    +    OpenDatabase(data_path("vtk_test_data/blocks.pvtu"))
    +    AddPlot("Pseudocolor", "MatNum")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_34")
    +    # MeshName recently added, so test.
    +    AddPlot("Mesh", "blocks")
    +    DrawPlots()
    +    Test("vtk_34a")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/blocks.pvtu"))
    +
    +def TestPVTI():
    +    TestSection("PVTI files")
    +    OpenDatabase(data_path("vtk_xml_test_data/earth.pvti"))
    +    AddPlot("Truecolor", "PNGImage")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_35")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/earth.pvti"))
    +
    +def TestMixedTopology():
    +    TestSection("2D Unstructured grids with lines")
    +    OpenDatabase(data_path("vtk_test_data/test_bound.vtk"))
    +    AddPlot("Pseudocolor", "data_cells_with_bound")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_36")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/test_bound.vtk"))
    +
    +def TestVTM():
    +    TestSection("VTM files")
    +    f = "files.vtm"
    +    fN = data_path("vtk_xml_test_data/MultiBlock/%s"%f)
    +    OpenDatabase(fN)
    +    AddPlot("Subset", "Blocks")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_37")
    +
    +    mmd = GetMetaData(fN).GetMeshes(0)
    +    s = f + ":    Groups: " + ", ".join(mmd.groupNames)
    +    s = s + "     Blocks: " + ", ".join(mmd.blockNames) + "\n"
    +
    +    DeleteAllPlots()
    +    CloseDatabase(fN)
    +
    +    f = "files_grouped.vtm"
    +    fN = data_path("vtk_xml_test_data/MultiBlock/%s"%f)
    +    OpenDatabase(fN)
    +    AddPlot("Subset", "Blocks")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_38")
    +
    +    ChangeActivePlotsVar("Groups")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_39")
    +
    +    mmd = GetMetaData(fN).GetMeshes(0)
    +    s = s + f + ":    Groups: " + ", ".join(mmd.groupNames)
    +    s = s + "    Blocks: " + ", ".join(mmd.blockNames) + "\n"
    +    TestText("vtk_40", s)
    +    DeleteAllPlots()
    +    CloseDatabase(fN)
    +
    +def TestPVTK():
    +    TestSection("PVTK files")
    +    f = "earth.pvtk"
    +    fN = data_path("vtk_test_data/pvtk/%s"%f)
    +    OpenDatabase(fN)
    +    AddPlot("Truecolor", "PNGImage")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_41")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(fN)
    +
    +    f = "dbA.pvtk"
    +    fN = data_path("vtk_test_data/pvtk/dbA/%s"%f)
    +    OpenDatabase(fN)
    +    AddPlot("Pseudocolor", "mesh/ireg")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_42")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(fN)
    +
    +def TestVTKGhostType():
    +    TestSection("VTK ghost types")
    +    OpenDatabase(data_path("vtk_test_data/vtkGhostType.vtk"))
    +    ResetView()
    +    AddPlot("Pseudocolor", "internal_var_GhostZones")
    +    DrawPlots()
    +    Test("vtk_43")
    +
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "internal_var_GhostNodes")
    +    DrawPlots()
    +    Test("vtk_44")
    +
    +    DeleteAllPlots()
    +    AddPlot("Mesh", "Mesh_gnz")
    +    DrawPlots()
    +    Test("vtk_45")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/vtkGhostType.vtk"))
    +
    +def TestDBExpressions():
    +    TestSection("Database Expressions in VTK")
    +    OpenDatabase(data_path("vtk_test_data/higher_order_triangles.vtk"))
    +
    +    AddPlot("Mesh", "highorder_triangles");
    +    AddPlot("Pseudocolor", "x")
    +    AddPlot("Vector", "posvec")
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.429056, 0.759111, 0.489553)
    +    v.viewUp = (-0.901832, -0.39065, -0.184638)
    +    v.parallelScale = 1.73205
    +    v.nearPlane = -3.4641
    +    v.farPlane = 3.4641
    +    v.imageZoom = 1.45106
    +    SetView3D(v)
    +
    +    Test("vtk_46")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/higher_order_triangles.vtk"))
    +
    +def TestPVD():
    +
    +    TestSection("PVD, single pvti file, no time, no groups")
    +    OpenDatabase(data_path("vtk_xml_test_data/earth.pvd"))
    +    AddPlot("Truecolor", "PNGImage")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_pvd_01")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/earth.pvd"))
    +
    +    TestSection("PVD, multiple vtr files, single time, no groups")
    +    OpenDatabase(data_path("vtk_xml_test_data/multiRect3d.pvd"))
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_pvd_02")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/multiRect3d.pvd"))
    +
    +    TestSection("PVD, multiple pvtr files, multiple times, no groups")
    +    OpenDatabase(data_path("vtk_xml_test_data/multi_dir/multi_time_pvtr.pvd"))
    +    AddPlot("Pseudocolor", "radial")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_pvd_03")
    +    TimeSliderSetState(5)
    +    Test("vtk_pvd_04")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/multi_dir/multi_time_pvtr.pvd"))
    +
    +    TestSection("PVD, multiple vtr files, multiple times, groups")
    +    OpenDatabase(data_path("vtk_xml_test_data/multi_dir/multi_time_part_vtr.pvd"))
    +    AddPlot("Subset", "parts")
    +    DrawPlots()
    +    Test("vtk_pvd_05")
    +    ChangeActivePlotsVar("blocks")
    +    Test("vtk_pvd_06")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/multi_dir/multi_time_part_vtr.pvd"))
    +
    +    TestSection("PVD, multiple vtm files,multiple times")
    +    OpenDatabase(data_path("vtk_xml_test_data/multi_dir/multi_time_vtm.pvd"))
    +    AddPlot("Pseudocolor", "radial")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_pvd_07")
    +    TimeSliderSetState(5)
    +    Test("vtk_pvd_08")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/multi_dir/multi_time_vtm.pvd"))
    +
    +    TestSection("PVD, multiple pvti files, multiple times")
    +    OpenDatabase(data_path("vtk_xml_test_data/earth_multiTime/earth_time.pvd"))
    +    AddPlot("Truecolor", "PNGImage")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_pvd_09")
    +    TimeSliderNextState()
    +    Test("vtk_pvd_10")
    +    TimeSliderNextState()
    +    Test("vtk_pvd_11")
    +    TimeSliderNextState()
    +    Test("vtk_pvd_12")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/earth_multiTime/earth_time.pvd"))
    +
    +def TestExportFileVersion():
    +    dbname = silo_data_path("ucd3d.silo")
    +    OpenDatabase(dbname)
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +    export_name = "test_vtk_file_version"
    +    e = ExportDBAttributes()
    +    e.db_type = "VTK"
    +    e.filename = export_name
    +    e.variables = ("d",)
    +    ExportDatabase(e)
    +    time.sleep(1)
    +    CloseDatabase(dbname)
    +    filename = export_name + ".vtk"
    +    with open(filename) as input_file:
    +        TestValueEQ("export_file_version", "# vtk DataFile Version 4.2\n", next(input_file))
    +
    +TestMaterials()
    +TestXML()
    +TestHigherOrder()
    +TestNBLOCKS()
    +TestPVTU()
    +TestPVTI()
    +TestMixedTopology()
    +TestVTM()
    +TestPVTK()
    +TestVTKGhostType()
    +TestDBExpressions()
    +TestPVD()
    +TestExportFileVersion()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_wave_tv.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_wave_tv.html new file mode 100644 index 000000000..1fdadd7f3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_wave_tv.html @@ -0,0 +1,62 @@ + +Results for databases/wave_tv.py + +

    Results of VisIt Regression Test - databases/wave_tv

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    wave_tv_010.000.00
    wave_tv_020.000.00
    wave_tv_030 modifications totalling 0 lines
    wave_tv_040 modifications totalling 0 lines
    wave_tv_050.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_wave_tv_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_wave_tv_py.html new file mode 100644 index 000000000..20efdf233 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_wave_tv_py.html @@ -0,0 +1,88 @@ +databases/wave_tv.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  silo.py 
    +#
    +#  Tests:      The wave_tv database which varies domains and materials and
    +#              number of meshes over time.
    +#
    +#  Defects:    '4760
    +#
    +#  Programmer: Hank Childs
    +#  Date:       April 9, 2004 
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, June 12, 2007
    +#    Replaced explicit annotation manipulation with call to
    +#    TurnOffAllAnnotations. Added tests of TreatAllDBsAsTimeVarying
    +#    functionality
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("wave_tv*.silo database"), 9)
    +
    +
    +#
    +# This brings up a subset plot with 5 materials.
    +#
    +AddPlot("FilledBoundary", "Material")
    +DrawPlots()
    +
    +Test("wave_tv_01")
    +
    +#
    +# There was a bug ('4760), where animating over time would crash the engine
    +# when some materials went out of scope.
    +#
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +
    +Test("wave_tv_02")
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("wave_tv*.silo database") )
    +
    +#
    +# Open wave_tv one state BEFORE where variable 'transient' is
    +# defined and then march forward. With 'TreatAllDBsAsTimeVarying'
    +# turned off, the add should always fail. With it turned on,
    +# the add should succeed on state 17.
    +#
    +OpenDatabase(silo_data_path("wave_tv*.silo database") , 16)
    +addOk16 = AddPlot("Pseudocolor","transient")
    +DeleteAllPlots()
    +TimeSliderNextState()
    +addOk17 = AddPlot("Pseudocolor","transient")
    +msg = "With TreatAllDBsAsTimeVarying set to its default value,\n"
    +msg = msg + "AddPlot() returned %d for state 16 and %d for state 17"%(addOk16,addOk17)
    +TestText("wave_tv_03", msg)
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("wave_tv*.silo database") )
    +
    +SetTreatAllDBsAsTimeVarying(1)
    +OpenDatabase(silo_data_path("wave_tv*.silo database"), 16)
    +
    +addOk16 = AddPlot("Pseudocolor","transient")
    +DeleteAllPlots()
    +TimeSliderNextState()
    +addOk17 = AddPlot("Pseudocolor","transient")
    +msg = "With TreatAllDBsAsTimeVarying set to 1 (true),\n"
    +msg = msg + "AddPlot() returned %d for state 16 and %d for state 17"%(addOk16,addOk17)
    +TestText("wave_tv_04", msg)
    +DrawPlots()
    +Test("wave_tv_05")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_xdmf.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_xdmf.html new file mode 100644 index 000000000..15ab4b83a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_xdmf.html @@ -0,0 +1,349 @@ + +Results for databases/xdmf.py + +

    Results of VisIt Regression Test - databases/xdmf

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Structured (no hdf5)
    xdmf_0_000.000.00
    xdmf_0_010.000.00
    Basic topology (no hdf5)
    xdmf_1_000.000.00
    xdmf_1_010.000.00
    xdmf_1_020.000.00
    xdmf_1_030.000.00
    xdmf_1_040.000.00
    xdmf_1_050.000.00
    xdmf_1_060.000.00
    xdmf_1_070.000.00
    xdmf_1_080.000.00
    xdmf_1_090.000.00
    xdmf_1_100.000.00
    xdmf_1_110.000.00
    xdmf_1_120.000.00
    xdmf_1_130.000.00
    xdmf_1_140.000.00
    xdmf_1_150.000.00
    xdmf_1_160.000.00
    xdmf_1_170.000.00
    Mixed (no hdf5)
    xdmf_2_000.000.00
    Polygon (no hdf5)
    xdmf_3_000.000.00
    xdmf_3_010.000.00
    xdmf_3_020.000.00
    Quadratic topology (no hdf5)
    xdmf_4_000.000.00
    xdmf_4_010.000.00
    xdmf_4_020.000.00
    xdmf_4_030.000.00
    xdmf_4_040.000.00
    xdmf_4_050.000.00
    Multiple grids (no hdf5)
    xdmf_5_000.000.00
    Structured with hdf5
    xdmf_6_000.660.64
    xdmf_6_010.660.64
    xdmf_6_020.410.51
    xdmf_6_030.000.00
    xdmf_6_040.000.00
    xdmf_6_050.000.00
    xdmf_6_060.000.00
    Quadratic topology (no hdf5)
    xdmf_7_000.000.00
    xdmf_7_010.000.00
    xdmf_7_020.440.63
    xdmf_7_030.440.63
    xdmf_7_040.000.00
    xdmf_7_050.000.00
    xdmf_7_060.000.00
    Curves
    xdmf_8_010.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_xdmf_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_xdmf_py.html new file mode 100644 index 000000000..3bf4ac9d5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_xdmf_py.html @@ -0,0 +1,448 @@ +databases/xdmf.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  xdmf.py
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Tue Apr 27 10:37:01 PDT 2010
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("Xdmf")
    +
    +def test0(datapath):
    +    TestSection("Structured (no hdf5)")
    +    OpenDatabase(pjoin(datapath,"3DRectMesh.xmf"))
    +    AddPlot("Pseudocolor", "CellScalars")
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.722705, 0.363868, 0.587621)
    +    v.focus = (2, 1.5, 1.5)
    +    v.viewUp = (0.277541, 0.931424, -0.235414)
    +    v.viewAngle = 30
    +    v.parallelScale = 2.91548
    +    v.nearPlane = -5.83095
    +    v.farPlane = 5.83095
    +    v.imagePan = (0.0188164, 0.0435196)
    +    v.imageZoom = 1.09024
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (2, 1.5, 1.5)
    +    SetView3D(v)
    +    Test("xdmf_0_00")
    +
    +    ChangeActivePlotsVar("NodeScalars")
    +    Test("xdmf_0_01")
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"3DRectMesh.xmf"))
    +
    +def test1(datapath):
    +    TestSection("Basic topology (no hdf5)")
    +    OpenDatabase(pjoin(datapath,"BasicTopology.xmf"))
    +    AddPlot("Pseudocolor", "Hexahedron/Cell Centered Values")
    +    DrawPlots()
    +
    +    pc = PseudocolorAttributes(1)
    +    pc.pointSizePixels = 10
    +    pc.pointType = pc.Point
    +    SetPlotOptions(pc)
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.722705, 0.363868, 0.587621)
    +    v.focus = (0.5, 0.5, 2)
    +    v.viewUp = (0.277541, 0.931424, -0.235414)
    +    v.viewAngle = 30
    +    v.parallelScale = 2.12132
    +    v.nearPlane = -4.24264
    +    v.farPlane = 4.24264
    +    v.imagePan = (0.0665142, 0.0326173)
    +    v.imageZoom = 1.4219
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 2)
    +    SetView3D(v)
    +    Test("xdmf_1_00")
    +
    +    ChangeActivePlotsVar("Hexahedron/Node Centered Values")
    +    Test("xdmf_1_01")
    +
    +    # Polygon
    +    ChangeActivePlotsVar("Polygon/Cell Centered Values")
    +    Test("xdmf_1_02")
    +    ChangeActivePlotsVar("Polygon/Node Centered Values")
    +    Test("xdmf_1_03")
    +
    +    # Polyline
    +    ChangeActivePlotsVar("Polyline/Cell Centered Values")
    +    Test("xdmf_1_04")
    +    ChangeActivePlotsVar("Polyline/Node Centered Values")
    +    Test("xdmf_1_05")
    +
    +    # Polyvertex
    +    ChangeActivePlotsVar("Polyvertex/Cell Centered Values")
    +    Test("xdmf_1_06")
    +    ChangeActivePlotsVar("Polyvertex/Node Centered Values")
    +    Test("xdmf_1_07")
    +
    +    # Pyramid
    +    ChangeActivePlotsVar("Pyramid/Cell Centered Values")
    +    Test("xdmf_1_08")
    +    ChangeActivePlotsVar("Pyramid/Node Centered Values")
    +    Test("xdmf_1_09")
    +
    +    # Quadrilateral
    +    ChangeActivePlotsVar("Quadrilateral/Cell Centered Values")
    +    Test("xdmf_1_10")
    +    ChangeActivePlotsVar("Quadrilateral/Node Centered Values")
    +    Test("xdmf_1_11")
    +
    +    # Tetrahedron
    +    ChangeActivePlotsVar("Tetrahedron/Cell Centered Values")
    +    Test("xdmf_1_12")
    +    ChangeActivePlotsVar("Tetrahedron/Node Centered Values")
    +    Test("xdmf_1_13")
    +
    +    # Triangle
    +    ChangeActivePlotsVar("Triangle/Cell Centered Values")
    +    Test("xdmf_1_14")
    +    ChangeActivePlotsVar("Triangle/Node Centered Values")
    +    Test("xdmf_1_15")
    +
    +    # Wedge
    +    ChangeActivePlotsVar("Wedge/Cell Centered Values")
    +    Test("xdmf_1_16")
    +    ChangeActivePlotsVar("Wedge/Node Centered Values")
    +    Test("xdmf_1_17")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"BasicTopology.xmf"))
    +
    +def test2(datapath):
    +    TestSection("Mixed (no hdf5)")
    +    # Open the mixed topology file
    +    OpenDatabase(pjoin(datapath,"Mixed.xmf"))
    +    DeleteAllPlots()
    +    AddPlot("Mesh", "Mixed")
    +    m = MeshAttributes()
    +    m.legendFlag = 1
    +    m.lineWidth = 1
    +    m.meshColor = (255, 0, 0, 255)
    +    m.meshColorSource = m.MeshCustom  # Foreground, MeshCustom
    +    m.opaqueColorSource = m.OpaqueCustom  # Background, OpaqueCustom
    +    m.opaqueMode = m.Auto  # Auto, On, Off
    +    m.pointSize = 0.05
    +    m.opaqueColor = (192, 192, 192, 255)
    +    m.smoothingLevel = m.NONE  # None, Fast, High
    +    m.pointSizeVarEnabled = 0
    +    m.pointSizeVar = "default"
    +    m.pointType = m.Point  # Box, Axis, Icosahedron, Point, Sphere
    +    m.showInternal = 0
    +    m.pointSizePixels = 2
    +    m.opacity = 1
    +    SetPlotOptions(m)
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.611582, 0.210354, 0.762705)
    +    v.focus = (0.5, 0.5, 2)
    +    v.viewUp = (0.145916, 0.97746, -0.15258)
    +    v.viewAngle = 30
    +    v.parallelScale = 2.12132
    +    v.nearPlane = -4.24264
    +    v.farPlane = 4.24264
    +    v.imagePan = (-0.0635688, 0.0486989)
    +    v.imageZoom = 1.17908
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 2)
    +    SetView3D(v)
    +    Test("xdmf_2_00")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath, "Mixed.xmf"))
    +
    +def test3(datapath):
    +    TestSection("Polygon (no hdf5)")
    +    OpenDatabase(pjoin(datapath,"PolygonOctagon.xmf"))
    +    AddPlot("Mesh", "PolygonOctagon")
    +    DrawPlots()
    +    ResetView()
    +    Test("xdmf_3_00")
    +
    +    AddPlot("Pseudocolor", "CellScalar")
    +    DrawPlots()
    +    Test("xdmf_3_01")
    +
    +    ChangeActivePlotsVar("NodeScalar")
    +    Test("xdmf_3_02")
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"PolygonOctagon.xmf"))
    +
    +def test4(datapath):
    +    TestSection("Quadratic topology (no hdf5)")
    +    OpenDatabase(pjoin(datapath,"QuadraticTopology.xmf"))
    +    AddPlot("Pseudocolor", "Hexahedron_20/Node Centered Values")
    +    DrawPlots()
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.703184, 0.393286, 0.592333)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.293186, 0.919352, -0.262361)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.imagePan = (0.0122989, 0.0367562)
    +    v.imageZoom = 1.02726
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 0.5)
    +    SetView3D(v)
    +    Test("xdmf_4_00")
    +
    +    ChangeActivePlotsVar("Pyramid_13/Node Centered Values")
    +    Test("xdmf_4_01")
    +
    +    ChangeActivePlotsVar("Quadrilateral_8/Node Centered Values")
    +    Test("xdmf_4_02")
    +
    +    ChangeActivePlotsVar("Tetrahedron_10/Node Centered Values")
    +    Test("xdmf_4_03")
    +
    +    ChangeActivePlotsVar("Triangle_6/Node Centered Values")
    +    Test("xdmf_4_04")
    +
    +    ChangeActivePlotsVar("Wedge_15/Node Centered Values")
    +    Test("xdmf_4_05")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"QuadraticTopology.xmf"))
    +
    +def test5(datapath):
    +    TestSection("Multiple grids (no hdf5)")
    +    OpenDatabase(pjoin(datapath,"TetrahedronMultipleGrids.xmf"))
    +    AddPlot("Pseudocolor", "Tetrahedron 1/CellScalar")
    +    AddPlot("Pseudocolor", "Tetrahedron 2/CellScalar")
    +    DrawPlots()
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.0158313, 0.998128, -0.0590748)
    +    v.focus = (0, 0.5, 0)
    +    v.viewUp = (-0.0096669, -0.0592323, -0.998197)
    +    v.viewAngle = 30
    +    v.parallelScale = 1.5
    +    v.nearPlane = -3
    +    v.farPlane = 3
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0.5, 0)
    +    SetView3D(v)
    +
    +    Test("xdmf_5_00")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"TetrahedronMultipleGrids.xmf"))
    +
    +def test6(datapath):
    +    TestSection("Structured with hdf5")
    +    db = pjoin(datapath,"rect2d.xmf")
    +    OpenDatabase(db)
    +    AddPlot("Mesh", "mesh")
    +    AddPlot("Pseudocolor", "Pressure")
    +    DrawPlots()
    +    ResetView()
    +    Test("xdmf_6_00")
    +    ChangeActivePlotsVar("VelocityX")
    +    Test("xdmf_6_01")
    +
    +    db = pjoin(datapath,"corect2d.xmf")
    +    ReplaceDatabase(db)
    +    DrawPlots()
    +    ResetView()
    +    Test("xdmf_6_02")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +    db = pjoin(datapath,"rect3d.xmf")
    +    OpenDatabase(db)
    +    AddPlot("Mesh", "mesh")
    +    AddPlot("Pseudocolor", "VelocityZ")
    +    DrawPlots()
    +    ResetView()
    +    Test("xdmf_6_03")
    +
    +    db = pjoin(datapath,"corect3d.xmf")
    +    ReplaceDatabase(db)
    +    DrawPlots()
    +    ResetView()
    +    Test("xdmf_6_04")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +    db = pjoin(datapath,"xdmf2d.xmf")
    +    OpenDatabase(db)
    +    AddPlot("Mesh", "mesh1")
    +    AddPlot("Pseudocolor", "Pressure")
    +    DrawPlots()
    +    Test("xdmf_6_05")
    +
    +    ChangeActivePlotsVar("VelocityX")
    +    Test("xdmf_6_06")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test7(datapath):
    +    TestSection("Quadratic topology (no hdf5)")
    +    OpenDatabase(pjoin(datapath,"singleHex24.xmf"))
    +    AddPlot("Mesh", "singleHex24")
    +    AddPlot("Pseudocolor", "GlobalNodeId")
    +    DrawPlots()
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.690415, 0.541158, 0.480078)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0.123212, -0.565967, 0.815169)
    +    v.viewAngle = 30
    +    v.parallelScale = 1.73205
    +    v.nearPlane = -3.4641
    +    v.farPlane = 3.4641
    +    v.imagePan = (0, 0.0352717)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +
    +    Test("xdmf_7_00")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"singleHex24.xmf"))
    +
    +    OpenDatabase(pjoin(datapath,"singleHex27.xmf"))
    +    AddPlot("Mesh", "singleHex27")
    +    AddPlot("Pseudocolor", "GlobalNodeId")
    +    DrawPlots()
    +
    +    Test("xdmf_7_01")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"singleHex27.xmf"))
    +
    +    OpenDatabase(pjoin(datapath,"singleQuad6.xmf"))
    +    AddPlot("Mesh", "singleQuad6")
    +    AddPlot("Pseudocolor", "GlobalNodeId")
    +    DrawPlots()
    +
    +    Test("xdmf_7_02")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"singleQuad6.xmf"))
    +
    +    OpenDatabase(pjoin(datapath,"singleQuad9.xmf"))
    +    AddPlot("Mesh", "singleQuad9")
    +    AddPlot("Pseudocolor", "GlobalNodeId")
    +    DrawPlots()
    +
    +    Test("xdmf_7_03")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"singleQuad9.xmf"))
    +
    +    OpenDatabase(pjoin(datapath,"singleTri7.xmf"))
    +    AddPlot("Mesh", "singleTri7")
    +    AddPlot("Pseudocolor", "GlobalNodeId")
    +    DrawPlots()
    +
    +    Test("xdmf_7_04")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath, "singleTri7.xmf"))
    +
    +    OpenDatabase(pjoin(datapath, "singleWedge12.xmf"))
    +    AddPlot("Mesh", "singleWedge12")
    +    AddPlot("Pseudocolor", "GlobalNodeId")
    +    DrawPlots()
    +    v = View3DAttributes()
    +    v.viewNormal = (0.69918, -0.142559, 0.700588)
    +    v.focus = (0, 0, 0.5)
    +    v.viewUp = (-0.216074, 0.89196, 0.397139)
    +    v.viewAngle = 30
    +    v.parallelScale = 1.5
    +    v.nearPlane = -3
    +    v.farPlane = 3
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +
    +    Test("xdmf_7_05")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"singleWedge12.xmf"))
    +
    +    OpenDatabase(pjoin(datapath,"singleWedge18.xmf"))
    +    AddPlot("Mesh", "singleWedge18")
    +    AddPlot("Pseudocolor", "GlobalNodeId")
    +    DrawPlots()
    +
    +    Test("xdmf_7_06")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"singleWedge18.xmf"))
    +
    +def test8(datapath):
    +    TestSection("Curves")
    +    OpenDatabase(pjoin(datapath,"curve.xmf"))
    +    AddPlot("Curve", "Curve/Node Centered Values")
    +    ca = CurveAttributes()
    +    ca.showLabels = 0
    +    SetPlotOptions(ca)
    +    DrawPlots()
    +    Test("xdmf_8_01")
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"curve.xmf"))
    +
    +def main():
    +    datapath = data_path("xdmf_test_data")
    +    test0(datapath)
    +    test1(datapath)
    +    test2(datapath)
    +    test3(datapath)
    +    test4(datapath)
    +    test5(datapath)
    +
    +    test6(datapath)
    +    test7(datapath)
    +    test8(datapath)
    +
    +main()
    +Exit()
    +
    +
    +#fails:
    +# rect2d.xmf
    +#              Crashes the engine cuz we don't give a Z coordinate
    +#
    +# corect2d.xml 
    +#              I can plot the mesh but it is in the YZ plane, which doesn't seem right.
    +#              Does not expose Pressure or VelocityX.
    +#              
    +# rect3d.xmf
    +#              Only exposes VelocityZ (where is Pressure?)
    +#
    +# corect3d.xmf
    +#              Does not expose Pressure or VelocityZ
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_xform_precision.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_xform_precision.html new file mode 100644 index 000000000..6fdaf6dd4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_xform_precision.html @@ -0,0 +1,72 @@ + +Results for databases/xform_precision.py + +

    Results of VisIt Regression Test - databases/xform_precision

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    float_xform_010.000.00
    float_xform_020.000.00
    float_xform_030.000.00
    float_xform_040.000.00
    float_xform_050.000.00
    float_xform_060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_xform_precision_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_xform_precision_py.html new file mode 100644 index 000000000..1a12e4582 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_xform_precision_py.html @@ -0,0 +1,86 @@ +databases/xform_precision.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  xform_precision.py 
    +#
    +#  Tests:      Transform manager's conversion to float 
    +#
    +#  Programmer: Mark C. Miller
    +#  Date:       September 24, 2006 
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("quad_disk.silo"))
    +
    +
    +#
    +# Turn off force single precision for this test
    +#
    +readOptions=GetDefaultFileOpenOptions("Silo")
    +readOptions["Force Single"] = 0
    +SetDefaultFileOpenOptions("Silo", readOptions)
    +
    +#
    +# Test ordinary float data (no conversion) first
    +#
    +AddPlot("Mesh","mesh")
    +DrawPlots()
    +Test("float_xform_01")
    +DeleteAllPlots()
    +
    +#
    +# Ok, now read a mesh with double coords
    +#
    +AddPlot("Mesh","meshD")
    +DrawPlots()
    +Test("float_xform_02")
    +DeleteAllPlots()
    +
    +CloseDatabase(silo_data_path("quad_disk.silo"))
    +OpenDatabase(silo_data_path("quad_disk.silo"))
    +
    +
    +#
    +# test float data on a float mesh
    +#
    +AddPlot("Pseudocolor","sphElev_on_mesh")
    +DrawPlots()
    +Test("float_xform_03")
    +DeleteAllPlots()
    +
    +#
    +# test float data on a double mesh
    +#
    +AddPlot("Pseudocolor","sphElev_on_meshD")
    +DrawPlots()
    +Test("float_xform_04")
    +DeleteAllPlots()
    +
    +#
    +# test double data on a float mesh
    +#
    +AddPlot("Pseudocolor","sphElevD_on_mesh")
    +DrawPlots()
    +Test("float_xform_05")
    +DeleteAllPlots()
    +
    +CloseDatabase(silo_data_path("quad_disk.silo"))
    +
    +OpenDatabase(silo_data_path("quad_disk.silo"))
    +
    +
    +#
    +# test double data on a double mesh
    +#
    +AddPlot("Pseudocolor","sphElevD_on_meshD")
    +DrawPlots()
    +Test("float_xform_06")
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_xyz.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_xyz.html new file mode 100644 index 000000000..4df8d3ec1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_xyz.html @@ -0,0 +1,76 @@ + +Results for databases/xyz.py + +

    Results of VisIt Regression Test - databases/xyz

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    xyz_010.000.00
    xyz_020.000.00
    xyz_030.000.00
    xyz_040.000.00
    xyz_050.000.00
    xyz_060.000.00
    xyz_070 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_xyz_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_xyz_py.html new file mode 100644 index 000000000..3772f8d4f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/databases_xyz_py.html @@ -0,0 +1,81 @@ +databases/xyz.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  xyz.py
    +#
    +#  Tests:      mesh      - 3D Points
    +#              plots     - Molecule
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       June 14, 2007
    +#
    +#  Modifications:
    +#    Eddie Rusu, Mon Aug 26 08:46:44 PDT 2019
    +#    Added test for cell-centered non VTK_VERTEX points.
    +#
    +#    Kathleen Biagas, Mon Jun 21 09:41:41 PDT 2021
    +#    Added 'DeleteAllPlots' before 'CloseDatabase'.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def test_xyz_ascii_output(data_base_name, var, test_output):
    +    OpenDatabase(silo_data_path(data_base_name))
    +    AddPlot("Pseudocolor", var, 1, 1)
    +    DrawPlots()
    +
    +    # Export results to database
    +    e = ExportDBAttributes()
    +    e.db_type = "XYZ"
    +    e.filename = "test_ex_db"
    +    ExportDatabase(e)
    +    time.sleep(1)
    +
    +    # Stream the ascii text in from the exported database
    +    file_streamer = open(e.filename+'.xyz', 'r')
    +    string_to_test = file_streamer.read()
    +    file_streamer.close()
    +
    +    # Test the string
    +    TestText(test_output, string_to_test)
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(data_base_name))
    +
    +
    +
    +# Starting point in this script
    +OpenDatabase(data_path("xyz_test_data/nanowireTB23K298.xyz"),0, "XYZ_1.0")
    +
    +AddPlot("Molecule", "element")
    +DrawPlots()
    +
    +View3DAtts = GetView3D()
    +View3DAtts.viewNormal = (-0.882253, 0.0562832, 0.467398)
    +View3DAtts.focus = (26.3509, 22.1853, 31.5426)
    +View3DAtts.viewUp = (-0.0613441, 0.970619, -0.232672)
    +View3DAtts.viewAngle = 30
    +SetView3D(View3DAtts)
    +
    +Test("xyz_01")
    +TimeSliderNextState()
    +Test("xyz_02")
    +TimeSliderNextState()
    +Test("xyz_03")
    +TimeSliderNextState()
    +Test("xyz_04")
    +TimeSliderNextState()
    +Test("xyz_05")
    +TimeSliderNextState()
    +Test("xyz_06")
    +DeleteAllPlots()
    +CloseDatabase(data_path("xyz_test_data/nanowireTB23K298.xyz"))
    +
    +# Test case where XYZ writer is cell-centered VTK_VERTEX data
    +# In this case, the baseline text is generated from the point-centered data.
    +DefineScalarExpression("vz2", 'recenter(vz, "zonal")')
    +test_xyz_ascii_output('galaxy0000.silo', 'vz2', 'xyz_07')
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_ghost_zoneid_expr.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_ghost_zoneid_expr.html new file mode 100644 index 000000000..6d6136c2a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_ghost_zoneid_expr.html @@ -0,0 +1,58 @@ + +Results for expressions/ghost_zoneid_expr.py + +

    Results of VisIt Regression Test - expressions/ghost_zoneid_expr

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Ghost Zone ID Expression
    Minimum Field Value
     0.0 .eq. 0.0 (prec=5) : True
    Maximum Field Value
     0.0 .eq. 0.0 (prec=5) : True
    Ghost Zone ID Expression w/ Inverse Ghost Zones Debugging
    Minimum Field Value
     1.0 .eq. 1.0 (prec=5) : True
    Maximum Field Value
     1.0 .eq. 1.0 (prec=5) : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_ghost_zoneid_expr_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_ghost_zoneid_expr_py.html new file mode 100644 index 000000000..063c661eb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_ghost_zoneid_expr_py.html @@ -0,0 +1,46 @@ +expressions/ghost_zoneid_expr.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ghost_zoneid_expr.py
    +#
    +#  Tests:      Ghost Zone Id Expression
    +#
    +#  Programmer: Justin Privitera
    +#  Date:       Wed Apr 6 15:03:47 PDT 2022
    +#
    +# ----------------------------------------------------------------------------
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +meshName = "mesh1"
    +
    +#
    +# Set precision for rounding operations
    +#
    +Prec = 5
    +
    +TestSection("Ghost Zone ID Expression")
    +
    +AddPlot("Pseudocolor", "d")
    +DefineScalarExpression("ghostzonevar", "ghost_zoneid(" + meshName + ")")
    +AddPlot("Pseudocolor", "ghostzonevar")
    +DrawPlots()
    +Query("MinMax")
    +q = GetQueryOutputObject()
    +TestValueEQ("Minimum Field Value", q['min'], 0.0, Prec)
    +TestValueEQ("Maximum Field Value", q['max'], 0.0, Prec)
    +DeleteAllPlots()
    +
    +TestSection("Ghost Zone ID Expression w/ Inverse Ghost Zones Debugging")
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("InverseGhostZone", 1)
    +DefineScalarExpression("ghostzonevar", "ghost_zoneid(" + meshName + ")")
    +ChangeActivePlotsVar("ghostzonevar")
    +DrawPlots()
    +Query("MinMax")
    +q = GetQueryOutputObject()
    +TestValueEQ("Minimum Field Value", q['min'], 1.0, Prec)
    +TestValueEQ("Maximum Field Value", q['max'], 1.0, Prec)
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_global_stats.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_global_stats.html new file mode 100644 index 000000000..41088a2ce --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_global_stats.html @@ -0,0 +1,292 @@ + +Results for expressions/global_stats.py + +

    Results of VisIt Regression Test - expressions/global_stats

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Test Average 1 for d
     3.4952032566070557 .eq. 3.4952 (prec=5) : True
    Test Average 2 for d
     3.4952032566070557 .eq. 3.4952 (prec=5) : True
    Test Maximum 1 for d
     4.955699443817139 .eq. 4.9557 (prec=5) : True
    Test Maximum 2 for d
     4.955699443817139 .eq. 4.9557 (prec=5) : True
    Test Minimum 1 for d
     2.034707546234131 .eq. 2.03471 (prec=5) : True
    Test Minimum 2 for d
     2.034707546234131 .eq. 2.03471 (prec=5) : True
    Test Number 1 for d
     36000.0 .eq. 36000 (prec=5) : True
    Test Number 2 for d
     36000.0 .eq. 36000 (prec=5) : True
    Test Root Mean Square 1 for d
     3.6005451679229736 .eq. 3.60055 (prec=5) : True
    Test Root Mean Square 2 for d
     3.6005451679229736 .eq. 3.60055 (prec=5) : True
    Test Standard Deviation 1 for d
     0.8645682334899902 .eq. 0.864568 (prec=5) : True
    Test Standard Deviation 2 for d
     0.8645682334899902 .eq. 0.864568 (prec=5) : True
    Test Sum 1 for d
     125827.3203125 .eq. 125827.3203125 (prec=5) : True
    Test Sum 2 for d
     125827.3203125 .eq. 125827.3203125 (prec=5) : True
    Test Variance 1 for d
     0.7474782466888428 .eq. 0.747478 (prec=5) : True
    Test Variance 2 for d
     0.7474782466888428 .eq. 0.747478 (prec=5) : True
    Test Average 1 for u
     -0.0023603462614119053 .eq. -0.00236035 (prec=5) : True
    Test Average 2 for u
     -0.0023603462614119053 .eq. -0.00236035 (prec=5) : True
    Test Maximum 1 for u
     1.0 .eq. 1 (prec=5) : True
    Test Maximum 2 for u
     1.0 .eq. 1 (prec=5) : True
    Test Minimum 1 for u
     -1.0 .eq. -1 (prec=5) : True
    Test Minimum 2 for u
     -1.0 .eq. -1 (prec=5) : True
    Test Number 1 for u
     39401.0 .eq. 39401 (prec=5) : True
    Test Number 2 for u
     39401.0 .eq. 39401 (prec=5) : True
    Test Root Mean Square 1 for u
     0.7401482462882996 .eq. 0.740148 (prec=5) : True
    Test Root Mean Square 2 for u
     0.7401482462882996 .eq. 0.740148 (prec=5) : True
    Test Standard Deviation 1 for u
     0.7401444911956787 .eq. 0.740144 (prec=5) : True
    Test Standard Deviation 2 for u
     0.7401444911956787 .eq. 0.740144 (prec=5) : True
    Test Sum 1 for u
     -93.0 .eq. -93 (prec=5) : True
    Test Sum 2 for u
     -93.0 .eq. -93 (prec=5) : True
    Test Variance 1 for u
     0.5478138327598572 .eq. 0.547814 (prec=5) : True
    Test Variance 2 for u
     0.5478138327598572 .eq. 0.547814 (prec=5) : True
    Test Average 1 for d
     3.4952033675857233 .eq. 3.4952 (prec=5) : True
    Test Average 2 for d
     3.4952033675857233 .eq. 3.4952 (prec=5) : True
    Test Maximum 1 for d
     4.880802119883037 .eq. 4.8808 (prec=5) : True
    Test Maximum 2 for d
     4.880802119883037 .eq. 4.8808 (prec=5) : True
    Test Minimum 1 for d
     2.1096046644241038 .eq. 2.1096 (prec=5) : True
    Test Minimum 2 for d
     2.1096046644241038 .eq. 2.1096 (prec=5) : True
    Test Number 1 for d
     988.0 .eq. 988 (prec=5) : True
    Test Number 2 for d
     988.0 .eq. 988 (prec=5) : True
    Test Root Mean Square 1 for d
     3.5904038921519654 .eq. 3.5904 (prec=5) : True
    Test Root Mean Square 2 for d
     3.5904038921519654 .eq. 3.5904 (prec=5) : True
    Test Standard Deviation 1 for d
     0.8213120771042927 .eq. 0.821312 (prec=5) : True
    Test Standard Deviation 2 for d
     0.8213120771042927 .eq. 0.821312 (prec=5) : True
    Test Sum 1 for d
     3453.2609271746946 .eq. 3453.2609271746946 (prec=5) : True
    Test Sum 2 for d
     3453.2609271746946 .eq. 3453.2609271746946 (prec=5) : True
    Test Variance 1 for d
     0.6745535279973676 .eq. 0.674554 (prec=5) : True
    Test Variance 2 for d
     0.6745535279973676 .eq. 0.674554 (prec=5) : True
    Test Average 1 for u
     0.06429317593574524 .eq. 0.0642932 (prec=5) : True
    Test Average 2 for u
     0.06429317593574524 .eq. 0.0642932 (prec=5) : True
    Test Maximum 1 for u
     1.0 .eq. 1 (prec=5) : True
    Test Maximum 2 for u
     1.0 .eq. 1 (prec=5) : True
    Test Minimum 1 for u
     -1.0 .eq. -1 (prec=5) : True
    Test Minimum 2 for u
     -1.0 .eq. -1 (prec=5) : True
    Test Number 1 for u
     1053.0 .eq. 1053 (prec=5) : True
    Test Number 2 for u
     1053.0 .eq. 1053 (prec=5) : True
    Test Root Mean Square 1 for u
     0.7151905298233032 .eq. 0.715191 (prec=5) : True
    Test Root Mean Square 2 for u
     0.7151905298233032 .eq. 0.715191 (prec=5) : True
    Test Standard Deviation 1 for u
     0.7122947573661804 .eq. 0.7122947573661804 (prec=5) : True
    Test Standard Deviation 2 for u
     0.7122947573661804 .eq. 0.7122947573661804 (prec=5) : True
    Test Sum 1 for u
     67.70071411132812 .eq. 67.70071411132812 (prec=5) : True
    Test Sum 2 for u
     67.70071411132812 .eq. 67.70071411132812 (prec=5) : True
    Test Variance 1 for u
     0.5073638558387756 .eq. 0.507364 (prec=5) : True
    Test Variance 2 for u
     0.5073638558387756 .eq. 0.507364 (prec=5) : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_global_stats_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_global_stats_py.html new file mode 100644 index 000000000..607fb199c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_global_stats_py.html @@ -0,0 +1,130 @@ +expressions/global_stats.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  global_stats.py
    +#
    +#  Tests:      global statistics expressions
    +#
    +#  Programmer: Justin Privitera
    +#  Date:       10/25/24
    +# ----------------------------------------------------------------------------
    +#  Description:
    +# 
    +# global statistics expressions are sensitive to ghost zones/nodes, so we test
    +# with two datasets - curv3d.silo which has no ghosts, and curv2d.silo which
    +# has ghosts. For each one, we look at the variables d (zonal) and u (nodal),
    +# since zonal and nodal variables have slightly different paths for global 
    +# stats expressions. For each variable, we look at each of the statistics on 
    +# offer.
    +# 
    +# ----------------------------------------------------------------------------
    +
    +# no ghosts in curv3d
    +curv3d_stats = {}
    +
    +# zonal stats
    +curv3d_stats["max_d"] = 4.9557
    +curv3d_stats["min_d"] = 2.03471
    +curv3d_stats["num_d"] = 36000 # num zones
    +curv3d_stats["sum_d"] = 125827.3203125
    +curv3d_stats["avg_d"] = 3.4952
    +curv3d_stats["std_d"] = 0.864568 # standard deviation
    +curv3d_stats["var_d"] = 0.747478 # variance
    +curv3d_stats["rms_d"] = 3.60055 # root mean square
    +
    +# nodal stats
    +curv3d_stats["max_u"] = 1
    +curv3d_stats["min_u"] = -1
    +curv3d_stats["num_u"] = 39401 # num nodes
    +curv3d_stats["sum_u"] = -93
    +curv3d_stats["avg_u"] = -0.00236035
    +curv3d_stats["std_u"] = 0.740144 # standard deviation
    +curv3d_stats["var_u"] = 0.547814 # variance
    +curv3d_stats["rms_u"] = 0.740148 # root mean square
    +
    +# yes ghosts in curv2d
    +curv2d_stats = {}
    +
    +# zonal stats
    +curv2d_stats["max_d"] = 4.8808
    +curv2d_stats["min_d"] = 2.1096
    +curv2d_stats["num_d"] = 988 # num zones
    +curv2d_stats["sum_d"] = 3453.2609271746946
    +curv2d_stats["avg_d"] = 3.4952
    +curv2d_stats["std_d"] = 0.821312 # standard deviation
    +curv2d_stats["var_d"] = 0.674554 # variance
    +curv2d_stats["rms_d"] = 3.5904 # root mean square
    +
    +# nodal stats
    +curv2d_stats["max_u"] = 1
    +curv2d_stats["min_u"] = -1
    +curv2d_stats["num_u"] = 1053 # num nodes
    +curv2d_stats["sum_u"] = 67.70071411132812
    +curv2d_stats["avg_u"] = 0.0642932
    +curv2d_stats["std_u"] = 0.7122947573661804 # standard deviation
    +curv2d_stats["var_u"] = 0.507364 # variance
    +curv2d_stats["rms_u"] = 0.715191 # root mean square
    +
    +baseline_stats = {}
    +baseline_stats["curvmesh3d"] = curv3d_stats
    +baseline_stats["curvmesh2d"] = curv2d_stats
    +
    +def test_stat(shortstatname, longstatname, meshname, varname, vartype):
    +        AddPlot("Pseudocolor", shortstatname + "_" + varname + "_" + vartype)
    +        DrawPlots()
    +        Query("MinMax")
    +        q = GetQueryOutputObject()
    +        # we test both the min and max because we want to ensure the variable is constant
    +        # across the mesh.
    +        if vartype == "zonal":
    +                TestValueEQ("Test " + longstatname + " 1 for " + varname, q['min'],
    +                        baseline_stats[meshname][shortstatname + "_" + varname])
    +                TestValueEQ("Test " + longstatname + " 2 for " + varname, q['max'],
    +                        baseline_stats[meshname][shortstatname + "_" + varname])
    +        else:
    +                TestValueEQ("Test " + longstatname + " 1 for " + varname, q['min'],
    +                        baseline_stats[meshname][shortstatname + "_" + varname])
    +                TestValueEQ("Test " + longstatname + " 2 for " + varname, q['max'],
    +                        baseline_stats[meshname][shortstatname + "_" + varname])
    +        DeleteAllPlots()
    +
    +def test_stats_for_var(meshname, varname, vartype):
    +        # define our expressions
    +        if vartype == "zonal":
    +                # every zone will have a value of 1
    +                DefineScalarExpression("one", "zonal_constant(" + meshname + ", 1)")
    +        else:
    +                # every node will have a value of 1
    +                DefineScalarExpression("one", "nodal_constant(" + meshname + ", 1)")
    +        DefineScalarExpression("avg_" + varname + "_" + vartype, "global_avg(" + varname + ")")
    +        DefineScalarExpression("max_" + varname + "_" + vartype, "global_max(" + varname + ")")
    +        DefineScalarExpression("min_" + varname + "_" + vartype, "global_min(" + varname + ")")
    +        DefineScalarExpression("num_" + varname + "_" + vartype, "global_sum(one)")
    +        DefineScalarExpression("rms_" + varname + "_" + vartype, "global_rms(" + varname + ")")
    +        DefineScalarExpression("std_" + varname + "_" + vartype, "global_std_dev(" + varname + ")")
    +        DefineScalarExpression("sum_" + varname + "_" + vartype, "global_sum(" + varname + ")")
    +        DefineScalarExpression("var_" + varname + "_" + vartype, "global_variance(" + varname + ")")
    +
    +        test_stat("avg", "Average",            meshname, varname, vartype)
    +        test_stat("max", "Maximum",            meshname, varname, vartype)
    +        test_stat("min", "Minimum",            meshname, varname, vartype)
    +        test_stat("num", "Number",             meshname, varname, vartype)
    +        test_stat("rms", "Root Mean Square",   meshname, varname, vartype)
    +        test_stat("std", "Standard Deviation", meshname, varname, vartype)
    +        test_stat("sum", "Sum",                meshname, varname, vartype)
    +        test_stat("var", "Variance",           meshname, varname, vartype)
    +
    +# no ghosts
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +test_stats_for_var("curvmesh3d", "d", "zonal") # zonal var
    +test_stats_for_var("curvmesh3d", "u", "nodal") # nodal var
    +CloseDatabase(silo_data_path("curv3d.silo"))
    +
    +# yes ghosts
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +test_stats_for_var("curvmesh2d", "d", "zonal") # zonal var
    +test_stats_for_var("curvmesh2d", "u", "nodal") # nodal var
    +CloseDatabase(silo_data_path("curv2d.silo"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_math_expr.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_math_expr.html new file mode 100644 index 000000000..2ea3ba1d0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_math_expr.html @@ -0,0 +1,60 @@ + +Results for expressions/math_expr.py + +

    Results of VisIt Regression Test - expressions/math_expr

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Minimum Field Value
     1.0 .eq. 1.0 (prec=5) : True
    Maximum Field Value
     1.0 .eq. 1.0 (prec=5) : True
    Minimum Field Value
     0.0 .eq. 0.0 (prec=5) : True
    Maximum Field Value
     0.0 .eq. 0.0 (prec=5) : True
    Minimum Field Value
     1.0 .eq. 1.0 (prec=5) : True
    Maximum Field Value
     1.0 .eq. 1.0 (prec=5) : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_math_expr_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_math_expr_py.html new file mode 100644 index 000000000..c386c5f49 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_math_expr_py.html @@ -0,0 +1,50 @@ +expressions/math_expr.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  math_expr.py
    +#
    +#  Tests:      Basic math expressions
    +#
    +#  Mark C. Miller, Fri Jul 26 14:13:43 PDT 2024
    +# ----------------------------------------------------------------------------
    +OpenDatabase(silo_data_path("globe.silo"))
    +meshName = "mesh1"
    +
    +# Test simple integer valued case first
    +DefineScalarExpression("const31", "nodal_constant(<" + meshName + ">, 31)")
    +DefineScalarExpression("const5", "nodal_constant(<" + meshName + ">, 5)")
    +DefineScalarExpression("mod1", "const31 % const5")
    +AddPlot("Pseudocolor", "mod1")
    +DrawPlots()
    +Query("MinMax")
    +q = GetQueryOutputObject()
    +TestValueEQ("Minimum Field Value", q['min'], 1.0)
    +TestValueEQ("Maximum Field Value", q['max'], 1.0)
    +DeleteAllPlots()
    +
    +# Test floating point case (zero remainder)
    +DefineScalarExpression("const7.5", "nodal_constant(<" + meshName + ">, 7.5)")
    +DefineScalarExpression("const2.5", "nodal_constant(<" + meshName + ">, 2.5)")
    +DefineScalarExpression("mod2", "const7.5 % const2.5")
    +AddPlot("Pseudocolor", "mod2")
    +DrawPlots()
    +Query("MinMax")
    +q = GetQueryOutputObject()
    +TestValueEQ("Minimum Field Value", q['min'], 0.0)
    +TestValueEQ("Maximum Field Value", q['max'], 0.0)
    +DeleteAllPlots()
    +
    +# Test floating point case (non-zero remainder)
    +DefineScalarExpression("const8.5", "nodal_constant(<" + meshName + ">, 8.5)")
    +DefineScalarExpression("const2.5", "nodal_constant(<" + meshName + ">, 2.5)")
    +DefineScalarExpression("mod3", "const8.5 % const2.5")
    +AddPlot("Pseudocolor", "mod3")
    +DrawPlots()
    +Query("MinMax")
    +q = GetQueryOutputObject()
    +TestValueEQ("Minimum Field Value", q['min'], 1.0)
    +TestValueEQ("Maximum Field Value", q['max'], 1.0)
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_tensor_expr.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_tensor_expr.html new file mode 100644 index 000000000..ba9d7abcd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_tensor_expr.html @@ -0,0 +1,194 @@ + +Results for expressions/tensor_expr.py + +

    Results of VisIt Regression Test - expressions/tensor_expr

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    2D Tensor Maximum Shear
    Maximum Shear 2D
     46.097721099853516 .eq. 46.09772 (prec=5) : True
    Maximum Shear 2D
     46.097721099853516 .eq. 46.09772 (prec=5) : True
    3D Tensor Maximum Shear
    Maximum Shear 3D
     12.5 .eq. 12.5 (prec=5) : True
    Maximum Shear 3D
     12.5 .eq. 12.5 (prec=5) : True
    2D Effective Tensor
    2D Effective Tensor
     81.24038696289062 .eq. 81.24039 (prec=5) : True
    2D Effective Tensor
     81.24038696289062 .eq. 81.24039 (prec=5) : True
    3D Effective Tensor
    Effective Tensor
     13.076696395874023 .eq. 13.0767 (prec=5) : True
    Effective Tensor
     13.076696395874023 .eq. 13.0767 (prec=5) : True
    3D, Symmetric Eigenvalues and Eigenvectors
    First Eigenvalue of 2
     2 .in. 
    [3.4142136573791504, 2.0, 0.5857864618301392]
     (prec=5, at=1) : True
    Second Eigenvalue of 2+sqrt(2)
     3.414213562373095 .in. 
    [3.4142136573791504, 2.0, 0.5857864618301392]
     (prec=5, at=0) : True
    Third Eigenvalue of 2-sqrt(2)
     0.5857864376269049 .in. 
    [3.4142136573791504, 2.0, 0.5857864618301392]
     (prec=5, at=2) : True
    First Eigenvector of (1,0,-1)
     (1, 0, -1) .in. 
    [[0.5, -0.70711, 0.5],
      [0.70711, 0.0, -0.70711],
      [0.5, 0.70711, 0.5]]
     (prec=5, at=1) : True
    Second Eigenvector of (1,-sqrt(2),1)
     (1, -1.4142135623730951, 1) .in. 
    [[0.5, -0.70711, 0.5],
      [0.70711, 0.0, -0.70711],
      [0.5, 0.70711, 0.5]]
     (prec=5, at=0) : True
    Third Eigenvector of (1,sqrt(2),1)
     (1, 1.4142135623730951, 1) .in. 
    [[0.5, -0.70711, 0.5],
      [0.70711, 0.0, -0.70711],
      [0.5, 0.70711, 0.5]]
     (prec=5, at=2) : True
    3D, Symmetric Eigenvalues and Eigenvectors with Repeated values
    First Eigenvalue of -1
     -1 .in. 
    [8.0, -1.0, -1.0]
     (prec=5, at=1) : True
    Second Eigenvalue of -1
     -1 .in. 
    [8.0, -1.0]
     (prec=5, at=1) : True
    Third Eigenvalue of 8
     8 .in. 
    [8.0, -1.0]
     (prec=5, at=0) : True
    First Eigenvector of (1,-2,0)
     (1, -2, 0) .in. 
    [[0.666667, 0.333333, 0.666667],
      [0.596285, 0.298142, -0.745356],
      [-0.447214, 0.894427, 0.0]]
     (prec=5, at=2) : True
    Second Eigenvector of (4,2,-5)
     (4, 2, -5) .in. 
    [[0.666667, 0.333333, 0.666667],
      [0.596285, 0.298142, -0.745356],
      [-0.447214, 0.894427, 0.0]]
     (prec=5, at=1) : True
    Third Eigenvector of (2,1,2)
     (2, 1, 2) .in. 
    [[0.666667, 0.333333, 0.666667],
      [0.596285, 0.298142, -0.745356],
      [-0.447214, 0.894427, 0.0]]
     (prec=5, at=0) : True
    Cross Principal Stresses and Eigenvalues
    First principal component is first eigenvalue
     -1 .in. 
    [8.0, -1.0, -1.0]
     (prec=5, at=1) : True
    Second principal component is second eigenvalue
     -1 .in. 
    [8.0, -1.0]
     (prec=5, at=1) : True
    Third principal component is third eigenvalue
     8 .in. 
    [8.0, -1.0]
     (prec=5, at=0) : True
    2D, Symmetric Eigenvalues and Eigenvectors
    First Eigenvalue of -1
     -1 .in. 
    [5.0, 0.0, -1.0]
     (prec=5, at=2) : True
    Second Eigenvalue of 5
     5 .in. 
    [5.0, 0.0, -1.0]
     (prec=5, at=0) : True
    First Eigenvector of (1,-1)
     (1, -1) .in. 
    [[0.70711, 0.70711, 0.0],
      [0.70711, -0.70711, 0.0]]
     (prec=5, at=1) : True
    Second Eigenvector of (1,1)
     (1, 1) .in. 
    [[0.70711, 0.70711, 0.0],
      [0.70711, -0.70711, 0.0]]
     (prec=5, at=0) : True
    3D, Complex Eigenvalues and Eigenvectors
    First Eigenvalue of 2
     2 .in. 
    [2.0, 1.4000000953674316, 0.19999998807907104]
     (prec=5, at=0) : True
    Second Eigenvalue of (4+3i)/5
     1.4 .in. 
    [2.0, 1.4000000953674316, 0.19999998807907104]
     (prec=5, at=1) : True
    Third Eigenvalue of (4-3i)/5
     0.2 .in. 
    [2.0, 1.4000000953674316, 0.19999998807907104]
     (prec=5, at=2) : True
    First Eigenvector of (0,0,1)
     (0, 0, 1) .in. 
    [[0.0, 0.0, 1.0],
      [0.70711, -0.70711, 0.0],
      [0.70711, 0.70711, 0.0]]
     (prec=5, at=0) : True
    Cross Check Deviatoric and Principal Stresses
    Principal deviatoric and principal-tr()/3 agree
     [6.0, -3.0, -3.0] .eq. [6.0, -3.0, -3.0]
     (prec=5) : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_tensor_expr_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_tensor_expr_py.html new file mode 100644 index 000000000..ad131cffe --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/expressions_tensor_expr_py.html @@ -0,0 +1,262 @@ +expressions/tensor_expr.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  tensor_expr.py
    +#
    +#  Tests:      tensor expressions using simple, constant valued tensors for
    +#              which answers are known. The known answers were obtained by
    +#              scouring the internet for example problems that were worked.
    +#
    +#  Mark C. Miller, Mon Nov 11 14:52:02 PST 2019
    +#
    +# ----------------------------------------------------------------------------
    +import math, re
    +
    +#
    +# Scans a string for possible python iterables, builds a list of them
    +# and returns them with their values rounded to specific numbers of
    +# digits.
    +#
    +def ExtractIterablesFromString(s,pair='()',rnd=4):
    +    retval = []
    +    for q in s.split(pair[0]):
    +        for r in q.split(pair[1]):
    +            if re.match('^[ 0-9eE.,+-]+$', r):
    +                retval.append([round(float(x),rnd) for x in r.split(',')])
    +    return retval
    +
    +def EqualEigVecs(a,b):
    +    r = []
    +    for i in range(len(b)):
    +        if b[i] != 0:
    +            r.append(float(a[i])/float(b[i]))
    +    if min(r) == 0:
    +        return max(r) < pow(10,-Prec+1)
    +    else:
    +        return abs((max(r)/min(r))-1) < pow(10,-Prec+1)
    +
    +#
    +# Creates a group of related expressions; 9 constant scalar expressions and
    +# from them a constant tensor expression with specified centering all in a
    +# sub-menu with of the given name. For 2D meshes, you would still create a
    +# 9 component (3x3) tensor but the z-dimension values would all be zeros.
    +#
    +def CreateConstantTensorExpr(name, meshName, constType, vals):
    +    comps = ("s11","s12","s13","s21","s22","s23","s31","s32","s33")
    +    for i in range(len(vals)):
    +        DefineScalarExpression("%s/%s"%(name,comps[i]),\
    +            "%s_constant(<%s>, %g)"%(constType,meshName,vals[i]))
    +    DefineTensorExpression("%s/tensor"%name,
    +        "{{<%s/s11>,<%s/s12>,<%s/s13>},\
    +          {<%s/s21>,<%s/s22>,<%s/s23>},\
    +          {<%s/s31>,<%s/s32>,<%s/s33>}}"%(name, name, name, name,\
    +              name, name, name, name, name))
    +
    +#
    +# Set precision for rounding operations
    +#
    +Prec = 5
    +
    +#  Since we use the expression system to construct mesh-wide constant values,
    +#  all we need as far as a database is a simple, small mesh. Maybe for both
    +#  two and three dimensions.
    +OpenDatabase(silo_data_path("arbpoly.silo"))
    +meshName = "clipped_hex"
    +
    +TestSection("2D Tensor Maximum Shear")
    +CreateConstantTensorExpr("max_shear_2d", meshName, "nodal",\
    +   (50,  30,   0,\
    +    30, -20,   0,\
    +     0,   0,   0))
    +DefineScalarExpression("max_shear_2d/result", "tensor_maximum_shear(<max_shear_2d/tensor>)")
    +AddPlot("Pseudocolor", "max_shear_2d/result")
    +DrawPlots()
    +Query("MinMax")
    +q = GetQueryOutputObject()
    +TestValueEQ("Maximum Shear 2D", q['min'], 46.09772, Prec)
    +TestValueEQ("Maximum Shear 2D", q['max'], 46.09772, Prec)
    +DeleteAllPlots()
    +
    +TestSection("3D Tensor Maximum Shear")
    +CreateConstantTensorExpr("max_shear", meshName, "nodal",\
    +   (5,   0,   0,\
    +    0,  -6, -12,\
    +    0, -12,   1))
    +DefineScalarExpression("max_shear/result", "tensor_maximum_shear(<max_shear/tensor>)")
    +AddPlot("Pseudocolor", "max_shear/result")
    +DrawPlots()
    +Query("MinMax")
    +q = GetQueryOutputObject()
    +TestValueEQ("Maximum Shear 3D", q['min'], 12.5, Prec)
    +TestValueEQ("Maximum Shear 3D", q['max'], 12.5, Prec)
    +DeleteAllPlots()
    +
    +TestSection("2D Effective Tensor")
    +CreateConstantTensorExpr("eff_tensor_2d", meshName, "nodal",\
    +   (50,  30,   0,\
    +    30, -20,   0,\
    +     0,   0,   0))
    +DefineScalarExpression("eff_tensor_2d/result", "effective_tensor(<eff_tensor_2d/tensor>)")
    +AddPlot("Pseudocolor", "eff_tensor_2d/result")
    +DrawPlots()
    +Query("MinMax")
    +q = GetQueryOutputObject()
    +TestValueEQ("2D Effective Tensor", q['min'], 81.24039, Prec)
    +TestValueEQ("2D Effective Tensor", q['max'], 81.24039, Prec)
    +DeleteAllPlots()
    +
    +TestSection("3D Effective Tensor")
    +CreateConstantTensorExpr("eff_tensor", meshName, "nodal",\
    +   (2,  -3,   4,\
    +   -3,  -5,   1,\
    +    4,   1,   6))
    +DefineScalarExpression("eff_tensor/result", "effective_tensor(<eff_tensor/tensor>)")
    +AddPlot("Pseudocolor", "eff_tensor/result")
    +DrawPlots()
    +Query("MinMax")
    +q = GetQueryOutputObject()
    +TestValueEQ("Effective Tensor", q['min'], 13.0767, Prec)
    +TestValueEQ("Effective Tensor", q['max'], 13.0767, Prec)
    +DeleteAllPlots()
    +
    +TestSection("3D, Symmetric Eigenvalues and Eigenvectors")
    +CreateConstantTensorExpr("eigvals_symm2", meshName, "nodal",\
    +    (2, -1,  0,\
    +    -1,  2, -1,\
    +     0, -1,  2))
    +DefineVectorExpression("eigvals_symm2/result", "eigenvalue(<eigvals_symm2/tensor>)")
    +AddPlot("Vector", "eigvals_symm2/result")
    +DrawPlots()
    +p = PickByNode(0,('eigvals_symm2/result',))
    +eigvals = list(p['eigvals_symm2/result'])
    +TestValueIN("First Eigenvalue of 2", eigvals, 2, Prec)
    +TestValueIN("Second Eigenvalue of 2+sqrt(2)", eigvals, 2+math.sqrt(2), Prec)
    +TestValueIN("Third Eigenvalue of 2-sqrt(2)",  eigvals, 2-math.sqrt(2), Prec)
    +DeleteAllPlots()
    +DefineTensorExpression("eigvals_symm2/result2", "transpose(eigenvector(<eigvals_symm2/tensor>))")
    +AddPlot("Tensor", "eigvals_symm2/result2")
    +DrawPlots()
    +PickByNode(0)
    +s = GetPickOutput()
    +vecs = ExtractIterablesFromString(s, '()', Prec)
    +TestValueIN("First Eigenvector of (1,0,-1)", vecs, (1,0,-1), Prec, EqualEigVecs)
    +TestValueIN("Second Eigenvector of (1,-sqrt(2),1)", vecs, (1,-math.sqrt(2),1), Prec, EqualEigVecs)
    +TestValueIN("Third Eigenvector of (1,sqrt(2),1)", vecs, (1,math.sqrt(2),1), Prec, EqualEigVecs)
    +
    +TestSection("3D, Symmetric Eigenvalues and Eigenvectors with Repeated values")
    +CreateConstantTensorExpr("eigvals_symm", meshName, "nodal",\
    +    (3,2,4,\
    +     2,0,2,\
    +     4,2,3))
    +DefineVectorExpression("eigvals_symm/result", "eigenvalue(<eigvals_symm/tensor>)")
    +AddPlot("Vector", "eigvals_symm/result")
    +DrawPlots()
    +p = PickByNode(0)
    +eigvals = list(p['eigvals_symm/result'])
    +TestValueIN("First Eigenvalue of -1", eigvals, -1, Prec)
    +eigvals.remove(-1)
    +TestValueIN("Second Eigenvalue of -1", eigvals, -1, Prec)
    +TestValueIN("Third Eigenvalue of 8", eigvals, 8, Prec)
    +DeleteAllPlots()
    +DefineTensorExpression("eigvals_symm/result2", "transpose(eigenvector(<eigvals_symm/tensor>))")
    +AddPlot("Tensor", "eigvals_symm/result2")
    +DrawPlots()
    +PickByNode(0)
    +s = GetPickOutput()
    +vecs = ExtractIterablesFromString(s, '()', Prec+1)
    +TestValueIN("First Eigenvector of (1,-2,0)", vecs, (1,-2,0), Prec, EqualEigVecs)
    +TestValueIN("Second Eigenvector of (4,2,-5)", vecs, (4,2,-5), Prec, EqualEigVecs)
    +TestValueIN("Third Eigenvector of (2,1,2)", vecs, (2,1,2), Prec, EqualEigVecs)
    +DeleteAllPlots()
    +
    +# Confirm principal_tensor function gives same result as above
    +TestSection("Cross Principal Stresses and Eigenvalues")
    +DefineVectorExpression("pcomps_symm/result", "principal_tensor(<eigvals_symm/tensor>)")
    +AddPlot("Vector", "pcomps_symm/result")
    +DrawPlots()
    +p = PickByNode(0)
    +pcomps = list(p['pcomps_symm/result'])
    +TestValueIN("First principal component is first eigenvalue", pcomps, -1, Prec)
    +pcomps.remove(-1) # elim the first of the expected two -1 eigvals
    +TestValueIN("Second principal component is second eigenvalue", pcomps, -1, Prec)
    +TestValueIN("Third principal component is third eigenvalue", pcomps, 8, Prec)
    +
    +TestSection("2D, Symmetric Eigenvalues and Eigenvectors")
    +CreateConstantTensorExpr("eigvals_symm_2d", meshName, "nodal",\
    +    (2,  3,  0,\
    +     3,  2,  0,\
    +     0,  0,  0))
    +DefineVectorExpression("eigvals_symm_2d/result", "eigenvalue(<eigvals_symm_2d/tensor>)")
    +AddPlot("Vector", "eigvals_symm_2d/result")
    +DrawPlots()
    +p = PickByNode(0,('eigvals_symm_2d/result',))
    +eigvals = list(p['eigvals_symm_2d/result'])
    +TestValueIN("First Eigenvalue of -1", eigvals, -1, Prec)
    +TestValueIN("Second Eigenvalue of 5", eigvals, 5, Prec)
    +DeleteAllPlots()
    +DefineTensorExpression("eigvals_symm_2d/result2", "transpose(eigenvector(<eigvals_symm_2d/tensor>))")
    +AddPlot("Tensor", "eigvals_symm_2d/result2")
    +DrawPlots()
    +PickByNode(0)
    +s = GetPickOutput()
    +vecs = ExtractIterablesFromString(s, '()', Prec)
    +vecs.remove([0,0,1]) # we have to take out the Z eigenvector
    +TestValueIN("First Eigenvector of (1,-1)", vecs, (1,-1), Prec, EqualEigVecs)
    +TestValueIN("Second Eigenvector of (1,1)", vecs, (1,1), Prec, EqualEigVecs)
    +
    +#
    +# Test a case where eigenvalues are complex (e.g. imaginary)
    +# The real eigenvalues are 2, (4+3i)/5, (4-3i)/5 but what you
    +# get from VisIt is 2, 7/5, 1/5 (as though i==1 in the above).
    +#
    +TestSection("3D, Complex Eigenvalues and Eigenvectors")
    +CreateConstantTensorExpr("eigvals_complex", meshName, "nodal",\
    +    (4.0/5.0, -3.0/5.0,     0,\
    +     3.0/5.0,  4.0/5.0,     0,\
    +        1,        2,        2))
    +DefineVectorExpression("eigvals_complex/result", "eigenvalue(<eigvals_complex/tensor>)")
    +AddPlot("Vector", "eigvals_complex/result")
    +DrawPlots()
    +p = PickByNode(0)
    +eigvals = list(p['eigvals_complex/result'])
    +TestValueIN("First Eigenvalue of 2", eigvals, 2, Prec)
    +TestValueIN("Second Eigenvalue of (4+3i)/5", eigvals, float(4+3)/5.0, Prec)
    +TestValueIN("Third Eigenvalue of (4-3i)/5", eigvals, float(4-3)/5.0, Prec)
    +DeleteAllPlots()
    +DefineTensorExpression("eigvals_complex/result2", "transpose(eigenvector(<eigvals_complex/tensor>))")
    +AddPlot("Tensor", "eigvals_complex/result2")
    +DrawPlots()
    +PickByNode(0)
    +s = GetPickOutput()
    +vecs = ExtractIterablesFromString(s, '()', Prec)
    +TestValueIN("First Eigenvector of (0,0,1)", vecs, (0,0,1), Prec, EqualEigVecs)
    +DeleteAllPlots()
    +
    +# Re-use eigvals_symm here
    +TestSection("Cross Check Deviatoric and Principal Stresses")
    +DefineVectorExpression("eigvals_symm/dev", "principal_deviatoric_tensor(<eigvals_symm/tensor>)")
    +AddPlot("Vector", "eigvals_symm/dev")
    +DrawPlots()
    +PickByNode(0)
    +s = GetPickOutput()
    +dev_vec = ExtractIterablesFromString(s, '()', Prec)
    +DeleteAllPlots()
    +DefineScalarExpression("eigvals_symm/tr3", "trace(<eigvals_symm/tensor>)/3.0")
    +DefineTensorExpression("eigvals_symm/tensor3",\
    +"""
    +    {{<eigvals_symm/tensor>[0][0]-<eigvals_symm/tr3>, <eigvals_symm/tensor>[0][1], <eigvals_symm/tensor>[0][2]},
    +     {<eigvals_symm/tensor>[1][0], <eigvals_symm/tensor>[1][1]-<eigvals_symm/tr3>, <eigvals_symm/tensor>[1][2]},
    +     {<eigvals_symm/tensor>[2][0], <eigvals_symm/tensor>[2][1], <eigvals_symm/tensor>[2][2]-<eigvals_symm/tr3>}}
    +"""
    +)
    +DefineVectorExpression("eigvals_symm/dev2", "principal_tensor(<eigvals_symm/tensor3>)")
    +AddPlot("Vector", "eigvals_symm/dev2")
    +DrawPlots()
    +PickByNode(0)
    +s = GetPickOutput()
    +dev2_vec = ExtractIterablesFromString(s, '()', Prec)
    +DeleteAllPlots()
    +TestValueEQ("Principal deviatoric and principal-tr()/3 agree", dev_vec[0], dev2_vec[0])
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/faulttolerance_badfile.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/faulttolerance_badfile.html new file mode 100644 index 000000000..d02fdb511 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/faulttolerance_badfile.html @@ -0,0 +1,40 @@ + +Results for faulttolerance/badfile.py + +

    Results of VisIt Regression Test - faulttolerance/badfile

    + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    badfile_020 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/faulttolerance_badfile_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/faulttolerance_badfile_py.html new file mode 100644 index 000000000..96bb47c80 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/faulttolerance_badfile_py.html @@ -0,0 +1,34 @@ +faulttolerance/badfile.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Tests: The quality of the error message being produced when opening a bad
    +#         file.
    +#
    +#  Programmer: Hank Childs
    +#  Date:       January 12, 2007
    +#
    +# ----------------------------------------------------------------------------
    +
    +import os
    +
    +TurnOnAllAnnotations()
    +
    +# Make zero-length Silo file.  The Silo reader is smart enough to not
    +# crash, which means we can test the normal error message.
    +f = open("junk.silo", "w")
    +f.close()
    +OpenDatabase("junk.silo")
    +e = GetLastError()
    +#TestText("badfile_01", e)
    +
    +# Make zero-length VTK file.  The VTK reader crashes in this case.  If the
    +# VTK reader is ever improved, then we'll have to locate a reader that
    +# crashes successfully.  (Maybe we'll write one.)
    +f = open("junk.vtk", "w")
    +f.close()
    +OpenDatabase("junk.vtk")
    +e = GetLastError()
    +TestText("badfile_02", e)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/faulttolerance_checkmode.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/faulttolerance_checkmode.html new file mode 100644 index 000000000..f6fab913c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/faulttolerance_checkmode.html @@ -0,0 +1,60 @@ + +Results for faulttolerance/checkmode.py + +

    Results of VisIt Regression Test - faulttolerance/checkmode

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    All mode strings compatible
     "True" .eq. "True" : True
    Engine matches mode
     "True" .eq. "True" : True
    Silo data path matches mode
     "True" .eq. "True" : True
    Scalable setting matches mode
     "True" .eq. "True" : True
    Icet clarg matches mode
     "True" .eq. "True" : True
    Allowdynamic clarg matches mode
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/faulttolerance_checkmode_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/faulttolerance_checkmode_py.html new file mode 100644 index 000000000..1eb089f37 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/faulttolerance_checkmode_py.html @@ -0,0 +1,111 @@ +faulttolerance/checkmode.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Tests: Ensures VisIt and/or the test harness is in the correct "mode".
    +#
    +#  Mark C. Miller, Mon Sep 28 16:24:44 PDT 2020
    +#
    +# Modifications:
    +#    Mark C. Miller, Mon Jan 11 10:32:17 PST 2021
    +#    Replace AssertTrue() with TestValueEQ(..., True)
    +# ----------------------------------------------------------------------------
    +import json
    +import sys
    +
    +#
    +# Obtain mode info directly from top-level command-line args passed to test
    +# suite harness and stored to "clargs" member of TestEnv.params instead of
    +# using any of the alternative logic in the test harness. This ensures we
    +# compare with actual mode(s) requested on command-line.
    +#
    +def GetModeKeysFromClArgs():
    +    clargs = json.loads(TestEnv.params["clargs"])
    +    for i in range(len(clargs)):
    +        if clargs[i] == '-m':
    +            return clargs[i+1].split(',')
    +        elif clargs[i][0:7] == '--mode=':
    +            return clargs[i][8:].split(',')
    +    return ('serial',)
    +
    +#
    +# Ensure all mode keys are compatible
    +#
    +def AllModeKeysCompatible():
    +    if 'serial' in activeModeKeys and 'parallel' in activeModeKeys:
    +        return False
    +    if 'pdb' in activeModeKeys and 'hdf5' in activeModeKeys:
    +        return False
    +    if 'icet' in activeModeKeys and 'parallel' not in activeModeKeys:
    +        return False
    +    return True
    +
    +#
    +# Check that engine matches the specified mode
    +#
    +def EngineMatchesMode():
    +    pa = GetProcessAttributes("engine")
    +    if 'parallel' in activeModeKeys:
    +        if pa.isParallel:
    +            if len(pa.pids) > 1:
    +                return True
    +    else:
    +        if not pa.isParallel:
    +            if len(pa.pids) == 1:
    +                return True
    +    return False
    +
    +#
    +# Check that Silo data path matches its mode
    +#
    +def SiloDataPathMatchesMode():
    +    if 'pdb' in activeModeKeys:
    +        if 'silo_pdb_test_data' in silo_data_path(''):
    +            return True
    +    else:
    +        if 'silo_hdf5_test_data' in silo_data_path(''):
    +            return True
    +    return False
    +
    +#
    +# Ensure rendering mode matches mode
    +#
    +def ScalableSettingMatchesMode():
    +    ra = GetRenderingAttributes()
    +    if 'scalable' in activeModeKeys:
    +        if ra.scalableActivationMode == ra.Always:
    +            return True
    +    else:
    +        if ra.scalableActivationMode == ra.Never:
    +            return True
    +    return False
    +
    +def IcetClargMatchesMode():
    +    if 'icet' in activeModeKeys and '-icet' not in sys.argv:
    +        return False
    +    if '-icet' in sys.argv and 'icet' not in activeModeKeys:
    +        return False
    +    return True
    +
    +def AllowdynamicClargMatchesMode():
    +    if 'dlb' in activeModeKeys and '-allowdynamic' not in sys.argv:
    +        return False
    +    if '-allowdynamic' in sys.argv and 'dlb' not in activeModeKeys:
    +        return False
    +    return True
    +
    +#
    +# Capture clargs and known mode keys from raw data entries stored
    +# to TestEnv.params. Do this once, now, instead of each time we
    +# need to interrogate their contents in the above functions.
    +#
    +activeModeKeys = GetModeKeysFromClArgs()
    +
    +TestValueEQ("All mode strings compatible", AllModeKeysCompatible(), True)
    +TestValueEQ("Engine matches mode", EngineMatchesMode(), True)
    +TestValueEQ("Silo data path matches mode", SiloDataPathMatchesMode(), True)
    +TestValueEQ("Scalable setting matches mode", ScalableSettingMatchesMode(), True)
    +TestValueEQ("Icet clarg matches mode", IcetClargMatchesMode(), True)
    +TestValueEQ("Allowdynamic clarg matches mode", AllowdynamicClargMatchesMode(), True)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/faulttolerance_savewindow.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/faulttolerance_savewindow.html new file mode 100644 index 000000000..8099a4860 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/faulttolerance_savewindow.html @@ -0,0 +1,40 @@ + +Results for faulttolerance/savewindow.py + +

    Results of VisIt Regression Test - faulttolerance/savewindow

    + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    SaveWindowEngineCrash0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/faulttolerance_savewindow_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/faulttolerance_savewindow_py.html new file mode 100644 index 000000000..7a1398148 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/faulttolerance_savewindow_py.html @@ -0,0 +1,57 @@ +faulttolerance/savewindow.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Tests: weather or not SaveWindow can result in a python exception
    +#
    +#  Programmer: Mark C. Miller
    +#  Date:       March 7, 2006 
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Tue Feb 8, 2022
    +#    Use run_dir as outputDirectory instead of current. It is in the
    +#    testing output directory and is cleaned up on exit.
    +#    Added taskkill for Windows to kill the engine.
    +#
    +# ----------------------------------------------------------------------------
    +
    +import os
    +
    +TurnOnAllAnnotations()
    +
    +swa = SaveWindowAttributes()
    +swa.outputToCurrentDirectory = 0
    +swa.outputDirectory = TestEnv.params["run_dir"]
    +SetSaveWindowAttributes(swa)
    +
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +AddPlot("Pseudocolor","pressure")
    +DrawPlots()
    +
    +pa = GetProcessAttributes("engine")
    +enginePid = int(pa.pids[0])
    +
    +s = ""
    +
    +for i in range(6):
    +    TimeSliderSetState(i)
    +    if i == 3:
    +        if sys.platform.startswith("win"):
    +            os.system("taskkill.exe /F /PID %d /T"%enginePid)
    +        else:
    +            os.system("kill -9 %d"%enginePid)
    +    try:
    +        SaveWindow()
    +    except Exception as inst:
    +        s = s + "save %d had exception \"%s\"\n"%(i,inst);
    +    else:
    +        s = s + "save %d succeeded\n"%i;
    +
    +TestText("SaveWindowEngineCrash", s)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cinema-a.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cinema-a.html new file mode 100644 index 000000000..f78612f3c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cinema-a.html @@ -0,0 +1,108 @@ + +Results for hybrid/cinema-a.py + +

    Results of VisIt Regression Test - hybrid/cinema-a

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Cinema spec A static camera
    cinema_0_000 modifications totalling 0 lines
    cinema_0_010 modifications totalling 0 lines
    cinema_0_020 modifications totalling 0 lines
    cinema_0_030.000.00
    Cinema spec A phi-theta camera
    cinema_1_000 modifications totalling 0 lines
    cinema_1_010 modifications totalling 0 lines
    cinema_1_020 modifications totalling 0 lines
    cinema_1_030.000.00
    cinema_1_040.000.00
    cinema_1_050.000.00
    cinema_1_060.000.00
    cinema_1_070.000.00
    cinema_1_080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cinema-a_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cinema-a_py.html new file mode 100644 index 000000000..3752aad92 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cinema-a_py.html @@ -0,0 +1,214 @@ +hybrid/cinema-a.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  cinema-a.py
    +#
    +#  Tests:      Tests various aspects of "visit -cinema".
    +#
    +#  Notes:      
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Feb 15 16:37:20 PST 2018
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Friday December 14, 2018
    +#    Fixes for running on Windows: Use abs_path for short_wave.visit, and cdb,
    +#    use 'repr(db)' when writing script file to preserve '\' escapes.
    +#    Replace forward-slash with back-slash in pattern.
    +#
    +#    Kathleen Biagas, Tue Jun 11 11:44:14 PDT 2019
    +#    Pass '-noconfig' to generated command line in GenerateCinema.
    +#
    +#    Kathleen Biagas, Tue Sep 14 09:51:45 PDT 2021
    +#    Added call to CloseComputeEngine to GenerateCinema method, since the
    +#    cinema script launches its own. Prevents a hang when run in parallel.
    +#
    +#    Kathleen Biagas, Tue Sep 21 17:22:58 PDT 2021
    +#    Removed CloseComputeEngine, it prevented the non-cinema-generation parts
    +#    of the test from running in parallel.  If the nightlies use srun,
    +#    add "--overlap" srun option.  This allows cinema test to succeed in
    +#    parallel with recent changes to slurm.
    +#
    +# ----------------------------------------------------------------------------
    +import os
    +import subprocess
    +
    +def GenerateCinema(cinemaArgs):
    +    args = [TestEnv.params["visit_bin"], "-noconfig", "-cinema"] + cinemaArgs
    +    if TestEnv.params["parallel"]:
    +        args = args + ["-np", "2", "-l", TestEnv.params["parallel_launch"]]
    +        if TestEnv.params["parallel_launch"] == "srun":
    +            args = args + ["-la", "--overlap"]
    +    p = subprocess.check_output(args)
    +    return p
    +
    +def GetFileList(path0):
    +    def gfl(path):
    +        outfiles = []
    +        files = os.listdir(path)
    +        for f in sorted(files):
    +            fpath = os.path.join(path, f)
    +            if os.path.isdir(fpath):
    +                outfiles = outfiles + gfl(fpath)
    +            else:
    +                outfiles = outfiles + [fpath[lpath0+1:]]
    +        return outfiles
    +    lpath0 = len(path0)
    +    return gfl(path0)
    +
    +def ListToString(files):
    +    s = ""
    +    for f in files:
    +        s += f
    +        s += "\n"
    +    return s
    +
    +def GetFile(manyfilenames, filename):
    +    for f in manyfilenames:
    +        if f.find(filename) != -1:
    +            return f
    +    return ""
    +
    +def ReadTextFile(filename):
    +    lines = open(filename, "rt").readlines()
    +    s = ""
    +    for line in lines:
    +        s += line
    +    return s
    +
    +def test0(db):
    +    TestSection("Cinema spec A static camera")
    +    f = open("test0.py", "wt")
    +    f.write("OpenDatabase(%s)\n" % repr(db))
    +    f.write('AddPlot("Pseudocolor", "pressure")\n')
    +    f.write('DrawPlots()\n')
    +    f.write('v = GetView3D()\n')
    +    f.write('v.viewNormal = (-0.569392, 0.672931, 0.472183)\n')
    +    f.write('v.focus = (5, 0.353448, 2.5)\n')
    +    f.write('v.viewUp = (0.562941, 0.737756, -0.372577)\n')
    +    f.write('v.viewAngle = 30\n')
    +    f.write('v.parallelScale = 5.6009\n')
    +    f.write('v.nearPlane = -11.2018\n')
    +    f.write('v.farPlane = 11.2018\n')
    +    f.write('v.imagePan = (0.0431021, 0.0442006)\n')
    +    f.write('v.imageZoom = 1.06444\n')
    +    f.write('v.perspective = 1\n')
    +    f.write('v.eyeAngle = 2\n')
    +    f.write('v.centerOfRotationSet = 0\n')
    +    f.write('v.centerOfRotation = (5, 0.353448, 2.5)\n')
    +    f.write('v.axis3DScaleFlag = 0\n')
    +    f.write('v.axis3DScales = (1, 1, 1)\n')
    +    f.write('v.shear = (0, 0, 1)\n')
    +    f.write('v.windowValid = 1\n')
    +    f.write('SetView3D(v)\n')
    +    f.write('a = GetAnnotationAttributes()\n')
    +    f.write('a.axes3D.visible = 0\n')
    +    f.write('a.axes3D.bboxFlag = 0\n')
    +    f.write('a.axes3D.triadFlag = 0\n')
    +    f.write('a.legendInfoFlag = 0\n')
    +    f.write('a.databaseInfoFlag = 0\n')
    +    f.write('a.userInfoFlag = 0\n')
    +    f.write('SetAnnotationAttributes(a)\n')
    +    f.close()
    +
    +    cdb = abs_path(TestEnv.params["run_dir"], "test0.cdb")
    +    sz = "%dx%d" % (TestEnv.params["width"], TestEnv.params["height"])
    +    args = ["-specification", "A", "-scriptfile", "test0.py", "-output", cdb, "-format", "png", "-geometry", sz, "-camera", "static"]
    +    TestText("cinema_0_00", ListToString(args))
    +
    +    output = GenerateCinema(args)
    +
    +    files = GetFileList(cdb)
    +    TestText("cinema_0_01", ListToString(files))
    +
    +    json = ReadTextFile(os.path.join(cdb, GetFile(files, "info.json")))
    +    TestText("cinema_0_02", json)
    +
    +    firstimg = os.path.join(cdb, GetFile(files, ".png"))
    +    OpenDatabase(firstimg)
    +    AddPlot("Truecolor", "color")
    +    DrawPlots()
    +    v = GetView2D()
    +    v.viewportCoords = (0,1,0,1)
    +    SetView2D(v)
    +    Test("cinema_0_03")
    +    DeleteAllPlots()
    +    CloseDatabase(firstimg)
    +
    +def test1(db):
    +    TestSection("Cinema spec A phi-theta camera")
    +    f = open("test1.py", "wt")
    +    f.write("OpenDatabase(%s)\n" % repr(db))
    +    f.write('AddPlot("Pseudocolor", "pressure")\n')
    +    f.write('DrawPlots()\n')
    +    f.write('a = GetAnnotationAttributes()\n')
    +    f.write('a.axes3D.visible = 0\n')
    +    f.write('a.axes3D.bboxFlag = 0\n')
    +    f.write('a.axes3D.triadFlag = 0\n')
    +    f.write('a.legendInfoFlag = 0\n')
    +    f.write('a.databaseInfoFlag = 0\n')
    +    f.write('a.userInfoFlag = 0\n')
    +    f.write('SetAnnotationAttributes(a)\n')
    +    f.close()
    +
    +    cdb = abs_path(TestEnv.params["run_dir"], "test1.cdb")
    +
    +    sz = "%dx%d" % (TestEnv.params["width"], TestEnv.params["height"])
    +    args = ["-specification", "A", "-scriptfile", "test1.py", "-output", cdb, "-format", "png", "-geometry", sz, "-camera", "phi-theta", "-phi", "6", "-theta", "5", "-stride", "3"]
    +    TestText("cinema_1_00", ListToString(args))
    +
    +    output = GenerateCinema(args)
    +
    +    files = GetFileList(cdb)
    +    TestText("cinema_1_01", ListToString(files))
    +
    +    json = ReadTextFile(os.path.join(cdb, GetFile(files, "info.json")))
    +    TestText("cinema_1_02", json)
    +
    +    # Use the JSON to come up with some filenames to plot. We will vary phi.
    +    params = eval(json)
    +    theta_values = [str(x) for x in params["arguments"]["theta"]["values"]]
    +    phi_values = [str(x) for x in  params["arguments"]["phi"]["values"]]
    +    time_values = params["arguments"]["time"]["values"]
    +
    +    theta = theta_values[len(theta_values)//4]
    +    time = time_values[0]
    +    i = 3
    +    for phi in phi_values:
    +        pattern = params["name_pattern"]
    +        if sys.platform.startswith("win"):
    +            pattern = pattern.replace("/", "\\")
    +        name = pattern.replace("{phi}", phi)
    +        name = name.replace("{theta}", theta)
    +        name = name.replace("{time}", time)
    +
    +        img = os.path.join(cdb, GetFile(files, name))
    +        OpenDatabase(img)
    +        AddPlot("Truecolor", "color")
    +        DrawPlots()
    +        v = GetView2D()
    +        v.viewportCoords = (0,1,0,1)
    +        SetView2D(v)
    +        Test("cinema_1_%02d" % i)
    +        DeleteAllPlots()
    +        CloseDatabase(img)
    +        i = i + 1
    +
    +def MakeShortWave():
    +    db = abs_path("short_wave.visit")
    +    f = open(db, "wt")
    +    for i in range(0, 700, 100):
    +        f.write(silo_data_path("wave%04d.silo" % i) + "\n")
    +    f.close()
    +    return os.path.abspath(db)
    +
    +def main():
    +    db = MakeShortWave()
    +    test0(db)
    +    test1(db)
    +
    +    os.unlink(db)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cinema-c.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cinema-c.html new file mode 100644 index 000000000..d7882866c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cinema-c.html @@ -0,0 +1,210 @@ + +Results for hybrid/cinema-c.py + +

    Results of VisIt Regression Test - hybrid/cinema-c

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Cinema spec C static camera
    cinema_2_000 modifications totalling 0 lines
    cinema_2_010 modifications totalling 0 lines
    cinema_2_020 modifications totalling 0 lines
    cinema_2_03_lum0.000.00
    cinema_2_03_z0.000.00
    cinema_2_03_pressure0.000.00
    cinema_2_03_v0.000.00
    cinema_2_04_lum0.000.00
    cinema_2_04_z0.000.00
    cinema_2_04_pressure0.000.00
    cinema_2_04_v0.000.00
    Cinema spec C phi-theta camera
    cinema_3_000 modifications totalling 0 lines
    cinema_3_010 modifications totalling 0 lines
    cinema_3_020 modifications totalling 0 lines
    cinema_3_03_lum0.000.00
    cinema_3_03_z0.000.00
    cinema_3_03_pressure0.000.00
    cinema_3_03_v0.000.00
    cinema_3_04_lum0.000.00
    cinema_3_04_z0.000.00
    cinema_3_04_pressure0.000.00
    cinema_3_04_v0.000.00
    cinema_3_05_lum0.000.00
    cinema_3_05_z0.000.00
    cinema_3_05_pressure0.000.00
    cinema_3_05_v0.000.00
    cinema_3_06_lum0.000.00
    cinema_3_06_z0.000.00
    cinema_3_06_pressure0.000.00
    cinema_3_06_v0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cinema-c_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cinema-c_py.html new file mode 100644 index 000000000..7d998719b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cinema-c_py.html @@ -0,0 +1,258 @@ +hybrid/cinema-c.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  cinema-a.py
    +#
    +#  Tests:      Tests various aspects of "visit -cinema".
    +#
    +#  Notes:      
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Feb 15 16:37:20 PST 2018
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Tue Jun 11 11:44:14 PDT 2019
    +#    Pass '-noconfig' to generated command line in GenerateCinema.
    +#
    +#    Kathleen Biagas, Tue Apr 13 2021
    +#    Port to python-3. Fix for Windows: Use abs_path for short_wave.visit,
    +#    use 'repr(db)' when writing script file to preserve '\' escapes.
    +#
    +#    Kathleen Biagas, Tue Sep 14 09:51:45 PDT 2021
    +#    Added call to CloseComputeEngine to GenerateCinema method, since the
    +#    cinema script launches its own. Prevents a hang when run in parallel.
    +#
    +#    Kathleen Biagas, Tue Sep 21 17:22:58 PDT 2021
    +#    Removed CloseComputeEngine, it prevented the non-cinema-generation parts
    +#    of the test from running in parallel.  If the nightlies use srun,
    +#    add "--overlap" srun option.  This allows cinema test to succeed in
    +#    parallel with recent changes to slurm.
    +#
    +# ----------------------------------------------------------------------------
    +
    +import math, os, string, subprocess, zlib
    +
    +def GenerateCinema(cinemaArgs):
    +    args = [TestEnv.params["visit_bin"], "-noconfig", "-cinema"] + cinemaArgs
    +    if TestEnv.params["parallel"]:
    +        args = args + ["-np", "2", "-l", TestEnv.params["parallel_launch"]]
    +        if TestEnv.params["parallel_launch"] == "srun":
    +            args = args + ["-la", "--overlap"]
    +    p = subprocess.check_output(args)
    +    return p
    +
    +def GetFileList(path0):
    +    def gfl(path):
    +        outfiles = []
    +        files = os.listdir(path)
    +        for f in sorted(files):
    +            fpath = os.path.join(path, f)
    +            if os.path.isdir(fpath):
    +                outfiles = outfiles + gfl(fpath)
    +            else:
    +                outfiles = outfiles + [fpath[lpath0+1:]]
    +        return outfiles
    +    lpath0 = len(path0)
    +    return gfl(path0)
    +
    +def ListToString(files):
    +    s = ""
    +    for f in files:
    +        s += f
    +        s += "\n"
    +    return s
    +
    +def GetFile(manyfilenames, filename):
    +    for f in manyfilenames:
    +        if f.find(filename) != 0:
    +            return f
    +    return ""
    +
    +def ReadTextFile(filename):
    +    lines = open(filename, "rt").readlines()
    +    s = ""
    +    for line in lines:
    +        s += line
    +    return s
    +
    +def write_setup_plot(f):
    +    f.write('AddPlot("Pseudocolor", "pressure")\n')
    +    f.write('AddOperator("Clip")\n')
    +    f.write('clip = GetOperatorOptions(0)\n')
    +    f.write('clip.plane1Normal = (0,0,1)\n')
    +    f.write('clip.plane1Origin = (0,0,2.5)\n')
    +    f.write('SetOperatorOptions(clip)\n')
    +    f.write('AddPlot("Pseudocolor", "pressure", 1, 1)\n')
    +    f.write('clip.plane1Normal = (0,0,-1)\n')
    +    f.write('SetOperatorOptions(clip)\n')
    +    f.write('DrawPlots()\n')
    +    f.write('a = GetAnnotationAttributes()\n')
    +    f.write('a.axes3D.visible = 0\n')
    +    f.write('a.axes3D.bboxFlag = 0\n')
    +    f.write('a.axes3D.triadFlag = 0\n')
    +    f.write('a.legendInfoFlag = 0\n')
    +    f.write('a.databaseInfoFlag = 0\n')
    +    f.write('a.userInfoFlag = 0\n')
    +    f.write('a.backgroundColor=(0,0,0,255)\n')
    +    f.write('a.backgroundMode=a.Solid\n')
    +    f.write('SetAnnotationAttributes(a)\n')
    +
    +def test_Z_file(testname, varname, imagefilename, domask):
    +    """
    +    Decompress a float32 buffer, make a BOV file from it, and plot it.
    +    """
    +    cbytes = open(imagefilename, "rb").read()
    +    fbytes = zlib.decompress(cbytes)
    +    datfile = testname + ".dat"
    +    bovfile = testname + ".bov"
    +    f = open(datfile, "wb")
    +    f.write(fbytes)
    +    f.close()
    +    imagesize = int(math.sqrt(len(fbytes)/4))
    +    f = open(bovfile, "wt")
    +    f.write("TIME: 0\n")
    +    f.write("DATA_FILE: %s\n" % datfile)
    +    f.write("DATA_SIZE: %d %d 1\n" % (imagesize, imagesize))
    +    f.write("DATA_FORMAT: FLOAT\n")
    +    f.write("VARIABLE: %s\n" % varname)
    +    f.write("DATA_ENDIAN: LITTLE\n")
    +    f.write("CENTERING: zonal\n")
    +    f.write("BRICK_ORIGIN: 0 0 0\n")
    +    f.write("BRICK_SIZE: 1 1 1\n")
    +    f.close()
    +    OpenDatabase(bovfile)
    +    if domask:
    +        # Mask out values larger than 255 so we can see the values.
    +        # I'd mask on Z but I don't want to do cmfe.
    +        DefineScalarExpression("maskvar", "if(gt(%s, 255), 0., %s)" % (varname,varname))
    +        AddPlot("Pseudocolor", "maskvar")
    +    else:
    +        AddPlot("Pseudocolor", varname)
    +    AddOperator("Transform")
    +    t = TransformAttributes()
    +    t.doScale = 1
    +    t.scaleY = -1
    +    SetOperatorOptions(t)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView2D()
    +    v.viewportCoords = (0,1,0,1)
    +    SetView2D(v)
    +    Test(testname + "_" + varname)
    +    DeleteAllPlots()
    +    CloseDatabase(bovfile)
    +
    +    os.unlink(datfile)
    +    os.unlink(bovfile)
    +
    +def test_composite(testname, imagepath, scalars):
    +    """
    +    Make test images for a composite image.
    +    """
    +    img0 = os.path.join(imagepath, "image=0.png")
    +    img1 = os.path.join(imagepath, "image=1.Z")
    +    OpenDatabase(img0)
    +    AddPlot("Truecolor", "color")
    +    DrawPlots()
    +    ResetView()
    +    v = GetView2D()
    +    v.viewportCoords = (0,1,0,1)
    +    SetView2D(v)
    +    Test(testname + "_lum")
    +    DeleteAllPlots()
    +    CloseDatabase(img0)
    +
    +    test_Z_file(testname, "z", os.path.join(imagepath, "image=1.Z"), 0)
    +    idx = 2
    +    for s in scalars:
    +        test_Z_file(testname, s, os.path.join(imagepath, "image=%d.Z" % idx), 1)
    +        idx = idx + 1
    +
    +def test2(db):
    +    TestSection("Cinema spec C static camera")
    +    f = open("test2.py", "wt")
    +    f.write('OpenDatabase(%s)\n' % repr(db))
    +    write_setup_plot(f)
    +    f.write('v = GetView3D()\n')
    +    f.write('v.viewNormal = (-0.569392, 0.672931, 0.472183)\n')
    +    f.write('v.focus = (5, 0.353448, 2.5)\n')
    +    f.write('v.viewUp = (0.562941, 0.737756, -0.372577)\n')
    +    f.write('v.viewAngle = 30\n')
    +    f.write('v.parallelScale = 5.6009\n')
    +    f.write('v.nearPlane = -11.2018\n')
    +    f.write('v.farPlane = 11.2018\n')
    +    f.write('v.imagePan = (0.0431021, 0.0442006)\n')
    +    f.write('v.imageZoom = 1.06444\n')
    +    f.write('v.perspective = 1\n')
    +    f.write('v.eyeAngle = 2\n')
    +    f.write('v.centerOfRotationSet = 0\n')
    +    f.write('v.centerOfRotation = (5, 0.353448, 2.5)\n')
    +    f.write('v.axis3DScaleFlag = 0\n')
    +    f.write('v.axis3DScales = (1, 1, 1)\n')
    +    f.write('v.shear = (0, 0, 1)\n')
    +    f.write('v.windowValid = 1\n')
    +    f.write('SetView3D(v)\n')
    +    f.close()
    +
    +    cdb = "test2.cdb"
    +    scalars = ("pressure", "v")
    +    sz = "%dx%d" % (TestEnv.params["width"], TestEnv.params["height"])
    +    args = ["-specification", "C", "-docomposite", "-scriptfile", "test2.py", "-output", cdb, "-format", "png", "-geometry", sz, "-camera", "static", "-var", scalars[0], "-var", scalars[1]]
    +    TestText("cinema_2_00", ListToString(args))
    +
    +    output = GenerateCinema(args)
    +
    +    files = GetFileList(cdb)
    +    TestText("cinema_2_01", ListToString(files))
    +
    +    json = ReadTextFile(os.path.join(cdb, GetFile(files, "info.json")))
    +    TestText("cinema_2_02", json)
    +
    +    # Test a couple of composite images
    +    test_composite("cinema_2_03", os.path.join(cdb, "image","time=3","vis=0"), scalars)
    +    test_composite("cinema_2_04", os.path.join(cdb, "image","time=3","vis=1"), scalars)
    +
    +
    +def test3(db):
    +    TestSection("Cinema spec C phi-theta camera")
    +    f = open("test3.py", "wt")
    +    f.write('OpenDatabase(%s)\n' % repr(db))
    +    write_setup_plot(f)
    +    f.close()
    +
    +    cdb = "test3.cdb"
    +    scalars = ("pressure", "v")
    +    sz = "%dx%d" % (TestEnv.params["width"], TestEnv.params["height"])
    +    args = ["-specification", "C", "-docomposite", "-scriptfile", "test3.py", "-output", cdb, "-format", "png", "-geometry", sz, "-camera", "phi-theta", "-phi", "6", "-theta", "5", "-var", scalars[0], "-var", scalars[1]]
    +    TestText("cinema_3_00", ListToString(args))
    +
    +    output = GenerateCinema(args)
    +
    +    files = GetFileList(cdb)
    +    TestText("cinema_3_01", ListToString(files))
    +
    +    json = ReadTextFile(os.path.join(cdb, GetFile(files, "info.json")))
    +    TestText("cinema_3_02", json)
    +
    +    # Test a couple of composite images
    +    test_composite("cinema_3_03", os.path.join(cdb, "image","phi=0","theta=0","time=0","vis=0"), scalars)
    +    test_composite("cinema_3_04", os.path.join(cdb, "image","phi=0","theta=0","time=0","vis=1"), scalars)
    +    test_composite("cinema_3_05", os.path.join(cdb, "image","phi=3","theta=1","time=0","vis=0"), scalars)
    +    test_composite("cinema_3_06", os.path.join(cdb, "image","phi=3","theta=1","time=0","vis=1"), scalars)
    +
    +
    +def MakeShortWave(incr):
    +    db = abs_path("short_wave.visit")
    +    f = open(db, "wt")
    +    for i in range(0, 700, incr):
    +        f.write(silo_data_path("wave%04d.silo" % i) + "\n")
    +    f.close()
    +    return os.path.abspath(db)
    +
    +def main():
    +    test2(MakeShortWave(100))
    +    test3(MakeShortWave(500))
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cleanzonesonly.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cleanzonesonly.html new file mode 100644 index 000000000..8992c5137 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cleanzonesonly.html @@ -0,0 +1,120 @@ + +Results for hybrid/cleanzonesonly.py + +

    Results of VisIt Regression Test - hybrid/cleanzonesonly

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Multicolor mode
    hybrid_cleanzonesonly_010.000.00
    hybrid_cleanzonesonly_020.000.00
    hybrid_cleanzonesonly_030.000.00
    Continuous colortable mode
    hybrid_cleanzonesonly_040.000.00
    hybrid_cleanzonesonly_050.000.00
    hybrid_cleanzonesonly_060.000.00
    Discrete colortable mode
    hybrid_cleanzonesonly_070.000.00
    hybrid_cleanzonesonly_080.000.00
    hybrid_cleanzonesonly_090.000.00
    Singlecolor mode
    hybrid_cleanzonesonly_100.000.00
    hybrid_cleanzonesonly_110.000.00
    hybrid_cleanzonesonly_120.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cleanzonesonly_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cleanzonesonly_py.html new file mode 100644 index 000000000..2ce74461c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cleanzonesonly_py.html @@ -0,0 +1,135 @@ +hybrid/cleanzonesonly.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  cleanzonesonly.py
    +#
    +#  Tests:      plots     - filled boundary
    +#
    +#  Defect ID:  '5135
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       July  6, 2004
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +# Turn off all annotation
    +a = AnnotationAttributes()
    +TurnOffAllAnnotations(a)
    +SetAnnotationAttributes(a)
    +
    +# -----------------------------------------------------------------------------
    +#    multicolor mode -- normal plot, then CZO on, then CZO off
    +# -----------------------------------------------------------------------------
    +TestSection("Multicolor mode")
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +AddPlot("FilledBoundary", "mat1");
    +DrawPlots()
    +
    +v=GetView2D()
    +v.viewportCoords=(0.3, 0.9, 0.15, 0.9)
    +SetView2D(v)
    +
    +Test("hybrid_cleanzonesonly_01")
    +
    +m = FilledBoundaryAttributes()
    +m.cleanZonesOnly = 1
    +SetPlotOptions(m)
    +
    +Test("hybrid_cleanzonesonly_02")
    +
    +m.cleanZonesOnly = 0
    +SetPlotOptions(m)
    +
    +Test("hybrid_cleanzonesonly_03")
    +
    +DeleteAllPlots()
    +
    +# -----------------------------------------------------------------------------
    +#    continuous colortable mode -- normal plot, then CZO on, then CZO off
    +# -----------------------------------------------------------------------------
    +TestSection("Continuous colortable mode")
    +AddPlot("FilledBoundary", "mat1");
    +
    +m = FilledBoundaryAttributes();
    +m.colorType = m.ColorByColorTable
    +m.colorTableName = 'calewhite'
    +m.mixedColor=(0,100,100,255)
    +SetPlotOptions(m)
    +DrawPlots()
    +
    +Test("hybrid_cleanzonesonly_04")
    +
    +m = FilledBoundaryAttributes()
    +m.cleanZonesOnly = 1
    +SetPlotOptions(m)
    +
    +Test("hybrid_cleanzonesonly_05")
    +
    +m.cleanZonesOnly = 0
    +SetPlotOptions(m)
    +
    +Test("hybrid_cleanzonesonly_06")
    +
    +DeleteAllPlots()
    +
    +# -----------------------------------------------------------------------------
    +#    discrete colortable mode -- normal plot, then CZO on, then CZO off
    +# -----------------------------------------------------------------------------
    +TestSection("Discrete colortable mode")
    +AddPlot("FilledBoundary", "mat1");
    +
    +m = FilledBoundaryAttributes();
    +m.colorType = m.ColorByColorTable
    +m.colorTableName = 'levels'
    +m.mixedColor=(0,0,0,255)
    +SetPlotOptions(m)
    +DrawPlots()
    +
    +Test("hybrid_cleanzonesonly_07")
    +
    +m = FilledBoundaryAttributes()
    +m.cleanZonesOnly = 1
    +SetPlotOptions(m)
    +
    +Test("hybrid_cleanzonesonly_08")
    +
    +m.cleanZonesOnly = 0
    +SetPlotOptions(m)
    +
    +Test("hybrid_cleanzonesonly_09")
    +
    +DeleteAllPlots()
    +
    +# -----------------------------------------------------------------------------
    +#    singlecolor mode -- normal plot, then CZO on, then CZO off
    +# -----------------------------------------------------------------------------
    +TestSection("Singlecolor mode")
    +AddPlot("FilledBoundary", "mat1");
    +
    +m = FilledBoundaryAttributes();
    +m.colorType = m.ColorBySingleColor
    +m.singleColor = (255, 0, 0, 255)
    +SetPlotOptions(m)
    +DrawPlots()
    +
    +Test("hybrid_cleanzonesonly_10")
    +
    +m = FilledBoundaryAttributes()
    +m.cleanZonesOnly = 1
    +SetPlotOptions(m)
    +
    +Test("hybrid_cleanzonesonly_11")
    +
    +m.cleanZonesOnly = 0
    +SetPlotOptions(m)
    +
    +Test("hybrid_cleanzonesonly_12")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_clonefirstref.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_clonefirstref.html new file mode 100644 index 000000000..d9263f7b5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_clonefirstref.html @@ -0,0 +1,72 @@ + +Results for hybrid/clonefirstref.py + +

    Results of VisIt Regression Test - hybrid/clonefirstref

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    clonefirstref_000.000.00
    clonefirstref_010 modifications totalling 0 lines
    clonefirstref_020.000.00
    clonefirstref_030.000.00
    clonefirstref_040 modifications totalling 0 lines
    clonefirstref_050.000.00
    clonefirstref_060 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_clonefirstref_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_clonefirstref_py.html new file mode 100644 index 000000000..c751f7160 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_clonefirstref_py.html @@ -0,0 +1,62 @@ +hybrid/clonefirstref.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  clonefirstref.py
    +#
    +#  Tests:      mesh      - 2D, curvilinear, single domain
    +#              plots     - FilledBoundary
    +#              databases - PDB
    +#
    +#  Purpose:    This test case tests the viewer's ability to consider a window
    +#              that had been referenced as unreferenced if its plot list has
    +#              no active source.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Feb 18 14:01:48 PST 2005
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Look at the first few lines of the string representation of the
    +# WindowInformation to see the list of time sliders, etc.
    +#
    +def TestWindowInformation(testname):
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 5 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    for i in range(5):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    TestText(testname, s)
    +
    +SetCloneWindowOnFirstRef(1)
    +SetWindowLayout(2)
    +SetActiveWindow(2)
    +OpenDatabase(data_path("pdb_test_data/dbB00.pdb"))
    +
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +Test("clonefirstref_00")
    +TestWindowInformation("clonefirstref_01")
    +
    +# Make sure that the database and time sliders, etc got copied to window 1,
    +# even though it had been "referenced" already. Without the fix, VisIt used
    +# to complain about no database being open.
    +SetActiveWindow(1)
    +Test("clonefirstref_02")
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +Test("clonefirstref_03")
    +TestWindowInformation("clonefirstref_04")
    +
    +# Make sure that we can move through time.
    +SetTimeSliderState(5)
    +Test("clonefirstref_05")
    +TestWindowInformation("clonefirstref_06")
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_conditional.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_conditional.html new file mode 100644 index 000000000..982b9e8a4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_conditional.html @@ -0,0 +1,72 @@ + +Results for hybrid/conditional.py + +

    Results of VisIt Regression Test - hybrid/conditional

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    conditional_010.000.00
    conditional_020.000.00
    conditional_030.000.00
    conditional_040.000.00
    conditional_050.000.00
    conditional_060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_conditional_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_conditional_py.html new file mode 100644 index 000000000..73b260332 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_conditional_py.html @@ -0,0 +1,96 @@ +hybrid/conditional.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  expressions.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, single domain
    +#              plots     - Pseudocolor
    +#              operators - Threshold
    +#
    +#  Defect ID:  '3655
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 21, 2003
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Eddie Rusu, Tue Apr 13 12:08:59 PDT 2021
    +#    Changed Pseudocolor CurrentPlot to ActualData.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +
    +DefineScalarExpression("bigun", 'if(and(gt(nmats(mat1), 1.), gt(matvf(mat1, "4"), 0.)), d, 0.)')
    +
    +AddPlot("Pseudocolor", "bigun")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.17, 0.74, 0.64)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.31, 0.65, -0.68)
    +v.parallelScale = 0.866
    +v.nearPlane = -1.73
    +v.farPlane = 1.73
    +SetView3D(v)
    +
    +Test("conditional_01")
    +
    +t = ThresholdAttributes()
    +t.lowerBounds = (0.01)
    +t.upperBounds = (0.99)
    +SetDefaultOperatorOptions(t)
    +AddOperator("Threshold")
    +
    +pc_atts = PseudocolorAttributes()
    +pc_atts.limitsMode = pc_atts.ActualData
    +SetPlotOptions(pc_atts)
    +DrawPlots()
    +Test("conditional_02")
    +
    +DeleteAllPlots()
    +
    +DefineVectorExpression("vel2", "{ if(lt(u, 0), u, -u/2), if(gte(v, -0.333), v, -v/4), w}")
    +AddPlot("Vector", "vel2")
    +vec_atts = VectorAttributes()
    +vec_atts.nVectors = 100
    +SetPlotOptions(vec_atts)
    +DrawPlots()
    +
    +Test("conditional_03")
    +
    +DeleteAllPlots()
    +
    +DefineScalarExpression("eq", "if(eq(u, v), abs(w), 0.)")
    +AddPlot("Pseudocolor", "eq")
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("conditional_04")
    +
    +DefineScalarExpression("close", "if(lte(abs(u-v), 0.05), abs(w), 0.)")
    +ChangeActivePlotsVar("close")
    +
    +Test("conditional_05")
    +
    +
    +DefineScalarExpression("close_and_far", "if(or(lte(abs(u-v), 0.05), gte(abs(u-v), 1.)), abs(w), 0.)")
    +ChangeActivePlotsVar("close_and_far")
    +
    +Test("conditional_06")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_conn_cmfe.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_conn_cmfe.html new file mode 100644 index 000000000..ed9b076eb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_conn_cmfe.html @@ -0,0 +1,102 @@ + +Results for hybrid/conn_cmfe.py + +

    Results of VisIt Regression Test - hybrid/conn_cmfe

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    conn_cmfe_010.000.00
    conn_cmfe_020.000.00
    conn_cmfe_030.000.00
    conn_cmfe_040 modifications totalling 0 lines
    conn_cmfe_050 modifications totalling 0 lines
    conn_cmfe_060 modifications totalling 0 lines
    conn_cmfe_070 modifications totalling 0 lines
    conn_cmfe_080 modifications totalling 0 lines
    conn_cmfe_090.000.00
    conn_cmfe_100 modifications totalling 0 lines
    conn_cmfe_110 modifications totalling 0 lines
    conn_cmfe_120.000.00
    conn_cmfe_130 modifications totalling 0 lines
    conn_cmfe_140 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_conn_cmfe_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_conn_cmfe_py.html new file mode 100644 index 000000000..bb9dd1bfe --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_conn_cmfe_py.html @@ -0,0 +1,138 @@ +hybrid/conn_cmfe.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  conn_cmfe.py
    +#
    +#  Defect ID:  '6616
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 30, 2005
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Tue Sep 20 13:15:11 PDT 2005
    +#    Test for non-existent databases, especially those with short names ['6616]
    +#
    +#    Hank Childs, Fri Oct  7 17:14:07 PDT 2005
    +#    Test error message for Eulerian material selection.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Cyrus Harrison, Wed Aug 25 14:25:13 PDT 2010
    +#    SIL id shift (from 1 to 2) due to changes in SIL generation.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("wave0200.silo"))
    +
    +
    +
    +# Test general capability.
    +DefineScalarExpression("cmfe", "conn_cmfe(<%s:pressure>, quadmesh)" % cmfe_silo_data_path("wave0020.silo"))
    +AddPlot("Pseudocolor", "cmfe")
    +DrawPlots()
    +Test("conn_cmfe_01")
    +
    +# Test using the expression as a secondary variable.
    +ChangeActivePlotsVar("pressure")
    +AddOperator("Threshold")
    +t = ThresholdAttributes()
    +t.lowerBounds = (-1.0)
    +t.upperBounds = (0.1)
    +t.listedVarNames = ("cmfe")
    +SetOperatorOptions(t)
    +DrawPlots()
    +Test("conn_cmfe_02")
    +
    +# Test using cmfe in another expression.
    +DefineVectorExpression("disp", "{0, 3*cmfe, 0}")
    +RemoveLastOperator()
    +d = DisplaceAttributes()
    +d.variable = "disp"
    +SetDefaultOperatorOptions(d)
    +AddOperator("Displace")
    +DrawPlots()
    +Test("conn_cmfe_03")
    +
    +RemoveLastOperator()
    +ChangeActivePlotsVar("cmfe")
    +DrawPlots()
    +
    +Query("MinMax")
    +t = GetQueryOutputString()
    +TestText("conn_cmfe_04", t)
    +
    +# Now test error conditions.
    +DefineScalarExpression("cmfe2", "conn_cmfe(pressure, quadmesh)")
    +ChangeActivePlotsVar("cmfe2")
    +DrawPlots()
    +t = GetLastError()
    +TestText("conn_cmfe_05", t)
    +
    +DefineScalarExpression("cmfe3", "conn_cmfe(<bad_file.silo:a_var>, quadmesh)")
    +ChangeActivePlotsVar("cmfe3")
    +DrawPlots()
    +t = GetLastError()
    +TestText("conn_cmfe_06", t)
    +
    +DefineScalarExpression("cmfe4", "conn_cmfe(<%s:pressure>, quadmesh, pressure)" %  cmfe_silo_data_path("wave0100.silo"))
    +ChangeActivePlotsVar("cmfe4")
    +DrawPlots()
    +t = GetLastError()
    +TestText("conn_cmfe_07", t)
    +
    +DefineScalarExpression("cmfe5", "conn_cmfe(<%s:pressure>)" % cmfe_silo_data_path("wave0100.silo"))
    +ChangeActivePlotsVar("cmfe5")
    +DrawPlots()
    +t = GetLastError()
    +TestText("conn_cmfe_08", t)
    +
    +# And one more cool picture just for grins.
    +DefineScalarExpression("cmfe6", "conn_cmfe(<%s:pressure>, quadmesh)" % cmfe_silo_data_path("wave0570.silo"))
    +DefineScalarExpression("max", "if(ge(pressure, cmfe6), pressure, cmfe6)")
    +ChangeActivePlotsVar("max")
    +DrawPlots()
    +Test("conn_cmfe_09")
    +
    +# Invalid variable in new database.
    +DefineScalarExpression("cmfe7", "conn_cmfe(<%s:pressure>, quadmesh)" % cmfe_silo_data_path("globe.silo"))
    +ChangeActivePlotsVar("cmfe7")
    +t = GetLastError()
    +TestText("conn_cmfe_10", t)
    +
    +# Now a good variable, but connectivity doesn't match.
    +DefineScalarExpression("cmfe8", "conn_cmfe(<%s:t>, quadmesh)" % cmfe_silo_data_path("globe.silo"))
    +ChangeActivePlotsVar("cmfe8")
    +DrawPlots()
    +t = GetLastError()
    +TestText("conn_cmfe_11", t)
    +
    +# Test multiple CMFEs
    +DefineScalarExpression("cmfe9", "conn_cmfe(<%s:pressure>, quadmesh)" % cmfe_silo_data_path("wave0100.silo"))
    +DefineScalarExpression("max2", "if(ge(max, cmfe9), max, cmfe9)")
    +ChangeActivePlotsVar("max2")
    +DrawPlots()
    +Test("conn_cmfe_12")
    +
    +DefineScalarExpression("cmfe10", "conn_cmfe(<30:d>, quadmesh)")
    +ChangeActivePlotsVar("cmfe10")
    +t = GetLastError()
    +TestText("conn_cmfe_13", t)
    +
    +ChangeActivePlotsVar("cmfe")
    +DrawPlots()
    +s = SILRestriction()
    +s.TurnOffAll()
    +s.TurnOnSet(2)
    +SetPlotSILRestriction(s)
    +t = GetLastError()
    +TestText("conn_cmfe_14", t)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_coord_expr.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_coord_expr.html new file mode 100644 index 000000000..ec81a1092 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_coord_expr.html @@ -0,0 +1,84 @@ + +Results for hybrid/coord_expr.py + +

    Results of VisIt Regression Test - hybrid/coord_expr

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    coord_expr_010.000.00
    coord_expr_020.000.00
    coord_expr_030.000.00
    coord_expr_040.000.00
    coord_expr_050.000.00
    coord_expr_060.000.00
    coord_expr_070.000.00
    coord_expr_080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_coord_expr_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_coord_expr_py.html new file mode 100644 index 000000000..249898fc3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_coord_expr_py.html @@ -0,0 +1,65 @@ +hybrid/coord_expr.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  coord_expr.py
    +#
    +#  Tests:      mesh      - 3D unstructured, multi- domain
    +#              plots     - Pseudocolor
    +#
    +#  Defect ID:  '5994, '5995
    +#
    +#  Programmer: Hank Childs
    +#  Date:       June 30, 2005
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +
    +DefineScalarExpression("polar_radius", "polar_radius(mesh1)")
    +AddPlot("Pseudocolor", "polar_radius")
    +DrawPlots()
    +Test("coord_expr_01")
    +
    +DefineScalarExpression("zero", "polar_radius-polar(mesh1)[0]")
    +ChangeActivePlotsVar("zero")
    +Test("coord_expr_02")
    +
    +DefineScalarExpression("polar_theta", "polar_theta(mesh1)")
    +ChangeActivePlotsVar("polar_theta")
    +Test("coord_expr_03")
    +
    +DefineScalarExpression("polar_phi", "polar_phi(mesh1)")
    +ChangeActivePlotsVar("polar_phi")
    +Test("coord_expr_04")
    +
    +DefineScalarExpression("cylindrical_radius", "cylindrical_radius(mesh1)")
    +ChangeActivePlotsVar("cylindrical_radius")
    +Test("coord_expr_05")
    +
    +DefineScalarExpression("cylindrical_theta", "cylindrical_theta(mesh1)")
    +ChangeActivePlotsVar("cylindrical_theta")
    +Test("coord_expr_06")
    +
    +DeleteExpression("zero")
    +# Not really zero -- this is the diagonal
    +DefineScalarExpression("zero", "polar_radius-cylindrical_radius")
    +ChangeActivePlotsVar("zero")
    +Test("coord_expr_07")
    +
    +DeleteActivePlots()
    +
    +DefineVectorExpression("c", "cylindrical(mesh1)")
    +AddPlot("Vector", "c")
    +DrawPlots()
    +Test("coord_expr_08")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_curve_anim.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_curve_anim.html new file mode 100644 index 000000000..5ca13ac27 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_curve_anim.html @@ -0,0 +1,76 @@ + +Results for hybrid/curve_anim.py + +

    Results of VisIt Regression Test - hybrid/curve_anim

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    curve_anim10.000.00
    curve_anim20.590.02
    curve_anim30.870.02
    curve_anim40.000.00
    curve_anim50.000.00
    curve_anim60.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_curve_anim_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_curve_anim_py.html new file mode 100644 index 000000000..0257f8ce0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_curve_anim_py.html @@ -0,0 +1,77 @@ +hybrid/curve_anim.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  curve_anim.py
    +#
    +#  Tests:      mesh      - polygonal line from .curve file.
    +#              plots     - curve
    +#              operators - none
    +#
    +#  Defect ID:  '2973
    +#
    +#  Programmer: Hank Childs
    +#  Date:       January 15, 2003
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Mon Aug  4 09:51:40 PDT 2003
    +#    Curves are no longer valid subsets, but they are now curve plots.
    +#
    +#    Brad Whitlock, Wed Mar 9 09:15:30 PDT 2005
    +#    Removed deprecated functions.
    +#
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#    individually to match current baseline results.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(data_path("curve_test_data/curve.visit"))
    +
    +curveAtts = CurveAttributes()
    +curveAtts.curveColorSource = curveAtts.Custom
    +AddPlot("Curve", "flat")
    +curveAtts.curveColor = (0, 255, 0, 255)
    +SetPlotOptions(curveAtts)
    +AddPlot("Curve", "going_up")
    +curveAtts.curveColor = (255, 0, 0, 255)
    +SetPlotOptions(curveAtts)
    +AddPlot("Curve", "going_down")
    +curveAtts.curveColor = (0, 0, 255, 255)
    +SetPlotOptions(curveAtts)
    +AddPlot("Curve", "parabolic")
    +curveAtts.curveColor = (0, 255, 255, 255)
    +SetPlotOptions(curveAtts)
    +
    +SetTimeSliderState(40)
    +DrawPlots()
    +# This additional set frame is so that the saved
    +# image is correct.
    +SetTimeSliderState(40)
    +Test("curve_anim1")
    +
    +SetTimeSliderState(99)
    +Test("curve_anim2")
    +
    +SetActivePlots(3)
    +DeleteActivePlots()
    +
    +Test("curve_anim3")
    +
    +SetTimeSliderState(40)
    +Test("curve_anim4")
    +
    +SetActivePlots(0)
    +DeleteActivePlots()
    +Test("curve_anim5")
    +
    +SetTimeSliderState(5)
    +AddPlot("Curve", "flat")
    +curveAtts.curveColor = (0, 255, 0, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +Test("curve_anim6")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_curve_expressions.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_curve_expressions.html new file mode 100644 index 000000000..1f07f0719 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_curve_expressions.html @@ -0,0 +1,63 @@ + +Results for hybrid/curve_expressions.py + +

    Results of VisIt Regression Test - hybrid/curve_expressions

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    binary operations on curves
    curve_exp_bin_000.000.00
    curve_exp_bin_010.000.00
    curve_exp_bin_020.000.00
    curve_exp_bin_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_curve_expressions_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_curve_expressions_py.html new file mode 100644 index 000000000..a6daacb1d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_curve_expressions_py.html @@ -0,0 +1,50 @@ +hybrid/curve_expressions.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  curve_expressions.py
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       November 18, 2008
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def TurnOffCurveLabels():
    +    c = CurveAttributes()
    +    c.showLabels = 0
    +    SetDefaultPlotOptions(c)
    +
    +def DoBinaryOp(db1, curve1, db2, curve2, op, index):
    +    # name = db:curve1 op curve_cmfe(<db2:curve2>, <db1, curve1>)
    +    var1 = "<%s>" % (curve1)
    +    var2 = "<%s:%s>" % (db2, curve2)
    +    cmfe = "curve_cmfe(%s,%s)" % (var2, var1)
    +    name = "<A %s B>" %(op)
    +    DefineCurveExpression(name, "%s %s %s" %(var1, op, cmfe))
    +
    +    AddPlot("Curve", name);
    +    DrawPlots()
    +
    +    Test("curve_exp_bin_%02d" %index)
    +    DeleteAllPlots()
    +
    +def TestBinary():
    +    binops = ("+", "-", "*", "/")
    +    cdb = cmfe_data_path("curve_test_data/distribution.ultra")
    +    db = data_path("curve_test_data/distribution.ultra")
    +    logNormal = "Log Normal Distribution"
    +    exponential = "Exponential Distribution"
    +
    +    TestSection("binary operations on curves")
    +    OpenDatabase(db)
    +    for i in range(4):
    +        DoBinaryOp(cdb, logNormal, cdb, exponential, binops[i], i)
    +
    +    CloseDatabase(db)
    +
    +
    +TurnOffCurveLabels()
    +TestBinary()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cylindrical_radius.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cylindrical_radius.html new file mode 100644 index 000000000..ad5866c65 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cylindrical_radius.html @@ -0,0 +1,96 @@ + +Results for hybrid/cylindrical_radius.py + +

    Results of VisIt Regression Test - hybrid/cylindrical_radius

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    cylin_rad_default_10.000.00
    cylin_rad_default_20.000.00
    cylin_rad_x_10.000.00
    cylin_rad_x_20.000.00
    cylin_rad_y_10.000.00
    cylin_rad_y_20.000.00
    cylin_rad_z_10.000.00
    cylin_rad_z_20.000.00
    cylin_rad_diag_a_10.000.00
    cylin_rad_diag_b_10.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cylindrical_radius_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cylindrical_radius_py.html new file mode 100644 index 000000000..a05e7af39 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_cylindrical_radius_py.html @@ -0,0 +1,232 @@ +hybrid/cylindrical_radius.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  cylindrical_radius.py
    +#
    +#  Tests:      mesh      - 3D structured, multi domain
    +#              plots     - pc
    +#
    +#  Ticket Id:  '7915
    +#
    +#  Notes:      Created to test axis selection for the cylindrical_radius 
    +#              expression
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       March 31, 2008
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +
    +
    +# Default use case
    +DefineScalarExpression("cylin_rad_default",   "cylindrical_radius(mesh1)")
    +# Cyl axis = {1,0,0}
    +DefineScalarExpression("cylin_rad_x",         'cylindrical_radius(mesh1,"x")')
    +# Cyl axis = {0,1,0}
    +DefineScalarExpression("cylin_rad_y",         'cylindrical_radius(mesh1,"y")')
    +# Cyl axis = {0,0,1} (same as default)
    +DefineScalarExpression("cylin_rad_z",         'cylindrical_radius(mesh1,"z")')
    +# Cyl axis = {1,1,1}
    +DefineScalarExpression("cylin_rad_diag_a",    'cylindrical_radius(mesh1,{1,1,1})')
    +# Cyl axis = {1,1,-1}
    +DefineScalarExpression("cylin_rad_diag_b",    'cylindrical_radius(mesh1,{1,1,-1})')
    +
    +# use rotate and defer expression to test proper axis selection
    +
    +def test_cyl(var_name):
    +    DeleteAllPlots();
    +    ResetView()
    +    AddPlot("Pseudocolor", var_name)
    +    DrawPlots()
    +    Test(var_name + "_%d" % 1)
    +    AddOperator("Transform") # rotate to another view
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doRotate = 1
    +    TransformAtts.rotateOrigin = (0, 0, 0)
    +    TransformAtts.rotateAxis = (0, 1, 0)
    +    TransformAtts.rotateAmount = 45
    +    TransformAtts.rotateType = TransformAtts.Deg
    +    TransformAtts.doScale = 0
    +    TransformAtts.doTranslate = 0
    +    TransformAtts.transformType = TransformAtts.Similarity
    +    TransformAtts.inputCoordSys = TransformAtts.Cartesian
    +    TransformAtts.outputCoordSys = TransformAtts.Cartesian
    +    SetOperatorOptions(TransformAtts)
    +    DrawPlots()
    +    Test(var_name + "_%d" % 2)
    +
    +def test_cyl_x(var_name):
    +    DeleteAllPlots();
    +    ResetView()
    +    AddPlot("Pseudocolor", var_name)
    +    AddOperator("Transform")
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doRotate = 1
    +    TransformAtts.rotateOrigin = (0, 0, 0)
    +    TransformAtts.rotateAxis = (0, 1, 0)
    +    TransformAtts.rotateAmount = 90
    +    TransformAtts.rotateType = TransformAtts.Deg
    +    TransformAtts.doScale = 0
    +    TransformAtts.doTranslate = 0
    +    TransformAtts.transformType = TransformAtts.Similarity
    +    TransformAtts.inputCoordSys = TransformAtts.Cartesian
    +    TransformAtts.outputCoordSys = TransformAtts.Cartesian
    +    SetOperatorOptions(TransformAtts)
    +    AddOperator("DeferExpression")
    +    DeferExpressionAtts = DeferExpressionAttributes()
    +    DeferExpressionAtts.exprs = (var_name)
    +    SetOperatorOptions(DeferExpressionAtts)
    +    DrawPlots()
    +    Test(var_name + "_%d" % 1)
    +    AddOperator("Transform") # rotate to better view
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doRotate = 1
    +    TransformAtts.rotateOrigin = (0, 0, 0)
    +    TransformAtts.rotateAxis = (0, 1, 0)
    +    TransformAtts.rotateAmount = -45
    +    TransformAtts.rotateType = TransformAtts.Deg
    +    TransformAtts.doScale = 0
    +    TransformAtts.doTranslate = 0
    +    TransformAtts.transformType = TransformAtts.Similarity
    +    TransformAtts.inputCoordSys = TransformAtts.Cartesian
    +    TransformAtts.outputCoordSys = TransformAtts.Cartesian
    +    SetOperatorOptions(TransformAtts)
    +    DrawPlots()
    +    Test(var_name + "_%d" % 2)
    +
    +
    +def test_cyl_y(var_name):
    +    DeleteAllPlots();
    +    ResetView()
    +    AddPlot("Pseudocolor", var_name)
    +    AddOperator("Transform")
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doRotate = 1
    +    TransformAtts.rotateOrigin = (0, 0, 0)
    +    TransformAtts.rotateAxis = (1, 0, 0)
    +    TransformAtts.rotateAmount = 90
    +    TransformAtts.rotateType = TransformAtts.Deg
    +    TransformAtts.doScale = 0
    +    TransformAtts.doTranslate = 0
    +    TransformAtts.transformType = TransformAtts.Similarity
    +    TransformAtts.inputCoordSys = TransformAtts.Cartesian
    +    TransformAtts.outputCoordSys = TransformAtts.Cartesian
    +    SetOperatorOptions(TransformAtts)
    +    AddOperator("DeferExpression")
    +    DeferExpressionAtts = DeferExpressionAttributes()
    +    DeferExpressionAtts.exprs = (var_name)
    +    SetOperatorOptions(DeferExpressionAtts)
    +    DrawPlots()
    +    Test(var_name + "_%d" % 1)
    +    AddOperator("Transform") # rotate to better view
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doRotate = 1
    +    TransformAtts.rotateOrigin = (0, 0, 0)
    +    TransformAtts.rotateAxis = (1, 0, 0)
    +    TransformAtts.rotateAmount = -45
    +    TransformAtts.rotateType = TransformAtts.Deg
    +    TransformAtts.doScale = 0
    +    TransformAtts.doTranslate = 0
    +    TransformAtts.transformType = TransformAtts.Similarity
    +    TransformAtts.inputCoordSys = TransformAtts.Cartesian
    +    TransformAtts.outputCoordSys = TransformAtts.Cartesian
    +    SetOperatorOptions(TransformAtts)
    +    DrawPlots()
    +    Test(var_name + "_%d" % 2)
    +
    +def test_cyl_diag_a(var_name):
    +    DeleteAllPlots();
    +    ResetView()
    +    AddPlot("Pseudocolor", var_name)
    +    AddOperator("Transform")
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doRotate = 1
    +    TransformAtts.rotateOrigin = (0, 0, 0)
    +    TransformAtts.rotateAxis = (0, 1, 0)
    +    TransformAtts.rotateAmount = 45
    +    TransformAtts.rotateType = TransformAtts.Deg
    +    TransformAtts.doScale = 0
    +    TransformAtts.doTranslate = 0
    +    TransformAtts.transformType = TransformAtts.Similarity
    +    TransformAtts.inputCoordSys = TransformAtts.Cartesian
    +    TransformAtts.outputCoordSys = TransformAtts.Cartesian
    +    SetOperatorOptions(TransformAtts)
    +    AddOperator("Transform") # rotate to better view
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doRotate = 1
    +    TransformAtts.rotateOrigin = (0, 0, 0)
    +    TransformAtts.rotateAxis = (-0.70710678118654746, 0, 0.70710678118654746)
    +    TransformAtts.rotateAmount = 35.26
    +    TransformAtts.rotateType = TransformAtts.Deg
    +    TransformAtts.doScale = 0
    +    TransformAtts.doTranslate = 0
    +    TransformAtts.transformType = TransformAtts.Similarity
    +    TransformAtts.inputCoordSys = TransformAtts.Cartesian
    +    TransformAtts.outputCoordSys = TransformAtts.Cartesian
    +    SetOperatorOptions(TransformAtts)
    +    AddOperator("DeferExpression")
    +    DeferExpressionAtts = DeferExpressionAttributes()
    +    DeferExpressionAtts.exprs = (var_name)
    +    SetOperatorOptions(DeferExpressionAtts)
    +    DrawPlots()
    +    Test(var_name + "_%d" % 1)
    +
    +def test_cyl_diag_b(var_name):
    +    DeleteAllPlots();
    +    ResetView()
    +    AddPlot("Pseudocolor", var_name)
    +    AddOperator("Transform")
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doRotate = 1
    +    TransformAtts.rotateOrigin = (0, 0, 0)
    +    TransformAtts.rotateAxis = (0, 1, 0)
    +    TransformAtts.rotateAmount = -45
    +    TransformAtts.rotateType = TransformAtts.Deg
    +    TransformAtts.doScale = 0
    +    TransformAtts.doTranslate = 0
    +    TransformAtts.transformType = TransformAtts.Similarity
    +    TransformAtts.inputCoordSys = TransformAtts.Cartesian
    +    TransformAtts.outputCoordSys = TransformAtts.Cartesian
    +    SetOperatorOptions(TransformAtts)
    +    AddOperator("Transform") # rotate to better view
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doRotate = 1
    +    TransformAtts.rotateOrigin = (0, 0, 0)
    +    TransformAtts.rotateAxis = (0.70710678118654746, 0, 0.70710678118654746)
    +    TransformAtts.rotateAmount = 35.26
    +    TransformAtts.rotateType = TransformAtts.Deg
    +    TransformAtts.doScale = 0
    +    TransformAtts.doTranslate = 0
    +    TransformAtts.transformType = TransformAtts.Similarity
    +    TransformAtts.inputCoordSys = TransformAtts.Cartesian
    +    TransformAtts.outputCoordSys = TransformAtts.Cartesian
    +    SetOperatorOptions(TransformAtts)
    +    AddOperator("DeferExpression")
    +    DeferExpressionAtts = DeferExpressionAttributes()
    +    DeferExpressionAtts.exprs = (var_name)
    +    SetOperatorOptions(DeferExpressionAtts)
    +    DrawPlots()
    +    Test(var_name + "_%d" % 1)
    +
    +
    +test_cyl("cylin_rad_default")
    +test_cyl_x("cylin_rad_x")
    +test_cyl_y("cylin_rad_y")
    +test_cyl("cylin_rad_z") # same as default
    +test_cyl_diag_a("cylin_rad_diag_a")
    +test_cyl_diag_b("cylin_rad_diag_b")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_ddf.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_ddf.html new file mode 100644 index 000000000..ee8768445 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_ddf.html @@ -0,0 +1,77 @@ + +Results for hybrid/ddf.py + +

    Results of VisIt Regression Test - hybrid/ddf

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ddf_010.000.00
    ddf_020.000.00
    ddf_030.000.00
    ddf_040.000.00
    DDF Spatial Collapse with Ghost Zones
    ddf_spatial_1d0.150.00
    ddf_spatial_2d0.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_ddf_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_ddf_py.html new file mode 100644 index 000000000..982a64209 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_ddf_py.html @@ -0,0 +1,172 @@ +hybrid/ddf.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ddf.py
    +#
    +#  Defect ID:  '5203
    +#
    +#  Programmer: Hank Childs
    +#  Date:       February 20, 2006
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Tue Feb 23 12:40:36 PST 2021
    +#    Added spatial collapse with ghost zones test.
    +#
    +#    Kathleen Biagas, Thu Feb 17 07:38:01 PST 2022
    +#    Replace old ConstructDDFAttributes attribute names for new:
    +#    ddfName -> name, ranges -> binBoundaries, numSamples -> numBins,
    +#    statisticalOperator -> reductionOperator,
    +#    codomainName -> varForReductionOperator.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +t = ConstructDDFAttributes()
    +t.name = "ddf1"
    +t.varnames = ("u")
    +t.binBoundaries = (-1, 1)
    +t.numBins = (4)
    +t.varForReductionOperator = "u"
    +t.reductionOperator = t.Average
    +ConstructDDF(t)
    +
    +DefineScalarExpression("e1", "u - apply_ddf(curvmesh2d, ddf1)")
    +ChangeActivePlotsVar("e1")
    +Test("ddf_01")
    +
    +t.name = "ddf2"
    +t.reductionOperator = t.Maximum
    +t.varForReductionOperator = "v"
    +t.varnames = ("v")
    +ConstructDDF(t)
    +DefineScalarExpression("e2", "v - apply_ddf(curvmesh2d, ddf2)")
    +ChangeActivePlotsVar("e2")
    +Test("ddf_02")
    +
    +t.name = "ddf3"
    +t.varnames = ("u", "v")
    +t.binBoundaries = (-1, 1, -1, 1)
    +t.numBins = (25, 25)
    +t.varForReductionOperator = "u"
    +t.reductionOperator = t.Minimum
    +ConstructDDF(t)
    +
    +DefineScalarExpression("e3", "u - apply_ddf(curvmesh2d, ddf3)")
    +ChangeActivePlotsVar("e3")
    +Test("ddf_03")
    +
    +
    +ChangeActivePlotsVar("u")
    +t.name = "ddf4"
    +t.varnames = ("u", "v")
    +t.binBoundaries = (-1, 1, -1, 1)
    +t.numBins = (25, 25)
    +t.varForReductionOperator = "u"
    +t.reductionOperator = t.RMS
    +ConstructDDF(t)
    +
    +DefineScalarExpression("e4", "apply_ddf(curvmesh2d, ddf4)")
    +ChangeActivePlotsVar("e4")
    +Test("ddf_04")
    +
    +
    +#
    +# DDF Spatial Collapse with ghost zones
    +#
    +
    +def ddf(atts,var_name,ddf_op):
    +    # ddf helper used in the wild to normalize var
    +    # and file names
    +    ddf_op_map = {"avg": atts.Average,
    +                  "min": atts.Minimum,
    +                  "max": atts.Maximum,
    +                  "stddev": atts.StandardDeviation,
    +                  "var":    atts.Variance,
    +                  "sum":    atts.Sum,
    +                  "count":  atts.Count,
    +                  "rms": atts.RMS,
    +                  "pdf": atts.PDF}
    +    atts.reductionOperator = ddf_op_map[ddf_op]
    +    visit.ConstructDDF(atts)
    +    ndims = len(atts.numBins)
    +    ddf_oname = "%s_%s_%dd" % (var_name,ddf_op,ndims)
    +    if len(atts.numBins) == 1:
    +        src_fname = "%s.ultra" % atts.name
    +        des_fname = "%s.ult" % (atts.name)
    +        os.rename(src_fname,des_fname)
    +        lines = open(des_fname).readlines()
    +        f     = open(des_fname, "w")
    +        f.write("# %s\n" % (ddf_oname))
    +        for l in lines[1:]:
    +            f.write(l)
    +        f.close()
    +    else:
    +        src_fname = "%s.vtk" % atts.name
    +        des_fname = src_fname
    +        orig_vtk_var = "SCALARS %s float" % var_name
    +        ddf_vtk_var  = "SCALARS %s float" % ddf_oname
    +        data = open(des_fname).read()
    +        f = open(des_fname, "w")
    +        data = data.replace(orig_vtk_var,ddf_vtk_var)
    +        f.write(data)
    +    print("[ddf output: %s]" % des_fname)
    +    return des_fname
    +
    +#################################################
    +# bigsil has ghost zones, this test makes
    +# sure we are taking care of ghost zones property
    +# in ddfs
    +# use ddf to sum collapse spatially in 1d, then 2d
    +def ddf_collapse_test():
    +    TestSection("DDF Spatial Collapse with Ghost Zones")
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("bigsil.silo"))
    +    DefineScalarExpression("mesh_x_nodal","coord(mesh)[0]")
    +    DefineScalarExpression("mesh_y_nodal","coord(mesh)[1]")
    +    DefineScalarExpression("mesh_z_nodal","coord(mesh)[2]")
    +    DefineScalarExpression("mesh_x_zonal","recenter(coord(mesh)[0])")
    +    DefineScalarExpression("mesh_y_zonal","recenter(coord(mesh)[1])")
    +    DefineScalarExpression("mesh_z_zonal","recenter(coord(mesh)[2])")
    +    AddPlot("Pseudocolor","dist")
    +    DrawPlots()
    +    atts = visit.ConstructDDFAttributes()
    +    atts.name = "ddf_dist_1d"
    +    atts.varForReductionOperator = "dist"
    +    atts.varnames = ("mesh_x_zonal",)
    +    atts.binBoundaries = (0,1)
    +    atts.numBins = (21,)
    +    ddf(atts,"dist","sum")
    +    atts = visit.ConstructDDFAttributes()
    +    atts.name = "ddf_dist_2d"
    +    atts.varForReductionOperator = "dist"
    +    atts.varnames = ("mesh_x_zonal", "mesh_y_zonal")
    +    atts.binBoundaries = (0,1, 0,1)
    +    atts.numBins = (21,21)
    +    ddf(atts,"dist","sum")
    +    # plot 1d result
    +    DeleteAllPlots()
    +    OpenDatabase("ddf_dist_1d.ult")
    +    AddPlot("Curve","dist_sum_1d")
    +    DrawPlots()
    +    Test("ddf_spatial_1d")
    +    # plot 2d result
    +    DeleteAllPlots()
    +    OpenDatabase("ddf_dist_2d.vtk")
    +    AddPlot("Pseudocolor","dist_sum_2d")
    +    DrawPlots()
    +    Test("ddf_spatial_2d")
    +
    +ddf_collapse_test()
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_defvar_anim.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_defvar_anim.html new file mode 100644 index 000000000..d03c02f7f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_defvar_anim.html @@ -0,0 +1,54 @@ + +Results for hybrid/defvar_anim.py + +

    Results of VisIt Regression Test - hybrid/defvar_anim

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    defvar_anim_010.000.00
    defvar_anim_020.000.00
    defvar_anim_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_defvar_anim_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_defvar_anim_py.html new file mode 100644 index 000000000..c11f8ed03 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_defvar_anim_py.html @@ -0,0 +1,61 @@ +hybrid/defvar_anim.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  defvar.py
    +#
    +#  Tests:      plots     - vector
    +#
    +#  Defect ID:  '3221
    +#
    +#  Programmer: Hank Childs
    +#  Date:       April 10, 2003
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Thu Jun 24 12:58:06 PDT 2004
    +#    Set the vector origin explicitly for some cases because I changed the
    +#    default to Tail.
    +#
    +#    Brad Whitlock, Wed Mar 9 09:15:30 PDT 2005
    +#    Removed deprecated functions.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +
    +
    +vec = VectorAttributes()
    +vec.vectorOrigin = vec.Middle
    +SetDefaultPlotOptions(vec)
    +
    +
    +AddPlot("Vector", "direction")
    +DrawPlots()
    +
    +# Set the view
    +v = View3DAttributes()
    +v.viewNormal = (-0.293413, 0.703819, 0.646953)
    +v.focus = (5, 0.353448, 2.5)
    +v.viewUp = (0.228637, 0.708763, -0.667368)
    +v.viewAngle = 30
    +v.parallelScale = 3.87214
    +v.nearPlane = -11.2018
    +v.farPlane = 11.2018
    +v.perspective = 1
    +SetView3D(v)
    +
    +
    +Test("defvar_anim_01")
    +
    +SetTimeSliderState(30)
    +Test("defvar_anim_02")
    +
    +SetTimeSliderState(60)
    +Test("defvar_anim_03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_expr2engine.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_expr2engine.html new file mode 100644 index 000000000..642a4f7d0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_expr2engine.html @@ -0,0 +1,56 @@ + +Results for hybrid/expr2engine.py + +

    Results of VisIt Regression Test - hybrid/expr2engine

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    expr2engine_000.000.00
    expr2engine_010 modifications totalling 0 lines
    expr2engine_020 modifications totalling 0 lines
    expr2engine_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_expr2engine_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_expr2engine_py.html new file mode 100644 index 000000000..4eeddabe5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_expr2engine_py.html @@ -0,0 +1,67 @@ +hybrid/expr2engine.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  expr2engine.py
    +#
    +#  Tests:      mesh      - 2D, curvilinear, single domain
    +#              plots     - FilledBoundary
    +#              databases - PDB
    +#
    +#  Purpose:    This test case tests the viewer's ability to send not only the
    +#              user-defined expressions to the engine but also the correct
    +#              database expressions.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Feb 18 14:01:48 PST 2005
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Create some expressions.
    +#
    +DefineScalarExpression("user_defined1", "u * u")
    +DefineScalarExpression("user_defined2", "v + v")
    +DefineVectorExpression("user_defined3", "{u, v, w}")
    +
    +# Open a database and make a plot.
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Vector", "vel")
    +v = VectorAttributes()
    +v.nVectors = 4000
    +SetPlotOptions(v)
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.63515, 0.317784, 0.703987)
    +v.viewUp = (0.176786, 0.947058, -0.268008)
    +SetView3D(v)
    +
    +# Test the image that we should have by this point. Also make sure that the
    +# expression list contains the database expressions for the first database.
    +Test("expr2engine_00")
    +TestExpressions("expr2engine_01")
    +
    +# Open a different database. The expression list should only contain the 
    +# database variables from the new database.
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +TestExpressions("expr2engine_02")
    +
    +# Test that the plot from the old database, which was a plot of an expression
    +# from the first database can still be generated.
    +AddOperator("Transform")
    +DrawPlots()
    +Test("expr2engine_03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_exprList.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_exprList.html new file mode 100644 index 000000000..2d498558a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_exprList.html @@ -0,0 +1,56 @@ + +Results for hybrid/exprList.py + +

    Results of VisIt Regression Test - hybrid/exprList

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    exprList000 modifications totalling 0 lines
    exprList010 modifications totalling 0 lines
    exprList020 modifications totalling 0 lines
    exprList030 modifications totalling 0 lines
    exprList040 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_exprList_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_exprList_py.html new file mode 100644 index 000000000..c4925990d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_exprList_py.html @@ -0,0 +1,65 @@ +hybrid/exprList.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  exprList.py
    +#  Tests:      Expression list contents as windows are added and we switch
    +#              between databases that have expressions.
    +#
    +#  Defect ID:  VisIt00003955
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Oct 24 18:06:01 PST 2003
    +#
    +#  Modifications:
    +#    
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +
    +# Define some expressions just so we have some in the list.
    +DefineScalarExpression("var1", "var2 + var3")
    +DefineScalarExpression("var4", "var5 * var6")
    +DefineScalarExpression("var7", "var8 / var9")
    +
    +# Open the first database, which has some expressions.
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "speed")
    +DrawPlots()
    +
    +# This test should show our scalar expressions + globe's expressions.
    +TestExpressions("exprList00")
    +
    +# Add a new window and open a different database that has no expressions of
    +# its own.
    +AddWindow()
    +SetActiveWindow(2)
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("wave*.silo database"))
    +
    +TestExpressions("exprList01")
    +
    +# Going back to window 1, where globe is open. This should make the expression
    +# list contain globe's expressions.
    +SetActiveWindow(1)
    +TestExpressions("exprList02")
    +
    +# Open a new database. This should make the expression list contain the
    +# expressions for rect3d and our scalar expressions.
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +TestExpressions("exprList03")
    +
    +# Add a plot
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +# Make the active plot be the plot of globe. The expression list should 
    +# contain globe's expressions.
    +SetActivePlots(0)
    +TestExpressions("exprList04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_expr_cmfe.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_expr_cmfe.html new file mode 100644 index 000000000..4c650e191 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_expr_cmfe.html @@ -0,0 +1,66 @@ + +Results for hybrid/expr_cmfe.py + +

    Results of VisIt Regression Test - hybrid/expr_cmfe

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    expr_cmfe_010.000.00
    expr_cmfe_020.000.00
    expr_cmfe_030.000.00
    expr_cmfe_040.000.00
    expr_cmfe_050.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_expr_cmfe_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_expr_cmfe_py.html new file mode 100644 index 000000000..01d20a9bc --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_expr_cmfe_py.html @@ -0,0 +1,66 @@ +hybrid/expr_cmfe.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  expr_cmfe.py
    +#
    +#  Defect ID:  None
    +#
    +#  Programmer: Hank Childs
    +#  Date:       September 9, 2005
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Thu Dec 29 11:21:26 PST 2005
    +#    Expand the color range for a plot of an expression that should result in 
    +#    uniformly "1", but actually has some small variation.  This causes 
    +#    issues with coloring between optimized and non-optimized modes.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +
    +
    +# Test that database expressions can still be generated.
    +DefineVectorExpression("cmfe", "conn_cmfe(<%s[30]i:direction>, quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +AddPlot("Vector", "cmfe")
    +DrawPlots()
    +Test("expr_cmfe_01")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("cmfe2", "conn_cmfe(coord(<%s[40]i:pressure>)[1], quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +AddPlot("Pseudocolor", "cmfe2")
    +DrawPlots()
    +Test("expr_cmfe_02")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("cmfe3", "coord(quadmesh)[1] - conn_cmfe(coord(<%s[40]i:pressure>)[1], quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +AddPlot("Pseudocolor", "cmfe3")
    +DrawPlots()
    +Test("expr_cmfe_03")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("cmfe4", "coord(quadmesh)[1] - cmfe2")
    +AddPlot("Pseudocolor", "cmfe4")
    +DrawPlots()
    +Test("expr_cmfe_04")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("cmfe5", "volume(quadmesh) / conn_cmfe(volume(<%s[40]i:quadmesh>), quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +AddPlot("Pseudocolor", "cmfe5")
    +pc = PseudocolorAttributes()
    +pc.min = 0.5
    +pc.minFlag = 1
    +pc.max = 1.5
    +pc.maxFlag = 1
    +SetPlotOptions(pc)
    +DrawPlots()
    +Test("expr_cmfe_05")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_expressions.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_expressions.html new file mode 100644 index 000000000..1c0daeefd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_expressions.html @@ -0,0 +1,304 @@ + +Results for hybrid/expressions.py + +

    Results of VisIt Regression Test - hybrid/expressions

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    radius_ghosts0.000.00
    magnitude10.000.00
    magnitude20.000.00
    vector_sum0.000.00
    vector_diff0.000.00
    theta0.000.00
    phi0.000.00
    cos0.000.00
    abs_cos0.000.00
    sin0.000.00
    minus_sin0.000.00
    four_phase0.000.00
    one0.000.00
    X0.000.00
    radius0.000.00
    zero0.000.00
    vector_add_const0.000.00
    vector_cross0.000.00
    identity_expr0.000.00
    diff_centering_expr_010.000.00
    diff_centering_expr_020.000.00
    diff_centering_expr_030.000.00
    diff_centering_expr_040.000.00
    diff_centering_expr_050.000.00
    diff_centering_expr_060.000.00
    diff_centering_expr_070.000.00
    const_with_no_other_vars0.000.00
    nmats_with_mir0.000.00
    mult_var_usage0.000.00
    mixed_centering_nodal0.000.00
    mixed_centering_zonal0.000.00
    mult_identity_expr0.000.00
    long_identity_expr0.000.00
    divide10.000.00
    divide20.000.00
    divide30.000.00
    resrad0.000.00
    resrad_error0 modifications totalling 0 lines
    ident_mesh0.000.00
    min10.000.00
    min20.000.00
    max10.000.00
    min30.000.00
    max20.000.00
    max30.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_expressions_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_expressions_py.html new file mode 100644 index 000000000..87a515353 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_expressions_py.html @@ -0,0 +1,464 @@ +hybrid/expressions.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  expressions.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - pc
    +#
    +#  Defect ID:  '3939 + '4008 + '4022 + '4162 + '4417 + '4435 + '5790 + '5672
    +#            + '5763 + '5767 + '5874 + '7465 + '7473
    +#
    +#  Programmer: Hank Childs
    +#  Date:       November 18, 2002
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Fri Oct 24 09:25:04 PDT 2003
    +#    Added test for mesh expressions for databases where we communicate
    +#    ghost zones.
    +#
    +#    Hank Childs, Wed Dec 10 14:25:01 PST 2003
    +#    Add tests for implicit and explicit changes in centering.  Also added
    +#    a test for the identity expression, which previously crashed the engine.
    +#
    +#    Hank Childs, Wed Feb 11 14:49:40 PST 2004
    +#    Add tests for nmats and constants.
    +#    
    +#    Hank Childs, Thu Apr 22 16:19:36 PDT 2004
    +#    Update comments due to the change in semantics of recenter (it is now
    +#    always zonal).
    +#
    +#    Hank Childs, Wed Dec 22 13:14:29 PST 2004
    +#    Add tests for variables used both in an expression and in the
    +#    pipeline ['5790].
    +#
    +#    Hank Childs, Thu Jan  6 11:21:21 PST 2005
    +#    Add tests for multiple identity filters and additional tests for mixed
    +#    centering ['5672, '5763, '5767].
    +#
    +#    Hank Childs, Thu Jan 20 18:29:28 PST 2005
    +#    Add test for resrad ['5874].
    +#
    +#    Hank Childs, Fri Aug 25 17:34:13 PDT 2006
    +#    Add test for resrad when arguments are missing ['7473].
    +#
    +#    Hank Childs, Fri Sep 14 11:52:39 PDT 2007
    +#    Add test for identify filters and meshes ['7465].
    +#
    +#    Cyrus Harrison, Thu Jan 31 09:19:57 PST 2008
    +#    Added a test for the value_for_material filter. 
    +#
    +#    Cyrus Harrison, Tue Feb 19 13:52:01 PST 2008
    +#    Removed value_for_material tests (they now reside in val4mat.py)
    +#
    +#    Kathleen Bonnell, Thu May  7 09:26:36 PDT 2009
    +#    ident_mesh is no longer an error case, so remove the error test and
    +#    save an image instead.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Alister Maguire, Mon Mar 29 12:17:40 PDT 2021
    +#    Moved min/max tests into function and extended to include
    +#    multi-domain data.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def TestMinMaxExpression():
    +    # Test min/max expression
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    #
    +    # First, let's test a serial dataset.
    +    #
    +    DefineScalarExpression('min1', 'min(10.0, 5.0, d+p)')
    +    AddPlot('Pseudocolor', 'min1')
    +    DrawPlots()
    +    Test('min1')
    +    DeleteAllPlots()
    +
    +    DefineScalarExpression('min2', 'min(d+p, 5.0, 10.0)')
    +    AddPlot('Pseudocolor', 'min2')
    +    DrawPlots()
    +    Test('min2')
    +    DeleteAllPlots()
    +
    +    DefineScalarExpression('max1', 'max(10.0, 5.0, d+p)')
    +    AddPlot('Pseudocolor', 'max1')
    +    DrawPlots()
    +    Test('max1')
    +    DeleteAllPlots()
    +
    +    DefineScalarExpression('min3', 'min(2.0, d+p, d*p+2*d)')
    +    AddPlot('Pseudocolor', 'min3')
    +    DrawPlots()
    +    Test('min3')
    +    DeleteAllPlots()
    +
    +    CloseDatabase(silo_data_path("rect2d.silo"))
    +
    +    #
    +    # Multi-domain datasets are handled a little differently, so
    +    # let's test one here.
    +    #
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    DefineScalarExpression('max2', 'max(p*16, 4)')
    +    AddPlot('Pseudocolor', 'max2')
    +    DrawPlots()
    +    Test('max2')
    +    DeleteAllPlots()
    +
    +    DefineScalarExpression('max3', 'max(p*16, d, 4)')
    +    AddPlot('Pseudocolor', 'max3')
    +    DrawPlots()
    +    Test('max3')
    +    DeleteAllPlots()
    +
    +    CloseDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +
    +OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +
    +DefineScalarExpression("radius_polar", "polar(mesh)[0]")
    +AddPlot("Contour", "radius_polar")
    +DrawPlots()
    +Test("radius_ghosts")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +
    +DefineScalarExpression("mag1", "magnitude(vel)")
    +AddPlot("Pseudocolor", "mag1")
    +DrawPlots()
    +
    +Test("magnitude1")
    +DeleteAllPlots()
    +
    +#
    +# We have a poor gradient scheme that will cause gradients along a band to
    +# falsely register as 0.  Regardless, I'd like to test it.
    +#
    +DefineScalarExpression("mag2", "magnitude(gradient(v))")
    +AddPlot("Pseudocolor", "mag2")
    +DrawPlots()
    +
    +Test("magnitude2")
    +DeleteAllPlots()
    +
    +
    +#
    +# See above comment regarding gradients.
    +#
    +DefineScalarExpression("vector_sum", "magnitude(gradient(v)+gradient(u))")
    +AddPlot("Pseudocolor", "vector_sum")
    +DrawPlots()
    +
    +Test("vector_sum")
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("vector_diff", "magnitude(gradient(v)-gradient(u))")
    +AddPlot("Pseudocolor", "vector_diff")
    +DrawPlots()
    +
    +Test("vector_diff")
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("theta", "polar(mesh1)[1]")
    +AddPlot("Pseudocolor", "theta")
    +DrawPlots()
    +
    +Test("theta")
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("phi", "polar(mesh1)[2]")
    +AddPlot("Pseudocolor", "phi")
    +DrawPlots()
    +
    +Test("phi")
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("cos", "cos(polar(mesh1)[1])")
    +AddPlot("Pseudocolor", "cos")
    +DrawPlots()
    +
    +Test("cos")
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("abs_cos", "abs(cos(polar(mesh1)[1]))")
    +AddPlot("Pseudocolor", "abs_cos")
    +DrawPlots()
    +
    +Test("abs_cos")
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("sin", "sin(polar(mesh1)[1])")
    +AddPlot("Pseudocolor", "sin")
    +DrawPlots()
    +
    +Test("sin")
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("minus_sin", "-sin(polar(mesh1)[1])")
    +AddPlot("Pseudocolor", "minus_sin")
    +DrawPlots()
    +
    +Test("minus_sin")
    +DeleteAllPlots()
    +
    +DefineScalarExpression("four_phase", "rad2deg(acos(sin(polar(mesh1)[1]))-polar(mesh1)[1])")
    +AddPlot("Pseudocolor", "four_phase")
    +DrawPlots()
    +
    +Test("four_phase")
    +DeleteAllPlots()
    +
    +
    +atts = PseudocolorAttributes()
    +atts.minFlag = 1
    +atts.min = 0.99
    +atts.maxFlag = 1
    +atts.max = 1.01
    +SetDefaultPlotOptions(atts)
    +
    +DefineScalarExpression("one", "sin(polar(mesh1)[1])*sin(polar(mesh1)[1]) + cos(polar(mesh1)[1])*cos(polar(mesh1)[1])")
    +AddPlot("Pseudocolor", "one")
    +DrawPlots()
    +
    +Test("one")
    +DeleteAllPlots()
    +
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +SetDefaultPlotOptions(atts)
    +
    +DefineScalarExpression("X", "coord(mesh1)[0]")
    +AddPlot("Pseudocolor", "X")
    +DrawPlots()
    +
    +Test("X")
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("radius", "sqrt(coords(mesh1)[0]*coords(mesh1)[0]+coords(mesh1)[1]*coords(mesh1)[1]+coords(mesh1)[2]*coords(mesh1)[2])")
    +AddPlot("Pseudocolor", "radius")
    +DrawPlots()
    +
    +Test("radius")
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("zero", "(polar(mesh1))[0] - sqrt(coords(mesh1)[0]*coords(mesh1)[0]+coords(mesh1)[1]*coords(mesh1)[1]+coords(mesh1)[2]*coords(mesh1)[2])")
    +AddPlot("Pseudocolor", "zero")
    +DrawPlots()
    +
    +Test("zero")
    +DeleteAllPlots()
    +
    +DefineVectorExpression("dd", "disp+{1,2,3}")
    +AddPlot("Vector", "dd")
    +DrawPlots()
    +
    +Test("vector_add_const")
    +DeleteAllPlots()
    +
    +DefineVectorExpression("cr", "cross(disp,dd)")
    +AddPlot("Vector", "cr")
    +DrawPlots()
    +
    +Test("vector_cross")
    +DeleteAllPlots()
    +
    +DefineScalarExpression("a", "t")
    +AddPlot("Pseudocolor", "a")
    +DrawPlots()
    +Test("identity_expr")
    +DeleteAllPlots()
    +
    +DefineScalarExpression("sum1", "t+100*u")
    +AddPlot("Pseudocolor", "sum1")
    +DrawPlots()
    +Test("diff_centering_expr_01")
    +DeleteAllPlots()
    +
    +DefineScalarExpression("sum2", "(u+t/100.)*100.")
    +AddPlot("Pseudocolor", "sum2")
    +DrawPlots()
    +Test("diff_centering_expr_02")
    +DeleteAllPlots()
    +
    +DefineScalarExpression("diff", "sum2-sum1")
    +AddPlot("Pseudocolor", "diff")
    +DrawPlots()
    +Test("diff_centering_expr_03")
    +DeleteAllPlots()
    +
    +DefineScalarExpression("sum_rc1", "recenter(t)+100*u")
    +AddPlot("Pseudocolor", "sum_rc1")
    +DrawPlots()
    +Test("diff_centering_expr_04")
    +DeleteAllPlots()
    +
    +# This one will recenter the first t.  When the second one is subtracted,
    +# will recenter the first t again to make it zonal again.
    +DefineScalarExpression("diff_rc1", "recenter(t)-t")
    +AddPlot("Pseudocolor", "diff_rc1")
    +DrawPlots()
    +Test("diff_centering_expr_05")
    +DeleteAllPlots()
    +
    +# This one will recenter the first t twice.  The second one will not be 
    +# touched.
    +DefineScalarExpression("diff_rc2", "recenter(recenter(t))-t")
    +AddPlot("Pseudocolor", "diff_rc2")
    +DrawPlots()
    +Test("diff_centering_expr_06")
    +DeleteAllPlots()
    +
    +# The first t will not be touched.  The second one will be recentered once
    +# explicitly and once implicitly (from the minus).
    +DefineScalarExpression("diff_rc3", "t-recenter(t)")
    +AddPlot("Pseudocolor", "diff_rc2")
    +DrawPlots()
    +Test("diff_centering_expr_07")
    +DeleteAllPlots()
    +
    +# The constant (3.14159) will be the only variable in the dataset.  Test
    +# that the constant creation logic can figure out that we must be making
    +# an expression based on the mesh downstream.
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +DefineScalarExpression("sin_x", "sin(3.14159*coord(quadmesh3d)[0])")
    +AddPlot("Pseudocolor", "sin_x")
    +DrawPlots()
    +Test("const_with_no_other_vars")
    +DeleteAllPlots()
    +
    +# The nmats expression needs to use the original zone numbers array to
    +# find the correct index into an avtMaterial object.  Make sure that this is
    +# being done correctly by splitting the zones before we even get to the
    +# expression via MIR.
    +DefineScalarExpression("nmats", "nmats(mat1)")
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Threshold")
    +thresh = ThresholdAttributes()
    +thresh.lowerBounds = (1.5)
    +thresh.listedVarNames = ("nmats")
    +SetOperatorOptions(thresh)
    +DrawPlots()
    +Test("nmats_with_mir")
    +DeleteAllPlots()
    +
    +# Test that a variable (u) can be used in both the expression and downstream
    +# in the pipeline.
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "speed")
    +AddOperator("Threshold")
    +thresh = ThresholdAttributes()
    +thresh.lowerBounds = (0.0)
    +thresh.listedVarNames = ("u")
    +SetOperatorOptions(thresh)
    +DrawPlots()
    +Test("mult_var_usage")
    +DeleteAllPlots()
    +
    +# The binary math filter forces mixed centering to be zonal.  The base class
    +# used to get confused and would sometimes declare the variable as nodal.
    +# Test to make sure this works.  By forcing the centering, we can confirm
    +# the base class is declaring the variable the right way.
    +DefineScalarExpression("prod", "u*t")
    +AddPlot("Pseudocolor", "prod")
    +pc = PseudocolorAttributes()
    +pc.centering = pc.Nodal
    +SetPlotOptions(pc)
    +DrawPlots()
    +Test("mixed_centering_nodal")
    +pc = PseudocolorAttributes()
    +pc.centering = pc.Zonal
    +SetPlotOptions(pc)
    +Test("mixed_centering_zonal")
    +
    +# Test that we can handle multiple identity expressions.
    +DefineScalarExpression("sub1", "u")
    +DefineScalarExpression("sub2", "v")
    +DefineScalarExpression("sum", "sub1+sub2")
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "sum")
    +DrawPlots()
    +Test("mult_identity_expr")
    +
    +# Test that we can handle identity expressions that are not the first node
    +# of the expression tree.
    +DefineVectorExpression("C", "coord(mesh1)")
    +DefineScalarExpression("X", "C[0]")
    +DefineScalarExpression("Y", "C[1]")
    +DefineScalarExpression("Z", "C[2]")
    +DefineScalarExpression("TX", "X")
    +DefineScalarExpression("TY", "cos_angle*Y - sin_angle*Z + Zt*sin_angle - Yt*cos_angle")
    +DefineScalarExpression("TZ", "sin_angle*Y + cos_angle*Z + Yt*sin_angle - Zt*cos_angle")
    +DefineScalarExpression("Yt", "5")
    +DefineScalarExpression("Zt", "10")
    +DefineScalarExpression("angle", "rad2deg(30)")
    +DefineScalarExpression("sin_angle", "sin(angle)")
    +DefineScalarExpression("cos_angle", "cos(angle)")
    +DefineScalarExpression("rad", "TX*TX + TY*TY + TZ*TZ")
    +AddPlot("Pseudocolor", "rad")
    +DrawPlots()
    +Test("long_identity_expr")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +# Test divide expression
    +DefineScalarExpression('divide1', 'divide(d,p)')
    +AddPlot('Pseudocolor','divide1')
    +DrawPlots()
    +Test('divide1')
    +
    +DefineScalarExpression('divide2', 'divide(d,p,0.0,2.0)')
    +AddPlot('Pseudocolor','divide2')
    +DrawPlots()
    +Test('divide2')
    +DeleteAllPlots()
    +
    +DefineScalarExpression('divide3', 'divide(d,p,1.0,2.0)')
    +AddPlot('Pseudocolor','divide3')
    +DrawPlots()
    +Test('divide3')
    +DeleteAllPlots()
    +
    +# Test resrad
    +DefineScalarExpression("resrad", "resrad(recenter(u), 0.1)")
    +AddPlot("Pseudocolor", "resrad")
    +DrawPlots()
    +Test("resrad")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("resrad2", "resrad(recenter(u))")
    +AddPlot("Pseudocolor", "resrad2")
    +DrawPlots()
    +txt = GetLastError()
    +TestText("resrad_error", txt)
    +
    +DeleteAllPlots()
    +DefineScalarExpression("ident_mesh", "quadmesh2d")
    +AddPlot("Pseudocolor", "ident_mesh")
    +DrawPlots()
    +Test("ident_mesh")
    +
    +TestMinMaxExpression()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_field_operators.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_field_operators.html new file mode 100644 index 000000000..03095e0d9 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_field_operators.html @@ -0,0 +1,144 @@ + +Results for hybrid/field_operators.py + +

    Results of VisIt Regression Test - hybrid/field_operators

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    field_op_010.000.00
    field_op_020.000.00
    field_op_030.000.00
    field_op_040.000.00
    field_op_050.000.00
    field_op_060.000.00
    field_op_070.000.00
    field_op_080.000.00
    field_op_090.000.00
    field_op_100.000.00
    field_op_110.000.00
    field_op_120.000.00
    field_op_130.000.00
    field_op_140.000.00
    field_op_150.000.00
    field_op_160.000.00
    field_op_170.000.00
    field_op_180.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_field_operators_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_field_operators_py.html new file mode 100644 index 000000000..91e5433b4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_field_operators_py.html @@ -0,0 +1,258 @@ +hybrid/field_operators.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  field_operators.py
    +#
    +#  Tests:      mesh      - rectilinear, curvilinear
    +#              plots     - vector, contour
    +#
    +#  Defect ID:  '4141, '5343, '6297, '6460, '7063, '8025
    +#
    +#  Programmer: Hank Childs
    +#  Date:       December 13, 2003
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Thu Jun 24 12:58:06 PDT 2004
    +#    Set the vector origin explicitly for some cases because I changed the
    +#    default to Tail.
    +#
    +#    Hank Childs, Mon Jan  3 10:35:56 PST 2005
    +#    Renamed to field_operators.  Added testing for divergence, Laplacian,
    +#    and curl.
    +#
    +#    Hank Childs, Mon Jun  6 11:28:45 PDT 2005
    +#    Add tests for 2D divergence, Laplacian.
    +#
    +#    Hank Childs, Mon Aug 15 14:19:49 PDT 2005
    +#    2D curl now produces a scalar.  Change our test appropriately.
    +#
    +#    Hank Childs, Fri Mar  3 09:01:08 PST 2006
    +#    Add test for Jacobian (2D determinants).  '7063
    +#
    +#    Hank Childs, Mon Jun 18 09:54:09 PDT 2007
    +#    Add test for dot of curl with a vector.  This is really testing the
    +#    ability of macro expressions to maintain secondary variables. '8025
    +#
    +#    Jeremy Meredith, Tue Jul 15 10:43:58 EDT 2008
    +#    Changed number of vectors in vector plot to match the old behavior.
    +#    (We now account for how many domains there are.)
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Remove obsolete 'colorByMag' vector att with 'colorByMagnitude'.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +DefineVectorExpression("grad_t", "gradient(t)")
    +AddPlot("Vector", "grad_t")
    +v = VectorAttributes()
    +v.vectorOrigin = v.Middle
    +SetPlotOptions(v)
    +DrawPlots()
    +
    +# Zonal UCD gradient.
    +Test("field_op_01")
    +DeleteAllPlots()
    +
    +DefineVectorExpression("grad_u", "gradient(u)")
    +AddPlot("Vector", "grad_u")
    +v = VectorAttributes()
    +v.vectorOrigin = v.Middle
    +SetPlotOptions(v)
    +DrawPlots()
    +
    +# Nodal UCD gradient.
    +Test("field_op_02")
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +DefineVectorExpression("grad_d", "gradient(d)")
    +AddPlot("Vector", "grad_d")
    +v = VectorAttributes()
    +v.colorByMagnitude = 1
    +v.vectorOrigin = v.Middle
    +SetPlotOptions(v)
    +DrawPlots()
    +
    +# Zonal rect-2d gradient.
    +Test("field_op_03")
    +DeleteAllPlots()
    +
    +AddPlot("Vector", "grad_u")
    +v = VectorAttributes()
    +v.colorByMagnitude = 1
    +v.vectorOrigin = v.Middle
    +SetPlotOptions(v)
    +DrawPlots()
    +
    +# Nodal rect-2d gradient.
    +Test("field_op_04")
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +AddPlot("Vector", "grad_d")
    +v = VectorAttributes()
    +v.nVectors = 447
    +v.vectorOrigin = v.Middle
    +SetPlotOptions(v)
    +DrawPlots()
    +
    +# Zonal rect-3d gradient.
    +Test("field_op_05")
    +DeleteAllPlots()
    +
    +AddPlot("Vector", "grad_u")
    +v = VectorAttributes()
    +v.vectorOrigin = v.Middle
    +SetPlotOptions(v)
    +DrawPlots()
    +
    +# Nodal rect-3d gradient.
    +Test("field_op_06")
    +DeleteAllPlots()
    +
    +AddPlot("Vector", "vel")
    +DefineScalarExpression("mag", "magnitude(vel)")
    +AddOperator("Threshold")
    +t = ThresholdAttributes()
    +t.lowerBounds = (0.5)
    +t.upperBounds = (1.5)
    +t.listedVarNames = ("mag")
    +SetOperatorOptions(t)
    +DrawPlots()
    +
    +# Test vector with threshold ('4178)
    +Test("field_op_07")
    +DeleteAllPlots()
    +
    +
    +AddPlot("Vector", "grad_u")
    +v = VectorAttributes()
    +v.vectorOrigin = v.Middle
    +v.nVectors = 400*3
    +SetPlotOptions(v)
    +DefineScalarExpression("u_mag", "magnitude(grad_u)")
    +AddOperator("Isosurface")
    +iso = IsosurfaceAttributes()
    +iso.contourNLevels = 3
    +iso.variable = "u_mag"
    +SetOperatorOptions(iso)
    +DrawPlots()
    +
    +v = GetView3D()
    +v.imageZoom = 4.5
    +SetView3D(v)
    +
    +# Test vector with isosurface ('4207)
    +Test("field_op_08")
    +
    +# Add a contour plot just for grins to show that our isosurface operator is
    +# picking up the same surface as the contour plot.
    +AddPlot("Contour", "u_mag")
    +con = ContourAttributes()
    +con.contourNLevels = 3
    +SetPlotOptions(con)
    +DrawPlots()
    +
    +Test("field_op_09")
    +DeleteAllPlots()
    +
    +# Test that we can calculate the Laplacian.
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +v = GetView3D()
    +v.imageZoom = 1
    +v.viewNormal = (0.41, 0.08, -0.91)
    +SetView3D(v)
    +
    +DefineScalarExpression("LP", "abs(Laplacian(u))")
    +AddPlot("Contour", "LP")
    +c = ContourAttributes()
    +c.scaling = c.Log
    +SetPlotOptions(c)
    +DrawPlots()
    +Test("field_op_10")
    +
    +DefineScalarExpression("div", "divergence(vel)")
    +DeleteAllPlots()
    +AddPlot("Contour", "div")
    +c = ContourAttributes()
    +c.scaling = c.Log
    +SetPlotOptions(c)
    +DrawPlots()
    +Test("field_op_11")
    +
    +
    +# Test multiple macro expressions together -- divergence and Laplacian.
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "div")
    +pc = PseudocolorAttributes()
    +pc.scaling = pc.Log
    +SetPlotOptions(pc)
    +AddOperator("Isosurface")
    +iso = IsosurfaceAttributes()
    +iso.scaling = iso.Log
    +iso.variable = "LP"
    +SetOperatorOptions(iso)
    +DrawPlots()
    +
    +Test("field_op_12")
    +
    +
    +DefineVectorExpression("curl", "curl(vel)")
    +DeleteAllPlots()
    +AddPlot("Vector", "curl")
    +v = VectorAttributes()
    +v.scaleByMagnitude = 0
    +SetPlotOptions(v)
    +DrawPlots()
    +Test("field_op_13")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +DefineScalarExpression("div2", "divergence(vel)")
    +AddPlot("Pseudocolor", "div2")
    +DrawPlots()
    +Test("field_op_14")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("LP2", "Laplacian(d)")
    +AddPlot("Pseudocolor", "LP2")
    +DrawPlots()
    +Test("field_op_15")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("curl2", "curl(vel)")
    +AddPlot("Pseudocolor", "curl2")
    +DrawPlots()
    +Test("field_op_16")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("jacobian", "determinant({gradient(u), gradient(v)})")
    +AddPlot("Pseudocolor", "jacobian")
    +DrawPlots()
    +Test("field_op_17")
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +DefineVectorExpression("mycurl", "curl(vel)")
    +DefineScalarExpression("mydot", "dot(curl,vel)")
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "mydot")
    +DrawPlots()
    +Test("field_op_18")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_ghost_node.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_ghost_node.html new file mode 100644 index 000000000..ae8f70259 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_ghost_node.html @@ -0,0 +1,42 @@ + +Results for hybrid/ghost_node.py + +

    Results of VisIt Regression Test - hybrid/ghost_node

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ghost_node_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_ghost_node_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_ghost_node_py.html new file mode 100644 index 000000000..e42d689ca --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_ghost_node_py.html @@ -0,0 +1,45 @@ +hybrid/ghost_node.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ghost_node.py 
    +#
    +#  Tests:      ghost node removal of multi_curv3d.silo
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       July 6, 2020 
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Fri Mar 12, 2021
    +#    Added DeleteAllPlots before CloseDatabase.
    +#
    +# ----------------------------------------------------------------------------
    +TurnOffAllAnnotations() # defines global object 'a'
    +
    +OpenDatabase(silo_data_path("multi_curv3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +pc = PseudocolorAttributes()
    +pc.opacityType = pc.Constant
    +pc.opacityVariable = ""
    +pc.opacity = 0.25
    +SetPlotOptions(pc)
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (-0.491824, 0.420414, 0.76247)
    +v.focus = (0, 2.5, 15)
    +v.viewUp = (0.214182, 0.907212, -0.362066)
    +v.viewAngle = 30
    +v.parallelScale = 16.0078
    +v.nearPlane = -32.0156
    +v.farPlane = 32.0156
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +SetView3D(v)
    +
    +Test("ghost_node_01")
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multi_curv3d.silo"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_image_proc.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_image_proc.html new file mode 100644 index 000000000..aa612aaad --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_image_proc.html @@ -0,0 +1,54 @@ + +Results for hybrid/image_proc.py + +

    Results of VisIt Regression Test - hybrid/image_proc

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    image_proc_010.000.00
    image_proc_020.000.00
    image_proc_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_image_proc_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_image_proc_py.html new file mode 100644 index 000000000..3e75bafca --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_image_proc_py.html @@ -0,0 +1,34 @@ +hybrid/image_proc.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  image_proc.py
    +#
    +#  Tests:      mesh      - Image
    +#              plots     - Pseudocolor
    +#
    +#  Defect ID:  '6492
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 19, 2005
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(data_path("Image_test_data/manhattan.jpg"))
    +
    +DefineScalarExpression("cm", "conservative_smoothing(intensity)")
    +AddPlot("Pseudocolor", "cm")
    +DrawPlots()
    +Test("image_proc_01")
    +
    +DefineScalarExpression("median", "median_filter(intensity)")
    +ChangeActivePlotsVar("median")
    +Test("image_proc_02")
    +
    +DefineScalarExpression("mean", "mean_filter(intensity)")
    +ChangeActivePlotsVar("mean")
    +Test("image_proc_03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_keyframe.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_keyframe.html new file mode 100644 index 000000000..7a7af6bfc --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_keyframe.html @@ -0,0 +1,501 @@ + +Results for hybrid/keyframe.py + +

    Results of VisIt Regression Test - hybrid/keyframe

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Simple 6 frame animation
    keyframe_010.000.00
    keyframe_020.000.00
    keyframe_030.000.00
    keyframe_040.000.00
    keyframe_050.000.00
    keyframe_060.000.00
    Setting plot frame range
    keyframe_070.000.00
    keyframe_080.000.00
    keyframe_090.000.00
    keyframe_100.000.00
    keyframe_110.000.00
    keyframe_120.000.00
    Setting a plot attributes keyframe
    keyframe_130.000.00
    keyframe_140.000.00
    keyframe_150.000.00
    keyframe_160.000.00
    keyframe_170.000.00
    keyframe_180.000.00
    Removing a plot attributes keyframe
    keyframe_190.000.00
    keyframe_200.000.00
    keyframe_210.000.00
    keyframe_220.000.00
    keyframe_230.000.00
    keyframe_240.000.00
    Deleting another plot attributes keyframe
    keyframe_250.000.00
    keyframe_260.000.00
    keyframe_270.000.00
    keyframe_280.000.00
    keyframe_290.000.00
    keyframe_300.000.00
    Decreasing number of animation frames
    keyframe_310.000.00
    keyframe_320.000.00
    keyframe_330.000.00
    keyframe_340.000.00
    Copying keyframed plot to a new window
    keyframe_350.000.00
    keyframe_360.000.00
    keyframe_370.000.00
    keyframe_380.000.00
    Turning off keyframe mode
    keyframe_390.000.00
    keyframe_400.000.00
    keyframe_410.000.00
    keyframe_420.000.00
    Testing view keyframing
    keyframe_430.000.00
    keyframe_440.000.00
    keyframe_450.000.00
    keyframe_460.000.00
    keyframe_470.000.00
    keyframe_480.000.00
    keyframe_490.000.00
    keyframe_500.000.00
    keyframe_510.000.00
    keyframe_520.000.00
    keyframe_530.000.00
    Moving keyframes
    keyframe_540.000.00
    keyframe_550.000.00
    keyframe_560.000.00
    keyframe_570.000.00
    keyframe_580.000.00
    keyframe_590.000.00
    keyframe_600.000.00
    keyframe_610.000.00
    keyframe_620.000.00
    Operator keyframes
    keyframe_630.000.00
    keyframe_640.000.00
    keyframe_650.000.00
    keyframe_660.000.00
    keyframe_670.000.00
    keyframe_680.000.00
    keyframe_690.000.00
    keyframe_700.000.00
    keyframe_710.000.00
    keyframe_720.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_keyframe_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_keyframe_py.html new file mode 100644 index 000000000..77afa6c1c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_keyframe_py.html @@ -0,0 +1,544 @@ +hybrid/keyframe.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  keyframe.py
    +#
    +#  Tests:      mesh      - 3D structured, single domain
    +#              plots     - pc, mesh
    +#              operators - none
    +#              selection - none
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       Thu Dec 19 16:02:41 PST 2002
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Apr 7 17:24:41 PST 2004
    +#    I added TestSection to break up the test images a little. I also updated
    +#    the code so it uses the new time slider functions instead of the
    +#    deprecated animation functions.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to switch between Silo's HDF5 and PDB data.
    +#
    +#    Eric Brugger, Wed Mar 22 16:23:12 PDT 2023
    +#    Added operator keyframe tests.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# Open a database.
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +
    +# Enable keyframe mode.
    +k = GetKeyframeAttributes()
    +k.enabled = 1
    +SetKeyframeAttributes(k)
    +
    +# Set the number of frames to be 6.
    +AnimationSetNFrames(6)
    +
    +# Create a pseudocolor plot that exists over the first
    +# 6 frames of the animation.
    +AddPlot("Pseudocolor", "pressure")
    +SetPlotFrameRange(0, 0, 5)
    +
    +# Set the attributes at the first and last frame.
    +SetTimeSliderState(0)
    +pc = PseudocolorAttributes()
    +pc.min = 0
    +pc.max = 0.2
    +pc.minFlag = 1
    +pc.maxFlag = 1
    +SetPlotOptions(pc)
    +
    +SetTimeSliderState(5)
    +pc.max = 0.5
    +SetPlotOptions(pc)
    +
    +# Create a mesh plot that exists over frames 2
    +# through 4.
    +AddPlot("Mesh", "quadmesh")
    +
    +SetPlotFrameRange(1, 2, 4)
    +SetPlotDatabaseState(1, 2, 28)
    +SetPlotDatabaseState(1, 4, 56)
    +
    +# Cycle through all the frames, checking that all
    +# the images are correct.
    +TestSection("Simple 6 frame animation")
    +SetTimeSliderState(0)
    +DrawPlots()
    +Test("keyframe_01")
    +TimeSliderNextState()
    +Test("keyframe_02")
    +TimeSliderNextState()
    +Test("keyframe_03")
    +TimeSliderNextState()
    +Test("keyframe_04")
    +TimeSliderNextState()
    +Test("keyframe_05")
    +TimeSliderNextState()
    +Test("keyframe_06")
    +
    +# Change to frame 4, change the frame range and
    +# check that all the frames are ok.
    +TestSection("Setting plot frame range")
    +SetTimeSliderState(4)
    +SetPlotFrameRange(1, 0, 2)
    +SetPlotDatabaseState(1, 0, 0)
    +SetPlotDatabaseState(1, 2, 28)
    +
    +SetTimeSliderState(0)
    +Test("keyframe_07")
    +TimeSliderNextState()
    +Test("keyframe_08")
    +TimeSliderNextState()
    +Test("keyframe_09")
    +TimeSliderNextState()
    +Test("keyframe_10")
    +TimeSliderNextState()
    +Test("keyframe_11")
    +TimeSliderNextState()
    +Test("keyframe_12")
    +
    +SetActivePlots(1)
    +DeleteActivePlots()
    +
    +# Set the pseudocolor attributes for frame 2 and
    +# check that all the frames are ok.
    +TestSection("Setting a plot attributes keyframe")
    +SetActivePlots(0)
    +SetTimeSliderState(2)
    +pc.max = 0.7
    +SetPlotOptions(pc)
    +
    +SetTimeSliderState(0)
    +Test("keyframe_13")
    +TimeSliderNextState()
    +Test("keyframe_14")
    +TimeSliderNextState()
    +Test("keyframe_15")
    +TimeSliderNextState()
    +Test("keyframe_16")
    +TimeSliderNextState()
    +Test("keyframe_17")
    +TimeSliderNextState()
    +Test("keyframe_18")
    +
    +# Delete the keyframe at frame 2 and check that
    +# all the frames are ok.
    +TestSection("Removing a plot attributes keyframe")
    +SetTimeSliderState(2)
    +DeletePlotKeyframe(0, 2)
    +
    +SetTimeSliderState(0)
    +Test("keyframe_19")
    +TimeSliderNextState()
    +Test("keyframe_20")
    +TimeSliderNextState()
    +Test("keyframe_21")
    +TimeSliderNextState()
    +Test("keyframe_22")
    +TimeSliderNextState()
    +Test("keyframe_23")
    +TimeSliderNextState()
    +Test("keyframe_24")
    +
    +# Delete the keyframe at frame 5 and check that
    +# all the frames are ok.
    +TestSection("Deleting another plot attributes keyframe")
    +DeletePlotKeyframe(0, 5)
    +
    +SetTimeSliderState(0)
    +Test("keyframe_25")
    +TimeSliderNextState()
    +Test("keyframe_26")
    +TimeSliderNextState()
    +Test("keyframe_27")
    +TimeSliderNextState()
    +Test("keyframe_28")
    +TimeSliderNextState()
    +Test("keyframe_29")
    +TimeSliderNextState()
    +Test("keyframe_30")
    +
    +# Change the number of frames to 4.  Create a
    +# pseudocolor plot that changes its range but
    +# keeps the database state constant at 0.  Check
    +# that all the frames are ok.
    +TestSection("Decreasing number of animation frames")
    +DeleteActivePlots()
    +AnimationSetNFrames(4)
    +AddPlot("Pseudocolor", "pressure")
    +SetPlotFrameRange(0, 0, 3)
    +SetTimeSliderState(0)
    +pc.max = 0.2
    +SetPlotOptions(pc)
    +SetTimeSliderState(3)
    +pc.max = 0.5
    +SetPlotOptions(pc)
    +DeletePlotDatabaseKeyframe(0, 3)
    +DrawPlots()
    +
    +SetTimeSliderState(0)
    +Test("keyframe_31")
    +TimeSliderNextState()
    +Test("keyframe_32")
    +TimeSliderNextState()
    +Test("keyframe_33")
    +TimeSliderNextState()
    +Test("keyframe_34")
    +
    +# Test copying plots to a new window.
    +TestSection("Copying keyframed plot to a new window")
    +SetTimeSliderState(2)
    +AddWindow()
    +SetActiveWindow(2)
    +CopyPlotsToWindow(1, 2)
    +CopyAnnotationsToWindow(1, 2)
    +CopyViewToWindow(1, 2)
    +DrawPlots()
    +
    +Test("keyframe_35")
    +TimeSliderNextState()
    +Test("keyframe_36")
    +TimeSliderNextState()
    +Test("keyframe_37")
    +TimeSliderNextState()
    +Test("keyframe_38")
    +
    +# Take the window out of keyframe mode and
    +# check that setting the plot attributes sets
    +# them for all the frames.
    +TestSection("Turning off keyframe mode")
    +k.enabled = 0
    +SetKeyframeAttributes(k)
    +
    +SetPlotDatabaseState(0, 3, 3)
    +SetTimeSliderState(3)
    +pc.minFlag = 0
    +pc.maxFlag = 0
    +SetPlotOptions(pc)
    +
    +SetTimeSliderState(0)
    +Test("keyframe_39")
    +TimeSliderNextState()
    +Test("keyframe_40")
    +TimeSliderNextState()
    +Test("keyframe_41")
    +TimeSliderNextState()
    +Test("keyframe_42")
    +
    +# Clear the window, reset the view and enable
    +# keyframe mode in preparation to test view
    +# keyframing.
    +TestSection("Testing view keyframing")
    +DeleteAllPlots()
    +ResetView()
    +k.enabled = 1
    +SetKeyframeAttributes(k)
    +
    +# Open a database.
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +# Set the number of frames to be 9.
    +AnimationSetNFrames(9)
    +
    +# Create a pseudocolor plot that exists over the first
    +# 9 frames of the animation.
    +AddPlot("Pseudocolor", "u")
    +SetPlotFrameRange(0, 0, 8)
    +
    +# Create 5 view keyframes.
    +SetTimeSliderState(0)
    +v = GetView3D()
    +v.SetViewNormal(1, 0, 0)
    +v.SetFocus(0, 0, 0)
    +v.SetViewUp(0, 0, 1)
    +v.SetViewAngle(30)
    +v.SetParallelScale(17.3205)
    +v.SetNearPlane(-34.641)
    +v.SetFarPlane(34.641)
    +v.SetPerspective(1)
    +SetView3D(v)
    +SetViewKeyframe()
    +
    +SetTimeSliderState(2)
    +v.SetViewNormal(0, 1, 0)
    +SetView3D(v)
    +SetViewKeyframe()
    +
    +SetTimeSliderState(4)
    +v.SetViewNormal(-1, 0, 0)
    +SetView3D(v)
    +SetViewKeyframe()
    +
    +SetTimeSliderState(6)
    +v.SetViewNormal(0, -1, 0)
    +SetView3D(v)
    +SetViewKeyframe()
    +
    +SetTimeSliderState(8)
    +v.SetViewNormal(1, 0, 0)
    +SetView3D(v)
    +SetViewKeyframe()
    +
    +# Render the first frame.
    +SetTimeSliderState(0)
    +DrawPlots()
    +
    +# Enter camera view mode and cycle through all the
    +# frames, checking that all the images are correct.
    +ToggleCameraViewMode()
    +Test("keyframe_43")
    +TimeSliderNextState()
    +Test("keyframe_44")
    +TimeSliderNextState()
    +Test("keyframe_45")
    +TimeSliderNextState()
    +Test("keyframe_46")
    +TimeSliderNextState()
    +Test("keyframe_47")
    +TimeSliderNextState()
    +Test("keyframe_48")
    +TimeSliderNextState()
    +Test("keyframe_49")
    +TimeSliderNextState()
    +Test("keyframe_50")
    +TimeSliderNextState()
    +Test("keyframe_51")
    +
    +# Delete the view keyframe at frame 8 and check the image.
    +DeleteViewKeyframe(8)
    +Test("keyframe_52")
    +
    +# Clear all the view keyframes and check the first image.
    +ClearViewKeyframes()
    +TimeSliderNextState()
    +Test("keyframe_53")
    +
    +# Clear the window and reset the view in preparation
    +# to test moving keyframes.
    +TestSection("Moving keyframes")
    +DeleteAllPlots()
    +ResetView()
    +
    +# Open a database.
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +
    +# Set the number of frames to be 6.
    +AnimationSetNFrames(6)
    +
    +# Create a pseudocolor plot that exists over the first
    +# 6 frames of the animation.
    +AddPlot("Pseudocolor", "pressure")
    +SetPlotFrameRange(0, 0, 5)
    +
    +# Set 3 keyframes.
    +SetTimeSliderState(0)
    +pc = PseudocolorAttributes()
    +pc.min = 0
    +pc.max = 0.2
    +pc.minFlag = 1
    +pc.maxFlag = 1
    +SetPlotOptions(pc)
    +
    +SetTimeSliderState(3)
    +pc.max = 0.7
    +SetPlotOptions(pc)
    +
    +SetTimeSliderState(5)
    +pc.max = 0.5
    +SetPlotOptions(pc)
    +
    +# Render all the images.
    +SetTimeSliderState(0)
    +DrawPlots()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +
    +# Move the keyframe at frame 3 to 4, regenerate all
    +# the frames and check a few of them.
    +MovePlotKeyframe(0, 3, 4)
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +
    +SetTimeSliderState(2)
    +Test("keyframe_54")
    +SetTimeSliderState(4)
    +Test("keyframe_55")
    +SetTimeSliderState(5)
    +Test("keyframe_56")
    +
    +# Delete the last 2 keyframes, move the database
    +# keyframe from frame 5 to 3, regenerate all
    +# the frames and check a few of them.
    +DeletePlotKeyframe(0, 4)
    +DeletePlotKeyframe(0, 5)
    +
    +MovePlotDatabaseKeyframe(0, 5, 3)
    +SetTimeSliderState(0)
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +
    +SetTimeSliderState(1)
    +Test("keyframe_57")
    +SetTimeSliderState(3)
    +Test("keyframe_58")
    +SetTimeSliderState(4)
    +Test("keyframe_59")
    +
    +# Delete the second database keyframe, create
    +# 3 view keyframes and regenerate all the images.
    +DeletePlotDatabaseKeyframe(0, 3)
    +
    +SetTimeSliderState(0)
    +v = GetView3D()
    +v.SetViewNormal(-1, 0, 1)
    +v.SetFocus(5, 0.35, 2.5)
    +v.SetViewUp(0, 1, 0)
    +v.SetViewAngle(30)
    +v.SetParallelScale(5.6009)
    +v.SetNearPlane(-11.2018)
    +v.SetFarPlane(11.2018)
    +v.SetPerspective(1)
    +SetView3D(v)
    +SetViewKeyframe()
    +
    +SetTimeSliderState(2)
    +v.SetViewNormal(0, 0, 1)
    +SetView3D(v)
    +SetViewKeyframe()
    +
    +SetTimeSliderState(5)
    +v.SetViewNormal(1, 0, 1)
    +SetView3D(v)
    +SetViewKeyframe()
    +
    +ToggleCameraViewMode()
    +SetTimeSliderState(0)
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +
    +# Move the view keyframe at frame 2 to frame 3,
    +# regenerate all the frames and check a few of them.
    +MoveViewKeyframe(2, 3)
    +SetTimeSliderState(0)
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +
    +SetTimeSliderState(2)
    +Test("keyframe_60")
    +SetTimeSliderState(3)
    +Test("keyframe_61")
    +SetTimeSliderState(4)
    +Test("keyframe_62")
    +
    +# Clear the window and reset the view in preparation
    +# to test operator keyframes.
    +TestSection("Operator keyframes")
    +DeleteAllPlots()
    +ResetView()
    +
    +# Open a database.
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +# Set the number of frames to be 11.
    +AnimationSetNFrames(11)
    +
    +# Create a pseudocolor plot that exists over the first
    +# 11 frames of the animation.
    +AddPlot("Pseudocolor", "hardyglobal")
    +AddOperator("Slice")
    +AddOperator("Isosurface")
    +SetPlotFrameRange(0, 0, 10)
    +
    +# Set 3 slice keyframes.
    +SetTimeSliderState(0)
    +slice = SliceAttributes()
    +slice.originType = slice.Percent
    +slice.originPercent = 0
    +slice.project2d = 0
    +SetOperatorOptions(slice)
    +SetTimeSliderState(2)
    +SetOperatorOptions(slice)
    +SetTimeSliderState(10)
    +slice.originPercent = 100
    +SetOperatorOptions(slice)
    +
    +# Set 2 isosurface keyframes.
    +SetTimeSliderState(0)
    +iso = IsosurfaceAttributes()
    +SetOperatorOptions(iso)
    +SetTimeSliderState(5)
    +iso.contourNLevels = 5
    +SetOperatorOptions(iso)
    +
    +SetTimeSliderState(0)
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (0.225979, 0.625179, 0.747051)
    +v.focus = (0, 0, 0)
    +v.viewUp = (-0.965293, 0.246786, 0.0854703)
    +v.viewAngle = 30
    +v.parallelScale = 17.3205
    +v.nearPlane = -34.641
    +v.farPlane = 34.641
    +v.perspective = 1
    +SetView3D(v)
    +
    +# Check a bunch of frames.
    +Test("keyframe_63")
    +SetTimeSliderState(2)
    +Test("keyframe_64")
    +SetTimeSliderState(5)
    +Test("keyframe_65")
    +SetTimeSliderState(7)
    +Test("keyframe_66")
    +SetTimeSliderState(10)
    +Test("keyframe_67")
    +
    +# Delete the slice keyframe and move the isosurface keyframe.
    +DeleteOperatorKeyframe(0, 0, 2)
    +MoveOperatorKeyframe(0, 1, 5, 10)
    +
    +# Check a bunch of frames.
    +SetTimeSliderState(0)
    +Test("keyframe_68")
    +SetTimeSliderState(2)
    +Test("keyframe_69")
    +SetTimeSliderState(5)
    +Test("keyframe_70")
    +SetTimeSliderState(7)
    +Test("keyframe_71")
    +SetTimeSliderState(10)
    +Test("keyframe_72")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_lambda2.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_lambda2.html new file mode 100644 index 000000000..74f513fab --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_lambda2.html @@ -0,0 +1,54 @@ + +Results for hybrid/lambda2.py + +

    Results of VisIt Regression Test - hybrid/lambda2

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    iso_lambda20.000.00
    contour_lambda20.000.00
    pseudo_lambda20.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_lambda2_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_lambda2_py.html new file mode 100644 index 000000000..48ef22cef --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_lambda2_py.html @@ -0,0 +1,53 @@ +hybrid/lambda2.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  lambda2.py
    +#
    +#  Tests:#     plots   - pseudocolor, contour
    +#  Defect ID:  1829
    +#
    +#  Programmer: Kevin Griffin
    +#  Date:       Tue Aug 5 15:01:27 PDT 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +ds = data_path("miranda_test_data/TG_vortex/plot.raw")
    +OpenDatabase(ds)
    +DefineScalarExpression("lambda2", "lambda2(gradient(velocity[0]), gradient(velocity[1]), gradient(velocity[2]))")
    +TimeSliderNextState()
    +TimeSliderNextState()
    +
    +#
    +# Test 1
    +#
    +AddPlot("Pseudocolor", "lambda2")
    +AddOperator("Isovolume")
    +IsovolumeAtts = IsovolumeAttributes()
    +IsovolumeAtts.lbound = -999.99
    +IsovolumeAtts.ubound = 0.0
    +IsovolumeAtts.variable = "default"
    +SetOperatorOptions(IsovolumeAtts)
    +
    +DrawPlots()
    +Test("iso_lambda2")
    +DeleteAllPlots()
    +
    +#
    +# Test 2
    +#
    +AddPlot("Contour", "lambda2")
    +DrawPlots()
    +Test("contour_lambda2")
    +DeleteAllPlots()
    +
    +#
    +# Test 3
    +#
    +AddPlot("Pseudocolor", "lambda2")
    +DrawPlots()
    +Test("pseudo_lambda2")
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_lineout.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_lineout.html new file mode 100644 index 000000000..ad588ebf0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_lineout.html @@ -0,0 +1,251 @@ + +Results for hybrid/lineout.py + +

    Results of VisIt Regression Test - hybrid/lineout

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Lineout2d0.000.00
    CurvesFrom2d_withSampling0.000.00
    Lineout3d0.000.00
    CurvesFrom3d_withSampling0.000.00
    MultiVarLineout2d0.000.00
    MultiVarCurvesFrom2d_withSampling0.000.00
    LineoutSAMRAI1.460.95
    CurvesFromSAMRAI_withSampling0.000.00
    LineoutSpecifyWindow_010.000.00
    CurvesFromSpecifyWindow_01_withSampling0.000.00
    LineoutSpecifyWindow_020.000.00
    CurvesFromSpecifyWindow_02_withSampling0.000.00
    Lineout2d_output_040 modifications totalling 0 lines
    Lineout2d_output_080 modifications totalling 0 lines
    CurvesFrom2d_noSampling0.000.00
    Lineout2d_output_020 modifications totalling 0 lines
    Lineout2d_output_150 modifications totalling 0 lines
    CurvesFrom3d_noSampling0.000.00
    MultiVarCurvesFrom2d_noSampling0.000.00
    CurvesFromSAMRAI_noSampling0.000.00
    CurvesFromSpecifyWindow_01_noSampling0.000.00
    CurvesFromSpecifyWindow_02_noSampling0.000.00
    CurvesFromDynamic_010.000.00
    CurvesFromDynamic_020.000.00
    CurvesFromDynamic_030.000.00
    CurvesFromDynamic_040.000.00
    CurvesFromDynamic_050.000.00
    CurvesFromDynamic_060.000.00
    Dynamic2_010.000.00
    Dynamic2_020.000.00
    Dynamic2_030.000.00
    LineoutTecPlot_010.000.00
    CurvesFromTecPlot_010.000.00
    Operator-Created Variables
    lineout_op_vars_000.000.00
    lineout_op_vars_010.000.00
    lineout_op_vars_020.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_lineout_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_lineout_py.html new file mode 100644 index 000000000..fa3c77c0b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_lineout_py.html @@ -0,0 +1,661 @@ +hybrid/lineout.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  lineout.py #
    +#  Tests:      plots     - Curve
    +#              operators - Lineout
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Jan 3 14:22:41 PST 2003
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Mon Mar 17 09:54:14 PST 2003
    +#    Added TestMultiVarLineout2D.
    +#
    +#    Kathleen Bonnell, Tue Dec 23 09:29:29 PST 2003 
    +#    Added TestSAMRAI.
    +#
    +#    Kathleen Bonnell, Thu Jul 29 11:59:35 PDT 2004 
    +#    Added tests for no-sampling version, renamed old Curve* tests to
    +#    indicate they were generated with-sampling. 
    +#
    +#    Kathleen Bonnell, Thu Aug  5 10:44:22 PDT 2004 
    +#    Added calls to ResetPickLetter() and ResetLineoutColor() at the end of
    +#    each test, so that failure on any one test won't necessarily affect the
    +#    tests that follow. 
    +#
    +#    Kathleen Bonnell, Wed Nov 24 11:38:55 PST 2004 
    +#    Modified the way that sampling gets turned on due to changes in Lineout
    +#    Attributes and GlobalLineoutAttributes.  Use global version to turn
    +#    sampling on and off. 
    +#
    +#    Kathleen Bonnell, Fri Feb  4 11:17:56 PST 2005 
    +#    Added TestDynamic, to test new global atts: curveOption and colorOption.
    +#
    +#    Hank Childs, Wed Feb 16 07:34:07 PST 2005
    +#    Rename variables that have unsupported characters.
    +#
    +#    Kathleen Bonnell, Wed Mar 23 17:58:20 PST 2005 
    +#    Added TestDynamic2. 
    +#
    +#    Kathleen Bonnell, hu May 19 11:26:39 PDT 2005 
    +#    Added TestTecPlot. 
    +#
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +#    Kathleen Bonnell, Tue Jun 20 16:02:38 PDT 2006
    +#    Added tests for GetOutputArray to Lineout2D.
    +#
    +#    Kathleen Bonnell, Wed Jun 28 15:57:58 PDT 2006
    +#    Added tests to TestDynamicLineout, testing having curves from  different
    +#    time-varying databases (same originating window and different originating
    +#    window) in same curve window, and update the curves via the originating
    +#    plots time-slider (bug '7002).
    +#
    +#    Brad Whitlock, Wed Jan 14 16:12:10 PST 2009
    +#    I changed the call to GetOutputArray. It's no longer a built-in function
    +#    in the CLI.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Brad Whitlock, Tue Mar 26 12:06:51 PDT 2013
    +#    I added TestOperatorCreatedVariables.
    +#
    +#    Kathleen Biagas, Wed Feb 24 10:11:35 PST 2021
    +#    Remove setting of Pseudocolor colorTableName name to 'Default', as
    +#    that is now the default anyways.
    +#    Reset default continuous color table to 'hot' after a test that changes
    +#    it is finished, so that other tests aren't affected.
    +#
    +#    Justin Privitera, Wed May 18 11:25:46 PDT 2022
    +#    Changed *active* to *default* for everything related to color tables.
    +# 
    +# ----------------------------------------------------------------------------
    +
    +def GetOutputArray(plotID = -1, winID = -1):
    +    gInfo = GetGlobalAttributes()
    +    oldWin = gInfo.windows[gInfo.activeWindow]
    +    # Set the active window
    +    if winID != -1:
    +        SetActiveWindow(winID)
    +
    +    # Get the active plots
    +    active = []
    +    if plotID != -1:
    +        pL = GetPlotList()
    +        for i in range(pL.GetNumPlots()):
    +            if pL.GetPlots(i).activeFlag:
    +                active = active + [i]
    +        SetActivePlots(plotID)
    +
    +    pInfo = GetPlotInformation()
    +
    +    # Restore the old active plots
    +    if len(active) > 0:
    +        SetActivePlots(tuple(active))
    +
    +    # Restore the old active window
    +    if winID != -1:
    +        SetActiveWindow(oldWin)
    +
    +    return pInfo["Curve"]
    +
    +def InitAnnotation():
    +    a = AnnotationAttributes()
    +    TurnOffAllAnnotations(a)
    +    a.axes2D.visible = 1
    +    a.axes2D.xAxis.label.visible = 0
    +    a.axes2D.yAxis.label.visible = 0
    +    a.axes2D.xAxis.title.visible = 0
    +    a.axes2D.yAxis.title.visible = 0
    +    SetAnnotationAttributes(a)
    +
    +def TestLineout2D(time, suffix):
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    # Set the colortable to one that has white at the bottom values.
    +    SetDefaultContinuousColorTable("calewhite")
    +
    +    # Create the variable list.
    +    vars = ("default")
    +
    +    # Do some lineouts.
    +    p0 = (-4.01261, 1.91818)
    +    p1 = (-0.693968, 4.448759)
    +    p2 = (4.144392, 1.713066)
    +    nsteps = 15
    +    for i in range(nsteps):
    +        t = float(i) / float(nsteps - 1)
    +        p3x = t * p2[0] + (1. - t) * p1[0]
    +        p3y = t * p2[1] + (1. - t) * p1[1]
    +        SetActiveWindow(1)
    +        Lineout(p0, (p3x, p3y), vars)
    +
    +    if (time == 1):
    +        SetActiveWindow(1)
    +        Test("Lineout2d")
    +
    +    if (time == 2):
    +        SetActiveWindow(1)
    +        oa = GetOutputArray(4, 2)
    +        s = ''.join(['%f, '% x for x in oa])
    +        s = '(' + s + ')'
    +        TestText("Lineout2d_output_04", s)
    +        oa = GetOutputArray(8, 2)
    +        s = ''.join(['%f, '% x for x in oa])
    +        s = '(' + s + ')'
    +        TestText("Lineout2d_output_08", s)
    +
    +    SetActiveWindow(2)
    +
    +    InitAnnotation()
    +    Test("CurvesFrom2d" + suffix)
    +
    +    if (time == 2):
    +        oa = GetOutputArray(2)
    +        s = ''.join(['%f, '% x for x in oa])
    +        s = '(' + s + ')'
    +        TestText("Lineout2d_output_02", s)
    +        oa = GetOutputArray()
    +        s = ''.join(['%f, '% x for x in oa])
    +        s = '(' + s + ')'
    +        TestText("Lineout2d_output_15", s)
    +
    +    # Reset the CT to 'hot'
    +    SetDefaultContinuousColorTable("hot")
    +    # Delete the second window.
    +    DeleteWindow()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +    ResetLineoutColor()
    +
    +def TestLineout3D(time, suffix):
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +
    +    # Set the view
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.65577, 0.350079, 0.668888)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0.218553, 0.936082, -0.275655)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.perspective = 1
    +    SetView3D(v)
    +
    +    # Do some lineouts
    +    vars = ("default")
    +    p0 = (-10., -10., -10.)
    +    P  = ((-10., -10., 10.), (-10., 10., -10.), (-10., 10., 10.),\
    +(10., -10., -10.), (10., -10., 10.), (10., 10., -10.), (10., 10., 10.))
    +    for p in P:
    +        SetActiveWindow(1)
    +        Lineout(p0, p, vars)
    +
    +    if (time == 1):
    +        SetActiveWindow(1)
    +        pc = PseudocolorAttributes()
    +        pc.colorTableName = "xray"
    +        pc.SetOpacityType(pc.Constant)
    +        pc.opacity = 0.5
    +        SetPlotOptions(pc)
    +        Test("Lineout3d")
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("CurvesFrom3d" + suffix)
    +
    +    # Delete the second window.
    +    DeleteWindow()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +    ResetLineoutColor()
    +
    +def TestMultiVarLineout2D(time, suffix):
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    # Do some lineouts
    +    vars = ("p", "u", "v")
    +    Y = (2, 3, 4)
    +    x1 = -4.5
    +    x2 = 4.5
    +    for y in Y:
    +        SetActiveWindow(1)
    +        Lineout((x1, y), (x2, y), vars)
    +
    +    if (time == 1):
    +        SetActiveWindow(1)
    +        Test("MultiVarLineout2d")
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("MultiVarCurvesFrom2d" + suffix)
    +    DeleteWindow()
    +    DeleteAllPlots()
    +
    +    ResetPickLetter()
    +    ResetLineoutColor()
    +
    +def TestSAMRAI(time, suffix):
    +    OpenDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +    AddPlot("Pseudocolor", "Primitive Var _number_0")
    +    DrawPlots()
    +
    +    # Set the colortable to one that has white at the bottom values.
    +    SetDefaultContinuousColorTable("rainbow")
    +
    +    AddOperator("Slice", 1)
    +    slice = SliceAttributes()
    +    slice.originType = slice.Percent
    +    slice.originPercent = 18
    +    slice.axisType = slice.ZAxis
    +    slice.project2d = 1
    +    SetOperatorOptions(slice, 0, 1)
    +    DrawPlots()
    +    ResetView()
    +
    +    SetTimeSliderState(1)
    +
    +    #Do some lineouts
    +    p0 = (3, 3)
    +    p1 = (0, 20)
    +    p2 = (30, 0)
    +    nsteps = 15
    +    for i in range(nsteps):
    +        t = float(i) / float(nsteps - 1)
    +        p3x = t * p2[0] + (1. - t) * p1[0]
    +        p3y = t * p2[1] + (1. - t) * p1[1]
    +        SetActiveWindow(1)
    +        Lineout(p0, (p3x, p3y))
    +
    +    if (time == 1):
    +        SetActiveWindow(1)
    +        Test("LineoutSAMRAI")
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("CurvesFromSAMRAI" + suffix)
    +    DeleteWindow()
    +    DeleteAllPlots()
    +
    +    ResetPickLetter()
    +    ResetLineoutColor()
    +    SetDefaultContinuousColorTable("hot")
    +
    +def TestSpecifyLineoutWindow(time, suffix):
    +    #window 1
    +    OpenDatabase(data_path("pdb_test_data/dbA00.pdb"))
    +
    +    AddPlot("Pseudocolor", "mesh/ireg")
    +    DrawPlots()
    +    ResetView()
    +
    +    Lineout((0, 2.5), (5, 2.5))
    +
    +    if (time == 1):
    +        SetActiveWindow(1)
    +        InitAnnotation()
    +        Test("LineoutSpecifyWindow_01")
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("CurvesFromSpecifyWindow_01" + suffix)
    +
    +    SetActiveWindow(1)
    +    CloneWindow()
    +    #window 3
    +    SetTimeSliderState(4)
    +    DrawPlots()
    +
    +
    +    gla = GetGlobalLineoutAttributes()
    +    gla.createWindow = 0
    +    gla.windowId = 4
    +    SetGlobalLineoutAttributes(gla)
    +
    +    Lineout((0, 2.5), (5, 2.5))
    +
    +    if (time == 1):
    +        SetActiveWindow(3)
    +        InitAnnotation()
    +        Test("LineoutSpecifyWindow_02")
    +
    +    SetActiveWindow(4)
    +    InitAnnotation()
    +    Test("CurvesFromSpecifyWindow_02" + suffix)
    +
    +    DeleteWindow()
    +    SetActiveWindow(3)
    +    DeleteWindow()
    +    SetActiveWindow(2)
    +    DeleteWindow()
    +    DeleteAllPlots()
    +    gla.createWindow = 1
    +    gla.windowId = 2
    +    SetGlobalLineoutAttributes(gla)
    +
    +    ResetPickLetter()
    +    ResetLineoutColor()
    +
    +def TestDynamicLineout(time, suffix):
    +    if (time == 1):
    +        return
    +    #window 1
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    ResetView()
    +
    +    Lineout((0, 0.5, 2.5), (10, 0.5, 2.5))
    +
    +    gla = GetGlobalLineoutAttributes()
    +    gla.Dynamic = 1
    +    gla.curveOption = gla.UpdateCurve
    +    SetGlobalLineoutAttributes(gla)
    +
    +    SetActiveWindow(1)
    +    t = 0
    +    for i in range (10):
    +        t += 5
    +        SetTimeSliderState(t)
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    ResetView()
    +    Test("CurvesFromDynamic_01")
    +
    +    # go back to the beginning time state
    +    # and have new curves created for each new time 
    +    SetActiveWindow(1)
    +    t = 0
    +    SetTimeSliderState(t)
    +
    +    gla.curveOption = gla.CreateCurve
    +    SetGlobalLineoutAttributes(gla)
    +    for i in range (7):
    +        t += 5
    +        SetTimeSliderState(t)
    +
    +    # now have each new curve have its own color.
    +    gla.colorOption = gla.CreateColor
    +    SetGlobalLineoutAttributes(gla)
    +    for i in range (7):
    +        t += 5
    +        SetTimeSliderState(t)
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    ResetView()
    +    Test("CurvesFromDynamic_02")
    +
    +    ResetPickLetter()
    +    ResetLineoutColor()
    +    # delete window 2
    +    DeleteWindow()
    +    # clear all plots from window 1
    +    DeleteAllPlots()
    +
    +    dbs = (data_path("pdb_test_data/dbA00.pdb"),
    +           data_path("pdb_test_data/dbB00.pdb"),
    +           data_path("pdb_test_data/dbC00.pdb"))
    +    OpenDatabase(dbs[0])
    +    AddPlot("Pseudocolor", "mesh/ireg")
    +    OpenDatabase(dbs[1])
    +    AddPlot("Pseudocolor", "mesh/ireg")
    +    DrawPlots()
    +
    +    AddWindow()
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    OpenDatabase(dbs[2])
    +    AddPlot("Pseudocolor", "mesh/ireg")
    +    DrawPlots()
    +
    +    gla.Dynamic = 1
    +    gla.curveOption = gla.UpdateCurve
    +    SetGlobalLineoutAttributes(gla)
    +
    +    #Lineout for dbC00.pdb in window 2
    +    Lineout((5.0, 7.5, 0.), (10, 7.5, 0.))
    +
    +    SetActiveWindow(1)
    +    SetActivePlots(1)
    +
    +    #Lineout for dbB00.pdb in window 1
    +    Lineout((0, 8, 0), (5, 8, 0))
    +
    +    SetActivePlots(0)
    +    #Lineout for dbA00.pdb in window 1
    +    Lineout((0, 3, 0), (5, 3, 0))
    +
    +
    +    SetActiveWindow(3)
    +    InitAnnotation()
    +    Test("CurvesFromDynamic_03")
    +
    +    SetActiveWindow(1)
    +    SetActiveTimeSlider(dbs[1])
    +    SetTimeSliderState(15)
    +
    +    SetActiveWindow(3)
    +    Test("CurvesFromDynamic_04")
    +
    +    SetActiveWindow(1)
    +    SetActiveTimeSlider(dbs[0])
    +    SetTimeSliderState(3)
    +
    +
    +    SetActiveWindow(3)
    +    Test("CurvesFromDynamic_05")
    +
    +    SetActiveWindow(2)
    +    SetTimeSliderState(29)
    +
    +    SetActiveWindow(3)
    +    Test("CurvesFromDynamic_06")
    +
    +    ResetLineoutColor()
    +    ResetPickLetter()
    +    # delete window 3
    +    DeleteWindow()
    +    # delete window 2
    +    SetActiveWindow(2)
    +    DeleteWindow()
    +    # clear all plots from window 1
    +    DeleteAllPlots()
    +
    +def TestDynamic2():
    +    # VisIt00006006 -- ensure  that 'ClearRefLines' will 'disconnect' the lineout 
    +    # from its originating plot, and won't update when orig plot changes time.
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    ResetView()
    +    SetTimeSliderState(0)
    +    Lineout((0, 0.5, 2.5), (10, 0.5, 2.5))
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("Dynamic2_01")
    +
    +    SetActiveWindow(1)
    +    gla = GetGlobalLineoutAttributes()
    +    gla.Dynamic = 1
    +    gla.curveOption = gla.UpdateCurve
    +    SetGlobalLineoutAttributes(gla)
    +
    +    SetTimeSliderState(27)
    +
    +    SetActiveWindow(2)
    +    Test("Dynamic2_02")
    +
    +    SetActiveWindow(1)
    +    gla.Dynamic = 0
    +    SetGlobalLineoutAttributes(gla)
    +
    +    SetTimeSliderState(52)
    +
    +    SetActiveWindow(2)
    +    Test("Dynamic2_03")
    +
    +    ResetPickLetter()
    +    ResetLineoutColor()
    +    DeleteWindow()
    +    DeleteAllPlots()
    +
    +
    +def TestTecPlot():
    +    # VisIt00006243 -- curve generated from Lineout looks reversed in X
    +    OpenDatabase(data_path("tecplot_test_data/T3L3CLS17u.plt"))
    +
    +    AddPlot("Mesh", "mesh")
    +    AddPlot("Pseudocolor", "k")
    +    DrawPlots()
    +    ResetView()
    +
    +    v = GetView2D()
    +    v.windowCoords = (0.340063, 0.340868, 0.00512584, 0.00572613 )
    +    SetView2D(v)
    +
    +    Lineout((0.340505, 0.00565604, 0), (0.340291, 0.00514717, 0))
    +
    +    InitAnnotation()
    +    Test("LineoutTecPlot_01")
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("CurvesFromTecPlot_01")
    +
    +    ResetPickLetter()
    +    ResetLineoutColor()
    +    # delete window 2
    +    DeleteWindow()
    +    # remove plots from window 1
    +    DeleteAllPlots()
    +
    +def TestOperatorCreatedVariables():
    +    def SetCurveAtts():
    +        c = CurveAttributes(1)
    +        c.lineWidth = 2
    +        c.curveColor = (255,0,0,255)
    +        c.curveColorSource = c.Custom
    +        c.showLabels = 0
    +        SetPlotOptions(c)
    +
    +    TestSection("Operator-Created Variables")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    # Do lineout on a data binning variable.
    +    AddPlot("Pseudocolor", "operators/DataBinning/2D/Mesh", 1, 1)
    +    DataBinningAtts = DataBinningAttributes()
    +    DataBinningAtts.numDimensions = DataBinningAtts.Two  # One, Two, Three
    +    DataBinningAtts.dim1BinBasedOn = DataBinningAtts.X  # X, Y, Z, Variable
    +    DataBinningAtts.dim1Var = "default"
    +    DataBinningAtts.dim1SpecifyRange = 0
    +    DataBinningAtts.dim1MinRange = 0
    +    DataBinningAtts.dim1MaxRange = 1
    +    DataBinningAtts.dim1NumBins = 50
    +    DataBinningAtts.dim2BinBasedOn = DataBinningAtts.Y  # X, Y, Z, Variable
    +    DataBinningAtts.dim2Var = "default"
    +    DataBinningAtts.dim2SpecifyRange = 0
    +    DataBinningAtts.dim2MinRange = 0
    +    DataBinningAtts.dim2MaxRange = 1
    +    DataBinningAtts.dim2NumBins = 50
    +    DataBinningAtts.dim3BinBasedOn = DataBinningAtts.Variable  # X, Y, Z, Variable
    +    DataBinningAtts.dim3Var = "default"
    +    DataBinningAtts.dim3SpecifyRange = 0
    +    DataBinningAtts.dim3MinRange = 0
    +    DataBinningAtts.dim3MaxRange = 1
    +    DataBinningAtts.dim3NumBins = 50
    +    DataBinningAtts.outOfBoundsBehavior = DataBinningAtts.Clamp  # Clamp, Discard
    +    DataBinningAtts.reductionOperator = DataBinningAtts.Maximum  # Average, Minimum, Maximum, StandardDeviation, Variance, Sum, Count, RMS, PDF
    +    DataBinningAtts.varForReduction = "hardyglobal"
    +    DataBinningAtts.emptyVal = 0
    +    DataBinningAtts.outputType = DataBinningAtts.OutputOnBins  # OutputOnBins, OutputOnInputMesh
    +    DataBinningAtts.removeEmptyValFromCurve = 1
    +    SetOperatorOptions(DataBinningAtts, 1)
    +    DrawPlots()
    +    Lineout((9, 9), (4.5, -9))
    +    SetActiveWindow(1)
    +    ResetView()
    +    Test("lineout_op_vars_00")
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    ResetView()
    +    SetCurveAtts()
    +    Test("lineout_op_vars_01")
    +
    +    # delete window 2
    +    DeleteWindow()
    +    # remove plots from window 1
    +    DeleteAllPlots()
    +
    +    # Do lineout on a data binning variable that had other operators
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    AddPlot("Pseudocolor", "operators/DataBinning/2D/Mesh", 1, 1)
    +    SetOperatorOptions(DataBinningAtts, 1)
    +    AddOperator("Transform")
    +    AddOperator("Project")
    +    DrawPlots()
    +    Lineout((9, 9), (4.5, -9))
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    SetCurveAtts()
    +    Test("lineout_op_vars_02")
    +
    +    # delete window 2
    +    DeleteWindow()
    +    # remove plots from window 1
    +    DeleteAllPlots()
    +
    +
    +def DoTests(t,s):
    +    TestLineout2D(t,s)
    +    TestLineout3D(t,s)
    +    TestMultiVarLineout2D(t,s)
    +    TestSAMRAI(t,s)
    +    TestSpecifyLineoutWindow(t,s)
    +    TestDynamicLineout(t,s)
    +
    +def LineoutMain():
    +    InitAnnotation()
    +    la = GetGlobalLineoutAttributes()
    +    la.samplingOn = 1
    +    SetGlobalLineoutAttributes(la)
    +
    +    DoTests(1, "_withSampling")
    +
    +    la.samplingOn = 0
    +    SetGlobalLineoutAttributes(la)
    +
    +    DoTests(2, "_noSampling")
    +
    +    TestDynamic2()
    +    TestTecPlot()
    +    TestOperatorCreatedVariables()
    +
    +# Call the main function
    +LineoutMain()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_locktime.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_locktime.html new file mode 100644 index 000000000..714d1cb91 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_locktime.html @@ -0,0 +1,124 @@ + +Results for hybrid/locktime.py + +

    Results of VisIt Regression Test - hybrid/locktime

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    locktime_000.000.00
    locktime_010 modifications totalling 0 lines
    locktime_020.000.00
    locktime_030 modifications totalling 0 lines
    locktime_040 modifications totalling 0 lines
    locktime_050.000.00
    locktime_060 modifications totalling 0 lines
    locktime_070.000.00
    locktime_080 modifications totalling 0 lines
    locktime_090.000.00
    locktime_100 modifications totalling 0 lines
    locktime_110.000.00
    locktime_120 modifications totalling 0 lines
    locktime_130 modifications totalling 0 lines
    locktime_140.000.00
    locktime_150 modifications totalling 0 lines
    locktime_160.000.00
    locktime_170 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_locktime_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_locktime_py.html new file mode 100644 index 000000000..873fa0eb8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_locktime_py.html @@ -0,0 +1,125 @@ +hybrid/locktime.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial
    +#  CLASSES: nightly
    +#
    +#  Test Case:  multiwindowcorrelation.py 
    +#
    +#  Tests:      Tests database correlations when there are multiple windows.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Mon Mar 22 15:59:24 PST 2004
    +#
    +#  Modifications:
    +#    Brad Whitlock, Fri Apr 1 15:01:13 PST 2005
    +#    Added a function to check the database correlation list.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def GetTruncatedWindowInformationString():
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 5 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    for i in range(5):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    return s
    +
    +def TestLength(testname):
    +    tsLength = TimeSliderGetNStates()
    +    testString = "%s has %d states\n" % (GetActiveTimeSlider(), tsLength)
    +    testString = testString + GetTruncatedWindowInformationString()
    +    TestText(testname, testString)
    +
    +#
    +# Tests the time slider length and the correlation list.
    +#
    +def TestLengthAndCorrelationList(testname):
    +    tsLength = TimeSliderGetNStates()
    +    s = "%s has %d states\n" % (GetActiveTimeSlider(), tsLength)
    +    s = s + GetTruncatedWindowInformationString() + "\n\n"
    +
    +    names = GetDatabaseCorrelationNames()
    +    for name in names:
    +        c = GetDatabaseCorrelation(name)
    +        s = s + str(c) + "\n"
    +    TestText(testname, s)
    +
    +# Create a plot of DB A.
    +OpenDatabase(data_path("pdb_test_data/dbA00.pdb"))
    +
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +Test("locktime_00")
    +TestLength("locktime_01")
    +
    +# Create a second window and create plot of DB B.
    +CloneWindow()
    +DeleteAllPlots()
    +OpenDatabase(data_path("pdb_test_data/dbB00.pdb"))
    +
    +AddPlot("FilledBoundary", "material(mesh)")
    +InvertBackgroundColor()
    +DrawPlots()
    +Test("locktime_02")
    +TestLength("locktime_03")
    +
    +#
    +# Set the database correlation options to control how we create automatic
    +# correlations. When we lock the windows together, VisIt will create a
    +# correlation for the databases in both windows because the windows do not
    +# have a common database. I'm setting the correlation options here because 
    +# I want a StretchedIndexCorrelation correlation to be created.
    +#
    +StretchedIndexCorrelation = 1
    +SetDatabaseCorrelationOptions(StretchedIndexCorrelation, 0)
    +
    +#
    +# Lock time for window 2 and window 1. This will create a correlation between
    +# the databases in both windows.
    +#
    +ToggleLockTime()
    +SetActiveWindow(1)
    +ToggleLockTime()
    +TestLengthAndCorrelationList("locktime_04")
    +
    +SetTimeSliderState(17)
    +Test("locktime_05")
    +TestLength("locktime_06")
    +
    +SetActiveWindow(2)
    +Test("locktime_07")
    +TestLength("locktime_08")
    +
    +SetActiveWindow(1)
    +SetTimeSliderState(7)
    +Test("locktime_09")
    +TestLength("locktime_10")
    +
    +SetActiveWindow(2)
    +Test("locktime_11")
    +TestLength("locktime_12")
    +
    +#
    +# Now let's delete the correlation that was created. It will be have the same
    +# name as the active time slider.
    +#
    +DeleteDatabaseCorrelation(GetActiveTimeSlider())
    +TestLengthAndCorrelationList("locktime_13")
    +
    +# Now try moving the time slider state for DB B, since that's the active time
    +# slider for window 2, which is the active window right now.
    +SetTimeSliderState(15)
    +Test("locktime_14")
    +TestLength("locktime_15")
    +
    +# Make sure that window 1 did not change.
    +SetActiveWindow(1)
    +Test("locktime_16")
    +TestLength("locktime_17")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_locus.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_locus.html new file mode 100644 index 000000000..f5bf97d71 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_locus.html @@ -0,0 +1,36 @@ + +Results for hybrid/locus.py + +

    Results of VisIt Regression Test - hybrid/locus

    + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    +

    Final Return Code: 121

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_locus_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_locus_py.html new file mode 100644 index 000000000..f004d6175 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_locus_py.html @@ -0,0 +1,148 @@ +hybrid/locus.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  locus.py
    +#
    +#  Purpose:
    +#      Identifies the locus of points of maximum value from inside a sphere.
    +#      Tests repeated lineout capabilities, as well as the VisIt writer.
    +#
    +#  Programmer: Hank Childs
    +#  Date:       April 4, 2005
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Jul 14 10:28:41 PDT 2005
    +#    Save tmp.ultra to 'current' directory.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Jeremy Meredith, Wed Jan 20 12:50:34 EST 2010
    +#    Added src/lib to python path so we can find the visit writer module.
    +#
    +#    Mark C. Miller, Mon Apr 12 15:40:16 PDT 2010
    +#    Gracefully skip if we're in scalable mode.
    +#
    +#    Mark C. Miller, Tue Jun 29 16:51:46 PDT 2010
    +#    Changed exit code if we're in scalable mode from 116 (skip) to
    +#    121 (not applicable)
    +#
    +#    Kathleen Biagas, Tue Jul 15 11:10:27 MST 2014 
    +#    Don't need VISITARCHHOME on Windows, but do need 'outputToCurrentDirectory'
    +#
    +# ----------------------------------------------------------------------------
    +
    +import sys
    +import os
    +import platform
    +from os.path import join as pjoin
    +if not platform.system() == "Windows":
    +    sys.path.append(pjoin(os.environ['VISITARCHHOME'],"lib"))
    +
    +import visit_writer
    +
    +
    +# We can't run this test while in SR mode
    +# So, exit and indicate the test was skipped.
    +# 'scalable' is defined in Testing.py
    +if TestEnv.params["scalable"] != 0:
    +    Exit(121)
    +
    +# BEGIN USER MODIFIABLE SECTION
    +
    +database = silo_data_path("globe.silo")
    +origin = (0,0,0)
    +radius = 10
    +variable = "recenter(t) + 10*u"
    +isExpression = 1
    +startTheta = 0
    +thetaStep = 36
    +nThetaSteps = 11
    +startPhi = 0
    +phiStep = 18
    +nPhiSteps = 11
    +
    +# END USER MODIFIABLE SECTION
    +
    +if (isExpression):
    +   DefineScalarExpression("locus", variable)
    +OpenDatabase(database)
    +AddPlot("Pseudocolor", "locus")
    +DrawPlots()
    +
    +import math
    +
    +sw = GetSaveWindowAttributes()
    +sw.format = sw.ULTRA
    +sw.family = 0
    +sw.fileName = "tmp"
    +sw.outputToCurrentDirectory = 1
    +SetSaveWindowAttributes(sw)
    +
    +import locale
    +def GetNum(line):
    +   a = line.split(' ')
    +   pos = locale.atof(a[0])
    +   max = locale.atof(a[1])
    +   return [pos, max]
    +
    +
    +# Opens up the file "tmp.ultra" and gets the maximum position.
    +def GetMaximumPosition():
    +   uf = open("tmp.ultra", "r")
    +   line = uf.readline()  # Remove header
    +   line = uf.readline()
    +   num = GetNum(line)
    +   pos = num[0]
    +   max = num[1]
    +   while(1):
    +      line = uf.readline()
    +      if (line == ""):
    +          break
    +      num = GetNum(line)
    +      if (num[1] > max):
    +         pos = num[0]
    +         max = num[1]
    +   return [pos, max]
    +
    +
    +vals = []
    +pos = []
    +points = []
    +for j in range(nPhiSteps):
    +    phi = startPhi + j*phiStep
    +    phi_rads = phi*2.*math.pi / 360.
    +    for i in range(nThetaSteps):
    +        theta = startTheta + i*thetaStep
    +        theta_rads = theta*2.*math.pi / 360.
    +        PX = radius * math.cos(theta_rads) * math.sin(phi_rads)
    +        PY = radius * math.sin(theta_rads) * math.sin(phi_rads)
    +        PZ = radius * math.cos(phi_rads)
    +        PX2 = PX + origin[0]
    +        PY2 = PY + origin[1]
    +        PZ2 = PZ + origin[2]
    +        Lineout(origin, (PX2, PY2, PZ2))
    +        SetActiveWindow(2)
    +        SaveWindow()
    +        rv = GetMaximumPosition()
    +        pos = pos + [rv[0]]
    +        vals = vals + [rv[1]]
    +        prop = rv[0] / radius
    +        FX = origin[0] + (PX)*prop
    +        FY = origin[1] + (PY)*prop
    +        FZ = origin[2] + (PZ)*prop
    +        points = points + [FX, FY, FZ]
    +        DeleteAllPlots()
    +        SetActiveWindow(1)
    +
    +dims = (nThetaSteps, nPhiSteps, 1)
    +
    +visit_writer.WriteCurvilinearMesh("locus", 0, dims, points, [["max", 1, 1, vals]])
    +DeleteAllPlots()
    +OpenDatabase("locus.vtk")
    +AddPlot("Pseudocolor", "max")
    +DrawPlots()
    +Test("locus_01")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_math_expr.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_math_expr.html new file mode 100644 index 000000000..91f8f40c2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_math_expr.html @@ -0,0 +1,60 @@ + +Results for hybrid/math_expr.py + +

    Results of VisIt Regression Test - hybrid/math_expr

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    math_expr_010.000.00
    math_expr_020.000.00
    math_expr_030.000.00
    math_expr_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_math_expr_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_math_expr_py.html new file mode 100644 index 000000000..f8d197e68 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_math_expr_py.html @@ -0,0 +1,44 @@ +hybrid/math_expr.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  math_expr.py
    +#
    +#  Tests:      mesh      - 3D unstructured, multi- domain
    +#              plots     - Pseudocolor
    +#
    +#  Defect ID:  '6115
    +#
    +#  Programmer: Hank Childs
    +#  Date:       June 30, 2005
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +
    +DefineScalarExpression("mod", "mod(t, 10)")
    +AddPlot("Pseudocolor", "mod")
    +DrawPlots()
    +Test("math_expr_01")
    +
    +DefineScalarExpression("round", "round(u/10)")
    +ChangeActivePlotsVar("round")
    +Test("math_expr_02")
    +
    +DefineScalarExpression("ceil", "ceil(u/10)")
    +ChangeActivePlotsVar("ceil")
    +Test("math_expr_03")
    +
    +DefineScalarExpression("floor", "floor(u/10)")
    +ChangeActivePlotsVar("floor")
    +Test("math_expr_04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_matsel.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_matsel.html new file mode 100644 index 000000000..baf073c59 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_matsel.html @@ -0,0 +1,54 @@ + +Results for hybrid/matsel.py + +

    Results of VisIt Regression Test - hybrid/matsel

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    hybrid_matsel_010.000.00
    hybrid_matsel_020.000.00
    hybrid_matsel_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_matsel_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_matsel_py.html new file mode 100644 index 000000000..2f514d6c1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_matsel_py.html @@ -0,0 +1,96 @@ +hybrid/matsel.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  matsel.py
    +#
    +#  Tests:      plots     - contour,pseudocolor
    +#
    +#  Defect ID:  '4353
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       June 24, 2004
    +#
    +#    Jeremy Meredith, Tue Jul 13 18:03:11 PDT 2004
    +#    Added curvilinear case.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +#
    +# Do a test of 2D nodal interpolation on material-selected rectilinear meshes
    +#
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +AddPlot("Pseudocolor", "u");
    +
    +sil = SILRestriction()
    +sets = sil.SetsInCategory("mat1")
    +sil.TurnOnAll()
    +sil.TurnOffSet(sets[4])
    +SetPlotSILRestriction(sil)
    +DrawPlots()
    +
    +Test("hybrid_matsel_01")
    +
    +DeleteAllPlots();
    +
    +#
    +# Do a test of 3D nodal interpolation on material-selected rectilinear meshes
    +# Ths is easiest to see when doing a contour plot of a matsel variable
    +#
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +AddPlot("Contour", "u");
    +
    +sil = SILRestriction()
    +sets = sil.SetsInCategory("mat1")
    +sil.TurnOnAll()
    +sil.TurnOffSet(sets[4])
    +SetPlotSILRestriction(sil)
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.624401, -0.368813, -0.688549)
    +focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.768963, 0.135421, 0.624786)
    +SetView3D(v)
    +
    +Test("hybrid_matsel_02")
    +
    +DeleteAllPlots();
    +
    +#
    +# Do a test of 2D nodal interpolation on material-selected curvilinear meshes
    +#
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +
    +AddPlot("Pseudocolor", "u");
    +
    +sil = SILRestriction()
    +sets = sil.SetsInCategory("mat1")
    +sil.TurnOnAll()
    +sil.TurnOffSet(sets[0])
    +SetPlotSILRestriction(sil)
    +DrawPlots()
    +v = GetView2D()
    +v.windowCoords = (0.1, 2.0, 2.8, 3.8)
    +SetView2D(v)
    +p = PseudocolorAttributes()
    +p.min = 0
    +p.max = .5
    +p.minFlag = 1
    +p.maxFlag = 1
    +SetPlotOptions(p)
    +
    +Test("hybrid_matsel_03")
    +
    +DeleteAllPlots();
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_matvf.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_matvf.html new file mode 100644 index 000000000..22a5a4856 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_matvf.html @@ -0,0 +1,120 @@ + +Results for hybrid/matvf.py + +

    Results of VisIt Regression Test - hybrid/matvf

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    matvf_010.000.00
    matvf_020.000.00
    matvf_030.000.00
    matvf_040.000.00
    matvf_050.000.00
    matvf_060.000.00
    matvf_070.000.00
    matvf_080.000.00
    matvf_090.000.00
    matvf_100.000.00
    matvf_post_ghost_10.000.00
    matvf_post_ghost_20.000.00
    matvf_post_ghost_30.000.00
    matvf_post_ghost_40.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_matvf_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_matvf_py.html new file mode 100644 index 000000000..c0affda4a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_matvf_py.html @@ -0,0 +1,249 @@ +hybrid/matvf.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  expressions.py
    +#
    +#  Tests:      mesh      - 3D unstructured, multi- domain
    +#                          3D rectilinear, single domain
    +#              plots     - Pseudocolor
    +#              operators - Threshold
    +#              selection - Material
    +#
    +#  Defect ID:  '2415 '3939 '5521
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 13, 2003
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Mon Oct 20 16:32:46 PDT 2003
    +#    Added bigsil portion to test '3939 (matvf with databases that create
    +#    ghost zones).
    +#
    +#    Hank Childs, Mon Jan  3 09:28:39 PST 2005
    +#    Added tests for materror.
    +#
    +#    Cyrus Harrison, Tue Feb 12 15:16:36 PST 2008
    +#    Added explicit tests for matvf w/ ghost zones. 
    +#
    +#    Cyrus Harrison, Wed Apr  9 11:17:22 PDT 2008
    +#    Added new test for post ghost info.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +
    +DefineScalarExpression("m1", 'matvf(mat1, ["1", "3"])')
    +AddPlot("Pseudocolor", "m1")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.17, 0.74, 0.64)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.31, 0.65, -0.68)
    +v.parallelScale = 0.866
    +v.nearPlane = -1.73
    +v.farPlane = 1.73
    +SetView3D(v)
    +
    +Test("matvf_01")
    +
    +t = ThresholdAttributes()
    +t.lowerBounds = (0.01)
    +t.upperBounds = (0.99)
    +SetDefaultOperatorOptions(t)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("matvf_02")
    +
    +sil = SILRestriction()
    +matsets = sil.SetsInCategory("mat1")
    +sil.TurnOffAll()
    +sil.TurnOnSet(matsets[1])
    +SetPlotSILRestriction(sil)
    +
    +Test("matvf_03")
    +
    +DeleteAllPlots()
    +
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor", "m1")
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (-0.82, 0.44, 0.37)
    +v.focus = (0, 3.3, 10)
    +v.viewUp = (0.13, 0.76, -0.62)
    +v.parallelScale = 7.32
    +v.nearPlane = -14.65
    +v.farPlane = 14.65
    +SetView3D(v)
    +
    +Test("matvf_04")
    +
    +sil = SILRestriction()
    +matsets = sil.SetsInCategory("mat1")
    +sil.TurnOffAll()
    +sil.TurnOnSet(matsets[1])
    +SetPlotSILRestriction(sil)
    +
    +Test("matvf_05")
    +
    +DeleteAllPlots()
    +
    +DefineScalarExpression("mbs", 'matvf(mat, 1)')
    +OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +AddPlot("Pseudocolor", "mbs")
    +t = ThresholdAttributes()
    +t.lowerBounds = (0.5)
    +t.upperBounds = (1.1)
    +SetDefaultOperatorOptions(t)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (-0.59, 0.33, 0.74)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (0.18, 0.94, -0.28)
    +v.parallelScale = 0.866
    +v.nearPlane = -1.73
    +v.farPlane = 1.73
    +SetView3D(v)
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.17, 0.74, 0.64)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.31, 0.65, -0.68)
    +v.parallelScale = 0.866
    +v.nearPlane = -1.73
    +v.farPlane = 1.73
    +SetView3D(v)
    +
    +Test("matvf_06")
    +
    +#NOTE: the fix for '3939 included disabling the communication of ghost zones. 
    +# As a result, the matvf_07 picture will contain internal surfaces that should
    +# not be there.  If this ever gets fixed, then the baseline picture will need
    +# to be reset.
    +v.nearPlane = -0.1
    +SetView3D(v)
    +
    +Test("matvf_07")
    +
    +# Now test the materror expression.
    +DeleteAllPlots()
    +DefineScalarExpression("materror1", 'materror(mat1, 1)')
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Pseudocolor", "materror1")
    +sil = SILRestriction()
    +sil.TurnOnAll()
    +SetPlotSILRestriction(sil)
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.17, 0.74, 0.64)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.31, 0.65, -0.68)
    +v.parallelScale = 0.866
    +v.nearPlane = -1.73
    +v.farPlane = 1.73
    +SetView3D(v)
    +
    +Test("matvf_08")
    +
    +DefineScalarExpression("abs_materror1", 'abs(materror1)')
    +t = ThresholdAttributes()
    +t.lowerBounds = (0.01)
    +t.upperBounds = (1.01)
    +t.listedVarNames = ("abs_materror1")
    +SetDefaultOperatorOptions(t)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("matvf_09")
    +
    +# Now test that it can calculate "volume fractions" using areas.
    +ReplaceDatabase(silo_data_path("rect2d.silo"))
    +
    +RemoveLastOperator()
    +Test("matvf_10")
    +
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("rect2d.silo"))
    +
    +OpenDatabase(silo_data_path("thinplane.silo"))
    +
    +
    +# tests for matvf w/ ghost zones
    +
    +# test standard
    +DefineScalarExpression("mvf_2", "matvf(mat,2)")
    +AddPlot("Pseudocolor", "mvf_2")
    +atts = PseudocolorAttributes(1)
    +atts.minFlag = 1
    +atts.min = 0.0
    +atts.maxFlag = 1
    +atts.max = 1.0
    +atts.centering = atts.Natural
    +SetPlotOptions(atts)
    +DrawPlots()
    +Test("matvf_post_ghost_1")
    +
    +# test with ghosts
    +atts = PseudocolorAttributes(1)
    +atts.minFlag = 1
    +atts.min = 0.0
    +atts.maxFlag = 1
    +atts.max = 1.0
    +atts.centering = atts.Nodal
    +SetPlotOptions(atts)
    +DrawPlots()
    +Test("matvf_post_ghost_2")
    +
    +# switch back to ensure w/ ghost case caching does not alter w/o ghosts
    +atts = PseudocolorAttributes(1)
    +atts.minFlag = 1
    +atts.min = 0.0
    +atts.maxFlag = 1
    +atts.max = 1.0
    +atts.centering = atts.Zonal
    +SetPlotOptions(atts)
    +DrawPlots()
    +Test("matvf_post_ghost_3")
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("thinplane.silo"))
    +
    +OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +
    +# test for gradient w/ matvf, to check if post ghosts were correctly 
    +# requested. 
    +
    +DefineScalarExpression("gate", "agrad(dist)[0] * matvf(mat,1)")
    +AddPlot("Pseudocolor", "gate")
    +DrawPlots()
    +Test("matvf_post_ghost_4")
    +DeleteAllPlots()
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_merge_tree.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_merge_tree.html new file mode 100644 index 000000000..f0cccea29 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_merge_tree.html @@ -0,0 +1,108 @@ + +Results for hybrid/merge_tree.py + +

    Results of VisIt Regression Test - hybrid/merge_tree

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    rect2d_mtree0.000.00
    rect2d_stree0.000.00
    rect2d_localt_mt0.000.00
    rect2d_localt_st0.000.00
    noise2d_mtree0.000.00
    noise2d_stree0.000.00
    noise2d_localt_mt0.000.00
    noise2d_localt_st0.000.00
    noise3d_mtree0.000.00
    noise3d_stree0.000.00
    noise3d_localt_mt0.000.00
    noise3d_localt_st0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_merge_tree_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_merge_tree_py.html new file mode 100644 index 000000000..eb40b6a0c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_merge_tree_py.html @@ -0,0 +1,64 @@ +hybrid/merge_tree.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  merge_tree.py
    +#
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Friday October 28, 2016
    +#
    +#  Modifiations:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +test_dbs = { "rect2d" : {"var":  "d",
    +                         "path": silo_data_path("rect2d.silo")} ,
    +             "noise2d" : {"var": "shepardglobal",
    +                          "path" :silo_data_path("noise2d.silo")} ,
    +
    +             "noise3d" : {"var": "shepardglobal",
    +                          "path": silo_data_path("noise.silo")}
    +           }
    +
    +for db_name,db_info in list(test_dbs.items()):
    +    test_db_file = db_info["path"]
    +    OpenDatabase(test_db_file)
    +
    +    # test merge tree, split tree and local threshold exprs
    +
    +    DefineScalarExpression("mtree", "merge_tree(%s)" % db_info["var"])
    +    AddPlot("Pseudocolor", "mtree")
    +    DrawPlots()
    +
    +    Test(db_name + "_mtree")
    +    DeleteAllPlots()
    +
    +    DefineScalarExpression("stree", "split_tree(%s)" % db_info["var"])
    +    AddPlot("Pseudocolor", "stree")
    +    DrawPlots()
    +
    +    Test(db_name + "_stree")
    +    DeleteAllPlots()
    +
    +    DefineScalarExpression("localt_mt", "local_threshold(%s,mtree)" % db_info["var"])
    +
    +    AddPlot("Pseudocolor", "localt_mt")
    +    DrawPlots()
    +
    +    Test(db_name + "_localt_mt")
    +    DeleteAllPlots()
    +
    +    DefineScalarExpression("localt_st", "local_threshold(%s,stree)" % db_info["var"])
    +
    +    AddPlot("Pseudocolor", "localt_st")
    +    DrawPlots()
    +
    +    Test(db_name + "_localt_st")
    +    DeleteAllPlots()
    +
    +
    +    CloseDatabase(test_db_file)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_mesh_quality.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_mesh_quality.html new file mode 100644 index 000000000..6ce56656c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_mesh_quality.html @@ -0,0 +1,95 @@ + +Results for hybrid/mesh_quality.py + +

    Results of VisIt Regression Test - hybrid/mesh_quality

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    mesh_quality_010.000.00
    mesh_quality_020.000.00
    mesh_quality_030.000.00
    mesh_quality_040.000.00
    mesh_quality_050.010.00
    mesh_quality_060.000.00
    mesh_quality_070.000.00
    Side Volume
    min_side_volume_000.000.00
    max_side_volume_000.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_mesh_quality_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_mesh_quality_py.html new file mode 100644 index 000000000..588276057 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_mesh_quality_py.html @@ -0,0 +1,160 @@ +hybrid/mesh_quality.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  mesh_quality.py
    +#
    +#  Tests:      mesh      - 3D unstructured
    +#              plots     - Pseudocolor
    +#
    +#  Programmer: Hank Childs
    +#  Date:       November 25, 2003
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Fri Jun 25 07:58:32 PDT 2004
    +#    The name of the mesh quality variables for ucd3d changed, since there are
    +#    now multiple meshes in that file.  Use the new names.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Matthew Wheeler, Thu Feb 06 12:00:00 GMT 2014
    +#    Added two new AWE mesh quality tests
    +#
    +#    Alister Maguire, Wed Apr 21 13:26:01 PDT 2021
    +#    Added TestSideVolume.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def TestSideVolume():
    +    #
    +    # This ensures that a bug fix is still working well.
    +    #
    +    TestSection("Side Volume")
    +
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +    AddPlot("Pseudocolor", "mesh_quality/min_side_volume")
    +    DrawPlots()
    +
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (0.3, 0.8, 0.6)
    +    SetView3D(v)
    +    SetTimeSliderState(10)
    +
    +    Test("min_side_volume_00")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "mesh_quality/max_side_volume")
    +    DrawPlots()
    +
    +    Test("max_side_volume_00")
    +    DeleteAllPlots()
    +
    +    CloseDatabase(silo_data_path("wave.visit"))
    +
    +
    +OpenDatabase(silo_data_path("ucd3d.silo"))
    +
    +AddPlot("Pseudocolor", "mesh_quality/ucdmesh3d/volume")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (-0.178, -0.29, 0.94)
    +v.focus = (0, 2.5, 10)
    +v.viewUp = (-0.11, 0.95, 0.26)
    +v.parallelScale = 11.45
    +v.nearPlane = -22.9
    +v.farPlane = 22.9
    +v.imageZoom = 1.46
    +SetView3D(v)
    +
    +Test("mesh_quality_01")
    +
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "mesh_quality/ucdmesh3d/skew")
    +DrawPlots()
    +
    +Test("mesh_quality_02")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("tire.silo"))
    +
    +AddPlot("Pseudocolor", "mesh_quality/aspect")
    +DrawPlots()
    +v = View3DAttributes()
    +v.viewNormal = (-0.128, 0.26, 0.958)
    +v.focus = (0, 0, 0)
    +v.viewUp = (0.31, 0.92, -0.21)
    +v.parallelScale = 83
    +v.nearPlane = -165
    +v.farPlane = 165
    +SetView3D(v)
    +
    +pc = PseudocolorAttributes()
    +pc.minFlag = 1
    +pc.maxFlag = 1
    +pc.min=11
    +pc.max=22
    +SetPlotOptions(pc)
    +
    +Test("mesh_quality_03")
    +
    +pc.minFlag=0
    +pc.maxFlag=0
    +SetPlotOptions(pc)
    +Test("mesh_quality_04")
    +
    +AddOperator("Threshold")
    +thres = ThresholdAttributes()
    +thres.lowerBounds = (0.5)
    +thres.upperBounds = (0.55)
    +thres.listedVarNames = ("mesh_quality/skew")
    +SetOperatorOptions(thres)
    +DrawPlots()
    +Test("mesh_quality_05")
    +
    +
    +
    +DeleteAllPlots()
    +
    +CloseDatabase(silo_data_path("ucd3d.silo"))
    +CloseDatabase(silo_data_path("tire.silo"))
    +
    +# Add AWE Mesh-Quality tests
    +
    +OpenDatabase(silo_data_path("specmix_ucd.silo"))
    +
    +AddPlot("Mesh", "Mesh")
    +AddPlot("Pseudocolor", "mesh_quality/Mesh/min_corner_area")
    +pc = PseudocolorAttributes()
    +pc.invertColorTable = 1
    +SetPlotOptions(pc)
    +DrawPlots()
    +Test("mesh_quality_06")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Mesh", "Mesh")
    +AddPlot("Pseudocolor", "mesh_quality/Mesh/min_sin_corner")
    +pc = PseudocolorAttributes()
    +pc.invertColorTable = 1
    +SetPlotOptions(pc)
    +DrawPlots()
    +Test("mesh_quality_07")
    +
    +DeleteAllPlots()
    +
    +CloseDatabase(silo_data_path("specmix_ucd.silo"))
    +
    +TestSideVolume()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_mir.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_mir.html new file mode 100644 index 000000000..61bd91b7a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_mir.html @@ -0,0 +1,168 @@ + +Results for hybrid/mir.py + +

    Results of VisIt Regression Test - hybrid/mir

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Curvilinear, 2D
    mir_curv2d_equi_t0.000.00
    mir_curv2d_equi_z0.000.00
    mir_curv2d_equi_z_i50.000.00
    mir_curv2d_plic0.000.00
    mir_curv2d_isovol0.000.00
    Unstructured, 2D
    mir_ucd2d_equi_t0.000.00
    mir_ucd2d_equi_z0.000.00
    mir_ucd2d_equi_z_i50.000.00
    mir_ucd2d_plic0.000.00
    mir_ucd2d_isovol0.000.00
    Rectilinear, 2D
    mir_rect2d_equi_t0.000.00
    mir_rect2d_equi_z0.000.00
    mir_rect2d_equi_z_i50.000.00
    mir_rect2d_plic0.000.00
    mir_rect2d_isovol0.000.00
    Rectilinear, 3D
    mir_rect3d_equi_t0.000.00
    mir_rect3d_equi_z0.000.00
    mir_rect3d_equi_z_i50.000.00
    mir_rect3d_plic0.000.00
    mir_rect3d_isovol0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_mir_cache.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_mir_cache.html new file mode 100644 index 000000000..b13ac3c07 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_mir_cache.html @@ -0,0 +1,48 @@ + +Results for hybrid/mir_cache.py + +

    Results of VisIt Regression Test - hybrid/mir_cache

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    mir_cache10.000.00
    mir_cache20.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_mir_cache_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_mir_cache_py.html new file mode 100644 index 000000000..a7e5a7bef --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_mir_cache_py.html @@ -0,0 +1,65 @@ +hybrid/mir_cache.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  mir_cache.py
    +#
    +#  Tests:      mesh      - 3D curvilinear,multi-domain,ghost zones replicated.
    +#              plots     - volume, PC
    +#
    +#  Defect ID:  '3542
    +#
    +#  Programmer: Hank Childs
    +#  Date:       July 22, 2003
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +view = View3DAttributes()
    +view.viewNormal = (0.557976, 0.651128, 0.514485)
    +view.focus = (0.5, 0.5, 0.5)
    +view.viewUp = (-0.0955897, 0.666272, -0.739557)
    +view.viewAngle = 30
    +view.parallelScale = 0.866025
    +view.nearPlane = -1.73205
    +view.farPlane = 1.73205
    +view.perspective = 1
    +SetView3D(view)
    +
    +#
    +# The volume plot does not need ghost zones, so this will create one
    +# set of MIRs.
    +#
    +OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +AddPlot("Volume", "dist")
    +sil = SILRestriction()
    +sets = sil.SetsInCategory("mat")
    +sil.TurnOffAll()
    +sil.TurnOnSet(sets[0])
    +SetPlotSILRestriction(sil)
    +DrawPlots()
    +
    +DeleteAllPlots()
    +
    +#
    +# The PC plot will need ghost zones.  If it does not create a new set of MIRs,
    +# we will get garbled data.
    +#
    +AddPlot("Pseudocolor", "dist")
    +DrawPlots()
    +
    +Test("mir_cache1")
    +
    +#
    +# Make extra sure that there aren't garbled zones in the interior.
    +#
    +view.nearPlane = -0.3
    +SetView3D(view)
    +Test("mir_cache2")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_mir_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_mir_py.html new file mode 100644 index 000000000..3d7d4eb5f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_mir_py.html @@ -0,0 +1,73 @@ +hybrid/mir.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  mir.py
    +#
    +#  Tests:      mesh      - 2D, 3D, structured, unstructured, single domain
    +#              plots     - FilledBoundary
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       March 24, 2010
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def TestOneMode(file, mat, name):
    +    SetMaterialAttributes(mat)
    +    ReOpenDatabase(file)
    +    Test(name)
    +
    +
    +def TestOneFile(isRectilinear, file, matname, prefix):
    +    OpenDatabase(file)
    +
    +    AddPlot("FilledBoundary", matname)
    +    DrawPlots()
    +
    +    v3 = GetView3D()
    +    v3.viewNormal = (0.3, 0.4, 0.8)
    +    SetView3D(v3)
    +
    +    m = MaterialAttributes()
    +
    +    m.algorithm = m.EquiT
    +    TestOneMode(file, m, prefix + "_equi_t")
    +
    +    m.algorithm = m.EquiZ
    +    m.iterationEnabled = False
    +    TestOneMode(file, m, prefix + "_equi_z")
    +
    +    m.algorithm = m.EquiZ
    +    m.iterationEnabled = True
    +    m.numIterations = 5
    +    m.iterationDamping = 0.4
    +    TestOneMode(file, m, prefix + "_equi_z_i5")
    +    m.iterationEnabled = False
    +
    +    m.algorithm = m.PLIC
    +    TestOneMode(file, m, prefix + "_plic")
    +
    +    m.algorithm = m.Isovolume
    +    TestOneMode(file, m, prefix + "_isovol")
    +
    +    # Discrete currently only works on rectilinear
    +    if isRectilinear:
    +        m.algorithm = m.Discrete
    +        # Discrete is stochastic, we can't test it reliably
    +        #TestOneMode(file, m, prefix + "_discrete")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(file)
    +
    +TestSection("Curvilinear, 2D")
    +TestOneFile(False,silo_data_path("specmix_quad.silo") , "Material", "mir_curv2d")
    +TestSection("Unstructured, 2D")
    +TestOneFile(False,silo_data_path("specmix_ucd.silo") , "Material", "mir_ucd2d")
    +TestSection("Rectilinear, 2D")
    +TestOneFile(True,silo_data_path("rect2d.silo") , "mat1", "mir_rect2d")
    +TestSection("Rectilinear, 3D")
    +TestOneFile(True,silo_data_path("rect3d.silo") , "mat1", "mir_rect3d")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_missingdata.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_missingdata.html new file mode 100644 index 000000000..059adf761 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_missingdata.html @@ -0,0 +1,100 @@ + +Results for hybrid/missingdata.py + +

    Results of VisIt Regression Test - hybrid/missingdata

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Missing data
    missingdata_0_000.000.00
    missingdata_0_010.030.00
    missingdata_0_020.040.00
    missingdata_0_030.000.00
    missingdata_0_041 modifications totalling 8 lines
    Expressions and missing data
    missingdata_1_000.010.00
    missingdata_1_010.010.00
    missingdata_1_020.000.00
    +

    Final Return Code: 120

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_missingdata_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_missingdata_py.html new file mode 100644 index 000000000..d26cf0053 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_missingdata_py.html @@ -0,0 +1,72 @@ +hybrid/missingdata.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  missingdata.py
    +#
    +#  Tests:      missing data
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Jan 19 09:49:15 PST 2012
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def SetTheView():
    +    v = GetView2D()
    +    v.viewportCoords = (0.02, 0.98, 0.25, 1)
    +    SetView2D(v)
    +
    +def test0(datapath):
    +    TestSection("Missing data")
    +    OpenDatabase(pjoin(datapath,"earth.nc"))
    +    AddPlot("Pseudocolor", "height")
    +    DrawPlots()
    +    SetTheView()
    +    Test("missingdata_0_00")
    +    ChangeActivePlotsVar("carbon_particulates")
    +    Test("missingdata_0_01")
    +    ChangeActivePlotsVar("seatemp")
    +    Test("missingdata_0_02")
    +    ChangeActivePlotsVar("population")
    +    Test("missingdata_0_03")
    +
    +    # Pick on higher zone numbers to make sure pick works.
    +    PickByNode(domain=0, element=833621)
    +    TestText("missingdata_0_04", GetPickOutput())
    +
    +    DeleteAllPlots()
    +
    +def test1(datapath):
    +    TestSection("Expressions and missing data")
    +    OpenDatabase(pjoin(datapath,"earth.nc"))
    +    DefineScalarExpression("meaningless", "carbon_particulates + seatemp")
    +    AddPlot("Pseudocolor", "meaningless")
    +    DrawPlots()
    +    SetTheView()
    +    Test("missingdata_1_00")
    +    DeleteAllPlots()
    +
    +    DefineVectorExpression("color", "color(red,green,blue)")
    +    AddPlot("Truecolor", "color")
    +    DrawPlots()
    +    ResetView()
    +    SetTheView()
    +    Test("missingdata_1_01")
    +
    +    DefineVectorExpression("color2", "color(population*0.364,green,blue)")
    +    ChangeActivePlotsVar("color2")
    +    v1 = GetView2D()
    +    v1.viewportCoords = (0.02, 0.98, 0.02, 0.98)
    +    v1.windowCoords = (259.439, 513.299, 288.93, 540) #25.466)
    +    SetView2D(v1)
    +    Test("missingdata_1_02")
    +
    +def main():
    +    datapath = data_path("netcdf_test_data")
    +    test0(datapath)
    +    test1(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_multivar.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_multivar.html new file mode 100644 index 000000000..de4f4d711 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_multivar.html @@ -0,0 +1,60 @@ + +Results for hybrid/multivar.py + +

    Results of VisIt Regression Test - hybrid/multivar

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    multivar_010.000.00
    multivar_020.000.00
    multivar_030.000.00
    multivar_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_multivar_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_multivar_py.html new file mode 100644 index 000000000..208d99dc8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_multivar_py.html @@ -0,0 +1,108 @@ +hybrid/multivar.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  multivar.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - pc, vector, filledboundary 
    +#              operators - isosurface
    +#
    +#  Defect ID:  '7843
    +#
    +#  Programmer: Hank Childs
    +#  Date:       April 24, 2002
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Sep  5 10:55:47 PDT 2002
    +#    Changed the variable format for SubsetPlots, to reflect new interface
    +#    which allows subsets of groups.
    +#
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset plots.
    +#
    +#    Jeremy Meredith, Thu Jun 24 12:58:06 PDT 2004
    +#    Set the vector origin explicitly for some cases because I changed the
    +#    default to Tail.
    +#
    +#    Hank Childs, Tue Mar 13 09:42:24 PDT 2007
    +#    Add new test for mixed centering multiple variables and expressions.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +
    +# Set up the isosurface operators attributes
    +
    +atts = IsosurfaceAttributes()
    +atts.contourMethod = atts.Value
    +atts.contourValue = 500
    +atts.variable = "t"
    +SetDefaultOperatorOptions(atts)
    +
    +
    +# Test the PC plot with the isosurface operator.
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isosurface")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.SetViewNormal(-0.528889, 0.367702, 0.7649)
    +v.SetViewUp(0.176641, 0.929226, -0.324558)
    +v.SetParallelScale(17.3205)
    +v.SetPerspective(1)
    +SetView3D(v)
    +
    +Test("multivar_01")
    +DeleteAllPlots()
    +
    +
    +# Test the subset plot with the isosurface operator.
    +
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Isosurface")
    +DrawPlots()
    +Test("multivar_02")
    +DeleteAllPlots()
    +
    +
    +# Test the subset plot with the isosurface operator.
    +
    +AddPlot("Vector", "vel")
    +vec=VectorAttributes()
    +vec.useStride = 1
    +vec.stride = 1
    +vec.vectorOrigin = vec.Middle
    +SetPlotOptions(vec)
    +AddOperator("Isosurface")
    +DrawPlots()
    +Test("multivar_03")
    +DeleteAllPlots()
    +
    +# Test multiple variables with different centerings with expressions ('7843)
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +DefineScalarExpression("x", "coord(curvmesh3d)[0]")
    +DefineScalarExpression("y", "coord(curvmesh3d)[1]")
    +DefineScalarExpression("z", "coord(curvmesh3d)[2]")
    +DefineScalarExpression("myvar", "if(and(lt(x,0),gt(z,0)), abs(x*z), -abs(x*z))")
    +AddPlot("Pseudocolor", "myvar")
    +AddOperator("Isosurface")
    +atts.variable = "d"
    +atts.contourValue = 3
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("multivar_04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_pos_cmfe.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_pos_cmfe.html new file mode 100644 index 000000000..fe93e03fa --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_pos_cmfe.html @@ -0,0 +1,108 @@ + +Results for hybrid/pos_cmfe.py + +

    Results of VisIt Regression Test - hybrid/pos_cmfe

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    pos_cmfe_010.000.00
    pos_cmfe_020.000.00
    pos_cmfe_030.000.00
    pos_cmfe_040.000.00
    pos_cmfe_050 modifications totalling 0 lines
    pos_cmfe_060 modifications totalling 0 lines
    pos_cmfe_070 modifications totalling 0 lines
    pos_cmfe_080 modifications totalling 0 lines
    pos_cmfe_090 modifications totalling 0 lines
    pos_cmfe_100 modifications totalling 0 lines
    pos_cmfe_110.000.00
    pos_cmfe_120.000.00
    pos_cmfe_130.000.00
    pos_cmfe_140.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_pos_cmfe_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_pos_cmfe_py.html new file mode 100644 index 000000000..003fa89ee --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_pos_cmfe_py.html @@ -0,0 +1,149 @@ +hybrid/pos_cmfe.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  pos_cmfe.py
    +#
    +#  Defect ID:  '5528, '5677
    +#
    +#  Programmer: Hank Childs
    +#  Date:       January 9, 2006
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Tue Jul 15 10:43:58 EDT 2008
    +#    Changed number of vectors in vector plot to match the old behavior.
    +#    (We now account for how many domains there are.)
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +
    +
    +# Test general capability.
    +DefineScalarExpression("cmfe", "pos_cmfe(<%s:d>, curvmesh2d, -1.)" % cmfe_silo_data_path("ucd2d.silo"))
    +AddPlot("Pseudocolor", "cmfe")
    +DrawPlots()
    +Test("pos_cmfe_01")
    +
    +# Zonal vars
    +DefineScalarExpression("cmfeZ", "pos_cmfe(<%s:p>, curvmesh2d, -1.)" %  cmfe_silo_data_path("ucd2d.silo"))
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "cmfeZ")
    +DrawPlots()
    +Test("pos_cmfe_02")
    +
    +# Test using the expression as a secondary variable.
    +ChangeActivePlotsVar("d")
    +AddOperator("Threshold")
    +t = ThresholdAttributes()
    +t.lowerBounds = (0.1)
    +t.listedVarNames = ("cmfe")
    +SetOperatorOptions(t)
    +DrawPlots()
    +Test("pos_cmfe_03")
    +
    +# Test using cmfe in another expression.
    +DefineVectorExpression("disp", "{0, 3*cmfe}")
    +RemoveLastOperator()
    +d = DisplaceAttributes()
    +d.variable = "disp"
    +SetDefaultOperatorOptions(d)
    +AddOperator("Displace")
    +DrawPlots()
    +Test("pos_cmfe_04")
    +
    +RemoveLastOperator()
    +ChangeActivePlotsVar("cmfe")
    +DrawPlots()
    +
    +Query("MinMax")
    +t = GetQueryOutputString()
    +TestText("pos_cmfe_05", t)
    +
    +# Now test error conditions.
    +DefineScalarExpression("cmfe2", "pos_cmfe(pressure, quadmesh)")
    +ChangeActivePlotsVar("cmfe2")
    +DrawPlots()
    +t = GetLastError()
    +TestText("pos_cmfe_06", t)
    +
    +DefineScalarExpression("cmfe3", "pos_cmfe(<bad_file.silo:a_var>, curvmesh2d, 0.)")
    +ChangeActivePlotsVar("cmfe3")
    +DrawPlots()
    +t = GetLastError()
    +TestText("pos_cmfe_07", t)
    +
    +DefineScalarExpression("cmfe4", "pos_cmfe(<%s:pressure>, curvmesh2d)" %  cmfe_silo_data_path("wave0100.silo"))
    +ChangeActivePlotsVar("cmfe4")
    +DrawPlots()
    +t = GetLastError()
    +TestText("pos_cmfe_08", t)
    +
    +DefineScalarExpression("cmfe5", "pos_cmfe(<%s:pressure>)" % cmfe_silo_data_path("wave0100.silo"))
    +ChangeActivePlotsVar("cmfe5")
    +DrawPlots()
    +t = GetLastError()
    +TestText("pos_cmfe_09", t)
    +
    +# Invalid variable in new database.
    +DefineScalarExpression("cmfe6", "pos_cmfe(<%s:xyz>, curvmesh2d, 0.)" % cmfe_silo_data_path("ucd2d.silo"))
    +ChangeActivePlotsVar("cmfe6")
    +DrawPlots()
    +t = GetLastError()
    +TestText("pos_cmfe_10", t)
    +
    +# Enough error checking, let's do some more testing when it works.
    +
    +# 3D, multi-block to multi-block.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +DefineScalarExpression("cmfe7", "pos_cmfe(<%s:d>, mesh1, 0.)" %  cmfe_silo_data_path("multi_curv3d.silo"))
    +AddPlot("Pseudocolor", "cmfe7")
    +DrawPlots()
    +Test("pos_cmfe_11")
    +
    +DeleteAllPlots()
    +
    +# multi-block to single-block.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +DefineScalarExpression("cmfe8", "pos_cmfe(<%s:d>, curvmesh3d, 0.)" %  cmfe_silo_data_path("multi_curv3d.silo"))
    +AddPlot("Pseudocolor", "cmfe8")
    +DrawPlots()
    +Test("pos_cmfe_12")
    +
    +# single-block to multi-block.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_curv3d.silo"))
    +
    +DefineScalarExpression("cmfe9", "pos_cmfe(<%s:d>, mesh1, 0.)" % cmfe_silo_data_path("curv3d.silo"))
    +AddPlot("Pseudocolor", "cmfe9")
    +DrawPlots()
    +Test("pos_cmfe_13")
    +
    +# single-block to multi-block -- vector
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +DefineVectorExpression("cmfe10", "pos_cmfe(gradient(<%s:d>), mesh1, {0,0,0})"% cmfe_silo_data_path("curv3d.silo"))
    +AddPlot("Vector", "cmfe10")
    +vec = VectorAttributes()
    +vec.nVectors = 400*36
    +SetPlotOptions(vec)
    +DrawPlots()
    +Test("pos_cmfe_14")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_py_exprs.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_py_exprs.html new file mode 100644 index 000000000..a3080de59 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_py_exprs.html @@ -0,0 +1,78 @@ + +Results for hybrid/py_exprs.py + +

    Results of VisIt Regression Test - hybrid/py_exprs

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    py_exprs_000.000.00
    py_exprs_010.000.00
    py_exprs_020.000.00
    py_exprs_030.000.00
    py_exprs_040.000.00
    py_exprs_050.000.00
    py_exprs_060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_py_exprs_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_py_exprs_py.html new file mode 100644 index 000000000..9dab74877 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_py_exprs_py.html @@ -0,0 +1,106 @@ +hybrid/py_exprs.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  py_exprs.py
    +#
    +#  Tests:      python filters / python expressions
    +#              plots     - Pseudocolor
    +#
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Fri May 21 09:14:07 PDT 2010
    +#
    +#  Modifications:
    +#
    +#  Eddie Rusu - Tue Jul 30 13:22:17 PDT 2019
    +#  Added testing for python expressions with numpy mixed with simple
    +#  expressions.
    +#
    +#  Kathleen Biagas Fri Mar 12, 2021
    +#  Rename xx_simple_xx.py expression scripts to prevent them being run when
    +#  passing file globs to test suite (eg tests/hybrid/*.py) 
    +#
    +# ----------------------------------------------------------------------------
    +
    +import os
    +from os.path import join as pjoin
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +script_file = pjoin(os.path.split(TestScriptPath())[0],"py_expr_script_00.vpe")
    +
    +DefinePythonExpression("d_wave",("d"),file=script_file)
    +AddPlot("Pseudocolor", "d_wave")
    +AddOperator("Elevate")
    +v = View3DAttributes()
    +v.viewNormal = (0.724969, -0.544156, 0.422273)
    +v.focus = (0.5, 0.666667, 0.526085)
    +v.viewUp = (-0.377473, 0.198927, 0.904401)
    +v.viewAngle = 30
    +v.parallelScale = 0.981769
    +v.nearPlane = -1.96354
    +v.farPlane = 1.96354
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0.5, 0.666667, 0.526085)
    +SetView3D(v)
    +DrawPlots()
    +Test("py_exprs_00")
    +DeleteAllPlots()
    +
    +
    +# Test simple expressions mixed with python expressions using numpy
    +OpenDatabase(silo_data_path("multi_rect2d.silo"))
    +
    +script_file = pjoin(os.path.split(TestScriptPath())[0],"simple_numpy_expr.vpe")
    +DefinePythonExpression("python_multiply", ['d','p'], file=script_file)
    +AddPlot("Pseudocolor", "python_multiply", 1, 1)
    +DrawPlots()
    +Test("py_exprs_01")
    +DeleteAllPlots()
    +
    +script_file = pjoin(os.path.split(TestScriptPath())[0],"python_simple_mix_01.vpe")
    +DefineScalarExpression("my_expr", "d*p")
    +DefinePythonExpression("python_with_simple", ['d','p', 'my_expr'], file=script_file)
    +AddPlot("Pseudocolor", "python_with_simple", 1, 1)
    +DrawPlots()
    +Test("py_exprs_02")
    +DeleteAllPlots()
    +
    +script_file = pjoin(os.path.split(TestScriptPath())[0],"python_simple_mix_02.vpe")
    +DefinePythonExpression("python_with_python", ['d','p', 'python_multiply'], file=script_file)
    +AddPlot("Pseudocolor", "python_with_python", 1, 1)
    +DrawPlots()
    +Test("py_exprs_03")
    +DeleteAllPlots()
    +
    +DefineScalarExpression("simple_with_python", "python_multiply-p+d+p*p")
    +AddPlot("Pseudocolor", "simple_with_python", 1, 1)
    +DrawPlots()
    +Test("py_exprs_04")
    +DeleteAllPlots()
    +
    +CloseDatabase(silo_data_path("multi_rect2d.silo"))
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +script_file = pjoin(os.path.split(TestScriptPath())[0],"python_example_1.vpe")
    +DefinePythonExpression("MyExpression", ['d', 'p'], file=script_file)
    +AddPlot("Pseudocolor", "MyExpression")
    +DrawPlots()
    +Test("py_exprs_05")
    +DeleteAllPlots()
    +
    +script_file = pjoin(os.path.split(TestScriptPath())[0],"python_example_2.vpe")
    +DefinePythonExpression("MyExpression", ("d"), file=script_file)
    +AddPlot("Pseudocolor", "MyExpression")
    +DrawPlots()
    +Test("py_exprs_06")
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_qcrit.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_qcrit.html new file mode 100644 index 000000000..b9845ec37 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_qcrit.html @@ -0,0 +1,54 @@ + +Results for hybrid/qcrit.py + +

    Results of VisIt Regression Test - hybrid/qcrit

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    iso_qcrit0.000.00
    contour_qcrit0.000.00
    pseudo_qcrit0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_qcrit_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_qcrit_py.html new file mode 100644 index 000000000..417cf462f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_qcrit_py.html @@ -0,0 +1,54 @@ +hybrid/qcrit.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  qcrit.py
    +#
    +#  Tests:#     plots   - pseudocolor, contour
    +#  Defect ID:  1829
    +#
    +#  Programmer: Kevin Griffin
    +#  Date:       Thu Jul 31 14:21:02 PDT 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +ds = data_path("miranda_test_data/TG_vortex/plot.raw")
    +#ds = "/g/g14/kgriffin/trunk/build_debug/data/miranda_test_data/TG_vortex/plot.raw"
    +OpenDatabase(ds)
    +DefineScalarExpression("qcrit", "q_criterion(gradient(velocity[0]), gradient(velocity[1]), gradient(velocity[2]))")
    +TimeSliderNextState()
    +TimeSliderNextState()
    +
    +#
    +# Test 1
    +#
    +AddPlot("Pseudocolor", "qcrit")
    +AddOperator("Isovolume")
    +IsovolumeAtts = IsovolumeAttributes()
    +IsovolumeAtts.lbound = 0.2
    +IsovolumeAtts.ubound = 5.0
    +IsovolumeAtts.variable = "default"
    +SetOperatorOptions(IsovolumeAtts)
    +
    +DrawPlots()
    +Test("iso_qcrit")
    +DeleteAllPlots()
    +
    +#
    +# Test 2
    +#
    +AddPlot("Contour", "qcrit")
    +DrawPlots()
    +Test("contour_qcrit")
    +DeleteAllPlots()
    +
    +#
    +# Test 3
    +#
    +AddPlot("Pseudocolor", "qcrit")
    +DrawPlots()
    +Test("pseudo_qcrit")
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_replace.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_replace.html new file mode 100644 index 000000000..02c7c4401 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_replace.html @@ -0,0 +1,72 @@ + +Results for hybrid/replace.py + +

    Results of VisIt Regression Test - hybrid/replace

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    AllMaterials0.000.00
    Material2Off0.000.00
    Replace10.000.00
    Replace20.000.00
    Replace30.000.00
    Replace40.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_replace_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_replace_py.html new file mode 100644 index 000000000..9f4a8b22f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_replace_py.html @@ -0,0 +1,97 @@ +hybrid/replace.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  replace.py
    +#
    +#  Tests:      the ReplaceDatabase function.
    +#
    +#  Defect ID:  VisIt00003002
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Jan 22 11:06:49 PDT 2003
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset plots.
    +# 
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Turn off annotation
    +a = AnnotationAttributes()
    +TurnOffAllAnnotations(a)
    +a.axes2D.visible = 1
    +a.axes2D.xAxis.label.visible = 0
    +a.axes2D.yAxis.label.visible = 0
    +a.axes2D.xAxis.title.visible = 0
    +a.axes2D.yAxis.title.visible = 0
    +SetAnnotationAttributes(a)
    +
    +# Set up the plots.
    +OpenDatabase(silo_data_path("wave0110.silo"))
    +
    +AddPlot("FilledBoundary", "Material")
    +DrawPlots()
    +v = View3DAttributes()
    +v.viewNormal = (-0.427729, 0.776091, 0.463391)
    +v.focus = (4.37669, 0.376992, 2.57924)
    +v.viewUp = (0.67875, 0.614328, -0.402368)
    +v.viewAngle = 30.
    +v.parallelScale = 5.03337
    +v.nearPlane = -11.2758
    +v.farPlane = 11.2758
    +v.perspective = 1
    +SetView3D(v)
    +
    +# Show what it looks like with all materials
    +Test("AllMaterials")
    +# Turn off the green material
    +TurnMaterialsOff("2 water")
    +Test("Material2Off")
    +
    +# Try replacing with a later time step and see if the SIL selection
    +# still is applied. It should be still applied since the files have
    +# equivalent SILs.
    +ReplaceDatabase(silo_data_path("wave0340.silo"))
    +
    +Test("Replace1")
    +
    +# Make different materials active and replace again.
    +TurnMaterialsOn()
    +TurnMaterialsOff("1 barrier")
    +ReplaceDatabase(silo_data_path("wave0470.silo"))
    +
    +Test("Replace2")
    +
    +# Open one of our simple databases, do a plot and then replace it with
    +# an unrelated database.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +ReplaceDatabase(silo_data_path("curv3d.silo"))
    +
    +v2 = View3DAttributes()
    +v2.viewNormal = (-0.499092, 0.420388, 0.757747)
    +v2.focus = (0,2.5,15)
    +v2.viewUp = (0.195607, 0.906528, -0.374093)
    +v2.viewAngle = 30.
    +v2.parallelScale = 16.0078
    +v2.nearPlane = -32.0156
    +v2.farPlane = 32.0156
    +v2.perspective = 1
    +SetView3D(v2)
    +Test("Replace3")
    +
    +# Replace it with a 2d database.
    +ReplaceDatabase(silo_data_path("curv2d.silo"))
    +
    +Test("Replace4")
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_sil.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_sil.html new file mode 100644 index 000000000..43f445cbf --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_sil.html @@ -0,0 +1,70 @@ + +Results for hybrid/sil.py + +

    Results of VisIt Regression Test - hybrid/sil

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    sil10.000.00
    sil20.000.00
    sil30.000.00
    sil40.000.00
    sil50.000.00
    sil60 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_sil_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_sil_py.html new file mode 100644 index 000000000..47c79e7f3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_sil_py.html @@ -0,0 +1,87 @@ +hybrid/sil.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  sil.py
    +#
    +#  Tests:      mesh      - 3D curvilinear,multi-domain,ghost zones replicated.
    +#              plots     - mat subset, domain subset
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Hank Childs
    +#  Date:       December 5, 2002
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset plots.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Hank Childs, Fri Feb 24 15:45:41 PST 2012
    +#    Add test for preserving SILs across time slice changes.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +view = View3DAttributes()
    +view.viewNormal = (0.557976, 0.651128, 0.514485)
    +view.focus = (0.5, 0.5, 0.5)
    +view.viewUp = (-0.0955897, 0.666272, -0.739557)
    +view.viewAngle = 30
    +view.parallelScale = 0.866025
    +view.nearPlane = -1.73205
    +view.farPlane = 1.73205
    +view.perspective = 1
    +SetView3D(view)
    +
    +OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +AddPlot("FilledBoundary", "mat")
    +DrawPlots()
    +
    +# Test the normal material plot.
    +Test("sil1")
    +
    +# Make sure that the ghost zones were generated correctly.
    +view.nearPlane = -0.3
    +SetView3D(view)
    +Test("sil2")
    +
    +view.nearPlane = -1.73205
    +SetView3D(view)
    +
    +TurnMaterialsOff("1")
    +Test("sil3")
    +
    +TurnMaterialsOff()
    +TurnMaterialsOn("1")
    +Test("sil4")
    +
    +DeleteAllPlots()
    +
    +# Test that the SIL from the previous plot is preserved.
    +AddPlot("Subset", "domains")
    +DrawPlots()
    +Test("sil5")
    +
    +OpenDatabase(data_path("Chombo_test_data/chombo.visit"))
    +
    +AddPlot("Pseudocolor", "Density")
    +s = SILRestriction()
    +s.TurnOffSet(s.SetsInCategory("materials")[1])
    +SetPlotSILRestriction(s)
    +DrawPlots()
    +TimeSliderSetState(4)
    +s = SILRestriction()
    +if (s.UsesData(s.SetsInCategory("materials")[1])):
    +   text="Material 1 got turned back on!  (incorrect)\n"
    +else:
    +   text="Material 1 was correctly left off.\n"
    +
    +TestText("sil6", text)
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_simplify_mixed.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_simplify_mixed.html new file mode 100644 index 000000000..9e3d07954 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_simplify_mixed.html @@ -0,0 +1,74 @@ + +Results for hybrid/simplify_mixed.py + +

    Results of VisIt Regression Test - hybrid/simplify_mixed

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    simplify_mixed010.000.00
    simplify_mixed020.000.00
    simplify_mixed030.000.00
    simplify_mixed040.000.00
    simplify_mixed050.000.00
    simplify_mixed060.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_simplify_mixed_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_simplify_mixed_py.html new file mode 100644 index 000000000..897ef3106 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_simplify_mixed_py.html @@ -0,0 +1,90 @@ +hybrid/simplify_mixed.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  simplify_mixed.py
    +#
    +#  Tests:      plots     - filled boundary
    +#
    +#  Defect ID:  '4363, '6464, '6504, '8082
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 19, 2005
    +#
    +#  Modifications:
    +# 
    +#    Hank Childs, Fri Sep 28 12:48:54 PDT 2007
    +#    Add testing for mixvars with simplify heavily mixed ['8082].
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Eddie Rusu, Tue Apr 13 12:08:59 PDT 2021
    +#    Changed Pseudocolor CurrentPlot to ActualData.
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(data_path("boxlib_test_data/2D/plt0822/Header"))
    +
    +
    +AddPlot("FilledBoundary", "materials")
    +DrawPlots()
    +
    +v = GetView2D()
    +v.windowCoords = (0.0084, 0.0215, 0.0920, 0.1034)
    +v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +SetView2D(v)
    +
    +Test("simplify_mixed01")
    +
    +m = MaterialAttributes()
    +m.simplifyHeavilyMixedZones = 1
    +m.maxMaterialsPerZone = 2
    +SetMaterialAttributes(m)
    +
    +AddPlot("Boundary", "materials")
    +b = BoundaryAttributes()
    +b.colorType = b.ColorBySingleColor
    +SetPlotOptions(b)
    +
    +DrawPlots()
    +
    +Test("simplify_mixed02")
    +
    +DeleteAllPlots()
    +m.maxMaterialsPerZone = 1
    +SetMaterialAttributes(m)
    +
    +AddPlot("FilledBoundary", "materials")
    +DrawPlots()
    +
    +Test("simplify_mixed03")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("thinplane.silo"))
    +
    +
    +m.forceMIR = 1
    +SetMaterialAttributes(m)
    +AddPlot("Pseudocolor", "den")
    +p = PseudocolorAttributes()
    +p.limitsMode = p.ActualData
    +SetPlotOptions(p)
    +DrawPlots()
    +Test("simplify_mixed04")
    +
    +m.maxMaterialsPerZone = 2
    +SetMaterialAttributes(m)
    +ReOpenDatabase(silo_data_path("thinplane.silo"))
    +
    +Test("simplify_mixed05")
    +
    +m.maxMaterialsPerZone = 3
    +SetMaterialAttributes(m)
    +ReOpenDatabase(silo_data_path("thinplane.silo"))
    +
    +Test("simplify_mixed06")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_specmf.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_specmf.html new file mode 100644 index 000000000..8cdc3c987 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_specmf.html @@ -0,0 +1,48 @@ + +Results for hybrid/specmf.py + +

    Results of VisIt Regression Test - hybrid/specmf

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    specmf_00.000.00
    specmf_10.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_specmf_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_specmf_py.html new file mode 100644 index 000000000..6efab9c1e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_specmf_py.html @@ -0,0 +1,42 @@ +hybrid/specmf.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  val4mat.py
    +#
    +#  Tests:      mesh      - 2d structured
    +#              plots     - pc
    +#
    +#  Notes
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Tuesday 12, 2008
    +#
    +#  Modifiations:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("specmix_quad.silo"))
    +
    +atts = PseudocolorAttributes()
    +atts.minFlag = 1
    +atts.min = 0.0
    +atts.maxFlag = 1
    +atts.max = 1.0
    +SetDefaultPlotOptions(atts)
    +
    +# view the per material values for each of the 3 materials
    +
    +DefineScalarExpression("spec_mix", "specmf(Species,1,1)")
    +AddPlot("Pseudocolor", "spec_mix")
    +DrawPlots()
    +Test("specmf_0")
    +
    +OpenDatabase(silo_data_path("specmix_double_quad.silo"))
    +
    +AddPlot("Pseudocolor", "spec_mix")
    +DrawPlots()
    +Test("specmf_1")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_symm.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_symm.html new file mode 100644 index 000000000..7e91153d0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_symm.html @@ -0,0 +1,100 @@ + +Results for hybrid/symm.py + +

    Results of VisIt Regression Test - hybrid/symm

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    symm_010 modifications totalling 0 lines
    symm_020.000.00
    symm_030.000.00
    symm_040.000.00
    symm_050.000.00
    symm_060.000.00
    symm_070.000.00
    symm_080.000.00
    symm_090.000.00
    symm_100.000.00
    symm_110.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_symm_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_symm_py.html new file mode 100644 index 000000000..d0d2f2c47 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_symm_py.html @@ -0,0 +1,114 @@ +hybrid/symm.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  symm.py
    +#
    +#  Defect ID:  '6913, '7644, '7650
    +#
    +#  Programmer: Hank Childs
    +#  Date:       January 23, 2006
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Fri Dec 22 11:01:09 PST 2006
    +#    Add testing for symm_point
    +#
    +#    Hank Childs, Fri Jan  5 11:14:59 PST 2007
    +#    Add testing for non-rectilinear mesh types, since they use a different
    +#    code path (which broke).
    +#
    +#    Hank Childs, Mon Jan  8 11:04:50 PST 2007
    +#    Add testing for non-scalar variable types with symmetry CMFE expressions.
    +#
    +#    Brad Whitlock, Thu May 10 09:06:46 PDT 2007
    +#    Changed the name of an expression.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +
    +# Test errors.
    +DefineScalarExpression("sp1", "symm_plane(d, [0, 0, 0, 1, 0, 0])")
    +AddPlot("Pseudocolor", "sp1")
    +DrawPlots()
    +t = GetLastError()
    +TestText("symm_01", t)
    +
    +# Now test it working...
    +DeleteAllPlots()
    +DefineScalarExpression("sp2", "symm_plane(d, [1, 0, 0, 0.3, 0, 0])")
    +AddPlot("Pseudocolor", "sp2")
    +DrawPlots()
    +Test("symm_02")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("sp3", "symm_plane(d, [1, -1, 0, 0.1, 0, 0])")
    +AddPlot("Pseudocolor", "sp3")
    +DrawPlots()
    +Test("symm_03")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("sp4", "symm_plane(d, [2, -1, 0, 0.1, 0, 0])")
    +AddPlot("Pseudocolor", "sp4")
    +DrawPlots()
    +Test("symm_04")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("st1", "symm_transform(d, [0,1,0,1,0,0,0,0,0])")
    +AddPlot("Pseudocolor", "st1")
    +DrawPlots()
    +Test("symm_05")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +DefineScalarExpression("sp5", "symm_plane(hardyglobal, [1, 0, 0, 0, 0, 0])")
    +AddPlot("Contour", "sp5")
    +DrawPlots()
    +Test("symm_06")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +DefineScalarExpression("st2", "symm_transform(hardyglobal, [0.707, 0.707, 0, -0.707, 0.707, 0, 0, 0, 1])")
    +AddPlot("Contour", "st2")
    +DrawPlots()
    +Test("symm_07")
    +
    +ActivateDatabase(silo_data_path("rect2d.silo"))
    +
    +DeleteAllPlots()
    +DefineScalarExpression("sp4_2", "symm_point(d, [0.4, 0.6, 0])")
    +AddPlot("Pseudocolor", "sp4_2")
    +DrawPlots()
    +Test("symm_08")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +DefineScalarExpression("sp6", "symm_plane(d, [1, 0, 0, 0.2, 0, 0])")
    +AddPlot("Pseudocolor", "sp6")
    +DrawPlots()
    +Test("symm_09")
    +
    +DeleteAllPlots()
    +DefineVectorExpression("sp7", "symm_plane(vel, [1, 0, 0, 0.2, 0, 0])")
    +AddPlot("Vector", "sp7")
    +DrawPlots()
    +Test("symm_10")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("sp8", "magnitude(symm_plane(vel, [1, 0, 0, 0.2, 0, 0]))")
    +AddPlot("Pseudocolor", "sp8")
    +DrawPlots()
    +Test("symm_11")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_time_cmfe.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_time_cmfe.html new file mode 100644 index 000000000..b9ce53b69 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_time_cmfe.html @@ -0,0 +1,108 @@ + +Results for hybrid/time_cmfe.py + +

    Results of VisIt Regression Test - hybrid/time_cmfe

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    time_cmfe_010.000.00
    time_cmfe_020.000.00
    time_cmfe_030.000.00
    time_cmfe_040.000.00
    time_cmfe_050.000.00
    time_cmfe_060.000.00
    time_cmfe_070.000.00
    time_cmfe_080.000.00
    time_cmfe_090.000.00
    time_cmfe_100.000.00
    time_cmfe_110.000.00
    time_cmfe_120.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_time_cmfe_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_time_cmfe_py.html new file mode 100644 index 000000000..72f3fb828 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_time_cmfe_py.html @@ -0,0 +1,93 @@ +hybrid/time_cmfe.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  time_cmfe.py
    +#
    +#  Defect ID:  None
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 30, 2005
    +#
    +#  Modifications:
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Brad Whitlock, Thu Apr 19 14:35:20 PDT 2012
    +#    I changed the last couple of tests so we can directly compare the
    +#    data at a time step with what time deltas should give us.
    +#
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +
    +
    +# Test general capability.
    +DefineScalarExpression("cmfe", "conn_cmfe(<%s[10]i:pressure>, quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +AddPlot("Pseudocolor", "cmfe")
    +DrawPlots()
    +Test("time_cmfe_01")
    +
    +# Should be same pressure, since we aren't doing deltas
    +SetTimeSliderState(20)
    +Test("time_cmfe_02")
    +
    +DefineScalarExpression("cmfe2", "conn_cmfe(<%s[-10]id:pressure>, quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +ChangeActivePlotsVar("cmfe2")
    +Test("time_cmfe_03")
    +
    +SetTimeSliderState(40)
    +Test("time_cmfe_04")
    +
    +DefineScalarExpression("cmfe3", "conn_cmfe(<%s[200]c:pressure>, quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +ChangeActivePlotsVar("cmfe3")
    +Test("time_cmfe_05")
    +
    +SetTimeSliderState(20)
    +Test("time_cmfe_06")
    +
    +DefineScalarExpression("cmfe4", "conn_cmfe(<%s[200]cd:pressure>, quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +ChangeActivePlotsVar("cmfe4")
    +Test("time_cmfe_07")
    +
    +SetTimeSliderState(40)
    +Test("time_cmfe_08")
    +
    +DefineScalarExpression("cmfe5", "conn_cmfe(<%s[-0.9]t:pressure>, quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +ChangeActivePlotsVar("cmfe5")
    +Test("time_cmfe_09")
    +
    +SetTimeSliderState(20)
    +Test("time_cmfe_10")
    +
    +# Get rid of the wave in the mesh and slice it. I'm slicing it because I was 
    +# originally doing lineouts but those didn't line up for some reason.
    +DefineScalarExpression("i", "mod(nodeid(quadmesh), 101.)")
    +DefineScalarExpression("j", "floor((nodeid(quadmesh) - (k*101.*11.) - i) / 101.)")
    +DefineScalarExpression("k", "floor(nodeid(quadmesh) / (101.*11.))")
    +DefineVectorExpression("offset", "{coords(quadmesh)[0], j * 0.06, coords(quadmesh)[2]} - coords(quadmesh)")
    +AddOperator("Displace")
    +disp = DisplaceAttributes()
    +disp.variable = "offset"
    +disp.factor = 1
    +SetOperatorOptions(disp)
    +AddOperator("Slice")
    +DrawPlots()
    +
    +ChangeActivePlotsVar("pressure")
    +# Do a plot of pressure at time state 25 since the time there is 3. 
    +SetTimeSliderState(25)
    +Test("time_cmfe_11")
    +
    +# Now create a time delta expression where we want to get the data that trails
    +# the current time step by 0.8. We'll set the time slider to state 29 where the 
    +# time is 3.8 and we'll use the cmfe time delta to obtain data from 0.8 time
    +# units before, or in other words, time state 25. Then we'll do a plot to see
    +# if the data matches the previous test.
    +DefineScalarExpression("cmfe6", "conn_cmfe(<%s[-0.8]td:pressure>, quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +SetTimeSliderState(29)
    +ChangeActivePlotsVar("cmfe6")
    +Test("time_cmfe_12")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_time_deriv_cmfe.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_time_deriv_cmfe.html new file mode 100644 index 000000000..ee5360626 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_time_deriv_cmfe.html @@ -0,0 +1,54 @@ + +Results for hybrid/time_deriv_cmfe.py + +

    Results of VisIt Regression Test - hybrid/time_deriv_cmfe

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    time_deriv_cmfe_010.000.00
    time_deriv_cmfe_020.000.00
    time_deriv_cmfe_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_time_deriv_cmfe_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_time_deriv_cmfe_py.html new file mode 100644 index 000000000..7d523a054 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_time_deriv_cmfe_py.html @@ -0,0 +1,35 @@ +hybrid/time_deriv_cmfe.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  time_deriv_cmfe.py
    +#
    +#  Defect ID:  '2715, '6897
    +#
    +#  Programmer: Hank Childs
    +#  Date:       January 12, 2006
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +
    +
    +# Test general capability.
    +AddPlot("Pseudocolor", "time_derivative/conn_based/pressure")
    +DrawPlots()
    +Test("time_deriv_cmfe_01")
    +
    +TimeSliderSetState(50)
    +Test("time_deriv_cmfe_02")
    +
    +ChangeActivePlotsVar("time_derivative/pos_based/pressure")
    +Test("time_deriv_cmfe_03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_time_iteration.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_time_iteration.html new file mode 100644 index 000000000..ac1de0755 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_time_iteration.html @@ -0,0 +1,54 @@ + +Results for hybrid/time_iteration.py + +

    Results of VisIt Regression Test - hybrid/time_iteration

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    time_iteration_010.000.00
    time_iteration_020.000.00
    time_iteration_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_time_iteration_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_time_iteration_py.html new file mode 100644 index 000000000..bcd7f313b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_time_iteration_py.html @@ -0,0 +1,41 @@ +hybrid/time_iteration.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  time_iteration.py
    +#
    +#  Defect ID:  None
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 27, 2010
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +
    +
    +DefineScalarExpression("ave1", "average_over_time(pressure, 1, 10, 1)")
    +AddPlot("Pseudocolor", "ave1")
    +DrawPlots()
    +v = GetView3D()
    +v.viewNormal = (0.607716, 0.507406, 0.610918)
    +v.viewUp = (-0.342711, 0.861513, -0.374627)
    +SetView3D(v)
    +Test("time_iteration_01")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("ave2", "average_over_time(pressure, 10, 20, 1)")
    +AddPlot("Pseudocolor", "ave2")
    +DrawPlots()
    +Test("time_iteration_02")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("pressure_big", "ge(pressure, 0.8)")
    +DefineScalarExpression("first_time", "first_time_when_condition_is_true(pressure_big, 100, 1, 71, 1)")
    +AddPlot("Pseudocolor", "first_time")
    +DrawPlots()
    +Test("time_iteration_03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_timelock.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_timelock.html new file mode 100644 index 000000000..08007b80a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_timelock.html @@ -0,0 +1,189 @@ + +Results for hybrid/timelock.py + +

    Results of VisIt Regression Test - hybrid/timelock

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Make sure we get a time slider when locking a window causes the most suitable correlation to be altered.
    timelock_000.000.00
    timelock_010 modifications totalling 0 lines
    timelock_020.000.00
    timelock_030 modifications totalling 0 lines
    timelock_040.000.00
    timelock_050 modifications totalling 0 lines
    timelock_060 modifications totalling 0 lines
    timelock_070 modifications totalling 0 lines
    timelock_080.000.00
    timelock_090 modifications totalling 0 lines
    timelock_100.000.00
    timelock_110 modifications totalling 0 lines
    timelock_120.000.00
    timelock_130 modifications totalling 0 lines
    Test that the time slider works when time locking multiple windows
    timelock_140.000.00
    timelock_150 modifications totalling 0 lines
    timelock_160.000.00
    Make sure replacing into a time-locked window updates the database correlation.
    timelock_210.000.00
    timelock_220.000.00
    timelock_230 modifications totalling 0 lines
    timelock_240 modifications totalling 0 lines
    timelock_250 modifications totalling 0 lines
    timelock_260 modifications totalling 0 lines
    timelock_270.000.00
    timelock_280.000.00
    timelock_290.000.00
    timelock_300 modifications totalling 0 lines
    timelock_310.000.00
    timelock_320 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_timelock_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_timelock_py.html new file mode 100644 index 000000000..d78a50873 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_timelock_py.html @@ -0,0 +1,378 @@ +hybrid/timelock.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  timelock.py
    +#
    +#  Tests:      mesh      - 2D, 3D, curvilinear, single domain
    +#              plots     - FilledBoundary, Pseudocolor
    +#              databases - PDB, Silo
    +#
    +#  Purpose:    This test case tests out locking windows in time with multiple
    +#              databases in multiple windows. It makes sure that we get the
    +#              right database correlations and the right time sliders.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Mar 17 09:58:35 PDT 2005
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Mar 23 09:23:53 PDT 2005
    +#    I made it truncate the window information so the scalable rendering flag
    +#    is not included. This way, I don't need mode-specific baselines. I also
    +#    added 2 new test cases to check the window information because one of
    +#    the baseline images in test case 2 was incorrect. Finally, I added code
    +#    in the CleanSlate function to make sure that time locking is off. That
    +#    was what caused the incorrect test case image.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Eric Brugger, Fri Jul 30 13:53:48 PDT 2010
    +#    I increased the number of lines of information it prints to 18.
    +#
    +#    Eric Brugger, Tue Nov 12 10:27:55 PST 2024
    +#    I modified the coding that skips some tests in scalable rendering mode
    +#    to also skip the SetTimeSliderState call as well.
    +#
    +# ----------------------------------------------------------------------------
    +
    +import os
    +
    +#
    +# Look at the first few lines of the string representation of the
    +# WindowInformation to see the list of time sliders, etc.
    +#
    +def TestWindowInformation(testname):
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 18 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    for i in range(18):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    # Get the window information and convert it to a string.
    +    TestText(testname, s)
    +
    +
    +#
    +# Tests that the database correlations look a certain way.
    +#
    +def TestCorrelations(testname):
    +    names = GetDatabaseCorrelationNames()
    +    s = ""
    +    for name in names:
    +        c = GetDatabaseCorrelation(name)
    +        s = s + str(c) + "\n"
    +    TestText(testname, s)
    +
    +def CleanSlate():
    +    # Delete all but the first window.
    +    windows = list(GetGlobalAttributes().windows)
    +    windows.sort()
    +    for win in windows[1:]:
    +        SetActiveWindow(win)
    +        DeleteWindow()
    +
    +    # Delete all of the plots.
    +    DeleteAllPlots()
    +
    +    # Delete all of the database correlations:
    +    sources = GetGlobalAttributes().sources
    +    cL = GetDatabaseCorrelationNames()
    +    for name in cL:
    +        if name not in sources:
    +            DeleteDatabaseCorrelation(name)
    +
    +    # Close all of the sources.
    +    for src in sources:
    +        CloseDatabase(src)
    +
    +    # Make sure clone window on first reference is off.
    +    SetCloneWindowOnFirstRef(0)
    +
    +    # Make sure that window 1 is not locked in time!
    +    if GetWindowInformation().lockTime == 1:
    +        ToggleLockTime()
    +
    +#
    +# Returns whether all files in the list are in the current directory.
    +#
    +def FilesPresent(files):
    +    currentFileList = os.listdir(".")
    +    count = 0
    +    retval = 0
    +    if type(files) == type(()) or type(files) == type([]):
    +        for file in files:
    +            if file in currentFileList:
    +                count = count + 1
    +        retval = count == len(files)
    +    else:
    +        # We got here because the files argument was 
    +        # a single value instead of a tuple or list.
    +        if files in currentFileList:
    +            retval = 1
    +
    +    return retval
    +
    +#
    +# Waits for all files in the list to be present in the current directory.
    +#
    +def WaitForFilesToBePresent(files):
    +    while(FilesPresent(files) == 0): sleep(1)
    +
    +#
    +# Remove all .visit files from the current directory.
    +#
    +def RemoveAllVisItFiles():
    +    currentFileList = os.listdir(".")
    +    for file in currentFileList:
    +        if file[-5:] == ".silo" or file[-6:] == ".visit":
    +            try:
    +                os.unlink(file)
    +            except:
    +                # Ignore any exceptions
    +                pass
    +
    +#
    +# Set a better view for wave.
    +#
    +def SetWaveDatabaseView():
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.735926, 0.562657, 0.376604)
    +    v0.focus = (5, 0.753448, 2.5)
    +    v0.viewUp = (0.454745, 0.822858, -0.340752)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 5.6398
    +    v0.nearPlane = -11.2796
    +    v0.farPlane = 11.2796
    +    v0.imagePan = (0.0589778, 0.0898255)
    +    v0.imageZoom = 1.32552
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    SetView3D(v0)
    +
    +#
    +# Set the active window and also set the window's background color so it's
    +# easy to tell which window we're looking at.
    +#
    +def GotoWindow(win):
    +    SetActiveWindow(win)
    +
    +    a = GetAnnotationAttributes()
    +    if win == 1:
    +        a.backgroundColor = (255,200,200,255)
    +    elif win == 2:
    +        a.backgroundColor = (200,255,200,255)
    +    else:
    +        a.backgroundColor = (200,200,255,255)
    +    SetAnnotationAttributes(a)
    +
    +#
    +# Test that we get an active time slider when a correlation is modified
    +# as a result of locking the window in time.
    +#
    +def test1(testindex):
    +    TestSection("Make sure we get a time slider when locking a window "
    +                "causes the most suitable correlation to be altered.")
    +    SetWindowLayout(4)
    +
    +    # Turn on "CloneWindowOnFirstRef"
    +    SetCloneWindowOnFirstRef(1)
    +
    +    # Copy wave.visit to this directory a few times.
    +    f = open(silo_data_path("wave.visit") , "rt")
    +    lines = f.readlines()
    +    f.close()
    +    f0 = open("wave.visit","wt")
    +    f1 = open("wave1.visit","wt")
    +    f2 = open("wave2.visit","wt")
    +    for line in lines:
    +        f0.write(silo_data_path(line))
    +        f1.write(silo_data_path(line))
    +        f2.write(silo_data_path(line))
    +    f0.close()
    +    f1.close()
    +    f2.close()
    +
    +    GotoWindow(1)
    +    OpenDatabase("wave.visit")
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    SetWaveDatabaseView()
    +    Test("timelock_%02d" % testindex)
    +    TestWindowInformation("timelock_%02d" % (testindex+1))
    +
    +    # Go to the next window. The plot should be copied. Replace the database
    +    # before we draw the plots so we'll be using a different database.
    +    GotoWindow(2)
    +    ReplaceDatabase("wave1.visit")
    +    DrawPlots()
    +    Test("timelock_%02d" % (testindex+2))
    +    TestWindowInformation("timelock_%02d" % (testindex+3))
    +
    +    # Go to the next window. The plot should be copied. Replace the database
    +    # before we draw the plots so we'll be using a different database.
    +    GotoWindow(3)
    +    ReplaceDatabase("wave2.visit")
    +    DrawPlots()
    +    Test("timelock_%02d" % (testindex+4))
    +    TestWindowInformation("timelock_%02d" % (testindex+5))
    +
    +    # Lock window 1 and 2. This should result in a database correlation.
    +    GotoWindow(1)
    +    ToggleLockTime()
    +    GotoWindow(2)
    +    ToggleLockTime()
    +    TestCorrelations("timelock_%02d" % (testindex+6))
    +
    +    # Lock window 3 in time now also. This should result in the new database
    +    # correlation being modified to accomodate window 3's database.
    +    GotoWindow(3)
    +    ToggleLockTime()
    +    TestCorrelations("timelock_%02d" % (testindex+7))
    +
    +    # Change time states and make sure all windows look the same.
    +    SetTimeSliderState(36)
    +    Test("timelock_%02d" % (testindex+8))
    +    TestWindowInformation("timelock_%02d" % (testindex+9))
    +    GotoWindow(2)
    +    Test("timelock_%02d" % (testindex+10))
    +    TestWindowInformation("timelock_%02d" % (testindex+11))
    +    GotoWindow(1)
    +    Test("timelock_%02d" % (testindex+12))
    +    TestWindowInformation("timelock_%02d" % (testindex+13))
    +
    +    # Get ready for the next test.
    +    CleanSlate()
    +    RemoveAllVisItFiles()
    +
    +    return testindex + 14
    +
    +#
    +# Test that time locking works for multiple windows. What we're really
    +# testing is that the database is copied to the newly referenced window
    +# even though we have "CloneWindowOnFirstRef" set to off. Defect '6053.
    +#
    +def test2(testindex):
    +    TestSection("Test that the time slider works when time locking multiple windows")
    +
    +    a = GetAnnotationAttributes()
    +    b = GetAnnotationAttributes()
    +    SetAnnotationAttributes(b)
    +
    +    SetCloneWindowOnFirstRef(0)
    +    OpenDatabase(data_path("pdb_test_data/dbA00.pdb"))
    +
    +    AddPlot("FilledBoundary", "material(mesh)")
    +    DrawPlots()
    +    Test("timelock_%02d" % testindex)
    +
    +    SetWindowLayout(2)
    +    GotoWindow(2)
    +    SetAnnotationAttributes(b)
    +    TestWindowInformation("timelock_%02d" % (testindex+1))
    +    AddPlot("Pseudocolor", "mesh/nummm")
    +    DrawPlots()
    +    Test("timelock_%02d" % (testindex+2))
    +
    +    # Turn on time locking in both windows.
    +    GotoWindow(1)
    +    ToggleLockTime()
    +    GotoWindow(2)
    +    ToggleLockTime()
    +
    +    # See if both windows updated when we changed the time in window 2.
    +    # This crashes in scalable,parallel,icet.
    +    if TestEnv.params["scalable"] == False:
    +        SetTimeSliderState(5)
    +        Test("timelock_%02d" % (testindex+3))
    +        TestWindowInformation("timelock_%02d" % (testindex+4))
    +        GotoWindow(1)
    +        ResetView()
    +        Test("timelock_%02d" % (testindex+5))
    +        TestWindowInformation("timelock_%02d" % (testindex+6))
    +
    +    # Get ready for the next test.
    +    CleanSlate()
    +    SetAnnotationAttributes(a)
    +
    +    return testindex + 7
    +
    +#
    +# Make sure that replacing into a time-locked window updates the database
    +# correlation.
    +#
    +def test3(testindex):
    +    TestSection("Make sure replacing into a time-locked window updates "
    +                "the database correlation.")
    +    SetWindowLayout(4)
    +
    +    # Turn on "CloneWindowOnFirstRef"
    +    SetCloneWindowOnFirstRef(1)
    +
    +    dbs = (silo_data_path("wave.visit") ,
    +           silo_data_path("wave_tv.visit") )
    +    OpenDatabase(dbs[0])
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    SetWaveDatabaseView()
    +    Test("timelock_%02d" % testindex)
    +
    +    GotoWindow(2)
    +    DeleteAllPlots()
    +    AddPlot("FilledBoundary", "Material")
    +    DrawPlots()
    +    Test("timelock_%02d" % (testindex+1))
    +    ToggleLockTime()
    +    TestWindowInformation("timelock_%02d" % (testindex+2))
    +    GotoWindow(1)
    +    ToggleLockTime()
    +    TestWindowInformation("timelock_%02d" % (testindex+3))
    +
    +    # Go to window 3 and make sure that certain fields were copied.
    +    # Window 3 should already be locked in time and it should contain
    +    # a Pseudocolor plot.
    +    GotoWindow(3)
    +    TestWindowInformation("timelock_%02d" % (testindex+4))
    +
    +    # Replace the database with wave_tv so we can make sure that VisIt can
    +    # create correlations when it needs to during a replace. Note that we
    +    # also replace with a later time state. This should cause the time states
    +    # for the other windows to be updated.
    +    ReplaceDatabase(dbs[1], 36)
    +    TestCorrelations("timelock_%02d" % (testindex+5))
    +    DrawPlots()
    +    Test("timelock_%02d" % (testindex+6))
    +
    +    # Test that we change change to the transient variable.
    +    ChangeActivePlotsVar("transient")
    +    Test("timelock_%02d" % (testindex+7))
    +
    +    # Make sure that the time state changed in windows 1,2.
    +    GotoWindow(2)
    +    Test("timelock_%02d" % (testindex+8))
    +    TestWindowInformation("timelock_%02d" % (testindex+9))
    +    GotoWindow(1)
    +    Test("timelock_%02d" % (testindex+10))
    +    TestWindowInformation("timelock_%02d" % (testindex+11))
    +
    +    # Get ready for the next test.
    +    CleanSlate()
    +
    +    return testindex + 12
    +
    +#
    +# Run the tests
    +#
    +try:
    +    testindex = 0
    +    testindex = test1(testindex)
    +    testindex = test2(testindex)
    +    testindex = test3(testindex)
    +except:
    +    RemoveAllVisItFiles()
    +    raise
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_val4mat.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_val4mat.html new file mode 100644 index 000000000..fbe591cd2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_val4mat.html @@ -0,0 +1,66 @@ + +Results for hybrid/val4mat.py + +

    Results of VisIt Regression Test - hybrid/val4mat

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    value_for_mat_10.000.00
    value_for_mat_20.000.00
    value_for_mat_30.000.00
    value_for_mat_post_ghost_10.000.00
    value_for_mat_post_ghost_20.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_val4mat_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_val4mat_py.html new file mode 100644 index 000000000..0211fe87f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_val4mat_py.html @@ -0,0 +1,76 @@ +hybrid/val4mat.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  val4mat.py
    +#
    +#  Tests:      mesh      - 3D structured, multi domain
    +#              plots     - pc
    +#
    +#  Notes:      Migrated value_for_material tests from expressions.py
    +#              and added post ghost test cases. 
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Tuesday 12, 2008
    +#
    +#  Modifiations:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("thinplane.silo"))
    +
    +atts = PseudocolorAttributes()
    +atts.minFlag = 1
    +atts.min = 0.0
    +atts.maxFlag = 1
    +atts.max = 10.0
    +SetDefaultPlotOptions(atts)
    +
    +# view the per material values for each of the 3 materials
    +
    +DefineScalarExpression("vfm_1", "value_for_material(den,1)")
    +AddPlot("Pseudocolor", "vfm_1")
    +DrawPlots()
    +Test("value_for_mat_1")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("vfm_2", "value_for_material(den,2)")
    +AddPlot("Pseudocolor", "vfm_2")
    +DrawPlots()
    +Test("value_for_mat_2")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("vfm_3", "value_for_material(den,\"3\")")
    +AddPlot("Pseudocolor", "vfm_3")
    +DrawPlots()
    +Test("value_for_mat_3")
    +
    +
    +ChangeActivePlotsVar("vfm_2")
    +
    +# test w/ ghost zones (switch vfm_2 to nodal)
    +atts = PseudocolorAttributes(1)
    +atts.minFlag = 1
    +atts.min = 0.0
    +atts.maxFlag = 1
    +atts.max = 10.0
    +atts.centering = atts.Nodal
    +SetPlotOptions(atts)
    +DrawPlots()
    +Test("value_for_mat_post_ghost_1")
    +
    +# make sure post ghost caching doesn't tank non ghost results
    +atts = PseudocolorAttributes(1)
    +atts.minFlag = 1
    +atts.min = 0.0
    +atts.maxFlag = 1
    +atts.max = 10.0
    +atts.centering = atts.Zonal
    +SetPlotOptions(atts)
    +DrawPlots()
    +Test("value_for_mat_post_ghost_2")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_vtkm.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_vtkm.html new file mode 100644 index 000000000..c17ba3e00 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_vtkm.html @@ -0,0 +1,372 @@ + +Results for hybrid/vtkm.py + +

    Results of VisIt Regression Test - hybrid/vtkm

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    vtkm_rect2d_010.000.00
    vtkm_rect2d_020.000.00
    vtkm_rect3d_010.000.00
    vtkm_rect3d_01a0.000.00
    vtkm_rect3d_020.000.00
    vtkm_rect3d_030.000.00
    vtkm_rect3d_040.000.00
    vtkm_rect3d_050.000.00
    vtkm_rect3d_060.000.00
    vtkm_rect3d_070.000.00
    vtkm_rect3d_080.000.00
    vtkm_rect3d_090.000.00
    vtkm_rect3d_100.000.00
    vtkm_curv2d_010.000.00
    vtkm_curv2d_020.000.00
    vtkm_curv3d_010.000.00
    vtkm_curv3d_01a0.000.00
    vtkm_curv3d_020.000.00
    vtkm_curv3d_030.000.00
    vtkm_curv3d_040.000.00
    vtkm_curv3d_050.000.00
    vtkm_curv3d_060.000.00
    vtkm_curv3d_070.000.00
    vtkm_curv3d_080.000.00
    vtkm_curv3d_090.000.00
    vtkm_curv3d_100.000.00
    vtkm_ucd2d_010.000.00
    vtkm_ucd2d_020.000.00
    vtkm_ucd3d_010.000.00
    vtkm_ucd3d_01a0.000.00
    vtkm_ucd3d_020.000.00
    vtkm_ucd3d_030.000.00
    vtkm_ucd3d_040.000.00
    vtkm_ucd3d_050.000.00
    vtkm_ucd3d_060.000.00
    vtkm_ucd3d_070.000.00
    vtkm_ucd3d_080.000.00
    vtkm_globe_010.000.00
    vtkm_globe_020.000.00
    vtkm_globe_030.000.00
    vtkm_globe_040.000.00
    vtkm_globe_050.000.00
    vtkm_globe_060.000.00
    vtkm_globe_070.000.00
    vtkm_globe_080.000.00
    vtkm_globe_090.000.00
    vtkm_globe_100.000.00
    vtkm_globe_110.000.00
    vtkm_multi_ucd3d_010.000.00
    vtkm_multi_ucd3d_020.000.00
    vtkm_multi_ucd3d_030.000.00
    vtkm_multi_ucd3d_040.000.00
    vtkm_multi_ucd3d_050.000.00
    vtkm_multi_ucd3d_060.000.00
    vtkm_multi_ucd3d_070.000.00
    vtkm_multi_ucd3d_080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_vtkm_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_vtkm_py.html new file mode 100644 index 000000000..0ec396ec0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/hybrid_vtkm_py.html @@ -0,0 +1,779 @@ +hybrid/vtkm.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  vtkm.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, single domain
    +#                          3D curvilinear, single domain
    +#                          3D unstructured, single domain
    +#                          3D unstructured, multi domain
    +#              plots     - Contour, Pseudocolor
    +#              operators - Isosurface, Isovolume, Slice, Threshold
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       Wed Sep 19 12:18:14 PDT 2018
    +#
    +#  Modifications:
    +#    James Kress, Tue Oct  5 14:00:28 PST 2021
    +#    Adding additional threshold tests.
    +#
    +#    Eric Brugger, Fri Feb 24 14:57:15 PST 2023
    +#    Added additional tests.
    +#
    +# ----------------------------------------------------------------------------
    +
    +SetBackendType("vtkm")
    +
    +#
    +# Test a 2d rectilinear mesh.
    +#
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +Test("vtkm_rect2d_01")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Contour", "d")
    +DrawPlots()
    +
    +Test("vtkm_rect2d_02")
    +
    +#
    +# Test a 3d rectilinear mesh.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.4854, 0.3984, 0.7782)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.1209, 0.9122, -0.3916)
    +v.parallelScale = 0.8660
    +v.nearPlane = -1.7321
    +v.farPlane = 1.7321
    +SetView3D(v)
    +
    +Test("vtkm_rect3d_01")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Contour", "d")
    +DrawPlots()
    +
    +Test("vtkm_rect3d_01a")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0.5, 0.5, 0.5)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_rect3d_02")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0.5, 0.5, 0.5)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_rect3d_03")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_rect3d_04")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_rect3d_05")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (0.2)
    +ThresholdAtts.upperBounds = (0.59)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_rect3d_06")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (1)
    +ThresholdAtts.lowerBounds = (-0.2)
    +ThresholdAtts.upperBounds = (0.39)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_rect3d_07")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (-0.2)
    +ThresholdAtts.upperBounds = (0.39)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_rect3d_08")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isovolume")
    +IsovolumeAtts = IsovolumeAttributes()
    +IsovolumeAtts.lbound = -0.2
    +IsovolumeAtts.ubound = 0.39
    +IsovolumeAtts.variable = "u"
    +SetOperatorOptions(IsovolumeAtts)
    +DrawPlots()
    +
    +Test("vtkm_rect3d_09")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isovolume")
    +IsovolumeAtts = IsovolumeAttributes()
    +IsovolumeAtts.lbound = -0.2
    +IsovolumeAtts.ubound = 0.39
    +IsovolumeAtts.variable = "default"
    +SetOperatorOptions(IsovolumeAtts)
    +DrawPlots()
    +
    +Test("vtkm_rect3d_10")
    +
    +#
    +# Test a 2d curvilinear mesh.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +Test("vtkm_curv2d_01")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Contour", "d")
    +DrawPlots()
    +
    +Test("vtkm_curv2d_02")
    +
    +#
    +# Test a 3d curvilinear mesh.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.4854, 0.3984, 0.7782)
    +v.focus = (0., 2.5, 15.)
    +v.viewUp = (-0.1209, 0.9122, -0.3916)
    +v.parallelScale = 16.0078
    +v.nearPlane = -32.0156
    +v.farPlane = 32.0156
    +SetView3D(v)
    +
    +Test("vtkm_curv3d_01")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Contour", "d")
    +DrawPlots()
    +
    +Test("vtkm_curv3d_01a")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0., 2.5, 15.)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_curv3d_02")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0., 2.5, 15.)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_curv3d_03")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_curv3d_04")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_curv3d_05")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (1)
    +ThresholdAtts.upperBounds = (3)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_curv3d_06")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (1)
    +ThresholdAtts.lowerBounds = (-0.5)
    +ThresholdAtts.upperBounds = (0.5)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_curv3d_07")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (-0.5)
    +ThresholdAtts.upperBounds = (0.5)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_curv3d_08")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isovolume")
    +IsovolumeAtts = IsovolumeAttributes()
    +IsovolumeAtts.lbound = -0.5
    +IsovolumeAtts.ubound = 0.5
    +IsovolumeAtts.variable = "u"
    +SetOperatorOptions(IsovolumeAtts)
    +DrawPlots()
    +
    +Test("vtkm_curv3d_09")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isovolume")
    +IsovolumeAtts = IsovolumeAttributes()
    +IsovolumeAtts.lbound = -0.5
    +IsovolumeAtts.ubound = 0.5
    +IsovolumeAtts.variable = "default"
    +SetOperatorOptions(IsovolumeAtts)
    +DrawPlots()
    +
    +Test("vtkm_curv3d_10")
    +
    +#
    +# Test a 2d unstructured mesh.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("ucd2d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +Test("vtkm_ucd2d_01")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Contour", "d")
    +DrawPlots()
    +
    +Test("vtkm_ucd2d_02")
    +
    +#
    +# Test a 3d unstructured mesh.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("ucd3d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.4854, 0.3984, 0.7782)
    +v.focus = (0., 2.5, 10.)
    +v.viewUp = (-0.1209, 0.9122, -0.3916)
    +v.parallelScale = 11.4564
    +v.nearPlane = -22.9129
    +v.farPlane = 22.9129
    +SetView3D(v)
    +
    +Test("vtkm_ucd3d_01")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Contour", "d")
    +DrawPlots()
    +
    +Test("vtkm_ucd3d_01a")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0., 2.5, 10.)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_ucd3d_02")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0., 2.5, 10.)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_ucd3d_03")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_ucd3d_04")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_ucd3d_05")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (2.5)
    +ThresholdAtts.upperBounds = (4.0)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_ucd3d_06")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (1)
    +ThresholdAtts.lowerBounds = (0.8)
    +ThresholdAtts.upperBounds = (0.95)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_ucd3d_07")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (0.8)
    +ThresholdAtts.upperBounds = (0.95)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_ucd3d_08")
    +
    +#
    +# Test 3d unstructured with zoo elements.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (-0.3057, 0.7186, 0.6247)
    +v.focus = (0., 0., 0.)
    +v.viewUp = (0.5003, 0.6794, -0.5367)
    +v.parallelScale = 17.3205
    +v.nearPlane = -34.641
    +v.farPlane = 34.641
    +SetView3D(v)
    +
    +Test("vtkm_globe_01")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Contour", "dx")
    +DrawPlots()
    +
    +Test("vtkm_globe_02")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "v")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0., 0., 0.)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_globe_03")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "dx")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0., 0., 0.)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_globe_04")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_globe_05")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "dx")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_globe_06")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "dx")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (-2.0)
    +ThresholdAtts.upperBounds = (2.0)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_globe_07")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (1)
    +ThresholdAtts.lowerBounds = (-5.0)
    +ThresholdAtts.upperBounds = (5.0)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_globe_08")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (-5.0)
    +ThresholdAtts.upperBounds = (5.0)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_globe_09")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "dx")
    +AddOperator("Isovolume")
    +atts = IsovolumeAttributes()
    +atts.lbound = -5.0
    +atts.ubound = 5.0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_globe_10")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isovolume")
    +atts = IsovolumeAttributes()
    +atts.lbound = -5.0
    +atts.ubound = 5.0
    +atts.variable = "default"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_globe_11")
    +
    +#
    +# Test a multi-domain unstructured mesh.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.4854, 0.3984, 0.7782)
    +v.focus = (0., 2.5, 10.)
    +v.viewUp = (-0.1209, 0.9122, -0.3916)
    +v.parallelScale = 11.4564
    +v.nearPlane = -22.9129
    +v.farPlane = 22.9129
    +SetView3D(v)
    +
    +Test("vtkm_multi_ucd3d_01")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0., 2.5, 10.)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_multi_ucd3d_02")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0., 2.5, 10.)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_multi_ucd3d_03")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_multi_ucd3d_04")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_multi_ucd3d_05")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (2.5)
    +ThresholdAtts.upperBounds = (4.0)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_multi_ucd3d_06")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (1)
    +ThresholdAtts.lowerBounds = (0.995)
    +ThresholdAtts.upperBounds = (0.9985)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_multi_ucd3d_07")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (0.995)
    +ThresholdAtts.upperBounds = (0.9985)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_multi_ucd3d_08")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/index.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/index.html new file mode 100644 index 000000000..d89c1a86c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/index.html @@ -0,0 +1,2472 @@ + + + + + VisIt Regression Results ( poodle,trunk,scalable,parallel,icet ) - 2024:12:13:00:42:35 + + + + + + + + + + +

    Results of VisIt Regression Test ( poodle,trunk,scalable,parallel,icet )

    +Test suite run started at 2024:12:13:00:42:35.
    +(Click on table header to sort) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    IndexCategory Test File Status Runtime (sec)
    44databasessilo_altdriver.pyFailed: exit == 0 unknown4
    0databasesANSYS.pySucceeded6
    1databasesCGNS.pyAcceptable10
    45databasessilo_datatypes.pySucceeded19
    2databasesCale.pySucceeded5
    46databasessinglemulti.pySucceeded4
    3databasesFITS.pySucceeded6
    47databasessw4.pySucceeded5
    48databasesunv.pySucceeded6
    49databasestimesliders.pySucceeded7
    50databasesuintah.pySucceeded5
    4databasesFMS.pySucceeded77
    5databasesGDAL.pyAcceptable12
    6databasesRAW.pySucceeded5
    7databasesSPCTH.pySucceeded4
    8databasesWData.pySucceeded5
    51databasesblueprint.pyAcceptable With Skips95
    9databasesXmdv.pySucceeded5
    52databasesxdmf.pyAcceptable11
    53databasesxyz.pySucceeded8
    54databasesANALYZE.pySucceeded8
    10databasesbov.pyAcceptable36
    11databasesclaw.pySucceeded5
    55databasesChombo.pyAcceptable6
    12databasescurve.pyAcceptable4
    56databasesFluent.pySucceeded5
    57databasesNASTRAN.pySucceeded10
    13databasesddcMD.pyAcceptable12
    14databasesdiff.pySkipped(skipped)
    15databasesffp.pySucceeded5
    58databasesOpenFOAM.pySucceeded12
    16databasesflash.pySucceeded4
    59databasesPATRAN.pySucceeded7
    17databasesimage.pySucceeded5
    18databaseslata.pyAcceptable8
    19databasesleos.pyAcceptable15
    60databasesPLOT3D.pySucceeded41
    20databaseslines.pySucceeded4
    61databasesProteinDataBank.pySucceeded11
    21databasesmetadata.pySucceeded8
    62databasesVelodyne.pySucceeded5
    63databasesXolotl.pySucceeded5
    64databasesactivesource.pySucceeded4
    65databasesavsucd.pySucceeded4
    66databasesboxlib.pyAcceptable With Skips6
    67databasesclosedatabase.pySucceeded4
    68databasescorrelation.pySucceeded12
    69databasesempty_db.pySucceeded4
    70databasesexodus.pyAcceptable With Skips9
    71databasesexport_db.pyAcceptable73
    72databasesglobal_node_ids.pySucceeded7
    73databasesh5part.pySucceeded4
    22databasesmfem.pyAcceptable249
    74databaseshistory.pySucceeded4
    75databasesimgvol.pySucceeded5
    23databasesmili.pySucceeded16
    76databaseskulllite.pyAcceptable5
    24databasesmiranda.pySucceeded10
    77databaseswave_tv.pySucceeded5
    25databasesmoab.pyAcceptable9
    78databasesxform_precision.pySucceeded5
    79databaseszipwrapper.pySkipped(skipped)
    26databasesmulti_format.pySucceeded4
    80databasesEnSight.pySucceeded7
    27databasesmulti_format2.pySucceeded4
    81databasestecplot.pyAcceptable10
    28databasesnetcdf.pyAcceptable9
    82databasesadios2.pySucceeded5
    29databasesobj.pySucceeded5
    83databasesCurve3D.pySucceeded4
    30databasesoldsilo.pyAcceptable4
    31databasesopenPMD.pyAcceptable4
    84databasesblueprint_axom_klee.pySucceeded22
    32databasesopenexr.pySucceeded5
    33databasesoverlink.pySucceeded6
    34databasespdbdatabase.pySucceeded20
    35databasespixie.pyAcceptable With Skips6
    36databasesvtk.pyAcceptable16
    37databasesrect.pyAcceptable5
    38databasesreopen.pySucceeded8
    39databasessami.pySucceeded5
    85databasesblueprint_export.pySucceeded135
    86databasesplaintext.pySucceeded5
    40databasessamrai.pySucceeded12
    87databaseschgcar.pyAcceptable7
    41databasesscale_mesh.pySucceeded4
    88expressionsghost_zoneid_expr.pySucceeded4
    42databasesshapefile.pyAcceptable10
    89expressionstensor_expr.pySucceeded7
    90expressionsmath_expr.pySucceeded4
    43databasessilo.pyAcceptable With Skips31
    91expressionsglobal_stats.pySucceeded8
    92faulttolerancebadfile.pySucceeded4
    132hybridlineout.pyAcceptable19
    93faulttolerancecheckmode.pySucceeded3
    133hybridlocktime.pySucceeded5
    94faulttolerancesavewindow.pySucceeded6
    134hybridmath_expr.pySucceeded4
    95hybridddf.pyAcceptable6
    135hybridmatsel.pySucceeded5
    96hybridlocus.pyNot Applicable3
    136hybridmerge_tree.pySucceeded7
    97hybridmatvf.pySucceeded7
    137hybridmesh_quality.pyAcceptable6
    98hybridmir.pySucceeded9
    99hybridmovie.pySkipped(skipped)
    138hybridmir_cache.pySucceeded4
    100hybridqcrit.pySucceeded9
    139hybridmissingdata.pyAcceptable With Skips6
    101hybridsil.pySucceeded5
    140hybridmultivar.pySucceeded5
    102hybridsimplify_mixed.pyAcceptable5
    141hybridpos_cmfe.pySucceeded7
    103hybridspecmf.pySucceeded4
    142hybridpy_exprs.pySucceeded6
    104hybridsymm.pySucceeded6
    143hybridreplace.pySucceeded5
    144hybridselections.pySkipped(skipped)
    145hybridselections_pp.pySkipped(skipped)
    105hybridtime_cmfe.pySucceeded6
    146meshtypecsg.pyAcceptable10
    106hybridtime_deriv_cmfe.pySucceeded4
    147meshtypeglobe.pySucceeded5
    107hybridtime_iteration.pySucceeded6
    148meshtypepoint.pyAcceptable6
    108hybridval4mat.pySucceeded5
    149meshtypearbpoly.pySucceeded5
    109hybridvtkm.pySucceeded15
    150meshtypedegen_mesh.pySucceeded8
    110hybridtimelock.pySucceeded7
    151meshtypeemptydomains.pySucceeded6
    152meshtyperect3d.pySucceeded4
    111hybridcinema-a.pySucceeded18
    153operatorsbox.pySucceeded5
    154operatorsclip.pySucceeded7
    112hybridcinema-c.pySucceeded37
    113hybridcleanzonesonly.pySucceeded5
    114hybridclonecopy.pySkipped(skipped)
    115hybridclonefirstref.pySucceeded4
    116hybridconditional.pySucceeded5
    117hybridconn_cmfe.pySucceeded6
    118hybridcoord_expr.pySucceeded5
    119hybridcurve_anim.pyAcceptable5
    120hybridcurve_expressions.pySucceeded5
    121hybridcylindrical_radius.pySucceeded6
    155operatorslcs.pyAcceptable134
    122hybriddefvar_anim.pySucceeded4
    123hybridexpr2engine.pySucceeded4
    156operatorsremap.pySucceeded24
    124hybridexprList.pySucceeded4
    125hybridexpr_cmfe.pySucceeded5
    157operatorsslice.pySucceeded10
    158operatorstube.pySucceeded5
    126hybridexpressions.pySucceeded13
    159operatorsamr_stitch.pySucceeded5
    127hybridfield_operators.pySucceeded7
    160operatorscart_proj.pySucceeded5
    128hybridghost_node.pySucceeded4
    161operatorscracksclipper.pySucceeded5
    129hybridimage_proc.pySucceeded4
    162operatorsdefer_expr.pySucceeded6
    130hybridkeyframe.pySucceeded15
    163operatorsdisplace.pySucceeded6
    131hybridlambda2.pySucceeded11
    176operatorslcs_ic_2.pySkipped(skipped)
    164operatorsdual_mesh.pyAcceptable With Skips8
    165operatorselevate.pySucceeded6
    166operatorsex_surf.pySucceeded4
    167operatorsexplode.pyAcceptable12
    168operatorsic_integration.pyAcceptable6
    177operatorslcs_lc_1.pySucceeded67
    178operatorslcs_lc_2.pySkipped(skipped)
    169operatorsic_pathlines.pySucceeded7
    179operatorsmoveoperators.pyAcceptable7
    180operatorsmultires.pySucceeded4
    181operatorsonionpeel.pySucceeded18
    170operatorsic_pics.pySucceeded52
    182operatorsoperators.pySucceeded5
    171operatorsic_termination.pySucceeded5
    183operatorspersistent_particles.pySucceeded7
    172operatorsindexselect.pySucceeded10
    184operatorsradial_resample.pySucceeded5
    173operatorsinverse_ghost_zone.pyAcceptable5
    185operatorsresample.pyAcceptable5
    174operatorsisovolume.pySucceeded5
    186operatorsrevolve.pySucceeded4
    187operatorssph_resample.pyAcceptable4
    188operatorstessellate.pyAcceptable8
    189operatorsthreeslice.pySucceeded4
    190operatorsthreshold.pySucceeded6
    175operatorslcs_ic_1.pySucceeded65
    220queriesIntegralCurveInfo.pySkipped(skipped)
    191operatorstransform.pyAcceptable With Skips6
    221queriesavg_value.pySucceeded With Skips6
    192operatorsextrudeStacked.pySucceeded10
    222queriesbestfitline.pyAcceptable9
    193operatorsic_geometry.pyAcceptable10
    223queriescasetest.pySucceeded4
    224queriescentroid.pySucceeded5
    225queriesconncomp.pySucceeded7
    194operatorsic_streamlines.pyAcceptable29
    226queriesconsistencyChecks.pySucceeded5
    195operatorsreflect.pyAcceptable8
    227queriescurvature.pySucceeded4
    196plotscurve.pyAcceptable9
    228queriesdatabase.pySucceeded17
    229queriesflatten.pySkipped(skipped)
    230queriesgridinformation.pySucceeded5
    231querieshohlraum.pyAcceptable9
    232querieskurtosis.pySucceeded5
    233queriesl2norm.pySucceeded36
    234querieslength.pySucceeded6
    197plotslabel.pyAcceptable127
    198plotsmesh.pyAcceptable9
    235queriesline_scan.pyAcceptable26
    199plotscontour.pyAcceptable8
    236queriespickarray.pyAcceptable6
    200plotsfilledboundary.pySucceeded6
    237queriespickcleanzonesonly.pySucceeded4
    238queriespy_queries.pySucceeded4
    201plotsmesh_c.pyAcceptable10
    202plotsmolecule.pySucceeded7
    203plotsmulticolor.pySucceeded7
    204plotsparcoords.pySucceeded6
    239queriesqueriesOverTime.pySucceeded52
    205plotspseudocolor.pySucceeded13
    240queriesqueryMultiWindow.pySucceeded6
    241queriesrevolved_surface_area.pySucceeded5
    206plotsscatter.pyAcceptable10
    207plotssinglecolor.pySucceeded5
    208plotssubset.pyAcceptable6
    209plotssurface.pySucceeded5
    242queriessurface_area_over_time.pySucceeded49
    210plotstensor.pySucceeded6
    243queriesvariable_sum_volume.pySucceeded5
    211plotstruecolor.pySucceeded4
    244querieswatertight.pySucceeded4
    212plotsvector.pyAcceptable7
    245querieserror_queries.pySucceeded4
    246queriespickNamedArgs.pySucceeded7
    213plotsray_trace.pySucceeded20
    214plotsvolumePlot.pySucceeded26
    215pluginsdatabasesVsInstall.pySucceeded45
    247queriesxrayimage.pyAcceptable103
    248quickrecipesview.pySucceeded5
    216pluginsoperatorsVsInstall.pySucceeded27
    249quickrecipescl_args.pySucceeded3
    250quickrecipescolortables.pySucceeded5
    251quickrecipesexpressions.pySucceeded4
    252quickrecipeshow_to_start.pySkipped(skipped)
    253quickrecipesopening_compute_engine.pySkipped(skipped)
    217pluginsplotsVsInstall.pySucceeded23
    254quickrecipesoperators.pySucceeded10
    255quickrecipessaving_images.pySucceeded3
    256quickrecipessubsetting.pySucceeded5
    257quickrecipesworking_with_annotations.pySucceeded6
    218queriespick.pySucceeded With Skips61
    258quickrecipesworking_with_dbs.pySucceeded5
    219queriesscf.pySucceeded5
    259quickrecipesworking_with_plots.pySucceeded5
    264renderingaxistitles.pySucceeded5
    265renderingbigdata.pySucceeded4
    260quickrecipesquantitative_operations.pySucceeded14
    266renderingcolortexture.pySucceeded5
    261renderingimage.pySucceeded4
    267renderingcompositing.pySucceeded With Skips4
    262renderingview.pyAcceptable11
    268renderingevalcubic.pySucceeded5
    263renderingaxislabels.pySucceeded5
    269renderinglegends.pySucceeded13
    270renderinglighting.pySucceeded4
    308simulationbatch.pySucceeded20
    271renderingline2d.pySucceeded5
    272renderingline3d.pySucceeded With Skips6
    309simulationcsg.pySucceeded27
    273renderingpixeldata.pyAcceptable With Skips10
    310simulationcurve.pySucceeded With Skips6
    311simulationlife.pySucceeded With Skips6
    274renderingrenderpoints.pySucceeded13
    312simulationmesh.pySucceeded7
    275renderingscalable2.pySucceeded6
    313simulationpoint.pySucceeded6
    314simulationvar.pyAcceptable6
    276renderingscalable_c.pySucceeded27
    315simulationaresamr.pySucceeded5
    277renderingshadows.pySucceeded4
    316simulationdomainbounds.pySucceeded6
    278renderingspecular.pySucceeded5
    317simulationdomainlist.pySucceeded8
    279renderingtext2d.pySucceeded6
    280renderingtext3d.pyAcceptable6
    318simulationghostcells.pySucceeded9
    281renderingtimeslider.pySucceeded7
    319simulationglobalids.pySucceeded12
    282renderingviewChange.pySucceeded9
    320simulationinterleave.pySucceeded9
    283renderingscalable.pySucceeded28
    284renderingospray.pySkipped(skipped)
    321simulationmandelbrot.pySucceeded23
    285renderingvolume.pySucceeded5
    322simulationmaterial.pySucceeded6
    286renderingvolume_rect_multiDomain.pySucceeded With Skips5
    323simulationmaterialvar.pyAcceptable7
    287renderingvolume_rect_singleDomain.pySucceeded5
    324simulationmultiblock.pyAcceptable6
    288renderingvolume_ucd_multiDomain.pySucceeded With Skips5
    325simulationpolyhedral.pySucceeded6
    326simulationscalar.pyAcceptable6
    289renderingpointGlyphing.pySucceeded17
    327simulationspecies.pySucceeded7
    290renderingtransparency.pyAcceptable9
    291renderingannotation.pySucceeded8
    328simulationucdcurve.pySucceeded20
    292renderingsaveformats.pySucceeded8
    329simulationunstructured.pySucceeded5
    330simulationupdateplots.pySucceeded7
    293renderingannot_macros.pyAcceptable10
    331simulationupdateplots_session.pySucceeded49
    332simulationzerocopy.pySucceeded With Skips18
    333unitannotation_objects.pySucceeded3
    334unitcompiler_warnings.pySkipped(skipped)
    335unitconvert2to3.pySucceeded3
    294renderingoffscreensave.pySucceeded121
    295sessioncolortable.pySucceeded4
    336unitlauncher.pySucceeded13
    296sessioncorrelationsession.pySucceeded With Skips5
    337unitmrucache.pySucceeded3
    297sessionlegendproperties.pySucceeded4
    338unitnamescheme.pySucceeded3
    339unitprotocol.pySucceeded3
    298sessionrect3d-contour.pySucceeded4
    340unitstringhelpers.pySucceeded3
    299sessionrestorewithsources.pySucceeded4
    341unittest_value_simple.pySucceeded3
    300sessionselection.pySucceeded4
    342unitutility.pySucceeded3
    301sessionsessionexpression.pySucceeded4
    343unitdefault_methods.pySucceeded3
    302sessionsessionview.pySucceeded7
    303sessionsimplekeyframe.pySkipped(skipped)
    344unitatts_assign.pySucceeded5
    304sessiontextannot.pySucceeded5
    305sessionview3d.pySucceeded4
    306sessionwavecontour.pySucceeded5
    307simulationamr.pyAcceptable6
    +Test suite run complete at 2024:12:13:01:45:56 (3801 seconds). + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/js/jquery-3.6.1.min.js b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/js/jquery-3.6.1.min.js new file mode 100644 index 000000000..2c69bc908 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/js/jquery-3.6.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",v.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 1) { + arr = arr.concat(checkCellColSpan(table, headerArr, row++)); + } else { + if (table.tHead.length == 1 || (cell.rowSpan > 1 || !r[row + 1])) { + arr.push(cell); + } + // headerArr[row] = (i+row); + } + } + return arr; + }; + + function checkHeaderMetadata(cell) { + if (($.metadata) && ($(cell).metadata().sorter === false)) { + return true; + }; + return false; + } + + function checkHeaderOptions(table, i) { + if ((table.config.headers[i]) && (table.config.headers[i].sorter === false)) { + return true; + }; + return false; + } + + function checkHeaderOptionsSortingLocked(table, i) { + if ((table.config.headers[i]) && (table.config.headers[i].lockedOrder)) return table.config.headers[i].lockedOrder; + return false; + } + + function applyWidget(table) { + var c = table.config.widgets; + var l = c.length; + for (var i = 0; i < l; i++) { + + getWidgetById(c[i]).format(table); + } + + } + + function getWidgetById(name) { + var l = widgets.length; + for (var i = 0; i < l; i++) { + if (widgets[i].id.toLowerCase() == name.toLowerCase()) { + return widgets[i]; + } + } + }; + + function formatSortingOrder(v) { + if (typeof(v) != "Number") { + return (v.toLowerCase() == "desc") ? 1 : 0; + } else { + return (v == 1) ? 1 : 0; + } + } + + function isValueInArray(v, a) { + var l = a.length; + for (var i = 0; i < l; i++) { + if (a[i][0] == v) { + return true; + } + } + return false; + } + + function setHeadersCss(table, $headers, list, css) { + // remove all header information + $headers.removeClass(css[0]).removeClass(css[1]); + + var h = []; + $headers.each(function (offset) { + if (!this.sortDisabled) { + h[this.column] = $(this); + } + }); + + var l = list.length; + for (var i = 0; i < l; i++) { + h[list[i][0]].addClass(css[list[i][1]]); + } + } + + function fixColumnWidth(table, $headers) { + var c = table.config; + if (c.widthFixed) { + var colgroup = $(''); + $("tr:first td", table.tBodies[0]).each(function () { + colgroup.append($('').css('width', $(this).width())); + }); + $(table).prepend(colgroup); + }; + } + + function updateHeaderSortCount(table, sortList) { + var c = table.config, + l = sortList.length; + for (var i = 0; i < l; i++) { + var s = sortList[i], + o = c.headerList[s[0]]; + o.count = s[1]; + o.count++; + } + } + + /* sorting methods */ + + var sortWrapper; + + function multisort(table, sortList, cache) { + + if (table.config.debug) { + var sortTime = new Date(); + } + + var dynamicExp = "sortWrapper = function(a,b) {", + l = sortList.length; + + // TODO: inline functions. + for (var i = 0; i < l; i++) { + + var c = sortList[i][0]; + var order = sortList[i][1]; + // var s = (getCachedSortType(table.config.parsers,c) == "text") ? + // ((order == 0) ? "sortText" : "sortTextDesc") : ((order == 0) ? + // "sortNumeric" : "sortNumericDesc"); + // var s = (table.config.parsers[c].type == "text") ? ((order == 0) + // ? makeSortText(c) : makeSortTextDesc(c)) : ((order == 0) ? + // makeSortNumeric(c) : makeSortNumericDesc(c)); + var s = (table.config.parsers[c].type == "text") ? ((order == 0) ? makeSortFunction("text", "asc", c) : makeSortFunction("text", "desc", c)) : ((order == 0) ? makeSortFunction("numeric", "asc", c) : makeSortFunction("numeric", "desc", c)); + var e = "e" + i; + + dynamicExp += "var " + e + " = " + s; // + "(a[" + c + "],b[" + c + // + "]); "; + dynamicExp += "if(" + e + ") { return " + e + "; } "; + dynamicExp += "else { "; + + } + + // if value is the same keep orignal order + var orgOrderCol = cache.normalized[0].length - 1; + dynamicExp += "return a[" + orgOrderCol + "]-b[" + orgOrderCol + "];"; + + for (var i = 0; i < l; i++) { + dynamicExp += "}; "; + } + + dynamicExp += "return 0; "; + dynamicExp += "}; "; + + if (table.config.debug) { + benchmark("Evaling expression:" + dynamicExp, new Date()); + } + + eval(dynamicExp); + + cache.normalized.sort(sortWrapper); + + if (table.config.debug) { + benchmark("Sorting on " + sortList.toString() + " and dir " + order + " time:", sortTime); + } + + return cache; + }; + + function makeSortFunction(type, direction, index) { + var a = "a[" + index + "]", + b = "b[" + index + "]"; + if (type == 'text' && direction == 'asc') { + return "(" + a + " == " + b + " ? 0 : (" + a + " === null ? Number.POSITIVE_INFINITY : (" + b + " === null ? Number.NEGATIVE_INFINITY : (" + a + " < " + b + ") ? -1 : 1 )));"; + } else if (type == 'text' && direction == 'desc') { + return "(" + a + " == " + b + " ? 0 : (" + a + " === null ? Number.POSITIVE_INFINITY : (" + b + " === null ? Number.NEGATIVE_INFINITY : (" + b + " < " + a + ") ? -1 : 1 )));"; + } else if (type == 'numeric' && direction == 'asc') { + return "(" + a + " === null && " + b + " === null) ? 0 :(" + a + " === null ? Number.POSITIVE_INFINITY : (" + b + " === null ? Number.NEGATIVE_INFINITY : " + a + " - " + b + "));"; + } else if (type == 'numeric' && direction == 'desc') { + return "(" + a + " === null && " + b + " === null) ? 0 :(" + a + " === null ? Number.POSITIVE_INFINITY : (" + b + " === null ? Number.NEGATIVE_INFINITY : " + b + " - " + a + "));"; + } + }; + + function makeSortText(i) { + return "((a[" + i + "] < b[" + i + "]) ? -1 : ((a[" + i + "] > b[" + i + "]) ? 1 : 0));"; + }; + + function makeSortTextDesc(i) { + return "((b[" + i + "] < a[" + i + "]) ? -1 : ((b[" + i + "] > a[" + i + "]) ? 1 : 0));"; + }; + + function makeSortNumeric(i) { + return "a[" + i + "]-b[" + i + "];"; + }; + + function makeSortNumericDesc(i) { + return "b[" + i + "]-a[" + i + "];"; + }; + + function sortText(a, b) { + if (table.config.sortLocaleCompare) return a.localeCompare(b); + return ((a < b) ? -1 : ((a > b) ? 1 : 0)); + }; + + function sortTextDesc(a, b) { + if (table.config.sortLocaleCompare) return b.localeCompare(a); + return ((b < a) ? -1 : ((b > a) ? 1 : 0)); + }; + + function sortNumeric(a, b) { + return a - b; + }; + + function sortNumericDesc(a, b) { + return b - a; + }; + + function getCachedSortType(parsers, i) { + return parsers[i].type; + }; /* public methods */ + this.construct = function (settings) { + return this.each(function () { + // if no thead or tbody quit. + if (!this.tHead || !this.tBodies) return; + // declare + var $this, $document, $headers, cache, config, shiftDown = 0, + sortOrder; + // new blank config object + this.config = {}; + // merge and extend. + config = $.extend(this.config, $.tablesorter.defaults, settings); + // store common expression for speed + $this = $(this); + // save the settings where they read + $.data(this, "tablesorter", config); + // build headers + $headers = buildHeaders(this); + // try to auto detect column type, and store in tables config + this.config.parsers = buildParserCache(this, $headers); + // build the cache for the tbody cells + cache = buildCache(this); + // get the css class names, could be done else where. + var sortCSS = [config.cssDesc, config.cssAsc]; + // fixate columns if the users supplies the fixedWidth option + fixColumnWidth(this); + // apply event handling to headers + // this is to big, perhaps break it out? + $headers.click( + + function (e) { + var totalRows = ($this[0].tBodies[0] && $this[0].tBodies[0].rows.length) || 0; + if (!this.sortDisabled && totalRows > 0) { + // Only call sortStart if sorting is + // enabled. + $this.trigger("sortStart"); + // store exp, for speed + var $cell = $(this); + // get current column index + var i = this.column; + // get current column sort order + this.order = this.count++ % 2; + // always sort on the locked order. + if(this.lockedOrder) this.order = this.lockedOrder; + + // user only whants to sort on one + // column + if (!e[config.sortMultiSortKey]) { + // flush the sort list + config.sortList = []; + if (config.sortForce != null) { + var a = config.sortForce; + for (var j = 0; j < a.length; j++) { + if (a[j][0] != i) { + config.sortList.push(a[j]); + } + } + } + // add column to sort list + config.sortList.push([i, this.order]); + // multi column sorting + } else { + // the user has clicked on an all + // ready sortet column. + if (isValueInArray(i, config.sortList)) { + // revers the sorting direction + // for all tables. + for (var j = 0; j < config.sortList.length; j++) { + var s = config.sortList[j], + o = config.headerList[s[0]]; + if (s[0] == i) { + o.count = s[1]; + o.count++; + s[1] = o.count % 2; + } + } + } else { + // add column to sort list array + config.sortList.push([i, this.order]); + } + }; + setTimeout(function () { + // set css for headers + setHeadersCss($this[0], $headers, config.sortList, sortCSS); + appendToTable( + $this[0], multisort( + $this[0], config.sortList, cache) + ); + }, 1); + // stop normal event by returning false + return false; + } + // cancel selection + }).mousedown(function () { + if (config.cancelSelection) { + this.onselectstart = function () { + return false + }; + return false; + } + }); + // apply easy methods that trigger binded events + $this.bind("update", function () { + var me = this; + setTimeout(function () { + // rebuild parsers. + me.config.parsers = buildParserCache( + me, $headers); + // rebuild the cache map + cache = buildCache(me); + }, 1); + }).bind("updateCell", function (e, cell) { + var config = this.config; + // get position from the dom. + var pos = [(cell.parentNode.rowIndex - 1), cell.cellIndex]; + // update cache + cache.normalized[pos[0]][pos[1]] = config.parsers[pos[1]].format( + getElementText(config, cell), cell); + }).bind("sorton", function (e, list) { + $(this).trigger("sortStart"); + config.sortList = list; + // update and store the sortlist + var sortList = config.sortList; + // update header count index + updateHeaderSortCount(this, sortList); + // set css for headers + setHeadersCss(this, $headers, sortList, sortCSS); + // sort the table and append it to the dom + appendToTable(this, multisort(this, sortList, cache)); + }).bind("appendCache", function () { + appendToTable(this, cache); + }).bind("applyWidgetId", function (e, id) { + getWidgetById(id).format(this); + }).bind("applyWidgets", function () { + // apply widgets + applyWidget(this); + }); + if ($.metadata && ($(this).metadata() && $(this).metadata().sortlist)) { + config.sortList = $(this).metadata().sortlist; + } + // if user has supplied a sort list to constructor. + if (config.sortList.length > 0) { + $this.trigger("sorton", [config.sortList]); + } + // apply widgets + applyWidget(this); + }); + }; + this.addParser = function (parser) { + var l = parsers.length, + a = true; + for (var i = 0; i < l; i++) { + if (parsers[i].id.toLowerCase() == parser.id.toLowerCase()) { + a = false; + } + } + if (a) { + parsers.push(parser); + }; + }; + this.addWidget = function (widget) { + widgets.push(widget); + }; + this.formatFloat = function (s) { + var i = parseFloat(s); + return (isNaN(i)) ? 0 : i; + }; + this.formatInt = function (s) { + var i = parseInt(s); + return (isNaN(i)) ? 0 : i; + }; + this.isDigit = function (s, config) { + // replace all an wanted chars and match. + return /^[-+]?\d*$/.test($.trim(s.replace(/[,.']/g, ''))); + }; + this.clearTableBody = function (table) { + if ($.browser.msie) { + while (table.tBodies[0].firstChild) { + table.tBodies[0].removeChild(table.tBodies[0].firstChild); + } + } else { + table.tBodies[0].innerHTML = ""; + } + }; + } + }); + + // extend plugin scope + $.fn.extend({ + tablesorter: $.tablesorter.construct + }); + + // make shortcut + var ts = $.tablesorter; + + // add default parsers + ts.addParser({ + id: "text", + is: function (s) { + return true; + }, format: function (s) { + return $.trim(s.toLocaleLowerCase()); + }, type: "text" + }); + + ts.addParser({ + id: "digit", + is: function (s, table) { + var c = table.config; + return $.tablesorter.isDigit(s, c); + }, format: function (s) { + return $.tablesorter.formatFloat(s); + }, type: "numeric" + }); + + ts.addParser({ + id: "currency", + is: function (s) { + return /^[£$€?.]/.test(s); + }, format: function (s) { + return $.tablesorter.formatFloat(s.replace(new RegExp(/[£$€]/g), "")); + }, type: "numeric" + }); + + ts.addParser({ + id: "ipAddress", + is: function (s) { + return /^\d{2,3}[\.]\d{2,3}[\.]\d{2,3}[\.]\d{2,3}$/.test(s); + }, format: function (s) { + var a = s.split("."), + r = "", + l = a.length; + for (var i = 0; i < l; i++) { + var item = a[i]; + if (item.length == 2) { + r += "0" + item; + } else { + r += item; + } + } + return $.tablesorter.formatFloat(r); + }, type: "numeric" + }); + + ts.addParser({ + id: "url", + is: function (s) { + return /^(https?|ftp|file):\/\/$/.test(s); + }, format: function (s) { + return jQuery.trim(s.replace(new RegExp(/(https?|ftp|file):\/\//), '')); + }, type: "text" + }); + + ts.addParser({ + id: "isoDate", + is: function (s) { + return /^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(s); + }, format: function (s) { + return $.tablesorter.formatFloat((s != "") ? new Date(s.replace( + new RegExp(/-/g), "/")).getTime() : "0"); + }, type: "numeric" + }); + + ts.addParser({ + id: "percent", + is: function (s) { + return /\%$/.test($.trim(s)); + }, format: function (s) { + return $.tablesorter.formatFloat(s.replace(new RegExp(/%/g), "")); + }, type: "numeric" + }); + + ts.addParser({ + id: "usLongDate", + is: function (s) { + return s.match(new RegExp(/^[A-Za-z]{3,10}\.? [0-9]{1,2}, ([0-9]{4}|'?[0-9]{2}) (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(AM|PM)))$/)); + }, format: function (s) { + return $.tablesorter.formatFloat(new Date(s).getTime()); + }, type: "numeric" + }); + + ts.addParser({ + id: "shortDate", + is: function (s) { + return /\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/.test(s); + }, format: function (s, table) { + var c = table.config; + s = s.replace(/\-/g, "/"); + if (c.dateFormat == "us") { + // reformat the string in ISO format + s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$1/$2"); + } + if (c.dateFormat == "pt") { + s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$2/$1"); + } else if (c.dateFormat == "uk") { + // reformat the string in ISO format + s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$2/$1"); + } else if (c.dateFormat == "dd/mm/yy" || c.dateFormat == "dd-mm-yy") { + s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2})/, "$1/$2/$3"); + } + return $.tablesorter.formatFloat(new Date(s).getTime()); + }, type: "numeric" + }); + ts.addParser({ + id: "time", + is: function (s) { + return /^(([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(am|pm)))$/.test(s); + }, format: function (s) { + return $.tablesorter.formatFloat(new Date("2000/01/01 " + s).getTime()); + }, type: "numeric" + }); + ts.addParser({ + id: "metadata", + is: function (s) { + return false; + }, format: function (s, table, cell) { + var c = table.config, + p = (!c.parserMetadataName) ? 'sortValue' : c.parserMetadataName; + return $(cell).metadata()[p]; + }, type: "numeric" + }); + // add default widgets + ts.addWidget({ + id: "zebra", + format: function (table) { + if (table.config.debug) { + var time = new Date(); + } + var $tr, row = -1, + odd; + // loop through the visible rows + $("tr:visible", table.tBodies[0]).each(function (i) { + $tr = $(this); + // style children rows the same way the parent + // row was styled + if (!$tr.hasClass(table.config.cssChildRow)) row++; + odd = (row % 2 == 0); + $tr.removeClass( + table.config.widgetZebra.css[odd ? 0 : 1]).addClass( + table.config.widgetZebra.css[odd ? 1 : 0]) + }); + if (table.config.debug) { + $.tablesorter.benchmark("Applying Zebra widget", time); + } + } + }); +})(jQuery); diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/js/purl.js b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/js/purl.js new file mode 100644 index 000000000..d25ca4c00 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/js/purl.js @@ -0,0 +1,271 @@ +/* + * JQuery URL Parser plugin, v2.2.1 + * Developed and maintanined by Mark Perkins, mark@allmarkedup.com + * Source repository: https://github.com/allmarkedup/jQuery-URL-Parser + * Licensed under an MIT-style license. See https://github.com/allmarkedup/jQuery-URL-Parser/blob/master/LICENSE for details. + */ + +;(function(factory) { + if (typeof define === 'function' && define.amd) { + // AMD available; use anonymous module + if ( typeof jQuery !== 'undefined' ) { + define(['jquery'], factory); + } else { + define([], factory); + } + } else { + // No AMD available; mutate global vars + if ( typeof jQuery !== 'undefined' ) { + factory(jQuery); + } else { + factory(); + } + } +})(function($, undefined) { + + var tag2attr = { + a : 'href', + img : 'src', + form : 'action', + base : 'href', + script : 'src', + iframe : 'src', + link : 'href' + }, + + key = ['source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'fragment'], // keys available to query + + aliases = { 'anchor' : 'fragment' }, // aliases for backwards compatability + + parser = { + strict : /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, //less intuitive, more accurate to the specs + loose : /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ // more intuitive, fails on relative paths and deviates from specs + }, + + toString = Object.prototype.toString, + + isint = /^[0-9]+$/; + + function parseUri( url, strictMode ) { + var str = decodeURI( url ), + res = parser[ strictMode || false ? 'strict' : 'loose' ].exec( str ), + uri = { attr : {}, param : {}, seg : {} }, + i = 14; + + while ( i-- ) { + uri.attr[ key[i] ] = res[i] || ''; + } + + // build query and fragment parameters + uri.param['query'] = parseString(uri.attr['query']); + uri.param['fragment'] = parseString(uri.attr['fragment']); + + // split path and fragement into segments + uri.seg['path'] = uri.attr.path.replace(/^\/+|\/+$/g,'').split('/'); + uri.seg['fragment'] = uri.attr.fragment.replace(/^\/+|\/+$/g,'').split('/'); + + // compile a 'base' domain attribute + uri.attr['base'] = uri.attr.host ? (uri.attr.protocol ? uri.attr.protocol+'://'+uri.attr.host : uri.attr.host) + (uri.attr.port ? ':'+uri.attr.port : '') : ''; + + return uri; + }; + + function getAttrName( elm ) { + var tn = elm.tagName; + if ( typeof tn !== 'undefined' ) return tag2attr[tn.toLowerCase()]; + return tn; + } + + function promote(parent, key) { + if (parent[key].length == 0) return parent[key] = {}; + var t = {}; + for (var i in parent[key]) t[i] = parent[key][i]; + parent[key] = t; + return t; + } + + function parse(parts, parent, key, val) { + var part = parts.shift(); + if (!part) { + if (isArray(parent[key])) { + parent[key].push(val); + } else if ('object' == typeof parent[key]) { + parent[key] = val; + } else if ('undefined' == typeof parent[key]) { + parent[key] = val; + } else { + parent[key] = [parent[key], val]; + } + } else { + var obj = parent[key] = parent[key] || []; + if (']' == part) { + if (isArray(obj)) { + if ('' != val) obj.push(val); + } else if ('object' == typeof obj) { + obj[keys(obj).length] = val; + } else { + obj = parent[key] = [parent[key], val]; + } + } else if (~part.indexOf(']')) { + part = part.substr(0, part.length - 1); + if (!isint.test(part) && isArray(obj)) obj = promote(parent, key); + parse(parts, obj, part, val); + // key + } else { + if (!isint.test(part) && isArray(obj)) obj = promote(parent, key); + parse(parts, obj, part, val); + } + } + } + + function merge(parent, key, val) { + if (~key.indexOf(']')) { + var parts = key.split('['), + len = parts.length, + last = len - 1; + parse(parts, parent, 'base', val); + } else { + if (!isint.test(key) && isArray(parent.base)) { + var t = {}; + for (var k in parent.base) t[k] = parent.base[k]; + parent.base = t; + } + set(parent.base, key, val); + } + return parent; + } + + function parseString(str) { + return reduce(String(str).split(/&|;/), function(ret, pair) { + try { + pair = decodeURIComponent(pair.replace(/\+/g, ' ')); + } catch(e) { + // ignore + } + var eql = pair.indexOf('='), + brace = lastBraceInKey(pair), + key = pair.substr(0, brace || eql), + val = pair.substr(brace || eql, pair.length), + val = val.substr(val.indexOf('=') + 1, val.length); + + if ('' == key) key = pair, val = ''; + + return merge(ret, key, val); + }, { base: {} }).base; + } + + function set(obj, key, val) { + var v = obj[key]; + if (undefined === v) { + obj[key] = val; + } else if (isArray(v)) { + v.push(val); + } else { + obj[key] = [v, val]; + } + } + + function lastBraceInKey(str) { + var len = str.length, + brace, c; + for (var i = 0; i < len; ++i) { + c = str[i]; + if (']' == c) brace = false; + if ('[' == c) brace = true; + if ('=' == c && !brace) return i; + } + } + + function reduce(obj, accumulator){ + var i = 0, + l = obj.length >> 0, + curr = arguments[2]; + while (i < l) { + if (i in obj) curr = accumulator.call(undefined, curr, obj[i], i, obj); + ++i; + } + return curr; + } + + function isArray(vArg) { + return Object.prototype.toString.call(vArg) === "[object Array]"; + } + + function keys(obj) { + var keys = []; + for ( prop in obj ) { + if ( obj.hasOwnProperty(prop) ) keys.push(prop); + } + return keys; + } + + function purl( url, strictMode ) { + if ( arguments.length === 1 && url === true ) { + strictMode = true; + url = undefined; + } + strictMode = strictMode || false; + url = url || window.location.toString(); + + return { + + data : parseUri(url, strictMode), + + // get various attributes from the URI + attr : function( attr ) { + attr = aliases[attr] || attr; + return typeof attr !== 'undefined' ? this.data.attr[attr] : this.data.attr; + }, + + // return query string parameters + param : function( param ) { + return typeof param !== 'undefined' ? this.data.param.query[param] : this.data.param.query; + }, + + // return fragment parameters + fparam : function( param ) { + return typeof param !== 'undefined' ? this.data.param.fragment[param] : this.data.param.fragment; + }, + + // return path segments + segment : function( seg ) { + if ( typeof seg === 'undefined' ) { + return this.data.seg.path; + } else { + seg = seg < 0 ? this.data.seg.path.length + seg : seg - 1; // negative segments count from the end + return this.data.seg.path[seg]; + } + }, + + // return fragment segments + fsegment : function( seg ) { + if ( typeof seg === 'undefined' ) { + return this.data.seg.fragment; + } else { + seg = seg < 0 ? this.data.seg.fragment.length + seg : seg - 1; // negative segments count from the end + return this.data.seg.fragment[seg]; + } + } + + }; + + }; + + if ( typeof $ !== 'undefined' ) { + + $.fn.url = function( strictMode ) { + var url = ''; + if ( this.length ) { + url = $(this).attr( getAttrName(this[0]) ) || ''; + } + return purl( url, strictMode ); + }; + + $.url = purl; + + } else { + window.purl = purl; + } + +}); + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_arbpoly.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_arbpoly.html new file mode 100644 index 000000000..c81139a77 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_arbpoly.html @@ -0,0 +1,90 @@ + +Results for meshtype/arbpoly.py + +

    Results of VisIt Regression Test - meshtype/arbpoly

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    arbpoly_010.000.00
    arbpoly_020.000.00
    arbpoly_030.000.00
    arbpoly_040.000.00
    arbpoly_050.000.00
    arbpoly_060.000.00
    arbpoly_070.000.00
    arbpoly_080.000.00
    arbpoly_090.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_arbpoly_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_arbpoly_py.html new file mode 100644 index 000000000..3286a70d7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_arbpoly_py.html @@ -0,0 +1,124 @@ +meshtype/arbpoly.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  arbpoly.py
    +#
    +#  Tests:      mesh      - a ucd mesh with arbitrary polyhedral zones
    +#              plots     - pc, contour, mat subset, mesh
    +#              operators - OnionPeel
    +#              selection - material
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Mark C. Miller
    +#  Date:       October 24, 2004
    +#
    +#  Modifications
    +#    Mark C. Miller, Tue Oct 20 16:30:31 PDT 2009
    +#    Added tests for fully arbitrary mesh
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Aug 26 08:55:04 PDT 2010
    +#    Update set index after SIL generation changes.
    +#
    +#    Kathleen Biagas, Wed Sep 10 14:15:44 PDT 2014
    +#    Added tests for OnionPeel'd arb poly, and a single-zone arb-poly set.
    +#
    +#    Kathleen Biagas, Wed Feb 16 09:15:45 PST 2022
    +#    Replace use of meshatts 'backgroundFlag' with opaqueColorSource.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("poly3d.silo"))
    +
    +
    +AddPlot("Mesh", "ucdmesh3d")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.SetViewNormal(-0.0356529, 0.010858, 0.999305)
    +v.SetViewUp(0.0100239, 0.999895, -0.0105068)
    +v.SetImageZoom(2.75)
    +SetView3D(v)
    +
    +Test("arbpoly_01")
    +
    +#
    +# See if we can handle a zone centered variable correctly
    +#
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +Test("arbpoly_02")
    +
    +DeleteActivePlots()
    +
    +#
    +# See if we can handle a material correctly
    +# Turn off alternate materials.
    +AddPlot("FilledBoundary", "mat1")
    +silr=SILRestriction()
    +silr.TurnOffSet(2)
    +SetPlotSILRestriction(silr)
    +DrawPlots()
    +
    +Test("arbpoly_03")
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("poly3d.silo"))
    +
    +
    +OpenDatabase(data_path("overlink_test_data/ev_0_0_100/OvlTop.silo"))
    +
    +AddPlot("Mesh","MMESH")
    +DrawPlots()
    +ma = MeshAttributes()
    +ma.opaqueColor = (0, 200, 200, 255)
    +ma.opaqueMode = ma.On
    +ma.opaqueColorSource = ma.OpaqueCustom
    +SetPlotOptions(ma)
    +ResetView()
    +Test("arbpoly_04")
    +v = GetView3D()
    +v.SetViewNormal(-0.433013, 0.5, 0.75)
    +v.SetViewUp(0.25, 0.866025, -0.433013)
    +SetView3D(v)
    +Test("arbpoly_05")
    +ma.opaqueMode = ma.Off
    +SetPlotOptions(ma)
    +
    +AddPlot("Pseudocolor","nvar0")
    +DrawPlots()
    +Test("arbpoly_06")
    +DeleteActivePlots()
    +
    +AddPlot("Pseudocolor","zvar3")
    +DrawPlots()
    +Test("arbpoly_07")
    +
    +DeleteActivePlots()
    +ma.lineWidth = 3
    +SetPlotOptions(ma)
    +AddPlot("FilledBoundary", "MMATERIAL")
    +AddPlot("Subset", "domains")
    +AddOperator("OnionPeel", 1)
    +op = OnionPeelAttributes()
    +op.index = 99
    +SetOperatorOptions(op,0,1)
    +DrawPlots()
    +Test("arbpoly_08")
    +DeleteAllPlots()
    +CloseDatabase(data_path("overlink_test_data/ev_0_0_100/OvlTop.silo"))
    +
    +OpenDatabase(silo_data_path("arbpoly.silo"))
    +AddPlot("Mesh", "clipped_hex")
    +ma.opaqueMode = ma.On
    +SetPlotOptions(ma)
    +DrawPlots()
    +Test("arbpoly_09")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_csg.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_csg.html new file mode 100644 index 000000000..0af0c62be --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_csg.html @@ -0,0 +1,80 @@ + +Results for meshtype/csg.py + +

    Results of VisIt Regression Test - meshtype/csg

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    csg_010.000.00
    csg_021.570.00
    csg_030.000.00
    csg_040.000.00
    csg_050.000.00
    csg_070.000.00
    csg_080.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_csg_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_csg_py.html new file mode 100644 index 000000000..d4ed3a161 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_csg_py.html @@ -0,0 +1,177 @@ +meshtype/csg.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  csg.py
    +#
    +#  Tests:      mesh      - a csg mesh
    +#              subset plot
    +#              selection - subset
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       August 16, 2005
    +#
    +#  Mofications:
    +#
    +#    Mark C. Miller, Sun Dec  3 12:20:11 PST 2006
    +#    Added tests for materials, variables and Matt's csg data
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Mark C. Miller, Fri Apr  2 17:31:28 PDT 2010
    +#    Replaced first two tests with subset plot instead of mesh plot.
    +#    Used MultiPass instead of uniform for first test.
    +# ----------------------------------------------------------------------------
    +
    +mma=MeshManagementAttributes()
    +mma.discretizationMode = mma.Adaptive
    +mma.discretizationTolerance=(0.01, 0.25)
    +SetMeshManagementAttributes(mma)
    +OpenDatabase(silo_data_path("csg.silo"))
    +
    +
    +#
    +# the mesh named "csgmesh" uses just spheres, cylinder and plane
    +# primitives
    +#
    +AddPlot("Subset", "csgmesh")
    +DrawPlots()
    +v = GetView3D()
    +v.SetViewNormal(0.650274, -0.646958, 0.398232)
    +v.SetViewUp(-0.290226, 0.272881, 0.917227)
    +SetView3D(v)
    +Test("csg_01")
    +
    +#
    +# Change the discretization tolerance and mode
    +#
    +mma.discretizationMode = mma.MultiPass
    +mma.discretizationTolerance=(0.02, 0.25)
    +SetMeshManagementAttributes(mma)
    +ReOpenDatabase(silo_data_path("csg.silo"))
    +
    +ClearWindow()
    +DrawPlots()
    +Test("csg_02")
    +DeleteAllPlots()
    +ResetView()
    +
    +#
    +# Ok, lets try Greg Greenman's example mesh. It uses
    +# all general quadrics and planes
    +#
    +mma.discretizationTolerance=(0.005, 0.25)
    +mma.discretizationMode = mma.Adaptive
    +SetMeshManagementAttributes(mma)
    +ReOpenDatabase(silo_data_path("csg.silo"))
    +
    +AddPlot("Subset", "regions(greenman_mesh)")
    +DrawPlots()
    +v = GetView3D()
    +v.SetViewNormal(-0.496376, -0.386195, -0.777473)
    +v.SetViewUp(0.865609, -0.152286, -0.477001)
    +SetView3D(v)
    +Test("csg_03")
    +
    +#
    +# Find set ids using their names
    +#
    +voidSetId = -1
    +uraniumSetId = -1
    +airSetId = -1
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "void":
    +        voidSetId = i
    +    elif silr.SetName(i) == "uranium":
    +        uraniumSetId = i
    +    elif silr.SetName(i) == "air":
    +        airSetId = i
    +
    +#
    +# Turn off the air
    +#
    +silr.TurnOffSet(airSetId)
    +SetPlotSILRestriction(silr)
    +Test("csg_04")
    +
    +#
    +# Turn on air, but turn void and uranium off
    +#
    +silr.TurnOnSet(airSetId)
    +silr.TurnOffSet(voidSetId)
    +silr.TurnOffSet(uraniumSetId)
    +SetPlotSILRestriction(silr)
    +Test("csg_05")
    +
    +#
    +# Try a material plot
    +#
    +#DeleteAllPlots()
    +#AddPlot("FilledBoundary","mat")
    +#AddPlot("Mesh","csgmesh")
    +#DrawPlots()
    +#ResetView()
    +#v = GetView3D()
    +#v.SetViewNormal(0.650274, -0.646958, 0.398232)
    +#v.SetViewUp(-0.290226, 0.272881, 0.917227)
    +#SetView3D(v)
    +#Test("csg_06")
    +
    +#
    +# Try plotting a variable
    +#
    +DeleteAllPlots()
    +AddPlot("Pseudocolor","var1")
    +AddPlot("Mesh","csgmesh")
    +DrawPlots()
    +ResetView()
    +v = GetView3D()
    +v.SetViewNormal(0.650274, -0.646958, 0.398232)
    +v.SetViewUp(-0.290226, 0.272881, 0.917227)
    +SetView3D(v)
    +Test("csg_07")
    +
    +#
    +# Try various other objects in this file 
    +#
    +DeleteAllPlots()
    +
    +#
    +# Now use Matt's Fusion data
    +#
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("csg.silo"))
    +
    +mma.discretizationTolerance=(0.05, 0.25)
    +mma.discretizationMode = mma.Adaptive
    +SetMeshManagementAttributes(mma)
    +OpenDatabase(data_path("csg_test_data/Fusion_000001_root.gra"))
    +
    +AddPlot("FilledBoundary","MC_Material(MC_ThreeD_Structured)")
    +DrawPlots()
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "2 Concrete_B":
    +        silr.TurnOffSet(i)
    +    if silr.SetName(i) == "6 Concrete_F":
    +        silr.TurnOffSet(i)
    +    if silr.SetName(i) == "7 Concrete_G":
    +        silr.TurnOffSet(i)
    +    if silr.SetName(i) == "8 Air_A":
    +        silr.TurnOffSet(i)
    +    if silr.SetName(i) == "9 Air_B":
    +        silr.TurnOffSet(i)
    +    if silr.SetName(i) == "10 Air_C":
    +        silr.TurnOffSet(i)
    +SetPlotSILRestriction(silr)
    +ResetView()
    +v = GetView3D()
    +v.SetViewNormal(-0.5, -0.852869, -0.150384)
    +v.SetViewUp(0.0, -0.173648, 0.984808)
    +v.imageZoom = 1.5
    +SetView3D(v)
    +Test("csg_08")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_degen_mesh.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_degen_mesh.html new file mode 100644 index 000000000..cc1de34e5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_degen_mesh.html @@ -0,0 +1,84 @@ + +Results for meshtype/degen_mesh.py + +

    Results of VisIt Regression Test - meshtype/degen_mesh

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    degen_mesh_010.000.00
    degen_mesh_020.000.00
    degen_mesh_030.000.00
    degen_mesh_040.000.00
    degen_mesh_050.000.00
    degen_mesh_060.000.00
    degen_mesh_070.000.00
    degen_mesh_080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_degen_mesh_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_degen_mesh_py.html new file mode 100644 index 000000000..bb6e39222 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_degen_mesh_py.html @@ -0,0 +1,260 @@ +meshtype/degen_mesh.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  degenerate.py
    +#
    +#  Tests:      mesh      - 3D curvilinear, rectilinear
    +#              plots     - pc, contour, mesh
    +#              operators - none
    +#              selection - none
    +#
    +#  Defect ID:  '5333 & '5335
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 26, 2004
    +#
    +#
    +#  Modifications:
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# Define some expressions that will be handy for later.
    +DefineVectorExpression("coords_plus1", "coords(mesh)")
    +DefineVectorExpression("coords", "{coords_plus1[0]-1., coords_plus1[1]-1., coords_plus1[2]-1. }")
    +DefineVectorExpression("i_disp", "{ -sqrt(coords[1]*coords[1] + coords[2]*coords[2]), 0, 0 }")
    +DefineVectorExpression("j_disp", "{ 0, -sqrt(coords[0]*coords[0] + coords[2]*coords[2]), 0 }")
    +DefineVectorExpression("k_disp", "{ 0, 0, -sqrt(coords[0]*coords[0] + coords[1]*coords[1]) }")
    +DefineScalarExpression("pos", "sqrt(coords[0]*coords[0]+coords[1]*coords[1]+coords[2]*coords[2])")
    +
    +#
    +# Start off by testing curvilinear meshes.
    +#
    +
    +# Test that we can make the meshes with no modification.
    +OpenDatabase(data_path("vtk_test_data/curv_flat_i.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +# If you do a DrawPlots now, you will exhibit '5337
    +OpenDatabase(data_path("vtk_test_data/curv_flat_j.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +OpenDatabase(data_path("vtk_test_data/curv_flat_k.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +Test("degen_mesh_01")
    +
    +# Test that we can handle displacing them and operating on them with
    +# expressions.
    +disp = DisplaceAttributes()
    +disp.variable = "i_disp"
    +SetDefaultOperatorOptions(disp)
    +SetActivePlots(0)
    +AddOperator("Displace")
    +disp.variable = "j_disp"
    +SetDefaultOperatorOptions(disp)
    +SetActivePlots(1)
    +AddOperator("Displace")
    +disp.variable = "k_disp"
    +SetDefaultOperatorOptions(disp)
    +SetActivePlots(2)
    +AddOperator("Displace")
    +DrawPlots()
    +
    +v= GetView3D()
    +v.viewNormal = (0.449864, 0.604932, 0.657023)
    +v.focus = (0.801178, 0.801178, 0.801178)
    +v.viewUp = (0.377875, 0.537649, -0.753753)
    +v.viewAngle = 30
    +v.parallelScale = 2.00714
    +v.nearPlane = -4.01428
    +v.farPlane = 4.01428
    +v.imagePan = (0, 0)
    +v.imageZoom = 0.873008
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, 0)
    +SetView3D(v)
    +Test("degen_mesh_02")
    +
    +# Test that we can do PC plots ('5335)
    +ActivateDatabase(data_path("vtk_test_data/curv_flat_i.vtk"))
    +
    +AddPlot("Pseudocolor", "pos")
    +disp = DisplaceAttributes()
    +disp.variable = "i_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +ActivateDatabase(data_path("vtk_test_data/curv_flat_j.vtk"))
    +
    +AddPlot("Pseudocolor", "pos")
    +disp.variable = "j_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +ActivateDatabase(data_path("vtk_test_data/curv_flat_k.vtk"))
    +
    +AddPlot("Pseudocolor", "pos")
    +disp.variable = "k_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +DrawPlots()
    +Test("degen_mesh_03")
    +
    +SetActivePlots(5)
    +DeleteActivePlots()
    +SetActivePlots(4)
    +DeleteActivePlots()
    +SetActivePlots(3)
    +DeleteActivePlots()
    +
    +
    +# Test that we can do contours ('5333)
    +ActivateDatabase(data_path("vtk_test_data/curv_flat_i.vtk"))
    +
    +AddPlot("Contour", "pos")
    +disp = DisplaceAttributes()
    +disp.variable = "i_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +ActivateDatabase(data_path("vtk_test_data/curv_flat_j.vtk"))
    +
    +AddPlot("Contour", "pos")
    +disp.variable = "j_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +ActivateDatabase(data_path("vtk_test_data/curv_flat_k.vtk"))
    +
    +AddPlot("Contour", "pos")
    +disp.variable = "k_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +DrawPlots()
    +Test("degen_mesh_04")
    +
    +
    +#
    +# Now do the same thing over again with rectilinear meshes.
    +#
    +DeleteAllPlots()
    +
    +# Test that we can make the meshes with no modification.
    +OpenDatabase(data_path("vtk_test_data/rect_flat_i.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +# If you do a DrawPlots now, you will exhibit '5337
    +OpenDatabase(data_path("vtk_test_data/rect_flat_j.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +OpenDatabase(data_path("vtk_test_data/rect_flat_k.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +Test("degen_mesh_05")
    +
    +# Test that we can handle displacing them and operating on them with
    +# expressions.
    +disp = DisplaceAttributes()
    +disp.variable = "i_disp"
    +SetDefaultOperatorOptions(disp)
    +SetActivePlots(0)
    +AddOperator("Displace")
    +disp.variable = "j_disp"
    +SetDefaultOperatorOptions(disp)
    +SetActivePlots(1)
    +AddOperator("Displace")
    +disp.variable = "k_disp"
    +SetDefaultOperatorOptions(disp)
    +SetActivePlots(2)
    +AddOperator("Displace")
    +DrawPlots()
    +v= GetView3D()
    +v.viewNormal = (0.449864, 0.604932, 0.657023)
    +v.focus = (0.801178, 0.801178, 0.801178)
    +v.viewUp = (0.377875, 0.537649, -0.753753)
    +v.viewAngle = 30
    +v.parallelScale = 2.00714
    +v.nearPlane = -4.01428
    +v.farPlane = 4.01428
    +v.imagePan = (0, 0)
    +v.imageZoom = 0.873008
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, 0)
    +SetView3D(v)
    +Test("degen_mesh_06")
    +
    +# Test that we can do PC plots ('5335)
    +ActivateDatabase(data_path("vtk_test_data/rect_flat_i.vtk"))
    +
    +AddPlot("Pseudocolor", "pos")
    +disp = DisplaceAttributes()
    +disp.variable = "i_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +ActivateDatabase(data_path("vtk_test_data/rect_flat_j.vtk"))
    +
    +AddPlot("Pseudocolor", "pos")
    +disp.variable = "j_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +ActivateDatabase(data_path("vtk_test_data/rect_flat_k.vtk"))
    +
    +AddPlot("Pseudocolor", "pos")
    +disp.variable = "k_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +DrawPlots()
    +Test("degen_mesh_07")
    +
    +SetActivePlots(5)
    +DeleteActivePlots()
    +SetActivePlots(4)
    +DeleteActivePlots()
    +SetActivePlots(3)
    +DeleteActivePlots()
    +
    +
    +# Test that we can do contours ('5333)
    +ActivateDatabase(data_path("vtk_test_data/curv_flat_i.vtk"))
    +
    +AddPlot("Contour", "pos")
    +disp = DisplaceAttributes()
    +disp.variable = "i_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +ActivateDatabase(data_path("vtk_test_data/curv_flat_j.vtk"))
    +
    +AddPlot("Contour", "pos")
    +disp.variable = "j_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +ActivateDatabase(data_path("vtk_test_data/curv_flat_k.vtk"))
    +
    +AddPlot("Contour", "pos")
    +disp.variable = "k_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +DrawPlots()
    +Test("degen_mesh_08")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_emptydomains.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_emptydomains.html new file mode 100644 index 000000000..6a5651b84 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_emptydomains.html @@ -0,0 +1,104 @@ + +Results for meshtype/emptydomains.py + +

    Results of VisIt Regression Test - meshtype/emptydomains

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    meshtype_emptydomains_010.000.00
    meshtype_emptydomains_020.000.00
    meshtype_emptydomains_030.000.00
    meshtype_emptydomains_040.000.00
    meshtype_emptydomains_050.000.00
    meshtype_emptydomains_060.000.00
    meshtype_emptydomains_070.000.00
    meshtype_emptydomains_080.000.00
    meshtype_emptydomains_090.000.00
    meshtype_emptydomains_100.000.00
    meshtype_emptydomains_110 modifications totalling 0 lines
    meshtype_emptydomains_120 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_emptydomains_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_emptydomains_py.html new file mode 100644 index 000000000..47e263c4d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_emptydomains_py.html @@ -0,0 +1,132 @@ +meshtype/emptydomains.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  emptydomains.py
    +#
    +#  Tests:      multi-objects with empty domains
    +#
    +#  Defect ID:  VisIt00005226
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       June  7, 2005
    +#
    +#  Modificatons:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Mark C. Miller, Wed Sep 23 16:28:27 PDT 2020
    +#    Force to run on only PDB driver
    +# ----------------------------------------------------------------------------
    +OpenDatabase(data_path("silo_pdb_test_data/emptydomains.silo"))
    +
    +# Test the multi-mesh support
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.SetViewNormal(-0.528889, 0.367702, 0.7649)
    +v.SetViewUp(0.176641, 0.929226, -0.324558)
    +v.SetPerspective(1)
    +SetView3D(v)
    +
    +Test("meshtype_emptydomains_01")
    +
    +# Test the multi-var support
    +AddPlot("Pseudocolor", "density")
    +DrawPlots()
    +Test("meshtype_emptydomains_02")
    +
    +# Test material selection support
    +TurnMaterialsOff("5")
    +Test("meshtype_emptydomains_03")
    +
    +# Test multi-material support
    +TurnMaterialsOn()
    +DeleteAllPlots()
    +AddPlot("FilledBoundary", "mat")
    +DrawPlots()
    +Test("meshtype_emptydomains_04")
    +
    +# Test multi-species/species selection support
    +DeleteAllPlots()
    +AddPlot("Pseudocolor","spec")
    +silr=SILRestriction()
    +silr.TurnOffSet(6)
    +SetPlotSILRestriction(silr)
    +DrawPlots()
    +Test("meshtype_emptydomains_05")
    +
    +silr.TurnOffSet(5)
    +SetPlotSILRestriction(silr)
    +Test("meshtype_emptydomains_06")
    +
    +# Test domain selection support
    +DeleteAllPlots()
    +silr.TurnOnAll()
    +silr.TurnOffSet(1)
    +SetPlotSILRestriction(silr)
    +AddPlot("Mesh", "mesh")
    +AddPlot("Pseudocolor", "density")
    +DrawPlots()
    +Test("meshtype_emptydomains_07")
    +
    +# Test slice-by-zone
    +silr.TurnOnAll()
    +SetPlotSILRestriction(silr)
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "density")
    +AddOperator("Slice")
    +s1 = SliceAttributes()
    +s1.originType = s1.Zone
    +s1.project2d = 0
    +s1.originZone = 170
    +s1.originZoneDomain = 2
    +SetOperatorOptions(s1)
    +DrawPlots()
    +Test("meshtype_emptydomains_08")
    +
    +# Test slice-by-node
    +silr.TurnOnAll()
    +SetPlotSILRestriction(silr)
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "density")
    +AddOperator("Slice")
    +s2 = SliceAttributes()
    +s2.originType = s2.Node
    +s2.project2d = 0
    +s2.originNode = 11
    +s2.originNodeDomain = 2
    +SetOperatorOptions(s2)
    +DrawPlots()
    +Test("meshtype_emptydomains_09")
    +
    +# Test onion peel
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "density")
    +AddOperator("OnionPeel")
    +o = OnionPeelAttributes()
    +o.categoryName = "domains"
    +o.subsetName = "domain2"
    +o.index = (210)
    +o.requestedLayer = 3
    +DrawPlots()
    +SetOperatorOptions(o)
    +Test("meshtype_emptydomains_10")
    +
    +# Test zone pick
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "density")
    +DrawPlots()
    +PickByZone(120, 2, "density")
    +TestText("meshtype_emptydomains_11", GetPickOutput())
    +
    +# Test node pick
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "density")
    +DrawPlots()
    +PickByNode(100, 2, "density")
    +TestText("meshtype_emptydomains_12", GetPickOutput())
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_globe.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_globe.html new file mode 100644 index 000000000..5f2f466c2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_globe.html @@ -0,0 +1,72 @@ + +Results for meshtype/globe.py + +

    Results of VisIt Regression Test - meshtype/globe

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    globe_010.000.00
    globe_020.000.00
    globe_030.000.00
    globe_040.000.00
    globe_050.000.00
    globe_060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_globe_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_globe_py.html new file mode 100644 index 000000000..53efd3aac --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_globe_py.html @@ -0,0 +1,85 @@ +meshtype/globe.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  globe.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - pc, contour, mat subset, mesh, vector
    +#              operators - none
    +#              selection - none
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       April 17, 2002
    +#
    +#  Modificatons:
    +#    Kathleen Bonnell, Thu Sep  5 10:55:47 PDT 2002
    +#    Changed the variable format for SubsetPlots, to reflect new interface
    +#    which allows subsets of groups.
    +#
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset plots.
    +#
    +#    Kathleen Bonnell, Wed Sep  3 09:31:25 PDT 2003
    +#    Opaque mode for MeshPlot is ON by default now, so turn it off
    +#    for this test.
    +#
    +#    Kathleen Bonnell, Thu Sep  4 11:10:11 PDT 2003
    +#    Change the way MeshPlot's opaque mode is set (now an enum, not a bool).
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.SetViewNormal(-0.528889, 0.367702, 0.7649)
    +v.SetViewUp(0.176641, 0.929226, -0.324558)
    +v.SetParallelScale(17.3205)
    +v.SetPerspective(1)
    +SetView3D(v)
    +
    +Test("globe_01")
    +
    +DeleteAllPlots()
    +AddPlot("Contour", "t")
    +DrawPlots()
    +Test("globe_02")
    +
    +DeleteAllPlots()
    +AddPlot("FilledBoundary", "mat1")
    +DrawPlots()
    +Test("globe_03")
    +
    +DeleteAllPlots()
    +AddPlot("Volume", "u")
    +DrawPlots()
    +Test("globe_04")
    +
    +#Test MeshPlot with OpaqueFlag ON
    +DeleteAllPlots()
    +AddPlot("Mesh", "mesh1")
    +m = MeshAttributes()
    +m.opaqueMode = m.Off
    +SetPlotOptions(m)
    +DrawPlots()
    +Test("globe_05")
    +
    +DeleteAllPlots()
    +AddPlot("Vector", "vel")
    +DrawPlots()
    +Test("globe_06")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_point.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_point.html new file mode 100644 index 000000000..70f72d52a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_point.html @@ -0,0 +1,142 @@ + +Results for meshtype/point.py + +

    Results of VisIt Regression Test - meshtype/point

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    meshtype_point_010.000.00
    meshtype_point_020.000.00
    meshtype_point_030.000.00
    meshtype_point_040.000.00
    meshtype_point_050.080.01
    meshtype_point_060.000.00
    meshtype_point_070.010.00
    meshtype_point_080.000.00
    meshtype_point_090.000.00
    meshtype_point_100.000.00
    meshtype_point_110.000.00
    meshtype_point_120.000.00
    meshtype_point_130.000.00
    meshtype_point_140.000.00
    meshtype_point_150.000.00
    meshtype_point_160.000.00
    meshtype_point_170.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_point_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_point_py.html new file mode 100644 index 000000000..dd91d4e0b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_point_py.html @@ -0,0 +1,174 @@ +meshtype/point.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  point.py
    +#
    +#  Tests:      mesh      - 3D point
    +#              plots     - pseudocolor, subset, mesh
    +#              operators - none
    +#              selection - none
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       May  4, 2004
    +#
    +#  Modificatons:
    +#    Kathleen Bonnell, Thu Aug 19 15:07:23 PDT 2004
    +#    Added tests 4-7.
    +#
    +#    Kathleen Bonnell, Thu Nov 11 17:28:15 PST 2004
    +#    Added tests 8-17.
    +#
    +#    Brad Whitlock, Thu Jul 21 15:44:05 PST 2005
    +#    Added tests for setting the point size for points rendered as pixels.
    +#
    +#    Brad Whitlock, Fri Aug 26 13:59:08 PST 2005
    +#    Needed to add more rendering tests so I moved the point rendering
    +#    stuff to renderpoint.py.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Wed Feb 16 09:15:45 PST 2022
    +#    Replace use of meshatts 'foregroundFlag' with meshColorSource.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +v = GetView3D()
    +v.viewNormal = (0.3, 0.5, 0.8)
    +SetView3D(v)
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +
    +AddPlot("Pseudocolor", "PointVar")
    +DrawPlots()
    +
    +p=PseudocolorAttributes()
    +p.pointType = p.Axis
    +p.pointSize = 0.2
    +SetPlotOptions(p)
    +Test("meshtype_point_01")
    +
    +p.pointSizeVarEnabled = 1
    +p.pointSize = 0.5
    +SetPlotOptions(p)
    +Test("meshtype_point_02")
    +
    +p.pointType = p.Point
    +p.pointSizePixels = 1
    +SetPlotOptions(p)
    +Test("meshtype_point_03")
    +
    +DeleteAllPlots()
    +
    +
    +#Test some more of the point-related atts for the pc plot.
    +OpenDatabase(silo_data_path("multi_point2d.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +p = PseudocolorAttributes()
    +SetPlotOptions(p)
    +DrawPlots()
    +ResetView()
    +
    +Test("meshtype_point_04")
    +
    +p.pointSize = 0.05
    +p.pointType = p.Axis
    +p.pointSizeVarEnabled = 1
    +p.pointSizeVar = "d"
    +SetPlotOptions(p)
    +Test("meshtype_point_05")
    +
    +p.pointSize = 0.25
    +p.pointType = p.Box
    +p.pointSizeVar = "p"
    +SetPlotOptions(p)
    +Test("meshtype_point_06")
    +
    +p.pointSize = 0.25
    +p.pointType = p.Icosahedron
    +p.pointSizeVar = "u"
    +SetPlotOptions(p)
    +Test("meshtype_point_07")
    +
    +DeleteAllPlots()
    +
    +#Test Subsets of point meshes
    +AddPlot("Subset", "domains")
    +s = SubsetAttributes()
    +s.pointSizePixels = 1
    +SetPlotOptions(s)
    +DrawPlots()
    +ResetView()
    +Test("meshtype_point_08")
    +
    +s.pointSizeVarEnabled = 1
    +s.pointSizeVar = "d"
    +s.pointType = s.Icosahedron
    +SetPlotOptions(s)
    +Test("meshtype_point_09")
    +
    +s.pointSizeVar = "u"
    +s.pointType = s.Box
    +SetPlotOptions(s)
    +Test("meshtype_point_10")
    +
    +s.pointSizeVar = "v"
    +SetPlotOptions(s)
    +Test("meshtype_point_11")
    +
    +s.colorType = s.ColorBySingleColor
    +s.singleColor = (255, 0, 0, 255)
    +SetPlotOptions(s)
    +Test("meshtype_point_12")
    +
    +DeleteAllPlots()
    +
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "PointVar")
    +p.pointSize = 0.5
    +p.pointSizeVarEnabled = 0
    +SetPlotOptions(p)
    +DrawPlots()
    +Test("meshtype_point_13")
    +
    +# the next two not only test using poingSizeVar, but also DataSetVerifier which
    +# will reduce the number of values in the var array to match the actual number
    +# of points in the point mesh
    +p.pointSize = 0.5
    +p.pointSizeVarEnabled = 1
    +p.pointSizeVar = "hardyglobal"
    +p.pointType = p.Box
    +SetPlotOptions(p)
    +Test("meshtype_point_14")
    +
    +#can we scale by a a vector variable?
    +p.pointSizeVar = "grad"
    +SetPlotOptions(p)
    +Test("meshtype_point_15")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Mesh", "PointMesh")
    +m = MeshAttributes()
    +m.meshColorSource = m.MeshCustom
    +m.meshColor = (0, 122, 200, 255)
    +m.pointType = m.Box
    +m.pointSize = 0.5
    +SetPlotOptions(m)
    +DrawPlots()
    +Test("meshtype_point_16")
    +
    +m.pointSizeVarEnabled = 1
    +m.pointSizeVar = "PointVar"
    +SetPlotOptions(m)
    +Test("meshtype_point_17")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_rect3d.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_rect3d.html new file mode 100644 index 000000000..77b6defab --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_rect3d.html @@ -0,0 +1,48 @@ + +Results for meshtype/rect3d.py + +

    Results of VisIt Regression Test - meshtype/rect3d

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    rect3d_010.000.00
    rect3d_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_rect3d_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_rect3d_py.html new file mode 100644 index 000000000..40079a62e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/meshtype_rect3d_py.html @@ -0,0 +1,80 @@ +meshtype/rect3d.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  rect3d.py
    +#
    +#  Tests:      mesh      - 3D regular, single domain
    +#              plots     - pc, contour, mat subset, mesh
    +#              operators - none
    +#              selection - material
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       April 17, 2002
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Wed Apr 24 10:04:35 PDT 2002
    +#    Turn off opaque mesh.
    +#
    +#    Kathleen Bonnell, Thu Sep  5 10:55:47 PDT 2002
    +#    Changed the variable format for SubsetPlots, to reflect new interface
    +#    which allows subsets of groups.
    +#
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset plots.
    +#
    +#    Kathleen Bonnell, Thu Sep  4 11:10:11 PDT 2003
    +#    Change the way MeshPlot's opaque mode is set (now an enum, not a bool).
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +AddPlot("Pseudocolor", "d")
    +pc=PseudocolorAttributes()
    +pc.SetOpacityType(pc.Constant)
    +pc.opacity=0.2
    +SetPlotOptions(pc)
    +
    +AddPlot("Mesh", "quadmesh3d")
    +m1=MeshAttributes()
    +m1.opaqueMode=m1.Off
    +SetPlotOptions(m1)
    +
    +AddPlot("Contour", "u")
    +
    +# Turn off alternate materials.
    +silr=SILRestriction()
    +onoff = 0
    +for sets in silr.SetsInCategory('mat1'):
    +    if(onoff == 0):
    +        silr.TurnOffSet(sets)
    +        onoff = 1
    +    else:
    +        onoff = 0
    +
    +AddPlot("FilledBoundary", "mat1")
    +SetPlotSILRestriction(silr)
    +
    +DrawPlots()
    +
    +Test("rect3d_01")
    +
    +v = GetView3D()
    +v.SetViewNormal(.7,.6,.5)
    +SetView3D(v)
    +
    +Test("rect3d_02")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/missingdata_0_04.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/missingdata_0_04.html new file mode 100644 index 000000000..657868e57 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/missingdata_0_04.html @@ -0,0 +1,66 @@ +Results for test case missingdata_0_04 + +

    Results for test case missingdata_0_04

    + + + + + +
    Legend
    0 Lines Added
    0 Lines Deleted
    8 Lines Changed

    +

    1 modifications, totalling 8 lines

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     Line Baseline Line Current
    1:  1: Pick could not retrieve the requested information, possibly due to a bad expression in its variables list. Please check the requested variables list and try again.
    2: A: earth.nc
    3: mesh1350x675
    4: Point: <671, 617>
    5: Node: 833621
    6: Incident Zones: 833004 831655 833005 831656
    7: population: <nodal> = 0
    8:  
    diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_amr_stitch.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_amr_stitch.html new file mode 100644 index 000000000..8d4238600 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_amr_stitch.html @@ -0,0 +1,84 @@ + +Results for operators/amr_stitch.py + +

    Results of VisIt Regression Test - operators/amr_stitch

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    amr_stitch_010.000.00
    amr_stitch_020.000.00
    amr_stitch_030.000.00
    amr_stitch_040.000.00
    amr_stitch_050.000.00
    amr_stitch_060.000.00
    amr_stitch_070.000.00
    amr_stitch_080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_amr_stitch_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_amr_stitch_py.html new file mode 100644 index 000000000..ebd633d4e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_amr_stitch_py.html @@ -0,0 +1,49 @@ +operators/amr_stitch.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  amr_stitch.py
    +#
    +#  Programmer: Gunther H. Weber
    +#  Date:       April 29, 2014
    +#
    +#  Modifications:
    +#
    +#      Alister Maguire, Wed Jan  6 08:31:05 PST 2021
    +#      Added the -enable-ghosts-for-t-intersections flag, as it
    +#      is now disabled by default.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# NOTE: the comment below tells visit to use the
    +# 'enable-ghosts-for-t-intersections' flag when running this test.
    +# This flag must be enabled for this test to succeed.
    +
    +#VARGS: "-enable-ghosts-for-t-intersections"
    +
    +# Turn off all annotation
    +a = AnnotationAttributes()
    +TurnOffAllAnnotations(a)
    +
    +# Files used for tests
    +filename_template = "AMRStitchCell_test_data/AMRStitchCellTest.%d.no_ghost.phi.%dd.hdf5"
    +test_case_filenames = [ data_path(filename_template % ( case, dim )) for dim in range(2,4) for case in range(1,5) ]
    +
    +# Setup plots and run first test
    +OpenDatabase(test_case_filenames[0])
    +AddPlot("Contour", "phi")
    +AddOperator("AMRStitchCell")
    +DrawPlots()
    +Test("amr_stitch_01")
    +
    +# Perform remaining tests
    +for test_no, ds in enumerate(test_case_filenames[1:], 2):
    +    ReplaceDatabase(ds)
    +    Test("amr_stitch_%02d" % test_no)
    +
    +# Clean-up
    +DeleteAllPlots()
    +for ds in test_case_filenames:
    +    CloseDatabase(ds)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_box.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_box.html new file mode 100644 index 000000000..26e3e206a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_box.html @@ -0,0 +1,84 @@ + +Results for operators/box.py + +

    Results of VisIt Regression Test - operators/box

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_box010.000.00
    ops_box020.000.00
    ops_box030.000.00
    ops_box040.000.00
    ops_box050.000.00
    ops_box060.000.00
    ops_box070.000.00
    ops_box080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_box_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_box_py.html new file mode 100644 index 000000000..6e1434210 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_box_py.html @@ -0,0 +1,155 @@ +operators/box.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  box.py
    +#
    +#  Tests:      mesh      - 3D point, single domain,
    +#                          3D rectilinear, multiple domain.
    +#                          3D unstructured, single domain.
    +#              plots     - pc, vector, contour, vector
    +#
    +#  Defect ID:  3160
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 26, 2003
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset plots.
    +#
    +#    Hank Childs, Wed Jun  4 08:56:08 PDT 2008
    +#    Test facelist filter after applying a box.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# 3D, rectilinear.  Multi-block  Tests ghost zones as well.
    +OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +
    +atts = BoxAttributes()
    +atts.amount = 0
    +atts.minx = 0.4
    +atts.maxx = 0.7
    +atts.miny = 0.1
    +atts.maxy = 0.9
    +atts.minz = 0.4
    +atts.maxz = 1.7
    +
    +AddPlot("Pseudocolor", "dist")
    +AddOperator("Box")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +view = GetView3D()
    +view.viewNormal = (0.79, -0.035, 0.61)
    +view.focus = (0.5, 0.5, 0.5)
    +view.viewUp = (0, 1, 0)
    +view.parallelScale = 0.765
    +view.nearPlane = -0.25
    +view.farPlane = 1.73
    +SetView3D(view)
    +Test("ops_box01")
    +DeleteAllPlots()
    +
    +
    +# 3D, unstructured
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Box")
    +atts.minx = -5
    +atts.maxx = +5
    +atts.miny = -5
    +atts.maxy = +5
    +atts.minz = -5
    +atts.maxz = +5
    +SetOperatorOptions(atts)
    +DrawPlots()
    +view.viewNormal = (0.56, 0.81, -0.14)
    +view.focus = (0, 0, 0)
    +view.viewUp = (-0.66, 0.55, 0.49)
    +view.parallelScale = 11
    +view.nearPlane = -34
    +view.farPlane = 34
    +SetView3D(view)
    +Test("ops_box02")
    +
    +
    +atts.amount = 1
    +SetOperatorOptions(atts)
    +Test("ops_box03")
    +
    +DeleteAllPlots()
    +
    +view.parallelScale = 14
    +SetView3D(view)
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Vector", "airVfGradient")
    +vec = VectorAttributes()
    +SetPlotOptions(vec)
    +atts.minx = -5
    +atts.maxx = +5
    +atts.miny = -10
    +atts.maxy = +10
    +atts.minz = -10
    +atts.maxz = +10
    +AddOperator("Box")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_box04")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Contour", "hardyglobal")
    +AddOperator("Box")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_box05")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Mesh", "PointMesh")
    +mesh = MeshAttributes()
    +mesh.pointType = mesh.Box
    +mesh.pointSizeVar = "PointVar"
    +mesh.pointSizeVarEnabled = 1
    +SetPlotOptions(mesh)
    +AddOperator("Box")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_box06")
    +
    +# This final test should be blank.  The box operator was crashing with
    +# point meshes that fell outside the box previously.  ('3160)
    +atts.minx = -30
    +atts.maxx = -20
    +SetOperatorOptions(atts)
    +Test("ops_box07")
    +
    +# If we apply the box operator to a rectilinear grid, it can change
    +# the "Extents", which can screw up the facelist filter.  Test that
    +# no one has undone the fix from Paul Selby.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Box")
    +atts.minx = 0.2
    +atts.maxx = 1.0
    +SetOperatorOptions(atts)
    +DrawPlots()
    +view.focus = (0.5, 0.5, 0.5)
    +view.parallelScale = 1.4
    +SetView3D(view)
    +Test("ops_box08")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_cart_proj.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_cart_proj.html new file mode 100644 index 000000000..dfe4a7cb9 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_cart_proj.html @@ -0,0 +1,60 @@ + +Results for operators/cart_proj.py + +

    Results of VisIt Regression Test - operators/cart_proj

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_cart_proj_00.000.00
    ops_cart_proj_10.000.00
    ops_cart_proj_20.000.00
    ops_cart_proj_30.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_cart_proj_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_cart_proj_py.html new file mode 100644 index 000000000..0df4dce2f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_cart_proj_py.html @@ -0,0 +1,60 @@ +operators/cart_proj.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  cart_proj.py
    +#
    +#  Tests:
    +#              plots     - pc
    +#              operators - CartographicProjection
    +#
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:      Tue Sep 25 08:41:19 PDT 2012
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# Test 2D Case
    +
    +OpenDatabase(data_path("netcdf_test_data/NASA_vegetation_lai.cdf"))
    +
    +v = View2DAttributes()
    +v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +SetView2D(v)
    +
    +
    +AddPlot("Pseudocolor", "lai")
    +DrawPlots()
    +ResetView()
    +Test("ops_cart_proj_0")
    +
    +AddOperator("CartographicProjection")
    +cart_proj_atts = CartographicProjectionAttributes()
    +cart_proj_atts.projectionID = cart_proj_atts.hammer
    +SetOperatorOptions(cart_proj_atts)
    +DrawPlots()
    +ResetView()
    +Test("ops_cart_proj_1")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(data_path("netcdf_test_data/tas_mean_T63.nc"))
    +
    +AddPlot("Pseudocolor", "tas")
    +DrawPlots()
    +ResetView()
    +Test("ops_cart_proj_2")
    +
    +AddOperator("CartographicProjection")
    +cart_proj_atts = CartographicProjectionAttributes()
    +cart_proj_atts.projectionID = cart_proj_atts.hammer
    +SetOperatorOptions(cart_proj_atts)
    +DrawPlots()
    +ResetView()
    +Test("ops_cart_proj_3")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_clip.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_clip.html new file mode 100644 index 000000000..ed62a62a7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_clip.html @@ -0,0 +1,180 @@ + +Results for operators/clip.py + +

    Results of VisIt Regression Test - operators/clip

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    clip000.000.00
    clip010.000.00
    clip020.000.00
    clip030.000.00
    clip040.000.00
    clip050.000.00
    clip060.000.00
    clip070.000.00
    clip080.000.00
    clip090.000.00
    clip100.000.00
    clip110.000.00
    clip120.000.00
    clip130.000.00
    clip140.000.00
    clip150.000.00
    clip160.000.00
    clip170.000.00
    clip180.000.00
    clip190.000.00
    clip200.000.00
    clip_globe_fast0.000.00
    clip_globe_accurate0.000.00
    crinkle_clip_globe0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_clip_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_clip_py.html new file mode 100644 index 000000000..158eab411 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_clip_py.html @@ -0,0 +1,143 @@ +operators/clip.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  clip.py
    +#
    +#  Tests:      mesh      - 2D rectilinear, 2D curvilinear,
    +#                          3D rectilinear, 3D curvilinear,
    +#                          3D unstructured
    +#
    +#  Defect ID:  7470, 7195
    +#
    +#  Programmer: Hank Childs
    +#  Date:       September 1, 2006
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Wed Sep  6 16:56:27 PDT 2006
    +#    Test clip operator with no plane and no sphere (this was crashing the
    +#    engine due to a memory problem) ['7195]
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Alister Maguire, Fri Nov 13 14:07:54 PST 2020
    +#    Added a test for the crinkle clip.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def TestOne(filename, index, zonal_var, nodal_var, radius):
    +   OpenDatabase(filename)
    +   c = ClipAttributes()
    +   c.funcType = c.Sphere
    +   c.radius = radius
    +   c.sphereInverse = 1
    +   AddPlot("Pseudocolor", zonal_var)
    +   AddOperator("Clip")
    +   SetOperatorOptions(c)
    +   DrawPlots()
    +   name = "clip%02d" %(index+0)
    +   Test(name)
    +   ChangeActivePlotsVar(nodal_var)
    +   name = "clip%02d" %(index+1)
    +   Test(name)
    +   c.funcType = c.Plane
    +   c.plane1Origin = (0.5, 0.5, 0)
    +   c.plane1Normal = (1, 1, 0)
    +   SetOperatorOptions(c)
    +   name = "clip%02d" %(index+2)
    +   Test(name)
    +   ChangeActivePlotsVar(zonal_var)
    +   name = "clip%02d" %(index+3)
    +   Test(name)
    +   DeleteAllPlots()
    +
    +TestOne(silo_data_path("rect2d.silo"), 4*0, "d", "u", 0.5)
    +TestOne(silo_data_path("rect3d.silo"), 4*1, "d", "u", 0.5)
    +TestOne(silo_data_path("curv2d.silo"), 4*2, "d", "u", 3)
    +TestOne(silo_data_path("curv3d.silo"), 4*3, "d", "u", 4)
    +TestOne(silo_data_path("globe.silo"), 4*4, "t", "u", 5)
    +
    +# Test doing a clip where there are no planes selected.  This has caused
    +# a crash ['7195].
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor" , "d")
    +AddOperator("Clip")
    +c = ClipAttributes()
    +c.funcType = c.Plane
    +c.plane1Status = 0
    +c.plane2Status = 0
    +c.plane3Status = 0
    +SetOperatorOptions(c)
    +DrawPlots()
    +
    +test_idx = 20
    +name = "clip%02d" %(test_idx)
    +Test(name)
    +test_idx += 1
    +
    +# Test accurate vs. fast.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Mesh", "mesh1")
    +c = ClipAttributes()
    +c.funcType = c.Plane  # Plane, Sphere
    +c.plane1Status = 1
    +c.plane2Status = 1
    +c.plane3Status = 0
    +c.plane1Origin = (0, 2.37883, 0)
    +c.plane2Origin = (0, 2.37883, 0)
    +c.plane3Origin = (0, 2.37883, 0)
    +c.plane1Normal = (1, 0, 0)
    +c.plane2Normal = (0, 1, 0)
    +c.plane3Normal = (0, 0, 1)
    +c.planeInverse = 0
    +c.center = (0, 0, 0)
    +c.radius = 1
    +c.sphereInverse = 0
    +AddOperator("Clip")
    +SetOperatorOptions(c)
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.0548192, 0.0422395, 0.997602)
    +v.focus = (0.427242, 3.08232, -0.155563)
    +v.viewUp = (0.195041, 0.979406, -0.0521867)
    +v.viewAngle = 30
    +v.parallelScale = 4.21585
    +v.nearPlane = -34.5981
    +v.farPlane = 34.5981
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, -0.0372553, 0)
    +
    +DrawPlots()
    +SetView3D(v)
    +
    +Test("clip_globe_fast")
    +
    +c.quality = c.Accurate
    +SetOperatorOptions(c)
    +Test("clip_globe_accurate")
    +
    +DeleteAllPlots()
    +ResetView()
    +
    +#
    +# Test the crinkle clip.
    +#
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Clip")
    +c = ClipAttributes()
    +c.crinkleClip = 1
    +SetOperatorOptions(c)
    +DrawPlots()
    +Test("crinkle_clip_globe")
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_cracksclipper.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_cracksclipper.html new file mode 100644 index 000000000..424696d8b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_cracksclipper.html @@ -0,0 +1,72 @@ + +Results for operators/cracksclipper.py + +

    Results of VisIt Regression Test - operators/cracksclipper

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    CracksClipper_000.000.00
    CracksClipper_010.000.00
    CracksClipper_020.000.00
    CracksClipper_030.000.00
    CracksClipper_040.000.00
    CracksClipper_050.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_cracksclipper_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_cracksclipper_py.html new file mode 100644 index 000000000..78c05738c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_cracksclipper_py.html @@ -0,0 +1,54 @@ +operators/cracksclipper.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  cracksclipper.py
    +#
    +#  Tests:      operators - CracksClipper
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       August 14, 2012
    +#
    +#  Modifications:
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(data_path("vtk_cracked_test_data/cracked_*.vtk database"))
    +AddPlot("Pseudocolor", "operators/CracksClipper/mesh/den")
    +pcAtts = PseudocolorAttributes()
    +pcAtts.minFlag = 1
    +pcAtts.maxFlag = 1
    +pcAtts.min = 1.9
    +pcAtts.max = 3.853
    +SetPlotOptions(pcAtts)
    +
    +
    +v = GetView3D()
    +v.viewNormal = (-0.507948, 0.663707, 0.549074)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (0.388198, 0.745409, -0.541911)
    +v.parallelScale = 0.866025
    +v.nearPlane = -1.73205
    +v.farPlane = 1.73205
    +SetView3D(v)
    +
    +DrawPlots()
    +
    +# Changing time states shows the cracks developing, and demonstrates
    +# the density calculation
    +Test("CracksClipper_00")
    +SetTimeSliderState(1)
    +Test("CracksClipper_01")
    +SetTimeSliderState(3)
    +Test("CracksClipper_02")
    +SetTimeSliderState(5)
    +Test("CracksClipper_03")
    +SetTimeSliderState(12)
    +Test("CracksClipper_04")
    +
    +SetTimeSliderState(14)
    +# Show that normal vars can be used.
    +ChangeActivePlotsVar("ems")
    +# 
    +Test("CracksClipper_05")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_defer_expr.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_defer_expr.html new file mode 100644 index 000000000..7b945a357 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_defer_expr.html @@ -0,0 +1,114 @@ + +Results for operators/defer_expr.py + +

    Results of VisIt Regression Test - operators/defer_expr

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    defer_expr_010.000.00
    defer_expr_020.000.00
    defer_expr_030.000.00
    defer_expr_040.000.00
    defer_expr_050.000.00
    defer_expr_060.000.00
    defer_expr_070.000.00
    defer_expr_080.000.00
    defer_expr_090.000.00
    defer_expr_100.000.00
    defer_expr_110.000.00
    defer_expr_120.000.00
    defer_expr_130.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_defer_expr_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_defer_expr_py.html new file mode 100644 index 000000000..c78bdd884 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_defer_expr_py.html @@ -0,0 +1,248 @@ +operators/defer_expr.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  defer_expr.py
    +#
    +#  Defect ID:  '2433, '1527, '6630, '6631, '6676, '6637
    +#
    +#  Programmer: Hank Childs
    +#  Date:       September 21, 2005
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Thu Dec 29 11:29:08 PST 2005
    +#    Widen color range of vector plot to sidestep precision issues between
    +#    optimized and non-optimized binaries.
    +#
    +#    Hank Childs, Thu Jan 17 15:44:06 PST 2008
    +#    Explicitly specify the color table for the vector plot.  This is an issue
    +#    because this test runs with "-config" (*not* "-noconfig") and the default
    +#    color table can get confused if the user has a color table in his .visit
    +#    directory that collides with the normal default ("hot").  So we're
    +#    skirting that issue by explicitly specifying the color table.
    +#
    +#    Jeremy Meredith, Mon Jul 14 12:28:50 EDT 2008
    +#    Allow the vector plot to show all vectors (even ones not from
    +#    from original cells/nodes) to match the old behavior.
    +#
    +#    Hank Childs, Wed Dec 31 14:32:34 PST 2008
    +#    Rename ResamplePluginAtts to ResampleAtts.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Brad Whitlock, Wed Apr 18 15:40:47 PDT 2012
    +#    Make vectors constant color for test 8.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Remove obsolete 'colorByMag' vector att with 'colorByMagnitude'.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +DefineScalarExpression("en", "external_node(mesh1)")
    +AddPlot("Pseudocolor", "en")
    +AddOperator("Isovolume")
    +iso_atts = IsovolumeAttributes()
    +iso_atts.variable = "t"
    +iso_atts.lbound = 500
    +SetOperatorOptions(iso_atts)
    +AddOperator("Slice")
    +DrawPlots()
    +
    +# Save a picture before deferring the expression evaluation.
    +Test("defer_expr_01")
    +
    +# Test that the external node operator can find the external nodes
    +# on a 2D slice.
    +d = DeferExpressionAttributes()
    +d.exprs = ("en")
    +SetDefaultOperatorOptions(d)
    +AddOperator("DeferExpression")
    +DrawPlots()
    +Test("defer_expr_02")
    +
    +# Now test that the external node expression can find the external nodes
    +# on a 3D dataset (before the slice).  This should be an identical picture
    +# to what's above (bar interpolation from the slice).
    +DemoteOperator(2)
    +DrawPlots()
    +Test("defer_expr_03")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isovolume")
    +iso_atts = IsovolumeAttributes()
    +iso_atts.variable = "t"
    +iso_atts.ubound = 500
    +SetOperatorOptions(iso_atts)
    +AddOperator("DeferExpression")
    +AddOperator("Threshold")
    +thres_atts = ThresholdAttributes()
    +thres_atts.upperBounds = (0.5)
    +thres_atts.outputMeshType = 1
    +thres_atts.listedVarNames = ("en")
    +SetOperatorOptions(thres_atts)
    +DrawPlots()
    +Test("defer_expr_04")
    +
    +DeleteAllPlots()
    +
    +DefineScalarExpression("X1", "coord(mesh1)[0]")
    +DefineScalarExpression("X2", "coord(mesh1)[0]")
    +DefineScalarExpression("X3", "coord(mesh1)[0]")
    +
    +AddPlot("Pseudocolor", "X1")
    +
    +# Transform by 45 degrees.
    +t = TransformAttributes()
    +t.doRotate = 1
    +t.rotateAxis = (0, 1, 0)
    +t.rotateAmount = 45
    +SetDefaultOperatorOptions(t)
    +AddOperator("Transform")
    +
    +# Now evaluate X2 after transforming
    +d.exprs = ("X2")
    +SetDefaultOperatorOptions(d)
    +AddOperator("DeferExpression")
    +
    +# Now threshold out where X2 is bigger than 0 (after the transform)
    +thres_atts.listedVarNames = ("X2")
    +thres_atts.lowerBounds = (0.0)
    +thres_atts.upperBounds = (1000.0)
    +SetDefaultOperatorOptions(thres_atts)
    +AddOperator("Threshold")
    +
    +# Now transform by another 45 degrees
    +AddOperator("Transform")
    +
    +# Evaluate X3 after the new transform.
    +d.exprs = ("X3")
    +SetDefaultOperatorOptions(d)
    +AddOperator("DeferExpression")
    +
    +# Now threshold out where X3 is bigger than 0 (after the new transform)
    +thres_atts.listedVarNames = ("X3")
    +SetDefaultOperatorOptions(thres_atts)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("defer_expr_05")
    +
    +# Now do the same thing, but defer X1 until the end of the transforms.
    +d.exprs = ("X1")
    +SetDefaultOperatorOptions(d)
    +AddOperator("DeferExpression")
    +DrawPlots()
    +# This should be the same geometry as '05, but the color should be different.
    +Test("defer_expr_06")
    +
    +DeleteAllPlots()
    +DefineVectorExpression("normals", "cell_surface_normal(mesh1)")
    +AddPlot("Vector", "normals")
    +v = VectorAttributes()
    +v.origOnly = 0
    +v.min = 0.5
    +v.max = 1.5
    +v.minFlag = 1
    +v.maxFlag = 1
    +v.colorTableName = "hot"
    +v.useStride = 0
    +v.stride = 1
    +SetPlotOptions(v)
    +
    +AddOperator("ExternalSurface")
    +AddOperator("DeferExpression")
    +d.exprs = "normals"
    +SetOperatorOptions(d)
    +DrawPlots()
    +Test("defer_expr_07")
    +
    +DeleteAllPlots()
    +AddPlot("Contour", "t")
    +c = ContourAttributes()
    +c.contourMethod = c.Value
    +c.contourValue = (500)
    +SetPlotOptions(c)
    +AddPlot("Vector", "normals")
    +v = VectorAttributes()
    +v.origOnly = 0
    +v.colorByMagnitude = 0
    +v.vectorColor = (255,255,0,255)
    +SetPlotOptions(v)
    +AddOperator("Isosurface")
    +i = IsosurfaceAttributes()
    +i.contourMethod = i.Value
    +i.contourValue = (500)
    +i.variable = "t"
    +SetOperatorOptions(i)
    +AddOperator("DeferExpression")
    +d.exprs = "normals"
    +SetOperatorOptions(d)
    +DrawPlots()
    +Test("defer_expr_08")
    +
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "mesh_quality/max_edge_length")
    +AddOperator("Slice")
    +DrawPlots()
    +Test("defer_expr_09")
    +
    +d.exprs = ("mesh_quality/max_edge_length")
    +AddOperator("DeferExpression")
    +SetOperatorOptions(d)
    +DrawPlots()
    +Test("defer_expr_10")
    +
    +DeleteAllPlots()
    +r = ResampleAttributes()
    +r.samplesX = 50
    +r.samplesY = 50
    +r.samplesZ = 50
    +r.defaultValue = -100
    +r.distributedResample = 0
    +DefineScalarExpression("procid", "procid(mesh1)")
    +AddPlot("Pseudocolor", "procid")
    +AddOperator("Resample")
    +SetOperatorOptions(r)
    +AddOperator("Threshold")
    +t = ThresholdAttributes()
    +t.lowerBounds = (-10.0)
    +t.listedVarNames = ("u")
    +t.outputMeshType = 1
    +SetOperatorOptions(t)
    +AddOperator("DeferExpression")
    +d.exprs = "procid"
    +SetOperatorOptions(d)
    +DrawPlots()
    +
    +Test("defer_expr_11")
    +
    +r.distributedResample = 1
    +SetOperatorOptions(r)
    +Test("defer_expr_12")
    +
    +DeleteAllPlots()
    +DefineVectorExpression("sn", "recenter(-cell_surface_normal(mesh1))")
    +AddPlot("Vector", "sn")
    +v = VectorAttributes()
    +v.origOnly = 0
    +v.colorTableName = "hot"
    +SetPlotOptions(v)
    +AddOperator("ExternalSurface")
    +AddOperator("DeferExpression")
    +d.exprs = "sn"
    +SetOperatorOptions(d)
    +DrawPlots()
    +Test("defer_expr_13")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_displace.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_displace.html new file mode 100644 index 000000000..596930307 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_displace.html @@ -0,0 +1,94 @@ + +Results for operators/displace.py + +

    Results of VisIt Regression Test - operators/displace

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_disp010.000.00
    ops_disp020.000.00
    ops_disp030.000.00
    ops_disp040.000.00
    ops_disp050.000.00
    ops_disp060.000.00
    ops_disp070.000.00
    ops_disp080 modifications totalling 0 lines
    ops_disp090.000.00
    ops_disp100.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_displace_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_displace_py.html new file mode 100644 index 000000000..7121c6054 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_displace_py.html @@ -0,0 +1,129 @@ +operators/displace.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  displace.py
    +#
    +#  Tests:      mesh      - 2D/3D rectilinear, single domain.
    +#                          3D unstructured, single domain.
    +#                          2D/3D curvilinear, single domain.
    +#              plots     - pc, mesh
    +#
    +#  Defect ID:  '5921, '7486, '8160, '8259, '8265
    +#
    +#  Programmer: Hank Childs
    +#  Date:       May 6, 2004
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Tue Jun  7 09:47:58 PDT 2005
    +#    Added tests for filled boundary with cell-based vectors ['5921].
    +#
    +#    Hank Childs, Tue Sep  5 16:39:40 PDT 2006
    +#    Added test for when users put in non-vectors ['7486].
    +#
    +#    Hank Childs, Fri Sep 28 12:28:30 PDT 2007
    +#    Add tests for three recent bugs ['8160, '8259, '8265]
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +disp = DisplaceAttributes()
    +disp.variable = "vel"
    +SetDefaultOperatorOptions(disp)
    +
    +# 2D, rectilinear.
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Displace")
    +AddPlot("Mesh", "quadmesh2d")
    +AddOperator("Displace")
    +DrawPlots()
    +
    +Test("ops_disp01")
    +
    +SetActivePlots(1)
    +DeleteActivePlots()
    +ReplaceDatabase(silo_data_path("curv2d.silo"))
    +
    +ResetView()
    +
    +Test("ops_disp02")
    +
    +ReplaceDatabase(silo_data_path("curv3d.silo"))
    +
    +v = GetView3D()
    +v.viewNormal = (0.61, -0.61, 0.61)
    +SetView3D(v)
    +
    +Test("ops_disp03")
    +
    +ReplaceDatabase(silo_data_path("rect3d.silo"))
    +
    +Test("ops_disp04")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("ucd3d.silo"))
    +
    +
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Displace")
    +disp.factor = 5
    +SetOperatorOptions(disp)
    +DrawPlots()
    +
    +Test("ops_disp05")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Displace")
    +disp.variable = "vel"
    +disp.factor = 1
    +SetOperatorOptions(disp)
    +DrawPlots()
    +Test("ops_disp06")
    +
    +disp.variable = "disp"
    +SetOperatorOptions(disp)
    +Test("ops_disp07")
    +
    +disp.variable = "t"
    +SetOperatorOptions(disp)
    +error = GetLastError()
    +TestText("ops_disp08", error)
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(data_path("boxlib_test_data/2D/plt0822/Header"))
    +
    +
    +#   8265: cell-centered vector with rectilinear mesh 
    +# + 8259: file format the declares itself having 2D vectors + displace
    +AddPlot("Pseudocolor", "density")
    +AddOperator("Displace")
    +disp.variable = "mom"
    +disp.factor = 1e-12 # this way the quads won't overlap each other.
    +SetOperatorOptions(disp)
    +DrawPlots()
    +Test("ops_disp09")
    +
    +DeleteAllPlots()
    +
    +# '8160: subset plot displaced by a vector
    +AddPlot("Subset", "patches")
    +AddOperator("Displace")
    +SetOperatorOptions(disp)
    +DrawPlots()
    +Test("ops_disp10")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_dual_mesh.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_dual_mesh.html new file mode 100644 index 000000000..065f8aec3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_dual_mesh.html @@ -0,0 +1,114 @@ + +Results for operators/dual_mesh.py + +

    Results of VisIt Regression Test - operators/dual_mesh

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_dualmesh_pc_plot_2d_d_000.000.00
    ops_dualmesh_pc_plot_2d_d_010.000.00
    ops_dualmesh_pc_plot_2d_d_020.000.00
    ops_dualmesh_mesh_plot_2d_001.360.51
    ops_dualmesh_mesh_plot_2d_0189.7733.58
    ops_dualmesh_mesh_plot_2d_021.360.51
    ops_dual_mesh_pc_plot_3d_d_000.000.00
    ops_dual_mesh_pc_plot_3d_d_010.000.00
    ops_dual_mesh_pc_plot_3d_d_020.000.00
    ops_dual_mesh_pc_plot_3d_t_000.000.00
    ops_dual_mesh_pc_plot_3d_t_010.000.00
    ops_dual_mesh_pc_plot_3d_t_020.000.00
    +

    Final Return Code: 120

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_dual_mesh_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_dual_mesh_py.html new file mode 100644 index 000000000..adc8e6230 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_dual_mesh_py.html @@ -0,0 +1,111 @@ +operators/dual_mesh.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  dual_mesh.py
    +#
    +#  Tests:      mesh      - 2D rectilinear, single domain.
    +#                          3D rectilinear, single domain.
    +#              plots     - pc, mesh
    +#              operators - DualMesh
    +#
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       May 13, 2008
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# Test 2D Case
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +Test("ops_dualmesh_pc_plot_2d_d_00")
    +
    +# test auto, Zones to Nodes
    +AddOperator("DualMesh")
    +DrawPlots()
    +Test("ops_dualmesh_pc_plot_2d_d_01")
    +
    +# test auto, Nodes to Zones
    +AddOperator("DualMesh")
    +DrawPlots()
    +Test("ops_dualmesh_pc_plot_2d_d_02")
    +
    +DeleteAllPlots()
    +
    +# Test Mesh Plot auto
    +AddPlot("Mesh", "quadmesh2d")
    +DrawPlots()
    +Test("ops_dualmesh_mesh_plot_2d_00")
    +
    +AddOperator("DualMesh")
    +DrawPlots()
    +Test("ops_dualmesh_mesh_plot_2d_01")
    +
    +AddOperator("DualMesh")
    +DrawPlots()
    +Test("ops_dualmesh_mesh_plot_2d_02")
    +DeleteAllPlots()
    +
    +# Test 3D Case
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +view = GetView3D()
    +view.viewNormal = (-0.5, 0.5, 0.7172)
    +SetView3D(view)
    +DrawPlots()
    +Test("ops_dual_mesh_pc_plot_3d_d_00")
    +
    +# Test explicit Zones to Nodes
    +AddOperator("DualMesh")
    +DualMeshAtts = DualMeshAttributes()
    +DualMeshAtts.mode = DualMeshAtts.ZonesToNodes
    +SetOperatorOptions(DualMeshAtts)
    +DrawPlots()
    +Test("ops_dual_mesh_pc_plot_3d_d_01")
    +
    +# Test explicit Nodes to Zones (round trip)
    +AddOperator("DualMesh")
    +DualMeshAtts = DualMeshAttributes()
    +DualMeshAtts.mode = DualMeshAtts.NodesToZones
    +SetOperatorOptions(DualMeshAtts)
    +DrawPlots()
    +Test("ops_dual_mesh_pc_plot_3d_d_02")
    +
    +DeleteAllPlots()
    +
    +# Test Nodes to Zones <-> Zones to Nodes Round Trip
    +AddPlot("Pseudocolor", "t")
    +DrawPlots()
    +Test("ops_dual_mesh_pc_plot_3d_t_00")
    +
    +AddOperator("DualMesh")
    +DualMeshAtts = DualMeshAttributes()
    +DualMeshAtts.mode = DualMeshAtts.NodesToZones
    +SetOperatorOptions(DualMeshAtts)
    +DrawPlots()
    +Test("ops_dual_mesh_pc_plot_3d_t_01")
    +
    +AddOperator("DualMesh")
    +DualMeshAtts = DualMeshAttributes()
    +DualMeshAtts.mode = DualMeshAtts.ZonesToNodes
    +SetOperatorOptions(DualMeshAtts)
    +DrawPlots()
    +Test("ops_dual_mesh_pc_plot_3d_t_02")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_elevate.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_elevate.html new file mode 100644 index 000000000..6b14052ef --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_elevate.html @@ -0,0 +1,132 @@ + +Results for operators/elevate.py + +

    Results of VisIt Regression Test - operators/elevate

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    elevate010.000.00
    elevate020.000.00
    elevate030.000.00
    elevate040.000.00
    elevate050.000.00
    elevate060.000.00
    elevate070.000.00
    elevate080.000.00
    elevate090.000.00
    elevate100.000.00
    elevate110.000.00
    elevate120.000.00
    elevate130.000.00
    elevate140.000.00
    elevate150.000.00
    elevate160.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_elevate_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_elevate_py.html new file mode 100644 index 000000000..8edb1fc16 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_elevate_py.html @@ -0,0 +1,164 @@ +operators/elevate.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  elevate.py
    +#
    +#  Tests:      mesh      - 2D rectilinear
    +#                          3D rectilinear, multiple domain,
    +#                          2D curvilinear, multiple domain
    +#              plots     - pc, mesh, filled boundary
    +#              operators - elevate
    +#              selection - none
    +#
    +#  Defect ID:  '5379, '5934 '6260, '6768
    +#
    +#  Programmer: Hank Childs
    +#  Date:       February 3, 2005
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Tue Jun  7 14:16:02 PDT 2005
    +#    Add tests for lighting of slices after elevation.
    +#
    +#    Hank Childs, Tue Nov 15 07:17:22 PST 2005
    +#    Add tests for macro expressions as secondary variables.
    +#
    +#    Hank Childs, Thu Jan 10 15:52:00 PST 2008
    +#    Add test for recenter expression with material plot.
    +#
    +#    Hank Childs, Wed Jan 16 17:26:03 PST 2008
    +#    Add testing for the "zeroFlag".
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +#One zonal variable
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Elevate")
    +DrawPlots()
    +v = GetView3D()
    +v.viewNormal = (-0.707, 0, 0.707)
    +SetView3D(v)
    +Test("elevate01")
    +
    +#One nodal variable
    +ChangeActivePlotsVar("d")
    +Test("elevate02")
    +
    +elevate_atts = ElevateAttributes()
    +DefineScalarExpression("d_mod", "0.1*d")
    +elevate_atts.variable = "d_mod"
    +elevate_atts.useXYLimits = elevate_atts.Never
    +SetOperatorOptions(elevate_atts)
    +Test("elevate03")
    +
    +elevate_atts.useXYLimits = elevate_atts.Auto
    +SetOperatorOptions(elevate_atts)
    +Test("elevate04")
    +
    +#Primary variable zonal, Secondary variable zonal 
    +ChangeActivePlotsVar("p")
    +elevate_atts.variable = "d"
    +SetOperatorOptions(elevate_atts)
    +Test("elevate05")
    +
    +#Primary variable zonal, secondary nodal.
    +elevate_atts.variable = "u"
    +SetOperatorOptions(elevate_atts)
    +Test("elevate06")
    +
    +#Primary variable nodal, secondary nodal.
    +ChangeActivePlotsVar("v")
    +Test("elevate07")
    +
    +#Primary variable nodal, secondary zonal.
    +elevate_atts.variable = "p"
    +SetOperatorOptions(elevate_atts)
    +Test("elevate08")
    +
    +elevate_atts.useXYLimits = elevate_atts.Never
    +SetOperatorOptions(elevate_atts)
    +Test("elevate09")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Mesh", "quadmesh2d")
    +AddOperator("Elevate")
    +elevate_atts.variable = "p"
    +elevate_atts.useXYLimits = elevate_atts.Always
    +SetOperatorOptions(elevate_atts)
    +DrawPlots()
    +Test("elevate10")
    +
    +DeleteAllPlots()
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Elevate")
    +elevate_atts.variable = "u"
    +elevate_atts.useXYLimits = elevate_atts.Always
    +SetOperatorOptions(elevate_atts)
    +DrawPlots()
    +Test("elevate11")
    +
    +elevate_atts.useXYLimits = elevate_atts.Never
    +SetOperatorOptions(elevate_atts)
    +DrawPlots()
    +Test("elevate12")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Slice")
    +AddOperator("Elevate")
    +DrawPlots()
    +Test("elevate13")
    +
    +# Testing expressions.  Test that macro expressions work as secondary
    +# variables ('6768).
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +DefineScalarExpression("vv", "hgslice+polar_radius(Mesh2D)")
    +AddPlot("Pseudocolor", "hgslice")
    +AddOperator("Elevate")
    +elevate_atts.variable = "vv"
    +elevate_atts.useXYLimits = elevate_atts.Always
    +SetOperatorOptions(elevate_atts)
    +DrawPlots()
    +Test("elevate14")
    +
    +# Filled boundary with recentered expression
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +DefineScalarExpression("d2", "recenter(d)")
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Elevate")
    +elevate_atts.variable = "d2"
    +elevate_atts.useXYLimits = elevate_atts.Always
    +SetOperatorOptions(elevate_atts)
    +DrawPlots()
    +Test("elevate15")
    +
    +# Boundary plots that are elevated by zero height (no variable). '8346.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("ucd2d.silo"))
    +
    +AddPlot("Boundary", "mat1")
    +AddOperator("Elevate")
    +e = ElevateAttributes()
    +e.zeroFlag = 1
    +SetOperatorOptions(e)
    +DrawPlots()
    +v = GetView3D()
    +v.viewNormal = (0.5, 0.5, 0.5)
    +SetView3D(v)
    +Test("elevate16")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ex_surf.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ex_surf.html new file mode 100644 index 000000000..1b96ddc9a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ex_surf.html @@ -0,0 +1,56 @@ + +Results for operators/ex_surf.py + +

    Results of VisIt Regression Test - operators/ex_surf

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_ex_surf_010.000.00
    ops_ex_surf_020 modifications totalling 0 lines
    ops_ex_surf_030 modifications totalling 0 lines
    ops_ex_surf_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ex_surf_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ex_surf_py.html new file mode 100644 index 000000000..b90417a22 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ex_surf_py.html @@ -0,0 +1,51 @@ +operators/ex_surf.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  external_surface.py
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 24, 2005
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("ExternalSurface")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.707, 0, 0.707)
    +v.nearPlane = 0
    +SetView3D(v)
    +
    +Test("ops_ex_surf_01")
    +
    +Query("NumZones", "actual")
    +t = GetQueryOutputString()
    +TestText("ops_ex_surf_02", t)
    +
    +es = ExternalSurfaceAttributes()
    +es.removeGhosts = 1
    +SetOperatorOptions(es)
    +
    +Query("NumZones", "actual")
    +t = GetQueryOutputString()
    +TestText("ops_ex_surf_03", t)
    +
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("ucd2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("ExternalSurface")
    +DrawPlots()
    +Test("ops_ex_surf_04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_explode.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_explode.html new file mode 100644 index 000000000..cd20b9229 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_explode.html @@ -0,0 +1,184 @@ + +Results for operators/explode.py + +

    Results of VisIt Regression Test - operators/explode

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    explode_globe_000.000.00
    explode_globe_010.000.00
    explode_globe_020.000.00
    explode_globe_030.000.00
    explode_ucd3d_000.000.00
    explode_ucd3d_020.000.00
    explode_ucd3d_030.000.00
    explode_ucd3d_040.000.00
    explode_ucd3d_050.000.00
    explode_ucd3d_060.000.00
    explode_ucd3d_070.000.00
    explode_ucd3d_080.000.00
    explode_rect3d_000.000.00
    explode_multi_rect3d_000.000.00
    explode_tire_000.000.00
    explode_tire_010.000.00
    explode_tire_020.000.00
    explode_quad_disk_000.000.00
    recenter_000.000.00
    recenter_010.000.00
    recenter_020.000.00
    explode_domains_000.000.00
    explode_domains_010.000.00
    explode_repeat_labels_000.010.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_explode_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_explode_py.html new file mode 100644 index 000000000..2d1f16d03 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_explode_py.html @@ -0,0 +1,580 @@ +operators/explode.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  explode.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, single domain, 
    +#                           multi domain
    +#                          3D unstructured, single domain
    +#                          3D curvilinear, single domain
    +#                          2D unstructured, single domain
    +#              plots     - filled boundary, pseudocolor
    +#              operators - explode
    +#
    +#  Programmer: Alister Maguire
    +#  Date: Tue Jan  2 15:07:06 PST 2018
    +#
    +#  Modifications:
    +#
    +#      Alister Maguire, Wed Jan 17 15:28:46 PST 2018
    +#      Added tests of multi-domain data.    
    +#
    +#      Alister Maguire, Mon Jan 22 11:00:51 PST 2018
    +#      Changed explosion factors to account of scale update. 
    +#
    +#      Alister Maguire, Wed Feb 14 16:07:51 PST 2018
    +#      Updated tests with multiple explosions to be perfomed
    +#      by a single operator.   
    +#
    +#      Alister Maguire, Tue Feb 20 16:22:05 PST 2018
    +#      Added a 2d test with no materials. 
    +#
    +#      Alister Maguire, Wed May  2 12:54:43 PDT 2018
    +#      Added tests for recentering. 
    +#
    +#      Alister Maguire, Tue Sep 18 14:57:03 PDT 2018
    +#      Added tests for exploding domains. 
    +#
    +#      Alister Maguire, Mon Sep 24 13:32:04 PDT 2018
    +#      Added a test for handling repeat labels. 
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def unstructured_explosions():
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    AddPlot("FilledBoundary", "mat1", 1, 1)
    +    DrawPlots()
    +
    +    ResetView()
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0.0758172, -0.984828, -0.156097)
    +    View3DAtts.focus = (0, 0, 0)
    +    View3DAtts.viewUp = (-0.01047, 0.155753, -0.987741)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 17.3205
    +    View3DAtts.nearPlane = -34.641
    +    View3DAtts.farPlane = 34.641
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 0.826446
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0, 0, 0)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +    AddOperator("Explode")
    +    mainAtts = ExplodeAttributes()
    +
    +    # Explode one material by a plane
    +    atts1 = ExplodeAttributes()
    +    atts1.explosionType = atts1.Plane
    +    atts1.planePoint = (0, 0, 0)
    +    atts1.planeNorm = (1, 0, 0)
    +    atts1.materialExplosionFactor = 1
    +    atts1.material = "4"
    +    atts1.explodeMaterialCells = 1
    +    atts1.cellExplosionFactor = .8
    +    atts1.explosionPattern = atts1.Impact
    +    mainAtts.AddExplosions(atts1)
    +    SetOperatorOptions(mainAtts, 1)
    +    DrawPlots()
    +
    +    Test("explode_globe_00")
    +
    +    # Explode second material by plane
    +    atts2 = ExplodeAttributes()
    +    atts2.explosionType = atts2.Plane
    +    atts2.planePoint = (0, 0, 0)
    +    atts2.planeNorm = (0, 0, 1)
    +    atts2.materialExplosionFactor = 1
    +    atts2.material = "3"
    +    atts2.explodeMaterialCells = 1
    +    atts2.cellExplosionFactor = .8
    +    atts2.explosionPattern = atts2.Impact
    +    mainAtts.AddExplosions(atts2)
    +    SetOperatorOptions(mainAtts, 1)
    +    DrawPlots()
    +
    +    Test("explode_globe_01")
    +
    +    # Explode third material by plane
    +    atts3 = ExplodeAttributes()
    +    atts3.explosionType = atts3.Plane
    +    atts3.planePoint = (0, 0, 0)
    +    atts3.planeNorm = (0, 0, 1)
    +    atts3.materialExplosionFactor = 1
    +    atts3.material = "1"
    +    atts3.explodeMaterialCells = 1
    +    atts3.cellExplosionFactor = .3
    +    atts3.explosionPattern = atts3.Impact
    +    mainAtts.AddExplosions(atts3)
    +    SetOperatorOptions(mainAtts, 1)
    +    DrawPlots()
    +
    +    Test("explode_globe_02")
    +
    +    # Explode material by point
    +    atts4 = ExplodeAttributes()
    +    atts4.explosionType = atts4.Point
    +    atts4.explosionPoint = (0, 0, 0)
    +    atts4.materialExplosionFactor = 1
    +    atts4.material = "2"
    +    atts4.explodeMaterialCells = 1
    +    atts4.cellExplosionFactor = .1
    +    atts4.explosionPattern = atts4.Impact  # Impact, Scatter
    +    mainAtts.AddExplosions(atts4)
    +    SetOperatorOptions(mainAtts, 1)
    +    DrawPlots()
    +    Test("explode_globe_03")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +def curvilinear_explosions():
    +    OpenDatabase(silo_data_path("ucd3d.silo"))
    +    AddPlot("Pseudocolor", "v", 1, 1)
    +    AddOperator("Explode", 1)
    +    DrawPlots()
    +
    +    ResetView()
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (-0.706303, 0.44773, 0.548338)
    +    View3DAtts.focus = (0, 3.41092, 10)
    +    View3DAtts.viewUp = (0.262178, 0.884949, -0.384874)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 17.0459
    +    View3DAtts.nearPlane = -34.641
    +    View3DAtts.farPlane = 34.641
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 0.926446
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0, 3.41092, 10)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +    # Explode by cylinder without radius 
    +    ExplodeAtts = ExplodeAttributes()
    +    ExplodeAtts.explosionType = ExplodeAtts.Cylinder
    +    ExplodeAtts.cylinderPoint1 = (-5, 0, 20)
    +    ExplodeAtts.cylinderPoint2 = (5, 5, 0)
    +    ExplodeAtts.materialExplosionFactor = 1
    +    ExplodeAtts.material = "1"
    +    ExplodeAtts.cylinderRadius = 0
    +    ExplodeAtts.explodeMaterialCells = 1
    +    ExplodeAtts.cellExplosionFactor = 1
    +    ExplodeAtts.explosionPattern = ExplodeAtts.Impact
    +    ExplodeAtts.explodeAllCells = 0
    +    SetOperatorOptions(ExplodeAtts, 1)
    +
    +    Test("explode_ucd3d_00")
    +
    +    # Explode by plane
    +    ExplodeAtts = ExplodeAttributes()
    +    ExplodeAtts.explosionType = ExplodeAtts.Plane
    +    ExplodeAtts.explodeMaterialCells = 0
    +    ExplodeAtts.planePoint = (0, 2, 20)
    +    ExplodeAtts.planeNorm = (0, 1, 0)
    +    ExplodeAtts.materialExplosionFactor = 1
    +    ExplodeAtts.material = "4"
    +    ExplodeAtts.explosionPattern = ExplodeAtts.Impact
    +    ExplodeAtts.explodeAllCells = 0
    +    SetOperatorOptions(ExplodeAtts, 1)
    +
    +    Test("explode_ucd3d_02")
    +
    +    # Explode all cells by point (impact)
    +    ExplodeAtts = ExplodeAttributes()
    +    ExplodeAtts.explosionType = ExplodeAtts.Point
    +    ExplodeAtts.explosionPoint = (0, 0, 0)
    +    ExplodeAtts.materialExplosionFactor = 1
    +    ExplodeAtts.material = "1"
    +    ExplodeAtts.cellExplosionFactor = 1
    +    ExplodeAtts.explosionPattern = ExplodeAtts.Impact
    +    ExplodeAtts.explodeAllCells = 1
    +    SetOperatorOptions(ExplodeAtts, 1)
    +
    +    Test("explode_ucd3d_03")
    +
    +    # Explode all cells by point (impact)
    +    ExplodeAtts = ExplodeAttributes()
    +    ExplodeAtts.explosionType = ExplodeAtts.Point
    +    ExplodeAtts.explosionPoint = (0, 3, 10)
    +    ExplodeAtts.materialExplosionFactor = 1
    +    ExplodeAtts.material = "1"
    +    ExplodeAtts.cellExplosionFactor = 1
    +    ExplodeAtts.explosionPattern = ExplodeAtts.Impact
    +    ExplodeAtts.explodeAllCells = 1
    +    SetOperatorOptions(ExplodeAtts, 1)
    +
    +    Test("explode_ucd3d_04")
    +
    +    # Explode all cells by point (scatter)
    +    ExplodeAtts = ExplodeAttributes()
    +    ExplodeAtts.explosionType = ExplodeAtts.Point
    +    ExplodeAtts.explosionPoint = (0, 3, 10)
    +    ExplodeAtts.materialExplosionFactor = 1
    +    ExplodeAtts.material = "1"
    +    ExplodeAtts.cellExplosionFactor = 3
    +    ExplodeAtts.explosionPattern = ExplodeAtts.Scatter
    +    ExplodeAtts.explodeAllCells = 1
    +    SetOperatorOptions(ExplodeAtts, 1)
    +
    +    Test("explode_ucd3d_05")
    +
    +    # Explode material by point (scatter)
    +    ExplodeAtts = ExplodeAttributes()
    +    ExplodeAtts.explosionType = ExplodeAtts.Point
    +    ExplodeAtts.explosionPoint = (0, 0, 0)
    +    ExplodeAtts.materialExplosionFactor = 1
    +    ExplodeAtts.material = "1"
    +    ExplodeAtts.explodeMaterialCells = 1
    +    ExplodeAtts.cellExplosionFactor = 1.5
    +    ExplodeAtts.explosionPattern = ExplodeAtts.Scatter
    +    ExplodeAtts.explodeAllCells = 0
    +    SetOperatorOptions(ExplodeAtts, 1)
    +
    +    Test("explode_ucd3d_06")
    +
    +    # Explode material by point
    +    ExplodeAtts = ExplodeAttributes()
    +    ExplodeAtts.explosionType = ExplodeAtts.Point
    +    ExplodeAtts.explosionPoint = (0, 3, 10)
    +    ExplodeAtts.materialExplosionFactor = 1
    +    ExplodeAtts.material = "1"
    +    ExplodeAtts.cylinderRadius = 0
    +    ExplodeAtts.explodeMaterialCells = 1
    +    ExplodeAtts.cellExplosionFactor = 1.5
    +    ExplodeAtts.explosionPattern = ExplodeAtts.Scatter
    +    ExplodeAtts.explodeAllCells = 0
    +    SetOperatorOptions(ExplodeAtts, 1)
    +
    +    Test("explode_ucd3d_07")
    +
    +    # Explode all cells by cylinder with radius
    +    ExplodeAtts = ExplodeAttributes()
    +    ExplodeAtts.explosionType = ExplodeAtts.Cylinder
    +    ExplodeAtts.cylinderPoint1 = (0, 1, 10)
    +    ExplodeAtts.cylinderPoint2 = (0, 0, 10)
    +    ExplodeAtts.cylinderRadius = 4
    +    ExplodeAtts.cellExplosionFactor = .4
    +    ExplodeAtts.explosionPattern = ExplodeAtts.Impact
    +    ExplodeAtts.explodeAllCells = 1
    +    SetOperatorOptions(ExplodeAtts, 1)
    +
    +    Test("explode_ucd3d_08")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +def rectilinear_explosions():
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +    AddPlot("FilledBoundary", "mat1")
    +
    +    ResetView()
    +    RecenterView()
    +
    +    AddOperator("Explode")
    +    mainAtts = ExplodeAttributes()
    +    DrawPlots()
    +
    +    atts1 = ExplodeAttributes()
    +    atts1.explosionPoint = (1, 0, 0)
    +    atts1.materialExplosionFactor = 2
    +    atts1.material = "7"
    +    mainAtts.AddExplosions(atts1)
    +    SetOperatorOptions(mainAtts, 1)
    +
    +    atts2 = ExplodeAttributes()
    +    atts2.explosionPoint = (0, 0, 1)
    +    atts2.materialExplosionFactor = 2
    +    atts2.material = "5"
    +    mainAtts.AddExplosions(atts2)
    +    SetOperatorOptions(mainAtts, 1)
    +
    +    Test("explode_rect3d_00")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +def multi_rectilinear_explosions():
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +    AddPlot("FilledBoundary", "mat1")
    +
    +    ResetView()
    +    RecenterView()
    +
    +    AddOperator("Explode")
    +    DrawPlots()
    +    mainAtts = ExplodeAttributes()
    +
    +    atts1 = ExplodeAttributes()
    +    atts1.explosionPoint = (1, 0, 0)
    +    atts1.materialExplosionFactor = 2
    +    atts1.material = "2"
    +    mainAtts.AddExplosions(atts1)
    +    SetOperatorOptions(mainAtts, 1)
    +
    +    atts2 = ExplodeAttributes()
    +    atts2.explosionPoint = (0, 0, 1)
    +    atts2.materialExplosionFactor = 2
    +    atts2.material = "3"
    +    mainAtts.AddExplosions(atts2)
    +    SetOperatorOptions(mainAtts, 1)
    +
    +    Test("explode_multi_rect3d_00")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +def multi_tire():
    +    OpenDatabase(silo_data_path("tire.silo"))
    +    AddPlot("FilledBoundary", "Materials")
    +
    +    ResetView()
    +    RecenterView()
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (1.0, 0.0, 0.0)
    +    View3DAtts.focus = (0, 0, 0)
    +    View3DAtts.viewUp = (0, 1, 0)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 8.0
    +    View3DAtts.nearPlane = -0.5
    +    View3DAtts.farPlane = 0.5
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 0.826446
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0, 0, 0)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +
    +    AddOperator("Explode")
    +    DrawPlots()
    +    mainAtts = ExplodeAttributes()
    +
    +    # If domains are being treated correctly, this
    +    # should not produce an explosion. 
    +    atts1 = ExplodeAttributes()
    +    atts1.materialExplosionFactor = 500
    +    atts1.material = "1 Rubber"
    +    mainAtts.AddExplosions(atts1)
    +    SetOperatorOptions(mainAtts, 1)
    +
    +    Test("explode_tire_00")
    +
    +    atts2 = ExplodeAttributes()
    +    atts2.materialExplosionFactor = 0
    +    atts2.explodeMaterialCells = 1
    +    atts2.cellExplosionFactor = 1
    +    atts2.explosionType = atts2.Plane
    +    atts2.planePoint = (0, 0, 0)
    +    atts2.planeNorm = (0, 1, 0)
    +    atts2.material = "1 Rubber"
    +    mainAtts.AddExplosions(atts2)
    +    SetOperatorOptions(mainAtts, 1)
    +
    +    Test("explode_tire_01")
    +
    +    atts3 = ExplodeAttributes()
    +    atts3.materialExplosionFactor = 1
    +    atts3.explodeMaterialCells = 0
    +    atts3.cellExplosionFactor = 0
    +    atts3.explosionType = atts3.Point
    +    atts3.explosionPoint = (0, 0, 60)
    +    atts3.material = "2 Steel"
    +    mainAtts.AddExplosions(atts3)
    +    SetOperatorOptions(mainAtts, 1)
    +
    +    Test("explode_tire_02")
    +    ResetView()
    +    DeleteAllPlots()
    +
    +def TwoDimNoMat():
    +    OpenDatabase(silo_data_path("quad_disk.silo"))
    +    AddPlot("Pseudocolor", "sphElevD_on_mesh")
    +
    +    ResetView()
    +    RecenterView()
    +
    +    AddOperator("Explode")
    +    DrawPlots()
    +
    +    atts = ExplodeAttributes()
    +    atts.explodeAllCells  = 1
    +    atts.explosionPattern = atts.Scatter
    +    SetOperatorOptions(atts)
    +
    +    Test("explode_quad_disk_00")
    +    ResetView()
    +    DeleteAllPlots()
    +
    +def TestRecenter():
    +    #
    +    # Recentering is enabled when exploding all cells,
    +    # and it allows a cell to be displaced even when 
    +    # its center lies on an explode origin. 
    +    #
    +    OpenDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +    AddPlot("Pseudocolor", "3D/z1")
    +
    +    ResetView()
    +    RecenterView()
    +
    +    AddOperator("Explode")
    +    DrawPlots()
    +
    +    #
    +    # Test when a cell center lies on an explode
    +    # cylinder with radius 0. 
    +    #
    +    atts = ExplodeAttributes()
    +    atts.explodeAllCells = 1
    +    atts.explosionType   = atts.Cylinder
    +    atts.cylinderPoint1  = (0, .5, .5)
    +    atts.cylinderPoint2  = (1, .5, .5)
    +    SetOperatorOptions(atts)
    +
    +    Test("recenter_00")
    +
    +    #
    +    # Test when a cell center lies on an explode
    +    # point.
    +    #
    +    atts = ExplodeAttributes()
    +    atts.explodeAllCells = 1
    +    atts.explosionType   = atts.Point
    +    atts.explosionPoint  = (.5, .5, .5)
    +    SetOperatorOptions(atts)
    +
    +    Test("recenter_01")
    +
    +    #
    +    # Test when a cell center lies on an explode
    +    # plane.
    +    #
    +    atts = ExplodeAttributes()
    +    atts.explodeAllCells = 1
    +    atts.explosionType   = atts.Plane
    +    atts.planePoint      = (1.5, 0, 0)
    +    atts.planeNorm       = (1, 0, 0)
    +    SetOperatorOptions(atts)
    +
    +    Test("recenter_02")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +
    +def TestDomainExplode():
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +    AddPlot("Subset", "domains(mesh1)")
    +
    +    ResetView()
    +    RecenterView()
    +
    +    #
    +    # Test exploding full mesh domains. 
    +    #
    +    AddOperator("Explode")
    +    expAtts = ExplodeAttributes()
    +    expAtts.explosionType = expAtts.Point
    +    expAtts.explosionPoint = (0, 0, 0)
    +    expAtts.materialExplosionFactor = 1.2
    +    expAtts.material = "15"
    +    expAtts.explodeMaterialCells = 0
    +    expAtts.explosionPattern = expAtts.Impact
    +    SetOperatorOptions(expAtts, 1)
    +    DrawPlots()
    +    Test("explode_domains_00")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +    AddPlot("Subset", "domains(mesh1_front)")
    +
    +    #
    +    # Test exploding a subset of mesh domains. 
    +    #
    +    AddOperator("Explode")
    +    expAtts = ExplodeAttributes()
    +    expAtts.explosionType = expAtts.Point
    +    expAtts.explosionPoint = (0, 0, 0)
    +    expAtts.materialExplosionFactor = 1.2
    +    expAtts.material = "8"
    +    expAtts.explodeMaterialCells = 0
    +    expAtts.explosionPattern = expAtts.Impact
    +    SetOperatorOptions(expAtts, 1)
    +    DrawPlots()
    +    Test("explode_domains_01")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +def TestRepeatMatLabels():
    +    #
    +    # Under certain circumstances, the explode operator
    +    # will recieve repeat labels that need to be condensed. 
    +    # Make sure we can handle this. 
    +    #
    +    OpenDatabase(silo_data_path("tire.silo"))
    +    AddPlot("FilledBoundary", "Materials")
    +
    +    ResetView()
    +    RecenterView()
    +
    +    #
    +    # First, add a reflect operator, which will create
    +    # repeat labels if used on multi domain data.  
    +    #
    +    AddOperator("Reflect")
    +
    +    #
    +    # Test exploding full mesh domains. 
    +    #
    +    AddOperator("Explode")
    +    expAtts = ExplodeAttributes()
    +    expAtts.explosionType = expAtts.Point
    +    expAtts.explosionPoint = (0, 0, 10)
    +    expAtts.materialExplosionFactor = 1.2
    +    expAtts.material = "1 Rubber"
    +    expAtts.explodeMaterialCells = 1
    +    expAtts.explosionPattern = expAtts.Impact
    +    SetOperatorOptions(expAtts, 1)
    +    DrawPlots()
    +    Test("explode_repeat_labels_00")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +
    +def Main():
    +    unstructured_explosions()
    +    curvilinear_explosions()
    +    rectilinear_explosions()
    +    multi_rectilinear_explosions()
    +    multi_tire()
    +    TwoDimNoMat()
    +    TestRecenter()
    +    TestDomainExplode()
    +    TestRepeatMatLabels()
    +
    +
    +Main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_extrudeStacked.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_extrudeStacked.html new file mode 100644 index 000000000..6fda42540 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_extrudeStacked.html @@ -0,0 +1,339 @@ + +Results for operators/extrudeStacked.py + +

    Results of VisIt Regression Test - operators/extrudeStacked

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Extrude stacked function
    Testing database = lines.vtk
    extrude_lines_v0_node_height0.000.00
    extrude_lines_v1_node_height0.000.00
    extrude_lines_v1_cell_height0.000.00
    extrude_lines_v2_node_height0.000.00
    extrude_lines_v2_cell_height0.000.00
    extrude_lines_v2_index0.000.00
    extrude_lines_v3_node_height0.000.00
    extrude_lines_v3_cell_height0.000.00
    extrude_lines_v3_index0.000.00
    extrude_lines_v4_node_height0.000.00
    extrude_lines_v4_cell_height0.000.00
    extrude_lines_v4_index0.000.00
    Testing database = polygons.vtk
    extrude_polygons_v0_node_height0.000.00
    extrude_polygons_v1_node_height0.000.00
    extrude_polygons_v1_cell_height0.000.00
    extrude_polygons_v2_node_height0.000.00
    extrude_polygons_v2_cell_height0.000.00
    extrude_polygons_v2_index0.000.00
    extrude_polygons_v3_node_height0.000.00
    extrude_polygons_v3_cell_height0.000.00
    extrude_polygons_v3_index0.000.00
    extrude_polygons_v4_node_height0.000.00
    extrude_polygons_v4_cell_height0.000.00
    extrude_polygons_v4_index0.000.00
    Testing database = rectilinear.vtk
    extrude_rectilinear_v0_node_height0.000.00
    extrude_rectilinear_v1_node_height0.000.00
    extrude_rectilinear_v1_cell_height0.000.00
    extrude_rectilinear_v2_node_height0.000.00
    extrude_rectilinear_v2_cell_height0.000.00
    extrude_rectilinear_v2_index0.000.00
    extrude_rectilinear_v3_node_height0.000.00
    extrude_rectilinear_v3_cell_height0.000.00
    extrude_rectilinear_v3_index0.000.00
    extrude_rectilinear_v4_node_height0.000.00
    extrude_rectilinear_v4_cell_height0.000.00
    extrude_rectilinear_v4_index0.000.00
    Testing database = structured.vtk
    extrude_structured_v0_node_height0.000.00
    extrude_structured_v1_node_height0.000.00
    extrude_structured_v1_cell_height0.000.00
    extrude_structured_v2_node_height0.000.00
    extrude_structured_v2_cell_height0.000.00
    extrude_structured_v2_index0.000.00
    extrude_structured_v3_node_height0.000.00
    extrude_structured_v3_cell_height0.000.00
    extrude_structured_v3_index0.000.00
    extrude_structured_v4_node_height0.000.00
    extrude_structured_v4_cell_height0.000.00
    extrude_structured_v4_index0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_extrudeStacked_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_extrudeStacked_py.html new file mode 100644 index 000000000..ef52c43f5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_extrudeStacked_py.html @@ -0,0 +1,283 @@ +operators/extrudeStacked.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  extrudeStacked.py
    +#
    +#  Tests:      operator   - Extrude Stacked
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       30 August 2023
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Wed Sep 20, 2023
    +#    Changed SetLocalView to retrieve the view via GetView3D() and only
    +#    change the viewNormal and viewUp, so that test images are larger.
    +#
    +# ----------------------------------------------------------------------------
    +
    +RequiredDatabasePlugin("VTK")
    +
    +# For local testing using the CLI
    +
    +#def data_path( db_name ):
    +#  db="/Users/allen/Projects/VisIt/git/visit/data/%s" %(db_name)
    +#  return db
    +
    +#def Test(case_name):
    +#   swatts = SaveWindowAttributes()
    +#   swatts.family = 0
    +#   swatts.fileName = "/Users/allen/Projects/VisIt/git/visit/data/%s" %(case_name)
    +#   SetSaveWindowAttributes(swatts)
    +#   SaveWindow()
    +#   return
    +
    +#def TestSection(tmpstr):
    +#   return
    +
    +#def Exit():
    +#   return
    +
    +# Set the local view
    +def SetLocalView():
    +  ResetView()
    +  #
    +  View3DAtts = GetView3D()
    +  View3DAtts.viewNormal = (0, -1, 0)
    +  View3DAtts.viewUp = (0, 0, 1)
    +  SetView3D(View3DAtts)
    +
    +# Open the database here and add a plot.
    +db=data_path("extrude_test_data/extrude_structured.vtk")
    +OpenDatabase(db)
    +
    +AddPlot("Pseudocolor", "V1", 1, 0)
    +AddOperator("ExtrudeStacked", 0)
    +SetActivePlots(0)
    +DrawPlots()
    +
    +PseudocolorAtts = PseudocolorAttributes()
    +PseudocolorAtts.renderSurfaces = 1
    +PseudocolorAtts.renderWireframe = 1
    +SetPlotOptions(PseudocolorAtts)
    +
    +SetLocalView()
    +
    +# Loop through all of the databases
    +databases=["lines", "polygons", "rectilinear", "structured" ]
    +
    +TestSection("Extrude stacked function")
    +for i in range(len(databases)):
    +  db=data_path("extrude_test_data/extrude_%s.vtk") %(databases[i])
    +  tmpstr="Testing database = %s.vtk" %(databases[i])
    +  TestSection(tmpstr)
    +  OpenDatabase(db)
    +  #
    +  # Replace the database from before with the one just openned.
    +  ReplaceDatabase(db)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("default")
    +  ExtrudeStackedAtts.visualVariableNames = ("default")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37)
    +  ExtrudeStackedAtts.extentScale = (1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.OriginalData
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v0_node_height" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37)
    +  ExtrudeStackedAtts.extentScale = (1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.NodeHeight
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v1_node_height" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37)
    +  ExtrudeStackedAtts.extentScale = (1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.CellHeight
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v1_cell_height" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1", "V2")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1", "V2")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37, -1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37, 1e+37)
    +  ExtrudeStackedAtts.extentScale = (1, 1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.NodeHeight
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v2_node_height" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1", "V2")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1", "V2")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37, -1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37, 1e+37)
    +  ExtrudeStackedAtts.extentScale = (1, 1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.CellHeight
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v2_cell_height" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1", "V2")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1", "V2")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37, -1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37, 1e+37)
    +  ExtrudeStackedAtts.extentScale = (1, 1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.VariableIndex
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v2_index" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1", "V2", "V3")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1", "V2", "V3")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37, -1e+37, -1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37, 1e+37, 1e+37)
    +  ExtrudeStackedAtts.extentScale = (1, 1, 1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.NodeHeight
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v3_node_height" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1", "V2", "V3")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1", "V2", "V3")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37, -1e+37, -1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37, 1e+37, 1e+37)
    +  ExtrudeStackedAtts.extentScale = (1, 1, 1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.CellHeight
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v3_cell_height" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1", "V2", "V3")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1", "V2", "V3")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37, -1e+37, -1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37, 1e+37, 1e+37)
    +  ExtrudeStackedAtts.extentScale = (1, 1, 1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.VariableIndex
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v3_index" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1", "V2", "V3", "V4")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1", "V2", "V3", "V4")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37, -1e+37, -1e+37, -1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37, 1e+37, 1e+37, 1e+37)
    +  ExtrudeStackedAtts.extentScale = (1, 1, 1, 1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.NodeHeight
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v4_node_height" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1", "V2", "V3", "V4")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1", "V2", "V3", "V4")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37, -1e+37, -1e+37, -1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37, 1e+37, 1e+37, 1e+37)
    +  ExtrudeStackedAtts.extentScale = (1, 1, 1, 1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.CellHeight
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v4_cell_height" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1", "V2", "V3", "V4")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1", "V2", "V3", "V4")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37, -1e+37, -1e+37, -1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37, 1e+37, 1e+37, 1e+37)
    +  ExtrudeStackedAtts.extentScale = (1, 1, 1, 1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.VariableIndex
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v4_index" %(databases[i])
    +  Test(tmpstr)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_geometry.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_geometry.html new file mode 100644 index 000000000..17ee7b949 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_geometry.html @@ -0,0 +1,166 @@ + +Results for operators/ic_geometry.py + +

    Results of VisIt Regression Test - operators/ic_geometry

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ic_geometry_010.040.00
    ic_geometry_020.030.00
    ic_geometry_030.030.00
    ic_geometry_040.030.00
    ic_geometry_050.090.00
    ic_geometry_060.090.00
    ic_geometry_070.120.00
    ic_geometry_080.120.00
    ic_geometry_090.230.00
    ic_geometry_104.790.07
    ic_geometry_114.790.07
    ic_geometry_124.790.07
    ic_geometry_137.260.05
    ic_geometry_149.080.06
    ic_geometry_crop_10.000.00
    ic_geometry_crop_20.000.00
    ic_geometry_crop_30.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_geometry_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_geometry_py.html new file mode 100644 index 000000000..14849b51c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_geometry_py.html @@ -0,0 +1,379 @@ +operators/ic_geometry.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ic_geometry.py
    +#
    +#  Tests:      operator      - integralcurve
    +#              plot          - pseudocolor
    +#
    +#  Defect ID:  -
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       March 10, 2016
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Tue Sep 29 09:17:57 PDT 2020
    +#    Turned off IC warnings.
    +#
    +#    Eddie Rusu, Tue Apr 13 12:08:59 PDT 2021
    +#    Changed Pseudocolor CurrentPlot to ActualData.
    +#
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +AddPlot("Pseudocolor", "operators/IntegralCurve/grad", 1, 0)
    +
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.270729, 0.624198, 0.732859)
    +View3DAtts.focus = (0.496062, 0.99603, 0.496062)
    +View3DAtts.viewUp = (-0.0922782, 0.774611, -0.62567)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 12.1829
    +View3DAtts.nearPlane = -24.3658
    +View3DAtts.farPlane = 24.3658
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +SetView3D(View3DAtts)
    +
    +PseudocolorAtts = PseudocolorAttributes()
    +PseudocolorAtts.scaling = PseudocolorAtts.Linear  # Linear, Log, Skew
    +PseudocolorAtts.skewFactor = 1
    +PseudocolorAtts.limitsMode = PseudocolorAtts.OriginalData  # OriginalData, ActualData
    +PseudocolorAtts.minFlag = 0
    +PseudocolorAtts.min = 0
    +PseudocolorAtts.maxFlag = 0
    +PseudocolorAtts.max = 1
    +PseudocolorAtts.centering = PseudocolorAtts.Natural  # Natural, Nodal, Zonal
    +PseudocolorAtts.colorTableName = "hot"
    +PseudocolorAtts.invertColorTable = 0
    +PseudocolorAtts.opacityType = PseudocolorAtts.FullyOpaque  # ColorTable, FullyOpaque, Constant, Ramp, VariableRange
    +PseudocolorAtts.opacityVariable = ""
    +PseudocolorAtts.opacity = 1
    +PseudocolorAtts.opacityVarMin = 0
    +PseudocolorAtts.opacityVarMax = 1
    +PseudocolorAtts.opacityVarMinFlag = 0
    +PseudocolorAtts.opacityVarMaxFlag = 0
    +PseudocolorAtts.pointSize = 0.05
    +PseudocolorAtts.pointType = PseudocolorAtts.Point  # Box, Axis, Icosahedron, Octahedron, Tetrahedron, SphereGeometry, Point, Sphere
    +PseudocolorAtts.pointSizeVarEnabled = 0
    +PseudocolorAtts.pointSizeVar = "default"
    +PseudocolorAtts.pointSizePixels = 2
    +PseudocolorAtts.lineType = PseudocolorAtts.Tube  # Line, Tube, Ribbon
    +PseudocolorAtts.lineWidth = 0
    +PseudocolorAtts.tubeResolution = 100
    +PseudocolorAtts.tubeRadiusSizeType = PseudocolorAtts.Absolute  # Absolute, FractionOfBBox
    +PseudocolorAtts.tubeRadiusAbsolute = 0.1
    +PseudocolorAtts.tubeRadiusBBox = 0.005
    +PseudocolorAtts.tubeRadiusVarEnabled = 0
    +PseudocolorAtts.tubeRadiusVar = ""
    +PseudocolorAtts.tubeRadiusVarRatio = 10
    +PseudocolorAtts.tailStyle = PseudocolorAtts.Spheres  # None, Spheres, Cones
    +PseudocolorAtts.headStyle = PseudocolorAtts.NONE  # None, Spheres, Cones
    +PseudocolorAtts.endPointRadiusSizeType = PseudocolorAtts.Absolute  # Absolute, FractionOfBBox
    +PseudocolorAtts.endPointRadiusAbsolute = 0.3
    +PseudocolorAtts.endPointRadiusBBox = 0.005
    +PseudocolorAtts.endPointResolution = 100
    +PseudocolorAtts.endPointRatio = 2
    +PseudocolorAtts.endPointRadiusVarEnabled = 0
    +PseudocolorAtts.endPointRadiusVar = ""
    +PseudocolorAtts.endPointRadiusVarRatio = 10
    +PseudocolorAtts.renderSurfaces = 1
    +PseudocolorAtts.renderWireframe = 0
    +PseudocolorAtts.renderPoints = 0
    +PseudocolorAtts.smoothingLevel = 0
    +PseudocolorAtts.legendFlag = 1
    +PseudocolorAtts.lightingFlag = 1
    +PseudocolorAtts.wireframeColor = (0, 0, 0, 0)
    +PseudocolorAtts.pointColor = (0, 0, 0, 0)
    +SetPlotOptions(PseudocolorAtts)
    +
    +IntegralCurveAtts = IntegralCurveAttributes()
    +IntegralCurveAtts.sourceType = IntegralCurveAtts.SpecifiedPlane  # SpecifiedPoint, PointList, SpecifiedLine, Circle, SpecifiedPlane, SpecifiedSphere, SpecifiedBox, Selection, FieldData
    +IntegralCurveAtts.pointSource = (0, 0, 0)
    +IntegralCurveAtts.lineStart = (0, 0, 0)
    +IntegralCurveAtts.lineEnd = (1, 0, 0)
    +IntegralCurveAtts.planeOrigin = (0.5, 1, 0.5)
    +IntegralCurveAtts.planeNormal = (0, 1, 0)
    +IntegralCurveAtts.planeUpAxis = (1, 0, 0)
    +IntegralCurveAtts.radius = 1
    +IntegralCurveAtts.sphereOrigin = (0, 0, 0)
    +IntegralCurveAtts.boxExtents = (0, 1, 0, 1, 0, 1)
    +IntegralCurveAtts.useWholeBox = 1
    +IntegralCurveAtts.pointList = (0, 0, 0, 1, 0, 0, 0, 1, 0)
    +IntegralCurveAtts.fieldData = ()
    +IntegralCurveAtts.sampleDensity0 = 5
    +IntegralCurveAtts.sampleDensity1 = 5
    +IntegralCurveAtts.sampleDensity2 = 2
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.TimeAbsolute  # Solid, SeedPointID, Speed, Vorticity, ArcLength, TimeAbsolute, TimeRelative, AverageDistanceFromSeed, CorrelationDistance, Difference, Variable
    +IntegralCurveAtts.dataVariable = ""
    +IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Both  # Forward, Backward, Both, ForwardDirectionless, BackwardDirectionless, BothDirectionless
    +IntegralCurveAtts.maxSteps = 100000
    +IntegralCurveAtts.terminateByDistance = 0
    +IntegralCurveAtts.termDistance = 10
    +IntegralCurveAtts.terminateByTime = 1
    +IntegralCurveAtts.termTime = 200
    +IntegralCurveAtts.maxStepLength = 0.1
    +IntegralCurveAtts.limitMaximumTimestep = 1
    +IntegralCurveAtts.maxTimeStep = 0.02
    +IntegralCurveAtts.relTol = 1e-06
    +IntegralCurveAtts.absTolSizeType = IntegralCurveAtts.FractionOfBBox  # Absolute, FractionOfBBox
    +IntegralCurveAtts.absTolAbsolute = 1e-06
    +IntegralCurveAtts.absTolBBox = 1e-07
    +IntegralCurveAtts.fieldType = IntegralCurveAtts.Default  # Default, FlashField, M3DC12DField, M3DC13DField, Nek5000Field, NektarPPField
    +IntegralCurveAtts.fieldConstant = 1
    +IntegralCurveAtts.velocitySource = (0, 0, 0)
    +IntegralCurveAtts.integrationType = IntegralCurveAtts.AdamsBashforth  # Euler, Leapfrog, DormandPrince, AdamsBashforth, RK4, M3DC12DIntegrator
    +IntegralCurveAtts.parallelizationAlgorithmType = IntegralCurveAtts.VisItSelects  # LoadOnDemand, ParallelStaticDomains, ManagerWorker, VisItSelects
    +IntegralCurveAtts.maxProcessCount = 10
    +IntegralCurveAtts.maxDomainCacheSize = 3
    +IntegralCurveAtts.workGroupSize = 32
    +IntegralCurveAtts.pathlines = 0
    +IntegralCurveAtts.pathlinesOverrideStartingTimeFlag = 0
    +IntegralCurveAtts.pathlinesOverrideStartingTime = 0
    +IntegralCurveAtts.pathlinesPeriod = 0
    +IntegralCurveAtts.pathlinesCMFE = IntegralCurveAtts.POS_CMFE  # CONN_CMFE, POS_CMFE
    +IntegralCurveAtts.displayGeometry = IntegralCurveAtts.Lines  # Lines, Tubes, Ribbons
    +IntegralCurveAtts.cropBeginFlag = 0
    +IntegralCurveAtts.cropBegin = 0
    +IntegralCurveAtts.cropEndFlag = 0
    +IntegralCurveAtts.cropEnd = 0
    +IntegralCurveAtts.cropValue = IntegralCurveAtts.Time  # Distance, Time, StepNumber
    +IntegralCurveAtts.sampleDistance0 = 18
    +IntegralCurveAtts.sampleDistance1 = 18
    +IntegralCurveAtts.sampleDistance2 = 10
    +IntegralCurveAtts.fillInterior = 1
    +IntegralCurveAtts.randomSamples = 0
    +IntegralCurveAtts.randomSeed = 0
    +IntegralCurveAtts.numberOfRandomSamples = 1
    +IntegralCurveAtts.issueAdvectionWarnings = 1
    +IntegralCurveAtts.issueBoundaryWarnings = 1
    +IntegralCurveAtts.issueTerminationWarnings = 1
    +IntegralCurveAtts.issueStepsizeWarnings = 1
    +IntegralCurveAtts.issueStiffnessWarnings = 1
    +IntegralCurveAtts.issueCriticalPointsWarnings = 1
    +IntegralCurveAtts.criticalPointThreshold = 0.001
    +IntegralCurveAtts.correlationDistanceAngTol = 5
    +IntegralCurveAtts.correlationDistanceMinDistAbsolute = 1
    +IntegralCurveAtts.correlationDistanceMinDistBBox = 0.005
    +IntegralCurveAtts.correlationDistanceMinDistType = IntegralCurveAtts.FractionOfBBox  # Absolute, FractionOfBBox
    +IntegralCurveAtts.selection = ""
    +
    +# Test coloring options
    +
    +SetOperatorOptions(IntegralCurveAtts)
    +DrawPlots()
    +Test( "ic_geometry_01" )
    +
    +PseudocolorAtts.endPointRadiusSizeType = PseudocolorAtts.FractionOfBBox
    +PseudocolorAtts.endPointRadiusBBox = 0.03
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_02" )
    +
    +PseudocolorAtts.endPointRadiusSizeType = PseudocolorAtts.Absolute
    +PseudocolorAtts.endPointRadiusAbsolute = 0.6
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_03" )
    +
    +PseudocolorAtts.lineType = PseudocolorAtts.Tube
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_04" )
    +
    +PseudocolorAtts.tubeRadiusBBox = 0.01
    +PseudocolorAtts.tubeRadiusSizeType = PseudocolorAtts.FractionOfBBox
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_05" )
    +
    +PseudocolorAtts.tubeRadiusAbsolute = 0.2
    +PseudocolorAtts.tubeRadiusSizeType = PseudocolorAtts.Absolute
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_06" )
    +
    +PseudocolorAtts.lineType = PseudocolorAtts.Ribbon
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_07" )
    +
    +PseudocolorAtts.tubeRadiusBBox = 0.01
    +PseudocolorAtts.tubeRadiusSizeType = PseudocolorAtts.FractionOfBBox
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_08" )
    +
    +PseudocolorAtts.tubeRadiusAbsolute = 0.4
    +PseudocolorAtts.tubeRadiusSizeType = PseudocolorAtts.Absolute
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_09" )
    +
    +PseudocolorAtts.lineType = PseudocolorAtts.Line
    +PseudocolorAtts.headStyle = PseudocolorAtts.Spheres  # None, Spheres, Cones
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_10" )
    +
    +PseudocolorAtts.endPointRadiusSizeType = PseudocolorAtts.FractionOfBBox
    +PseudocolorAtts.endPointRadiusBBox = 0.03
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_11" )
    +
    +PseudocolorAtts.endPointRadiusSizeType = PseudocolorAtts.Absolute
    +PseudocolorAtts.endPointRadiusAbsolute = 0.6
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_12" )
    +
    +PseudocolorAtts.tailStyle = PseudocolorAtts.Cones  # None, Spheres, Cones
    +PseudocolorAtts.headStyle = PseudocolorAtts.Cones  # None, Spheres, Cones
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_13" )
    +
    +PseudocolorAtts.endPointRatio = 3
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_14" )
    +
    +#
    +# Test crop w/ head (cone) location
    +#
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("noise.silo"))
    +AddPlot("Pseudocolor", "operators/IntegralCurve/grad", 1, 0)
    +
    +PseudocolorAtts = PseudocolorAttributes()
    +PseudocolorAtts.scaling = PseudocolorAtts.Linear  # Linear, Log, Skew
    +PseudocolorAtts.skewFactor = 1
    +PseudocolorAtts.limitsMode = PseudocolorAtts.OriginalData  # OriginalData, ActualData
    +PseudocolorAtts.minFlag = 0
    +PseudocolorAtts.min = 0
    +PseudocolorAtts.maxFlag = 0
    +PseudocolorAtts.max = 1
    +PseudocolorAtts.centering = PseudocolorAtts.Natural  # Natural, Nodal, Zonal
    +PseudocolorAtts.colorTableName = "hot"
    +PseudocolorAtts.invertColorTable = 0
    +PseudocolorAtts.opacityType = PseudocolorAtts.FullyOpaque  # ColorTable, FullyOpaque, Constant, Ramp, VariableRange
    +PseudocolorAtts.opacityVariable = ""
    +PseudocolorAtts.opacity = 1
    +PseudocolorAtts.opacityVarMin = 0
    +PseudocolorAtts.opacityVarMax = 1
    +PseudocolorAtts.opacityVarMinFlag = 0
    +PseudocolorAtts.opacityVarMaxFlag = 0
    +PseudocolorAtts.pointSize = 0.05
    +PseudocolorAtts.pointType = PseudocolorAtts.Point  # Box, Axis, Icosahedron, Octahedron, Tetrahedron, SphereGeometry, Point, Sphere
    +PseudocolorAtts.pointSizeVarEnabled = 0
    +PseudocolorAtts.pointSizeVar = "default"
    +PseudocolorAtts.pointSizePixels = 2
    +PseudocolorAtts.lineType = PseudocolorAtts.Line  # Line, Tube, Ribbon
    +PseudocolorAtts.lineWidth = 0
    +PseudocolorAtts.tubeResolution = 10
    +PseudocolorAtts.tubeRadiusSizeType = PseudocolorAtts.FractionOfBBox  # Absolute, FractionOfBBox
    +PseudocolorAtts.tubeRadiusAbsolute = 0.4
    +PseudocolorAtts.tubeRadiusBBox = 0.02
    +PseudocolorAtts.tubeRadiusVarEnabled = 0
    +PseudocolorAtts.tubeRadiusVar = ""
    +PseudocolorAtts.tubeRadiusVarRatio = 10
    +PseudocolorAtts.tailStyle = PseudocolorAtts.NONE  # None, Spheres, Cones
    +PseudocolorAtts.headStyle = PseudocolorAtts.Cones  # None, Spheres, Cones
    +PseudocolorAtts.endPointRadiusSizeType = PseudocolorAtts.Absolute  # Absolute, FractionOfBBox
    +PseudocolorAtts.endPointRadiusAbsolute = 0.8
    +PseudocolorAtts.endPointRadiusBBox = 0.04
    +PseudocolorAtts.endPointResolution = 10
    +PseudocolorAtts.endPointRatio = 2
    +PseudocolorAtts.endPointRadiusVarEnabled = 0
    +PseudocolorAtts.endPointRadiusVar = ""
    +PseudocolorAtts.endPointRadiusVarRatio = 10
    +PseudocolorAtts.renderSurfaces = 1
    +PseudocolorAtts.renderWireframe = 0
    +PseudocolorAtts.renderPoints = 0
    +PseudocolorAtts.smoothingLevel = 0
    +PseudocolorAtts.legendFlag = 1
    +PseudocolorAtts.lightingFlag = 1
    +PseudocolorAtts.wireframeColor = (0, 0, 0, 0)
    +PseudocolorAtts.pointColor = (0, 0, 0, 0)
    +SetPlotOptions(PseudocolorAtts)
    +
    +IntegralCurveAtts = IntegralCurveAttributes()
    +IntegralCurveAtts.sourceType = IntegralCurveAtts.SpecifiedPoint  # SpecifiedPoint, PointList, SpecifiedLine, Circle, SpecifiedPlane, SpecifiedSphere, SpecifiedBox, Selection, FieldData
    +IntegralCurveAtts.pointSource = (0, 0, 0)
    +IntegralCurveAtts.lineStart = (0, 0, 0)
    +IntegralCurveAtts.lineEnd = (1, 0, 0)
    +IntegralCurveAtts.planeOrigin = (0, 0, 0)
    +IntegralCurveAtts.planeNormal = (0, 0, 1)
    +IntegralCurveAtts.planeUpAxis = (0, 1, 0)
    +IntegralCurveAtts.radius = 1
    +IntegralCurveAtts.sphereOrigin = (0, 0, 0)
    +IntegralCurveAtts.boxExtents = (0, 1, 0, 1, 0, 1)
    +IntegralCurveAtts.useWholeBox = 1
    +IntegralCurveAtts.pointList = (0, 0, 0, 1, 0, 0, 0, 1, 0)
    +IntegralCurveAtts.fieldData = ()
    +IntegralCurveAtts.sampleDensity0 = 2
    +IntegralCurveAtts.sampleDensity1 = 2
    +IntegralCurveAtts.sampleDensity2 = 2
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.TimeAbsolute  # Solid, SeedPointID, Speed, Vorticity, ArcLength, TimeAbsolute, TimeRelative, AverageDistanceFromSeed, CorrelationDistance, Difference, Variable
    +IntegralCurveAtts.dataVariable = ""
    +IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Forward  # Forward, Backward, Both, ForwardDirectionless, BackwardDirectionless, BothDirectionless
    +IntegralCurveAtts.maxSteps = 1000
    +IntegralCurveAtts.terminateByDistance = 0
    +IntegralCurveAtts.termDistance = 10
    +IntegralCurveAtts.terminateByTime = 0
    +IntegralCurveAtts.termTime = 10
    +IntegralCurveAtts.maxStepLength = 0.1
    +IntegralCurveAtts.limitMaximumTimestep = 0
    +IntegralCurveAtts.maxTimeStep = 0.1
    +IntegralCurveAtts.relTol = 0.0001
    +IntegralCurveAtts.absTolSizeType = IntegralCurveAtts.FractionOfBBox  # Absolute, FractionOfBBox
    +IntegralCurveAtts.absTolAbsolute = 1e-06
    +IntegralCurveAtts.absTolBBox = 1e-06
    +IntegralCurveAtts.fieldType = IntegralCurveAtts.Default  # Default, FlashField, M3DC12DField, M3DC13DField, Nek5000Field, NektarPPField
    +IntegralCurveAtts.fieldConstant = 1
    +IntegralCurveAtts.velocitySource = (0, 0, 0)
    +IntegralCurveAtts.integrationType = IntegralCurveAtts.AdamsBashforth  # Euler, Leapfrog, DormandPrince, AdamsBashforth, RK4, M3DC12DIntegrator
    +IntegralCurveAtts.parallelizationAlgorithmType = IntegralCurveAtts.VisItSelects  # LoadOnDemand, ParallelStaticDomains, ManagerWorker, VisItSelects
    +IntegralCurveAtts.maxProcessCount = 10
    +IntegralCurveAtts.maxDomainCacheSize = 3
    +IntegralCurveAtts.workGroupSize = 32
    +IntegralCurveAtts.pathlines = 0
    +IntegralCurveAtts.pathlinesOverrideStartingTimeFlag = 0
    +IntegralCurveAtts.pathlinesOverrideStartingTime = 0
    +IntegralCurveAtts.pathlinesPeriod = 0
    +IntegralCurveAtts.pathlinesCMFE = IntegralCurveAtts.POS_CMFE  # CONN_CMFE, POS_CMFE
    +IntegralCurveAtts.displayGeometry = IntegralCurveAtts.Lines  # Lines, Tubes, Ribbons
    +IntegralCurveAtts.cropBeginFlag = 0
    +IntegralCurveAtts.cropBegin = 0
    +IntegralCurveAtts.cropEndFlag = 0
    +IntegralCurveAtts.cropEnd = 0
    +IntegralCurveAtts.cropValue = IntegralCurveAtts.Time  # Distance, Time, StepNumber
    +IntegralCurveAtts.sampleDistance0 = 10
    +IntegralCurveAtts.sampleDistance1 = 10
    +IntegralCurveAtts.sampleDistance2 = 10
    +IntegralCurveAtts.fillInterior = 1
    +IntegralCurveAtts.randomSamples = 0
    +IntegralCurveAtts.randomSeed = 0
    +IntegralCurveAtts.numberOfRandomSamples = 1
    +IntegralCurveAtts.issueAdvectionWarnings = 0
    +IntegralCurveAtts.issueBoundaryWarnings = 0
    +IntegralCurveAtts.issueTerminationWarnings = 0
    +IntegralCurveAtts.issueStepsizeWarnings = 0
    +IntegralCurveAtts.issueStiffnessWarnings = 0
    +IntegralCurveAtts.issueCriticalPointsWarnings = 0
    +IntegralCurveAtts.criticalPointThreshold = 0.001
    +IntegralCurveAtts.correlationDistanceAngTol = 5
    +IntegralCurveAtts.correlationDistanceMinDistAbsolute = 1
    +IntegralCurveAtts.correlationDistanceMinDistBBox = 0.005
    +IntegralCurveAtts.correlationDistanceMinDistType = IntegralCurveAtts.FractionOfBBox  # Absolute, FractionOfBBox
    +IntegralCurveAtts.selection = ""
    +
    +IntegralCurveAtts.cropEndFlag  = 1
    +IntegralCurveAtts.cropEnd = 2
    +SetOperatorOptions(IntegralCurveAtts)
    +DrawPlots()
    +Test( "ic_geometry_crop_1")
    +
    +IntegralCurveAtts.cropEnd = 5
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_geometry_crop_2")
    +
    +IntegralCurveAtts.cropBeginFlag  = 1
    +IntegralCurveAtts.cropBegin = 2
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_geometry_crop_3")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_integration.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_integration.html new file mode 100644 index 000000000..3c6e31519 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_integration.html @@ -0,0 +1,106 @@ + +Results for operators/ic_integration.py + +

    Results of VisIt Regression Test - operators/ic_integration

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ic_integration_010.000.00
    ic_integration_020.000.00
    ic_integration_030.000.00
    ic_integration_040.000.00
    ic_integration_050.000.00
    ic_integration_060.000.00
    ic_integration_070.000.00
    ic_integration_080.000.00
    ic_integration_090.090.00
    ic_integration_100.240.00
    ic_integration_110.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_integration_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_integration_py.html new file mode 100644 index 000000000..b909843c4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_integration_py.html @@ -0,0 +1,115 @@ +operators/ic_integration.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ic_integration.py
    +#
    +#  Tests:      operator      - integralcurve
    +#
    +#  Defect ID:  -
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       March 10, 2016
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Tue Sep 29 11:01:37 PDT 2020
    +#    Turn off IC warnings.
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +AddPlot("Pseudocolor", "operators/IntegralCurve/grad", 1, 0)
    +
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.270729, 0.624198, 0.732859)
    +View3DAtts.focus = (0.496062, 0.99603, 0.496062)
    +View3DAtts.viewUp = (-0.0922782, 0.774611, -0.62567)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 12.1829
    +View3DAtts.nearPlane = -24.3658
    +View3DAtts.farPlane = 24.3658
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +SetView3D(View3DAtts)
    +
    +IntegralCurveAtts = IntegralCurveAttributes()
    +IntegralCurveAtts.sourceType = IntegralCurveAtts.SpecifiedPlane  # SpecifiedPoint, SpecifiedPointList, SpecifiedLine, SpecifiedCircle, SpecifiedPlane, SpecifiedSphere, SpecifiedBox
    +IntegralCurveAtts.limitMaximumTimestep = 1
    +IntegralCurveAtts.maxTimeStep = 0.02
    +IntegralCurveAtts.terminateByTime = 1
    +IntegralCurveAtts.termTime = 200
    +IntegralCurveAtts.maxSteps = 100000
    +IntegralCurveAtts.planeOrigin = (0.5, 1, 0.5)
    +IntegralCurveAtts.planeNormal = (0, 1, 0)
    +IntegralCurveAtts.planeUpAxis = (1, 0, 0)
    +IntegralCurveAtts.sampleDensity0 = 5
    +IntegralCurveAtts.sampleDensity1 = 5
    +IntegralCurveAtts.sampleDistance0 = 18
    +IntegralCurveAtts.sampleDistance1 = 18
    +IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Both  # Forward, Backward, Both
    +IntegralCurveAtts.relTol = 1e-06
    +IntegralCurveAtts.absTolSizeType = IntegralCurveAtts.Absolute
    +IntegralCurveAtts.absTolAbsolute = 1e-07
    +IntegralCurveAtts.integrationType = IntegralCurveAtts.DormandPrince  # DormandPrince, AdamsBashforth, M3DC1Integrator
    +IntegralCurveAtts.maxProcessCount = 10
    +IntegralCurveAtts.maxDomainCacheSize = 3
    +IntegralCurveAtts.workGroupSize = 32
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.TimeAbsolute
    +# turn off warnings
    +IntegralCurveAtts.issueAdvectionWarnings = 0
    +IntegralCurveAtts.issueBoundaryWarnings = 0
    +IntegralCurveAtts.issueTerminationWarnings = 0
    +IntegralCurveAtts.issueStepsizeWarnings = 0
    +IntegralCurveAtts.issueStiffnessWarnings = 0
    +IntegralCurveAtts.issueCriticalPointsWarnings = 0
    +
    +
    +# test defaults
    +SetOperatorOptions(IntegralCurveAtts)
    +DrawPlots()
    +Test( "ic_integration_01" )
    +
    +IntegralCurveAtts.maxTimeStep = 0.05
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_02" )
    +
    +IntegralCurveAtts.limitMaximumTimestep = 0
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_03" )
    +
    +IntegralCurveAtts.absTolAbsolute = 1e-03
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_04" )
    +
    +IntegralCurveAtts.absTolSizeType = IntegralCurveAtts.FractionOfBBox
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_05" )
    +
    +IntegralCurveAtts.absTolBBox = 1e-09
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_06" )
    +
    +IntegralCurveAtts.absTolBBox = 1e-04
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_07" )
    +
    +IntegralCurveAtts.integrationType = IntegralCurveAtts.AdamsBashforth
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_08" )
    +
    +IntegralCurveAtts.maxStepLength = 0.2
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_09" )
    +
    +IntegralCurveAtts.maxStepLength = 1.0
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_10" )
    +
    +IntegralCurveAtts.maxStepLength = 0.01
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_11" )
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_pathlines.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_pathlines.html new file mode 100644 index 000000000..53923343a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_pathlines.html @@ -0,0 +1,86 @@ + +Results for operators/ic_pathlines.py + +

    Results of VisIt Regression Test - operators/ic_pathlines

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ic_pathlines_010.000.00
    ic_pathlines_020.000.00
    ic_pathlines_030 modifications totalling 0 lines
    ic_pathlines_040.000.00
    ic_pathlines_050.000.00
    ic_pathlines_060.000.00
    ic_pathlines_070.000.00
    ic_pathlines_080.000.00
    ic_pathlines_090 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_pathlines_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_pathlines_py.html new file mode 100644 index 000000000..0ac2745f2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_pathlines_py.html @@ -0,0 +1,160 @@ +operators/ic_pathlines.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ic_pathlines.py
    +#
    +#  Tests:      operator      - integralcurve
    +#
    +#  Defect ID:  -
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       March 10, 2016
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Thu Sep 17 11:35:47 PDT 2020
    +#    Turn off IC warnings. Set larger linewidth so for better images.
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("PICS_Tester")
    +
    +OpenDatabase(data_path("pics_test_data/pathline_test.pics"))
    +AddPlot("Pseudocolor", "operators/IntegralCurve/velocity", 1, 0)
    +pcAtts = PseudocolorAttributes();
    +pcAtts.lineWidth = 3
    +SetPlotOptions(pcAtts)
    +
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.270729, 0.624198, 0.732859)
    +View3DAtts.focus = (0.496062, 0.99603, 0.496062)
    +View3DAtts.viewUp = (-0.0922782, 0.774611, -0.62567)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 12.1829
    +View3DAtts.nearPlane = -24.3658
    +View3DAtts.farPlane = 24.3658
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +SetView3D(View3DAtts)
    +
    +IntegralCurveAtts = IntegralCurveAttributes()
    +IntegralCurveAtts.sourceType = IntegralCurveAtts.SpecifiedPoint
    +IntegralCurveAtts.pointSource = (0.5, 0.1, 0.1)
    +IntegralCurveAtts.lineStart = (0, 0, 0)
    +IntegralCurveAtts.lineEnd = (1, 0, 0)
    +IntegralCurveAtts.planeOrigin = (0, 0, 0)
    +IntegralCurveAtts.planeNormal = (0, 0, 1)
    +IntegralCurveAtts.planeUpAxis = (0, 1, 0)
    +IntegralCurveAtts.radius = 1
    +IntegralCurveAtts.sphereOrigin = (0, 0, 0)
    +IntegralCurveAtts.boxExtents = (0, 1, 0, 1, 0, 1)
    +IntegralCurveAtts.useWholeBox = 1
    +IntegralCurveAtts.pointList = (0, 0, 0, 1, 0, 0, 0, 1, 0)
    +IntegralCurveAtts.fieldData = ()
    +IntegralCurveAtts.sampleDensity0 = 2
    +IntegralCurveAtts.sampleDensity1 = 2
    +IntegralCurveAtts.sampleDensity2 = 2
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.TimeAbsolute
    +IntegralCurveAtts.dataVariable = ""
    +IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Forward
    +IntegralCurveAtts.maxSteps = 1000
    +IntegralCurveAtts.terminateByDistance = 0
    +IntegralCurveAtts.termDistance = 10
    +IntegralCurveAtts.terminateByTime = 0
    +IntegralCurveAtts.termTime = 10
    +IntegralCurveAtts.maxStepLength = 0.01
    +IntegralCurveAtts.limitMaximumTimestep = 0
    +IntegralCurveAtts.maxTimeStep = 0.1
    +IntegralCurveAtts.relTol = 0.0001
    +IntegralCurveAtts.absTolSizeType = IntegralCurveAtts.FractionOfBBox
    +IntegralCurveAtts.absTolAbsolute = 1e-06
    +IntegralCurveAtts.absTolBBox = 1e-06
    +IntegralCurveAtts.fieldType = IntegralCurveAtts.Default
    +IntegralCurveAtts.fieldConstant = 1
    +IntegralCurveAtts.velocitySource = (0, 0, 0)
    +IntegralCurveAtts.integrationType = IntegralCurveAtts.Euler
    +IntegralCurveAtts.parallelizationAlgorithmType = IntegralCurveAtts.VisItSelects
    +IntegralCurveAtts.maxProcessCount = 10
    +IntegralCurveAtts.maxDomainCacheSize = 3
    +IntegralCurveAtts.workGroupSize = 32
    +IntegralCurveAtts.pathlines = 1
    +IntegralCurveAtts.pathlinesOverrideStartingTimeFlag = 0
    +IntegralCurveAtts.pathlinesOverrideStartingTime = 0
    +IntegralCurveAtts.pathlinesPeriod = 0
    +IntegralCurveAtts.pathlinesCMFE = IntegralCurveAtts.CONN_CMFE
    +IntegralCurveAtts.displayGeometry = IntegralCurveAtts.Lines
    +IntegralCurveAtts.cropBeginFlag = 0
    +IntegralCurveAtts.cropBegin = 0
    +IntegralCurveAtts.cropEndFlag = 0
    +IntegralCurveAtts.cropEnd = 0
    +IntegralCurveAtts.cropValue = IntegralCurveAtts.Time
    +IntegralCurveAtts.sampleDistance0 = 10
    +IntegralCurveAtts.sampleDistance1 = 10
    +IntegralCurveAtts.sampleDistance2 = 10
    +IntegralCurveAtts.fillInterior = 1
    +IntegralCurveAtts.randomSamples = 0
    +IntegralCurveAtts.randomSeed = 0
    +IntegralCurveAtts.numberOfRandomSamples = 1
    +IntegralCurveAtts.issueAdvectionWarnings = 1
    +IntegralCurveAtts.issueBoundaryWarnings = 1
    +IntegralCurveAtts.issueTerminationWarnings = 1
    +IntegralCurveAtts.issueStepsizeWarnings = 1
    +IntegralCurveAtts.issueStiffnessWarnings = 1
    +IntegralCurveAtts.issueCriticalPointsWarnings = 1
    +IntegralCurveAtts.criticalPointThreshold = 0.001
    +IntegralCurveAtts.correlationDistanceAngTol = 5
    +IntegralCurveAtts.correlationDistanceMinDistAbsolute = 1
    +IntegralCurveAtts.correlationDistanceMinDistBBox = 0.005
    +IntegralCurveAtts.correlationDistanceMinDistType = IntegralCurveAtts.FractionOfBBox
    +IntegralCurveAtts.selection = ""
    +IntegralCurveAtts.issueAdvectionWarnings = 0
    +IntegralCurveAtts.issueBoundaryWarnings = 0
    +IntegralCurveAtts.issueTerminationWarnings = 0
    +IntegralCurveAtts.issueStepsizeWarnings = 0
    +IntegralCurveAtts.issueStiffnessWarnings = 0
    +IntegralCurveAtts.issueCriticalPointsWarnings = 0
    +
    +SetOperatorOptions(IntegralCurveAtts, 0)
    +DrawPlots()
    +Test("ic_pathlines_01")
    +
    +IntegralCurveAtts.terminateByTime = 1
    +IntegralCurveAtts.termTime = 3
    +SetOperatorOptions(IntegralCurveAtts)
    +Test("ic_pathlines_02")
    +
    +TimeSliderSetState(6)
    +e = GetLastError()
    +TestText("ic_pathlines_03", e)
    +
    +IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Backward
    +SetOperatorOptions(IntegralCurveAtts)
    +DrawPlots()
    +Test("ic_pathlines_04")
    +
    +IntegralCurveAtts.terminateByTime = 0
    +SetOperatorOptions(IntegralCurveAtts)
    +Test("ic_pathlines_05")
    +
    +IntegralCurveAtts.pathlinesOverrideStartingTimeFlag = 1
    +IntegralCurveAtts.pathlinesOverrideStartingTime = 3.5
    +SetOperatorOptions(IntegralCurveAtts)
    +Test("ic_pathlines_06")
    +
    +TimeSliderSetState(0)
    +IntegralCurveAtts.pathlinesCMFE = IntegralCurveAtts.POS_CMFE
    +SetOperatorOptions(IntegralCurveAtts)
    +Test("ic_pathlines_07")
    +
    +IntegralCurveAtts.pathlinesCMFE = IntegralCurveAtts.POS_CMFE
    +SetOperatorOptions(IntegralCurveAtts)
    +Test("ic_pathlines_08")
    +
    +IntegralCurveAtts.pathlinesOverrideStartingTimeFlag = 0
    +SetOperatorOptions(IntegralCurveAtts)
    +e = GetLastError()
    +TestText("ic_pathlines_09", e)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_pics.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_pics.html new file mode 100644 index 000000000..40c152db5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_pics.html @@ -0,0 +1,1392 @@ + +Results for operators/ic_pics.py + +

    Results of VisIt Regression Test - operators/ic_pics

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    MB_2D_rect
    Varying time type with parallelization algorithm = POS
    Varying integrator = Euler (0)
    ic_pics_MB_2D_rect_POS_Euler_path_forward0.000.00
    ic_pics_MB_2D_rect_POS_Euler_path_backward0.000.00
    ic_pics_MB_2D_rect_POS_Euler_stream_forward0.000.00
    ic_pics_MB_2D_rect_POS_Euler_stream_backward0.000.00
    ic_pics_MB_2D_rect_POS_Euler_stream_both0.000.00
    Varying integrator = Leapfrog (1)
    ic_pics_MB_2D_rect_POS_Leapfrog_path_forward0.000.00
    ic_pics_MB_2D_rect_POS_Leapfrog_path_backward0.000.00
    ic_pics_MB_2D_rect_POS_Leapfrog_stream_forward0.000.00
    ic_pics_MB_2D_rect_POS_Leapfrog_stream_backward0.000.00
    ic_pics_MB_2D_rect_POS_Leapfrog_stream_both0.000.00
    Varying integrator = DormandPrince (2)
    ic_pics_MB_2D_rect_POS_DormandPrince_path_forward0.000.00
    ic_pics_MB_2D_rect_POS_DormandPrince_path_backward0.000.00
    ic_pics_MB_2D_rect_POS_DormandPrince_stream_forward0.000.00
    ic_pics_MB_2D_rect_POS_DormandPrince_stream_backward0.000.00
    ic_pics_MB_2D_rect_POS_DormandPrince_stream_both0.000.00
    Varying integrator = AdamsBashforth (3)
    ic_pics_MB_2D_rect_POS_AdamsBashforth_path_forward0.000.00
    ic_pics_MB_2D_rect_POS_AdamsBashforth_path_backward0.000.00
    ic_pics_MB_2D_rect_POS_AdamsBashforth_stream_forward0.000.00
    ic_pics_MB_2D_rect_POS_AdamsBashforth_stream_backward0.000.00
    ic_pics_MB_2D_rect_POS_AdamsBashforth_stream_both0.000.00
    Varying integrator = RK4 (4)
    ic_pics_MB_2D_rect_POS_RK4_path_forward0.000.00
    ic_pics_MB_2D_rect_POS_RK4_path_backward0.000.00
    ic_pics_MB_2D_rect_POS_RK4_stream_forward0.000.00
    ic_pics_MB_2D_rect_POS_RK4_stream_backward0.000.00
    ic_pics_MB_2D_rect_POS_RK4_stream_both0.000.00
    Varying time type with parallelization algorithm = POD
    Varying integrator = Euler (0)
    ic_pics_MB_2D_rect_POD_Euler_path_forward0.000.00
    ic_pics_MB_2D_rect_POD_Euler_path_backward0.000.00
    ic_pics_MB_2D_rect_POD_Euler_stream_forward0.000.00
    ic_pics_MB_2D_rect_POD_Euler_stream_backward0.000.00
    ic_pics_MB_2D_rect_POD_Euler_stream_both0.000.00
    Varying integrator = Leapfrog (1)
    ic_pics_MB_2D_rect_POD_Leapfrog_path_forward0.000.00
    ic_pics_MB_2D_rect_POD_Leapfrog_path_backward0.000.00
    ic_pics_MB_2D_rect_POD_Leapfrog_stream_forward0.000.00
    ic_pics_MB_2D_rect_POD_Leapfrog_stream_backward0.000.00
    ic_pics_MB_2D_rect_POD_Leapfrog_stream_both0.000.00
    Varying integrator = DormandPrince (2)
    ic_pics_MB_2D_rect_POD_DormandPrince_path_forward0.000.00
    ic_pics_MB_2D_rect_POD_DormandPrince_path_backward0.000.00
    ic_pics_MB_2D_rect_POD_DormandPrince_stream_forward0.000.00
    ic_pics_MB_2D_rect_POD_DormandPrince_stream_backward0.000.00
    ic_pics_MB_2D_rect_POD_DormandPrince_stream_both0.000.00
    Varying integrator = AdamsBashforth (3)
    ic_pics_MB_2D_rect_POD_AdamsBashforth_path_forward0.000.00
    ic_pics_MB_2D_rect_POD_AdamsBashforth_path_backward0.000.00
    ic_pics_MB_2D_rect_POD_AdamsBashforth_stream_forward0.000.00
    ic_pics_MB_2D_rect_POD_AdamsBashforth_stream_backward0.000.00
    ic_pics_MB_2D_rect_POD_AdamsBashforth_stream_both0.000.00
    Varying integrator = RK4 (4)
    ic_pics_MB_2D_rect_POD_RK4_path_forward0.000.00
    ic_pics_MB_2D_rect_POD_RK4_path_backward0.000.00
    ic_pics_MB_2D_rect_POD_RK4_stream_forward0.000.00
    ic_pics_MB_2D_rect_POD_RK4_stream_backward0.000.00
    ic_pics_MB_2D_rect_POD_RK4_stream_both0.000.00
    MB_2D_ugrid
    Varying time type with parallelization algorithm = POS
    Varying integrator = Euler (0)
    ic_pics_MB_2D_ugrid_POS_Euler_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_Euler_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_Euler_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_Euler_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_Euler_stream_both0.000.00
    Varying integrator = Leapfrog (1)
    ic_pics_MB_2D_ugrid_POS_Leapfrog_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_Leapfrog_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_Leapfrog_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_Leapfrog_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_Leapfrog_stream_both0.000.00
    Varying integrator = DormandPrince (2)
    ic_pics_MB_2D_ugrid_POS_DormandPrince_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_DormandPrince_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_DormandPrince_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_DormandPrince_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_DormandPrince_stream_both0.000.00
    Varying integrator = AdamsBashforth (3)
    ic_pics_MB_2D_ugrid_POS_AdamsBashforth_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_AdamsBashforth_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_AdamsBashforth_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_AdamsBashforth_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_AdamsBashforth_stream_both0.000.00
    Varying integrator = RK4 (4)
    ic_pics_MB_2D_ugrid_POS_RK4_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_RK4_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_RK4_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_RK4_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_RK4_stream_both0.000.00
    Varying time type with parallelization algorithm = POD
    Varying integrator = Euler (0)
    ic_pics_MB_2D_ugrid_POD_Euler_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_Euler_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_Euler_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_Euler_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_Euler_stream_both0.000.00
    Varying integrator = Leapfrog (1)
    ic_pics_MB_2D_ugrid_POD_Leapfrog_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_Leapfrog_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_Leapfrog_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_Leapfrog_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_Leapfrog_stream_both0.000.00
    Varying integrator = DormandPrince (2)
    ic_pics_MB_2D_ugrid_POD_DormandPrince_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_DormandPrince_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_DormandPrince_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_DormandPrince_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_DormandPrince_stream_both0.000.00
    Varying integrator = AdamsBashforth (3)
    ic_pics_MB_2D_ugrid_POD_AdamsBashforth_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_AdamsBashforth_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_AdamsBashforth_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_AdamsBashforth_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_AdamsBashforth_stream_both0.000.00
    Varying integrator = RK4 (4)
    ic_pics_MB_2D_ugrid_POD_RK4_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_RK4_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_RK4_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_RK4_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_RK4_stream_both0.000.00
    MB_3D_rect
    Varying time type with parallelization algorithm = POS
    Varying integrator = Euler (0)
    ic_pics_MB_3D_rect_POS_Euler_path_forward0.000.00
    ic_pics_MB_3D_rect_POS_Euler_path_backward0.000.00
    ic_pics_MB_3D_rect_POS_Euler_stream_forward0.000.00
    ic_pics_MB_3D_rect_POS_Euler_stream_backward0.000.00
    ic_pics_MB_3D_rect_POS_Euler_stream_both0.000.00
    Varying integrator = Leapfrog (1)
    ic_pics_MB_3D_rect_POS_Leapfrog_path_forward0.000.00
    ic_pics_MB_3D_rect_POS_Leapfrog_path_backward0.000.00
    ic_pics_MB_3D_rect_POS_Leapfrog_stream_forward0.000.00
    ic_pics_MB_3D_rect_POS_Leapfrog_stream_backward0.000.00
    ic_pics_MB_3D_rect_POS_Leapfrog_stream_both0.000.00
    Varying integrator = DormandPrince (2)
    ic_pics_MB_3D_rect_POS_DormandPrince_path_forward0.000.00
    ic_pics_MB_3D_rect_POS_DormandPrince_path_backward0.000.00
    ic_pics_MB_3D_rect_POS_DormandPrince_stream_forward0.000.00
    ic_pics_MB_3D_rect_POS_DormandPrince_stream_backward0.000.00
    ic_pics_MB_3D_rect_POS_DormandPrince_stream_both0.000.00
    Varying integrator = AdamsBashforth (3)
    ic_pics_MB_3D_rect_POS_AdamsBashforth_path_forward0.000.00
    ic_pics_MB_3D_rect_POS_AdamsBashforth_path_backward0.000.00
    ic_pics_MB_3D_rect_POS_AdamsBashforth_stream_forward0.000.00
    ic_pics_MB_3D_rect_POS_AdamsBashforth_stream_backward0.000.00
    ic_pics_MB_3D_rect_POS_AdamsBashforth_stream_both0.000.00
    Varying integrator = RK4 (4)
    ic_pics_MB_3D_rect_POS_RK4_path_forward0.000.00
    ic_pics_MB_3D_rect_POS_RK4_path_backward0.000.00
    ic_pics_MB_3D_rect_POS_RK4_stream_forward0.000.00
    ic_pics_MB_3D_rect_POS_RK4_stream_backward0.000.00
    ic_pics_MB_3D_rect_POS_RK4_stream_both0.000.00
    Varying time type with parallelization algorithm = POD
    Varying integrator = Euler (0)
    ic_pics_MB_3D_rect_POD_Euler_path_forward0.000.00
    ic_pics_MB_3D_rect_POD_Euler_path_backward0.000.00
    ic_pics_MB_3D_rect_POD_Euler_stream_forward0.000.00
    ic_pics_MB_3D_rect_POD_Euler_stream_backward0.000.00
    ic_pics_MB_3D_rect_POD_Euler_stream_both0.000.00
    Varying integrator = Leapfrog (1)
    ic_pics_MB_3D_rect_POD_Leapfrog_path_forward0.000.00
    ic_pics_MB_3D_rect_POD_Leapfrog_path_backward0.000.00
    ic_pics_MB_3D_rect_POD_Leapfrog_stream_forward0.000.00
    ic_pics_MB_3D_rect_POD_Leapfrog_stream_backward0.000.00
    ic_pics_MB_3D_rect_POD_Leapfrog_stream_both0.000.00
    Varying integrator = DormandPrince (2)
    ic_pics_MB_3D_rect_POD_DormandPrince_path_forward0.000.00
    ic_pics_MB_3D_rect_POD_DormandPrince_path_backward0.000.00
    ic_pics_MB_3D_rect_POD_DormandPrince_stream_forward0.000.00
    ic_pics_MB_3D_rect_POD_DormandPrince_stream_backward0.000.00
    ic_pics_MB_3D_rect_POD_DormandPrince_stream_both0.000.00
    Varying integrator = AdamsBashforth (3)
    ic_pics_MB_3D_rect_POD_AdamsBashforth_path_forward0.000.00
    ic_pics_MB_3D_rect_POD_AdamsBashforth_path_backward0.000.00
    ic_pics_MB_3D_rect_POD_AdamsBashforth_stream_forward0.000.00
    ic_pics_MB_3D_rect_POD_AdamsBashforth_stream_backward0.000.00
    ic_pics_MB_3D_rect_POD_AdamsBashforth_stream_both0.000.00
    Varying integrator = RK4 (4)
    ic_pics_MB_3D_rect_POD_RK4_path_forward0.000.00
    ic_pics_MB_3D_rect_POD_RK4_path_backward0.000.00
    ic_pics_MB_3D_rect_POD_RK4_stream_forward0.000.00
    ic_pics_MB_3D_rect_POD_RK4_stream_backward0.000.00
    ic_pics_MB_3D_rect_POD_RK4_stream_both0.000.00
    MB_3D_ugrid
    Varying time type with parallelization algorithm = POS
    Varying integrator = Euler (0)
    ic_pics_MB_3D_ugrid_POS_Euler_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_Euler_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_Euler_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_Euler_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_Euler_stream_both0.000.00
    Varying integrator = Leapfrog (1)
    ic_pics_MB_3D_ugrid_POS_Leapfrog_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_Leapfrog_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_Leapfrog_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_Leapfrog_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_Leapfrog_stream_both0.000.00
    Varying integrator = DormandPrince (2)
    ic_pics_MB_3D_ugrid_POS_DormandPrince_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_DormandPrince_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_DormandPrince_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_DormandPrince_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_DormandPrince_stream_both0.000.00
    Varying integrator = AdamsBashforth (3)
    ic_pics_MB_3D_ugrid_POS_AdamsBashforth_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_AdamsBashforth_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_AdamsBashforth_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_AdamsBashforth_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_AdamsBashforth_stream_both0.000.00
    Varying integrator = RK4 (4)
    ic_pics_MB_3D_ugrid_POS_RK4_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_RK4_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_RK4_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_RK4_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_RK4_stream_both0.000.00
    Varying time type with parallelization algorithm = POD
    Varying integrator = Euler (0)
    ic_pics_MB_3D_ugrid_POD_Euler_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_Euler_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_Euler_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_Euler_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_Euler_stream_both0.000.00
    Varying integrator = Leapfrog (1)
    ic_pics_MB_3D_ugrid_POD_Leapfrog_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_Leapfrog_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_Leapfrog_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_Leapfrog_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_Leapfrog_stream_both0.000.00
    Varying integrator = DormandPrince (2)
    ic_pics_MB_3D_ugrid_POD_DormandPrince_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_DormandPrince_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_DormandPrince_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_DormandPrince_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_DormandPrince_stream_both0.000.00
    Varying integrator = AdamsBashforth (3)
    ic_pics_MB_3D_ugrid_POD_AdamsBashforth_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_AdamsBashforth_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_AdamsBashforth_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_AdamsBashforth_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_AdamsBashforth_stream_both0.000.00
    Varying integrator = RK4 (4)
    ic_pics_MB_3D_ugrid_POD_RK4_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_RK4_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_RK4_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_RK4_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_RK4_stream_both0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_pics_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_pics_py.html new file mode 100644 index 000000000..d346e677b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_pics_py.html @@ -0,0 +1,114 @@ +operators/ic_pics.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ic_pics.py
    +#
    +#  Tests:      operator      - integralcurve
    +#
    +#  Defect ID:  -
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       March 10, 2016
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Thu Sep 17 11:35:47 PDT 2020
    +#    Turn off IC warnings. Set larger linewidth so for better images.
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("PICS_Tester")
    +
    +IntegralCurveAtts = IntegralCurveAttributes()
    +databases=["MB_2D_rect", "MB_2D_ugrid", "MB_3D_rect", "MB_3D_ugrid"]
    +is2D=[1,1,0,0]
    +isUgrid=[0,1,0,1]
    +algs=[IntegralCurveAtts.LoadOnDemand, IntegralCurveAtts.ParallelStaticDomains]
    +algs_strings=["POS", "POD", "MS", "BestAlg"]
    +time_strings=["path_forward", "path_backward", "stream_forward", "stream_backward", "stream_both"]
    +intg=[IntegralCurveAtts.Euler, IntegralCurveAtts.Leapfrog, IntegralCurveAtts.DormandPrince, IntegralCurveAtts.AdamsBashforth, IntegralCurveAtts.RK4]
    +intg_strings=["Euler", "Leapfrog", "DormandPrince", "AdamsBashforth", "RK4"]
    +
    +View3DAtts = View3DAttributes()
    +View3DAttIntegralCurveAttsviewNormal = (0.270729, 0.624198, 0.732859)
    +View3DAttIntegralCurveAttsfocus = (0.496062, 0.99603, 0.496062)
    +View3DAttIntegralCurveAttsviewUp = (-0.0922782, 0.774611, -0.62567)
    +View3DAttIntegralCurveAttsviewAngle = 30
    +View3DAttIntegralCurveAttsparallelScale = 12.1829
    +View3DAttIntegralCurveAttsnearPlane = -24.3658
    +View3DAttIntegralCurveAttsfarPlane = 24.3658
    +View3DAttIntegralCurveAttsimagePan = (0, 0)
    +View3DAttIntegralCurveAttsimageZoom = 1
    +View3DAttIntegralCurveAttsperspective = 1
    +View3DAttIntegralCurveAttseyeAngle = 2
    +View3DAttIntegralCurveAttsaxis3DScaleFlag = 0
    +View3DAttIntegralCurveAttsaxis3DScales = (1, 1, 1)
    +SetView3D(View3DAtts)
    +
    +for i in range(len(databases)):
    +  TestSection(databases[i])
    +  db=data_path("pics_test_data/%s.pics") %(databases[i])
    +  for j in range(len(algs)):
    +     tmpstr="Varying time type with parallelization algorithm = %s" %(algs_strings[j])
    +     TestSection(tmpstr)
    +
    +     for integrator_i in range(len(intg)) :
    +       tmpstr="Varying integrator = %s (%d)" %(intg_strings[integrator_i], integrator_i)
    +       TestSection(tmpstr)
    +
    +       for k in range(len(time_strings)):
    +         DeleteAllPlots()
    +         OpenDatabase(db)
    +         AddPlot("Pseudocolor", "operators/IntegralCurve/velocity", 1, 0)
    +         pcAtts = PseudocolorAttributes();
    +         pcAtts.lineWidth = 3
    +         SetPlotOptions(pcAtts)
    +         IntegralCurveAtts = IntegralCurveAttributes()
    +         IntegralCurveAtts.parallelizationAlgorithmType = algs[j]
    +         IntegralCurveAtts.sourceType = IntegralCurveAtts.SpecifiedPoint
    +         IntegralCurveAtts.issueAdvectionWarnings = 0
    +         IntegralCurveAtts.issueBoundaryWarnings = 0
    +         IntegralCurveAtts.issueTerminationWarnings = 0
    +         IntegralCurveAtts.issueStepsizeWarnings = 0
    +         IntegralCurveAtts.issueStiffnessWarnings = 0
    +         IntegralCurveAtts.issueCriticalPointsWarnings = 0
    +         if (is2D[i]):
    +           if (intg[integrator_i] in [IntegralCurveAtts.RK4, IntegralCurveAtts.DormandPrince, IntegralCurveAtts.AdamsBashforth]) :
    +             IntegralCurveAtts.pointSource = (0.51, 0.1, 0)
    +           else:
    +             IntegralCurveAtts.pointSource = (0.5, 0.1, 0)
    +         else:
    +           if (isUgrid[i]):
    +             IntegralCurveAtts.pointSource = (0.2, 0.6, 0.6)
    +           else:
    +             if (intg[integrator_i] in [IntegralCurveAtts.RK4, IntegralCurveAtts.DormandPrince, IntegralCurveAtts.AdamsBashforth]) :
    +               IntegralCurveAtts.pointSource = (0.51, 0.1, 0.1)
    +             else:
    +               IntegralCurveAtts.pointSource = (0.5, 0.1, 0.1)
    +         if (time_strings[k] == "path_forward"):
    +           TimeSliderSetState(0)
    +           IntegralCurveAtts.pathlines = 1
    +           IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Forward
    +         if (time_strings[k] == "path_backward"):
    +           TimeSliderSetState(TimeSliderGetNStates()-1)
    +           IntegralCurveAtts.pathlines = 1
    +           IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Backward
    +         if (time_strings[k] == "stream_forward"):
    +           TimeSliderSetState(0)
    +           IntegralCurveAtts.pathlines = 0
    +           IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Forward
    +         if (time_strings[k] == "stream_backward"):
    +           TimeSliderSetState(0)
    +           IntegralCurveAtts.pathlines = 0
    +           IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Backward
    +         if (time_strings[k] == "stream_both"):
    +           TimeSliderSetState(0)
    +           IntegralCurveAtts.pathlines = 0
    +           IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Both
    +         IntegralCurveAtts.maxStepLength = 0.01
    +         IntegralCurveAtts.pathlinesCMFE = IntegralCurveAtts.POS_CMFE
    +         IntegralCurveAtts.integrationType = intg[integrator_i]
    +         SetOperatorOptions(IntegralCurveAtts)
    +         DrawPlots()
    +         tmpstr="ic_pics_%s_%s_%s_%s" %(databases[i], algs_strings[j], intg_strings[integrator_i], time_strings[k])
    +         Test(tmpstr)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_streamlines.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_streamlines.html new file mode 100644 index 000000000..282392767 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_streamlines.html @@ -0,0 +1,110 @@ + +Results for operators/ic_streamlines.py + +

    Results of VisIt Regression Test - operators/ic_streamlines

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ic_streamlines_010.000.00
    ic_streamlines_020.000.00
    ic_streamlines_030.040.00
    ic_streamlines_040.040.00
    ic_streamlines_053.700.01
    ic_streamlines_060.000.00
    ic_streamlines_070.000.00
    ic_streamlines_080.040.00
    ic_streamlines_090.000.00
    ic_streamlines_100.000.00
    ic_streamlines_110.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_streamlines_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_streamlines_py.html new file mode 100644 index 000000000..1610cef3c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_streamlines_py.html @@ -0,0 +1,220 @@ +operators/ic_streamlines.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ic_streamlines.py
    +#
    +#  Tests:      operator      - integralcurve
    +#
    +#  Defect ID:  -
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       March 10, 2016
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Tue Sep 29 11:29:33 PDT 2020
    +#    Turn off IC warnings.
    +#
    +#    Eddie Rusu, Tue Apr 13 12:08:59 PDT 2021
    +#    Changed Pseudocolor CurrentPlot to ActualData.
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "operators/IntegralCurve/grad", 1, 0)
    +
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.270729, 0.624198, 0.732859)
    +View3DAtts.focus = (0.496062, 0.99603, 0.496062)
    +View3DAtts.viewUp = (-0.0922782, 0.774611, -0.62567)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 12.1829
    +View3DAtts.nearPlane = -24.3658
    +View3DAtts.farPlane = 24.3658
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +SetView3D(View3DAtts)
    +
    +PseudocolorAtts = PseudocolorAttributes()
    +PseudocolorAtts.scaling = PseudocolorAtts.Linear  # Linear, Log, Skew
    +PseudocolorAtts.skewFactor = 1
    +PseudocolorAtts.limitsMode = PseudocolorAtts.OriginalData  # OriginalData, ActualData
    +PseudocolorAtts.minFlag = 0
    +PseudocolorAtts.min = 0
    +PseudocolorAtts.maxFlag = 0
    +PseudocolorAtts.max = 1
    +PseudocolorAtts.centering = PseudocolorAtts.Natural  # Natural, Nodal, Zonal
    +PseudocolorAtts.colorTableName = "hot"
    +PseudocolorAtts.invertColorTable = 0
    +PseudocolorAtts.opacityType = PseudocolorAtts.FullyOpaque  # ColorTable, FullyOpaque, Constant, Ramp, VariableRange
    +PseudocolorAtts.opacityVariable = ""
    +PseudocolorAtts.opacity = 1
    +PseudocolorAtts.opacityVarMin = 0
    +PseudocolorAtts.opacityVarMax = 1
    +PseudocolorAtts.opacityVarMinFlag = 0
    +PseudocolorAtts.opacityVarMaxFlag = 0
    +PseudocolorAtts.pointSize = 0.05
    +PseudocolorAtts.pointType = PseudocolorAtts.Point  # Box, Axis, Icosahedron, Octahedron, Tetrahedron, SphereGeometry, Point, Sphere
    +PseudocolorAtts.pointSizeVarEnabled = 0
    +PseudocolorAtts.pointSizeVar = "default"
    +PseudocolorAtts.pointSizePixels = 2
    +PseudocolorAtts.lineType = PseudocolorAtts.Tube  # Line, Tube, Ribbon
    +PseudocolorAtts.lineWidth = 0
    +PseudocolorAtts.tubeResolution = 100
    +PseudocolorAtts.tubeRadiusSizeType = PseudocolorAtts.Absolute  # Absolute, FractionOfBBox
    +PseudocolorAtts.tubeRadiusAbsolute = 0.25
    +PseudocolorAtts.tubeRadiusBBox = 0.005
    +PseudocolorAtts.tubeRadiusVarEnabled = 0
    +PseudocolorAtts.tubeRadiusVar = ""
    +PseudocolorAtts.tubeRadiusVarRatio = 10
    +PseudocolorAtts.tailStyle = PseudocolorAtts.Spheres  # None, Spheres, Cones
    +PseudocolorAtts.headStyle = PseudocolorAtts.NONE  # None, Spheres, Cones
    +PseudocolorAtts.endPointRadiusSizeType = PseudocolorAtts.Absolute  # Absolute, FractionOfBBox
    +PseudocolorAtts.endPointRadiusAbsolute = 0.8
    +PseudocolorAtts.endPointRadiusBBox = 0.005
    +PseudocolorAtts.endPointResolution = 100
    +PseudocolorAtts.endPointRatio = 2
    +PseudocolorAtts.endPointRadiusVarEnabled = 0
    +PseudocolorAtts.endPointRadiusVar = ""
    +PseudocolorAtts.endPointRadiusVarRatio = 10
    +PseudocolorAtts.renderSurfaces = 1
    +PseudocolorAtts.renderWireframe = 0
    +PseudocolorAtts.renderPoints = 0
    +PseudocolorAtts.smoothingLevel = 0
    +PseudocolorAtts.legendFlag = 1
    +PseudocolorAtts.lightingFlag = 1
    +PseudocolorAtts.wireframeColor = (0, 0, 0, 0)
    +PseudocolorAtts.pointColor = (0, 0, 0, 0)
    +SetPlotOptions(PseudocolorAtts)
    +
    +IntegralCurveAtts = IntegralCurveAttributes()
    +IntegralCurveAtts.sourceType = IntegralCurveAtts.SpecifiedPlane  # SpecifiedPoint, PointList, SpecifiedLine, Circle, SpecifiedPlane, SpecifiedSphere, SpecifiedBox, Selection, FieldData
    +IntegralCurveAtts.pointSource = (0, 0, 0)
    +IntegralCurveAtts.lineStart = (0, 0, 0)
    +IntegralCurveAtts.lineEnd = (1, 0, 0)
    +IntegralCurveAtts.planeOrigin = (0.5, 1, 0.5)
    +IntegralCurveAtts.planeNormal = (0, 1, 0)
    +IntegralCurveAtts.planeUpAxis = (1, 0, 0)
    +IntegralCurveAtts.radius = 1
    +IntegralCurveAtts.sphereOrigin = (0, 0, 0)
    +IntegralCurveAtts.boxExtents = (0, 1, 0, 1, 0, 1)
    +IntegralCurveAtts.useWholeBox = 1
    +IntegralCurveAtts.pointList = (0, 0, 0, 1, 0, 0, 0, 1, 0)
    +IntegralCurveAtts.fieldData = ()
    +IntegralCurveAtts.sampleDensity0 = 5
    +IntegralCurveAtts.sampleDensity1 = 5
    +IntegralCurveAtts.sampleDensity2 = 2
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.Speed  # Solid, SeedPointID, Speed, Vorticity, ArcLength, TimeAbsolute, TimeRelative, AverageDistanceFromSeed, CorrelationDistance, Difference, Variable
    +IntegralCurveAtts.dataVariable = ""
    +IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Both  # Forward, Backward, Both, ForwardDirectionless, BackwardDirectionless, BothDirectionless
    +IntegralCurveAtts.maxSteps = 100000
    +IntegralCurveAtts.terminateByDistance = 0
    +IntegralCurveAtts.termDistance = 10
    +IntegralCurveAtts.terminateByTime = 1
    +IntegralCurveAtts.termTime = 200
    +IntegralCurveAtts.maxStepLength = 0.1
    +IntegralCurveAtts.limitMaximumTimestep = 1
    +IntegralCurveAtts.maxTimeStep = 0.02
    +IntegralCurveAtts.relTol = 1e-06
    +IntegralCurveAtts.absTolSizeType = IntegralCurveAtts.FractionOfBBox  # Absolute, FractionOfBBox
    +IntegralCurveAtts.absTolAbsolute = 1e-06
    +IntegralCurveAtts.absTolBBox = 1e-07
    +IntegralCurveAtts.fieldType = IntegralCurveAtts.Default  # Default, FlashField, M3DC12DField, M3DC13DField, Nek5000Field, NektarPPField
    +IntegralCurveAtts.fieldConstant = 1
    +IntegralCurveAtts.velocitySource = (0, 0, 0)
    +IntegralCurveAtts.integrationType = IntegralCurveAtts.DormandPrince  # Euler, Leapfrog, DormandPrince, AdamsBashforth, RK4, M3DC12DIntegrator
    +IntegralCurveAtts.parallelizationAlgorithmType = IntegralCurveAtts.VisItSelects  # LoadOnDemand, ParallelStaticDomains, ManagerWorker, VisItSelects
    +IntegralCurveAtts.maxProcessCount = 10
    +IntegralCurveAtts.maxDomainCacheSize = 3
    +IntegralCurveAtts.workGroupSize = 32
    +IntegralCurveAtts.pathlines = 0
    +IntegralCurveAtts.pathlinesOverrideStartingTimeFlag = 0
    +IntegralCurveAtts.pathlinesOverrideStartingTime = 0
    +IntegralCurveAtts.pathlinesPeriod = 0
    +IntegralCurveAtts.pathlinesCMFE = IntegralCurveAtts.POS_CMFE  # CONN_CMFE, POS_CMFE
    +IntegralCurveAtts.displayGeometry = IntegralCurveAtts.Lines  # Lines, Tubes, Ribbons
    +IntegralCurveAtts.cropBeginFlag = 0
    +IntegralCurveAtts.cropBegin = 0
    +IntegralCurveAtts.cropEndFlag = 0
    +IntegralCurveAtts.cropEnd = 0
    +IntegralCurveAtts.cropValue = IntegralCurveAtts.Time  # Distance, Time, StepNumber
    +IntegralCurveAtts.sampleDistance0 = 18
    +IntegralCurveAtts.sampleDistance1 = 18
    +IntegralCurveAtts.sampleDistance2 = 10
    +IntegralCurveAtts.fillInterior = 1
    +IntegralCurveAtts.randomSamples = 0
    +IntegralCurveAtts.randomSeed = 0
    +IntegralCurveAtts.numberOfRandomSamples = 1
    +IntegralCurveAtts.issueAdvectionWarnings = 0
    +IntegralCurveAtts.issueBoundaryWarnings = 0
    +IntegralCurveAtts.issueTerminationWarnings = 0
    +IntegralCurveAtts.issueStepsizeWarnings = 0
    +IntegralCurveAtts.issueStiffnessWarnings = 0
    +IntegralCurveAtts.issueCriticalPointsWarnings = 0
    +IntegralCurveAtts.criticalPointThreshold = 0.001
    +IntegralCurveAtts.correlationDistanceAngTol = 5
    +IntegralCurveAtts.correlationDistanceMinDistAbsolute = 1
    +IntegralCurveAtts.correlationDistanceMinDistBBox = 0.005
    +IntegralCurveAtts.correlationDistanceMinDistType = IntegralCurveAtts.FractionOfBBox  # Absolute, FractionOfBBox
    +IntegralCurveAtts.selection = ""
    +
    +# Test coloring options
    +
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.Speed
    +SetOperatorOptions(IntegralCurveAtts)
    +DrawPlots()
    +Test( "ic_streamlines_01" )
    +
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.Vorticity
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_02" )
    +
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.ArcLength
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_03" )
    +
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.TimeAbsolute
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_04" )
    +
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.SeedPointID
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_05" )
    +
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.Variable
    +IntegralCurveAtts.dataVariable = "hardyglobal"
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_06" )
    +
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.Solid
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_07" )
    +
    +# test termination modes (termination by time implied in previous tests)
    +
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.ArcLength
    +
    +IntegralCurveAtts.terminateByTime = 0
    +IntegralCurveAtts.terminateByDistance = 1
    +IntegralCurveAtts.termDistance = 10
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_08" )
    +
    +IntegralCurveAtts.termDistance = 5
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_09" )
    +
    +IntegralCurveAtts.terminateByDistance = 0
    +IntegralCurveAtts.maxSteps = 500
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_10" )
    +
    +IntegralCurveAtts.maxSteps = 250
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_11" )
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_termination.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_termination.html new file mode 100644 index 000000000..9cd1efcb7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_termination.html @@ -0,0 +1,84 @@ + +Results for operators/ic_termination.py + +

    Results of VisIt Regression Test - operators/ic_termination

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ic_termination_010.000.00
    ic_termination_020.000.00
    ic_termination_030.000.00
    ic_termination_040.000.00
    ic_termination_050.000.00
    ic_termination_060.000.00
    ic_termination_070.000.00
    ic_termination_080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_termination_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_termination_py.html new file mode 100644 index 000000000..7e67fa480 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_ic_termination_py.html @@ -0,0 +1,91 @@ +operators/ic_termination.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ic_termination.py
    +#
    +#  Tests:      operator      - integralcurve
    +#
    +#  Defect ID:  -
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       March 10, 2016
    +#
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +AddPlot("Pseudocolor", "operators/IntegralCurve/grad", 1, 0)
    +
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.270729, 0.624198, 0.732859)
    +View3DAtts.focus = (0.496062, 0.99603, 0.496062)
    +View3DAtts.viewUp = (-0.0922782, 0.774611, -0.62567)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 12.1829
    +View3DAtts.nearPlane = -24.3658
    +View3DAtts.farPlane = 24.3658
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +SetView3D(View3DAtts)
    +
    +IntegralCurveAtts = IntegralCurveAttributes()
    +IntegralCurveAtts.sourceType = IntegralCurveAtts.SpecifiedPlane  # SpecifiedPoint, SpecifiedPointList, SpecifiedLine, SpecifiedCircle, SpecifiedPlane, SpecifiedSphere, SpecifiedBox
    +IntegralCurveAtts.terminateByTime = 1
    +IntegralCurveAtts.termTime = 200
    +IntegralCurveAtts.planeOrigin = (0.5, 1, 0.5)
    +IntegralCurveAtts.planeNormal = (0, 1, 0)
    +IntegralCurveAtts.planeUpAxis = (1, 0, 0)
    +IntegralCurveAtts.sampleDensity0 = 5
    +IntegralCurveAtts.sampleDensity1 = 5
    +IntegralCurveAtts.sampleDistance0 = 18
    +IntegralCurveAtts.sampleDistance1 = 18
    +IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Both  # Forward, Backward, Both
    +IntegralCurveAtts.relTol = 1e-06
    +IntegralCurveAtts.absTolSizeType = IntegralCurveAtts.Absolute
    +IntegralCurveAtts.absTolAbsolute = 1e-07
    +IntegralCurveAtts.integrationType = IntegralCurveAtts.DormandPrince  # DormandPrince, AdamsBashforth, M3DC1Integrator
    +IntegralCurveAtts.maxProcessCount = 10
    +IntegralCurveAtts.maxDomainCacheSize = 3
    +IntegralCurveAtts.workGroupSize = 32
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.TimeAbsolute
    +
    +# test defaults
    +SetOperatorOptions(IntegralCurveAtts)
    +DrawPlots()
    +Test( "ic_termination_01" )
    +
    +IntegralCurveAtts.termTime = 50
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_termination_02" )
    +
    +IntegralCurveAtts.terminateByDistance = 1
    +IntegralCurveAtts.termDistance = 4
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_termination_03" )
    +
    +IntegralCurveAtts.terminateByDistance = 1
    +IntegralCurveAtts.termDistance = 12
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_termination_04" )
    +
    +IntegralCurveAtts.terminateByTime = 0
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_termination_05" )
    +
    +IntegralCurveAtts.maxSteps = 40
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_termination_06" )
    +
    +IntegralCurveAtts.termDistance = 25
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_termination_07" )
    +
    +IntegralCurveAtts.maxSteps = 10000
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_termination_08" )
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_indexselect.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_indexselect.html new file mode 100644 index 000000000..184aa76b2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_indexselect.html @@ -0,0 +1,273 @@ + +Results for operators/indexselect.py + +

    Results of VisIt Regression Test - operators/indexselect

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_indexselect010.000.00
    ops_indexselect020.000.00
    ops_indexselect030.000.00
    ops_indexselect040.000.00
    ops_indexselect050.000.00
    ops_indexselect060.000.00
    ops_indexselect070.000.00
    ops_indexselect080.000.00
    ops_indexselect090.000.00
    ops_indexselect100.000.00
    ops_indexselect110.000.00
    ops_indexselect120.000.00
    ops_indexselect130.000.00
    ops_indexselect140.000.00
    ops_indexselect150.000.00
    ops_indexselect160.000.00
    ops_indexselect170.000.00
    ops_indexselect180.000.00
    ops_indexselect190.000.00
    ops_indexselect200.000.00
    ops_indexselect210.000.00
    ops_indexselect220.000.00
    ops_indexselect230.000.00
    ops_indexselect240.000.00
    ops_indexselect250.000.00
    ops_indexselect260.000.00
    ops_indexselect270.000.00
    ops_indexselect280.000.00
    ops_indexselect290.000.00
    ops_indexselect300.000.00
    ops_indexselect310.000.00
    ops_indexselect320.000.00
    IndexSelect on Point meshes.
    ops_indexselect330.000.00
    ops_indexselect340.000.00
    ops_indexselect350.000.00
    ops_indexselect360.000.00
    ops_indexselect370.000.00
    ops_indexselect380.000.00
    ops_indexselect390.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_indexselect_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_indexselect_py.html new file mode 100644 index 000000000..c13c0221f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_indexselect_py.html @@ -0,0 +1,621 @@ +operators/indexselect.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  indexselect.py
    +#
    +#  Tests:      mesh      - 3D curvilinear, single domain,
    +#                          3D rectilinear, single domain.
    +#                          2D rectilinear, single domain.
    +#                          3D rectilinear, single domain.
    +#              plots     - pc, mesh, subset, vector, surface
    +#              operators - index select (with threshold and sphere slice)
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Hank Childs
    +#  Date:       October 2, 2002
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset plots.
    +#
    +#    Kathleen Bonnell, Wed Sep  3 09:31:25 PDT 2003
    +#    Opaque mode for MeshPlot is ON by default now, so turn it off
    +#    for this test.
    +#
    +#    Kathleen Bonnell, Thu Sep  4 11:10:11 PDT 2003
    +#    Change the way MeshPlot's opaque mode is set (now an enum, not a bool).
    +#
    +#    Kathleen Bonnell, Wed Sep  8 11:29:10 PDT 2004 
    +#    Add two new tests, testing 'modulo' problems. ('3308).
    +#
    +#    Kathleen Bonnell, Wed Jul 20 13:32:44 PDT 2005 
    +#    Add two new tests, testing 'group' problems. ('6386).
    +#
    +#    Kathleen Bonnell, Wed Aug 10 10:13:56 PDT 2005 
    +#    Add tests 27-30 which tests extracting faces along maximum and minimum
    +#    boundaries of 3d data. ('6106).
    +#
    +#    Kathleen Bonnell, Fri Aug 19 15:45:46 PDT 2005 
    +#    Add tests 31-32 which tests domain boundaries w/i a group that coincide
    +#    with external boundaries of the index-selection. ('6428)  
    +#
    +#    Kathleen Bonnell, Mon Jan 30 16:40:30 PST 2006 
    +#    Add tests 33-38 which tests point meshes.
    +#
    +#    Kathleen Bonnell, Thu Jun  7 14:43:32 PDT 2007 
    +#    IndexSelect atts have changed, make corrections. 
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Wed Jan 11 13:57:00 PST 2012
    +#    Added test for Index Select of point meshes with Box operator applied.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +#    Eddie Rusu, Tue Apr 13 12:08:59 PDT 2021
    +#    Changed Pseudocolor CurrentPlot to ActualData.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +atts = IndexSelectAttributes()
    +# Dim is an enumerated type.  0 -> 1D, 1 -> 2D, 2 -> 3D.
    +atts.dim = 2
    +atts.xMin = 5
    +atts.xMax = 23
    +atts.xIncr = 2
    +atts.yMin = 0
    +atts.yMax = 20
    +atts.yIncr = 1
    +atts.zMin = 10
    +atts.zMax = -1
    +atts.zIncr = 2
    +
    +# 3D, rectilinear, zonal var.
    +AddPlot("Pseudocolor", "d")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +view = GetView3D()
    +view.viewNormal = (-0.5, 0.5, 0.7172)
    +SetView3D(view)
    +Test("ops_indexselect01")
    +DeleteAllPlots()
    +
    +# 3D, rectilinear, nodal var.
    +AddPlot("Pseudocolor", "u")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect02")
    +DeleteAllPlots()
    +
    +# 3D, rectilinear, mesh.
    +m = MeshAttributes()
    +m.opaqueMode = m.Off
    +SetDefaultPlotOptions(m)
    +AddPlot("Mesh", "quadmesh3d")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect03")
    +DeleteAllPlots()
    +
    +# 3D, rectilinear, subset.
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("IndexSelect")
    +atts.xIncr = 1
    +atts.yIncr = 1
    +atts.zIncr = 1
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect04")
    +DeleteAllPlots()
    +
    +# 3D, rectilinear, after a threshold
    +AddPlot("Pseudocolor", "p")
    +a2 = ThresholdAttributes()
    +a2.listedVarNames = ("u")
    +a2.lowerBounds = (0.25)
    +a2.upperBounds = (1.0)
    +AddOperator("Threshold")
    +SetOperatorOptions(a2)
    +atts.zMin = 5
    +atts.zMax = 20
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect05")
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +
    +# 3D, curvilinear, mesh plot
    +AddPlot("Mesh", "curvmesh3d")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +ResetView()
    +view = GetView3D()
    +view.viewNormal = (-0.5, 0.5, 0.7172)
    +SetView3D(view)
    +Test("ops_indexselect06")
    +DeleteAllPlots()
    +
    +# 3D, curvilinear, PC plot
    +AddPlot("Pseudocolor", "d")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect07")
    +DeleteAllPlots()
    +
    +# 3D, curvilinear, with sphere slice
    +AddPlot("Pseudocolor", "d")
    +AddOperator("SphereSlice")
    +a3 = SphereSliceAttributes()
    +a3.origin = (2.5, -0.5, 13)
    +a3.radius = 7
    +SetOperatorOptions(a3)
    +AddOperator("IndexSelect")
    +atts.xMin = 0
    +atts.xMax = -1
    +atts.yMin = 0
    +atts.yMax = -1
    +atts.zMin = 5
    +atts.zMax = 18
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect08")
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +# 2D, rectilinear, mesh plot
    +AddPlot("Mesh", "quadmesh2d")
    +AddOperator("IndexSelect")
    +# Dim is an enumerated type.  0 -> 1D, 1 -> 2D, 2 -> 3D.
    +atts.dim = 1
    +atts.xMin = 5
    +atts.xMax = 25
    +atts.yMin = 5
    +atts.yMax = 30
    +SetOperatorOptions(atts)
    +DrawPlots()
    +ResetView()
    +Test("ops_indexselect09")
    +DeleteAllPlots()
    +
    +# 2D, rectilinear, PC plot
    +AddPlot("Pseudocolor", "d")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect10")
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +
    +# 2D, curvilinear, mesh plot
    +AddPlot("Mesh", "curvmesh2d")
    +AddOperator("IndexSelect")
    +atts.yMax = 25
    +SetOperatorOptions(atts)
    +DrawPlots()
    +ResetView()
    +Test("ops_indexselect11")
    +DeleteAllPlots()
    +
    +# 2D, curv, PC plot
    +AddPlot("Pseudocolor", "d")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect12")
    +DeleteAllPlots()
    +
    +# 2D, curv, with threshold.
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Threshold")
    +a2.listedVarNames = ("p")
    +a2.lowerBounds = (0.34)
    +a2.upperBounds = (0.5)
    +SetOperatorOptions(a2)
    +AddOperator("IndexSelect")
    +atts.xMin = 10
    +atts.xMax = -1
    +atts.yMin = 0
    +atts.yMin = -1
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect13")
    +DeleteAllPlots()
    +
    +# 2D, curv of vector
    +AddPlot("Vector", "vel")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect14")
    +DeleteAllPlots()
    +
    +# 2D surface of curvilinear
    +AddPlot("Pseudocolor", "d")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +AddOperator("Elevate")
    +DrawPlots()
    +ResetView()
    +Test("ops_indexselect15")
    +DeleteAllPlots()
    +
    +# 3D multi-rect 
    +# test 'modulo' problems, bug: VisIt00003308
    +OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("IndexSelect")
    +atts.dim = 2
    +atts.xMin = 0
    +atts.xMax = 1000
    +atts.yMin = 0
    +atts.yMax = 1000
    +atts.zMin = 0
    +atts.zMax = 1000
    +atts.xIncr = 3
    +atts.yIncr = 3
    +atts.zIncr = 3
    +SetOperatorOptions(atts)
    +DrawPlots()
    +ResetView()
    +Test("ops_indexselect16")
    +
    +atts.xMin = 1
    +atts.xMax = 8
    +atts.yMin = 1
    +atts.yMax = 8
    +atts.zMin = 1
    +atts.zMax = 8
    +atts.xIncr = 5
    +atts.yIncr = 5
    +atts.zIncr = 5
    +SetOperatorOptions(atts)
    +
    +Test("ops_indexselect17")
    +DeleteAllPlots()
    +
    +# bigsil 
    +# test 'domainIndex' problems, bug: VisIt00005559
    +OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +AddPlot("Subset", "domains")
    +AddPlot("Mesh", "mesh")
    +AddOperator("IndexSelect")
    +atts.dim = atts.ThreeD
    +atts.xMin = 0
    +atts.xMax = 1000
    +atts.yMin = 0
    +atts.yMax = 1000
    +atts.zMin = 0
    +atts.zMax = 1000
    +atts.xIncr = 1
    +atts.yIncr = 1
    +atts.zIncr = 1
    +atts.useWholeCollection = 0
    +atts.categoryName = "domains"
    +atts.subsetName = "domain2"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +ResetView()
    +
    +v = GetView3D()
    +v.viewNormal = (0.653901, -0.39603, -0.64465)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.251385, -0.917378, 0.308584)
    +v.viewAngle = 30
    +v.parallelScale = 0.866025
    +v.nearPlane = -1.73205
    +v.farPlane = 1.73205
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, 0)
    +SetView3D(v)
    +
    +Test("ops_indexselect18")
    +
    +# smallest domainIndex should be 1
    +atts.subsetName = "domain1"
    +SetOperatorOptions(atts)
    +Test("ops_indexselect19")
    +
    +atts.subsetName = "domain27"
    +SetOperatorOptions(atts)
    +Test("ops_indexselect20")
    +
    +DeleteAllPlots()
    +
    +#test whichData = OneGroup
    +AddPlot("Subset", "blocks")
    +s = SubsetAttributes()
    +s.wireframe = 1
    +s.lineWidth = 3
    +SetPlotOptions(s)
    +AddPlot("Mesh", "mesh")
    +AddPlot("Pseudocolor", "dist")
    +AddOperator("IndexSelect")
    +atts.dim = atts.ThreeD
    +atts.xMin = 1
    +atts.xMax = 2
    +atts.yMin = 1
    +atts.yMax = 2
    +atts.zMin = 0
    +atts.zMax = -1
    +atts.categoryName = "blocks"
    +atts.subsetName = "block0"
    +SetOperatorOptions(atts)
    +
    +DrawPlots()
    +ResetView()
    +v = GetView3D()
    +v.viewNormal = (0, 0, -1)
    +v.focus = (0.5, 0.5, 0.5)
    +v.parallelScale = 0.866025
    +v.viewUp = (0, 1, 0)
    +v.nearPlane = -1.73205
    +v.farPlane  = 1.73205
    +v.perspective = 0
    +SetView3D(v)
    +v.imageZoom = 5.39496
    +SetView3D(v)
    +v.imagePan = (-0.23029, 0.259159)
    +SetView3D(v)
    +Test("ops_indexselect21")
    +
    +atts.categoryName = "domains"
    +atts.subsetName = "domain1"
    +SetOperatorOptions(atts)
    +Test("ops_indexselect22")
    +
    +SetActivePlots(1)
    +DeleteActivePlots()
    +
    +SetActivePlots(1)
    +atts.categoryName = "blocks"
    +atts.subsetName = "block2"
    +atts.xMin = 0
    +atts.xMax = -1
    +atts.yMin = 5
    +atts.yMax = 19
    +atts.zMin = 7
    +atts.zMax = 8
    +SetOperatorOptions(atts)
    +ResetView()
    +Test("ops_indexselect23")
    +
    +TurnMaterialsOff(("1", "5", "8"))
    +Test("ops_indexselect24")
    +
    +TurnMaterialsOn()
    +TurnDomainsOff(("domain23"))
    +Test("ops_indexselect25")
    +
    +TurnMaterialsOff(("1", "5", "8"))
    +Test("ops_indexselect26")
    +
    +TurnMaterialsOn()
    +TurnDomainsOn()
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +# 3D, rectilinear, zonal var, index-selected at max/min boundaries.
    +AddPlot("Pseudocolor", "d")
    +AddOperator("IndexSelect")
    +atts.dim = atts.ThreeD
    +atts.xMin = 0
    +atts.xMax = -1 # maximum
    +atts.yMin = 40 # maximum boundary
    +atts.yMax = 40 # maximum boundary
    +atts.zMin = 0
    +atts.zMax = -1
    +atts.xIncr = 1
    +atts.yIncr = 1
    +atts.zIncr = 1
    +atts.useWholeCollection = 1
    +SetOperatorOptions(atts)
    +pc = PseudocolorAttributes()
    +pc.limitsMode = pc.ActualData
    +SetPlotOptions(pc)
    +DrawPlots()
    +ResetView()
    +view = GetView3D()
    +view.viewNormal = (0, 1, 0)
    +view.viewUp = (0, 0, -1)
    +view.perspective = 0
    +SetView3D(view)
    +Test("ops_indexselect27")
    +
    +atts.yMin = 0
    +atts.yMax = 0
    +SetOperatorOptions(atts)
    +Test("ops_indexselect28")
    +
    +DeleteAllPlots()
    +
    +
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +# 3D, curvilinear, zonal var, index-selected at max/min boundaries.
    +AddPlot("Pseudocolor", "p")
    +AddOperator("IndexSelect")
    +atts.dim = atts.ThreeD
    +atts.xMin = 30
    +atts.xMax = 30
    +atts.yMin = 0
    +atts.yMax = -1
    +atts.zMin = 0
    +atts.zMax = -1
    +atts.xIncr = 1
    +atts.yIncr = 1
    +atts.zIncr = 1
    +SetOperatorOptions(atts)
    +pc = PseudocolorAttributes()
    +pc.limitsMode = pc.ActualData
    +SetPlotOptions(pc)
    +DrawPlots()
    +ResetView()
    +view = GetView3D()
    +view.viewNormal = (0, 1, 0)
    +view.viewUp = (0, 0, -1)
    +view.perspective = 0
    +SetView3D(view)
    +Test("ops_indexselect29")
    +
    +atts.xMin = 0
    +atts.xMax = 0
    +SetOperatorOptions(atts)
    +Test("ops_indexselect30")
    +
    +DeleteAllPlots()
    +
    +#'6428, boundary between domains disappear when on edge of
    +# index-selected plot 
    +OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +AddPlot("Pseudocolor", "dist")
    +atts.dim = atts.ThreeD
    +atts.xMin = 0
    +atts.xMax = -1 #max
    +atts.yMin = 8
    +atts.yMax = 17
    +atts.zMin = 0
    +atts.zMax = -1 #max
    +atts.xIncr = 1
    +atts.yIncr = 1
    +atts.zIncr = 1
    +atts.useWholeCollection = 0
    +atts.categoryName = "blocks"
    +# middle group for this dataset, has group boundaries and internal
    +# domain boundaries
    +atts.subsetName = "block1"
    +
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +ResetView()
    +v = GetView3D()
    +v.viewNormal = (0.437142, -0.719538, -0.539603)
    +v.viewUp = (-0.309012, -0.683599, 0.661214)
    +v.perspective = 0
    +SetView3D(v)
    +Test("ops_indexselect31")
    +
    +DeleteAllPlots()
    +
    +# Filled boundary takes different path through IndexSelect than
    +# does PC, so test it too. 
    +AddPlot("FilledBoundary", "mat")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +SetView3D(v)
    +Test("ops_indexselect32")
    +DeleteAllPlots()
    +
    +
    +# Test point meshes
    +TestSection("IndexSelect on Point meshes.")
    +OpenDatabase(data_path("vtk_test_data/ugrid_points.vtk"))
    +
    +AddPlot("Pseudocolor", "u")
    +p = PseudocolorAttributes()
    +p.pointType = p.Box
    +p.pointSize = 0.2
    +SetPlotOptions(p)
    +DrawPlots()
    +
    +v = GetView2D()
    +v.windowCoords = (-0.4, 9.4, -0.4, 9.4)
    +SetView2D(v)
    +
    +Test("ops_indexselect33")
    +
    +AddOperator("IndexSelect")
    +isa = IndexSelectAttributes()
    +isa.dim = isa.OneD
    +isa.xMin = 60
    +isa.xMax = 70
    +isa.xIncr = 1
    +SetOperatorOptions(isa)
    +DrawPlots()
    +Test("ops_indexselect34")
    +
    +isa.xMin = 0
    +isa.xMax = -1
    +isa.xIncr = 2
    +SetOperatorOptions(isa)
    +
    +Test("ops_indexselect35")
    +
    +isa.xIncr = 3
    +SetOperatorOptions(isa)
    +Test("ops_indexselect36")
    +
    +isa.xMin = 4
    +isa.xMax = -1
    +isa.xIncr = 2
    +SetOperatorOptions(isa)
    +
    +Test("ops_indexselect37")
    +
    +isa.xMin = 10
    +isa.xMax = 89
    +isa.xIncr = 7
    +SetOperatorOptions(isa)
    +
    +Test("ops_indexselect38")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "PointVar")
    +AddOperator("IndexSelect")
    +# make sure we are using default atts
    +isa = IndexSelectAttributes()
    +SetOperatorOptions(isa)
    +box = BoxAttributes()
    +box.minx = -5
    +box.maxx = 5
    +box.miny = -5
    +box.maxy = 5
    +box.minz = -5
    +box.maxz = 5
    +AddOperator("Box")
    +SetOperatorOptions(box)
    +DrawPlots()
    +
    +Test("ops_indexselect39")
    +
    +DeleteAllPlots()
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_inverse_ghost_zone.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_inverse_ghost_zone.html new file mode 100644 index 000000000..fb275261d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_inverse_ghost_zone.html @@ -0,0 +1,74 @@ + +Results for operators/inverse_ghost_zone.py + +

    Results of VisIt Regression Test - operators/inverse_ghost_zone

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_inverse_ghost_zone010.000.00
    ops_inverse_ghost_zone020.000.00
    ops_inverse_ghost_zone030.000.00
    ops_inverse_ghost_zone040.000.00
    ops_inverse_ghost_zone0525.710.01
    ops_inverse_ghost_zone060.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_inverse_ghost_zone_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_inverse_ghost_zone_py.html new file mode 100644 index 000000000..4780e2431 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_inverse_ghost_zone_py.html @@ -0,0 +1,76 @@ +operators/inverse_ghost_zone.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  inverse_ghost_zone.py
    +#
    +#  Defect ID:  '6724
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 3, 2006
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to switch between Silo's HDF5 and PDB data.
    +#
    +#    Hank Childs, Sun Jan  2 10:45:22 PST 2011
    +#    Add tests for new features.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +AddPlot("Pseudocolor", "dist")
    +# By default, we won't create ghost zones, because we don't need them
    +# for this case.  Do something that makes us need them.
    +pc = PseudocolorAttributes()
    +pc.centering = pc.Zonal
    +SetPlotOptions(pc)
    +AddOperator("InverseGhostZone")
    +DrawPlots()
    +Test("ops_inverse_ghost_zone01")
    +
    +sil = SILRestriction()
    +sil.TurnOffSet(1)
    +SetPlotSILRestriction(sil)
    +Test("ops_inverse_ghost_zone02")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("InverseGhostZone")
    +DrawPlots()
    +Test("ops_inverse_ghost_zone03")
    +
    +sil = SILRestriction()
    +sil.TurnOffSet(1)
    +SetPlotSILRestriction(sil)
    +Test("ops_inverse_ghost_zone04")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(data_path("boxlib_test_data/2D/plt0822/Header"))
    +
    +AddPlot("Pseudocolor", "density")
    +AddOperator("InverseGhostZone")
    +i = InverseGhostZoneAttributes()
    +i.requestGhostZones = 1
    +i.showDuplicated = 1
    +i.showEnhancedConnectivity = 0
    +i.showReducedConnectivity = 0
    +i.showAMRRefined = 0
    +i.showExterior = 0
    +i.showNotApplicable = 0
    +SetOperatorOptions(i)
    +DrawPlots()
    +Test("ops_inverse_ghost_zone05")
    +
    +i.showDuplicated = 0
    +i.showAMRRefined = 1
    +SetOperatorOptions(i)
    +Test("ops_inverse_ghost_zone06")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_isovolume.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_isovolume.html new file mode 100644 index 000000000..84f21c53a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_isovolume.html @@ -0,0 +1,78 @@ + +Results for operators/isovolume.py + +

    Results of VisIt Regression Test - operators/isovolume

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_isovol010.000.00
    ops_isovol020.000.00
    ops_isovol030.000.00
    ops_isovol040.000.00
    ops_isovol050.000.00
    ops_isovol060.000.00
    ops_isovol070.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_isovolume_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_isovolume_py.html new file mode 100644 index 000000000..00356b100 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_isovolume_py.html @@ -0,0 +1,160 @@ +operators/isovolume.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  isovolume.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain,
    +#                          3D rectilinear, multiple domain,
    +#                          2D curvilinear, multiple domain
    +#              plots     - pc, mesh, filledboundary, contour
    +#              operators - isovolume
    +#              selection - none
    +#
    +#  Defect ID:  '5640
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 27, 2004
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Wed Nov 17 15:38:37 PST 2004
    +#    Added test for isovolumes of poly-data where the poly-data is totally
    +#    within the data range. ['5640]
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.SetViewNormal(-0.528889, 0.367702, 0.7649)
    +v.SetViewUp(0.176641, 0.929226, -0.324558)
    +v.SetParallelScale(17.3205)
    +v.SetPerspective(1)
    +SetView3D(v)
    +
    +#
    +# Normal PC isovolume for globe.
    +#
    +isovol = IsovolumeAttributes()
    +
    +isovol.lbound = -4
    +isovol.ubound =  4
    +SetDefaultOperatorOptions(isovol)
    +AddOperator("Isovolume")
    +DrawPlots()
    +Test("ops_isovol01")
    +
    +
    +#
    +# Normal PC plot of globe, isovolumeing by a different variable than what we
    +# are coloring by.
    +#
    +RemoveAllOperators()
    +isovol.lbound = 140
    +isovol.ubound = 340
    +isovol.variable = "t"
    +SetDefaultOperatorOptions(isovol)
    +AddOperator("Isovolume")
    +DrawPlots()
    +Test("ops_isovol02")
    +
    +DeleteAllPlots()
    +
    +#
    +# Contour lines by one variable, isovolumeing by another.  Multi-block,
    +# curvilinear, 2D.
    +#
    +OpenDatabase(silo_data_path("multi_curv2d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +isovol.lbound = 0.7
    +isovol.ubound = 0.9
    +isovol.variable = "v"
    +SetDefaultOperatorOptions(isovol)
    +AddOperator("Isovolume")
    +DrawPlots()
    +
    +Test("ops_isovol03")
    +
    +DeleteAllPlots()
    +
    +#
    +# Material plot, isovolumeed by a scalar variable.  Multi-block,
    +# curvilinear, 2D.
    +#
    +AddPlot("FilledBoundary", "mat1")
    +DrawPlots()
    +
    +isovol.lbound = -0.4
    +isovol.ubound = 1.0
    +isovol.variable = "u"
    +SetDefaultOperatorOptions(isovol)
    +AddOperator("Isovolume")
    +DrawPlots()
    +
    +Test("ops_isovol04")
    +
    +DeleteAllPlots()
    +
    +#
    +# Mesh plot and PC plot, both isovolumeed by the same variable, criteria.
    +# Multi-block, rectilinear, 3D.
    +#
    +OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +
    +isovol.lbound = 0.4
    +isovol.ubound = 1.0
    +isovol.variable = "u"
    +SetDefaultOperatorOptions(isovol)
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isovolume")
    +AddPlot("Mesh", "mesh1")
    +AddOperator("Isovolume")
    +DrawPlots()
    +
    +Test("ops_isovol05")
    +
    +#
    +# Test that we can slice poly-data correctly.
    +#
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +isovol.lbound = -1.0
    +isovol.ubound = 1.0
    +isovol.variable = "default"
    +SetDefaultOperatorOptions(isovol)
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Slice")
    +AddOperator("Isovolume")
    +DrawPlots()
    +
    +Test("ops_isovol06")
    +
    +isovol.lbound = 0.5
    +SetOperatorOptions(isovol)
    +Test("ops_isovol07")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_lcs.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_lcs.html new file mode 100644 index 000000000..0ffd32c03 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_lcs.html @@ -0,0 +1,149 @@ + +Results for operators/lcs.py + +

    Results of VisIt Regression Test - operators/lcs

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Basic FTLE function
    Testing database = ftle_double_gyre_1_domain.pics
    Testing sample source = RegularGrid
    Testing auxiliary grid = NoAuxGrid
    lcs_ftle_double_gyre_1_domain_RegularGrid_NoAuxGrid0.000.00
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_1_domain_RegularGrid_2DAuxGrid0.000.00
    Testing sample source = NativeMesh
    Testing auxiliary grid = NoAuxGrid
    lcs_ftle_double_gyre_1_domain_NativeMesh_NoAuxGrid0.000.00
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_1_domain_NativeMesh_2DAuxGrid0.000.00
    Testing database = ftle_double_gyre_2_domains.pics
    Testing sample source = RegularGrid
    Testing auxiliary grid = NoAuxGrid
    lcs_ftle_double_gyre_2_domains_RegularGrid_NoAuxGrid0.000.00
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_2_domains_RegularGrid_2DAuxGrid0.000.00
    Testing sample source = NativeMesh
    Testing auxiliary grid = NoAuxGrid
    lcs_ftle_double_gyre_2_domains_NativeMesh_NoAuxGrid0.000.00
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_2_domains_NativeMesh_2DAuxGrid50.380.30
    lcs_ftle_double_gyre_2_domains_NativeMesh_2DAuxGrid_Smallest0.000.00
    lcs_ftle_double_gyre_2_domains_NativeMesh_2DAuxGrid_Left0.000.00
    lcs_ftle_double_gyre_2_domains_NativeMesh_2DAuxGrid_EigenValue0.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_lcs_ic_1.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_lcs_ic_1.html new file mode 100644 index 000000000..c7ee534e4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_lcs_ic_1.html @@ -0,0 +1,66 @@ + +Results for operators/lcs_ic_1.py + +

    Results of VisIt Regression Test - operators/lcs_ic_1

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Basic FTLE function with IntegralCurve operator
    Testing database = ftle_double_gyre_1_domain.pics
    Testing sample source = RegularGrid
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_1_domain_RegularGrid_2DAuxGrid_IntegralCurve0.000.00
    Testing sample source = NativeMesh
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_1_domain_NativeMesh_2DAuxGrid_IntegralCurve0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_lcs_ic_1_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_lcs_ic_1_py.html new file mode 100644 index 000000000..8b7ea4a64 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_lcs_ic_1_py.html @@ -0,0 +1,17 @@ +operators/lcs_ic_1.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  lcs_ic_1.py
    +#
    +#  Tests:      operator   - LCS, IntegralCurve
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       August 25, 2015
    +# ----------------------------------------------------------------------------
    +
    +Source(tests_path("operators", "lcs_operator_main"))
    +
    +LCS_operator("IntegralCurve", "ftle_double_gyre_1_domain")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_lcs_lc_1.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_lcs_lc_1.html new file mode 100644 index 000000000..aafcdfcf6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_lcs_lc_1.html @@ -0,0 +1,66 @@ + +Results for operators/lcs_lc_1.py + +

    Results of VisIt Regression Test - operators/lcs_lc_1

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Basic FTLE function with LimitCycle operator
    Testing database = ftle_double_gyre_1_domain.pics
    Testing sample source = RegularGrid
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_1_domain_RegularGrid_2DAuxGrid_LimitCycle0.000.00
    Testing sample source = NativeMesh
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_1_domain_NativeMesh_2DAuxGrid_LimitCycle0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_lcs_lc_1_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_lcs_lc_1_py.html new file mode 100644 index 000000000..25919d8a4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_lcs_lc_1_py.html @@ -0,0 +1,17 @@ +operators/lcs_lc_1.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  lcs_lc_1.py
    +#
    +#  Tests:      operator   - LCS
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       August 25, 2015
    +# ----------------------------------------------------------------------------
    +
    +Source(tests_path("operators", "lcs_operator_main"))
    +
    +LCS_operator("LimitCycle", "ftle_double_gyre_1_domain")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_lcs_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_lcs_py.html new file mode 100644 index 000000000..108c5a417 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_lcs_py.html @@ -0,0 +1,181 @@ +operators/lcs.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  LCS.py
    +#
    +#  Tests:      operator   - LCS
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       August 25, 2015
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Thur Sep 17, 2020
    +#    Shorten name used for 'Testing database' TestSection. Turn of warnings.
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("PICS_Tester")
    +
    +#-vargs="-debug 5"
    +
    +# For testing using the CLI
    +
    +#def data_path( db_name ):
    +#  db="/Projects/VisIt/trunk/build/data/%s" %(db_name)
    +#  return db
    +
    +#def Test(case_name):
    +#   swatts = SaveWindowAttributes()
    +#   swatts.family = 0
    +#   swatts.fileName = "/Projects/tmp/lcs/ser/%s" %(case_name)
    +#   SetSaveWindowAttributes(swatts)
    +#   SaveWindow()
    +#   return
    +
    +#def TestSection(tmpstr):
    +#   return
    +
    +#def Exit():
    +#   return   
    +
    +
    +# Open the database here and add a plot as for some reason it fails
    +# within a loop. It only happens with all-in-one plots with an operator
    +# such as with "Pseudocolor" and "operators/LCS/velocity"
    +db=data_path("pics_test_data/ftle_double_gyre_1_domain.pics")
    +OpenDatabase(db)
    +AddPlot("Pseudocolor", "operators/LCS/velocity")
    +
    +
    +LCSAtts = LCSAttributes()
    +LCSAtts.Resolution = (101, 51, 1)
    +LCSAtts.integrationDirection = LCSAtts.Forward
    +LCSAtts.auxiliaryGridSpacing = 0.005
    +LCSAtts.maxSteps = 1000000
    +LCSAtts.operationType = LCSAtts.Lyapunov
    +LCSAtts.cauchyGreenTensor = LCSAtts.Right
    +LCSAtts.eigenComponent = LCSAtts.Largest
    +LCSAtts.operatorType = LCSAtts.BaseValue
    +LCSAtts.terminationType = LCSAtts.Time
    +LCSAtts.terminateByTime = 1
    +LCSAtts.termTime = 4
    +LCSAtts.maxStepLength = 0.001
    +LCSAtts.integrationType = LCSAtts.AdamsBashforth
    +LCSAtts.parallelizationAlgorithmType = LCSAtts.ParallelStaticDomains
    +LCSAtts.pathlines = 1
    +LCSAtts.pathlinesCMFE = LCSAtts.CONN_CMFE
    +LCSAtts.issueAdvectionWarnings = 0
    +LCSAtts.issueBoundaryWarnings = 0
    +LCSAtts.issueTerminationWarnings = 0
    +LCSAtts.issueStepsizeWarnings = 0
    +LCSAtts.issueStiffnessWarnings = 0
    +LCSAtts.issueCriticalPointsWarnings = 0
    +
    +SetOperatorOptions(LCSAtts, 0)
    +
    +
    +databases=["ftle_double_gyre_1_domain", "ftle_double_gyre_2_domains"]
    +
    +src_type=[LCSAtts.RegularGrid, LCSAtts.NativeMesh]
    +src_type_str=["RegularGrid", "NativeMesh"]
    +
    +aux_grid=[LCSAtts.NONE, LCSAtts.TwoDim]
    +aux_grid_str=["NoAuxGrid", "2DAuxGrid"]
    +
    +TestSection("Basic FTLE function")
    +for i in range(len(databases)):
    +  db=data_path("pics_test_data/%s.pics") %(databases[i])
    +  tmpstr="Testing database = %s.pics" %(databases[i])
    +  TestSection(tmpstr)
    +  OpenDatabase(db)
    +  # Replace the database from before with this one as a new plot can
    +  # not be opened within the loop when using runtest. This issue is a
    +  # bug.
    +  ReplaceDatabase(db)
    +  #  DeleteAllPlots()
    +  #  AddPlot("Pseudocolor", "operators/LCS/velocity")
    +  for j in range(len(src_type)):
    +     tmpstr="Testing sample source = %s" %(src_type_str[j])
    +     TestSection(tmpstr)
    +     LCSAtts.sourceType = src_type[j]  # NativeMesh, RegularGrid
    +     for k in range(len(aux_grid)):
    +        tmpstr="Testing auxiliary grid = %s" %(aux_grid_str[k])
    +        TestSection(tmpstr)
    +        LCSAtts.auxiliaryGrid = aux_grid[k]  # None, TwoDim
    +        SetOperatorOptions(LCSAtts, 0)
    +        DrawPlots()
    +        tmpstr="lcs_%s_%s_%s" %(databases[i], src_type_str[j], aux_grid_str[k])
    +        Test(tmpstr)
    +
    +
    +
    +# FTLE with smallest exponent
    +LCSAtts.eigenComponent = LCSAtts.Smallest  # Smallest, Intermediate, Largest, PosShearVector, NegShearVector, PosLambdaShearVector, NegLambdaShearVector
    +SetOperatorOptions(LCSAtts, 0)
    +DrawPlots()
    +tmpstr="lcs_%s_%s_%s_Smallest" %(databases[i], src_type_str[j], aux_grid_str[k])
    +Test(tmpstr)
    +
    +
    +
    +# FTLE with left Cauchy Green Tensor
    +LCSAtts.cauchyGreenTensor = LCSAtts.Left  # Left, Right
    +LCSAtts.eigenComponent = LCSAtts.Largest  # Smallest, Intermediate, Largest, PosShearVector, NegShearVector, PosLambdaShearVector, NegLambdaShearVector
    +SetOperatorOptions(LCSAtts, 0)
    +DrawPlots()
    +tmpstr="lcs_%s_%s_%s_Left" %(databases[i], src_type_str[j], aux_grid_str[k])
    +Test(tmpstr)
    +
    +
    +
    +# FTLE with eigen value
    +LCSAtts.operationType = LCSAtts.EigenValue  # IntegrationTime, ArcLength, AverageDistanceFromSeed, EigenValue, EigenVector, Lyapunov
    +LCSAtts.cauchyGreenTensor = LCSAtts.Right  # Left, Right
    +LCSAtts.eigenComponent = LCSAtts.Largest  # Smallest, Intermediate, Largest, PosShearVector, NegShearVector, PosLambdaShearVector, NegLambdaShearVector
    +SetOperatorOptions(LCSAtts, 0)
    +DrawPlots()
    +tmpstr="lcs_%s_%s_%s_EigenValue" %(databases[i], src_type_str[j], aux_grid_str[k])
    +Test(tmpstr)
    +
    +
    +Exit()
    +
    +
    +# 1 processor:
    +
    +#wo/aux grid
    +
    +# Native 1  -0.04343 - 1.066   190 zeros # Match
    +# Rect   1  -0.04343 - 1.066   190 zeros #
    +
    +# Native 2  -0.04343 - 1.066   193 zeros # Match
    +# Rect   2  -0.04343 - 1.233   190 zeros # Match with ghost cells but for a few cells.
    +
    +# Errors in the domain boundary gradients 
    +
    +
    +#w/aux grid
    +
    +# Native 1  0.004539 - 1.396   304 exited / 680 zeros # Match
    +# Rect   1  0.004539 - 1.396   304 exited / 680 zeros # 
    +
    +# Native 2  0.004539 - 1.396   308 exited / 690 zeros # Match
    +# Rect   2  0.004539 - 1.396   304 exited / 680 zeros #
    +
    +
    +# 4 processors:
    +
    +#wo/aux grid
    +
    +# Native 1  -0.04343 - 1.066   190 zeros # Match
    +# Rect   1  -0.04343 - 1.066   190 zeros #
    +
    +# Native 2  -0.04343 - 1.066   193 zeros # Match
    +# Rect   2  -0.04343 - 1.233   190 zeros # Match with ghost cells but for a few cells.
    +
    +#w/aux grid
    +
    +# Native 1  0.004539 - 1.396   304 exited / 680 zeros # Match
    +# Rect   1  0.004539 - 1.396   304 exited / 680 zeros # 
    +
    +# Native 2  0.004539 - 1.396   308 exited / 690 zeros # Match
    +# Rect   2  0.004539 - 1.396   304 exited / 680 zeros #
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_moveoperators.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_moveoperators.html new file mode 100644 index 000000000..4d5f0fc3a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_moveoperators.html @@ -0,0 +1,116 @@ + +Results for operators/moveoperators.py + +

    Results of VisIt Regression Test - operators/moveoperators

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    moveoperator_00.020.00
    moveoperator_10.000.00
    moveoperator_20.000.00
    moveoperator_30.000.00
    moveoperator_40.000.00
    moveoperator_50.000.00
    moveoperator_60.000.00
    moveoperator_70.000.00
    moveoperator_80.000.00
    moveoperator_90.000.00
    moveoperator_100.000.00
    moveoperator_110.000.00
    moveoperator_120.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_moveoperators_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_moveoperators_py.html new file mode 100644 index 000000000..c8511c631 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_moveoperators_py.html @@ -0,0 +1,226 @@ +operators/moveoperators.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  moveoperators.py
    +#
    +#  Tests:      plots     - Pseudocolor, Mesh, FilledBoundary
    +#              operators - Erase, Isosurface, Reflect, Slice, Transform
    +#
    +#  Defect ID:  '1837
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Apr 17 16:45:46 PST 2003
    +#
    +#  Modifications:
    +#    Eric Brugger, Thu May  8 12:57:56 PDT 2003
    +#    Remove a call to ToggleAutoCenterMode since it no longer exists.
    +#
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset plots.
    +#
    +#    Kathleen Bonnell, Wed Mar 17 07:33:40 PST 2004 
    +#    Set default Slice atts, as these have changed. 
    +#
    +#    Kathleen Bonnell, Wed May  5 08:13:22 PDT 2004 
    +#    Modified Slice atts to get same picture as defaults have changed. 
    +#
    +#    Brad Whitlock, Tue Jan 17 12:14:21 PDT 2006
    +#    Added runTest4.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Thu Jul 11 08:18:42 PDT 2013
    +#    Removed legacy sytle annotation setting.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def InitAnnotation():
    +    # Turn off all annotation except for the bounding box.
    +    a = AnnotationAttributes()
    +    TurnOffAllAnnotations(a)
    +    a.axes2D.visible = 1
    +    a.axes2D.xAxis.label.visible = 0
    +    a.axes2D.yAxis.label.visible = 0
    +    a.axes2D.xAxis.title.visible = 0
    +    a.axes2D.yAxis.title.visible = 0
    +    a.axes3D.bboxFlag = 1
    +    SetAnnotationAttributes(a)
    +
    +def InitDefaults():
    +    # Set the default reflect operator attributes.
    +    reflect = ReflectAttributes()
    +    reflect.SetReflections(1, 1, 0, 0, 0, 0, 0, 0)
    +    SetDefaultOperatorOptions(reflect)
    +    slice = SliceAttributes()
    +    slice.project2d = 0
    +    slice.SetAxisType(slice.XAxis)
    +    slice.SetFlip(1)
    +    SetDefaultOperatorOptions(slice)
    +
    +def setTheFirstView():
    +    # Set the view
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.695118, 0.351385, 0.627168)
    +    v.focus = (-10, 0, 0)
    +    v.viewUp = (0.22962, 0.935229, -0.269484)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -70
    +    v.farPlane = 70
    +    v.perspective = 1
    +    SetView3D(v)
    +
    +#
    +# Test operator promotion, demotion, and removal.
    +#
    +def runTest1():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +
    +    # Set up a plot with a few operators.
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    AddOperator("Isosurface")
    +    AddOperator("Slice")
    +    AddOperator("Reflect")
    +    DrawPlots()
    +    setTheFirstView()
    +
    +    # Take a picture of the initial setup.
    +    Test("moveoperator_0")
    +
    +    # Move the reflect so that it is before the slice in the pipeline.
    +    # The pipeline will be: Isosurface, Reflect, Slice
    +    DemoteOperator(2)
    +    DrawPlots()
    +    Test("moveoperator_1")
    +
    +    # Move the reflect operator back so that the pipeline matches the
    +    # initial configuration: Isosurface, Slice, Reflect
    +    PromoteOperator(1)
    +    DrawPlots()
    +    Test("moveoperator_2")
    +
    +    # Remove the slice operator from the middle, resulting in:
    +    # Isosurface, Reflect
    +    RemoveOperator(1)
    +    DrawPlots()
    +    Test("moveoperator_3")
    +
    +    # Remove the Isosurface operator, resulting in: Reflect
    +    RemoveOperator(0)
    +    DrawPlots()
    +    Test("moveoperator_4")
    +
    +    # Remove the Reflect operator
    +    RemoveOperator(0)
    +    DrawPlots()
    +    Test("moveoperator_5")
    +
    +    DeleteAllPlots()
    +
    +#
    +# Test removing an operator from more than one plot at the same time.
    +#
    +def runTest2():
    +    all = 1
    +    # Set up a couple plots of globe
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    AddPlot("Mesh", "mesh1")
    +    # Add a reflect operator to both plots.
    +    AddOperator("Reflect", all)
    +    DrawPlots()
    +    Test("moveoperator_6")
    +
    +    # Remove the operator from both plots.
    +    RemoveOperator(0, all)
    +    DrawPlots()
    +    Test("moveoperator_7")
    +    DeleteAllPlots()
    +
    +#
    +# Test setting attributes for multiple operators of the same type.
    +#
    +def runTest3():
    +    # Set up a couple plots of globe
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    pc = PseudocolorAttributes()
    +    pc.SetOpacityType(pc.Constant)
    +    pc.opacity = 0.2
    +    SetPlotOptions(pc)
    +    AddPlot("FilledBoundary", "mat1")
    +
    +    # The subset plot is the active plot, add a couple transform
    +    # operators to it.
    +    AddOperator("Transform")
    +    AddOperator("Transform")
    +
    +    # Set the attributes for the *first* transform operator.
    +    # This results in a full size globe translated up in Y.
    +    t0 = TransformAttributes()
    +    t0.doTranslate = 1
    +    t0.translateY = 15
    +    SetOperatorOptions(t0, 0)
    +    DrawPlots()
    +    Test("moveoperator_8")
    +
    +    # Set the attributes for the *second* transform operator.
    +    # The plot has been translated, now scale it. Since it has already
    +    # been translated, this will also translate it a little in Y.
    +    t1 = TransformAttributes()
    +    t1.doScale = 1
    +    t1.scaleX = 0.5
    +    t1.scaleY = 0.5
    +    t1.scaleZ = 0.5
    +    SetOperatorOptions(t1, 1)
    +    Test("moveoperator_9")
    +
    +    # Demote the last operator to reverse the order of the transformations.
    +    DemoteOperator(1)
    +    # Make the pc plot opaque again
    +    SetActivePlots(0)
    +    pc.SetOpacityType(pc.FullyOpaque)
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    Test("moveoperator_10")
    +
    +    DeleteAllPlots()
    +
    +#
    +# Test that removing an operator using the RemoveOperator(i) method causes
    +# the vis window to get redrawn.
    +#
    +def runTest4():
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    AddOperator("Isosurface")
    +    DrawPlots()
    +    Test("moveoperator_11")
    +
    +    RemoveOperator(0)
    +    Test("moveoperator_12")
    +    DeleteAllPlots()
    +
    +#
    +# Set up the environment and run all of the tests.
    +#
    +def runTests():
    +    InitAnnotation()
    +    InitDefaults()
    +    runTest1()
    +    runTest2()
    +    runTest3()
    +    runTest4()
    +
    +# Run the tests.
    +runTests()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_multires.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_multires.html new file mode 100644 index 000000000..d1bdcb19b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_multires.html @@ -0,0 +1,48 @@ + +Results for operators/multires.py + +

    Results of VisIt Regression Test - operators/multires

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    multires_00.000.00
    multires_10.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_multires_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_multires_py.html new file mode 100644 index 000000000..894ae3e5f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_multires_py.html @@ -0,0 +1,34 @@ +operators/multires.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  multires.py
    +#
    +#  Programmer: Tom Fogal
    +#  Date:       August 6, 2010
    +#
    +# ----------------------------------------------------------------------------
    +
    +ds = data_path("Chombo_test_data/chombo.visit")
    +OpenDatabase(ds)
    +
    +AddPlot("Pseudocolor", "Scalar_1")
    +AddOperator("MultiresControl")
    +
    +att = MultiresControlAttributes()
    +att.resolution = 0
    +SetOperatorOptions(att)
    +
    +DrawPlots()
    +Test("multires_0")
    +
    +att.resolution = 1
    +SetOperatorOptions(att)
    +DrawPlots()
    +Test("multires_1")
    +
    +DeleteAllPlots()
    +
    +CloseDatabase(ds)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_onionpeel.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_onionpeel.html new file mode 100644 index 000000000..884dc2a2d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_onionpeel.html @@ -0,0 +1,486 @@ + +Results for operators/onionpeel.py + +

    Results of VisIt Regression Test - operators/onionpeel

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_onionpeel_010.000.00
    ops_onionpeel_020.000.00
    ops_onionpeel_030.000.00
    ops_onionpeel_040.000.00
    ops_onionpeel_050.000.00
    ops_onionpeel_060.000.00
    ops_onionpeel_070.000.00
    ops_onionpeel_080.000.00
    ops_onionpeel_090.000.00
    ops_onionpeel_100.000.00
    ops_onionpeel_110.000.00
    ops_onionpeel_120.000.00
    ops_onionpeel_130.000.00
    ops_onionpeel_140.000.00
    ops_onionpeel_150.000.00
    ops_onionpeel_160.000.00
    ops_onionpeel_170.000.00
    ops_onionpeel_180.000.00
    ops_onionpeel_190.000.00
    ops_onionpeel_200.000.00
    ops_onionpeel_210.000.00
    ops_onionpeel_220.000.00
    ops_onionpeel_230.000.00
    ops_onionpeel_240.000.00
    ops_onionpeel_250.000.00
    ops_onionpeel_260.000.00
    Arbitrary Polyhedra, honor original mesh
    poly_originalMesh_000.000.00
    poly_originalMesh_010.000.00
    poly_originalMesh_020.000.00
    poly_originalMesh_030.000.00
    poly_originalMesh_040.000.00
    poly_originalMesh_050.000.00
    poly_originalMesh_060.000.00
    poly_originalMesh_070.000.00
    poly_originalMesh_080.000.00
    poly_originalMesh_090.000.00
    poly_originalMesh_100.000.00
    Arbitrary Polyhedra, honor actual mesh
    poly_actualMesh000.000.00
    poly_actualMesh010.000.00
    poly_actualMesh020.000.00
    poly_actualMesh030.000.00
    poly_actualMesh040.000.00
    poly_actualMesh050.000.00
    poly_actualMesh060.000.00
    poly_actualMesh070.000.00
    poly_actualMesh080.000.00
    poly_actualMesh090.000.00
    poly_actualMesh100.000.00
    poly_actualMesh110.000.00
    poly_actualMesh120.000.00
    poly_actualMesh130.000.00
    poly_actualMesh140.000.00
    poly_actualMesh150.000.00
    poly_actualMesh160.000.00
    poly_actualMesh170.000.00
    poly_actualMesh180.000.00
    poly_actualMesh190.000.00
    poly_actualMesh200.000.00
    poly_actualMesh210.000.00
    poly_actualMesh220.000.00
    poly_actualMesh230.000.00
    poly_actualMesh240.000.00
    poly_actualMesh250.000.00
    poly_actualMesh260.000.00
    bigsil_mesh_010.000.00
    bigsil_mesh_020.000.00
    bigsil_mesh_030.000.00
    bigsil_mesh_040.000.00
    amr_3d_010.000.00
    amr_3d_020.000.00
    amr_3d_030.000.00
    amr_3d_040.000.00
    amr_2d_010.000.00
    amr_2d_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_onionpeel_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_onionpeel_py.html new file mode 100644 index 000000000..be47d5c1f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_onionpeel_py.html @@ -0,0 +1,643 @@ +operators/onionpeel.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  onionpeel.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, mulitple domain, mulitple groups
    +#              plots     - subset
    +#              operators - onionpeel
    +#              selection - none
    +#
    +#  Defect ID:  
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       December 23, 2003 
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Feb 26 15:31:31 PST 2004
    +#    Added TestUCD.
    +#
    +#    Kathleen Bonnell, Wed Dec 15 15:24:50 PST 2004 
    +#    Added TestGlobalZoneId.
    +#
    +#    Kathleen Bonnell, Tue Jan 18 19:34:41 PST 2005 
    +#    Added TestMatSelect.
    +#
    +#    Kathleen Bonnell, Wed Jan 19 15:45:38 PST 2005 
    +#    Added TestNodeId.
    +#
    +#    Kathleen Bonnell, Tue Jun 14 11:33:39 PDT 2005 
    +#    Added TestFilledBoundary.
    +#
    +#    Kathleen Bonnell, Thu Jul 21 09:09:26 PDT 2005 
    +#    Modified indices used in TestBigSil, to match corrsponding changes
    +#    to bigsil.silo. 
    +#
    +#    Kathleen Bonnell, Fri Aug 19 16:23:45 PDT 2005 
    +#    Modified indices used in TestBigSil, more changes to bigsil.silo. 
    +#
    +#    Kathleen Bonnell, Thu Sep 22 11:59:42 PDT 2005 
    +#    Added TestBoundary. 
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Fri Jul 25 15:10:11 MST 2014
    +#    Added ArbPoly test, which demonstrates use of new att: honorOriginalMesh.
    +#
    +#    Kathleen Biagas, Mon Mar 23 17:25:07 PDT 2015
    +#    Modified AMR test to include the default Subset plot, now that it
    +#    is fixed.
    +#
    +#    Kathleen Biagas, Tue Nov 29 10:40:50 PST 2022
    +#    Change use of obosolete text settings to new textFont settings.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def TestBigSil():
    +    OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +
    +    AddPlot("Subset", "domains")
    +    AddPlot("Subset", "blocks")
    +    s = SubsetAttributes()
    +    s.legendFlag = 0
    +    s.wireframe = 1
    +    s.colorType = s.ColorBySingleColor
    +    s.singleColor = (100,100,100,255)
    +    SetPlotOptions(s)
    +
    +    SetActivePlots(0)
    +    AddOperator("OnionPeel")
    +    op = OnionPeelAttributes()
    +    op.categoryName = "blocks"
    +    op.subsetName = "block0"
    +    op.index = (4, 11, 5)
    +    op.logical = 1
    +    op.adjacencyType = op.Face
    +    op.requestedLayer = 3
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +
    +    Test("ops_onionpeel_01")
    +
    +    op.subsetName = "block1"
    +    op.index = (18, 4, 5)
    +    SetOperatorOptions(op)
    +
    +    Test("ops_onionpeel_02")
    +
    +    op.subsetName = "block2"
    +    op.index = (11, 18, 5)
    +    SetOperatorOptions(op)
    +
    +    Test("ops_onionpeel_03")
    +
    +    DeleteAllPlots()
    +
    +def TestUCD():
    +    # This is to test that onion peel will work (by default)
    +    # on the first "On" set -- in this case "domain4".
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    domains = ("domain4", "domain5", "domain6")
    +    TurnDomainsOff()
    +    TurnDomainsOn(domains)
    +    DrawPlots()
    +    ResetView()
    +    SetViewExtentsType("actual")
    +    AddOperator("OnionPeel")
    +    DrawPlots()
    +    Test("ops_onionpeel_04")
    +
    +    DeleteAllPlots()
    +
    +def TestGlobalZoneId():
    +    # This is to test that onion peel will work when 
    +    # a global cell number is specified. 
    +    OpenDatabase(silo_data_path("global_node.silo"))
    +
    +    TurnDomainsOn()
    +    AddPlot("Subset", "domains")
    +    s = SubsetAttributes()
    +    s.legendFlag = 0
    +    s.wireframe = 1
    +    s.colorType = s.ColorBySingleColor
    +    s.singleColor = (100,100,100,255)
    +    SetPlotOptions(s)
    +    AddPlot("Pseudocolor", "dist")
    +    AddOperator("OnionPeel")
    +    op = OnionPeelAttributes()
    +    op.categoryName = "domains"
    +    op.subsetName = "domain5"
    +    op.index = 372
    +    op.logical = 0
    +    op.adjacencyType = op.Face
    +    op.requestedLayer = 7
    +    SetOperatorOptions(op)
    +
    +    DrawPlots()
    +    ResetView()
    +    SetViewExtentsType("original")
    +
    +    Test("ops_onionpeel_05")
    +
    +    #only change is to specify that seed cell is global
    +    op.useGlobalId = 1
    +    SetOperatorOptions(op)
    +    Test("ops_onionpeel_06")
    +
    +    DeleteAllPlots()
    +
    +def TestMatSelect():
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("FilledBoundary", "mat1")
    +    AddOperator("OnionPeel")
    +    op = OnionPeelAttributes()
    +    op.index = 8
    +    op.requestedLayer = 5
    +    op.adjacencyType = op.Face
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    SetViewExtentsType("actual")
    +    Test("ops_onionpeel_07")
    +
    +    TurnMaterialsOff("1")
    +    Test("ops_onionpeel_08")
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    TurnMaterialsOff("4")
    +    AddOperator("OnionPeel")
    +    op.requestedLayer = 2
    +    op.index = 27
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    Test("ops_onionpeel_09")
    +    TurnMaterialsOn()
    +    DeleteAllPlots()
    +
    +def TestNodeId():
    +    OpenDatabase(silo_data_path("ucd2d.silo"))
    +
    +    AddPlot("Mesh", "ucdmesh2d")
    +    AddPlot("Pseudocolor", "d")
    +    AddOperator("OnionPeel")
    +    op = OnionPeelAttributes()
    +    op.index = 0
    +    op.seedType = op.SeedCell
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    Test("ops_onionpeel_10")
    +
    +    op.seedType = op.SeedNode
    +    SetOperatorOptions(op)
    +    Test("ops_onionpeel_11")
    +
    +    op.requestedLayer = 2
    +    op.adjacencyType = op.Face
    +    SetOperatorOptions(op)
    +    Test("ops_onionpeel_12")
    +
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Mesh", "quadmesh3d")
    +    AddPlot("Pseudocolor", "d")
    +    SetActivePlots((0, 1))
    +    TurnMaterialsOff("1")
    +    AddOperator("OnionPeel")
    +    op.index = 44
    +    op.requestedLayer = 0
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    SetViewExtentsType("actual")
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, -1)
    +    SetView3D(v)
    +    Test("ops_onionpeel_13")
    +    op.requestedLayer = 12
    +    SetOperatorOptions(op)
    +    Test("ops_onionpeel_14")
    +    TurnMaterialsOn()
    +    DeleteAllPlots()
    +
    +def TestFilledBoundary():
    +    # need to test index on high-side
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Mesh", "quadmesh3d")
    +    AddPlot("FilledBoundary", "mat1")
    +    SetActivePlots((0,1))
    +    AddOperator("OnionPeel")
    +    op = OnionPeelAttributes()
    +    op.index = 15735
    +    op.requestedLayer = 5
    +    op.adjacencyType = op.Face
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    ResetView()
    +    SetViewExtentsType("actual")
    +    Test("ops_onionpeel_15")
    +
    +    op.seedType = op.SeedNode
    +    op.index = 32713
    +    SetOperatorOptions(op)
    +    Test("ops_onionpeel_16")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    AddPlot("FilledBoundary", "mat1")
    +    SetActivePlots((0,1))
    +    AddOperator("OnionPeel")
    +    op.seedType = op.SeedCell
    +    op.requestedLayer = 2
    +    op.index = 742
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    Test("ops_onionpeel_17")
    +    op.index = 1117
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    ResetView()
    +    Test("ops_onionpeel_18")
    +
    +    op.seedType = op.SeedNode
    +    op.requestedLayer = 6
    +    op.index = 965
    +    SetOperatorOptions(op)
    +    Test("ops_onionpeel_19")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +    AddPlot("Mesh", "curvmesh3d")
    +    AddPlot("FilledBoundary", "mat1")
    +    SetActivePlots((0, 1))
    +    AddOperator("OnionPeel")
    +    op.seedType = op.SeedCell
    +    op.requestedLayer = 5
    +    op.index = 19412
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, 1)
    +    v.focus = (-2.29977, 0.966088, 16.5)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 5.61745
    +    v.nearPlane = -11.2349
    +    v.farPlane = 11.2349
    +    v.imagePan = (-0.00484124, 0.00104964)
    +    v.imageZoom = 4.08886
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (-2.29977, 0.966088, 16.5)
    +    SetView3D(v)
    +    Test("ops_onionpeel_20")
    +    DeleteAllPlots()
    +
    +
    +def TestBoundary():
    +    # need to test index on high-side
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Mesh", "quadmesh3d")
    +    AddPlot("Boundary", "mat1")
    +    SetActivePlots((0,1))
    +    AddOperator("OnionPeel")
    +    op = OnionPeelAttributes()
    +    op.index = 15735
    +    op.requestedLayer = 5
    +    op.adjacencyType = op.Face
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    ResetView()
    +    SetViewExtentsType("actual")
    +    Test("ops_onionpeel_21")
    +
    +    op.seedType = op.SeedNode
    +    op.index = 1370
    +    SetOperatorOptions(op)
    +    Test("ops_onionpeel_22")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    AddPlot("Boundary", "mat1")
    +    SetActivePlots((0,1))
    +    AddOperator("OnionPeel")
    +    op.seedType = op.SeedCell
    +    op.requestedLayer = 2
    +    op.index = 17
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (1, 0, 0)
    +    v.viewUp = (0, 1, 0)
    +    SetView3D(v)
    +    Test("ops_onionpeel_23")
    +    op.index = 117
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    ResetView()
    +    Test("ops_onionpeel_24")
    +
    +    op.seedType = op.SeedNode
    +    op.requestedLayer = 6
    +    op.index = 13
    +    SetOperatorOptions(op)
    +    Test("ops_onionpeel_25")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +    AddPlot("Mesh", "curvmesh3d")
    +    AddPlot("Boundary", "mat1")
    +    SetActivePlots((0, 1))
    +    AddOperator("OnionPeel")
    +    op.seedType = op.SeedCell
    +    op.requestedLayer = 5
    +    op.index = 19472
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, 1)
    +    v.focus = (-2.29977, 0.966088, 16.5)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 5.61745
    +    v.nearPlane = -11.2349
    +    v.farPlane = 11.2349
    +    v.imagePan = (-0.00484124, 0.00104964)
    +    v.imageZoom = 4.08886
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (-2.29977, 0.966088, 16.5)
    +    SetView3D(v)
    +    Test("ops_onionpeel_26")
    +    DeleteAllPlots()
    +
    +def TestArbPoly():
    +    TestSection("Arbitrary Polyhedra, honor original mesh")
    +    OpenDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +    DefineScalarExpression("gzid", "global_zoneid(<3D/mesh1>)")
    +    AddPlot("Mesh", "3D/mesh1")
    +    AddPlot("Pseudocolor", "gzid")
    +    pc = PseudocolorAttributes()
    +    pc.colorTableName="levels"
    +    SetPlotOptions(pc)
    +    AddOperator("OnionPeel")
    +    DrawPlots()
    +    ResetView()
    +    op = OnionPeelAttributes()
    +
    +    SetQueryOutputToObject()
    +    # there are only 11 zones in original mesh
    +    # when NumZonesQuery is fixed, can use it instead
    +    # SetActivePlots(0)
    +    # numZones = Query("NumZones", use_actual_data=0)['num_zones']
    +    # SetActivePlots(1)
    +    numZones = 11
    +    for i in range(numZones):
    +        op.index = i
    +        SetOperatorOptions(op)
    +        DrawPlots()
    +        Test("poly_originalMesh_%02d"%i)
    +
    +    TestSection("Arbitrary Polyhedra, honor actual mesh")
    +    op.honorOriginalMesh = 0
    +    SetActivePlots(0)
    +    numZones = Query("NumZones", use_actual_data=1)['num_zones']
    +    print("numZones: ", numZones)
    +    SetActivePlots(1)
    +    for i in range (numZones):
    +        op.index = i
    +        SetOperatorOptions(op)
    +        DrawPlots()
    +        Test("poly_actualMesh%02d"%i)
    +
    +    DeleteAllPlots()
    +
    +def TestBigSilMesh():
    +    # use actual spatial extents
    +    SetViewExtentsType(1)
    +
    +    # non-logical index
    +    OpenDatabase(silo_data_path("bigsil.silo"))
    +    AddPlot("Mesh", "mesh")
    +    mesh = MeshAttributes()
    +    mesh.showInternal = 1
    +    SetPlotOptions(mesh)
    +
    +    AddPlot("Label", "mesh")
    +    label = LabelAttributes()
    +    label.showNodes = 1
    +    label.showCells = 1
    +    label.drawLabelsFacing = label.FrontAndBack
    +    label.labelDisplayFormat = label.Index
    +    label.textFont1.useForegroundColor = 0
    +    label.textFont1.color = (255, 0, 0, 0)
    +    label.textFont2.useForegroundColor = 0
    +    label.textFont2.color = (0, 0, 255, 0)
    +    label.depthTestMode = label.LABEL_DT_NEVER
    +    SetPlotOptions(label)
    +
    +    AddOperator("OnionPeel", 1)
    +    op = OnionPeelAttributes()
    +    op.categoryName = "domains"
    +    op.subsetName = "domain14"
    +    op.logical = 0
    +    op.index = (211)
    +    op.requestedLayer = 0
    +    op.seedType = op.SeedNode
    +    SetOperatorOptions(op,0, 1);
    +    DrawPlots()
    +    Test("bigsil_mesh_01")
    +
    +    op.seedType = op.SeedCell
    +    op.index = (223)
    +    op.requestedLayer = 1
    +    SetOperatorOptions(op,0, 1);
    +    DrawPlots()
    +    Test("bigsil_mesh_02")
    +
    +    # Blocks/Domains, logical index
    +    op.logical = 1
    +    op.index = (3, 2, 3)
    +    op.requestedLayer = 0
    +    op.seedType = op.SeedNode
    +    SetOperatorOptions(op,0, 1);
    +    DrawPlots()
    +    Test("bigsil_mesh_03")
    +
    +    op.seedType = op.SeedCell
    +    op.index = (6, 3, 4)
    +    op.requestedLayer = 1
    +    SetOperatorOptions(op,0, 1);
    +    DrawPlots()
    +    Test("bigsil_mesh_04")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("bigsil.silo"))
    +    # use original spatial extents
    +    SetViewExtentsType(0)
    +
    +def TestAMR():
    +    # AMR Mesh
    +    OpenDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +    # use actual spatial extents
    +    SetViewExtentsType(1)
    +
    +    AddPlot("Mesh", "amr_mesh")
    +    mesh = MeshAttributes()
    +    mesh.showInternal = 1
    +    SetPlotOptions(mesh)
    +
    +    AddPlot("Label", "amr_mesh")
    +    label = LabelAttributes()
    +    label.showNodes = 1
    +    label.showCells = 1
    +    label.drawLabelsFacing = label.FrontAndBack
    +    label.labelDisplayFormat = label.Index
    +    label.textFont1.useForegroundColor = 0
    +    label.textFont1.color = (255, 0, 0, 0)
    +    label.textFont2.useForegroundColor = 0
    +    label.textFont2.color = (0, 0, 255, 0)
    +    label.depthTestMode = label.LABEL_DT_NEVER
    +    SetPlotOptions(label)
    +
    +    AddOperator("OnionPeel", 1)
    +    op = OnionPeelAttributes()
    +    op.categoryName = "levels"
    +    op.subsetName = "level2"
    +    op.logical = 1
    +    op.index = (11, 15, 8)
    +    op.seedType = op.SeedNode
    +    SetOperatorOptions(op,0, 1);
    +    DrawPlots()
    +    Test("amr_3d_01")
    +
    +    op.seedType = op.SeedCell
    +    op.index = (10, 15, 8)
    +    op.requestedLayer = 1
    +    SetOperatorOptions(op,0, 1);
    +    Test("amr_3d_02")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +    # Test Vector plot
    +    OpenDatabase(data_path("samrai_test_data/mats-par3/dumps.visit"))
    +
    +    AddPlot("Mesh", "amr_mesh")
    +    AddPlot("Vector", "Velocity")
    +    TimeSliderNextState()
    +    AddOperator("OnionPeel", 1)
    +    op = OnionPeelAttributes()
    +    op.categoryName = "levels"
    +    op.subsetName = "level1"
    +    op.logical = 1
    +    op.index = (12, 15, 10)
    +    op.seedType = op.SeedCell
    +    op.requestedLayer = 1
    +    SetOperatorOptions(op,0, 1);
    +    DrawPlots()
    +    Test("amr_3d_03")
    +
    +    op.seedType = op.SeedNode
    +    op.index = (13, 15, 10)
    +    op.requestedLayer = 0
    +    SetOperatorOptions(op,0, 1);
    +    Test("amr_3d_04")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("samrai_test_data/mats-par3/dumps.visit"))
    +
    +    # 2D AMR Mesh
    +    OpenDatabase(data_path("samrai_test_data/ale2d/dumps.visit"))
    +
    +    # use actual spatial extents
    +    SetViewExtentsType(1)
    +
    +    AddPlot("Mesh", "amr_mesh")
    +    AddPlot("Contour", "Density")
    +
    +    AddOperator("OnionPeel", 1)
    +    op = OnionPeelAttributes()
    +    op.categoryName = "levels"
    +    op.subsetName = "level2"
    +    op.logical = 1
    +    op.index = (384, 490)
    +    op.seedType = op.SeedCell
    +    op.requestedLayer = 1
    +    SetOperatorOptions(op,0, 1);
    +    DrawPlots()
    +    Test("amr_2d_01")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("samrai_test_data/ale2d/dumps.visit"))
    +
    +    OpenDatabase(data_path("AMRStitchCell_test_data/AMRStitchCellTest.1.no_ghost.phi.2d.hdf5"))
    +    AddPlot("Subset", "levels")
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("Contour", "phi")
    +    AddPlot("Label", "Mesh")
    +    label = LabelAttributes()
    +    label.showNodes = 1
    +    label.showCells = 1
    +    label.drawLabelsFacing = label.FrontAndBack
    +    label.labelDisplayFormat = label.Index
    +    label.textFont1.useForegroundColor = 0
    +    label.textFont1.color = (255, 0, 0, 0)
    +    label.textFont2.useForegroundColor = 0
    +    label.textFont2.color = (0, 0, 255, 0)
    +    label.depthTestMode = label.LABEL_DT_NEVER
    +    SetPlotOptions(label)
    +
    +    AddOperator("OnionPeel", 1)
    +    op = OnionPeelAttributes()
    +    op.categoryName = "levels"
    +    op.subsetName = "level2"
    +    op.logical = 1
    +    op.seedType = op.SeedCell
    +    op.requestedLayer = 1
    +    op.index = (24, 35)
    +    SetOperatorOptions(op, 0, 1)
    +    DrawPlots()
    +    Test("amr_2d_02")
    +    # use original spatial extents
    +    SetViewExtentsType(0)
    +
    +def Main():
    +    TestBigSil()
    +    TestUCD()
    +    TestGlobalZoneId()
    +    TestMatSelect()
    +    TestNodeId()
    +    TestFilledBoundary()
    +    TestBoundary()
    +    TestArbPoly()
    +    TestBigSilMesh()
    +    TestAMR()
    +
    +Main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_operators.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_operators.html new file mode 100644 index 000000000..990cb976c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_operators.html @@ -0,0 +1,78 @@ + +Results for operators/operators.py + +

    Results of VisIt Regression Test - operators/operators

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_sliceop010.000.00
    ops_sliceop020.000.00
    ops_clip010.000.00
    ops_clip020.000.00
    ops_clip030.000.00
    ops_onion010.000.00
    ops_onion020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_operators_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_operators_py.html new file mode 100644 index 000000000..58850d85d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_operators_py.html @@ -0,0 +1,141 @@ +operators/operators.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  operators.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - pc
    +#              operators - slice, clip, onionpeel
    +#              selection - none
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       April 17, 2002
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Wed Jul 24 10:21:07 PDT 2002
    +#    Remove threshold tests in favor of its own file.
    +#
    +#    Hank Childs. Tue Nov 19 15:45:12 PST 2002
    +#    Change Aslice to Slice for slicing interface change.
    +#
    +#    Eric Brugger, Fri Jan 17 16:53:32 PST 2003
    +#    Change Erase to Clip for interface change.
    +#
    +#    Eric Brugger, Thu May  8 12:47:54 PDT 2003
    +#    Change the setting of one of the Slice attributes because of an
    +#    interface change.
    +#
    +#    Kathleen Bonnell, Thu Apr 29 07:40:58 PDT 2004 
    +#    Default slice atts have changed, update accordingly. 
    +#    
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.SetViewNormal(-0.528889, 0.367702, 0.7649)
    +v.SetViewUp(0.176641, 0.929226, -0.324558)
    +v.SetParallelScale(17.3205)
    +v.SetPerspective(1)
    +SetView3D(v)
    +
    +# Slice
    +slice = SliceAttributes()
    +
    +RemoveAllOperators()
    +slice.originType = slice.Point
    +slice.SetOriginPoint(1,2,3)
    +slice.SetNormal(1,-1,0)
    +slice.SetUpAxis(0,0,1)
    +slice.project2d = 1
    +SetDefaultOperatorOptions(slice)
    +AddOperator("Slice")
    +DrawPlots()
    +
    +Test("ops_sliceop01")
    +
    +RemoveAllOperators()
    +slice.project2d = 0
    +SetDefaultOperatorOptions(slice)
    +AddOperator("Slice")
    +DrawPlots()
    +
    +Test("ops_sliceop02")
    +
    +# Clip
    +clip = ClipAttributes()
    +
    +RemoveAllOperators()
    +clip.plane1Status = 1
    +clip.SetPlane1Origin(1,2,3)
    +clip.SetPlane1Normal(-1,1,0)
    +clip.funcType = 0
    +SetDefaultOperatorOptions(clip)
    +AddOperator("Clip")
    +DrawPlots()
    +
    +Test("ops_clip01")
    +
    +RemoveAllOperators()
    +clip.SetCenter(0,0,10)
    +clip.radius = 9
    +clip.funcType = 1
    +SetDefaultOperatorOptions(clip)
    +AddOperator("Clip")
    +DrawPlots()
    +
    +Test("ops_clip02")
    +
    +clip = ClipAttributes()
    +clip.plane1Status = 1
    +clip.SetPlane1Origin(1,2,3)
    +clip.SetPlane1Normal(-1,1,0)
    +clip.plane2Status = 1
    +clip.SetPlane2Origin(0,0,0)
    +clip.SetPlane2Normal(-1,0,0)
    +clip.funcType = 0
    +SetDefaultOperatorOptions(clip)
    +AddOperator("Clip")
    +DrawPlots()
    +
    +Test("ops_clip03")
    +
    +# OnionPeel
    +onion = OnionPeelAttributes()
    +
    +RemoveAllOperators()
    +onion.adjacencyType = 0
    +onion.index = 30
    +onion.requestedLayer = 3
    +SetDefaultOperatorOptions(onion)
    +AddOperator("OnionPeel")
    +DrawPlots()
    +
    +Test("ops_onion01")
    +
    +RemoveAllOperators()
    +onion.adjacencyType = 1
    +onion.requestedLayer = 7
    +SetDefaultOperatorOptions(onion)
    +AddOperator("OnionPeel")
    +DrawPlots()
    +
    +Test("ops_onion02")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_persistent_particles.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_persistent_particles.html new file mode 100644 index 000000000..eeba49707 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_persistent_particles.html @@ -0,0 +1,72 @@ + +Results for operators/persistent_particles.py + +

    Results of VisIt Regression Test - operators/persistent_particles

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    persistent_particles_010.000.00
    persistent_particles_020.000.00
    persistent_particles_030.000.00
    persistent_particles_040.000.00
    persistent_particles_050.000.00
    persistent_particles_060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_persistent_particles_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_persistent_particles_py.html new file mode 100644 index 000000000..d64476499 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_persistent_particles_py.html @@ -0,0 +1,173 @@ +operators/persistent_particles.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  persistent_particles.py
    +#
    +#  Programmer: Hank Childs
    +#  Date:       October 15, 2010
    +#
    +#  Modifications:
    +#     Eddie Rusu, Tue Apr 13 12:08:59 PDT 2021
    +#     Changed Pseudocolor CurrentPlot to ActualData.
    +#
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(data_path("synergia_test_data/vis_particles_* database"),0, "Vs")
    +
    +AddPlot("Pseudocolor", "particles_6")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.outputMeshType = 0
    +ThresholdAtts.listedVarNames = ("default")
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (-1e+37)
    +ThresholdAtts.upperBounds = (20)
    +ThresholdAtts.defaultVarName = "particles_6"
    +ThresholdAtts.defaultVarIsScalar = 1
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.282153, 0.56578, 0.774779)
    +View3DAtts.focus = (-0.000283548, -1.60497e-05, -0.00167359)
    +View3DAtts.viewUp = (-0.173662, 0.824371, -0.538752)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 0.0560412
    +View3DAtts.nearPlane = -0.112082
    +View3DAtts.farPlane = 0.112082
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 3
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (-0.000283548, -1.60497e-05, -0.00167359)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +SetView3D(View3DAtts)
    +
    +Test("persistent_particles_01")
    +
    +CreateNamedSelection("selection1")
    +a = GetAnnotationAttributes()
    +SetWindowLayout(2)
    +SetActiveWindow(2)
    +SetAnnotationAttributes(a)
    +AddPlot("Pseudocolor", "particles_6", 1, 1)
    +silr = SILRestriction()
    +silr.TurnOnAll()
    +SetPlotSILRestriction(silr ,1)
    +ApplyNamedSelection("selection1")
    +DrawPlots()
    +SetView3D(View3DAtts)
    +Test("persistent_particles_02")
    +
    +AddOperator("PersistentParticles", 1)
    +PersistentParticlesAtts = PersistentParticlesAttributes()
    +PersistentParticlesAtts.startIndex = 0
    +PersistentParticlesAtts.stopIndex = 5
    +PersistentParticlesAtts.stride = 1
    +PersistentParticlesAtts.startPathType = PersistentParticlesAtts.Absolute  # Absolute, Relative
    +PersistentParticlesAtts.stopPathType = PersistentParticlesAtts.Absolute  # Absolute, Relative
    +PersistentParticlesAtts.traceVariableX = "default"
    +PersistentParticlesAtts.traceVariableY = "default"
    +PersistentParticlesAtts.traceVariableZ = "default"
    +PersistentParticlesAtts.connectParticles = 0
    +PersistentParticlesAtts.indexVariable = "default"
    +SetOperatorOptions(PersistentParticlesAtts, 1)
    +DrawPlots()
    +Test("persistent_particles_03")
    +
    +PersistentParticlesAtts.connectParticles = 1
    +SetOperatorOptions(PersistentParticlesAtts, 1)
    +Test("persistent_particles_04")
    +
    +AddOperator("Tube", 1)
    +TubeAtts = TubeAttributes()
    +TubeAtts.scaleByVarFlag = 0
    +TubeAtts.tubeRadiusType = TubeAtts.Absolute
    +TubeAtts.radiusAbsolute = 0.0005
    +TubeAtts.scaleVariable = "default"
    +TubeAtts.fineness = 10
    +TubeAtts.capping = 0
    +SetOperatorOptions(TubeAtts, 1)
    +DrawPlots()
    +Test("persistent_particles_05")
    +
    +
    +AddPlot("Pseudocolor", "particles_6", 1, 0)
    +ApplyNamedSelection("selection1")
    +PseudocolorAtts = PseudocolorAttributes()
    +PseudocolorAtts.legendFlag = 1
    +PseudocolorAtts.lightingFlag = 1
    +PseudocolorAtts.minFlag = 0
    +PseudocolorAtts.maxFlag = 0
    +PseudocolorAtts.centering = PseudocolorAtts.Natural  # Natural, Nodal, Zonal
    +PseudocolorAtts.scaling = PseudocolorAtts.Linear  # Linear, Log, Skew
    +PseudocolorAtts.limitsMode = PseudocolorAtts.OriginalData  # OriginalData, ActualData
    +PseudocolorAtts.min = 0
    +PseudocolorAtts.max = 1
    +PseudocolorAtts.pointSize = 0.001
    +PseudocolorAtts.pointType = PseudocolorAtts.Icosahedron  # Box, Axis, Icosahedron, Point, Sphere
    +PseudocolorAtts.skewFactor = 1
    +PseudocolorAtts.opacity = 1
    +PseudocolorAtts.colorTableName = "orangehot"
    +PseudocolorAtts.smoothingLevel = 0
    +PseudocolorAtts.pointSizeVarEnabled = 0
    +PseudocolorAtts.pointSizeVar = "default"
    +PseudocolorAtts.pointSizePixels = 2
    +PseudocolorAtts.lineWidth = 0
    +PseudocolorAtts.opacityType = PseudocolorAtts.FullyOpaque
    +SetPlotOptions(PseudocolorAtts)
    +PseudocolorAtts = PseudocolorAttributes()
    +PseudocolorAtts.legendFlag = 1
    +PseudocolorAtts.lightingFlag = 1
    +PseudocolorAtts.minFlag = 0
    +PseudocolorAtts.maxFlag = 1
    +PseudocolorAtts.centering = PseudocolorAtts.Natural  # Natural, Nodal, Zonal
    +PseudocolorAtts.scaling = PseudocolorAtts.Linear  # Linear, Log, Skew
    +PseudocolorAtts.limitsMode = PseudocolorAtts.OriginalData  # OriginalData, ActualData
    +PseudocolorAtts.min = 0
    +PseudocolorAtts.max = 20
    +PseudocolorAtts.pointSize = 0.001
    +PseudocolorAtts.pointType = PseudocolorAtts.Icosahedron  # Box, Axis, Icosahedron, Point, Sphere
    +PseudocolorAtts.skewFactor = 1
    +PseudocolorAtts.opacity = 1
    +PseudocolorAtts.colorTableName = "orangehot"
    +PseudocolorAtts.smoothingLevel = 0
    +PseudocolorAtts.pointSizeVarEnabled = 0
    +PseudocolorAtts.pointSizeVar = "default"
    +PseudocolorAtts.pointSizePixels = 2
    +PseudocolorAtts.lineWidth = 0
    +PseudocolorAtts.opacityType = PseudocolorAtts.FullyOpaque
    +SetPlotOptions(PseudocolorAtts)
    +SetActivePlots((0, 1))
    +SetActivePlots(0)
    +PseudocolorAtts = PseudocolorAttributes()
    +PseudocolorAtts.legendFlag = 1
    +PseudocolorAtts.lightingFlag = 1
    +PseudocolorAtts.minFlag = 0
    +PseudocolorAtts.maxFlag = 1
    +PseudocolorAtts.centering = PseudocolorAtts.Natural  # Natural, Nodal, Zonal
    +PseudocolorAtts.scaling = PseudocolorAtts.Linear  # Linear, Log, Skew
    +PseudocolorAtts.limitsMode = PseudocolorAtts.OriginalData  # OriginalData, ActualData
    +PseudocolorAtts.min = 0
    +PseudocolorAtts.max = 20
    +PseudocolorAtts.pointSize = 0.05
    +PseudocolorAtts.pointType = PseudocolorAtts.Point  # Box, Axis, Icosahedron, Point, Sphere
    +PseudocolorAtts.skewFactor = 1
    +PseudocolorAtts.opacity = 1
    +PseudocolorAtts.colorTableName = "orangehot"
    +PseudocolorAtts.smoothingLevel = 0
    +PseudocolorAtts.pointSizeVarEnabled = 0
    +PseudocolorAtts.pointSizeVar = "default"
    +PseudocolorAtts.pointSizePixels = 2
    +PseudocolorAtts.lineWidth = 0
    +PseudocolorAtts.opacityType = PseudocolorAtts.FullyOpaque
    +SetPlotOptions(PseudocolorAtts)
    +DrawPlots()
    +Test("persistent_particles_06")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_radial_resample.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_radial_resample.html new file mode 100644 index 000000000..c91678061 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_radial_resample.html @@ -0,0 +1,60 @@ + +Results for operators/radial_resample.py + +

    Results of VisIt Regression Test - operators/radial_resample

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_radialresampleop_rect2d0.000.00
    ops_radialresampleop_rect3d0.000.00
    ops_radialresampleop_multi_rect2d0.000.00
    ops_radialresampleop_multi_rect3d0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_radial_resample_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_radial_resample_py.html new file mode 100644 index 000000000..93024857b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_radial_resample_py.html @@ -0,0 +1,135 @@ +operators/radial_resample.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  radial_resample.py
    +#
    +#  Tests:      mesh    - 2D rectilinear, single domain,
    +#                        3D rectilinear, single domain
    +#                        3D unstructured, multiple domain
    +#              plots   - pseudocolor
    +#
    +#  Defect ID:  1827 
    +#
    +#  Programmer: Kevin Griffin
    +#  Date:       Tue Jun  3 11:00:41 EST 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# 2D, Rectilinear
    +ds = silo_data_path("rect2d.silo")
    +OpenDatabase(ds)
    +
    +# clean-up 1's
    +AddPlot("Mesh", "quadmesh2d", 1, 1)
    +AddOperator("RadialResample")
    +
    +RadialResampleAttrs = RadialResampleAttributes()
    +RadialResampleAttrs.isFast = 0
    +RadialResampleAttrs.minTheta = -45
    +RadialResampleAttrs.maxTheta = 90
    +RadialResampleAttrs.deltaTheta = 5
    +RadialResampleAttrs.radius = 0.5
    +RadialResampleAttrs.deltaRadius = 0.05
    +RadialResampleAttrs.center = (0.5, 0.5, 0.5)
    +RadialResampleAttrs.is3D = 0
    +
    +SetOperatorOptions(RadialResampleAttrs)
    +
    +AddPlot("Pseudocolor", "t", 1, 1)
    +DrawPlots()
    +Test("ops_radialresampleop_rect2d")
    +
    +DeleteAllPlots()
    +CloseDatabase(ds)
    +
    +#3D, Rectilinear
    +ds = silo_data_path("rect3d.silo")
    +OpenDatabase(ds)
    +
    +AddPlot("Mesh", "quadmesh3d", 1, 1)
    +AddOperator("RadialResample")
    +
    +RadialResampleAtts = RadialResampleAttributes()
    +RadialResampleAtts.isFast = 0
    +RadialResampleAtts.minTheta = -90
    +RadialResampleAtts.maxTheta = 90
    +RadialResampleAtts.deltaTheta = 5
    +RadialResampleAtts.radius = 0.5
    +RadialResampleAtts.deltaRadius = 0.05
    +RadialResampleAtts.center = (0.5, 0.5, 0.5)
    +RadialResampleAtts.is3D = 1
    +RadialResampleAtts.minAzimuth = 0
    +RadialResampleAtts.maxAzimuth = 360
    +RadialResampleAtts.deltaAzimuth = 5
    +
    +SetOperatorOptions(RadialResampleAtts, 1)
    +
    +AddPlot("Pseudocolor", "w", 1, 1)
    +DrawPlots()
    +Test("ops_radialresampleop_rect3d")
    +
    +DeleteAllPlots()
    +CloseDatabase(ds)
    +
    +#2D, Rectilinear, Multiple Domains
    +ds = silo_data_path("multi_rect2d.silo")
    +OpenDatabase(ds)
    +
    +AddPlot("Mesh", "mesh1", 1, 1)
    +AddOperator("RadialResample", 1)
    +
    +RadialResampleAtts = RadialResampleAttributes()
    +RadialResampleAtts.isFast = 0
    +RadialResampleAtts.minTheta = 0
    +RadialResampleAtts.maxTheta = 360
    +RadialResampleAtts.deltaTheta = 5
    +RadialResampleAtts.radius = 1
    +RadialResampleAtts.deltaRadius = 0.05
    +RadialResampleAtts.center = (0.3, 0, 0)
    +RadialResampleAtts.is3D = 0
    +RadialResampleAtts.minAzimuth = 0
    +RadialResampleAtts.maxAzimuth = 180
    +RadialResampleAtts.deltaAzimuth = 5
    +
    +SetOperatorOptions(RadialResampleAtts, 1)
    +AddPlot("Pseudocolor", "vec_magnitude", 1, 1)
    +
    +DrawPlots()
    +Test("ops_radialresampleop_multi_rect2d")
    +
    +DeleteAllPlots()
    +CloseDatabase(ds)
    +
    +# 3D, Rectilinear, Multiple Domains
    +ds = silo_data_path("multi_rect3d.silo")
    +OpenDatabase(ds)
    +
    +AddPlot("Mesh", "mesh1", 1, 1)
    +AddOperator("RadialResample", 1)
    +
    +RadialResampleAtts = RadialResampleAttributes()
    +RadialResampleAtts.isFast = 0
    +RadialResampleAtts.minTheta = -90
    +RadialResampleAtts.maxTheta = 90
    +RadialResampleAtts.deltaTheta = 5
    +RadialResampleAtts.radius = 0.5
    +RadialResampleAtts.deltaRadius = 0.05
    +RadialResampleAtts.center = (0.5, 0.5, 0.5)
    +RadialResampleAtts.is3D = 1
    +RadialResampleAtts.minAzimuth = 0
    +RadialResampleAtts.maxAzimuth = 360
    +RadialResampleAtts.deltaAzimuth = 5
    +
    +SetOperatorOptions(RadialResampleAtts)
    +
    +AddPlot("Pseudocolor", "w")
    +DrawPlots()
    +Test("ops_radialresampleop_multi_rect3d")
    +
    +DeleteAllPlots()
    +CloseDatabase(ds)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_reflect.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_reflect.html new file mode 100644 index 000000000..532e2b2e9 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_reflect.html @@ -0,0 +1,152 @@ + +Results for operators/reflect.py + +

    Results of VisIt Regression Test - operators/reflect

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_refl010.000.00
    ops_refl020.290.25
    ops_refl030.000.00
    ops_refl040.000.00
    ops_refl050.000.00
    ops_refl060.000.00
    ops_refl070.000.00
    ops_refl080.000.00
    ops_refl090.000.00
    ops_refl100.000.00
    ops_refl110.000.00
    ops_refl120.000.00
    ops_refl130.000.00
    ops_refl140.000.00
    arb_plane000.000.00
    arb_plane010.000.00
    arb_plane020.000.00
    arb_plane030.000.00
    arb_plane040.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_reflect_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_reflect_py.html new file mode 100644 index 000000000..d10816218 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_reflect_py.html @@ -0,0 +1,343 @@ +operators/reflect.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  reflect.py
    +#
    +#  Tests:      mesh      - 3D curvilinear, single domain,
    +#                          3D rectilinear, single domain.
    +#                          3D unstructured, single domain.
    +#              plots     - pc, vector, subset
    +#
    +#  Defect ID:  '5079, '5872, '6321
    +#
    +#  Programmer: Hank Childs
    +#  Date:       June 24, 2004
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Fri Aug 13 09:52:28 PDT 2004
    +#    Test ghost nodes along the reflection plane.
    +#
    +#    Hank Childs, Thu Aug 19 16:37:35 PDT 2004
    +#    Do not test ops_refl12 since that is done in reflect2.py (and will be
    +#    until SR mode plays well with transparency).
    +#
    +#    Jeremy Meredith, Thu Oct 21 11:56:05 PDT 2004
    +#    Reintegrated ops_refl12 since SR/transparency works now.
    +#
    +#    Hank Childs, Thu Jan 20 11:31:43 PST 2005
    +#    Test projecting then reflecting ['5872].
    +#
    +#    Hank Childs, Tue Jul  5 09:29:40 PDT 2005
    +#    Test that reflected plots are not degenerate by using the volume plot
    +#    ['6321].
    +#
    +#    Jeremy Meredith, Tue Jul 15 10:43:58 EDT 2008
    +#    Changed number of vectors in vector plot to match the old behavior.
    +#    (We now account for how many domains there are.)
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +#    Alister Maguire, Wed Apr 25 15:56:47 PDT 2018
    +#    Added tests for reflecting across an arbitrary plane. 
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# 3D, rectilinear.  Multi-block  Tests ghost zones as well.
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +atts = ReflectAttributes()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Reflect")
    +atts.reflections = (1, 0, 1, 0, 0, 0, 0, 0)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_refl01")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Mesh", "quadmesh2d")
    +AddPlot("FilledBoundary", "mat1")
    +SetActivePlots((0,1))
    +AddOperator("Reflect")
    +DrawPlots()
    +atts.reflections = (0, 1, 1, 1, 0, 0, 0, 0)
    +atts.useXBoundary = 0
    +atts.specifiedX = -0.1
    +atts.useYBoundary = 0
    +atts.specifiedY = -0.05
    +SetOperatorOptions(atts)
    +Test("ops_refl02")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Reflect")
    +DrawPlots()
    +Test("ops_refl03")
    +
    +AddOperator("Isosurface")
    +DrawPlots()
    +Test("ops_refl04")
    +
    +# Move the isosurface operator before the reflect.  This tests whether
    +# or not we can reflect polydata.
    +PromoteOperator(0)
    +DrawPlots()
    +Test("ops_refl05")
    +DeleteAllPlots()
    +
    +# Test unstructured mesh -- plus test vectors.
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Vector", "vel")
    +v = VectorAttributes()
    +v.vectorOrigin = v.Head
    +v.nVectors = 400*4
    +SetPlotOptions(v)
    +
    +AddOperator("Reflect")
    +atts.reflections = (1, 0, 1, 0, 1, 0, 0, 1)
    +atts.useXBoundary = 1
    +atts.useYBoundary = 1
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.324974, 0.839345, 0.435765)
    +v.focus = (-10, -10, -10)
    +v.viewUp = (-0.252067, 0.367233, -0.895322)
    +v.viewAngle = 30
    +v.parallelScale = 34.641
    +v.nearPlane = -69.282
    +v.farPlane = 69.282
    +v.imagePan = (0, 0)
    +v.imageZoom = 1.56244
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, 0)
    +SetView3D(v)
    +
    +Test("ops_refl06")
    +
    +
    +# Now test a zonal vector variable (different code in the reflect operator).
    +ChangeActivePlotsVar("disp")
    +Test("ops_refl07")
    +
    +disp_atts = DisplaceAttributes()
    +disp_atts.variable = "vel"
    +SetDefaultOperatorOptions(disp_atts)
    +AddOperator("Displace")
    +DrawPlots()
    +Test("ops_refl08")
    +
    +PromoteOperator(0)
    +disp_atts.variable = "disp"
    +disp_atts.factor = 4
    +SetOperatorOptions(disp_atts)
    +ChangeActivePlotsVar("vel")
    +DrawPlots()
    +Test("ops_refl09")
    +DeleteAllPlots()
    +
    +
    +# Test that we properly put ghost nodes along the reflection plane.
    +
    +# There is a lot of code dedicated to creating the ghost nodes for a 
    +# rectilinear grid.  Use the PXPYPZ and NXNYNZ octants to flex all of that 
    +# code.
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "hardyglobal")
    +pc = PseudocolorAttributes()
    +pc.SetOpacityType(pc.Constant)
    +pc.opacity = 0.3
    +SetPlotOptions(pc)
    +
    +AddOperator("Reflect")
    +r = ReflectAttributes()
    +r.reflections = (1,1,1,1,1,1,1,1)
    +SetOperatorOptions(r)
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.390471, 0.546441, 0.740901)
    +v.focus = (-10, -10, -10)
    +v.viewUp = (0.00925777, 0.807079, -0.590371)
    +v.viewAngle = 30
    +v.parallelScale = 34.641
    +v.nearPlane = -69.282
    +v.farPlane = 69.282
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, 0)
    +SetView3D(v)
    +
    +Test("ops_refl10")
    +
    +r.octant = r.NXNYNZ
    +SetOperatorOptions(r)
    +
    +v.viewNormal = (0.576101, 0.343493, 0.741701)
    +v.focus = (10, 10, 10)
    +v.viewUp = (-0.15522, 0.936877, -0.313318)
    +SetView3D(v)
    +
    +Test("ops_refl11")
    +
    +
    +# Now make sure that this works well with an everyday vtkPointSet as well.
    +# Also test that we can handle the presence of both ghost nodes (from the
    +# reflect) and ghost zones (from the multi_ucd3d file).
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +SetPlotOptions(pc)
    +AddOperator("Reflect")
    +r = ReflectAttributes()
    +r.reflections = (1,0,0,0,1,0,0,0)
    +SetOperatorOptions(r)
    +DrawPlots()
    +
    +v.viewNormal = (0.328912, 0.896692, 0.296244)
    +v.focus = (0, 2.5, 20)
    +v.viewUp = (-0.710536, 0.441617, -0.547826)
    +v.viewAngle = 30
    +v.parallelScale = 20.7666
    +v.nearPlane = -41.5331
    +v.farPlane = 41.5331
    +v.imagePan = (-0.237006, -0.229008)
    +v.imageZoom = 1.25605
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, 0)
    +SetView3D(v)
    +
    +Test("ops_refl12")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Boundary", "mat1")
    +AddOperator("Project")
    +AddOperator("Reflect")
    +DrawPlots()
    +Test("ops_refl13")
    +
    +# The "mass volume extractor" of the volume renderer depends on the
    +# rectilinear grid not being inverted.  Test that here ('6321).
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Volume", "d")
    +AddOperator("Reflect")
    +DrawPlots()
    +Test("ops_refl14")
    +
    +#
    +# Now test reflecting different datasets over arbitrary planes.
    +#
    +
    +# Test 3D rectilinear over arbitrary plane.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +AddPlot("Pseudocolor" ,"d")
    +AddOperator("Reflect")
    +
    +atts = ReflectAttributes()
    +atts.reflectType = atts.Plane
    +atts.planePoint = (1, 1, 1)
    +atts.planeNormal = (4, 5, 6)
    +SetOperatorOptions(atts)
    +
    +DrawPlots()
    +
    +Test("arb_plane00")
    +
    +# Test 3D curvilinear over arbitrary plane. 
    +DeleteAllPlots()
    +ResetView()
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +AddPlot("Pseudocolor" ,"v")
    +AddOperator("Reflect")
    +
    +atts = ReflectAttributes()
    +atts.reflectType = atts.Plane
    +atts.planePoint = (-8, -3, -4)
    +atts.planeNormal = (4.5, 3, 2)
    +SetOperatorOptions(atts)
    +
    +DrawPlots()
    +
    +Test("arb_plane01")
    +
    +# Test 2D curvilinear
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor" ,"v")
    +AddOperator("Reflect")
    +
    +atts = ReflectAttributes()
    +atts.reflectType = atts.Plane
    +atts.planePoint = (-8, -3, 0)
    +atts.planeNormal = (4.5, 3, 0)
    +SetOperatorOptions(atts)
    +
    +DrawPlots()
    +
    +Test("arb_plane02")
    +
    +# Test 3D unstructured
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor" ,"v")
    +AddOperator("Reflect")
    +
    +atts = ReflectAttributes()
    +atts.reflectType = atts.Plane
    +atts.planePoint = (-8, -3, 0)
    +atts.planeNormal = (7, 9, 1)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("arb_plane03")
    +
    +AddOperator("Reflect")
    +
    +atts = ReflectAttributes()
    +atts.reflectType = atts.Plane
    +atts.planePoint = (20, 15, 19)
    +atts.planeNormal = (3, 2, 4)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("arb_plane04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_remap.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_remap.html new file mode 100644 index 000000000..99c3642e4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_remap.html @@ -0,0 +1,264 @@ + +Results for operators/remap.py + +

    Results of VisIt Regression Test - operators/remap

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ghost_zvar_int0.000.00
    ghost_zvar_ext0.000.00
    globalNode_p_int0.000.00
    globalNode_p_ext0.000.00
    mCurve2_d_int0.000.00
    mCurve2_d_ext0.000.00
    mCurve2_d_dup_int0.000.00
    mCurve2_d_dup_ext0.000.00
    mCurve2_nmats_int0.000.00
    mCurve2_nmats_ext0.000.00
    mCurve2_p_int0.000.00
    mCurve2_p_ext0.000.00
    mCurve3_d_int0.000.00
    mCurve3_d_ext0.000.00
    mCurve3_d_dup_int0.000.00
    mCurve3_d_dup_ext0.000.00
    mCurve3_nmats_int0.000.00
    mCurve3_nmats_ext0.000.00
    mCurve3_p_int0.000.00
    mCurve3_p_ext0.000.00
    mRect2_d_int0.000.00
    mRect2_d_ext0.000.00
    mRect2_d_dup_int0.000.00
    mRect2_d_dup_ext0.000.00
    mRect2_nmats_int0.000.00
    mRect2_nmats_ext0.000.00
    mRect2_p_int0.000.00
    mRect2_p_ext0.000.00
    mRect3_d_int0.000.00
    mRect3_d_ext0.000.00
    mRect3_d_dup_int0.000.00
    mRect3_d_dup_ext0.000.00
    mRect3_nmats_int0.000.00
    mRect3_nmats_ext0.000.00
    mRect3_p_int0.000.00
    mRect3_p_ext0.000.00
    ucd2_p_int0.000.00
    ucd2_p_ext0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_remap_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_remap_py.html new file mode 100644 index 000000000..60ccb6280 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_remap_py.html @@ -0,0 +1,133 @@ +operators/remap.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  remap.py
    +#
    +#  Tests:      remap operator
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Eddie Rusu
    +#  Date:       Fri Feb  1 11:16:24 PST 2019
    +#
    +#  Modifications:
    +#     Eddie Rusu, Tue Apr 13 12:08:59 PDT 2021
    +#     Changed Pseudocolor CurrentPlot to ActualData.
    +# ----------------------------------------------------------------------------
    +
    +def remap(cells, type = 0):
    +    AddOperator("Remap", 1)
    +    RemapAtts = RemapAttributes()
    +    RemapAtts.cellsX = cells
    +    RemapAtts.cellsY = cells
    +    RemapAtts.cellsZ = cells
    +    if type == 1:
    +        RemapAtts.variableType = RemapAtts.extrinsic
    +        setPseudoOptions()
    +    SetOperatorOptions(RemapAtts, 1)
    +    DrawPlots()
    +
    +def setPseudoOptions():
    +    PseudocolorAtts = PseudocolorAttributes()
    +    PseudocolorAtts.limitsMode = PseudocolorAtts.ActualData
    +    SetPlotOptions(PseudocolorAtts)
    +
    +def set3DView():
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0.5, 0.5, 0.7)
    +    View3DAtts.focus = (1.5, 1.5, 0.5)
    +    View3DAtts.viewUp = (-0.0429563, 0.998733, -0.0262205)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 2.17945
    +    View3DAtts.nearPlane = -4.3589
    +    View3DAtts.farPlane = 4.3589
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (1.5, 1.5, 0.5)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +def plotVariables(varName, saveName, cells = 10):
    +    AddPlot("Pseudocolor", varName, 1, 1)
    +    DrawPlots()
    +
    +    remap(cells)
    +    Test(saveName + "_int")
    +
    +    RemoveOperator(0, 1)
    +    remap(cells, 1)
    +    Test(saveName + "_ext")
    +
    +    DeleteAllPlots()
    +
    +def ghost1():
    +    OpenDatabase(silo_data_path("ghost1.silo"))
    +    plotVariables("zvar", "ghost_zvar")
    +    CloseDatabase(silo_data_path("ghost1.silo"))
    +
    +def globalNode():
    +    OpenDatabase(silo_data_path("global_node.silo"))
    +    set3DView()
    +    plotVariables("p", "globalNode_p", 4) # Wrong results.
    +    ResetView()
    +    CloseDatabase(silo_data_path("global_node.silo"))
    +
    +def mCurve2():
    +    OpenDatabase(silo_data_path("multi_curv2d.silo"))
    +    plotVariables("d", "mCurve2_d")
    +    plotVariables("d_dup", "mCurve2_d_dup")
    +    plotVariables("nmats", "mCurve2_nmats")
    +    plotVariables("p", "mCurve2_p")
    +    CloseDatabase(silo_data_path("multi_curv2d.silo"))
    +
    +def mCurve3():
    +    OpenDatabase(silo_data_path("multi_curv3d.silo"))
    +    set3DView()
    +    plotVariables("d", "mCurve3_d", 4)
    +    plotVariables("d_dup", "mCurve3_d_dup", 4)
    +    plotVariables("nmats", "mCurve3_nmats", 4)
    +    plotVariables("p", "mCurve3_p", 4)
    +    ResetView()
    +    CloseDatabase(silo_data_path("multi_curv3d.silo"))
    +
    +def mRect2():
    +    OpenDatabase(silo_data_path("multi_rect2d.silo"))
    +    plotVariables("d", "mRect2_d")
    +    plotVariables("d_dup", "mRect2_d_dup")
    +    plotVariables("nmats", "mRect2_nmats")
    +    plotVariables("p", "mRect2_p")
    +    CloseDatabase(silo_data_path("multi_rect2d.silo"))
    +
    +def mRect3():
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +    set3DView()
    +    plotVariables("d", "mRect3_d", 4)
    +    plotVariables("d_dup", "mRect3_d_dup", 4)
    +    plotVariables("nmats", "mRect3_nmats", 4)
    +    plotVariables("p", "mRect3_p", 4)
    +    ResetView()
    +    CloseDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +def ucd2():
    +    OpenDatabase(silo_data_path("ucd2d.silo"))
    +    plotVariables("p", "ucd2_p")
    +    CloseDatabase(silo_data_path("ucd2d.silo"))
    +
    +def Main():
    +    ghost1()
    +    globalNode()
    +    mCurve2()
    +    mCurve3()
    +    mRect2()
    +    mRect3()
    +    ucd2()
    +
    +Main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_resample.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_resample.html new file mode 100644 index 000000000..a3578e559 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_resample.html @@ -0,0 +1,74 @@ + +Results for operators/resample.py + +

    Results of VisIt Regression Test - operators/resample

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_resampleop_noise_point_small0.000.00
    ops_resampleop_noise_point_large0.000.00
    ops_resampleop_noise_point_explicit0.000.00
    ops_resampleop_noise_point_backfull0.000.00
    ops_resampleop_noise_hardy_small0.000.00
    ops_resampleop_curv2d0.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_resample_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_resample_py.html new file mode 100644 index 000000000..1fcdab04c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_resample_py.html @@ -0,0 +1,124 @@ +operators/resample.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  resample.py
    +#
    +#  Tests:      resample operator
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Sean Ahern
    +#  Date:       Thu Jan  3 11:00:41 EST 2008
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Wed Dec 31 14:32:34 PST 2008
    +#    Rename ResamplePluginAtts to ResampleAtts.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Alister Maguire, Fri Jan 29 08:17:27 PST 2021
    +#    Set useExtents = 0 where appropriate as setting the start/end
    +#    values no longer overrides useExtents.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "PointVar")
    +AddOperator("Resample")
    +
    +resample = ResampleAttributes()
    +resample.samplesX = 5
    +resample.samplesY = 6
    +resample.samplesZ = 7
    +SetOperatorOptions(resample)
    +
    +DrawPlots()
    +
    +bigView = GetView3D()
    +bigView.SetViewNormal(-0.528889, 0.367702, 0.7649)
    +bigView.SetViewUp(0.176641, 0.929226, -0.324558)
    +bigView.SetParallelScale(17.3205)
    +bigView.SetPerspective(1)
    +SetView3D(bigView)
    +
    +Test("ops_resampleop_noise_point_small")
    +
    +resample = ResampleAttributes()
    +resample.samplesX = 20
    +resample.samplesY = 30
    +resample.samplesZ = 40
    +SetOperatorOptions(resample)
    +
    +Test("ops_resampleop_noise_point_large")
    +
    +resample = ResampleAttributes()
    +resample.useExtents = 0
    +resample.startX = 5.25
    +resample.endX = 9.57
    +resample.samplesX = 10
    +resample.startY = -5.9
    +resample.endY = 0
    +resample.samplesY = 20
    +resample.startZ = -6
    +resample.endZ = 0
    +resample.samplesZ = 30
    +SetOperatorOptions(resample)
    +
    +ResetView()
    +v = GetView3D()
    +v.SetViewNormal(-0.41557,-0.758094,0.502588)
    +v.SetFocus(6.862131,4.91535,-9.08261)
    +v.SetViewUp(-0.720258,0.611719,0.327153)
    +v.SetParallelScale(10)
    +v.SetImagePan(-0.21812, 0.210298)
    +v.SetImageZoom(1.6527)
    +v.SetPerspective(1)
    +SetView3D(v)
    +
    +Test("ops_resampleop_noise_point_explicit")
    +
    +resample.useExtents = 1
    +SetOperatorOptions(resample)
    +SetView3D(bigView)
    +
    +Test("ops_resampleop_noise_point_backfull")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "hardyglobal")
    +AddOperator("Resample")
    +
    +resample = ResampleAttributes()
    +resample.samplesX = 3
    +resample.samplesY = 3
    +resample.samplesZ = 3
    +SetOperatorOptions(resample)
    +
    +SetView3D(bigView)
    +DrawPlots()
    +
    +Test("ops_resampleop_noise_hardy_small")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "v")
    +AddOperator("Resample")
    +
    +resample = ResampleAttributes()
    +resample.samplesX = 10
    +resample.samplesY = 20
    +resample.is3D = 0
    +SetOperatorOptions(resample)
    +
    +DrawPlots()
    +
    +Test("ops_resampleop_curv2d")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_revolve.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_revolve.html new file mode 100644 index 000000000..8e5c46f11 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_revolve.html @@ -0,0 +1,42 @@ + +Results for operators/revolve.py + +

    Results of VisIt Regression Test - operators/revolve

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    revolve_points_000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_revolve_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_revolve_py.html new file mode 100644 index 000000000..4c36c5810 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_revolve_py.html @@ -0,0 +1,35 @@ +operators/revolve.py
    # ---------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  revolve.py
    +#
    +#  Tests:      mesh      - 2D unstructured, single domain, 
    +#              plots     - pseudocolor
    +#              operators - revolve
    +#
    +#  Programmer: Alister Maguire
    +#  Date: Fri Jun 19 13:30:11 PDT 2020
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def TestRevolvingPoints():
    +    #
    +    # Make sure that we can revolve points. We weren't always able to do this.
    +    #
    +    OpenDatabase(silo_data_path("multi_point2d.silo"))
    +    AddPlot("Pseudocolor", "v", 1, 1)
    +    AddOperator("Revolve", 1)
    +    DrawPlots()
    +    Test("revolve_points_00")
    +    DeleteActivePlots()
    +    CloseDatabase(silo_data_path("multi_point2d.silo"))
    +
    +def Main():
    +    TestRevolvingPoints()
    +
    +Main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_slice.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_slice.html new file mode 100644 index 000000000..c3da49a9f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_slice.html @@ -0,0 +1,297 @@ + +Results for operators/slice.py + +

    Results of VisIt Regression Test - operators/slice

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Slice through a point
    ops_Slice010.000.00
    Slice through a zone
    ops_Slice020.000.00
    ops_Slice030.000.00
    Slice FilledBoundary plot
    ops_Slice040.000.00
    ops_Slice050.000.00
    ops_Slice060.000.00
    Slice Mesh plot
    ops_Slice070.000.00
    ops_Slice080.000.00
    ops_Slice090.000.00
    ops_Slice100.000.00
    ops_Slice110.000.00
    ops_Slice120.000.00
    ops_Slice130.000.00
    ops_Slice140.000.00
    ops_Slice150.000.00
    ops_Slice160.000.00
    ops_Slice170.000.00
    ops_Slice180.000.00
    Slice point mesh
    ops_Slice190.000.00
    Slice through a point
    ops_Slice200.000.00
    ops_Slice210.000.00
    ops_Slice220.000.00
    ops_Slice230.000.00
    ops_Slice240.000.00
    ops_Slice250.000.00
    ops_Slice260.000.00
    ops_Slice270.000.00
    ops_Slice280.000.00
    ops_Slice290.000.00
    ops_Slice300.000.00
    ops_Slice310.000.00
    ops_Slice320.000.00
    ops_Slice330.000.00
    ops_Slice340.000.00
    ops_Slice350.000.00
    Slice polyhedral cells
    ops_Slice360.000.00
    ops_Slice370.000.00
    ops_Slice380.000.00
    ops_Slice390.000.00
    ops_Slice400.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_slice_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_slice_py.html new file mode 100644 index 000000000..f2e125a51 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_slice_py.html @@ -0,0 +1,590 @@ +operators/slice.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  slice.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, single domain,
    +#                          3D unstructured single domain
    +#                          3D curvilinear multi-domain
    +#                          3D unstructured multi-domain
    +#              plots     - pc, filled boundary, mesh
    +#              operators - slice, onion peel, threshold, index select
    +#
    +#  Defect ID:  '3950 (for tests 16,17,18).  '4662 (test 19).
    +#              '4706 (tests 20-27).  '4913 (test 28), '4975 (test 29).
    +#              '5157 (test 31-2). '5794 (test 33), '7630 (test 35)
    +#
    +#  Known problems:   (1) Slicing of plots that have had material interface
    +#                    reconstruction can often have holes.  This is a problem
    +#                    with the interface reconstruction routines.  When those
    +#                    are fixed, the holes should go away.
    +#                    Tests affected: 4, 5, 6, 15
    +#                    (2) The mesh lines are being shifted towards the camera.
    +#                    For one test, the line actually gets shifted too far and
    +#                    slightly intersects a cell.
    +#                    Tests affected: 7, 8, 9
    +#                    (3) The zonal center for the slice is not consistently
    +#                    determined (see defect '3437).  This means that test 2
    +#                    and 5 do not have the same origin for their slice.
    +#                    This is a known problem.
    +#
    +#  Programmer: Hank Childs
    +#  Date:       June 19, 2003
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset and boundary plots.
    +#
    +#    Hank Childs, Fri Oct 31 14:35:14 PST 2003
    +#    Added test for getting extents right when projecting to 2D and setting
    +#    the origin based on a percent.  From '3950.
    +#
    +#    Hank Childs, Tue Mar 30 08:42:02 PST 2004
    +#    Added test for slicing point meshes. ['4662]
    +#
    +#    Hank Childs, Tue Apr 13 09:53:21 PDT 2004
    +#    Test slicing extremes with percent (0%, 100%) ['4706]
    +#
    +#    Hank Childs, Mon May 24 16:20:49 PDT 2004
    +#    Test slicing point meshes in conjunction with the displace operator
    +#    when the points are all on a plane. ['4913]
    +#
    +#    Hank Childs, Fri Jun 18 08:45:11 PDT 2004
    +#    Test that we can slice boundary plots. ['4975]
    +#
    +#    Hank Childs, Tue Jul 20 16:53:16 PDT 2004
    +#    Test the projection to 2D when the normal and up-axis are not orthogonal
    +#    ['5157].
    +#
    +#    Eric Brugger, Wed Dec 29 15:04:04 PST 2004
    +#    Added a test for changing the time state for a plot that has been
    +#    sliced through a zone.  This tests visit00005794.
    +#
    +#    Kathleen Bonnell, Tue Jan 25 17:27:16 PST 2005 
    +#    Added a test for specifying the meshname with domain/zone type of slice. 
    +#
    +#    Hank Childs, Sat Jan 27 12:45:03 PST 2007
    +#    Added a test for slicing 1xJxK and Ix1xK meshes.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, June 19, 2023
    +#    Add call to RequiredDatabasePlugin.
    +#
    +# ----------------------------------------------------------------------------
    +
    +RequiredDatabasePlugin(("Silo", "EnSight"))
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +TestSection("Slice through a point")
    +# Test 1 -- a slice through a point
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (-0.1, 0.8, -0.6)
    +atts.originType = atts.Point
    +atts.originPoint = (0.3333, 0.094, 0.081)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +view = GetView3D()
    +view.viewNormal = (-0.53, -0.07, -0.84)
    +view.focus = (0.5, 0.5, 0.5)
    +view.viewUp = (0, 1, 0)
    +view.viewAngle = 30
    +view.parallelScale = 0.866
    +view.nearPlane = -1.73
    +view.farPlane = 1.73
    +view.imagePan = (0.058, 0.26)
    +view.imageZoom = 12.6
    +view.perspective = 1
    +SetView3D(view)
    +
    +Test("ops_Slice01")
    +
    +TestSection("Slice through a zone")
    +# Test 2 -- A slice through a zone.  Add an onion peel of that zone to show
    +# that the slice is in the right spot.
    +atts.originType = atts.Zone
    +atts.originZone = 2500
    +atts.originZoneDomain = 0
    +SetOperatorOptions(atts)
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("OnionPeel")
    +op_atts = OnionPeelAttributes()
    +op_atts.index = 2500
    +SetOperatorOptions(op_atts)
    +DrawPlots()
    +SetView3D(view)
    +
    +Test("ops_Slice02")
    +
    +# Test 3 -- A slice through a node.  The node (2645) is incident to the zone
    +# from before (2500).
    +SetActivePlots(0)
    +atts.originType = atts.Node
    +atts.originNode = 2645
    +atts.originNodeDomain = 0
    +SetOperatorOptions(atts)
    +
    +Test("ops_Slice03")
    +
    +# Now repeat the three tests with a filled boundary plot.
    +TestSection("Slice FilledBoundary plot")
    +DeleteActivePlots()
    +
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Slice")
    +atts.originType = atts.Point
    +atts.originPoint = (0.3333, 0.094, 0.081)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("ops_Slice04")
    +
    +atts.originType = atts.Zone
    +atts.originZone = 2500
    +atts.originZoneDomain = 0
    +SetOperatorOptions(atts)
    +
    +Test("ops_Slice05")
    +
    +atts.originType = atts.Node
    +atts.originNode = 2645
    +atts.originNodeDomain = 0
    +SetOperatorOptions(atts)
    +
    +Test("ops_Slice06")
    +
    +# Slice a mesh plot.
    +TestSection("Slice Mesh plot")
    +DeleteActivePlots()
    +
    +AddPlot("Mesh", "quadmesh3d")
    +AddOperator("Slice")
    +atts.originType = atts.Zone
    +atts.originZone = 2500
    +atts.originZoneDomain = 0
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("ops_Slice07")
    +
    +t_atts = ThresholdAttributes()
    +t_atts.listedVarNames = ("d")
    +t_atts.lowerBounds = (0.6)
    +t_atts.upperBounds = (1.0)
    +SetDefaultOperatorOptions(t_atts)
    +AddOperator("Threshold")
    +DemoteOperator(1, 0)
    +DrawPlots()
    +
    +Test("ops_Slice08")
    +
    +RemoveOperator(0, 0)
    +
    +insel_atts = IndexSelectAttributes()
    +insel_atts.dim = insel_atts.ThreeD
    +insel_atts.xMin = 10
    +insel_atts.xMax = 18
    +insel_atts.yMin = 3
    +insel_atts.yMax = 4
    +insel_atts.zMin = 0
    +insel_atts.zMax = 3
    +SetDefaultOperatorOptions(insel_atts)
    +AddOperator("IndexSelect")
    +DemoteOperator(1, 0)
    +DrawPlots()
    +
    +Test("ops_Slice09")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("sid97.silo"))
    +
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.originType = atts.Point
    +atts.originPoint = (7400, -1300, 1000)
    +atts.normal = (0, 1, 0)
    +atts.project2d = 1
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("ops_Slice10")
    +
    +DeleteAllPlots()
    +
    +
    +OpenDatabase(silo_data_path("tire.silo"))
    +
    +AddPlot("Subset", "domains")
    +AddOperator("Slice")
    +atts.originType = atts.Zone
    +atts.originZone = 100
    +atts.originZoneDomain = 2
    +atts.normal = (0.707, -0.707, 0)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("ops_Slice11")
    +
    +
    +atts.normal = (0.707, 0.707, 0)
    +SetOperatorOptions(atts)
    +
    +Test("ops_Slice12")
    +
    +
    +atts.originType = atts.Node
    +atts.originNode = 55
    +atts.originNodeDomain = 3
    +SetOperatorOptions(atts)
    +
    +Test("ops_Slice13")
    +
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Slice")
    +atts.originType = atts.Zone
    +atts.originZone = 1005
    +atts.originZoneDomain = 18
    +atts.normal = (0.707, 0, -0.707)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("ops_Slice14")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Slice")
    +atts.originType = atts.Zone
    +atts.originZone = 1005
    +atts.originZoneDomain = 18
    +atts.normal = (0.707, 0, -0.707)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("ops_Slice15")
    +
    +
    +atts.originType = atts.Percent
    +atts.originPercent = 69
    +atts.axisType = atts.YAxis
    +SetOperatorOptions(atts)
    +
    +Test("ops_Slice16")
    +
    +atts.originType = atts.Percent
    +atts.originPercent = 50
    +atts.axisType = atts.ZAxis
    +SetOperatorOptions(atts)
    +
    +Test("ops_Slice17")
    +
    +atts.originType = atts.Percent
    +atts.originPercent = 10
    +atts.axisType = atts.XAxis
    +SetOperatorOptions(atts)
    +
    +Test("ops_Slice18")
    +
    +DeleteAllPlots()
    +
    +TestSection("Slice point mesh")
    +# Test that we can slice point meshes.  The points must be exactly on the
    +# plane (or at least within some tolerance).  To guarantee the point positions,
    +# take a 2D plot and put it into 3D.  Then slice it.
    +OpenDatabase(silo_data_path("noise2d.silo"))
    +
    +AddPlot("Pseudocolor", "PointVar")
    +pc_atts = PseudocolorAttributes()
    +pc_atts.pointType = pc_atts.Box
    +pc_atts.pointSize = 0.4
    +SetPlotOptions(pc_atts)
    +AddOperator("Transform")
    +trans_atts = TransformAttributes()
    +trans_atts.doRotate = 1
    +trans_atts.rotateAxis = (0, 1, 0)
    +SetOperatorOptions(trans_atts)
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.axisType = atts.ZAxis
    +atts.originType = atts.Intercept
    +atts.originIntercept = 0
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("ops_Slice19")
    +
    +DeleteAllPlots()
    +ActivateDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +# Test 1 -- a slice through a point
    +TestSection("Slice through a point")
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Slice")
    +atts.originType = atts.Percent
    +atts.project2d = 0
    +atts.originPercent = 0
    +atts.axisType=atts.XAxis
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +view = GetView3D()
    +view.viewNormal = (0.565246, 0.332, 0.755)
    +view.focus = (0.5, 0.0, 0.5)
    +view.viewUp = (-0.08, 0.933, -0.35)
    +view.viewAngle = 30
    +view.parallelScale = 0.707
    +view.nearPlane = -1.41421
    +view.farPlane = 1.41421
    +view.imagePan = (0.1, -0.181)
    +view.imageZoom = 0.7
    +view.perspective = 1
    +SetView3D(view)
    +
    +Test("ops_Slice20")
    +
    +atts.originPercent = 100
    +SetOperatorOptions(atts)
    +Test("ops_Slice21")
    +
    +atts.axisType=atts.YAxis
    +atts.originPercent = 0
    +SetOperatorOptions(atts)
    +Test("ops_Slice22")
    +
    +atts.axisType=atts.YAxis
    +atts.originPercent = 100
    +SetOperatorOptions(atts)
    +Test("ops_Slice23")
    +
    +atts.axisType=atts.ZAxis
    +atts.originPercent = 0
    +SetOperatorOptions(atts)
    +Test("ops_Slice24")
    +
    +atts.axisType=atts.ZAxis
    +atts.originPercent = 100
    +SetOperatorOptions(atts)
    +Test("ops_Slice25")
    +
    +# The X-axis for orthogonal slices is -1,0,0.  Try 1,0,0.
    +atts.axisType=atts.Arbitrary
    +atts.normal=(1,0,0)
    +atts.originPercent = 0
    +SetOperatorOptions(atts)
    +Test("ops_Slice26")
    +
    +# The Y-axis for orthogonal slices is 0,-1,0.  Try 0,1,0.
    +atts.axisType=atts.Arbitrary
    +atts.normal=(0,1,0)
    +atts.originPercent = 0
    +SetOperatorOptions(atts)
    +Test("ops_Slice27")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "PointVar")
    +pc_atts.pointSize = 1.0
    +SetPlotOptions(pc_atts)
    +DefineVectorExpression("disp", "{0,0,-coord(PointMesh)[2]}")
    +AddOperator("Displace")
    +disp = DisplaceAttributes()
    +disp.variable = "disp"
    +SetOperatorOptions(disp)
    +AddOperator("Slice")
    +slice = SliceAttributes()
    +slice.axisType = slice.ZAxis
    +SetOperatorOptions(slice)
    +DrawPlots()
    +Test("ops_Slice28")
    +
    +# First, test slice by a zone with a boundary plot where the zone is along
    +# a material boundary.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Boundary", "mat1")
    +AddOperator("Slice")
    +slice = SliceAttributes()
    +slice.originType = atts.Zone
    +slice.originZone = 10000
    +slice.originZoneDomain = 0
    +slice.axisType = slice.ZAxis
    +SetOperatorOptions(slice)
    +DrawPlots()
    +Test("ops_Slice29")
    +
    +# Now, test slice by a zone where the zone is not along a material boundary.
    +slice.originZone = 9998
    +SetOperatorOptions(slice)
    +Test("ops_Slice30")
    +
    +DeleteAllPlots()
    +
    +# Test what happens when the up axis is not orthogonal to the normal.
    +# Start off with the two being orthogonal, though.
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "hardyglobal")
    +AddOperator("Slice")
    +slice = SliceAttributes()
    +slice.normal = (1, -1, 0)
    +slice.upAxis = (0, 0, 1)
    +slice.project2d = 1
    +slice.originType = slice.Point
    +slice.originPoint = (0,0,0)
    +SetOperatorOptions(slice)
    +DrawPlots()
    +Test("ops_Slice31")
    +
    +# Now make them be non-orthogonal.
    +slice.upAxis = (0,1,0)
    +SetOperatorOptions(slice)
    +Test("ops_Slice32")
    +
    +# Open a multi time state database, create a pseudocolor plot slicing
    +# through a zone and then change the time state.
    +DeleteAllPlots()
    +ResetView()
    +OpenDatabase(silo_data_path("wave*.silo database"))
    +
    +
    +AddPlot("Pseudocolor", "pressure")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 1
    +atts.axisType = atts.YAxis
    +atts.originType = atts.Zone
    +atts.originZone = 100
    +atts.originZoneDomain = 0
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +TimeSliderNextState()
    +Test("ops_Slice33")
    +
    +
    +DeleteAllPlots()
    +ResetView()
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor", "d_dup")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 1
    +atts.axisType = atts.YAxis
    +atts.originType = atts.Zone
    +atts.originZone = 27
    +atts.originZoneDomain = 2
    +atts.meshName = "mesh1"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("ops_Slice34")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("IndexSelect")
    +iatts = IndexSelectAttributes()
    +iatts.dim = iatts.ThreeD
    +iatts.xMin = 0
    +iatts.xMax = 1000
    +iatts.yMin = 10
    +iatts.yMax = 10
    +iatts.zMin = 0
    +iatts.zMax = 1000
    +iatts.xIncr = 1
    +iatts.yIncr = 1
    +iatts.zIncr = 1
    +SetOperatorOptions(iatts)
    +AddOperator("Slice")
    +DrawPlots()
    +ResetView()
    +Test("ops_Slice35")
    +DeleteAllPlots()
    +
    +TestSection("Slice polyhedral cells")
    +OpenDatabase(data_path("EnSight_test_data/small.case"))
    +
    +DefineScalarExpression("zid", "zoneid(mesh) * 1.")
    +DefineScalarExpression("nid", "nodeid(mesh) * 1.")
    +AddPlot("Pseudocolor", "zid")
    +DrawPlots()
    +v = GetView3D()
    +v.viewNormal = (-0.597184, 0.364571, 0.714464)
    +v.focus = (1, 1.75, 1)
    +v.viewUp = (0.222007, 0.931066, -0.289533)
    +v.viewAngle = 30
    +v.parallelScale = 4.58939
    +v.nearPlane = -9.17878
    +v.farPlane = 9.17878
    +v.imagePan = (-0.0112992, 0.0560752)
    +v.imageZoom = 1.77156
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (1, 1.75, 1)
    +v.axis3DScaleFlag = 0
    +v.axis3DScales = (1, 1, 1)
    +v.shear = (0, 0, 1)
    +SetView3D(v)
    +Test("ops_Slice36")
    +
    +AddOperator("Slice")
    +s = SliceAttributes()
    +s.originType = s.Percent  # Point, Intercept, Percent, Zone, Node
    +s.originPoint = (0, 0, 0)
    +s.originIntercept = 0
    +s.originPercent = 50
    +s.originZone = 0
    +s.originNode = 0
    +s.normal = (0, 0, 1)
    +s.axisType = s.XAxis  # XAxis, YAxis, ZAxis, Arbitrary, ThetaPhi
    +s.upAxis = (0, 1, 0)
    +s.project2d = 0
    +s.interactive = 1
    +s.flip = 0
    +s.originZoneDomain = 0
    +s.originNodeDomain = 0
    +s.meshName = "mesh"
    +s.theta = 0
    +s.phi = 90
    +SetOperatorOptions(s)
    +DrawPlots()
    +Test("ops_Slice37")
    +
    +ChangeActivePlotsVar("nid")
    +Test("ops_Slice38")
    +
    +ChangeActivePlotsVar("zid")
    +s.axisType = s.ZAxis
    +SetOperatorOptions(s)
    +DrawPlots()
    +Test("ops_Slice39")
    +
    +ChangeActivePlotsVar("nid")
    +Test("ops_Slice40")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_sph_resample.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_sph_resample.html new file mode 100644 index 000000000..2cf45a6f5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_sph_resample.html @@ -0,0 +1,44 @@ + +Results for operators/sph_resample.py + +

    Results of VisIt Regression Test - operators/sph_resample

    + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    sph_2d19.530.11
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_sph_resample_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_sph_resample_py.html new file mode 100644 index 000000000..91d9ac319 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_sph_resample_py.html @@ -0,0 +1,51 @@ +operators/sph_resample.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  sph_resample.py
    +#
    +#  Tests:      mesh    - 2D rectilinear, single domain,
    +#              plots   - pseudocolor
    +#
    +#  Defect ID:  2338 
    +#
    +#  Programmer: Kevin Griffin
    +#  Date:       Wed Jul 22 17:36:55 PDT 2015
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# 2D, Rectilinear
    +ds = data_path("silo_sph_test_data/KelvinHelmholtz-2d_McNally.visit")
    +OpenDatabase(ds)
    +
    +AddPlot("Pseudocolor", "mass_density")
    +pc = PseudocolorAttributes()
    +pc.centering = pc.Nodal
    +SetPlotOptions(pc)
    +
    +AddOperator("SPHResample")
    +SPHResampleAtts = SPHResampleAttributes()
    +SPHResampleAtts.minX = 0
    +SPHResampleAtts.maxX = 1
    +SPHResampleAtts.xnum = 100
    +SPHResampleAtts.minY = 0
    +SPHResampleAtts.maxY = 1
    +SPHResampleAtts.ynum = 100
    +SPHResampleAtts.minZ = 0
    +SPHResampleAtts.maxZ = 1
    +SPHResampleAtts.znum = 1
    +SPHResampleAtts.tensorSupportVariable = "H"
    +SPHResampleAtts.weightVariable = "mass"
    +SPHResampleAtts.RK = 1
    +SetOperatorOptions(SPHResampleAtts, 1)
    +
    +DrawPlots()
    +
    +Test("sph_2d")
    +
    +DeleteAllPlots()
    +CloseDatabase(ds)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_tessellate.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_tessellate.html new file mode 100644 index 000000000..656830c07 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_tessellate.html @@ -0,0 +1,168 @@ + +Results for operators/tessellate.py + +

    Results of VisIt Regression Test - operators/tessellate

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    quadratic_triangle_010.000.00
    quadratic_triangle_020.000.00
    quadratic_triangle_030.000.00
    biquadratic_quad_010.000.00
    biquadratic_quad_020.000.00
    biquadratic_quad_030.000.00
    biquadratic_quad_field_010.440.63
    biquadratic_quad_field_020.440.63
    biquadratic_quad_field_030.440.63
    quadratic_linear_quad_010.000.00
    quadratic_quad_010.000.00
    quadratic_quad_020.000.00
    quadratic_quad_030.000.00
    quadratic_mixed_010.000.00
    quadratic_mixed_020.000.00
    quadratic_mixed_030.000.00
    quadratic_hex_010.000.00
    quadratic_hex_020.000.00
    quadratic_hex_030.000.00
    quadratic_hex_040.000.00
    triquadratic_hex_010.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_tessellate_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_tessellate_py.html new file mode 100644 index 000000000..6be7c1a7c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_tessellate_py.html @@ -0,0 +1,286 @@ +operators/tessellate.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  tessellate.py
    +#
    +#  Tests:      mesh      - quadratic_triangle
    +#                          biquadratic_quad
    +#                          quadratic_linear_quad
    +#                          quadratic_quad
    +#                          quadratic_hex
    +#                          triquadratic_hex
    +#              plots     - pc, mesh
    +#              operators - tessellate, clip
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       July 24, 2020
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Quadratic_triangle
    +OpenDatabase(data_path("vtk_test_data/quadratic_triangle.vtk"))
    +
    +AddPlot("Pseudocolor", "x_c")
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (0.200511, 0.543812, 0.814901)
    +v.focus = (0, 0.5, 1)
    +v.viewUp = (-0.232184, 0.834474, -0.499744)
    +v.viewAngle = 30
    +v.parallelScale = 1.5
    +v.nearPlane = -3
    +v.farPlane = 3
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +SetView3D(v)
    +
    +Test("quadratic_triangle_01")
    +
    +AddOperator("Tessellate", 1)
    +DrawPlots()
    +
    +Test("quadratic_triangle_02")
    +
    +tess = TessellateAttributes()
    +tess.chordError = 0.01
    +SetOperatorOptions(tess, 0, 1)
    +
    +Test("quadratic_triangle_03")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("vtk_test_data/quadratic_triangle.vtk"))
    +
    +# Biquadratic_quad
    +OpenDatabase(data_path("vtk_test_data/biquadratic_quad.vtk"))
    +
    +AddPlot("Pseudocolor", "x_c")
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (0.200511, 0.543812, 0.814901)
    +v.focus = (0, 0.5, 1)
    +v.viewUp = (-0.232184, 0.834474, -0.499744)
    +v.viewAngle = 30
    +v.parallelScale = 1.5
    +v.nearPlane = -3
    +v.farPlane = 3
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +SetView3D(v)
    +
    +Test("biquadratic_quad_01")
    +
    +AddOperator("Tessellate", 1)
    +DrawPlots()
    +
    +Test("biquadratic_quad_02")
    +
    +tess = TessellateAttributes()
    +tess.chordError = 0.01
    +SetOperatorOptions(tess, 0, 1)
    +
    +Test("biquadratic_quad_03")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("vtk_test_data/biquadratic_quad.vtk"))
    +
    +# Biquadratic_quad_field
    +OpenDatabase(data_path("vtk_test_data/biquadratic_quad_field.vtk"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +Test("biquadratic_quad_field_01")
    +
    +AddOperator("Tessellate", 1)
    +DrawPlots()
    +
    +Test("biquadratic_quad_field_02")
    +
    +tess = TessellateAttributes()
    +tess.chordError = 0.01
    +tess.fieldCriterion = 0.01
    +SetOperatorOptions(tess, 0, 1)
    +
    +Test("biquadratic_quad_field_03")
    +
    +CloseDatabase(data_path("vtk_test_data/biquadratic_quad_field.vtk"))
    +DeleteAllPlots()
    +
    +# Quadratic_linear_quad
    +OpenDatabase(data_path("vtk_test_data/quadratic_linear_quad.vtk"))
    +
    +AddPlot("Pseudocolor", "x_c")
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (0.200511, 0.543812, 0.814901)
    +v.focus = (0, 0.5, 1)
    +v.viewUp = (-0.232184, 0.834474, -0.499744)
    +v.viewAngle = 30
    +v.parallelScale = 1.5
    +v.nearPlane = -3
    +v.farPlane = 3
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +SetView3D(v)
    +
    +Test("quadratic_linear_quad_01")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("vtk_test_data/quadratic_linear_quad.vtk"))
    +
    +# Quadratic_quad
    +OpenDatabase(data_path("vtk_test_data/quadratic_quad.vtk"))
    +
    +AddPlot("Pseudocolor", "x_c")
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (0.200511, 0.543812, 0.814901)
    +v.focus = (0, 0.5, 1)
    +v.viewUp = (-0.232184, 0.834474, -0.499744)
    +v.viewAngle = 30
    +v.parallelScale = 1.5
    +v.nearPlane = -3
    +v.farPlane = 3
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +SetView3D(v)
    +
    +Test("quadratic_quad_01")
    +
    +AddOperator("Tessellate", 1)
    +DrawPlots()
    +
    +Test("quadratic_quad_02")
    +
    +tess = TessellateAttributes()
    +tess.chordError = 0.01
    +SetOperatorOptions(tess, 0, 1)
    +
    +Test("quadratic_quad_03")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("vtk_test_data/quadratic_quad.vtk"))
    +
    +# Mixed biquadratic_quad and quadratic_triangle
    +OpenDatabase(data_path("vtk_test_data/quadratic_mixed.vtk"))
    +
    +AddPlot("Pseudocolor", "x_c")
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (0.200511, 0.543812, 0.814901)
    +v.focus = (0, 0.5, 1)
    +v.viewUp = (-0.232184, 0.834474, -0.499744)
    +v.viewAngle = 30
    +v.parallelScale = 1.5
    +v.nearPlane = -3
    +v.farPlane = 3
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +SetView3D(v)
    +
    +Test("quadratic_mixed_01")
    +
    +AddOperator("Tessellate", 1)
    +DrawPlots()
    +
    +Test("quadratic_mixed_02")
    +
    +tess = TessellateAttributes()
    +tess.chordError = 0.01
    +SetOperatorOptions(tess, 0, 1)
    +
    +Test("quadratic_mixed_03")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("vtk_test_data/quadratic_mixed.vtk"))
    +
    +# Quadratic_hex
    +OpenDatabase(data_path("vtk_test_data/quadratic_hex.vtk"))
    +
    +AddPlot("Pseudocolor", "x_c")
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (0.491097, 0.334402, 0.804363)
    +v.focus = (0.7, 0.7, 0.5)
    +v.viewUp = (-0.0787305, 0.936642, -0.341326)
    +v.viewAngle = 30
    +v.parallelScale = 1.10905
    +v.nearPlane = -2.21811
    +v.farPlane = 2.21811
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +SetView3D(v)
    +
    +Test("quadratic_hex_01")
    +
    +AddOperator("Tessellate", 1)
    +DrawPlots()
    +
    +Test("quadratic_hex_02")
    +
    +tess = TessellateAttributes()
    +tess.chordError = 0.01
    +SetOperatorOptions(tess, 0, 1)
    +
    +Test("quadratic_hex_03")
    +
    +AddOperator("Clip", 1)
    +clip = ClipAttributes()
    +clip.plane1Origin = (0.5, 0.5, 0.5)
    +SetOperatorOptions(clip, 0, 1)
    +
    +DrawPlots()
    +
    +Test("quadratic_hex_04")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("vtk_test_data/quadratic_hex.vtk"))
    +
    +# Triquadratic_hex
    +OpenDatabase(data_path("vtk_test_data/triquadratic_hex.vtk"))
    +
    +AddPlot("Pseudocolor", "x_c")
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (0.491097, 0.334402, 0.804363)
    +v.focus = (0.7, 0.7, 0.5)
    +v.viewUp = (-0.0787305, 0.936642, -0.341326)
    +v.viewAngle = 30
    +v.parallelScale = 1.10905
    +v.nearPlane = -2.21811
    +v.farPlane = 2.21811
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +SetView3D(v)
    +
    +Test("triquadratic_hex_01")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("vtk_test_data/triquadratic_hex.vtk"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_threeslice.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_threeslice.html new file mode 100644 index 000000000..8a692d6be --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_threeslice.html @@ -0,0 +1,54 @@ + +Results for operators/threeslice.py + +

    Results of VisIt Regression Test - operators/threeslice

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ThreeSlice_010.000.00
    ThreeSlice_020.000.00
    ThreeSlice_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_threeslice_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_threeslice_py.html new file mode 100644 index 000000000..c214e6d9c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_threeslice_py.html @@ -0,0 +1,49 @@ +operators/threeslice.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  threeslice.py
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       July 6, 2006
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +def Test1():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    AddOperator("ThreeSlice")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0.456241, 0.47741, 0.750949)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (-0.0855449, 0.863521, -0.497004)
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    SetView3D(v)
    +
    +    Test("ThreeSlice_01")
    +
    +    slice = ThreeSliceAttributes()
    +    slice.x = -10
    +    SetOperatorOptions(slice)
    +    Test("ThreeSlice_02")
    +
    +    slice.y = -10
    +    SetOperatorOptions(slice)
    +    Test("ThreeSlice_03")
    +
    +
    +Test1()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_threshold.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_threshold.html new file mode 100644 index 000000000..216f7231c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_threshold.html @@ -0,0 +1,108 @@ + +Results for operators/threshold.py + +

    Results of VisIt Regression Test - operators/threshold

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_thresh010.000.00
    ops_thresh020.000.00
    ops_thresh030.000.00
    ops_thresh040.000.00
    ops_thresh050.000.00
    ops_thresh060.000.00
    ops_thresh070.000.00
    ops_thresh080.000.00
    ops_thresh090.000.00
    ops_thresh100.000.00
    ops_thresh110.000.00
    ops_thresh120.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_threshold_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_threshold_py.html new file mode 100644 index 000000000..5acf672d5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_threshold_py.html @@ -0,0 +1,275 @@ +operators/threshold.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  threshold.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain,
    +#                          3D rectilinear, multiple domain,
    +#                          2D curvilinear, multiple domain
    +#              plots     - pc, mesh, subset, contour
    +#              operators - threshold
    +#              selection - none
    +#
    +#  Defect ID:  '6590, '7631
    +#
    +#  Programmer: Hank Childs
    +#  Date:       July 24, 2002
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Sep  5 10:55:47 PDT 2002
    +#    Changed the variable format for SubsetPlots, to reflect new interface
    +#    which allows subsets of groups.
    +#
    +#    Eric Brugger, Thu May  8 12:50:50 PDT 2003
    +#    Remove some code for setting the view when changing to a new data set
    +#    since visit should automatically adjust the view by default.
    +#
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset plots.
    +#
    +#    Hank Childs, Thu Sep 15 16:31:31 PDT 2005
    +#    Added testing for points only mode ('6590).
    +#
    +#    Mark Blair, Fri May 19 17:36:00 PDT 2006
    +#    Modified all tests, added new tests, for multi-variable mode.
    +#
    +#    Hank Childs, Sat Jan 27 13:03:55 PST 2007
    +#    Test points only with material selection on ('7631).
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.SetViewNormal(-0.528889, 0.367702, 0.7649)
    +v.SetViewUp(0.176641, 0.929226, -0.324558)
    +v.SetParallelScale(17.3205)
    +v.SetPerspective(1)
    +SetView3D(v)
    +
    +#
    +# Normal PC threshold for globe.
    +#
    +thresh = ThresholdAttributes()
    +
    +thresh.outputMeshType = 0
    +thresh.zonePortions = (1)
    +thresh.lowerBounds = (-4)
    +thresh.upperBounds = (4)
    +SetDefaultOperatorOptions(thresh)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh01")
    +
    +#
    +# Normal PC threshold for globe, but now change the zone inclusion criteria.
    +#
    +RemoveAllOperators()
    +thresh.outputMeshType = 0
    +thresh.zonePortions = (0)
    +thresh.lowerBounds = (-4)
    +thresh.upperBounds = (4)
    +SetDefaultOperatorOptions(thresh)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh02")
    +
    +#
    +# Normal PC plot of globe, thresholding by a variable different than the
    +# PC coloring variable.
    +#
    +RemoveAllOperators()
    +thresh.outputMeshType = 0
    +thresh.zonePortions = (1)
    +thresh.lowerBounds = (140)
    +thresh.upperBounds = (340)
    +thresh.listedVarNames = ("t")
    +SetDefaultOperatorOptions(thresh)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh03")
    +
    +DeleteAllPlots()
    +
    +#
    +# Contour lines by one variable, thresholding by another.  Multi-block,
    +# curvilinear, 2D.
    +#
    +OpenDatabase(silo_data_path("multi_curv2d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +thresh.outputMeshType = 0
    +thresh.zonePortions = (1)
    +thresh.lowerBounds = (0.7)
    +thresh.upperBounds = (0.9)
    +thresh.listedVarNames = ("v")
    +SetDefaultOperatorOptions(thresh)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh04")
    +
    +DeleteAllPlots()
    +
    +#
    +# Material plot, thresholded by a scalar variable.  Multi-block,
    +# curvilinear, 2D.
    +#
    +AddPlot("FilledBoundary", "mat1")
    +DrawPlots()
    +
    +thresh.outputMeshType = 0
    +thresh.zonePortions = (1)
    +thresh.lowerBounds = (-0.4)
    +thresh.upperBounds = (1.0)
    +thresh.listedVarNames = ("u")
    +SetDefaultOperatorOptions(thresh)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh05")
    +
    +DeleteAllPlots()
    +
    +#
    +# Mesh plot and PC plot, both thresholded by the same variable and zone
    +# inclusion criteria.  Then change the output mesh type to a point mesh.
    +# Multi-block, rectilinear, 3D.
    +#
    +OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +
    +thresh.outputMeshType = 0
    +thresh.zonePortions = (1)
    +thresh.lowerBounds = (0.4)
    +thresh.upperBounds = (1.0)
    +thresh.listedVarNames = ("u")
    +SetDefaultOperatorOptions(thresh)
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +AddPlot("Mesh", "mesh1")
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh06")
    +
    +DeleteActivePlots()
    +
    +thresh.outputMeshType = 1
    +SetDefaultOperatorOptions(thresh)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh07")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +#
    +# Normal PC plot of globe, thresholding by two variables different than the
    +# PC coloring variable.
    +#
    +thresh.outputMeshType = 0
    +thresh.zonePortions = (1, 1)
    +thresh.lowerBounds = (140, 0)
    +thresh.upperBounds = (340, 1)
    +thresh.listedVarNames = ("t", "dx")
    +SetDefaultOperatorOptions(thresh)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh08")
    +
    +DeleteAllPlots()
    +
    +#
    +# Contour lines by one variable, thresholding by that variable and another,
    +# using two different zone inclusion criteria.  Multi-block, curvilinear, 2D.
    +#
    +OpenDatabase(silo_data_path("multi_curv2d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +thresh.zonePortions = (0, 1)
    +thresh.lowerBounds = (-0.7, 0.7)
    +thresh.upperBounds = (0.7, 0.9)
    +thresh.listedVarNames = ("u", "v")
    +SetDefaultOperatorOptions(thresh)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh09")
    +
    +DeleteAllPlots()
    +
    +#
    +# Material plot, thresholded by two scalar variables.  Multi-block,
    +# curvilinear, 2D.
    +#
    +AddPlot("FilledBoundary", "mat1")
    +DrawPlots()
    +
    +thresh.zonePortions = (0, 0)
    +thresh.lowerBounds = (-0.4, 0.25)
    +thresh.upperBounds = (1.0, 0.45)
    +thresh.listedVarNames = ("u", "p")
    +SetDefaultOperatorOptions(thresh)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh10")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.outputMeshType = 1
    +ThresholdAtts.listedVarNames = ("u")
    +ThresholdAtts.zonePortions = (1)
    +ThresholdAtts.lowerBounds = (0)
    +ThresholdAtts.upperBounds = (1e+37)
    +ThresholdAtts.defaultVarName = "u"
    +ThresholdAtts.defaultVarIsScalar = 1
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +ResetView()
    +Test("ops_thresh11")
    +
    +# See that the points go away when you turn off the materials.
    +sil = SILRestriction()
    +m = sil.SetsInCategory("mat1")
    +sil.TurnOffSet(m[2])
    +sil.TurnOffSet(m[3])
    +SetPlotSILRestriction(sil)
    +Test("ops_thresh12")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_transform.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_transform.html new file mode 100644 index 000000000..c31588a09 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_transform.html @@ -0,0 +1,100 @@ + +Results for operators/transform.py + +

    Results of VisIt Regression Test - operators/transform

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_transform010.000.00
    ops_transform020.000.00
    ops_transform030.000.00
    ops_transform040.000.00
    ops_transform0581.8015.67
    ops_transform060.000.00
    ops_transform073.710.05
    ops_transform080.000.00
    ops_transform090.000.00
    ops_transform100.000.00
    +

    Final Return Code: 120

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_transform_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_transform_py.html new file mode 100644 index 000000000..763bce9c2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_transform_py.html @@ -0,0 +1,228 @@ +operators/transform.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  transform.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain,
    +#                          3D rectilinear, single domain.
    +#              plots     - pc, mesh, contour, vector
    +#              operators - transform
    +#              selection - none
    +#
    +#  Defect ID:  '6310, '6694, '6699
    +#
    +#  Programmer: Hank Childs
    +#  Date:       July 24, 2002
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Wed Sep  3 09:31:25 PDT 2003
    +#    Opaque mode for MeshPlot is ON by default now, so turn it off
    +#    for this test.
    +#
    +#    Kathleen Bonnell, Thu Sep  4 11:10:11 PDT 2003
    +#    Change the way MeshPlot's opaque mode is set (now an enum, not a bool).
    +#
    +#    Hank Childs, Wed Jun  8 15:36:22 PDT 2005
    +#    Added tests for coordinate system conversion.  ['6310]
    +#
    +#    Hank Childs, Tue Nov 15 15:59:00 PST 2005
    +#    Added tests for 2D transformations.  ['6694 '6699]
    +#
    +#    Kathleen Bonnell,  Fri Mar 28 15:24:18 PDT 2008
    +#    Added test for curve transformation.  ['8277]
    +#
    +#    Jeremy Meredith
    +#    Added test for linear transforms.
    +#
    +#    Jeremy Meredith, Mon Jul 14 11:17:29 EDT 2008
    +#    Allow the clipped vector plot to show all vectors (even ones not from
    +#    from original cells/nodes) to match the old behavior.
    +#
    +#    Jeremy Meredith, Thu Aug 13 13:34:42 EDT 2009
    +#    Made transform04 test be explicit about the coord sys it chooses.
    +#    Made transform05 use Cyl instead of Spher coords; it's a 2D problem!
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Thu Jul 11 08:20:24 PDT 2013
    +#    Removed legacy style annotation setting.
    +#
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#    individually to match current baseline results.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Turn off all annotation
    +a = AnnotationAttributes()
    +TurnOffAllAnnotations(a)
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +AddPlot("Pseudocolor", "u")
    +clip = ClipAttributes()
    +clip.plane1Status = 1
    +clip.SetPlane1Origin(0,0,0)
    +clip.SetPlane1Normal(-1,1,0)
    +clip.funcType = 0
    +SetDefaultOperatorOptions(clip)
    +AddOperator("Clip")
    +
    +trans = TransformAttributes()
    +trans.doTranslate = 1
    +trans.translateX = -3
    +SetDefaultOperatorOptions(trans)
    +AddOperator("Transform")
    +DrawPlots()
    +
    +AddPlot("Vector", "vel")
    +vec = VectorAttributes()
    +vec.origOnly = 0
    +SetPlotOptions(vec)
    +
    +clip.SetPlane1Normal(1,-1,0)
    +SetDefaultOperatorOptions(clip)
    +AddOperator("Clip")
    +
    +trans.translateX = -6
    +SetDefaultOperatorOptions(trans)
    +AddOperator("Transform")
    +
    +DrawPlots()
    +
    +Test("ops_transform01")
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +AddPlot("Mesh", "quadmesh3d")
    +m = MeshAttributes()
    +m.opaqueMode = m.Off
    +SetPlotOptions(m)
    +trans.doTranslate = 0
    +trans.translateX = 0
    +trans.doScale = 1
    +trans.scaleX = 4
    +trans.scaleZ = 3
    +SetDefaultOperatorOptions(trans)
    +AddOperator("Transform")
    +DrawPlots()
    +
    +ResetView()
    +Test("ops_transform02")
    +DeleteAllPlots()
    +
    +AddPlot("Contour", "d")
    +trans.doRotate = 1
    +trans.rotateAmount = 45
    +SetDefaultOperatorOptions(trans)
    +AddOperator("Transform")
    +DrawPlots()
    +
    +ResetView()
    +Test("ops_transform03")
    +
    +DeleteAllPlots()
    +
    +a.axes3D.visible = 1
    +a.axes3D.bboxFlag = 1
    +SetAnnotationAttributes(a)
    +
    +AddPlot("Contour", "d")
    +AddOperator("Transform")
    +trans = TransformAttributes() # Get reset version.
    +trans.transformType = trans.Coordinate
    +trans.inputCoordSys = trans.Cartesian
    +trans.outputCoordSys = trans.Spherical
    +SetOperatorOptions(trans)
    +DrawPlots()
    +SetViewExtentsType("actual")
    +ResetView()
    +
    +Test("ops_transform04")
    +
    +# '6699
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Transform")
    +trans.transformType = trans.Coordinate
    +trans.inputCoordSys = trans.Cartesian
    +trans.outputCoordSys = trans.Cylindrical
    +SetOperatorOptions(trans)
    +DrawPlots()
    +Test("ops_transform05")
    +
    +# '6694
    +DeleteAllPlots()
    +DefineVectorExpression("polar", "polar(quadmesh2d) - coord(quadmesh2d)")
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Displace")
    +disp = DisplaceAttributes()
    +disp.variable = "polar"
    +SetOperatorOptions(disp)
    +DrawPlots()
    +Test("ops_transform06")
    +
    +# '8277
    +DeleteAllPlots()
    +OpenDatabase(data_path("curve_test_data/zonecent.ultra"))
    +
    +AddPlot("Curve", "curve2")
    +curveAtts = CurveAttributes()
    +curveAtts.curveColorSource = curveAtts.Custom
    +curveAtts.curveColor = (255, 0, 0, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +Test("ops_transform07")
    +
    +AddOperator("Transform")
    +trans.transformType = trans.Similarity
    +trans.doRotate = 0
    +trans.doTranslate = 0
    +trans.doScale = 1
    +trans.scaleX = 1
    +trans.scaleZ = 1
    +trans.scaleY = -3
    +SetOperatorOptions(trans)
    +DrawPlots()
    +Test("ops_transform08")
    +
    +# Test linear transform
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Transform")
    +
    +trans.transformType = trans.Linear
    +trans.m00 = .8
    +trans.m01 = .3
    +trans.m02 = 0
    +
    +trans.m10 = 0
    +trans.m11 = 1
    +trans.m12 = 0
    +
    +trans.m20 = .5
    +trans.m21 = .5
    +trans.m22 = 1
    +
    +trans.invertLinearTransform = 0
    +
    +SetOperatorOptions(trans)
    +DrawPlots()
    +ResetView()
    +
    +Test("ops_transform09")
    +
    +trans.invertLinearTransform = 1
    +SetOperatorOptions(trans)
    +Test("ops_transform10")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_tube.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_tube.html new file mode 100644 index 000000000..fd5431327 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_tube.html @@ -0,0 +1,72 @@ + +Results for operators/tube.py + +

    Results of VisIt Regression Test - operators/tube

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    tube_010.000.00
    tube_020.000.00
    tube_030.000.00
    tube_040.000.00
    tube_050.000.00
    tube_060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_tube_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_tube_py.html new file mode 100644 index 000000000..3956a9231 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/operators_tube_py.html @@ -0,0 +1,64 @@ +operators/tube.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  tube.py
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       August 7, 2012
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(data_path("vtk_test_data/lines.vtk"))
    +
    +AddPlot("Pseudocolor", "var1")
    +AddOperator("Tube")
    +tube = TubeAttributes()
    +tube.tubeRadiusType = tube.Absolute
    +tube.radiusAbsolute = 0.5
    +tube.fineness = 20
    +SetOperatorOptions(tube)
    +
    +view = GetView3D()
    +view.viewNormal = (-0.429483, -0.499742, 0.752198)
    +view.focus = (0, 0, 0)
    +view.viewUp = (-0.296677, 0.864778, 0.405144)
    +view.viewAngle = 30
    +view.parallelScale = 8.66025
    +view.nearPlane = -17.3205
    +view.farPlane = 17.3205
    +SetView3D(view)
    +
    +DrawPlots()
    +
    +Test("tube_01")
    +
    +tube.scaleByVarFlag = 1
    +SetOperatorOptions(tube)
    +Test("tube_02")
    +
    +tube.scaleVariable = "var2"
    +SetOperatorOptions(tube)
    +Test("tube_03")
    +
    +# get the default again
    +tube = TubeAttributes()
    +
    +ChangeActivePlotsVar("var2")
    +tube.tubeRadiusType = tube.Absolute
    +tube.radiusAbsolute = 0.5
    +tube.fineness = 20
    +SetOperatorOptions(tube)
    +Test("tube_04")
    +
    +tube.scaleByVarFlag = 1
    +SetOperatorOptions(tube)
    +Test("tube_05")
    +
    +tube.scaleVariable = "var1"
    +SetOperatorOptions(tube)
    +Test("tube_06")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_contour.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_contour.html new file mode 100644 index 000000000..fc319e8d2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_contour.html @@ -0,0 +1,246 @@ + +Results for plots/contour.py + +

    Results of VisIt Regression Test - plots/contour

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    contour_contourMethod_000.000.00
    contour_contourMethod_010.000.00
    contour_contourMethod_020.000.00
    contour_wireframe_000.000.00
    contour_minMax_000.000.00
    contour_minMax_010.000.00
    contour_minMax_020.000.00
    contour_minMax_030.000.00
    contour_minMax_040.000.00
    contour_lineWidth_000.000.00
    contour_lineWidth_010.000.00
    contour_lineWidth_020.000.00
    contour_lineWidth_030.000.00
    contour_lineWidth_040.000.00
    contour_lineWidth_050.000.00
    contour_lineWidth_060.000.00
    contour_lineWidth_070.000.00
    contour_lineWidth_080.000.00
    contour_lineWidth_090.000.00
    contour_colorMethod_000.000.00
    contour_colorMethod_010.000.00
    contour_colorMethod_020.000.00
    contour_colorMethod_030.000.00
    contour_colorMethod_040.000.00
    contour_colorMethod_050.000.00
    contour_colorMethod_060.000.00
    contour_colorMethod_070.000.00
    contour_colorMethod_080.000.00
    contour_colorMethod_090.000.00
    contour_linearScale0.000.00
    contour_logScale0.000.00
    contour_multicolor_000.000.00
    contour_multicolor_010.000.00
    contour_multicolor_020.000.00
    contour_bad_value0 modifications totalling 0 lines
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_contour_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_contour_py.html new file mode 100644 index 000000000..8bbb4e159 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_contour_py.html @@ -0,0 +1,183 @@ +plots/contour.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  contour.py
    +#
    +#  Tests:      mesh      - 3D structured, single domain
    +#                        - 3D rectilinear, multiple domain
    +#                        - 2D curvilinear, single domain
    +#              plots     - Contour
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       October 15, 2014
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Sep 23 17:06:37 PDT 2015
    +#    Add a test for bad contour values to make sure the plot can handle it.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def ExerciseAtts():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    AddPlot("Contour", "hardyglobal")
    +    c = ContourAttributes()
    +    c.contourMethod = c.Percent
    +    c.contourPercent = (5, 78, 52, 13, 36, 42)
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("contour_contourMethod_00")
    +    c.contourMethod = c.Value
    +    c.contourValue= (2.0, 3.3, 5.01)
    +    SetPlotOptions(c)
    +    Test("contour_contourMethod_01")
    +    c.contourMethod = c.Level
    +    c.contourNLevels = 7
    +    SetPlotOptions(c)
    +    Test("contour_contourMethod_02")
    +
    +    c.wireframe = 1
    +    c.lineWidth = 3
    +    SetPlotOptions(c)
    +    Test("contour_wireframe_00")
    +    ChangeActivePlotsVar("shepardglobal")
    +    # Get new default atts
    +    c = ContourAttributes()
    +    c.contourNLevels = 3
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("contour_minMax_00")
    +    c.minFlag = 1
    +    c.maxFlag = 1
    +    c.max = 5
    +    for i in range(1,5):
    +        c.min = i
    +        SetPlotOptions(c)
    +        Test("contour_minMax_%02d"%i)
    +
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +    AddPlot("Contour", "d")
    +    c = ContourAttributes()
    +    c.contourNLevels = 4
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    for i in range(10):
    +        c.lineWidth = i
    +        SetPlotOptions(c)
    +        Test("contour_lineWidth_%02d"%i)
    +
    +    c.lineWidth = 4
    +
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +    AddPlot("Contour", "d")
    +    c = ContourAttributes()
    +    c.contourNLevels = 5
    +    c.colorType = c.ColorByColorTable
    +    c.colorTableName = "rainbow"
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("contour_colorMethod_00")
    +    c.invertColorTable = 1
    +    SetPlotOptions(c)
    +    Test("contour_colorMethod_01")
    +
    +    c.colorType = c.ColorBySingleColor
    +    c.singleColor = (87, 170, 0, 255)
    +    SetPlotOptions(c)
    +    Test("contour_colorMethod_02")
    +    c.singleColor = (87, 170, 0, 120)
    +    SetPlotOptions(c)
    +    Test("contour_colorMethod_03")
    +
    +    c.colorType = c.ColorByMultipleColors
    +    SetPlotOptions(c)
    +    Test("contour_colorMethod_04")
    +    for i in range(5,0,-1):
    +        levelColor = list(c.GetMultiColor(i-1))
    +        levelColor[3] = 65
    +        c.SetMultiColor((i-1),tuple(levelColor))
    +        SetPlotOptions(c)
    +        Test("contour_colorMethod_%02d"%(10-i))
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("wave.visit"))
    +    AddPlot("Contour", "pressure")
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (-0.561907, 0.653269, 0.507444)
    +    v.viewUp = (0.388352, 0.749975, -0.535463)
    +    SetView3D(v)
    +    Test("contour_linearScale")
    +    c = ContourAttributes()
    +    c.scaling = c.Log
    +    SetPlotOptions(c)
    +    Test("contour_logScale")
    +
    +    DeleteAllPlots()
    +
    +def TestMultiColor():
    +    # Bug 2013, indexing issues with SetMultiColor when num levels reduces.
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    AddPlot("Contour", "hardyglobal")
    +    DrawPlots()
    +
    +    Sets = [[1,5.5,11],[1,5.5,11],[1,5.5,8]]
    +    testNum = 0
    +    for r in Sets:
    +        # the next comment and similar below bracket code to be 'literalincluded' in quickrecipes.rst
    +        # contourAtts {
    +        p = ContourAttributes()
    +        p.contourMethod = p.Level
    +        p.contourNLevels=r[2]
    +        p.colorType = p.ColorByMultipleColors
    +        p.singleColor = (255, 0, 0, 25)
    +        p.SetMultiColor(0, (255,0,255,64))
    +        p.SetMultiColor(1, (0,255,0,64))
    +        p.SetMultiColor(2, (255, 135, 0, 255))
    +        p.SetMultiColor(3, (255,255,0,64))
    +        p.SetMultiColor(4, (255, 0, 135, 255))
    +        p.SetMultiColor(5, (0,0,255,64))
    +        p.SetMultiColor(6, (0,255,255,64))
    +        p.SetMultiColor(7, (255,0,0,64))
    +        if r[2] > 8 :
    +            p.SetMultiColor(8, (99, 255, 99, 255))
    +            p.SetMultiColor(9, (168, 168, 168, 255))
    +            p.SetMultiColor(10, (255, 68, 68, 255))
    +
    +        p.minFlag=1
    +        p.maxFlag=1
    +        p.min=r[0]
    +        p.max=r[1]
    +        SetPlotOptions(p)
    +        # contourAtts }
    +        Test("contour_multicolor_%02d"%testNum)
    +        testNum = testNum + 1
    +    DeleteAllPlots()
    +
    +def TestBadValue():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    AddPlot("Contour", "hardyglobal")
    +    ContourAtts = ContourAttributes()
    +    ContourAtts.contourValue = (0)
    +    ContourAtts.contourMethod = ContourAtts.Value  # Level, Value, Percent
    +    ContourAtts.minFlag = 0
    +    ContourAtts.maxFlag = 0
    +    SetPlotOptions(ContourAtts)
    +    DrawPlots()
    +
    +    # Test that the plot is not in the error state and that we have an engine. (i.e. the engine did not crash)
    +    pl = GetPlotList()
    +    txt = "Plot Completed: " + str(pl.GetPlots(0).stateType == pl.GetPlots(0).Completed) + "\n"
    +    txt = txt + "Number of compute engines: " + str(len(GetEngineList())) + "\n"
    +    TestText("contour_bad_value", txt)
    +
    +ExerciseAtts()
    +TestMultiColor()
    +TestBadValue()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_curve.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_curve.html new file mode 100644 index 000000000..0e46f4881 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_curve.html @@ -0,0 +1,361 @@ + +Results for plots/curve.py + +

    Results of VisIt Regression Test - plots/curve

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    curve_1_010.000.00
    curve_1_020.000.00
    curve_1_030.000.00
    curve_1_040.000.00
    curve_1_050.000.00
    curve_1_060.000.00
    curve_1_070.000.00
    Overlay curves on 2D plots
    curve_2_010.000.00
    curve_2_020.000.00
    curve_2_030.000.00
    curve_2_050.000.00
    curve_2_060.000.00
    curve_2_070.000.00
    curve_2_080.000.00
    curve_2_090.000.00
    curve_2_100.000.00
    Points and Symbols
    curve_3_010.000.00
    curve_3_020.000.00
    curve_3_030.000.00
    curve_3_040.000.00
    curve_3_050.000.00
    curve_3_060.000.00
    curve_3_070.000.00
    curve_3_080.000.00
    curve_3_090.000.00
    curve_3_100.000.00
    curve_3_110.000.00
    curve_3_120.000.00
    curve_3_130.000.00
    Time Cue
    curve_4_000.000.00
    curve_4_010.000.00
    curve_4_020.000.00
    curve_4_030.000.00
    curve_4_040.000.00
    curve_4_050.000.00
    curve_4_060.000.00
    curve_4_070.000.00
    curve_4_080.000.00
    Polar
    polar_curve_010.670.02
    polar_curve_020.000.00
    polar_curve_030.000.00
    polar_curve_040.000.00
    polar_curve_050.000.00
    polar_curve_060.000.00
    polar_curve_070.000.00
    polar_curve_080.000.00
    Scale
    curve_scale_000.590.00
    curve_scale_010.470.00
    curve_scale_020.450.00
    curve_scale_030.450.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_curve_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_curve_py.html new file mode 100644 index 000000000..6709cdf79 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_curve_py.html @@ -0,0 +1,488 @@ +plots/curve.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial, parallel, scalable
    +#  CLASSES: nightly
    +#
    +#  Test Case:  curve.py 
    +#
    +#  Tests:      Tests the curve plot
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       August 3, 2006 
    +#
    +#  Modifications:
    +#    Brad Whitlock, Tue Nov 21 10:55:24 PDT 2006
    +#    Made it use enums for line style.
    +#
    +#    Mark C. Miller, Thu Jun 21 11:05:58 PDT 2007
    +#    Added tests for overlaying curves on 2D plots
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Bonnell, Fri Aug 13 16:10:56 MST 2010 
    +#    Added TestPointsAndSymbols to test various points/symbol settings.
    +#    Added TestTimeCue to test time-cue functionality
    +#
    +#    Kathleen Biagas, Thu Sep 12 09:08:00 PDT 2013
    +#    Added TestPolar to test new polar conversion capability.
    +#
    +#    Kathleen Biagas, Tue Jul 15 14:16:33 MST 2014
    +#    Added TestScale, which demonstrates the need to scale curves with values
    +#    greater than 1e37 or less than 1e-37.
    +#
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all tests.  Set the colors individually
    +#    to match current baseline results.
    +#
    +#    Kathleen Biagas, Thu Feb 17 07:40:34 PST 2022
    +#    Replace 'color' with 'curveColor' for CurveAttributes.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def Test1():
    +    OpenDatabase(data_path("curve_test_data/distribution.ultra"))
    +
    +    DefineCurveExpression("logED", "log10(<Exponential Distribution>)")
    +    DefineCurveExpression("logLap", "log10(<Laplace Distribution>)")
    +    AddPlot("Curve", "Exponential Distribution")
    +    c = CurveAttributes()
    +    c.curveColorSource = c.Custom
    +    c.curveColor = (255, 0, 0, 255)
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("curve_1_01")
    +
    +    ChangeActivePlotsVar("logED")
    +    c.curveColor = (0, 0, 0, 255)
    +    SetPlotOptions(c)
    +    ResetView()
    +    Test("curve_1_02")
    +
    +    ChangeActivePlotsVar("Laplace Distribution")
    +    c.curveColor = (0, 255, 0, 255)
    +    c.lineWidth = 2
    +    SetPlotOptions(c)
    +    ResetView()
    +    Test("curve_1_03")
    +
    +    ChangeActivePlotsVar("logLap")
    +    c.lineWidth = 0
    +    c.curveColor = (0, 255, 255, 255)
    +    SetPlotOptions(c)
    +    ResetView()
    +    Test("curve_1_04")
    +
    +    v = GetViewCurve()
    +    v.domainCoords = (-19.3832, -19.3626)
    +    v.rangeCoords = (-8.71826, -8.71234)
    +    SetViewCurve(v)
    +    Test("curve_1_05")
    +
    +    ChangeActivePlotsVar("Log Normal Distribution")
    +    ResetView()
    +    Test("curve_1_06")
    +
    +    c.curveColor = (120, 10, 150, 255)
    +    SetPlotOptions(c)
    +
    +    v.domainCoords = (1.13181, 1.14079)
    +    v.rangeCoords = (0.346122, 0.350033)
    +    SetViewCurve(v)
    +    Test("curve_1_07")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("curve_test_data/distribution.ultra"))
    +
    +
    +def TestOverlayCurves():
    +    TestSection("Overlay curves on 2D plots")
    +
    +    # put up some 2D plots
    +    OpenDatabase(silo_data_path("ucd2d.silo"))
    +
    +    AddPlot("Pseudocolor","d")    # id=0
    +    AddPlot("Mesh","ucdmesh2d")   # id=1
    +    SetActivePlots((1))
    +    AddOperator("Transform")
    +    ta=TransformAttributes()
    +    ta.doTranslate=1
    +    ta.translateY=2
    +    SetOperatorOptions(ta)
    +    DrawPlots()
    +
    +    OpenDatabase(data_path("curve_test_data/ol_curveA.curve"))
    +
    +    AddPlot("Curve","ol_curveA")  # id=2
    +    c = CurveAttributes()
    +    c.curveColorSource = c.Custom
    +    c.curveColor = (0, 255, 0, 0)
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("curve_2_01")
    +
    +    OpenDatabase(data_path("curve_test_data/ol_curveB.curve"))
    +
    +    AddPlot("Curve","ol_curveB")  # id=3
    +    c.curveColor = (0, 0, 255, 0)
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("curve_2_02")
    +
    +    OpenDatabase(data_path("curve_test_data/ol_curveC.curve"))
    +
    +    AddPlot("Curve","ol_curveC")  # id=4
    +    c.curveColor = (0, 255, 255, 0)
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("curve_2_03")
    +
    +    # testing hiding/unhiding the 2D plots
    +    SetActivePlots(())
    +    SetActivePlots((0,1))
    +    HideActivePlots()
    +    #Test("curve_2_04")
    +    HideActivePlots()
    +    Test("curve_2_05")
    +    SetActivePlots((1))
    +    HideActivePlots()
    +    Test("curve_2_06")
    +    HideActivePlots()
    +
    +    # test hiding some curves
    +    SetActivePlots((2,3,4))
    +    HideActivePlots()
    +    Test("curve_2_07")
    +    HideActivePlots()
    +    SetActivePlots((2))
    +    HideActivePlots()
    +    Test("curve_2_08")
    +    HideActivePlots()
    +    SetActivePlots((3))
    +    HideActivePlots()
    +    Test("curve_2_09")
    +    HideActivePlots()
    +    SetActivePlots((4))
    +    HideActivePlots()
    +    Test("curve_2_10")
    +    HideActivePlots()
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("ucd2d.silo"))
    +
    +    CloseDatabase(data_path("curve_test_data/ol_curveA.curve"))
    +
    +    CloseDatabase(data_path("curve_test_data/ol_curveB.curve"))
    +
    +    CloseDatabase(data_path("curve_test_data/ol_curveC.curve"))
    +
    +
    +def TestPointsAndSymbols():
    +    TestSection("Points and Symbols")
    +    OpenDatabase(data_path("curve_test_data/ol_curveA.curve"))
    +
    +    AddPlot("Curve","ol_curveA")
    +    #points and lines
    +    curve = CurveAttributes()
    +    curve.showLabels = 0
    +    curve.showPoints = 1
    +    curve.curveColorSource = curve.Custom
    +    curve.curveColor = (0, 0, 0, 255)
    +    SetPlotOptions(curve)
    +    DrawPlots()
    +    ResetView()
    +    v = GetViewCurve()
    +    v.domainCoords = (-0.5, 5.5)
    +    v.rangeCoords = (-0.5, 3.5)
    +    SetViewCurve(v)
    +    Test("curve_3_01")
    +
    +    #stride the points
    +    curve.pointStride = 3
    +    SetPlotOptions(curve)
    +    Test("curve_3_02")
    +
    +    #Dynamic fill 
    +    curve.pointFillMode = curve.Dynamic
    +    SetPlotOptions(curve)
    +    Test("curve_3_03")
    +
    +    #change density
    +    curve.symbolDensity = 10
    +    SetPlotOptions(curve)
    +    Test("curve_3_04")
    +
    +    #Symbol 
    +    curve.symbol = curve.TriangleDown
    +    SetPlotOptions(curve)
    +    Test("curve_3_05")
    +
    +    #Zoom 
    +    v.domainCoords = (2, 5)
    +    v.rangeCoords = (2, 4)
    +    SetViewCurve(v)
    +    Test("curve_3_06")
    +
    +    #Symbol 
    +    v.domainCoords = (-0.5, 5.5)
    +    v.rangeCoords = (-0.5, 3.5)
    +    SetViewCurve(v)
    +    curve.symbol = curve.Plus
    +    SetPlotOptions(curve)
    +    Test("curve_3_07")
    +
    +    #Static with symbols
    +    curve.pointFillMode = curve.Static
    +    curve.pointStride = 1
    +    curve.symbol = curve.Circle
    +    SetPlotOptions(curve)
    +    Test("curve_3_08")
    +
    +    #Remove lines
    +    curve.showLines = 0
    +    curve.symbol = curve.X
    +    SetPlotOptions(curve)
    +    Test("curve_3_09")
    +
    +    #Remove lines
    +    curve.pointFillMode = curve.Dynamic
    +    curve.symbolDensity = 30
    +    curve.symbol = curve.TriangleUp
    +    SetPlotOptions(curve)
    +    Test("curve_3_10")
    +
    +    OpenDatabase(data_path("curve_test_data/ol_curveB.curve"))
    +
    +    AddPlot("Curve", "ol_curveB")
    +    DrawPlots()
    +    c2 = CurveAttributes()
    +    c2.showLabels = 0
    +    c2.curveColorSource = c2.Custom
    +    c2.curveColor = (255, 0, 0, 255)
    +    SetPlotOptions(c2)
    +    AddOperator("Transform")
    +    ta2=TransformAttributes()
    +    ta2.doTranslate=1
    +    ta2.translateX=-0.35
    +    SetOperatorOptions(ta2)
    +    DrawPlots()
    +    DrawPlots()
    +    Test("curve_3_11")
    +
    +    c2.showLines = 0
    +    c2.showPoints = 1
    +    c2.pointFillMode = c2.Dynamic
    +    c2.symbol = c2.Circle
    +    c2.symbolDensity = 30
    +    SetPlotOptions(c2)
    +    DrawPlots()
    +    Test("curve_3_12")
    +
    +
    +    OpenDatabase(data_path("curve_test_data/ol_curveC.curve"))
    +
    +    AddPlot("Curve", "ol_curveC")
    +    DrawPlots()
    +    c3 = CurveAttributes()
    +    c3.showLabels = 0
    +    c3.showPoints = 1
    +    c3.curveColorSource = c2.Custom
    +    c3.curveColor = (0, 255, 0, 255)
    +    SetPlotOptions(c3)
    +    AddOperator("Transform")
    +    ta3=TransformAttributes()
    +    ta3.doTranslate=1
    +    ta3.translateX=0.25
    +    SetOperatorOptions(ta3)
    +    DrawPlots()
    +    Test("curve_3_13")
    +
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("curve_test_data/ol_curveA.curve"))
    +
    +    CloseDatabase(data_path("curve_test_data/ol_curveB.curve"))
    +
    +    CloseDatabase(data_path("curve_test_data/ol_curveB.curve"))
    +
    +
    +def TestTimeCue():
    +    TestSection("Time Cue")
    +    OpenDatabase(data_path("curve_test_data/ol_curveC.curve"))
    +
    +    AddPlot("Curve", "ol_curveC")
    +    c = CurveAttributes()
    +    c.showLabels = 0
    +    c.showPoints = 1
    +    c.curveColorSource = c.Custom
    +    c.curveColor = (0, 0, 0, 255)
    +    c.doBallTimeCue = 1
    +    c.timeCueBallSize = 1
    +    c.ballTimeCueColor = (0, 255, 0, 255)
    +    SetPlotOptions(c)
    +    DrawPlots()
    +
    +    v = GetViewCurve()
    +    v.domainCoords = (-0.25, 10.25)
    +    v.rangeCoords = (-0.25, 15.25)
    +    SetViewCurve(v)
    +
    +    SuppressQueryOutputOn()
    +    Query("NumNodes")
    +    n = int(GetQueryOutputValue())
    +    for i in range(n-1):
    +        c.timeForTimeCue = i
    +        SetPlotOptions(c)
    +        s = "curve_4_%02d" % i
    +        Test(s)
    +
    +    c.doLineTimeCue = 1
    +    c.lineTimeCueColor = c.ballTimeCueColor
    +    SetPlotOptions(c)
    +    s = "curve_4_%02d" % (n-1)
    +    Test(s)
    +
    +    c.lineTimeCueWidth = 3
    +    SetPlotOptions(c)
    +    s = "curve_4_%02d" % n
    +    Test(s)
    +    n = n+ 1
    +
    +    c.doCropTimeCue = 1
    +    SetPlotOptions(c)
    +    s = "curve_4_%02d" % n
    +    Test(s)
    +
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("curve_test_data/ol_curveC.curve"))
    +
    +def TestPolar():
    +    TestSection("Polar")
    +    OpenDatabase(data_path("curve_test_data/rose_theta_r_rads.ultra"))
    +    AddPlot("Curve", "rose")
    +    c = CurveAttributes()
    +    c.curveColorSource = c.Custom
    +    c.curveColor = (255, 0, 0, 255)
    +    c.showLabels = 0
    +    c.doLineTimeCue = 0
    +    c.doCropTimeCue = 0
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    ResetView()
    +    Test("polar_curve_01")
    +    c.polarToCartesian = 1
    +    c.polarCoordinateOrder = c.Theta_R
    +    c.angleUnits = c.Radians
    +    SetPlotOptions(c)
    +    ResetView()
    +    Test("polar_curve_02")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("curve_test_data/rose_theta_r_rads.ultra"))
    +
    +    OpenDatabase(data_path("curve_test_data/rose_r_theta_rads.ultra"))
    +    AddPlot("Curve", "rose")
    +    c = CurveAttributes()
    +    c.curveColorSource = c.Custom
    +    c.curveColor = (0, 0, 255, 255)
    +    c.showLabels = 0
    +    c.doLineTimeCue = 0
    +    c.doCropTimeCue = 0
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    ResetView()
    +    Test("polar_curve_03")
    +    c.polarToCartesian = 1
    +    c.polarCoordinateOrder = c.R_Theta
    +    c.angleUnits = c.Radians
    +    SetPlotOptions(c)
    +    ResetView()
    +    Test("polar_curve_04")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("curve_test_data/rose_r_theta_rads.ultra"))
    +
    +    OpenDatabase(data_path("curve_test_data/spiral_r_theta_deg.ultra"))
    +    AddPlot("Curve", "spiral")
    +    c.curveColor = (0, 255, 0, 255)
    +    c.polarToCartesian = 0
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("polar_curve_05")
    +    c.polarToCartesian = 1
    +    c.polarCoordinateOrder = c.R_Theta
    +    c.angleUnits = c.Degrees
    +    SetPlotOptions(c)
    +    ResetView()
    +    Test("polar_curve_06")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("curve_test_data/spiral_r_theta_deg.ultra"))
    +
    +    OpenDatabase(data_path("curve_test_data/circle.ultra"))
    +    AddPlot("Curve", "circle")
    +    c.curveColor = (255, 0, 255, 255)
    +    c.polarToCartesian = 0
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("polar_curve_07")
    +    c.polarToCartesian = 1
    +    c.polarCoordinateOrder = c.Theta_R
    +    c.angleUnits = c.Degrees
    +    SetPlotOptions(c)
    +    ResetView()
    +    Test("polar_curve_08")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("curve_test_data/circle.ultra"))
    +
    +def TestScale():
    +    TestSection("Scale")
    +    OpenDatabase(data_path("curve_test_data/need_scale.ultra"))
    +    AddPlot("Curve", "toobig")
    +    c = CurveAttributes()
    +    c.curveColorSource = c.Custom
    +    c.curveColor = (40, 165, 165, 255)
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("curve_scale_00")
    +
    +    t = TransformAttributes()
    +    t.doScale =1
    +    t.scaleX=1e-15
    +    t.scaleY=1e-15
    +    t.scaleZ=1e-15
    +    AddOperator("Transform")
    +    SetOperatorOptions(t)
    +    DrawPlots()
    +    ResetView()
    +
    +    Test("curve_scale_01")
    +
    +    RemoveLastOperator()
    +    ChangeActivePlotsVar("toosmall")
    +    DrawPlots()
    +    ResetView()
    +
    +    Test("curve_scale_02")
    +
    +    t.scaleX=1e+15
    +    t.scaleY=1e+15
    +    t.scaleZ=1e+15
    +    AddOperator("Transform")
    +    SetOperatorOptions(t)
    +    DrawPlots()
    +    ResetView()
    +
    +    Test("curve_scale_03")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("curve_test_data/need_scale.ultra"))
    +
    +def Main():
    +    Test1()
    +    TestOverlayCurves()
    +    TestPointsAndSymbols()
    +    TestTimeCue()
    +    TestPolar()
    +    TestScale()
    +
    +Main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_filledboundary.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_filledboundary.html new file mode 100644 index 000000000..ebc50b25b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_filledboundary.html @@ -0,0 +1,84 @@ + +Results for plots/filledboundary.py + +

    Results of VisIt Regression Test - plots/filledboundary

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    fb_wireframe_010.000.00
    fb_wireframe_020.000.00
    fb_lines_010.000.00
    fb_lines_020.000.00
    fb_lines_030.000.00
    fb_lines_040.000.00
    fb_points_010.000.00
    fb_points_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_filledboundary_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_filledboundary_py.html new file mode 100644 index 000000000..7c8f86212 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_filledboundary_py.html @@ -0,0 +1,110 @@ +plots/filledboundary.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  filledboundary.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, single domain
    +#              plots     - FilledBoundary
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 11, 2020 
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# singlecolor.py and multicolor.py test the coloring functionality of FB plots,
    +# so those aspects won't be heavily tested here.
    +
    +TurnOffAllAnnotations()
    +
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +AddPlot("FilledBoundary", "mat1")
    +fb = FilledBoundaryAttributes()
    +
    +# test line settings, first with wireframe mode:
    +fb.wireframe = 1
    +SetPlotOptions(fb)
    +DrawPlots()
    +
    +# want to rotate the view to verify the lines are unlit
    +v = GetView3D()
    +viewNormal = (0, 0, -1)
    +SetView3D(v)
    +Test("fb_wireframe_01")
    +
    +fb.lineWidth = 3
    +SetPlotOptions(fb)
    +Test("fb_wireframe_02")
    +
    +# now with lines created by an operator/operator sequence
    +fb.lineWidth = 1
    +fb.wireframe = 0
    +SetPlotOptions(fb)
    +AddOperator("ThreeSlice")
    +ts = ThreeSliceAttributes()
    +ts.x = 0.5;
    +ts.y = 0.5;
    +ts.z = 0.5;
    +SetOperatorOptions(ts)
    +
    +AddOperator("ExternalSurface")
    +DrawPlots()
    +Test("fb_lines_01")
    +
    +# move ExternalSurface to before ThreeSlice
    +DemoteOperator(1)
    +fb.lineWidth = 4
    +SetPlotOptions(fb)
    +DrawPlots()
    +Test("fb_lines_02")
    +
    +# add another FB plot and play with opacity
    +AddPlot("FilledBoundary", "mat1")
    +fb2 = FilledBoundaryAttributes()
    +fb2.colorType = fb.ColorBySingleColor
    +fb2.singleColor=(255, 153, 0, 255)
    +fb2.opacity = 0.5
    +SetPlotOptions(fb2)
    +
    +DrawPlots()
    +Test("fb_lines_03")
    +DeleteAllPlots()
    +
    +
    +CloseDatabase(silo_data_path("rect3d.silo"))
    +
    +# Another way of producing lines in a FB plot: Add Edge operator
    +OpenDatabase(silo_data_path("noise.silo"))
    +AddPlot("FilledBoundary", "mat1")
    +fb2.opacity = 1
    +SetPlotOptions(fb2)
    +AddOperator("Edge")
    +DrawPlots()
    +ResetView()
    +v = GetView3D()
    +v.viewNormal = (0.0368258, 0.737081, -0.674801)
    +v.viewUp = (0.0382946, 0.673722, -0.737992)
    +SetView3D(v)
    +Test("fb_lines_04")
    +
    +# perhaps a bit contrived, but adding Edge and ThreeSlice operators together
    +# will generate points and allow testing of point glyphing functionality
    +AddOperator("ThreeSlice")
    +SetOperatorOptions(ts)
    +DrawPlots()
    +Test("fb_points_01")
    +
    +fb2.pointType = fb.Tetrahedron
    +fb2.pointSize = 1
    +SetPlotOptions(fb2)
    +Test("fb_points_02")
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("noise.silo"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_label.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_label.html new file mode 100644 index 000000000..3ca0e3243 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_label.html @@ -0,0 +1,550 @@ + +Results for plots/label.py + +

    Results of VisIt Regression Test - plots/label

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    General label plot features
    label_0_000.000.00
    label_0_010.000.00
    label_0_020.000.00
    label_0_030.000.00
    label_0_040.000.00
    label_0_050.000.00
    label_0_060.000.00
    label_0_070.000.00
    label_0_080.000.00
    label_0_090.000.00
    label_0_100.000.00
    label_0_110.000.00
    label_0_120.000.00
    label_0_130.000.00
    label_0_140.000.00
    label_0_150.000.00
    label_0_160.000.00
    label_0_170.000.00
    label_0_180.000.00
    label_0_190.000.00
    label_0_200.000.00
    Curvilinear 2D
    label_1_000.000.00
    label_1_010.000.00
    label_1_020.000.00
    label_1_030.000.00
    label_1_040.000.00
    label_1_050.000.00
    label_1_060.000.00
    Rectilinear 2D
    label_2_000.000.00
    label_2_010.000.00
    label_2_020.000.00
    label_2_030.000.00
    label_2_040.000.00
    label_2_050.000.00
    Unstructured 2D
    label_3_000.000.00
    label_3_010.000.00
    label_3_020.000.00
    label_3_030.000.00
    Testing slicing 3D data to 2D
    label_4_000.000.00
    label_4_010.000.00
    label_4_020.000.00
    label_4_030.000.00
    VTK with labels
    label_5_010.000.00
    Labelling subsets
    label_6_000.000.00
    label_6_010.000.00
    label_6_020.000.00
    label_6_030.000.00
    label_6_040.250.10
    label_6_050.000.00
    Labelling tensors
    label_7_000.000.00
    label_7_010.000.00
    label_7_020.000.00
    label_7_030.000.00
    label_7_040.000.00
    label_7_050.000.00
    Labelling in 3D with Z buffer
    label_8_000.000.00
    label_8_010.000.00
    label_8_020.000.00
    label_8_030.000.00
    label_8_040.000.00
    label_8_050.000.00
    label_8_060.000.00
    label_8_070.000.00
    label_8_080.000.00
    label_8_090.000.00
    label_8_100.000.00
    label_8_113.860.79
    Labelling sliced vectors
    label_9_000.000.00
    label_9_010.000.00
    label_9_020.000.00
    Test 3D zooming and logical mesh display
    label_10_000.000.00
    label_10_010.000.00
    label_10_020.000.00
    label_10_030.000.00
    label_10_040.000.00
    label_10_050.000.00
    label_10_060.000.00
    Test datasets with mixed variables
    label_11_000.000.00
    label_11_010.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_label_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_label_py.html new file mode 100644 index 000000000..82e148b68 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_label_py.html @@ -0,0 +1,1005 @@ +plots/label.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial
    +#  CLASSES: nightly
    +#
    +#  Test Case:  label.py
    +#
    +#  Tests:      Tests the label plot
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Oct 22 15:50:06 PST 2004
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Oct 27 15:08:27 PST 2004
    +#    I made the baseline images larger.
    +#
    +#    Mark C. Miller, Mon Apr 25 21:35:54 PDT 2005
    +#    I added tests for different data types
    +#
    +#    Kathleen Bonnell, Thu Jul 14 07:53:46 PDT 2005
    +#    Added TestLabeledVTK, to test reading and use of char data from VTK.
    +#
    +#    Brad Whitlock, Thu Aug 4 14:25:22 PST 2005
    +#    Added tests for labelling subsets and I also removed the single cell/node
    +#    stuff and replaced it with tests for setting individual cell/node
    +#    colors and text heights.
    +#
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +#    Brad Whitlock, Tue Nov 15 09:56:44 PDT 2005
    +#    Added another test for sliced vectors.
    +#
    +#    Brad Whitlock, Tue Apr 25 15:47:21 PST 2006
    +#    I added tests for making sure that Label plots of structured meshes
    +#    actually show their logical index nature by default. The tests also
    +#    show the Label plot with zooms that used to make the labels be incorrectly
    +#    offset from the other plots.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Alister Maguire, Mon Feb 26 10:22:04 PST 2018
    +#    Added TestMixedVariables for testing datasets with mixed variables.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Replace obsolete Label text attributes with new versions.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin(("Boxlib2D", "SAMRAI", "VTK"))
    +
    +
    +# Create label attributes with somewhat larger text.
    +def CreateLabelAttributes():
    +    L = LabelAttributes()
    +    L.textFont1.scale = 5
    +    L.textFont2.scale = 5
    +    return L
    +
    +def SaveTestImage(name):
    +    # Save these images somewhat larger than a regular test case image
    +    # since the images contain a lot of text.
    +    swa = SaveWindowAttributes()
    +    swa.width = 500
    +    swa.height = 500
    +    swa.screenCapture = 0
    +    Test(name, swa)
    +
    +def TestGeneralFeatures():
    +    TestSection("General label plot features")
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Label", "curvmesh2d")
    +    DrawPlots()
    +    SaveTestImage("label_0_00")
    +
    +    # Change the zoom a few times to see the number of labels adaptively change.
    +    v0 = View2DAttributes()
    +    v0.windowCoords = (-11.6154, 11.8294, -3.18886, 8.33075)
    +    v0.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v0.fullFrameActivationMode = v0.Off
    +    SetView2D(v0)
    +    SaveTestImage("label_0_01")
    +
    +    v1 = View2DAttributes()
    +    v1.windowCoords = (-1.0815, 1.29556, 1.98696, 3.15493)
    +    v1.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v1.fullFrameActivationMode = v1.Off
    +    SetView2D(v1)
    +    SaveTestImage("label_0_02")
    +
    +    v2 = View2DAttributes()
    +    v2.windowCoords = (1.78125, 3.00819, 0.209532, 0.812385)
    +    v2.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v2.fullFrameActivationMode = v2.Off
    +    AddPlot("Mesh", "curvmesh2d")
    +    DrawPlots()
    +    SetActivePlots(0)
    +    SetView2D(v2)
    +    SaveTestImage("label_0_03")
    +
    +    # Turn on nodes
    +    L = CreateLabelAttributes()
    +    L.showNodes = 1
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_04")
    +
    +    # Turn off cells
    +    L.showCells = 0
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_05")
    +
    +    # Try showing nodes and cells and alter their respective sizes
    +    L.showCells = 1
    +    L.showNodes = 1
    +    L.textFont1.scale = 6
    +    L.textFont2.scale = 5
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_06")
    +
    +    # Change the cell color.
    +    L.textFont1.color = (0,255,0,255)
    +    L.textFont1.useForegroundColor = 0
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_07")
    +
    +    # Change the node color
    +    L.textFont2.color = (100,10,255,255)
    +    L.textFont2.useForegroundColor = 0
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_08")
    +    L.textFont1.color = (0,255,0,255)
    +    L.textFont2.color = (0,255,0,255)
    +
    +    # Change the structured indices to regular indices
    +    L.showCells = 1
    +    L.labelDisplayFormat = L.Index
    +    L.textFont1.scale = 5
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_09")
    +
    +    # Make the text a little bigger
    +    L.textFont1.scale = 8
    +    L.textFont2.scale = 8
    +    L.showCells = 0
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_10")
    +
    +    # Test different text alignments
    +    L.textFont1.scale = 6
    +    L.textFont2.scale = 6
    +    L.horizontalJustification = L.Left
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_11")
    +    L.horizontalJustification = L.Right
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_12")
    +    L.horizontalJustification = L.HCenter
    +    L.verticalJustification = L.Top
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_13")
    +    L.verticalJustification = L.Bottom
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_14")
    +
    +    # Test changing the number of labels.
    +    L.verticalJustification = L.VCenter
    +    SetPlotOptions(L)
    +    ResetView()
    +    SaveTestImage("label_0_15")
    +    L.numberOfLabels = 40
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_16")
    +
    +    # Turn off restricting the number of labels.
    +    L.restrictNumberOfLabels = 0
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_17")
    +    DeleteAllPlots()
    +
    +    # test different data types from the file
    +    OpenDatabase(silo_data_path("wave0000.silo"))
    +
    +    AddPlot("Label", "chars")
    +    DrawPlots()
    +    v3d=GetView3D()
    +    v3d.viewNormal=(0, 1, 0)
    +    v3d.viewUp=(0, 0, -1)
    +    SetView3D(v3d)
    +    SaveTestImage("label_0_18")
    +    DeleteAllPlots()
    +
    +    AddPlot("Label", "shorts")
    +    DrawPlots()
    +    SaveTestImage("label_0_19")
    +    DeleteAllPlots()
    +
    +    AddPlot("Label", "ints")
    +    DrawPlots()
    +    SaveTestImage("label_0_20")
    +    ResetView()
    +    DeleteAllPlots()
    +
    +def TestCurvilinear2D():
    +    TestSection("Curvilinear 2D")
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    AddPlot("Mesh", "curvmesh2d")
    +    m = MeshAttributes()
    +    m.opaqueMode = m.Auto
    +    SetPlotOptions(m)
    +    # Do a point variable
    +    AddPlot("Label", "u")
    +    DrawPlots()
    +    ResetView()
    +    SaveTestImage("label_1_00")
    +
    +    # Make the labels a little larger and zoom in on the cells
    +    v0 = View2DAttributes()
    +    v0.windowCoords = (-0.632297, 0.483674, 3.38963, 4.57713)
    +    v0.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v0.fullFrameActivationMode = v0.Off
    +    SetView2D(v0)
    +    L = CreateLabelAttributes()
    +    L.textFont1.scale = 5
    +    L.textFont2.scale = 5
    +    SetPlotOptions(L)
    +    SaveTestImage("label_1_01")
    +
    +    # Change the a cell centered variable
    +    ChangeActivePlotsVar("d")
    +    SaveTestImage("label_1_02")
    +
    +    # Change to a node centered vector variable
    +    v0.windowCoords = (-0.662647, 0.179177, 3.52611, 4.4219)
    +    SetView2D(v0)
    +    ChangeActivePlotsVar("vel")
    +    SaveTestImage("label_1_03")
    +
    +    # Change to a mesh variable
    +    ChangeActivePlotsVar("curvmesh2d")
    +    L.showNodes = 1
    +    SetPlotOptions(L)
    +    SaveTestImage("label_1_04")
    +
    +    # Turn off a material
    +    v0.windowCoords = (-1.73904, -0.385797, 2.20216, 3.64214)
    +    SetView2D(v0)
    +    SaveTestImage("label_1_05")
    +    SetActivePlots((0,1,2))
    +    TurnMaterialsOff("2")
    +    SaveTestImage("label_1_06")
    +    DeleteAllPlots()
    +
    +def TestRectilinear2D():
    +    TestSection("Rectilinear 2D")
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    AddPlot("Pseudocolor", "ascii")
    +    AddPlot("Mesh", "quadmesh2d")
    +    m = MeshAttributes()
    +    m.opaqueMode = m.Auto
    +    SetPlotOptions(m)
    +    AddPlot("Label", "ascii")
    +    DrawPlots()
    +    ResetView()
    +    v0 = View2DAttributes()
    +    v0.windowCoords = (0.425121, 0.574879, 0.566829, 0.766505)
    +    v0.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v0.fullFrameActivationMode = v0.Off
    +    SetView2D(v0)
    +    L = CreateLabelAttributes()
    +    L.textFont1.scale = 5
    +    L.textFont2.scale = 5
    +    SetPlotOptions(L)
    +    SaveTestImage("label_2_00")
    +
    +    # Change to a cell centered float variable.
    +    ChangeActivePlotsVar("d")
    +    SaveTestImage("label_2_01")
    +
    +    # Change to a node centered variable
    +    ChangeActivePlotsVar("u")
    +    SaveTestImage("label_2_02")
    +
    +    # Change to a node centered vector variable
    +    ChangeActivePlotsVar("vel")
    +    v1 = View2DAttributes()
    +    v1.windowCoords = (0.478575, 0.543393, 0.650721, 0.737145)
    +    SetView2D(v1)
    +    SaveTestImage("label_2_03")
    +
    +    # Change to the mesh variable
    +    SetActivePlots((0,2))
    +    DeleteActivePlots()
    +    AddPlot("FilledBoundary", "mat1")
    +    AddPlot("Label", "quadmesh2d")
    +    DrawPlots()
    +    L.showNodes = 1
    +    L.textFont1.scale = 5
    +    L.textFont2.scale = 5
    +    SetPlotOptions(L)
    +    SaveTestImage("label_2_04")
    +
    +    # Turn off a material
    +    SetActivePlots((0,1,2))
    +    TurnMaterialsOff("16")
    +    SaveTestImage("label_2_05")
    +    DeleteAllPlots()
    +
    +
    +def TestUnstructured2D():
    +    TestSection("Unstructured 2D")
    +    OpenDatabase(silo_data_path("ucd2d.silo"))
    +
    +    AddPlot("Mesh", "ucdmesh2d")
    +    m = MeshAttributes()
    +    m.opaqueMode = m.Auto
    +    SetPlotOptions(m)
    +    AddPlot("Label", "ucdmesh2d")
    +    L = CreateLabelAttributes()
    +    L.showNodes = 1
    +    L.textFont1.scale = 6
    +    L.textFont2.scale = 6
    +    L.textFont1.color = (255,0,0,255)
    +    L.textFont2.color = (255,0,0,255)
    +    L.textFont1.useForegroundColor = 0
    +    L.textFont2.useForegroundColor = 0
    +    L.restrictNumberOfLabels = 0
    +    SetPlotOptions(L)
    +    DrawPlots()
    +    v0 = View2DAttributes()
    +    v0.windowCoords = (-0.154956, 4.15496, -0.154956, 4.15496)
    +    v0.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v0.fullFrameActivationMode = v0.Off
    +    SetView2D(v0)
    +    SaveTestImage("label_3_00")
    +
    +    # Change to a nodal variable
    +    ChangeActivePlotsVar("d")
    +    SaveTestImage("label_3_01")
    +
    +    # Change to a cell centered variable
    +    ChangeActivePlotsVar("p")
    +    SaveTestImage("label_3_02")
    +
    +    # Change to a mesh variable and remove a material.
    +    ChangeActivePlotsVar("ucdmesh2d")
    +    AddPlot("FilledBoundary", "mat1")
    +    DrawPlots()
    +    L.textFont1.useForegroundColor = 1
    +    L.textFont2.useForegroundColor = 1
    +    SetPlotOptions(L)
    +    SetActivePlots((0,1,2))
    +    TurnMaterialsOff("2")
    +    SaveTestImage("label_3_03")
    +    DeleteAllPlots()
    +
    +def TestSlice():
    +    TestSection("Testing slicing 3D data to 2D")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Mesh", "Mesh")
    +    m = MeshAttributes()
    +    m.opaqueMode = m.Auto
    +    SetPlotOptions(m)
    +    AddPlot("Pseudocolor", "chromeVf")
    +    AddPlot("Label", "chromeVf")
    +    SetActivePlots((0,1,2))
    +    # Add a slice operator to all of the plots
    +    AddOperator("Slice")
    +    s = SliceAttributes()
    +    s.normal = (0,0,1)
    +    s.upAxis = (0,1,0)
    +    s.project2d = 0
    +    SetOperatorOptions(s)
    +    # Make the labels a little bigger
    +    L = CreateLabelAttributes()
    +    L.textFont1.scale = 7
    +    L.textFont2.scale = 7
    +    L.depthTestMode = L.LABEL_DT_NEVER
    +    SetPlotOptions(L)
    +    DrawPlots()
    +
    +    # Look at the slice from the front
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.550782, 0.318825, 0.771355)
    +    v0.focus = (0, 0, 0)
    +    v0.viewUp = (0.200365, 0.94765, -0.248624)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 17.3205
    +    v0.nearPlane = -34.641
    +    v0.farPlane = 34.641
    +    v0.imagePan = (0, 0)
    +    v0.imageZoom = 1.82449
    +    v0.perspective = 0
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0, 0, 0)
    +    SetView3D(v0)
    +    SaveTestImage("label_4_00")
    +
    +    # Look at the slice from the back. It will only be visible if the
    +    # quantized normals were thrown out.
    +    v1 = View3DAttributes()
    +    v1.viewNormal = (-0.681715, 0.349442, -0.642771)
    +    v1.focus = (0, 0, 0)
    +    v1.viewUp = (0.26946, 0.936726, 0.223465)
    +    v1.viewAngle = 30
    +    v1.parallelScale = 17.3205
    +    v1.nearPlane = -34.641
    +    v1.farPlane = 34.641
    +    v1.imagePan = (0, 0)
    +    v1.imageZoom = 1.82449
    +    v1.perspective = 0
    +    v1.eyeAngle = 2
    +    v1.centerOfRotationSet = 0
    +    v1.centerOfRotation = (0, 0, 0)
    +    SetView3D(v1)
    +    SaveTestImage("label_4_01")
    +
    +    # Project the slice to 2D
    +    s.project2d = 1
    +    SetOperatorOptions(s)
    +    v2 = View2DAttributes()
    +    v2.windowCoords = (-8.64231, -5.11567, 2.53613, 6.24948)
    +    SetView2D(v2)
    +    SaveTestImage("label_4_02")
    +
    +    # Set the slice normal so it does not line up with an axis.
    +    s.normal = (1,2,3)
    +    SetOperatorOptions(s)
    +    SaveTestImage("label_4_03")
    +    DeleteAllPlots()
    +
    +def TestLabeledVTK():
    +    TestSection("VTK with labels")
    +    OpenDatabase(data_path("vtk_test_data/labeledBox.vtk"))
    +
    +    AddPlot("Mesh", "mesh")
    +    AddPlot("Label", "cellLabel")
    +    AddPlot("Label", "nodeLabels")
    +    DrawPlots()
    +    SetActivePlots((1, 2))
    +    l = LabelAttributes()
    +    l.textFont1.scale = 8
    +    l.textFont2.scale = 8
    +    l.depthTestMode = l.LABEL_DT_NEVER
    +    SetPlotOptions(l)
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.826308, 0.365749, 0.428303)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0.262408, 0.92288, -0.28184)
    +    v.parallelScale = 1.55885
    +    v.nearPlane = -3.11769
    +    v.farPlane  =  3.11769
    +    v.imageZoom = 0.941919
    +    SetView3D(v)
    +
    +    SaveTestImage("label_5_01")
    +    DeleteAllPlots()
    +
    +def TestLabellingSubsets():
    +    TestSection("Labelling subsets")
    +    OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +    AddPlot("Mesh", "mesh")
    +    AddPlot("Subset", "blocks")
    +    AddPlot("Label", "blocks")
    +    l = LabelAttributes()
    +    l.restrictNumberOfLabels = 0
    +    l.textFont1.scale = 5
    +    l.depthTestMode = l.LABEL_DT_NEVER
    +    SetPlotOptions(l)
    +    SetActivePlots((0,1,2))
    +    TurnDomainsOff()
    +    TurnDomainsOn(("domain1","domain10","domain19"))
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (0.465057, -0.448026, -0.763541)
    +    v.focus = (0.166667, 0.166667, 0.5)
    +    v.viewUp = (-0.243345, -0.893956, 0.376333)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.552771
    +    v.nearPlane = -1.10554
    +    v.farPlane = 1.10554
    +    v.imagePan = (0.0545619, 0.050939)
    +    v.imageZoom = 1.32578
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.166667, 0.166667, 0.5)
    +    SetView3D(v)
    +    SaveTestImage("label_6_00")
    +
    +    SetActivePlots((1,2))
    +    ChangeActivePlotsVar("domains")
    +    SaveTestImage("label_6_01")
    +
    +    SetActivePlots(1)
    +    DeleteActivePlots()
    +    AddPlot("FilledBoundary", "mat")
    +    SetActivePlots(1)
    +    DrawPlots()
    +    ChangeActivePlotsVar("mat")
    +    SaveTestImage("label_6_02")
    +
    +    # Try an AMR dataset
    +    DeleteAllPlots()
    +    OpenDatabase(data_path("boxlib_test_data/2D/plt0822/Header"))
    +
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("Subset", "patches")
    +    s = SubsetAttributes()
    +    s.legendFlag = 0
    +    SetPlotOptions(s)
    +    AddPlot("Label", "patches")
    +    l = LabelAttributes()
    +    l.restrictNumberOfLabels = 0
    +    l.textFont1.scale = 4.7
    +    SetPlotOptions(l)
    +    DrawPlots()
    +    v = View2DAttributes()
    +    v.windowCoords = (0.0126663, 0.0146908, 0.115281, 0.117298)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +    v.fullFrameAutoThreshold = 100
    +    SetView2D(v)
    +    SaveTestImage("label_6_03")
    +
    +    SetActivePlots((1,2))
    +    ChangeActivePlotsVar("levels")
    +    v = View2DAttributes()
    +    v.windowCoords = (0.0250949, 0.0437515, 0.11359, 0.132218)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +    v.fullFrameAutoThreshold = 100
    +    SetView2D(v)
    +    SetActivePlots(2)
    +    l.textFont1.scale = 4
    +    SetPlotOptions(l)
    +    SaveTestImage("label_6_04")
    +    DeleteAllPlots()
    +
    +    # Try a dataset with real material names.
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("FilledBoundary", "mat1")
    +    AddPlot("Label", "mat1")
    +    l = LabelAttributes()
    +    l.textFont1.scale = 5
    +    SetPlotOptions(l)
    +    SetActivePlots((0,1,2))
    +    AddOperator("Slice")
    +    DrawPlots()
    +    v = View2DAttributes()
    +    v.windowCoords = (-9.37363, -6.58974, -2.85531, -0.327839)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +    v.fullFrameAutoThreshold = 100
    +    SetView2D(v)
    +    SaveTestImage("label_6_05")
    +    DeleteAllPlots()
    +
    +
    +def TestLabellingTensors():
    +    TestSection("Labelling tensors")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("Tensor", "grad_tensor")
    +    t = TensorAttributes()
    +    t.useStride = 1
    +    SetPlotOptions(t)
    +    AddPlot("Label", "grad_tensor")
    +    SetActivePlots((0,1,2))
    +    AddOperator("Slice")
    +    DrawPlots()
    +    ResetView()
    +    SaveTestImage("label_7_00")
    +
    +    v = View2DAttributes()
    +    v.windowCoords = (-9.13799, -4.37695, -7.71782, -2.97379)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +    v.fullFrameAutoThreshold = 100
    +    SetView2D(v)
    +    SaveTestImage("label_7_01")
    +
    +    v.windowCoords = (-8.50106, -7.83502, -6.43747, -5.77381)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +    v.fullFrameAutoThreshold = 100
    +    SetView2D(v)
    +    SaveTestImage("label_7_02")
    +
    +    # Now see how changing the text height affects binning
    +    ResetView()
    +    l = LabelAttributes()
    +    l.textFont1.scale = 3
    +    SetActivePlots(2)
    +    SetPlotOptions(l)
    +    SaveTestImage("label_7_03")
    +
    +    l.textFont1.scale = 6
    +    SetPlotOptions(l)
    +    SaveTestImage("label_7_04")
    +
    +    SetView2D(v)
    +    SaveTestImage("label_7_05")
    +
    +    DeleteAllPlots()
    +
    +def TestLabelling3D():
    +    TestSection("Labelling in 3D with Z buffer")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "airVf")
    +    AddPlot("Label", "airVf")
    +    L = LabelAttributes()
    +    L.restrictNumberOfLabels = 0
    +    L.depthTestMode = L.LABEL_DT_NEVER
    +    SetPlotOptions(L)
    +    DrawPlots()
    +    ResetView()
    +    SaveTestImage("label_8_00")
    +
    +    # Turn on depth testing
    +    L.depthTestMode = L.LABEL_DT_AUTO
    +    SetPlotOptions(L)
    +    SaveTestImage("label_8_01")
    +
    +    # Apply an Isosurface operator to make things really convoluted
    +    SetActivePlots((0,1))
    +    AddOperator("Isosurface")
    +    iso = IsosurfaceAttributes()
    +    iso.contourNLevels = 1
    +    iso.variable="hardyglobal"
    +    SetOperatorOptions(iso)
    +    v = View3DAttributes()
    +    v.viewNormal = (0.883239, -0.244693, -0.400019)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0.435303, 0.745036, 0.505404)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (0.022398, -0.134568)
    +    v.imageZoom = 3.35882
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +    DrawPlots()
    +    SaveTestImage("label_8_02")
    +
    +    #
    +    # Try labelling a mesh that has interior stuff
    +    #
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "speed")
    +    AddPlot("Mesh", "mesh1")
    +    AddPlot("Label", "mesh1")
    +    L = CreateLabelAttributes()
    +    L.restrictNumberOfLabels = 0
    +    L.drawLabelsFacing = L.FrontAndBack
    +    L.depthTestMode = L.LABEL_DT_AUTO
    +    SetPlotOptions(L)
    +    DrawPlots()
    +    ResetView()
    +    v.viewNormal = (-0.735192, 0.371514, 0.566984)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0.2695, 0.927683, -0.258407)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1.60959
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +    SaveTestImage("label_8_03")
    +
    +    v1 = View3DAttributes()
    +    v1.viewNormal = (0, 0, 1)
    +    v1.focus = (0, 0, 0)
    +    v1.viewUp = (0, 1, 0)
    +    v1.viewAngle = 30
    +    v1.parallelScale = 17.3205
    +    v1.nearPlane = -34.641
    +    v1.farPlane = 34.641
    +    v1.imagePan = (0, 0)
    +    v1.imageZoom = 5.06081
    +    v1.perspective = 1
    +    v1.eyeAngle = 2
    +    v1.centerOfRotationSet = 0
    +    v1.centerOfRotation = (0, 0, 0)
    +    SetView3D(v1)
    +    SaveTestImage("label_8_04")
    +
    +    # Turn on node labels
    +    L.showNodes = 1
    +    SetPlotOptions(L)
    +    SaveTestImage("label_8_05")
    +
    +    # Label a variable that would normally have labels that protrude into
    +    # the dataset
    +    ChangeActivePlotsVar("speed")
    +    ResetView()
    +    SaveTestImage("label_8_06")
    +
    +    SetView3D(v)
    +    SaveTestImage("label_8_07")
    +    DeleteAllPlots()
    +
    +    #
    +    # Try labelling a 3D AMR dataset
    +    #
    +    OpenDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +    AddPlot("Pseudocolor", "Primitive Var _number_0")
    +    AddPlot("Mesh", "amr_mesh")
    +    AddPlot("Label", "levels")
    +    L = CreateLabelAttributes()
    +    L.showNodes = 1
    +    L.showCells = 0
    +    L.restrictNumberOfLabels = 0
    +    L.depthTestMode = L.LABEL_DT_NEVER
    +    SetPlotOptions(L)
    +    DrawPlots()
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.643521, -0.624962, -0.441931)
    +    v2.focus = (15, 10, 10)
    +    v2.viewUp = (0.320552, 0.304253, -0.897038)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 20.6155
    +    v2.nearPlane = -41.2311
    +    v2.farPlane = 41.2311
    +    v2.imagePan = (-0.0412674, 0.141248)
    +    v2.imageZoom = 1.871
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (15, 10, 10)
    +    SetView3D(v2)
    +    SaveTestImage("label_8_08")
    +
    +    # Turn on zbuffering
    +    L.depthTestMode = L.LABEL_DT_AUTO
    +    SetPlotOptions(L)
    +    SaveTestImage("label_8_09")
    +
    +    # Restrict the number of labels
    +    L.restrictNumberOfLabels = 1
    +    L.numberOfLabels = 900
    +    L.depthTestMode = L.LABEL_DT_NEVER
    +    SetPlotOptions(L)
    +    SaveTestImage("label_8_10")
    +
    +    # Turn on zbuffering
    +    L.depthTestMode = L.LABEL_DT_AUTO
    +    SetPlotOptions(L)
    +    SaveTestImage("label_8_11")
    +    DeleteAllPlots()
    +
    +def TestSlicedVectors():
    +    TestSection("Labelling sliced vectors")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("Label", "grad")
    +    L = CreateLabelAttributes()
    +    L.depthTestMode = L.LABEL_DT_NEVER
    +    SetPlotOptions(L)
    +    SetActivePlots((0,1))
    +    AddOperator("Slice")
    +    DrawPlots()
    +
    +    v = View2DAttributes()
    +    v.windowCoords = (-0.370383, 0.566874, -0.275836, 0.66177)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +    v.fullFrameAutoThreshold = 100
    +    SetView2D(v)
    +    SaveTestImage("label_9_00")
    +
    +    AddPlot("Vector", "grad")
    +    vec = VectorAttributes()
    +    vec.useStride = 1
    +    vec.scale = 0.5
    +    SetPlotOptions(vec)
    +    AddOperator("Slice")
    +    SetActivePlots((0,1,2))
    +    s = SliceAttributes()
    +    s.project2d = 0
    +    SetOperatorOptions(s)
    +    DrawPlots()
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.332304, 0.933436, 0.135169)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (-0.353747, 0.00950422, -0.935293)
    +    v.viewAngle = 30
    +    v.parallelScale = 14.1421
    +    v.nearPlane = -28.2843
    +    v.farPlane = 28.2843
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 17.3567
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +    SaveTestImage("label_9_01")
    +
    +    # Test a case where having the vector be an expression was causing
    +    # VisIt to mess up.
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Mesh", "quadmesh3d")
    +    AddPlot("Label", "vel")
    +    L = LabelAttributes()
    +    L.textFont1.scale = 6
    +    L.textFont1.color = (255,0,0,255)
    +    L.textFont1.useForegroundColor = 0
    +    SetPlotOptions(L)
    +    SetActivePlots((0,1))
    +    AddOperator("Slice")
    +    s = SliceAttributes()
    +    s.originType = s.Intercept
    +    s.originIntercept = 0
    +    s.axisType = s.YAxis
    +    s.project2d = 1
    +    SetOperatorOptions(s)
    +    DrawPlots()
    +    v = View2DAttributes()
    +    v.windowCoords = (0.0476715, 0.155784, 0.874164, 0.991825)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +    v.fullFrameAutoThreshold = 100
    +    SetView2D(v)
    +    SaveTestImage("label_9_02")
    +
    +def TestRectilinearLogicalDisplay():
    +    TestSection("Test 3D zooming and logical mesh display")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("Label", "Mesh")
    +    L = CreateLabelAttributes()
    +    SetPlotOptions(L)
    +    DrawPlots()
    +
    +    # Also zoom in using some views obtained from rubber-band style
    +    # views that would have made the labels migrate from their
    +    # correct locations in older versions of VisIt.
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.566084, -0.288713, 0.772135)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (-0.357175, 0.930078, 0.0859103)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (0.104981, 0.174394)
    +    v.imageZoom = 12.8916
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +    SaveTestImage("label_10_00")
    +
    +    # Make it be displayed using index style numbers.
    +    L.labelDisplayFormat = L.Index
    +    SetPlotOptions(L)
    +    SaveTestImage("label_10_01")
    +
    +    # Make sure the labels are in the right place when we tell VisIt
    +    # to draw them all instead of binning.
    +    L.restrictNumberOfLabels = 0
    +    SetPlotOptions(L)
    +    SaveTestImage("label_10_02")
    +
    +    # Try a nodal variable.
    +    ChangeActivePlotsVar("hardyglobal")
    +    SaveTestImage("label_10_03")
    +
    +    # Try a 2D rectilinear mesh
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "hgslice")
    +    AddPlot("Mesh", "Mesh2D")
    +    AddPlot("Label", "Mesh2D")
    +    L = CreateLabelAttributes()
    +    SetPlotOptions(L)
    +    DrawPlots()
    +
    +    v1 = GetView2D()
    +    v1.windowCoords = (-7.52178, -5.09684, -8.8535, -6.43779)
    +    v1.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    SetView2D(v1)
    +    SaveTestImage("label_10_04")
    +
    +    # Try a 3D curvilinear mesh
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +    AddPlot("Mesh", "curvmesh3d")
    +    m = MeshAttributes()
    +    m.opaqueMode = m.On
    +    SetPlotOptions(m)
    +    AddPlot("Label", "curvmesh3d")
    +    L = CreateLabelAttributes()
    +    SetPlotOptions(L)
    +    DrawPlots()
    +    v2 = GetView3D()
    +    v2.viewNormal = (0.405434, 0.494827, 0.768615)
    +    v2.focus = (0, 2.5, 15)
    +    v2.viewUp = (-0.296176, 0.866572, -0.401662)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 16.0078
    +    v2.nearPlane = -32.0156
    +    v2.farPlane = 32.0156
    +    v2.imagePan = (0.129303, 0.36944)
    +    v2.imageZoom = 43.2454
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0, 2.5, 15)
    +    SetView3D(v2)
    +    SaveTestImage("label_10_05")
    +
    +    ChangeActivePlotsVar("u")
    +    SaveTestImage("label_10_06")
    +    DeleteAllPlots()
    +
    +def TestMixedVariables():
    +    TestSection("Test datasets with mixed variables")
    +    DeleteAllPlots()
    +
    +    ma = GetMaterialAttributes()
    +    ma.forceMIR = 1
    +    SetMaterialAttributes(ma)
    +
    +    OpenDatabase(silo_data_path("specmix_ucd.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("Label", "d")
    +    L = CreateLabelAttributes()
    +    SetPlotOptions(L)
    +    DrawPlots()
    +
    +    View2DAtts = View2DAttributes()
    +    View2DAtts.windowCoords = (-10.9988, -8.83259, 1.01139, 3.18029)
    +    View2DAtts.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    SetView2D(View2DAtts)
    +
    +    SaveTestImage("label_11_00")
    +
    +    View2DAtts = View2DAttributes()
    +    View2DAtts.windowCoords = (0.474811, 3.09596, 1.20289, 3.82726)
    +    View2DAtts.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    SetView2D(View2DAtts)
    +
    +    SaveTestImage("label_11_01")
    +
    +    DeleteAllPlots()
    +
    +def main():
    +    TestGeneralFeatures()
    +    TestCurvilinear2D()
    +    TestRectilinear2D()
    +    TestUnstructured2D()
    +    TestSlice()
    +    TestLabeledVTK()
    +    TestLabellingSubsets()
    +    TestLabellingTensors()
    +    TestLabelling3D()
    +    TestSlicedVectors()
    +    TestRectilinearLogicalDisplay()
    +    TestMixedVariables()
    +
    +# Run all of the tests
    +main()
    +
    +# Exit the test
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_mesh.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_mesh.html new file mode 100644 index 000000000..c8ec96d1f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_mesh.html @@ -0,0 +1,251 @@ + +Results for plots/mesh.py + +

    Results of VisIt Regression Test - plots/mesh

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Testing random color mode
    mesh_random_color_010.000.00
    mesh_random_color_020.000.00
    mesh_random_color_030.000.00
    Mesh plot of a 3D curvilinear mesh
    mesh_curve_010.000.00
    mesh_curve_020.000.00
    mesh_curve_030.000.00
    Mesh plot of a point mesh
    mesh_point_010.000.00
    mesh_point_020.000.00
    mesh_point_030.000.00
    mesh_point_040.000.00
    mesh_point_050.310.00
    mesh_point_060.000.00
    mesh_point_070.000.00
    mesh_point_080.000.00
    mesh_point_090.000.00
    mesh_point_100.000.00
    mesh_point_110.000.00
    mesh_point_120.000.00
    Mesh plot of a 3D unstructured mesh
    mesh_globe_010.000.00
    mesh_globe_020.000.00
    mesh_globe_030.000.00
    mesh_globe_040.000.00
    Mesh plot of a 3D rectilinear mesh
    mesh_rect3d_010.000.00
    Testing Mesh plot's opaque flag
    mesh_opaque_010.000.00
    mesh_opaque_020.000.00
    mesh_opaque_030.000.00
    mesh_opaque_040.000.00
    mesh_opaque_050.000.00
    mesh_opaque_060.000.00
    mesh_opaque_070.000.00
    mesh_opaque_080.000.00
    Testing custom color mode
    mesh_custom_color_010.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_mesh_c.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_mesh_c.html new file mode 100644 index 000000000..5773a2990 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_mesh_c.html @@ -0,0 +1,251 @@ + +Results for plots/mesh_c.py + +

    Results of VisIt Regression Test - plots/mesh_c

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Testing random color mode
    mesh_random_color_010.000.00
    mesh_random_color_020.000.00
    mesh_random_color_030.000.00
    Mesh plot of a 3D curvilinear mesh
    mesh_curve_010.000.00
    mesh_curve_020.000.00
    mesh_curve_030.000.00
    Mesh plot of a point mesh
    mesh_point_010.000.00
    mesh_point_020.000.00
    mesh_point_030.000.00
    mesh_point_040.000.00
    mesh_point_050.310.00
    mesh_point_060.000.00
    mesh_point_070.000.00
    mesh_point_080.000.00
    mesh_point_090.000.00
    mesh_point_100.000.00
    mesh_point_110.000.00
    mesh_point_120.000.00
    Mesh plot of a 3D unstructured mesh
    mesh_globe_010.000.00
    mesh_globe_020.000.00
    mesh_globe_030.000.00
    mesh_globe_040.000.00
    Mesh plot of a 3D rectilinear mesh
    mesh_rect3d_010.000.00
    Testing Mesh plot's opaque flag
    mesh_opaque_010.000.00
    mesh_opaque_020.000.00
    mesh_opaque_030.000.00
    mesh_opaque_040.000.00
    mesh_opaque_050.000.00
    mesh_opaque_060.000.00
    mesh_opaque_070.000.00
    mesh_opaque_080.000.00
    Testing custom color mode
    mesh_custom_color_010.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_mesh_c_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_mesh_c_py.html new file mode 100644 index 000000000..4b5c4c7b6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_mesh_c_py.html @@ -0,0 +1,21 @@ +plots/mesh_c.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  mesh_c.py
    +#
    +#  Tests:      Runs the mesh.py test but with compression turned on.
    +#              mesh.py tests for existence of 'useCompression' variable
    +#              and turns on compression if it exists. We expect identical
    +#              output from the tests but because this py file has a different
    +#              name, it will generate them a subdir by the name 'mesh_c'
    +#              and look for baselines likewise. So, in baseline dir,
    +#              the mesh_c dir is a symlink to scalable.
    +#
    +#  Programmer: Mark C. Miller
    +#  Date:       19Aug08
    +#
    +# ----------------------------------------------------------------------------
    +
    +useCompression = 1
    +Source(tests_path("plots","mesh.py"))
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_mesh_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_mesh_py.html new file mode 100644 index 000000000..cc67edd3c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_mesh_py.html @@ -0,0 +1,446 @@ +plots/mesh.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  mesh.py
    +#
    +#  Tests:      mesh      - 3D structured, single domain
    +#                        - 3D point, single domain
    +#                        - 2D point, single domain
    +#                        - 3D unstructured, single domain
    +#              plots     - mesh, pseudocolor
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Kathleen Bonnell
    +#  Date:       September 03, 2003
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Sep  4 11:10:11 PDT 2003
    +#    Change the way MeshPlot's opaque mode is set (now an enum, not a bool).
    +#
    +#    Kathleen Bonnell, Thu Sep  4 11:10:11 PDT 2003
    +#    Added two test for new MeshAttribute 'showInternal':  mesh_globe_04
    +#    and mesh_rect3d_01.
    +#
    +#    Brad Whitlock, Thu Apr 8 12:50:21 PDT 2004
    +#    Added tests to test the auto mesh opacity flag.
    +#
    +#    Jeremy Meredith, Tue May  4 12:41:49 PDT 2004
    +#    Added test for unglyphed (i.e. GL_POINT) point meshes.
    +#
    +#    Kathleen Bonnell, Tue Nov  2 16:20:55 PST 2004
    +#    Removed opaque-mode portion of mesh_point_01, as opaque-mode no longer
    +#    applies to Mesh plots of Point meshes.
    +#
    +#    Mark C. Miller, Tue Aug 19 17:31:29 PDT 2008
    +#    Add code to permit the test to be run with compression as well.
    +#
    +#    Mark C. Miller, Wed Jan 21 10:00:10 PST 2009
    +#    Removed silly comment regarding global annotation object 'a'
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Wed Jun 10 17:39:23 PDT 2020
    +#    Move RandomColor test to be first test run so that changes in mesh plot
    +#    instances don't randomly make the test fail.
    +#
    +#    Kathleen Biagas, Thu Jun 11 07:57:10 PDT 2020
    +#    Add more data files to PointMesh test, to ensure data that doesnt' set
    +#    topological dimension to 0, and data with mixed topology can still do
    +#    point glyphing and changes point size.
    +#
    +#    Kathleen Biagas, Wed Feb 16 09:15:45 PST 2022
    +#    Replace use of meshatts 'foregroundFlag', 'backgroundFlag' with
    +#    'meshColorSource' and 'opaqueColorSource' respectively.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Remove obsolete mesh att 'lineStyle'.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def TestCurve():
    +    TestSection("Mesh plot of a 3D curvilinear mesh")
    +    OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +    AddPlot("Mesh", "curvmesh3d")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0.37, 0.48, 0.79)
    +    v.focus = (0, 2.5, 15)
    +    v.viewUp = (-0.18, 0.87, -0.45)
    +    v.imagePan = (0.08, 0.08)
    +    v.imageZoom = 2.0
    +    SetView3D(v)
    +
    +    Test("mesh_curve_01")
    +
    +    # Change color
    +    # and add a PC Plot.
    +    m = MeshAttributes()
    +    m.opaqueColorSource = m.OpaqueCustom
    +    m.opaqueColor = (0, 122, 200, 255)
    +    SetPlotOptions(m)
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    Test("mesh_curve_02")
    +
    +    SetActivePlots(0)
    +    SetPlotOptions(m)
    +    SetActivePlots(1)
    +    HideActivePlots()
    +    Test("mesh_curve_03")
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("curv3d.silo"))
    +
    +def TestPointMesh():
    +    TestSection("Mesh plot of a point mesh")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "PointVar")
    +    p = PseudocolorAttributes()
    +    p.pointType = p.Box
    +    p.pointSize = 1.0
    +    SetPlotOptions(p)
    +
    +    DrawPlots()
    +    Test("mesh_point_01")
    +
    +    p.pointType = p.Icosahedron
    +    p.pointSize = 1.5
    +    SetPlotOptions(p)
    +    DrawPlots()
    +    Test("mesh_point_02")
    +
    +    DeleteActivePlots()
    +
    +    AddPlot("Mesh", "PointMesh")
    +    m = MeshAttributes()
    +    m.meshColorSource = m.MeshCustom
    +    m.meshColor = (0, 122, 200, 255)
    +    m.pointSize = 1.5
    +    m.pointType = m.Axis
    +    SetPlotOptions(m)
    +    DrawPlots()
    +    Test("mesh_point_03")
    +
    +    m.pointType = m.Point
    +    m.pointSizePixels = 1
    +    SetPlotOptions(m)
    +    Test("mesh_point_04")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("noise.silo"))
    +
    +    OpenDatabase(silo_data_path("noise2d.silo"))
    +
    +    AddPlot("Mesh", "PointMesh")
    +    ResetView()
    +    DrawPlots()
    +    m.pointType = m.Axis
    +    m.pointSizeVarEnabled = 1
    +    m.pointSizeVar = "PointVar"
    +    m.pointSize = 0.05
    +    SetPlotOptions(m)
    +    Test("mesh_point_05")
    +
    +    m.pointType = m.Point
    +    m.pointSizePixels = 1
    +    m.pointSizeVarEnabled = 0
    +    SetPlotOptions(m)
    +    Test("mesh_point_06")
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("noise2d.silo"))
    +
    +    OpenDatabase(data_path("blueprint_v0.3.1_test_data/braid_3d_examples_json.root"))
    +
    +    AddPlot("Mesh", "points_mesh")
    +
    +    m = MeshAttributes()
    +    m.meshColorSource = m.MeshCustom
    +    m.meshColor = (0, 170, 255, 255)
    +    SetPlotOptions(m)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (-0.605449, 0.469667, 0.642529)
    +    v.viewUp = (0.169201, 0.864818, -0.472716)
    +    SetView3D(v)
    +    Test("mesh_point_07")
    +
    +    m.pointSizePixels = 5
    +    SetPlotOptions(m)
    +    Test("mesh_point_08")
    +
    +    m.pointType = m.Tetrahedron
    +    m.pointSize = 3
    +    SetPlotOptions(m)
    +    Test("mesh_point_09")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("blueprint_v0.3.1_test_data/braid_3d_examples_json.root"))
    +
    +    OpenDatabase(data_path("vtk_test_data/ugrid_mixed_cells.vtk"))
    +
    +    AddPlot("Mesh", "mesh")
    +    m.lineWidth = 3
    +    m.pointType = m.Point
    +    m.pointSizePixels = 2
    +    SetPlotOptions(m)
    +    DrawPlots()
    +    ResetView()
    +
    +    Test("mesh_point_10")
    +
    +    m.pointSizePixels = 5
    +    SetPlotOptions(m)
    +    Test("mesh_point_11")
    +
    +    m.pointType = m.Icosahedron
    +    m.pointSize = 0.5
    +    SetPlotOptions(m)
    +    Test("mesh_point_12")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/ugrid_mixed_cells.vtk"))
    +
    +
    +def TestGlobe():
    +    TestSection("Mesh plot of a 3D unstructured mesh")
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (1, 0, 0)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0, 1, 0)
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1.0
    +    SetView3D(v)
    +
    +    m = MeshAttributes()
    +    m.opaqueMode = m.Off
    +    SetPlotOptions(m)
    +    Test("mesh_globe_01")
    +
    +    m.smoothingLevel = m.Fast
    +    SetPlotOptions(m)
    +    Test("mesh_globe_02")
    +
    +    m.smoothingLevel = m.High
    +    SetPlotOptions(m)
    +    Test("mesh_globe_03")
    +
    +    print(m.NONE)
    +    m.smoothingLevel = m.NONE
    +    m.opaqueMode = m.Auto
    +    m.showInternal = 1
    +    SetPlotOptions(m)
    +    ResetView()
    +
    +    TurnMaterialsOff(("1", "2", "4"))
    +
    +    AddOperator("Clip")
    +    clip = ClipAttributes()
    +    clip.plane1Status = 0
    +    clip.plane3Status = 1
    +    SetOperatorOptions(clip)
    +
    +    AddOperator("Transform")
    +    t = TransformAttributes()
    +    t.doRotate = 1
    +    t.rotateAxis = (1, 0, 0)
    +    t.rotateAmount = 112
    +    SetOperatorOptions(t)
    +    DrawPlots()
    +
    +    SetViewExtentsType("actual")
    +    Test("mesh_globe_04")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("globe.silo"))
    +
    +def TestRect3d():
    +    TestSection("Mesh plot of a 3D rectilinear mesh")
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    m = MeshAttributes()
    +    m.opaqueMode = m.Auto
    +    m.showInternal = 1
    +    SetPlotOptions(m)
    +
    +    #Show a small area that contains the boundary
    +    #between domains 1 & 2 by using the box operator
    +    AddOperator("Box")
    +    box = BoxAttributes();
    +    box.minx = 0.3
    +    box.maxx = 0.4
    +    box.miny = 0.1
    +    box.maxy = 0.2
    +    box.minz = 0.1
    +    box.maxz = 0.2
    +    SetOperatorOptions(box)
    +
    +    DrawPlots()
    +
    +    SetViewExtentsType("actual")
    +    v = GetView3D()
    +    v.viewNormal = (0.27, 0.27, 0.93)
    +    v.focus = (0.35, 0.15, 0.15)
    +    v.viewUp = (-0.06, 0.96, -0.26)
    +    v.parallelScale = 0.139692
    +    v.nearPlane = -0.28
    +    v.farPlane = 0.28
    +    SetView3D(v)
    +
    +    Test("mesh_rect3d_01")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +def TestAutoOpaqueFlag():
    +    TestSection("Testing Mesh plot's opaque flag")
    +
    +    # Set up a mesh plot with the auto opaque flag.
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    m = MeshAttributes()
    +    m.opaqueMode = m.Auto
    +    SetPlotOptions(m)
    +    ResetView()
    +    TurnMaterialsOn()
    +    DrawPlots()
    +    Test("mesh_opaque_01")
    +
    +    # Add a Pseudocolor plot and make sure that the mesh plot
    +    # is not drawn in opaque mode.
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    Test("mesh_opaque_02")
    +
    +    # Hide the Pseudocolor plot and make sure that the mesh plot
    +    # goes opaque.
    +    HideActivePlots()
    +    Test("mesh_opaque_03")
    +
    +    # Unhide the Pseudocolor plot and then delete it. Make sure that the
    +    # mesh plot goes opaque.
    +    HideActivePlots()
    +    Test("mesh_opaque_04")
    +    DeleteActivePlots()
    +    Test("mesh_opaque_05")
    +    DeleteAllPlots()
    +
    +    # Restore a session file that has a keyframe animation where the mesh
    +    # plot exists over all frames but the Pseudocolor plot does not.
    +    RestoreSessionWithDifferentSources(tests_path("plots","mesh_opaque.session"), 0,
    +                                       silo_data_path("wave*.silo database"))
    +    # Turn off all annotations but preserve the background colors.
    +    TurnOffAllAnnotations(GetAnnotationAttributes())
    +    Test("mesh_opaque_06")
    +    SetTimeSliderState(4)
    +    Test("mesh_opaque_07")
    +    SetTimeSliderState(9)
    +    Test("mesh_opaque_08")
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("globe.silo"))
    +
    +def TestRandomColor():
    +    TestSection("Testing random color mode")
    +    OpenDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +
    +    # Randomization of mesh colors is possible only at plot *creation* time.
    +    # Therefore, we need to adjust Mesh plot default attributes to set
    +    # the behavior *before* the plot is even created.
    +    m = MeshAttributes()
    +    savedMeshAttrs = m
    +    m.meshColorSource = m.MeshRandom
    +    SetDefaultPlotOptions(m)
    +    AddPlot("Mesh", "2D/mesh1_phzl")
    +    ResetView()
    +    DrawPlots()
    +    Test("mesh_random_color_01")
    +    DeleteActivePlots()
    +
    +    m.meshColorSource = m.Foreground
    +    SetDefaultPlotOptions(m)
    +    AddPlot("Mesh", "2D/mesh1_phzl")
    +    DrawPlots()
    +    Test("mesh_random_color_02")
    +    DeleteAllPlots()
    +
    +    # Add a series of mesh plots with random opaque color
    +    m = MeshAttributes()
    +    m.opaqueColorSource = m.OpaqueRandom
    +    SetDefaultPlotOptions(m)
    +    meshnames = ["2D/mesh1_phzl", "2D/mesh1_phzl2", "2D/mesh1_zl1", "2D/mesh1_zl2"]
    +    for i in range(len(meshnames)):
    +        mname = meshnames[i]
    +        AddPlot("Mesh", mname)
    +        AddOperator("Transform")
    +        ta = TransformAttributes()
    +        ta.doTranslate = 1
    +        ta.translateY = 3*i
    +        SetOperatorOptions(ta)
    +    DrawPlots()
    +    Test("mesh_random_color_03")
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +    SetDefaultPlotOptions(savedMeshAttrs)
    +
    +def TestCustomColor():
    +    TestSection("Testing custom color mode")
    +    OpenDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +
    +    meshnames = ["2D/mesh1_phzl", "2D/mesh1_phzl2", "2D/mesh1_zl1", "2D/mesh1_zl2"]
    +    colors = [(255,0,0,255),(0,255,0,255),(0,0,255,255),(0,255,255,255)]
    +    for i in range(len(meshnames)):
    +        mname = meshnames[i]
    +        AddPlot("Mesh", mname)
    +        m = MeshAttributes()
    +        m.opaqueColorSource = m.OpaqueCustom
    +        m.opaqueColor = colors[i]
    +        m.meshColorSource = m.MeshCustom
    +        m.meshColor = (255,255,255,255)
    +        SetPlotOptions(m)
    +        AddOperator("Transform")
    +        ta = TransformAttributes()
    +        ta.doTranslate = 1
    +        ta.translateY = 3*i
    +        SetOperatorOptions(ta)
    +        DrawPlots()
    +    Test("mesh_custom_color_01")
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +
    +def Main():
    +    TurnOffAllAnnotations()
    +    TestRandomColor()
    +    TestCurve()
    +    TestPointMesh()
    +    TestGlobe()
    +    TestRect3d()
    +    TestAutoOpaqueFlag()
    +    TestCustomColor()
    +
    +# Added to allow this test to be run with compression too.
    +# Another .py file sources this file with 'useCompression'
    +# defined.
    +if "useCompression" in dir():
    +    ra = GetRenderingAttributes()
    +    ra.compressionActivationMode = ra.Always
    +    SetRenderingAttributes(ra)
    +
    +Main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_molecule.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_molecule.html new file mode 100644 index 000000000..3ec589352 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_molecule.html @@ -0,0 +1,123 @@ + +Results for plots/molecule.py + +

    Results of VisIt Regression Test - plots/molecule

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    molecule_010.000.00
    molecule_020.000.00
    molecule_030.000.00
    molecule_040.000.00
    molecule_050.000.00
    molecule_060.000.00
    molecule_070.000.00
    Replicate and CreateBonds operators with Molecule plot
    mol_rep_bonds_010.000.00
    mol_rep_bonds_020.000.00
    mol_rep_bonds_030.000.00
    mol_rep_bonds_040.000.00
    mol_rep_bonds_050.000.00
    mol_rep_bonds_060.000.00
    mol_rep_bonds_070.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_molecule_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_molecule_py.html new file mode 100644 index 000000000..76314cb64 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_molecule_py.html @@ -0,0 +1,242 @@ +plots/molecule.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  molecule.py
    +#
    +#  Tests:      mesh      - 3D points
    +#              plots     - Molecule
    +#              operators - CreateBonds, Replicate
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 15, 2021 
    +#
    +#  Modifications:
    +#
    +#    Kathleen Biagas, Tue Jul 13 09:51:58 PDT 2021
    +#    Changed retrieval of renAtts from 'RenderingAttributes' to
    +#    'GetRenderingAttributes' when turning off specular highlighting. This
    +#    fixes a bug in scalable,parallel,icet mode where molecule_04 test would
    +#    fail to plot.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def SetGradientBackground():
    +    annot = GetAnnotationAttributes()
    +    annot.backgroundMode = annot.Gradient
    +    annot.gradientBackgroundStyle = annot.Radial
    +    annot.gradientColor1 = (102, 102, 153, 255)
    +    annot.gradientColor2 = (0, 0, 0, 255)
    +    annot.backgroundColor = (0, 0, 0, 255)
    +    annot.foregroundColor = (255, 255, 255, 255)
    +    SetAnnotationAttributes(annot)
    +
    +def SetWhiteBackground():
    +    annot = GetAnnotationAttributes()
    +    annot.backgroundMode = annot.Solid
    +    annot.foregroundColor = (0, 0, 0, 255)
    +    annot.backgroundColor = (255, 255, 255, 255)
    +    SetAnnotationAttributes(annot)
    +
    +def Test500x500(name):
    +    # Save these images somewhat larger than a regular test case image
    +    # to better see the molecules 
    +    backup = GetSaveWindowAttributes()
    +    swa = SaveWindowAttributes()
    +    swa.width = 500
    +    swa.height = 500
    +    swa.screenCapture = 1
    +    Test(name, swa)
    +    SetSaveWindowAttributes(backup)
    +
    +
    +def MoleculeOnly():
    +    # images similar to those in Molecule Plot docs
    +
    +    SetGradientBackground()
    +
    +    # add specular highlighting
    +    renAtts = GetRenderingAttributes()
    +    renAtts.specularFlag = 1
    +    SetRenderingAttributes(renAtts)
    +
    +    OpenDatabase(data_path("ProteinDataBank_test_data/crotamine.pdb"))
    +
    +    # color by element, Covalent radius, no bonds
    +    AddPlot("Molecule", "element")
    +    mol = MoleculeAttributes()
    +    mol.drawAtomsAs   = mol.SphereAtoms
    +    mol.scaleRadiusBy = mol.Covalent
    +    mol.drawBondsAs   = mol.NoBonds
    +    SetPlotOptions(mol)
    +
    +    DrawPlots()
    +
    +    v3d = GetView3D()
    +    v3d.viewNormal = (0.784142, -0.592494, -0.184587)
    +    v3d.viewUp = (-0.554863, -0.536159, -0.636129)
    +    v3d.imageZoom = 1.77156
    +    SetView3D(v3d)
    +
    +    Test500x500("molecule_01")
    +
    +    # color by residue, cylinder bonds, radius proportional to covalent radius
    +    ChangeActivePlotsVar("restype")
    +    mol.drawBondsAs = mol.CylinderBonds
    +    mol.radiusScaleFactor = 0.5
    +    SetPlotOptions(mol)
    +    DrawPlots()
    +    Test500x500("molecule_02")
    +
    +    # color by scalar (x-coord), no bonds
    +    DefineScalarExpression("x", "coord(mesh)[0]")
    +    ChangeActivePlotsVar("x")
    +    mol.drawAtomsAs = mol.NoAtoms
    +    SetPlotOptions(mol)
    +    DrawPlots()
    +    Test500x500("molecule_03")
    +
    +    # Create a blue-purple color table
    +    ccpl = ColorControlPointList()
    +    ccpl.discreteFlag=1
    +    ccpl.smoothing=ccpl.NONE
    +    ccpl.equalSpacingFlag=1
    +    p1 = ColorControlPoint()
    +    p1.colors = (51, 51, 153, 255)
    +    p1.position =  0
    +    ccpl.AddControlPoints(p1)
    +    p2 = ColorControlPoint()
    +    p2.colors = (204,153, 255, 255)
    +    p2.position =  1
    +    ccpl.AddControlPoints(p2)
    +    AddColorTable("BluePurp2", ccpl)
    +
    +    # color by backbone, atom and cylinder-bonds same fixed radius
    +    # special color table
    +    ChangeActivePlotsVar("backbone")
    +    mol.continuousColorTable="BluePurp2"
    +    mol.drawAtomsAs = mol.SphereAtoms
    +    mol.drawBondsAs = mol.CylinderBonds
    +    mol.scaleRadiusBy = mol.Fixed
    +    mol.radiusFixed = 0.2
    +    mol.bondRadius = 0.2
    +    SetPlotOptions(mol)
    +
    +    DrawPlots()
    +    # turn off specular highlighting
    +    renAtts = GetRenderingAttributes()
    +    renAtts.specularFlag = 0
    +    SetRenderingAttributes(renAtts)
    +    Test500x500("molecule_04")
    +
    +    DeleteAllPlots()
    +
    +    # ensure engine/viewer doesn't crash when using ImposterAtoms and scaleRadiusBy option is changed
    +    AddPlot("Molecule", "element")
    +    # get Fresh atts
    +    mol = MoleculeAttributes()
    +    # set up sphere imposters
    +    mol.drawAtomsAs = mol.ImposterAtoms
    +    SetPlotOptions(mol)
    +    DrawPlots()
    +    Test500x500("molecule_05")
    +    # now change scaleRadiusBy
    +    mol.scaleRadiusBy = mol.Covalent
    +    mol.radiusScaleFactor=4
    +    SetPlotOptions(mol)
    +    DrawPlots()
    +    Test500x500("molecule_06")
    +
    +    # changing radiusScaleFactor while using Imposter atoms used to crash the viewer
    +    mol.radiusScaleFactor=0.002
    +    SetPlotOptions(mol)
    +    DrawPlots()
    +    Test500x500("molecule_07")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("ProteinDataBank_test_data/crotamine.pdb"))
    +
    +def ReplicateAddBonds():
    +    TestSection("Replicate and CreateBonds operators with Molecule plot")
    +    SetWhiteBackground()
    +    OpenDatabase(data_path("vasp_test_data", "GaO40W12", "OUTCAR"))
    +    AddPlot("Mesh", "unitCell")
    +    AddPlot("Molecule", "element")
    +    mol = MoleculeAttributes()
    +    mol.radiusFixed=0.5
    +    SetPlotOptions(mol)
    +    DrawPlots()
    +    ResetView()
    +
    +    v3D = GetView3D()
    +    v3D.viewNormal = (0.0378647, -0.776117, -0.62945) #(-0.465303, -0.758273, 0.456634)
    +    v3D.viewUp = (0.839533, -0.366352, -0.401212) #(-0.0844518, 0.55156, 0.829849)
    +    v3D.imageZoom=2.177156
    +    v3D.imagePan=(0.0217552, 0.0165363)
    +    SetView3D(v3D)
    +
    +    Test500x500("mol_rep_bonds_01")
    +
    +    # Add replicate operator 
    +    SetActivePlots((0,1))
    +    AddOperator("Replicate", 1)
    +    repl = ReplicateAttributes()
    +    repl.useUnitCellVectors = 1
    +    repl.mergeResults = 1
    +    # replicate along unit cell boundaries
    +    repl.replicateUnitCellAtoms = 1
    +    SetOperatorOptions(repl, 0, 1)
    +    DrawPlots()
    +    Test500x500("mol_rep_bonds_02")
    +
    +    # create a replication along y
    +    repl.yReplications=2
    +    SetOperatorOptions(repl, 1, 1)
    +    DrawPlots()
    +
    +    Test500x500("mol_rep_bonds_03")
    +
    +    # Create bonds 
    +    SetActivePlots(1)
    +    AddOperator("CreateBonds")
    +    cb = CreateBondsAttributes()
    +    cb.atomicNumber1 = (31, 74)
    +    cb.atomicNumber2 = (8, 8)
    +    cb.minDist = (0.4, 0.4)
    +    cb.maxDist = (1.9, 2.4)
    +    SetOperatorOptions(cb)
    +    DrawPlots()
    +
    +    Test500x500("mol_rep_bonds_04")
    +
    +    # have the CreateBonds operator create periodic bonds
    +    cb.addPeriodicBonds = 1
    +    cb.useUnitCellVectors = 1
    +    SetOperatorOptions(cb)
    +    DrawPlots()
    +
    +    Test500x500("mol_rep_bonds_05")
    +
    +    # Change bond style to lines
    +    mol.drawBondsAs = mol.LineBonds
    +    mol.bondLineWidth = 5
    +    SetPlotOptions(mol)
    +    DrawPlots()
    +
    +    Test500x500("mol_rep_bonds_06")
    +
    +    # Change atom radius
    +    mol.drawBondsAs = mol.CylinderBonds
    +    mol.scaleRadiusBy = mol.Atomic
    +    mol.radiusScaleFactor = 0.7
    +    SetPlotOptions(mol)
    +    DrawPlots()
    +
    +    Test500x500("mol_rep_bonds_07")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vasp_test_data", "GaO40W12", "OUTCAR"))
    +
    +MoleculeOnly()
    +ReplicateAddBonds()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_multicolor.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_multicolor.html new file mode 100644 index 000000000..6dec706f7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_multicolor.html @@ -0,0 +1,201 @@ + +Results for plots/multicolor.py + +

    Results of VisIt Regression Test - plots/multicolor

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Testing setting of multiColor in Boundary plot
    multicolor_0_000.000.00
    multicolor_0_010.000.00
    multicolor_0_020 modifications totalling 0 lines
    multicolor_0_030.000.00
    multicolor_0_040 modifications totalling 0 lines
    multicolor_0_050.000.00
    multicolor_0_060 modifications totalling 0 lines
    Testing setting of multiColor in Contour plot
    multicolor_1_000.000.00
    multicolor_1_010.000.00
    multicolor_1_020 modifications totalling 0 lines
    multicolor_1_030.000.00
    multicolor_1_040 modifications totalling 0 lines
    multicolor_1_050.000.00
    multicolor_1_060 modifications totalling 0 lines
    Testing setting of multiColor in FilledBoundary plot
    multicolor_2_000.000.00
    multicolor_2_010.000.00
    multicolor_2_020 modifications totalling 0 lines
    multicolor_2_030.000.00
    multicolor_2_040 modifications totalling 0 lines
    multicolor_2_050.000.00
    multicolor_2_060 modifications totalling 0 lines
    Testing setting of multiColor in Subset plot
    multicolor_3_000.000.00
    multicolor_3_010.000.00
    multicolor_3_020 modifications totalling 0 lines
    multicolor_3_030.000.00
    multicolor_3_040 modifications totalling 0 lines
    multicolor_3_050.000.00
    multicolor_3_060 modifications totalling 0 lines
    Testing user defined colors for FilledBoundary
    multicolor_matcolors0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_multicolor_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_multicolor_py.html new file mode 100644 index 000000000..1b7fae0dd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_multicolor_py.html @@ -0,0 +1,229 @@ +plots/multicolor.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial
    +#  CLASSES: nightly
    +#
    +#  Test Case:  multicolor.py
    +#
    +#  Tests:      Tests setting colors using the multiColor field in some of
    +#              our plots.
    +#              Plots     - Boundary, Contour, FilledBoundary, Subset
    +#              Operators - Transform
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Apr 6 17:52:12 PST 2005
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Thu Jul 13 22:41:56 PDT 2006
    +#    Added test of user-specified material colors
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +def TestColorDefinitions(testname, colors):
    +    s = ""
    +    for c in colors:
    +        s = s + str(c) + "\n"
    +    TestText(testname, s)
    +
    +def TestMultiColor(section, plotAtts, decreasingOpacity):
    +    # Get the current colors.
    +    m = plotAtts.GetMultiColor()
    +
    +    # Test what the image currently looks like.
    +    Test("multicolor_%d_00" % section)
    +
    +    # Change the colors all at once. We should have red->blue
    +    for i in range(len(m)):
    +        t = float(i) / float(len(m) - 1)
    +        c = int(t * 255.)
    +        m[i] = (255-c, 0, c, 255)
    +    plotAtts.SetMultiColor(m)
    +    SetPlotOptions(plotAtts)
    +    Test("multicolor_%d_01" % section)
    +    TestColorDefinitions("multicolor_%d_02" % section, plotAtts.GetMultiColor())
    +
    +    # Change the colors another way. We should get green to blue
    +    for i in range(len(m)):
    +        t = float(i) / float(len(m) - 1)
    +        c = int(t * 255.)
    +        plotAtts.SetMultiColor(i, 0, 255-c, c)
    +    SetPlotOptions(plotAtts)
    +    Test("multicolor_%d_03" % section)
    +    TestColorDefinitions("multicolor_%d_04" % section, plotAtts.GetMultiColor())
    +
    +    # Change the colors another way. We should get yellow to red but
    +    # the redder it gets, the more transparent it should also get.
    +    for i in range(len(m)):
    +        t = float(i) / float(len(m) - 1)
    +        c = int(t * 255.)
    +        if decreasingOpacity:
    +            plotAtts.SetMultiColor(i, (255, 255-c, 0, 255 - c))
    +        else:
    +            plotAtts.SetMultiColor(i, (255, 255-c, 0, c))
    +    SetPlotOptions(plotAtts)
    +    Test("multicolor_%d_05" % section)
    +    TestColorDefinitions("multicolor_%d_06" % section, plotAtts.GetMultiColor())
    +
    +def test1():
    +    TestSection("Testing setting of multiColor in Boundary plot")
    +    # Set up the plot
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    AddPlot("Boundary", "mat1")
    +    b = BoundaryAttributes()
    +    b.lineWidth = 4
    +    DrawPlots()
    +
    +    # Test the plot
    +    TestMultiColor(0, b, 0)
    +
    +    # Delete the plots
    +    DeleteAllPlots()
    +
    +def test2():
    +    TestSection("Testing setting of multiColor in Contour plot")
    +    # Set up the plot
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Contour", "hardyglobal")
    +    c = ContourAttributes()
    +    c.contourNLevels = 20
    +    SetPlotOptions(c)
    +    DrawPlots()
    +
    +    # Set the view.
    +    v = GetView3D()
    +    v.viewNormal = (-0.400348, -0.676472, 0.618148)
    +    v.focus = (0,0,0)
    +    v.viewUp = (-0.916338, 0.300483, -0.264639)
    +    v.parallelScale = 17.3205
    +    v.imagePan = (0, 0.0397866)
    +    v.imageZoom = 1.07998
    +    SetView3D(v)
    +
    +    # Test the plot
    +    TestMultiColor(1, c, 0)
    +
    +    # Delete the plots
    +    DeleteAllPlots()
    +
    +def test3():
    +    TestSection("Testing setting of multiColor in FilledBoundary plot")
    +    # Set up the plots. First we want globe so we can see something inside
    +    # of the Subset plot to make sure that setting alpha works.
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "w")
    +    p = PseudocolorAttributes()
    +    p.legendFlag = 0
    +    p.colorTableName = "xray"
    +    SetPlotOptions(p)
    +    OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +    AddPlot("FilledBoundary", "mat")
    +    f = FilledBoundaryAttributes()
    +    f.legendFlag = 0
    +    SetPlotOptions(f)
    +
    +    # Add an operator to globe to make it small.
    +    SetActivePlots(0)
    +    AddOperator("Transform", 0)
    +    t = TransformAttributes()
    +    t.doScale = 1
    +    t.scaleX, t.scaleY, t.scaleZ = 0.04, 0.04, 0.04
    +    t.doTranslate = 1
    +    t.translateX, t.translateY, t.translateZ = 0.5, 0.5, 0.5
    +    SetOperatorOptions(t)
    +    SetActivePlots(1)
    +    DrawPlots()
    +
    +    # Set the view.
    +    v = GetView3D()
    +    v.viewNormal = (-0.385083, -0.737931, -0.554229)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (-0.922871, 0.310902, 0.227267)
    +    v.parallelScale = 0.866025
    +    v.imagePan = (-0.0165315, 0.0489375)
    +    v.imageZoom = 1.13247
    +    SetView3D(v)
    +
    +    # Test the plot
    +    TestMultiColor(2, f, 1)
    +
    +    # Delete the plots
    +    DeleteAllPlots()
    +
    +def test4():
    +    TestSection("Testing setting of multiColor in Subset plot")
    +    # Set up the plots. First we want globe so we can see something inside
    +    # of the Subset plot to make sure that setting alpha works.
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "w")
    +    p = PseudocolorAttributes()
    +    p.legendFlag = 0
    +    p.colorTableName = "xray"
    +    SetPlotOptions(p)
    +    OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +    AddPlot("Subset", "domains")
    +    s = SubsetAttributes()
    +    s.legendFlag = 0
    +    SetPlotOptions(s)
    +
    +    # Add an operator to globe to make it small.
    +    SetActivePlots(0)
    +    AddOperator("Transform", 0)
    +    t = TransformAttributes()
    +    t.doScale = 1
    +    t.scaleX, t.scaleY, t.scaleZ = 0.04, 0.04, 0.04
    +    t.doTranslate = 1
    +    t.translateX, t.translateY, t.translateZ = 0.5, 0.5, 0.5
    +    SetOperatorOptions(t)
    +    SetActivePlots(1)
    +    DrawPlots()
    +
    +    # Set the view.
    +    v = GetView3D()
    +    v.viewNormal = (-0.385083, -0.737931, -0.554229)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (-0.922871, 0.310902, 0.227267)
    +    v.parallelScale = 0.866025
    +    v.imagePan = (-0.0165315, 0.0489375)
    +    v.imageZoom = 1.13247
    +    SetView3D(v)
    +
    +    # Test the plot
    +    TestMultiColor(3, s, 1)
    +
    +    # Delete the plots
    +    DeleteAllPlots()
    +
    +def test5():
    +    TestSection("Testing user defined colors for FilledBoundary")
    +
    +    ResetView()
    +    OpenDatabase(silo_data_path("globe_matcolors.silo"))
    +
    +    AddPlot("FilledBoundary","mat1")
    +    AddOperator("Slice")
    +    DrawPlots()
    +
    +    Test("multicolor_matcolors")
    +
    +    DeleteAllPlots()
    +
    +def main():
    +    test1()
    +    test2()
    +    test3()
    +    test4()
    +    test5()
    +
    +# Run the tests
    +main()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_parcoords.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_parcoords.html new file mode 100644 index 000000000..a99ed105d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_parcoords.html @@ -0,0 +1,129 @@ + +Results for plots/parcoords.py + +

    Results of VisIt Regression Test - plots/parcoords

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Test scalar collection sources
    parcoords_010.000.00
    parcoords_020.000.00
    parcoords_030.000.00
    parcoords_040.000.00
    parcoords_050.000.00
    parcoords_060.000.00
    Test array expression sources
    parcoords_070.000.00
    parcoords_080.000.00
    parcoords_090.000.00
    parcoords_100.000.00
    Test raw database array sources
    parcoords_110.000.00
    parcoords_120.000.00
    parcoords_130.000.00
    parcoords_140.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_parcoords_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_parcoords_py.html new file mode 100644 index 000000000..fb473eed7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_parcoords_py.html @@ -0,0 +1,196 @@ +plots/parcoords.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial
    +#  CLASSES: nightly
    +#
    +#  Test Case:  parcoords.py
    +#
    +#  Tests:      Tests the parallel coordinates plot
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       January 31, 2008
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Mon Feb  4 16:11:21 EST 2008
    +#    Removed axis extents from plot attributes since they were unused.
    +#
    +#    Jeremy Meredith, Fri Feb  8 13:49:58 EST 2008
    +#    Added support for array variable expressions, raw database array
    +#    variables, clamping plot limits, and changing viewports.
    +#
    +#    Jeremy Meredith, Mon Feb 18 16:50:02 EST 2008
    +#    Renamed orderedAxisNames to scalarAxisNames.
    +#    Added setting of visualAxisNames in one of the places we create the plot
    +#    from a list of scalar.  This isn't strictly necessary, since the
    +#    plot can do this for us, but the GUI Wizard knows to do this, and so
    +#    setting visualAxisNames matches the GUI behavior more closely.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Hank Childs, Mon Nov 22 11:12:28 PST 2010
    +#    Add tests that include the Threshold operator, which test whether or not
    +#    extents are maintained.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +#
    +# Trying out collections of scalars as a source
    +#
    +TestSection("Test scalar collection sources")
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +
    +# Set default plot variables
    +p = ParallelCoordinatesAttributes()
    +p.drawLines = 1
    +p.linesColor = (128, 0, 0, 255)
    +p.drawContext = 1
    +p.contextGamma = 2
    +p.contextNumPartitions = 512
    +p.contextColor = (0, 220, 0, 255)
    +p.drawLinesOnlyIfExtentsOn = 1
    +SetDefaultPlotOptions(p)
    +
    +# Set up a simple 3 variable parallel coordinates plot.
    +AddPlot("ParallelCoordinates", "hardyglobal")
    +p.scalarAxisNames = ("hardyglobal", "shepardglobal", "chromeVf")
    +p.visualAxisNames = p.scalarAxisNames # unnecessary, but strictly correct
    +p.extentMinima = (-1e+37, -1e+37, -1e+37)
    +p.extentMaxima = (+1e+37, +1e+37, +1e+37)
    +SetPlotOptions(p)
    +DrawPlots()
    +Test("parcoords_01")
    +
    +# Try setting some appearance-related attributes
    +p.contextGamma = 2.9
    +p.contextNumPartitions = 128
    +p.contextColor = (200, 0, 255, 255)
    +SetPlotOptions(p)
    +Test("parcoords_02")
    +
    +p.contextGamma = 2.9
    +p.contextNumPartitions = 32
    +p.contextColor = (200, 0, 255, 255)
    +p.drawLinesOnlyIfExtentsOn = 0
    +SetPlotOptions(p)
    +Test("parcoords_03")
    +
    +# Add an axis and make sure it works
    +p.scalarAxisNames = ("hardyglobal", "shepardglobal", "chromeVf", "radial")
    +p.visualAxisNames = () # test to make sure it works without setting this
    +p.extentMinima = (-1e+37, -1e+37, -1e+37, -1e+37)
    +p.extentMaxima = (+1e+37, +1e+37, +1e+37, +1e+37)
    +p.drawLinesOnlyIfExtentsOn = 1
    +SetPlotOptions(p)
    +Test("parcoords_04")
    +
    +# Make sure the extents work for limiting the lines
    +p.extentMinima = (5.7, -1e+37, -1e+37, -1e+37)
    +p.extentMaxima = (5.8, +1e+37, +1e+37, +1e+37)
    +SetPlotOptions(p)
    +Test("parcoords_05")
    +
    +# Try unifying the extents across all axes
    +p.unifyAxisExtents = 1
    +SetPlotOptions(p)
    +Test("parcoords_06")
    +
    +
    +#
    +# Trying out array variables as a source
    +#
    +TestSection("Test array expression sources")
    +
    +# Try an array variable
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("okc_test_data/astronomy.okc"))
    +
    +
    +DefineArrayExpression("arrayvar1",
    +                      "array_compose(d, b, b/2, b+l)")
    +DefineArrayExpression("arrayvar2",
    +                      "array_compose(d+200, l, l-2, b+l)")
    +DefineArrayExpression("arrayvar2wb",
    +                      "array_compose_with_bins(d+200, l, l-2, b+l, [0,1,4,15,20])")
    +
    +AddPlot("ParallelCoordinates", "arrayvar1")
    +p = ParallelCoordinatesAttributes()
    +p.contextColor = (100, 100, 255, 255)
    +p.contextNumPartitions = 32
    +SetPlotOptions(p)
    +DrawPlots()
    +Test("parcoords_07")
    +
    +# Try changing the array variable
    +ChangeActivePlotsVar("arrayvar2")
    +Test("parcoords_08")
    +
    +# Now change to one with bin-width defined axis x positions
    +ChangeActivePlotsVar("arrayvar2wb")
    +Test("parcoords_09")
    +
    +# Now clamp the axis array limits
    +p.unifyAxisExtents = 1
    +SetPlotOptions(p)
    +Test("parcoords_10")
    +
    +#
    +# Trying out raw database-generated array as a source
    +#
    +TestSection("Test raw database array sources")
    +
    +
    +# Now change to a raw database-generated array variable
    +ChangeActivePlotsVar("all_vars")
    +p.unifyAxisExtents = 0;
    +p.contextColor = (255,150,50,255)
    +SetPlotOptions(p)
    +
    +# Try changing the viewport so it looks a little more normal
    +v = GetViewAxisArray()
    +v.viewportCoords = (0.15,0.9, 0.3,0.7)
    +SetViewAxisArray(v)
    +Test("parcoords_11")
    +
    +# Now clamp the axis array limits again
    +p.unifyAxisExtents = 1
    +SetPlotOptions(p)
    +Test("parcoords_12")
    +
    +DeleteAllPlots()
    +ActivateDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("ParallelCoordinates", "hardyglobal")
    +p = ParallelCoordinatesAttributes()
    +p.scalarAxisNames = ("hardyglobal", "shepardglobal")
    +p.visualAxisNames = p.scalarAxisNames # unnecessary, but strictly correct
    +p.extentMinima = (-1e+37, -1e+37)
    +p.extentMaxima = (+1e+37, +1e+37)
    +p.drawFocusAs = p.IndividualLines
    +p.drawContext = 0
    +p.drawLinesOnlyIfExtentsOn = 0
    +SetPlotOptions(p)
    +DefineScalarExpression("zoneid", "zoneid(Mesh)")
    +AddOperator("Threshold")
    +t = ThresholdAttributes()
    +t.listedVarNames = ("zoneid")
    +t.zonePortions = (1)
    +t.lowerBounds = (100000.5)
    +t.upperBounds = (100001.5)
    +t.defaultVarName = "hardyglobal"
    +t.defaultVarIsScalar = 1
    +SetOperatorOptions(t)
    +DrawPlots()
    +ResetView()
    +Test("parcoords_13")
    +
    +# Now have multiple cells
    +t.upperBounds = (100005.5)
    +SetOperatorOptions(t)
    +Test("parcoords_14")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_pseudocolor.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_pseudocolor.html new file mode 100644 index 000000000..4ac380315 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_pseudocolor.html @@ -0,0 +1,429 @@ + +Results for plots/pseudocolor.py + +

    Results of VisIt Regression Test - plots/pseudocolor

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    pseudocolor_010.000.00
    pseudocolor_domain_bounds_010.000.00
    pseudocolor_domain_bounds_020.000.00
    pseudocolor_domain_bounds_030.000.00
    Point Glyphing: Topological dimension not set to 0
    pseudocolor_point_glyphs_010.000.00
    pseudocolor_point_glyphs_020.000.00
    pseudocolor_point_glyphs_030.000.00
    pseudocolor_point_glyphs_040.000.00
    pseudocolor_point_glyphs_050.000.00
    pseudocolor_point_glyphs_060.000.00
    Point Glyphing: Lighting
    pseudocolor_point_glyphs_070.000.00
    pseudocolor_point_glyphs_080.000.00
    Point Glyphing: Changing Opacity
    pseudocolor_point_glyphs_090.000.00
    pseudocolor_point_glyphs_100.000.00
    Unstructured grid, cell-centered data, poly-vertex cells
    pseudocolor_point_glyphs_110.000.00
    pseudocolor_point_glyphs_120.000.00
    pseudocolor_point_glyphs_130.000.00
    scaling point glyphs by variable
    pseudocolor_point_glyphs_140.000.00
    pseudocolor_point_glyphs_150.000.00
    pseudocolor_point_glyphs_160.000.00
    pseudocolor_point_glyphs_170.000.00
    ugrid, vertex and poly vertex, line and polyline
    pseudocolor_mixed_cells_010.000.00
    pseudocolor_mixed_cells_020.000.00
    pseudocolor_mixed_cells_030.000.00
    pseudocolor_mixed_cells_040.000.00
    pseudocolor_mixed_cells_050.000.00
    Line Tubes
    pseudocolor_line_tube_010.000.00
    pseudocolor_line_tube_020.000.00
    pseudocolor_line_tube_030.000.00
    pseudocolor_line_tube_040.000.00
    pseudocolor_line_tube_050.000.00
    pseudocolor_line_tube_060.000.00
    pseudocolor_line_tube_070.000.00
    pseudocolor_line_tube_080.000.00
    pseudocolor_line_tube_090.000.00
    Line Ribbons
    pseudocolor_line_ribbon_010.000.00
    pseudocolor_line_ribbon_020.000.00
    pseudocolor_line_ribbon_030.000.00
    pseudocolor_line_ribbon_040.000.00
    pseudocolor_line_ribbon_050.000.00
    pseudocolor_line_ribbon_060.000.00
    line endpoints
    pseudocolor_line_endpoints_010.000.00
    pseudocolor_line_endpoints_020.000.00
    pseudocolor_line_endpoints_030.000.00
    pseudocolor_line_endpoints_040.000.00
    pseudocolor_line_endpoints_050.000.00
    pseudocolor_line_endpoints_060.000.00
    pseudocolor_line_endpoints_070.000.00
    pseudocolor_line_endpoints_080.000.00
    pseudocolor_line_endpoints_090.000.00
    pseudocolor_line_endpoints_100.000.00
    Object rendering options
    pseudocolor_rendering_options_010.000.00
    pseudocolor_rendering_options_020.000.00
    pseudocolor_rendering_options_030.000.00
    pseudocolor_rendering_options_040.000.00
    pseudocolor_rendering_options_050.000.00
    pseudocolor_rendering_options_060.000.00
    pseudocolor_rendering_options_070.000.00
    pseudocolor_rendering_options_080.000.00
    External Surface
    pseudocolor_external_surface0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_pseudocolor_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_pseudocolor_py.html new file mode 100644 index 000000000..02cf952cd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_pseudocolor_py.html @@ -0,0 +1,556 @@ +plots/pseudocolor.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case: pseudocolor.py 
    +#
    +#  Tests:      meshes    - 2D rectilinear, 3D curvilinear. 
    +#              plots     - pseudocolor 
    +#
    +#  Defect ID:  '1016, '987
    +#
    +#  Programmer: Kevin Griffin
    +#  Date:       March 19, 2015
    +#
    +#  Modifications:
    +#
    +#    Kevin Griffin, Thu Mar 19 12:00:23 PDT 2015
    +#    Add test for drawing pseudocolor plot using a log scaling
    +#    and very small min value.
    +#
    +#    Alister Maguire, Wed Jul 17 08:24:37 PDT 2019
    +#    Wrapped the first test in a function and added 
    +#    TestDomainBoundaries. 
    +#
    +#    Kathleen Biagas, Wed Nov  6 18:29:29 PST 2019
    +#    Add new tests: PointGlyphing MixedTopology Lines ObjectRenderingOptions
    +#
    +#    Kevin Griffin, Tue Aug  4 11:31:09 PDT 2020
    +#    Added ExternalSurface test
    +#
    +# ----------------------------------------------------------------------------
    +
    +import itertools
    +
    +def TestScale():
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +
    +    pc = PseudocolorAttributes()
    +    pc.minFlag = 1
    +    pc.min = 1e-5
    +    pc.maxFlag = 1
    +    pc.max = 1
    +    pc.centering = pc.Nodal
    +    pc.scaling = pc.Log
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +
    +    Test("pseudocolor_01")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("rect2d.silo"))
    +
    +def TestDomainBoundaries():
    +    #
    +    # First, let's remove some domains and make sure that the 
    +    # faces are rendered. 
    +    #
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    silr = SILRestriction()
    +    silr.SuspendCorrectnessChecking()
    +    silr.TurnOnAll()
    +    for silSet in (41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,60,61,
    +                   62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,
    +                   82,83,84,85,86,87,88,89,90,91,92,93,94,95,97,98,99,100,101,
    +                   102,103,104,105,106,107,108,109,110,111,112,113,114,116,117,
    +                   118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,
    +                   133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,
    +                   148,149,150,151,152,153,154,236,237,238,239,240,241,242,243,
    +                   244):
    +        silr.TurnOffSet(silSet)
    +    silr.EnableCorrectnessChecking()
    +    SetPlotSILRestriction(silr ,1)
    +
    +    Test("pseudocolor_domain_bounds_01")
    +
    +    #
    +    # Next, we need to make sure that the processer boundaries are not
    +    # rendered when we enable transparency. 
    +    #
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0.883086, 0.11282, 0.455446)
    +    View3DAtts.focus = (0, 2.5, 10)
    +    View3DAtts.viewUp = (-0.0918142, 0.993447, -0.068068)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 11.4564
    +    View3DAtts.nearPlane = -22.9129
    +    View3DAtts.farPlane = 22.9129
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0, 2.5, 10)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +    silr = SILRestriction()
    +    silr.SuspendCorrectnessChecking()
    +    silr.TurnOnAll()
    +    for silSet in (41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,60,61,
    +                   62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,
    +                   82,83,84,85,86,87,88,89,90,91,92,93,94,95,97,98,99,100,101,
    +                   102,103,104,105,106,107,108,109,110,111,112,113,114,116,117,
    +                   118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,
    +                   133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,
    +                   148,149,150,151,152,153,154):
    +        silr.TurnOffSet(silSet)
    +    silr.EnableCorrectnessChecking()
    +    SetPlotSILRestriction(silr ,1)
    +
    +    PseudocolorAtts = PseudocolorAttributes()
    +    PseudocolorAtts.opacityType = PseudocolorAtts.Constant
    +    PseudocolorAtts.opacity = 0.462745
    +    SetPlotOptions(PseudocolorAtts)
    +
    +    Test("pseudocolor_domain_bounds_02")
    +
    +    #
    +    # Now let's make sure that the ghost/face removal has been 
    +    # reversed back to its original order when we turn transparency
    +    # back off. 
    +    #
    +    PseudocolorAtts = PseudocolorAttributes()
    +    PseudocolorAtts.opacityType = PseudocolorAtts.FullyOpaque
    +    SetPlotOptions(PseudocolorAtts)
    +
    +    silr = SILRestriction()
    +    silr.SuspendCorrectnessChecking()
    +    silr.TurnOnAll()
    +    for silSet in (41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,60,61,
    +                   62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,
    +                   82,83,84,85,86,87,88,89,90,91,92,93,94,95,97,98,99,100,101,
    +                   102,103,104,105,106,107,108,109,110,111,112,113,114,116,117,
    +                   118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,
    +                   133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,
    +                   148,149,150,151,152,153,154,236,237,238,239,240,241,242,243,
    +                   244):
    +        silr.TurnOffSet(silSet)
    +    silr.EnableCorrectnessChecking()
    +    SetPlotSILRestriction(silr ,1)
    +
    +    Test("pseudocolor_domain_bounds_03")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +def PointGlyphing():
    +    # github issue 3390
    +    TestSection("Point Glyphing: Topological dimension not set to 0")
    +    idx = itertools.count(1)
    +    # Reader not reporting topodim 0
    +    OpenDatabase(data_path("blueprint_v0.3.1_test_data/braid_2d_examples.blueprint_root_hdf5"))
    +    AddPlot("Pseudocolor", "points_mesh/braid")
    +    DrawPlots()
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    # glyph the points with Tets
    +    pc = PseudocolorAttributes()
    +    pc.pointType = pc.Tetrahedron
    +    pc.pointSize = 0.5
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +    # transition back to point
    +    pc.pointType = pc.Point
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +    # glyph the points with Sphere 
    +    pc.pointType = pc.Sphere
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("blueprint_v0.3.1_test_data/braid_2d_examples.blueprint_root_hdf5"))
    +
    +    OpenDatabase(data_path("synergia_test_data/vis_particles_* database"), 0, "Vs")
    +    AddPlot("Pseudocolor", "particles_0")
    +    pc.pointType = pc.Tetrahedron
    +    pc.pointSize = 0.005
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (-0.882869, -0.011028, 0.469489)
    +    v.focus = (-0.000169306, 0.000401067, -0.00167359)
    +    v.viewUp = (-0.118292, 0.972711, -0.199599)
    +    v.imageZoom = 1.77
    +    SetView3D(v);
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    # PsersistentParticles sets the topological dimension incorrectly,
    +    # but the points should still be glyphable
    +    AddOperator("PersistentParticles")
    +    pp = PersistentParticlesAttributes()
    +    pp.connectParticles = 0
    +    SetOperatorOptions(pp)
    +    DrawPlots()
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("synergia_test_data/vis_particles_* database"))
    +
    +    TestSection("Point Glyphing: Lighting")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    AddPlot("Pseudocolor", "PointVar")
    +    pc.pointType = pc.Icosahedron
    +    pc.pointSize = 3
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (0.272848, 0.209847, 0.938892)
    +    v.focus = (-0.0242615, -0.170417, -0.0304632)
    +    v.viewUp = (0.134518, 0.958013, -0.253212)
    +    v.imageZoom=1.5
    +    SetView3D(v)
    +    # standard lighting
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    # turn off lighting, points should still be glyphed
    +    pc.lightingFlag = 0
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +    pc.lightingFlag = 1
    +
    +    # github issue 1461, 1800
    +    TestSection("Point Glyphing: Changing Opacity")
    +    pc.opacityType = pc.Constant
    +    pc.opacity = 0.25
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    # change glyph type while transparent
    +    pc.pointType = pc.Box
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    pc.opacityType = pc.FullyOpaque
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("noise.silo"))
    +
    +    TestSection("Unstructured grid, cell-centered data, poly-vertex cells")
    +    OpenDatabase(data_path("vtk_test_data/ugrid_polyvertex_points.vtk"))
    +    AddPlot("Pseudocolor", "foo_cells")
    +    DrawPlots()
    +    v2 = GetView2D()
    +    v2.windowCoords = (-0.945, 9.945, -0.945, 9.945)
    +    SetView2D(v2)
    +    pc.pointType = pc.Axis
    +    pc.pointSize = 0.6
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +    pc.pointType = pc.Box
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +    ChangeActivePlotsVar("u")
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    TestSection("scaling point glyphs by variable")
    +    pc.pointSizeVarEnabled = 1
    +    pc.pointSize = 0.1
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    pc.pointSizeVar = "foo_cells"
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    ChangeActivePlotsVar("foo_cells")
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +    pc.pointSizeVar = "u"
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/ugrid_polyvertex_points.vtk"))
    +
    +
    +def MixedTopology():
    +    TestSection("ugrid, vertex and poly vertex, line and polyline")
    +    OpenDatabase(data_path("vtk_test_data/ugrid_mixed_cells.vtk"))
    +    AddPlot("Pseudocolor","foo_cells")
    +    pc = PseudocolorAttributes()
    +    pc.colorTableName = "rainbow"
    +    pc.invertColorTable = 1
    +    pc.lineWidth = 2
    +    pc.pointSizePixels = 10
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (-0.195485, 0.629643, 0.751888)
    +    v.focus = (1.5, 0.5, 0.5)
    +    v.viewUp = (0.158378, 0.776885, -0.609398)
    +    SetView3D(v)
    +
    +    idx = itertools.count(1)
    +    Test("pseudocolor_mixed_cells_%02d"%next(idx))
    +
    +    pc.pointType = pc.Tetrahedron
    +    pc.pointSize = 0.4
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_mixed_cells_%02d"%next(idx))
    +
    +    pc.lineType = pc.Tube
    +    pc.tubeRadiusBBox = 0.05
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_mixed_cells_%02d"%next(idx))
    +
    +    pc.tubeRadiusSizeType = pc.Absolute
    +    pc.tubeRadiusAbsolute = 0.125
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_mixed_cells_%02d"%next(idx))
    +
    +    pc.tubeRadiusSizeType = pc.FractionOfBBox
    +    pc.tailStyle = pc.Spheres
    +    pc.headStyle = pc.Cones
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_mixed_cells_%02d"%next(idx))
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/ugrid_mixed_cells.vtk"))
    +
    +def DoLines(ltype):
    +    pc = PseudocolorAttributes()
    +    idx =  itertools.count(1)
    +    if ltype == "tube":
    +        TestSection("Line Tubes")
    +        pc.lineType = pc.Tube
    +    else:
    +        TestSection("Line Ribbons")
    +        pc.lineType = pc.Ribbon
    +
    +    pc.tubeRadiusSizeType = pc.FractionOfBBox
    +    pc.tubeRadiusBBox = 0.2
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_%s_%02d" %(ltype, next(idx)))
    +
    +    if ltype == "tube":
    +        # test tube resolution
    +        pc.tubeResolution = 3
    +        SetPlotOptions(pc)
    +        Test("pseudocolor_line_%s_%02d" %(ltype, next(idx)))
    +
    +        pc.tubeResolution = 4
    +        SetPlotOptions(pc)
    +        Test("pseudocolor_line_%s_%02d" %(ltype, next(idx)))
    +
    +        pc.tubeResolution = 20
    +        SetPlotOptions(pc)
    +        Test("pseudocolor_line_%s_%02d" %(ltype, next(idx)))
    +
    +    pc.tubeRadiusSizeType = pc.Absolute
    +    pc.tubeRadiusAbsolute = 0.6
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_%s_%02d" %(ltype, next(idx)))
    +
    +    pc.tubeRadiusVarEnabled = 1
    +    pc.tubeRadiusVar = "var2"
    +    pc.tubeRadiusVarRatio = 2
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_%s_%02d" %(ltype, next(idx)))
    +
    +    pc.tubeRadiusVar = "var1"
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_%s_%02d" %(ltype, next(idx)))
    +
    +    ChangeActivePlotsVar("var1")
    +    Test("pseudocolor_line_%s_%02d" %(ltype, next(idx)))
    +
    +    pc.tubeRadiusVar = "var2"
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_%s_%02d" %(ltype, next(idx)))
    +
    +def DoEndpoints():
    +    TestSection("line endpoints")
    +    ChangeActivePlotsVar("var2")
    +    idx = itertools.count(1)
    +    pc = PseudocolorAttributes()
    +    pc.lineType = pc.Tube
    +    pc.tubeRadiusSizeType = pc.Absolute
    +    pc.tubeRadiusAbsolute = 0.1
    +    pc.tailStyle = pc.Spheres
    +    pc.headStyle = pc.Cones
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +    pc.endPointRadiusSizeType = pc.Absolute
    +    pc.endPointRadiusAbsolute = 0.5
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +    pc.endPointResolution = 3
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +    pc.endPointResolution = 20
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +    pc.endPointRadiusVarEnabled = 1
    +    pc.endPointRadiusVar = "var2"
    +    pc.endPointRadiusVarRatio = 2
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +    pc.endPointRadiusVar = "var1"
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +    ChangeActivePlotsVar("var2")
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +    pc.endPointRadiusVar = "var2"
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +    pc.endPointRatio = 1
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +    pc.endPointRatio = 10
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +
    +def Lines():
    +    OpenDatabase(data_path("vtk_test_data/lines.vtk"))
    +    AddPlot("Pseudocolor", "var2")
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (0.508199, 0.390103, 0.767824)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (-0.065159, 0.906394, -0.417379)
    +    v.imageZoom = 1.4641
    +    SetView3D(v)
    +
    +    DoLines("tube")
    +    DoLines("ribbon")
    +    DoEndpoints()
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/lines.vtk"))
    +
    +
    +def ObjectRenderingOptions():
    +    TestSection("Object rendering options")
    +    idx = itertools.count(1)
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +    AddPlot("Pseudocolor", "p")
    +    DrawPlots()
    +
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (0.30955, 0.438716, 0.843627)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.00113002, 0.887033, -0.461704)
    +    SetView3D(v)
    +
    +    Test("pseudocolor_rendering_options_%02d" %next(idx))
    +
    +    pc = PseudocolorAttributes()
    +    pc.renderWireframe = 1
    +    pc.wireframeColor = (255, 0, 0)
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_rendering_options_%02d" %next(idx))
    +
    +    pc.renderPoints = 1
    +    pc.pointColor = (255, 255, 0)
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_rendering_options_%02d" %next(idx))
    +
    +    pc.renderSurfaces = 0
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_rendering_options_%02d" %next(idx))
    +
    +    pc.renderPoints = 0
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_rendering_options_%02d" %next(idx))
    +
    +    pc.renderWireframe = 0
    +    pc.renderPoints = 1
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_rendering_options_%02d" %next(idx))
    +
    +    pc.pointType = pc.Sphere
    +    pc.pointSize = 0.02
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_rendering_options_%02d" %next(idx))
    +
    +    pc.renderSurfaces = 1
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_rendering_options_%02d" %next(idx))
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("rect3d.silo"))
    +
    +def ExternalSurface():
    +    TestSection("External Surface")
    +    OpenDatabase(data_path("external_surface_test_data/data.nv0_step00000.root"))
    +
    +    DefineScalarExpression("dUdy", "gradient(UVelC)[1]")
    +
    +    AddPlot("Pseudocolor", "UVelC")
    +
    +    PseudocolorAtts = PseudocolorAttributes()
    +    PseudocolorAtts.centering = PseudocolorAtts.Nodal  # Natural, Nodal, Zonal
    +    SetPlotOptions(PseudocolorAtts)
    +    DrawPlots()
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0.90786, 0.176706, 0.380217)
    +    View3DAtts.focus = (3.14159, 0, 1.5708)
    +    View3DAtts.viewUp = (-0.166194, 0.98423, -0.0605927)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 3.65199
    +    View3DAtts.nearPlane = -7.30397
    +    View3DAtts.farPlane = 7.30397
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (3.14159, 0, 1.5708)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +    ChangeActivePlotsVar("dUdy")
    +    Test("pseudocolor_external_surface")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("external_surface_test_data/data.nv0_step00000.root"))
    +
    +def Main():
    +    TestScale()
    +    TestDomainBoundaries()
    +    PointGlyphing()
    +    MixedTopology()
    +    Lines()
    +    ObjectRenderingOptions()
    +    ExternalSurface()
    +
    +Main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_ray_trace.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_ray_trace.html new file mode 100644 index 000000000..948dca77f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_ray_trace.html @@ -0,0 +1,108 @@ + +Results for plots/ray_trace.py + +

    Results of VisIt Regression Test - plots/ray_trace

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ray_trace_010.000.00
    ray_trace_01_pan0.000.00
    ray_trace_020.000.00
    ray_trace_030.000.00
    ray_trace_040.000.00
    ray_trace_050.000.00
    ray_trace_05_pan0.000.00
    ray_trace_060.000.00
    ray_trace_070.000.00
    ray_trace_080.000.00
    ray_trace_090.000.00
    ray_trace_100.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_ray_trace_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_ray_trace_py.html new file mode 100644 index 000000000..efa4ff244 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_ray_trace_py.html @@ -0,0 +1,220 @@ +plots/ray_trace.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ray_trace.py
    +#
    +#  Tests:      ray tracing with the volume plot
    +#
    +#  Defect ID:  '1949, '5699, '6916
    +#
    +#  Programmer: Hank Childs
    +#  Date:       December 3, 2004
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Dec 15 09:36:51 PDT 2004
    +#    I changed the flag that's used to make it do software rendering.
    +#
    +#    Hank Childs, Wed Feb 16 07:34:07 PST 2005
    +#    Rename variables that have unsupported characters.
    +#
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +#    Hank Childs, Fri Mar  3 09:09:04 PST 2006
    +#    Add testing for ray-tracing in multiple windows.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Hank Childs, Fri Nov 18 08:51:58 PST 2011
    +#    Add regression tests for panning while ray tracing.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def test1(a):
    +    #
    +    # Start off by testing that we can bring up a normal volume plot and smooth
    +    # the data.  Also test that it can interact with the bounding box correctly.
    +    # 
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Volume", "d")
    +    vol_atts = VolumeAttributes()
    +    vol_atts.rendererType = vol_atts.Composite
    +    vol_atts.smoothData = 1
    +    SetPlotOptions(vol_atts)
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.369824, 0.535308, 0.759391)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (-0.022009, 0.812062, -0.583155)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +
    +    Test("ray_trace_01")
    +
    +    v.imagePan = (0.1, -0.1)
    +    SetView3D(v)
    +    Test("ray_trace_01_pan")
    +    v.imagePan = (0, 0)
    +    SetView3D(v)
    +
    +    #
    +    # Now test that it can play with other plots.
    +    #
    +    AddPlot("Pseudocolor", "d")
    +    pc_atts = PseudocolorAttributes()
    +    pc_atts.colorTableName = "gray"
    +    SetPlotOptions(pc_atts)
    +    AddOperator("Slice")
    +    slice_atts = SliceAttributes()
    +    slice_atts.originPercent = 90
    +    slice_atts.axisType = slice_atts.ZAxis
    +    slice_atts.originType = slice_atts.Percent
    +    slice_atts.project2d = 0
    +    SetOperatorOptions(slice_atts)
    +    DrawPlots()
    +
    +    Test("ray_trace_02")
    +
    +    #
    +    # Test that it can play well with other plots when doin orthographic 
    +    # projection.
    +    #
    +    v.perspective = 0
    +    SetView3D(v)
    +
    +    Test("ray_trace_03")
    +
    +    #
    +    # Now test that we handle it well when the near and far clipping planes
    +    # intersect the dataset.
    +    #
    +    v.perspective = 1
    +    v.nearPlane = -0.5
    +    v.farPlane = 0.5
    +    SetView3D(v)
    +
    +    Test("ray_trace_04")
    +
    +    DeleteAllPlots()
    +
    +def test2(a):
    +    #
    +    # Test that we can do curvilinear/unstructured meshes, which do an entirely
    +    # different sort of sampling.
    +    #
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    AddPlot("Volume", "d")
    +    vol_atts = VolumeAttributes()
    +    vol_atts.rendererType = vol_atts.Composite
    +    vol_atts.smoothData = 0
    +    SetPlotOptions(vol_atts)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (-0.369824, 0.535308, 0.759391)
    +    v.viewUp = (-0.022009, 0.812062, -0.583155)
    +    SetView3D(v)
    +
    +    Test("ray_trace_05")
    +
    +    v.imagePan = (0.1, -0.1)
    +    SetView3D(v)
    +    Test("ray_trace_05_pan")
    +    v.imagePan = (0, 0)
    +    SetView3D(v)
    +
    +    DeleteAllPlots()
    +
    +def test3(a):
    +    #
    +    # Test a multi-block rectilinear problem with ghost zones.  Use an AMR problem,
    +    # because that will test the best if we are removing ghost zones correctly
    +    # (ghost zone values in AMR meshes don't necessarily agree with the values of
    +    #  the zones that refine them).
    +    #
    +    OpenDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +    AddPlot("Volume", "Primitive Var _number_0")
    +    vol_atts = VolumeAttributes()
    +    vol_atts.rendererType = vol_atts.Composite
    +    vol_atts.smoothData = 0
    +    vol_atts.useColorVarMin = 1
    +    vol_atts.colorVarMin = 22
    +    SetPlotOptions(vol_atts)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (-0.369824, 0.535308, 0.759391)
    +    v.viewUp = (-0.022009, 0.812062, -0.583155)
    +    SetView3D(v)
    +
    +    Test("ray_trace_06")
    +
    +    #
    +    # Now do it again for another timestep.
    +    #
    +    SetTimeSliderState(7)
    +    Test("ray_trace_07")
    +
    +    # 
    +    # Now go to window #2 and do some more raytracing.
    +    #
    +    AddWindow()
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    SetAnnotationAttributes(a)
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Volume", "d")
    +    vol_atts = VolumeAttributes()
    +    vol_atts.rendererType = vol_atts.Composite
    +    SetPlotOptions(vol_atts)
    +    DrawPlots()
    +    Test("ray_trace_08")
    +
    +    #
    +    # There was a bug where adding a new plot with a different variable
    +    # would cause the ray tracing to fail.  Test that the fix still works.
    +    #
    +    AddPlot("Contour", "u")
    +    DrawPlots()
    +    Test("ray_trace_09")
    +
    +    # And make sure everything is okay in window #1.
    +    SetActiveWindow(1)
    +    SetActivePlots(0)
    +    DeleteActivePlots()
    +    Test("ray_trace_10")
    +
    +def main():
    +    # Turn off all annotation
    +    a = AnnotationAttributes()
    +    TurnOffAllAnnotations(a)
    +
    +    # Turn bbox on.  This tests:
    +    # - interaction with geometry
    +    # - that image based plots still get added to the vis window, causing a 
    +    #   bounding box to get generated.
    +    a.axes3D.bboxFlag = 1
    +    SetAnnotationAttributes(a)
    +
    +    test1(a)
    +    test2(a)
    +    test3(a)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_scatter.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_scatter.html new file mode 100644 index 000000000..1ef868e92 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_scatter.html @@ -0,0 +1,209 @@ + +Results for plots/scatter.py + +

    Results of VisIt Regression Test - plots/scatter

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Test plot options
    scatter_000.000.00
    scatter_010.000.00
    scatter_020.000.00
    scatter_030.000.00
    scatter_040.000.00
    scatter_050.000.00
    scatter_060.000.00
    scatter_070.000.00
    scatter_080.000.00
    scatter_090.000.00
    scatter_100.000.00
    scatter_110.000.00
    scatter_120.000.00
    scatter_130.000.00
    scatter_140.000.00
    scatter_150.000.00
    scatter_160.000.00
    Multiblock and scale to cube
    scatter_170.000.00
    scatter_180.000.00
    scatter_190.000.00
    scatter_200.000.00
    Set min and max values, make sure colors and extents are right
    scatter_210.740.01
    scatter_220.000.00
    scatter_230.000.00
    scatter_240.000.00
    scatter_250.000.00
    scatter_260.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_scatter_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_scatter_py.html new file mode 100644 index 000000000..121e2ac3c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_scatter_py.html @@ -0,0 +1,343 @@ +plots/scatter.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial
    +#  CLASSES: nightly
    +#
    +#  Test Case:  scatter.py 
    +#
    +#  Tests:      Tests the scatter plot
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Tue Dec 14 16:58:04 PST 2004
    +#
    +#  Modifications:
    +#    Brad Whitlock, Mon Jul 18 17:19:04 PST 2005
    +#    Added tests for multiblock data and "scale to cube" that make sure that
    +#    the extents are gotten correctly beforehand. If the extents are not
    +#    gathered beforehand for a multi-block dataset when "scale to cube" is
    +#    on then each domain will use its local extents to map its values to
    +#    a cube and none of the cubes from the different domains will match,
    +#    causing an incorrect picture.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +# Set up some annotation settings.
    +a = AnnotationAttributes()
    +a.backgroundColor = (0,0,0,255)
    +a.foregroundColor = (255,255,255,255)
    +TurnOffAllAnnotations(a)
    +
    +TestSection("Test plot options")
    +
    +#
    +# Set up a simple 2 variable scatter plot.
    +#
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Scatter", "hardyglobal")
    +s = ScatterAttributes()
    +s.var2 = "shepardglobal"
    +s.scaleCube = 0
    +SetPlotOptions(s)
    +DrawPlots()
    +Test("scatter_00")
    +
    +v0 = GetView2D()
    +
    +
    +#
    +# Try setting x min and max
    +#
    +s.var1MinFlag = 1
    +s.var1MaxFlag = 1
    +s.var1Min = 2
    +s.var1Max = 4
    +SetPlotOptions(s)
    +SetView2D(v0)
    +Test("scatter_01")
    +
    +#
    +# Try setting some scaling options for x
    +#
    +s.var1MinFlag = 0
    +s.var1MaxFlag = 0
    +s.var1Scaling = s.Log
    +s.scaleCube = 1
    +SetPlotOptions(s)
    +ResetView()
    +v1 = GetView2D()
    +Test("scatter_02")
    +
    +s.var1Scaling = s.Skew
    +s.var1SkewFactor = 10
    +SetPlotOptions(s)
    +Test("scatter_03")
    +s.var1SkewFactor = 0.01
    +SetPlotOptions(s)
    +Test("scatter_04")
    +
    +#
    +# Add a 3rd dimension
    +#
    +s.var1Scaling = s.Linear
    +s.var3 = "radial"
    +s.var3Role = s.Coordinate2
    +SetPlotOptions(s)
    +v2 = View3DAttributes()
    +v2.viewNormal = (-0.70917, 0.324761, 0.625787)
    +v2.focus = (0.5, 0.5, 0.5)
    +v2.viewUp = (0.218647, 0.945137, -0.242712)
    +v2.viewAngle = 30
    +v2.parallelScale = 0.866025
    +v2.nearPlane = -1.73205
    +v2.farPlane = 1.73205
    +v2.imagePan = (0.00504899, 0.0411036)
    +v2.imageZoom = 1.44477
    +v2.perspective = 1
    +v2.eyeAngle = 2
    +SetView3D(v2)
    +Test("scatter_05")
    +
    +#
    +# Add a color dimension
    +#
    +s.var4 = "default"
    +s.var4Role = s.Color
    +SetPlotOptions(s)
    +Test("scatter_06")
    +
    +
    +#
    +# Try the min, max for the color
    +#
    +s.var4MinFlag = 1
    +s.var4Min = 2.5
    +SetPlotOptions(s)
    +Test("scatter_07")
    +
    +s.var4MinFlag = 0
    +s.var4MaxFlag = 1
    +s.var4Max = 3.4
    +SetPlotOptions(s)
    +Test("scatter_08")
    +
    +#
    +# Try scaling the color
    +#
    +s.var4MinFlag = 0
    +s.var4MaxFlag = 0
    +s.var4Scaling = s.Log
    +SetPlotOptions(s)
    +Test("scatter_09")
    +
    +s.var4Scaling = s.Skew
    +s.var4SkewFactor = 10
    +SetPlotOptions(s)
    +Test("scatter_10")
    +
    +s.var4SkewFactor = 0.01
    +SetPlotOptions(s)
    +Test("scatter_11")
    +
    +
    +#
    +# Try changing color variables
    +#
    +s.var4Scaling = s.Linear
    +s.var4 = "chromeVf"
    +SetPlotOptions(s)
    +Test("scatter_12")
    +
    +
    +#
    +# Try changing roles of color and Z.
    +#
    +s.var4Role = s.Coordinate2
    +s.var3Role = s.Color
    +SetPlotOptions(s)
    +Test("scatter_13")
    +
    +#
    +# Change the roles back and change the color table.
    +#
    +s.var4Role = s.Color
    +s.var3Role = s.Coordinate2
    +s.var4 = "hardyglobal"
    +s.colorTableName = "gray"
    +SetPlotOptions(s)
    +Test("scatter_14")
    +
    +#
    +# Make it use a single color
    +#
    +s.var4Role = s.NONE
    +s.colorType = 1
    +s.singleColor = (0,255,0,255)
    +SetPlotOptions(s)
    +Test("scatter_15")
    +
    +#
    +# Turn off the legend
    +#
    +s.legendFlag = 0
    +SetPlotOptions(s)
    +Test("scatter_16")
    +DeleteActivePlots()
    +
    +#
    +# Try a Scatter plot with multi-block data
    +#
    +TestSection("Multiblock and scale to cube")
    +OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +AddPlot("Scatter", "d")
    +s = ScatterAttributes()
    +s.var2 = "u"
    +s.var2Role = s.Coordinate1
    +s.var3 = "v"
    +s.var3Role = s.Coordinate2
    +s.var4 = "u"
    +s.var4Role = s.Color
    +s.scaleCube = 1
    +s.pointSize = 0.01
    +s.pointType = s.Box
    +SetPlotOptions(s)
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.482571, 0.41728, 0.770066)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.269481, 0.907303, -0.322772)
    +v.viewAngle = 30
    +v.parallelScale = 0.864825
    +v.nearPlane = -1.72965
    +v.farPlane = 1.72965
    +v.imagePan = (0.0547107, 0.0441637)
    +v.imageZoom = 1.08726
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0.5, 0.5, 0.5)
    +SetView3D(v)
    +Test("scatter_17")
    +
    +# Try different scalings.
    +s.var1Scaling = s.Log
    +SetPlotOptions(s)
    +Test("scatter_18")
    +
    +s.var1Scaling = s.Skew
    +s.var1SkewFactor = 50.
    +SetPlotOptions(s)
    +Test("scatter_19")
    +DeleteActivePlots()
    +
    +#
    +# Do different variables.
    +#
    +DefineScalarExpression("xc", "coord(mesh1)[0]")
    +DefineScalarExpression("yc", "coord(mesh1)[1]")
    +DefineScalarExpression("zc", "coord(mesh1)[2]")
    +DefineScalarExpression("uvw_prod", "u*v*w")
    +AddPlot("Scatter", "xc")
    +s = ScatterAttributes()
    +s.var2 = "yc"
    +s.var2Role = s.Coordinate1
    +s.var3 = "zc"
    +s.var3Role = s.Coordinate2
    +s.var4 = "uvw_prod"
    +s.var4Role = s.Color
    +s.scaleCube = 1
    +s.pointSize = 0.01
    +s.pointType = s.Box
    +SetPlotOptions(s)
    +DrawPlots()
    +
    +v.viewNormal = (0.799291, 0.383343, 0.462798)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.325714, 0.92354, -0.202447)
    +v.viewAngle = 30
    +v.parallelScale = 0.866025
    +v.nearPlane = -1.73205
    +v.farPlane = 1.73205
    +v.imagePan = (0.000204097, 0.0398577)
    +v.imageZoom = 1.07422
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0.5, 0.5, 0.5)
    +SetView3D(v)
    +Test("scatter_20")
    +DeleteActivePlots()
    +
    +#
    +# Set min/max values in X,Y,Z and make sure that the points are the right
    +# color and the extents are right.
    +#
    +TestSection("Set min and max values, make sure colors and extents are right")
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +AddPlot("Scatter", "d")
    +s = ScatterAttributes()
    +s.var2 = "p"
    +s.var2Role = s.Coordinate1
    +s.var3 = "default"
    +s.var3Role = s.Color
    +s.pointType = s.Axis
    +SetPlotOptions(s)
    +DrawPlots()
    +ResetView()
    +
    +Test("scatter_21")
    +
    +# Set a min in X and make sure the points are still the right color.
    +s.var1MinFlag = 1
    +s.var1Min = 3.5
    +SetPlotOptions(s)
    +Test("scatter_22")
    +
    +# Set min max in X and Y
    +s.var1MinFlag = 1
    +s.var1MaxFlag = 1
    +s.var1Min = 2.
    +s.var1Max = 4.
    +s.var2MinFlag = 1
    +s.var2MaxFlag = 1
    +s.var2Min = 0.3
    +s.var2Max = 0.4
    +SetPlotOptions(s)
    +Test("scatter_23")
    +
    +DeleteActivePlots()
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Scatter", "hardyglobal")
    +s = ScatterAttributes()
    +s.var2 = "shepardglobal"
    +s.var2Role = s.Coordinate1
    +s.var3 = "radial"
    +s.var3Role = s.Coordinate2
    +s.var4 = "radial"
    +s.var4Role = s.Color
    +s.scaleCube = 1
    +SetPlotOptions(s)
    +DrawPlots()
    +SetView3D(v2)
    +Test("scatter_24")
    +
    +# Set a min in Z.
    +s.var3MinFlag = 1
    +s.var3Min = 15.
    +SetPlotOptions(s)
    +Test("scatter_25")
    +
    +# Set a max in Z.
    +s.var3MaxFlag = 1
    +s.var3Max = 22.
    +SetPlotOptions(s)
    +Test("scatter_26")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_singlecolor.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_singlecolor.html new file mode 100644 index 000000000..bfd71841e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_singlecolor.html @@ -0,0 +1,54 @@ + +Results for plots/singlecolor.py + +

    Results of VisIt Regression Test - plots/singlecolor

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    singlecolor000.000.00
    singlecolor010.000.00
    singlecolor020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_singlecolor_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_singlecolor_py.html new file mode 100644 index 000000000..8ac8da0e3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_singlecolor_py.html @@ -0,0 +1,77 @@ +plots/singlecolor.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  singlecolor.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, single domain
    +#              plots     - Boundary, FilledBoundary, Subset
    +#
    +#  Defect ID:  VisIt00002372
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Oct 23 15:36:30 PST 2003
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use domains var for Subset plot test instead of materials.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Set the single color to light blue and partially transparent using the
    +# plot's global opacity setting.
    +def SetSingleColor(atts):
    +    atts.singleColor = (153, 204, 255, 255)
    +    atts.colorType = b.ColorBySingleColor
    +    atts.opacity = 0.4
    +    SetPlotOptions(atts)
    +
    +# Set the view that we want to use.
    +def InitializeView():
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.428395 ,0.549517, 0.717293)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.186332, 0.830487, -0.52495)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.imagePan = (0.0183269, -0.0257188)
    +    v.imageZoom = 1.17591
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    SetView3D(v)
    +
    +# Open the database.
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +# Test the single color opacity for the Boundary plot
    +AddPlot("Boundary", "mat1")
    +b = BoundaryAttributes()
    +SetSingleColor(b)
    +DrawPlots()
    +InitializeView()
    +Test("singlecolor00")
    +
    +# Test the single color opacity for the FilledBoundary plot
    +DeleteAllPlots()
    +AddPlot("FilledBoundary", "mat1")
    +f = FilledBoundaryAttributes()
    +SetSingleColor(f)
    +DrawPlots()
    +Test("singlecolor01")
    +
    +# Test the single color opacity for the Subset plot
    +DeleteAllPlots()
    +AddPlot("Subset", "domains")
    +s = SubsetAttributes()
    +SetSingleColor(s)
    +DrawPlots()
    +Test("singlecolor02")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_subset.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_subset.html new file mode 100644 index 000000000..8f2579931 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_subset.html @@ -0,0 +1,139 @@ + +Results for plots/subset.py + +

    Results of VisIt Regression Test - plots/subset

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    subset_010.000.00
    subset_029.490.08
    subset_034.140.02
    subset_040.000.00
    subset_050.000.00
    subset_060.000.00
    subset_070.000.00
    subset_080.000.00
    subset_090.000.00
    subset_100.000.00
    point mesh
    subset_110.000.00
    subset_120.000.00
    subset_130.000.00
    subset_140.000.00
    subset_150.000.00
    subset_160.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_subset_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_subset_py.html new file mode 100644 index 000000000..f5f6b45a3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_subset_py.html @@ -0,0 +1,190 @@ +plots/subset.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  subset.py
    +#
    +#  Tests:      meshes    - 2D curvilinear, multiple domain
    +#              plots     - subset
    +#
    +#  Defect ID:  '6105, '6762
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 31, 2005
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Tue Nov 15 07:28:43 PST 2005
    +#    Added test for subset plus macro expression.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Hank Childs, Mon Mar 26 12:00:23 PDT 2012
    +#    Add test for Subset plot + material selection
    +#
    +#    Kathleen Biagas, Fri Jun  5 08:35:31 PDT 2020
    +#    Added tests for point glyhphing/sizing for data that doesn't declare
    +#    itself a point mesh and for data with mixed topology.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("multi_curv2d.silo"))
    +
    +AddPlot("Subset", "domains")
    +DrawPlots()
    +
    +v = GetView2D()
    +v.viewportCoords = (0, 1, 0, 1)
    +v.windowCoords = (-5, 5, 0, 5)
    +SetView2D(v)
    +
    +Test("subset_01")
    +
    +s = SubsetAttributes()
    +s.wireframe = 1
    +SetPlotOptions(s)
    +Test("subset_02")
    +
    +i = IsovolumeAttributes()
    +i.variable = "d"
    +i.lbound = 2.7
    +i.ubound = 3.6
    +SetDefaultOperatorOptions(i)
    +AddOperator("Isovolume")
    +DrawPlots()
    +Test("subset_03")
    +
    +s.wireframe = 0
    +SetPlotOptions(s)
    +Test("subset_04")
    +
    +RemoveLastOperator()
    +op = OnionPeelAttributes()
    +op.categoryName = "domains"
    +op.subsetName = "domain3"
    +op.index = (100)
    +SetDefaultOperatorOptions(op)
    +AddOperator("OnionPeel")
    +DrawPlots()
    +
    +v.windowCoords = (-0.7, -0.3, 3.1, 3.25)
    +SetView2D(v)
    +
    +Test("subset_05")
    +
    +# This is a different wireframe path than the other tests, because
    +# we have special handling for single cell wireframes.
    +# This corresponds to ticket '6105.
    +s.wireframe = 1
    +SetPlotOptions(s)
    +Test("subset_06")
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multi_curv2d.silo"))
    +
    +OpenDatabase(data_path("boxlib_test_data/2D/plt0822/Header"))
    +
    +AddPlot("Subset", "levels")
    +AddOperator("Isovolume")
    +DefineScalarExpression("vort", "curl(vel)")
    +iso_atts = IsovolumeAttributes()
    +iso_atts.variable = "vort"
    +iso_atts.lbound = -10000000
    +iso_atts.ubound = 0
    +SetOperatorOptions(iso_atts)
    +DrawPlots()
    +ResetView()
    +Test("subset_07")
    +
    +RemoveLastOperator()
    +s = SILRestriction()
    +mats = s.SetsInCategory("materials")
    +s.TurnOffSet(mats[0])
    +s.TurnOffSet(mats[1])
    +SetPlotSILRestriction(s)
    +Test("subset_08")
    +
    +ChangeActivePlotsVar("patches")
    +Test("subset_09")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("boxlib_test_data/2D/plt0822/Header"))
    +
    +OpenDatabase(data_path("silo_amr_test_data/amr2d_wmrgtree.silo"))
    +
    +AddPlot("Subset", "blocks(amr_mesh)")
    +DrawPlots()
    +
    +s = SubsetAttributes()
    +s.wireframe = 1
    +SetPlotOptions(s)
    +
    +Test("subset_10")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("silo_amr_test_data/amr2d_wmrgtree.silo"))
    +
    +TestSection("point mesh")
    +OpenDatabase(data_path("blueprint_v0.3.1_test_data/braid_3d_examples_json.root"))
    +AddPlot("Subset", "domains(points_mesh)")
    +
    +s = SubsetAttributes()
    +s.colorType = s.ColorBySingleColor
    +s.singleColor = (0, 170, 255, 255)
    +SetPlotOptions(s)
    +DrawPlots()
    +ResetView()
    +v = GetView3D()
    +v.viewNormal = (-0.605449, 0.469667, 0.642529)
    +v.viewUp = (0.169201, 0.864818, -0.472716)
    +SetView3D(v)
    +Test("subset_11")
    +
    +s.pointSizePixels = 5
    +SetPlotOptions(s)
    +Test("subset_12")
    +
    +
    +s.pointType = s.Tetrahedron
    +s.pointSize = 3
    +SetPlotOptions(s)
    +Test("subset_13")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("blueprint_v0.3.1_test_data/braid_3d_examples_json.root"))
    +
    +
    +OpenDatabase(data_path("vtk_test_data/ugrid_mixed_cells.vtk"))
    +
    +AddPlot("Subset", "mesh")
    +s = SubsetAttributes()
    +s.colorType = s.ColorBySingleColor
    +s.singleColor = (0, 170, 255, 255)
    +s.lineWidth = 3
    +s.pointType = s.Point
    +s.pointSizePixels = 2
    +SetPlotOptions(s)
    +DrawPlots()
    +ResetView()
    +
    +Test("subset_14")
    +
    +s.pointSizePixels = 5
    +SetPlotOptions(s)
    +Test("subset_15")
    +
    +s.pointType = s.Icosahedron
    +s.pointSize = 0.5
    +SetPlotOptions(s)
    +Test("subset_16")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("vtk_test_data/ugrid_mixed_cells.vtk"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_surface.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_surface.html new file mode 100644 index 000000000..851bfee78 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_surface.html @@ -0,0 +1,96 @@ + +Results for plots/surface.py + +

    Results of VisIt Regression Test - plots/surface

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    surface_010.000.00
    surface_020.000.00
    surface_030.000.00
    surface_040.000.00
    surface_050.000.00
    surface_060.000.00
    surface_070.000.00
    surface_080.000.00
    surface_090.000.00
    surface_100.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_surface_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_surface_py.html new file mode 100644 index 000000000..0f6a50741 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_surface_py.html @@ -0,0 +1,101 @@ +plots/surface.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  surface.py
    +#
    +#  Tests:      mesh      - 2D structured, single domain
    +#                        - 2D rectilinear, single domain
    +#              plots     - surface
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       August 22, 2003
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Wed Sep  3 17:21:44 PDT 2003
    +#    Add tests 4-10, testing more options of the Surface plot. 
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +
    +#Test default surface plot (surface on, wireframe off)
    +AddPlot("Surface", "u")
    +DrawPlots()
    +Test("surface_01")
    +
    +#Turn on  Wireframe
    +s = SurfaceAttributes()
    +s.wireframeFlag=1
    +SetPlotOptions(s)
    +Test("surface_02")
    +
    +#Turn off surface, leaving only wireframe
    +s.surfaceFlag=0
    +SetPlotOptions(s)
    +Test("surface_03")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("noise2d.silo"))
    +
    +AddPlot("Surface", "shepardglobal")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.25, -0.95, -0.2)
    +v.focus = (0, 0, 10)
    +v.viewUp = (0.04, 0.2, -0.98)
    +v.imageZoom = 1.001
    +SetView3D(v)
    +Test("surface_04")
    +
    +# Turn off lighting
    +s = SurfaceAttributes()
    +s.lightingFlag = 0
    +SetPlotOptions(s)
    +Test("surface_05")
    +
    +# Lighting on, wireframe on, log scaling 
    +s.lightingFlag = 1
    +s.wireframeFlag = 1
    +s.scaling = s.Log
    +SetPlotOptions(s)
    +Test("surface_06")
    +
    +# Skew scaling, skew factor = 100
    +s.scaling = s.Skew
    +s.skewFactor = 100
    +SetPlotOptions(s)
    +Test("surface_07")
    +
    +# Skew scaling, skew factor = 0.001
    +s.skewFactor = 0.001
    +SetPlotOptions(s)
    +Test("surface_08")
    +
    +# Solid color for surface
    +s.colorByZFlag = 0
    +s.surfaceColor = (0, 200, 122, 255)
    +SetPlotOptions(s)
    +Test("surface_09")
    +
    +# change wire color, style, turn off surface
    +s.wireframeColor = (0, 0, 255, 255)
    +s.surfaceFlag = 0
    +SetPlotOptions(s)
    +Test("surface_10")
    +
    +
    +
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_tensor.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_tensor.html new file mode 100644 index 000000000..9a0199936 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_tensor.html @@ -0,0 +1,84 @@ + +Results for plots/tensor.py + +

    Results of VisIt Regression Test - plots/tensor

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    tensor_010.000.00
    tensor_020.000.00
    tensor_030.000.00
    tensor_040.000.00
    tensor_050.000.00
    tensor_060.000.00
    tensor_070.000.00
    tensor_080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_tensor_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_tensor_py.html new file mode 100644 index 000000000..50f23d4c6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_tensor_py.html @@ -0,0 +1,161 @@ +plots/tensor.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  tensor.py
    +#
    +#  Tests:      tensor    - 3D rectilinear, single domain
    +#              plots     - tensor + some more exhibiting tensor functionality.
    +#
    +#  Defect ID:  '4165
    +#
    +#  Programmer: Hank Childs
    +#  Date:       December 1, 2003
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Fri May  7 08:12:41 PDT 2004
    +#    Re-enable test for decomposing tensors that now works.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state 
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +
    +AddPlot("Tensor", "grad_tensor")
    +t = TensorAttributes()
    +t.autoScale = 0
    +t.nTensors = 55
    +t.scale = 5
    +SetPlotOptions(t)
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.312459, 0.334641, 0.889036)
    +v.focus = (0, 0, 0)
    +v.viewUp = (0.198376, 0.938247, -0.283443)
    +v.viewAngle = 30
    +v.parallelScale = 17.3205
    +v.nearPlane = -34.641
    +v.farPlane = 34.641
    +v.imagePan = (0, 0)
    +v.imageZoom = 1.18209
    +v.perspective = 1
    +v.eyeAngle = 2
    +SetView3D(v)
    +
    +# Test the general tensor plot.
    +Test("tensor_01")
    +
    +AddOperator("Slice")
    +a = SliceAttributes()
    +a.project2d = 0
    +a.normal = (0.667, 0.333, -0.667)
    +SetOperatorOptions(a)
    +DrawPlots()
    +
    +# Test the interaction of the tensor plot with the slice operator.
    +Test("tensor_02")
    +
    +RemoveLastOperator()
    +
    +b = BoxAttributes()
    +b.minx = -2
    +b.maxx = 5
    +b.miny = -3
    +b.maxy = 0
    +b.minz = -8
    +b.maxz = -4
    +SetDefaultOperatorOptions(b)
    +AddOperator("Box")
    +
    +t.nTensors = 20
    +SetPlotOptions(t)
    +DrawPlots()
    +
    +# Test the interaction of the tensor plot with the box operator.
    +Test("tensor_03")
    +
    +DeleteAllPlots()
    +
    +
    +# Test decomposing tensors and creating vectors.  The decomposition of
    +# the XX, YY, and ZZ components of the tensor is the standard gradient --
    +# so if we subtract the gradient from it, we should get all zeros.
    +DefineVectorExpression("major_comps", "{ grad_tensor[0][0], grad_tensor[1][1], grad_tensor[2][2] }")
    +
    +DefineVectorExpression("diff", "major_comps-grad")
    +DefineScalarExpression("mag_diff", "magnitude(diff)")
    +
    +AddPlot("Pseudocolor", "mag_diff")
    +DrawPlots()
    +Test("tensor_04")
    +
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("det", "determinant(grad_tensor)")
    +AddPlot("Pseudocolor", "det")
    +p = PseudocolorAttributes()
    +p.maxFlag = 1
    +p.max = 0.4
    +SetPlotOptions(p)
    +t = ThresholdAttributes()
    +t.listedVarNames = ("det")
    +t.lowerBounds = (0.0)
    +SetDefaultOperatorOptions(t)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +v.viewNormal = (-0.568609, -0.669889, 0.477424)
    +v.focus = (0, 0, 0)
    +v.viewUp = (0.792201, -0.289591, 0.537172)
    +v.viewAngle = 30
    +v.parallelScale = 17.3205
    +v.nearPlane = -34.641
    +v.farPlane = 34.641
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +
    +Test("tensor_05")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("ident", "determinant(grad_tensor*inverse(grad_tensor))")
    +AddPlot("Pseudocolor", "ident")
    +DrawPlots()
    +
    +Test("tensor_06")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("trace", "trace(grad_tensor)")
    +AddPlot("Contour", "trace")
    +DrawPlots()
    +
    +Test("tensor_07")
    +
    +DeleteAllPlots()
    +DefineVectorExpression("ev", "eigenvalue(grad_tensor)")
    +AddPlot("Vector", "ev")
    +v = VectorAttributes()
    +v.autoScale = 0
    +v.scale = 6
    +v.nVectors = 55
    +SetPlotOptions(v)
    +DrawPlots()
    +
    +Test("tensor_08")
    +
    +
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_truecolor.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_truecolor.html new file mode 100644 index 000000000..1e6b1e8f6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_truecolor.html @@ -0,0 +1,42 @@ + +Results for plots/truecolor.py + +

    Results of VisIt Regression Test - plots/truecolor

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    truecolor_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_truecolor_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_truecolor_py.html new file mode 100644 index 000000000..5e0052404 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_truecolor_py.html @@ -0,0 +1,21 @@ +plots/truecolor.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  truecolor.py
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       June 29, 2005 
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(data_path("Image_test_data/manhattan.jpg"))
    +
    +
    +AddPlot("Truecolor","color");
    +DrawPlots()
    +
    +Test("truecolor_01")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_vector.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_vector.html new file mode 100644 index 000000000..d11b15d33 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_vector.html @@ -0,0 +1,158 @@ + +Results for plots/vector.py + +

    Results of VisIt Regression Test - plots/vector

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    vector_010.000.00
    vector_020.000.00
    vector_030.000.00
    vector_040.000.00
    vector_050.000.00
    vector_060.000.00
    vector_070.000.00
    vector_080.000.00
    vector_090.000.00
    vector_100.000.00
    vector_110.000.00
    vector_120.000.00
    vector_130.000.00
    vector_140.000.00
    vector_150.000.00
    vector_163.210.64
    vector_173.770.64
    vector_183.110.64
    vector_193.510.64
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_vector_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_vector_py.html new file mode 100644 index 000000000..b038fb86e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_vector_py.html @@ -0,0 +1,244 @@ +plots/vector.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  vector.py
    +#
    +#  Tests:      vector    - 3D rectilinear, unstructured single domain
    +#              plots     - vector, plus interactions with some operators.
    +#
    +#  Defect ID:  '4954
    +#
    +#  Programmer: Hank Childs
    +#  Date:       June 2, 2004
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Thu Jun 24 12:58:06 PDT 2004
    +#    Set the vector origin explicitly for some cases because I changed the
    +#    default to Tail.
    +#
    +#    Jeremy Meredith, Tue Jul  8 12:54:58 EDT 2008
    +#    Added test for new limit to original cells/nodes only.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state 
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Tue Nov 29 10:41:39 PST 2022
    +#    Replace obsolte 'colorByMag' vector att with 'colorByMagnitude'.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Vector", "vel")
    +vector_atts = VectorAttributes()
    +vector_atts.autoScale = 0
    +SetPlotOptions(vector_atts)
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.453335, 0.442704, 0.773628)
    +v.focus = (0, 0, 0)
    +v.viewUp = (0.256972, 0.895999, -0.362148)
    +v.viewAngle = 30
    +v.parallelScale = 17.3205
    +v.nearPlane = -34.641
    +v.farPlane = 34.641
    +v.imagePan = (0, 0)
    +v.imageZoom = 1.3354
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, 0)
    +SetView3D(v)
    +
    +Test("vector_01")
    +
    +#
    +# Test that we can thin the vector field correctly.
    +#
    +vector_atts.vectorOrigin = vector_atts.Middle
    +vector_atts.nVectors = 1005
    +SetPlotOptions(vector_atts)
    +Test("vector_02")
    +
    +vector_atts.nVectors = 50
    +SetPlotOptions(vector_atts)
    +Test("vector_03")
    +
    +vector_atts.useStride = 1
    +vector_atts.stride = 5
    +SetPlotOptions(vector_atts)
    +Test("vector_04")
    +
    +vector_atts.stride = 1
    +SetPlotOptions(vector_atts)
    +Test("vector_05")
    +
    +vector_atts.stride = 50
    +SetPlotOptions(vector_atts)
    +Test("vector_06")
    +
    +#
    +# Test some rendering portions of the vector plot.
    +#
    +vector_atts.useStride = 0
    +vector_atts.nVectors = 400
    +vector_atts.scale = 0.5
    +SetPlotOptions(vector_atts)
    +Test("vector_07")
    +
    +vector_atts.headOn = 0
    +SetPlotOptions(vector_atts)
    +Test("vector_08")
    +
    +vector_atts.headOn = 1
    +vector_atts.colorByMagnitude = 0
    +vector_atts.vectorColor = (255, 0, 255, 255)
    +SetPlotOptions(vector_atts)
    +Test("vector_09")
    +
    +
    +#
    +# Test zonal vectors.
    +#
    +vector_atts.colorByMagnitude = 1
    +SetPlotOptions(vector_atts)
    +ChangeActivePlotsVar("disp")
    +Test("vector_10")
    +
    +
    +#
    +# Test that we can have other plots in the same window as the vector plot.
    +#
    +DefineScalarExpression("mag", "magnitude(disp)")
    +AddPlot("Pseudocolor", "mag")
    +AddOperator("Isovolume")
    +iso_atts = IsovolumeAttributes()
    +iso_atts.lbound = 3
    +SetOperatorOptions(iso_atts)
    +DrawPlots()
    +Test("vector_11")
    +
    +
    +#
    +# Test that vector plots still work when restricted to a slice, etc.
    +#
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +DefineVectorExpression("v1", "{ vel[0]*coord(quadmesh3d)[0], vel[1]*coord(quadmesh3d)[1], vel[2]*coord(quadmesh3d)[2] }")
    +DefineScalarExpression("mag2", "magnitude(v1)")
    +
    +AddPlot("Vector", "v1")
    +vector_atts = VectorAttributes()
    +vector_atts.autoScale = 0
    +SetPlotOptions(vector_atts)
    +DrawPlots()
    +
    +v.viewNormal = (-0.450822, 0.819923, -0.352824)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (0.868253, 0.311093, -0.386468)
    +v.viewAngle = 30
    +v.parallelScale = 0.866025
    +v.nearPlane = -1.73205
    +v.farPlane = 1.73205
    +v.imagePan = (0, 0)
    +v.imageZoom = 1.3354
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, 0)
    +SetView3D(v)
    +Test("vector_12")
    +
    +iso_surf_atts = IsosurfaceAttributes()
    +iso_surf_atts.variable = "mag2"
    +iso_surf_atts.contourMethod = iso_surf_atts.Value
    +iso_surf_atts.contourValue = (0.2)
    +SetDefaultOperatorOptions(iso_surf_atts)
    +AddOperator("Isosurface")
    +DrawPlots()
    +Test("vector_13")
    +
    +RemoveLastOperator()
    +
    +slice_atts = SliceAttributes()
    +slice_atts.originType = slice_atts.Point
    +slice_atts.originPoint = (0.5, 0.5, 0.5)
    +slice_atts.normal = (1, 1, 1)
    +SetDefaultOperatorOptions(slice_atts)
    +AddOperator("Slice")
    +DrawPlots()
    +Test("vector_14")
    +
    +slice_atts.project2d = 0
    +slice_atts.normal = (1, -0.5, 0.5)
    +SetOperatorOptions(slice_atts)
    +v.viewNormal = (-0.00395109, 0.999884, -0.0147199)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (0.987418, 0.00157403, -0.158122)
    +v.viewAngle = 30
    +v.parallelScale = 0.866025
    +v.nearPlane = -1.73205
    +v.farPlane = 1.73205
    +v.imagePan = (0, 0)
    +v.imageZoom = 1.3354
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, 0)
    +SetView3D(v)
    +
    +Test("vector_15")
    +
    +#
    +# Test the "limit vectors to original node/cell" option
    +#
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +DefineVectorExpression("cvel","recenter(vel)")
    +AddPlot("Vector", "vel", 1, 0)
    +AddPlot("Boundary", "mat1", 1, 0)
    +AddPlot("Mesh", "quadmesh2d", 1, 0)
    +SetActivePlots(0)
    +vec=VectorAttributes()
    +vec.useStride=1
    +vec.stride=1
    +vec.scale=0.1
    +v = GetView2D()
    +v.windowCoords=(0,.3,1,1.3)
    +SetView2D(v)
    +SetPlotOptions(vec)
    +TurnMaterialsOff(("3","7","8"))
    +DrawPlots()
    +
    +vec.origOnly = 0
    +SetPlotOptions(vec)
    +Test("vector_16")
    +
    +vec.origOnly = 1
    +SetPlotOptions(vec)
    +Test("vector_17")
    +
    +ChangeActivePlotsVar("cvel")
    +
    +vec.origOnly = 0
    +SetPlotOptions(vec)
    +Test("vector_18")
    +
    +vec.origOnly = 1
    +SetPlotOptions(vec)
    +Test("vector_19")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_volumePlot.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_volumePlot.html new file mode 100644 index 000000000..dc96c83a2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_volumePlot.html @@ -0,0 +1,231 @@ + +Results for plots/volumePlot.py + +

    Results of VisIt Regression Test - plots/volumePlot

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Volume Plot color control points
    volumePlot_volume_colors_00.000.00
    volumePlot_volume_colors_10.000.00
    volumePlot_volume_colors_20.000.00
    volumePlot_volume_colors_30.000.00
    volumeGaussian_010.000.00
    volumeAspect_010.000.00
    volumeOpacity_010.000.00
    volumeOpacity_020.000.00
    volumeOpacity_030.000.00
    volumeOpacity_040.000.00
    volumeOpacity_050.000.00
    vol_commandRecorded0.000.00
    volumeScaling_010.000.00
    volumeScaling_020.000.00
    volumeScaling_030.000.00
    volumeScaling_040.000.00
    volumeScaling_050.000.00
    volumeScaling_060.000.00
    volumeScaling_070.000.00
    volumeScaling_080.000.00
    volumeScaling_090.000.00
    volumeScaling_100.000.00
    volumeScaling_110.000.00
    volumeScaling_120.000.00
    volumeSampling_010.000.00
    volumeSampling_020.000.00
    volumeSampling_030.000.00
    opacityAttenuation_010.000.00
    opacityAttenuation_020.000.00
    graidentLighting_000.000.00
    graidentLighting_010.000.00
    graidentLighting_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_volumePlot_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_volumePlot_py.html new file mode 100644 index 000000000..e5cb99ab2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plots_volumePlot_py.html @@ -0,0 +1,663 @@ +plots/volumePlot.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  volumePlot.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, one domain
    +#              plots     - volume
    +#              operators - none
    +#              selection - no
    +#
    +#  Programmer: Kathleen Bonnell
    +#  Date:       March 4, 2005
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Fri Oct 14 10:12:06 PDT 2005
    +#    Added InitAnnotationsLegendOn and TestVolumeOpacity per '6670.
    +#
    +#    Hank Childs, Fri May 26 10:11:52 PDT 2006
    +#    Add test for extremely high aspect ratio meshes.  ['7250]
    +#
    +#    Brad Whitlock, Wed Mar 14 17:18:05 PST 2007
    +#    Added tests for color control points and gaussian control points.
    +#
    +#    Brad Whitlock, Thu Mar 12 09:17:57 PDT 2009
    +#    I changed freeformFlag to opacityMode to reflect changes to the plot
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Hank Childs, Sun Aug 29 16:07:56 PDT 2010
    +#    Change Log10 to Log, to reflect change in naming.
    +#
    +#    Brad Whitlock, Thu May 10 15:21:51 PDT 2018
    +#    Add test case for sampling types.
    +#
    +#    Alister Maguire, Tue Feb  5 14:17:13 PST 2019
    +#    Updated the aspect test to use a larger multiplier and no shading for
    +#    better visibility. Updated the scaling test to not use shading (again
    +#    for better visibility).
    +#
    +#    Alister Maguire, Mon Mar 25 11:19:54 PDT 2019
    +#    Added an opacity test that changes the opacity variable.
    +#
    +#    Alister Maguire, Wed Jun  5 11:01:31 PDT 2019
    +#    Added opacity attenuation test.
    +#
    +#    Alister Maguire, Fri Mar 20 15:36:37 PDT 2020
    +#    Added gradient lighting reduction test.
    +#
    +#    Kathleen Biagas, Wed May 25, 2022
    +#    Added test for command-recorded volume atts.
    +#
    +#    Kathleen Biagas, Fri June 3, 2022
    +#    Renamed TestVolumeColorControlPoints to volume_colors, use new
    +#    TestAutoName funcationality. Modified TestVolumeSampling to set the
    +#    ColorControlPoints directly from the retrieved color table rather than
    +#    calling AddControlPoints (it is now a quick recipe).
    +#
    +# ----------------------------------------------------------------------------
    +
    +def InitAnnotations():
    +    # Turn off all annotation
    +    TurnOffAllAnnotations()
    +
    +def InitAnnotationsLegendOn():
    +    # Turn off all annotation
    +    a = AnnotationAttributes()
    +    TurnOffAllAnnotations(a)
    +    a.legendInfoFlag = 1
    +    SetAnnotationAttributes(a)
    +
    +def TestVolumeScaling():
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Volume", "t")
    +    volAtts = VolumeAttributes()
    +    volAtts.lightingFlag = 0
    +    SetPlotOptions(volAtts)
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (1, 0, 0)
    +    SetView3D(v)
    +
    +    Test("volumeScaling_01")
    +
    +    volAtts.scaling = volAtts.Log
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_02")
    +
    +    volAtts.scaling = volAtts.Skew
    +    volAtts.skewFactor = 0.0001
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_03")
    +
    +    volAtts.skewFactor = 1000
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_04")
    +
    +    volAtts.scaling = volAtts.Linear
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_05")
    +
    +    volAtts.scaling = volAtts.Log
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_06")
    +
    +    volAtts.scaling = volAtts.Skew
    +    volAtts.skewFactor = 0.0001
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_07")
    +
    +    volAtts.skewFactor = 1000
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_08")
    +
    +    volAtts.rendererType = volAtts.Composite
    +    volAtts.scaling = volAtts.Linear
    +    volAtts.lightingFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_09")
    +
    +    volAtts.scaling = volAtts.Log
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_10")
    +
    +    volAtts.scaling = volAtts.Skew
    +    volAtts.skewFactor = 0.0001
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_11")
    +
    +    volAtts.skewFactor = 1000
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_12")
    +
    +    DeleteAllPlots()
    +
    +def TestVolumeOpacity():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Volume", "hardyglobal")
    +    volAtts = VolumeAttributes()
    +    SetPlotOptions(volAtts)
    +    DrawPlots()
    +    ResetView()
    +    # default opacity
    +    Test("volumeOpacity_01")
    +
    +    # setting opacity via individual index and value
    +    for i in range(150):
    +        volAtts.SetFreeformOpacity(i, 0)
    +
    +    SetPlotOptions(volAtts)
    +    Test("volumeOpacity_02")
    +
    +    # setting opacity via creation of a tuple
    +    opac1 = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 240, 248, 255, 248, 240, 232, 224, 216, 208, 200, 192, 184, 176, 168, 160, 152, 144, 136, 128, 120, 112, 104, 96, 88, 80, 72, 64, 56, 48, 40, 32, 24, 16, 8, 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 240, 248, 255, 248, 240, 232, 224, 216, 208, 200, 192, 184, 176, 168, 160, 152, 144, 136, 128, 120, 112, 104, 96, 88, 80, 72, 64, 56, 48, 40, 32, 24, 16, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
    +
    +    volAtts.SetFreeformOpacity(*opac1)
    +    SetPlotOptions(volAtts)
    +    Test("volumeOpacity_03")
    +
    +    # setting opacity via creation of a list
    +    opac2 = []
    +    for j in range(32):
    +        opac2 = opac2 + [j*8]
    +    for j in range(32):
    +        opac2 = opac2 + [255-(j*8)]
    +    for j in range(128):
    +        opac2 = opac2 + [0]
    +    for j in range(32):
    +        opac2 = opac2 + [j*8]
    +    for j in range(32):
    +        opac2 = opac2 + [255-(j*8)]
    +
    +    volAtts.SetFreeformOpacity(opac2)
    +    SetPlotOptions(volAtts)
    +    Test("volumeOpacity_04")
    +
    +    #
    +    # Make sure we can change out opacity variable.
    +    #
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    AddPlot("Volume", "dz")
    +    volAtts = VolumeAttributes()
    +    volAtts.opacityVariable = "v"
    +    volAtts.lightingFlag = 0
    +    SetPlotOptions(volAtts)
    +    DrawPlots()
    +    Test("volumeOpacity_05")
    +
    +    DeleteAllPlots()
    +
    +
    +def TestOpacityAttenuation():
    +
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    ResetView()
    +
    +    #
    +    # First, test the ray caster without reduced attenuation.
    +    #
    +    AddPlot("Volume", "hardyglobal")
    +    volAtts = VolumeAttributes()
    +    volAtts.lightingFlag = 0
    +    volAtts.opacityAttenuation = 1
    +    volAtts.rendererType = volAtts.Composite
    +    SetPlotOptions(volAtts)
    +    DrawPlots()
    +    Test("opacityAttenuation_01")
    +
    +    #
    +    # Now reduce attenutation.
    +    #
    +    volAtts = VolumeAttributes()
    +    volAtts.lightingFlag = 0
    +    volAtts.rendererType = volAtts.Composite
    +    volAtts.opacityAttenuation = .12
    +    SetPlotOptions(volAtts)
    +    DrawPlots()
    +    Test("opacityAttenuation_02")
    +
    +    DeleteAllPlots()
    +
    +
    +def TestVolumeAspect():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    orig_atts = VolumeAttributes()
    +    new_atts  = VolumeAttributes()
    +    new_atts.lightingFlag = 0
    +
    +    AddPlot("Volume", "hardyglobal")
    +    SetPlotOptions(new_atts)
    +
    +    DefineVectorExpression("disp", "{0,0,-0.9*coord(Mesh)[2]}")
    +    AddOperator("Displace")
    +    d = DisplaceAttributes()
    +    d.variable = "disp"
    +    SetOperatorOptions(d)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (-0.324974, 0.839345, 0.435765)
    +    SetView3D(v)
    +    Test("volumeAspect_01")
    +    DeleteAllPlots()
    +    SetPlotOptions(orig_atts)
    +
    +def volume_colors():
    +    """Volume Plot color control points"""
    +    # the next comment and similar below bracket code to be 'literalincluded' in quickrecipes.rst
    +    # removeControlPoints {
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Volume", "hardyglobal")
    +
    +    # Modify colors. The default color table has 5 control points. Delete
    +    # all but 2 of them and then change their colors.
    +    v = VolumeAttributes()
    +    v.colorControlPoints.RemoveControlPoints(4)
    +    v.colorControlPoints.RemoveControlPoints(3)
    +    v.colorControlPoints.RemoveControlPoints(2)
    +    v.colorControlPoints.GetControlPoints(0).colors = (255,0,0,255)
    +    v.colorControlPoints.GetControlPoints(0).position = 0.
    +    v.colorControlPoints.GetControlPoints(1).colors = (0,0,255,255)
    +    v.colorControlPoints.GetControlPoints(1).position = 1.
    +    SetPlotOptions(v)
    +    DrawPlots()
    +    ResetView()
    +    # removeControlPoints }
    +    TestAutoName()
    +
    +    # addControlPoints {
    +    # there are a default of 5 control points, add 3 more and change
    +    # positions of original  so everything is evenly spaced
    +    v = VolumeAttributes()
    +    v.colorControlPoints.GetControlPoints(0).position = 0
    +    v.colorControlPoints.GetControlPoints(1).position = 0.142857
    +    v.colorControlPoints.GetControlPoints(2).position = 0.285714
    +    v.colorControlPoints.GetControlPoints(3).position = 0.428571
    +    v.colorControlPoints.GetControlPoints(4).position = 0.571429
    +    tmp = ColorControlPoint()
    +    tmp.colors = (255,255,0,255)
    +    tmp.position = 0.714286
    +    v.GetColorControlPoints().AddControlPoints(tmp)
    +    tmp.colors = (0,255,0,255)
    +    tmp.position = 0.857143
    +    v.GetColorControlPoints().AddControlPoints(tmp)
    +    tmp.colors = (0,255,255,255)
    +    tmp.position = 1
    +    v.GetColorControlPoints().AddControlPoints(tmp)
    +    SetPlotOptions(v)
    +    # addControlPoints }
    +    TestAutoName()
    +
    +    # setNumControlPoints {
    +    v = VolumeAttributes()
    +    # there are a default of 5, this resizes to 6
    +    v.colorControlPoints.SetNumControlPoints(6)
    +    v.colorControlPoints.GetControlPoints(4).position = 0.92
    +    # GetControlPoints(5) will cause a segfault without the call to SetNumControlPoints
    +    v.colorControlPoints.GetControlPoints(5).position = 1
    +    v.colorControlPoints.GetControlPoints(5).colors = (128,0,128,255)
    +    SetPlotOptions(v)
    +    # setNumControlPoints }
    +    TestAutoName()
    +
    +    # Start over with the colors.
    +    v.GetColorControlPoints().ClearControlPoints()
    +    tmp = ColorControlPoint()
    +    npts = 10
    +    for i in range(npts):
    +        t = 0.
    +        if i < npts/2:
    +            t = float(i) / float(npts/2 - 1)
    +            r = 255
    +            g = int(t * 255.)
    +            b = 0
    +        else:
    +            t = 1. - (float(i-(npts/2)) / float(npts/2 - 1))
    +            r = int((1-t) * 255.)
    +            g = int((1-t) * 255.)
    +            b = int(t * 255.)
    +        tmp.colors = (r,g,b,255)
    +        tmp.position = float(i) / float(npts-1)
    +        v.GetColorControlPoints().AddControlPoints(tmp)
    +    SetPlotOptions(v)
    +    TestAutoName()
    +    DeleteAllPlots()
    +
    +def TestVolumeGaussianControlPoints():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Volume", "hardyglobal")
    +
    +    v = VolumeAttributes()
    +    v.opacityMode = v.GaussianMode
    +    v.opacityControlPoints.ClearControlPoints()
    +    tmp = GaussianControlPoint()
    +    # Design gaussians
    +    tmp.x = 0.818182
    +    tmp.height = 0.787879
    +    tmp.width = 0.147059
    +    tmp.xBias = 0
    +    tmp.yBias = 0
    +    v.GetOpacityControlPoints().AddControlPoints(tmp)
    +
    +    tmp.x = 0.203209
    +    tmp.height = 0.590909
    +    tmp.width = 0.0588235
    +    tmp.xBias = 0.0026738
    +    tmp.yBias = 2
    +    v.GetOpacityControlPoints().AddControlPoints(tmp)
    +
    +    tmp.x = 0.47861
    +    tmp.height = 0.19697
    +    tmp.width = 0.0721925
    +    tmp.xBias = -0.00802138
    +    tmp.yBias = 0
    +    v.GetOpacityControlPoints().AddControlPoints(tmp)
    +
    +    SetPlotOptions(v)
    +    DrawPlots()
    +    ResetView()
    +    Test("volumeGaussian_01")
    +    DeleteAllPlots()
    +
    +def TestVolumeSampling():
    +    # setFromColorTable {
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    AddPlot("Volume", "hardyglobal")
    +    v = VolumeAttributes()
    +    v.lightingFlag = 0
    +    v.rendererType = v.Composite
    +    v.sampling = v.KernelBased
    +    ct = GetColorTable("hot_desaturated")
    +    v.SetColorControlPoints(ct)
    +    SetPlotOptions(v)
    +    # setFromColorTable }
    +
    +    view = GetView3D()
    +    view.viewNormal = (-1, 0, 0)
    +    view.focus = (0, 0, 0)
    +    view.viewUp = (0, 1, 0)
    +    view.viewAngle = 30
    +    view.parallelScale = 17.3205
    +    view.nearPlane = -34.641
    +    view.farPlane = 34.641
    +    view.imagePan = (0.0720459, -0.00108509)
    +    view.imageZoom = 1.85429
    +    view.perspective = 1
    +    view.eyeAngle = 2
    +    view.centerOfRotationSet = 0
    +    view.centerOfRotation = (0, 0, 0)
    +    view.axis3DScaleFlag = 0
    +    view.axis3DScales = (1, 1, 1)
    +    view.shear = (0, 0, 1)
    +    view.windowValid = 1
    +    DrawPlots()
    +    SetView3D(view)
    +    Test("volumeSampling_01")
    +
    +    v.sampling = v.Rasterization
    +    SetPlotOptions(v)
    +    Test("volumeSampling_02")
    +
    +    v.sampling = v.Trilinear
    +    SetPlotOptions(v)
    +    Test("volumeSampling_03")
    +
    +    DeleteAllPlots()
    +
    +
    +def TestGradientLightingReduction():
    +
    +    view = GetView3D()
    +    view.viewNormal = (0.746662961825451, 0.1647201021100829, 0.6444856161303283)
    +    SetView3D(view)
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    AddPlot("Volume", "v")
    +    DrawPlots()
    +
    +    #
    +    # Trilinear ray casting used to have very harsh results with
    +    # gradient lighting reduction. Let's make sure they're better
    +    # now.
    +    #
    +    v = VolumeAttributes()
    +    v.lightingFlag = 1
    +    v.rendererType = v.Composite
    +    v.sampling     = v.Trilinear
    +
    +    v.lowGradientLightingReduction = v.Lower
    +    SetPlotOptions(v)
    +    Test("graidentLighting_00")
    +
    +    v.lowGradientLightingReduction = v.Medium
    +    SetPlotOptions(v)
    +    Test("graidentLighting_01")
    +
    +    v.lowGradientLightingReduction = v.Higher
    +    SetPlotOptions(v)
    +    Test("graidentLighting_02")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("globe.silo"))
    +
    +def TestCommandRecording():
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    AddPlot("Volume", "u")
    +    DrawPlots()
    +    view3D = GetView3D()
    +    view3D.viewNormal = (0.0173089, 0.999712, 0.0165968)
    +    view3D.viewUp = (0.230674, 0.0121587, -0.972955)
    +    SetView3D(view3D)
    +
    +    # Setting up of Volume plot atts from command recording
    +    VolumeAtts = VolumeAttributes()
    +    VolumeAtts.osprayShadowsEnabledFlag = 0
    +    VolumeAtts.osprayUseGridAcceleratorFlag = 0
    +    VolumeAtts.osprayPreIntegrationFlag = 0
    +    VolumeAtts.ospraySingleShadeFlag = 0
    +    VolumeAtts.osprayOneSidedLightingFlag = 0
    +    VolumeAtts.osprayAoTransparencyEnabledFlag = 0
    +    VolumeAtts.ospraySpp = 1
    +    VolumeAtts.osprayAoSamples = 0
    +    VolumeAtts.osprayAoDistance = 100000
    +    VolumeAtts.osprayMinContribution = 0.001
    +    VolumeAtts.legendFlag = 1
    +    VolumeAtts.lightingFlag = 1
    +    VolumeAtts.colorControlPoints.SetNumControlPoints(14)
    +    VolumeAtts.colorControlPoints.GetControlPoints(0).colors = (0, 0, 255, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(0).position = 0
    +    VolumeAtts.colorControlPoints.GetControlPoints(1).colors = (0, 255, 255, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(1).position = 0.0769231
    +    VolumeAtts.colorControlPoints.GetControlPoints(2).colors = (0, 255, 0, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(2).position = 0.153846
    +    VolumeAtts.colorControlPoints.GetControlPoints(3).colors = (255, 255, 0, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(3).position = 0.230769
    +    VolumeAtts.colorControlPoints.GetControlPoints(4).colors = (255, 255, 0, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(4).position = 0.307692
    +    VolumeAtts.colorControlPoints.GetControlPoints(5).colors = (0, 255, 0, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(5).position = 0.384615
    +    VolumeAtts.colorControlPoints.GetControlPoints(6).colors = (0, 255, 255, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(6).position = 0.461538
    +    VolumeAtts.colorControlPoints.GetControlPoints(7).colors = (0, 0, 255, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(7).position = 0.538462
    +    VolumeAtts.colorControlPoints.GetControlPoints(8).colors = (255, 0, 255, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(8).position = 0.615385
    +    VolumeAtts.colorControlPoints.GetControlPoints(9).colors = (0, 0, 0, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(9).position = 0.692308
    +    VolumeAtts.colorControlPoints.GetControlPoints(10).colors = (255, 255, 255, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(10).position = 0.769231
    +    VolumeAtts.colorControlPoints.GetControlPoints(11).colors = (255, 0, 0, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(11).position = 0.846154
    +    VolumeAtts.colorControlPoints.GetControlPoints(12).colors = (255, 255, 0, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(12).position = 0.923077
    +    VolumeAtts.colorControlPoints.GetControlPoints(13).colors = (255, 0, 0, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(13).position = 1
    +    VolumeAtts.colorControlPoints.smoothing = VolumeAtts.colorControlPoints.Linear
    +    VolumeAtts.colorControlPoints.equalSpacingFlag = 0
    +    VolumeAtts.colorControlPoints.discreteFlag = 0
    +    VolumeAtts.colorControlPoints.categoryName = ""
    +    VolumeAtts.opacityAttenuation = 1
    +    VolumeAtts.opacityMode = VolumeAtts.GaussianMode
    +    VolumeAtts.opacityControlPoints.SetNumControlPoints(20)
    +    VolumeAtts.opacityControlPoints.GetControlPoints(0).x = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(0).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(0).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(0).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(0).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(1).x = 0.075
    +    VolumeAtts.opacityControlPoints.GetControlPoints(1).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(1).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(1).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(1).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(2).x = 0.125
    +    VolumeAtts.opacityControlPoints.GetControlPoints(2).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(2).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(2).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(2).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(3).x = 0.175
    +    VolumeAtts.opacityControlPoints.GetControlPoints(3).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(3).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(3).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(3).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(4).x = 0.225
    +    VolumeAtts.opacityControlPoints.GetControlPoints(4).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(4).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(4).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(4).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(5).x = 0.275
    +    VolumeAtts.opacityControlPoints.GetControlPoints(5).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(5).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(5).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(5).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(6).x = 0.325
    +    VolumeAtts.opacityControlPoints.GetControlPoints(6).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(6).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(6).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(6).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(7).x = 0.375
    +    VolumeAtts.opacityControlPoints.GetControlPoints(7).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(7).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(7).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(7).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(8).x = 0.425
    +    VolumeAtts.opacityControlPoints.GetControlPoints(8).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(8).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(8).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(8).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(9).x = 0.475
    +    VolumeAtts.opacityControlPoints.GetControlPoints(9).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(9).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(9).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(9).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(10).x = 0.525
    +    VolumeAtts.opacityControlPoints.GetControlPoints(10).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(10).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(10).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(10).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(11).x = 0.575
    +    VolumeAtts.opacityControlPoints.GetControlPoints(11).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(11).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(11).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(11).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(12).x = 0.625
    +    VolumeAtts.opacityControlPoints.GetControlPoints(12).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(12).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(12).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(12).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(13).x = 0.675
    +    VolumeAtts.opacityControlPoints.GetControlPoints(13).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(13).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(13).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(13).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(14).x = 0.725
    +    VolumeAtts.opacityControlPoints.GetControlPoints(14).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(14).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(14).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(14).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(15).x = 0.775
    +    VolumeAtts.opacityControlPoints.GetControlPoints(15).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(15).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(15).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(15).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(16).x = 0.825
    +    VolumeAtts.opacityControlPoints.GetControlPoints(16).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(16).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(16).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(16).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(17).x = 0.875
    +    VolumeAtts.opacityControlPoints.GetControlPoints(17).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(17).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(17).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(17).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(18).x = 0.925
    +    VolumeAtts.opacityControlPoints.GetControlPoints(18).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(18).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(18).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(18).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(19).x = 0.975
    +    VolumeAtts.opacityControlPoints.GetControlPoints(19).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(19).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(19).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(19).yBias = 0
    +    VolumeAtts.resampleFlag = 1
    +    VolumeAtts.resampleTarget = 1000000
    +    VolumeAtts.opacityVariable = "default"
    +    VolumeAtts.compactVariable = "default"
    +    VolumeAtts.freeformOpacity = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255)
    +    VolumeAtts.useColorVarMin = 0
    +    VolumeAtts.colorVarMin = 0
    +    VolumeAtts.useColorVarMax = 0
    +    VolumeAtts.colorVarMax = 0
    +    VolumeAtts.useOpacityVarMin = 0
    +    VolumeAtts.opacityVarMin = 0
    +    VolumeAtts.useOpacityVarMax = 0
    +    VolumeAtts.opacityVarMax = 0
    +    VolumeAtts.smoothData = 0
    +    VolumeAtts.samplesPerRay = 500
    +    VolumeAtts.rendererType = VolumeAtts.Serial
    +    VolumeAtts.gradientType = VolumeAtts.SobelOperator
    +    VolumeAtts.scaling = VolumeAtts.Linear
    +    VolumeAtts.skewFactor = 1
    +    VolumeAtts.limitsMode = VolumeAtts.OriginalData
    +    VolumeAtts.sampling = VolumeAtts.Rasterization
    +    VolumeAtts.rendererSamples = 3
    +    VolumeAtts.lowGradientLightingReduction = VolumeAtts.Lower
    +    VolumeAtts.lowGradientLightingClampFlag = 0
    +    VolumeAtts.lowGradientLightingClampValue = 1
    +    VolumeAtts.materialProperties = (0.4, 0.75, 0, 15)
    +    SetPlotOptions(VolumeAtts)
    +
    +    Test("vol_commandRecorded")
    +    ResetView()
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("globe.silo"))
    +
    +
    +#FIXME: For some reason, if you render using the ray caster,
    +#       attempting to render using the default renderer afterwards
    +#       will result in a blank test result. I have not been able
    +#       to reproduce this outside of the test suite. I created
    +#       issue #3608 to track this.
    +
    +InitAnnotationsLegendOn()
    +volume_colors()
    +TestVolumeGaussianControlPoints()
    +TestVolumeAspect()
    +TestVolumeOpacity()
    +TestCommandRecording()
    +InitAnnotations()
    +TestVolumeScaling()
    +TestVolumeSampling()
    +TestOpacityAttenuation()
    +TestGradientLightingReduction()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plugins_databasesVsInstall.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plugins_databasesVsInstall.html new file mode 100644 index 000000000..129de249a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plugins_databasesVsInstall.html @@ -0,0 +1,40 @@ + +Results for plugins/databasesVsInstall.py + +

    Results of VisIt Regression Test - plugins/databasesVsInstall

    + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    databasesVsInstall0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plugins_databasesVsInstall_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plugins_databasesVsInstall_py.html new file mode 100644 index 000000000..f305ef4b4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plugins_databasesVsInstall_py.html @@ -0,0 +1,31 @@ +plugins/databasesVsInstall.py
    # ----------------------------------------------------------------------------
    +#  CLASSES:    nightly
    +#
    +#  Test Case:  databasesVsInstall.py 
    +#
    +#  Tests:      Building database plugins against an installed version of VisIt
    +#              
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       November 8, 2018 
    +#
    +#  Modifications:
    +#    Eric Brugger, Wed Jun 26 09:32:06 PDT 2019
    +#    Removed the ccm readler.
    +#
    +#    Kathleen Biagas, Tue Nov 26 10:23:31 PST 2019
    +#    Modified to pass a 'test-this' list instead of a 'skip-this' list.
    +#    Plugins chosen based on third-party dependence, ability to auto-regen
    +#    their CMakeLists.txt and tests currently available to run against the
    +#    version built (to be added at a future time).
    +#
    +# ----------------------------------------------------------------------------
    +
    +Source(tests_path("plugins", "pluginVsInstallHelpers"))
    +
    +do_plugin_type("databases", ["BOV", "Blueprint", "CGNS", "Cale", "Claw", "Exodus", "FITS", "H5Part", "MFEM", "Mili", "SAMRAI", "VTK"])
    +# for future use
    +#do_tests("database", ["bov.py", "blueprint.py", "CGNS.py", "Cale.py", "claw.py", "exodus.py", "FITS.py", "h5part.py", "mfem.py", "mili.py", "samrai.py", "vtk.py"])
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plugins_operatorsVsInstall.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plugins_operatorsVsInstall.html new file mode 100644 index 000000000..f51b26d31 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plugins_operatorsVsInstall.html @@ -0,0 +1,40 @@ + +Results for plugins/operatorsVsInstall.py + +

    Results of VisIt Regression Test - plugins/operatorsVsInstall

    + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    operatorsVsInstall0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plugins_operatorsVsInstall_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plugins_operatorsVsInstall_py.html new file mode 100644 index 000000000..1ca3a38ac --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plugins_operatorsVsInstall_py.html @@ -0,0 +1,29 @@ +plugins/operatorsVsInstall.py
    # ----------------------------------------------------------------------------
    +#  CLASSES:    nightly
    +#
    +#  Test Case:  operatorsVsInstall.py 
    +#
    +#  Tests:      Building operator plugins against an installed version of VisIt
    +#              
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       November 8, 2018 
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Tue Nov 26 10:23:31 PST 2019
    +#    Modified to pass a 'test-this' list instead of a 'skip-this' list.
    +#    Plugins chosen based on external dependence, expression creation, or a
    +#    a simple operator, the ability to auto-regen their CMakeLists.txt and
    +#    tests currently available to run against the version built (to be added
    +#    at a future time).
    +#
    +# ----------------------------------------------------------------------------
    +
    +Source(tests_path("plugins", "pluginVsInstallHelpers"))
    +
    +do_plugin_type("operators", ["CartographicProjection", "CracksClipper", "RadialResample", "Slice", "Threshold"])
    +# for future use
    +#do_tests("operators", ["cart_proj.py", "cracksclipper.py", "radial_resample.py", "slice.py", "threshold.py"])
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plugins_plotsVsInstall.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plugins_plotsVsInstall.html new file mode 100644 index 000000000..93e58718d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plugins_plotsVsInstall.html @@ -0,0 +1,40 @@ + +Results for plugins/plotsVsInstall.py + +

    Results of VisIt Regression Test - plugins/plotsVsInstall

    + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    plotsVsInstall0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plugins_plotsVsInstall_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plugins_plotsVsInstall_py.html new file mode 100644 index 000000000..dc3303793 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/plugins_plotsVsInstall_py.html @@ -0,0 +1,29 @@ +plugins/plotsVsInstall.py
    # ----------------------------------------------------------------------------
    +#  CLASSES:    nightly
    +#
    +#  Test Case:  plotsVsInstall.py 
    +#
    +#  Tests:      Building plot plugins against an installed version of VisIt
    +#              
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       November 8, 2018 
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Wed Nov  8 09:41:41 PST 2023
    +#    Temporarily remove Volume from being tested. We need to use the VTK 9
    +#    version, but it's CMakeLists.txt file currently cannot be
    +#    auto-regenerated. See issue #19044.
    +#    Add Molecule in it's place.
    +#
    +# ----------------------------------------------------------------------------
    +
    +Source(tests_path("plugins", "pluginVsInstallHelpers"))
    +
    +do_plugin_type("plots", ["Contour", "Label", "Molecule", "Tensor"])
    +
    +# for future use
    +#do_tests("plots", ["contour.py", "label.py", "tensor.py", "ray_trace.py or volumePlot.py"])
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_avg_value.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_avg_value.html new file mode 100644 index 000000000..11bb35491 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_avg_value.html @@ -0,0 +1,58 @@ + +Results for queries/avg_value.py + +

    Results of VisIt Regression Test - queries/avg_value

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    avg_value_010 modifications totalling 0 lines
    avg_value_021 modifications totalling 1 lines
    avg_value_030 modifications totalling 0 lines
    avg_value_040 modifications totalling 0 lines
    avg_value_050.000.00
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_avg_value_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_avg_value_py.html new file mode 100644 index 000000000..d6e19191f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_avg_value_py.html @@ -0,0 +1,63 @@ +queries/avg_value.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  avg_value.py
    +#  Tests:      queries     - average value 
    +#
    +#  Programmer: Hank Childs
    +#  Date:       May 11, 2011
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#    individually to match current baseline results.
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOffAllAnnotations()
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "t")
    +DrawPlots()
    +Query("Average Value")
    +t = GetQueryOutputString()
    +TestText("avg_value_01", t)
    +
    +DeleteAllPlots()
    +AddPlot("Vector", "vel")
    +DrawPlots()
    +Query("Average Value")
    +t = GetQueryOutputString()
    +TestText("avg_value_02", t)
    +
    +DefineVectorExpression("vel2", "{1, t, 0}")
    +ChangeActivePlotsVar("vel2")
    +Query("Average Value")
    +t = GetQueryOutputString()
    +TestText("avg_value_03", t)
    +
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +AddPlot("Pseudocolor", "pressure")
    +DrawPlots()
    +Query("Average Value")
    +t = GetQueryOutputString()
    +TestText("avg_value_04", t)
    +
    +c = CurveAttributes()
    +c.curveColorSource = c.Custom
    +c.curveColor = (255, 0, 0, 255)
    +SetDefaultPlotOptions(c)
    +
    +QueryOverTime("Average Value")
    +SetActiveWindow(2)
    +TurnOffAllAnnotations()
    +c = CurveAttributes()
    +c.curveColorSource = c.Custom
    +c.curveColor = (255, 0, 0, 255)
    +SetPlotOptions(c)
    +Test("avg_value_05")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_bestfitline.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_bestfitline.html new file mode 100644 index 000000000..b62fd23ff --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_bestfitline.html @@ -0,0 +1,100 @@ + +Results for queries/bestfitline.py + +

    Results of VisIt Regression Test - queries/bestfitline

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    bestline_1_000 modifications totalling 0 lines
    bestline_2_000.000.00
    bestline_2_010 modifications totalling 0 lines
    bestline_2_020.000.00
    bestline_2_030 modifications totalling 0 lines
    bestline_2_040.000.00
    bestline_2_050 modifications totalling 0 lines
    bestline_3_0021.980.65
    bestline_3_010.000.00
    bestline_3_0230.650.18
    bestline_3_0331.790.32
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_bestfitline_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_bestfitline_py.html new file mode 100644 index 000000000..a38e08e58 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_bestfitline_py.html @@ -0,0 +1,204 @@ +queries/bestfitline.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  bestfit.py
    +#
    +#  Tests:      queries     - "Best Fit Line"
    +#              expressions - distance_to_best_fit_line
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Nov 18 16:43:42 PST 2005
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Tue Mar 14 07:54:20 PST 2006
    +#    Changed how full-frame is turned on
    +#    
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Matt Larsen Wed May 09 08:31:00 PST 2018
    +#    Adding view reset so image actual shows a line 
    +# ----------------------------------------------------------------------------
    +
    +import math
    +
    +def writeDataSet():
    +    nts = 100
    +    nsamples = 100
    +    x0 = -5.
    +    y0 = -5.
    +    x1 = 5.
    +    y1 = 5.
    +
    +    names = []
    +    coefficients = []
    +    for i in range(nts):
    +        t = float(i) / float(nts - 1)
    +        y_left = t * y1 + (1. - t) * y0
    +        y_right = t * y0 + (1. - t) * y1
    +        filename = data_path("curve_test_data/line%04d.curve") % i
    +        names = names + [filename]
    +        try:
    +            f = open(filename, "w")
    +
    +            f.write("#TIME %g\n" % t)
    +            f.write("#line\n")
    +
    +            m = (y_right - y_left) / (x1 - x0)
    +            angle = t * 3.14159 * 2.
    +            b  = math.sin(angle)
    +
    +            #print "Y = %gX + %g" % (m, b)
    +            coefficients = coefficients + [(m, b)]
    +
    +            for j in range(nsamples):
    +                t2 = float(j) / float(nsamples - 1)
    +                x = t2 * x1 + (1. - t2) * x0
    +                y = t2 * y_right + (1. - t2) * y_left + b
    +                f.write("%g %g\n" % (x, y))
    +
    +            f.close()
    +        except:
    +            break
    +
    +    return (names, coefficients)
    +
    +def removeFiles(ds):
    +    for d in ds:
    +        try:
    +            os.unlink(d)
    +        except:
    +            print("Could not remove ", d)
    +
    +#
    +# Test best fit line of known lines from Curve plots
    +#
    +def test1():
    +    data = writeDataSet()
    +    filenames = data[0]
    +    coefficients = data[1]
    +
    +    OpenDatabase(data_path("curve_test_data/line*.curve database"))
    +
    +    AddPlot("Curve", "line")
    +    DrawPlots()
    +
    +    s = ""
    +    try:
    +        for state in range(0, len(coefficients), 2):
    +            SetTimeSliderState(state)
    +            Query("Best Fit Line")
    +            values = GetQueryOutputValue()
    +            s = s + "Original (m=%g, b=%g)\t\t\tCalculated (m=%g, b=%g, r=%g)\n" %\
    +            (coefficients[state][0], coefficients[state][1], values[0], \
    +            values[1], values[2])
    +    except:
    +        pass
    +
    +    TestText("bestline_1_00", s)
    +    removeFiles(data[0])
    +    DeleteAllPlots()
    +
    +#
    +# Test best fit line of 2D Scatter plots
    +#
    +def test2():
    +    # Do Scatter plot of d vs d since we know that it will make Y=X
    +    OpenDatabase(silo_data_path("multi_curv2d.silo"))
    +
    +    AddPlot("Scatter", "d")
    +    s = ScatterAttributes()
    +    s.var2 = "d"
    +    s.var2Role = s.Coordinate1
    +    s.var3Role = s.NONE
    +    s.var4Role = s.NONE
    +    s.scaleCube = 0
    +    s.pointSizePixels = 5
    +    SetPlotOptions(s)
    +    DrawPlots()
    +
    +    # Turn on Fullframe
    +    v = GetView2D()
    +    v.fullFrameActivationMode = v.On
    +    SetView2D(v)
    +    Test("bestline_2_00")
    +    Query("Best Fit Line")
    +    TestText("bestline_2_01", GetQueryOutputString())
    +
    +    # Check the best fit with another known line eq.
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    DefineScalarExpression("t", "zoneid(curvmesh2d)")
    +    DefineScalarExpression("line", "t * 0.33333 + 10.")
    +    AddPlot("Scatter", "t")
    +    s.var2 = "line"
    +    SetPlotOptions(s)
    +    DrawPlots()
    +    ResetView()
    +    Test("bestline_2_02")
    +    Query("Best Fit Line")
    +    TestText("bestline_2_03", GetQueryOutputString())
    +
    +    # Make the scatter plot be d vs. dpu
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("multi_curv2d.silo"))
    +
    +    AddPlot("Scatter", "d")
    +    DefineScalarExpression("dpu", "d + u / 3.")
    +    s.var2 = "dpu"
    +    SetPlotOptions(s)
    +    DrawPlots()
    +    Test("bestline_2_04")
    +    Query("Best Fit Line")
    +    TestText("bestline_2_05", GetQueryOutputString())
    +
    +    return s
    +
    +#
    +# Test distance to best fit line expression. The colors should appear
    +# to be banded about the best fit line.
    +#
    +def test3(s):
    +    # We still have the Scatter plot from the previous test. Color it
    +    # by the distance from the best fit line.
    +    DefineScalarExpression("DBFL", "distance_to_best_fit_line(d, dpu)")
    +    DefineScalarExpression("DBFL2", "distance_to_best_fit_line2(d, dpu)")
    +    s.var3 = "DBFL"
    +    s.var3Role = s.Color
    +    s.colorTableName = "difference"
    +    s.pointSizePixels = 10
    +    SetPlotOptions(s)
    +    Test("bestline_3_00")
    +
    +    s.var3 = "DBFL2"
    +    SetPlotOptions(s)
    +    Test("bestline_3_01")
    +
    +    DefineScalarExpression("dpus", "d + u / 2. + sin(d * 5.) * 2.")
    +    DefineScalarExpression("DBFL3", "distance_to_best_fit_line(d, dpus)")
    +    DefineScalarExpression("DBFL4", "distance_to_best_fit_line2(d, dpus)")
    +    s.var2 = "dpus"
    +    s.var3 = "DBFL3"
    +    SetPlotOptions(s)
    +    Test("bestline_3_02")
    +
    +    s.var3 = "DBFL4"
    +    SetPlotOptions(s)
    +    Test("bestline_3_03")
    +
    +    return
    +
    +
    +def main():
    +    test1()
    +    s = test2()
    +    test3(s)
    +
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_casetest.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_casetest.html new file mode 100644 index 000000000..f29dade9a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_casetest.html @@ -0,0 +1,40 @@ + +Results for queries/casetest.py + +

    Results of VisIt Regression Test - queries/casetest

    + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    CaseQueryRect2dTest0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_casetest_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_casetest_py.html new file mode 100644 index 000000000..cc126a859 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_casetest_py.html @@ -0,0 +1,69 @@ +queries/casetest.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  casetest.py #
    +#  Tests:      queries     - Database
    +#
    +#  Description: Tests case insensitive name dispatch of queries.
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Mon Sep 19 15:09:02 PDT 2011 
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def QueryRect2d():
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +    s = ""
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("2D area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", "actual")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", "original")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", "original")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", "original")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("revolved volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("2D AREA")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("mINmAX", "actual")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("spatialextents", "original")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NUMNODES", "original")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NUMZONES", "original")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    TestText("CaseQueryRect2dTest", s)
    +    DeleteAllPlots()
    +
    +
    +def QueryMain():
    +    QueryRect2d()
    +
    +# Call the main function
    +TurnOnAllAnnotations()
    +QueryMain()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_centroid.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_centroid.html new file mode 100644 index 000000000..33a8d4b62 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_centroid.html @@ -0,0 +1,88 @@ + +Results for queries/centroid.py + +

    Results of VisIt Regression Test - queries/centroid

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    centroid_010 modifications totalling 0 lines
    centroid_020 modifications totalling 0 lines
    centroid_030 modifications totalling 0 lines
    centroid_040 modifications totalling 0 lines
    centroid_050 modifications totalling 0 lines
    centroid_060 modifications totalling 0 lines
    centroid_070 modifications totalling 0 lines
    centroid_080 modifications totalling 0 lines
    centroid_090 modifications totalling 0 lines
    centroid_100 modifications totalling 0 lines
    centroid_110 modifications totalling 0 lines
    centroid_120 modifications totalling 0 lines
    centroid_130 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_centroid_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_centroid_py.html new file mode 100644 index 000000000..f09b07e35 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_centroid_py.html @@ -0,0 +1,130 @@ +queries/centroid.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  centroid.py
    +#  Tests:      queries     - centroid and moment of inertia.
    +#
    +#  Defect ID:  VisIt00006273, '6588
    +#
    +#  Programmer: Hank Childs
    +#  Date:       May 19, 2005
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Thu Sep 15 16:33:48 PDT 2005
    +#    Added tests for centroids of surfaces.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state 
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Test that we can do an l2norm of a degenerate ultra file.
    +TurnOnAllAnnotations()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Mesh", "mesh1")
    +DrawPlots()
    +
    +Query("Moment of Inertia")
    +text = GetQueryOutputString()
    +# The answer should be ~167,547 along the diagonals.  But we are off ~10%
    +# because of mesh granularity.
    +TestText("centroid_01", text)
    +
    +# The sphere is perfectly symmetric, so we should get the same answer,
    +# even if we rotate it.
    +AddOperator("Transform")
    +trans = TransformAttributes()
    +trans.doRotate = 1
    +trans.rotateAxis = (0.707, 0, -0.707)
    +trans.rotateAmount = 150
    +SetOperatorOptions(trans)
    +DrawPlots()
    +Query("Moment of Inertia")
    +text = GetQueryOutputString()
    +TestText("centroid_02", text)
    +
    +Query("Centroid")
    +text = GetQueryOutputString()
    +TestText("centroid_03", text)
    +
    +# Translate and see that the centroid moves.
    +trans.doTranslate = 1
    +trans.translateX = 0.5
    +SetOperatorOptions(trans)
    +
    +Query("Centroid")
    +text = GetQueryOutputString()
    +TestText("centroid_04", text)
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +Query("Centroid")
    +text = GetQueryOutputString()
    +TestText("centroid_05", text)
    +
    +Query("Moment of Inertia")
    +text = GetQueryOutputString()
    +TestText("centroid_06", text)
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Mesh", "quadmesh2d")
    +DrawPlots()
    +
    +Query("Centroid")
    +text = GetQueryOutputString()
    +TestText("centroid_07", text)
    +
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +Query("Centroid")
    +text = GetQueryOutputString()
    +TestText("centroid_08", text)
    +
    +AddOperator("Revolve")
    +DrawPlots()
    +
    +Query("Centroid")
    +text = GetQueryOutputString()
    +TestText("centroid_09", text)
    +Query("Moment of Inertia")
    +text = GetQueryOutputString()
    +TestText("centroid_10", text)
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Mesh", "quadmesh3d")
    +DrawPlots()
    +
    +Query("Centroid")
    +text = GetQueryOutputString()
    +TestText("centroid_11", text)
    +Query("Moment of Inertia")
    +text = GetQueryOutputString()
    +TestText("centroid_12", text)
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Elevate")
    +DrawPlots()
    +
    +Query("Centroid")
    +text = GetQueryOutputString()
    +TestText("centroid_13", text)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_conncomp.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_conncomp.html new file mode 100644 index 000000000..2de3f097f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_conncomp.html @@ -0,0 +1,162 @@ + +Results for queries/conncomp.py + +

    Results of VisIt Regression Test - queries/conncomp

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    conncomp_1d_lbl0.000.00
    conncomp_1d_count0 modifications totalling 0 lines
    conncomp_1d_centroid0 modifications totalling 0 lines
    conncomp_1d_length0 modifications totalling 0 lines
    conncomp_1d_var_sum0 modifications totalling 0 lines
    conncomp_1d_weighted_var_sum0 modifications totalling 0 lines
    conncomp_1d_summary0 modifications totalling 0 lines
    conncomp_2d_lbl0.000.00
    conncomp_2d_count0 modifications totalling 0 lines
    conncomp_2d_centroid0 modifications totalling 0 lines
    conncomp_2d_area0 modifications totalling 0 lines
    conncomp_2d_var_sum0 modifications totalling 0 lines
    conncomp_2d_weighted_var_sum0 modifications totalling 0 lines
    conncomp_2d_summary0 modifications totalling 0 lines
    conncomp_3d_t10.000.00
    conncomp_3d_count_t10 modifications totalling 0 lines
    conncomp_3d_centroid_t10 modifications totalling 0 lines
    conncomp_3d_volume_t10 modifications totalling 0 lines
    conncomp_3d_summary_t10 modifications totalling 0 lines
    conncomp_3d_t20.000.00
    conncomp_3d_count_t20 modifications totalling 0 lines
    conncomp_3d_centroid_t20 modifications totalling 0 lines
    conncomp_3d_volume_t20 modifications totalling 0 lines
    conncomp_3d_summary_t20 modifications totalling 0 lines
    conncomp_3d_t30.000.00
    conncomp_3d_count_t30 modifications totalling 0 lines
    conncomp_3d_centroid_t30 modifications totalling 0 lines
    conncomp_3d_volume_t30 modifications totalling 0 lines
    conncomp_3d_summary_t30 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_conncomp_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_conncomp_py.html new file mode 100644 index 000000000..f1f9da83c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_conncomp_py.html @@ -0,0 +1,240 @@ +queries/conncomp.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  conncomp.py
    +#  Tests:      queries     - connected components related 
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       February 22, 2006
    +#
    +#  Modifications:
    +#    Cyrus Harrison, Thu Aug 23 09:42:43 PDT 2007
    +#    Turned off ghost neighbors optimization for exodus balls dataset.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Wed Jun 15 14:21:10 PDT 2011
    +#    Added tests for line meshes.
    +#
    +#    Kathleen Biagas, Fri Feb  7 08:00:38 PST 2014
    +#    Changed sil selection for Exodus.
    +# ----------------------------------------------------------------------------
    +
    +import json
    +
    +OpenDatabase(silo_data_path("rect2d.silo"), 0)
    +
    +
    +DefineScalarExpression("_ccl_test_1d", "conn_components(quadmesh2d)")
    +
    +#Add an iso surface
    +AddPlot("Pseudocolor", "_ccl_test_1d")
    +AddOperator("Isosurface")
    +
    +isatts = IsosurfaceAttributes()
    +isatts .variable = "d"
    +SetOperatorOptions(isatts)
    +
    +#Add Defer Exp Op
    +AddOperator("DeferExpression")
    +DeferExpressionAtts = DeferExpressionAttributes()
    +DeferExpressionAtts.exprs = ("_ccl_test_1d")
    +SetOperatorOptions(DeferExpressionAtts)
    +
    +DrawPlots()
    +
    +Test("conncomp_1d_lbl")
    +
    +ChangeActivePlotsVar("d")
    +
    +Query("Number of Connected Components")
    +res = GetQueryOutputString()
    +TestText("conncomp_1d_count",res)
    +
    +Query("Connected Component Centroids")
    +res = GetQueryOutputString()
    +TestText("conncomp_1d_centroid",res)
    +
    +Query("Connected Component Length")
    +res = GetQueryOutputString()
    +TestText("conncomp_1d_length",res)
    +
    +Query("Connected Component Variable Sum")
    +res = GetQueryOutputString()
    +TestText("conncomp_1d_var_sum",res)
    +
    +Query("Connected Component Weighted Variable Sum")
    +res = GetQueryOutputString()
    +TestText("conncomp_1d_weighted_var_sum",res)
    +
    +Query("Connected Components Summary")
    +res = GetQueryOutputObject()
    +TestText("conncomp_1d_summary",json.dumps(res,indent=2))
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("multi_rect2d.silo"), 0)
    +
    +DefineScalarExpression("_rand_test_2d", "rand(mesh1)")
    +DefineScalarExpression("_ccl_test_2d", "conn_components(mesh1)")
    +
    +AddPlot("Pseudocolor", "_ccl_test_2d")
    +# Add isovolume op to create components
    +AddOperator("Isovolume")
    +IsovolumeAtts = IsovolumeAttributes()
    +IsovolumeAtts.lbound = -1e+37
    +IsovolumeAtts.ubound = 0.3
    +IsovolumeAtts.variable = "_rand_test_2d"
    +SetOperatorOptions(IsovolumeAtts)
    +
    +#Add Defer Exp Op
    +AddOperator("DeferExpression")
    +DeferExpressionAtts = DeferExpressionAttributes()
    +DeferExpressionAtts.exprs = ("_ccl_test_2d")
    +SetOperatorOptions(DeferExpressionAtts)
    +
    +DrawPlots()
    +
    +Test("conncomp_2d_lbl")
    +
    +# test the connected components related queries
    +Query("Number of Connected Components")
    +res = GetQueryOutputString()
    +TestText("conncomp_2d_count",res)
    +
    +Query("Connected Component Centroids")
    +res = GetQueryOutputString()
    +TestText("conncomp_2d_centroid",res)
    +
    +Query("Connected Component Area")
    +res = GetQueryOutputString()
    +TestText("conncomp_2d_area",res)
    +
    +Query("Connected Component Variable Sum")
    +res = GetQueryOutputString()
    +TestText("conncomp_2d_var_sum",res)
    +
    +Query("Connected Component Weighted Variable Sum")
    +res = GetQueryOutputString()
    +TestText("conncomp_2d_weighted_var_sum",res)
    +
    +Query("Connected Components Summary")
    +res = GetQueryOutputObject()
    +TestText("conncomp_2d_summary",json.dumps(res,indent=2))
    +
    +DeleteAllPlots()
    +
    +DefineScalarExpression("_ccl_test_3d", "conn_components(Mesh,1)")
    +# exodus test
    +OpenDatabase(data_path("exodus_test_data/balls.e.4.* database"))
    +
    +
    +AddPlot("Pseudocolor", "_ccl_test_3d")
    +silr = SILRestriction()
    +silr.TurnOnAll()
    +for silSet in (5,6,7):
    +    silr.TurnOffSet(silSet)
    +SetPlotSILRestriction(silr)
    +
    +AddOperator("Displace")
    +DisplaceAtts = DisplaceAttributes()
    +DisplaceAtts.factor = 1
    +DisplaceAtts.variable = "DISPL"
    +SetOperatorOptions(DisplaceAtts)
    +DisplaceAtts = DisplaceAttributes()
    +DisplaceAtts.factor = 1
    +DisplaceAtts.variable = "DISPL"
    +SetOperatorOptions(DisplaceAtts)
    +
    +AddOperator("Transform")
    +t = TransformAttributes()
    +t.doScale = 1
    +t.scaleX = 100
    +t.scaleY = 100
    +t.scaleZ = 100
    +SetOperatorOptions(t)
    +
    +d = DeferExpressionAttributes()
    +d.exprs = ("_ccl_test_3d")
    +SetDefaultOperatorOptions(d)
    +AddOperator("DeferExpression")
    +
    +
    +v=GetView3D()
    +v.viewNormal=(.1,.1, 0)
    +v.viewUp=(0, 0, 1 )
    +SetView3D(v)
    +
    +DrawPlots()
    +
    +# test as displacement evolves
    +Test("conncomp_3d_t1");
    +
    +# test the connected components related queries
    +Query("Number of Connected Components")
    +res = GetQueryOutputString()
    +TestText("conncomp_3d_count_t1",res)
    +
    +Query("Connected Component Centroids")
    +res = GetQueryOutputString()
    +TestText("conncomp_3d_centroid_t1",res)
    +
    +
    +Query("Connected Component Volume")
    +res = GetQueryOutputString()
    +TestText("conncomp_3d_volume_t1",res)
    +
    +Query("Connected Components Summary")
    +res = GetQueryOutputObject()
    +TestText("conncomp_3d_summary_t1",json.dumps(res,indent=2))
    +
    +
    +SetTimeSliderState(11);
    +# test as displacement evolves
    +Test("conncomp_3d_t2");
    +
    +Query("Number of Connected Components")
    +res = GetQueryOutputString()
    +TestText("conncomp_3d_count_t2",res)
    +
    +Query("Connected Component Centroids")
    +res = GetQueryOutputString()
    +TestText("conncomp_3d_centroid_t2",res)
    +
    +
    +Query("Connected Component Volume")
    +res = GetQueryOutputString()
    +TestText("conncomp_3d_volume_t2",res)
    +
    +Query("Connected Components Summary")
    +res = GetQueryOutputObject()
    +TestText("conncomp_3d_summary_t2",json.dumps(res,indent=2))
    +
    +
    +SetTimeSliderState(20);
    +Test("conncomp_3d_t3");
    +
    +Query("Number of Connected Components")
    +res = GetQueryOutputString()
    +TestText("conncomp_3d_count_t3",res)
    +
    +Query("Connected Component Centroids")
    +res = GetQueryOutputString()
    +TestText("conncomp_3d_centroid_t3",res)
    +
    +
    +Query("Connected Component Volume")
    +res = GetQueryOutputString()
    +TestText("conncomp_3d_volume_t3",res)
    +
    +
    +Query("Connected Components Summary")
    +res = GetQueryOutputObject()
    +TestText("conncomp_3d_summary_t3",json.dumps(res,indent=2))
    +
    +
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_consistencyChecks.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_consistencyChecks.html new file mode 100644 index 000000000..54dc9b52c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_consistencyChecks.html @@ -0,0 +1,64 @@ + +Results for queries/consistencyChecks.py + +

    Results of VisIt Regression Test - queries/consistencyChecks

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    consistencyChecks_000.000.00
    consistencyChecks_010.000.00
    consistencyChecks_020.000.00
    consistencyChecks_030.000.00
    consistencyChecks_040 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_consistencyChecks_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_consistencyChecks_py.html new file mode 100644 index 000000000..cbfce2c45 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_consistencyChecks_py.html @@ -0,0 +1,114 @@ +queries/consistencyChecks.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  pickQueryCombo.py #
    +#  Tests:      queries     - Pick, Zone Center, Node Coords,
    +#              operators   - OnionPeel
    +#
    +#  Notes:
    +#     Tests consistency between Pick/Query/OnionPeel when using the same
    +#     node/zone ids for each.
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       September 9, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +testNum = 0
    +
    +def PickCurv2D():
    +    # Ensures that Pick/Query/OnionPeel operator correctly and consistently
    +    # with the ghost data from this ds, which affects the numbering of zones
    +    global testNum
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +    AddPlot("Mesh", "curvmesh2d")
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +    zoneID = 482
    +    #do a pick before Onion peel
    +    p1 = PickByZone(zoneID)
    +    nodeID = p1["incident_nodes"][0]
    +    #Add Onion peel of same zone, see if it ends up under the pick letter
    +    AddOperator("OnionPeel")
    +    op = OnionPeelAttributes()
    +    op.index = zoneID
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    v = GetView2D()
    +    v.windowCoords =(1.33, 4.89, 0.18, 3.43)
    +    SetView2D(v)
    +    Test("consistencyChecks_%02d"%testNum)
    +    testNum = testNum+1
    +
    +    ClearPickPoints()
    +
    +    #Now add a Boundary plot, do the same pick, see if get same results.
    +    AddPlot("Boundary", "mat1")
    +    DrawPlots()
    +    p2 = PickByZone(zoneID)
    +    s = ""
    +    if p2['point'] == p1['point']:
    +        s = s + "PickByZone on Pseudcolor and Boundary plots yielded same point.\n"
    +    else:
    +        s = s + "PickByZone on Pseudcolor and Boundary plots DID NOT yield same point.\n"
    +    SetQueryOutputToObject()
    +    q = Query("Zone Center", element=zoneID)
    +    if (q['center'] == p1['point']):
    +        s = s + "Zone Center query returned same coords as Pick.\n"
    +    else:
    +        s = s + "Zone Center query returned different coords than Pick.\n"
    +
    +    #Now feed the zone center as coordinates into a pick:
    +    p3 = ZonePick(coord = q['center'])
    +    s = s + "Pick using coord from Zone Center query returned zone: %d, (should be: %d).\n" %(p3['zone_id'], zoneID)
    +
    +    Test("consistencyChecks_%02d"%testNum)
    +    testNum = testNum+1
    +    ClearPickPoints()
    +
    +    # Now do the same type of tests for Node Pick
    +    DeleteActivePlots()
    +    SetActivePlots(1)
    +    RemoveLastOperator()
    +
    +    p1n = PickByNode(nodeID)
    +    AddOperator("OnionPeel")
    +    op.seedType = op.SeedNode
    +    op.index = nodeID
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    Test("consistencyChecks_%02d"%testNum)
    +    testNum = testNum+1
    +
    +    ClearPickPoints()
    +    #Now add a Boundary plot, do the same pick, see if get same results.
    +    AddPlot("Boundary", "mat1")
    +    DrawPlots()
    +
    +    p2n = PickByNode(nodeID)
    +    if p2n['point'] == p1n['point']:
    +        s = s + "PickByNode on Pseudcolor and Boundary plots yielded same point.\n"
    +    else:
    +        s = s + "PickByNode on Pseudcolor and Boundary plots DID NOT yield same point.\n"
    +    qn = Query("Node Coords", element=nodeID)
    +    if (qn['coord'] == p1n['point']):
    +        s = s + "Node Coords query returned same coords as Pick.\n"
    +    else:
    +        s = s + "Node Coords query returned different coords than Pick.\n"
    +
    +    p3n = NodePick(coord = qn['coord'])
    +    s = s + "Pick using coord from Node Coord query returned node: %d, (should be: %d).\n" %(p3n['node_id'], nodeID)
    +
    +    Test("consistencyChecks_%02d"%testNum)
    +    testNum = testNum+1
    +
    +    TestText("consistencyChecks_%02d"%testNum, s)
    +    testNum = testNum+1
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("curv2d.silo"))
    +
    +PickCurv2D()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_curvature.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_curvature.html new file mode 100644 index 000000000..b7d847654 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_curvature.html @@ -0,0 +1,54 @@ + +Results for queries/curvature.py + +

    Results of VisIt Regression Test - queries/curvature

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    curvature_010 modifications totalling 0 lines
    curvature_020.000.00
    curvature_030 modifications totalling 0 lines
    curvature_040 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_curvature_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_curvature_py.html new file mode 100644 index 000000000..c1ee6c0ad --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_curvature_py.html @@ -0,0 +1,63 @@ +queries/curvature.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  curvature.py
    +#  Tests:      queries     - curvature 
    +#
    +#  Defect ID:  VisIt00006746
    +#
    +#  Programmer: Hank Childs
    +#  Date:       May 16, 2006
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +DefineScalarExpression("curvature", "mean_curvature(quadmesh3d)")
    +AddPlot("Pseudocolor", "curvature")
    +AddOperator("Isosurface")
    +i = IsosurfaceAttributes()
    +i.contourMethod = i.Value
    +i.contourValue = 0.5
    +i.variable = "d"
    +SetOperatorOptions(i)
    +DrawPlots()
    +
    +error = GetLastError()
    +TestText("curvature_01", error)
    +
    +d = DeferExpressionAttributes()
    +d.exprs = ("curvature")
    +AddOperator("DeferExpression")
    +SetOperatorOptions(d)
    +DrawPlots()
    +Test("curvature_02")
    +
    +Query("Weighted Variable Sum")
    +s = GetQueryOutputValue()
    +
    +Query("3D surface area")
    +a = GetQueryOutputValue()
    +
    +text = "The average mean curvature (manual) is %f\n" %(s/a)
    +TestText("curvature_03", text)
    +
    +DeleteAllPlots()
    +AddPlot("Contour", "d")
    +c = ContourAttributes()
    +c.contourMethod = c.Value
    +c.contourValue = 0.5
    +SetPlotOptions(c)
    +DrawPlots()
    +
    +Query("Average Mean Curvature")
    +t = GetQueryOutputString()
    +TestText("curvature_04", t)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_database.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_database.html new file mode 100644 index 000000000..9c0580edd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_database.html @@ -0,0 +1,100 @@ + +Results for queries/database.py + +

    Results of VisIt Regression Test - queries/database

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    QueryBigSil0 modifications totalling 0 lines
    QueryContours0 modifications totalling 0 lines
    QueryCurv2d0 modifications totalling 0 lines
    QueryCurv3d0 modifications totalling 0 lines
    QueryGlobe0 modifications totalling 0 lines
    QueryMultiUcd3d0 modifications totalling 0 lines
    QueryNoise0 modifications totalling 0 lines
    QueryRect2d0 modifications totalling 0 lines
    QuerySid970 modifications totalling 0 lines
    QueryMinMaxCurve0 modifications totalling 0 lines
    QuerySAMRAI0 modifications totalling 0 lines
    QueryCurves0 modifications totalling 0 lines
    QueryHistogram0 modifications totalling 0 lines
    QueryGlobalId0 modifications totalling 0 lines
    QueryZR_RZ0 modifications totalling 0 lines
    QueryArbPoly0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_database_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_database_py.html new file mode 100644 index 000000000..7b8698364 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_database_py.html @@ -0,0 +1,1083 @@ +queries/database.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  database.py #
    +#  Tests:      queries     - Database
    +#
    +#  Defect ID:  '6356
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       July 11, 2003 
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from FilledBoundary plots.
    +#
    +#    Kathleen Bonnell, Wed Oct 29 16:06:23 PST 2003 
    +#    Add PlotMinMax query. 
    +#
    +#    Kathleen Bonnell, Wed Dec  3 11:05:51 PST 2003 
    +#    Add SpatialExtents query. 
    +#
    +#    Kathleen Bonnell, Wed Dec  3 13:20:04 PST 2003 
    +#    Test SpatialExtents query with 'actual' and 'original' as args. 
    +#
    +#    Kathleen Bonnell, Mon Dec 22 16:46:27 PST 2003 
    +#    Added test for SAMRAI data.
    +#
    +#    Kathleen Bonnell, Fri Feb  6 10:56:25 PST 2004 
    +#    Test MinMax query with 'actual' and 'original' as args. 
    +#
    +#    Kathleen Bonnell, Fri Feb 20 17:05:04 PST 2004 
    +#    Added NumNodes and NumZones tests.
    +#
    +#    Kathleen Bonnell, Fri Mar  5 15:41:54 PST 2004 
    +#    Added QueryCurves tests, testing "Area Between Curves" queries. 
    +#
    +#    Jeremy Meredith, Mon Apr  5 14:19:47 PDT 2004
    +#    The Curv2D query was not getting boundary data.  I added code to remove
    +#    a couple materials so that it reflected the actual usage of this query.
    +#
    +#    Hank Childs, Tue Apr 13 12:58:04 PDT 2004
    +#    Rename surface area query.
    +#
    +#    Kathleen Bonnell, Tue Apr 20 09:42:30 PDT 2004 
    +#    Added QueryMultiWindow. 
    +#
    +#    Kathleen Bonnell, Wed May 19 16:31:04 PDT 2004
    +#    Moved QueryMultiWindow to its own .py file. 
    +#
    +#    Kathleen Bonnell, Thu Aug 12 13:32:35 PDT 2004 
    +#    Added QueryHistogram. 
    +#
    +#    Kathleen Bonnell, Wed Dec 29 07:57:35 PST 2004 
    +#    Added QueryGlobalId. 
    +#
    +#    Hank Childs, Wed Feb 16 07:34:07 PST 2005
    +#    Rename variables that have unsupported characters.
    +#
    +#    Hank Childs, Fri Jul  1 08:53:41 PDT 2005
    +#    Test getting a vector from the spatial extents query. ['6356]
    +#
    +#    Kathleen Bonnell, Wed Aug 10 15:07:50 PDT 2005 
    +#    Test Weighted Variable Sum Query with a postive-values variable and
    +#    a negative-values variable.  ('6453).
    +#
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +#    Kathleen Bonnell, Wed Feb  8 11:08:01 PST 2006 
    +#    Added QueryZR_RZ. 
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state 
    +#    behavior when an operator is added.
    +#
    +#    Cyrus Harrison, Mon Aug 16 15:51:46 PDT 2010
    +#    Added test for var & wvar sum of an array variable.
    +#
    +#    Kathleen Biagas, Thu Jul 14 10:44:55 PDT 2011
    +#    Use named arguments. 
    +#
    +#    Kathleen Biagas, Thu Sep 11 11:40:25 PDT 2014
    +#    Add QueryArbPoly.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin(("SAMRAI", "Silo", "VTK"))
    +
    +def QueryRect2d():
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    Query("Compactness")
    +    s = GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Eulerian")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("2D area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    AddOperator("Transform")
    +    transform = TransformAttributes()
    +    transform.doScale = 1
    +    transform.scaleX = 10
    +    SetOperatorOptions(transform)
    +    DrawPlots()
    +
    +    Query("SpatialExtents", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    Query("SpatialExtents", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    DeleteAllPlots()
    +
    +    DefineArrayExpression("array_var","array_compose(d,p,d,p)")
    +    AddPlot("Label","array_var")
    +    DrawPlots()
    +    Query("Variable Sum")
    +    s += GetQueryOutputString() + "\n"
    +    Query("Weighted Variable Sum")
    +    s += GetQueryOutputString() + "\n"
    +
    +    TestText("QueryRect2d", s)
    +    DeleteAllPlots()
    +
    +
    +def QueryMultiUcd3d():
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    Query("Eulerian")
    +    s = GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    v = GetQueryOutputValue()
    +    estr = "Exts from vector are [%f-%f, %f-%f, %f-%f]\n" %(v[0], v[1], v[2], v[3], v[4], v[5])
    +    s = s + estr
    +    Query("NumNodes", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    silr= SILRestriction();
    +    silr.TurnOffAll()
    +    silr.TurnOnSet(1)
    +    silr.TurnOnSet(3)
    +    silr.TurnOnSet(5)
    +    silr.TurnOnSet(10)
    +    SetPlotSILRestriction(silr)
    +    DrawPlots()
    +
    +    s = s + "\nAFTER APPLYING SIL RESTRICTION:\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", "original")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", "actual")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", "original")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", "actual")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", "original")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", "actual")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +
    +    TestText("QueryMultiUcd3d", s)
    +    DeleteAllPlots()
    +
    +def QueryContours():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Contour", "hardyglobal")
    +    c = ContourAttributes()
    +    c.contourNLevels = 10
    +    SetPlotOptions(c)
    +    DrawPlots()
    +
    +    s = "For 10 contours of noise.silo (hardyglobal)\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n\nMinMax Actual:"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\nMinMax Original:"
    +    Query("MinMax", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    c.contourNLevels = 4
    +    SetPlotOptions(c)
    +    s  = s + "\nFor 4 contours of noise.silo (hardyglobal)\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n\nMinMax Actual:"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\nMinMax Original:"
    +    Query("MinMax", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Contour", "d")
    +    c.contourNLevels = 10
    +    SetPlotOptions(c)
    +    DrawPlots()
    +
    +    s =  s + "\nFor 10 contours of rect3d.silo (d)\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    c.contourNLevels = 4
    +    SetPlotOptions(c)
    +    s  = s + "\nFor 4 contours of rect3d.silo (d)\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    TestText("QueryContours", s)
    +
    +    DeleteAllPlots()
    +
    +
    +def QueryCurv2d():
    +    # Testing database queries on curv2d.
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    TurnMaterialsOff("2")
    +    TurnMaterialsOff("3")
    +    Query("Compactness")
    +    TurnMaterialsOn()
    +    s = GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Eulerian")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("2D area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    DeleteAllPlots()
    +    AddPlot("Vector", "vel")
    +    DrawPlots()
    +    Query("MinMax", use_actual_data=1)
    +    s = s + "\nMinMax Actual:" + GetQueryOutputString()
    +    s = s + "\nMinMax Original:"
    +    Query("MinMax", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +
    +    TestText("QueryCurv2d", s)
    +    DeleteAllPlots()
    +
    +def QueryCurv3d():
    +    OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +    AddPlot("Pseudocolor", "p")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    Query("Eulerian")
    +    s = GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    TestText("QueryCurv3d", s)
    +    DeleteAllPlots()
    +
    +def QueryGlobe():
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    Query("Eulerian")
    +    s = GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    AddOperator("Clip")
    +    clip = ClipAttributes()
    +    clip.plane1Origin = (0.2, 0.3, 0.4)
    +    clip.plane1Normal = (1, 1, 1)
    +    SetOperatorOptions(clip)
    +    DrawPlots()
    +
    +    s = s + "\nAFTER CLIPPING:\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", "actual")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +
    +    DeleteAllPlots()
    +    AddPlot("Vector", "vel")
    +    DrawPlots()
    +    Query("MinMax", use_actual_data=1)
    +    s = s + "\nMinMax Actual:" + GetQueryOutputString()
    +    s = s + "\nMinMax Original:"
    +    Query("MinMax", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +
    +    ChangeActivePlotsVar("disp")
    +    DrawPlots()
    +    Query("MinMax", use_actual_data=1)
    +    s = s + "MinMAx Actual:" + GetQueryOutputString()
    +
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "t")
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + "\n" + GetQueryOutputString()
    +    DefineScalarExpression("neg_t", "-t")
    +    ChangeActivePlotsVar("neg_t")
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + "\n" + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    TestText("QueryGlobe", s)
    +    DeleteAllPlots()
    +
    +def QueryNoise():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    s = "For noise.silo(haryglobal)\n"
    +    Query("Eulerian")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    ChangeActivePlotsVar("hgslice")
    +    DrawPlots()
    +    # Do some database queries.
    +    s = s + "\nFor noise.silo(hgslice)\n"
    +    Query("Compactness")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Eulerian")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    DeleteAllPlots()
    +    AddPlot("Vector", "airVfGradient")
    +    DrawPlots()
    +    Query("MinMax", use_actual_data=1)
    +    s = s + "\nMinMax Actual:" + GetQueryOutputString()
    +    s = s + "\nMinMax Original:"
    +    Query("MinMax", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +
    +    ChangeActivePlotsVar("grad")
    +    DrawPlots()
    +    Query("MinMax", use_actual_data=1)
    +    s = s + "MinMax Actual:" + GetQueryOutputString()
    +    s = s + "\nMinMax Original:"
    +    Query("MinMax", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +
    +    TestText("QueryNoise", s)
    +    DeleteAllPlots()
    +
    +def QuerySid97():
    +    OpenDatabase(silo_data_path("sid97.silo"))
    +
    +    AddPlot("FilledBoundary", "mat1")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    Query("3D surface area")
    +    s = GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    TestText("QuerySid97", s)
    +    DeleteAllPlots()
    +
    +def QueryBigSil():
    +    OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +    AddPlot("Pseudocolor", "dist")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    Query("Eulerian")
    +    s = GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("3D surface area")
    +    s = s+GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    TestText("QueryBigSil", s)
    +    DeleteAllPlots()
    +
    +def QueryMinMaxCurve():
    +    OpenDatabase(data_path("curve_test_data/curve.visit"))
    +
    +    AddPlot("Curve", "parabolic");
    +    DrawPlots()
    +    Query("MinMax", use_actual_data=1)
    +    s = "\n"
    +    frames = (0, 27, 56, 73, 91);
    +    for frame in frames:
    +        SetTimeSliderState(frame)
    +        s = s + "For entire curve at frame %d:" %frame
    +        Query("MinMax", use_actual_data=1)
    +        s = s + GetQueryOutputString()
    +
    +    AddOperator("Clip")
    +    clip = ClipAttributes()
    +    clip.planeInverse = 1
    +    clip.plane1Origin = (0.5, 0, 0)
    +    SetOperatorOptions(clip)
    +    DrawPlots()
    +    for frame in frames:
    +        SetTimeSliderState(frame)
    +        s = s + "For clipped curve at frame %d:" %frame
    +        Query("MinMax", use_actual_data=1)
    +        s = s + GetQueryOutputString()
    +
    +    TestText("QueryMinMaxCurve", s)
    +    DeleteAllPlots()
    +
    +def QuerySAMRAI():
    +    OpenDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +    AddPlot("Pseudocolor", "Primitive Var _number_0")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    Query("Eulerian")
    +    s = GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    TestText("QuerySAMRAI", s)
    +    DeleteAllPlots()
    +
    +def QueryCurves():
    +    # in responses to VisIt00004449, Area between 2 curves query crashes
    +    # viewer if curves not from same database.
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +
    +    # do some lineouts so we can test curves from same database.
    +    Lineout((0.4, 1.04, 0), (0.4, 0.1, 0))
    +    SetActiveWindow(1)
    +    Lineout((0.02, 0.49, 0), (0.77, 0.49, 0))
    +
    +    SetActiveWindow(2)
    +    SetActivePlots((0, 1))
    +    Query("Area Between Curves")
    +    s = GetQueryOutputString() + "\n"
    +    Query("L2Norm Between Curves")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    # now add a curve from a different database, and test against 
    +    # previous curves.
    +    OpenDatabase(data_path("curve_test_data/c000.curve"))
    +
    +    AddPlot("Curve", "going_up")
    +    DrawPlots()
    +
    +    SetActivePlots((0, 2))
    +    Query("Area Between Curves")
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("L2Norm Between Curves")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    SetActivePlots((1, 2))
    +    Query("Area Between Curves")
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("L2Norm Between Curves")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    TestText("QueryCurves", s)
    +    DeleteWindow()
    +    DeleteAllPlots()
    +
    +def QueryHistogram():
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Histogram", "d")
    +    DrawPlots()
    +
    +    Query("Integrate")
    +    s = "Histogram(d):  " + GetQueryOutputString() + "\n"
    +
    +    ChangeActivePlotsVar("p")
    +    Query("Integrate")
    +    s = s + "Histogram(p):  " + GetQueryOutputString() + "\n"
    +
    +    ChangeActivePlotsVar("u")
    +    Query("Integrate")
    +    s = s + "Histogram(u):  " + GetQueryOutputString() + "\n"
    +
    +    ChangeActivePlotsVar("v")
    +    Query("Integrate")
    +    s = s + "Histogram(v):  " + GetQueryOutputString() + "\n\n"
    +
    +    TestText("QueryHistogram", s)
    +    DeleteAllPlots()
    +
    +def QueryGlobalId():
    +    OpenDatabase(silo_data_path("global_node.silo"))
    +
    +    AddPlot("Pseudocolor", "dist")
    +    DrawPlots()
    +
    +    Query("Global Zone Center", element=15);
    +    s = GetQueryOutputString() + "\n"
    +
    +    Query("Zone Center", element=0, domain=2)
    +    s = s + GetQueryOutputString() + "\n"
    +
    +    Query("Global Node Coords", element=16)
    +    s = s + GetQueryOutputString() + "\n"
    +
    +    Query("Node Coords", element=1, domain=2)
    +    s = s + GetQueryOutputString() + "\n"
    +
    +    TestText("QueryGlobalId", s)
    +    DeleteAllPlots()
    +
    +def QueryZR_RZ():
    +    s = "RZ UGRID:\n    "
    +    OpenDatabase(data_path("vtk_cylindrical_test_data/ugrid_RZ.vtk"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    s = s + "ZR UGRID:\n    "
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/ugrid_ZR.vtk"))
    +
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    s = s + "XY UGRID:\n    "
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/ugrid_XY.vtk"))
    +
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    AddOperator("Transform")
    +    translate = TransformAttributes()
    +    translate.doTranslate = 1
    +    translate.translateX = 5
    +    translate.translateY = 17
    +    SetOperatorOptions(translate)
    +    DrawPlots()
    +
    +    s = s + "XY UGRID TRANSLATED:\n    "
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/ugrid_ZR.vtk"))
    +
    +    DrawPlots()
    +
    +    s = s + "ZR UGRID TRANSLATED:\n    "
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/ugrid_RZ.vtk"))
    +
    +    DrawPlots()
    +
    +    s = s + "RZ UGRID TRANSLATED:\n    "
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    DeleteAllPlots()
    +
    +    s = s + "RZ RGRID:\n    "
    +    OpenDatabase(data_path("vtk_cylindrical_test_data/rect_RZ.vtk"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    s = s + "ZR RGRID:\n    "
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/rect_ZR.vtk"))
    +
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    s = s + "XY RGRID:\n    "
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/rect_XY.vtk"))
    +
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    AddOperator("Transform")
    +    translate = TransformAttributes()
    +    translate.doTranslate = 1
    +    translate.translateX = 5
    +    translate.translateY = 17
    +    SetOperatorOptions(translate)
    +    DrawPlots()
    +
    +    s = s + "XY RGRID TRANSLATED:\n    "
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/rect_ZR.vtk"))
    +
    +    DrawPlots()
    +    s = s + "ZR RGRID TRANSLATED:\n    "
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/rect_RZ.vtk"))
    +
    +    DrawPlots()
    +
    +    s = s + "RZ RGRID TRANSLATED:\n    "
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    DeleteAllPlots()
    +
    +    s = s + "RZ POLY:\n    "
    +    OpenDatabase(data_path("vtk_cylindrical_test_data/poly_RZ.vtk"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    s = s + "ZR POLY:\n    "
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/poly_ZR.vtk"))
    +
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    s = s + "XY POLY:\n    "
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/poly_XY.vtk"))
    +
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    AddOperator("Transform")
    +    translate = TransformAttributes()
    +    translate.doTranslate = 1
    +    translate.translateX = 5
    +    translate.translateY = 17
    +    SetOperatorOptions(translate)
    +    DrawPlots()
    +    s = s + "XY POLY TRANSLATED:\n    "
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/poly_ZR.vtk"))
    +
    +    DrawPlots()
    +    s = s + "ZR POLY TRANSLATED:\n    "
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/poly_RZ.vtk"))
    +
    +    DrawPlots()
    +
    +    s = s + "RZ POLY TRANSLATED:\n    "
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    TestText("QueryZR_RZ", s)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_cylindrical_test_data/poly_RZ.vtk"))
    +
    +def QueryArbPoly():
    +    SetQueryOutputToString()
    +
    +    OpenDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +    AddPlot("Mesh", "3D/mesh1")
    +    DrawPlots()
    +    s = "arbpoly-zoohybrid:\n"
    +    s = s + Query("NumZones", use_actual_data=1) + "\n"
    +    s = s + Query("NumZones", use_actual_data=0) + "\n"
    +    s = s + Query("NumNodes", use_actual_data=1) + "\n"
    +    s = s + Query("NumNodes", use_actual_data=0) + "\n"
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +
    +    OpenDatabase(silo_data_path("poly3d.silo"))
    +    AddPlot("Mesh", "ucdmesh3d")
    +    DrawPlots()
    +    s = s + "\npoly3d:\n"
    +    s = s + Query("NumZones", use_actual_data=1) + "\n"
    +    s = s + Query("NumZones", use_actual_data=0) + "\n"
    +    s = s + Query("NumNodes", use_actual_data=1) + "\n"
    +    s = s + Query("NumNodes", use_actual_data=0) + "\n"
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("poly3d.silo"))
    +
    +    OpenDatabase(data_path("overlink_test_data/ev_0_0_100/OvlTop.silo"))
    +    AddPlot("Mesh","MMESH")
    +    DrawPlots()
    +    s = s + "\nOvlTop:" + "\n"
    +    s = s + Query("NumZones", use_actual_data=1) + "\n"
    +    s = s + Query("NumZones", use_actual_data=0) + "\n"
    +    s = s + Query("NumNodes", use_actual_data=1) + "\n"
    +    s = s + Query("NumNodes", use_actual_data=0) + "\n"
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("overlink_test_data/ev_0_0_100/OvlTop.silo"))
    +
    +    OpenDatabase(silo_data_path("arbpoly.silo"))
    +    AddPlot("Mesh", "clipped_hex")
    +    DrawPlots()
    +    s = s + "\narbpoly:" + "\n"
    +    s = s + Query("NumZones", use_actual_data=1) + "\n"
    +    s = s + Query("NumZones", use_actual_data=0) + "\n"
    +    s = s + Query("NumNodes", use_actual_data=1) + "\n"
    +    s = s + Query("NumNodes", use_actual_data=0) + "\n"
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("arbpoly.silo"))
    +    TestText("QueryArbPoly", s)
    +
    +
    +def QueryMain():
    +    QueryBigSil()
    +    QueryContours()
    +    QueryCurv2d()
    +    QueryCurv3d()
    +    QueryGlobe()
    +    QueryMultiUcd3d()
    +    QueryNoise()
    +    QueryRect2d()
    +    QuerySid97()
    +    QueryMinMaxCurve()
    +    QuerySAMRAI()
    +    QueryCurves()
    +    QueryHistogram()
    +    QueryGlobalId()
    +    QueryZR_RZ()
    +    QueryArbPoly()
    +
    +# Call the main function
    +TurnOnAllAnnotations()
    +QueryMain()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_error_queries.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_error_queries.html new file mode 100644 index 000000000..4342c3316 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_error_queries.html @@ -0,0 +1,100 @@ + +Results for queries/error_queries.py + +

    Results of VisIt Regression Test - queries/error_queries

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Zone_Center_Curv2d_Valid_Str
     "The center of  zone 10 is (0.923738, 1.81294)." .eq. "The center of  zone 10 is (0.923738, 1.81294)." : True
    Zone_Center_Curv2d_Valid_Val
     (0.9237379878759384, 1.8129377663135529) .eq. (0.9237379878759384, 1.8129377663135529)
     (prec=5) : True
    Zone_Center_Curv2d_Invalid_Str
     "The center of zone 1000000 could not be determined." .eq. "The center of zone 1000000 could not be determined." : True
    Zone_Center_Curv2d_Invalid_Val
     "None" .eq. "None" : True
    Node_Coords_Curv2d_Valid_Str
     "The coords of  node 10 are (1, 1.73205)." .eq. "The coords of  node 10 are (1, 1.73205)." : True
    None_Coords_Curv2d_Valid_Val
     (1.0, 1.7320507764816284) .eq. (1.0, 1.7320507764816284)
     (prec=5) : True
    Node_Coords_Curv2d_Invalid_Str
     "The coords of node 1000000 could not be determined." .eq. "The coords of node 1000000 could not be determined." : True
    Node_Coords_Curv2d_Invalid_Val
     "None" .eq. "None" : True
    Zone_Center_Multi_Ucd3d_Valid_Str
     "The center of zone 10 (domain 5) is (0.463913, 3.91959, 6.33333)." .eq. "The center of zone 10 (domain 5) is (0.463913, 3.91959, 6.33333)." : True
    Zone_Center_Multi_Ucd3d_Valid_Val
     (0.4639131799340248, 3.9195945262908936, 6.333332777023315) .eq. (0.4639131799340248, 3.9195945262908936, 6.333332777023315)
     (prec=5) : True
    Zone_Center_Multi_Ucd3d_Invalid_Str
     "The center of zone 1000000 (domain 5) could not be determined." .eq. "The center of zone 1000000 (domain 5) could not be determined." : True
    Zone_Center_Multi_Ucd3d_Invalid_Val
     "None" .eq. "None" : True
    Node_Coords_Multi_Ucd3d_Valid_Str
     "The coords of node 10 (domain 5) are (2.96558, 2.53285, 0)." .eq. "The coords of node 10 (domain 5) are (2.96558, 2.53285, 0)." : True
    None_Coords_Multi_Ucd3d_Valid_Val
     (2.9655816555023193, 2.532846450805664, 0.0) .eq. (2.9655816555023193, 2.532846450805664, 0.0)
     (prec=5) : True
    Node_Coords_Multi_Ucd3d_Invalid_Str
     "The coords of node 1000000 (domain 5) could not be determined." .eq. "The coords of node 1000000 (domain 5) could not be determined." : True
    Node_Coords_Multi_Ucd3d_Invalid_Val
     "None" .eq. "None" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_error_queries_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_error_queries_py.html new file mode 100644 index 000000000..1e246fbb2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_error_queries_py.html @@ -0,0 +1,89 @@ +queries/error_queries.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  error_quries.py
    +#  Tests:      queries     - zone center, node coords
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       August 3, 2023
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Test with a single domain 2d curvilinear mesh
    +#
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +Query("Zone Center", domain=0, element=10)
    +s = GetQueryOutputString()
    +v = GetQueryOutputValue()
    +
    +TestValueEQ("Zone_Center_Curv2d_Valid_Str", s, "The center of  zone 10 is (0.923738, 1.81294).")
    +TestValueEQ("Zone_Center_Curv2d_Valid_Val", v, (0.9237379878759384, 1.8129377663135529))
    +
    +Query("Zone Center", domain=0, element=1000000)
    +s = GetQueryOutputString()
    +v = GetQueryOutputValue()
    +
    +TestValueEQ("Zone_Center_Curv2d_Invalid_Str", s, "The center of zone 1000000 could not be determined.")
    +TestValueEQ("Zone_Center_Curv2d_Invalid_Val", v, None)
    +
    +Query("Node Coords", domain=0, element=10)
    +s = GetQueryOutputString()
    +v = GetQueryOutputValue()
    +
    +TestValueEQ("Node_Coords_Curv2d_Valid_Str", s, "The coords of  node 10 are (1, 1.73205).")
    +TestValueEQ("None_Coords_Curv2d_Valid_Val", v, (1.0, 1.7320507764816284))
    +
    +Query("Node Coords", domain=0, element=1000000)
    +s = GetQueryOutputString()
    +v = GetQueryOutputValue()
    +
    +TestValueEQ("Node_Coords_Curv2d_Invalid_Str", s, "The coords of node 1000000 could not be determined.")
    +TestValueEQ("Node_Coords_Curv2d_Invalid_Val", v, None)
    +
    +DeleteAllPlots()
    +
    +#
    +# Test with a multi domain 3d unstructured mesh
    +#
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +Query("Zone Center", domain=5, element=10)
    +s = GetQueryOutputString()
    +v = GetQueryOutputValue()
    +
    +TestValueEQ("Zone_Center_Multi_Ucd3d_Valid_Str", s, "The center of zone 10 (domain 5) is (0.463913, 3.91959, 6.33333).")
    +TestValueEQ("Zone_Center_Multi_Ucd3d_Valid_Val", v, (0.4639131799340248, 3.9195945262908936, 6.333332777023315))
    +
    +Query("Zone Center", domain=5, element=1000000)
    +s = GetQueryOutputString()
    +v = GetQueryOutputValue()
    +
    +TestValueEQ("Zone_Center_Multi_Ucd3d_Invalid_Str", s, "The center of zone 1000000 (domain 5) could not be determined.")
    +TestValueEQ("Zone_Center_Multi_Ucd3d_Invalid_Val", v, None)
    +
    +Query("Node Coords", domain=5, element=10)
    +s = GetQueryOutputString()
    +v = GetQueryOutputValue()
    +
    +TestValueEQ("Node_Coords_Multi_Ucd3d_Valid_Str", s, "The coords of node 10 (domain 5) are (2.96558, 2.53285, 0).")
    +TestValueEQ("None_Coords_Multi_Ucd3d_Valid_Val", v, (2.9655816555023193, 2.532846450805664, 0.0))
    +
    +Query("Node Coords", domain=5, element=1000000)
    +s = GetQueryOutputString()
    +v = GetQueryOutputValue()
    +
    +TestValueEQ("Node_Coords_Multi_Ucd3d_Invalid_Str", s, "The coords of node 1000000 (domain 5) could not be determined.")
    +TestValueEQ("Node_Coords_Multi_Ucd3d_Invalid_Val", v, None)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_gridinformation.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_gridinformation.html new file mode 100644 index 000000000..c60aab957 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_gridinformation.html @@ -0,0 +1,56 @@ + +Results for queries/gridinformation.py + +

    Results of VisIt Regression Test - queries/gridinformation

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    gridinformation_000 modifications totalling 0 lines
    gridinformation_010 modifications totalling 0 lines
    gridinformation_020 modifications totalling 0 lines
    gridinformation_030 modifications totalling 0 lines
    gridinformation_040 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_gridinformation_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_gridinformation_py.html new file mode 100644 index 000000000..497b8c917 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_gridinformation_py.html @@ -0,0 +1,43 @@ +queries/gridinformation.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  database.py #
    +#  Tests:      Grid Information
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Jan  3 16:38:02 PST 2018
    +#
    +#  Modifications:
    +#
    +# ---------------------------------------------------------------------------- 
    +
    +newline = "=================================================\n"
    +
    +tests = (
    +    ("gridinformation_00", silo_data_path("noise.silo"), "Pseudocolor", "radial"),
    +    ("gridinformation_01", silo_data_path("globe.silo"), "Pseudocolor", "speed"),
    +    ("gridinformation_02", silo_data_path("multi_rect3d.silo"), "Pseudocolor", "d"),
    +    ("gridinformation_03", silo_data_path("multi_curv3d.silo"), "Pseudocolor", "d"),
    +    ("gridinformation_04", silo_data_path("multi_ucd3d.silo"), "Pseudocolor", "d"))
    +
    +for t in tests:
    +    OpenDatabase(t[1])
    +    AddPlot(t[2], t[3])
    +    DrawPlots()
    +    Query("Grid Information")
    +    s = GetQueryOutputString()
    +    s = s + newline
    +
    +    Query("Grid Information", get_extents=1)
    +    s = s + GetQueryOutputString()
    +    s = s + newline
    +
    +    Query("Grid Information", get_extents=1, get_ghosttypes=1)
    +    s = s + GetQueryOutputString()
    +
    +    TestText(t[0], s)
    +    DeleteAllPlots()
    +    CloseDatabase(t[1])
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_hohlraum.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_hohlraum.html new file mode 100644 index 000000000..a1e293f97 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_hohlraum.html @@ -0,0 +1,90 @@ + +Results for queries/hohlraum.py + +

    Results of VisIt Regression Test - queries/hohlraum

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    hf_0_00 modifications totalling 0 lines
    hf_0_10.000.00
    hf_1_00 modifications totalling 0 lines
    hf_1_10.000.00
    hf_2_00 modifications totalling 0 lines
    hf_2_131.820.32
    hf_3_00 modifications totalling 0 lines
    hf_3_10.000.00
    hf_4_00 modifications totalling 0 lines
    hf_4_131.820.32
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_hohlraum_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_hohlraum_py.html new file mode 100644 index 000000000..1850c4c72 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_hohlraum_py.html @@ -0,0 +1,112 @@ +queries/hohlraum.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  line_scan.py
    +#  Tests:      queries     - mass distribution, chord length distribution
    +#
    +#  Defect ID:  '7474 + '7476
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 23, 2006
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Sun Aug 27 16:52:07 PDT 2006
    +#    Added testing for expected value, mass from boundary.
    +#
    +#    Dave Bremer, Fri Sep  8 11:44:22 PDT 2006
    +#    Added testing for the line scan transform.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Thu Jul 14 10:44:55 PDT 2011
    +#    Use named arguments.
    +#
    +#    Kathleen Biagas, Wed Feb 16 13:11:57 PST 2022
    +#    Replaced Curve atts 'cycleColors' with 'curveColorSource'.
    +#
    +# ----------------------------------------------------------------------------
    +
    +import os
    +
    +
    +ca=CurveAttributes()
    +ca.curveColorSource = ca.Custom
    +SetDefaultPlotOptions(ca)
    +
    +def TestOne(index, filename, varname, meshname, absvar, emisvar, numlines, x, y, z, radius, theta, phi):
    +    # Because the queries we are testing output to the file system, we need to
    +    # delete previous outputs before running.  If we don't do this, then the
    +    # queries will output files to names that are continuously incrementing.
    +    list = os.listdir(".")
    +    for i in range(len(list)):
    +        if (list[i] == "hf0.ult"):
    +            os.unlink("hf0.ult")
    +
    +    # Do the queries...
    +    OpenDatabase(filename)
    +    AddPlot("Pseudocolor", varname)
    +    DrawPlots()
    +    params = dict(num_lines=numlines, ray_center=(x, y, z), radius=radius, theta=theta, phi=phi, vars=(absvar, emisvar))
    +    Query("Hohlraum Flux", params)
    +    s = GetQueryOutputString()
    +    #v = GetQueryOutputValue()
    +    test_name = "hf_%d_%d" %(index,0)
    +    TestText(test_name, s)
    +    DeleteAllPlots()
    +
    +    # Now test the outputs
    +    OpenDatabase("hf0.ult")
    +    ReOpenDatabase("hf0.ult")  # Flush out cached version
    +    AddPlot("Curve", "Hohlraum Flux")
    +    DrawPlots()
    +    ResetView()
    +    test1 = "hf_%d_%d" %(index,1)
    +    Test(test1)
    +    DeleteAllPlots()
    +
    +
    +DefineArrayExpression("a0", "array_compose(recenter(u), recenter(v), d)")
    +DefineArrayExpression("e0", "array_compose(recenter(gradient(u)[0]), recenter(gradient(u)[1]), p)")
    +TestOne(0, silo_data_path("rect2d.silo"), "d", "quadmesh2d", "a0", "e0", 100, 0.5,0.5,0, 0.1,0,0)
    +DeleteExpression("a0")
    +DeleteExpression("e0")
    +
    +DefineArrayExpression("a1", "array_compose(<mesh_quality/volume>, <mesh_quality/taper>,  <mesh_quality/oddy>)")
    +DefineArrayExpression("e1", "array_compose(<mesh_quality/aspect>, <mesh_quality/shape>, <mesh_quality/skew>)")
    +TestOne(1, data_path("KullLite_test_data/T.pdb"),
    +        "mesh_quality/volume", "mesh",
    +        "a1", "e1", 100, 0,0,0, 0.25,90,90)
    +DeleteExpression("a1")
    +DeleteExpression("e1")
    +
    +DefineArrayExpression("a2", "array_compose(<mesh_quality/mesh/jacobian>, \
    +                      <mesh_quality/mesh/area>, <mesh_quality/mesh/oddy>)")
    +DefineArrayExpression("e2", "array_compose(<mesh_quality/mesh/aspect>, \
    +                      <mesh_quality/mesh/shape>, <mesh_quality/mesh/skew>)")
    +TestOne(2, data_path("KullLite_test_data/tagtest_rz_3.pdb"),
    +        "mesh_quality/mesh/area", "mesh",
    +        "a2", "e2", 333, 0,0,1, 0.5,0,0)
    +DeleteExpression("a2")
    +DeleteExpression("e2")
    +
    +TestOne(3, silo_data_path("multi_rect2d.silo"), "d", "mesh1", "d", "p", 500, 0.5,0.5,0, 1,45,45)
    +
    +
    +DefineArrayExpression("a3", "array_compose_with_bins(<mesh_quality/mesh/jacobian>,"
    +                            "<mesh_quality/mesh/area>, <mesh_quality/mesh/oddy>,  [0, 2, 4, 8])")
    +DefineArrayExpression("e3", "array_compose_with_bins(<mesh_quality/mesh/aspect>,"
    +                            "<mesh_quality/mesh/shape>, <mesh_quality/mesh/skew>, [0, 2, 4, 8])")
    +TestOne(4, data_path("KullLite_test_data/tagtest_rz_3.pdb"), "mesh_quality/mesh/area", "mesh",
    +        "a3", "e3", 333, 0,0,1, 0.5,0,0)
    +DeleteExpression("a3")
    +DeleteExpression("e3")
    +
    +
    +
    +
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_kurtosis.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_kurtosis.html new file mode 100644 index 000000000..511113d71 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_kurtosis.html @@ -0,0 +1,60 @@ + +Results for queries/kurtosis.py + +

    Results of VisIt Regression Test - queries/kurtosis

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    kurtosis_010 modifications totalling 0 lines
    kurtosis_020 modifications totalling 0 lines
    kurtosis_030 modifications totalling 0 lines
    kurtosis_040 modifications totalling 0 lines
    kurtosis_050 modifications totalling 0 lines
    kurtosis_060 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_kurtosis_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_kurtosis_py.html new file mode 100644 index 000000000..01970fa81 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_kurtosis_py.html @@ -0,0 +1,49 @@ +queries/kurtosis.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  kurtosis.py
    +#  Tests:      queries     - kurtosis and skewness
    +#
    +#  Defect ID:  VisIt00006466, '6269.
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 5, 2005
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +OpenDatabase(data_path("curve_test_data/distribution.ultra"))
    +
    +AddPlot("Curve", "Laplace Distribution")
    +DrawPlots()
    +
    +Query("Kurtosis")
    +text = GetQueryOutputString()
    +TestText("kurtosis_01", text)
    +
    +Query("Skewness")
    +text = GetQueryOutputString()
    +TestText("kurtosis_02", text)
    +
    +ChangeActivePlotsVar("Log Normal Distribution")
    +Query("Kurtosis")
    +text = GetQueryOutputString()
    +TestText("kurtosis_03", text)
    +
    +Query("Skewness")
    +text = GetQueryOutputString()
    +TestText("kurtosis_04", text)
    +
    +ChangeActivePlotsVar("Exponential Distribution")
    +Query("Kurtosis")
    +text = GetQueryOutputString()
    +TestText("kurtosis_05", text)
    +
    +Query("Skewness")
    +text = GetQueryOutputString()
    +TestText("kurtosis_06", text)
    +
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_l2norm.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_l2norm.html new file mode 100644 index 000000000..4b62d786d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_l2norm.html @@ -0,0 +1,56 @@ + +Results for queries/l2norm.py + +

    Results of VisIt Regression Test - queries/l2norm

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    l2norm_010 modifications totalling 0 lines
    l2norm_020 modifications totalling 0 lines
    l2norm_030 modifications totalling 0 lines
    l2norm_040 modifications totalling 0 lines
    l2norm_050 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_l2norm_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_l2norm_py.html new file mode 100644 index 000000000..572919a6e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_l2norm_py.html @@ -0,0 +1,107 @@ +queries/l2norm.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  l2norm.py
    +#  Tests:      queries     - l2norms of various curves
    +#
    +#  Defect ID:  VisIt00006077
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 15, 2005
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +# Test that we can do an l2norm of a degenerate ultra file.
    +TurnOnAllAnnotations()
    +OpenDatabase(data_path("curve_test_data/degenerate.ultra"))
    +
    +AddPlot("Curve", "This is a degenerate ultra file.")
    +DrawPlots()
    +
    +Query("L2Norm")
    +text = GetQueryOutputString()
    +TestText("l2norm_01", text)
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +DefineScalarExpression("d_mod", "d+0.4*coord(quadmesh2d)[1]")
    +AddWindow()
    +SetActiveWindow(2)
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "d_mod")
    +DrawPlots()
    +
    +start_angle = 0
    +stop_angle = 90
    +
    +import math
    +nsteps = 10
    +center=(0,0)
    +radius = 1
    +step = (stop_angle-start_angle) / (nsteps-1)
    +rel_diff = []
    +for i in range(nsteps):
    +   angle = start_angle + i*step
    +   rad_angle = angle*2*math.pi/360.
    +   P2=(radius*math.cos(rad_angle), radius*math.sin(rad_angle))
    +   SetActiveWindow(1)
    +   time.sleep(1)
    +   Lineout(center, P2)
    +   SetActiveWindow(2)
    +   time.sleep(1)
    +   Lineout(center, P2)
    +   SetActiveWindow(3)
    +   SetActivePlots(0)
    +   Query("L2Norm")
    +   norm = GetQueryOutputValue()
    +   SetActivePlots((0,1))
    +   time.sleep(1)
    +   Query("L2Norm Between Curves")
    +   diff = GetQueryOutputValue()
    +   rel_diff = rel_diff + [1.-diff/norm]
    +   DeleteAllPlots()
    +
    +ave=0
    +for i in range(nsteps):
    +   ave += rel_diff[i]
    +ave /= nsteps
    +
    +text = "The average difference is %f" %(ave)
    +TestText("l2norm_02", text)
    +
    +min=1
    +max=0
    +for i in range(nsteps):
    +   if (rel_diff[i]<min):
    +       min=rel_diff[i]
    +   if (rel_diff[i]>max):
    +       max=rel_diff[i]
    +
    +
    +text = "The minimum relative difference is %f" %(min)
    +TestText("l2norm_03", text)
    +text = "The maximum relative difference is %f" %(max)
    +TestText("l2norm_04", text)
    +
    +
    +variance = 0
    +for i in range(nsteps):
    +   variance += (rel_diff[i]-ave)*(rel_diff[i]-ave)
    +variance /= (nsteps-1)
    +stddev = math.sqrt(variance)
    +
    +text = "The standard deviation of the relative difference is %f" %(stddev)
    +TestText("l2norm_05", text)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_length.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_length.html new file mode 100644 index 000000000..c3979921f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_length.html @@ -0,0 +1,50 @@ + +Results for queries/length.py + +

    Results of VisIt Regression Test - queries/length

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    length_010 modifications totalling 0 lines
    length_020 modifications totalling 0 lines
    length_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_length_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_length_py.html new file mode 100644 index 000000000..e7231f461 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_length_py.html @@ -0,0 +1,58 @@ +queries/length.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  length.py
    +#  Tests:      queries     - total length
    +#
    +#  Defect ID:  VisIt00007530
    +#
    +#  Programmer: Hank Childs
    +#  Date:       November 8, 2006
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Mon Nov 27 09:27:06 PST 2006
    +#    Forgot to remove annotations.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#    individually to match current baseline results.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Test that we can do an l2norm of a degenerate ultra file.
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +Query("Total Length")
    +text = GetQueryOutputString()
    +TestText("length_01", text)
    +
    +DeleteAllPlots()
    +OpenDatabase(data_path("curve_test_data/curve.visit"))
    +
    +AddPlot("Curve", "going_up")
    +DrawPlots()
    +
    +Query("Total Length")
    +text = GetQueryOutputString()
    +TestText("length_02", text)
    +
    +q = GetQueryOverTimeAttributes()
    +q.timeType = q.Timestep
    +SetQueryOverTimeAttributes(q)
    +QueryOverTime("Total Length")
    +SetActiveWindow(2)
    +TurnOffAllAnnotations()
    +c = CurveAttributes()
    +c.curveColorSource = c.Custom
    +c.curveColor = (0, 255, 0, 255)
    +SetPlotOptions(c)
    +Test("length_03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_line_scan.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_line_scan.html new file mode 100644 index 000000000..05f65b4b2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_line_scan.html @@ -0,0 +1,474 @@ + +Results for queries/line_scan.py + +

    Results of VisIt Regression Test - queries/line_scan

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ls_0_10.190.01
    ls_0_20 modifications totalling 0 lines
    ls_0_30 modifications totalling 0 lines
    ls_0_40.210.01
    ls_0_50 modifications totalling 0 lines
    ls_0_60 modifications totalling 0 lines
    ls_0_70.330.01
    ls_0_80 modifications totalling 0 lines
    ls_0_90 modifications totalling 0 lines
    ls_0_100.100.01
    ls_0_110 modifications totalling 0 lines
    ls_0_120 modifications totalling 0 lines
    ls_0_130.300.01
    ls_0_140 modifications totalling 0 lines
    ls_0_150 modifications totalling 0 lines
    ls_0_160.240.01
    ls_0_170 modifications totalling 0 lines
    ls_0_180 modifications totalling 0 lines
    ls_0_190.000.00
    ls_0_200 modifications totalling 0 lines
    ls_0_210 modifications totalling 0 lines
    ls_1_10.300.01
    ls_1_20 modifications totalling 0 lines
    ls_1_30 modifications totalling 0 lines
    ls_1_40.220.01
    ls_1_50 modifications totalling 0 lines
    ls_1_60 modifications totalling 0 lines
    ls_1_70.330.01
    ls_1_80 modifications totalling 0 lines
    ls_1_90 modifications totalling 0 lines
    ls_1_100.090.01
    ls_1_110 modifications totalling 0 lines
    ls_1_120 modifications totalling 0 lines
    ls_1_130.280.01
    ls_1_140 modifications totalling 0 lines
    ls_1_150 modifications totalling 0 lines
    ls_1_160.230.01
    ls_1_170 modifications totalling 0 lines
    ls_1_180 modifications totalling 0 lines
    ls_1_190.000.00
    ls_1_200 modifications totalling 0 lines
    ls_1_210 modifications totalling 0 lines
    ls_2_10.220.01
    ls_2_20 modifications totalling 0 lines
    ls_2_30 modifications totalling 0 lines
    ls_2_40.110.01
    ls_2_50 modifications totalling 0 lines
    ls_2_60 modifications totalling 0 lines
    ls_2_70.000.00
    ls_2_80 modifications totalling 0 lines
    ls_2_90 modifications totalling 0 lines
    ls_2_100.140.01
    ls_2_110 modifications totalling 0 lines
    ls_2_120 modifications totalling 0 lines
    ls_2_130.380.01
    ls_2_140 modifications totalling 0 lines
    ls_2_150 modifications totalling 0 lines
    ls_2_160.370.01
    ls_2_170 modifications totalling 0 lines
    ls_2_180 modifications totalling 0 lines
    ls_2_190.000.00
    ls_2_200 modifications totalling 0 lines
    ls_2_210 modifications totalling 0 lines
    ls_3_10.180.01
    ls_3_20 modifications totalling 0 lines
    ls_3_30 modifications totalling 0 lines
    ls_3_40.220.01
    ls_3_50 modifications totalling 0 lines
    ls_3_60 modifications totalling 0 lines
    ls_3_70.310.01
    ls_3_80 modifications totalling 0 lines
    ls_3_90 modifications totalling 0 lines
    ls_3_100.200.01
    ls_3_110 modifications totalling 0 lines
    ls_3_120 modifications totalling 0 lines
    ls_3_130.300.01
    ls_3_140 modifications totalling 0 lines
    ls_3_150 modifications totalling 0 lines
    ls_3_160.270.01
    ls_3_170 modifications totalling 0 lines
    ls_3_180 modifications totalling 0 lines
    ls_3_190.000.00
    ls_3_200 modifications totalling 0 lines
    ls_3_210 modifications totalling 0 lines
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_line_scan_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_line_scan_py.html new file mode 100644 index 000000000..86ec7fa06 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_line_scan_py.html @@ -0,0 +1,203 @@ +queries/line_scan.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  line_scan.py
    +#  Tests:      queries     - mass distribution, chord length distribution
    +#
    +#  Defect ID:  '7474 + '7476
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 23, 2006
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Sun Aug 27 16:52:07 PDT 2006
    +#    Added testing for expected value, mass from boundary.
    +#
    +#    Dave Bremer, Fri Sep  8 11:44:22 PDT 2006
    +#    Added testing for the line scan transform.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Thu Jul 14 10:44:55 PDT 2011
    +#    Use named arguments.
    +#
    +#    Kathleen Biagas, Wed Feb 16 13:11:57 PST 2022
    +#    Replaced Curve atts 'cycleColors' with 'curveColorSource'.
    +#
    +# ----------------------------------------------------------------------------
    +
    +import os
    +
    +
    +ca=CurveAttributes()
    +ca.curveColorSource = ca.Custom
    +SetDefaultPlotOptions(ca)
    +
    +def TestOne(index, filename, varname, meshname, limit):
    +    # Because the queries we are testing output to the file system, we need to
    +    # delete previous outputs before running.  If we don't do this, then the
    +    # queries will output files to names that are continuously incrementing.
    +    list = os.listdir(".")
    +    for i in range(len(list)):
    +        if (list[i] == "cld_i0.ult"):
    +            os.unlink("cld_i0.ult")
    +        if (list[i] == "cld_a0.ult"):
    +            os.unlink("cld_a0.ult")
    +        if (list[i] == "rld_i0.ult"):
    +            os.unlink("rld_i0.ult")
    +        if (list[i] == "rld_a0.ult"):
    +            os.unlink("rld_a0.ult")
    +        if (list[i] == "md0.ult"):
    +            os.unlink("md0.ult")
    +        if (list[i] == "dfb0.ult"):
    +            os.unlink("dfb0.ult")
    +        if (list[i] == "lst0.ult"):
    +            os.unlink("lst0.ult")
    +
    +    # Set up a purely 2D data set...
    +    randname = "rand%d" %(index)
    +    defn = "rand(%s)" %(meshname)
    +    DefineScalarExpression(randname, defn)
    +    OpenDatabase(filename)
    +    AddPlot("Pseudocolor", varname)
    +    AddOperator("Isovolume")
    +    iso_atts = IsovolumeAttributes()
    +    iso_atts.ubound = 0.3
    +    iso_atts.variable = randname
    +    SetOperatorOptions(iso_atts)
    +    DrawPlots()
    +
    +    # Do the queries...
    +    Query("Chord Length Distribution - individual", num_lines=15000, num_bins=100, min=0, max=limit)
    +    Query("Chord Length Distribution - aggregate", num_lines=15000, num_bins=100, min=0, max=limit)
    +    Query("Ray Length Distribution - individual", num_lines=15000, num_bins=100, min=0, max=limit)
    +    Query("Ray Length Distribution - aggregate", num_lines=15000, num_bins=100, min=0, max=limit)
    +    Query("Mass Distribution", num_lines=15000, num_bins=100, min=0, max=limit)
    +    Query("Distance From Boundary", num_lines=15000, num_bins=100, min=0, max=limit)
    +    Query("Line Scan Transform", num_lines=15000, num_bins=100, min=0, max=limit)
    +    DeleteAllPlots()
    +
    +    # Now test the outputs
    +    OpenDatabase("cld_i0.ult")
    +    ReOpenDatabase("cld_i0.ult")  # Flush out cached version
    +    AddPlot("Curve", "Chord length distribution - individual")
    +    DrawPlots()
    +    ResetView()
    +    test1 = "ls_%d_%d" %(index,1)
    +    Test(test1)
    +    Query("Integrate")
    +    text = GetQueryOutputString()
    +    test2 = "ls_%d_%d" %(index,2)
    +    TestText(test2, text)
    +    Query("Expected Value")
    +    text = GetQueryOutputString()
    +    test3 = "ls_%d_%d" %(index,3)
    +    TestText(test3, text)
    +    DeleteAllPlots()
    +    OpenDatabase("md0.ult")
    +    ReOpenDatabase("md0.ult")  # Flush out cached version
    +    AddPlot("Curve", "Mass distribution")
    +    DrawPlots()
    +    ResetView()
    +    test4 = "ls_%d_%d" %(index,4)
    +    Test(test4)
    +    Query("Integrate")
    +    text = GetQueryOutputString()
    +    test5 = "ls_%d_%d" %(index,5)
    +    TestText(test5, text)
    +    Query("Expected Value")
    +    text = GetQueryOutputString()
    +    test6 = "ls_%d_%d" %(index,6)
    +    TestText(test6, text)
    +    DeleteAllPlots()
    +    OpenDatabase("dfb0.ult")
    +    ReOpenDatabase("dfb0.ult")  # Flush out cached version
    +    AddPlot("Curve", "Mass distribution")
    +    DrawPlots()
    +    ResetView()
    +    test7 = "ls_%d_%d" %(index,7)
    +    Test(test7)
    +    Query("Integrate")
    +    text = GetQueryOutputString()
    +    test8 = "ls_%d_%d" %(index,8)
    +    TestText(test8, text)
    +    Query("Expected Value")
    +    text = GetQueryOutputString()
    +    test9 = "ls_%d_%d" %(index,9)
    +    TestText(test9, text)
    +    DeleteAllPlots()
    +    OpenDatabase("cld_a0.ult")
    +    ReOpenDatabase("cld_a0.ult")  # Flush out cached version
    +    AddPlot("Curve", "Chord length distribution - aggregate")
    +    DrawPlots()
    +    ResetView()
    +    test1 = "ls_%d_%d" %(index,10)
    +    Test(test1)
    +    Query("Integrate")
    +    text = GetQueryOutputString()
    +    test2 = "ls_%d_%d" %(index,11)
    +    TestText(test2, text)
    +    Query("Expected Value")
    +    text = GetQueryOutputString()
    +    test3 = "ls_%d_%d" %(index,12)
    +    TestText(test3, text)
    +    DeleteAllPlots()
    +    OpenDatabase("rld_i0.ult")
    +    ReOpenDatabase("rld_i0.ult")  # Flush out cached version
    +    AddPlot("Curve", "Ray length distribution - individual")
    +    DrawPlots()
    +    ResetView()
    +    test1 = "ls_%d_%d" %(index,13)
    +    Test(test1)
    +    Query("Integrate")
    +    text = GetQueryOutputString()
    +    test2 = "ls_%d_%d" %(index,14)
    +    TestText(test2, text)
    +    Query("Expected Value")
    +    text = GetQueryOutputString()
    +    test3 = "ls_%d_%d" %(index,15)
    +    TestText(test3, text)
    +    DeleteAllPlots()
    +    OpenDatabase("rld_a0.ult")
    +    ReOpenDatabase("rld_a0.ult")  # Flush out cached version
    +    AddPlot("Curve", "Ray length distribution - aggregate")
    +    DrawPlots()
    +    ResetView()
    +    test1 = "ls_%d_%d" %(index,16)
    +    Test(test1)
    +    Query("Integrate")
    +    text = GetQueryOutputString()
    +    test2 = "ls_%d_%d" %(index,17)
    +    TestText(test2, text)
    +    Query("Expected Value")
    +    text = GetQueryOutputString()
    +    test3 = "ls_%d_%d" %(index,18)
    +    TestText(test3, text)
    +    DeleteAllPlots()
    +    OpenDatabase("lst0.ult")
    +    ReOpenDatabase("lst0.ult")  # Flush out cached version
    +    AddPlot("Curve", "Line Scan Transform")
    +    DrawPlots()
    +    ResetView()
    +    test1 = "ls_%d_%d" %(index,19)
    +    Test(test1)
    +    Query("Integrate")
    +    text = GetQueryOutputString()
    +    test2 = "ls_%d_%d" %(index,20)
    +    TestText(test2, text)
    +    Query("Expected Value")
    +    text = GetQueryOutputString()
    +    test3 = "ls_%d_%d" %(index,21)
    +    TestText(test3, text)
    +    DeleteAllPlots()
    +
    +
    +TestOne(0, silo_data_path("rect2d.silo") , "d", "quadmesh2d", 0.5)
    +TestOne(1, silo_data_path("multi_rect2d.silo") , "d", "mesh1", 0.5)
    +TestOne(2, data_path("KullLite_test_data/T.pdb"), "mesh_quality/volume", "mesh", 0.2)
    +TestOne(3, data_path("KullLite_test_data/tagtest_rz_3.pdb"), "mesh_quality/mesh/area", "mesh", 4.0)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pick.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pick.html new file mode 100644 index 000000000..13183b5dc --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pick.html @@ -0,0 +1,284 @@ + +Results for queries/pick.py + +

    Results of VisIt Regression Test - queries/pick

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Pick3DTo2D2 modifications totalling 6 lines
    Pick2D0 modifications totalling 0 lines
    PickOnionPeel0 modifications totalling 0 lines
    PickSubset0 modifications totalling 0 lines
    PickMatFracsThreshold0 modifications totalling 0 lines
    PickReflect0 modifications totalling 0 lines
    PickFilledBoundary0 modifications totalling 0 lines
    PickMultiBlock0 modifications totalling 0 lines
    PickSurface0 modifications totalling 0 lines
    PickBigSilMat0 modifications totalling 0 lines
    PickOnionPeel20 modifications totalling 0 lines
    PickSpecMix0 modifications totalling 0 lines
    PickCurve0 modifications totalling 0 lines
    PickMultiWindow0 modifications totalling 0 lines
    PickAfterEngineClose0 modifications totalling 0 lines
    PickAfterEngineCrash0 modifications totalling 0 lines
    PickBoundary0 modifications totalling 0 lines
    PickVectorPlot0 modifications totalling 0 lines
    PickPointMeshes0 modifications totalling 0 lines
    PickGlobalIds0 modifications totalling 0 lines
    PickExpressions0 modifications totalling 0 lines
    PickAMR0 modifications totalling 0 lines
    PickSamrai_010 modifications totalling 0 lines
    PickSamrai_020 modifications totalling 0 lines
    PickSamrai_030 modifications totalling 0 lines
    PickSamrai_040 modifications totalling 0 lines
    PickSamrai_050 modifications totalling 0 lines
    PickIndexSelect0 modifications totalling 0 lines
    PickTensors0 modifications totalling 0 lines
    PickMili0 modifications totalling 0 lines
    PickContour0 modifications totalling 0 lines
    PickBox0 modifications totalling 0 lines
    PickScatter0 modifications totalling 0 lines
    PickHighlight_010.000.00
    GlobalHighlight_000.000.00
    PickHighlightColor_010.000.00
    PickRange_010.000.00
    RemovePicks_010.000.00
    RemovePicks_020.000.00
    Removed expected picks
     "A, C, D" .eq. "A, C, D" : True
    RemovePicks_030.000.00
    RemovePicks_040.000.00
    Removed expected picks 2
     "E" .eq. "E" : True
    RemoveLabeledPicks_000.000.00
    RemoveLabeledPicks_010.000.00
    Removed expected shell
     "shell 1, shell 2" .eq. "shell 1, shell 2" : True
    PickLines3D0 modifications totalling 0 lines
    PickByZoneLabel0 modifications totalling 0 lines
    PickByNodeLabel0 modifications totalling 0 lines
    PickRangeByZoneLabel0 modifications totalling 0 lines
    SwivelFocus_000.000.00
    SwivelHighlight_000.000.00
    NodeHighlight_000.000.00
    TranslatedHighlight_000.000.00
    TestPickingExpression_000 modifications totalling 0 lines
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pickNamedArgs.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pickNamedArgs.html new file mode 100644 index 000000000..71af3ffbb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pickNamedArgs.html @@ -0,0 +1,90 @@ + +Results for queries/pickNamedArgs.py + +

    Results of VisIt Regression Test - queries/pickNamedArgs

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    TimePick_NamedArgs_000.000.00
    Curve type 0, pressure first value
     0.019999999552965164 .eq. 0.019999999552965164 (prec=14) : True
    Curve type 0, v first value
     0.0010749432258307934 .eq. 0.0010749432258307394 (prec=14) : True
    TimePick_NamedArgs_010.000.00
    TimePick_NamedArgs_020.000.00
    TimePick_NamedArgs_030.000.00
    Curve type 1, pressure first value
     0.019999999552965164 .eq. 0.019999999552965164 (prec=14) : True
    Curve type 1, v first value
     0.0010749432258307934 .eq. 0.0010749432258307394 (prec=14) : True
    TimePick_NamedArgs_040.000.00
    Pick_UsingQueryResults0 modifications totalling 0 lines
    Pick_ByGlobalElement0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pickNamedArgs_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pickNamedArgs_py.html new file mode 100644 index 000000000..cb3499b0c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pickNamedArgs_py.html @@ -0,0 +1,242 @@ +queries/pickNamedArgs.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  pickNamedArgs.py #
    +#  Tests:      queries     - Pick using named-arguments
    +#                            Pick using query results as arguments
    +#
    +#  Defect ID:  1781
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       July 11, 2014 
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Tue Jul 22 11:51:27 MST 2014
    +#    Added Pick_ByGlobalId.
    +#
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#    individually to match current baseline results.
    +#
    +# ---------------------------------------------------------------------------- 
    +
    +def TimePick():
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +
    +    # to demonstrate the effect of changing time options, use timestep for x axis.
    +    q = GetQueryOverTimeAttributes()
    +    q.timeType = q.Timestep
    +    SetQueryOverTimeAttributes(q)
    +
    +    # Controlling which time steps are queried, showing defaults used
    +    #     stride     => int    default: 1
    +    #     start_time => int    default: 0 (min time index)
    +    #     end_time   => int    default: max time index, as determined from DB
    +
    +    # Controlling the plot type when multiple vars are queried
    +    #     curve_plot_type: 0 (Single Y Axis), or  1 (Multiple Y Axes) default: 0
    +
    +    # Which is used for subsequent timesteps, the coordinate or the element?
    +    #     preserve_coord:  0 (use the element)  or 1 (use the coordinate)
    +
    +    c = CurveAttributes()
    +    c.curveColorSource = c.Custom
    +    c.curveColor = (255, 0, 0, 255)
    +    SetDefaultPlotOptions(c)
    +
    +    vars =("pressure", "v", "direction_magnitude")
    +    PickByNode(element=8837, vars=vars, do_time=1, preserve_coord=0,curve_plot_type=0)
    +    SetActiveWindow(2);
    +    Test("TimePick_NamedArgs_00")
    +
    +    # this test and NamedArgs_03 using curve type 1 should return same values
    +    PFirstYVal =  0.019999999552965164
    +    VFirstYVal =  0.0010749432258307394
    +
    +    firstYVal=GetPlotInformation()["Curves"]["pressure"][1]
    +    TestValueEQ("Curve type 0, pressure first value", firstYVal, PFirstYVal, 14)
    +    firstYVal=GetPlotInformation()["Curves"]["v"][1]
    +    TestValueEQ("Curve type 0, v first value", firstYVal,  VFirstYVal, 14)
    +    DeleteAllPlots()
    +
    +    c.curveColor = (0, 255, 0, 255)
    +    SetDefaultPlotOptions(c)
    +
    +    SetActiveWindow(1)
    +    PickByNode(element=8837, vars=vars, do_time=1, preserve_coord=0,curve_plot_type=0,start_time=15, end_time=50, stride=7)
    +    SetActiveWindow(2);
    +    Test("TimePick_NamedArgs_01")
    +    DeleteAllPlots()
    +
    +    c.curveColor = (0, 0, 255, 255)
    +    SetDefaultPlotOptions(c)
    +    SetActiveWindow(1)
    +
    +    # different way for specifying time options, result should be same as previopus:
    +    time_opt = {'stride':7, 'start_time': 15, 'end_time':50}
    +    PickByNode(element=8837, vars=vars, do_time=1, preserve_coord=0, time_options=time_opt)
    +    SetActiveWindow(2);
    +    Test("TimePick_NamedArgs_02")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    PickByNode(element=8837, vars=vars, do_time=1, preserve_coord=0,curve_plot_type=1)
    +    SetActiveWindow(2);
    +    Test("TimePick_NamedArgs_03")
    +
    +    # these should be the same as TimePick_NamedArgs_00
    +    firstYVal=GetPlotInformation()["Curves"]["pressure"][1]
    +    TestValueEQ("Curve type 1, pressure first value", firstYVal, PFirstYVal, 14)
    +    firstYVal=GetPlotInformation()["Curves"]["v"][1]
    +    TestValueEQ("Curve type 1, v first value", firstYVal,  VFirstYVal, 14)
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1);
    +    PickByNode(element=8837, vars=vars, do_time=1, preserve_coord=0,curve_plot_type=1,stride=10)
    +    SetActiveWindow(2);
    +    Test("TimePick_NamedArgs_04")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("wave.visit"))
    +
    +def PickUsingQueryResults():
    +    ResetPickLetter()
    +    OpenDatabase(silo_data_path("wave.visit"))
    +    AddPlot("FilledBoundary", "Material")
    +    SetTimeSliderState(31)
    +    DrawPlots()
    +
    +    # Make it easier to get coordinate values
    +    SetQueryOutputToValue()
    +    s = "Pick using results of Node Coords query:\n"
    +
    +    node_8837_coords = Query("Node Coords", element=8837)
    +
    +    # Now test that NodePick using those coords will return the correct node id
    +    # Utilizes named args: coord (a tuple containing spatial coordinates)
    +
    +    pick_out = NodePick(coord=node_8837_coords)
    +    if pick_out['node_id'] == 8837:
    +        s = s + "    NodePick with coordinate succeeded.\n"
    +    else:
    +        s = s + "    NodePick with coordinate failed to return correct node id.\n"
    +
    +
    +    s = "Pick using results of Zone Center query:\n"
    +    # select a zone that is incident to node 8837
    +    adjacent_zone = pick_out['incident_zones'][0]
    +    # Get it's coords and try a pick
    +    adjacent_zone_coords = Query("Zone Center", element=adjacent_zone)
    +    pick_out = ZonePick(coord=adjacent_zone_coords)
    +    if pick_out['zone_id'] == adjacent_zone:
    +        s = s + "    ZonePick with coordinate succeeded.\n"
    +    else:
    +        s = s + "    ZonePick with coordinate failed to return correct node id\n"
    +
    +    # Now, does Pick report that our original node id is incident to the picked zone?
    +    if 8837 in pick_out['incident_nodes']:
    +        s = s + "    ZonePick correctly reported incident node\n"
    +    else:
    +        s = s + "    ZonePick failed to correctly report incident node\n"
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("wave.visit"))
    +
    +
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +    # d is zonal quantity, so picks will be by-zone
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    # Change query output type for parse-ability of MinMax results
    +    SetQueryOutputToObject()
    +
    +    # Do a MinMax query, and use the results to drive a pick.
    +    res = Query("MinMax")
    +    s = s + "\nQuery for MinMax of 'd': \n" + GetQueryOutputString()
    +
    +    s = s + "Pick using results of MinMax Query:\n\n"
    +
    +    # Pick using MinMax results
    +    # Utilizes named args: 
    +    #     domain (an integer), 
    +    #     element (an integer representing node id or zone id depending on the type of Pick)
    +    pick_out = PickByZone(domain=res['min_domain'], element=res['min_element_num'])
    +    s = s + "Pick for zone at 'd' minimum: \n" + GetPickOutput()
    +    pick_out = PickByZone(domain=res['max_domain'], element=res['max_element_num'])
    +    s = s + "Pick for zone at 'd' maximum: \n" + GetPickOutput()
    +    TestText("Pick_UsingQueryResults", s)
    +    ResetPickLetter()
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +
    +
    +def doGlobalPicks(centering):
    +    s = "Global node pick on %s_centered data:\n\n" %centering
    +    d = PickByGlobalNode(element=246827)
    +    # use json.dumps for dictionary object, makes for easier parsing
    +    # of diffs when there are errors
    +    s = s + "dictionary output:\n" + json.dumps(d,indent=2) + "\n\n"
    +    s = s + "string output: " + GetPickOutput() + "\n\n"
    +
    +    s = s + "\nGlobal zone pick on %s_centered data:\n\n" %centering
    +    d = PickByGlobalZone(element=237394)
    +    s = s + "dictionary output:\n" + json.dumps(d,indent=2) + "\n\n"
    +    s = s + "string output: " + GetPickOutput() + "\n\n"
    +
    +    return s
    +
    +def PickByGlobalElement():
    +    OpenDatabase(silo_data_path("global_node.silo"))
    +
    +    AddPlot("Pseudocolor", "dist")
    +    DrawPlots()
    +    ResetView()
    +    p = GetPickAttributes()
    +    p.showGlobalIds = 0
    +    SetPickAttributes(p)
    +
    +    s = "NOT SHOWING GLOBAL IDS\n\n"
    +    s = s + doGlobalPicks("node")
    +
    +    #  Repeat, showing global ids
    +    p.showGlobalIds = 1
    +    SetPickAttributes(p)
    +
    +    s = s + "SHOWING GLOBAL IDS\n\n"
    +    s = s + doGlobalPicks("node")
    +
    +    p.showGlobalIds = 0
    +    SetPickAttributes(p)
    +
    +    # now use a zone-centered var
    +    ChangeActivePlotsVar("p")
    +
    +    s = s + "NOT SHOWING GLOBAL IDS\n\n"
    +    s = s + doGlobalPicks("zone")
    +
    +    #  Repeat, showing global ids
    +    p.showGlobalIds = 1
    +    SetPickAttributes(p)
    +
    +    s = s + "SHOWING GLOBAL IDS\n\n"
    +    s = s + doGlobalPicks("zone")
    +
    +    TestText("Pick_ByGlobalElement", s)
    +    # cleanup
    +    p.showGlobalIds = 0
    +    SetPickAttributes(p)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +TimePick()
    +PickUsingQueryResults()
    +PickByGlobalElement()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pick_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pick_py.html new file mode 100644 index 000000000..1e4b72159 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pick_py.html @@ -0,0 +1,3268 @@ +queries/pick.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  pick.py #
    +#  Tests:      queries     - Pick
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Kathleen Bonnell
    +#  Date:       May 13, 2003
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Fri Jun 27 16:03:57 PDT 2003
    +#    Modified PickFilledBoundary (removed MeshPlot) so that test is preformed
    +#    on FilledBoundaryPlot and not MeshPlot.
    +#
    +#    Kathleen Bonnell, Tue Jul  8 21:17:17 PDT 2003
    +#    Modified PickFilledBoundary to use flip of slice so that it still works
    +#    with recent slice changes.
    +#
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from Subset and FilledBoundary plots.
    +#
    +#    Kathleen Bonnell, Wed Sep 10 11:36:32 PDT 2003
    +#    Added test for multi-block meshes.
    +#
    +#    Kathleen Bonnell, Fri Oct 10 17:43:46 PDT 2003
    +#    Added test for surface plots.
    +#
    +#    Kathleen Bonnell, Fri Oct 24 16:09:33 PDT 2003
    +#    Added test for PC of BigSil, and pickvar = material.
    +#
    +#    Kathleen Bonnell, Wed Nov  5 14:30:35 PST 2003
    +#    Per VisIt000033891, add another onion peel test, where there is only
    +#    1 cell, and window is set to use Actual extents.
    +#
    +#    Kathleen Bonnell, Thu Nov 13 12:07:20 PST 2003
    +#    Use SetOperatorOptions instead of SetDefaultOperatorOption in OnionPeel, so
    +#    that OnionPeel2 will work correctly.  Added vars to OnionPeel2.
    +#
    +#    Kathleen Bonnell, Tue Nov 18 17:23:43 PST 2003
    +#    Added use of PickAtts' useNodeCoords, logicalCoords and logicalZone for
    +#    a few tests.
    +#
    +#    Kathleen Bonnell, Thu Nov 20 16:29:45 PST 2003
    +#    Added PicSpecMix tests, for species vars, (VisIt '3864).
    +#    Added a 'vel' only test to PickMatFracsThreshold (VisIt '4103).
    +#
    +#    Kathleen Bonnell, Wed Nov 26 11:26:04 PST 2003
    +#    Added calls to ResetPickLetter after each test, so that each test's
    +#    pick letter starts out with 'A'.  This will prevent the necessity of
    +#    updating all pick baselines when modifications are made to only one test.
    +#    Added tests for new pick methods: PickByZone, PickByNode. ('4123)
    +#
    +#    Kathleen Bonnell, Wed Dec  3 07:51:52 PST 2003
    +#    Added PickCurve tests, for curve plots. (VisIt '3832).
    +#
    +#    Kathleen Bonnell, Mon Mar  8 15:47:52 PST 2004
    +#    Added more tests  to TestSpecMix, to verify that we get same results
    +#    regardless of whether 'species' is the active variable, or some other
    +#    scalar is the active variale.
    +#
    +#    Kathleen Bonnell, Tue Mar 16 16:26:17 PST 2004
    +#    Added bad variables and expression variable tests to PickMultiBlock,
    +#    from bug '4571.
    +#
    +#    Kathleen Bonnell, Thu Apr  1 09:21:22 PST 2004
    +#    Added  a "Variable by Zone" and "Variable by Node" Query to PickSpecMix
    +#    in order to test that these queries return the same values as their
    +#    Pick counterparts.
    +#
    +#    Kathleen Bonnell, Tue Apr 20 09:42:30 PDT 2004
    +#    Added PickMultiWindow.
    +#
    +#    Kathleen Bonnell, Thu Apr 29 07:40:58 PDT 2004
    +#    Slice defaults atts have changed, update accordingly.
    +#
    +#    Brad Whitlock, Mon May 3 15:31:40 PST 2004
    +#    I added a couple of tests that test how pick works if an engine is closed
    +#    or if one crashes.
    +#
    +#    Kathleen Bonnell, Tue May  4 14:35:08 PDT 2004
    +#    Changed a couple of screen coordinates for PickBigSilMat that were
    +#    invalid.
    +#
    +#    Kathleen Bonnell, Wed Jun  2 10:14:58 PDT 2004
    +#    Added tests to Pick2D to tests PickByNode and PickByZone on a dataset
    +#    with ghost zones.  Added test to PickSurface, tests various flavors
    +#    of pick to see if they are returning the same info for the same input.
    +#
    +#    Kathleen Bonnell, Thu Jul  8 16:30:07 PDT 2004
    +#    Added  PickedBoundary, to test picking on 2D Boundary plots and
    +#    3D Sliced-to-2D Boundary plots with unstructured, rectilinear and
    +#    curvilinear data.
    +#
    +#    Jeremy Meredith, Wed Jul 21 08:59:24 PDT 2004
    +#    Making print output go to stderr.
    +#
    +#    Kathleen Bonnell, Thu Jul 22 08:35:45 PDT 2004
    +#    Added test of data designated as 'ascii' to Pick2D (using rect2d).
    +#
    +#    Kathleen Bonnell, Wed Aug 11 09:04:56 PDT 2004
    +#    Added to Pick3DTo2D, a test of data sliced along boundary between zones,
    +#    to verify that picking with all materials ON returns same results as
    +#    with some materials OFF. ('5279)
    +#
    +#    Brad Whitlock, Wed Aug 25 12:30:45 PDT 2004
    +#    Added TurnMaterialsOn to PickMultiBlock since it was remembering the
    +#    material selection for mulit_rect3d.silo from an earlier pick test.
    +#
    +#    Kathleen Bonnell, Wed Sep  8 09:36:30 PDT 2004
    +#    Renamed 'WorldPick' to 'Pick' and 'WorldNodePick' to 'NodePick'.
    +#
    +#    Kathleen Bonnell, Fri Oct 22 16:11:41 PDT 2004
    +#    Added PickVectorPlots.
    +#
    +#    Kathleen Bonnell, Tue Nov  2 10:16:36 PST 2004
    +#    Added PickPointMeshes.
    +#
    +#    Kathleen Bonnell, Wed Dec 15 15:38:41 PST 2004
    +#    Added PickGlobalIds.
    +#
    +#    Kathleen Bonnell, Thu Dec 16 17:16:33 PST 2004
    +#    Added PickByNode and PickByZone to PickGlobalIds.
    +#
    +#    Kathleen Bonnell, Mon Dec 20 10:49:59 PST 2004
    +#    Removed  "Variable by Zone" and "Variable by Node" Query from PickSpecMix
    +#    as they are no longer supported.
    +#
    +#    Kathleen Bonnell, Thu Feb  3 09:27:22 PST 2005
    +#    Added PickExpressions, testing matvf and mirvf per '5799.
    +#
    +#    Kathleen Bonnell, Tue Mar  1 13:11:31 PST 2005
    +#    Added couple more tests to PickExpressions, testing Expression that
    +#    has not been plotted, per '5418.
    +#
    +#    Brad Whitlock, Wed Mar 9 09:15:30 PDT 2005
    +#    Removed deprecated functions.
    +#
    +#    Kathleen Bonnell, Wed May 11 18:04:12 PDT 2005
    +#    Per ticket '6097, added tests to 'PickGlobalIds' to ensure global ids
    +#    returned correctly for global zone/node picks.
    +#
    +#    Kathleen Bonnell, Mon May 23 13:41:50 PDT 2005
    +#    Per ticket '6217, added tests to 'PickFilledBoundary' to ensure node
    +#    pick of sliced FB plot returns correct coords.
    +#
    +#    Kathleen Bonnell, Fri Jun 10 14:38:27 PDT 2005
    +#    Per ticket '6296 -- added tests to PickVectorPlots to ensure that
    +#    pick of vector expression won't causes crash
    +#
    +#    Kathleen Bonnell, Thu Jun 30 15:39:03 PDT 2005
    +#    Added tests for AMR data.
    +#
    +#    Kathleen Bonnell, Fri Jul  8 14:12:03 PDT 2005
    +#    Added more tests for AMR data: PickSamrai.
    +#
    +#    Kathleen Bonnell, Wed Aug 10 17:12:50 PDT 2005
    +#    Added PickIndexSelect.
    +#
    +#    Kathleen Bonnell, Tue Aug 30 15:19:34 PDT 2005
    +#    Added PickTensors.  '6410
    +#
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +#    Kathleen Bonnell, Tue May  2 08:38:28 PDT 2006
    +#    Added PickMili ('7144, '7145).
    +#
    +#    Kathleen Bonnell, Tue Aug 29 09:34:17 PDT 2006
    +#    Added Pickcontour ('7220).
    +#
    +#    Kathleen Bonnell, Thu Oct 26 14:24:45 PDT 2006
    +#    Added PickBox ('7566).
    +#
    +#    Jeremy Meredith, Mon Jul 14 11:17:29 EDT 2008
    +#    Allow the sliced vector plot to show all vectors (even ones not from
    +#    from original cells/nodes) to match the old behavior.
    +#
    +#    Kathleen Bonnell, Wed Jul 15 10:22:54 PDT 2009
    +#    Changed some zone picks to Node picks for PickPointMeshes, should yield
    +#    same results.  Added Subset plot test for PickPointMeshes.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Wed Mar  7 19:33:48 PST 2012
    +#    'displayXXX' attributes have been changed to 'showXXX'.
    +#
    +#    Kathleen Biagas, Thu Mar  8 13:52:37 PST 2012
    +#    Added test for picking scatter plots.
    +#
    +#    Matt Larsen, Mon Sep 19 10:20:11 PDT 2016
    +#    Added a test for zone pick highlighting
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    For PickSubset, change plot var to 'domains' as Subset plots shouldn't
    +#    work for materials.  Change pick var to 'mat1' to preserve baselines.
    +#
    +#    Matt Larsen, Wed Sep 6 16:23:12 PST 2017
    +#    Adding tests for pick by label for mili files.
    +#
    +#    Alister Maguire, Tue Sep 26 14:23:09 PDT 2017
    +#    Added test for pick highlight color.
    +#
    +#    Alister Maguire, Mon Oct 23 10:34:28 PDT 2017
    +#    Added tests for removing a list of picks.
    +#
    +#    Alister Maguire, Mon Oct 30 15:54:30 PDT 2017
    +#    Added test for removing a list of labeled picks.
    +#
    +#    Matt Larsen, Wed Feb 28 08:24:31 PDT 2018
    +#    Turning off all anotations for pick highlight tests
    +#
    +#    Alister Maguire, Thu Aug 16 10:18:56 PDT 2018
    +#    Added a test for swivel highlight.
    +#
    +#    Alister Maguire, Mon Aug 20 12:45:25 PDT 2018
    +#    Added a test for node highlight.
    +#
    +#    Alister Maguire, Tue May 21 13:10:05 PDT 2019
    +#    Updated tests that use mili to adhere to the plugin changes.
    +#
    +#    Alister Maguire, Thu Sep 12 15:54:36 PDT 2019
    +#    Add test for highlighting a zone picked by global id.
    +#
    +#    Alister Maguire, Thu Jan  2 15:16:53 PST 2020
    +#    Added test for translated zone highlights.
    +#
    +#    Mark C. Miller, Mon Jan 11 10:38:03 PST 2021
    +#    Replace Assert-style with TestValue-style tests
    +#
    +#    Alister Maguire, Fri Jul 16 07:27:44 PDT 2021
    +#    Added a test for Picking an expression variable.
    +#
    +#    Kathleen Biagas, Wed Feb 16 09:15:45 PST 2022
    +#    Replace use of meshatts 'foregroundFlag' with meshColorSource.
    +#
    +# ----------------------------------------------------------------------------
    +from __future__ import print_function
    +
    +
    +RequiredDatabasePlugin(("Boxlib2D","SAMRAI","Mili"))
    +defaultAtts = GetPickAttributes()
    +
    +def Pick3DTo2D():
    +    # Testing pick on 3d plots projected to 2d via Slice and Cone operators
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    AddOperator("Slice")
    +    slice = SliceAttributes()
    +    slice.SetOriginPoint(0, 0, 0)
    +    slice.SetNormal(1, 0, 0)
    +    slice.SetUpAxis(0, 1, 0)
    +    slice.project2d = 1
    +    SetOperatorOptions(slice)
    +    DrawPlots()
    +
    +    # Create the variable list.
    +    vars = ("default")
    +
    +    # Do some picks.
    +    Pick(128, 107, vars)
    +    s = GetPickOutput()
    +    Pick(200, 207, vars)
    +    s = s + GetPickOutput()
    +
    +    # Test new pick methods
    +    PickByZone(554, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(945, vars)
    +    s = s + GetPickOutput()
    +
    +    # Turn off some materials, and verify we get
    +    #  same results
    +    TurnMaterialsOff("1")
    +    Pick(128, 107, vars)
    +    s = s + GetPickOutput()
    +    Pick(200, 207, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(554, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(945, vars)
    +    s = s + GetPickOutput()
    +
    +    TurnMaterialsOn("1")
    +    RemoveLastOperator()
    +
    +    AddOperator("Cone")
    +    DrawPlots()
    +    ResetView()
    +    Pick(165, 170, vars)
    +    s  = s + GetPickOutput()
    +    Pick(137, 100, vars)
    +    s = s + GetPickOutput()
    +
    +    # Test new Pick methods.
    +    PickByZone(503, vars)
    +    s  = s + GetPickOutput()
    +    PickByZone(596, vars)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    # VisIt00005279
    +    #  When sliced along boundary between zones,
    +    #  pick with all materials returns different output than
    +    #  pick with some materials turned off.
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    AddOperator("Slice")
    +    slice = SliceAttributes()
    +    slice.axisType = slice.XAxis
    +    #set the slice plane on a boundary between zones
    +    slice.originIntercept = 0.2
    +    slice.project2d = 1
    +    SetOperatorOptions(slice)
    +    DrawPlots()
    +
    +    s = s + "\nPick with all materials turned on:\n"
    +    Pick(80, 60)
    +    s = s + GetPickOutput()
    +    PickByZone(226, 1)
    +    s = s + GetPickOutput()
    +    Pick(185, 160)
    +    s = s + GetPickOutput()
    +    PickByZone(606, 19)
    +    s = s + GetPickOutput()
    +    NodePick(80, 60)
    +    s = s + GetPickOutput()
    +    PickByNode(402, 1)
    +    s = s + GetPickOutput()
    +    NodePick(185, 160)
    +    s = s + GetPickOutput()
    +    PickByNode(853, 19)
    +    s = s + GetPickOutput()
    +    TurnMaterialsOff("2")
    +    s = s + "\nPick with material 2 turned off:\n"
    +    Pick(80, 60)
    +    s = s + GetPickOutput()
    +    PickByZone(226, 1)
    +    s = s + GetPickOutput()
    +    Pick(185, 160)
    +    s = s + GetPickOutput()
    +    PickByZone(606, 19)
    +    s = s + GetPickOutput()
    +    NodePick(80, 60)
    +    s = s + GetPickOutput()
    +    PickByNode(402, 1)
    +    s = s + GetPickOutput()
    +    NodePick(185, 160)
    +    s = s + GetPickOutput()
    +    PickByNode(853, 19)
    +    s = s + GetPickOutput()
    +    TurnMaterialsOn("2")
    +    TestText("Pick3DTo2D", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def Pick2D():
    +    OpenDatabase(silo_data_path("ucd2d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    ResetView()
    +    vars = ("d", "p", "u")
    +    Pick(170, 65, vars)
    +    s = GetPickOutput()
    +    Pick(140, 161, vars)
    +    s = s + GetPickOutput()
    +
    +    # Test new pick method
    +    PickByZone(5, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(4, vars)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    # Test PickByZone and PickByNode on data with ghost zones.
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    ResetView()
    +
    +    v = GetView2D()
    +    v.windowCoords = (-0.70073, 0.9927, 1.75365, 2.63085)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    SetView2D(v)
    +
    +    vars = ("default")
    +    Pick(177, 90, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(13)
    +    s = s + GetPickOutput()
    +    NodePick(177, 90, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(13)
    +    s = s + GetPickOutput()
    +
    +    ResetView()
    +
    +    Pick(164, 136)
    +    s = s + GetPickOutput()
    +    PickByZone(716)
    +    s = s + GetPickOutput()
    +
    +    NodePick(164, 136)
    +    s = s + GetPickOutput()
    +    PickByNode(744)
    +    s = s + GetPickOutput()
    +
    +    Pick(113, 84)
    +    s = s + GetPickOutput()
    +    PickByZone(360)
    +    s = s + GetPickOutput()
    +
    +    NodePick(113, 84)
    +    s = s + GetPickOutput()
    +    PickByNode(374)
    +    s = s + GetPickOutput()
    +
    +    Pick(218, 65)
    +    s = s + GetPickOutput()
    +    PickByZone(81)
    +    s = s + GetPickOutput()
    +
    +    NodePick(218, 65)
    +    s = s + GetPickOutput()
    +    PickByNode(85)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    # bug '5152, ascii data not reported as such.
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    AddPlot("Pseudocolor", "ascii")
    +    DrawPlots()
    +
    +    ResetView()
    +
    +    Pick(104, 224)
    +    s = s + GetPickOutput()
    +    Pick(155, 140)
    +    s = s + GetPickOutput()
    +    Pick(234, 278)
    +    s = s + GetPickOutput()
    +    Pick(151, 266)
    +    s = s + GetPickOutput()
    +    Pick(187, 106)
    +    s = s + GetPickOutput()
    +
    +    NodePick(104, 224)
    +    s = s + GetPickOutput()
    +    NodePick(155, 140)
    +    s = s + GetPickOutput()
    +    NodePick(234, 278)
    +    s = s + GetPickOutput()
    +    NodePick(151, 266)
    +    s = s + GetPickOutput()
    +    NodePick(187, 106)
    +    s = s + GetPickOutput()
    +
    +    TestText("Pick2D", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickOnionPeel():
    +    # Testing pick on 3d plots with OnionPeel operator
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    AddOperator("OnionPeel")
    +    op = OnionPeelAttributes()
    +    op.adjacencyType = 0
    +    op.categoryName = "domains"
    +    op.subsetName = "domain4"
    +    op.index = 15
    +    op.requestedLayer = 0
    +    SetOperatorOptions(op)
    +
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0.0199972, -0.0176736, 0.999644)
    +    v.focus = (1.05702, 2.19945, 3.66667)
    +    v.viewUp = (-0.0156863, 0.999715, 0.0179886)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.794807
    +    v.nearPlane = -7.9865
    +    v.farPlane = 7.9865
    +    v.perspective = 0
    +    SetView3D(v)
    +
    +    #From defect VisIt00002762, pick shouldn't report repeated vars
    +    vars = ("default", "d", "p", "u", "p", "v")
    +    pa = GetPickAttributes()
    +    pa.showNodePhysicalCoords = 1
    +    SetPickAttributes(pa)
    +    Pick(271, 64, vars)
    +    s = GetPickOutput()
    +    Pick(282, 53, vars)
    +    s = s + GetPickOutput()
    +
    +    PickByZone(15, 4, vars)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickOnionPeel", s)
    +    pa.showNodePhysicalCoords = 0
    +    SetPickAttributes(pa)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickSubset():
    +    #Testing Pick's accuracy on a sil-restricted plot.
    +    #All the picks in this test should return zone 30.
    +    #From defect VisIt00003348
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Subset", "domains")
    +    TurnMaterialsOff()
    +    TurnMaterialsOn("1")
    +
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.997376, 0.0429928, 0.058241)
    +    v.focus = (-0.0906961, 0.0532744, -1.5925)
    +    v.viewUp = (0.0448435, 0.998518, 0.0308499)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.598088
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.perspective = 0
    +    SetView3D(v)
    +
    +    vars = ("mat1")
    +    Pick(173, 111, vars)
    +    s = GetPickOutput()
    +    Pick(191, 116, vars)
    +    s = s + GetPickOutput()
    +    Pick(294, 125, vars)
    +    s = s + GetPickOutput()
    +    Pick(156, 128, vars)
    +    s = s + GetPickOutput()
    +    Pick(147, 112, vars)
    +    s = s + GetPickOutput()
    +    TestText("PickSubset", s)
    +    TurnMaterialsOn()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +
    +def PickMatFracsThreshold():
    +    # Testing pick on 3d plot with Threshold operator, returning
    +    # material var (mat fracs) and vector var.
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Pseudocolor", "p")
    +    thresh = ThresholdAttributes()
    +    thresh.upperBounds = (37.0)
    +    thresh.lowerBounds = (10.0)
    +    SetDefaultOperatorOptions(thresh)
    +    AddOperator("Threshold")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, 1)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.181485
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.perspective = 0
    +    SetView3D(v)
    +
    +    pa = GetPickAttributes()
    +    pa.showNodeDomainLogicalCoords = 1
    +    pa.showZoneDomainLogicalCoords = 1
    +    SetPickAttributes(pa)
    +    vars = ("mat1", "vel")
    +    Pick(151, 172, vars)
    +    s = GetPickOutput()
    +    Pick(211, 185, vars)
    +    s = s + GetPickOutput()
    +    Pick(78, 153, vars)
    +    s = s + GetPickOutput()
    +    Pick(150, 124, vars)
    +    s = s + GetPickOutput()
    +
    +    #Test new pick method
    +    PickByZone(21045, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(18647, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(19812, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(20954, vars)
    +    s = s + GetPickOutput()
    +
    +    pa.showNodeDomainLogicalCoords = 0
    +    pa.showZoneDomainLogicalCoords = 0
    +    SetPickAttributes(pa)
    +
    +    # Add a few with only vel as the var
    +    # From bug: VisIt00004103
    +    RemoveLastOperator()
    +    vars = ("vel")
    +    Pick(78, 153, vars)
    +    s = s + GetPickOutput()
    +    Pick(150, 124, vars)
    +    s = s + GetPickOutput()
    +
    +    #Test new pick method
    +    PickByZone(35412, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(35354, vars)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickMatFracsThreshold", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickReflect():
    +    # Testing pick on plot with Reflect operator.
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    AddOperator("Reflect")
    +    DrawPlots()
    +    ResetView()
    +    vars = ("default")
    +    Pick(149, 206, vars)
    +    s = GetPickOutput()
    +    Pick(149, 94, vars)
    +    s = s + GetPickOutput()
    +    NodePick(coord=(0, 3, 0))
    +    s = s + GetPickOutput()
    +    NodePick(coord=(0, -3, 0))
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    # Try a rectilinear grid
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    AddPlot("Subset", "Mesh")
    +    AddOperator("Reflect")
    +    DrawPlots()
    +    ResetView()
    +
    +    Pick(coord=(-5, 5, 10))
    +    s = s + GetPickOutput()
    +    NodePick(coord=(-5, 5, 10))
    +    s = s + GetPickOutput()
    +    Pick(coord=(-5, -25, 10))
    +    s = s + GetPickOutput()
    +    NodePick(coord=(-5, -25, 10))
    +    s = s + GetPickOutput()
    +
    +
    +    TestText("PickReflect", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +
    +def PickFilledBoundary():
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    AddPlot("FilledBoundary", "mat1")
    +
    +    AddOperator("Slice")
    +    s= SliceAttributes()
    +    s.originIntercept = 2.89833
    +    s.originType = s.Intercept
    +    s.normal = (0, 1, 0)
    +    s.upAxis = (1, 0, 0)
    +    s.axisType = s.YAxis
    +    s.flip = 1
    +    s.project2d = 1
    +    SetOperatorOptions(s)
    +
    +    v = GetView2D()
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.windowCoords = (7.07307, 8.30598, 2.26402, 2.88047)
    +    SetView2D(v)
    +    DrawPlots()
    +
    +    vars = ("default")
    +    Pick(153, 69, vars)
    +    p = GetPickOutput()
    +    Pick(222, 56, vars)
    +    p += GetPickOutput()
    +    Pick(118, 77, vars)
    +    p += GetPickOutput()
    +    Pick(141, 74, vars)
    +    p += GetPickOutput()
    +    Pick(180, 68, vars)
    +    p += GetPickOutput()
    +    Pick(224, 75, vars)
    +    p += GetPickOutput()
    +    Pick(198, 56, vars)
    +    p += GetPickOutput()
    +    Pick(113, 70, vars)
    +    p += GetPickOutput()
    +    Pick(119, 57, vars)
    +    p += GetPickOutput()
    +    Pick(157, 66, vars)
    +    p += GetPickOutput()
    +    Pick(199, 66, vars)
    +    p += GetPickOutput()
    +    Pick(227, 79, vars)
    +    p += GetPickOutput()
    +
    +    # Test new pick method
    +    PickByZone(320, 17, vars)
    +    p += GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    # bug 6217 -- NodePick on Sliced FB returning wrong coords.
    +    # will test with Mesh, OnionPeeled Mesh and FB to verify
    +    # they all return the same nodes/zones and coords.
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    AddPlot("Mesh", "mesh1")
    +    m = MeshAttributes()
    +    m.meshColor = (255, 255, 0, 255)
    +    m.meshColorSource = m.MeshCustom
    +    m.lineWidth = 2
    +    SetPlotOptions(m)
    +    AddOperator("OnionPeel", 0)
    +    op = OnionPeelAttributes()
    +    op.index = 679
    +    SetOperatorOptions(op)
    +
    +    AddPlot("FilledBoundary","mat1")
    +    AddOperator("Slice", 1)
    +    DrawPlots()
    +    ResetView()
    +
    +    SetActivePlots(0)
    +    Pick(247, 188, vars)
    +    p = p + GetPickOutput()
    +    NodePick(247, 188, vars)
    +    p = p + GetPickOutput()
    +
    +    SetActivePlots(1)
    +    Pick(247, 188, vars)
    +    p = p + GetPickOutput()
    +    NodePick(247, 188, vars)
    +    p = p + GetPickOutput()
    +    SetActivePlots(2)
    +    Pick(247, 188, vars)
    +    p = p + GetPickOutput()
    +    NodePick(247, 188, vars)
    +    p = p + GetPickOutput()
    +    TestText("PickFilledBoundary", p)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickMultiBlock():
    +    # Testing pick on 3d multi-domain plots
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.perspective = 1
    +    SetView3D(v)
    +
    +    vars = ("default", "d", "p")
    +    Pick(109, 113, vars)
    +    s = GetPickOutput()
    +    Pick(74, 114, vars)
    +    s = s + GetPickOutput()
    +    Pick(192, 114, vars)
    +    s = s + GetPickOutput()
    +    Pick(230, 114, vars)
    +    s = s + GetPickOutput()
    +    Pick(155, 148, vars)
    +    s = s + GetPickOutput()
    +    Pick(153, 185, vars)
    +    s = s + GetPickOutput()
    +    Pick(106, 149, vars)
    +    s = s + GetPickOutput()
    +    Pick(196, 144, vars)
    +    s = s + GetPickOutput()
    +    Pick(119, 157, vars)
    +    s = s + GetPickOutput()
    +    Pick(180, 160, vars)
    +    s = s + GetPickOutput()
    +    Pick(97, 130, vars)
    +    s = s + GetPickOutput()
    +    Pick(212, 129, vars)
    +    s = s + GetPickOutput()
    +
    +
    +    # Test new pick method
    +    PickByZone(15, 34, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(15, 36, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(75, 25, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(83, 27, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(15, 28, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(4, 30, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(94, 35, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(15, 26, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(25, 32, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(64, 29, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(56, 35, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(51, 26, vars)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    TurnMaterialsOn()
    +    DrawPlots()
    +    ResetView()
    +    vars = ("default", "u", "d", "p")
    +    Pick(61, 61, vars)
    +    s = s + GetPickOutput()
    +    Pick(61, 188, vars)
    +    s = s + GetPickOutput()
    +    Pick(79, 233, vars)
    +    s = s + GetPickOutput()
    +    Pick(80, 64, vars)
    +    s = s + GetPickOutput()
    +    Pick(99, 120, vars)
    +    s = s + GetPickOutput()
    +    Pick(115, 236, vars)
    +    s = s + GetPickOutput()
    +    Pick(154, 194, vars)
    +    s = s + GetPickOutput()
    +    Pick(155, 150, vars)
    +    s = s + GetPickOutput()
    +    Pick(174, 72, vars)
    +    s = s + GetPickOutput()
    +    Pick(192, 115, vars)
    +    s = s + GetPickOutput()
    +    Pick(229, 235, vars)
    +    s = s + GetPickOutput()
    +    Pick(236, 59, vars)
    +    s = s + GetPickOutput()
    +    Pick(246, 157, vars)
    +    s = s + GetPickOutput()
    +
    +    # Test new pick method
    +    PickByZone(921, 25, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(971, 31, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(964, 34, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(934, 25, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(947, 28, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(969, 34, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(985, 32, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(995, 29, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(948, 26, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(931, 30, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(966, 36, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(927, 27, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(919, 33, vars)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +    AddPlot("Pseudocolor", "dist")
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal= (1, 0, 0)
    +    SetView3D(v)
    +
    +    vars = ("default")
    +    Pick(250, 64, vars)
    +    s = s + GetPickOutput()
    +    Pick(149, 135, vars)
    +    s = s + GetPickOutput()
    +    Pick(227, 72, vars)
    +    s = s + GetPickOutput()
    +    Pick(65, 65, vars)
    +    s = s + GetPickOutput()
    +    Pick(67, 228, vars)
    +    s = s + GetPickOutput()
    +
    +    # Test new pick method
    +    PickByZone(13, 3, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(1, 15, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(118, 3, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(258, 21, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(279, 27, vars)
    +    s = s + GetPickOutput()
    +
    +    #Bug '4571, pick crashing when bad vars specified
    +    vars = ("aspect")
    +    Pick(67, 228, vars)
    +    s = s + GetPickOutput()
    +    vars = ("mesh_quality/aspect", "spurious")
    +    Pick(67, 228, vars)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickMultiBlock", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickSurface():
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Surface", "d")
    +    AddOperator("Slice")
    +    slice = SliceAttributes()
    +    slice.originIntercept = 0.5
    +    slice.project2d = 1
    +    slice.axisType = slice.YAxis
    +    SetOperatorOptions(slice)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (0, 1, 0)
    +    v.viewUp = (0, 0, -1)
    +    SetView3D(v)
    +
    +    pa = GetPickAttributes()
    +    pa.variables = ("default")
    +    SetPickAttributes(pa)
    +
    +    Pick(141, 178)
    +    s = GetPickOutput()
    +    NodePick(141, 178)
    +    s = s + GetPickOutput()
    +    Pick(194, 144)
    +    s = s + GetPickOutput()
    +    NodePick(194, 144)
    +    s = s + GetPickOutput()
    +    Pick(149, 197)
    +    s = s + GetPickOutput()
    +    NodePick(149, 197)
    +    s = s + GetPickOutput()
    +    Pick(64, 102)
    +    s = s + GetPickOutput()
    +    NodePick(64, 102)
    +    s = s + GetPickOutput()
    +    Pick(138, 126)
    +    s = s + GetPickOutput()
    +    NodePick(138, 126)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Surface", "p")
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (0, 1, 0)
    +    v.viewUp = (0, 0, -1)
    +    SetView3D(v)
    +
    +    Pick(103, 227)
    +    s = s + GetPickOutput()
    +    NodePick(103, 227)
    +    s = s + GetPickOutput()
    +    Pick(171, 86)
    +    s = s + GetPickOutput()
    +    NodePick(171, 86)
    +    s = s + GetPickOutput()
    +    Pick(129, 63)
    +    s = s + GetPickOutput()
    +    NodePick(129, 63)
    +    s = s + GetPickOutput()
    +    Pick(153, 177)
    +    s = s + GetPickOutput()
    +    NodePick(153, 177)
    +    s = s + GetPickOutput()
    +    Pick(188, 167)
    +    s = s + GetPickOutput()
    +    NodePick(188, 167)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("ucd2d.silo"))
    +
    +    AddPlot("Surface", "d")
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (0.329152, -0.014518, -0.944165)
    +    v.focus = (2, 2, 2)
    +    v.viewUp = (-0.944025, -0.0281555, -0.32867)
    +    SetView3D(v)
    +
    +    s = s + "\nThe next three results should be the same.\n"
    +    Pick(118, 112)
    +    s = s + GetPickOutput()
    +    PickByZone(3)
    +    s = s + GetPickOutput()
    +    Pick((2.74917, 2.79753, 2.82784))
    +
    +    s = s + GetPickOutput()
    +
    +    s = s + "\nThe next three results should be the same.\n"
    +    NodePick(118, 112)
    +    s = s + GetPickOutput()
    +    PickByNode(11)
    +    s = s + GetPickOutput()
    +    NodePick((2.5, 2.5, 1.41421))
    +    s = s + GetPickOutput()
    +
    +    s = s + "\nThe next three results should be the same.\n"
    +    NodePick(139, 73)
    +    s = s + GetPickOutput()
    +    PickByNode(4)
    +    s = s + GetPickOutput()
    +    NodePick((4.0, 2.0, 4.0))
    +    s = s + GetPickOutput()
    +
    +    TestText("PickSurface", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickBigSilMat():
    +    OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +    AddPlot("Pseudocolor", "dist")
    +    DrawPlots()
    +    ResetView()
    +    pa = GetPickAttributes()
    +    pa.showNodePhysicalCoords = 1
    +    SetPickAttributes(pa)
    +    vars = "mat"
    +    Pick(87, 215, vars)
    +    s = GetPickOutput()
    +    NodePick(87, 215, vars)
    +    s = s + GetPickOutput()
    +    Pick(149, 146, vars)
    +    s = s + GetPickOutput()
    +    NodePick(149, 146, vars)
    +    s = s + GetPickOutput()
    +    Pick(89, 54, vars)
    +    s = s + GetPickOutput()
    +    NodePick(89, 54, vars)
    +    s = s + GetPickOutput()
    +    Pick(217, 74, vars)
    +    s = s + GetPickOutput()
    +    NodePick(217, 74, vars)
    +    s = s + GetPickOutput()
    +    Pick(215, 233, vars)
    +    s = s + GetPickOutput()
    +    NodePick(215, 233, vars)
    +    s = s + GetPickOutput()
    +    Pick(186, 193, vars)
    +    s = s + GetPickOutput()
    +    NodePick(186, 193, vars)
    +    s = s + GetPickOutput()
    +    Pick(190, 106, vars)
    +    s = s + GetPickOutput()
    +    NodePick(190, 106, vars)
    +    s = s + GetPickOutput()
    +    Pick(117, 173, vars)
    +    s = s + GetPickOutput()
    +    NodePick(117, 173, vars)
    +    s = s + GetPickOutput()
    +    Pick(98, 86, vars)
    +    s = s + GetPickOutput()
    +    NodePick(98, 86, vars)
    +    s = s + GetPickOutput()
    +    Pick(185, 116, vars)
    +    s = s + GetPickOutput()
    +    NodePick(185, 116, vars)
    +    s = s + GetPickOutput()
    +
    +    # Test new pick methods
    +    PickByZone(319, 25, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(476, 25, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(318, 23, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(475, 23, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(311, 21, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(475, 21, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(332, 27, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(491, 27, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(294, 27, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(456, 27, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(329, 21, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(497, 21, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(329, 23, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(496, 23, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(329, 19, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(485, 19, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(294, 24, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(448, 24, vars)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickBigSilMat", s)
    +    DeleteAllPlots()
    +    pa.showNodePhysicalCoords = 0
    +    SetPickAttributes(pa)
    +    ResetPickLetter()
    +
    +def PickOnionPeel2():
    +    #From defect VisIt00003981, onionpeel and window ACTUAL_EXTENTS
    +    #pick not working
    +    print(tests_path("queries","pickonionpeel.session"), 0,silo_data_path("curv3d.silo"))
    +    RestoreSessionWithDifferentSources(tests_path("queries","pickonionpeel.session"), 0,
    +                                       silo_data_path("curv3d.silo"))
    +    vars = "default"
    +    Pick(196, 194, vars)
    +    s = GetPickOutput()
    +    Pick(59, 73, vars)
    +    s = s + GetPickOutput()
    +    Pick(128, 111, vars)
    +    s = s + GetPickOutput()
    +    Pick(50, 90, vars)
    +    s = s + GetPickOutput()
    +    Pick(275, 203, vars)
    +    s = s + GetPickOutput()
    +    Pick(277, 225, vars)
    +    s = s + GetPickOutput()
    +    Pick(52, 109, vars)
    +    s = s + GetPickOutput()
    +
    +    op = OnionPeelAttributes()
    +    op.adjacencyType = op.Face
    +    op.requestedLayer = 1
    +    op.index = 1
    +    SetOperatorOptions(op)
    +
    +    Pick(52, 105, vars)
    +    s = s + GetPickOutput()
    +    Pick(67, 65, vars)
    +    s = s + GetPickOutput()
    +    Pick(51, 86, vars)
    +    s = s + GetPickOutput()
    +    Pick(265, 210, vars)
    +    s = s + GetPickOutput()
    +    Pick(172, 165, vars)
    +    s = s + GetPickOutput()
    +
    +    op.index = 317
    +    op.requestedLayer = 0
    +    SetOperatorOptions(op)
    +
    +    Pick(76, 70, vars)
    +    s = s + GetPickOutput()
    +    Pick(37, 120, vars)
    +    s = s + GetPickOutput()
    +    Pick(119, 174, vars)
    +    s = s + GetPickOutput()
    +    Pick(273, 188, vars)
    +    s = s + GetPickOutput()
    +
    +    op.adjacencyType = op.Node
    +    op.requestedLayer = 3
    +    SetOperatorOptions(op)
    +
    +    Pick(96, 72, vars)
    +    s = s + GetPickOutput()
    +    Pick(27, 144, vars)
    +    s = s + GetPickOutput()
    +    Pick(115, 102, vars)
    +    s = s + GetPickOutput()
    +    Pick(134, 140, vars)
    +    s = s + GetPickOutput()
    +    Pick(288, 185, vars)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickOnionPeel2", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickSpecMix():
    +    #VisIt '3864
    +    OpenDatabase(silo_data_path("specmix_quad.silo"))
    +
    +    AddPlot("Pseudocolor", "Species")
    +    DrawPlots()
    +
    +    v = GetView2D()
    +    v.windowCoords = (0, 1, 0, 1)
    +    SetView2D(v)
    +
    +    vars = ("default")
    +    Pick(69, 137, vars)
    +    s = GetPickOutput()
    +    NodePick(90, 119, vars)
    +    s = s + GetPickOutput()
    +    Pick(139, 142, vars)
    +    s = s + GetPickOutput()
    +    NodePick(170, 126, vars)
    +    s = s + GetPickOutput()
    +    Pick(201, 95, vars)
    +    s = s + GetPickOutput()
    +    Pick(78, 75, vars)
    +    s = s + GetPickOutput()
    +    Pick(256, 169, vars)
    +    s = s + GetPickOutput()
    +
    +    # Test new pick method
    +    PickByZone(233, vars)
    +    s = s +GetPickOutput()
    +    PickByNode(266, vars)
    +    s = s +GetPickOutput()
    +
    +    silr = SILRestriction()
    +    onoff = 0
    +    for sets in silr.SetsInCategory('Species'):
    +        if(onoff == 0):
    +            silr.TurnOffSet(sets)
    +            onoff = 1
    +        else:
    +            onoff = 0
    +    SetPlotSILRestriction(silr)
    +
    +    NodePick(140, 197, vars)
    +    s = s + GetPickOutput()
    +    Pick(249, 112, vars)
    +    s = s + GetPickOutput()
    +    NodePick(125, 137, vars)
    +    s = s + GetPickOutput()
    +    Pick(191, 136, vars)
    +    s = s + GetPickOutput()
    +    vars = ("d", "Species")
    +    NodePick(204, 135, vars)
    +    s = s + GetPickOutput()
    +    Pick(138, 118, vars)
    +    s = s + GetPickOutput()
    +    NodePick(104, 139, vars)
    +    s = s + GetPickOutput()
    +    Pick(94, 151, vars)
    +    s = s + GetPickOutput()
    +    NodePick(182, 99, vars)
    +    s = s + GetPickOutput()
    +    # now test with 'd' as the active plot variable, should
    +    # get the same results.
    +    ChangeActivePlotsVar("d")
    +    NodePick(204, 135, vars)
    +    s = s + GetPickOutput()
    +    Pick(138, 118, vars)
    +    s = s + GetPickOutput()
    +    NodePick(104, 139, vars)
    +    s = s + GetPickOutput()
    +    Pick(94, 151, vars)
    +    s = s + GetPickOutput()
    +
    +    NodePick(182, 99, vars)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickSpecMix", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickCurve():
    +    OpenDatabase(data_path("curve_test_data/curve.visit"))
    +
    +    AddPlot("Curve", "parabolic")
    +    SetTimeSliderState(72)
    +    DrawPlots()
    +
    +    v = GetViewCurve()
    +    v.rangeCoords = (0, 1)
    +    SetViewCurve(v)
    +
    +    pa = GetPickAttributes()
    +    pa.variables = ("default")
    +    SetPickAttributes(pa)
    +
    +    Pick(72, 53)
    +    p = GetPickOutput()
    +    Pick(156, 22)
    +    p = p + GetPickOutput()
    +    Pick(15, 128)
    +    p = p + GetPickOutput()
    +    Pick(212, 200)
    +    p = p + GetPickOutput()
    +    Pick((0.2, 0.7))
    +    p = p + GetPickOutput()
    +    Pick((0.8, 0.35))
    +    p = p + GetPickOutput()
    +    Pick((0.6, 0.6))
    +    p = p + GetPickOutput()
    +    Pick((0.3, 0.5))
    +    p = p + GetPickOutput()
    +
    +    TestText("PickCurve", p)
    +    ResetPickLetter()
    +    DeleteAllPlots()
    +
    +def PickMultiWindow():
    +    OpenDatabase(silo_data_path("wave*.silo database"))
    +
    +    AddPlot("FilledBoundary", "Material")
    +    SetTimeSliderState(31)
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0, -1, 0)
    +    v.viewUp = (0, 0, 1)
    +    SetView3D(v)
    +
    +    CloneWindow()
    +    SetTimeSliderState(64)
    +    DrawPlots()
    +
    +    pt1a = (7.20585, 0.099664, 2.5)
    +    pt1b = (5.867554, 0.264801,  3.566963)
    +
    +    pt2a = (7.20585, 0.099664, 2.378386)
    +    pt2b = (5.867554, 0.039652,  3.566963)
    +
    +
    +    # Same DB, same plot, same var, different ts
    +    SetActiveWindow(1)
    +    Pick(pt1a)
    +    s = GetPickOutput()
    +
    +    SetActiveWindow(2)
    +    Pick(pt2a)
    +    s = s + GetPickOutput()
    +
    +    SetActiveWindow(1)
    +    Pick(pt1b)
    +    s = s + GetPickOutput()
    +
    +    SetActiveWindow(2)
    +    Pick(pt2b)
    +    s = s + GetPickOutput()
    +
    +    # Same DB, same plot, different var, different ts
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "v")
    +    DrawPlots()
    +
    +    Pick(pt1a)
    +    s = s + GetPickOutput()
    +    Pick(pt1b)
    +    s = s + GetPickOutput()
    +
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +
    +    Pick(pt2a)
    +    s = s + GetPickOutput()
    +    Pick(pt2b)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickMultiWindow", s)
    +    ResetPickLetter()
    +
    +    # delete window 2
    +    DeleteWindow()
    +    # remove plots from window 1
    +    DeleteAllPlots()
    +
    +#
    +# Sets up a couple test cases that test how pick interacts with the engine
    +# being gone.
    +#
    +def PickBadEngineSetup(testName, GetRidOfEngineCallback):
    +    OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.423782, 0.331476, 0.842931)
    +    v.focus = (0, 2.5, 15)
    +    v.viewUp = (0.111716, 0.942652, -0.314525)
    +    v.viewAngle = 30
    +    v.parallelScale = 16.0078
    +    v.nearPlane = -32.0156
    +    v.farPlane = 32.0156
    +    v.imagePan = (-0.0549008, 0.0570848)
    +    v.imageZoom = 1.35304
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +
    +    ptA = (0.115986, 4.290420, 29.9)
    +    Pick(ptA)
    +    s = ""
    +    s = s + GetPickOutput()
    +    ptB = (0.040697, 2.250070, 29.9)
    +    Pick(ptB)
    +    s = s + GetPickOutput()
    +
    +    # Get rid of the compute engine running on localhost.
    +    s = s + GetRidOfEngineCallback()
    +
    +    # Create plots in a new window before returning to window 1 to
    +    # pick again. This will force the network ids in window 1 to be
    +    # invalid in case they do not get reset. (But they do get reset now)
    +    AddWindow()
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    SetActiveWindow(1)
    +
    +    # Resume picking in window 1 now that there are networks in window 2.
    +    ptC = (0.15, 3.250070, 26.9)
    +    Pick(ptC)
    +    s = s + GetPickOutput()
    +    ptD = (0.19, 3.75, 26.9)
    +    Pick(ptD)
    +    s = s + GetPickOutput()
    +
    +    TestText(testName, s)
    +    ResetPickLetter()
    +    DeleteAllPlots()
    +    # Delete window 2.
    +    SetActiveWindow(2)
    +    DeleteWindow()
    +
    +#
    +# Tests that pick works after an engine has been closed by the user.
    +#
    +def PickAfterEngineClosed():
    +    def CloseCB():
    +        CloseComputeEngine("localhost")
    +        return "***\n*** Closed engine on localhost.\n***\n"
    +    PickBadEngineSetup("PickAfterEngineClose", CloseCB)
    +
    +#
    +# Tests that pick works after an engine has crashed.
    +#
    +def PickAfterEngineCrashed():
    +    #TODO: THIS WONT WORK ON WINDOWs
    +    def CrashCB():
    +        try:
    +            # Read the output of ps
    +            f = os.popen("ps")
    +            lines = f.readlines()
    +            f.close()
    +
    +            # Get a list of engine pids from the ps output.
    +            pids = []
    +            for line in lines:
    +                if string.find(line, "engine_") == -1:
    +                    continue
    +                tokens = string.split(line, " ")
    +                lv = []
    +                for t in tokens:
    +                    if t != "":
    +                        lv = lv + [t]
    +                if len(lv) > 0:
    +                   pids = pids + [lv[0]]
    +
    +            # Kill all of the engines in the pid list.
    +            if len(pids) < 1:
    +                print("Killing all engines because we could not get a list of pids", file=sys.stderr)
    +                # TODO_WINDOWS THIS WONT WORK ON WINDOWS
    +                os.system("killall engine_ser")
    +                os.system("killall engine_par")
    +            else:
    +                for pid in pids:
    +                    print("Killing engine %s" % pid, file=sys.stderr)
    +                    # TODO_WINDOWS THIS WONT WORK ON WINDOWS
    +                    os.system("kill -9 %s" % pid)
    +        except:
    +            # There was an error. Just close the engine instead of killing it.
    +            CloseComputeEngine("localhost")
    +        return "***\n*** Killed compute engine(s).\n***\n"
    +    PickBadEngineSetup("PickAfterEngineCrash", CrashCB)
    +
    +def PickBoundary():
    +    # VisIt00004807
    +    # Test Pick on a 2D Boundary plot.
    +
    +    ResetPickAttributes()
    +
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Boundary", "mat1")
    +    DrawPlots()
    +
    +    ResetView()
    +    SetViewExtentsType("original")
    +
    +    Pick(164, 136)
    +    s = GetPickOutput()
    +    PickByZone(482)
    +    s = s + GetPickOutput()
    +
    +    NodePick(164, 136)
    +    s = s + GetPickOutput()
    +    PickByNode(528)
    +    s = s + GetPickOutput()
    +
    +    Pick(113, 84)
    +    s = s + GetPickOutput()
    +    PickByZone(230)
    +    s = s + GetPickOutput()
    +
    +    NodePick(113, 84)
    +    s = s + GetPickOutput()
    +    PickByNode(239)
    +    s = s + GetPickOutput()
    +
    +    Pick(218, 65)
    +    s = s + GetPickOutput()
    +    PickByZone(211)
    +    s = s + GetPickOutput()
    +
    +    NodePick(218, 65)
    +    s = s + GetPickOutput()
    +    PickByNode(220)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +
    +    OpenDatabase(silo_data_path("specmix_quad.silo"))
    +
    +    AddPlot("Boundary", "Material")
    +    DrawPlots()
    +    ResetView()
    +
    +    Pick(107, 131)
    +    s = s + GetPickOutput()
    +    PickByZone(86)
    +    s = s + GetPickOutput()
    +
    +    NodePick(107, 131)
    +    s = s + GetPickOutput()
    +    PickByNode(89)
    +    s = s + GetPickOutput()
    +
    +    Pick(207, 145)
    +    s = s + GetPickOutput()
    +    PickByZone(297)
    +    s = s + GetPickOutput()
    +
    +    NodePick(207, 145)
    +    s = s + GetPickOutput()
    +    PickByNode(333)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("specmix_ucd.silo"))
    +
    +    AddPlot("Boundary", "Material")
    +    DrawPlots()
    +    ResetView()
    +
    +    vars = "p"
    +    Pick(107, 131, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(86, vars)
    +    s = s + GetPickOutput()
    +
    +    NodePick(107, 131, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(89, vars)
    +    s = s + GetPickOutput()
    +
    +    Pick(207, 145, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(297, vars)
    +    s = s + GetPickOutput()
    +
    +    NodePick(207, 145, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(333, vars)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    #Test Sliced Boundary plots
    +    ResetOperatorOptions("Slice")
    +
    +    OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +    AddPlot("Boundary", "mat1")
    +    AddOperator("Slice")
    +
    +    slice = SliceAttributes()
    +    slice.normal = (0, -1, 0)
    +    slice.upAxis = (0, 0, 1)
    +    SetOperatorOptions(slice)
    +
    +    DrawPlots()
    +    ResetView()
    +
    +    Pick(83, 223, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(26670, vars)
    +    s = s + GetPickOutput()
    +
    +    NodePick(83, 223, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(28272, vars)
    +    s = s + GetPickOutput()
    +
    +    Pick(127, 84, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(5399, vars)
    +    s = s + GetPickOutput()
    +
    +    NodePick(127, 84, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(7005, vars)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("sid97.silo"))
    +
    +    AddPlot("Boundary", "mat1")
    +
    +    AddOperator("Slice")
    +
    +    slice = SliceAttributes()
    +    slice.originType = slice.Point
    +    slice.originPoint = (7400, -1300, 1000)
    +    slice.normal  = (0, 1, 0)
    +    slice.project2d = 1
    +    SetOperatorOptions(slice)
    +
    +    DrawPlots()
    +    ResetView()
    +    SetViewExtentsType("actual")
    +
    +    pick = GetPickAttributes()
    +    pick.variables = ("default")
    +    SetPickAttributes(pick)
    +
    +    Pick(128, 140)
    +    s = s + GetPickOutput()
    +    PickByZone(1269)
    +    s = s + GetPickOutput()
    +
    +    NodePick(128, 140)
    +    s = s + GetPickOutput()
    +    PickByNode(1356)
    +    s = s + GetPickOutput()
    +
    +    Pick(120, 89)
    +    s = s + GetPickOutput()
    +    PickByZone(10438)
    +    s = s + GetPickOutput()
    +
    +    NodePick(120, 89)
    +    s = s + GetPickOutput()
    +    PickByNode(12836)
    +    s = s + GetPickOutput()
    +
    +    Pick(154, 50)
    +    s = s + GetPickOutput()
    +    PickByZone(10455)
    +    s = s + GetPickOutput()
    +
    +    NodePick(154, 50)
    +    s = s + GetPickOutput()
    +    PickByNode(12842)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Boundary", "mat1")
    +
    +    AddOperator("Slice")
    +
    +    slice.originType = slice.Intercept
    +    slice.originIntercept = 0.5
    +    slice.normal  = (0, 1, 1)
    +    slice.upAxis  = (0, 1, 0)
    +    slice.project2d = 1
    +    SetOperatorOptions(slice)
    +
    +    DrawPlots()
    +    ResetView()
    +    SetViewExtentsType("original")
    +
    +    Pick(75, 258)
    +    s = s + GetPickOutput()
    +    PickByZone(810)
    +    s = s + GetPickOutput()
    +
    +    NodePick(75, 258)
    +    s = s + GetPickOutput()
    +    PickByNode(869)
    +    s = s + GetPickOutput()
    +
    +    Pick(121, 108)
    +    s = s + GetPickOutput()
    +    PickByZone(18217)
    +    s = s + GetPickOutput()
    +
    +    NodePick(121, 108)
    +    s = s + GetPickOutput()
    +    PickByNode(20561)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickBoundary", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickVectorPlots():
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Vector", "vel")
    +    vector = VectorAttributes()
    +    vector.autoScale = 0
    +    SetPlotOptions(vector)
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, 1)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 2.02836
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +
    +    p = GetPickAttributes()
    +    p.variables = ("default")
    +    SetPickAttributes(p)
    +    Pick(274, 259)
    +    s = GetPickOutput()
    +    Pick(269, 258)
    +    s = s + GetPickOutput()
    +    Pick(86, 37)
    +    s = s + GetPickOutput()
    +    Pick(83, 28)
    +    s = s + GetPickOutput()
    +
    +    AddOperator("Slice")
    +    slice = SliceAttributes()
    +    slice.axisType = slice.ZAxis
    +    SetOperatorOptions(slice)
    +    DrawPlots()
    +
    +    Pick(96, 244)
    +    s = s + GetPickOutput()
    +    Pick(204, 88)
    +    s = s + GetPickOutput()
    +
    +    RemoveLastOperator()
    +
    +    ChangeActivePlotsVar("disp")
    +    vector = VectorAttributes()
    +    vector.autoScale = 0
    +    vector.scale = 1.
    +    vector.origOnly = 0
    +    SetPlotOptions(vector)
    +
    +    v.viewNormal = (-0.8775, 0.112599, 0.46617)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0.120127, 0.992665, -0.0136456)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 2.3515
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +
    +    Pick(119, 87)
    +    s = s + GetPickOutput();
    +    Pick(148, 230)
    +    s = s + GetPickOutput();
    +    Pick(22, 97)
    +    s = s + GetPickOutput();
    +
    +    AddOperator("Slice")
    +    DrawPlots()
    +
    +    Pick(76, 113)
    +    s = s + GetPickOutput();
    +    Pick(244, 67)
    +    s = s + GetPickOutput();
    +    Pick(127, 217)
    +    s = s + GetPickOutput();
    +
    +    DeleteAllPlots()
    +
    +    # VisIt00006296 -- pick of vector expression causes crash
    +    DefineVectorExpression("polarVector", "polar(mesh1)")
    +    DefineVectorExpression("xyzVector", "coord(mesh1)")
    +    AddPlot("Vector", "polarVector")
    +    DrawPlots()
    +    ResetView()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, 1)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (-0.0369757, 0.0171359)
    +    v.imageZoom = 4.66857
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +
    +    Pick(233, 241)
    +    s = s + GetPickOutput()
    +    Pick(226, 30)
    +    s = s + GetPickOutput()
    +
    +    ChangeActivePlotsVar("xyzVector")
    +
    +    v. imagePan = (0.0220781, -0.0509109)
    +    v. imageZoom = 9.89113
    +    SetView3D(v)
    +    Pick(149, 209)
    +    s = s + GetPickOutput()
    +    Pick(214, 6)
    +    s = s + GetPickOutput()
    +
    +
    +    TestText("PickVectorPlot", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickPointMeshes():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "PointVar")
    +    pc = PseudocolorAttributes()
    +    pc.pointSize = 1
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    ResetView()
    +
    +    NodePick(100, 240)
    +    s = GetPickOutput()
    +    Pick(223, 197)
    +    s = s + GetPickOutput()
    +    NodePick(138, 66)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +    AddPlot("Mesh", "PointMesh")
    +    mesh = MeshAttributes()
    +    mesh.pointSize = 1
    +    mesh.pointType = mesh.Box
    +    SetPlotOptions(mesh)
    +    DrawPlots()
    +
    +    NodePick(100, 240)
    +    s = s + GetPickOutput()
    +    Pick(223, 197)
    +    s = s + GetPickOutput()
    +    NodePick(138, 66)
    +    s = s + GetPickOutput()
    +
    +    mesh.pointType = mesh.Point
    +    SetPlotOptions(mesh)
    +
    +    NodePick(100, 240)
    +    s = s + GetPickOutput()
    +    Pick(223, 197)
    +    s = s + GetPickOutput()
    +    NodePick(138, 66)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("multi_point2d.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    m = MeshAttributes()
    +    m.meshColor = (255, 0, 255, 255)
    +    m.meshColorSource = m.MeshCustom
    +    m.pointSize = 0.05
    +    m.pointType = m.Box
    +    SetPlotOptions(m)
    +    DrawPlots()
    +
    +    v = GetView2D()
    +    v.fullFrameActivationMode = v.On
    +    v.windowCoords = (-2.05391, -0.442661, 1.02233, 2.43681)
    +    SetView2D(v)
    +
    +    vars = ("d", "p", "u", "v")
    +
    +    NodePick(122, 72, vars)
    +    s = s + GetPickOutput()
    +    Pick(134, 229, vars)
    +    s = s + GetPickOutput()
    +    NodePick(278, 266, vars)
    +    s = s + GetPickOutput()
    +
    +    m.pointType = mesh.Point
    +    SetPlotOptions(m)
    +
    +    NodePick(122, 72, vars)
    +    s = s + GetPickOutput()
    +    Pick(134, 229, vars)
    +    s = s + GetPickOutput()
    +    NodePick(278, 266, vars)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Subset", "PointMesh")
    +    DrawPlots()
    +    ResetView()
    +
    +    NodePick(100, 240)
    +    s = s+ GetPickOutput()
    +    Pick(223, 197)
    +    s = s + GetPickOutput()
    +    NodePick(138, 66)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickPointMeshes", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickGlobalIds():
    +    OpenDatabase(silo_data_path("global_node.silo"))
    +
    +    AddPlot("Pseudocolor", "dist")
    +    DrawPlots()
    +    ResetView()
    +    p = GetPickAttributes()
    +    p.showGlobalIds = 0
    +    p.variables = ("default")
    +    SetPickAttributes(p)
    +
    +    Pick(82, 225)
    +    s = GetPickOutput()
    +
    +    p.showGlobalIds = 1
    +    SetPickAttributes(p)
    +
    +    Pick(82, 225)
    +    s = s + GetPickOutput()
    +
    +    p.showGlobalIds = 0
    +    SetPickAttributes(p)
    +
    +    NodePick(195, 101)
    +    s = s + GetPickOutput()
    +
    +    p.showGlobalIds = 1
    +    SetPickAttributes(p)
    +
    +    NodePick(195, 101)
    +    s = s + GetPickOutput()
    +
    +    p.showGlobalIds = 0
    +    SetPickAttributes(p)
    +
    +    Pick(175, 162)
    +    s = s + GetPickOutput()
    +    NodePick(175, 162)
    +    s = s + GetPickOutput()
    +
    +    p.showGlobalIds = 1
    +    SetPickAttributes(p)
    +
    +    Pick(175, 162)
    +    s = s + GetPickOutput()
    +    NodePick(175, 162)
    +    s = s + GetPickOutput()
    +
    +    PickByGlobalZone(3250)
    +    s = s + GetPickOutput()
    +    PickByGlobalZone(237394)
    +    s = s + GetPickOutput()
    +    PickByGlobalNode(3869)
    +    s = s + GetPickOutput()
    +    PickByGlobalNode(246827)
    +    s = s + GetPickOutput()
    +
    +    # bug '6097 -- global ids not displayed correctly with global picks.
    +    p.showGlobalIds = 1
    +    SetPickAttributes(p)
    +
    +    PickByGlobalZone(236919)
    +    s = s + GetPickOutput()
    +    PickByGlobalNode(244455)
    +    s = s + GetPickOutput()
    +
    +    ChangeActivePlotsVar("p")
    +    PickByGlobalZone(236919)
    +    s = s + GetPickOutput()
    +    PickByGlobalNode(244455)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickGlobalIds", s)
    +    p.showGlobalIds = 0
    +    SetPickAttributes(p)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickExpressions():
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    DefineScalarExpression("m1", 'matvf(mat1, ["1", "3"])')
    +    DefineScalarExpression("mir1", 'mirvf(mat1, zoneid(quadmesh3d), volume(quadmesh3d), 1)')
    +
    +    AddPlot("Pseudocolor", "m1")
    +    DrawPlots()
    +    ResetView()
    +
    +    Pick(151, 172)
    +    s = GetPickOutput()
    +    Pick(68, 239)
    +    s = s + GetPickOutput()
    +    Pick(237, 86)
    +    s = s + GetPickOutput()
    +    NodePick(151, 172)
    +    s = s + GetPickOutput()
    +    NodePick(68, 239)
    +    s = s + GetPickOutput()
    +    NodePick(237, 86)
    +    s = s + GetPickOutput()
    +
    +    ChangeActivePlotsVar("mir1")
    +    Pick(151, 172)
    +    s = s + GetPickOutput()
    +    Pick(68, 239)
    +    s = s + GetPickOutput()
    +    Pick(237, 86)
    +    s = s + GetPickOutput()
    +    NodePick(151, 172)
    +    s = s + GetPickOutput()
    +    NodePick(68, 239)
    +    s = s + GetPickOutput()
    +    NodePick(237, 86)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "t")
    +    DrawPlots()
    +    ResetView()
    +    DefineScalarExpression("polar", "polar(mesh1)")
    +
    +    # pick with default var -- 't'
    +    Pick(128, 107)
    +    s = s + GetPickOutput()
    +    # pick again, adding new expression var -- 'polar'
    +    vars = ("default", "polar")
    +    Pick(128, 107, vars)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickExpressions", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickAMR():
    +    OpenDatabase(data_path("boxlib_test_data/2D/plt0822/Header"))
    +
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("Pseudocolor", "density")
    +    DrawPlots()
    +    ResetView()
    +    v = GetView2D()
    +    v.fullFrameActivationMode = v.Off
    +    v.windowCoords = (0.0232322, 0.0302984, 0.11825, 0.123807)
    +    SetView2D(v)
    +
    +    s = "Testing boxlib 2D, pseudocolor\n"
    +    vars = "default"
    +    NodePick(226, 179, vars)
    +    s = s + GetPickOutput()
    +    ZonePick(226, 179, vars)
    +    s = s + GetPickOutput()
    +    NodePick(215, 168, vars)
    +    s = s + GetPickOutput()
    +    ZonePick(215, 168, vars)
    +    s = s + GetPickOutput()
    +    NodePick(114, 94, vars)
    +    s = s + GetPickOutput()
    +    ZonePick(114, 94, vars)
    +    s = s + GetPickOutput()
    +    NodePick(189, 197, vars)
    +    s = s + GetPickOutput()
    +    ZonePick(189, 197, vars)
    +    s = s + GetPickOutput()
    +    NodePick(242, 72, vars)
    +    s = s + GetPickOutput()
    +    ZonePick(242, 72, vars)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +    s = s + "\nTesting boxlib 2D, contour\n"
    +    AddPlot("Contour", "density")
    +    DrawPlots()
    +    v.windowCoords = (0.00408394, 0.0401985, 0.109754, 0.138135)
    +    SetView2D(v)
    +
    +    Pick(161, 137)
    +    s = s + GetPickOutput()
    +    NodePick(161, 137)
    +    s = s + GetPickOutput()
    +    Pick(176, 139)
    +    s = s + GetPickOutput()
    +    NodePick(176, 139)
    +    s = s + GetPickOutput()
    +    Pick(228, 71)
    +    s = s + GetPickOutput()
    +    NodePick(228, 71)
    +    s = s + GetPickOutput()
    +    Pick(255, 196)
    +    s = s + GetPickOutput()
    +    NodePick(255, 196)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +    s = s + "\nTesting boxlib 2D, Boundary\n"
    +    AddPlot("Boundary", "materials")
    +    DrawPlots()
    +    v.windowCoords = (0.00226909, 0.0378978, 0.0908832, 0.121254)
    +    SetView2D(v)
    +    Pick(161, 137)
    +    s = s + GetPickOutput()
    +    NodePick(161, 137)
    +    s = s + GetPickOutput()
    +    Pick(228, 71)
    +    s = s + GetPickOutput()
    +    NodePick(228, 71)
    +    s = s + GetPickOutput()
    +    Pick(139, 196)
    +    s = s + GetPickOutput()
    +    NodePick(139, 196)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickAMR", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickSamrai():
    +
    +    def doPicks1():
    +        def pickList(index):
    +            if index == 0 :
    +                ZonePick(172, 178)
    +                return GetPickOutput()
    +            elif index == 1 :
    +                NodePick(191, 188)
    +                return GetPickOutput()
    +            elif index == 2:
    +                NodePick(145, 157)
    +                return GetPickOutput()
    +            elif index == 3:
    +                PickByZone(1863, 2)
    +                return GetPickOutput()
    +            elif index == 4:
    +                PickByNode(2442, 2)
    +                return GetPickOutput()
    +            elif index == 5:
    +                PickByNode(2422, 2)
    +                return GetPickOutput()
    +            else :
    +                return ""
    +
    +        s = ""
    +        for j in range(6):
    +            for i in range(4):
    +                SetActivePlots(i)
    +                s = s + pickList(j)
    +        return s
    +
    +    def doPicks2():
    +        def pickList2(index):
    +            if index == 0 :
    +                ZonePick(239, 141)
    +                return GetPickOutput()
    +            elif index == 1 :
    +                NodePick(246, 108)
    +                return GetPickOutput()
    +            else :
    +                return ""
    +
    +        s = ""
    +        for j in range(2):
    +            for i in range(4):
    +                SetActivePlots(i)
    +                s = s + pickList2(j)
    +        return s
    +
    +    def doPicks3():
    +        def pickList3(index):
    +            if index == 0 :
    +                ZonePick(210, 148)
    +                return GetPickOutput()
    +            elif index == 1 :
    +                NodePick(200, 148)
    +                return GetPickOutput()
    +            elif index == 2 :
    +                ZonePick(210, 168)
    +                return GetPickOutput()
    +            elif index == 3 :
    +                NodePick(210, 168)
    +                return GetPickOutput()
    +            else :
    +                return ""
    +
    +        s = ""
    +        for j in range(4):
    +            for i in range(4):
    +                SetActivePlots(i)
    +                s = s + pickList3(j)
    +        return s
    +
    +
    +    # Open SAMRAI (add default subset plot)
    +    # Add PC, Mesh, and Contour Plots
    +    OpenDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +    slice = SliceAttributes()
    +    slice.axisType = slice.ZAxis
    +    slice.originType = slice.Percent
    +    slice.originPercent = 20
    +    slice.project2d = 1
    +
    +    AddPlot("Pseudocolor", "Primitive Var _number_0")
    +    AddPlot("Mesh", "amr_mesh")
    +    AddPlot("Contour", "Primitive Var _number_0")
    +
    +    SetActivePlots((0, 1, 2, 3))
    +    AddOperator("Slice")
    +    SetOperatorOptions(slice)
    +    DrawPlots()
    +
    +    v = GetView2D()
    +    v.windowCoords = (4.89115, 6.43144, 6.80336, 8.63983)
    +    SetView2D(v)
    +    s = "\nTesting sliced SAMRAI:\n"
    +    s = s + doPicks1()
    +    TestText("PickSamrai_01", s)
    +
    +    SetActivePlots((0, 1, 2, 3))
    +    clip = ClipAttributes()
    +    clip.plane1Origin = (5.1, 0, 0)
    +    clip.plane1Normal = (-1, 0, 0)
    +
    +    AddOperator("Clip")
    +    SetOperatorOptions(clip)
    +    DrawPlots()
    +    ResetPickLetter()
    +    s = "\nTesting clipped sliced SAMRAI:\n"
    +    s = s + doPicks1()
    +    TestText("PickSamrai_02", s)
    +
    +    SetActivePlots((0, 1, 2, 3))
    +    DemoteOperator(1)
    +    DrawPlots()
    +    ResetPickLetter()
    +    s = "\nTesting sliced clipped SAMRAI:\n"
    +    s = s + doPicks1()
    +    TestText("PickSamrai_03", s)
    +
    +    SetActivePlots((0, 1, 2, 3))
    +    RemoveLastOperator()
    +    clip.plane1Origin = (4.3, 0, 0)
    +    SetOperatorOptions(clip)
    +
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, -1)
    +    v.focus = (15, 10, 10)
    +    v.viewUp = (0, 1, 0)
    +    v.parallelScale = 20.6155
    +    v.nearPlane = -41.2311
    +    v.farPlane = 41.2311
    +    v.perspective = 0
    +    SetView3D(v)
    +    v.imageZoom = 8
    +    SetView3D(v)
    +    v.imagePan = (-0.2, 0.1)
    +    SetView3D(v)
    +    ResetPickLetter()
    +    s = "\nTesting clipped SAMRAI (3D):\n"
    +    s = s + doPicks2()
    +    TestText("PickSamrai_04", s)
    +
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +
    +    OpenDatabase(data_path("samrai_test_data/front/dumps.visit"))
    +
    +    AddPlot("Mesh", "amr_mesh")
    +    AddPlot("Pseudocolor", "Distance to front")
    +    AddPlot("Contour", "Distance to front")
    +
    +    DrawPlots()
    +    v = GetView2D()
    +    v.windowCoords = (0.678228, 0.865969, 0.467317, 0.650137)
    +
    +    SetView2D(v)
    +    s = "\nTesting front:\n"
    +    s = s + doPicks3()
    +    TestText("PickSamrai_05", s)
    +
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickIndexSelect():
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    AddPlot("Mesh", "quadmesh2d")
    +    AddPlot("Pseudocolor", "u")
    +    AddOperator("IndexSelect")
    +    isAtts = IndexSelectAttributes()
    +    isAtts.dim = isAtts.TwoD
    +    isAtts.xMin = 1
    +    isAtts.xMax = 2
    +    isAtts.yMin = 1
    +    isAtts.yMax = 2
    +    SetOperatorOptions(isAtts)
    +
    +    DrawPlots()
    +
    +    v = GetView2D()
    +    v.windowCoords = (-0.0583437, 0.254323, -0.0576062, 0.220944)
    +    SetView2D(v)
    +
    +    SetActivePlots(0)
    +    s = "Pick on Index-selected 2D Mesh Plot\n"
    +    Pick(132, 117)
    +    s = s + GetPickOutput()
    +    NodePick(132, 117)
    +    s = s + GetPickOutput()
    +
    +    SetActivePlots(1)
    +    s = s + "\nSame Picks on Index-selected 2D Pseudocolor Plot\n"
    +    Pick(132, 117)
    +    s = s + GetPickOutput()
    +    NodePick(132, 117)
    +    s = s + GetPickOutput()
    +
    +    isAtts.xIncr = 5
    +    isAtts.yIncr = 5
    +    SetOperatorOptions(isAtts)
    +
    +    s = s+ "\nChanged stride of IndexSelect, 2D Mesh Plot picks\n"
    +    SetActivePlots(0)
    +    Pick(132, 117)
    +    s = s + GetPickOutput()
    +    NodePick(132, 117)
    +    s = s + GetPickOutput()
    +
    +    s = s + "\nSame picks 2D Pseudocolor Plot \n"
    +    SetActivePlots(1)
    +    Pick(132, 117)
    +    s = s + GetPickOutput()
    +    NodePick(132, 117)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Mesh", "quadmesh3d")
    +    AddPlot("Pseudocolor", "d")
    +    SetActivePlots((0, 1))
    +    AddOperator("IndexSelect")
    +    isAtts = IndexSelectAttributes()
    +    isAtts.dim = isAtts.ThreeD
    +    isAtts.xIncr = 4
    +    isAtts.yIncr = 4
    +    SetOperatorOptions(isAtts)
    +
    +    DrawPlots()
    +
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (-1, 0, 0)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0, 1, 0)
    +    v.parallelScale = 0.866025
    +    v.perspective = 1
    +    SetView3D(v)
    +    v.imagePan = (0.0552434, 0.225336)
    +    SetView3D(v)
    +    v.imageZoom = 5.01124
    +    SetView3D(v)
    +
    +    s = s + "\nIndex selected 3D Mesh Plot\n"
    +    SetActivePlots(0)
    +    Pick(143, 144)
    +    s = s + GetPickOutput()
    +    NodePick(143, 144)
    +    s = s + GetPickOutput()
    +    s = s + "\nSame picks on 3D Pseudocolor Plot\n"
    +    SetActivePlots(1)
    +    Pick(143, 144)
    +    s = s + GetPickOutput()
    +    NodePick(143, 144)
    +    s = s + GetPickOutput()
    +
    +    SetActivePlots((0, 1))
    +    AddOperator("Slice")
    +    slice = SliceAttributes()
    +    slice.normal = (0, 0, 1)
    +    slice.originType = slice.Intercept
    +    slice.originIntercept = 0.5
    +    slice.upAxis = (0, 1, 0)
    +    slice.axisType = slice.ZAxis
    +    slice.project2d = 1
    +    SetOperatorOptions(slice)
    +    DrawPlots()
    +
    +    v = GetView2D()
    +    v.windowCoords = (0.226685, 0.501966, 0.147753, 0.423034)
    +    SetView2D(v)
    +
    +    s = s + "\nSliced, Index-selected 3D Mesh Plot\n"
    +    SetActivePlots(0)
    +    Pick(184, 234)
    +    s = s + GetPickOutput()
    +    NodePick(184, 234)
    +    s = s + GetPickOutput()
    +
    +
    +    s = s + "\nSame pickes on Sliced, Index-selected 3D Pseudocolor Plot\n"
    +    SetActivePlots(1)
    +    Pick(184, 234)
    +    s = s + GetPickOutput()
    +    NodePick(184, 234)
    +    s = s + GetPickOutput()
    +
    +    AddPlot("FilledBoundary", "mat1")
    +    AddOperator("IndexSelect")
    +    SetOperatorOptions(isAtts)
    +    AddOperator("Slice")
    +    SetOperatorOptions(slice)
    +    AddPlot("Mesh", "quadmesh3d")
    +    AddOperator("Slice")
    +    SetOperatorOptions(slice)
    +    DrawPlots()
    +
    +    s = s + "\nSame picks on Sliced, Index-selected 3D FilledBoundary Plot\n"
    +    s = s + "Stride changes back to 1 due to MIR, so should match Mesh results below\n"
    +    SetActivePlots(2)
    +    Pick(184, 234)
    +    s = s + GetPickOutput()
    +    NodePick(184, 234)
    +    s = s + GetPickOutput()
    +
    +    s = s + "\nSame picks on Sliced, 3D Mesh Plot\n"
    +    SetActivePlots(3)
    +    Pick(184, 234)
    +    s = s + GetPickOutput()
    +    NodePick(184, 234)
    +    s = s + GetPickOutput()
    +
    +
    +    TestText("PickIndexSelect", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickTensors():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Mesh", "Mesh")
    +    DrawPlots()
    +    vars = ("grad_tensor")
    +    Pick(133 , 178, vars)
    +    s = GetPickOutput()
    +    NodePick(133 ,178 , vars)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +    AddPlot("Tensor", "grad_tensor")
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, 1)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +    v.imagePan = (-0.181384, 0.137462)
    +    SetView3D(v)
    +    v.imageZoom = 4.86765
    +    SetView3D(v)
    +
    +    Pick(127, 59)
    +    s = s + GetPickOutput()
    +    Pick(269, 166)
    +    s = s + GetPickOutput()
    +    TestText("PickTensors", s)
    +    ResetView()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickMili():
    +    #'7144
    +    OpenDatabase(data_path("mili_test_data/single_proc/m_plot.mili"))
    +
    +    AddPlot("Pseudocolor", "Primal/brick/stress/sx")
    +    AddOperator("Threshold")
    +    thresh = ThresholdAttributes()
    +    thresh.lowerBounds = (1.0)
    +    thresh.upperBounds = (1.0)
    +    thresh.listedVarNames = ("Primal/Shared/sand")
    +    SetOperatorOptions(thresh)
    +    SetTimeSliderState(77)
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (0.761946, 0.114249, -0.637483)
    +    v.focus = (2, -4.76837e-07, -1.43051e-06)
    +    v.viewUp = (-.133671, -.990866, 0.0178134)
    +    v.viewAngle = 30
    +    v.parallelScale = 15.7797
    +    v.nearPlane = -31.5595
    +    v.farPlane = 31.5595
    +    SetView3D(v)
    +
    +    vars = "default"
    +    Pick(100, 150, vars)
    +    s = GetPickOutput()
    +    NodePick(100, 150, vars)
    +    s = s + GetPickOutput()
    +
    +    RemoveLastOperator()
    +
    +    #'7145
    +    AddPlot("Mesh", "mesh1")
    +    SetActivePlots((0, 1))
    +    AddOperator("Clip")
    +    clip = ClipAttributes()
    +    clip.plane1Status = 1
    +    clip.plane1Origin = (8, 7.77778, -10)
    +    clip.plane1Normal = (1, 0, 0)
    +    SetOperatorOptions(clip)
    +    SetTimeSliderState(77)
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (1, 0, 6.12307e-17)
    +    v.focus = (10.5296, -0.00138283, -0.000236511)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 19.0748
    +    v.nearPlane = -38.1495
    +    v.farPlane = 38.1495
    +    SetView3D(v)
    +
    +    Pick(204, 215, vars)
    +    s = s + GetPickOutput()
    +    NodePick(204, 215, vars)
    +    s = s + GetPickOutput()
    +    TestText("PickMili", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickContour():
    +    #'7144
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +    AddPlot("Contour", "d")
    +    contour = ContourAttributes()
    +    contour.contourNLevels = 4
    +    SetPlotOptions(contour)
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (-0.582341, 0.658239, 0.477075)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.402453, 0.743318, -0.534331)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    SetView3D(v)
    +
    +    vars = "default"
    +    Pick(166, 138, vars)
    +    s = GetPickOutput()
    +    NodePick(166, 138, vars)
    +    s = s + GetPickOutput()
    +    Pick(160, 175, vars)
    +    s = s + GetPickOutput()
    +    NodePick(160, 175, vars)
    +    s = s + GetPickOutput()
    +    Pick(158, 210, vars)
    +    s = s + GetPickOutput()
    +    NodePick(158, 210, vars)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickContour", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickBox():
    +    #'7566
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    AddOperator("Box")
    +    box = BoxAttributes()
    +    box.minx = 0.2
    +    box.maxx = 0.8
    +    box.miny = 0.2
    +    box.maxy = 0.8
    +    SetOperatorOptions(box)
    +    AddPlot("Mesh", "quadmesh2d")
    +    DrawPlots()
    +
    +    vars = "default"
    +    SetActivePlots(0)
    +
    +    Pick(155, 140)
    +    s = GetPickOutput()
    +    NodePick(155, 140)
    +    s = s + GetPickOutput()
    +
    +    SetActivePlots(1)
    +    Pick(155, 140)
    +    s = s + GetPickOutput()
    +    NodePick(155, 140)
    +    s = s + GetPickOutput()
    +
    +
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    AddOperator("Box")
    +    box.minx = 0.3
    +    box.maxx = 0.83
    +    box.miny = 0.3
    +    box.maxy = 0.83
    +    box.minz = 0
    +    box.maxz = 1
    +    SetOperatorOptions(box)
    +    AddOperator("Slice")
    +    slice = SliceAttributes()
    +    slice.axisType = slice.YAxis
    +    slice.originType = slice.Intercept
    +    slice.originIntercept = 0.5
    +    slice.project2d = 1
    +    SetOperatorOptions(slice)
    +
    +    AddPlot("Mesh", "quadmesh3d")
    +    AddOperator("Slice")
    +    SetOperatorOptions(slice)
    +    DrawPlots()
    +    SetActivePlots(0)
    +    TurnMaterialsOff("8")
    +
    +    Pick(221, 230)
    +    s = s + GetPickOutput()
    +    Pick(206, 67)
    +    s = s + GetPickOutput()
    +    NodePick(221, 230)
    +    s = s + GetPickOutput()
    +    NodePick(206, 67)
    +    s = s + GetPickOutput()
    +
    +    SetActivePlots(1)
    +    Pick(221, 230)
    +    s = s + GetPickOutput()
    +    Pick(206, 67)
    +    s = s + GetPickOutput()
    +    NodePick(221, 230)
    +    s = s + GetPickOutput()
    +    NodePick(206, 67)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickBox", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickScatter():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Scatter", "hardyglobal")
    +    scatter = ScatterAttributes()
    +    scatter.var1= "hardyglobal"
    +    scatter.var2= "shepardglobal"
    +    scatter.var3= "radial"
    +    scatter.var3Role = scatter.Color
    +    scatter.scaleCube = 1
    +    SetPlotOptions(scatter)
    +    DrawPlots()
    +    Pick(124, 174)
    +    s = GetPickOutput()
    +
    +    scatter.scaleCube = 0
    +    SetPlotOptions(scatter)
    +    DrawPlots()
    +    ResetView()
    +    Pick(124, 174)
    +    s = s + GetPickOutput()
    +
    +
    +    DeleteAllPlots()
    +
    +    s = s + "Expressions used in Scatter\n";
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +    DefineScalarExpression("xc", "coord(mesh1)[0]")
    +    DefineScalarExpression("yc", "coord(mesh1)[1]")
    +    DefineScalarExpression("zc", "coord(mesh1)[2]")
    +    DefineScalarExpression("uvw_prod", "u*v*w")
    +    AddPlot("Scatter", "xc")
    +    scatter.var1 = "xc"
    +    scatter.var1Role = scatter.Coordinate0
    +    scatter.var2 = "yc"
    +    scatter.var2Role = scatter.Coordinate1
    +    scatter.var3 = "zc"
    +    scatter.var3Role = scatter.Coordinate2
    +    scatter.var4 = "uvw_prod"
    +    scatter.var4Role = scatter.Color
    +    SetPlotOptions(scatter)
    +    DrawPlots()
    +    ResetView()
    +
    +    Pick(100, 200)
    +    s = s + GetPickOutput()
    +
    +    s = s + "Mix up the coordinates\n";
    +    scatter.var1Role = scatter.Coordinate1
    +    scatter.var2Role = scatter.Coordinate0
    +    SetPlotOptions(scatter)
    +    DrawPlots()
    +    Pick(100, 200)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickScatter", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickHighlight():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    pickAtts = GetPickAttributes()
    +    pickAtts.showPickHighlight = 1
    +    SetPickAttributes(pickAtts)
    +    DrawPlots()
    +    PickByZone(116242)
    +    Test("PickHighlight_01")
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +    OpenDatabase(silo_data_path("global_node.silo"))
    +    AddPlot("Pseudocolor", "p")
    +    DrawPlots()
    +
    +    # bug '3880 -- global id highlights incorrect cell.
    +    origAtts = GetPickAttributes()
    +    pickAtts = origAtts
    +    pickAtts.showPickHighlight = 1
    +    pickAtts.showPickLetter = 1
    +    SetPickAttributes(pickAtts)
    +
    +    PickByGlobalZone(236919)
    +    Test("GlobalHighlight_00")
    +
    +    SetPickAttributes(origAtts)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +    #restore the attributes
    +    annotAtts  = GetAnnotationAttributes()
    +    annotAtts.userInfoFlag = 1
    +    annotAtts.axes3D.xAxis.title.visible = 1
    +    annotAtts.axes3D.yAxis.title.visible = 1
    +    annotAtts.axes3D.zAxis.title.visible = 1
    +    annotAtts.axes3D.bboxFlag = 1;
    +    annotAtts.axes3D.triadFlag = 1;
    +    SetAnnotationAttributes(annotAtts)
    +
    +def PickHighlightColor():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    pickAtts = GetPickAttributes()
    +    pickAtts.showPickHighlight  = 1
    +    pickAtts.pickHighlightColor = (0, 0, 255)
    +    SetPickAttributes(pickAtts)
    +    DrawPlots()
    +    PickByZone(116242)
    +    Test("PickHighlightColor_01")
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +    #restore the attributes
    +    pickAtts.pickHighlightColor = (255, 0, 0)
    +    SetPickAttributes(pickAtts)
    +    annotAtts  = GetAnnotationAttributes()
    +    annotAtts.userInfoFlag = 1
    +    annotAtts.axes3D.xAxis.title.visible = 1
    +    annotAtts.axes3D.yAxis.title.visible = 1
    +    annotAtts.axes3D.zAxis.title.visible = 1
    +    annotAtts.axes3D.bboxFlag = 1;
    +    annotAtts.axes3D.triadFlag = 1;
    +    SetAnnotationAttributes(annotAtts)
    +
    +def PickRange():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    pickAtts = GetPickAttributes()
    +    pickAtts.showPickHighlight = 1
    +    SetPickAttributes(pickAtts)
    +    DrawPlots()
    +    options = {}
    +    options["pick_range"] = "116242-116300, 116350,1"
    +    PickByZone(options)
    +    Test("PickRange_01")
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickLines3D():
    +    OpenDatabase(silo_data_path("ucd_lines3d.silo"))
    +    AddPlot("Mesh", "ucd_linesmesh3d")
    +    DrawPlots()
    +
    +    ZonePick(113,182)
    +    s = GetPickOutput();
    +    ZonePick(134,107)
    +    s = s + GetPickOutput();
    +    ZonePick(177,151)
    +    s = s + GetPickOutput();
    +
    +    NodePick(126,161)
    +    s = s + GetPickOutput();
    +    NodePick(203,130)
    +    s = s + GetPickOutput();
    +    NodePick(150,193)
    +    s = s + GetPickOutput();
    +
    +    # rotate, so lines closer to camera are reversed.
    +    v = GetView3D()
    +    v.viewNormal=(0,0,-1)
    +    SetView3D(v)
    +
    +    ZonePick(149,168)
    +    s = s + GetPickOutput();
    +    ZonePick(139,97)
    +    s = s + GetPickOutput();
    +    ZonePick(191,206)
    +    s = s + GetPickOutput();
    +
    +    NodePick(161,73)
    +    s = s + GetPickOutput();
    +    NodePick(173,159)
    +    s = s + GetPickOutput();
    +    NodePick(54,153)
    +    s = s + GetPickOutput();
    +
    +    TestText("PickLines3D", s)
    +
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickZoneLabel():
    +    OpenDatabase(data_path("mili_test_data/single_proc/sslide14ball_l.plt.mili"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "Primal/shell/bend_magnitude")
    +    DrawPlots()
    +    options = {}
    +    options["element_label"] = "shell 9"
    +    options["vars"] = "OriginalZoneLabels"
    +    PickByZoneLabel(options)
    +    s = GetPickOutput()
    +    TestText("PickByZoneLabel",s)
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickNodeLabel():
    +    OpenDatabase(data_path("mili_test_data/single_proc/sslide14ball_l.plt.mili"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "Primal/shell/bend_magnitude")
    +    DrawPlots()
    +    options = {}
    +    options["element_label"] = "node 93"
    +    options["vars"] = "OriginalNodeLabels"
    +    PickByNodeLabel(options)
    +    s = GetPickOutput()
    +    TestText("PickByNodeLabel",s)
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickRangeLabel():
    +    OpenDatabase(data_path("mili_test_data/single_proc/d3samp6.plt.mili"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "Primal/shell/bend_magnitude")
    +    DrawPlots()
    +
    +    SetPickAttributes(defaultAtts)
    +
    +    options = {}
    +    options["element_label"] = "shell"
    +    options["return_curves"] = 1
    +    options["start_time"] = 0
    +    options["end_time"] = 2
    +    options["pick_range"] = "4-5,9"
    +    options["vars"] = "OriginalZoneLabels"
    +
    +    output_dict = PickByZoneLabel(options)
    +    # use json.dumps for dictionary object, makes for easier parsing
    +    # of diffs when there are errors
    +    TestText("PickRangeByZoneLabel",json.dumps(output_dict, indent=2))
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def TestRemovePicks():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    pickAtts = GetPickAttributes()
    +    pickAtts.showPickHighlight = 1
    +    SetPickAttributes(pickAtts)
    +    DrawPlots()
    +
    +    PickByZone(0)
    +    PickByZone(5)
    +    PickByZone(35)
    +    PickByZone(18)
    +    Test("RemovePicks_01")
    +    to_remove = "A, C, D"
    +    expected  = to_remove
    +    removed   = RemovePicks(to_remove)
    +    Test("RemovePicks_02")
    +
    +    #check that the returned list matches
    +    #what we expect
    +    TestValueEQ("Removed expected picks", removed, expected)
    +    ClearPickPoints()
    +
    +    PickByZone(0)
    +    PickByZone(18)
    +    Test("RemovePicks_03")
    +    to_remove = "A, C, D, E"
    +    expected  = "E"
    +    removed   = RemovePicks(to_remove)
    +    Test("RemovePicks_04")
    +
    +    TestValueEQ("Removed expected picks 2", removed, expected)
    +
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def TestRemoveLabeledPicks():
    +    OpenDatabase(data_path("mili_test_data/single_proc/sslide14ball_l.plt.mili"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "Primal/shell/bend_magnitude")
    +    pickAtts = GetPickAttributes()
    +    pickAtts.showPickHighlight = 1
    +    SetPickAttributes(pickAtts)
    +    DrawPlots()
    +
    +    options = {}
    +    options["element_label"] = "shell 1"
    +    PickByZoneLabel(options)
    +    options["element_label"] = "shell 2"
    +    PickByZoneLabel(options)
    +    options["element_label"] = "shell 5"
    +    PickByZoneLabel(options)
    +
    +    Test("RemoveLabeledPicks_00")
    +    to_remove = "shell 1, shell 2, shell 19"
    +    removed   = RemovePicks(to_remove)
    +    Test("RemoveLabeledPicks_01")
    +
    +    expected = "shell 1, shell 2"
    +    TestValueEQ("Removed expected shell", expected, removed)
    +
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def TestSwivelFocus():
    +    ResetPickAttributes()
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +    ResetView()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Mesh", "mesh1")
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (-0.461806, -0.673199, 0.577526)
    +    v.focus = (0., 0., 0.)
    +    v.viewUp = (-0.243052, 0.722237, 0.647532)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (0.341463, 0.234840)
    +    v.imageZoom = 1.21
    +    SetView3D(v)
    +
    +    orig_atts = GetPickAttributes()
    +    fh_atts   = GetPickAttributes()
    +    fh_atts.swivelFocusToPick = 1
    +    SetPickAttributes(fh_atts)
    +
    +    PickByNode(element=707)
    +    Test("SwivelFocus_00")
    +
    +    SetPickAttributes(orig_atts)
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def TestSwivelHighlight():
    +    ResetPickAttributes()
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +    ResetView()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "v")
    +    DrawPlots()
    +    orig_atts = GetPickAttributes()
    +    fh_atts   = GetPickAttributes()
    +    fh_atts.overridePickLabel = 1
    +    fh_atts.forcedPickLabel   = "fhpick"
    +    fh_atts.showPickHighlight = 1
    +    fh_atts.swivelFocusToPick = 1
    +    fh_atts.showPickLetter    = 0
    +    SetPickAttributes(fh_atts)
    +
    +    PickByZone(element=580)
    +    Test("SwivelHighlight_00")
    +
    +    SetPickAttributes(orig_atts)
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def TestNodeHighlight():
    +    ResetPickAttributes()
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +    ResetView()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "v")
    +    DrawPlots()
    +
    +    pAtts = GetPickAttributes()
    +    pAtts.showPickHighlight = 1
    +    pAtts.pickHighlightColor = (230, 100, 0)
    +    SetPickAttributes(pAtts)
    +    PickByNode(800)
    +    pAtts.pickHighlightColor = (0, 0, 255)
    +    SetPickAttributes(pAtts)
    +    PickByNode(600)
    +    pAtts.pickHighlightColor = (255, 0, 0)
    +    SetPickAttributes(pAtts)
    +    PickByNode(1000)
    +    Test("NodeHighlight_00")
    +
    +    ResetPickAttributes()
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +
    +def TestTranslatedHighlight():
    +    ResetPickAttributes()
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +    ResetView()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "v")
    +    AddOperator("Transform")
    +
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doScale = 1
    +    TransformAtts.scaleOrigin = (0, 0, 0)
    +    TransformAtts.scaleX = 1
    +    TransformAtts.scaleY = 2
    +    TransformAtts.scaleZ = 1
    +    TransformAtts.doTranslate = 1
    +    TransformAtts.translateX = 100
    +    SetOperatorOptions(TransformAtts)
    +
    +    DrawPlots()
    +
    +    pAtts = GetPickAttributes()
    +    pAtts.showPickHighlight = 1
    +    SetPickAttributes(pAtts)
    +
    +    PickByZone(element=580)
    +    Test("TranslatedHighlight_00")
    +
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +
    +def TestPickingExpression():
    +    ResetPickAttributes()
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +    ResetView()
    +
    +    OpenDatabase(silo_data_path("curv3d.silo"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "mesh_quality/jacobian")
    +
    +    DrawPlots()
    +
    +    PickByZone(element=100)
    +    result = GetPickOutput()
    +    PickByNode(element=100)
    +    result += GetPickOutput()
    +    TestText("TestPickingExpression_00", result)
    +
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +    CloseDatabase(silo_data_path("curv3d.silo"))
    +
    +
    +def PickMain():
    +    Pick3DTo2D()
    +    Pick2D()
    +    PickOnionPeel()
    +    PickSubset()
    +    PickMatFracsThreshold()
    +    PickReflect()
    +    PickFilledBoundary()
    +    PickMultiBlock()
    +    PickSurface()
    +    PickBigSilMat()
    +    PickOnionPeel2()
    +    PickSpecMix()
    +    PickCurve()
    +    PickMultiWindow()
    +    PickAfterEngineClosed()
    +    PickAfterEngineCrashed()
    +    PickBoundary()
    +    PickVectorPlots()
    +    PickPointMeshes()
    +    PickGlobalIds()
    +    PickExpressions()
    +    PickAMR()
    +    PickSamrai()
    +    PickIndexSelect()
    +    PickTensors()
    +    PickMili()
    +    PickContour()
    +    PickBox()
    +    PickScatter()
    +    PickHighlight()
    +    PickHighlightColor()
    +    PickRange()
    +    TestRemovePicks()
    +    TestRemoveLabeledPicks()
    +    PickLines3D()
    +    PickZoneLabel()
    +    PickNodeLabel()
    +    PickRangeLabel()
    +    TestSwivelFocus()
    +    TestSwivelHighlight()
    +    TestNodeHighlight()
    +    TestTranslatedHighlight()
    +    TestPickingExpression()
    +
    +# Call the main function
    +TurnOnAllAnnotations()
    +PickMain()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pickarray.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pickarray.html new file mode 100644 index 000000000..1a70b82e1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pickarray.html @@ -0,0 +1,96 @@ + +Results for queries/pickarray.py + +

    Results of VisIt Regression Test - queries/pickarray

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    pickarray_010 modifications totalling 0 lines
    pickarray_020.410.19
    pickarray_030 modifications totalling 0 lines
    pickarray_040.340.19
    pickarray_050 modifications totalling 0 lines
    pickarray_060 modifications totalling 0 lines
    pickarray_070.410.19
    pickarray_080 modifications totalling 0 lines
    pickarray_091.230.37
    pickarray_100.410.18
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pickarray_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pickarray_py.html new file mode 100644 index 000000000..479475e0a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pickarray_py.html @@ -0,0 +1,137 @@ +queries/pickarray.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  pickarray.py
    +#  Tests:      queries     - Pick on array variables
    +#
    +#  Defect ID:  '6862, '3191, '7323, '7324
    +#
    +#  Programmer: Hank Childs
    +#  Date:       May 25, 2006
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Tue Sep  5 17:08:59 PDT 2006
    +#    Add more tests for indexing bug ['7324].
    +#
    +#    Kathleen Bonnell, Wed Oct 18 11:43:27 PDT 2006 
    +#    Add more tests for bug '7498.
    +#
    +#    Hank Childs, Fri Jan  5 13:51:41 PST 2007
    +#    Add tests for time varying databases ['7323].
    +#
    +#    Hank Childs, Fri Jan 12 17:31:15 PST 2007
    +#    Added tests for array variables with bin widths.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +a = AnnotationAttributes()
    +TurnOffAllAnnotations(a)
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor","d")
    +DrawPlots()
    +
    +DefineArrayExpression("arr", "array_compose(d, p)")
    +Pick((0.5, 0.5), "arr")
    +text = GetPickOutput()
    +TestText("pickarray_01", text)
    +
    +SetActiveWindow(2)
    +SetAnnotationAttributes(a)
    +
    +Test("pickarray_02")
    +
    +# Now make sure future picks cause the window to update.
    +SetActiveWindow(1)
    +Pick((0.5, 1.0), "arr")
    +text = GetPickOutput()
    +TestText("pickarray_03", text)
    +
    +SetActiveWindow(2)
    +Test("pickarray_04")
    +
    +SetActiveWindow(1)
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +AddPlot("Pseudocolor", "pressure")
    +DrawPlots()
    +DefineArrayExpression("arr2", "array_compose(u, v)")
    +ZonePick((0.29, 0.47, 5.0), "arr2")
    +text = GetPickOutput()
    +TestText("pickarray_05", text)
    +
    +#  bug '7498.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +DefineArrayExpression("arr3", "array_compose(dx, dy, dz)")
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +vars = ("u", "arr3")
    +Pick(128, 107, vars)
    +text = GetPickOutput() + "\n"
    +
    +e = ExportDBAttributes()
    +e.db_type = "VTK"
    +e.filename = "globe_temp"
    +e.variables = ("u", "dx", "dy")
    +ExportDatabase(e)
    +ReplaceDatabase("globe_temp.vtk")
    +Pick(128, 107, vars)
    +text += GetPickOutput()
    +text += "\n"
    +
    +DeleteExpression("arr3")
    +DefineArrayExpression("arr3", "array_compose(dx, dy)")
    +Pick(128, 107, vars)
    +text += GetPickOutput()
    +TestText("pickarray_06", text)
    +
    +#  bug '7323
    +SetActiveWindow(1)
    +DeleteAllPlots()
    +SetActiveWindow(2)
    +DeleteAllPlots()
    +SetActiveWindow(1)
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +AddPlot("Pseudocolor", "pressure")
    +TimeSliderSetState(34)
    +DrawPlots()
    +ZonePick((0.29, 0.47, 5.0), "arr2")
    +SetActiveWindow(2)
    +Test("pickarray_07")
    +Query("Cycle")
    +output = GetQueryOutputString()
    +TestText("pickarray_08", output)
    +
    +DeleteAllPlots()
    +SetActiveWindow(1)
    +DeleteAllPlots()
    +DefineArrayExpression("arr4", "array_compose_with_bins(dx, dy, [0, 0.5, 1.5])")
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +vars = ("u", "arr4")
    +Pick(128, 107, vars)
    +SetActiveWindow(2)
    +ResetView()
    +Test("pickarray_09")
    +
    +h = HistogramAttributes()
    +h.useBinWidths = 0
    +h.basedOn = h.ManyVarsForSingleZone
    +SetPlotOptions(h)
    +ResetView()
    +Test("pickarray_10")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pickcleanzonesonly.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pickcleanzonesonly.html new file mode 100644 index 000000000..5fd447485 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pickcleanzonesonly.html @@ -0,0 +1,48 @@ + +Results for queries/pickcleanzonesonly.py + +

    Results of VisIt Regression Test - queries/pickcleanzonesonly

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    PickCleanZonesOnly10 modifications totalling 0 lines
    PickCleanZonesOnly20 modifications totalling 0 lines
    PickCleanZonesOnly30 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pickcleanzonesonly_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pickcleanzonesonly_py.html new file mode 100644 index 000000000..3026ff1ff --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_pickcleanzonesonly_py.html @@ -0,0 +1,57 @@ +queries/pickcleanzonesonly.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  pickcleanzonesonly.py
    +#  Tests:      queries     - Pick on mixed zones of clean zones only
    +#
    +#  Defect ID:  VisIt00003894
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       October 30, 2003
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Apr 29 07:40:58 PDT 2004 
    +#    Slice defaults atts have changed, update accordingly. 
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +# Make a sliced filled boundary plot with clean zones only enabled
    +TurnOnAllAnnotations()
    +OpenDatabase(silo_data_path("ucd3d.silo"))
    +
    +AddPlot("FilledBoundary","mat1")
    +f=FilledBoundaryAttributes()
    +f.cleanZonesOnly=1
    +SetPlotOptions(f)
    +AddOperator("Slice")
    +s=SliceAttributes()
    +s.axisType=s.YAxis
    +s.originIntercept = .01
    +s.project2d=1
    +SetOperatorOptions(s)
    +DrawPlots()
    +
    +# Pick on one of the mixed zones
    +Pick((-3.5,10.1))
    +text = GetPickOutput()
    +TestText("PickCleanZonesOnly1", text)
    +
    +# Change the slice position and do it again
    +s.axisType=s.ZAxis
    +s.originIntercept=3.
    +SetOperatorOptions(s)
    +Pick((-1,3.2))
    +text = GetPickOutput()
    +TestText("PickCleanZonesOnly2", text)
    +
    +# Remove the slice and do it again
    +RemoveAllOperators()
    +Pick((3,2,19))
    +text = GetPickOutput()
    +TestText("PickCleanZonesOnly3", text)
    +
    +# All done!
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_py_queries.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_py_queries.html new file mode 100644 index 000000000..054ba380f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_py_queries.html @@ -0,0 +1,44 @@ + +Results for queries/py_queries.py + +

    Results of VisIt Regression Test - queries/py_queries

    + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    py_queries_000 modifications totalling 0 lines
    py_queries_010 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_py_queries_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_py_queries_py.html new file mode 100644 index 000000000..50562e3b1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_py_queries_py.html @@ -0,0 +1,40 @@ +queries/py_queries.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  py_queires.py
    +#
    +#  Tests:      python filters / python queries
    +#              plots     - Pseudocolor
    +#
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Fri May 21 09:14:07 PDT 2010
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +import os
    +from os.path import join as pjoin
    +
    +def script_path(sname):
    +    return pjoin(os.path.split(TestScriptPath())[0],sname)
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +
    +PythonQuery(file=script_path("py_query_script_00.vpq"))
    +res = GetQueryOutputString()
    +TestText("py_queries_00",res + "\n")
    +
    +PythonQuery(file=script_path("py_query_script_01.vpq"),vars=["default","p"],args=["test",0.0,[1,2.0,3]])
    +res = GetQueryOutputString()
    +TestText("py_queries_01",res + "\n")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_queriesOverTime.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_queriesOverTime.html new file mode 100644 index 000000000..fdd242cfb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_queriesOverTime.html @@ -0,0 +1,324 @@ + +Results for queries/queriesOverTime.py + +

    Results of VisIt Regression Test - queries/queriesOverTime

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    AllTimeQueries_010.000.00
    AllTimeQueries_020.000.00
    AllTimeQueries_030.000.00
    AllTimeQueries_040.000.00
    AllTimeQueries_050.000.00
    AllTimeQueries_060.000.00
    AllTimeQueries_070.000.00
    FBTimeQuery_010.000.00
    FBTimeQuery_020.000.00
    TimeQuery_ops_010.000.00
    TimeQuery_ops_020.000.00
    TimeQuery_expr_010.000.00
    TimeQuery_expr_020.000.00
    TimeQuery_expr_030.000.00
    TimeQuery_trans_010.000.00
    TimeQuery_trans_020.000.00
    SpecifyTimeQueryWindow_010.000.00
    SpecifyTimeQueryWindow_020.000.00
    SpecifyTimeQueryWindow_030.000.00
    TimeQuery_sil_010.000.00
    QueryAfterQueryOverTime0 modifications totalling 0 lines
    TimeQuery_mili_010.000.00
    TimeQuery_mili_020.000.00
    TimeQuery_mili_030.000.00
    TimeQuery_mili_040.000.00
    TimePick_MultiVar_010.000.00
    TimePick_MultiVar_020.000.00
    TimePick_MultiVar_030.000.00
    TimePick_MultiVar_040.000.00
    TimePickRange_000.000.00
    TimePickRangeDict_000 modifications totalling 0 lines
    TimePickRange_010.000.00
    TimePickRangeDict_010 modifications totalling 0 lines
    TimePickRange_020.000.00
    TimePickRangeDict_020 modifications totalling 0 lines
    Pick Updated
     "" .eq. "" : True
    Timing Direct Database Query
     0.20524263381958008 .le. 10 (prec=5) : True
    Direct_Database_Route_000.000.00
    Direct_Database_Route_010.000.00
    Direct_Database_Route_020.000.00
    Direct_Database_Route_030.000.00
    Direct_Database_Route_040.000.00
    Direct_Database_Route_050.000.00
    Direct_Database_Route_060.000.00
    Direct_Database_Route_070.000.00
    Direct_Database_Route_080.000.00
    Direct_Database_Route_090.000.00
    Direct_Database_Route_100.000.00
    Direct_Database_Route_110.000.00
    OperatorCreatedVar_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_queriesOverTime_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_queriesOverTime_py.html new file mode 100644 index 000000000..7291cb98d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_queriesOverTime_py.html @@ -0,0 +1,1065 @@ +queries/queriesOverTime.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  queriesOverTime.py #
    +#  Tests:      queries     - Database
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Kathleen Bonnell
    +#  Date:       March 31, 2004
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Tue Apr 13 13:00:15 PDT 2004
    +#    Rename surface area query.
    +#
    +#    Kathleen Bonnell, Tue Apr 20 09:42:30 PDT 2004
    +#    Added TestFilledBoundary.
    +#
    +#    Kathleen Bonnell, Tue Apr 27 12:10:44 PDT 2004
    +#    Added TestExpressions, TestOperators.
    +#
    +#    Kathleen Bonnell, Thu Jun 24 09:49:35 PDT 2004
    +#    Added TestTransientVariable.
    +#
    +#    Kathleen Bonnell, Wed Jul 21 16:51:31 PDT 2004
    +#    Added TestSpecifyTimeQueryWindow.
    +#
    +#    Kathleen Bonnell, Wed Sep  8 10:53:58 PDT 2004
    +#    Renamed 'WorldPick' as 'Pick'.
    +#
    +#    Kathleen Bonnell, Mon Dec 20 15:54:04 PST 2004
    +#    Changed 'Variable by Node' to 'PickByNode'.
    +#
    +#    Kathleen Bonnell, Thu Jan  6 11:06:29 PST 2005
    +#    Added TestTimeVaryingSIL.
    +#
    +#    Kathleen Bonnell, Wed Mar 16 11:13:40 PST 2005
    +#    Added TestQueryAfterQueryOverTime.
    +#
    +#    Kathleen Bonnell, Wed Jul  6 16:21:34 PDT 2005
    +#    Added TestMili.
    +#
    +#    Kathleen Bonnell, Thu Nov 10 08:21:54 PST 2005
    +#    Added TrajectoryByZone to TestMili.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Fri Feb  5 09:27:37 PST 2010
    +#    Turn off color cycling to avoid possible propagation of error from
    +#    one failed test to several.
    +#
    +#    Kathleen Bonnell, Thu Mar  3 11:47:09 PST 2011
    +#    Added MultiVarTimePick tests.
    +#
    +#    Kathleen Biagas, Thu Jul 14 10:44:55 PDT 2011
    +#    Use named arguments.
    +#
    +#    Alister Maguire, Tue Oct 17 16:54:48 PDT 2017
    +#    Added TestPickRangeTimeQuery
    +#
    +#    Alister Maguire, Wed May  9 10:13:26 PDT 2018
    +#    Added TestReturnValue.
    +#
    +#    Alister Maguire, Wed May 30 14:16:28 PDT 2018
    +#    Added tests for performing pick ranges over time with and
    +#    without plotting and returning the curves.
    +#
    +#    Alister Maguire, Wed May 22 08:49:30 PDT 2019
    +#    Updated mili tests to reflect new plugin changes.
    +#
    +#    Alister Maguire, Tue Oct  1 11:48:15 MST 2019
    +#    Make sure to set use_actual_data to true when we want
    +#    to use data from the pipeline output.
    +#
    +#    Alister Maguire, Fri Oct 11 13:12:36 PDT 2019
    +#    Added TestDirectDatabaseRoute. I also updated several tests to
    +#    use actual data so that they continue to test the old QOT route.
    +#
    +#    Kathleen Biagas, Thu Jan 30 13:37:50 MST 2020
    +#    Added TestOperatorCreatedVar. (github bugs #2842, #3489).
    +#
    +#    Alister Maguire, Tue Feb 25 13:46:24 PST 2020
    +#    Added tests for handling vectors in the direct database route.
    +#
    +#    Alister Maguire, Mon Mar  9 15:16:36 PDT 2020
    +#    I've removed the use_actual_data flag for Pick queries as this
    +#    is now handled internally.
    +#
    +#    Alister Maguire, Thu Nov  5 08:22:15 PST 2020
    +#    Updated the multi-domain DDQOT test to ensure that the selected
    +#    element is not on processor 0 when run in parallel.
    +#
    +#    Alister Maguire, Fri Nov  6 10:06:22 PST 2020
    +#    Added more DirectDatabaseQOT tests that ensure verdict metrics
    +#    are able to be queried using this route.
    +#
    +#    Mark C. Miller, Mon Jan 11 10:37:07 PST 2021
    +#    Replace Assert-style with TestValue-style tests
    +#
    +#    Kathleen Biagas, Wed Feb 16 13:11:57 PST 2022
    +#    Replaced Curve atts 'cycleColors' with 'curveColorSource', 'color' with
    +#    'curveColor', and 'renderMode=RenderAsLines' with 'showLines'.
    +#
    +# ----------------------------------------------------------------------------
    +
    +RequiredDatabasePlugin(("PDB", "Mili", "SAMRAI"))
    +
    +def InitAnnotation():
    +    # Turn off most annotations
    +    a = AnnotationAttributes()
    +    a.axes2D.visible = 1
    +    a.axes2D.xAxis.label.visible = 1
    +    a.axes2D.yAxis.label.visible = 1
    +    a.axes2D.xAxis.title.visible = 1
    +    a.axes2D.yAxis.title.visible = 1
    +    a.axes3D.triadFlag = 0
    +    a.axes3D.bboxFlag = 0
    +    a.userInfoFlag = 0
    +    a.databaseInfoFlag = 0
    +    a.legendInfoFlag = 0
    +    a.backgroundMode = a.Solid
    +    a.foregroundColor = (0, 0, 0, 255)
    +    a.backgroundColor = (255, 255, 255, 255)
    +    SetAnnotationAttributes(a)
    +
    +def SetCurvePlotDefaults():
    +    # Disable Color Cycling, default to a blue curve.
    +    catts = CurveAttributes()
    +    catts.lineWidth = 0
    +    catts.curveColor = (0, 0, 255, 255)
    +    catts.showLabels = 1
    +    catts.designator = ""
    +    catts.showPoints = 0
    +    catts.showLegend = 1
    +    catts.curveColorSource = catts.Custom
    +    catts.showLines = 1
    +    SetDefaultPlotOptions(catts)
    +
    +
    +
    +def TestAllTimeQueries():
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    QueryOverTime("3D surface area")
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("AllTimeQueries_01")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    QueryOverTime("Volume")
    +    SetActiveWindow(2);
    +    Test("AllTimeQueries_02")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    QueryOverTime("Min")
    +    SetActiveWindow(2);
    +    Test("AllTimeQueries_03")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    QueryOverTime("Max")
    +    SetActiveWindow(2);
    +    Test("AllTimeQueries_04")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    QueryOverTime("Variable Sum")
    +    SetActiveWindow(2);
    +    Test("AllTimeQueries_05")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    QueryOverTime("Weighted Variable Sum")
    +    SetActiveWindow(2);
    +    Test("AllTimeQueries_06")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    pa = GetPickAttributes()
    +    pa.doTimeCurve = 1
    +    pa.timePreserveCoord = 0
    +    SetPickAttributes(pa)
    +    PickByNode(15947)
    +    # reset some defaults
    +    pa.doTimeCurve = 0
    +    pa.timePreserveCoord = 1
    +    SetPickAttributes(pa)
    +    SetActiveWindow(2);
    +    Test("AllTimeQueries_07")
    +
    +    # delete window 2
    +    DeleteWindow()
    +    # remove plots from window 1
    +    DeleteAllPlots()
    +
    +def TestFilledBoundary():
    +    #  bug '4708
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +    AddPlot("FilledBoundary", "Material")
    +    DrawPlots()
    +    TurnMaterialsOff(("1 barrier", "2 water"))
    +
    +    SetActiveWindow(1)
    +    QueryOverTime("3D surface area")
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +
    +    Test("FBTimeQuery_01")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    TurnMaterialsOff(("1 barrier", "2 water"))
    +    QueryOverTime("3D surface area")
    +    SetActiveWindow(2)
    +    Test("FBTimeQuery_02")
    +
    +    # delete window 2
    +    DeleteWindow()
    +    # remove plots from window 1
    +    TurnMaterialsOn()
    +    DeleteAllPlots()
    +
    +def TestOperators():
    +    #  bug '4818
    +    OpenDatabase(silo_data_path("wave*.silo database"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    AddOperator("Isovolume")
    +    iso = IsovolumeAttributes()
    +    iso.lbound = 0.1
    +    iso.ubound = 1.0
    +    SetOperatorOptions(iso)
    +    DrawPlots()
    +
    +    SetActiveWindow(1)
    +    QueryOverTime("Volume", stride=10, use_actual_data=1)
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("TimeQuery_ops_01")
    +
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "mesh_quality/jacobian")
    +    AddOperator("Slice")
    +    slice = SliceAttributes()
    +    slice.axisType = slice.Arbitrary
    +    slice.normal = (-0.689, -0.0416, 0.7233)
    +    slice.originType = slice.Point
    +    slice.originPoint = (2.0011, -0.4084, -1.1279)
    +    slice.upAxis = (-0.08584, 0.996007, -0.0245)
    +    slice.project2d = 1
    +    SetOperatorOptions(slice)
    +
    +    DrawPlots()
    +    QueryOverTime("2D area", stride=10, use_actual_data=1)
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("TimeQuery_ops_02")
    +
    +    # prepare for next test-set
    +    # delete plots from window 2 & l
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +def TestExpressions():
    +    #bug '4784
    +    OpenDatabase(data_path("pdb_test_data/dbA00.pdb"))
    +
    +    AddPlot("Pseudocolor", "mesh/ireg")
    +    pa = PseudocolorAttributes()
    +    pa.minFlag = 1
    +    pa.maxFlag = 1
    +    pa.min = 1
    +    pa.max = 4
    +    SetPlotOptions(pa)
    +    DrawPlots()
    +
    +    pt = (4., 3., 0.)
    +    pick = GetPickAttributes()
    +    pick.doTimeCurve = 1
    +    SetPickAttributes(pick)
    +    Pick(pt)
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("TimeQuery_expr_01")
    +
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    # test a scalar expression
    +    OpenDatabase(silo_data_path("wave*.silo database"))
    +
    +    DefineScalarExpression("p2", "pressure*pressure")
    +    AddPlot("Pseudocolor", "p2")
    +    DrawPlots()
    +
    +    QueryOverTime("Variable Sum", stride=10)
    +    SetActiveWindow(2)
    +    Test("TimeQuery_expr_02")
    +
    +    # prepare for next test-set
    +    # delete plots from window 2 & l
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    OpenDatabase(data_path("pdb_test_data/dbA00.pdb"))
    +
    +    DefineScalarExpression("m", "matvf(material, 1)")
    +    AddPlot("Pseudocolor", "m")
    +    DrawPlots()
    +
    +    QueryOverTime("Variable Sum")
    +    SetActiveWindow(2)
    +    Test("TimeQuery_expr_03")
    +
    +    # prepare for next test-set
    +    # delete plots from window 2 & l
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +
    +
    +def TestTransientVariable():
    +    #bug '4906
    +
    +    # Do what is necessary to get access to the transient variable,
    +    # because QueryOverTime requires an active drawn plot.
    +    db = silo_data_path("wave_tv*.silo database")
    +    OpenDatabase(db)
    +    SetTimeSliderState(17)
    +    ReOpenDatabase(db)
    +    AddPlot("Pseudocolor", "transient")
    +    DrawPlots()
    +
    +    qt = GetQueryOverTimeAttributes()
    +    qt.timeType = qt.Timestep
    +    SetQueryOverTimeAttributes(qt)
    +
    +    QueryOverTime("Variable Sum")
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("TimeQuery_trans_01")
    +
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    pick = GetPickAttributes()
    +    pick.doTimeCurve = 1
    +    pick.timePreserveCoord = 0
    +    SetPickAttributes(pick)
    +    PickByNode(327)
    +
    +    pick.doTimeCurve = 0
    +    pick.timePreserveCoord = 1
    +    SetPickAttributes(pick)
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("TimeQuery_trans_02")
    +
    +    # Prepare for next test
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +def TestSpecifyTimeQueryWindow():
    +    # bug '5163
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +
    +    qt = GetQueryOverTimeAttributes()
    +    qt.timeType = qt.Timestep
    +    SetQueryOverTimeAttributes(qt)
    +
    +    QueryOverTime("3D surface area")
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("SpecifyTimeQueryWindow_01")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    TurnMaterialsOff(("1 barrier"))
    +    DrawPlots()
    +
    +    qot = GetQueryOverTimeAttributes()
    +    qot.createWindow = 0
    +    qot.windowId = 3
    +    SetQueryOverTimeAttributes(qot)
    +
    +    QueryOverTime("3D surface area")
    +
    +    SetActiveWindow(3)
    +    InitAnnotation()
    +    Test("SpecifyTimeQueryWindow_02")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    TurnMaterialsOff(("2 water"))
    +    DrawPlots()
    +
    +    qot.windowId = 2
    +    SetQueryOverTimeAttributes(qot)
    +
    +    QueryOverTime("3D surface area")
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("SpecifyTimeQueryWindow_03")
    +
    +    # Prepare for next test
    +    DeleteAllPlots()
    +    DeleteWindow()
    +    SetActiveWindow(3)
    +    DeleteWindow()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +def TestTimeVaryingSIL():
    +    #bug '5473
    +    OpenDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +
    +    cfileName = "./temp.curve"
    +    curveFile = open(cfileName, "wt")
    +    curveFile.write("#3D surface area\n")
    +    nframes = TimeSliderGetNStates()
    +    for i in range(nframes):
    +        Query("3D surface area")
    +        val = GetQueryOutputValue()
    +        curveFile.write("%g %g\n" % (i, val))
    +        TimeSliderNextState()
    +
    +    curveFile.close()
    +
    +    AddWindow()
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    OpenDatabase(cfileName)
    +    AddPlot("Curve", "3D surface area")
    +    DrawPlots()
    +
    +    SetActiveWindow(1)
    +
    +    # Go ahead and use default plot for now.
    +    qt = GetQueryOverTimeAttributes()
    +    qt.timeType = qt.Timestep
    +    qt.createWindow = 0
    +    qt.windowId = 2
    +    SetQueryOverTimeAttributes(qt)
    +
    +    QueryOverTime("3D surface area")
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    cv = GetViewCurve();
    +    cv.domainCoords = (-0.534115, 10.5341)
    +    cv.rangeCoords = (4029.87, 5856.13)
    +    SetViewCurve(cv)
    +
    +    SetActivePlots((0, 1))
    +    c = CurveAttributes()
    +    c.showPoints = 1
    +    SetPlotOptions(c)
    +
    +    Query("Area Between Curves")
    +    s = GetQueryOutputString()
    +    text = CreateAnnotationObject("Text2D")
    +    text.text =  s
    +    text.height = 0.02
    +    text.position = (0.55, 0.4)
    +
    +    Test("TimeQuery_sil_01")
    +
    +    text.Delete()
    +    os.unlink(cfileName)
    +
    +    # Prepare for next test
    +    DeleteAllPlots()
    +    SetActiveWindow(2)
    +    DeleteWindow()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +def TestQueryAfterQueryOverTime():
    +    # bug '5823
    +    OpenDatabase(silo_data_path("wave_tv.visit"))
    +
    +    SetTimeSliderState(17)
    +    ReOpenDatabase(silo_data_path("wave_tv.visit"))
    +
    +    AddPlot("Pseudocolor", "transient")
    +    DrawPlots()
    +
    +    QueryOverTime("Volume")
    +    Query("Volume")
    +    s = GetQueryOutputString()
    +    QueryOverTime("Max")
    +    Query("Max")
    +    s = s + GetQueryOutputString()
    +
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    # bug '6042
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    TurnMaterialsOn()
    +    QueryOverTime("3D surface area", stride=10)
    +
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    TestText("QueryAfterQueryOverTime", s)
    +
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +def TestMili():
    +    # bug '6430
    +    OpenDatabase(data_path("mili_test_data/single_proc/m_plot.mili"))
    +
    +    AddPlot("Pseudocolor", "Primal/node/nodvel/vz")
    +    DrawPlots()
    +
    +    ResetQueryOverTimeAttributes()
    +
    +    QueryOverTime("Volume")
    +    SetActiveWindow(2)
    +    ResetView()
    +    InitAnnotation()
    +    Test("TimeQuery_mili_01")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    QueryOverTime("Max")
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("TimeQuery_mili_02")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    p = GetPickAttributes()
    +    p.doTimeCurve = 1
    +    p.timePreserveCoord = 0
    +    SetPickAttributes(p)
    +    NodePick(122, 161)
    +
    +    p.doTimeCurve = 0
    +    SetPickAttributes(p)
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("TimeQuery_mili_03")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    qvars = ("Primal/shell/edv1", "Primal/shell/edv2")
    +    QueryOverTime("TrajectoryByZone", element=242, vars=qvars)
    +    SetActiveWindow(2)
    +    ResetView()
    +    InitAnnotation()
    +    Test("TimeQuery_mili_04")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +def MultiVarTimePick():
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +
    +    pa = GetPickAttributes()
    +    pa.doTimeCurve = 1
    +    pa.timeCurveType = pa.Single_Y_Axis
    +    SetPickAttributes(pa)
    +
    +    vars =("pressure", "v", "direction_magnitude")
    +    PickByNode(8837, vars)
    +
    +    SetActiveWindow(2);
    +    InitAnnotation()
    +    Test("TimePick_MultiVar_01")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    pa.timeCurveType = pa.Multiple_Y_Axes
    +    SetPickAttributes(pa)
    +    PickByNode(8837, vars)
    +
    +    SetActiveWindow(2);
    +    Test("TimePick_MultiVar_02")
    +    DeleteAllPlots()
    +
    +    # remove plots from window 1
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    OpenDatabase(data_path("mili_test_data/single_proc/m_plot.mili"))
    +
    +    AddPlot("Pseudocolor", "Primal/shell/inteng")
    +    DrawPlots()
    +
    +    pa.timePreserveCoord = 0
    +    pa.timeCurveType = pa.Single_Y_Axis
    +    SetPickAttributes(pa)
    +
    +    vars = ("default", "Primal/shell/normal_magnitude")
    +    PickByZone(233, vars)
    +
    +    SetActiveWindow(2);
    +    Test("TimePick_MultiVar_03")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    pa.timeCurveType = pa.Multiple_Y_Axes
    +    SetPickAttributes(pa)
    +    PickByZone(233, vars)
    +
    +    SetActiveWindow(2);
    +    Test("TimePick_MultiVar_04")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +def TestPickRangeTimeQuery():
    +
    +    OpenDatabase(silo_data_path("wave_tv.visit"))
    +    SetTimeSliderState(17)
    +
    +    AddPlot("Pseudocolor", "v")
    +    DrawPlots()
    +
    +    pickAtts = GetPickAttributes()
    +    pickAtts.doTimeCurve = 0
    +    pickAtts.variables = ("default", "v")
    +    pickAtts.timeCurveType =  pickAtts.Single_Y_Axis
    +    SetPickAttributes(pickAtts)
    +
    +    #
    +    # Return the curves without plotting, and show
    +    # highlights.
    +    #
    +    pickAtts.showPickHighlight = 1
    +    SetPickAttributes(pickAtts)
    +    options = {}
    +    options["pick_range"] = "100-105, 100, 1"
    +    options["do_time"] = 0
    +    options["return_curves"] = 1
    +    output_dict = PickByZone(options)
    +
    +    Test("TimePickRange_00")
    +    # use json.dumps for dictionary object, makes for easier parsing
    +    # of diffs when there are errors
    +    TestText("TimePickRangeDict_00",json.dumps(output_dict, indent=2))
    +    ClearPickPoints()
    +
    +    #
    +    # Plot the curves, but don't return them.
    +    #
    +    pickAtts.showPickHighlight = 0
    +    SetPickAttributes(pickAtts)
    +    options = {}
    +    options["pick_range"] = "100-105, 100, 1"
    +    options["do_time"] = 1
    +    options["return_curves"] = 0
    +    options["start_time"] = 10
    +    options["end_time"] = 14
    +    options["stride"] = 2
    +    output_dict = PickByNode(options)
    +    SetActiveWindow(2)
    +    Test("TimePickRange_01")
    +    TestText("TimePickRangeDict_01",json.dumps(output_dict, indent=2))
    +    ClearPickPoints()
    +    SetActiveWindow(1)
    +
    +    #
    +    # Plot the curves, and return them.
    +    #
    +    pickAtts.showPickHighlight = 0
    +    SetPickAttributes(pickAtts)
    +    options = {}
    +    options["pick_range"] = "100-105"
    +    options["do_time"] = 1
    +    options["return_curves"] = 1
    +    options["start_time"] = 20
    +    options["end_time"] = 60
    +    options["stride"] = 2
    +    output_dict = PickByNode(options)
    +
    +    SetActiveWindow(2)
    +    Test("TimePickRange_02")
    +    TestText("TimePickRangeDict_02",json.dumps(output_dict, indent=2))
    +    SetActiveWindow(1)
    +
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +    SetActiveWindow(1)
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def TestReturnValue():
    +    #
    +    # There used to be a bug where the return value
    +    # from previous picks would propagate to the following
    +    # time query. Let's make sure this isn't re-introduced.
    +    #
    +    OpenDatabase(silo_data_path("wave.visit"))
    +    AddPlot("Pseudocolor", "v")
    +    DrawPlots()
    +
    +    pickAtts = GetPickAttributes()
    +    pickAtts.doTimeCurve = 0
    +    pickAtts.variables = ("default", "v")
    +    pickAtts.timeCurveType =  pickAtts.Single_Y_Axis
    +    SetPickAttributes(pickAtts)
    +
    +    time1   = NodePick(coord=(3, .5, 3), do_time=1, start_time=0, end_time=70)
    +    no_time = NodePick(coord=(2, .2, 2), do_time=0)
    +    time2   = NodePick(coord=(3, .5, 3), do_time=1, start_time=0, end_time=70)
    +
    +    TestValueEQ("Pick Updated", type(time1), type(time2))
    +
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def TestDirectDatabaseRoute():
    +
    +    #
    +    # Cleanup any plots that haven't been deleted yet.
    +    #
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    OpenDatabase(data_path("mili_test_data/single_proc/d3samp6_10_longrun.plt.mili"))
    +    AddPlot("Pseudocolor", "Primal/Shared/edrate")
    +    DrawPlots()
    +
    +    element    = 116
    +    domain     = 0
    +    element    = 116
    +    preserve   = 0
    +    start      = 0
    +    stride     = 1
    +    stop       = 10000
    +    vars       = ("default")
    +
    +    #
    +    # First, let's time the query. This hard to predict because of it being dependent
    +    # on the machine's architecture, but we can make an educated guess. The direct
    +    # route should take under a second, and the old route should take at least
    +    # 30 seconds. We'll give ourselves a threshold of 10 seconds to be safe.
    +    #
    +    import time
    +    thresh = 10
    +    timer_start = time.time()
    +
    +    PickByZone(curve_plot_type=0, vars=vars, do_time=1, domain=domain, element=element,
    +        preserve_coord=preserve, end_time=stop, start_time=start, stride=stride)
    +
    +    timer_stop = time.time()
    +    res = timer_stop - timer_start
    +
    +    TestValueLE("Timing Direct Database Query", res, thresh)
    +    SetActiveWindow(2)
    +    Test("Direct_Database_Route_00")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    #
    +    # Like the original QOT, the direct route creates a clone, but this clone
    +    # differs in that its resulting dataset will NOT match the original dataset.
    +    # Let's make sure the active dataset is being updated to the old plot by
    +    # performing a new pick (not through time).
    +    #
    +    PickByZone(do_time=0, domain=domain, element=element)
    +    Test("Direct_Database_Route_01")
    +
    +    #
    +    # Test basic range settings.
    +    #
    +    start  = 100
    +    stop   = 900
    +    stride = 10
    +    PickByZone(curve_plot_type=0, vars=vars, do_time=1, domain=domain, element=element,
    +        preserve_coord=preserve, end_time=stop, start_time=start, stride=stride)
    +    stride = 1
    +    start  = 0
    +    stop   = 10000
    +    SetActiveWindow(2)
    +    Test("Direct_Database_Route_02")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "Primal/node/nodacc/ax")
    +    DrawPlots()
    +
    +    # This tests two things:
    +    #    1. Plotting a node pick curve.
    +    #    2. Using a direct route query on magnitude expression.
    +    #
    +    vars=("Primal/node/nodacc_magnitude")
    +    PickByNode(curve_plot_type=0, vars=vars, do_time=1, domain=domain, element=element,
    +        preserve_coord=preserve, end_time=stop, start_time=start, stride=stride)
    +    SetActiveWindow(2)
    +    Test("Direct_Database_Route_03")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    DeleteAllPlots()
    +    OpenDatabase(data_path("mili_test_data/single_proc/m_plot.mili"))
    +    AddPlot("Pseudocolor", "Primal/brick/stress/sx")
    +    DrawPlots()
    +
    +    #
    +    # Test plotting multiple variables at once.
    +    #
    +    element = 489
    +    vars=("Primal/brick/stress/sz", "Primal/brick/stress/sx")
    +    PickByZone(curve_plot_type=0, vars=vars, do_time=1, domain=domain, element=element,
    +        preserve_coord=preserve, end_time=stop, start_time=start, stride=stride)
    +    SetActiveWindow(2)
    +    Test("Direct_Database_Route_04")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    #
    +    # Testing the multi curve plot.
    +    #
    +    PickByZone(curve_plot_type=1, vars=vars, do_time=1, domain=domain, element=element,
    +        preserve_coord=preserve, end_time=stop, start_time=start, stride=stride)
    +    SetActiveWindow(2)
    +    Test("Direct_Database_Route_05")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    #
    +    # Test multi-domain data.
    +    #
    +    DeleteAllPlots()
    +    OpenDatabase(data_path("mili_test_data/multi_proc/d3samp6.plt.mili"))
    +    AddPlot("Pseudocolor", "Primal/Shared/edrate")
    +    DrawPlots()
    +    domain = 5
    +    element = 14
    +    vars = ("default")
    +    PickByZone(curve_plot_type=0, vars=vars, do_time=1, domain=domain, element=element,
    +        preserve_coord=preserve, end_time=stop, start_time=start, stride=stride)
    +    SetActiveWindow(2)
    +    Test("Direct_Database_Route_06")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    DeleteAllPlots()
    +
    +    #
    +    # Now let's test a variable that is not defined on all
    +    # timesteps.
    +    #
    +    db = silo_data_path("wave_tv*.silo database")
    +    OpenDatabase(db)
    +    SetTimeSliderState(17)
    +    ReOpenDatabase(db)
    +    AddPlot("Pseudocolor", "transient")
    +    DrawPlots()
    +
    +    pick = GetPickAttributes()
    +    pick.doTimeCurve = 1
    +    pick.timePreserveCoord = 0
    +    SetPickAttributes(pick)
    +    PickByNode(element=327)
    +
    +    pick.doTimeCurve = 0
    +    pick.timePreserveCoord = 1
    +    SetPickAttributes(pick)
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("Direct_Database_Route_07")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    #
    +    # Next, let's test a vector plot. The vectors should be reduced
    +    # to their magnitudes.
    +    #
    +    AddPlot("Vector", "direction")
    +    DrawPlots()
    +
    +    pick = GetPickAttributes()
    +    pick.doTimeCurve = 1
    +    pick.timePreserveCoord = 0
    +    SetPickAttributes(pick)
    +    PickByNode(element=10)
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("Direct_Database_Route_08")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    #
    +    # Next, let's test using the direct database route on verdict metrics.
    +    #
    +    OpenDatabase(data_path("mili_test_data/single_proc/d3samp6.plt.mili"))
    +    AddPlot("Pseudocolor", "mesh_quality/mesh1/skew")
    +    DrawPlots()
    +
    +    domain     = 0
    +    element    = 116
    +    preserve   = 0
    +    start      = 0
    +    stride     = 1
    +    stop       = 10000
    +
    +    vars=("default")
    +    PickByZone(curve_plot_type=0, vars=vars, do_time=1, domain=domain, element=element,
    +        preserve_coord=preserve, end_time=stop, start_time=start, stride=stride)
    +
    +    SetActiveWindow(2)
    +    Test("Direct_Database_Route_09")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    #
    +    # This is a continuation of testing verdicts, but this is an edge case that should
    +    # be handled when plotting multiple variables. The case occurs when our active
    +    # variable does not depend on mesh coodinates, but we also request a variable that
    +    # requires mesh coordinates (like verdict). There is a re-ordering that needs to
    +    # take place during the request retrieval process.
    +    #
    +    AddPlot("Pseudocolor", "Primal/Shared/strain/ezx")
    +    DrawPlots()
    +
    +    vars=("default", "mesh_quality/mesh1/face_planarity")
    +    PickByZone(curve_plot_type=0, vars=vars, do_time=1, domain=domain, element=element,
    +        preserve_coord=preserve, end_time=stop, start_time=start, stride=stride)
    +
    +    SetActiveWindow(2)
    +    Test("Direct_Database_Route_10")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    vars=("default", "mesh_quality/mesh1/face_planarity")
    +    PickByZone(curve_plot_type=1, vars=vars, do_time=1, domain=domain, element=element,
    +        preserve_coord=preserve, end_time=stop, start_time=start, stride=stride)
    +
    +    SetActiveWindow(2)
    +    Test("Direct_Database_Route_11")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +
    +def TestOperatorCreatedVar():
    +    OpenDatabase(silo_data_path("wave.visit"))
    +    DefineVectorExpression("normals", "cell_surface_normal(quadmesh)")
    +
    +    AddPlot("Pseudocolor", "operators/Flux/quadmesh")
    +
    +    fluxAtts = FluxAttributes()
    +    fluxAtts.flowField = "direction"
    +    SetOperatorOptions(fluxAtts)
    +
    +    AddOperator("Slice")
    +    sliceAtts = SliceAttributes()
    +    sliceAtts.axisType = sliceAtts.Arbitrary
    +    sliceAtts.normal = (0, 1, 0)
    +    sliceAtts.originType = sliceAtts.Percent
    +    sliceAtts.originPercent = 50
    +    sliceAtts.project2d = 0
    +    SetOperatorOptions(sliceAtts)
    +
    +    AddOperator("DeferExpression")
    +    deferAtts = DeferExpressionAttributes()
    +    deferAtts.exprs = ("normals")
    +    SetOperatorOptions(deferAtts)
    +
    +    # we want slice before flux, so demote it
    +    DemoteOperator(1)
    +
    +    DrawPlots()
    +
    +    qt = GetQueryOverTimeAttributes()
    +    qt.timeType = qt.Cycle
    +    SetQueryOverTimeAttributes(qt)
    +
    +    QueryOverTime("Weighted Variable Sum")
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("OperatorCreatedVar_01")
    +
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    DeleteExpression("normals")
    +    CloseDatabase(silo_data_path("wave.visit"))
    +
    +def TimeQueryMain():
    +    TestAllTimeQueries()
    +    TestFilledBoundary()
    +    TestOperators()
    +    TestExpressions()
    +    TestTransientVariable()
    +    TestSpecifyTimeQueryWindow()
    +    TestTimeVaryingSIL()
    +    TestQueryAfterQueryOverTime()
    +    TestMili()
    +    MultiVarTimePick()
    +    TestPickRangeTimeQuery()
    +    TestReturnValue()
    +    TestDirectDatabaseRoute()
    +    TestOperatorCreatedVar()
    +
    +# main
    +InitAnnotation()
    +SetCurvePlotDefaults()
    +TimeQueryMain()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_queryMultiWindow.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_queryMultiWindow.html new file mode 100644 index 000000000..2aba94f2e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_queryMultiWindow.html @@ -0,0 +1,40 @@ + +Results for queries/queryMultiWindow.py + +

    Results of VisIt Regression Test - queries/queryMultiWindow

    + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    QueryMultiWindow0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_queryMultiWindow_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_queryMultiWindow_py.html new file mode 100644 index 000000000..73a38ad6f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_queryMultiWindow_py.html @@ -0,0 +1,154 @@ +queries/queryMultiWindow.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  queryMultiWindow.py #
    +#  Tests:      queries     - Database
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       May 19, 2004 
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Mon Dec 20 15:54:04 PST 2004
    +#    Changed 'Variable by Zone' to 'PickByZone' and 'Variable by Node' to
    +#    'PickByNode'.
    +#
    +#    Kathleen Bonnell, Thu Apr  3 10:00:48 PDT 2008 
    +#    Added tests from bug 8425. 
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Thu Jul 14 10:44:55 PDT 2011
    +#    Clean up unused / unnecessary query arguments. 
    +#
    +# ----------------------------------------------------------------------------
    +
    +def QueryMultiWindow():
    +    OpenDatabase(silo_data_path("wave*.silo database"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    SetTimeSliderState(31)
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0, -1, 0)
    +    v.viewUp = (0, 0, 1)
    +    SetView3D(v)
    +
    +    CloneWindow()
    +    SetTimeSliderState(64)
    +    DrawPlots()
    +    ChangeActivePlotsVar("v")
    +
    +    s = "Window 1 queries:\n"
    +    SetActiveWindow(1)
    +    Query("MinMax")
    +    s = s + GetQueryOutputString()
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString() + "\n"
    +    PickByZone(7072)
    +    s = s + GetPickOutput() + "\n"
    +    PickByNode(11168)
    +    s = s + GetPickOutput() + "\n"
    +    Query("Variable Sum")
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("NumNodes", use_actual_data=0)
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("NumZones", use_actual_data=0)
    +    s = s + GetQueryOutputString() + "\n"
    +
    +
    +    s = s + "\nWindow 2 queries:\n"
    +    SetActiveWindow(2)
    +    Query("MinMax")
    +    s = s + GetQueryOutputString()
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString() + "\n"
    +    PickByZone(7072)
    +    s = s + GetPickOutput() + "\n"
    +    PickByNode(11168)
    +    s = s + GetPickOutput() + "\n"
    +    Query("Variable Sum")
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("NumNodes", use_actual_data=0)
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("NumZones", use_actual_data=0)
    +    s = s + GetQueryOutputString() + "\n"
    +
    +    #Delete window 2
    +    DeleteWindow()
    +    #Delete plots in window 1
    +    DeleteAllPlots()
    +
    +    #bug 8425 (multiple windows, same db, same timestate)
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    DefineScalarExpression("X", "coord(quadmesh3d)[0]")
    +    DefineScalarExpression("unnamed1", "X-1")
    +    DefineScalarExpression("unnamed2", "X-2")
    +    DefineScalarExpression("unnamed3", "X-3")
    +    SetWindowLayout(4)
    +    AddPlot("Pseudocolor", "unnamed1")
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + "\n" + GetQueryOutputString() + "\n"
    +    SetActiveWindow(2)
    +    AddPlot("Pseudocolor", "unnamed2")
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n"
    +    SetActiveWindow(3)
    +    AddPlot("Pseudocolor", "unnamed3")
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n"
    +    SetActiveWindow(2)
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n"
    +
    +    SetActiveWindow(4)
    +    DeleteWindow()
    +    SetActiveWindow(3)
    +    DeleteWindow()
    +    SetActiveWindow(2)
    +    DeleteWindow()
    +    DeleteAllPlots()
    +
    +    #bug 8425 (multiple plots, same window, same db, same root var)
    +    OpenDatabase(silo_data_path("multi_rect2d.silo"))
    +
    +    DefineScalarExpression("p2", "p*p")
    +    DefineScalarExpression("p3", "p*p*p")
    +    AddPlot("Pseudocolor", "p")
    +    AddPlot("Pseudocolor", "p2")
    +    AddPlot("Pseudocolor", "p3")
    +    DrawPlots()
    +    SetActivePlots(0)
    +    Query("Weighted Variable Sum")
    +    s = s + "\n" + GetQueryOutputString() + "\n"
    +    SetActivePlots(1)
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n"
    +    SetActivePlots(2)
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n"
    +
    +    TestText("QueryMultiWindow", s)
    +
    +    DeleteAllPlots()
    +
    +# Call the main function
    +TurnOnAllAnnotations()
    +QueryMultiWindow()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_revolved_surface_area.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_revolved_surface_area.html new file mode 100644 index 000000000..248785ab4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_revolved_surface_area.html @@ -0,0 +1,56 @@ + +Results for queries/revolved_surface_area.py + +

    Results of VisIt Regression Test - queries/revolved_surface_area

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    revolved_surface_area_010 modifications totalling 0 lines
    revolved_surface_area_020 modifications totalling 0 lines
    revolved_surface_area_030 modifications totalling 0 lines
    revolved_surface_area_040 modifications totalling 0 lines
    revolved_surface_area_050 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_revolved_surface_area_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_revolved_surface_area_py.html new file mode 100644 index 000000000..085f57891 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_revolved_surface_area_py.html @@ -0,0 +1,85 @@ +queries/revolved_surface_area.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  revolved_surface_area.py
    +#  Tests:      queries     - Revolved surface area of 2D plot.
    +#
    +#  Defect ID:  VisIt00004666, '3260, '3261
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 30, 2004
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Apr 29 07:40:58 PDT 2004 
    +#    Slice defaults atts have changed, update accordingly. 
    +#
    +#    Hank Childs, Thu Jan 12 15:57:52 PST 2006
    +#    Added additional tests ('3260, '3261).
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +# Test for topological dimension 2.
    +TurnOnAllAnnotations()
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +Query("Revolved surface area")
    +text = GetQueryOutputString()
    +TestText("revolved_surface_area_01", text)
    +
    +
    +# Test with isosurface operator.
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isosurface")
    +iso_atts = IsosurfaceAttributes();
    +iso_atts.contourValue = (.25)
    +iso_atts.contourMethod = iso_atts.Value
    +SetOperatorOptions(iso_atts)
    +DrawPlots()
    +
    +Query("Revolved surface area")
    +text = GetQueryOutputString()
    +TestText("revolved_surface_area_02", text)
    +
    +
    +# Test for boundary plot.
    +DeleteAllPlots()
    +AddPlot("Boundary", "mat1")
    +DrawPlots()
    +
    +Query("Revolved surface area")
    +text = GetQueryOutputString()
    +TestText("revolved_surface_area_03", text)
    +
    +
    +# Test with 3D, isosurface, slice.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isosurface")
    +SetOperatorOptions(iso_atts)
    +AddOperator("Slice")
    +s = SliceAttributes()
    +s.originIntercept = 0.5
    +s.axisType = s.YAxis
    +SetOperatorOptions(s)
    +DrawPlots()
    +
    +Query("Revolved surface area")
    +text = GetQueryOutputString()
    +TestText("revolved_surface_area_04", text)
    +
    +RemoveLastOperator()
    +Query("Revolved surface area")
    +text = GetLastError()
    +TestText("revolved_surface_area_05", text)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_scf.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_scf.html new file mode 100644 index 000000000..a0266c1bb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_scf.html @@ -0,0 +1,96 @@ + +Results for queries/scf.py + +

    Results of VisIt Regression Test - queries/scf

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    scf_010 modifications totalling 0 lines
    scf_01_obj0 modifications totalling 0 lines
    scf_01_default_txt0 modifications totalling 0 lines
    scf_01_default_obj0 modifications totalling 0 lines
    scf_01_override_txt0 modifications totalling 0 lines
    scf_01_override_obj0 modifications totalling 0 lines
    scf_020 modifications totalling 0 lines
    scf_030.000.00
    scf_03_override0.000.00
    scf_050 modifications totalling 0 lines
    scf_05_obj0 modifications totalling 0 lines
    scf_05_override_txt0 modifications totalling 0 lines
    scf_05_override_obj0 modifications totalling 0 lines
    scf_070 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_scf_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_scf_py.html new file mode 100644 index 000000000..4cb4d72e4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_scf_py.html @@ -0,0 +1,150 @@ +queries/scf.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  scf.py
    +#  Tests:      queries     - spherical compactness factor
    +#
    +#  Defect ID:  VisIt00006385
    +#
    +#  Programmer: Hank Childs
    +#  Date:       July 14, 2005
    +#
    +#  Modifications:
    +#    Mark C. Miller, Fri Nov 17 22:03:34 PST 2006
    +#    Accounted for fact that threshold operator no longer has a default var
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state 
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Thu Jul 14 10:44:55 PDT 2011
    +#    Use named arguments. 
    +#
    +#    Cyrus Harrison, Wed Jul 16 15:58:54 PDT 2014
    +#    Added test cases to exercise centroid override
    +#
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#    individually to match current baseline results.
    +#
    +# ----------------------------------------------------------------------------
    +import json
    +
    +# Turn off all annotation
    +a = AnnotationAttributes()
    +TurnOffAllAnnotations(a)
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isovolume")
    +iso_atts = IsovolumeAttributes()
    +iso_atts.ubound = 0.7
    +SetOperatorOptions(iso_atts)
    +DrawPlots()
    +
    +Query("Spherical Compactness Factor")
    +text = GetQueryOutputString()
    +TestText("scf_01", text)
    +
    +res = GetQueryOutputObject()
    +TestText("scf_01_obj", json.dumps(res,indent=2))
    +
    +Query("Spherical Compactness Factor",centroid="default")
    +text = GetQueryOutputString()
    +TestText("scf_01_default_txt", text)
    +
    +res = GetQueryOutputObject()
    +TestText("scf_01_default_obj", json.dumps(res,indent=2))
    +
    +Query("Spherical Compactness Factor",centroid=[1.0,0.0,0.0])
    +text = GetQueryOutputString()
    +TestText("scf_01_override_txt", text)
    +
    +res = GetQueryOutputObject()
    +TestText("scf_01_override_obj", json.dumps(res,indent=2))
    +
    +
    +AddOperator("Revolve")
    +DrawPlots()
    +Query("Spherical Compactness Factor")
    +text = GetQueryOutputString()
    +TestText("scf_02", text)
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +AddPlot("Pseudocolor", "pressure")
    +DrawPlots()
    +
    +c = CurveAttributes()
    +c.curveColorSource = c.Custom
    +c.curveColor = (255, 0, 0, 255)
    +SetDefaultPlotOptions(c)
    +
    +QueryOverTime("Spherical Compactness Factor", stride=10)
    +
    +c = CurveAttributes()
    +c.curveColorSource = c.Custom
    +c.curveColor = (255, 0, 0, 255)
    +SetDefaultPlotOptions(c)
    +
    +SetActiveWindow(2)
    +SetAnnotationAttributes(a)
    +Test("scf_03")
    +
    +c.curveColor = (0, 255, 0, 255)
    +SetDefaultPlotOptions(c)
    +
    +SetActiveWindow(1)
    +QueryOverTime("Spherical Compactness Factor", stride=10,centroid=[1.0,0.0,0.0])
    +
    +SetActiveWindow(2)
    +SetAnnotationAttributes(a)
    +Test("scf_03_override")
    +
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +i = ThresholdAttributes()
    +i.lowerBounds = (0.0)
    +i.upperBounds = (0.5)
    +i.listedVarNames = ("d")
    +SetDefaultOperatorOptions(i)
    +AddOperator("Threshold")
    +DrawPlots()
    +# Don't test localized compactness factor until radii is sorted out.
    +#Query("Localized Compactness Factor")
    +#t = GetQueryOutputString()
    +#TestText("scf_04", t)
    +Query("Elliptical Compactness Factor")
    +t = GetQueryOutputString()
    +TestText("scf_05", t)
    +
    +res = GetQueryOutputObject()
    +TestText("scf_05_obj", json.dumps(res,indent=2))
    +
    +Query("Elliptical Compactness Factor",centroid=[1.0,0.0,0.0])
    +text = GetQueryOutputString()
    +TestText("scf_05_override_txt", text)
    +
    +res = GetQueryOutputObject()
    +TestText("scf_05_override_obj", json.dumps(res,indent=2))
    +
    +AddOperator("Revolve")
    +DrawPlots()
    +#Query("Localized Compactness Factor")
    +#t = GetQueryOutputString()
    +#TestText("scf_06", t)
    +Query("Elliptical Compactness Factor")
    +t = GetQueryOutputString()
    +TestText("scf_07", t)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_surface_area_over_time.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_surface_area_over_time.html new file mode 100644 index 000000000..b1d087b3f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_surface_area_over_time.html @@ -0,0 +1,66 @@ + +Results for queries/surface_area_over_time.py + +

    Results of VisIt Regression Test - queries/surface_area_over_time

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    SA_OverTime_00000.000.00
    SA_OverTime_00010.000.00
    SA_OverTime_00020.000.00
    SA_OverTime_00030.000.00
    SA_OverTime_00040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_surface_area_over_time_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_surface_area_over_time_py.html new file mode 100644 index 000000000..6705d6f90 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_surface_area_over_time_py.html @@ -0,0 +1,144 @@ +queries/surface_area_over_time.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  surface_area_over_time.py
    +#  Tests:      queries     - surface area over time
    +#
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Fri May 19 10:04:46 PDT 2017
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Tue Sep 22 13:24:42 PDT 2020
    +#    Use custom color for curves, as the color-cycling is non-deterministic
    +#    across runs.
    +#
    +# ----------------------------------------------------------------------------
    +
    +from visit_utils import *
    +
    +
    +def query_sa_stepwise(s, nts, qname):
    +    c_vals = []
    +    s_vals = []
    +    for ts in range(s, nts):
    +        TimeSliderSetState(ts)
    +        c_vals.append(query("Cycle"))
    +        s_vals.append(query(qname))
    +    f = open("_out_query_sa_stepwise.ult","w")
    +    f.write("# sa vs cycle\n")
    +    for i in range(len(c_vals)):
    +        f.write("%s %s\n" % (c_vals[i],s_vals[i]))
    +    f.close()
    +
    +def query_sa_q_over_time(s, nts, qname):
    +    TimeSliderSetState(0)
    +    QueryOverTime(qname, start_time=s, end_time=nts-1, stride=1)
    +
    +
    +def setup_PC_Iso_plot():
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "pressure")
    +    AddOperator("Isosurface")
    +    DrawPlots()
    +
    +def setup_boundary_plot():
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +    AddPlot("Boundary", "Material")
    +    DrawPlots()
    +
    +def setup_data_binning():
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    # We *Should* be using data binning like this, but there is 
    +    # a bug with query-over-time, so we add the operator separately.
    +    #AddPlot("Pseudocolor", "operators/DataBinning/2D/quadmesh")
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    AddOperator("DataBinning")
    +    DataBinningAtts = DataBinningAttributes()
    +    DataBinningAtts.numDimensions = DataBinningAtts.Two
    +    DataBinningAtts.dim1BinBasedOn = DataBinningAtts.X
    +    DataBinningAtts.dim2BinBasedOn = DataBinningAtts.Y
    +    DataBinningAtts.reductionOperator = DataBinningAtts.Maximum
    +    DataBinningAtts.varForReduction = "pressure"
    +    SetOperatorOptions(DataBinningAtts, 1)
    +
    +    DrawPlots()
    +
    +
    +def run_queries(s, numSteps, qname = "3D Surface area"):
    +    query_sa_stepwise(s, numSteps, qname)
    +    query_sa_q_over_time(s, numSteps, qname)
    +    SetActiveWindow(2)
    +    ca1 = CurveAttributes(1)
    +    ca1.curveColorSource = ca1.Custom
    +    ca1.curveColor=(255, 0, 0)
    +    SetPlotOptions(ca1)
    +    OpenDatabase("_out_query_sa_stepwise.ult")
    +    AddPlot("Curve","sa vs cycle")
    +    DrawPlots()
    +    ca2 = CurveAttributes(1)
    +    ca2.curveColorSource = ca2.Custom
    +    ca2.curveColor=(0, 255, 0)
    +    SetPlotOptions(ca2)
    +
    +
    +def open_db():
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +def clear_qot():
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    CloseDatabase("_out_query_sa_stepwise.ult")
    +    SetActiveWindow(1)
    +    TurnMaterialsOn()
    +
    +def main():
    +    open_db()
    +    setup_PC_Iso_plot()
    +    numSteps = TimeSliderGetNStates()
    +    run_queries(0, numSteps)
    +
    +    Test("SA_OverTime_0000")
    +
    +    clear_qot()
    +
    +    setup_boundary_plot()
    +    run_queries(0, numSteps)
    +    Test("SA_OverTime_0001")
    +
    +    clear_qot()
    +
    +    numSteps = 45
    +    m2 = "2 water"
    +    m1 = "1 barrier"
    +    TurnMaterialsOff(m2)
    +    run_queries(0, numSteps)
    +    Test("SA_OverTime_0002")
    +
    +    clear_qot()
    +
    +    TimeSliderSetState(1)
    +    TurnMaterialsOff(m1)
    +    run_queries(1, numSteps)
    +    Test("SA_OverTime_0003")
    +
    +
    +    clear_qot()
    +
    +    setup_data_binning()
    +    numSteps = TimeSliderGetNStates()
    +    run_queries(0, numSteps, "2D area")
    +    Test("SA_OverTime_0004")
    +
    +
    +
    +# Call the main function
    +TurnOnAllAnnotations()
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_variable_sum_volume.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_variable_sum_volume.html new file mode 100644 index 000000000..ee9929ba9 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_variable_sum_volume.html @@ -0,0 +1,68 @@ + +Results for queries/variable_sum_volume.py + +

    Results of VisIt Regression Test - queries/variable_sum_volume

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    mat_10 modifications totalling 0 lines
    mat_40 modifications totalling 0 lines
    mat_90 modifications totalling 0 lines
    mat_140 modifications totalling 0 lines
    mat_190 modifications totalling 0 lines
    mat_490 modifications totalling 0 lines
    mat_1490 modifications totalling 0 lines
    vws_mult_dim0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_variable_sum_volume_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_variable_sum_volume_py.html new file mode 100644 index 000000000..0c4ed51b8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_variable_sum_volume_py.html @@ -0,0 +1,69 @@ +queries/variable_sum_volume.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  volume.py
    +#  Tests:      queries     - volumes of various material selected regions
    +#                          - weighted volume of dataset with cells of different
    +#                               dimension.
    +#
    +#  Programmer: Eddie Rusu
    +#  Date:       January 14, 2020
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(data_path("silo_pdb_test_data/ucd3d.silo"))
    +AddPlot("Pseudocolor", "mesh_quality/ucdmesh3d/volume", 1, 1)
    +DrawPlots()
    +
    +SetQueryFloatFormat("%g")
    +# Material 1
    +TurnMaterialsOff(("4", "9"))
    +text = Query("Variable Sum")
    +TestText("mat_1", text)
    +
    +# Material 4
    +TurnMaterialsOff("1")
    +TurnMaterialsOn("4")
    +text = Query("Variable Sum")
    +TestText("mat_4", text)
    +
    +# Material 9
    +TurnMaterialsOff("4")
    +TurnMaterialsOn("9")
    +text = Query("Variable Sum")
    +TestText("mat_9", text)
    +
    +# Material 14
    +TurnMaterialsOff("9")
    +TurnMaterialsOn(("1", "4"))
    +text = Query("Variable Sum")
    +TestText("mat_14", text)
    +
    +# Material 19
    +TurnMaterialsOff("4")
    +TurnMaterialsOn("9")
    +text = Query("Variable Sum")
    +TestText("mat_19", text)
    +
    +# Material 49
    +TurnMaterialsOff("1")
    +TurnMaterialsOn("4")
    +text = Query("Variable Sum")
    +TestText("mat_49", text)
    +
    +# Material 149
    +TurnMaterialsOn()
    +text = Query("Variable Sum")
    +TestText("mat_149", text)
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("silo_pdb_test_data/ucd3d.silo"))
    +
    +# Weighted volume query on cells of different dimension
    +OpenDatabase(data_path("silo_pdb_test_data/multi_dim_cells.silo"))
    +AddPlot("Pseudocolor", "coordx", 1, 1)
    +DrawPlots()
    +text = Query("Weighted Variable Sum")
    +TestText("vws_mult_dim", text)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_watertight.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_watertight.html new file mode 100644 index 000000000..d1786ab00 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_watertight.html @@ -0,0 +1,44 @@ + +Results for queries/watertight.py + +

    Results of VisIt Regression Test - queries/watertight

    + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    watertight_010 modifications totalling 0 lines
    watertight_020 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_watertight_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_watertight_py.html new file mode 100644 index 000000000..df58bee7e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_watertight_py.html @@ -0,0 +1,40 @@ +queries/watertight.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  watertight.py
    +#  Tests:      queries     - watertight 
    +#
    +#  Defect ID:  VisIt00006632
    +#
    +#  Programmer: Hank Childs
    +#  Date:       September 23, 2005
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isosurface")
    +i = IsosurfaceAttributes()
    +i.contourMethod = i.Value
    +i.contourValue = 0.48
    +SetOperatorOptions(i)
    +DrawPlots()
    +
    +Query("Watertight")
    +text = GetQueryOutputString()
    +TestText("watertight_01", text)
    +
    +i.contourValue = 0.5
    +SetOperatorOptions(i)
    +Query("Watertight")
    +text = GetQueryOutputString()
    +TestText("watertight_02", text)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_xrayimage.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_xrayimage.html new file mode 100644 index 000000000..154b5c81b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_xrayimage.html @@ -0,0 +1,1894 @@ + +Results for queries/xrayimage.py + +

    Results of VisIt Regression Test - queries/xrayimage

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    xrayimage000.000.00
    xrayimage010 modifications totalling 0 lines
    xrayimage020.000.00
    xrayimage030.000.00
    xrayimage040 modifications totalling 0 lines
    xrayimage050.000.00
    xrayimage060 modifications totalling 0 lines
    xrayimage070.000.00
    xrayimage080 modifications totalling 0 lines
    xrayimage090.000.00
    xrayimage100 modifications totalling 0 lines
    xrayimage110.000.00
    xrayimage120 modifications totalling 0 lines
    xrayimage130.000.00
    xrayimage140 modifications totalling 0 lines
    xrayimage150.000.00
    xrayimage160 modifications totalling 0 lines
    xrayimage170.000.00
    xrayimage180 modifications totalling 0 lines
    xrayimage190.000.00
    xrayimage200 modifications totalling 0 lines
    xrayimage210.000.00
    xrayimage220 modifications totalling 0 lines
    xrayimage230.000.00
    xrayimage240 modifications totalling 0 lines
    xrayimage250.000.00
    xrayimage260 modifications totalling 0 lines
    xrayimage270.000.00
    xrayimage280.000.00
    xrayimage290 modifications totalling 0 lines
    xrayimage300.000.00
    xrayimage310 modifications totalling 0 lines
    xrayimage320 modifications totalling 0 lines
    Blueprint_HDF5_X_Ray_Output_image_topo_intensities_legacy0.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_intensities_legacy_slice00.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_intensities_legacy_slice10.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_intensities_legacy_slice20.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_path_length_legacy0.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_path_length_legacy_slice00.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_path_length_legacy_slice10.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_path_length_legacy_slice20.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_intensities_legacy0.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_intensities_legacy_slice00.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_intensities_legacy_slice10.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_intensities_legacy_slice20.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_path_length_legacy0.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_path_length_legacy_slice00.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_path_length_legacy_slice10.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_path_length_legacy_slice20.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_energy_reduced_topo_intensities_legacy0.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_energy_reduced_topo_path_length_legacy0.000.00
    Blueprint_HDF5_X_Ray_Output_spectra_topo_intensities_legacy9.620.11
    Blueprint_HDF5_X_Ray_Output_spectra_topo_path_length_legacy13.280.21
    xrayimage330 modifications totalling 0 lines
    Blueprint_HDF5_X_Ray_Output_image_topo_intensities_modern0.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_intensities_modern_slice00.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_intensities_modern_slice10.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_intensities_modern_slice20.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_path_length_modern0.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_path_length_modern_slice00.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_path_length_modern_slice10.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_path_length_modern_slice20.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_intensities_modern0.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_intensities_modern_slice00.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_intensities_modern_slice10.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_intensities_modern_slice20.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_path_length_modern0.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_path_length_modern_slice00.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_path_length_modern_slice10.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_path_length_modern_slice20.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_energy_reduced_topo_intensities_modern0.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_energy_reduced_topo_path_length_modern0.000.00
    Blueprint_HDF5_X_Ray_Output_spectra_topo_intensities_modern9.620.11
    Blueprint_HDF5_X_Ray_Output_spectra_topo_path_length_modern13.280.11
    Blueprint_HDF5_X_Ray_Output1_Time
     4.8 .eq. 4.8 (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_Cycle
     48 .eq. 48 (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_xray_view
     "" .eq. "" : True
    Blueprint_HDF5_X_Ray_Output1_xray_query
     "" .eq. "" : True
    Blueprint_HDF5_X_Ray_Output1_xray_data
     "" .eq. "" : True
    Blueprint_HDF5_X_Ray_Output1_IntensityUnits
     "intensity units" .eq. "intensity units" : True
    Blueprint_HDF5_X_Ray_Output1_PathLengthUnits
     "path length metadata" .eq. "path length metadata" : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents0
     [0.0, 0.0] .eq. [0.0, 0.0]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents1
     [0.05, 0.05] .eq. [0.05, 0.05]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents2
     [0.1, 0.1] .eq. [0.1, 0.1]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents3
     [15.0, 10.0] .eq. [15.0, 10.0]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_EnergyGroupBounds
     [0. 2. 6. 8.] .eq. [0, 2, 6, 8]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_spatial_units
     "False" .eq. "False" : True
    Blueprint_HDF5_X_Ray_Output1_data_XLabels
     "width" .eq. "width" : True
    Blueprint_HDF5_X_Ray_Output1_data_YLabels
     "height" .eq. "height" : True
    Blueprint_HDF5_X_Ray_Output1_data_ZLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_HDF5_X_Ray_Output1_data_ser_XLabels
     "width" .eq. "width" : True
    Blueprint_HDF5_X_Ray_Output1_data_ser_YLabels
     "height" .eq. "height" : True
    Blueprint_HDF5_X_Ray_Output1_data_spectra_XLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_HDF5_X_Ray_Output1_Time
     4.8 .eq. 4.8 (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_Cycle
     48 .eq. 48 (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_xray_view
     "" .eq. "" : True
    Blueprint_HDF5_X_Ray_Output1_xray_query
     "" .eq. "" : True
    Blueprint_HDF5_X_Ray_Output1_xray_data
     "" .eq. "" : True
    Blueprint_HDF5_X_Ray_Output1_IntensityUnits
     "no units provided" .eq. "no units provided" : True
    Blueprint_HDF5_X_Ray_Output1_PathLengthUnits
     "no info provided" .eq. "no info provided" : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents0
     [0.0, 0.0] .eq. [0.0, 0.0]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents1
     [0.05, 0.05] .eq. [0.05, 0.05]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents2
     [0.1, 0.1] .eq. [0.1, 0.1]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents3
     [15.0, 10.0] .eq. [15.0, 10.0]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_EnergyGroupInfo
     "Energy group bounds size mismatch: provided 3 bounds, but 2 in query results." .eq. "Energy group bounds size mismatch: provided 3 bounds, but 2 in query results." : True
    Blueprint_HDF5_X_Ray_Output1_data_EnergyGroupBounds
     [0.0, 1.0] .eq. [0, 1]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_spatial_units
     "False" .eq. "False" : True
    Blueprint_HDF5_X_Ray_Output1_data_XLabels
     "width" .eq. "width" : True
    Blueprint_HDF5_X_Ray_Output1_data_YLabels
     "height" .eq. "height" : True
    Blueprint_HDF5_X_Ray_Output1_data_ZLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_HDF5_X_Ray_Output1_data_ser_XLabels
     "width" .eq. "width" : True
    Blueprint_HDF5_X_Ray_Output1_data_ser_YLabels
     "height" .eq. "height" : True
    Blueprint_HDF5_X_Ray_Output1_data_spectra_XLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_HDF5_X_Ray_Output1_Time
     4.8 .eq. 4.8 (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_Cycle
     48 .eq. 48 (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_xray_view
     "" .eq. "" : True
    Blueprint_HDF5_X_Ray_Output1_xray_query
     "" .eq. "" : True
    Blueprint_HDF5_X_Ray_Output1_xray_data
     "" .eq. "" : True
    Blueprint_HDF5_X_Ray_Output1_IntensityUnits
     "no units provided" .eq. "no units provided" : True
    Blueprint_HDF5_X_Ray_Output1_PathLengthUnits
     "no info provided" .eq. "no info provided" : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents0
     [0.0, 0.0] .eq. [0.0, 0.0]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents1
     [0.05, 0.05] .eq. [0.05, 0.05]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents2
     [0.1, 0.1] .eq. [0.1, 0.1]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents3
     [15.0, 10.0] .eq. [15.0, 10.0]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_EnergyGroupInfo
     "Energy group bounds not provided." .eq. "Energy group bounds not provided." : True
    Blueprint_HDF5_X_Ray_Output1_data_EnergyGroupBounds
     [0.0, 1.0] .eq. [0, 1]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_spatial_units
     "False" .eq. "False" : True
    Blueprint_HDF5_X_Ray_Output1_data_XLabels
     "width" .eq. "width" : True
    Blueprint_HDF5_X_Ray_Output1_data_YLabels
     "height" .eq. "height" : True
    Blueprint_HDF5_X_Ray_Output1_data_ZLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_HDF5_X_Ray_Output1_data_ser_XLabels
     "width" .eq. "width" : True
    Blueprint_HDF5_X_Ray_Output1_data_ser_YLabels
     "height" .eq. "height" : True
    Blueprint_HDF5_X_Ray_Output1_data_spectra_XLabels
     "energy_group" .eq. "energy_group" : True
    xrayimage340 modifications totalling 0 lines
    Blueprint_JSON_X_Ray_Output_image_topo_intensities_legacy0.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_intensities_legacy_slice00.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_intensities_legacy_slice10.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_intensities_legacy_slice20.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_path_length_legacy0.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_path_length_legacy_slice00.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_path_length_legacy_slice10.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_path_length_legacy_slice20.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_intensities_legacy0.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_intensities_legacy_slice00.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_intensities_legacy_slice10.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_intensities_legacy_slice20.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_path_length_legacy0.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_path_length_legacy_slice00.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_path_length_legacy_slice10.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_path_length_legacy_slice20.000.00
    Blueprint_JSON_X_Ray_Output_spatial_energy_reduced_topo_intensities_legacy0.000.00
    Blueprint_JSON_X_Ray_Output_spatial_energy_reduced_topo_path_length_legacy0.000.00
    Blueprint_JSON_X_Ray_Output_spectra_topo_intensities_legacy9.620.05
    Blueprint_JSON_X_Ray_Output_spectra_topo_path_length_legacy13.280.11
    xrayimage350 modifications totalling 0 lines
    Blueprint_JSON_X_Ray_Output_image_topo_intensities_modern0.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_intensities_modern_slice00.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_intensities_modern_slice10.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_intensities_modern_slice20.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_path_length_modern0.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_path_length_modern_slice00.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_path_length_modern_slice10.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_path_length_modern_slice20.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_intensities_modern0.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_intensities_modern_slice00.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_intensities_modern_slice10.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_intensities_modern_slice20.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_path_length_modern0.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_path_length_modern_slice00.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_path_length_modern_slice10.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_path_length_modern_slice20.000.00
    Blueprint_JSON_X_Ray_Output_spatial_energy_reduced_topo_intensities_modern0.000.00
    Blueprint_JSON_X_Ray_Output_spatial_energy_reduced_topo_path_length_modern0.000.00
    Blueprint_JSON_X_Ray_Output_spectra_topo_intensities_modern9.620.08
    Blueprint_JSON_X_Ray_Output_spectra_topo_path_length_modern13.280.16
    Blueprint_JSON_X_Ray_Output1_Time
     4.8 .eq. 4.8 (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_Cycle
     48 .eq. 48 (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_xray_view
     "" .eq. "" : True
    Blueprint_JSON_X_Ray_Output1_xray_query
     "" .eq. "" : True
    Blueprint_JSON_X_Ray_Output1_xray_data
     "" .eq. "" : True
    Blueprint_JSON_X_Ray_Output1_IntensityUnits
     "intensity units" .eq. "intensity units" : True
    Blueprint_JSON_X_Ray_Output1_PathLengthUnits
     "path length metadata" .eq. "path length metadata" : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents0
     [0.0, 0.0] .eq. [0.0, 0.0]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents1
     [0.05, 0.05] .eq. [0.05, 0.05]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents2
     [0.1, 0.1] .eq. [0.1, 0.1]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents3
     [15.0, 10.0] .eq. [15.0, 10.0]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_EnergyGroupBounds
     [0. 2. 6. 8.] .eq. [0, 2, 6, 8]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_spatial_units
     "False" .eq. "False" : True
    Blueprint_JSON_X_Ray_Output1_data_XLabels
     "width" .eq. "width" : True
    Blueprint_JSON_X_Ray_Output1_data_YLabels
     "height" .eq. "height" : True
    Blueprint_JSON_X_Ray_Output1_data_ZLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_JSON_X_Ray_Output1_data_ser_XLabels
     "width" .eq. "width" : True
    Blueprint_JSON_X_Ray_Output1_data_ser_YLabels
     "height" .eq. "height" : True
    Blueprint_JSON_X_Ray_Output1_data_spectra_XLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_JSON_X_Ray_Output1_Time
     4.8 .eq. 4.8 (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_Cycle
     48 .eq. 48 (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_xray_view
     "" .eq. "" : True
    Blueprint_JSON_X_Ray_Output1_xray_query
     "" .eq. "" : True
    Blueprint_JSON_X_Ray_Output1_xray_data
     "" .eq. "" : True
    Blueprint_JSON_X_Ray_Output1_IntensityUnits
     "no units provided" .eq. "no units provided" : True
    Blueprint_JSON_X_Ray_Output1_PathLengthUnits
     "no info provided" .eq. "no info provided" : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents0
     [0.0, 0.0] .eq. [0.0, 0.0]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents1
     [0.05, 0.05] .eq. [0.05, 0.05]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents2
     [0.1, 0.1] .eq. [0.1, 0.1]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents3
     [15.0, 10.0] .eq. [15.0, 10.0]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_EnergyGroupInfo
     "Energy group bounds size mismatch: provided 3 bounds, but 2 in query results." .eq. "Energy group bounds size mismatch: provided 3 bounds, but 2 in query results." : True
    Blueprint_JSON_X_Ray_Output1_data_EnergyGroupBounds
     [0.0, 1.0] .eq. [0, 1]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_spatial_units
     "False" .eq. "False" : True
    Blueprint_JSON_X_Ray_Output1_data_XLabels
     "width" .eq. "width" : True
    Blueprint_JSON_X_Ray_Output1_data_YLabels
     "height" .eq. "height" : True
    Blueprint_JSON_X_Ray_Output1_data_ZLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_JSON_X_Ray_Output1_data_ser_XLabels
     "width" .eq. "width" : True
    Blueprint_JSON_X_Ray_Output1_data_ser_YLabels
     "height" .eq. "height" : True
    Blueprint_JSON_X_Ray_Output1_data_spectra_XLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_JSON_X_Ray_Output1_Time
     4.8 .eq. 4.8 (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_Cycle
     48 .eq. 48 (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_xray_view
     "" .eq. "" : True
    Blueprint_JSON_X_Ray_Output1_xray_query
     "" .eq. "" : True
    Blueprint_JSON_X_Ray_Output1_xray_data
     "" .eq. "" : True
    Blueprint_JSON_X_Ray_Output1_IntensityUnits
     "no units provided" .eq. "no units provided" : True
    Blueprint_JSON_X_Ray_Output1_PathLengthUnits
     "no info provided" .eq. "no info provided" : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents0
     [0.0, 0.0] .eq. [0.0, 0.0]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents1
     [0.05, 0.05] .eq. [0.05, 0.05]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents2
     [0.1, 0.1] .eq. [0.1, 0.1]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents3
     [15.0, 10.0] .eq. [15.0, 10.0]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_EnergyGroupInfo
     "Energy group bounds not provided." .eq. "Energy group bounds not provided." : True
    Blueprint_JSON_X_Ray_Output1_data_EnergyGroupBounds
     [0.0, 1.0] .eq. [0, 1]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_spatial_units
     "False" .eq. "False" : True
    Blueprint_JSON_X_Ray_Output1_data_XLabels
     "width" .eq. "width" : True
    Blueprint_JSON_X_Ray_Output1_data_YLabels
     "height" .eq. "height" : True
    Blueprint_JSON_X_Ray_Output1_data_ZLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_JSON_X_Ray_Output1_data_ser_XLabels
     "width" .eq. "width" : True
    Blueprint_JSON_X_Ray_Output1_data_ser_YLabels
     "height" .eq. "height" : True
    Blueprint_JSON_X_Ray_Output1_data_spectra_XLabels
     "energy_group" .eq. "energy_group" : True
    xrayimage360 modifications totalling 0 lines
    Blueprint_YAML_X_Ray_Output_image_topo_intensities_legacy0.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_intensities_legacy_slice00.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_intensities_legacy_slice10.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_intensities_legacy_slice20.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_path_length_legacy0.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_path_length_legacy_slice00.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_path_length_legacy_slice10.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_path_length_legacy_slice20.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_intensities_legacy0.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_intensities_legacy_slice00.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_intensities_legacy_slice10.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_intensities_legacy_slice20.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_path_length_legacy0.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_path_length_legacy_slice00.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_path_length_legacy_slice10.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_path_length_legacy_slice20.000.00
    Blueprint_YAML_X_Ray_Output_spatial_energy_reduced_topo_intensities_legacy0.000.00
    Blueprint_YAML_X_Ray_Output_spatial_energy_reduced_topo_path_length_legacy0.000.00
    Blueprint_YAML_X_Ray_Output_spectra_topo_intensities_legacy9.620.05
    Blueprint_YAML_X_Ray_Output_spectra_topo_path_length_legacy13.280.16
    xrayimage370 modifications totalling 0 lines
    Blueprint_YAML_X_Ray_Output_image_topo_intensities_modern0.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_intensities_modern_slice00.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_intensities_modern_slice10.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_intensities_modern_slice20.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_path_length_modern0.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_path_length_modern_slice00.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_path_length_modern_slice10.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_path_length_modern_slice20.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_intensities_modern0.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_intensities_modern_slice00.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_intensities_modern_slice10.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_intensities_modern_slice20.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_path_length_modern0.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_path_length_modern_slice00.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_path_length_modern_slice10.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_path_length_modern_slice20.000.00
    Blueprint_YAML_X_Ray_Output_spatial_energy_reduced_topo_intensities_modern0.000.00
    Blueprint_YAML_X_Ray_Output_spatial_energy_reduced_topo_path_length_modern0.000.00
    Blueprint_YAML_X_Ray_Output_spectra_topo_intensities_modern9.620.06
    Blueprint_YAML_X_Ray_Output_spectra_topo_path_length_modern13.280.13
    Blueprint_YAML_X_Ray_Output1_Time
     4.8 .eq. 4.8 (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_Cycle
     48 .eq. 48 (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_xray_view
     "" .eq. "" : True
    Blueprint_YAML_X_Ray_Output1_xray_query
     "" .eq. "" : True
    Blueprint_YAML_X_Ray_Output1_xray_data
     "" .eq. "" : True
    Blueprint_YAML_X_Ray_Output1_IntensityUnits
     "intensity units" .eq. "intensity units" : True
    Blueprint_YAML_X_Ray_Output1_PathLengthUnits
     "path length metadata" .eq. "path length metadata" : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents0
     [0.0, 0.0] .eq. [0.0, 0.0]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents1
     [0.05, 0.05] .eq. [0.05, 0.05]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents2
     [0.1, 0.1] .eq. [0.1, 0.1]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents3
     [15.0, 10.0] .eq. [15.0, 10.0]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_EnergyGroupBounds
     [0. 2. 6. 8.] .eq. [0, 2, 6, 8]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_spatial_units
     "False" .eq. "False" : True
    Blueprint_YAML_X_Ray_Output1_data_XLabels
     "width" .eq. "width" : True
    Blueprint_YAML_X_Ray_Output1_data_YLabels
     "height" .eq. "height" : True
    Blueprint_YAML_X_Ray_Output1_data_ZLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_YAML_X_Ray_Output1_data_ser_XLabels
     "width" .eq. "width" : True
    Blueprint_YAML_X_Ray_Output1_data_ser_YLabels
     "height" .eq. "height" : True
    Blueprint_YAML_X_Ray_Output1_data_spectra_XLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_YAML_X_Ray_Output1_Time
     4.8 .eq. 4.8 (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_Cycle
     48 .eq. 48 (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_xray_view
     "" .eq. "" : True
    Blueprint_YAML_X_Ray_Output1_xray_query
     "" .eq. "" : True
    Blueprint_YAML_X_Ray_Output1_xray_data
     "" .eq. "" : True
    Blueprint_YAML_X_Ray_Output1_IntensityUnits
     "no units provided" .eq. "no units provided" : True
    Blueprint_YAML_X_Ray_Output1_PathLengthUnits
     "no info provided" .eq. "no info provided" : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents0
     [0.0, 0.0] .eq. [0.0, 0.0]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents1
     [0.05, 0.05] .eq. [0.05, 0.05]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents2
     [0.1, 0.1] .eq. [0.1, 0.1]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents3
     [15.0, 10.0] .eq. [15.0, 10.0]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_EnergyGroupInfo
     "Energy group bounds size mismatch: provided 3 bounds, but 2 in query results." .eq. "Energy group bounds size mismatch: provided 3 bounds, but 2 in query results." : True
    Blueprint_YAML_X_Ray_Output1_data_EnergyGroupBounds
     [0.0, 1.0] .eq. [0, 1]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_spatial_units
     "False" .eq. "False" : True
    Blueprint_YAML_X_Ray_Output1_data_XLabels
     "width" .eq. "width" : True
    Blueprint_YAML_X_Ray_Output1_data_YLabels
     "height" .eq. "height" : True
    Blueprint_YAML_X_Ray_Output1_data_ZLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_YAML_X_Ray_Output1_data_ser_XLabels
     "width" .eq. "width" : True
    Blueprint_YAML_X_Ray_Output1_data_ser_YLabels
     "height" .eq. "height" : True
    Blueprint_YAML_X_Ray_Output1_data_spectra_XLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_YAML_X_Ray_Output1_Time
     4.8 .eq. 4.8 (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_Cycle
     48 .eq. 48 (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_xray_view
     "" .eq. "" : True
    Blueprint_YAML_X_Ray_Output1_xray_query
     "" .eq. "" : True
    Blueprint_YAML_X_Ray_Output1_xray_data
     "" .eq. "" : True
    Blueprint_YAML_X_Ray_Output1_IntensityUnits
     "no units provided" .eq. "no units provided" : True
    Blueprint_YAML_X_Ray_Output1_PathLengthUnits
     "no info provided" .eq. "no info provided" : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents0
     [0.0, 0.0] .eq. [0.0, 0.0]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents1
     [0.05, 0.05] .eq. [0.05, 0.05]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents2
     [0.1, 0.1] .eq. [0.1, 0.1]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents3
     [15.0, 10.0] .eq. [15.0, 10.0]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_EnergyGroupInfo
     "Energy group bounds not provided." .eq. "Energy group bounds not provided." : True
    Blueprint_YAML_X_Ray_Output1_data_EnergyGroupBounds
     [0.0, 1.0] .eq. [0, 1]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_spatial_units
     "False" .eq. "False" : True
    Blueprint_YAML_X_Ray_Output1_data_XLabels
     "width" .eq. "width" : True
    Blueprint_YAML_X_Ray_Output1_data_YLabels
     "height" .eq. "height" : True
    Blueprint_YAML_X_Ray_Output1_data_ZLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_YAML_X_Ray_Output1_data_ser_XLabels
     "width" .eq. "width" : True
    Blueprint_YAML_X_Ray_Output1_data_ser_YLabels
     "height" .eq. "height" : True
    Blueprint_YAML_X_Ray_Output1_data_spectra_XLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_Positive_Detector_width
     22.393226323783825 .eq. 22.3932263237838 (prec=5) : True
    Blueprint_Positive_Detector_height
     16.79491924231027 .eq. 16.7949192423103 (prec=5) : True
    Blueprint_HDF5_Imaging_Planes00.000.00
    Blueprint_HDF5_Imaging_Planes10.000.00
    NonSquare_Pixels_Ray_trace_setup_10.000.00
    NonSquare_Pixels_Ray_trace_setup_20.000.00
    NonSquare_Pixels_Ray_trace_setup_30.000.00
    NonSquare_Pixels_Ray_trace_setup_40.000.00
    NonSquare_Pixels_Ray_trace_setup_50.000.00
    NonSquare_Pixels_Ray_trace_setup_60.000.00
    NonSquare_Pixels_Ray_trace_setup_70.000.00
    NonSquare_Pixels_Ray_trace_setup_80.000.00
    NonSquare_Pixels_hi_res_images10.000.00
    NonSquare_Pixels_hi_res_images20.000.00
    NonSquare_Pixels_hi_res_images30.000.00
    NonSquare_Pixels_hi_res_images40.000.00
    NonSquare_Pixels_hi_res_images50.000.00
    NonSquare_Pixels_hi_res_images60.000.00
    NonSquare_Pixels_hi_res_images70.000.00
    NonSquare_Pixels_hi_res_images80.000.00
    NonSquare_Pixels_low_res_mesh_plots10.000.00
    NonSquare_Pixels_low_res_mesh_plots20.000.00
    NonSquare_Pixels_low_res_mesh_plots30.000.00
    NonSquare_Pixels_low_res_mesh_plots40.000.00
    NonSquare_Pixels_low_res_mesh_plots50.000.00
    NonSquare_Pixels_low_res_mesh_plots60.000.00
    NonSquare_Pixels_low_res_mesh_plots70.000.00
    NonSquare_Pixels_low_res_mesh_plots80.000.00
    xrayimage38
     "None" .eq. "None" : True
    xrayimage39
     "None" .eq. "None" : True
    Test_filenames_for_jpeg_outputs0 modifications totalling 0 lines
    Test_filenames_for_png_outputs0 modifications totalling 0 lines
    Test_filenames_for_tif_outputs0 modifications totalling 0 lines
    Test_filenames_for_bof_outputs0 modifications totalling 0 lines
    Test_filenames_for_bov_outputs0 modifications totalling 0 lines
    Test_filenames_for_json_outputs0 modifications totalling 0 lines
    Test_filenames_for_hdf5_outputs0 modifications totalling 0 lines
    Test_filenames_for_yaml_outputs0 modifications totalling 0 lines
    Test_filenames_for_family0_outputs0 modifications totalling 0 lines
    Test_filenames_for_family1_outputs0 modifications totalling 0 lines
    detect and warn numpy array as query param
     "True" .eq. "True" : True
    numpy array converted to list works as query param
     "True" .eq. "True" : True
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_xrayimage_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_xrayimage_py.html new file mode 100644 index 000000000..a5368dfab --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/queries_xrayimage_py.html @@ -0,0 +1,1341 @@ +queries/xrayimage.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  xrayimage.py
    +#  Tests:      queries     - xray imagel
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       July 13, 2010
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Jul 14 10:44:55 PDT 2011
    +#    Change most of code to use python dictionary to pass query parameters.
    +#    First call to 'Query' still tests old-style argument passing.
    +#    Second call to 'Query' creates a Python dictionary from scratch and
    +#    uses that.  Prior to third call to Query, retrieve default dictionary via
    +#    GetQueryParameters.  All subsequent calls to Query modify that dictionary 
    +#    object as necessary and pass it.
    +#
    +#    Kathleen Biagas, Wed Oct 17 14:25:05 PDT 2012
    +#    Show usage of new 'up_vector' parameter.
    +# 
    +#    Justin Privitera, Tue Jun 14 10:02:21 PDT 2022
    +#    Change tests to reflect new ability to send output directory to query.
    +# 
    +#    Justin Privitera, Wed Jun 15 16:43:34 PDT 2022
    +#    Added tests for new blueprint output.
    +# 
    +#    Justin Privitera, Wed Jul 20 13:54:06 PDT 2022
    +#    Added query output msg tests and tests for query errors.
    +# 
    +#    Justin Privitera, Thu Sep  8 16:29:06 PDT 2022
    +#    Added new tests for blueprint output metadata.
    +# 
    +#    Justin Privitera, Tue Sep 27 10:52:59 PDT 2022
    +#    Changed names of most output files to reflect new naming conventions.
    +#    Added tests for filenames, all output types, and result messages.
    +# 
    +#    Justin Privitera, Fri Sep 30 15:54:40 PDT 2022
    +#    Changed location of temp output files.
    +#    os.remove is gone.
    +#    tmp/baddir is gone, replaced.
    +#    These changes were made so the tests no longer crash on windows.
    +# 
    +#    Justin Privitera, Tue Nov 15 14:54:35 PST 2022
    +#    Added new tests for additional blueprint output metadata as well as
    +#    imaging plane topologies.
    +# 
    +#    Justin Privitera, Tue Nov 22 14:56:04 PST 2022
    +#    Updated numbering on later tests.
    +#    Reorganized blueprint tests so they use a function. That function also
    +#    uses new and old query calls, doubling the number of blueprint tests.
    +#    It also tests energy group bin output for hdf5.
    +# 
    +#    Justin Privitera, Mon Nov 28 15:38:25 PST 2022
    +#    Renamed energy group bins to energy group bounds.
    +# 
    +#    Justin Privitera, Wed Nov 30 10:41:17 PST 2022
    +#    Added tests for always positive detector height and width in blueprint
    +#    metadata.
    +# 
    +#    Justin Privitera, Wed Nov 30 17:43:48 PST 2022
    +#    Added tests for piping the units through the query.
    +# 
    +#    Justin Privitera, Thu Dec  1 15:29:48 PST 2022
    +#    Tests for new location of units in blueprint output.
    +# 
    +#    Justin Privitera, Wed Dec  7 16:16:16 PST 2022
    +#    Added tests for the blueprint ray output.
    +# 
    +#    Justin Privitera, Mon Dec 12 13:28:55 PST 2022
    +#    Reworked some of the blueprint output tests to reflect changes in 
    +#    output metadata.
    +#    Added new tests for path length and spatial extent images.
    +# 
    +#    Justin Privitera, Tue Feb 14 17:02:43 PST 2023
    +#    Change all metadata to use pot_hole_case instead of camelCase.
    +#    Add test for image_topo_order_of_domain_variables.
    +#
    +#    Justin Privitera, Wed Oct 12 11:38:11 PDT 2022
    +#    Changed output type for many tests since bmp output type is removed.
    +# 
    +#    Justin Privitera, Fri Mar 10 19:06:49 PST 2023
    +#    Added tests for new spatial energy reduced topo and fields.
    +# 
    +#    Justin Privitera, Wed Mar 15 17:51:13 PDT 2023
    +#    Added tests for new spectra topo and fields.
    +# 
    +#    Justin Privitera, Wed Mar 22 16:09:52 PDT 2023
    +#     - Added logic for setting up and tearing down blueprint output type 
    +#    tests.
    +#     - Added new query choices for blueprint output that can be passed down 
    +#    into the various blueprint tests.
    +#     - Created a new class for storing these query options and passing them 
    +#    around.
    +#     - Added a new function for making slices of plots to test specific 
    +#    energy group bins.
    +#     - More consistent query args for blueprint tests
    +#     - Added slice tests for specific energy group bins.
    +# 
    +#    Justin Privitera, Wed Apr 26 14:07:01 PDT 2023
    +#    The new conduit we are using for VisIt (0.8.7) can read in simple yaml
    +#    and json (w/o bp index?) (bug was fixed) so I am updating the x ray query
    +#    tests to take advantage of this and add tests back in for yaml and json
    +#    cases.
    +#
    +#    Justin Privitera, Fri Jun 16 17:17:14 PDT 2023
    +#    Added tests for the new view width override and non square pixels 
    +#    settings.
    +# 
    +#    Justin Privitera, Fri Jul 14 17:33:07 PDT 2023
    +#    Updated tests to reflect the new reality that the complete camera spec
    +#    is now the default.
    +# 
    +#    Justin Privitera, Tue Aug 22 12:30:01 PDT 2023
    +#    Sort filename list produced by os.listdir to prevent test suite failures.
    +# 
    +#    Justin Privitera, Mon Oct 30 14:45:55 PDT 2023
    +#    Use conduit node diff to compare query results to baselines.
    +# 
    +#    Justin Privitera, Tue Oct 31 13:20:23 PDT 2023
    +#    All output folders are created at the top of the file now.
    +#    Several visit expressions have been cleaned up or removed entirely.
    +#    Code cleanup for readability.
    +#    Lowered pixel resolution for query results where we are not testing the
    +#    images.
    +#    Use the python dictionary returned by the query to tell if the query was
    +#    successful or not.
    +# 
    +#    Justin Privitera, Wed Nov 29 15:10:59 PST 2023
    +#    Use numpy.int64 to cast to wide types for diff.
    +# ----------------------------------------------------------------------------
    +
    +import os
    +import conduit
    +import numpy
    +
    +if not os.path.isdir(out_path("current","queries")):
    +    os.mkdir(out_path("current","queries"))
    +out_base = out_path("current","queries","xrayimage")
    +if not os.path.isdir(out_base):
    +    os.mkdir(out_base)
    +
    +outdir_set = pjoin(TestEnv.params["run_dir"], "testdir")
    +if not os.path.isdir(outdir_set):
    +    os.mkdir(outdir_set)
    +
    +conduit_dir_hdf5 = pjoin(outdir_set, "hdf5")
    +if not os.path.isdir(conduit_dir_hdf5):
    +    os.mkdir(conduit_dir_hdf5)
    +conduit_dir_json = pjoin(outdir_set, "json")
    +if not os.path.isdir(conduit_dir_json):
    +    os.mkdir(conduit_dir_json)
    +conduit_dir_yaml = pjoin(outdir_set, "yaml")
    +if not os.path.isdir(conduit_dir_yaml):
    +    os.mkdir(conduit_dir_yaml)
    +conduit_dir_imaging_planes0 = pjoin(outdir_set, "imaging_planes0")
    +if not os.path.isdir(conduit_dir_imaging_planes0):
    +    os.mkdir(conduit_dir_imaging_planes0)
    +conduit_dir_imaging_planes1 = pjoin(outdir_set, "imaging_planes1")
    +if not os.path.isdir(conduit_dir_imaging_planes1):
    +    os.mkdir(conduit_dir_imaging_planes1)
    +conduit_dir_detector_dims = pjoin(outdir_set, "detector_dims")
    +if not os.path.isdir(conduit_dir_detector_dims):
    +    os.mkdir(conduit_dir_detector_dims)
    +conduit_dir_nonsquare_pixels = pjoin(outdir_set, "nonsquare_pix")
    +if not os.path.isdir(conduit_dir_nonsquare_pixels):
    +    os.mkdir(conduit_dir_nonsquare_pixels)
    +
    +dir_dne = pjoin(outdir_set, "doesnotexist")
    +if os.path.isdir(dir_dne):
    +    os.rmdir(dir_dne)
    +
    +# os.chmod does not work on windows
    +if not platform.system() == "Windows":
    +    outdir_bad = pjoin(outdir_set, "baddir")
    +    if not os.path.isdir(outdir_bad):
    +        os.mkdir(outdir_bad)
    +    os.chmod(outdir_bad, 0o444)
    +
    +output_types = ["jpeg", "png", "tif", "bof", "bov", "json", "hdf5", "yaml"]
    +for i in range(0, len(output_types)):
    +    outdir_set_otype = outdir_set + "_" + output_types[i]
    +    if not os.path.isdir(outdir_set_otype):
    +        os.mkdir(outdir_set_otype)
    +
    +family_options = [0, 1]
    +for i in range(0, len(family_options)):
    +    outdir_set_family = outdir_set + "_family_" + str(family_options[i])
    +    if not os.path.isdir(outdir_set_family):
    +        os.mkdir(outdir_set_family)
    +
    +#
    +# Test a single block structured grid with scalars.
    +#
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +# old style argument passing
    +Query("XRay Image", 1, ".", 1, 0.0, 2.5, 10.0, 0, 0, 10., 10., 300, 300, ("d", "p"))
    +
    +os.rename("output.png", out_path(out_base,"xrayimage00.png"))
    +Test("xrayimage00", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage01", s)
    +
    +#
    +# Test a multi block structured grid with an array variable.
    +#
    +DefineArrayExpression("da", "array_compose(d,d)")
    +DefineArrayExpression("pa", "array_compose(p,p)")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("multi_curv3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +# create our own dictionary
    +params = dict(output_type=1,
    +              output_dir=".",
    +              divide_emis_by_absorb=1,
    +              origin=(0.0, 2.5, 10.0),
    +              up_vector=(0, 1, 0),
    +              theta=0,
    +              phi=0,
    +              width = 10.,
    +              height=10.,
    +              image_size=(300, 300),
    +              vars=("da", "pa"))
    +Query("XRay Image", params)
    +
    +os.rename("output.00.png", out_path(out_base,"xrayimage02.png"))
    +os.rename("output.01.png", out_path(out_base,"xrayimage03.png"))
    +
    +Test("xrayimage02", 0, 1)
    +Test("xrayimage03", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage04", s)
    +
    +#
    +# Test a 2d structured grid with scalars.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +params = dict()
    +params['image_size'] = (300, 300)
    +params['divide_emis_by_absorb'] = 1
    +params['width'] = 10.
    +params['height'] = 10.
    +params['vars'] = ("d", "p")
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage05.png"))
    +Test("xrayimage05", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage06", s)
    +
    +params['theta'] = 90
    +params['phi'] =  0
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage07.png"))
    +Test("xrayimage07", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage08", s)
    +
    +#
    +# Test an unstructured grid with scalars.
    +#
    +DefineScalarExpression("u1", 'recenter(((u+10.)*0.01), "zonal")')
    +DefineScalarExpression("v1", 'recenter(((v+10.)*0.01*matvf(mat1,1)), "zonal")')
    +DefineScalarExpression("v2", 'recenter(((v+10.)*0.01*matvf(mat1,2)), "zonal")')
    +DefineScalarExpression("v3", 'recenter(((v+10.)*0.01*matvf(mat1,3)), "zonal")')
    +DefineScalarExpression("v4", 'recenter(((v+10.)*0.01*matvf(mat1,4)), "zonal")')
    +DefineScalarExpression("w1", 'recenter(((w+10.)*0.01), "zonal")')
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +# Do tets.
    +params['theta'] = 0
    +params['phi'] = 0
    +params['width'] = 1.
    +params['height'] = 1.
    +params['vars'] = ("w1", "v1")
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage09.png"))
    +Test("xrayimage09", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage10", s)
    +
    +params['theta'] = 90
    +params['width'] = 4.
    +params['height'] = 4.
    +
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage11.png"))
    +Test("xrayimage11", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage12", s)
    +
    +# Do pyramids.
    +params['theta'] = 0
    +params['vars'] = ("w1", "v2")
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage13.png"))
    +Test("xrayimage13", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage14", s)
    +
    +params['theta'] = 90
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage15.png"))
    +Test("xrayimage15", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage16", s)
    +
    +# Do wedges.
    +params['theta'] = 0
    +params['width'] = 8.
    +params['height'] = 8.
    +params['vars'] = ("w1", "v3")
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage17.png"))
    +Test("xrayimage17", 0, 1)
    +
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage18", s)
    +
    +params['theta'] = 90
    +params['width'] = 20.
    +params['height'] = 20.
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage19.png"))
    +Test("xrayimage19", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage20", s)
    +
    +# Do hexes.
    +params['theta'] = 0
    +params['vars'] = ("w1", "v4")
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage21.png"))
    +Test("xrayimage21", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage22", s)
    +
    +params['theta'] = 90
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage23.png"))
    +Test("xrayimage23", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage24", s)
    +
    +#
    +# Test with perspective.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("multi_curv3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +params = dict(output_type="png",
    +              output_dir=".",
    +              divide_emis_by_absorb=1,
    +              focus=(0.0, 2.5, 15.0),
    +              view_up=(0., 1., 0.),
    +              normal=(0., 0., 1.),
    +              view_angle=30.,
    +              parallel_scale = 16.0078,
    +              near_plane = -32.0156,
    +              far_plane = 32.0156,
    +              image_pan=(0., 0.),
    +              image_zoom = 2.4,
    +              perspective = 1,
    +              image_size=(300, 300),
    +              vars=("d", "p"))
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage25.png"))
    +
    +Test("xrayimage25", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage26", s)
    +
    +#
    +# Test with background intensities.
    +#
    +DefineArrayExpression("wa", "array_compose(w1,w1)")
    +DefineArrayExpression("va", "array_compose(v4,v4)")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +params = dict(output_type="png",
    +              output_dir=".",
    +              divide_emis_by_absorb=1,
    +              theta=90.,
    +              phi=0.,
    +              width=20.,
    +              height=20.,
    +              image_size=(300, 300),
    +              vars=("wa", "va"),
    +              background_intensities=(0.05, 0.1))
    +Query("XRay Image", params)
    +
    +os.rename("output.00.png", out_path(out_base,"xrayimage27.png"))
    +os.rename("output.01.png", out_path(out_base,"xrayimage28.png"))
    +
    +Test("xrayimage27", 0, 1)
    +Test("xrayimage28", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage29", s)
    +
    +DeleteAllPlots()
    +
    +# 
    +# test setting output directory
    +# 
    +
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +# old style argument passing
    +Query("XRay Image", "png", outdir_set, 1, 0.0, 2.5, 10.0, 0, 0, 10., 10., 300, 300, ("d", "p"))
    +os.rename(outdir_set + "/output.png", out_path(out_base, "xrayimage30.png"))
    +Test("xrayimage30", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage31", s)
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("curv3d.silo"))
    +
    +#
    +# test blueprint output
    +#
    +
    +def setup_bp_test():
    +    OpenDatabase(silo_data_path("curv3d.silo"))
    +    DefineScalarExpression("d1", 'd')
    +    DefineScalarExpression("p1", 'p')
    +    DefineScalarExpression("d2", 'd * 6')
    +    DefineScalarExpression("p2", 'p * 6')
    +    DefineScalarExpression("d3", 'd * 3')
    +    DefineScalarExpression("p3", 'p * 3')
    +    DefineArrayExpression("darr", "array_compose(d1,d2,d3)")
    +    DefineArrayExpression("parr", "array_compose(p1,p2,d3)")
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +def teardown_bp_test(lite = False):
    +    DeleteAllPlots()
    +    if not lite:
    +        DeleteExpression("d1")
    +        DeleteExpression("p1")
    +        DeleteExpression("d2")
    +        DeleteExpression("p2")
    +        DeleteExpression("d3")
    +        DeleteExpression("p3")
    +        DeleteExpression("darr")
    +        DeleteExpression("parr")
    +    CloseDatabase(silo_data_path("curv3d.silo"))
    +
    +# In conduit python, int types are assumed to be int64
    +# The xray query saves bools out as int32s
    +# So the diff fails unless we take the int32 type and 
    +# cast it to int64.
    +def cast_to_wide_int_type_conduit(node, leafname):
    +    val = numpy.int64(node[leafname])
    +    node.remove_child(leafname)
    +    node[leafname] = val
    +
    +def test_bp_state_xray_view(testname, xray_view):
    +    yaml_text = """normal:
    +  x: 0.0
    +  y: 0.0
    +  z: 1.0
    +focus:
    +  x: 0.0
    +  y: 2.5
    +  z: 10.0
    +view_up:
    +  x: 0.0
    +  y: 1.0
    +  z: 0.0
    +view_angle: 30.0
    +parallel_scale: 5.0
    +view_width: 7.5
    +non_square_pixels: \"yes\"
    +near_plane: -100.0
    +far_plane: 100.0
    +image_pan:
    +  x: 0.0
    +  y: 0.0
    +image_zoom: 1.0
    +perspective: 0
    +perspective_str: \"parallel\""""
    +
    +    xray_view_base = conduit.Node()
    +    xray_view_base.parse(yaml_text, "yaml")
    +
    +    # We must make changes so that the diff will pass:
    +    cast_to_wide_int_type_conduit(xray_view, "perspective")
    +
    +    info = conduit.Node()
    +    diffval = xray_view.diff(xray_view_base, info)
    +    diff_str = info.to_yaml() if diffval else ""
    +    TestValueEQ(testname + "_xray_view", diff_str, "")
    +
    +UNITS_OFF = 0
    +UNITS_ON = 1
    +
    +def test_bp_state_xray_query(testname, xray_query, num_bins, abs_name, emis_name, units):
    +    yaml_text = f"""divide_emis_by_absorb: 1
    +divide_emis_by_absorb_str: \"yes\"
    +num_x_pixels: 300
    +num_y_pixels: 200
    +num_bins: {num_bins}
    +abs_var_name: {abs_name}
    +emis_var_name: {emis_name}
    +abs_units: {"abs units" if units == UNITS_ON else "no units provided"}
    +emis_units: {"emis units" if units == UNITS_ON else "no units provided"}"""
    +
    +    xray_query_base = conduit.Node()
    +    xray_query_base.parse(yaml_text, "yaml")
    +
    +    # We must make changes so that the diff will pass:
    +    cast_to_wide_int_type_conduit(xray_query, "divide_emis_by_absorb")
    +    cast_to_wide_int_type_conduit(xray_query, "num_x_pixels")
    +    cast_to_wide_int_type_conduit(xray_query, "num_y_pixels")
    +    cast_to_wide_int_type_conduit(xray_query, "num_bins")
    +
    +    info = conduit.Node()
    +    diffval = xray_query.diff(xray_query_base, info)
    +    diff_str = info.to_yaml() if diffval else ""
    +    TestValueEQ(testname + "_xray_query", diff_str, "");
    +
    +def test_bp_state_xray_data(testname, xray_data, int_max, pl_max):
    +    yaml_text = f"""detector_width: 15.0
    +detector_height: 10.0
    +intensity_max: {int_max}
    +intensity_min: 0.0
    +path_length_max: {pl_max}
    +path_length_min: 0.0
    +image_topo_order_of_domain_variables: \"xyz\""""
    +
    +    xray_data_base = conduit.Node()
    +    xray_data_base.parse(yaml_text, "yaml")
    +
    +    info = conduit.Node()
    +    diffval = xray_data.diff(xray_data_base, info)
    +    diff_str = info.to_yaml() if diffval else ""
    +    TestValueEQ(testname + "_xray_data", diff_str, "");
    +
    +NO_ENERGY_GROUP_BOUNDS = 0
    +ENERGY_GROUP_BOUNDS_MISMATCH = 1
    +ENERGY_GROUP_BOUNDS = 2
    +
    +class query_result_options:
    +    def __init__(self, num_bins, abs_name, emis_name, bin_state, units, int_max, pl_max):
    +        self.num_bins = num_bins
    +        self.abs_name = abs_name
    +        self.emis_name = emis_name
    +        self.bin_state = bin_state
    +        self.units = units
    +        self.int_max = int_max
    +        self.pl_max = pl_max
    +
    +def test_bp_data(testname, conduit_db, qro):
    +    xrayout = conduit.Node()
    +    conduit.relay.io.blueprint.load_mesh(xrayout, conduit_db)
    +
    +    # test metadata
    +    xray_state = xrayout["domain_000000/state"]
    +
    +    time = xray_state["time"]
    +    TestValueEQ(testname + "_Time", time, 4.8)
    +
    +    cycle = xray_state["cycle"]
    +    TestValueEQ(testname + "_Cycle", cycle, 48)
    +
    +    test_bp_state_xray_view(testname, xray_state["xray_view"])
    +    test_bp_state_xray_query(testname, xray_state["xray_query"],
    +        qro.num_bins, qro.abs_name, qro.emis_name, qro.units)
    +    test_bp_state_xray_data(testname, xray_state["xray_data"], qro.int_max, qro.pl_max)
    +
    +    # test data embedded within the fields
    +
    +    xray_fields = xrayout["domain_000000/fields"]
    +
    +    intensityUnits = xray_fields["intensities/units"]
    +    pathLengthUnits = xray_fields["path_length/units"]
    +
    +    if (qro.units == UNITS_ON):
    +        TestValueEQ(testname + "_IntensityUnits", intensityUnits, "intensity units")
    +        TestValueEQ(testname + "_PathLengthUnits", pathLengthUnits, "path length metadata")
    +    else:
    +        TestValueEQ(testname + "_IntensityUnits", intensityUnits, "no units provided")
    +        TestValueEQ(testname + "_PathLengthUnits", pathLengthUnits, "no info provided")
    +
    +    # test data embedded within the coordsets
    +
    +    xray_coordsets = xrayout["domain_000000/coordsets"]
    +
    +    spatial_coords_x = xray_coordsets["spatial_coords/values/x"]
    +    spatial_coords_y = xray_coordsets["spatial_coords/values/y"]
    +    energy_group_bounds = xray_coordsets["spatial_coords/values/z"]
    +    energy_group_info = xray_coordsets["spatial_coords/info"]
    +    TestValueEQ(testname + "_data_SpatialExtents0", [spatial_coords_x[0], spatial_coords_y[0]], [0.0, 0.0])
    +    TestValueEQ(testname + "_data_SpatialExtents1", [spatial_coords_x[1], spatial_coords_y[1]], [0.05, 0.05])
    +    TestValueEQ(testname + "_data_SpatialExtents2", [spatial_coords_x[2], spatial_coords_y[2]], [0.1, 0.1])
    +    TestValueEQ(testname + "_data_SpatialExtents3", [spatial_coords_x[-1], spatial_coords_y[-1]], [15.0, 10.0])
    +
    +    if (qro.bin_state == NO_ENERGY_GROUP_BOUNDS):
    +        TestValueEQ(testname + "_data_EnergyGroupInfo", energy_group_info, "Energy group bounds not provided.")
    +        TestValueEQ(testname + "_data_EnergyGroupBounds", [energy_group_bounds[0], energy_group_bounds[1]], [0, 1])
    +    elif (qro.bin_state == ENERGY_GROUP_BOUNDS_MISMATCH):
    +        baseline_string = "Energy group bounds size mismatch: provided 3 bounds, but 2 in query results."
    +        TestValueEQ(testname + "_data_EnergyGroupInfo", energy_group_info, baseline_string)
    +        TestValueEQ(testname + "_data_EnergyGroupBounds", [energy_group_bounds[0], energy_group_bounds[1]], [0, 1])
    +    elif (qro.bin_state == ENERGY_GROUP_BOUNDS):
    +        TestValueEQ(testname + "_data_EnergyGroupBounds", energy_group_bounds, [0, 2, 6, 8])
    +
    +    yaml_text = f"""x: {"cm" if qro.units == UNITS_ON else "no units provided"}
    +y: {"cm" if qro.units == UNITS_ON else "no units provided"}
    +z: {"kev" if qro.units == UNITS_ON else "no units provided"}"""
    +
    +    spatial_units_base = conduit.Node()
    +    spatial_units_base.parse(yaml_text, "yaml")
    +    spatial_units = xray_coordsets["spatial_coords/units"]
    +
    +    info = conduit.Node()
    +    diffval = spatial_units.diff(spatial_units_base, info)
    +    TestValueEQ(testname + "_spatial_units", diffval, False);
    +    if diffval:
    +        print(info.to_yaml())
    +
    +    xlabel = xray_coordsets["spatial_coords/labels/x"];
    +    ylabel = xray_coordsets["spatial_coords/labels/y"];
    +    zlabel = xray_coordsets["spatial_coords/labels/z"];
    +    TestValueEQ(testname + "_data_XLabels", xlabel, "width")
    +    TestValueEQ(testname + "_data_YLabels", ylabel, "height")
    +    TestValueEQ(testname + "_data_ZLabels", zlabel, "energy_group")
    +
    +    xlabel = xray_coordsets["spatial_energy_reduced_coords/labels/x"];
    +    ylabel = xray_coordsets["spatial_energy_reduced_coords/labels/y"];
    +    TestValueEQ(testname + "_data_ser_XLabels", xlabel, "width")
    +    TestValueEQ(testname + "_data_ser_YLabels", ylabel, "height")
    +
    +    xlabel = xray_coordsets["spectra_coords/labels/x"];
    +    TestValueEQ(testname + "_data_spectra_XLabels", xlabel, "energy_group")
    +
    +def calc_midpoints(arr):
    +    midpts = []
    +    for i in range(0, len(arr) - 1):
    +        midpts.append((arr[i] + arr[i + 1]) / 2)
    +    return midpts
    +
    +def z_slice(zval, mesh_name):
    +    AddOperator("Slice", 1)
    +    SetActivePlots(0)
    +    SliceAtts = SliceAttributes()
    +    SliceAtts.originType = SliceAtts.Point  # Point, Intercept, Percent, Zone, Node
    +    SliceAtts.originPoint = (0, 0, zval)
    +    SliceAtts.axisType = SliceAtts.ZAxis  # XAxis, YAxis, ZAxis, Arbitrary, ThetaPhi
    +    SliceAtts.project2d = 1
    +    SliceAtts.interactive = 1
    +    SliceAtts.meshName = mesh_name
    +    SetOperatorOptions(SliceAtts, 0, 1)
    +
    +def blueprint_test(output_type, outdir, testtextnumber, testname):
    +    for i in range(0, 2):
    +        setup_bp_test()
    +
    +        # common place for args
    +        divide_emis_by_absorb = 1
    +        origin = (0.0, 2.5, 10.0)
    +        theta = 0
    +        phi = 0
    +        width = 15
    +        height = 10
    +        image_size = (300, 200)
    +
    +        energy_group_bounds      = [0, 2, 6, 8]
    +        fake_energy_group_bounds = [0, 1, 2, 3]
    +
    +        energy_group_midpts      = calc_midpoints(energy_group_bounds)
    +        fake_energy_group_midpts = calc_midpoints(fake_energy_group_bounds)
    +
    +        calltype = "legacy" if i == 0 else "modern"
    +
    +        # run query
    +        if (i == 0):
    +            # test legacy call
    +            Query("XRay Image",
    +                  output_type,
    +                  outdir,
    +                  divide_emis_by_absorb,
    +                  origin[0],
    +                  origin[1],
    +                  origin[2],
    +                  theta,
    +                  phi,
    +                  width,
    +                  height,
    +                  image_size[0],
    +                  image_size[1],
    +                  ("darr", "parr"),
    +                  energy_group_bounds)
    +        elif (i == 1):
    +            # test modern call
    +            params = dict()
    +            params["output_type"] = output_type
    +            params["output_dir"] = outdir
    +            params["divide_emis_by_absorb"] = divide_emis_by_absorb
    +            params["origin"] = origin
    +            params["theta"] = theta
    +            params["phi"] = phi
    +            params["width"] = width
    +            params["height"] = height
    +            params["image_size"] = image_size
    +            params["vars"] = ("darr", "parr")
    +            params["energy_group_bounds"] = energy_group_bounds
    +            params["spatial_units"] = "cm"
    +            params["energy_units"] = "kev"
    +            params["abs_units"] = "abs units"
    +            params["emis_units"] = "emis units"
    +            params["intensity_units"] = "intensity units"
    +            params["path_length_info"] = "path length metadata"
    +            Query("XRay Image", params)
    +
    +        # test output message
    +        s = GetQueryOutputString()
    +        TestText("xrayimage" + str(testtextnumber + i), s)
    +        teardown_bp_test()
    +
    +        # test opening the bp output and visualizing in visit
    +        conduit_db = pjoin(outdir, "output.root")
    +        OpenDatabase(conduit_db)
    +
    +        # 
    +        # image topo
    +        # 
    +
    +        AddPlot("Pseudocolor", "mesh_image_topo/intensities")
    +        DrawPlots()
    +        Test(testname + "_image_topo_intensities_" + calltype)
    +        DeleteAllPlots()
    +
    +        # test some slices
    +        for j in range(0, len(fake_energy_group_midpts)):
    +            AddPlot("Pseudocolor", "mesh_image_topo/intensities")
    +            z_slice(fake_energy_group_midpts[j], "mesh_image_topo")
    +            DrawPlots()
    +            Test(testname + "_image_topo_intensities_" + calltype + "_slice" + str(j))
    +            DeleteAllPlots()
    +
    +        AddPlot("Pseudocolor", "mesh_image_topo/path_length")
    +        DrawPlots()
    +        Test(testname + "_image_topo_path_length_" + calltype)
    +        DeleteAllPlots()
    +
    +        # test some slices
    +        for j in range(0, len(fake_energy_group_midpts)):
    +            AddPlot("Pseudocolor", "mesh_image_topo/path_length")
    +            z_slice(fake_energy_group_midpts[j], "mesh_image_topo")
    +            DrawPlots()
    +            Test(testname + "_image_topo_path_length_" + calltype + "_slice" + str(j))
    +            DeleteAllPlots()
    +
    +        # 
    +        # spatial topo
    +        # 
    +
    +        AddPlot("Pseudocolor", "mesh_spatial_topo/intensities_spatial")
    +        DrawPlots()
    +        Test(testname + "_spatial_topo_intensities_" + calltype)
    +        DeleteAllPlots()
    +
    +        # test some slices
    +        for j in range(0, len(energy_group_midpts)):
    +            AddPlot("Pseudocolor", "mesh_spatial_topo/intensities_spatial")
    +            z_slice(energy_group_midpts[j], "mesh_spatial_topo")
    +            DrawPlots()
    +            Test(testname + "_spatial_topo_intensities_" + calltype + "_slice" + str(j))
    +            DeleteAllPlots()
    +
    +        AddPlot("Pseudocolor", "mesh_spatial_topo/path_length_spatial")
    +        DrawPlots()
    +        Test(testname + "_spatial_topo_path_length_" + calltype)
    +        DeleteAllPlots()
    +
    +        # test some slices
    +        for j in range(0, len(energy_group_midpts)):
    +            AddPlot("Pseudocolor", "mesh_spatial_topo/path_length_spatial")
    +            z_slice(energy_group_midpts[j], "mesh_spatial_topo")
    +            DrawPlots()
    +            Test(testname + "_spatial_topo_path_length_" + calltype + "_slice" + str(j))
    +            DeleteAllPlots()
    +
    +        # 
    +        # spatial energy reduced topo
    +        # 
    +
    +        AddPlot("Pseudocolor", "mesh_spatial_energy_reduced_topo/intensities_spatial_energy_reduced")
    +        DrawPlots()
    +        Test(testname + "_spatial_energy_reduced_topo_intensities_" + calltype)
    +        DeleteAllPlots()
    +
    +        AddPlot("Pseudocolor", "mesh_spatial_energy_reduced_topo/path_length_spatial_energy_reduced")
    +        DrawPlots()
    +        Test(testname + "_spatial_energy_reduced_topo_path_length_" + calltype)
    +        DeleteAllPlots()
    +
    +        # 
    +        # spectra topo
    +        # 
    +
    +        AddPlot("Curve", "mesh_spectra_topo/intensities_spectra")
    +        DrawPlots()
    +        Test(testname + "_spectra_topo_intensities_" + calltype)
    +        DeleteAllPlots()
    +
    +        AddPlot("Curve", "mesh_spectra_topo/path_length_spectra")
    +        DrawPlots()
    +        Test(testname + "_spectra_topo_path_length_" + calltype)
    +        DeleteAllPlots()
    +
    +        CloseDatabase(conduit_db)
    +
    +    units = UNITS_OFF if i == 0 else UNITS_ON
    +
    +    qro = query_result_options(num_bins=3, abs_name="darr", emis_name="parr", \
    +        bin_state=ENERGY_GROUP_BOUNDS, units=units, \
    +        int_max=1.0, pl_max=892.02587890625)
    +    test_bp_data(testname + str(i), conduit_db, qro) # bounds
    +
    +    setup_bp_test()
    +
    +    Query("XRay Image", output_type, outdir, 1, 0.0, 2.5, 10.0, 0, 0, 15., 10., 300, 200, ("d", "p"), [1,2,3])
    +    qro = query_result_options(num_bins=1, abs_name="d", emis_name="p", \
    +        bin_state=ENERGY_GROUP_BOUNDS_MISMATCH, units=UNITS_OFF, \
    +        int_max=0.241531997919083, pl_max=148.670989990234)
    +    test_bp_data(testname + str(i), conduit_db, qro) # bounds mismatch
    +
    +    Query("XRay Image", output_type, outdir, 1, 0.0, 2.5, 10.0, 0, 0, 15., 10., 300, 200, ("d", "p"))
    +    qro = query_result_options(num_bins=1, abs_name="d", emis_name="p", \
    +        bin_state=NO_ENERGY_GROUP_BOUNDS, units=UNITS_OFF, \
    +        int_max=0.241531997919083, pl_max=148.670989990234)
    +    test_bp_data(testname + str(i), conduit_db, qro) # no bounds
    +
    +    teardown_bp_test()
    +
    +blueprint_test("hdf5", conduit_dir_hdf5, 32, "Blueprint_HDF5_X_Ray_Output")
    +blueprint_test("json", conduit_dir_json, 34, "Blueprint_JSON_X_Ray_Output")
    +blueprint_test("yaml", conduit_dir_yaml, 36, "Blueprint_YAML_X_Ray_Output")
    +
    +#
    +# test detector height and width are always positive in blueprint output
    +#
    +
    +setup_bp_test()
    +
    +params = GetQueryParameters("XRay Image")
    +params["image_size"] = (4, 3)
    +params["output_type"] = "hdf5"
    +params["output_dir"] = conduit_dir_detector_dims
    +params["focus"] = (0., 2.5, 10.)
    +params["perspective"] = 1
    +params["near_plane"] = -50.
    +params["far_plane"] = 50.
    +params["vars"] = ("d", "p")
    +params["energy_group_bounds"] = [3.7, 4.2];
    +params["parallel_scale"] = 5.
    +Query("XRay Image", params)
    +
    +teardown_bp_test()
    +
    +conduit_db = pjoin(conduit_dir_detector_dims, "output.root")
    +xrayout = conduit.Node()
    +conduit.relay.io.blueprint.load_mesh(xrayout, conduit_db)
    +
    +detector_width = xrayout["domain_000000/state/xray_data/detector_width"]
    +TestValueEQ("Blueprint_Positive_Detector_width", detector_width, 22.3932263237838)
    +
    +detector_height = xrayout["domain_000000/state/xray_data/detector_height"]
    +TestValueEQ("Blueprint_Positive_Detector_height", detector_height, 16.7949192423103)
    +
    +#
    +# test imaging plane topos and ray output
    +#
    +
    +def test_imaging_planes_and_rays():
    +    for i in range(0, 2):
    +        setup_bp_test()
    +
    +        params = GetQueryParameters("XRay Image")
    +        params["image_size"] = (400, 300)
    +        params["output_dir"] = conduit_dir_imaging_planes0 if i == 0 else conduit_dir_imaging_planes1
    +        params["output_type"] = "hdf5"
    +        params["focus"] = (0., 2.5, 10.)
    +        params["perspective"] = 1
    +        params["near_plane"] = -50.
    +        params["far_plane"] = 50.
    +        params["vars"] = ("d", "p")
    +        params["parallel_scale"] = 5.
    +        Query("XRay Image", params)
    +
    +        conduit_db = pjoin(conduit_dir_imaging_planes0 if i == 0 else conduit_dir_imaging_planes1, "output.root")
    +
    +        OpenDatabase(conduit_db)
    +
    +        AddPlot("Pseudocolor", "mesh_far_plane_topo/far_plane_field", 1, 1)
    +        AddPlot("Pseudocolor", "mesh_view_plane_topo/view_plane_field", 1, 1)
    +        AddPlot("Pseudocolor", "mesh_near_plane_topo/near_plane_field", 1, 1)
    +        if i == 0:
    +            AddPlot("Pseudocolor", "mesh_ray_corners_topo/ray_corners_field", 1, 1)
    +        else:
    +            AddPlot("Pseudocolor", "mesh_ray_topo/ray_field", 1, 1)
    +        DrawPlots()
    +
    +        SetActivePlots(4)
    +        PseudocolorAtts = PseudocolorAttributes()
    +        PseudocolorAtts.invertColorTable = 1
    +        SetPlotOptions(PseudocolorAtts)
    +
    +        View3DAtts = View3DAttributes()
    +        View3DAtts.viewNormal = (-0.519145, 0.199692, -0.831031)
    +        View3DAtts.focus = (0, 2.5, 10)
    +        View3DAtts.viewUp = (-0.0954901, 0.952683, 0.288577)
    +        View3DAtts.viewAngle = 30
    +        View3DAtts.parallelScale = 58.6531
    +        View3DAtts.nearPlane = -117.306
    +        View3DAtts.farPlane = 117.306
    +        SetView3D(View3DAtts)
    +
    +        Test("Blueprint_HDF5_Imaging_Planes" + str(i))
    +
    +        teardown_bp_test()
    +        CloseDatabase(conduit_db)
    +
    +test_imaging_planes_and_rays()
    +
    +def test_non_square_pixels():
    +    DeleteAllPlots()
    +    setup_bp_test()
    +
    +    params = GetQueryParameters("XRay Image")
    +
    +    params["vars"] = ("d", "p")
    +    params["image_size"] = (300, 300)
    +    params["energy_group_bounds"] = [2.7, 6.2]
    +
    +    # filename, directory, and output type choices
    +    params["output_dir"] = conduit_dir_nonsquare_pixels
    +    params["filename_scheme"] = "family" # "none", "family", or "cycle" 
    +    params["output_type"] = "hdf5"
    +
    +    params["focus"] = (0., 2.5, 10.)
    +    params["parallel_scale"] = 10.
    +    params["near_plane"] = -25.
    +    params["far_plane"] = 25.
    +    params["view_angle"] = 30
    +    params["perspective"] = 1 # 0 parallel, 1 perspective
    +
    +    # default
    +    Query("XRay Image", params)
    +    params["image_size"] = (4, 4)
    +    Query("XRay Image", params)
    +    params["image_size"] = (300, 300)
    +
    +    # view width is set but is equal to what it would have been if it were calculated
    +    params["view_width"] = 10.
    +    Query("XRay Image", params)
    +    params["image_size"] = (4, 4)
    +    Query("XRay Image", params)
    +    params["image_size"] = (300, 300)
    +
    +    # view width is twice the length of the parallel scale
    +    params["view_width"] = 20.
    +    Query("XRay Image", params)
    +    params["image_size"] = (4, 4)
    +    Query("XRay Image", params)
    +    params["image_size"] = (300, 300)
    +
    +    # view width is half the length of the parallel scale
    +    params["view_width"] = 5.
    +    Query("XRay Image", params)
    +    params["image_size"] = (4, 4)
    +    Query("XRay Image", params)
    +
    +    conduit_db = pjoin(conduit_dir_nonsquare_pixels, "output.*.root database")
    +    OpenDatabase(conduit_db)
    +
    +    # first we test the imaging planes and rays look as we expect
    +    AddPlot("Pseudocolor", "mesh_near_plane_topo/near_plane_field")
    +    AddPlot("Pseudocolor", "mesh_view_plane_topo/view_plane_field")
    +    AddPlot("Pseudocolor", "mesh_far_plane_topo/far_plane_field")
    +    DrawPlots()
    +
    +    # Make the plot of the near plane active
    +    SetActivePlots(1)
    +    PseudocolorAtts = PseudocolorAttributes()
    +    # We invert the color table so that it is a different color from the far plane
    +    PseudocolorAtts.invertColorTable = 1
    +    SetPlotOptions(PseudocolorAtts)
    +
    +    # Make the plot of the view plane active
    +    SetActivePlots(2)
    +    PseudocolorAtts = PseudocolorAttributes()
    +    PseudocolorAtts.colorTableName = "hot_and_cold"
    +    PseudocolorAtts.invertColorTable = 1
    +    PseudocolorAtts.opacityType = PseudocolorAtts.Constant  # ColorTable, FullyOpaque, Constant, Ramp, VariableRange
    +    # We lower the opacity so that the view plane does not obstruct our view of anything.
    +    PseudocolorAtts.opacity = 0.7
    +    SetPlotOptions(PseudocolorAtts)
    +
    +    # leave the far plane as is
    +
    +    # add ray corners topo
    +    AddPlot("Mesh", "mesh_ray_corners_topo")
    +    DrawPlots()
    +    MeshAtts = MeshAttributes()
    +    MeshAtts.lineWidth = 1
    +    SetPlotOptions(MeshAtts)
    +
    +    # set view
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (-0.350116, 0.224905, -0.909306)
    +    View3DAtts.focus = (0, 2.5, 10)
    +    View3DAtts.viewUp = (0.0306245, 0.972977, 0.228862)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 34.3903
    +    View3DAtts.nearPlane = -68.7807
    +    View3DAtts.farPlane = 68.7807
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0, 2.5, 10)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +    # take pictures of all the ray setups
    +    Test("NonSquare_Pixels_Ray_trace_setup_1")
    +    TimeSliderNextState()
    +    AddPlot("Pseudocolor", "mesh_ray_topo/ray_field")
    +    DrawPlots()
    +    Test("NonSquare_Pixels_Ray_trace_setup_2")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    Test("NonSquare_Pixels_Ray_trace_setup_3")
    +    TimeSliderNextState()
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_Ray_trace_setup_4")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    Test("NonSquare_Pixels_Ray_trace_setup_5")
    +    TimeSliderNextState()
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_Ray_trace_setup_6")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    Test("NonSquare_Pixels_Ray_trace_setup_7")
    +    TimeSliderNextState()
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_Ray_trace_setup_8")
    +    HideActivePlots()
    +
    +    # cleanup
    +    TimeSliderNextState()
    +    DeleteAllPlots()
    +
    +    # take pictures of the hi-res images
    +    AddPlot("Pseudocolor", "mesh_image_topo/intensities", 1, 1)
    +    DrawPlots()
    +    ResetView()
    +    AddPlot("Pseudocolor", "mesh_spatial_topo/intensities_spatial", 1, 1)
    +    DrawPlots()
    +    HideActivePlots()
    +    SetActivePlots((0, 1))
    +    Test("NonSquare_Pixels_hi_res_images1")
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_hi_res_images2")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    TimeSliderNextState()
    +    Test("NonSquare_Pixels_hi_res_images3")
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_hi_res_images4")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    TimeSliderNextState()
    +    Test("NonSquare_Pixels_hi_res_images5")
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_hi_res_images6")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    TimeSliderNextState()
    +    Test("NonSquare_Pixels_hi_res_images7")
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_hi_res_images8")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +
    +    # cleanup
    +    TimeSliderNextState()
    +    DeleteAllPlots()
    +
    +    # take pictures of the low res images
    +    AddPlot("Pseudocolor", "mesh_image_topo/intensities", 1, 1)
    +    DrawPlots()
    +    AddPlot("Mesh", "mesh_image_topo", 1, 1)
    +    DrawPlots()
    +    AddPlot("Pseudocolor", "mesh_spatial_topo/intensities_spatial", 1, 1)
    +    DrawPlots()
    +    AddPlot("Mesh", "mesh_spatial_topo", 1, 1)
    +    DrawPlots()
    +    SetActivePlots((2, 3))
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    ResetView()
    +    SetActivePlots((0, 2, 3))
    +    SetActivePlots((0, 1, 2, 3))
    +    Test("NonSquare_Pixels_low_res_mesh_plots1")
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_low_res_mesh_plots2")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    TimeSliderNextState()
    +    ResetView()
    +    Test("NonSquare_Pixels_low_res_mesh_plots3")
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_low_res_mesh_plots4")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    TimeSliderNextState()
    +    ResetView()
    +    Test("NonSquare_Pixels_low_res_mesh_plots5")
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_low_res_mesh_plots6")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    TimeSliderNextState()
    +    ResetView()
    +    Test("NonSquare_Pixels_low_res_mesh_plots7")
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_low_res_mesh_plots8")
    +    HideActivePlots()
    +
    +    teardown_bp_test()
    +    CloseDatabase(conduit_db)
    +
    +test_non_square_pixels()
    +
    +# 
    +# test catching failures
    +# 
    +
    +# write to dir that does not exist
    +
    +setup_bp_test()
    +Query("XRay Image", "hdf5", dir_dne, 1, 0.0, 2.5, 10.0, 0, 0, 10., 10., 300, 300, ("d", "p"))
    +output_obj = GetQueryOutputObject()
    +TestValueEQ("xrayimage38", output_obj, None)
    +teardown_bp_test(True)
    +
    +# os.chmod does not work on windows
    +if not platform.system() == "Windows":
    +    # write to dir w/ read only permissions
    +    setup_bp_test()
    +    Query("XRay Image", "hdf5", outdir_bad, 1, 0.0, 2.5, 10.0, 0, 0, 10., 10., 300, 300, ("d", "p"))
    +    output_obj = GetQueryOutputObject()
    +    TestValueEQ("xrayimage39", output_obj, None)
    +    teardown_bp_test()
    +
    +# 
    +# Test filenames and output types
    +# 
    +
    +setup_bp_test()
    +
    +DefineArrayExpression("da", "array_compose(d,d)")
    +DefineArrayExpression("pa", "array_compose(p,p)")
    +
    +def query_variety(otype, scheme, thevars, outdir):
    +    SetQueryFloatFormat("%g")
    +    Query("XRay Image",
    +        background_intensity=0,
    +        divide_emis_by_absorb=0,
    +        far_plane=20,
    +        filename_scheme=scheme,
    +        family_files=0, # this is to test that family_files is ignored when filename_scheme is set
    +        focus=(0, 0, 0),
    +        image_pan=(0, 0),
    +        image_size=(3, 3),
    +        image_zoom=1,
    +        near_plane=-20,
    +        normal=(0, 0, 1),
    +        output_dir=outdir,
    +        output_ray_bounds=0,
    +        output_type=otype,
    +        parallel_scale=10,
    +        perspective=0,
    +        view_angle=30,
    +        view_up=(0, 1, 0),
    +        vars=thevars)
    +    return GetQueryOutputObject()
    +
    +def query_family_backwards_compat(family, thevars, outdir):
    +    SetQueryFloatFormat("%g")
    +    Query("XRay Image",
    +        background_intensity=0,
    +        divide_emis_by_absorb=0,
    +        far_plane=20,
    +        family_files=family,
    +        focus=(0, 0, 0),
    +        image_pan=(0, 0),
    +        image_size=(3, 3),
    +        image_zoom=1,
    +        near_plane=-20,
    +        normal=(0, 0, 1),
    +        output_dir=outdir,
    +        output_ray_bounds=0,
    +        output_type="png",
    +        parallel_scale=10,
    +        perspective=0,
    +        view_angle=30,
    +        view_up=(0, 1, 0),
    +        vars=thevars)
    +    return GetQueryOutputObject()
    +
    +filename_schemes = ["family", "family", "cycle", "none"]
    +vars_options = [("d", "p"), ("da", "pa")]
    +
    +for i in range(0, len(output_types)):
    +    outdir_set_otype = outdir_set + "_" + output_types[i]
    +    if output_types[i] == "jpeg":
    +        # create a dummy file to test the file familying
    +        open(outdir_set_otype + "/output.0000.jpg", 'w').close()
    +    info = ""
    +    for j in range(0, len(filename_schemes)):
    +        for k in range(0, len(vars_options)):
    +            info += str(query_variety(output_types[i],
    +                                      filename_schemes[j],
    +                                      vars_options[k],
    +                                      outdir_set_otype)) + "\n"
    +    info += str(sorted(os.listdir(outdir_set_otype))) + "\n"
    +    TestText("Test_filenames_for_" + output_types[i] + "_outputs", info)
    +
    +# test backwards compatibility with family_files option
    +for i in range(0, len(family_options)):
    +    outdir_set_family = outdir_set + "_family_" + str(family_options[i])
    +    info = ""
    +    for j in range(0, len(vars_options)):
    +        info += str(query_family_backwards_compat(family_options[i],
    +                                                  vars_options[j],
    +                                                  outdir_set_family)) + "\n"
    +    info += str(sorted(os.listdir(outdir_set_family))) + "\n"
    +    TestText("Test_filenames_for_family" + str(family_options[i]) + "_outputs", info)
    +
    +#
    +# Test that we get decent error messages for common cases
    +#
    +import numpy
    +
    +nporig = numpy.array([0.0, 2.5, 10.0])
    +
    +params = dict(output_type=1, output_dir=".", divide_emis_by_absorb=1, \
    +    origin=nporig, up_vector=(0, 1, 0), theta=0, phi=0, \
    +    width = 10., height=10., image_size=(300, 300), vars=("da", "pa"))
    +try:
    +    Query("XRay Image", params)
    +except (visit.VisItException, VisItException) as e:
    +    if '"origin"' in e.args[0] and "position 4" in e.args[0] and "type numpy.ndarray" in e.args[0]:
    +        TestPOA('detect and warn numpy array as query param')
    +    else:
    +        TestFOA('detect and warn numpy array as query param', LINE())
    +    pass
    +except:
    +    TestFOA('detect and warn numpy array as query param', LINE())
    +    pass
    +
    +params = dict(output_type=1, output_dir=".", divide_emis_by_absorb=1, \
    +    origin=nporig.tolist(), up_vector=(0, 1, 0), theta=0, phi=0, \
    +    width = 10., height=10., image_size=(300, 300), vars=("da", "pa"))
    +try:
    +    Query("XRay Image", params)
    +    TestPOA('numpy array converted to list works as query param')
    +except:
    +    TestFOA('numpy array converted to list works as query param', LINE())
    +    pass
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_cl_args.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_cl_args.html new file mode 100644 index 000000000..ccc30cb5e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_cl_args.html @@ -0,0 +1,44 @@ + +Results for quickrecipes/cl_args.py + +

    Results of VisIt Regression Test - quickrecipes/cl_args

    + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    handling command line arguments errors
     "" .eq. "" : True
    handling command line arguments no exceptions
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_cl_args_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_cl_args_py.html new file mode 100644 index 000000000..9e0c5276c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_cl_args_py.html @@ -0,0 +1,30 @@ +quickrecipes/cl_args.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Mark C. Miller, Fri Aug 26 14:31:48 PDT 2022
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Get some utils shared across many .py files used for quick recipes.
    +#
    +Source(tests_path('quickrecipes','vqr_utils.py.inc'))
    +
    +def handling_command_line_arguments():
    +
    +  try:
    +    # handling command line arguments {
    +    import sys
    +    print(Argv)
    +    print(sys.argv)
    +    # handling command line arguments }
    +    TestValueEQ('handling command line arguments errors',GetLastError(),'')
    +    TestPOA('handling command line arguments no exceptions')
    +  except Exception as inst:
    +    TestFOA('handling command line argumentts exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +handling_command_line_arguments()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_colortables.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_colortables.html new file mode 100644 index 000000000..ed4e5cbf8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_colortables.html @@ -0,0 +1,72 @@ + +Results for quickrecipes/colortables.py + +

    Results of VisIt Regression Test - quickrecipes/colortables

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    standard_hot_table0.000.00
    modified_hot_table_10.000.00
    modified_hot_table_20.000.00
    hot20.000.00
    hot30.000.00
    rainbow_continuous0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_colortables_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_colortables_py.html new file mode 100644 index 000000000..b24714eda --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_colortables_py.html @@ -0,0 +1,217 @@ +quickrecipes/colortables.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  colortables.py
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       March 30, 2022
    +#
    +#  Modificatons:
    +#    Justin Privitera, Wed Aug  3 19:46:13 PDT 2022
    +#    Made changes to reflect the fact that built-in tables cannot be edited.
    +#
    +#    Mark C. Miller, Mon Dec 12 19:02:35 PST 2022
    +#    Add introspecting block
    +# ----------------------------------------------------------------------------
    +
    +
    +# NOTE: Sections of this test file are 'literalinclude'd in quickrecipes.rst.
    +# After modifying this file, ensure the proper content is still displayed in the doc.
    +
    +# comments of the form '# sometext {' and '# sometext }' bracket the sections
    +# that are 'literalinclude'd in quickrecipes.rst.
    +
    +def introspectingColorTable():
    +
    +    # introspectingColorTable {
    +    hotCT = GetColorTable("hot")
    +    print(hotCT)
    +    # results of print
    +    #    GetControlPoints(0).colors = (0, 0, 255, 255)
    +    #    GetControlPoints(0).position = 0
    +    #    GetControlPoints(1).colors = (0, 255, 255, 255)
    +    #    GetControlPoints(1).position = 0.25
    +    #    GetControlPoints(2).colors = (0, 255, 0, 255)
    +    #    GetControlPoints(2).position = 0.5
    +    #    GetControlPoints(3).colors = (255, 255, 0, 255)
    +    #    GetControlPoints(3).position = 0.75
    +    #    GetControlPoints(4).colors = (255, 0, 0, 255)
    +    #    GetControlPoints(4).position = 1
    +    #    smoothing = Linear  # NONE, Linear, CubicSpline
    +    #    equalSpacingFlag = 0
    +    #    discreteFlag = 0
    +    # introspectingColorTable }
    +
    +def modifyExistingColorTable():
    +
    +    # modifyTable1 {
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +    AddPlot("Pseudocolor", "d")
    +
    +    pc = PseudocolorAttributes()
    +    pc.centering=pc.Nodal
    +    # set color table name
    +    pc.colorTableName = "hot"
    +    SetPlotOptions(pc)
    +
    +    DrawPlots()
    +    # put the plot in full-frame mode
    +    v = GetView2D()
    +    v.fullFrameActivationMode= v.On
    +    SetView2D(v)
    +    # modifyTable1 } 
    +
    +    Test("standard_hot_table")
    +
    +    hotCTorig = GetColorTable("hot")
    +
    +    # modifyTable2 {
    +    hotCT = GetColorTable("hot")
    +
    +    # Remove a couple of control points
    +    hotCT.RemoveControlPoints(4)
    +    hotCT.RemoveControlPoints(3)
    +
    +    # We must use a different name, as VisIt will not allow overwriting of built-in color tables
    +    SetColorTable("hot_edited", hotCT)
    +
    +    # set color table name so changes to it will be reflected in plot
    +    pc.colorTableName = "hot_edited"
    +    SetPlotOptions(pc)
    +    # modifyTable2 }
    +
    +    Test("modified_hot_table_1")
    +
    +    # modifyTable3 {
    +    # Change colors
    +    hotCT.GetControlPoints(0).colors = (255,0,0,255)
    +    hotCT.GetControlPoints(1).colors = (255, 0, 255, 255)
    +    SetColorTable("hot_edited", hotCT)
    +    # modifyTable3 }
    +
    +    Test("modified_hot_table_2")
    +
    +    # modifyTable4 {
    +    # Turn on equal spacing
    +    hotCT.equalSpacingFlag = 1
    +    # Create a new color table by providing a different name
    +    SetColorTable("hot2", hotCT)
    +
    +    # tell the Pseudocolor plot to use the new color table
    +    pc.colorTableName = "hot2"
    +    SetPlotOptions(pc)
    +    # modifyTable4 }
    +
    +    Test("hot2")
    +
    +    # modifyTable5 {
    +    # Change positions so that the first and last are at the endpoints
    +    hotCT.equalSpacingFlag=0
    +    hotCT.GetControlPoints(0).position = 0
    +    hotCT.GetControlPoints(1).position =0.5
    +    hotCT.GetControlPoints(2).position = 1
    +    SetColorTable("hot3", hotCT)
    +
    +    pc.colorTableName = "hot3"
    +    SetPlotOptions(pc)
    +    # modifyTable5 }
    +
    +    Test("hot3")
    +
    +    # remove the added color tables
    +    RemoveColorTable("hot_edited")
    +    RemoveColorTable("hot2")
    +    RemoveColorTable("hot3")
    +    DeleteAllPlots()
    +
    +def createContinuous():
    +    # based on http://visitusers.org/index.php?title=Creating_a_color_table
    +
    +    # continuous1 {
    +    # create control points (red, green, blue, position).
    +    ct = ((1,0,0,0.), (1,0.8,0.,0.166), (1,1,0,0.333), (0,1,0,0.5),
    +          (0,1,1,0.666), (0,0,1,0.8333), (0.8,0.1,1,1))
    +
    +    ccpl = ColorControlPointList()
    +
    +    # add the control points to the list 
    +    for pt in ct:
    +        p = ColorControlPoint()
    +        # colors is RGBA and must be in range 0...255
    +        p.colors = (pt[0] * 255, pt[1] * 255, pt[2] * 255, 255)
    +        p.position = pt[3]
    +        ccpl.AddControlPoints(p)
    +    AddColorTable("myrainbow", ccpl)
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    AddPlot("Pseudocolor", "speed")
    +
    +    # Make the plot use the new color table
    +    pc = PseudocolorAttributes(1)
    +    pc.colorTableName = "myrainbow"
    +    SetPlotOptions(pc)
    +
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.693476, 0.212776, 0.688344)
    +    v. viewUp = (0.161927, 0.976983, -0.138864)
    +    SetView3D(v)
    +    # continuous1 }
    +
    +    Test("rainbow_continuous")
    +
    +    RemoveColorTable("myrainbow")
    +    DeleteAllPlots()
    +
    +
    +def createDiscreteUsingVTKNamedColors():
    +    # discrete1 {
    +    try:
    +        import vtk # for vtk.vtkNamedColors
    +    except:
    +        return
    +
    +    # to see list of all color names available: 
    +    # print(vtk.vtkNamedColors.GetColorNames())
    +
    +    # choose some colors from vtk.vtkNamedColors
    +    colorNames = ["tomato", "turquoise", "van_dyke_brown", "carrot",
    +                  "royalblue", "naples_yellow_deep", "cerulean", "warm_grey",
    +                  "venetian_red", "seagreen", "sky_blue", "pink"]
    +    # Create a color control point list
    +    ccpl = ColorControlPointList()
    +    # Make it discrete
    +    ccpl.discreteFlag=1
    +    # Add color control points corresponding to color names
    +    for name in colorNames:
    +        p = ColorControlPoint()
    +        p.colors=vtk.vtkNamedColors().GetColor4ub(name)
    +        ccpl.AddControlPoints(p)
    +    # add a color table based on the color control points
    +    AddColorTable("mylevels", ccpl)
    +
    +    OpenDatabase(silo_data_path("multi_rect2d.silo"))
    +    AddPlot("Subset", "domains")
    +    s = SubsetAttributes()
    +    s.colorType = s.ColorByColorTable
    +    s.colorTableName = "mylevels"
    +    SetPlotOptions(s)
    +    DrawPlots()
    +    # discrete1 }
    +
    +    Test("discrete_using_vtk")
    +
    +    # remove the added color tables
    +    RemoveColorTable("mylevels")
    +    DeleteAllPlots()
    +
    +def main():
    +    introspectingColorTable()
    +    modifyExistingColorTable()
    +    createContinuous()
    +    createDiscreteUsingVTKNamedColors()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_expressions.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_expressions.html new file mode 100644 index 000000000..d139e4bc7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_expressions.html @@ -0,0 +1,42 @@ + +Results for quickrecipes/expressions.py + +

    Results of VisIt Regression Test - quickrecipes/expressions

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    materials_to_values0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_expressions_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_expressions_py.html new file mode 100644 index 000000000..4f3534e5c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_expressions_py.html @@ -0,0 +1,62 @@ +quickrecipes/expressions.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  expressions.py
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       August 26, 2022
    +#
    +#  Modificatons:
    +#    Kathleen Biagas, Mon Sep 12, 2022
    +#    Change OpenDatabase call to use 'silo_data_path' so that the test can
    +#    run on Windows.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# NOTE: Sections of this test file are 'literalinclude'd in quickrecipes.rst.
    +# After modifying this file, ensure the proper content is still displayed in the doc.
    +
    +# comments of the form '# sometext {' and '# sometext }' bracket the sections
    +# that are 'literalinclude'd in quickrecipes.rst.
    +
    +# mapMaterialsToValues {
    +# Create an expression that maps material numbers to scalar values.
    +#
    +# var is the name of the expression.
    +# mat is the name of the material variable.
    +# mesh is the name of the mesh variable.
    +# pairs is a list of tuples of material number and scalar value.
    +# The material number of the last tuple of the list is ignored and the value
    +# will be used for all the remaining materials.
    +
    +def create_mat_value_expr(var, mat, mesh, pairs):
    +    expr=""
    +    parens=""
    +    nlist = len(pairs)
    +    ilist = 0
    +    for pair in pairs:
    +        ilist = ilist + 1
    +        parens = parens + ")"
    +        if (ilist == nlist):
    +            expr = expr + "zonal_constant(%s,%f" % (mesh, pair[1]) + parens
    +        else:
    +            expr=expr + "if(eq(dominant_mat(%s),zonal_constant(%s,%d)),zonal_constant(%s,%f)," % (mat, mesh, pair[0], mesh, pair[1])
    +
    +    DefineScalarExpression(var, expr)
    +
    +# Call the function to create the expression.
    +mat_val_pairs = [(1, 0.75), (3, 1.2), (6, 0.2), (7, 1.6), (8, 1.8), (11, 2.2), (-1, 2.5)]
    +
    +create_mat_value_expr("myvar", "mat1", "quadmesh2d", mat_val_pairs)
    +
    +# Create a pseudocolor plot of the expression.
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +AddPlot("Pseudocolor", "myvar")
    +DrawPlots()
    +# mapMaterialsToValues }
    +
    +Test("materials_to_values")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_operators.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_operators.html new file mode 100644 index 000000000..371526a48 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_operators.html @@ -0,0 +1,52 @@ + +Results for quickrecipes/operators.py + +

    Results of VisIt Regression Test - quickrecipes/operators

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    adding operators error message
     "" .eq. "" : True
    adding operators exceptions
     "True" .eq. "True" : True
    setting operator attributes error message
     "" .eq. "" : True
    setting operator attributes exceptions
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_operators_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_operators_py.html new file mode 100644 index 000000000..333c729de --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_operators_py.html @@ -0,0 +1,80 @@ +quickrecipes/operators.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Mark C. Miller, Fri Aug 26 14:31:48 PDT 2022
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Get some utils shared across many .py files used for quick recipes.
    +#
    +Source(tests_path('quickrecipes','vqr_utils.py.inc'))
    +
    +def adding_operators():
    +
    +  OpenDatabase(silo_data_path("globe.silo"))
    +  try:
    +    # adding operators {
    +    # Names of all available operator plugins as a python tuple
    +    x = OperatorPlugins()
    +
    +    print(x)
    +    # will produce output something like...
    +    # ('AMRStitchCell', 'AxisAlignedSlice4D', 'BoundaryOp', 'Box', 'CartographicProjection',
    +    #  'Clip', 'Cone', 'ConnectedComponents', 'CoordSwap', 'CreateBonds', 'Cylinder',
    +    #  'DataBinning', 'DeferExpression', 'Displace', 'DualMesh', 'Edge', 'Elevate',
    +    #  'EllipsoidSlice', 'Explode', 'ExternalSurface', ...
    +    #  ..., 'TriangulateRegularPoints', 'Tube')
    +
    +    # We need at least one plot that we can add operators to
    +    AddPlot("Pseudocolor", "dx")
    +    AddPlot("Mesh","mesh1")
    +
    +    # Add Isovolume and Slice operators using whatever their default attributes are.
    +    # The non-zero 2nd arg means to add the operator to all plots. If the 2nd argument
    +    # is not present or zero, it means to add the operator only to the *active* plots
    +    # (by default, the *active* plots are just the last plot added).
    +    AddOperator("Isovolume", 1)
    +    AddOperator("Slice", 1)
    +    DrawPlots()
    +    # adding operators }
    +    TestValueEQ('adding operators error message',GetLastError(),'')
    +    TestPOA('adding operators exceptions')
    +  except Exception as inst:
    +    TestFOA('adding operators exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def setting_operator_attributes():
    +
    +  try:
    +    # setting operator attributes {
    +    OpenDatabase("~juanita/silo/stuff/noise.silo")
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    AddOperator("Slice")
    +    s = SliceAttributes()
    +    s.originType = s.Percent
    +    s.project2d = 0
    +    SetOperatorOptions(s)
    +    DrawPlots()
    +
    +    nSteps = 20
    +    for axis in (0,1,2):
    +      s.axisType = axis
    +      for step in range(nSteps):
    +        t = float(step) / float(nSteps - 1)
    +        s.originPercent = t * 100.
    +        SetOperatorOptions(s)
    +        SaveWindow()
    +    # setting operator attributes }
    +    TestValueEQ('setting operator attributes error message',GetLastError(),'')
    +    TestPOA('setting operator attributes exceptions')
    +  except Exception as inst:
    +    TestFOA('setting operator attributes exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +adding_operators()
    +setting_operator_attributes()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_quantitative_operations.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_quantitative_operations.html new file mode 100644 index 000000000..cd9d6222f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_quantitative_operations.html @@ -0,0 +1,116 @@ + +Results for quickrecipes/quantitative_operations.py + +

    Results of VisIt Regression Test - quickrecipes/quantitative_operations

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    defining expressions error message
     "" .eq. "" : True
    defining expressions exceptions
     "True" .eq. "True" : True
    pick string
     hgslice:   = 2.472 .in. 
    +A: noise.silo +Mesh2D +Point: <-10, -7.55102> +Node: 300 +Incident Zones: 294 245 +hgslice: = 2.47203 + + (prec=5, at=86) : True
    pick string
     hgslice:   = 4.043 .in. 
    +D: noise.silo +Mesh2D +Point: <-1.83673, 1.83673> +Node: 1470 +Incident Zones: 1440 1391 1441 1392 +hgslice: = 4.04322 + + (prec=5, at=105) : True
    pick error message
     "" .eq. "" : True
    pick exceptions
     "True" .eq. "True" : True
    lineout 1 error message
     "" .eq. "" : True
    lineout 1 exceptions
     "True" .eq. "True" : True
    lineout 2 error message
     "" .eq. "" : True
    lineout 2 exceptions
     "True" .eq. "True" : True
    query error message
     "" .eq. "" : True
    query exceptions
     "True" .eq. "True" : True
    finding the min and max error message
     "" .eq. "" : True
    finding the min and max exceptions
     "True" .eq. "True" : True
    csv query over time error message
     "" .eq. "" : True
    csv query over time exceptions
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_quantitative_operations_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_quantitative_operations_py.html new file mode 100644 index 000000000..462be9c66 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_quantitative_operations_py.html @@ -0,0 +1,219 @@ +quickrecipes/quantitative_operations.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Mark C. Miller, Fri Aug 26 14:31:48 PDT 2022
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Get some utils shared across many .py files used for quick recipes.
    +#
    +Source(tests_path('quickrecipes','vqr_utils.py.inc'))
    +
    +def defining_expressions():
    +
    +  try:
    +    # defining expressions {
    +    # Creating a new expression
    +    OpenDatabase("~juanita/silo/stuff/noise.silo")
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +    DefineScalarExpression("newvar", "sin(hardyglobal) + cos(shepardglobal)")
    +    ChangeActivePlotsVar("newvar")
    +    # defining expressions }
    +    TestValueEQ('defining expressions error message',GetLastError(),'')
    +    TestPOA('defining expressions exceptions')
    +  except Exception as inst:
    +    TestFOA('defining expressions exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def pick():
    +
    +  try:
    +    # pick {
    +    OpenDatabase("~juanita/silo/stuff/noise.silo")
    +    AddPlot("Pseudocolor", "hgslice")
    +    DrawPlots()
    +    s = []
    +    # Pick by a node id
    +    PickByNode(300)
    +    s = s + [GetPickOutput()]
    +    # Pick by a cell id
    +    PickByZone(250)
    +    s = s + [GetPickOutput()]
    +    # Pick on a cell using a 3d point
    +    Pick((-2., 2., 0.))
    +    s = s + [GetPickOutput()]
    +    # Pick on the node closest to (-2,2,0)
    +    NodePick((-2,2,0))
    +    s = s + [GetPickOutput()]
    +    # Print all pick results
    +    print(s)
    +    # Will produce output somewhat like...
    +    # ['\nA:  noise.silo\nMesh2D \nPoint: <-10, -7.55102>\nNode:...
    +    #  '\nD:  noise.silo\nMesh2D \nPoint: <-1.83673, 1.83673>\nNode:...
    +    #  ...\nhgslice:  <nodal> = 4.04322\n\n']
    +    # pick }
    +    TestValueIN('pick string',s[0],'hgslice:  <nodal> = 2.472')
    +    TestValueIN('pick string',s[3],'hgslice:  <nodal> = 4.043')
    +    TestValueEQ('pick error message',GetLastError(),'')
    +    TestPOA('pick exceptions')
    +  except Exception as inst:
    +    TestFOA('pick exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def lineout1():
    +
    +  try:
    +    # lineout 1 {
    +    p0 = (-5,-3, 0)
    +    p1 = ( 5, 8, 0)
    +    OpenDatabase("~juanita/silo/stuff/noise.silo")
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +    Lineout(p0, p1)
    +    # Specify 65 sample points
    +    Lineout(p0, p1, 65)
    +    # Do three variables ("default" is "hardyglobal")
    +    Lineout(p0, p1, ("default", "airVf", "radial"))
    +    # lineout 1 }
    +    TestValueEQ('lineout 1 error message',GetLastError(),'')
    +    TestPOA('lineout 1 exceptions')
    +  except Exception as inst:
    +    TestFOA('lineout 1 exception "%s"'%str(inst), LINE())
    +    pass
    +  # No cleanup because next method uses results from this
    +  # DeleteWindow()
    +  # vqr_cleanup()
    +
    +def lineout2():
    +
    +  try:
    +    # lineout 2 {
    +    # Set active window to one containing Lineout curve plots (typically #2)
    +    SetActiveWindow(2)
    +    # Get array of x,y pairs for first curve plot in window
    +    SetActivePlots(0)
    +    hg_vals = GetPlotInformation()["Curve"]
    +    # Get array of x,y pairs for second curve plot in window
    +    SetActivePlots(1)
    +    avf_vals = GetPlotInformation()["Curve"]
    +    # Get array of x,y pairs for third curve plot in window
    +    SetActivePlots(2)
    +    rad_vals = GetPlotInformation()["Curve"]
    +
    +    # Write it as CSV data to a file
    +    for i in range(int(len(hg_vals) / 2)):
    +        idx = i*2+1 # take only y-values in each array
    +        print("%g,%g,%g" % (hg_vals[idx], avf_vals[idx], rad_vals[idx]))
    +    # lineout 2 }
    +    TestValueEQ('lineout 2 error message',GetLastError(),'')
    +    TestPOA('lineout 2 exceptions')
    +  except Exception as inst:
    +    TestFOA('lineout 2 exception "%s"'%str(inst), LINE())
    +    pass
    +  DeleteWindow()
    +  vqr_cleanup()
    +
    +def query():
    +
    +  try:
    +    # query {
    +    OpenDatabase("~juanita/silo/stuff/noise.silo")
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +    Query("NumNodes")
    +    print("The float value is: %g" % GetQueryOutputValue())
    +    Query("NumNodes")
    +    # query }
    +    TestValueEQ('query error message',GetLastError(),'')
    +    TestPOA('query exceptions')
    +  except Exception as inst:
    +    TestFOA('query exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def finding_the_min_and_max():
    +
    +  try:
    +    # finding the min and max {
    +    # Define a helper function to get node/zone id's from query string.
    +    def GetMinMaxIds(qstr):
    +        import string
    +        s = qstr.split(' ')
    +        retval = []
    +        nextGood = 0
    +        idType = 0
    +        for token in s:
    +            if token == "(zone" or token == "(cell":
    +                idType = 1
    +                nextGood = 1
    +                continue
    +            elif token == "(node":
    +                idType = 0
    +                nextGood = 1
    +                continue
    +            if nextGood == 1:
    +                nextGood = 0
    +                retval = retval + [(idType, int(token))]
    +        return retval
    +
    +    # Set up a plot
    +    OpenDatabase("~juanita/silo/stuff/noise.silo")
    +    AddPlot("Pseudocolor", "hgslice")
    +    DrawPlots()
    +    Query("MinMax")
    +
    +    # Do picks on the ids that were returned by MinMax.
    +    for ids in GetMinMaxIds(GetQueryOutputString()):
    +        idType = ids[0]
    +        id = ids[1]
    +        if idType == 0:
    +            PickByNode(id)
    +        else:
    +            PickByZone(id)
    +    # finding the min and max }
    +    TestValueEQ('finding the min and max error message',GetLastError(),'')
    +    TestPOA('finding the min and max exceptions')
    +  except Exception as inst:
    +    TestFOA('finding the min and max exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def csv_query_over_time():
    +
    +  try:
    +    # csv query over time {
    +    OpenDatabase("~juanita/silo/stuff/wave.visit")
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +
    +    n_time_steps = TimeSliderGetNStates()
    +    f = open('points.txt', 'w', encoding='utf-8')
    +    f.write('time, x, y, z, u, v, w\n')
    +    for time_step in range(0, n_time_steps):
    +        TimeSliderSetState(time_step)
    +        pick = PickByNode(domain=0, element=3726, vars=["u", "v", "w"])
    +        Query("Time")
    +        time = GetQueryOutputValue()
    +        f.write('%g, %g, %g, %g, %g, %g, %g\n' % (time, pick['point'][0], pick['point'][1], pick['point'][2], pick['u'], pick['v'], pick['w']))
    +    f.close()
    +    # csv query over time }
    +    TestValueEQ('csv query over time error message',GetLastError(),'')
    +    TestPOA('csv query over time exceptions')
    +  except Exception as inst:
    +    TestFOA('csv query over time exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +defining_expressions()
    +pick()
    +lineout1()
    +lineout2()
    +query()
    +finding_the_min_and_max()
    +csv_query_over_time()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_saving_images.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_saving_images.html new file mode 100644 index 000000000..99a7a7f2e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_saving_images.html @@ -0,0 +1,52 @@ + +Results for quickrecipes/saving_images.py + +

    Results of VisIt Regression Test - quickrecipes/saving_images

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    setting output image characteristics error message
     "" .eq. "" : True
    setting output image characteristics no exceptions
     "True" .eq. "True" : True
    saving an image error message
     "" .eq. "" : True
    saving an image no exceptions
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_saving_images_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_saving_images_py.html new file mode 100644 index 000000000..328ff0c60 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_saving_images_py.html @@ -0,0 +1,56 @@ +quickrecipes/saving_images.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Mark C. Miller, Fri Aug 26 14:31:48 PDT 2022
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Get some utils shared across many .py files used for quick recipes.
    +#
    +Source(tests_path('quickrecipes','vqr_utils.py.inc'))
    +
    +def setting_output_image_characteristics():
    +
    +  try:
    +    # setting output image characteristics {
    +    # Prepare to save a BMP file at 1024x768 resolution 
    +    s = SaveWindowAttributes()
    +    s.format = s.BMP
    +    s.fileName = 'mybmpfile'
    +    s.width, s.height = 1024,768
    +    s.screenCapture = 0
    +    SetSaveWindowAttributes(s)
    +    # Subsequent calls to SaveWindow() will use these settings
    +    # setting output image characteristics }
    +    TestValueEQ('setting output image characteristics error message',GetLastError(),'')
    +    TestPOA('setting output image characteristics no exceptions')
    +  except Exception as inst:
    +    TestFOA('setting output image characteristics exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def saving_an_image():
    +
    +  try:
    +    # saving an image {
    +    # Save images of all timesteps and add each image filename to a list.
    +    names = []
    +    for state in range(TimeSliderGetNStates()):
    +      SetTimeSliderState(state)
    +      # Save the image
    +      n = SaveWindow()
    +      names = names + [n]
    +    print(names)
    +    # saving an image }
    +    TestValueEQ('saving an image error message',GetLastError(),'')
    +    TestPOA('saving an image no exceptions')
    +  except Exception as inst:
    +    TestFOA('saving an image exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +setting_output_image_characteristics()
    +saving_an_image()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_subsetting.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_subsetting.html new file mode 100644 index 000000000..7b84087ff --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_subsetting.html @@ -0,0 +1,52 @@ + +Results for quickrecipes/subsetting.py + +

    Results of VisIt Regression Test - quickrecipes/subsetting

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    turning off domains error message
     "" .eq. "" : True
    turning off domains exceptions
     "True" .eq. "True" : True
    turning off materials error message
     "" .eq. "" : True
    turning off materials exceptions
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_subsetting_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_subsetting_py.html new file mode 100644 index 000000000..f1945aa2c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_subsetting_py.html @@ -0,0 +1,67 @@ +quickrecipes/subsetting.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Mark C. Miller, Fri Aug 26 14:31:48 PDT 2022
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Get some utils shared across many .py files used for quick recipes.
    +#
    +Source(tests_path('quickrecipes','vqr_utils.py.inc'))
    +
    +def turning_off_domains():
    +
    +  try:
    +    # turning off domains {
    +    OpenDatabase("~juanita/silo/stuff/multi_rect2d.silo")
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    # Turning off every other domain
    +    d = GetDomains()
    +    i = 0
    +    for dom in d:
    +        if i%2:
    +            TurnDomainsOff(dom)
    +        i += 1
    +
    +    # Turn all domains off
    +    TurnDomainsOff()
    +
    +    # Turn on domains 3,5,7
    +    TurnDomainsOn((d[3], d[5], d[7]))
    +
    +    # turning off domains }
    +    TestValueEQ('turning off domains error message',GetLastError(),'')
    +    TestPOA('turning off domains exceptions')
    +  except Exception as inst:
    +    TestFOA('turning off domains exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def turning_off_materials():
    +
    +  try:
    +    # turning off materials {
    +    OpenDatabase("~juanita/silo/stuff/multi_rect2d.silo")
    +    AddPlot("FilledBoundary", "mat1")
    +    DrawPlots()
    +    # Get the material names 
    +    GetMaterials()
    +    # GetMaterials() will return a tuple of material names such as
    +    #     ('1', '2', '3')
    +    # Turn off material with name "2"
    +    TurnMaterialsOff("2")
    +    # turning off materials }
    +    TestValueEQ('turning off materials error message',GetLastError(),'')
    +    TestPOA('turning off materials exceptions')
    +  except Exception as inst:
    +    TestFOA('turning off domains exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +turning_off_domains()
    +turning_off_materials()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_view.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_view.html new file mode 100644 index 000000000..14e751912 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_view.html @@ -0,0 +1,60 @@ + +Results for quickrecipes/view.py + +

    Results of VisIt Regression Test - quickrecipes/view

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    setting the 2d view error message
     "" .eq. "" : True
    setting the 2d view exceptions
     "True" .eq. "True" : True
    setting the 3d view error message
     "" .eq. "" : True
    setting the 3d view exceptions
     "True" .eq. "True" : True
    flying around plots error message
     "" .eq. "" : True
    flying around plots exceptions
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_view_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_view_py.html new file mode 100644 index 000000000..eead8b0c8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_view_py.html @@ -0,0 +1,159 @@ +quickrecipes/view.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Mark C. Miller, Fri Aug 26 14:31:48 PDT 2022
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Get some utils shared across many .py files used for quick recipes.
    +#
    +Source(tests_path('quickrecipes','vqr_utils.py.inc'))
    +
    +def setting_the_2d_view():
    +
    +  try:
    +    # setting the 2d view {
    +    OpenDatabase("~juanita/silo/stuff/noise.silo")
    +    AddPlot("Pseudocolor", "hgslice")
    +    AddPlot("Mesh", "Mesh2D")
    +    AddPlot("Label", "hgslice")
    +    DrawPlots()
    +    print("The current view is:", GetView2D())
    +    # Get an initialized 2D view object.
    +    # Note that DrawPlots() must be executed prior to getting
    +    # the view to ensure current view parameters are obtained
    +    v = GetView2D()
    +    v.windowCoords = (-7.67964, -3.21856, 2.66766, 7.87724)
    +    SetView2D(v)
    +    # setting the 2d view }
    +    TestValueEQ('setting the 2d view error message',GetLastError(),'')
    +    TestPOA('setting the 2d view exceptions')
    +  except Exception as inst:
    +    TestFOA('setting the 2d view exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def setting_the_3d_view():
    +
    +  try:
    +    # setting the 3d view {
    +    OpenDatabase("~juanita/silo/stuff/noise.silo")
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    AddPlot("Mesh", "Mesh")
    +    DrawPlots()
    +    # Note that DrawPlots() must be executed prior to getting
    +    # the view to ensure current view parameters are obtained
    +    v = GetView3D()
    +    print("The view is: ", v)
    +    v.viewNormal = (-0.571619, 0.405393, 0.713378)
    +    v.viewUp = (0.308049, 0.911853, -0.271346)
    +    SetView3D(v)
    +    # setting the 3d view }
    +    TestValueEQ('setting the 3d view error message',GetLastError(),'')
    +    TestPOA('setting the 3d view exceptions')
    +  except Exception as inst:
    +    TestFOA('setting the 3d view exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def flying_around_plots():
    +
    +  try:
    +    # flying around plots {
    +    OpenDatabase("~juanita/silo/stuff/globe.silo")
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +
    +    # Create the control points for the views.
    +    c0 = View3DAttributes()
    +    c0.viewNormal = (0, 0, 1)
    +    c0.focus = (0, 0, 0)
    +    c0.viewUp = (0, 1, 0)
    +    c0.viewAngle = 30
    +    c0.parallelScale = 17.3205
    +    c0.nearPlane = 17.3205
    +    c0.farPlane = 81.9615
    +    c0.perspective = 1
    +
    +    c1 = View3DAttributes()
    +    c1.viewNormal = (-0.499159, 0.475135, 0.724629)
    +    c1.focus = (0, 0, 0)
    +    c1.viewUp = (0.196284, 0.876524, -0.439521)
    +    c1.viewAngle = 30
    +    c1.parallelScale = 14.0932
    +    c1.nearPlane = 15.276
    +    c1.farPlane = 69.917
    +    c1.perspective = 1
    +
    +    c2 = View3DAttributes()
    +    c2.viewNormal = (-0.522881, 0.831168, -0.189092)
    +    c2.focus = (0, 0, 0)
    +    c2.viewUp = (0.783763, 0.556011, 0.27671)
    +    c2.viewAngle = 30
    +    c2.parallelScale = 11.3107
    +    c2.nearPlane = 14.8914
    +    c2.farPlane = 59.5324
    +    c2.perspective = 1
    +
    +    c3 = View3DAttributes()
    +    c3.viewNormal = (-0.438771, 0.523661, -0.730246)
    +    c3.focus = (0, 0, 0)
    +    c3.viewUp = (-0.0199911, 0.80676, 0.590541)
    +    c3.viewAngle = 30
    +    c3.parallelScale = 8.28257
    +    c3.nearPlane = 3.5905
    +    c3.farPlane = 48.2315
    +    c3.perspective = 1
    +
    +    c4 = View3DAttributes()
    +    c4.viewNormal = (0.286142, -0.342802, -0.894768)
    +    c4.focus = (0, 0, 0)
    +    c4.viewUp = (-0.0382056, 0.928989, -0.36813)
    +    c4.viewAngle = 30
    +    c4.parallelScale = 10.4152
    +    c4.nearPlane = 1.5495
    +    c4.farPlane = 56.1905
    +    c4.perspective = 1
    +
    +    c5 = View3DAttributes()
    +    c5.viewNormal = (0.974296, -0.223599, -0.0274086)
    +    c5.focus = (0, 0, 0)
    +    c5.viewUp = (0.222245, 0.97394, -0.0452541)
    +    c5.viewAngle = 30
    +    c5.parallelScale = 1.1052
    +    c5.nearPlane = 24.1248
    +    c5.farPlane = 58.7658
    +    c5.perspective = 1
    +
    +    # Make the last point loop around to the first
    +    c6 = c0
    +
    +    # Create a tuple of camera values and x values. The x values
    +    # determine where in [0,1] the control points occur.
    +    cpts = (c0, c1, c2, c3, c4, c5, c6)
    +    x=[]
    +    for i in range(7):
    +        x = x + [float(i) / float(6.)]
    +
    +    # Animate the view using EvalCubicSpline.
    +    nsteps = 100
    +    for i in range(nsteps):
    +        t = float(i) / float(nsteps - 1)
    +        c = EvalCubicSpline(t, x, cpts)
    +        c.nearPlane = -34.461
    +        c.farPlane = 34.461
    +        SetView3D(c)
    +    # flying around plots }
    +    TestValueEQ('flying around plots error message',GetLastError(),'')
    +    TestPOA('flying around plots exceptions')
    +  except Exception as inst:
    +    TestFOA('flying around plots exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +setting_the_2d_view()
    +setting_the_3d_view()
    +flying_around_plots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_working_with_annotations.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_working_with_annotations.html new file mode 100644 index 000000000..01b188fcd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_working_with_annotations.html @@ -0,0 +1,76 @@ + +Results for quickrecipes/working_with_annotations.py + +

    Results of VisIt Regression Test - quickrecipes/working_with_annotations

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    using gradient background colors error message
     "" .eq. "" : True
    using gradient background colors exceptions
     "True" .eq. "True" : True
    adding a banner error message
     "" .eq. "" : True
    adding a banner exceptions
     "True" .eq. "True" : True
    adding a time slider error message
     "" .eq. "" : True
    adding a time slider exceptions
     "True" .eq. "True" : True
    adding a logo error message
     "" .eq. "" : True
    adding a logo exceptions
     "True" .eq. "True" : True
    modifying a legend error message
     "" .eq. "" : True
    modifying a legend exceptions
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_working_with_annotations_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_working_with_annotations_py.html new file mode 100644 index 000000000..abd29369b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_working_with_annotations_py.html @@ -0,0 +1,195 @@ +quickrecipes/working_with_annotations.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Mark C. Miller, Fri Aug 26 14:31:48 PDT 2022
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Get some utils shared across many .py files used for quick recipes.
    +#
    +Source(tests_path('quickrecipes','vqr_utils.py.inc'))
    +
    +def using_gradient_background_colors():
    +
    +  try:
    +    # using gradient background colors {
    +    # Set a blue/black, radial, gradient background.
    +    a = AnnotationAttributes()
    +    a.backgroundMode = a.Gradient
    +    a.gradientBackgroundStyle = a.Radial
    +    a.gradientColor1 = (0,0,255,255) # Blue
    +    a.gradientColor2 = (0,0,0,255) # Black
    +    SetAnnotationAttributes(a)
    +    # using gradient background colors }
    +    TestValueEQ('using gradient background colors error message',GetLastError(),'')
    +    TestPOA('using gradient background colors exceptions')
    +  except Exception as inst:
    +    TestFOA('using gradient background colors exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def adding_a_banner():
    +
    +  try:
    +    # adding a banner {
    +    # Create a Text2D object to indicate the visualization is unclassified.
    +
    +    # Note the annoation object is added to the viewer window the moment it is created.
    +    banner = CreateAnnotationObject("Text2D")
    +
    +    # Note text is updated in the viewer window the moment it is changed.
    +    banner.text = "Unclassified"
    +
    +    banner.position = (0.37, 0.95)
    +    banner.fontBold = 1
    +
    +    # print the attributes to see what you can set in the Text2D object.
    +    print(banner)
    +    # print(banner) will print something like...
    +    #    visible = 1
    +    #    position = (0.5, 0.5)
    +    #    height = 0.03
    +    #    textColor = (0, 0, 0, 255)
    +    #    useForegroundForTextColor = 1
    +    #    text = "2D text annotation"
    +    #    fontFamily = Arial  # Arial, Courier, Times
    +    #    fontBold = 0
    +    #    fontItalic = 0
    +    #    fontShadow = 0
    +    # adding a banner }
    +    TestValueEQ('adding a banner error message',GetLastError(),'')
    +    TestPOA('adding a banner exceptions')
    +  except Exception as inst:
    +    TestFOA('adding a banner exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def adding_a_time_slider():
    +
    +  try:
    +    # adding a time slider {
    +    # Add a time slider in the lower left corner
    +    slider = CreateAnnotationObject("TimeSlider")
    +
    +    # Adjust the height. Takes effect immediately as the value is assigned.
    +    slider.height = 0.07
    +
    +    # Print members that are available in the time slider object
    +    print(slider)
    +    # will produce something like...
    +    #    visible = 1
    +    #    active = 1
    +    #    position = (0.01, 0.01)
    +    #    width = 0.4
    +    #    height = 0.05
    +    #    textColor = (0, 0, 0, 255)
    +    #    useForegroundForTextColor = 1
    +    #    startColor = (0, 255, 255, 255)
    +    #    endColor = (255, 255, 255, 153)
    +    #    text = "Time=$time"
    +    #    timeFormatString = "%g"
    +    #    timeDisplay = AllFrames  # AllFrames, FramesForPlot, StatesForPlot, UserSpecified
    +    #    percentComplete = 0
    +    #    rounded = 1
    +    #    shaded = 1
    +    # adding a time slider }
    +    TestValueEQ('adding a time slider error message',GetLastError(),'')
    +    TestPOA('adding a time slider exceptions')
    +  except Exception as inst:
    +    TestFOA('adding a time slider exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def adding_a_logo():
    +
    +  try:
    +    # adding a logo {
    +    # Incorporate LLNL logo image (llnl.jpeg) as an annotation
    +    image = CreateAnnotationObject("Image")
    +    image.image = "llnl.jpeg"
    +    image.position = (0.02, 0.02)
    +
    +    # Print the other image annotation options
    +    print(image)
    +    # Will print something like...
    +    #    visible = 1
    +    #    active = 1
    +    #    position = (0, 0)
    +    #    transparencyColor = (0, 0, 0, 255)
    +    #    useTransparencyColor = 0
    +    #    width = 100.000000
    +    #    height = 100.000000
    +    #    maintainAspectRatio = 1
    +    #    image = ("")
    +    # adding a logo }
    +    TestValueEQ('adding a logo error message',GetLastError(),'')
    +    TestPOA('adding a logo exceptions')
    +  except Exception as inst:
    +    TestFOA('adding a logo exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def modifying_a_legend():
    +
    +  try:
    +    # modifying a legend {
    +    # Open a file and make a plot
    +    OpenDatabase("~juanita/silo/stuff/noise.silo")
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +    # Get the legend annotation object for the Pseudocolor plot, the second
    +    # plot in the list (0-indexed).
    +    plotName = GetPlotList().GetPlots(1).plotName
    +    legend = GetAnnotationObject(plotName)
    +    # See if we can scale the legend.
    +    legend.xScale = 3.
    +    legend.yScale = 3.
    +    # the bounding box.
    +    legend.drawBoundingBox = 1
    +    legend.boundingBoxColor = (180,180,180,230)
    +    # Make it horizontal
    +    legend.orientation = legend.HorizontalBottom
    +    # moving the legend
    +    legend.managePosition = 0
    +    legend.position = (0.7,0.15)
    +    # text color
    +    InvertBackgroundColor()
    +    legend.useForegroundForTextColor = 0
    +    legend.textColor = (255, 0, 0, 255)
    +    # number format
    +    legend.numberFormat = "%1.4e"
    +    # the font.
    +    legend.fontFamily = legend.Arial
    +    legend.fontBold = 1
    +    legend.fontItalic = 1
    +    # turning off the labels.
    +    legend.fontItalic = 0
    +    legend.drawLabels = 0
    +    legend.drawMinMax = 0
    +    # turning off the title.
    +    legend.drawTitle = 0
    +    # Use user-supplied labels, rather than numeric values.
    +    legend.controlTicks=0
    +    legend.drawLabels = legend.Labels
    +    # suppliedLabels must be strings, only valid when controlTicks is 0
    +    legend.suppliedLabels=("A", "B", "C", "D", "E")
    +    # Give the legend a custom title
    +    legend.useCustomTitle=1
    +    legend.customTitle="my custom title"
    +    # modifying a legend }
    +    TestValueEQ('modifying a legend error message',GetLastError(),'')
    +    TestPOA('modifying a legend exceptions')
    +  except Exception as inst:
    +    TestFOA('modifying a legend exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +using_gradient_background_colors()
    +adding_a_banner()
    +adding_a_time_slider()
    +adding_a_logo()
    +modifying_a_legend()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_working_with_dbs.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_working_with_dbs.html new file mode 100644 index 000000000..30e7d96b6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_working_with_dbs.html @@ -0,0 +1,68 @@ + +Results for quickrecipes/working_with_dbs.py + +

    Results of VisIt Regression Test - quickrecipes/working_with_dbs

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    opening a database error message
     "" .eq. "" : True
    opening a database no exceptions
     "True" .eq. "True" : True
    opening a database at specific time error message
     "" .eq. "" : True
    opening a database at specific time no exceptions
     "True" .eq. "True" : True
    opening a virtual database error message
     "" .eq. "" : True
    opening a virtual database no exceptions
     "True" .eq. "True" : True
    opening a remote database error message
     "" .eq. "" : True
    opening a remote database no exceptions
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_working_with_dbs_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_working_with_dbs_py.html new file mode 100644 index 000000000..69ddc4a99 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_working_with_dbs_py.html @@ -0,0 +1,78 @@ +quickrecipes/working_with_dbs.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Mark C. Miller, Fri Aug 26 14:31:48 PDT 2022
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Get some utils shared across many .py files used for quick recipes.
    +#
    +Source(tests_path('quickrecipes','vqr_utils.py.inc'))
    +
    +def opening_a_database():
    +
    +  try:
    +    # opening a database {
    +    # Open a database (no time specified defaults to time state 0)
    +    OpenDatabase("/Users/amina/data/pdb_test_data/allinone00.pdb")
    +    # opening a database }
    +    TestValueEQ('opening a database error message',GetLastError(),'')
    +    TestPOA('opening a database no exceptions')
    +  except Exception as inst:
    +    TestFOA('opening a database exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def opening_a_database_at_specific_time():
    +
    +  try:
    +    # opening a database at specific time {
    +    # Open a database at a specific time state to pick up transient variables
    +    OpenDatabase("/Users/amina/data/pdb_test_data/allinone00.pdb", 17)
    +    # opening a database at specific time }
    +    TestValueEQ('opening a database at specific time error message',GetLastError(),'')
    +    TestPOA('opening a database at specific time no exceptions')
    +  except Exception as inst:
    +    TestFOA('opening a database at specific time exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def opening_a_virtual_database():
    +
    +  try:
    +    # opening a virtual database {
    +    # Opening just one file, the first, in series wave0000.silo, wave0010.silo, ...
    +    OpenDatabase("~juanita/silo/stuff/wave0000.silo")
    +
    +    # Opening a virtual database representing all available states.
    +    OpenDatabase("~juanita/silo/stuff/wave*.silo database")
    +    # opening a virtual database }
    +    TestValueEQ('opening a virtual database error message',GetLastError(),'')
    +    TestPOA('opening a virtual database no exceptions')
    +  except Exception as inst:
    +    TestFOA('opening a virtual database exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def opening_a_remote_database():
    +
    +  try:
    +    # opening a remote database {
    +    # Opening a file on a remote computer by giving a host name
    +    # Also, open the database to a later time slice (17)
    +    OpenDatabase("thunder:~juanita/silo/stuff/wave.visit", 17)
    +    # opening a remote database }
    +    TestValueEQ('opening a remote database error message',GetLastError(),'')
    +    TestPOA('opening a remote database no exceptions')
    +  except Exception as inst:
    +    TestFOA('opening a remote database exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +opening_a_database()
    +opening_a_database_at_specific_time()
    +opening_a_virtual_database()
    +opening_a_remote_database()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_working_with_plots.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_working_with_plots.html new file mode 100644 index 000000000..49cc6a071 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_working_with_plots.html @@ -0,0 +1,76 @@ + +Results for quickrecipes/working_with_plots.py + +

    Results of VisIt Regression Test - quickrecipes/working_with_plots

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    creating a plot error message
     "" .eq. "" : True
    creating a plot exceptions
     "True" .eq. "True" : True
    plotting materials error message
     "" .eq. "" : True
    plotting materials exceptions
     "True" .eq. "True" : True
    setting plot attributes message
     "" .eq. "" : True
    setting plot attributes exceptions
     "True" .eq. "True" : True
    working with multiple plots error message
     "" .eq. "" : True
    working with multiple plots exceptions
     "True" .eq. "True" : True
    plots in the error state error message
     "" .eq. "" : True
    plots in the error state exceptions
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_working_with_plots_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_working_with_plots_py.html new file mode 100644 index 000000000..fc0e2bd15 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/quickrecipes_working_with_plots_py.html @@ -0,0 +1,196 @@ +quickrecipes/working_with_plots.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Mark C. Miller, Fri Aug 26 14:31:48 PDT 2022
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Get some utils shared across many .py files used for quick recipes.
    +#
    +Source(tests_path('quickrecipes','vqr_utils.py.inc'))
    +
    +def creating_a_plot():
    +
    +  OpenDatabase(silo_data_path("wave.visit"))
    +  try:
    +    # creating a plot {
    +    # Names of all available plot plugins as a python tuple
    +    x = PlotPlugins()
    +
    +    # print(x) will produce something like...
    +    #     ('Boundary', 'Contour', 'Curve', 'FilledBoundary', 'Histogram',
    +    #     'Label', 'Mesh', 'Molecule', 'MultiCurve', 'ParallelCoordinates',
    +    #     'Pseudocolor', 'Scatter', 'Spreadsheet', 'Subset', 'Tensor',
    +    #     'Truecolor', 'Vector', 'Volume')
    +    print(x)
    +
    +    # Create plots with AddPlot(<plot-plugin-name>,<database-variable-name>)
    +    AddPlot("Pseudocolor", "pressure")
    +    AddPlot("Mesh", "quadmesh")
    +
    +    # Draw the plots
    +    DrawPlots()
    +    # creating a plot }
    +    TestValueEQ('creating a plot error message',GetLastError(),'')
    +    TestPOA('creating a plot exceptions')
    +  except Exception as inst:
    +    TestFOA('creating a plot exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def plotting_materials():
    +
    +  OpenDatabase(silo_data_path("globe.silo"))
    +  try:
    +    # plotting materials {
    +    # Plot material boundaries
    +    AddPlot("Boundary", "mat1")
    +    # Plot materials
    +    AddPlot("FilledBoundary", "mat1")
    +    # plotting materials }
    +    TestValueEQ('plotting materials error message',GetLastError(),'')
    +    TestPOA('plotting materials exceptions')
    +  except Exception as inst:
    +    TestFOA('plotting materials exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def setting_plot_attributes():
    +
    +  OpenDatabase(silo_data_path("wave.visit"))
    +  try:
    +    # setting plot attributes {
    +    # Creating a Pseudocolor plot and setting min/max values.
    +    AddPlot("Pseudocolor", "pressure")
    +    p = PseudocolorAttributes()
    +
    +    # print p to find the names of members you want to change
    +    #
    +    # print(p) will produce output somewhat like...
    +    #     scaling = Linear  # Linear, Log, Skew
    +    #     skewFactor = 1
    +    #     limitsMode = OriginalData  # OriginalData, ActualData
    +    #     minFlag = 0
    +    #     min = 0
    +    #     useBelowMinColor = 0
    +    #     belowMinColor = (0, 0, 0, 255)
    +    #     maxFlag = 0
    +    #     max = 1
    +    #     .
    +    #     .
    +    #     .
    +    print(p)
    +
    +    # Set the min/max values
    +    p.min, p.minFlag = 0.0, 1
    +    p.max, p.maxFlag = 10.0, 1
    +    SetPlotOptions(p)
    +    # setting plot attributes }
    +    TestValueEQ('setting plot attributes message',GetLastError(),'')
    +    TestPOA('setting plot attributes exceptions')
    +  except Exception as inst:
    +    TestFOA('setting plot attributes exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def working_with_multiple_plots():
    +
    +  OpenDatabase(silo_data_path("tire.silo"))
    +  try:
    +    # working with multiple plots {
    +
    +    # Create more than 1 plot of the same type
    +    AddPlot("Pseudocolor", "pressure")
    +    AddPlot("Pseudocolor", "temperature")
    +
    +    # List the plots. The second plot should be active.
    +    ListPlots()
    +
    +    # The output from ListPlots() will look something like...
    +    #     Plot[0]|id=5;type="Pseudocolor";database="localhost:/Users/miller86/visit/visit/data/silo_hdf5_test_data/tire.silo";
    +    #         var=pressure;active=0;hidden=0;framerange=(0, 0);keyframes={0};database keyframes={0};operators={};
    +    #         activeOperator=-1
    +    #     Plot[1]|id=6;type="Pseudocolor";database="localhost:/Users/miller86/visit/visit/data/silo_hdf5_test_data/tire.silo";
    +    #         var=temperature;active=1;hidden=0;framerange=(0, 0);keyframes={0};database keyframes={0};operators={};
    +    #         activeOperator=-1
    +    # Note that active=1 for Plot[1] meaning plot #1 is the active plot
    +
    +    # Draw the plots
    +    DrawPlots()
    +
    +    # Hide the first plot
    +    SetActivePlots(0) # makes plot 0 the active plot
    +    HideActivePlots()
    +
    +    # Set both plots' color table to "hot"
    +    p = PseudocolorAttributes()
    +    p.colorTableName = "hot"
    +    SetActivePlots((0,1)) # makes both plots active
    +    SetPlotOptions(p)
    +
    +    # Show the first plot again.
    +    SetActivePlots(0)
    +    HideActivePlots()
    +
    +    # Delete the second plot
    +    SetActivePlots(1)
    +    DeleteActivePlots()
    +    ListPlots()
    +
    +    # working with multiple plots }
    +    TestValueEQ('working with multiple plots error message',GetLastError(),'')
    +    TestPOA('working with multiple plots exceptions')
    +  except Exception as inst:
    +    TestFOA('working with multiple plots exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +  CloseDatabase(silo_data_path("tire.silo"))
    +
    +def plots_in_the_error_state():
    +
    +  try:
    +    # plots in the error state {
    +
    +    # Open the database at state 20 and add plots for "pressure" and "transient".
    +    # "transient" variable exists only in states 18...51.
    +    OpenDatabase(silo_data_path("wave.visit"),20)
    +    AddPlot("Pseudocolor","pressure")
    +    AddPlot("Pseudocolor","transient")
    +    DrawPlots()
    +
    +    # Start saving images from every 10th state starting at state 20 
    +    # but take care to clean up when we get an error.
    +    for state in range(20,TimeSliderGetNStates(),10):
    +
    +        TimeSliderSetState(state)
    +
    +        if DrawPlots() == 0:
    +
    +            # Find plot(s) in error state and remove them
    +            pl = GetPlotList()
    +            for i in range(pl.GetNumPlots()):
    +                if pl.GetPlots(i).stateType == pl.GetPlots(i).Error:
    +                    SetActivePlots((i,))
    +                    DeleteActivePlots()
    +
    +            # Clear the last error message
    +            GetLastError(1)
    +
    +        SaveWindow()
    +
    +    # plots in the error state }
    +    TestValueEQ('plots in the error state error message',GetLastError(),'')
    +    TestPOA('plots in the error state exceptions')
    +  except Exception as inst:
    +    TestFOA('plots in the error state exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +creating_a_plot()
    +plotting_materials()
    +setting_plot_attributes()
    +working_with_multiple_plots()
    +plots_in_the_error_state()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_annot_macros.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_annot_macros.html new file mode 100644 index 000000000..5c59ac9ee --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_annot_macros.html @@ -0,0 +1,301 @@ + +Results for rendering/annot_macros.py + +

    Results of VisIt Regression Test - rendering/annot_macros

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    All non-empty macros in all text modes
    annot_macros_allmacros_00.000.00
    annot_macros_allmacros_10.000.00
    annot_macros_allmacros_20.000.00
    annot_macros_allmacros_30.000.00
    annot_macros_allmacros_40.000.00
    annot_macros_allmacros_50.000.00
    annot_macros_allmacros_60.000.00
    annot_macros_allmacros_70.000.00
    annot_macros_allmacros_80.000.00
    annot_macros_allmacros_90.000.00
    annot_macros_allmacros_100.000.00
    annot_macros_allmacros_110.000.00
    annot_macros_allmacros_120.000.00
    annot_macros_allmacros_130.000.00
    annot_macros_allmacros_140.000.00
    annot_macros_allmacros_150.000.00
    Multiple macros in same annotation
    annot_macros_multimacro_00.000.00
    annot_macros_multimacro_10.000.00
    annot_macros_multimacro_20.000.00
    Printf formatting of $macro%fmt$
    annot_macros_printf_00.000.00
    annot_macros_printf_10.000.00
    annot_macros_printf_20.000.00
    annot_macros_printf_30.000.00
    annot_macros_printf_40.000.00
    annot_macros_printf_50.000.00
    annot_macros_printf_60.000.00
    annot_macros_printf_70.000.00
    annot_macros_printf_80.000.00
    annot_macros_printf_90.000.00
    annot_macros_printf_100.000.00
    Text annotation file (tafile) macros
    annot_macros_tafile_00.000.00
    annot_macros_tafile_10.000.00
    annot_macros_tafile_20.330.00
    annot_macros_tafile_30.000.00
    annot_macros_tafile_40.000.00
    annot_macros_tafile_50.000.00
    annot_macros_tafile_60.330.00
    annot_macros_tafile_70.000.00
    Timeslider printf format handling
    annot_macros_tsprintf_00.000.00
    annot_macros_tsprintf_10.000.00
    annot_macros_tsprintf_20.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_annot_macros_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_annot_macros_py.html new file mode 100644 index 000000000..1be39f76d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_annot_macros_py.html @@ -0,0 +1,219 @@ +rendering/annot_macros.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  annot_macros.py
    +#
    +#  Tests:      mesh        - 2D curvilinear, single domain
    +#              plots       - Pseudocolor
    +#              annotations - Text2D
    +#
    +#  Defect ID:  None
    +#
    +#  Mark C. Miller, Thu Nov  7 14:17:54 PST 2024
    +# ----------------------------------------------------------------------------
    +import os
    +
    +def create_text2d_annot():
    +    text = CreateAnnotationObject("Text2D")
    +    text.height = 0.03
    +    text.position = (0.10, 0.75)
    +    return text
    +
    +def allmacros():
    +    """All non-empty macros in all text modes"""
    +
    +    #
    +    # Loop through through all macros rendering with default format
    +    # both as 2D text and as 3D text. We skip "lod", "xunits", "yunits",
    +    # "zunits" and "varunits" because the input database has no values
    +    # specified for these.
    +    #
    +    macroNames = ("time", "cycle", "index", "numstates", "dbcomment",
    +        "vardim", "numvar", "topodim", "spatialdim", "varname",
    +        "meshname", "filename", "fulldbname", "xlabel", "ylabel", "zlabel")
    +
    +    text2d = create_text2d_annot()
    +    text3d = CreateAnnotationObject("Text3D")
    +    text3d.heightMode = text3d.Relative
    +    text3d.relativeHeight = 0.03
    +    text3d.position=(2.0, 1.0, 7.0)
    +    textts = CreateAnnotationObject("TimeSlider")
    +    textts.height = 0.15
    +    textts.position = (0.05, 0.1)
    +    for mtext in macroNames:
    +        text2d.text = "%s $%s"%(mtext, mtext)
    +        text3d.text = "%s $%s"%(mtext, mtext)
    +        textts.text = "%s $%s"%(mtext, mtext)
    +        TestAutoName()
    +    text2d.Delete()
    +    text3d.Delete()
    +    textts.Delete()
    +
    +def multimacro():
    +    """Multiple macros in same annotation"""
    +
    +    text = create_text2d_annot()
    +    text.text = "State $index of $numstates"
    +    TestAutoName()
    +    text.text = "Time,Cycle,Index=($time,$cycle,$index)"
    +    TestAutoName()
    +    text.text = "Cycle,Cycle,Cycle=($cycle,$cycle,$cycle)"
    +    TestAutoName()
    +    text.Delete()
    +
    +def printf():
    +    """Printf formatting of $macro%fmt$"""
    +
    +    text = create_text2d_annot()
    +    # Print index/state always with 4 digits and leading zeros
    +    text.text = "State $index%04d$ of $numstates%06d$"
    +    TestAutoName()
    +    # Print index in hexadecimal format
    +    text.text = "Index=0X$index%X$"
    +    TestAutoName()
    +    # Print time with 12 width and 6 after decimal pt.
    +    text.text = "Time=$time%12.6f$"
    +    TestAutoName()
    +    # Print time with 20 width, leading sign, 10 after decimal pt.
    +    text.text = "Time=$time%+20.10f$"
    +    TestAutoName()
    +    # Print time with 10 char width, 6 precision, exponential format.
    +    text.text = "Time=$time%+10.6e$"
    +    TestAutoName()
    +    # Print time with %A (hex) to see full precision of actual value
    +    text.text = "Time=$time ($time%A$)"
    +    TestAutoName()
    +    # Print first 3 chars of meshname
    +    text.text = "First 3 chars meshname='$meshname%.3s$'"
    +    TestAutoName()
    +    # Print first 3 chars of meshname
    +    text.text = "Left justified in 6 chars meshname='$meshname%-6.6s$'"
    +    TestAutoName()
    +    # Handling % and $ chars in string
    +    text.text = "State $index%02d$ of $numstates%02d$ = " + "%2d%%"%(100*float(13)/float(TimeSliderGetNStates()))
    +    TestAutoName()
    +    text.text = "State $index is 18.3% into $numstates"
    +    TestAutoName()
    +    text.text = "$cycle $US, $cycle$US"
    +    TestAutoName()
    +    text.Delete()
    +
    +def tafile():
    +    """Text annotation file (tafile) macros"""
    +
    +    #
    +    # Create lists of 71 float values for "ftafile1.txt" and string values 
    +    # for "stafile1.txt" starting at 0.
    +    #
    +    fvals = [] # float values
    +    svals = [] # string values
    +    for i in range(71):
    +        fvals.append(i if i%2==0 else -i)
    +        svals.append("VisIt_%03d"%i)
    +    fvals[13] = -13.333678
    +
    +    try:
    +        #
    +        # Write the two lists to their repsective tafile files.
    +        # Note this is relying up on the tafile being peer to database file
    +        # method to locate these files. The other options are via ~/.visit
    +        # and via TMP both of which involve different paths for py code
    +        # on Windows and so are less attractive. This is inside a try...finally
    +        # block to ensure the created files are then later removed from
    +        # the silo data dir where they are created.
    +        #
    +        with open(silo_data_path("stafile1.txt"), 'w') as file1, \
    +             open(silo_data_path("ftafile1.txt"), 'w') as file2:
    +             for val1, val2 in zip(svals, fvals):
    +                 file1.write(val1 + "\n")
    +                 file2.write(f"{val2:.8f}" + "\n")
    +
    +        # Ok, now produce annotation text using $stafile1 and $ftafile1.
    +        # Move around in time steps a bit also.
    +        #
    +        # There are a couple of test results here where the plot can vary
    +        # slightly from run to run. We deal with that by allowing for a 
    +        # very minor pixdiff (1/2 of a percent) threshold.
    +        #
    +        text = create_text2d_annot()
    +        text.text = "stafile=$stafile1, ftafile=$ftafile1"
    +        TestAutoName()
    +        TimeSliderNextState()
    +        TestAutoName()
    +        TimeSliderNextState()
    +        TestAutoName(pixdiff=0.5)
    +        TimeSliderSetState(5)
    +        TestAutoName()
    +        TimeSliderSetState(13)
    +
    +        #
    +        # tafiles macros combined with printf formats
    +        #
    +        text.text = "stafile=$stafile1%.3s$, ftafile=$ftafile1%8.3f$"
    +        TestAutoName()
    +        TimeSliderNextState()
    +        TestAutoName()
    +        TimeSliderNextState()
    +        TestAutoName(pixdiff=0.5)
    +        TimeSliderSetState(5)
    +        TestAutoName()
    +        text.Delete()
    +        TimeSliderSetState(13)
    +
    +    finally:
    +        os.remove(silo_data_path("stafile1.txt"))
    +        os.remove(silo_data_path("ftafile1.txt"))
    +
    +def tsprintf():
    +    """Timeslider printf format handling"""
    +
    +    text = CreateAnnotationObject("TimeSlider")
    +    text.height = 0.15
    +    text.position = (0.05, 0.1)
    +    text.timeFormatString = "%0.4f"
    +    TestAutoName()
    +    text.timeFormatString = ""
    +    text.text="Time=$time%-10.6E$"
    +    TestAutoName()
    +    text.text="Time=$time"
    +    text.timeFormatString = "%A"
    +    TestAutoName()
    +
    +def init():
    +    """Initialization for all tests"""
    +
    +    # Set up the annotation colors, etc.
    +    a = GetAnnotationAttributes()
    +    a.backgroundColor = (80, 0, 100, 255)
    +    a.foregroundColor = (255, 255, 255, 255)
    +    a.backgroundMode = a.Solid
    +    SetAnnotationAttributes(a)
    +
    +    #
    +    # Open up the one and only database to be used for all these
    +    # tests, add a plot set time step to something in the middle,
    +    # index=13
    +    #
    +    OpenDatabase(silo_data_path("wave.visit"))
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    TimeSliderSetState(13)
    +
    +def finalize():
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("wave.visit"))
    +
    +def main():
    +
    +    init()
    +    allmacros()
    +    multimacro()
    +    printf()
    +    tafile()
    +    tsprintf()
    +    finalize()
    +
    +main()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_annotation.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_annotation.html new file mode 100644 index 000000000..d0a9f7df5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_annotation.html @@ -0,0 +1,294 @@ + +Results for rendering/annotation.py + +

    Results of VisIt Regression Test - rendering/annotation

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    annot_010.000.00
    annot_020.000.00
    annot_030.000.00
    annot_040.000.00
    annot_050.000.00
    annot2d_010.000.00
    annot2d_020.000.00
    annot2d_030.000.00
    annot2d_040.000.00
    annot2d_050.000.00
    annot2d_060.000.00
    annot2d_070.000.00
    annot2d_080.000.00
    annot2d_090.000.00
    annot2d_100.000.00
    annot2d_110.000.00
    annot2d_120.000.00
    annot2d_130.000.00
    annot2d_140.000.00
    annot2d_150.000.00
    annot2d_160.000.00
    annot2d_170.000.00
    annot2d_180.000.00
    annot2d_190.000.00
    annot2d_200.000.00
    annot2d_210.000.00
    annot2d_220.000.00
    annot2d_230.000.00
    annot2d_240.000.00
    annot2d_250.000.00
    annot2d_260.000.00
    annot2d_270.000.00
    annot3d_010.000.00
    annot3d_020.000.00
    annot3d_030.000.00
    annot3d_040.000.00
    annot3d_050.000.00
    annot3d_060.000.00
    annot3d_070.000.00
    annot3d_080.000.00
    annot3d_090.000.00
    annot3d_100.000.00
    annot3d_110.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_annotation_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_annotation_py.html new file mode 100644 index 000000000..87abb42e8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_annotation_py.html @@ -0,0 +1,469 @@ +rendering/annotation.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  annotation.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - pc, subset
    +#              operators - none
    +#              selection - none
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Mon Jun 3 13:25:18 PST 2002
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Jul 18 10:33:07 PDT 2002
    +#    Added test for combinations of ticks/labels/gridlines to ensure
    +#    that they all play together nicely.  Removed test of userInfo, as it will
    +#    always have a different timestamp than the baseline image.
    +#
    +#    Kathleen Bonnell, Thu Sep  5 10:55:47 PDT 2002 
    +#    Changed the variable format for SubsetPlots, to reflect new interface
    +#    which allows subsets of groups. 
    +#
    +#    Eric Brugger, Mon Nov 11 14:09:08 PST 2002
    +#    Changed the test suite extensively since the 2d annotations were
    +#    enhanced significantly and the 3d annotation field names were changed
    +#    to match.
    +#
    +#    Hank Childs, Tue Nov 19 15:45:12 PST 2002
    +#    Changed Aslice to Slice to account for interface change in slicing.
    +#
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from Subset plots.
    +#
    +#    Eric Brugger, Tue Nov 25 15:12:15 PST 2003
    +#    Added tests for axis labeling with narrow 2d windows.
    +#
    +#    Kathleen Bonnell, Wed May  5 08:11:53 PDT 2004
    +#    Modified slice atts to get same picture since defaults have changed. 
    +#
    +#    Kathleen Bonnell, Mon Sep 14 15:01:25 PDT 2009
    +#    Removed deprecated annotation settings.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Wed Jan  8 13:39:46 PST 2014
    +#    Added 2d tests 26 & 27, gridlines with a different saved window size.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +#    Alister Maguire, Mon Mar  5 14:10:23 PST 2018
    +#    Added a test for manipulating the triad attributes. 
    +#
    +#    Alister Maguire, Fri Mar  9 10:21:50 PST 2018
    +#    Now using a 'set manually' flag for the triad attribtues. 
    +# 
    +#    Justin Privitera, Wed Oct  9 14:47:05 PDT 2024
    +#    Changed triadlinewidth to 2 from 3 to avoid rebaselining.
    +#    The triad line width is now an int not a float and 0 corresponds to 
    +#    line width 1, so all the values have been shifted up.
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Slice")
    +slice = SliceAttributes()
    +slice.project2d = 1
    +slice.SetAxisType(slice.XAxis)
    +slice.SetFlip(1)
    +SetOperatorOptions(slice)
    +DrawPlots()
    +
    +# Test gradient backgrounds
    +a = GetAnnotationAttributes()
    +a.gradientColor1 = (0, 255, 255)
    +a.gradientColor2 = (0, 0, 255)
    +a.gradientBackgroundStyle = 0 # TopToBottom
    +a.backgroundMode = 1 # Gradient
    +SetAnnotationAttributes(a)
    +Test("annot_01")
    +a.gradientBackgroundStyle = 4 # Radial
    +SetAnnotationAttributes(a)
    +Test("annot_02")
    +
    +# Test setting background/foreground colors
    +a.backgroundColor = (0, 0, 0)
    +a.foregroundColor = (255, 255, 255)
    +a.backgroundMode = 0 # Solid
    +SetAnnotationAttributes(a)
    +Test("annot_03")
    +
    +# Turn off the database
    +a.databaseInfoFlag = 0
    +SetAnnotationAttributes(a)
    +Test("annot_04")
    +
    +a.databaseInfoFlag = 1
    +
    +# Turn off the legend
    +a.legendInfoFlag = 0
    +SetAnnotationAttributes(a)
    +Test("annot_05")
    +
    +a.legendInfoFlag = 1
    +
    +##
    +## Test 2D options
    +##
    +
    +# Turn off the 2D axes
    +a.axes2D.visible = 0
    +SetAnnotationAttributes(a)
    +Test("annot2d_01")
    +
    +a.axes2D.visible = 1
    +
    +# Test 2D axis labels
    +a.axes2D.xAxis.label.visible = 0
    +a.axes2D.yAxis.label.visible = 0
    +SetAnnotationAttributes(a)
    +Test("annot2d_02")
    +
    +a.axes2D.xAxis.label.visible = 1
    +a.axes2D.yAxis.label.visible = 0
    +SetAnnotationAttributes(a)
    +Test("annot2d_03")
    +
    +a.axes2D.xAxis.label.visible = 0
    +a.axes2D.yAxis.label.visible = 1
    +SetAnnotationAttributes(a)
    +Test("annot2d_04")
    +
    +a.axes2D.xAxis.label.visible = 1
    +a.axes2D.yAxis.label.visible = 1
    +
    +# Test 2D axis titles
    +a.axes2D.xAxis.title.visible = 0
    +a.axes2D.yAxis.title.visible = 0
    +SetAnnotationAttributes(a)
    +Test("annot2d_05")
    +
    +a.axes2D.xAxis.title.visible = 1
    +a.axes2D.yAxis.title.visible = 0
    +SetAnnotationAttributes(a)
    +Test("annot2d_06")
    +
    +a.axes2D.xAxis.title.visible = 0
    +a.axes2D.yAxis.title.visible = 1
    +SetAnnotationAttributes(a)
    +Test("annot2d_07")
    +
    +a.axes2D.xAxis.title.visible = 1
    +a.axes2D.yAxis.title.visible = 1
    +
    +# Test 2D gridlines
    +a.axes2D.xAxis.grid = 1
    +a.axes2D.yAxis.grid = 0
    +SetAnnotationAttributes(a)
    +Test("annot2d_08")
    +
    +a.axes2D.xAxis.grid = 0
    +a.axes2D.yAxis.grid = 1
    +SetAnnotationAttributes(a)
    +Test("annot2d_09")
    +
    +a.axes2D.xAxis.grid = 1
    +a.axes2D.yAxis.grid = 1
    +SetAnnotationAttributes(a)
    +Test("annot2d_10")
    +
    +a.axes2D.xAxis.grid = 0
    +a.axes2D.yAxis.grid = 0
    +
    +# Test auto set ticks off
    +a.axes2D.autoSetTicks = 0
    +a.axes2D.xAxis.tickMarks.majorMinimum = -8.
    +a.axes2D.xAxis.tickMarks.majorMaximum = 8.
    +a.axes2D.xAxis.tickMarks.majorSpacing = 4.
    +a.axes2D.xAxis.tickMarks.minorSpacing = 1.
    +a.axes2D.yAxis.tickMarks.majorMinimum = -9.
    +a.axes2D.yAxis.tickMarks.majorMaximum = 9.
    +a.axes2D.yAxis.tickMarks.majorSpacing = 3.
    +a.axes2D.yAxis.tickMarks.minorSpacing = 1.
    +a.axes2D.tickAxes = a.axes2D.All  # All
    +a.axes2D.xAxis.grid = 1
    +a.axes2D.yAxis.grid = 1
    +SetAnnotationAttributes(a)
    +Test("annot2d_11")
    +
    +a.axes2D.autoSetTicks = 1
    +a.axes2D.tickAxes = a.axes2D.BottomLeft # BottomLeft
    +a.axes2D.xAxis.grid = 0
    +a.axes2D.yAxis.grid = 0
    +
    +# Test tick locations
    +a.axes2D.tickLocation = a.axes2D.Inside # Inside
    +SetAnnotationAttributes(a)
    +Test("annot2d_12")
    +
    +a.axes2D.tickLocation = a.axes2D.Both # Both
    +SetAnnotationAttributes(a)
    +Test("annot2d_13")
    +
    +a.axes2D.tickLocation = 1 # Outside
    +
    +# Test font sizes
    +a.axes2D.xAxis.label.font.scale = 1.5
    +a.axes2D.yAxis.label.font.scale = 1.5
    +a.axes2D.xAxis.title.font.scale = 1.5
    +a.axes2D.yAxis.title.font.scale = 1.5
    +SetAnnotationAttributes(a)
    +Test("annot2d_14")
    +
    +a.axes2D.xAxis.label.font.scale = 2
    +a.axes2D.yAxis.label.font.scale = 2
    +a.axes2D.xAxis.title.font.scale = 2
    +a.axes2D.yAxis.title.font.scale = 2
    +SetAnnotationAttributes(a)
    +Test("annot2d_15")
    +
    +a.axes2D.xAxis.label.font.scale = 1
    +a.axes2D.yAxis.label.font.scale = 1
    +a.axes2D.xAxis.title.font.scale = 1
    +a.axes2D.yAxis.title.font.scale = 1
    +
    +# Test labeling locations
    +a.axes2D.tickAxes = a.axes2D.Off
    +SetAnnotationAttributes(a)
    +Test("annot2d_16")
    +
    +a.axes2D.tickAxes = a.axes2D.Bottom
    +SetAnnotationAttributes(a)
    +Test("annot2d_17")
    +
    +a.axes2D.tickAxes = a.axes2D.Left
    +SetAnnotationAttributes(a)
    +Test("annot2d_18")
    +
    +a.axes2D.tickAxes = a.axes2D.All
    +SetAnnotationAttributes(a)
    +Test("annot2d_19")
    +
    +a.axes2D.tickAxes = a.axes2D.BottomLeft
    +
    +# Test how the 2D flags play together
    +# Especially with gridlines on.  Changing
    +# databases so can also test that gridline
    +# length is correct in each direction.
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +ResetView()
    +
    +# Turn on y axis labels, x grid lines
    +# and turn off ticks.
    +a.axes2D.xAxis.label.visible = 0
    +a.axes2D.yAxis.label.visible = 1
    +a.axes2D.xAxis.grid = 1
    +a.axes2D.yAxis.grid = 0
    +a.axes2D.tickAxes = a.axes2D.Off
    +SetAnnotationAttributes(a)
    +Test("annot2d_20")
    +
    +# Turn on y axis labels, bottom ticks marks,
    +# and x and y gridlines 
    +a.axes2D.xAxis.grid = 1
    +a.axes2D.yAxis.grid = 1
    +a.axes2D.tickAxes = a.axes2D.Bottom
    +a.axes2D.tickLocation = a.axes2D.Outside
    +a.axes2D.xAxis.label.visible = 0
    +a.axes2D.yAxis.label.visible = 1
    +SetAnnotationAttributes(a)
    +Test("annot2d_21")
    +
    +# Test how the gridlines work by themselves 
    +# Turn off labels and ticks, 
    +a.axes2D.tickAxes = a.axes2D.Off
    +a.axes2D.xAxis.label.visible = 0
    +a.axes2D.yAxis.label.visible = 0
    +SetAnnotationAttributes(a)
    +Test("annot2d_22")
    +
    +# Test the 2d axes line width.
    +a.axes2D.tickAxes = a.axes2D.BottomLeft
    +a.axes2D.tickLocation = a.axes2D.Outside
    +a.axes2D.lineWidth = 2
    +SetAnnotationAttributes(a)
    +Test("annot2d_23")
    +
    +# Test axis labeling with a narrow window.
    +a.axes2D.xAxis.label.visible = 1
    +a.axes2D.yAxis.label.visible = 1
    +a.axes2D.xAxis.grid = 0
    +a.axes2D.yAxis.grid = 0
    +a.axes2D.lineWidth = 0
    +SetAnnotationAttributes(a)
    +
    +v = View2DAttributes()
    +v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +v.windowCoords = (-4.68395, 4.89802, 2.5, 2.5001)
    +SetView2D(v)
    +Test("annot2d_24")
    +
    +v.windowCoords = (0., 0.0001, 0.216897, 4.925)
    +SetView2D(v)
    +Test("annot2d_25")
    +
    +##
    +## Gridlines with a changed window size (#1676)
    +##
    +ResetView()
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_rect2d.silo"))
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +a.axes2D.xAxis.grid = 1
    +a.axes2D.yAxis.grid = 1
    +SetAnnotationAttributes(a)
    +Test("annot2d_26")
    +swa_orig = SaveWindowAttributes()
    +swa = SaveWindowAttributes()
    +swa.height = 800
    +swa.width = 600
    +swa.resConstraint = swa.NoConstraint
    +Test("annot2d_27", swa)
    +
    +##
    +## Test 3D options
    +##
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("FilledBoundary", "mat1")
    +DrawPlots()
    +v = View3DAttributes()
    +v.viewNormal = (-0.527602, 0.329431, 0.783014)
    +v.focus = (0, 0, 0)
    +v.viewUp = (0.115312, 0.940986, -0.318195)
    +v.viewAngle = 30
    +v.parallelScale = 17.3205
    +v.nearPlane = -34.641
    +v.farPlane = 34.641
    +v.perspective = 1
    +SetView3D(v)
    +
    +# Turn off the triad.
    +a.axes3D.visible = 1
    +a.axes3D.bboxFlag = 1
    +a.axes3D.triadFlag = 0
    +SetAnnotationAttributes(a)
    +Test("annot3d_01")
    +
    +# Turn off the bounding box
    +a.axes3D.triadFlag = 1
    +a.axes3D.bboxFlag = 0
    +SetAnnotationAttributes(a)
    +Test("annot3d_02")
    +
    +# Turn some axes off
    +a.axes3D.bboxFlag = 1
    +a.axes3D.xAxis.label.visible = 0
    +a.axes3D.yAxis.label.visible = 1
    +a.axes3D.zAxis.label.visible = 0
    +a.axes3D.xAxis.tickMarks.visible = 0
    +a.axes3D.yAxis.tickMarks.visible = 1
    +a.axes3D.zAxis.tickMarks.visible = 0
    +SetAnnotationAttributes(a)
    +Test("annot3d_03")
    +
    +# Turn on all gridlines
    +a.axes3D.xAxis.label.visible = 1
    +a.axes3D.yAxis.label.visible = 1
    +a.axes3D.zAxis.label.visible = 1
    +a.axes3D.xAxis.tickMarks.visible = 1
    +a.axes3D.yAxis.tickMarks.visible = 1
    +a.axes3D.zAxis.tickMarks.visible = 1
    +a.axes3D.xAxis.grid = 1
    +a.axes3D.yAxis.grid = 1
    +a.axes3D.zAxis.grid = 1
    +SetAnnotationAttributes(a)
    +Test("annot3d_04")
    +
    +# Turn off titles, labels and ticks
    +# want to ensure gridlines work alone
    +a.axes3D.xAxis.label.visible = 0
    +a.axes3D.yAxis.label.visible = 0
    +a.axes3D.zAxis.label.visible = 0
    +a.axes3D.xAxis.title.visible = 0
    +a.axes3D.yAxis.title.visible = 0
    +a.axes3D.zAxis.title.visible = 0
    +a.axes3D.xAxis.tickMarks.visible = 0
    +a.axes3D.yAxis.tickMarks.visible = 0
    +a.axes3D.zAxis.tickMarks.visible = 0
    +SetAnnotationAttributes(a)
    +Test("annot3d_05")
    +
    +# Mix up which ticks, titles, labels, 
    +# or gridlines are turned on
    +a.axes3D.xAxis.label.visible = 1
    +a.axes3D.yAxis.label.visible = 0
    +a.axes3D.zAxis.label.visible = 0
    +a.axes3D.xAxis.title.visible = 0
    +a.axes3D.yAxis.title.visible = 0
    +a.axes3D.zAxis.title.visible = 1
    +a.axes3D.xAxis.tickMarks.visible = 0
    +a.axes3D.yAxis.tickMarks.visible = 1
    +a.axes3D.zAxis.tickMarks.visible = 0
    +a.axes3D.xAxis.grid = 0
    +a.axes3D.yAxis.grid = 0
    +a.axes3D.zAxis.grid = 1
    +SetAnnotationAttributes(a)
    +Test("annot3d_06")
    +
    +a.axes3D.xAxis.label.visible = 1
    +a.axes3D.yAxis.label.visible = 1
    +a.axes3D.zAxis.label.visible = 1
    +a.axes3D.xAxis.title.visible = 1
    +a.axes3D.yAxis.title.visible = 1
    +a.axes3D.zAxis.title.visible = 1
    +a.axes3D.xAxis.tickMarks.visible = 1
    +a.axes3D.yAxis.tickMarks.visible = 1
    +a.axes3D.zAxis.tickMarks.visible = 1
    +a.axes3D.xAxis.grid = 0
    +a.axes3D.yAxis.grid = 0
    +a.axes3D.zAxis.grid = 0
    +
    +# Change the 3D axis type
    +a.axes3D.axesType = a.axes3D.StaticEdges
    +SetAnnotationAttributes(a)
    +Test("annot3d_07")
    +
    +# Change the 3D axis type
    +a.axes3D.axesType = a.axes3D.FurthestTriad
    +SetAnnotationAttributes(a)
    +Test("annot3d_08")
    +
    +# Change the 3D axis type
    +a.axes3D.axesType = a.axes3D.OutsideEdges
    +SetAnnotationAttributes(a)
    +Test("annot3d_09")
    +
    +# Change the 3D axis type
    +a.axes3D.axesType = a.axes3D.StaticTriad
    +SetAnnotationAttributes(a)
    +Test("annot3d_10")
    +
    +# Change the triad attribtues manually
    +a.axes3D.triadSetManually = 1
    +a.axes3D.triadColor = (66, 244, 215)
    +a.axes3D.triadLineWidth = 2
    +a.axes3D.triadFont = 1
    +a.axes3D.triadBold = 0
    +a.axes3D.triadItalic = 0
    +SetAnnotationAttributes(a)
    +Test("annot3d_11")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_axislabels.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_axislabels.html new file mode 100644 index 000000000..cb3d42b2a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_axislabels.html @@ -0,0 +1,150 @@ + +Results for rendering/axislabels.py + +

    Results of VisIt Regression Test - rendering/axislabels

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    AxisLabelsLog2D_000.000.00
    AxisLabelsLog2D_010.000.00
    AxisLabelsLog2D_020.000.00
    AxisLabelsLog2D_030.000.00
    AxisLabelsLog2D_040.000.00
    AxisLabelsLog2D_050.000.00
    AxisLabelsLog2D_060.000.00
    AxisLabelsLog2D_070.000.00
    AxisLabelsLog2D_080.000.00
    AxisLabelsLog2D_090.000.00
    AxisLabelsLog2D_100.000.00
    AxisLabelsLog2D_110.000.00
    AxisLabelsLog2D_120.000.00
    AxisLabelsLog2D_130.000.00
    AxisLabelsLog2D_140.000.00
    AxisLabelsLog2D_150.000.00
    AxisLabelsLog2D_160.000.00
    AxisLabelsLog2D_170.000.00
    AxisLabelsLog2D_180.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_axislabels_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_axislabels_py.html new file mode 100644 index 000000000..9d51e6079 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_axislabels_py.html @@ -0,0 +1,141 @@ +rendering/axislabels.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial, parallel, scalable
    +#  CLASSES: nightly
    +#
    +#  Test Case:  axislabels.py 
    +#
    +#  Tests:      Tests the axis labels
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       Fri Dec 17 16:19:49 PST 2021
    +#
    +#  Modifications
    +#
    +# ----------------------------------------------------------------------------
    +
    +def TestLog2D():
    +    OpenDatabase(data_path("curve_test_data/distribution.ultra"))
    +
    +    swa = SaveWindowAttributes()
    +    swa.width = 600
    +    swa.height = 600
    +    swa.screenCapture = 0
    +
    +    a = GetAnnotationAttributes()
    +    a.axes2D.visible = 1
    +    SetAnnotationAttributes(a)
    +
    +    v = GetViewCurve()
    +    v.domainScale = v.LINEAR
    +    v.rangeScale = v.LOG
    +    SetViewCurve(v)
    +
    +    AddPlot("Curve", "Exponential Distribution")
    +    c = CurveAttributes()
    +    c.curveColorSource = c.Custom
    +    c.curveColor = (255, 0, 0, 255)
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("AxisLabelsLog2D_00", swa)
    +
    +    v.domainCoords = (1.601123657864678, 18.12971869918699)
    +    v.rangeCoords = (-7.130672752885499, 0.04760456234965804)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_01", swa)
    +
    +    v.domainCoords = (0.638075437299828, 17.16667047862213)
    +    v.rangeCoords = (-10.48436074884018, -3.306083433605024)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_02", swa)
    +
    +    v.domainCoords = (-8.812882729839023, 26.61762864576098)
    +    v.rangeCoords = (-14.58885955523007, 0.7984153727848649)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_03", swa)
    +
    +    v.domainCoords = (-37.04643791101395, 54.85118382693591)
    +    v.rangeCoords = (-26.85053625423488, 13.06009207178967)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_04", swa)
    +
    +    v.domainCoords = (-72.49874837389116, 90.30349428981312)
    +    v.rangeCoords = (-42.2472784051628, 28.4568342227176)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_05", swa)
    +
    +    v.domainCoords = (-135.3046789498164, 153.1094248657384)
    +    v.rangeCoords = (-69.52354632680284, 55.73310214435764)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_06", swa)
    +
    +    v.domainCoords = (2.563824255463072, 8.936313157343124)
    +    v.rangeCoords = (-4.113141545611167, -1.345604897058017)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_07", swa)
    +
    +    v.domainCoords = (2.581093873083343, 8.953582774963396)
    +    v.rangeCoords = (-3.296916569328953, -0.5293799207758031)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_08", swa)
    +
    +    v.domainCoords = (0.4742005234102636, 6.846689425290313)
    +    v.rangeCoords = (-3.235890402877946, -0.4683537543247966)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_09", swa)
    +
    +    v.domainCoords = (0.6728011260433816, 7.045290027923435)
    +    v.rangeCoords = (-2.461620916030798, 0.3059157325223497)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_10", swa)
    +
    +    v.domainCoords = (-3.883839369631302, 7.405413441872227)
    +    v.rangeCoords = (-2.289688582041886, 2.613171410605579)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_11", swa)
    +
    +    v.domainCoords = (-5.087720394381069, 8.572275507538203)
    +    v.rangeCoords = (-2.632794183897802, 3.299666407205631)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_12", swa)
    +
    +    v.domainCoords = (-4.680511844459359, 8.979484057459912)
    +    v.rangeCoords = (-1.569922247785004, 4.362538343318429)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_13", swa)
    +
    +    # The curve doesn't intersect the window.
    +    v.domainCoords = (-1.565282256005422, 0.4651890936507914)
    +    v.rangeCoords = (1.046155226469858, 1.927977691841728)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_14", swa)
    +
    +    # The curve doesn't intersect the window.
    +    v.domainCoords = (0.7831595313488587, 2.813630881005071)
    +    v.rangeCoords = (0.07581375463087496, 0.9576362200027442)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_15", swa)
    +
    +    v.domainCoords = (0.1079984801721102, 1.494837732720581)
    +    v.rangeCoords = (-0.7549194057961169, -0.1526227967039314)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_16", swa)
    +
    +    v.domainCoords = (7.150150811017356, 9.18062216067357)
    +    v.rangeCoords = (-3.893382901287159, -3.01156043591529)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_17", swa)
    +
    +    v.domainCoords = (8.915537392097869, 10.94600874175408)
    +    v.rangeCoords = (-4.898933596142739, -4.017111130770868)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_18", swa)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("curve_test_data/distribution.ultra"))
    +
    +def Main():
    +    TestLog2D()
    +
    +Main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_axistitles.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_axistitles.html new file mode 100644 index 000000000..8ff1de9f5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_axistitles.html @@ -0,0 +1,120 @@ + +Results for rendering/axistitles.py + +

    Results of VisIt Regression Test - rendering/axistitles

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Setting axis titles in 2D
    axistitles_0_000.000.00
    axistitles_0_010.000.00
    axistitles_0_020.000.00
    axistitles_0_030.000.00
    axistitles_0_040.000.00
    axistitles_0_050.000.00
    Setting axis titles in 3D
    axistitles_1_000.000.00
    axistitles_1_010.000.00
    axistitles_1_020.000.00
    axistitles_1_030.000.00
    axistitles_1_040.000.00
    axistitles_1_050.000.00
    axistitles_1_060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_axistitles_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_axistitles_py.html new file mode 100644 index 000000000..27310d20f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_axistitles_py.html @@ -0,0 +1,170 @@ +rendering/axistitles.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial
    +#  CLASSES: nightly
    +#
    +#  Test Case:  axistitles.py 
    +#
    +#  Tests:      Tests setting axis titles and units.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Jul 28 11:07:57 PDT 2005
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Apr 2 16:44:26 PST 2008
    +#    Modified the 3D test since setting the 3D font scale now actually works.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Thu Jul 11 08:36:38 PDT 2013
    +#    Remove legacy style annotation settings.
    +#
    +#    Kathleen Biagas, Wed Jul  1 17:37:57 PDT 2015
    +#    Added title color test to 2D.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def SaveTestImage(name):
    +    # Save these images somewhat larger than a regular test case image
    +    # since the images contain a lot of text.
    +    swa = SaveWindowAttributes()
    +    swa.width = 500
    +    swa.height = 500
    +    swa.screenCapture = 0
    +    Test(name, swa)
    +
    +#
    +# Test replacing 2D titles and units.
    +#
    +def Test2D():
    +    TestSection("Setting axis titles in 2D")
    +    OpenDatabase(silo_data_path("noise2d.silo"))
    +
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +
    +    v = GetView2D()
    +    v.viewportCoords = (0.35, 0.95, 0.15, 0.95)
    +    SetView2D(v)
    +
    +    a = GetAnnotationAttributes()
    +    a.axes2D.visible = 1
    +    a.axes2D.xAxis.label.visible = 0
    +    a.axes2D.yAxis.label.visible = 0
    +    a.axes2D.xAxis.title.visible = 1
    +    a.axes2D.yAxis.title.visible = 1
    +    a.axes2D.xAxis.title.font.scale = 2 #TitleFontHeight2D = 0.04
    +    a.axes2D.yAxis.title.font.scale = 2 #TitleFontHeight2D = 0.04
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_0_00")
    +
    +    a.axes2D.xAxis.title.title = "New X Title"
    +    a.axes2D.xAxis.title.userTitle = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_0_01")
    +
    +    a.axes2D.yAxis.title.title = "New Y Title"
    +    a.axes2D.yAxis.title.userTitle = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_0_02")
    +
    +    a.axes2D.xAxis.title.units = "New X Units"
    +    a.axes2D.xAxis.title.userUnits = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_0_03")
    +
    +    a.axes2D.yAxis.title.units = "New Y Units"
    +    a.axes2D.yAxis.title.userUnits = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_0_04")
    +
    +    # Test colors for title
    +
    +    a.axes2D.xAxis.title.font.useForegroundColor = 0
    +    a.axes2D.xAxis.title.font.color =(255,0,0,255)
    +    a.axes2D.yAxis.title.font.useForegroundColor = 0
    +    a.axes2D.yAxis.title.font.color =(255,0,255,255)
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_0_05")
    +
    +    DeleteAllPlots()
    +
    +
    +#
    +# Test replacing 3D titles and units.
    +#
    +def Test3D():
    +    TestSection("Setting axis titles in 3D")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.749133, -0.494511, 0.440747)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (-0.588718, 0.802033, -0.10077)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +
    +    a = GetAnnotationAttributes()
    +    a.axes3D.visible = 1
    +    a.axes3D.xAxis.title.visible = 1
    +    a.axes3D.yAxis.title.visible = 1
    +    a.axes3D.zAxis.title.visible = 1
    +    a.axes3D.xAxis.title.font.scale = 2
    +    a.axes3D.yAxis.title.font.scale = 2
    +    a.axes3D.zAxis.title.font.scale = 2
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_1_00")
    +
    +    a.axes3D.xAxis.title.title = "New X Title"
    +    a.axes3D.xAxis.title.userTitle = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_1_01")
    +
    +    a.axes3D.yAxis.title.title = "New Y Title"
    +    a.axes3D.yAxis.title.userTitle = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_1_02")
    +
    +    a.axes3D.zAxis.title.title = "New Z Title"
    +    a.axes3D.zAxis.title.userTitle = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_1_03")
    +
    +    a.axes3D.xAxis.title.units = "New X Units"
    +    a.axes3D.xAxis.title.userUnits = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_1_04")
    +
    +    a.axes3D.yAxis.title.units = "New Y Units"
    +    a.axes3D.yAxis.title.userUnits = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_1_05")
    +
    +    a.axes3D.zAxis.title.units = "New Z Units"
    +    a.axes3D.zAxis.title.userUnits = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_1_06")
    +    DeleteAllPlots()
    +
    +def main():
    +    Test2D()
    +    Test3D()
    +
    +# Run all of the tests
    +main()
    +
    +# Exit the test
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_bigdata.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_bigdata.html new file mode 100644 index 000000000..9623cf84e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_bigdata.html @@ -0,0 +1,54 @@ + +Results for rendering/bigdata.py + +

    Results of VisIt Regression Test - rendering/bigdata

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    bigdata_010.000.00
    bigdata_020.000.00
    bigdata_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_bigdata_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_bigdata_py.html new file mode 100644 index 000000000..b0344146e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_bigdata_py.html @@ -0,0 +1,36 @@ +rendering/bigdata.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  bigdata.py
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 27, 2010
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "hardyglobal")
    +AddOperator("Transform")
    +t = TransformAttributes()
    +t.doScale = 1
    +t.scaleX= 1e+20
    +t.scaleY= 1e+20
    +t.scaleZ= 1e+20
    +SetOperatorOptions(t)
    +DrawPlots()
    +Test("bigdata_01")
    +
    +AddOperator("Isosurface")
    +DrawPlots()
    +Test("bigdata_02")
    +
    +v = GetView3D()
    +v.axis3DScaleFlag = 1
    +v.axis3DScales = (2,1,1)
    +SetView3D(v)
    +Test("bigdata_03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_colortexture.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_colortexture.html new file mode 100644 index 000000000..7342331f6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_colortexture.html @@ -0,0 +1,66 @@ + +Results for rendering/colortexture.py + +

    Results of VisIt Regression Test - rendering/colortexture

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    colortexture_000.000.00
    colortexture_010.000.00
    colortexture_020.000.00
    colortexture_030.000.00
    colortexture_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_colortexture_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_colortexture_py.html new file mode 100644 index 000000000..403ab3a71 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_colortexture_py.html @@ -0,0 +1,86 @@ +rendering/colortexture.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  colortexture.py
    +#
    +#  Tests:      mesh      - 3D UCD
    +#              plots     - Pseudocolor
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Mon Sep 18 13:44:14 PST 2006
    +#
    +#  Modificatons:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +def main():
    +    a = AnnotationAttributes()
    +    TurnOffAllAnnotations(a)
    +    a.foregroundColor = (255, 255, 255, 255)
    +    a.backgroundColor = (0, 0, 0, 255)
    +    SetAnnotationAttributes(a)
    +
    +    OpenDatabase(silo_data_path("ucd2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    AddPlot("Mesh", "ucdmesh2d")
    +    DrawPlots()
    +    Test("colortexture_00")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "speed")
    +    pc = PseudocolorAttributes()
    +    pc.colorTableName = "levels"
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +
    +    L = GetLight(0)
    +    L.enabledFlag = 1
    +    L.type = L.Camera  # Ambient, Object, Camera
    +    L.direction = (-0.131, -0.685, -0.716)
    +    L.color = (255, 255, 255, 255)
    +    L.brightness = 1
    +    SetLight(0, L)
    +
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.615147, 0.425906, 0.663475)
    +    v0.focus = (0, 0, 0)
    +    v0.viewUp = (0.235983, 0.902416, -0.360497)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 17.3205
    +    v0.nearPlane = -34.641
    +    v0.farPlane = 34.641
    +    v0.imagePan = (0, 0)
    +    v0.imageZoom = 1.56642
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0, 0, 0)
    +    SetView3D(v0)
    +    Test("colortexture_01")
    +
    +    # Turn off color texturing
    +    SetColorTexturingEnabled(0)
    +    Test("colortexture_02")
    +
    +    # Turn color texturing back on.
    +    SetColorTexturingEnabled(1)
    +    pc.colorTableName = "hot"
    +    SetPlotOptions(pc)
    +    Test("colortexture_03")
    +
    +    # Make sure that it works with specular highlights.
    +    r = GetRenderingAttributes()
    +    r.specularFlag = 1
    +    SetRenderingAttributes(r)
    +    Test("colortexture_04")
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_compositing.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_compositing.html new file mode 100644 index 000000000..72a0e1c78 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_compositing.html @@ -0,0 +1,44 @@ + +Results for rendering/compositing.py + +

    Results of VisIt Regression Test - rendering/compositing

    + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    compositing_01366.52224.39
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_compositing_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_compositing_py.html new file mode 100644 index 000000000..8a81c82db --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_compositing_py.html @@ -0,0 +1,40 @@ +rendering/compositing.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  compositing.py
    +#
    +#  Tests: postprocessing of transparent images in SR mode.
    +#
    +#  Programmer: Tom Fogal
    +#  Date:       June 3, 2009
    +#
    +# Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +ds_noise = silo_data_path("noise.silo")
    +OpenDatabase(ds_noise)
    +
    +ra = GetRenderingAttributes()
    +ra.scalableActivationMode = ra.Always
    +ra.doShadowing = 1
    +SetRenderingAttributes(ra)
    +
    +AddPlot("Contour", "hardyglobal")
    +
    +ca = ContourAttributes()
    +ca.contourNLevels = 1
    +ca.contourPercent = (0.5, 0.5)
    +ca.SetMultiColor(0, 255,0,255,128)
    +SetPlotOptions(ca)
    +
    +DrawPlots()
    +Test("compositing_01")
    +
    +DeleteAllPlots()
    +CloseDatabase(ds_noise)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_evalcubic.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_evalcubic.html new file mode 100644 index 000000000..ea20f6336 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_evalcubic.html @@ -0,0 +1,66 @@ + +Results for rendering/evalcubic.py + +

    Results of VisIt Regression Test - rendering/evalcubic

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    evalcubic_00.000.00
    evalcubic_10.000.00
    evalcubic_20.000.00
    evalcubic_30.000.00
    evalcubic_40.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_evalcubic_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_evalcubic_py.html new file mode 100644 index 000000000..4f602b79c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_evalcubic_py.html @@ -0,0 +1,123 @@ +rendering/evalcubic.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  evalcubic.py
    +#
    +#  Tests:      mesh      - 3D structured, single domain
    +#              plots     - pseudocolor
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Mon Feb  7 15:52:37 PST 2011
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Example from:
    +# https://visit-sphinx-github-user-manual.readthedocs.io/en/develop/tutorials/Scripting.html#animating-the-camera
    +#
    +
    +def fly():
    +    # Do a pseudocolor plot of u.
    +    DeleteAllPlots()
    +    AddPlot('Pseudocolor', 'hardyglobal')
    +    AddOperator("Clip")
    +    c = ClipAttributes()
    +    c.funcType = c.Sphere  # Plane, Sphere
    +    c.center = (0, 0, 0)
    +    c.radius = 10
    +    c.sphereInverse = 1
    +    SetOperatorOptions(c)
    +    DrawPlots()
    +    # Create the control points for the views.
    +    c0 = View3DAttributes()
    +    c0.viewNormal = (0, 0, 1)
    +    c0.focus = (0, 0, 0)
    +    c0.viewUp = (0, 1, 0)
    +    c0.viewAngle = 30
    +    c0.parallelScale = 17.3205
    +    c0.nearPlane = 17.3205
    +    c0.farPlane = 81.9615
    +    c0.perspective = 1
    +    c1 = View3DAttributes()
    +    c1.viewNormal = (-0.499159, 0.475135, 0.724629)
    +    c1.focus = (0, 0, 0)
    +    c1.viewUp = (0.196284, 0.876524, -0.439521)
    +    c1.viewAngle = 30
    +    c1.parallelScale = 14.0932
    +    c1.nearPlane = 15.276
    +    c1.farPlane = 69.917
    +    c1.perspective = 1
    +    c2 = View3DAttributes()
    +    c2.viewNormal = (-0.522881, 0.831168, -0.189092)
    +    c2.focus = (0, 0, 0)
    +    c2.viewUp = (0.783763, 0.556011, 0.27671)
    +    c2.viewAngle = 30
    +    c2.parallelScale = 11.3107
    +    c2.nearPlane = 14.8914
    +    c2.farPlane = 59.5324
    +    c2.perspective = 1
    +    c3 = View3DAttributes()
    +    c3.viewNormal = (-0.438771, 0.523661, -0.730246)
    +    c3.focus = (0, 0, 0)
    +    c3.viewUp = (-0.0199911, 0.80676, 0.590541)
    +    c3.viewAngle = 30
    +    c3.parallelScale = 8.28257
    +    c3.nearPlane = 3.5905
    +    c3.farPlane = 48.2315
    +    c3.perspective = 1
    +    c4 = View3DAttributes()
    +    c4.viewNormal = (0.286142, -0.342802, -0.894768)
    +    c4.focus = (0, 0, 0)
    +    c4.viewUp = (-0.0382056, 0.928989, -0.36813)
    +    c4.viewAngle = 30
    +    c4.parallelScale = 10.4152
    +    c4.nearPlane = 1.5495
    +    c4.farPlane = 56.1905
    +    c4.perspective = 1
    +    c5 = View3DAttributes()
    +    c5.viewNormal = (0.974296, -0.223599, -0.0274086)
    +    c5.focus = (0, 0, 0)
    +    c5.viewUp = (0.222245, 0.97394, -0.0452541)
    +    c5.viewAngle = 30
    +    c5.parallelScale = 1.1052
    +    c5.nearPlane = 24.1248
    +    c5.farPlane = 58.7658
    +    c5.perspective = 1
    +    c6 = c0
    +    # Create a tuple of camera values and x values. The x values are weights
    +    # that help to determine where in [0,1] the control points occur.
    +    cpts = (c0, c1, c2, c3, c4, c5, c6)
    +    x=[]
    +    for i in range(7):
    +        x = x + [float(i) / float(6.)]
    +    # Animate the camera. Note that we use the new built-in EvalCubicSpline
    +    # function which takes a t value from [0,1] a tuple of t values and a tuple
    +    # of control points. In this case, the control points are View3DAttributes
    +    # objects that we are using to animate the camera but they can be any object
    +    # that supports +, * operators.
    +    nsteps = 100
    +    for i in range(nsteps):
    +        t = float(i) / float(nsteps - 1)
    +        c = EvalCubicSpline(t, x, cpts)
    +        c.nearPlane = -34.461
    +        c.farPlane = 34.461
    +        SetView3D(c)
    +        if i == 0:
    +            Test("evalcubic_0")
    +        elif i == 24:
    +            Test("evalcubic_1")
    +        elif i == 49:
    +            Test("evalcubic_2")
    +        elif i == 74:
    +            Test("evalcubic_3")
    +        elif i == 99:
    +            Test("evalcubic_4")
    +
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +fly()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_image.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_image.html new file mode 100644 index 000000000..a6c93eb5b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_image.html @@ -0,0 +1,54 @@ + +Results for rendering/image.py + +

    Results of VisIt Regression Test - rendering/image

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    image000.000.00
    image010.000.00
    image020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_image_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_image_py.html new file mode 100644 index 000000000..5ee3f00ef --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_image_py.html @@ -0,0 +1,46 @@ +rendering/image.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  image.py
    +#
    +#  Tests:      mesh        - 2D curvilinear, single domain
    +#              plots       - Pseudocolor
    +#              annotations - Image
    +#
    +#  Defect ID:  None 
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       July 1, 2015
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Set up the annotation colors, etc.
    +a = GetAnnotationAttributes()
    +a.backgroundColor = (255, 255, 255, 255)
    +a.foregroundColor = (0, 0, 0, 255)
    +a.backgroundMode = a.Solid
    +SetAnnotationAttributes(a)
    +
    +# Open up the database and do a plot.
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +# Create an Image object
    +img = CreateAnnotationObject("Image")
    +img.image = data_path("Image_test_data/manhattan.jpg")
    +img.position = (0.34, 0.12)
    +Test("image00")
    +
    +img.width = 50
    +Test("image01")
    +
    +img.width = 10
    +img.position = (0.5, 0.6)
    +Test("image02")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_legends.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_legends.html new file mode 100644 index 000000000..27a18cf8b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_legends.html @@ -0,0 +1,435 @@ + +Results for rendering/legends.py + +

    Results of VisIt Regression Test - rendering/legends

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Test levels legend
    legends_010.000.00
    legends_020.000.00
    legends_030.000.00
    Test legend default sizing and positioning
    legends_040.000.00
    legends_050.000.00
    legends_060.000.00
    legends_070.000.00
    legends_080.000.00
    Test Curve plot legend
    legends_090.000.00
    legends_100.000.00
    legends_110.000.00
    legends_120.000.00
    legends_130.000.00
    Test setting legend properties
    legends_140.000.00
    legends_150.000.00
    legends_160.000.00
    legends_170.000.00
    legends_180.000.00
    legends_190.000.00
    legends_200.000.00
    legends_210.000.00
    legends_220.000.00
    legends_230.000.00
    legends_240.000.00
    legends_250.000.00
    legends_260.000.00
    legends_270.000.00
    legends_280.000.00
    legends_290 modifications totalling 0 lines
    Test legend copying
    legends_300.000.00
    legends_310.000.00
    legends_320.000.00
    legends_330 modifications totalling 0 lines
    legends_340.000.00
    legends_350 modifications totalling 0 lines
    legends_360.000.00
    legends_370.000.00
    Test setting legend tics
    legends_380.000.00
    legends_390.000.00
    legends_400.000.00
    legends_410.000.00
    legends_420.000.00
    legends_430.000.00
    legends_440.000.00
    legends_450.000.00
    legends_460.000.00
    legends_470.000.00
    legends_480.000.00
    legends_490.000.00
    legends_500.000.00
    legends_510.000.00
    legends_520.000.00
    legends_530.000.00
    legends_540.000.00
    legends_550.000.00
    legends_560.000.00
    legends_570.000.00
    legends_580.000.00
    legends_590.000.00
    legends_600.000.00
    Test Variable legend
    legends_610.000.00
    legends_620.000.00
    legends_630.000.00
    legends_640.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_legends_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_legends_py.html new file mode 100644 index 000000000..853e92c21 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_legends_py.html @@ -0,0 +1,597 @@ +rendering/legends.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  legends.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain 
    +#              plots     - subset, boundary, filledboundary
    +#              operators - none
    +#              selection - material
    +#
    +#  Defect ID:  VisIt00002740, VisIt00002737
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       December 2, 2002 
    +#
    +#  Modifications:
    +#    Brad Whitlock, Thu Dec 12 09:50:31 PDT 2002
    +#    I fixed the test so it uses the new interface for the SubsetAttributes.
    +#
    +#    Kathleen Bonnell, Fri Jul 18 14:04:19 PDT 2003 
    +#    I added tests for Boundary, FilledBoundary.
    +#
    +#    Eric Brugger, Mon Jul 21 12:14:52 PDT 2003
    +#    I added legend sizing and positioning tests.
    +#
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from Subset, Boundary and Filled Boundary plots.
    +#
    +#    Kathleen Bonnell, Fri Oct 28 10:00:30 PDT 2005 
    +#    Add tests for curve plots (legends_09 ... legends_11). 
    +#
    +#    Kathleen Bonnell, Fri Oct 28 15:54:37 PDT 2005 
    +#    Add more tests for curve plots, for testing reading of TIME 
    +#    (legends_12 & legends_13). 
    +#
    +#    Brad Whitlock, Tue Nov 21 10:54:18 PDT 2006
    +#    I made it use line style enum values instead of ints so the intent
    +#    is more clear.
    +#
    +#    Brad Whitlock, Mon Mar 26 08:54:40 PDT 2007
    +#    Organized different parts of the test into functions and added a new
    +#    function that sets the properties for a legend.
    +#
    +#    Hank Childs, Sun Jan 25 15:07:31 PST 2009
    +#    Turn off minmaxLabels as well.
    +#
    +#    Kathleen Bonnell, Wed Sep 23 10:13:13 PDT 2009
    +#    Add TestLegendProperties2, to test new capability of modifiying num tics,
    +#    and setting numeric values and text labels for tics in liu of the 
    +#    automatically generated ones.
    +#
    +#    Kathleen Bonnell, Tue Oct 6 11:36:41 PDT 2009
    +#    Added test for constant variable legend. 
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Brad Whitlock, Mon Jan 25 15:34:23 PST 2010
    +#    I fixed a bug that made small baselines. I also increased the legend size
    +#    in some tests so it's more prominent.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset, and Subset for 
    +#    domains instead of FilledBoundary.
    +#
    +#    Eric Brugger, Wed Mar  8 16:50:08 PST 2023
    +#    Added TestVariableLegend.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Test the Filled Boundary plot with some subsets turned off, and
    +# single-color on.
    +# This test ensures that correct labels are applied to the legend.
    +def TestLevelsLegend(a):
    +    TestSection("Test levels legend")
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +    AddPlot("FilledBoundary", "mat1")
    +    TurnMaterialsOff(("2", "4"))
    +    fbAtts = FilledBoundaryAttributes()
    +    fbAtts.colorType = fbAtts.ColorBySingleColor
    +    fbAtts.singleColor = (0, 255, 255, 255)
    +    SetPlotOptions(fbAtts)
    +    DrawPlots()
    +
    +    Test("legends_01")
    +    DeleteAllPlots()
    +
    +    # Test the FilledBoundary and Boundary plots, to ensure that setting
    +    # their atts works.
    +    AddPlot("FilledBoundary", "mat1")
    +    fba = FilledBoundaryAttributes()
    +    fba.colorType = fba.ColorByMultipleColors
    +    SetPlotOptions(fba)
    +    DrawPlots()
    +    Test("legends_02")
    +    DeleteAllPlots()
    +
    +    AddPlot("Boundary", "mat1")
    +    ba = BoundaryAttributes()
    +    ba.colorType = ba.ColorByColorTable
    +    ba.colorTableName = "rainbow"
    +    SetPlotOptions(ba)
    +    DrawPlots()
    +    Test("legends_03")
    +    DeleteAllPlots()
    +
    +#
    +# Test legend sizing and positioning.
    +#
    +def TestSizeAndPosition(a):
    +    TestSection("Test legend default sizing and positioning")
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +
    +    AddPlot("Boundary", "mat1")
    +    bndAtts = BoundaryAttributes()
    +    bndAtts.colorType = bndAtts.ColorBySingleColor
    +    bndAtts.singleColor = (0, 0, 0, 255)
    +    SetPlotOptions(bndAtts)
    +    AddPlot("Contour", "p")
    +    AddPlot("Mesh", "curvmesh2d")
    +    AddPlot("FilledBoundary", "mat1")
    +    DrawPlots()
    +    Test("legends_04")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "d")
    +    AddPlot("Vector", "vel")
    +    AddPlot("FilledBoundary", "mat1")
    +    DrawPlots()
    +    Test("legends_05")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "d")
    +    AddOperator("Elevate")
    +    AddPlot("Pseudocolor", "p")
    +    AddOperator("Elevate")
    +    elevate_atts = ElevateAttributes()
    +    elevate_atts.useXYLimits = elevate_atts.Never
    +    SetOperatorOptions(elevate_atts)
    +
    +    DrawPlots()
    +    Test("legends_06")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +    AddPlot("Volume", "u")
    +    DrawPlots()
    +    Test("legends_07")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +
    +    AddPlot("Contour", "d")
    +    contourAtts = ContourAttributes()
    +    contourAtts.contourNLevels = 15
    +    SetPlotOptions(contourAtts)
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test("legends_08")
    +    DeleteAllPlots()
    +
    +#
    +# TEST LEGEND FOR CURVE PLOTS
    +#
    +def TestCurveLegend(a):
    +    TestSection("Test Curve plot legend")
    +    OpenDatabase(data_path("curve_test_data/c033.curve"))
    +
    +    # Test legend on
    +    AddPlot("Curve", "parabolic")
    +    curveAtts = CurveAttributes()
    +    curveAtts.curveColorSource = curveAtts.Custom
    +    curveAtts.curveColor = (255, 0, 0, 255)
    +    curveAtts.lineWidth = 1
    +    SetPlotOptions(curveAtts)
    +    DrawPlots()
    +    Test("legends_09")
    +
    +    # Test legend off
    +    curveAtts.showLegend = 0
    +    SetPlotOptions(curveAtts)
    +    Test("legends_10")
    +
    +    curveAtts.showLegend = 1
    +    SetPlotOptions(curveAtts)
    +
    +    # Tests multiple plots
    +    OpenDatabase(data_path("curve_test_data/c044.curve"))
    +
    +    AddPlot("Curve", "parabolic")
    +    curveAtts.curveColor = (0, 255, 0, 255)
    +    curveAtts.lineWidth = 5
    +    SetPlotOptions(curveAtts)
    +    DrawPlots()
    +
    +    OpenDatabase(data_path("curve_test_data/c055.curve"))
    +
    +    AddPlot("Curve", "parabolic")
    +    curveAtts.curveColor = (0, 0, 255, 255)
    +    curveAtts.lineWidth = 2
    +    SetPlotOptions(curveAtts)
    +    DrawPlots()
    +
    +    Test("legends_11")
    +
    +    # Add DatabaseInfo
    +    a.databaseInfoFlag = 1
    +    SetAnnotationAttributes(a)
    +    Test("legends_12")
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(data_path("curve_test_data/distribution.ultra"))
    +
    +    AddPlot("Curve", "Laplace Distribution")
    +    curveAtts.curveColor = (0, 255, 255, 255)
    +    curveAtts.lineWidth = 0
    +    SetPlotOptions(curveAtts)
    +    DrawPlots()
    +    Test("legends_13")
    +    DeleteAllPlots()
    +
    +    # Remove DatabaseInfo
    +    a.databaseInfoFlag = 0
    +    SetAnnotationAttributes(a)
    +
    +#
    +# Test setting legend properties. Note that we currently just test the
    +# avtVariableLegend but others work pretty much the same way.
    +#
    +def TestLegendProperties(a):
    +    TestSection("Test setting legend properties")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.778207, 0.3577, 0.516183)
    +    v0.focus = (0, 0, 0)
    +    v0.viewUp = (0.283417, 0.933512, -0.219613)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 17.3205
    +    v0.nearPlane = -34.641
    +    v0.farPlane = 34.641
    +    v0.imagePan = (0.0768749, 0.057219)
    +    v0.imageZoom = 0.863307
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0, 0, 0)
    +    SetView3D(v0)
    +    Test("legends_14")
    +
    +    # Get the plot's legend
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +
    +    # See if we can scale the legend.
    +    legend.xScale = 3.
    +    Test("legends_15")
    +    legend.yScale = 3.
    +    Test("legends_16")
    +
    +    # Test the bounding box.
    +    legend.drawBoundingBox = 1
    +    Test("legends_17")
    +    legend.boundingBoxColor = (180,180,180,230)
    +    Test("legends_18")
    +
    +    # Test moving the legend
    +    legend.managePosition = 0
    +    legend.position = (0.55,0.9)
    +    Test("legends_19")
    +
    +    # Test text color
    +    InvertBackgroundColor()
    +    Test("legends_20")
    +    InvertBackgroundColor()
    +    legend.useForegroundForTextColor = 0
    +    legend.textColor = (255, 0, 0, 255)
    +    Test("legends_21")
    +
    +    # Test number format
    +    legend.numberFormat = "%1.4e"
    +    Test("legends_22")
    +
    +    # Test the font.
    +    legend.fontFamily = legend.Courier
    +    Test("legends_23")
    +    legend.fontFamily = legend.Times
    +    Test("legends_24")
    +    legend.fontFamily = legend.Arial
    +    legend.fontBold = 1
    +    Test("legends_25")
    +    legend.fontBold = 0
    +    legend.fontItalic = 1
    +    Test("legends_26")
    +
    +    # Test turning off the labels.
    +    legend.fontItalic = 0
    +    legend.drawLabels = 0
    +    legend.drawMinMax = 0
    +    Test("legends_27")
    +
    +    # Test turning off the title.
    +    legend.drawTitle = 0
    +    Test("legends_28")
    +
    +    # Add a plot and then delete plot 0 to see that the legend disappears
    +    # in the list of annotation objects. Note that plot names are created
    +    # using an increasing integer. If this test is executed out of the order
    +    # from when it was baselined then the number will change and the test
    +    # will need to be rebaselined.
    +    text = "Before: " + str(GetAnnotationObjectNames()) + "\n"
    +    AddPlot("Mesh", "Mesh")
    +    DrawPlots()
    +    SetActivePlots(0)
    +    DeleteActivePlots()
    +    text = text + "After: " + str(GetAnnotationObjectNames()) + "\n"
    +    TestText("legends_29", text)
    +    DeleteAllPlots()
    +
    +#
    +# Test how legends get copied to new windows.
    +#
    +def TestLegendCopying(a):
    +    TestSection("Test legend copying")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +
    +    # Customize the legend.
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend.xScale = 3.
    +    legend.yScale = 3.
    +    legend.drawBoundingBox = 1
    +    legend.boundingBoxColor = (50,50,100,255)
    +
    +    # Create another annotation object.
    +    text2d = CreateAnnotationObject("Text2D", "text_obj")
    +    text2d.position = (0.45, 0.5)
    +    text2d.height = 0.05
    +    text2d.textColor = (255, 0, 0, 255)
    +    text2d.useForegroundForTextColor = 0
    +    text2d.text = "Text annotation"
    +    Test("legends_30")
    +
    +    # Clone the window and make sure that it has the right annotation objects
    +    # and that their properties have been inherited from window 1.
    +    CloneWindow()
    +    SetActiveWindow(2)
    +    DrawPlots()
    +    Test("legends_31")
    +    DeleteWindow()
    +
    +    # Test clone on first reference.
    +    SetCloneWindowOnFirstRef(1)
    +    AddWindow()
    +    DrawPlots()
    +    Test("legends_32")
    +    TestText("legends_33", str(GetAnnotationObjectNames()))
    +
    +    # Test it clone on first reference again via SetActiveWindow
    +    DeleteWindow()
    +    AddWindow()
    +    SetActiveWindow(2)
    +    DrawPlots()
    +    Test("legends_34")
    +    TestText("legends_35", str(GetAnnotationObjectNames()))
    +
    +    # Now that we're in window 2, delete the text object.
    +    w2text = GetAnnotationObject("text_obj")
    +    w2text.Delete()
    +    # Customize the legend in window 2 so we'll know if copying window 1's
    +    # attributes over to window 2 messed it up.
    +    legend2 = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend2.boundingBoxColor = (200,0,0,255)
    +    Test("legends_36")
    +    CopyAnnotationsToWindow(1, 2)
    +    RedrawWindow()
    +    Test("legends_37")
    +
    +    # Clean up
    +    DeleteAllPlots()
    +    DeleteWindow()
    +    text2d.Delete()
    +    GetAnnotationObject("text_obj").Delete()
    +    DeleteAllPlots()
    +
    +def TestLegendTics():
    +    TestSection("Test setting legend tics")
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend.xScale = 3.
    +    legend.yScale = 3.
    +
    +    # change number of ticks
    +    legend.numTicks = 3
    +    Test("legends_38")
    +
    +    # turn off use of min and max as tick values
    +    legend.minMaxInclusive = 0
    +    Test("legends_39")
    +
    +    legend.numTicks = 1
    +    Test("legends_40")
    +
    +    legend.minMaxInclusive = 1
    +    Test("legends_41")
    +
    +    legend.numTicks = 2
    +    Test("legends_42")
    +
    +    legend.minMaxInclusive = 0
    +    Test("legends_43")
    +
    +    legend.minMaxInclusive = 1
    +    # turn off automatic control of ticks so labels can be added
    +    legend.controlTicks = 0
    +    # default values should be what was calculated
    +    Test("legends_44")
    +
    +    # supply some labels
    +    legend.suppliedLabels = ("", "second", "", "fourth", "")
    +    # Turn on drawing of text labels
    +    legend.drawLabels = legend.Both
    +    Test("legends_45")
    +
    +    # only labels, no values
    +    legend.drawLabels = legend.Labels
    +    Test("legends_46")
    +
    +    # supply different values -- don't need to be in order
    +    # show that values out-of-range won't be used
    +    legend.suppliedValues = (2.2, 4.5, 3.8, 1.0, 5.7)
    +    legend.suppliedLabels = ("this", "that", "the other", "noshow1", "noshow2")
    +    legend.drawLabels = legend.Values
    +    Test("legends_47")
    +    legend.drawLabels = legend.Both
    +    Test("legends_48")
    +    legend.drawLabels = legend.Labels
    +    Test("legends_49")
    +
    +    legend.orientation = legend.HorizontalTop
    +    Test("legends_50")
    +    legend.orientation = legend.HorizontalBottom
    +    Test("legends_51")
    +    legend.orientation = legend.VerticalLeft
    +    Test("legends_52")
    +
    +    DeleteAllPlots()
    +
    +    # demonstrate adding labels to 'levels' type legends
    +    AddPlot("FilledBoundary", "mat1")
    +    DrawPlots()
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend.xScale = 3.
    +    legend.yScale = 3.
    +
    +    legend.controlTicks = 0
    +    Test("legends_53")
    +    legend.drawLabels = legend.Both
    +    legend.suppliedLabels = ("red", "green", "blue");
    +    Test("legends_54")
    +    legend.drawLabels = legend.Labels
    +    Test("legends_55")
    +
    +    DeleteAllPlots()
    +    AddPlot("Contour", "p")
    +    contourAtts = ContourAttributes()
    +    contourAtts.contourNLevels = 6
    +    SetPlotOptions(contourAtts)
    +    DrawPlots()
    +
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend.xScale = 3.
    +    legend.yScale = 3.
    +    Test("legends_56")
    +    nf = legend.numberFormat
    +    legend.numberFormat = "%# -0.2e"
    +    Test("legends_57")
    +    legend.numberFormat = nf
    +    legend.controlTicks = 0
    +    legend.drawLabels = legend.Both
    +    legend.suppliedLabels = ("one", "", "two", "", "three")
    +    Test("legends_58")
    +    legend.drawLabels = legend.Labels
    +    Test("legends_59")
    +
    +    DeleteAllPlots()
    +
    +    # test constant legend
    +    DefineScalarExpression("one", "cell_constant(<curvmesh2d>, 1)")
    +    AddPlot("Pseudocolor", "one")
    +    DrawPlots()
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend.xScale = 3.
    +    legend.yScale = 3.
    +    Test("legends_60")
    +
    +    #clean up
    +    DeleteAllPlots()
    +
    +# Test the pseudocolor plot with original and actual limits.
    +# This test ensures that correct limits are displayed.
    +def TestVariableLegend():
    +    TestSection("Test Variable legend")
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    pc = PseudocolorAttributes()
    +    pc.limitsMode = pc.OriginalData
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    TurnMaterialsOff("1")
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend.xScale = 2.0
    +    legend.yScale = 2.0
    +    Test("legends_61")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "d")
    +    pc = PseudocolorAttributes()
    +    pc.limitsMode = pc.OriginalData
    +    pc.minFlag = 1
    +    pc.min = 2.8
    +    pc.maxFlag = 1
    +    pc.max = 4.2
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    TurnMaterialsOff("1")
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend.xScale = 2.0
    +    legend.yScale = 2.0
    +    Test("legends_62")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "d")
    +    pc = PseudocolorAttributes()
    +    pc.limitsMode = pc.ActualData
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    TurnMaterialsOff("1")
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend.xScale = 2.0
    +    legend.yScale = 2.0
    +    Test("legends_63")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "d")
    +    pc = PseudocolorAttributes()
    +    pc.limitsMode = pc.ActualData
    +    pc.minFlag = 1
    +    pc.min = 2.8
    +    pc.maxFlag = 1
    +    pc.max = 4.2
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    TurnMaterialsOff("1")
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend.xScale = 2.0
    +    legend.yScale = 2.0
    +    Test("legends_64")
    +    DeleteAllPlots()
    +
    +def main():
    +    # Turn off all annotation except the legend.
    +    a = GetAnnotationAttributes()
    +    TurnOffAllAnnotations(a)
    +    a.legendInfoFlag = 1
    +    SetAnnotationAttributes(a)
    +
    +    TestLevelsLegend(a)
    +    TestSizeAndPosition(a)
    +    TestCurveLegend(a)
    +    TestLegendProperties(a)
    +    TestLegendCopying(a)
    +    TestLegendTics()
    +    TestVariableLegend()
    +
    +    # reset DatabaseInfo for future tests.
    +    a.databaseInfoFlag = 0
    +    SetAnnotationAttributes(a)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_lighting.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_lighting.html new file mode 100644 index 000000000..ebc5289fb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_lighting.html @@ -0,0 +1,54 @@ + +Results for rendering/lighting.py + +

    Results of VisIt Regression Test - rendering/lighting

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    lighting_010.000.00
    lighting_020.000.00
    normals_000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_lighting_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_lighting_py.html new file mode 100644 index 000000000..9dcda0087 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_lighting_py.html @@ -0,0 +1,113 @@ +rendering/lighting.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  lighting.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, one domain
    +#              plots     - pseudocolor
    +#              operators - slicing, elevation
    +#              selection - no
    +#
    +#  Defect ID:  8017
    +#
    +#  Programmer: Hank Childs
    +#  Date:       May 6, 2007
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Alister Maguire, Wed Mar 18 16:45:02 PDT 2020
    +#    Moved previous two tests into a function called TestBasicLighting and
    +#    added TestNormals.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def TestBasicLighting():
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    AddOperator("Slice")
    +    AddOperator("Elevate")
    +    DrawPlots()
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (-0.58136, 0.782415, -0.223267)
    +    View3DAtts.focus = (0.5, 0.5, 0.66382)
    +    View3DAtts.viewUp = (0.259676, -0.0816327, -0.962239)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 0.728621
    +    View3DAtts.nearPlane = -1.45724
    +    View3DAtts.farPlane = 1.45724
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0.5, 0.5, 0.66382)
    +    SetView3D(View3DAtts)
    +
    +    light0 = GetLight(0)
    +    light0.enabledFlag = 1
    +    light0.type = light0.Camera  # Ambient, Object, Camera
    +    light0.direction = (0, 0, -1)
    +    light0.color = (255, 255, 255, 255)
    +    light0.brightness = 1
    +    SetLight(0, light0)
    +    light1 = GetLight(1)
    +    light1.enabledFlag = 1
    +    light1.type = light1.Ambient  # Ambient, Object, Camera
    +    light1.direction = (0, 0, -1)
    +    light1.color = (255, 255, 255, 255)
    +    light1.brightness = 0.47
    +    SetLight(1, light1)
    +
    +    # In SR mode, bug '8017 was that the ambient would get turned off on
    +    # the second save.
    +    Test("lighting_01")
    +    Test("lighting_02")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +def TestNormals():
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.03622833898009251, 0.7402344653499199, 0.6713720606063838)
    +    SetView3D(v)
    +
    +    light0 = GetLight(0)
    +    light0.enabledFlag = 1
    +    light0.type = light0.Camera  # Ambient, Object, Camera
    +    light0.direction = (0, 0, -1)
    +    light0.brightness = .65
    +    SetLight(0, light0)
    +    light1 = GetLight(1)
    +    light1.enabledFlag = 1
    +    light1.type = light1.Ambient  # Ambient, Object, Camera
    +    light1.direction = (0, 0, -1)
    +    light0.brightness = .65
    +    SetLight(1, light1)
    +
    +    #
    +    # In the past, our normals filter wasn't able to handle triangle strips.
    +    # This test ensures that we now can.
    +    #
    +    OpenDatabase(data_path("vtk_test_data/polyWithStrips.vtk"))
    +    AddPlot("Pseudocolor", "fooData")
    +    DrawPlots()
    +    Test("normals_00")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/polyWithStrips.vtk"))
    +
    +
    +def main():
    +    TestBasicLighting()
    +    TestNormals()
    +    Exit()
    +
    +main()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_line2d.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_line2d.html new file mode 100644 index 000000000..fba5aa715 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_line2d.html @@ -0,0 +1,102 @@ + +Results for rendering/line2d.py + +

    Results of VisIt Regression Test - rendering/line2d

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    line2d000.000.00
    line2d010.000.00
    line2d020.000.00
    line2d030.000.00
    line2d040.000.00
    line2d050.000.00
    line2d060.000.00
    line2d070.000.00
    line2d080.000.00
    line2d090.000.00
    line2d100.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_line2d_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_line2d_py.html new file mode 100644 index 000000000..acd57dca2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_line2d_py.html @@ -0,0 +1,101 @@ +rendering/line2d.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  line2d.py
    +#
    +#  Tests:      mesh        - 2D curvilinear, single domain
    +#              plots       - Pseudocolor
    +#              annotations - Line2D
    +#
    +#  Defect ID:  #1724 (arrowheads for 2D Line annotations broke in 2.7) 
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       July 1, 2015
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Mon Aug  3 17:35:13 PDT 2015
    +#    Uncomment test line2d01, also set nextLine.useForegroundForLineColor.
    +#    Change line width values so that they yield previous results, line
    +#    annotation object now uses a lineWidth gui widget that allows values 
    +#    from 0 to 9.
    +# ----------------------------------------------------------------------------
    +
    +# Set up the annotation colors, etc.
    +a = GetAnnotationAttributes()
    +a.backgroundColor = (255, 255, 255, 255)
    +a.foregroundColor = (0, 0, 0, 255)
    +a.backgroundMode = a.Solid
    +SetAnnotationAttributes(a)
    +
    +# Open up the database and do a plot.
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +# Create a Line2D object
    +line = CreateAnnotationObject("Line2D")
    +line.position = (0.62, 0.83)
    +line.position2 = (0.43, 0.7)
    +Test("line2d00")
    +
    +# Set the foreground color to see if it changes
    +a.foregroundColor = (0, 255, 255, 255)
    +SetAnnotationAttributes(a)
    +Test("line2d01")
    +
    +# Test line color
    +a.foregroundColor = (255, 255, 255, 255)
    +SetAnnotationAttributes(a)
    +line.useForegroundForLineColor = 0
    +line.color = (0, 255, 255, 255)
    +Test("line2d02")
    +
    +# Test line width
    +line.width = 3
    +Test("line2d03")
    +
    +
    +# Test line arrow at start
    +line.color = (0,0,0,255)
    +line.width = 0
    +line.beginArrow = 1
    +Test("line2d04")
    +
    +# Test solid arrow at end
    +line.endArrow = 2
    +Test("line2d05")
    +
    +# Switch arrows
    +line.beginArrow = 2
    +line.endArrow = 1
    +Test("line2d06")
    +
    +# Test line opacity
    +line.position = (0.25, 0.32)
    +line.position2 = (0.85, 0.71)
    +line.width = 4
    +line.beginArrow = 0
    +line.endArrow = 0
    +line.color = (0,0,0,150)
    +Test("line2d07")
    +
    +# Create more line objects
    +nextLine = CreateAnnotationObject("Line2D")
    +nextLine.useForegroundForLineColor = 0
    +nextLine.color=(255, 0, 0, 255)
    +nextLine.position=(0.41, 0.86)
    +nextLine.position2=(0.75, 0.6)
    +nextLine.width=1
    +nextLine.endArrow=2
    +Test("line2d08")
    +
    +# Start Removing text
    +line.Delete()
    +Test("line2d09")
    +nextLine.Delete()
    +Test("line2d10")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_line3d.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_line3d.html new file mode 100644 index 000000000..1ac22830e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_line3d.html @@ -0,0 +1,114 @@ + +Results for rendering/line3d.py + +

    Results of VisIt Regression Test - rendering/line3d

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    line3d000.000.00
    Line3d010.000.00
    line3d050.000.00
    line3d060.000.00
    line3d072.580.60
    line3d082.580.60
    line3d095.041.19
    line3d100.940.32
    line3d111.830.69
    line3d120.930.37
    line3d130.000.00
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_line3d_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_line3d_py.html new file mode 100644 index 000000000..28c629521 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_line3d_py.html @@ -0,0 +1,104 @@ +rendering/line3d.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  line3d.py
    +#
    +#  Tests:      mesh        - 3D unstructured, single domain
    +#              plots       - Pseudocolor
    +#              annotations - Line3D
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       August 27, 2015
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Thu Apr 19 12:02:22 PDT 2018
    +#    Remove lineStyle tests, no longer available.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Set up the annotation colors, etc.
    +a = GetAnnotationAttributes()
    +a.backgroundColor = (255, 255, 255, 255)
    +a.foregroundColor = (0, 0, 0, 255)
    +a.backgroundMode = a.Solid
    +SetAnnotationAttributes(a)
    +
    +# Open up the database and do a plot.
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +# Create a Line3D object
    +line = CreateAnnotationObject("Line3D")
    +line.point1 = (0, -15, 0)
    +line.point2 = (0, 15, 0)
    +Test("line3d00")
    +
    +line.width = 7
    +Test("Line3d01")
    +
    +# Set the foreground color to see if it changes
    +a.foregroundColor = (0, 255, 255, 255)
    +SetAnnotationAttributes(a)
    +Test("line3d05")
    +
    +# Test line color
    +a.foregroundColor = (255, 255, 255, 255)
    +SetAnnotationAttributes(a)
    +line.useForegroundForLineColor = 0
    +line.color = (255, 0, 255, 255)
    +Test("line3d06")
    +
    +# Test arrow at start (flat)
    +line.arrow1Resolution = 1
    +line.arrow2Resolution = 1
    +line.arrow1Radius = 2
    +line.arrow2Radius = 2
    +line.arrow1Height = 5.6
    +line.arrow2Height = 5.6
    +line.arrow1 = 1
    +Test("line3d07")
    +# Test arrow at end
    +line.arrow1 = 0
    +line.arrow2 = 1
    +Test("line3d08")
    +
    +# Test both arrows 
    +line.arrow1 = 1
    +Test("line3d09")
    +
    +# Tubes
    +line.arrow1 = 0
    +line.lineType = line.TUBE
    +line.tubeRadius = 0.3
    +# make the arrow a cone
    +line.arrow2Resolution = 15
    +line.arrow2Radius = 1
    +line.arrow2Height = 2.8
    +Test("line3d10")
    +
    +
    +# Create more line objects
    +nextLine = CreateAnnotationObject("Line3D")
    +nextLine.useForegroundForLineColor = 0
    +nextLine.color=(0, 255, 0, 255)
    +nextLine.point1=(-15, 0, 0)
    +nextLine.point2=(15, 0, 0)
    +nextLine.arrow2 = 1
    +nextLine.lineType = line.TUBE
    +nextLine.tubeRadius = 0.3
    +nextLine.arrow2Resolution = 15
    +nextLine.arrow2Radius = 1
    +nextLine.arrow2Height = 2.8
    +Test("line3d11")
    +
    +# Start Removing lines
    +line.Delete()
    +Test("line3d12")
    +nextLine.Delete()
    +Test("line3d13")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_offscreensave.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_offscreensave.html new file mode 100644 index 000000000..7cc12fe79 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_offscreensave.html @@ -0,0 +1,122 @@ + +Results for rendering/offscreensave.py + +

    Results of VisIt Regression Test - rendering/offscreensave

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    offscreen_010.000.00
    offscreen_020.000.00
    offscreen_030.000.00
    offscreen_040.000.00
    offscreen_050.000.00
    offscreen_060.000.00
    offscreen_070.000.00
    offscreen_080.000.00
    offscreen_090.000.00
    offscreen_100.000.00
    offscreen_110.000.00
    md5 hash for 16384x16384 image
     "19d173a8af27d8b552a58bf7b99fa771" .eq. "19d173a8af27d8b552a58bf7b99fa771" : True
    md5 hash for 23168x23168 image
     "e76139eb88920334c6f931b5fec9c09d" .eq. "e76139eb88920334c6f931b5fec9c09d" : True
    md5 hash for 32768x16380 image
     "5a6315eae4bf7912a0ab6bd15f62d624" .eq. "5a6315eae4bf7912a0ab6bd15f62d624" : True
    md5 hash for 32768x32768 image
     "e76139eb88920334c6f931b5fec9c09d" .eq. "e76139eb88920334c6f931b5fec9c09d" : True
    md5 hash for 32768x24000 image
     "8c9c5ba01ab8132a42b7d0fa457cabba" .eq. "8c9c5ba01ab8132a42b7d0fa457cabba" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_offscreensave_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_offscreensave_py.html new file mode 100644 index 000000000..4c606654e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_offscreensave_py.html @@ -0,0 +1,194 @@ +rendering/offscreensave.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  offscreensave.py
    +#
    +#  Tests:      save window options
    +#              mesh      - 3D unstructured, multiple domains
    +#              plots     - pc, mesh 
    +#              operators - slice 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       29Mar04 
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Tue May 11 20:21:24 PDT 2004
    +#    Changed scalable rendering controls to use activation mode
    +#
    +#    Mark C. Miller, Thu Jan  6 15:09:06 PST 2005
    +#    Added a test that involves annotation objects
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Eric Brugger, Mon Aug  2 09:42:50 PDT 2021
    +#    Added test of 16384 x 16384 image save.
    +#
    +#    Kathleen Biagas, Fri Aug 27, 2021
    +#    Put tests into functions. Skip the large image test on Windows as it
    +#    doesn't yield the correct size image. Ensure the large image is saved
    +#    to run_dir so the test will execute on Windows properly once it can
    +#    be enabled.
    +#
    +#    Eric Brugger, Mon Nov 18 11:44:28 PST 2024
    +#    Updated the large image test and added several more.
    +#
    +# ----------------------------------------------------------------------------
    +
    +import hashlib
    +
    +def GeneralTests():
    +    TurnOnAllAnnotations()
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    view=GetView3D()
    +    view.viewNormal=(-0.528567, 0.374238, 0.761946)
    +    view.viewUp=(0.200044, 0.927212, -0.316639)
    +    SetView3D(view)
    +    Test("offscreen_01")
    +
    +    # build some savewindow attributes that DO NOT
    +    # use screen capture
    +    swa=SaveWindowAttributes()
    +    swa.screenCapture=0
    +    swa.width=400
    +    swa.height=400
    +
    +    # simple test to make sure we get all the annoations
    +    # when we save window using off-screen save
    +    Test("offscreen_02",swa)
    +
    +    # now, test saving at a different size
    +    swa.width=600
    +    swa.height=600
    +    Test("offscreen_03",swa)
    +
    +    # Ok, now diddle with annoations a bit and do some
    +    # more saves
    +    swa.width=300
    +    swa.height=300
    +    a = AnnotationAttributes()
    +    a.userInfoFlag = 0
    +    a.databaseInfoFlag = 0
    +    SetAnnotationAttributes(a)
    +    Test("offscreen_04",swa)
    +    a.legendInfoFlag = 0
    +    SetAnnotationAttributes(a)
    +    Test("offscreen_05",swa)
    +
    +    # Ok, now put the window into SR mode
    +    ra = GetRenderingAttributes()
    +    ra.scalableActivationMode = ra.Always
    +    SetRenderingAttributes(ra)
    +    Test("offscreen_06",swa)
    +
    +    # diddle some more with annoations
    +    a.databaseInfoFlag = 1
    +    a.legendInfoFlag = 1
    +    SetAnnotationAttributes(a)
    +    Test("offscreen_07",swa)
    +
    +    # Now, use screen capture mode to save the window
    +    Test("offscreen_08")
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +
    +    # Test off screen save of a 2D window
    +    AddPlot("Mesh", "curvmesh2d")
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +    swa.width=400
    +    swa.height=400
    +    Test("offscreen_09",swa)
    +
    +    # Test off screen save of a full frame 2D window
    +    view2=GetView2D()
    +    view2.fullFrameActivationMode=view2.On
    +    SetView2D(view2)
    +    swa.width=500
    +    swa.height=500
    +    Test("offscreen_10",swa)
    +
    +    # Now test some annotation objects
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    view=GetView3D()
    +    view.viewNormal=(-0.528567, 0.374238, 0.761946)
    +    view.viewUp=(0.200044, 0.927212, -0.316639)
    +    SetView3D(view)
    +
    +    # Create a time slider
    +    slider = CreateAnnotationObject("TimeSlider")
    +    slider.position = (0.5, 0.5)
    +    swa.width=300
    +    swa.height=300
    +    Test("offscreen_11",swa)
    +
    +    slider.Delete()
    +    DeleteAllPlots()
    +
    +def TestLargeImage(width, height, md5sum):
    +    # Test saving a large image
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    view2=GetView2D()
    +    view2.fullFrameActivationMode=view2.Off
    +    SetView2D(view2)
    +
    +    swa=SaveWindowAttributes()
    +    # ensure the image is written to the run_dir by providing full path
    +    imgOutName=pjoin(TestEnv.params["run_dir"], "image_%dx%d.png" % (width,height))
    +    swa.width = width
    +    swa.height = height
    +    swa.resConstraint = swa.NoConstraint
    +    swa.fileName = imgOutName
    +    swa.family = 0
    +    SetSaveWindowAttributes(swa)
    +    SaveWindow()
    +
    +    DeleteAllPlots()
    +
    +    # Comparing md5 sum instead of image, since the image is large.
    +    md5_hash = hashlib.md5()
    +    with open(imgOutName, "rb") as f:
    +        # Read and update hash in chunks of 4K
    +        for byte_block in iter(lambda: f.read(4096),b""):
    +            md5_hash.update(byte_block)
    +    TestValueEQ("md5 hash for %dx%d image" % (width,height), md5_hash.hexdigest(), md5sum)
    +
    +GeneralTests()
    +
    +if not sys.platform.startswith("win"):
    +    # Cannot perform this test on Windows as image size is limited
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    TestLargeImage(16384, 16384, "19d173a8af27d8b552a58bf7b99fa771")
    +    TestLargeImage(23168, 23168, "e76139eb88920334c6f931b5fec9c09d")
    +    TestLargeImage(32768, 16380, "5a6315eae4bf7912a0ab6bd15f62d624")
    +
    +    # The images sizes for the last 2 tests are too large so they
    +    # will get scaled to be within the size allowed. The 32768x32768
    +    # image will be 23168x23168 and the 32768x24000 will be 27071x19827.
    +    TestLargeImage(32768, 32768, "e76139eb88920334c6f931b5fec9c09d")
    +    TestLargeImage(32768, 24000, "8c9c5ba01ab8132a42b7d0fa457cabba")
    +
    +    CloseDatabase(silo_data_path("curv2d.silo"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_pixeldata.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_pixeldata.html new file mode 100644 index 000000000..8be84954f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_pixeldata.html @@ -0,0 +1,186 @@ + +Results for rendering/pixeldata.py + +

    Results of VisIt Regression Test - rendering/pixeldata

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Save transparent background image
    pixeldata_0_000.000.00
    pixeldata_0_010.190.00
    pixeldata_0_020.190.00
    pixeldata_0_030.190.00
    pixeldata_0_0499.65118.82
    pixeldata_0_0599.8361.09
    pixeldata_0_0698.34117.27
    pixeldata_0_0798.5160.19
    pixeldata_0_0899.84143.80
    pixeldata_0_0999.8361.09
    pixeldata_0_1098.34141.31
    pixeldata_0_11100.0859.76
    Save image plus depth
    pixeldata_1_000.000.00
    pixeldata_1_010.000.00
    pixeldata_1_020.000.00
    pixeldata_1_030.000.00
    pixeldata_1_040.000.00
    pixeldata_1_050.000.00
    pixeldata_1_060.000.00
    pixeldata_1_070.000.00
    +

    Final Return Code: 120

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_pixeldata_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_pixeldata_py.html new file mode 100644 index 000000000..ffc25c450 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_pixeldata_py.html @@ -0,0 +1,215 @@ +rendering/pixeldata.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  openexr.py 
    +#
    +#  Tests:      saving pixel data, transparent backgrounds in saved images.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Feb 15 14:16:45 PST 2018
    +#
    +#  Modifications:
    +# 
    +# ----------------------------------------------------------------------------
    +
    +# Saves pixel data.
    +def SavePixelData(filename, alpha, depth, luminance, value):
    +    s = GetSaveWindowAttributes()
    +    s.outputToCurrentDirectory = 1
    +    s.family = 0
    +    s.fileName = filename
    +    s.width  = TestEnv.params["width"]
    +    s.height = TestEnv.params["height"]
    +    s.screenCapture = 0
    +    s.format = s.PNG
    +    s.pixelData = 1
    +    if alpha:
    +        s.pixelData = s.pixelData | 2
    +    if luminance:
    +        s.pixelData = s.pixelData | 4
    +    if value:
    +        s.pixelData = s.pixelData | 8
    +    if depth:
    +        s.pixelData = s.pixelData | 16
    +    SetSaveWindowAttributes(s)
    +    SaveWindow()
    +
    +def test0():
    +    TestSection("Save transparent background image")
    +    db = silo_data_path("noise.silo")
    +    OpenDatabase(db)
    +    AddPlot("Contour", "hardyglobal")
    +    c = GetPlotOptions()
    +    c.SetMultiColor(2, (0, 0, 255, 100))
    +    c.SetMultiColor(3, (0, 255, 255, 100))
    +    c.SetMultiColor(4, (255, 0, 255, 100))
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    v3 = GetView3D()
    +    v3.viewNormal = (-0.569008, 0.313204, 0.760351)
    +    v3.focus = (0, 0, 0)
    +    v3.viewUp = (0.185488, 0.949682, -0.252384)
    +    v3.viewAngle = 30
    +    v3.parallelScale = 17.3205
    +    v3.nearPlane = -34.641
    +    v3.farPlane = 34.641
    +    v3.imagePan = (-0.0120947, 0.0574413)
    +    v3.imageZoom = 1.13829
    +    v3.perspective = 1
    +    v3.eyeAngle = 2
    +    v3.centerOfRotationSet = 0
    +    v3.centerOfRotation = (0, 0, 0)
    +    v3.axis3DScaleFlag = 0
    +    v3.axis3DScales = (1, 1, 1)
    +    v3.shear = (0, 0, 1)
    +    v3.windowValid = 1
    +    SetView3D(v3)
    +    Test("pixeldata_0_00")
    +    # Save a partially transparent Contour plot on a transparent background.
    +    SavePixelData("pd0", 1, 0, 0, 0)
    +
    +    # Save a partially transparent Contour plot on a transparent background -- with axes
    +    a = GetAnnotationAttributes()
    +    a.axes3D.bboxFlag = 1
    +    SetAnnotationAttributes(a)
    +    Test("pixeldata_0_01")
    +    SavePixelData("pd1", 1, 0, 0, 0)
    +
    +    # Test that we get the transparent background when we have a gradient bg.
    +    a = GetAnnotationAttributes()
    +    a.backgroundMode = a.Gradient
    +    a.gradientColor1 = (180, 100, 180, 255)
    +    a.gradientColor2 = (0, 0, 0, 255)
    +    a.axes3D.bboxFlag = 0
    +    a.foregroundColor = (255,255,255,255)
    +    SetAnnotationAttributes(a)
    +    Test("pixeldata_0_02")
    +    SavePixelData("pd2", 1, 0, 0, 0)
    +
    +    # Test that we get the transparent background when we have a gradient bg. with axes
    +    a.axes3D.bboxFlag = 1
    +    SetAnnotationAttributes(a)
    +    Test("pixeldata_0_03")
    +    SavePixelData("pd3", 1, 0, 0, 0)
    +
    +    # Restore solid bg, no axes
    +    a.backgroundMode = a.Solid
    +    a.axes3D.bboxFlag = 0
    +    a.foregroundColor = (0,0,0,255)
    +    SetAnnotationAttributes(a)
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +    # Make some expressions that let us plot a transparent image with a checker background.
    +    DefineScalarExpression("i", "floor(coords(ImageMesh)[0] / 20)")
    +    DefineScalarExpression("j", "floor(coords(ImageMesh)[1] / 20)")
    +    DefineScalarExpression("checker", "mod(i+j, 2)")
    +    DefineScalarExpression("gray", "100+checker*80")
    +    DefineScalarExpression("t", "alpha / 255.")
    +    DefineScalarExpression("omt", "1 - t")
    +    DefineVectorExpression("blend", "color4(t*red + omt*gray,t*green + omt*gray,t*blue + omt*gray, 255)")
    +    DefineVectorExpression("comp", "if(lt(alpha, 255), blend, color4(red, green, blue, 255))")
    +
    +    # Open the files we made.
    +    idx = 4
    +    for db in ("pd0.png", "pd1.png", "pd2.png", "pd3.png"):
    +        OpenDatabase(db)
    +        AddPlot("Pseudocolor", "alpha")
    +        DrawPlots()
    +        v = GetView2D()
    +        v.viewportCoords = (0, 1, 0, 1)
    +        SetView2D(v)
    +        Test("pixeldata_0_%02d" % idx)
    +        DeleteAllPlots()
    +        AddPlot("Truecolor", "comp")
    +        DrawPlots()
    +        Test("pixeldata_0_%02d" % (idx+1))
    +        DeleteAllPlots()
    +        CloseDatabase(db)
    +        idx = idx + 2
    +
    +def test1():
    +    TestSection("Save image plus depth")
    +    db = silo_data_path("multi_rect3d.silo")
    +    OpenDatabase(db)
    +    AddPlot("Contour", "u")
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (-0.483301, 0.412135, 0.772376)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.218992, 0.911123, -0.349139)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 0.5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +    # Save against a solid background.
    +    Test("pixeldata_1_00")
    +    SavePixelData("pdz0", 0, 1, 0, 0)
    +
    +    # Save against a solid background adding axes
    +    a = GetAnnotationAttributes()
    +    a.axes3D.bboxFlag = 1
    +    SetAnnotationAttributes(a)
    +    Test("pixeldata_1_01")
    +    SavePixelData("pdz1", 0, 1, 0, 0)
    +
    +    # Save against a gradient background 
    +    a.backgroundMode = a.Gradient
    +    a.gradientColor1 = (180, 100, 180, 255)
    +    a.gradientColor2 = (0, 0, 0, 255)
    +    a.axes3D.bboxFlag = 0
    +    a.foregroundColor = (255,255,255,255)
    +    SetAnnotationAttributes(a)
    +    Test("pixeldata_1_02")
    +    SavePixelData("pdz2", 0, 1, 0, 0)
    +
    +    # Save against a gradient background adding axes
    +    a.backgroundMode = a.Gradient
    +    a.gradientColor1 = (180, 100, 180, 255)
    +    a.gradientColor2 = (0, 0, 0, 255)
    +    a.axes3D.bboxFlag = 1
    +    a.foregroundColor = (255,255,255,255)
    +    SetAnnotationAttributes(a)
    +    Test("pixeldata_1_03")
    +    SavePixelData("pdz3", 0, 1, 0, 0)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +    # Open the files we made.
    +    idx = 4
    +    for db in ("pdz0.png", "pdz1.png", "pdz2.png", "pdz3.png"):
    +        OpenDatabase(db)
    +        AddPlot("Pseudocolor", "depth")
    +        pc = GetPlotOptions()
    +        pc.max = 220.
    +        pc.maxFlag = 1
    +        SetPlotOptions(pc)
    +        DrawPlots()
    +        v = GetView2D()
    +        v.viewportCoords = (0, 1, 0, 1)
    +        SetView2D(v)
    +        Test("pixeldata_1_%02d" % idx)
    +        DeleteAllPlots()
    +        CloseDatabase(db)
    +        idx = idx + 1
    +
    +def main():
    +    test0()
    +    test1()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_pointGlyphing.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_pointGlyphing.html new file mode 100644 index 000000000..f3e484df7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_pointGlyphing.html @@ -0,0 +1,900 @@ + +Results for rendering/pointGlyphing.py + +

    Results of VisIt Regression Test - rendering/pointGlyphing

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Pseudocolor_Box_polyData_vertex.vtk0.000.00
    Pseudocolor_Axis_polyData_vertex.vtk0.000.00
    Pseudocolor_Icosahedron_polyData_vertex.vtk0.000.00
    Pseudocolor_Octahedron_polyData_vertex.vtk0.000.00
    Pseudocolor_Tetrahedron_polyData_vertex.vtk0.000.00
    Pseudocolor_SphereGeometry_polyData_vertex.vtk0.000.00
    Pseudocolor_Point_polyData_vertex.vtk0.000.00
    Pseudocolor_Sphere_polyData_vertex.vtk0.000.00
    Mesh_Box_polyData_vertex.vtk0.000.00
    Mesh_Axis_polyData_vertex.vtk0.000.00
    Mesh_Icosahedron_polyData_vertex.vtk0.000.00
    Mesh_Octahedron_polyData_vertex.vtk0.000.00
    Mesh_Tetrahedron_polyData_vertex.vtk0.000.00
    Mesh_SphereGeometry_polyData_vertex.vtk0.000.00
    Mesh_Point_polyData_vertex.vtk0.000.00
    Mesh_Sphere_polyData_vertex.vtk0.000.00
    Subset_Box_polyData_vertex.vtk0.000.00
    Subset_Axis_polyData_vertex.vtk0.000.00
    Subset_Icosahedron_polyData_vertex.vtk0.000.00
    Subset_Octahedron_polyData_vertex.vtk0.000.00
    Subset_Tetrahedron_polyData_vertex.vtk0.000.00
    Subset_SphereGeometry_polyData_vertex.vtk0.000.00
    Subset_Point_polyData_vertex.vtk0.000.00
    Subset_Sphere_polyData_vertex.vtk0.000.00
    Pseudocolor_Box_polyData_polyVertex.vtk0.000.00
    Pseudocolor_Axis_polyData_polyVertex.vtk0.000.00
    Pseudocolor_Icosahedron_polyData_polyVertex.vtk0.000.00
    Pseudocolor_Octahedron_polyData_polyVertex.vtk0.000.00
    Pseudocolor_Tetrahedron_polyData_polyVertex.vtk0.000.00
    Pseudocolor_SphereGeometry_polyData_polyVertex.vtk0.000.00
    Pseudocolor_Point_polyData_polyVertex.vtk0.000.00
    Pseudocolor_Sphere_polyData_polyVertex.vtk0.000.00
    Mesh_Box_polyData_polyVertex.vtk0.000.00
    Mesh_Axis_polyData_polyVertex.vtk0.000.00
    Mesh_Icosahedron_polyData_polyVertex.vtk0.000.00
    Mesh_Octahedron_polyData_polyVertex.vtk0.000.00
    Mesh_Tetrahedron_polyData_polyVertex.vtk0.000.00
    Mesh_SphereGeometry_polyData_polyVertex.vtk0.000.00
    Mesh_Point_polyData_polyVertex.vtk0.000.00
    Mesh_Sphere_polyData_polyVertex.vtk0.000.00
    Subset_Box_polyData_polyVertex.vtk0.000.00
    Subset_Axis_polyData_polyVertex.vtk0.000.00
    Subset_Icosahedron_polyData_polyVertex.vtk0.000.00
    Subset_Octahedron_polyData_polyVertex.vtk0.000.00
    Subset_Tetrahedron_polyData_polyVertex.vtk0.000.00
    Subset_SphereGeometry_polyData_polyVertex.vtk0.000.00
    Subset_Point_polyData_polyVertex.vtk0.000.00
    Subset_Sphere_polyData_polyVertex.vtk0.000.00
    Pseudocolor_Box_polyData_mixedVertex.vtk0.000.00
    Pseudocolor_Axis_polyData_mixedVertex.vtk0.000.00
    Pseudocolor_Icosahedron_polyData_mixedVertex.vtk0.000.00
    Pseudocolor_Octahedron_polyData_mixedVertex.vtk0.000.00
    Pseudocolor_Tetrahedron_polyData_mixedVertex.vtk0.000.00
    Pseudocolor_SphereGeometry_polyData_mixedVertex.vtk0.000.00
    Pseudocolor_Point_polyData_mixedVertex.vtk0.000.00
    Pseudocolor_Sphere_polyData_mixedVertex.vtk0.000.00
    Mesh_Box_polyData_mixedVertex.vtk0.000.00
    Mesh_Axis_polyData_mixedVertex.vtk0.000.00
    Mesh_Icosahedron_polyData_mixedVertex.vtk0.000.00
    Mesh_Octahedron_polyData_mixedVertex.vtk0.000.00
    Mesh_Tetrahedron_polyData_mixedVertex.vtk0.000.00
    Mesh_SphereGeometry_polyData_mixedVertex.vtk0.000.00
    Mesh_Point_polyData_mixedVertex.vtk0.000.00
    Mesh_Sphere_polyData_mixedVertex.vtk0.000.00
    Subset_Box_polyData_mixedVertex.vtk0.000.00
    Subset_Axis_polyData_mixedVertex.vtk0.000.00
    Subset_Icosahedron_polyData_mixedVertex.vtk0.000.00
    Subset_Octahedron_polyData_mixedVertex.vtk0.000.00
    Subset_Tetrahedron_polyData_mixedVertex.vtk0.000.00
    Subset_SphereGeometry_polyData_mixedVertex.vtk0.000.00
    Subset_Point_polyData_mixedVertex.vtk0.000.00
    Subset_Sphere_polyData_mixedVertex.vtk0.000.00
    Pseudocolor_Box_ugrid_vertex.vtk0.000.00
    Pseudocolor_Axis_ugrid_vertex.vtk0.000.00
    Pseudocolor_Icosahedron_ugrid_vertex.vtk0.000.00
    Pseudocolor_Octahedron_ugrid_vertex.vtk0.000.00
    Pseudocolor_Tetrahedron_ugrid_vertex.vtk0.000.00
    Pseudocolor_SphereGeometry_ugrid_vertex.vtk0.000.00
    Pseudocolor_Point_ugrid_vertex.vtk0.000.00
    Pseudocolor_Sphere_ugrid_vertex.vtk0.000.00
    Mesh_Box_ugrid_vertex.vtk0.000.00
    Mesh_Axis_ugrid_vertex.vtk0.000.00
    Mesh_Icosahedron_ugrid_vertex.vtk0.000.00
    Mesh_Octahedron_ugrid_vertex.vtk0.000.00
    Mesh_Tetrahedron_ugrid_vertex.vtk0.000.00
    Mesh_SphereGeometry_ugrid_vertex.vtk0.000.00
    Mesh_Point_ugrid_vertex.vtk0.000.00
    Mesh_Sphere_ugrid_vertex.vtk0.000.00
    Subset_Box_ugrid_vertex.vtk0.000.00
    Subset_Axis_ugrid_vertex.vtk0.000.00
    Subset_Icosahedron_ugrid_vertex.vtk0.000.00
    Subset_Octahedron_ugrid_vertex.vtk0.000.00
    Subset_Tetrahedron_ugrid_vertex.vtk0.000.00
    Subset_SphereGeometry_ugrid_vertex.vtk0.000.00
    Subset_Point_ugrid_vertex.vtk0.000.00
    Subset_Sphere_ugrid_vertex.vtk0.000.00
    Pseudocolor_Box_ugrid_polyVertex.vtk0.000.00
    Pseudocolor_Axis_ugrid_polyVertex.vtk0.000.00
    Pseudocolor_Icosahedron_ugrid_polyVertex.vtk0.000.00
    Pseudocolor_Octahedron_ugrid_polyVertex.vtk0.000.00
    Pseudocolor_Tetrahedron_ugrid_polyVertex.vtk0.000.00
    Pseudocolor_SphereGeometry_ugrid_polyVertex.vtk0.000.00
    Pseudocolor_Point_ugrid_polyVertex.vtk0.000.00
    Pseudocolor_Sphere_ugrid_polyVertex.vtk0.000.00
    Mesh_Box_ugrid_polyVertex.vtk0.000.00
    Mesh_Axis_ugrid_polyVertex.vtk0.000.00
    Mesh_Icosahedron_ugrid_polyVertex.vtk0.000.00
    Mesh_Octahedron_ugrid_polyVertex.vtk0.000.00
    Mesh_Tetrahedron_ugrid_polyVertex.vtk0.000.00
    Mesh_SphereGeometry_ugrid_polyVertex.vtk0.000.00
    Mesh_Point_ugrid_polyVertex.vtk0.000.00
    Mesh_Sphere_ugrid_polyVertex.vtk0.000.00
    Subset_Box_ugrid_polyVertex.vtk0.000.00
    Subset_Axis_ugrid_polyVertex.vtk0.000.00
    Subset_Icosahedron_ugrid_polyVertex.vtk0.000.00
    Subset_Octahedron_ugrid_polyVertex.vtk0.000.00
    Subset_Tetrahedron_ugrid_polyVertex.vtk0.000.00
    Subset_SphereGeometry_ugrid_polyVertex.vtk0.000.00
    Subset_Point_ugrid_polyVertex.vtk0.000.00
    Subset_Sphere_ugrid_polyVertex.vtk0.000.00
    Pseudocolor_Box_ugrid_mixedVertex.vtk0.000.00
    Pseudocolor_Axis_ugrid_mixedVertex.vtk0.000.00
    Pseudocolor_Icosahedron_ugrid_mixedVertex.vtk0.000.00
    Pseudocolor_Octahedron_ugrid_mixedVertex.vtk0.000.00
    Pseudocolor_Tetrahedron_ugrid_mixedVertex.vtk0.000.00
    Pseudocolor_SphereGeometry_ugrid_mixedVertex.vtk0.000.00
    Pseudocolor_Point_ugrid_mixedVertex.vtk0.000.00
    Pseudocolor_Sphere_ugrid_mixedVertex.vtk0.000.00
    Mesh_Box_ugrid_mixedVertex.vtk0.000.00
    Mesh_Axis_ugrid_mixedVertex.vtk0.000.00
    Mesh_Icosahedron_ugrid_mixedVertex.vtk0.000.00
    Mesh_Octahedron_ugrid_mixedVertex.vtk0.000.00
    Mesh_Tetrahedron_ugrid_mixedVertex.vtk0.000.00
    Mesh_SphereGeometry_ugrid_mixedVertex.vtk0.000.00
    Mesh_Point_ugrid_mixedVertex.vtk0.000.00
    Mesh_Sphere_ugrid_mixedVertex.vtk0.000.00
    Subset_Box_ugrid_mixedVertex.vtk0.000.00
    Subset_Axis_ugrid_mixedVertex.vtk0.000.00
    Subset_Icosahedron_ugrid_mixedVertex.vtk0.000.00
    Subset_Octahedron_ugrid_mixedVertex.vtk0.000.00
    Subset_Tetrahedron_ugrid_mixedVertex.vtk0.000.00
    Subset_SphereGeometry_ugrid_mixedVertex.vtk0.000.00
    Subset_Point_ugrid_mixedVertex.vtk0.000.00
    Subset_Sphere_ugrid_mixedVertex.vtk0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_pointGlyphing_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_pointGlyphing_py.html new file mode 100644 index 000000000..6e790f7e0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_pointGlyphing_py.html @@ -0,0 +1,65 @@ +rendering/pointGlyphing.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  pointGlyphing.py
    +#
    +#  Tests:      mesh      - 3D point
    +#              plots     - pseudocolor, subset, mesh
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       August 28, 2024 
    +#
    +#  Modificatons:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def TestVertexOnlyFiles():
    +
    +    # These test files were designed to test vertex-only,
    +    # poly-vertex only and mixed vertex and poly-vertex datasets.
    +    # The polyData and ugrid versions should be identical.
    +    vtk_vertex_files=["polyData_vertex.vtk",
    +                      "polyData_polyVertex.vtk",
    +                      "polyData_mixedVertex.vtk",
    +                      "ugrid_vertex.vtk",
    +                      "ugrid_polyVertex.vtk",
    +                      "ugrid_mixedVertex.vtk"]
    +
    +    glyphNames=["Box", "Axis", "Icosahedron", "Octahedron", "Tetrahedron", "SphereGeometry", "Point", "Sphere"]
    +
    +    plots={'Pseudocolor':'foo_cells','Mesh':'mesh','Subset':'mesh'}
    +
    +    for f in vtk_vertex_files:
    +        OpenDatabase(data_path("vtk_test_data",f))
    +
    +        for p,v in plots.items():
    +            AddPlot(p,v)
    +            DrawPlots()
    +            v3d = GetView3D()
    +            v3d.viewNormal = (-0.396043, 0.723303, 0.56567)
    +            v3d.viewUp = (0.246238, 0.677138, -0.693434)
    +            SetView3D(v3d);
    +
    +            if p == 'Pseudocolor':
    +                atts=PseudocolorAttributes()
    +            elif p == 'Mesh':
    +                atts=MeshAttributes()
    +            else:
    +                atts=SubsetAttributes()
    +
    +            atts.pointSize = 0.5
    +            atts.pointSizePixels = 10
    +
    +            for i,n in enumerate(glyphNames):
    +                atts.pointType = i
    +                SetPlotOptions(atts)
    +                Test(p+"_"+n+"_"+f)
    +
    +            DeleteAllPlots()
    +
    +        CloseDatabase(data_path("vtk_test_data",f))
    +
    +TestVertexOnlyFiles()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_renderpoints.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_renderpoints.html new file mode 100644 index 000000000..3a38f289d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_renderpoints.html @@ -0,0 +1,444 @@ + +Results for rendering/renderpoints.py + +

    Results of VisIt Regression Test - rendering/renderpoints

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Set pointSizePixels for plots that support it
    renderpoint_0_000.000.00
    renderpoint_0_010.000.00
    renderpoint_0_020.000.00
    renderpoint_0_030.000.00
    renderpoint_0_040.000.00
    renderpoint_0_050.000.00
    renderpoint_0_060.000.00
    renderpoint_0_070.000.00
    renderpoint_0_080.000.00
    renderpoint_0_090.000.00
    renderpoint_0_100.000.00
    renderpoint_0_110.000.00
    renderpoint_0_120.000.00
    renderpoint_0_130.000.00
    renderpoint_0_140.000.00
    Check points to glyph transition
    renderpoint_1_000.000.00
    renderpoint_1_010.000.00
    renderpoint_1_020.000.00
    renderpoint_1_030.000.00
    Check points drawn as spheres
    renderpoint_2_000.000.00
    renderpoint_2_010.000.00
    renderpoint_2_020.000.00
    renderpoint_2_030.000.00
    renderpoint_2_040.000.00
    renderpoint_2_050.000.00
    renderpoint_2_060.000.00
    renderpoint_2_070.000.00
    renderpoint_2_080.000.00
    renderpoint_2_090.000.00
    Check glyph types for Mesh plot
    renderpoint_3_000.000.00
    renderpoint_3_010.000.00
    renderpoint_3_020.000.00
    renderpoint_3_030.000.00
    renderpoint_3_040.000.00
    Check glyph types for Pseudocolor plot
    renderpoint_3_050.000.00
    renderpoint_3_060.000.00
    renderpoint_3_070.000.00
    renderpoint_3_080.000.00
    renderpoint_3_090.000.00
    Check glyph types for Scatter plot
    renderpoint_3_100.000.00
    renderpoint_3_110.000.00
    renderpoint_3_120.000.00
    renderpoint_3_130.000.00
    renderpoint_3_140.000.00
    Check glyph types for FilledBoundary plot
    renderpoint_3_150.000.00
    renderpoint_3_160.000.00
    renderpoint_3_170.000.00
    renderpoint_3_180.000.00
    renderpoint_3_190.000.00
    Check all glyph types for Subset plot
    renderpoint_3_200.000.00
    renderpoint_3_210.000.00
    renderpoint_3_220.000.00
    renderpoint_3_230.000.00
    renderpoint_3_240.000.00
    Check scaling glyphs by a variable
    renderpoint_4_000.000.00
    renderpoint_4_010.000.00
    renderpoint_4_020.000.00
    renderpoint_4_030.000.00
    Check glyphed plots restored from session files
    renderpoint_5_000.000.00
    renderpoint_5_010.000.00
    renderpoint_5_020.000.00
    renderpoint_5_030.000.00
    renderpoint_5_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_renderpoints_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_renderpoints_py.html new file mode 100644 index 000000000..5b9a1d490 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_renderpoints_py.html @@ -0,0 +1,347 @@ +rendering/renderpoints.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  renderpoints.py
    +#
    +#  Tests:      mesh      - 3D point
    +#              plots     - pseudocolor, subset, mesh
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Aug 26 13:39:07 PST 2005
    +#
    +#  Modificatons:
    +#    Mark C. Miller, Wed Jan 21 10:00:10 PST 2009
    +#    Removed silly comment regarding global annotation object 'a'
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Thu Dec 15 09:16:39 PST 2016
    +#    Added tests for other glyph types, scaling by variable and restoring
    +#    session files.
    +#
    +#    Kathleen Biagas, Wed Feb 16 09:15:45 PST 2022
    +#    Replace use of meshatts 'foregroundFlag' with meshColorSource.
    +#
    +# ----------------------------------------------------------------------------
    +
    +#
    +# General testing function
    +#
    +def TestPlot(plotName, plotVar, atts, cases):
    +    AddPlot(plotName, plotVar)
    +    if atts == None:
    +        atts = eval(plotName + "Attributes()")
    +    atts.pointType = atts.Point
    +    atts.pointSizePixels = 1
    +    SetPlotOptions(atts)
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.51943, 0.317321, 0.79341)
    +    v.focus = (0.499552, 0.500362, 0.499909)
    +    v.viewUp = (0.172325, 0.948317, -0.266458)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.865387
    +    v.nearPlane = -1.73077
    +    v.farPlane = 1.73077
    +    v.imagePan = (-0.0139929, 0.0505193)
    +    v.imageZoom = 1.25645
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.499552, 0.500362, 0.499909)
    +    SetView3D(v)
    +    Test("renderpoint" + cases[0])
    +
    +    atts.pointSizePixels = 5
    +    SetPlotOptions(atts)
    +    Test("renderpoint" + cases[1])
    +
    +    # Make sure that it remains set after regenerating the plot.
    +    TurnDomainsOff(("domain3", "domain4", "domain7", "domain8"))
    +    Test("renderpoint" + cases[2])
    +    TurnDomainsOn()
    +    DeleteActivePlots()
    +
    +#
    +# Test plots that can render their points using GL points.
    +#
    +def test0():
    +    TestSection("Set pointSizePixels for plots that support it")
    +    # Test Mesh
    +    atts = MeshAttributes()
    +    atts.meshColor = (100,150,255)
    +    atts.meshColorSource = atts.MeshCustom
    +    TestPlot("Mesh", "StarMesh", atts, ("_0_00", "_0_01", "_0_02"))
    +
    +    # Test Pseudocolor
    +    TestPlot("Pseudocolor", "Matnos", None, ("_0_03", "_0_04", "_0_05"))
    +
    +    # Test Scatter
    +    atts = ScatterAttributes()
    +    atts.var2 = "vy"
    +    atts.var3 = "vz"
    +    atts.var3Role = atts.Coordinate2
    +    atts.var4 = "Matnos"
    +    atts.var4Role = atts.Color
    +    TestPlot("Scatter", "vx", atts, ("_0_06", "_0_07", "_0_08"))
    +
    +    # Test FilledBoundary
    +    TestPlot("FilledBoundary", "stars", None, ("_0_09", "_0_10", "_0_11"))
    +
    +    # Test Subset
    +    TestPlot("Subset", "domains", None, ("_0_12", "_0_13", "_0_14"))
    +
    +#
    +# General testing function #2
    +#
    +def TestPlot1(plotName, plotVar, atts, cases):
    +    AddPlot(plotName, plotVar)
    +    if atts == None:
    +        atts = eval(plotName + "Attributes()")
    +    atts.pointType = atts.Point
    +    atts.pointSizePixels = 5
    +    SetPlotOptions(atts)
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.51943, 0.317321, 0.79341)
    +    v.focus = (0.499552, 0.500362, 0.499909)
    +    v.viewUp = (0.172325, 0.948317, -0.266458)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.865387
    +    v.nearPlane = -1.73077
    +    v.farPlane = 1.73077
    +    v.imagePan = (-0.0139929, 0.0505193)
    +    v.imageZoom = 1.25645
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.499552, 0.500362, 0.499909)
    +    SetView3D(v)
    +    Test("renderpoint" + cases[0])
    +
    +    atts.pointType = atts.Box
    +    SetPlotOptions(atts)
    +    Test("renderpoint" + cases[1])
    +    DeleteActivePlots()
    +
    +#
    +# Test that we can switch to other glyph types after starting up
    +# in point glyph mode, which does not use the glyph filters.
    +#
    +def test1():
    +    TestSection("Check points to glyph transition")
    +    # Test Pseudocolor
    +    TestPlot1("Pseudocolor", "Matnos", None, ("_1_00", "_1_01"))
    +    # Test FilledBoundary
    +    TestPlot1("FilledBoundary", "stars", None, ("_1_02", "_1_03"))
    +
    +#
    +# General testing function #3
    +#
    +def TestPlot2(plotName, plotVar, atts, cases):
    +    AddPlot(plotName, plotVar)
    +    if atts == None:
    +        atts = eval(plotName + "Attributes()")
    +    atts.pointType = atts.Sphere
    +    atts.pointSizePixels = 10
    +    SetPlotOptions(atts)
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.51943, 0.317321, 0.79341)
    +    v.focus = (0.499552, 0.500362, 0.499909)
    +    v.viewUp = (0.172325, 0.948317, -0.266458)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.865387
    +    v.nearPlane = -1.73077
    +    v.farPlane = 1.73077
    +    v.imagePan = (-0.0139929, 0.0505193)
    +    v.imageZoom = 1.25645
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.499552, 0.500362, 0.499909)
    +    SetView3D(v)
    +    Test("renderpoint" + cases[0])
    +
    +    atts.pointSizePixels = 20
    +    SetPlotOptions(atts)
    +    Test("renderpoint" + cases[1])
    +    DeleteActivePlots()
    +
    +#
    +# Test that all plots that support sphere point texturing can do it.
    +#
    +def test2():
    +    TestSection("Check points drawn as spheres")
    +
    +    # Test Mesh
    +    atts = MeshAttributes()
    +    atts.meshColor = (100,150,255)
    +    atts.meshColorSource = atts.MeshCustom
    +    TestPlot2("Mesh", "StarMesh", atts, ("_2_00", "_2_01"))
    +
    +    # Test Pseudocolor
    +    TestPlot2("Pseudocolor", "Matnos", None, ("_2_02", "_2_03"))
    +
    +    # Test Scatter
    +    atts = ScatterAttributes()
    +    atts.var2 = "vy"
    +    atts.var3 = "vz"
    +    atts.var3Role = atts.Coordinate2
    +    atts.var4 = "Matnos"
    +    atts.var4Role = atts.Color
    +    TestPlot2("Scatter", "vx", atts, ("_2_04", "_2_05"))
    +
    +    # Test FilledBoundary
    +    TestPlot2("FilledBoundary", "stars", None, ("_2_06", "_2_07"))
    +
    +    # Test Subset
    +    TestPlot2("Subset", "domains", None, ("_2_08", "_2_09"))
    +
    +def TestPlot3(plotName, plotVar, atts, cases):
    +    AddPlot(plotName, plotVar)
    +    if atts == None:
    +        atts = eval(plotName + "Attributes()")
    +    atts.pointType = atts.Axis
    +    SetPlotOptions(atts)
    +    DrawPlots()
    +
    +    Test("renderpoint" + cases[0])
    +
    +    atts.pointType = atts.Icosahedron
    +    atts.pointSize = 0.1
    +    SetPlotOptions(atts)
    +    Test("renderpoint" + cases[1])
    +
    +    atts.pointType = atts.Octahedron
    +    SetPlotOptions(atts)
    +    Test("renderpoint" + cases[2])
    +
    +    atts.pointSize = 0.05
    +    atts.pointType = atts.Tetrahedron
    +    SetPlotOptions(atts)
    +    Test("renderpoint" + cases[3])
    +
    +    atts.pointType = atts.SphereGeometry
    +    SetPlotOptions(atts)
    +    Test("renderpoint" + cases[4])
    +
    +    DeleteActivePlots()
    +
    +#
    +# Test that all plots that support sphere point texturing can do it.
    +#
    +def test3():
    +    TestSection("Check glyph types for Mesh plot")
    +    atts = MeshAttributes()
    +    atts.meshColor = (152,203,0)
    +    atts.meshColorSource = atts.MeshCustom
    +    TestPlot3("Mesh", "StarMesh", atts, ("_3_00", "_3_01", "_3_02", "_3_03", "_3_04"))
    +
    +    TestSection("Check glyph types for Pseudocolor plot")
    +    # Test Pseudocolor
    +    TestPlot3("Pseudocolor", "Matnos", None, ("_3_05", "_3_06", "_3_07", "_3_08", "_3_09"))
    +
    +    TestSection("Check glyph types for Scatter plot")
    +    # Test Scatter
    +    atts = ScatterAttributes()
    +    atts.var2 = "vy"
    +    atts.var3 = "vz"
    +    atts.var3Role = atts.Coordinate2
    +    atts.var4 = "Matnos"
    +    atts.var4Role = atts.Color
    +    TestPlot3("Scatter", "vx", atts, ("_3_10", "_3_11", "_3_12", "_3_13", "_3_14"))
    +
    +    TestSection("Check glyph types for FilledBoundary plot")
    +    # Test FilledBoundary
    +    TestPlot3("FilledBoundary", "stars", None, ("_3_15", "_3_16", "_3_17", "_3_18", "_3_19"))
    +
    +    # Test Subset
    +    TestSection("Check all glyph types for Subset plot")
    +    TestPlot3("Subset", "domains", None, ("_3_20", "_3_21", "_3_22", "_3_23", "_3_24"))
    +
    +def TestPlot4(plotName, plotVar, atts, case):
    +    AddPlot(plotName, plotVar)
    +    if atts == None:
    +        atts = eval(plotName + "Attributes()")
    +    atts.pointType = atts.SphereGeometry
    +    atts.pointSize = 0.007
    +    atts.pointSizeVarEnabled = 1
    +    atts.pointSizeVar = "Matnos"
    +    SetPlotOptions(atts)
    +    DrawPlots()
    +
    +    Test("renderpoint" + case)
    +
    +    DeleteActivePlots()
    +
    +#
    +# Test that all plots that support scaling glyphs by a variable can do it.
    +#
    +def test4():
    +    TestSection("Check scaling glyphs by a variable")
    +    atts = MeshAttributes()
    +    atts.meshColor = (152,203,0)
    +    atts.meshColorSource = atts.MeshCustom
    +    TestPlot4("Mesh", "StarMesh", atts, "_4_00")
    +
    +    # Test Pseudocolor
    +    TestPlot4("Pseudocolor", "Matnos", None, "_4_01")
    +
    +    # Test FilledBoundary
    +    TestPlot4("FilledBoundary", "stars", None, "_4_02")
    +
    +    # Test Subset
    +    TestPlot4("Subset", "domains", None, "_4_03")
    +
    +#
    +# Test that glyphed plots can be restored from session files
    +#
    +def test5():
    +    TestSection("Check glyphed plots restored from session files")
    +    DeleteAllPlots()
    +    RestoreSessionWithDifferentSources(tests_path("rendering", "filledBoundaryStars.session"), 0, silo_data_path("galaxy0000.silo"))
    +    Test("renderpoint_5_00")
    +
    +    DeleteAllPlots()
    +    RestoreSessionWithDifferentSources(tests_path("rendering", "meshNoisePoint.session"), 0, silo_data_path("noise.silo"))
    +    Test("renderpoint_5_01")
    +
    +    DeleteAllPlots()
    +    RestoreSessionWithDifferentSources(tests_path("rendering", "pcNoisePoint.session"), 0, silo_data_path("noise.silo"))
    +    Test("renderpoint_5_02")
    +
    +    DeleteAllPlots()
    +    RestoreSessionWithDifferentSources(tests_path("rendering", "scatterNoiseHG.session"), 0, silo_data_path("noise.silo"))
    +    Test("renderpoint_5_03")
    +
    +    DeleteAllPlots()
    +    RestoreSessionWithDifferentSources(tests_path("rendering", "subsetNoisePoint.session"), 0, silo_data_path("noise.silo"))
    +    Test("renderpoint_5_04")
    +
    +
    +def main():
    +    # Turn off all annotation
    +    TurnOffAllAnnotations()
    +
    +    OpenDatabase(silo_data_path("galaxy0000.silo"))
    +
    +    test0()
    +    test1()
    +    test2()
    +    test3()
    +    test4()
    +
    +    CloseDatabase(silo_data_path("galaxy0000.silo"))
    +
    +    test5()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_saveformats.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_saveformats.html new file mode 100644 index 000000000..ff0ac6b51 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_saveformats.html @@ -0,0 +1,120 @@ + +Results for rendering/saveformats.py + +

    Results of VisIt Regression Test - rendering/saveformats

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Curve Formats
    saveformat_curve0 modifications totalling 0 lines
    saveformat_ps0 modifications totalling 0 lines
    saveformat_ultra0 modifications totalling 0 lines
    Image Formats via Screen Capture
    saveformat_bmp0 modifications totalling 0 lines
    saveformat_jpeg0 modifications totalling 0 lines
    saveformat_png0 modifications totalling 0 lines
    saveformat_ppm0 modifications totalling 0 lines
    saveformat_rgb0 modifications totalling 0 lines
    saveformat_tif0 modifications totalling 0 lines
    Image Formats via Off Screen
    saveformat_offscreen_bmp0 modifications totalling 0 lines
    saveformat_offscreen_jpeg0 modifications totalling 0 lines
    saveformat_offscreen_png0 modifications totalling 0 lines
    saveformat_offscreen_ppm0 modifications totalling 0 lines
    saveformat_offscreen_rgb0 modifications totalling 0 lines
    saveformat_offscreen_tif0 modifications totalling 0 lines
    Geometry Formats
    saveformat_stl0 modifications totalling 0 lines
    saveformat_obj0 modifications totalling 0 lines
    saveformat_vtk0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_saveformats_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_saveformats_py.html new file mode 100644 index 000000000..bc0c18ec5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_saveformats_py.html @@ -0,0 +1,272 @@ +rendering/saveformats.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  saveformats.py
    +#
    +#  Tests:      save window formats 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       September 20, 2005 
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Mon Apr 23 14:07:35 EDT 2007
    +#    Don't create a mesh plot when we're saving geometry formats, since
    +#    the new behavior is to separate plots into different files (as they
    +#    typically have different variables and geometry types).
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Tue Feb  2 10:55:43 PST 2010
    +#    Fixed problem w/ setting active window that allowed errors to propagate
    +#    between test cases.
    +#
    +#    Mark C. Miller, Wed Apr  7 19:02:29 PDT 2010
    +#    Be smarter about testing curve formats while in scalable mode.
    +# ----------------------------------------------------------------------------
    +
    +# ----------------------------------------------------------------------------
    +# Function: FileExists 
    +#
    +# Purpose:
    +#   Tests if a file exists and, if the file is being written, waits
    +#   until the file size does not change for growthInterval seconds. If the
    +#   file exists but is of zero size, that is the same as it NOT existing
    +#
    +# waitToAppear: number of seconds to wait for the file to first appear
    +# growhtInterval: number of seconds between successive stats on the file 
    +#
    +# Programmer: Mark C. Miller
    +#             September 20, 2005
    +#
    +# ----------------------------------------------------------------------------
    +
    +from PIL import Image
    +
    +def FileExists(name, waitToAppear, growthInterval):
    +    if os.path.isfile(name) == 0:
    +        time.sleep(waitToAppear)
    +    if os.path.isfile(name) == 0:
    +        return 0
    +    curSize = os.stat(name)[ST_SIZE]
    +    if growthInterval == 0:
    +        if curSize == 0:
    +            return 0
    +    else:
    +            return 1
    +    while 1:
    +        time.sleep(growthInterval)
    +        size = os.stat(name)[ST_SIZE]
    +        if size == curSize:
    +            if curSize == 0:
    +                return 0
    +            else:
    +                return 1
    +            curSize = size
    +
    +# ----------------------------------------------------------------------------
    +# Function: SaveFileInfo
    +#
    +# Purpose:
    +#   Return a string representing the appropriate extension for the
    +#   given file format and return bools indicating if the format supports
    +#   curves, images and/or geometry.
    +#
    +# Programmer: Mark C. Miller
    +#             September 20, 2005
    +#
    +# ----------------------------------------------------------------------------
    +def SaveFileInfo(fmt):
    +    swa = SaveWindowAttributes()
    +    if (fmt == swa.POSTSCRIPT):
    +        return ("ps", 1, 0, 0)
    +    elif (fmt == swa.CURVE):
    +        return ("curve", 1, 0, 0)
    +    elif (fmt == swa.ULTRA):
    +        return ("ultra", 1, 0, 0)
    +    elif (fmt == swa.BMP):
    +        return ("bmp", 0, 1, 0)
    +    elif (fmt == swa.JPEG):
    +        return ("jpeg", 0, 1, 0)
    +    elif (fmt == swa.PNG):
    +        return ("png", 0, 1, 0)
    +    elif (fmt == swa.PPM):
    +        return ("ppm", 0, 1, 0)
    +    elif (fmt == swa.RGB):
    +        return ("rgb", 0, 1, 0)
    +    elif (fmt == swa.TIFF):
    +        return ("tif", 0, 1, 0)
    +    elif (fmt == swa.STL):
    +        return ("stl", 0, 0, 1)
    +    elif (fmt == swa.OBJ):
    +        return ("obj", 0, 0, 1)
    +    elif (fmt == swa.VTK):
    +        return ("vtk", 0, 0, 1)
    +    else:
    +        return ("unknown", 0, 0, 0)
    +
    +
    +swa=SaveWindowAttributes()
    +swa.family = 0
    +
    +AddWindow()
    +SetActiveWindow(1)
    +
    +# I=Image, G=Geometry, C=Curve formats
    +CFormats=[swa.CURVE, swa.POSTSCRIPT, swa.ULTRA]
    +IFormats=[swa.BMP, swa.JPEG, swa.PNG, swa.PPM, swa.RGB, swa.TIFF]
    +GFormats=[swa.STL, swa.OBJ, swa.VTK]
    +
    +a = AnnotationAttributes()
    +a.userInfoFlag = 0
    +a.databaseInfoFlag = 0
    +a.legendInfoFlag = 0
    +SetAnnotationAttributes(a)
    +
    +# ----------------------------------------------------------------------------
    +# Function: TestSaveFormat
    +#
    +# Modifications:
    +#   Kathleen Biagas, Thu Feb 11 2021
    +#   For Image formats, only convert RGB to TIFF, as all other formats tested
    +#   here should be readable and plottable by VisIt. Use PIL::Image for
    +#   conversion instead of 'convert'.
    +# ----------------------------------------------------------------------------
    +
    +def TestSaveFormat(fmt):
    +    SetActiveWindow(1)
    +    mode = ""
    +    result = "Failed\n"
    +    (ext, isC, isI, isG) = SaveFileInfo(fmt)
    +    swatmp = swa
    +    swatmp.format = fmt
    +    swatmp.outputToCurrentDirectory = 1
    +    if isI:
    +        swatmp.fileName = "saveformat_tmp.%s"%ext
    +    else:
    +        swatmp.fileName = "saveformat_tmp"
    +    SetSaveWindowAttributes(swatmp)
    +    try:
    +        SaveWindow()
    +    except:
    +        if TestEnv.params["scalable"]:
    +            if GetLastError() == "You cannot save non-image formats (e.g. ultra, curve, stl, etc.)" \
    +                                 " from a window that is currently in scalable rendering mode. You" \
    +                                 " may force scalable rendering to Never but if the resulting data" \
    +                                 " is too big for the viewer to handle, it will likely crash" \
    +                                 " VisIt. For 3D formats, try an export database operation instead." :
    +                TestText("saveformat_%s%s"%(mode,ext), "Passed\n")
    +                return
    +        TestText("saveformat_%s%s"%(mode,ext), result)
    +        return
    +
    +    # depending on the type of format this is, try to
    +    # read the file we just created back into VisIt and
    +    # put up a plot in window 2. If that succeeds, we'll
    +    # say this format's save actually worked
    +    if isC:
    +        if FileExists(swatmp.fileName+"."+ext, 1, 0):
    +            if ext == "ps":
    +                result = "Passed\n" # can only test existence for ps
    +            else:
    +                SetActiveWindow(2)
    +                if OpenDatabase(swatmp.fileName+"."+ext):
    +                    AddPlot("Curve","going_down")
    +                    if DrawPlots():
    +                        result = "Passed\n"
    +                    DeleteAllPlots()
    +                    CloseDatabase(swatmp.fileName+"."+ext)
    +    elif isI:
    +        if swatmp.screenCapture == 0:
    +            mode = "offscreen_"
    +        imageFileExists = FileExists(swatmp.fileName, 1, 0)
    +        if imageFileExists:
    +            # visit should be able to read all but the RGB format, so only convert RGB to TIFF
    +            if fmt != swa.RGB:
    +                SetActiveWindow(2)
    +                if OpenDatabase(swatmp.fileName):
    +                    AddPlot("Pseudocolor","red")
    +                    if DrawPlots():
    +                        result = "Passed\n"
    +                    DeleteAllPlots()
    +                    CloseDatabase(swatmp.fileName)
    +            else:
    +                tiffFileName = "%s/saveformat_tmp.tif"%TestEnv.params["run_dir"]
    +                tiffFileExists = 0
    +                try:
    +                    im1=Image.open(swatmp.fileName)
    +                    im1.save(tiffFileName, 'tiff')
    +                    tiffFileExists = FileExists(tiffFileName, 1, 0)
    +                except ValueError:
    +                    result="Format type could not be determined"
    +                except OSError:
    +                    result="Could not convert"
    +                if tiffFileExists:
    +                    SetActiveWindow(2)
    +                    if OpenDatabase(tiffFileName):
    +                        AddPlot("Pseudocolor","red")
    +                        if DrawPlots():
    +                            result = "Passed\n"
    +                        DeleteAllPlots()
    +                        CloseDatabase(tiffFileName)
    +    elif isG:
    +        if FileExists(swatmp.fileName+"."+ext, 1, 0):
    +            if ext == "stl":
    +                meshName = "STL_mesh"
    +            elif ext == "obj":
    +                meshName = "OBJMesh"
    +            elif ext == "vtk":
    +                meshName = "mesh"
    +            SetActiveWindow(2)
    +            if OpenDatabase(swatmp.fileName+"."+ext):
    +                AddPlot("Mesh",meshName)
    +                if DrawPlots():
    +                    result = "Passed\n"
    +                DeleteAllPlots()
    +                CloseDatabase(swatmp.fileName+"."+ext)
    +    TestText("saveformat_%s%s"%(mode,ext), result)
    +    SetActiveWindow(1)
    +
    +
    +TestSection("Curve Formats")
    +OpenDatabase(data_path("curve_test_data","c062.curve"))
    +
    +AddPlot("Curve", "going_down")
    +DrawPlots()
    +for f in CFormats:
    +    TestSaveFormat(f)
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("curve_test_data","c062.curve"))
    +
    +TestSection("Image Formats via Screen Capture")
    +OpenDatabase(silo_data_path("multi_rect2d.silo"))
    +
    +AddPlot("Mesh", "mesh1")
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +slider = CreateAnnotationObject("TimeSlider")
    +# make sure screenCapture is on
    +swa.screenCapture = 1
    +for f in IFormats:
    +    TestSaveFormat(f)
    +
    +TestSection("Image Formats via Off Screen")
    +swa.screenCapture = 0
    +for f in IFormats:
    +    TestSaveFormat(f)
    +swa.screenCapture = 1
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multi_rect2d.silo"))
    +
    +TestSection("Geometry Formats")
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "dx")
    +DrawPlots()
    +for f in GFormats:
    +    TestSaveFormat(f)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_scalable.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_scalable.html new file mode 100644 index 000000000..17418d437 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_scalable.html @@ -0,0 +1,117 @@ + +Results for rendering/scalable.py + +

    Results of VisIt Regression Test - rendering/scalable

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    scalable_010.000.00
    scalable_020.000.00
    scalable_030.000.00
    scalable_040.000.00
    scalable_050.000.00
    scalable_060.000.00
    SRModeHistory0 modifications totalling 0 lines
    Multiple Windows
    multiWindow_SRModeHistory0 modifications totalling 0 lines
    scalable_070.000.00
    Testing Mesh plot's opaque flag in SR mode
    scalable_080.000.00
    scalable_090.000.00
    scalable_100.000.00
    Glyphed Plot Causing SR Transitions
    glyphedPlot_SRModeHistory0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_scalable2.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_scalable2.html new file mode 100644 index 000000000..c10c5519c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_scalable2.html @@ -0,0 +1,53 @@ + +Results for rendering/scalable2.py + +

    Results of VisIt Regression Test - rendering/scalable2

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Testing that plots of single-timestep are requested in SR after engine loss
    scalable2_0_000.000.00
    scalable2_0_010 modifications totalling 0 lines
    scalable2_0_020 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_scalable2_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_scalable2_py.html new file mode 100644 index 000000000..d76f041f4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_scalable2_py.html @@ -0,0 +1,113 @@ +rendering/scalable2.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  scalable2.py
    +#
    +#  Tests:      mesh      - 2D curvilinear
    +#              plots     - Pseudocolor, Contour
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri May 12 15:55:22 PST 2006
    +#
    +#  Modifications:
    +#    Mark C. Miller, Wed Jan 21 10:00:10 PST 2009
    +#    Removed silly comment regarding global annotation object 'a'
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +import os, sys
    +
    +#
    +# Test that single-timestep plots have their networks reset in the
    +# viewer when we lose the compute engine.
    +#
    +def TestNetworkReset():
    +    TestSection("Testing that plots of single-timestep are "\
    +                "requested in SR after engine loss")
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Mesh", "curvmesh2d")
    +
    +    OpenDatabase(data_path("pdb_test_data/dbA00.pdb"))
    +
    +    AddPlot("Contour", "mesh/nummm")
    +    DrawPlots()
    +
    +    # Use scalable rendering always
    +    r = GetRenderingAttributes()
    +    r.scalableActivationMode = r.Always
    +    SetRenderingAttributes(r)
    +
    +    Test("scalable2_0_00")
    +
    +    # Turn off screen capture
    +    base = "TestNetworkReset"
    +    s = GetSaveWindowAttributes()
    +    s.screenCapture = 0
    +    s.width = 400
    +    s.height = 400
    +    s.format = s.PNG
    +    s.fileName = base
    +    s.outputToCurrentDirectory = 1
    +    s.family = 1
    +    SetSaveWindowAttributes(s)
    +
    +    # Save out images, killing the compute engine halfway through
    +    usingSR = ""
    +    for i in range(TimeSliderGetNStates()):
    +        SetTimeSliderState(i)
    +        # TODO_WINDOWS THIS WONT WORK ON WINDOWS
    +        # Kill the compute engine partway through to simulate it getting
    +        # booted out of the batch queue.
    +        if(i == 5):
    +            pinfo = GetProcessAttributes("engine")
    +            for pid in pinfo.pids:
    +                os.system("kill -9 %d" % pid)
    +
    +        DrawPlots()
    +        SaveWindow()
    +        if(GetWindowInformation().usingScalableRendering == 1):
    +            usingSR = usingSR + "Using scalable rendering on frame %d: true\n" % i
    +        else:
    +            usingSR = usingSR + "Using scalable rendering on frame %d: false\n" % i
    +
    +    # Look at the file sizes to make sure that all are non-zero
    +    files = os.listdir(".")
    +    pngs = []
    +    for f in files:
    +        if(len(f) > len(base) and f[:len(base)] == base):
    +            pngs = pngs + [f]
    +    pngs.sort()
    +
    +    # Iterate through the png files and look at their sizes. Remove them too.
    +    pngSize = ""
    +    for png in pngs:
    +        filesize = os.stat(png)[6]
    +        if filesize > 0:
    +            pngSize = pngSize + "File size for %s greater than zero.\n" % png
    +        else:
    +            pngSize = pngSize + "File size for %s is zero.\n" % png
    +        # remove the png file.
    +        os.unlink(png)
    +
    +    TestText("scalable2_0_01", usingSR)
    +    TestText("scalable2_0_02", pngSize)
    +
    +    DeleteAllPlots()
    +
    +#
    +# Call all of the subtests.
    +#
    +def main():
    +    # Turn off all annotation
    +    TurnOffAllAnnotations()
    +
    +    TestNetworkReset()
    +
    +#
    +# Call main
    +#
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_scalable_c.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_scalable_c.html new file mode 100644 index 000000000..d37c57ea0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_scalable_c.html @@ -0,0 +1,117 @@ + +Results for rendering/scalable_c.py + +

    Results of VisIt Regression Test - rendering/scalable_c

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    scalable_010.000.00
    scalable_020.000.00
    scalable_030.000.00
    scalable_040.000.00
    scalable_050.000.00
    scalable_060.000.00
    SRModeHistory0 modifications totalling 0 lines
    Multiple Windows
    multiWindow_SRModeHistory0 modifications totalling 0 lines
    scalable_070.000.00
    Testing Mesh plot's opaque flag in SR mode
    scalable_080.000.00
    scalable_090.000.00
    scalable_100.000.00
    Glyphed Plot Causing SR Transitions
    glyphedPlot_SRModeHistory0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_scalable_c_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_scalable_c_py.html new file mode 100644 index 000000000..6c0ec0e60 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_scalable_c_py.html @@ -0,0 +1,21 @@ +rendering/scalable_c.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  scalable_c.py
    +#
    +#  Tests:      Runs the scalable.py test but with compression turned on 
    +#              scalable.py tests for existence of 'useCompression' variable
    +#              and turns on compression if it exists. We expect identical
    +#              output from the tests but because this py file has a different
    +#              name, it will generate them a subdir by the name 'scalable_c'
    +#              and look for baselines likewise. So, in baseline dir,
    +#              the scalable_c dir is a symlink to scalable.
    +#
    +#  Programmer: Mark C. Miller
    +#  Date:       19Aug08 
    +#
    +# ----------------------------------------------------------------------------
    +
    +useCompression = 1
    +Source(tests_path("rendering","scalable.py"))
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_scalable_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_scalable_py.html new file mode 100644 index 000000000..c9a9e42b8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_scalable_py.html @@ -0,0 +1,392 @@ +rendering/scalable.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  scalable.py
    +#
    +#  Tests:      mesh      - 3D unstructured, multiple domains
    +#              plots     - pc, mesh 
    +#              operators - slice 
    +#              selection - some of the domains 
    +#
    +#  Defect ID:  '3359
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       01Jul03
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Tue May 11 20:21:24 PDT 2004
    +#    Changed scalable rendering controls to use activation mode
    +#
    +#    Mark C. Miller, Tue May 25 14:29:40 PDT 2004
    +#    Added code to test automatic tranitions into and out of SR mode
    +#
    +#    Mark C. Miller, Thu Jan  6 14:23:01 PST 2005
    +#    Added code to test multiple windows and auto SR transitions
    +#
    +#    Kathleen Bonnell, Mon Jan 23 21:02:56 PST 2006 
    +#    Added tests '08-10, testing auto-opaque mesh and sr mode.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to switch between Silo's HDF5 and PDB data.
    +#
    +#    Eric Brugger, Fri Aug 15 10:19:33 PDT 2014
    +#    Modified the script to use srun to launch the parallel engine on edge.
    +#
    +#    Eric Brugger, Wed Oct 29 12:08:54 PDT 2014
    +#    Changed the parallel job launching logic to use srun on surface instead
    +#    of edge.
    +#
    +#    Brad Whitlock, Mon Dec 15 17:22:38 PST 2014
    +#    Only close the compute engine if it is not parallel.
    +#
    +#    Kathleen Biagas, Fri Jul  7 13:41:36 PDT 2017
    +#    Don't run this test if the parallel engine doesn't exist.
    +#
    +#    Kathleen Biagas, Tue Feb 8 2022
    +#    Use run_dir for location of saving windows, it is cleaned up on exit.
    +#
    +#    Eric Brugger, Wed Nov  1 13:46:08 PDT 2023
    +#    Updated the list of hosts where srun was used to launch a parallel
    +#    compute engine.
    +#
    +# ----------------------------------------------------------------------------
    +
    +if not sys.platform.startswith("win"):
    +    if not os.path.exists(visit_bin_path("..", "exe", "engine_par")):
    +        Exit(121)
    +else:
    +    if not os.path.exists(visit_bin_path("engine_par.exe")):
    +        Exit(121)
    +
    +# sleep is needed to allow viewer to complete update of window information
    +# before it is queried here
    +import time
    +sleepTime=1
    +
    +# Turn on scalable rendering
    +ra = GetRenderingAttributes()
    +ra.scalableActivationMode = ra.Always
    +if "useCompression" in dir():
    +    ra.compressionActivationMode = ra.Always
    +SetRenderingAttributes(ra)
    +
    +# Close the compute engine, if it is not already parallel.
    +engines = GetEngineList()
    +if len(engines) > 0:
    +    props = GetEngineProperties(engines[0])
    +    if props.numProcessors < 2:
    +        CloseComputeEngine()
    +        # explicitly open a parallel engine, if possible
    +        # if it fails, the OpenDatabase will start a serial engine
    +        import socket
    +        if "quartz" in socket.gethostname() or \
    +           "pascal"  in socket.gethostname() or \
    +           "poodle"  in socket.gethostname() or \
    +           "syrah"   in socket.gethostname():
    +            haveParallelEngine = OpenComputeEngine("localhost", ("-l", "srun", "-np", "2"))
    +        else:
    +            haveParallelEngine = OpenComputeEngine("localhost", ("-np", "2"))
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Mesh", "mesh1")
    +silr=SILRestriction()
    +silr.TurnOffAll()
    +silr.TurnOnSet(1)
    +silr.TurnOnSet(3)
    +silr.TurnOnSet(5)
    +silr.TurnOnSet(10)
    +SetPlotSILRestriction(silr)
    +AddPlot("Pseudocolor", "d")
    +SetPlotSILRestriction(silr)
    +
    +DrawPlots()
    +
    +view=GetView3D()
    +view.viewNormal=(0,1,0)
    +view.viewUp=(0,0,-1)
    +SetView3D(view)
    +
    +Test("scalable_01")
    +
    +# rotate and draw them again
    +view.viewNormal=(0,1,0)
    +view.viewUp=(1,0,0)
    +SetView3D(view)
    +
    +# Make sure mesh plot doesn't dissappear after a rotate
    +# ('3359)
    +Test("scalable_02")
    +
    +# Pan and zoom
    +view.imageZoom = 0.75
    +view.imagePan = (0.25, 0.25)
    +SetView3D(view)
    +Test("scalable_03")
    +
    +# Make sure hide behavior still works
    +SetActivePlots(1)
    +HideActivePlots()
    +Test("scalable_04")
    +
    +HideActivePlots()
    +SetActivePlots(0)
    +DeleteActivePlots()
    +Test("scalable_05")
    +
    +# reset the SIL restriction for the succeeding SR auto mode tests
    +# tests to make sure the ERI actor doesn't leave stale image data around
    +ResetView()
    +silr.TurnOnAll()
    +SetPlotSILRestriction(silr)
    +DeleteAllPlots()
    +Test("scalable_06")
    +
    +# accumulate results of SR mode changes here
    +srModeHistory=""
    +
    +# function to save temporary windows used to force renders
    +def MySaveWindow():
    +    swa = GetSaveWindowAttributes()
    +    swa.fileName = pjoin(TestEnv.params["run_dir"], "scalable_tmp.png")
    +    swa.format = swa.PNG
    +    swa.family = 0
    +    SetSaveWindowAttributes(swa)
    +    SaveWindow() # required to force render
    +
    +# function to examine current SR mode of window
    +def CheckSRMode(winID):
    +   global srModeHistory
    +   DrawPlots()
    +   MySaveWindow() # required to force render
    +   time.sleep(sleepTime)
    +   wi=GetWindowInformation()
    +   if wi.usingScalableRendering == 1:
    +       srModeHistory+="window %d:SR is ON\n"%winID
    +   else:
    +       srModeHistory+="window %d:SR is off\n"%winID
    +
    +# function to force window into specified SR mode and confirm it 
    +def ForceSRMode(mode):
    +   global srModeHistory
    +   if mode:
    +       ra.scalableActivationMode = ra.Always
    +   else:
    +       ra.scalableActivationMode = ra.Never
    +   SetRenderingAttributes(ra)
    +   DrawPlots()
    +   time.sleep(sleepTime)
    +   wi=GetWindowInformation()
    +   srModeHistory+="force SR mode %d\n"%wi.usingScalableRendering
    +
    +ForceSRMode(0)
    +
    +# test an individual plot taking poly count above threshold
    +# with proc 0's data alone
    +ra.scalableActivationMode = ra.Auto
    +ra.scalableAutoThreshold = 2000
    +SetRenderingAttributes(ra)
    +DrawPlots()
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +time.sleep(sleepTime)
    +wi=GetWindowInformation()
    +srModeHistory+="single plot, proc 0 >threshold %d\n"%wi.usingScalableRendering
    +DeleteAllPlots()
    +
    +ForceSRMode(0)
    +
    +# test an individual plot taking poly count above threshold with
    +# data from proc 2 (or above)
    +ra.scalableActivationMode = ra.Auto
    +ra.scalableAutoThreshold = 5000
    +SetRenderingAttributes(ra)
    +DrawPlots()
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +time.sleep(sleepTime)
    +wi=GetWindowInformation()
    +srModeHistory+="single plot, proc >0 >threshold %d\n"%wi.usingScalableRendering
    +DeleteAllPlots()
    +
    +ForceSRMode(0)
    +
    +# test a addition and deletion causing to go above threshold and then
    +# back below
    +ra.scalableActivationMode = ra.Auto
    +ra.scalableAutoThreshold = 15000
    +SetRenderingAttributes(ra)
    +DrawPlots()
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +time.sleep(sleepTime)
    +wi=GetWindowInformation()
    +srModeHistory+="two plots, first <threshold %d\n"%wi.usingScalableRendering
    +AddPlot("Mesh", "mesh1")
    +DrawPlots()
    +time.sleep(sleepTime)
    +wi=GetWindowInformation()
    +srModeHistory+="two plots, second >threshold %d\n"%wi.usingScalableRendering
    +DeleteActivePlots()
    +DrawPlots()
    +MySaveWindow() # force engine to render
    +time.sleep(sleepTime)
    +wi=GetWindowInformation()
    +srModeHistory+="delete 2nd, <threshold %d\n"%wi.usingScalableRendering
    +
    +ForceSRMode(0)
    +
    +# test setting auto threshold below current count
    +ra.scalableActivationMode = ra.Auto
    +ra.scalableAutoThreshold = 3000
    +SetRenderingAttributes(ra)
    +DrawPlots()
    +time.sleep(sleepTime)
    +wi=GetWindowInformation()
    +srModeHistory+="auto threshold set < plot %d\n"%wi.usingScalableRendering
    +
    +ForceSRMode(1)
    +
    +# test setting auto threshold above current count
    +ra.scalableActivationMode = ra.Auto
    +ra.scalableAutoThreshold = 30000
    +SetRenderingAttributes(ra)
    +DrawPlots()
    +# save window is required to force the re-draw that causes engine to
    +# decide SR mode is no longer necessary
    +MySaveWindow()
    +time.sleep(sleepTime)
    +wi=GetWindowInformation()
    +srModeHistory+="auto threshold set > plot %d\n"%wi.usingScalableRendering
    +
    +TestText("SRModeHistory",srModeHistory)
    +
    +DeleteAllPlots()
    +srModeHistory=""
    +
    +#
    +# Do some testing with multiple windows
    +#
    +TestSection("Multiple Windows")
    +
    +ra.scalableActivationMode = ra.Auto
    +ra.scalableAutoThreshold = 14000
    +SetRenderingAttributes(ra)
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +CheckSRMode(1)
    +
    +CloneWindow()
    +SetActiveWindow(2)
    +DrawPlots()
    +CheckSRMode(2)
    +
    +SetActiveWindow(1)
    +AddPlot("Pseudocolor", "p")
    +AddPlot("Pseudocolor", "u")
    +AddPlot("Pseudocolor", "w")
    +DrawPlots()
    +CheckSRMode(1)
    +SetActiveWindow(2)
    +AddPlot("Pseudocolor", "p")
    +DrawPlots()
    +CheckSRMode(2)
    +
    +SetActiveWindow(1)
    +SetActivePlots((1,2,3))
    +DeleteActivePlots()
    +DrawPlots()
    +CheckSRMode(1)
    +SetActiveWindow(2)
    +CheckSRMode(2)
    +
    +TestText("multiWindow_SRModeHistory",srModeHistory)
    +
    +#
    +# test unhiding mesh to make sure it doesn't go opaque ('5947)
    +#
    +DeleteWindow()
    +SetActiveWindow(1)
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +ra.scalableActivationMode = ra.Always
    +SetRenderingAttributes(ra)
    +AddPlot("Mesh","mesh1")
    +AddPlot("Pseudocolor","dx")
    +DrawPlots()
    +MySaveWindow() # force a render
    +SetActivePlots((0))
    +HideActivePlots()
    +DrawPlots()
    +MySaveWindow() # force a render
    +HideActivePlots()
    +DrawPlots()
    +Test("scalable_07")
    +
    +DeleteAllPlots()
    +
    +TestSection("Testing Mesh plot's opaque flag in SR mode")
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("FilledBoundary", "mat1")
    +AddPlot("Mesh", "curvmesh2d")
    +m = MeshAttributes()
    +m.opaqueMode = m.Auto
    +SetPlotOptions(m)
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +Test("scalable_08")
    +SetActivePlots(1)
    +Test("scalable_09")
    +Pick(164, 136)
    +Test("scalable_10")
    +DeleteAllPlots()
    +
    +
    +TestSection("Glyphed Plot Causing SR Transitions")
    +
    +srModeHistory=""
    +ForceSRMode(0)
    +ra.scalableActivationMode = ra.Auto
    +ra.scalableAutoThreshold = 30000
    +SetRenderingAttributes(ra)
    +
    +OpenDatabase(silo_data_path("galaxy0000.silo"))
    +
    +AddPlot("Pseudocolor", "vx")
    +DrawPlots()
    +CheckSRMode(1)
    +TestText("glyphedPlot_SRModeHistory",srModeHistory)
    +
    +DeleteAllPlots()
    +
    +# this section causes a crash, comment out until fixed.
    +#TestSection("Stereo Modes")
    +
    +#ra.scalableActivationMode = ra.Always
    +#ra.stereoRendering = 1
    +#ra.stereoType = ra.RedBlue
    +#SetRenderingAttributes(ra)
    +
    +#OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +#AddPlot("Mesh","mesh1")
    +
    +# make the eye separation as noticable as possible
    +#ResetView()
    +#v = GetView3D()
    +#v.eyeAngle = 5
    +#v.viewNormal=(0.707, 0, 0.707)
    +#SetView3D(v)
    +#DrawPlots()
    +
    +#Test("scalable_11")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_shadows.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_shadows.html new file mode 100644 index 000000000..7996dea0c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_shadows.html @@ -0,0 +1,54 @@ + +Results for rendering/shadows.py + +

    Results of VisIt Regression Test - rendering/shadows

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    shadows_010.000.00
    shadows_020.000.00
    shadows_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_shadows_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_shadows_py.html new file mode 100644 index 000000000..0713d3aa5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_shadows_py.html @@ -0,0 +1,55 @@ +rendering/shadows.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  shadows.py
    +#
    +#  Tests:      mesh      - 2D/3D rectilinear, one domain
    +#              plots     - pseudocolor, surface
    +#              operators - isosurface
    +#              selection - no
    +#
    +#  Defect ID:  5539, 7068
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 3, 2006
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "hardyglobal")
    +
    +AddOperator("Isosurface")
    +i = IsosurfaceAttributes()
    +i.contourNLevels = 1
    +SetOperatorOptions(i)
    +
    +r = RenderingAttributes()
    +r.scalableActivationMode = r.Always
    +r.doShadowing = 1
    +SetRenderingAttributes(r)
    +l = GetLight(0)
    +l.direction = (-0.707, 0, -0.707)
    +SetLight(0, l)
    +DrawPlots()
    +Test("shadows_01")
    +
    +r.shadowStrength = 0.9
    +SetRenderingAttributes(r)
    +Test("shadows_02")
    +
    +# Now test that we don't crash with 2D.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +Test("shadows_03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_specular.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_specular.html new file mode 100644 index 000000000..2a53fd819 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_specular.html @@ -0,0 +1,102 @@ + +Results for rendering/specular.py + +

    Results of VisIt Regression Test - rendering/specular

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    specular_010.000.00
    specular_020.000.00
    specular_030.000.00
    specular_040.000.00
    specular_050.000.00
    specular_060.000.00
    specular_070.000.00
    specular_080.000.00
    specular_090.000.00
    specular_100.000.00
    specular_110.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_specular_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_specular_py.html new file mode 100644 index 000000000..d7ac01305 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_specular_py.html @@ -0,0 +1,124 @@ +rendering/specular.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  specular.py
    +#
    +#  Tests:      mesh      - 2D/3D rectilinear, one domain
    +#              plots     - pseudocolor
    +#              operators - isosurface
    +#              selection - no
    +#
    +#  Defect ID:  5555, 5580
    +#
    +#  Programmer: Hank Childs
    +#  Date:       November 2, 2004
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Wed Nov  3 16:41:56 PST 2004
    +#    Commented out specular_11, since it was failing in SR mode.  Submitted
    +#    new ticket, '5580 to address this.
    +#
    +#    Hank Childs, Fri Dec  9 08:01:46 PST 2005
    +#    Uncomment specular_11.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "hardyglobal")
    +
    +AddOperator("Isosurface")
    +i = IsosurfaceAttributes()
    +i.contourNLevels = 1
    +SetOperatorOptions(i)
    +
    +DrawPlots()
    +Test("specular_01")
    +
    +r = GetRenderingAttributes()
    +r.specularFlag = 1
    +SetRenderingAttributes(r)
    +Test("specular_02")
    +
    +# Highly concentrated, low power
    +r.specularCoeff = 0.9
    +r.specularPower = 100
    +SetRenderingAttributes(r)
    +Test("specular_03")
    +
    +# Poorly concentrated, high power
    +r.specularCoeff = 0.1
    +r.specularPower = 1
    +SetRenderingAttributes(r)
    +Test("specular_04")
    +
    +# Test that specular is properly turned off when PC's lighting is turned off.
    +pc_atts = PseudocolorAttributes()
    +pc_atts.lightingFlag = 0
    +SetPlotOptions(pc_atts)
    +Test("specular_05")
    +
    +# Make sure that specular is not affecting 2D plots.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +Test("specular_06")
    +
    +# Now do the same things over again with Pseudocolor + Elevate
    +
    +DeleteAllPlots()
    +r.specularFlag = 0
    +SetRenderingAttributes(r)
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "hgslice")
    +AddOperator("Elevate")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.35795, -0.730451, 0.581647)
    +v.focus = (0, 0, 10)
    +v.viewUp = (0.0642975, 0.60216, 0.795782)
    +v.viewAngle = 30
    +v.parallelScale = 17.3205
    +v.nearPlane = -34.641
    +v.farPlane = 34.641
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +SetView3D(v)
    +Test("specular_07")
    +
    +r = GetRenderingAttributes()
    +r.specularCoeff = 0.6
    +r.specularPower = 10
    +r.specularFlag = 1
    +SetRenderingAttributes(r)
    +Test("specular_08")
    +
    +# Highly concentrated, low power
    +r.specularCoeff = 0.9
    +r.specularPower = 100
    +SetRenderingAttributes(r)
    +Test("specular_09")
    +
    +# Poorly concentrated, high power
    +r.specularCoeff = 0.1
    +r.specularPower = 1
    +SetRenderingAttributes(r)
    +Test("specular_10")
    +
    +# Test that specular is properly turned off when PC's lighting is turned off.
    +pc_atts = PseudocolorAttributes()
    +pc_atts.lightingFlag = 0
    +SetPlotOptions(pc_atts)
    +Test("specular_11")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_text2d.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_text2d.html new file mode 100644 index 000000000..59de89599 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_text2d.html @@ -0,0 +1,108 @@ + +Results for rendering/text2d.py + +

    Results of VisIt Regression Test - rendering/text2d

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    text2d000.000.00
    text2d010.000.00
    text2d020.000.00
    text2d030.000.00
    text2d040.000.00
    text2d050.000.00
    text2d060.000.00
    text2d070.000.00
    text2d080.000.00
    text2d090.000.00
    text2d100.000.00
    text2d110.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_text2d_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_text2d_py.html new file mode 100644 index 000000000..7d57c4268 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_text2d_py.html @@ -0,0 +1,123 @@ +rendering/text2d.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  text2d.py
    +#
    +#  Tests:      mesh        - 2D curvilinear, single domain
    +#              plots       - Pseudocolor
    +#              annotations - Text2D
    +#
    +#  Defect ID:  None
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Dec 4 14:39:21 PST 2003
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Brad Whitlock, Tue Feb 28 12:00:21 PST 2012
    +#    Add test for words that used to get truncated.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Set up the annotation colors, etc.
    +a = GetAnnotationAttributes()
    +a.backgroundColor = (80, 0, 100, 255)
    +a.foregroundColor = (255, 255, 255, 255)
    +a.backgroundMode = a.Solid
    +SetAnnotationAttributes(a)
    +
    +# Open up the database and do a plot.
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +# Create a Text2D object
    +text = CreateAnnotationObject("Text2D")
    +text.text = "Pseudocolor plot!"
    +text.height = 0.05
    +text.position = (0.25, 0.45)
    +Test("text2d00")
    +
    +# Set the foreground color to see if it changes
    +a.foregroundColor = (255, 255, 0, 255)
    +SetAnnotationAttributes(a)
    +Test("text2d01")
    +
    +# Test solid text color
    +a.foregroundColor = (255, 255, 255, 255)
    +SetAnnotationAttributes(a)
    +text.useForegroundForTextColor = 0
    +text.textColor = (0, 255, 0, 255)
    +Test("text2d02")
    +
    +# Test text opacity
    +text.height = 0.18
    +text.position = (0.25, 0.45)
    +text.textColor = (255,255,255,150)
    +Test("text2d03")
    +
    +# Set the text atts
    +text.textColor = (255,255,255,255)
    +text.useForegroundForTextColor = 1
    +text.height = 0.05
    +
    +# Create more text objects
    +courier = CreateAnnotationObject("Text2D")
    +courier.text = "Courier"
    +courier.fontFamily = courier.Courier
    +courier.position = (0.25, 0.35)
    +courier.height = 0.06
    +times = CreateAnnotationObject("Text2D")
    +times.text = "Times"
    +times.fontFamily = courier.Times
    +times.position = (0.25, 0.25)
    +times.height = 0.07
    +Test("text2d04")
    +
    +# Set the bold flag
    +text.fontBold = 1
    +courier.fontBold = 1
    +times.fontBold = 1
    +Test("text2d05")
    +
    +# Set the italic flag
    +text.fontItalic = 1
    +courier.fontItalic = 1
    +times.fontItalic = 1
    +Test("text2d06")
    +
    +# Set the shadow flag
    +text.fontShadow = 1
    +courier.fontShadow = 1
    +times.fontShadow = 1
    +Test("text2d07")
    +
    +# Start Removing text
    +courier.Delete()
    +Test("text2d08")
    +times.Delete()
    +Test("text2d09")
    +text.Delete()
    +Test("text2d10")
    +
    +# Test for words that used to get truncated
    +erg = CreateAnnotationObject("Text2D")
    +erg.position = (0.5, 0.3)
    +erg.text = "Erg"
    +erg.height = 0.08
    +erg.useForegroundForTextColor = 0
    +erg.textColor = (255, 255, 255, 255)
    +era = CreateAnnotationObject("Text2D")
    +era.position = (0.5, 0.2)
    +era.text = "    Era"
    +era.height = 0.12
    +era.useForegroundForTextColor = 0
    +era.textColor = (255, 255, 255, 255)
    +Test("text2d11")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_text3d.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_text3d.html new file mode 100644 index 000000000..50a6384e6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_text3d.html @@ -0,0 +1,104 @@ + +Results for rendering/text3d.py + +

    Results of VisIt Regression Test - rendering/text3d

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    text3d000.000.00
    text3d010.000.00
    text3d020.000.00
    text3d032.220.37
    text3d040.000.00
    text3d050.000.00
    text3d060.000.00
    text3d070.000.00
    text3d080.000.00
    text3d090.000.00
    text3d100.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_text3d_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_text3d_py.html new file mode 100644 index 000000000..cee11cc46 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_text3d_py.html @@ -0,0 +1,103 @@ +rendering/text3d.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  text3d.py
    +#
    +#  Tests:      mesh        - 2D curvilinear, single domain
    +#              plots       - Pseudocolor
    +#              annotations - Text2D
    +#
    +#  Defect ID:  None
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       August 31, 2015
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Set up the annotation colors, etc.
    +a = GetAnnotationAttributes()
    +a.backgroundColor = (80, 0, 100, 255)
    +a.foregroundColor = (255, 255, 255, 255)
    +a.backgroundMode = a.Solid
    +SetAnnotationAttributes(a)
    +
    +# Open up the database and do a plot.
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +# Create a Text2D object
    +text = CreateAnnotationObject("Text3D")
    +text.text = "Pseudocolor plot!"
    +text.position = (-10,10,10)
    +Test("text3d00")
    +
    +# Set the foreground color to see if it changes
    +a.foregroundColor = (51, 204, 204, 255)
    +SetAnnotationAttributes(a)
    +Test("text3d01")
    +
    +# Test solid text color
    +a.foregroundColor = (255, 255, 255, 255)
    +SetAnnotationAttributes(a)
    +text.useForegroundForTextColor = 0
    +text.textColor = (255, 102, 0, 255)
    +Test("text3d02")
    +
    +# Test text opacity
    +text.position = (-5,0,9)
    +text.textColor = (255,102,0,150)
    +text.relativeHeight = 0.05
    +Test("text3d03")
    +
    +# Test Height mode
    +text.textColor = (255,102,0,255)
    +text.heightMode = text.Fixed
    +text.fixedHeight = 2
    +Test("text3d04")
    +
    +# Test preserveOrientation
    +text.position = (-10, 0, 12)
    +v = GetView3D()
    +v.viewNormal = (0, 0.707107, 0.707107)
    +v.viewUp = (0, 0.707107, -0.707107)
    +SetView3D(v)
    +Test("text3d05")
    +
    +text.preserveOrientation = 1
    +Test("text3d06")
    +
    +
    +# Test rotations
    +
    +# Create more text objects
    +AddOperator("Reflect")
    +reflect = ReflectAttributes()
    +reflect.reflections=(1, 1, 0, 0, 0, 0, 0, 0)
    +SetOperatorOptions(reflect)
    +text.text="Left"
    +text.position=(-20, -5, 10)
    +text.rotations=(0,0,90)
    +text.heightMode = text.Relative
    +DrawPlots()
    +ResetView()
    +Test("text3d07")
    +
    +right = CreateAnnotationObject("Text3D")
    +right.position = (-5, 0, 10)
    +right.text = "Right"
    +right.relativeHeight = 0.05
    +right.rotations=(0,0, -45)
    +Test("text3d08")
    +
    +text.Delete()
    +Test("text3d09")
    +right.Delete()
    +Test("text3d10")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_timeslider.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_timeslider.html new file mode 100644 index 000000000..d92912c5d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_timeslider.html @@ -0,0 +1,174 @@ + +Results for rendering/timeslider.py + +

    Results of VisIt Regression Test - rendering/timeslider

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    timeslider000.000.00
    timeslider010.000.00
    timeslider020.000.00
    timeslider030.000.00
    timeslider040.000.00
    timeslider050.000.00
    timeslider060.000.00
    timeslider070.000.00
    timeslider080.000.00
    timeslider090.000.00
    timeslider100.000.00
    timeslider110.000.00
    timeslider120.000.00
    timeslider130.000.00
    timeslider140.000.00
    timeslider150.000.00
    timeslider160.000.00
    timeslider170.000.00
    timeslider180.000.00
    timeslider190.000.00
    timeslider200.000.00
    timeslider210.000.00
    timeslider220.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_timeslider_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_timeslider_py.html new file mode 100644 index 000000000..574068789 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_timeslider_py.html @@ -0,0 +1,162 @@ +rendering/timeslider.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  timeslider.py
    +#
    +#  Tests:      mesh        - 2D curvilinear, single domain
    +#              plots       - Pseudocolor
    +#              annotations - Time slider
    +#
    +#  Defect ID:  VisIt00003746
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Dec 4 14:39:21 PST 2003
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Mar 9 09:15:30 PDT 2005
    +#    Removed deprecated functions.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Update due to change 
    +#
    +#    Brad Whitlock, Wed Sep 28 14:12:00 PDT 2011
    +#    Move the time slider around a couple times.
    +# ----------------------------------------------------------------------------
    +
    +# Set up the annotation colors, etc.
    +a = GetAnnotationAttributes()
    +a.backgroundColor = (0, 0, 0, 255)
    +a.foregroundColor = (255, 255, 255, 255)
    +a.backgroundMode = a.Solid
    +SetAnnotationAttributes(a)
    +
    +# Open up the database and create a plot.
    +OpenDatabase(data_path("pdb_test_data/allinone00.pdb"))
    +
    +AddPlot("Pseudocolor", "mesh/a")
    +SetTimeSliderState(4)
    +DrawPlots()
    +
    +# Create a time slider
    +slider = CreateAnnotationObject("TimeSlider")
    +Test("timeslider00")
    +
    +# Turn it off
    +slider.visible = 0
    +Test("timeslider01")
    +
    +# Turn it back on and move and resize it
    +slider.visible = 1
    +slider.width = 0.60
    +slider.height = 0.1
    +slider.position = (0.2, 0.03)
    +Test("timeslider02")
    +
    +# Change the colors
    +slider.startColor = (255, 0, 0, 255)
    +slider.endColor = (255, 255, 0, 255)
    +Test("timeslider03")
    +
    +# Change the rounding mode
    +slider.rounded = 0
    +Test("timeslider04")
    +
    +# Change the shading mode
    +slider.shaded = 0
    +Test("timeslider05")
    +
    +# Change the text
    +slider.text = "The time is: $time"
    +Test("timeslider06")
    +SetTimeSliderState(14)
    +Test("timeslider07")
    +
    +# Change the text color
    +slider.shaded = 1
    +slider.rounded = 1
    +slider.useForegroundForTextColor = 0
    +slider.textColor = (0, 0, 255, 255)
    +Test("timeslider08")
    +
    +# Create a new slider
    +SetTimeSliderState(18)
    +slider2 = CreateAnnotationObject("TimeSlider","slider_obj")
    +slider2.position = (0.3, 0.8)
    +slider2.height = 0.15
    +Test("timeslider09")
    +
    +# Delete the first slider.
    +slider.Delete()
    +Test("timeslider10")
    +
    +# Create an alias to the second slider using the GetAnnotationObject call.
    +foo = GetAnnotationObject("slider_obj")
    +foo.startColor = (255, 0, 255, 255)
    +foo.endColor = (0, 255, 255, 100)
    +Test("timeslider11")
    +
    +# Delete the annotation using the alias.
    +foo.Delete()
    +Test("timeslider12")
    +
    +# Delete all plots and open a new database
    +SetTimeSliderState(0)
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "speed")
    +AddPlot("Mesh", "mesh1")
    +DrawPlots()
    +v0 = View3DAttributes()
    +v0.viewNormal = (-0.556371, 0.348221, 0.754449)
    +v0.focus = (0, 0, 0)
    +v0.viewUp = (0.185162, 0.93708, -0.295968)
    +v0.viewAngle = 30
    +v0.parallelScale = 17.3205
    +v0.nearPlane = -34.641
    +v0.farPlane = 34.641
    +v0.imagePan = (0, 0)
    +v0.imageZoom = 1.20945
    +v0.perspective = 1
    +v0.eyeAngle = 2
    +
    +v1 = View3DAttributes()
    +v1.viewNormal = (0.501427, 0.560716, 0.658915)
    +v1.focus = (0, 0, 0)
    +v1.viewUp = (-0.272851, 0.825194, -0.494577)
    +v1.viewAngle = 30
    +v1.parallelScale = 17.3205
    +v1.nearPlane = -34.641
    +v1.farPlane = 34.641
    +v1.imagePan = (0, 0)
    +v1.imageZoom = 1.52784
    +v1.perspective = 1
    +v1.eyeAngle = 2
    +
    +# Create a new slider
    +slider = CreateAnnotationObject("TimeSlider")
    +slider.position = (0.2, 0.02)
    +slider.width = 0.6
    +slider.height = 0.08
    +slider.percentComplete = 0
    +slider.timeDisplay = slider.UserSpecified
    +slider.text = "Using percentComplete manually"
    +testnum = 13
    +nsteps = 10
    +moves = {4 : (0.02, 0.5), 8 : (0.2, 0.9)}
    +# Set the percentComplete manually
    +for i in range(nsteps):
    +    t = float(i) / float(nsteps - 1)
    +    slider.percentComplete = t * 100.
    +    if i in list(moves.keys()):
    +        slider.position = moves[i]
    +    v = v0 * (1. - t) + v1 * t
    +    SetView3D(v)
    +    Test("timeslider%02d" % testnum)
    +    testnum = testnum + 1
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_transparency.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_transparency.html new file mode 100644 index 000000000..6ed23bdbd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_transparency.html @@ -0,0 +1,140 @@ + +Results for rendering/transparency.py + +

    Results of VisIt Regression Test - rendering/transparency

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    transparency_010.000.00
    transparency_020.000.00
    transparency_030.340.01
    transparency_040.000.00
    transparency_053.270.19
    transparency_060.000.00
    transparency_070.000.00
    transparency_080.000.00
    transparency_090.000.00
    transparency_100.030.01
    transparency_110.000.00
    transparency_120.000.00
    transparency_130.000.00
    transparency_140.010.00
    transparency_150.000.00
    transparency_160.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_transparency_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_transparency_py.html new file mode 100644 index 000000000..efcb5e8a1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_transparency_py.html @@ -0,0 +1,315 @@ +rendering/transparency.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  transparency.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - pc, subset
    +#              operators - none
    +#              selection - none
    +#
    +#  Defect ID:  '2784 + general transparency testing + '7772 + '7773 + '7879
    +#
    +#  Programmer: Hank Childs
    +#  Date:       November 20, 2002
    +#
    +# Modifications:
    +#   Brad Whitlock, Thu Dec 12 09:56:02 PDT 2002
    +#   I made the test use the new SubsetAttributes.
    +#
    +#   Brad Whitlock, Mon Feb 24 10:36:21 PDT 2003
    +#   I made it use the multiple colors coloring mode for the Subset attributes
    +#   instead of the single color coloring mode.
    +#
    +#   Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#   Remove compound var name from Subset plots.
    +#
    +#   Hank Childs, Thu May  6 09:34:27 PDT 2004
    +#   Remove out of date comments regarding test that was recently fixed ('4878).
    +#
    +#   Hank Childs, Mon Feb 12 14:06:10 PST 2007
    +#   Add tests for rectilinear transparency ('7772 & '7773).
    +#
    +#   Hank Childs, Thu Mar  8 11:13:49 PST 2007
    +#   Test transparency after scaling ('7879) ... that the scale factor in the
    +#   transparency actor gets set back to 1.
    +#
    +#   Hank Childs, Wed Dec 31 10:21:31 PST 2008
    +#   Add a test for multi-block rectilinear grids.
    +#
    +#   Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#   Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#   Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#   Use FilledBoundary plot for materials instead of Subset.
    +#
    +#   Eric Brugger, Fri Aug  9 13:45:49 PDT 2024
    +#   Added a test of combining opaque and transparent plots from
    +#   multi_ucd3d.silo.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("FilledBoundary", "mat1")
    +DrawPlots()
    +
    +fbAtts = FilledBoundaryAttributes()
    +fbAtts.opacity = 0.9
    +fbAtts.colorType = fbAtts.ColorByMultipleColors
    +SetPlotOptions(fbAtts)
    +
    +# Test that the normals stick around when we slightly drop the transparency
    +# ('2784)
    +Test("transparency_01")
    +
    +
    +# Test that it still looks good when we crank the transparency down.
    +fbAtts.opacity = 0.4
    +SetPlotOptions(fbAtts)
    +
    +Test("transparency_02")
    +
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Box")
    +box = BoxAttributes()
    +box.minx = -4
    +box.maxx = +2
    +box.miny = -6
    +box.maxy = 0
    +box.minz = -4
    +box.maxz = +4
    +SetOperatorOptions(box)
    +DrawPlots()
    +
    +# Make sure that it still looks good when we have solid geometry in there.
    +Test("transparency_03")
    +
    +pcAtts = PseudocolorAttributes()
    +pcAtts.SetOpacityType(pcAtts.Constant)
    +pcAtts.opacity = 0.75
    +SetPlotOptions(pcAtts)
    +
    +# Test having two transparent plots
    +Test("transparency_04")
    +
    +
    +AddPlot("Pseudocolor", "t")
    +AddOperator("Box")
    +box.minx = 2
    +box.maxx = 10
    +SetOperatorOptions(box)
    +DrawPlots()
    +
    +# Test having two transparent plots + plus one solid geometry plot.
    +Test("transparency_05")
    +
    +
    +SetPlotOptions(pcAtts)
    +
    +# Test having three transparent plots, one with zonal centering.  Note:
    +# this is testing whether or not we can encode zonal-normals as nodal-normals
    +# and have it play well with other plots that have legitimate nodal-normals.
    +Test("transparency_06")
    +
    +# Test that it can do transparency correctly for rectilinear grids ('7772)
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +pcAtts = PseudocolorAttributes()
    +pcAtts.SetOpacityType(pcAtts.Constant)
    +pcAtts.opacity = 0.75
    +SetPlotOptions(pcAtts)
    +DrawPlots()
    +Test("transparency_07")
    +DeleteAllPlots()
    +
    +# Test that updates transparency correctly for rectilinear grids ('7773)
    +# To test this, we must draw a non-transparent grid first.
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +Test("transparency_08")
    +pcAtts.SetOpacityType(pcAtts.Constant)
    +pcAtts.opacity = 0.75
    +SetPlotOptions(pcAtts)
    +DrawPlots()
    +Test("transparency_09")
    +
    +DeleteAllPlots()
    +AddPlot("Histogram", "d")
    +DrawPlots()
    +Test("transparency_10")
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "u")
    +pcAtts.SetOpacityType(pcAtts.Constant)
    +pcAtts.opacity = 0.75
    +SetPlotOptions(pcAtts)
    +DrawPlots()
    +Test("transparency_11")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +ResetView()
    +Test("transparency_12")
    +pcAtts.SetOpacityType(pcAtts.Constant)
    +pcAtts.opacity = 0.25
    +SetPlotOptions(pcAtts)
    +Test("transparency_13")
    +
    +# Test transparency with 3d multi block data
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_curv3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +pcAtts.SetOpacityType(pcAtts.Constant)
    +pcAtts.opacity = 0.25
    +SetPlotOptions(pcAtts)
    +DrawPlots()
    +v =GetView3D()
    +v.viewNormal = (0.432843, 0.303466, 0.848855)
    +v.focus = (0, 2.5, 15)
    +v.viewUp = (-0.0787945, 0.950767, -0.299721)
    +v.viewAngle = 30
    +v.parallelScale = 16.0078
    +v.nearPlane = -32.0156
    +v.farPlane = 32.0156
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 2.5, 15)
    +v.axis3DScaleFlag = 0
    +v.axis3DScales = (1, 1, 1)
    +v.shear = (0, 0, 1)
    +v.windowValid = 1
    +SetView3D(v)
    +Test("transparency_14")
    +
    +DeleteAllPlots()
    +
    +# Test both opaque and transparent plots with 3d multi block data
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Subset", "mesh1", 1, 1)
    +s = SubsetAttributes()
    +s.colorType = s.ColorBySingleColor
    +s.singleColor = (153, 153, 153, 255)
    +SetPlotOptions(s)
    +AddOperator("Slice", 1)
    +SliceAtts = SliceAttributes()
    +SliceAtts.originType = SliceAtts.Intercept
    +SliceAtts.originIntercept = 2.5
    +SliceAtts.project2d = 0
    +SetOperatorOptions(SliceAtts, 0, 1)
    +
    +AddPlot("Subset", "domains(mesh1)", 1, 0)
    +s = SubsetAttributes()
    +s.opacity = 0.403922
    +SetPlotOptions(s)
    +
    +DrawPlots()
    +v = GetView3D()
    +v.viewNormal = (0.281187, 0.666153, 0.690778)
    +v.focus = (0, 2.5, 10)
    +v.viewUp = (-0.285935, 0.745284, -0.602323)
    +v.viewAngle = 30
    +v.parallelScale = 11.4564
    +v.nearPlane = -22.9129
    +v.farPlane = 22.9129
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 2.5, 10)
    +v.axis3DScaleFlag = 0
    +v.axis3DScales = (1, 1, 1)
    +v.shear = (0, 0, 1)
    +v.windowValid = 1
    +SetView3D(v)
    +
    +Test("transparency_15")
    +
    +DeleteAllPlots()
    +
    +# Test with 3d multi block data
    +OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +DefineScalarExpression("x", "coord(mesh1)[0]")
    +DefineScalarExpression("y", "coord(mesh1)[1]")
    +DefineScalarExpression("z", "coord(mesh1)[2]")
    +DefineScalarExpression("radial", "sqrt((x-0.5)*(x-0.5)+(y-0.5)*(y-0.5)+(z-0.5)*(z-0.5))")
    +DefineScalarExpression("const", "nodal_constant(<mesh1>, 2.0)")
    +
    +AddPlot("Pseudocolor", "const")
    +pc = PseudocolorAttributes()
    +pc.lightingFlag = 0
    +pc.opacityType = pc.Constant
    +pc.opacity = 0.4
    +SetPlotOptions(pc)
    +
    +AddOperator("Isovolume", 1)
    +isovol = IsovolumeAttributes()
    +isovol.lbound = 0
    +isovol.ubound = 0.4
    +isovol.variable = "radial"
    +SetOperatorOptions(isovol, 0, 1)
    +
    +AddOperator("Slice", 1)
    +slice = SliceAttributes()
    +slice.originType = slice.Intercept
    +slice.originIntercept = 0.7
    +slice.axisType = slice.XAxis
    +slice.project2d = 0
    +SetOperatorOptions(slice, 1, 0)
    +DrawPlots()
    +
    +AddPlot("Pseudocolor", "const", 1, 1)
    +pc.opacity = 0.7
    +SetPlotOptions(pc)
    +slice.originIntercept = 0.5
    +SetOperatorOptions(slice, 1, 0)
    +DrawPlots()
    +
    +AddPlot("Pseudocolor", "const", 1, 1)
    +pc.opacityType = pc.FullyOpaque
    +SetPlotOptions(pc)
    +slice.originIntercept = 0.3
    +SetOperatorOptions(slice, 1, 0)
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.786444, 0.436457, 0.437048)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.599183, 0.367316, 0.711378)
    +v.viewAngle = 30
    +v.parallelScale = 0.866025
    +v.nearPlane = -1.73205
    +v.farPlane = 1.73205
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0.5, 0.5, 0.5)
    +v.axis3DScaleFlag = 0
    +v.axis3DScales = (1, 1, 1)
    +v.shear = (0, 0, 1)
    +v.windowValid = 1
    +SetView3D(v)
    +
    +Test("transparency_16")
    +
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_view.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_view.html new file mode 100644 index 000000000..55c660fe7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_view.html @@ -0,0 +1,251 @@ + +Results for rendering/view.py + +

    Results of VisIt Regression Test - rendering/view

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    view_010.000.00
    Test degenerate 2D views
    view_020.000.00
    view_030.000.00
    view_040.000.00
    view_050.000.00
    Test degenerate curve views
    view_060.000.00
    view_070.000.00
    view_080.000.00
    view_090.190.00
    Test zoom in on mesh lines
    view_100.000.00
    view_110.000.00
    view_120.000.00
    view_130.000.00
    Test actual extents
    view_140.000.00
    view_150.000.00
    view_160.000.00
    view_170.000.00
    view_180.000.00
    view_190.000.00
    Test 3D plots with degenerate extents
    view_200.000.00
    view_210.000.00
    view_220.000.00
    Test interpolation of View3DAttributes
    view_230.000.00
    view_240.000.00
    view_250.000.00
    view_260.000.00
    view_270.000.00
    Test interpolation of View2DAttributes
    view_280.000.00
    view_290.000.00
    view_300.000.00
    view_310.000.00
    view_320.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_viewChange.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_viewChange.html new file mode 100644 index 000000000..7c480eb3c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_viewChange.html @@ -0,0 +1,222 @@ + +Results for rendering/viewChange.py + +

    Results of VisIt Regression Test - rendering/viewChange

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Testing view changes with slice flip
    ViewChangeSliceFlip0.000.00
    Testing view changes with fullframe
    ViewChangeFullFrame_010.000.00
    ViewChangeFullFrame_020.000.00
    ViewChangeFullFrame_030.000.00
    ViewChangeFullFrame_040.000.00
    ViewChangeFullFrame_050.000.00
    ViewChangeFullFrame_060.000.00
    ViewChangeFullFrame_070.000.00
    Testing view changes with fullframe and glyphed plots
    ViewChangeAutoFF_000.000.00
    ViewChangeAutoFF_010.000.00
    ViewChangeAutoFF_020.000.00
    ViewChangeAutoFF_030.000.00
    ViewChangeAutoFF_040.000.00
    ViewChangeAutoFF_050.000.00
    Testing view changes with log scaling of 2D plots
    ViewChangeLogScale2D_000.000.00
    ViewChangeLogScale2D_010.000.00
    ViewChangeLogScale2D_020.000.00
    Testing view changes with log scaling of curves
    ViewChangeLogScaleCurves_000.000.00
    ViewChangeLogScaleCurves_010.000.00
    ViewChangeLogScaleCurves_020.000.00
    ViewChangeLogScaleCurves_030.000.00
    ViewChangeLogScaleCurves_040.000.00
    ViewChangeLogScaleCurves_050.000.00
    largeValueLineout0.000.00
    largeValueLineout_logScaling0.000.00
    largeValueMeshCurve0.000.00
    largeValueMeshCurve_logScaling0.000.00
    Testing view changes with fullframe and label plots
    ViewChangeFullFrameWithLabels_000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_viewChange_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_viewChange_py.html new file mode 100644 index 000000000..83b1b583b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_viewChange_py.html @@ -0,0 +1,450 @@ +rendering/viewChange.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  viewChange.py
    +#
    +#  Tests:      mesh      - structured grid 
    +#              plots     - pc
    +#              operators - slice
    +#              selection - none
    +#
    +#  Defect ID:  VisIt00003350, VisIt000032263
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       May 14, 2003 
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Tue Jul  8 21:04:45 PDT 2003 
    +#    Changed ViewChangeSliceFlip, to use Flip, then change so that
    +#    image remains the same .. necessary do to slice changes.
    +#
    +#    Kathleen Bonnell, Wed Jul 16 18:07:33 PDT 2003 
    +#    Added more full-frame tests: for Histogram plot, transparent plot,
    +#    and plots with ViewExtentsType set to 'actual'.
    +#
    +#    Mark C. Miller, Tue Mar 14 07:54:20 PST 2006
    +#    Changed how full-frame is turned on/off
    +#
    +#    Brad Whitlock, Wed Jul 26 14:31:57 PST 2006
    +#    Added testing for auto fullframe of some glyphed plots.
    +#
    +#    Kathleen Bonnell, Tue Mar  3 13:20:57 PST 2009
    +#    Added testing for log-scaling of curves and 2d plots.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Wed Oct 21 11:19:52 PDT 2020
    +#    Added TestLargeValueLineoutWithLogScaling
    +#
    +#    Alister Maguire, Mon May 24 12:50:20 PDT 2021
    +#    Added TestViewChangeFullFrameWithLabels.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def InitAnnotation():
    +    # Turn off most annotation
    +    a = GetAnnotationAttributes()
    +    a.axes2D.visible = 1
    +    a.axes2D.xAxis.label.visible = 0
    +    a.axes2D.yAxis.label.visible = 0
    +    a.axes2D.xAxis.title.visible = 0
    +    a.axes2D.yAxis.title.visible = 0
    +    a.axes3D.visible = 0
    +    a.axes3D.triadFlag = 0
    +    a.axes3D.bboxFlag = 0
    +    a.userInfoFlag = 0
    +    a.databaseInfoFlag = 0
    +    a.legendInfoFlag = 0
    +    a.backgroundMode = 0
    +    a.foregroundColor = (0, 0, 0, 255)
    +    a.backgroundColor = (255, 255, 255, 255)
    +    SetAnnotationAttributes(a)
    +
    +
    +def TestViewChangeSliceFlip():
    +    TestSection("Testing view changes with slice flip")
    +    OpenDatabase(silo_data_path("wave0000.silo"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    AddOperator("Slice")
    +    slice = SliceAttributes()
    +    slice.project2d = 1
    +    slice.axisType = slice.ZAxis
    +    slice.flip = 1
    +    SetOperatorOptions(slice)
    +    DrawPlots()
    +
    +    # We want to capture the image after the flip, to ensure
    +    # the frame and axes are still drawn correctly.
    +    slice.flip = 0
    +    SetOperatorOptions(slice)
    +
    +    Test("ViewChangeSliceFlip")
    +    DeleteAllPlots()
    +
    +def TestViewChangeFullFrame():
    +    TestSection("Testing view changes with fullframe")
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    # We want to capture the image after toggling full frame mode, 
    +    # to ensure frame and axes are still drawn correctly.
    +
    +    # Turn full frame mode ON
    +    v = GetView2D()
    +    v.fullFrameActivationMode = v.On
    +    SetView2D(v)
    +    Test("ViewChangeFullFrame_01")
    +
    +    # Does a transparent actor maintain the full frame mode? 
    +    p = PseudocolorAttributes()
    +    p.SetOpacityType(p.Constant)
    +    p.opacity = 0.5;
    +    SetPlotOptions(p);
    +    Test("ViewChangeFullFrame_02")
    +
    +
    +    p.SetOpacityType(p.FullyOpaque)
    +    SetPlotOptions(p)
    +    # Turn full frame mode OFF
    +    ToggleFullFrameMode()
    +    AddOperator("Clip")
    +    c = ClipAttributes()
    +    c.plane1Origin = (0, 3, 0)
    +    c.plane1Normal = (0, -1, 0)
    +    SetOperatorOptions(c)
    +    DrawPlots()
    +    SetViewExtentsType("actual")
    +    # Turn full frame mode ON
    +    ToggleFullFrameMode()
    +    Test("ViewChangeFullFrame_03")
    +    # Turn full frame mode OFF
    +    ToggleFullFrameMode()
    +    Test("ViewChangeFullFrame_04")
    +    # Turn full frame mode ON
    +    ToggleFullFrameMode()
    +    SetViewExtentsType("original")
    +    Test("ViewChangeFullFrame_05")
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Histogram", "u")
    +    DrawPlots()
    +    ResetView()
    +    Test("ViewChangeFullFrame_06")
    +    h = HistogramAttributes()
    +    h.numBins = 5
    +    SetPlotOptions(h)
    +    Test("ViewChangeFullFrame_07")
    +
    +    # cleanup for next test
    +    v = GetView2D()
    +    v.fullFrameActivationMode = v.Auto
    +    SetView2D(v)
    +
    +    DeleteAllPlots()
    +
    +def TestViewChangeFullFrameWithGlyphs():
    +    TestSection("Testing view changes with fullframe and glyphed plots")
    +    OpenDatabase(silo_data_path("fullframe.silo"))
    +
    +    AddPlot("Mesh", "fullframe")
    +    DrawPlots()
    +    ResetView()
    +    Test("ViewChangeAutoFF_00")
    +
    +    AddPlot("Vector", "vec")
    +    v = VectorAttributes()
    +    v.nVectors = 800
    +    SetPlotOptions(v)
    +    DrawPlots()
    +    Test("ViewChangeAutoFF_01")
    +
    +    DeleteAllPlots()
    +
    +    # Make sure it kicks in when the vector plot is the only plot.
    +    AddPlot("Vector", "vec")
    +    v = VectorAttributes()
    +    v.nVectors = 800
    +    SetPlotOptions(v)
    +    DrawPlots()
    +    Test("ViewChangeAutoFF_02")
    +
    +    DeleteAllPlots()
    +
    +    # Test a Pseudocolor plot of point mesh data
    +    AddPlot("Pseudocolor", "rad")
    +    p = PseudocolorAttributes()
    +    p.pointType = p.Box
    +    p.pointSize = 5e+8
    +    SetPlotOptions(p)
    +    DrawPlots()
    +    Test("ViewChangeAutoFF_03")
    +
    +    p.pointType = p.Axis
    +    SetPlotOptions(p)
    +    Test("ViewChangeAutoFF_04")
    +
    +    DeleteAllPlots()
    +
    +    # Test a Mesh plot of a point mesh
    +    AddPlot("Mesh", "pointmesh")
    +    m = MeshAttributes()
    +    m.pointType = m.Box
    +    m.pointSize = 5e+8
    +    SetPlotOptions(m)
    +    DrawPlots()
    +    Test("ViewChangeAutoFF_05")
    +    DeleteAllPlots()
    +
    +def TestViewChangeLogScaling2D():
    +    TestSection("Testing view changes with log scaling of 2D plots")
    +
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    ResetView()
    +
    +    #7944  ensure that changing curve view scaling does not affect 2D.
    +    v = GetViewCurve()
    +    v.domainScale = v.LOG
    +    v.rangeScale = v.LOG
    +    SetViewCurve(v)
    +
    +    Test("ViewChangeLogScale2D_00")
    +
    +    #8563  using view window coords to put a plot into a range suitable 
    +    #      for log-scaling
    +
    +    v = GetView2D()
    +    v.fullFrameActivationMode = v.Off
    +    wc = v.windowCoords
    +    v.windowCoords = (1e-13, 0.25, wc[2], wc[3])
    +    SetView2D(v)
    +
    +    Test("ViewChangeLogScale2D_01")
    +    v.xScale = v.LOG
    +    SetView2D(v)
    +    Test("ViewChangeLogScale2D_02")
    +
    +    #clean up for next test
    +    v = GetView2D()
    +    v.xScale = v.LINEAR
    +    v.yScale = v.LINEAR
    +    SetView2D(v)
    +    ResetView()
    +
    +    v = GetViewCurve()
    +    v.domainScale = v.LINEAR
    +    v.rangeScale = v.LINEAR
    +    SetViewCurve(v)
    +    DeleteAllPlots()
    +
    +def TestViewChangeLogScalingCurves():
    +    TestSection("Testing view changes with log scaling of curves")
    +    # '8880:  Add curve plot.  Set scaling to log-log.  Add another curve plot.
    +    OpenDatabase(data_path("curve_test_data/distribution.ultra"))
    +
    +    AddPlot("Curve", "Laplace Distribution")
    +    curveAtts = CurveAttributes()
    +    curveAtts.curveColorSource = curveAtts.Custom
    +    curveAtts.curveColor = (255, 0, 0, 255)
    +    SetPlotOptions(curveAtts)
    +
    +    # For log scaling to work with these curves, we need to transform
    +    # first.
    +
    +    trans = TransformAttributes()
    +    trans.doTranslate = 1
    +    trans.translateX = 30
    +    trans.translateY = 10
    +    SetDefaultOperatorOptions(trans)
    +    AddOperator("Transform")
    +    DrawPlots()
    +    ResetView()
    +    Test("ViewChangeLogScaleCurves_00")
    +
    +    v = GetViewCurve()
    +    v.domainScale = v.LOG
    +    v.rangeScale  = v.LOG
    +    SetViewCurve(v)
    +
    +    Test("ViewChangeLogScaleCurves_01")
    +
    +    AddPlot("Curve", "Log Normal Distribution")
    +    curveAtts.curveColor = (0, 255, 0, 255)
    +    SetPlotOptions(curveAtts)
    +    AddOperator("Transform")
    +    DrawPlots()
    +    Test("ViewChangeLogScaleCurves_02")
    +
    +    AddPlot("Curve", "Exponential Distribution")
    +    curveAtts.curveColor = (0, 0, 255, 255)
    +    SetPlotOptions(curveAtts)
    +    AddOperator("Transform")
    +    DrawPlots()
    +    Test("ViewChangeLogScaleCurves_03")
    +
    +    v = GetViewCurve()
    +    v.domainScale = v.LINEAR
    +    v.rangeScale  = v.LINEAR
    +    SetViewCurve(v)
    +
    +    DeleteAllPlots()
    +
    +    #8660  add log scaling to a curve put in an appropriate range via the
    +    #      box operator
    +    OpenDatabase(data_path("curve_test_data/c063.curve"))
    +
    +    AddPlot("Curve", "flat")
    +    curveAtts.curveColor = (0, 255, 255, 255)
    +    SetPlotOptions(curveAtts)
    +    AddPlot("Curve", "going_down")
    +    curveAtts.curveColor = (255, 0, 255, 255)
    +    SetPlotOptions(curveAtts)
    +    AddPlot("Curve", "going_up")
    +    curveAtts.curveColor = (255, 255, 0, 255)
    +    SetPlotOptions(curveAtts)
    +    AddPlot("Curve", "parabolic")
    +    curveAtts.curveColor = (255, 135, 0, 255)
    +    SetPlotOptions(curveAtts)
    +
    +    DrawPlots()
    +
    +    SetActivePlots((0, 1, 2, 3))
    +    AddOperator("Box")
    +    b = BoxAttributes()
    +    b.minx = 0.4
    +    b.maxx = 0.8
    +    b.miny = 0.000001
    +    b.maxy = 10000
    +    SetOperatorOptions(b)
    +    DrawPlots()
    +
    +    SetViewExtentsType("actual")
    +
    +    Test("ViewChangeLogScaleCurves_04")
    +
    +    v = GetViewCurve()
    +    v.domainScale = v.LOG
    +    v.rangeScale  = v.LOG
    +    SetViewCurve(v)
    +
    +    Test("ViewChangeLogScaleCurves_05")
    +
    +    #clean up for next test
    +    v = GetViewCurve()
    +    v.domainScale = v.LINEAR
    +    v.rangeScale  = v.LINEAR
    +    SetViewCurve(v)
    +    ResetView()
    +    DeleteAllPlots()
    +
    +def TestLargeValueLineoutWithLogScaling():
    +    # github bug #5066
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +    DefineScalarExpression("tlarge", "t*1e19")
    +    AddPlot("Pseudocolor", "tlarge")
    +    DrawPlots()
    +    Lineout((0.5, 1.5, 0), (0.5, 0, 0))
    +    SetActiveWindow(2)
    +    # Instead of getting *default* curve plot atts,
    +    # get *current* plot's atts using `1` arg. This
    +    # is to change *only* the attrs we want to change.
    +    curveAtts = CurveAttributes(1)
    +    curveAtts.lineWidth = 3
    +    SetPlotOptions(curveAtts)
    +    Test("largeValueLineout")
    +
    +    # save the curve as VTK so Mesh plot and 2D view can be tested.
    +    oldSwa = SaveWindowAttributes()
    +    swa = SaveWindowAttributes()
    +    swa.fileName="lineoutRes"
    +    swa.family=0
    +    swa.format=swa.VTK
    +    # need to ensure this is set (not the default on Windows)
    +    swa.outputToCurrentDirectory=1
    +    SetSaveWindowAttributes(swa)
    +    if TestEnv.params["scalable"] == 0:
    +        SaveWindow()
    +    else:
    +        # Turn of SR mode for the saveWindow, then turn it back on
    +        ra = GetRenderingAttributes()
    +        srm = ra.scalableActivationMode
    +        ra.scalableActivationMode = ra.Never
    +        SetRenderingAttributes(ra)
    +        SaveWindow()
    +        ra = GetRenderingAttributes()
    +        ra.scalableActivationMode = srm
    +        SetRenderingAttributes(ra)
    +    # restore previous settings
    +    SetSaveWindowAttributes(oldSwa)
    +
    +    v = GetViewCurve()
    +    v.rangeScale  = v.LOG
    +    SetViewCurve(v)
    +    Test("largeValueLineout_logScaling")
    +
    +    v = GetViewCurve()
    +    v.rangeScale  = v.LINEAR
    +    SetViewCurve(v)
    +
    +    DeleteAllPlots()
    +    OpenDatabase("lineoutRes.vtk")
    +    AddPlot("Mesh", "mesh")
    +    meshAtts = MeshAttributes()
    +    meshAtts.lineWidth=3
    +    SetPlotOptions(meshAtts)
    +    DrawPlots()
    +    Test("largeValueMeshCurve")
    +
    +    v = GetView2D()
    +    v.yScale = v.LOG
    +    SetView2D(v)
    +    Test("largeValueMeshCurve_logScaling")
    +    v.yScale = v.LINEAR
    +    SetView2D(v)
    +    DeleteWindow()
    +    DeleteAllPlots()
    +
    +def TestViewChangeFullFrameWithLabels():
    +    TestSection("Testing view changes with fullframe and label plots")
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Mesh", "curvmesh2d")
    +    AddPlot("Label", "curvmesh2d")
    +
    +    View2DAtts = View2DAttributes()
    +    View2DAtts.windowCoords = (-4.69855, 4.88342, 0.225185, 4.93329)
    +    View2DAtts.fullFrameActivationMode = View2DAtts.On
    +    SetView2D(View2DAtts)
    +
    +    DrawPlots()
    +
    +    Test("ViewChangeFullFrameWithLabels_00")
    +
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(silo_data_path("curv2d.silo"))
    +
    +
    +
    +def ViewChangeMain():
    +    InitAnnotation()
    +    TestViewChangeSliceFlip()
    +    TestViewChangeFullFrame()
    +    TestViewChangeFullFrameWithGlyphs()
    +    TestViewChangeLogScaling2D()
    +    TestViewChangeLogScalingCurves()
    +    TestLargeValueLineoutWithLogScaling()
    +    TestViewChangeFullFrameWithLabels()
    +
    +# Call the main function
    +ViewChangeMain()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_view_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_view_py.html new file mode 100644 index 000000000..2e40e27eb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_view_py.html @@ -0,0 +1,382 @@ +rendering/view.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  view.py
    +#
    +#  Tests:      mesh      - 2D structured, single domain 
    +#                        - 3D unstructured, multiple domains
    +#                        - 3D rectilinear, single domain
    +#                        - Curve
    +#              plots     - pseudocolor, curve, mesh
    +#              operators - none
    +#              selection - none
    +#
    +#  Defect ID:  VisIt00003915, VisIt00004247, VisIt00003398, VisIt00004896,
    +#              VisIt00005337
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       November 18, 2003 
    +#
    +#  Modifications:
    +#    Eric Brugger, Fri Apr 23 08:54:22 PDT 2004
    +#    Add a test to make sure that we can set the 3d view before any plots
    +#    are created.  Add tests to make sure that we can reset and recenter
    +#    the view when no plots are present.
    +#
    +#    Eric Brugger, Thu May 13 10:26:02 PDT 2004
    +#    Add a test to make sure switching view extents type to actual results
    +#    in new plots being centered after deleting all the existing plots.
    +#
    +#    Eric Brugger, Mon May 24 11:21:04 PDT 2004
    +#    Add a test with small extents.
    +#
    +#    Eric Brugger, Tue May 25 15:17:18 PDT 2004
    +#    Modify the test for small extents, and add more small and large extents
    +#    tests.
    +#
    +#    Eric Brugger, Mon Sep 20 13:37:52 PDT 2004
    +#    Add several tests for combining 3d plots with degenerate extents.
    +#
    +#    Brad Whitlock, Thu Mar 15 11:31:26 PDT 2007
    +#    Test that the bindings for 2D,3D views can still interpolate.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +# Test setting the 3d view before creating the first plot.
    +v = View3DAttributes()
    +v.imagePan = (0.2, 0.2)
    +v.imageZoom = 1.2
    +v.viewNormal = (-0.5, 0.707107, 0.5)
    +v.viewUp = (0.5, 0.707107, -0.5)
    +SetView3D(v)
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +Test("view_01")
    +
    +DeleteAllPlots()
    +
    +# Create a psuedocolor plot and test various degenerate 2d views.
    +TestSection("Test degenerate 2D views")
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +v = View2DAttributes()
    +v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +
    +v.windowCoords = (-4.68395, 4.89802, 2.5, 2.5)
    +SetView2D(v)
    +Test("view_02")
    +
    +v.windowCoords = (0.5, 0.5, 0.216897, 4.925)
    +SetView2D(v)
    +Test("view_03")
    +
    +v.windowCoords = (0.5, 0.5, 2.5, 2.5)
    +SetView2D(v)
    +Test("view_04")
    +
    +v.windowCoords = (0, 0, 0, 0)
    +SetView2D(v)
    +Test("view_05")
    +
    +DeleteAllPlots()
    +
    +# Create several curve plots and test various degenerate curve views.
    +TestSection("Test degenerate curve views")
    +OpenDatabase(data_path("curve_test_data/c051.curve"))
    +
    +
    +AddPlot("Curve", "flat")
    +curveAtts = CurveAttributes()
    +curveAtts.curveColorSource = curveAtts.Custom
    +curveAtts.curveColor = (255, 0, 0, 255)
    +SetPlotOptions(curveAtts)
    +AddPlot("Curve", "going_up")
    +curveAtts.curveColor = (0, 255, 0, 255)
    +SetPlotOptions(curveAtts)
    +AddPlot("Curve", "going_down")
    +curveAtts.curveColor = (0, 0, 255, 255)
    +SetPlotOptions(curveAtts)
    +AddPlot("Curve", "parabolic")
    +curveAtts.curveColor = (0, 255, 255, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +
    +v = ViewCurveAttributes()
    +v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +
    +v.domainCoords = (0., 1.)
    +v.rangeCoords = (0.3, 0.3)
    +SetViewCurve(v)
    +Test("view_06")
    +
    +v.domainCoords = (0.6, 0.6)
    +v.rangeCoords = (0., 1.)
    +SetViewCurve(v)
    +Test("view_07")
    +
    +v.domainCoords = (0.6, 0.6)
    +v.rangeCoords = (0.3, 0.3)
    +SetViewCurve(v)
    +Test("view_08")
    +
    +v.domainCoords = (0., 0.)
    +v.rangeCoords = (0., 0.)
    +SetViewCurve(v)
    +Test("view_09")
    +
    +DeleteAllPlots()
    +
    +# Create a pseudocolor and mesh plot and zoom in on a sharp edge to
    +# verify that the mesh lines are not bleeding through the surface.
    +TestSection("Test zoom in on mesh lines")
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +
    +AddPlot("Pseudocolor", "u")
    +AddPlot("Mesh", "mesh1")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.335187, -0.557088, 0.759804)
    +v.focus = (0, 2.5, 10)
    +v.viewUp = (-0.327416, 0.825068, 0.460501)
    +v.viewAngle = 30
    +v.parallelScale = 11.4564
    +v.nearPlane = -22.9129
    +v.farPlane = 22.9129
    +v.imagePan = (-0.136785, -0.172112)
    +v.imageZoom = 20.125
    +v.perspective = 1
    +SetView3D(v)
    +Test("view_10")
    +
    +# Test resetting and recentering the view when no plot is present.
    +DeleteAllPlots()
    +
    +ResetView()
    +
    +AddPlot("Pseudocolor", "u")
    +AddPlot("Mesh", "mesh1")
    +DrawPlots()
    +Test("view_11")
    +
    +v.viewNormal = (0.393726, -0.416942, 0.819231)
    +v.focus = (0, 5., 10)
    +v.viewUp = (-0.603958, 0.554522, 0.572486)
    +v.viewAngle = 30
    +v.parallelScale = 11.4564
    +v.nearPlane = -22.9129
    +v.farPlane = 22.9129
    +v.imagePan = (0.05, 0.)
    +v.imageZoom = 2.
    +v.perspective = 1
    +SetView3D(v)
    +Test("view_12")
    +
    +DeleteAllPlots()
    +
    +RecenterView()
    +
    +AddPlot("Pseudocolor", "u")
    +AddPlot("Mesh", "mesh1")
    +DrawPlots()
    +Test("view_13")
    +
    +# Test that setting view extents type to actual works.  Test that
    +# switching view extents type to actual results in new plots being
    +# centered after deleting all the existing plots.
    +TestSection("Test actual extents")
    +DeleteAllPlots()
    +
    +ResetView()
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Clip")
    +DrawPlots()
    +SetViewExtentsType("actual")
    +Test("view_14")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "p")
    +DrawPlots()
    +Test("view_15")
    +
    +# Test setting the view with small extents.
    +DeleteAllPlots()
    +
    +ResetView()
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Transform")
    +scale = TransformAttributes()
    +scale.doScale = 1
    +scale.scaleX = 1.0e-21
    +scale.scaleY = 1.0e-21
    +scale.scaleZ = 1.0e-21
    +SetOperatorOptions(scale)
    +DrawPlots()
    +Test("view_16")
    +
    +ChangeActivePlotsVar("t")
    +Test("view_17")
    +
    +# Test setting the view with large extents.
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Transform")
    +scale = TransformAttributes()
    +scale.doScale = 1
    +scale.scaleX = 1.0e17
    +scale.scaleY = 1.0e17
    +scale.scaleZ = 1.0e17
    +SetOperatorOptions(scale)
    +DrawPlots()
    +Test("view_18")
    +
    +ChangeActivePlotsVar("t")
    +Test("view_19")
    +
    +# Test various combinations of 3d plots with degenerate extents.
    +TestSection("Test 3D plots with degenerate extents")
    +DeleteAllPlots()
    +
    +ResetView()
    +
    +OpenDatabase(data_path("vtk_test_data/rect_flat_i.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +OpenDatabase(data_path("vtk_test_data/rect_flat_j.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +Test("view_20")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(data_path("vtk_test_data/rect_flat_j.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +OpenDatabase(data_path("vtk_test_data/rect_flat_k.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +Test("view_21")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(data_path("vtk_test_data/rect_flat_k.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +OpenDatabase(data_path("vtk_test_data/rect_flat_i.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +Test("view_22")
    +DeleteAllPlots()
    +
    +
    +#
    +# Test that the View3DAttributes object's Python binding still has the
    +# ability to interpolate the view.
    +#
    +TestSection("Test interpolation of View3DAttributes")
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "speed")
    +DrawPlots()
    +
    +v0 = View3DAttributes()
    +v0.viewNormal = (0.416973, 0.447113, 0.791343)
    +v0.focus = (0, 0, 0)
    +v0.viewUp = (-0.23799, 0.893974, -0.379699)
    +v0.viewAngle = 30
    +v0.parallelScale = 17.3205
    +v0.nearPlane = -34.641
    +v0.farPlane = 34.641
    +v0.imagePan = (0, 0)
    +v0.imageZoom = 1
    +v0.perspective = 1
    +v0.eyeAngle = 2
    +v0.centerOfRotationSet = 0
    +v0.centerOfRotation = (0, 0, 0)
    +
    +v1 = View3DAttributes()
    +v1.viewNormal = (0.416973, 0.447113, 0.791343)
    +v1.focus = (0, 0, 0)
    +v1.viewUp = (-0.23799, 0.893974, -0.379699)
    +v1.viewAngle = 30
    +v1.parallelScale = 17.3205
    +v1.nearPlane = -34.641
    +v1.farPlane = 34.641
    +v1.imagePan = (0.160832, 0.126504)
    +v1.imageZoom = 3.95662
    +v1.perspective = 1
    +v1.eyeAngle = 2
    +v1.centerOfRotationSet = 0
    +v1.centerOfRotation = (0, 0, 0)
    +
    +idx = 23
    +nsteps = 5
    +for i in range(nsteps):
    +    t = float(i) / float(nsteps - 1)
    +    v = (1. - t) * v0 + t * v1
    +    SetView3D(v)
    +    Test("view_%d" % idx)
    +    idx = idx + 1
    +DeleteAllPlots()
    +
    +#
    +# Test that the View2DAttributes object's Python binding still has the
    +# ability to interpolate the view.
    +#
    +TestSection("Test interpolation of View2DAttributes")
    +OpenDatabase(data_path("shapefile_test_data/prism0p020/prism0p020.shp"))
    +
    +AddPlot("Pseudocolor", "RANGE")
    +DrawPlots()
    +
    +v0 = View2DAttributes()
    +v0.windowCoords = (-124.756, -66.954, 24.5183, 49.3856)
    +v0.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +v0.fullFrameActivationMode = v0.Off  # On, Off, Auto
    +v0.fullFrameAutoThreshold = 100
    +
    +v1 = View2DAttributes()
    +v1.windowCoords = (-77.667, -74.881, 36.6969, 39.662)
    +v1.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +v1.fullFrameActivationMode = v1.Off  # On, Off, Auto
    +v1.fullFrameAutoThreshold = 100
    +
    +nsteps = 5
    +for i in range(nsteps):
    +    t = float(i) / float(nsteps - 1)
    +    v = (1. - t) * v0 + t * v1
    +    SetView2D(v)
    +    Test("view_%d" % idx)
    +    idx = idx + 1
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume.html new file mode 100644 index 000000000..b035c75b8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume.html @@ -0,0 +1,54 @@ + +Results for rendering/volume.py + +

    Results of VisIt Regression Test - rendering/volume

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    volume_030.000.00
    volume_010.000.00
    volume_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume_py.html new file mode 100644 index 000000000..f5ff9ae86 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume_py.html @@ -0,0 +1,113 @@ +rendering/volume.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  volume.py
    +#
    +#  Tests:      mesh      - 3D unstructured, one domain 
    +#              plots     - volume 
    +#              operators - none
    +#              selection - yes 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       01Jul03
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Dec 15 09:36:51 PDT 2004
    +#    I changed the flag that's used to make it do software rendering.
    +#
    +#    Hank Childs, Mon Jul 11 14:07:16 PDT 2005
    +#    Added test for rectilinear grids with ghost zones and hardware rendering
    +#    ['5712].
    +#
    +#    Hank Childs, Wed Jul 13 10:31:08 PDT 2005
    +#    Delete wireframe plot, since that exposes '6380.
    +#
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Wed Aug 25 14:25:13 PDT 2010
    +#    SIL id shift (from 4 to 5) due to changes in SIL generation.
    +#
    +#    Brad Whitlock, Wed Sep 28 11:48:16 PDT 2011
    +#    Zoom in a little so we have more pixels covered.
    +#
    +#    Kathleen Biagas, Wed Nov 29 10:52:22 PST 2023
    +#    Skip volume_30 in scalable,parallel,icet mode as it crashes.
    +#
    +#    Kathleen Biagas, Tue May  7 13:56:23 PDT 2024
    +#    Move volume_10-volume_16 to volume_rect_singleDomain.py.
    +#    Move volume_20-volume_24 to volume_rect_multiDomain.py.
    +#    Move volume_30-volume_34 to volume_multiDomain_missingData.py.
    +# ----------------------------------------------------------------------------
    +
    +
    +def Samrai():
    +    OpenDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +
    +    # '6380.  The wireframe is not composited correctly when in SR mode.
    +    # So delete the wireframe and we should get the same picture in SR and
    +    # non-SR.  When '6380 is fixed, the DeleteAllPlots() call below should be
    +    # removed and the baseline should be reset.
    +    DeleteAllPlots()
    +
    +    AddPlot("Volume", "Primitive Var _number_0")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType =  volAtts.Serial
    +    volAtts.smoothData = 0
    +    volAtts.useColorVarMin = 1
    +    volAtts.colorVarMin = 22
    +    SetPlotOptions(volAtts)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (-0.369824, 0.535308, 0.759391)
    +    v.viewUp = (-0.022009, 0.812062, -0.583155)
    +    SetView3D(v)
    +
    +    Test("volume_03")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +
    +def globe():
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Volume", "t")
    +    silr=SILRestriction()
    +    silr.TurnOffSet(5)
    +    SetPlotSILRestriction(silr)
    +
    +    DrawPlots()
    +
    +    v=GetView3D()
    +    v.viewNormal=(0.507832, -0.301407, -0.807007)
    +    v.viewUp=(-0.831783, -0.415313, -0.368309)
    +    v.imageZoom = 2.
    +    SetView3D(v)
    +
    +    # test the serial volume render
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    SetPlotOptions(volAtts)
    +    Test("volume_01")
    +
    +    # test software volume render
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Composite
    +    SetPlotOptions(volAtts)
    +    Test("volume_02")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("globe.silo"))
    +
    +Samrai()
    +globe()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume_rect_multiDomain.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume_rect_multiDomain.html new file mode 100644 index 000000000..3c185a43c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume_rect_multiDomain.html @@ -0,0 +1,87 @@ + +Results for rendering/volume_rect_multiDomain.py + +

    Results of VisIt Regression Test - rendering/volume_rect_multiDomain

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    MultiDomain, Serial, NoResampling
    volume_2071.9219.22
    MultiDomain, Serial, ParallelResistribute
    volume_210.000.00
    MultiDomain, Serial, ParallelResistribute, ospray
    volume_220.000.00
    MultiDomain, Parallel, ParallelPerRank
    volume_2399.7622.29
    MultiDomain, Parallel, ParallelPerRank, ospray
    volume_24100.0015.09
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume_rect_multiDomain_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume_rect_multiDomain_py.html new file mode 100644 index 000000000..1bcab1148 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume_rect_multiDomain_py.html @@ -0,0 +1,95 @@ +rendering/volume_rect_multiDomain.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  volume_rect_multiDomain.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, multiple domains
    +#              plots     - volume
    +#              operators - none
    +#              selection - no
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       May 7, 2024
    +#
    +#  Notes:   Moved from volume.py due to interference between a 'Serial'
    +#           plot following a 'Composite' or 'Parallel' plot causing the
    +#           'Serial' plot to yield a blank image.
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def multiDomainRect():
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +    AddPlot("Volume", "d")
    +    DrawPlots()
    +
    +    View3DAtts = GetView3D()
    +    View3DAtts.viewNormal = (0.628533, 0.511363, 0.58605)
    +    View3DAtts.focus = (0.5, 0.5, 0.5)
    +    View3DAtts.viewUp = (-0.169088, 0.825303, -0.538779)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 0.866025
    +    View3DAtts.nearPlane = -1.73205
    +    View3DAtts.farPlane = 1.73205
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 0
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0.5, 0.5, 0.5)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +    TestSection("MultiDomain, Serial, NoResampling")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.NoResampling
    +    volAtts.OSPRayEnabledFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volume_20")
    +
    +    TestSection("MultiDomain, Serial, ParallelResistribute")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.ParallelRedistribute
    +    volAtts.OSPRayEnabledFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volume_21")
    +
    +    TestSection("MultiDomain, Serial, ParallelResistribute, ospray")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.ParallelRedistribute
    +    volAtts.OSPRayEnabledFlag = 1
    +    SetPlotOptions(volAtts)
    +    Test("volume_22")
    +
    +    TestSection("MultiDomain, Parallel, ParallelPerRank")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Parallel
    +    volAtts.resampleType = volAtts.ParallelPerRank
    +    volAtts.OSPRayEnabledFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volume_23")
    +
    +    TestSection("MultiDomain, Parallel, ParallelPerRank, ospray")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Parallel
    +    volAtts.resampleType = volAtts.ParallelPerRank
    +    volAtts.OSPRayEnabledFlag = 1
    +    SetPlotOptions(volAtts)
    +    Test("volume_24")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +    CloseDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +multiDomainRect()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume_rect_singleDomain.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume_rect_singleDomain.html new file mode 100644 index 000000000..00827cd64 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume_rect_singleDomain.html @@ -0,0 +1,99 @@ + +Results for rendering/volume_rect_singleDomain.py + +

    Results of VisIt Regression Test - rendering/volume_rect_singleDomain

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Single Domain, Serial, NoResampling
    volume_100.000.00
    Single Domain, Serial, OnlyIfRequired
    volume_110.000.00
    Single Domain, Serial, OnlyIfRequired, ospray
    volume_120.000.00
    Single Domain, Serial, SingleDomain
    volume_130.000.00
    Single Domain, Serial, SingleDomain, ospray
    volume_140.000.00
    Single Domain, Parallel, ParallelRedistribute
    volume_150.000.00
    Single Domain, Parallel, ParallelRedistribute, ospray
    volume_160.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume_rect_singleDomain_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume_rect_singleDomain_py.html new file mode 100644 index 000000000..8c9771246 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume_rect_singleDomain_py.html @@ -0,0 +1,111 @@ +rendering/volume_rect_singleDomain.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  volume_rect_singleDomain.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, one domain 
    +#              plots     - volume 
    +#              operators - none
    +#              selection - no 
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       May 7, 2024
    +#
    +#  Notes:   Moved from volume.py due to interference between a 'Serial'
    +#           plot following a 'Composite' or 'Parallel' plot causing the
    +#           'Serial' plot to yield a blank image.
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def singleDomainRect():
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +    AddPlot("Volume", "d")
    +    DrawPlots()
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0.628533, 0.511363, 0.58605)
    +    View3DAtts.focus = (0.5, 0.5, 0.5)
    +    View3DAtts.viewUp = (-0.169088, 0.825303, -0.538779)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 0.866025
    +    View3DAtts.nearPlane = -1.73205
    +    View3DAtts.farPlane = 1.73205
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 0
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0.5, 0.5, 0.5)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +    TestSection("Single Domain, Serial, NoResampling")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.NoResampling
    +    volAtts.OSPRayEnabledFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volume_10")
    +
    +    TestSection("Single Domain, Serial, OnlyIfRequired")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.OnlyIfRequired
    +    volAtts.OSPRayEnabledFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volume_11")
    +
    +    TestSection("Single Domain, Serial, OnlyIfRequired, ospray")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.OnlyIfRequired
    +    volAtts.OSPRayEnabledFlag = 1
    +    SetPlotOptions(volAtts)
    +    Test("volume_12")
    +
    +    TestSection("Single Domain, Serial, SingleDomain")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.SingleDomain
    +    volAtts.OSPRayEnabledFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volume_13")
    +
    +    TestSection("Single Domain, Serial, SingleDomain, ospray")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.SingleDomain
    +    volAtts.OSPRayEnabledFlag = 1
    +    SetPlotOptions(volAtts)
    +    Test("volume_14")
    +
    +    TestSection("Single Domain, Parallel, ParallelRedistribute")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Parallel
    +    volAtts.resampleType = volAtts.ParallelRedistribute
    +    volAtts.OSPRayEnabledFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volume_15")
    +
    +    TestSection("Single Domain, Parallel, ParallelRedistribute, ospray")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Parallel
    +    volAtts.resampleType = volAtts.ParallelRedistribute
    +    volAtts.OSPRayEnabledFlag = 1
    +    SetPlotOptions(volAtts)
    +    Test("volume_16")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +    CloseDatabase(silo_data_path("rect3d.silo"))
    +
    +singleDomainRect()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume_ucd_multiDomain.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume_ucd_multiDomain.html new file mode 100644 index 000000000..84a9d11e7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume_ucd_multiDomain.html @@ -0,0 +1,83 @@ + +Results for rendering/volume_ucd_multiDomain.py + +

    Results of VisIt Regression Test - rendering/volume_ucd_multiDomain

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    UCD MultiDomain, Serial, NoResampling
    volume_300 modifications totalling 0 lines
    UCD MultiDomain, Serial, ParallelRedistribute
    volume_310.000.00
    UCD MultiDomain, Serial, ParallelRedistribute, ospray
    volume_320.000.00
    UCD MultiDomain, Parallel, ParallelPerRank
    volume_33100.054.10
    UCD MultiDomain, Parallel, ParallelPerRank, ospray
    volume_3499.494.93
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume_ucd_multiDomain_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume_ucd_multiDomain_py.html new file mode 100644 index 000000000..56a207fe5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/rendering_volume_ucd_multiDomain_py.html @@ -0,0 +1,105 @@ +rendering/volume_ucd_multiDomain.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  volume_ucd_multiDomain.py
    +#
    +#  Tests:      mesh      - 3D unstructured, multiple domains
    +#              plots     - volume
    +#              operators - none
    +#              selection - no
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       May 7, 2024
    +#
    +#  Notes:   Moved from volume.py due to interference between a 'Serial'
    +#           plot following a 'Composite' or 'Parallel' plot causing the
    +#           'Serial' plot to yield a blank image.
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def ucd_multiDomain():
    +
    +    # Multiple domain checks plots 30-34
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +    AddPlot("Volume", "p")
    +    DrawPlots()
    +
    +    View3DAtts = GetView3D()
    +    View3DAtts.viewNormal = (0.409673, 0.375032, 0.831576)
    +    View3DAtts.focus = (0, 2.5, 10)
    +    View3DAtts.viewUp = (-0.208428, 0.925952, -0.314914)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 11.4564
    +    View3DAtts.nearPlane = -22.9129
    +    View3DAtts.farPlane = 22.9129
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 0
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0, 2.5, 10)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +
    +
    +    TestSection("UCD MultiDomain, Serial, NoResampling")
    +    # This test is designed to fail, it produces no image that
    +    # can be compared via 'Test'.
    +    # Instead, grab the warning message.
    +    # Should this even be tested?
    +    try:
    +        volAtts = VolumeAttributes()
    +        volAtts.rendererType = volAtts.Serial
    +        volAtts.resampleType = volAtts.NoResampling
    +        volAtts.OSPRayEnabledFlag = 0
    +        SetPlotOptions(volAtts)
    +        m = GetLastMessage()[0]
    +        mtype = GetLastMessage()[1]
    +        # remove the first part that mentions host, since that can change
    +        w = m.split(":")[1]
    +        TestText("volume_30", mtype+w)
    +    except:
    +        TestText("volume_30", GetLastError())
    +
    +    TestSection("UCD MultiDomain, Serial, ParallelRedistribute")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.ParallelRedistribute
    +    volAtts.OSPRayEnabledFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volume_31")
    +
    +    TestSection("UCD MultiDomain, Serial, ParallelRedistribute, ospray")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.ParallelRedistribute
    +    volAtts.OSPRayEnabledFlag = 1
    +    SetPlotOptions(volAtts)
    +    Test("volume_32")
    +
    +    TestSection("UCD MultiDomain, Parallel, ParallelPerRank")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Parallel
    +    volAtts.resampleType = volAtts.ParallelPerRank
    +    volAtts.OSPRayEnabledFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volume_33")
    +
    +    TestSection("UCD MultiDomain, Parallel, ParallelPerRank, ospray")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Parallel
    +    volAtts.resampleType = volAtts.ParallelPerRank
    +    volAtts.OSPRayEnabledFlag = 1
    +    SetPlotOptions(volAtts)
    +    Test("volume_34")
    +
    +ucd_multiDomain()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_colortable.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_colortable.html new file mode 100644 index 000000000..5730b67ec --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_colortable.html @@ -0,0 +1,42 @@ + +Results for session/colortable.py + +

    Results of VisIt Regression Test - session/colortable

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    colortable000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_colortable_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_colortable_py.html new file mode 100644 index 000000000..02d608df8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_colortable_py.html @@ -0,0 +1,34 @@ +session/colortable.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  colortable.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - Pseudocolor, Mesh
    +#
    +#  Notes:      This test case uses a session file to create a plot that uses
    +#              a specific built-in color table. This makes sure that choice
    +#              of color tables is preserved with session files.
    +# 
    +# OUTDATED
    +#  Notes:      This test case uses a session file to create a plot that uses
    +#              a user defined color table. This makes sure that user defined
    +#              color tables can be used from session files. VisIt00004000.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Nov 13 17:10:35 PST 2003
    +#
    +#  Modifications:
    +#      Justin Privitera, Wed Aug  3 15:04:31 PDT 2022
    +#      Changed the session file and the purpose of the test to reflect that
    +#      we no longer save info about color tables to or read info about color 
    +#      tables from session files.
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +RestoreSessionWithDifferentSources(tests_path("session","colortable.session"), 0,
    +                                   silo_data_path("globe.silo"))
    +Test("colortable00")
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_correlationsession.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_correlationsession.html new file mode 100644 index 000000000..09ba49a0b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_correlationsession.html @@ -0,0 +1,94 @@ + +Results for session/correlationsession.py + +

    Results of VisIt Regression Test - session/correlationsession

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    correlationsession000.000.00
    correlationsession010 modifications totalling 0 lines
    correlationsession020.000.00
    correlationsession030.000.00
    correlationsession040 modifications totalling 0 lines
    correlationsession050.000.00
    correlationsession060 modifications totalling 0 lines
    correlationsession070.000.00
    correlationsession080 modifications totalling 0 lines
    correlationsession090.000.00
    correlationsession100 modifications totalling 0 lines
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_correlationsession_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_correlationsession_py.html new file mode 100644 index 000000000..8fd12097f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_correlationsession_py.html @@ -0,0 +1,95 @@ +session/correlationsession.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  correlationsession.py
    +#
    +#  Tests:      mesh      - 2D curvilinear, single domain
    +#              plots     - Boundary, FilledBoundary
    +#
    +#  Notes:      This test case makes sure that VisIt sessions that made heavy
    +#              use of database correlations can have that information
    +#              correctly captured in a session file.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Mar 25 11:32:09 PDT 2004
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +import string
    +
    +def GetTruncatedWindowInformationString():
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 5 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    for i in range(5):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    return s
    +
    +def TestLength(testname):
    +    tsLength = TimeSliderGetNStates()
    +    testString = "%s has %d states\n" % (GetActiveTimeSlider(), tsLength)
    +    testString = testString + GetTruncatedWindowInformationString()
    +    TestText(testname, testString)
    +
    +TurnOnAllAnnotations()
    +
    +ra1 = GetRenderingAttributes()
    +
    +#
    +# Restore the session file and make sure that it at the right time step
    +# and has the right time slider.
    +#
    +RestoreSessionWithDifferentSources(tests_path("session","correlationsession.session"), 0,
    +                                   [data_path("pdb_test_data","dbA00.pdb"),
    +                                    data_path("pdb_test_data","dbB00.pdb"),
    +                                    data_path("pdb_test_data","dbC00.pdb")])
    +
    +# Restore the scalable rendering mode for the tests.
    +ra2 = GetRenderingAttributes()
    +ra2.scalableActivationMode = ra1.scalableActivationMode
    +ra2.scalableAutoThreshold = ra1.scalableActivationMode
    +SetRenderingAttributes(ra2)
    +
    +Test("correlationsession00")
    +TestLength("correlationsession01")
    +
    +#
    +# Make sure we have the right active source by making a new plot. The active
    +# source should be dbA00.pdb
    +#
    +AddPlot("Boundary", "material(mesh)")
    +b = BoundaryAttributes()
    +b.colorType = b.ColorBySingleColor
    +b.singleColor = (255,255,0,255)
    +b.lineWidth = 2
    +SetPlotOptions(b)
    +DrawPlots()
    +Test("correlationsession02")
    +
    +#
    +# Make sure that we can advance to the end of the time slider. Save some
    +# test images along the way though.
    +#
    +timeSliders = GetTimeSliders()
    +currentState = timeSliders[GetActiveTimeSlider()]
    +endState = TimeSliderGetNStates() - 1
    +nSteps = 4
    +start = currentState + int(float(endState - currentState) / float(nSteps))
    +testIndex = 3
    +for i in range(nSteps):
    +    t = float(i) / float(nSteps - 1)
    +    omt = 1. - t
    +    state = int(omt * float(start) + t * float(endState))
    +    SetTimeSliderState(state)
    +    Test("correlationsession%02d" % testIndex)
    +    TestLength("correlationsession%02d" % (testIndex + 1))
    +    testIndex = testIndex + 2
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_legendproperties.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_legendproperties.html new file mode 100644 index 000000000..4622ade0a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_legendproperties.html @@ -0,0 +1,48 @@ + +Results for session/legendproperties.py + +

    Results of VisIt Regression Test - session/legendproperties

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    legendproperties000.000.00
    legendproperties010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_legendproperties_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_legendproperties_py.html new file mode 100644 index 000000000..06c6352d5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_legendproperties_py.html @@ -0,0 +1,48 @@ +session/legendproperties.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  legendproperties.py
    +#
    +#  Notes:      This test case sets legend properties and makes sure that they
    +#              can be accessed via uses a session file to create a plot that uses
    +#              a user defined color table. This makes sure that user defined
    +#              color tables can be used from session files. VisIt00004000.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Mon Mar 26 10:48:25 PDT 2007
    +#
    +#  Modifications:
    +#    Brad Whitlock, Thu Jul 22 11:03:42 PDT 2010
    +#    Force some save window settings so testing routines don't mess up in
    +#    the scalable,parallel,icet mode. VisIt itself, outside of testing doesn't
    +#    have problems as far as I can tell so we're working around "issues" with
    +#    our testing routines.
    +#    
    +# ----------------------------------------------------------------------------
    +
    +# Get the save window atts and force a few settings.
    +sa = GetSaveWindowAttributes()
    +sa.screenCapture = 0
    +sa.width,sa.height = 300,300
    +
    +TurnOnAllAnnotations()
    +RestoreSessionWithDifferentSources(tests_path("session","legendproperties.session"), 0,
    +                                   silo_data_path("bigsil.silo"))
    +
    +
    +Test("legendproperties00", altSWA=sa)
    +
    +# Now that we've restored the session, see if we can get the legend objects
    +# and change them.
    +subsetLegend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +pcLegend = GetAnnotationObject(GetPlotList().GetPlots(1).plotName)
    +
    +subsetLegend.drawBoundingBox = 0
    +pcLegend.drawBoundingBox = 0
    +Test("legendproperties01", altSWA=sa)
    +
    +# Make sure that the plots are deleted
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_rect3d-contour.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_rect3d-contour.html new file mode 100644 index 000000000..f8077951d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_rect3d-contour.html @@ -0,0 +1,42 @@ + +Results for session/rect3d-contour.py + +

    Results of VisIt Regression Test - session/rect3d-contour

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    rect3d-contour000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_rect3d-contour_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_rect3d-contour_py.html new file mode 100644 index 000000000..d452d3b87 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_rect3d-contour_py.html @@ -0,0 +1,25 @@ +session/rect3d-contour.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  rect3d-contour.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, single domain
    +#              plots     - Contour, with transparent contours
    +#
    +#  Notes:      This test case uses a session file to ensure that the Contour
    +#              plot can be restored from a session file and have its correct
    +#              colors and opacities, from  a bug reported in VisIt00004115.
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       January 13, 2005 
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +RestoreSessionWithDifferentSources(tests_path("session","rect3d-contour.session"), 0,
    +                                   silo_data_path("rect3d.silo"))
    +Test("rect3d-contour00")
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_restorewithsources.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_restorewithsources.html new file mode 100644 index 000000000..774fdff6b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_restorewithsources.html @@ -0,0 +1,48 @@ + +Results for session/restorewithsources.py + +

    Results of VisIt Regression Test - session/restorewithsources

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    restorewithsources000.000.00
    restorewithsources010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_restorewithsources_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_restorewithsources_py.html new file mode 100644 index 000000000..71d9af679 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_restorewithsources_py.html @@ -0,0 +1,42 @@ +session/restorewithsources.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  restorewithsources.py
    +#
    +#  Notes:      This test case tests restoring sessions with different sources.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Mar 28 10:36:04 PDT 2007
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +
    +tpath = tests_path("session","restorewithsources.session")
    +dpath = silo_data_path("rect3d.silo")
    +print(repr(tpath))
    +print(repr(silo_data_path("rect3d.silo") ))
    +
    +RestoreSessionWithDifferentSources(tests_path("session","restorewithsources.session"),
    +                                   0,
    +                                   silo_data_path("rect3d.silo") )
    +
    +
    +Test("restorewithsources00")
    +
    +# Now, try restoring the session with a different data file. Note that since
    +# there's just one source, we pass a string instead of a tuple of strings.
    +RestoreSessionWithDifferentSources(tests_path("session","restorewithsources.session"),
    +                                   0,
    +                                   silo_data_path("rect2d.silo") )
    +Test("restorewithsources01")
    +
    +# Make sure that the plots are deleted
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_selection.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_selection.html new file mode 100644 index 000000000..84d30ca29 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_selection.html @@ -0,0 +1,42 @@ + +Results for session/selection.py + +

    Results of VisIt Regression Test - session/selection

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    selection_000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_selection_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_selection_py.html new file mode 100644 index 000000000..99188fdb1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_selection_py.html @@ -0,0 +1,29 @@ +session/selection.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  selection.py
    +#
    +#  Tests:      mesh      - 2D curvilinear, multiple domain
    +#              plots     - FilledBoundary, Mesh, Pseudocolor
    +#
    +#  Notes:      This test case makes sure that VisIt can read session files
    +#              that have subset selection. Session files from before 1.3 and
    +#              from version 1.3 are tested.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Mar 25 08:34:37 PDT 2004
    +#
    +#  Modifications:
    +#    Brad Whitlock, Tue Jan 6 09:17:15 PDT 2009
    +#    I removed support for pre-1.3 session files.
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +RestoreSessionWithDifferentSources(tests_path("session","selection.session"), 0,
    +                                   silo_data_path("multi_curv2d.silo"))
    +
    +Test("selection_00")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_sessionexpression.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_sessionexpression.html new file mode 100644 index 000000000..48fbf7bbd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_sessionexpression.html @@ -0,0 +1,42 @@ + +Results for session/sessionexpression.py + +

    Results of VisIt Regression Test - session/sessionexpression

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    sessionexpression000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_sessionexpression_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_sessionexpression_py.html new file mode 100644 index 000000000..acb65bea5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_sessionexpression_py.html @@ -0,0 +1,27 @@ +session/sessionexpression.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  sessionexpression.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - Pseudocolor
    +#
    +#  Notes:      This test case creates a plot of a user-defined expression
    +#              using a session file to ensure that session files containing
    +#              plots of user-defined expressions work. This test case tests
    +#              for a bug reported in VisIt00006070.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Tue Apr 5 14:26:56 PST 2005
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +RestoreSessionWithDifferentSources(tests_path("session","sessionexpression.session"), 0,
    +                                   ( silo_data_path("wave.visit"),
    +                                     silo_data_path("globe.silo")))
    +Test("sessionexpression00")
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_sessionview.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_sessionview.html new file mode 100644 index 000000000..f8b4de577 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_sessionview.html @@ -0,0 +1,66 @@ + +Results for session/sessionview.py + +

    Results of VisIt Regression Test - session/sessionview

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    sessionview000.000.00
    sessionview010.000.00
    sessionview020.000.00
    sessionview030.000.00
    sessionview040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_sessionview_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_sessionview_py.html new file mode 100644 index 000000000..c252d5870 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_sessionview_py.html @@ -0,0 +1,55 @@ +session/sessionview.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  sessionview.py
    +#
    +#  Tests:      mesh      - 3D unstructured, 3D rectilinear, single domain
    +#              plots     - Pseudocolor, Mesh
    +#              operators - Reflect
    +#
    +#  Notes:      This test case makes sure that we can switch back and forth
    +#              between session files that use expressions.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Dec 31 15:21:23 PST 2003
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +
    +# Open the first session file
    +RestoreSessionWithDifferentSources(tests_path("session","sessionview1.session"), 0,
    +                                   silo_data_path("globe.silo"))
    +
    +Test("sessionview00")
    +
    +# Open the second session file
    +RestoreSession("tests/session/sessionview2.session", 0)
    +RestoreSessionWithDifferentSources(tests_path("session","sessionview2.session"), 0,
    +                                   data_path("ANALYZE_test_data",
    +                                             "s01_anatomy_stripped.hdr"))
    +
    +
    +Test("sessionview01")
    +
    +# Open the first session file again. This used to crash VisIt
    +RestoreSessionWithDifferentSources(tests_path("session","sessionview1.session"), 0,
    +                                   silo_data_path("globe.silo"))
    +
    +Test("sessionview02")
    +
    +# Open the second session file again.
    +RestoreSessionWithDifferentSources(tests_path("session","sessionview2.session"), 0,
    +                                   data_path("ANALYZE_test_data",
    +                                             "s01_anatomy_stripped.hdr"))
    +Test("sessionview03")
    +
    +# Open the first session file
    +RestoreSessionWithDifferentSources(tests_path("session","sessionview1.session"), 0,
    +                                   silo_data_path("globe.silo"))
    +Test("sessionview04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_textannot.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_textannot.html new file mode 100644 index 000000000..cf4185ade --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_textannot.html @@ -0,0 +1,66 @@ + +Results for session/textannot.py + +

    Results of VisIt Regression Test - session/textannot

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    textannot000.000.00
    textannot010.000.00
    textannot020.000.00
    textannot030.000.00
    textannot040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_textannot_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_textannot_py.html new file mode 100644 index 000000000..a0b989a70 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_textannot_py.html @@ -0,0 +1,38 @@ +session/textannot.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  textanot.py
    +#
    +#  Tests:      mesh      - 2D curvilinear, single domain
    +#              plots     - Pseudocolor
    +#
    +#  Notes:      This test case uses a session file to set up a plot and create
    +#              several text annotations and a time slider annotation.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Dec 4 14:17:46 PST 2003
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Mar 9 09:15:30 PDT 2005
    +#    Removed deprecated functions.
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +
    +# Set up the visualization by restoring a session file.
    +RestoreSessionWithDifferentSources(tests_path("session","textannot.session"), 0,
    +                                   data_path("pdb_test_data","allinone00.pdb"))
    +
    +# Save a test frame for some of the frames in the animation so we can see
    +# if the time slider is working.
    +testindex = 0
    +ntests = 5
    +for i in range(ntests):
    +    frame = int(float(i) / float(ntests - 1) * (TimeSliderGetNStates() - 1))
    +    SetTimeSliderState(frame)
    +    Test("textannot%02d" % testindex)
    +    testindex = testindex + 1
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_view3d.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_view3d.html new file mode 100644 index 000000000..39adb1fbc --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_view3d.html @@ -0,0 +1,42 @@ + +Results for session/view3d.py + +

    Results of VisIt Regression Test - session/view3d

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    view3d000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_view3d_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_view3d_py.html new file mode 100644 index 000000000..3d8bf65a4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_view3d_py.html @@ -0,0 +1,29 @@ +session/view3d.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  view3d.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - Pseudocolor
    +#
    +#  Defect ID:  visit00004724
    +#
    +#  Notes:      This test case makes sure that all the 3d view parameters
    +#              are properly restored from a session.  In particular the
    +#              focus, parallelScale, nearPlane and farPlane.
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       Thu Apr 22 15:05:59 PDT 2004
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +
    +# Open the session file
    +RestoreSessionWithDifferentSources(tests_path("session","view3d.session"), 0,
    +                                   silo_data_path("globe.silo"))
    +
    +Test("view3d00")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_wavecontour.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_wavecontour.html new file mode 100644 index 000000000..c323d05c4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_wavecontour.html @@ -0,0 +1,42 @@ + +Results for session/wavecontour.py + +

    Results of VisIt Regression Test - session/wavecontour

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    wavecontour000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_wavecontour_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_wavecontour_py.html new file mode 100644 index 000000000..7d631acdb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/session_wavecontour_py.html @@ -0,0 +1,29 @@ +session/wavecontour.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  wavecontour.py
    +#
    +#  Tests:      mesh      - 3D curvilinear, single domain
    +#              plots     - Contour, Mesh
    +#              operators - Reflect
    +#
    +#  Notes:      This test case uses a session file to ensure that the Contour
    +#              plot can be restored from a session file and have its correct
    +#              colors and number of contour levels. This test case tests
    +#              for a bug reported in VisIt00003883.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Oct 22 15:14:20 PST 2003
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +RestoreSessionWithDifferentSources(tests_path("session","wavecontour.session"), 0,
    +                                   silo_data_path("wave.visit"))
    +# tslider state is lost w/ restore with sources
    +TimeSliderSetState(28)
    +Test("wavecontour00")
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_amr.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_amr.html new file mode 100644 index 000000000..d0976148f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_amr.html @@ -0,0 +1,72 @@ + +Results for simulation/amr.py + +

    Results of VisIt Regression Test - simulation/amr

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    amr000 modifications totalling 0 lines
    amr010 modifications totalling 0 lines
    amr020.430.62
    amr030.430.62
    amr040.000.00
    amr050.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_amr_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_amr_py.html new file mode 100644 index 000000000..214bcf792 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_amr_py.html @@ -0,0 +1,58 @@ +simulation/amr.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  amr.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 2D amr mesh
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 17, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("amr", "amr.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("amr00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("amr01", sim.metadata())
    +
    +    AddPlot("Mesh", "amr")
    +    AddPlot("Subset", "Levels")
    +    DrawPlots()
    +    Test("amr02")
    +
    +    SetActivePlots(1)
    +    ChangeActivePlotsVar("Patches")
    +    Test("amr03")
    +
    +    SetActivePlots(0)
    +    DeleteActivePlots()
    +    silr = SILRestriction()
    +    silr.TurnOffSet(8)
    +    SetPlotSILRestriction(silr, 0)
    +    DrawPlots()
    +    Test("amr04")
    +
    +    silr.TurnOnAll()
    +    silr.TurnOffSet(6)
    +    silr.TurnOffSet(8)
    +    SetPlotSILRestriction(silr, 0)
    +    DrawPlots()
    +    Test("amr05")
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_aresamr.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_aresamr.html new file mode 100644 index 000000000..e6c062cb1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_aresamr.html @@ -0,0 +1,62 @@ + +Results for simulation/aresamr.py + +

    Results of VisIt Regression Test - simulation/aresamr

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    aresamr000 modifications totalling 0 lines
    aresamr010 modifications totalling 0 lines
    aresamr020.000.00
    aresamr030.000.00
    aresamr040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_aresamr_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_aresamr_py.html new file mode 100644 index 000000000..3926f08b2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_aresamr_py.html @@ -0,0 +1,48 @@ +simulation/aresamr.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  aresamr.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 2D aresamr mesh
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 17, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("aresamr", "aresamr.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("aresamr00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("aresamr01", sim.metadata())
    +
    +    AddPlot("Pseudocolor", "zonal_scalar")
    +    DrawPlots()
    +    Test("aresamr02")
    +
    +    silr = SILRestriction()
    +    silr.TurnOnAll()
    +    silr.TurnOffSet(4)
    +    SetPlotSILRestriction(silr, 1)
    +    Test("aresamr03")
    +    silr.TurnOnAll()
    +    silr.TurnOffSet(3)
    +    SetPlotSILRestriction(silr, 1)
    +    Test("aresamr04")
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_batch.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_batch.html new file mode 100644 index 000000000..323cb4c7b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_batch.html @@ -0,0 +1,426 @@ + +Results for simulation/batch.py + +

    Results of VisIt Regression Test - simulation/batch

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Slice Export with 3 vertices
    batch_0_000.000.00
    batch_0_010.000.00
    batch_0_020.000.00
    batch_0_030.000.00
    batch_0_040.000.00
    batch_0_050.000.00
    Slice Export with Origin+Normal
    batch_1_000.000.00
    batch_1_010.000.00
    batch_1_020.000.00
    batch_1_030.000.00
    batch_1_040.000.00
    batch_1_050.000.00
    Slice Export of X
    batch_2_000.000.00
    batch_2_010.000.00
    batch_2_020.000.00
    batch_2_030.000.00
    batch_2_040.000.00
    batch_2_050.000.00
    Slice Export of Y
    batch_3_000.000.00
    batch_3_010.000.00
    batch_3_020.000.00
    batch_3_030.000.00
    batch_3_040.000.00
    batch_3_050.000.00
    Slice Export of Z
    batch_4_000.000.00
    batch_4_010.000.00
    batch_4_020.000.00
    batch_4_030.000.00
    batch_4_040.000.00
    batch_4_050.000.00
    Iso Export
    batch_5_000.000.00
    batch_5_010.000.00
    batch_5_020.000.00
    batch_5_030.000.00
    batch_5_040.000.00
    batch_5_050.000.00
    batch_5_060.000.00
    batch_5_070.000.00
    batch_5_080.000.00
    batch_5_090.000.00
    batch_5_100.000.00
    batch_5_110.000.00
    batch_5_120.000.00
    batch_5_130.000.00
    batch_5_140.000.00
    batch_5_150.000.00
    batch_5_160.000.00
    batch_5_170.000.00
    batch_5_180.000.00
    batch_5_190.000.00
    Image Rendering
    batch_6_000.000.00
    batch_6_010.000.00
    batch_6_020.000.00
    batch_6_030.000.00
    batch_6_040.000.00
    Streamline Export
    batch_7_000.000.00
    batch_7_010.000.00
    batch_7_020.000.00
    batch_7_030.000.00
    batch_7_040.000.00
    batch_7_050.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_batch_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_batch_py.html new file mode 100644 index 000000000..377175f20 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_batch_py.html @@ -0,0 +1,393 @@ +simulation/batch.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  batch.py
    +#
    +#  Tests:      libsim - batch mode.
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 18, 2014 
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def test0():
    +    TestSection("Slice Export with 3 vertices")
    +    db = "slice3v_*.vtk database"
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "dom")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.0556426, 0.707794, 0.704224)
    +    v.focus = (5, 1.53846, 5)
    +    v.viewUp = (0.048696, 0.706401, -0.706134)
    +    v.viewAngle = 30
    +    v.parallelScale = 7.12383
    +    v.nearPlane = -14.2477
    +    v.farPlane = 14.2477
    +    v.imagePan = (-0.021177, 0.0636043)
    +    v.imageZoom = 1.09666
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (5, 1.53846, 5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +    Test("batch_0_00")
    +
    +    ChangeActivePlotsVar("xc")
    +    Test("batch_0_01")
    +    ChangeActivePlotsVar("radius")
    +    Test("batch_0_02")
    +    ChangeActivePlotsVar("q")
    +    Test("batch_0_03")
    +
    +    TimeSliderSetState(2)
    +    Test("batch_0_04")
    +    TimeSliderSetState(4)
    +    Test("batch_0_05")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test1():
    +    TestSection("Slice Export with Origin+Normal")
    +    db = "sliceON_*.vtk database"
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "dom")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, 1)
    +    v.focus = (5, 5, 5)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 8.66025
    +    v.nearPlane = -17.3205
    +    v.farPlane = 17.3205
    +    v.imagePan = (-0.00113806, 0.0530002)
    +    v.imageZoom = 1.33438
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (5, 5, 5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +    Test("batch_1_00")
    +
    +    ChangeActivePlotsVar("xc")
    +    Test("batch_1_01")
    +    ChangeActivePlotsVar("radius")
    +    Test("batch_1_02")
    +    ChangeActivePlotsVar("q")
    +    Test("batch_1_03")
    +
    +    TimeSliderSetState(2)
    +    Test("batch_1_04")
    +    TimeSliderSetState(4)
    +    Test("batch_1_05")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test2():
    +    TestSection("Slice Export of X")
    +    db = "sliceX_*.vtk database"
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "dom")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (1, 0, 6.12323e-17)
    +    v.focus = (0.5, 5, 5)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 7.07107
    +    v.nearPlane = -14.1421
    +    v.farPlane = 14.1421
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1.27205
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 5, 5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +    Test("batch_2_00")
    +
    +    ChangeActivePlotsVar("xc")
    +    Test("batch_2_01")
    +    ChangeActivePlotsVar("radius")
    +    Test("batch_2_02")
    +    ChangeActivePlotsVar("q")
    +    Test("batch_2_03")
    +
    +    ChangeActivePlotsVar("radius")
    +    TimeSliderSetState(2)
    +    Test("batch_2_04")
    +    TimeSliderSetState(4)
    +    Test("batch_2_05")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test3():
    +    TestSection("Slice Export of Y")
    +    db = "sliceY_*.vtk database"
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "dom")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0, 1, 6.12323e-17)
    +    v.focus = (5, 2.5, 5)
    +    v.viewUp = (0, 6.12323e-17, -1)
    +    v.viewAngle = 30
    +    v.parallelScale = 7.07107
    +    v.nearPlane = -14.1421
    +    v.farPlane = 14.1421
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1.32859
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (5, 2.5, 5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +    Test("batch_3_00")
    +
    +    ChangeActivePlotsVar("xc")
    +    Test("batch_3_01")
    +    ChangeActivePlotsVar("radius")
    +    Test("batch_3_02")
    +    ChangeActivePlotsVar("q")
    +    Test("batch_3_03")
    +
    +    TimeSliderSetState(2)
    +    Test("batch_3_04")
    +    TimeSliderSetState(4)
    +    Test("batch_3_05")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test4():
    +    TestSection("Slice Export of Z")
    +    db = "sliceZ_*.vtk database"
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "dom")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, 1)
    +    v.focus = (5, 5, 5)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 7.07107
    +    v.nearPlane = -14.1421
    +    v.farPlane = 14.1421
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1.2647
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (5, 5, 5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +    Test("batch_4_00")
    +
    +    ChangeActivePlotsVar("xc")
    +    Test("batch_4_01")
    +    ChangeActivePlotsVar("radius")
    +    Test("batch_4_02")
    +    ChangeActivePlotsVar("q")
    +    Test("batch_4_03")
    +
    +    TimeSliderSetState(2)
    +    Test("batch_4_04")
    +    TimeSliderSetState(4)
    +    Test("batch_4_05")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test5():
    +    TestSection("Iso Export")
    +    dbs = ("iso_0000.visit","iso_0001.visit","iso_0002.visit","iso_0003.visit","iso_0004.visit")
    +    index = 0
    +    for db in dbs:
    +        OpenDatabase(db)
    +        AddPlot("Pseudocolor", "dom")
    +        DrawPlots()
    +
    +        v = GetView3D()
    +        v.viewNormal = (-0.433402, 0.101212, 0.895499)
    +        v.focus = (5, 5, 5)
    +        v.viewUp = (0.0882645, 0.993663, -0.0695889)
    +        v.viewAngle = 30
    +        v.parallelScale = 8.66025
    +        v.nearPlane = -17.3205
    +        v.farPlane = 17.3205
    +        v.imagePan = (0.00394299, 0.0327202)
    +        v.imageZoom = 1.34799
    +        v.perspective = 1
    +        v.eyeAngle = 2
    +        v.centerOfRotationSet = 0
    +        v.centerOfRotation = (5, 5, 5)
    +        v.axis3DScaleFlag = 0
    +        v.axis3DScales = (1, 1, 1)
    +        v.shear = (0, 0, 1)
    +        v.windowValid = 1
    +        SetView3D(v)
    +
    +        Test("batch_5_%02d" % index)
    +
    +        ChangeActivePlotsVar("xc")
    +        Test("batch_5_%02d" % (index+1))
    +        ChangeActivePlotsVar("radius")
    +        Test("batch_5_%02d" % (index+2))
    +        ChangeActivePlotsVar("q")
    +        Test("batch_5_%02d" % (index+3))
    +        index = index + 4
    +
    +        DeleteAllPlots()
    +        CloseDatabase(db)
    +
    +def test6():
    +    TestSection("Image Rendering")
    +    db = "batch*.png database"
    +    OpenDatabase(db)
    +    AddPlot("Truecolor", "color")
    +    AddOperator("Box")
    +    box = BoxAttributes()
    +    box.amount = box.Some  # Some, All
    +    box.minx = 230
    +    box.maxx = 1000
    +    box.miny = 45
    +    box.maxy = 1000
    +    box.minz = 0
    +    box.maxz = 1
    +    box.inverse = 0
    +    SetOperatorOptions(box)
    +    DrawPlots()
    +
    +    v = GetView2D()
    +    v.windowCoords = (0, 960, 0, 540)
    +    v.viewportCoords = (0.01, 0.99, 0.22, 0.99)
    +    v.fullFrameActivationMode = v.Auto  # On, Off, Auto
    +    v.fullFrameAutoThreshold = 100
    +    v.xScale = v.LINEAR  # LINEAR, LOG
    +    v.yScale = v.LINEAR  # LINEAR, LOG
    +    v.windowValid = 1
    +    SetView2D(v)
    +
    +    Test("batch_6_00")
    +    TimeSliderSetState(1)
    +    Test("batch_6_01")
    +    TimeSliderSetState(2)
    +    Test("batch_6_02")
    +    TimeSliderSetState(3)
    +    Test("batch_6_03")
    +    TimeSliderSetState(4)
    +    Test("batch_6_04")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test7():
    +    TestSection("Streamline Export")
    +    db = "streamline_*.vtk database"
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "colorVar")
    +    pc = PseudocolorAttributes(1)
    +    pc.lineWidth = 3
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, 1)
    +    v.focus = (5.2835, 5.2835, 5.2562)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 8.26953
    +    v.nearPlane = -16.5391
    +    v.farPlane = 16.5391
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1.33131
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (5.2835, 5.2835, 5.2562)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +    Test("batch_7_00")
    +
    +    ChangeActivePlotsVar("xc")
    +    Test("batch_7_01")
    +    ChangeActivePlotsVar("radius")
    +    Test("batch_7_02")
    +    ChangeActivePlotsVar("q")
    +    Test("batch_7_03")
    +
    +    TimeSliderSetState(2)
    +    Test("batch_7_04")
    +    TimeSliderSetState(4)
    +    Test("batch_7_05")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def main():
    +    # Create our simulation object.
    +    sim = TestBatchSimulation("batch")
    +    sim.addargument("-format")
    +    sim.addargument("VTK_1.0")
    +    sim.addargument("-maxcycles")
    +    sim.addargument("5")
    +    sim.addargument("-render")
    +    sim.addargument("1")
    +    sim.addargument("-export")
    +    sim.addargument("1")
    +
    +    # Test that we can start the simulation.
    +    sim.startsim()
    +    # This will wait for the simulation to complete.
    +    sim.endsim()
    +
    +    # Test the simulation outputs.
    +    test0()
    +    test1()
    +    test2()
    +    test3()
    +    test4()
    +    test5()
    +    test6()
    +    test7()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_csg.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_csg.html new file mode 100644 index 000000000..cc0163bcf --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_csg.html @@ -0,0 +1,114 @@ + +Results for simulation/csg.py + +

    Results of VisIt Regression Test - simulation/csg

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    csg000 modifications totalling 0 lines
    csg010 modifications totalling 0 lines
    csg020.000.00
    csg030.000.00
    csg040.000.00
    csg050.000.00
    csg060.000.00
    csg070.000.00
    csg080.000.00
    csg090.000.00
    csg100.000.00
    csg110.000.00
    csg120.000.00
    csg130 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_csg_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_csg_py.html new file mode 100644 index 000000000..2bb50295f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_csg_py.html @@ -0,0 +1,64 @@ +simulation/csg.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  csg.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              csg   - 3D csg mesh .
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 27, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("csg", "csg.sim2")
    +sim.addargument("-echo")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("csg00", sim)
    +
    +def simcommand(sim, com):
    +    sim.consolecommand(com)
    +    # Read from stderr to look for the echoed command. Sync.
    +    keepGoing = True
    +    while keepGoing:
    +        buf = sim.p.stderr.readline()
    +        print(buf)
    +        if "Command '%s'"%com in buf:
    +            keepGoing = False
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("csg01", sim.metadata())
    +
    +    AddPlot("Subset", "Regions")
    +    s = SubsetAttributes()
    +    s.smoothingLevel = 2
    +    SetPlotOptions(s)
    +    DrawPlots()
    +    Test("csg02")
    +
    +    times = "Times:\n"
    +    SetQueryOutputToValue();
    +    times = times + str(Query("Time")) + "\n"
    +    for i in range(10):
    +        simcommand(sim, 'step')
    +        simcommand(sim, 'step')
    +        simcommand(sim, 'update')
    +        Test("csg%02d" % (i+3))
    +        times = times + str(Query("Time")) + "\n"
    +
    +    TestText("csg13", times)
    +    DeleteAllPlots()
    +    SetQueryOutputToString()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_curve.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_curve.html new file mode 100644 index 000000000..7c99f3747 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_curve.html @@ -0,0 +1,66 @@ + +Results for simulation/curve.py + +

    Results of VisIt Regression Test - simulation/curve

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    curve000 modifications totalling 0 lines
    curve010 modifications totalling 0 lines
    curve020.000.00
    curve030.000.00
    curve040.000.00
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_curve_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_curve_py.html new file mode 100644 index 000000000..76fe027a1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_curve_py.html @@ -0,0 +1,61 @@ +simulation/curve.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  curve.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - curve
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       Jun 17, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("curve", "curve.sim2")
    +sim.addargument("-echo")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("curve00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("curve01", sim.metadata())
    +
    +    AddPlot("Curve", "sine")
    +    curveAtts = CurveAttributes(1)
    +    curveAtts.showLabels = 0
    +    curveAtts.lineWidth = 2
    +    SetPlotOptions(curveAtts)
    +    DrawPlots()
    +    Test("curve02")
    +
    +    # Read the 'VisIt connected' message
    +    buf = sim.p.stderr.readline()
    +    for i in range(25):
    +        sim.consolecommand("step")
    +        # Read from stderr to look for the echoed command.
    +        buf = sim.p.stderr.readline()
    +        print(buf)
    +        sim.consolecommand("update")
    +
    +    Test("curve03")
    +
    +    for i in range(25):
    +        sim.consolecommand("step")
    +        buf = sim.p.stderr.readline()
    +        print(buf)
    +        sim.consolecommand("update")
    +    Test("curve04")
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_domainbounds.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_domainbounds.html new file mode 100644 index 000000000..8158aa08e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_domainbounds.html @@ -0,0 +1,56 @@ + +Results for simulation/domainbounds.py + +

    Results of VisIt Regression Test - simulation/domainbounds

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    domainbounds000 modifications totalling 0 lines
    domainbounds010 modifications totalling 0 lines
    domainbounds020.000.00
    domainbounds030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_domainbounds_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_domainbounds_py.html new file mode 100644 index 000000000..639ed1d97 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_domainbounds_py.html @@ -0,0 +1,47 @@ +simulation/domainbounds.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  domainbounds.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 3D rectilinear mesh
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 17, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("domainbounds", "domainbounds.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("domainbounds00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("domainbounds01", sim.metadata())
    +
    +    AddPlot("Subset", "Domains")
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (0.672727, 0.569817, 0.471961)
    +    v.viewUp = (-0.252634, 0.776445, -0.57733)
    +    SetView3D(v)
    +    Test("domainbounds02")
    +
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "zonal")
    +    DrawPlots()
    +    Test("domainbounds03")
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_domainlist.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_domainlist.html new file mode 100644 index 000000000..55087f77c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_domainlist.html @@ -0,0 +1,108 @@ + +Results for simulation/domainlist.py + +

    Results of VisIt Regression Test - simulation/domainlist

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    domainlist000 modifications totalling 0 lines
    domainlist010 modifications totalling 0 lines
    domainlist020.000.00
    domainlist030.000.00
    domainlist040.000.00
    domainlist050.000.00
    domainlist060.000.00
    domainlist070.000.00
    domainlist080.000.00
    domainlist090.000.00
    domainlist100.000.00
    domainlist110.000.00
    domainlist120 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_domainlist_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_domainlist_py.html new file mode 100644 index 000000000..ca87b25c3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_domainlist_py.html @@ -0,0 +1,125 @@ +simulation/domainlist.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  domainlist.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 2D,3D unstructured mesh.
    +#
    +#              Tests that VisIt's load balancer can accept different domain
    +#              lists from simulations and distribute work accordingly. If it
    +#              was to mess up then we would not get all domains for at least
    +#              one of the meshes.
    +#
    +#              This test must run in parallel.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Jun 26 17:19:08 PDT 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def step(sim):
    +    sim.consolecommand("step")
    +    # Read from stderr to look for the echoed command. Sync.
    +    keepGoing = True
    +    while keepGoing:
    +        buf = sim.p.stderr.readline()
    +        print(buf)
    +        if "Command step" in buf:
    +            keepGoing = False
    +
    +def set_the_view():
    +    v = GetView3D()
    +    v.viewNormal = (0.48257, -0.684101, 0.54693)
    +    v.focus = (0.95, 1.5, 0.5)
    +    v.viewUp = (-0.352936, 0.419625, 0.836272)
    +    v.viewAngle = 30
    +    v.parallelScale = 1.84459
    +    v.nearPlane = -3.68917
    +    v.farPlane = 3.68917
    +    v.imagePan = (0.0637817, 0.0407714)
    +    v.imageZoom = 1.04766
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.95, 1.5, 0.5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +def add_time(times):
    +    Query("Time")
    +    t2 = times + str(GetQueryOutputValue()) + "\n"
    +    return t2
    +
    +def start_time():
    +    return add_time("Times:\n")
    +
    +def test0(sim):
    +    AddPlot("Subset", "Domains(mesh)")
    +    AddPlot("Subset", "Domains(surface)")
    +    SetActivePlots((0,1))
    +    AddOperator("Reflect")
    +    r = ReflectAttributes()
    +    r.octant = r.PXPYPZ  # PXPYPZ, NXPYPZ, PXNYPZ, NXNYPZ, PXPYNZ, NXPYNZ, PXNYNZ, NXNYNZ
    +    r.useXBoundary = 1
    +    r.specifiedX = 0
    +    r.useYBoundary = 0
    +    r.specifiedY = 1.5
    +    r.useZBoundary = 1
    +    r.specifiedZ = 0
    +    r.reflections = (1, 0, 1, 0, 0, 0, 0, 0)
    +    SetOperatorOptions(r)
    +
    +    SetActivePlots(1)
    +    AddOperator("Transform", 0)
    +    trans = TransformAttributes()
    +    trans.doTranslate = 1
    +    trans.translateX = 1
    +    SetOperatorOptions(trans)
    +    DrawPlots()
    +    set_the_view()
    +
    +    # Advance some steps and make sure that we get all domains for each mesh
    +    times = start_time()
    +    idx = 2
    +    for i in range(10):
    +        Test("domainlist%02d" % idx)
    +        times = add_time(times)
    +        step(sim)
    +        idx = idx + 1
    +
    +    # Get the number of processors.
    +    e,s = GetEngineList(1)[0]
    +    text = "Engine Properties:\n" + str(GetEngineProperties(e,s)) + "\n" + times
    +    TestText("domainlist%02d" % idx, text)
    +    idx = idx + 1
    +    DeleteAllPlots()
    +
    +
    +
    +def main():
    +    # Create our simulation object.
    +    sim = TestParallelSimulation("globalids_par", "globalids_par.sim2", 4)
    +    sim.addargument("-echo")
    +
    +    # Test that we can start and connect to the simulation.
    +    started, connected = TestSimStartAndConnect("domainlist00", sim)
    +
    +    # Perform our tests.
    +    if connected:
    +        # Make sure the metadata is right.
    +        TestSimMetaData("domainlist01", sim.metadata())
    +        test0(sim)
    +
    +    # Close down the simulation.
    +    if started:
    +        sim.endsim()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_ghostcells.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_ghostcells.html new file mode 100644 index 000000000..9ac54cd46 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_ghostcells.html @@ -0,0 +1,194 @@ + +Results for simulation/ghostcells.py + +

    Results of VisIt Regression Test - simulation/ghostcells

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ghostcells000 modifications totalling 0 lines
    ghostcells010 modifications totalling 0 lines
    Ghosting with meshes
    ghostcells020.000.00
    ghostcells030.000.00
    ghostcells040.000.00
    ghostcells050.000.00
    ghostcells060.000.00
    ghostcells070.000.00
    ghostcells080.000.00
    ghostcells090.000.00
    ghostcells100.000.00
    ghostcells110.000.00
    ghostcells120.000.00
    ghostcells130.000.00
    Ghosting with scalars
    ghostcells140.000.00
    ghostcells150.000.00
    ghostcells160.000.00
    ghostcells170.000.00
    ghostcells180.000.00
    ghostcells190.000.00
    ghostcells200.000.00
    ghostcells210.000.00
    ghostcells220.000.00
    ghostcells230.000.00
    ghostcells240.000.00
    ghostcells250.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_ghostcells_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_ghostcells_py.html new file mode 100644 index 000000000..da0f60513 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_ghostcells_py.html @@ -0,0 +1,84 @@ +simulation/ghostcells.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ghostcells.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 2D structured mesh.
    +#              scalars defined on material sub regions.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Dec 18 12:04:01 PST 2013
    +#
    +#
    +#  NOTES: #3, #17 do not look correct.
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("ghostcells", "ghostcells.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("ghostcells00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("ghostcells01", sim.metadata())
    +
    +    meshes = ("rect_blank", "curv_blank", "ucd_blank",
    +              "multi_domain_index", "multi_domain", "multi_types")
    +    scalars= ("rect_var", "curv_var", "ucd_var",
    +              "multi_var", "multi_var_index", "multi_types_var")
    +
    +    i = 2
    +    TestSection("Ghosting with meshes")
    +    for m in meshes:
    +        AddPlot("Subset", m)
    +        s = SubsetAttributes(1)
    +        if "multi" in m:
    +            s.opacity = 0.4
    +            SetPlotOptions(s)
    +        DrawPlots()
    +        ResetView()
    +        Test("ghostcells%02d" % i)
    +
    +        s.colorType = s.ColorBySingleColor
    +        s.singleColor = (0,0,255,255)
    +        SetPlotOptions(s)
    +        AddOperator("InverseGhostZone")
    +        s.opacity = 1.
    +        SetPlotOptions(s)
    +        DrawPlots()
    +        Test("ghostcells%02d" % (i+1))
    +        DeleteAllPlots()
    +        i = i + 2
    +
    +    TestSection("Ghosting with scalars")
    +    for s in scalars:
    +        AddPlot("Pseudocolor", s)
    +        pc = PseudocolorAttributes(1)
    +        if "multi" in s:
    +            pc.opacityType = pc.Constant
    +            pc.opacity = 0.4
    +            SetPlotOptions(pc)
    +        DrawPlots()
    +        ResetView()
    +        Test("ghostcells%02d" % i)
    +
    +        AddOperator("InverseGhostZone")
    +        pc.opacity = 1.0
    +        SetPlotOptions(pc)
    +        DrawPlots()
    +        Test("ghostcells%02d" % (i+1))
    +        DeleteAllPlots()
    +        i = i + 2
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_globalids.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_globalids.html new file mode 100644 index 000000000..2c6862c48 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_globalids.html @@ -0,0 +1,196 @@ + +Results for simulation/globalids.py + +

    Results of VisIt Regression Test - simulation/globalids

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    globalids000 modifications totalling 0 lines
    globalids010 modifications totalling 0 lines
    Topologically 3D meshes in 3D
    globalids020.000.00
    globalids030.000.00
    globalids040.000.00
    globalids050.000.00
    globalids060.000.00
    globalids070.000.00
    globalids080.000.00
    globalids090.000.00
    globalids100.000.00
    globalids110.000.00
    globalids120.000.00
    globalids130 modifications totalling 0 lines
    Topologically 2D meshes in 3D
    globalids_1_000.000.00
    globalids_1_010.000.00
    globalids_1_020.000.00
    globalids_1_030.000.00
    globalids_1_040.000.00
    globalids_1_050.000.00
    globalids_1_060.000.00
    globalids_1_070.000.00
    globalids_1_080.000.00
    globalids_1_090.000.00
    globalids_1_100.000.00
    globalids_1_110.000.00
    globalids_1_120 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_globalids_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_globalids_py.html new file mode 100644 index 000000000..c696f2844 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_globalids_py.html @@ -0,0 +1,218 @@ +simulation/globalids.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  globalids.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 3D unstructured mesh.
    +#              global node and cell ids
    +#              unstructured ghost cell generation from global ids
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Tue Jun 17 16:32:51 PDT 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def step(sim):
    +    sim.consolecommand("step")
    +    # Read from stderr to look for the echoed command. Sync.
    +    keepGoing = True
    +    while keepGoing:
    +        buf = sim.p.stderr.readline()
    +        print(buf)
    +        if "Command step" in buf:
    +            keepGoing = False
    +
    +def set_the_view():
    +    v = GetView3D()
    +    v.viewNormal = (-0.707418, 0.404282, 0.579755)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.294715, 0.914272, -0.27794)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.imagePan = (0, 0.0589478)
    +    v.imageZoom = 1.0963
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 0.5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +def set_the_view2():
    +    v = GetView3D()
    +    v.viewNormal = (-0.542717, -0.70433, 0.457578)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.252732, 0.3826, 0.888675)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.722842
    +    v.nearPlane = -1.44568
    +    v.farPlane = 1.44568
    +    v.imagePan = (-0.00135472, 0.013532)
    +    v.imageZoom = 1.12868
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 0.5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +def add_time(times):
    +    Query("Time")
    +    t2 = times + str(GetQueryOutputValue()) + "\n"
    +    return t2
    +
    +def start_time():
    +    return add_time("Times:\n")
    +
    +def test0(sim):
    +    TestSection("Topologically 3D meshes in 3D")
    +    DefineScalarExpression("gnid", "global_nodeid(mesh)")
    +    DefineScalarExpression("gzid", "global_zoneid(mesh)")
    +    DefineScalarExpression("nid",  "nodeid(mesh)")
    +
    +    AddPlot("Pseudocolor", "nid")
    +    DrawPlots()
    +    set_the_view()
    +    Test("globalids02")
    +
    +    ChangeActivePlotsVar("gzid")
    +    DrawPlots()
    +    Test("globalids03")
    +
    +    ChangeActivePlotsVar("gnid")
    +    DrawPlots()
    +    Test("globalids04")
    +    DeleteAllPlots()
    +
    +    AddPlot("Subset", "Domains")
    +    DrawPlots()
    +    Test("globalids05")
    +
    +    # Make sure that the plot is hollow
    +    s = SubsetAttributes(1)
    +    s_clear = SubsetAttributes(1)
    +    s_clear.opacity = 0.25
    +    s_clear.colorType = s_clear.ColorBySingleColor
    +    s_clear.singleColor = (200,200,200,255)
    +    SetPlotOptions(s_clear)
    +    DrawPlots()
    +    Test("globalids06")
    +
    +    # Advance some steps and make sure that the plot
    +    # stays transparent. We're changing the size of the
    +    # domains at each time step and thus the global ids.
    +    times = start_time()
    +    idx = 7
    +    for i in range(3):
    +        # Advance some steps. This should make the plots update.
    +        nsteps = 5
    +        for j in range(nsteps):
    +            step(sim)
    +            DrawPlots()
    +        times = add_time(times)
    +        SetPlotOptions(s)
    +        Test("globalids%02d" % idx)
    +        idx = idx + 1
    +        SetPlotOptions(s_clear)
    +        Test("globalids%02d" % idx)
    +        idx = idx + 1
    +
    +    TestText("globalids%02d" % idx, times)
    +    idx = idx + 1
    +    DeleteAllPlots()
    +
    +def hideplot(id):
    +    pl = GetPlotList()
    +    if pl.GetPlots(id).hiddenFlag == 0:
    +        SetActivePlots(id)
    +        HideActivePlots()
    +
    +def showplot(id):
    +    pl = GetPlotList()
    +    if pl.GetPlots(id).hiddenFlag == 1:
    +        SetActivePlots(id)
    +        HideActivePlots()
    +
    +def test1(sim):
    +    TestSection("Topologically 2D meshes in 3D")
    +    DefineScalarExpression("gnid2d", "global_nodeid(surface)")
    +    DefineScalarExpression("gzid2d", "global_zoneid(surface)")
    +    DefineScalarExpression("nid2d",  "nodeid(surface)")
    +
    +    AddPlot("FilledBoundary", "surfacemat")
    +    fb = FilledBoundaryAttributes(1)
    +    fb.colorType = fb.ColorBySingleColor
    +    fb.singleColor = (0,0,0,255)
    +    fb.wireframe = 1
    +    fb.lineWidth = 3
    +    SetPlotOptions(fb)
    +    AddPlot("Subset", "Domains(surface)")
    +    AddPlot("Pseudocolor", "nid2d")
    +    DrawPlots()
    +    set_the_view2()
    +
    +    idx = 0
    +    times = start_time()
    +    ntests = 4
    +    for i in range(3):
    +        ids = [idx+j for j in range(ntests)]
    +        # Show the Subset plot
    +        showplot(1)
    +        hideplot(2)
    +        Test("globalids_1_%02d" % ids[0])
    +
    +        # Show the Pseudocolor plot
    +        hideplot(1)
    +        showplot(2)
    +        ChangeActivePlotsVar("nid2d")
    +        Test("globalids_1_%02d" % ids[1])
    +
    +        ChangeActivePlotsVar("gnid2d")
    +        Test("globalids_1_%02d" % ids[2])
    +
    +        ChangeActivePlotsVar("gzid2d")
    +        Test("globalids_1_%02d" % ids[3])
    +        SetActivePlots(0)
    +        times = add_time(times)
    +
    +        # Take a step.
    +        showplot(1)
    +        step(sim)
    +        idx = idx + ntests
    +
    +    TestText("globalids_1_%02d" % idx, times)
    +    DeleteAllPlots()
    +
    +def main():
    +    # Create our simulation object.
    +    sim = TestSimulation("globalids", "globalids.sim2")
    +    sim.addargument("-echo")
    +
    +    # Test that we can start and connect to the simulation.
    +    started, connected = TestSimStartAndConnect("globalids00", sim)
    +
    +    # Perform our tests.
    +    if connected:
    +        # Make sure the metadata is right.
    +        TestSimMetaData("globalids01", sim.metadata())
    +        test0(sim)
    +        test1(sim)
    +
    +    # Close down the simulation.
    +    if started:
    +        sim.endsim()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_interleave.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_interleave.html new file mode 100644 index 000000000..efda88a10 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_interleave.html @@ -0,0 +1,188 @@ + +Results for simulation/interleave.py + +

    Results of VisIt Regression Test - simulation/interleave

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    interleave000 modifications totalling 0 lines
    interleave010 modifications totalling 0 lines
    interleave020.000.00
    interleave030.000.00
    interleave040.000.00
    interleave050.000.00
    interleave060.000.00
    interleave070.000.00
    interleave080.000.00
    interleave090.000.00
    interleave100.000.00
    interleave110.000.00
    interleave120.000.00
    interleave130.000.00
    interleave140.000.00
    interleave150.000.00
    interleave160.000.00
    interleave170.000.00
    interleave180.000.00
    interleave190.000.00
    interleave200.000.00
    interleave210.000.00
    interleave220.000.00
    interleave230.000.00
    interleave240.000.00
    interleave250.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_interleave_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_interleave_py.html new file mode 100644 index 000000000..dd15405ff --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_interleave_py.html @@ -0,0 +1,86 @@ +simulation/interleave.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  interleave.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       June 17, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("interleave", "interleave.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("interleave00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("interleave01", sim.metadata())
    +
    +    meshes2d = ("curv2d_static_float", "curv2d_static_double",
    +                "curv2d_dynamic_float", "curv2d_dynamic_double",
    +
    +                "point2d_static_float", "point2d_static_double",
    +                "point2d_dynamic_float", "point2d_dynamic_double",
    +
    +                "ucd2d_static_float", "ucd2d_static_double",
    +                "ucd2d_dynamic_float", "ucd2d_dynamic_double")
    +
    +    meshes3d = ("curv3d_static_float", "curv3d_static_double",
    +                "curv3d_dynamic_float", "curv3d_dynamic_double",
    +
    +                "point3d_static_float", "point3d_static_double",
    +                "point3d_dynamic_float", "point3d_dynamic_double",
    +
    +                "ucd3d_static_float", "ucd3d_static_double",
    +                "ucd3d_dynamic_float", "ucd3d_dynamic_double")
    +
    +    i = 2
    +    meshAtts = MeshAttributes()
    +    meshAtts.pointSizePixels = 10
    +    meshAtts.lineWidth = 2
    +    SetDefaultPlotOptions(meshAtts)
    +
    +    v2 = GetView2D()
    +    v2.windowCoords = (-0.104083, 4.10408, -0.369428, 3.36943)
    +    v2.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    AddPlot("Mesh", "%s"%meshes2d[0])
    +    DrawPlots()
    +    SetView2D(v2)
    +    Test("interleave%02d" % i)
    +    i = i + 1
    +
    +    for m in meshes2d[1:]:
    +        ChangeActivePlotsVar(m)
    +        DrawPlots()
    +        Test("interleave%02d" % i)
    +        i = i + 1
    +
    +    DeleteAllPlots()
    +
    +    AddPlot("Mesh", "%s"%meshes3d[0])
    +    DrawPlots()
    +    ResetView()
    +    Test("interleave%02d" % i)
    +    i = i + 1
    +
    +    for m in meshes3d[1:]:
    +        ChangeActivePlotsVar(m)
    +        DrawPlots()
    +        Test("interleave%02d" % i)
    +        i = i + 1
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_life.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_life.html new file mode 100644 index 000000000..f047ecfca --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_life.html @@ -0,0 +1,58 @@ + +Results for simulation/life.py + +

    Results of VisIt Regression Test - simulation/life

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    life000 modifications totalling 0 lines
    life010 modifications totalling 0 lines
    life020.000.00
    life0332.5531.12
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_life_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_life_py.html new file mode 100644 index 000000000..93f79c7ac --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_life_py.html @@ -0,0 +1,43 @@ +simulation/life.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  life.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 2D rectilinear mesh
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 17, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("life", "life.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("life00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("life01", sim.metadata())
    +
    +    AddPlot("Pseudocolor", "life")
    +    DrawPlots()
    +    Test("life02")
    +
    +    # Run the simulation for awhile to get a different image
    +    for i in range(100):
    +        sim.consolecommand("step")
    +    Test("life03")
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_mandelbrot.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_mandelbrot.html new file mode 100644 index 000000000..bc1b623a1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_mandelbrot.html @@ -0,0 +1,78 @@ + +Results for simulation/mandelbrot.py + +

    Results of VisIt Regression Test - simulation/mandelbrot

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    mandelbrot000 modifications totalling 0 lines
    mandelbrot010 modifications totalling 0 lines
    mandelbrot020.000.00
    mandelbrot030.000.00
    mandelbrot040 modifications totalling 0 lines
    mandelbrot050.000.00
    mandelbrot060.000.00
    mandelbrot070.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_mandelbrot_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_mandelbrot_py.html new file mode 100644 index 000000000..086e332e1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_mandelbrot_py.html @@ -0,0 +1,77 @@ +simulation/mandelbrot.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  mandelbrot.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 2D structured mesh.
    +#              scalars
    +#              AMR
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Dec 18 12:04:01 PST 2013
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +import time
    +
    +# Create our simulation object.
    +sim = TestSimulation("mandelbrot", "mandelbrot.sim2")
    +sim.addargument("-echo")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("mandelbrot00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("mandelbrot01", sim.metadata())
    +
    +    AddPlot("Pseudocolor", "mandelbrot")
    +    DrawPlots()
    +    v = GetView2D()
    +    v.viewportCoords = (0., 1., 0., 1.)
    +    SetView2D(v)
    +    Test("mandelbrot02")
    +
    +    # Advance some steps and update the plots.
    +
    +    # Read the "VisIt connected" message.
    +    buf = sim.p.stderr.readline()
    +    for i in range(12):
    +        sim.consolecommand("step")
    +        # Read from stderr to look for the echoed command.
    +        buf = sim.p.stderr.readline()
    +        print(buf)
    +        time.sleep(1)
    +    # Update the data for the new time step.
    +    sim.consolecommand("update")
    +    Test("mandelbrot03")
    +
    +    # Make sure the metadata has updated.
    +    TestSimMetaData("mandelbrot04", sim.metadata())
    +
    +    # Test transparency to see if nesting is used.
    +    pc = PseudocolorAttributes(1)
    +    pc.opacityType = pc.Constant
    +    pc.opacity = 0.5
    +    SetPlotOptions(pc)
    +    Test("mandelbrot05")
    +
    +    DeleteActivePlots()
    +    AddPlot("Subset", "levels")
    +    DrawPlots()
    +    Test("mandelbrot06")
    +
    +    ChangeActivePlotsVar("patches")
    +    Test("mandelbrot07")
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_material.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_material.html new file mode 100644 index 000000000..6ef761756 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_material.html @@ -0,0 +1,62 @@ + +Results for simulation/material.py + +

    Results of VisIt Regression Test - simulation/material

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    material000 modifications totalling 0 lines
    material010 modifications totalling 0 lines
    material020.000.00
    material030.000.00
    material040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_material_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_material_py.html new file mode 100644 index 000000000..3b0a7ada0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_material_py.html @@ -0,0 +1,59 @@ +simulation/material.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  material.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              material   - 2D structured/unstructured material.
    +#              materials
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Dec 18 12:04:01 PST 2013
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Force MIR
    +m = GetMaterialAttributes()
    +m.forceMIR = 1
    +SetMaterialAttributes(m)
    +
    +# Create our simulation object.
    +sim = TestSimulation("material", "material.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("material00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("material01", sim.metadata())
    +
    +    AddPlot("Mesh", "mesh2d")
    +    m = MeshAttributes(1)
    +    m.lineWidth = 1
    +    SetPlotOptions(m)
    +    AddPlot("FilledBoundary", "Material")
    +    DrawPlots()
    +    Test("material02")
    +
    +    DeleteActivePlots()
    +    AddPlot("Pseudocolor", "scalar")
    +    DrawPlots()
    +    Test("material03")
    +    DeleteAllPlots()
    +
    +    # Make a new plot.
    +    AddPlot("Mesh", "ucdmesh")
    +    SetPlotOptions(m)
    +    AddPlot("FilledBoundary", "MaterialFromArrays")
    +    DrawPlots()
    +    Test("material04")
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_materialvar.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_materialvar.html new file mode 100644 index 000000000..d9940af97 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_materialvar.html @@ -0,0 +1,124 @@ + +Results for simulation/materialvar.py + +

    Results of VisIt Regression Test - simulation/materialvar

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    materialvar000 modifications totalling 0 lines
    materialvar010 modifications totalling 0 lines
    materialvar020.590.64
    materialvar030.590.64
    materialvar041.430.64
    materialvar053.080.64
    materialvar061.280.64
    materialvar071.030.64
    materialvar081.430.64
    materialvar093.080.64
    materialvar101.280.64
    materialvar110.950.64
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_materialvar_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_materialvar_py.html new file mode 100644 index 000000000..f62d89bed --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_materialvar_py.html @@ -0,0 +1,58 @@ +simulation/materialvar.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  materialvar.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 2D structured mesh.
    +#              scalars defined on material sub regions.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Dec 18 12:04:01 PST 2013
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("materialvar", "materialvar.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("materialvar00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("materialvar01", sim.metadata())
    +
    +    AddPlot("Mesh", "mesh2d")
    +    AddPlot("FilledBoundary", "Material")
    +    DrawPlots()
    +    Test("materialvar02")
    +    DeleteActivePlots()
    +
    +    scalars = ("scalar",
    +               "zonal_scalar_on_mat1",
    +               "zonal_scalar_on_mat2",
    +               "zonal_scalar_on_mat3",
    +               "zonal_scalar_on_mats12",
    +               "nodal_scalar_on_mat1",
    +               "nodal_scalar_on_mat2",
    +               "nodal_scalar_on_mat3",
    +               "nodal_scalar_on_mats23")
    +    i = 3
    +    for s in scalars:
    +        AddPlot("Pseudocolor", s)
    +        DrawPlots()
    +        Test("materialvar%02d" % i)
    +        DeleteActivePlots()
    +        i = i + 1
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_mesh.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_mesh.html new file mode 100644 index 000000000..32a1a55a0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_mesh.html @@ -0,0 +1,62 @@ + +Results for simulation/mesh.py + +

    Results of VisIt Regression Test - simulation/mesh

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    mesh000 modifications totalling 0 lines
    mesh010 modifications totalling 0 lines
    mesh020.000.00
    mesh030.000.00
    mesh040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_mesh_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_mesh_py.html new file mode 100644 index 000000000..86c51bf92 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_mesh_py.html @@ -0,0 +1,53 @@ +simulation/mesh.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  mesh.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 2D and 3D structured mesh.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Dec 18 12:04:01 PST 2013
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("mesh", "mesh.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("mesh00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("mesh01", sim.metadata())
    +
    +    AddPlot("Mesh", "mesh2d")
    +    m = MeshAttributes(1)
    +    m.lineWidth = 1
    +    SetPlotOptions(m)
    +    DrawPlots()
    +    Test("mesh02")
    +
    +    ChangeActivePlotsVar("mesh3d")
    +    Test("mesh03")
    +    DeleteAllPlots()
    +
    +    # Disconnect and reconnect.
    +    sim.disconnect()
    +    sim.connect()
    +
    +    # Make a new plot.
    +    AddPlot("Mesh", "mesh2d")
    +    SetPlotOptions(m)
    +    DrawPlots()
    +    Test("mesh04")
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_multiblock.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_multiblock.html new file mode 100644 index 000000000..796e95bbb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_multiblock.html @@ -0,0 +1,76 @@ + +Results for simulation/multiblock.py + +

    Results of VisIt Regression Test - simulation/multiblock

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    multiblock000 modifications totalling 0 lines
    multiblock010 modifications totalling 0 lines
    multiblock020.500.64
    multiblock030.500.64
    multiblock040.500.64
    multiblock050.500.64
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_multiblock_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_multiblock_py.html new file mode 100644 index 000000000..da993e73b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_multiblock_py.html @@ -0,0 +1,56 @@ +simulation/multiblock.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  multiblock.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 2D structured mesh.
    +#              scalars
    +#              domain boundaries
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Dec 18 12:04:01 PST 2013
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("multiblock", "multiblock.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("multiblock00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("multiblock01", sim.metadata())
    +
    +    AddPlot("Mesh", "mesh2d")
    +    AddPlot("Pseudocolor", "domainID")
    +    DrawPlots()
    +    Test("multiblock02")
    +
    +    # Force nodal centering to test domain boundary information.
    +    pc = PseudocolorAttributes(1)
    +    pc.centering = pc.Nodal
    +    SetPlotOptions(pc)
    +    Test("multiblock03")
    +
    +    DeleteActivePlots()
    +
    +    AddPlot("Subset", "Domains")
    +    DrawPlots()
    +    Test("multiblock04")
    +
    +    ChangeActivePlotsVar("Blocks")
    +    Test("multiblock05")
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_point.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_point.html new file mode 100644 index 000000000..cf3fdcb0a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_point.html @@ -0,0 +1,92 @@ + +Results for simulation/point.py + +

    Results of VisIt Regression Test - simulation/point

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    point000 modifications totalling 0 lines
    point010 modifications totalling 0 lines
    point020.000.00
    point030.000.00
    point040.000.00
    point050.000.00
    point060.000.00
    point070.000.00
    point080.000.00
    point090.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_point_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_point_py.html new file mode 100644 index 000000000..47f6309f1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_point_py.html @@ -0,0 +1,79 @@ +simulation/point.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  point.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   -  point mesh
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 25, 2014 
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("point", "point.sim2")
    +sim.addargument("-echo")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("point00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("point01", sim.metadata())
    +
    +    # 2d mesh and points
    +    AddPlot("Mesh", "point3d")
    +    meshAtts = MeshAttributes()
    +    meshAtts.pointSizePixels = 3
    +    SetPlotOptions(meshAtts)
    +    DrawPlots()
    +    Test("point02")
    +
    +    v = GetView3D()
    +    v.viewNormal = (0, 1, 0)
    +    v.viewUp     = (0, 0, -1)
    +    SetView3D(v)
    +
    +    Test("point03")
    +
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "pointvar")
    +    pcAtts = PseudocolorAttributes()
    +    pcAtts.pointSizePixels = 3
    +    SetPlotOptions(pcAtts)
    +    DrawPlots()
    +    Test("point04")
    +
    +    ResetView()
    +    Test("point05")
    +
    +    AddOperator("Project")
    +    DrawPlots()
    +    Test("point06")
    +
    +    projAtts = ProjectAttributes()
    +    projAtts.projectionType = projAtts.ZYCartesian
    +    SetOperatorOptions(projAtts)
    +    Test("point07")
    +
    +    projAtts.projectionType = projAtts.XRCylindrical
    +    SetOperatorOptions(projAtts)
    +    Test("point08")
    +
    +    projAtts.projectionType = projAtts.ZRCylindrical
    +    SetOperatorOptions(projAtts)
    +    Test("point09")
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_polyhedral.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_polyhedral.html new file mode 100644 index 000000000..309857ac4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_polyhedral.html @@ -0,0 +1,68 @@ + +Results for simulation/polyhedral.py + +

    Results of VisIt Regression Test - simulation/polyhedral

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    polyhedral000 modifications totalling 0 lines
    polyhedral010 modifications totalling 0 lines
    polyhedral020.000.00
    polyhedral030.000.00
    polyhedral040.000.00
    polyhedral050.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_polyhedral_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_polyhedral_py.html new file mode 100644 index 000000000..0ea42e6ab --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_polyhedral_py.html @@ -0,0 +1,64 @@ +simulation/polyhedral.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  polyhedral.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              polyhedral   - 3D polyhedral.
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 26, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("polyhedral", "polyhedral.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("polyhedral00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("polyhedral01", sim.metadata())
    +
    +    AddPlot("Mesh", "polyhedral")
    +    m = MeshAttributes(1)
    +    m.lineWidth = 2
    +    m.opaqueMode = m.Off
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0.04, 0.66, 0.74)
    +    v.viewUp = (-0.35, 0.71, -0.62)
    +    SetView3D(v)
    +    Test("polyhedral02")
    +
    +    AddPlot("Pseudocolor", "nodal")
    +    DrawPlots()
    +    Test("polyhedral03")
    +
    +    ChangeActivePlotsVar("zonal")
    +    SetActivePlots(0)
    +    # show the tesselation that occured on the polyhedral zone
    +    m.showInternal = 1
    +    SetPlotOptions(m)
    +    DrawPlots()
    +    Test("polyhedral04")
    +
    +    SetActivePlots(1)
    +    DeleteActivePlots()
    +
    +    Test("polyhedral05")
    +
    +    DeleteAllPlots()
    +
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_scalar.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_scalar.html new file mode 100644 index 000000000..c6d4b3b96 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_scalar.html @@ -0,0 +1,58 @@ + +Results for simulation/scalar.py + +

    Results of VisIt Regression Test - simulation/scalar

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    scalar000 modifications totalling 0 lines
    scalar010 modifications totalling 0 lines
    scalar020.440.64
    scalar030.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_scalar_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_scalar_py.html new file mode 100644 index 000000000..fcd3641bf --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_scalar_py.html @@ -0,0 +1,57 @@ +simulation/scalar.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  scalar.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       June 18, 2014
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Replace obsolete Label text attributes with new versions.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("scalar", "scalar.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("scalar00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("scalar01", sim.metadata())
    +
    +    # 2d mesh and scalars
    +    AddPlot("Mesh", "mesh2d")
    +    AddPlot("Pseudocolor", "zonal")
    +    AddPlot("Label", "zonal")
    +    LabelAtts = LabelAttributes()
    +    LabelAtts.textFont1.scale = 7
    +    SetPlotOptions(LabelAtts)
    +    DrawPlots()
    +    Test("scalar02")
    +
    +    DeleteAllPlots()
    +
    +    # 2d mesh and scalars
    +    AddPlot("Mesh", "mesh3d")
    +    AddPlot("Pseudocolor", "nodal")
    +    AddPlot("Label", "nodal")
    +    LabelAtts = LabelAttributes()
    +    LabelAtts.textFont1.scale = 7
    +    LabelAtts.depthTestMode = LabelAtts.LABEL_DT_NEVER
    +    SetPlotOptions(LabelAtts)
    +
    +    DrawPlots()
    +    Test("scalar03")
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_species.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_species.html new file mode 100644 index 000000000..9cea9a364 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_species.html @@ -0,0 +1,137 @@ + +Results for simulation/species.py + +

    Results of VisIt Regression Test - simulation/species

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    species000 modifications totalling 0 lines
    species010 modifications totalling 0 lines
    species020.000.00
    species030.000.00
    Force MIR
    species040.000.00
    Turn off materials
    species050.000.00
    species060.000.00
    species070.000.00
    Turn off species
    species080.000.00
    species090.000.00
    species100.000.00
    species110.000.00
    species120.000.00
    species130.000.00
    species140.000.00
    species150.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_species_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_species_py.html new file mode 100644 index 000000000..804458850 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_species_py.html @@ -0,0 +1,83 @@ +simulation/species.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  species.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       July 9, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Force MIR
    +#m = GetMaterialAttributes()
    +#m.forceMIR = 1
    +#SetMaterialAttributes(m)
    +
    +# Create our simulation object.
    +sim = TestSimulation("species", "species.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("species00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("species01", sim.metadata())
    +
    +    AddPlot("FilledBoundary", "Material")
    +    DrawPlots()
    +    Test("species02")
    +
    +    DeleteActivePlots()
    +    AddPlot("Pseudocolor", "scalar")
    +    DrawPlots()
    +    Test("species03")
    +
    +    DeleteAllPlots()
    +    TestSection("Force MIR")
    +    # Force MIR
    +    m = GetMaterialAttributes()
    +    m.forceMIR = 1
    +    SetMaterialAttributes(m)
    +
    +    AddPlot("Pseudocolor", "scalar")
    +    DrawPlots()
    +    Test("species04")
    +
    +    TestSection("Turn off materials")
    +    TurnMaterialsOff("Water")
    +    DrawPlots()
    +    Test("species05")
    +
    +    TurnMaterialsOn("Water")
    +    TurnMaterialsOff("Membrane")
    +    DrawPlots()
    +    Test("species06")
    +
    +    TurnMaterialsOn("Membrane")
    +    TurnMaterialsOff("Air")
    +    DrawPlots()
    +    Test("species07")
    +
    +    TurnMaterialsOn("Air")
    +
    +    TestSection("Turn off species")
    +    s = SILRestriction()
    +    for i in range(8):
    +        s.TurnOffSet(s.SetsInCategory("Species")[i])
    +        SetPlotSILRestriction(s)
    +        s.TurnOnSet(s.SetsInCategory("Species")[i])
    +        Test("species%02d"%(i+8))
    +    DeleteAllPlots()
    +
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_ucdcurve.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_ucdcurve.html new file mode 100644 index 000000000..82ac2750a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_ucdcurve.html @@ -0,0 +1,66 @@ + +Results for simulation/ucdcurve.py + +

    Results of VisIt Regression Test - simulation/ucdcurve

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ucdcurve000 modifications totalling 0 lines
    ucdcurve010 modifications totalling 0 lines
    ucdcurve020.000.00
    ucdcurve030.000.00
    ucdcurve040.000.00
    ucdcurve050 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_ucdcurve_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_ucdcurve_py.html new file mode 100644 index 000000000..908de6805 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_ucdcurve_py.html @@ -0,0 +1,72 @@ +simulation/ucdcurve.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ucdcurve.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - ucdcurve
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       Jun 24, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +import time
    +
    +# Create our simulation object.
    +sim = TestSimulation("ucdcurve", "ucdcurve.sim2")
    +sim.addargument("-echo")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("ucdcurve00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("ucdcurve01", sim.metadata())
    +
    +    AddPlot("Pseudocolor", "nodal")
    +    pcAtts = PseudocolorAttributes()
    +    pcAtts.lineWidth = 4
    +    SetPlotOptions(pcAtts)
    +    DrawPlots()
    +    Test("ucdcurve02")
    +
    +    times = "Times:\n"
    +    Query("Time")
    +    times = times + str(GetQueryOutputValue()) + "\n"
    +
    +    # Read the 'VisIt connected' message
    +    buf = sim.p.stderr.readline()
    +    for i in range(4):
    +        sim.consolecommand("step")
    +        # Read from stderr to look for the echoed command.
    +        buf = sim.p.stderr.readline()
    +        time.sleep(1)
    +    Test("ucdcurve03")
    +
    +    Query("Time")
    +    times = times + str(GetQueryOutputValue()) + "\n"
    +
    +    ChangeActivePlotsVar("zonal")
    +
    +    for i in range(10):
    +        sim.consolecommand("step")
    +        buf = sim.p.stderr.readline()
    +        time.sleep(1)
    +    Test("ucdcurve04")
    +
    +    Query("Time")
    +    times = times + str(GetQueryOutputValue()) + "\n"
    +
    +    TestText("ucdcurve05", times)
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_unstructured.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_unstructured.html new file mode 100644 index 000000000..832bfc2ba --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_unstructured.html @@ -0,0 +1,50 @@ + +Results for simulation/unstructured.py + +

    Results of VisIt Regression Test - simulation/unstructured

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    unstructured000 modifications totalling 0 lines
    unstructured010 modifications totalling 0 lines
    unstructured020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_unstructured_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_unstructured_py.html new file mode 100644 index 000000000..5a5e77961 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_unstructured_py.html @@ -0,0 +1,44 @@ +simulation/unstructured.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  unstructured.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              unstructured   - 3D unstructured.
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 18, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("unstructured", "unstructured.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("unstructured00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("unstructured01", sim.metadata())
    +
    +    AddPlot("Mesh", "unstructured3d")
    +    m = MeshAttributes(1)
    +    m.lineWidth = 1
    +    SetPlotOptions(m)
    +    AddPlot("Subset", "Domains")
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (0.707107, 0, 0.707107)
    +    SetView3D(v)
    +    Test("unstructured02")
    +
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_updateplots.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_updateplots.html new file mode 100644 index 000000000..336306448 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_updateplots.html @@ -0,0 +1,90 @@ + +Results for simulation/updateplots.py + +

    Results of VisIt Regression Test - simulation/updateplots

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    updateplots000 modifications totalling 0 lines
    updateplots010 modifications totalling 0 lines
    updateplots020.000.00
    updateplots030.000.00
    updateplots040.000.00
    updateplots050.000.00
    updateplots060.000.00
    updateplots070.000.00
    updateplots080.000.00
    updateplots090 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_updateplots_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_updateplots_py.html new file mode 100644 index 000000000..cc466d117 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_updateplots_py.html @@ -0,0 +1,89 @@ +simulation/updateplots.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  updateplots.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 18, 2014 
    +#
    +#  Modifications:
    +#   Kathleen Biagas, Fri Sep 10 09:37:11 PDT 2021
    +#   Added test for exporting vtk.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("updateplots", "updateplots.sim2")
    +sim.addargument("-echo")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("updateplots00", sim)
    +
    +def step(sim):
    +    sim.consolecommand("step")
    +    # Read from stderr to look for the echoed command. Sync.
    +    keepGoing = True
    +    while keepGoing:
    +        buf = sim.p.stderr.readline()
    +        print(buf)
    +        if "Command 'step'" in buf:
    +            keepGoing = False
    +
    +def testExportVTK(sim):
    +    # default export FileFormat for VTK is Legacy ascii (.vtk extension),
    +    # Test an export that sets the FileFormat to XML Binary (.vtr extension)
    +    sim.consolecommand("exportVTK")
    +    # Read from stderr to look for the echoed command. Sync.
    +    keepGoing = True
    +    while keepGoing:
    +        buf = sim.p.stderr.readline()
    +        print(buf)
    +        if "Command 'exportVTK'" in buf:
    +            keepGoing = False
    +    TestValueEQ("updateplots_export0000.vtr exists",
    +         os.path.isfile(os.path.join(TestEnv.params["run_dir"], "updateplots_export0000.vtr")),
    +         True)
    +
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("updateplots01", sim.metadata())
    +
    +    # 2d mesh and updateplotss
    +    #AddPlot("Mesh", "mesh2d")
    +    AddPlot("Pseudocolor", "zonal")
    +    AddPlot("Vector", "zvec")
    +    VectorAtts = VectorAttributes()
    +    VectorAtts.scale = 0.5
    +    VectorAtts.colorByMagnitude = 0
    +    VectorAtts.vectorColor = (255, 255, 255, 255)
    +    SetPlotOptions(VectorAtts)
    +    DrawPlots()
    +    Test("updateplots02")
    +
    +    i = 3
    +    times = "Times:\n"
    +    Query("Time")
    +    times = times + str(GetQueryOutputValue()) + "\n"
    +    for outer in range(6):
    +        for inner in range(3):
    +            step(sim)
    +        Query("Time")
    +        times = times + str(GetQueryOutputValue()) + "\n"
    +        Test("updateplots%02d"%i)
    +        i = i+1
    +
    +    TestText("updateplots%02d"%i, times)
    +
    +    # Uncomment this when #17008 is fixed (crash when Logging ExportDBRPC)
    +    #testExportVTK(sim)
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_updateplots_session.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_updateplots_session.html new file mode 100644 index 000000000..26685e97e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_updateplots_session.html @@ -0,0 +1,99 @@ + +Results for simulation/updateplots_session.py + +

    Results of VisIt Regression Test - simulation/updateplots_session

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Testing batch simulation with session file
    updateplots_session_000.000.00
    updateplots_session_010.000.00
    updateplots_session_020.000.00
    updateplots_session_030.000.00
    updateplots_session_040.000.00
    updateplots_session_050.000.00
    updateplots_session_060.000.00
    updateplots_session_070.000.00
    updateplots_session_080.000.00
    updateplots_session_090.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_updateplots_session_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_updateplots_session_py.html new file mode 100644 index 000000000..0d99f684e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_updateplots_session_py.html @@ -0,0 +1,88 @@ +simulation/updateplots_session.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  updateplots_session.py
    +#
    +#  Tests:      libsim - batch simulations that make images via a session file.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Oct  2 15:18:56 PDT 2015
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +import string, time
    +
    +def WaitForFile(filename, starttime, timelimit):
    +    fileSize = 0
    +    lastFileSize = 0
    +    samecount = 0
    +    for iteration in range(1000):
    +        delay = 2
    +        try:
    +            # Get the size of the file.
    +            fileSize = os.stat(filename).st_size
    +
    +            # If the file grew, wait a little bit and check again.
    +            if fileSize > lastFileSize:
    +                samecount = 0
    +            elif fileSize == lastFileSize and fileSize > 0:
    +                delay = 1
    +                samecount = samecount + 1
    +                if samecount == 3:
    +                    break
    +
    +            lastFileSize = fileSize
    +        except:
    +            print("Problem stat'ing ", filename)
    +            pass
    +
    +        time.sleep(delay)
    +        if (time.time() - starttime) > timelimit:
    +            raise "Out of time"
    +
    +    return fileSize
    +
    +TestSection("Testing batch simulation with session file")
    +
    +# The name of the session file.
    +session = TestEnv.params["script"].replace("updateplots_session.py", "updateplots_session.session")
    +
    +# Create our simulation object.
    +sim = Simulation(SimVisItDir(), SimProgram("updateplots"), SimFile("dummy"))
    +sim.addargument("-batch")
    +sim.addargument("-sessionfile")
    +sim.addargument(session)
    +sim.addargument("-maxcycles")
    +sim.addargument("11")
    +sim.addargument("-width")
    +sim.addargument("%d" % TestEnv.params["width"])
    +sim.addargument("-height")
    +sim.addargument("%d" % TestEnv.params["height"])
    +
    +
    +# Start the sim.
    +sim.startsim()
    +
    +# Iterate through the images that we hoped the simulation would create.
    +timelimit = 300
    +starttime = time.time()
    +for testindex in range(10):
    +    filename = "updateplots%04d.png" % testindex
    +    if WaitForFile(filename, starttime, timelimit):
    +        OpenDatabase(filename)
    +        AddPlot("Truecolor", "color")
    +        DrawPlots()
    +        ResetView()
    +        v = GetView2D()
    +        v.viewportCoords = (0,1,0,1)
    +        SetView2D(v)
    +        testname = "updateplots_session_%02d" % testindex
    +        Test(testname)
    +        DeleteAllPlots()
    +        CloseDatabase(filename)
    +
    +sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_var.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_var.html new file mode 100644 index 000000000..4dd8c18e0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_var.html @@ -0,0 +1,58 @@ + +Results for simulation/var.py + +

    Results of VisIt Regression Test - simulation/var

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    var000 modifications totalling 0 lines
    var010 modifications totalling 0 lines
    var020.440.64
    var030.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_var_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_var_py.html new file mode 100644 index 000000000..191165176 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_var_py.html @@ -0,0 +1,62 @@ +simulation/var.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  var.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       June 6, 2014
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Replace obsolete Label text attributes with new versions.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("var", "var.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("var00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("var01", sim.metadata())
    +
    +    # 2d mesh and vars
    +    AddPlot("Mesh", "mesh2d")
    +    AddPlot("Pseudocolor", "zonal_scalar")
    +    AddPlot("Vector", "zonal_vector")
    +    VectorAtts = VectorAttributes()
    +    VectorAtts.scale = 0.5
    +    VectorAtts.colorByMagnitude = 0
    +    VectorAtts.vectorColor = (255, 255, 255, 255)
    +    SetPlotOptions(VectorAtts)
    +    AddPlot("Label", "zonal_label")
    +    LabelAtts = LabelAttributes()
    +    LabelAtts.textFont1.scale = 6
    +    SetPlotOptions(LabelAtts)
    +    DrawPlots()
    +    Test("var02")
    +
    +    DeleteAllPlots()
    +
    +    # 2d mesh and vars
    +    AddPlot("Mesh", "mesh3d")
    +    AddPlot("Pseudocolor", "nodal_scalar")
    +    AddPlot("Vector", "nodal_vector")
    +    VectorAtts = VectorAttributes()
    +    VectorAtts.scale = 0.5
    +    SetPlotOptions(VectorAtts)
    +
    +    DrawPlots()
    +    Test("var03")
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_zerocopy.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_zerocopy.html new file mode 100644 index 000000000..572599acd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_zerocopy.html @@ -0,0 +1,285 @@ + +Results for simulation/zerocopy.py + +

    Results of VisIt Regression Test - simulation/zerocopy

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    zerocopy000 modifications totalling 0 lines
    zerocopy010 modifications totalling 0 lines
    Mesh soa_s
    zerocopy_soa_s_000.000.00
    zerocopy_soa_s_010.000.00
    zerocopy_soa_s_020.000.00
    zerocopy_soa_s_030.000.00
    zerocopy_soa_s_040.000.00
    zerocopy_soa_s_050.000.00
    Mesh soa_m
    zerocopy_soa_m_000.000.00
    zerocopy_soa_m_010.000.00
    zerocopy_soa_m_020.000.00
    zerocopy_soa_m_030.000.00
    zerocopy_soa_m_040.000.00
    zerocopy_soa_m_050.000.00
    Mesh soa_i
    zerocopy_soa_i_000.000.00
    zerocopy_soa_i_010.000.00
    zerocopy_soa_i_020.000.00
    zerocopy_soa_i_030.000.00
    zerocopy_soa_i_040.000.00
    zerocopy_soa_i_050.000.00
    Mesh aos_s
    zerocopy_aos_s_000.000.00
    zerocopy_aos_s_010.000.00
    zerocopy_aos_s_020.000.00
    zerocopy_aos_s_030.000.00
    zerocopy_aos_s_040.000.00
    zerocopy_aos_s_050.000.00
    Mesh aos_m
    zerocopy_aos_m_000.000.00
    zerocopy_aos_m_010.000.00
    zerocopy_aos_m_020.000.00
    zerocopy_aos_m_030.000.00
    zerocopy_aos_m_040.000.00
    zerocopy_aos_m_050.000.00
    Mesh aos_c
    zerocopy_aos_c_000.000.00
    zerocopy_aos_c_010.000.00
    zerocopy_aos_c_020.000.00
    zerocopy_aos_c_030.000.00
    zerocopy_aos_c_040.000.00
    zerocopy_aos_c_050.000.00
    Memory usage
    zerocopy021 modifications totalling 1 lines
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_zerocopy_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_zerocopy_py.html new file mode 100644 index 000000000..08c59dab3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/simulation_zerocopy_py.html @@ -0,0 +1,178 @@ +simulation/zerocopy.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  zerocopy.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Jul 22 16:07:12 PDT 2015
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +import string
    +
    +def step(sim):
    +    sim.consolecommand("step")
    +    # Read from stderr to look for the echoed command. Sync.
    +    keepGoing = True
    +    while keepGoing:
    +        buf = sim.p.stderr.readline()
    +        print(buf)
    +        if "Command 'step'" in buf:
    +            keepGoing = False
    +
    +def MemorySample(sim, label = ""):
    +    EL = GetEngineList(1)
    +    pa = GetProcessAttributes("engine", EL[0][0], EL[0][1])
    +    return (pa.memory[0], label)
    +
    +def sv():
    +    v = GetView3D()
    +    v.viewNormal = (0.284499, -0.766043, 0.576401)
    +    v.focus = (0, 0.499486, 0)
    +    v.viewUp = (-0.137723, 0.562352, 0.815348)
    +    v.viewAngle = 30
    +    v.parallelScale = 1.49949
    +    v.nearPlane = -2.99897
    +    v.farPlane = 2.99897
    +    v.imagePan = (0.0351381, 0.0550703)
    +    v.imageZoom = 1.15316
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0.499486, 0)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +def meshtest(sim, mesh):
    +    m = [MemorySample(sim, "Initial")]
    +    TestSection("Mesh " + mesh)
    +
    +    AddPlot("Pseudocolor", mesh + "/temperature")
    +    DrawPlots()
    +    sv()
    +    m = m + [MemorySample(sim, "Pseudocolor plot temperature")]
    +    Test("zerocopy_%s_00" % mesh)
    +
    +    ChangeActivePlotsVar(mesh + "/vx")
    +    Test("zerocopy_%s_01" % mesh)
    +    m = m + [MemorySample(sim, "Change to vx")]
    +
    +    ChangeActivePlotsVar(mesh + "/I")
    +    Test("zerocopy_%s_02" % mesh)
    +    m = m + [MemorySample(sim, "Change to I")]
    +
    +    ChangeActivePlotsVar(mesh + "/J")
    +    Test("zerocopy_%s_03" % mesh)
    +    m = m + [MemorySample(sim, "Change to J")]
    +
    +    ChangeActivePlotsVar(mesh + "/K")
    +    Test("zerocopy_%s_04" % mesh)
    +    m = m + [MemorySample(sim, "Change to K")]
    +
    +    DeleteAllPlots()
    +
    +    AddPlot("Vector", mesh + "/velocity")
    +    DrawPlots()
    +    Test("zerocopy_%s_05" % mesh)
    +    m = m + [MemorySample(sim, "Vector plot velocity")]
    +
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", mesh + "/temperature")
    +    DrawPlots()
    +    for i in range(20):
    +        step(sim)
    +        m = m + [MemorySample(sim, "Pseudocolor plot temperature iteration %d" % i)]
    +    DeleteAllPlots()
    +    return m
    +
    +def SaveTestImage(name):
    +    # Save these images somewhat larger than a regular test case image
    +    # since the images contain a lot of text.
    +    swa = SaveWindowAttributes()
    +    swa.width = 800
    +    swa.height = 800
    +    swa.screenCapture = 0
    +    Test(name, swa)
    +
    +def MeshNames():
    +    return ("soa_s", "soa_m", "soa_i", "aos_s", "aos_m", "aos_c")
    +
    +def PlotMemoryCurve(filename, testname):
    +    OpenDatabase("simmem.curve")
    +    M = MeshNames()
    +    for mesh in M:
    +        AddPlot("Curve", mesh)
    +    DrawPlots()
    +    ResetView()
    +    SaveTestImage(testname)
    +
    +# Do a simple, reliable test without quantifying since that would not be
    +# portable and would require rebaselining as VisIt changes.
    +def TestMemoryUsage(memory, testname):
    +    def AllMethodsUseLessMemoryThanCopying(memory):
    +        numSamples = len(memory["aos_c"])
    +        for i in range(numSamples):
    +            copyMem = memory["aos_c"][i][0]
    +            for k in list(memory.keys()):
    +                if k != "aos_c":
    +                    if memory[k][i][0] > copyMem:
    +                        return False
    +        return True
    +    if AllMethodsUseLessMemoryThanCopying(memory):
    +        TestText(testname, "OK: All methods use less memory than copying.")
    +    else:
    +        TestText(testname, "ERROR: Some methods used more memory than copying.")
    +
    +def WriteData(filename, memory):
    +    print(memory)
    +    numSamples = len(memory["aos_c"])
    +    f = open(filename, "wt")
    +    M = MeshNames()
    +    f.write("event," + string.replace(str(M), "'", "")[1:-1] + "\n")
    +    for row in range(numSamples):
    +        s = memory["aos_c"][row][1]
    +        for m in M:
    +            s = s + ", " + str(memory[m][row][0])
    +        f.write(s + "\n")
    +    f.close()
    +
    +# Create our simulation object.
    +sim = TestSimulation("zerocopy", "zerocopy.sim2")
    +sim.addargument("-echo")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("zerocopy00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("zerocopy01", sim.metadata())
    +
    +    memorySamples = {}
    +    f = open("simmem.curve", "wt")
    +    M = MeshNames()
    +    for mesh in M:
    +        m = meshtest(sim, mesh)
    +        f.write("# " + mesh + "\n")
    +        for i in range(len(m)):
    +            f.write("%g %g\n" % (i,m[i][0]))
    +        memorySamples[mesh] = m
    +    f.close()
    +
    +    TestSection("Memory usage")
    +    TestMemoryUsage(memorySamples, "zerocopy02")
    +#    PlotMemoryCurve("simmem.curve", "zerocopy03")
    +#    WriteData("zerocopy.dat", memorySamples)
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_annotation_objects.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_annotation_objects.html new file mode 100644 index 000000000..2499e1397 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_annotation_objects.html @@ -0,0 +1,44 @@ + +Results for unit/annotation_objects.py + +

    Results of VisIt Regression Test - unit/annotation_objects

    + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ComparisonOperator_00
     "False" .eq. "False" : True
    ComparisonOperator_01
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_annotation_objects_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_annotation_objects_py.html new file mode 100644 index 000000000..7d70185d7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_annotation_objects_py.html @@ -0,0 +1,30 @@ +unit/annotation_objects.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  annotation_objects.py
    +#
    +#  Tests:      AnnotationObject unit test
    +#
    +#  Alister Maguire, Fri Jul 16 12:50:11 PDT 2021
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def CheckComparisonOperator():
    +    annot = CreateAnnotationObject("Text2D")
    +
    +    #
    +    # In the past, a bug caused a crash whenever we compared to a non-annotation
    +    # type object.
    +    #
    +    TestValueEQ("ComparisonOperator_00", annot == "", False)
    +    TestValueEQ("ComparisonOperator_01", annot == annot, True)
    +
    +def RunMain():
    +    CheckComparisonOperator()
    +
    +RunMain()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_atts_assign.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_atts_assign.html new file mode 100644 index 000000000..40b36627d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_atts_assign.html @@ -0,0 +1,1782 @@ + +Results for unit/atts_assign.py + +

    Results of VisIt Regression Test - unit/atts_assign

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Assignment to bool member, "inverse", (of CylinderAttributes())
    ca.inverse=1,2
     "True" .eq. "True" : True
    ca.inverse='123'
     "True" .eq. "True" : True
    ca.inverse=(1+2j)
     "True" .eq. "True" : True
    ca.inverse=[2, 4, 6]
     "True" .eq. "True" : True
    ca.inverse=None
     "True" .eq. "True" : True
    ca.inverse=5
     "True" .eq. "True" : True
    ca.SetInverse('123')
     "True" .eq. "True" : True
    ca.SetInverse((1+2j))
     "True" .eq. "True" : True
    ca.SetInverse([2, 4, 6])
     "True" .eq. "True" : True
    ca.SetInverse(None)
     "True" .eq. "True" : True
    ca.SetInverse(5)
     "True" .eq. "True" : True
    ca.inverse=0
     "True" .eq. "True" : True
    ca.inverse=1
     "True" .eq. "True" : True
    ca.inverse=True
     "True" .eq. "True" : True
    ca.inverse=False
     "True" .eq. "True" : True
    ca.SetInverse(0)
     "True" .eq. "True" : True
    ca.SetInverse(1)
     "True" .eq. "True" : True
    ca.SetInverse(True)
     "True" .eq. "True" : True
    ca.SetInverse(False)
     "True" .eq. "True" : True
    Assignment to int member, "samplesPerRay", (of VolumeAttributes())
    va.samplesPerRay=1,2
     "True" .eq. "True" : True
    va.samplesPerRay='123'
     "True" .eq. "True" : True
    va.samplesPerRay=(1+2j)
     "True" .eq. "True" : True
    va.samplesPerRay=None
     "True" .eq. "True" : True
    va.samplesPerRay=[2, 4, 6]
     "True" .eq. "True" : True
    va.samplesPerRay=2147483648
     "True" .eq. "True" : True
    va.SetSamplesPerRay('123')
     "True" .eq. "True" : True
    va.SetSamplesPerRay((1+2j))
     "True" .eq. "True" : True
    va.SetSamplesPerRay(None)
     "True" .eq. "True" : True
    va.SetSamplesPerRay([2, 4, 6])
     "True" .eq. "True" : True
    va.SetSamplesPerRay(2147483648)
     "True" .eq. "True" : True
    va.samplesPerRay=0
     "True" .eq. "True" : True
    va.samplesPerRay=1
     "True" .eq. "True" : True
    va.samplesPerRay=-1
     "True" .eq. "True" : True
    va.samplesPerRay=5
     "True" .eq. "True" : True
    va.samplesPerRay=True
     "True" .eq. "True" : True
    va.samplesPerRay=False
     "True" .eq. "True" : True
    va.samplesPerRay=2147483647
     "True" .eq. "True" : True
    va.SetSamplesPerRay(0)
     "True" .eq. "True" : True
    va.SetSamplesPerRay(1)
     "True" .eq. "True" : True
    va.SetSamplesPerRay(-1)
     "True" .eq. "True" : True
    va.SetSamplesPerRay(5)
     "True" .eq. "True" : True
    va.SetSamplesPerRay(True)
     "True" .eq. "True" : True
    va.SetSamplesPerRay(False)
     "True" .eq. "True" : True
    va.SetSamplesPerRay(2147483647)
     "True" .eq. "True" : True
    Assignment to float member, "opacityAttenuation", (of VolumeAttributes())
    va.opacityAttenuation=1,2
     "True" .eq. "True" : True
    va.opacityAttenuation='123'
     "True" .eq. "True" : True
    va.opacityAttenuation=(1+2j)
     "True" .eq. "True" : True
    va.opacityAttenuation=None
     "True" .eq. "True" : True
    va.opacityAttenuation=[2, 4, 6]
     "True" .eq. "True" : True
    va.opacityAttenuation=3.402823e+39
     "True" .eq. "True" : True
    va.SetOpacityAttenuation('123')
     "True" .eq. "True" : True
    va.SetOpacityAttenuation((1+2j))
     "True" .eq. "True" : True
    va.SetOpacityAttenuation(None)
     "True" .eq. "True" : True
    va.SetOpacityAttenuation([2, 4, 6])
     "True" .eq. "True" : True
    va.SetOpacityAttenuation(3.402823e+39)
     "True" .eq. "True" : True
    va.opacityAttenuation=0
     "True" .eq. "True" : True
    va.opacityAttenuation=1
     "True" .eq. "True" : True
    va.opacityAttenuation=-1
     "True" .eq. "True" : True
    va.opacityAttenuation=0.3
     "True" .eq. "True" : True
    va.opacityAttenuation=3.40282e+37
     "True" .eq. "True" : True
    va.opacityAttenuation=True
     "True" .eq. "True" : True
    va.opacityAttenuation=False
     "True" .eq. "True" : True
    va.SetOpacityAttenuation(0)
     "True" .eq. "True" : True
    va.SetOpacityAttenuation(1)
     "True" .eq. "True" : True
    va.SetOpacityAttenuation(-1)
     "True" .eq. "True" : True
    va.SetOpacityAttenuation(0.3)
     "True" .eq. "True" : True
    va.SetOpacityAttenuation(3.40282e+37)
     "True" .eq. "True" : True
    va.SetOpacityAttenuation(True)
     "True" .eq. "True" : True
    va.SetOpacityAttenuation(False)
     "True" .eq. "True" : True
    Assignment to double member, "radius", (of CylinderAttributes())
    ca.radius=1,2
     "True" .eq. "True" : True
    ca.radius='123'
     "True" .eq. "True" : True
    ca.radius=(1+2j)
     "True" .eq. "True" : True
    ca.radius=None
     "True" .eq. "True" : True
    ca.radius=[2, 4, 6]
     "True" .eq. "True" : True
    ca.SetRadius('123')
     "True" .eq. "True" : True
    ca.SetRadius((1+2j))
     "True" .eq. "True" : True
    ca.SetRadius(None)
     "True" .eq. "True" : True
    ca.SetRadius([2, 4, 6])
     "True" .eq. "True" : True
    ca.radius=0
     "True" .eq. "True" : True
    ca.radius=1
     "True" .eq. "True" : True
    ca.radius=-1
     "True" .eq. "True" : True
    ca.radius=5.5
     "True" .eq. "True" : True
    ca.radius=0.0
     "True" .eq. "True" : True
    ca.radius=inf
     "True" .eq. "True" : True
    ca.radius=True
     "True" .eq. "True" : True
    ca.radius=False
     "True" .eq. "True" : True
    ca.SetRadius(0)
     "True" .eq. "True" : True
    ca.SetRadius(1)
     "True" .eq. "True" : True
    ca.SetRadius(-1)
     "True" .eq. "True" : True
    ca.SetRadius(5.5)
     "True" .eq. "True" : True
    ca.SetRadius(0.0)
     "True" .eq. "True" : True
    ca.SetRadius(inf)
     "True" .eq. "True" : True
    ca.SetRadius(True)
     "True" .eq. "True" : True
    ca.SetRadius(False)
     "True" .eq. "True" : True
    Assignment to string member, "designator", (of CurveAttributes())
    ca.designator="123","abc"
     "True" .eq. "True" : True
    ca.designator=0
     "True" .eq. "True" : True
    ca.designator=1
     "True" .eq. "True" : True
    ca.designator=1.1
     "True" .eq. "True" : True
    ca.designator=(1+2j)
     "True" .eq. "True" : True
    ca.designator=None
     "True" .eq. "True" : True
    ca.designator=[2, 4, 6]
     "True" .eq. "True" : True
    ca.SetDesignator(0)
     "True" .eq. "True" : True
    ca.SetDesignator(1)
     "True" .eq. "True" : True
    ca.SetDesignator(1.1)
     "True" .eq. "True" : True
    ca.SetDesignator((1+2j))
     "True" .eq. "True" : True
    ca.SetDesignator(None)
     "True" .eq. "True" : True
    ca.SetDesignator([2, 4, 6])
     "True" .eq. "True" : True
    ca.designator='123'
     "True" .eq. "True" : True
    ca.designator='abc'
     "True" .eq. "True" : True
    ca.designator=''
     "True" .eq. "True" : True
    ca.SetDesignator('123')
     "True" .eq. "True" : True
    ca.SetDesignator('abc')
     "True" .eq. "True" : True
    ca.SetDesignator('')
     "True" .eq. "True" : True
    Assignment to GlyphType member, "pointType", (of MeshAttributes())
    ma.pointType=1
     "True" .eq. "True" : True
    ma.pointType='123'
     "True" .eq. "True" : True
    ma.pointType=(1+2j)
     "True" .eq. "True" : True
    ma.pointType=None
     "True" .eq. "True" : True
    ma.pointType=[2, 4, 6]
     "True" .eq. "True" : True
    ma.pointType=-1
     "True" .eq. "True" : True
    ma.pointType=123123123123123123123123123123
     "True" .eq. "True" : True
    ma.SetPointType('123')
     "True" .eq. "True" : True
    ma.SetPointType((1+2j))
     "True" .eq. "True" : True
    ma.SetPointType(None)
     "True" .eq. "True" : True
    ma.SetPointType([2, 4, 6])
     "True" .eq. "True" : True
    ma.SetPointType(-1)
     "True" .eq. "True" : True
    ma.SetPointType(123123123123123123123123123123)
     "True" .eq. "True" : True
    ma.pointType=0
     "True" .eq. "True" : True
    ma.pointType=1
     "True" .eq. "True" : True
    ma.pointType=5
     "True" .eq. "True" : True
    ma.pointType=True
     "True" .eq. "True" : True
    ma.pointType=False
     "True" .eq. "True" : True
    ma.pointType=6
     "True" .eq. "True" : True
    ma.SetPointType(0)
     "True" .eq. "True" : True
    ma.SetPointType(1)
     "True" .eq. "True" : True
    ma.SetPointType(5)
     "True" .eq. "True" : True
    ma.SetPointType(True)
     "True" .eq. "True" : True
    ma.SetPointType(False)
     "True" .eq. "True" : True
    ma.SetPointType(6)
     "True" .eq. "True" : True
    Assignment to Enum member, "smoothingLevel", (of MeshAttributes())
    ma.smoothingLevel=1
     "True" .eq. "True" : True
    ma.smoothingLevel='123'
     "True" .eq. "True" : True
    ma.smoothingLevel=(1+2j)
     "True" .eq. "True" : True
    ma.smoothingLevel=None
     "True" .eq. "True" : True
    ma.smoothingLevel=[2, 4, 6]
     "True" .eq. "True" : True
    ma.smoothingLevel=-1
     "True" .eq. "True" : True
    ma.smoothingLevel=123123123
     "True" .eq. "True" : True
    ma.smoothingLevel=123123123123123123123123123123
     "True" .eq. "True" : True
    ma.SetSmoothingLevel('123')
     "True" .eq. "True" : True
    ma.SetSmoothingLevel((1+2j))
     "True" .eq. "True" : True
    ma.SetSmoothingLevel(None)
     "True" .eq. "True" : True
    ma.SetSmoothingLevel([2, 4, 6])
     "True" .eq. "True" : True
    ma.SetSmoothingLevel(-1)
     "True" .eq. "True" : True
    ma.SetSmoothingLevel(123123123)
     "True" .eq. "True" : True
    ma.SetSmoothingLevel(123123123123123123123123123123)
     "True" .eq. "True" : True
    ma.smoothingLevel=0
     "True" .eq. "True" : True
    ma.smoothingLevel=1
     "True" .eq. "True" : True
    ma.smoothingLevel=2
     "True" .eq. "True" : True
    ma.smoothingLevel=True
     "True" .eq. "True" : True
    ma.smoothingLevel=False
     "True" .eq. "True" : True
    ma.smoothingLevel=1
     "True" .eq. "True" : True
    ma.SmoothingLevel(0)
     "True" .eq. "True" : True
    ma.SmoothingLevel(1)
     "True" .eq. "True" : True
    ma.SmoothingLevel(2)
     "True" .eq. "True" : True
    ma.SmoothingLevel(True)
     "True" .eq. "True" : True
    ma.SmoothingLevel(False)
     "True" .eq. "True" : True
    ma.SmoothingLevel(1)
     "True" .eq. "True" : True
    Assignment to tuple, "point1", member (of CylinderAttributes())
    ca.point=1,2,3
     "True" .eq. "True" : True
    ca.SetPoint(1,2,3)
     "True" .eq. "True" : True
    ca.point1=1,2
     "True" .eq. "True" : True
    ca.point1=1,2,3,4
     "True" .eq. "True" : True
    ca.point1=1, 2
     "True" .eq. "True" : True
    ca.point1=1, 2, 3, 4
     "True" .eq. "True" : True
    ca.point1='123'
     "True" .eq. "True" : True
    ca.point1=1, (1+2j), 3
     "True" .eq. "True" : True
    ca.point1=1, [2, 4, 6], 3
     "True" .eq. "True" : True
    ca.point1=1, 'b', 3
     "True" .eq. "True" : True
    ca.point1=1, None, 3
     "True" .eq. "True" : True
    ca.point1=array([1.1, 2.2]
     "True" .eq. "True" : True
    ca.point1=array([1.1, 2.2, 3.3, 4.4]
     "True" .eq. "True" : True
    ca.SetPoint1(1, 2)
     "True" .eq. "True" : True
    ca.SetPoint1(1, 2, 3, 4)
     "True" .eq. "True" : True
    ca.SetPoint1('123')
     "True" .eq. "True" : True
    ca.SetPoint1(1, (1+2j), 3)
     "True" .eq. "True" : True
    ca.SetPoint1(1, [2, 4, 6], 3)
     "True" .eq. "True" : True
    ca.SetPoint1(1, 'b', 3)
     "True" .eq. "True" : True
    ca.SetPoint1(1, None, 3)
     "True" .eq. "True" : True
    ca.SetPoint1(array([1.1, 2.2])
     "True" .eq. "True" : True
    ca.SetPoint1(array([1.1, 2.2, 3.3, 4.4])
     "True" .eq. "True" : True
    ca.point1=1,2,3
     "True" .eq. "True" : True
    ca.point1=1, 2, 3
     "True" .eq. "True" : True
    ca.point1=1.1, 2.2, 3.3
     "True" .eq. "True" : True
    ca.point1=2, 4, 6
     "True" .eq. "True" : True
    ca.point1=array([1, 2, 3]
     "True" .eq. "True" : True
    ca.point1=array([1.1, 2.2, 3.3]
     "True" .eq. "True" : True
    ca.SetPoint1(1, 2, 3)
     "True" .eq. "True" : True
    ca.SetPoint1(1.1, 2.2, 3.3)
     "True" .eq. "True" : True
    ca.SetPoint1(2, 4, 6)
     "True" .eq. "True" : True
    ca.SetPoint1(array([1, 2, 3])
     "True" .eq. "True" : True
    ca.SetPoint1(array([1.1, 2.2, 3.3])
     "True" .eq. "True" : True
    Assignment to ucharVector member, "changedColors", (of MultiCurveAttributes())
    mca.changedColors=1,2,3
     "True" .eq. "True" : True
    mca.changedColors=1, 123123123123123123123123123123, 3
     "True" .eq. "True" : True
    mca.changedColors=1, (1+2j), 3
     "True" .eq. "True" : True
    mca.changedColors=1, [2, 4, 6], 3
     "True" .eq. "True" : True
    mca.changedColors=1, 'b', 3
     "True" .eq. "True" : True
    mca.changedColors=1, None, 3
     "True" .eq. "True" : True
    mca.changedColors='123',
     "True" .eq. "True" : True
    mca.SetChangedColors(1, 123123123123123123123123123123, 3)
     "True" .eq. "True" : True
    mca.SetChangedColors(1, (1+2j), 3)
     "True" .eq. "True" : True
    mca.SetChangedColors(1, [2, 4, 6], 3)
     "True" .eq. "True" : True
    mca.SetChangedColors(1, 'b', 3)
     "True" .eq. "True" : True
    mca.SetChangedColors(1, None, 3)
     "True" .eq. "True" : True
    mca.SetChangedColors('123',)
     "True" .eq. "True" : True
    mca.changedColors=1, 2, 3
     "True" .eq. "True" : True
    mca.changedColors=2, 4, 6
     "True" .eq. "True" : True
    mca.changedColors=1, True, 3
     "True" .eq. "True" : True
    mca.changedColors=1, False, 3
     "True" .eq. "True" : True
    mca.SetChangedColors(1, 2, 3)
     "True" .eq. "True" : True
    mca.SetChangedColors(2, 4, 6)
     "True" .eq. "True" : True
    mca.SetChangedColors(1, True, 3)
     "True" .eq. "True" : True
    mca.SetChangedColors(1, False, 3)
     "True" .eq. "True" : True
    mca.SetChangedColors(array([1, 2, 3])
     "True" .eq. "True" : True
    Assignment to intVector member, "index", (of OnionPeelAttributes())
    opa.index=1,2,3
     "True" .eq. "True" : True
    opa.index=2147483648,
     "True" .eq. "True" : True
    opa.index=1+2j),
     "True" .eq. "True" : True
    opa.index='b',
     "True" .eq. "True" : True
    opa.index=None,
     "True" .eq. "True" : True
    opa.index=1, 2147483648, 3
     "True" .eq. "True" : True
    opa.index=1, (1+2j), 3
     "True" .eq. "True" : True
    opa.index=1, [2, 4, 6], 3
     "True" .eq. "True" : True
    opa.index=1, 'b', 3
     "True" .eq. "True" : True
    opa.index=1, None, 3
     "True" .eq. "True" : True
    opa.SetIndex(2147483648,)
     "True" .eq. "True" : True
    opa.SetIndex(1+2j),)
     "True" .eq. "True" : True
    opa.SetIndex('b',)
     "True" .eq. "True" : True
    opa.SetIndex(None,)
     "True" .eq. "True" : True
    opa.SetIndex(1, 2147483648, 3)
     "True" .eq. "True" : True
    opa.SetIndex(1, (1+2j), 3)
     "True" .eq. "True" : True
    opa.SetIndex(1, [2, 4, 6], 3)
     "True" .eq. "True" : True
    opa.SetIndex(1, 'b', 3)
     "True" .eq. "True" : True
    opa.SetIndex(1, None, 3)
     "True" .eq. "True" : True
    opa.index=1, 2, 3
     "True" .eq. "True" : True
    opa.index=[2, 4, 6]
     "True" .eq. "True" : True
    opa.index=2, 4, 6
     "True" .eq. "True" : True
    opa.index=1, True, 3
     "True" .eq. "True" : True
    opa.index=1, False, 3
     "True" .eq. "True" : True
    opa.index=1, 2147483647, 3
     "True" .eq. "True" : True
    opa.SetIndex(1, 2, 3)
     "True" .eq. "True" : True
    opa.SetIndex([2, 4, 6])
     "True" .eq. "True" : True
    opa.SetIndex(2, 4, 6)
     "True" .eq. "True" : True
    opa.SetIndex(1, True, 3)
     "True" .eq. "True" : True
    opa.SetIndex(1, False, 3)
     "True" .eq. "True" : True
    opa.SetIndex(1, 2147483647, 3)
     "True" .eq. "True" : True
    opa.SetIndex(array([1, 2, 3])
     "True" .eq. "True" : True
    Assignment to doubleVector member, "values", (of ContourAttributes())
    ca.contourValue=1,2,3
     "True" .eq. "True" : True
    ca.contourValue=1+2j),
     "True" .eq. "True" : True
    ca.contourValue='b',
     "True" .eq. "True" : True
    ca.contourValue=None,
     "True" .eq. "True" : True
    ca.contourValue=1, (1+2j), 3
     "True" .eq. "True" : True
    ca.contourValue=1, [2, 4, 6], 3
     "True" .eq. "True" : True
    ca.contourValue=1, 'b', 3
     "True" .eq. "True" : True
    ca.contourValue=1, None, 3
     "True" .eq. "True" : True
    ca.SetContourValue(1+2j),)
     "True" .eq. "True" : True
    ca.SetContourValue('b',)
     "True" .eq. "True" : True
    ca.SetContourValue(None,)
     "True" .eq. "True" : True
    ca.SetContourValue(1, (1+2j), 3)
     "True" .eq. "True" : True
    ca.SetContourValue(1, [2, 4, 6], 3)
     "True" .eq. "True" : True
    ca.SetContourValue(1, 'b', 3)
     "True" .eq. "True" : True
    ca.SetContourValue(1, None, 3)
     "True" .eq. "True" : True
    ca.contourValue=1, 2, 3
     "True" .eq. "True" : True
    ca.contourValue=[2, 4, 6]
     "True" .eq. "True" : True
    ca.contourValue=2, 4, 6
     "True" .eq. "True" : True
    ca.contourValue=1, True, 3
     "True" .eq. "True" : True
    ca.contourValue=1, False, 3
     "True" .eq. "True" : True
    ca.SetContourValue(1, 2, 3)
     "True" .eq. "True" : True
    ca.SetContourValue([2, 4, 6])
     "True" .eq. "True" : True
    ca.SetContourValue(2, 4, 6)
     "True" .eq. "True" : True
    ca.SetContourValue(1, True, 3)
     "True" .eq. "True" : True
    ca.SetContourValue(1, False, 3)
     "True" .eq. "True" : True
    ca.SetContourValue(array([1.1, 2.2, 3.3])
     "True" .eq. "True" : True
    Assignment to ucharArray member, "freeformOpacity", (of VolumeAttributes())
    va.freeformOpacity=3,17
     "True" .eq. "True" : True
    va.SetFreeformOpacity(3,17)
     "True" .eq. "True" : True
    va.freeformOpacity=tuple(arr)
     "True" .eq. "True" : True
    va.SetFreeformOpacity(*tuple(arr))
     "True" .eq. "True" : True
    va.freeformOpacity=3,None
     "True" .eq. "True" : True
    va.freeformOpacity=3,(1+2j)
     "True" .eq. "True" : True
    va.freeformOpacity=3,[2, 4, 6]
     "True" .eq. "True" : True
    va.freeformOpacity=3,'123'
     "True" .eq. "True" : True
    va.freeformOpacity=None,17
     "True" .eq. "True" : True
    va.freeformOpacity=(1+2j),17
     "True" .eq. "True" : True
    va.freeformOpacity=[2, 4, 6],17
     "True" .eq. "True" : True
    va.freeformOpacity='123',17
     "True" .eq. "True" : True
    va.freeformOpacity=-3,17
     "True" .eq. "True" : True
    va.freeformOpacity=3,1700
     "True" .eq. "True" : True
    va.SetFreeformOpacity(3,None)
     "True" .eq. "True" : True
    va.SetFreeformOpacity(3,(1+2j))
     "True" .eq. "True" : True
    va.SetFreeformOpacity(3,[2, 4, 6])
     "True" .eq. "True" : True
    va.SetFreeformOpacity(3,'123')
     "True" .eq. "True" : True
    va.SetFreeformOpacity(None,17)
     "True" .eq. "True" : True
    va.SetFreeformOpacity((1+2j),17)
     "True" .eq. "True" : True
    va.SetFreeformOpacity([2, 4, 6],17)
     "True" .eq. "True" : True
    va.SetFreeformOpacity('123',17)
     "True" .eq. "True" : True
    va.SetFreeformOpacity(-3,17)
     "True" .eq. "True" : True
    va.SetFreeformOpacity(3,1700)
     "True" .eq. "True" : True
    va.freeformOpacity=(17,)*256
     "True" .eq. "True" : True
    va.SetFreeformOpacity((17,)*256)
     "True" .eq. "True" : True
    va.freeformOpacity=(17, 17, 17, None, 17, 17, 17, ...
     "True" .eq. "True" : True
    va.freeformOpacity=(17, 17, 17, (1+2j, ..., 17, 17, 17, ...
     "True" .eq. "True" : True
    va.freeformOpacity=(17, 17, 17, [2, 4, 6], 17, 17, 17, ...
     "True" .eq. "True" : True
    va.freeformOpacity=(17, 17, 17, (1, 2, 3, ..., 17, 17, 17, ...
     "True" .eq. "True" : True
    va.freeformOpacity=(17, 17, 17, '123', 17, 17, 17, ...
     "True" .eq. "True" : True
    va.SetFreeformOpacity(17, 17, 17, None, 17, 17, 17, ...)
     "True" .eq. "True" : True
    va.SetFreeformOpacity(17, 17, 17, (1+2j, ...), 17, 17, 17, ...)
     "True" .eq. "True" : True
    va.SetFreeformOpacity(17, 17, 17, [2, 4, 6], 17, 17, 17, ...)
     "True" .eq. "True" : True
    va.SetFreeformOpacity(17, 17, 17, (1, 2, 3, ...), 17, 17, 17, ...)
     "True" .eq. "True" : True
    va.SetFreeformOpacity(17, 17, 17, '123', 17, 17, 17, ...)
     "True" .eq. "True" : True
    va.SetFreeformOpacity(fails[0])
     "True" .eq. "True" : True
    va.SetFreeformOpacity(fails[1])
     "True" .eq. "True" : True
    va.SetFreeformOpacity(fails[2])
     "True" .eq. "True" : True
    va.SetFreeformOpacity(fails[3])
     "True" .eq. "True" : True
    va.SetFreeformOpacity(fails[4])
     "True" .eq. "True" : True
    Assignment to intArray member, "reflections", (of ReflectAttributes())
    ra.reflections=0,1,0,1,0,1,0,1
     "True" .eq. "True" : True
    ra.reflections=0, 1, None, 1, 0, 1, 0, 1
     "True" .eq. "True" : True
    ra.reflections=0, 1, (1+2j), 1, 0, 1, 0, 1
     "True" .eq. "True" : True
    ra.reflections=0, 1, [2, 4, 6], 1, 0, 1, 0, 1
     "True" .eq. "True" : True
    ra.reflections=0, 1, 2147483648, 1, 0, 1, 0, 1
     "True" .eq. "True" : True
    ra.reflections=0, 1, '123', 1, 0, 1, 0, 1
     "True" .eq. "True" : True
    ra.reflections=0, 1, 0, 1, 0, 1, 0, 1, 1
     "True" .eq. "True" : True
    ra.reflections=0, 1, 0, 1, 0, 1, 0
     "True" .eq. "True" : True
    ra.SetReflections(0, 1, None, 1, 0, 1, 0, 1)
     "True" .eq. "True" : True
    ra.SetReflections(0, 1, (1+2j), 1, 0, 1, 0, 1)
     "True" .eq. "True" : True
    ra.SetReflections(0, 1, [2, 4, 6], 1, 0, 1, 0, 1)
     "True" .eq. "True" : True
    ra.SetReflections(0, 1, 2147483648, 1, 0, 1, 0, 1)
     "True" .eq. "True" : True
    ra.SetReflections(0, 1, '123', 1, 0, 1, 0, 1)
     "True" .eq. "True" : True
    ra.SetReflections(0, 1, 0, 1, 0, 1, 0, 1, 1)
     "True" .eq. "True" : True
    ra.SetReflections(0, 1, 0, 1, 0, 1, 0)
     "True" .eq. "True" : True
    ra.reflections=0, 1, 0, 1, 0, 1, 0, 1
     "True" .eq. "True" : True
    ra.reflections=-1, 100, -1, 100, -1, 100, -1, 100
     "True" .eq. "True" : True
    ra.reflections=0, True, False, 1, 0, 1, 0, 1
     "True" .eq. "True" : True
    ra.reflections=0, 1, 2147483647, 1, 0, 1, 0, 1
     "True" .eq. "True" : True
    ra.reflections=array([0, 1, 0, 1, 0, 1, 0, 1]
     "True" .eq. "True" : True
    ra.SetReflections(0, 1, 0, 1, 0, 1, 0, 1)
     "True" .eq. "True" : True
    ra.SetReflections(-1, 100, -1, 100, -1, 100, -1, 100)
     "True" .eq. "True" : True
    ra.SetReflections(0, True, False, 1, 0, 1, 0, 1)
     "True" .eq. "True" : True
    ra.SetReflections(0, 1, 2147483647, 1, 0, 1, 0, 1)
     "True" .eq. "True" : True
    ra.SetReflections(array([0, 1, 0, 1, 0, 1, 0, 1])
     "True" .eq. "True" : True
    Assignment to floatArray member, "center", (of RadialResampleAttributes())
    rra.center=0,1,2
     "True" .eq. "True" : True
    rra.center=0,1
     "True" .eq. "True" : True
    rra.center=0,1,2,3
     "True" .eq. "True" : True
    rra.center=0, 1
     "True" .eq. "True" : True
    rra.center=0, 1, 2, 3
     "True" .eq. "True" : True
    rra.center=0, None, 2
     "True" .eq. "True" : True
    rra.center=0, (1+2j), 2
     "True" .eq. "True" : True
    rra.center=0, [2, 4, 6], 2
     "True" .eq. "True" : True
    rra.center=0, '123', 2
     "True" .eq. "True" : True
    rra.center=0, 3.402823e+39, 2
     "True" .eq. "True" : True
    rra.SetCenter(0, 1)
     "True" .eq. "True" : True
    rra.SetCenter(0, 1, 2, 3)
     "True" .eq. "True" : True
    rra.SetCenter(0, None, 2)
     "True" .eq. "True" : True
    rra.SetCenter(0, (1+2j), 2)
     "True" .eq. "True" : True
    rra.SetCenter(0, [2, 4, 6], 2)
     "True" .eq. "True" : True
    rra.SetCenter(0, '123', 2)
     "True" .eq. "True" : True
    rra.SetCenter(0, 3.402823e+39, 2)
     "True" .eq. "True" : True
    rra.center=1, 2, 3
     "True" .eq. "True" : True
    rra.center=1.1, 2.2, 3.3
     "True" .eq. "True" : True
    rra.center=2, 4, 6
     "True" .eq. "True" : True
    rra.center=1, True, 3
     "True" .eq. "True" : True
    rra.center=1, False, 3
     "True" .eq. "True" : True
    rra.center=1, 3.40282e+37, 3
     "True" .eq. "True" : True
    rra.center=array([1.1, 2.2, 3.3]
     "True" .eq. "True" : True
    rra.SetCenter(1, 2, 3)
     "True" .eq. "True" : True
    rra.SetCenter(1.1, 2.2, 3.3)
     "True" .eq. "True" : True
    rra.SetCenter(2, 4, 6)
     "True" .eq. "True" : True
    rra.SetCenter(1, True, 3)
     "True" .eq. "True" : True
    rra.SetCenter(1, False, 3)
     "True" .eq. "True" : True
    rra.SetCenter(1, 3.40282e+37, 3)
     "True" .eq. "True" : True
    rra.SetCenter(array([1.1, 2.2, 3.3])
     "True" .eq. "True" : True
    Assignment to doubleArray member, "materialProperties", (of VolumeAttributes())
    va.materialProperties=0,1,2,3
     "True" .eq. "True" : True
    va.materialProperties=0,1,2
     "True" .eq. "True" : True
    va.materialProperties=0,1,2,3,4
     "True" .eq. "True" : True
    va.materialProperties=0, 1
     "True" .eq. "True" : True
    va.materialProperties=0, 1, 2, 3, 4
     "True" .eq. "True" : True
    va.materialProperties=0, None, 2, 3
     "True" .eq. "True" : True
    va.materialProperties=0, (1+2j), 2, 3
     "True" .eq. "True" : True
    va.materialProperties=0, [2, 4, 6], 2, 3
     "True" .eq. "True" : True
    va.materialProperties=0, '123', 2, 3
     "True" .eq. "True" : True
    va.SetMaterialProperties(0, 1)
     "True" .eq. "True" : True
    va.SetMaterialProperties(0, 1, 2, 3, 4)
     "True" .eq. "True" : True
    va.SetMaterialProperties(0, None, 2, 3)
     "True" .eq. "True" : True
    va.SetMaterialProperties(0, (1+2j), 2, 3)
     "True" .eq. "True" : True
    va.SetMaterialProperties(0, [2, 4, 6], 2, 3)
     "True" .eq. "True" : True
    va.SetMaterialProperties(0, '123', 2, 3)
     "True" .eq. "True" : True
    va.materialProperties=1, 2, 3, 4
     "True" .eq. "True" : True
    va.materialProperties=1.1, 2.2, 3.3, 4.4
     "True" .eq. "True" : True
    va.materialProperties=1, True, 3, 4
     "True" .eq. "True" : True
    va.materialProperties=1, False, 3, 4
     "True" .eq. "True" : True
    va.SetMaterialProperties(1, 2, 3, 4)
     "True" .eq. "True" : True
    va.SetMaterialProperties(1.1, 2.2, 3.3, 4.4)
     "True" .eq. "True" : True
    va.SetMaterialProperties(1, True, 3, 4)
     "True" .eq. "True" : True
    va.SetMaterialProperties(1, False, 3, 4)
     "True" .eq. "True" : True
    va.SetMaterialProperties(array([1.1, 2.2, 3.3, 4.4])
     "True" .eq. "True" : True
    ColorAttribute stuff
    ca.color=0, 1, 2
     "True" .eq. "True" : True
    ca.color=0, 1, 2, 3, 4
     "True" .eq. "True" : True
    ca.color=0, None, 2, 3
     "True" .eq. "True" : True
    ca.color=0, (1+2j), 2, 3
     "True" .eq. "True" : True
    ca.color=0, [2, 4, 6], 2, 3
     "True" .eq. "True" : True
    ca.color=0, '123', 2, 3
     "True" .eq. "True" : True
    ca.color=0, -1, 2, 3
     "True" .eq. "True" : True
    ca.color=0, 256, 2, 3
     "True" .eq. "True" : True
    ca.SetColor(0, 1, 2)
     "True" .eq. "True" : True
    ca.SetColor(0, 1, 2, 3, 4)
     "True" .eq. "True" : True
    ca.SetColor(0, None, 2, 3)
     "True" .eq. "True" : True
    ca.SetColor(0, (1+2j), 2, 3)
     "True" .eq. "True" : True
    ca.SetColor(0, [2, 4, 6], 2, 3)
     "True" .eq. "True" : True
    ca.SetColor(0, '123', 2, 3)
     "True" .eq. "True" : True
    ca.SetColor(0, -1, 2, 3)
     "True" .eq. "True" : True
    ca.SetColor(0, 256, 2, 3)
     "True" .eq. "True" : True
    cla.AddColors
     "True" .eq. "True" : True
    cla.colors
     "True" .eq. "True" : True
    cla.GetColors(0)
     "True" .eq. "True" : True
    cla.GetColors(2)
     "True" .eq. "True" : True
    behavior of dir()
    dir()
     "True" .eq. "True" : True
    behavior of help()
    help(AddPlot)
     "True" .eq. "True" : True
    help(CreateDatabaseCorrelation)
     "True" .eq. "True" : True
    help(SILRestriction)
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_atts_assign_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_atts_assign_py.html new file mode 100644 index 000000000..ef2410bab --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_atts_assign_py.html @@ -0,0 +1,1211 @@ +unit/atts_assign.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  atts_assign.py
    +#
    +#  Tests: Behavior of assignment for attribute objects. Ensures good cases
    +#  succeed and bad cases fail with specific python exceptions. Tests variety
    +#  of types present in members of VisIt attribute objects. Tests both
    +#  assignment usage (e.g. atts.memberName=...) and setter function usage
    +#  (e.g. atts.SetMemberName(...))
    +#
    +#  Mark C. Miller, Tue Jun  8 15:51:59 PDT 2021
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Tue July 27, 2021
    +#    Assigning Max32BitInt+1 to int on Windows causes TypeError, not
    +#    ValueError, so change expected results in those cases.
    +#
    +#    Kathleen Biagas, Friday Feb 9, 2024
    +#    Manually skipping some dir() and help() tests that fail with
    +#    Python 3.9.18 until #19264 is addressed.
    +#
    +# ----------------------------------------------------------------------------
    +
    +import copy, io, numpy, sys
    +
    +# Some useful global variables
    +X = [2,4,6]
    +NumPy2Int = numpy.array([1,2])
    +NumPy2Flt = numpy.array([1.1,2.2])
    +NumPy3Int = numpy.array([1,2,3])
    +NumPy3Flt = numpy.array([1.1,2.2,3.3])
    +NumPy4Int = numpy.array([1,2,3,4])
    +NumPy4Flt = numpy.array([1.1,2.2,3.3,4.4])
    +Max32BitInt = 2147483647
    +Max32BitInt1 = Max32BitInt+1
    +MaxIntAs32BitFloat = 16777216
    +MaxIntAs32BitFloat1 = MaxIntAs32BitFloat+1
    +MaxIntAs64BitFloat = 9007199254740992
    +MaxIntAs64BitFloat1 = MaxIntAs64BitFloat+1
    +Max32BitFloat  = 3.402823E+38
    +Max32BitFloatA = 3.402820E+37 # One order mag down from Max
    +Max32BitFloatB = 3.402823E+39 # One order mag up from Max
    +Min32BitFloat = 1.175494E-38
    +
    +# version of repr that strips parens at end
    +def repr2(s):
    +    return repr(s).lstrip('(').rstrip(')')
    +
    +def TestAssignmentToTuple():
    +    TestSection('Assignment to tuple, "point1", member (of CylinderAttributes())')
    +
    +    ca = CylinderAttributes()
    +
    +    # Non-existent member name 'point'
    +    try:
    +        ca.point = 1,2,3
    +        TestFOA('ca.point=1,2,3', LINE())
    +    except NameError:
    +        TestPOA('ca.point=1,2,3')
    +        pass
    +    except:
    +        TestFOA('ca.point=1,2,3', LINE())
    +        pass
    +
    +    # Non-existent member name 'point'
    +    try:
    +        ca.SetPoint(1,2,3)
    +        TestFOA('ca.SetPoint(1,2,3)', LINE())
    +    except ValueError:
    +        TestPOA('ca.SetPoint(1,2,3)')
    +        pass
    +    except:
    +        TestFOA('ca.SetPoint(1,2,3)', LINE())
    +        pass
    +
    +    # CSV too short
    +    try:
    +        ca.point1 = 1,2
    +        TestFOA('ca.point1=1,2', LINE())
    +    except TypeError:
    +        TestPOA('ca.point1=1,2')
    +        pass
    +    except:
    +        TestFOA('ca.point1=1,2', LINE())
    +        pass
    +
    +    # CSV too long
    +    try:
    +        ca.point1 = 1,2,3,4
    +        TestFOA('ca.point1=1,2,3,4', LINE())
    +    except TypeError:
    +        TestPOA('ca.point1=1,2,3,4')
    +        pass
    +    except:
    +        TestFOA('ca.point1=1,2,3,4', LINE())
    +        pass
    +
    +    # The above cases can't be put in a loop. Put remaining cases in a loop
    +    fails = [(1,2), (1,2,3,4), '123', (1,1+2j,3), (1,X,3), (1,'b',3), (1,None,3), NumPy2Flt, NumPy4Flt]
    +    for i in range(len(fails)):
    +        try:
    +            ca.point1 = fails[i]
    +            TestFOA('ca.point1=%s'%repr2(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('ca.point1=%s'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.point1=%s'%repr2(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            ca.SetPoint1(fails[i])
    +            TestFOA('ca.SetPoint1(%s)'%repr2(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('ca.SetPoint1(%s)'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.SetPoint1(%s)'%repr2(fails[i]), LINE())
    +            pass
    +
    +    try:
    +        ca.point1 = 1,2,3
    +        TestPOA('ca.point1=1,2,3')
    +    except:
    +        TestFOA('ca.point1=1,2,3', LINE())
    +        pass
    +
    +    works = [(1,2,3), (1.1,2.2,3.3), tuple(X), NumPy3Int, NumPy3Flt]
    +    for i in range(len(works)):
    +        try:
    +            ca.point1 = works[i]
    +            TestPOA('ca.point1=%s'%repr2(works[i]))
    +        except:
    +            TestFOA('ca.point1=%s'%repr2(works[i]), LINE())
    +            pass
    +
    +    for i in range(len(works)):
    +        try:
    +            ca.SetPoint1(*works[i])
    +            TestPOA('ca.SetPoint1(%s)'%repr2(works[i]))
    +        except:
    +            TestFOA('ca.SetPoint1(%s)'%repr2(works[i]), LINE())
    +            pass
    +
    +def TestAssignmentToBool():
    +    TestSection('Assignment to bool member, "inverse", (of CylinderAttributes())')
    +
    +    ca = CylinderAttributes()
    +
    +    try:
    +        ca.inverse = 1,2
    +        TestFOA('ca.inverse=1,2', LINE())
    +    except TypeError:
    +        TestPOA('ca.inverse=1,2')
    +        pass
    +    except:
    +        TestFOA('ca.inverse=1,2', LINE())
    +        pass
    +
    +    fails =  [    '123',      1+2j,         X,      None,          5]
    +    excpts = [TypeError, TypeError, TypeError, TypeError, ValueError]
    +    for i in range(len(fails)):
    +        try:
    +            ca.inverse = fails[i]
    +            TestFOA('ca.inverse=%s'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ca.inverse=%s'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.inverse=%s'%repr(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            ca.SetInverse(fails[i])
    +            TestFOA('ca.SetInverse(%s)'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ca.SetInverse(%s)'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.SetInverse(%s)'%repr(fails[i]), LINE())
    +            pass
    +
    +    works = [0, 1, True, False]
    +    for i in range(len(works)):
    +        try:
    +            ca.inverse = works[i]
    +            TestPOA('ca.inverse=%s'%repr(works[i]))
    +        except:
    +            TestFOA('ca.inverse=%s'%repr(works[i]), LINE())
    +
    +    for i in range(len(works)):
    +        try:
    +            ca.SetInverse(works[i])
    +            TestPOA('ca.SetInverse(%s)'%repr(works[i]))
    +        except:
    +            TestFOA('ca.SetInverse(%s)'%repr(works[i]), LINE())
    +
    +def TestAssignmentToInt():
    +    TestSection('Assignment to int member, "samplesPerRay", (of VolumeAttributes())')
    +
    +    va = VolumeAttributes()
    +
    +    try:
    +        va.samplesPerRay = 1,2
    +        TestFOA('va.samplesPerRay=1,2', LINE())
    +    except TypeError:
    +        TestPOA('va.samplesPerRay=1,2')
    +        pass
    +    except:
    +        TestFOA('va.samplesPerRay=1,2', LINE())
    +        pass
    +
    +    fails =  [    '123',      1+2j,      None,         X, Max32BitInt1]
    +    if sys.platform.startswith("win"):
    +        excpts = [TypeError, TypeError, TypeError, TypeError, TypeError]
    +    else:
    +        excpts = [TypeError, TypeError, TypeError, TypeError, ValueError]
    +    for i in range(len(fails)):
    +        try:
    +            va.samplesPerRay = fails[i]
    +            TestFOA('va.samplesPerRay=%s'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('va.samplesPerRay=%s'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('va.samplesPerRay=%s'%repr(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            va.SetSamplesPerRay(fails[i])
    +            TestFOA('va.SetSamplesPerRay(%s)'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('va.SetSamplesPerRay(%s)'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('va.SetSamplesPerRay(%s)'%repr(fails[i]), LINE())
    +            pass
    +
    +    works = [0, 1, -1, 5, True, False, Max32BitInt]
    +    for i in range(len(works)):
    +        try:
    +            va.samplesPerRay = works[i]
    +            TestPOA('va.samplesPerRay=%s'%repr(works[i]))
    +        except:
    +            TestFOA('va.samplesPerRay=%s'%repr(works[i]), LINE())
    +
    +    for i in range(len(works)):
    +        try:
    +            va.SetSamplesPerRay(works[i])
    +            TestPOA('va.SetSamplesPerRay(%s)'%repr(works[i]))
    +        except:
    +            TestFOA('va.SetSamplesPerRay(%s)'%repr(works[i]), LINE())
    +
    +def TestAssignmentToFloat():
    +    TestSection('Assignment to float member, "opacityAttenuation", (of VolumeAttributes())')
    +
    +    va = VolumeAttributes()
    +
    +    try:
    +        va.opacityAttenuation = 1,2
    +        TestFOA('va.opacityAttenuation=1,2', LINE())
    +    except TypeError:
    +        TestPOA('va.opacityAttenuation=1,2')
    +        pass
    +    except:
    +        TestFOA('va.opacityAttenuation=1,2', LINE())
    +        pass
    +
    +    fails =  [    '123',      1+2j,      None,         X, Max32BitFloatB]
    +    excpts = [TypeError, TypeError, TypeError, TypeError,       ValueError]
    +    for i in range(len(fails)):
    +        try:
    +            va.opacityAttenuation = fails[i]
    +            TestFOA('va.opacityAttenuation=%s'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('va.opacityAttenuation=%s'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('va.opacityAttenuation=%s'%repr(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            va.SetOpacityAttenuation(fails[i])
    +            TestFOA('va.SetOpacityAttenuation(%s)'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('va.SetOpacityAttenuation(%s)'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('va.SetOpacityAttenuation(%s)'%repr(fails[i]), LINE())
    +            pass
    +
    +    works = [0, 1, -1, 0.3, Max32BitFloatA, True, False]
    +    for i in range(len(works)):
    +        try:
    +            va.opacityAttenuation = works[i]
    +            TestPOA('va.opacityAttenuation=%s'%repr(works[i]))
    +        except:
    +            TestFOA('va.opacityAttenuation=%s'%repr(works[i]), LINE())
    +
    +    for i in range(len(works)):
    +        try:
    +            va.SetOpacityAttenuation(works[i])
    +            TestPOA('va.SetOpacityAttenuation(%s)'%repr(works[i]))
    +        except:
    +            TestFOA('va.SetOpacityAttenuation(%s)'%repr(works[i]), LINE())
    +
    +def TestAssignmentToDouble():
    +    TestSection('Assignment to double member, "radius", (of CylinderAttributes())')
    +
    +    ca = CylinderAttributes()
    +
    +    try:
    +        ca.radius = 1,2
    +        TestFOA('ca.radius=1,2', LINE())
    +    except TypeError:
    +        TestPOA('ca.radius=1,2')
    +        pass
    +    except:
    +        TestFOA('ca.radius=1,2', LINE())
    +        pass
    +
    +    fails = ['123', 1+2j, None, X]
    +    for i in range(len(fails)):
    +        try:
    +            ca.radius = fails[i]
    +            TestFOA('ca.radius=%s'%repr(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('ca.radius=%s'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.radius=%s'%repr(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            ca.SetRadius(fails[i])
    +            TestFOA('ca.SetRadius(%s)'%repr(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('ca.SetRadius(%s)'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.SetRadius(%s)'%repr(fails[i]), LINE())
    +            pass
    +
    +    works = [0, 1, -1, 5.5, 1.1E-479, 1.1E+479, True, False]
    +    for i in range(len(works)):
    +        try:
    +            ca.radius = works[i]
    +            TestPOA('ca.radius=%s'%repr(works[i]))
    +        except:
    +            TestFOA('ca.radius=%s'%repr(works[i]), LINE())
    +
    +    for i in range(len(works)):
    +        try:
    +            ca.SetRadius(works[i])
    +            TestPOA('ca.SetRadius(%s)'%repr(works[i]))
    +        except:
    +            TestFOA('ca.SetRadius(%s)'%repr(works[i]), LINE())
    +
    +def TestAssignmentToString():
    +    TestSection('Assignment to string member, "designator", (of CurveAttributes())')
    +
    +    ca = CurveAttributes()
    +
    +    try:
    +        ca.designator = "123","abc"
    +        TestFOA('ca.designator="123","abc"', LINE())
    +    except TypeError:
    +        TestPOA('ca.designator="123","abc"')
    +        pass
    +    except:
    +        TestFOA('ca.designator="123","abc"', LINE())
    +        pass
    +
    +    fails = [0, 1, 1.1, 1+2j, None, X]
    +    for i in range(len(fails)):
    +        try:
    +            ca.designator = fails[i]
    +            TestFOA('ca.designator=%s'%repr(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('ca.designator=%s'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.designator=%s'%repr(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            ca.SetDesignator(fails[i])
    +            TestFOA('ca.SetDesignator(%s)'%repr(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('ca.SetDesignator(%s)'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.SetDesignator(%s)'%repr(fails[i]), LINE())
    +            pass
    +
    +    works = ['123', 'abc', '']
    +    for i in range(len(works)):
    +        try:
    +            ca.designator = works[i]
    +            TestPOA('ca.designator=%s'%repr(works[i]))
    +        except:
    +            TestFOA('ca.designator=%s'%repr(works[i]), LINE())
    +
    +    for i in range(len(works)):
    +        try:
    +            ca.SetDesignator(works[i])
    +            TestPOA('ca.SetDesignator(%s)'%repr(works[i]))
    +        except:
    +            TestFOA('ca.SetDesignator(%s)'%repr(works[i]), LINE())
    +
    +def TestAssignmentToGlyphType():
    +    TestSection('Assignment to GlyphType member, "pointType", (of MeshAttributes())')
    +
    +    ma = MeshAttributes()
    +
    +    # Test direct assignment with = operator
    +    try:
    +        ma.pointType = 1
    +        TestPOA('ma.pointType=1')
    +    except:
    +        TestFOA('ma.pointType=1', LINE())
    +        pass
    +
    +    fails =  [    '123',      1+2j,      None,         X,         -1, 123123123123123123123123123123]
    +    excpts = [TypeError, TypeError, TypeError, TypeError, ValueError,                      TypeError]
    +    for i in range(len(fails)):
    +        try:
    +            ma.pointType = fails[i]
    +            TestFOA('ma.pointType=%s'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ma.pointType=%s'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ma.pointType=%s'%repr(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            ma.SetPointType(fails[i])
    +            TestFOA('ma.SetPointType(%s)'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ma.SetPointType(%s)'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ma.SetPointType(%s)'%repr(fails[i]), LINE())
    +            pass
    +
    +    works = [0, 1, 5, True, False, ma.Point]
    +    for i in range(len(works)):
    +        try:
    +            ma.pointType = works[i]
    +            TestPOA('ma.pointType=%s'%repr(works[i]))
    +        except:
    +            TestFOA('ma.pointType=%s'%repr(works[i]), LINE())
    +
    +    for i in range(len(works)):
    +        try:
    +            ma.SetPointType(works[i])
    +            TestPOA('ma.SetPointType(%s)'%repr(works[i]))
    +        except:
    +            TestFOA('ma.SetPointType(%s)'%repr(works[i]), LINE())
    +
    +def TestAssignmentToEnum():
    +    TestSection('Assignment to Enum member, "smoothingLevel", (of MeshAttributes())')
    +
    +    ma = MeshAttributes()
    +
    +    # Test direct assignment with = operator
    +    try:
    +        ma.smoothingLevel = 1
    +        TestPOA('ma.smoothingLevel=1')
    +    except:
    +        TestFOA('ma.smoothingLevel=1', LINE())
    +        pass
    +
    +    fails  = [    '123',      1+2j,      None,         X,         -1,  123123123, 123123123123123123123123123123]
    +    excpts = [TypeError, TypeError, TypeError, TypeError, ValueError, ValueError,                      TypeError]
    +    for i in range(len(fails)):
    +        try:
    +            ma.smoothingLevel = fails[i]
    +            TestFOA('ma.smoothingLevel=%s'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ma.smoothingLevel=%s'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ma.smoothingLevel=%s'%repr(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            ma.SetSmoothingLevel(fails[i])
    +            TestFOA('ma.SetSmoothingLevel(%s)'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ma.SetSmoothingLevel(%s)'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ma.SetSmoothingLevel(%s)'%repr(fails[i]), LINE())
    +            pass
    +
    +    works = [0, 1, 2, True, False, ma.Fast]
    +    for i in range(len(works)):
    +        try:
    +            ma.smoothingLevel = works[i]
    +            TestPOA('ma.smoothingLevel=%s'%repr(works[i]))
    +        except:
    +            TestFOA('ma.smoothingLevel=%s'%repr(works[i]), LINE())
    +
    +    for i in range(len(works)):
    +        try:
    +            ma.SetSmoothingLevel(works[i])
    +            TestPOA('ma.SmoothingLevel(%s)'%repr(works[i]))
    +        except:
    +            TestFOA('ma.SetSmoothingLevel(%s)'%repr(works[i]), LINE())
    +
    +def TestAssignmentToUCharVector():
    +    TestSection('Assignment to ucharVector member, "changedColors",  (of MultiCurveAttributes())')
    +
    +    mca = MultiCurveAttributes()
    +
    +    # Test direct assignment with = operator
    +    try:
    +        mca.changedColors = 1,2,3
    +        TestPOA('mca.changedColors=1,2,3')
    +    except:
    +        TestFOA('mca.changedColors=1,2,3', LINE())
    +        pass
    +
    +    fails = [(1,123123123123123123123123123123,3), (1,1+2j,3), (1,X,3), (1,'b',3), (1,None,3), ('123',)]
    +    for i in range(len(fails)):
    +        try:
    +            mca.changedColors = fails[i]
    +            TestFOA('mca.changedColors=%s'%repr2(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('mca.changedColors=%s'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('mca.changedColors=%s'%repr2(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            mca.SetChangedColors(*fails[i])
    +            TestFOA('mca.SetChangedColors(%s)'%repr2(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('mca.SetChangedColors(%s)'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('mca.SetChangedColors(%s)'%repr2(fails[i]), LINE())
    +            pass
    +
    +    works = [(1,2,3), tuple(X), (1,True,3), (1,False,3)]
    +    for i in range(len(works)):
    +        try:
    +            mca.changedColors = works[i]
    +            TestPOA('mca.changedColors=%s'%repr2(works[i]))
    +        except:
    +            TestFOA('mca.changedColors=%s'%repr2(works[i]), LINE())
    +
    +    works += [NumPy3Int] # NP arrays only work via deref operator
    +    for i in range(len(works)):
    +        try:
    +            mca.SetChangedColors(*works[i])
    +            TestPOA('mca.SetChangedColors(%s)'%repr2(works[i]))
    +        except:
    +            TestFOA('mca.SetChangedColors(%s)'%repr2(works[i]), LINE())
    +
    +def TestAssignmentToIntVector():
    +    TestSection('Assignment to intVector member, "index", (of OnionPeelAttributes())')
    +
    +    opa = OnionPeelAttributes()
    +
    +    # Test direct assignment with = operator
    +    try:
    +        opa.index = 1,2,3
    +        TestPOA('opa.index=1,2,3')
    +    except:
    +        TestFOA('opa.index=1,2,3', LINE())
    +        pass
    +
    +    fails =  [(Max32BitInt1,), (1+2j,), ('b',), (None,), (1,Max32BitInt1,3),
    +              (1,1+2j,3), (1,X,3), (1,'b',3), (1,None,3)]
    +    if sys.platform.startswith("win"):
    +        excpts = [TypeError, TypeError, TypeError, TypeError, TypeError,
    +                  TypeError, TypeError, TypeError, TypeError]
    +    else:
    +        excpts = [ValueError, TypeError, TypeError, TypeError, ValueError,
    +                  TypeError, TypeError, TypeError, TypeError]
    +    for i in range(len(fails)):
    +        try:
    +            opa.index = fails[i]
    +            TestFOA('opa.index=%s'%repr2(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('opa.index=%s'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('opa.index=%s'%repr2(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            opa.SetIndex(*fails[i])
    +            TestFOA('opa.SetIndex(%s)'%repr2(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('opa.SetIndex(%s)'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('opa.SetIndex(%s)'%repr2(fails[i]), LINE())
    +            pass
    +
    +    works = [(1,2,3), X, tuple(X), (1,True,3), (1,False,3), (1,Max32BitInt,3)]
    +    for i in range(len(works)):
    +        try:
    +            opa.index = works[i]
    +            TestPOA('opa.index=%s'%repr2(works[i]))
    +        except:
    +            TestFOA('opa.index=%s'%repr2(works[i]), LINE())
    +
    +    works += [NumPy3Int] # NP Arrays work only via deref operator
    +    for i in range(len(works)):
    +        try:
    +            opa.SetIndex(*works[i])
    +            TestPOA('opa.SetIndex(%s)'%repr2(works[i]))
    +        except:
    +            TestFOA('opa.SetIndex(%s)'%repr2(works[i]), LINE())
    +
    +def TestAssignmentToDoubleVector():
    +    TestSection('Assignment to doubleVector member, "values", (of ContourAttributes())')
    +
    +    ca = ContourAttributes()
    +
    +    # Test direct assignment with = operator
    +    try:
    +        ca.contourValue = 1,2,3
    +        TestPOA('ca.contourValue=1,2,3')
    +    except:
    +        TestFOA('ca.contourValue=1,2,3', LINE())
    +        pass
    +
    +    fails = [(1+2j,), ('b',), (None,), (1,1+2j,3), (1,X,3), (1,'b',3), (1,None,3)]
    +    for i in range(len(fails)):
    +        try:
    +            ca.contourValue = fails[i]
    +            TestFOA('ca.contourValue=%s'%repr2(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('ca.contourValue=%s'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.contourValue=%s'%repr2(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            ca.SetContourValue(*fails[i])
    +            TestFOA('ca.SetContourValue(%s)'%repr2(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('ca.SetContourValue(%s)'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.SetContourValue(%s)'%repr2(fails[i]), LINE())
    +            pass
    +
    +    works = [(1,2,3), X, tuple(X), (1,True,3), (1,False,3)]
    +    for i in range(len(works)):
    +        try:
    +            ca.contourValue = works[i]
    +            TestPOA('ca.contourValue=%s'%repr2(works[i]))
    +        except:
    +            TestFOA('ca.contourValue=%s'%repr2(works[i]), LINE())
    +
    +    works += [NumPy3Flt] # NP Arrays work only via deref operator
    +    for i in range(len(works)):
    +        try:
    +            ca.SetContourValue(*works[i])
    +            TestPOA('ca.SetContourValue(%s)'%repr2(works[i]))
    +        except:
    +            TestFOA('ca.SetContourValue(%s)'%repr2(works[i]), LINE())
    +
    +def TestAssignmentToUCharArray():
    +    TestSection('Assignment to ucharArray member, "freeformOpacity", (of VolumeAttributes())')
    +    arr = [17,]*256
    +
    +    va = VolumeAttributes()
    +
    +    # Test assigning to individual entry via direct (operator =) assignment
    +    try:
    +        va.freeformOpacity = 3,17
    +        TestPOA('va.freeformOpacity=3,17')
    +    except:
    +        TestFOA('va.freeformOpacity=3,17', LINE())
    +        pass
    +
    +    # Test assigning to individual entry via Set method 
    +    try:
    +        va.SetFreeformOpacity(3,17)
    +        TestPOA('va.SetFreeformOpacity(3,17)')
    +    except:
    +        TestFOA('va.SetFreeformOpacity(3,17)', LINE())
    +        pass
    +
    +    # Test assigning to whole array via (operator =) assignment
    +    try:
    +        va.freeformOpacity = tuple(arr)
    +        TestPOA('va.freeformOpacity=tuple(arr)')
    +    except:
    +        TestFOA('va.freeformOpacity=tuple(arr)', LINE())
    +        pass
    +
    +    # Test assigning to whole array via Set method 
    +    try:
    +        va.SetFreeformOpacity(*tuple(arr))
    +        TestPOA('va.SetFreeformOpacity(*tuple(arr))')
    +    except:
    +        TestFOA('va.SetFreeformOpacity(*tuple(arr))', LINE())
    +        pass
    +
    +    # Test assigning to individual entry via direct (operator =) assignment
    +    # failures for type of second argument (color value)
    +    fails =  [ (3,None),  (3,1+2j),     (3,X), (3,'123'), (None,17), (1+2j,17),    (X,17),('123',17),    (-3,17),   (3,1700)]
    +    excpts = [TypeError, TypeError, TypeError, TypeError, TypeError, TypeError, TypeError, TypeError, IndexError, ValueError]
    +    for i in range(len(fails)):
    +        try:
    +            va.freeformOpacity = fails[i][0],fails[i][1]
    +            TestFOA('va.freeformOpacity=%s,%s'%(repr(fails[i][0]),repr(fails[i][1])), LINE())
    +        except excpts[i]:
    +            TestPOA('va.freeformOpacity=%s,%s'%(repr(fails[i][0]),repr(fails[i][1])))
    +            pass
    +        except:
    +            TestFOA('va.freeformOpacity=%s,%s'%(repr(fails[i][0]),repr(fails[i][1])), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            va.SetFreeformOpacity(fails[i][0],fails[i][1])
    +            TestFOA('va.SetFreeformOpacity(%s,%s)'%(repr(fails[i][0]),repr(fails[i][1])), LINE())
    +        except excpts[i]:
    +            TestPOA('va.SetFreeformOpacity(%s,%s)'%(repr(fails[i][0]),repr(fails[i][1])))
    +            pass
    +        except:
    +            TestFOA('va.SetFreeformOpacity(%s,%s)'%(repr(fails[i][0]),repr(fails[i][1])), LINE())
    +            pass
    +
    +    # Test assigning to whole member via direct (operator =) assignment
    +    try:
    +        va.freeformOpacity = (17,)*256
    +        TestPOA('va.freeformOpacity=(17,)*256')
    +    except:
    +        TestFOA('va.freeformOpacity=(17,)*256', LINE())
    +        pass
    +
    +    # Test assigning to whole member via Set method 
    +    try:
    +        va.SetFreeformOpacity(*(17,)*256)
    +        TestPOA('va.SetFreeformOpacity((17,)*256)')
    +    except:
    +        TestFOA('va.SetFreeformOpacity((17,)*256)', LINE())
    +        pass
    +
    +    # Test assigning to whole member via direct (operator =) assignment
    +    # failures for type of first argument (index)
    +    arr1 = copy.deepcopy(arr)
    +    arr2 = copy.deepcopy(arr)
    +    arr3 = copy.deepcopy(arr)
    +    arr4 = copy.deepcopy(arr)
    +    arr5 = copy.deepcopy(arr)
    +    arr1[3] = None
    +    arr2[3] = 1+2j
    +    arr3[3] = X
    +    arr4[3] = (1,2,3)
    +    arr5[3] = '123'
    +    fails = [tuple(arr1), tuple(arr2), tuple(arr3), tuple(arr4), tuple(arr5)]
    +    for i in range(len(fails)):
    +        try:
    +            va.freeformOpacity = fails[i]
    +            TestFOA('va.freeformOpacity=%s'%repr(fails[i][:7]).replace(')',', ...'), LINE())
    +        except TypeError:
    +            TestPOA('va.freeformOpacity=%s'%repr(fails[i][:7]).replace(')',', ...'))
    +            pass
    +        except:
    +            TestFOA('va.freeformOpacity=%s'%repr(fails[i][:7]).replace(')',', ...'), LINE())
    +            pass
    +
    +    # Test star-deref of tuple
    +    for i in range(len(fails)):
    +        try:
    +            va.SetFreeformOpacity(*fails[i])
    +            TestFOA('va.SetFreeformOpacity%s'%repr(fails[i][:7]).replace(')',', ...)'), LINE())
    +        except TypeError:
    +            TestPOA('va.SetFreeformOpacity%s'%repr(fails[i][:7]).replace(')',', ...)'))
    +            pass
    +        except:
    +            TestFOA('va.SetFreeformOpacity%s'%repr(fails[i][:7]).replace(')',', ...)'), LINE())
    +            pass
    +
    +    # Test just passing the tuple
    +    for i in range(len(fails)):
    +        try:
    +            va.SetFreeformOpacity(fails[i])
    +            TestFOA('va.SetFreeformOpacity(fails[%d])'%i, LINE())
    +        except TypeError:
    +            TestPOA('va.SetFreeformOpacity(fails[%d])'%i)
    +            pass
    +        except:
    +            TestFOA('va.SetFreeformOpacity(fails[%d])'%i, LINE())
    +            pass
    +
    +def TestAssignmentToIntArray():
    +    TestSection('Assignment to intArray member, "reflections", (of ReflectAttributes())')
    +
    +    ra = ReflectAttributes()
    +
    +    # Test assigning via (operator =) assignment
    +    try:
    +        ra.reflections = 0,1,0,1,0,1,0,1
    +        TestPOA('ra.reflections=0,1,0,1,0,1,0,1')
    +    except:
    +        TestFOA('ra.reflections=0,1,0,1,0,1,0,1', LINE())
    +        pass
    +
    +    fails =  [(0,1,None,1,0,1,0,1), (0,1,1+2j,1,0,1,0,1), (0,1,X,1,0,1,0,1),
    +              (0,1,Max32BitInt1,1,0,1,0,1), (0,1,'123',1,0,1,0,1),
    +              (0,1,0,1,0,1,0,1,1), (0,1,0,1,0,1,0)]
    +    if sys.platform.startswith("win"):
    +        excpts = [TypeError, TypeError, TypeError, TypeError, TypeError, TypeError, TypeError]
    +    else:
    +        excpts = [TypeError, TypeError, TypeError, ValueError, TypeError, TypeError, TypeError]
    +    for i in range(len(fails)):
    +        try:
    +            ra.reflections = fails[i]
    +            TestFOA('ra.reflections=%s'%repr2(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ra.reflections=%s'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ra.reflections=%s'%repr2(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            ra.SetReflections(*fails[i])
    +            TestFOA('ra.SetReflections(%s)'%repr2(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ra.SetReflections(%s)'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ra.SetReflections(%s)'%repr2(fails[i]), LINE())
    +            pass
    +
    +    NumPyArray = numpy.array([0,1,0,1,0,1,0,1])
    +    works = [(0,1,0,1,0,1,0,1), (-1,100,-1,100,-1,100,-1,100), (0,True,False,1,0,1,0,1), (0,1,Max32BitInt,1,0,1,0,1), NumPyArray]
    +    for i in range(len(works)):
    +        try:
    +            ra.reflections = works[i]
    +            TestPOA('ra.reflections=%s'%repr2(works[i]))
    +        except:
    +            TestFOA('ra.reflections=%s'%repr2(works[i]), LINE())
    +
    +    for i in range(len(works)):
    +        try:
    +            ra.SetReflections(*works[i])
    +            TestPOA('ra.SetReflections(%s)'%repr2(works[i]))
    +        except:
    +            TestFOA('ra.SetReflections(%s)'%repr2(works[i]), LINE())
    +
    +def TestAssignmentToFloatArray():
    +    TestSection('Assignment to floatArray member, "center", (of RadialResampleAttributes())')
    +
    +    rra = RadialResampleAttributes()
    +
    +    # Test assigning via (operator =) assignment
    +    try:
    +        rra.center = 0,1,2
    +        TestPOA('rra.center=0,1,2')
    +    except:
    +        TestFOA('rra.center=0,1,2', LINE())
    +        pass
    +    try:
    +        rra.center = 0,1
    +        TestFOA('rra.center=0,1', LINE())
    +    except:
    +        TestPOA('rra.center=0,1')
    +        pass
    +    try:
    +        rra.center = 0,1,2,3
    +        TestFOA('rra.center=0,1,2,3', LINE())
    +    except:
    +        TestPOA('rra.center=0,1,2,3')
    +        pass
    +
    +    fails =  [(0,1), (0,1,2,3), (0,None,2), (0,1+2j,2), (0,X,2), (0,'123',2), (0, Max32BitFloatB,2)]
    +    excpts = [TypeError, TypeError, TypeError, TypeError, TypeError, TypeError, ValueError]
    +    for i in range(len(fails)):
    +        try:
    +            rra.center = fails[i]
    +            TestFOA('rra.center=%s'%repr2(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('rra.center=%s'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('rra.center=%s'%repr2(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            rra.SetCenter(*fails[i])
    +            TestFOA('rra.SetCenter(%s)'%repr2(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('rra.SetCenter(%s)'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('rra.SetCenter(%s)'%repr2(fails[i]), LINE())
    +            pass
    +
    +    works = [(1,2,3), (1.1,2.2,3.3), tuple(X), (1,True,3), (1,False,3), (1,Max32BitFloatA,3), NumPy3Flt]
    +    for i in range(len(works)):
    +        try:
    +            rra.center = works[i]
    +            TestPOA('rra.center=%s'%repr2(works[i]))
    +        except:
    +            TestFOA('rra.center=%s'%repr2(works[i]), LINE())
    +
    +    for i in range(len(works)):
    +        try:
    +            rra.SetCenter(*works[i])
    +            TestPOA('rra.SetCenter(%s)'%repr2(works[i]))
    +        except:
    +            TestFOA('rra.SetCenter(%s)'%repr2(works[i]), LINE())
    +
    +def TestAssignmentToDoubleArray():
    +    TestSection('Assignment to doubleArray member, "materialProperties", (of VolumeAttributes())')
    +
    +    va = VolumeAttributes()
    +
    +    # Test assigning via (operator =) assignment
    +    try:
    +        va.materialProperties = 0,1,2,3
    +        TestPOA('va.materialProperties=0,1,2,3')
    +    except:
    +        TestFOA('va.materialProperites=0,1,2,3', LINE())
    +        pass
    +    try:
    +        va.materialProperties = 0,1,2
    +        TestFOA('va.materialProperties=0,1,2', LINE())
    +    except:
    +        TestPOA('va.materialProperties=0,1,2')
    +        pass
    +    try:
    +        va.materialProperties = 0,1,2,3,4
    +        TestFOA('va.materialProperties=0,1,2,3,4', LINE())
    +    except:
    +        TestPOA('va.materialProperties=0,1,2,3,4')
    +        pass
    +
    +    fails = [(0,1), (0,1,2,3,4), (0,None,2,3), (0,1+2j,2,3), (0,X,2,3), (0,'123',2,3)]
    +    for i in range(len(fails)):
    +        try:
    +            va.materialProperties = fails[i]
    +            TestFOA('va.materialProperties=%s'%repr2(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('va.materialProperties=%s'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('va.materialProperties=%s'%repr2(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            va.SetMaterialProperties(*fails[i])
    +            TestFOA('va.SetMaterialProperties(%s)'%repr2(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('va.SetMaterialProperties(%s)'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('va.SetMaterialProperties(%s)'%repr2(fails[i]), LINE())
    +            pass
    +
    +    works = [(1,2,3,4), (1.1,2.2,3.3,4.4), (1,True,3,4), (1,False,3,4)]
    +    for i in range(len(works)):
    +        try:
    +            va.materialProperties = works[i]
    +            TestPOA('va.materialProperties=%s'%repr2(works[i]))
    +        except:
    +            TestFOA('va.materialProperties=%s'%repr2(works[i]), LINE())
    +
    +    NumPyArray = numpy.array([1.1,2.2,3.3,4.4])
    +    works += [NumPyArray]
    +    for i in range(len(works)):
    +        try:
    +            va.SetMaterialProperties(*works[i])
    +            TestPOA('va.SetMaterialProperties(%s)'%repr2(works[i]))
    +        except:
    +            TestFOA('va.SetMaterialProperties(%s)'%repr2(works[i]), LINE())
    +
    +def TestColorAttributeStuff():
    +    TestSection('ColorAttribute stuff')
    +
    +    cla = ColorAttributeList()
    +    ca = ColorAttribute()
    +
    +    fails = [(0,1,2), (0,1,2,3,4), (0,None,2,3), (0,1+2j,2,3), (0,X,2,3),
    +             (0,'123',2,3), (0,-1,2,3), (0,256,2,3)]
    +    excpts = [TypeError, TypeError, TypeError, TypeError, TypeError, TypeError, ValueError, ValueError]
    +    for i in range(len(fails)):
    +        try:
    +            ca.color = fails[i]
    +            TestFOA('ca.color=%s'%repr2(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ca.color=%s'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.color=%s'%repr2(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            ca.SetColor(*fails[i])
    +            TestFOA('ca.SetColor(%s)'%repr2(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ca.SetColor(%s)'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.SetColor(%s)'%repr2(fails[i]), LINE())
    +            pass
    +
    +    try:
    +        ca.color = (5,5,5,5)
    +        cla.AddColors(ca)
    +        ca.color = (255,0,0,255)
    +        cla.AddColors(ca)
    +        TestPOA('cla.AddColors')
    +    except:
    +        TestFOA('cla.AddColors', LINE())
    +        pass
    +
    +    try:
    +        cla.colors
    +        TestFOA('cla.colors', LINE())
    +    except NameError:
    +        TestPOA('cla.colors')
    +    except:
    +        TestFOA('cla.colors', LINE())
    +        pass
    +
    +    try:
    +        if cla.GetColors(0).color != (5,5,5,5) or cla.GetColors(1).color != (255,0,0,255):
    +           raise ValueError
    +        TestPOA('cla.GetColors(0)')
    +    except:
    +        TestFOA('cla.Getcolors(0)', LINE())
    +        pass
    +
    +    try:
    +        cla.GetColors(2)
    +        TestFOA('cla.Getcolors(2)', LINE())
    +    except ValueError:
    +        TestPOA('cla.GetColors(2)')
    +    except:
    +        TestFOA('cla.Getcolors(2)', LINE())
    +        pass
    +
    +def TestDirOutput(obj, names):
    +    try:
    +        x = [f for f in dir(obj) if not (f.startswith('__') and f.endswith('__'))]
    +        y = [n for n in names if n in x]
    +        if len(y) != len(names):
    +            raise Exception
    +        x = repr(obj)
    +        if x.startswith('<built-in'):
    +            x = x.strip('<>').split()[2]
    +        else:
    +            x = x.strip('<>').split()[0]
    +        TestPOA('dir(%s)'%x)
    +    except:
    +        TestFOA('dir(%s)'%x, LINE())
    +
    +#
    +# Test that dir(x) appears to work
    +#
    +def TestDir(global_dir_result):
    +    TestSection('behavior of dir()')
    +
    +    #
    +    # Testing of global dir() behavior can't be done from within a func
    +    #
    +    global_dir_checks = ['AddPlot', 'DeleteAllPlots', 'Launch', 'GetMetaData']
    +    y = [n for n in global_dir_checks if n in global_dir_result]
    +    if len(y) != len(global_dir_checks):
    +        TestFOA('dir()', LINE())
    +    else:
    +        TestPOA('dir()')
    +
    +    #
    +    # Test a random handful of object level dirs
    +    #
    +
    +    """ 
    +    # These fail with Python 3.9.18, see bug ticket #19264.
    +    # Impossible to add them to skip list due to unhandled exceptions
    +    # So they are being skipped here with a note added to the ticket.
    +    TestDirOutput(SILRestriction(), ['NumSets', 'TurnOnAll', 'Wholes'])
    +    TestDirOutput(PseudocolorAttributes(), ['GetCentering', 'GetColorTableName',
    +        'GetLightingFlag', 'GetLimitsMode', 'GetMax', 'SetCentering',
    +        'SetColorTableName', 'SetLegendFlag', 'SetLimitsMode'])
    +    TestDirOutput(ColorAttributeList(), ['AddColors', 'ClearColors', 'GetColors'])
    +    """
    +
    +
    +# Class to facilitate stdout redirect for testing `help()`
    +class my_redirect_stdout(list):
    +    def __enter__(self):
    +        self._stdout = sys.stdout
    +        sys.stdout = self._stringio = io.StringIO()
    +        return self
    +    def __exit__(self, *args):
    +        self.extend(self._stringio.getvalue().splitlines())
    +        del self._stringio    # free up some memory
    +        sys.stdout = self._stdout
    +
    +# Below import works only for Python > 3.4
    +# So, we use the class def above
    +# from contextlib import redirect_stdout
    +def TestHelpOutput(thing, words = None):
    +    try:
    +        with my_redirect_stdout() as output:
    +            help(thing)
    +        x  = [w for w in words if w in str(output)]
    +        if len(x) != len(words):
    +            raise Exception
    +        x = repr(thing)
    +        if x.startswith('<built-in'):
    +            x = x.strip('<>').split()[2]
    +        else:
    +            x = x.strip('<>').split()[0]
    +        TestPOA('help(%s)'%x)
    +    except:
    +        TestFOA('help(%s)'%x, LINE())
    +
    +def TestHelp():
    +    TestSection('behavior of help()')
    +
    +    TestHelpOutput(AddPlot, ['plotType', 'variableName', 'inheritSIL'])
    +    TestHelpOutput(CreateDatabaseCorrelation,
    +        ['IndexForIndexCorrelation', 'CycleCorrelation', 'StretchedIndexCorrelation'])
    +    TestHelpOutput(SILRestriction(),[]) # should not except
    +
    +    """
    +    # These tests fail with Python 3.9.18 see bug ticket #19264.
    +    # due to nature of thee way these tests are named
    +    # (different name for failure than success),
    +    # they need to be skipped manually until #19264 is addressed
    +    TestHelpOutput(SILRestriction, ['GlobalAttributes', 'SetPlotSILRestriction',
    +        'TurnDomainsOff', 'TurnDomainsOn', 'TurnMaterialsOff', 'TurnMaterialsOn'])
    +    TestHelpOutput('wholes', ['SILRestriction'])
    +    TestHelpOutput('tensor', ['DefineArrayExpression', 'DefineTensorExpression',
    +        'LCSAttributes', 'SPHResampleAttributes', 'TensorAttributes'])
    +    """
    +
    +#
    +# Scalar assignments
    +#
    +# TestAssignmentToUChar() No instances in any .xml files
    +TestAssignmentToBool()
    +TestAssignmentToInt()
    +TestAssignmentToFloat()
    +TestAssignmentToDouble()
    +TestAssignmentToString()
    +TestAssignmentToGlyphType()
    +TestAssignmentToEnum()
    +TestAssignmentToTuple()
    +
    +#
    +# Vector assignments
    +#
    +TestAssignmentToUCharVector()
    +#TestAssignmentToBoolVector() No instances in any .xml files
    +TestAssignmentToIntVector()
    +#TestAssignmentToFloatVector() No instances in any .xml files
    +TestAssignmentToDoubleVector()
    +
    +#
    +# Array assignments
    +#
    +TestAssignmentToUCharArray()
    +#TestAssignmentToBoolArray() No instances in any .xml files
    +TestAssignmentToIntArray()
    +TestAssignmentToFloatArray()
    +TestAssignmentToDoubleArray()
    +
    +#
    +# Attribute Assignments
    +#
    +TestColorAttributeStuff()
    +
    +#
    +# Dir behavior
    +#
    +TestDir(dir())
    +
    +#
    +# Help() behavior
    +#
    +TestHelp()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_compiler_warnings.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_compiler_warnings.html new file mode 100644 index 000000000..2f8c1f36c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_compiler_warnings.html @@ -0,0 +1,36 @@ + +Results for unit/compiler_warnings.py + +

    Results of VisIt Regression Test - unit/compiler_warnings

    + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    +

    Final Return Code: 116

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_compiler_warnings_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_compiler_warnings_py.html new file mode 100644 index 000000000..6f82af31a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_compiler_warnings_py.html @@ -0,0 +1,213 @@ +unit/compiler_warnings.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  compiler_warnings.py
    +#
    +#  Tests:      changes in compiler warnings
    +#
    +#  Mark C. Miller, Sun Jul 13 21:45:49 PDT 2014
    +# ----------------------------------------------------------------------------
    +import time, os.path, json, subprocess
    +
    +def ShouldSkip(srcfile, msg):
    +    srcfile_tmp = "global skip list"
    +    if srcfile in skip_list:
    +        srcfile_tmp = srcfile
    +    for skipmsg in skip_list[srcfile_tmp][0]:
    +        minlen = min(len(skipmsg),len(msg))
    +        if msg[0:minlen] == skipmsg[0:minlen]:
    +            return 1
    +    return 0
    +
    +data_dir = test_root_path("..","data")
    +src_dir = test_root_path("..","src")
    +tpb_dir = test_root_path("..","src","third_party_builtin")
    +qtssh_dir = test_root_path("..","src","tools","qtssh")
    +
    +# skip this test if we don't have the make.err file
    +if not os.path.exists(test_root_path("..","make.err")):
    +    Exit(116)
    +
    +# To reduce noise, only run this test on Sunday evenings
    +# regressiontest script stuffs a line of the form "DAY_OF_WEEK=Sunday"
    +# into first line of make.err
    +mfile = open(test_root_path("..","make.err"))
    +shouldSkip = 1
    +for line in mfile:
    +    if "DAY_OF_WEEK=Sunday" in line:
    +        shouldSkip = 0
    +        break
    +mfile.close()
    +if shouldSkip:
    +    Exit(116)
    +
    +#
    +# Read per-file skip list and zero any line numbers
    +# We allow line numbers there so that easy cut-n-paste
    +# can be used to populate skip list
    +#
    +skip_list = {}
    +try:
    +    skip_list = json.load(open(test_root_path("tests","unit","compiler_warnings_skips.json")))
    +except:
    +    pass
    +for s in skip_list:
    +    for l in skip_list[s]:
    +        for m in skip_list[s][l]:
    +            skip_list[s][l][m] = 0
    +        if l == 0:
    +            continue
    +        skip_list[s][0] = skip_list[s][l];
    +        del skip_list[s][l]
    +
    +
    +#
    +# Examine warning messages in make output, building a single, large dictionary
    +# spanning all source files that produced warnings.
    +#   
    +mfile = open(test_root_path("..","make.err"))
    +warning_counts ={}
    +warning_messages = {}
    +for line in mfile:
    +    if "warning" in line.lower():
    +
    +        # get name of file generating warning
    +        line = line[0:-1] # remove trailing newline
    +        warnline = line.partition(":")
    +        warnfile1 = warnline[0]
    +        warnfile2 = warnfile1.partition("]")
    +        if warnfile2[1] == "]":
    +            warnfile = warnfile2[2].replace(" ","")
    +        else:
    +            warnfile = warnfile2[0]
    +
    +        if warnfile[0:len(src_dir):1] != src_dir:
    +            continue # ignore files not in our src dir, not our code
    +        if warnfile[0:len(tpb_dir):1] == tpb_dir:
    +            continue # ignore files in third_party_builtin, not our code
    +        if warnfile[0:len(data_dir):1] == data_dir:
    +            continue # ignore files in data dir, not relevant to VisIt for users
    +        if warnfile[0:len(qtssh_dir):1] == qtssh_dir:
    +            continue # ignore files in qtssh dir, not our code 
    +
    +        src_file = warnfile[len(src_dir)+1::1]
    +        if warnline[1] == ":" and os.path.exists(warnfile):
    +            msginfo = warnline[2].partition(":")
    +            if not msginfo[0].isdigit():
    +                continue # probably a garbled message in make.err
    +            lineno = int(msginfo[0])
    +            rawmsg = msginfo[2]
    +            idx = rawmsg.find("warning")
    +            if idx > -1:
    +                msg = rawmsg[idx::1]
    +            else:
    +                msg = rawmsg
    +            if msg[0:len("warning: ")] == "warning: ":
    +                msg = msg[len("warning: ")::1]
    +            msg_ascii = msg.decode('unicode_escape').encode('ascii','ignore')
    +            msg = msg_ascii
    +
    +            if ShouldSkip(src_file, msg):
    +                continue
    +
    +            if src_file in warning_counts:
    +                warning_counts[src_file] += 1
    +                if lineno in warning_messages[src_file]:
    +                    if msg in warning_messages[src_file][lineno]:
    +                        warning_messages[src_file][lineno][msg] += 1
    +                    else:
    +                        warning_messages[src_file][lineno][msg] = 1
    +                else:
    +                    warning_messages[src_file][lineno] = {msg:1}
    +            else:
    +                warning_counts[src_file] = 1
    +                warning_messages[src_file] = {lineno:{msg:1}}
    +
    +mfile.close()
    +
    +#
    +# Load in current warning counts baseline data
    +#
    +baseline_counts = {}
    +try:
    +    baseline_counts = json.load(open(test_baseline_path("unit","compiler_warnings","warning_counts_by_file.txt")))
    +except:
    +    pass
    +
    +improved_counts = {}
    +worsened_counts = {}
    +for f in warning_counts:
    +    if f in baseline_counts:
    +        if warning_counts[f] > baseline_counts[f]:
    +            worsened_counts[f] = warning_counts[f]
    +        elif warning_counts[f] < baseline_counts[f]:
    +            improved_counts[f] = warning_counts[f]
    +            baseline_counts[f] = warning_counts[f]
    +    else:
    +        worsened_counts[f] = warning_counts[f]
    +for f in baseline_counts:
    +    if f not in warning_counts:
    +        improved_counts[f] = 0
    +for f in improved_counts:
    +    if improved_counts[f] == 0 and f in baseline_counts:
    +        del baseline_counts[f]
    +
    +#
    +# If there were improvements, re-baseline counts file
    +#
    +if len(improved_counts):
    +    bfilename = test_baseline_path("unit","compiler_warnings","warning_counts_by_file.txt")
    +    bfile = open(bfilename,"w+")
    +    json.dump(baseline_counts,bfile,indent=4,sort_keys=True)
    +    bfile.write("\n")
    +    bfile.close()
    +    retval = subprocess.call(["/usr/bin/svn","commit","-m","'Updating warning counts'","%s"%bfilename])
    +
    +#
    +# Generate the (sorted) warning counts data
    +#
    +counts_txt = "{\n"
    +keys = list(worsened_counts.keys())
    +keys.sort()
    +for k in keys:
    +    counts_txt += "\"%s\": %d,\n"%(k,worsened_counts[k])
    +counts_txt += "\"last line\": 0\n}\n"
    +TestText("worsened_counts_by_file", counts_txt)
    +
    +#
    +# Ok, tricky here. Append all the warning details to the html file
    +# so others can actually see it
    +#
    +uniq_msgs = {}
    +tot_files = len(warning_counts)
    +tot_cnt = 0
    +tot_uniq_cnt = 0
    +for srcfile in warning_messages:
    +    for lineno in warning_messages[srcfile]:
    +        for msg in warning_messages[srcfile][lineno]:
    +            if msg not in uniq_msgs:
    +                uniq_msgs[msg] = 1
    +            else:
    +                uniq_msgs[msg] += 1
    +            tot_uniq_cnt += 1
    +            tot_cnt += len(warning_messages[srcfile][lineno])
    +
    +
    +f = open(out_path("html","worsened_counts_by_file.html"),"a")
    +f.write("<pre>\n")
    +f.write("\n\n\nTotal warnings %d\n"%tot_cnt)
    +f.write("Total files with warnings %d\n"%tot_files)
    +f.write("Total unique warnings %d\n"%tot_uniq_cnt)
    +f.write("Unique warning messages by count...\n")
    +sorted_uniq_msgs = sorted(uniq_msgs, key=uniq_msgs.get, reverse=True)
    +for msg in sorted_uniq_msgs:
    +    f.write("%d: \"%s\"\n"%(uniq_msgs[msg],msg))
    +f.write("\n\n\nWarning message details by file and line number...\n");
    +f.write(json.dumps(warning_messages,indent=4))
    +f.write("\n\n\nWarning message strings currently being skipped if matched...\n")
    +f.write(json.dumps(skip_list,indent=4))
    +f.write("</pre>\n")
    +f.close()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_convert2to3.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_convert2to3.html new file mode 100644 index 000000000..f51021128 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_convert2to3.html @@ -0,0 +1,44 @@ + +Results for unit/convert2to3.py + +

    Results of VisIt Regression Test - unit/convert2to3

    + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    simple_2to3_input0 modifications totalling 0 lines
    simple_2to3_result0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_convert2to3_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_convert2to3_py.html new file mode 100644 index 000000000..3840a8efb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_convert2to3_py.html @@ -0,0 +1,34 @@ +unit/convert2to3.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  convert2to3.py
    +#
    +#  Tests:      Tests methods that help with converting python 2 style scripts
    +#              to python 3. 
    +#
    +#  Cyrus Harrison, Mon Jul 20 11:32:42 PDT 2020
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +test_script_src = "print 'Old Style Print!'\n"
    +
    +TestText("simple_2to3_input",test_script_src)
    +TestText("simple_2to3_result",ConvertPy2to3(test_script_src))
    +
    +
    +#
    +# Test on-the-fly logic for visit.Source
    +#
    +
    +test_script_file = "tgen_test_py2_script.py";
    +open(test_script_file,"w").write(test_script_src)
    +
    +curr_val = visit_utils.builtin.GetAutoPy2to3()
    +
    +visit_utils.SetAutoPy2to3(True)
    +visit.Source(test_script_file)
    +visit_utils.SetAutoPy2to3(curr_val)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_default_methods.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_default_methods.html new file mode 100644 index 000000000..64f744ebe --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_default_methods.html @@ -0,0 +1,64 @@ + +Results for unit/default_methods.py + +

    Results of VisIt Regression Test - unit/default_methods

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    GetDebugLevel()
     0 .eq. 0 (prec=5) : True
    GetLastError()
     "Can't delete the last window." .eq. "Can't delete the last window." : True
    Clearing GetLastError()
     "" .eq. "" : True
    Version()
     349 .ge. 321 (prec=5) : True
    LocalNameSpace()
     "None" .eq. "None" : True
    WriteScript('foo.py') == WriteScript(f)
     "True" .eq. "True" : True
    WriteScript() file size
     4000 .gt. 3000 (prec=5) : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_default_methods_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_default_methods_py.html new file mode 100644 index 000000000..f210bb874 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_default_methods_py.html @@ -0,0 +1,62 @@ +unit/default_methods.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  default_methods.py
    +#
    +#  Tests:      Tests default method interface of the visit module
    +#
    +#  Cyrus Harrison, Mon Jul 20 11:32:42 PDT 2020
    +#
    +#  Modifications
    +#    Mark C. Miller, Thu Dec 16 16:43:39 PST 2021
    +#    Wrap in TestValueXX calls so that we really do test behavior and not
    +#    just that something doesn't fail due to exception. Add tests for
    +#    WriteScript.
    +# ----------------------------------------------------------------------------
    +import os, sys, filecmp
    +
    +TestValueEQ("GetDebugLevel()", GetDebugLevel(), 0)
    +
    +# Do something to create an error (not a python exception) so that we
    +# can get something other than the empty string from GetLastError()
    +DeleteWindow()
    +TestValueEQ("GetLastError()", GetLastError(), "Can't delete the last window.")
    +
    +# Test that we can clear the last error too
    +GetLastError(1)
    +TestValueEQ("Clearing GetLastError()", GetLastError(), "")
    +
    +# This version number test assumes 3, single digits
    +TestValueGE("Version()", int(Version().replace('.','')), 321)
    +
    +TestValueEQ("LocalNameSpace()", LocalNameSpace(), None)
    +
    +# The long file name test is relevant only on Windows
    +# But, we should really have an example of a short file name
    +# there that LongFileName expands and we confirm matches expected
    +if sys.platform.startswith("win"):
    +    TestValueEQ("LongFileName()", LongFileName("myfile.txt"), "myfile.txt")
    +
    +# Test two ways of using WriteScript
    +f = open('foo.py', 'wt')
    +WriteScript(f)
    +f.close()
    +WriteScript('bar.py')
    +TestValueEQ("WriteScript('foo.py') == WriteScript(f)", filecmp.cmp('foo.py','bar.py'), True)
    +TestValueGT("WriteScript() file size", os.path.getsize('foo.py'), 3000)
    +
    +### dir is causing exceptions with Python 3.9.18
    +### so manually skip these tests until #19264 can be addressed
    +"""
    +# Test dir() on some objects
    +dout = dir(SILRestriction())
    +TestValueIN("SetsInCategory in dir(SILAttributes())", dout, 'SetsInCategory')
    +TestValueIN("SetIndex in dir(SILAttributes())", dout, 'SetIndex')
    +dout = dir(View3DAttributes())
    +TestValueIN("RotateAxis in dir(View3Dattributes())", dout, 'RotateAxis')
    +TestValueIN("GetImageZoom in dir(View3Dattributes())", dout, 'GetImageZoom')
    +TestValueIN("SetImagePan in dir(View3Dattributes())", dout, 'SetImagePan')
    +"""
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_launcher.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_launcher.html new file mode 100644 index 000000000..2a74365d6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_launcher.html @@ -0,0 +1,120 @@ + +Results for unit/launcher.py + +

    Results of VisIt Regression Test - unit/launcher

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    aprun0 modifications totalling 0 lines
    bsub0 modifications totalling 0 lines
    bsub_mpirun0 modifications totalling 0 lines
    dmpirun0 modifications totalling 0 lines
    ibrun0 modifications totalling 0 lines
    mpirun0 modifications totalling 0 lines
    msub_aprun0 modifications totalling 0 lines
    msub_ibrun0 modifications totalling 0 lines
    msub_mpiexec0 modifications totalling 0 lines
    msub_mpirun0 modifications totalling 0 lines
    msub_srun0 modifications totalling 0 lines
    poe0 modifications totalling 0 lines
    prun0 modifications totalling 0 lines
    psub0 modifications totalling 0 lines
    psub_mpirun0 modifications totalling 0 lines
    psub_srun0 modifications totalling 0 lines
    salloc0 modifications totalling 0 lines
    sbatch0 modifications totalling 0 lines
    sbatch_aprun0 modifications totalling 0 lines
    srun0 modifications totalling 0 lines
    yod0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_launcher_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_launcher_py.html new file mode 100644 index 000000000..19bd3869b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_launcher_py.html @@ -0,0 +1,196 @@ +unit/launcher.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  launcher.py
    +#
    +#  Tests:      This script tests internallauncher's transformation of visit
    +#              command line arguments into parallel launch arguments.
    +#
    +#  Brad Whitlock, Tue Sep 11 12:31:34 PDT 2012
    +#
    +# Modifications:
    +#   Brad Whitlock, Fri Dec  7 09:08:22 PST 2012
    +#   I added a little more filtering of the launcher output to replace the host
    +#   with $HOST now that the noloopback case will always use the real host
    +#   name instead of 127.0.0.1 for parallel engine launches.
    +#
    +# ----------------------------------------------------------------------------
    +import os
    +import socket
    +import subprocess
    +import getpass
    +
    +# The launch cases we want to test.
    +launch_cases = {
    +"aprun"          : ["-nn", "1"],
    +"bsub"           : ["-p", "pbatch", "-t", "30:00", "-la", "-arg1 -arg2"],
    +"bsub/mpirun"    : ["-p", "pbatch", "-t", "30:00", "-la", "-arg1 -arg2", "-sla", "-arg3 -arg4"],
    +"dmpirun"        : ["-b", "bdivp"],
    +"ibrun"          : [],
    +"mpirun"         : [],
    +"msub/aprun"     : ["-nn", "1", "-sla", "-arg1 -arg2", "-hw-pre", "startx", "-hw-post", "stopx"],
    +"msub/ibrun"     : ["-hw-pre", "startx", "-hw-post", "stopx"],
    +"msub/mpiexec"   : ["-slpre", "echo 'slprecommand'", "-slpost", "echo 'slpostcommand'", "-sla", "-arg1 -arg2", "-machinefile", "machine.txt", "-hw-pre", "startx", "-hw-post", "stopx"],
    +"msub/mpirun"    : ["-sla", "-arg1 -arg2", "-machinefile", "machine.txt", "-hw-pre", "startx", "-hw-post", "stopx"],
    +"msub/srun"      : ["-sla", "-arg1 -arg2", "-hw-pre", "startx", "-hw-post", "stopx"],
    +"poe"            : ["-nn", "1", "-p", "pbatch"],
    +"prun"           : ["-nn", "1", "-p", "pbatch"],
    +"psub"           : ["-n", "JOB_NAME", "-p", "pbatch", "-b", "bdivp", "-t", "30:00", "-expedite", "-slpre", "echo 'pre command'", "-slpost", "echo 'post command'"],
    +"psub/mpirun"    : ["-nn", "1", "-n", "JOB_NAME", "-p", "pbatch", "-b", "bdivp", "-t", "30:00", "-expedite", "-slpre", "echo 'pre command'", "-slpost", "echo 'post command'"],
    +"psub/srun"      : ["-nn", "1", "-n", "JOB_NAME", "-p", "pbatch", "-b", "bdivp", "-t", "30:00", "-expedite", "-slpre", "echo 'pre command'", "-slpost", "echo 'post command'"],
    +
    +
    +"salloc"         : ["-p", "pbatch", "-t", "30:00", "-nn", "1"],
    +"sbatch"         : ["-p", "pbatch", "-b", "bdivp", "-nn", "1"],
    +"sbatch/aprun"   : ["-p", "pbatch", "-b", "bdivp", "-nn", "1", "-sla", "-arg1 -arg2"],
    +"srun"           : ["-nn", "1", "-p", "pbatch", "-b", "bdivp", "-n", "JOB_NAME", "-t", "30:00"],
    +"yod"            : []}
    +
    +# Some debugger arguments.
    +debuggers = [[], ["-totalview", "engine_par"], ["-valgrind", "engine_par"], ["-strace", "engine_par"]]
    +
    +# Get the launcher command for new versions of VisIt.
    +def GetLauncherCommand(args):
    +    p = subprocess.Popen(args, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
    +    stdout, stderr = p.communicate()
    +    ru = stdout.find("RUN USING")
    +    if ru != -1:
    +        cmd = stdout[ru + 11:-2]
    +    else:
    +        cmd = stdout
    +    return cmd
    +
    +def FilterLauncherOutput(text, replacements):
    +    for k in list(replacements.keys()):
    +        text = text.replace(k, replacements[k])
    +    return text
    +
    +def FilterHostName(text):
    +    host = text.find("-host")
    +    port = text.find("-port")
    +    if host != -1 and port != -1:
    +        return text[:host + 6] + "$HOST " + text[port:]
    +    return text
    +
    +def hostname():
    +    return socket.gethostname()
    +
    +def nodename():
    +    return hostname().split(".")[0]
    +
    +def sectorname():
    +    s = nodename()
    +    for d in "0123456789":
    +        s = s.replace(d, "")
    +    return s
    +
    +def FormatLauncherOutput(cmd):
    +    tmpvisit = cmd.find("/tmp/visit")
    +    text = ""
    +    if tmpvisit == -1:
    +        text = cmd
    +    else:
    +        # The launcher made a script. Get the contents of the script.
    +        index = tmpvisit
    +        try:
    +            while cmd[index] != '\n':
    +                index = index + 1
    +            filename = cmd[tmpvisit:index]
    +        except:
    +            filename = cmd[tmpvisit:]
    +
    +        cmd = cmd.replace(filename, "$LAUNCHSCRIPT")
    +        text = text + cmd
    +
    +        try:
    +            lines = open(filename, "rt").readlines()
    +            text = text + '\n\nContents of $LAUNCHSCRIPT:\n'
    +            for line in lines:
    +                text = text + line
    +            os.unlink(filename)
    +        except:
    +            pass
    +
    +    return text
    +
    +
    +# For each launcher
    +i = 0
    +keys = list(launch_cases.keys())
    +keys.sort()
    +for k in keys:
    +    # Test the launcher with each debugger.
    +    j = 0
    +    text = ""
    +    for j in range(len(debuggers)):
    +        np = []
    +        if not "-np" in launch_cases[k]:
    +            np = ["-np", "8"]
    +        args = ["-engine", "-norun", "engine_par", "-l", k] + np + launch_cases[k] + ["-host", "127.0.0.1", "-port", "5600"] + debuggers[j]
    +
    +        # Come up with a visit command
    +        cmd = ""
    +        for a in args:
    +            if " " in a:
    +                cmd = cmd + '"%s" ' % a
    +            else:
    +                cmd = cmd + a + ' '
    +
    +        # Run the launcher and get the output.
    +        visitdir = pjoin(TestEnv.params["top_dir"],"src")
    +        visittestdir = pjoin(TestEnv.params["top_dir"],"test")
    +        visit =  visit_bin_path("visit")
    +        output = FormatLauncherOutput(GetLauncherCommand([visit] + args))
    +        # filter the run dir, since there are multiple variants for nightly tests
    +        # (serial, par, etc)
    +        output = FilterLauncherOutput(output, {TestEnv.params["run_dir"]: "$VISIT_TEST_DIR"})
    +        output = FilterLauncherOutput(output, {TestEnv.params["result_dir"] : "$VISIT_TEST_DIR"})
    +        # Filter out visitdir and some related directories.
    +        output = FilterLauncherOutput(output, {visit_bin_path() : "$VISIT_EXE_DIR"})
    +        output = FilterLauncherOutput(output, {visit_bin_path("..","exe") : "$VISIT_EXE_DIR"})
    +        output = FilterLauncherOutput(output, {visittestdir : "$VISIT_TEST_DIR"})
    +        output = FilterLauncherOutput(output, {visit_bin_path("..") : "$VISITDIR"})
    +        output = FilterLauncherOutput(output, {visitdir : "$VISITDIR"})
    +        # special case filter to resolve csh vs bash env differences
    +        bash_case   = "ulimit -c 0 ;"
    +        bash_case  += " LIBPATH=$VISITDIR/lib ;"
    +        bash_case  += " export LIBPATH ;"
    +        bash_case  += " LD_LIBRARY_PATH=$VISITDIR/lib ;"
    +        bash_case  += " export LD_LIBRARY_PATH"
    +
    +        csh_case  = "limit coredumpsize 0 ;"
    +        csh_case += " setenv LIBPATH $VISITDIR/lib ;"
    +        csh_case += " setenv LD_LIBRARY_PATH $VISITDIR/lib"
    +        shell_filter = {bash_case : csh_case}
    +        output = FilterLauncherOutput(output, shell_filter)
    +        # Filter out $HOME.
    +        try:
    +            output = FilterLauncherOutput(output, {os.environ["HOME"] : "$HOME"})
    +        except:
    +            pass
    +
    +        cdcmd = "cd $VISIT_TEST_DIR"
    +
    +        # Filter out some other stuff.
    +        replacements = {getpass.getuser() : "$USER",
    +                        Version()         : "$VERSION",
    +                        "linux-intel"     : "$PLATFORM",
    +                        "linux-x86_64"    : "$PLATFORM",
    +                        "darwin-i386"     : "$PLATFORM",
    +                        "darwin-x86_64"   : "$PLATFORM"}
    +
    +        output = FilterLauncherOutput(output, replacements)
    +
    +        output = FilterHostName(output)
    +
    +        # Do the test
    +        text = text + "="*80 + "\n"
    +        text = text + "CASE: %s\n\nINPUT: visit %s\n\nRESULTS:\n" % (k + " " + " ".join(debuggers[j]), cmd[:-1])
    +        text = text + output + "\n"*2
    +
    +    name = k.replace("/", "_")
    +    TestText(name, text)
    +    i = i + 1
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_mrucache.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_mrucache.html new file mode 100644 index 000000000..98ef8c4fb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_mrucache.html @@ -0,0 +1,40 @@ + +Results for unit/mrucache.py + +

    Results of VisIt Regression Test - unit/mrucache

    + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    mrucache0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_mrucache_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_mrucache_py.html new file mode 100644 index 000000000..075683011 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_mrucache_py.html @@ -0,0 +1,24 @@ +unit/mrucache.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  mrucache.py
    +#
    +#  Tests:      MRUCache_test unit test
    +#
    +#  Mark C. Miller, Tue Jan 11 10:19:23 PST 2011
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Mon Oct 26, 2020
    +#    Retrieve the correct path on Windows.
    +#
    +# ----------------------------------------------------------------------------
    +import sys
    +
    +if sys.platform.startswith("win"):
    +    tapp = visit_bin_path("MRUCache_test.exe")
    +else:
    +    tapp = visit_bin_path("..","exe","MRUCache_test")
    +res = sexe(tapp,ret_output=True)
    +TestText("mrucache", res["output"])
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_namescheme.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_namescheme.html new file mode 100644 index 000000000..00fd70580 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_namescheme.html @@ -0,0 +1,36 @@ + +Results for unit/namescheme.py + +

    Results of VisIt Regression Test - unit/namescheme

    + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_namescheme_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_namescheme_py.html new file mode 100644 index 000000000..6d58a99dd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_namescheme_py.html @@ -0,0 +1,27 @@ +unit/namescheme.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  namescheme.py
    +#
    +#  Tests:      Namescheme_test unit test
    +#
    +#  Mark C. Miller, Tue Jan 11 10:19:23 PST 2011
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Mon Oct 26, 2020
    +#    Retrieve correct path on Windows.
    +#
    +# ----------------------------------------------------------------------------
    +import sys
    +
    +if sys.platform.startswith("win"):
    +    tapp = visit_bin_path("Namescheme_test.exe")
    +else:
    +    tapp = visit_bin_path("..","exe","Namescheme_test")
    +res = sexe(tapp,ret_output=True)
    +if res["return_code"] == 0:
    +    excode = 111
    +else:
    +    excode = 113
    +Exit(excode)
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_protocol.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_protocol.html new file mode 100644 index 000000000..d76a7fe7f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_protocol.html @@ -0,0 +1,36 @@ + +Results for unit/protocol.py + +

    Results of VisIt Regression Test - unit/protocol

    + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_protocol_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_protocol_py.html new file mode 100644 index 000000000..d14471fd0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_protocol_py.html @@ -0,0 +1,17 @@ +unit/protocol.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  protocolo.py
    +#
    +#  Tests:      vistprotocol unit test
    +#
    +#  Mark C. Miller, Tue Jan 11 10:19:23 PST 2011
    +# ----------------------------------------------------------------------------
    +tapp = visit_bin_path("visitprotocol")
    +res = sexe(tapp,ret_output=True)
    +if res["return_code"] == 0:
    +    excode = 111
    +else:
    +    excode = 113
    +Exit(excode)
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_stringhelpers.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_stringhelpers.html new file mode 100644 index 000000000..9a7b72614 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_stringhelpers.html @@ -0,0 +1,36 @@ + +Results for unit/stringhelpers.py + +

    Results of VisIt Regression Test - unit/stringhelpers

    + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_stringhelpers_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_stringhelpers_py.html new file mode 100644 index 000000000..c544e1544 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_stringhelpers_py.html @@ -0,0 +1,26 @@ +unit/stringhelpers.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  stringhelpers.py
    +#
    +#  Tests:      StringHelpers_test unit test
    +#
    +#  Mark C. Miller, Tue Jan 11 10:19:23 PST 2011
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Thu Nov 12, 2020
    +#    Retrieve the correct path on Windows.
    +# ----------------------------------------------------------------------------
    +import sys
    +
    +if sys.platform.startswith("win"):
    +    tapp = visit_bin_path("StringHelpers_test.exe")
    +else:
    +    tapp = visit_bin_path("..","exe","StringHelpers_test")
    +res = sexe(tapp,ret_output=True)
    +if res["return_code"] == 0:
    +    excode = 111
    +else:
    +    excode = 113
    +Exit(excode)
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_test_value_simple.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_test_value_simple.html new file mode 100644 index 000000000..ac1c5c847 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_test_value_simple.html @@ -0,0 +1,120 @@ + +Results for unit/test_value_simple.py + +

    Results of VisIt Regression Test - unit/test_value_simple

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Basic
    test_value_basic_001
     100 .eq. 100 (prec=5) : True
    test_value_basic_002
     200 .ne. 100 (prec=5) : True
    test_value_basic_003
     100 .lt. 200 (prec=5) : True
    test_value_basic_004
     100 .le. 200 (prec=5) : True
    test_value_basic_005
     200 .le. 200 (prec=5) : True
    test_value_basic_006
     200 .gt. 100 (prec=5) : True
    test_value_basic_007
     200 .ge. 100 (prec=5) : True
    test_value_basic_008
     200 .ge. 200 (prec=5) : True
    test_value_basic_009
     100.0 .eq. 100 (prec=5) : True
    Precision
    test_value_prec_001
     200.0001 .eq. 200 (prec=3) : True
    test_value_prec_002
     200.0000000001 .eq. 200 (prec=9) : True
    test_value_prec_004
     200.0001 .ne. 200 (prec=9) : True
    In Operator
    test_value_in_001
     200 .in. 
    (100, 200, 300)
     (prec=5, at=1) : True
    test_value_in_001
     (1, -1) .in. 
    [(0, 0),
      (1, 0),
      (1, -1),
      (0, 1)]
     (prec=5, at=2) : True
    test_value_in_002
     35 .in. 
    (17, 18, 19, 20, 21)
     (prec=2, at=3) : True
    Objects
    test_value_object_001
     "[1, '2', 3]" .eq. "[1, '2', 3]" : True
    test_value_object_002
     "apple" .lt. "carrot" : True
    test_value_object_003
     (1, 1, 4.71e-06) .lt. (1, 1, 5.01e-06)
     (prec=5) : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_test_value_simple_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_test_value_simple_py.html new file mode 100644 index 000000000..553831e89 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_test_value_simple_py.html @@ -0,0 +1,56 @@ +unit/test_value_simple.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  test_value_simple.py
    +#
    +#  Tests:      VisIt Test Suite Test Value tests
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Mark C. Miller, Sun Jan 10 10:24:59 PST 2021
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Basic cases
    +TestSection("Basic")
    +TestValueEQ("test_value_basic_001",100,100)
    +TestValueNE("test_value_basic_002",200,100)
    +
    +TestValueLT("test_value_basic_003",100,200)
    +TestValueLE("test_value_basic_004",100,200)
    +TestValueLE("test_value_basic_005",200,200)
    +
    +TestValueGT("test_value_basic_006",200,100)
    +TestValueGE("test_value_basic_007",200,100)
    +TestValueGE("test_value_basic_008",200,200)
    +
    +TestValueEQ("test_value_basic_009",100.0,100)
    +
    +# Rounding cases
    +TestSection("Precision")
    +TestValueEQ("test_value_prec_001",200.0001,200,3)
    +TestValueEQ("test_value_prec_002",200.0000000001,200,9)
    +TestValueNE("test_value_prec_004",200.0001,200,9)
    +
    +# IN operator
    +TestSection("In Operator")
    +TestValueIN("test_value_in_001",(100,200,300),200)
    +TestValueIN("test_value_in_001",[(0,0), (1,0), (1,-1), (0,1)],(1,-1))
    +
    +# Custom equivalence operator for TestValueIN
    +def EqMod5(a,b):
    +    return a%5 == b%5
    +
    +# This tests that '35' is IN '(17,18,19,20,21)' by the EqMod5 operator
    +# which says two things are equal if their mod 5 values are equal. So,
    +# '35' is IN the list because 20%5==35%5 (0)
    +TestValueIN("test_value_in_002",(17,18,19,20,21),35,2,EqMod5)
    +
    +# General Python objects wind up being tested as strings
    +TestSection("Objects")
    +TestValueEQ("test_value_object_001",[1,'2',3],"[1, '2', 3]")
    +TestValueLT("test_value_object_002","apple","carrot")
    +TestValueLT("test_value_object_003",(1,1,0.00000471),(1,1,0.00000501))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_utility.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_utility.html new file mode 100644 index 000000000..6259f9415 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_utility.html @@ -0,0 +1,36 @@ + +Results for unit/utility.py + +

    Results of VisIt Regression Test - unit/utility

    + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_utility_py.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_utility_py.html new file mode 100644 index 000000000..16c29e94a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/unit_utility_py.html @@ -0,0 +1,27 @@ +unit/utility.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  utility.py
    +#
    +#  Tests:      Utility_test unit test
    +#
    +#  Mark C. Miller, Mon Dec  1 23:55:05 PST 2014
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Mon Oct 26, 2020
    +#    Retrieve correct path on Windows.
    +#
    +# ----------------------------------------------------------------------------
    +import sys
    +
    +if sys.platform.startswith("win"):
    +    tapp = visit_bin_path("Utility_test.exe")
    +else:
    +    tapp = visit_bin_path("..","exe","Utility_test")
    +res = sexe(tapp,ret_output=True)
    +if res["return_code"] == 0:
    +    excode = 111
    +else:
    +    excode = 113
    +Exit(excode)
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/zerocopy02.html b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/zerocopy02.html new file mode 100644 index 000000000..1c3e18859 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/zerocopy02.html @@ -0,0 +1,31 @@ +Results for test case zerocopy02 + +

    Results for test case zerocopy02

    + + + + + +
    Legend
    0 Lines Added
    0 Lines Deleted
    1 Lines Changed

    +

    1 modifications, totalling 1 lines

    + + + + + + + + + + + + + + + + + + + + +
     Line Baseline Line Current
    1: ERROR: Some methods used more memory than copying.1: ERROR: Some methods used more memory than copying.
    diff --git a/2024-12-12-22:00/poodle_trunk_serial/Pick3DTo2D.html b/2024-12-12-22:00/poodle_trunk_serial/Pick3DTo2D.html new file mode 100644 index 000000000..6601df0dd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/Pick3DTo2D.html @@ -0,0 +1,1896 @@ +Results for test case Pick3DTo2D + +

    Results for test case Pick3DTo2D

    + + + + + +
    Legend
    0 Lines Added
    0 Lines Deleted
    6 Lines Changed

    +

    2 modifications, totalling 6 lines

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     Line Baseline Line Current
    1:  1:  
    2: A: globe.silo2: A: globe.silo
    3: mesh13: mesh1
    4: Point: <0, -4.48889, 3.95556>4: Point: <0, -4.48889, 3.95556>
    5: Zone: 5545: Zone: 554
    6: Incident Nodes: 797 798 789 788 851 852 843 8426: Incident Nodes: 797 798 789 788 851 852 843 842
    7: u: <nodal>7: u: <nodal>
    8:     (797) = -3.726788:     (797) = -3.72678
    9:     (798) = -5.129479:     (798) = -5.12947
    10:     (789) = -3.847110:     (789) = -3.8471
    11:     (788) = -2.7950811:     (788) = -2.79508
    12:     (851) = -3.9185712:     (851) = -3.91857
    13:     (852) = -5.3934513:     (852) = -5.39345
    14:     (843) = -4.0450814:     (843) = -4.04508
    15:     (842) = -2.9389315:     (842) = -2.93893
    16:  16:  
    17:  17:  
    18: B: globe.silo18: B: globe.silo
    19: mesh119: mesh1
    20: Point: <0, 4.4, -2.44444>20: Point: <0, 4.4, -2.44444>
    21: Zone: 94521: Zone: 945
    22: Incident Nodes: 315 316 307 306 369 370 361 36022: Incident Nodes: 315 316 307 306 369 370 361 360
    23: u: <nodal>23: u: <nodal>
    24:     (315) = 6.3403824:     (315) = 6.34038
    25:     (316) = 5.3934525:     (316) = 5.39345
    26:     (307) = 4.0450826:     (307) = 4.04508
    27:     (306) = 4.7552827:     (306) = 4.75528
    28:     (369) = 6.0300628:     (369) = 6.03006
    29:     (370) = 5.1294729:     (370) = 5.12947
    30:     (361) = 3.847130:     (361) = 3.8471
    31:     (360) = 4.5225431:     (360) = 4.52254
    32:  32:  
    33:  33:  
    34: C: globe.silo34: C: globe.silo
    35: mesh135: mesh1
    36: Point: <-0.629469, -3.97431, 4.07401>36: Point: <-0.629469, -3.97431, 4.07401>
    37: Zone: 55437: Zone: 554
    38: Incident Nodes: 797 798 789 788 851 852 843 84238: Incident Nodes: 797 798 789 788 851 852 843 842
    39: u: <nodal>39: u: <nodal>
    40:     (797) = -3.7267840:     (797) = -3.72678
    41:     (798) = -5.1294741:     (798) = -5.12947
    42:     (789) = -3.847142:     (789) = -3.8471
    43:     (788) = -2.7950843:     (788) = -2.79508
    44:     (851) = -3.9185744:     (851) = -3.91857
    45:     (852) = -5.3934545:     (852) = -5.39345
    46:     (843) = -4.0450846:     (843) = -4.04508
    47:     (842) = -2.9389347:     (842) = -2.93893
    48:  48:  
    49:  49:  
    50: D: globe.silo50: D: globe.silo
    51: mesh151: mesh1
    52: Point: <-0.793176, 5.00792, -2.61567>52: Point: <-0.793176, 5.00792, -2.61567>
    53: Zone: 94553: Zone: 945
    54: Incident Nodes: 315 316 307 306 369 370 361 36054: Incident Nodes: 315 316 307 306 369 370 361 360
    55: u: <nodal>55: u: <nodal>
    56:     (315) = 6.3403856:     (315) = 6.34038
    57:     (316) = 5.3934557:     (316) = 5.39345
    58:     (307) = 4.0450858:     (307) = 4.04508
    59:     (306) = 4.7552859:     (306) = 4.75528
    60:     (369) = 6.0300660:     (369) = 6.03006
    61:     (370) = 5.1294761:     (370) = 5.12947
    62:     (361) = 3.847162:     (361) = 3.8471
    63:     (360) = 4.5225463:     (360) = 4.52254
    64:  64:  
    65:  65:  
    66: E: globe.silo66: E: globe.silo
    67: mesh167: mesh1
    68: Point: <0, -4.48889, 3.95556>68: Point: <0, -4.48889, 3.95556>
    69: Zone: 55469: Zone: 554
    70: Incident Nodes: 797 798 789 788 851 852 843 84270: Incident Nodes: 797 798 789 788 851 852 843 842
    71: u: <nodal>71: u: <nodal>
    72:     (797) = -3.7267872:     (797) = -3.72678
    73:     (798) = -5.1294773:     (798) = -5.12947
    74:     (789) = -3.847174:     (789) = -3.8471
    75:     (788) = -2.7950875:     (788) = -2.79508
    76:     (851) = -3.9185776:     (851) = -3.91857
    77:     (852) = -5.3934577:     (852) = -5.39345
    78:     (843) = -4.0450878:     (843) = -4.04508
    79:     (842) = -2.9389379:     (842) = -2.93893
    80:  80:  
    81:  81:  
    82: F: globe.silo82: F: globe.silo
    83: mesh183: mesh1
    84: Point: <0, 4.4, -2.44444>84: Point: <0, 4.4, -2.44444>
    85: Zone: 94585: Zone: 945
    86: Incident Nodes: 315 316 307 306 369 370 361 36086: Incident Nodes: 315 316 307 306 369 370 361 360
    87: u: <nodal>87: u: <nodal>
    88:     (315) = 6.3403888:     (315) = 6.34038
    89:     (316) = 5.3934589:     (316) = 5.39345
    90:     (307) = 4.0450890:     (307) = 4.04508
    91:     (306) = 4.7552891:     (306) = 4.75528
    92:     (369) = 6.0300692:     (369) = 6.03006
    93:     (370) = 5.1294793:     (370) = 5.12947
    94:     (361) = 3.847194:     (361) = 3.8471
    95:     (360) = 4.5225495:     (360) = 4.52254
    96:  96:  
    97:  97:  
    98: G: globe.silo98: G: globe.silo
    99: mesh199: mesh1
    100: Point: <-0.629469, -3.97431, 4.07401>100: Point: <-0.629469, -3.97431, 4.07401>
    101: Zone: 554101: Zone: 554
    102: Incident Nodes: 797 798 789 788 851 852 843 842102: Incident Nodes: 797 798 789 788 851 852 843 842
    103: u: <nodal>103: u: <nodal>
    104:     (797) = -3.72678104:     (797) = -3.72678
    105:     (798) = -5.12947105:     (798) = -5.12947
    106:     (789) = -3.8471106:     (789) = -3.8471
    107:     (788) = -2.79508107:     (788) = -2.79508
    108:     (851) = -3.91857108:     (851) = -3.91857
    109:     (852) = -5.39345109:     (852) = -5.39345
    110:     (843) = -4.04508110:     (843) = -4.04508
    111:     (842) = -2.93893111:     (842) = -2.93893
    112:  112:  
    113:  113:  
    114: H: globe.silo114: H: globe.silo
    115: mesh1115: mesh1
    116: Point: <-0.793176, 5.00792, -2.61567>116: Point: <-0.793176, 5.00792, -2.61567>
    117: Zone: 945117: Zone: 945
    118: Incident Nodes: 315 316 307 306 369 370 361 360118: Incident Nodes: 315 316 307 306 369 370 361 360
    119: u: <nodal>119: u: <nodal>
    120:     (315) = 6.34038120:     (315) = 6.34038
    121:     (316) = 5.39345121:     (316) = 5.39345
    122:     (307) = 4.04508122:     (307) = 4.04508
    123:     (306) = 4.75528123:     (306) = 4.75528
    124:     (369) = 6.03006124:     (369) = 6.03006
    125:     (370) = 5.12947125:     (370) = 5.12947
    126:     (361) = 3.8471126:     (361) = 3.8471
    127:     (360) = 4.52254127:     (360) = 4.52254
    128:  128:  
    129:  129:  
    130: I: globe.silo130: I: globe.silo
    131: mesh1131: mesh1
    132: Point: (in transformed space)132: Point: (in transformed space)
    133:        <-0.650387, 1.08398, 0>133:        <-0.650387, 1.08398, 0>
    134: Zone: 506134: Zone: 506
    135: Incident Nodes: 347 348 339 338 401 402 393 392135: Incident Nodes: 347 348 339 338 401 402 393 392
    136: u: <nodal>136: u: <nodal>
    137:     (347) = 1.86339137:     (347) = 1.86339
    138:     (348) = 2.56474138:     (348) = 2.56474
    139:     (339) = 1.28237139:     (339) = 1.28237
    140:     (338) = 0.931695140:     (338) = 0.931695
    141:     (401) = 1.58509141:     (401) = 1.58509
    142:     (402) = 2.18169142:     (402) = 2.18169
    143:     (393) = 1.09085143:     (393) = 1.09085
    144:     (392) = 0.792547144:     (392) = 0.792547
    145:  145:  
    146:  146:  
    147: J: globe.silo147: J: globe.silo
    148: mesh1148: mesh1
    149: Point: (in transformed space)149: Point: (in transformed space)
    150:        <-3.0785, -4.9863, 0>150:        <-3.0785, -4.9863, 0>
    151: Zone: 593151: Zone: 593
    152: Incident Nodes: 761 762 753 752 815 816 807 806152: Incident Nodes: 761 762 753 752 815 816 807 806
    153: u: <nodal>153: u: <nodal>
    154:     (761) = -4.75528154:     (761) = -4.75528
    155:     (762) = -6.54508155:     (762) = -6.54508
    156:     (753) = -5.45424156:     (753) = -5.45424
    157:     (752) = -3.96274157:     (752) = -3.96274
    158:     (815) = -5.59017158:     (815) = -5.59017
    159:     (816) = -7.69421159:     (816) = -7.69421
    160:     (807) = -6.41184160:     (807) = -6.41184
    161:     (806) = -4.65847161:     (806) = -4.65847
    162:  162:  
    163:  163:  
    164: K: globe.silo164: K: globe.silo
    165: mesh1165: mesh1
    166: Point: <0.782909, 1.53655, 1.746>166: Point: <0.782909, 1.53655, 1.746>
    167: Zone: 503167: Zone: 503
    168: Incident Nodes: 185 186 177 176 239 240 231 230168: Incident Nodes: 185 186 177 176 239 240 231 230
    169: u: <nodal>169: u: <nodal>
    170:     (185) = 1.58509170:     (185) = 1.58509
    171:     (186) = 2.18169171:     (186) = 2.18169
    172:     (177) = 1.09085172:     (177) = 1.09085
    173:     (176) = 0.792547173:     (176) = 0.792547
    174:     (239) = 1.86339174:     (239) = 1.86339
    175:     (240) = 2.56474175:     (240) = 2.56474
    176:     (231) = 1.28237176:     (231) = 1.28237
    177:     (230) = 0.931695177:     (230) = 0.931695
    178:  178:  
    179:  179:  
    180: L: globe.silo180: L: globe.silo
    181: mesh1181: mesh1
    182: Point: <2.87067, -5.634, 6.40201>182: Point: <2.87067, -5.634, 6.40201>
    183: Zone: 596183: Zone: 596
    184: Incident Nodes: 923 924 915 914 977 978 969 968184: Incident Nodes: 923 924 915 914 977 978 969 968
    185: u: <nodal>185: u: <nodal>
    186:     (923) = -5.59017186:     (923) = -5.59017
    187:     (924) = -7.69421187:     (924) = -7.69421
    188:     (915) = -6.41184188:     (915) = -6.41184
    189:     (914) = -4.65847189:     (914) = -4.65847
    190:     (977) = -4.75528190:     (977) = -4.75528
    191:     (978) = -6.54508191:     (978) = -6.54508
    192:     (969) = -5.45424192:     (969) = -5.45424
    193:     (968) = -3.96274193:     (968) = -3.96274
    194:  194:  
    195:  195:  
    196: Pick with all materials turned on:196: Pick with all materials turned on:
    197:  197:  
    198: M: multi_rect3d.silo198: M: multi_rect3d.silo
    199: mesh1 domain 1199: mesh1 domain 1
    200: Point: <0.2, 0.0666667, 0.0888889>200: Point: <0.2, 0.0666667, 0.0888889>
    201: Zone: 225201: Zone: 225
    202: Incident Nodes: 269 270 280 281 390 391 401 402202: Incident Nodes: 269 270 280 281 390 391 401 402
    203: d: <zonal> = 0.682125203: d: <zonal> = 0.682125
    204:  204:  
    205:  205:  
    206: N: multi_rect3d.silo206: N: multi_rect3d.silo
    207: mesh1 domain 1207: mesh1 domain 1
    208: Point: <0.216667, 0.0625, 0.0833333>208: Point: <0.216667, 0.0625, 0.0833333>
    209: Zone: 226209: Zone: 226
    210: Incident Nodes: 270 271 281 282 391 392 402 403210: Incident Nodes: 270 271 281 282 391 392 402 403
    211: d: <zonal> = 0.667304211: d: <zonal> = 0.667304
    212:  212:  
    213:  213:  
    214: O: multi_rect3d.silo214: O: multi_rect3d.silo
    215: mesh1 domain 19215: mesh1 domain 19
    216: Point: <0.2, 0.511111, 0.555556>216: Point: <0.2, 0.511111, 0.555556>
    217: Zone: 605217: Zone: 605
    218: Incident Nodes: 731 732 742 743 852 853 863 864218: Incident Nodes: 731 732 742 743 852 853 863 864
    219: d: <zonal> = 0.320833219: d: <zonal> = 0.320833
    220:  220:  
    221:  221:  
    222: P: multi_rect3d.silo222: P: multi_rect3d.silo
    223: mesh1 domain 19223: mesh1 domain 19
    224: Point: <0.216667, 0.5125, 0.55>224: Point: <0.216667, 0.5125, 0.55>
    225: Zone: 606225: Zone: 606
    226: Incident Nodes: 732 733 743 744 853 854 864 865226: Incident Nodes: 732 733 743 744 853 854 864 865
    227: d: <zonal> = 0.287983227: d: <zonal> = 0.287983
    228:  228:  
    229:  229:  
    230: Q: multi_rect3d.silo230: Q: multi_rect3d.silo
    231: mesh1 domain 1231: mesh1 domain 1
    232: Point: <0.2, 0.075, 0.1>232: Point: <0.2, 0.075, 0.1>
    233: Node: 402233: Node: 402
    234: Incident Zones: 335 325 225 235 336 326 226 236234: Incident Zones: 335 325 225 235 336 326 226 236
    235: d: <zonal>235: d: <zonal>
    236:     (335) = 0.646048236:     (335) = 0.646048
    237:     (325) = 0.66229237:     (325) = 0.66229
    238:     (225) = 0.682125238:     (225) = 0.682125
    239:     (235) = 0.666367239:     (235) = 0.666367
    240:     (336) = 0.63038240:     (336) = 0.63038
    241:     (326) = 0.647015241:     (326) = 0.647015
    242:     (226) = 0.667304242:     (226) = 0.667304
    243:     (236) = 0.651187243:     (236) = 0.651187
    244:  244:  
    245:  245:  
    246: R: multi_rect3d.silo246: R: multi_rect3d.silo
    247: mesh1 domain 1247: mesh1 domain 1
    248: Point: <0.2, 0.075, 0.1>248: Point: <0.2, 0.075, 0.1>
    249: Node: 402249: Node: 402
    250: Incident Zones: 335 325 225 235 336 326 226 236250: Incident Zones: 335 325 225 235 336 326 226 236
    251: d: <zonal>251: d: <zonal>
    252:     (335) = 0.646048252:     (335) = 0.646048
    253:     (325) = 0.66229253:     (325) = 0.66229
    254:     (225) = 0.682125254:     (225) = 0.682125
    255:     (235) = 0.666367255:     (235) = 0.666367
    256:     (336) = 0.63038256:     (336) = 0.63038
    257:     (326) = 0.647015257:     (326) = 0.647015
    258:     (226) = 0.667304258:     (226) = 0.667304
    259:     (236) = 0.651187259:     (236) = 0.651187
    260:  260:  
    261:  261:  
    262: S: multi_rect3d.silo262: S: multi_rect3d.silo
    263: mesh1 domain 19263: mesh1 domain 19
    264: Point: <0.2, 0.5, 0.566667>264: Point: <0.2, 0.5, 0.566667>
    265: Node: 853265: Node: 853
    266: Incident Zones: 705 605 706 606266: Incident Zones: 705 605 706 606
    267: d: <zonal>267: d: <zonal>
    268:     (705) = 0.327687268:     (705) = 0.327687
    269:     (605) = 0.320833269:     (605) = 0.320833
    270:     (706) = 0.295599270:     (706) = 0.295599
    271:     (606) = 0.287983271:     (606) = 0.287983
    272:  272:  
    273:  273:  
    274: T: multi_rect3d.silo274: T: multi_rect3d.silo
    275: mesh1 domain 19275: mesh1 domain 19
    276: Point: <0.2, 0.5, 0.566667>276: Point: <0.2, 0.5, 0.566667>
    277: Node: 853277: Node: 853
    278: Incident Zones: 705 605 706 606278: Incident Zones: 705 605 706 606
    279: d: <zonal>279: d: <zonal>
    280:     (705) = 0.327687280:     (705) = 0.327687
    281:     (605) = 0.320833281:     (605) = 0.320833
    282:     (706) = 0.295599282:     (706) = 0.295599
    283:     (606) = 0.287983283:     (606) = 0.287983
    284:  284:  
    285:  285:  
    286: Pick with material 2 turned off:286: Pick with material 2 turned off:
    287:  287:  
    288: U: multi_rect3d.silo288: U: multi_rect3d.silo
    289: mesh1 domain 1289: mesh1 domain 1
    290: Point: <0.2, 0.0666667, 0.0888889>290: Point: <0.2, 0.0666667, 0.0888889>
    291: Zone: 226291: Zone: 225
    292: Incident Nodes: 270 271 281 282 391 392 402 403292: Incident Nodes: 269 270 280 281 390 391 401 402
    293: d: <zonal> = 0.667304293: d: <zonal> = 0.682125
    294:  294:  
    295:  295:  
    296: V: multi_rect3d.silo296: V: multi_rect3d.silo
    297: mesh1 domain 1297: mesh1 domain 1
    298: Point: <0.216667, 0.0625, 0.0833333>298: Point: <0.216667, 0.0625, 0.0833333>
    299: Zone: 226299: Zone: 226
    300: Incident Nodes: 270 271 281 282 391 392 402 403300: Incident Nodes: 270 271 281 282 391 392 402 403
    301: d: <zonal> = 0.667304301: d: <zonal> = 0.667304
    302:  302:  
    303:  303:  
    304: W: multi_rect3d.silo304: W: multi_rect3d.silo
    305: mesh1 domain 19305: mesh1 domain 19
    306: Point: <0.2, 0.511111, 0.555556>306: Point: <0.2, 0.511111, 0.555556>
    307: Zone: 606307: Zone: 605
    308: Incident Nodes: 732 733 743 744 853 854 864 865308: Incident Nodes: 731 732 742 743 852 853 863 864
    309: d: <zonal> = 0.287983309: d: <zonal> = 0.320833
    310:  310:  
    311:  311:  
    312: X: multi_rect3d.silo312: X: multi_rect3d.silo
    313: mesh1 domain 19313: mesh1 domain 19
    314: Point: <0.216667, 0.5125, 0.55>314: Point: <0.216667, 0.5125, 0.55>
    315: Zone: 606315: Zone: 606
    316: Incident Nodes: 732 733 743 744 853 854 864 865316: Incident Nodes: 732 733 743 744 853 854 864 865
    317: d: <zonal> = 0.287983317: d: <zonal> = 0.287983
    318:  318:  
    319:  319:  
    320: Y: multi_rect3d.silo320: Y: multi_rect3d.silo
    321: mesh1 domain 1321: mesh1 domain 1
    322: Point: <0.2, 0.075, 0.1>322: Point: <0.2, 0.075, 0.1>
    323: Node: 402323: Node: 402
    324: Incident Zones: 335 325 225 235 336 326 226 236324: Incident Zones: 335 325 225 235 336 326 226 236
    325: d: <zonal>325: d: <zonal>
    326:     (335) = 0.646048326:     (335) = 0.646048
    327:     (325) = 0.66229327:     (325) = 0.66229
    328:     (225) = 0.682125328:     (225) = 0.682125
    329:     (235) = 0.666367329:     (235) = 0.666367
    330:     (336) = 0.63038330:     (336) = 0.63038
    331:     (326) = 0.647015331:     (326) = 0.647015
    332:     (226) = 0.667304332:     (226) = 0.667304
    333:     (236) = 0.651187333:     (236) = 0.651187
    334:  334:  
    335:  335:  
    336: Z: multi_rect3d.silo336: Z: multi_rect3d.silo
    337: mesh1 domain 1337: mesh1 domain 1
    338: Point: <0.2, 0.075, 0.1>338: Point: <0.2, 0.075, 0.1>
    339: Node: 402339: Node: 402
    340: Incident Zones: 335 325 225 235 336 326 226 236340: Incident Zones: 335 325 225 235 336 326 226 236
    341: d: <zonal>341: d: <zonal>
    342:     (335) = 0.646048342:     (335) = 0.646048
    343:     (325) = 0.66229343:     (325) = 0.66229
    344:     (225) = 0.682125344:     (225) = 0.682125
    345:     (235) = 0.666367345:     (235) = 0.666367
    346:     (336) = 0.63038346:     (336) = 0.63038
    347:     (326) = 0.647015347:     (326) = 0.647015
    348:     (226) = 0.667304348:     (226) = 0.667304
    349:     (236) = 0.651187349:     (236) = 0.651187
    350:  350:  
    351:  351:  
    352: a: multi_rect3d.silo352: a: multi_rect3d.silo
    353: mesh1 domain 19353: mesh1 domain 19
    354: Point: <0.2, 0.5, 0.566667>354: Point: <0.2, 0.5, 0.566667>
    355: Node: 853355: Node: 853
    356: Incident Zones: 705 605 706 606356: Incident Zones: 705 605 706 606
    357: d: <zonal>357: d: <zonal>
    358:     (705) = 0.327687358:     (705) = 0.327687
    359:     (605) = 0.320833359:     (605) = 0.320833
    360:     (706) = 0.295599360:     (706) = 0.295599
    361:     (606) = 0.287983361:     (606) = 0.287983
    362:  362:  
    363:  363:  
    364: b: multi_rect3d.silo364: b: multi_rect3d.silo
    365: mesh1 domain 19365: mesh1 domain 19
    366: Point: <0.2, 0.5, 0.566667>366: Point: <0.2, 0.5, 0.566667>
    367: Node: 853367: Node: 853
    368: Incident Zones: 705 605 706 606368: Incident Zones: 705 605 706 606
    369: d: <zonal>369: d: <zonal>
    370:     (705) = 0.327687370:     (705) = 0.327687
    371:     (605) = 0.320833371:     (605) = 0.320833
    372:     (706) = 0.295599372:     (706) = 0.295599
    373:     (606) = 0.287983373:     (606) = 0.287983
    374:  374:  
    diff --git a/2024-12-12-22:00/poodle_trunk_serial/avg_value_02.html b/2024-12-12-22:00/poodle_trunk_serial/avg_value_02.html new file mode 100644 index 000000000..4bee43e4e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/avg_value_02.html @@ -0,0 +1,31 @@ +Results for test case avg_value_02 + +

    Results for test case avg_value_02

    + + + + + +
    Legend
    0 Lines Added
    0 Lines Deleted
    1 Lines Changed

    +

    1 modifications, totalling 1 lines

    + + + + + + + + + + + + + + + + + + + + +
     Line Baseline Line Current
    1: The average value of vel is 4.06619e-17, -1.2443e-17, 01: The average value of vel is -1.62203e-17, -1.2443e-17, 0
    diff --git a/2024-12-12-22:00/poodle_trunk_serial/c_Pick3DTo2D.txt b/2024-12-12-22:00/poodle_trunk_serial/c_Pick3DTo2D.txt new file mode 100644 index 000000000..8289839dd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/c_Pick3DTo2D.txt @@ -0,0 +1,374 @@ + +A: globe.silo +mesh1 +Point: <0, -4.48889, 3.95556> +Zone: 554 +Incident Nodes: 797 798 789 788 851 852 843 842 +u: + (797) = -3.72678 + (798) = -5.12947 + (789) = -3.8471 + (788) = -2.79508 + (851) = -3.91857 + (852) = -5.39345 + (843) = -4.04508 + (842) = -2.93893 + + +B: globe.silo +mesh1 +Point: <0, 4.4, -2.44444> +Zone: 945 +Incident Nodes: 315 316 307 306 369 370 361 360 +u: + (315) = 6.34038 + (316) = 5.39345 + (307) = 4.04508 + (306) = 4.75528 + (369) = 6.03006 + (370) = 5.12947 + (361) = 3.8471 + (360) = 4.52254 + + +C: globe.silo +mesh1 +Point: <-0.629469, -3.97431, 4.07401> +Zone: 554 +Incident Nodes: 797 798 789 788 851 852 843 842 +u: + (797) = -3.72678 + (798) = -5.12947 + (789) = -3.8471 + (788) = -2.79508 + (851) = -3.91857 + (852) = -5.39345 + (843) = -4.04508 + (842) = -2.93893 + + +D: globe.silo +mesh1 +Point: <-0.793176, 5.00792, -2.61567> +Zone: 945 +Incident Nodes: 315 316 307 306 369 370 361 360 +u: + (315) = 6.34038 + (316) = 5.39345 + (307) = 4.04508 + (306) = 4.75528 + (369) = 6.03006 + (370) = 5.12947 + (361) = 3.8471 + (360) = 4.52254 + + +E: globe.silo +mesh1 +Point: <0, -4.48889, 3.95556> +Zone: 554 +Incident Nodes: 797 798 789 788 851 852 843 842 +u: + (797) = -3.72678 + (798) = -5.12947 + (789) = -3.8471 + (788) = -2.79508 + (851) = -3.91857 + (852) = -5.39345 + (843) = -4.04508 + (842) = -2.93893 + + +F: globe.silo +mesh1 +Point: <0, 4.4, -2.44444> +Zone: 945 +Incident Nodes: 315 316 307 306 369 370 361 360 +u: + (315) = 6.34038 + (316) = 5.39345 + (307) = 4.04508 + (306) = 4.75528 + (369) = 6.03006 + (370) = 5.12947 + (361) = 3.8471 + (360) = 4.52254 + + +G: globe.silo +mesh1 +Point: <-0.629469, -3.97431, 4.07401> +Zone: 554 +Incident Nodes: 797 798 789 788 851 852 843 842 +u: + (797) = -3.72678 + (798) = -5.12947 + (789) = -3.8471 + (788) = -2.79508 + (851) = -3.91857 + (852) = -5.39345 + (843) = -4.04508 + (842) = -2.93893 + + +H: globe.silo +mesh1 +Point: <-0.793176, 5.00792, -2.61567> +Zone: 945 +Incident Nodes: 315 316 307 306 369 370 361 360 +u: + (315) = 6.34038 + (316) = 5.39345 + (307) = 4.04508 + (306) = 4.75528 + (369) = 6.03006 + (370) = 5.12947 + (361) = 3.8471 + (360) = 4.52254 + + +I: globe.silo +mesh1 +Point: (in transformed space) + <-0.650387, 1.08398, 0> +Zone: 506 +Incident Nodes: 347 348 339 338 401 402 393 392 +u: + (347) = 1.86339 + (348) = 2.56474 + (339) = 1.28237 + (338) = 0.931695 + (401) = 1.58509 + (402) = 2.18169 + (393) = 1.09085 + (392) = 0.792547 + + +J: globe.silo +mesh1 +Point: (in transformed space) + <-3.0785, -4.9863, 0> +Zone: 593 +Incident Nodes: 761 762 753 752 815 816 807 806 +u: + (761) = -4.75528 + (762) = -6.54508 + (753) = -5.45424 + (752) = -3.96274 + (815) = -5.59017 + (816) = -7.69421 + (807) = -6.41184 + (806) = -4.65847 + + +K: globe.silo +mesh1 +Point: <0.782909, 1.53655, 1.746> +Zone: 503 +Incident Nodes: 185 186 177 176 239 240 231 230 +u: + (185) = 1.58509 + (186) = 2.18169 + (177) = 1.09085 + (176) = 0.792547 + (239) = 1.86339 + (240) = 2.56474 + (231) = 1.28237 + (230) = 0.931695 + + +L: globe.silo +mesh1 +Point: <2.87067, -5.634, 6.40201> +Zone: 596 +Incident Nodes: 923 924 915 914 977 978 969 968 +u: + (923) = -5.59017 + (924) = -7.69421 + (915) = -6.41184 + (914) = -4.65847 + (977) = -4.75528 + (978) = -6.54508 + (969) = -5.45424 + (968) = -3.96274 + + +Pick with all materials turned on: + +M: multi_rect3d.silo +mesh1 domain 1 +Point: <0.2, 0.0666667, 0.0888889> +Zone: 225 +Incident Nodes: 269 270 280 281 390 391 401 402 +d: = 0.682125 + + +N: multi_rect3d.silo +mesh1 domain 1 +Point: <0.216667, 0.0625, 0.0833333> +Zone: 226 +Incident Nodes: 270 271 281 282 391 392 402 403 +d: = 0.667304 + + +O: multi_rect3d.silo +mesh1 domain 19 +Point: <0.2, 0.511111, 0.555556> +Zone: 605 +Incident Nodes: 731 732 742 743 852 853 863 864 +d: = 0.320833 + + +P: multi_rect3d.silo +mesh1 domain 19 +Point: <0.216667, 0.5125, 0.55> +Zone: 606 +Incident Nodes: 732 733 743 744 853 854 864 865 +d: = 0.287983 + + +Q: multi_rect3d.silo +mesh1 domain 1 +Point: <0.2, 0.075, 0.1> +Node: 402 +Incident Zones: 335 325 225 235 336 326 226 236 +d: + (335) = 0.646048 + (325) = 0.66229 + (225) = 0.682125 + (235) = 0.666367 + (336) = 0.63038 + (326) = 0.647015 + (226) = 0.667304 + (236) = 0.651187 + + +R: multi_rect3d.silo +mesh1 domain 1 +Point: <0.2, 0.075, 0.1> +Node: 402 +Incident Zones: 335 325 225 235 336 326 226 236 +d: + (335) = 0.646048 + (325) = 0.66229 + (225) = 0.682125 + (235) = 0.666367 + (336) = 0.63038 + (326) = 0.647015 + (226) = 0.667304 + (236) = 0.651187 + + +S: multi_rect3d.silo +mesh1 domain 19 +Point: <0.2, 0.5, 0.566667> +Node: 853 +Incident Zones: 705 605 706 606 +d: + (705) = 0.327687 + (605) = 0.320833 + (706) = 0.295599 + (606) = 0.287983 + + +T: multi_rect3d.silo +mesh1 domain 19 +Point: <0.2, 0.5, 0.566667> +Node: 853 +Incident Zones: 705 605 706 606 +d: + (705) = 0.327687 + (605) = 0.320833 + (706) = 0.295599 + (606) = 0.287983 + + +Pick with material 2 turned off: + +U: multi_rect3d.silo +mesh1 domain 1 +Point: <0.2, 0.0666667, 0.0888889> +Zone: 225 +Incident Nodes: 269 270 280 281 390 391 401 402 +d: = 0.682125 + + +V: multi_rect3d.silo +mesh1 domain 1 +Point: <0.216667, 0.0625, 0.0833333> +Zone: 226 +Incident Nodes: 270 271 281 282 391 392 402 403 +d: = 0.667304 + + +W: multi_rect3d.silo +mesh1 domain 19 +Point: <0.2, 0.511111, 0.555556> +Zone: 605 +Incident Nodes: 731 732 742 743 852 853 863 864 +d: = 0.320833 + + +X: multi_rect3d.silo +mesh1 domain 19 +Point: <0.216667, 0.5125, 0.55> +Zone: 606 +Incident Nodes: 732 733 743 744 853 854 864 865 +d: = 0.287983 + + +Y: multi_rect3d.silo +mesh1 domain 1 +Point: <0.2, 0.075, 0.1> +Node: 402 +Incident Zones: 335 325 225 235 336 326 226 236 +d: + (335) = 0.646048 + (325) = 0.66229 + (225) = 0.682125 + (235) = 0.666367 + (336) = 0.63038 + (326) = 0.647015 + (226) = 0.667304 + (236) = 0.651187 + + +Z: multi_rect3d.silo +mesh1 domain 1 +Point: <0.2, 0.075, 0.1> +Node: 402 +Incident Zones: 335 325 225 235 336 326 226 236 +d: + (335) = 0.646048 + (325) = 0.66229 + (225) = 0.682125 + (235) = 0.666367 + (336) = 0.63038 + (326) = 0.647015 + (226) = 0.667304 + (236) = 0.651187 + + +a: multi_rect3d.silo +mesh1 domain 19 +Point: <0.2, 0.5, 0.566667> +Node: 853 +Incident Zones: 705 605 706 606 +d: + (705) = 0.327687 + (605) = 0.320833 + (706) = 0.295599 + (606) = 0.287983 + + +b: multi_rect3d.silo +mesh1 domain 19 +Point: <0.2, 0.5, 0.566667> +Node: 853 +Incident Zones: 705 605 706 606 +d: + (705) = 0.327687 + (605) = 0.320833 + (706) = 0.295599 + (606) = 0.287983 + diff --git a/2024-12-12-22:00/poodle_trunk_serial/c_annot_macros_tafile_2.png b/2024-12-12-22:00/poodle_trunk_serial/c_annot_macros_tafile_2.png new file mode 100644 index 0000000000000000000000000000000000000000..b55a1564ba8d94eb399214867fdc7ba7e5610d28 GIT binary patch literal 3651 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/c_annot_macros_tafile_2_thumb.png b/2024-12-12-22:00/poodle_trunk_serial/c_annot_macros_tafile_2_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..e8babf8d3c2537344150fa3f3cb08ac7840c3198 GIT binary patch literal 2292 zcmb`J_cz-O1I52$#ST?_kCxh_YE@%}7&U4%Dnyl1^RfG&60024-demZs#+r|cFo$9 zs!d50MTr<8Mm>H1gXcZxJ?C@p{pJ3A&rP(vYsA9H#|Qub3*6Yi`cFRkufU)`eu)NA z0|2-cZlG%uR}x*_$*4n*kj9v%}=+NRq2l{b}Br3^zlp@b@ERM%HDZs+HwHsL~# z4v%mz0N3+Q5`M&btiGLM!QJV9>5kaJ0+TY&G z7n^S$kmK3dWJhEL&*mSmSC2h+?MkfCX$Vuv&f^)X;p$%Mnj1b4?~j*~EWN!`>T$Lo zF)y#V)+Q$+RyRJ-L<&!EAW5u!l%C*L^a7%~9UANhO##=cjW)j54Da!$1cfpC)_XD7N61`nmNm zBwNcEOgd+Xzs-Z7#;19 zgV%WF!rM}|Kx+hH-|{B%ZzGx;TUxS$ld8SK3#$JbTM)wpd=dat>W812PeMB#xsq{O zhR>Us(GW#hL7KP-IQpI?NROe6Z>^}&2-KY2eV5{iVnSrg$DnOsnjnA%0X{spxpP8NF7lS~|qVyE#^Vd3S2>0yEhv+BF6tQoYUS450?e_$u& zP;@S~?in;;Ror$KYF=2H6+JeGHNRBnbL*#?+V(IZkrk_=9o(~Qa#T>OO2U2cj;_Hu zIB$=71=VU#d0BoVDTZ-{!d>y{h+<0GWR|aPzg7lv{_c9`IO8Ix{d6_+)}3Z1#--S~ zxORPYh`un@+-L4$Ee6^Iw2*ch<+q>3<l90sHmLyT6pF4avGtK zuR2_4(bEyxxu|Q#jLJd>)LzG)Rje6s-88LDYanfJtLwz%4y#iYLDXAfYaIKW{iwNA z1wnhjZJLWl z4pBq+ih^|8W%y|(Vda=09VqdfKC++~h2_r7%)|QECEUA&JGJDrU075-GMbo7DwQH= zo?nXqDi?v7)K{s@>)JK% zeN3>U5*6BNYTFISFyIsH=t*%F(OO6wi)Djwo%iqvcjvLb>~byP6jRseI2mTUqn$P8 z3giKOXe*TPINM>5QXNQ^+7o4k5{(n<*W(DBL0#!#fh=_WDo)%E+4sF6)r1Cy;GES~ z9!iIv#Z4}Q-HW}2-pH~^Yuw+SCw@M`6$I}V}rca73G_iD}v8kA; z4fb*N8_SVLec!h8&oMNLPS<5#M6;RRL?B9l9~f;EHEjv=Y(rEdIS^RTf66Pc2gGkt z$uJ2_;f8_TZVk3|5KvQPGxf?hKzPgipd9!0#(wW9lIvVFNNwPh?%BA&X;F+y2pveS>;o|Feb8KkCF=ghHf1-V1f_L*x_Y9O!Nj|w`(+l5 z0Ch=Wkh1xd&+i5k9KKuJJ*mb6#}Fri0`+cs$b8leI19If!AwdM%zNf;|MerbX93^f z8=vjw7oIMumLf|Ai*Mrx9AsFFplS0iyk^&DVNCdq*;)x|@f18IaybFENH~Y%XqV}~ fS*8DbXU|!BnXG9cP&N4H%>Z!2y9U*IsOWzHy52;L literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/c_annot_macros_tafile_6.png b/2024-12-12-22:00/poodle_trunk_serial/c_annot_macros_tafile_6.png new file mode 100644 index 0000000000000000000000000000000000000000..d614e30463852f05a7385b7997db2930a5e54c4c GIT binary patch literal 3628 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/c_annot_macros_tafile_6_thumb.png b/2024-12-12-22:00/poodle_trunk_serial/c_annot_macros_tafile_6_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..235f161028019115bd05425399a7d042ec0d6921 GIT binary patch literal 2160 zcmciE`#%#30|szMijhl8NsLZxIIcM-jOH$P4Qmm`5?Zo_BbLk12#F|@OCfj7mKAb| zjlD%{0ZQv9U2kdTn1y`8n&&%OG;hzbAf z{dnO6LPBDO_SP1NsKTZE37n!Wh;H_>r7=3PL9lplx-4|jXfNxpFwOkrJzzP!rWmO` z#k9&&uOU{6OUIhG9$$@@(M?fX(I3DLRoaKP`iZ$fXJ(u9!I*+8KD5$0c%T)PSw8+c@OxHRky z(Gr@m1mUG@T@U@>=yBx^?GmQ9OnY?A4F&li?m@aHxZz&akbzX2jM8WX7mQ!_?Z2&X zFgiKX%krD@!jHN7q0wd&qRbD`=&wUb^Q%pIVsbisYM&f9j6WW`|6^sBUIN2%pFAlv zAxyc++!a+mIRbsb)7@6fD8wL<@k!t;V3S~PulIt^QhWP83o%)$Qn@){!XX7)h{-#$ zk2|18r#L45Nh3B1Tjbq8-u*$7WjT0QMGBl7D?1%HgdkiKTpoXOqHoK)<}Ch0Y2zku z@M{+?X0i>Z6!R^QdMM}S%ChNbo&KoTCT~cf3Q84$xS-NinouLkut&VS`NiIdTeHV? zW^xf?mZjX2e)4E`IzSF=;f1Up{iYv)tBn`4dK($^cyqyC8B5B2n72NEXMeLA0m?v*I_JL{-x1ogjli8Y4d!xnbux+t(F_H_83TfB_PcjNFUBU8Iq;wp>? zlPu!^H5YF&2MbJzH!C*>Va{ioH)yJqpN#Xnw)TxfFBvZeLe5q0(EF!4{zfJpJN2G` zd)!}<=ys|cNVsh;kjR2)=I>B=`W+`mgEfsdR)R=)Yu+-W4sQm;Tp`H+b$Rsj`p#r{`ZvYdMn zOp_){Gzvk@M5{2{+~nCV2oI5jMgD!zI8M$@kU7hpW4+^^k4}5#DE=Tqw+)LY1=wpH zlr}T?&eM&32P4gXWEEU=T&-W)v&!7j-MSRFF;!WqR(I2TEM#%fpCH$A@Y#2rSrSvY zapzS`q(**_NqV18=5R;=Zy*TeE}4yPNP30!|S* zru1r;ztw5GAG7(;-&*GEfL8@hdf*LR8U+q#t~FyI6MQNYZ*uyTVgBHL>$H>N4x5pX z=w4rD9`9_icG*cx9h)hC96`O0PI1tSdTfPT-4oc%;|ttft&O^w?oNuID5zu+l4=|H zF5$U8yf_e$nK&SD2_5ik^O*!hS%zLqrV@J0n2gR_aG8XM3_NmGfJMD2QcLbtmFrcW zUT=)rK38fQpwPlK#Fa14Bc!{2Q9#Ay`R=9-I!Z!WX@tJD&qd^-+>PBA(eFW8VG&M_ z04c%L3i>=OBPVL+;k>kqQ)c^g&JP#tsEw~0Pf80o7_aCfEFmM7iSQZoeDKk`Ks(?1xn=d2+dilW<1V@|h`{foY7_?d z%w~(sWGw`hWuisZAZc}4h|x)jT*BAomPjqFza=6WdWRXPxdbKQT>RrZ2VavP=a;MI z%uB{)fxwB68!nH&goHQG(P1LoojRv zph?@1IvhB#+)($W2nfseY|wageS?CGHI{_tWv z*n?=Zf(HEd=|fy67Z|VXnrCGxa)xa}hN!Y*4G+l!TWuAEdz#N{kA{2a-PnqEq0DQ( zJ$<2eoS(&d5d2^r6xV7{@nyQHHx+2mP_$a9oZ4M9erA)NU{tSs`;!4nCpVb3cGlfS z-Kx5x*H=Ze244+%mQSu~03uyH$F?rj=>sXv_UY8nfvBYeHPkXdhPR;qItbzPNZkmg z3+3thXh!4RyTLX6Ezd#y*OkSWEb zY%~{7L=snG*G-QpH_@k;NgKkOg zWg=pm!izJuBBsp5%=$q`Ea2fsG$&Zcvw4y7qA%BThy_Ld50L+h!Hw}E4Qj9|a3nE&32SF^XHQgvbS-urdawV{sS#8 B8xsHk literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/c_avg_value_02.txt b/2024-12-12-22:00/poodle_trunk_serial/c_avg_value_02.txt new file mode 100644 index 000000000..f6443704e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/c_avg_value_02.txt @@ -0,0 +1 @@ +The average value of vel is -1.62203e-17, -1.2443e-17, 0 \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/c_blueprint_rz_cyl_rectilinear.root_plot_revolved_to_3D.png b/2024-12-12-22:00/poodle_trunk_serial/c_blueprint_rz_cyl_rectilinear.root_plot_revolved_to_3D.png new file mode 100644 index 0000000000000000000000000000000000000000..493abf22e0d4ca689d03c2737912dced2612d833 GIT binary patch literal 2639 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 OWAJqKb6Mw<&;$T_;1Es# literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/c_blueprint_rz_cyl_unstructured.root_plot_revolved_to_3D_thumb.png b/2024-12-12-22:00/poodle_trunk_serial/c_blueprint_rz_cyl_unstructured.root_plot_revolved_to_3D_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..a5435f278bc5795ed2ef92f67fbaa63561454408 GIT binary patch literal 289 zcmeAS@N?(olHy`uVBq!ia0vp^DImeVyDXpME zt=1k*s2zKK6Zd^T-~Zq_j^~HZFW2!ouH!n-^ZkCk&m`W=M3;_+g9ZQq(CO=eEdT&A zNz$PrCqCKbW#tGPd+3m<88B#yH8A{YN87R&Ll>fEBr?m>@OhiHp5 zKUe31Cl3q^umK30ZEKW(LOPE~z z{_MaSWbK|u?|d@G=g8YBkjwKCrR9T6I>O20!$Hir^O`cda6n!i7_TIdFC|vB{J^J- zOrB3&j*57Al}{VJhk$Mk@IIbN-_6s5amcA_VU*q}VBGHps-EejajM%?W&K@I?f&d% zdj(59hE+yoVQ_96xiPiyl1XzG)KD?HFps~&ts9CDEuV|sI|w`RY6;* z=*v}Kc}yOy&P*;}yO_DLVupbAD@Vh$3|btyzziyqpuQ7ekz}kR0ZXtg;F9bUaOGE- z=T=r?CikY$r239YUn)ygE-wxN`*iv5dhgZwct6V55n!@ZEV{$dV0WAa6VM&FvR-RS z7kq}>oD|}>foMMUP#B3$Y>t)-w{s*ZHwNtO@X5z z&$HEPsInN}utzh#$xQ0Qf)_Oif@s`gjjZh;9_6WpHmS6)O>!+2E2>gS4AB+(;8=DcJniu?H6NRH9lu~MIY)3QUHJf3FY)19irc=# zNtk|*#uCaPG=rJD-v?BL)Pg2uoSC9*bmH>*Vu3>`Q4o*uabWP_ZcyTqPXd6{Fh)|- zTwpp9Av+k>Ar5xhWUvBKu1IcOJqY8#7L#|(UX`RbR)+Q5bmWP2SPa|JAcAO{!dOvg z7B+fw6j#D(o#q84bb04jPhD@$7LG+(APr2<_~FqOfkydwHV2+v61uj>>gqW~D?jYs zv<)@{^rU-p)yzA9?#L-uOmI45*N z;NBeQ89Vo+A)MX{H&W^5z?P@Tbx!e0>Y-pjlcO{HaRT6>l`VsuG*l6;89l43WW8?7 z!&6#uSiJ*-?gjsI+4%m-#|njxU+?5nT96fsgz+C@QGP5RYmkKJ>dZAAlTh^G&k+F$ z36jY)sEE#oDczso6T0}>brrwTxq01q)UHz1c$5aQ|6!B$;Yk^tZ>#*|l!A|2e)$j$ z(af2@AssS<4!!Nu0>Qe^=X3NR$z|e>g1ON0YXaDeH_8r14X<7+Lq*Qj`i6R^Fti(8 zo$L)m-u(XiMuvIGa*eW-2n`!SvDqmT)yap{U~zZSWC8q)VkCAkx^N1g0-AjuLYv$b zr(IY)e+pd`g9dl7HAp!zTtlSYz1=Ng!9o~6QE)yk zzfh$=M}T}de)u`R_u?28iC9v7<|1JKw(+7)g(=RKx%ARo4zRjxK_B1W!W?n2ewtwg zLT#GSqJT$p)L9##CpG$OgEX~^42?b?M}UEC+1>VESp8w07j)R7gek`2i46(Q$l@VF zdf20PdL23H@1)7k`$?ZBu*_hsnLiR>O!bzT6uARH-L^;;mHVc`0ZAB5nI0eM9Qkim zmKPdd@<*2a+=|YLdP#6U2iX^EmWai%V6ul@yl);E}r{?s%ME^ z`xe9Db*>8(_0Hp0gXw6?I7K6WE!LJWB@4Ep-V~!9+zQ4kRLtDPp6T62eFdj|K?1o8 zFUd3t^yY%q1T6N>tQUjXu+yN31vvnl6(#X-^JAY>@sp@}*0J;2m9qTaRP<~tg$;>a z>Rzkoa1<#>=Z?&t?@;R1t+MF)!a_3c6;ffG*+roECy8!Hoh&BVV2-IZvdgke0S)dix2Yokh7+1(}zw>J{l?tpys~wFC7*&w{Rea2FXQh^tqwMs(sv1by#JjPVtX-UE1oT6OL z2Az6^Lg;n0JoJelPJP`gLtK4KgS41@U7P}R$rN0P0GZ%?XZPEt9?@mCUpJ+h+`jKd zf7??MjvMPT8qL3Q^#nw*LiWhj&=_G-IFMUEC_XxU`*H=vF`z*ymubTfq|?o%7lL6` zk4|40)>-!A;UlT!JUZA5ue-4{xu;1-OEsE`-QC3*$;tKYdV;qja)b`tvIKswwdkp& z^w%jKeTOqrep2(sBMvmj*I(Qb52>u7%aT}@SM9P&L2_@ZVJE0!Zd+8J4JYb6J9sKG zz(bTcabNT7nDsS(5-Iw4a0qOA`y1rKkn!O~)k@6cnBZ5^+(t5zAm2~njP}a^zc`pv z3W0&E)hs(p-iB>`B{o4p`dDCEI+D`P@lE9d6Wx$;Qsg2zJ;wZL?wBHY^D|*0u8!?4 z@OjOPnUkJptv6S~-g+F>ZTYKk^&_B+n)#E?gV(z@1JAfkivC(4ZUh)+`GT;*&@=4! zFUj(vT@g^lyUR3tY^nW&StfAgu4u&znw;Op8T2})Rg3?@W@ua?+t45OxCtfd3tqrk zq=M3y%(+-wU{KDZ0aJ}QauJd8m~Bda zIyZ#abQxk8isA!I0P0H3S(Z2kTtj14@KFz~N9a2`dA?6N=R?T>rVjWqc-$$LDvMTC zx|4SH6dBctL1YU5%BwdIh|d9X7uveqUO#l-oC&2g z_{HOi#)Jh1$A1H*{W5o-nty>$=vJQRJxAkk^kF*c2%b#mB+?veMU7j=4lkd!KB&Gv z5$+#lTN#gg_vF*T#gp~Lgo%{Ie{ED-qEtSQ(Ao3kL0UTH@ctOVg5(Yht^~#`r7^+Ud`Ti>Zg3vE5t;kIs;cnx3RE$Ban^+8R&cpIZR4wC1H7e-Q^- zhF>3R+KDFJH8j39iDxb#cb~$^4*q;Amo?}QJ#KD~%BR`}qi*PMX`zmT3;xNl@jJ@9M=W4+jWrI{gl=H6pr3sY_hkUu}d#&=)GD_-MTQp`SYHIc@ow_Cg5W!6sZfCrDL`BL8|Q2dQ=N03Jli&lxC`@501sH%D?6o>iCjaq5XZDe5H z)nq{Ya#Gr^CCP0nBf!*cwNh2QEm+{Hxq$@B>bp?4L4E`7qJtvTPw)NjIX8X9W)Ng! zaozVjWUeM_WjtJM1nhl#sS6K;2UZNSegoqpKC^M`(2otkhzWC^S*4jphuRGIUI8AX z;hxGSoB8mCTA|F|z#KoU{Curgp$m-sPv?+)fxb0On{12{vPc!~4_ght6fd`RJ>ub` zws6}o&rb(oysjxY*{g^GYsv?Jw#QtV!*CW)qfNh=-T; zkM~3S34XZCM1S`?&ms=mQPWcXH4*}nHt&U7R-v2zO%XRa1nneQMtl-xKa(Xu$!2!u zjBxX%S9tc!OJ;obL-hHd!3qyf&P*Acj^!)b)nFg=^CP*a(6C?FRAkv$V?2HtKrA{ zxk{zPe43wwzH$L-Bd@woU9RznI}!|N z&98e`3g*ax&y+_QvHoLaq4*~mBg{y#_z$*KwZ-=e#1}STzAcJhX-{7pB;0aNDb@KK z5%T(;g2sC-Kg*Z;CvX~YCT_?G^FHFfr#}!Ydu1{m`#_+O?6p}2?|-r(2Pn5;_}=lM z-aUWernN&Pfs)zala>sNQ%k>A!9u!}tOs!!@`7bb*tK0>SL`ooJuOq#XuPe}c+zf< zIcf{PTET1FV5Zlc#hpv(ho=0rtD?*7)NLP;)9TLiQ^pAfZ^eD}Mkx|lSN*m7XIyKv zw`cn?8viywGDc~+d9>(sbGFSy%4?!(9aB-fu9(MKLJ+(gKWPK=i;3#Khy6rz@Ds literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/c_life03_thumb.png b/2024-12-12-22:00/poodle_trunk_serial/c_life03_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..2061bbd30b10fe634b315b763c7dc2ac949034f2 GIT binary patch literal 12766 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/c_ops_dualmesh_mesh_plot_2d_01.png b/2024-12-12-22:00/poodle_trunk_serial/c_ops_dualmesh_mesh_plot_2d_01.png new file mode 100644 index 0000000000000000000000000000000000000000..c8d59dc37937b7b654da4a1cb34c1a09f17a922a GIT binary patch literal 1507 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_stuo-U3d6?5L+Hk>4DF2L%z z_FaAYsfOhbW^}!BPo0%}(4o*!cE0`oy1&1;U;K%cXZZKtg~L$L$)`m?Sn&uh=EjE{ z^>uYVK6TbNjbs%6NY;t{4}Sk^f6bqAwfCPNEu24pe!cv?BPkP~Yru_|{b$iu*{7$U z)W+F-Db7_+FG}BZv{)obsbvO-qMB2OZ{5XPeV^mTik`X6`xP-CnmY_leItpKTR=a6fE3 zsULMaaG%e;=SQ9GubUOAm8(VDxPxp3YE^2v@kD&>Ta9>#%d@2|CtFX}owpe7{hUwT z*UF~oPySx{@xuA7y>m{^Jt=lR5TX_60JER2+196~pZvY2;>Gh@Zs(qyOX(gC-o{7( zYW43QZ-)o+-?)pz#it`Qf=9iLmYr|cAAiXIKp%Ih2QQ6q6^j%p_|5JfEE}>$H-0*> P@MiFI^>bP0l+XkKSs|7t literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/c_ops_dualmesh_mesh_plot_2d_01_thumb.png b/2024-12-12-22:00/poodle_trunk_serial/c_ops_dualmesh_mesh_plot_2d_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..cfd93c4f44bfc8286133cbe58691d2e6ec501482 GIT binary patch literal 545 zcmeAS@N?(olHy`uVBq!ia0vp^DIme!{lb=*clHaG zSWFW*F63o(ZGG*%zq9|Iy8gPrLD;{Y?{E*SzW0Nm11Pt;8L9;?%wqPGXxj;SkREiwq6T-G2M~@7PmjzLVXj z73b}YX%m=tK3#Kn-1_v*MxE!=EuYr}E{!>*VmH6kZoYi~aRZ+3zxPhDmFusZcb-e} zOYQqPuXnBMIQz3k?0#GD=RfmJZBsZEy*VPCP6#L~W99@*Fejux2UU&eLK`um@0#N7o(J%gvKpUXO@geCwF751Y5 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/c_ospray_domain_boundaries_00.png b/2024-12-12-22:00/poodle_trunk_serial/c_ospray_domain_boundaries_00.png new file mode 100644 index 0000000000000000000000000000000000000000..0ad77dbeaab779862021f76d3205ae8c0095997f GIT binary patch literal 47237 zcmeEtQ)4Aeu0ssIMSs4jc004sV{|$J^e>0Dy_~ZaUn}V!_sG58B#fRmLtMQ7>v^M$v>=4{-J8?zj)E9lI z^nL1*7Se{}F6@EyST%KZW0EvRBAhrf<)U(QDXLu;2F@L|d=^(+(jV#0mv^0N^mkl5 z?T}NE6Hk|Kmu^$5|CW}CoF~|hiz&00EOVCTbsn2ocACDQ8{E6H_sxH+F8lLc%3Ztc zA$fTeUg^9k_x2n9?!SFM^l2yrs^>k&&P{{MT(y-va-y&QNzv6Nq314H3LgHS@c%Ag zc`Ov~CVsCvUn$!U!$L~-zW=Uddj2f0>`5=wZ^ta>D^u9!&P>?P{Om6(i{Ctp$F8;S zXPWOQZs*&F!6Q{(*|cEw{HukXPgnGHhwn*Af1sIuDhw}xL%)6NYxwI!{+%H%>%)XF z?bxD&#rMfsc%QiSv+rwn*(bMV_us|lMLc-0^^v|8plx&$p|RAanT5I*?mEzMGp3yp z{;f64`Y71;J6(Db5L$mv?T)m3+NfSCJ2miG{%`x4W%I@0{nkL@_Ri7hA6JA?aH#}u zcs@S-o|Sy=w*8*R`p-W;G1fc$9VfJz+uMV<5eC|h9`QFkJ6PS{h&QtN0{$}Lt@3mh zIcC3n98a%ucjUP}-WojXb>BxA9Q-4rQqqIRO)%-}0(Sjxb_zll;weQZ#$_;J6GC<4 zHtgxXza^5vN{c_vy$8|b-^>4a!!}>h{hscJNjH~L=6&&f?*m#4z6rk8`n`3(zqH-{ zW4+(&`JHhvsUL4B>kuRmDDw>AG|Ovl8Lvp`O+5|p$N9p{1_J=S)Q>UY5JAuRo3MY^ zU+xxP+;+BaX-GF058Dlp-UlD|aBWfjo_YK}j`utMy)K`wds0S|nH+WmqmkDvbcm=T*%sHWAFSmjn2``+A*y zX>)1pxEowHD|8+6_`O@w8wf}?`*8gxFu-TYh%T@zz z=oL4vKhO7ylcf`H;uhE8wU!+)@Q6HF$H(KGM{4ATn0=s zrB@_KH*5WZKU%BH;Ww3xiBe7l{%Vh`P&Nvnl<6=qpg3PD9{L0|$df}<9JCMtLyiyu z3qLS{5DND};%~q1O;s%H%H?~N*Ur2DX{&*z-&5pw_oCsqso`_#)qO3f^p5%u$j*X? zgP3c<>AcR5rNfUfRHiyq5rP>=IPamqZl_B~?x%3=oz?ZnM=jp7ZLqD{sKG%onS)Z? zeb6FUMweSz0DPnTey>9|c*S541~VkcFrR^372Thy&TRc@MF{NXi}hTS@zuM1JNfQD z{E?>bb1{DLY5#G%zWtT}_qFwPcAonz$oKC#F`ke1&lDM zbVK+~F1;MDI=v62Idcl^>pR9(}J6 z@amiMKRsZ1KI$bVHvXrLfBmNqIf`$1ccLxp5K5&B#nlLwvv;e5ygAU*S6c|%6|kV zI4I*(WzLo&B!2STFOcmZ5|aH3zIzUT&6-snW2pQWNU3{b8;od3UGg2)c5%ubRG<`U zm?$T*KOjU@g-8|1_dOkyPq$r(p5xF1pa`XfiB+c{q8zBRLgos%ZUJb=anH{#793$T0?Qc95#X=(n-mkkyX;an>JvjR*pSXlK=zv; z)#3@wfLEaH=$=IAnXvnTA$LbnsM>F836s08_MOS^AWWExnT15&&SF|_;Zulggv!v1 z@bVgJdK;Dd@1^m#{l{2v`md&%EeH4LO{R;f`i_t#!h7W0f%1y^cFb70T$0cZrV2bD2Z2& ziF@%}+xn!JjJVEM1|ADUh$A@a>3B(LgITv2au9&Bg%^oIPmrdK;lSk zv#{PxCL#V&RhIn;HCV%V%oqn~4~hWhwo$-hm<;(Q-jz}iC6}?9WfO(59G8O#3Gk=g z(Ln=W_exH{GwGBs1l()uMC;Kw%-@`4mM`S4`@@f$uaAMJ_o&~w#pu3YXrDlYG^D@| z&Y2c4p;rGcWIW&%lJDRe-)YX}A8I+kdJj@CM%`&0y!EKC>sv|m`B0I z5*`f>*Eym|^g&2ff5G4z6@$bnFon*;il9dBDOX;^pVX7$tKh09a~bFjq?Rn_!$Yn@ zMpoie?Zkx>5!sVoUuX3J-(8~Z3T_+iD}AmGTeJyfJq7);Xn#lB{zIg{#g_s`$ZbX@u82sKOioP%S_NJ^uU;3r@2r(LFNDL+WeIk#Ub=nf4PJVONuO6J zo(leQ7#7d<_QQDB`l2#%qh5aJ*mx1UujX#e?`=FT2(S!0B&fD@i(2OgmvVMfTW9~C znDw_D-ZD%^H(_=JN3L z*(&@bE7&pb8F?PjJFDb#R#LIvFNnVy0?eW^VViFOx~QLL^v!=#6L~CE7MP{6r;&QzVh5 zJ?WQ%#E^@WaMPsOcBjiH5$@GCyPLt~^I+kl`WtCy%puFiQtfBQ*U6jTjfVG2l4n)f zgOZUT8%1{7;n&+ooc`~^IOsrf2*<8s-7Yvc7p2yYPI1yX$iNR|r|`9{!B3$UH?~cw ztF3P`!Qyyc6JAaJ*1=IGJ9Xt5(VY4Co>0+J1-C%JB(@ojlPm1pffIBpJgBX>lu5)K z&oon6%g_*(P7xOfXV|COnvWp=Czx~eFYK5r9_C36$s)WGC3!sYbqXsvAY+G;SPBII zEh!gdHD?My9Y0F3Onla8F_>lJ_Pcp~+|_gIdK(;GZ*;Yl)X7i zGR|UI{MQJSI$??cw&^_u9xhA-H)hlzLNK+pjXzg?ZzMV~5Jov=MZ|w1v<^y=ZUMk3 zVf(U3ZiL>`g12xGyd*)chzAr4r(l8(5ak{nX9_FkLLQ|9=!w8)YsWNk*4(Tns-O~7 zDCCN`l)$#gLxKD9$2Xo0y`DZFnf>3^y@WZpTH6KQdxf9oHb2asZn*W{$8=ae9t}Pl zx9)1(ges1Gwe5Wb>(j4!-UGh&_=Vlw4?ii|J6!GT;7|{C#m1>t&0>7v-ylbIu4az7 zUsF3Q7OCy*EWZG@eJ{=%TLD~nqL|nz!AD*RnJwwuU}&bOYu*DLyK$;E!BR;>a-vJjxtiM zj@VK_{Buu_Bsz2D4=B*YVO=2Bi?u39JD;8=fWF)Y-Q!3};r2O`CzrM2@1L^!i{0Jz z)Uc~2>F&Fzk751x&(5#&AAtuI)ig&4Vb&y+Y@Do{{9=N9hG&GaBi>MeHK{wQX#*ex z_uK(ePrM_NKWyX}G$HvhjWo0g=p;A-M3yxJfpMg=&j1M*#<#%=z^b7zO}(#xPbc5* z7Kw2&0yVw^GMiW{&>@hZNJ$R4WGo4(JS5`c!$ir6_3CqgU=fKd#S8^D<@|9oNZE=X z59ntPQ^+^O_$$1qfW$6UMSmnzvONcMCkh44Gl_6}PItk-v|rEneZ#No-5Sr!I#e8m!D|xGbEnIz4UA=^nz7JHe^a?jWm_{qlz3H#K#0fm2D`mCE`J_$neJy8=Yl>{^qn@C|T8x7N;Yv z0O9`z{PPKRIJ)eJSeVM!%3XgxKtYgy8Nv96NwyNfCqi;`9-G?S9AAg zM_a;kX&@w9coVIfp7$ir<-_-yq^p=l|^x!i;v17lH7}pnv|mrpp#>p)2Lm-SbZ6B zV4Ou4+0CY~5l52rAfib4DhIHCDmcKSa;+v>q7L8QdwDKFOe0IpQ{6k{Kg0HFxz}N zy!k?s&Lcg2@?V7wC&lG;eqE2ZJs`c*+rN{45`LX63sn5QXIb!MADFoM>i2u?e&t6y zHq#aIEpC~28QQrSivIYBPb5z?s4wN%@TC#S7LIG#eax-VA37pBo;GnNT>7DgGNS+> zmtEn>{KaVw!u4gxNaBK@B@NR#fZ|?UZ5TO4iZ6k^FJG71-^Y0tad_MG} zdH337yS;yIUq9IUxP3Tx=SI`K-=x*Z{0sarikDQZFel>h!|WFyj{bQ|UN&|d10@8q zx(cl`+yIdvQZUmvdVflU<|8{4ih2A9thF&~#Hd_x5P_P}pNYa@^qv*%+{4ENG}e$~ zqczh%Gs+&HE(O$6xfx%EQBpgH1?W`q$@tk7;|T3M?2EAvJxGQbIvK1~iij|87=BTq z;MvUBDf~4x_E$hMzK(>?NaZl7P#ds2cZk=^*c{y|w!qRc6W(hWxuT3GXy;E^C#o9h zngv{>M^#ODX{I;AcrtljIf%trgTJfs~Gz3@k%Th7aQy(V>?M z$T7-Mi9<__rG8e9uf56RYy-oJsZ_xiL#eF=HZ4iX>K_lvTxA|$_R!wKOA}DnV@w&9 zhsvo0Dk6?rk3?kd?KfQF!@_wH$2q2D+pMO6Aigzb~B4~Q@_S<{%_v%I_|N7-|;QlJE6hX63?#i{5b+% zL2(+hH^Py_Z}CUuP}I1cBD`^6fJ941lPtH{#tD?g^zLm^o&E_m(6n>n+bb$%sV(;4 zG_L?PWus~a5DVvrHAuEk!TjWhi%yX=YP|Gk|1KyM;PIcZ|C#VB zgNpZe!%!4wgdD3!K^6x_yt(bj(|B z`1yxCu5bFL5#F+lihL@RR6`xcM0}y2g7kWw?ZU5c%FiRz12$&rU!3T*#+TJC5#`bG zYoQj?)di`Rzl3-G#b_sr=HWrvGu{A6j@}t$A0&AcH(pZ`{s~QLfxub(geWKhopv@o z)o)+m+ZqMs&O{_lGm&YKu3y3pA^y6$I=xevjCZ2rMI;FsCh)$ zb=vw?SQ?e+v*3fc6-v6;2vp#KVYxE>}Uad4E;NcbzsqZsV4 z2@u(-$v6uo!+{q!Ku<{md38HUZ7z(Iinf@fg{1$GNUat?kZT;*(13{(z|aD!P-lb3 zk+}D?!Sb!5un-Gr*Ly~s-(Et_$J?~;iQCut*Pr$=nx5Ft$FIA*_ob`OuCJYfx0%(u zmwCsXU336gCb)S91m$n*^2pfoRM&}gF5rc_Tx;b8*Sa0iWtNp_T@XO2C;4VnSPkdQEBxw89d6B9|NQa}!7b${y|%g2{Gt ze&c~V;2Y{!xmNmY9peDGCFy20x@VvYofh`%m=&WLwlKb$!%QPBM1`b%%m~rZsmmX= z|JY@U=NaxGBcV~8)Kk-fQ+DWFdt>zW3eDoRO7FElxsCc_bVzfTfF5&FDCRHeG~XcE zea5I!>L4hdH{PiO>q}t8gMc%O=G#nfr8k2bq=a>~HhG>;<}aBn0$*-@E8SE@$=O1XOvQ3Ldw_b4e>6S*cWtowkEC^BKAE8fG7tZLZyAtAZvj_ zOfdhw%Sy&XGzUbVDq!wEREjQF_!&sAF)l`GC_|ZQ7+LW+&{&eXnD^B+mE#gJRW<710J4ES}o-KG5K|$pz9`A;zU$8e`Ep9R&n4Qy`Q~H0p z9xQ|$&mBHsJk@vHK3nqsDcHw6J@`0v8bfGWhNk;yTJB<zhz zUs}+LA)+vH;$5PRAd0yS$|M#U{uqiE;zd&R?QGNrt$^>M&1B2pq ztcwtI3CxbFP}o+FS&vBj5fBP`7YnbUgd&98I?>%Kuo4_ujhodBfu6`xLW%9W`-LZU0QuwM9?# z5%d)&{B-=a#UOk$cPKzQFty1c`-6y?t)^j=K!l?`36gMXn{2Y}j>Ilcbo*>p+Wj0R zyIXOc|AJq0lAhDV>Nhk2WbBY6%|(Pjn!3EL`5$y6pem#%WoSIC#(fmKTtrZYRv4kZ z64Ncroe4BH7!V#0L8%4{uPL5aSJ|)ZbhZGspaO(8W$-6lPF#>7CYjCEM3CTs3V4^b z`R#73DR52+^^2UMbL@lH%*rt*hS97d?Wh!;g3G74EVLIQz%fW#%XPwE>zIi`4NI*N_(wjO9+-!;rv{MeOB(DnY`R&0Y*0d6W z{?Q?kZwYoFxa+9VC%>2UJnViBJ^nmG^L}o9U(3TOGXM8=tgo-{JK6na@Yxd;w*mLs zUP`<|x4g(O6G(XF^Jo023urR!btS%D>8hPJ{pSrP^H&psIk{0zFa9$mudS*Jv{XZB zvl|7kT7+SuYD(muN_cM|puDc!_rJDafR|aE8J`MVGCx8->=4Pgkf{B^!z#UrY^4e!6#94^icw}>oTJo zGT0{oBfC#ZC71XDi@4d8Fb%Ay*#($cJO{S?>vCbpDs)}W9k^P3g=$(%KC$=z{Wo7e z`zTf9o>vp>*1m4~y^GhzqWQkhUI*OavI_+`_>c-&@D5NvnT&mIc`Z`sb}IUaZ99F* ztgrvMBe`d)8Yhrt^|Z$%m=W2gifi~SYS>IwJw?u!8r?hgQ9@INl@<8)rNm=w^MTo&{>eHYeQVN?#SCFl@tY907;;4>i8(m2m z*D6}&`oM!zRJb@*r~z;KMM#s$xA)!LNWN=23G~f+46Gpi+)1)e5v5+Gr^Aq|bY(?o zC>UF-!2w8}`JS-9u719*_V?@fesudC({!Ex_{{U(@4mm_nEnIv=B{^MJrq27o$!VP zSb;^*3BQV>?}^C5@+D%o_|3)XP(n6*9wDbhmYYFvC{9s zS7E~AT|$k2lBtbLsdd2~(=sl5EehbqL=hvCiQ#~s& zJM{>DN9If_M-611hlIcO4;s}!GQSzqli)p(o#^Y?#s3I(q7bEyul&Z}0y(O$8R6W! zn9wKZ=k5Z2$!Fr=3_96^jzLE1r)~~Tb4G!}%>1o&A2dnww*qXK+@4QIc!!^Jbg+M? z6E|(|IBVbGO*(y}_!X2#dP(>}tWoQ0`!-Vh9C*s(O(Jn-zX%^@z5B~B&Jkq;iL%%c zrG*uNuKxSh%nL?`mlb9e#qW`5sMpk9C@ETu@~DB8<6v=hLS8#0h zL?bLT>pYgCzBVh6-`SNzqYWuDZg(Q`x8vt=x6Iv$lvB@sNNF2kNrMa-S;9WEp2Jn# zl%4hU=jtYDM)&o!_wBX4-`)Q46I#vN(bVp3mhaZb)eo_% z#s-vOZy02tagk*GExZT=EYFH)Zz*qsMks=q=|rOtosp5Q*yuT9d>)2d%xz1;4?bTy z@;@Tisq&gfg`z7vVl(oyw-rhOE6wzNi2)S$RR(gI$aiU6Cd)*E;rL zYF-ZCC<8nR9j>o25JhjLp_VbmR{|sjPL57@3aaocC*w$IZ8;9&jTGNfqB2ZVz%a%6 zMt(fGB4B6e{4eUBbZJgc+H~GWD5=-euT?jLSF}Giw|UMV2?i}4U(Q?HA46X+gw}G` zsm6U@hgWZy+aG(kXZ!t&i!fz6Ya7%cgEn2uu5gxtH90^X->^&8v34_2_X!8hz&>d_A;Ifc1QYEtr?ZNd?uMOuN)>TlV!S@3xJU~&_^|H5%a7Wh%kU@-p+78d&x zo`c_ip?!3tF^*gWPt{XaugvBMGHk(}rp#wc9D9La`hkwG`U_@3ffQc-mHZ25S9{+R z2S8@1ZIV?)=cM?(aBOTyu9LXEUqYSftQtF*DVc@|g&=xbGPnVS0NfA3i2_)Ext_Q^ zNqdcB*)e#o?mlQ-pVheyHu!{T?LMY>dU|63oUOl((HZ=lOE~So`^mXE_esX%hK1&& zYvM&nDUTvv<3^^uEY}I(!9W9yA&^I;BL2MXUm`NHD*|NWOPb$UJN!c5wjgstWDamq zJaoJZPzBys@=Pf;a< z7g-1lm*5p}?BEDI9vK7`8k@>Pl>Y{vG+TgAp~1P#-zpiXf;L7in?**&zQadYx$r=Q zaSP7wGRn+2_*whIKORA|U?3Fc-SnEv=Ur=AhrQ4K zBR6bWV>xlhD_c-W7Vm_gQRDn7*tVFs!RSk-bvvNnBu5bG+=_6f0asz?6}ec{U@j`2 z)*d@d2dDLTk~Du1pH@0|;Lu$@HG`2xZV-V|J~WUJ9TnDu7&lkTreq;Rr8L)Xc~5g1 z+$u3MX3iCKN0B@)De&GEw2D%N_hmK0GxytsUP&bWq_k_a74bsQz_A^}>tHqNh|NK2 zjuyq7Gud-U+!OYRTuFc*hSAmLkW8J3HJ&pgURrY?uLxv}b=5fhglZus2X#7aYnp8Z zl2|vX0M&2-ILDYMc{Jw=mk8_Vaf5#LqLB5{UzZ7#7ID=39ZD`2%Mj;lvj}w+0$0Dv z+hX0ZQ}Xt-W&Vb9i;YEF69wLg_QY?9<$En){}&rHCMx@V11xA z53FVeb5kMLM7GN%jkGutGr0cj=rUx2=l^BZn{ZWe^9Z9mFCS{oQ3TH~h3%Bzn=nbK z+zMd|%f%ypdiI-1am$-T2~xAsiA z^S{b6%r%-STJ{qA`c8(-q1-=Acta5Nu0ILB*>_Nmp(U&Fy*_|tVYv5|DJD%fP3|l= zo=aGZM3uV?{-wE5ktU796ZI%{+WI586HXy!_in1t=%0emmZXnGQaROshSN)`*W=P9 zE%__X1is{puaQ>GXTEYba#%~UEam_Hu6aS& z^D2O7Y($dMgV-z%&1IUKkAs20w3AMu6O4DDqSA=dBbygReFP>r=qRf;6j+P}D?dxs z=5eTSrqZ(2(*h@TX)86On;YYdR1-ZAm*A4G{{@(Qj6nNA`0n@3`_o%Z|)?jkqH^`)=BWarl#44h0+N<42@erhn4O>Tvh{vM8jQd Cew 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
    PX%m>~_U)vZG#6wzD`9N1e)F+DfS*$fGNNS? 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 R-hl5%LPS=$N>D%Ge*ltjwTS=# literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/c_ospray_domain_boundaries_00_thumb.png b/2024-12-12-22:00/poodle_trunk_serial/c_ospray_domain_boundaries_00_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..6a7b49ea8173910eea3f8c457e73ae05c23fe6a9 GIT binary patch literal 6531 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_05.png b/2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_05.png new file mode 100644 index 0000000000000000000000000000000000000000..7b8c4fdbae6294636aa6c67d7e473d3e06329ea4 GIT binary patch literal 72174 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 C?3QK# literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_05_thumb.png b/2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..82afadee4cb339bd3bbad09d68eaf5057bcb3a45 GIT binary patch literal 15382 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≤((K|37cQPOh7G}3nw!^t7sJyNbK#-A zcf}btjMy=Cqk}$A&cKvf4 zoA<17s&Zs7c=q(EkKDRCbveUDa8w)1m+lu&-^Nst0*tL>tKO?0@5Ub-$Y*O#|1#r! z0uTP*xwVlX!$wjms5sb%VZ+Q(nj=R)2mFs8ee}QAV}E=r%yuY9oEG8k!?@1N9E}wM zfJovaGZVq3)aj75l33RcFi8By@#kJW{_^)m@7};&Z)(l_-fJI)bGw)UIbZ zQKoo;+Wz-xe`@vMiHMj$IQWQd9Rp$_kcdBWyPX5eLZZg^*F z7IJ?qt3b-qRyh|zl%{DAo2uGL(>ZHXKt=T{%g=mi`RQxr-FJ(R*G^xX4)ufb17G@M z*N)k3d+Gg4C)ZB?am4?BpY|WR9{he?JeRnpX#hXJ^zuUf^33jj@a|7FVcRpy;q7ym zCUIkHZT0A6J(>#u!6H1T_>ic8|{4%qmH-H@`=>y+|+b%;I!1 z8%2p`#!5U3p_3$TaS@Md$t6je=hEO`*-Rr^Q(X@P`1NGV2d#HWZbvQT^_Yd|niV2QICB`6NLKK)u7;nxtICb6m zd7GxqY!z0QS&DqT6PxIhEQy;x;s`~A3fBTRly|}pe z&2N75(698%#Iu=sdwcua-~RTY+41MOUwtAE{_$5Fy1AW}hte}XyW--Ph-bF~^4XRC z&vU=}L>~NKw4c-d0<1ql`wOuC1nn=t`V+MOA9%fQ{m8Qbng9R*07*qoM6N<$g77js AJpcdz literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_07.png b/2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_07.png new file mode 100644 index 0000000000000000000000000000000000000000..736b5827c1e458a14a35df677ac2d8935b882b6b GIT binary patch literal 74391 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

    encx4~rY&c0PULG>W(&>7Q9+JCmVkoBZSDpt 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_07_thumb.png b/2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_07_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..8e9d24cee07609fb5ced5f60b456fd10bb1877d7 GIT binary patch literal 17422 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

    Results of VisIt Regression Test - databases/ANALYZE

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ANALYZE000.000.00
    ANALYZE010.000.00
    ANALYZE020.000.00
    ANALYZE030.000.00
    ANALYZE040.000.00
    ANALYZE050.000.00
    ANALYZE060.000.00
    ANALYZE070.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_ANALYZE_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_ANALYZE_py.html new file mode 100644 index 000000000..267a127cc --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_ANALYZE_py.html @@ -0,0 +1,113 @@ +databases/ANALYZE.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ANALYZE.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, single domain
    +#              plots     - Pseudocolor, Contour
    +#              operators - Slice
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Dec 5 09:50:05 PDT 2003
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Mar 31 09:13:47 PDT 2004
    +#    Added code to clear the engine cache to reduce memory usage.
    +#
    +#    Brad Whitlock, Wed Mar 9 09:12:05 PDT 2005
    +#    Updated so it does not use removed, deprecated functions.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Set up the window background color
    +a = GetAnnotationAttributes()
    +a.backgroundMode = a.Solid
    +a.backgroundColor = (0, 0, 0, 255)
    +a.foregroundColor = (255, 255, 255, 255)
    +SetAnnotationAttributes(a)
    +
    +# Create a plot using the large database
    +dbs = (data_path("ANALYZE_test_data/s01_anatomy_stripped.hdr"),
    +       data_path("ANALYZE_test_data/s01_epi_r01.visit"))
    +OpenDatabase(dbs[0])
    +AddPlot("Contour", "Variable")
    +c = ContourAttributes()
    +c.contourMethod = c.Value
    +c.contourValue = (40)
    +c.colorType = c.ColorBySingleColor
    +c.singleColor = (255,240,220,255)
    +SetPlotOptions(c)
    +DrawPlots()
    +
    +# Set the view
    +v = View3DAttributes()
    +v.viewNormal = (0, 0, -1)
    +v.focus = (0, 0, 0)
    +v.viewUp = (0, -1, 0)
    +v.viewAngle = 30
    +v.parallelScale = 399.965
    +v.nearPlane = -799.93
    +v.farPlane = 799.93
    +v.imagePan = (0, 0)
    +v.imageZoom = 2.26061
    +v.perspective = 1
    +v.eyeAngle = 2
    +SetView3D(v)
    +
    +Test("ANALYZE00")
    +
    +# Look at it from another view
    +v.viewNormal = (1, 0, 0)
    +SetView3D(v)
    +Test("ANALYZE01")
    +
    +# Look at it from the top
    +v.viewNormal = (0, -1, 0)
    +v.viewUp = (-1, 0, 0)
    +SetView3D(v)
    +Test("ANALYZE02")
    +
    +# Look at a new database
    +ResetView()
    +DeleteAllPlots()
    +CloseDatabase(dbs[0])
    +ClearCache("localhost")
    +
    +OpenDatabase(dbs[1])
    +AddPlot("Pseudocolor", "Variable")
    +p = PseudocolorAttributes()
    +p.minFlag = 1
    +p.min = 0
    +p.maxFlag = 1
    +p.max = 1300
    +p.colorTableName = "gray"
    +p.scaling = p.Skew
    +p.skewFactor = 0.5
    +SetPlotOptions(p)
    +
    +# Slice it.
    +AddOperator("Slice")
    +s = SliceAttributes()
    +s.originType = s.Point
    +s.originPoint = (0, 0, 0)
    +s.normal = (0, -1, 0)
    +s.upAxis = (0, 0, 1)
    +s.project2d = 1
    +s.axisType = s.ZAxis
    +SetOperatorOptions(s)
    +DrawPlots()
    +
    +# Add a time slider
    +slider = CreateAnnotationObject("TimeSlider")
    +slider.text = ""
    +slider.height = 0.1
    +
    +# Animate through the rest of the frames
    +testnum = 3
    +for i in range(TimeSliderGetNStates()):
    +    SetTimeSliderState(i)
    +    Test("ANALYZE%02d" % testnum)
    +    testnum = testnum + 1
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_ANSYS.html b/2024-12-12-22:00/poodle_trunk_serial/databases_ANSYS.html new file mode 100644 index 000000000..f4fb7d321 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_ANSYS.html @@ -0,0 +1,108 @@ + +Results for databases/ANSYS.py + +

    Results of VisIt Regression Test - databases/ANSYS

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    pipe.inp
    ansys1_00.000.00
    ansys1_10.000.00
    ansys1_20.000.00
    waterjacket.inp
    ansys2_00.000.00
    ansys2_10.000.00
    ansys2_20.000.00
    intake.inp
    ansys3_00.000.00
    ansys3_10.000.00
    ansys3_20.000.00
    cubeF.inp
    ansys4_10.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_ANSYS_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_ANSYS_py.html new file mode 100644 index 000000000..cf53dd9bf --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_ANSYS_py.html @@ -0,0 +1,217 @@ +databases/ANSYS.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ANSYS.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - Mesh
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Jul 7 17:46:51 PST 2005
    +#
    +#  Notes:      The data for these tests are supposed to be ANSYS versions of
    +#              some of the data in the NASTRAN tests. I have not found other
    +#              ANSYS datasets in this format to confirm that these datasets
    +#              are actually ANSYS but I think there may be several ANSYS
    +#              formats.
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Wed Feb 16 09:15:45 PST 2022
    +#    Replace use of meshatts 'foregroundFlag' and 'backgroundFlag' with
    +#    meshColorSource and opaqueColorSource.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def AddMeshPlot():
    +    AddPlot("Mesh", "mesh")
    +    m = MeshAttributes()
    +    m.legendFlag = 0
    +    m.opaqueColor = (153, 204, 255, 255)
    +    m.opaqueColorSource = m.OpaqueCustom
    +    m.meshColorSource = m.MeshCustom
    +    m.meshColor = (0,0,0,255)
    +    SetPlotOptions(m)
    +
    +def AddPseudocolorPlot():
    +    AddPlot("Pseudocolor", "one")
    +    p = PseudocolorAttributes()
    +    p.colorTableName = "rainbow"
    +    p.SetOpacityType(p.Constant)
    +    p.opacity = 0.2
    +    SetPlotOptions(p)
    +    DrawPlots()
    +
    +def test1(datapath):
    +    db = "pipe.inp"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath, db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.786306, 0.379526, 0.487527)
    +    v.focus = (0.149902, 0.212562, 0.124929)
    +    v.viewUp = (0.316186, 0.925114, -0.210215)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.585963
    +    v.nearPlane = -1.17193
    +    v.farPlane = 1.17193
    +    v.imagePan = (0.0173275, 0.033058)
    +    v.imageZoom = 1.45734
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.149902, 0.212562, 0.124929)
    +    SetView3D(v)
    +    Test("ansys1_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.786306, 0.379526, 0.487527)
    +    v2.focus = (0.149902, 0.212562, 0.124929)
    +    v2.viewUp = (0.316186, 0.925114, -0.210215)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 0.585963
    +    v2.nearPlane = -1.17193
    +    v2.farPlane = 1.17193
    +    v2.imagePan = (-0.108127, 0.0971661)
    +    v2.imageZoom = 6.92887
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0.149902, 0.212562, 0.124929)
    +    SetView3D(v2)
    +    Test("ansys1_1")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    SetView3D(v)
    +    Test("ansys1_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test2(datapath):
    +    db = "waterjacket.inp"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.65317, -0.673371, 0.346324)
    +    v.focus = (0.03, -0.03, -0.1125)
    +    v.viewUp = (0.225064, 0.264053, 0.937882)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.289925
    +    v.nearPlane = -0.579849
    +    v.farPlane = 0.579849
    +    v.imagePan = (0.0984407, 0.0467479)
    +    v.imageZoom = 1.40003
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.03, -0.03, -0.1125)
    +    SetView3D(v)
    +    Test("ansys2_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.65317, -0.673371, 0.346324)
    +    v2.focus = (0.03, -0.03, -0.1125)
    +    v2.viewUp = (0.225064, 0.264053, 0.937882)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 0.289925
    +    v2.nearPlane = -0.579849
    +    v2.farPlane = 0.579849
    +    v2.imagePan = (0.100347, 0.0410472)
    +    v2.imageZoom = 7.7658
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0.03, -0.03, -0.1125)
    +    SetView3D(v2)
    +    Test("ansys2_1")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    SetView3D(v)
    +    Test("ansys2_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test3(datapath):
    +    db = "intake.inp"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.61876, 0.311053, -0.721375)
    +    v.focus = (0, 0.011, -0.0935)
    +    v.viewUp = (0.208418, 0.950364, 0.231021)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.198752
    +    v.nearPlane = -0.397503
    +    v.farPlane = 0.397503
    +    v.imagePan = (0.0151275, 0.00167627)
    +    v.imageZoom = 1.43299
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0.011, -0.0935)
    +    SetView3D(v)
    +    Test("ansys3_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.61876, 0.311053, -0.721375)
    +    v2.focus = (0, 0.011, -0.0935)
    +    v2.viewUp = (0.208418, 0.950364, 0.231021)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 0.198752
    +    v2.nearPlane = -0.397503
    +    v2.farPlane = 0.397503
    +    v2.imagePan = (-0.101283, 0.0396808)
    +    v2.imageZoom = 6.28038
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0, 0.011, -0.0935)
    +    SetView3D(v2)
    +    Test("ansys3_1")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    SetView3D(v)
    +    Test("ansys3_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test4(datapath):
    +    db = "cubeF.inp"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +    Test("ansys4_1")
    +
    +def main():
    +    # Set up the window background color
    +    a = GetAnnotationAttributes()
    +    a.backgroundMode = a.Solid
    +    a.backgroundColor = (180, 180, 180, 255)
    +    a.foregroundColor = (255, 255, 255, 255)
    +    SetAnnotationAttributes(a)
    +
    +    DefineScalarExpression("one", "(zoneid(mesh) + 1) / (zoneid(mesh) + 1)")
    +
    +    datapath = data_path("ANSYS_test_data")
    +    test1(datapath)
    +    test2(datapath)
    +    test3(datapath)
    +    test4(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_CGNS.html b/2024-12-12-22:00/poodle_trunk_serial/databases_CGNS.html new file mode 100644 index 000000000..6c8754d4e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_CGNS.html @@ -0,0 +1,204 @@ + +Results for databases/CGNS.py + +

    Results of VisIt Regression Test - databases/CGNS

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Structured files
    CGNS_0_000.000.00
    CGNS_0_010.000.00
    CGNS_0_020.000.00
    CGNS_0_030.000.00
    CGNS_0_040.000.00
    CGNS_0_050.000.00
    CGNS_0_060.000.00
    Unstructured files
    CGNS_1_000.000.00
    CGNS_1_010.000.00
    CGNS_1_020.000.00
    CGNS_1_030.000.00
    CGNS_1_040.000.00
    CGNS_1_050.000.00
    CGNS_1_060.000.00
    CGNS_1_070.000.00
    Variables on only some of the domains
    CGNS_2_000.000.00
    CGNS_2_010.000.00
    CGNS_2_020.000.00
    CGNS_2_030.000.00
    CGNS_2_040.000.00
    CGNS_2_050.000.00
    File with boundaries
    CGNS_3_000.000.00
    Arbitrary polygons
    CGNS_NGon_Elements_000.000.00
    Arbitrary polyhedra
    CGNS_NFace_Elements_000.000.00
    CGNS_NFace_Elements_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_CGNS_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_CGNS_py.html new file mode 100644 index 000000000..764241619 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_CGNS_py.html @@ -0,0 +1,389 @@ +databases/CGNS.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  CGNS.py
    +#
    +#  Tests:      mesh      - 3D structured, unstructured, single and 
    +#                          multiple domain
    +#              plots     - Contour, Mesh, Pseudocolor, Subset
    +#              operators - Clip, Slice
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Sep 2 11:19:33 PDT 2005
    +#
    +#  Modifications:
    +#    Brad Whitlock, Mon Apr 21 10:55:14 PDT 2008
    +#    Updated variable names to compensate for changes to CGNS reader.
    +#
    +#    Jeremy Meredith, Fri Aug  8 11:23:29 EDT 2008
    +#    Updated streamline settings to match new attribute fields.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Cyrus Harrison, Wed Aug 25 14:28:14 PDT 2010
    +#    Variable name change due to changes with SIL generation.
    +#
    +#    Brad Whitlock, Tue Sep 11 14:38:37 PDT 2012
    +#    Test file that has boundaries.
    +#
    +#    Alister Maguire, Tue Mar  2 10:29:37 PST 2021
    +#    Added tests for NGon and NFace elements.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("CGNS")
    +
    +def test0(datapath):
    +    TestSection("Structured files")
    +
    +    OpenDatabase(pjoin(datapath,"delta.cgns"))
    +    AddPlot("Mesh", "Zone___1")
    +    DrawPlots()
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.673597, -0.70478, 0.222605)
    +    v0.focus = (0.5, 0.827196, 0.0589651)
    +    v0.viewUp = (0.150257, 0.164313, 0.974897)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 2.30431
    +    v0.nearPlane = -4.60862
    +    v0.farPlane = 4.60862
    +    v0.imagePan = (0.0171482, 0.0494526)
    +    v0.imageZoom = 1.09899
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0.5, 0.827196, 0.0589651)
    +    SetView3D(v0)
    +    Test("CGNS_0_00")
    +
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "Density")
    +    DrawPlots()
    +    Test("CGNS_0_01")
    +
    +    ChangeActivePlotsVar("MomentumX")
    +    Test("CGNS_0_02")
    +
    +    AddPlot("Vector", "Momentum")
    +    v = VectorAttributes()
    +    v.nVectors = 4000
    +    v.scale = 0.065
    +    v.scaleByMagnitude = 0
    +    v.autoScale = 0
    +    SetPlotOptions(v)
    +    DrawPlots()
    +    v1 = View3DAttributes()
    +    v1.viewNormal = (-0.59445, 0.745055, 0.302528)
    +    v1.focus = (0.5, 0.827196, 0.0589651)
    +    v1.viewUp = (0.177264, -0.245548, 0.953039)
    +    v1.viewAngle = 30
    +    v1.parallelScale = 2.30431
    +    v1.nearPlane = 0
    +    v1.farPlane = 4.60862
    +    v1.imagePan = (-0.00797807, 0.021628)
    +    v1.imageZoom = 2.76008
    +    v1.perspective = 1
    +    v1.eyeAngle = 2
    +    v1.centerOfRotationSet = 0
    +    v1.centerOfRotation = (0.5, 0.827196, 0.0589651)
    +    SetView3D(v1)
    +    Test("CGNS_0_03")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(pjoin(datapath,"5blocks.cgns"))
    +    AddPlot("Subset", "zones")
    +    AddPlot("Mesh", "BASE_1")
    +    DrawPlots()
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.56714, 0.62864, 0.532131)
    +    v2.focus = (18.3432, -132.647, 108.59)
    +    v2.viewUp = (0.353654, -0.397621, 0.846656)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 390.48
    +    v2.nearPlane = -780.96
    +    v2.farPlane = 780.96
    +    v2.imagePan = (0.0358739, 0.018554)
    +    v2.imageZoom = 1.2581
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (18.3432, -132.647, 108.59)
    +    SetView3D(v2)
    +    Test("CGNS_0_04")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(pjoin(datapath,"multi.cgns"))
    +    AddPlot("Subset", "zones")
    +    AddOperator("Slice")
    +    DrawPlots()
    +    v3 = View2DAttributes()
    +    v3.windowCoords = (-0.101847, 1.39507, -0.777335, 0.779882)
    +    v3.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v3.fullFrameActivationMode = v3.Off  # On, Off, Auto
    +    v3.fullFrameAutoThreshold = 100
    +    SetView2D(v3)
    +    Test("CGNS_0_05")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "MomentumZ")
    +    AddOperator("Slice")
    +    DrawPlots()
    +    Test("CGNS_0_06")
    +
    +    DeleteAllPlots()
    +
    +
    +def test1(datapath):
    +    TestSection("Unstructured files")
    +
    +    OpenDatabase(pjoin(datapath,"StaticMixer.cgns"))
    +    AddPlot("Mesh", "StaticMixer")
    +    AddPlot("Pseudocolor", "Pressure")
    +    DrawPlots()
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.791423, -0.34473, 0.504788)
    +    v0.focus = (0, 0, 6.65045e-11)
    +    v0.viewUp = (0.453682, 0.222176, 0.863024)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 4.1231
    +    v0.nearPlane = -8.24621
    +    v0.farPlane = 8.24621
    +    v0.imagePan = (-0.00919414, -0.0394234)
    +    v0.imageZoom = 1.4092
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0, 0, 0)
    +    SetView3D(v0)
    +    Test("CGNS_1_00")
    +
    +    ChangeActivePlotsVar("VelocityX")
    +    Test("CGNS_1_01")
    +
    +    SetActivePlots((0,1))
    +    AddOperator("Clip")
    +    c = ClipAttributes()
    +    c.plane2Status = 1
    +    c.plane1Normal = (-1.,0.,0.)
    +    c.plane2Normal = (0.,-1.,0.)
    +    SetOperatorOptions(c)
    +    DrawPlots()
    +    Test("CGNS_1_02")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(pjoin(datapath,"jet.cgns"))
    +    AddPlot("Pseudocolor", "CoefPressure")
    +    AddPlot("Contour", "CoefPressure")
    +    c = ContourAttributes()
    +    c.colorType = c.ColorBySingleColor
    +    c.contourNLevels = 30
    +    c.singleColor=(0,0,0,255)
    +    c.legendFlag = 0
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    v1 = View3DAttributes()
    +    v1.viewNormal = (0.89973, 0.23533, 0.367566)
    +    v1.focus = (1.82694, 0, 4.12744)
    +    v1.viewUp = (-0.354779, -0.0961553, 0.929992)
    +    v1.viewAngle = 30
    +    v1.parallelScale = 47.9514
    +    v1.nearPlane = -95.9031
    +    v1.farPlane = 95.9031
    +    v1.imagePan = (-0.0544089, 0.00587157)
    +    v1.imageZoom = 1.62963
    +    v1.perspective = 1
    +    v1.eyeAngle = 2
    +    v1.centerOfRotationSet = 0
    +    v1.centerOfRotation = (1.82694, 0, 4.12744)
    +    SetView3D(v1)
    +    Test("CGNS_1_03")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(pjoin(datapath,"yf17.cgns"))
    +    AddPlot("Mesh", "Zone1")
    +    AddPlot("Pseudocolor", "Density")
    +    DrawPlots()
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.79815, 0.489358, 0.351405)
    +    v2.focus = (0, 31.7504, 0)
    +    v2.viewUp = (0.286761, -0.204385, 0.935946)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 95.2512
    +    v2.nearPlane = 0
    +    v2.farPlane = 190.502
    +    v2.imagePan = (-0.129267, -0.0352136)
    +    v2.imageZoom = 15.4243
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0, 31.7504, 0)
    +    SetView3D(v2)
    +    Test("CGNS_1_04")
    +
    +    v3 = View3DAttributes()
    +    v3.viewNormal = (-0.79815, 0.489358, 0.351405)
    +    v3.focus = (0, 31.7504, 0)
    +    v3.viewUp = (0.286761, -0.204385, 0.935946)
    +    v3.viewAngle = 30
    +    v3.parallelScale = 95.2512
    +    v3.nearPlane = 0
    +    v3.farPlane = 190.502
    +    v3.imagePan = (-0.130871, -0.033492)
    +    v3.imageZoom = 66.7586
    +    v3.perspective = 1
    +    v3.eyeAngle = 2
    +    v3.centerOfRotationSet = 0
    +    v3.centerOfRotation = (0, 31.7504, 0)
    +    SetView3D(v3)
    +    Test("CGNS_1_05")
    +
    +    SetActivePlots(0)
    +    DeleteActivePlots()
    +    SetView3D(v2)
    +    Test("CGNS_1_06")
    +
    +    AddPlot("Vector", "Velocity")
    +    v = VectorAttributes()
    +    v.nVectors = 4000
    +    v.scale = 0.2
    +    v.scaleByMagnitude = 0
    +    v.autoScale = 0
    +    SetPlotOptions(v)
    +    DrawPlots()
    +    Test("CGNS_1_07")
    +    DeleteAllPlots()
    +
    +
    +def test2(datapath):
    +    TestSection("Variables on only some of the domains")
    +
    +    OpenDatabase(pjoin(datapath,"HeatingCoil.cgns"))
    +    AddPlot("Subset", "zones(Base)")
    +    DrawPlots()
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (0.27344, 0.876709, 0.395743)
    +    v0.focus = (0, 0, 1.125)
    +    v0.viewUp = (-0.0932919, -0.385311, 0.918059)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 1.8071
    +    v0.nearPlane = -3.61421
    +    v0.farPlane = 3.61421
    +    v0.imagePan = (-0.00158217, 0.0267093)
    +    v0.imageZoom = 1.11866
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0, 0, 1.125)
    +    SetView3D(v0)
    +    Test("CGNS_2_00")
    +
    +    TurnDomainsOff("FluidZone")
    +    Test("CGNS_2_01")
    +
    +    TurnDomainsOn()
    +    TurnDomainsOff("SolidZone")
    +    Test("CGNS_2_02")
    +    TurnDomainsOn()
    +    DeleteAllPlots()
    +
    +    # Make sure we can plot variables that exist on only 1 domain.
    +    AddPlot("Pseudocolor", "Pressure")
    +    DrawPlots()
    +    Test("CGNS_2_03")
    +    ChangeActivePlotsVar("VelocityZ")
    +    AddPlot("Mesh", "subgrid/Base001")
    +    DrawPlots()
    +    Test("CGNS_2_04")
    +    DeleteAllPlots()
    +
    +    # Draw the 1 variable that exists in both domains.
    +    AddPlot("Pseudocolor","Temperature")
    +    DrawPlots()
    +    Test("CGNS_2_05")
    +    DeleteAllPlots()
    +
    +def test3(datapath):
    +    TestSection("File with boundaries")
    +
    +    OpenDatabase(pjoin(datapath,"with_boundary_faces.cgns"))
    +    AddPlot("Pseudocolor", "Density")
    +    DrawPlots()
    +    ResetView()
    +    v = GetView2D()
    +    v.fullFrameActivationMode = v.On
    +    SetView2D(v)
    +
    +    Test("CGNS_3_00")
    +    DeleteAllPlots()
    +
    +def testNGonElements(datapath):
    +    TestSection("Arbitrary polygons")
    +
    +    OpenDatabase(pjoin(datapath, "spherePolyMesh.cgns"))
    +    AddPlot("Mesh", "sphere")
    +    DrawPlots()
    +    ResetView()
    +
    +    Test("CGNS_NGon_Elements_00")
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath, "spherePolyMesh.cgns"))
    +
    +def testNFaceElements(datapath):
    +    TestSection("Arbitrary polyhedra")
    +
    +    #
    +    # First, test the simple case. This mesh has 2 sections,
    +    # one for NGon and one for NFace.
    +    #
    +    OpenDatabase(pjoin(datapath, "trappedvtx_ngon.cgns"))
    +    AddPlot("Mesh", "ComputeBase")
    +    MeshAtts = MeshAttributes()
    +    DrawPlots()
    +    ResetView()
    +
    +    Test("CGNS_NFace_Elements_00")
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath, "trappedvtx_ngon.cgns"))
    +
    +    #
    +    # Next, test a more complicated case. This mesh has 5 sections,
    +    # 4 of which are NGon. The single NFace section references all
    +    # 4 NGon sections.
    +    #
    +    OpenDatabase(pjoin(datapath, "spherePolyMesh3D.cgns"))
    +    AddPlot("Mesh", "sphere")
    +    MeshAtts = MeshAttributes()
    +    MeshAtts.opacity = 0.4
    +    SetPlotOptions(MeshAtts)
    +
    +    AddPlot("Pseudocolor", "Density")
    +    PseudocolorAtts = PseudocolorAttributes()
    +    PseudocolorAtts.opacityType = PseudocolorAtts.Constant
    +    PseudocolorAtts.opacity = 0.4
    +    SetPlotOptions(PseudocolorAtts)
    +
    +    DrawPlots()
    +    ResetView()
    +
    +    Test("CGNS_NFace_Elements_01")
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath, "spherePolyMesh3D.cgns"))
    +
    +def main():
    +    # Draw antialiased lines
    +    r = GetRenderingAttributes()
    +    r.antialiasing = 1
    +    SetRenderingAttributes(r)
    +
    +    datapath = data_path("CGNS_test_data")
    +    test0(datapath)
    +    test1(datapath)
    +    test2(datapath)
    +    test3(datapath)
    +    testNGonElements(datapath)
    +    testNFaceElements(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_Cale.html b/2024-12-12-22:00/poodle_trunk_serial/databases_Cale.html new file mode 100644 index 000000000..287f5e451 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_Cale.html @@ -0,0 +1,69 @@ + +Results for databases/Cale.py + +

    Results of VisIt Regression Test - databases/Cale

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Cale files
    Cale_0_000.000.00
    Cale_0_010.000.00
    Cale_0_020.000.00
    Cale_0_030.000.00
    Cale_0_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_Cale_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_Cale_py.html new file mode 100644 index 000000000..04784399e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_Cale_py.html @@ -0,0 +1,65 @@ +databases/Cale.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  Cale.py
    +#
    +#  Tests:      mesh      - 2D, structured, single domain
    +#              plots     - Pseudocolor, FilledBoundary
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Oct 10 11:46:45 PDT 2007
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def test0(datapath):
    +    TestSection("Cale files")
    +    OpenDatabase(pjoin(datapath,"jet00405.pdb"))
    +    AddPlot("Pseudocolor", "p")
    +    DrawPlots()
    +    Test("Cale_0_00")
    +    DeleteActivePlots()
    +
    +    AddPlot("FilledBoundary", "Materials")
    +    DrawPlots()
    +    Test("Cale_0_01")
    +
    +    AddPlot("Mesh", "hydro")
    +    DrawPlots()
    +    v0 = View2DAttributes()
    +    v0.windowCoords = (10.1155, 11.6375, 3.20767, 4.82837)
    +    v0.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v0.fullFrameActivationMode = v0.Auto  # On, Off, Auto
    +    v0.fullFrameAutoThreshold = 100
    +    v0.xScale = v0.LINEAR  # LINEAR, LOG
    +    v0.yScale = v0.LINEAR  # LINEAR, LOG
    +    SetView2D(v0)
    +    Test("Cale_0_02")
    +
    +    # Do a PC plot with mixvars.
    +    SetActivePlots(0)
    +    DeleteActivePlots()
    +    m = GetMaterialAttributes()
    +    m.forceMIR = 1
    +    SetMaterialAttributes(m)
    +    AddPlot("Pseudocolor", "den")
    +    DrawPlots()
    +    Test("Cale_0_03")
    +    DeleteAllPlots()
    +
    +    # Test another file.
    +    OpenDatabase(pjoin(datapath,"vpgz.pdb"))
    +    AddPlot("FilledBoundary", "Materials")
    +    DrawPlots()
    +    ResetView()
    +    Test("Cale_0_04")
    +    DeleteActivePlots()
    +
    +def main():
    +    datapath = data_path("Cale_test_data")
    +    test0(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_Chombo.html b/2024-12-12-22:00/poodle_trunk_serial/databases_Chombo.html new file mode 100644 index 000000000..e4a3f6544 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_Chombo.html @@ -0,0 +1,73 @@ + +Results for databases/Chombo.py + +

    Results of VisIt Regression Test - databases/Chombo

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Changing time states
    Chombo_0_000.000.00
    Chombo_0_010.000.00
    Chombo_0_020 modifications totalling 0 lines
    More distinct refinements
    Chombo_1_000.000.00
    Anisotropic refinement
    Chombo_2_000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_Chombo_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_Chombo_py.html new file mode 100644 index 000000000..2e673a1eb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_Chombo_py.html @@ -0,0 +1,101 @@ +databases/Chombo.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  Chombo.py
    +#
    +#  Tests:      mesh      - 2D AMR
    +#              plots     - Pseudocolor
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Mon Sep 25 14:17:58 PST 2006
    +#
    +#  Modifications:
    +#    Mark C. Miller, Wed Jan 21 10:00:10 PST 2009
    +#    Removed silly comments regarding global annotation object 'a'
    +#
    +# ----------------------------------------------------------------------------
    +
    +def test0(datapath):
    +    TestSection("Changing time states")
    +
    +    # Set up the plots.
    +    db = pjoin(datapath,"chombo.visit")
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "Density")
    +    AddOperator("Transform")
    +    t = TransformAttributes()
    +    t.doScale = 1
    +    t.scaleY = 8.
    +    SetOperatorOptions(t)
    +    DrawPlots()
    +
    +    Test("Chombo_0_00")
    +
    +    # Make sure we can change time states. This demonstrates the reader's
    +    # ability to change metadata/SIL over time.
    +    SetTimeSliderState(1)
    +    Test("Chombo_0_01")
    +
    +    # Get the time steps.
    +    s = "Number of states: %d\n" %  TimeSliderGetNStates()
    +    for i in range(TimeSliderGetNStates()):
    +        SetTimeSliderState(i)
    +        Query("Cycle")
    +        cycle = GetQueryOutputValue()
    +        Query("Time")
    +        time = GetQueryOutputValue()
    +        values = "Cycle=%d, Time=%g" % (cycle, time)
    +        s = s + values + "\n"
    +    TestText("Chombo_0_02", s)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test1(datapath):
    +    TestSection("More distinct refinements")
    +
    +    db = pjoin(datapath,"chombo.visit")
    +    OpenDatabase(db)
    +
    +    AddPlot("Subset", "patches")
    +    AddPlot("Contour", "P_y_Over_Rho")
    +    DrawPlots()
    +    v = GetView2D()
    +    v.fullFrameActivationMode = v.On
    +    SetView2D(v)
    +
    +    Test("Chombo_1_00")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test2(datapath):
    +    TestSection("Anisotropic refinement")
    +
    +    db = pjoin(datapath,"aniso_refin.2d.hdf5")
    +    OpenDatabase(db)
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("Subset", "levels")
    +    DrawPlots()
    +
    +    Test("Chombo_2_00")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def main():
    +    TurnOffAllAnnotations()
    +
    +    InvertBackgroundColor()
    +
    +    datapath = data_path("Chombo_test_data")
    +    test0(datapath)
    +    test1(datapath)
    +    test2(datapath)
    +
    +    InvertBackgroundColor()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_Curve3D.html b/2024-12-12-22:00/poodle_trunk_serial/databases_Curve3D.html new file mode 100644 index 000000000..91a78070e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_Curve3D.html @@ -0,0 +1,48 @@ + +Results for databases/Curve3D.py + +

    Results of VisIt Regression Test - databases/Curve3D

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Curve3D_000.000.00
    Curve3D_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_Curve3D_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_Curve3D_py.html new file mode 100644 index 000000000..afba42c2b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_Curve3D_py.html @@ -0,0 +1,157 @@ +databases/Curve3D.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  Curve3D.py
    +#
    +#  Programmer: Olivier Cessenat
    +#  Wed Nov  8 18:45:00 CET 2023
    +#
    +# ----------------------------------------------------------------------------
    +TurnOffAllAnnotations()
    +
    +OpenDatabase(data_path("Curve3D_test_data/a3dcurvf.curve3d"), 0, "Curve3D_1.0")
    +AddPlot("FilledBoundary", "segments", 1, 1)
    +# Begin spontaneous state
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.087671, -0.95302, 0.289943)
    +View3DAtts.focus = (2.5, 1.5, 0)
    +View3DAtts.viewUp = (-0.114612, 0.279481, 0.953286)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 3.08221
    +View3DAtts.nearPlane = -6.16441
    +View3DAtts.farPlane = 6.16441
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (2.5, 1.5, 0)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +View3DAtts.windowValid = 1
    +SetView3D(View3DAtts)
    +# End spontaneous state
    +
    +FilledBoundaryAtts = FilledBoundaryAttributes()
    +FilledBoundaryAtts.colorType = FilledBoundaryAtts.ColorByMultipleColors  # ColorBySingleColor, ColorByMultipleColors, ColorByColorTable
    +FilledBoundaryAtts.colorTableName = "Default"
    +FilledBoundaryAtts.invertColorTable = 0
    +FilledBoundaryAtts.legendFlag = 1
    +FilledBoundaryAtts.lineWidth = 2
    +FilledBoundaryAtts.singleColor = (0, 0, 0, 255)
    +FilledBoundaryAtts.SetMultiColor(0, (255, 0, 0, 255))
    +FilledBoundaryAtts.SetMultiColor(1, (0, 255, 0, 255))
    +FilledBoundaryAtts.boundaryNames = ("mat_toto", "mat_toto_0")
    +FilledBoundaryAtts.opacity = 1
    +FilledBoundaryAtts.wireframe = 0
    +FilledBoundaryAtts.drawInternal = 0
    +FilledBoundaryAtts.smoothingLevel = 0
    +FilledBoundaryAtts.cleanZonesOnly = 0
    +FilledBoundaryAtts.mixedColor = (255, 255, 255, 255)
    +FilledBoundaryAtts.pointSize = 0.05
    +FilledBoundaryAtts.pointType = FilledBoundaryAtts.Point  # Box, Axis, Icosahedron, Octahedron, Tetrahedron, SphereGeometry, Point, Sphere
    +FilledBoundaryAtts.pointSizeVarEnabled = 0
    +FilledBoundaryAtts.pointSizeVar = "default"
    +FilledBoundaryAtts.pointSizePixels = 2
    +SetPlotOptions(FilledBoundaryAtts)
    +
    +DrawPlots()
    +SaveWindowAtts = SaveWindowAttributes()
    +SaveWindowAtts.outputToCurrentDirectory = 1
    +SaveWindowAtts.outputDirectory = "."
    +SaveWindowAtts.fileName = "a3dcurvf"
    +SaveWindowAtts.family = 1
    +SaveWindowAtts.format = SaveWindowAtts.PNG  # BMP, CURVE, JPEG, OBJ, PNG, POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA, VTK, PLY
    +SaveWindowAtts.width = 1024
    +SaveWindowAtts.height = 1024
    +SaveWindowAtts.screenCapture = 0
    +SaveWindowAtts.saveTiled = 0
    +SaveWindowAtts.quality = 80
    +SaveWindowAtts.progressive = 0
    +SaveWindowAtts.binary = 0
    +SaveWindowAtts.stereo = 0
    +SaveWindowAtts.compression = SaveWindowAtts.PackBits  # None, PackBits, Jpeg, Deflate
    +SaveWindowAtts.forceMerge = 0
    +SaveWindowAtts.resConstraint = SaveWindowAtts.ScreenProportions  # NoConstraint, EqualWidthHeight, ScreenProportions
    +SaveWindowAtts.advancedMultiWindowSave = 0
    +SetSaveWindowAttributes(SaveWindowAtts)
    +Test("Curve3D_00", SaveWindowAtts)
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("Curve3D_test_data/a3dcurvf.curve3d"))
    +
    +OpenDatabase(data_path("Curve3D_test_data/a3dcurve.curve3d"), 0, "Curve3D_1.0")
    +AddPlot("FilledBoundary", "segments", 1, 1)
    +# Begin spontaneous state
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (-0.960174, -0.252458, 0.119713)
    +View3DAtts.focus = (2.5, 1.5, 0)
    +View3DAtts.viewUp = (-0.254446, 0.613076, -0.747927)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 3.08221
    +View3DAtts.nearPlane = -6.16441
    +View3DAtts.farPlane = 6.16441
    +View3DAtts.imagePan = (-0.178886, 0.187104)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (2.5, 1.5, 0)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +View3DAtts.windowValid = 1
    +SetView3D(View3DAtts)
    +# End spontaneous state
    +
    +FilledBoundaryAtts = FilledBoundaryAttributes()
    +FilledBoundaryAtts.colorType = FilledBoundaryAtts.ColorByMultipleColors  # ColorBySingleColor, ColorByMultipleColors, ColorByColorTable
    +FilledBoundaryAtts.colorTableName = "Default"
    +FilledBoundaryAtts.invertColorTable = 0
    +FilledBoundaryAtts.legendFlag = 1
    +FilledBoundaryAtts.lineWidth = 2
    +FilledBoundaryAtts.singleColor = (0, 0, 0, 255)
    +FilledBoundaryAtts.SetMultiColor(0, (255, 0, 0, 255))
    +FilledBoundaryAtts.SetMultiColor(1, (0, 255, 0, 255))
    +FilledBoundaryAtts.boundaryNames = ("mat_tata", "mat_tutu", "mat_tutu_0", "mat_tutu_1")
    +FilledBoundaryAtts.opacity = 1
    +FilledBoundaryAtts.wireframe = 0
    +FilledBoundaryAtts.drawInternal = 0
    +FilledBoundaryAtts.smoothingLevel = 0
    +FilledBoundaryAtts.cleanZonesOnly = 0
    +FilledBoundaryAtts.mixedColor = (255, 255, 255, 255)
    +FilledBoundaryAtts.pointSize = 0.05
    +FilledBoundaryAtts.pointType = FilledBoundaryAtts.Point  # Box, Axis, Icosahedron, Octahedron, Tetrahedron, SphereGeometry, Point, Sphere
    +FilledBoundaryAtts.pointSizeVarEnabled = 0
    +FilledBoundaryAtts.pointSizeVar = "default"
    +FilledBoundaryAtts.pointSizePixels = 2
    +SetPlotOptions(FilledBoundaryAtts)
    +
    +DrawPlots()
    +SaveWindowAtts = SaveWindowAttributes()
    +SaveWindowAtts.outputToCurrentDirectory = 1
    +SaveWindowAtts.outputDirectory = "."
    +SaveWindowAtts.fileName = "a3dcurve"
    +SaveWindowAtts.family = 1
    +SaveWindowAtts.format = SaveWindowAtts.PNG  # BMP, CURVE, JPEG, OBJ, PNG, POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA, VTK, PLY
    +SaveWindowAtts.width = 1024
    +SaveWindowAtts.height = 1024
    +SaveWindowAtts.screenCapture = 0
    +SaveWindowAtts.saveTiled = 0
    +SaveWindowAtts.quality = 80
    +SaveWindowAtts.progressive = 0
    +SaveWindowAtts.binary = 0
    +SaveWindowAtts.stereo = 0
    +SaveWindowAtts.compression = SaveWindowAtts.PackBits  # None, PackBits, Jpeg, Deflate
    +SaveWindowAtts.forceMerge = 0
    +SaveWindowAtts.resConstraint = SaveWindowAtts.ScreenProportions  # NoConstraint, EqualWidthHeight, ScreenProportions
    +SaveWindowAtts.advancedMultiWindowSave = 0
    +SetSaveWindowAttributes(SaveWindowAtts)
    +Test("Curve3D_01", SaveWindowAtts)
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("Curve3D_test_data/a3dcurve.curve3d"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_EnSight.html b/2024-12-12-22:00/poodle_trunk_serial/databases_EnSight.html new file mode 100644 index 000000000..4c9d96cfe --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_EnSight.html @@ -0,0 +1,102 @@ + +Results for databases/EnSight.py + +

    Results of VisIt Regression Test - databases/EnSight

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    MT, ASCII, EnSight Gold files
    EnSight_0_000.000.00
    EnSight_0_010.000.00
    EnSight_0_020.000.00
    EnSight_0_030.000.00
    EnSight_0_040.000.00
    EnSight_0_050.000.00
    EnSight_0_060.000.00
    EnSight_0_070.000.00
    EnSight_0_080 modifications totalling 0 lines
    Make sure that we get correct values
    EnSight_1_000 modifications totalling 0 lines
    EnSight_1_010 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_EnSight_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_EnSight_py.html new file mode 100644 index 000000000..02054a32b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_EnSight_py.html @@ -0,0 +1,84 @@ +databases/EnSight.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  EnSight.py
    +#
    +#  Tests:      mesh      - 2D structured
    +#              plots     - Pseudocolor
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Tue Jun 27 10:27:50 PDT 2006
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Sep 27 10:19:38 PDT 2006
    +#    Test another dataset to make sure that the cycle/time values and the
    +#    dataset values are right.
    +#
    +# ----------------------------------------------------------------------------
    +
    +RequiredDatabasePlugin("EnSight")
    +
    +def test0(datapath):
    +    TestSection("MT, ASCII, EnSight Gold files")
    +
    +    # Set up the plots.
    +    OpenDatabase(pjoin(datapath,"CHR.case"))
    +    AddPlot("Pseudocolor", "Pression")
    +    DrawPlots()
    +
    +    # Save images for all 8 time steps
    +    s = "Time values:\n"
    +    for i in range(8):
    +        SetTimeSliderState(i)
    +        DrawPlots()
    +        Test("EnSight_0_%02d" % i)
    +
    +        Query("Time")
    +        s = s + GetQueryOutputString() + "\n"
    +
    +    TestText("EnSight_0_08", s)
    +    DeleteAllPlots()
    +
    +def test1(datapath):
    +    TestSection("Make sure that we get correct values")
    +
    +    # Set up the plots.
    +    OpenDatabase(pjoin(datapath,"dataset2/CHR.case"))
    +    AddPlot("Pseudocolor", "nb")
    +    DrawPlots()
    +
    +    # Query the values at all time steps to make sure that we get the
    +    # right cycles, times and min dataset value.
    +    s = "Time values:\n"
    +    v = "Dataset values\n"
    +    for i in range(TimeSliderGetNStates()):
    +        SetTimeSliderState(i)
    +        DrawPlots()
    +
    +        # Get cycle and time.
    +        Query("Time")
    +        t = GetQueryOutputValue()
    +
    +        # Get min value
    +        Query("Min")
    +        m = GetQueryOutputValue()
    +
    +        line = "Time=%g\n" % t
    +        s = s + line
    +        line = "Min Value=%g\n" % m
    +        v = v + line
    +
    +    TestText("EnSight_1_00", s)
    +    TestText("EnSight_1_01", v)
    +    DeleteAllPlots()
    +
    +def main():
    +    TurnOffAllAnnotations()
    +
    +    datapath = data_path("EnSight_test_data")
    +    test0(datapath)
    +    test1(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_FITS.html b/2024-12-12-22:00/poodle_trunk_serial/databases_FITS.html new file mode 100644 index 000000000..bbab6eda2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_FITS.html @@ -0,0 +1,87 @@ + +Results for databases/FITS.py + +

    Results of VisIt Regression Test - databases/FITS

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    2D truecolor images
    FITS_0_000.000.00
    2D pseudocolor images
    FITS_1_000.000.00
    FITS_1_010.000.00
    FITS_1_020.000.00
    FITS_1_030.000.00
    3D pseudocolor data
    FITS_2_000.000.00
    FITS_2_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_FITS_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_FITS_py.html new file mode 100644 index 000000000..85db3be57 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_FITS_py.html @@ -0,0 +1,124 @@ +databases/FITS.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  FITS.py
    +#
    +#  Tests:      mesh      - 2D structured, 3D structured
    +#              plots     - Pseudocolor, TrueColor
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Jul 20 14:07:49 PST 2006
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Tue Mar 18 15:40:19 PDT 2008
    +#    Reflect change in variable names.
    +#
    +#    Hank Childs, Sat Mar 13 10:57:19 PST 2010
    +#    Reflect change in variable names.
    +#    
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("FITS")
    +
    +def test0(datapath):
    +    TestSection("2D truecolor images")
    +
    +    # Set up the plots.
    +    db = pjoin(datapath,"mandrill.fits")
    +    OpenDatabase(db)
    +    AddPlot("Truecolor", "MANDRILL")
    +    DrawPlots()
    +
    +    Test("FITS_0_00")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +
    +def test1(datapath):
    +    TestSection("2D pseudocolor images")
    +
    +    # Set up the plots.
    +    db = pjoin(datapath,"y2000m2.fits")
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "NGC7083 V 550nm _lp_Intens_rp_")
    +    pc = PseudocolorAttributes()
    +    pc.minFlag = 1
    +    pc.scaling = pc.Log  # Linear, Log, Skew
    +    pc.min = 0.001
    +    pc.colorTableName = "bluehot"
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    Test("FITS_1_00")
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +    # Set up the plots.
    +    db = pjoin(datapath, "04May04_standard_*.fits database")
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "HD43583")
    +    DrawPlots()
    +    Test("FITS_1_01")
    +
    +    SetTimeSliderState(1)
    +    Test("FITS_1_02")
    +
    +    SetTimeSliderState(2)
    +    Test("FITS_1_03")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +
    +def test2(datapath):
    +    TestSection("3D pseudocolor data")
    +
    +    # Set up the plots.
    +    db = pjoin(datapath,"ngc6503.fits")
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "NGC6503")
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (0.406249, -0.543192, 0.734782)
    +    v.focus = (128, 128, 15.5)
    +    v.viewUp = (-0.273573, 0.694941, 0.664993)
    +    v.viewAngle = 30
    +    v.parallelScale = 181.682
    +    v.nearPlane = -363.363
    +    v.farPlane = 363.363
    +    v.imagePan = (0.0160165, 0.0533909)
    +    v.imageZoom = 1.05918
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (128, 128, 15.5)
    +    SetView3D(v)
    +    Test("FITS_2_00")
    +    DeleteAllPlots()
    +
    +    AddPlot("Contour", "NGC6503")
    +    ca = ContourAttributes()
    +    ca.contourValue = (0.0075)
    +    ca.contourMethod = ca.Value  # Level, Value, Percent
    +    SetPlotOptions(ca)
    +    DrawPlots()
    +    Test("FITS_2_01")
    +    DeleteAllPlots()
    +
    +    CloseDatabase(db)
    +
    +def main():
    +    TurnOffAllAnnotations()
    +
    +    InvertBackgroundColor()
    +
    +    datapath = data_path("FITS_test_data")
    +    test0(datapath)
    +    test1(datapath)
    +    test2(datapath)
    +
    +    InvertBackgroundColor()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_FMS.html b/2024-12-12-22:00/poodle_trunk_serial/databases_FMS.html new file mode 100644 index 000000000..9bd220a39 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_FMS.html @@ -0,0 +1,1156 @@ + +Results for databases/FMS.py + +

    Results of VisIt Regression Test - databases/FMS

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    domains - ascii
    FMS_0_1_000 modifications totalling 0 lines
    FMS_0_1_010.000.00
    FMS_0_1_020.000.00
    FMS_0_1_030.000.00
    FMS_0_2_000 modifications totalling 0 lines
    FMS_0_2_010.000.00
    FMS_0_2_020.000.00
    FMS_0_2_030.000.00
    FMS_0_3_000 modifications totalling 0 lines
    FMS_0_3_010.000.00
    FMS_0_3_020.000.00
    FMS_0_3_030.000.00
    domains - yaml
    FMS_1_1_000 modifications totalling 0 lines
    FMS_1_1_010.000.00
    FMS_1_1_020.000.00
    FMS_1_1_030.000.00
    FMS_1_2_000 modifications totalling 0 lines
    FMS_1_2_010.000.00
    FMS_1_2_020.000.00
    FMS_1_2_030.000.00
    FMS_1_3_000 modifications totalling 0 lines
    FMS_1_3_010.000.00
    FMS_1_3_020.000.00
    FMS_1_3_030.000.00
    domains - json
    FMS_2_1_000 modifications totalling 0 lines
    FMS_2_1_010.000.00
    FMS_2_1_020.000.00
    FMS_2_1_030.000.00
    FMS_2_2_000 modifications totalling 0 lines
    FMS_2_2_010.000.00
    FMS_2_2_020.000.00
    FMS_2_2_030.000.00
    FMS_2_3_000 modifications totalling 0 lines
    FMS_2_3_010.000.00
    FMS_2_3_020.000.00
    FMS_2_3_030.000.00
    domains - hdf5
    FMS_3_1_000 modifications totalling 0 lines
    FMS_3_1_010.000.00
    FMS_3_1_020.000.00
    FMS_3_1_030.000.00
    FMS_3_2_000 modifications totalling 0 lines
    FMS_3_2_010.000.00
    FMS_3_2_020.000.00
    FMS_3_2_030.000.00
    FMS_3_3_000 modifications totalling 0 lines
    FMS_3_3_010.000.00
    FMS_3_3_020.000.00
    FMS_3_3_030.000.00
    quads - ascii
    FMS_4_1_000 modifications totalling 0 lines
    FMS_4_1_010.000.00
    FMS_4_1_020.000.00
    FMS_4_1_030.000.00
    FMS_4_1_040.000.00
    FMS_4_1_050.000.00
    FMS_4_1_060.000.00
    FMS_4_2_000 modifications totalling 0 lines
    FMS_4_2_010.000.00
    FMS_4_2_020.000.00
    FMS_4_2_030.000.00
    FMS_4_2_040.000.00
    FMS_4_2_050.000.00
    FMS_4_2_060.000.00
    FMS_4_3_000 modifications totalling 0 lines
    FMS_4_3_010.000.00
    FMS_4_3_020.000.00
    FMS_4_3_030.000.00
    FMS_4_3_040.000.00
    FMS_4_3_050.000.00
    FMS_4_3_060.000.00
    quads - yaml
    FMS_5_1_000 modifications totalling 0 lines
    FMS_5_1_010.000.00
    FMS_5_1_020.000.00
    FMS_5_1_030.000.00
    FMS_5_1_040.000.00
    FMS_5_1_050.000.00
    FMS_5_1_060.000.00
    FMS_5_2_000 modifications totalling 0 lines
    FMS_5_2_010.000.00
    FMS_5_2_020.000.00
    FMS_5_2_030.000.00
    FMS_5_2_040.000.00
    FMS_5_2_050.000.00
    FMS_5_2_060.000.00
    FMS_5_3_000 modifications totalling 0 lines
    FMS_5_3_010.000.00
    FMS_5_3_020.000.00
    FMS_5_3_030.000.00
    FMS_5_3_040.000.00
    FMS_5_3_050.000.00
    FMS_5_3_060.000.00
    hex - ascii
    FMS_6_1_000 modifications totalling 0 lines
    FMS_6_1_010.000.00
    FMS_6_1_020.000.00
    FMS_6_1_030.000.00
    FMS_6_1_040.000.00
    FMS_6_1_050.000.00
    FMS_6_2_000 modifications totalling 0 lines
    FMS_6_2_010.000.00
    FMS_6_2_020.000.00
    FMS_6_2_030.000.00
    FMS_6_2_040.000.00
    FMS_6_2_050.000.00
    FMS_6_3_000 modifications totalling 0 lines
    FMS_6_3_010.000.00
    FMS_6_3_020.000.00
    FMS_6_3_030.000.00
    FMS_6_3_040.000.00
    FMS_6_3_050.000.00
    FMS_6_4_000 modifications totalling 0 lines
    FMS_6_4_010.000.00
    FMS_6_4_020.000.00
    FMS_6_4_030.000.00
    FMS_6_4_040.000.00
    FMS_6_4_050.000.00
    FMS_6_5_000 modifications totalling 0 lines
    FMS_6_5_010.000.00
    FMS_6_5_020.000.00
    FMS_6_5_030.000.00
    FMS_6_5_040.000.00
    FMS_6_5_050.000.00
    hex - hdf5
    FMS_7_1_000 modifications totalling 0 lines
    FMS_7_1_010.000.00
    FMS_7_1_020.000.00
    FMS_7_1_030.000.00
    FMS_7_1_040.000.00
    FMS_7_1_050.000.00
    FMS_7_2_000 modifications totalling 0 lines
    FMS_7_2_010.000.00
    FMS_7_2_020.000.00
    FMS_7_2_030.000.00
    FMS_7_2_040.000.00
    FMS_7_2_050.000.00
    FMS_7_3_000 modifications totalling 0 lines
    FMS_7_3_010.000.00
    FMS_7_3_020.000.00
    FMS_7_3_030.000.00
    FMS_7_3_040.000.00
    FMS_7_3_050.000.00
    FMS_7_4_000 modifications totalling 0 lines
    FMS_7_4_010.000.00
    FMS_7_4_020.000.00
    FMS_7_4_030.000.00
    FMS_7_4_040.000.00
    FMS_7_4_050.000.00
    FMS_7_5_000 modifications totalling 0 lines
    FMS_7_5_010.000.00
    FMS_7_5_020.000.00
    FMS_7_5_030.000.00
    FMS_7_5_040.000.00
    FMS_7_5_050.000.00
    hex - time varying
    FMS_8__000 modifications totalling 0 lines
    FMS_8__010.000.00
    FMS_8__020.000.00
    Root file
    FMS_9__000 modifications totalling 0 lines
    FMS_9__010.000.00
    FMS_9__020.000.00
    Converted MFEM data: escher-p3-0ref
    FMS_10_000 modifications totalling 0 lines
    FMS_10_010.000.00
    FMS_10_020.000.00
    FMS_10_030.000.00
    Converted MFEM data: escher-p3
    FMS_11_000 modifications totalling 0 lines
    FMS_11_010.000.00
    FMS_11_020.000.00
    Converted MFEM data: Example15
    FMS_12_000 modifications totalling 0 lines
    FMS_12_010.000.00
    FMS_12_020.000.00
    FMS_12_030.000.00
    Converted MFEM data: Example9
    FMS_13_000 modifications totalling 0 lines
    FMS_13_010.000.00
    Converted MFEM data: fichera-q2-0ref
    FMS_14_000 modifications totalling 0 lines
    FMS_14_010.000.00
    FMS_14_020.000.00
    FMS_14_030.000.00
    Converted MFEM data: fichera-q2
    FMS_15_000 modifications totalling 0 lines
    FMS_15_010.000.00
    FMS_15_020.000.00
    Converted MFEM data: star-q3-0ref
    FMS_16_000 modifications totalling 0 lines
    FMS_16_010.000.00
    FMS_16_020.000.00
    FMS_16_030.000.00
    Converted MFEM data: star-q3
    FMS_17_000 modifications totalling 0 lines
    FMS_17_010.000.00
    FMS_17_020.000.00
    Converted MFEM data: toroid-hex-0ref
    FMS_18_000 modifications totalling 0 lines
    FMS_18_010.000.00
    FMS_18_020.000.00
    FMS_18_030.000.00
    Converted MFEM data: toroid-hex
    FMS_19_000 modifications totalling 0 lines
    FMS_19_010.000.00
    FMS_19_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_FMS_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_FMS_py.html new file mode 100644 index 000000000..6bf702da9 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_FMS_py.html @@ -0,0 +1,590 @@ +databases/FMS.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  FMS.py
    +#
    +#  Tests:      mesh      - high order meshes
    +#              plots     - Mesh, Pseudocolor
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Tue Aug  4 11:25:39 PDT 2020
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def FilterMetaData(s):
    +    lines = s.split("\n")
    +    txt = ""
    +    ignores=("exprList.","#expressions",".enum","simInfo.","blockNameScheme",".missingData","DataExtents =",".rectilinearGrid",".unitCell")
    +    for line in lines:
    +        keep = True
    +        for ig in ignores:
    +             if ig in line:
    +                 keep = False
    +                 break
    +        if keep:
    +            txt = txt + (line + "\n")
    +    return txt
    +
    +def test_mesh_plus_dofs(prefix, db1, order):
    +    OpenDatabase(db1)
    +
    +    # Get the metadata
    +    md = GetMetaData(db1)
    +    TestText(prefix+"_00", FilterMetaData(str(md)))
    +
    +    # Show the mesh (curved)
    +    AddPlot("Mesh", "mesh")
    +    m = MeshAttributes()
    +    m.lineWidth = 2
    +    SetPlotOptions(m)
    +    if order != "one":
    +        AddOperator("MultiresControl")
    +        mra = MultiresControlAttributes()
    +        mra.resolution = 10
    +        mra.maxResolution = 100
    +        SetOperatorOptions(mra)
    +    DrawPlots()
    +    delta = 0.03
    +    v0 = GetView2D()
    +    v0.windowCoords = (0.-delta, 1.+delta, 0.-delta, 1.+delta)
    +    v0.viewportCoords = (0.04, 0.98, 0.03, 0.98)
    +    v0.fullFrameActivationMode = v0.Auto  # On, Off, Auto
    +    v0.fullFrameAutoThreshold = 100
    +    v0.xScale = v0.LINEAR  # LINEAR, LOG
    +    v0.yScale = v0.LINEAR  # LINEAR, LOG
    +    v0.windowValid = 1
    +    SetView2D(v0)
    +    Test(prefix + "_01")
    +
    +    # Overlay the dofs
    +    DefineScalarExpression("X", "coords(dofs)[0]")
    +    AddPlot("Pseudocolor", "X")
    +    pc = PseudocolorAttributes()
    +    pc.pointSizePixels = 12
    +    pc.colorTableName = "hot_desaturated"
    +    SetPlotOptions(pc)
    +    AddOperator("Project")
    +    AddOperator("Transform")
    +    tform = TransformAttributes(1)
    +    tform.doTranslate = 1
    +    tform.translateZ = 0.01
    +    SetOperatorOptions(tform)
    +    DrawPlots()
    +    Test(prefix + "_02")
    +    DeleteActivePlots()
    +
    +    AddPlot("Pseudocolor", "zid")
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    Test(prefix + "_03")
    +
    +def domain_test(datapath, prefix, protocol, order):
    +    db1 = pjoin(datapath,"domains_"+protocol+"_order_"+order+".fms")
    +    test_mesh_plus_dofs(prefix, db1, order)
    +    # Cleanup
    +    DeleteAllPlots()
    +    CloseDatabase(db1)
    +    CloseComputeEngine()
    +
    +def quads_test(datapath, prefix, protocol, order):
    +    db1 = pjoin(datapath,"quads_"+protocol+"_order_"+order+".fms")
    +    test_mesh_plus_dofs(prefix, db1, order)
    +
    +    ChangeActivePlotsVar("r1")
    +    DrawPlots()
    +    Test(prefix + "_04")
    +
    +    ChangeActivePlotsVar("r2")
    +    DrawPlots()
    +    Test(prefix + "_05")
    +
    +    ChangeActivePlotsVar("r3")
    +    DrawPlots()
    +    Test(prefix + "_06")
    +
    +    # Cleanup
    +    DeleteAllPlots()
    +    CloseDatabase(db1)
    +    CloseComputeEngine()
    +
    +def hex_test(datapath, prefix, protocol, order):
    +    db1 = pjoin(datapath,"hex_"+protocol+"_order_"+order+".fms")
    +    OpenDatabase(db1)
    +
    +    # Get the metadata
    +    md = GetMetaData(db1)
    +    TestText(prefix+"_00", FilterMetaData(str(md)))
    +
    +    # Show the mesh (curved)
    +    AddPlot("Mesh", "mesh")
    +    m = MeshAttributes()
    +    m.lineWidth = 2
    +    SetPlotOptions(m)
    +    if order != "one":
    +        AddOperator("MultiresControl")
    +        mra = MultiresControlAttributes()
    +        mra.resolution = 7
    +        mra.maxResolution = 100
    +        SetOperatorOptions(mra)
    +    DrawPlots()
    +    v0 = GetView3D()
    +    v0.viewNormal = (-0.736972, 0.363225, -0.570035)
    +    v0.focus = (0.499999, 0.500005, 0.499787)
    +    v0.viewUp = (0.289138, 0.931697, 0.219863)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 0.900499
    +    v0.nearPlane = -1.801
    +    v0.farPlane = 1.801
    +    v0.imagePan = (-0.00987149, 0.0367767)
    +    v0.imageZoom = 1.15249
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0.499999, 0.500005, 0.499787)
    +    v0.axis3DScaleFlag = 0
    +    v0.axis3DScales = (1, 1, 1)
    +    v0.shear = (0, 0, 1)
    +    v0.windowValid = 1
    +    SetView3D(v0)
    +    Test(prefix + "_01")
    +
    +    AddPlot("Pseudocolor", "zid")
    +    pc = PseudocolorAttributes()
    +    pc.colorTableName = "hot_desaturated"
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    Test(prefix + "_02")
    +
    +    ChangeActivePlotsVar("r1")
    +    Test(prefix + "_03")
    +
    +    ChangeActivePlotsVar("r2")
    +    Test(prefix + "_04")
    +
    +    # Check that order 3 interior dofs look ok.
    +    AddPlot("Contour", "r3")
    +    c = ContourAttributes(1)
    +    c.contourValue = (0.6, 0.8, 0.9, 1, 1.2)
    +    c.contourMethod = c.Value  # Level, Value, Percent
    +    SetPlotOptions(c)
    +    SetActivePlots((0,1)) # Delete mesh,pc plots
    +    DeleteActivePlots()
    +    DrawPlots()
    +    Test(prefix + "_05")
    +
    +    # Cleanup
    +    DeleteAllPlots()
    +    CloseDatabase(db1)
    +    CloseComputeEngine()
    +
    +def test0(datapath):
    +    protocol = "ascii"
    +    TestSection("domains - " + protocol)
    +    domain_test(datapath, "FMS_0_1", protocol, "one")
    +    domain_test(datapath, "FMS_0_2", protocol, "two")
    +    domain_test(datapath, "FMS_0_3", protocol, "three")
    +
    +def test1(datapath):
    +    protocol = "yaml"
    +    TestSection("domains - " + protocol)
    +    domain_test(datapath, "FMS_1_1", protocol, "one")
    +    domain_test(datapath, "FMS_1_2", protocol, "two")
    +    domain_test(datapath, "FMS_1_3", protocol, "three")
    +
    +def test2(datapath):
    +    protocol = "json"
    +    TestSection("domains - " + protocol)
    +    domain_test(datapath, "FMS_2_1", protocol, "one")
    +    domain_test(datapath, "FMS_2_2", protocol, "two")
    +    domain_test(datapath, "FMS_2_3", protocol, "three")
    +
    +def test3(datapath):
    +    protocol = "hdf5"
    +    TestSection("domains - " + protocol)
    +    domain_test(datapath, "FMS_3_1", protocol, "one")
    +    domain_test(datapath, "FMS_3_2", protocol, "two")
    +    domain_test(datapath, "FMS_3_3", protocol, "three")
    +
    +def test4(datapath):
    +    protocol = "ascii"
    +    TestSection("quads - " + protocol)
    +    quads_test(datapath, "FMS_4_1", protocol, "one")
    +    quads_test(datapath, "FMS_4_2", protocol, "two")
    +    quads_test(datapath, "FMS_4_3", protocol, "three")
    +
    +def test5(datapath):
    +    protocol = "yaml"
    +    TestSection("quads - " + protocol)
    +    quads_test(datapath, "FMS_5_1", protocol, "one")
    +    quads_test(datapath, "FMS_5_2", protocol, "two")
    +    quads_test(datapath, "FMS_5_3", protocol, "three")
    +
    +def test6(datapath):
    +    protocol = "ascii"
    +    TestSection("hex - " + protocol)
    +    hex_test(datapath, "FMS_6_1", protocol, "one")
    +    hex_test(datapath, "FMS_6_2", protocol, "two")
    +    hex_test(datapath, "FMS_6_3", protocol, "three")
    +    hex_test(datapath, "FMS_6_4", protocol, "four")
    +    hex_test(datapath, "FMS_6_5", protocol, "five")
    +
    +def test7(datapath):
    +    protocol = "hdf5"
    +    TestSection("hex - " + protocol)
    +    hex_test(datapath, "FMS_7_1", protocol, "one")
    +    hex_test(datapath, "FMS_7_2", protocol, "two")
    +    hex_test(datapath, "FMS_7_3", protocol, "three")
    +    hex_test(datapath, "FMS_7_4", protocol, "four")
    +    hex_test(datapath, "FMS_7_5", protocol, "five")
    +
    +def test8(datapath):
    +    TestSection("hex - time varying")
    +    prefix = "FMS_8_"
    +    db1 = pjoin(datapath,"hex*.fms database")
    +    OpenDatabase(db1)
    +
    +    # Get the metadata
    +    md = GetMetaData(db1)
    +    TestText(prefix+"_00", FilterMetaData(str(md)))
    +
    +    # Show the mesh (curved)
    +    AddPlot("Mesh", "mesh")
    +    m = MeshAttributes()
    +    m.lineWidth = 2
    +    SetPlotOptions(m)
    +    AddOperator("MultiresControl")
    +    mra = MultiresControlAttributes()
    +    mra.resolution = 7
    +    mra.maxResolution = 100
    +    SetOperatorOptions(mra)
    +    DrawPlots()
    +    v0 = GetView3D()
    +    v0.viewNormal = (-0.722008, 0.525589, -0.449957)
    +    v0.focus = (0.500085, 0.501459, 0.49554)
    +    v0.viewUp = (0.465249, 0.850161, 0.246515)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 0.989501
    +    v0.nearPlane = -1.979
    +    v0.farPlane = 1.979
    +    v0.imagePan = (0, 0)
    +    v0.imageZoom = 1.12555
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0.500085, 0.501459, 0.49554)
    +    v0.axis3DScaleFlag = 0
    +    v0.axis3DScales = (1, 1, 1)
    +    v0.shear = (0, 0, 1)
    +    v0.windowValid = 1
    +    SetView3D(v0)
    +
    +    AddPlot("Pseudocolor", "r3")
    +    pc = PseudocolorAttributes()
    +    pc.colorTableName = "hot_desaturated"
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    Test(prefix + "_01")
    +
    +    SetTimeSliderState(9)
    +    Test(prefix + "_02")
    +
    +    # Cleanup
    +    DeleteAllPlots()
    +    CloseDatabase(db1)
    +    CloseComputeEngine()
    +
    +def test9(datapath):
    +    TestSection("Root file")
    +    prefix = "FMS_9_"
    +    db1 = pjoin(datapath,"multidom.fms_root")
    +    OpenDatabase(db1)
    +
    +    # Get the metadata
    +    md = GetMetaData(db1)
    +    TestText(prefix+"_00", FilterMetaData(str(md)))
    +
    +    # Show the mesh (curved)
    +    AddPlot("Mesh", "mesh")
    +    m = MeshAttributes()
    +    m.lineWidth = 2
    +    SetPlotOptions(m)
    +    DrawPlots()
    +    AddPlot("Pseudocolor", "coords_magnitude")
    +    pc = PseudocolorAttributes()
    +    pc.colorTableName = "hot_desaturated"
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    ResetView()
    +    Test(prefix + "_01")
    +
    +    DeleteActivePlots()
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test(prefix + "_02")
    +
    +    # Cleanup
    +    DeleteAllPlots()
    +    CloseDatabase(db1)
    +    CloseComputeEngine()
    +
    +def plot_converted_data(prefix, db, var, v0, resolution, meshName, dodof):
    +    OpenDatabase(db)
    +
    +    # Get the metadata
    +    md = GetMetaData(db)
    +    TestText(prefix+"_00", FilterMetaData(str(md)))
    +
    +    AddPlot("Pseudocolor", var)
    +    pc = PseudocolorAttributes()
    +    pc.colorTableName = "hot_desaturated"
    +    SetPlotOptions(pc)
    +    AddOperator("MultiresControl")
    +    mra = MultiresControlAttributes()
    +    mra.resolution = resolution
    +    mra.maxResolution = 100
    +    SetOperatorOptions(mra)
    +    DrawPlots()
    +
    +    # Try setting the view.
    +    try:
    +        SetView3D(v0)
    +    except:
    +        try:
    +            SetView2D(v0)
    +        except:
    +            ResetView()
    +
    +
    +    Test(prefix + "_01")
    +
    +    # Add a mesh plot of the boundaries and refine them.
    +    if meshName != "":
    +        AddPlot("Mesh", meshName, 1, 1)
    +        m = MeshAttributes(1)
    +        m.lineWidth = 1
    +        SetPlotOptions(m)
    +        DrawPlots()
    +        Test(prefix + "_02")
    +
    +    # Add a mesh plot of the dofs.
    +    if dodof:
    +        AddPlot("Mesh", "dofs", 0, 0)
    +        m2 = MeshAttributes(1)
    +        m2.meshColor = (255, 0, 0, 255)
    +        m2.meshColorSource = m2.MeshCustom  # Foreground, MeshCustom, MeshRandom
    +        m2.pointSize = 0.075
    +        m2.opaqueColor = (255, 255, 255, 255)
    +        m2.pointType = m2.SphereGeometry  # Box, Axis, Icosahedron, Octahedron, Tetrahedron, SphereGeometry, Point, Sphere
    +        m2.pointSizePixels = 10
    +        m2.opacity = 1
    +        SetPlotOptions(m2)
    +        DrawPlots()
    +        Test(prefix + "_03")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +    CloseComputeEngine()
    +
    +def escher_view():
    +    v0 = GetView3D()
    +    v0.viewNormal = (0.301943, 0.349059, 0.887124)
    +    v0.focus = (0.015155, 0.00931501, 0.00220501)
    +    v0.viewUp = (-0.108572, 0.937093, -0.331767)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 2.69081
    +    v0.nearPlane = -5.38163
    +    v0.farPlane = 5.38163
    +    v0.imagePan = (-0.011426, -0.0216873)
    +    v0.imageZoom = 1.62652
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0.015155, 0.00931501, 0.00220501)
    +    v0.axis3DScaleFlag = 0
    +    v0.axis3DScales = (1, 1, 1)
    +    v0.shear = (0, 0, 1)
    +    v0.windowValid = 1
    +    return v0
    +
    +def test10(datapath):
    +    TestSection("Converted MFEM data: escher-p3-0ref")
    +    db = pjoin(datapath,"converted-data/escher-p3-0ref/Example5_000000.fms")
    +
    +    v0 = escher_view()
    +    plot_converted_data("FMS_10", db, "pressure", v0, 5, "boundary", True)
    +
    +def test11(datapath):
    +    TestSection("Converted MFEM data: escher-p3")
    +    db = pjoin(datapath,"converted-data/escher-p3/Example5_000000.fms")
    +
    +    v0 = escher_view()
    +    plot_converted_data("FMS_11", db, "pressure", v0, 4, "boundary", False)
    +
    +def test12(datapath):
    +    TestSection("Converted MFEM data: Example15")
    +    db = pjoin(datapath,"converted-data/Example15/Example15_000000.fms")
    +
    +    v0 = GetView2D()
    +    v0.windowCoords = (-1.74594, 1.76718, -1.7, 1.55366)
    +    v0.viewportCoords = (0.01, 0.99, 0.01, 0.99)
    +    v0.fullFrameActivationMode = v0.Auto  # On, Off, Auto
    +    v0.fullFrameAutoThreshold = 100
    +    v0.xScale = v0.LINEAR  # LINEAR, LOG
    +    v0.yScale = v0.LINEAR  # LINEAR, LOG
    +    v0.windowValid = 1
    +
    +    plot_converted_data("FMS_12", db, "solution", v0, 8, "boundary", True)
    +
    +def test13(datapath):
    +    TestSection("Converted MFEM data: Example9")
    +    db = pjoin(datapath,"converted-data/Example9/Example9_000000.fms")
    +
    +    v0 = GetView2D()
    +    v0.windowCoords = (-1, 1, -0.966025, 0.866025)
    +    v0.viewportCoords = (0.01, 0.99, 0.01, 0.99)
    +    v0.fullFrameActivationMode = v0.Auto  # On, Off, Auto
    +    v0.fullFrameAutoThreshold = 100
    +    v0.xScale = v0.LINEAR  # LINEAR, LOG
    +    v0.yScale = v0.LINEAR  # LINEAR, LOG
    +    v0.windowValid = 1
    +
    +    plot_converted_data("FMS_13", db, "solution", v0, 8, "", False)
    +
    +def fichera_view():
    +    v0 = GetView3D()
    +    v0.viewNormal = (0.76587, 0.438546, -0.470235)
    +    v0.focus = (0.00682861, 0.00298607, -0.00561833)
    +    v0.viewUp = (-0.368491, 0.898664, 0.237945)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 1.82615
    +    v0.nearPlane = -3.6523
    +    v0.farPlane = 3.6523
    +    v0.imagePan = (0.00522255, 0.0292194)
    +    v0.imageZoom = 1.09494
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0.00682861, 0.00298607, -0.00561833)
    +    v0.axis3DScaleFlag = 0
    +    v0.axis3DScales = (1, 1, 1)
    +    v0.shear = (0, 0, 1)
    +    v0.windowValid = 1
    +    return v0
    +
    +def test14(datapath):
    +    TestSection("Converted MFEM data: fichera-q2-0ref")
    +    db = pjoin(datapath,"converted-data/fichera-q2-0ref/Example5_000000.fms")
    +
    +    v0 = fichera_view()
    +    plot_converted_data("FMS_14", db, "pressure", v0, 8, "boundary", True)
    +
    +def test15(datapath):
    +    TestSection("Converted MFEM data: fichera-q2")
    +    db = pjoin(datapath,"converted-data/fichera-q2/Example5_000000.fms")
    +
    +    v0 = fichera_view()
    +    plot_converted_data("FMS_15", db, "pressure", v0, 4, "boundary", False)
    +
    +def test16(datapath):
    +    TestSection("Converted MFEM data: star-q3-0ref")
    +    db = pjoin(datapath,"converted-data/star-q3-0ref/Example5_000000.fms")
    +
    +    v0 = GetView2D()
    +    v0.windowCoords = (-1.8181, 1.8181, -1.7, 1.58418)
    +    v0.viewportCoords = (0.01, 0.99, 0.01, 0.99)
    +    v0.fullFrameActivationMode = v0.Auto  # On, Off, Auto
    +    v0.fullFrameAutoThreshold = 100
    +    v0.xScale = v0.LINEAR  # LINEAR, LOG
    +    v0.yScale = v0.LINEAR  # LINEAR, LOG
    +    v0.windowValid = 1
    +
    +    plot_converted_data("FMS_16", db, "pressure", v0, 8, "mesh", True)
    +
    +def test17(datapath):
    +    TestSection("Converted MFEM data: star-q3")
    +    db = pjoin(datapath,"converted-data/star-q3/Example5_000000.fms")
    +
    +    v0 = GetView2D()
    +    v0.windowCoords = (-1.8181, 1.8181, -1.7, 1.58418)
    +    v0.viewportCoords = (0.01, 0.99, 0.01, 0.99)
    +    v0.fullFrameActivationMode = v0.Auto  # On, Off, Auto
    +    v0.fullFrameAutoThreshold = 100
    +    v0.xScale = v0.LINEAR  # LINEAR, LOG
    +    v0.yScale = v0.LINEAR  # LINEAR, LOG
    +    v0.windowValid = 1
    +
    +    plot_converted_data("FMS_17", db, "pressure", v0, 4, "boundary", False)
    +
    +def toroid_view():
    +    v0 = GetView3D()
    +    v0.viewNormal = (0, 0, 1)
    +    v0.focus = (-0.0503261, 0, 0)
    +    v0.viewUp = (0, 1, 0)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 1.96586
    +    v0.nearPlane = -3.93172
    +    v0.farPlane = 3.93172
    +    v0.imagePan = (0, 0)
    +    v0.imageZoom = 1.29234
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (-0.0503261, 0, 0)
    +    v0.axis3DScaleFlag = 0
    +    v0.axis3DScales = (1, 1, 1)
    +    v0.shear = (0, 0, 1)
    +    v0.windowValid = 1
    +    return v0
    +
    +def test18(datapath):
    +    TestSection("Converted MFEM data: toroid-hex-0ref")
    +    db = pjoin(datapath,"converted-data/toroid-hex-0ref/Example5_000000.fms")
    +
    +    v0 = toroid_view()
    +    plot_converted_data("FMS_18", db, "pressure", v0, 8, "mesh", True)
    +
    +def test19(datapath):
    +    TestSection("Converted MFEM data: toroid-hex")
    +    db = pjoin(datapath,"converted-data/toroid-hex/Example5_000000.fms")
    +
    +    v0 = toroid_view()
    +    plot_converted_data("FMS_19", db, "pressure", v0, 4, "boundary", False)
    +
    +def main():
    +    RequiredDatabasePlugin("FMS")
    +
    +    datapath = data_path("FMS_test_data")
    +    DefineScalarExpression("zid", "zoneid(mesh)")
    +
    +    # domains
    +    test0(datapath)
    +    test1(datapath)
    +    test2(datapath)
    +    test3(datapath)
    +    # quads
    +    test4(datapath)
    +    test5(datapath)
    +    # hex
    +    test6(datapath)
    +    test7(datapath)
    +    # time varying data
    +    test8(datapath)
    +    # root
    +    test9(datapath)
    +    # Datasets that were converted from MFEM to FMS
    +    test10(datapath)
    +    test11(datapath)
    +    test12(datapath)
    +    test13(datapath)
    +    test14(datapath)
    +    test15(datapath)
    +    test16(datapath)
    +    test17(datapath)
    +    test18(datapath)
    +    test19(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_Fluent.html b/2024-12-12-22:00/poodle_trunk_serial/databases_Fluent.html new file mode 100644 index 000000000..d2ec0b415 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_Fluent.html @@ -0,0 +1,60 @@ + +Results for databases/Fluent.py + +

    Results of VisIt Regression Test - databases/Fluent

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Fluent_010.000.00
    Fluent_020.000.00
    Fluent_030.000.00
    Fluent_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_Fluent_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_Fluent_py.html new file mode 100644 index 000000000..99af9b283 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_Fluent_py.html @@ -0,0 +1,43 @@ +databases/Fluent.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  Fluent.py
    +#
    +#  Programmer: Hank Childs
    +#  Date:       September 8, 2006
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Tue Jul 15 10:43:58 EDT 2008
    +#    Changed number of vectors in vector plot to match the old behavior.
    +#    (We now account for how many domains there are.)
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(data_path("Fluent_test_data/Gas2OxyEntSlurry3d30m_MSmods_Ar_Wen_Moist_CO2_WGS_HCl_COdevol.cas"))
    +
    +AddPlot("Pseudocolor", "TEMPERATURE")
    +DrawPlots()
    +Test("Fluent_01")
    +
    +AddPlot("Mesh", "Mesh")
    +DrawPlots()
    +Test("Fluent_02")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Vector", "DPMS_MOM")
    +v = VectorAttributes()
    +v.nVectors = 400*5
    +SetPlotOptions(v)
    +DrawPlots()
    +Test("Fluent_03")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Subset", "blocks")
    +DrawPlots()
    +Test("Fluent_04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_GDAL.html b/2024-12-12-22:00/poodle_trunk_serial/databases_GDAL.html new file mode 100644 index 000000000..2f250f543 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_GDAL.html @@ -0,0 +1,126 @@ + +Results for databases/GDAL.py + +

    Results of VisIt Regression Test - databases/GDAL

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ArcInfo files
    GDAL_0_000.000.00
    GDAL_0_010.000.00
    GDAL_0_020.000.00
    GDAL_0_030.000.00
    GDAL_0_040.000.00
    GDAL_0_050.000.00
    GDAL_0_060.000.00
    DEM files
    GDAL_1_000.000.00
    GDAL_1_010.000.00
    GDAL_1_020.000.00
    GDAL_1_030.000.00
    GDAL_1_040.000.00
    GDAL_1_050.000.00
    GDAL_1_060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_GDAL_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_GDAL_py.html new file mode 100644 index 000000000..3b9a83338 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_GDAL_py.html @@ -0,0 +1,107 @@ +databases/GDAL.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  GDAL.py
    +#
    +#  Tests:      mesh      - 2D structured, 3D unstructured
    +#              plots     - Contour, Pseudocolor
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Sep 8 16:35:17 PST 2005
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("GDAL")
    +
    +def test0_and_1(db, prefix):
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "lower_res/resolution_0067x0086/height")
    +    AddPlot("Contour", "lower_res/resolution_0067x0086/height")
    +    c = ContourAttributes()
    +    c.colorType = c.ColorBySingleColor
    +    c.singleColor = (0,0,0,255)
    +    c.legendFlag = 0
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    ResetView()
    +    v = View2DAttributes()
    +    v.windowCoords = (478545, 489295, 4.38614e+06, 4.40004e+06)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +    v.fullFrameAutoThreshold = 100
    +    SetView2D(v)
    +    Test(prefix + "00")
    +
    +    # Increase the resolution a couple times.
    +    SetActivePlots((0,1))
    +    ChangeActivePlotsVar("lower_res/resolution_0268x0347/height")
    +    Test(prefix + "01")
    +    ChangeActivePlotsVar("height")
    +    Test(prefix + "02")
    +
    +    # Switch to the elevated mesh
    +    ChangeActivePlotsVar("elevated/lower_res/resolution_0067x0086/height")
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (0.514425, -0.612921, 0.599745)
    +    v0.focus = (483920, 4.39318e+06, 2025.5)
    +    v0.viewUp = (-0.383293, 0.461288, 0.800187)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 8729.59
    +    v0.nearPlane = -17459.2
    +    v0.farPlane = 17459.2
    +    v0.imagePan = (0, 0)
    +    v0.imageZoom = 1.16907
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (483920, 4.39318e+06, 2025.5)
    +    SetView3D(v0)
    +    Test(prefix + "03")
    +
    +    v1 = View3DAttributes()
    +    v1.viewNormal = (0.514425, -0.612921, 0.599745)
    +    v1.focus = (483920, 4.39312e+06, 2031)
    +    v1.viewUp = (-0.383293, 0.461288, 0.800187)
    +    v1.viewAngle = 30
    +    v1.parallelScale = 8777.87
    +    v1.nearPlane = -17555.7
    +    v1.farPlane = 17555.7
    +    v1.imagePan = (0.106418, 0.0224564)
    +    v1.imageZoom = 2.73653
    +    v1.perspective = 1
    +    v1.eyeAngle = 2
    +    v1.centerOfRotationSet = 0
    +    v1.centerOfRotation = (483920, 4.39312e+06, 2031)
    +    SetView3D(v1)
    +    Test(prefix + "04")
    +
    +    SetActivePlots(1)
    +    DeleteActivePlots()
    +    ChangeActivePlotsVar("elevated/lower_res/resolution_0268x0347/height")
    +    Test(prefix + "05")
    +    ChangeActivePlotsVar("elevated/mesh/height")
    +    Test(prefix + "06")
    +    DeleteAllPlots()
    +
    +def test0(datapath):
    +    TestSection("ArcInfo files")
    +    test0_and_1(pjoin(datapath,"ADF/w001001.adf"), "GDAL_0_")
    +
    +def test1(datapath):
    +    TestSection("DEM files")
    +    test0_and_1(pjoin(datapath,"DEM/Morrison.dem"), "GDAL_1_")
    +
    +def main():
    +    # Draw antialiased lines
    +    r = GetRenderingAttributes()
    +    r.antialiasing = 1
    +    SetRenderingAttributes(r)
    +
    +    datapath = data_path("GDAL_test_data")
    +    test0(datapath)
    +    test1(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_NASTRAN.html b/2024-12-12-22:00/poodle_trunk_serial/databases_NASTRAN.html new file mode 100644 index 000000000..f3ac1fa4e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_NASTRAN.html @@ -0,0 +1,204 @@ + +Results for databases/NASTRAN.py + +

    Results of VisIt Regression Test - databases/NASTRAN

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    pipe.nas
    nastran1_00.000.00
    nastran1_10.000.00
    nastran1_20.000.00
    waterjacket.nas
    nastran2_00.000.00
    nastran2_10.000.00
    nastran2_20.000.00
    intake.nas
    nastran3_00.000.00
    nastran3_10.000.00
    nastran3_20.000.00
    porsche.nas
    nastran4_00.000.00
    nastran4_10.000.00
    nastran4_20.000.00
    Rohr_01.nas
    nastran5_00.000.00
    nastran5_10.000.00
    BMSP4E.nas
    nastran6_00.000.00
    HAM6D.nas
    nastran7_00.000.00
    nastran7_10.000.00
    simpleCQUAD8.nas
    nastran8_00.000.00
    simpleQuadSphere.nas
    nastran9_00.000.00
    simpleQuadSphereBlock.nas
    nastran10_00.000.00
    simpleQuadTet.nas
    nastran11_00.000.00
    simpleQuadWedge.nas
    nastran12_00.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_NASTRAN_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_NASTRAN_py.html new file mode 100644 index 000000000..d3667841a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_NASTRAN_py.html @@ -0,0 +1,511 @@ +databases/NASTRAN.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  NASTRAN.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - Mesh
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Jul 7 17:46:51 PST 2005
    +#
    +#  Modifications:
    +#    Edward Rusu, Tue Aug 21 10:06:24 PST 2018
    +#    Added tests for quadratic elements.
    +#
    +#    Kathleen Biagas, Wed Feb 16 09:15:45 PST 2022
    +#    Replace use of meshatts 'foregroundFlag' and 'backgroundFlag' with
    +#    meshColorSource and opaqueColorSource.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def AddMeshPlot():
    +    AddPlot("Mesh", "mesh")
    +    m = MeshAttributes()
    +    m.legendFlag = 0
    +    m.opaqueColor = (153, 204, 255, 255)
    +    m.opaqueColorSource = m.OpaqueCustom
    +    m.meshColorSource = m.MeshCustom
    +    m.meshColor = (0,0,0,255)
    +    SetPlotOptions(m)
    +
    +def AddPseudocolorPlot():
    +    AddPlot("Pseudocolor", "one")
    +    p = PseudocolorAttributes()
    +    p.colorTableName = "rainbow"
    +    p.SetOpacityType(p.Constant)
    +    p.opacity = 0.2
    +    SetPlotOptions(p)
    +    DrawPlots()
    +
    +def test1(datapath):
    +    db = "pipe.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.786306, 0.379526, 0.487527)
    +    v.focus = (0.149902, 0.212562, 0.124929)
    +    v.viewUp = (0.316186, 0.925114, -0.210215)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.585963
    +    v.nearPlane = -1.17193
    +    v.farPlane = 1.17193
    +    v.imagePan = (0.0173275, 0.033058)
    +    v.imageZoom = 1.45734
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.149902, 0.212562, 0.124929)
    +    SetView3D(v)
    +    Test("nastran1_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.786306, 0.379526, 0.487527)
    +    v2.focus = (0.149902, 0.212562, 0.124929)
    +    v2.viewUp = (0.316186, 0.925114, -0.210215)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 0.585963
    +    v2.nearPlane = -1.17193
    +    v2.farPlane = 1.17193
    +    v2.imagePan = (-0.108127, 0.0971661)
    +    v2.imageZoom = 6.92887
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0.149902, 0.212562, 0.124929)
    +    SetView3D(v2)
    +    Test("nastran1_1")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    SetView3D(v)
    +    Test("nastran1_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test2(datapath):
    +    db = "waterjacket.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.65317, -0.673371, 0.346324)
    +    v.focus = (0.03, -0.03, -0.1125)
    +    v.viewUp = (0.225064, 0.264053, 0.937882)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.289925
    +    v.nearPlane = -0.579849
    +    v.farPlane = 0.579849
    +    v.imagePan = (0.0984407, 0.0467479)
    +    v.imageZoom = 1.40003
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.03, -0.03, -0.1125)
    +    SetView3D(v)
    +    Test("nastran2_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.65317, -0.673371, 0.346324)
    +    v2.focus = (0.03, -0.03, -0.1125)
    +    v2.viewUp = (0.225064, 0.264053, 0.937882)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 0.289925
    +    v2.nearPlane = -0.579849
    +    v2.farPlane = 0.579849
    +    v2.imagePan = (0.100347, 0.0410472)
    +    v2.imageZoom = 7.7658
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0.03, -0.03, -0.1125)
    +    SetView3D(v2)
    +    Test("nastran2_1")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    SetView3D(v)
    +    Test("nastran2_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test3(datapath):
    +    db = "intake.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.61876, 0.311053, -0.721375)
    +    v.focus = (0, 0.011, -0.0935)
    +    v.viewUp = (0.208418, 0.950364, 0.231021)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.198752
    +    v.nearPlane = -0.397503
    +    v.farPlane = 0.397503
    +    v.imagePan = (0.0151275, 0.00167627)
    +    v.imageZoom = 1.43299
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0.011, -0.0935)
    +    SetView3D(v)
    +    Test("nastran3_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.61876, 0.311053, -0.721375)
    +    v2.focus = (0, 0.011, -0.0935)
    +    v2.viewUp = (0.208418, 0.950364, 0.231021)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 0.198752
    +    v2.nearPlane = -0.397503
    +    v2.farPlane = 0.397503
    +    v2.imagePan = (-0.101283, 0.0396808)
    +    v2.imageZoom = 6.28038
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0, 0.011, -0.0935)
    +    SetView3D(v2)
    +    Test("nastran3_1")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    SetView3D(v)
    +    Test("nastran3_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test4(datapath):
    +    db = "porsche.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (0.518428, 0.424019, 0.74259)
    +    v.focus = (0, 7.9285, 0)
    +    v.viewUp = (-0.299854, 0.903405, -0.306506)
    +    v.viewAngle = 30
    +    v.parallelScale = 24.7409
    +    v.nearPlane = -5
    +    v.farPlane = 49.4817
    +    v.imagePan = (0.00934164, 0.144131)
    +    v.imageZoom = 4.02409
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 7.9285, 0)
    +    SetView3D(v)
    +    Test("nastran4_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (0.518428, 0.424019, 0.74259)
    +    v2.focus = (0, 7.9285, 0)
    +    v2.viewUp = (-0.299854, 0.903405, -0.306506)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 24.7409
    +    v2.nearPlane = -5
    +    v2.farPlane = 49.4817
    +    v2.imagePan = (0.0898178, 0.146581)
    +    v2.imageZoom = 19.659
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0, 7.9285, 0)
    +    SetView3D(v2)
    +    Test("nastran4_1")
    +
    +    v3 = View3DAttributes()
    +    v3.viewNormal = (0.945904, 0.10945, -0.305429)
    +    v3.focus = (0, 7.9285, 0)
    +    v3.viewUp = (-0.0962433, 0.993666, 0.0580174)
    +    v3.viewAngle = 30
    +    v3.parallelScale = 24.7409
    +    v3.nearPlane = -8
    +    v3.farPlane = 49.4817
    +    v3.imagePan = (-0.000386251, 0.195232)
    +    v3.imageZoom = 17.0743
    +    v3.perspective = 1
    +    v3.eyeAngle = 2
    +    v3.centerOfRotationSet = 0
    +    v3.centerOfRotation = (0, 7.9285, 0)
    +    SetView3D(v3)
    +    Test("nastran4_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test5(datapath):
    +    db = "Rohr_01.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (0.528785, -0.54024, -0.654619)
    +    v.focus = (4308, -300.408, 1264.41)
    +    v.viewUp = (0.848128, 0.365992, 0.383052)
    +    v.viewAngle = 30
    +    v.parallelScale = 80.5714
    +    v.nearPlane = -161.143
    +    v.farPlane = 161.143
    +    v.imagePan = (0.00712918, 0.0383046)
    +    v.imageZoom = 1.48788
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (4308, -300.408, 1264.41)
    +    SetView3D(v)
    +    Test("nastran5_0")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    Test("nastran5_1")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test6(datapath):
    +    db = "BMSP4E.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (0.489205, 0.349064, 0.79927)
    +    v.focus = (0, 45.5, 0)
    +    v.viewUp = (-0.206708, 0.93671, -0.282569)
    +    v.viewAngle = 30
    +    v.parallelScale = 87.3806
    +    v.nearPlane = -174.761
    +    v.farPlane = 174.761
    +    v.imagePan = (-0.0102947, 0.0427356)
    +    v.imageZoom = 1.29632
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 45.5, 0)
    +    SetView3D(v)
    +    Test("nastran6_0")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test7(datapath):
    +    db = "HAM6D.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (0.470653, -0.53132, 0.704403)
    +    v.focus = (23.6, -6.3125, 0)
    +    v.viewUp = (0.882043, 0.303259, -0.360602)
    +    v.viewAngle = 30
    +    v.parallelScale = 74.2944
    +    v.nearPlane = -148.589
    +    v.farPlane = 148.589
    +    v.imagePan = (0.0131053, 0.00691564)
    +    v.imageZoom = 1.18535
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (23.6, -6.3125, 0)
    +    SetView3D(v)
    +    Test("nastran7_0")
    +
    +    v.viewNormal = (0.347772, 0.646944, -0.678615)
    +    v.focus = (23.6, -6.3125, 0)
    +    v.viewUp = (0.937573, -0.242724, 0.249084)
    +    v.viewAngle = 30
    +    v.parallelScale = 74.2944
    +    v.nearPlane = -148.589
    +    v.farPlane = 148.589
    +    v.imagePan = (-0.0229218, 0.0211742)
    +    v.imageZoom = 1.18535
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (23.6, -6.3125, 0)
    +    SetView3D(v)
    +    Test("nastran7_1")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test8(datapath):
    +    db = "simpleCQUAD8.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +    Test("nastran8_0")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test9(datapath):
    +    db = "simpleQuadSphere.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0, 0, 1)
    +    View3DAtts.focus = (2.88777, -1.45671, -0.629586)
    +    View3DAtts.viewUp = (0, 1, 0)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 6.98115
    +    View3DAtts.nearPlane = -13.9623
    +    View3DAtts.farPlane = 13.9623
    +    View3DAtts.imagePan = (0.204513, -0.111237)
    +    View3DAtts.imageZoom = 5.50207
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (2.88777, -1.45671, -0.629586)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +    Test("nastran9_0")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test10(datapath):
    +    db = "simpleQuadSphereBlock.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0, 0, 1)
    +    View3DAtts.focus = (0, -1.38778, -3.66334)
    +    View3DAtts.viewUp = (0, 1, 0)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 12.6655
    +    View3DAtts.nearPlane = -25.3309
    +    View3DAtts.farPlane = 25.3309
    +    View3DAtts.imagePan = (-0.00429799, -0.061086)
    +    View3DAtts.imageZoom = 9.89552
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0, -1.38778, -3.66334)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +    Test("nastran10_0")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test11(datapath):
    +    db = "simpleQuadTet.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0.585895, 0.392177, 0.709172)
    +    View3DAtts.focus = (0.5, 0.5, 0.5)
    +    View3DAtts.viewUp = (-0.133518, 0.909858, -0.39285)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 0.866025
    +    View3DAtts.nearPlane = -1.73205
    +    View3DAtts.farPlane = 1.73205
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0.5, 0.5, 0.5)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +    Test("nastran11_0")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test12(datapath):
    +    db = "simpleQuadWedge.nas"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (-0.468638, 0.237166, 0.850959)
    +    View3DAtts.focus = (0.5, 0.5, 0.5)
    +    View3DAtts.viewUp = (0.128356, 0.971346, -0.20003)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 0.866025
    +    View3DAtts.nearPlane = -1.73205
    +    View3DAtts.farPlane = 1.73205
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0.5, 0.5, 0.5)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +    Test("nastran12_0")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def main():
    +    # Set the window background color
    +    a = GetAnnotationAttributes()
    +    a.backgroundMode = a.Solid
    +    a.backgroundColor = (180, 180, 180, 255)
    +    a.foregroundColor = (255, 255, 255, 255)
    +    SetAnnotationAttributes(a)
    +
    +    DefineScalarExpression("one", "(zoneid(mesh) + 1) / (zoneid(mesh) + 1)")
    +
    +    datapath = data_path("NASTRAN_test_data")
    +    test1(datapath)
    +    test2(datapath)
    +    test3(datapath)
    +    test4(datapath)
    +    test5(datapath)
    +    test6(datapath)
    +    test7(datapath)
    +    test8(datapath)
    +    test9(datapath)
    +    test10(datapath)
    +    test11(datapath)
    +    test12(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_OpenFOAM.html b/2024-12-12-22:00/poodle_trunk_serial/databases_OpenFOAM.html new file mode 100644 index 000000000..11e1fa985 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_OpenFOAM.html @@ -0,0 +1,210 @@ + +Results for databases/OpenFOAM.py + +

    Results of VisIt Regression Test - databases/OpenFOAM

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    OpenFOAM_010.000.00
    OpenFOAM_020.000.00
    OpenFOAM_030.000.00
    OpenFOAM_040.000.00
    OpenFOAM_050.000.00
    OpenFOAM_060.000.00
    OpenFOAM_070.000.00
    OpenFOAM_080.000.00
    OpenFOAM_090.000.00
    OpenFOAM_100.000.00
    OpenFOAM_lagrangian_010.000.00
    OpenFOAM_lagrangian_020.000.00
    OpenFOAM_lagrangian_030.000.00
    OpenFOAM_lagrangian_040.000.00
    OpenFOAM_lagrangian_050.000.00
    OpenFOAM_lagrangian_060.000.00
    OpenFOAM_lagrangian_070.000.00
    OpenFOAM_MultiRegion_010.000.00
    OpenFOAM_MultiRegion_020.000.00
    OpenFOAM_MultiRegion_030.000.00
    OpenFOAM_MultiRegion_040.000.00
    OpenFOAM_MultiRegion_050.000.00
    OpenFOAM_MultiRegion_060.000.00
    OpenFOAM_Decomposed_010.000.00
    OpenFOAM_Decomposed_020.000.00
    OpenFOAM_Decomposed_030.000.00
    OpenFOAM_ReadZones_010.000.00
    OpenFOAM_ReadZones_020.000.00
    OpenFOAM_ReadZones_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_OpenFOAM_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_OpenFOAM_py.html new file mode 100644 index 000000000..e7e12f415 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_OpenFOAM_py.html @@ -0,0 +1,250 @@ +databases/OpenFOAM.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  OpenFOAM.py
    +#
    +#  Programmer: Hank Childs
    +#  Date:       September 8, 2006
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Tue Jul 15 10:43:58 EDT 2008
    +#    Changed number of vectors in vector plot to match the old behavior.
    +#    (We now account for how many domains there are.)
    +#
    +#    Kathleen Biagas, Tue Aug 20 14:06:46 PDT 2013
    +#    Reader has been updated, default mesh is now 'internalMesh', and
    +#    variables need mesh name.
    +#
    +#    Kathleen Biagas, Wed Aug 28 12:04:03 PDT 2013
    +#    Added tests for new data, different Open Options.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def OrigTests():
    +    OpenDatabase(data_path("OpenFOAM_test_data/bubbleColumn/system/controlDict"))
    +
    +    AddPlot("Vector", "internalMesh/Ua")
    +    v = VectorAttributes()
    +    v.nVectors = 400*5
    +    SetPlotOptions(v)
    +    DrawPlots()
    +    Test("OpenFOAM_01")
    +
    +    TimeSliderNextState()
    +    Test("OpenFOAM_02")
    +    TimeSliderNextState()
    +    Test("OpenFOAM_03")
    +
    +    AddPlot("Mesh", "internalMesh")
    +    DrawPlots()
    +    Test("OpenFOAM_04")
    +
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "internalMesh/epsilon")
    +    DrawPlots()
    +    Test("OpenFOAM_05")
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(data_path("OpenFOAM_test_data/mixer2D_ascii/system/controlDict"))
    +
    +    AddPlot("Vector", "internalMesh/U")
    +    v = VectorAttributes()
    +    v.nVectors = 400*6
    +    SetPlotOptions(v)
    +    DrawPlots()
    +    Test("OpenFOAM_06")
    +
    +    TimeSliderNextState()
    +    Test("OpenFOAM_07")
    +    TimeSliderNextState()
    +    Test("OpenFOAM_08")
    +
    +    AddPlot("Mesh", "internalMesh")
    +    DrawPlots()
    +    Test("OpenFOAM_09")
    +
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "internalMesh/p")
    +    DrawPlots()
    +    Test("OpenFOAM_10")
    +
    +    DeleteAllPlots()
    +
    +def TestLagrangian():
    +    OpenDatabase(data_path("OpenFOAM_test_data/simplifiedSiwek/system/controlDict"))
    +    # Point clouds don't exist at timestate 0, so advance by 1.
    +    TimeSliderNextState()
    +
    +    AddPlot("Subset", "internalMesh")
    +    subset = SubsetAttributes()
    +    subset.wireframe = 1
    +    subset.colorType = subset.ColorBySingleColor
    +    SetPlotOptions(subset)
    +    AddPlot("Mesh", "lagrangian/coalCloud1")
    +    coalMesh = MeshAttributes()
    +    coalMesh.meshColorSource = coalMesh.MeshCustom
    +    coalMesh.meshColor = (255, 0, 0, 255)
    +    coalMesh.pointType = coalMesh.Sphere
    +    coalMesh.pointSizePixels = 15
    +    SetPlotOptions(coalMesh)
    +    AddPlot("Mesh", "lagrangian/limestoneCloud1")
    +    limestoneMesh = MeshAttributes()
    +    limestoneMesh.meshColorSource = limestoneMesh.MeshCustom
    +    limestoneMesh.meshColor = (0, 255, 0, 255)
    +    limestoneMesh.pointType = limestoneMesh.Sphere
    +    limestoneMesh.pointSizePixels = 15
    +    SetPlotOptions(limestoneMesh)
    +
    +    coalCloudText = CreateAnnotationObject("Text2D")
    +    coalCloudText.text = "coalCloud1"
    +    coalCloudText.height = 0.04
    +    coalCloudText.position = (0.4, 0.85)
    +    coalCloudText.useForegroundForTextColor = 0
    +    coalCloudText.textColor = (255, 0, 0, 255)
    +
    +    limestoneCloudText = CreateAnnotationObject("Text2D")
    +    limestoneCloudText.text = "limestoneCloud1"
    +    limestoneCloudText.height = 0.04
    +    limestoneCloudText.position = (0.4, 0.75)
    +    limestoneCloudText.useForegroundForTextColor = 0
    +    limestoneCloudText.textColor = (0, 255, 0, 255)
    +
    +    slider = CreateAnnotationObject("TimeSlider")
    +    slider.position = (0.4, 0.6)
    +    slider.width = (0.5)
    +    slider.height = (0.1)
    +
    +    DrawPlots()
    +    Test("OpenFOAM_lagrangian_01")
    +
    +    TimeSliderSetState(4)
    +    Test("OpenFOAM_lagrangian_02")
    +    TimeSliderSetState(7)
    +    Test("OpenFOAM_lagrangian_03")
    +    SetActivePlots((1, 2))
    +    DeleteActivePlots()
    +    TimeSliderSetState(10)
    +    AddPlot("Pseudocolor", "lagrangian/coalCloud1/tTurb")
    +    pc = PseudocolorAttributes()
    +    pc.pointType = pc.Sphere
    +    pc.pointSizePixels = 15
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    coalCloudText.textColor = (0, 0, 0, 255)
    +    coalCloudText.text = "coalcloud1/tTurb"
    +    limestoneCloudText.visible = 0
    +    Test("OpenFOAM_lagrangian_04")
    +    TimeSliderSetState(13)
    +    Test("OpenFOAM_lagrangian_05")
    +    ChangeActivePlotsVar("lagrangian/limestoneCloud1/tTurb")
    +    coalCloudText.visible = 0
    +    limestoneCloudText.visible = 1
    +    limestoneCloudText.textColor = (0, 0, 0, 255)
    +    limestoneCloudText.text = "limestoneCloud1/tTurb"
    +    Test("OpenFOAM_lagrangian_06")
    +    TimeSliderSetState(16)
    +    Test("OpenFOAM_lagrangian_07")
    +
    +    coalCloudText.Delete()
    +    limestoneCloudText.Delete()
    +    slider.Delete()
    +
    +    DeleteAllPlots()
    +
    +def TurnOffSetsByName(silr, cat, names):
    +    sets = silr.SetsInCategory(cat)
    +    for s in sets:
    +        setname = silr.SetName(s)
    +        try:
    +            if setname in names:
    +                silr.TurnOffSet(s)
    +        except:
    +            if setname == names:
    +                silr.TurnOffSet(s)
    +
    +def TestMultiRegion():
    +    OpenDatabase(data_path("OpenFOAM_test_data/snappyMultiRegionHeater/system/controlDict"))
    +    AddPlot("Subset", "Region")
    +    DrawPlots()
    +    Test("OpenFOAM_MultiRegion_01")
    +
    +    silr = SILRestriction()
    +    TurnOffSetsByName(silr, "Region", ("bottomAir, topAir"))
    +    SetPlotSILRestriction(silr)
    +    Test("OpenFOAM_MultiRegion_02")
    +
    +    ChangeActivePlotsVar("boundary(Patches)")
    +    silr = SILRestriction()
    +    silr.TurnOnAll()
    +    v = GetView3D()
    +    v.viewNormal = (-0.566091, -0.118534, 0.815776)
    +    v.viewUp = (0.0223539, 0.987037, 0.15893)
    +    SetView3D(v)
    +
    +    Test("OpenFOAM_MultiRegion_03")
    +    TurnDomainsOff(("maxY", "maxZ"))
    +    Test("OpenFOAM_MultiRegion_04")
    +
    +    silr.TurnOnAll()
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "heater/internalMesh/T")
    +    v = GetView3D()
    +    v.viewNormal = (-1, 0, 0)
    +    SetView3D(v)
    +    DrawPlots()
    +    Test("OpenFOAM_MultiRegion_05")
    +    TimeSliderNextState()
    +    Test("OpenFOAM_MultiRegion_06")
    +    DeleteAllPlots()
    +
    +def TestDecomposed():
    +    opts = GetDefaultFileOpenOptions("OpenFOAM")
    +    opts['Case Type'] = 0 #Decomposed
    +    opts['Convert Cell Data To Point Data'] = 1
    +    SetDefaultFileOpenOptions("OpenFOAM", opts)
    +    OpenDatabase(data_path("OpenFOAM_test_data/damBreakFineDecomposed/system/controlDict"))
    +    AddPlot("Pseudocolor", "internalMesh/U_magnitude")
    +    ResetView()
    +    TimeSliderSetState(2)
    +    DrawPlots()
    +    Test("OpenFOAM_Decomposed_01")
    +    TimeSliderSetState(6)
    +    Test("OpenFOAM_Decomposed_02")
    +    TimeSliderSetState(8)
    +    Test("OpenFOAM_Decomposed_03")
    +    DeleteAllPlots()
    +
    +def TestReadZones():
    +    opts = GetDefaultFileOpenOptions("OpenFOAM")
    +    opts['Case Type'] = 1 #Reconstructed
    +    opts['Convert Cell Data To Point Data'] = 0
    +    opts['Read Zones'] = 1
    +    SetDefaultFileOpenOptions("OpenFOAM", opts)
    +    # need a ReOpen because we changed the Open options, and the file
    +    # wasn't closed from previous test.
    +    ReOpenDatabase(data_path("OpenFOAM_test_data/snappyMultiRegionHeater/system/controlDict"))
    +    AddPlot("Mesh", "faceZones")
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (-0.407812, -0.112136, 0.906154)
    +    v.viewUp = (0.00527397, 0.992124, 0.125148)
    +    SetView3D(v)
    +    Test("OpenFOAM_ReadZones_01")
    +    ChangeActivePlotsVar("cellZones")
    +    Test("OpenFOAM_ReadZones_02")
    +    TurnDomainsOff(("topAir", "bottomAir"))
    +    Test("OpenFOAM_ReadZones_03")
    +    DeleteAllPlots()
    +
    +OrigTests()
    +TestLagrangian()
    +TestMultiRegion()
    +TestDecomposed()
    +TestReadZones()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_PATRAN.html b/2024-12-12-22:00/poodle_trunk_serial/databases_PATRAN.html new file mode 100644 index 000000000..4f54da161 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_PATRAN.html @@ -0,0 +1,120 @@ + +Results for databases/PATRAN.py + +

    Results of VisIt Regression Test - databases/PATRAN

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    pipe.neu
    PATRAN1_00.000.00
    PATRAN1_10.000.00
    PATRAN1_20.000.00
    waterjacket.neu
    PATRAN2_00.000.00
    PATRAN2_10.000.00
    PATRAN2_20.000.00
    intake.neu
    PATRAN3_00.000.00
    PATRAN3_10.000.00
    PATRAN3_20.000.00
    patout.neu
    PATRAN4_00.000.00
    PATRAN4_10.000.00
    PATRAN4_20.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_PATRAN_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_PATRAN_py.html new file mode 100644 index 000000000..9352c6ef7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_PATRAN_py.html @@ -0,0 +1,242 @@ +databases/PATRAN.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  PATRAN.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - Mesh
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Jul 29 17:30:33 PST 2005
    +#
    +#  Notes:      The data for these tests are supposed to be PATRAN versions of
    +#              some of the data in the NASTRAN tests.
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Wed Feb 16 09:15:45 PST 2022
    +#    Replace use of meshatts 'foregroundFlag' and 'backgroundFlag' with
    +#    meshColorSource and opaqueColorSource.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def AddMeshPlot():
    +    AddPlot("Mesh", "mesh")
    +    m = MeshAttributes()
    +    m.legendFlag = 0
    +    m.opaqueColor = (153, 204, 255, 255)
    +    m.opaqueColorSource = m.OpaqueCustom
    +    m.meshColorSource =  m.MeshCustom
    +    m.meshColor = (0,0,0,255)
    +    TurnMaterialsOff("default")
    +    SetPlotOptions(m)
    +
    +def AddPseudocolorPlot():
    +    AddPlot("Pseudocolor", "one")
    +    p = PseudocolorAttributes()
    +    p.colorTableName = "rainbow"
    +    p.SetOpacityType(p.Constant)
    +    p.opacity = 0.2
    +    SetPlotOptions(p)
    +    TurnMaterialsOff("default")
    +    DrawPlots()
    +
    +def test1(datapath):
    +    db = "pipe.neu"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.786306, 0.379526, 0.487527)
    +    v.focus = (0.149902, 0.212562, 0.124929)
    +    v.viewUp = (0.316186, 0.925114, -0.210215)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.585963
    +    v.nearPlane = -1.17193
    +    v.farPlane = 1.17193
    +    v.imagePan = (0.0173275, 0.033058)
    +    v.imageZoom = 1.45734
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.149902, 0.212562, 0.124929)
    +    SetView3D(v)
    +    Test("PATRAN1_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.786306, 0.379526, 0.487527)
    +    v2.focus = (0.149902, 0.212562, 0.124929)
    +    v2.viewUp = (0.316186, 0.925114, -0.210215)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 0.585963
    +    v2.nearPlane = -1.17193
    +    v2.farPlane = 1.17193
    +    v2.imagePan = (-0.108127, 0.0971661)
    +    v2.imageZoom = 6.92887
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0.149902, 0.212562, 0.124929)
    +    SetView3D(v2)
    +    Test("PATRAN1_1")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    SetView3D(v)
    +    Test("PATRAN1_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test2(datapath):
    +    db = "waterjacket.neu"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.65317, -0.673371, 0.346324)
    +    v.focus = (0.03, -0.03, -0.1125)
    +    v.viewUp = (0.225064, 0.264053, 0.937882)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.289925
    +    v.nearPlane = -0.579849
    +    v.farPlane = 0.579849
    +    v.imagePan = (0.0984407, 0.0467479)
    +    v.imageZoom = 1.40003
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.03, -0.03, -0.1125)
    +    SetView3D(v)
    +    Test("PATRAN2_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.65317, -0.673371, 0.346324)
    +    v2.focus = (0.03, -0.03, -0.1125)
    +    v2.viewUp = (0.225064, 0.264053, 0.937882)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 0.289925
    +    v2.nearPlane = -0.579849
    +    v2.farPlane = 0.579849
    +    v2.imagePan = (0.100347, 0.0410472)
    +    v2.imageZoom = 7.7658
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0.03, -0.03, -0.1125)
    +    SetView3D(v2)
    +    Test("PATRAN2_1")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    SetView3D(v)
    +    Test("PATRAN2_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test3(datapath):
    +    db = "intake.neu"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddMeshPlot()
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.61876, 0.311053, -0.721375)
    +    v.focus = (0, 0.011, -0.0935)
    +    v.viewUp = (0.208418, 0.950364, 0.231021)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.198752
    +    v.nearPlane = -0.397503
    +    v.farPlane = 0.397503
    +    v.imagePan = (0.0151275, 0.00167627)
    +    v.imageZoom = 1.43299
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0.011, -0.0935)
    +    SetView3D(v)
    +    Test("PATRAN3_0")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.61876, 0.311053, -0.721375)
    +    v2.focus = (0, 0.011, -0.0935)
    +    v2.viewUp = (0.208418, 0.950364, 0.231021)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 0.198752
    +    v2.nearPlane = -0.397503
    +    v2.farPlane = 0.397503
    +    v2.imagePan = (-0.101283, 0.0396808)
    +    v2.imageZoom = 6.28038
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0, 0.011, -0.0935)
    +    SetView3D(v2)
    +    Test("PATRAN3_1")
    +
    +    DeleteActivePlots()
    +    AddPseudocolorPlot()
    +    SetView3D(v)
    +    Test("PATRAN3_2")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(pjoin(datapath,db))
    +
    +def test4(datapath):
    +    db = "patout.neu"
    +    TestSection(db)
    +    OpenDatabase(pjoin(datapath,db))
    +    AddPlot("FilledBoundary", "named_components")
    +    f = FilledBoundaryAttributes()
    +    f.legendFlag = 0
    +    SetPlotOptions(f)
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.765801, 0.0434351, -0.641609)
    +    v.focus = (-3175.88, -94.6135, -37.6065)
    +    v.viewUp = (0.625813, -0.179298, -0.759085)
    +    v.viewAngle = 30
    +    v.parallelScale = 3328.81
    +    v.nearPlane = -6657.62
    +    v.farPlane = 6657.62
    +    v.imagePan = (-0.0688128, -0.239564)
    +    v.imageZoom = 92.5361
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (-3175.88, -94.6135, -37.6065)
    +    SetView3D(v)
    +    Test("PATRAN4_0")
    +
    +    DeleteActivePlots()
    +    AddPlot("Pseudocolor", "elementMats")
    +    DrawPlots()
    +    Test("PATRAN4_1")
    +
    +    ChangeActivePlotsVar("elementIds")
    +    Test("PATRAN4_2")
    +
    +def main():
    +    # Set the window background color
    +    a = GetAnnotationAttributes()
    +    a.backgroundMode = a.Solid
    +    a.backgroundColor = (180, 180, 180, 255)
    +    a.foregroundColor = (255, 255, 255, 255)
    +    SetAnnotationAttributes(a)
    +
    +    DefineScalarExpression("one", "(zoneid(mesh) + 1) / (zoneid(mesh) + 1)")
    +    datapath = data_path("PATRAN_test_data")
    +    test1(datapath)
    +    test2(datapath)
    +    test3(datapath)
    +    test4(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_PLOT3D.html b/2024-12-12-22:00/poodle_trunk_serial/databases_PLOT3D.html new file mode 100644 index 000000000..06e0d3961 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_PLOT3D.html @@ -0,0 +1,650 @@ + +Results for databases/PLOT3D.py + +

    Results of VisIt Regression Test - databases/PLOT3D

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Open using MetaFile .vp3d
    bluntfin_Density_010.000.00
    bluntfin_InternalEnergy_010.000.00
    bluntfin_Momentum_010.000.00
    bluntfin_subsetDomains_010.000.00
    deltawing_Density_010.000.00
    deltawing_InternalEnergy_010.000.00
    deltawing_Momentum_010.000.00
    deltawing_subsetDomains_010.000.00
    post_Density_010.000.00
    post_InternalEnergy_010.000.00
    post_Momentum_010.000.00
    post_subsetDomains_010.000.00
    sslv_Density_010.000.00
    sslv_InternalEnergy_010.000.00
    sslv_Momentum_010.000.00
    sslv_subsetDomains_010.000.00
    wbt_Density_010.000.00
    wbt_InternalEnergy_010.000.00
    wbt_Momentum_010.000.00
    wbt_subsetDomains_010.000.00
    Open using gridfile and Open Options
    bluntfin_Density_020.000.00
    bluntfin_InternalEnergy_020.000.00
    bluntfin_Pressure_020.000.00
    bluntfin_Temperature_020.000.00
    bluntfin_Enthalpy_020.000.00
    bluntfin_StagnationEnergy_020.000.00
    bluntfin_Entropy_020.000.00
    bluntfin_Swirl_020.000.00
    bluntfin_Momentum_020.000.00
    bluntfin_Velocity_020.000.00
    bluntfin_Vorticity_020.000.00
    bluntfin_PressureGradient_020.000.00
    bluntfin_StrainRate_020.000.00
    bluntfin_subsetDomains_020.000.00
    deltawing_Density_020.000.00
    deltawing_InternalEnergy_020.000.00
    deltawing_Pressure_020.000.00
    deltawing_Temperature_020.000.00
    deltawing_Enthalpy_020.000.00
    deltawing_StagnationEnergy_020.000.00
    deltawing_Entropy_020.000.00
    deltawing_Swirl_020.000.00
    deltawing_Momentum_020.000.00
    deltawing_Velocity_020.000.00
    deltawing_Vorticity_020.000.00
    deltawing_PressureGradient_020.000.00
    deltawing_StrainRate_020.000.00
    deltawing_subsetDomains_020.000.00
    post_Density_020.000.00
    post_InternalEnergy_020.000.00
    post_Pressure_020.000.00
    post_Temperature_020.000.00
    post_Enthalpy_020.000.00
    post_StagnationEnergy_020.000.00
    post_Entropy_020.000.00
    post_Swirl_020.000.00
    post_Momentum_020.000.00
    post_Velocity_020.000.00
    post_Vorticity_020.000.00
    post_PressureGradient_020.000.00
    post_StrainRate_020.000.00
    post_subsetDomains_020.000.00
    sslv_Density_020.000.00
    sslv_InternalEnergy_020.000.00
    sslv_Pressure_020.000.00
    sslv_Temperature_020.000.00
    sslv_Enthalpy_020.000.00
    sslv_StagnationEnergy_020.000.00
    sslv_Entropy_020.000.00
    sslv_Swirl_020.000.00
    sslv_Momentum_020.000.00
    sslv_Velocity_020.000.00
    sslv_Vorticity_020.000.00
    sslv_PressureGradient_020.000.00
    sslv_StrainRate_020.000.00
    sslv_subsetDomains_020.000.00
    wbt_Density_020.000.00
    wbt_InternalEnergy_020.000.00
    wbt_Pressure_020.000.00
    wbt_Temperature_020.000.00
    wbt_Enthalpy_020.000.00
    wbt_StagnationEnergy_020.000.00
    wbt_Entropy_020.000.00
    wbt_Swirl_020.000.00
    wbt_Momentum_020.000.00
    wbt_Velocity_020.000.00
    wbt_Vorticity_020.000.00
    wbt_PressureGradient_020.000.00
    wbt_StrainRate_020.000.00
    wbt_subsetDomains_020.000.00
    Time Series with meta file
    plot3d_timeseries_10 modifications totalling 0 lines
    plot3d_timeseries_1_1200.00.000.00
    plot3d_timeseries_1_1220.00.000.00
    plot3d_timeseries_1_1240.00.000.00
    plot3d_timeseries_1_1300.00.000.00
    plot3d_timeseries_1_1320.00.000.00
    plot3d_timeseries_1_1340.00.000.00
    Time series via Read Options
    plot3d_timeseries_20 modifications totalling 0 lines
    plot3d_timeseries_2_1230.00.000.00
    plot3d_timeseries_2_1330.00.000.00
    wnb020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_PLOT3D_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_PLOT3D_py.html new file mode 100644 index 000000000..447367efa --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_PLOT3D_py.html @@ -0,0 +1,217 @@ +databases/PLOT3D.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#  LIMIT: 1500
    +#  Test Case:  PLOT3D.py 
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       Sep 5, 2014
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Wed Aug 26 09:21:15 PDT 2015
    +#    Removed Magnitude scalars, no longer provided by reader since VisIt
    +#    already automatically creates vector magnitude expressions.
    +#    Added tests for time-series.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def BasicTest(testName, testNum):
    +    # These are the scalars and vectors from the solution file
    +    scalars = ["Density", "InternalEnergy"]
    +    vectors = ["Momentum"]
    +
    +    # These are all the reader-calculated scalars and vectors
    +    computedScalars = ["Pressure", "Temperature", "Enthalpy",
    +                       "StagnationEnergy", "Entropy", "Swirl" ]
    +    computedVectors = ["Velocity", "Vorticity", "PressureGradient",
    +                        "StrainRate"]
    +
    +    AddPlot("Mesh", "mesh")
    +    AddPlot("Pseudocolor", scalars[0])
    +    DrawPlots()
    +    Test("%s_%s_%02d"%(testName,scalars[0],testNum))
    +    for s in scalars[1:]:
    +        ChangeActivePlotsVar(s)
    +        DrawPlots()
    +        Test("%s_%s_%02d"%(testName,s,testNum))
    +
    +    if testNum == 2:
    +        for s in computedScalars:
    +            ChangeActivePlotsVar(s)
    +            DrawPlots()
    +            Test("%s_%s_%02d"%(testName,s,testNum))
    +
    +    DeleteAllPlots()
    +
    +    AddPlot("Vector", vectors[0])
    +    vecAtts = VectorAttributes()
    +    vecAtts.scale = 0.5
    +    vecAtts.useStride = 1
    +    SetPlotOptions(vecAtts)
    +    DrawPlots()
    +    Test("%s_%s_%02d"%(testName,vectors[0],testNum))
    +
    +    if testNum == 2:
    +        for v in computedVectors:
    +            ChangeActivePlotsVar(v)
    +            DrawPlots()
    +            Test("%s_%s_%02d"%(testName,v,testNum))
    +
    +    DeleteAllPlots()
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test("%s_subsetDomains_%02d"%(testName,testNum))
    +
    +    DeleteAllPlots()
    +
    +# Open using the MetaFile .vp3d
    +def TestMetaOpen(metaFile, testName, testStart):
    +    OpenDatabase(data_path("PLOT3D_test_data/%s"%metaFile))
    +    BasicTest(testName, testStart)
    +    CloseDatabase(data_path("PLOT3D_test_data/%s"%metaFile))
    +
    +# Open using the grid file and openOptions
    +def TestOpenOptions(gridFile, testname, options, testStart):
    +    if len(options)> 0:
    +        # Grab the default options
    +        opts = GetDefaultFileOpenOptions("PLOT3D")
    +        # Set the passed options
    +        for k,v in options.items():
    +            if k in list(opts.keys()):
    +                opts[k] = v
    +        SetDefaultFileOpenOptions("PLOT3D", opts)
    +    OpenDatabase(data_path("PLOT3D_test_data/%s"%gridFile),0, "PLOT3D_1.0")
    +    BasicTest(testname, testStart)
    +    CloseDatabase(data_path("PLOT3D_test_data/%s"%gridFile))
    +
    +# names: [dir,  vp3dname, gridname, testname, openOptions]
    +names = [
    +    ["BluntFin", "blunt.vp3d", "blunt.x", "bluntfin", {}],
    +    ["DeltaWing", "delta-40.vp3d", "delta-40.x", "deltawing", {}],
    +    ["LiquidOxygenPost", "post.vp3d", "post.x", "post", {}],
    +    ["SpaceShuttleLaunchVehicle", "sslv.vp3d", "grid", "sslv",
    +        {"Multi Grid": 1, "IBlanking":1, "Use IBlanking If Present": 1, "Solution (Q) File Name":"solution"}],
    +    ["WingBodyTail", "wbt.vp3d", "wbtg.bin", "wbt",
    +        {"Solution (Q) File Name":"wbtr.bin",
    +        "Multi Grid":1,
    +        "IBlanking":1,
    +        "Use IBlanking If Present": 0,
    +        "File Format":1,
    +        "Big Endian":1,
    +        "Double Precision":0,
    +        "3D":1}],
    +]
    +
    +def TestTimeSeries():
    +    TestSection("Time Series with meta file")
    +    SetCreateMeshQualityExpressions(0)
    +    SetCreateTimeDerivativeExpressions(0)
    +    SetCreateVectorMagnitudeExpressions(0)
    +    #SetViewExtentsType("actual")
    +    OpenDatabase(data_path("PLOT3D_test_data/BluntFin/blunt_timeseries.vp3d"))
    +    md = GetMetaData(data_path("PLOT3D_test_data/BluntFin/blunt_timeseries.vp3d"))
    +    TestText("plot3d_timeseries_1", str(md))
    +
    +    DefineScalarExpression("TD", "time(mesh) * Density")
    +    AddPlot("Pseudocolor", "TD")
    +    AddOperator("Isovolume")
    +    isoAtts = IsovolumeAttributes()
    +    isoAtts.lbound = 2000
    +    SetOperatorOptions(isoAtts)
    +    DrawPlots()
    +
    +    #v = GetView3D()
    +    #v.viewNormal = (0, -1, 6.12323e-17)
    +    #v.focus = (3.32801, -0.103006, 16.13)
    +    #v.viewUp = (0, 6.12323e-17, 1)
    +    #SetView3D(v)
    +
    +    #  step through time
    +    for t in range(0, TimeSliderGetNStates(),2):
    +        SetTimeSliderState(t)
    +        Query("Time")
    +        Test("plot3d_timeseries_1_%s" % GetQueryOutputValue())
    +
    +    DeleteAllPlots()
    +
    +    CloseDatabase(data_path("PLOT3D_test_data/BluntFin/blunt_timeseries.vp3d"))
    +
    +    TestSection("Time series via Read Options")
    +
    +    # specify sub-selection of time slices.
    +    opts = {"Solution (Q) File Name" : r"TimeSeries/blunt_??3?.q",
    +            "Solution Time field accurate": 0}
    +    SetDefaultFileOpenOptions("PLOT3D", opts)
    +
    +    OpenDatabase(data_path("PLOT3D_test_data/BluntFin/blunt.x"), 0, "PLOT3D_1.0")
    +    md = GetMetaData(data_path("PLOT3D_test_data/BluntFin/blunt.x"))
    +    TestText("plot3d_timeseries_2", str(md))
    +
    +    AddPlot("Pseudocolor", "TD")
    +    AddOperator("Isovolume")
    +    SetOperatorOptions(isoAtts)
    +    DrawPlots()
    +
    +    #SetView3D(v)
    +
    +    #  step through time
    +    for t in range(0, TimeSliderGetNStates()):
    +        SetTimeSliderState(t)
    +        Query("Time")
    +        Test("plot3d_timeseries_2_%s" % GetQueryOutputValue())
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("PLOT3D_test_data/BluntFin/blunt.x"))
    +
    +def BasicTests():
    +    TestSection("Open using MetaFile .vp3d")
    +    for f in names:
    +        # test opening meta file
    +        TestMetaOpen("%s/%s"%(f[0],f[1]), f[3], 1)
    +
    +    TestSection("Open using gridfile and Open Options")
    +    # save true defaults for resetting
    +    opts = GetDefaultFileOpenOptions("PLOT3D")
    +    for f in names:
    +        # test opening grid file, possibly using OpenOptions
    +        TestOpenOptions("%s/%s"%(f[0],f[2]), f[3], f[4], 2)
    +    # reset to true defaults
    +    SetDefaultFileOpenOptions("PLOT3D", opts)
    +
    +def TestIBlanking():
    +    # Custom tests with specific views:
    +    OpenDatabase(data_path("PLOT3D_test_data/WingNoBody/wnb.vp3d"))
    +    AddPlot("Mesh", "mesh")
    +    DrawPlots()
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (-0.489596, 0.871773, 0.0175216)
    +    View3DAtts.focus = (1.5, -3.00142, 0)
    +    View3DAtts.viewUp = (-0.0396695, -0.00219579, -0.99921)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 11.0231
    +    View3DAtts.nearPlane = -22.0462
    +    View3DAtts.farPlane = 22.0462
    +    View3DAtts.imagePan = (-0.0355573, -0.00323714)
    +    View3DAtts.imageZoom = 66.2641
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (1.5, -3.00142, 0)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +    DrawPlots()
    +    Test("wnb02")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("PLOT3D_test_data/WingNoBody/wnb.vp3d"))
    +
    +BasicTests()
    +TestTimeSeries()
    +TestIBlanking()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_ProteinDataBank.html b/2024-12-12-22:00/poodle_trunk_serial/databases_ProteinDataBank.html new file mode 100644 index 000000000..2995f8070 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_ProteinDataBank.html @@ -0,0 +1,252 @@ + +Results for databases/ProteinDataBank.py + +

    Results of VisIt Regression Test - databases/ProteinDataBank

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Testing Rattlesnake venom
    proteindb_0_000.000.00
    proteindb_0_010.000.00
    proteindb_0_020.000.00
    proteindb_0_030.000.00
    proteindb_0_040.000.00
    proteindb_0_050.000.00
    proteindb_0_060.000.00
    proteindb_0_070.000.00
    Testing small DNA
    proteindb_1_000.000.00
    proteindb_1_010.000.00
    proteindb_1_020.000.00
    proteindb_1_030.000.00
    proteindb_1_040.000.00
    proteindb_1_050.000.00
    proteindb_1_060.000.00
    proteindb_1_070.000.00
    Testing insulin
    proteindb_2_000.000.00
    proteindb_2_010.000.00
    proteindb_2_020.000.00
    proteindb_2_030.000.00
    proteindb_2_040.000.00
    proteindb_2_050.000.00
    proteindb_2_060.000.00
    proteindb_2_070.000.00
    Testing Black Mamba venom
    proteindb_3_000.000.00
    proteindb_3_010.000.00
    proteindb_3_020.000.00
    proteindb_3_030.000.00
    proteindb_3_040.000.00
    proteindb_3_050.000.00
    proteindb_3_060.000.00
    proteindb_3_070.000.00
    proteindb_3_080.000.00
    proteindb_3_090.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_ProteinDataBank_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_ProteinDataBank_py.html new file mode 100644 index 000000000..3d243dcc5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_ProteinDataBank_py.html @@ -0,0 +1,366 @@ +databases/ProteinDataBank.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ProteinDataBank.py
    +#
    +#  Tests:      mesh      - 3D points
    +#              plots     - Molecule
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Tue Mar 28 15:46:53 PST 2006
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Tue Aug 29 13:23:30 EDT 2006
    +#    ProteinDataBank files now have models as directories, not time steps.
    +#
    +#    Brad Whitlock, Thu Mar 12 11:04:32 PDT 2009
    +#    I restructured the test into functions.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Replace obsolete Label text attributes with new versions.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def LabelTest(testname, var, zoomview):
    +    AddPlot("Label", var)
    +    LabelAtts = LabelAttributes()
    +    LabelAtts.legendFlag = 1
    +    LabelAtts.showNodes = 0
    +    LabelAtts.showCells = 1
    +    LabelAtts.restrictNumberOfLabels = 0
    +    LabelAtts.drawLabelsFacing = LabelAtts.Front  # Front, Back, FrontAndBack
    +    LabelAtts.labelDisplayFormat = LabelAtts.Natural  # Natural, LogicalIndex, Index
    +    LabelAtts.numberOfLabels = 200
    +    LabelAtts.textFont1.useForegroundColor = 0
    +    LabelAtts.textFont1.color = (0, 255, 0, 255)
    +    LabelAtts.textFont1.scale = 5
    +    LabelAtts.textFont2.useForegroundColor = 1
    +    LabelAtts.textFont2.color = (0, 0, 255, 0)
    +    LabelAtts.textFont2.scale = 4
    +    LabelAtts.horizontalJustification = LabelAtts.HCenter  # HCenter, Left, Right
    +    LabelAtts.verticalJustification = LabelAtts.VCenter  # VCenter, Top, Bottom
    +    LabelAtts.depthTestMode = LabelAtts.LABEL_DT_AUTO  # LABEL_DT_AUTO, LABEL_DT_ALWAYS, LABEL_DT_NEVER
    +    SetPlotOptions(LabelAtts)
    +    DrawPlots()
    +    oldview = GetView3D()
    +    SetView3D(zoomview)
    +    # Save these images somewhat larger than a regular test case image
    +    # since the images contain a lot of text.
    +#    swa = SaveWindowAttributes()
    +#    swa.width = 500
    +#    swa.height = 500
    +#    swa.screenCapture = 0
    +#    Test(testname, swa)
    +    Test(testname)
    +    DeleteActivePlots()
    +    SetView3D(oldview)
    +
    +
    +def AddMoleculePlot(db, var):
    +    OpenDatabase(db)
    +    AddPlot("Molecule", var)
    +
    +    MoleculeAtts = MoleculeAttributes()
    +    MoleculeAtts.drawAtomsAs = MoleculeAtts.SphereAtoms  # NoAtoms, SphereAtoms, ImposterAtoms
    +    MoleculeAtts.scaleRadiusBy = MoleculeAtts.Fixed  # Fixed, Covalent, Atomic, Variable
    +    MoleculeAtts.drawBondsAs = MoleculeAtts.CylinderBonds  # NoBonds, LineBonds, CylinderBonds
    +    MoleculeAtts.colorBonds = MoleculeAtts.ColorByAtom  # ColorByAtom, SingleColor
    +    MoleculeAtts.bondSingleColor = (128, 128, 128, 255)
    +    MoleculeAtts.radiusVariable = "default"
    +    MoleculeAtts.radiusScaleFactor = 1
    +    MoleculeAtts.radiusFixed = 0.4
    +    MoleculeAtts.atomSphereQuality = MoleculeAtts.Medium  # Low, Medium, High, Super
    +    MoleculeAtts.bondCylinderQuality = MoleculeAtts.Medium  # Low, Medium, High, Super
    +    MoleculeAtts.bondRadius = 0.12
    +    MoleculeAtts.bondLineWidth = 0
    +    MoleculeAtts.elementColorTable = "cpk_jmol"
    +    MoleculeAtts.residueTypeColorTable = "amino_shapely"
    +    MoleculeAtts.residueSequenceColorTable = "Default"
    +    MoleculeAtts.continuousColorTable = "Default"
    +    MoleculeAtts.legendFlag = 1
    +    MoleculeAtts.minFlag = 0
    +    MoleculeAtts.scalarMin = 0
    +    MoleculeAtts.maxFlag = 0
    +    MoleculeAtts.scalarMax = 1
    +    SetPlotOptions(MoleculeAtts)
    +    DrawPlots()
    +
    +
    +def test0():
    +    TestSection("Testing Rattlesnake venom")
    +    AddMoleculePlot(data_path("ProteinDataBank_test_data/crotamine.pdb"), "element")
    +
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.967329, 0.252251, -0.0253765)
    +    v0.focus = (31.726, -54.1675, 13.645)
    +    v0.viewUp = (0.252129, 0.967661, 0.0079404)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 24.9831
    +    v0.nearPlane = -49.9661
    +    v0.farPlane = 49.9661
    +    v0.imagePan = (0, 0)
    +    v0.imageZoom = 1.44471
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (31.726, -54.1675, 13.645)
    +    SetView3D(v0)
    +
    +    v0zoom = View3DAttributes()
    +    v0zoom.viewNormal = (-0.967329, 0.252251, -0.0253765)
    +    v0zoom.focus = (31.726, -54.1675, 13.645)
    +    v0zoom.viewUp = (0.252129, 0.967661, 0.0079404)
    +    v0zoom.viewAngle = 30
    +    v0zoom.parallelScale = 24.9831
    +    v0zoom.nearPlane = -49.9661
    +    v0zoom.farPlane = 49.9661
    +    v0zoom.imagePan = (0, 0)
    +    v0zoom.imageZoom = 7.15293
    +    v0zoom.perspective = 1
    +    v0zoom.eyeAngle = 2
    +    v0zoom.centerOfRotationSet = 0
    +    v0zoom.centerOfRotation = (31.726, -54.1675, 13.645)
    +
    +    Test("proteindb_0_00")
    +    LabelTest("proteindb_0_01", "elementname", v0zoom)
    +
    +    ChangeActivePlotsVar("resseq")
    +    Test("proteindb_0_02")
    +    LabelTest("proteindb_0_03", "resseq", v0zoom)
    +
    +    ChangeActivePlotsVar("backbone")
    +    Test("proteindb_0_04")
    +
    +    ChangeActivePlotsVar("restype")
    +    Test("proteindb_0_05")
    +    LabelTest("proteindb_0_06", "resname", v0zoom)
    +
    +    LabelTest("proteindb_0_07", "longresname", v0zoom)
    +    DeleteAllPlots()
    +
    +
    +def test1():
    +    TestSection("Testing small DNA")
    +    AddMoleculePlot(data_path("ProteinDataBank_test_data/1NTS.pdb"), "element")
    +
    +    v1 = View3DAttributes()
    +    v1.viewNormal = (-0.320353, 0.944248, 0.075961)
    +    v1.focus = (-0.0580001, 0.0915003, 0.3815)
    +    v1.viewUp = (0.342959, 0.190354, -0.919861)
    +    v1.viewAngle = 30
    +    v1.parallelScale = 22.575
    +    v1.nearPlane = -45.1501
    +    v1.farPlane = 45.1501
    +    v1.imagePan = (-0.0021177, -0.0481532)
    +    v1.imageZoom = 1.27797
    +    v1.perspective = 1
    +    v1.eyeAngle = 2
    +    v1.centerOfRotationSet = 0
    +    v1.centerOfRotation = (-0.0580001, 0.0915003, 0.3815)
    +    SetView3D(v1)
    +
    +    v1zoom = View3DAttributes()
    +    v1zoom.viewNormal = (-0.320353, 0.944248, 0.075961)
    +    v1zoom.focus = (-0.0580001, 0.0915003, 0.3815)
    +    v1zoom.viewUp = (0.342959, 0.190354, -0.919861)
    +    v1zoom.viewAngle = 30
    +    v1zoom.parallelScale = 22.575
    +    v1zoom.nearPlane = -45.1501
    +    v1zoom.farPlane = 45.1501
    +    v1zoom.imagePan = (-0.00906313, 0.0442979)
    +    v1zoom.imageZoom = 6.4294
    +    v1zoom.perspective = 1
    +    v1zoom.eyeAngle = 2
    +    v1zoom.centerOfRotationSet = 0
    +    v1zoom.centerOfRotation = (-0.0580001, 0.0915003, 0.3815)
    +
    +    Test("proteindb_1_00")
    +    LabelTest("proteindb_1_01", "elementname", v1zoom)
    +
    +    ChangeActivePlotsVar("resseq")
    +    Test("proteindb_1_02")
    +    LabelTest("proteindb_1_03", "resseq", v1zoom)
    +
    +    ChangeActivePlotsVar("backbone")
    +    Test("proteindb_1_04")
    +
    +    ChangeActivePlotsVar("restype")
    +    Test("proteindb_1_05")
    +    LabelTest("proteindb_1_06", "resname", v1zoom)
    +
    +    LabelTest("proteindb_1_07", "longresname", v1zoom)
    +    DeleteAllPlots()
    +
    +
    +def test2():
    +    TestSection("Testing insulin")
    +    AddMoleculePlot(data_path("ProteinDataBank_test_data/1UZ9.pdb"), "element")
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (0.215329, 0.245957, 0.94506)
    +    v2.focus = (23.441, 26.835, 23.6865)
    +    v2.viewUp = (-0.351063, 0.922561, -0.160113)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 29.1931
    +    v2.nearPlane = -58.3862
    +    v2.farPlane = 58.3862
    +    v2.imagePan = (0.0260607, 0.00408113)
    +    v2.imageZoom = 1.8463
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (23.441, 26.835, 23.6865)
    +    SetView3D(v2)
    +
    +    v2zoom = View3DAttributes()
    +    v2zoom.viewNormal = (0.685414, 0.259247, 0.68044)
    +    v2zoom.focus = (23.441, 26.835, 23.6865)
    +    v2zoom.viewUp = (0.700183, 0.02186, -0.713629)
    +    v2zoom.viewAngle = 30
    +    v2zoom.parallelScale = 29.1931
    +    v2zoom.nearPlane = -58.3862
    +    v2zoom.farPlane = 58.3862
    +    v2zoom.imagePan = (-0.0257104, -0.00810227)
    +    v2zoom.imageZoom = 10.3892
    +    v2zoom.perspective = 1
    +    v2zoom.eyeAngle = 2
    +    v2zoom.centerOfRotationSet = 0
    +    v2zoom.centerOfRotation = (23.441, 26.835, 23.6865)
    +
    +    Test("proteindb_2_00")
    +    LabelTest("proteindb_2_01", "elementname", v2zoom)
    +
    +    ChangeActivePlotsVar("resseq")
    +    Test("proteindb_2_02")
    +    LabelTest("proteindb_2_03", "resseq", v2zoom)
    +
    +    ChangeActivePlotsVar("backbone")
    +    Test("proteindb_2_04")
    +
    +    ChangeActivePlotsVar("restype")
    +    Test("proteindb_2_05")
    +    LabelTest("proteindb_2_06", "resname", v2zoom)
    +
    +    LabelTest("proteindb_2_07", "longresname", v2zoom)
    +    DeleteAllPlots()
    +
    +
    +def test3():
    +    TestSection("Testing Black Mamba venom")
    +    AddMoleculePlot(data_path("ProteinDataBank_test_data/1TFS.pdb"), "element")
    +
    +    v3 = View3DAttributes()
    +    v3.viewNormal = (-0.242177, -0.689536, 0.682562)
    +    v3.focus = (-1.73, -1.927, -0.202)
    +    v3.viewUp = (0.243612, 0.637752, 0.730702)
    +    v3.viewAngle = 30
    +    v3.parallelScale = 25.6826
    +    v3.nearPlane = -51.3652
    +    v3.farPlane = 51.3652
    +    v3.imagePan = (0.0337528, -0.0400135)
    +    v3.imageZoom = 1.49054
    +    v3.perspective = 1
    +    v3.eyeAngle = 2
    +    v3.centerOfRotationSet = 0
    +    v3.centerOfRotation = (-1.73, -1.927, -0.202)
    +    SetView3D(v3)
    +
    +    v3zoom = View3DAttributes()
    +    v3zoom.viewNormal = (-0.558032, -0.716666, 0.418318)
    +    v3zoom.focus = (-1.73, -1.927, -0.202)
    +    v3zoom.viewUp = (0.120358, 0.428875, 0.89531)
    +    v3zoom.viewAngle = 30
    +    v3zoom.parallelScale = 25.6826
    +    v3zoom.nearPlane = -51.3652
    +    v3zoom.farPlane = 51.3652
    +    v3zoom.imagePan = (0.0337528, -0.0400135)
    +    v3zoom.imageZoom = 8.39928
    +    v3zoom.perspective = 1
    +    v3zoom.eyeAngle = 2
    +    v3zoom.centerOfRotationSet = 0
    +    v3zoom.centerOfRotation = (-1.73, -1.927, -0.202)
    +
    +    Test("proteindb_3_00")
    +    LabelTest("proteindb_3_01", "elementname", v3zoom)
    +
    +    ChangeActivePlotsVar("resseq")
    +    Test("proteindb_3_02")
    +    LabelTest("proteindb_3_03", "resseq", v3zoom)
    +
    +    ChangeActivePlotsVar("backbone")
    +    Test("proteindb_3_04")
    +
    +    ChangeActivePlotsVar("restype")
    +    Test("proteindb_3_05")
    +    LabelTest("proteindb_3_06", "resname", v3zoom)
    +
    +    LabelTest("proteindb_3_07", "longresname", v3zoom)
    +
    +    # Make sure that there are multiple models in the file.
    +    ChangeActivePlotsVar("element")
    +    ChangeActivePlotsVar("models/model_09/element")
    +    Test("proteindb_3_08")
    +    ChangeActivePlotsVar("models/model_19/element")
    +    Test("proteindb_3_09")
    +    DeleteAllPlots()
    +
    +# NOTE: This test is not enabled because it fails. It needs baselines too.
    +def test4():
    +    TestSection("Testing file replacement with ProteinDataBank files")
    +    AddMoleculePlot(data_path("ProteinDataBank_test_data/crotamine.pdb"), "element")
    +
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.967329, 0.252251, -0.0253765)
    +    v0.focus = (31.726, -54.1675, 13.645)
    +    v0.viewUp = (0.252129, 0.967661, 0.0079404)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 24.9831
    +    v0.nearPlane = -49.9661
    +    v0.farPlane = 49.9661
    +    v0.imagePan = (0, 0)
    +    v0.imageZoom = 1.44471
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (31.726, -54.1675, 13.645)
    +    SetView3D(v0)
    +    Test("proteindb_4_00")
    +    ReplaceDatabase(data_path("ProteinDataBank_test_data/1UZ9.pdb"))
    +
    +    v1 = View3DAttributes()
    +    v1.viewNormal = (-0.320353, 0.944248, 0.075961)
    +    v1.focus = (-0.0580001, 0.0915003, 0.3815)
    +    v1.viewUp = (0.342959, 0.190354, -0.919861)
    +    v1.viewAngle = 30
    +    v1.parallelScale = 22.575
    +    v1.nearPlane = -45.1501
    +    v1.farPlane = 45.1501
    +    v1.imagePan = (-0.0021177, -0.0481532)
    +    v1.imageZoom = 1.27797
    +    v1.perspective = 1
    +    v1.eyeAngle = 2
    +    v1.centerOfRotationSet = 0
    +    v1.centerOfRotation = (-0.0580001, 0.0915003, 0.3815)
    +    SetView3D(v1)
    +    Test("proteindb_4_01")
    +
    +
    +def main():
    +    # Set the window background color
    +    a = GetAnnotationAttributes()
    +    a.backgroundMode = a.Solid
    +    a.foregroundColor = (0, 0, 0, 255)
    +    a.backgroundColor = (255, 255, 255, 255)
    +    a.databaseInfoFlag = 0
    +    SetAnnotationAttributes(a)
    +
    +    # Call the tests
    +    test0()
    +    test1()
    +    test2()
    +    test3()
    +    #test4()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_RAW.html b/2024-12-12-22:00/poodle_trunk_serial/databases_RAW.html new file mode 100644 index 000000000..7dcb78a09 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_RAW.html @@ -0,0 +1,57 @@ + +Results for databases/RAW.py + +

    Results of VisIt Regression Test - databases/RAW

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    RAW files
    RAW_0_000.000.00
    RAW_0_010.000.00
    RAW_0_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_RAW_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_RAW_py.html new file mode 100644 index 000000000..6b70fd8fe --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_RAW_py.html @@ -0,0 +1,94 @@ +databases/RAW.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  RAW.py
    +#
    +#  Tests:      mesh      - 3D unstructured
    +#              plots     - Mesh, Pseudocolor, FilledBoundary
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Oct 10 12:05:17 PDT 2007
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def test0(datapath):
    +    TestSection("RAW files")
    +    OpenDatabase(pjoin(datapath,"visitrocks.raw"))
    +    AddPlot("Pseudocolor", "x")
    +    DrawPlots()
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.567094, 0.226914, 0.791779)
    +    v0.focus = (0.000999987, -0.1635, 0)
    +    v0.viewUp = (0.130227, 0.973912, -0.18584)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 1.5462
    +    v0.nearPlane = -3.0924
    +    v0.farPlane = 3.0924
    +    v0.imagePan = (0.0382352, 0.0259835)
    +    v0.imageZoom = 1.29479
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0.000999987, -0.1635, 0)
    +    SetView3D(v0)
    +    Test("RAW_0_00")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(pjoin(datapath,"visit1.7.raw"))
    +    AddPlot("Pseudocolor", "z")
    +    DrawPlots()
    +    v1 = View3DAttributes()
    +    v1.viewNormal = (0.548073, -0.470773, 0.691367)
    +    v1.focus = (-3, 2.5, -3.5)
    +    v1.viewUp = (-0.467318, 0.513182, 0.719902)
    +    v1.viewAngle = 30
    +    v1.parallelScale = 26.3154
    +    v1.nearPlane = -52.6308
    +    v1.farPlane = 52.6308
    +    v1.imagePan = (-0.00129203, 0.0275781)
    +    v1.imageZoom = 1.17533
    +    v1.perspective = 1
    +    v1.eyeAngle = 2
    +    v1.centerOfRotationSet = 0
    +    v1.centerOfRotation = (-3, 2.5, -3.5)
    +    SetView3D(v1)
    +    Test("RAW_0_01")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(pjoin(datapath,"llnl-logo.raw"))
    +    AddPlot("Subset", "domains")
    +    silr = SILRestriction()
    +    silr.SuspendCorrectnessChecking()
    +    silr.TurnOffAll()
    +    for silSet in (1,2,77):
    +        silr.TurnOnSet(silSet)
    +    silr.EnableCorrectnessChecking()
    +    SetPlotSILRestriction(silr)
    +    DrawPlots()
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (0.373419, 0.166874, 0.91253)
    +    v2.focus = (0.108829, 9.95567, 5.85852)
    +    v2.viewUp = (-0.0717588, 0.985936, -0.150933)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 91.211
    +    v2.nearPlane = -182.422
    +    v2.farPlane = 182.422
    +    v2.imagePan = (-0.00129203, 0.0275781)
    +    v2.imageZoom = 1.17145
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0.108829, 9.95567, 5.85852)
    +    SetView3D(v2)
    +    Test("RAW_0_02")
    +    DeleteAllPlots()
    +
    +def main():
    +    datapath = data_path("RAW_test_data")
    +    test0(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_SPCTH.html b/2024-12-12-22:00/poodle_trunk_serial/databases_SPCTH.html new file mode 100644 index 000000000..5512ce41d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_SPCTH.html @@ -0,0 +1,48 @@ + +Results for databases/SPCTH.py + +

    Results of VisIt Regression Test - databases/SPCTH

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    spcth_010.000.00
    spcth_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_SPCTH_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_SPCTH_py.html new file mode 100644 index 000000000..36a3acf29 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_SPCTH_py.html @@ -0,0 +1,36 @@ +databases/SPCTH.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  SPCTH.py 
    +#
    +#  Programmer: Kevin Griffin 
    +#  Date:       September 15, 2017 
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +#efp2d.spcth
    +OpenDatabase(data_path("SPCTH_test_data/efp2d.spcth"))
    +AddPlot("FilledBoundary", "materials")
    +DrawPlots()
    +Test("spcth_01")
    +DeleteAllPlots()
    +CloseDatabase(data_path("SPCTH_test_data/efp2d.spcth"))
    +
    +#efp3d.spcth
    +OpenDatabase(data_path("SPCTH_test_data/efp3d.spcth"))
    +AddPlot("Pseudocolor", "M")
    +
    +silr = SILRestriction()
    +silr.TurnOnAll()
    +silr.TurnOffSet(silr.SetsInCategory('materials')[3])
    +SetPlotSILRestriction(silr)
    +
    +DrawPlots()
    +Test("spcth_02")
    +DeleteAllPlots()
    +CloseDatabase(data_path("SPCTH_test_data/efp3d.spcth"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_Velodyne.html b/2024-12-12-22:00/poodle_trunk_serial/databases_Velodyne.html new file mode 100644 index 000000000..486e03bbf --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_Velodyne.html @@ -0,0 +1,88 @@ + +Results for databases/Velodyne.py + +

    Results of VisIt Regression Test - databases/Velodyne

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Solid
    Velodyne_0_000 modifications totalling 0 lines
    Velodyne_0_010.000.00
    Velodyne_0_020.000.00
    Velodyne_0_030.000.00
    Velodyne_0_040.000.00
    Velodyne_0_050.000.00
    Velodyne_0_060.000.00
    Surface
    Velodyne_1_000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_Velodyne_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_Velodyne_py.html new file mode 100644 index 000000000..a4e86eb4b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_Velodyne_py.html @@ -0,0 +1,79 @@ +databases/Velodyne.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  Velodyne.py
    +#
    +#  Tests:      mesh      - 3D unstructured
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Feb 10 14:51:33 PDT 2010
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def InitializeView():
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (0.715595, -0.551955, 0.4281)
    +    v0.focus = (11.5, 2.39999, 1.04954)
    +    v0.viewUp = (-0.34794, 0.249768, 0.903633)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 11.8686
    +    v0.nearPlane = -23.7373
    +    v0.farPlane = 23.7373
    +    v0.imagePan = (-0.0579851, 0.0689456)
    +    v0.imageZoom = 1.2342
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (11.5, 2.39999, 1.04954)
    +    SetView3D(v0)
    +
    +def test0(datapath):
    +    TestSection("Solid")
    +    db = pjoin(datapath,"pelh.*.vld database")
    +    OpenDatabase(db,0,"Velodyne_1.0")
    +    md = GetMetaData(db)
    +    TestText("Velodyne_0_00", str(md))
    +    AddPlot("Pseudocolor", "Solid/Pressure")
    +    DrawPlots()
    +    InitializeView()
    +
    +    Test("Velodyne_0_01")
    +    TimeSliderSetState(11)
    +    Test("Velodyne_0_02")
    +    TimeSliderSetState(22)
    +    Test("Velodyne_0_03")
    +    TimeSliderSetState(0)
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Solid/Velocity_0")
    +    DrawPlots()
    +    InitializeView()
    +    Test("Velodyne_0_04")
    +    TimeSliderSetState(11)
    +    Test("Velodyne_0_05")
    +    TimeSliderSetState(22)
    +    Test("Velodyne_0_06")
    +    TimeSliderSetState(0)
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test1(datapath):
    +    TestSection("Surface")
    +
    +    OpenDatabase(pjoin(datapath,"pelh.1.vld"),0,"Velodyne_1.0")
    +    AddPlot("Pseudocolor", "Surface/Velocity_0")
    +    DrawPlots()
    +    InitializeView()
    +    Test("Velodyne_1_00")
    +    DeleteAllPlots()
    +
    +def main():
    +    datapath = data_path("Velodyne_test_data")
    +    test0(datapath)
    +    test1(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_WData.html b/2024-12-12-22:00/poodle_trunk_serial/databases_WData.html new file mode 100644 index 000000000..39b694ece --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_WData.html @@ -0,0 +1,60 @@ + +Results for databases/WData.py + +

    Results of VisIt Regression Test - databases/WData

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    wdata_1_010.000.00
    wdata_1_020.000.00
    wdata_1_030.000.00
    wdata_1_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_WData_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_WData_py.html new file mode 100644 index 000000000..5d9db74e4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_WData_py.html @@ -0,0 +1,58 @@ +databases/WData.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  WData.py 
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       September 22, 2021 
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def Test1():
    +    OpenDatabase(data_path("WData_test_data/WData-test.wtxt"))
    +
    +    AddPlot("Contour", "density_a")
    +    AddPlot("Vector", "current_a")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal=(0.363715, 0.43572, 0.822339)
    +    v.viewUp=(-0.158317, 0.898996, -0.40834)
    +    SetView3D(v)
    +
    +    Test("wdata_1_01")
    +
    +    TimeSliderSetState(5)
    +    Test("wdata_1_02")
    +
    +    DeleteAllPlots()
    +    AddPlot("Volume", "density_b")
    +    DrawPlots()
    +    Test("wdata_1_03")
    +
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "density_b")
    +    DrawPlots()
    +
    +    SetQueryOutputToObject()
    +    se = Query("SpatialExtents")["extents"]
    +    AddOperator("ThreeSlice")
    +    ts = ThreeSliceAttributes()
    +    ts.x = (se[1] - se[0]) * 0.5
    +    ts.y = (se[3] - se[2]) * 0.5
    +    ts.z = (se[5] - se[4]) * 0.5
    +    SetOperatorOptions(ts)
    +    DrawPlots()
    +
    +    Test("wdata_1_04")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("WData_test_data/WData-test.wtxt"))
    +
    +Test1()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_Xmdv.html b/2024-12-12-22:00/poodle_trunk_serial/databases_Xmdv.html new file mode 100644 index 000000000..7e2262dfe --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_Xmdv.html @@ -0,0 +1,66 @@ + +Results for databases/Xmdv.py + +

    Results of VisIt Regression Test - databases/Xmdv

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Xmdv_010.000.00
    Xmdv_020.000.00
    Xmdv_030.000.00
    Xmdv_040.000.00
    Xmdv_050.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_Xmdv_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_Xmdv_py.html new file mode 100644 index 000000000..dc3d55686 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_Xmdv_py.html @@ -0,0 +1,105 @@ +databases/Xmdv.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  Xmdv.py
    +#
    +#  Tests:      mesh      - 3D point mesh
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Hank Childs
    +#  Date:       July 21, 2005
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Aug 10 10:00:45 PDT 2005
    +#    Fixed due to a change in the Label plot.
    +#
    +#    Hank Childs, Tue Mar 18 15:40:57 PDT 2008
    +#    Reflect change in variable names.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Hank Childs, Sat Mar 13 11:13:26 PST 2010
    +#    Change variable names for forbidden characters.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# First test that we can open a Xmdv file.
    +OpenDatabase(data_path("okc_test_data/astronomy.okc"))
    +
    +AddPlot("Pseudocolor", "classmagi")
    +AddOperator("Transform")
    +t = TransformAttributes()
    +t.doScale = 1
    +t.scaleZ = 0.03
    +SetOperatorOptions(t)
    +DrawPlots()
    +
    +Test("Xmdv_01")
    +
    +DefineArrayExpression("sub_arr", "array_compose(b, d)")
    +AddPlot("Label", "sub_arr")
    +L = LabelAttributes()
    +L.depthTestMode = L.LABEL_DT_NEVER
    +SetPlotOptions(L)
    +AddOperator("Transform")
    +SetOperatorOptions(t)
    +DrawPlots()
    +
    +Test("Xmdv_02")
    +
    +
    +# This is super ugly, but I want to have something in the regression suite
    +# that tests reading in array variables directly from a file (for coverage
    +# purpose).
    +DeleteAllPlots()
    +AddPlot("Label", "all_vars")
    +L = LabelAttributes()
    +L.depthTestMode = L.LABEL_DT_NEVER
    +SetPlotOptions(L)
    +DrawPlots()
    +Test("Xmdv_03")
    +DeleteAllPlots()
    +
    +
    +# Now test the writer.
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +DefineScalarExpression("uc", "recenter(u)")
    +DefineScalarExpression("vc", "recenter(v)")
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +e = ExportDBAttributes()
    +e.db_type = "Xmdv"
    +e.filename = "xmdv"
    +e.variables = ("d", "p", "uc", "vc")
    +ExportDatabase(e)
    +
    +DeleteAllPlots()
    +DeleteExpression("uc")
    +DeleteExpression("vc")
    +OpenDatabase("xmdv.okc")
    +AddPlot("Pseudocolor", "vc")
    +DrawPlots()
    +Test("Xmdv_04")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Vector", "vel")
    +DrawPlots()
    +e.variables = ()
    +e.filename = "xmdv2"
    +ExportDatabase(e)
    +DeleteAllPlots()
    +OpenDatabase("xmdv2.okc")
    +AddPlot("Pseudocolor", "vel_lb_0_rb_")
    +DrawPlots()
    +Test("Xmdv_05")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_Xolotl.html b/2024-12-12-22:00/poodle_trunk_serial/databases_Xolotl.html new file mode 100644 index 000000000..0355191ad --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_Xolotl.html @@ -0,0 +1,90 @@ + +Results for databases/Xolotl.py + +

    Results of VisIt Regression Test - databases/Xolotl

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    0D Example Xolot File
    xolotl_0D_HeliumVacancies0.000.00
    xolotl_0D_HeliumDeuterium0.000.00
    xolotl_0D_HeliumInterstitial0.000.00
    xolotl_0D_HeliumTritium0.000.00
    1D Example Xolotl File
    xolotl_1D_Helium Concentration0.000.00
    xolotl_1D_Deuterium Concentration0.000.00
    xolotl_1D_Interstitial Concentration0.000.00
    xolotl_1D_Tritium Concentration0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_Xolotl_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_Xolotl_py.html new file mode 100644 index 000000000..e7b264d53 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_Xolotl_py.html @@ -0,0 +1,47 @@ +databases/Xolotl.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  Xolotl.py
    +#
    +#  Tests:      Xolotl hdf5 files
    +#
    +#  Programmer: James Kress
    +#  Date:       Mon Aug 26 13:00:15 EDT 2019
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("Xolotl")
    +
    +xolotl_0D = "xolotl_test_data/network-PSI2-0D.xolotl"
    +xolotl_1D = "xolotl_test_data/network-PSI2-1D.xolotl"
    +
    +zeroDVars = ["Helium/Vacancies", "Helium/Deuterium", "Helium/Interstitial", "Helium/Tritium"]
    +oneDVars = ["Helium Concentration", "Deuterium Concentration", "Interstitial Concentration", "Tritium Concentration"]
    +
    +def test(var_name,tag_name):
    +    SetTimeSliderState(1)
    +    AddPlot("Pseudocolor", var_name)
    +    SetActivePlots(0)
    +    PseudocolorAtts = PseudocolorAttributes()
    +    PseudocolorAtts.scaling = PseudocolorAtts.Log  # Linear, Log, Skew
    +    PseudocolorAtts.colorTableName = "hot_desaturated"
    +    SetPlotOptions(PseudocolorAtts)
    +    DrawPlots()
    +    file_name = var_name.replace("/", "")
    +    Test(tag_name + "_" +  file_name)
    +    DeleteAllPlots()
    +
    +
    +TestSection("0D Example Xolot File")
    +OpenDatabase(data_path(xolotl_0D))
    +for var_name in zeroDVars:
    +    test(var_name,"xolotl_0D")
    +CloseDatabase(data_path(xolotl_0D))
    +
    +TestSection("1D Example Xolotl File")
    +OpenDatabase(data_path(xolotl_1D))
    +for var_name in oneDVars:
    +    test(var_name,"xolotl_1D")
    +CloseDatabase(data_path(xolotl_1D))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_activesource.html b/2024-12-12-22:00/poodle_trunk_serial/databases_activesource.html new file mode 100644 index 000000000..b927386ce --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_activesource.html @@ -0,0 +1,80 @@ + +Results for databases/activesource.py + +

    Results of VisIt Regression Test - databases/activesource

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    activesource000.000.00
    activesource010 modifications totalling 0 lines
    activesource020 modifications totalling 0 lines
    activesource030.000.00
    activesource040.000.00
    activesource050 modifications totalling 0 lines
    activesource060.000.00
    activesource070 modifications totalling 0 lines
    activesource080 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_activesource_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_activesource_py.html new file mode 100644 index 000000000..189e83873 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_activesource_py.html @@ -0,0 +1,82 @@ +databases/activesource.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  activesource.py
    +#
    +#  Tests:      mesh      - 2D, curvilinear, single domain
    +#              plots     - FilledBoundary
    +#              databases - PDB
    +#
    +#  Purpose:    This test case tests that the viewer uses the right active
    +#              source for the active window.
    +#
    +#  Bugs:       '4527
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Mar 18 13:45:29 PST 2004
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +#
    +# Look at the first few lines of the string representation of the
    +# WindowInformation to see the list of time sliders, etc.
    +#
    +def TestWindowInformation(testname):
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 5 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    for i in range(5):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    TestText(testname, s)
    +
    +# Create a plot of dbA00.pdb.
    +OpenDatabase(data_path("pdb_test_data/dbA00.pdb"))
    +
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +Test("activesource00")
    +
    +# Create another window and make sure that it has dbA00.pdb as its
    +# active source.
    +CloneWindow()
    +SetActiveWindow(2)
    +DeleteAllPlots()
    +TestWindowInformation("activesource01")
    +
    +# Open dbB00.pdb and make sure that it becomes the active source.
    +OpenDatabase(data_path("pdb_test_data/dbB00.pdb"))
    +
    +TestWindowInformation("activesource02")
    +
    +# Create a plot from it.
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +Test("activesource03")
    +# note: py3 div creates float
    +SetTimeSliderState(int(TimeSliderGetNStates() / 2))
    +Test("activesource04")
    +TestWindowInformation("activesource05")
    +
    +# Create a 3rd window by cloning window 2. We're making sure that the 
    +# time slider got copied to the new window and that it has the right
    +# time state.
    +CloneWindow()
    +SetActiveWindow(3)
    +DrawPlots()
    +Test("activesource06")
    +TestWindowInformation("activesource07")
    +
    +# Switch back to window 1 and make sure that the window information has
    +# dbA00.pdb as the active source.
    +SetActiveWindow(1)
    +TestWindowInformation("activesource08")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_adios2.html b/2024-12-12-22:00/poodle_trunk_serial/databases_adios2.html new file mode 100644 index 000000000..38f6194ca --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_adios2.html @@ -0,0 +1,60 @@ + +Results for databases/adios2.py + +

    Results of VisIt Regression Test - databases/adios2

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Adios2 Blosc Test
    adios2_3d_bp_mesh71x71x71_mesh0.000.00
    Adios2 BP5 Tests
    adios2_2d_bp5_1_mesh512x512_mesh0.000.00
    adios2_2d_bp5_2_mesh512x512_mesh0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_adios2_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_adios2_py.html new file mode 100644 index 000000000..3c0f2fc8d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_adios2_py.html @@ -0,0 +1,115 @@ +databases/adios2.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  adios2.py 
    +#
    +#  Tests:      mesh      - 3D single domain
    +#              plots     - Pseudocolor
    +#              operators - Clip
    +#
    +#  Programmer: Justin Privitera
    +#  Date:       Mon May  9 18:05:05 PDT 2022
    +#
    +#  Modifications:
    +#     Justin Privitera, Thu Jan 18 09:40:00 PST 2024
    +#     Added BP5 tests.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("ADIOS2")
    +
    +from os.path import join as pjoin
    +
    +adios2_test_dir = "adios2_v2.7.1_test_data"
    +cube_data = data_path(pjoin(adios2_test_dir,"interesting_cube00000000.bp"))
    +
    +bp5_test_dir = "adios2_v2.10.0-rc1_bp5_test_data"
    +plt0 = data_path(pjoin(bp5_test_dir,"plt00000.bp"))
    +plt758 = data_path(pjoin(bp5_test_dir,"plt00758.bp"))
    +
    +def set_3d_view():
    +    v = View3DAttributes()
    +    v.viewNormal = (0.844823, 0.290329, 0.449425)
    +    v.focus = (35, 35, 35)
    +    v.viewUp = (-0.239502, 0.956325, -0.167574)
    +    v.viewAngle = 30
    +    v.parallelScale = 60.6218
    +    v.nearPlane = -121.244
    +    v.farPlane = 121.244
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (35, 35, 35)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +def set_test_view(tag_name):
    +    if "3d" in tag_name:
    +        set_3d_view()
    +    else:
    +        ResetView()
    +
    +def test(mesh_name, tag_name, var_name, mesh_plot = False):
    +    if mesh_plot:
    +        AddPlot("Mesh", mesh_name)
    +    AddPlot("Pseudocolor", var_name)
    +    if "3d" in tag_name:
    +        AddOperator("Clip", 1)
    +        SetActivePlots(1)
    +        ClipAtts = ClipAttributes()
    +        ClipAtts.quality = ClipAtts.Fast  # Fast, Accurate
    +        ClipAtts.funcType = ClipAtts.Plane  # Plane, Sphere
    +        ClipAtts.plane1Status = 1
    +        ClipAtts.plane2Status = 0
    +        ClipAtts.plane3Status = 0
    +        ClipAtts.plane1Origin = (35, 35, 35)
    +        ClipAtts.plane2Origin = (0, 0, 0)
    +        ClipAtts.plane3Origin = (0, 0, 0)
    +        ClipAtts.plane1Normal = (1, 0, 0)
    +        ClipAtts.plane2Normal = (0, 1, 0)
    +        ClipAtts.plane3Normal = (0, 0, 1)
    +        ClipAtts.planeInverse = 0
    +        ClipAtts.planeToolControlledClipPlane = ClipAtts.Plane1  # NONE, Plane1, Plane2, Plane3
    +        ClipAtts.center = (0, 0, 0)
    +        ClipAtts.radius = 1
    +        ClipAtts.sphereInverse = 0
    +        ClipAtts.crinkleClip = 0
    +        SetOperatorOptions(ClipAtts, 0, 1)
    +    DrawPlots()
    +    set_test_view(tag_name)
    +    Test(tag_name + "_" +  mesh_name + "_mesh")
    +    DeleteAllPlots()
    +
    +# requires adios2 to be built with c-blosc support
    +TestSection("Adios2 Blosc Test")
    +OpenDatabase(cube_data, 0, "ADIOS2_1.0")
    +mesh_name = "mesh71x71x71"
    +tag_name = "adios2_3d_bp"
    +var_name = "/data/0/meshes/admbase_lapse_rl00/admbase_alp"
    +do_mesh_plot = True
    +test(mesh_name, tag_name, var_name, do_mesh_plot)
    +CloseDatabase(cube_data)
    +
    +# requires adios2 to be built with c-blosc support
    +TestSection("Adios2 BP5 Tests")
    +
    +OpenDatabase(plt0, 0, "ADIOS2_1.0")
    +mesh_name = "mesh512x512"
    +tag_name = "adios2_2d_bp5_1"
    +var_name = "/data/0/meshes/gasDensity"
    +test(mesh_name, tag_name, var_name)
    +CloseDatabase(plt0)
    +
    +OpenDatabase(plt758, 0, "ADIOS2_1.0")
    +mesh_name = "mesh512x512"
    +tag_name = "adios2_2d_bp5_2"
    +var_name = "/data/758/meshes/gasDensity"
    +test(mesh_name, tag_name, var_name)
    +CloseDatabase(plt758)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_avsucd.html b/2024-12-12-22:00/poodle_trunk_serial/databases_avsucd.html new file mode 100644 index 000000000..6743f53e5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_avsucd.html @@ -0,0 +1,60 @@ + +Results for databases/avsucd.py + +

    Results of VisIt Regression Test - databases/avsucd

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    avsucd_010.000.00
    avsucd_020.000.00
    avsucd_030.000.00
    avsucd_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_avsucd_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_avsucd_py.html new file mode 100644 index 000000000..ae60b6e15 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_avsucd_py.html @@ -0,0 +1,41 @@ +databases/avsucd.py
    # ----------------------------------------------------------------------------)
    +#  CLASSES: nightly
    +#
    +#  Test Case:  avsucd.py 
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       February 6, 2020
    +#
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(data_path("AVSucd_test_data/cell_data.inp"))
    +AddPlot("Pseudocolor", "stress sx")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (0.804006, 0.580568, 0.128511)
    +viewUp = (-0.482246, 0.763086, -0.430278)
    +SetView3D(v)
    +Test("avsucd_01")
    +
    +ChangeActivePlotsVar("stress sz")
    +Test("avsucd_02")
    +
    +ChangeActivePlotsVar("temp1")
    +Test("avsucd_03")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("AVSucd_test_data/cell_data.inp"))
    +
    +# file with vectors
    +OpenDatabase(data_path("AVSucd_test_data/vec1.1.000.inp"))
    +AddPlot("Vector", "vect")
    +DrawPlots()
    +ResetView()
    +Test("avsucd_04")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("AVSucd_test_data/vec1.1.000.inp"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_blueprint.html b/2024-12-12-22:00/poodle_trunk_serial/databases_blueprint.html new file mode 100644 index 000000000..e17d14c28 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_blueprint.html @@ -0,0 +1,3041 @@ + +Results for databases/blueprint.py + +

    Results of VisIt Regression Test - databases/blueprint

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    2D Example JSON Mesh Files
    blueprint_2d_json_points_mesh0.000.00
    blueprint_2d_json_points_braid0.000.00
    blueprint_2d_json_points_radial0.000.00
    blueprint_2d_json_uniform_mesh0.000.00
    blueprint_2d_json_uniform_braid0.000.00
    blueprint_2d_json_uniform_radial0.000.00
    blueprint_2d_json_rect_mesh0.000.00
    blueprint_2d_json_rect_braid0.000.00
    blueprint_2d_json_rect_radial0.000.00
    blueprint_2d_json_struct_mesh0.000.00
    blueprint_2d_json_struct_braid0.000.00
    blueprint_2d_json_struct_radial0.000.00
    blueprint_2d_json_tris_mesh0.000.00
    blueprint_2d_json_tris_braid0.000.00
    blueprint_2d_json_tris_radial0.000.00
    blueprint_2d_json_quads_mesh0.000.00
    blueprint_2d_json_quads_braid0.000.00
    blueprint_2d_json_quads_radial0.000.00
    2D Example HDF5 Mesh Files
    blueprint_2d_hdf5_points_mesh0.000.00
    blueprint_2d_hdf5_points_braid0.000.00
    blueprint_2d_hdf5_points_radial0.000.00
    blueprint_2d_hdf5_uniform_mesh0.000.00
    blueprint_2d_hdf5_uniform_braid0.000.00
    blueprint_2d_hdf5_uniform_radial0.000.00
    blueprint_2d_hdf5_rect_mesh0.000.00
    blueprint_2d_hdf5_rect_braid0.000.00
    blueprint_2d_hdf5_rect_radial0.000.00
    blueprint_2d_hdf5_struct_mesh0.000.00
    blueprint_2d_hdf5_struct_braid0.000.00
    blueprint_2d_hdf5_struct_radial0.000.00
    blueprint_2d_hdf5_tris_mesh0.000.00
    blueprint_2d_hdf5_tris_braid0.000.00
    blueprint_2d_hdf5_tris_radial0.000.00
    blueprint_2d_hdf5_quads_mesh0.000.00
    blueprint_2d_hdf5_quads_braid0.000.00
    blueprint_2d_hdf5_quads_radial0.000.00
    2D Example Sidre HDF5 Mesh Files
    blueprint_2d_sidre_hdf5_points_mesh0.000.00
    blueprint_2d_sidre_hdf5_points_braid0.000.00
    blueprint_2d_sidre_hdf5_points_radial0.000.00
    blueprint_2d_sidre_hdf5_uniform_mesh0.000.00
    blueprint_2d_sidre_hdf5_uniform_braid0.000.00
    blueprint_2d_sidre_hdf5_uniform_radial0.000.00
    blueprint_2d_sidre_hdf5_rect_mesh0.000.00
    blueprint_2d_sidre_hdf5_rect_braid0.000.00
    blueprint_2d_sidre_hdf5_rect_radial0.000.00
    blueprint_2d_sidre_hdf5_struct_mesh0.000.00
    blueprint_2d_sidre_hdf5_struct_braid0.000.00
    blueprint_2d_sidre_hdf5_struct_radial0.000.00
    blueprint_2d_sidre_hdf5_tris_mesh0.000.00
    blueprint_2d_sidre_hdf5_tris_braid0.000.00
    blueprint_2d_sidre_hdf5_tris_radial0.000.00
    blueprint_2d_sidre_hdf5_quads_mesh0.000.00
    blueprint_2d_sidre_hdf5_quads_braid0.000.00
    blueprint_2d_sidre_hdf5_quads_radial0.000.00
    3D Example JSON Mesh Files
    blueprint_3d_json_points_mesh0.000.00
    blueprint_3d_json_points_braid0.000.00
    blueprint_3d_json_points_radial0.000.00
    blueprint_3d_json_uniform_mesh0.000.00
    blueprint_3d_json_uniform_braid0.000.00
    blueprint_3d_json_uniform_radial0.000.00
    blueprint_3d_json_rect_mesh0.000.00
    blueprint_3d_json_rect_braid0.000.00
    blueprint_3d_json_rect_radial0.000.00
    blueprint_3d_json_struct_mesh0.000.00
    blueprint_3d_json_struct_braid0.000.00
    blueprint_3d_json_struct_radial0.000.00
    blueprint_3d_json_tets_mesh0.000.00
    blueprint_3d_json_tets_braid0.000.00
    blueprint_3d_json_tets_radial0.000.00
    blueprint_3d_json_hexs_mesh0.000.00
    blueprint_3d_json_hexs_braid0.000.00
    blueprint_3d_json_hexs_radial0.000.00
    3D Example HDF5 Mesh Files
    blueprint_3d_hdf5_points_mesh0.000.00
    blueprint_3d_hdf5_points_braid0.000.00
    blueprint_3d_hdf5_points_radial0.000.00
    blueprint_3d_hdf5_uniform_mesh0.000.00
    blueprint_3d_hdf5_uniform_braid0.000.00
    blueprint_3d_hdf5_uniform_radial0.000.00
    blueprint_3d_hdf5_rect_mesh0.000.00
    blueprint_3d_hdf5_rect_braid0.000.00
    blueprint_3d_hdf5_rect_radial0.000.00
    blueprint_3d_hdf5_struct_mesh0.000.00
    blueprint_3d_hdf5_struct_braid0.000.00
    blueprint_3d_hdf5_struct_radial0.000.00
    blueprint_3d_hdf5_tets_mesh0.000.00
    blueprint_3d_hdf5_tets_braid0.000.00
    blueprint_3d_hdf5_tets_radial0.000.00
    blueprint_3d_hdf5_hexs_mesh0.000.00
    blueprint_3d_hdf5_hexs_braid0.000.00
    blueprint_3d_hdf5_hexs_radial0.000.00
    3D Example Sidre HDF5 Mesh Files
    blueprint_3d_sidre_hdf5_points_mesh0.000.00
    blueprint_3d_sidre_hdf5_points_braid0.000.00
    blueprint_3d_sidre_hdf5_points_radial0.000.00
    blueprint_3d_sidre_hdf5_uniform_mesh0.000.00
    blueprint_3d_sidre_hdf5_uniform_braid0.000.00
    blueprint_3d_sidre_hdf5_uniform_radial0.000.00
    blueprint_3d_sidre_hdf5_rect_mesh0.000.00
    blueprint_3d_sidre_hdf5_rect_braid0.000.00
    blueprint_3d_sidre_hdf5_rect_radial0.000.00
    blueprint_3d_sidre_hdf5_struct_mesh0.000.00
    blueprint_3d_sidre_hdf5_struct_braid0.000.00
    blueprint_3d_sidre_hdf5_struct_radial0.000.00
    blueprint_3d_sidre_hdf5_tets_mesh0.000.00
    blueprint_3d_sidre_hdf5_tets_braid0.000.00
    blueprint_3d_sidre_hdf5_tets_radial0.000.00
    blueprint_3d_sidre_hdf5_hexs_mesh0.000.00
    blueprint_3d_sidre_hdf5_hexs_braid0.000.00
    blueprint_3d_sidre_hdf5_hexs_radial0.000.00
    MFEM Blueprint Example Data Tests
    blueprint_mfem_3d_periodic_cube_json_sol0.000.00
    blueprint_mfem_3d_periodic_cube_json_ele_coloring0.000.00
    blueprint_mfem_3d_periodic_cube_json_ele_att0.000.00
    blueprint_mfem_3d_periodic_cube_json_fall_back_to_old_LOR_sol0.000.00
    blueprint_mfem_3d_periodic_cube_json_fall_back_to_old_LOR_ele_coloring0.000.00
    blueprint_mfem_3d_periodic_cube_json_fall_back_to_old_LOR_ele_att0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_bin_sol0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_bin_ele_coloring0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_bin_ele_att0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_bin_fall_back_to_old_LOR_sol0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_bin_fall_back_to_old_LOR_ele_coloring0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_bin_fall_back_to_old_LOR_ele_att0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_json_sol0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_json_ele_coloring0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_json_ele_att0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_json_fall_back_to_old_LOR_sol0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_json_fall_back_to_old_LOR_ele_coloring0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_json_fall_back_to_old_LOR_ele_att0.000.00
    blueprint_mfem_3d_periodic_cube_hdf5_sol0.000.00
    blueprint_mfem_3d_periodic_cube_hdf5_ele_coloring0.000.00
    blueprint_mfem_3d_periodic_cube_hdf5_ele_att0.000.00
    blueprint_mfem_3d_periodic_cube_hdf5_fall_back_to_old_LOR_sol0.000.00
    blueprint_mfem_3d_periodic_cube_hdf5_fall_back_to_old_LOR_ele_coloring0.000.00
    blueprint_mfem_3d_periodic_cube_hdf5_fall_back_to_old_LOR_ele_att0.000.00
    blueprint_mfem_3d_star_q3_json_sol0.000.00
    blueprint_mfem_3d_star_q3_json_ele_coloring0.000.00
    blueprint_mfem_3d_star_q3_json_ele_att0.000.00
    blueprint_mfem_3d_star_q3_conduit_bin_sol0.000.00
    blueprint_mfem_3d_star_q3_conduit_bin_ele_coloring0.000.00
    blueprint_mfem_3d_star_q3_conduit_bin_ele_att0.000.00
    blueprint_mfem_3d_star_q3_conduit_json_sol0.000.00
    blueprint_mfem_3d_star_q3_conduit_json_ele_coloring0.000.00
    blueprint_mfem_3d_star_q3_conduit_json_ele_att0.000.00
    blueprint_mfem_3d_star_q3_hdf5_sol0.000.00
    blueprint_mfem_3d_star_q3_hdf5_ele_coloring0.000.00
    blueprint_mfem_3d_star_q3_hdf5_ele_att0.000.00
    blueprint_mfem_2d_periodic_hexagon_json_sol0.000.00
    blueprint_mfem_2d_periodic_hexagon_json_ele_coloring0.000.00
    blueprint_mfem_2d_periodic_hexagon_json_ele_att0.000.00
    blueprint_mfem_2d_periodic_hexagon_json_fall_back_to_old_LOR_sol0.000.00
    blueprint_mfem_2d_periodic_hexagon_json_fall_back_to_old_LOR_ele_coloring0.000.00
    blueprint_mfem_2d_periodic_hexagon_json_fall_back_to_old_LOR_ele_att0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_bin_sol0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_bin_ele_coloring0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_bin_ele_att0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_bin_fall_back_to_old_LOR_sol0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_bin_fall_back_to_old_LOR_ele_coloring0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_bin_fall_back_to_old_LOR_ele_att0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_json_sol0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_json_ele_coloring0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_json_ele_att0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_json_fall_back_to_old_LOR_sol0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_json_fall_back_to_old_LOR_ele_coloring0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_json_fall_back_to_old_LOR_ele_att0.000.00
    blueprint_mfem_2d_periodic_hexagon_hdf5_sol0.000.00
    blueprint_mfem_2d_periodic_hexagon_hdf5_ele_coloring0.000.00
    blueprint_mfem_2d_periodic_hexagon_hdf5_ele_att0.000.00
    blueprint_mfem_2d_periodic_hexagon_hdf5_fall_back_to_old_LOR_sol0.000.00
    blueprint_mfem_2d_periodic_hexagon_hdf5_fall_back_to_old_LOR_ele_coloring0.000.00
    blueprint_mfem_2d_periodic_hexagon_hdf5_fall_back_to_old_LOR_ele_att0.000.00
    MFEM LOR Mesh Blueprint Tests
    blueprint_mfem_3d_periodic_cube_json_lor0.000.00
    blueprint_mfem_3d_periodic_cube_json_legacy_lor0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_bin_lor0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_bin_legacy_lor0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_json_lor0.000.00
    blueprint_mfem_3d_periodic_cube_conduit_json_legacy_lor0.000.00
    blueprint_mfem_3d_periodic_cube_hdf5_lor0.000.00
    blueprint_mfem_3d_periodic_cube_hdf5_legacy_lor0.000.00
    blueprint_mfem_3d_star_q3_json_lor0.000.00
    blueprint_mfem_3d_star_q3_json_legacy_lor0.000.00
    blueprint_mfem_3d_star_q3_conduit_bin_lor0.000.00
    blueprint_mfem_3d_star_q3_conduit_bin_legacy_lor0.000.00
    blueprint_mfem_3d_star_q3_conduit_json_lor0.000.00
    blueprint_mfem_3d_star_q3_conduit_json_legacy_lor0.000.00
    blueprint_mfem_3d_star_q3_hdf5_lor0.000.00
    blueprint_mfem_3d_star_q3_hdf5_legacy_lor0.000.00
    blueprint_mfem_2d_periodic_hexagon_json_lor0.000.00
    blueprint_mfem_2d_periodic_hexagon_json_legacy_lor0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_bin_lor0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_bin_legacy_lor0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_json_lor0.000.00
    blueprint_mfem_2d_periodic_hexagon_conduit_json_legacy_lor0.000.00
    blueprint_mfem_2d_periodic_hexagon_hdf5_lor0.000.00
    blueprint_mfem_2d_periodic_hexagon_hdf5_legacy_lor0.000.00
    blueprint_mfem_3d_esher_lor0.000.00
    blueprint_mfem_3d_esher_legacy_lor0.000.00
    blueprint_mfem_3d_laghos_tg.cycle_lor0.000.00
    blueprint_mfem_3d_laghos_tg.cycle_legacy_lor0.000.00
    blueprint_mfem_3d_taylor_green.cycle_lor0.000.00
    blueprint_mfem_3d_taylor_green.cycle_legacy_lor0.000.00
    blueprint_mfem_2d_tri_beam_lor0.000.00
    blueprint_mfem_2d_tri_beam_legacy_lor0.000.00
    blueprint_mfem_3d_warbly_cube_lor0.000.00
    blueprint_mfem_3d_warbly_cube_legacy_lor0.000.00
    MFEM LOR Field Blueprint Tests
    blueprint_mfem_3d_esher_pseudocolor_mesh_nodes_magnitude_lor0.000.00
    blueprint_mfem_3d_laghos_tg.cycle_pseudocolor_mesh_nodes_magnitude_lor0.000.00
    blueprint_mfem_3d_laghos_tg.cycle_pseudocolor_density_lor0.000.00
    blueprint_mfem_3d_laghos_tg.cycle_pseudocolor_specific_internal_energy_lor0.000.00
    blueprint_mfem_3d_laghos_tg.cycle_pseudocolor_velocity_magnitude_lor0.000.00
    blueprint_mfem_3d_laghos_tg.cycle_vector_velocity_lor0.000.00
    blueprint_mfem_3d_taylor_green.cycle_pseudocolor_mesh_nodes_magnitude_lor0.000.00
    blueprint_mfem_3d_taylor_green.cycle_pseudocolor_density_lor0.000.00
    blueprint_mfem_3d_taylor_green.cycle_pseudocolor_specific_internal_energy_lor0.000.00
    blueprint_mfem_3d_taylor_green.cycle_pseudocolor_velocity_magnitude_lor0.000.00
    blueprint_mfem_3d_taylor_green.cycle_vector_velocity_lor0.000.00
    blueprint_mfem_2d_tri_beam_pseudocolor_mesh_nodes_magnitude_lor0.000.00
    blueprint_mfem_2d_tri_beam_vector_mesh_nodes_lor0.000.00
    blueprint_mfem_3d_warbly_cube_pseudocolor_mesh_nodes_magnitude_lor0.000.00
    Blueprint Expressions
    blueprint_expressions0.000.00
    Variables With Parens
    paren_vars_000.000.00
    Blueprint Matset Example Tests: venn_small_full
    venn_small_full_mat_check0.000.00
    testeq_t_mat_check_max
     4320 .eq. 4320 (prec=5) : True
    testeq_mat_check_min
     1 .eq. 1 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_full Matvf Exprs
    venn_small_full_vf_bg0.000.00
    testeq_vf_bg_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_bg_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_full_vf_c_a0.000.00
    testeq_vf_c_a_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_a_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_full_vf_c_b0.000.00
    testeq_vf_c_b_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_b_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_full_vf_c_c0.000.00
    testeq_vf_c_c_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_c_min
     0.0 .eq. 0.0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_full Val4mat Exprs
    venn_small_full_v4m_bg0.000.00
    testeq_v4m_bg_max
     1 .eq. 1 (prec=5) : True
    testeq_v4m_bg_min
     0 .eq. 0 (prec=5) : True
    venn_small_full_v4m_c_a0.000.00
    testeq_v4m_c_a_max
     20 .eq. 20 (prec=5) : True
    testeq_v4m_c_a_min
     0 .eq. 0 (prec=5) : True
    venn_small_full_v4m_c_b0.000.00
    testeq_v4m_c_b_max
     300 .eq. 300 (prec=5) : True
    testeq_v4m_c_b_min
     0 .eq. 0 (prec=5) : True
    venn_small_full_v4m_c_c0.000.00
    testeq_v4m_c_c_max
     4000 .eq. 4000 (prec=5) : True
    testeq_v4m_c_c_min
     0 .eq. 0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_element
    venn_small_sparse_by_element_mat_check0.000.00
    testeq_t_mat_check_max
     4320 .eq. 4320 (prec=5) : True
    testeq_mat_check_min
     1 .eq. 1 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_element Matvf Exprs
    venn_small_sparse_by_element_vf_bg0.000.00
    testeq_vf_bg_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_bg_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_element_vf_c_a0.000.00
    testeq_vf_c_a_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_a_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_element_vf_c_b0.000.00
    testeq_vf_c_b_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_b_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_element_vf_c_c0.000.00
    testeq_vf_c_c_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_c_min
     0.0 .eq. 0.0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_element Val4mat Exprs
    venn_small_sparse_by_element_v4m_bg0.000.00
    testeq_v4m_bg_max
     1 .eq. 1 (prec=5) : True
    testeq_v4m_bg_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_element_v4m_c_a0.000.00
    testeq_v4m_c_a_max
     20 .eq. 20 (prec=5) : True
    testeq_v4m_c_a_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_element_v4m_c_b0.000.00
    testeq_v4m_c_b_max
     300 .eq. 300 (prec=5) : True
    testeq_v4m_c_b_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_element_v4m_c_c0.000.00
    testeq_v4m_c_c_max
     4000 .eq. 4000 (prec=5) : True
    testeq_v4m_c_c_min
     0 .eq. 0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_material
    venn_small_sparse_by_material_mat_check0.000.00
    testeq_t_mat_check_max
     4320 .eq. 4320 (prec=5) : True
    testeq_mat_check_min
     1 .eq. 1 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_material Matvf Exprs
    venn_small_sparse_by_material_vf_bg0.000.00
    testeq_vf_bg_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_bg_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_material_vf_c_a0.000.00
    testeq_vf_c_a_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_a_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_material_vf_c_b0.000.00
    testeq_vf_c_b_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_b_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_material_vf_c_c0.000.00
    testeq_vf_c_c_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_c_min
     0.0 .eq. 0.0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_material Val4mat Exprs
    venn_small_sparse_by_material_v4m_bg0.000.00
    testeq_v4m_bg_max
     1 .eq. 1 (prec=5) : True
    testeq_v4m_bg_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_material_v4m_c_a0.000.00
    testeq_v4m_c_a_max
     20 .eq. 20 (prec=5) : True
    testeq_v4m_c_a_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_material_v4m_c_b0.000.00
    testeq_v4m_c_b_max
     300 .eq. 300 (prec=5) : True
    testeq_v4m_c_b_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_material_v4m_c_c0.000.00
    testeq_v4m_c_c_max
     4000 .eq. 4000 (prec=5) : True
    testeq_v4m_c_c_min
     0 .eq. 0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_full_yaml
    venn_small_full_yaml_mat_check0.000.00
    testeq_t_mat_check_max
     4320 .eq. 4320 (prec=5) : True
    testeq_mat_check_min
     1 .eq. 1 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_full_yaml Matvf Exprs
    venn_small_full_yaml_vf_bg0.000.00
    testeq_vf_bg_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_bg_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_full_yaml_vf_c_a0.000.00
    testeq_vf_c_a_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_a_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_full_yaml_vf_c_b0.000.00
    testeq_vf_c_b_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_b_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_full_yaml_vf_c_c0.000.00
    testeq_vf_c_c_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_c_min
     0.0 .eq. 0.0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_full_yaml Val4mat Exprs
    venn_small_full_yaml_v4m_bg0.000.00
    testeq_v4m_bg_max
     1 .eq. 1 (prec=5) : True
    testeq_v4m_bg_min
     0 .eq. 0 (prec=5) : True
    venn_small_full_yaml_v4m_c_a0.000.00
    testeq_v4m_c_a_max
     20 .eq. 20 (prec=5) : True
    testeq_v4m_c_a_min
     0 .eq. 0 (prec=5) : True
    venn_small_full_yaml_v4m_c_b0.000.00
    testeq_v4m_c_b_max
     300 .eq. 300 (prec=5) : True
    testeq_v4m_c_b_min
     0 .eq. 0 (prec=5) : True
    venn_small_full_yaml_v4m_c_c0.000.00
    testeq_v4m_c_c_max
     4000 .eq. 4000 (prec=5) : True
    testeq_v4m_c_c_min
     0 .eq. 0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_element_yaml
    venn_small_sparse_by_element_yaml_mat_check0.000.00
    testeq_t_mat_check_max
     4320 .eq. 4320 (prec=5) : True
    testeq_mat_check_min
     1 .eq. 1 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_element_yaml Matvf Exprs
    venn_small_sparse_by_element_yaml_vf_bg0.000.00
    testeq_vf_bg_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_bg_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_element_yaml_vf_c_a0.000.00
    testeq_vf_c_a_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_a_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_element_yaml_vf_c_b0.000.00
    testeq_vf_c_b_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_b_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_element_yaml_vf_c_c0.000.00
    testeq_vf_c_c_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_c_min
     0.0 .eq. 0.0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_element_yaml Val4mat Exprs
    venn_small_sparse_by_element_yaml_v4m_bg0.000.00
    testeq_v4m_bg_max
     1 .eq. 1 (prec=5) : True
    testeq_v4m_bg_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_element_yaml_v4m_c_a0.000.00
    testeq_v4m_c_a_max
     20 .eq. 20 (prec=5) : True
    testeq_v4m_c_a_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_element_yaml_v4m_c_b0.000.00
    testeq_v4m_c_b_max
     300 .eq. 300 (prec=5) : True
    testeq_v4m_c_b_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_element_yaml_v4m_c_c0.000.00
    testeq_v4m_c_c_max
     4000 .eq. 4000 (prec=5) : True
    testeq_v4m_c_c_min
     0 .eq. 0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_material_yaml
    venn_small_sparse_by_material_yaml_mat_check0.000.00
    testeq_t_mat_check_max
     4320 .eq. 4320 (prec=5) : True
    testeq_mat_check_min
     1 .eq. 1 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_material_yaml Matvf Exprs
    venn_small_sparse_by_material_yaml_vf_bg0.000.00
    testeq_vf_bg_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_bg_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_material_yaml_vf_c_a0.000.00
    testeq_vf_c_a_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_a_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_material_yaml_vf_c_b0.000.00
    testeq_vf_c_b_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_b_min
     0.0 .eq. 0.0 (prec=5) : True
    venn_small_sparse_by_material_yaml_vf_c_c0.000.00
    testeq_vf_c_c_max
     1.0 .eq. 1.0 (prec=5) : True
    testeq_vf_c_c_min
     0.0 .eq. 0.0 (prec=5) : True
    Blueprint Matset Example Tests: venn_small_sparse_by_material_yaml Val4mat Exprs
    venn_small_sparse_by_material_yaml_v4m_bg0.000.00
    testeq_v4m_bg_max
     1 .eq. 1 (prec=5) : True
    testeq_v4m_bg_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_material_yaml_v4m_c_a0.000.00
    testeq_v4m_c_a_max
     20 .eq. 20 (prec=5) : True
    testeq_v4m_c_a_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_material_yaml_v4m_c_b0.000.00
    testeq_v4m_c_b_max
     300 .eq. 300 (prec=5) : True
    testeq_v4m_c_b_min
     0 .eq. 0 (prec=5) : True
    venn_small_sparse_by_material_yaml_v4m_c_c0.000.00
    testeq_v4m_c_c_max
     4000 .eq. 4000 (prec=5) : True
    testeq_v4m_c_c_min
     0 .eq. 0 (prec=5) : True
    Venn With Modded Material Numbers, 0.8.7
    Venn_with_modded_matnos0.000.00
    2D Example HDF5 Mesh Files, 0.8.2
    blueprint_2d_hdf5_0_8_2_points_mesh0.000.00
    blueprint_2d_hdf5_0_8_2_points_braid0.000.00
    blueprint_2d_hdf5_0_8_2_points_radial0.000.00
    blueprint_2d_hdf5_0_8_2_uniform_mesh0.000.00
    blueprint_2d_hdf5_0_8_2_uniform_braid0.000.00
    blueprint_2d_hdf5_0_8_2_uniform_radial0.000.00
    blueprint_2d_hdf5_0_8_2_rect_mesh0.000.00
    blueprint_2d_hdf5_0_8_2_rect_braid0.000.00
    blueprint_2d_hdf5_0_8_2_rect_radial0.000.00
    blueprint_2d_hdf5_0_8_2_struct_mesh0.000.00
    blueprint_2d_hdf5_0_8_2_struct_braid0.000.00
    blueprint_2d_hdf5_0_8_2_struct_radial0.000.00
    blueprint_2d_hdf5_0_8_2_tris_mesh0.000.00
    blueprint_2d_hdf5_0_8_2_tris_braid0.000.00
    blueprint_2d_hdf5_0_8_2_tris_radial0.000.00
    blueprint_2d_hdf5_0_8_2_quads_mesh0.000.00
    blueprint_2d_hdf5_0_8_2_quads_braid0.000.00
    blueprint_2d_hdf5_0_8_2_quads_radial0.000.00
    blueprint_2d_hdf5_0_8_2_points_implicit_mesh0.000.00
    blueprint_2d_hdf5_0_8_2_points_implicit_braid0.000.00
    blueprint_2d_hdf5_0_8_2_points_implicit_radial0.000.00
    2D Example YAML Mesh Files, 0.8.2
    blueprint_2d_yaml_0_8_2_points_mesh0.000.00
    blueprint_2d_yaml_0_8_2_points_braid0.000.00
    blueprint_2d_yaml_0_8_2_points_radial0.000.00
    blueprint_2d_yaml_0_8_2_uniform_mesh0.000.00
    blueprint_2d_yaml_0_8_2_uniform_braid0.000.00
    blueprint_2d_yaml_0_8_2_uniform_radial0.000.00
    blueprint_2d_yaml_0_8_2_rect_mesh0.000.00
    blueprint_2d_yaml_0_8_2_rect_braid0.000.00
    blueprint_2d_yaml_0_8_2_rect_radial0.000.00
    blueprint_2d_yaml_0_8_2_struct_mesh0.000.00
    blueprint_2d_yaml_0_8_2_struct_braid0.000.00
    blueprint_2d_yaml_0_8_2_struct_radial0.000.00
    blueprint_2d_yaml_0_8_2_tris_mesh0.000.00
    blueprint_2d_yaml_0_8_2_tris_braid0.000.00
    blueprint_2d_yaml_0_8_2_tris_radial0.000.00
    blueprint_2d_yaml_0_8_2_quads_mesh0.000.00
    blueprint_2d_yaml_0_8_2_quads_braid0.000.00
    blueprint_2d_yaml_0_8_2_quads_radial0.000.00
    blueprint_2d_yaml_0_8_2_points_implicit_mesh0.000.00
    blueprint_2d_yaml_0_8_2_points_implicit_braid0.000.00
    blueprint_2d_yaml_0_8_2_points_implicit_radial0.000.00
    3D Example HDF5 Mesh Files, 0.8.2
    blueprint_3d_hdf5_0_8_2_points_mesh0.000.00
    blueprint_3d_hdf5_0_8_2_points_braid0.000.00
    blueprint_3d_hdf5_0_8_2_points_radial0.000.00
    blueprint_3d_hdf5_0_8_2_uniform_mesh0.000.00
    blueprint_3d_hdf5_0_8_2_uniform_braid0.000.00
    blueprint_3d_hdf5_0_8_2_uniform_radial0.000.00
    blueprint_3d_hdf5_0_8_2_rect_mesh0.000.00
    blueprint_3d_hdf5_0_8_2_rect_braid0.000.00
    blueprint_3d_hdf5_0_8_2_rect_radial0.000.00
    blueprint_3d_hdf5_0_8_2_struct_mesh0.000.00
    blueprint_3d_hdf5_0_8_2_struct_braid0.000.00
    blueprint_3d_hdf5_0_8_2_struct_radial0.000.00
    blueprint_3d_hdf5_0_8_2_tets_mesh0.000.00
    blueprint_3d_hdf5_0_8_2_tets_braid0.000.00
    blueprint_3d_hdf5_0_8_2_tets_radial0.000.00
    blueprint_3d_hdf5_0_8_2_hexs_mesh0.000.00
    blueprint_3d_hdf5_0_8_2_hexs_braid0.000.00
    blueprint_3d_hdf5_0_8_2_hexs_radial0.000.00
    blueprint_3d_hdf5_0_8_2_points_implicit_mesh0.000.00
    blueprint_3d_hdf5_0_8_2_points_implicit_braid0.000.00
    blueprint_3d_hdf5_0_8_2_points_implicit_radial0.000.00
    3D Example YAML Mesh Files, 0.8.2
    blueprint_3d_yaml_0_8_2_points_mesh0.000.00
    blueprint_3d_yaml_0_8_2_points_braid0.000.00
    blueprint_3d_yaml_0_8_2_points_radial0.000.00
    blueprint_3d_yaml_0_8_2_uniform_mesh0.000.00
    blueprint_3d_yaml_0_8_2_uniform_braid0.000.00
    blueprint_3d_yaml_0_8_2_uniform_radial0.000.00
    blueprint_3d_yaml_0_8_2_rect_mesh0.000.00
    blueprint_3d_yaml_0_8_2_rect_braid0.000.00
    blueprint_3d_yaml_0_8_2_rect_radial0.000.00
    blueprint_3d_yaml_0_8_2_struct_mesh0.000.00
    blueprint_3d_yaml_0_8_2_struct_braid0.000.00
    blueprint_3d_yaml_0_8_2_struct_radial0.000.00
    blueprint_3d_yaml_0_8_2_tets_mesh0.000.00
    blueprint_3d_yaml_0_8_2_tets_braid0.000.00
    blueprint_3d_yaml_0_8_2_tets_radial0.000.00
    blueprint_3d_yaml_0_8_2_hexs_mesh0.000.00
    blueprint_3d_yaml_0_8_2_hexs_braid0.000.00
    blueprint_3d_yaml_0_8_2_hexs_radial0.000.00
    blueprint_3d_yaml_0_8_2_points_implicit_mesh0.000.00
    blueprint_3d_yaml_0_8_2_points_implicit_braid0.000.00
    blueprint_3d_yaml_0_8_2_points_implicit_radial0.000.00
    Polygonal 2D Example HDF5 Mesh Files, 0.8.2
    blueprint_poly_2d_hdf5_0_8_2_mesh_topo_mesh0.000.00
    blueprint_poly_2d_hdf5_0_8_2_mesh_topo_level0.000.00
    Polygonal 2D Example YAML Mesh Files, 0.8.2
    blueprint_poly_2d_yaml_0_8_2_mesh_topo_mesh0.000.00
    blueprint_poly_2d_yaml_0_8_2_mesh_topo_level0.000.00
    Polygonal 3D Example HDF5 Mesh Files, 0.8.2
    blueprint_poly_3d_hdf5_0_8_2_mesh_topo_mesh0.000.00
    blueprint_poly_3d_hdf5_0_8_2_mesh_topo_level0.000.00
    Polygonal 3D Example YAML Mesh Files, 0.8.2
    blueprint_poly_3d_yaml_0_8_2_mesh_topo_mesh0.000.00
    blueprint_poly_3d_yaml_0_8_2_mesh_topo_level0.000.00
    Blueprint with Partition Map Style Index, 0.8.4
    bp_part_map_index_example0.000.00
    bp_part_map_index_single_file_example0.000.00
    bp_sparse_topos_example0.000.00
    bp_part_map_spiral_case_-10.000.00
    bp_part_map_spiral_case_00.000.00
    bp_part_map_spiral_case_10.000.00
    bp_part_map_spiral_case_20.000.00
    bp_part_map_spiral_case_30.000.00
    bp_part_map_spiral_case_40.000.00
    bp_part_map_spiral_case_50.000.00
    bp_part_map_spiral_case_60.000.00
    bp_part_map_spiral_case_70.000.00
    bp_part_map_spiral_case_80.000.00
    Blueprint Strided Structured, 0.8.4
    bp_strided_struct_2d_ele_vals0.000.00
    bp_strided_struct_2d_vert_vals0.000.00
    bp_strided_struct_3d_ele_vals0.000.00
    bp_strided_struct_3d_vert_vals0.000.00
    Blueprint RZ Examples, 0.8.6
    blueprint_rz_cyl_rectilinear.root_plot_2D0.000.00
    blueprint_rz_cyl_rectilinear.root_plot_revolved_to_3D1000000.0069.22
    blueprint_rz_cyl_uniform.root_plot_2D0.000.00
    blueprint_rz_cyl_uniform.root_plot_revolved_to_3D0.000.00
    blueprint_rz_cyl_structured.root_plot_2D0.000.00
    blueprint_rz_cyl_structured.root_plot_revolved_to_3D0.000.00
    blueprint_rz_cyl_unstructured.root_plot_2D0.000.00
    blueprint_rz_cyl_unstructured.root_plot_revolved_to_3D100.0069.22
    Blueprint 1D Curve Examples, 0.8.6
    blueprint_1d_curve_vertex_assoc0.000.00
    blueprint_1d_curve_element_assoc0.000.00
    Blueprint Polytopal Mesh Missing Offsets, 0.8.7
    Polytopal_mesh_missing_offsets0.000.00
    Blueprint Unstructured Points not using the entire coordset, 0.8.7
    Unstructured_points_not_using_entire_coordset0.000.00
    Blueprint Uniform Coordset + Unstructured Topo, 0.9.1
    Uniform_coordset_and_unstructured_topo0.000.00
    Blueprint Mixed Topos, 0.9.2
    Mixed_topo_simple_2d0.000.00
    Mixed_topo_polygonal_2d0.000.00
    Mixed_topo_simple_3d0.000.00
    Mixed_braid_2d0.000.00
    Mixed_braid_3d0.000.00
    Mixed_tet_quad_2d0.000.00
    Mixed_offsets_2d0.000.00
    Blueprint Specsets, 0.9.2
    Misc_radial0.000.00
    Misc_specset0.000.00
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_blueprint_axom_klee.html b/2024-12-12-22:00/poodle_trunk_serial/databases_blueprint_axom_klee.html new file mode 100644 index 000000000..42988c1a1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_blueprint_axom_klee.html @@ -0,0 +1,196 @@ + +Results for databases/blueprint_axom_klee.py + +

    Results of VisIt Regression Test - databases/blueprint_axom_klee

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    P0 Material
    blueprint_axom_klee_0_000.000.00
    P2 Material
    blueprint_axom_klee_1_000.000.00
    blueprint_axom_klee_1_010.000.00
    blueprint_axom_klee_1_020.000.00
    blueprint_axom_klee_1_030.000.00
    P5 Material
    blueprint_axom_klee_2_000.000.00
    blueprint_axom_klee_2_010.000.00
    blueprint_axom_klee_2_020.000.00
    blueprint_axom_klee_2_030.000.00
    matvf on HO materials
    blueprint_axom_klee_3_000.000.00
    blueprint_axom_klee_3_010.000.00
    blueprint_axom_klee_3_020.000.00
    blueprint_axom_klee_3_030.000.00
    blueprint_axom_klee_3_040.000.00
    blueprint_axom_klee_3_050.000.00
    blueprint_axom_klee_3_060.000.00
    Testing display_name
    blueprint_axom_klee_4_000.000.00
    blueprint_axom_klee_4_010.000.00
    blueprint_axom_klee_4_020.000.00
    blueprint_axom_klee_4_030.000.00
    blueprint_axom_klee_4_040.000.00
    blueprint_axom_klee_4_050.000.00
    Refine low order field
    blueprint_axom_klee_5_000 modifications totalling 0 lines
    blueprint_axom_klee_5_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_blueprint_axom_klee_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_blueprint_axom_klee_py.html new file mode 100644 index 000000000..40fdf6cfa --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_blueprint_axom_klee_py.html @@ -0,0 +1,213 @@ +databases/blueprint_axom_klee.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  blueprint_axom_klee.py 
    +#
    +#  Tests:      blueprint hdf5 files 
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed May 31 15:59:22 PDT 2023
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Jul 19 15:11:35 PDT 2023
    +#    I added some tests for an index file that has display_name entries in it.
    +#
    +#    Brad Whitlock, Tue Dec 19 17:29:53 PST 2023
    +#    I added a new test to make sure refining a low-order field happens by
    +#    making sure there is no message about adding extra 0's.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("Blueprint")
    +from os.path import join as pjoin
    +
    +def bj_test_helper_mats(rootName, prefix, sectionText, extraPlots = None):
    +    TestSection(sectionText)
    +    db = data_path(pjoin("axom_klee_test_data", rootName))
    +    OpenDatabase(db)
    +    AddPlot("FilledBoundary", "shaping_mesh_material")
    +    fb = FilledBoundaryAttributes(1)
    +    fb.SetMultiColor(0, (255,0,0,255))
    +    fb.SetMultiColor(1, (0,255,0,255))
    +    fb.SetMultiColor(2, (0,0,255,255))
    +    fb.SetMultiColor(3, (0,255,255,255))
    +    SetPlotOptions(fb)
    +    AddPlot("Mesh", "shaping_mesh")
    +    DrawPlots()
    +    v = GetView2D()
    +    v.windowCoords = (7.83773, 12.304, 8.64959, 13.1412)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    SetView2D(v)
    +    SetActivePlots((0,1))
    +
    +    Test(prefix + "_00")
    +
    +    # Increase the resolution.
    +    AddOperator("MultiresControl", 1)
    +    m = MultiresControlAttributes()
    +    m.resolution = 4
    +    m.maxResolution = 10
    +    SetOperatorOptions(m)
    +    DrawPlots()
    +    Test(prefix + "_01")
    +
    +    v2 = GetView2D()
    +    v2.windowCoords = (9.50025, 10.5163, 10.8769, 11.9097)
    +    v2.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    SetView2D(v2)
    +    Test(prefix + "_02")
    +
    +    SetActivePlots(0)
    +    DeleteActivePlots()
    +
    +    # Possibly make some extra plots
    +    if extraPlots is not None:
    +        extraPlots(prefix, v)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def bj_test_helper(datadir, prefix, sectionText):
    +    def pc_plots(prefix, v):
    +        # Look at one of the volume fractions. It should be refined
    +        AddPlot("Pseudocolor", "shaping_mesh/vol_frac_steel", 1, 1)
    +        DrawPlots()
    +        SetView2D(v)
    +        Test(prefix + "_03")
    +    bj_test_helper_mats(datadir, prefix, sectionText, pc_plots)
    +
    +def test0():
    +    TestSection("P0 Material")
    +    db = data_path(pjoin("axom_klee_test_data", "heroic_roses_o0", "shaping.root"))
    +    OpenDatabase(db)
    +
    +    AddPlot("FilledBoundary", "shaping_mesh_material")
    +    fb = FilledBoundaryAttributes(1)
    +    fb.SetMultiColor(0, (0,0,0,255))
    +    fb.SetMultiColor(1, (80,80,220,255))
    +    fb.SetMultiColor(2, (93,241,160,255))
    +    fb.SetMultiColor(3, (0,120,0,255))
    +    fb.SetMultiColor(4, (90,100,50,255))
    +    fb.SetMultiColor(5, (241,132,171,255))
    +    fb.SetMultiColor(6, (184,158,241,255))
    +    fb.SetMultiColor(7, (240,0,0,255))
    +    fb.SetMultiColor(8, (255,153,0,255))
    +    SetPlotOptions(fb)
    +    DrawPlots()
    +    ResetView()
    +    Test("blueprint_axom_klee_0_00")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test1():
    +    bj_test_helper("balls_and_jacks_q7o2/shaping.root", "blueprint_axom_klee_1", "P2 Material")
    +
    +def test2():
    +    bj_test_helper("balls_and_jacks_q7o5/shaping.root", "blueprint_axom_klee_2", "P5 Material")
    +
    +def test3():
    +    TestSection("matvf on HO materials")
    +    db = data_path(pjoin("axom_klee_test_data", "3mat_q12o12", "shaping.root"))
    +    OpenDatabase(db)
    +
    +    AddPlot("FilledBoundary", "shaping_mesh_material")
    +    AddOperator("MultiresControl")
    +    op = MultiresControlAttributes()
    +    op.resolution = 16
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    ResetView()
    +    Test("blueprint_axom_klee_3_00")
    +    DeleteAllPlots()
    +
    +    DefineScalarExpression("vf_inner", 'matvf(shaping_mesh_material, "inner")')
    +    DefineScalarExpression("vf_middle", 'matvf(shaping_mesh_material, "middle")')
    +    DefineScalarExpression("vf_outer", 'matvf(shaping_mesh_material, "outer")')
    +    AddPlot("Pseudocolor", "vf_inner")
    +    AddOperator("MultiresControl")
    +    op = MultiresControlAttributes()
    +    op.resolution = 3
    +    op.maxResolution = 20
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    Test("blueprint_axom_klee_3_01")
    +    op.resolution = 20
    +    SetOperatorOptions(op)
    +    Test("blueprint_axom_klee_3_02")
    +
    +    ChangeActivePlotsVar("vf_middle")
    +    op.resolution = 3
    +    SetOperatorOptions(op)
    +    Test("blueprint_axom_klee_3_03")
    +    op.resolution = 20
    +    SetOperatorOptions(op)
    +    Test("blueprint_axom_klee_3_04")
    +
    +    ChangeActivePlotsVar("vf_outer")
    +    op.resolution = 3
    +    SetOperatorOptions(op)
    +    Test("blueprint_axom_klee_3_05")
    +    op.resolution = 20
    +    SetOperatorOptions(op)
    +    Test("blueprint_axom_klee_3_06")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test4():
    +    def pc_plots(prefix, v):
    +        # Look at the volume fraction fields, whose names were changed
    +        # in the index using display_name.
    +        SetActivePlots(0)
    +        DeleteActivePlots()
    +        AddPlot("Pseudocolor", "volume_fractions/air", 1, 1)
    +        DrawPlots()
    +        ResetView()
    +        Test(prefix + "_03")
    +        ChangeActivePlotsVar("volume_fractions/rubber")
    +        Test(prefix + "_04")
    +        ChangeActivePlotsVar("volume_fractions/steel")
    +        Test(prefix + "_05")
    +    # Make sure the material still plots, even though its constituent volume
    +    # fraction arrays have been renamed in the index file using display_name.
    +    bj_test_helper_mats("balls_and_jacks_q7o2/shaping_mod.root", "blueprint_axom_klee_4", "Testing display_name", pc_plots)
    +
    +def test5():
    +    TestSection("Refine low order field")
    +    db = data_path(pjoin("axom_klee_test_data", "balls_and_jacks_q7o5", "shaping.root"))
    +    OpenDatabase(db)
    +
    +    # Plot a low-order field that would normally *not* refine with MultiresControl.
    +    AddPlot("Pseudocolor", "shaping_mesh/mesh_material_attribute")
    +    AddOperator("MultiresControl")
    +    m = MultiresControlAttributes()
    +    m.maxResolution = 10
    +    m.resolution = 2
    +    SetOperatorOptions(m)
    +    msg, severity = GetLastMessage(1)
    +    DrawPlots()
    +
    +    # Executing the plot would have issued a warning about VisIt having to add
    +    # 0's. Make sure that message no longer happens.
    +    msg, severity = GetLastMessage(1)
    +    if msg.find("Extra 0.\'s were added") != -1:
    +        txt = msg
    +    else:
    +        txt = "Padding the field was not necessary."
    +    TestText("blueprint_axom_klee_5_00", txt)
    +    Test("blueprint_axom_klee_5_01")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def main():
    +    test0()
    +    test1()
    +    test2()
    +    test3()
    +    test4()
    +    test5()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_blueprint_export.html b/2024-12-12-22:00/poodle_trunk_serial/databases_blueprint_export.html new file mode 100644 index 000000000..23446e422 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_blueprint_export.html @@ -0,0 +1,1122 @@ + +Results for databases/blueprint_export.py + +

    Results of VisIt Regression Test - databases/blueprint_export

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    basic_multi_rect3d.silo_input0.000.00
    basic_multi_rect3d.silo_isosurface0.000.00
    basic_multi_rect3d.silo_default_exported0.000.00
    basic_multi_rect3d.silo_isosurface_exported0.000.00
    basic_multi_curv3d.silo_input0.000.00
    basic_multi_curv3d.silo_isosurface0.000.00
    basic_multi_curv3d.silo_default_exported0.000.00
    basic_multi_curv3d.silo_isosurface_exported0.000.00
    basic_multi_curv2d.silo_input0.000.00
    basic_multi_curv2d.silo_isosurface0.000.00
    basic_multi_curv2d.silo_default_exported0.000.00
    basic_multi_curv2d.silo_isosurface_exported0.000.00
    basic_multi_ucd3d.silo_input0.000.00
    basic_multi_ucd3d.silo_isosurface0.000.00
    basic_multi_ucd3d.silo_default_exported0.000.00
    basic_multi_ucd3d.silo_isosurface_exported0.000.00
    basic_multi_rect2d.silo_input0.000.00
    basic_multi_rect2d.silo_isosurface0.000.00
    basic_multi_rect2d.silo_default_exported0.000.00
    basic_multi_rect2d.silo_isosurface_exported0.000.00
    basic_multi_rect3d.silo_input_output_dir0.000.00
    basic_multi_rect3d.silo_isosurface_output_dir0.000.00
    basic_multi_rect3d.silo_default_exported_output_dir0.000.00
    basic_multi_rect3d.silo_isosurface_exported_output_dir0.000.00
    basic_multi_curv3d.silo_input_output_dir0.000.00
    basic_multi_curv3d.silo_isosurface_output_dir0.000.00
    basic_multi_curv3d.silo_default_exported_output_dir0.000.00
    basic_multi_curv3d.silo_isosurface_exported_output_dir0.000.00
    basic_multi_curv2d.silo_input_output_dir0.000.00
    basic_multi_curv2d.silo_isosurface_output_dir0.000.00
    basic_multi_curv2d.silo_default_exported_output_dir0.000.00
    basic_multi_curv2d.silo_isosurface_exported_output_dir0.000.00
    basic_multi_ucd3d.silo_input_output_dir0.000.00
    basic_multi_ucd3d.silo_isosurface_output_dir0.000.00
    basic_multi_ucd3d.silo_default_exported_output_dir0.000.00
    basic_multi_ucd3d.silo_isosurface_exported_output_dir0.000.00
    basic_multi_rect2d.silo_input_output_dir0.000.00
    basic_multi_rect2d.silo_isosurface_output_dir0.000.00
    basic_multi_rect2d.silo_default_exported_output_dir0.000.00
    basic_multi_rect2d.silo_isosurface_exported_output_dir0.000.00
    basic_multi_rect3d.silo_extra_options_input0.000.00
    BasicJSONOptions0.000.00
    BasicYAMLOptions0.000.00
    Blueprint partition
    multi_rect3d.silo0.000.00
    multi_rect3d.silo_partition1_0_0.000.00
    multi_rect3d.silo_partition1_1_0.000.00
    multi_rect3d.silo_partition4_0_0.000.00
    multi_rect3d.silo_partition4_1_0.000.00
    multi_rect3d.silo_partition19_0_0.000.00
    multi_rect3d.silo_partition19_1_0.000.00
    multi_rect3d.silo_partition45_0_0.000.00
    multi_rect3d.silo_partition45_1_0.000.00
    multi_curv3d.silo0.000.00
    multi_curv3d.silo_partition1_0_0.000.00
    multi_curv3d.silo_partition1_1_0.000.00
    multi_curv3d.silo_partition4_0_0.000.00
    multi_curv3d.silo_partition4_1_0.000.00
    multi_curv3d.silo_partition19_0_0.000.00
    multi_curv3d.silo_partition19_1_0.000.00
    multi_curv3d.silo_partition45_0_0.000.00
    multi_curv3d.silo_partition45_1_0.000.00
    multi_ucd3d.silo0.000.00
    multi_ucd3d.silo_partition1_0_0.000.00
    multi_ucd3d.silo_partition1_1_0.000.00
    multi_ucd3d.silo_partition4_0_0.000.00
    multi_ucd3d.silo_partition4_1_0.000.00
    multi_ucd3d.silo_partition19_0_0.000.00
    multi_ucd3d.silo_partition19_1_0.000.00
    multi_ucd3d.silo_partition45_0_0.000.00
    multi_ucd3d.silo_partition45_1_0.000.00
    multi_curv2d.silo0.000.00
    multi_curv2d.silo_partition1_0_0.000.00
    multi_curv2d.silo_partition1_1_0.000.00
    multi_curv2d.silo_partition4_0_0.000.00
    multi_curv2d.silo_partition4_1_0.000.00
    multi_curv2d.silo_partition7_0_0.000.00
    multi_curv2d.silo_partition7_1_0.000.00
    multi_curv2d.silo_partition13_0_0.000.00
    multi_curv2d.silo_partition13_1_0.000.00
    multi_curv2d.silo_partition19_0_0.000.00
    multi_curv2d.silo_partition19_1_0.000.00
    multi_rect2d.silo0.000.00
    multi_rect2d.silo_partition1_0_0.000.00
    multi_rect2d.silo_partition1_1_0.000.00
    multi_rect2d.silo_partition4_0_0.000.00
    multi_rect2d.silo_partition4_1_0.000.00
    multi_rect2d.silo_partition7_0_0.000.00
    multi_rect2d.silo_partition7_1_0.000.00
    multi_rect2d.silo_partition13_0_0.000.00
    multi_rect2d.silo_partition13_1_0.000.00
    multi_rect2d.silo_partition19_0_0.000.00
    multi_rect2d.silo_partition19_1_0.000.00
    multi_rect3d.silo_output_dir0.000.00
    multi_rect3d.silo_partition1_0_output_dir0.000.00
    multi_rect3d.silo_partition1_1_output_dir0.000.00
    multi_rect3d.silo_partition4_0_output_dir0.000.00
    multi_rect3d.silo_partition4_1_output_dir0.000.00
    multi_rect3d.silo_partition19_0_output_dir0.000.00
    multi_rect3d.silo_partition19_1_output_dir0.000.00
    multi_rect3d.silo_partition45_0_output_dir0.000.00
    multi_rect3d.silo_partition45_1_output_dir0.000.00
    multi_curv3d.silo_output_dir0.000.00
    multi_curv3d.silo_partition1_0_output_dir0.000.00
    multi_curv3d.silo_partition1_1_output_dir0.000.00
    multi_curv3d.silo_partition4_0_output_dir0.000.00
    multi_curv3d.silo_partition4_1_output_dir0.000.00
    multi_curv3d.silo_partition19_0_output_dir0.000.00
    multi_curv3d.silo_partition19_1_output_dir0.000.00
    multi_curv3d.silo_partition45_0_output_dir0.000.00
    multi_curv3d.silo_partition45_1_output_dir0.000.00
    multi_ucd3d.silo_output_dir0.000.00
    multi_ucd3d.silo_partition1_0_output_dir0.000.00
    multi_ucd3d.silo_partition1_1_output_dir0.000.00
    multi_ucd3d.silo_partition4_0_output_dir0.000.00
    multi_ucd3d.silo_partition4_1_output_dir0.000.00
    multi_ucd3d.silo_partition19_0_output_dir0.000.00
    multi_ucd3d.silo_partition19_1_output_dir0.000.00
    multi_ucd3d.silo_partition45_0_output_dir0.000.00
    multi_ucd3d.silo_partition45_1_output_dir0.000.00
    multi_curv2d.silo_output_dir0.000.00
    multi_curv2d.silo_partition1_0_output_dir0.000.00
    multi_curv2d.silo_partition1_1_output_dir0.000.00
    multi_curv2d.silo_partition4_0_output_dir0.000.00
    multi_curv2d.silo_partition4_1_output_dir0.000.00
    multi_curv2d.silo_partition7_0_output_dir0.000.00
    multi_curv2d.silo_partition7_1_output_dir0.000.00
    multi_curv2d.silo_partition13_0_output_dir0.000.00
    multi_curv2d.silo_partition13_1_output_dir0.000.00
    multi_curv2d.silo_partition19_0_output_dir0.000.00
    multi_curv2d.silo_partition19_1_output_dir0.000.00
    multi_rect2d.silo_output_dir0.000.00
    multi_rect2d.silo_partition1_0_output_dir0.000.00
    multi_rect2d.silo_partition1_1_output_dir0.000.00
    multi_rect2d.silo_partition4_0_output_dir0.000.00
    multi_rect2d.silo_partition4_1_output_dir0.000.00
    multi_rect2d.silo_partition7_0_output_dir0.000.00
    multi_rect2d.silo_partition7_1_output_dir0.000.00
    multi_rect2d.silo_partition13_0_output_dir0.000.00
    multi_rect2d.silo_partition13_1_output_dir0.000.00
    multi_rect2d.silo_partition19_0_output_dir0.000.00
    multi_rect2d.silo_partition19_1_output_dir0.000.00
    Extra options
    DefaultMesh0.000.00
    JSONOptions0.000.00
    YAMLOptions0.000.00
    OverrideOptions0.000.00
    Extra extra options
    DefaultMesh_extra_extra_options0.000.00
    JSONOptions_extra_extra_options0.000.00
    YAMLOptions_extra_extra_options0.000.00
    OverrideOptions_extra_extra_options0.000.00
    Blueprint flatten
    noise.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    noise.silo.csv-element_data.csv0 modifications totalling 0 lines
    multi_rect3d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    multi_rect3d.silo.csv-element_data.csv0 modifications totalling 0 lines
    structured_multi_rect3d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    structured_multi_rect3d.silo.csv-element_data.csv0 modifications totalling 0 lines
    unstructured_multi_rect3d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    unstructured_multi_rect3d.silo.csv-element_data.csv0 modifications totalling 0 lines
    multi_rect2d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    multi_rect2d.silo.csv-element_data.csv0 modifications totalling 0 lines
    structured_multi_rect2d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    structured_multi_rect2d.silo.csv-element_data.csv0 modifications totalling 0 lines
    ucd2d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    ucd2d.silo.csv-element_data.csv0 modifications totalling 0 lines
    noise.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    noise.silo.csv-element_data.csv0 modifications totalling 0 lines
    multi_rect3d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    multi_rect3d.silo.csv-element_data.csv0 modifications totalling 0 lines
    structured_multi_rect3d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    structured_multi_rect3d.silo.csv-element_data.csv0 modifications totalling 0 lines
    unstructured_multi_rect3d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    unstructured_multi_rect3d.silo.csv-element_data.csv0 modifications totalling 0 lines
    multi_rect2d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    multi_rect2d.silo.csv-element_data.csv0 modifications totalling 0 lines
    structured_multi_rect2d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    structured_multi_rect2d.silo.csv-element_data.csv0 modifications totalling 0 lines
    ucd2d.silo.csv-vertex_data.csv0 modifications totalling 0 lines
    ucd2d.silo.csv-element_data.csv0 modifications totalling 0 lines
    Mixed_topo_simple_2d_export_field_vals
     0 .eq. 0.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     1 .eq. 1.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     2 .eq. 2.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     3 .eq. 3.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     4 .eq. 4.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     5 .eq. 5.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     6 .eq. 6.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     7 .eq. 7.0 (prec=5) : True
    Mixed_topo_simple_2d_export
     "" .eq. "" : True
    Mixed_topo_simple_2d_export_field_vals
     0 .eq. 0.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     1 .eq. 1.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     2 .eq. 2.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     3 .eq. 3.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     4 .eq. 4.0 (prec=5) : True
    Mixed_topo_simple_2d_export_field_vals
     5 .eq. 5.0 (prec=5) : True
    Mixed_topo_simple_3d_export
     "" .eq. "" : True
    Mixed_topo_braid_2d_export
     "" .eq. "" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_blueprint_export_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_blueprint_export_py.html new file mode 100644 index 000000000..272044e34 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_blueprint_export_py.html @@ -0,0 +1,818 @@ +databases/blueprint_export.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial parallel
    +#  CLASSES: nightly
    +#
    +#  Test Case:  blueprint_export.py
    +#
    +#  Tests:      Tests blueprint export features "partition" and "flatten".
    +#
    +#  Programmer: Christopher Laganella
    +#  Date:       Tue Dec 14 12:35:16 EST 2021
    +#
    +#  Modifications:
    +#
    +#    Chris Laganella, Mon Feb 14 14:39:48 EST 2022
    +#    I added a test case for user provided JSON/YAML options
    +# 
    +#    Justin Privitera, Sat Jun 29 14:22:21 PDT 2024
    +#    Added tests to round-trip mixed element topologies.
    +# 
    +#    Justin Privitera, Tue Jul  9 10:47:29 PDT 2024
    +#    Added tests for setting the directory, fixed the cycle numbers, added tests
    +#    for using the new relay.io.blueprint.save_mesh() options, 
    +# ----------------------------------------------------------------------------
    +import time
    +import sys
    +import os
    +import conduit
    +
    +if not os.path.isdir(out_path("current","databases")):
    +    os.mkdir(out_path("current","databases"))
    +out_base = out_path("current","databases","blueprint_export")
    +if not os.path.isdir(out_base):
    +    os.mkdir(out_base)
    +
    +outdir_set = pjoin(TestEnv.params["run_dir"], "testdir")
    +if not os.path.isdir(outdir_set):
    +    os.mkdir(outdir_set)
    +
    +export_test_save_location = pjoin(outdir_set, "export_test_save_location")
    +if not os.path.isdir(export_test_save_location):
    +    os.mkdir(export_test_save_location)
    +
    +# Uncomment these functions to run the script through the regular CLI
    +# def Exit():
    +#     print("Exiting test...")
    +#     return
    +
    +# def RequiredDatabasePlugin(name):
    +#     print("This test requires database plugin " + name)
    +#     return
    +
    +# def TestSection(name):
    +#     print("---- " + name + " ----")
    +#     return
    +
    +# def Test(name):
    +#     s = SaveWindowAttributes()
    +#     s.fileName = name
    +#     SetSaveWindowAttributes(s)
    +#     SaveWindow()
    +#     return
    +
    +# def TestText(name):
    +#     print("Testing text file {}".format(name))
    +
    +# def silo_data_path(name):
    +#     retval = os.path.join("/mnt/data/il/VisIt/VisItClass/data", name)
    +#     # print(retval)
    +#     return retval
    +
    +def load_text(file_name):
    +    # print("Loading text from {}".format(os.path.abspath(file_name)), file=sys.stderr)
    +    with open(file_name, 'r') as f:
    +        return f.read()
    +
    +def set_view(case_name, view=None):
    +    if "2d" in case_name:
    +        ResetView()
    +    else:
    +        SetView3D(view)
    +
    +
    +def test_name(case, i):
    +    return case + "_" + str(i) + "_"
    +
    +# Export DB as bp data set
    +def export_mesh_bp(case_name, varname, varname2 = "", dirname="."):
    +    export_name = case_name
    +    e = ExportDBAttributes()
    +    e.db_type = "Blueprint"
    +    e.filename = export_name
    +    if len(varname2) > 0:
    +        e.variables = (varname, varname2)
    +    else:
    +        e.variables = (varname,)
    +    if dirname != ".":
    +        e.dirname = dirname
    +    ExportDatabase(e)
    +    time.sleep(1)
    +    return export_name
    +
    +# Export DB as csv, return the folder name
    +def create_csv_output(case_name, dirname="."):
    +    export_name = case_name
    +    e = ExportDBAttributes()
    +    e.db_type = "Blueprint"
    +    e.filename = export_name
    +    e.variables = ('mesh_coords', 'zc_mesh_coords')
    +    if dirname != ".":
    +        e.dirname = dirname
    +    opts = GetExportOptions("Blueprint")
    +    opts["Operation"] = "Flatten_CSV"
    +    ExportDatabase(e, opts)
    +    time.sleep(1)
    +    return export_name + ".csv"
    +
    +def test_csv_output(case_name, dirname="."):
    +    vert_file = os.path.join(dirname, case_name, "vertex_data.csv")
    +    elem_file = os.path.join(dirname, case_name, "element_data.csv")
    +    vert_baseline = case_name + "-" + "vertex_data.csv"
    +    elem_baseline = case_name + "-" + "element_data.csv"
    +    TestText(vert_baseline, load_text(vert_file))
    +    TestText(elem_baseline, load_text(elem_file))
    +
    +def define_mesh_expressions(mesh_name):
    +    DefineScalarExpression("nid", "nodeid({})".format(mesh_name))
    +    DefineScalarExpression("zid", "zoneid({})".format(mesh_name))
    +    DefineScalarExpression("mesh_coords", "coords({})".format(mesh_name))
    +    DefineScalarExpression("zc_mesh_coords", "recenter(mesh_coords, \"zonal\")")
    +    return ("nid", "zid", "mesh_coords", "zc_mesh_coords")
    +
    +# 's' for structured 'r' for rectilinear
    +def flatten_multi_2d_case(case, dirname="."):
    +    case_name = "multi_rect2d.silo"
    +    mesh_name = "mesh1"
    +    export_name = case_name
    +
    +    # Use multi_rect3d to create all cases
    +    OpenDatabase(silo_data_path(case_name))
    +    AddPlot("Mesh", mesh_name)
    +
    +    # Define some mesh based variables
    +    vars = define_mesh_expressions(mesh_name)
    +
    +    AddOperator("Resample")
    +    ra = ResampleAttributes()
    +    ra.samplesX = 5
    +    ra.samplesY = 4
    +    ra.is3D = 0
    +    ra.distributedResample = 1
    +    SetOperatorOptions(ra)
    +
    +    AddOperator("DeferExpression")
    +    dea = DeferExpressionAttributes()
    +    dea.exprs = vars
    +    SetOperatorOptions(dea)
    +
    +    if case == 's':
    +        AddOperator("Transform")
    +        ta = TransformAttributes()
    +        ta.doRotate = 1
    +        # ta.rotateType = "Deg"
    +        ta.rotateAmount = 0.00001
    +        SetOperatorOptions(ta)
    +        export_name = "structured_" + case_name
    +
    +    DrawPlots()
    +
    +    # Create csv file
    +    export_dir = create_csv_output(export_name, dirname)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(case_name))
    +
    +    # Test text
    +    test_csv_output(export_dir, dirname)
    +
    +def flatten_multi_2d_unstructured_case(dirname="."):
    +    case_name = "ucd2d.silo"
    +    mesh_name = "ucdmesh2d"
    +    export_name = case_name
    +
    +    # Use multi_curv2d and remove cells
    +    OpenDatabase(silo_data_path(case_name))
    +    AddPlot("Mesh", mesh_name)
    +
    +    # Define some mesh based variables
    +    vars = define_mesh_expressions(mesh_name)
    +
    +    AddOperator("Threshold")
    +    ta = ThresholdAttributes()
    +    ta.listedVarNames = ("zid",)
    +    ta.lowerBounds = (8,)
    +    ta.upperBounds = (11,)
    +    SetOperatorOptions(ta)
    +    export_name = case_name
    +
    +    AddOperator("DeferExpression")
    +    dea = DeferExpressionAttributes()
    +    dea.exprs = ("mesh_coords", "zc_mesh_coords")
    +    SetOperatorOptions(dea)
    +
    +    DrawPlots()
    +
    +    # Create csv file
    +    export_dir = create_csv_output(export_name, dirname)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(case_name))
    +
    +    # Test text
    +    test_csv_output(export_dir, dirname)
    +
    +# case = 'u' for unstructured, 'r' for rectilinear, 's' for structured
    +def flatten_multi_3d_case(case, dirname="."):
    +    case_name = "multi_rect3d.silo"
    +    mesh_name = "mesh1"
    +    export_name = case_name
    +    # Use multi_rect3d to create all cases
    +    OpenDatabase(silo_data_path(case_name))
    +    AddPlot("Mesh", mesh_name)
    +
    +    # Define some mesh based variables
    +    vars = define_mesh_expressions(mesh_name)
    +
    +    AddOperator("Resample")
    +    ra = ResampleAttributes()
    +    ra.samplesX = 5
    +    ra.samplesY = 4
    +    ra.samplesZ = 3
    +    ra.distributedResample = 1
    +    SetOperatorOptions(ra)
    +
    +    AddOperator("DeferExpression")
    +    dea = DeferExpressionAttributes()
    +    dea.exprs = vars
    +    SetOperatorOptions(dea)
    +
    +    if case == 'u':
    +        AddOperator("Threshold")
    +        ta = ThresholdAttributes()
    +        ta.listedVarNames = ("zid",)
    +        ta.lowerBounds = (1,)
    +        SetOperatorOptions(ta)
    +        export_name = "unstructured_" + case_name
    +    elif case == 's':
    +        AddOperator("Transform")
    +        ta = TransformAttributes()
    +        ta.doRotate = 1
    +        # ta.rotateType = "Deg"
    +        ta.rotateAmount = 0.00001
    +        SetOperatorOptions(ta)
    +        export_name = "structured_" + case_name
    +    # Do nothing for rectilinear
    +
    +    DrawPlots()
    +
    +    # Create csv file
    +    export_dir = create_csv_output(export_name, dirname)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(case_name))
    +
    +    # Test text
    +    test_csv_output(export_dir, dirname)
    +
    +def flatten_noise(dirname="."):
    +    case_name = "noise.silo"
    +    mesh_name = "Mesh"
    +    samples = (5, 4, 3)
    +
    +    OpenDatabase(silo_data_path(case_name))
    +    AddPlot("Mesh", mesh_name)
    +
    +    # Expose coordinates as variables
    +    vars = define_mesh_expressions(mesh_name)
    +
    +    # Resample
    +    AddOperator("Resample")
    +    ra = ResampleAttributes()
    +    ra.samplesX = samples[0]
    +    ra.samplesY = samples[1]
    +    ra.samplesZ = samples[2]
    +    SetOperatorOptions(ra)
    +
    +    AddOperator("DeferExpression")
    +    dea = DeferExpressionAttributes()
    +    dea.exprs = vars
    +    SetOperatorOptions(dea)
    +
    +    DrawPlots()
    +
    +    # Create the CSV output
    +    export_dir = create_csv_output(case_name, dirname)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(case_name))
    +
    +    # Test text
    +    test_csv_output(export_dir, dirname)
    +
    +def partition_test_case(case_name, targets, view=None, dirname="."):
    +    # Write the original dataset
    +    OpenDatabase(silo_data_path(case_name))
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    set_view(case_name, view)
    +    Test(case_name + ("_output_dir" if dirname != "." else ""))
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(case_name))
    +
    +    for target in targets:
    +        export_name = case_name + "_partition" + str(target)
    +        export_filename = export_name + ".cycle_000048.root"
    +
    +        # Plot the original dataset
    +        OpenDatabase(silo_data_path(case_name))
    +        AddPlot("Pseudocolor", "u")
    +        DrawPlots()
    +        set_view(case_name, view)
    +
    +        # Set the export database attributes.
    +        e = ExportDBAttributes()
    +        e.db_type = "Blueprint"
    +        e.filename = export_name
    +        e.variables = ("u")
    +        if dirname != ".":
    +            e.dirname = dirname
    +        opts = GetExportOptions("Blueprint")
    +        opts["Operation"] = "Partition"
    +        opts["Partition target number of domains"] = target
    +        print("About to partition " + case_name + " into "
    +            + str(target) + " blocks.")
    +        ExportDatabase(e, opts)
    +        time.sleep(1)
    +        DeleteAllPlots()
    +        CloseDatabase(silo_data_path(case_name))
    +
    +        OpenDatabase(export_filename)
    +        AddPlot("Pseudocolor", "mesh_topo/u")
    +        DrawPlots()
    +        set_view(case_name, view)
    +        Test(test_name(export_name, 0) + ("output_dir" if dirname != "." else ""))
    +        DeleteAllPlots()
    +
    +        AddPlot("Subset", "domains")
    +        DrawPlots()
    +        set_view(case_name, view)
    +        Test(test_name(export_name, 1) + ("output_dir" if dirname != "." else ""))
    +        DeleteAllPlots()
    +        CloseDatabase(export_filename)
    +
    +def partition_test_extra_options():
    +    dbname = "multi_rect2d.silo"
    +    TestSection("Extra options")
    +    OpenDatabase(silo_data_path(dbname))
    +    AddPlot("Subset", "domains(mesh1)")
    +    DrawPlots()
    +    Test("DefaultMesh")
    +
    +    # Test JSON
    +    e0 = ExportDBAttributes()
    +    e0.db_type = "Blueprint"
    +    e0.filename = "multi_rect2d_json_target_1"
    +    e0.variables = ("u")
    +    opts0 = GetExportOptions("Blueprint")
    +    opts0["Operation"] = "Partition"
    +    opts0["Flatten / Partition extra options"] = '{"target": 1}'
    +    ExportDatabase(e0, opts0)
    +    time.sleep(1)
    +
    +    # Test YAML
    +    e1 = ExportDBAttributes()
    +    e1.db_type = "Blueprint"
    +    e1.filename = "multi_rect2d_yaml_target_1"
    +    e1.variables = ("u")
    +    opts1 = GetExportOptions("Blueprint")
    +    opts1["Operation"] = "Partition"
    +    opts1["Flatten / Partition extra options"]  = 'target: 1'
    +    ExportDatabase(e1, opts1)
    +    time.sleep(1)
    +
    +    # Test that the JSON/YAML overrides the options field
    +    e2 = ExportDBAttributes()
    +    e2.db_type = "Blueprint"
    +    e2.filename = "multi_rect2d_override_target_1"
    +    e2.variables = ("u")
    +    opts2 = GetExportOptions("Blueprint")
    +    opts2["Operation"] = "Partition"
    +    opts2["Partition target number of domains"] = 13
    +    opts2["Flatten / Partition extra options"]  = 'target: 1'
    +    ExportDatabase(e2, opts2)
    +    time.sleep(1)
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(dbname))
    +
    +    OpenDatabase("multi_rect2d_json_target_1.cycle_000048.root")
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test("JSONOptions")
    +    DeleteAllPlots()
    +    CloseDatabase("multi_rect2d_json_target_1.cycle_000048.root")
    +
    +    OpenDatabase("multi_rect2d_yaml_target_1.cycle_000048.root")
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test("YAMLOptions")
    +    DeleteAllPlots()
    +    CloseDatabase("multi_rect2d_yaml_target_1.cycle_000048.root")
    +
    +    OpenDatabase("multi_rect2d_override_target_1.cycle_000048.root")
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test("OverrideOptions")
    +    DeleteAllPlots()
    +    CloseDatabase("multi_rect2d_override_target_1.cycle_000048.root")
    +
    +def partition_test_extra_extra_options():
    +    dbname = "multi_rect2d.silo"
    +    TestSection("Extra extra options")
    +    OpenDatabase(silo_data_path(dbname))
    +    AddPlot("Subset", "domains(mesh1)")
    +    DrawPlots()
    +    Test("DefaultMesh_extra_extra_options")
    +
    +    # Test JSON
    +    e0 = ExportDBAttributes()
    +    e0.db_type = "Blueprint"
    +    e0.filename = "multi_rect2d_json_target_1"
    +    e0.variables = ("u")
    +    opts0 = GetExportOptions("Blueprint")
    +    opts0["Operation"] = "Partition"
    +    opts0["Flatten / Partition extra options"] = '{"target": 1}'
    +    opts0["Blueprint Relay I/O extra options"] = """{
    +    \"file_style\": \"multi_file\",
    +    \"suffix\": \"none\",
    +    \"mesh_name\": \"mesh1\",
    +    \"number_of_files\": 2,
    +    \"truncate\": \"false\"
    +}"""
    +    # opts0["Output type"] = "JSON"
    +    ExportDatabase(e0, opts0)
    +    time.sleep(1)
    +
    +    # Test YAML
    +    e1 = ExportDBAttributes()
    +    e1.db_type = "Blueprint"
    +    e1.filename = "multi_rect2d_yaml_target_1"
    +    e1.variables = ("u")
    +    opts1 = GetExportOptions("Blueprint")
    +    opts1["Operation"] = "Partition"
    +    opts1["Flatten / Partition extra options"]  = 'target: 1'
    +    opts1["Blueprint Relay I/O extra options"] = """file_style: \"multi_file\"
    +suffix: \"none\"
    +mesh_name: \"mesh1\"
    +number_of_files: 2
    +truncate: \"false\""""
    +    # opts1["Output type"] = "YAML"
    +    ExportDatabase(e1, opts1)
    +    time.sleep(1)
    +
    +    # Test that the JSON/YAML overrides the options field
    +    e2 = ExportDBAttributes()
    +    e2.db_type = "Blueprint"
    +    e2.filename = "multi_rect2d_override_target_1"
    +    e2.variables = ("u")
    +    opts2 = GetExportOptions("Blueprint")
    +    opts2["Operation"] = "Partition"
    +    opts2["Partition target number of domains"] = 13
    +    opts2["Flatten / Partition extra options"]  = 'target: 1'
    +    ExportDatabase(e2, opts2)
    +    time.sleep(1)
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(dbname))
    +
    +    OpenDatabase("multi_rect2d_json_target_1.root")
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test("JSONOptions_extra_extra_options")
    +    DeleteAllPlots()
    +    CloseDatabase("multi_rect2d_json_target_1.root")
    +
    +    OpenDatabase("multi_rect2d_yaml_target_1.root")
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test("YAMLOptions_extra_extra_options")
    +    DeleteAllPlots()
    +    CloseDatabase("multi_rect2d_yaml_target_1.root")
    +
    +    OpenDatabase("multi_rect2d_override_target_1.root")
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test("OverrideOptions_extra_extra_options")
    +    DeleteAllPlots()
    +    CloseDatabase("multi_rect2d_override_target_1.root")
    +
    +def basic_test_case(case_name, varname = "d", dirname = "."):
    +    OpenDatabase(silo_data_path(case_name))
    +    AddPlot("Pseudocolor",varname)
    +    DrawPlots()
    +    Test("basic_" + case_name + "_input" + ("_output_dir" if dirname != "." else ""))
    +    # export default
    +    export_rfile_default = export_mesh_bp(case_name + "_default", varname, dirname=dirname) + ".cycle_000048.root"
    +    # export post isosurface
    +    AddOperator("Isosurface")
    +    DrawPlots()
    +    Test("basic_" + case_name + "_isosurface" + ("_output_dir" if dirname != "." else ""))
    +    export_rfile_isos = export_mesh_bp(case_name + "_isosurface", varname, dirname=dirname) + ".cycle_000048.root"
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(case_name))
    +
    +    OpenDatabase(export_rfile_default)
    +    # bp var names are qualified by topo
    +    AddPlot("Pseudocolor","mesh_topo/" + varname)
    +    DrawPlots()
    +    Test("basic_" + case_name + "_default_exported" + ("_output_dir" if dirname != "." else ""))
    +    DeleteAllPlots()
    +    CloseDatabase(export_rfile_default)
    +
    +    OpenDatabase(export_rfile_isos)
    +    # bp var names are qualified by topo
    +    AddPlot("Pseudocolor", "mesh_topo/" + varname)
    +    DrawPlots()
    +    Test("basic_" + case_name + "_isosurface_exported" + ("_output_dir" if dirname != "." else ""))
    +    DeleteAllPlots()
    +    CloseDatabase(export_rfile_isos)
    +
    +def basic_test_case_extra_options(case_name, varname = "d"):
    +    OpenDatabase(silo_data_path(case_name))
    +    AddPlot("Pseudocolor",varname)
    +    DrawPlots()
    +    Test("basic_" + case_name + "_extra_options_input")
    +
    +    # Test JSON
    +    e0 = ExportDBAttributes()
    +    e0.db_type = "Blueprint"
    +    e0.filename = case_name + "_json"
    +    e0.variables = (varname,)
    +    opts0 = GetExportOptions("Blueprint")
    +    opts0["Blueprint Relay I/O extra options"] = """{
    +    \"file_style\": \"multi_file\",
    +    \"suffix\": \"none\",
    +    \"mesh_name\": \"mesh1\",
    +    \"number_of_files\": 2,
    +    \"truncate\": \"false\"
    +}"""
    +    # opts0["Output type"] = "JSON"
    +    ExportDatabase(e0, opts0)
    +    time.sleep(1)
    +
    +    # Test YAML
    +    e1 = ExportDBAttributes()
    +    e1.db_type = "Blueprint"
    +    e1.filename = case_name + "_yaml"
    +    e1.variables = (varname,)
    +    opts1 = GetExportOptions("Blueprint")
    +    opts1["Blueprint Relay I/O extra options"] = """file_style: \"multi_file\"
    +suffix: \"none\"
    +mesh_name: \"mesh1\"
    +number_of_files: 2
    +truncate: \"false\""""
    +    # opts1["Output type"] = "YAML"
    +    ExportDatabase(e1, opts1)
    +    time.sleep(1)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(case_name))
    +
    +    OpenDatabase(case_name + "_json.root")
    +    AddPlot("Pseudocolor","mesh1_topo/" + varname)
    +    DrawPlots()
    +    Test("BasicJSONOptions")
    +    DeleteAllPlots()
    +    CloseDatabase(case_name + "_json.root")
    +
    +    OpenDatabase(case_name + "_yaml.root")
    +    AddPlot("Pseudocolor","mesh1_topo/" + varname)
    +    DrawPlots()
    +    Test("BasicYAMLOptions")
    +    DeleteAllPlots()
    +    CloseDatabase(case_name + "_yaml.root")
    +
    +def test_basic():
    +    basic_test_case("multi_rect3d.silo")
    +    basic_test_case("multi_curv3d.silo")
    +    basic_test_case("multi_curv2d.silo")
    +    basic_test_case("multi_ucd3d.silo")
    +    basic_test_case("multi_rect2d.silo")
    +
    +    basic_test_case("multi_rect3d.silo", dirname=export_test_save_location)
    +    basic_test_case("multi_curv3d.silo", dirname=export_test_save_location)
    +    basic_test_case("multi_curv2d.silo", dirname=export_test_save_location)
    +    basic_test_case("multi_ucd3d.silo", dirname=export_test_save_location)
    +    basic_test_case("multi_rect2d.silo", dirname=export_test_save_location)
    +
    +    basic_test_case_extra_options("multi_rect3d.silo")
    +
    +
    +def test_flatten():
    +    TestSection("Blueprint flatten")
    +
    +    flatten_noise()
    +    flatten_multi_3d_case('r')
    +    flatten_multi_3d_case('s')
    +    flatten_multi_3d_case('u')
    +
    +    flatten_multi_2d_case('r')
    +    flatten_multi_2d_case('s')
    +    flatten_multi_2d_unstructured_case()
    +
    +    # test setting the output directory
    +    flatten_noise(dirname=export_test_save_location)
    +    flatten_multi_3d_case('r', dirname=export_test_save_location)
    +    flatten_multi_3d_case('s', dirname=export_test_save_location)
    +    flatten_multi_3d_case('u', dirname=export_test_save_location)
    +
    +    flatten_multi_2d_case('r', dirname=export_test_save_location)
    +    flatten_multi_2d_case('s', dirname=export_test_save_location)
    +    flatten_multi_2d_unstructured_case(dirname=export_test_save_location)
    +
    +def test_partition():
    +    TestSection("Blueprint partition")
    +
    +    # Need a couple different views
    +    rect3d_view = GetView3D()
    +    rect3d_view.viewNormal = (-0.467474, 0.301847, 0.830877)
    +    rect3d_view.focus = (0.5, 0.5, 0.5)
    +    rect3d_view.viewUp = (0.140705, 0.953323, -0.267166)
    +    rect3d_view.viewAngle = 30
    +    rect3d_view.parallelScale = 0.866025
    +    rect3d_view.nearPlane = -1.73205
    +    rect3d_view.farPlane = 1.73205
    +    rect3d_view.imagePan = (-0.0154649, 0.027457)
    +    rect3d_view.imageZoom = 1.14276
    +    rect3d_view.perspective = 1
    +    rect3d_view.eyeAngle = 2
    +    rect3d_view.centerOfRotationSet = 0
    +    rect3d_view.centerOfRotation = (0.5, 0.5, 0.5)
    +    rect3d_view.axis3DScaleFlag = 0
    +    rect3d_view.axis3DScales = (1, 1, 1)
    +    rect3d_view.shear = (0, 0, 1)
    +    rect3d_view.windowValid = 1
    +
    +    curv3d_view = GetView3D()
    +    curv3d_view.viewNormal = (-0.254971, 0.246468, 0.93501)
    +    curv3d_view.focus = (0, 2.5, 15)
    +    curv3d_view.viewUp = (0.0453522, 0.968953, -0.243049)
    +    curv3d_view.viewAngle = 30
    +    curv3d_view.parallelScale = 16.0078
    +    curv3d_view.nearPlane = -32.0156
    +    curv3d_view.farPlane = 32.0156
    +    curv3d_view.imagePan = (0, 0)
    +    curv3d_view.imageZoom = 1.21
    +    curv3d_view.perspective = 1
    +    curv3d_view.eyeAngle = 2
    +    curv3d_view.centerOfRotationSet = 0
    +    curv3d_view.centerOfRotation = (0, 2.5, 15)
    +    curv3d_view.axis3DScaleFlag = 0
    +    curv3d_view.axis3DScales = (1, 1, 1)
    +    curv3d_view.shear = (0, 0, 1)
    +    curv3d_view.windowValid = 1
    +
    +    # Run 3D tests
    +    targets_3d = (1, 4, 19, 45)
    +    partition_test_case("multi_rect3d.silo",
    +        targets_3d, rect3d_view)
    +    partition_test_case("multi_curv3d.silo",
    +        targets_3d, curv3d_view)
    +    partition_test_case("multi_ucd3d.silo",
    +        targets_3d, curv3d_view)
    +
    +    # Run 2D tests
    +    targets_2d = (1, 4, 7, 13, 19)
    +    partition_test_case("multi_curv2d.silo",
    +        targets_2d)
    +    partition_test_case("multi_rect2d.silo",
    +        targets_2d)
    +
    +    # different directory tests:
    +    # Run 3D tests
    +    targets_3d = (1, 4, 19, 45)
    +    partition_test_case("multi_rect3d.silo",
    +        targets_3d, rect3d_view, dirname=export_test_save_location)
    +    partition_test_case("multi_curv3d.silo",
    +        targets_3d, curv3d_view, dirname=export_test_save_location)
    +    partition_test_case("multi_ucd3d.silo",
    +        targets_3d, curv3d_view, dirname=export_test_save_location)
    +
    +    # Run 2D tests
    +    targets_2d = (1, 4, 7, 13, 19)
    +    partition_test_case("multi_curv2d.silo",
    +        targets_2d, dirname=export_test_save_location)
    +    partition_test_case("multi_rect2d.silo",
    +        targets_2d, dirname=export_test_save_location)
    +
    +    # Test extra options
    +    partition_test_extra_options()
    +    partition_test_extra_extra_options()
    +
    +def roundtrip_simple_mixed_topo(mixed_topo, export_name, test_name):
    +    OpenDatabase(mixed_topo)
    +    AddPlot("Mesh", "mesh_topo")
    +    AddPlot("Pseudocolor", "mesh_topo/ele_id")
    +    DrawPlots()
    +    ResetView()
    +
    +    outfilename = export_mesh_bp(export_name, "mesh_topo/ele_id") + ".cycle_000000.root"
    +
    +    save_mesh = conduit.Node()
    +    conduit.relay.io.blueprint.load_mesh(save_mesh, mixed_topo)
    +
    +    load_mesh = conduit.Node()
    +    conduit.relay.io.blueprint.load_mesh(load_mesh, outfilename)
    +
    +    # 
    +    # make changes so the diff will pass
    +    # 
    +
    +    # grab the cycle and time which were added in
    +    save_mesh[0]["state"]["cycle"] = load_mesh[0]["state"]["cycle"]
    +    save_mesh[0]["state"]["time"] = load_mesh[0]["state"]["time"]
    +
    +    # remove the pts topo
    +    save_mesh[0]["topologies"].remove_child("pts")
    +
    +    # remove the pts_id field
    +    save_mesh[0]["fields"].remove_child("pts_id")
    +
    +    # check ele_id field
    +    save_mesh_element_ids = save_mesh[0]["fields"]["ele_id"]["values"]
    +    load_mesh_element_ids = load_mesh[0]["fields"]["ele_id"]["values"]
    +    for i in range(0, len(save_mesh_element_ids)):
    +        TestValueEQ("Mixed_topo_simple_2d_export_field_vals", save_mesh_element_ids[i], load_mesh_element_ids[i])
    +    save_mesh[0]["fields"]["ele_id"].remove_child("values")
    +    load_mesh[0]["fields"]["ele_id"].remove_child("values")
    +
    +    info = conduit.Node()
    +    diffval = load_mesh.diff(save_mesh, info)
    +    diff_str = info.to_yaml() if diffval else ""
    +    TestValueEQ(test_name, diff_str, "")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(mixed_topo)
    +
    +def roundtrip_braid_mixed(mixed_topo, export_name, test_name):
    +    OpenDatabase(mixed_topo)
    +    AddPlot("Mesh", "mixed_2d_mesh")
    +    AddPlot("Pseudocolor", "mixed_2d_mesh/braid")
    +    DrawPlots()
    +    ResetView()
    +
    +    outfilename = export_mesh_bp(export_name, "mixed_2d_mesh/braid", varname2="mixed_2d_mesh/vel") + ".cycle_000100.root"
    +
    +    opts = conduit.Node()
    +    opts["mesh_name"] = "mixed_2d"
    +    save_mesh = conduit.Node()
    +    conduit.relay.io.blueprint.load_mesh(save_mesh, mixed_topo, opts)
    +
    +    load_mesh = conduit.Node()
    +    conduit.relay.io.blueprint.load_mesh(load_mesh, outfilename)
    +
    +    # 
    +    # make changes so the diff will pass
    +    # 
    +
    +    # grab the domain_id which was added in
    +    save_mesh[0]["state"]["domain_id"] = load_mesh[0]["state"]["domain_id"]
    +    save_mesh[0]["state"].remove_child("cycle")
    +    save_mesh[0]["state"]["cycle"] = load_mesh[0]["state"]["cycle"]
    +
    +    # rename topo
    +    save_mesh[0]["topologies"].rename_child("mesh", "topo")
    +
    +    # rename fields
    +    save_mesh[0]["fields"].rename_child("braid", "mixed_2d_mesh_braid")
    +    save_mesh[0]["fields"].rename_child("vel", "mixed_2d_mesh_vel")
    +
    +    save_mesh[0]["fields"]["mixed_2d_mesh_braid"].remove_child("topology")
    +    save_mesh[0]["fields"]["mixed_2d_mesh_braid"]["topology"] = "topo"
    +    save_mesh[0]["fields"]["mixed_2d_mesh_vel"].remove_child("topology")
    +    save_mesh[0]["fields"]["mixed_2d_mesh_vel"]["topology"] = "topo"
    +
    +    save_mesh[0]["fields"]["mixed_2d_mesh_vel"]["values"].rename_child("u", "c0")
    +    save_mesh[0]["fields"]["mixed_2d_mesh_vel"]["values"].rename_child("v", "c1")
    +    save_mesh[0]["fields"]["mixed_2d_mesh_vel"]["values"]["c2"] = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
    +
    +    info = conduit.Node()
    +    diffval = load_mesh.diff(save_mesh, info)
    +    diff_str = info.to_yaml() if diffval else ""
    +    TestValueEQ(test_name, diff_str, "")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(mixed_topo)
    +
    +
    +RequiredDatabasePlugin("Blueprint")
    +test_basic()
    +# TODO add tests for json and yaml output when https://github.com/LLNL/conduit/issues/1291 is fixed
    +test_partition()
    +test_flatten()
    +
    +bp_mixed_topos_dir = "blueprint_v0.9.2_mixed_topo_data"
    +mixed_topo_2d = data_path(pjoin(bp_mixed_topos_dir, "mixed_mesh_simple_2d_hdf5.root"))
    +# we can't do the polygonal one because we are using generate_sides to get rid of the polygons,
    +# so round trip will fail.
    +# mixed_topo_2d_polygon = data_path(pjoin(bp_mixed_topos_dir, "mixed_mesh_polygonal_2d_hdf5.root"))
    +mixed_topo_3d = data_path(pjoin(bp_mixed_topos_dir, "mixed_mesh_simple_3d_hdf5.root"))
    +mixed_braid_2d = data_path(pjoin(bp_mixed_topos_dir, "braid_2d_examples_hdf5.root"))
    +# we can't do the polyhedral one because we are using generate_sides to get rid of the polyhedra,
    +# so round trip will fail.
    +# mixed_braid_3d = data_path(pjoin(bp_mixed_topos_dir, "braid_3d_examples_hdf5.root"))
    +
    +roundtrip_simple_mixed_topo(mixed_topo_2d, "mixed_topo_2d", "Mixed_topo_simple_2d_export")
    +roundtrip_simple_mixed_topo(mixed_topo_3d, "mixed_topo_3d", "Mixed_topo_simple_3d_export")
    +roundtrip_braid_mixed(mixed_braid_2d, "mixed_braid_2d", "Mixed_topo_braid_2d_export")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_blueprint_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_blueprint_py.html new file mode 100644 index 000000000..b0c367fbd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_blueprint_py.html @@ -0,0 +1,985 @@ +databases/blueprint.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  blueprint.py 
    +#
    +#  Tests:      blueprint hdf5 files 
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Thu Jun 16 10:56:37 PDT 2016
    +#
    +#  Modifications:
    +#
    +#    Alister Maguire, Fri Jul 17 16:29:50 PDT 2020
    +#    Added a test to ensure that variables containing parentheses
    +#    are able to be visualized.
    +#
    +#    Justin Privitera Fri 04 Mar 2022 05:57:49 PM PST
    +#    Added tests to test new implicit points topologies.
    +# 
    +#    Justin Privitera, Mon May 23 17:53:56 PDT 2022
    +#    Added polytopal tests.
    +# 
    +#    Justin Privitera, Mon May 23 17:53:56 PDT 2022
    +#    Added mfem lor tests.
    +#
    +#    Cyrus Harrison, Thu Dec 22 13:53:17 PST 2022
    +#    Added bp part map and initial strided structured tests/ 
    +#
    +#    Cyrus Harrison, Mon, Mar 20, 2023  3:34:04 PM 
    +#    Added rz test examples
    +# 
    +#    Justin Privitera, Wed Mar 22 16:09:52 PDT 2023
    +#    Added 1d curve test examples.
    +# 
    +#    Justin Privitera, Fri Mar 24 17:47:26 PDT 2023
    +#    Fixed view issue for mfem lor vector field tests.
    +#    Fixed an issue where test names had two consecutive underscores.
    +# 
    +#    Justin Privitera, Tue Sep 19 11:36:45 PDT 2023
    +#    Added a test for material numbers not in the range [0, N)
    +# 
    +#    Justin Privitera, Wed Oct 25 17:29:07 PDT 2023
    +#    Added a test for a polygonal mesh with no offsets.
    +# 
    +#    Justin Privitera, Thu Jan 18 14:53:32 PST 2024
    +#    Added test for unstructured points.
    +# 
    +#    Justin Privitera, Tue Mar 12 13:29:30 PDT 2024
    +#    Now that blueprint presents material ids alongside material names, we 
    +#    must use the ids and names to get specific materials.
    +# 
    +#    Justin Privitera, Fri Mar 15 15:56:13 PDT 2024
    +#    Revert prior change.
    +# 
    +#    Justin Privitera, Fri May  3 09:55:25 PDT 2024
    +#    Added test for Blueprint Uniform Coordset + Unstructured Topo.
    +# 
    +#    Justin Privitera, Sat Jun 29 14:22:21 PDT 2024
    +#    Added tests for mixed element topologies.
    +#
    +#    Brad Whitlock, Thu Jul 18 18:29:49 PDT 2024
    +#    Added mixed_tet_quad_2d test. Moved more tests into functions so it's
    +#    easier to select which ones to run while debugging.
    +# 
    +#    Justin Privitera, Fri Sep 27 12:09:46 PDT 2024
    +#    Added tests for specsets.
    +# 
    +#    Justin Privitera, Wed Oct 30 14:18:31 PDT 2024
    +#    Added tests that ensure periodic meshes fall back to legacy LOR when
    +#    new LOR is requested.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("Blueprint")
    +
    +from os.path import join as pjoin
    +
    +bp_test_dir = "blueprint_v0.3.1_test_data"
    +bp_venn_test_dir = "blueprint_v0.7.0_venn_test_data"
    +bp_mfem_test_dir = "blueprint_v0.3.1_mfem_test_data"
    +bp_0_8_2_test_dir = "blueprint_v0.8.2_braid_examples_test_data"
    +bp_poly_test_dir = "blueprint_v0.8.2_polytess_test_data"
    +bp_devilray_mfem_test_dir = "blueprint_v0.8.3_devilray_mfem_test_data"
    +bp_part_map_test_dir = "blueprint_v0.8.4_part_map_examples"
    +bp_struct_strided_test_dir = "blueprint_v0.8.4_strided_structured_examples"
    +bp_rz_test_dir = "blueprint_v0.8.6_rz_examples"
    +bp_1d_curve_test_dir = "blueprint_v0.8.6_1d_curve_examples"
    +bp_venn_modded_matnos_dir = "blueprint_v0.8.7_venn_modded_matnos_example"
    +bp_poly_no_offsets_dir = "blueprint_v0.8.7_polytopal_mesh_no_offsets"
    +bp_unstructured_points_dir = "blueprint_v0.8.7_unstructured_points"
    +bp_unstructured_uniform_dir = "blueprint_v0.9.1_uniform_coords_unstructured_topo"
    +bp_mixed_topos_dir = "blueprint_v0.9.2_mixed_topo_data"
    +bp_specset_dir = "blueprint_v0.9.2_specset_example"
    +
    +braid_2d_hdf5_root = data_path(pjoin(bp_test_dir,"braid_2d_examples.blueprint_root_hdf5"))
    +braid_3d_hdf5_root = data_path(pjoin(bp_test_dir,"braid_3d_examples.blueprint_root_hdf5"))
    +
    +braid_2d_json_root = data_path(pjoin(bp_test_dir,"braid_2d_examples_json.root"))
    +braid_3d_json_root = data_path(pjoin(bp_test_dir,"braid_3d_examples_json.root"))
    +
    +braid_2d_sidre_root = data_path(pjoin(bp_test_dir,"braid_2d_sidre_examples.root"))
    +braid_3d_sidre_root = data_path(pjoin(bp_test_dir,"braid_3d_sidre_examples.root"))
    +
    +braid_2d_0_8_2_hdf5_root = data_path(pjoin(bp_0_8_2_test_dir,"braid_2d_examples_hdf5.root"))
    +braid_3d_0_8_2_hdf5_root = data_path(pjoin(bp_0_8_2_test_dir,"braid_3d_examples_hdf5.root"))
    +braid_2d_0_8_2_yaml_root = data_path(pjoin(bp_0_8_2_test_dir,"braid_2d_examples_yaml.root"))
    +braid_3d_0_8_2_yaml_root = data_path(pjoin(bp_0_8_2_test_dir,"braid_3d_examples_yaml.root"))
    +
    +poly_2d_hdf5_root = data_path(pjoin(bp_poly_test_dir,"polytess_example_hdf5.root"))
    +poly_2d_yaml_root = data_path(pjoin(bp_poly_test_dir,"polytess_example_yaml.root"))
    +poly_3d_hdf5_root = data_path(pjoin(bp_poly_test_dir,"polytess_3d_example_hdf5.root"))
    +poly_3d_yaml_root = data_path(pjoin(bp_poly_test_dir,"polytess_3d_example_yaml.root"))
    +
    +uniform_root = data_path(pjoin(bp_test_dir,"uniform.cycle_001038.root"))
    +
    +unstructured_points = data_path(pjoin(bp_unstructured_points_dir,"unstructured_points.cycle_000100.root"))
    +
    +uniform_unstructured = data_path(pjoin(bp_unstructured_uniform_dir,"partition.root"))
    +
    +mixed_topo_2d = data_path(pjoin(bp_mixed_topos_dir, "mixed_mesh_simple_2d_hdf5.root"))
    +mixed_topo_2d_polygon = data_path(pjoin(bp_mixed_topos_dir, "mixed_mesh_polygonal_2d_hdf5.root"))
    +mixed_topo_3d = data_path(pjoin(bp_mixed_topos_dir, "mixed_mesh_simple_3d_hdf5.root"))
    +mixed_braid_2d = data_path(pjoin(bp_mixed_topos_dir, "braid_2d_examples_hdf5.root"))
    +mixed_braid_3d = data_path(pjoin(bp_mixed_topos_dir, "braid_3d_examples_hdf5.root"))
    +mixed_tet_quad_2d = data_path(pjoin(bp_mixed_topos_dir, "mixed_mesh_tri_quad_2d_hdf5.root"))
    +mixed_offsets_2d = data_path(pjoin(bp_mixed_topos_dir, "mixed_topo_with_offsets.root"))
    +
    +misc_specsets = data_path(pjoin(bp_specset_dir, "misc_specsets.cycle_000100.root"))
    +
    +#
    +# venn test data (multi material)
    +#
    +
    +venn_full_root  =  data_path(pjoin(bp_venn_test_dir,
    +                             "venn_small_example_full_hdf5.root"))
    +venn_s_by_e_root  =  data_path(pjoin(bp_venn_test_dir,
    +                               "venn_small_example_sparse_by_element_hdf5.root"))
    +
    +venn_s_by_m_root  =  data_path(pjoin(bp_venn_test_dir,
    +                               "venn_small_example_sparse_by_material_hdf5.root"))
    +
    +venn_full_yaml_root  =  data_path(pjoin(bp_venn_test_dir,
    +                             "venn_small_example_full_yaml.root"))
    +venn_s_by_e_yaml_root  =  data_path(pjoin(bp_venn_test_dir,
    +                               "venn_small_example_sparse_by_element_yaml.root"))
    +
    +venn_s_by_m_yaml_root  =  data_path(pjoin(bp_venn_test_dir,
    +                               "venn_small_example_sparse_by_material_yaml.root"))
    +
    +venn_modded_matnos_root = data_path(pjoin(bp_venn_modded_matnos_dir,
    +                                "venn_w_modded_matnos.root"))
    +
    +polytopal_mesh_no_offsets_root = data_path(pjoin(bp_poly_no_offsets_dir,
    +                                "polytopal_mesh_no_offsets.root"))
    +
    +bp_part_map_root = data_path(pjoin(bp_part_map_test_dir,
    +                             "tout_custom_part_map_index_hdf5.root"))
    +
    +bp_part_map_single_file_root = data_path(pjoin(bp_part_map_test_dir,
    +                                         "tout_single_file_part_map_index_hdf5.root"))
    +
    +bp_spiral_part_map_examples = []
    +for i in range(-1,9):
    +    bp_spiral_part_map_examples.append(data_path(pjoin(bp_part_map_test_dir,
    +                                       "tout_relay_spiral_mesh_save_nfiles_{0}.cycle_000000.root".format(i))))
    +
    +bp_sparse_topos_root = data_path(pjoin(bp_part_map_test_dir,
    +                                        "tout_relay_bp_mesh_sparse_topos_hdf5.root"))
    +
    +
    +bp_struct_strided_2d_root = data_path(pjoin(bp_struct_strided_test_dir,
    +                                      "strided_structured_2d_hdf5.root"));
    +
    +
    +bp_struct_strided_3d_root = data_path(pjoin(bp_struct_strided_test_dir,
    +                                      "strided_structured_3d_hdf5.root"));
    +
    +bp_rz_examples = []
    +bp_rz_examples.append(data_path(pjoin(bp_rz_test_dir,"blueprint_rz_cyl_rectilinear.root")))
    +bp_rz_examples.append(data_path(pjoin(bp_rz_test_dir,"blueprint_rz_cyl_uniform.root")))
    +bp_rz_examples.append(data_path(pjoin(bp_rz_test_dir,"blueprint_rz_cyl_structured.root")))
    +bp_rz_examples.append(data_path(pjoin(bp_rz_test_dir,"blueprint_rz_cyl_unstructured.root")))
    +
    +bp_1d_curve_examples = [data_path(pjoin(bp_1d_curve_test_dir,"curves_1d.root"))]
    +
    +braid_2d_meshes = ["points", "uniform", "rect", "struct", "tris","quads"]
    +braid_3d_meshes = ["points", "uniform", "rect", "struct", "tets","hexs"]
    +
    +braid_2d_meshes_0_8_2 = ["points", "uniform", "rect", "struct", "tris","quads", "points_implicit"]
    +braid_3d_meshes_0_8_2 = ["points", "uniform", "rect", "struct", "tets","hexs", "points_implicit"]
    +
    +class mfem_ex9_example:
    +    def __init__(self, name, dim):
    +        self.name = name
    +        self.dim = dim
    +
    +mfem_ex9_examples = []
    +mfem_ex9_examples.append(mfem_ex9_example("periodic_cube", "3d"))
    +mfem_ex9_examples.append(mfem_ex9_example("star_q3", "3d"))
    +mfem_ex9_examples.append(mfem_ex9_example("periodic_hexagon", "2d"))
    +mfem_ex9_protocols = ["json","conduit_bin","conduit_json","hdf5"]
    +
    +class devilray_mfem_example:
    +    def __init__(self, name, number, pseudo_fields, vector_fields, dim):
    +        self.name = name
    +        self.number = number
    +        self.pseudo_fields = pseudo_fields
    +        self.vector_fields = vector_fields
    +        self.dim = dim
    +
    +devilray_mfem_examples = []
    +devilray_mfem_examples.append(devilray_mfem_example("esher", "000000", ["mesh_nodes_magnitude"], [], "3d"))
    +devilray_mfem_examples.append(devilray_mfem_example("laghos_tg.cycle", "000350", ["mesh_nodes_magnitude", "density", "specific_internal_energy", "velocity_magnitude"], ["velocity"], "3d"))
    +devilray_mfem_examples.append(devilray_mfem_example("taylor_green.cycle", "001860", ["mesh_nodes_magnitude", "density", "specific_internal_energy", "velocity_magnitude"], ["velocity"], "3d"))
    +devilray_mfem_examples.append(devilray_mfem_example("tri_beam", "000000", ["mesh_nodes_magnitude"], ["mesh_nodes"], "2d"))
    +devilray_mfem_examples.append(devilray_mfem_example("warbly_cube", "000000", ["mesh_nodes_magnitude"], [], "3d"))
    +
    +def full_mesh_name(mesh_name):
    +    return mesh_name + "_mesh"
    +
    +def full_var_name(mesh_name,var_name):
    +    return full_mesh_name(mesh_name) + "/" + var_name
    +
    +def mfem_test_file(name, protocol):
    +    return data_path(pjoin(bp_mfem_test_dir,"bp_mfem_ex9_%s_%s_000000.root" % ( name, protocol)))
    +
    +def devilray_mfem_test_file(name, number):
    +    return data_path(pjoin(bp_devilray_mfem_test_dir, name + "_" + number + ".root"))
    +
    +def set_3d_view():
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.510614, 0.302695, 0.804767)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (-0.0150532, 0.932691, -0.360361)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 0.5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +def set_3d_poly_view():
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.50151, -0.632781, 0.589979)
    +    v.focus = (-2.46025e-13, 6.43929e-14, 4.5)
    +    v.viewUp = (0.364523, 0.463898, 0.807416)
    +    v.viewAngle = 30
    +    v.parallelScale = 7.93494
    +    v.nearPlane = -15.8699
    +    v.farPlane = 15.8699
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (-2.46025e-13, 6.43929e-14, 4.5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +
    +def set_test_view(tag_name):
    +    if "3d" in tag_name:
    +        if "poly" in tag_name:
    +            set_3d_poly_view()
    +        else:
    +            set_3d_view()
    +    else:
    +        ResetView()
    +
    +def test(mesh_name,tag_name):
    +    #
    +    AddPlot("Mesh","%s" % full_mesh_name(mesh_name))
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_" +  mesh_name + "_mesh")
    +    DeleteAllPlots()
    +    ResetView()
    +    #
    +    AddPlot("Pseudocolor", full_var_name(mesh_name,"braid"))
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_" +  mesh_name + "_braid")
    +    DeleteAllPlots()
    +    ResetView()
    +    #
    +    AddPlot("Pseudocolor", full_var_name(mesh_name,"radial"))
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_" +  mesh_name + "_radial")
    +    DeleteAllPlots()
    +    ResetView()
    +
    +def test_poly(tag_name):
    +    #
    +    AddPlot("Mesh", "mesh_topo")
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_mesh_topo_mesh")
    +    DeleteAllPlots()
    +    ResetView()
    +    #
    +    AddPlot("Pseudocolor", "mesh_topo/level")
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_mesh_topo_level")
    +    DeleteAllPlots()
    +    ResetView()
    +
    +def test_mfem(tag_name, example_name, protocol):
    +    readOptions = GetDefaultFileOpenOptions("Blueprint")
    +    readOptions["MFEM LOR Setting"] = "Legacy LOR"
    +    SetDefaultFileOpenOptions("Blueprint", readOptions)
    +
    +    dbfile = mfem_test_file(example_name,protocol)
    +    OpenDatabase(dbfile)
    +    #
    +    AddPlot("Pseudocolor", "mesh_main/solution")
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_" +  example_name + "_" + protocol + "_sol")
    +    #
    +    DeleteAllPlots()
    +    ResetView()
    +    AddPlot("Pseudocolor", "mesh_main/element_coloring")
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_" +  example_name + "_" + protocol + "_ele_coloring")
    +    #
    +    DeleteAllPlots()
    +    ResetView()
    +    AddPlot("Pseudocolor", "mesh_main/element_attribute")
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_" +  example_name + "_" + protocol + "_ele_att")
    +    #
    +    DeleteAllPlots()
    +    ResetView()
    +
    +    CloseDatabase(dbfile)
    +
    +    # reset read options to default
    +    readOptions["MFEM LOR Setting"] = "MFEM LOR"
    +    SetDefaultFileOpenOptions("Blueprint", readOptions)
    +
    +    # check periodic results fall back to old LOR
    +    if "periodic" in example_name:
    +        dbfile = mfem_test_file(example_name,protocol)
    +        OpenDatabase(dbfile)
    +        #
    +        AddPlot("Pseudocolor", "mesh_main/solution")
    +        set_test_view(tag_name)
    +        DrawPlots()
    +        Test(tag_name + "_" +  example_name + "_" + protocol + "_fall_back_to_old_LOR_sol")
    +        #
    +        DeleteAllPlots()
    +        ResetView()
    +        AddPlot("Pseudocolor", "mesh_main/element_coloring")
    +        set_test_view(tag_name)
    +        DrawPlots()
    +        Test(tag_name + "_" +  example_name + "_" + protocol + "_fall_back_to_old_LOR_ele_coloring")
    +        #
    +        DeleteAllPlots()
    +        ResetView()
    +        AddPlot("Pseudocolor", "mesh_main/element_attribute")
    +        set_test_view(tag_name)
    +        DrawPlots()
    +        Test(tag_name + "_" +  example_name + "_" + protocol + "_fall_back_to_old_LOR_ele_att")
    +        #
    +        DeleteAllPlots()
    +        ResetView()
    +
    +        CloseDatabase(dbfile)
    +
    +def test_mfem_lor_mesh(tag_name, example_name, protocol, devilray = False, number = "000000"):
    +    dbfile = ""
    +    if (devilray):
    +        dbfile = devilray_mfem_test_file(example_name, number)
    +    else:
    +        dbfile = mfem_test_file(example_name, protocol)
    +
    +    # get default options
    +    readOptions = GetDefaultFileOpenOptions("Blueprint")
    +    readOptions["MFEM LOR Setting"] = "MFEM LOR"
    +    SetDefaultFileOpenOptions("Blueprint", readOptions)
    +    OpenDatabase(dbfile)
    +
    +    # we want to test a picture of a wireframe
    +    # new LOR should only have the outer edge
    +    AddPlot("Subset", "mesh_main")
    +    SubsetAtts = SubsetAttributes()
    +    SubsetAtts.wireframe = 1
    +    SetPlotOptions(SubsetAtts)
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_" +  example_name + ("_" + protocol if not devilray else "") + "_lor")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(dbfile)
    +
    +    ##############################
    +
    +    # examine legacy
    +    readOptions = GetDefaultFileOpenOptions("Blueprint")
    +    readOptions["MFEM LOR Setting"] = "Legacy LOR"
    +    SetDefaultFileOpenOptions("Blueprint", readOptions)
    +    OpenDatabase(dbfile)
    +
    +    # old LOR leaves a busy wireframe
    +    AddPlot("Subset", "mesh_main")
    +    SubsetAtts = SubsetAttributes()
    +    SubsetAtts.wireframe = 1
    +    SetPlotOptions(SubsetAtts)
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_" +  example_name + ("_" + protocol if not devilray else "") + "_legacy_lor")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(dbfile)
    +
    +    # restore default
    +    readOptions = GetDefaultFileOpenOptions("Blueprint")
    +    readOptions["MFEM LOR Setting"] = "MFEM LOR"
    +    SetDefaultFileOpenOptions("Blueprint", readOptions)
    +
    +def test_mfem_lor_field(tag_name, name, number, pseudocolor_fields, vector_fields):
    +    readOptions = GetDefaultFileOpenOptions("Blueprint")
    +    readOptions["MFEM LOR Setting"] = "MFEM LOR"
    +    SetDefaultFileOpenOptions("Blueprint", readOptions)
    +    dbfile = devilray_mfem_test_file(name, number)
    +    OpenDatabase(dbfile)
    +
    +    for field in pseudocolor_fields:
    +        AddPlot("Pseudocolor", "mesh_main/" + field, 1, 1)
    +        AddOperator("MultiresControl", 1)
    +        SetActivePlots(0)
    +        MultiresControlAtts = MultiresControlAttributes()
    +        MultiresControlAtts.resolution = 3
    +        SetOperatorOptions(MultiresControlAtts, 0, 1)
    +        set_test_view(tag_name)
    +        DrawPlots()
    +        Test(tag_name + "_" + name + "_pseudocolor_" + field + "_lor")
    +        DeleteAllPlots()
    +        ResetView()
    +
    +    for field in vector_fields:
    +        AddPlot("Vector", "mesh_main/" + field, 1, 1)
    +        AddOperator("MultiresControl", 1)
    +        SetActivePlots(0)
    +        MultiresControlAtts = MultiresControlAttributes()
    +        MultiresControlAtts.resolution = 3
    +        SetOperatorOptions(MultiresControlAtts, 0, 1)
    +        set_test_view(tag_name)
    +        DrawPlots()
    +        Test(tag_name + "_" + name + "_vector_" + field + "_lor")
    +        DeleteAllPlots()
    +        ResetView()
    +
    +    CloseDatabase(dbfile)
    +
    +def test_venn(tag_name, venn_db_file):
    +    TestSection("Blueprint Matset Example Tests: {0} ".format(tag_name))
    +    OpenDatabase(venn_db_file)
    +    AddPlot("Pseudocolor", "mesh_topo/mat_check")
    +    set_test_view(tag_name)
    +    DrawPlots()
    +    Test(tag_name + "_mat_check")
    +    # value check
    +    Query("minmax")
    +    res = GetQueryOutputObject()
    +    print(res)
    +    # We expect:
    +    #int(res["max"]) == 4320
    +    #int(res["min"]) == 1
    +    TestValueEQ("testeq_t_mat_check_max",int(res["max"]),4320)
    +    TestValueEQ("testeq_mat_check_min",int(res["min"]),1)
    +    DeleteAllPlots()
    +    ResetView()
    +
    +
    +    TestSection("Blueprint Matset Example Tests: {0} Matvf Exprs".format(tag_name))
    +
    +    # check all volume fractions
    +    vf_exprs = {"vf_bg":'matvf(mesh_topo_matset,"background")',
    +                "vf_c_a":'matvf(mesh_topo_matset,"circle_a")',
    +                "vf_c_b":'matvf(mesh_topo_matset,"circle_b")',
    +                "vf_c_c":'matvf(mesh_topo_matset,"circle_c")'}
    +
    +    for ename,edef in vf_exprs.items():
    +        DefineScalarExpression(ename,edef);
    +        AddPlot("Pseudocolor", ename)
    +        set_test_view(tag_name)
    +        DrawPlots()
    +        Test(tag_name + "_" + ename)
    +        # value check
    +        Query("minmax")
    +        res = GetQueryOutputObject()
    +        print(res)
    +        # We expect:
    +        #res["max"] == 1.0
    +        #res["min"] == 0.0
    +        TestValueEQ("testeq_" + ename + "_max",res["max"],1.0)
    +        TestValueEQ("testeq_" + ename + "_min",res["min"],0.0)
    +        DeleteAllPlots()
    +        ResetView()
    +
    +    TestSection("Blueprint Matset Example Tests: {0} Val4mat Exprs".format(tag_name))
    +
    +    # check all volume fractions
    +    v4m_exprs = {"v4m_bg":'val4mat(<mesh_topo/mat_check>,"background")',
    +                 "v4m_c_a":'val4mat(<mesh_topo/mat_check>,"circle_a")',
    +                 "v4m_c_b":'val4mat(<mesh_topo/mat_check>,"circle_b")',
    +                 "v4m_c_c":'val4mat(<mesh_topo/mat_check>,"circle_c")'}
    +
    +    v4m_test_vals = {"v4m_bg":     1,
    +                     "v4m_c_a":   20,
    +                     "v4m_c_b":  300,
    +                     "v4m_c_c": 4000}
    +
    +    for ename,edef in v4m_exprs.items():
    +        DefineScalarExpression(ename,edef);
    +        AddPlot("Pseudocolor", ename)
    +        set_test_view(tag_name)
    +        DrawPlots()
    +        Test(tag_name + "_" + ename)
    +        # value check
    +        Query("minmax")
    +        # We expect:
    +        res = GetQueryOutputObject()
    +        print(res)
    +        #int(res["max"]) == v4m_test_vals[ename]
    +        #int(res["min"]) == 0
    +        TestValueEQ("testeq_" + ename + "_max",int(res["max"]),v4m_test_vals[ename])
    +        TestValueEQ("testeq_" + ename + "_min",int(res["min"]),0)
    +        DeleteAllPlots()
    +        ResetView()
    +
    +
    +    CloseDatabase(venn_db_file)
    +
    +def test_rz_example(tag_name, rz_db_file):
    +    OpenDatabase(rz_db_file)
    +    AddPlot("Pseudocolor", "mesh_topo/cyl")
    +    AddPlot("Mesh", "mesh_topo")
    +    DrawPlots()
    +    ResetView()
    +    Test(tag_name + "_plot_2D")
    +    DeleteAllPlots()
    +    ResetView()
    +    # now revolve
    +    AddPlot("Pseudocolor", "mesh_topo/cyl")
    +    AddOperator("Revolve")
    +    DrawPlots()
    +    ResetView()
    +    Test(tag_name + "_plot_revolved_to_3D")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(rz_db_file)
    +
    +
    +def test_paren_vars():
    +    TestSection("Variables With Parens")
    +
    +    #
    +    # Testing bugfix for issue #4882.
    +    #
    +    OpenDatabase(uniform_root)
    +    AddPlot("Pseudocolor", "mesh_topo/rho.Y_lp_CH2O_rp_")
    +    set_test_view("3d")
    +    DrawPlots()
    +    Test("paren_vars_00")
    +
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(uniform_root)
    +
    +def test_blueprint_json_hdf5():
    +    TestSection("2D Example JSON Mesh Files")
    +    OpenDatabase(braid_2d_json_root)
    +    for mesh_name in braid_2d_meshes:
    +        test(mesh_name,"blueprint_2d_json")
    +    CloseDatabase(braid_2d_json_root)
    +
    +    TestSection("2D Example HDF5 Mesh Files")
    +    OpenDatabase(braid_2d_hdf5_root)
    +    for mesh_name in braid_2d_meshes:
    +        test(mesh_name,"blueprint_2d_hdf5")
    +    CloseDatabase(braid_2d_hdf5_root)
    +
    +    TestSection("2D Example Sidre HDF5 Mesh Files")
    +    OpenDatabase(braid_2d_sidre_root)
    +    for mesh_name in braid_2d_meshes:
    +        test(mesh_name,"blueprint_2d_sidre_hdf5")
    +    CloseDatabase(braid_2d_sidre_root)
    +
    +    TestSection("3D Example JSON Mesh Files")
    +    OpenDatabase(braid_3d_json_root)
    +    for mesh_name in braid_3d_meshes:
    +        test(mesh_name,"blueprint_3d_json")
    +    CloseDatabase(braid_3d_json_root)
    +
    +    TestSection("3D Example HDF5 Mesh Files")
    +    OpenDatabase(braid_3d_hdf5_root)
    +    for mesh_name in braid_3d_meshes:
    +        test(mesh_name,"blueprint_3d_hdf5")
    +    CloseDatabase(braid_3d_hdf5_root)
    +
    +    TestSection("3D Example Sidre HDF5 Mesh Files")
    +    OpenDatabase(braid_3d_sidre_root)
    +    for mesh_name in braid_3d_meshes:
    +        test(mesh_name,"blueprint_3d_sidre_hdf5")
    +    CloseDatabase(braid_3d_sidre_root)
    +
    +def test_blueprint_MFEM():
    +    TestSection("MFEM Blueprint Example Data Tests")
    +    for example in mfem_ex9_examples:
    +        for protocol in mfem_ex9_protocols:
    +            test_mfem("blueprint_mfem_" + example.dim, example.name, protocol)
    +
    +    TestSection("MFEM LOR Mesh Blueprint Tests")
    +    for example in mfem_ex9_examples:
    +        for protocol in mfem_ex9_protocols:
    +            test_mfem_lor_mesh("blueprint_mfem_" + example.dim, example.name, protocol)
    +    for example in devilray_mfem_examples:
    +        test_mfem_lor_mesh("blueprint_mfem_" + example.dim, example.name, "", devilray = True, number = example.number)
    +
    +    TestSection("MFEM LOR Field Blueprint Tests")
    +    for example in devilray_mfem_examples:
    +        test_mfem_lor_field("blueprint_mfem_" + example.dim, example.name, example.number, example.pseudo_fields, example.vector_fields)
    +
    +def test_blueprint_expressions():
    +    TestSection("Blueprint Expressions")
    +    OpenDatabase(braid_2d_json_root)
    +    AddPlot("Pseudocolor", "uniform_mesh/scalar_expr")
    +    AddPlot("Vector", "uniform_mesh/vector_expr")
    +    DrawPlots()
    +    set_test_view("2d")
    +    Test("blueprint_expressions")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(braid_2d_json_root)
    +
    +    test_paren_vars()
    +
    +def test_blueprint_venn():
    +    test_venn("venn_small_full", venn_full_root)
    +    test_venn("venn_small_sparse_by_element", venn_s_by_e_root)
    +    test_venn("venn_small_sparse_by_material", venn_s_by_m_root)
    +
    +    test_venn("venn_small_full_yaml", venn_full_yaml_root)
    +    test_venn("venn_small_sparse_by_element_yaml", venn_s_by_e_yaml_root)
    +    test_venn("venn_small_sparse_by_material_yaml", venn_s_by_m_yaml_root)
    +
    +    TestSection("Venn With Modded Material Numbers, 0.8.7")
    +    OpenDatabase(venn_modded_matnos_root)
    +    AddPlot("FilledBoundary", "mesh_topo_matset")
    +    DrawPlots()
    +    ResetView()
    +    Test("Venn_with_modded_matnos")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(venn_modded_matnos_root)
    +
    +def test_blueprint_0_8_2():
    +    TestSection("2D Example HDF5 Mesh Files, 0.8.2")
    +    OpenDatabase(braid_2d_0_8_2_hdf5_root)
    +    for mesh_name in braid_2d_meshes_0_8_2:
    +        test(mesh_name,"blueprint_2d_hdf5_0_8_2")
    +    CloseDatabase(braid_2d_0_8_2_hdf5_root)
    +
    +    TestSection("2D Example YAML Mesh Files, 0.8.2")
    +    OpenDatabase(braid_2d_0_8_2_yaml_root)
    +    for mesh_name in braid_2d_meshes_0_8_2:
    +        test(mesh_name,"blueprint_2d_yaml_0_8_2")
    +    CloseDatabase(braid_2d_0_8_2_yaml_root)
    +
    +    TestSection("3D Example HDF5 Mesh Files, 0.8.2")
    +    OpenDatabase(braid_3d_0_8_2_hdf5_root)
    +    for mesh_name in braid_3d_meshes_0_8_2:
    +        test(mesh_name,"blueprint_3d_hdf5_0_8_2")
    +    CloseDatabase(braid_3d_0_8_2_hdf5_root)
    +
    +    TestSection("3D Example YAML Mesh Files, 0.8.2")
    +    OpenDatabase(braid_3d_0_8_2_yaml_root)
    +    for mesh_name in braid_3d_meshes_0_8_2:
    +        test(mesh_name,"blueprint_3d_yaml_0_8_2")
    +    CloseDatabase(braid_3d_0_8_2_yaml_root)
    +
    +    # test polygonal mesh
    +    TestSection("Polygonal 2D Example HDF5 Mesh Files, 0.8.2")
    +    OpenDatabase(poly_2d_hdf5_root)
    +    test_poly("blueprint_poly_2d_hdf5_0_8_2")
    +    CloseDatabase(poly_2d_hdf5_root)
    +
    +    TestSection("Polygonal 2D Example YAML Mesh Files, 0.8.2")
    +    OpenDatabase(poly_2d_yaml_root)
    +    test_poly("blueprint_poly_2d_yaml_0_8_2")
    +    CloseDatabase(poly_2d_yaml_root)
    +
    +    # test 3d polygonal mesh
    +    TestSection("Polygonal 3D Example HDF5 Mesh Files, 0.8.2")
    +    OpenDatabase(poly_3d_hdf5_root)
    +    test_poly("blueprint_poly_3d_hdf5_0_8_2")
    +    CloseDatabase(poly_3d_hdf5_root)
    +
    +    TestSection("Polygonal 3D Example YAML Mesh Files, 0.8.2")
    +    OpenDatabase(poly_3d_yaml_root)
    +    test_poly("blueprint_poly_3d_yaml_0_8_2")
    +    CloseDatabase(poly_3d_yaml_root)
    +
    +def test_blueprint_0_8_4():
    +    TestSection("Blueprint with Partition Map Style Index, 0.8.4")
    +    OpenDatabase(bp_part_map_root)
    +    AddPlot("Subset","domains")
    +    DrawPlots()
    +    Test("bp_part_map_index_example")
    +    DeleteAllPlots()
    +    CloseDatabase(bp_part_map_root)
    +    # single file test case
    +    OpenDatabase(bp_part_map_single_file_root)
    +    AddPlot("Pseudocolor","mesh_mesh/braid")
    +    DrawPlots()
    +    Test("bp_part_map_index_single_file_example")
    +    DeleteAllPlots()
    +    CloseDatabase(bp_part_map_single_file_root)
    +    # sparse topos case
    +    # single file test case
    +    OpenDatabase(bp_sparse_topos_root)
    +    AddPlot("Pseudocolor","mesh_topo/topo_field")
    +    AddPlot("Pseudocolor","mesh_pts_topo/pts_field")
    +    # change plot adds so we can see the points
    +    pc_atts = PseudocolorAttributes()
    +    pc_atts.pointSize = 1
    +    pc_atts.pointType = pc_atts.Sphere
    +    SetPlotOptions(pc_atts)
    +    DrawPlots()
    +    Test("bp_sparse_topos_example")
    +    DeleteAllPlots()
    +    CloseDatabase(bp_sparse_topos_root)
    +
    +    # other spiral test cases, which have both index styles
    +    for i, root_file in enumerate(bp_spiral_part_map_examples):
    +        OpenDatabase(root_file)
    +        AddPlot("Subset","domains")
    +        DrawPlots()
    +        # spiral cases are labeled -1 to 8
    +        case_name = "bp_part_map_spiral_case_{0}".format(i-1)
    +        Test(case_name)
    +        DeleteAllPlots()
    +        CloseDatabase(root_file)
    +
    +    TestSection("Blueprint Strided Structured, 0.8.4")
    +    # 2d
    +    OpenDatabase(bp_struct_strided_2d_root)
    +    # ele vals
    +    AddPlot("Pseudocolor", "mesh_mesh/ele_vals")
    +    AddPlot("Pseudocolor", "mesh_orig_pts/orig_ele_vals")
    +    pc_atts = PseudocolorAttributes()
    +    pc_atts.pointSize = 0.5
    +    pc_atts.pointType = pc_atts.Sphere
    +    SetPlotOptions(pc_atts)
    +    DrawPlots()
    +    Test("bp_strided_struct_2d_ele_vals")
    +    DeleteAllPlots()
    +    # vert vals
    +    AddPlot("Pseudocolor", "mesh_mesh/vert_vals")
    +    AddPlot("Pseudocolor", "mesh_orig_pts/orig_vert_vals")
    +    pc_atts = PseudocolorAttributes()
    +    pc_atts.pointSize = 0.5
    +    pc_atts.pointType = pc_atts.Sphere
    +    SetPlotOptions(pc_atts)
    +    DrawPlots()
    +    Test("bp_strided_struct_2d_vert_vals")
    +    DeleteAllPlots()
    +    CloseDatabase(bp_struct_strided_2d_root)
    +
    +    # 2d
    +    OpenDatabase(bp_struct_strided_3d_root)
    +    # ele vals
    +    AddPlot("Pseudocolor", "mesh_mesh/ele_vals")
    +    AddPlot("Pseudocolor", "mesh_orig_pts/orig_ele_vals")
    +    pc_atts = PseudocolorAttributes()
    +    pc_atts.pointSize = 0.5
    +    pc_atts.pointType = pc_atts.Sphere
    +    SetPlotOptions(pc_atts)
    +    DrawPlots()
    +    Test("bp_strided_struct_3d_ele_vals")
    +    DeleteAllPlots()
    +    # vert vals
    +    AddPlot("Pseudocolor", "mesh_mesh/vert_vals")
    +    AddPlot("Pseudocolor", "mesh_orig_pts/orig_vert_vals")
    +    pc_atts = PseudocolorAttributes()
    +    pc_atts.pointSize = 0.5
    +    pc_atts.pointType = pc_atts.Sphere
    +    SetPlotOptions(pc_atts)
    +    DrawPlots()
    +    Test("bp_strided_struct_3d_vert_vals")
    +    DeleteAllPlots()
    +    CloseDatabase(bp_struct_strided_3d_root)
    +
    +def test_blueprint_0_8_6():
    +    TestSection("Blueprint RZ Examples, 0.8.6")
    +    for db in bp_rz_examples:
    +        tag_name = os.path.basename(os.path.split(db)[1])
    +        test_rz_example(tag_name,db)
    +
    +    TestSection("Blueprint 1D Curve Examples, 0.8.6")
    +    for db in bp_1d_curve_examples:
    +        OpenDatabase(db)
    +        AddPlot("Curve", "mesh_topo/field_v")
    +        DrawPlots()
    +        Test("blueprint_1d_curve_vertex_assoc")
    +        DeleteAllPlots()
    +        AddPlot("Curve", "mesh_topo/field_e")
    +        DrawPlots()
    +        Test("blueprint_1d_curve_element_assoc")
    +        DeleteAllPlots()
    +        CloseDatabase(db)
    +
    +def test_blueprint_0_8_7():
    +    TestSection("Blueprint Polytopal Mesh Missing Offsets, 0.8.7")
    +    OpenDatabase(polytopal_mesh_no_offsets_root)
    +    AddPlot("Mesh", "mesh_test")
    +    AddPlot("Pseudocolor", "mesh_test/field")
    +    DrawPlots()
    +    ResetView()
    +    Test("Polytopal_mesh_missing_offsets")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(polytopal_mesh_no_offsets_root)
    +
    +    TestSection("Blueprint Unstructured Points not using the entire coordset, 0.8.7")
    +    OpenDatabase(unstructured_points)
    +    AddPlot("Pseudocolor", "mesh_mesh/braid", 1, 1)
    +    SetActivePlots(0)
    +    PseudocolorAtts = PseudocolorAttributes()
    +    PseudocolorAtts.pointSizePixels = 20
    +    SetPlotOptions(PseudocolorAtts)
    +    AddPlot("Label", "mesh_mesh/braid", 1, 1)
    +    DrawPlots()
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (-0.64536, -0.104723, 0.756666)
    +    View3DAtts.focus = (10, 0, 0)
    +    View3DAtts.viewUp = (-0.0863273, 0.994211, 0.0639709)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 14.1421
    +    View3DAtts.nearPlane = -28.2843
    +    View3DAtts.farPlane = 28.2843
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (10, 0, 0)
    +    SetView3D(View3DAtts)
    +    DrawPlots()
    +    Test("Unstructured_points_not_using_entire_coordset")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(unstructured_points)
    +
    +def test_blueprint_0_9_1():
    +    TestSection("Blueprint Uniform Coordset + Unstructured Topo, 0.9.1")
    +    OpenDatabase(uniform_unstructured)
    +    AddPlot("Mesh", "mesh_topo", 1, 1)
    +    DrawPlots()
    +    AddPlot("Subset", "domains", 1, 1)
    +    DrawPlots()
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (-0.520784, 0.423114, 0.741457)
    +    View3DAtts.focus = (5, 5, 5)
    +    View3DAtts.viewUp = (0.238073, 0.906059, -0.349827)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 8.66025
    +    View3DAtts.nearPlane = -17.3205
    +    View3DAtts.farPlane = 17.3205
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 0.826446
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (5, 5, 5)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +    Test("Uniform_coordset_and_unstructured_topo")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(uniform_unstructured)
    +
    +def mixed_test(db_name, meshplot_name, pseudocolor_plot_name, label_plot_name, test_name, view=False):
    +    OpenDatabase(db_name)
    +    AddPlot("Mesh", meshplot_name)
    +    AddPlot("Pseudocolor", pseudocolor_plot_name)
    +    if len(label_plot_name) > 0:
    +        AddPlot("Label", label_plot_name)
    +    DrawPlots()
    +    if view:
    +        View3DAtts = View3DAttributes()
    +        View3DAtts.viewNormal = (-0.561705, 0.419207, 0.713269)
    +        View3DAtts.focus = (0, 0, 0)
    +        View3DAtts.viewUp = (0.238433, 0.907571, -0.345636)
    +        View3DAtts.viewAngle = 30
    +        View3DAtts.parallelScale = 17.3205
    +        View3DAtts.nearPlane = -34.641
    +        View3DAtts.farPlane = 34.641
    +        View3DAtts.imagePan = (0, 0)
    +        View3DAtts.imageZoom = 0.826446
    +        View3DAtts.perspective = 1
    +        View3DAtts.eyeAngle = 2
    +        View3DAtts.centerOfRotationSet = 0
    +        View3DAtts.centerOfRotation = (0, 0, 0)
    +        View3DAtts.axis3DScaleFlag = 0
    +        View3DAtts.axis3DScales = (1, 1, 1)
    +        View3DAtts.shear = (0, 0, 1)
    +        View3DAtts.windowValid = 1
    +        SetView3D(View3DAtts)
    +    else:
    +        ResetView()
    +    Test(test_name)
    +    ResetView()
    +    DeleteAllPlots()
    +    CloseDatabase(db_name)
    +
    +def test_blueprint_0_9_2():
    +    TestSection("Blueprint Mixed Topos, 0.9.2")
    +    mixed_test(mixed_topo_2d, "mesh_topo", "mesh_topo/ele_id", "mesh_pts", "Mixed_topo_simple_2d")
    +    mixed_test(mixed_topo_2d_polygon, "mesh_topo", "mesh_topo/ele_id", "mesh_pts", "Mixed_topo_polygonal_2d")
    +    mixed_test(mixed_topo_3d, "mesh_topo", "mesh_topo/ele_id", "mesh_pts", "Mixed_topo_simple_3d")
    +    mixed_test(mixed_braid_2d, "mixed_2d_mesh", "mixed_2d_mesh/braid", "mixed_2d_mesh", "Mixed_braid_2d")
    +    mixed_test(mixed_braid_3d, "mixed_mesh", "mixed_mesh/braid", "", "Mixed_braid_3d", True)
    +    mixed_test(mixed_tet_quad_2d, "mesh_mesh", "mesh_mesh/braid", "", "Mixed_tet_quad_2d")
    +    DefineScalarExpression("nodeids", "nodeid(mesh_mesh)")
    +    mixed_test(mixed_offsets_2d, "mesh_mesh", "nodeids", "", "Mixed_offsets_2d")
    +
    +    TestSection("Blueprint Specsets, 0.9.2")
    +    OpenDatabase(misc_specsets)
    +    AddPlot("Pseudocolor", "mesh_mesh/radial")
    +    DrawPlots()
    +    silr = SILRestriction()
    +    silr.SuspendCorrectnessChecking()
    +    silr.TurnOnAll()
    +    for silSet in (5,6):
    +        silr.TurnOffSet(silSet)
    +    silr.EnableCorrectnessChecking()
    +    SetPlotSILRestriction(silr ,1)
    +    Test("Misc_radial")
    +    silr = SILRestriction()
    +    silr.TurnOnAll()
    +    SetPlotSILRestriction(silr ,1)
    +    DeleteActivePlots()
    +    AddPlot("Pseudocolor", "mesh_mesh_mesh_mesh")
    +    DrawPlots()
    +    silr = SILRestriction()
    +    silr.TurnOnAll()
    +    silr.TurnOffSet(5)
    +    SetPlotSILRestriction(silr ,1)
    +    Test("Misc_specset")
    +    silr.TurnOnAll()
    +    DeleteAllPlots()
    +    CloseDatabase(misc_specsets)
    +
    +def main():
    +    test_blueprint_json_hdf5()
    +    test_blueprint_MFEM()
    +    test_blueprint_expressions()
    +    test_blueprint_venn()
    +    test_blueprint_0_8_2()
    +    test_blueprint_0_8_4()
    +    test_blueprint_0_8_6()
    +    test_blueprint_0_8_7()
    +    test_blueprint_0_9_1()
    +    test_blueprint_0_9_2()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_bov.html b/2024-12-12-22:00/poodle_trunk_serial/databases_bov.html new file mode 100644 index 000000000..b0ec1817d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_bov.html @@ -0,0 +1,423 @@ + +Results for databases/bov.py + +

    Results of VisIt Regression Test - databases/bov

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Reading BOV file of FLOAT
    bov_0_000.000.00
    bov_0_010 modifications totalling 0 lines
    bov_0_020.000.00
    bov_0_030.000.00
    bov_0_040.000.00
    bov_0_050.000.00
    bov_0_060.000.00
    Decomposing BOV of FLOAT into smaller bricks
    bov_1_000.000.00
    bov_1_010 modifications totalling 0 lines
    bov_1_020.000.00
    bov_1_030.000.00
    bov_1_040.000.00
    bov_1_050.000.00
    bov_1_060.000.00
    Decomposing BOV of FLOAT with small header into smaller bricks
    bov_2_000.000.00
    bov_2_010 modifications totalling 0 lines
    bov_2_020.000.00
    bov_2_030.000.00
    bov_2_040.000.00
    bov_2_050.000.00
    bov_2_060.000.00
    Reading BOV file of DOUBLE
    bov_3_000.000.00
    bov_3_010 modifications totalling 0 lines
    bov_3_020.000.00
    bov_3_030.000.00
    bov_3_040.000.00
    bov_3_050.000.00
    bov_3_060.000.00
    Decomposing BOV of DOUBLE into smaller bricks
    bov_4_000.000.00
    bov_4_010 modifications totalling 0 lines
    bov_4_020.000.00
    bov_4_030.000.00
    bov_4_040.000.00
    bov_4_050.000.00
    bov_4_060.000.00
    Decomposing BOV of DOUBLE with small header into smaller bricks
    bov_5_000.000.00
    bov_5_010 modifications totalling 0 lines
    bov_5_020.000.00
    bov_5_030.000.00
    bov_5_040.000.00
    bov_5_050.000.00
    bov_5_060.000.00
    Reading BOV file of INT
    bov_6_000.000.00
    bov_6_010 modifications totalling 0 lines
    bov_6_020.000.00
    bov_6_030.000.00
    bov_6_040.000.00
    bov_6_050.000.00
    bov_6_060.000.00
    Decomposing BOV of INT into smaller bricks
    bov_7_000.000.00
    bov_7_010 modifications totalling 0 lines
    bov_7_020.000.00
    bov_7_030.000.00
    bov_7_040.000.00
    bov_7_050.000.00
    bov_7_060.000.00
    Decomposing BOV of INT with small header into smaller bricks
    bov_8_000.000.00
    bov_8_010 modifications totalling 0 lines
    bov_8_020.000.00
    bov_8_030.000.00
    bov_8_040.000.00
    bov_8_050.000.00
    bov_8_060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_bov_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_bov_py.html new file mode 100644 index 000000000..4e430e5c0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_bov_py.html @@ -0,0 +1,205 @@ +databases/bov.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  bov.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, multiple domain
    +#              plots     - Pseudocolor, Subset, Label, Contour
    +#              operators - Slice
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Mar 17 14:37:45 PST 2006
    +#
    +#  Modifications:
    +#    Brad Whitlock, Thu May 4 14:02:29 PST 2006
    +#    Added testing of INT and DOUBLE BOV files.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Replace obsolete Label text attributes with new versions.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def SaveTestImage(name):
    +    # Save these images somewhat larger than a regular test case image
    +    # since the images contain a lot of text.
    +    backup = GetSaveWindowAttributes()
    +    swa = SaveWindowAttributes()
    +    swa.width = 500
    +    swa.height = 500
    +    swa.screenCapture = 0
    +    Test(name, swa)
    +    SetSaveWindowAttributes(backup)
    +
    +def TestBOVDivide(prefix, db, doSubset):
    +    # Take a picture to make sure that the division took. There will be
    +    # a lot of bricks.
    +    OpenDatabase(db)
    +
    +    if doSubset:
    +        AddPlot("Subset", "bricks")
    +        subAtts = SubsetAttributes()
    +        subAtts.legendFlag = 0
    +        SetPlotOptions(subAtts)
    +    else:
    +        AddPlot("Pseudocolor", "myvar")
    +    DrawPlots()
    +    v = View3DAttributes()
    +    v.viewNormal = (0.534598, 0.40012, 0.744385)
    +    v.focus = (15, 15, 15)
    +    v.viewUp = (-0.228183, 0.916444, -0.32873)
    +    v.viewAngle = 30
    +    v.parallelScale = 8.66025
    +    v.nearPlane = -17.3205
    +    v.farPlane = 17.3205
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (15, 15, 15)
    +    SetView3D(v)
    +    Test(prefix + "00")
    +
    +    # Make sure there are the right number of zones.
    +    Query("NumZones",use_actual_data=0)
    +    TestText(prefix + "01", GetQueryOutputString())
    +
    +    # Let's slice a few times to make sure that crucial areas have the
    +    # right values
    +    AddPlot("Mesh", "mesh")
    +    AddPlot("Label", "myvar")
    +    L = LabelAttributes()
    +    L.textFont1.scale = 5
    +    L.textFont2.scale = 5
    +    SetPlotOptions(L)
    +    SetActivePlots((0,1,2))
    +    AddOperator("Slice")
    +    s = SliceAttributes()
    +    s.originType = s.Intercept  # Point, Intercept, Percent, Zone, Node
    +    s.originIntercept = 10.001
    +    s.normal = (0, 0, 1)
    +    s.axisType = s.ZAxis  # XAxis, YAxis, ZAxis, Arbitrary
    +    s.upAxis = (0, 1, 0)
    +    s.project2d = 1
    +    SetOperatorOptions(s)
    +    DrawPlots()
    +    v2 = GetView2D()
    +    v2.windowCoords = (12.0201, 13.0004, 9.99781, 10.9888)
    +    v2.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v2.fullFrameActivationMode = v2.Auto  # On, Off, Auto
    +    v2.fullFrameAutoThreshold = 100
    +    SetView2D(v2)
    +    SaveTestImage(prefix+"02")
    +
    +    # Move to another slice on the far edge that will have the max zone #
    +    s.originIntercept = 19.998
    +    SetOperatorOptions(s)
    +    v3 = View2DAttributes()
    +    v3.windowCoords = (19.2017, 20.0179, 19.1966, 20.0217)
    +    v3.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v3.fullFrameActivationMode = v3.Auto  # On, Off, Auto
    +    v3.fullFrameAutoThreshold = 100
    +    SetView2D(v3)
    +    SaveTestImage(prefix+"03")
    +
    +    # Move to another slice in the middle.
    +    s.originIntercept = 15.01
    +    SetOperatorOptions(s)
    +    v4 = View2DAttributes()
    +    v4.windowCoords = (14.6419, 15.361, 15.638, 16.365)
    +    v4.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v4.fullFrameActivationMode = v4.Auto  # On, Off, Auto
    +    v4.fullFrameAutoThreshold = 100
    +    SetView2D(v4)
    +    SaveTestImage(prefix+"04")
    +    DeleteAllPlots()
    +
    +    # Test that ghost zones are right.
    +    AddPlot("Pseudocolor", "myvar")
    +    p = PseudocolorAttributes()
    +    p.SetOpacityType(p.Constant)
    +    p.opacity = 0.25
    +    SetPlotOptions(p)
    +    DrawPlots()
    +    v5 = View3DAttributes()
    +    v5.viewNormal = (0.772475, 0.402431, 0.491255)
    +    v5.focus = (15, 15, 15)
    +    v5.viewUp = (-0.355911, 0.915018, -0.18992)
    +    v5.viewAngle = 30
    +    v5.parallelScale = 8.66025
    +    v5.nearPlane = -17.3205
    +    v5.farPlane = 17.3205
    +    v5.imagePan = (-0.0253114, 0.0398304)
    +    v5.imageZoom = 1.20806
    +    v5.perspective = 1
    +    v5.eyeAngle = 2
    +    v5.centerOfRotationSet = 0
    +    v5.centerOfRotation = (15, 15, 15)
    +    SetView3D(v5)
    +    Test(prefix+"05")
    +
    +    # Zoom in on a contour plot to make sure that there are no tears.
    +    # This means that the ghost zones were created properly.
    +    ClearWindow()
    +    p.SetOpacityType(p.FullyOpaque)
    +    SetPlotOptions(p)
    +    AddOperator("Isosurface")
    +    iso = IsosurfaceAttributes()
    +    iso.variable = "radial"
    +    SetOperatorOptions(iso)
    +    DrawPlots()
    +    v6 = View3DAttributes()
    +    v6.viewNormal = (0.373168, 0.412282, 0.831125)
    +    v6.focus = (15, 15, 15)
    +    v6.viewUp = (-0.181836, 0.910964, -0.370244)
    +    v6.viewAngle = 30
    +    v6.parallelScale = 8.66025
    +    v6.nearPlane = -17.3205
    +    v6.farPlane = 17.3205
    +    v6.imagePan = (0.0994254, 0.0810457)
    +    v6.imageZoom = 1.94126
    +    v6.perspective = 1
    +    v6.eyeAngle = 2
    +    v6.centerOfRotationSet = 0
    +    v6.centerOfRotation = (15, 15, 15)
    +    SetView3D(v6)
    +    Test(prefix+"06")
    +    DeleteAllPlots()
    +
    +    CloseDatabase(db)
    +
    +def TestBOVType(bovtype, prefixes):
    +    # Test the original BOV file without it being divided.
    +    TestSection("Reading BOV file of %s" % bovtype)
    +    TestBOVDivide(prefixes[0], data_path("bov_test_data/%s_indices.bov") % bovtype, 0)
    +
    +    #
    +    # Test 2 BOV files that are being subdivided into smaller bricks
    +    # by the BOV plugin so that there are multiple domains that
    +    # can be processed in parallel.
    +    #
    +    TestSection("Decomposing BOV of %s into smaller bricks" % bovtype)
    +    TestBOVDivide(prefixes[1], data_path("bov_test_data/%s_indices_div.bov") % bovtype, 1)
    +
    +    TestSection("Decomposing BOV of %s with small header into smaller bricks" % bovtype)
    +    TestBOVDivide(prefixes[2], data_path("bov_test_data/%s_indices_div_with_header.bov") % bovtype, 1)
    +
    +
    +def main():
    +    # Define some expressions
    +    DefineScalarExpression("x", "coord(mesh)[0]")
    +    DefineScalarExpression("y", "coord(mesh)[1]")
    +    DefineScalarExpression("z", "coord(mesh)[2]")
    +    DefineScalarExpression("dx", "x - 15.")
    +    DefineScalarExpression("dy", "y - 15.")
    +    DefineScalarExpression("dz", "z - 15.")
    +    DefineScalarExpression("radial", "sqrt(dx*dx + dy*dy + dz*dz)")
    +
    +    TestBOVType("FLOAT",  ("bov_0_", "bov_1_", "bov_2_"))
    +    TestBOVType("DOUBLE", ("bov_3_", "bov_4_", "bov_5_"))
    +    TestBOVType("INT",    ("bov_6_", "bov_7_", "bov_8_"))
    +
    +    Exit()
    +
    +main()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_boxlib.html b/2024-12-12-22:00/poodle_trunk_serial/databases_boxlib.html new file mode 100644 index 000000000..368167675 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_boxlib.html @@ -0,0 +1,80 @@ + +Results for databases/boxlib.py + +

    Results of VisIt Regression Test - databases/boxlib

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    boxlib_010.000.00
    boxlib_020.000.00
    boxlib_030.000.00
    boxlib_040.000.00
    boxlib_050.000.00
    boxlib_060.000.00
    temperature1 min
     295.40999999999997 .eq. 295.40999999999997 (prec=15) : True
    temperature1 max
     295.4100000000001 .eq. 295.4100000000001 (prec=15) : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_boxlib_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_boxlib_py.html new file mode 100644 index 000000000..9a5e3fe6e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_boxlib_py.html @@ -0,0 +1,119 @@ +databases/boxlib.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  boxlib.py
    +#
    +#  Tests:      mesh      - 2D AMR
    +#              plots     - Pseudocolor, mesh, boundary, subset
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 31, 2005
    +#
    +#  Modifications:
    +#  
    +#    Mark C. Miller, Mon Sep 15 12:05:44 PDT 2008
    +#    Added 3D test
    +#
    +#    Mark C. Miller, Mon Jan 11 10:40:34 PST 2021
    +#    Replace Assert-style with TestValue-style tests.
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin(("Boxlib2D", "Boxlib3D"))
    +
    +
    +OpenDatabase(data_path("boxlib_test_data/2D/plt0822/Header"))
    +
    +AddPlot("Pseudocolor", "density")
    +AddPlot("Boundary", "materials")
    +b = BoundaryAttributes()
    +b.colorType = b.ColorBySingleColor
    +b.lineWidth = 2
    +SetPlotOptions(b)
    +
    +AddPlot("Subset", "patches")
    +s = SubsetAttributes()
    +s.wireframe = 1
    +s.colorType = s.ColorBySingleColor
    +s.singleColor = (255, 255, 255, 128)
    +s.lineWidth = 3
    +SetPlotOptions(s)
    +
    +DrawPlots()
    +
    +v = GetView2D()
    +v.viewportCoords = (0, 1, 0, 1)
    +v.windowCoords = (0, 0.04, 0.09, 0.13)
    +SetView2D(v)
    +
    +Test("boxlib_01")
    +
    +SetActivePlots((0,1,2))
    +s = SILRestriction()
    +levels = s.SetsInCategory("levels")
    +level2 = levels[2]
    +s.TurnOffSet(level2)
    +SetPlotSILRestriction(s)
    +Test("boxlib_02")
    +
    +s.TurnOnAll()
    +level0 = levels[0]
    +s.TurnOffSet(level0)
    +SetPlotSILRestriction(s)
    +Test("boxlib_03")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("boxlib_test_data/2D/plt0822/Header"))
    +
    +OpenDatabase(data_path("boxlib_test_data/3D/plt_asgc05_0309/Header"))
    +
    +AddPlot("Pseudocolor","tracer")
    +DrawPlots()
    +ResetView()
    +v=GetView3D()
    +v.RotateAxis(2,-45.0)
    +v.RotateAxis(0,65.0)
    +SetView3D(v)
    +Test("boxlib_04")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("boxlib_test_data/3D/plt_asgc05_0309/Header"))
    +
    +OpenDatabase(data_path("boxlib_test_data/3D/plt00000.cartgrid.body.small/Header"))
    +
    +AddPlot("Pseudocolor", "temperature")
    +AddOperator("ThreeSlice")
    +DrawPlots()
    +ResetView()
    +v = GetView3D()
    +v.RotateAxis(1,45)
    +v.RotateAxis(0,45)
    +SetView3D(v)
    +Test("boxlib_05")
    +
    +silr = SILRestriction()
    +silr.TurnOnAll()
    +silr.TurnOffSet(silr.SetsInCategory('materials')[1])
    +SetPlotSILRestriction(silr)
    +Test("boxlib_06")
    +
    +# Test precision {
    +#
    +# Test double precision is working by reading a known double precision
    +# database and ensuring we get expected min/max values within 15 digits
    +# of accuracy.
    +#
    +DeleteAllPlots()
    +CloseDatabase(data_path("boxlib_test_data/3D/plt00000.cartgrid.body.small/Header"))
    +OpenDatabase(data_path("boxlib_test_data/2D/plt0000000/Header"))
    +AddPlot("Pseudocolor", "temperature1")
    +DrawPlots()
    +SetQueryOutputToValue()
    +TestValueEQ("temperature1 min", Query("Min"), 295.409999999999968, 15)
    +TestValueEQ("temperature1 max", Query("Max"), 295.410000000000082, 15)
    +DeleteAllPlots()
    +CloseDatabase(data_path("boxlib_test_data/2D/plt0000000/Header"))
    +# Test precision }
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_chgcar.html b/2024-12-12-22:00/poodle_trunk_serial/databases_chgcar.html new file mode 100644 index 000000000..3716e3cf7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_chgcar.html @@ -0,0 +1,120 @@ + +Results for databases/chgcar.py + +

    Results of VisIt Regression Test - databases/chgcar

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    chgcar_010.000.00
    chgcar_020.000.00
    chgcar_030.000.00
    chgcar_040.000.00
    chgcar_110.000.00
    chgcar_120.000.00
    chgcar_130.000.00
    chgcar_140.000.00
    chgcar_050.000.00
    chgcar_060.000.00
    chgcar_070.000.00
    chgcar_080.000.00
    chgcar_090.000.00
    chgcar_100.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_chgcar_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_chgcar_py.html new file mode 100644 index 000000000..406ae1deb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_chgcar_py.html @@ -0,0 +1,156 @@ +databases/chgcar.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  chgcar.py
    +#
    +#  Tests:      mesh      - transformed rectilinear
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       February 20, 2007
    +#
    +#    Jeremy Meredith, Wed Aug 13 14:39:11 EDT 2008
    +#    Unrestricted the number of labels plotted.  Since I now
    +#    have automatic decomposition of chgcar files, the actual
    +#    labels chosen was varying based on serial vs parallel
    +#    (which is fine, but doesn't help for regression testing).
    +#
    +#    Hank Childs, Wed Dec 31 14:32:34 PST 2008
    +#    Rename ResamplePluginAtts to ResampleAtts.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Replace obsolete Label text attributes with new versions.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(data_path("chgcar_test_data/CHGCAR"),0, "VASP_1.0")
    +
    +AddPlot("Pseudocolor", "charge")
    +DrawPlots()
    +
    +View3DAtts = GetView3D()
    +View3DAtts.viewNormal = (-0.85796, 0.216484, -0.465874)
    +View3DAtts.focus = (4.5, 0.5, 4)
    +View3DAtts.viewUp = (0.135878, 0.970204, 0.200602)
    +View3DAtts.viewAngle = 30
    +SetView3D(View3DAtts)
    +
    +Test("chgcar_01")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR.vtk"))
    +
    +Test("chgcar_02")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR"))
    +
    +
    +AddOperator("Resample")
    +ResampleAtts = ResampleAttributes()
    +ResampleAtts.useExtents = 0
    +ResampleAtts.startX = 1
    +ResampleAtts.endX = 6
    +ResampleAtts.samplesX = 80
    +ResampleAtts.startY = -2
    +ResampleAtts.endY = 4
    +ResampleAtts.samplesY = 80
    +ResampleAtts.is3D = 1
    +ResampleAtts.startZ = 1
    +ResampleAtts.endZ = 6
    +ResampleAtts.samplesZ = 80
    +SetOperatorOptions(ResampleAtts)
    +DrawPlots()
    +
    +Test("chgcar_03")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR.vtk"))
    +
    +Test("chgcar_04")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR"))
    +
    +
    +DeleteActivePlots()
    +
    +AddPlot("Mesh", "mesh")
    +AddOperator("IndexSelect",1)
    +IndexSelectAtts = IndexSelectAttributes()
    +IndexSelectAtts.dim = IndexSelectAtts.ThreeD  # OneD, TwoD, ThreeD
    +IndexSelectAtts.xMin = 2
    +SetOperatorOptions(IndexSelectAtts)
    +
    +AddPlot("Label", "charge")
    +LabelAtts = LabelAttributes()
    +LabelAtts.textFont1.scale = 7
    +LabelAtts.restrictNumberOfLabels = 0
    +SetPlotOptions(LabelAtts)
    +DrawPlots()
    +
    +Test("chgcar_11")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR.vtk"))
    +
    +Test("chgcar_12")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR"))
    +
    +
    +DeleteAllPlots()
    +
    +
    +
    +AddPlot("Pseudocolor", "charge")
    +AddOperator("ThreeSlice")
    +ThreeSliceAtts = ThreeSliceAttributes()
    +ThreeSliceAtts.x = 3
    +ThreeSliceAtts.y = 0
    +ThreeSliceAtts.z = 4
    +SetOperatorOptions(ThreeSliceAtts)
    +DrawPlots()
    +
    +Test("chgcar_13")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR.vtk"))
    +
    +Test("chgcar_14")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR"))
    +
    +
    +DeleteAllPlots()
    +
    +AddPlot("Volume", "charge")
    +DrawPlots()
    +VolumeAtts = VolumeAttributes()
    +VolumeAtts.lightingFlag = 0
    +VolumeAtts.opacityAttenuation = .6
    +VolumeAtts.resampleTarget = 450000
    +SetPlotOptions(VolumeAtts)
    +
    +Test("chgcar_05")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR.vtk"))
    +
    +Test("chgcar_06")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR"))
    +
    +
    +VolumeAtts.opacityAttenuation = .9
    +SetPlotOptions(VolumeAtts)
    +
    +Test("chgcar_07")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR.vtk"))
    +
    +Test("chgcar_08")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR"))
    +
    +
    +VolumeAtts.opacityAttenuation = .4
    +VolumeAtts.rendererType = VolumeAtts.Composite
    +SetPlotOptions(VolumeAtts)
    +
    +Test("chgcar_09")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR.vtk"))
    +
    +Test("chgcar_10")
    +ReplaceDatabase(data_path("chgcar_test_data/CHGCAR"))
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_claw.html b/2024-12-12-22:00/poodle_trunk_serial/databases_claw.html new file mode 100644 index 000000000..9d058cb67 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_claw.html @@ -0,0 +1,54 @@ + +Results for databases/claw.py + +

    Results of VisIt Regression Test - databases/claw

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    claw_010.000.00
    claw_020.000.00
    claw_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_claw_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_claw_py.html new file mode 100644 index 000000000..6272f295a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_claw_py.html @@ -0,0 +1,65 @@ +databases/claw.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  claw.py 
    +#
    +#  Tests:      Claw files 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       September 13, 2007 
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# test the mesh
    +OpenDatabase(data_path("claw_test_data/2d/fort.claw"))
    +
    +TimeSliderNextState()
    +AddPlot("Mesh","claw_mesh")
    +DrawPlots()
    +SetActivePlots((1,))
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "level3":
    +        silr.TurnOffSet(i)
    +SetPlotSILRestriction(silr)
    +Test("claw_01")
    +SetActivePlots((1,))
    +DeleteActivePlots()
    +
    +# test a variable being read 
    +AddPlot("Pseudocolor","col_00")
    +DrawPlots()
    +Test("claw_02")
    +DeleteAllPlots()
    +CloseDatabase(data_path("claw_test_data/2d/fort.claw"))
    +
    +OpenDatabase(data_path("claw_test_data/3d/fort.claw"))
    +
    +TimeSliderNextState()
    +ss = SubsetAttributes()
    +#ss.colorType = ss.ColorBySingleColor
    +ss.lineWidth = 2
    +ss.singleColor = (0, 0, 0, 255)
    +ss.wireframe = 1
    +SetPlotOptions(ss)
    +AddPlot("Pseudocolor","col_00")
    +AddPlot("Mesh","claw_mesh")
    +SetActivePlots((1,2))
    +#AddOperator("Clip", 1)
    +AddOperator("Clip")
    +clipAtts = ClipAttributes()
    +clipAtts.plane1Origin = (0.25, 0.5, 0.75)
    +clipAtts.plane1Normal = (0, 0, 1)
    +SetOperatorOptions(clipAtts)
    +DrawPlots()
    +SetActivePlots((0,))
    +DrawPlots()
    +v=GetView3D()
    +v.viewNormal = (0.383221, 0.582931, 0.716473)
    +v.viewUp = (-0.29125, 0.812382, -0.505182)
    +SetView3D(v)
    +Test("claw_03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_closedatabase.html b/2024-12-12-22:00/poodle_trunk_serial/databases_closedatabase.html new file mode 100644 index 000000000..3c77f5b37 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_closedatabase.html @@ -0,0 +1,94 @@ + +Results for databases/closedatabase.py + +

    Results of VisIt Regression Test - databases/closedatabase

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    closedatabase000.000.00
    closedatabase010 modifications totalling 0 lines
    closedatabase020 modifications totalling 0 lines
    closedatabase030.000.00
    closedatabase040.000.00
    closedatabase050 modifications totalling 0 lines
    closedatabase060 modifications totalling 0 lines
    closedatabase070 modifications totalling 0 lines
    closedatabase080 modifications totalling 0 lines
    closedatabase090 modifications totalling 0 lines
    closedatabase100 modifications totalling 0 lines
    closedatabase_exprs000 modifications totalling 0 lines
    closedatabase_exprs010 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_closedatabase_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_closedatabase_py.html new file mode 100644 index 000000000..35a3bd823 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_closedatabase_py.html @@ -0,0 +1,108 @@ +databases/closedatabase.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  closedatabase.py
    +#
    +#  Tests:      mesh      - 3D, curvilinear, single domain
    +#              plots     - Pseudocolor
    +#              databases - Silo
    +#
    +#  Purpose:    This test case tests that the viewer can close a database.
    +#
    +#  Bugs:       '3283
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Mar 19 08:57:09 PDT 2004
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Wed Apr 14 15:41:11 PDT 2010
    +#    Added test to check if database expressions are cleared after
    +#    database is closed.
    +#
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Look at astring representation of the GlobalAttributes to see the list
    +# of sources, etc.
    +#
    +def TestGlobalAttributes(testname):
    +    # Get the window information, convert it to a string, and use it as
    +    # a test case.
    +    TestText(testname, str(GetGlobalAttributes()))
    +
    +def GetCloseString(db):
    +    if(CloseDatabase(db) == 1):
    +        testString = "The database %s was closed." % os.path.abspath(db)
    +    else:
    +        testString = GetLastError()
    +    return testString
    +
    +# Open a database and create a plot
    +db = silo_data_path("wave*.silo database")
    +OpenDatabase(db, 32)
    +AddPlot("Pseudocolor", "pressure")
    +DrawPlots()
    +
    +# Get a picture of the plot.
    +Test("closedatabase00")
    +
    +# Look at the list of sources.
    +TestGlobalAttributes("closedatabase01")
    +
    +# Try and close the database. VisIt should not let us close it since there
    +# are plots that use it.
    +TestText("closedatabase02", GetCloseString(db))
    +
    +# Create another window that uses the database.
    +CloneWindow()
    +SetActiveWindow(2)
    +DrawPlots()
    +Test("closedatabase03")
    +
    +# Delete all the plots in window 1 that use the database
    +SetActiveWindow(1)
    +DeleteAllPlots()
    +Test("closedatabase04")
    +
    +# Try and close the database. VisIt should not let us close it since there
    +# are still plots in window 2 that use it.
    +TestText("closedatabase05", GetCloseString(db))
    +
    +SetActiveWindow(2)
    +DeleteAllPlots()
    +
    +# Try and close the database. VisIt should let us close it this time.
    +testString = GetCloseString(db) + "\n" + str(GetGlobalAttributes())
    +TestText("closedatabase06", testString)
    +
    +
    +# Try adding some databases
    +dbs = (silo_data_path("wave.visit") ,
    +       silo_data_path("globe.silo") ,
    +       silo_data_path("curv3d.silo") )
    +
    +for db in dbs:
    +    OpenDatabase(db)
    +
    +# Look at the list of sources.
    +TestGlobalAttributes("closedatabase07")
    +
    +# Start removing databases
    +testindex = 8
    +for i in range(len(dbs)):
    +    index = len(dbs) - 1 - i
    +    testString = GetCloseString(dbs[index]) + "\n" + str(GetGlobalAttributes())
    +    TestText("closedatabase%02d" % testindex, testString)
    +    testindex = testindex + 1
    +
    +# Check that database expressions are cleared when database is closed.
    +OpenDatabase(dbs[1])
    +TestExpressions("closedatabase_exprs00")
    +TestExpressions("closedatabase_exprs01", prefix=GetCloseString(dbs[1])+"\n")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_correlation.html b/2024-12-12-22:00/poodle_trunk_serial/databases_correlation.html new file mode 100644 index 000000000..0f453d8ea --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_correlation.html @@ -0,0 +1,510 @@ + +Results for databases/correlation.py + +

    Results of VisIt Regression Test - databases/correlation

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Padded index correlation
    correlation_0_000 modifications totalling 0 lines
    correlation_0_010.000.00
    correlation_0_020 modifications totalling 0 lines
    correlation_0_030.000.00
    correlation_0_040 modifications totalling 0 lines
    correlation_0_050.000.00
    correlation_0_060 modifications totalling 0 lines
    correlation_0_070.000.00
    correlation_0_080 modifications totalling 0 lines
    correlation_0_090.000.00
    correlation_0_100 modifications totalling 0 lines
    correlation_0_110.000.00
    correlation_0_120 modifications totalling 0 lines
    correlation_0_130.000.00
    correlation_0_140 modifications totalling 0 lines
    Stretched correlation
    correlation_1_000 modifications totalling 0 lines
    correlation_1_010.000.00
    correlation_1_020 modifications totalling 0 lines
    correlation_1_030.000.00
    correlation_1_040 modifications totalling 0 lines
    correlation_1_050.000.00
    correlation_1_060 modifications totalling 0 lines
    correlation_1_070.000.00
    correlation_1_080 modifications totalling 0 lines
    correlation_1_090.000.00
    correlation_1_100 modifications totalling 0 lines
    correlation_1_110.000.00
    correlation_1_120 modifications totalling 0 lines
    correlation_1_130.000.00
    correlation_1_140 modifications totalling 0 lines
    Time correlation
    correlation_2_000 modifications totalling 0 lines
    correlation_2_010.000.00
    correlation_2_020 modifications totalling 0 lines
    correlation_2_030.000.00
    correlation_2_040 modifications totalling 0 lines
    correlation_2_050.000.00
    correlation_2_060 modifications totalling 0 lines
    correlation_2_070.000.00
    correlation_2_080 modifications totalling 0 lines
    correlation_2_090.000.00
    correlation_2_100 modifications totalling 0 lines
    correlation_2_110.000.00
    correlation_2_120 modifications totalling 0 lines
    correlation_2_130.000.00
    correlation_2_140 modifications totalling 0 lines
    correlation_2_150.000.00
    correlation_2_160 modifications totalling 0 lines
    correlation_2_170.000.00
    correlation_2_180 modifications totalling 0 lines
    correlation_2_190.000.00
    correlation_2_200 modifications totalling 0 lines
    Cycle correlation
    correlation_3_000 modifications totalling 0 lines
    correlation_3_010.000.00
    correlation_3_020 modifications totalling 0 lines
    correlation_3_030.000.00
    correlation_3_040 modifications totalling 0 lines
    correlation_3_050.000.00
    correlation_3_060 modifications totalling 0 lines
    correlation_3_070.000.00
    correlation_3_080 modifications totalling 0 lines
    correlation_3_090.000.00
    correlation_3_100 modifications totalling 0 lines
    correlation_3_110.000.00
    correlation_3_120 modifications totalling 0 lines
    correlation_3_130.000.00
    correlation_3_140 modifications totalling 0 lines
    Creating new window
    correlation_4_000.000.00
    correlation_4_010 modifications totalling 0 lines
    correlation_4_020.000.00
    correlation_4_030 modifications totalling 0 lines
    Altering correlation
    correlation_5_000 modifications totalling 0 lines
    correlation_5_010 modifications totalling 0 lines
    correlation_5_020.000.00
    correlation_5_030 modifications totalling 0 lines
    correlation_5_040.000.00
    correlation_5_050 modifications totalling 0 lines
    correlation_5_060.000.00
    correlation_5_070 modifications totalling 0 lines
    correlation_5_080.000.00
    correlation_5_090 modifications totalling 0 lines
    Deleting correlations
    correlation_6_000 modifications totalling 0 lines
    Automatic correlations
    correlation_7_000 modifications totalling 0 lines
    correlation_7_010 modifications totalling 0 lines
    correlation_7_020.000.00
    correlation_7_030 modifications totalling 0 lines
    correlation_7_040.000.00
    correlation_7_050 modifications totalling 0 lines
    correlation_7_060.000.00
    correlation_7_070 modifications totalling 0 lines
    correlation_7_080 modifications totalling 0 lines
    correlation_7_090.000.00
    correlation_7_100 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_correlation_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_correlation_py.html new file mode 100644 index 000000000..0a373b7b0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_correlation_py.html @@ -0,0 +1,215 @@ +databases/correlation.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial
    +#  CLASSES: nightly
    +#
    +#  Test Case:  correlation.py 
    +#
    +#  Tests:      Tests database correlations and automatic correlation.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Mon Mar 22 08:28:25 PDT 2004
    +#
    +#  Modifications:
    +#    Brad Whitlock, Fri Apr 1 09:48:23 PDT 2005
    +#    I renamed some baselines so I could add correlation definition tests.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def GetTruncatedWindowInformationString():
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 5 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    for i in range(5):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    return s
    +
    +#
    +# Look at the first few lines of the string representation of the
    +# WindowInformation to see the list of time sliders, etc.
    +#
    +def TestWindowInformation(testname):
    +    TestText(testname, GetTruncatedWindowInformationString())
    +
    +def TestLength(testname):
    +    tsLength = TimeSliderGetNStates()
    +    testString = "%s has %d states\n" % (GetActiveTimeSlider(), tsLength)
    +    testString = testString + GetTruncatedWindowInformationString()
    +    TestText(testname, testString)
    +
    +def ComputeStates(nStates, stateIncrement):
    +    lastState = nStates - 1
    +    states = list(range(0, nStates, stateIncrement))
    +    if(states[-1] != lastState):
    +        states = states  + [lastState]
    +    return states
    +
    +def GetTestName(sectionIndex, testIndex):
    +    return "correlation_%d_%02d" % (sectionIndex, testIndex)
    +
    +def TestTimeSlider(sectionIndex, testIndex):
    +    Test(GetTestName(sectionIndex, testIndex))
    +    TestLength(GetTestName(sectionIndex, testIndex + 1))
    +    return testIndex + 2
    +
    +#
    +# Tests that the database correlations look a certain way.
    +#
    +def TestCorrelation(name, sectionIndex, testIndex):
    +    names = GetDatabaseCorrelationNames()
    +    s = ""
    +    if name in names:
    +        c = GetDatabaseCorrelation(name)
    +        s = s + str(c) + "\n"
    +    TestText(GetTestName(sectionIndex, testIndex), s)
    +    return testIndex + 1
    +
    +#
    +# Tests the time slider length and the correlation list.
    +#
    +def TestLengthAndCorrelationList(testname):
    +    tsLength = TimeSliderGetNStates()
    +    s = "%s has %d states\n" % (GetActiveTimeSlider(), tsLength)
    +    s = s + GetTruncatedWindowInformationString() + "\n\n"
    +
    +    names = GetDatabaseCorrelationNames()
    +    for name in names:
    +        c = GetDatabaseCorrelation(name)
    +        s = s + str(c) + "\n"
    +    TestText(testname, s)
    +
    +#
    +# The databases that we'll use for most tests.
    +#
    +dbs = (data_path("pdb_test_data/dbA00.pdb"),
    +       data_path("pdb_test_data/dbB00.pdb"),
    +       data_path("pdb_test_data/dbC00.pdb"))
    +
    +#
    +# Open each database and create a plot.
    +#
    +for db in dbs:
    +    OpenDatabase(db)
    +    AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +
    +#
    +# Correlation Types
    +#
    +IndexForIndexCorrelation = 0
    +StretchedIndexCorrelation = 1
    +TimeCorrelation = 2
    +CycleCorrelation = 3
    +correlationTypes = (IndexForIndexCorrelation, StretchedIndexCorrelation,\
    +    TimeCorrelation, CycleCorrelation)
    +correlationNames = ("ABC_Index", "ABC_Stretch", "ABC_Time", "ABC_Cycle")
    +correlationTitles = ("Padded index correlation", "Stretched correlation",\
    +    "Time correlation", "Cycle correlation")
    +
    +#
    +# Create correlations between the 3 databases
    +#
    +sectionIndex = 0
    +testIndex = 0
    +for i in range(len(correlationTypes)):
    +    TestSection(correlationTitles[i])
    +    CreateDatabaseCorrelation(correlationNames[i], dbs, correlationTypes[i])
    +    testIndex = TestCorrelation(correlationNames[i], sectionIndex, 0)
    +    states = ComputeStates(TimeSliderGetNStates(), 5)
    +    for state in states:
    +        SetTimeSliderState(state)
    +        testIndex = TestTimeSlider(sectionIndex, testIndex)
    +    sectionIndex = sectionIndex + 1
    +
    +#
    +# Make sure that a new window has the same plots and correlations.
    +#
    +TestSection("Creating new window")
    +sectionIndex = 4
    +testIndex = 0
    +alteredCorrelation = correlationNames[0]
    +SetActiveTimeSlider(alteredCorrelation)
    +SetTimeSliderState(15)
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +CloneWindow()
    +SetActiveWindow(2)
    +InvertBackgroundColor()
    +DrawPlots()
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +SetActiveWindow(1)
    +
    +#
    +# Now that multiple windows use the same correlation, alter the correlation
    +# so it only uses 2 databases and make sure that both windows change when
    +# we change the time slider.
    +#
    +TestSection("Altering correlation")
    +sectionIndex = 5
    +testIndex = 0
    +testIndex = TestCorrelation(alteredCorrelation, sectionIndex, testIndex)
    +AlterDatabaseCorrelation(alteredCorrelation, (dbs[0], dbs[1]), StretchedIndexCorrelation)
    +testIndex = TestCorrelation(alteredCorrelation, sectionIndex, testIndex)
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +SetActiveWindow(2)
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +SetActiveWindow(1)
    +SetTimeSliderState(19)
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +SetActiveWindow(2)
    +SetTimeSliderState(19)
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +SetActiveWindow(1)
    +
    +#
    +# Test deleting correlations
    +#
    +TestSection("Deleting correlations")
    +sectionIndex = 6
    +testIndex = 0
    +for n in correlationNames:
    +    DeleteDatabaseCorrelation(n)
    +TestLengthAndCorrelationList(GetTestName(sectionIndex, testIndex))
    +
    +#
    +# Test automatically correlating by setting the correlation options such
    +# that we automatically create a StretchedIndex correlation when adding
    +# plots, etc.
    +#
    +TestSection("Automatic correlations")
    +sectionIndex = 7
    +SetActiveWindow(1)
    +DeleteAllPlots()
    +TestLengthAndCorrelationList(GetTestName(sectionIndex, 0))
    +testIndex = 1
    +SetDatabaseCorrelationOptions(StretchedIndexCorrelation, 0)
    +OpenDatabase(dbs[0])
    +AddPlot("FilledBoundary", "material(mesh)")
    +OpenDatabase(dbs[1])
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +# At this point, the viewer should have automatically created a new correlation
    +# and it should be the active time slider.
    +testIndex = TestCorrelation(GetActiveTimeSlider(), sectionIndex, testIndex);
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +# note: py3 div creates float
    +SetTimeSliderState(int(TimeSliderGetNStates() / 2))
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +SetTimeSliderState(TimeSliderGetNStates() - 1)
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +
    +# Now that we've verified the correlation, add another database to it by 
    +# Creating a plot from yet another database.
    +OpenDatabase(dbs[2])
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +testIndex = TestCorrelation(GetActiveTimeSlider(), sectionIndex, testIndex);
    +SetTimeSliderState(int(TimeSliderGetNStates() * 0.8))
    +testIndex = TestTimeSlider(sectionIndex, testIndex)
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_curve.html b/2024-12-12-22:00/poodle_trunk_serial/databases_curve.html new file mode 100644 index 000000000..3b68d0c7f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_curve.html @@ -0,0 +1,60 @@ + +Results for databases/curve.py + +

    Results of VisIt Regression Test - databases/curve

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    curve10.000.00
    curve20.000.00
    curve30.000.00
    curve2Expr0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_curve_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_curve_py.html new file mode 100644 index 000000000..8128e2262 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_curve_py.html @@ -0,0 +1,53 @@ +databases/curve.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  curve.py 
    +#
    +#  Tests:      normal curves, zone-centered curves, errors in curve files
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       October 31, 2006 
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +ca = CurveAttributes()
    +ca.showPoints = 1
    +SetDefaultPlotOptions(ca)
    +
    +OpenDatabase(data_path("curve_test_data/zonecent.ultra"))
    +DefineCurveExpression("curve2Expr","curve2+10")
    +
    +AddPlot("Curve","curve2")
    +DrawPlots()
    +v = GetViewCurve()
    +v.rangeCoords = (-3, 11)
    +SetViewCurve(v)
    +Test("curve1")
    +
    +AddPlot("Curve","curve1")
    +DrawPlots()
    +v.domainCoords = (-4, 16)
    +SetViewCurve(v)
    +Test("curve2")
    +
    +DeleteActivePlots()
    +
    +AddPlot("Curve","curve4")
    +DrawPlots()
    +v.domainCoords = (-4, 25)
    +SetViewCurve(v)
    +Test("curve3")
    +
    +DeleteActivePlots()
    +
    +AddPlot("Curve","curve2")
    +AddPlot("Curve","curve2Expr")
    +ResetView()
    +DrawPlots()
    +Test("curve2Expr")
    +
    +DeleteActivePlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_ddcMD.html b/2024-12-12-22:00/poodle_trunk_serial/databases_ddcMD.html new file mode 100644 index 000000000..7e1d92b7d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_ddcMD.html @@ -0,0 +1,159 @@ + +Results for databases/ddcMD.py + +

    Results of VisIt Regression Test - databases/ddcMD

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    2D cgrid single files
    ddcMD_0_000 modifications totalling 0 lines
    ddcMD_0_010.000.00
    ddcMD_0_020.000.00
    ddcMD_0_030.000.00
    2D cgrid multi files
    ddcMD_1_000 modifications totalling 0 lines
    ddcMD_1_010.000.00
    ddcMD_1_020.000.00
    ddcMD_1_030.000.00
    3D cgrid multi files and multi subname
    ddcMD_2_000 modifications totalling 0 lines
    ddcMD_2_010.000.00
    ddcMD_2_020.000.00
    ddcMD_2_030.000.00
    ddcMD_2_040.000.00
    ddcMD_2_050.000.00
    ddcMD_2_060.000.00
    ddcMD_2_070.000.00
    ddcMD_2_080.000.00
    ddcMD_2_090.000.00
    ddcMD_2_100.000.00
    ddcMD_2_110.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_ddcMD_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_ddcMD_py.html new file mode 100644 index 000000000..417dae6fa --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_ddcMD_py.html @@ -0,0 +1,112 @@ +databases/ddcMD.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ddcMD.py
    +#
    +#  Tests:      mesh      - 2D/3D structured automatically decomposed
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Oct 11 17:04:32 PDT 2012
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def GetVariables(db, doExpressions = 1):
    +    md = GetMetaData(db)
    +    txt = "Scalar Names:\n"
    +    s = []
    +    for i in range(md.GetNumScalars()):
    +        s = s + [md.GetScalars(i).name]
    +    scalars = sorted(s)
    +    for s in scalars:
    +        txt = txt + s + "\n"
    +    if doExpressions:
    +        txt = txt + "\n\nExpressions:\n"
    +        expr = {}
    +        for i in range(md.exprList.GetNumExpressions()):
    +            e = md.exprList.GetExpressions(i)
    +            expr[e.name] = e.definition
    +        keys = sorted(expr.keys())
    +        for k in keys:
    +            txt = txt + k + " = " + expr[k] + "\n"
    +    return txt
    +
    +def test0(datapath):
    +    TestSection("2D cgrid single files")
    +    db = pjoin(datapath,"cgrid2d.ddcMD")
    +    TestText("ddcMD_0_00", GetVariables(db))
    +
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "mass")
    +    DrawPlots()
    +    Test("ddcMD_0_01")
    +
    +    ChangeActivePlotsVar("mass_Al")
    +    Test("ddcMD_0_02")
    +
    +    ChangeActivePlotsVar("mass_Cu")
    +    Test("ddcMD_0_03")
    +
    +    DeleteAllPlots()
    +
    +def test1(datapath):
    +    TestSection("2D cgrid multi files")
    +    db = pjoin(datapath,"cgrid2d_multi.ddcMD")
    +    TestText("ddcMD_1_00", GetVariables(db))
    +
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "Kx")
    +    DrawPlots()
    +    Test("ddcMD_1_01")
    +
    +    ChangeActivePlotsVar("Kx_Al")
    +    Test("ddcMD_1_02")
    +
    +    ChangeActivePlotsVar("Kx_Cu")
    +    Test("ddcMD_1_03")
    +
    +    DeleteAllPlots()
    +
    +def test2(datapath):
    +    TestSection("3D cgrid multi files and multi subname")
    +    db = pjoin(datapath,"cgrid3d_multi_subname", "snapshot.*.ddcMD database")
    +    TestText("ddcMD_2_00", GetVariables(db, doExpressions = 0))
    +
    +    # Plot the gid to see that things are put together properly.
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "anatomy/gid")
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (-0.463775, -0.476999, -0.746582)
    +    v.focus = (12.5,12.5,12.5)
    +    v.viewUp = (-0.885851, 0.236876, 0.398946)
    +    v.parallelScale = 21.6506
    +    v.nearPlane = -43.3013
    +    v.farPlane = 43.3013
    +    v.imagePan = (0.0101758, 0.0313539)
    +    v.imageZoom = 1.01954
    +    SetView3D(v)
    +    Test("ddcMD_2_01")
    +
    +    ChangeActivePlotsVar("state/Vm")
    +
    +    # Iterate over time.
    +    for i in range(TimeSliderGetNStates()):
    +        SetTimeSliderState(i)
    +        Test("ddcMD_2_%02d" % (2 + i))
    +
    +    # Lower the transparency to see if domain boundaries are good. I think that
    +    # currently they are not good.
    +
    +    DeleteAllPlots()
    +
    +def main():
    +    datapath = data_path("ddcmd_test_data")
    +    test0(datapath)
    +    test1(datapath)
    +    test2(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_empty_db.html b/2024-12-12-22:00/poodle_trunk_serial/databases_empty_db.html new file mode 100644 index 000000000..914af789e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_empty_db.html @@ -0,0 +1,40 @@ + +Results for databases/empty_db.py + +

    Results of VisIt Regression Test - databases/empty_db

    + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    empty_010 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_empty_db_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_empty_db_py.html new file mode 100644 index 000000000..d1710bc38 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_empty_db_py.html @@ -0,0 +1,28 @@ +databases/empty_db.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  empty_db.py 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       28Oct10
    +#
    +#  Modifications:
    +#    Mark C. Miller, Mon Nov  1 12:24:23 PDT 2010
    +#    I added specification of the Silo format to the open call so that we
    +#    can be assured of having the real exception (DBYieldedNoData) returned
    +#    in the error message. Otherwise, that exception is caught and then folded
    +#    into whatever other possible exceptions other candidates might generate.
    +# ----------------------------------------------------------------------------
    +import re
    +
    +OpenDatabase(data_path("silo_pdb_test_data/empty.silo"), 0, "Silo_1.0")
    +
    +errStr = GetLastError()
    +tmpType = re.search(",\nno data was found in the file for VisIt to work with.", errStr)
    +msg = errStr
    +if tmpType != None:
    +    msg = "DBYieldedNoDataException\n"
    +TestText("empty_01", msg)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_exodus.html b/2024-12-12-22:00/poodle_trunk_serial/databases_exodus.html new file mode 100644 index 000000000..b636e9791 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_exodus.html @@ -0,0 +1,238 @@ + +Results for databases/exodus.py + +

    Results of VisIt Regression Test - databases/exodus

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    exodus_010.000.00
    exodus_020.000.00
    exodus_030.000.00
    exodus_040.000.00
    exodus_050.000.00
    Testing SHELL4 support
    exodus_060.000.00
    Testing support element block names
    exodus_070.000.00
    Testing 2D "NSIDED" element type
    exodus_080.000.00
    exodus_090.000.00
    exodus_100.000.00
    exodus_110.000.00
    exodus_120.000.00
    exodus_13a0.000.00
    exodus_13b0.000.00
    exodus_13c0.000.00
    exodus_140.000.00
    exodus_150.000.00
    exodus_160.000.00
    exodus_170.000.00
    exodus_180.000.00
    exodus_190.000.00
    exodus_200.000.00
    exodus_210.000.00
    exodus_220.000.00
    High Order Elements
    exodus_230.000.00
    exodus_240.000.00
    exodus_250.000.00
    exodus_260.000.00
    exodus_270.000.00
    exodus_280.000.00
    exodus_290.000.00
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_exodus_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_exodus_py.html new file mode 100644 index 000000000..3847c118a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_exodus_py.html @@ -0,0 +1,272 @@ +databases/exodus.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  exodus.py
    +#
    +#  Tests:      mesh      - 2D, 3D unstructured
    +#              plots     - 3D - Pseudocolor, mesh, boundary, subset,
    +#                          2D - Filled boundary, label 
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 31, 2005
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Fri Oct  7 14:27:33 PDT 2005
    +#    Explicitly reference the name of the variable to displace by, since the
    +#    default changed.
    +#
    +#    Brad Whitlock, Mon Nov 14 14:31:46 PST 2005
    +#    Added testing for SHELL4 support.
    +#
    +#    Eric Brugger, Wed Mar 14 14:04:32 PDT 2007
    +#    Added testing for element block names.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("Exodus")
    +
    +OpenDatabase(data_path("exodus_test_data/balls.e.4.* database"))
    +
    +AddPlot("Pseudocolor", "EQPS")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.75, 0.55, 0.36)
    +SetView3D(v)
    +
    +Test("exodus_01")
    +
    +s = SILRestriction()
    +sets = s.SetsInCategory("ElementBlock")
    +s.TurnOffSet(sets[0])
    +s.TurnOffSet(sets[1])
    +s.TurnOffSet(sets[2])
    +SetPlotSILRestriction(s)
    +
    +Test("exodus_02")
    +
    +SetTimeSliderState(18)
    +Test("exodus_03")
    +
    +files = s.SetsInCategory("File")
    +s.TurnOffSet(files[3])
    +SetPlotSILRestriction(s)
    +Test("exodus_04")
    +
    +ToggleMaintainViewMode()
    +d = DisplaceAttributes()
    +d.variable = "DISPL"
    +SetDefaultOperatorOptions(d)
    +AddOperator("Displace")
    +DrawPlots()
    +Test("exodus_05")
    +ToggleMaintainViewMode()
    +
    +TestSection("Testing SHELL4 support")
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/balls.e.4.* database"))
    +OpenDatabase(data_path("exodus_test_data/aircraft.exoII"))
    +
    +AddPlot("Mesh", "Mesh")
    +DrawPlots()
    +v = View3DAttributes()
    +v.viewNormal = (-0.51221, 0.429119, 0.743974)
    +v.focus = (0, 0, -4)
    +v.viewUp = (0.222628, 0.902964, -0.367549)
    +v.viewAngle = 30
    +v.parallelScale = 66
    +v.nearPlane = -132
    +v.farPlane = 132
    +v.imagePan = (-0.0367114, 0.0152384)
    +v.imageZoom = 1.51675
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, -4)
    +SetView3D(v)
    +Test("exodus_06")
    +
    +TestSection("Testing support element block names")
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/aircraft.exoII"))
    +OpenDatabase(data_path("exodus_test_data/test.exo"))
    +
    +AddPlot("Subset", "ElementBlock")
    +AddPlot("Label", "ElementBlock")
    +DrawPlots()
    +Test("exodus_07")
    +
    +TestSection("Testing 2D \"NSIDED\" element type")
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/test.exo"))
    +OpenDatabase(data_path("exodus_test_data/porflow5_2_1_r1.exo"))
    +
    +AddPlot("Mesh","Mesh")
    +DrawPlots()
    +v = View2DAttributes()
    +v.windowCoords = (-115, 70, -80, 100)
    +SetView2D(v)
    +Test("exodus_08")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/porflow5_2_1_r1.exo"))
    +OpenDatabase(data_path("exodus_test_data/kassbohm1.exo"))
    +AddPlot("Mesh","Mesh")
    +DrawPlots()
    +v = View3DAttributes()
    +v.viewNormal = (-0.664463, 0.34202, 0.664463)
    +v.focus = (1, 1, 0.75)
    +v.viewUp = (0.241845, 0.939693, -0.241845)
    +v.parallelScale = 3.25
    +v.nearPlane = -6.5
    +v.farPlane = 6.5
    +v.imageZoom = 1.5
    +SetView3D(v)
    +Test("exodus_09")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/kassbohm1.exo"))
    +OpenDatabase(data_path("exodus_test_data/dodecahedron.exo"))
    +AddPlot("Mesh","Mesh")
    +DrawPlots()
    +ResetView()
    +Test("exodus_10")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/dodecahedron.exo"))
    +OpenDatabase(data_path("exodus_test_data/tri3.exo"))
    +AddPlot("Mesh","Mesh")
    +AddPlot("Pseudocolor","elem_map")
    +DrawPlots()
    +ResetView()
    +Test("exodus_11")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/tri3.exo"))
    +OpenDatabase(data_path("exodus_test_data/tri6.exo"))
    +AddPlot("Mesh","Mesh")
    +AddPlot("Pseudocolor","elem_map")
    +DrawPlots()
    +ResetView()
    +Test("exodus_12")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/tri6.exo"))
    +OpenDatabase(data_path("exodus_test_data/exo-plugin-problem-kassbohm.exo"))
    +AddPlot("Pseudocolor","SP1_S11_avg")
    +DrawPlots()
    +ResetView()
    +Test("exodus_13a")
    +DeleteAllPlots()
    +AddPlot("Pseudocolor","SP3_S11_avg")
    +DrawPlots()
    +Test("exodus_13b")
    +DeleteAllPlots()
    +AddPlot("Mesh","Mesh")
    +AddPlot("Subset","ElementBlock")
    +DrawPlots()
    +ResetView()
    +Test("exodus_13c")
    +
    +s = SILRestriction()
    +ebsets = s.SetsInCategory("ElementBlock")
    +s.TurnOffSet(ebsets[1]) # SHELL
    +SetPlotSILRestriction(s)
    +sa = SubsetAttributes()
    +sa.lineWidth = 4
    +SetPlotOptions(sa)
    +Test("exodus_14")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/exo-plugin-problem-kassbohm.exo"))
    +exoOpts = GetDefaultFileOpenOptions("Exodus")
    +exoOpts['Automagically Detect Compound Variables'] = 1
    +exoOpts['Use Material Convention'] = 1 # ALEGRA
    +SetDefaultFileOpenOptions("Exodus", exoOpts)
    +OpenDatabase(data_path("exodus_test_data/snl_data/mixed2d/explwire2d.exo.8.* database"))
    +AddPlot("FilledBoundary", "Materials")
    +DrawPlots()
    +ResetView()
    +Test("exodus_15")
    +TimeSliderSetState(5)
    +Test("exodus_16")
    +DeleteAllPlots()
    +AddPlot("Vector","VELOCITY")
    +DrawPlots()
    +Test("exodus_17")
    +TimeSliderNextState()
    +Test("exodus_18")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/snl_data/mixed2d/explwire2d.exo.8.* database"))
    +OpenDatabase(data_path("exodus_test_data/snl_data/mixed3d/coax3D-wedge-tm.exo.8.* database"))
    +AddPlot("FilledBoundary", "Materials")
    +DrawPlots()
    +ResetView()
    +Test("exodus_19")
    +TimeSliderSetState(4)
    +Test("exodus_20")
    +
    +s = SILRestriction()
    +msets = s.SetsInCategory("Materials")
    +s.TurnOffSet(msets[1])
    +SetPlotSILRestriction(s)
    +Test("exodus_21")
    +s.TurnOnSet(msets[1])
    +s.TurnOffSet(msets[2])
    +SetPlotSILRestriction(s)
    +Test("exodus_22")
    +
    +TestSection("High Order Elements")
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/snl_data/mixed3d/coax3D-wedge-tm.exo.8.* database"))
    +OpenDatabase(data_path("exodus_test_data/sphere-HEX20.ex2"))
    +AddPlot("Pseudocolor","coordx")
    +DrawPlots()
    +ResetView()
    +Test("exodus_23")
    +AddOperator("Slice")
    +DrawPlots()
    +Test("exodus_24")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/sphere-HEX20.ex2"))
    +OpenDatabase(data_path("exodus_test_data/sphere-HEX27.ex2"))
    +AddPlot("Pseudocolor","coordx")
    +DrawPlots()
    +ResetView()
    +Test("exodus_25")
    +AddOperator("Slice")
    +DrawPlots()
    +Test("exodus_26")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/sphere-HEX27.ex2"))
    +OpenDatabase(data_path("exodus_test_data/abl_551/abl_5km_5km_1km_neutral.e.8.* database"))
    +AddPlot("Contour","velocity_magnitude")
    +ca = ContourAttributes()
    +ca.contourMethod = ca.Value
    +ca.contourValue = (7)
    +SetPlotOptions(ca)
    +DrawPlots()
    +ResetView()
    +Test("exodus_27")
    +v = GetView3D()
    +v.RotateAxis(1,-30)
    +SetView3D(v)
    +Test("exodus_28")
    +v.RotateAxis(1,-30)
    +SetView3D(v)
    +Test("exodus_29")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("exodus_test_data/abl_551/abl_5km_5km_1km_neutral.e.8.* database"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_export_db.html b/2024-12-12-22:00/poodle_trunk_serial/databases_export_db.html new file mode 100644 index 000000000..23e33993a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_export_db.html @@ -0,0 +1,299 @@ + +Results for databases/export_db.py + +

    Results of VisIt Regression Test - databases/export_db

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    export_db_010.000.00
    export_db_020.000.00
    export_db_030.000.00
    export_db_040.000.00
    Test export of some surfaces.
    export_db_1_000.000.00
    export_db_1_010 modifications totalling 0 lines
    export_db_1_020.000.00
    export_db_1_030.000.00
    export_db_1_040.000.00
    export_db_1_050.000.00
    export_db_1_060.000.00
    export_db_1_070.000.00
    export_db_1_080.000.00
    export_db_1_090.000.00
    export_db_1_100.000.00
    export_db_1_110.000.00
    export_db_1_120.000.00
    export_db_1_130.000.00
    export_db_1_140.000.00
    export_db_1_150.000.00
    export_db_1_160.000.00
    export_db_1_170.000.00
    export_db_1_180.000.00
    export_db_1_190.000.00
    export_db_1_200.000.00
    Test Tecplot multiblock export.
    export_db_3_000.000.00
    export_db_3_010.000.00
    export_db_3_020.000.00
    export_db_3_030.000.00
    export_db_3_040.000.00
    Test VTK multiblock export.
    export_db_4_010.000.00
    export_db_4_020.000.00
    export_db_4_030.000.00
    export_db_4_040.000.00
    export_db_4_050.000.00
    Test bov export with and without compression.
    test_bov_uncompressed.bov exists
     "True" .eq. "True" : True
    test_bov_uncompressed.bof exists
     "True" .eq. "True" : True
    export_db_5_010.000.00
    test_bov_gzip.bov exists
     "True" .eq. "True" : True
    test_bov_gzip.bof.gz exists
     "True" .eq. "True" : True
    export_db_5_020.000.00
    export_db_vtk_tets_ucd3d0 modifications totalling 0 lines
    export_db_vtk_tets_specmix_ucd0 modifications totalling 0 lines
    Test htg export.
    globe.dx.htg0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_export_db_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_export_db_py.html new file mode 100644 index 000000000..79eeff4c5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_export_db_py.html @@ -0,0 +1,611 @@ +databases/export_db.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  export_db.py
    +#
    +#  Tests:      mesh      - 3D unstructured
    +#              plots     - Pseudocolor
    +#
    +#  Defect ID:  '6288, '6290, '6587, '6366
    +#
    +#  Programmer: Hank Childs
    +#  Date:       July 1, 2005
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Thu Sep 15 16:33:48 PDT 2005
    +#    Add test for exporting CMFEs as secondary variables ('6587)
    +#
    +#    Kathleen Bonnell, Tue May  2 08:58:01 PDT 2006
    +#    Corrected exported database names (from .visit to .vtk).
    +#
    +#    Hank Childs, Wed Mar 28 11:33:16 PDT 2007
    +#    Uncommented tests for '6366, which were previously checked in, but
    +#    commented out.
    +#
    +#    Mark C. Miller Fri Aug  8 09:11:44 PDT 2008
    +#    Fixed typo of missing '()' on call to DeleteAllPlots
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to switch between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Wed Feb 25 14:08:53 PST 2015
    +#    Add Mesh Plot for silo data exported as VTK, to test that mesh name
    +#    was properly exported.
    +#
    +#    Kathleen Biagas, Fri Feb 17, 2017
    +#    Update for new VTK export options.  Added test4, which tests the new
    +#    options.
    +#
    +#    Alister Maguire, Thu Apr 26 13:31:31 PDT 2018
    +#    Added test for bov compression.
    +#
    +#    Kathleen Biagas, Wed May 16, 2018
    +#    Use python's gzip instead of subprocess('gunzip') so test will run
    +#    correctly on Windows.  Modified AssertTrue calls to have text stating
    +#    what is being tested.
    +#
    +#    Mark C. Miller, Wed Apr 10 10:24:32 PDT 2019
    +#    Add tetrahedralize test
    +#
    +#    Mark C. Miller, Mon Jan 11 10:32:17 PST 2021
    +#    Replace AssertTrue() with TestValueEQ(..., True)
    +#
    +#    Kathleen Biagas, Thu Jun 24, 2021
    +#    Moved test for exporting and plotting different formats to new function.
    +#    Added testing of the export-and-plot with changed dirname. (#5462)
    +#    Removed cleanup_files since temporary files are written to the _run dir
    +#    which gets removed on exit (unless --no-cleanup specified).
    +#
    +#    Eric Brugger, Mon May 1 15:28:30 PST 2023
    +#    Added HTG export test.
    +#
    +# ----------------------------------------------------------------------------
    +import time
    +import os.path
    +import subprocess
    +import fnmatch
    +
    +def test0():
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    AddPlot("Pseudocolor", "t")
    +    DrawPlots()
    +
    +    # Set the export database attributes.
    +    e = ExportDBAttributes()
    +    e.db_type = "VTK"
    +    e.filename = "test_ex_db"
    +    ExportDatabase(e)
    +    time.sleep(1)
    +
    +    e.variables = ("u", "v")
    +    e.filename = "test_ex_db2"
    +    e.db_type = "Silo"
    +    ExportDatabase(e)
    +    time.sleep(1)
    +
    +    DeleteAllPlots()
    +#    CloseDatabase(silo_data_path("globe.silo"))
    +
    +    OpenDatabase("test_ex_db.vtk")
    +    AddPlot("Pseudocolor", "t")
    +    DrawPlots()
    +    Test("export_db_01")
    +    DeleteAllPlots()
    +#    CloseDatabase("test_ex_db.vtk")
    +
    +    OpenDatabase("test_ex_db2.silo")
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    Test("export_db_02")
    +    DeleteAllPlots()
    +#    CloseDatabase("test_ex_db2.silo")
    +
    +    OpenDatabase(silo_data_path("wave.visit"))
    +    DefineScalarExpression("cmfe", "conn_cmfe(coord(<%s:quadmesh>)[1], quadmesh)" % cmfe_silo_data_path("wave0020.silo"))
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    e.variables = ("cmfe")
    +    e.filename = "test_ex_db3"
    +    e.db_type = "VTK"
    +    ExportDatabase(e)
    +    time.sleep(1)
    +    DeleteAllPlots()
    +
    +    DeleteExpression("cmfe")
    +    OpenDatabase("test_ex_db3.vtk")
    +    AddPlot("Pseudocolor", "cmfe")
    +    DrawPlots()
    +    Test("export_db_03")
    +
    +    # Ensure meshname was written by creating mesh plot with old db's meshname
    +    AddPlot("Mesh", "quadmesh")
    +    DrawPlots()
    +    Test("export_db_04")
    +    DeleteAllPlots()
    +#    CloseDatabase("test_ex_db3.vtk")
    +#    CloseDatabase(silo_data_path("wave.visit"))
    +
    +def VTK_check_binary(filename):
    +    if (sys.version_info > (3, 0)):
    +        f = open(filename, "rt", encoding='utf-8', errors='ignore')
    +    else:
    +        f = open(filename, "rt")
    +    line = ""
    +    for i in (0,1,2):
    +        line = f.readline()
    +    b = "BINARY" == line[0:6]
    +    return b
    +
    +
    +# Test exporting some surfaces in other formats and plotting the results.
    +# e = ExportDBAttributes
    +# v = View3D
    +# a = AnnotationAttributes
    +# count = current test number (used for test names)
    +# usingWriteGroups = True or False
    +
    +def export_and_plot(e, v, a, count, usingWriteGroups):
    +
    +    # formats fields:
    +    # {DBName: (no-write-group exported name to read, write-group exported name to read, plot type, var name)}
    +
    +    formats = { "PLY":          ("export_PLY.ply",          "*.ply",         "Subset",      "PLY_mesh"),
    +                "RAW":          ("export_RAW.raw",          "*.raw",         "Subset",      "mesh"),
    +                "STL":          ("export_STL.stl",          "*.stl",         "Subset",      "STL_mesh"),
    +                "Silo":         ("export_Silo.silo",        "wg_Silo.silo",  "Pseudocolor", "u"),
    +                "Tecplot":      ("export_Tecplot.tec",      "*.tec",         "Pseudocolor", "u"),
    +                "VTK":          ("export_VTK.visit",        "wg_VTK.visit",  "Pseudocolor", "u"),
    +                "WavefrontOBJ": ("export_WavefrontOBJ.obj", "*.obj",         "Subset",      "OBJMesh"),
    +                "XYZ":          ("export_XYZ.xyz",          "*.xyz",         "Subset",      "mesh"),
    +                "Xmdv":         ("export_Xmdv.visit",       "wg_Xmdv.visit", "Pseudocolor", "u")
    +              }
    +
    +    keys = sorted(formats.keys())
    +    test_name_base="export_db_%d"%(2 if usingWriteGroups else 1)
    +
    +    # do all the exports
    +    for f in keys:
    +        export_name="%s_%s"%("wg" if usingWriteGroups else "export", f)
    +        e.db_type = f
    +        e.db_type_fullname = f + "_1.0"
    +        e.filename = export_name
    +        ExportDatabase(e)
    +        time.sleep(1)
    +
    +    # now attempt to read the exported files
    +    if usingWriteGroups:
    +        files = sorted(fnmatch.filter(os.listdir(e.dirname), "wg_*"))
    +    for f in keys:
    +        # Add the exported data in window 2.
    +        AddWindow()
    +
    +        pattern = formats[f][1] if usingWriteGroups else formats[f][0]
    +        filelist=""
    +        opendbs = []
    +
    +        if pattern[0] == '*':
    +            # Read all of the filenames
    +            ext = pattern[2:]
    +            for datafile in files:
    +                if datafile[-len(ext):] == ext:
    +                    if OpenDatabase(datafile):
    +                        AddPlot(formats[f][2], formats[f][3])
    +                        opendbs = opendbs + [datafile]
    +                        filelist = filelist + datafile + "\n"
    +            DrawPlots()
    +        else:
    +            if OpenDatabase(pjoin(e.dirname, pattern)):
    +                md = GetMetaData(pattern)
    +                AddPlot(formats[f][2], formats[f][3])
    +                DrawPlots()
    +                if usingWriteGroups:
    +                    opendbs = opendbs + [pattern]
    +                    filelist = filelist + pattern + "\n"
    +            else:
    +                if not usingWriteGroups:
    +                    files = os.listdir(e.dirname)
    +                    files.sort()
    +                    s = ""
    +                    for fn in files:
    +                        if pattern in fn:
    +                            s = fn + "\n"
    +                    TestText("files", s)
    +                else:
    +                    filelist = "ERROR: " + "\n".join(os.listdir("."))
    +
    +        t = CreateAnnotationObject("Text2D")
    +        t.text = f
    +        t.position = (0.01, 0.91)
    +        t.height = 0.07
    +        SetView3D(v)
    +        SetAnnotationAttributes(a)
    +        Test("%s_%02d"%(test_name_base, count))
    +        if usingWriteGroups:
    +            TestText("%s_%02dfn"%(test_name_base, count),filelist)
    +        count=count+1
    +
    +        # Clean up window 2
    +        DeleteAllPlots()
    +        #if not usingWriteGroups:
    +        #    CloseDatabase(pattern)
    +        #else:
    +        #    for db in opendbs:
    +        #        CloseDatabase(db)
    +        DeleteWindow()
    +
    +    return count
    +
    +def test1():
    +    TestSection("Test export of some surfaces.")
    +    maindb = silo_data_path("multi_rect3d.silo")
    +    OpenDatabase(maindb)
    +    DefineScalarExpression("rad", "magnitude(coords(mesh1))")
    +    AddPlot("Pseudocolor", "u")
    +    AddOperator("Isosurface")
    +    iso = IsosurfaceAttributes()
    +    iso.contourValue = (0.55, 1.455)
    +    iso.contourMethod = iso.Value
    +    iso.variable = "rad"
    +    SetOperatorOptions(iso)
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.467474, 0.301847, 0.830877)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.140705, 0.953323, -0.267166)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.imagePan = (-0.0154649, 0.027457)
    +    v.imageZoom = 1.14276
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 0.5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +    Test("export_db_1_00")
    +
    +    # Test VTK binary
    +    e = ExportDBAttributes()
    +    e.db_type = "VTK"
    +    e.filename = "binary_VTK"
    +    opts = GetExportOptions("VTK")
    +    #opts['Binary format'] = 1
    +    opts['FileFormat'] = 1
    +    ExportDatabase(e, opts)
    +    time.sleep(1)
    +    line = "The binary_VTK.0.vtk file is NOT binary.\n\n"
    +    visitfile = " ".join(open("binary_VTK.visit").readlines())
    +    if VTK_check_binary("binary_VTK/binary_VTK.0.vtk"):
    +        line = "The binary_VTK.0.vtk file is binary.\n\n"
    +    s = line + visitfile
    +    TestText("export_db_1_01", s)
    +
    +    a = GetAnnotationAttributes()
    +
    +    AddWindow()
    +    OpenDatabase("binary_VTK.visit")
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    t = CreateAnnotationObject("Text2D")
    +    t.text = "VTK"
    +    t.position = (0.01, 0.91)
    +    t.height = 0.07
    +    SetView3D(v)
    +    SetAnnotationAttributes(a)
    +    Test("export_db_1_02")
    +#    CloseDatabase("binary_VTK.visit")
    +    DeleteWindow()
    +
    +    # Test exporting some surfaces in other formats and plotting the results.
    +
    +    count = 3
    +    count = export_and_plot(e, v, a, count, False)
    +
    +    # change directory and retry the export_and_plot
    +    edir = pjoin(TestEnv.params["run_dir"], "exports")
    +    if not os.path.isdir(edir):
    +        os.mkdir(edir)
    +    e.dirname=edir
    +
    +    export_and_plot(e, v, a, count, False)
    +
    +    # Clean up window 1
    +    DeleteAllPlots()
    +#    CloseDatabase(maindb)
    +
    +def test2(writeGroupSize):
    +    TestSection("Test export with write groups (parallel).")
    +    maindb = silo_data_path("multi_rect3d.silo")
    +    OpenDatabase(maindb)
    +    DefineScalarExpression("rad", "magnitude(coords(mesh1))")
    +    AddPlot("Pseudocolor", "u")
    +    AddOperator("Isosurface")
    +    iso = IsosurfaceAttributes()
    +    iso.contourValue = (0.55, 1.455)
    +    iso.contourMethod = iso.Value
    +    iso.variable = "rad"
    +    SetOperatorOptions(iso)
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.467474, 0.301847, 0.830877)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.140705, 0.953323, -0.267166)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.imagePan = (-0.0154649, 0.027457)
    +    v.imageZoom = 1.14276
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 0.5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +    Test("export_db_2_00")
    +
    +    a = GetAnnotationAttributes()
    +
    +    # Test exporting some surfaces in other formats and plotting the results.
    +    e = ExportDBAttributes()
    +    e.writeUsingGroups = 1
    +    e.groupSize = writeGroupSize
    +    count = 1
    +    count = export_and_plot(e, v, a, count, True)
    +
    +    # change directory and retry the export_and_plot
    +    edir = pjoin(TestEnv.params["run_dir"], "exports_2")
    +    if not os.path.isdir(edir):
    +        os.mkdir(edir)
    +    e.dirname=edir
    +
    +    export_and_plot(e, v, a, count, True)
    +
    +    # Clean up window 1
    +    DeleteAllPlots()
    +#    CloseDatabase(maindb)
    +
    +def test3():
    +    TestSection("Test Tecplot multiblock export.")
    +    maindb = silo_data_path("multi_rect3d.silo")
    +    OpenDatabase(maindb)
    +    DefineScalarExpression("rad", "magnitude(coords(mesh))")
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.467474, 0.301847, 0.830877)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.140705, 0.953323, -0.267166)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.imagePan = (-0.0154649, 0.027457)
    +    v.imageZoom = 1.14276
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 0.5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +    Test("export_db_3_00")
    +    a = GetAnnotationAttributes()
    +
    +    e = ExportDBAttributes()
    +    e.db_type = "Tecplot"
    +    e.db_type_fullname = "Tecplot_1.0"
    +    e.filename = "rectTecplot"
    +    e.writeUsingGroups = 0
    +    e.variables = ("default", "v", "rad")
    +    ExportDatabase(e)
    +    time.sleep(1)
    +
    +    # Add the exported database in window 2
    +    AddWindow()
    +    OpenDatabase("rectTecplot.tec")
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    SetAnnotationAttributes(a)
    +    SetView3D(v)
    +    Test("export_db_3_01")
    +    ChangeActivePlotsVar("v")
    +    Test("export_db_3_02")
    +    ChangeActivePlotsVar("rad")
    +    Test("export_db_3_03")
    +
    +    # Make sure we have volume data
    +    AddOperator("ThreeSlice")
    +    atts = ThreeSliceAttributes()
    +    atts.y = 0.5
    +    atts.x = 0.5
    +    atts.z = 0.5
    +    SetOperatorOptions(atts)
    +    DrawPlots()
    +    Test("export_db_3_04")
    +
    +    # Clean up window 2
    +    DeleteAllPlots()
    +#    CloseDatabase("rectTecplot.tec")
    +    DeleteWindow()
    +
    +    # Back to window 1
    +    DeleteAllPlots()
    +#    CloseDatabase(maindb)
    +
    +def test4():
    +    TestSection("Test VTK multiblock export.")
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    Test("export_db_4_01")
    +
    +    e = ExportDBAttributes()
    +    e.db_type = "VTK"
    +    e.filename = "multi_rect3d_LA"
    +    opts = GetExportOptions("VTK")
    +    opts['FileFormat'] = "Legacy Ascii"
    +    ExportDatabase(e, opts)
    +    time.sleep(1)
    +    ReplaceDatabase("multi_rect3d_LA.visit")
    +    Test("export_db_4_02")
    +
    +    e.filename = "multi_rect3d_LB"
    +    opts['FileFormat'] = "Legacy Binary"
    +    ExportDatabase(e, opts)
    +    time.sleep(1)
    +    ReplaceDatabase("multi_rect3d_LB.visit")
    +    Test("export_db_4_03")
    +
    +    e.filename = "multi_rect3d_XA"
    +    opts['FileFormat'] = "XML Ascii"
    +    ExportDatabase(e, opts)
    +    time.sleep(1)
    +    ReplaceDatabase("multi_rect3d_XA.vtm")
    +    Test("export_db_4_04")
    +
    +    e.filename = "multi_rect3d_XB"
    +    opts['FileFormat'] = "XML Binary"
    +    ExportDatabase(e, opts)
    +    time.sleep(1)
    +    ReplaceDatabase("multi_rect3d_XB.vtm")
    +    Test("export_db_4_05")
    +
    +    DeleteAllPlots()
    +
    +def test_bov():
    +    TestSection("Test bov export with and without compression.")
    +    maindb = silo_data_path("noise.silo")
    +    OpenDatabase(maindb)
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +
    +    #
    +    # test w/o compression
    +    #
    +    e = ExportDBAttributes()
    +    e.db_type = "BOV"
    +    e.db_type_fullname = "BOV_1.0"
    +    e.filename = "test_bov_uncompressed"
    +    e.variables = ("default")
    +    opts = GetExportOptions("BOV")
    +    opts["Compression"] = "None"
    +    ExportDatabase(e, opts)
    +    time.sleep(1)
    +    TestValueEQ("test_bov_uncompressed.bov exists", os.path.isfile("test_bov_uncompressed.bov"), True)
    +    TestValueEQ("test_bov_uncompressed.bof exists", os.path.isfile("test_bov_uncompressed.bof"), True)
    +    ReplaceDatabase("test_bov_uncompressed.bov")
    +    Test("export_db_5_01")
    +
    +    #
    +    # test w gzip compression
    +    #
    +    e.filename = "test_bov_gzip"
    +    opts["Compression"] = "gzip"
    +    ExportDatabase(e, opts)
    +    time.sleep(1)
    +    TestValueEQ("test_bov_gzip.bov exists", os.path.isfile("test_bov_gzip.bov"), True)
    +    TestValueEQ("test_bov_gzip.bof.gz exists", os.path.isfile("test_bov_gzip.bof.gz"), True)
    +    ReplaceDatabase("test_bov_gzip.bov")
    +    Test("export_db_5_02")
    +
    +    DeleteAllPlots()
    +
    +def test_vtk_tetrahedralize():
    +    dbs_noext = ["ucd3d", "specmix_ucd"]
    +    for db_noext in dbs_noext:
    +        db = "%s.silo"%db_noext
    +        OpenDatabase(silo_data_path(db))
    +        AddPlot("Pseudocolor","d") # both dbs have variable 'd'
    +        DrawPlots()
    +        Query("NumZones")
    +        nzOrig = int(GetQueryOutputValue())
    +
    +        # Test VTK binary
    +        e = ExportDBAttributes()
    +        e.db_type = "VTK"
    +        e.filename = "%s_ascii_VTK_tets"%db_noext
    +        opts = GetExportOptions("VTK")
    +        opts['FileFormat'] = "Legacy Ascii"
    +        opts['Tetrahedralize'] = True
    +        ExportDatabase(e, opts)
    +        time.sleep(1)
    +        DeleteAllPlots()
    +#        CloseDatabase(silo_data_path(db))
    +        OpenDatabase("%s_ascii_VTK_tets.vtk"%db_noext)
    +        AddPlot("Pseudocolor","d")
    +        DrawPlots()
    +        Query("NumZones")
    +        nzNew = int(GetQueryOutputValue())
    +        TestText("export_db_vtk_tets_%s"%db_noext, "Ratio of exported zone count to original is %d"%(nzNew/nzOrig))
    +        DeleteAllPlots()
    +
    +def test_htg():
    +    TestSection("Test htg export.")
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    AddPlot("Pseudocolor", "dx")
    +    AddOperator("Resample")
    +    resample = ResampleAttributes()
    +    resample.useExtents = 0
    +    resample.startX = -10
    +    resample.endX = 10
    +    resample.samplesX = 16
    +    resample.startY = -10
    +    resample.endY = 10
    +    resample.samplesY = 16
    +    resample.is3D = 1
    +    resample.startZ = -10
    +    resample.endZ = 10
    +    resample.samplesZ = 16
    +    resample.defaultValue = -10000
    +    resample.distributedResample = 0
    +    resample.cellCenteredOutput = 1
    +    SetOperatorOptions(resample)
    +    DrawPlots()
    +
    +    e = ExportDBAttributes()
    +    e.db_type = "HTG"
    +    e.filename = "globe"
    +    opts = GetExportOptions("HTG")
    +    opts['Blank value'] = -10000
    +    ExportDatabase(e, opts)
    +
    +    htg_text = Path('globe.dx.htg').read_text()
    +
    +    TestText("globe.dx.htg", htg_text)
    +
    +    DeleteAllPlots()
    +
    +def main():
    +    test0()
    +    test1()
    +    if GetEngineProperties(GetEngineList()[0]).numProcessors > 1:
    +        # We just use 2 processors normally so let's set the write group size
    +        # to 1 so each rank will write its own data using a different write
    +        # group. For certain formats, there will be 1 data file per write
    +        # group, or in this case 2 output files.
    +        test2(1)
    +    test3()
    +    test4()
    +    test_bov()
    +    test_vtk_tetrahedralize()
    +    test_htg()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_ffp.html b/2024-12-12-22:00/poodle_trunk_serial/databases_ffp.html new file mode 100644 index 000000000..cd823c210 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_ffp.html @@ -0,0 +1,60 @@ + +Results for databases/ffp.py + +

    Results of VisIt Regression Test - databases/ffp

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ffp_000.000.00
    ffp_010.000.00
    ffp_020.000.00
    ffp_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_ffp_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_ffp_py.html new file mode 100644 index 000000000..349afd899 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_ffp_py.html @@ -0,0 +1,260 @@ +databases/ffp.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ffp.py
    +#
    +#  Programmer: Olivier Cessenat
    +#  Tue May  8 21:49:21 PDT 2018
    +#
    +#  Modifications:
    +#     Eddie Rusu, Tue Apr 13 12:08:59 PDT 2021
    +#     Changed Pseudocolor CurrentPlot to ActualData.
    +# ----------------------------------------------------------------------------
    +TurnOffAllAnnotations()
    +
    +OpenDatabase(data_path("ffp_test_data/nasa_almond_pec.ffp.gz"), 0, "ffp_1.0")
    +AddPlot("Pseudocolor", "cffp", 1, 1)
    +# Begin spontaneous state
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.160095, 0.96257, 0.218697)
    +View3DAtts.focus = (0, 0, 0)
    +View3DAtts.viewUp = (-0.983472, 0.136561, 0.118883)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 3.4641
    +View3DAtts.nearPlane = -6.9282
    +View3DAtts.farPlane = 6.9282
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1.21
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (0, 0, 0)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +View3DAtts.windowValid = 1
    +SetView3D(View3DAtts)
    +# End spontaneous state
    +
    +DrawPlots()
    +SaveWindowAtts = SaveWindowAttributes()
    +SaveWindowAtts.outputToCurrentDirectory = 1
    +SaveWindowAtts.outputDirectory = "."
    +SaveWindowAtts.fileName = "nasa_almond_pec"
    +SaveWindowAtts.family = 1
    +SaveWindowAtts.format = SaveWindowAtts.PNG  # BMP, CURVE, JPEG, OBJ, PNG, POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA, VTK, PLY
    +SaveWindowAtts.width = 1024
    +SaveWindowAtts.height = 1024
    +SaveWindowAtts.screenCapture = 0
    +SaveWindowAtts.saveTiled = 0
    +SaveWindowAtts.quality = 80
    +SaveWindowAtts.progressive = 0
    +SaveWindowAtts.binary = 0
    +SaveWindowAtts.stereo = 0
    +SaveWindowAtts.compression = SaveWindowAtts.PackBits  # None, PackBits, Jpeg, Deflate
    +SaveWindowAtts.forceMerge = 0
    +SaveWindowAtts.resConstraint = SaveWindowAtts.ScreenProportions  # NoConstraint, EqualWidthHeight, ScreenProportions
    +SaveWindowAtts.advancedMultiWindowSave = 0
    +SetSaveWindowAttributes(SaveWindowAtts)
    +Test("ffp_00", SaveWindowAtts)
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("ffp_test_data/nasa_almond_pec.ffp.gz"))
    +
    +# Test standard ffp format
    +OpenDatabase(data_path("ffp_test_data/sphereMie.ffp"), 0)
    +AddPlot("Pseudocolor", "mffp", 1, 1)
    +PseudocolorAtts = PseudocolorAttributes()
    +PseudocolorAtts.scaling = PseudocolorAtts.Skew  # Linear, Log, Skew
    +PseudocolorAtts.skewFactor = 10000
    +PseudocolorAtts.limitsMode = PseudocolorAtts.OriginalData  # OriginalData, ActualData
    +PseudocolorAtts.minFlag = 0
    +PseudocolorAtts.min = 0
    +PseudocolorAtts.maxFlag = 0
    +PseudocolorAtts.max = 1
    +PseudocolorAtts.centering = PseudocolorAtts.Natural  # Natural, Nodal, Zonal
    +PseudocolorAtts.colorTableName = "hot"
    +PseudocolorAtts.invertColorTable = 0
    +PseudocolorAtts.opacityType = PseudocolorAtts.FullyOpaque  # ColorTable, FullyOpaque, Constant, Ramp, VariableRange
    +PseudocolorAtts.opacityVariable = ""
    +PseudocolorAtts.opacity = 1
    +PseudocolorAtts.opacityVarMin = 0
    +PseudocolorAtts.opacityVarMax = 1
    +PseudocolorAtts.opacityVarMinFlag = 0
    +PseudocolorAtts.opacityVarMaxFlag = 0
    +PseudocolorAtts.pointSize = 0.05
    +PseudocolorAtts.pointType = PseudocolorAtts.Point  # Box, Axis, Icosahedron, Octahedron, Tetrahedron, SphereGeometry, Point, Sphere
    +PseudocolorAtts.pointSizeVarEnabled = 0
    +PseudocolorAtts.pointSizeVar = "default"
    +PseudocolorAtts.pointSizePixels = 2
    +PseudocolorAtts.lineType = PseudocolorAtts.Line  # Line, Tube, Ribbon
    +PseudocolorAtts.lineWidth = 0
    +#PseudocolorAtts.tubeDisplayDensity = 10
    +PseudocolorAtts.tubeRadiusSizeType = PseudocolorAtts.FractionOfBBox  # Absolute, FractionOfBBox
    +PseudocolorAtts.tubeRadiusAbsolute = 0.125
    +PseudocolorAtts.tubeRadiusBBox = 0.005
    +#PseudocolorAtts.varyTubeRadius = 0
    +#PseudocolorAtts.varyTubeRadiusVariable = ""
    +#PseudocolorAtts.varyTubeRadiusFactor = 10
    +#PseudocolorAtts.endPointType = PseudocolorAtts.NONE  # None, Tails, Heads, Both
    +#PseudocolorAtts.endPointStyle = PseudocolorAtts.Spheres  # Spheres, Cones
    +PseudocolorAtts.endPointRadiusSizeType = PseudocolorAtts.FractionOfBBox  # Absolute, FractionOfBBox
    +PseudocolorAtts.endPointRadiusAbsolute = 1
    +PseudocolorAtts.endPointRadiusBBox = 0.005
    +PseudocolorAtts.endPointRatio = 2
    +PseudocolorAtts.renderSurfaces = 1
    +PseudocolorAtts.renderWireframe = 0
    +PseudocolorAtts.renderPoints = 0
    +PseudocolorAtts.smoothingLevel = 0
    +PseudocolorAtts.legendFlag = 1
    +PseudocolorAtts.lightingFlag = 1
    +SetPlotOptions(PseudocolorAtts)
    +DrawPlots()
    +# Begin spontaneous state
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.782512, 0.282334, 0.554944)
    +View3DAtts.focus = (0, 0, -0.454083)
    +View3DAtts.viewUp = (-0.175089, 0.955097, -0.239027)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 0.557719
    +View3DAtts.nearPlane = -1.11544
    +View3DAtts.farPlane = 1.11544
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (0, 0, -0.454083)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +View3DAtts.windowValid = 1
    +SetView3D(View3DAtts)
    +# End spontaneous state
    +
    +SaveWindowAtts = SaveWindowAttributes()
    +SaveWindowAtts.outputToCurrentDirectory = 1
    +SaveWindowAtts.outputDirectory = "."
    +SaveWindowAtts.fileName = "sphereMie"
    +SaveWindowAtts.family = 1
    +SaveWindowAtts.format = SaveWindowAtts.PNG  # BMP, CURVE, JPEG, OBJ, PNG, POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA, VTK, PLY
    +SaveWindowAtts.width = 1024
    +SaveWindowAtts.height = 1024
    +SaveWindowAtts.screenCapture = 0
    +SaveWindowAtts.saveTiled = 0
    +SaveWindowAtts.quality = 80
    +SaveWindowAtts.progressive = 0
    +SaveWindowAtts.binary = 0
    +SaveWindowAtts.stereo = 0
    +SaveWindowAtts.compression = SaveWindowAtts.PackBits  # None, PackBits, Jpeg, Deflate
    +SaveWindowAtts.forceMerge = 0
    +SaveWindowAtts.resConstraint = SaveWindowAtts.ScreenProportions  # NoConstraint, EqualWidthHeight, ScreenProportions
    +SaveWindowAtts.advancedMultiWindowSave = 0
    +SetSaveWindowAttributes(SaveWindowAtts)
    +Test("ffp_01", SaveWindowAtts)
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("ffp_test_data/sphereMie.ffp"))
    +OpenDatabase(data_path("ffp_test_data/mksn10.ffp"))
    +AddPlot("Pseudocolor", "sffp", 1, 1)
    +AddPlot("Mesh", "sphere", 1, 1)
    +DrawPlots()
    +
    +# Begin spontaneous state
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.382511, -0.663647, 0.642852)
    +View3DAtts.focus = (0, 0, 0)
    +View3DAtts.viewUp = (-0.146698, 0.643316, 0.751415)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 1.73205
    +View3DAtts.nearPlane = -3.4641
    +View3DAtts.farPlane = 3.4641
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (0, 0, 0)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +View3DAtts.windowValid = 1
    +SetView3D(View3DAtts)
    +# End spontaneous state
    +
    +SaveWindowAtts = SaveWindowAttributes()
    +SaveWindowAtts.outputToCurrentDirectory = 1
    +SaveWindowAtts.outputDirectory = "."
    +SaveWindowAtts.fileName = "mksn10"
    +SaveWindowAtts.family = 1
    +SaveWindowAtts.format = SaveWindowAtts.PNG  # BMP, CURVE, JPEG, OBJ, PNG, POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA, VTK, PLY
    +SaveWindowAtts.width = 1024
    +SaveWindowAtts.height = 1024
    +SaveWindowAtts.screenCapture = 0
    +SaveWindowAtts.saveTiled = 0
    +SaveWindowAtts.quality = 80
    +SaveWindowAtts.progressive = 0
    +SaveWindowAtts.binary = 0
    +SaveWindowAtts.stereo = 0
    +SaveWindowAtts.compression = SaveWindowAtts.PackBits  # None, PackBits, Jpeg, Deflate
    +SaveWindowAtts.forceMerge = 0
    +SaveWindowAtts.resConstraint = SaveWindowAtts.ScreenProportions  # NoConstraint, EqualWidthHeight, ScreenProportions
    +SaveWindowAtts.advancedMultiWindowSave = 0
    +SetSaveWindowAttributes(SaveWindowAtts)
    +Test("ffp_02", SaveWindowAtts)
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("ffp_test_data/mksn10.ffp"))
    +OpenDatabase(data_path("ffp_test_data/mksn20.ffp"))
    +AddPlot("Pseudocolor", "cffp", 1, 1)
    +AddPlot("Mesh", "cphere", 1, 1)
    +DrawPlots()
    +
    +# Begin spontaneous state
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (-0.187617, -0.963273, 0.192107)
    +View3DAtts.focus = (0, 0, 0)
    +View3DAtts.viewUp = (0.0378766, 0.188339, 0.981373)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 3.4641
    +View3DAtts.nearPlane = -6.9282
    +View3DAtts.farPlane = 6.9282
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (0, 0, 0)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +View3DAtts.windowValid = 1
    +SetView3D(View3DAtts)
    +# End spontaneous state
    +
    +SaveWindowAtts = SaveWindowAttributes()
    +SaveWindowAtts.outputToCurrentDirectory = 1
    +SaveWindowAtts.outputDirectory = "."
    +SaveWindowAtts.fileName = "mksn20"
    +SaveWindowAtts.family = 1
    +SaveWindowAtts.format = SaveWindowAtts.PNG  # BMP, CURVE, JPEG, OBJ, PNG, POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA, VTK, PLY
    +SaveWindowAtts.width = 1024
    +SaveWindowAtts.height = 1024
    +SaveWindowAtts.screenCapture = 0
    +SaveWindowAtts.saveTiled = 0
    +SaveWindowAtts.quality = 80
    +SaveWindowAtts.progressive = 0
    +SaveWindowAtts.binary = 0
    +SaveWindowAtts.stereo = 0
    +SaveWindowAtts.compression = SaveWindowAtts.PackBits  # None, PackBits, Jpeg, Deflate
    +SaveWindowAtts.forceMerge = 0
    +SaveWindowAtts.resConstraint = SaveWindowAtts.ScreenProportions  # NoConstraint, EqualWidthHeight, ScreenProportions
    +SaveWindowAtts.advancedMultiWindowSave = 0
    +SetSaveWindowAttributes(SaveWindowAtts)
    +Test("ffp_03", SaveWindowAtts)
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("ffp_test_data/mksn20.ffp"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_flash.html b/2024-12-12-22:00/poodle_trunk_serial/databases_flash.html new file mode 100644 index 000000000..691fa5642 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_flash.html @@ -0,0 +1,42 @@ + +Results for databases/flash.py + +

    Results of VisIt Regression Test - databases/flash

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    flash_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_flash_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_flash_py.html new file mode 100644 index 000000000..efbc33842 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_flash_py.html @@ -0,0 +1,46 @@ +databases/flash.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  flash.py 
    +#
    +#  Tests:      FLASH data 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       March6, 2007 
    +#
    +#  Modifications:
    +#
    +#    Hank Childs and Randy Hudson, Sun Mar  2 15:38:05 PST 2008
    +#    Reflect new naming scheme.
    +#
    +#    Hank Childs, Tue Jan 19 13:29:29 PST 2010
    +#    Go back to original naming scheme.
    +#
    +# ----------------------------------------------------------------------------
    +import os, string
    +
    +RequiredDatabasePlugin("FLASH")
    +
    +SetTryHarderCyclesTimes(1)
    +# the following open command doesn't work (#7873)
    +##OpenDatabase(data_path("FLASH_test_data/orbit_hdf5_chk_0* database"))
    +
    +OpenDatabase(data_path("FLASH_test_data/orbit_hdf5_chk_0000"),0, "FLASH_1.0")
    +
    +
    +AddPlot("Pseudocolor","pden")
    +AddOperator("Clip")
    +c = ClipAttributes()
    +c.funcType = c.Plane
    +c.plane1Origin = (0.5, 0.5, 0.4)
    +c.plane1Normal = (0, 0, 1)
    +SetOperatorOptions(c)
    +DrawPlots()
    +v=GetView3D()
    +v.viewNormal=(-0.707107, 0, 0.707107)
    +v.viewUp=(0, 1, 0)
    +SetView3D(v)
    +Test("flash_01")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_global_node_ids.html b/2024-12-12-22:00/poodle_trunk_serial/databases_global_node_ids.html new file mode 100644 index 000000000..7b876eb56 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_global_node_ids.html @@ -0,0 +1,96 @@ + +Results for databases/global_node_ids.py + +

    Results of VisIt Regression Test - databases/global_node_ids

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    global_node_ids010.000.00
    global_node_ids020.000.00
    global_node_ids030.000.00
    global_node_ids040.000.00
    global_node_ids050.000.00
    global_node_ids060.000.00
    global_node_ids070.000.00
    global_node_ids080.000.00
    global_node_ids090.000.00
    global_node_ids100.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_global_node_ids_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_global_node_ids_py.html new file mode 100644 index 000000000..a74f30aa0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_global_node_ids_py.html @@ -0,0 +1,91 @@ +databases/global_node_ids.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  global_node_ids.py
    +#
    +#  Tests:      mesh      - 3D unstructured,multi-domain, global node ids, but
    +#                          no ghost zones.
    +#              plots     - mat subset, domain subset
    +#
    +#  Defect ID:  '5448
    +#
    +#  Programmer: Hank Childs
    +#  Date:       October 5, 2004
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +view = View3DAttributes()
    +view.viewNormal = (0.557976, 0.651128, 0.514485)
    +view.focus = (0.5, 0.5, 0.5)
    +view.viewUp = (-0.0955897, 0.666272, -0.739557)
    +view.viewAngle = 30
    +view.parallelScale = 0.866025
    +view.nearPlane = -1.73205
    +view.farPlane = 1.73205
    +view.perspective = 1
    +SetView3D(view)
    +
    +OpenDatabase(silo_data_path("global_node.silo"))
    +
    +AddPlot("FilledBoundary", "mat")
    +DrawPlots()
    +
    +# Test the normal material plot.
    +Test("global_node_ids01")
    +
    +# Make sure that the ghost zones were generated correctly.
    +view.nearPlane = -0.3
    +SetView3D(view)
    +Test("global_node_ids02")
    +
    +view.nearPlane = -1.73205
    +SetView3D(view)
    +
    +TurnMaterialsOff("1")
    +Test("global_node_ids03")
    +
    +TurnMaterialsOff()
    +TurnMaterialsOn("1")
    +Test("global_node_ids04")
    +
    +DeleteAllPlots()
    +
    +# Test that the SIL from the previous plot is preserved.
    +AddPlot("Subset", "domains")
    +DrawPlots()
    +Test("global_node_ids05")
    +
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "dist")
    +DrawPlots()
    +Test("global_node_ids06")
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +Test("global_node_ids07")
    +
    +DeleteAllPlots()
    +AddPlot("Contour", "dist")
    +DrawPlots()
    +Test("global_node_ids08")
    +
    +DefineScalarExpression("dist2", "recenter(dist)")
    +ChangeActivePlotsVar("dist2")
    +Test("global_node_ids09")
    +
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "dist2")
    +DrawPlots()
    +Test("global_node_ids10")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_h5part.html b/2024-12-12-22:00/poodle_trunk_serial/databases_h5part.html new file mode 100644 index 000000000..4c8d50559 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_h5part.html @@ -0,0 +1,60 @@ + +Results for databases/h5part.py + +

    Results of VisIt Regression Test - databases/h5part

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    h5part_010.000.00
    h5part_020.000.00
    h5part_030.000.00
    h5part_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_h5part_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_h5part_py.html new file mode 100644 index 000000000..6436943bf --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_h5part_py.html @@ -0,0 +1,64 @@ +databases/h5part.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  h5part.py
    +#
    +#  Programmer: Gunther Weber 
    +#  Date:       January, 2009 
    +#
    +#  Modifications:
    +#    Mark C. Miller, Wed Jan 21 09:36:13 PST 2009
    +#    Took Gunther's original code and integrated it with test suite.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("H5Part")
    +
    +TurnOffAllAnnotations()
    +
    +OpenDatabase(data_path("h5part_test_data/sample.h5part"), 0)
    +
    +AddPlot("Pseudocolor", "GaussianField", 1, 0)
    +DrawPlots()
    +Test("h5part_01")
    +
    +ChangeActivePlotsVar("LinearField")
    +View3DAtts = GetView3D()
    +View3DAtts.viewNormal = (1.000000, 0.000000, 0.0000000)
    +View3DAtts.focus = (31.5, 31.5, 31.5)
    +View3DAtts.viewUp = (0.000000, 1.000000, 0.0000000)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 54.5596
    +View3DAtts.nearPlane = -109.119
    +View3DAtts.farPlane = 109.119
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (31.5, 31.5, 31.5)
    +SetView3D(View3DAtts)
    +Test("h5part_02")
    +
    +DeleteActivePlots()
    +AddPlot("Pseudocolor", "px", 1, 0)
    +PseudocolorAtts = PseudocolorAttributes()
    +PseudocolorAtts.pointType = PseudocolorAtts.Sphere
    +PseudocolorAtts.pointSize = 1.5
    +SetPlotOptions(PseudocolorAtts)
    +DrawPlots()
    +Test("h5part_03")
    +
    +AddPlot("Pseudocolor", "LinearField", 1, 0)
    +AddOperator("Slice", 0)
    +SliceAtts = SliceAttributes()
    +SliceAtts.originType = SliceAtts.Intercept
    +SliceAtts.originIntercept = 30
    +SliceAtts.axisType = SliceAtts.XAxis
    +SliceAtts.project2d = 0
    +SliceAtts.meshName = "particles"
    +SetOperatorOptions(SliceAtts)
    +DrawPlots()
    +Test("h5part_04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_history.html b/2024-12-12-22:00/poodle_trunk_serial/databases_history.html new file mode 100644 index 000000000..4741f3669 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_history.html @@ -0,0 +1,48 @@ + +Results for databases/history.py + +

    Results of VisIt Regression Test - databases/history

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    history_010.000.00
    history_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_history_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_history_py.html new file mode 100644 index 000000000..4781f4d52 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_history_py.html @@ -0,0 +1,47 @@ +databases/history.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial
    +#  CLASSES: nightly
    +#
    +#  Test Case:  history.py 
    +#
    +#  Tests:      variables that only have values for real zones (not ghost zones)
    +#              Some history variables have this property.
    +#
    +#  Programmer: Hank Childs
    +#  Date:       January 9, 2004
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +
    +#
    +# Test that we can detect that there is a problem and add 0's.
    +#
    +AddPlot("Pseudocolor","hist")
    +DrawPlots()
    +
    +v=GetView3D()
    +v.viewNormal=(-0.35, -0.47, -0.8)
    +SetView3D(v)
    +Test("history_01")
    +
    +#
    +# Doing material selection flexes the code in a different way (it confirms
    +# that we can detect the problem immediately upon reading it from the disk).
    +# Test that that works correctly as well.
    +#
    +
    +sil = SILRestriction()
    +sets = sil.SetsInCategory("mat1")
    +sil.TurnOffSet(sets[0])
    +sil.TurnOffSet(sets[2])
    +SetPlotSILRestriction(sil)
    +Test("history_02")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_image.html b/2024-12-12-22:00/poodle_trunk_serial/databases_image.html new file mode 100644 index 000000000..5bace9827 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_image.html @@ -0,0 +1,60 @@ + +Results for databases/image.py + +

    Results of VisIt Regression Test - databases/image

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    image_010.000.00
    image_020.000.00
    image_030.000.00
    image_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_image_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_image_py.html new file mode 100644 index 000000000..7d18cb289 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_image_py.html @@ -0,0 +1,90 @@ +databases/image.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  image.py 
    +#
    +#  Defect ID:  '6277
    +#
    +#  Tests:      image reader and data selections 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       November 4, 2004 
    +#
    +#  Modifications:
    +# 
    +#    Hank Childs, Fri May 20 15:08:37 PDT 2005
    +#    Added tests for image volumes.
    +#
    +#    Jeremy Meredith, Thu Jan 14 12:09:57 EST 2010
    +#    Changed the way the imgvol test file was created.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +#
    +# we'll make all the pc plots gray scale
    +#
    +pcatts=PseudocolorAttributes()
    +pcatts.colorTableName="gray"
    +SetDefaultPlotOptions(pcatts)
    +
    +#
    +# test ability to read an image as usual 
    +#
    +OpenDatabase(data_path("Image_test_data/manhattan.jpg"))
    +
    +
    +AddPlot("Pseudocolor","intensity")
    +DrawPlots()
    +Test("image_01")
    +
    +DeleteAllPlots()
    +
    +#
    +# Test a data selection on a format that cannot
    +# handle it during read. The selection will
    +# occur after WHOLE image is read
    +#
    +AddPlot("Pseudocolor","intensity")
    +box=BoxAttributes()
    +box.minx = 0
    +box.maxx = 100
    +box.miny = 0
    +box.maxy = 100
    +AddOperator("Box")
    +SetOperatorOptions(box)
    +DrawPlots()
    +Test("image_02")
    +
    +DeleteAllPlots()
    +
    +#
    +# Now test a data selection on a format that can
    +# handle selection during read 
    +#
    +OpenDatabase(data_path("Image_test_data/manhattan.pnm"))
    +
    +AddPlot("Pseudocolor","intensity")
    +AddOperator("Box")
    +SetOperatorOptions(box)
    +DrawPlots()
    +Test("image_03")
    +
    +DeleteAllPlots()
    +f = open(data_path("Image_test_data/manhattan.imgvol"), "wt")
    +f.write("Z_STEP:60\n")
    +for i in range(3):
    +   f.write("manhattan.jpg\n")
    +f.close()
    +OpenDatabase(data_path("Image_test_data/manhattan.imgvol"))
    +
    +AddPlot("Contour", "green")
    +c = ContourAttributes()
    +c.contourMethod = c.Value
    +c.contourValue = (128)
    +SetPlotOptions(c)
    +DrawPlots()
    +Test("image_04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_imgvol.html b/2024-12-12-22:00/poodle_trunk_serial/databases_imgvol.html new file mode 100644 index 000000000..3e0aa10f2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_imgvol.html @@ -0,0 +1,78 @@ + +Results for databases/imgvol.py + +

    Results of VisIt Regression Test - databases/imgvol

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    imgvol_010.000.00
    imgvol_020.000.00
    imgvol_030.000.00
    imgvol_040.000.00
    imgvol_050.000.00
    imgvol_060.000.00
    imgvol_070.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_imgvol_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_imgvol_py.html new file mode 100644 index 000000000..220741926 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_imgvol_py.html @@ -0,0 +1,67 @@ +databases/imgvol.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  imgvol.py 
    +#
    +#  Tests:      imgvol reader
    +#
    +#  Mark C. Miller, Fri Apr 23 23:01:06 PDT 2010
    +#
    +#  Modifications:
    +# 
    +#    Mark C. Miller, Sun Apr 25 21:30:29 PDT 2010
    +#    Added missing Slice operator for contour plot.
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(data_path("imgvol_test_data/tcup.imgvol"))
    +
    +AddPlot("Pseudocolor","intensity")
    +sa=SliceAttributes()
    +sa.originType = sa.Percent
    +sa.originPercent = 50
    +AddOperator("Slice")
    +SetOperatorOptions(sa)
    +DrawPlots()
    +Test("imgvol_01")
    +
    +ChangeActivePlotsVar("intensity_nodal")
    +DrawPlots()
    +Test("imgvol_02")
    +
    +AddOperator("InverseGhostZone")
    +DrawPlots()
    +Test("imgvol_03")
    +RemoveLastOperator()
    +
    +AddPlot("Contour","intensity")
    +AddOperator("Slice")
    +SetOperatorOptions(sa)
    +ca=ContourAttributes()
    +ca.contourValue = (65,)
    +ca.contourMethod = ca.Value
    +ca.lineWidth = 2
    +SetPlotOptions(ca)
    +DrawPlots()
    +Test("imgvol_04")
    +
    +ChangeActivePlotsVar("intensity")
    +DrawPlots()
    +Test("imgvol_05")
    +
    +DeleteActivePlots()
    +RemoveLastOperator()
    +
    +iv=IsovolumeAttributes()
    +iv.lbound = 65
    +AddOperator("Isovolume")
    +SetOperatorOptions(iv)
    +AddOperator("Slice")
    +SetOperatorOptions(sa)
    +DrawPlots()
    +Test("imgvol_06")
    +
    +ChangeActivePlotsVar("intensity_nodal")
    +Test("imgvol_07")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_kulllite.html b/2024-12-12-22:00/poodle_trunk_serial/databases_kulllite.html new file mode 100644 index 000000000..c2be359b1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_kulllite.html @@ -0,0 +1,84 @@ + +Results for databases/kulllite.py + +

    Results of VisIt Regression Test - databases/kulllite

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    kulllite_010.000.00
    kulllite_020.000.00
    kulllite_030.000.00
    kulllite_040.000.00
    kulllite_050.000.00
    kulllite_060.000.00
    kulllite_070.000.00
    kulllite_080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_kulllite_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_kulllite_py.html new file mode 100644 index 000000000..a1a02e925 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_kulllite_py.html @@ -0,0 +1,89 @@ +databases/kulllite.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  kulllite.py
    +#
    +#  Tests:      mesh      - 2D, 3D unstructured
    +#              plots     - Pseudocolor, mesh, boundary, subset
    +#
    +#  Defect ID:  '6251, '6326, '7043
    +#
    +#  Programmer: Hank Childs
    +#  Date:       June 14, 2005
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Thu May 11 11:35:39 PDT 2006
    +#    Test reading of density values.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("KullLite")
    +
    +OpenDatabase(data_path("KullLite_test_data/tagtest_xy_3.pdb"))
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +Test("kulllite_01")
    +
    +DeleteAllPlots()
    +OpenDatabase(data_path("KullLite_test_data/tagtest_rz_1_0.pdb"))
    +
    +AddPlot("FilledBoundary", "Material(mesh)")
    +AddPlot("Mesh", "mesh_tags/edges_mesh")
    +DrawPlots()
    +Test("kulllite_02")
    +
    +DeleteActivePlots()
    +AddPlot("Mesh", "mesh")
    +AddPlot("Mesh", "mesh_tags/nodes_mesh")
    +m = MeshAttributes()
    +m.pointType = m.Box
    +SetPlotOptions(m)
    +DrawPlots()
    +Test("kulllite_03")
    +
    +DeleteAllPlots()
    +AddPlot("FilledBoundary", "mesh_tags/nodes(mesh_tags/nodes_mesh)")
    +fb = FilledBoundaryAttributes()
    +fb.pointType = fb.Box
    +SetPlotOptions(fb)
    +DrawPlots()
    +Test("kulllite_04")
    +
    +DeleteAllPlots()
    +OpenDatabase(data_path("KullLite_test_data/T.pdb"))
    +
    +AddPlot("FilledBoundary", "Material")
    +DrawPlots()
    +Test("kulllite_05")
    +
    +thres = ThresholdAttributes()
    +thres.listedVarNames = ("mesh_quality/shear")
    +thres.upperBounds = (0.5)
    +SetDefaultOperatorOptions(thres)
    +AddOperator("Threshold")
    +DrawPlots()
    +Test("kulllite_06")
    +
    +DeleteAllPlots()
    +
    +# Test reading of densities, for both per-zone quantities and per-zone,
    +# per-material quantities.
    +OpenDatabase(data_path("pdb_test_data/2dOverlayTest21.pdb"))
    +
    +AddPlot("Pseudocolor", "density")
    +DrawPlots()
    +Test("kulllite_07")
    +m = MaterialAttributes()
    +m.forceMIR = 1
    +SetMaterialAttributes(m)
    +ReOpenDatabase(data_path("pdb_test_data/2dOverlayTest21.pdb"))
    +
    +Test("kulllite_08")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_lata.html b/2024-12-12-22:00/poodle_trunk_serial/databases_lata.html new file mode 100644 index 000000000..faaf7199b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_lata.html @@ -0,0 +1,126 @@ + +Results for databases/lata.py + +

    Results of VisIt Regression Test - databases/lata

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    lata_000.000.00
    lata_010.000.00
    lata_020.000.00
    lata_030.000.00
    lata_040.000.00
    lata_050.000.00
    lata_060.000.00
    lata_070.000.00
    lata_080.000.00
    lata_090.000.00
    lata_100.000.00
    lata_110.000.00
    lata_120.000.00
    lata_130.000.00
    lata_140.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_lata_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_lata_py.html new file mode 100644 index 000000000..46a0e6f45 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_lata_py.html @@ -0,0 +1,134 @@ +databases/lata.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  lata.py 
    +#
    +TurnOffAllAnnotations()
    +# on change le stride des vecteurs par defaut 
    +vd=VectorAttributes()
    +vd.SetUseStride(1)
    +SetDefaultPlotOptions(vd)
    +OpenDatabase(data_path("Lata_test_data/2D_VDF/PAR_2D_VDF.lata"))
    +
    +AddPlot("Mesh","dom_solide")
    +AddPlot("Pseudocolor","TEMPERATURE_ELEM_dom_solide")
    +AddPlot("Vector","VITESSE_ELEM_dom_fluide")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_00")
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor","TEMPERATURE_SOM_dom_solide")
    +AddPlot("Vector","VITESSE_SOM_dom_fluide")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_01")
    +DeleteAllPlots()
    +
    +AddPlot("Mesh","dom_fluide")
    +AddPlot("Vector","VITESSE_FACES_dom_fluide_dual")
    +AddPlot("Subset", "blocks(dom_solide)")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_02")
    +DeleteAllPlots()
    +CloseDatabase(data_path("Lata_test_data/2D_VDF/PAR_2D_VDF.lata"))
    +
    +OpenDatabase(data_path("Lata_test_data/3D_VDF/PAR_3D_VDF.lata"))
    +AddPlot("Mesh","dom_solide")
    +AddPlot("Pseudocolor","TEMPERATURE_ELEM_dom_solide")
    +AddPlot("Vector","VITESSE_ELEM_dom_fluide")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_03")
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor","TEMPERATURE_SOM_dom_solide")
    +AddPlot("Vector","VITESSE_SOM_dom_fluide")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_04")
    +DeleteAllPlots()
    +
    +AddPlot("Mesh","dom_fluide")
    +AddPlot("Vector","VITESSE_FACES_dom_fluide_dual")
    +AddPlot("Subset", "blocks(dom_solide)")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_05")
    +DeleteAllPlots()
    +CloseDatabase(data_path("Lata_test_data/3D_VDF/PAR_3D_VDF.lata"))
    +
    +OpenDatabase(data_path("Lata_test_data/2D_VEF/PAR_2D_VEF.lata"))
    +AddPlot("Mesh","dom_solide")
    +AddPlot("Pseudocolor","TEMPERATURE_ELEM_dom_solide")
    +AddPlot("Vector","VITESSE_ELEM_dom_fluide")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_06")
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor","TEMPERATURE_SOM_dom_solide")
    +AddPlot("Vector","VITESSE_SOM_dom_fluide")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_07")
    +DeleteAllPlots()
    +
    +AddPlot("Mesh","dom_fluide")
    +AddPlot("Vector","VITESSE_FACES_dom_fluide_dual")
    +AddPlot("Subset", "blocks(dom_solide)")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_08")
    +DeleteAllPlots()
    +
    +AddPlot("Mesh","dom_fluide")
    +AddPlot("Vector","VITESSE_FACES_dom_fluide_centerfaces")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_09")
    +DeleteAllPlots()
    +CloseDatabase(data_path("Lata_test_data/2D_VEF/PAR_2D_VEF.lata"))
    +
    +OpenDatabase(data_path("Lata_test_data/3D_VEF/PAR_3D_VEF.lata"))
    +AddPlot("Mesh","dom_solide")
    +AddPlot("Pseudocolor","TEMPERATURE_ELEM_dom_solide")
    +AddPlot("Vector","VITESSE_ELEM_dom_fluide")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_10")
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor","TEMPERATURE_SOM_dom_solide")
    +AddPlot("Vector","VITESSE_SOM_dom_fluide")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_11")
    +DeleteAllPlots()
    +
    +AddPlot("Mesh","dom_fluide")
    +AddPlot("Vector","VITESSE_FACES_dom_fluide_dual")
    +AddPlot("Subset", "blocks(dom_solide)")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_12")
    +DeleteAllPlots()
    +
    +AddPlot("Mesh","dom_fluide")
    +AddPlot("Vector","VITESSE_FACES_dom_fluide_centerfaces")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_13")
    +DeleteAllPlots()
    +CloseDatabase(data_path("Lata_test_data/3D_VEF/PAR_3D_VEF.lata"))
    +
    +OpenDatabase(data_path("Lata_test_data/./FTD_remaillage_vdf/post.lata"))
    +AddPlot("Mesh","INTERFACES")
    +AddPlot("Pseudocolor","COURBURE_som_INTERFACES")
    +SetTimeSliderState(2)
    +DrawPlots()
    +Test("lata_14")
    +DeleteAllPlots()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_leos.html b/2024-12-12-22:00/poodle_trunk_serial/databases_leos.html new file mode 100644 index 000000000..443599695 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_leos.html @@ -0,0 +1,66 @@ + +Results for databases/leos.py + +

    Results of VisIt Regression Test - databases/leos

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    leos_010.000.00
    leos_030.000.00
    leos_040.000.00
    leos_050.000.00
    leos_060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_leos_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_leos_py.html new file mode 100644 index 000000000..917b3a6d8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_leos_py.html @@ -0,0 +1,86 @@ +databases/leos.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  leos.py 
    +#
    +#  Tests:      Auto Full Frame Mode
    +#              LEOSFileReader 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       July 20, 2005 
    +#
    +#  Modifications:
    +#    Tom Fogal, Wed Dec 16 13:12:57 MST 2009
    +#    Fixed a bad path.
    +#
    +#    Mark C. Miller, Fri Jan 22 17:30:29 PST 2010
    +#    I replaced OpenDatabase with FindAnd... variant to deal with data
    +#    we don't keep in repo.
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("PDB")
    +
    +OpenMDServer("localhost")
    +readOptions=GetDefaultFileOpenOptions("PDB")
    +readOptions["LEOS try harder level [set to 0, 1 or 2]"] = 1
    +SetDefaultFileOpenOptions("PDB", readOptions)
    +
    +(err, dbname) = FindAndOpenDatabase("sesame.pdb")
    +if (err != 1): Exit(116) # Indicate skip
    +
    +#
    +# Test default full frame (became 'auto' 07Mar06)
    +#
    +AddPlot("Pseudocolor","Calcium_Ca/Pt")
    +DrawPlots()
    +Test("leos_01")
    +
    +v=GetView2D()
    +#
    +# Test auto full frame. This test was obsoleted when
    +# auto ff became the default
    +#
    +#v.fullFrameActivationMode = v.Auto
    +#SetView2D(v)
    +#Test("leos_02")
    +
    +#
    +# Test turning off full frame
    +#
    +v.fullFrameActivationMode = v.Off
    +SetView2D(v)
    +Test("leos_03")
    +
    +#
    +# Test turning on full frame 
    +#
    +v.fullFrameActivationMode = v.On
    +SetView2D(v)
    +Test("leos_04")
    +
    +v.fullFrameActivationMode = v.Auto
    +SetView2D(v)
    +DeleteAllPlots()
    +
    +#
    +# Test Auto full frame when changing plots
    +#
    +AddPlot("Pseudocolor","Water_H2O/Et")
    +DrawPlots()
    +ResetView()
    +v=GetView2D()
    +v.fullFrameActivationMode = v.Auto
    +SetView2D(v)
    +Test("leos_05")
    +
    +#
    +# Test the "catch all" mesh
    +#
    +AddPlot("Mesh","for active plot")
    +DrawPlots()
    +Test("leos_06")
    +
    +DeleteAllPlots()
    +CloseDatabase(dbname)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_lines.html b/2024-12-12-22:00/poodle_trunk_serial/databases_lines.html new file mode 100644 index 000000000..a688cae9a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_lines.html @@ -0,0 +1,62 @@ + +Results for databases/lines.py + +

    Results of VisIt Regression Test - databases/lines

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Verifying 3D lines
     6 .eq. 6 (prec=5) : True
    mesh_plot_000.000.00
    Verifying 2D lines
     4 .eq. 4 (prec=5) : True
    mesh_plot_010.000.00
    mesh_plot_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_lines_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_lines_py.html new file mode 100644 index 000000000..eb1c7f943 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_lines_py.html @@ -0,0 +1,79 @@ +databases/lines.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  lines.py
    +#
    +#  Tests:      mesh      - 2D lines (unstructured), 3D lines (unstructured)
    +#              plots     - mesh
    +#
    +#  Programmer: Alister Maguire
    +#  Date:       Tue Mar 17 08:50:32 PDT 2020
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Mon Jan 11 10:32:17 PST 2021
    +#    Replace AssertEqual() with TestValueEQ()
    +# ----------------------------------------------------------------------------
    +
    +def TestMeshPlot():
    +
    +    #
    +    # First, let's make sure that 3d lines are read appropriately.
    +    #
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +
    +    OpenDatabase(data_path("lines_test_data/spring.lines"))
    +    AddPlot("Mesh", "Lines", 1, 1)
    +    DrawPlots()
    +    Query("SpatialExtents")
    +
    +    # Check dimensionality.
    +    ext_len = len(GetQueryOutputValue())
    +    TestValueEQ("Verifying 3D lines", ext_len, 6)
    +
    +    # Check the rendering.
    +    Test("mesh_plot_00")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("lines_test_data/spring.lines"))
    +
    +    #
    +    # Next, let's check 2d lines.
    +    #
    +    OpenDatabase(data_path("lines_test_data/2d.lines"))
    +    AddPlot("Mesh", "Lines", 1, 1)
    +    DrawPlots()
    +    Query("SpatialExtents")
    +
    +    # Check dimensionality.
    +    ext_len = len(GetQueryOutputValue())
    +    TestValueEQ("Verifying 2D lines", ext_len, 4)
    +
    +    # Check the rendering.
    +    Test("mesh_plot_01")
    +    DeleteAllPlots()
    +
    +    CloseDatabase(data_path("lines_test_data/2d.lines"))
    +
    +    #
    +    # This test makes sure that consecutive points are only
    +    # removed from one line at a time.
    +    #
    +    OpenDatabase(data_path("lines_test_data/consecutive.lines"))
    +    AddPlot("Mesh", "Lines", 1, 1)
    +    DrawPlots()
    +
    +    # Check the rendering.
    +    Test("mesh_plot_02")
    +    DeleteAllPlots()
    +
    +    CloseDatabase(data_path("lines_test_data/consecutive.lines"))
    +
    +
    +def main():
    +    TestMeshPlot()
    +    Exit()
    +
    +main()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_metadata.html b/2024-12-12-22:00/poodle_trunk_serial/databases_metadata.html new file mode 100644 index 000000000..6cdf8aac2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_metadata.html @@ -0,0 +1,200 @@ + +Results for databases/metadata.py + +

    Results of VisIt Regression Test - databases/metadata

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Getting metadata
    metadata_0_000 modifications totalling 0 lines
    metadata_0_010 modifications totalling 0 lines
    metadata_0_020 modifications totalling 0 lines
    metadata_0_030 modifications totalling 0 lines
    metadata_0_040 modifications totalling 0 lines
    Use the metadata to plot the variables.
    metadata_1_scalar_airVf0.000.00
    metadata_1_scalar_chromeVf0.000.00
    metadata_1_scalar_hardyglobal0.000.00
    metadata_1_scalar_hgslice0.000.00
    metadata_1_scalar_radial0.000.00
    metadata_1_scalar_shepardglobal0.000.00
    metadata_1_scalar_x0.000.00
    metadata_1_scalar_PointVar0.000.00
    metadata_1_scalar_tensor_comps_grad_tensor_ii0.000.00
    metadata_1_scalar_tensor_comps_grad_tensor_ij0.000.00
    metadata_1_scalar_tensor_comps_grad_tensor_ik0.000.00
    metadata_1_scalar_tensor_comps_grad_tensor_ji0.000.00
    metadata_1_scalar_tensor_comps_grad_tensor_jj0.000.00
    metadata_1_scalar_tensor_comps_grad_tensor_jk0.000.00
    metadata_1_scalar_tensor_comps_grad_tensor_ki0.000.00
    metadata_1_scalar_tensor_comps_grad_tensor_kj0.000.00
    metadata_1_scalar_tensor_comps_grad_tensor_kk0.000.00
    metadata_1_vector_airVfGradient0.000.00
    metadata_1_vector_grad0.000.00
    metadata_1_expr_grad_tensor0.000.00
    metadata_1_expr_grad_tensor_diagonal0.000.00
    metadata_1_expr_airVfGradient_magnitude0.000.00
    metadata_1_expr_grad_magnitude0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_metadata_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_metadata_py.html new file mode 100644 index 000000000..2cd0a7ea7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_metadata_py.html @@ -0,0 +1,112 @@ +databases/metadata.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  metadata.py
    +#
    +#  Tests:      Getting a usable metadata object from the viewer.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Mar 14 16:40:31 PST 2007
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +def test0():
    +    TestSection("Getting metadata")
    +
    +    # Get metadata for various test datasets.
    +    md = GetMetaData(silo_data_path("noise.silo") )
    +    TestText("metadata_0_00", str(md))
    +
    +    # Get the metadata for the first time step
    +    md = GetMetaData(silo_data_path("wave*.silo database") )
    +    TestText("metadata_0_01", str(md))
    +
    +    # Get the metadata for the 17th time step where new variables appear
    +    md = GetMetaData(silo_data_path("wave*.silo database") , 17)
    +    TestText("metadata_0_02", str(md))
    +
    +    # Get something with species and default plots.
    +    md = GetMetaData(data_path("samrai_test_data/mats-par3/dumps.visit"))
    +    TestText("metadata_0_03", str(md))
    +
    +    # Get something with label variables
    +    md = GetMetaData(data_path("shapefile_test_data/alameda/tgr06001lkA.shp"))
    +    TestText("metadata_0_04", str(md))
    +
    +def MakeSafe(varname):
    +    ret = varname.replace("/", "_")
    +    ret = ret.replace("(", "[")
    +    ret = ret.replace(")", "]")
    +    ret = ret.replace(":", "_")
    +    ret = ret.replace(",", "_")
    +    ret = ret.replace(";", "_")
    +    return ret
    +
    +def test1():
    +    TestSection("Use the metadata to plot the variables.")
    +
    +    db = silo_data_path("noise.silo")
    +    OpenDatabase(db)
    +    md = GetMetaData(db)
    +
    +    # Test all of the scalars.
    +    for i in range(md.GetNumScalars()):
    +        AddPlot("Pseudocolor", md.GetScalars(i).name)
    +        DrawPlots()
    +        ResetView()
    +        testName = "metadata_1_scalar_" + MakeSafe(md.GetScalars(i).name)
    +        Test(testName)
    +        DeleteAllPlots()
    +
    +    # Test all of the vectors.
    +    for i in range(md.GetNumVectors()):
    +        AddPlot("Vector", md.GetVectors(i).name)
    +        DrawPlots()
    +        ResetView()
    +        testName = "metadata_1_vector_" + MakeSafe(md.GetVectors(i).name)
    +        Test(testName)
    +        DeleteAllPlots()
    +
    +    # Test all of the expressions
    +    for i in range(md.exprList.GetNumExpressions()):
    +        expr = md.exprList.GetExpressions(i)
    +        if expr.type == expr.ScalarMeshVar:
    +            AddPlot("Pseudocolor", expr.name)
    +        elif expr.type == expr.VectorMeshVar:
    +            AddPlot("Vector", expr.name)
    +            v = VectorAttributes()
    +            v.useStride = 1
    +            v.stride = 1
    +            SetPlotOptions(v)
    +        elif expr.type == expr.TensorMeshVar:
    +            AddPlot("Tensor", expr.name)
    +            t = TensorAttributes()
    +            t.useStride = 1
    +            t.stride = 5
    +            SetPlotOptions(t)
    +        elif expr.type == expr.ArrayMeshVar:
    +            AddPlot("Label", expr.name)
    +        else:
    +            print("Add support for plotting expression: ", expr)
    +        DrawPlots()
    +        ResetView()
    +        testName = "metadata_1_expr_" + MakeSafe(expr.name)
    +        Test(testName)
    +        DeleteAllPlots()
    +
    +def main():
    +    # Draw antialiased lines
    +    r = GetRenderingAttributes()
    +    r.antialiasing = 1
    +    SetRenderingAttributes(r)
    +
    +    test0()
    +    test1()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_mfem.html b/2024-12-12-22:00/poodle_trunk_serial/databases_mfem.html new file mode 100644 index 000000000..6f5c97799 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_mfem.html @@ -0,0 +1,1980 @@ + +Results for databases/mfem.py + +

    Results of VisIt Regression Test - databases/mfem

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Input Mesh Files
    input_mesh_amr-hex-nc_mres_00000.000.00
    input_mesh_amr-hex-nc_mres_00050.000.00
    input_mesh_amr-hex_mres_00000.000.00
    input_mesh_amr-hex_mres_00050.000.00
    input_mesh_amr-quad-nc_mres_00000.000.00
    input_mesh_amr-quad-nc_mres_00050.000.00
    input_mesh_amr-quad_mres_00000.000.00
    input_mesh_amr-quad_mres_00050.000.00
    input_mesh_ball-nurbs_mres_00000.000.00
    input_mesh_ball-nurbs_mres_00200.000.00
    input_mesh_beam-hex-nurbs_mres_00000.000.00
    input_mesh_beam-hex-nurbs_mres_00200.000.00
    input_mesh_beam-hex_mres_00000.000.00
    input_mesh_beam-hex_mres_00200.000.00
    input_mesh_beam-quad-amr-nc_mres_00000.000.00
    input_mesh_beam-quad-amr-nc_mres_00050.000.00
    input_mesh_beam-quad-nurbs_mres_00000.000.00
    input_mesh_beam-quad-nurbs_mres_00200.000.00
    input_mesh_beam-quad_mres_00000.000.00
    input_mesh_beam-quad_mres_00200.000.00
    input_mesh_beam-tet_mres_00000.000.00
    input_mesh_beam-tet_mres_00200.000.00
    input_mesh_beam-tri_mres_00000.000.00
    input_mesh_beam-tri_mres_00200.000.00
    input_mesh_disc-nurbs_mres_00000.000.00
    input_mesh_disc-nurbs_mres_00200.000.00
    input_mesh_escher-p2_mres_00000.000.00
    input_mesh_escher-p2_mres_00200.000.00
    input_mesh_escher-p3_mres_00000.000.00
    input_mesh_escher-p3_mres_00200.000.00
    input_mesh_escher_mres_00000.000.00
    input_mesh_escher_mres_00200.000.00
    input_mesh_fichera-amr-nc_mres_00000.000.00
    input_mesh_fichera-amr-nc_mres_00050.000.00
    input_mesh_fichera-amr_mres_00000.000.00
    input_mesh_fichera-amr_mres_00050.000.00
    input_mesh_fichera-q2_mres_00000.000.00
    input_mesh_fichera-q2_mres_00200.000.00
    input_mesh_fichera-q3_mres_00000.000.00
    input_mesh_fichera-q3_mres_00200.000.00
    input_mesh_fichera_mres_00000.000.00
    input_mesh_fichera_mres_00200.000.00
    input_mesh_inline-hex_mres_00000.000.00
    input_mesh_inline-hex_mres_00200.000.00
    input_mesh_inline-quad_mres_00000.000.00
    input_mesh_inline-quad_mres_00200.000.00
    input_mesh_inline-segment_mres_00000.000.00
    input_mesh_inline-segment_mres_00200.000.00
    input_mesh_inline-tet_mres_00000.000.00
    input_mesh_inline-tet_mres_00200.000.00
    input_mesh_inline-tri_mres_00000.000.00
    input_mesh_inline-tri_mres_00200.000.00
    input_mesh_klein-bottle_mres_00000.000.00
    input_mesh_klein-bottle_mres_00200.000.00
    input_mesh_klein-donut_mres_00000.000.00
    input_mesh_klein-donut_mres_00200.000.00
    input_mesh_mobius-strip_mres_00000.000.00
    input_mesh_mobius-strip_mres_00200.000.00
    input_mesh_periodic-cube_mres_00000.000.00
    input_mesh_periodic-cube_mres_00200.000.00
    input_mesh_periodic-hexagon_mres_00000.000.00
    input_mesh_periodic-hexagon_mres_00200.000.00
    input_mesh_periodic-segment_mres_00000.000.00
    input_mesh_periodic-segment_mres_00200.000.00
    input_mesh_periodic-square_mres_00000.000.00
    input_mesh_periodic-square_mres_00200.000.00
    input_mesh_pipe-nurbs_mres_00000.000.00
    input_mesh_pipe-nurbs_mres_00200.000.00
    input_mesh_square-disc-nurbs_mres_00000.000.00
    input_mesh_square-disc-nurbs_mres_00200.000.00
    input_mesh_square-disc-p2_mres_00000.000.00
    input_mesh_square-disc-p2_mres_00200.000.00
    input_mesh_square-disc-p3_mres_00000.000.00
    input_mesh_square-disc-p3_mres_00200.000.00
    input_mesh_square-disc-surf_mres_00000.000.00
    input_mesh_square-disc-surf_mres_00200.000.00
    input_mesh_square-disc_mres_00000.000.00
    input_mesh_square-disc_mres_00200.000.00
    input_mesh_star-q2_mres_00000.000.00
    input_mesh_star-q2_mres_00200.000.00
    input_mesh_star-q3_mres_00000.000.00
    input_mesh_star-q3_mres_00200.000.00
    input_mesh_star-surf_mres_00000.000.00
    input_mesh_star-surf_mres_00200.000.00
    input_mesh_star_mres_00000.000.00
    input_mesh_star_mres_00200.000.00
    input_mesh_wedge_or_prism_example_mres_00000.000.00
    input_mesh_wedge_or_prism_example_mres_00200.000.00
    ex01 results
    ex01_ex01-disc-nurbs0.000.00
    ex01_ex01-escher0.000.00
    ex01_ex01-fichera-q20.000.00
    ex01_ex01-fichera0.000.00
    ex01_ex01-pipe-nurbs0.000.00
    ex01_ex01-square-disc-nurbs0.000.00
    ex01_ex01-square-disc-p30.000.00
    ex01_ex01-square-disc0.000.00
    ex01_ex01-star0.000.00
    ex02 results
    ex02_element_attribute_ex02-beam-hex-nurbs0.000.00
    ex02_gf_mag_ex02-beam-hex-nurbs0.000.00
    ex02_element_attribute_ex02-beam-hex0.000.00
    ex02_gf_mag_ex02-beam-hex0.000.00
    ex02_element_attribute_ex02-beam-quad-nurbs0.000.00
    ex02_gf_mag_ex02-beam-quad-nurbs0.000.00
    ex02_element_attribute_ex02-beam-quad0.000.00
    ex02_gf_mag_ex02-beam-quad0.000.00
    ex02_element_attribute_ex02-beam-tet0.000.00
    ex02_gf_mag_ex02-beam-tet0.000.00
    ex02_element_attribute_ex02-beam-tri0.000.00
    ex02_gf_mag_ex02-beam-tri0.000.00
    MFEM Expressions
    mfem_expressions_10.000.00
    mfem_expressions_20.000.00
    mfem_expressions_30.000.00
    Input Mesh Boundary Topology
    input_mesh_amr-hex-nc_boundary_topo0.000.00
    input_mesh_amr-hex_boundary_topo0.000.00
    input_mesh_amr-quad-nc_boundary_topo0.000.00
    input_mesh_amr-quad_boundary_topo0.000.00
    input_mesh_ball-nurbs_boundary_topo0.000.00
    input_mesh_beam-hex-nurbs_boundary_topo0.000.00
    input_mesh_beam-hex_boundary_topo0.000.00
    input_mesh_beam-quad-amr-nc_boundary_topo0.000.00
    input_mesh_beam-quad-nurbs_boundary_topo0.000.00
    input_mesh_beam-quad_boundary_topo0.000.00
    input_mesh_beam-tet_boundary_topo0.000.00
    input_mesh_beam-tri_boundary_topo0.000.00
    input_mesh_disc-nurbs_boundary_topo0.000.00
    input_mesh_escher-p2_boundary_topo0.000.00
    input_mesh_escher-p3_boundary_topo0.000.00
    input_mesh_escher_boundary_topo0.000.00
    input_mesh_fichera-amr-nc_boundary_topo0.000.00
    input_mesh_fichera-amr_boundary_topo0.000.00
    input_mesh_fichera-q2_boundary_topo0.000.00
    input_mesh_fichera-q3_boundary_topo0.000.00
    input_mesh_fichera_boundary_topo0.000.00
    input_mesh_inline-hex_boundary_topo0.000.00
    input_mesh_inline-quad_boundary_topo0.000.00
    input_mesh_inline-segment_boundary_topo0.000.00
    input_mesh_inline-tet_boundary_topo0.000.00
    input_mesh_inline-tri_boundary_topo0.000.00
    input_mesh_klein-bottle_boundary_topo0.000.00
    input_mesh_klein-donut_boundary_topo0.000.00
    input_mesh_mobius-strip_boundary_topo0.000.00
    input_mesh_periodic-cube_boundary_topo0.000.00
    input_mesh_periodic-hexagon_boundary_topo0.000.00
    input_mesh_periodic-segment_boundary_topo0.000.00
    input_mesh_periodic-square_boundary_topo0.000.00
    input_mesh_pipe-nurbs_boundary_topo0.000.00
    input_mesh_square-disc-nurbs_boundary_topo0.000.00
    input_mesh_square-disc-p2_boundary_topo0.000.00
    input_mesh_square-disc-p3_boundary_topo0.000.00
    input_mesh_square-disc-surf_boundary_topo0.000.00
    input_mesh_square-disc_boundary_topo0.000.00
    input_mesh_star-q2_boundary_topo0.000.00
    input_mesh_star-q3_boundary_topo0.000.00
    input_mesh_star-surf_boundary_topo0.000.00
    input_mesh_star_boundary_topo0.000.00
    input_mesh_wedge_or_prism_example_boundary_topo0.000.00
    Direct Mesh Open
    direct_open_mesh_file_amr-hex-nc0.000.00
    direct_open_mesh_file_amr-hex0.000.00
    direct_open_mesh_file_amr-quad-nc0.000.00
    direct_open_mesh_file_amr-quad0.000.00
    direct_open_mesh_file_ball-nurbs0.000.00
    direct_open_mesh_file_beam-hex-nurbs0.000.00
    direct_open_mesh_file_beam-hex0.000.00
    direct_open_mesh_file_beam-quad-amr-nc0.000.00
    direct_open_mesh_file_beam-quad-nurbs0.000.00
    direct_open_mesh_file_beam-quad0.000.00
    direct_open_mesh_file_beam-tet0.000.00
    direct_open_mesh_file_beam-tri0.000.00
    direct_open_mesh_file_disc-nurbs0.000.00
    direct_open_mesh_file_escher-p20.000.00
    direct_open_mesh_file_escher-p30.000.00
    direct_open_mesh_file_escher0.000.00
    direct_open_mesh_file_ex01-disc-nurbs0.000.00
    direct_open_mesh_file_ex01-escher0.000.00
    direct_open_mesh_file_ex01-fichera-q20.000.00
    direct_open_mesh_file_ex01-fichera0.000.00
    direct_open_mesh_file_ex01-pipe-nurbs0.000.00
    direct_open_mesh_file_ex01-square-disc-nurbs0.000.00
    direct_open_mesh_file_ex01-square-disc-p30.000.00
    direct_open_mesh_file_ex01-square-disc0.000.00
    direct_open_mesh_file_ex01-star0.000.00
    direct_open_mesh_file_ex02-beam-hex-nurbs0.000.00
    direct_open_mesh_file_ex02-beam-hex0.000.00
    direct_open_mesh_file_ex02-beam-quad-nurbs0.000.00
    direct_open_mesh_file_ex02-beam-quad0.000.00
    direct_open_mesh_file_ex02-beam-tet0.000.00
    direct_open_mesh_file_ex02-beam-tri0.000.00
    direct_open_mesh_file_fichera-amr-nc0.000.00
    direct_open_mesh_file_fichera-amr0.000.00
    direct_open_mesh_file_fichera-q20.000.00
    direct_open_mesh_file_fichera-q30.000.00
    direct_open_mesh_file_fichera0.000.00
    direct_open_mesh_file_inline-hex0.000.00
    direct_open_mesh_file_inline-quad0.000.00
    direct_open_mesh_file_inline-segment0.000.00
    direct_open_mesh_file_inline-tet0.000.00
    direct_open_mesh_file_inline-tri0.000.00
    direct_open_mesh_file_klein-bottle0.000.00
    direct_open_mesh_file_klein-donut0.000.00
    direct_open_mesh_file_mobius-strip0.000.00
    direct_open_mesh_file_periodic-cube0.000.00
    direct_open_mesh_file_periodic-hexagon0.000.00
    direct_open_mesh_file_periodic-segment0.000.00
    direct_open_mesh_file_periodic-square0.000.00
    direct_open_mesh_file_pipe-nurbs0.000.00
    direct_open_mesh_file_square-disc-nurbs0.000.00
    direct_open_mesh_file_square-disc-p20.000.00
    direct_open_mesh_file_square-disc-p30.000.00
    direct_open_mesh_file_square-disc-surf0.000.00
    direct_open_mesh_file_square-disc0.000.00
    direct_open_mesh_file_star-q20.000.00
    direct_open_mesh_file_star-q30.000.00
    direct_open_mesh_file_star-surf0.000.00
    direct_open_mesh_file_star0.000.00
    Legacy and New LOR
    LOR_amr-hex-nc_lor0.000.00
    LOR_amr-hex-nc_legacy_lor0.000.00
    LOR_amr-hex_lor0.000.00
    LOR_amr-hex_legacy_lor0.000.00
    LOR_amr-quad-nc_lor0.000.00
    LOR_amr-quad-nc_legacy_lor0.000.00
    LOR_amr-quad_lor0.000.00
    LOR_amr-quad_legacy_lor0.000.00
    LOR_ball-nurbs_lor0.000.00
    LOR_ball-nurbs_legacy_lor0.000.00
    LOR_beam-hex-nurbs_lor0.000.00
    LOR_beam-hex-nurbs_legacy_lor0.000.00
    LOR_beam-hex_lor0.000.00
    LOR_beam-hex_legacy_lor0.000.00
    LOR_beam-quad-amr-nc_lor0.000.00
    LOR_beam-quad-amr-nc_legacy_lor0.000.00
    LOR_beam-quad-nurbs_lor0.000.00
    LOR_beam-quad-nurbs_legacy_lor0.000.00
    LOR_beam-quad_lor0.000.00
    LOR_beam-quad_legacy_lor0.000.00
    LOR_beam-tet_lor0.000.00
    LOR_beam-tet_legacy_lor0.000.00
    LOR_beam-tri_lor0.000.00
    LOR_beam-tri_legacy_lor0.000.00
    LOR_disc-nurbs_lor0.000.00
    LOR_disc-nurbs_legacy_lor0.000.00
    LOR_escher-p2_lor0.000.00
    LOR_escher-p2_legacy_lor0.000.00
    LOR_escher-p3_lor0.000.00
    LOR_escher-p3_legacy_lor0.000.00
    LOR_escher_lor0.000.00
    LOR_escher_legacy_lor0.000.00
    LOR_fichera-amr-nc_lor0.000.00
    LOR_fichera-amr-nc_legacy_lor0.000.00
    LOR_fichera-amr_lor0.000.00
    LOR_fichera-amr_legacy_lor0.000.00
    LOR_fichera-q2_lor0.000.00
    LOR_fichera-q2_legacy_lor0.000.00
    LOR_fichera-q3_lor0.000.00
    LOR_fichera-q3_legacy_lor0.000.00
    LOR_fichera_lor0.000.00
    LOR_fichera_legacy_lor0.000.00
    LOR_inline-hex_lor0.000.00
    LOR_inline-hex_legacy_lor0.000.00
    LOR_inline-quad_lor0.000.00
    LOR_inline-quad_legacy_lor0.000.00
    LOR_inline-segment_lor0.000.00
    LOR_inline-segment_legacy_lor0.000.00
    LOR_inline-tet_lor0.000.00
    LOR_inline-tet_legacy_lor0.000.00
    LOR_inline-tri_lor0.000.00
    LOR_inline-tri_legacy_lor0.000.00
    LOR_klein-bottle_lor0.000.00
    LOR_klein-bottle_legacy_lor0.000.00
    LOR_klein-donut_lor0.000.00
    LOR_klein-donut_legacy_lor0.000.00
    LOR_mobius-strip_lor0.000.00
    LOR_mobius-strip_legacy_lor0.000.00
    LOR_periodic-cube_lor0.000.00
    LOR_periodic-cube_legacy_lor0.000.00
    LOR_periodic-hexagon_lor0.000.00
    LOR_periodic-hexagon_legacy_lor0.000.00
    LOR_periodic-segment_lor0.000.00
    LOR_periodic-segment_legacy_lor0.000.00
    LOR_periodic-square_lor0.000.00
    LOR_periodic-square_legacy_lor0.000.00
    LOR_pipe-nurbs_lor0.000.00
    LOR_pipe-nurbs_legacy_lor0.000.00
    LOR_square-disc-nurbs_lor0.000.00
    LOR_square-disc-nurbs_legacy_lor0.000.00
    LOR_square-disc-p2_lor0.000.00
    LOR_square-disc-p2_legacy_lor0.000.00
    LOR_square-disc-p3_lor0.000.00
    LOR_square-disc-p3_legacy_lor0.000.00
    LOR_square-disc-surf_lor0.000.00
    LOR_square-disc-surf_legacy_lor0.000.00
    LOR_square-disc_lor0.000.00
    LOR_square-disc_legacy_lor0.000.00
    LOR_star-q2_lor0.000.00
    LOR_star-q2_legacy_lor0.000.00
    LOR_star-q3_lor0.000.00
    LOR_star-q3_legacy_lor0.000.00
    LOR_star-surf_lor0.000.00
    LOR_star-surf_legacy_lor0.000.00
    LOR_star_lor0.000.00
    LOR_star_legacy_lor0.000.00
    LOR_wedge_or_prism_example_lor0.000.00
    LOR_wedge_or_prism_example_legacy_lor0.000.00
    Legacy and New LOR Fields
    LOR_Fields_ex01-disc-nurbs_pseudocolor_gf_lor0.000.00
    LOR_Fields_ex01-disc-nurbs_pseudocolor_gf_legacy_lor0.000.00
    LOR_Fields_ex01-escher_pseudocolor_gf_lor0.000.00
    LOR_Fields_ex01-escher_pseudocolor_gf_legacy_lor0.000.00
    LOR_Fields_ex01-fichera-q2_pseudocolor_gf_lor0.000.00
    LOR_Fields_ex01-fichera-q2_pseudocolor_gf_legacy_lor0.000.00
    LOR_Fields_ex01-fichera_pseudocolor_gf_lor0.000.00
    LOR_Fields_ex01-fichera_pseudocolor_gf_legacy_lor0.000.00
    LOR_Fields_ex01-pipe-nurbs_pseudocolor_gf_lor0.000.00
    LOR_Fields_ex01-pipe-nurbs_pseudocolor_gf_legacy_lor0.000.00
    LOR_Fields_ex01-square-disc-nurbs_pseudocolor_gf_lor0.000.00
    LOR_Fields_ex01-square-disc-nurbs_pseudocolor_gf_legacy_lor0.000.00
    LOR_Fields_ex01-square-disc-p3_pseudocolor_gf_lor0.000.00
    LOR_Fields_ex01-square-disc-p3_pseudocolor_gf_legacy_lor0.000.00
    LOR_Fields_ex01-square-disc_pseudocolor_gf_lor0.000.00
    LOR_Fields_ex01-square-disc_pseudocolor_gf_legacy_lor0.000.00
    LOR_Fields_ex01-star_pseudocolor_gf_lor0.000.00
    LOR_Fields_ex01-star_pseudocolor_gf_legacy_lor0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_mfem_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_mfem_py.html new file mode 100644 index 000000000..217a0d321 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_mfem_py.html @@ -0,0 +1,270 @@ +databases/mfem.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#  LIMIT: 1200
    +#  Test Case:  mfem.py 
    +#
    +#  Tests:      mfem files 
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Thu Jun 12 14:58:03 PDT 2014
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Sep  2 20:56:13 PDT 2020
    +#    The MFEM reader now provides original cells so artificial mesh lines
    +#    get removed. There's less of a point to seeing them here. Keep min/max
    +#    refinement levels only. 
    +# 
    +#    Justin Privitera, Mon Oct 17 17:33:30 PDT 2022
    +#    Added new tests for the new LOR settings. All prior tests use the legacy
    +#    LOR setting, while new tests use a mix of both.
    +#
    +#    Cyrus Harrison, Tue Oct 29 10:52:33 PDT 2024
    +#    Added wedge example mesh.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("MFEM")
    +
    +readOptions = GetDefaultFileOpenOptions("MFEM")
    +readOptions["MFEM LOR Setting"] = "Legacy LOR"
    +SetDefaultFileOpenOptions("MFEM", readOptions)
    +
    +mfem_roots  = glob.glob(data_path("mfem_test_data/*.mfem_root"))
    +mfem_roots.extend(glob.glob(data_path("mfem_wedge_and_pyramid_examples/wedge_*.mfem_root")))
    +input_meshs  = [ f for f in mfem_roots if f.count("ex0") == 0]
    +ex01_results = [ f for f in mfem_roots if f.count("ex01") == 1]
    +ex02_results = [ f for f in mfem_roots if f.count("ex02") == 1]
    +mfem_mesh_files = glob.glob(data_path("mfem_test_data/*.mesh"))
    +
    +
    +def set_test_view():
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.510614, 0.302695, 0.804767)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (-0.0150532, 0.932691, -0.360361)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +TestSection("Input Mesh Files")
    +for f in input_meshs:
    +    base = os.path.splitext(os.path.basename(f))[0]
    +    DeleteAllPlots()
    +    OpenDatabase(f)
    +    AddPlot("Pseudocolor","main_element_coloring")
    +    #pc_atts = PseudocolorAttributes()
    +    #pc_atts.colorTableName = "PuBuGn"
    +    #SetPlotOptions(pc_atts)
    +    AddOperator("MultiresControl")
    +    AddPlot("Mesh","main")
    +    AddOperator("MultiresControl")
    +    SetActivePlots((0,1))
    +    levels = [0,20]
    +    if f.count("amr") > 0:
    +        levels = [0,5]
    +    for mres in levels:
    +        mc_atts  = MultiresControlAttributes()
    +        mc_atts.resolution = mres
    +        SetOperatorOptions(mc_atts)
    +        ResetView()
    +        DrawPlots()
    +        Test("input_mesh_%s_mres_%04d" % (base,mres))
    +    DeleteAllPlots()
    +    CloseDatabase(f)
    +
    +TestSection("ex01 results")
    +for f in ex01_results:
    +    base = os.path.splitext(os.path.basename(f))[0]
    +    DeleteAllPlots()
    +    OpenDatabase(f)
    +    AddPlot("Pseudocolor","gf")
    +    #AddPlot("Mesh","main")
    +    ResetView()
    +    DrawPlots()
    +    Test("ex01_%s" % (base))
    +    DeleteAllPlots()
    +    CloseDatabase(f)
    +
    +TestSection("ex02 results")
    +for f in ex02_results:
    +    base = os.path.splitext(os.path.basename(f))[0]
    +    DeleteAllPlots()
    +    OpenDatabase(f)
    +    AddPlot("Pseudocolor","main_element_attribute")
    +    #AddPlot("Mesh","main")
    +    ResetView()
    +    DrawPlots()
    +    Test("ex02_element_attribute_%s" % (base))
    +    ChangeActivePlotsVar("gf_magnitude");
    +    DrawPlots()
    +    Test("ex02_gf_mag_%s" % (base))
    +    DeleteAllPlots()
    +    CloseDatabase(f)
    +
    +TestSection("MFEM Expressions")
    +OpenDatabase(data_path("mfem_test_data/ex02-beam-tet.mfem_root"))
    +AddPlot("Pseudocolor","mag-gf")
    +ResetView()
    +DrawPlots()
    +Test("mfem_expressions_1")
    +DeleteAllPlots()
    +AddPlot("Pseudocolor","comp0")
    +DrawPlots()
    +Test("mfem_expressions_2")
    +DeleteAllPlots()
    +AddPlot("Vector","curl-gf")
    +DrawPlots()
    +Test("mfem_expressions_3")
    +DeleteAllPlots()
    +CloseDatabase(data_path("mfem_test_data/ex02-beam-tet.mfem_root"))
    +
    +TestSection("Input Mesh Boundary Topology")
    +for f in input_meshs:
    +    base = os.path.splitext(os.path.basename(f))[0]
    +    DeleteAllPlots()
    +    OpenDatabase(f)
    +    AddPlot("Pseudocolor","main_boundary_attribute")
    +    AddPlot("Mesh","main_boundary")
    +    mesh_atts = MeshAttributes()
    +    mesh_atts.lineWidth = 2
    +    SetPlotOptions(mesh_atts)
    +    ResetView()
    +    DrawPlots()
    +    Test("input_mesh_%s_boundary_topo" % (base))
    +    DeleteAllPlots()
    +    CloseDatabase(f)
    +
    +TestSection("Direct Mesh Open")
    +for f in mfem_mesh_files:
    +    base = os.path.splitext(os.path.basename(f))[0]
    +    DeleteAllPlots()
    +    OpenDatabase(f)
    +    AddPlot("Pseudocolor","main_element_coloring")
    +    ResetView()
    +    DrawPlots()
    +    Test("direct_open_mesh_file_%s" % (base))
    +    DeleteAllPlots()
    +    CloseDatabase(f)
    +
    +# reset default
    +readOptions = GetDefaultFileOpenOptions("MFEM")
    +readOptions["MFEM LOR Setting"] = "MFEM LOR"
    +SetDefaultFileOpenOptions("MFEM", readOptions)
    +
    +def test_mfem_lor_mesh(tag_name, dbfile):
    +    ResetView()
    +    base = os.path.splitext(os.path.basename(dbfile))[0]
    +
    +    # get default options
    +    readOptions = GetDefaultFileOpenOptions("MFEM")
    +    readOptions["MFEM LOR Setting"] = "MFEM LOR"
    +    SetDefaultFileOpenOptions("MFEM", readOptions)
    +    OpenDatabase(dbfile)
    +
    +    # we want to test a picture of a wireframe
    +    # new LOR should only have the outer edge
    +    AddPlot("Subset", "main")
    +    SubsetAtts = SubsetAttributes()
    +    SubsetAtts.wireframe = 1
    +    SetPlotOptions(SubsetAtts)
    +    set_test_view()
    +    DrawPlots()
    +    Test(tag_name + "_" + base + "_lor")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(dbfile)
    +
    +    ##############################
    +
    +    # examine legacy
    +    readOptions = GetDefaultFileOpenOptions("MFEM")
    +    readOptions["MFEM LOR Setting"] = "Legacy LOR"
    +    SetDefaultFileOpenOptions("MFEM", readOptions)
    +    OpenDatabase(dbfile)
    +
    +    # old LOR leaves a busy wireframe
    +    AddPlot("Subset", "main")
    +    SubsetAtts = SubsetAttributes()
    +    SubsetAtts.wireframe = 1
    +    SetPlotOptions(SubsetAtts)
    +    set_test_view()
    +    DrawPlots()
    +    Test(tag_name + "_" + base + "_legacy_lor")
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(dbfile)
    +
    +    # restore default
    +    readOptions = GetDefaultFileOpenOptions("MFEM")
    +    readOptions["MFEM LOR Setting"] = "MFEM LOR"
    +    SetDefaultFileOpenOptions("MFEM", readOptions)
    +
    +TestSection("Legacy and New LOR")
    +for dbfile in input_meshs:
    +    test_mfem_lor_mesh("LOR", dbfile)
    +
    +def test_mfem_lor_field(tag_name, dbfile):
    +    ResetView()
    +    base = os.path.splitext(os.path.basename(dbfile))[0]
    +
    +    readOptions = GetDefaultFileOpenOptions("MFEM")
    +    readOptions["MFEM LOR Setting"] = "MFEM LOR"
    +    SetDefaultFileOpenOptions("MFEM", readOptions)
    +    OpenDatabase(dbfile)
    +
    +    AddPlot("Pseudocolor","gf")
    +    AddOperator("MultiresControl", 1)
    +    SetActivePlots(0)
    +    MultiresControlAtts = MultiresControlAttributes()
    +    MultiresControlAtts.resolution = 3
    +    SetOperatorOptions(MultiresControlAtts, 0, 1)
    +    set_test_view()
    +    DrawPlots()
    +    Test(tag_name + "_" + base + "_pseudocolor_gf_lor")
    +    DeleteAllPlots()
    +    ResetView()
    +
    +    CloseDatabase(dbfile)
    +
    +    ##############################
    +
    +    # examine legacy
    +    readOptions = GetDefaultFileOpenOptions("MFEM")
    +    readOptions["MFEM LOR Setting"] = "Legacy LOR"
    +    SetDefaultFileOpenOptions("MFEM", readOptions)
    +    OpenDatabase(dbfile)
    +
    +    AddPlot("Pseudocolor","gf")
    +    AddOperator("MultiresControl", 1)
    +    SetActivePlots(0)
    +    MultiresControlAtts = MultiresControlAttributes()
    +    MultiresControlAtts.resolution = 3
    +    SetOperatorOptions(MultiresControlAtts, 0, 1)
    +    set_test_view()
    +    DrawPlots()
    +    Test(tag_name + "_" + base + "_pseudocolor_gf_legacy_lor")
    +    DeleteAllPlots()
    +    ResetView()
    +
    +    # restore default
    +    readOptions = GetDefaultFileOpenOptions("MFEM")
    +    readOptions["MFEM LOR Setting"] = "MFEM LOR"
    +    SetDefaultFileOpenOptions("MFEM", readOptions)
    +
    +TestSection("Legacy and New LOR Fields")
    +for dbfile in ex01_results:
    +    test_mfem_lor_field("LOR_Fields", dbfile)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_mili.html b/2024-12-12-22:00/poodle_trunk_serial/databases_mili.html new file mode 100644 index 000000000..7f5e08a07 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_mili.html @@ -0,0 +1,378 @@ + +Results for databases/mili.py + +

    Results of VisIt Regression Test - databases/mili

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Vector components
    mili_brick_comp0.000.00
    mili_beam_comp0.000.00
    mili_nodacc_comp0.000.00
    Non-shared element sets
    mili_non_shared_es_010.000.00
    Shared element sets
    mili_shared_es_010.000.00
    mili_shared_es_020.000.00
    mili_shared_es_030.000.00
    Material variables
    mili_mat_var_010.000.00
    mili_mat_var_020.000.00
    Tensors
    mili_tensors_010.000.00
    mili_tensors_020.000.00
    Vectors
    mili_vectors_010.000.00
    mili_vectors_020.000.00
    mili_vectors_030.000.00
    Sand mesh
    mili_sand_mesh_010.000.00
    mili_sand_mesh_020.000.00
    mili_sand_mesh_030.000.00
    mili_sand_mesh_040.000.00
    Materials
    mili_materials_000.000.00
    mili_materials_010.000.00
    Multi-domain
    mili_multi_dom_010.000.00
    mili_multi_dom_020.000.00
    Particles
    mili_particle_010.000.00
    Static nodes
    mili_static_nodes_010.000.00
    Labels
    mili_zone_labels_010.000.00
    mili_node_labels_010.000.00
    Sci notation read
    mili_from_sci_not0.000.00
    Multi-subrecord read
    mili_subrec_offset0.000.00
    Derived variables
    mili_derived_000.000.00
    mili_derived_010.000.00
    mili_derived_020.000.00
    mili_derived_030.000.00
    mili_derived_040.000.00
    mili_derived_050.000.00
    mili_derived_060.000.00
    mili_derived_070.000.00
    mili_derived_080.000.00
    mili_derived_090.000.00
    mili_derived_100.000.00
    mili_derived_110.000.00
    mili_derived_120.000.00
    mili_derived_130.000.00
    mili_derived_140.000.00
    Global integration point
    mili_global_ip_000.000.00
    mili_global_ip_010.000.00
    mili_global_ip_020.000.00
    Material edge lines
    mili_hidden_material_edge_lines0.000.00
    Displacement
    mili_displacement0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_mili_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_mili_py.html new file mode 100644 index 000000000..0f73331eb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_mili_py.html @@ -0,0 +1,572 @@ +databases/mili.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  mili.py
    +#
    +#  Tests:      mesh      - 3D unstructured, multi-domain
    +#              plots     - Pseudocolor, material, vector, tensor, label
    +#
    +#
    +#  Programmer: Alister Maguire
    +#  Date:       May 22, 2019
    +#
    +#  Modifications:
    +#
    +#    Alister Maguire, Mon Aug  5 13:02:05 MST 2019
    +#    Added a test that handles .mili files containing integers in
    +#    scientific notation.
    +#
    +#    Alister Maguire, Thu Dec 19 13:40:07 PST 2019
    +#    Added a test to make sure correct subrecord offsets are used.
    +#
    +#    Alister Maguire, Wed Jul 15 13:38:17 PDT 2020
    +#    Added test sections and derived variable test.
    +#
    +#    Alister Maguire, Wed Mar 24 16:06:33 PDT 2021
    +#    Added a test for setting/changing the global integration point.
    +#
    +#    Alister Maguire, Fri Mar 26 10:25:08 PDT 2021
    +#    Added more tests for derived variables (stress, strain, sand mesh).
    +# 
    +#    Justin Privitera, Tue Oct 22 10:32:27 PDT 2024
    +#    Add test for hiding material edge lines.
    +#
    +#    Justin Privitera, Wed Nov  6 16:41:21 PST 2024
    +#    Add test for displacement.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("Mili")
    +single_domain_path = data_path("mili_test_data/single_proc/")
    +multi_domain_path  = data_path("mili_test_data/multi_proc/")
    +
    +def TestComponentVis():
    +    TestSection("Vector components")
    +    OpenDatabase(single_domain_path + "/d3samp6.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(90)
    +
    +    AddPlot("Pseudocolor", "Primal/Shared/edrate")
    +    DrawPlots()
    +    Test("mili_brick_comp")
    +
    +    ChangeActivePlotsVar("Primal/beam/svec/svec_x")
    +    Test("mili_beam_comp")
    +    ChangeActivePlotsVar("Primal/node/nodacc/ax")
    +    Test("mili_nodacc_comp")
    +
    +    DeleteAllPlots()
    +
    +
    +def TestSharedElementSets():
    +    TestSection("Shared element sets")
    +    OpenDatabase(single_domain_path + "/d3samp6.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(90)
    +
    +    AddPlot("Pseudocolor", "Primal/Shared/strain/exy")
    +    DrawPlots()
    +    Test("mili_shared_es_01")
    +    ChangeActivePlotsVar("Primal/Shared/edrate")
    +    Test("mili_shared_es_02")
    +    ChangeActivePlotsVar("Primal/Shared/stress/sy")
    +    Test("mili_shared_es_03")
    +
    +    DeleteAllPlots()
    +
    +
    +def TestNonSharedElementSets():
    +    TestSection("Non-shared element sets")
    +    OpenDatabase(single_domain_path + "/d3samp6.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(90)
    +
    +    #
    +    #  eps is a section of an element set that is only
    +    #  defined on beams.
    +    #
    +    AddPlot("Pseudocolor", "Primal/beam/eps")
    +    DrawPlots()
    +    Test("mili_non_shared_es_01")
    +    DeleteAllPlots()
    +
    +
    +def TestMaterialVar():
    +    TestSection("Material variables")
    +    OpenDatabase(single_domain_path + "/d3samp6.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(90)
    +
    +    AddPlot("Pseudocolor", "Primal/mat/matcgy")
    +    DrawPlots()
    +    Test("mili_mat_var_01")
    +    ChangeActivePlotsVar("Primal/mat/matke")
    +    Test("mili_mat_var_02")
    +    DeleteAllPlots()
    +
    +
    +def TestTensors():
    +    TestSection("Tensors")
    +    OpenDatabase(single_domain_path + "/d3samp6.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(90)
    +
    +    AddPlot("Tensor", "Primal/Shared/stress")
    +    DrawPlots()
    +    Test("mili_tensors_01")
    +
    +    ChangeActivePlotsVar("Primal/Shared/strain")
    +    Test("mili_tensors_02")
    +    DeleteAllPlots()
    +
    +
    +def TestVectors():
    +    TestSection("Vectors")
    +    OpenDatabase(single_domain_path + "/d3samp6.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(90)
    +
    +    AddPlot("Vector", "Primal/node/nodpos")
    +    DrawPlots()
    +    Test("mili_vectors_01")
    +
    +    ChangeActivePlotsVar("Primal/shell/bend")
    +    Test("mili_vectors_02")
    +
    +    ChangeActivePlotsVar("Primal/beam/svec")
    +    Test("mili_vectors_03")
    +    DeleteAllPlots()
    +
    +
    +def TestSandMesh():
    +    TestSection("Sand mesh")
    +    OpenDatabase(single_domain_path + "/m_plot.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(101)
    +
    +    #
    +    # First, let's look at the sand variable on a non-sanded mesh.
    +    # It should be well structured.
    +    #
    +    AddPlot("Mesh", "mesh1")
    +    AddPlot("Pseudocolor", "Primal/Shared/sand")
    +    DrawPlots()
    +    Test("mili_sand_mesh_01")
    +    DeleteAllPlots()
    +
    +    #
    +    # Now let's view the sand mesh. It's a mess.
    +    #
    +    AddPlot("Mesh", "sand_mesh1")
    +    AddPlot("Pseudocolor", "Primal/Shared/sand")
    +    DrawPlots()
    +    Test("mili_sand_mesh_02")
    +
    +    #
    +    # Now let's look at sand in its sanded state.
    +    #
    +    ChangeActivePlotsVar("sand_mesh/Primal/Shared/sand")
    +    DrawPlots()
    +    Test("mili_sand_mesh_03")
    +
    +    #
    +    # We need to make sure that other variables can also be
    +    # viewed in their sanded state.
    +    #
    +    ChangeActivePlotsVar("sand_mesh/Primal/shell/stress_mid/sx")
    +    Test("mili_sand_mesh_04")
    +
    +    DeleteAllPlots()
    +
    +
    +def TestMaterials():
    +    #
    +    # The tests need to be in this order to work around a bug in
    +    # the filled boundary plot with getting colors from a database
    +    # that causes the colors to be set the same for subsequent
    +    # filled boundary plots where the colors are not set in the
    +    # database.
    +    #
    +    TestSection("Materials")
    +    OpenDatabase(single_domain_path + "/sslide14ball_l.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(12)
    +
    +    AddPlot("FilledBoundary", "materials1")
    +    DrawPlots()
    +    Test("mili_materials_00")
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(single_domain_path + "/d3samp6.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(70)
    +
    +    AddPlot("FilledBoundary", "materials1(mesh1)")
    +    DrawPlots()
    +    Test("mili_materials_01")
    +
    +    DeleteAllPlots()
    +
    +def TestMultiDomain():
    +    TestSection("Multi-domain")
    +    OpenDatabase(multi_domain_path + "/d3samp6.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(90)
    +
    +    AddPlot("Pseudocolor", "Primal/Shared/strain/exy")
    +    DrawPlots()
    +    Test("mili_multi_dom_01")
    +    ChangeActivePlotsVar("Primal/Shared/stress/sz")
    +    Test("mili_multi_dom_02")
    +
    +    DeleteAllPlots()
    +
    +
    +def TestParticles():
    +    TestSection("Particles")
    +    OpenDatabase(single_domain_path + "/sslide14ball_l.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(0)
    +
    +    AddPlot("Pseudocolor", "Primal/particle/stress/sxy")
    +    DrawPlots()
    +    Test("mili_particle_01")
    +    DeleteAllPlots()
    +
    +
    +def TestStaticNodes():
    +    TestSection("Static nodes")
    +    OpenDatabase(single_domain_path + "/m1_plot.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +
    +    AddPlot("Mesh", "mesh1")
    +    AddPlot("Pseudocolor", "Primal/node/temp")
    +    SetTimeSliderState(10)
    +    DrawPlots()
    +    Test("mili_static_nodes_01")
    +    DeleteAllPlots()
    +
    +
    +def TestLabels():
    +    TestSection("Labels")
    +    OpenDatabase(single_domain_path + "/d3samp6.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(90)
    +
    +    AddPlot("Pseudocolor", "Primal/Shared/edrate")
    +    AddPlot("Label", "OriginalZoneLabels")
    +    DrawPlots()
    +    Test("mili_zone_labels_01")
    +
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Primal/Shared/edrate")
    +    AddPlot("Label", "OriginalNodeLabels")
    +    DrawPlots()
    +    Test("mili_node_labels_01")
    +    DeleteAllPlots()
    +
    +
    +def TestSciNotation():
    +    TestSection("Sci notation read")
    +    #
    +    # Some .mili files contain integers in scientific notation.
    +    # These need to be handled appropriately.
    +    #
    +    OpenDatabase(single_domain_path + "/HexModel1.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +
    +    AddPlot("Pseudocolor", "Primal/brick/stress/sx")
    +    DrawPlots()
    +    Test("mili_from_sci_not")
    +    DeleteAllPlots()
    +
    +
    +def TestMultiSubrecRead():
    +    TestSection("Multi-subrecord read")
    +    #
    +    # This tests a bug fix that occurred when loading variables
    +    # that span several subrecords at different offsets.
    +    #
    +    OpenDatabase(single_domain_path + "/test4_0.15.plt.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +
    +    AddPlot("Pseudocolor", "Primal/brick/stress/sx")
    +    DrawPlots()
    +    Test("mili_subrec_offset")
    +    DeleteAllPlots()
    +
    +
    +def TestDerivedVariables():
    +    TestSection("Derived variables")
    +    OpenDatabase(single_domain_path + "/m_plot.mili")
    +    v = GetView3D()
    +    v.viewNormal = (0.49, 0.19, 0.85)
    +    SetView3D(v)
    +
    +    SetTimeSliderState(85)
    +
    +    #
    +    # Node centered derivations.
    +    #
    +    AddPlot("Pseudocolor", "Derived/node/displacement/dispx")
    +    DrawPlots()
    +    Test("mili_derived_00")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Derived/node/displacement/dispy")
    +    DrawPlots()
    +    Test("mili_derived_01")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Derived/node/displacement/dispz")
    +    DrawPlots()
    +    Test("mili_derived_02")
    +    DeleteAllPlots()
    +
    +    AddPlot("Vector", "Derived/node/displacement")
    +    DrawPlots()
    +    Test("mili_derived_03")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "sand_mesh/Derived/node/displacement/dispz")
    +    DrawPlots()
    +    Test("mili_derived_04")
    +    DeleteAllPlots()
    +
    +    #
    +    # Stress/strain derivations. In m_plot, only stress comes from
    +    # the database, and we derive strain and all of its derivations
    +    # using VisIt expressions.
    +    #
    +    AddPlot("Pseudocolor", "Derived/brick/stress/prin_stress/2")
    +    DrawPlots()
    +    Test("mili_derived_05")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Derived/brick/stress/pressure")
    +    DrawPlots()
    +    Test("mili_derived_06")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Derived/Shared/strain/almansi/max_shear_almansi")
    +    DrawPlots()
    +    Test("mili_derived_07")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor",
    +        "Derived/Shared/strain/green_lagrange/prin_dev_green_lagrange/2")
    +    DrawPlots()
    +    Test("mili_derived_08")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Derived/Shared/strain/infinitesimal/x")
    +    DrawPlots()
    +    Test("mili_derived_09")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Derived/Shared/strain/rate/yz")
    +    DrawPlots()
    +    Test("mili_derived_10")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "sand_mesh/Derived/Shared/strain/rate/yz")
    +    DrawPlots()
    +    Test("mili_derived_11")
    +    DeleteAllPlots()
    +
    +    AddPlot("Tensor", "Derived/Shared/strain/green_lagrange")
    +    DrawPlots()
    +    Test("mili_derived_12")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Derived/Shared/relative_volume")
    +    DrawPlots()
    +    Test("mili_derived_13")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "Derived/Shared/volumetric_strain")
    +    DrawPlots()
    +    Test("mili_derived_14")
    +    DeleteAllPlots()
    +
    +
    +def TestGlobalIntegrationPoint():
    +    TestSection("Global integration point")
    +
    +    db_path = single_domain_path + "/d3samp6.plt.mili"
    +    OpenDatabase(db_path)
    +    v = GetView3D()
    +    v.viewNormal = (0.9, 0.35, -0.88)
    +    SetView3D(v)
    +    SetTimeSliderState(90)
    +
    +    AddPlot("Pseudocolor", "Primal/Shared/strain/exy")
    +    DrawPlots()
    +
    +    mili_options = GetDefaultFileOpenOptions("Mili")
    +    mili_options["Global integration point"] = "Inner"
    +    SetDefaultFileOpenOptions("Mili", mili_options)
    +    ReOpenDatabase(db_path)
    +    Test("mili_global_ip_00")
    +
    +    mili_options = GetDefaultFileOpenOptions("Mili")
    +    mili_options["Global integration point"] = "Middle"
    +    SetDefaultFileOpenOptions("Mili", mili_options)
    +    ReOpenDatabase(db_path)
    +    Test("mili_global_ip_01")
    +
    +    mili_options = GetDefaultFileOpenOptions("Mili")
    +    mili_options["Global integration point"] = "Outer"
    +    SetDefaultFileOpenOptions("Mili", mili_options)
    +    ReOpenDatabase(db_path)
    +    Test("mili_global_ip_02")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db_path)
    +
    +def TestMaterialEdgeLines():
    +    TestSection("Material edge lines")
    +
    +    db_path = multi_domain_path + "/d3samp6.plt.mili"
    +    OpenDatabase(db_path)
    +
    +    AddPlot("FilledBoundary", "materials1")
    +    DrawPlots()
    +
    +    AddPlot("FilledBoundary", "materials1")
    +
    +    silr = SILRestriction()
    +    silr.SuspendCorrectnessChecking()
    +    silr.TurnOffAll()
    +    for silSet in (24,29,34,39,44,49,54,59):
    +        silr.TurnOnSet(silSet)
    +    silr.EnableCorrectnessChecking()
    +    SetPlotSILRestriction(silr ,1)
    +
    +    SetActivePlots(1)
    +    FilledBoundaryAtts = FilledBoundaryAttributes()
    +    FilledBoundaryAtts.colorType = FilledBoundaryAtts.ColorBySingleColor  # ColorBySingleColor, ColorByMultipleColors, ColorByColorTable
    +    FilledBoundaryAtts.singleColor = (0, 0, 0, 255)
    +    FilledBoundaryAtts.wireframe = 1
    +    SetPlotOptions(FilledBoundaryAtts)
    +
    +    SetViewExtentsType(1)
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0.673534, 0.187326, -0.715025)
    +    View3DAtts.focus = (0.75, 0.75, 2.6)
    +    View3DAtts.viewUp = (-0.667323, 0.570092, -0.479244)
    +    View3DAtts.parallelScale = 1.13358
    +    View3DAtts.nearPlane = -2.26716
    +    View3DAtts.farPlane = 2.26716
    +    View3DAtts.imageZoom = 0.826446
    +    SetView3D(View3DAtts)
    +
    +    DrawPlots()
    +
    +    Test("mili_hidden_material_edge_lines")
    +
    +    SetViewExtentsType(0)
    +    ResetView()
    +    DeleteAllPlots()
    +    CloseDatabase(db_path)
    +
    +def TestDisplacement():
    +    TestSection("Displacement")
    +
    +    db_path = single_domain_path + "/d3samp6.plt.mili"
    +    OpenDatabase(db_path)
    +
    +    SetTimeSliderState(100)
    +
    +    AddPlot("Mesh", "mesh1")
    +    MeshAtts = MeshAttributes()
    +    MeshAtts.opaqueMode = MeshAtts.On  # Auto, On, Off
    +    SetPlotOptions(MeshAtts)
    +
    +    AddPlot("Vector", "Derived/node/displacement")
    +
    +    SetActivePlots(0)
    +    AddOperator("Displace", 1)
    +    DisplaceAtts = DisplaceAttributes()
    +    DisplaceAtts.factor = 1
    +    DisplaceAtts.variable = "Derived/node/displacement"
    +    SetOperatorOptions(DisplaceAtts, 0, 1)
    +
    +    DrawPlots()
    +    SetViewExtentsType(1)
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0.709435, 0.445393, -0.546193)
    +    View3DAtts.focus = (0.750029, 0.750029, 1.28125)
    +    View3DAtts.viewUp = (-0.422366, 0.889093, 0.176411)
    +    View3DAtts.parallelScale = 1.66334
    +    View3DAtts.nearPlane = -3.32667
    +    View3DAtts.farPlane = 3.32667
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 0.564474
    +    SetView3D(View3DAtts)
    +
    +    DrawPlots()
    +
    +    Test("mili_displacement")
    +
    +    SetViewExtentsType(0)
    +    ResetView()
    +    DeleteAllPlots()
    +    CloseDatabase(db_path)
    +
    +def Main():
    +    TestComponentVis()
    +    TestNonSharedElementSets()
    +    TestSharedElementSets()
    +    TestMaterialVar()
    +    TestTensors()
    +    TestVectors()
    +    TestSandMesh()
    +    TestMaterials()
    +    TestMultiDomain()
    +    TestParticles()
    +    TestStaticNodes()
    +    TestLabels()
    +    TestSciNotation()
    +    TestMultiSubrecRead()
    +    TestDerivedVariables()
    +    TestGlobalIntegrationPoint()
    +    TestMaterialEdgeLines()
    +    TestDisplacement()
    +
    +Main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_miranda.html b/2024-12-12-22:00/poodle_trunk_serial/databases_miranda.html new file mode 100644 index 000000000..4dad29e88 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_miranda.html @@ -0,0 +1,108 @@ + +Results for databases/miranda.py + +

    Results of VisIt Regression Test - databases/miranda

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    miranda_raw_reader10.000.00
    miranda_raw_reader20.000.00
    miranda_raw_reader30.000.00
    miranda_raw_reader40.000.00
    miranda_raw_reader50.000.00
    miranda_raw_reader60.000.00
    miranda_raw_reader70.000.00
    miranda_raw_reader80.000.00
    miranda_raw_reader90.000.00
    miranda_raw_reader100.000.00
    miranda_raw_reader110.000.00
    miranda_raw_reader120.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_miranda_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_miranda_py.html new file mode 100644 index 000000000..faa2cc86e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_miranda_py.html @@ -0,0 +1,156 @@ +databases/miranda.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  miranda.py 
    +#
    +#  Tests:      miranda raw dumps
    +#
    +#  Programmer: David Bremer
    +#  Date:       Feb 20, 2007
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Tue Jul 15 10:43:58 EDT 2008
    +#    Changed number of vectors in vector plot to match the old behavior.
    +#    (We now account for how many domains there are.)
    +#
    +#    Jeremy Meredith, Thu Jan 14 11:19:12 EST 2010
    +#    Changed the path to the test data.
    +#
    +# ----------------------------------------------------------------------------
    +import os, string
    +
    +# ====================================================================
    +
    +OpenDatabase(data_path("miranda_test_data/TG_vortex/plot.raw"))
    +
    +AddPlot("Pseudocolor","density")
    +DrawPlots()
    +Test("miranda_raw_reader1")
    +
    +# ====================================================================
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +Test("miranda_raw_reader2")
    +
    +# ====================================================================
    +
    +SetTimeSliderState(1)
    +Test("miranda_raw_reader3")
    +
    +# ====================================================================
    +
    +SetTimeSliderState(2)
    +DeleteAllPlots()
    +AddPlot("Vector", "velocity")
    +vec = VectorAttributes()
    +vec.nVectors = 400*64
    +SetPlotOptions(vec)
    +DrawPlots()
    +Test("miranda_raw_reader4")
    +
    +# ====================================================================
    +
    +v=GetView3D()
    +v.viewNormal=(-0.707107, -0.707107, 0)
    +v.viewUp=(0, 0, 1)
    +SetView3D(v)
    +Test("miranda_raw_reader5")
    +
    +# ====================================================================
    +
    +DeleteAllPlots()
    +ReplaceDatabase(data_path("miranda_test_data/jet_2d/plot_mat_t83.raw"))
    +
    +
    +SetTimeSliderState(0)
    +AddPlot("Pseudocolor","density")
    +DrawPlots()
    +Test("miranda_raw_reader6")
    +
    +# ====================================================================
    +
    +SetTimeSliderState(1)
    +DeleteAllPlots()
    +AddPlot("Vector", "velocity")
    +vec = VectorAttributes()
    +vec.nVectors = 400*128
    +SetPlotOptions(vec)
    +DrawPlots()
    +vv=GetView2D()
    +vv.viewportCoords=(0.2, 0.95, 0.15, 0.95)
    +vv.windowCoords=(0.00640306, 0.00963122, 0.0128936, 0.0161598)
    +SetView2D(vv)
    +Test("miranda_raw_reader7")
    +
    +# ====================================================================
    +
    +SetTimeSliderState(2)
    +Test("miranda_raw_reader8")
    +
    +# ====================================================================
    +
    +DeleteAllPlots()
    +ReplaceDatabase(data_path("miranda_test_data/stem_2d/plot.mir"))
    +
    +vv = View2DAttributes()
    +vv.windowCoords = (0, 2.23563, -0.28, 0.835625)
    +vv.viewportCoords = (0.05, 0.95, 0.05, 0.95)
    +vv.fullFrameActivationMode = vv.On  # On, Off, Auto
    +vv.fullFrameAutoThreshold = 100
    +SetView2D(vv)
    +
    +SetTimeSliderState(0)
    +AddPlot("Pseudocolor","density")
    +DrawPlots()
    +Test("miranda_raw_reader9")
    +
    +# ====================================================================
    +
    +SetTimeSliderState(3)
    +DrawPlots()
    +Test("miranda_raw_reader10")
    +
    +# ====================================================================
    +
    +ReplaceDatabase(data_path("miranda_test_data/2015-05-06-RT_XeHe/plot.mir"))
    +
    +SetTimeSliderState(0)
    +
    +AddPlot("Pseudocolor","density")
    +
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (-0.626786, -0.71511, 0.309445)
    +View3DAtts.focus = (0, 0, 0)
    +View3DAtts.viewUp = (-0.109109, 0.473773, 0.873861)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 11085.1
    +View3DAtts.nearPlane = -22170.3
    +View3DAtts.farPlane = 22170.3
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (0, 0, 0)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +View3DAtts.windowValid = 1
    +SetView3D(View3DAtts)
    +
    +DrawPlots()
    +
    +Test("miranda_raw_reader11")
    +
    +# ====================================================================
    +
    +SetTimeSliderState(1)
    +DrawPlots()
    +
    +Test("miranda_raw_reader12")
    +
    +# ====================================================================
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_moab.html b/2024-12-12-22:00/poodle_trunk_serial/databases_moab.html new file mode 100644 index 000000000..9f3ab4060 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_moab.html @@ -0,0 +1,60 @@ + +Results for databases/moab.py + +

    Results of VisIt Regression Test - databases/moab

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    moab_010.000.00
    moab_020.000.00
    moab_030.000.00
    moab_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_moab_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_moab_py.html new file mode 100644 index 000000000..0c8bffba1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_moab_py.html @@ -0,0 +1,61 @@ +databases/moab.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  moab.py
    +#
    +#  Tests:      mesh      - 3D unstructured,multi-domain, 
    +#              plots     - Pseudocolor, mesh
    +#
    +#  Programmer: Mark C Miller
    +#  Date:       August 10, 2016
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("MOAB")
    +
    +OpenDatabase(data_path("moab_test_data/64bricks_12ktet.h5m"))
    +
    +AddPlot("Mesh", "mesh")
    +AddPlot("Pseudocolor", "NODE_vertex_field")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.RotateAxis(0,45)
    +v.RotateAxis(1,135)
    +SetView3D(v)
    +Test("moab_01")
    +
    +DeleteAllPlots()
    +AddPlot("Mesh", "mesh")
    +AddPlot("Subset", "Materials")
    +DrawPlots()
    +Test("moab_02")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("moab_test_data/64bricks_12ktet.h5m"))
    +
    +OpenDatabase(data_path("moab_test_data/64bricks_512hex_256part.h5m"))
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.RotateAxis(0,45)
    +v.RotateAxis(1,135)
    +SetView3D(v)
    +Test("moab_03")
    +
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i)[0:8] == "GeomSet_":
    +        silr.TurnOffSet(i)
    +    if   silr.SetName(i) == "GeomSet_427_dim_2":
    +        silr.TurnOnSet(i)
    +    elif silr.SetName(i) == "GeomSet_433_dim_2":
    +        silr.TurnOnSet(i)
    +    elif silr.SetName(i) == "GeomSet_438_dim_2":
    +        silr.TurnOnSet(i)
    +    elif silr.SetName(i) == "GeomSet_443_dim_2":
    +        silr.TurnOnSet(i)
    +SetPlotSILRestriction(silr)
    +Test("moab_04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_multi_format.html b/2024-12-12-22:00/poodle_trunk_serial/databases_multi_format.html new file mode 100644 index 000000000..e5895063f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_multi_format.html @@ -0,0 +1,60 @@ + +Results for databases/multi_format.py + +

    Results of VisIt Regression Test - databases/multi_format

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    multi_format_010.000.00
    multi_format_020.000.00
    multi_format_030.000.00
    multi_format_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_multi_format2.html b/2024-12-12-22:00/poodle_trunk_serial/databases_multi_format2.html new file mode 100644 index 000000000..f6c10b0ea --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_multi_format2.html @@ -0,0 +1,42 @@ + +Results for databases/multi_format2.py + +

    Results of VisIt Regression Test - databases/multi_format2

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    multi_format2_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_multi_format2_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_multi_format2_py.html new file mode 100644 index 000000000..ed7a66f11 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_multi_format2_py.html @@ -0,0 +1,53 @@ +databases/multi_format2.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  multi_format2.py 
    +#
    +#  Tests:      Using multiple file formats types in the same engine.
    +#
    +#  Programmer: Jeremy Meredith
    +#  Creation:   March 23, 2004
    +#
    +#  Tests a strange case related to the original multi_format.py where the
    +#  engine is restarted implicitly.  This is currently skipped in parallel
    +#  since an implicit engine restart does not pick up the same paralell args.
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +db = (silo_data_path("rect2d.silo") ,
    +      data_path("pdb_test_data/allinone00.pdb"))
    +
    +# Create a Pseudocolor plot of Rect2d.
    +OpenDatabase(db[0])
    +AddPlot("Pseudocolor", "p")
    +
    +# Move it off to the side
    +t=TransformAttributes()
    +t.doTranslate = 1
    +t.translateX = 11.0
    +t.doScale = 1;
    +t.scaleX = 22.5;
    +t.scaleY = 22.5;
    +SetDefaultOperatorOptions(t)
    +AddOperator("Transform")
    +
    +# Create a Pseudocolor plot of AllInOne
    +OpenDatabase(db[1])
    +AddPlot("FilledBoundary", "material(mesh)")
    +
    +# Close the compute engine!
    +CloseComputeEngine("localhost");
    +
    +# Allow it to restart
    +DrawPlots()
    +
    +# Test it!
    +Test("multi_format2_01")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_multi_format_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_multi_format_py.html new file mode 100644 index 000000000..6c9273a84 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_multi_format_py.html @@ -0,0 +1,66 @@ +databases/multi_format.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  multi_format.py 
    +#
    +#  Tests:      Using multiple file formats types in the same engine.
    +#
    +#  Programmer: Hank Childs
    +#  Creation:   March 22, 2004
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Mar 9 09:15:30 PDT 2005
    +#    Removed deprecated functions.
    +#
    +#    Tom Fogal, Tue Dec 15 17:34:00 MST 2009
    +#    Fix path to data.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +db = (data_path("silo_pdb_test_data/wave*.silo database"),
    +      data_path("pdb_test_data/allinone00.pdb"))
    +
    +# Create a Pseudocolor plot of wave.
    +OpenDatabase(db[0])
    +AddPlot("Pseudocolor", "pressure")
    +DrawPlots()
    +
    +# Set the view.
    +v0 = View3DAttributes()
    +v0.viewNormal = (-0.661743, 0.517608, 0.542382)
    +v0.focus = (5, 0.757692, 2.5)
    +v0.viewUp = (0.370798, 0.854716, -0.363277)
    +v0.viewAngle = 30
    +v0.parallelScale = 5.63924
    +v0.nearPlane = -11.2785
    +v0.farPlane = 11.2785
    +v0.imagePan = (0.00100868, 0.0454815)
    +v0.imageZoom = 1.17935
    +v0.perspective = 1
    +SetView3D(v0)
    +Test("multi_format_01")
    +
    +# Create another window and make sure that it has the wave database as its
    +# active source.
    +CloneWindow()
    +SetActiveWindow(2)
    +DeleteAllPlots()
    +
    +# Open the allinone database and make sure that it becomes the active source.
    +OpenDatabase(db[1])
    +
    +# Create a plot from it.
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +Test("multi_format_02")
    +# note: py3 div creates float
    +SetTimeSliderState(int(TimeSliderGetNStates() / 2))
    +Test("multi_format_03")
    +
    +# Switch back to window 1.
    +SetActiveWindow(1)
    +Test("multi_format_04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_netcdf.html b/2024-12-12-22:00/poodle_trunk_serial/databases_netcdf.html new file mode 100644 index 000000000..6293efabe --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_netcdf.html @@ -0,0 +1,210 @@ + +Results for databases/netcdf.py + +

    Results of VisIt Regression Test - databases/netcdf

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ADAPT files
    netcdf_0_000.000.00
    netcdf_0_010.000.00
    netcdf_0_020.000.00
    netcdf_0_030.000.00
    LODI particle files
    netcdf_1_000.000.00
    netcdf_1_010.000.00
    netcdf_1_020.000.00
    LODI files
    Basic NETCDF reader
    netcdf_3_000.000.00
    netcdf_3_010.000.00
    netcdf_3_020.000.00
    netcdf_3_030.000.00
    netcdf_3_040.000.00
    netcdf_3_050.000.00
    netcdf_3_060.000.00
    netcdf_3_070.000.00
    netcdf_3_080.000.00
    Basic NETCDF reader with zone-centered data
    netcdf_3_090.000.00
    netcdf_3_100.000.00
    CCSM reader
    netcdf_4_000.000.00
    netcdf_4_010.000.00
    netcdf_4_020.000.00
    Time-varying curves
    netcdf_5_000.000.00
    netcdf_5_010.000.00
    FVCOM reader
    netcdf_6_000.000.00
    netcdf_6_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_netcdf_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_netcdf_py.html new file mode 100644 index 000000000..ac5912b38 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_netcdf_py.html @@ -0,0 +1,425 @@ +databases/netcdf.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  netcdf.py
    +#
    +#  Tests:      mesh      - 2D, 3D structured, single domain
    +#              plots     - Mesh, Pseudocolor, FilledBoundary
    +#              operators - Transform
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Mon Aug 22 11:37:35 PDT 2005
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Oct 10 11:20:44 PDT 2007
    +#    Added tests for CCSM data.
    +#
    +#    Jeremy Meredith, Fri Aug  8 11:23:29 EDT 2008
    +#    Updated streamline settings to match new attribute fields.
    +#
    +#    Brad Whitlock, Mon 16:37:34 PST 2009
    +#    I removed the Streamline plot and I fixed some other things to get it
    +#    working again.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Brad Whitlock, Thu Sep  9 11:03:30 PDT 2010
    +#    I added tests for time-varying curves, FVCOM.
    +#
    +#    Kathleen Biagas, Fri Sep 21 10:12:15 MST 2012
    +#    Removed pjoin so that tests can run on Windows.
    +#
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#    individually to match current baseline results.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Replace obsolete Label text attributes with new versions.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("NETCDF")
    +
    +def test0():
    +    TestSection("ADAPT files")
    +    OpenDatabase(data_path("netcdf_test_data/narac/adapt_etex_metfld_from_obs_102312.nc"))
    +    AddPlot("Pseudocolor", "u")
    +    AddPlot("Mesh", "main")
    +    SetActivePlots((0,1))
    +    AddOperator("Transform")
    +    t = TransformAttributes()
    +    t.scaleZ = 200
    +    t.doScale = 1
    +    SetOperatorOptions(t)
    +    DrawPlots()
    +
    +    # Set the view
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.70982, -0.515727, 0.479773)
    +    v.focus = (0, 0, 753888)
    +    v.viewUp = (0.359948, 0.319901, 0.876414)
    +    v.viewAngle = 30
    +    v.parallelScale = 2.38503e+06
    +    v.nearPlane = -4.77005e+06
    +    v.farPlane = 4.77005e+06
    +    v.imagePan = (0.000886525, 0.00976909)
    +    v.imageZoom = 0.952092
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 753888)
    +    SetView3D(v)
    +    Test("netcdf_0_00")
    +
    +    # Set up another view.
    +    v1 = View3DAttributes()
    +    v1.viewNormal = (-0.434823, -0.389027, -0.812149)
    +    v1.focus = (0, 0, 753888)
    +    v1.viewUp = (-0.545125, -0.604143, 0.581249)
    +    v1.viewAngle = 30
    +    v1.parallelScale = 2.38503e+06
    +    v1.nearPlane = -4.77005e+06
    +    v1.farPlane = 4.77005e+06
    +    v1.imagePan = (0.00461106, -0.0368703)
    +    v1.imageZoom = 0.952092
    +    v1.perspective = 1
    +    v1.eyeAngle = 2
    +    v1.centerOfRotationSet = 0
    +    v1.centerOfRotation = (0, 0, 753888)
    +    SetView3D(v1)
    +    Test("netcdf_0_01")
    +
    +    # Plot the terrain by stripping away most of the air.
    +    SetActivePlots(1)
    +    DeleteActivePlots()
    +    AddOperator("IndexSelect")
    +    idxsel = IndexSelectAttributes()
    +    idxsel.dim = idxsel.ThreeD
    +    idxsel.zMax = 1
    +    SetOperatorOptions(idxsel)
    +
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.394106, -0.0944361, 0.9142)
    +    v2.focus = (0, 0, 508267)
    +    v2.viewUp = (0.867549, 0.290123, 0.403965)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 2.31912e+06
    +    v2.nearPlane = -4.63825e+06
    +    v2.farPlane = 4.63825e+06
    +    v2.imagePan = (0.012587, 0.0291994)
    +    v2.imageZoom = 1.08833
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0, 0, 508267)
    +    SetView3D(v2)
    +    DrawPlots()
    +    Test("netcdf_0_02")
    +
    +    # Plot something 2D
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "ustar")
    +    p = PseudocolorAttributes()
    +    p.skewFactor = 0.01
    +    p.scaling = p.Skew
    +    DrawPlots()
    +    Test("netcdf_0_03")
    +    DeleteAllPlots()
    +
    +def test1():
    +    TestSection("LODI particle files")
    +    # First put in the terrain, though it is not a LODI particle file.
    +    OpenDatabase(data_path("netcdf_test_data/narac/adapt_etex_metfld_from_obs_102312.nc"))
    +    AddPlot("Pseudocolor", "u")
    +    AddOperator("Transform", 1)
    +    t = TransformAttributes()
    +    t.scaleZ = 200
    +    t.doScale = 1
    +    SetOperatorOptions(t)
    +    AddOperator("IndexSelect")
    +    idxsel = IndexSelectAttributes()
    +    idxsel.dim = idxsel.ThreeD
    +    idxsel.zMax = 1
    +    SetOperatorOptions(idxsel)
    +    DrawPlots()
    +
    +    # Now add the LODI particle file.
    +    db = data_path("netcdf_test_data/narac/ppart.nc")
    +    OpenDatabase(db)
    +    AddPlot("FilledBoundary", "sourceid")
    +    AddOperator("Transform")
    +    SetOperatorOptions(t)
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.57737, -0.765477, 0.28406)
    +    v.focus = (0, 0, 265602)
    +    v.viewUp = (0.165375, 0.231057, 0.958782)
    +    v.viewAngle = 30
    +    v.parallelScale = 2.27828e+06
    +    v.nearPlane = -4.55655e+06
    +    v.farPlane = 4.55655e+06
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 3.17577
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 265602)
    +    SetView3D(v)
    +    Test("netcdf_1_00")
    +
    +    # Do a Label plot
    +    AddPlot("Label", "sourceid")
    +    AddOperator("Transform")
    +    SetOperatorOptions(t)
    +    L = LabelAttributes()
    +    L.restrictNumberOfLabels = 0
    +    L.textFont1.scale = 6
    +    SetPlotOptions(L)
    +    DrawPlots()
    +    SetActivePlots(1)
    +    f = FilledBoundaryAttributes()
    +    f.pointSizePixels = 10
    +    SetPlotOptions(f)
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.57737, -0.765477, 0.28406)
    +    v2.focus = (0, 0, 265602)
    +    v2.viewUp = (0.165375, 0.231057, 0.958782)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 2.27828e+06
    +    v2.nearPlane = -4.55655e+06
    +    v2.farPlane = 4.55655e+06
    +    v2.imagePan = (-0.0022605, 0.0057171)
    +    v2.imageZoom = 111.554
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0, 0, 265602)
    +    SetView3D(v2)
    +    Test("netcdf_1_01")
    +
    +    # Delete the label plot and go forward in time
    +    SetActivePlots(2)
    +    DeleteActivePlots()
    +    SetView3D(v)
    +    SetActivePlots(1)
    +    f.pointSizePixels = 2
    +    SetPlotOptions(f)
    +    TimeSliderNextState()
    +    Test("netcdf_1_02")
    +    DeleteAllPlots()
    +
    +def test2():
    +    TestSection("LODI files")
    +    # This test is reserved for LODI once it is assured to be right.
    +    return
    +
    +def test3():
    +    TestSection("Basic NETCDF reader")
    +    OpenDatabase(data_path("netcdf_test_data/narac/etex_fill_lambertcc__4000_001.elev"))
    +    AddPlot("Pseudocolor", "elevations")
    +    DrawPlots()
    +    Test("netcdf_3_00")
    +
    +    # Elevate the data
    +    ClearWindow()
    +    AddOperator("Elevate")
    +    e = ElevateAttributes()
    +    e.useXYLimits = e.Always
    +    SetOperatorOptions(e)
    +    AddOperator("Transform")
    +    t = TransformAttributes()
    +    t.doScale = 1
    +    t.scaleX = 100
    +    t.scaleY = 100
    +    t.scaleZ = 3
    +    SetOperatorOptions(t)
    +    th = ThresholdAttributes()
    +    th.listedVarNames = ("elevations")
    +    th.lowerBounds = (1.0)
    +    SetDefaultOperatorOptions(th)
    +    AddOperator("Threshold")
    +    DrawPlots()
    +    # Set up a light
    +    oldLight = GetLight(0)
    +    newLight = GetLight(0)
    +    newLight.enabledFlag = 1
    +    newLight.type = newLight.Camera  # Ambient, Object, Camera
    +    newLight.direction = (-0.626, -0.427, -0.653)
    +    newLight.color = (255, 255, 255, 255)
    +    newLight.brightness = 1
    +    SetLight(0, newLight)
    +    # Set up the view
    +    v = View3DAttributes()
    +    v.viewNormal = (0, -0.5, 0.866025)
    +    v.focus = (0, 0, 1646)
    +    v.viewUp = (0, 0.866025, 0.5)
    +    v.viewAngle = 30
    +    v.parallelScale = 282140
    +    v.nearPlane = -564281
    +    v.farPlane = 564281
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1.43024
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 1646)
    +    SetView3D(v)
    +    InvertBackgroundColor()
    +    Test("netcdf_3_01")
    +    SetLight(0, oldLight)
    +    DeleteAllPlots()
    +    InvertBackgroundColor()
    +
    +    # Try some curves
    +    OpenDatabase(data_path("netcdf_test_data/3252ATT-A1H.cdf"))
    +    AddPlot("Curve", "ATTN_55")
    +    curveAtts = CurveAttributes()
    +    curveAtts.curveColorSource = curveAtts.Custom
    +    curveAtts.curveColor = (255, 0, 0, 255)
    +    SetPlotOptions(curveAtts)
    +    DrawPlots()
    +    Test("netcdf_3_02")
    +    DeleteAllPlots()
    +    OpenDatabase(data_path("netcdf_test_data/AAtestCTD.nc"))
    +    AddPlot("Curve", "ST_70")
    +    curveAtts.curveColor = (0, 255, 0, 255)
    +    SetPlotOptions(curveAtts)
    +    DrawPlots()
    +    ResetView()
    +    Test("netcdf_3_03")
    +    DeleteAllPlots()
    +
    +    # Try some files that I found on climate web sites.
    +    OpenDatabase(data_path("netcdf_test_data/pressure.cdf"))
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    ResetView()
    +    ToggleFullFrameMode() # Did this get set somehow by the curve plots?
    +    Test("netcdf_3_04")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(data_path("netcdf_test_data/aou.cdf"))
    +    AddPlot("Pseudocolor", "aou")
    +    AddOperator("Slice")
    +    s = SliceAttributes()
    +    s.axisType = s.ZAxis
    +    SetOperatorOptions(s)
    +    DrawPlots()
    +    ResetView()
    +    Test("netcdf_3_05")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(data_path("netcdf_test_data/NASA_vegetation_lai.cdf"))
    +    AddPlot("Pseudocolor", "lai")
    +    DrawPlots()
    +    v2 = View2DAttributes()
    +    v2.windowCoords = (-139.883, -44.1452, -18.7702, 74.4037)
    +    v2.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v2.fullFrameActivationMode = v2.Off  # On, Off, Auto
    +    v2.fullFrameAutoThreshold = 100
    +    SetView2D(v2)
    +    Test("netcdf_3_06")
    +    DeleteAllPlots()
    +
    +    # Try a file that used to crash on Windows
    +    db = "netcdf_test_data/Case5_2D-Q.nc"
    +    OpenDatabase(data_path(db))
    +    AddPlot("Pseudocolor", "Q")
    +    DrawPlots()
    +    ResetView()
    +    Test("netcdf_3_07")
    +    SetTimeSliderState(29)
    +    Test("netcdf_3_08")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path(db))
    +
    +    TestSection("Basic NETCDF reader with zone-centered data")
    +    swa = SaveWindowAttributes()
    +    swa.width = 1000
    +    swa.height = 1000
    +    swa.screenCapture = 0
    +    db = "netcdf_test_data/oase-mapdata.nc"
    +    OpenDatabase(data_path(db))
    +    AddPlot("Pseudocolor", "national_rivers_2D")
    +    DrawPlots()
    +    ResetView()
    +    Test("netcdf_3_09", swa)
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "as_zonal/national_rivers_2D")
    +    DrawPlots()
    +    ResetView()
    +    Test("netcdf_3_10", swa)
    +    DeleteAllPlots()
    +    CloseDatabase(data_path(db))
    +
    +def test4():
    +    TestSection("CCSM reader")
    +    db = "netcdf_test_data/tas_mean_T63.nc"
    +    OpenDatabase(data_path(db))
    +    AddPlot("Pseudocolor", "tas")
    +    DrawPlots()
    +    ResetView()
    +    Test("netcdf_4_00")
    +
    +    # Change to the last time state
    +    SetTimeSliderState(1187)
    +    Test("netcdf_4_01")
    +
    +    # Change to the global representation of the data
    +    ChangeActivePlotsVar("global/tas")
    +    ResetView()
    +    Test("netcdf_4_02")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path(db))
    +
    +def test5():
    +    TestSection("Time-varying curves")
    +    db = "netcdf_test_data/timecurve.nc"
    +    OpenDatabase(data_path(db))
    +    AddPlot("Curve", "theta_1_1")
    +    c = CurveAttributes()
    +    c.showLabels = 0
    +    c.curveColor = (255,0,0,255)
    +    c.curveColorSource = c.Custom
    +    SetPlotOptions(c)
    +    cv = GetViewCurve()
    +    cv.domainCoords = (0, 9)
    +    cv.rangeCoords = (0.40657, 5)
    +    cv.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    cv.domainScale = cv.LINEAR  # LINEAR, LOG
    +    cv.rangeScale = cv.LINEAR  # LINEAR, LOG
    +    SetViewCurve(cv)
    +    DrawPlots()
    +    Test("netcdf_5_00")
    +    SetTimeSliderState(4)
    +    Test("netcdf_5_01")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path(db))
    +
    +def test6():
    +    TestSection("FVCOM reader ")
    +    db = "netcdf_test_data/chn_0001.nc"
    +    OpenDatabase(data_path(db))
    +    AddPlot("Pseudocolor", "Dens3{S,Theta,P}")
    +    DrawPlots()
    +    ResetView()
    +    Test("netcdf_6_00")
    +    SetTimeSliderState(47)
    +    Test("netcdf_6_01")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path(db))
    +
    +def main():
    +    test0()
    +    test1()
    +    test2()
    +    test3()
    +    test4()
    +    test5()
    +    test6()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_obj.html b/2024-12-12-22:00/poodle_trunk_serial/databases_obj.html new file mode 100644 index 000000000..234ddba35 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_obj.html @@ -0,0 +1,126 @@ + +Results for databases/obj.py + +

    Results of VisIt Regression Test - databases/obj

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    obj_cube0.000.00
    obj_face10.000.00
    obj_face20.000.00
    obj_face30.000.00
    obj_face40.000.00
    obj_face50.000.00
    obj_face60.000.00
    obj_tri10.000.00
    obj_tri20.000.00
    obj_box0.000.00
    obj_colors0.000.00
    obj_immediate_colors0.000.00
    obj_scott10.000.00
    obj_scott20.000.00
    obj_scott30.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_obj_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_obj_py.html new file mode 100644 index 000000000..ff7b56753 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_obj_py.html @@ -0,0 +1,85 @@ +databases/obj.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  obj.py
    +#
    +#  Tests:      Wavefront OBJ reader
    +#                  - relative indexing
    +#                  - groups w/ and w/o multiple inclusion via enum scalar
    +#                  - groups with coloration (via material)
    +#
    +#  Programmer: Mark C. Miller, Tue Oct 23 16:09:00 PDT 2018
    +#
    +# ----------------------------------------------------------------------------
    +def TurnOnSetsByName(silr, setNames):
    +    silr.TurnOffAll()
    +    silr.TurnOnSet(1) # the block0 set
    +    for i in range(silr.NumSets()):
    +        if silr.SetName(i) in setNames:
    +            silr.TurnOnSet(i)
    +
    +OpenDatabase(data_path("obj_test_data/cube2.obj"))
    +
    +AddPlot("Mesh", "OBJMesh")
    +ma = MeshAttributes()
    +ma.opaqueColorSource = ma.OpaqueCustom
    +ma.opaqueColor = (192, 192, 192)
    +DrawPlots()
    +SetPlotOptions(ma)
    +
    +v = GetView3D()
    +v.viewNormal = (0.00415051, 0.90155, -0.432654)
    +v.viewUp = (0.959161, 0.118781, 0.256713)
    +SetView3D(v)
    +
    +Test("obj_cube")
    +
    +silr = SILRestriction()
    +setsToTest = ("face1","face2","face3","face4","face5","face6","tri1","tri2","box")
    +for set in setsToTest:
    +    TurnOnSetsByName(silr, (set,))
    +    SetPlotSILRestriction(silr)
    +    Test("obj_%s"%set)
    +
    +silr.TurnOnAll()
    +SetPlotSILRestriction(silr)
    +DeleteAllPlots()
    +CloseDatabase(data_path("obj_test_data/cube2.obj"))
    +OpenDatabase(data_path("obj_test_data/cube1.obj"))
    +
    +# Test coloration of faces from matlib
    +AddPlot("FilledBoundary", "GroupsAsMaterials")
    +DrawPlots()
    +v.RotateAxis(0,30)
    +SetView3D(v)
    +Test("obj_colors")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("obj_test_data/cube1.obj"))
    +OpenDatabase(data_path("obj_test_data/cube3.obj"))
    +
    +# Test coloration of faces from immediate mode colors
    +# Should be same picture as above
    +AddPlot("FilledBoundary", "GroupsAsMaterials")
    +DrawPlots()
    +Test("obj_immediate_colors")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("obj_test_data/cube3.obj"))
    +OpenDatabase(data_path("obj_test_data/test.obj"))
    +
    +# Test various objects from Scott's example database
    +AddPlot("FilledBoundary", "GroupsAsMaterials")
    +DrawPlots()
    +ResetView()
    +Test("obj_scott1")
    +silr = SILRestriction()
    +silr.TurnOffSet(17) # Plane
    +SetPlotSILRestriction(silr)
    +Test("obj_scott2")
    +silr.TurnOffSet(18) # Prism
    +SetPlotSILRestriction(silr)
    +Test("obj_scott3")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_oldsilo.html b/2024-12-12-22:00/poodle_trunk_serial/databases_oldsilo.html new file mode 100644 index 000000000..8f58846d1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_oldsilo.html @@ -0,0 +1,48 @@ + +Results for databases/oldsilo.py + +

    Results of VisIt Regression Test - databases/oldsilo

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    oldsilo_010.000.00
    oldsilo_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_oldsilo_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_oldsilo_py.html new file mode 100644 index 000000000..bd4a910f7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_oldsilo_py.html @@ -0,0 +1,38 @@ +databases/oldsilo.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  oldsilo.py 
    +#
    +#  Tests:      old-style silo files (netcdf driver)
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       February 11, 2004 
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Thu Jan 14 12:38:24 EST 2010
    +#    Changed path to point to new location.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(data_path("old_silo_test_data/pion0244.silo"))
    +
    +AddPlot("Pseudocolor","d")
    +AddPlot("Mesh","hydro_mesh")
    +DrawPlots()
    +Test("oldsilo_01")
    +DeleteAllPlots()
    +
    +OpenDatabase(data_path("old_silo_test_data/fwl.17217"))
    +
    +AddPlot("Pseudocolor","d")
    +AddPlot("Mesh","mesh1")
    +DrawPlots()
    +Test("oldsilo_02")
    +DeleteAllPlots()
    +
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_openPMD.html b/2024-12-12-22:00/poodle_trunk_serial/databases_openPMD.html new file mode 100644 index 000000000..537dca571 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_openPMD.html @@ -0,0 +1,45 @@ + +Results for databases/openPMD.py + +

    Results of VisIt Regression Test - databases/openPMD

    + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    3D Example openPMD File
    openPMD_3D_Fieldsrho0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_openPMD_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_openPMD_py.html new file mode 100644 index 000000000..93ed2d634 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_openPMD_py.html @@ -0,0 +1,40 @@ +databases/openPMD.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  openPMD.py
    +#
    +#  Tests:      openPMD hdf5 files
    +#
    +#  Programmer: Dave Pugmire
    +#  Date:       Mon Oct 28 13:00:15 EDT 2019
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("OpenPMD")
    +
    +openPMDFile = 'openpmd_test_data/data00000500.opmd'
    +
    +vars = ['Fields/rho']
    +
    +def test(var, tagName) :
    +    SetTimeSliderState(1)
    +    AddPlot("Contour", var)
    +    SetActivePlots(0)
    +    ContourAtts = ContourAttributes()
    +    ContourAtts.minFlag = 1
    +    ContourAtts.min = 1
    +    ContourAtts.scaling = ContourAtts.Log
    +    SetPlotOptions(ContourAtts)
    +    DrawPlots()
    +    fileName = var.replace("/", "")
    +    Test(tagName + "_" +  fileName)
    +    DeleteAllPlots()
    +
    +
    +TestSection("3D Example openPMD File")
    +OpenDatabase(data_path(openPMDFile))
    +for var in vars:
    +    test(var,"openPMD_3D")
    +CloseDatabase(data_path(openPMDFile))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_openexr.html b/2024-12-12-22:00/poodle_trunk_serial/databases_openexr.html new file mode 100644 index 000000000..a2eb28b4e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_openexr.html @@ -0,0 +1,78 @@ + +Results for databases/openexr.py + +

    Results of VisIt Regression Test - databases/openexr

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    openexr_0_R0.000.00
    openexr_0_G0.000.00
    openexr_0_B0.000.00
    openexr_0_A0.000.00
    openexr_0_Z0.000.00
    openexr_0_L0.000.00
    openexr_0_value0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_openexr_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_openexr_py.html new file mode 100644 index 000000000..db803cd97 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_openexr_py.html @@ -0,0 +1,54 @@ +databases/openexr.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  openexr.py 
    +#
    +#  Tests:      openexr reading 
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Feb 15 14:16:45 PST 2018
    +#
    +#  Modifications:
    +# 
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("OpenEXR")
    +
    +def test0():
    +    DefineScalarExpression("masked_value", "if(gt(A, 0), value, 0)")
    +
    +    db = data_path("OpenEXR_test_data/noise_rgbazlv.exr")
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "R")
    +    DrawPlots()
    +    v = GetView2D()
    +    v.viewportCoords = (0, 1, 0, 1)
    +    SetView2D(v)
    +    Test("openexr_0_R")
    +
    +    ChangeActivePlotsVar("G")
    +    Test("openexr_0_G")
    +
    +    ChangeActivePlotsVar("B")
    +    Test("openexr_0_B")
    +
    +    ChangeActivePlotsVar("A")
    +    Test("openexr_0_A")
    +
    +    ChangeActivePlotsVar("Z")
    +    Test("openexr_0_Z")
    +
    +    ChangeActivePlotsVar("L")
    +    Test("openexr_0_L")
    +
    +    ChangeActivePlotsVar("masked_value")
    +    Test("openexr_0_value")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def main():
    +    test0()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_overlink.html b/2024-12-12-22:00/poodle_trunk_serial/databases_overlink.html new file mode 100644 index 000000000..ccbe52b0c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_overlink.html @@ -0,0 +1,108 @@ + +Results for databases/overlink.py + +

    Results of VisIt Regression Test - databases/overlink

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    overlink_010.000.00
    overlink_020.000.00
    overlink_030.000.00
    overlink_040.000.00
    ANNOTATION_INT nodelists
    overlink_050.000.00
    overlink_060.000.00
    overlink_070.000.00
    overlink_080.000.00
    overlink_090.000.00
    overlink_100.000.00
    Large number of nodelists
    overlink_110.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_overlink_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_overlink_py.html new file mode 100644 index 000000000..9c6bacf17 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_overlink_py.html @@ -0,0 +1,152 @@ +databases/overlink.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  overlink.py 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       November 11, 2004 
    +#
    +#  Modifications:
    +#    Mark C. Miller, Mon Mar  2 12:44:59 PST 2009
    +#    Added tests for 3D and 2D ANNOTTAION_INT nodelists
    +#
    +#    Mark C. Miller, Thu Jun 18 21:43:45 PDT 2009
    +#    Added TestSection() for annotation int nodelists.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Mark C. Miller, Fri May  4 22:54:55 PDT 2012
    +#    Add a test for modestly large number of nodesets to test new vtkBitArray
    +#    approach to handling nodesets.
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(data_path("overlink_test_data/regrovl_qh_1000_10001_4/OvlTop.silo"))
    +
    +
    +#
    +# This is an interesting mesh 
    +#
    +AddPlot("Mesh","MMESH")
    +DrawPlots()
    +v=GetView3D()
    +v.viewNormal = (0.530656, 0.558421, 0.637629)
    +v.viewUp = (-0.401835, 0.82812, -0.390828)
    +SetView3D(v)
    +Test("overlink_01")
    +
    +AddPlot("Pseudocolor","nvar1")
    +DrawPlots()
    +Test("overlink_02")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Subset","domains(MMESH)")
    +DrawPlots()
    +Test("overlink_03")
    +
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "domain1":
    +        silr.TurnOffSet(i)
    +    elif silr.SetName(i) == "domain4":
    +        silr.TurnOffSet(i)
    +SetPlotSILRestriction(silr)
    +Test("overlink_04")
    +
    +#
    +# Test ANNOTATION_INT objects and read options
    +#
    +TestSection("ANNOTATION_INT nodelists")
    +DeleteAllPlots()
    +CloseDatabase(data_path("overlink_test_data/regrovl_qh_1000_10001_4/OvlTop.silo"))
    +
    +
    +# First test open with search for ANNOT_INT objects turned on
    +# but none actually in the database.
    +readOptions=GetDefaultFileOpenOptions("Silo")
    +readOptions["Search For ANNOTATION_INT (!!Slow!!)"] = 1
    +SetDefaultFileOpenOptions("Silo", readOptions)
    +OpenDatabase(silo_data_path("multipart_multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor","d")
    +DrawPlots()
    +ResetView()
    +Test("overlink_05")
    +
    +# likewise on single domain, single file
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multipart_multi_ucd3d.silo"))
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor","dx")
    +DrawPlots()
    +ResetView()
    +Test("overlink_06")
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("globe.silo"))
    +
    +
    +# Ok, now lets do some real annot_int work
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("globe.silo"))
    +
    +OpenDatabase(data_path("overlink_test_data/annotInt/sweptCellTagTest.silo"))
    +
    +AddPlot("Mesh","MMESH")
    +DrawPlots()
    +Test("overlink_07")
    +
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "negYNodes":
    +        silr.TurnOffSet(i)
    +        break
    +SetPlotSILRestriction(silr)
    +Test("overlink_08")
    +
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "negZNodes":
    +        silr.TurnOffSet(i)
    +        break
    +SetPlotSILRestriction(silr)
    +Test("overlink_09")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("overlink_test_data/annotInt/sweptCellTagTest.silo"))
    +
    +OpenDatabase(data_path("overlink_test_data/annotInt/overlink2dTest.silo"))
    +
    +AddPlot("Mesh","MMESH")
    +DrawPlots()
    +ResetView()
    +v = GetView2D()
    +v.windowCoords = (-0.360608, 6.36061, -0.115684, 6.11568)
    +SetView2D(v)
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "posR":
    +        silr.TurnOffSet(i)
    +        break
    +SetPlotSILRestriction(silr)
    +Test("overlink_10")
    +
    +TestSection("Large number of nodelists")
    +DeleteAllPlots()
    +CloseDatabase(data_path("overlink_test_data/annotInt/overlink2dTest.silo"))
    +
    +OpenDatabase(data_path("overlink_test_data/annotInt/overlink2dTstA.silo"))
    +
    +AddPlot("Mesh","MMESH")
    +DrawPlots()
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if (i%2 and silr.SetName(i)[0:5] == "cell_"):
    +        silr.TurnOffSet(i)
    +SetPlotSILRestriction(silr)
    +Test("overlink_11")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_pdbdatabase.html b/2024-12-12-22:00/poodle_trunk_serial/databases_pdbdatabase.html new file mode 100644 index 000000000..f0b99dc69 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_pdbdatabase.html @@ -0,0 +1,348 @@ + +Results for databases/pdbdatabase.py + +

    Results of VisIt Regression Test - databases/pdbdatabase

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Testing with /usr/WS1/visit/test_trunk/build/testdata/pdb_test_data/multi*.pdb database
    pdb_multi_000.000.00
    pdb_multi_010.000.00
    pdb_multi_020.000.00
    pdb_multi_030.000.00
    pdb_multi_040.000.00
    pdb_multi_050.000.00
    pdb_multi_060.000.00
    pdb_multi_070.000.00
    pdb_multi_080.000.00
    pdb_multi_090.000.00
    pdb_multi_100.000.00
    pdb_multi_110.000.00
    pdb_multi_120.000.00
    pdb_multi_130.000.00
    pdb_multi_140.000.00
    pdb_multi_150.000.00
    Testing with /usr/WS1/visit/test_trunk/build/testdata/pdb_test_data/family*.pdb database
    pdb_family_000.000.00
    pdb_family_010.000.00
    pdb_family_020.000.00
    pdb_family_030.000.00
    pdb_family_040.000.00
    pdb_family_050.000.00
    pdb_family_060.000.00
    pdb_family_070.000.00
    pdb_family_080.000.00
    pdb_family_090.000.00
    pdb_family_100.000.00
    pdb_family_110.000.00
    pdb_family_120.000.00
    pdb_family_130.000.00
    pdb_family_140.000.00
    pdb_family_150.000.00
    Testing with /usr/WS1/visit/test_trunk/build/testdata/pdb_test_data/allinone00.pdb
    pdb_allinone_000.000.00
    pdb_allinone_010.000.00
    pdb_allinone_020.000.00
    pdb_allinone_030.000.00
    pdb_allinone_040.000.00
    pdb_allinone_050.000.00
    pdb_allinone_060.000.00
    pdb_allinone_070.000.00
    pdb_allinone_080.000.00
    pdb_allinone_090.000.00
    pdb_allinone_100.000.00
    pdb_allinone_110.000.00
    pdb_allinone_120.000.00
    pdb_allinone_130.000.00
    pdb_allinone_140.000.00
    pdb_allinone_150.000.00
    Testing mixvars in Flash files
    pdb_nomix0.000.00
    pdb_mix0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_pdbdatabase_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_pdbdatabase_py.html new file mode 100644 index 000000000..c12b5a7a0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_pdbdatabase_py.html @@ -0,0 +1,247 @@ +databases/pdbdatabase.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  pdbdatabase.py
    +#
    +#  Tests:      mesh      - 2D,3D curvilinear, single domain
    +#              plots     - Pseudocolor, Subset, Vector
    +#              operators - Clip
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Sep 25 09:31:28 PDT 2003
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Mar 31 09:11:08 PDT 2004
    +#    I added code to clear the engine cache to reduce memory usage.
    +#
    +#    Brad Whitlock, Fri Apr 9 16:54:15 PST 2004
    +#    I added TestSection to divide up the tests a little.
    +#
    +#    Brad Whitlock, Thu Sep 2 12:08:59 PDT 2004
    +#    I replaced some deprecated calls with their new equivalents.
    +#
    +#    Brad Whitlock, Tue Dec 7 17:52:33 PST 2004
    +#    I added a test for mixvars in Flash files.
    +#
    +#    Mark C. Miller, Sat Feb  3 00:42:05 PST 2007
    +#    Added tests for array variables
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Replace obsolete Label text attributes with new versions.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("PDB")
    +
    +##
    +## This creates a name for a test.
    +##
    +def CreateTestName(testName, testIndex):
    +    name = "%s_%02d" % (testName, testIndex)
    +    return name
    +
    +def sv3():
    +    v3 = View3DAttributes()
    +    v3.viewNormal = (0.516282, 0.582114, 0.628169)
    +    v3.focus = (0, 0, 0)
    +    v3.viewUp = (-0.488576, 0.80261, -0.342213)
    +    v3.viewAngle = 30
    +    v3.parallelScale = 43.589
    +    v3.nearPlane = -87.178
    +    v3.farPlane = 87.178
    +    v3.imagePan = (0, 0)
    +    v3.imageZoom = 1.41577
    +    v3.perspective = 1
    +    SetView3D(v3)
    +
    +##
    +## This function performs the test using the specified database.
    +##
    +def TestWithDatabase(db, testName):
    +    TestSection("Testing with %s" % db)
    +
    +    # Open the test database
    +    OpenDatabase(db)
    +
    +    ##
    +    ## Do the 2D tests.
    +    ##
    +
    +    # Add the plots.
    +    AddPlot("FilledBoundary", "material(mesh)")
    +    DrawPlots()
    +
    +    # Do the first test in the series
    +    Test(CreateTestName(testName, 0))
    +
    +    SetTimeSliderState(6)
    +    Test(CreateTestName(testName, 1))
    +
    +    SetTimeSliderState(15)
    +    Test(CreateTestName(testName, 2))
    +
    +    # Do a test on the last frame in the animation.
    +    SetTimeSliderState(22)
    +    Test(CreateTestName(testName, 3))
    +
    +    AddPlot("Mesh", "mesh")
    +    DrawPlots()
    +    v = View2DAttributes()
    +    v.windowCoords = (-6.07862, -0.374491, 4.48986, 10.8545)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    SetView2D(v)
    +    Test(CreateTestName(testName, 4))
    +
    +    # Try turning off material 2
    +    SetActivePlots((0,1))
    +    TurnMaterialsOff("2")
    +    Test(CreateTestName(testName, 5))
    +    TurnMaterialsOn()
    +
    +    ResetView()
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "mesh/a")
    +    DrawPlots()
    +    Test(CreateTestName(testName, 6))
    +
    +    # Define a expression. I'm testing this because of the strange
    +    # <mesh/var> syntax that my plugin has.
    +    DefineVectorExpression("testexp1", "3.0 * {<mesh/lt>, <mesh/a>/399.0}")
    +    AddPlot("Vector", "testexp1")
    +    DrawPlots();
    +    vec = VectorAttributes()
    +    vec.nVectors = 1200
    +    vec.colorByMagnitude = 0
    +    SetPlotOptions(vec)
    +    v.windowCoords = (-9.51217, -0.289482, 0.983025, 10.6717)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    SetView2D(v)
    +    Test(CreateTestName(testName, 7))
    +
    +    # Set the time back to frame 0
    +    SetTimeSliderState(0)
    +    ResetView()
    +    DeleteAllPlots()
    +
    +    ##
    +    ## Do the 3D tests.
    +    ##
    +
    +    AddPlot("FilledBoundary", "material2(revolved_mesh)")
    +    AddOperator("Clip")
    +    c = ClipAttributes()
    +    c.funcType = c.Plane
    +    c.plane1Status = 0
    +    c.plane2Status = 1
    +    c.plane3Status = 1
    +    SetOperatorOptions(c)
    +    DrawPlots()
    +
    +    # Set the view
    +    sv3()
    +    Test(CreateTestName(testName, 8))
    +
    +    SetTimeSliderState(6)
    +    sv3()
    +    Test(CreateTestName(testName, 9))
    +
    +    SetTimeSliderState(15)
    +    sv3()
    +    Test(CreateTestName(testName, 10))
    +
    +    # Do a test on the last frame in the animation.
    +    SetTimeSliderState(22)
    +    sv3()
    +    Test(CreateTestName(testName, 11))
    +
    +    # Turn off some materials
    +    TurnMaterialsOff(("1", "3", "4"))
    +    sv3()
    +    Test(CreateTestName(testName, 12))
    +    TurnMaterialsOn()
    +
    +    # Set the time back to frame 2
    +    SetTimeSliderState(2)
    +    ResetView()
    +    DeleteAllPlots()
    +
    +    #
    +    # Test array variables
    +    #
    +    AddPlot("Pseudocolor","logical_mesh/marray_comps/comp_002")
    +    DrawPlots()
    +    Test(CreateTestName(testName, 13))
    +
    +    DeleteAllPlots()
    +    ResetView()
    +    AddPlot("Pseudocolor","revolved_mesh/marray_comps/comp_002")
    +    DrawPlots()
    +    Test(CreateTestName(testName, 14))
    +
    +    DeleteAllPlots()
    +    ResetView()
    +    AddPlot("Label","logical_mesh/marray")
    +    DrawPlots()
    +    Test(CreateTestName(testName, 15))
    +
    +    # Set the time back to frame 0
    +    SetTimeSliderState(0)
    +    ResetView()
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +    ClearCache("localhost")
    +
    +#
    +# Test mixvars.
    +#
    +def TestMixvars(db):
    +    TestSection("Testing mixvars in Flash files")
    +    DeleteAllPlots()
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "mesh/mixvar")
    +    DrawPlots()
    +    ResetView()
    +    v = View2DAttributes()
    +    v.windowCoords = (-9.51866, 3.29394, 13.9258, 26.4126)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.fullFrameActivationMode = v.Off
    +    SetView2D(v)
    +    Test("pdb_nomix")
    +
    +    # Do the same plot but with forced MIR so the mixvar gets reconstructed.
    +    ClearWindow()
    +    m = GetMaterialAttributes()
    +    m.forceMIR = 1
    +    SetMaterialAttributes(m)
    +    DrawPlots()
    +    Test("pdb_mix")
    +    DeleteAllPlots()
    +
    +#
    +# Run the test a few times with different versions of the database. We do this
    +# because we have the same database split up three different ways and all the
    +# ways a database can be split up must work.
    +#
    +#   multi{00,01,02}.pdb  - Contains multiple time states in each file but
    +#                          we group them all into "multi*.pdb database".
    +#
    +#   family??.pdb         - Contains a single time state in each file but
    +#                          we group them all into "family*.pdb database".
    +#
    +#   allinone00.pdb       - Contains all of the time states in one file.
    +#
    +
    +databases = (data_path("pdb_test_data/multi*.pdb database"),
    +             data_path("pdb_test_data/family*.pdb database"),
    +             data_path("pdb_test_data/allinone00.pdb"))
    +testNames = ("pdb_multi", "pdb_family", "pdb_allinone")
    +for i in range(len(databases)):
    +    TestWithDatabase(databases[i], testNames[i])
    +
    +# Do the mixvar test.
    +TestMixvars(databases[2])
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_pixie.html b/2024-12-12-22:00/poodle_trunk_serial/databases_pixie.html new file mode 100644 index 000000000..14d32ddfa --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_pixie.html @@ -0,0 +1,90 @@ + +Results for databases/pixie.py + +

    Results of VisIt Regression Test - databases/pixie

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    pixie_010.000.00
    pixie_020.000.00
    pixie_030.000.00
    pixie_040.000.00
    pixie_050.000.00
    pixie_060.000.00
    pixie_070.000.00
    pixie_080.000.00
    pixie_090.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_pixie_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_pixie_py.html new file mode 100644 index 000000000..172d12e16 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_pixie_py.html @@ -0,0 +1,161 @@ +databases/pixie.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  pixie.py 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       April 4, 2005 
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# test a 2D pixie database
    +OpenDatabase(data_path("pixie_test_data/pixie3d3.h5"))
    +
    +
    +#
    +# Test simple read and display of a variable 
    +#
    +AddPlot("Pseudocolor","Car variables/Bx")
    +DrawPlots()
    +Test("pixie_01")
    +
    +AddPlot("Mesh","curvemesh_33x33x2")
    +DrawPlots()
    +Test("pixie_02")
    +
    +# really zoom in on the center of this mesh
    +v=GetView2D()
    +v.windowCoords = (-5.84435e-05, 5.84435e-05, -5.12076e-05, 5.12076e-05)
    +SetView2D(v)
    +Test("pixie_03")
    +
    +DeleteAllPlots()
    +
    +# test a 3D pixie database
    +OpenDatabase(data_path("pixie_test_data/pixie3d4.h5"))
    +
    +AddPlot("Mesh","curvemesh_33x33x33")
    +AddPlot("Contour","Car variables/Vx")
    +v=GetView3D()
    +v.viewNormal=(-0.5, 0, 0.866025)
    +SetView3D(v)
    +DrawPlots()
    +Test("pixie_04")
    +DeleteAllPlots()
    +ResetView()
    +
    +# test a pixie expression (plot vector magnitude)
    +OpenDatabase(data_path("pixie_test_data/pixie_expressions.h5"))
    +
    +# Test that vector data can be used. We use a Contour plot instead of a Vector
    +# plot now because the glyph indices for the Vector plot can change depending
    +# on how the mesh was automatically decomposed by the reader.
    +AddPlot("Contour","V_magnitude")
    +AddOperator("Transform")
    +t = TransformAttributes()
    +t.doScale = 1
    +t.scaleZ = 0.25
    +SetOperatorOptions(t)
    +DrawPlots()
    +v=GetView3D()
    +v.viewNormal = (0.557477, 0.525516, 0.642692)
    +v.focus = (0.484375, 0.5, 0.984375)
    +v.viewUp = (-0.252277, 0.844773, -0.471926)
    +v.viewAngle = 30
    +v.parallelScale = 1.22474
    +v.nearPlane = -2.44949
    +v.farPlane = 2.44949
    +v.imagePan = (0.0454993, 0.0670485)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0.484375, 0.5, 0.984375)
    +SetView3D(v)
    +Test("pixie_05")
    +DeleteAllPlots()
    +
    +# Test a transparent plot to see how well ghosting works when the
    +# mesh gets divided up in parallel.
    +DefineScalarExpression("one", "point_constant(curvemesh_33x33x65, 1.)")
    +AddPlot("Pseudocolor", "one")
    +pc = PseudocolorAttributes()
    +pc.SetOpacityType(pc.Constant)
    +pc.opacity = 0.31
    +SetPlotOptions(pc)
    +AddOperator("Transform")
    +t = TransformAttributes()
    +t.doScale = 1
    +t.scaleZ = 0.25
    +SetOperatorOptions(t)
    +DrawPlots()
    +Test("pixie_06")
    +DeleteAllPlots()
    +
    +# test a contour plot on double precision data
    +AddPlot("Contour","Car_variables/Vx")
    +v = GetView3D()
    +v.viewNormal = (0, 0, 1)
    +v.focus = (0.484375, 0.5, 3.9375)
    +v.viewUp = (0, 1, 0)
    +v.viewAngle = 30
    +v.parallelScale = 4.06202
    +v.nearPlane = -8.12404
    +v.farPlane = 8.12404
    +v.imagePan = (0, 0)
    +v.imageZoom = 20
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0.484375, 0.5, 3.9375)
    +SetView3D(v)
    +DrawPlots()
    +Test("pixie_07")
    +DeleteAllPlots()
    +
    +# test a mesh plot of a non-square, 2D, curvilinear mesh 
    +OpenDatabase(data_path("pixie_test_data/pixie3d5.h5"))
    +
    +AddPlot("Mesh","curvemesh_65x33x2")
    +AddPlot("Pseudocolor","Diagnostics/q factor")
    +DrawPlots()
    +v=GetView2D()
    +v.windowCoords=(-0.241119, 0.241119, -0.162714, 0.162714)
    +SetView2D(v)
    +Test("pixie_08")
    +DeleteAllPlots()
    +
    +# test a pseudocolor plot of a 3D curvilinear mesh
    +OpenDatabase(data_path("pixie_test_data/pixie3d6.h5"))
    +
    +AddPlot("Mesh", "curvemesh_8x8x8")
    +AddPlot("Pseudocolor","Curvilinear/temperature")
    +DrawPlots()
    +v = GetView3D()
    +v.viewNormal = (0.465617, -0.587141, 0.662168)
    +v.focus = (0.5, 1, 1.5)
    +v.viewUp = (0.884708, 0.327576, -0.33164)
    +v.viewAngle = 30
    +v.parallelScale = 1.63698
    +v.nearPlane = -3.27395
    +v.farPlane = 3.27395
    +v.imagePan = (0, 0)
    +v.imageZoom = 0.9
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0.5, 1, 1.5)
    +v.axis3DScaleFlag = 0
    +v.axis3DScales = (1, 1, 1)
    +v.shear = (0, 0, 1)
    +v.windowValid = 1
    +SetView3D(v)
    +Test("pixie_09")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_plaintext.html b/2024-12-12-22:00/poodle_trunk_serial/databases_plaintext.html new file mode 100644 index 000000000..1ecde4547 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_plaintext.html @@ -0,0 +1,87 @@ + +Results for databases/plaintext.py + +

    Results of VisIt Regression Test - databases/plaintext

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    CSV data as Curves
    PlainText_Curves0.000.00
    CSV data as Curves inferred X coordinate
    PlainText_Curves_noX0.000.00
    CSV data as 3D points with variable(s)
    PlainText_Points0.000.00
    CSV data as 2D array on uniform grid
    PlainText_2DArray0.000.00
    CSV data with 1-character variable names
    PlainText_2DArray0.000.00
    PlainText_1dArray_Short_Var_Names0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_plaintext_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_plaintext_py.html new file mode 100644 index 000000000..d996354ff --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_plaintext_py.html @@ -0,0 +1,341 @@ +databases/plaintext.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  plaintext.py
    +#
    +#  Tests:      multiple curves from a CSV file without and with implicit X
    +#              2D and 3D points with variables in a CSV file
    +#              An array of data as a 2D regular grid
    +#
    +#  Notes:
    +#    - Code snippets from this file are literalinclude'd in our docs.
    +#    - Test image results produced by this test are also literalinclude'd.
    +#    - Input .csv files used here are also literalinclude'd.
    +#    - If you ever need to change the .csv files, you can regen them using
    +#      this script with 'genonly' CL arg and vanilla python (it won't make any
    +#      VisIt CLI calls).
    +#
    +#  Mark C. Miller, Fri Mar 11 14:33:30 PST 2022
    +#  Based on original code by Eric Brugger in our documentation
    +# 
    +#  Modifications:
    +#    Justin Privitera, Fri Sep 27 15:03:48 PDT 2024
    +#    Added tests for files with 1-char variable names.
    +# ----------------------------------------------------------------------------
    +import copy, math, os, sys
    +
    +#
    +# Example of PlainText open options dict...
    +#
    +# {'Data layout': '1D Columns # Options are: 1D Columns, 2D Array',
    +#  'Lines to skip at beginning of file': 0,
    +#  'First row has variable names': 0,
    +#  'Column for X coordinate (or -1 for none)': -1,
    +#  'Column for Y coordinate (or -1 for none)': -1,
    +#  'Column for Z coordinate (or -1 for none)': -1}
    +#
    +
    +#
    +# Use this function with deepcopy to ensure we always start from a
    +# prestine default state for open options.
    +#
    +def GetDefaultOpenOptions():
    +    if not hasattr(GetDefaultOpenOptions, 'defaultOpenOptions'):
    +        GetDefaultOpenOptions.defaultOpenOptions = copy.deepcopy(GetDefaultFileOpenOptions("PlainText"))
    +    return copy.deepcopy(GetDefaultOpenOptions.defaultOpenOptions)
    +
    +def CreateCurvesDataFile(filename):
    +
    +    # Curve gen {
    +    with open(filename, "wt") as f:
    +        # create header
    +        f.write("angle,sine,cosine\n")
    +        npts = 73
    +        for i in range(npts):
    +            angle_deg = float(i) * (360. / float(npts-1))
    +            angle_rad = angle_deg * (3.1415926535 / 180.)
    +            sine = math.sin(angle_rad)
    +            cosine = math.cos(angle_rad)
    +            # write abscissa (x value) and ordinates (y-value(s))
    +            f.write("%g,%g,%g\n" % (angle_deg, sine, cosine))
    +    # Curve gen }
    +
    +def CreateCurvesDataFileWithNoXCoordinates(filename):
    +
    +    # Curve noX gen {
    +    with open(filename, "wt") as f:
    +        # create header
    +        f.write("inverse,sqrt,quadratic\n")
    +        npts = 100
    +        for i in range(npts):
    +            inv = float(100) / (float(i)+1)
    +            sqr = 10 * math.sqrt(i)
    +            quad = float(i*i) / float(100)
    +            f.write("%g,%g,%g\n" % (inv, sqr, quad))
    +    # Curve noX gen }
    +
    +def Create3DPointsWithVariablesDataFile(filename):
    +
    +    # Points gen {
    +    with open(filename, "wt") as f:
    +        # write header
    +        f.write("x y z velx vely velz temp\n")
    +        n = 100
    +        for i in range(n):
    +            t = float(i) / float(n-1)
    +            angle = t * (math.pi * 2.) * 5.
    +            r = t * 10.
    +            x = r * math.cos(angle)
    +            y = r * math.sin(angle)
    +            z = t * 10.
    +            vx = math.sqrt(x*x + y*y)
    +            vy = math.sqrt(y*y + z*z)
    +            vz = math.sqrt(x*x + z*z)
    +            temp = math.sqrt((t-0.5)*(t-0.5))
    +            # write point and value(s)
    +            f.write("%g %g %g %g %g %g %g\n" % (x,y,z,vx,vy,vz,temp))
    +    # Points gen }
    +
    +def Create2DArrayDataFile(filename):
    +
    +    # Array gen {
    +    with open(filename, "wt") as f:
    +        # Only the first column name matters.
    +        # The others are required but otherwise ignored.
    +        f.write("density c2 c3 c4 c5 c6 c7 c8\n")
    +        nx = 8
    +        ny = 10
    +        for iy in range(ny):
    +            y = float(iy)
    +            for ix in range(nx):
    +                x = float(ix)
    +                dist = math.sqrt(x*x + y*y)
    +                if (ix < nx - 1):
    +                   f.write("%g " % dist)
    +                else:
    +                   f.write("%g\n" % dist)
    +    # Array gen }
    +
    +def CreateAnother2DArrayDataFile(filename):
    +
    +    # Array gen 2 {
    +    with open(filename, "wt") as f:
    +        # Only the first column name matters.
    +        # The others are required but otherwise ignored.
    +        f.write("d c2 c3 c4 c5 c6 c7 c8\n")
    +        f.write("0 1 2 3 4 5 6 7\n")
    +        f.write("1 1.41421 2.23607 3.16228 4.12311 5.09902 6.08276 7.07107\n")
    +        f.write("2 2.23607 2.82843 3.60555 4.47214 5.38516 6.32456 7.28011\n")
    +        f.write("3 3.16228 3.60555 4.24264 5 5.83095 6.7082 7.61577\n")
    +        f.write("4 4.12311 4.47214 5 5.65685 6.40312 7.2111 8.06226\n")
    +        f.write("5 5.09902 5.38516 5.83095 6.40312 7.07107 7.81025 8.60233\n")
    +        f.write("6 6.08276 6.32456 6.7082 7.2111 7.81025 8.48528 9.21954\n")
    +        f.write("7 7.07107 7.28011 7.61577 8.06226 8.60233 9.21954 9.89949\n")
    +        f.write("8 8.06226 8.24621 8.544 8.94427 9.43398 10 10.6301\n")
    +        f.write("9 9.05539 9.21954 9.48683 9.84886 10.2956 10.8167 11.4018\n")
    +    # Array gen 2 }
    +
    +def Create1DArrayDataFile(filename):
    +
    +    # Array gen 2 {
    +    with open(filename, "wt") as f:
    +        # Only the first column name matters.
    +        # The others are required but otherwise ignored.
    +        f.write("x y v\n")
    +        f.write("0 0 0.5\n")
    +        f.write("1 0 1.0\n")
    +        f.write("2 0 0.5\n")
    +        f.write("0 1 1.0\n")
    +        f.write("1 1 0.5\n")
    +        f.write("2 1 1.0\n")
    +        f.write("0 2 0.5\n")
    +        f.write("1 2 1.0\n")
    +        f.write("2 2 0.5\n")
    +    # Array gen 2 }
    +
    +def TestCSVCurves():
    +    TestSection("CSV data as Curves")
    +    CreateCurvesDataFile("curves.csv")
    +
    +    # Curve plot {
    +    # GetDefaultOpenOptions() is a wrapper internal to our tests to the CLI method GetDefaultFileOpenOptions().
    +    # It ensures we always start from a pristine default state for open options.
    +    plainTextOpenOptions = GetDefaultOpenOptions()
    +    plainTextOpenOptions['First row has variable names'] = 1
    +    plainTextOpenOptions['Column for X coordinate (or -1 for none)'] = 0
    +    SetDefaultFileOpenOptions("PlainText", plainTextOpenOptions)
    +
    +    OpenDatabase("curves.csv")
    +    AddPlot("Curve","sine")
    +    AddPlot("Curve","cosine")
    +    DrawPlots()
    +    # Curve plot }
    +    ResetView()
    +    Test("PlainText_Curves")
    +    DeleteAllPlots()
    +    CloseDatabase("curves.csv")
    +    os.unlink("curves.csv")
    +
    +def TestCSVCurvesNoX():
    +    TestSection("CSV data as Curves inferred X coordinate")
    +    CreateCurvesDataFileWithNoXCoordinates("curves_nox.csv")
    +
    +    # Curve noX plot {
    +    # GetDefaultOpenOptions() is a wrapper internal to our tests to the CLI method GetDefaultFileOpenOptions().
    +    # It ensures we always start from a pristine default state for open options.
    +    plainTextOpenOptions = GetDefaultOpenOptions()
    +    plainTextOpenOptions['First row has variable names'] = 1
    +    SetDefaultFileOpenOptions("PlainText", plainTextOpenOptions)
    +
    +    OpenDatabase("curves_nox.csv")
    +    AddPlot("Curve","inverse")
    +    AddPlot("Curve","sqrt")
    +    AddPlot("Curve","quadratic")
    +    DrawPlots()
    +    # Curve noX plot }
    +    ResetView()
    +    Test("PlainText_Curves_noX")
    +    DeleteAllPlots()
    +    CloseDatabase("curves_nox.csv")
    +    os.unlink("curves_nox.csv")
    +
    +def TestCSV3DPointsAndVariables():
    +    TestSection("CSV data as 3D points with variable(s)")
    +    Create3DPointsWithVariablesDataFile("points.txt")
    +
    +    # Points plot {
    +    # GetDefaultOpenOptions() is a wrapper internal to our tests to the CLI method GetDefaultFileOpenOptions().
    +    # It ensures we always start from a pristine default state for open options.
    +    plainTextOpenOptions = GetDefaultOpenOptions()
    +    plainTextOpenOptions['First row has variable names'] = 1
    +    plainTextOpenOptions['Column for X coordinate (or -1 for none)'] = 0
    +    plainTextOpenOptions['Column for Y coordinate (or -1 for none)'] = 1
    +    plainTextOpenOptions['Column for Z coordinate (or -1 for none)'] = 2
    +    SetDefaultFileOpenOptions("PlainText", plainTextOpenOptions)
    +    OpenDatabase("points.txt")
    +
    +    DefineVectorExpression("vel", "{velx,vely,velz}")
    +    AddPlot("Pseudocolor", "temp")
    +    AddPlot("Vector","vel")
    +    DrawPlots()
    +    # Points plot }
    +    ResetView()
    +    Test("PlainText_Points")
    +    DeleteAllPlots()
    +    CloseDatabase("points.txt")
    +    os.unlink("points.txt")
    +
    +def TestCSV2DArray():
    +    TestSection("CSV data as 2D array on uniform grid")
    +    Create2DArrayDataFile("array.txt")
    +
    +    # Array plot {
    +    # GetDefaultOpenOptions() is a wrapper internal to our tests to the CLI method GetDefaultFileOpenOptions().
    +    # It ensures we always start from a pristine default state for open options.
    +    plainTextOpenOptions = GetDefaultOpenOptions()
    +    plainTextOpenOptions['First row has variable names'] = 1
    +    plainTextOpenOptions['Data layout'] = '2D Array'
    +    SetDefaultFileOpenOptions("PlainText", plainTextOpenOptions)
    +
    +    OpenDatabase("array.txt")
    +    AddPlot("Pseudocolor", "density")
    +    DrawPlots()
    +    ResetView()
    +    # Array plot }
    +    Test("PlainText_2DArray")
    +    DeleteAllPlots()
    +    CloseDatabase("array.txt")
    +    os.unlink("array.txt")
    +
    +def TestCSVShortVarNames():
    +    TestSection("CSV data with 1-character variable names")
    +
    +    #
    +    # test 2d
    +    #
    +    CreateAnother2DArrayDataFile("2darray_short_names.txt")
    +
    +    plainTextOpenOptions = GetDefaultOpenOptions()
    +    plainTextOpenOptions['First row has variable names'] = 1
    +    plainTextOpenOptions['Data layout'] = '2D Array'
    +    SetDefaultFileOpenOptions("PlainText", plainTextOpenOptions)
    +
    +    OpenDatabase("2darray_short_names.txt")
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +    Test("PlainText_2DArray")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +    CloseDatabase("2darray_short_names.txt")
    +    os.unlink("2darray_short_names.txt")
    +
    +    #
    +    # test 1d
    +    #
    +    Create1DArrayDataFile("1darray_short_names.txt")
    +
    +    plainTextOpenOptions = GetDefaultOpenOptions()
    +    plainTextOpenOptions['First row has variable names'] = 1
    +    plainTextOpenOptions['Data layout'] = '1D Columns'
    +    plainTextOpenOptions['Column for X coordinate (or -1 for none)'] = 0
    +    plainTextOpenOptions['Column for Y coordinate (or -1 for none)'] = 1
    +    SetDefaultFileOpenOptions("PlainText", plainTextOpenOptions)
    +
    +    OpenDatabase("1darray_short_names.txt")
    +    AddPlot("Pseudocolor", "v")
    +    DrawPlots()
    +    SetActivePlots(0)
    +    PseudocolorAtts = PseudocolorAttributes()
    +    PseudocolorAtts.pointSizePixels = 20
    +    SetPlotOptions(PseudocolorAtts)
    +    View2DAtts = View2DAttributes()
    +    View2DAtts.windowCoords = (-0.4641, 2.4641, -0.4641, 2.4641)
    +    View2DAtts.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    SetView2D(View2DAtts)
    +
    +    Test("PlainText_1dArray_Short_Var_Names")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +    CloseDatabase("1darray_short_names.txt")
    +    os.unlink("1darray_short_names.txt")
    +
    +def main():
    +
    +    if 'genonly' in sys.argv:
    +        CreateCurvesDataFile('curves.csv')
    +        CreateCurvesDataFileWithNoXCoordinates('curves_nox.csv')
    +        Create3DPointsWithVariablesDataFile('points.txt')
    +        Create2DArrayDataFile('array.txt')
    +        CreateAnother2DArrayDataFile("2darray_short_names.txt")
    +        Create1DArrayDataFile("1darray_short_names.txt")
    +        sys.exit(0)
    +
    +    #
    +    # Idiom here...we can't manipulate open options until *after*
    +    # mdserver is running
    +    #
    +    OpenMDServer("localhost")
    +
    +    #
    +    # Make sure curve plots are without labels
    +    #
    +    ca = CurveAttributes()
    +    ca.showLabels = 0
    +    SetDefaultPlotOptions(ca)
    +
    +    TestCSVCurves()
    +
    +    TestCSVCurvesNoX()
    +
    +    TestCSV3DPointsAndVariables()
    +
    +    TestCSV2DArray()
    +
    +    TestCSVShortVarNames()
    +
    +    Exit()
    +
    +main()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_rect.html b/2024-12-12-22:00/poodle_trunk_serial/databases_rect.html new file mode 100644 index 000000000..2a5dc4858 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_rect.html @@ -0,0 +1,93 @@ + +Results for databases/rect.py + +

    Results of VisIt Regression Test - databases/rect

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Curvilinear grid files
    rect_010.000.00
    rect_020.000.00
    rect_030.000.00
    rect_040.000.00
    Rectilinear grid files
    rect_050.000.00
    rect_060.000.00
    1D Datasets re-interpreted as curves.
    rect_070.000.00
    rect_080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_rect_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_rect_py.html new file mode 100644 index 000000000..6794406b2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_rect_py.html @@ -0,0 +1,98 @@ +databases/rect.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  rect.py 
    +#
    +#  Tests:      rect files 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       May 15, 2008 
    +#
    +#  Mark C. Miller, Thu Feb 12 01:30:24 PST 2009
    +#  Added test for rectilinear mesh case. Re-enabled setting of SIL restriction
    +#  which was disabled due to a bug that was resolved back in May, 2008.
    +#
    +#  Mark C. Miller, Wed Feb 18 17:52:44 PST 2009
    +#  Fixed missing AddPlot() call just prior to image 08. Changed name of 
    +#  curve objects that get re-interpreted.
    +#
    +#  Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#  Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#  individually to match current baseline results.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# test the main mesh
    +TestSection("Curvilinear grid files")
    +OpenDatabase(data_path("Rect_test_data/curv_data/datafile.rect"))
    +
    +AddPlot("Mesh","Mesh")
    +DrawPlots()
    +v=GetView3D()
    +v.RotateAxis(1, 30.0)
    +SetView3D(v)
    +Test("rect_01")
    +
    +# test a variable
    +AddPlot("Pseudocolor","pressure")
    +DrawPlots()
    +Test("rect_02")
    +
    +# test going forward in time
    +TimeSliderNextState()
    +Test("rect_03")
    +
    +# test restriction
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "domain2":
    +        silr.TurnOffSet(i)
    +SetPlotSILRestriction(silr)
    +DrawPlots()
    +Test("rect_04")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("Rect_test_data/curv_data/datafile.rect"))
    +
    +
    +TestSection("Rectilinear grid files")
    +OpenDatabase(data_path("Rect_test_data/rect_data/datafile.rect"))
    +
    +AddPlot("Mesh","Mesh")
    +DrawPlots()
    +ResetView()
    +Test("rect_05")
    +
    +AddPlot("Pseudocolor","myTest")
    +DrawPlots()
    +Test("rect_06")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("Rect_test_data/rect_data/datafile.rect"))
    +
    +
    +TestSection("1D Datasets re-interpreted as curves.")
    +
    +
    +OpenDatabase(data_path("Rect_test_data/1d/rect_data/datafile.rect"))
    +
    +AddPlot("Curve", "Scalar_Curves/pressure")
    +c = CurveAttributes()
    +c.showLabels = 0
    +c.curveColorSource = c.Custom
    +c.curveColor = (255, 0, 0, 255)
    +SetPlotOptions(c)
    +DrawPlots()
    +ResetView()
    +Test("rect_07")
    +
    +AddPlot("Curve", "Scalar_Curves/density")
    +c.curveColor = (0, 255, 0, 255)
    +SetPlotOptions(c)
    +DrawPlots()
    +TimeSliderNextState()
    +Test("rect_08")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_reopen.html b/2024-12-12-22:00/poodle_trunk_serial/databases_reopen.html new file mode 100644 index 000000000..f72705b90 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_reopen.html @@ -0,0 +1,261 @@ + +Results for databases/reopen.py + +

    Results of VisIt Regression Test - databases/reopen

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    reopen_1_000 modifications totalling 0 lines
    reopen_1_010.000.00
    reopen_1_020 modifications totalling 0 lines
    Reopening virtual database
    reopen_2_000.000.00
    reopen_2_010 modifications totalling 0 lines
    reopen_2_020.000.00
    reopen_2_030 modifications totalling 0 lines
    reopen_2_040.000.00
    reopen_2_050 modifications totalling 0 lines
    Reopening .visit file
    reopen_2_060.000.00
    reopen_2_070 modifications totalling 0 lines
    reopen_2_080.000.00
    reopen_2_090 modifications totalling 0 lines
    reopen_2_100.000.00
    reopen_2_110 modifications totalling 0 lines
    Reopening .visit file of time-varying data
    reopen_3_000.000.00
    reopen_3_010 modifications totalling 0 lines
    reopen_3_020.000.00
    reopen_3_030 modifications totalling 0 lines
    reopen_3_040.000.00
    reopen_3_050 modifications totalling 0 lines
    reopen_3_060.000.00
    reopen_3_070 modifications totalling 0 lines
    Reopening overwritten file to test engine
    reopen_4_000.000.00
    reopen_4_010.000.00
    Testing reopen/expressions with multiple windows
    reopen_5_000 modifications totalling 0 lines
    reopen_5_010 modifications totalling 0 lines
    Testing reopen at an invalid time state
    reopen_6_000 modifications totalling 0 lines
    reopen_6_010.000.00
    reopen_6_020 modifications totalling 0 lines
    reopen_6_030.000.00
    reopen_6_040 modifications totalling 0 lines
    reopen_6_050.000.00
    reopen_6_060 modifications totalling 0 lines
    reopen_6_070.000.00
    reopen_6_080 modifications totalling 0 lines
    reopen_6_090.000.00
    reopen_6_100 modifications totalling 0 lines
    Testing reopen on a deleted file
    reopen_7_000.000.00
    reopen_7_010 modifications totalling 0 lines
    reopen_7_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_reopen_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_reopen_py.html new file mode 100644 index 000000000..1c2dfe675 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_reopen_py.html @@ -0,0 +1,550 @@ +databases/reopen.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial
    +#  CLASSES: nightly
    +#
    +#  Test Case:  reopen.py 
    +#
    +#  Tests:      Reopening a database where the SIL is invariant.
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 1, 2004
    +#
    +#  Modifications:
    +#    Brad Whitlock, Fri Mar 19 15:09:09 PST 2004
    +#    I changed one of the OpenDatabase calls to ReOpenDatabase. I also
    +#    added more extensive reopen tests.
    +#
    +#    Brad Whitlock, Fri Apr 9 16:28:01 PST 2004
    +#    I added a test that really makes sure the engine reexecuted during
    +#    a reopen.
    +#
    +#    Jeremy Meredith, Wed Apr 28 11:42:31 PDT 2004
    +#    I made the "Don't need to copy" message go to stderr.
    +#
    +#    Brad Whitlock, Wed Feb 2 16:27:54 PST 2005
    +#    Added a test for making sure that expressions are right after reopening
    +#    a database when there are multiple windows. I also added a test to 
    +#    make sure that time sliders are shortened when we reopen a database
    +#    that has had some of its time states removed.
    +#
    +#    Hank Childs, Wed Feb 16 07:34:07 PST 2005
    +#    Rename variables that have unsupported characters.
    +#
    +#    Brad Whitlock, Tue Feb 22 13:56:56 PST 2005
    +#    Added a test case for reopening a file that has been deleted.
    +#
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Jeremy Meredith, Wed Jan 20 11:02:36 EST 2010
    +#    Fixed some file path issues and checked for "from" file before
    +#    assuming a symlink return error implied a different error message.
    +#
    +#    Kathleen Biagas, Fri May 26 08:31:00 MST 2017
    +#    Fixed reopen_04_01 for windows to use the same file as for non-windows.
    +#
    +#    Kathleen Biagas, Monday October 12, 2020 
    +#    Use TestEnv.params["run_dir"] instead of "." in calls to os.listdir.
    +#
    +# ----------------------------------------------------------------------------
    +from __future__ import print_function
    +import os
    +import sys
    +import time
    +import shutil
    +
    +def GetTruncatedWindowInformationString():
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 5 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    for i in range(5):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    return s
    +
    +#
    +# Look at the first few lines of the string representation of the
    +# WindowInformation to see the list of time sliders, etc.
    +#
    +def TestWindowInformation(testname):
    +    TestText(testname, GetTruncatedWindowInformationString())
    +
    +def TestLength(testname):
    +    tsLength = TimeSliderGetNStates()
    +    testString = "%s has %d states\n" % (GetActiveTimeSlider(), tsLength)
    +    testString = testString + GetTruncatedWindowInformationString()
    +    TestText(testname, testString)
    +
    +#
    +# Returns whether all files in the list are in the run directory.
    +#
    +def FilesPresent(files):
    +    currentFileList = os.listdir(TestEnv.params["run_dir"])
    +    count = 0
    +    retval = 0
    +    if type(files) == type(()) or type(files) == type([]):
    +        for file in files:
    +            if file in currentFileList:
    +                count = count + 1
    +        retval = count == len(files)
    +    else:
    +        # We got here because the files argument was 
    +        # a single value instead of a tuple or list.
    +        if files in currentFileList:
    +            retval = 1
    +
    +    return retval
    +
    +
    +#
    +# Removes all files ending in .silo or .visit from the run directory
    +# to ensure that there are no such files left over from a failed test.
    +#
    +def RemoveAllSiloAndVisItFiles():
    +    currentFileList = os.listdir(TestEnv.params["run_dir"])
    +    for file in currentFileList:
    +        if file[-5:] == ".silo" or file[-6:] == ".visit":
    +            try:
    +                os.unlink(file)
    +            except:
    +                # Ignore any exceptions
    +                pass
    +
    +#
    +# Function to create a .visit file or virtual database using time states
    +# from wave.
    +#
    +def CreateMTFile(prefix, makeVisItFile, percent):
    +    # Create a list of files that will be used to create the database
    +    # for the test.
    +    nStates = 71
    +    t = float(percent) / 100.
    +    maxState = int(float(nStates) * t)
    +    files = []
    +    prefixfiles = []
    +    for i in range(maxState):
    +        w = "wave%04d.silo" % (i * 10)
    +        files = files + [w]
    +        prefixfiles = prefixfiles + [prefix+w]
    +
    +    if makeVisItFile == 0:
    +        # Virtual database
    +        for file in files:
    +            fileFrom = data_path("silo_hdf5_test_data/%s" % file)
    +            fileTo   = "%s%s" % (prefix, file)
    +            if not os.path.exists(fileFrom):
    +                print("Error: %s didn't exist" % fileFrom, file=sys.stderr)
    +            try:
    +                # Copy a file from the data directory to the current directory.
    +                if not sys.platform.startswith("win"):
    +                    os.link(fileFrom, fileTo)
    +                else:
    +                    shutil.copyfile(fileFrom, fileTo)
    +            except OSError:
    +                print("Don't need to copy %s" % file, file=sys.stderr)
    +        db = prefix + "wave*.silo database"
    +    else:
    +        # .visit file.
    +        db = "reopen_wave.visit"
    +        f = open(db, "wt")
    +        for file in files:
    +            f.write(data_path("silo_hdf5_test_data/%s\n" % file))
    +        f.close()
    +    return (db, prefixfiles)
    +
    +# Function to remove the .visit file or the virtual database.
    +def DestroyMTFile(makeVisItFile, db):
    +    RemoveAllSiloAndVisItFiles()
    +
    +# Function to create a new SAMRAI .visit file.
    +def CreateTimeVaryingMTFile(percent):
    +    # Read in the entire dumps.visit file for the SAMRAI data so that
    +    # we can get the list of files.
    +    f = open(data_path("samrai_test_data/sil_changes/dumps.visit"), "rt")
    +    lines = f.readlines()
    +    f.close()
    +
    +    # Create a new .visit file
    +    nStates = len(lines)
    +    t = float(percent) / 100.
    +    maxState = int(float(nStates) * t)
    +    db = "reopen_samrai.visit"
    +    f = open(db, "wt")
    +    for i in range(maxState):
    +        f.write(data_path("samrai_test_data/sil_changes/%s") % lines[i])
    +    f.close()
    +    return db
    +
    +# Function to remove the SAMRAI .visit file.
    +def DestroyTimeVaryingMTFile(db):
    +    RemoveAllSiloAndVisItFiles()
    +
    +def SetTheView():
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.735926, 0.562657, 0.376604)
    +    v0.focus = (5, 0.753448, 2.5)
    +    v0.viewUp = (0.454745, 0.822858, -0.340752)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 5.6398
    +    v0.nearPlane = -11.2796
    +    v0.farPlane = 11.2796
    +    v0.imagePan = (0.0589778, 0.0898255)
    +    v0.imageZoom = 1.32552
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    SetView3D(v0)
    +
    +###############################################################################
    +
    +#
    +# Make sure that Reopen does not reset the time slider state and also make
    +# sure that we are getting the metadata for a late time state.
    +#
    +def test1():
    +    #
    +    # This will open at timestep 0.  The variable "transient" will not be
    +    # available then.
    +    #
    +    db = silo_data_path("wave.visit")
    +    OpenDatabase(db)
    +
    +    #
    +    # Now set the time to a timestep when "transient" is available.
    +    #
    +    SetTimeSliderState(20)
    +    TestWindowInformation("reopen_1_00")
    +
    +    #
    +    # If we were to try and make a PC plot of transient right now, it wouldn't
    +    # work.  We need to do a re-open first.
    +    #
    +    ReOpenDatabase(db)
    +
    +    #
    +    # Make a plot of transient. This had better not reset the time state to 0.
    +    #
    +    AddPlot("Pseudocolor","transient")
    +    DrawPlots()
    +    SetTheView()
    +    Test("reopen_1_01")
    +
    +    #
    +    # Delete the plots and close the database
    +    #
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +    TestWindowInformation("reopen_1_02")
    +
    +
    +#
    +# Now test that reopening a file actually makes the time slider longer. First
    +# create a new .visit file that we can add onto later.
    +#
    +def test2():
    +    VirtualDatabase = 0
    +    VisItFile = 1
    +
    +    testIndex = 0
    +    for method in (VirtualDatabase, VisItFile):
    +        # Add a section title.
    +        if(method == VirtualDatabase):
    +            TestSection("Reopening virtual database")
    +        else:
    +            TestSection("Reopening .visit file")
    +
    +        db, files = CreateMTFile("", method, 30)
    +        OpenDatabase(db)
    +        AddPlot("Pseudocolor", "pressure")
    +        DrawPlots()
    +
    +        # Set up the view.
    +        SetTheView()
    +
    +        # Go to the last time state.
    +        SetTimeSliderState(TimeSliderGetNStates() - 1)
    +        Test("reopen_2_%02d" % testIndex)
    +        TestLength("reopen_2_%02d" % (testIndex + 1))
    +
    +        # Create more time states in the file.
    +        db, files = CreateMTFile("", method, 60)
    +        ReOpenDatabase(db)
    +        # Go to the last time state.
    +        SetTimeSliderState(TimeSliderGetNStates() - 1)
    +        Test("reopen_2_%02d" % (testIndex + 2))
    +        TestLength("reopen_2_%02d" % (testIndex + 3))
    +
    +        # Create more time states in the file.
    +        db, files = CreateMTFile("", method, 100)
    +        ReOpenDatabase(db)
    +        # Go to the last time state.
    +        SetTimeSliderState(TimeSliderGetNStates() - 1)
    +        Test("reopen_2_%02d" % (testIndex + 4))
    +        TestLength("reopen_2_%02d" % (testIndex + 5))
    +
    +        # Get rid of the .visit file that we created.
    +        DestroyMTFile(method, db)
    +        DeleteAllPlots()
    +        CloseDatabase(db)
    +
    +        # Get to the next testIndex
    +        testIndex = testIndex + 6
    +
    +
    +#
    +# Now that we've tested time-invariant databases, try testing reopen with
    +# a time-varying database to see if we get the right plots.
    +#
    +def test3():
    +    TestSection("Reopening .visit file of time-varying data")
    +
    +    testIndex = 0
    +    for percent in (30,60,100):
    +        db = CreateTimeVaryingMTFile(percent)
    +        if(percent == 30):
    +            OpenDatabase(db)
    +            AddPlot("Pseudocolor", "Primitive Var _number_0")
    +            DrawPlots()
    +
    +            # Set the view
    +            v0 = View3DAttributes()
    +            v0.viewNormal = (-0.598154, 0.519575, -0.610127)
    +            v0.focus = (15, 10, 10)
    +            v0.viewUp = (0.418052, 0.851849, 0.315574)
    +            v0.viewAngle = 30
    +            v0.parallelScale = 20.6155
    +            v0.nearPlane = -41.2311
    +            v0.farPlane = 41.2311
    +            v0.imagePan = (0.0200698, 0.0374771)
    +            v0.imageZoom = 1
    +            v0.perspective = 1
    +            v0.eyeAngle = 2
    +            SetView3D(v0)
    +
    +            # Save a test
    +            Test("reopen_3_%02d" % testIndex)
    +            testIndex = testIndex + 1
    +            TestLength("reopen_3_%02d" % testIndex)
    +            testIndex = testIndex + 1
    +
    +        else:
    +            # Reopen the database to add the new time states.
    +            ReOpenDatabase(db)
    +
    +        # Go to the last time state.
    +        SetTimeSliderState(TimeSliderGetNStates() - 1)
    +
    +        # Save a test
    +        Test("reopen_3_%02d" % testIndex)
    +        testIndex = testIndex + 1
    +        TestLength("reopen_3_%02d" % testIndex)
    +        testIndex = testIndex + 1
    +
    +    # Clean up the time varying .visit file.
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +    DestroyTimeVaryingMTFile(db)
    +
    +#
    +# Test that reopening a file that has been overwritten works.
    +#
    +def test4():
    +    TestSection("Reopening overwritten file to test engine")
    +
    +    # Copy curv2d to the current directory.
    +    db = "test4.silo"
    +    if not sys.platform.startswith("win"):
    +        os.link(silo_data_path("curv2d.silo") , db)
    +    else:
    +        shutil.copyfile(silo_data_path("curv2d.silo") , db)
    +
    +    # Open up the file and create a plot.
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    Test("reopen_4_00")
    +
    +    # Delete the file
    +    try:
    +        os.unlink(db)
    +    except:
    +        # Ignore any exceptions
    +        pass
    +
    +    if not sys.platform.startswith("win"):
    +        os.link(silo_data_path("rect2d.silo") , db)
    +    else:
    +        shutil.copyfile(silo_data_path("rect2d.silo") , db)
    +
    +    ReOpenDatabase(db)
    +    ResetView()
    +    Test("reopen_4_01")
    +
    +    DeleteAllPlots()
    +    # Delete the file
    +    try:
    +        os.unlink(db)
    +    except:
    +        # Ignore any exceptions
    +        pass
    +
    +
    +#
    +# Test that expressions are not lost after reopening a file when there
    +# are multiple windows.
    +#
    +def test5():
    +    TestSection("Testing reopen/expressions with multiple windows")
    +    db = silo_data_path("curv3d.silo")
    +    AddWindow()
    +    SetActiveWindow(1)
    +    OpenDatabase(db)
    +    TestExpressions("reopen_5_00")
    +
    +    # See if the expressions are right after reopening.
    +    ReOpenDatabase(db)
    +    TestExpressions("reopen_5_01")
    +
    +    # Delete the window that we added.
    +    SetActiveWindow(2)
    +    DeleteWindow()
    +    CloseDatabase(db)
    +
    +#
    +# Test that time sliders are shortened when we reopen an MT database
    +# that has had time states removed.
    +#
    +def test6():
    +    TestSection("Testing reopen at an invalid time state")
    +    RemoveAllSiloAndVisItFiles()
    +
    +    # Make sure that there is no open database.
    +    TestLength("reopen_6_00")
    +
    +    # Create a short MT file.
    +    db, files = CreateMTFile("", 0, (10. / 71.) * 100.)
    +
    +    # Create a plot and make sure its database has the right number
    +    # of time states.
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    ResetView()
    +    Test("reopen_6_01")
    +    TestLength("reopen_6_02")
    +
    +    # Make a copy of the first window.
    +    CloneWindow()
    +    DrawPlots()
    +    Test("reopen_6_03")
    +    TestLength("reopen_6_04")
    +    SetActiveWindow(1)
    +
    +    # Delete the last few time states
    +    nStates = len(files)
    +    for f in files[-5:]:
    +        try:
    +            os.unlink(f)
    +        except:
    +            print("Could not delete %s" % f, file=sys.stderr)
    +
    +    # Change to a time state that we deleted. This should put the plot
    +    # in the error state and we should get an error message.
    +    SetTimeSliderState(nStates - 2)
    +    Test("reopen_6_05")
    +    TestText("reopen_6_06", GetLastError())
    +
    +    # Do the same thing in window 2 so we can check leter if reopen
    +    # causes the time slider, etc to be corrected.
    +    SetActiveWindow(2)
    +    SetTimeSliderState(nStates - 2)
    +    SetActiveWindow(1)
    +
    +    # Reopen the database. This should pick up that the database has
    +    # fewer time states and should update the time slider so it is
    +    # in bounds. The compute engine also should not crash.
    +    ReOpenDatabase(db)
    +    DrawPlots()
    +    Test("reopen_6_07")
    +    TestLength("reopen_6_08")
    +
    +    # See if we're at the right time state in window 2 too.
    +    SetActiveWindow(2)
    +    DrawPlots()
    +    Test("reopen_6_09")
    +    TestLength("reopen_6_10")
    +    DeleteWindow()
    +
    +    # Delete all of the plots in window 1 and close the database.
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +    # Delete the last few files.
    +    DestroyMTFile(0, db)
    +
    +
    +#
    +# Test reopening a database that has been removed from disk.
    +#
    +def test7():
    +    TestSection("Testing reopen on a deleted file")
    +    # Link a file from the data directory to the current directory.
    +    db = "reopen_globe.silo"
    +    if not sys.platform.startswith("win"):
    +        os.link(silo_data_path("globe.silo") , db)
    +    else:
    +        shutil.copyfile(silo_data_path("globe.silo") , db)
    +
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "t")
    +    DrawPlots()
    +    Test("reopen_7_00")
    +
    +    # Remove the file and make sure that we can't reopen it.
    +    RemoveAllSiloAndVisItFiles()
    +    if ReOpenDatabase(db):
    +        s = "VisIt was able to reopen " + db
    +    else:
    +        s = "VisIt was *NOT* able to reopen " + db + "!"
    +    TestText("reopen_7_01", s)
    +
    +    # Do something that will make the plot be regenerated. Here we're changing
    +    # plot variables to force VisIt to recalculate the plot.
    +    ChangeActivePlotsVar("u")
    +    Test("reopen_7_02")
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +
    +#
    +# Run the tests
    +#
    +try:
    +    # Remove all .silo and .visit files that could be left over from
    +    # previous failed runs.
    +    RemoveAllSiloAndVisItFiles()
    +
    +    # Run the tests
    +    test1()
    +    test2()
    +    test3()
    +    test4()
    +    test5()
    +    test6()
    +    test7()
    +except:
    +    # If we got any kind of exception, make sure that we get rid of
    +    # all of the .silo and .visit files that might be left.
    +    RemoveAllSiloAndVisItFiles()
    +
    +    # Rethrow the exception so the test won't look like it passed if
    +    # it really didn't pass
    +    raise
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_sami.html b/2024-12-12-22:00/poodle_trunk_serial/databases_sami.html new file mode 100644 index 000000000..37620a2d2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_sami.html @@ -0,0 +1,78 @@ + +Results for databases/sami.py + +

    Results of VisIt Regression Test - databases/sami

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    sami_010.000.00
    sami_020.000.00
    sami_030.000.00
    sami_040.000.00
    sami_050.000.00
    sami_060.000.00
    sami_070.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_sami_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_sami_py.html new file mode 100644 index 000000000..ed8b2ade5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_sami_py.html @@ -0,0 +1,80 @@ +databases/sami.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  sami.py 
    +#
    +#  Tests:      sami files 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       October 12, 2006 
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("SAMI")
    +
    +# test the main mesh
    +OpenDatabase(data_path("sami_test_data/bdw.sami"))
    +
    +AddPlot("Mesh","mesh")
    +DrawPlots()
    +v=GetView3D()
    +v.viewNormal = (0.433013, 0.5, -0.75)
    +v.viewUp = (-0.25, 0.866025, 0.433013)
    +SetView3D(v)
    +Test("sami_01")
    +
    +# test the material object
    +AddPlot("FilledBoundary","mat")
    +DrawPlots()
    +Test("sami_02")
    +DeleteAllPlots()
    +
    +# test a node set
    +AddPlot("Mesh","nodesets/sl5m")
    +DrawPlots()
    +Test("sami_03")
    +DeleteAllPlots()
    +
    +# test a couple of slide plots
    +AddPlot("Mesh","slide_0/sideB")
    +AddPlot("Mesh","slide_1/sideB")
    +AddPlot("Mesh","slide_2/sideA")
    +AddPlot("Mesh","slide_3/sideA")
    +DrawPlots()
    +Test("sami_04")
    +DeleteAllPlots()
    +
    +# test a multi-part sami file
    +OpenDatabase(data_path("sami_test_data/sample_sami.visit"))
    +
    +AddPlot("Pseudocolor","global_node_numbers")
    +DrawPlots()
    +ResetView()
    +v=GetView3D()
    +v.viewNormal = (-0.866025, 0, -0.5)
    +v.viewUp = (0, 1, 0)
    +SetView3D(v)
    +Test("sami_05")
    +DeleteAllPlots()
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("FilledBoundary","mat")
    +DrawPlots()
    +Test("sami_06")
    +
    +# turn off material 2 and domain 0
    +mat2SetId = -1
    +dom0SetId = -1
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "002":
    +        mat2SetId = i
    +    if silr.SetName(i) == "domain0":
    +        dom0SetId = i
    +silr.TurnOffSet(mat2SetId)
    +silr.TurnOffSet(dom0SetId)
    +SetPlotSILRestriction(silr)
    +DrawPlots()
    +Test("sami_07")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_samrai.html b/2024-12-12-22:00/poodle_trunk_serial/databases_samrai.html new file mode 100644 index 000000000..675caa6b4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_samrai.html @@ -0,0 +1,294 @@ + +Results for databases/samrai.py + +

    Results of VisIt Regression Test - databases/samrai

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    samrai_010.000.00
    samrai_020.000.00
    samrai_030.000.00
    samrai_040.000.00
    samrai_050.000.00
    samrai_060.000.00
    samrai_070.000.00
    samrai_080.000.00
    samrai_090.000.00
    samrai_100.000.00
    samrai_110.000.00
    samrai_120.000.00
    samrai_130.000.00
    samrai_140.000.00
    samrai_150.000.00
    samrai_160.000.00
    samrai_170.000.00
    samrai_180.000.00
    samrai_190.000.00
    samrai_200.000.00
    samrai_copper_matvf_010.000.00
    samrai_copper_matvf_020.000.00
    samrai_copper_matvf_030.000.00
    samrai_copper_matvf_040.000.00
    samrai_gold_val4mat_010.000.00
    samrai_gold_val4mat_020.000.00
    samrai_gold_val4mat_030.000.00
    samrai_gold_val4mat_040.000.00
    samrai_210.000.00
    samrai_220.000.00
    samrai_230.000.00
    samrai_240.000.00
    samrai_250.000.00
    samrai_260.000.00
    samrai_270 modifications totalling 0 lines
    samrai_280.000.00
    samrai_290 modifications totalling 0 lines
    samrai_300.000.00
    samrai_310 modifications totalling 0 lines
    samrai_330.000.00
    samrai_340.000.00
    samrai_350.000.00
    samrai_360.000.00
    samrai_370.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_samrai_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_samrai_py.html new file mode 100644 index 000000000..900685ccf --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_samrai_py.html @@ -0,0 +1,413 @@ +databases/samrai.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  samrai.py 
    +#
    +#  Tests:      presence of HDF5
    +#              default plot 
    +#              sil changing with time
    +#              nested ghosting
    +#              zbuffer contention
    +#              2d ale data
    +#              operators - slice
    +#              selection - by level
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       November 12, 2003 
    +#
    +#  Modifications:
    +#    Brad Whitlock, Thu Mar 25 14:05:32 PST 2004
    +#    Added a check to see if plots at later time steps get the right metadata.
    +#
    +#    Jeremy Meredith, Thu Jun 24 12:58:06 PDT 2004
    +#    Set the vector origin explicitly for some cases because I changed the
    +#    default to Tail.
    +#
    +#    Mark C. Miller, Thu Aug 19 16:22:49 PDT 2004
    +#    Turned off database info flag so future changes to samrai db plugin
    +#    are less likely to result in a need to update the baselines
    +#
    +#    Hank Childs, Wed Feb 16 07:34:07 PST 2005
    +#    Rename variables that have unsupported characters.
    +#
    +#    Mark C. Miller, Thu Feb 17 09:00:41 PST 2005
    +#    Added tests for variables defined on only some patches
    +#
    +#    Brad Whitlock, Wed Mar 9 09:15:30 PDT 2005
    +#    Removed deprecated functions.
    +#
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +#    Mark C. Miller, Mon Nov  5 20:15:05 PST 2007
    +#    Added tests for sparse materials, expressions
    +#
    +#    Jeremy Meredith, Tue Jul 15 10:43:58 EDT 2008
    +#    Changed number of vectors in vector plot to match the old behavior.
    +#    (We now account for how many domains there are.)
    +#
    +#    Brad Whitlock, Thu Feb 4 10:18:23 PDT 2010
    +#    Turn off sets by name instead of index since that can change.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use Subset plot for levels instead of FilledBoundary.
    +#
    +# ----------------------------------------------------------------------------
    +
    +LevelZero = 4 # set id for level 0
    +
    +# Turn off sets by name
    +def TurnOffSetsByName(silr, cat, names):
    +    sets = silr.SetsInCategory(cat)
    +    for s in sets:
    +        setname = silr.SetName(s)
    +        try:
    +            if setname in names:
    +                silr.TurnOffSet(s)
    +        except:
    +            if setname == names:
    +                silr.TurnOffSet(s)
    +
    +OpenDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +
    +#
    +# just tests that default plot comes up automatically 
    +#
    +Test("samrai_01")
    +
    +#
    +# test exterenal face overlap
    +#
    +AddPlot("Pseudocolor","Primitive Var _number_0")
    +DrawPlots()
    +
    +v=GetView3D()
    +v.viewNormal=(0,0,-1)
    +SetView3D(v)
    +Test("samrai_02")
    +
    +v.viewNormal=(0.34202, 0, -0.939693)
    +SetView3D(v)
    +Test("samrai_03")
    +
    +#
    +# test level selection
    +#
    +silr=SILRestriction()
    +silr.TurnOffSet(LevelZero)
    +SetPlotSILRestriction(silr)
    +v.viewNormal=(0,0,1)
    +SetView3D(v)
    +Test("samrai_04")
    +
    +#
    +# test changing time steps (and sil)
    +#
    +TimeSliderNextState()
    +Test("samrai_05")
    +
    +# go back to begnning of time
    +SetTimeSliderState(0)
    +
    +#
    +# turn on level 0 so we can check that
    +# nested ghosting is working correctly when we slice
    +#
    +silr.TurnOnSet(LevelZero)
    +SetPlotSILRestriction(silr)
    +
    +#
    +# this test is here to remind us we have many internal faces 
    +#
    +v.viewNormal=(-0.537631, 0.372794, -0.756292)
    +v.focus=(15, 10, 10)
    +v.viewUp=(0.262569, 0.926375, 0.269976)
    +v.parallelScale=30
    +v.nearPlane=-10
    +v.farPlane=90
    +SetView3D(v)
    +Test("samrai_06")
    +
    +#
    +# add a mesh plot and slice operator
    +#
    +AddPlot("Mesh","amr_mesh")
    +sliceAtts=SliceAttributes()
    +sliceAtts.originType=sliceAtts.Percent
    +sliceAtts.originPercent=20
    +sliceAtts.axisType=sliceAtts.ZAxis
    +sliceAtts.project2d=1
    +SetDefaultOperatorOptions(sliceAtts)
    +AddOperator("Slice",1)
    +DrawPlots()
    +Test("samrai_07")
    +
    +#
    +# Animate forward 1 frame
    +#
    +TimeSliderNextState()
    +Test("samrai_08")
    +
    +#
    +# Now, go back 1 frame
    +#
    +SetTimeSliderState(0)
    +Test("samrai_09")
    +
    +#
    +# Tests for data from a 2d ale calculation.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(data_path("samrai_test_data/ale2d/dumps.visit"))
    +
    +ResetView()
    +
    +#
    +# Test the default plot.
    +#
    +Test("samrai_10")
    +
    +#
    +# Check the last frame.
    +#
    +TimeSliderNextState()
    +Test("samrai_11")
    +
    +#
    +# Test a vector plot.
    +#
    +AddPlot("Vector", "Velocity")
    +vectorAtts=VectorAttributes()
    +vectorAtts.scale = 0.02
    +vectorAtts.vectorOrigin = vectorAtts.Middle
    +vectorAtts.nVectors = 400*47
    +SetPlotOptions(vectorAtts)
    +DrawPlots()
    +
    +v = View2DAttributes()
    +v.windowCoords = (0.31, 0.58, 0.15, 0.36)
    +SetView2D(v)
    +Test("samrai_12")
    +
    +#
    +# Tests for material/species data 
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(data_path("samrai_test_data/mats-par3/dumps.visit"))
    +
    +ResetView()
    +
    +#
    +# test a material plot
    +#
    +AddPlot("FilledBoundary","materials")
    +DrawPlots()
    +Test("samrai_13")
    +
    +#
    +# test material plot with some patches off
    +#
    +silr=SILRestriction()
    +TurnOffSetsByName(silr, "patches", ("level0,patch0", "level0,patch1","level0,patch2","level0,patch3"))
    +SetPlotSILRestriction(silr)
    +Test("samrai_14")
    +
    +#
    +# now, turn off a material, too
    +#
    +silr.TurnOnAll()
    +TurnOffSetsByName(silr, "materials", "Copper")
    +SetPlotSILRestriction(silr)
    +Test("samrai_15")
    +
    +silr.TurnOnAll()
    +SetPlotSILRestriction(silr)
    +DeleteAllPlots()
    +
    +#
    +# add a species plot
    +#
    +AddPlot("Pseudocolor","species")
    +DrawPlots()
    +
    +#
    +# Selectively turn off each species
    +#
    +silr.TurnOffSet(24)
    +SetPlotSILRestriction(silr)
    +Test("samrai_16")
    +
    +silr.TurnOffSet(25)
    +SetPlotSILRestriction(silr)
    +Test("samrai_17")
    +
    +silr.TurnOffSet(26)
    +SetPlotSILRestriction(silr)
    +Test("samrai_18")
    +
    +silr.TurnOffSet(27)
    +SetPlotSILRestriction(silr)
    +Test("samrai_19")
    +
    +silr.TurnOffSet(28)
    +SetPlotSILRestriction(silr)
    +Test("samrai_20")
    +
    +DeleteAllPlots()
    +
    +# test matvf exprs
    +DefineScalarExpression("copper_vf",'matvf(materials,"Copper")')
    +AddPlot("Pseudocolor","copper_vf")
    +DrawPlots()
    +patts = PseudocolorAttributes()
    +Test("samrai_copper_matvf_01")
    +patts.centering = patts.Nodal  # Natural, Nodal, Zonal
    +SetPlotOptions(patts)
    +Test("samrai_copper_matvf_02")
    +patts.centering = patts.Zonal # Natural, Nodal, Zonal
    +SetPlotOptions(patts)
    +Test("samrai_copper_matvf_03")
    +patts.centering = patts.Natural # Natural, Nodal, Zonal
    +SetPlotOptions(patts)
    +Test("samrai_copper_matvf_04")
    +
    +DeleteAllPlots()
    +
    +DefineScalarExpression("gold_den",'val4mat(Density,"Gold")')
    +AddPlot("Pseudocolor","gold_den")
    +DrawPlots()
    +patts = PseudocolorAttributes()
    +Test("samrai_gold_val4mat_01")
    +patts.centering = patts.Nodal  # Natural, Nodal, Zonal
    +SetPlotOptions(patts)
    +Test("samrai_gold_val4mat_02")
    +patts.centering = patts.Zonal # Natural, Nodal, Zonal
    +SetPlotOptions(patts)
    +Test("samrai_gold_val4mat_03")
    +patts.centering = patts.Natural # Natural, Nodal, Zonal
    +SetPlotOptions(patts)
    +Test("samrai_gold_val4mat_04")
    +
    +DeleteAllPlots()
    +
    +#
    +# Open a new database that has levels that change over time so we can test
    +# that plots get the right metadata and SIL as time advances.
    +#
    +OpenDatabase(data_path("samrai_test_data/front/dumps.visit"))
    +
    +# Get rid of the default plot
    +DeleteAllPlots()
    +AddPlot("Subset", "levels")
    +DrawPlots()
    +ResetView()
    +Test("samrai_21")
    +
    +# Go to the next time state. This used to cause an InvalidIndexException.
    +TimeSliderNextState()
    +Test("samrai_22")
    +
    +#
    +# Test a database where some variables are not defined on all patches
    +#
    +DeleteAllPlots()
    +OpenDatabase(data_path("samrai_test_data/viz_2d/dumps.visit"))
    +
    +AddPlot("Pseudocolor", "Function_0") # only defined on some patches
    +AddPlot("Pseudocolor", "Function_1") # only defined on some other patches
    +DrawPlots()
    +Test("samrai_23")
    +
    +#
    +# Test a samrai database with sparse material representation
    +#
    +DeleteAllPlots()
    +OpenDatabase(data_path("samrai_test_data/sparse_mats/summary.samrai"))
    +
    +AddPlot("Pseudocolor", "energy")
    +DrawPlots()
    +Test("samrai_24")
    +
    +#
    +#  Zoom into a region where there is mixing
    +#
    +v=GetView2D()
    +v.windowCoords=(-0.296975, -0.223086, 0.0437891, 0.120943)
    +SetView2D(v)
    +DrawPlots()
    +Test("samrai_25")
    +
    +#
    +# Turn off different materials and see what we get for the PC plot
    +# and zone picks
    +#
    +silr = SILRestriction()
    +j = 0
    +for k1 in silr.SetsInCategory("materials"):
    +    i = 1
    +    for k2 in silr.SetsInCategory("materials"):
    +        if silr.SetName(k2) == "material_%d"%(j+1):
    +            silr.TurnOffSet(k2)
    +        else:
    +            silr.TurnOnSet(k2)
    +        i = i + 1
    +    SetPlotSILRestriction(silr)
    +    DrawPlots()
    +    Test("samrai_%d"%(26+2*j))
    +    PickByZone(247,15)
    +    TestText("samrai_%d"%(26+2*j+1),GetPickOutput())
    +    j = j + 1
    +
    +#
    +# Test some expressions from the samrai database 
    +#
    +silr.TurnOnAll()
    +SetPlotSILRestriction(silr)
    +DeleteAllPlots()
    +AddPlot("Pseudocolor","von_mises_stress")
    +DrawPlots()
    +Test("samrai_33")
    +DeleteAllPlots()
    +AddPlot("Pseudocolor","speed")
    +DrawPlots()
    +Test("samrai_34")
    +
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("samrai_test_data/sparse_mats/summary.samrai"))
    +OpenDatabase(data_path("samrai_test_data/curv_bnd_ghost/dumps.visit"))
    +s = GetPlotOptions()
    +s.colorType = s.ColorBySingleColor
    +s.singleColor = (100,100,100,255)
    +SetPlotOptions(s)
    +AddPlot("Pseudocolor","Y_01")
    +DrawPlots()
    +Test("samrai_35")
    +
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "level0,patch7":
    +        silr.TurnOffSet(i)
    +        break
    +SetPlotSILRestriction(silr)
    +Test("samrai_36")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("samrai_test_data/curv_bnd_ghost/dumps.visit"))
    +OpenDatabase(data_path("samrai_test_data/matghosts_fullzonal/dumps.visit"))
    +s = GetPlotOptions()
    +s.colorType = s.ColorBySingleColor
    +s.singleColor = (100,100,100,255)
    +SetPlotOptions(s)
    +AddPlot("FilledBoundary", "materials")
    +DrawPlots()
    +silr = SILRestriction()
    +silr.TurnOffSet(30)
    +SetPlotSILRestriction(silr)
    +Test("samrai_37")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_scale_mesh.html b/2024-12-12-22:00/poodle_trunk_serial/databases_scale_mesh.html new file mode 100644 index 000000000..c04b895c9 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_scale_mesh.html @@ -0,0 +1,42 @@ + +Results for databases/scale_mesh.py + +

    Results of VisIt Regression Test - databases/scale_mesh

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    scale_mesh010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_scale_mesh_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_scale_mesh_py.html new file mode 100644 index 000000000..2f8dd734a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_scale_mesh_py.html @@ -0,0 +1,28 @@ +databases/scale_mesh.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  scale_mesh.py
    +#
    +#  Purpose:    Tests whether or not we try to scale a mesh when only one
    +#              of its dimensions are out of whack (we shouldn't).
    +#
    +#  Programmer: Hank Childs
    +#  Date:       April 22, 2004
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# Create a Pseudocolor plot of wave by opening it up at a late time state.
    +OpenDatabase(data_path("vtk_test_data/near_planar.vtk"))
    +
    +AddPlot("Pseudocolor", "hardyglobal")
    +DrawPlots()
    +
    +# Set the view.
    +v0 = GetView3D()
    +v0.viewNormal = (-0.661743, 0.517608, 0.542382)
    +SetView3D(v0)
    +Test("scale_mesh01")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_shapefile.html b/2024-12-12-22:00/poodle_trunk_serial/databases_shapefile.html new file mode 100644 index 000000000..49ad62bd2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_shapefile.html @@ -0,0 +1,183 @@ + +Results for databases/shapefile.py + +

    Results of VisIt Regression Test - databases/shapefile

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Test reading a shapefile that contains points
    shapefile_0_000.000.00
    shapefile_0_010.000.00
    shapefile_0_020.000.00
    shapefile_0_030.000.00
    Test reading a shapefile that contains polylines
    shapefile_1_000.000.00
    shapefile_1_010.000.00
    shapefile_1_020.000.00
    Test reading shapefiles that contain polygons
    shapefile_2_000.000.00
    shapefile_2_010.000.00
    shapefile_2_020.000.00
    shapefile_2_030.000.00
    shapefile_2_040.000.00
    shapefile_2_050.000.00
    shapefile_2_060.000.00
    shapefile_2_070.000.00
    Test multiple files for showing different features
    shapefile_3_000.000.00
    shapefile_3_010.000.00
    shapefile_3_020.000.00
    Test a .visit file of shapefiles
    shapefile_4_000.000.00
    shapefile_4_010.000.00
    shapefile_4_020.000.00
    shapefile_4_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_shapefile_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_shapefile_py.html new file mode 100644 index 000000000..da9785640 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_shapefile_py.html @@ -0,0 +1,236 @@ +databases/shapefile.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  shapefile.py
    +#
    +#  Tests:      mesh      - 2D polydata, single domain
    +#              plots     - Pseudocolor, Mesh, Subset
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Mon Mar 28 11:06:05 PDT 2005
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Wed Feb 16 09:15:45 PST 2022
    +#    Replace use of meshatts 'foregroundFlag' with meshColorSource.
    +#
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Test a file that contains points.
    +#
    +def test0():
    +    TestSection("Test reading a shapefile that contains points")
    +
    +    db = data_path("shapefile_test_data/m195mbsp/m195mbsp.shp")
    +    OpenDatabase(db)
    +    AddPlot("Mesh", "point")
    +    m = MeshAttributes()
    +    m.pointType = m.Box
    +    m.pointSize = 2000
    +    SetPlotOptions(m)
    +    DrawPlots()
    +    Test("shapefile_0_00")
    +
    +    DeleteActivePlots()
    +    AddPlot("Pseudocolor", "DEPTH_M")
    +    p = PseudocolorAttributes()
    +    p.pointType = p.Point # hack -- remove this someday
    +    p.pointSizePixels = 5
    +    SetPlotOptions(p)
    +    DrawPlots()
    +    Test("shapefile_0_01")
    +
    +    ChangeActivePlotsVar("LONGITUDE8")
    +    Test("shapefile_0_02")
    +    ChangeActivePlotsVar("LATITUDE83")
    +    Test("shapefile_0_03")
    +    DeleteActivePlots()
    +    CloseDatabase(db)
    +
    +#
    +# Test a file that contains polylines.
    +#
    +def test1():
    +    TestSection("Test reading a shapefile that contains polylines")
    +    db = data_path("shapefile_test_data/morrison/499071-HP.shp")
    +    OpenDatabase(db)
    +    AddPlot("Mesh", "polyline")
    +    DrawPlots()
    +    Test("shapefile_1_00")
    +
    +    DeleteActivePlots()
    +    AddPlot("Pseudocolor", "TPMAJOR_2")
    +    DrawPlots()
    +    Test("shapefile_1_01")
    +
    +    ChangeActivePlotsVar("RWE_INDEX")
    +    Test("shapefile_1_02")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(db)
    +
    +#
    +# Test a file that has polygons.
    +#
    +def test2():
    +    TestSection("Test reading shapefiles that contain polygons")
    +    db = data_path("shapefile_test_data/west/states.shp")
    +    OpenDatabase(db)
    +    AddPlot("Mesh", "polygon")
    +    DrawPlots()
    +    ResetView()
    +    Test("shapefile_2_00")
    +
    +    DeleteActivePlots()
    +    AddPlot("Pseudocolor", "AVG_SALE87")
    +    DrawPlots()
    +    Test("shapefile_2_01")
    +
    +    ChangeActivePlotsVar("MEDIANRENT")
    +    Test("shapefile_2_02")
    +    DeleteActivePlots()
    +    CloseDatabase(db)
    +
    +    # Look at another file.
    +    db = data_path("shapefile_test_data/prism0p020/prism0p020.shp")
    +    OpenDatabase(db)
    +    AddPlot("Mesh", "polygon")
    +    DrawPlots()
    +    Test("shapefile_2_03")
    +
    +    DeleteActivePlots()
    +    AddPlot("Pseudocolor", "RANGE")
    +    DrawPlots()
    +    Test("shapefile_2_04")
    +
    +    # Zoom in on some interesting areas
    +    v = View2DAttributes()
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.windowCoords = (-124.76, -118.94, 43.9999, 49.3856)
    +    SetView2D(v)
    +    Test("shapefile_2_05")
    +
    +    v.windowCoords = (-78.596, -74.3052, 36.34, 40.2596)
    +    SetView2D(v)
    +    Test("shapefile_2_06")
    +
    +    v.windowCoords = (-83.2497, -79.3216, 24.3312, 29.1338)
    +    SetView2D(v)
    +    Test("shapefile_2_07")
    +    ResetView()
    +    DeleteActivePlots()
    +    CloseDatabase(db)
    +
    +#
    +# Test multiple plots showing different features.
    +#
    +def test3():
    +    TestSection("Test multiple files for showing different features")
    +    dbs = (data_path("shapefile_test_data/alameda/tgr06001lkA.shp"),
    +           data_path("shapefile_test_data/alameda/tgr06001cty00.shp"),
    +           data_path("shapefile_test_data/alameda/tgr06001wat.shp"),
    +           data_path("shapefile_test_data/alameda/tgr06001lkH.shp"))
    +    # Put the roads on.
    +    OpenDatabase(dbs[0])
    +    AddPlot("Mesh", "polyline")
    +    g = 180
    +    m = MeshAttributes()
    +    m.meshColorSource = m.MeshCustom
    +    m.meshColor = (g,g,g,255)
    +    m.legendFlag = 0
    +    SetPlotOptions(m)
    +    ResetView()
    +    DrawPlots()
    +
    +    # Put the county outline on.
    +    OpenDatabase(dbs[1])
    +    AddPlot("Mesh", "polygon")
    +    m = MeshAttributes()
    +    m.meshColorSource = m.MeshCustom
    +    m.meshColor = (255,0,0,255)
    +    m.lineWidth = 1
    +    m.legendFlag = 0
    +    SetPlotOptions(m)
    +    DrawPlots()
    +
    +    # Put the bodies of water on.
    +    OpenDatabase(dbs[2])
    +    AddPlot("Mesh", "polygon")
    +    m = MeshAttributes()
    +    m.meshColorSource = m.MeshCustom
    +    m.meshColor = (0,0,255,255)
    +    m.lineWidth = 1
    +    m.legendFlag = 0
    +    SetPlotOptions(m)
    +    DrawPlots()
    +
    +    # Put the streams on.
    +    OpenDatabase(dbs[3])
    +    AddPlot("Mesh", "polyline")
    +    m = MeshAttributes()
    +    m.meshColorSource = m.MeshCustom
    +    m.meshColor = (150,150,255,255)
    +    m.legendFlag = 0
    +    SetPlotOptions(m)
    +    DrawPlots()
    +
    +    Test("shapefile_3_00")
    +
    +    # Zoom in some
    +    v = View2DAttributes()
    +    v.windowCoords = (-121.845, -121.681, 37.608, 37.775)
    +    SetView2D(v)
    +    Test("shapefile_3_01")
    +
    +    # Zoom in even more
    +    v.windowCoords = (-121.763, -121.718, 37.6533, 37.6983)
    +    SetView2D(v)
    +    Test("shapefile_3_02")
    +
    +    # Clean up
    +    DeleteAllPlots()
    +    for db in dbs:
    +        CloseDatabase(db)
    +
    +#
    +# Test a .visit file of shapefiles
    +#
    +def test4():
    +    TestSection("Test a .visit file of shapefiles")
    +    db = data_path("shapefile_test_data/bayarearoads/roads.visit")
    +    OpenDatabase(db)
    +    AddPlot("Subset", "blocks")
    +    DrawPlots()
    +    ResetView()
    +    Test("shapefile_4_00")
    +
    +    # Zoom in a little
    +    v = View2DAttributes()
    +    v.windowCoords = (-122.614, -121.92, 37.3495, 37.9982)
    +    SetView2D(v)
    +    Test("shapefile_4_01")
    +
    +    # Zoom in more
    +    v.windowCoords = (-122.522, -122.362, 37.7017, 37.8424)
    +    SetView2D(v)
    +    Test("shapefile_4_02")
    +
    +    # Zoom in more still
    +    v.windowCoords = (-122.488, -122.445, 37.7816, 37.825)
    +    SetView2D(v)
    +    Test("shapefile_4_03")
    +
    +    DeleteActivePlots()
    +    CloseDatabase(db)
    +
    +#
    +# Run the tests.
    +#
    +test0()
    +test1()
    +test2()
    +test3()
    +test4()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_silo.html b/2024-12-12-22:00/poodle_trunk_serial/databases_silo.html new file mode 100644 index 000000000..fe436723f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_silo.html @@ -0,0 +1,705 @@ + +Results for databases/silo.py + +

    Results of VisIt Regression Test - databases/silo

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    silo_010.000.00
    silo_020.000.00
    silo_030.000.00
    silo_040.000.00
    silo_050.000.00
    silo_060.000.00
    silo_070.000.00
    silo_080.000.00
    silo_090.000.00
    silo_100.000.00
    silo_110.000.00
    silo_120.000.00
    silo_130.000.00
    silo_140.000.00
    silo_150.000.00
    silo_160.000.00
    silo_170.000.00
    silo_180.000.00
    silo_200.000.00
    silo_210.000.00
    silo_220.000.00
    silo_230.000.00
    silo_240.000.00
    silo_250.000.00
    silo_260.000.00
    silo_270.000.00
    silo_280.000.00
    silo_290 modifications totalling 0 lines
    silo_300.000.00
    silo_310.000.00
    silo_320.000.00
    silo_330.000.00
    silo_340.000.00
    silo_350.000.00
    silo_360.000.00
    silo_370.000.00
    silo_380.000.00
    silo_390.000.00
    Silo AMR w/Mrgtrees
    silo_400.000.00
    silo_410.000.00
    silo_420.000.00
    silo_430.000.00
    silo_440.000.00
    silo_450.000.00
    Variables defined on material subsets
    silo_460.000.00
    silo_470.000.00
    silo_480.000.00
    silo_490.000.00
    silo_500.000.00
    Various arbitrary polygonal/polyhedral meshes
    silo_510.000.00
    silo_520.000.00
    silo_530.000.00
    silo_540.000.00
    silo_550.000.00
    silo_560.000.00
    silo_570.000.00
    silo_580.000.00
    silo_590.000.00
    silo_600.000.00
    silo_610.000.00
    silo_620.000.00
    silo_630.000.00
    silo_640.000.00
    silo_650.000.00
    silo_660.000.00
    silo_670.000.00
    silo_680.000.00
    silo_690.000.00
    silo_700.000.00
    silo_710.000.00
    silo_720.000.00
    silo_730.000.00
    silo_740.000.00
    silo_750.000.00
    silo_760.000.00
    silo_770.000.00
    silo_780.000.00
    silo_790.000.00
    silo_800.000.00
    silo_810.000.00
    silo_820.000.00
    silo_830.000.00
    silo_840.000.00
    silo_850.000.00
    silo_860.000.00
    silo_870.000.00
    silo_880.000.00
    silo_890.000.00
    silo_900.000.00
    silo_910.000.00
    silo_920.000.00
    silo_930.000.00
    silo_940.000.00
    silo_950.000.00
    Scalar and Vector ASCII Label Plots
    silo_960.000.00
    silo_970.000.00
    Curve with polar coordinates
    silo_980.000.00
    ghost_zone/node_labels
    silo_990.000.00
    silo_1000.000.00
    silo_1010.000.00
    silo_1020.000.00
    Curvilinear (quad) surfaces in 3D
    silo_curvilinear_3d_surface_00.000.00
    silo_curvilinear_3d_surface_10.000.00
    silo_curvilinear_3d_surface_20.000.00
    silo_curvilinear_3d_surface_30.000.00
    silo_curvilinear_3d_surface_40.000.00
    silo_curvilinear_3d_surface_50.000.00
    silo_curvilinear_3d_surface_60.000.00
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_silo_altdriver.html b/2024-12-12-22:00/poodle_trunk_serial/databases_silo_altdriver.html new file mode 100644 index 000000000..24f985f08 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_silo_altdriver.html @@ -0,0 +1,703 @@ + +Results for databases/silo_altdriver.py + +

    Results of VisIt Regression Test - databases/silo_altdriver

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    silo_010.000.00
    silo_020.000.00
    silo_030.000.00
    silo_040.000.00
    silo_050.000.00
    silo_060.000.00
    silo_070.000.00
    silo_080.000.00
    silo_090.000.00
    silo_100.000.00
    silo_110.000.00
    silo_120.000.00
    silo_130.000.00
    silo_140.000.00
    silo_150.000.00
    silo_160.000.00
    silo_170.000.00
    silo_180.000.00
    silo_200.000.00
    silo_210.000.00
    silo_220.000.00
    silo_230.000.00
    silo_240.000.00
    silo_250.000.00
    silo_260.000.00
    silo_270.000.00
    silo_280.000.00
    silo_290 modifications totalling 0 lines
    silo_300.000.00
    silo_310.000.00
    silo_320.000.00
    silo_330.000.00
    silo_340.000.00
    silo_350.000.00
    silo_360.000.00
    silo_370.000.00
    silo_380.000.00
    silo_390.000.00
    Silo AMR w/Mrgtrees
    silo_400.000.00
    silo_410.000.00
    silo_420.000.00
    silo_430.000.00
    silo_440.000.00
    silo_450.000.00
    Variables defined on material subsets
    silo_460.000.00
    silo_470.000.00
    silo_480.000.00
    silo_490.000.00
    silo_500.000.00
    Various arbitrary polygonal/polyhedral meshes
    silo_510.000.00
    silo_520.000.00
    silo_530.000.00
    silo_540.000.00
    silo_550.000.00
    silo_560.000.00
    silo_570.000.00
    silo_580.000.00
    silo_590.000.00
    silo_600.000.00
    silo_610.000.00
    silo_620.000.00
    silo_630.000.00
    silo_640.000.00
    silo_650.000.00
    silo_660.000.00
    silo_670.000.00
    silo_680.000.00
    silo_690.000.00
    silo_700.000.00
    silo_710.000.00
    silo_720.000.00
    silo_730.000.00
    silo_740.000.00
    silo_750.000.00
    silo_760.000.00
    silo_770.000.00
    silo_780.000.00
    silo_790.000.00
    silo_800.000.00
    silo_810.000.00
    silo_820.000.00
    silo_830.000.00
    silo_840.000.00
    silo_850.000.00
    silo_860.000.00
    silo_870.000.00
    silo_880.000.00
    silo_890.000.00
    silo_900.000.00
    silo_910.000.00
    silo_920.000.00
    silo_930.000.00
    silo_940.000.00
    silo_950.000.00
    Scalar and Vector ASCII Label Plots
    silo_960.000.00
    silo_970.000.00
    Curve with polar coordinates
    silo_980.000.00
    ghost_zone/node_labels
    silo_990.000.00
    silo_1000.000.00
    silo_1010.000.00
    silo_1020.000.00
    Curvilinear (quad) surfaces in 3D
    silo_curvilinear_3d_surface_00.000.00
    silo_curvilinear_3d_surface_10.000.00
    silo_curvilinear_3d_surface_20.000.00
    silo_curvilinear_3d_surface_30.000.00
    silo_curvilinear_3d_surface_40.000.00
    silo_curvilinear_3d_surface_50.000.00
    silo_curvilinear_3d_surface_60.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_silo_altdriver_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_silo_altdriver_py.html new file mode 100644 index 000000000..8c5fdba49 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_silo_altdriver_py.html @@ -0,0 +1,21 @@ +databases/silo_altdriver.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  silo_altdriver
    +#
    +#  Tests:      Runs the silo.py test using the 'other' driver. If silo.py
    +#              was run on PDB driver, this will run them on HDF5 driver and
    +#              vice versa.
    +#
    +#  Programmer: Mark C. Miller
    +#  Date:       25Jan10
    +#
    +# ----------------------------------------------------------------------------
    +
    +if TestEnv.params["silo_mode"] == "pdb":
    +    TestEnv.params["silo_mode"] = "hdf5"
    +else:
    +    TestEnv.params["silo_mode"] = "pdb"
    +
    +Source(tests_path("databases","silo.py"))
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_silo_datatypes.html b/2024-12-12-22:00/poodle_trunk_serial/databases_silo_datatypes.html new file mode 100644 index 000000000..f1844f8dc --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_silo_datatypes.html @@ -0,0 +1,79 @@ + +Results for databases/silo_datatypes.py + +

    Results of VisIt Regression Test - databases/silo_datatypes

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Silo Data Types
    silo_datatypes_quad_fnvar0.000.00
    silo_datatypes_quad_fzvar0.000.00
    silo_datatypes_ucd_fnvar0.000.00
    silo_datatypes_ucd_fzvar0.000.00
    silo_datatypes_diffs_hdf5_fsoff0 modifications totalling 0 lines
    silo_datatypes_diffs_hdf5_fson0 modifications totalling 0 lines
    silo_datatypes_diffs_pdb_fsoff0 modifications totalling 0 lines
    silo_datatypes_diffs_pdb_fson0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_silo_datatypes_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_silo_datatypes_py.html new file mode 100644 index 000000000..bce4fe2af --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_silo_datatypes_py.html @@ -0,0 +1,152 @@ +databases/silo_datatypes.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  silo_datatypes.py 
    +#
    +#  Tests:      All varieties of datatypes, centering, variable types,
    +#              meshtypes and force-single mode. 
    +#
    +#  Programmer: Mark C. Miller, Thu Jul 15 14:42:12 PDT 2010
    +#
    +#  Modifications:
    +#    Mark C. Miller, Tue Jul 20 19:26:04 PDT 2010
    +#    Adjusted names of temporary output files so they don't stomp on each
    +#    other.
    +#
    +#    Mark C. Miller, Wed Jul 21 08:51:30 PDT 2010
    +#    I side-stepped around a subtle problem with long long data from PDB.
    +#    Turns out on alastor where tests are being run as of July, 2010, sizeof
    +#    long is 8 and that is the same as size of long long. On the HDF5 driver,
    +#    if it reads integer data of N bytes, it will put it into the smallest
    +#    native type that fits. So, when it reads long long data of 8 bytes
    +#    but discovers a native long on the machine where the data is being read
    +#    is 8 bytes, it returns long instead. So, HDF5 driver never returns
    +#    a type of vtkLongLongArray. But, PDB driver does. And, for some reason
    +#    that one single case is getting handled subtly wrong. Its data extents
    +#    wind up getting set to [0,1] (which I assume is some sort of default).
    +#    So, the plot looks bad. So, here, in that case, I manually set the
    +#    extents and get around this problem. I am thinking there is a VTK
    +#    bug in computing the data extents for vtkLongLongArray type. But, thats
    +#    just a guess.
    +#
    +#    Mark C. Miller, Mon Jul 26 17:08:59 PDT 2010
    +#    Override pass/fail status for long long data until we switch to silo-4.8
    +#
    +#    Mark C. Miller, Thu Sep 23 21:23:42 PDT 2010
    +#    Remove override of pass/fail for long long data since now using silo-4.8
    +#
    +#    Eric Brugger, Mon Sep 26 11:35:01 PDT 2022
    +#    Changed use of test_root_path to more appropriate test_baseline_path.
    +#
    +# ----------------------------------------------------------------------------
    +TurnOffAllAnnotations() # defines global object 'a'
    +
    +#
    +# We do this quick open and immediate close because one cannot
    +# set FileOptions for a plugin type without having already opened
    +# at least one file of that type.
    +#
    +dummydb = silo_data_path("one_quad.silo")
    +OpenDatabase(dummydb)
    +CloseDatabase(dummydb)
    +
    +def SetForceSingle(val):
    +    # Turn off force single precision for this test
    +    # Note: We can't successfully do that until we open some database
    +    readOptions=GetDefaultFileOpenOptions("Silo")
    +    if val == "on":
    +        readOptions["Force Single"] = 1
    +    else:
    +        readOptions["Force Single"] = 0
    +    SetDefaultFileOpenOptions("Silo", readOptions)
    +
    +#
    +# Test reading various datatypes from Silo
    +#
    +TestSection("Silo Data Types")
    +DeleteAllPlots()
    +mtypes=("quad","ucd")
    +dtypes=("c","s","i","l","L","f","d")
    +vtypes=("n","z")
    +
    +#
    +# Test 'baseline' for node/zone centered quad/ucd from float data
    +#
    +backup = GetSaveWindowAttributes()
    +for mt in mtypes:
    +    dbname=silo_data_path("specmix_%s.silo" % mt)
    +    OpenDatabase(dbname)
    +    for v in vtypes:
    +        varname="%s%svar"%("f",v) # using only 'f'loat for baseline
    +        AddPlot("Pseudocolor",varname)
    +        DrawPlots()
    +        ResetView()
    +        Test("silo_datatypes_%s_%s"%(mt,varname))
    +        DeleteAllPlots()
    +    CloseDatabase(dbname)
    +
    +# Build PC plot attributes to be used to set min/max
    +# Only necessary for long long case from PDB. Why?
    +pa = PseudocolorAttributes()
    +pa.minFlag = 1
    +pa.maxFlag = 1
    +pa.min = 0
    +pa.max = 20
    +
    +for path in ["silo_datatypes",
    +             pjoin("silo_datatypes","current"),
    +             pjoin("silo_datatypes","diff")]:
    +    if not os.path.isdir(path):
    +        os.mkdir(path)
    +for smode in ("hdf5", "pdb"):
    +    for fsmode in ("off", "on"): # force single modes
    +        SetForceSingle(fsmode)
    +        diffResults=""
    +        for mt in mtypes:
    +            dbname=silo_data_path("specmix_%s.silo" % mt )
    +            OpenDatabase(dbname)
    +            for v in vtypes:
    +                for d in dtypes:
    +                    varname="%s%svar"%(d,v)
    +                    fvarname="%s%svar"%("f",v)
    +                    filename="silo_datatypes_%s_fs%s_%s_%s"%(smode,fsmode,mt,varname)
    +                    AddPlot("Pseudocolor",varname)
    +                    if (smode == "pdb" and d == "L"):
    +                        if (v == "n"):
    +                            pa.max = 20
    +                        else:
    +                            pa.max = 19
    +                        SetPlotOptions(pa)
    +                    DrawPlots()
    +                    ResetView()
    +                    swa=SaveWindowAttributes()
    +                    swa.outputToCurrentDirectory = 0
    +                    swa.outputDirectory = pjoin("silo_datatypes","current")
    +                    swa.screenCapture=1
    +                    swa.family   = 0
    +                    swa.fileName = filename
    +                    swa.format   = swa.PNG
    +                    SetSaveWindowAttributes(swa)
    +                    SaveWindow()
    +                    DeleteAllPlots()
    +                    tPixs = pPixs = dPixs = 0
    +                    davg = 0.0
    +                    if TestEnv.params["use_pil"]:
    +                         file=filename
    +                         cur  = pjoin("silo_datatypes","current","%s.png" % filename)
    +                         diff = pjoin("silo_datatypes","diff","%s.png" % filename)
    +                         base = test_baseline_path("databases",
    +                                                   "silo_datatypes",
    +                                                   "silo_datatypes_%s_%s.png"%(mt,fvarname))
    +                         (tPixs, pPixs, dPixs, davg) = DiffUsingPIL(file, cur, diff, base, "")
    +                         result = "PASSED"
    +                         if (dPixs > 0 and davg > 1):
    +                             result = "FAILED, %f %f"%(dPixs,davg)
    +                         diffResults += "%s_%s:    %s\n"%(mt,varname,result)
    +            CloseDatabase(dbname)
    +        TestText("silo_datatypes_diffs_%s_fs%s"%(smode,fsmode),diffResults)
    +shutil.rmtree("silo_datatypes")
    +SetSaveWindowAttributes(backup)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_silo_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_silo_py.html new file mode 100644 index 000000000..02cffb73a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_silo_py.html @@ -0,0 +1,764 @@ +databases/silo.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  silo.py
    +#
    +#  Tests:      multi-part silo files
    +#              operators - slice
    +#              operators - onion peel
    +#              selection - by domains
    +#
    +#  Programmer: Mark C. Miller
    +#  Date:       March 8, 2004
    +#
    +#  Defects:    4335/4337.
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Tue Mar  9 08:48:14 PST 2004
    +#    Turned off databaseInfo annotation, Used TurnOffDomains instead of
    +#    SIL sets to get correct domain turned off, reordered DrawPlots for
    +#    test 3 so that we get same results in parallel.  For OnionPeel, use
    +#    SetDefaultOperatorOptions so that options are applied.
    +#
    +#    Hank Childs, Thu Jun 24 09:59:12 PDT 2004
    +#    Add tests for quads that are stored as hexes in a ucd mesh. ['4335/'4337]
    +#
    +#    Brad Whitlock, Wed Mar 9 09:15:30 PDT 2005
    +#    Removed deprecated functions.
    +#
    +#    Mark C. Miller, Tue Jun 28 17:28:56 PDT 2005
    +#    Added tests mimicing Ale3d's history variables
    +#
    +#    Mark C. Miller, Wed Dec 13 18:32:20 PST 2006
    +#    Added time invariant mesh tests
    +#
    +#    Mark C. Miller, Wed Feb  7 20:23:22 PST 2007
    +#    Modified code to set SIL Restriction for mesh1_dup to be independent
    +#    of the file structure. Added test for multivar that spans multiple
    +#    multimeshes; it should fail.
    +#
    +#    Jeremy Meredith, Tue Jul 15 10:43:58 EDT 2008
    +#    Changed number of vectors in vector plot to match the old behavior.
    +#    (We now account for how many domains there are.)
    +#
    +#    Mark C. Miller, Thu Jan 22 16:27:54 PST 2009
    +#    Modified tests of defvars using mag and vec to make them less sensitive
    +#    to differences in platform. The mag test was computing a vector magnitude
    +#    whose range was very, very tiny. Switching that to sum fixes that
    +#    problem. The vector plot was simply generating way to many vectors that
    +#    were being drawn on top of each other. I changed it to use a moderately
    +#    large prime as the stride.
    +#
    +#    Mark C. Miller, Mon Sep 28 20:58:24 PDT 2009
    +#    Added tests for AMR data from Silo file using MRG Trees.
    +#
    +#    Tom Fogal, Wed Dec 16 13:11:19 MST 2009
    +#    Fixed a path to a data file.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Mark C. Miller, Fri Jan 22 17:30:29 PST 2010
    +#    I replaced OpenDatabase with FindAnd... variant for largefile.silo
    +#    to deal with data we don't keep in repo.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Mark C. Miller, Tue Feb 28 00:36:09 PST 2012
    +#    Added a slew of tests for hybrid zoo and arbitrary polygonal/polyhedral
    +#    meshes and variables defined upon them.
    +#
    +#    Kathleen Biagas, Thurs May 23 14:09:15 MST 2013
    +#    Don't run certain tests on Windows that cause a crash.
    +#
    +#    Kathleen Biagas, Thurs Jun 6 11:04:13 PDT 2013
    +#    Re-enable tests 42,44, and 45 on Windows, now that crash has been fixed.
    +#
    +#    Edward Rusu, Tues Oct 2 8:20:24 PDT 2018
    +#    Added tests for ghost_zone/node_labels in the silo files.
    +#
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#    individually to match current baseline results.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Remove obsolete 'colorByMag' vector att with 'colorByMagnitude'.
    +#
    +#    Kathleen Biagas, Tue July 11, 2023
    +#    Don't allow tests using wave_1file.visit to run on Windows, as they
    +#    involve symlinks. Symink access on the testing machine is disallowed.
    +#
    +#    Kathleen Biagas, Fri July 28, 2023
    +#    Allow test_26 involving largefile.silo to run on Windows.
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOffAllAnnotations() # defines global object 'a'
    +
    +# Turn off sets by name
    +def TurnOffSetsByName(silr, cat, names):
    +    sets = silr.SetsInCategory(cat)
    +    for s in sets:
    +        setname = silr.SetName(s)
    +        try:
    +            if setname in names:
    +                silr.TurnOffSet(s)
    +        except:
    +            if setname == names:
    +                silr.TurnOffSet(s)
    +
    +OpenDatabase(silo_data_path("multipart_multi_ucd3d.silo"))
    +
    +
    +#
    +# Test simple read and display of a variable
    +#
    +AddPlot("Pseudocolor","d")
    +DrawPlots()
    +
    +v=GetView3D()
    +v.viewNormal=(-0.5, 0.296198, 0.813798)
    +SetView3D(v)
    +Test("silo_01")
    +
    +#
    +# Test an intercept slice (that can use
    +# spatial extents tree if we have it)
    +#
    +sliceAtts=SliceAttributes()
    +sliceAtts.originType=sliceAtts.Intercept
    +sliceAtts.originIntercept=5
    +sliceAtts.axisType=sliceAtts.ZAxis
    +sliceAtts.project2d=0
    +SetDefaultOperatorOptions(sliceAtts)
    +AddOperator("Slice",1)
    +DrawPlots()
    +Test("silo_02")
    +DeleteAllPlots()
    +
    +#
    +# test selection down to just 1 domain
    +#
    +AddPlot("Pseudocolor","u")
    +TurnDomainsOff()
    +TurnDomainsOn(("domain11"))
    +DrawPlots()
    +Test("silo_03")
    +DeleteAllPlots()
    +
    +#
    +# Test an onion peel
    +#
    +AddPlot("Pseudocolor","p")
    +op = OnionPeelAttributes()
    +op.categoryName = "domains"
    +op.subsetName = "domain11"
    +op.index = (5)
    +op.logical = 0
    +op.adjacencyType = op.Face
    +op.requestedLayer = 3
    +SetDefaultOperatorOptions(op)
    +AddOperator("OnionPeel")
    +DrawPlots()
    +Test("silo_04")
    +
    +# we just hide the plots to keep camera
    +HideActivePlots()
    +
    +
    +
    +
    +#
    +# Do some os work to create what VisIt will see as a
    +# 'virtual' database of multi-part silo files by
    +# creating appropriately named links
    +#
    +
    +#TODO BROKEN:
    +# Cyrus: I tried to change this, from prev code
    +# b/c symlinks won't work on Windows.
    +#
    +# also silo paths in multipart_multi_ucd3d, don't point to
    +# gorfo files,they won't work out of the data dir
    +# (and we shouldn't be modifying the data dir !)
    +
    +# KSB: Added copy of original file, and removed silo_data_path from
    +# shutil copy so that this will work.
    +# All the copies are made into the run_dir by default, which gets cleaned
    +# up unless --no-cleanup is used.
    +
    +# remove any gorfos
    +for f in glob.glob("gorfo_*"):
    +    os.remove(f)
    +
    +i = 0
    +
    +
    +for filename in glob.glob(silo_data_path("multipart_multi_ucd3d*.silo")):
    +    # copy the original file because the silo files have relatives paths
    +    shutil.copy(filename, os.path.basename(filename))
    +    if filename.endswith("multipart_multi_ucd3d.silo"):
    +        shutil.copy(filename,"gorfo_1000")
    +        shutil.copy(filename,"gorfo_2000")
    +        shutil.copy(filename,"gorfo_3000")
    +    else:
    +        shutil.copy(filename,"gorfo_1000.%d" %i)
    +        shutil.copy(filename,"gorfo_2000.%d" %i)
    +        shutil.copy(filename,"gorfo_3000.%d" %i)
    +    i = i + 1
    +
    +#
    +# Test opening a 'virtual' database of multi-part silo files
    +# at something other than its first timestep
    +#
    +OpenDatabase("gorfo_* database",1)
    +
    +AddPlot("Pseudocolor","d")
    +AddPlot("Mesh", "mesh1")
    +DrawPlots()
    +Test("silo_05")
    +
    +# go to the next frame
    +TimeSliderNextState()
    +Test("silo_06")
    +
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("ucd3d.silo"))
    +
    +AddPlot("Mesh", "exterior_faces")
    +DrawPlots()
    +Test("silo_07")
    +
    +AddOperator("Slice")
    +DrawPlots()
    +Test("silo_08")
    +
    +#
    +# Test something akin to Ale3d's history variables
    +# Note: time state 0 is purposely corrupted with
    +# all empty domains. So we go from 1 to end and
    +# back around to 1 purposely avoiding 0
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("hist_ucd3d_* database"),1)
    +
    +AddPlot("Pseudocolor","d_dup")
    +DrawPlots()
    +
    +#
    +# Build a sil restriction
    +#
    +silr=SILRestriction()
    +for i in silr.Wholes():
    +   if silr.SetName(i) == "mesh1_dup":
    +       silr.TurnOffSet(i+11)
    +       silr.TurnOffSet(i+12)
    +       silr.TurnOffSet(i+22)
    +       silr.TurnOffSet(i+23)
    +SetPlotSILRestriction(silr)
    +Test("silo_09")
    +
    +for i in range(TimeSliderGetNStates()-2):
    +    TimeSliderNextState()
    +    Test("silo_%02d"%(i+10))
    +TimeSliderSetState(1)
    +Test("silo_18")
    +
    +#
    +# Test defvar object
    +#
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +AddPlot("Pseudocolor","sum")
    +DrawPlots()
    +Test("silo_20")
    +
    +DeleteActivePlots()
    +AddPlot("Vector","vec")
    +vec = VectorAttributes()
    +vec.useStride = 1
    +vec.stride = 41
    +vec.colorByMagnitude = 0
    +SetPlotOptions(vec)
    +DrawPlots()
    +Test("silo_21")
    +
    +DeleteActivePlots()
    +AddPlot("Pseudocolor","nmats")
    +DrawPlots()
    +Test("silo_22")
    +
    +#
    +# Test curves from silo
    +#
    +DeleteAllPlots()
    +a=GetAnnotationAttributes()
    +a.axes2D.visible = 1
    +SetAnnotationAttributes(a)
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Curve","line")
    +curveAtts = CurveAttributes()
    +curveAtts.curveColorSource = curveAtts.Custom
    +curveAtts.curveColor = (255, 0, 0, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +Test("silo_23")
    +
    +DeleteActivePlots()
    +AddPlot("Curve","wave")
    +curveAtts.curveColor = (0, 255, 0, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +Test("silo_24")
    +
    +DeleteActivePlots()
    +AddPlot("Curve","log")
    +curveAtts.curveColor = (0, 0, 255, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +Test("silo_25")
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +#
    +# Test objects existing past 2Gig limit in a >2 Gig file
    +# Large File Support. Because file is large, it is NOT
    +# part of the repo. We create a sym-link to it from the
    +# data dir.
    +#
    +
    +(err, dbname) = FindAndOpenDatabase("largefile.silo")
    +if (err != 1):
    +    AddSkipCase("silo_26")
    +    Test("silo_26")
    +else:
    +    AddPlot("Curve","sincurve")
    +    curveAtts.curveColor = (0, 255, 255, 255)
    +    SetPlotOptions(curveAtts)
    +    AddPlot("Curve","coscurve")
    +    curveAtts.curveColor = (255, 0, 255, 255)
    +    SetPlotOptions(curveAtts)
    +    DrawPlots()
    +    Test("silo_26")
    +    DeleteAllPlots()
    +    CloseDatabase(dbname)
    +
    +#
    +# Test time invariant mesh
    +#
    +OpenDatabase(silo_data_path("multi_ucd3d_ti_* database"),2)
    +
    +AddPlot("Pseudocolor","d")
    +DrawPlots()
    +ResetView()
    +v=GetView3D()
    +v.viewNormal=(-0.5, 0.296198, 0.813798)
    +SetView3D(v)
    +silr=SILRestriction()
    +for i in range(1,36,2):
    +    silr.TurnOffSet(i)
    +SetPlotSILRestriction(silr)
    +Test("silo_27")
    +TimeSliderNextState()
    +Test("silo_28")
    +
    +#
    +# Test that multivars that span multimeshes are correctly
    +# invalidated by VisIt
    +#
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multi_ucd3d_ti_* database"))
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor","d_split")
    +DrawPlots()
    +t = GetLastError()
    +TestText("silo_29", t)
    +
    +#
    +# Test that we get correct SIL behavior for a database
    +# with a varying SIL and TreatAllDBsAsTimeVarying turned
    +# on
    +#
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +OpenDatabase(silo_data_path("histne_ucd3d_* database"), 2)
    +
    +AddPlot("Pseudocolor", "d_dup")
    +DrawPlots()
    +Test("silo_30")
    +TimeSliderNextState()
    +Test("silo_31")
    +
    +SetTreatAllDBsAsTimeVarying(1)
    +TimeSliderNextState()
    +Test("silo_32")
    +TimeSliderNextState()
    +Test("silo_33")
    +TimeSliderPreviousState()
    +TimeSliderPreviousState()
    +TimeSliderPreviousState()
    +Test("silo_34")
    +
    +#
    +# Test a database with some odd multi-block structure
    +#
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("histne_ucd3d_* database"))
    +
    +SetTreatAllDBsAsTimeVarying(0)
    +OpenDatabase(data_path("silo_pdb_test_data/odd_multi.silo"))
    +
    +AddPlot("Pseudocolor","cyc_00000/den")
    +DrawPlots()
    +ResetView()
    +Test("silo_35")
    +
    +#
    +# Test a database in which all timesteps are in one file
    +#
    +DeleteAllPlots()
    +CloseDatabase(data_path("silo_pdb_test_data/odd_multi.silo"))
    +
    +if not sys.platform.startswith("win"):
    +    # files listed in the .visit file (eg wave_1file.silo:cycle_xxx)
    +    # are symlinks to wave_1file.silo and symlink access is disallowed
    +    # on the windows testing machine.
    +    OpenDatabase(silo_data_path("wave_1file.visit"))
    +
    +    AddPlot("Mesh","quadmesh")
    +    AddPlot("Pseudocolor","pressure")
    +    DrawPlots()
    +    ResetView()
    +    Test("silo_36")
    +    TimeSliderSetState(23)
    +    Test("silo_37")
    +    TimeSliderNextState()
    +    TimeSliderNextState()
    +    TimeSliderNextState()
    +    Test("silo_38")
    +    TimeSliderPreviousState()
    +    TimeSliderPreviousState()
    +    TimeSliderPreviousState()
    +    TimeSliderPreviousState()
    +    TimeSliderPreviousState()
    +    TimeSliderPreviousState()
    +    Test("silo_39")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("wave_1file.visit"))
    +
    +TestSection("Silo AMR w/Mrgtrees")
    +TurnOffAllAnnotations()
    +OpenDatabase(data_path("silo_amr_test_data/amr2d_wmrgtree.silo"))
    +
    +AddPlot("Mesh","amr_mesh_wmrgtree")
    +DrawPlots()
    +ResetView()
    +v=GetView2D()
    +v.windowCoords = (0.368424, 0.412063, 0.265434, 0.310012)
    +SetView2D(v)
    +Test("silo_40")
    +AddPlot("Pseudocolor","Density_wmrgtree")
    +DrawPlots()
    +Test("silo_41")
    +
    +silr=SILRestriction()
    +s = silr.SetsInCategory("levels")
    +TurnOffSetsByName(silr, "levels", "level2")
    +SetPlotSILRestriction(silr)
    +Test("silo_42")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("silo_amr_test_data/amr2d_wmrgtree.silo"))
    +
    +OpenDatabase(data_path("silo_amr_test_data/amr3d_wmrgtree.silo"))
    +
    +AddPlot("Contour","foo_wmrgtree")
    +ca=ContourAttributes()
    +ca.contourValue = (60,)
    +ca.contourMethod = ca.Value
    +SetPlotOptions(ca)
    +DrawPlots()
    +ResetView()
    +v=GetView3D()
    +v.imagePan = (0.2066, 0.104372)
    +v.imageZoom = 6.03355
    +SetView3D(v)
    +Test("silo_43")
    +
    +silr=SILRestriction()
    +TurnOffSetsByName(silr, "levels", "level2")
    +SetPlotSILRestriction(silr)
    +Test("silo_44")
    +TurnOffSetsByName(silr, "levels", "level1")
    +SetPlotSILRestriction(silr)
    +Test("silo_45")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("silo_amr_test_data/amr2d_wmrgtree.silo"))
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +TestSection("Variables defined on material subsets")
    +sa = SliceAttributes()
    +sa.originType = sa.Percent
    +sa.originPercent = 50
    +sa.axisType = sa.ZAxis
    +testNum = 46
    +for varname in ("p_on_mats_2","d_on_mats_1_3","m1vf_on_mats_1","m2vf_on_mats_2","m3vf_on_mats_3"):
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", varname)
    +    AddOperator("Slice")
    +    SetOperatorOptions(sa)
    +    DrawPlots()
    +    SetViewExtentsType("actual")
    +    ResetView()
    +    Test("silo_%d"%testNum)
    +    testNum = testNum + 1
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +OpenDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +
    +TestSection("Various arbitrary polygonal/polyhedral meshes")
    +
    +ma = MeshAttributes()
    +ma.showInternal = 1
    +for meshname in ("2D/mesh1_zl1","2D/mesh1_zl2","2D/mesh1_phzl","2D/mesh1_phzl2", "2D/mesh1g_zl2"):
    +    DeleteAllPlots()
    +    AddPlot("Mesh", meshname)
    +    SetPlotOptions(ma)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView2D()
    +    v.windowCoords=(-1, 10, -1, 2)
    +    SetView2D(v)
    +    Test("silo_%d"%testNum)
    +    testNum = testNum + 1
    +
    +for meshname in ("2Dz/mesh1_zl1","2Dz/mesh1_zl2","2Dz/mesh1_phzl","2Dz/mesh1_phzl2", "2Dz/mesh1g_zl2"):
    +    DeleteAllPlots()
    +    AddPlot("Mesh", meshname)
    +    DrawPlots()
    +    ResetView()
    +    Test("silo_%d"%testNum)
    +    testNum = testNum + 1
    +
    +ma = MeshAttributes()
    +ma.showInternal = 1
    +ma.opaqueMode = ma.On
    +for meshname in ("3D/mesh1", "3D/mesh2", "3D/mesh2g", "3D/mesh3", "3D/mesh3r"):
    +    DeleteAllPlots()
    +    AddPlot("Mesh", meshname)
    +    SetPlotOptions(ma)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.RotateAxis(1,-30)
    +    v.RotateAxis(0,20)
    +    SetView3D(v)
    +    Test("silo_%d"%testNum)
    +    testNum = testNum + 1
    +
    +for varname in ("2D/n11", "2D/n12", "2D/n12g", "2D/n1phzl", "2D/n1phzl2",
    +                "2D/z11", "2D/z12", "2D/z12g", "2D/z1phzl", "2D/z1phzl2"):
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", varname)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView2D()
    +    v.windowCoords=(-1, 10, -1, 2)
    +    SetView2D(v)
    +    Test("silo_%d"%testNum)
    +    testNum = testNum + 1
    +
    +for varname in ("2Dz/n11", "2Dz/n12", "2Dz/n12g", "2Dz/n1phzl", "2Dz/n1phzl2",
    +                "2Dz/z11", "2Dz/z12", "2Dz/z12g", "2Dz/z1phzl", "2Dz/z1phzl2"):
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", varname)
    +    DrawPlots()
    +    ResetView()
    +    Test("silo_%d"%testNum)
    +    testNum = testNum + 1
    +
    +for varname in ("3D/n1", "3D/n2", "3D/n2g", "3D/n3", "3D/n3r",
    +                "3D/z1", "3D/z2", "3D/z2g", "3D/z3", "3D/z3r"):
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", varname)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.RotateAxis(1,-30)
    +    v.RotateAxis(0,20)
    +    SetView3D(v)
    +    Test("silo_%d"%testNum)
    +    testNum = testNum + 1
    +
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +
    +TestSection("Scalar and Vector ASCII Label Plots")
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +AddPlot("Label", "ascii")
    +DrawPlots()
    +ResetView()
    +v = GetView2D()
    +v.windowCoords = (0.362263, 0.967737, -0.0277375, 0.577737)
    +SetView2D(v)
    +Test("silo_%d"%testNum)
    +testNum = testNum + 1
    +
    +DeleteAllPlots()
    +AddPlot("Label", "asciiw")
    +DrawPlots()
    +ResetView()
    +v = GetView2D()
    +v.windowCoords = (0.362263, 0.967737, -0.0277375, 0.577737)
    +SetView2D(v)
    +Test("silo_%d"%testNum)
    +testNum = testNum + 1
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("rect2d.silo"))
    +
    +TestSection("Curve with polar coordinates")
    +
    +OpenDatabase(silo_data_path("multi_rect2d.silo"))
    +AddPlot("Curve","circle")
    +curveAtts.curveColor = (255, 255, 0, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +ResetView()
    +Test("silo_%d"%testNum)
    +testNum = testNum + 1
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multi_rect2d.silo"))
    +
    +TestSection("ghost_zone/node_labels")
    +
    +OpenDatabase(data_path("silo_ghost_test_data/specmix_quad.pdb"))
    +ResetView()
    +AddPlot("Subset", "Mesh_gnz")
    +AddPlot("Mesh", "Mesh_gnz")
    +DrawPlots()
    +Test("silo_%d"%testNum)
    +testNum = testNum + 1
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("silo_ghost_test_data/specmix_quad.pdb"))
    +
    +OpenDatabase(data_path("silo_ghost_test_data/specmix_ucd.pdb"))
    +ResetView()
    +AddPlot("Subset", "Mesh_gnz")
    +AddPlot("Mesh", "Mesh_gnz")
    +DrawPlots()
    +Test("silo_%d"%testNum)
    +testNum = testNum + 1
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("silo_ghost_test_data/specmix_ucd.pdb"))
    +
    +#
    +# Test the way silo reads in curve data with expressions
    +#
    +OpenDatabase(silo_data_path("multi_rect2d.silo"))
    +DefineCurveExpression("alias","wave")
    +DefineCurveExpression("waveSquared", "wave*wave")
    +ResetView()
    +
    +AddPlot("Curve","wave")
    +curveAtts.curveColor = (255, 135, 0, 255)
    +SetPlotOptions(curveAtts)
    +AddPlot("Curve","waveSquared")
    +curveAtts.curveColor = (255, 0, 135, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +Test("silo_%d"%testNum)
    +testNum = testNum + 1
    +DeleteAllPlots()
    +
    +AddPlot("Curve","alias")
    +curveAtts.curveColor = (168, 168, 168, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +Test("silo_%d"%testNum)
    +testNum = testNum + 1
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multi_rect2d.silo"))
    +
    +def curvilinear_3d_surface():
    +    """Curvilinear (quad) surfaces in 3D"""
    +
    +    OpenDatabase(silo_data_path("quad_disk.silo"))
    +
    +    AddPlot("Pseudocolor","sphElev_on_mesh_3d")
    +    ResetView()
    +    DrawPlots()
    +    v = GetView3D()
    +    v.RotateAxis(0,-20)
    +    v.RotateAxis(1,-30)
    +    SetView3D(v)
    +    TestAutoName()
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor","sphElev_on_meshD_3d")
    +    DrawPlots()
    +    TestAutoName()
    +    DeleteAllPlots()
    +
    +    AddPlot("FilledBoundary", "mat_3d(mesh_3d)")
    +    DrawPlots()
    +    TestAutoName()
    +    DeleteAllPlots()
    +
    +    CloseDatabase(silo_data_path("quad_disk.silo"))
    +    OpenDatabase(silo_data_path("specmix_quad.silo"))
    +
    +    # Index select doesn't work quite right here
    +    AddPlot("Mesh","Mesh_3d")
    +    AddOperator("IndexSelect")
    +    idxsel = IndexSelectAttributes()
    +    idxsel.xMin = 5
    +    idxsel.xMax = 15
    +    SetOperatorOptions(idxsel)
    +    ResetView()
    +    DrawPlots()
    +    TestAutoName()
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor","p3d")
    +    DrawPlots()
    +    TestAutoName()
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor","u3d")
    +    DrawPlots()
    +    TestAutoName()
    +    DeleteAllPlots()
    +
    +    AddPlot("FilledBoundary", "Material_3d(Mesh_3d)")
    +    DrawPlots()
    +    TestAutoName()
    +    DeleteAllPlots()
    +
    +    CloseDatabase(silo_data_path("specmix_quad.silo"))
    +
    +curvilinear_3d_surface()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_singlemulti.html b/2024-12-12-22:00/poodle_trunk_serial/databases_singlemulti.html new file mode 100644 index 000000000..2dda39912 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_singlemulti.html @@ -0,0 +1,76 @@ + +Results for databases/singlemulti.py + +

    Results of VisIt Regression Test - databases/singlemulti

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    singlemulti000.000.00
    singlemulti010 modifications totalling 0 lines
    singlemulti020.000.00
    singlemulti030 modifications totalling 0 lines
    singlemulti040.000.00
    singlemulti050 modifications totalling 0 lines
    singlemulti060.000.00
    singlemulti070 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_singlemulti_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_singlemulti_py.html new file mode 100644 index 000000000..49207472e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_singlemulti_py.html @@ -0,0 +1,116 @@ +databases/singlemulti.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  singlemulti.py
    +#
    +#  Tests:      mesh      - 3D, curvilinear, single domain
    +#              plots     - Pseudocolor
    +#              databases - Silo
    +#
    +#  Purpose:    This test case tests the ability of VisIt to have single
    +#              time state files in the same window as multi time state
    +#              windows and do the right thing when changing time states.
    +#
    +#  Bugs:       '4011
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Mar 18 13:45:29 PST 2004
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to switch between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Look at the first few lines of the string representation of the
    +# WindowInformation to see the list of time sliders, etc.
    +#
    +def TestWindowInformation(testname):
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 5 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    for i in range(5):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    TestText(testname, s)
    +
    +# Create a Pseudocolor plot of wave by opening it up at a late time state.
    +OpenDatabase(silo_data_path("wave*.silo database"), 20)
    +
    +AddPlot("Pseudocolor", "pressure")
    +DrawPlots()
    +
    +# Set the view.
    +v0 = View3DAttributes()
    +v0.viewNormal = (-0.661743, 0.517608, 0.542382)
    +v0.focus = (5, 0.757692, 2.5)
    +v0.viewUp = (0.370798, 0.854716, -0.363277)
    +v0.viewAngle = 30
    +v0.parallelScale = 5.63924
    +v0.nearPlane = -11.2785
    +v0.farPlane = 11.2785
    +v0.imagePan = (0.00100868, 0.0454815)
    +v0.imageZoom = 1.17935
    +v0.perspective = 1
    +SetView3D(v0)
    +Test("singlemulti00")
    +
    +# Convert the WindowInformation to a string and use that as a test case.
    +# The WindowInformation contains the list of time sliders, the active time
    +# state, and the states for each time slider.
    +TestWindowInformation("singlemulti01")
    +
    +# Create a Pseudocolor plot of curv3d, a single time state database.
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Transform")
    +t = TransformAttributes()
    +t.doScale = 1
    +t.scaleX = 0.5
    +t.scaleY = 0.5
    +t.scaleZ = 0.1667
    +t.doTranslate = 1
    +t.translateX = 5
    +t.translateY = 0
    +t.translateZ = -5
    +SetOperatorOptions(t)
    +DrawPlots()
    +
    +# Set the view again
    +v1 = View3DAttributes()
    +v1.viewNormal = (-0.661743, 0.517608, 0.542382)
    +v1.focus = (5, 1.25, 0)
    +v1.viewUp = (0.370798, 0.854716, -0.363277)
    +v1.viewAngle = 30
    +v1.parallelScale = 7.1807
    +v1.nearPlane = -14.3614
    +v1.farPlane = 14.3614
    +v1.imagePan = (0.00100868, 0.0454815)
    +v1.imageZoom = 1.17935
    +v1.perspective = 1
    +SetView3D(v1)
    +Test("singlemulti02")
    +
    +# Make sure there is still just one time slider.
    +TestWindowInformation("singlemulti03")
    +
    +# Go to the middle time slider state.
    +# Note: this div in python 2 returns int, but returns float in py3
    +SetTimeSliderState(int(TimeSliderGetNStates() / 2))
    +Test("singlemulti04")
    +# Check the time states
    +TestWindowInformation("singlemulti05")
    +
    +# Go to the last time slider state.
    +SetTimeSliderState(TimeSliderGetNStates() - 1)
    +Test("singlemulti06")
    +# Check the time states
    +TestWindowInformation("singlemulti07")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_sw4.html b/2024-12-12-22:00/poodle_trunk_serial/databases_sw4.html new file mode 100644 index 000000000..5cd110185 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_sw4.html @@ -0,0 +1,48 @@ + +Results for databases/sw4.py + +

    Results of VisIt Regression Test - databases/sw4

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    sw4_000.000.00
    sw4_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_sw4_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_sw4_py.html new file mode 100644 index 000000000..5644d0567 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_sw4_py.html @@ -0,0 +1,50 @@ +databases/sw4.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  SW4.py
    +#
    +#  Tests:      mesh      - 3D curvilinear, multi domain
    +#                        - 3D rectilinear, single domain
    +#              plots     - Pseudocolor
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       Tue Jul 21 11:15:20 PDT 2020
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create a plot from a 3Dimg file.
    +OpenDatabase(data_path("sw4_test_data/berk.cycle=0000.p.3Dimg"))
    +AddPlot("Pseudocolor", "cp")
    +DrawPlots()
    +
    +# Set the view
    +v = View3DAttributes()
    +v.viewNormal = (-0.555957, 0.661021, -0.503948)
    +v.focus = (6000, 6000, 2220.93)
    +v.viewUp = (0.540018, -0.173664, -0.823542)
    +v.viewAngle = 30
    +v.parallelScale = 8928.79
    +v.nearPlane = -17857.6
    +v.farPlane = 17857.6
    +v.imagePan = (0., 0.)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +SetView3D(v)
    +
    +Test("sw4_00")
    +
    +# Create a plot from a sw4img file.
    +DeleteAllPlots()
    +CloseDatabase(data_path("sw4_test_data/berk.cycle=0000.p.3Dimg"))
    +
    +OpenDatabase(data_path("sw4_test_data/berk.cycle=0000.z=0.topo.sw4img"))
    +AddPlot("Pseudocolor", "topo")
    +DrawPlots()
    +
    +Test("sw4_01")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_tecplot.html b/2024-12-12-22:00/poodle_trunk_serial/databases_tecplot.html new file mode 100644 index 000000000..c51db74d9 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_tecplot.html @@ -0,0 +1,192 @@ + +Results for databases/tecplot.py + +

    Results of VisIt Regression Test - databases/tecplot

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    tecplot_010.000.00
    tecplot_020.000.00
    tecplot_030.000.00
    tecplot_040.000.00
    tecplot_050.000.00
    tecplot_060.000.00
    tecplot_080.000.00
    tecplot_090.000.00
    tecplot_100.000.00
    tecplot_110.000.00
    tecplot_120.000.00
    tecplot_130.000.00
    tecplot_140.000.00
    tecplot_150.000.00
    tecplot_160.000.00
    tecplot_170.000.00
    tecplot_180.000.00
    tecplot_190.000.00
    tecplot_200.000.00
    tecplot_210.000.00
    tecplot_220.000.00
    tecplot_230.000.00
    tecplot_240.000.00
    tecplot_250.000.00
    tecplot_260.000.00
    tecplot_270.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_tecplot_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_tecplot_py.html new file mode 100644 index 000000000..dd2e169c5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_tecplot_py.html @@ -0,0 +1,323 @@ +databases/tecplot.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  tecplot.py
    +#
    +#  Tests:      TecPlot files
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       November 17, 2004
    +#
    +#  Modifications:
    +#    Hank Childs, Wed Feb 16 07:34:07 PST 2005
    +#    Rename variables that have unsupported characters.
    +#
    +#    Brad Whitlock, Thu Mar 31 17:12:06 PST 2005
    +#    Changed the data directory to ../data/tecplot_test_data/tecplot_test_data,
    +#    which is now created from a bzipped tar file.
    +#
    +#    Brad Whitlock, Tue Jul 26 16:27:57 PST 2005
    +#    I added a test that has 2D data with a vector expression.
    +#
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +#    Jeremy Meredith, Mon Jul  7 14:20:12 EDT 2008
    +#    The tecplot reader now successfully parses x/y/z coordinate variables
    +#    from the simpscat.tec file, so I changed the plot to be a pseudocolor
    +#    plot instead of a curve plot.
    +#
    +#    Hank Childs, Sat Mar 13 11:13:26 PST 2010
    +#    Change variable names for forbidden characters.
    +#
    +#    Jeremy Meredith, Fri May 20 09:37:14 EDT 2011
    +#    Change subset mesh variable name since files have more than one mesh now.
    +#
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#    individually to match current baseline results.
    +#
    +#    Kathleen Biagas, Mon Jul 17 10:59:26 PDT 2023
    +#    Change two_triangles_node_and_cell extension from 'plt' to 'tec'.
    +#    Second triangle's point ids were invalid, so data was regenerted by
    +#    exporting to VTK, fixing the ordering, and re-exporting back to tecplot.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def SetTheView():
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal =  (-0.553771, 0.509362, 0.658702)
    +    SetView3D(v)
    +
    +# Databases
    +OpenDatabase(data_path("tecplot_test_data/2dfed.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","P")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_01")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/3dgeom.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Subset","Zones(mesh)")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_02")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/T3L3CLS17u.plt"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","U")
    +DrawPlots()
    +ResetView()
    +v=GetView2D()
    +v.windowCoords=(-.01,.03,-.02,.02)
    +SetView2D(v)
    +Test("tecplot_03")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/channel.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","U")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_04")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/crystal_plot.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","t")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_05")
    +DeleteAllPlots();
    +CloseDatabase(data_path("tecplot_test_data/crystal_plot.tec"))
    +
    +
    +OpenDatabase(data_path("tecplot_test_data/cube.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","R")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_06")
    +DeleteAllPlots();
    +
    +# We must skip this one, as it has column-major
    +# ordering instead of row-major, and we are
    +# expecting row-major.  There is nothing in the
    +# tecplot file format to specify which type it is,
    +# so this must wait until we have options for
    +# the database plugins.  See '2440.
    +##OpenDatabase(data_path("tecplot_test_data/cylindrical.tec"))
    +
    +#AddPlot("Mesh","mesh")
    +#DrawPlots()
    +#SetTheView()
    +#Test("tecplot_07")
    +#DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/febrfeb.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","Temperature")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_08")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/febrfep.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","Temperature")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_09")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/fetebk.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","C")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_10")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/fetetpt.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","C")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_11")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/flow5.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","V")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_12")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/human.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","R")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_13")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/movie.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Subset","Zones(mesh)")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_14")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/multzn2d.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","Temp")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_15")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/order1.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","psi")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_16")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/sample.tp"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Volume","X Velocity")
    +v=VolumeAttributes()
    +SetPlotOptions(v)
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_17")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/simp3dbk.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","Density")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_18")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/simp3dpt.tec"))
    +
    +AddPlot("Mesh","mesh")
    +AddPlot("Pseudocolor","Density")
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_19")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/simpscat.tec"))
    +
    +AddPlot("Pseudocolor","T_lb_K_rb_")
    +p = PseudocolorAttributes()
    +p.pointSizePixels = 6
    +SetPlotOptions(p)
    +AddOperator("Threshold")
    +t = ThresholdAttributes()
    +t.outputMeshType = 1
    +SetOperatorOptions(t)
    +DrawPlots()
    +ResetView()
    +Test("tecplot_20")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/simpxy.tec"))
    +
    +AddPlot("Curve","Temperature vs/Distance")
    +curveAtts = CurveAttributes()
    +curveAtts.curveColorSource = curveAtts.Custom
    +curveAtts.curveColor = (255, 0, 0, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_21")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/simpxy2.tec"))
    +
    +AddPlot("Curve","Only Zone/Temperature vs/Distance")
    +curveAtts.curveColor = (0, 255, 0, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +SetTheView()
    +Test("tecplot_22")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/symmetricFlow.plt"))
    +
    +AddPlot("Pseudocolor","VELOCITY")
    +DrawPlots()
    +ResetView()
    +Test("tecplot_23")
    +DeleteAllPlots();
    +AddPlot("Vector", "VEL")
    +v = VectorAttributes()
    +v.useStride = 1
    +SetPlotOptions(v)
    +DrawPlots()
    +v = View2DAttributes()
    +v.windowCoords = (53.9908, 74.1434, 66.5995, 88.2732)
    +v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +v.fullFrameAutoThreshold = 100
    +SetView2D(v)
    +Test("tecplot_24")
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("tecplot_test_data/pointmesh.tec"))
    +
    +AddPlot("Mesh","mesh")
    +ResetView()
    +DrawPlots()
    +Test("tecplot_25")
    +DeleteAllPlots()
    +
    +DeleteAllPlots();
    +CloseDatabase(data_path("tecplot_test_data/pointmesh.tec"))
    +
    +# ascii file containing both node and cell data in block format
    +OpenDatabase(data_path("tecplot_test_data/two_triangles_node_and_cell.tec"))
    +
    +AddPlot("Pseudocolor","nodal_field")
    +ResetView()
    +DrawPlots()
    +Test("tecplot_26")
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor","cell_field")
    +ResetView()
    +DrawPlots()
    +Test("tecplot_27")
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_timesliders.html b/2024-12-12-22:00/poodle_trunk_serial/databases_timesliders.html new file mode 100644 index 000000000..117305f84 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_timesliders.html @@ -0,0 +1,256 @@ + +Results for databases/timesliders.py + +

    Results of VisIt Regression Test - databases/timesliders

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Set time using different time sliders
    timesliders000.000.00
    timesliders010 modifications totalling 0 lines
    timesliders020.000.00
    timesliders030 modifications totalling 0 lines
    timesliders040.000.00
    timesliders050 modifications totalling 0 lines
    timesliders060 modifications totalling 0 lines
    timesliders070.000.00
    timesliders080 modifications totalling 0 lines
    Time slider behavior with a correlation
    timesliders090.000.00
    timesliders100 modifications totalling 0 lines
    timesliders110.000.00
    timesliders120 modifications totalling 0 lines
    timesliders130.000.00
    timesliders140 modifications totalling 0 lines
    timesliders150.000.00
    timesliders160 modifications totalling 0 lines
    timesliders170.000.00
    timesliders180 modifications totalling 0 lines
    Make sure cloned window gets time sliders
    timesliders190.000.00
    timesliders200 modifications totalling 0 lines
    timesliders210.000.00
    timesliders220 modifications totalling 0 lines
    Make sure opening ST database clears time slider list
    timesliders230 modifications totalling 0 lines
    timesliders240.000.00
    timesliders250 modifications totalling 0 lines
    Make sure replace sequences give right time sliders
    timesliders260.000.00
    timesliders270 modifications totalling 0 lines
    timesliders280.000.00
    timesliders290 modifications totalling 0 lines
    timesliders300.000.00
    timesliders310 modifications totalling 0 lines
    timesliders320.000.00
    timesliders330 modifications totalling 0 lines
    timesliders340.000.00
    timesliders350 modifications totalling 0 lines
    Make sure we get the right time sliders after deleting plots.
    timesliders360.000.00
    timesliders370 modifications totalling 0 lines
    timesliders380.000.00
    timesliders390 modifications totalling 0 lines
    timesliders400 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_timesliders_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_timesliders_py.html new file mode 100644 index 000000000..f23172aa1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_timesliders_py.html @@ -0,0 +1,247 @@ +databases/timesliders.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  timesliders.py
    +#
    +#  Tests:      mesh      - 2D, curvilinear, single domain
    +#              plots     - FilledBoundary
    +#              databases - PDB
    +#
    +#  Purpose:    This test case tests out using multiple time sliders.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Mar 19 11:45:12 PDT 2004
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Mar 31 10:34:27 PDT 2004
    +#    I changed the calls to SetActiveTimeSlider so they can accept the
    +#    unexpanded database names instead of requiring fully qualified
    +#    database names.
    +#
    +#    Brad Whitlock, Mon Apr 19 09:20:29 PDT 2004
    +#    I added a few more tests to make sure we get the desired list of time
    +#    sliders under more conditions.
    +#
    +#    Brad Whitlock, Wed Feb 9 11:10:29 PDT 2005
    +#    I added another test section to make sure that we get the right time
    +#    sliders (or lack of) after deleting plots.
    +# 
    +#    Brad Whitlock, Thu Dec 21 11:57:52 PDT 2006
    +#    Added code to make sure that the dictionary keys in one of the tests
    +#    are always sorted.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to switch between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Look at the first few lines of the string representation of the
    +# WindowInformation to see the list of time sliders, etc.
    +#
    +def TestWindowInformation(testname):
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 5 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    for i in range(5):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    TestText(testname, s)
    +
    +def SetTheView():
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.735926, 0.562657, 0.376604)
    +    v0.focus = (5, 0.753448, 2.5)
    +    v0.viewUp = (0.454745, 0.822858, -0.340752)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 5.6398
    +    v0.nearPlane = -11.2796
    +    v0.farPlane = 11.2796
    +    v0.imagePan = (0.0589778, 0.0898255)
    +    v0.imageZoom = 1.32552
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    SetView3D(v0)
    +
    +# Print the dictionary so its keys are always sorted a particular way.
    +def PrintDict(dict):
    +    keys = list(dict.keys())
    +    keys.sort()
    +    s = "{"
    +    i = 0
    +    for k in keys:
    +        if type(k) == type(str("")):
    +            kstr = "'" + str(k) + "'"
    +        else:
    +            kstr = str(k)
    +        s = s + kstr + ": " + str(dict[k])
    +        if i < len(keys)-1:
    +            s = s + ", "
    +        i = i + 1
    +    s = s + "}"
    +    return s
    +
    +# The plotted databases.
    +dbs = (data_path("pdb_test_data/dbA00.pdb"),
    +       data_path("pdb_test_data/dbB00.pdb"),
    +       data_path("pdb_test_data/dbC00.pdb"))
    +
    +# Create a plot from one database
    +TestSection("Set time using different time sliders")
    +OpenDatabase(dbs[0])
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +Test("timesliders00")
    +TestWindowInformation("timesliders01")
    +
    +# Create a plot from another database
    +OpenDatabase(dbs[1])
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +Test("timesliders02")
    +TestWindowInformation("timesliders03")
    +
    +# Change the time state for the second time slider.
    +# note: py3 div creates float
    +SetTimeSliderState(int(TimeSliderGetNStates() / 2))
    +Test("timesliders04")
    +TestWindowInformation("timesliders05")
    +
    +# Make sure that GetTimeSliders returned the right dictionary.
    +testString = "GetTimeSliders returned:\n %s" % PrintDict(GetTimeSliders())
    +TestText("timesliders06", testString)
    +
    +# Set the time slider back to the first time slider.
    +SetActiveTimeSlider(dbs[0])
    +
    +# Set the time state for the first time slider.
    +SetTimeSliderState(7)
    +Test("timesliders07")
    +TestWindowInformation("timesliders08")
    +
    +# Create a database correlation for the first two databases. This correlation
    +# will be an IndexForIndex correlation since we passed 0 for the correlation
    +# method.
    +TestSection("Time slider behavior with a correlation")
    +correlation1 = "A_and_B"
    +CreateDatabaseCorrelation(correlation1, dbs[:-1], 0)
    +SetActiveTimeSlider(correlation1)
    +Test("timesliders09")
    +TestWindowInformation("timesliders10")
    +
    +# Set the time state for the active time slider since it is now the A_and_B
    +# database correlation.
    +SetTimeSliderState(0)
    +Test("timesliders11")
    +TestWindowInformation("timesliders12")
    +
    +SetTimeSliderState(5)
    +Test("timesliders13")
    +TestWindowInformation("timesliders14")
    +
    +SetTimeSliderState(19)
    +Test("timesliders15")
    +TestWindowInformation("timesliders16")
    +
    +# Set the time slider to B. Only B should change.
    +SetActiveTimeSlider(dbs[1])
    +SetTimeSliderState(5)
    +Test("timesliders17")
    +TestWindowInformation("timesliders18")
    +
    +# Add a new window and make sure that the time sliders are copied to it.
    +TestSection("Make sure cloned window gets time sliders")
    +CloneWindow()
    +SetActiveWindow(2)
    +DrawPlots()
    +Test("timesliders19")
    +TestWindowInformation("timesliders20")
    +
    +SetTimeSliderState(19)
    +Test("timesliders21")
    +TestWindowInformation("timesliders22")
    +DeleteWindow()
    +
    +# Make sure switching between different databases give the right time sliders.
    +TestSection("Make sure opening ST database clears time slider list")
    +DeleteAllPlots()
    +OpenDatabase(dbs[0])
    +SetTimeSliderState(0)
    +TestWindowInformation("timesliders23")
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +ResetView()
    +Test("timesliders24")
    +TestWindowInformation("timesliders25")
    +
    +# Make sure doing various replace sequences give the right time sliders.
    +TestSection("Make sure replace sequences give right time sliders")
    +DeleteAllPlots()
    +OpenDatabase(dbs[0])
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +Test("timesliders26")
    +TestWindowInformation("timesliders27")
    +ReplaceDatabase(dbs[1])
    +Test("timesliders28")
    +TestWindowInformation("timesliders29")
    +ReplaceDatabase(dbs[0])
    +Test("timesliders30")
    +# There should only be 1 time slider at this point.
    +TestWindowInformation("timesliders31")
    +
    +# Make sure that when we replace an MT database with an ST database, we get
    +# the right time sliders.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("wave*.silo database"), 30)
    +
    +AddPlot("Pseudocolor", "pressure")
    +DrawPlots()
    +SetTheView()
    +Test("timesliders32")
    +TestWindowInformation("timesliders33")
    +# Replace with an ST database
    +ReplaceDatabase(silo_data_path("wave0000.silo"))
    +Test("timesliders34")
    +TestWindowInformation("timesliders35")
    +
    +# Make sure that we get the right time sliders after we delete plots.
    +TestSection("Make sure we get the right time sliders after deleting plots.")
    +DeleteAllPlots()
    +# Close all the sources so we get fresh time sliders.
    +for source in GetGlobalAttributes().sources:
    +    CloseDatabase(source)
    +
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +AddPlot("Pseudocolor", "pressure")
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +AddPlot("Pseudocolor", "p")
    +DrawPlots()
    +
    +ResetView()
    +v = GetView3D()
    +v.viewNormal = (0.163324, 0.442866, 0.881586)
    +v.viewUp = (-0.0889191, 0.896556, -0.433913)
    +v.parallelScale = 16.9558
    +v.imagePan = (0.0834786, 0.0495278)
    +v.imageZoom = 1.53171
    +SetView3D(v)
    +
    +Test("timesliders36")
    +TestWindowInformation("timesliders37")
    +SetActivePlots(0)
    +DeleteActivePlots()
    +Test("timesliders38")
    +TestWindowInformation("timesliders39")
    +DeleteActivePlots()
    +TestWindowInformation("timesliders40")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_uintah.html b/2024-12-12-22:00/poodle_trunk_serial/databases_uintah.html new file mode 100644 index 000000000..f2499ad18 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_uintah.html @@ -0,0 +1,79 @@ + +Results for databases/uintah.py + +

    Results of VisIt Regression Test - databases/uintah

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Particle data
    Particle_000.000.00
    Particle_010.000.00
    Particle_020.000.00
    Particle_030.000.00
    Particle_040.000.00
    Particle_050.000.00
    Particle ID
     281474976710656.0 .eq. 281474976710656.0 (prec=0) : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_uintah_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_uintah_py.html new file mode 100644 index 000000000..b58db2a91 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_uintah_py.html @@ -0,0 +1,66 @@ +databases/uintah.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  uintah.py
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       Tue Jan  4 13:05:47 PST 2022
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("Uintah")
    +
    +def test_particle():
    +    TestSection("Particle data")
    +    OpenDatabase(pjoin(data_path("uintah_test_data"), "index.xml"))
    +    AddPlot("Pseudocolor", "p.particleID/*")
    +    pc = PseudocolorAttributes()
    +    pc.pointType = pc.Point
    +    pc.pointSizePixels = 40
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (0, -1, 0)
    +    v.focus = (0.01, 0.01, 0.015)
    +    v.viewUp = (0, 0, 1)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.0206155
    +    v.nearPlane = -0.0412311
    +    v.farPlane = 0.0412311
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 0
    +    SetView3D(v)
    +    Test("Particle_00")
    +
    +    ChangeActivePlotsVar("p.particleID/0")
    +    Test("Particle_01")
    +
    +    ChangeActivePlotsVar("p.particleID/1")
    +    Test("Particle_02")
    +
    +    ChangeActivePlotsVar("p.mass/*")
    +    Test("Particle_03")
    +
    +    ChangeActivePlotsVar("p.mass/0")
    +    Test("Particle_04")
    +
    +    ChangeActivePlotsVar("p.mass/1")
    +    Test("Particle_05")
    +
    +    PickAtts = GetPickAttributes()
    +    PickAtts.variables = ("p.particleID/*")
    +    SetPickAttributes(PickAtts)
    +    SetQueryOutputToObject()
    +    p = NodePick(0, 0)
    +    id = p['p.particleID/*']
    +    TestValueEQ("Particle ID", id, 281474976710656., 0)
    +
    +def main():
    +    test_particle()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_unv.html b/2024-12-12-22:00/poodle_trunk_serial/databases_unv.html new file mode 100644 index 000000000..ce2bd6531 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_unv.html @@ -0,0 +1,78 @@ + +Results for databases/unv.py + +

    Results of VisIt Regression Test - databases/unv

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    unv_010.000.00
    unv_020.000.00
    unv_030.000.00
    unv_040.000.00
    unv_050.000.00
    unv_060.000.00
    unv_070.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_unv_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_unv_py.html new file mode 100644 index 000000000..15cd80b3d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_unv_py.html @@ -0,0 +1,206 @@ +databases/unv.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Tests:      smoke check of unv file reader.
    +#
    +#  Programmer: Olivier Cessenat
    +#  Date: Thu Oct 11 08:42:44 PDT 2012
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Fri Sep 23 15:08:38 PDT 2022
    +#    Remove use of obsolete FilledBoundaryAttributes fields: boundaryType
    +#    and filledFlag.
    +#
    +# ----------------------------------------------------------------------------
    +
    +datapath = data_path("unv_test_data")
    +
    +OpenDatabase(pjoin(datapath, "small_sur.unv"))
    +AddPlot("FilledBoundary", "boundaries(freemesh)")
    +# Begin spontaneous state
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.446545, 0.0881432, 0.890409)
    +View3DAtts.focus = (0, 0, 2.5)
    +View3DAtts.viewUp = (-0.122457, 0.991793, -0.0367666)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 3.4641
    +View3DAtts.nearPlane = -6.9282
    +View3DAtts.farPlane = 6.9282
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (0, 0, 2.5)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +SetView3D(View3DAtts)
    +DrawPlots()
    +Test("unv_01")
    +DeleteAllPlots()
    +CloseDatabase(pjoin(datapath,"small_sur.unv"))
    +
    +OpenDatabase(pjoin(datapath,"small_mix.unv"))
    +AddPlot("FilledBoundary", "surfmats(surfmesh)")
    +AddPlot("Mesh", "surfmesh", 1, 0)
    +DrawPlots()
    +Test("unv_02")
    +DeleteAllPlots()
    +CloseDatabase(pjoin(datapath,"small_mix.unv"))
    +
    +OpenDatabase(pjoin(datapath,"small_vol_pri_bor.unv"),0)
    +AddPlot("FilledBoundary", "boundaries(freemesh)")
    +AddPlot("Mesh", "freemesh")
    +DrawPlots()
    +Test("unv_03")
    +DeleteAllPlots()
    +CloseDatabase(pjoin(datapath,"small_vol_pri_bor.unv"))
    +
    +OpenDatabase(pjoin(datapath,"small_vol_tet_bor.unv"),0)
    +AddPlot("FilledBoundary", "boundaries(freemesh)")
    +AddPlot("Mesh", "facemesh")
    +DrawPlots()
    +Test("unv_04")
    +DeleteAllPlots()
    +CloseDatabase(pjoin(datapath,"small_vol_tet_bor.unv"))
    +
    +OpenDatabase(pjoin(datapath,"small_vol_pyr_bor.unv"), 0)
    +AddPlot("FilledBoundary", "load_sets(facemesh)")
    +AddPlot("Mesh", "facemesh")
    +AddPlot("Mesh", "mesh")
    +SetActivePlots(2)
    +AddOperator("ThreeSlice", 0)
    +SetActivePlots(2)
    +ThreeSliceAtts = ThreeSliceAttributes()
    +ThreeSliceAtts.x = 0.1
    +ThreeSliceAtts.y = 0.2
    +ThreeSliceAtts.z = 0.24
    +ThreeSliceAtts.interactive = 1
    +SetOperatorOptions(ThreeSliceAtts, 0)
    +SetActivePlots(0)
    +FilledBoundaryAtts = FilledBoundaryAttributes()
    +FilledBoundaryAtts.colorType = FilledBoundaryAtts.ColorByMultipleColors
    +FilledBoundaryAtts.colorTableName = "Default"
    +FilledBoundaryAtts.invertColorTable = 0
    +FilledBoundaryAtts.legendFlag = 1
    +FilledBoundaryAtts.lineWidth = 0
    +FilledBoundaryAtts.singleColor = (0, 0, 0, 255)
    +FilledBoundaryAtts.SetMultiColor(0, (255, 0, 0, 255))
    +FilledBoundaryAtts.SetMultiColor(1, (0, 255, 0, 255))
    +FilledBoundaryAtts.opacity = 0.258824
    +FilledBoundaryAtts.wireframe = 0
    +FilledBoundaryAtts.drawInternal = 0
    +FilledBoundaryAtts.smoothingLevel = 0
    +FilledBoundaryAtts.cleanZonesOnly = 0
    +FilledBoundaryAtts.mixedColor = (255, 255, 255, 255)
    +FilledBoundaryAtts.pointSize = 0.05
    +FilledBoundaryAtts.pointType = FilledBoundaryAtts.Point
    +FilledBoundaryAtts.pointSizeVarEnabled = 0
    +FilledBoundaryAtts.pointSizeVar = "default"
    +FilledBoundaryAtts.pointSizePixels = 2
    +SetPlotOptions(FilledBoundaryAtts)
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.440531, 0.546377, 0.712323)
    +View3DAtts.focus = (0, 0, 2.5)
    +View3DAtts.viewUp = (-0.429096, 0.825111, -0.367517)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 3.4641
    +View3DAtts.nearPlane = -6.9282
    +View3DAtts.farPlane = 6.9282
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (0, 0, 2.5)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +SetView3D(View3DAtts)
    +DrawPlots()
    +Test("unv_05")
    +
    +DeleteAllPlots()
    +CloseDatabase(pjoin(datapath,"small_vol_pyr_bor.unv"))
    +OpenDatabase(pjoin(datapath, "small_sur.unv"))
    +
    +AddPlot("Vector", "normals2d", 1, 1)
    +DrawPlots()
    +# Begin spontaneous state
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.554906, -0.684409, 0.472931)
    +View3DAtts.focus = (0, 0, 2.5)
    +View3DAtts.viewUp = (-0.448111, 0.233062, 0.863063)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 3.4641
    +View3DAtts.nearPlane = -6.9282
    +View3DAtts.farPlane = 6.9282
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (0, 0, 2.5)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +View3DAtts.windowValid = 1
    +SetView3D(View3DAtts)
    +# End spontaneous state
    +
    +SaveWindowAtts = SaveWindowAttributes()
    +SaveWindowAtts.outputToCurrentDirectory = 1
    +SaveWindowAtts.outputDirectory = "."
    +SaveWindowAtts.fileName = "small_sur_normals2d"
    +SaveWindowAtts.family = 1
    +SaveWindowAtts.format = SaveWindowAtts.PNG  # BMP, CURVE, JPEG, OBJ, PNG, POSTSCRIPT, POVRAY, PPM, RGB, STL, TIFF, ULTRA, VTK, PLY
    +SaveWindowAtts.width = 1024
    +SaveWindowAtts.height = 1024
    +SaveWindowAtts.screenCapture = 0
    +SaveWindowAtts.saveTiled = 0
    +SaveWindowAtts.quality = 80
    +SaveWindowAtts.progressive = 0
    +SaveWindowAtts.binary = 0
    +SaveWindowAtts.stereo = 0
    +SaveWindowAtts.compression = SaveWindowAtts.PackBits  # None, PackBits, Jpeg, Deflate
    +SaveWindowAtts.forceMerge = 0
    +SaveWindowAtts.resConstraint = SaveWindowAtts.ScreenProportions  # NoConstraint, EqualWidthHeight, ScreenProportions
    +SaveWindowAtts.advancedMultiWindowSave = 0
    +SetSaveWindowAttributes(SaveWindowAtts)
    +SaveWindow()
    +Test("unv_06", SaveWindowAtts)
    +
    +DeleteAllPlots()
    +CloseDatabase(pjoin(datapath, "small_sur.unv"))
    +
    +OpenDatabase(pjoin(datapath, "poly.msh"))
    +
    +AddPlot("Mesh", "mesh", 1, 1)
    +MeshAtts = MeshAttributes()
    +MeshAtts.legendFlag = 1
    +MeshAtts.lineWidth = 3
    +MeshAtts.meshColor = (0, 0, 255, 255)
    +MeshAtts.meshColorSource = MeshAtts.MeshCustom  # Foreground, MeshCustom, MeshRandom
    +SetPlotOptions(MeshAtts)
    +
    +AddPlot("Mesh", "freemesh", 1, 1)
    +MeshAtts = MeshAttributes()
    +MeshAtts.legendFlag = 1
    +MeshAtts.lineWidth = 2
    +MeshAtts.meshColor = (255, 0, 0, 255)
    +MeshAtts.meshColorSource = MeshAtts.MeshCustom  # Foreground, MeshCustom, MeshRandom
    +SetPlotOptions(MeshAtts)
    +
    +AddPlot("Vector", "free_normals", 1, 1)
    +AddPlot("Vector", "normals2d", 1, 1)
    +
    +DrawPlots()
    +ResetView()
    +SaveWindowAtts = SaveWindowAttributes()
    +SaveWindowAtts.width = 1024
    +SaveWindowAtts.height = 1024
    +Test("unv_07", SaveWindowAtts)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_vtk.html b/2024-12-12-22:00/poodle_trunk_serial/databases_vtk.html new file mode 100644 index 000000000..9035fbabd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_vtk.html @@ -0,0 +1,443 @@ + +Results for databases/vtk.py + +

    Results of VisIt Regression Test - databases/vtk

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Materials in VTK
    vtk_010.000.00
    vtk_020.000.00
    vtk_030.000.00
    VTK XML-style data files
    vtk_040.000.00
    vtk_050.000.00
    vtk_060.000.00
    vtk_070.000.00
    vtk_080.000.00
    vtk_090.000.00
    vtk_100.000.00
    vtk_110.000.00
    vtk_120.000.00
    vtk_130.000.00
    vtk_140.000.00
    vtk_150.000.00
    vtk_160.000.00
    vtk_170.000.00
    vtk_180.000.00
    vtk_190.000.00
    vtk_200.000.00
    vtk_210.000.00
    vtk_220.000.00
    vtk_230.000.00
    vtk_240.000.00
    vtk_250.000.00
    vtk_260.000.00
    vtk_270.000.00
    Quadratic triangles in VTK
    vtk_280.000.00
    vtk_290.000.00
    !NBLOCKS in a .visit file
    vtk_300.000.00
    vtk_310.000.00
    vtk_320.000.00
    vtk_330 modifications totalling 0 lines
    PVTU files
    vtk_340.000.00
    vtk_34a0.000.00
    PVTI files
    vtk_350.000.00
    2D Unstructured grids with lines
    vtk_360.000.00
    VTM files
    vtk_370.000.00
    vtk_380.000.00
    vtk_390.000.00
    vtk_400 modifications totalling 0 lines
    PVTK files
    vtk_410.000.00
    vtk_420.000.00
    VTK ghost types
    vtk_430.000.00
    vtk_440.000.00
    vtk_450.000.00
    Database Expressions in VTK
    vtk_460.000.00
    PVD, single pvti file, no time, no groups
    vtk_pvd_010.000.00
    PVD, multiple vtr files, single time, no groups
    vtk_pvd_020.000.00
    PVD, multiple pvtr files, multiple times, no groups
    vtk_pvd_030.000.00
    vtk_pvd_040.000.00
    PVD, multiple vtr files, multiple times, groups
    vtk_pvd_050.000.00
    vtk_pvd_060.000.00
    PVD, multiple vtm files,multiple times
    vtk_pvd_070.000.00
    vtk_pvd_080.000.00
    PVD, multiple pvti files, multiple times
    vtk_pvd_090.000.00
    vtk_pvd_100.000.00
    vtk_pvd_110.000.00
    vtk_pvd_120.000.00
    export_file_version
     "# vtk DataFile Version 4.2
    +" .eq. "# vtk DataFile Version 4.2
    +" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_vtk_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_vtk_py.html new file mode 100644 index 000000000..f6bba9b2e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_vtk_py.html @@ -0,0 +1,494 @@ +databases/vtk.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  vtk.py 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       October 28, 2004 
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Fri Sep 23 10:55:44 PDT 2005
    +#    Re-organized code into separate methods.  Added TestXML method.
    +#
    +#    Brad Whitlock, Mon May 8 15:57:12 PST 2006
    +#    Added test for higher_order_triangles.vtk
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Brad Whitlock, Tue Oct 23 11:18:12 PDT 2012
    +#    I added tests for NBLOCKS .visit files, cycle & time, and PVTU files.
    +#
    +#    Eric Brugger, Tue Jun 25 18:20:31 PDT 2013
    +#    I added a test for PVTI files.
    +#
    +#    Kathleen Biagas, Wed Feb 25 14:10:13 PST 2015
    +#    Mesh name has been added to blocks.vtu test data, so add mesh plot
    +#    to test is has been read correctly.
    +#
    +#    Kathleen Biagas, Tue Aug 18 14:00:16 PDT 2015
    +#    Added a test for VTM files.
    +#
    +#    Kathleen Biagas, Thu Sep 21 14:56:25 MST 2017
    +#    Added a test for PVTK files.
    +#
    +#    Edward Rusu, Mon Oct 01 15:09:24 PST 2018
    +#    Added a test for vtkGhostType.
    +#
    +#    Kathleen Biagas, Tue Aug 24, 2021
    +#    Added a test for PVD files.
    +# 
    +#    Justin Privitera, Mon Aug 19 16:42:10 PDT 2024
    +#    Added a test for export file version.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def TestMaterials():
    +    TestSection("Materials in VTK")
    +    OpenDatabase(data_path("vtk_test_data/globe_mats.vtk"))
    +
    +
    +    #
    +    # Test simple read and display of a material variable 
    +    #
    +    AddPlot("FilledBoundary","materials")
    +    DrawPlots()
    +    Test("vtk_01")
    +
    +    #
    +    # Find set ids using their names
    +    #
    +    setId1 = -1
    +    setId2 = -1
    +    setId3 = -1
    +    silr = SILRestriction()
    +    for i in range(silr.NumSets()):
    +        if silr.SetName(i) == "1":
    +            setId1 = i
    +        elif silr.SetName(i) == "2":
    +            setId2 = i
    +        elif silr.SetName(i) == "3":
    +            setId3 = i
    +
    +    #
    +    # Turn on air, but turn void and uranium off
    +    #
    +    silr.TurnOffSet(setId2)
    +    SetPlotSILRestriction(silr)
    +    Test("vtk_02")
    +
    +    silr.TurnOnSet(setId2)
    +    SetPlotSILRestriction(silr)
    +    AddOperator("Slice")
    +    DrawPlots()
    +    Test("vtk_03")
    +
    +    TurnMaterialsOn()
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/globe_mats.vtk"))
    +
    +def TestXML():
    +    TestSection("VTK XML-style data files")
    +    OpenDatabase(data_path("vtk_xml_test_data/curv2d.vts"))
    +
    +    AddPlot("Pseudocolor", "d");
    +    DrawPlots();
    +    Test("vtk_04")
    +    ChangeActivePlotsVar("p")
    +    DrawPlots()
    +    Test("vtk_05")
    +    ChangeActivePlotsVar("u")
    +    DrawPlots()
    +    Test("vtk_06")
    +    ChangeActivePlotsVar("v")
    +    DrawPlots()
    +    Test("vtk_07")
    +    DeleteActivePlots()
    +    AddPlot("Vector", "vel")
    +    DrawPlots()
    +    Test("vtk_08")
    +    DeleteActivePlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/curv2d.vts"))
    +
    +    OpenDatabase(data_path("vtk_xml_test_data/curv3d.vts"))
    +
    +    AddPlot("Pseudocolor", "d");
    +    DrawPlots();
    +    Test("vtk_09")
    +    ChangeActivePlotsVar("p")
    +    DrawPlots()
    +    Test("vtk_10")
    +    ChangeActivePlotsVar("t")
    +    DrawPlots()
    +    Test("vtk_11")
    +    ChangeActivePlotsVar("u")
    +    DrawPlots()
    +    Test("vtk_12")
    +    ChangeActivePlotsVar("v")
    +    DrawPlots()
    +    Test("vtk_13")
    +    ChangeActivePlotsVar("w")
    +    DrawPlots()
    +    Test("vtk_14")
    +    DeleteActivePlots()
    +    AddPlot("Vector", "vel")
    +    DrawPlots()
    +    Test("vtk_15")
    +    DeleteActivePlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/curv3d.vts"))
    +
    +    OpenDatabase(data_path("vtk_xml_test_data/rect3d.vtr"))
    +
    +    AddPlot("Pseudocolor", "d");
    +    DrawPlots();
    +    Test("vtk_16")
    +    ChangeActivePlotsVar("p")
    +    DrawPlots()
    +    Test("vtk_17")
    +    ChangeActivePlotsVar("t")
    +    DrawPlots()
    +    Test("vtk_18")
    +    ChangeActivePlotsVar("u")
    +    DrawPlots()
    +    Test("vtk_19")
    +    ChangeActivePlotsVar("v")
    +    DrawPlots()
    +    Test("vtk_20")
    +    ChangeActivePlotsVar("w")
    +    DrawPlots()
    +    Test("vtk_21")
    +    DeleteActivePlots()
    +    AddPlot("Vector", "vel")
    +    DrawPlots()
    +    Test("vtk_22")
    +    DeleteActivePlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/rect3d.vtr"))
    +
    +    OpenDatabase(data_path("vtk_xml_test_data/ucd2d.vtu"))
    +
    +    AddPlot("Pseudocolor", "d");
    +    DrawPlots();
    +    Test("vtk_23")
    +    ChangeActivePlotsVar("speed")
    +    DrawPlots()
    +    Test("vtk_24")
    +    ChangeActivePlotsVar("u")
    +    DrawPlots()
    +    Test("vtk_25")
    +    ChangeActivePlotsVar("v")
    +    DrawPlots()
    +    Test("vtk_26")
    +    DeleteActivePlots()
    +    AddPlot("Vector", "vel")
    +    DrawPlots()
    +    Test("vtk_27")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/ucd2d.vtu"))
    +
    +def TestHigherOrder():
    +    TestSection("Quadratic triangles in VTK")
    +    OpenDatabase(data_path("vtk_test_data/higher_order_triangles.vtk"))
    +
    +    AddPlot("Mesh", "highorder_triangles");
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.429056, 0.759111, 0.489553)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (-0.901832, -0.39065, -0.184638)
    +    v.viewAngle = 30
    +    v.parallelScale = 1.73205
    +    v.nearPlane = -3.4641
    +    v.farPlane = 3.4641
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1.45106
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +
    +    Test("vtk_28")
    +    DeleteAllPlots()
    +
    +    DefineScalarExpression("zoneid", "zoneid(highorder_triangles)")
    +    AddPlot("Pseudocolor", "zoneid")
    +    p = PseudocolorAttributes()
    +    p.colorTableName = "levels"
    +    SetPlotOptions(p)
    +    DrawPlots()
    +    Test("vtk_29")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/higher_order_triangles.vtk"))
    +
    +def TestNBLOCKS():
    +    TestSection("!NBLOCKS in a .visit file")
    +    OpenDatabase(data_path("vtk_test_data/visitfile/dbA.visit"))
    +    AddPlot("Pseudocolor", "mesh/ireg")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_30")
    +
    +    # See that there are multiple time steps.
    +    SetTimeSliderState(5)
    +    Test("vtk_31")
    +    DeleteAllPlots()
    +
    +    # See that there are 2 domains
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test("vtk_32")
    +
    +    # Test that we can get the cycle and time out.
    +    txt = ""
    +    for i in range(10):
    +        SetTimeSliderState(i)
    +        Query("Cycle")
    +        cycle = GetQueryOutputValue()
    +        Query("Time")
    +        time = GetQueryOutputValue()
    +        txt = txt + "Cycle: %d, Time: %g\n" % (cycle, time)
    +    TestText("vtk_33", txt)
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/visitfile/dbA.visit"))
    +
    +def TestPVTU():
    +    TestSection("PVTU files")
    +    OpenDatabase(data_path("vtk_test_data/blocks.pvtu"))
    +    AddPlot("Pseudocolor", "MatNum")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_34")
    +    # MeshName recently added, so test.
    +    AddPlot("Mesh", "blocks")
    +    DrawPlots()
    +    Test("vtk_34a")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/blocks.pvtu"))
    +
    +def TestPVTI():
    +    TestSection("PVTI files")
    +    OpenDatabase(data_path("vtk_xml_test_data/earth.pvti"))
    +    AddPlot("Truecolor", "PNGImage")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_35")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/earth.pvti"))
    +
    +def TestMixedTopology():
    +    TestSection("2D Unstructured grids with lines")
    +    OpenDatabase(data_path("vtk_test_data/test_bound.vtk"))
    +    AddPlot("Pseudocolor", "data_cells_with_bound")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_36")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/test_bound.vtk"))
    +
    +def TestVTM():
    +    TestSection("VTM files")
    +    f = "files.vtm"
    +    fN = data_path("vtk_xml_test_data/MultiBlock/%s"%f)
    +    OpenDatabase(fN)
    +    AddPlot("Subset", "Blocks")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_37")
    +
    +    mmd = GetMetaData(fN).GetMeshes(0)
    +    s = f + ":    Groups: " + ", ".join(mmd.groupNames)
    +    s = s + "     Blocks: " + ", ".join(mmd.blockNames) + "\n"
    +
    +    DeleteAllPlots()
    +    CloseDatabase(fN)
    +
    +    f = "files_grouped.vtm"
    +    fN = data_path("vtk_xml_test_data/MultiBlock/%s"%f)
    +    OpenDatabase(fN)
    +    AddPlot("Subset", "Blocks")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_38")
    +
    +    ChangeActivePlotsVar("Groups")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_39")
    +
    +    mmd = GetMetaData(fN).GetMeshes(0)
    +    s = s + f + ":    Groups: " + ", ".join(mmd.groupNames)
    +    s = s + "    Blocks: " + ", ".join(mmd.blockNames) + "\n"
    +    TestText("vtk_40", s)
    +    DeleteAllPlots()
    +    CloseDatabase(fN)
    +
    +def TestPVTK():
    +    TestSection("PVTK files")
    +    f = "earth.pvtk"
    +    fN = data_path("vtk_test_data/pvtk/%s"%f)
    +    OpenDatabase(fN)
    +    AddPlot("Truecolor", "PNGImage")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_41")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(fN)
    +
    +    f = "dbA.pvtk"
    +    fN = data_path("vtk_test_data/pvtk/dbA/%s"%f)
    +    OpenDatabase(fN)
    +    AddPlot("Pseudocolor", "mesh/ireg")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_42")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(fN)
    +
    +def TestVTKGhostType():
    +    TestSection("VTK ghost types")
    +    OpenDatabase(data_path("vtk_test_data/vtkGhostType.vtk"))
    +    ResetView()
    +    AddPlot("Pseudocolor", "internal_var_GhostZones")
    +    DrawPlots()
    +    Test("vtk_43")
    +
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "internal_var_GhostNodes")
    +    DrawPlots()
    +    Test("vtk_44")
    +
    +    DeleteAllPlots()
    +    AddPlot("Mesh", "Mesh_gnz")
    +    DrawPlots()
    +    Test("vtk_45")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/vtkGhostType.vtk"))
    +
    +def TestDBExpressions():
    +    TestSection("Database Expressions in VTK")
    +    OpenDatabase(data_path("vtk_test_data/higher_order_triangles.vtk"))
    +
    +    AddPlot("Mesh", "highorder_triangles");
    +    AddPlot("Pseudocolor", "x")
    +    AddPlot("Vector", "posvec")
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.429056, 0.759111, 0.489553)
    +    v.viewUp = (-0.901832, -0.39065, -0.184638)
    +    v.parallelScale = 1.73205
    +    v.nearPlane = -3.4641
    +    v.farPlane = 3.4641
    +    v.imageZoom = 1.45106
    +    SetView3D(v)
    +
    +    Test("vtk_46")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/higher_order_triangles.vtk"))
    +
    +def TestPVD():
    +
    +    TestSection("PVD, single pvti file, no time, no groups")
    +    OpenDatabase(data_path("vtk_xml_test_data/earth.pvd"))
    +    AddPlot("Truecolor", "PNGImage")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_pvd_01")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/earth.pvd"))
    +
    +    TestSection("PVD, multiple vtr files, single time, no groups")
    +    OpenDatabase(data_path("vtk_xml_test_data/multiRect3d.pvd"))
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_pvd_02")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/multiRect3d.pvd"))
    +
    +    TestSection("PVD, multiple pvtr files, multiple times, no groups")
    +    OpenDatabase(data_path("vtk_xml_test_data/multi_dir/multi_time_pvtr.pvd"))
    +    AddPlot("Pseudocolor", "radial")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_pvd_03")
    +    TimeSliderSetState(5)
    +    Test("vtk_pvd_04")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/multi_dir/multi_time_pvtr.pvd"))
    +
    +    TestSection("PVD, multiple vtr files, multiple times, groups")
    +    OpenDatabase(data_path("vtk_xml_test_data/multi_dir/multi_time_part_vtr.pvd"))
    +    AddPlot("Subset", "parts")
    +    DrawPlots()
    +    Test("vtk_pvd_05")
    +    ChangeActivePlotsVar("blocks")
    +    Test("vtk_pvd_06")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/multi_dir/multi_time_part_vtr.pvd"))
    +
    +    TestSection("PVD, multiple vtm files,multiple times")
    +    OpenDatabase(data_path("vtk_xml_test_data/multi_dir/multi_time_vtm.pvd"))
    +    AddPlot("Pseudocolor", "radial")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_pvd_07")
    +    TimeSliderSetState(5)
    +    Test("vtk_pvd_08")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/multi_dir/multi_time_vtm.pvd"))
    +
    +    TestSection("PVD, multiple pvti files, multiple times")
    +    OpenDatabase(data_path("vtk_xml_test_data/earth_multiTime/earth_time.pvd"))
    +    AddPlot("Truecolor", "PNGImage")
    +    DrawPlots()
    +    ResetView()
    +    Test("vtk_pvd_09")
    +    TimeSliderNextState()
    +    Test("vtk_pvd_10")
    +    TimeSliderNextState()
    +    Test("vtk_pvd_11")
    +    TimeSliderNextState()
    +    Test("vtk_pvd_12")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_xml_test_data/earth_multiTime/earth_time.pvd"))
    +
    +def TestExportFileVersion():
    +    dbname = silo_data_path("ucd3d.silo")
    +    OpenDatabase(dbname)
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +    export_name = "test_vtk_file_version"
    +    e = ExportDBAttributes()
    +    e.db_type = "VTK"
    +    e.filename = export_name
    +    e.variables = ("d",)
    +    ExportDatabase(e)
    +    time.sleep(1)
    +    CloseDatabase(dbname)
    +    filename = export_name + ".vtk"
    +    with open(filename) as input_file:
    +        TestValueEQ("export_file_version", "# vtk DataFile Version 4.2\n", next(input_file))
    +
    +TestMaterials()
    +TestXML()
    +TestHigherOrder()
    +TestNBLOCKS()
    +TestPVTU()
    +TestPVTI()
    +TestMixedTopology()
    +TestVTM()
    +TestPVTK()
    +TestVTKGhostType()
    +TestDBExpressions()
    +TestPVD()
    +TestExportFileVersion()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_wave_tv.html b/2024-12-12-22:00/poodle_trunk_serial/databases_wave_tv.html new file mode 100644 index 000000000..bf12ac044 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_wave_tv.html @@ -0,0 +1,62 @@ + +Results for databases/wave_tv.py + +

    Results of VisIt Regression Test - databases/wave_tv

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    wave_tv_010.000.00
    wave_tv_020.000.00
    wave_tv_030 modifications totalling 0 lines
    wave_tv_040 modifications totalling 0 lines
    wave_tv_050.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_wave_tv_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_wave_tv_py.html new file mode 100644 index 000000000..20efdf233 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_wave_tv_py.html @@ -0,0 +1,88 @@ +databases/wave_tv.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  silo.py 
    +#
    +#  Tests:      The wave_tv database which varies domains and materials and
    +#              number of meshes over time.
    +#
    +#  Defects:    '4760
    +#
    +#  Programmer: Hank Childs
    +#  Date:       April 9, 2004 
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, June 12, 2007
    +#    Replaced explicit annotation manipulation with call to
    +#    TurnOffAllAnnotations. Added tests of TreatAllDBsAsTimeVarying
    +#    functionality
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("wave_tv*.silo database"), 9)
    +
    +
    +#
    +# This brings up a subset plot with 5 materials.
    +#
    +AddPlot("FilledBoundary", "Material")
    +DrawPlots()
    +
    +Test("wave_tv_01")
    +
    +#
    +# There was a bug ('4760), where animating over time would crash the engine
    +# when some materials went out of scope.
    +#
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +
    +Test("wave_tv_02")
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("wave_tv*.silo database") )
    +
    +#
    +# Open wave_tv one state BEFORE where variable 'transient' is
    +# defined and then march forward. With 'TreatAllDBsAsTimeVarying'
    +# turned off, the add should always fail. With it turned on,
    +# the add should succeed on state 17.
    +#
    +OpenDatabase(silo_data_path("wave_tv*.silo database") , 16)
    +addOk16 = AddPlot("Pseudocolor","transient")
    +DeleteAllPlots()
    +TimeSliderNextState()
    +addOk17 = AddPlot("Pseudocolor","transient")
    +msg = "With TreatAllDBsAsTimeVarying set to its default value,\n"
    +msg = msg + "AddPlot() returned %d for state 16 and %d for state 17"%(addOk16,addOk17)
    +TestText("wave_tv_03", msg)
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("wave_tv*.silo database") )
    +
    +SetTreatAllDBsAsTimeVarying(1)
    +OpenDatabase(silo_data_path("wave_tv*.silo database"), 16)
    +
    +addOk16 = AddPlot("Pseudocolor","transient")
    +DeleteAllPlots()
    +TimeSliderNextState()
    +addOk17 = AddPlot("Pseudocolor","transient")
    +msg = "With TreatAllDBsAsTimeVarying set to 1 (true),\n"
    +msg = msg + "AddPlot() returned %d for state 16 and %d for state 17"%(addOk16,addOk17)
    +TestText("wave_tv_04", msg)
    +DrawPlots()
    +Test("wave_tv_05")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_xdmf.html b/2024-12-12-22:00/poodle_trunk_serial/databases_xdmf.html new file mode 100644 index 000000000..5bbf40e95 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_xdmf.html @@ -0,0 +1,339 @@ + +Results for databases/xdmf.py + +

    Results of VisIt Regression Test - databases/xdmf

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Structured (no hdf5)
    xdmf_0_000.000.00
    xdmf_0_010.000.00
    Basic topology (no hdf5)
    xdmf_1_000.000.00
    xdmf_1_010.000.00
    xdmf_1_020.000.00
    xdmf_1_030.000.00
    xdmf_1_040.000.00
    xdmf_1_050.000.00
    xdmf_1_060.000.00
    xdmf_1_070.000.00
    xdmf_1_080.000.00
    xdmf_1_090.000.00
    xdmf_1_100.000.00
    xdmf_1_110.000.00
    xdmf_1_120.000.00
    xdmf_1_130.000.00
    xdmf_1_140.000.00
    xdmf_1_150.000.00
    xdmf_1_160.000.00
    xdmf_1_170.000.00
    Mixed (no hdf5)
    xdmf_2_000.000.00
    Polygon (no hdf5)
    xdmf_3_000.000.00
    xdmf_3_010.000.00
    xdmf_3_020.000.00
    Quadratic topology (no hdf5)
    xdmf_4_000.000.00
    xdmf_4_010.000.00
    xdmf_4_020.000.00
    xdmf_4_030.000.00
    xdmf_4_040.000.00
    xdmf_4_050.000.00
    Multiple grids (no hdf5)
    xdmf_5_000.000.00
    Structured with hdf5
    xdmf_6_000.000.00
    xdmf_6_010.000.00
    xdmf_6_020.000.00
    xdmf_6_030.000.00
    xdmf_6_040.000.00
    xdmf_6_050.000.00
    xdmf_6_060.000.00
    Quadratic topology (no hdf5)
    xdmf_7_000.000.00
    xdmf_7_010.000.00
    xdmf_7_020.000.00
    xdmf_7_030.000.00
    xdmf_7_040.000.00
    xdmf_7_050.000.00
    xdmf_7_060.000.00
    Curves
    xdmf_8_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_xdmf_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_xdmf_py.html new file mode 100644 index 000000000..3bf4ac9d5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_xdmf_py.html @@ -0,0 +1,448 @@ +databases/xdmf.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  xdmf.py
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Tue Apr 27 10:37:01 PDT 2010
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("Xdmf")
    +
    +def test0(datapath):
    +    TestSection("Structured (no hdf5)")
    +    OpenDatabase(pjoin(datapath,"3DRectMesh.xmf"))
    +    AddPlot("Pseudocolor", "CellScalars")
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.722705, 0.363868, 0.587621)
    +    v.focus = (2, 1.5, 1.5)
    +    v.viewUp = (0.277541, 0.931424, -0.235414)
    +    v.viewAngle = 30
    +    v.parallelScale = 2.91548
    +    v.nearPlane = -5.83095
    +    v.farPlane = 5.83095
    +    v.imagePan = (0.0188164, 0.0435196)
    +    v.imageZoom = 1.09024
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (2, 1.5, 1.5)
    +    SetView3D(v)
    +    Test("xdmf_0_00")
    +
    +    ChangeActivePlotsVar("NodeScalars")
    +    Test("xdmf_0_01")
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"3DRectMesh.xmf"))
    +
    +def test1(datapath):
    +    TestSection("Basic topology (no hdf5)")
    +    OpenDatabase(pjoin(datapath,"BasicTopology.xmf"))
    +    AddPlot("Pseudocolor", "Hexahedron/Cell Centered Values")
    +    DrawPlots()
    +
    +    pc = PseudocolorAttributes(1)
    +    pc.pointSizePixels = 10
    +    pc.pointType = pc.Point
    +    SetPlotOptions(pc)
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.722705, 0.363868, 0.587621)
    +    v.focus = (0.5, 0.5, 2)
    +    v.viewUp = (0.277541, 0.931424, -0.235414)
    +    v.viewAngle = 30
    +    v.parallelScale = 2.12132
    +    v.nearPlane = -4.24264
    +    v.farPlane = 4.24264
    +    v.imagePan = (0.0665142, 0.0326173)
    +    v.imageZoom = 1.4219
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 2)
    +    SetView3D(v)
    +    Test("xdmf_1_00")
    +
    +    ChangeActivePlotsVar("Hexahedron/Node Centered Values")
    +    Test("xdmf_1_01")
    +
    +    # Polygon
    +    ChangeActivePlotsVar("Polygon/Cell Centered Values")
    +    Test("xdmf_1_02")
    +    ChangeActivePlotsVar("Polygon/Node Centered Values")
    +    Test("xdmf_1_03")
    +
    +    # Polyline
    +    ChangeActivePlotsVar("Polyline/Cell Centered Values")
    +    Test("xdmf_1_04")
    +    ChangeActivePlotsVar("Polyline/Node Centered Values")
    +    Test("xdmf_1_05")
    +
    +    # Polyvertex
    +    ChangeActivePlotsVar("Polyvertex/Cell Centered Values")
    +    Test("xdmf_1_06")
    +    ChangeActivePlotsVar("Polyvertex/Node Centered Values")
    +    Test("xdmf_1_07")
    +
    +    # Pyramid
    +    ChangeActivePlotsVar("Pyramid/Cell Centered Values")
    +    Test("xdmf_1_08")
    +    ChangeActivePlotsVar("Pyramid/Node Centered Values")
    +    Test("xdmf_1_09")
    +
    +    # Quadrilateral
    +    ChangeActivePlotsVar("Quadrilateral/Cell Centered Values")
    +    Test("xdmf_1_10")
    +    ChangeActivePlotsVar("Quadrilateral/Node Centered Values")
    +    Test("xdmf_1_11")
    +
    +    # Tetrahedron
    +    ChangeActivePlotsVar("Tetrahedron/Cell Centered Values")
    +    Test("xdmf_1_12")
    +    ChangeActivePlotsVar("Tetrahedron/Node Centered Values")
    +    Test("xdmf_1_13")
    +
    +    # Triangle
    +    ChangeActivePlotsVar("Triangle/Cell Centered Values")
    +    Test("xdmf_1_14")
    +    ChangeActivePlotsVar("Triangle/Node Centered Values")
    +    Test("xdmf_1_15")
    +
    +    # Wedge
    +    ChangeActivePlotsVar("Wedge/Cell Centered Values")
    +    Test("xdmf_1_16")
    +    ChangeActivePlotsVar("Wedge/Node Centered Values")
    +    Test("xdmf_1_17")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"BasicTopology.xmf"))
    +
    +def test2(datapath):
    +    TestSection("Mixed (no hdf5)")
    +    # Open the mixed topology file
    +    OpenDatabase(pjoin(datapath,"Mixed.xmf"))
    +    DeleteAllPlots()
    +    AddPlot("Mesh", "Mixed")
    +    m = MeshAttributes()
    +    m.legendFlag = 1
    +    m.lineWidth = 1
    +    m.meshColor = (255, 0, 0, 255)
    +    m.meshColorSource = m.MeshCustom  # Foreground, MeshCustom
    +    m.opaqueColorSource = m.OpaqueCustom  # Background, OpaqueCustom
    +    m.opaqueMode = m.Auto  # Auto, On, Off
    +    m.pointSize = 0.05
    +    m.opaqueColor = (192, 192, 192, 255)
    +    m.smoothingLevel = m.NONE  # None, Fast, High
    +    m.pointSizeVarEnabled = 0
    +    m.pointSizeVar = "default"
    +    m.pointType = m.Point  # Box, Axis, Icosahedron, Point, Sphere
    +    m.showInternal = 0
    +    m.pointSizePixels = 2
    +    m.opacity = 1
    +    SetPlotOptions(m)
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.611582, 0.210354, 0.762705)
    +    v.focus = (0.5, 0.5, 2)
    +    v.viewUp = (0.145916, 0.97746, -0.15258)
    +    v.viewAngle = 30
    +    v.parallelScale = 2.12132
    +    v.nearPlane = -4.24264
    +    v.farPlane = 4.24264
    +    v.imagePan = (-0.0635688, 0.0486989)
    +    v.imageZoom = 1.17908
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 2)
    +    SetView3D(v)
    +    Test("xdmf_2_00")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath, "Mixed.xmf"))
    +
    +def test3(datapath):
    +    TestSection("Polygon (no hdf5)")
    +    OpenDatabase(pjoin(datapath,"PolygonOctagon.xmf"))
    +    AddPlot("Mesh", "PolygonOctagon")
    +    DrawPlots()
    +    ResetView()
    +    Test("xdmf_3_00")
    +
    +    AddPlot("Pseudocolor", "CellScalar")
    +    DrawPlots()
    +    Test("xdmf_3_01")
    +
    +    ChangeActivePlotsVar("NodeScalar")
    +    Test("xdmf_3_02")
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"PolygonOctagon.xmf"))
    +
    +def test4(datapath):
    +    TestSection("Quadratic topology (no hdf5)")
    +    OpenDatabase(pjoin(datapath,"QuadraticTopology.xmf"))
    +    AddPlot("Pseudocolor", "Hexahedron_20/Node Centered Values")
    +    DrawPlots()
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.703184, 0.393286, 0.592333)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.293186, 0.919352, -0.262361)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.imagePan = (0.0122989, 0.0367562)
    +    v.imageZoom = 1.02726
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 0.5)
    +    SetView3D(v)
    +    Test("xdmf_4_00")
    +
    +    ChangeActivePlotsVar("Pyramid_13/Node Centered Values")
    +    Test("xdmf_4_01")
    +
    +    ChangeActivePlotsVar("Quadrilateral_8/Node Centered Values")
    +    Test("xdmf_4_02")
    +
    +    ChangeActivePlotsVar("Tetrahedron_10/Node Centered Values")
    +    Test("xdmf_4_03")
    +
    +    ChangeActivePlotsVar("Triangle_6/Node Centered Values")
    +    Test("xdmf_4_04")
    +
    +    ChangeActivePlotsVar("Wedge_15/Node Centered Values")
    +    Test("xdmf_4_05")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"QuadraticTopology.xmf"))
    +
    +def test5(datapath):
    +    TestSection("Multiple grids (no hdf5)")
    +    OpenDatabase(pjoin(datapath,"TetrahedronMultipleGrids.xmf"))
    +    AddPlot("Pseudocolor", "Tetrahedron 1/CellScalar")
    +    AddPlot("Pseudocolor", "Tetrahedron 2/CellScalar")
    +    DrawPlots()
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.0158313, 0.998128, -0.0590748)
    +    v.focus = (0, 0.5, 0)
    +    v.viewUp = (-0.0096669, -0.0592323, -0.998197)
    +    v.viewAngle = 30
    +    v.parallelScale = 1.5
    +    v.nearPlane = -3
    +    v.farPlane = 3
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0.5, 0)
    +    SetView3D(v)
    +
    +    Test("xdmf_5_00")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"TetrahedronMultipleGrids.xmf"))
    +
    +def test6(datapath):
    +    TestSection("Structured with hdf5")
    +    db = pjoin(datapath,"rect2d.xmf")
    +    OpenDatabase(db)
    +    AddPlot("Mesh", "mesh")
    +    AddPlot("Pseudocolor", "Pressure")
    +    DrawPlots()
    +    ResetView()
    +    Test("xdmf_6_00")
    +    ChangeActivePlotsVar("VelocityX")
    +    Test("xdmf_6_01")
    +
    +    db = pjoin(datapath,"corect2d.xmf")
    +    ReplaceDatabase(db)
    +    DrawPlots()
    +    ResetView()
    +    Test("xdmf_6_02")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +    db = pjoin(datapath,"rect3d.xmf")
    +    OpenDatabase(db)
    +    AddPlot("Mesh", "mesh")
    +    AddPlot("Pseudocolor", "VelocityZ")
    +    DrawPlots()
    +    ResetView()
    +    Test("xdmf_6_03")
    +
    +    db = pjoin(datapath,"corect3d.xmf")
    +    ReplaceDatabase(db)
    +    DrawPlots()
    +    ResetView()
    +    Test("xdmf_6_04")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +    db = pjoin(datapath,"xdmf2d.xmf")
    +    OpenDatabase(db)
    +    AddPlot("Mesh", "mesh1")
    +    AddPlot("Pseudocolor", "Pressure")
    +    DrawPlots()
    +    Test("xdmf_6_05")
    +
    +    ChangeActivePlotsVar("VelocityX")
    +    Test("xdmf_6_06")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test7(datapath):
    +    TestSection("Quadratic topology (no hdf5)")
    +    OpenDatabase(pjoin(datapath,"singleHex24.xmf"))
    +    AddPlot("Mesh", "singleHex24")
    +    AddPlot("Pseudocolor", "GlobalNodeId")
    +    DrawPlots()
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.690415, 0.541158, 0.480078)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0.123212, -0.565967, 0.815169)
    +    v.viewAngle = 30
    +    v.parallelScale = 1.73205
    +    v.nearPlane = -3.4641
    +    v.farPlane = 3.4641
    +    v.imagePan = (0, 0.0352717)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +
    +    Test("xdmf_7_00")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"singleHex24.xmf"))
    +
    +    OpenDatabase(pjoin(datapath,"singleHex27.xmf"))
    +    AddPlot("Mesh", "singleHex27")
    +    AddPlot("Pseudocolor", "GlobalNodeId")
    +    DrawPlots()
    +
    +    Test("xdmf_7_01")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"singleHex27.xmf"))
    +
    +    OpenDatabase(pjoin(datapath,"singleQuad6.xmf"))
    +    AddPlot("Mesh", "singleQuad6")
    +    AddPlot("Pseudocolor", "GlobalNodeId")
    +    DrawPlots()
    +
    +    Test("xdmf_7_02")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"singleQuad6.xmf"))
    +
    +    OpenDatabase(pjoin(datapath,"singleQuad9.xmf"))
    +    AddPlot("Mesh", "singleQuad9")
    +    AddPlot("Pseudocolor", "GlobalNodeId")
    +    DrawPlots()
    +
    +    Test("xdmf_7_03")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"singleQuad9.xmf"))
    +
    +    OpenDatabase(pjoin(datapath,"singleTri7.xmf"))
    +    AddPlot("Mesh", "singleTri7")
    +    AddPlot("Pseudocolor", "GlobalNodeId")
    +    DrawPlots()
    +
    +    Test("xdmf_7_04")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath, "singleTri7.xmf"))
    +
    +    OpenDatabase(pjoin(datapath, "singleWedge12.xmf"))
    +    AddPlot("Mesh", "singleWedge12")
    +    AddPlot("Pseudocolor", "GlobalNodeId")
    +    DrawPlots()
    +    v = View3DAttributes()
    +    v.viewNormal = (0.69918, -0.142559, 0.700588)
    +    v.focus = (0, 0, 0.5)
    +    v.viewUp = (-0.216074, 0.89196, 0.397139)
    +    v.viewAngle = 30
    +    v.parallelScale = 1.5
    +    v.nearPlane = -3
    +    v.farPlane = 3
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +
    +    Test("xdmf_7_05")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"singleWedge12.xmf"))
    +
    +    OpenDatabase(pjoin(datapath,"singleWedge18.xmf"))
    +    AddPlot("Mesh", "singleWedge18")
    +    AddPlot("Pseudocolor", "GlobalNodeId")
    +    DrawPlots()
    +
    +    Test("xdmf_7_06")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"singleWedge18.xmf"))
    +
    +def test8(datapath):
    +    TestSection("Curves")
    +    OpenDatabase(pjoin(datapath,"curve.xmf"))
    +    AddPlot("Curve", "Curve/Node Centered Values")
    +    ca = CurveAttributes()
    +    ca.showLabels = 0
    +    SetPlotOptions(ca)
    +    DrawPlots()
    +    Test("xdmf_8_01")
    +    DeleteAllPlots()
    +    CloseDatabase(pjoin(datapath,"curve.xmf"))
    +
    +def main():
    +    datapath = data_path("xdmf_test_data")
    +    test0(datapath)
    +    test1(datapath)
    +    test2(datapath)
    +    test3(datapath)
    +    test4(datapath)
    +    test5(datapath)
    +
    +    test6(datapath)
    +    test7(datapath)
    +    test8(datapath)
    +
    +main()
    +Exit()
    +
    +
    +#fails:
    +# rect2d.xmf
    +#              Crashes the engine cuz we don't give a Z coordinate
    +#
    +# corect2d.xml 
    +#              I can plot the mesh but it is in the YZ plane, which doesn't seem right.
    +#              Does not expose Pressure or VelocityX.
    +#              
    +# rect3d.xmf
    +#              Only exposes VelocityZ (where is Pressure?)
    +#
    +# corect3d.xmf
    +#              Does not expose Pressure or VelocityZ
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_xform_precision.html b/2024-12-12-22:00/poodle_trunk_serial/databases_xform_precision.html new file mode 100644 index 000000000..7185bdd55 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_xform_precision.html @@ -0,0 +1,72 @@ + +Results for databases/xform_precision.py + +

    Results of VisIt Regression Test - databases/xform_precision

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    float_xform_010.000.00
    float_xform_020.000.00
    float_xform_030.000.00
    float_xform_040.000.00
    float_xform_050.000.00
    float_xform_060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_xform_precision_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_xform_precision_py.html new file mode 100644 index 000000000..1a12e4582 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_xform_precision_py.html @@ -0,0 +1,86 @@ +databases/xform_precision.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  xform_precision.py 
    +#
    +#  Tests:      Transform manager's conversion to float 
    +#
    +#  Programmer: Mark C. Miller
    +#  Date:       September 24, 2006 
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("quad_disk.silo"))
    +
    +
    +#
    +# Turn off force single precision for this test
    +#
    +readOptions=GetDefaultFileOpenOptions("Silo")
    +readOptions["Force Single"] = 0
    +SetDefaultFileOpenOptions("Silo", readOptions)
    +
    +#
    +# Test ordinary float data (no conversion) first
    +#
    +AddPlot("Mesh","mesh")
    +DrawPlots()
    +Test("float_xform_01")
    +DeleteAllPlots()
    +
    +#
    +# Ok, now read a mesh with double coords
    +#
    +AddPlot("Mesh","meshD")
    +DrawPlots()
    +Test("float_xform_02")
    +DeleteAllPlots()
    +
    +CloseDatabase(silo_data_path("quad_disk.silo"))
    +OpenDatabase(silo_data_path("quad_disk.silo"))
    +
    +
    +#
    +# test float data on a float mesh
    +#
    +AddPlot("Pseudocolor","sphElev_on_mesh")
    +DrawPlots()
    +Test("float_xform_03")
    +DeleteAllPlots()
    +
    +#
    +# test float data on a double mesh
    +#
    +AddPlot("Pseudocolor","sphElev_on_meshD")
    +DrawPlots()
    +Test("float_xform_04")
    +DeleteAllPlots()
    +
    +#
    +# test double data on a float mesh
    +#
    +AddPlot("Pseudocolor","sphElevD_on_mesh")
    +DrawPlots()
    +Test("float_xform_05")
    +DeleteAllPlots()
    +
    +CloseDatabase(silo_data_path("quad_disk.silo"))
    +
    +OpenDatabase(silo_data_path("quad_disk.silo"))
    +
    +
    +#
    +# test double data on a double mesh
    +#
    +AddPlot("Pseudocolor","sphElevD_on_meshD")
    +DrawPlots()
    +Test("float_xform_06")
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_xyz.html b/2024-12-12-22:00/poodle_trunk_serial/databases_xyz.html new file mode 100644 index 000000000..d95cf429b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_xyz.html @@ -0,0 +1,76 @@ + +Results for databases/xyz.py + +

    Results of VisIt Regression Test - databases/xyz

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    xyz_010.000.00
    xyz_020.000.00
    xyz_030.000.00
    xyz_040.000.00
    xyz_050.000.00
    xyz_060.000.00
    xyz_070 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_xyz_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_xyz_py.html new file mode 100644 index 000000000..3772f8d4f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_xyz_py.html @@ -0,0 +1,81 @@ +databases/xyz.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  xyz.py
    +#
    +#  Tests:      mesh      - 3D Points
    +#              plots     - Molecule
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       June 14, 2007
    +#
    +#  Modifications:
    +#    Eddie Rusu, Mon Aug 26 08:46:44 PDT 2019
    +#    Added test for cell-centered non VTK_VERTEX points.
    +#
    +#    Kathleen Biagas, Mon Jun 21 09:41:41 PDT 2021
    +#    Added 'DeleteAllPlots' before 'CloseDatabase'.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def test_xyz_ascii_output(data_base_name, var, test_output):
    +    OpenDatabase(silo_data_path(data_base_name))
    +    AddPlot("Pseudocolor", var, 1, 1)
    +    DrawPlots()
    +
    +    # Export results to database
    +    e = ExportDBAttributes()
    +    e.db_type = "XYZ"
    +    e.filename = "test_ex_db"
    +    ExportDatabase(e)
    +    time.sleep(1)
    +
    +    # Stream the ascii text in from the exported database
    +    file_streamer = open(e.filename+'.xyz', 'r')
    +    string_to_test = file_streamer.read()
    +    file_streamer.close()
    +
    +    # Test the string
    +    TestText(test_output, string_to_test)
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path(data_base_name))
    +
    +
    +
    +# Starting point in this script
    +OpenDatabase(data_path("xyz_test_data/nanowireTB23K298.xyz"),0, "XYZ_1.0")
    +
    +AddPlot("Molecule", "element")
    +DrawPlots()
    +
    +View3DAtts = GetView3D()
    +View3DAtts.viewNormal = (-0.882253, 0.0562832, 0.467398)
    +View3DAtts.focus = (26.3509, 22.1853, 31.5426)
    +View3DAtts.viewUp = (-0.0613441, 0.970619, -0.232672)
    +View3DAtts.viewAngle = 30
    +SetView3D(View3DAtts)
    +
    +Test("xyz_01")
    +TimeSliderNextState()
    +Test("xyz_02")
    +TimeSliderNextState()
    +Test("xyz_03")
    +TimeSliderNextState()
    +Test("xyz_04")
    +TimeSliderNextState()
    +Test("xyz_05")
    +TimeSliderNextState()
    +Test("xyz_06")
    +DeleteAllPlots()
    +CloseDatabase(data_path("xyz_test_data/nanowireTB23K298.xyz"))
    +
    +# Test case where XYZ writer is cell-centered VTK_VERTEX data
    +# In this case, the baseline text is generated from the point-centered data.
    +DefineScalarExpression("vz2", 'recenter(vz, "zonal")')
    +test_xyz_ascii_output('galaxy0000.silo', 'vz2', 'xyz_07')
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_zipwrapper.html b/2024-12-12-22:00/poodle_trunk_serial/databases_zipwrapper.html new file mode 100644 index 000000000..e4989ccdd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_zipwrapper.html @@ -0,0 +1,78 @@ + +Results for databases/zipwrapper.py + +

    Results of VisIt Regression Test - databases/zipwrapper

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ZipWrapper_010.000.00
    ZipWrapper_020.000.00
    ZipWrapper_030.000.00
    ZipWrapper_040.000.00
    ZipWrapper_050.000.00
    ZipWrapper_060.000.00
    ZipWrapper_070.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_zipwrapper_py.html b/2024-12-12-22:00/poodle_trunk_serial/databases_zipwrapper_py.html new file mode 100644 index 000000000..a4e32bffe --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_zipwrapper_py.html @@ -0,0 +1,90 @@ +databases/zipwrapper.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  zipwrapper.py 
    +#
    +#  Tests:      STSD operation (STL) 
    +#              STMD operation (Silo)
    +#              .visit file and .* database
    +#              Operation over time
    +#              Cache pre-emption works correctly 
    +#              Various plots/SIL Restrictions
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       August 7, 2007 
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Mark C. Miller, Wed Jun 27 12:25:12 PDT 2012
    +#    Adjusted to use STL as STSD test because VTK was changed from STSD
    +#    to STMD. Removed code to generate test data because the test data is
    +#    now stored as zipwrapper_test_data.tar.gz 
    +#
    +#    Kathleen Biagas, Fri Oct 9, 2020
    +#    Changed how the virtual database is opened (remove .gz).
    +#
    +#    Kathleen Biagas, Fri Mar 12, 2021
    +#    Close sphere.2d.hdf5.gz to prevent HDF5 error message.
    +#
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Ok, before we start processing any compressed files, set
    +# ZipWrapper default read options 
    +#
    +OpenMDServer("localhost")
    +readOptions=GetDefaultFileOpenOptions("ZipWrapper")
    +readOptions["Max. # decompressed files"] = 10
    +SetDefaultFileOpenOptions("ZipWrapper", readOptions)
    +
    +
    +# Test 36 block STL (only 10 files decompressed at any one time)
    +OpenDatabase(data_path("zipwrapper_test_data/multi_ucd.visit"))
    +
    +AddPlot("Pseudocolor","mesh_quality/condition")
    +DrawPlots()
    +v=GetView3D()
    +v.viewNormal=(-0.5, 0.296198, 0.813798)
    +SetView3D(v)
    +Test("ZipWrapper_01")
    +DeleteAllPlots()
    +CloseDatabase(data_path("zipwrapper_test_data/multi_ucd.visit"))
    +
    +OpenDatabase(data_path("zipwrapper_test_data/histz_*.silo database"), 3)
    +
    +AddPlot("Pseudocolor","d_dup")
    +DrawPlots()
    +v=GetView3D()
    +v.viewNormal=(-0.5, 0.296198, 0.813798)
    +SetView3D(v)
    +Test("ZipWrapper_02")
    +TimeSliderNextState()
    +TimeSliderNextState()
    +Test("ZipWrapper_03")
    +TimeSliderSetState(0)
    +Test("ZipWrapper_04")
    +TimeSliderNextState()
    +Test("ZipWrapper_05")
    +DeleteAllPlots()
    +
    +AddPlot("FilledBoundary","mat1")
    +DrawPlots()
    +silr=SILRestriction()
    +silr.TurnOffSet(silr.SetsInCategory("mat1")[0])
    +SetPlotSILRestriction(silr)
    +Test("ZipWrapper_06")
    +DeleteAllPlots()
    +
    +OpenDatabase(data_path("zipwrapper_test_data/sphere.2d.hdf5.gz"))
    +
    +AddPlot("FilledBoundary","materials")
    +DrawPlots()
    +Test("ZipWrapper_07")
    +DeleteAllPlots()
    +CloseDatabase(data_path("zipwrapper_test_data/sphere.2d.hdf5.gz"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/expressions_ghost_zoneid_expr.html b/2024-12-12-22:00/poodle_trunk_serial/expressions_ghost_zoneid_expr.html new file mode 100644 index 000000000..6d6136c2a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/expressions_ghost_zoneid_expr.html @@ -0,0 +1,58 @@ + +Results for expressions/ghost_zoneid_expr.py + +

    Results of VisIt Regression Test - expressions/ghost_zoneid_expr

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Ghost Zone ID Expression
    Minimum Field Value
     0.0 .eq. 0.0 (prec=5) : True
    Maximum Field Value
     0.0 .eq. 0.0 (prec=5) : True
    Ghost Zone ID Expression w/ Inverse Ghost Zones Debugging
    Minimum Field Value
     1.0 .eq. 1.0 (prec=5) : True
    Maximum Field Value
     1.0 .eq. 1.0 (prec=5) : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/expressions_ghost_zoneid_expr_py.html b/2024-12-12-22:00/poodle_trunk_serial/expressions_ghost_zoneid_expr_py.html new file mode 100644 index 000000000..063c661eb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/expressions_ghost_zoneid_expr_py.html @@ -0,0 +1,46 @@ +expressions/ghost_zoneid_expr.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ghost_zoneid_expr.py
    +#
    +#  Tests:      Ghost Zone Id Expression
    +#
    +#  Programmer: Justin Privitera
    +#  Date:       Wed Apr 6 15:03:47 PDT 2022
    +#
    +# ----------------------------------------------------------------------------
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +meshName = "mesh1"
    +
    +#
    +# Set precision for rounding operations
    +#
    +Prec = 5
    +
    +TestSection("Ghost Zone ID Expression")
    +
    +AddPlot("Pseudocolor", "d")
    +DefineScalarExpression("ghostzonevar", "ghost_zoneid(" + meshName + ")")
    +AddPlot("Pseudocolor", "ghostzonevar")
    +DrawPlots()
    +Query("MinMax")
    +q = GetQueryOutputObject()
    +TestValueEQ("Minimum Field Value", q['min'], 0.0, Prec)
    +TestValueEQ("Maximum Field Value", q['max'], 0.0, Prec)
    +DeleteAllPlots()
    +
    +TestSection("Ghost Zone ID Expression w/ Inverse Ghost Zones Debugging")
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("InverseGhostZone", 1)
    +DefineScalarExpression("ghostzonevar", "ghost_zoneid(" + meshName + ")")
    +ChangeActivePlotsVar("ghostzonevar")
    +DrawPlots()
    +Query("MinMax")
    +q = GetQueryOutputObject()
    +TestValueEQ("Minimum Field Value", q['min'], 1.0, Prec)
    +TestValueEQ("Maximum Field Value", q['max'], 1.0, Prec)
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/expressions_global_stats.html b/2024-12-12-22:00/poodle_trunk_serial/expressions_global_stats.html new file mode 100644 index 000000000..41088a2ce --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/expressions_global_stats.html @@ -0,0 +1,292 @@ + +Results for expressions/global_stats.py + +

    Results of VisIt Regression Test - expressions/global_stats

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Test Average 1 for d
     3.4952032566070557 .eq. 3.4952 (prec=5) : True
    Test Average 2 for d
     3.4952032566070557 .eq. 3.4952 (prec=5) : True
    Test Maximum 1 for d
     4.955699443817139 .eq. 4.9557 (prec=5) : True
    Test Maximum 2 for d
     4.955699443817139 .eq. 4.9557 (prec=5) : True
    Test Minimum 1 for d
     2.034707546234131 .eq. 2.03471 (prec=5) : True
    Test Minimum 2 for d
     2.034707546234131 .eq. 2.03471 (prec=5) : True
    Test Number 1 for d
     36000.0 .eq. 36000 (prec=5) : True
    Test Number 2 for d
     36000.0 .eq. 36000 (prec=5) : True
    Test Root Mean Square 1 for d
     3.6005451679229736 .eq. 3.60055 (prec=5) : True
    Test Root Mean Square 2 for d
     3.6005451679229736 .eq. 3.60055 (prec=5) : True
    Test Standard Deviation 1 for d
     0.8645682334899902 .eq. 0.864568 (prec=5) : True
    Test Standard Deviation 2 for d
     0.8645682334899902 .eq. 0.864568 (prec=5) : True
    Test Sum 1 for d
     125827.3203125 .eq. 125827.3203125 (prec=5) : True
    Test Sum 2 for d
     125827.3203125 .eq. 125827.3203125 (prec=5) : True
    Test Variance 1 for d
     0.7474782466888428 .eq. 0.747478 (prec=5) : True
    Test Variance 2 for d
     0.7474782466888428 .eq. 0.747478 (prec=5) : True
    Test Average 1 for u
     -0.0023603462614119053 .eq. -0.00236035 (prec=5) : True
    Test Average 2 for u
     -0.0023603462614119053 .eq. -0.00236035 (prec=5) : True
    Test Maximum 1 for u
     1.0 .eq. 1 (prec=5) : True
    Test Maximum 2 for u
     1.0 .eq. 1 (prec=5) : True
    Test Minimum 1 for u
     -1.0 .eq. -1 (prec=5) : True
    Test Minimum 2 for u
     -1.0 .eq. -1 (prec=5) : True
    Test Number 1 for u
     39401.0 .eq. 39401 (prec=5) : True
    Test Number 2 for u
     39401.0 .eq. 39401 (prec=5) : True
    Test Root Mean Square 1 for u
     0.7401482462882996 .eq. 0.740148 (prec=5) : True
    Test Root Mean Square 2 for u
     0.7401482462882996 .eq. 0.740148 (prec=5) : True
    Test Standard Deviation 1 for u
     0.7401444911956787 .eq. 0.740144 (prec=5) : True
    Test Standard Deviation 2 for u
     0.7401444911956787 .eq. 0.740144 (prec=5) : True
    Test Sum 1 for u
     -93.0 .eq. -93 (prec=5) : True
    Test Sum 2 for u
     -93.0 .eq. -93 (prec=5) : True
    Test Variance 1 for u
     0.5478138327598572 .eq. 0.547814 (prec=5) : True
    Test Variance 2 for u
     0.5478138327598572 .eq. 0.547814 (prec=5) : True
    Test Average 1 for d
     3.4952033675857233 .eq. 3.4952 (prec=5) : True
    Test Average 2 for d
     3.4952033675857233 .eq. 3.4952 (prec=5) : True
    Test Maximum 1 for d
     4.880802119883037 .eq. 4.8808 (prec=5) : True
    Test Maximum 2 for d
     4.880802119883037 .eq. 4.8808 (prec=5) : True
    Test Minimum 1 for d
     2.1096046644241038 .eq. 2.1096 (prec=5) : True
    Test Minimum 2 for d
     2.1096046644241038 .eq. 2.1096 (prec=5) : True
    Test Number 1 for d
     988.0 .eq. 988 (prec=5) : True
    Test Number 2 for d
     988.0 .eq. 988 (prec=5) : True
    Test Root Mean Square 1 for d
     3.5904038921519654 .eq. 3.5904 (prec=5) : True
    Test Root Mean Square 2 for d
     3.5904038921519654 .eq. 3.5904 (prec=5) : True
    Test Standard Deviation 1 for d
     0.8213120771042927 .eq. 0.821312 (prec=5) : True
    Test Standard Deviation 2 for d
     0.8213120771042927 .eq. 0.821312 (prec=5) : True
    Test Sum 1 for d
     3453.2609271746946 .eq. 3453.2609271746946 (prec=5) : True
    Test Sum 2 for d
     3453.2609271746946 .eq. 3453.2609271746946 (prec=5) : True
    Test Variance 1 for d
     0.6745535279973676 .eq. 0.674554 (prec=5) : True
    Test Variance 2 for d
     0.6745535279973676 .eq. 0.674554 (prec=5) : True
    Test Average 1 for u
     0.06429317593574524 .eq. 0.0642932 (prec=5) : True
    Test Average 2 for u
     0.06429317593574524 .eq. 0.0642932 (prec=5) : True
    Test Maximum 1 for u
     1.0 .eq. 1 (prec=5) : True
    Test Maximum 2 for u
     1.0 .eq. 1 (prec=5) : True
    Test Minimum 1 for u
     -1.0 .eq. -1 (prec=5) : True
    Test Minimum 2 for u
     -1.0 .eq. -1 (prec=5) : True
    Test Number 1 for u
     1053.0 .eq. 1053 (prec=5) : True
    Test Number 2 for u
     1053.0 .eq. 1053 (prec=5) : True
    Test Root Mean Square 1 for u
     0.7151905298233032 .eq. 0.715191 (prec=5) : True
    Test Root Mean Square 2 for u
     0.7151905298233032 .eq. 0.715191 (prec=5) : True
    Test Standard Deviation 1 for u
     0.7122947573661804 .eq. 0.7122947573661804 (prec=5) : True
    Test Standard Deviation 2 for u
     0.7122947573661804 .eq. 0.7122947573661804 (prec=5) : True
    Test Sum 1 for u
     67.70071411132812 .eq. 67.70071411132812 (prec=5) : True
    Test Sum 2 for u
     67.70071411132812 .eq. 67.70071411132812 (prec=5) : True
    Test Variance 1 for u
     0.5073638558387756 .eq. 0.507364 (prec=5) : True
    Test Variance 2 for u
     0.5073638558387756 .eq. 0.507364 (prec=5) : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/expressions_global_stats_py.html b/2024-12-12-22:00/poodle_trunk_serial/expressions_global_stats_py.html new file mode 100644 index 000000000..607fb199c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/expressions_global_stats_py.html @@ -0,0 +1,130 @@ +expressions/global_stats.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  global_stats.py
    +#
    +#  Tests:      global statistics expressions
    +#
    +#  Programmer: Justin Privitera
    +#  Date:       10/25/24
    +# ----------------------------------------------------------------------------
    +#  Description:
    +# 
    +# global statistics expressions are sensitive to ghost zones/nodes, so we test
    +# with two datasets - curv3d.silo which has no ghosts, and curv2d.silo which
    +# has ghosts. For each one, we look at the variables d (zonal) and u (nodal),
    +# since zonal and nodal variables have slightly different paths for global 
    +# stats expressions. For each variable, we look at each of the statistics on 
    +# offer.
    +# 
    +# ----------------------------------------------------------------------------
    +
    +# no ghosts in curv3d
    +curv3d_stats = {}
    +
    +# zonal stats
    +curv3d_stats["max_d"] = 4.9557
    +curv3d_stats["min_d"] = 2.03471
    +curv3d_stats["num_d"] = 36000 # num zones
    +curv3d_stats["sum_d"] = 125827.3203125
    +curv3d_stats["avg_d"] = 3.4952
    +curv3d_stats["std_d"] = 0.864568 # standard deviation
    +curv3d_stats["var_d"] = 0.747478 # variance
    +curv3d_stats["rms_d"] = 3.60055 # root mean square
    +
    +# nodal stats
    +curv3d_stats["max_u"] = 1
    +curv3d_stats["min_u"] = -1
    +curv3d_stats["num_u"] = 39401 # num nodes
    +curv3d_stats["sum_u"] = -93
    +curv3d_stats["avg_u"] = -0.00236035
    +curv3d_stats["std_u"] = 0.740144 # standard deviation
    +curv3d_stats["var_u"] = 0.547814 # variance
    +curv3d_stats["rms_u"] = 0.740148 # root mean square
    +
    +# yes ghosts in curv2d
    +curv2d_stats = {}
    +
    +# zonal stats
    +curv2d_stats["max_d"] = 4.8808
    +curv2d_stats["min_d"] = 2.1096
    +curv2d_stats["num_d"] = 988 # num zones
    +curv2d_stats["sum_d"] = 3453.2609271746946
    +curv2d_stats["avg_d"] = 3.4952
    +curv2d_stats["std_d"] = 0.821312 # standard deviation
    +curv2d_stats["var_d"] = 0.674554 # variance
    +curv2d_stats["rms_d"] = 3.5904 # root mean square
    +
    +# nodal stats
    +curv2d_stats["max_u"] = 1
    +curv2d_stats["min_u"] = -1
    +curv2d_stats["num_u"] = 1053 # num nodes
    +curv2d_stats["sum_u"] = 67.70071411132812
    +curv2d_stats["avg_u"] = 0.0642932
    +curv2d_stats["std_u"] = 0.7122947573661804 # standard deviation
    +curv2d_stats["var_u"] = 0.507364 # variance
    +curv2d_stats["rms_u"] = 0.715191 # root mean square
    +
    +baseline_stats = {}
    +baseline_stats["curvmesh3d"] = curv3d_stats
    +baseline_stats["curvmesh2d"] = curv2d_stats
    +
    +def test_stat(shortstatname, longstatname, meshname, varname, vartype):
    +        AddPlot("Pseudocolor", shortstatname + "_" + varname + "_" + vartype)
    +        DrawPlots()
    +        Query("MinMax")
    +        q = GetQueryOutputObject()
    +        # we test both the min and max because we want to ensure the variable is constant
    +        # across the mesh.
    +        if vartype == "zonal":
    +                TestValueEQ("Test " + longstatname + " 1 for " + varname, q['min'],
    +                        baseline_stats[meshname][shortstatname + "_" + varname])
    +                TestValueEQ("Test " + longstatname + " 2 for " + varname, q['max'],
    +                        baseline_stats[meshname][shortstatname + "_" + varname])
    +        else:
    +                TestValueEQ("Test " + longstatname + " 1 for " + varname, q['min'],
    +                        baseline_stats[meshname][shortstatname + "_" + varname])
    +                TestValueEQ("Test " + longstatname + " 2 for " + varname, q['max'],
    +                        baseline_stats[meshname][shortstatname + "_" + varname])
    +        DeleteAllPlots()
    +
    +def test_stats_for_var(meshname, varname, vartype):
    +        # define our expressions
    +        if vartype == "zonal":
    +                # every zone will have a value of 1
    +                DefineScalarExpression("one", "zonal_constant(" + meshname + ", 1)")
    +        else:
    +                # every node will have a value of 1
    +                DefineScalarExpression("one", "nodal_constant(" + meshname + ", 1)")
    +        DefineScalarExpression("avg_" + varname + "_" + vartype, "global_avg(" + varname + ")")
    +        DefineScalarExpression("max_" + varname + "_" + vartype, "global_max(" + varname + ")")
    +        DefineScalarExpression("min_" + varname + "_" + vartype, "global_min(" + varname + ")")
    +        DefineScalarExpression("num_" + varname + "_" + vartype, "global_sum(one)")
    +        DefineScalarExpression("rms_" + varname + "_" + vartype, "global_rms(" + varname + ")")
    +        DefineScalarExpression("std_" + varname + "_" + vartype, "global_std_dev(" + varname + ")")
    +        DefineScalarExpression("sum_" + varname + "_" + vartype, "global_sum(" + varname + ")")
    +        DefineScalarExpression("var_" + varname + "_" + vartype, "global_variance(" + varname + ")")
    +
    +        test_stat("avg", "Average",            meshname, varname, vartype)
    +        test_stat("max", "Maximum",            meshname, varname, vartype)
    +        test_stat("min", "Minimum",            meshname, varname, vartype)
    +        test_stat("num", "Number",             meshname, varname, vartype)
    +        test_stat("rms", "Root Mean Square",   meshname, varname, vartype)
    +        test_stat("std", "Standard Deviation", meshname, varname, vartype)
    +        test_stat("sum", "Sum",                meshname, varname, vartype)
    +        test_stat("var", "Variance",           meshname, varname, vartype)
    +
    +# no ghosts
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +test_stats_for_var("curvmesh3d", "d", "zonal") # zonal var
    +test_stats_for_var("curvmesh3d", "u", "nodal") # nodal var
    +CloseDatabase(silo_data_path("curv3d.silo"))
    +
    +# yes ghosts
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +test_stats_for_var("curvmesh2d", "d", "zonal") # zonal var
    +test_stats_for_var("curvmesh2d", "u", "nodal") # nodal var
    +CloseDatabase(silo_data_path("curv2d.silo"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/expressions_math_expr.html b/2024-12-12-22:00/poodle_trunk_serial/expressions_math_expr.html new file mode 100644 index 000000000..2ea3ba1d0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/expressions_math_expr.html @@ -0,0 +1,60 @@ + +Results for expressions/math_expr.py + +

    Results of VisIt Regression Test - expressions/math_expr

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Minimum Field Value
     1.0 .eq. 1.0 (prec=5) : True
    Maximum Field Value
     1.0 .eq. 1.0 (prec=5) : True
    Minimum Field Value
     0.0 .eq. 0.0 (prec=5) : True
    Maximum Field Value
     0.0 .eq. 0.0 (prec=5) : True
    Minimum Field Value
     1.0 .eq. 1.0 (prec=5) : True
    Maximum Field Value
     1.0 .eq. 1.0 (prec=5) : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/expressions_math_expr_py.html b/2024-12-12-22:00/poodle_trunk_serial/expressions_math_expr_py.html new file mode 100644 index 000000000..c386c5f49 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/expressions_math_expr_py.html @@ -0,0 +1,50 @@ +expressions/math_expr.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  math_expr.py
    +#
    +#  Tests:      Basic math expressions
    +#
    +#  Mark C. Miller, Fri Jul 26 14:13:43 PDT 2024
    +# ----------------------------------------------------------------------------
    +OpenDatabase(silo_data_path("globe.silo"))
    +meshName = "mesh1"
    +
    +# Test simple integer valued case first
    +DefineScalarExpression("const31", "nodal_constant(<" + meshName + ">, 31)")
    +DefineScalarExpression("const5", "nodal_constant(<" + meshName + ">, 5)")
    +DefineScalarExpression("mod1", "const31 % const5")
    +AddPlot("Pseudocolor", "mod1")
    +DrawPlots()
    +Query("MinMax")
    +q = GetQueryOutputObject()
    +TestValueEQ("Minimum Field Value", q['min'], 1.0)
    +TestValueEQ("Maximum Field Value", q['max'], 1.0)
    +DeleteAllPlots()
    +
    +# Test floating point case (zero remainder)
    +DefineScalarExpression("const7.5", "nodal_constant(<" + meshName + ">, 7.5)")
    +DefineScalarExpression("const2.5", "nodal_constant(<" + meshName + ">, 2.5)")
    +DefineScalarExpression("mod2", "const7.5 % const2.5")
    +AddPlot("Pseudocolor", "mod2")
    +DrawPlots()
    +Query("MinMax")
    +q = GetQueryOutputObject()
    +TestValueEQ("Minimum Field Value", q['min'], 0.0)
    +TestValueEQ("Maximum Field Value", q['max'], 0.0)
    +DeleteAllPlots()
    +
    +# Test floating point case (non-zero remainder)
    +DefineScalarExpression("const8.5", "nodal_constant(<" + meshName + ">, 8.5)")
    +DefineScalarExpression("const2.5", "nodal_constant(<" + meshName + ">, 2.5)")
    +DefineScalarExpression("mod3", "const8.5 % const2.5")
    +AddPlot("Pseudocolor", "mod3")
    +DrawPlots()
    +Query("MinMax")
    +q = GetQueryOutputObject()
    +TestValueEQ("Minimum Field Value", q['min'], 1.0)
    +TestValueEQ("Maximum Field Value", q['max'], 1.0)
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/expressions_tensor_expr.html b/2024-12-12-22:00/poodle_trunk_serial/expressions_tensor_expr.html new file mode 100644 index 000000000..ba9d7abcd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/expressions_tensor_expr.html @@ -0,0 +1,194 @@ + +Results for expressions/tensor_expr.py + +

    Results of VisIt Regression Test - expressions/tensor_expr

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    2D Tensor Maximum Shear
    Maximum Shear 2D
     46.097721099853516 .eq. 46.09772 (prec=5) : True
    Maximum Shear 2D
     46.097721099853516 .eq. 46.09772 (prec=5) : True
    3D Tensor Maximum Shear
    Maximum Shear 3D
     12.5 .eq. 12.5 (prec=5) : True
    Maximum Shear 3D
     12.5 .eq. 12.5 (prec=5) : True
    2D Effective Tensor
    2D Effective Tensor
     81.24038696289062 .eq. 81.24039 (prec=5) : True
    2D Effective Tensor
     81.24038696289062 .eq. 81.24039 (prec=5) : True
    3D Effective Tensor
    Effective Tensor
     13.076696395874023 .eq. 13.0767 (prec=5) : True
    Effective Tensor
     13.076696395874023 .eq. 13.0767 (prec=5) : True
    3D, Symmetric Eigenvalues and Eigenvectors
    First Eigenvalue of 2
     2 .in. 
    [3.4142136573791504, 2.0, 0.5857864618301392]
     (prec=5, at=1) : True
    Second Eigenvalue of 2+sqrt(2)
     3.414213562373095 .in. 
    [3.4142136573791504, 2.0, 0.5857864618301392]
     (prec=5, at=0) : True
    Third Eigenvalue of 2-sqrt(2)
     0.5857864376269049 .in. 
    [3.4142136573791504, 2.0, 0.5857864618301392]
     (prec=5, at=2) : True
    First Eigenvector of (1,0,-1)
     (1, 0, -1) .in. 
    [[0.5, -0.70711, 0.5],
      [0.70711, 0.0, -0.70711],
      [0.5, 0.70711, 0.5]]
     (prec=5, at=1) : True
    Second Eigenvector of (1,-sqrt(2),1)
     (1, -1.4142135623730951, 1) .in. 
    [[0.5, -0.70711, 0.5],
      [0.70711, 0.0, -0.70711],
      [0.5, 0.70711, 0.5]]
     (prec=5, at=0) : True
    Third Eigenvector of (1,sqrt(2),1)
     (1, 1.4142135623730951, 1) .in. 
    [[0.5, -0.70711, 0.5],
      [0.70711, 0.0, -0.70711],
      [0.5, 0.70711, 0.5]]
     (prec=5, at=2) : True
    3D, Symmetric Eigenvalues and Eigenvectors with Repeated values
    First Eigenvalue of -1
     -1 .in. 
    [8.0, -1.0, -1.0]
     (prec=5, at=1) : True
    Second Eigenvalue of -1
     -1 .in. 
    [8.0, -1.0]
     (prec=5, at=1) : True
    Third Eigenvalue of 8
     8 .in. 
    [8.0, -1.0]
     (prec=5, at=0) : True
    First Eigenvector of (1,-2,0)
     (1, -2, 0) .in. 
    [[0.666667, 0.333333, 0.666667],
      [0.596285, 0.298142, -0.745356],
      [-0.447214, 0.894427, 0.0]]
     (prec=5, at=2) : True
    Second Eigenvector of (4,2,-5)
     (4, 2, -5) .in. 
    [[0.666667, 0.333333, 0.666667],
      [0.596285, 0.298142, -0.745356],
      [-0.447214, 0.894427, 0.0]]
     (prec=5, at=1) : True
    Third Eigenvector of (2,1,2)
     (2, 1, 2) .in. 
    [[0.666667, 0.333333, 0.666667],
      [0.596285, 0.298142, -0.745356],
      [-0.447214, 0.894427, 0.0]]
     (prec=5, at=0) : True
    Cross Principal Stresses and Eigenvalues
    First principal component is first eigenvalue
     -1 .in. 
    [8.0, -1.0, -1.0]
     (prec=5, at=1) : True
    Second principal component is second eigenvalue
     -1 .in. 
    [8.0, -1.0]
     (prec=5, at=1) : True
    Third principal component is third eigenvalue
     8 .in. 
    [8.0, -1.0]
     (prec=5, at=0) : True
    2D, Symmetric Eigenvalues and Eigenvectors
    First Eigenvalue of -1
     -1 .in. 
    [5.0, 0.0, -1.0]
     (prec=5, at=2) : True
    Second Eigenvalue of 5
     5 .in. 
    [5.0, 0.0, -1.0]
     (prec=5, at=0) : True
    First Eigenvector of (1,-1)
     (1, -1) .in. 
    [[0.70711, 0.70711, 0.0],
      [0.70711, -0.70711, 0.0]]
     (prec=5, at=1) : True
    Second Eigenvector of (1,1)
     (1, 1) .in. 
    [[0.70711, 0.70711, 0.0],
      [0.70711, -0.70711, 0.0]]
     (prec=5, at=0) : True
    3D, Complex Eigenvalues and Eigenvectors
    First Eigenvalue of 2
     2 .in. 
    [2.0, 1.4000000953674316, 0.19999998807907104]
     (prec=5, at=0) : True
    Second Eigenvalue of (4+3i)/5
     1.4 .in. 
    [2.0, 1.4000000953674316, 0.19999998807907104]
     (prec=5, at=1) : True
    Third Eigenvalue of (4-3i)/5
     0.2 .in. 
    [2.0, 1.4000000953674316, 0.19999998807907104]
     (prec=5, at=2) : True
    First Eigenvector of (0,0,1)
     (0, 0, 1) .in. 
    [[0.0, 0.0, 1.0],
      [0.70711, -0.70711, 0.0],
      [0.70711, 0.70711, 0.0]]
     (prec=5, at=0) : True
    Cross Check Deviatoric and Principal Stresses
    Principal deviatoric and principal-tr()/3 agree
     [6.0, -3.0, -3.0] .eq. [6.0, -3.0, -3.0]
     (prec=5) : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/expressions_tensor_expr_py.html b/2024-12-12-22:00/poodle_trunk_serial/expressions_tensor_expr_py.html new file mode 100644 index 000000000..ad131cffe --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/expressions_tensor_expr_py.html @@ -0,0 +1,262 @@ +expressions/tensor_expr.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  tensor_expr.py
    +#
    +#  Tests:      tensor expressions using simple, constant valued tensors for
    +#              which answers are known. The known answers were obtained by
    +#              scouring the internet for example problems that were worked.
    +#
    +#  Mark C. Miller, Mon Nov 11 14:52:02 PST 2019
    +#
    +# ----------------------------------------------------------------------------
    +import math, re
    +
    +#
    +# Scans a string for possible python iterables, builds a list of them
    +# and returns them with their values rounded to specific numbers of
    +# digits.
    +#
    +def ExtractIterablesFromString(s,pair='()',rnd=4):
    +    retval = []
    +    for q in s.split(pair[0]):
    +        for r in q.split(pair[1]):
    +            if re.match('^[ 0-9eE.,+-]+$', r):
    +                retval.append([round(float(x),rnd) for x in r.split(',')])
    +    return retval
    +
    +def EqualEigVecs(a,b):
    +    r = []
    +    for i in range(len(b)):
    +        if b[i] != 0:
    +            r.append(float(a[i])/float(b[i]))
    +    if min(r) == 0:
    +        return max(r) < pow(10,-Prec+1)
    +    else:
    +        return abs((max(r)/min(r))-1) < pow(10,-Prec+1)
    +
    +#
    +# Creates a group of related expressions; 9 constant scalar expressions and
    +# from them a constant tensor expression with specified centering all in a
    +# sub-menu with of the given name. For 2D meshes, you would still create a
    +# 9 component (3x3) tensor but the z-dimension values would all be zeros.
    +#
    +def CreateConstantTensorExpr(name, meshName, constType, vals):
    +    comps = ("s11","s12","s13","s21","s22","s23","s31","s32","s33")
    +    for i in range(len(vals)):
    +        DefineScalarExpression("%s/%s"%(name,comps[i]),\
    +            "%s_constant(<%s>, %g)"%(constType,meshName,vals[i]))
    +    DefineTensorExpression("%s/tensor"%name,
    +        "{{<%s/s11>,<%s/s12>,<%s/s13>},\
    +          {<%s/s21>,<%s/s22>,<%s/s23>},\
    +          {<%s/s31>,<%s/s32>,<%s/s33>}}"%(name, name, name, name,\
    +              name, name, name, name, name))
    +
    +#
    +# Set precision for rounding operations
    +#
    +Prec = 5
    +
    +#  Since we use the expression system to construct mesh-wide constant values,
    +#  all we need as far as a database is a simple, small mesh. Maybe for both
    +#  two and three dimensions.
    +OpenDatabase(silo_data_path("arbpoly.silo"))
    +meshName = "clipped_hex"
    +
    +TestSection("2D Tensor Maximum Shear")
    +CreateConstantTensorExpr("max_shear_2d", meshName, "nodal",\
    +   (50,  30,   0,\
    +    30, -20,   0,\
    +     0,   0,   0))
    +DefineScalarExpression("max_shear_2d/result", "tensor_maximum_shear(<max_shear_2d/tensor>)")
    +AddPlot("Pseudocolor", "max_shear_2d/result")
    +DrawPlots()
    +Query("MinMax")
    +q = GetQueryOutputObject()
    +TestValueEQ("Maximum Shear 2D", q['min'], 46.09772, Prec)
    +TestValueEQ("Maximum Shear 2D", q['max'], 46.09772, Prec)
    +DeleteAllPlots()
    +
    +TestSection("3D Tensor Maximum Shear")
    +CreateConstantTensorExpr("max_shear", meshName, "nodal",\
    +   (5,   0,   0,\
    +    0,  -6, -12,\
    +    0, -12,   1))
    +DefineScalarExpression("max_shear/result", "tensor_maximum_shear(<max_shear/tensor>)")
    +AddPlot("Pseudocolor", "max_shear/result")
    +DrawPlots()
    +Query("MinMax")
    +q = GetQueryOutputObject()
    +TestValueEQ("Maximum Shear 3D", q['min'], 12.5, Prec)
    +TestValueEQ("Maximum Shear 3D", q['max'], 12.5, Prec)
    +DeleteAllPlots()
    +
    +TestSection("2D Effective Tensor")
    +CreateConstantTensorExpr("eff_tensor_2d", meshName, "nodal",\
    +   (50,  30,   0,\
    +    30, -20,   0,\
    +     0,   0,   0))
    +DefineScalarExpression("eff_tensor_2d/result", "effective_tensor(<eff_tensor_2d/tensor>)")
    +AddPlot("Pseudocolor", "eff_tensor_2d/result")
    +DrawPlots()
    +Query("MinMax")
    +q = GetQueryOutputObject()
    +TestValueEQ("2D Effective Tensor", q['min'], 81.24039, Prec)
    +TestValueEQ("2D Effective Tensor", q['max'], 81.24039, Prec)
    +DeleteAllPlots()
    +
    +TestSection("3D Effective Tensor")
    +CreateConstantTensorExpr("eff_tensor", meshName, "nodal",\
    +   (2,  -3,   4,\
    +   -3,  -5,   1,\
    +    4,   1,   6))
    +DefineScalarExpression("eff_tensor/result", "effective_tensor(<eff_tensor/tensor>)")
    +AddPlot("Pseudocolor", "eff_tensor/result")
    +DrawPlots()
    +Query("MinMax")
    +q = GetQueryOutputObject()
    +TestValueEQ("Effective Tensor", q['min'], 13.0767, Prec)
    +TestValueEQ("Effective Tensor", q['max'], 13.0767, Prec)
    +DeleteAllPlots()
    +
    +TestSection("3D, Symmetric Eigenvalues and Eigenvectors")
    +CreateConstantTensorExpr("eigvals_symm2", meshName, "nodal",\
    +    (2, -1,  0,\
    +    -1,  2, -1,\
    +     0, -1,  2))
    +DefineVectorExpression("eigvals_symm2/result", "eigenvalue(<eigvals_symm2/tensor>)")
    +AddPlot("Vector", "eigvals_symm2/result")
    +DrawPlots()
    +p = PickByNode(0,('eigvals_symm2/result',))
    +eigvals = list(p['eigvals_symm2/result'])
    +TestValueIN("First Eigenvalue of 2", eigvals, 2, Prec)
    +TestValueIN("Second Eigenvalue of 2+sqrt(2)", eigvals, 2+math.sqrt(2), Prec)
    +TestValueIN("Third Eigenvalue of 2-sqrt(2)",  eigvals, 2-math.sqrt(2), Prec)
    +DeleteAllPlots()
    +DefineTensorExpression("eigvals_symm2/result2", "transpose(eigenvector(<eigvals_symm2/tensor>))")
    +AddPlot("Tensor", "eigvals_symm2/result2")
    +DrawPlots()
    +PickByNode(0)
    +s = GetPickOutput()
    +vecs = ExtractIterablesFromString(s, '()', Prec)
    +TestValueIN("First Eigenvector of (1,0,-1)", vecs, (1,0,-1), Prec, EqualEigVecs)
    +TestValueIN("Second Eigenvector of (1,-sqrt(2),1)", vecs, (1,-math.sqrt(2),1), Prec, EqualEigVecs)
    +TestValueIN("Third Eigenvector of (1,sqrt(2),1)", vecs, (1,math.sqrt(2),1), Prec, EqualEigVecs)
    +
    +TestSection("3D, Symmetric Eigenvalues and Eigenvectors with Repeated values")
    +CreateConstantTensorExpr("eigvals_symm", meshName, "nodal",\
    +    (3,2,4,\
    +     2,0,2,\
    +     4,2,3))
    +DefineVectorExpression("eigvals_symm/result", "eigenvalue(<eigvals_symm/tensor>)")
    +AddPlot("Vector", "eigvals_symm/result")
    +DrawPlots()
    +p = PickByNode(0)
    +eigvals = list(p['eigvals_symm/result'])
    +TestValueIN("First Eigenvalue of -1", eigvals, -1, Prec)
    +eigvals.remove(-1)
    +TestValueIN("Second Eigenvalue of -1", eigvals, -1, Prec)
    +TestValueIN("Third Eigenvalue of 8", eigvals, 8, Prec)
    +DeleteAllPlots()
    +DefineTensorExpression("eigvals_symm/result2", "transpose(eigenvector(<eigvals_symm/tensor>))")
    +AddPlot("Tensor", "eigvals_symm/result2")
    +DrawPlots()
    +PickByNode(0)
    +s = GetPickOutput()
    +vecs = ExtractIterablesFromString(s, '()', Prec+1)
    +TestValueIN("First Eigenvector of (1,-2,0)", vecs, (1,-2,0), Prec, EqualEigVecs)
    +TestValueIN("Second Eigenvector of (4,2,-5)", vecs, (4,2,-5), Prec, EqualEigVecs)
    +TestValueIN("Third Eigenvector of (2,1,2)", vecs, (2,1,2), Prec, EqualEigVecs)
    +DeleteAllPlots()
    +
    +# Confirm principal_tensor function gives same result as above
    +TestSection("Cross Principal Stresses and Eigenvalues")
    +DefineVectorExpression("pcomps_symm/result", "principal_tensor(<eigvals_symm/tensor>)")
    +AddPlot("Vector", "pcomps_symm/result")
    +DrawPlots()
    +p = PickByNode(0)
    +pcomps = list(p['pcomps_symm/result'])
    +TestValueIN("First principal component is first eigenvalue", pcomps, -1, Prec)
    +pcomps.remove(-1) # elim the first of the expected two -1 eigvals
    +TestValueIN("Second principal component is second eigenvalue", pcomps, -1, Prec)
    +TestValueIN("Third principal component is third eigenvalue", pcomps, 8, Prec)
    +
    +TestSection("2D, Symmetric Eigenvalues and Eigenvectors")
    +CreateConstantTensorExpr("eigvals_symm_2d", meshName, "nodal",\
    +    (2,  3,  0,\
    +     3,  2,  0,\
    +     0,  0,  0))
    +DefineVectorExpression("eigvals_symm_2d/result", "eigenvalue(<eigvals_symm_2d/tensor>)")
    +AddPlot("Vector", "eigvals_symm_2d/result")
    +DrawPlots()
    +p = PickByNode(0,('eigvals_symm_2d/result',))
    +eigvals = list(p['eigvals_symm_2d/result'])
    +TestValueIN("First Eigenvalue of -1", eigvals, -1, Prec)
    +TestValueIN("Second Eigenvalue of 5", eigvals, 5, Prec)
    +DeleteAllPlots()
    +DefineTensorExpression("eigvals_symm_2d/result2", "transpose(eigenvector(<eigvals_symm_2d/tensor>))")
    +AddPlot("Tensor", "eigvals_symm_2d/result2")
    +DrawPlots()
    +PickByNode(0)
    +s = GetPickOutput()
    +vecs = ExtractIterablesFromString(s, '()', Prec)
    +vecs.remove([0,0,1]) # we have to take out the Z eigenvector
    +TestValueIN("First Eigenvector of (1,-1)", vecs, (1,-1), Prec, EqualEigVecs)
    +TestValueIN("Second Eigenvector of (1,1)", vecs, (1,1), Prec, EqualEigVecs)
    +
    +#
    +# Test a case where eigenvalues are complex (e.g. imaginary)
    +# The real eigenvalues are 2, (4+3i)/5, (4-3i)/5 but what you
    +# get from VisIt is 2, 7/5, 1/5 (as though i==1 in the above).
    +#
    +TestSection("3D, Complex Eigenvalues and Eigenvectors")
    +CreateConstantTensorExpr("eigvals_complex", meshName, "nodal",\
    +    (4.0/5.0, -3.0/5.0,     0,\
    +     3.0/5.0,  4.0/5.0,     0,\
    +        1,        2,        2))
    +DefineVectorExpression("eigvals_complex/result", "eigenvalue(<eigvals_complex/tensor>)")
    +AddPlot("Vector", "eigvals_complex/result")
    +DrawPlots()
    +p = PickByNode(0)
    +eigvals = list(p['eigvals_complex/result'])
    +TestValueIN("First Eigenvalue of 2", eigvals, 2, Prec)
    +TestValueIN("Second Eigenvalue of (4+3i)/5", eigvals, float(4+3)/5.0, Prec)
    +TestValueIN("Third Eigenvalue of (4-3i)/5", eigvals, float(4-3)/5.0, Prec)
    +DeleteAllPlots()
    +DefineTensorExpression("eigvals_complex/result2", "transpose(eigenvector(<eigvals_complex/tensor>))")
    +AddPlot("Tensor", "eigvals_complex/result2")
    +DrawPlots()
    +PickByNode(0)
    +s = GetPickOutput()
    +vecs = ExtractIterablesFromString(s, '()', Prec)
    +TestValueIN("First Eigenvector of (0,0,1)", vecs, (0,0,1), Prec, EqualEigVecs)
    +DeleteAllPlots()
    +
    +# Re-use eigvals_symm here
    +TestSection("Cross Check Deviatoric and Principal Stresses")
    +DefineVectorExpression("eigvals_symm/dev", "principal_deviatoric_tensor(<eigvals_symm/tensor>)")
    +AddPlot("Vector", "eigvals_symm/dev")
    +DrawPlots()
    +PickByNode(0)
    +s = GetPickOutput()
    +dev_vec = ExtractIterablesFromString(s, '()', Prec)
    +DeleteAllPlots()
    +DefineScalarExpression("eigvals_symm/tr3", "trace(<eigvals_symm/tensor>)/3.0")
    +DefineTensorExpression("eigvals_symm/tensor3",\
    +"""
    +    {{<eigvals_symm/tensor>[0][0]-<eigvals_symm/tr3>, <eigvals_symm/tensor>[0][1], <eigvals_symm/tensor>[0][2]},
    +     {<eigvals_symm/tensor>[1][0], <eigvals_symm/tensor>[1][1]-<eigvals_symm/tr3>, <eigvals_symm/tensor>[1][2]},
    +     {<eigvals_symm/tensor>[2][0], <eigvals_symm/tensor>[2][1], <eigvals_symm/tensor>[2][2]-<eigvals_symm/tr3>}}
    +"""
    +)
    +DefineVectorExpression("eigvals_symm/dev2", "principal_tensor(<eigvals_symm/tensor3>)")
    +AddPlot("Vector", "eigvals_symm/dev2")
    +DrawPlots()
    +PickByNode(0)
    +s = GetPickOutput()
    +dev2_vec = ExtractIterablesFromString(s, '()', Prec)
    +DeleteAllPlots()
    +TestValueEQ("Principal deviatoric and principal-tr()/3 agree", dev_vec[0], dev2_vec[0])
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/faulttolerance_badfile.html b/2024-12-12-22:00/poodle_trunk_serial/faulttolerance_badfile.html new file mode 100644 index 000000000..9ad1581fd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/faulttolerance_badfile.html @@ -0,0 +1,40 @@ + +Results for faulttolerance/badfile.py + +

    Results of VisIt Regression Test - faulttolerance/badfile

    + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    badfile_020 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/faulttolerance_badfile_py.html b/2024-12-12-22:00/poodle_trunk_serial/faulttolerance_badfile_py.html new file mode 100644 index 000000000..96bb47c80 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/faulttolerance_badfile_py.html @@ -0,0 +1,34 @@ +faulttolerance/badfile.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Tests: The quality of the error message being produced when opening a bad
    +#         file.
    +#
    +#  Programmer: Hank Childs
    +#  Date:       January 12, 2007
    +#
    +# ----------------------------------------------------------------------------
    +
    +import os
    +
    +TurnOnAllAnnotations()
    +
    +# Make zero-length Silo file.  The Silo reader is smart enough to not
    +# crash, which means we can test the normal error message.
    +f = open("junk.silo", "w")
    +f.close()
    +OpenDatabase("junk.silo")
    +e = GetLastError()
    +#TestText("badfile_01", e)
    +
    +# Make zero-length VTK file.  The VTK reader crashes in this case.  If the
    +# VTK reader is ever improved, then we'll have to locate a reader that
    +# crashes successfully.  (Maybe we'll write one.)
    +f = open("junk.vtk", "w")
    +f.close()
    +OpenDatabase("junk.vtk")
    +e = GetLastError()
    +TestText("badfile_02", e)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/faulttolerance_checkmode.html b/2024-12-12-22:00/poodle_trunk_serial/faulttolerance_checkmode.html new file mode 100644 index 000000000..f6fab913c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/faulttolerance_checkmode.html @@ -0,0 +1,60 @@ + +Results for faulttolerance/checkmode.py + +

    Results of VisIt Regression Test - faulttolerance/checkmode

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    All mode strings compatible
     "True" .eq. "True" : True
    Engine matches mode
     "True" .eq. "True" : True
    Silo data path matches mode
     "True" .eq. "True" : True
    Scalable setting matches mode
     "True" .eq. "True" : True
    Icet clarg matches mode
     "True" .eq. "True" : True
    Allowdynamic clarg matches mode
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/faulttolerance_checkmode_py.html b/2024-12-12-22:00/poodle_trunk_serial/faulttolerance_checkmode_py.html new file mode 100644 index 000000000..1eb089f37 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/faulttolerance_checkmode_py.html @@ -0,0 +1,111 @@ +faulttolerance/checkmode.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Tests: Ensures VisIt and/or the test harness is in the correct "mode".
    +#
    +#  Mark C. Miller, Mon Sep 28 16:24:44 PDT 2020
    +#
    +# Modifications:
    +#    Mark C. Miller, Mon Jan 11 10:32:17 PST 2021
    +#    Replace AssertTrue() with TestValueEQ(..., True)
    +# ----------------------------------------------------------------------------
    +import json
    +import sys
    +
    +#
    +# Obtain mode info directly from top-level command-line args passed to test
    +# suite harness and stored to "clargs" member of TestEnv.params instead of
    +# using any of the alternative logic in the test harness. This ensures we
    +# compare with actual mode(s) requested on command-line.
    +#
    +def GetModeKeysFromClArgs():
    +    clargs = json.loads(TestEnv.params["clargs"])
    +    for i in range(len(clargs)):
    +        if clargs[i] == '-m':
    +            return clargs[i+1].split(',')
    +        elif clargs[i][0:7] == '--mode=':
    +            return clargs[i][8:].split(',')
    +    return ('serial',)
    +
    +#
    +# Ensure all mode keys are compatible
    +#
    +def AllModeKeysCompatible():
    +    if 'serial' in activeModeKeys and 'parallel' in activeModeKeys:
    +        return False
    +    if 'pdb' in activeModeKeys and 'hdf5' in activeModeKeys:
    +        return False
    +    if 'icet' in activeModeKeys and 'parallel' not in activeModeKeys:
    +        return False
    +    return True
    +
    +#
    +# Check that engine matches the specified mode
    +#
    +def EngineMatchesMode():
    +    pa = GetProcessAttributes("engine")
    +    if 'parallel' in activeModeKeys:
    +        if pa.isParallel:
    +            if len(pa.pids) > 1:
    +                return True
    +    else:
    +        if not pa.isParallel:
    +            if len(pa.pids) == 1:
    +                return True
    +    return False
    +
    +#
    +# Check that Silo data path matches its mode
    +#
    +def SiloDataPathMatchesMode():
    +    if 'pdb' in activeModeKeys:
    +        if 'silo_pdb_test_data' in silo_data_path(''):
    +            return True
    +    else:
    +        if 'silo_hdf5_test_data' in silo_data_path(''):
    +            return True
    +    return False
    +
    +#
    +# Ensure rendering mode matches mode
    +#
    +def ScalableSettingMatchesMode():
    +    ra = GetRenderingAttributes()
    +    if 'scalable' in activeModeKeys:
    +        if ra.scalableActivationMode == ra.Always:
    +            return True
    +    else:
    +        if ra.scalableActivationMode == ra.Never:
    +            return True
    +    return False
    +
    +def IcetClargMatchesMode():
    +    if 'icet' in activeModeKeys and '-icet' not in sys.argv:
    +        return False
    +    if '-icet' in sys.argv and 'icet' not in activeModeKeys:
    +        return False
    +    return True
    +
    +def AllowdynamicClargMatchesMode():
    +    if 'dlb' in activeModeKeys and '-allowdynamic' not in sys.argv:
    +        return False
    +    if '-allowdynamic' in sys.argv and 'dlb' not in activeModeKeys:
    +        return False
    +    return True
    +
    +#
    +# Capture clargs and known mode keys from raw data entries stored
    +# to TestEnv.params. Do this once, now, instead of each time we
    +# need to interrogate their contents in the above functions.
    +#
    +activeModeKeys = GetModeKeysFromClArgs()
    +
    +TestValueEQ("All mode strings compatible", AllModeKeysCompatible(), True)
    +TestValueEQ("Engine matches mode", EngineMatchesMode(), True)
    +TestValueEQ("Silo data path matches mode", SiloDataPathMatchesMode(), True)
    +TestValueEQ("Scalable setting matches mode", ScalableSettingMatchesMode(), True)
    +TestValueEQ("Icet clarg matches mode", IcetClargMatchesMode(), True)
    +TestValueEQ("Allowdynamic clarg matches mode", AllowdynamicClargMatchesMode(), True)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/faulttolerance_savewindow.html b/2024-12-12-22:00/poodle_trunk_serial/faulttolerance_savewindow.html new file mode 100644 index 000000000..f23654edb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/faulttolerance_savewindow.html @@ -0,0 +1,40 @@ + +Results for faulttolerance/savewindow.py + +

    Results of VisIt Regression Test - faulttolerance/savewindow

    + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    SaveWindowEngineCrash0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/faulttolerance_savewindow_py.html b/2024-12-12-22:00/poodle_trunk_serial/faulttolerance_savewindow_py.html new file mode 100644 index 000000000..7a1398148 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/faulttolerance_savewindow_py.html @@ -0,0 +1,57 @@ +faulttolerance/savewindow.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Tests: weather or not SaveWindow can result in a python exception
    +#
    +#  Programmer: Mark C. Miller
    +#  Date:       March 7, 2006 
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Tue Feb 8, 2022
    +#    Use run_dir as outputDirectory instead of current. It is in the
    +#    testing output directory and is cleaned up on exit.
    +#    Added taskkill for Windows to kill the engine.
    +#
    +# ----------------------------------------------------------------------------
    +
    +import os
    +
    +TurnOnAllAnnotations()
    +
    +swa = SaveWindowAttributes()
    +swa.outputToCurrentDirectory = 0
    +swa.outputDirectory = TestEnv.params["run_dir"]
    +SetSaveWindowAttributes(swa)
    +
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +AddPlot("Pseudocolor","pressure")
    +DrawPlots()
    +
    +pa = GetProcessAttributes("engine")
    +enginePid = int(pa.pids[0])
    +
    +s = ""
    +
    +for i in range(6):
    +    TimeSliderSetState(i)
    +    if i == 3:
    +        if sys.platform.startswith("win"):
    +            os.system("taskkill.exe /F /PID %d /T"%enginePid)
    +        else:
    +            os.system("kill -9 %d"%enginePid)
    +    try:
    +        SaveWindow()
    +    except Exception as inst:
    +        s = s + "save %d had exception \"%s\"\n"%(i,inst);
    +    else:
    +        s = s + "save %d succeeded\n"%i;
    +
    +TestText("SaveWindowEngineCrash", s)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_cinema-a.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_cinema-a.html new file mode 100644 index 000000000..96eaeb227 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_cinema-a.html @@ -0,0 +1,108 @@ + +Results for hybrid/cinema-a.py + +

    Results of VisIt Regression Test - hybrid/cinema-a

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Cinema spec A static camera
    cinema_0_000 modifications totalling 0 lines
    cinema_0_010 modifications totalling 0 lines
    cinema_0_020 modifications totalling 0 lines
    cinema_0_030.000.00
    Cinema spec A phi-theta camera
    cinema_1_000 modifications totalling 0 lines
    cinema_1_010 modifications totalling 0 lines
    cinema_1_020 modifications totalling 0 lines
    cinema_1_030.000.00
    cinema_1_040.000.00
    cinema_1_050.000.00
    cinema_1_060.000.00
    cinema_1_070.000.00
    cinema_1_080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_cinema-a_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_cinema-a_py.html new file mode 100644 index 000000000..3752aad92 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_cinema-a_py.html @@ -0,0 +1,214 @@ +hybrid/cinema-a.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  cinema-a.py
    +#
    +#  Tests:      Tests various aspects of "visit -cinema".
    +#
    +#  Notes:      
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Feb 15 16:37:20 PST 2018
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Friday December 14, 2018
    +#    Fixes for running on Windows: Use abs_path for short_wave.visit, and cdb,
    +#    use 'repr(db)' when writing script file to preserve '\' escapes.
    +#    Replace forward-slash with back-slash in pattern.
    +#
    +#    Kathleen Biagas, Tue Jun 11 11:44:14 PDT 2019
    +#    Pass '-noconfig' to generated command line in GenerateCinema.
    +#
    +#    Kathleen Biagas, Tue Sep 14 09:51:45 PDT 2021
    +#    Added call to CloseComputeEngine to GenerateCinema method, since the
    +#    cinema script launches its own. Prevents a hang when run in parallel.
    +#
    +#    Kathleen Biagas, Tue Sep 21 17:22:58 PDT 2021
    +#    Removed CloseComputeEngine, it prevented the non-cinema-generation parts
    +#    of the test from running in parallel.  If the nightlies use srun,
    +#    add "--overlap" srun option.  This allows cinema test to succeed in
    +#    parallel with recent changes to slurm.
    +#
    +# ----------------------------------------------------------------------------
    +import os
    +import subprocess
    +
    +def GenerateCinema(cinemaArgs):
    +    args = [TestEnv.params["visit_bin"], "-noconfig", "-cinema"] + cinemaArgs
    +    if TestEnv.params["parallel"]:
    +        args = args + ["-np", "2", "-l", TestEnv.params["parallel_launch"]]
    +        if TestEnv.params["parallel_launch"] == "srun":
    +            args = args + ["-la", "--overlap"]
    +    p = subprocess.check_output(args)
    +    return p
    +
    +def GetFileList(path0):
    +    def gfl(path):
    +        outfiles = []
    +        files = os.listdir(path)
    +        for f in sorted(files):
    +            fpath = os.path.join(path, f)
    +            if os.path.isdir(fpath):
    +                outfiles = outfiles + gfl(fpath)
    +            else:
    +                outfiles = outfiles + [fpath[lpath0+1:]]
    +        return outfiles
    +    lpath0 = len(path0)
    +    return gfl(path0)
    +
    +def ListToString(files):
    +    s = ""
    +    for f in files:
    +        s += f
    +        s += "\n"
    +    return s
    +
    +def GetFile(manyfilenames, filename):
    +    for f in manyfilenames:
    +        if f.find(filename) != -1:
    +            return f
    +    return ""
    +
    +def ReadTextFile(filename):
    +    lines = open(filename, "rt").readlines()
    +    s = ""
    +    for line in lines:
    +        s += line
    +    return s
    +
    +def test0(db):
    +    TestSection("Cinema spec A static camera")
    +    f = open("test0.py", "wt")
    +    f.write("OpenDatabase(%s)\n" % repr(db))
    +    f.write('AddPlot("Pseudocolor", "pressure")\n')
    +    f.write('DrawPlots()\n')
    +    f.write('v = GetView3D()\n')
    +    f.write('v.viewNormal = (-0.569392, 0.672931, 0.472183)\n')
    +    f.write('v.focus = (5, 0.353448, 2.5)\n')
    +    f.write('v.viewUp = (0.562941, 0.737756, -0.372577)\n')
    +    f.write('v.viewAngle = 30\n')
    +    f.write('v.parallelScale = 5.6009\n')
    +    f.write('v.nearPlane = -11.2018\n')
    +    f.write('v.farPlane = 11.2018\n')
    +    f.write('v.imagePan = (0.0431021, 0.0442006)\n')
    +    f.write('v.imageZoom = 1.06444\n')
    +    f.write('v.perspective = 1\n')
    +    f.write('v.eyeAngle = 2\n')
    +    f.write('v.centerOfRotationSet = 0\n')
    +    f.write('v.centerOfRotation = (5, 0.353448, 2.5)\n')
    +    f.write('v.axis3DScaleFlag = 0\n')
    +    f.write('v.axis3DScales = (1, 1, 1)\n')
    +    f.write('v.shear = (0, 0, 1)\n')
    +    f.write('v.windowValid = 1\n')
    +    f.write('SetView3D(v)\n')
    +    f.write('a = GetAnnotationAttributes()\n')
    +    f.write('a.axes3D.visible = 0\n')
    +    f.write('a.axes3D.bboxFlag = 0\n')
    +    f.write('a.axes3D.triadFlag = 0\n')
    +    f.write('a.legendInfoFlag = 0\n')
    +    f.write('a.databaseInfoFlag = 0\n')
    +    f.write('a.userInfoFlag = 0\n')
    +    f.write('SetAnnotationAttributes(a)\n')
    +    f.close()
    +
    +    cdb = abs_path(TestEnv.params["run_dir"], "test0.cdb")
    +    sz = "%dx%d" % (TestEnv.params["width"], TestEnv.params["height"])
    +    args = ["-specification", "A", "-scriptfile", "test0.py", "-output", cdb, "-format", "png", "-geometry", sz, "-camera", "static"]
    +    TestText("cinema_0_00", ListToString(args))
    +
    +    output = GenerateCinema(args)
    +
    +    files = GetFileList(cdb)
    +    TestText("cinema_0_01", ListToString(files))
    +
    +    json = ReadTextFile(os.path.join(cdb, GetFile(files, "info.json")))
    +    TestText("cinema_0_02", json)
    +
    +    firstimg = os.path.join(cdb, GetFile(files, ".png"))
    +    OpenDatabase(firstimg)
    +    AddPlot("Truecolor", "color")
    +    DrawPlots()
    +    v = GetView2D()
    +    v.viewportCoords = (0,1,0,1)
    +    SetView2D(v)
    +    Test("cinema_0_03")
    +    DeleteAllPlots()
    +    CloseDatabase(firstimg)
    +
    +def test1(db):
    +    TestSection("Cinema spec A phi-theta camera")
    +    f = open("test1.py", "wt")
    +    f.write("OpenDatabase(%s)\n" % repr(db))
    +    f.write('AddPlot("Pseudocolor", "pressure")\n')
    +    f.write('DrawPlots()\n')
    +    f.write('a = GetAnnotationAttributes()\n')
    +    f.write('a.axes3D.visible = 0\n')
    +    f.write('a.axes3D.bboxFlag = 0\n')
    +    f.write('a.axes3D.triadFlag = 0\n')
    +    f.write('a.legendInfoFlag = 0\n')
    +    f.write('a.databaseInfoFlag = 0\n')
    +    f.write('a.userInfoFlag = 0\n')
    +    f.write('SetAnnotationAttributes(a)\n')
    +    f.close()
    +
    +    cdb = abs_path(TestEnv.params["run_dir"], "test1.cdb")
    +
    +    sz = "%dx%d" % (TestEnv.params["width"], TestEnv.params["height"])
    +    args = ["-specification", "A", "-scriptfile", "test1.py", "-output", cdb, "-format", "png", "-geometry", sz, "-camera", "phi-theta", "-phi", "6", "-theta", "5", "-stride", "3"]
    +    TestText("cinema_1_00", ListToString(args))
    +
    +    output = GenerateCinema(args)
    +
    +    files = GetFileList(cdb)
    +    TestText("cinema_1_01", ListToString(files))
    +
    +    json = ReadTextFile(os.path.join(cdb, GetFile(files, "info.json")))
    +    TestText("cinema_1_02", json)
    +
    +    # Use the JSON to come up with some filenames to plot. We will vary phi.
    +    params = eval(json)
    +    theta_values = [str(x) for x in params["arguments"]["theta"]["values"]]
    +    phi_values = [str(x) for x in  params["arguments"]["phi"]["values"]]
    +    time_values = params["arguments"]["time"]["values"]
    +
    +    theta = theta_values[len(theta_values)//4]
    +    time = time_values[0]
    +    i = 3
    +    for phi in phi_values:
    +        pattern = params["name_pattern"]
    +        if sys.platform.startswith("win"):
    +            pattern = pattern.replace("/", "\\")
    +        name = pattern.replace("{phi}", phi)
    +        name = name.replace("{theta}", theta)
    +        name = name.replace("{time}", time)
    +
    +        img = os.path.join(cdb, GetFile(files, name))
    +        OpenDatabase(img)
    +        AddPlot("Truecolor", "color")
    +        DrawPlots()
    +        v = GetView2D()
    +        v.viewportCoords = (0,1,0,1)
    +        SetView2D(v)
    +        Test("cinema_1_%02d" % i)
    +        DeleteAllPlots()
    +        CloseDatabase(img)
    +        i = i + 1
    +
    +def MakeShortWave():
    +    db = abs_path("short_wave.visit")
    +    f = open(db, "wt")
    +    for i in range(0, 700, 100):
    +        f.write(silo_data_path("wave%04d.silo" % i) + "\n")
    +    f.close()
    +    return os.path.abspath(db)
    +
    +def main():
    +    db = MakeShortWave()
    +    test0(db)
    +    test1(db)
    +
    +    os.unlink(db)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_cinema-c.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_cinema-c.html new file mode 100644 index 000000000..89238128e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_cinema-c.html @@ -0,0 +1,210 @@ + +Results for hybrid/cinema-c.py + +

    Results of VisIt Regression Test - hybrid/cinema-c

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Cinema spec C static camera
    cinema_2_000 modifications totalling 0 lines
    cinema_2_010 modifications totalling 0 lines
    cinema_2_020 modifications totalling 0 lines
    cinema_2_03_lum0.000.00
    cinema_2_03_z0.000.00
    cinema_2_03_pressure0.000.00
    cinema_2_03_v0.000.00
    cinema_2_04_lum0.000.00
    cinema_2_04_z0.000.00
    cinema_2_04_pressure0.000.00
    cinema_2_04_v0.000.00
    Cinema spec C phi-theta camera
    cinema_3_000 modifications totalling 0 lines
    cinema_3_010 modifications totalling 0 lines
    cinema_3_020 modifications totalling 0 lines
    cinema_3_03_lum0.000.00
    cinema_3_03_z0.000.00
    cinema_3_03_pressure0.000.00
    cinema_3_03_v0.000.00
    cinema_3_04_lum0.000.00
    cinema_3_04_z0.000.00
    cinema_3_04_pressure0.000.00
    cinema_3_04_v0.000.00
    cinema_3_05_lum0.000.00
    cinema_3_05_z0.000.00
    cinema_3_05_pressure0.000.00
    cinema_3_05_v0.000.00
    cinema_3_06_lum0.000.00
    cinema_3_06_z0.000.00
    cinema_3_06_pressure0.000.00
    cinema_3_06_v0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_cinema-c_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_cinema-c_py.html new file mode 100644 index 000000000..7d998719b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_cinema-c_py.html @@ -0,0 +1,258 @@ +hybrid/cinema-c.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  cinema-a.py
    +#
    +#  Tests:      Tests various aspects of "visit -cinema".
    +#
    +#  Notes:      
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Feb 15 16:37:20 PST 2018
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Tue Jun 11 11:44:14 PDT 2019
    +#    Pass '-noconfig' to generated command line in GenerateCinema.
    +#
    +#    Kathleen Biagas, Tue Apr 13 2021
    +#    Port to python-3. Fix for Windows: Use abs_path for short_wave.visit,
    +#    use 'repr(db)' when writing script file to preserve '\' escapes.
    +#
    +#    Kathleen Biagas, Tue Sep 14 09:51:45 PDT 2021
    +#    Added call to CloseComputeEngine to GenerateCinema method, since the
    +#    cinema script launches its own. Prevents a hang when run in parallel.
    +#
    +#    Kathleen Biagas, Tue Sep 21 17:22:58 PDT 2021
    +#    Removed CloseComputeEngine, it prevented the non-cinema-generation parts
    +#    of the test from running in parallel.  If the nightlies use srun,
    +#    add "--overlap" srun option.  This allows cinema test to succeed in
    +#    parallel with recent changes to slurm.
    +#
    +# ----------------------------------------------------------------------------
    +
    +import math, os, string, subprocess, zlib
    +
    +def GenerateCinema(cinemaArgs):
    +    args = [TestEnv.params["visit_bin"], "-noconfig", "-cinema"] + cinemaArgs
    +    if TestEnv.params["parallel"]:
    +        args = args + ["-np", "2", "-l", TestEnv.params["parallel_launch"]]
    +        if TestEnv.params["parallel_launch"] == "srun":
    +            args = args + ["-la", "--overlap"]
    +    p = subprocess.check_output(args)
    +    return p
    +
    +def GetFileList(path0):
    +    def gfl(path):
    +        outfiles = []
    +        files = os.listdir(path)
    +        for f in sorted(files):
    +            fpath = os.path.join(path, f)
    +            if os.path.isdir(fpath):
    +                outfiles = outfiles + gfl(fpath)
    +            else:
    +                outfiles = outfiles + [fpath[lpath0+1:]]
    +        return outfiles
    +    lpath0 = len(path0)
    +    return gfl(path0)
    +
    +def ListToString(files):
    +    s = ""
    +    for f in files:
    +        s += f
    +        s += "\n"
    +    return s
    +
    +def GetFile(manyfilenames, filename):
    +    for f in manyfilenames:
    +        if f.find(filename) != 0:
    +            return f
    +    return ""
    +
    +def ReadTextFile(filename):
    +    lines = open(filename, "rt").readlines()
    +    s = ""
    +    for line in lines:
    +        s += line
    +    return s
    +
    +def write_setup_plot(f):
    +    f.write('AddPlot("Pseudocolor", "pressure")\n')
    +    f.write('AddOperator("Clip")\n')
    +    f.write('clip = GetOperatorOptions(0)\n')
    +    f.write('clip.plane1Normal = (0,0,1)\n')
    +    f.write('clip.plane1Origin = (0,0,2.5)\n')
    +    f.write('SetOperatorOptions(clip)\n')
    +    f.write('AddPlot("Pseudocolor", "pressure", 1, 1)\n')
    +    f.write('clip.plane1Normal = (0,0,-1)\n')
    +    f.write('SetOperatorOptions(clip)\n')
    +    f.write('DrawPlots()\n')
    +    f.write('a = GetAnnotationAttributes()\n')
    +    f.write('a.axes3D.visible = 0\n')
    +    f.write('a.axes3D.bboxFlag = 0\n')
    +    f.write('a.axes3D.triadFlag = 0\n')
    +    f.write('a.legendInfoFlag = 0\n')
    +    f.write('a.databaseInfoFlag = 0\n')
    +    f.write('a.userInfoFlag = 0\n')
    +    f.write('a.backgroundColor=(0,0,0,255)\n')
    +    f.write('a.backgroundMode=a.Solid\n')
    +    f.write('SetAnnotationAttributes(a)\n')
    +
    +def test_Z_file(testname, varname, imagefilename, domask):
    +    """
    +    Decompress a float32 buffer, make a BOV file from it, and plot it.
    +    """
    +    cbytes = open(imagefilename, "rb").read()
    +    fbytes = zlib.decompress(cbytes)
    +    datfile = testname + ".dat"
    +    bovfile = testname + ".bov"
    +    f = open(datfile, "wb")
    +    f.write(fbytes)
    +    f.close()
    +    imagesize = int(math.sqrt(len(fbytes)/4))
    +    f = open(bovfile, "wt")
    +    f.write("TIME: 0\n")
    +    f.write("DATA_FILE: %s\n" % datfile)
    +    f.write("DATA_SIZE: %d %d 1\n" % (imagesize, imagesize))
    +    f.write("DATA_FORMAT: FLOAT\n")
    +    f.write("VARIABLE: %s\n" % varname)
    +    f.write("DATA_ENDIAN: LITTLE\n")
    +    f.write("CENTERING: zonal\n")
    +    f.write("BRICK_ORIGIN: 0 0 0\n")
    +    f.write("BRICK_SIZE: 1 1 1\n")
    +    f.close()
    +    OpenDatabase(bovfile)
    +    if domask:
    +        # Mask out values larger than 255 so we can see the values.
    +        # I'd mask on Z but I don't want to do cmfe.
    +        DefineScalarExpression("maskvar", "if(gt(%s, 255), 0., %s)" % (varname,varname))
    +        AddPlot("Pseudocolor", "maskvar")
    +    else:
    +        AddPlot("Pseudocolor", varname)
    +    AddOperator("Transform")
    +    t = TransformAttributes()
    +    t.doScale = 1
    +    t.scaleY = -1
    +    SetOperatorOptions(t)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView2D()
    +    v.viewportCoords = (0,1,0,1)
    +    SetView2D(v)
    +    Test(testname + "_" + varname)
    +    DeleteAllPlots()
    +    CloseDatabase(bovfile)
    +
    +    os.unlink(datfile)
    +    os.unlink(bovfile)
    +
    +def test_composite(testname, imagepath, scalars):
    +    """
    +    Make test images for a composite image.
    +    """
    +    img0 = os.path.join(imagepath, "image=0.png")
    +    img1 = os.path.join(imagepath, "image=1.Z")
    +    OpenDatabase(img0)
    +    AddPlot("Truecolor", "color")
    +    DrawPlots()
    +    ResetView()
    +    v = GetView2D()
    +    v.viewportCoords = (0,1,0,1)
    +    SetView2D(v)
    +    Test(testname + "_lum")
    +    DeleteAllPlots()
    +    CloseDatabase(img0)
    +
    +    test_Z_file(testname, "z", os.path.join(imagepath, "image=1.Z"), 0)
    +    idx = 2
    +    for s in scalars:
    +        test_Z_file(testname, s, os.path.join(imagepath, "image=%d.Z" % idx), 1)
    +        idx = idx + 1
    +
    +def test2(db):
    +    TestSection("Cinema spec C static camera")
    +    f = open("test2.py", "wt")
    +    f.write('OpenDatabase(%s)\n' % repr(db))
    +    write_setup_plot(f)
    +    f.write('v = GetView3D()\n')
    +    f.write('v.viewNormal = (-0.569392, 0.672931, 0.472183)\n')
    +    f.write('v.focus = (5, 0.353448, 2.5)\n')
    +    f.write('v.viewUp = (0.562941, 0.737756, -0.372577)\n')
    +    f.write('v.viewAngle = 30\n')
    +    f.write('v.parallelScale = 5.6009\n')
    +    f.write('v.nearPlane = -11.2018\n')
    +    f.write('v.farPlane = 11.2018\n')
    +    f.write('v.imagePan = (0.0431021, 0.0442006)\n')
    +    f.write('v.imageZoom = 1.06444\n')
    +    f.write('v.perspective = 1\n')
    +    f.write('v.eyeAngle = 2\n')
    +    f.write('v.centerOfRotationSet = 0\n')
    +    f.write('v.centerOfRotation = (5, 0.353448, 2.5)\n')
    +    f.write('v.axis3DScaleFlag = 0\n')
    +    f.write('v.axis3DScales = (1, 1, 1)\n')
    +    f.write('v.shear = (0, 0, 1)\n')
    +    f.write('v.windowValid = 1\n')
    +    f.write('SetView3D(v)\n')
    +    f.close()
    +
    +    cdb = "test2.cdb"
    +    scalars = ("pressure", "v")
    +    sz = "%dx%d" % (TestEnv.params["width"], TestEnv.params["height"])
    +    args = ["-specification", "C", "-docomposite", "-scriptfile", "test2.py", "-output", cdb, "-format", "png", "-geometry", sz, "-camera", "static", "-var", scalars[0], "-var", scalars[1]]
    +    TestText("cinema_2_00", ListToString(args))
    +
    +    output = GenerateCinema(args)
    +
    +    files = GetFileList(cdb)
    +    TestText("cinema_2_01", ListToString(files))
    +
    +    json = ReadTextFile(os.path.join(cdb, GetFile(files, "info.json")))
    +    TestText("cinema_2_02", json)
    +
    +    # Test a couple of composite images
    +    test_composite("cinema_2_03", os.path.join(cdb, "image","time=3","vis=0"), scalars)
    +    test_composite("cinema_2_04", os.path.join(cdb, "image","time=3","vis=1"), scalars)
    +
    +
    +def test3(db):
    +    TestSection("Cinema spec C phi-theta camera")
    +    f = open("test3.py", "wt")
    +    f.write('OpenDatabase(%s)\n' % repr(db))
    +    write_setup_plot(f)
    +    f.close()
    +
    +    cdb = "test3.cdb"
    +    scalars = ("pressure", "v")
    +    sz = "%dx%d" % (TestEnv.params["width"], TestEnv.params["height"])
    +    args = ["-specification", "C", "-docomposite", "-scriptfile", "test3.py", "-output", cdb, "-format", "png", "-geometry", sz, "-camera", "phi-theta", "-phi", "6", "-theta", "5", "-var", scalars[0], "-var", scalars[1]]
    +    TestText("cinema_3_00", ListToString(args))
    +
    +    output = GenerateCinema(args)
    +
    +    files = GetFileList(cdb)
    +    TestText("cinema_3_01", ListToString(files))
    +
    +    json = ReadTextFile(os.path.join(cdb, GetFile(files, "info.json")))
    +    TestText("cinema_3_02", json)
    +
    +    # Test a couple of composite images
    +    test_composite("cinema_3_03", os.path.join(cdb, "image","phi=0","theta=0","time=0","vis=0"), scalars)
    +    test_composite("cinema_3_04", os.path.join(cdb, "image","phi=0","theta=0","time=0","vis=1"), scalars)
    +    test_composite("cinema_3_05", os.path.join(cdb, "image","phi=3","theta=1","time=0","vis=0"), scalars)
    +    test_composite("cinema_3_06", os.path.join(cdb, "image","phi=3","theta=1","time=0","vis=1"), scalars)
    +
    +
    +def MakeShortWave(incr):
    +    db = abs_path("short_wave.visit")
    +    f = open(db, "wt")
    +    for i in range(0, 700, incr):
    +        f.write(silo_data_path("wave%04d.silo" % i) + "\n")
    +    f.close()
    +    return os.path.abspath(db)
    +
    +def main():
    +    test2(MakeShortWave(100))
    +    test3(MakeShortWave(500))
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_cleanzonesonly.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_cleanzonesonly.html new file mode 100644 index 000000000..b19e0db1f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_cleanzonesonly.html @@ -0,0 +1,120 @@ + +Results for hybrid/cleanzonesonly.py + +

    Results of VisIt Regression Test - hybrid/cleanzonesonly

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Multicolor mode
    hybrid_cleanzonesonly_010.000.00
    hybrid_cleanzonesonly_020.000.00
    hybrid_cleanzonesonly_030.000.00
    Continuous colortable mode
    hybrid_cleanzonesonly_040.000.00
    hybrid_cleanzonesonly_050.000.00
    hybrid_cleanzonesonly_060.000.00
    Discrete colortable mode
    hybrid_cleanzonesonly_070.000.00
    hybrid_cleanzonesonly_080.000.00
    hybrid_cleanzonesonly_090.000.00
    Singlecolor mode
    hybrid_cleanzonesonly_100.000.00
    hybrid_cleanzonesonly_110.000.00
    hybrid_cleanzonesonly_120.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_cleanzonesonly_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_cleanzonesonly_py.html new file mode 100644 index 000000000..2ce74461c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_cleanzonesonly_py.html @@ -0,0 +1,135 @@ +hybrid/cleanzonesonly.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  cleanzonesonly.py
    +#
    +#  Tests:      plots     - filled boundary
    +#
    +#  Defect ID:  '5135
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       July  6, 2004
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +# Turn off all annotation
    +a = AnnotationAttributes()
    +TurnOffAllAnnotations(a)
    +SetAnnotationAttributes(a)
    +
    +# -----------------------------------------------------------------------------
    +#    multicolor mode -- normal plot, then CZO on, then CZO off
    +# -----------------------------------------------------------------------------
    +TestSection("Multicolor mode")
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +AddPlot("FilledBoundary", "mat1");
    +DrawPlots()
    +
    +v=GetView2D()
    +v.viewportCoords=(0.3, 0.9, 0.15, 0.9)
    +SetView2D(v)
    +
    +Test("hybrid_cleanzonesonly_01")
    +
    +m = FilledBoundaryAttributes()
    +m.cleanZonesOnly = 1
    +SetPlotOptions(m)
    +
    +Test("hybrid_cleanzonesonly_02")
    +
    +m.cleanZonesOnly = 0
    +SetPlotOptions(m)
    +
    +Test("hybrid_cleanzonesonly_03")
    +
    +DeleteAllPlots()
    +
    +# -----------------------------------------------------------------------------
    +#    continuous colortable mode -- normal plot, then CZO on, then CZO off
    +# -----------------------------------------------------------------------------
    +TestSection("Continuous colortable mode")
    +AddPlot("FilledBoundary", "mat1");
    +
    +m = FilledBoundaryAttributes();
    +m.colorType = m.ColorByColorTable
    +m.colorTableName = 'calewhite'
    +m.mixedColor=(0,100,100,255)
    +SetPlotOptions(m)
    +DrawPlots()
    +
    +Test("hybrid_cleanzonesonly_04")
    +
    +m = FilledBoundaryAttributes()
    +m.cleanZonesOnly = 1
    +SetPlotOptions(m)
    +
    +Test("hybrid_cleanzonesonly_05")
    +
    +m.cleanZonesOnly = 0
    +SetPlotOptions(m)
    +
    +Test("hybrid_cleanzonesonly_06")
    +
    +DeleteAllPlots()
    +
    +# -----------------------------------------------------------------------------
    +#    discrete colortable mode -- normal plot, then CZO on, then CZO off
    +# -----------------------------------------------------------------------------
    +TestSection("Discrete colortable mode")
    +AddPlot("FilledBoundary", "mat1");
    +
    +m = FilledBoundaryAttributes();
    +m.colorType = m.ColorByColorTable
    +m.colorTableName = 'levels'
    +m.mixedColor=(0,0,0,255)
    +SetPlotOptions(m)
    +DrawPlots()
    +
    +Test("hybrid_cleanzonesonly_07")
    +
    +m = FilledBoundaryAttributes()
    +m.cleanZonesOnly = 1
    +SetPlotOptions(m)
    +
    +Test("hybrid_cleanzonesonly_08")
    +
    +m.cleanZonesOnly = 0
    +SetPlotOptions(m)
    +
    +Test("hybrid_cleanzonesonly_09")
    +
    +DeleteAllPlots()
    +
    +# -----------------------------------------------------------------------------
    +#    singlecolor mode -- normal plot, then CZO on, then CZO off
    +# -----------------------------------------------------------------------------
    +TestSection("Singlecolor mode")
    +AddPlot("FilledBoundary", "mat1");
    +
    +m = FilledBoundaryAttributes();
    +m.colorType = m.ColorBySingleColor
    +m.singleColor = (255, 0, 0, 255)
    +SetPlotOptions(m)
    +DrawPlots()
    +
    +Test("hybrid_cleanzonesonly_10")
    +
    +m = FilledBoundaryAttributes()
    +m.cleanZonesOnly = 1
    +SetPlotOptions(m)
    +
    +Test("hybrid_cleanzonesonly_11")
    +
    +m.cleanZonesOnly = 0
    +SetPlotOptions(m)
    +
    +Test("hybrid_cleanzonesonly_12")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_clonefirstref.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_clonefirstref.html new file mode 100644 index 000000000..b673703de --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_clonefirstref.html @@ -0,0 +1,72 @@ + +Results for hybrid/clonefirstref.py + +

    Results of VisIt Regression Test - hybrid/clonefirstref

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    clonefirstref_000.000.00
    clonefirstref_010 modifications totalling 0 lines
    clonefirstref_020.000.00
    clonefirstref_030.000.00
    clonefirstref_040 modifications totalling 0 lines
    clonefirstref_050.000.00
    clonefirstref_060 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_clonefirstref_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_clonefirstref_py.html new file mode 100644 index 000000000..c751f7160 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_clonefirstref_py.html @@ -0,0 +1,62 @@ +hybrid/clonefirstref.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  clonefirstref.py
    +#
    +#  Tests:      mesh      - 2D, curvilinear, single domain
    +#              plots     - FilledBoundary
    +#              databases - PDB
    +#
    +#  Purpose:    This test case tests the viewer's ability to consider a window
    +#              that had been referenced as unreferenced if its plot list has
    +#              no active source.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Feb 18 14:01:48 PST 2005
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Look at the first few lines of the string representation of the
    +# WindowInformation to see the list of time sliders, etc.
    +#
    +def TestWindowInformation(testname):
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 5 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    for i in range(5):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    TestText(testname, s)
    +
    +SetCloneWindowOnFirstRef(1)
    +SetWindowLayout(2)
    +SetActiveWindow(2)
    +OpenDatabase(data_path("pdb_test_data/dbB00.pdb"))
    +
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +Test("clonefirstref_00")
    +TestWindowInformation("clonefirstref_01")
    +
    +# Make sure that the database and time sliders, etc got copied to window 1,
    +# even though it had been "referenced" already. Without the fix, VisIt used
    +# to complain about no database being open.
    +SetActiveWindow(1)
    +Test("clonefirstref_02")
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +Test("clonefirstref_03")
    +TestWindowInformation("clonefirstref_04")
    +
    +# Make sure that we can move through time.
    +SetTimeSliderState(5)
    +Test("clonefirstref_05")
    +TestWindowInformation("clonefirstref_06")
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_conditional.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_conditional.html new file mode 100644 index 000000000..bd746b775 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_conditional.html @@ -0,0 +1,72 @@ + +Results for hybrid/conditional.py + +

    Results of VisIt Regression Test - hybrid/conditional

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    conditional_010.000.00
    conditional_020.000.00
    conditional_030.000.00
    conditional_040.000.00
    conditional_050.000.00
    conditional_060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_conditional_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_conditional_py.html new file mode 100644 index 000000000..73b260332 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_conditional_py.html @@ -0,0 +1,96 @@ +hybrid/conditional.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  expressions.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, single domain
    +#              plots     - Pseudocolor
    +#              operators - Threshold
    +#
    +#  Defect ID:  '3655
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 21, 2003
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Eddie Rusu, Tue Apr 13 12:08:59 PDT 2021
    +#    Changed Pseudocolor CurrentPlot to ActualData.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +
    +DefineScalarExpression("bigun", 'if(and(gt(nmats(mat1), 1.), gt(matvf(mat1, "4"), 0.)), d, 0.)')
    +
    +AddPlot("Pseudocolor", "bigun")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.17, 0.74, 0.64)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.31, 0.65, -0.68)
    +v.parallelScale = 0.866
    +v.nearPlane = -1.73
    +v.farPlane = 1.73
    +SetView3D(v)
    +
    +Test("conditional_01")
    +
    +t = ThresholdAttributes()
    +t.lowerBounds = (0.01)
    +t.upperBounds = (0.99)
    +SetDefaultOperatorOptions(t)
    +AddOperator("Threshold")
    +
    +pc_atts = PseudocolorAttributes()
    +pc_atts.limitsMode = pc_atts.ActualData
    +SetPlotOptions(pc_atts)
    +DrawPlots()
    +Test("conditional_02")
    +
    +DeleteAllPlots()
    +
    +DefineVectorExpression("vel2", "{ if(lt(u, 0), u, -u/2), if(gte(v, -0.333), v, -v/4), w}")
    +AddPlot("Vector", "vel2")
    +vec_atts = VectorAttributes()
    +vec_atts.nVectors = 100
    +SetPlotOptions(vec_atts)
    +DrawPlots()
    +
    +Test("conditional_03")
    +
    +DeleteAllPlots()
    +
    +DefineScalarExpression("eq", "if(eq(u, v), abs(w), 0.)")
    +AddPlot("Pseudocolor", "eq")
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("conditional_04")
    +
    +DefineScalarExpression("close", "if(lte(abs(u-v), 0.05), abs(w), 0.)")
    +ChangeActivePlotsVar("close")
    +
    +Test("conditional_05")
    +
    +
    +DefineScalarExpression("close_and_far", "if(or(lte(abs(u-v), 0.05), gte(abs(u-v), 1.)), abs(w), 0.)")
    +ChangeActivePlotsVar("close_and_far")
    +
    +Test("conditional_06")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_conn_cmfe.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_conn_cmfe.html new file mode 100644 index 000000000..977794930 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_conn_cmfe.html @@ -0,0 +1,102 @@ + +Results for hybrid/conn_cmfe.py + +

    Results of VisIt Regression Test - hybrid/conn_cmfe

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    conn_cmfe_010.000.00
    conn_cmfe_020.000.00
    conn_cmfe_030.000.00
    conn_cmfe_040 modifications totalling 0 lines
    conn_cmfe_050 modifications totalling 0 lines
    conn_cmfe_060 modifications totalling 0 lines
    conn_cmfe_070 modifications totalling 0 lines
    conn_cmfe_080 modifications totalling 0 lines
    conn_cmfe_090.000.00
    conn_cmfe_100 modifications totalling 0 lines
    conn_cmfe_110 modifications totalling 0 lines
    conn_cmfe_120.000.00
    conn_cmfe_130 modifications totalling 0 lines
    conn_cmfe_140 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_conn_cmfe_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_conn_cmfe_py.html new file mode 100644 index 000000000..bb9dd1bfe --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_conn_cmfe_py.html @@ -0,0 +1,138 @@ +hybrid/conn_cmfe.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  conn_cmfe.py
    +#
    +#  Defect ID:  '6616
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 30, 2005
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Tue Sep 20 13:15:11 PDT 2005
    +#    Test for non-existent databases, especially those with short names ['6616]
    +#
    +#    Hank Childs, Fri Oct  7 17:14:07 PDT 2005
    +#    Test error message for Eulerian material selection.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Cyrus Harrison, Wed Aug 25 14:25:13 PDT 2010
    +#    SIL id shift (from 1 to 2) due to changes in SIL generation.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("wave0200.silo"))
    +
    +
    +
    +# Test general capability.
    +DefineScalarExpression("cmfe", "conn_cmfe(<%s:pressure>, quadmesh)" % cmfe_silo_data_path("wave0020.silo"))
    +AddPlot("Pseudocolor", "cmfe")
    +DrawPlots()
    +Test("conn_cmfe_01")
    +
    +# Test using the expression as a secondary variable.
    +ChangeActivePlotsVar("pressure")
    +AddOperator("Threshold")
    +t = ThresholdAttributes()
    +t.lowerBounds = (-1.0)
    +t.upperBounds = (0.1)
    +t.listedVarNames = ("cmfe")
    +SetOperatorOptions(t)
    +DrawPlots()
    +Test("conn_cmfe_02")
    +
    +# Test using cmfe in another expression.
    +DefineVectorExpression("disp", "{0, 3*cmfe, 0}")
    +RemoveLastOperator()
    +d = DisplaceAttributes()
    +d.variable = "disp"
    +SetDefaultOperatorOptions(d)
    +AddOperator("Displace")
    +DrawPlots()
    +Test("conn_cmfe_03")
    +
    +RemoveLastOperator()
    +ChangeActivePlotsVar("cmfe")
    +DrawPlots()
    +
    +Query("MinMax")
    +t = GetQueryOutputString()
    +TestText("conn_cmfe_04", t)
    +
    +# Now test error conditions.
    +DefineScalarExpression("cmfe2", "conn_cmfe(pressure, quadmesh)")
    +ChangeActivePlotsVar("cmfe2")
    +DrawPlots()
    +t = GetLastError()
    +TestText("conn_cmfe_05", t)
    +
    +DefineScalarExpression("cmfe3", "conn_cmfe(<bad_file.silo:a_var>, quadmesh)")
    +ChangeActivePlotsVar("cmfe3")
    +DrawPlots()
    +t = GetLastError()
    +TestText("conn_cmfe_06", t)
    +
    +DefineScalarExpression("cmfe4", "conn_cmfe(<%s:pressure>, quadmesh, pressure)" %  cmfe_silo_data_path("wave0100.silo"))
    +ChangeActivePlotsVar("cmfe4")
    +DrawPlots()
    +t = GetLastError()
    +TestText("conn_cmfe_07", t)
    +
    +DefineScalarExpression("cmfe5", "conn_cmfe(<%s:pressure>)" % cmfe_silo_data_path("wave0100.silo"))
    +ChangeActivePlotsVar("cmfe5")
    +DrawPlots()
    +t = GetLastError()
    +TestText("conn_cmfe_08", t)
    +
    +# And one more cool picture just for grins.
    +DefineScalarExpression("cmfe6", "conn_cmfe(<%s:pressure>, quadmesh)" % cmfe_silo_data_path("wave0570.silo"))
    +DefineScalarExpression("max", "if(ge(pressure, cmfe6), pressure, cmfe6)")
    +ChangeActivePlotsVar("max")
    +DrawPlots()
    +Test("conn_cmfe_09")
    +
    +# Invalid variable in new database.
    +DefineScalarExpression("cmfe7", "conn_cmfe(<%s:pressure>, quadmesh)" % cmfe_silo_data_path("globe.silo"))
    +ChangeActivePlotsVar("cmfe7")
    +t = GetLastError()
    +TestText("conn_cmfe_10", t)
    +
    +# Now a good variable, but connectivity doesn't match.
    +DefineScalarExpression("cmfe8", "conn_cmfe(<%s:t>, quadmesh)" % cmfe_silo_data_path("globe.silo"))
    +ChangeActivePlotsVar("cmfe8")
    +DrawPlots()
    +t = GetLastError()
    +TestText("conn_cmfe_11", t)
    +
    +# Test multiple CMFEs
    +DefineScalarExpression("cmfe9", "conn_cmfe(<%s:pressure>, quadmesh)" % cmfe_silo_data_path("wave0100.silo"))
    +DefineScalarExpression("max2", "if(ge(max, cmfe9), max, cmfe9)")
    +ChangeActivePlotsVar("max2")
    +DrawPlots()
    +Test("conn_cmfe_12")
    +
    +DefineScalarExpression("cmfe10", "conn_cmfe(<30:d>, quadmesh)")
    +ChangeActivePlotsVar("cmfe10")
    +t = GetLastError()
    +TestText("conn_cmfe_13", t)
    +
    +ChangeActivePlotsVar("cmfe")
    +DrawPlots()
    +s = SILRestriction()
    +s.TurnOffAll()
    +s.TurnOnSet(2)
    +SetPlotSILRestriction(s)
    +t = GetLastError()
    +TestText("conn_cmfe_14", t)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_coord_expr.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_coord_expr.html new file mode 100644 index 000000000..3e2390f7e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_coord_expr.html @@ -0,0 +1,84 @@ + +Results for hybrid/coord_expr.py + +

    Results of VisIt Regression Test - hybrid/coord_expr

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    coord_expr_010.000.00
    coord_expr_020.000.00
    coord_expr_030.000.00
    coord_expr_040.000.00
    coord_expr_050.000.00
    coord_expr_060.000.00
    coord_expr_070.000.00
    coord_expr_080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_coord_expr_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_coord_expr_py.html new file mode 100644 index 000000000..249898fc3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_coord_expr_py.html @@ -0,0 +1,65 @@ +hybrid/coord_expr.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  coord_expr.py
    +#
    +#  Tests:      mesh      - 3D unstructured, multi- domain
    +#              plots     - Pseudocolor
    +#
    +#  Defect ID:  '5994, '5995
    +#
    +#  Programmer: Hank Childs
    +#  Date:       June 30, 2005
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +
    +DefineScalarExpression("polar_radius", "polar_radius(mesh1)")
    +AddPlot("Pseudocolor", "polar_radius")
    +DrawPlots()
    +Test("coord_expr_01")
    +
    +DefineScalarExpression("zero", "polar_radius-polar(mesh1)[0]")
    +ChangeActivePlotsVar("zero")
    +Test("coord_expr_02")
    +
    +DefineScalarExpression("polar_theta", "polar_theta(mesh1)")
    +ChangeActivePlotsVar("polar_theta")
    +Test("coord_expr_03")
    +
    +DefineScalarExpression("polar_phi", "polar_phi(mesh1)")
    +ChangeActivePlotsVar("polar_phi")
    +Test("coord_expr_04")
    +
    +DefineScalarExpression("cylindrical_radius", "cylindrical_radius(mesh1)")
    +ChangeActivePlotsVar("cylindrical_radius")
    +Test("coord_expr_05")
    +
    +DefineScalarExpression("cylindrical_theta", "cylindrical_theta(mesh1)")
    +ChangeActivePlotsVar("cylindrical_theta")
    +Test("coord_expr_06")
    +
    +DeleteExpression("zero")
    +# Not really zero -- this is the diagonal
    +DefineScalarExpression("zero", "polar_radius-cylindrical_radius")
    +ChangeActivePlotsVar("zero")
    +Test("coord_expr_07")
    +
    +DeleteActivePlots()
    +
    +DefineVectorExpression("c", "cylindrical(mesh1)")
    +AddPlot("Vector", "c")
    +DrawPlots()
    +Test("coord_expr_08")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_curve_anim.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_curve_anim.html new file mode 100644 index 000000000..6c5b2ae81 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_curve_anim.html @@ -0,0 +1,72 @@ + +Results for hybrid/curve_anim.py + +

    Results of VisIt Regression Test - hybrid/curve_anim

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    curve_anim10.000.00
    curve_anim20.000.00
    curve_anim30.000.00
    curve_anim40.000.00
    curve_anim50.000.00
    curve_anim60.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_curve_anim_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_curve_anim_py.html new file mode 100644 index 000000000..0257f8ce0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_curve_anim_py.html @@ -0,0 +1,77 @@ +hybrid/curve_anim.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  curve_anim.py
    +#
    +#  Tests:      mesh      - polygonal line from .curve file.
    +#              plots     - curve
    +#              operators - none
    +#
    +#  Defect ID:  '2973
    +#
    +#  Programmer: Hank Childs
    +#  Date:       January 15, 2003
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Mon Aug  4 09:51:40 PDT 2003
    +#    Curves are no longer valid subsets, but they are now curve plots.
    +#
    +#    Brad Whitlock, Wed Mar 9 09:15:30 PDT 2005
    +#    Removed deprecated functions.
    +#
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#    individually to match current baseline results.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(data_path("curve_test_data/curve.visit"))
    +
    +curveAtts = CurveAttributes()
    +curveAtts.curveColorSource = curveAtts.Custom
    +AddPlot("Curve", "flat")
    +curveAtts.curveColor = (0, 255, 0, 255)
    +SetPlotOptions(curveAtts)
    +AddPlot("Curve", "going_up")
    +curveAtts.curveColor = (255, 0, 0, 255)
    +SetPlotOptions(curveAtts)
    +AddPlot("Curve", "going_down")
    +curveAtts.curveColor = (0, 0, 255, 255)
    +SetPlotOptions(curveAtts)
    +AddPlot("Curve", "parabolic")
    +curveAtts.curveColor = (0, 255, 255, 255)
    +SetPlotOptions(curveAtts)
    +
    +SetTimeSliderState(40)
    +DrawPlots()
    +# This additional set frame is so that the saved
    +# image is correct.
    +SetTimeSliderState(40)
    +Test("curve_anim1")
    +
    +SetTimeSliderState(99)
    +Test("curve_anim2")
    +
    +SetActivePlots(3)
    +DeleteActivePlots()
    +
    +Test("curve_anim3")
    +
    +SetTimeSliderState(40)
    +Test("curve_anim4")
    +
    +SetActivePlots(0)
    +DeleteActivePlots()
    +Test("curve_anim5")
    +
    +SetTimeSliderState(5)
    +AddPlot("Curve", "flat")
    +curveAtts.curveColor = (0, 255, 0, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +Test("curve_anim6")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_curve_expressions.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_curve_expressions.html new file mode 100644 index 000000000..654d72b69 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_curve_expressions.html @@ -0,0 +1,63 @@ + +Results for hybrid/curve_expressions.py + +

    Results of VisIt Regression Test - hybrid/curve_expressions

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    binary operations on curves
    curve_exp_bin_000.000.00
    curve_exp_bin_010.000.00
    curve_exp_bin_020.000.00
    curve_exp_bin_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_curve_expressions_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_curve_expressions_py.html new file mode 100644 index 000000000..a6daacb1d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_curve_expressions_py.html @@ -0,0 +1,50 @@ +hybrid/curve_expressions.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  curve_expressions.py
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       November 18, 2008
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def TurnOffCurveLabels():
    +    c = CurveAttributes()
    +    c.showLabels = 0
    +    SetDefaultPlotOptions(c)
    +
    +def DoBinaryOp(db1, curve1, db2, curve2, op, index):
    +    # name = db:curve1 op curve_cmfe(<db2:curve2>, <db1, curve1>)
    +    var1 = "<%s>" % (curve1)
    +    var2 = "<%s:%s>" % (db2, curve2)
    +    cmfe = "curve_cmfe(%s,%s)" % (var2, var1)
    +    name = "<A %s B>" %(op)
    +    DefineCurveExpression(name, "%s %s %s" %(var1, op, cmfe))
    +
    +    AddPlot("Curve", name);
    +    DrawPlots()
    +
    +    Test("curve_exp_bin_%02d" %index)
    +    DeleteAllPlots()
    +
    +def TestBinary():
    +    binops = ("+", "-", "*", "/")
    +    cdb = cmfe_data_path("curve_test_data/distribution.ultra")
    +    db = data_path("curve_test_data/distribution.ultra")
    +    logNormal = "Log Normal Distribution"
    +    exponential = "Exponential Distribution"
    +
    +    TestSection("binary operations on curves")
    +    OpenDatabase(db)
    +    for i in range(4):
    +        DoBinaryOp(cdb, logNormal, cdb, exponential, binops[i], i)
    +
    +    CloseDatabase(db)
    +
    +
    +TurnOffCurveLabels()
    +TestBinary()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_cylindrical_radius.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_cylindrical_radius.html new file mode 100644 index 000000000..40a4f742c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_cylindrical_radius.html @@ -0,0 +1,96 @@ + +Results for hybrid/cylindrical_radius.py + +

    Results of VisIt Regression Test - hybrid/cylindrical_radius

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    cylin_rad_default_10.000.00
    cylin_rad_default_20.000.00
    cylin_rad_x_10.000.00
    cylin_rad_x_20.000.00
    cylin_rad_y_10.000.00
    cylin_rad_y_20.000.00
    cylin_rad_z_10.000.00
    cylin_rad_z_20.000.00
    cylin_rad_diag_a_10.000.00
    cylin_rad_diag_b_10.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_cylindrical_radius_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_cylindrical_radius_py.html new file mode 100644 index 000000000..a05e7af39 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_cylindrical_radius_py.html @@ -0,0 +1,232 @@ +hybrid/cylindrical_radius.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  cylindrical_radius.py
    +#
    +#  Tests:      mesh      - 3D structured, multi domain
    +#              plots     - pc
    +#
    +#  Ticket Id:  '7915
    +#
    +#  Notes:      Created to test axis selection for the cylindrical_radius 
    +#              expression
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       March 31, 2008
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +
    +
    +# Default use case
    +DefineScalarExpression("cylin_rad_default",   "cylindrical_radius(mesh1)")
    +# Cyl axis = {1,0,0}
    +DefineScalarExpression("cylin_rad_x",         'cylindrical_radius(mesh1,"x")')
    +# Cyl axis = {0,1,0}
    +DefineScalarExpression("cylin_rad_y",         'cylindrical_radius(mesh1,"y")')
    +# Cyl axis = {0,0,1} (same as default)
    +DefineScalarExpression("cylin_rad_z",         'cylindrical_radius(mesh1,"z")')
    +# Cyl axis = {1,1,1}
    +DefineScalarExpression("cylin_rad_diag_a",    'cylindrical_radius(mesh1,{1,1,1})')
    +# Cyl axis = {1,1,-1}
    +DefineScalarExpression("cylin_rad_diag_b",    'cylindrical_radius(mesh1,{1,1,-1})')
    +
    +# use rotate and defer expression to test proper axis selection
    +
    +def test_cyl(var_name):
    +    DeleteAllPlots();
    +    ResetView()
    +    AddPlot("Pseudocolor", var_name)
    +    DrawPlots()
    +    Test(var_name + "_%d" % 1)
    +    AddOperator("Transform") # rotate to another view
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doRotate = 1
    +    TransformAtts.rotateOrigin = (0, 0, 0)
    +    TransformAtts.rotateAxis = (0, 1, 0)
    +    TransformAtts.rotateAmount = 45
    +    TransformAtts.rotateType = TransformAtts.Deg
    +    TransformAtts.doScale = 0
    +    TransformAtts.doTranslate = 0
    +    TransformAtts.transformType = TransformAtts.Similarity
    +    TransformAtts.inputCoordSys = TransformAtts.Cartesian
    +    TransformAtts.outputCoordSys = TransformAtts.Cartesian
    +    SetOperatorOptions(TransformAtts)
    +    DrawPlots()
    +    Test(var_name + "_%d" % 2)
    +
    +def test_cyl_x(var_name):
    +    DeleteAllPlots();
    +    ResetView()
    +    AddPlot("Pseudocolor", var_name)
    +    AddOperator("Transform")
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doRotate = 1
    +    TransformAtts.rotateOrigin = (0, 0, 0)
    +    TransformAtts.rotateAxis = (0, 1, 0)
    +    TransformAtts.rotateAmount = 90
    +    TransformAtts.rotateType = TransformAtts.Deg
    +    TransformAtts.doScale = 0
    +    TransformAtts.doTranslate = 0
    +    TransformAtts.transformType = TransformAtts.Similarity
    +    TransformAtts.inputCoordSys = TransformAtts.Cartesian
    +    TransformAtts.outputCoordSys = TransformAtts.Cartesian
    +    SetOperatorOptions(TransformAtts)
    +    AddOperator("DeferExpression")
    +    DeferExpressionAtts = DeferExpressionAttributes()
    +    DeferExpressionAtts.exprs = (var_name)
    +    SetOperatorOptions(DeferExpressionAtts)
    +    DrawPlots()
    +    Test(var_name + "_%d" % 1)
    +    AddOperator("Transform") # rotate to better view
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doRotate = 1
    +    TransformAtts.rotateOrigin = (0, 0, 0)
    +    TransformAtts.rotateAxis = (0, 1, 0)
    +    TransformAtts.rotateAmount = -45
    +    TransformAtts.rotateType = TransformAtts.Deg
    +    TransformAtts.doScale = 0
    +    TransformAtts.doTranslate = 0
    +    TransformAtts.transformType = TransformAtts.Similarity
    +    TransformAtts.inputCoordSys = TransformAtts.Cartesian
    +    TransformAtts.outputCoordSys = TransformAtts.Cartesian
    +    SetOperatorOptions(TransformAtts)
    +    DrawPlots()
    +    Test(var_name + "_%d" % 2)
    +
    +
    +def test_cyl_y(var_name):
    +    DeleteAllPlots();
    +    ResetView()
    +    AddPlot("Pseudocolor", var_name)
    +    AddOperator("Transform")
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doRotate = 1
    +    TransformAtts.rotateOrigin = (0, 0, 0)
    +    TransformAtts.rotateAxis = (1, 0, 0)
    +    TransformAtts.rotateAmount = 90
    +    TransformAtts.rotateType = TransformAtts.Deg
    +    TransformAtts.doScale = 0
    +    TransformAtts.doTranslate = 0
    +    TransformAtts.transformType = TransformAtts.Similarity
    +    TransformAtts.inputCoordSys = TransformAtts.Cartesian
    +    TransformAtts.outputCoordSys = TransformAtts.Cartesian
    +    SetOperatorOptions(TransformAtts)
    +    AddOperator("DeferExpression")
    +    DeferExpressionAtts = DeferExpressionAttributes()
    +    DeferExpressionAtts.exprs = (var_name)
    +    SetOperatorOptions(DeferExpressionAtts)
    +    DrawPlots()
    +    Test(var_name + "_%d" % 1)
    +    AddOperator("Transform") # rotate to better view
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doRotate = 1
    +    TransformAtts.rotateOrigin = (0, 0, 0)
    +    TransformAtts.rotateAxis = (1, 0, 0)
    +    TransformAtts.rotateAmount = -45
    +    TransformAtts.rotateType = TransformAtts.Deg
    +    TransformAtts.doScale = 0
    +    TransformAtts.doTranslate = 0
    +    TransformAtts.transformType = TransformAtts.Similarity
    +    TransformAtts.inputCoordSys = TransformAtts.Cartesian
    +    TransformAtts.outputCoordSys = TransformAtts.Cartesian
    +    SetOperatorOptions(TransformAtts)
    +    DrawPlots()
    +    Test(var_name + "_%d" % 2)
    +
    +def test_cyl_diag_a(var_name):
    +    DeleteAllPlots();
    +    ResetView()
    +    AddPlot("Pseudocolor", var_name)
    +    AddOperator("Transform")
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doRotate = 1
    +    TransformAtts.rotateOrigin = (0, 0, 0)
    +    TransformAtts.rotateAxis = (0, 1, 0)
    +    TransformAtts.rotateAmount = 45
    +    TransformAtts.rotateType = TransformAtts.Deg
    +    TransformAtts.doScale = 0
    +    TransformAtts.doTranslate = 0
    +    TransformAtts.transformType = TransformAtts.Similarity
    +    TransformAtts.inputCoordSys = TransformAtts.Cartesian
    +    TransformAtts.outputCoordSys = TransformAtts.Cartesian
    +    SetOperatorOptions(TransformAtts)
    +    AddOperator("Transform") # rotate to better view
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doRotate = 1
    +    TransformAtts.rotateOrigin = (0, 0, 0)
    +    TransformAtts.rotateAxis = (-0.70710678118654746, 0, 0.70710678118654746)
    +    TransformAtts.rotateAmount = 35.26
    +    TransformAtts.rotateType = TransformAtts.Deg
    +    TransformAtts.doScale = 0
    +    TransformAtts.doTranslate = 0
    +    TransformAtts.transformType = TransformAtts.Similarity
    +    TransformAtts.inputCoordSys = TransformAtts.Cartesian
    +    TransformAtts.outputCoordSys = TransformAtts.Cartesian
    +    SetOperatorOptions(TransformAtts)
    +    AddOperator("DeferExpression")
    +    DeferExpressionAtts = DeferExpressionAttributes()
    +    DeferExpressionAtts.exprs = (var_name)
    +    SetOperatorOptions(DeferExpressionAtts)
    +    DrawPlots()
    +    Test(var_name + "_%d" % 1)
    +
    +def test_cyl_diag_b(var_name):
    +    DeleteAllPlots();
    +    ResetView()
    +    AddPlot("Pseudocolor", var_name)
    +    AddOperator("Transform")
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doRotate = 1
    +    TransformAtts.rotateOrigin = (0, 0, 0)
    +    TransformAtts.rotateAxis = (0, 1, 0)
    +    TransformAtts.rotateAmount = -45
    +    TransformAtts.rotateType = TransformAtts.Deg
    +    TransformAtts.doScale = 0
    +    TransformAtts.doTranslate = 0
    +    TransformAtts.transformType = TransformAtts.Similarity
    +    TransformAtts.inputCoordSys = TransformAtts.Cartesian
    +    TransformAtts.outputCoordSys = TransformAtts.Cartesian
    +    SetOperatorOptions(TransformAtts)
    +    AddOperator("Transform") # rotate to better view
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doRotate = 1
    +    TransformAtts.rotateOrigin = (0, 0, 0)
    +    TransformAtts.rotateAxis = (0.70710678118654746, 0, 0.70710678118654746)
    +    TransformAtts.rotateAmount = 35.26
    +    TransformAtts.rotateType = TransformAtts.Deg
    +    TransformAtts.doScale = 0
    +    TransformAtts.doTranslate = 0
    +    TransformAtts.transformType = TransformAtts.Similarity
    +    TransformAtts.inputCoordSys = TransformAtts.Cartesian
    +    TransformAtts.outputCoordSys = TransformAtts.Cartesian
    +    SetOperatorOptions(TransformAtts)
    +    AddOperator("DeferExpression")
    +    DeferExpressionAtts = DeferExpressionAttributes()
    +    DeferExpressionAtts.exprs = (var_name)
    +    SetOperatorOptions(DeferExpressionAtts)
    +    DrawPlots()
    +    Test(var_name + "_%d" % 1)
    +
    +
    +test_cyl("cylin_rad_default")
    +test_cyl_x("cylin_rad_x")
    +test_cyl_y("cylin_rad_y")
    +test_cyl("cylin_rad_z") # same as default
    +test_cyl_diag_a("cylin_rad_diag_a")
    +test_cyl_diag_b("cylin_rad_diag_b")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_ddf.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_ddf.html new file mode 100644 index 000000000..599cd1770 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_ddf.html @@ -0,0 +1,75 @@ + +Results for hybrid/ddf.py + +

    Results of VisIt Regression Test - hybrid/ddf

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ddf_010.000.00
    ddf_020.000.00
    ddf_030.000.00
    ddf_040.000.00
    DDF Spatial Collapse with Ghost Zones
    ddf_spatial_1d0.000.00
    ddf_spatial_2d0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_ddf_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_ddf_py.html new file mode 100644 index 000000000..982a64209 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_ddf_py.html @@ -0,0 +1,172 @@ +hybrid/ddf.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ddf.py
    +#
    +#  Defect ID:  '5203
    +#
    +#  Programmer: Hank Childs
    +#  Date:       February 20, 2006
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Tue Feb 23 12:40:36 PST 2021
    +#    Added spatial collapse with ghost zones test.
    +#
    +#    Kathleen Biagas, Thu Feb 17 07:38:01 PST 2022
    +#    Replace old ConstructDDFAttributes attribute names for new:
    +#    ddfName -> name, ranges -> binBoundaries, numSamples -> numBins,
    +#    statisticalOperator -> reductionOperator,
    +#    codomainName -> varForReductionOperator.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +t = ConstructDDFAttributes()
    +t.name = "ddf1"
    +t.varnames = ("u")
    +t.binBoundaries = (-1, 1)
    +t.numBins = (4)
    +t.varForReductionOperator = "u"
    +t.reductionOperator = t.Average
    +ConstructDDF(t)
    +
    +DefineScalarExpression("e1", "u - apply_ddf(curvmesh2d, ddf1)")
    +ChangeActivePlotsVar("e1")
    +Test("ddf_01")
    +
    +t.name = "ddf2"
    +t.reductionOperator = t.Maximum
    +t.varForReductionOperator = "v"
    +t.varnames = ("v")
    +ConstructDDF(t)
    +DefineScalarExpression("e2", "v - apply_ddf(curvmesh2d, ddf2)")
    +ChangeActivePlotsVar("e2")
    +Test("ddf_02")
    +
    +t.name = "ddf3"
    +t.varnames = ("u", "v")
    +t.binBoundaries = (-1, 1, -1, 1)
    +t.numBins = (25, 25)
    +t.varForReductionOperator = "u"
    +t.reductionOperator = t.Minimum
    +ConstructDDF(t)
    +
    +DefineScalarExpression("e3", "u - apply_ddf(curvmesh2d, ddf3)")
    +ChangeActivePlotsVar("e3")
    +Test("ddf_03")
    +
    +
    +ChangeActivePlotsVar("u")
    +t.name = "ddf4"
    +t.varnames = ("u", "v")
    +t.binBoundaries = (-1, 1, -1, 1)
    +t.numBins = (25, 25)
    +t.varForReductionOperator = "u"
    +t.reductionOperator = t.RMS
    +ConstructDDF(t)
    +
    +DefineScalarExpression("e4", "apply_ddf(curvmesh2d, ddf4)")
    +ChangeActivePlotsVar("e4")
    +Test("ddf_04")
    +
    +
    +#
    +# DDF Spatial Collapse with ghost zones
    +#
    +
    +def ddf(atts,var_name,ddf_op):
    +    # ddf helper used in the wild to normalize var
    +    # and file names
    +    ddf_op_map = {"avg": atts.Average,
    +                  "min": atts.Minimum,
    +                  "max": atts.Maximum,
    +                  "stddev": atts.StandardDeviation,
    +                  "var":    atts.Variance,
    +                  "sum":    atts.Sum,
    +                  "count":  atts.Count,
    +                  "rms": atts.RMS,
    +                  "pdf": atts.PDF}
    +    atts.reductionOperator = ddf_op_map[ddf_op]
    +    visit.ConstructDDF(atts)
    +    ndims = len(atts.numBins)
    +    ddf_oname = "%s_%s_%dd" % (var_name,ddf_op,ndims)
    +    if len(atts.numBins) == 1:
    +        src_fname = "%s.ultra" % atts.name
    +        des_fname = "%s.ult" % (atts.name)
    +        os.rename(src_fname,des_fname)
    +        lines = open(des_fname).readlines()
    +        f     = open(des_fname, "w")
    +        f.write("# %s\n" % (ddf_oname))
    +        for l in lines[1:]:
    +            f.write(l)
    +        f.close()
    +    else:
    +        src_fname = "%s.vtk" % atts.name
    +        des_fname = src_fname
    +        orig_vtk_var = "SCALARS %s float" % var_name
    +        ddf_vtk_var  = "SCALARS %s float" % ddf_oname
    +        data = open(des_fname).read()
    +        f = open(des_fname, "w")
    +        data = data.replace(orig_vtk_var,ddf_vtk_var)
    +        f.write(data)
    +    print("[ddf output: %s]" % des_fname)
    +    return des_fname
    +
    +#################################################
    +# bigsil has ghost zones, this test makes
    +# sure we are taking care of ghost zones property
    +# in ddfs
    +# use ddf to sum collapse spatially in 1d, then 2d
    +def ddf_collapse_test():
    +    TestSection("DDF Spatial Collapse with Ghost Zones")
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("bigsil.silo"))
    +    DefineScalarExpression("mesh_x_nodal","coord(mesh)[0]")
    +    DefineScalarExpression("mesh_y_nodal","coord(mesh)[1]")
    +    DefineScalarExpression("mesh_z_nodal","coord(mesh)[2]")
    +    DefineScalarExpression("mesh_x_zonal","recenter(coord(mesh)[0])")
    +    DefineScalarExpression("mesh_y_zonal","recenter(coord(mesh)[1])")
    +    DefineScalarExpression("mesh_z_zonal","recenter(coord(mesh)[2])")
    +    AddPlot("Pseudocolor","dist")
    +    DrawPlots()
    +    atts = visit.ConstructDDFAttributes()
    +    atts.name = "ddf_dist_1d"
    +    atts.varForReductionOperator = "dist"
    +    atts.varnames = ("mesh_x_zonal",)
    +    atts.binBoundaries = (0,1)
    +    atts.numBins = (21,)
    +    ddf(atts,"dist","sum")
    +    atts = visit.ConstructDDFAttributes()
    +    atts.name = "ddf_dist_2d"
    +    atts.varForReductionOperator = "dist"
    +    atts.varnames = ("mesh_x_zonal", "mesh_y_zonal")
    +    atts.binBoundaries = (0,1, 0,1)
    +    atts.numBins = (21,21)
    +    ddf(atts,"dist","sum")
    +    # plot 1d result
    +    DeleteAllPlots()
    +    OpenDatabase("ddf_dist_1d.ult")
    +    AddPlot("Curve","dist_sum_1d")
    +    DrawPlots()
    +    Test("ddf_spatial_1d")
    +    # plot 2d result
    +    DeleteAllPlots()
    +    OpenDatabase("ddf_dist_2d.vtk")
    +    AddPlot("Pseudocolor","dist_sum_2d")
    +    DrawPlots()
    +    Test("ddf_spatial_2d")
    +
    +ddf_collapse_test()
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_defvar_anim.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_defvar_anim.html new file mode 100644 index 000000000..a5711cebb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_defvar_anim.html @@ -0,0 +1,54 @@ + +Results for hybrid/defvar_anim.py + +

    Results of VisIt Regression Test - hybrid/defvar_anim

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    defvar_anim_010.000.00
    defvar_anim_020.000.00
    defvar_anim_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_defvar_anim_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_defvar_anim_py.html new file mode 100644 index 000000000..c11f8ed03 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_defvar_anim_py.html @@ -0,0 +1,61 @@ +hybrid/defvar_anim.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  defvar.py
    +#
    +#  Tests:      plots     - vector
    +#
    +#  Defect ID:  '3221
    +#
    +#  Programmer: Hank Childs
    +#  Date:       April 10, 2003
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Thu Jun 24 12:58:06 PDT 2004
    +#    Set the vector origin explicitly for some cases because I changed the
    +#    default to Tail.
    +#
    +#    Brad Whitlock, Wed Mar 9 09:15:30 PDT 2005
    +#    Removed deprecated functions.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +
    +
    +vec = VectorAttributes()
    +vec.vectorOrigin = vec.Middle
    +SetDefaultPlotOptions(vec)
    +
    +
    +AddPlot("Vector", "direction")
    +DrawPlots()
    +
    +# Set the view
    +v = View3DAttributes()
    +v.viewNormal = (-0.293413, 0.703819, 0.646953)
    +v.focus = (5, 0.353448, 2.5)
    +v.viewUp = (0.228637, 0.708763, -0.667368)
    +v.viewAngle = 30
    +v.parallelScale = 3.87214
    +v.nearPlane = -11.2018
    +v.farPlane = 11.2018
    +v.perspective = 1
    +SetView3D(v)
    +
    +
    +Test("defvar_anim_01")
    +
    +SetTimeSliderState(30)
    +Test("defvar_anim_02")
    +
    +SetTimeSliderState(60)
    +Test("defvar_anim_03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_expr2engine.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_expr2engine.html new file mode 100644 index 000000000..a83dd121b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_expr2engine.html @@ -0,0 +1,56 @@ + +Results for hybrid/expr2engine.py + +

    Results of VisIt Regression Test - hybrid/expr2engine

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    expr2engine_000.000.00
    expr2engine_010 modifications totalling 0 lines
    expr2engine_020 modifications totalling 0 lines
    expr2engine_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_expr2engine_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_expr2engine_py.html new file mode 100644 index 000000000..4eeddabe5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_expr2engine_py.html @@ -0,0 +1,67 @@ +hybrid/expr2engine.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  expr2engine.py
    +#
    +#  Tests:      mesh      - 2D, curvilinear, single domain
    +#              plots     - FilledBoundary
    +#              databases - PDB
    +#
    +#  Purpose:    This test case tests the viewer's ability to send not only the
    +#              user-defined expressions to the engine but also the correct
    +#              database expressions.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Feb 18 14:01:48 PST 2005
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Create some expressions.
    +#
    +DefineScalarExpression("user_defined1", "u * u")
    +DefineScalarExpression("user_defined2", "v + v")
    +DefineVectorExpression("user_defined3", "{u, v, w}")
    +
    +# Open a database and make a plot.
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Vector", "vel")
    +v = VectorAttributes()
    +v.nVectors = 4000
    +SetPlotOptions(v)
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.63515, 0.317784, 0.703987)
    +v.viewUp = (0.176786, 0.947058, -0.268008)
    +SetView3D(v)
    +
    +# Test the image that we should have by this point. Also make sure that the
    +# expression list contains the database expressions for the first database.
    +Test("expr2engine_00")
    +TestExpressions("expr2engine_01")
    +
    +# Open a different database. The expression list should only contain the 
    +# database variables from the new database.
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +TestExpressions("expr2engine_02")
    +
    +# Test that the plot from the old database, which was a plot of an expression
    +# from the first database can still be generated.
    +AddOperator("Transform")
    +DrawPlots()
    +Test("expr2engine_03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_exprList.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_exprList.html new file mode 100644 index 000000000..54600e6a5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_exprList.html @@ -0,0 +1,56 @@ + +Results for hybrid/exprList.py + +

    Results of VisIt Regression Test - hybrid/exprList

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    exprList000 modifications totalling 0 lines
    exprList010 modifications totalling 0 lines
    exprList020 modifications totalling 0 lines
    exprList030 modifications totalling 0 lines
    exprList040 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_exprList_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_exprList_py.html new file mode 100644 index 000000000..c4925990d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_exprList_py.html @@ -0,0 +1,65 @@ +hybrid/exprList.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  exprList.py
    +#  Tests:      Expression list contents as windows are added and we switch
    +#              between databases that have expressions.
    +#
    +#  Defect ID:  VisIt00003955
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Oct 24 18:06:01 PST 2003
    +#
    +#  Modifications:
    +#    
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +
    +# Define some expressions just so we have some in the list.
    +DefineScalarExpression("var1", "var2 + var3")
    +DefineScalarExpression("var4", "var5 * var6")
    +DefineScalarExpression("var7", "var8 / var9")
    +
    +# Open the first database, which has some expressions.
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "speed")
    +DrawPlots()
    +
    +# This test should show our scalar expressions + globe's expressions.
    +TestExpressions("exprList00")
    +
    +# Add a new window and open a different database that has no expressions of
    +# its own.
    +AddWindow()
    +SetActiveWindow(2)
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("wave*.silo database"))
    +
    +TestExpressions("exprList01")
    +
    +# Going back to window 1, where globe is open. This should make the expression
    +# list contain globe's expressions.
    +SetActiveWindow(1)
    +TestExpressions("exprList02")
    +
    +# Open a new database. This should make the expression list contain the
    +# expressions for rect3d and our scalar expressions.
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +TestExpressions("exprList03")
    +
    +# Add a plot
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +# Make the active plot be the plot of globe. The expression list should 
    +# contain globe's expressions.
    +SetActivePlots(0)
    +TestExpressions("exprList04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_expr_cmfe.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_expr_cmfe.html new file mode 100644 index 000000000..51d135358 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_expr_cmfe.html @@ -0,0 +1,66 @@ + +Results for hybrid/expr_cmfe.py + +

    Results of VisIt Regression Test - hybrid/expr_cmfe

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    expr_cmfe_010.000.00
    expr_cmfe_020.000.00
    expr_cmfe_030.000.00
    expr_cmfe_040.000.00
    expr_cmfe_050.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_expr_cmfe_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_expr_cmfe_py.html new file mode 100644 index 000000000..01d20a9bc --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_expr_cmfe_py.html @@ -0,0 +1,66 @@ +hybrid/expr_cmfe.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  expr_cmfe.py
    +#
    +#  Defect ID:  None
    +#
    +#  Programmer: Hank Childs
    +#  Date:       September 9, 2005
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Thu Dec 29 11:21:26 PST 2005
    +#    Expand the color range for a plot of an expression that should result in 
    +#    uniformly "1", but actually has some small variation.  This causes 
    +#    issues with coloring between optimized and non-optimized modes.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +
    +
    +# Test that database expressions can still be generated.
    +DefineVectorExpression("cmfe", "conn_cmfe(<%s[30]i:direction>, quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +AddPlot("Vector", "cmfe")
    +DrawPlots()
    +Test("expr_cmfe_01")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("cmfe2", "conn_cmfe(coord(<%s[40]i:pressure>)[1], quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +AddPlot("Pseudocolor", "cmfe2")
    +DrawPlots()
    +Test("expr_cmfe_02")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("cmfe3", "coord(quadmesh)[1] - conn_cmfe(coord(<%s[40]i:pressure>)[1], quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +AddPlot("Pseudocolor", "cmfe3")
    +DrawPlots()
    +Test("expr_cmfe_03")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("cmfe4", "coord(quadmesh)[1] - cmfe2")
    +AddPlot("Pseudocolor", "cmfe4")
    +DrawPlots()
    +Test("expr_cmfe_04")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("cmfe5", "volume(quadmesh) / conn_cmfe(volume(<%s[40]i:quadmesh>), quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +AddPlot("Pseudocolor", "cmfe5")
    +pc = PseudocolorAttributes()
    +pc.min = 0.5
    +pc.minFlag = 1
    +pc.max = 1.5
    +pc.maxFlag = 1
    +SetPlotOptions(pc)
    +DrawPlots()
    +Test("expr_cmfe_05")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_expressions.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_expressions.html new file mode 100644 index 000000000..496b625a6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_expressions.html @@ -0,0 +1,304 @@ + +Results for hybrid/expressions.py + +

    Results of VisIt Regression Test - hybrid/expressions

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    radius_ghosts0.000.00
    magnitude10.000.00
    magnitude20.000.00
    vector_sum0.000.00
    vector_diff0.000.00
    theta0.000.00
    phi0.000.00
    cos0.000.00
    abs_cos0.000.00
    sin0.000.00
    minus_sin0.000.00
    four_phase0.000.00
    one0.000.00
    X0.000.00
    radius0.000.00
    zero0.000.00
    vector_add_const0.000.00
    vector_cross0.000.00
    identity_expr0.000.00
    diff_centering_expr_010.000.00
    diff_centering_expr_020.000.00
    diff_centering_expr_030.000.00
    diff_centering_expr_040.000.00
    diff_centering_expr_050.000.00
    diff_centering_expr_060.000.00
    diff_centering_expr_070.000.00
    const_with_no_other_vars0.000.00
    nmats_with_mir0.000.00
    mult_var_usage0.000.00
    mixed_centering_nodal0.000.00
    mixed_centering_zonal0.000.00
    mult_identity_expr0.000.00
    long_identity_expr0.000.00
    divide10.000.00
    divide20.000.00
    divide30.000.00
    resrad0.000.00
    resrad_error0 modifications totalling 0 lines
    ident_mesh0.000.00
    min10.000.00
    min20.000.00
    max10.000.00
    min30.000.00
    max20.000.00
    max30.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_expressions_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_expressions_py.html new file mode 100644 index 000000000..87a515353 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_expressions_py.html @@ -0,0 +1,464 @@ +hybrid/expressions.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  expressions.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - pc
    +#
    +#  Defect ID:  '3939 + '4008 + '4022 + '4162 + '4417 + '4435 + '5790 + '5672
    +#            + '5763 + '5767 + '5874 + '7465 + '7473
    +#
    +#  Programmer: Hank Childs
    +#  Date:       November 18, 2002
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Fri Oct 24 09:25:04 PDT 2003
    +#    Added test for mesh expressions for databases where we communicate
    +#    ghost zones.
    +#
    +#    Hank Childs, Wed Dec 10 14:25:01 PST 2003
    +#    Add tests for implicit and explicit changes in centering.  Also added
    +#    a test for the identity expression, which previously crashed the engine.
    +#
    +#    Hank Childs, Wed Feb 11 14:49:40 PST 2004
    +#    Add tests for nmats and constants.
    +#    
    +#    Hank Childs, Thu Apr 22 16:19:36 PDT 2004
    +#    Update comments due to the change in semantics of recenter (it is now
    +#    always zonal).
    +#
    +#    Hank Childs, Wed Dec 22 13:14:29 PST 2004
    +#    Add tests for variables used both in an expression and in the
    +#    pipeline ['5790].
    +#
    +#    Hank Childs, Thu Jan  6 11:21:21 PST 2005
    +#    Add tests for multiple identity filters and additional tests for mixed
    +#    centering ['5672, '5763, '5767].
    +#
    +#    Hank Childs, Thu Jan 20 18:29:28 PST 2005
    +#    Add test for resrad ['5874].
    +#
    +#    Hank Childs, Fri Aug 25 17:34:13 PDT 2006
    +#    Add test for resrad when arguments are missing ['7473].
    +#
    +#    Hank Childs, Fri Sep 14 11:52:39 PDT 2007
    +#    Add test for identify filters and meshes ['7465].
    +#
    +#    Cyrus Harrison, Thu Jan 31 09:19:57 PST 2008
    +#    Added a test for the value_for_material filter. 
    +#
    +#    Cyrus Harrison, Tue Feb 19 13:52:01 PST 2008
    +#    Removed value_for_material tests (they now reside in val4mat.py)
    +#
    +#    Kathleen Bonnell, Thu May  7 09:26:36 PDT 2009
    +#    ident_mesh is no longer an error case, so remove the error test and
    +#    save an image instead.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Alister Maguire, Mon Mar 29 12:17:40 PDT 2021
    +#    Moved min/max tests into function and extended to include
    +#    multi-domain data.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def TestMinMaxExpression():
    +    # Test min/max expression
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    #
    +    # First, let's test a serial dataset.
    +    #
    +    DefineScalarExpression('min1', 'min(10.0, 5.0, d+p)')
    +    AddPlot('Pseudocolor', 'min1')
    +    DrawPlots()
    +    Test('min1')
    +    DeleteAllPlots()
    +
    +    DefineScalarExpression('min2', 'min(d+p, 5.0, 10.0)')
    +    AddPlot('Pseudocolor', 'min2')
    +    DrawPlots()
    +    Test('min2')
    +    DeleteAllPlots()
    +
    +    DefineScalarExpression('max1', 'max(10.0, 5.0, d+p)')
    +    AddPlot('Pseudocolor', 'max1')
    +    DrawPlots()
    +    Test('max1')
    +    DeleteAllPlots()
    +
    +    DefineScalarExpression('min3', 'min(2.0, d+p, d*p+2*d)')
    +    AddPlot('Pseudocolor', 'min3')
    +    DrawPlots()
    +    Test('min3')
    +    DeleteAllPlots()
    +
    +    CloseDatabase(silo_data_path("rect2d.silo"))
    +
    +    #
    +    # Multi-domain datasets are handled a little differently, so
    +    # let's test one here.
    +    #
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    DefineScalarExpression('max2', 'max(p*16, 4)')
    +    AddPlot('Pseudocolor', 'max2')
    +    DrawPlots()
    +    Test('max2')
    +    DeleteAllPlots()
    +
    +    DefineScalarExpression('max3', 'max(p*16, d, 4)')
    +    AddPlot('Pseudocolor', 'max3')
    +    DrawPlots()
    +    Test('max3')
    +    DeleteAllPlots()
    +
    +    CloseDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +
    +OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +
    +DefineScalarExpression("radius_polar", "polar(mesh)[0]")
    +AddPlot("Contour", "radius_polar")
    +DrawPlots()
    +Test("radius_ghosts")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +
    +DefineScalarExpression("mag1", "magnitude(vel)")
    +AddPlot("Pseudocolor", "mag1")
    +DrawPlots()
    +
    +Test("magnitude1")
    +DeleteAllPlots()
    +
    +#
    +# We have a poor gradient scheme that will cause gradients along a band to
    +# falsely register as 0.  Regardless, I'd like to test it.
    +#
    +DefineScalarExpression("mag2", "magnitude(gradient(v))")
    +AddPlot("Pseudocolor", "mag2")
    +DrawPlots()
    +
    +Test("magnitude2")
    +DeleteAllPlots()
    +
    +
    +#
    +# See above comment regarding gradients.
    +#
    +DefineScalarExpression("vector_sum", "magnitude(gradient(v)+gradient(u))")
    +AddPlot("Pseudocolor", "vector_sum")
    +DrawPlots()
    +
    +Test("vector_sum")
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("vector_diff", "magnitude(gradient(v)-gradient(u))")
    +AddPlot("Pseudocolor", "vector_diff")
    +DrawPlots()
    +
    +Test("vector_diff")
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("theta", "polar(mesh1)[1]")
    +AddPlot("Pseudocolor", "theta")
    +DrawPlots()
    +
    +Test("theta")
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("phi", "polar(mesh1)[2]")
    +AddPlot("Pseudocolor", "phi")
    +DrawPlots()
    +
    +Test("phi")
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("cos", "cos(polar(mesh1)[1])")
    +AddPlot("Pseudocolor", "cos")
    +DrawPlots()
    +
    +Test("cos")
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("abs_cos", "abs(cos(polar(mesh1)[1]))")
    +AddPlot("Pseudocolor", "abs_cos")
    +DrawPlots()
    +
    +Test("abs_cos")
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("sin", "sin(polar(mesh1)[1])")
    +AddPlot("Pseudocolor", "sin")
    +DrawPlots()
    +
    +Test("sin")
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("minus_sin", "-sin(polar(mesh1)[1])")
    +AddPlot("Pseudocolor", "minus_sin")
    +DrawPlots()
    +
    +Test("minus_sin")
    +DeleteAllPlots()
    +
    +DefineScalarExpression("four_phase", "rad2deg(acos(sin(polar(mesh1)[1]))-polar(mesh1)[1])")
    +AddPlot("Pseudocolor", "four_phase")
    +DrawPlots()
    +
    +Test("four_phase")
    +DeleteAllPlots()
    +
    +
    +atts = PseudocolorAttributes()
    +atts.minFlag = 1
    +atts.min = 0.99
    +atts.maxFlag = 1
    +atts.max = 1.01
    +SetDefaultPlotOptions(atts)
    +
    +DefineScalarExpression("one", "sin(polar(mesh1)[1])*sin(polar(mesh1)[1]) + cos(polar(mesh1)[1])*cos(polar(mesh1)[1])")
    +AddPlot("Pseudocolor", "one")
    +DrawPlots()
    +
    +Test("one")
    +DeleteAllPlots()
    +
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +SetDefaultPlotOptions(atts)
    +
    +DefineScalarExpression("X", "coord(mesh1)[0]")
    +AddPlot("Pseudocolor", "X")
    +DrawPlots()
    +
    +Test("X")
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("radius", "sqrt(coords(mesh1)[0]*coords(mesh1)[0]+coords(mesh1)[1]*coords(mesh1)[1]+coords(mesh1)[2]*coords(mesh1)[2])")
    +AddPlot("Pseudocolor", "radius")
    +DrawPlots()
    +
    +Test("radius")
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("zero", "(polar(mesh1))[0] - sqrt(coords(mesh1)[0]*coords(mesh1)[0]+coords(mesh1)[1]*coords(mesh1)[1]+coords(mesh1)[2]*coords(mesh1)[2])")
    +AddPlot("Pseudocolor", "zero")
    +DrawPlots()
    +
    +Test("zero")
    +DeleteAllPlots()
    +
    +DefineVectorExpression("dd", "disp+{1,2,3}")
    +AddPlot("Vector", "dd")
    +DrawPlots()
    +
    +Test("vector_add_const")
    +DeleteAllPlots()
    +
    +DefineVectorExpression("cr", "cross(disp,dd)")
    +AddPlot("Vector", "cr")
    +DrawPlots()
    +
    +Test("vector_cross")
    +DeleteAllPlots()
    +
    +DefineScalarExpression("a", "t")
    +AddPlot("Pseudocolor", "a")
    +DrawPlots()
    +Test("identity_expr")
    +DeleteAllPlots()
    +
    +DefineScalarExpression("sum1", "t+100*u")
    +AddPlot("Pseudocolor", "sum1")
    +DrawPlots()
    +Test("diff_centering_expr_01")
    +DeleteAllPlots()
    +
    +DefineScalarExpression("sum2", "(u+t/100.)*100.")
    +AddPlot("Pseudocolor", "sum2")
    +DrawPlots()
    +Test("diff_centering_expr_02")
    +DeleteAllPlots()
    +
    +DefineScalarExpression("diff", "sum2-sum1")
    +AddPlot("Pseudocolor", "diff")
    +DrawPlots()
    +Test("diff_centering_expr_03")
    +DeleteAllPlots()
    +
    +DefineScalarExpression("sum_rc1", "recenter(t)+100*u")
    +AddPlot("Pseudocolor", "sum_rc1")
    +DrawPlots()
    +Test("diff_centering_expr_04")
    +DeleteAllPlots()
    +
    +# This one will recenter the first t.  When the second one is subtracted,
    +# will recenter the first t again to make it zonal again.
    +DefineScalarExpression("diff_rc1", "recenter(t)-t")
    +AddPlot("Pseudocolor", "diff_rc1")
    +DrawPlots()
    +Test("diff_centering_expr_05")
    +DeleteAllPlots()
    +
    +# This one will recenter the first t twice.  The second one will not be 
    +# touched.
    +DefineScalarExpression("diff_rc2", "recenter(recenter(t))-t")
    +AddPlot("Pseudocolor", "diff_rc2")
    +DrawPlots()
    +Test("diff_centering_expr_06")
    +DeleteAllPlots()
    +
    +# The first t will not be touched.  The second one will be recentered once
    +# explicitly and once implicitly (from the minus).
    +DefineScalarExpression("diff_rc3", "t-recenter(t)")
    +AddPlot("Pseudocolor", "diff_rc2")
    +DrawPlots()
    +Test("diff_centering_expr_07")
    +DeleteAllPlots()
    +
    +# The constant (3.14159) will be the only variable in the dataset.  Test
    +# that the constant creation logic can figure out that we must be making
    +# an expression based on the mesh downstream.
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +DefineScalarExpression("sin_x", "sin(3.14159*coord(quadmesh3d)[0])")
    +AddPlot("Pseudocolor", "sin_x")
    +DrawPlots()
    +Test("const_with_no_other_vars")
    +DeleteAllPlots()
    +
    +# The nmats expression needs to use the original zone numbers array to
    +# find the correct index into an avtMaterial object.  Make sure that this is
    +# being done correctly by splitting the zones before we even get to the
    +# expression via MIR.
    +DefineScalarExpression("nmats", "nmats(mat1)")
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Threshold")
    +thresh = ThresholdAttributes()
    +thresh.lowerBounds = (1.5)
    +thresh.listedVarNames = ("nmats")
    +SetOperatorOptions(thresh)
    +DrawPlots()
    +Test("nmats_with_mir")
    +DeleteAllPlots()
    +
    +# Test that a variable (u) can be used in both the expression and downstream
    +# in the pipeline.
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "speed")
    +AddOperator("Threshold")
    +thresh = ThresholdAttributes()
    +thresh.lowerBounds = (0.0)
    +thresh.listedVarNames = ("u")
    +SetOperatorOptions(thresh)
    +DrawPlots()
    +Test("mult_var_usage")
    +DeleteAllPlots()
    +
    +# The binary math filter forces mixed centering to be zonal.  The base class
    +# used to get confused and would sometimes declare the variable as nodal.
    +# Test to make sure this works.  By forcing the centering, we can confirm
    +# the base class is declaring the variable the right way.
    +DefineScalarExpression("prod", "u*t")
    +AddPlot("Pseudocolor", "prod")
    +pc = PseudocolorAttributes()
    +pc.centering = pc.Nodal
    +SetPlotOptions(pc)
    +DrawPlots()
    +Test("mixed_centering_nodal")
    +pc = PseudocolorAttributes()
    +pc.centering = pc.Zonal
    +SetPlotOptions(pc)
    +Test("mixed_centering_zonal")
    +
    +# Test that we can handle multiple identity expressions.
    +DefineScalarExpression("sub1", "u")
    +DefineScalarExpression("sub2", "v")
    +DefineScalarExpression("sum", "sub1+sub2")
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "sum")
    +DrawPlots()
    +Test("mult_identity_expr")
    +
    +# Test that we can handle identity expressions that are not the first node
    +# of the expression tree.
    +DefineVectorExpression("C", "coord(mesh1)")
    +DefineScalarExpression("X", "C[0]")
    +DefineScalarExpression("Y", "C[1]")
    +DefineScalarExpression("Z", "C[2]")
    +DefineScalarExpression("TX", "X")
    +DefineScalarExpression("TY", "cos_angle*Y - sin_angle*Z + Zt*sin_angle - Yt*cos_angle")
    +DefineScalarExpression("TZ", "sin_angle*Y + cos_angle*Z + Yt*sin_angle - Zt*cos_angle")
    +DefineScalarExpression("Yt", "5")
    +DefineScalarExpression("Zt", "10")
    +DefineScalarExpression("angle", "rad2deg(30)")
    +DefineScalarExpression("sin_angle", "sin(angle)")
    +DefineScalarExpression("cos_angle", "cos(angle)")
    +DefineScalarExpression("rad", "TX*TX + TY*TY + TZ*TZ")
    +AddPlot("Pseudocolor", "rad")
    +DrawPlots()
    +Test("long_identity_expr")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +# Test divide expression
    +DefineScalarExpression('divide1', 'divide(d,p)')
    +AddPlot('Pseudocolor','divide1')
    +DrawPlots()
    +Test('divide1')
    +
    +DefineScalarExpression('divide2', 'divide(d,p,0.0,2.0)')
    +AddPlot('Pseudocolor','divide2')
    +DrawPlots()
    +Test('divide2')
    +DeleteAllPlots()
    +
    +DefineScalarExpression('divide3', 'divide(d,p,1.0,2.0)')
    +AddPlot('Pseudocolor','divide3')
    +DrawPlots()
    +Test('divide3')
    +DeleteAllPlots()
    +
    +# Test resrad
    +DefineScalarExpression("resrad", "resrad(recenter(u), 0.1)")
    +AddPlot("Pseudocolor", "resrad")
    +DrawPlots()
    +Test("resrad")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("resrad2", "resrad(recenter(u))")
    +AddPlot("Pseudocolor", "resrad2")
    +DrawPlots()
    +txt = GetLastError()
    +TestText("resrad_error", txt)
    +
    +DeleteAllPlots()
    +DefineScalarExpression("ident_mesh", "quadmesh2d")
    +AddPlot("Pseudocolor", "ident_mesh")
    +DrawPlots()
    +Test("ident_mesh")
    +
    +TestMinMaxExpression()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_field_operators.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_field_operators.html new file mode 100644 index 000000000..4fd216a24 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_field_operators.html @@ -0,0 +1,144 @@ + +Results for hybrid/field_operators.py + +

    Results of VisIt Regression Test - hybrid/field_operators

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    field_op_010.000.00
    field_op_020.000.00
    field_op_030.000.00
    field_op_040.000.00
    field_op_050.000.00
    field_op_060.000.00
    field_op_070.000.00
    field_op_080.000.00
    field_op_090.000.00
    field_op_100.000.00
    field_op_110.000.00
    field_op_120.000.00
    field_op_130.000.00
    field_op_140.000.00
    field_op_150.000.00
    field_op_160.000.00
    field_op_170.000.00
    field_op_180.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_field_operators_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_field_operators_py.html new file mode 100644 index 000000000..91e5433b4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_field_operators_py.html @@ -0,0 +1,258 @@ +hybrid/field_operators.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  field_operators.py
    +#
    +#  Tests:      mesh      - rectilinear, curvilinear
    +#              plots     - vector, contour
    +#
    +#  Defect ID:  '4141, '5343, '6297, '6460, '7063, '8025
    +#
    +#  Programmer: Hank Childs
    +#  Date:       December 13, 2003
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Thu Jun 24 12:58:06 PDT 2004
    +#    Set the vector origin explicitly for some cases because I changed the
    +#    default to Tail.
    +#
    +#    Hank Childs, Mon Jan  3 10:35:56 PST 2005
    +#    Renamed to field_operators.  Added testing for divergence, Laplacian,
    +#    and curl.
    +#
    +#    Hank Childs, Mon Jun  6 11:28:45 PDT 2005
    +#    Add tests for 2D divergence, Laplacian.
    +#
    +#    Hank Childs, Mon Aug 15 14:19:49 PDT 2005
    +#    2D curl now produces a scalar.  Change our test appropriately.
    +#
    +#    Hank Childs, Fri Mar  3 09:01:08 PST 2006
    +#    Add test for Jacobian (2D determinants).  '7063
    +#
    +#    Hank Childs, Mon Jun 18 09:54:09 PDT 2007
    +#    Add test for dot of curl with a vector.  This is really testing the
    +#    ability of macro expressions to maintain secondary variables. '8025
    +#
    +#    Jeremy Meredith, Tue Jul 15 10:43:58 EDT 2008
    +#    Changed number of vectors in vector plot to match the old behavior.
    +#    (We now account for how many domains there are.)
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Remove obsolete 'colorByMag' vector att with 'colorByMagnitude'.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +DefineVectorExpression("grad_t", "gradient(t)")
    +AddPlot("Vector", "grad_t")
    +v = VectorAttributes()
    +v.vectorOrigin = v.Middle
    +SetPlotOptions(v)
    +DrawPlots()
    +
    +# Zonal UCD gradient.
    +Test("field_op_01")
    +DeleteAllPlots()
    +
    +DefineVectorExpression("grad_u", "gradient(u)")
    +AddPlot("Vector", "grad_u")
    +v = VectorAttributes()
    +v.vectorOrigin = v.Middle
    +SetPlotOptions(v)
    +DrawPlots()
    +
    +# Nodal UCD gradient.
    +Test("field_op_02")
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +DefineVectorExpression("grad_d", "gradient(d)")
    +AddPlot("Vector", "grad_d")
    +v = VectorAttributes()
    +v.colorByMagnitude = 1
    +v.vectorOrigin = v.Middle
    +SetPlotOptions(v)
    +DrawPlots()
    +
    +# Zonal rect-2d gradient.
    +Test("field_op_03")
    +DeleteAllPlots()
    +
    +AddPlot("Vector", "grad_u")
    +v = VectorAttributes()
    +v.colorByMagnitude = 1
    +v.vectorOrigin = v.Middle
    +SetPlotOptions(v)
    +DrawPlots()
    +
    +# Nodal rect-2d gradient.
    +Test("field_op_04")
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +AddPlot("Vector", "grad_d")
    +v = VectorAttributes()
    +v.nVectors = 447
    +v.vectorOrigin = v.Middle
    +SetPlotOptions(v)
    +DrawPlots()
    +
    +# Zonal rect-3d gradient.
    +Test("field_op_05")
    +DeleteAllPlots()
    +
    +AddPlot("Vector", "grad_u")
    +v = VectorAttributes()
    +v.vectorOrigin = v.Middle
    +SetPlotOptions(v)
    +DrawPlots()
    +
    +# Nodal rect-3d gradient.
    +Test("field_op_06")
    +DeleteAllPlots()
    +
    +AddPlot("Vector", "vel")
    +DefineScalarExpression("mag", "magnitude(vel)")
    +AddOperator("Threshold")
    +t = ThresholdAttributes()
    +t.lowerBounds = (0.5)
    +t.upperBounds = (1.5)
    +t.listedVarNames = ("mag")
    +SetOperatorOptions(t)
    +DrawPlots()
    +
    +# Test vector with threshold ('4178)
    +Test("field_op_07")
    +DeleteAllPlots()
    +
    +
    +AddPlot("Vector", "grad_u")
    +v = VectorAttributes()
    +v.vectorOrigin = v.Middle
    +v.nVectors = 400*3
    +SetPlotOptions(v)
    +DefineScalarExpression("u_mag", "magnitude(grad_u)")
    +AddOperator("Isosurface")
    +iso = IsosurfaceAttributes()
    +iso.contourNLevels = 3
    +iso.variable = "u_mag"
    +SetOperatorOptions(iso)
    +DrawPlots()
    +
    +v = GetView3D()
    +v.imageZoom = 4.5
    +SetView3D(v)
    +
    +# Test vector with isosurface ('4207)
    +Test("field_op_08")
    +
    +# Add a contour plot just for grins to show that our isosurface operator is
    +# picking up the same surface as the contour plot.
    +AddPlot("Contour", "u_mag")
    +con = ContourAttributes()
    +con.contourNLevels = 3
    +SetPlotOptions(con)
    +DrawPlots()
    +
    +Test("field_op_09")
    +DeleteAllPlots()
    +
    +# Test that we can calculate the Laplacian.
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +v = GetView3D()
    +v.imageZoom = 1
    +v.viewNormal = (0.41, 0.08, -0.91)
    +SetView3D(v)
    +
    +DefineScalarExpression("LP", "abs(Laplacian(u))")
    +AddPlot("Contour", "LP")
    +c = ContourAttributes()
    +c.scaling = c.Log
    +SetPlotOptions(c)
    +DrawPlots()
    +Test("field_op_10")
    +
    +DefineScalarExpression("div", "divergence(vel)")
    +DeleteAllPlots()
    +AddPlot("Contour", "div")
    +c = ContourAttributes()
    +c.scaling = c.Log
    +SetPlotOptions(c)
    +DrawPlots()
    +Test("field_op_11")
    +
    +
    +# Test multiple macro expressions together -- divergence and Laplacian.
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "div")
    +pc = PseudocolorAttributes()
    +pc.scaling = pc.Log
    +SetPlotOptions(pc)
    +AddOperator("Isosurface")
    +iso = IsosurfaceAttributes()
    +iso.scaling = iso.Log
    +iso.variable = "LP"
    +SetOperatorOptions(iso)
    +DrawPlots()
    +
    +Test("field_op_12")
    +
    +
    +DefineVectorExpression("curl", "curl(vel)")
    +DeleteAllPlots()
    +AddPlot("Vector", "curl")
    +v = VectorAttributes()
    +v.scaleByMagnitude = 0
    +SetPlotOptions(v)
    +DrawPlots()
    +Test("field_op_13")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +DefineScalarExpression("div2", "divergence(vel)")
    +AddPlot("Pseudocolor", "div2")
    +DrawPlots()
    +Test("field_op_14")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("LP2", "Laplacian(d)")
    +AddPlot("Pseudocolor", "LP2")
    +DrawPlots()
    +Test("field_op_15")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("curl2", "curl(vel)")
    +AddPlot("Pseudocolor", "curl2")
    +DrawPlots()
    +Test("field_op_16")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("jacobian", "determinant({gradient(u), gradient(v)})")
    +AddPlot("Pseudocolor", "jacobian")
    +DrawPlots()
    +Test("field_op_17")
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +DefineVectorExpression("mycurl", "curl(vel)")
    +DefineScalarExpression("mydot", "dot(curl,vel)")
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "mydot")
    +DrawPlots()
    +Test("field_op_18")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_ghost_node.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_ghost_node.html new file mode 100644 index 000000000..8b3bdf435 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_ghost_node.html @@ -0,0 +1,42 @@ + +Results for hybrid/ghost_node.py + +

    Results of VisIt Regression Test - hybrid/ghost_node

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ghost_node_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_ghost_node_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_ghost_node_py.html new file mode 100644 index 000000000..e42d689ca --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_ghost_node_py.html @@ -0,0 +1,45 @@ +hybrid/ghost_node.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ghost_node.py 
    +#
    +#  Tests:      ghost node removal of multi_curv3d.silo
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       July 6, 2020 
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Fri Mar 12, 2021
    +#    Added DeleteAllPlots before CloseDatabase.
    +#
    +# ----------------------------------------------------------------------------
    +TurnOffAllAnnotations() # defines global object 'a'
    +
    +OpenDatabase(silo_data_path("multi_curv3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +pc = PseudocolorAttributes()
    +pc.opacityType = pc.Constant
    +pc.opacityVariable = ""
    +pc.opacity = 0.25
    +SetPlotOptions(pc)
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (-0.491824, 0.420414, 0.76247)
    +v.focus = (0, 2.5, 15)
    +v.viewUp = (0.214182, 0.907212, -0.362066)
    +v.viewAngle = 30
    +v.parallelScale = 16.0078
    +v.nearPlane = -32.0156
    +v.farPlane = 32.0156
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +SetView3D(v)
    +
    +Test("ghost_node_01")
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multi_curv3d.silo"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_image_proc.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_image_proc.html new file mode 100644 index 000000000..4811a4eb4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_image_proc.html @@ -0,0 +1,54 @@ + +Results for hybrid/image_proc.py + +

    Results of VisIt Regression Test - hybrid/image_proc

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    image_proc_010.000.00
    image_proc_020.000.00
    image_proc_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_image_proc_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_image_proc_py.html new file mode 100644 index 000000000..3e75bafca --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_image_proc_py.html @@ -0,0 +1,34 @@ +hybrid/image_proc.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  image_proc.py
    +#
    +#  Tests:      mesh      - Image
    +#              plots     - Pseudocolor
    +#
    +#  Defect ID:  '6492
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 19, 2005
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(data_path("Image_test_data/manhattan.jpg"))
    +
    +DefineScalarExpression("cm", "conservative_smoothing(intensity)")
    +AddPlot("Pseudocolor", "cm")
    +DrawPlots()
    +Test("image_proc_01")
    +
    +DefineScalarExpression("median", "median_filter(intensity)")
    +ChangeActivePlotsVar("median")
    +Test("image_proc_02")
    +
    +DefineScalarExpression("mean", "mean_filter(intensity)")
    +ChangeActivePlotsVar("mean")
    +Test("image_proc_03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_keyframe.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_keyframe.html new file mode 100644 index 000000000..05c28ca99 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_keyframe.html @@ -0,0 +1,501 @@ + +Results for hybrid/keyframe.py + +

    Results of VisIt Regression Test - hybrid/keyframe

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Simple 6 frame animation
    keyframe_010.000.00
    keyframe_020.000.00
    keyframe_030.000.00
    keyframe_040.000.00
    keyframe_050.000.00
    keyframe_060.000.00
    Setting plot frame range
    keyframe_070.000.00
    keyframe_080.000.00
    keyframe_090.000.00
    keyframe_100.000.00
    keyframe_110.000.00
    keyframe_120.000.00
    Setting a plot attributes keyframe
    keyframe_130.000.00
    keyframe_140.000.00
    keyframe_150.000.00
    keyframe_160.000.00
    keyframe_170.000.00
    keyframe_180.000.00
    Removing a plot attributes keyframe
    keyframe_190.000.00
    keyframe_200.000.00
    keyframe_210.000.00
    keyframe_220.000.00
    keyframe_230.000.00
    keyframe_240.000.00
    Deleting another plot attributes keyframe
    keyframe_250.000.00
    keyframe_260.000.00
    keyframe_270.000.00
    keyframe_280.000.00
    keyframe_290.000.00
    keyframe_300.000.00
    Decreasing number of animation frames
    keyframe_310.000.00
    keyframe_320.000.00
    keyframe_330.000.00
    keyframe_340.000.00
    Copying keyframed plot to a new window
    keyframe_350.000.00
    keyframe_360.000.00
    keyframe_370.000.00
    keyframe_380.000.00
    Turning off keyframe mode
    keyframe_390.000.00
    keyframe_400.000.00
    keyframe_410.000.00
    keyframe_420.000.00
    Testing view keyframing
    keyframe_430.000.00
    keyframe_440.000.00
    keyframe_450.000.00
    keyframe_460.000.00
    keyframe_470.000.00
    keyframe_480.000.00
    keyframe_490.000.00
    keyframe_500.000.00
    keyframe_510.000.00
    keyframe_520.000.00
    keyframe_530.000.00
    Moving keyframes
    keyframe_540.000.00
    keyframe_550.000.00
    keyframe_560.000.00
    keyframe_570.000.00
    keyframe_580.000.00
    keyframe_590.000.00
    keyframe_600.000.00
    keyframe_610.000.00
    keyframe_620.000.00
    Operator keyframes
    keyframe_630.000.00
    keyframe_640.000.00
    keyframe_650.000.00
    keyframe_660.000.00
    keyframe_670.000.00
    keyframe_680.000.00
    keyframe_690.000.00
    keyframe_700.000.00
    keyframe_710.000.00
    keyframe_720.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_keyframe_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_keyframe_py.html new file mode 100644 index 000000000..77afa6c1c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_keyframe_py.html @@ -0,0 +1,544 @@ +hybrid/keyframe.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  keyframe.py
    +#
    +#  Tests:      mesh      - 3D structured, single domain
    +#              plots     - pc, mesh
    +#              operators - none
    +#              selection - none
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       Thu Dec 19 16:02:41 PST 2002
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Apr 7 17:24:41 PST 2004
    +#    I added TestSection to break up the test images a little. I also updated
    +#    the code so it uses the new time slider functions instead of the
    +#    deprecated animation functions.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to switch between Silo's HDF5 and PDB data.
    +#
    +#    Eric Brugger, Wed Mar 22 16:23:12 PDT 2023
    +#    Added operator keyframe tests.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# Open a database.
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +
    +# Enable keyframe mode.
    +k = GetKeyframeAttributes()
    +k.enabled = 1
    +SetKeyframeAttributes(k)
    +
    +# Set the number of frames to be 6.
    +AnimationSetNFrames(6)
    +
    +# Create a pseudocolor plot that exists over the first
    +# 6 frames of the animation.
    +AddPlot("Pseudocolor", "pressure")
    +SetPlotFrameRange(0, 0, 5)
    +
    +# Set the attributes at the first and last frame.
    +SetTimeSliderState(0)
    +pc = PseudocolorAttributes()
    +pc.min = 0
    +pc.max = 0.2
    +pc.minFlag = 1
    +pc.maxFlag = 1
    +SetPlotOptions(pc)
    +
    +SetTimeSliderState(5)
    +pc.max = 0.5
    +SetPlotOptions(pc)
    +
    +# Create a mesh plot that exists over frames 2
    +# through 4.
    +AddPlot("Mesh", "quadmesh")
    +
    +SetPlotFrameRange(1, 2, 4)
    +SetPlotDatabaseState(1, 2, 28)
    +SetPlotDatabaseState(1, 4, 56)
    +
    +# Cycle through all the frames, checking that all
    +# the images are correct.
    +TestSection("Simple 6 frame animation")
    +SetTimeSliderState(0)
    +DrawPlots()
    +Test("keyframe_01")
    +TimeSliderNextState()
    +Test("keyframe_02")
    +TimeSliderNextState()
    +Test("keyframe_03")
    +TimeSliderNextState()
    +Test("keyframe_04")
    +TimeSliderNextState()
    +Test("keyframe_05")
    +TimeSliderNextState()
    +Test("keyframe_06")
    +
    +# Change to frame 4, change the frame range and
    +# check that all the frames are ok.
    +TestSection("Setting plot frame range")
    +SetTimeSliderState(4)
    +SetPlotFrameRange(1, 0, 2)
    +SetPlotDatabaseState(1, 0, 0)
    +SetPlotDatabaseState(1, 2, 28)
    +
    +SetTimeSliderState(0)
    +Test("keyframe_07")
    +TimeSliderNextState()
    +Test("keyframe_08")
    +TimeSliderNextState()
    +Test("keyframe_09")
    +TimeSliderNextState()
    +Test("keyframe_10")
    +TimeSliderNextState()
    +Test("keyframe_11")
    +TimeSliderNextState()
    +Test("keyframe_12")
    +
    +SetActivePlots(1)
    +DeleteActivePlots()
    +
    +# Set the pseudocolor attributes for frame 2 and
    +# check that all the frames are ok.
    +TestSection("Setting a plot attributes keyframe")
    +SetActivePlots(0)
    +SetTimeSliderState(2)
    +pc.max = 0.7
    +SetPlotOptions(pc)
    +
    +SetTimeSliderState(0)
    +Test("keyframe_13")
    +TimeSliderNextState()
    +Test("keyframe_14")
    +TimeSliderNextState()
    +Test("keyframe_15")
    +TimeSliderNextState()
    +Test("keyframe_16")
    +TimeSliderNextState()
    +Test("keyframe_17")
    +TimeSliderNextState()
    +Test("keyframe_18")
    +
    +# Delete the keyframe at frame 2 and check that
    +# all the frames are ok.
    +TestSection("Removing a plot attributes keyframe")
    +SetTimeSliderState(2)
    +DeletePlotKeyframe(0, 2)
    +
    +SetTimeSliderState(0)
    +Test("keyframe_19")
    +TimeSliderNextState()
    +Test("keyframe_20")
    +TimeSliderNextState()
    +Test("keyframe_21")
    +TimeSliderNextState()
    +Test("keyframe_22")
    +TimeSliderNextState()
    +Test("keyframe_23")
    +TimeSliderNextState()
    +Test("keyframe_24")
    +
    +# Delete the keyframe at frame 5 and check that
    +# all the frames are ok.
    +TestSection("Deleting another plot attributes keyframe")
    +DeletePlotKeyframe(0, 5)
    +
    +SetTimeSliderState(0)
    +Test("keyframe_25")
    +TimeSliderNextState()
    +Test("keyframe_26")
    +TimeSliderNextState()
    +Test("keyframe_27")
    +TimeSliderNextState()
    +Test("keyframe_28")
    +TimeSliderNextState()
    +Test("keyframe_29")
    +TimeSliderNextState()
    +Test("keyframe_30")
    +
    +# Change the number of frames to 4.  Create a
    +# pseudocolor plot that changes its range but
    +# keeps the database state constant at 0.  Check
    +# that all the frames are ok.
    +TestSection("Decreasing number of animation frames")
    +DeleteActivePlots()
    +AnimationSetNFrames(4)
    +AddPlot("Pseudocolor", "pressure")
    +SetPlotFrameRange(0, 0, 3)
    +SetTimeSliderState(0)
    +pc.max = 0.2
    +SetPlotOptions(pc)
    +SetTimeSliderState(3)
    +pc.max = 0.5
    +SetPlotOptions(pc)
    +DeletePlotDatabaseKeyframe(0, 3)
    +DrawPlots()
    +
    +SetTimeSliderState(0)
    +Test("keyframe_31")
    +TimeSliderNextState()
    +Test("keyframe_32")
    +TimeSliderNextState()
    +Test("keyframe_33")
    +TimeSliderNextState()
    +Test("keyframe_34")
    +
    +# Test copying plots to a new window.
    +TestSection("Copying keyframed plot to a new window")
    +SetTimeSliderState(2)
    +AddWindow()
    +SetActiveWindow(2)
    +CopyPlotsToWindow(1, 2)
    +CopyAnnotationsToWindow(1, 2)
    +CopyViewToWindow(1, 2)
    +DrawPlots()
    +
    +Test("keyframe_35")
    +TimeSliderNextState()
    +Test("keyframe_36")
    +TimeSliderNextState()
    +Test("keyframe_37")
    +TimeSliderNextState()
    +Test("keyframe_38")
    +
    +# Take the window out of keyframe mode and
    +# check that setting the plot attributes sets
    +# them for all the frames.
    +TestSection("Turning off keyframe mode")
    +k.enabled = 0
    +SetKeyframeAttributes(k)
    +
    +SetPlotDatabaseState(0, 3, 3)
    +SetTimeSliderState(3)
    +pc.minFlag = 0
    +pc.maxFlag = 0
    +SetPlotOptions(pc)
    +
    +SetTimeSliderState(0)
    +Test("keyframe_39")
    +TimeSliderNextState()
    +Test("keyframe_40")
    +TimeSliderNextState()
    +Test("keyframe_41")
    +TimeSliderNextState()
    +Test("keyframe_42")
    +
    +# Clear the window, reset the view and enable
    +# keyframe mode in preparation to test view
    +# keyframing.
    +TestSection("Testing view keyframing")
    +DeleteAllPlots()
    +ResetView()
    +k.enabled = 1
    +SetKeyframeAttributes(k)
    +
    +# Open a database.
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +# Set the number of frames to be 9.
    +AnimationSetNFrames(9)
    +
    +# Create a pseudocolor plot that exists over the first
    +# 9 frames of the animation.
    +AddPlot("Pseudocolor", "u")
    +SetPlotFrameRange(0, 0, 8)
    +
    +# Create 5 view keyframes.
    +SetTimeSliderState(0)
    +v = GetView3D()
    +v.SetViewNormal(1, 0, 0)
    +v.SetFocus(0, 0, 0)
    +v.SetViewUp(0, 0, 1)
    +v.SetViewAngle(30)
    +v.SetParallelScale(17.3205)
    +v.SetNearPlane(-34.641)
    +v.SetFarPlane(34.641)
    +v.SetPerspective(1)
    +SetView3D(v)
    +SetViewKeyframe()
    +
    +SetTimeSliderState(2)
    +v.SetViewNormal(0, 1, 0)
    +SetView3D(v)
    +SetViewKeyframe()
    +
    +SetTimeSliderState(4)
    +v.SetViewNormal(-1, 0, 0)
    +SetView3D(v)
    +SetViewKeyframe()
    +
    +SetTimeSliderState(6)
    +v.SetViewNormal(0, -1, 0)
    +SetView3D(v)
    +SetViewKeyframe()
    +
    +SetTimeSliderState(8)
    +v.SetViewNormal(1, 0, 0)
    +SetView3D(v)
    +SetViewKeyframe()
    +
    +# Render the first frame.
    +SetTimeSliderState(0)
    +DrawPlots()
    +
    +# Enter camera view mode and cycle through all the
    +# frames, checking that all the images are correct.
    +ToggleCameraViewMode()
    +Test("keyframe_43")
    +TimeSliderNextState()
    +Test("keyframe_44")
    +TimeSliderNextState()
    +Test("keyframe_45")
    +TimeSliderNextState()
    +Test("keyframe_46")
    +TimeSliderNextState()
    +Test("keyframe_47")
    +TimeSliderNextState()
    +Test("keyframe_48")
    +TimeSliderNextState()
    +Test("keyframe_49")
    +TimeSliderNextState()
    +Test("keyframe_50")
    +TimeSliderNextState()
    +Test("keyframe_51")
    +
    +# Delete the view keyframe at frame 8 and check the image.
    +DeleteViewKeyframe(8)
    +Test("keyframe_52")
    +
    +# Clear all the view keyframes and check the first image.
    +ClearViewKeyframes()
    +TimeSliderNextState()
    +Test("keyframe_53")
    +
    +# Clear the window and reset the view in preparation
    +# to test moving keyframes.
    +TestSection("Moving keyframes")
    +DeleteAllPlots()
    +ResetView()
    +
    +# Open a database.
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +
    +# Set the number of frames to be 6.
    +AnimationSetNFrames(6)
    +
    +# Create a pseudocolor plot that exists over the first
    +# 6 frames of the animation.
    +AddPlot("Pseudocolor", "pressure")
    +SetPlotFrameRange(0, 0, 5)
    +
    +# Set 3 keyframes.
    +SetTimeSliderState(0)
    +pc = PseudocolorAttributes()
    +pc.min = 0
    +pc.max = 0.2
    +pc.minFlag = 1
    +pc.maxFlag = 1
    +SetPlotOptions(pc)
    +
    +SetTimeSliderState(3)
    +pc.max = 0.7
    +SetPlotOptions(pc)
    +
    +SetTimeSliderState(5)
    +pc.max = 0.5
    +SetPlotOptions(pc)
    +
    +# Render all the images.
    +SetTimeSliderState(0)
    +DrawPlots()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +
    +# Move the keyframe at frame 3 to 4, regenerate all
    +# the frames and check a few of them.
    +MovePlotKeyframe(0, 3, 4)
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +
    +SetTimeSliderState(2)
    +Test("keyframe_54")
    +SetTimeSliderState(4)
    +Test("keyframe_55")
    +SetTimeSliderState(5)
    +Test("keyframe_56")
    +
    +# Delete the last 2 keyframes, move the database
    +# keyframe from frame 5 to 3, regenerate all
    +# the frames and check a few of them.
    +DeletePlotKeyframe(0, 4)
    +DeletePlotKeyframe(0, 5)
    +
    +MovePlotDatabaseKeyframe(0, 5, 3)
    +SetTimeSliderState(0)
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +
    +SetTimeSliderState(1)
    +Test("keyframe_57")
    +SetTimeSliderState(3)
    +Test("keyframe_58")
    +SetTimeSliderState(4)
    +Test("keyframe_59")
    +
    +# Delete the second database keyframe, create
    +# 3 view keyframes and regenerate all the images.
    +DeletePlotDatabaseKeyframe(0, 3)
    +
    +SetTimeSliderState(0)
    +v = GetView3D()
    +v.SetViewNormal(-1, 0, 1)
    +v.SetFocus(5, 0.35, 2.5)
    +v.SetViewUp(0, 1, 0)
    +v.SetViewAngle(30)
    +v.SetParallelScale(5.6009)
    +v.SetNearPlane(-11.2018)
    +v.SetFarPlane(11.2018)
    +v.SetPerspective(1)
    +SetView3D(v)
    +SetViewKeyframe()
    +
    +SetTimeSliderState(2)
    +v.SetViewNormal(0, 0, 1)
    +SetView3D(v)
    +SetViewKeyframe()
    +
    +SetTimeSliderState(5)
    +v.SetViewNormal(1, 0, 1)
    +SetView3D(v)
    +SetViewKeyframe()
    +
    +ToggleCameraViewMode()
    +SetTimeSliderState(0)
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +
    +# Move the view keyframe at frame 2 to frame 3,
    +# regenerate all the frames and check a few of them.
    +MoveViewKeyframe(2, 3)
    +SetTimeSliderState(0)
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +TimeSliderNextState()
    +
    +SetTimeSliderState(2)
    +Test("keyframe_60")
    +SetTimeSliderState(3)
    +Test("keyframe_61")
    +SetTimeSliderState(4)
    +Test("keyframe_62")
    +
    +# Clear the window and reset the view in preparation
    +# to test operator keyframes.
    +TestSection("Operator keyframes")
    +DeleteAllPlots()
    +ResetView()
    +
    +# Open a database.
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +# Set the number of frames to be 11.
    +AnimationSetNFrames(11)
    +
    +# Create a pseudocolor plot that exists over the first
    +# 11 frames of the animation.
    +AddPlot("Pseudocolor", "hardyglobal")
    +AddOperator("Slice")
    +AddOperator("Isosurface")
    +SetPlotFrameRange(0, 0, 10)
    +
    +# Set 3 slice keyframes.
    +SetTimeSliderState(0)
    +slice = SliceAttributes()
    +slice.originType = slice.Percent
    +slice.originPercent = 0
    +slice.project2d = 0
    +SetOperatorOptions(slice)
    +SetTimeSliderState(2)
    +SetOperatorOptions(slice)
    +SetTimeSliderState(10)
    +slice.originPercent = 100
    +SetOperatorOptions(slice)
    +
    +# Set 2 isosurface keyframes.
    +SetTimeSliderState(0)
    +iso = IsosurfaceAttributes()
    +SetOperatorOptions(iso)
    +SetTimeSliderState(5)
    +iso.contourNLevels = 5
    +SetOperatorOptions(iso)
    +
    +SetTimeSliderState(0)
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (0.225979, 0.625179, 0.747051)
    +v.focus = (0, 0, 0)
    +v.viewUp = (-0.965293, 0.246786, 0.0854703)
    +v.viewAngle = 30
    +v.parallelScale = 17.3205
    +v.nearPlane = -34.641
    +v.farPlane = 34.641
    +v.perspective = 1
    +SetView3D(v)
    +
    +# Check a bunch of frames.
    +Test("keyframe_63")
    +SetTimeSliderState(2)
    +Test("keyframe_64")
    +SetTimeSliderState(5)
    +Test("keyframe_65")
    +SetTimeSliderState(7)
    +Test("keyframe_66")
    +SetTimeSliderState(10)
    +Test("keyframe_67")
    +
    +# Delete the slice keyframe and move the isosurface keyframe.
    +DeleteOperatorKeyframe(0, 0, 2)
    +MoveOperatorKeyframe(0, 1, 5, 10)
    +
    +# Check a bunch of frames.
    +SetTimeSliderState(0)
    +Test("keyframe_68")
    +SetTimeSliderState(2)
    +Test("keyframe_69")
    +SetTimeSliderState(5)
    +Test("keyframe_70")
    +SetTimeSliderState(7)
    +Test("keyframe_71")
    +SetTimeSliderState(10)
    +Test("keyframe_72")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_lambda2.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_lambda2.html new file mode 100644 index 000000000..662f7ab4c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_lambda2.html @@ -0,0 +1,54 @@ + +Results for hybrid/lambda2.py + +

    Results of VisIt Regression Test - hybrid/lambda2

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    iso_lambda20.000.00
    contour_lambda20.000.00
    pseudo_lambda20.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_lambda2_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_lambda2_py.html new file mode 100644 index 000000000..48ef22cef --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_lambda2_py.html @@ -0,0 +1,53 @@ +hybrid/lambda2.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  lambda2.py
    +#
    +#  Tests:#     plots   - pseudocolor, contour
    +#  Defect ID:  1829
    +#
    +#  Programmer: Kevin Griffin
    +#  Date:       Tue Aug 5 15:01:27 PDT 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +ds = data_path("miranda_test_data/TG_vortex/plot.raw")
    +OpenDatabase(ds)
    +DefineScalarExpression("lambda2", "lambda2(gradient(velocity[0]), gradient(velocity[1]), gradient(velocity[2]))")
    +TimeSliderNextState()
    +TimeSliderNextState()
    +
    +#
    +# Test 1
    +#
    +AddPlot("Pseudocolor", "lambda2")
    +AddOperator("Isovolume")
    +IsovolumeAtts = IsovolumeAttributes()
    +IsovolumeAtts.lbound = -999.99
    +IsovolumeAtts.ubound = 0.0
    +IsovolumeAtts.variable = "default"
    +SetOperatorOptions(IsovolumeAtts)
    +
    +DrawPlots()
    +Test("iso_lambda2")
    +DeleteAllPlots()
    +
    +#
    +# Test 2
    +#
    +AddPlot("Contour", "lambda2")
    +DrawPlots()
    +Test("contour_lambda2")
    +DeleteAllPlots()
    +
    +#
    +# Test 3
    +#
    +AddPlot("Pseudocolor", "lambda2")
    +DrawPlots()
    +Test("pseudo_lambda2")
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_lineout.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_lineout.html new file mode 100644 index 000000000..d0e77923f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_lineout.html @@ -0,0 +1,247 @@ + +Results for hybrid/lineout.py + +

    Results of VisIt Regression Test - hybrid/lineout

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Lineout2d0.000.00
    CurvesFrom2d_withSampling0.000.00
    Lineout3d0.000.00
    CurvesFrom3d_withSampling0.000.00
    MultiVarLineout2d0.000.00
    MultiVarCurvesFrom2d_withSampling0.000.00
    LineoutSAMRAI0.000.00
    CurvesFromSAMRAI_withSampling0.000.00
    LineoutSpecifyWindow_010.000.00
    CurvesFromSpecifyWindow_01_withSampling0.000.00
    LineoutSpecifyWindow_020.000.00
    CurvesFromSpecifyWindow_02_withSampling0.000.00
    Lineout2d_output_040 modifications totalling 0 lines
    Lineout2d_output_080 modifications totalling 0 lines
    CurvesFrom2d_noSampling0.000.00
    Lineout2d_output_020 modifications totalling 0 lines
    Lineout2d_output_150 modifications totalling 0 lines
    CurvesFrom3d_noSampling0.000.00
    MultiVarCurvesFrom2d_noSampling0.000.00
    CurvesFromSAMRAI_noSampling0.000.00
    CurvesFromSpecifyWindow_01_noSampling0.000.00
    CurvesFromSpecifyWindow_02_noSampling0.000.00
    CurvesFromDynamic_010.000.00
    CurvesFromDynamic_020.000.00
    CurvesFromDynamic_030.000.00
    CurvesFromDynamic_040.000.00
    CurvesFromDynamic_050.000.00
    CurvesFromDynamic_060.000.00
    Dynamic2_010.000.00
    Dynamic2_020.000.00
    Dynamic2_030.000.00
    LineoutTecPlot_010.000.00
    CurvesFromTecPlot_010.000.00
    Operator-Created Variables
    lineout_op_vars_000.000.00
    lineout_op_vars_010.000.00
    lineout_op_vars_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_lineout_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_lineout_py.html new file mode 100644 index 000000000..fa3c77c0b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_lineout_py.html @@ -0,0 +1,661 @@ +hybrid/lineout.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  lineout.py #
    +#  Tests:      plots     - Curve
    +#              operators - Lineout
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Jan 3 14:22:41 PST 2003
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Mon Mar 17 09:54:14 PST 2003
    +#    Added TestMultiVarLineout2D.
    +#
    +#    Kathleen Bonnell, Tue Dec 23 09:29:29 PST 2003 
    +#    Added TestSAMRAI.
    +#
    +#    Kathleen Bonnell, Thu Jul 29 11:59:35 PDT 2004 
    +#    Added tests for no-sampling version, renamed old Curve* tests to
    +#    indicate they were generated with-sampling. 
    +#
    +#    Kathleen Bonnell, Thu Aug  5 10:44:22 PDT 2004 
    +#    Added calls to ResetPickLetter() and ResetLineoutColor() at the end of
    +#    each test, so that failure on any one test won't necessarily affect the
    +#    tests that follow. 
    +#
    +#    Kathleen Bonnell, Wed Nov 24 11:38:55 PST 2004 
    +#    Modified the way that sampling gets turned on due to changes in Lineout
    +#    Attributes and GlobalLineoutAttributes.  Use global version to turn
    +#    sampling on and off. 
    +#
    +#    Kathleen Bonnell, Fri Feb  4 11:17:56 PST 2005 
    +#    Added TestDynamic, to test new global atts: curveOption and colorOption.
    +#
    +#    Hank Childs, Wed Feb 16 07:34:07 PST 2005
    +#    Rename variables that have unsupported characters.
    +#
    +#    Kathleen Bonnell, Wed Mar 23 17:58:20 PST 2005 
    +#    Added TestDynamic2. 
    +#
    +#    Kathleen Bonnell, hu May 19 11:26:39 PDT 2005 
    +#    Added TestTecPlot. 
    +#
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +#    Kathleen Bonnell, Tue Jun 20 16:02:38 PDT 2006
    +#    Added tests for GetOutputArray to Lineout2D.
    +#
    +#    Kathleen Bonnell, Wed Jun 28 15:57:58 PDT 2006
    +#    Added tests to TestDynamicLineout, testing having curves from  different
    +#    time-varying databases (same originating window and different originating
    +#    window) in same curve window, and update the curves via the originating
    +#    plots time-slider (bug '7002).
    +#
    +#    Brad Whitlock, Wed Jan 14 16:12:10 PST 2009
    +#    I changed the call to GetOutputArray. It's no longer a built-in function
    +#    in the CLI.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Brad Whitlock, Tue Mar 26 12:06:51 PDT 2013
    +#    I added TestOperatorCreatedVariables.
    +#
    +#    Kathleen Biagas, Wed Feb 24 10:11:35 PST 2021
    +#    Remove setting of Pseudocolor colorTableName name to 'Default', as
    +#    that is now the default anyways.
    +#    Reset default continuous color table to 'hot' after a test that changes
    +#    it is finished, so that other tests aren't affected.
    +#
    +#    Justin Privitera, Wed May 18 11:25:46 PDT 2022
    +#    Changed *active* to *default* for everything related to color tables.
    +# 
    +# ----------------------------------------------------------------------------
    +
    +def GetOutputArray(plotID = -1, winID = -1):
    +    gInfo = GetGlobalAttributes()
    +    oldWin = gInfo.windows[gInfo.activeWindow]
    +    # Set the active window
    +    if winID != -1:
    +        SetActiveWindow(winID)
    +
    +    # Get the active plots
    +    active = []
    +    if plotID != -1:
    +        pL = GetPlotList()
    +        for i in range(pL.GetNumPlots()):
    +            if pL.GetPlots(i).activeFlag:
    +                active = active + [i]
    +        SetActivePlots(plotID)
    +
    +    pInfo = GetPlotInformation()
    +
    +    # Restore the old active plots
    +    if len(active) > 0:
    +        SetActivePlots(tuple(active))
    +
    +    # Restore the old active window
    +    if winID != -1:
    +        SetActiveWindow(oldWin)
    +
    +    return pInfo["Curve"]
    +
    +def InitAnnotation():
    +    a = AnnotationAttributes()
    +    TurnOffAllAnnotations(a)
    +    a.axes2D.visible = 1
    +    a.axes2D.xAxis.label.visible = 0
    +    a.axes2D.yAxis.label.visible = 0
    +    a.axes2D.xAxis.title.visible = 0
    +    a.axes2D.yAxis.title.visible = 0
    +    SetAnnotationAttributes(a)
    +
    +def TestLineout2D(time, suffix):
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    # Set the colortable to one that has white at the bottom values.
    +    SetDefaultContinuousColorTable("calewhite")
    +
    +    # Create the variable list.
    +    vars = ("default")
    +
    +    # Do some lineouts.
    +    p0 = (-4.01261, 1.91818)
    +    p1 = (-0.693968, 4.448759)
    +    p2 = (4.144392, 1.713066)
    +    nsteps = 15
    +    for i in range(nsteps):
    +        t = float(i) / float(nsteps - 1)
    +        p3x = t * p2[0] + (1. - t) * p1[0]
    +        p3y = t * p2[1] + (1. - t) * p1[1]
    +        SetActiveWindow(1)
    +        Lineout(p0, (p3x, p3y), vars)
    +
    +    if (time == 1):
    +        SetActiveWindow(1)
    +        Test("Lineout2d")
    +
    +    if (time == 2):
    +        SetActiveWindow(1)
    +        oa = GetOutputArray(4, 2)
    +        s = ''.join(['%f, '% x for x in oa])
    +        s = '(' + s + ')'
    +        TestText("Lineout2d_output_04", s)
    +        oa = GetOutputArray(8, 2)
    +        s = ''.join(['%f, '% x for x in oa])
    +        s = '(' + s + ')'
    +        TestText("Lineout2d_output_08", s)
    +
    +    SetActiveWindow(2)
    +
    +    InitAnnotation()
    +    Test("CurvesFrom2d" + suffix)
    +
    +    if (time == 2):
    +        oa = GetOutputArray(2)
    +        s = ''.join(['%f, '% x for x in oa])
    +        s = '(' + s + ')'
    +        TestText("Lineout2d_output_02", s)
    +        oa = GetOutputArray()
    +        s = ''.join(['%f, '% x for x in oa])
    +        s = '(' + s + ')'
    +        TestText("Lineout2d_output_15", s)
    +
    +    # Reset the CT to 'hot'
    +    SetDefaultContinuousColorTable("hot")
    +    # Delete the second window.
    +    DeleteWindow()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +    ResetLineoutColor()
    +
    +def TestLineout3D(time, suffix):
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +
    +    # Set the view
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.65577, 0.350079, 0.668888)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0.218553, 0.936082, -0.275655)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.perspective = 1
    +    SetView3D(v)
    +
    +    # Do some lineouts
    +    vars = ("default")
    +    p0 = (-10., -10., -10.)
    +    P  = ((-10., -10., 10.), (-10., 10., -10.), (-10., 10., 10.),\
    +(10., -10., -10.), (10., -10., 10.), (10., 10., -10.), (10., 10., 10.))
    +    for p in P:
    +        SetActiveWindow(1)
    +        Lineout(p0, p, vars)
    +
    +    if (time == 1):
    +        SetActiveWindow(1)
    +        pc = PseudocolorAttributes()
    +        pc.colorTableName = "xray"
    +        pc.SetOpacityType(pc.Constant)
    +        pc.opacity = 0.5
    +        SetPlotOptions(pc)
    +        Test("Lineout3d")
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("CurvesFrom3d" + suffix)
    +
    +    # Delete the second window.
    +    DeleteWindow()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +    ResetLineoutColor()
    +
    +def TestMultiVarLineout2D(time, suffix):
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    # Do some lineouts
    +    vars = ("p", "u", "v")
    +    Y = (2, 3, 4)
    +    x1 = -4.5
    +    x2 = 4.5
    +    for y in Y:
    +        SetActiveWindow(1)
    +        Lineout((x1, y), (x2, y), vars)
    +
    +    if (time == 1):
    +        SetActiveWindow(1)
    +        Test("MultiVarLineout2d")
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("MultiVarCurvesFrom2d" + suffix)
    +    DeleteWindow()
    +    DeleteAllPlots()
    +
    +    ResetPickLetter()
    +    ResetLineoutColor()
    +
    +def TestSAMRAI(time, suffix):
    +    OpenDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +    AddPlot("Pseudocolor", "Primitive Var _number_0")
    +    DrawPlots()
    +
    +    # Set the colortable to one that has white at the bottom values.
    +    SetDefaultContinuousColorTable("rainbow")
    +
    +    AddOperator("Slice", 1)
    +    slice = SliceAttributes()
    +    slice.originType = slice.Percent
    +    slice.originPercent = 18
    +    slice.axisType = slice.ZAxis
    +    slice.project2d = 1
    +    SetOperatorOptions(slice, 0, 1)
    +    DrawPlots()
    +    ResetView()
    +
    +    SetTimeSliderState(1)
    +
    +    #Do some lineouts
    +    p0 = (3, 3)
    +    p1 = (0, 20)
    +    p2 = (30, 0)
    +    nsteps = 15
    +    for i in range(nsteps):
    +        t = float(i) / float(nsteps - 1)
    +        p3x = t * p2[0] + (1. - t) * p1[0]
    +        p3y = t * p2[1] + (1. - t) * p1[1]
    +        SetActiveWindow(1)
    +        Lineout(p0, (p3x, p3y))
    +
    +    if (time == 1):
    +        SetActiveWindow(1)
    +        Test("LineoutSAMRAI")
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("CurvesFromSAMRAI" + suffix)
    +    DeleteWindow()
    +    DeleteAllPlots()
    +
    +    ResetPickLetter()
    +    ResetLineoutColor()
    +    SetDefaultContinuousColorTable("hot")
    +
    +def TestSpecifyLineoutWindow(time, suffix):
    +    #window 1
    +    OpenDatabase(data_path("pdb_test_data/dbA00.pdb"))
    +
    +    AddPlot("Pseudocolor", "mesh/ireg")
    +    DrawPlots()
    +    ResetView()
    +
    +    Lineout((0, 2.5), (5, 2.5))
    +
    +    if (time == 1):
    +        SetActiveWindow(1)
    +        InitAnnotation()
    +        Test("LineoutSpecifyWindow_01")
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("CurvesFromSpecifyWindow_01" + suffix)
    +
    +    SetActiveWindow(1)
    +    CloneWindow()
    +    #window 3
    +    SetTimeSliderState(4)
    +    DrawPlots()
    +
    +
    +    gla = GetGlobalLineoutAttributes()
    +    gla.createWindow = 0
    +    gla.windowId = 4
    +    SetGlobalLineoutAttributes(gla)
    +
    +    Lineout((0, 2.5), (5, 2.5))
    +
    +    if (time == 1):
    +        SetActiveWindow(3)
    +        InitAnnotation()
    +        Test("LineoutSpecifyWindow_02")
    +
    +    SetActiveWindow(4)
    +    InitAnnotation()
    +    Test("CurvesFromSpecifyWindow_02" + suffix)
    +
    +    DeleteWindow()
    +    SetActiveWindow(3)
    +    DeleteWindow()
    +    SetActiveWindow(2)
    +    DeleteWindow()
    +    DeleteAllPlots()
    +    gla.createWindow = 1
    +    gla.windowId = 2
    +    SetGlobalLineoutAttributes(gla)
    +
    +    ResetPickLetter()
    +    ResetLineoutColor()
    +
    +def TestDynamicLineout(time, suffix):
    +    if (time == 1):
    +        return
    +    #window 1
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    ResetView()
    +
    +    Lineout((0, 0.5, 2.5), (10, 0.5, 2.5))
    +
    +    gla = GetGlobalLineoutAttributes()
    +    gla.Dynamic = 1
    +    gla.curveOption = gla.UpdateCurve
    +    SetGlobalLineoutAttributes(gla)
    +
    +    SetActiveWindow(1)
    +    t = 0
    +    for i in range (10):
    +        t += 5
    +        SetTimeSliderState(t)
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    ResetView()
    +    Test("CurvesFromDynamic_01")
    +
    +    # go back to the beginning time state
    +    # and have new curves created for each new time 
    +    SetActiveWindow(1)
    +    t = 0
    +    SetTimeSliderState(t)
    +
    +    gla.curveOption = gla.CreateCurve
    +    SetGlobalLineoutAttributes(gla)
    +    for i in range (7):
    +        t += 5
    +        SetTimeSliderState(t)
    +
    +    # now have each new curve have its own color.
    +    gla.colorOption = gla.CreateColor
    +    SetGlobalLineoutAttributes(gla)
    +    for i in range (7):
    +        t += 5
    +        SetTimeSliderState(t)
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    ResetView()
    +    Test("CurvesFromDynamic_02")
    +
    +    ResetPickLetter()
    +    ResetLineoutColor()
    +    # delete window 2
    +    DeleteWindow()
    +    # clear all plots from window 1
    +    DeleteAllPlots()
    +
    +    dbs = (data_path("pdb_test_data/dbA00.pdb"),
    +           data_path("pdb_test_data/dbB00.pdb"),
    +           data_path("pdb_test_data/dbC00.pdb"))
    +    OpenDatabase(dbs[0])
    +    AddPlot("Pseudocolor", "mesh/ireg")
    +    OpenDatabase(dbs[1])
    +    AddPlot("Pseudocolor", "mesh/ireg")
    +    DrawPlots()
    +
    +    AddWindow()
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    OpenDatabase(dbs[2])
    +    AddPlot("Pseudocolor", "mesh/ireg")
    +    DrawPlots()
    +
    +    gla.Dynamic = 1
    +    gla.curveOption = gla.UpdateCurve
    +    SetGlobalLineoutAttributes(gla)
    +
    +    #Lineout for dbC00.pdb in window 2
    +    Lineout((5.0, 7.5, 0.), (10, 7.5, 0.))
    +
    +    SetActiveWindow(1)
    +    SetActivePlots(1)
    +
    +    #Lineout for dbB00.pdb in window 1
    +    Lineout((0, 8, 0), (5, 8, 0))
    +
    +    SetActivePlots(0)
    +    #Lineout for dbA00.pdb in window 1
    +    Lineout((0, 3, 0), (5, 3, 0))
    +
    +
    +    SetActiveWindow(3)
    +    InitAnnotation()
    +    Test("CurvesFromDynamic_03")
    +
    +    SetActiveWindow(1)
    +    SetActiveTimeSlider(dbs[1])
    +    SetTimeSliderState(15)
    +
    +    SetActiveWindow(3)
    +    Test("CurvesFromDynamic_04")
    +
    +    SetActiveWindow(1)
    +    SetActiveTimeSlider(dbs[0])
    +    SetTimeSliderState(3)
    +
    +
    +    SetActiveWindow(3)
    +    Test("CurvesFromDynamic_05")
    +
    +    SetActiveWindow(2)
    +    SetTimeSliderState(29)
    +
    +    SetActiveWindow(3)
    +    Test("CurvesFromDynamic_06")
    +
    +    ResetLineoutColor()
    +    ResetPickLetter()
    +    # delete window 3
    +    DeleteWindow()
    +    # delete window 2
    +    SetActiveWindow(2)
    +    DeleteWindow()
    +    # clear all plots from window 1
    +    DeleteAllPlots()
    +
    +def TestDynamic2():
    +    # VisIt00006006 -- ensure  that 'ClearRefLines' will 'disconnect' the lineout 
    +    # from its originating plot, and won't update when orig plot changes time.
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    ResetView()
    +    SetTimeSliderState(0)
    +    Lineout((0, 0.5, 2.5), (10, 0.5, 2.5))
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("Dynamic2_01")
    +
    +    SetActiveWindow(1)
    +    gla = GetGlobalLineoutAttributes()
    +    gla.Dynamic = 1
    +    gla.curveOption = gla.UpdateCurve
    +    SetGlobalLineoutAttributes(gla)
    +
    +    SetTimeSliderState(27)
    +
    +    SetActiveWindow(2)
    +    Test("Dynamic2_02")
    +
    +    SetActiveWindow(1)
    +    gla.Dynamic = 0
    +    SetGlobalLineoutAttributes(gla)
    +
    +    SetTimeSliderState(52)
    +
    +    SetActiveWindow(2)
    +    Test("Dynamic2_03")
    +
    +    ResetPickLetter()
    +    ResetLineoutColor()
    +    DeleteWindow()
    +    DeleteAllPlots()
    +
    +
    +def TestTecPlot():
    +    # VisIt00006243 -- curve generated from Lineout looks reversed in X
    +    OpenDatabase(data_path("tecplot_test_data/T3L3CLS17u.plt"))
    +
    +    AddPlot("Mesh", "mesh")
    +    AddPlot("Pseudocolor", "k")
    +    DrawPlots()
    +    ResetView()
    +
    +    v = GetView2D()
    +    v.windowCoords = (0.340063, 0.340868, 0.00512584, 0.00572613 )
    +    SetView2D(v)
    +
    +    Lineout((0.340505, 0.00565604, 0), (0.340291, 0.00514717, 0))
    +
    +    InitAnnotation()
    +    Test("LineoutTecPlot_01")
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("CurvesFromTecPlot_01")
    +
    +    ResetPickLetter()
    +    ResetLineoutColor()
    +    # delete window 2
    +    DeleteWindow()
    +    # remove plots from window 1
    +    DeleteAllPlots()
    +
    +def TestOperatorCreatedVariables():
    +    def SetCurveAtts():
    +        c = CurveAttributes(1)
    +        c.lineWidth = 2
    +        c.curveColor = (255,0,0,255)
    +        c.curveColorSource = c.Custom
    +        c.showLabels = 0
    +        SetPlotOptions(c)
    +
    +    TestSection("Operator-Created Variables")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    # Do lineout on a data binning variable.
    +    AddPlot("Pseudocolor", "operators/DataBinning/2D/Mesh", 1, 1)
    +    DataBinningAtts = DataBinningAttributes()
    +    DataBinningAtts.numDimensions = DataBinningAtts.Two  # One, Two, Three
    +    DataBinningAtts.dim1BinBasedOn = DataBinningAtts.X  # X, Y, Z, Variable
    +    DataBinningAtts.dim1Var = "default"
    +    DataBinningAtts.dim1SpecifyRange = 0
    +    DataBinningAtts.dim1MinRange = 0
    +    DataBinningAtts.dim1MaxRange = 1
    +    DataBinningAtts.dim1NumBins = 50
    +    DataBinningAtts.dim2BinBasedOn = DataBinningAtts.Y  # X, Y, Z, Variable
    +    DataBinningAtts.dim2Var = "default"
    +    DataBinningAtts.dim2SpecifyRange = 0
    +    DataBinningAtts.dim2MinRange = 0
    +    DataBinningAtts.dim2MaxRange = 1
    +    DataBinningAtts.dim2NumBins = 50
    +    DataBinningAtts.dim3BinBasedOn = DataBinningAtts.Variable  # X, Y, Z, Variable
    +    DataBinningAtts.dim3Var = "default"
    +    DataBinningAtts.dim3SpecifyRange = 0
    +    DataBinningAtts.dim3MinRange = 0
    +    DataBinningAtts.dim3MaxRange = 1
    +    DataBinningAtts.dim3NumBins = 50
    +    DataBinningAtts.outOfBoundsBehavior = DataBinningAtts.Clamp  # Clamp, Discard
    +    DataBinningAtts.reductionOperator = DataBinningAtts.Maximum  # Average, Minimum, Maximum, StandardDeviation, Variance, Sum, Count, RMS, PDF
    +    DataBinningAtts.varForReduction = "hardyglobal"
    +    DataBinningAtts.emptyVal = 0
    +    DataBinningAtts.outputType = DataBinningAtts.OutputOnBins  # OutputOnBins, OutputOnInputMesh
    +    DataBinningAtts.removeEmptyValFromCurve = 1
    +    SetOperatorOptions(DataBinningAtts, 1)
    +    DrawPlots()
    +    Lineout((9, 9), (4.5, -9))
    +    SetActiveWindow(1)
    +    ResetView()
    +    Test("lineout_op_vars_00")
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    ResetView()
    +    SetCurveAtts()
    +    Test("lineout_op_vars_01")
    +
    +    # delete window 2
    +    DeleteWindow()
    +    # remove plots from window 1
    +    DeleteAllPlots()
    +
    +    # Do lineout on a data binning variable that had other operators
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    AddPlot("Pseudocolor", "operators/DataBinning/2D/Mesh", 1, 1)
    +    SetOperatorOptions(DataBinningAtts, 1)
    +    AddOperator("Transform")
    +    AddOperator("Project")
    +    DrawPlots()
    +    Lineout((9, 9), (4.5, -9))
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    SetCurveAtts()
    +    Test("lineout_op_vars_02")
    +
    +    # delete window 2
    +    DeleteWindow()
    +    # remove plots from window 1
    +    DeleteAllPlots()
    +
    +
    +def DoTests(t,s):
    +    TestLineout2D(t,s)
    +    TestLineout3D(t,s)
    +    TestMultiVarLineout2D(t,s)
    +    TestSAMRAI(t,s)
    +    TestSpecifyLineoutWindow(t,s)
    +    TestDynamicLineout(t,s)
    +
    +def LineoutMain():
    +    InitAnnotation()
    +    la = GetGlobalLineoutAttributes()
    +    la.samplingOn = 1
    +    SetGlobalLineoutAttributes(la)
    +
    +    DoTests(1, "_withSampling")
    +
    +    la.samplingOn = 0
    +    SetGlobalLineoutAttributes(la)
    +
    +    DoTests(2, "_noSampling")
    +
    +    TestDynamic2()
    +    TestTecPlot()
    +    TestOperatorCreatedVariables()
    +
    +# Call the main function
    +LineoutMain()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_locktime.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_locktime.html new file mode 100644 index 000000000..53b2a24b5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_locktime.html @@ -0,0 +1,124 @@ + +Results for hybrid/locktime.py + +

    Results of VisIt Regression Test - hybrid/locktime

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    locktime_000.000.00
    locktime_010 modifications totalling 0 lines
    locktime_020.000.00
    locktime_030 modifications totalling 0 lines
    locktime_040 modifications totalling 0 lines
    locktime_050.000.00
    locktime_060 modifications totalling 0 lines
    locktime_070.000.00
    locktime_080 modifications totalling 0 lines
    locktime_090.000.00
    locktime_100 modifications totalling 0 lines
    locktime_110.000.00
    locktime_120 modifications totalling 0 lines
    locktime_130 modifications totalling 0 lines
    locktime_140.000.00
    locktime_150 modifications totalling 0 lines
    locktime_160.000.00
    locktime_170 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_locktime_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_locktime_py.html new file mode 100644 index 000000000..873fa0eb8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_locktime_py.html @@ -0,0 +1,125 @@ +hybrid/locktime.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial
    +#  CLASSES: nightly
    +#
    +#  Test Case:  multiwindowcorrelation.py 
    +#
    +#  Tests:      Tests database correlations when there are multiple windows.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Mon Mar 22 15:59:24 PST 2004
    +#
    +#  Modifications:
    +#    Brad Whitlock, Fri Apr 1 15:01:13 PST 2005
    +#    Added a function to check the database correlation list.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def GetTruncatedWindowInformationString():
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 5 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    for i in range(5):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    return s
    +
    +def TestLength(testname):
    +    tsLength = TimeSliderGetNStates()
    +    testString = "%s has %d states\n" % (GetActiveTimeSlider(), tsLength)
    +    testString = testString + GetTruncatedWindowInformationString()
    +    TestText(testname, testString)
    +
    +#
    +# Tests the time slider length and the correlation list.
    +#
    +def TestLengthAndCorrelationList(testname):
    +    tsLength = TimeSliderGetNStates()
    +    s = "%s has %d states\n" % (GetActiveTimeSlider(), tsLength)
    +    s = s + GetTruncatedWindowInformationString() + "\n\n"
    +
    +    names = GetDatabaseCorrelationNames()
    +    for name in names:
    +        c = GetDatabaseCorrelation(name)
    +        s = s + str(c) + "\n"
    +    TestText(testname, s)
    +
    +# Create a plot of DB A.
    +OpenDatabase(data_path("pdb_test_data/dbA00.pdb"))
    +
    +AddPlot("FilledBoundary", "material(mesh)")
    +DrawPlots()
    +Test("locktime_00")
    +TestLength("locktime_01")
    +
    +# Create a second window and create plot of DB B.
    +CloneWindow()
    +DeleteAllPlots()
    +OpenDatabase(data_path("pdb_test_data/dbB00.pdb"))
    +
    +AddPlot("FilledBoundary", "material(mesh)")
    +InvertBackgroundColor()
    +DrawPlots()
    +Test("locktime_02")
    +TestLength("locktime_03")
    +
    +#
    +# Set the database correlation options to control how we create automatic
    +# correlations. When we lock the windows together, VisIt will create a
    +# correlation for the databases in both windows because the windows do not
    +# have a common database. I'm setting the correlation options here because 
    +# I want a StretchedIndexCorrelation correlation to be created.
    +#
    +StretchedIndexCorrelation = 1
    +SetDatabaseCorrelationOptions(StretchedIndexCorrelation, 0)
    +
    +#
    +# Lock time for window 2 and window 1. This will create a correlation between
    +# the databases in both windows.
    +#
    +ToggleLockTime()
    +SetActiveWindow(1)
    +ToggleLockTime()
    +TestLengthAndCorrelationList("locktime_04")
    +
    +SetTimeSliderState(17)
    +Test("locktime_05")
    +TestLength("locktime_06")
    +
    +SetActiveWindow(2)
    +Test("locktime_07")
    +TestLength("locktime_08")
    +
    +SetActiveWindow(1)
    +SetTimeSliderState(7)
    +Test("locktime_09")
    +TestLength("locktime_10")
    +
    +SetActiveWindow(2)
    +Test("locktime_11")
    +TestLength("locktime_12")
    +
    +#
    +# Now let's delete the correlation that was created. It will be have the same
    +# name as the active time slider.
    +#
    +DeleteDatabaseCorrelation(GetActiveTimeSlider())
    +TestLengthAndCorrelationList("locktime_13")
    +
    +# Now try moving the time slider state for DB B, since that's the active time
    +# slider for window 2, which is the active window right now.
    +SetTimeSliderState(15)
    +Test("locktime_14")
    +TestLength("locktime_15")
    +
    +# Make sure that window 1 did not change.
    +SetActiveWindow(1)
    +Test("locktime_16")
    +TestLength("locktime_17")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_locus.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_locus.html new file mode 100644 index 000000000..5c0c9e913 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_locus.html @@ -0,0 +1,42 @@ + +Results for hybrid/locus.py + +

    Results of VisIt Regression Test - hybrid/locus

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    locus_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_locus_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_locus_py.html new file mode 100644 index 000000000..f004d6175 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_locus_py.html @@ -0,0 +1,148 @@ +hybrid/locus.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  locus.py
    +#
    +#  Purpose:
    +#      Identifies the locus of points of maximum value from inside a sphere.
    +#      Tests repeated lineout capabilities, as well as the VisIt writer.
    +#
    +#  Programmer: Hank Childs
    +#  Date:       April 4, 2005
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Jul 14 10:28:41 PDT 2005
    +#    Save tmp.ultra to 'current' directory.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Jeremy Meredith, Wed Jan 20 12:50:34 EST 2010
    +#    Added src/lib to python path so we can find the visit writer module.
    +#
    +#    Mark C. Miller, Mon Apr 12 15:40:16 PDT 2010
    +#    Gracefully skip if we're in scalable mode.
    +#
    +#    Mark C. Miller, Tue Jun 29 16:51:46 PDT 2010
    +#    Changed exit code if we're in scalable mode from 116 (skip) to
    +#    121 (not applicable)
    +#
    +#    Kathleen Biagas, Tue Jul 15 11:10:27 MST 2014 
    +#    Don't need VISITARCHHOME on Windows, but do need 'outputToCurrentDirectory'
    +#
    +# ----------------------------------------------------------------------------
    +
    +import sys
    +import os
    +import platform
    +from os.path import join as pjoin
    +if not platform.system() == "Windows":
    +    sys.path.append(pjoin(os.environ['VISITARCHHOME'],"lib"))
    +
    +import visit_writer
    +
    +
    +# We can't run this test while in SR mode
    +# So, exit and indicate the test was skipped.
    +# 'scalable' is defined in Testing.py
    +if TestEnv.params["scalable"] != 0:
    +    Exit(121)
    +
    +# BEGIN USER MODIFIABLE SECTION
    +
    +database = silo_data_path("globe.silo")
    +origin = (0,0,0)
    +radius = 10
    +variable = "recenter(t) + 10*u"
    +isExpression = 1
    +startTheta = 0
    +thetaStep = 36
    +nThetaSteps = 11
    +startPhi = 0
    +phiStep = 18
    +nPhiSteps = 11
    +
    +# END USER MODIFIABLE SECTION
    +
    +if (isExpression):
    +   DefineScalarExpression("locus", variable)
    +OpenDatabase(database)
    +AddPlot("Pseudocolor", "locus")
    +DrawPlots()
    +
    +import math
    +
    +sw = GetSaveWindowAttributes()
    +sw.format = sw.ULTRA
    +sw.family = 0
    +sw.fileName = "tmp"
    +sw.outputToCurrentDirectory = 1
    +SetSaveWindowAttributes(sw)
    +
    +import locale
    +def GetNum(line):
    +   a = line.split(' ')
    +   pos = locale.atof(a[0])
    +   max = locale.atof(a[1])
    +   return [pos, max]
    +
    +
    +# Opens up the file "tmp.ultra" and gets the maximum position.
    +def GetMaximumPosition():
    +   uf = open("tmp.ultra", "r")
    +   line = uf.readline()  # Remove header
    +   line = uf.readline()
    +   num = GetNum(line)
    +   pos = num[0]
    +   max = num[1]
    +   while(1):
    +      line = uf.readline()
    +      if (line == ""):
    +          break
    +      num = GetNum(line)
    +      if (num[1] > max):
    +         pos = num[0]
    +         max = num[1]
    +   return [pos, max]
    +
    +
    +vals = []
    +pos = []
    +points = []
    +for j in range(nPhiSteps):
    +    phi = startPhi + j*phiStep
    +    phi_rads = phi*2.*math.pi / 360.
    +    for i in range(nThetaSteps):
    +        theta = startTheta + i*thetaStep
    +        theta_rads = theta*2.*math.pi / 360.
    +        PX = radius * math.cos(theta_rads) * math.sin(phi_rads)
    +        PY = radius * math.sin(theta_rads) * math.sin(phi_rads)
    +        PZ = radius * math.cos(phi_rads)
    +        PX2 = PX + origin[0]
    +        PY2 = PY + origin[1]
    +        PZ2 = PZ + origin[2]
    +        Lineout(origin, (PX2, PY2, PZ2))
    +        SetActiveWindow(2)
    +        SaveWindow()
    +        rv = GetMaximumPosition()
    +        pos = pos + [rv[0]]
    +        vals = vals + [rv[1]]
    +        prop = rv[0] / radius
    +        FX = origin[0] + (PX)*prop
    +        FY = origin[1] + (PY)*prop
    +        FZ = origin[2] + (PZ)*prop
    +        points = points + [FX, FY, FZ]
    +        DeleteAllPlots()
    +        SetActiveWindow(1)
    +
    +dims = (nThetaSteps, nPhiSteps, 1)
    +
    +visit_writer.WriteCurvilinearMesh("locus", 0, dims, points, [["max", 1, 1, vals]])
    +DeleteAllPlots()
    +OpenDatabase("locus.vtk")
    +AddPlot("Pseudocolor", "max")
    +DrawPlots()
    +Test("locus_01")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_math_expr.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_math_expr.html new file mode 100644 index 000000000..c8428d413 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_math_expr.html @@ -0,0 +1,60 @@ + +Results for hybrid/math_expr.py + +

    Results of VisIt Regression Test - hybrid/math_expr

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    math_expr_010.000.00
    math_expr_020.000.00
    math_expr_030.000.00
    math_expr_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_math_expr_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_math_expr_py.html new file mode 100644 index 000000000..f8d197e68 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_math_expr_py.html @@ -0,0 +1,44 @@ +hybrid/math_expr.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  math_expr.py
    +#
    +#  Tests:      mesh      - 3D unstructured, multi- domain
    +#              plots     - Pseudocolor
    +#
    +#  Defect ID:  '6115
    +#
    +#  Programmer: Hank Childs
    +#  Date:       June 30, 2005
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +
    +DefineScalarExpression("mod", "mod(t, 10)")
    +AddPlot("Pseudocolor", "mod")
    +DrawPlots()
    +Test("math_expr_01")
    +
    +DefineScalarExpression("round", "round(u/10)")
    +ChangeActivePlotsVar("round")
    +Test("math_expr_02")
    +
    +DefineScalarExpression("ceil", "ceil(u/10)")
    +ChangeActivePlotsVar("ceil")
    +Test("math_expr_03")
    +
    +DefineScalarExpression("floor", "floor(u/10)")
    +ChangeActivePlotsVar("floor")
    +Test("math_expr_04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_matsel.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_matsel.html new file mode 100644 index 000000000..484fadbc1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_matsel.html @@ -0,0 +1,54 @@ + +Results for hybrid/matsel.py + +

    Results of VisIt Regression Test - hybrid/matsel

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    hybrid_matsel_010.000.00
    hybrid_matsel_020.000.00
    hybrid_matsel_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_matsel_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_matsel_py.html new file mode 100644 index 000000000..2f514d6c1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_matsel_py.html @@ -0,0 +1,96 @@ +hybrid/matsel.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  matsel.py
    +#
    +#  Tests:      plots     - contour,pseudocolor
    +#
    +#  Defect ID:  '4353
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       June 24, 2004
    +#
    +#    Jeremy Meredith, Tue Jul 13 18:03:11 PDT 2004
    +#    Added curvilinear case.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +#
    +# Do a test of 2D nodal interpolation on material-selected rectilinear meshes
    +#
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +AddPlot("Pseudocolor", "u");
    +
    +sil = SILRestriction()
    +sets = sil.SetsInCategory("mat1")
    +sil.TurnOnAll()
    +sil.TurnOffSet(sets[4])
    +SetPlotSILRestriction(sil)
    +DrawPlots()
    +
    +Test("hybrid_matsel_01")
    +
    +DeleteAllPlots();
    +
    +#
    +# Do a test of 3D nodal interpolation on material-selected rectilinear meshes
    +# Ths is easiest to see when doing a contour plot of a matsel variable
    +#
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +AddPlot("Contour", "u");
    +
    +sil = SILRestriction()
    +sets = sil.SetsInCategory("mat1")
    +sil.TurnOnAll()
    +sil.TurnOffSet(sets[4])
    +SetPlotSILRestriction(sil)
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.624401, -0.368813, -0.688549)
    +focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.768963, 0.135421, 0.624786)
    +SetView3D(v)
    +
    +Test("hybrid_matsel_02")
    +
    +DeleteAllPlots();
    +
    +#
    +# Do a test of 2D nodal interpolation on material-selected curvilinear meshes
    +#
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +
    +AddPlot("Pseudocolor", "u");
    +
    +sil = SILRestriction()
    +sets = sil.SetsInCategory("mat1")
    +sil.TurnOnAll()
    +sil.TurnOffSet(sets[0])
    +SetPlotSILRestriction(sil)
    +DrawPlots()
    +v = GetView2D()
    +v.windowCoords = (0.1, 2.0, 2.8, 3.8)
    +SetView2D(v)
    +p = PseudocolorAttributes()
    +p.min = 0
    +p.max = .5
    +p.minFlag = 1
    +p.maxFlag = 1
    +SetPlotOptions(p)
    +
    +Test("hybrid_matsel_03")
    +
    +DeleteAllPlots();
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_matvf.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_matvf.html new file mode 100644 index 000000000..4f8d1047f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_matvf.html @@ -0,0 +1,120 @@ + +Results for hybrid/matvf.py + +

    Results of VisIt Regression Test - hybrid/matvf

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    matvf_010.000.00
    matvf_020.000.00
    matvf_030.000.00
    matvf_040.000.00
    matvf_050.000.00
    matvf_060.000.00
    matvf_070.000.00
    matvf_080.000.00
    matvf_090.000.00
    matvf_100.000.00
    matvf_post_ghost_10.000.00
    matvf_post_ghost_20.000.00
    matvf_post_ghost_30.000.00
    matvf_post_ghost_40.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_matvf_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_matvf_py.html new file mode 100644 index 000000000..c0affda4a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_matvf_py.html @@ -0,0 +1,249 @@ +hybrid/matvf.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  expressions.py
    +#
    +#  Tests:      mesh      - 3D unstructured, multi- domain
    +#                          3D rectilinear, single domain
    +#              plots     - Pseudocolor
    +#              operators - Threshold
    +#              selection - Material
    +#
    +#  Defect ID:  '2415 '3939 '5521
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 13, 2003
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Mon Oct 20 16:32:46 PDT 2003
    +#    Added bigsil portion to test '3939 (matvf with databases that create
    +#    ghost zones).
    +#
    +#    Hank Childs, Mon Jan  3 09:28:39 PST 2005
    +#    Added tests for materror.
    +#
    +#    Cyrus Harrison, Tue Feb 12 15:16:36 PST 2008
    +#    Added explicit tests for matvf w/ ghost zones. 
    +#
    +#    Cyrus Harrison, Wed Apr  9 11:17:22 PDT 2008
    +#    Added new test for post ghost info.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +
    +DefineScalarExpression("m1", 'matvf(mat1, ["1", "3"])')
    +AddPlot("Pseudocolor", "m1")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.17, 0.74, 0.64)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.31, 0.65, -0.68)
    +v.parallelScale = 0.866
    +v.nearPlane = -1.73
    +v.farPlane = 1.73
    +SetView3D(v)
    +
    +Test("matvf_01")
    +
    +t = ThresholdAttributes()
    +t.lowerBounds = (0.01)
    +t.upperBounds = (0.99)
    +SetDefaultOperatorOptions(t)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("matvf_02")
    +
    +sil = SILRestriction()
    +matsets = sil.SetsInCategory("mat1")
    +sil.TurnOffAll()
    +sil.TurnOnSet(matsets[1])
    +SetPlotSILRestriction(sil)
    +
    +Test("matvf_03")
    +
    +DeleteAllPlots()
    +
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor", "m1")
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (-0.82, 0.44, 0.37)
    +v.focus = (0, 3.3, 10)
    +v.viewUp = (0.13, 0.76, -0.62)
    +v.parallelScale = 7.32
    +v.nearPlane = -14.65
    +v.farPlane = 14.65
    +SetView3D(v)
    +
    +Test("matvf_04")
    +
    +sil = SILRestriction()
    +matsets = sil.SetsInCategory("mat1")
    +sil.TurnOffAll()
    +sil.TurnOnSet(matsets[1])
    +SetPlotSILRestriction(sil)
    +
    +Test("matvf_05")
    +
    +DeleteAllPlots()
    +
    +DefineScalarExpression("mbs", 'matvf(mat, 1)')
    +OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +AddPlot("Pseudocolor", "mbs")
    +t = ThresholdAttributes()
    +t.lowerBounds = (0.5)
    +t.upperBounds = (1.1)
    +SetDefaultOperatorOptions(t)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (-0.59, 0.33, 0.74)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (0.18, 0.94, -0.28)
    +v.parallelScale = 0.866
    +v.nearPlane = -1.73
    +v.farPlane = 1.73
    +SetView3D(v)
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.17, 0.74, 0.64)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.31, 0.65, -0.68)
    +v.parallelScale = 0.866
    +v.nearPlane = -1.73
    +v.farPlane = 1.73
    +SetView3D(v)
    +
    +Test("matvf_06")
    +
    +#NOTE: the fix for '3939 included disabling the communication of ghost zones. 
    +# As a result, the matvf_07 picture will contain internal surfaces that should
    +# not be there.  If this ever gets fixed, then the baseline picture will need
    +# to be reset.
    +v.nearPlane = -0.1
    +SetView3D(v)
    +
    +Test("matvf_07")
    +
    +# Now test the materror expression.
    +DeleteAllPlots()
    +DefineScalarExpression("materror1", 'materror(mat1, 1)')
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Pseudocolor", "materror1")
    +sil = SILRestriction()
    +sil.TurnOnAll()
    +SetPlotSILRestriction(sil)
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.17, 0.74, 0.64)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.31, 0.65, -0.68)
    +v.parallelScale = 0.866
    +v.nearPlane = -1.73
    +v.farPlane = 1.73
    +SetView3D(v)
    +
    +Test("matvf_08")
    +
    +DefineScalarExpression("abs_materror1", 'abs(materror1)')
    +t = ThresholdAttributes()
    +t.lowerBounds = (0.01)
    +t.upperBounds = (1.01)
    +t.listedVarNames = ("abs_materror1")
    +SetDefaultOperatorOptions(t)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("matvf_09")
    +
    +# Now test that it can calculate "volume fractions" using areas.
    +ReplaceDatabase(silo_data_path("rect2d.silo"))
    +
    +RemoveLastOperator()
    +Test("matvf_10")
    +
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("rect2d.silo"))
    +
    +OpenDatabase(silo_data_path("thinplane.silo"))
    +
    +
    +# tests for matvf w/ ghost zones
    +
    +# test standard
    +DefineScalarExpression("mvf_2", "matvf(mat,2)")
    +AddPlot("Pseudocolor", "mvf_2")
    +atts = PseudocolorAttributes(1)
    +atts.minFlag = 1
    +atts.min = 0.0
    +atts.maxFlag = 1
    +atts.max = 1.0
    +atts.centering = atts.Natural
    +SetPlotOptions(atts)
    +DrawPlots()
    +Test("matvf_post_ghost_1")
    +
    +# test with ghosts
    +atts = PseudocolorAttributes(1)
    +atts.minFlag = 1
    +atts.min = 0.0
    +atts.maxFlag = 1
    +atts.max = 1.0
    +atts.centering = atts.Nodal
    +SetPlotOptions(atts)
    +DrawPlots()
    +Test("matvf_post_ghost_2")
    +
    +# switch back to ensure w/ ghost case caching does not alter w/o ghosts
    +atts = PseudocolorAttributes(1)
    +atts.minFlag = 1
    +atts.min = 0.0
    +atts.maxFlag = 1
    +atts.max = 1.0
    +atts.centering = atts.Zonal
    +SetPlotOptions(atts)
    +DrawPlots()
    +Test("matvf_post_ghost_3")
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("thinplane.silo"))
    +
    +OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +
    +# test for gradient w/ matvf, to check if post ghosts were correctly 
    +# requested. 
    +
    +DefineScalarExpression("gate", "agrad(dist)[0] * matvf(mat,1)")
    +AddPlot("Pseudocolor", "gate")
    +DrawPlots()
    +Test("matvf_post_ghost_4")
    +DeleteAllPlots()
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_merge_tree.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_merge_tree.html new file mode 100644 index 000000000..0a701cc75 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_merge_tree.html @@ -0,0 +1,108 @@ + +Results for hybrid/merge_tree.py + +

    Results of VisIt Regression Test - hybrid/merge_tree

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    rect2d_mtree0.000.00
    rect2d_stree0.000.00
    rect2d_localt_mt0.000.00
    rect2d_localt_st0.000.00
    noise2d_mtree0.000.00
    noise2d_stree0.000.00
    noise2d_localt_mt0.000.00
    noise2d_localt_st0.000.00
    noise3d_mtree0.000.00
    noise3d_stree0.000.00
    noise3d_localt_mt0.000.00
    noise3d_localt_st0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_merge_tree_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_merge_tree_py.html new file mode 100644 index 000000000..eb40b6a0c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_merge_tree_py.html @@ -0,0 +1,64 @@ +hybrid/merge_tree.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  merge_tree.py
    +#
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Friday October 28, 2016
    +#
    +#  Modifiations:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +test_dbs = { "rect2d" : {"var":  "d",
    +                         "path": silo_data_path("rect2d.silo")} ,
    +             "noise2d" : {"var": "shepardglobal",
    +                          "path" :silo_data_path("noise2d.silo")} ,
    +
    +             "noise3d" : {"var": "shepardglobal",
    +                          "path": silo_data_path("noise.silo")}
    +           }
    +
    +for db_name,db_info in list(test_dbs.items()):
    +    test_db_file = db_info["path"]
    +    OpenDatabase(test_db_file)
    +
    +    # test merge tree, split tree and local threshold exprs
    +
    +    DefineScalarExpression("mtree", "merge_tree(%s)" % db_info["var"])
    +    AddPlot("Pseudocolor", "mtree")
    +    DrawPlots()
    +
    +    Test(db_name + "_mtree")
    +    DeleteAllPlots()
    +
    +    DefineScalarExpression("stree", "split_tree(%s)" % db_info["var"])
    +    AddPlot("Pseudocolor", "stree")
    +    DrawPlots()
    +
    +    Test(db_name + "_stree")
    +    DeleteAllPlots()
    +
    +    DefineScalarExpression("localt_mt", "local_threshold(%s,mtree)" % db_info["var"])
    +
    +    AddPlot("Pseudocolor", "localt_mt")
    +    DrawPlots()
    +
    +    Test(db_name + "_localt_mt")
    +    DeleteAllPlots()
    +
    +    DefineScalarExpression("localt_st", "local_threshold(%s,stree)" % db_info["var"])
    +
    +    AddPlot("Pseudocolor", "localt_st")
    +    DrawPlots()
    +
    +    Test(db_name + "_localt_st")
    +    DeleteAllPlots()
    +
    +
    +    CloseDatabase(test_db_file)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_mesh_quality.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_mesh_quality.html new file mode 100644 index 000000000..d958ae9c9 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_mesh_quality.html @@ -0,0 +1,93 @@ + +Results for hybrid/mesh_quality.py + +

    Results of VisIt Regression Test - hybrid/mesh_quality

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    mesh_quality_010.000.00
    mesh_quality_020.000.00
    mesh_quality_030.000.00
    mesh_quality_040.000.00
    mesh_quality_050.000.00
    mesh_quality_060.000.00
    mesh_quality_070.000.00
    Side Volume
    min_side_volume_000.000.00
    max_side_volume_000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_mesh_quality_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_mesh_quality_py.html new file mode 100644 index 000000000..588276057 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_mesh_quality_py.html @@ -0,0 +1,160 @@ +hybrid/mesh_quality.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  mesh_quality.py
    +#
    +#  Tests:      mesh      - 3D unstructured
    +#              plots     - Pseudocolor
    +#
    +#  Programmer: Hank Childs
    +#  Date:       November 25, 2003
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Fri Jun 25 07:58:32 PDT 2004
    +#    The name of the mesh quality variables for ucd3d changed, since there are
    +#    now multiple meshes in that file.  Use the new names.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Matthew Wheeler, Thu Feb 06 12:00:00 GMT 2014
    +#    Added two new AWE mesh quality tests
    +#
    +#    Alister Maguire, Wed Apr 21 13:26:01 PDT 2021
    +#    Added TestSideVolume.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def TestSideVolume():
    +    #
    +    # This ensures that a bug fix is still working well.
    +    #
    +    TestSection("Side Volume")
    +
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +    AddPlot("Pseudocolor", "mesh_quality/min_side_volume")
    +    DrawPlots()
    +
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (0.3, 0.8, 0.6)
    +    SetView3D(v)
    +    SetTimeSliderState(10)
    +
    +    Test("min_side_volume_00")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "mesh_quality/max_side_volume")
    +    DrawPlots()
    +
    +    Test("max_side_volume_00")
    +    DeleteAllPlots()
    +
    +    CloseDatabase(silo_data_path("wave.visit"))
    +
    +
    +OpenDatabase(silo_data_path("ucd3d.silo"))
    +
    +AddPlot("Pseudocolor", "mesh_quality/ucdmesh3d/volume")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (-0.178, -0.29, 0.94)
    +v.focus = (0, 2.5, 10)
    +v.viewUp = (-0.11, 0.95, 0.26)
    +v.parallelScale = 11.45
    +v.nearPlane = -22.9
    +v.farPlane = 22.9
    +v.imageZoom = 1.46
    +SetView3D(v)
    +
    +Test("mesh_quality_01")
    +
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "mesh_quality/ucdmesh3d/skew")
    +DrawPlots()
    +
    +Test("mesh_quality_02")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("tire.silo"))
    +
    +AddPlot("Pseudocolor", "mesh_quality/aspect")
    +DrawPlots()
    +v = View3DAttributes()
    +v.viewNormal = (-0.128, 0.26, 0.958)
    +v.focus = (0, 0, 0)
    +v.viewUp = (0.31, 0.92, -0.21)
    +v.parallelScale = 83
    +v.nearPlane = -165
    +v.farPlane = 165
    +SetView3D(v)
    +
    +pc = PseudocolorAttributes()
    +pc.minFlag = 1
    +pc.maxFlag = 1
    +pc.min=11
    +pc.max=22
    +SetPlotOptions(pc)
    +
    +Test("mesh_quality_03")
    +
    +pc.minFlag=0
    +pc.maxFlag=0
    +SetPlotOptions(pc)
    +Test("mesh_quality_04")
    +
    +AddOperator("Threshold")
    +thres = ThresholdAttributes()
    +thres.lowerBounds = (0.5)
    +thres.upperBounds = (0.55)
    +thres.listedVarNames = ("mesh_quality/skew")
    +SetOperatorOptions(thres)
    +DrawPlots()
    +Test("mesh_quality_05")
    +
    +
    +
    +DeleteAllPlots()
    +
    +CloseDatabase(silo_data_path("ucd3d.silo"))
    +CloseDatabase(silo_data_path("tire.silo"))
    +
    +# Add AWE Mesh-Quality tests
    +
    +OpenDatabase(silo_data_path("specmix_ucd.silo"))
    +
    +AddPlot("Mesh", "Mesh")
    +AddPlot("Pseudocolor", "mesh_quality/Mesh/min_corner_area")
    +pc = PseudocolorAttributes()
    +pc.invertColorTable = 1
    +SetPlotOptions(pc)
    +DrawPlots()
    +Test("mesh_quality_06")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Mesh", "Mesh")
    +AddPlot("Pseudocolor", "mesh_quality/Mesh/min_sin_corner")
    +pc = PseudocolorAttributes()
    +pc.invertColorTable = 1
    +SetPlotOptions(pc)
    +DrawPlots()
    +Test("mesh_quality_07")
    +
    +DeleteAllPlots()
    +
    +CloseDatabase(silo_data_path("specmix_ucd.silo"))
    +
    +TestSideVolume()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_mir.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_mir.html new file mode 100644 index 000000000..ed72baed7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_mir.html @@ -0,0 +1,168 @@ + +Results for hybrid/mir.py + +

    Results of VisIt Regression Test - hybrid/mir

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Curvilinear, 2D
    mir_curv2d_equi_t0.000.00
    mir_curv2d_equi_z0.000.00
    mir_curv2d_equi_z_i50.000.00
    mir_curv2d_plic0.000.00
    mir_curv2d_isovol0.000.00
    Unstructured, 2D
    mir_ucd2d_equi_t0.000.00
    mir_ucd2d_equi_z0.000.00
    mir_ucd2d_equi_z_i50.000.00
    mir_ucd2d_plic0.000.00
    mir_ucd2d_isovol0.000.00
    Rectilinear, 2D
    mir_rect2d_equi_t0.000.00
    mir_rect2d_equi_z0.000.00
    mir_rect2d_equi_z_i50.000.00
    mir_rect2d_plic0.000.00
    mir_rect2d_isovol0.000.00
    Rectilinear, 3D
    mir_rect3d_equi_t0.000.00
    mir_rect3d_equi_z0.000.00
    mir_rect3d_equi_z_i50.000.00
    mir_rect3d_plic0.000.00
    mir_rect3d_isovol0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_mir_cache.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_mir_cache.html new file mode 100644 index 000000000..7a4f9e454 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_mir_cache.html @@ -0,0 +1,48 @@ + +Results for hybrid/mir_cache.py + +

    Results of VisIt Regression Test - hybrid/mir_cache

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    mir_cache10.000.00
    mir_cache20.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_mir_cache_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_mir_cache_py.html new file mode 100644 index 000000000..a7e5a7bef --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_mir_cache_py.html @@ -0,0 +1,65 @@ +hybrid/mir_cache.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  mir_cache.py
    +#
    +#  Tests:      mesh      - 3D curvilinear,multi-domain,ghost zones replicated.
    +#              plots     - volume, PC
    +#
    +#  Defect ID:  '3542
    +#
    +#  Programmer: Hank Childs
    +#  Date:       July 22, 2003
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +view = View3DAttributes()
    +view.viewNormal = (0.557976, 0.651128, 0.514485)
    +view.focus = (0.5, 0.5, 0.5)
    +view.viewUp = (-0.0955897, 0.666272, -0.739557)
    +view.viewAngle = 30
    +view.parallelScale = 0.866025
    +view.nearPlane = -1.73205
    +view.farPlane = 1.73205
    +view.perspective = 1
    +SetView3D(view)
    +
    +#
    +# The volume plot does not need ghost zones, so this will create one
    +# set of MIRs.
    +#
    +OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +AddPlot("Volume", "dist")
    +sil = SILRestriction()
    +sets = sil.SetsInCategory("mat")
    +sil.TurnOffAll()
    +sil.TurnOnSet(sets[0])
    +SetPlotSILRestriction(sil)
    +DrawPlots()
    +
    +DeleteAllPlots()
    +
    +#
    +# The PC plot will need ghost zones.  If it does not create a new set of MIRs,
    +# we will get garbled data.
    +#
    +AddPlot("Pseudocolor", "dist")
    +DrawPlots()
    +
    +Test("mir_cache1")
    +
    +#
    +# Make extra sure that there aren't garbled zones in the interior.
    +#
    +view.nearPlane = -0.3
    +SetView3D(view)
    +Test("mir_cache2")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_mir_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_mir_py.html new file mode 100644 index 000000000..3d7d4eb5f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_mir_py.html @@ -0,0 +1,73 @@ +hybrid/mir.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  mir.py
    +#
    +#  Tests:      mesh      - 2D, 3D, structured, unstructured, single domain
    +#              plots     - FilledBoundary
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       March 24, 2010
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def TestOneMode(file, mat, name):
    +    SetMaterialAttributes(mat)
    +    ReOpenDatabase(file)
    +    Test(name)
    +
    +
    +def TestOneFile(isRectilinear, file, matname, prefix):
    +    OpenDatabase(file)
    +
    +    AddPlot("FilledBoundary", matname)
    +    DrawPlots()
    +
    +    v3 = GetView3D()
    +    v3.viewNormal = (0.3, 0.4, 0.8)
    +    SetView3D(v3)
    +
    +    m = MaterialAttributes()
    +
    +    m.algorithm = m.EquiT
    +    TestOneMode(file, m, prefix + "_equi_t")
    +
    +    m.algorithm = m.EquiZ
    +    m.iterationEnabled = False
    +    TestOneMode(file, m, prefix + "_equi_z")
    +
    +    m.algorithm = m.EquiZ
    +    m.iterationEnabled = True
    +    m.numIterations = 5
    +    m.iterationDamping = 0.4
    +    TestOneMode(file, m, prefix + "_equi_z_i5")
    +    m.iterationEnabled = False
    +
    +    m.algorithm = m.PLIC
    +    TestOneMode(file, m, prefix + "_plic")
    +
    +    m.algorithm = m.Isovolume
    +    TestOneMode(file, m, prefix + "_isovol")
    +
    +    # Discrete currently only works on rectilinear
    +    if isRectilinear:
    +        m.algorithm = m.Discrete
    +        # Discrete is stochastic, we can't test it reliably
    +        #TestOneMode(file, m, prefix + "_discrete")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(file)
    +
    +TestSection("Curvilinear, 2D")
    +TestOneFile(False,silo_data_path("specmix_quad.silo") , "Material", "mir_curv2d")
    +TestSection("Unstructured, 2D")
    +TestOneFile(False,silo_data_path("specmix_ucd.silo") , "Material", "mir_ucd2d")
    +TestSection("Rectilinear, 2D")
    +TestOneFile(True,silo_data_path("rect2d.silo") , "mat1", "mir_rect2d")
    +TestSection("Rectilinear, 3D")
    +TestOneFile(True,silo_data_path("rect3d.silo") , "mat1", "mir_rect3d")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_missingdata.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_missingdata.html new file mode 100644 index 000000000..4d9c3bf73 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_missingdata.html @@ -0,0 +1,88 @@ + +Results for hybrid/missingdata.py + +

    Results of VisIt Regression Test - hybrid/missingdata

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Missing data
    missingdata_0_000.000.00
    missingdata_0_010.000.00
    missingdata_0_020.000.00
    missingdata_0_030.000.00
    missingdata_0_040 modifications totalling 0 lines
    Expressions and missing data
    missingdata_1_000.000.00
    missingdata_1_010.000.00
    missingdata_1_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_missingdata_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_missingdata_py.html new file mode 100644 index 000000000..d26cf0053 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_missingdata_py.html @@ -0,0 +1,72 @@ +hybrid/missingdata.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  missingdata.py
    +#
    +#  Tests:      missing data
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Jan 19 09:49:15 PST 2012
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def SetTheView():
    +    v = GetView2D()
    +    v.viewportCoords = (0.02, 0.98, 0.25, 1)
    +    SetView2D(v)
    +
    +def test0(datapath):
    +    TestSection("Missing data")
    +    OpenDatabase(pjoin(datapath,"earth.nc"))
    +    AddPlot("Pseudocolor", "height")
    +    DrawPlots()
    +    SetTheView()
    +    Test("missingdata_0_00")
    +    ChangeActivePlotsVar("carbon_particulates")
    +    Test("missingdata_0_01")
    +    ChangeActivePlotsVar("seatemp")
    +    Test("missingdata_0_02")
    +    ChangeActivePlotsVar("population")
    +    Test("missingdata_0_03")
    +
    +    # Pick on higher zone numbers to make sure pick works.
    +    PickByNode(domain=0, element=833621)
    +    TestText("missingdata_0_04", GetPickOutput())
    +
    +    DeleteAllPlots()
    +
    +def test1(datapath):
    +    TestSection("Expressions and missing data")
    +    OpenDatabase(pjoin(datapath,"earth.nc"))
    +    DefineScalarExpression("meaningless", "carbon_particulates + seatemp")
    +    AddPlot("Pseudocolor", "meaningless")
    +    DrawPlots()
    +    SetTheView()
    +    Test("missingdata_1_00")
    +    DeleteAllPlots()
    +
    +    DefineVectorExpression("color", "color(red,green,blue)")
    +    AddPlot("Truecolor", "color")
    +    DrawPlots()
    +    ResetView()
    +    SetTheView()
    +    Test("missingdata_1_01")
    +
    +    DefineVectorExpression("color2", "color(population*0.364,green,blue)")
    +    ChangeActivePlotsVar("color2")
    +    v1 = GetView2D()
    +    v1.viewportCoords = (0.02, 0.98, 0.02, 0.98)
    +    v1.windowCoords = (259.439, 513.299, 288.93, 540) #25.466)
    +    SetView2D(v1)
    +    Test("missingdata_1_02")
    +
    +def main():
    +    datapath = data_path("netcdf_test_data")
    +    test0(datapath)
    +    test1(datapath)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_multivar.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_multivar.html new file mode 100644 index 000000000..4ca3c6442 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_multivar.html @@ -0,0 +1,60 @@ + +Results for hybrid/multivar.py + +

    Results of VisIt Regression Test - hybrid/multivar

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    multivar_010.000.00
    multivar_020.000.00
    multivar_030.000.00
    multivar_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_multivar_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_multivar_py.html new file mode 100644 index 000000000..208d99dc8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_multivar_py.html @@ -0,0 +1,108 @@ +hybrid/multivar.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  multivar.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - pc, vector, filledboundary 
    +#              operators - isosurface
    +#
    +#  Defect ID:  '7843
    +#
    +#  Programmer: Hank Childs
    +#  Date:       April 24, 2002
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Sep  5 10:55:47 PDT 2002
    +#    Changed the variable format for SubsetPlots, to reflect new interface
    +#    which allows subsets of groups.
    +#
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset plots.
    +#
    +#    Jeremy Meredith, Thu Jun 24 12:58:06 PDT 2004
    +#    Set the vector origin explicitly for some cases because I changed the
    +#    default to Tail.
    +#
    +#    Hank Childs, Tue Mar 13 09:42:24 PDT 2007
    +#    Add new test for mixed centering multiple variables and expressions.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +
    +# Set up the isosurface operators attributes
    +
    +atts = IsosurfaceAttributes()
    +atts.contourMethod = atts.Value
    +atts.contourValue = 500
    +atts.variable = "t"
    +SetDefaultOperatorOptions(atts)
    +
    +
    +# Test the PC plot with the isosurface operator.
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isosurface")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.SetViewNormal(-0.528889, 0.367702, 0.7649)
    +v.SetViewUp(0.176641, 0.929226, -0.324558)
    +v.SetParallelScale(17.3205)
    +v.SetPerspective(1)
    +SetView3D(v)
    +
    +Test("multivar_01")
    +DeleteAllPlots()
    +
    +
    +# Test the subset plot with the isosurface operator.
    +
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Isosurface")
    +DrawPlots()
    +Test("multivar_02")
    +DeleteAllPlots()
    +
    +
    +# Test the subset plot with the isosurface operator.
    +
    +AddPlot("Vector", "vel")
    +vec=VectorAttributes()
    +vec.useStride = 1
    +vec.stride = 1
    +vec.vectorOrigin = vec.Middle
    +SetPlotOptions(vec)
    +AddOperator("Isosurface")
    +DrawPlots()
    +Test("multivar_03")
    +DeleteAllPlots()
    +
    +# Test multiple variables with different centerings with expressions ('7843)
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +DefineScalarExpression("x", "coord(curvmesh3d)[0]")
    +DefineScalarExpression("y", "coord(curvmesh3d)[1]")
    +DefineScalarExpression("z", "coord(curvmesh3d)[2]")
    +DefineScalarExpression("myvar", "if(and(lt(x,0),gt(z,0)), abs(x*z), -abs(x*z))")
    +AddPlot("Pseudocolor", "myvar")
    +AddOperator("Isosurface")
    +atts.variable = "d"
    +atts.contourValue = 3
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("multivar_04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_pos_cmfe.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_pos_cmfe.html new file mode 100644 index 000000000..20626361a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_pos_cmfe.html @@ -0,0 +1,108 @@ + +Results for hybrid/pos_cmfe.py + +

    Results of VisIt Regression Test - hybrid/pos_cmfe

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    pos_cmfe_010.000.00
    pos_cmfe_020.000.00
    pos_cmfe_030.000.00
    pos_cmfe_040.000.00
    pos_cmfe_050 modifications totalling 0 lines
    pos_cmfe_060 modifications totalling 0 lines
    pos_cmfe_070 modifications totalling 0 lines
    pos_cmfe_080 modifications totalling 0 lines
    pos_cmfe_090 modifications totalling 0 lines
    pos_cmfe_100 modifications totalling 0 lines
    pos_cmfe_110.000.00
    pos_cmfe_120.000.00
    pos_cmfe_130.000.00
    pos_cmfe_140.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_pos_cmfe_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_pos_cmfe_py.html new file mode 100644 index 000000000..003fa89ee --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_pos_cmfe_py.html @@ -0,0 +1,149 @@ +hybrid/pos_cmfe.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  pos_cmfe.py
    +#
    +#  Defect ID:  '5528, '5677
    +#
    +#  Programmer: Hank Childs
    +#  Date:       January 9, 2006
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Tue Jul 15 10:43:58 EDT 2008
    +#    Changed number of vectors in vector plot to match the old behavior.
    +#    (We now account for how many domains there are.)
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +
    +
    +# Test general capability.
    +DefineScalarExpression("cmfe", "pos_cmfe(<%s:d>, curvmesh2d, -1.)" % cmfe_silo_data_path("ucd2d.silo"))
    +AddPlot("Pseudocolor", "cmfe")
    +DrawPlots()
    +Test("pos_cmfe_01")
    +
    +# Zonal vars
    +DefineScalarExpression("cmfeZ", "pos_cmfe(<%s:p>, curvmesh2d, -1.)" %  cmfe_silo_data_path("ucd2d.silo"))
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "cmfeZ")
    +DrawPlots()
    +Test("pos_cmfe_02")
    +
    +# Test using the expression as a secondary variable.
    +ChangeActivePlotsVar("d")
    +AddOperator("Threshold")
    +t = ThresholdAttributes()
    +t.lowerBounds = (0.1)
    +t.listedVarNames = ("cmfe")
    +SetOperatorOptions(t)
    +DrawPlots()
    +Test("pos_cmfe_03")
    +
    +# Test using cmfe in another expression.
    +DefineVectorExpression("disp", "{0, 3*cmfe}")
    +RemoveLastOperator()
    +d = DisplaceAttributes()
    +d.variable = "disp"
    +SetDefaultOperatorOptions(d)
    +AddOperator("Displace")
    +DrawPlots()
    +Test("pos_cmfe_04")
    +
    +RemoveLastOperator()
    +ChangeActivePlotsVar("cmfe")
    +DrawPlots()
    +
    +Query("MinMax")
    +t = GetQueryOutputString()
    +TestText("pos_cmfe_05", t)
    +
    +# Now test error conditions.
    +DefineScalarExpression("cmfe2", "pos_cmfe(pressure, quadmesh)")
    +ChangeActivePlotsVar("cmfe2")
    +DrawPlots()
    +t = GetLastError()
    +TestText("pos_cmfe_06", t)
    +
    +DefineScalarExpression("cmfe3", "pos_cmfe(<bad_file.silo:a_var>, curvmesh2d, 0.)")
    +ChangeActivePlotsVar("cmfe3")
    +DrawPlots()
    +t = GetLastError()
    +TestText("pos_cmfe_07", t)
    +
    +DefineScalarExpression("cmfe4", "pos_cmfe(<%s:pressure>, curvmesh2d)" %  cmfe_silo_data_path("wave0100.silo"))
    +ChangeActivePlotsVar("cmfe4")
    +DrawPlots()
    +t = GetLastError()
    +TestText("pos_cmfe_08", t)
    +
    +DefineScalarExpression("cmfe5", "pos_cmfe(<%s:pressure>)" % cmfe_silo_data_path("wave0100.silo"))
    +ChangeActivePlotsVar("cmfe5")
    +DrawPlots()
    +t = GetLastError()
    +TestText("pos_cmfe_09", t)
    +
    +# Invalid variable in new database.
    +DefineScalarExpression("cmfe6", "pos_cmfe(<%s:xyz>, curvmesh2d, 0.)" % cmfe_silo_data_path("ucd2d.silo"))
    +ChangeActivePlotsVar("cmfe6")
    +DrawPlots()
    +t = GetLastError()
    +TestText("pos_cmfe_10", t)
    +
    +# Enough error checking, let's do some more testing when it works.
    +
    +# 3D, multi-block to multi-block.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +DefineScalarExpression("cmfe7", "pos_cmfe(<%s:d>, mesh1, 0.)" %  cmfe_silo_data_path("multi_curv3d.silo"))
    +AddPlot("Pseudocolor", "cmfe7")
    +DrawPlots()
    +Test("pos_cmfe_11")
    +
    +DeleteAllPlots()
    +
    +# multi-block to single-block.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +DefineScalarExpression("cmfe8", "pos_cmfe(<%s:d>, curvmesh3d, 0.)" %  cmfe_silo_data_path("multi_curv3d.silo"))
    +AddPlot("Pseudocolor", "cmfe8")
    +DrawPlots()
    +Test("pos_cmfe_12")
    +
    +# single-block to multi-block.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_curv3d.silo"))
    +
    +DefineScalarExpression("cmfe9", "pos_cmfe(<%s:d>, mesh1, 0.)" % cmfe_silo_data_path("curv3d.silo"))
    +AddPlot("Pseudocolor", "cmfe9")
    +DrawPlots()
    +Test("pos_cmfe_13")
    +
    +# single-block to multi-block -- vector
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +DefineVectorExpression("cmfe10", "pos_cmfe(gradient(<%s:d>), mesh1, {0,0,0})"% cmfe_silo_data_path("curv3d.silo"))
    +AddPlot("Vector", "cmfe10")
    +vec = VectorAttributes()
    +vec.nVectors = 400*36
    +SetPlotOptions(vec)
    +DrawPlots()
    +Test("pos_cmfe_14")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_py_exprs.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_py_exprs.html new file mode 100644 index 000000000..32ad55d75 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_py_exprs.html @@ -0,0 +1,78 @@ + +Results for hybrid/py_exprs.py + +

    Results of VisIt Regression Test - hybrid/py_exprs

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    py_exprs_000.000.00
    py_exprs_010.000.00
    py_exprs_020.000.00
    py_exprs_030.000.00
    py_exprs_040.000.00
    py_exprs_050.000.00
    py_exprs_060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_py_exprs_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_py_exprs_py.html new file mode 100644 index 000000000..9dab74877 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_py_exprs_py.html @@ -0,0 +1,106 @@ +hybrid/py_exprs.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  py_exprs.py
    +#
    +#  Tests:      python filters / python expressions
    +#              plots     - Pseudocolor
    +#
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Fri May 21 09:14:07 PDT 2010
    +#
    +#  Modifications:
    +#
    +#  Eddie Rusu - Tue Jul 30 13:22:17 PDT 2019
    +#  Added testing for python expressions with numpy mixed with simple
    +#  expressions.
    +#
    +#  Kathleen Biagas Fri Mar 12, 2021
    +#  Rename xx_simple_xx.py expression scripts to prevent them being run when
    +#  passing file globs to test suite (eg tests/hybrid/*.py) 
    +#
    +# ----------------------------------------------------------------------------
    +
    +import os
    +from os.path import join as pjoin
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +script_file = pjoin(os.path.split(TestScriptPath())[0],"py_expr_script_00.vpe")
    +
    +DefinePythonExpression("d_wave",("d"),file=script_file)
    +AddPlot("Pseudocolor", "d_wave")
    +AddOperator("Elevate")
    +v = View3DAttributes()
    +v.viewNormal = (0.724969, -0.544156, 0.422273)
    +v.focus = (0.5, 0.666667, 0.526085)
    +v.viewUp = (-0.377473, 0.198927, 0.904401)
    +v.viewAngle = 30
    +v.parallelScale = 0.981769
    +v.nearPlane = -1.96354
    +v.farPlane = 1.96354
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0.5, 0.666667, 0.526085)
    +SetView3D(v)
    +DrawPlots()
    +Test("py_exprs_00")
    +DeleteAllPlots()
    +
    +
    +# Test simple expressions mixed with python expressions using numpy
    +OpenDatabase(silo_data_path("multi_rect2d.silo"))
    +
    +script_file = pjoin(os.path.split(TestScriptPath())[0],"simple_numpy_expr.vpe")
    +DefinePythonExpression("python_multiply", ['d','p'], file=script_file)
    +AddPlot("Pseudocolor", "python_multiply", 1, 1)
    +DrawPlots()
    +Test("py_exprs_01")
    +DeleteAllPlots()
    +
    +script_file = pjoin(os.path.split(TestScriptPath())[0],"python_simple_mix_01.vpe")
    +DefineScalarExpression("my_expr", "d*p")
    +DefinePythonExpression("python_with_simple", ['d','p', 'my_expr'], file=script_file)
    +AddPlot("Pseudocolor", "python_with_simple", 1, 1)
    +DrawPlots()
    +Test("py_exprs_02")
    +DeleteAllPlots()
    +
    +script_file = pjoin(os.path.split(TestScriptPath())[0],"python_simple_mix_02.vpe")
    +DefinePythonExpression("python_with_python", ['d','p', 'python_multiply'], file=script_file)
    +AddPlot("Pseudocolor", "python_with_python", 1, 1)
    +DrawPlots()
    +Test("py_exprs_03")
    +DeleteAllPlots()
    +
    +DefineScalarExpression("simple_with_python", "python_multiply-p+d+p*p")
    +AddPlot("Pseudocolor", "simple_with_python", 1, 1)
    +DrawPlots()
    +Test("py_exprs_04")
    +DeleteAllPlots()
    +
    +CloseDatabase(silo_data_path("multi_rect2d.silo"))
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +script_file = pjoin(os.path.split(TestScriptPath())[0],"python_example_1.vpe")
    +DefinePythonExpression("MyExpression", ['d', 'p'], file=script_file)
    +AddPlot("Pseudocolor", "MyExpression")
    +DrawPlots()
    +Test("py_exprs_05")
    +DeleteAllPlots()
    +
    +script_file = pjoin(os.path.split(TestScriptPath())[0],"python_example_2.vpe")
    +DefinePythonExpression("MyExpression", ("d"), file=script_file)
    +AddPlot("Pseudocolor", "MyExpression")
    +DrawPlots()
    +Test("py_exprs_06")
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_qcrit.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_qcrit.html new file mode 100644 index 000000000..1733354c3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_qcrit.html @@ -0,0 +1,54 @@ + +Results for hybrid/qcrit.py + +

    Results of VisIt Regression Test - hybrid/qcrit

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    iso_qcrit0.000.00
    contour_qcrit0.000.00
    pseudo_qcrit0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_qcrit_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_qcrit_py.html new file mode 100644 index 000000000..417cf462f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_qcrit_py.html @@ -0,0 +1,54 @@ +hybrid/qcrit.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  qcrit.py
    +#
    +#  Tests:#     plots   - pseudocolor, contour
    +#  Defect ID:  1829
    +#
    +#  Programmer: Kevin Griffin
    +#  Date:       Thu Jul 31 14:21:02 PDT 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +ds = data_path("miranda_test_data/TG_vortex/plot.raw")
    +#ds = "/g/g14/kgriffin/trunk/build_debug/data/miranda_test_data/TG_vortex/plot.raw"
    +OpenDatabase(ds)
    +DefineScalarExpression("qcrit", "q_criterion(gradient(velocity[0]), gradient(velocity[1]), gradient(velocity[2]))")
    +TimeSliderNextState()
    +TimeSliderNextState()
    +
    +#
    +# Test 1
    +#
    +AddPlot("Pseudocolor", "qcrit")
    +AddOperator("Isovolume")
    +IsovolumeAtts = IsovolumeAttributes()
    +IsovolumeAtts.lbound = 0.2
    +IsovolumeAtts.ubound = 5.0
    +IsovolumeAtts.variable = "default"
    +SetOperatorOptions(IsovolumeAtts)
    +
    +DrawPlots()
    +Test("iso_qcrit")
    +DeleteAllPlots()
    +
    +#
    +# Test 2
    +#
    +AddPlot("Contour", "qcrit")
    +DrawPlots()
    +Test("contour_qcrit")
    +DeleteAllPlots()
    +
    +#
    +# Test 3
    +#
    +AddPlot("Pseudocolor", "qcrit")
    +DrawPlots()
    +Test("pseudo_qcrit")
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_replace.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_replace.html new file mode 100644 index 000000000..2cf8f902c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_replace.html @@ -0,0 +1,72 @@ + +Results for hybrid/replace.py + +

    Results of VisIt Regression Test - hybrid/replace

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    AllMaterials0.000.00
    Material2Off0.000.00
    Replace10.000.00
    Replace20.000.00
    Replace30.000.00
    Replace40.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_replace_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_replace_py.html new file mode 100644 index 000000000..9f4a8b22f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_replace_py.html @@ -0,0 +1,97 @@ +hybrid/replace.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  replace.py
    +#
    +#  Tests:      the ReplaceDatabase function.
    +#
    +#  Defect ID:  VisIt00003002
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Jan 22 11:06:49 PDT 2003
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset plots.
    +# 
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Turn off annotation
    +a = AnnotationAttributes()
    +TurnOffAllAnnotations(a)
    +a.axes2D.visible = 1
    +a.axes2D.xAxis.label.visible = 0
    +a.axes2D.yAxis.label.visible = 0
    +a.axes2D.xAxis.title.visible = 0
    +a.axes2D.yAxis.title.visible = 0
    +SetAnnotationAttributes(a)
    +
    +# Set up the plots.
    +OpenDatabase(silo_data_path("wave0110.silo"))
    +
    +AddPlot("FilledBoundary", "Material")
    +DrawPlots()
    +v = View3DAttributes()
    +v.viewNormal = (-0.427729, 0.776091, 0.463391)
    +v.focus = (4.37669, 0.376992, 2.57924)
    +v.viewUp = (0.67875, 0.614328, -0.402368)
    +v.viewAngle = 30.
    +v.parallelScale = 5.03337
    +v.nearPlane = -11.2758
    +v.farPlane = 11.2758
    +v.perspective = 1
    +SetView3D(v)
    +
    +# Show what it looks like with all materials
    +Test("AllMaterials")
    +# Turn off the green material
    +TurnMaterialsOff("2 water")
    +Test("Material2Off")
    +
    +# Try replacing with a later time step and see if the SIL selection
    +# still is applied. It should be still applied since the files have
    +# equivalent SILs.
    +ReplaceDatabase(silo_data_path("wave0340.silo"))
    +
    +Test("Replace1")
    +
    +# Make different materials active and replace again.
    +TurnMaterialsOn()
    +TurnMaterialsOff("1 barrier")
    +ReplaceDatabase(silo_data_path("wave0470.silo"))
    +
    +Test("Replace2")
    +
    +# Open one of our simple databases, do a plot and then replace it with
    +# an unrelated database.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +ReplaceDatabase(silo_data_path("curv3d.silo"))
    +
    +v2 = View3DAttributes()
    +v2.viewNormal = (-0.499092, 0.420388, 0.757747)
    +v2.focus = (0,2.5,15)
    +v2.viewUp = (0.195607, 0.906528, -0.374093)
    +v2.viewAngle = 30.
    +v2.parallelScale = 16.0078
    +v2.nearPlane = -32.0156
    +v2.farPlane = 32.0156
    +v2.perspective = 1
    +SetView3D(v2)
    +Test("Replace3")
    +
    +# Replace it with a 2d database.
    +ReplaceDatabase(silo_data_path("curv2d.silo"))
    +
    +Test("Replace4")
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_sil.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_sil.html new file mode 100644 index 000000000..0cacdeb10 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_sil.html @@ -0,0 +1,70 @@ + +Results for hybrid/sil.py + +

    Results of VisIt Regression Test - hybrid/sil

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    sil10.000.00
    sil20.000.00
    sil30.000.00
    sil40.000.00
    sil50.000.00
    sil60 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_sil_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_sil_py.html new file mode 100644 index 000000000..47c79e7f3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_sil_py.html @@ -0,0 +1,87 @@ +hybrid/sil.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  sil.py
    +#
    +#  Tests:      mesh      - 3D curvilinear,multi-domain,ghost zones replicated.
    +#              plots     - mat subset, domain subset
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Hank Childs
    +#  Date:       December 5, 2002
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset plots.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Hank Childs, Fri Feb 24 15:45:41 PST 2012
    +#    Add test for preserving SILs across time slice changes.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +view = View3DAttributes()
    +view.viewNormal = (0.557976, 0.651128, 0.514485)
    +view.focus = (0.5, 0.5, 0.5)
    +view.viewUp = (-0.0955897, 0.666272, -0.739557)
    +view.viewAngle = 30
    +view.parallelScale = 0.866025
    +view.nearPlane = -1.73205
    +view.farPlane = 1.73205
    +view.perspective = 1
    +SetView3D(view)
    +
    +OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +AddPlot("FilledBoundary", "mat")
    +DrawPlots()
    +
    +# Test the normal material plot.
    +Test("sil1")
    +
    +# Make sure that the ghost zones were generated correctly.
    +view.nearPlane = -0.3
    +SetView3D(view)
    +Test("sil2")
    +
    +view.nearPlane = -1.73205
    +SetView3D(view)
    +
    +TurnMaterialsOff("1")
    +Test("sil3")
    +
    +TurnMaterialsOff()
    +TurnMaterialsOn("1")
    +Test("sil4")
    +
    +DeleteAllPlots()
    +
    +# Test that the SIL from the previous plot is preserved.
    +AddPlot("Subset", "domains")
    +DrawPlots()
    +Test("sil5")
    +
    +OpenDatabase(data_path("Chombo_test_data/chombo.visit"))
    +
    +AddPlot("Pseudocolor", "Density")
    +s = SILRestriction()
    +s.TurnOffSet(s.SetsInCategory("materials")[1])
    +SetPlotSILRestriction(s)
    +DrawPlots()
    +TimeSliderSetState(4)
    +s = SILRestriction()
    +if (s.UsesData(s.SetsInCategory("materials")[1])):
    +   text="Material 1 got turned back on!  (incorrect)\n"
    +else:
    +   text="Material 1 was correctly left off.\n"
    +
    +TestText("sil6", text)
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_simplify_mixed.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_simplify_mixed.html new file mode 100644 index 000000000..1a69fc2d2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_simplify_mixed.html @@ -0,0 +1,72 @@ + +Results for hybrid/simplify_mixed.py + +

    Results of VisIt Regression Test - hybrid/simplify_mixed

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    simplify_mixed010.000.00
    simplify_mixed020.000.00
    simplify_mixed030.000.00
    simplify_mixed040.000.00
    simplify_mixed050.000.00
    simplify_mixed060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_simplify_mixed_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_simplify_mixed_py.html new file mode 100644 index 000000000..897ef3106 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_simplify_mixed_py.html @@ -0,0 +1,90 @@ +hybrid/simplify_mixed.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  simplify_mixed.py
    +#
    +#  Tests:      plots     - filled boundary
    +#
    +#  Defect ID:  '4363, '6464, '6504, '8082
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 19, 2005
    +#
    +#  Modifications:
    +# 
    +#    Hank Childs, Fri Sep 28 12:48:54 PDT 2007
    +#    Add testing for mixvars with simplify heavily mixed ['8082].
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Eddie Rusu, Tue Apr 13 12:08:59 PDT 2021
    +#    Changed Pseudocolor CurrentPlot to ActualData.
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(data_path("boxlib_test_data/2D/plt0822/Header"))
    +
    +
    +AddPlot("FilledBoundary", "materials")
    +DrawPlots()
    +
    +v = GetView2D()
    +v.windowCoords = (0.0084, 0.0215, 0.0920, 0.1034)
    +v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +SetView2D(v)
    +
    +Test("simplify_mixed01")
    +
    +m = MaterialAttributes()
    +m.simplifyHeavilyMixedZones = 1
    +m.maxMaterialsPerZone = 2
    +SetMaterialAttributes(m)
    +
    +AddPlot("Boundary", "materials")
    +b = BoundaryAttributes()
    +b.colorType = b.ColorBySingleColor
    +SetPlotOptions(b)
    +
    +DrawPlots()
    +
    +Test("simplify_mixed02")
    +
    +DeleteAllPlots()
    +m.maxMaterialsPerZone = 1
    +SetMaterialAttributes(m)
    +
    +AddPlot("FilledBoundary", "materials")
    +DrawPlots()
    +
    +Test("simplify_mixed03")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("thinplane.silo"))
    +
    +
    +m.forceMIR = 1
    +SetMaterialAttributes(m)
    +AddPlot("Pseudocolor", "den")
    +p = PseudocolorAttributes()
    +p.limitsMode = p.ActualData
    +SetPlotOptions(p)
    +DrawPlots()
    +Test("simplify_mixed04")
    +
    +m.maxMaterialsPerZone = 2
    +SetMaterialAttributes(m)
    +ReOpenDatabase(silo_data_path("thinplane.silo"))
    +
    +Test("simplify_mixed05")
    +
    +m.maxMaterialsPerZone = 3
    +SetMaterialAttributes(m)
    +ReOpenDatabase(silo_data_path("thinplane.silo"))
    +
    +Test("simplify_mixed06")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_specmf.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_specmf.html new file mode 100644 index 000000000..b27fb9c2e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_specmf.html @@ -0,0 +1,48 @@ + +Results for hybrid/specmf.py + +

    Results of VisIt Regression Test - hybrid/specmf

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    specmf_00.000.00
    specmf_10.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_specmf_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_specmf_py.html new file mode 100644 index 000000000..6efab9c1e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_specmf_py.html @@ -0,0 +1,42 @@ +hybrid/specmf.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  val4mat.py
    +#
    +#  Tests:      mesh      - 2d structured
    +#              plots     - pc
    +#
    +#  Notes
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Tuesday 12, 2008
    +#
    +#  Modifiations:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("specmix_quad.silo"))
    +
    +atts = PseudocolorAttributes()
    +atts.minFlag = 1
    +atts.min = 0.0
    +atts.maxFlag = 1
    +atts.max = 1.0
    +SetDefaultPlotOptions(atts)
    +
    +# view the per material values for each of the 3 materials
    +
    +DefineScalarExpression("spec_mix", "specmf(Species,1,1)")
    +AddPlot("Pseudocolor", "spec_mix")
    +DrawPlots()
    +Test("specmf_0")
    +
    +OpenDatabase(silo_data_path("specmix_double_quad.silo"))
    +
    +AddPlot("Pseudocolor", "spec_mix")
    +DrawPlots()
    +Test("specmf_1")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_symm.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_symm.html new file mode 100644 index 000000000..b67a7d348 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_symm.html @@ -0,0 +1,100 @@ + +Results for hybrid/symm.py + +

    Results of VisIt Regression Test - hybrid/symm

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    symm_010 modifications totalling 0 lines
    symm_020.000.00
    symm_030.000.00
    symm_040.000.00
    symm_050.000.00
    symm_060.000.00
    symm_070.000.00
    symm_080.000.00
    symm_090.000.00
    symm_100.000.00
    symm_110.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_symm_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_symm_py.html new file mode 100644 index 000000000..d0d2f2c47 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_symm_py.html @@ -0,0 +1,114 @@ +hybrid/symm.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  symm.py
    +#
    +#  Defect ID:  '6913, '7644, '7650
    +#
    +#  Programmer: Hank Childs
    +#  Date:       January 23, 2006
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Fri Dec 22 11:01:09 PST 2006
    +#    Add testing for symm_point
    +#
    +#    Hank Childs, Fri Jan  5 11:14:59 PST 2007
    +#    Add testing for non-rectilinear mesh types, since they use a different
    +#    code path (which broke).
    +#
    +#    Hank Childs, Mon Jan  8 11:04:50 PST 2007
    +#    Add testing for non-scalar variable types with symmetry CMFE expressions.
    +#
    +#    Brad Whitlock, Thu May 10 09:06:46 PDT 2007
    +#    Changed the name of an expression.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +
    +# Test errors.
    +DefineScalarExpression("sp1", "symm_plane(d, [0, 0, 0, 1, 0, 0])")
    +AddPlot("Pseudocolor", "sp1")
    +DrawPlots()
    +t = GetLastError()
    +TestText("symm_01", t)
    +
    +# Now test it working...
    +DeleteAllPlots()
    +DefineScalarExpression("sp2", "symm_plane(d, [1, 0, 0, 0.3, 0, 0])")
    +AddPlot("Pseudocolor", "sp2")
    +DrawPlots()
    +Test("symm_02")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("sp3", "symm_plane(d, [1, -1, 0, 0.1, 0, 0])")
    +AddPlot("Pseudocolor", "sp3")
    +DrawPlots()
    +Test("symm_03")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("sp4", "symm_plane(d, [2, -1, 0, 0.1, 0, 0])")
    +AddPlot("Pseudocolor", "sp4")
    +DrawPlots()
    +Test("symm_04")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("st1", "symm_transform(d, [0,1,0,1,0,0,0,0,0])")
    +AddPlot("Pseudocolor", "st1")
    +DrawPlots()
    +Test("symm_05")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +DefineScalarExpression("sp5", "symm_plane(hardyglobal, [1, 0, 0, 0, 0, 0])")
    +AddPlot("Contour", "sp5")
    +DrawPlots()
    +Test("symm_06")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +DefineScalarExpression("st2", "symm_transform(hardyglobal, [0.707, 0.707, 0, -0.707, 0.707, 0, 0, 0, 1])")
    +AddPlot("Contour", "st2")
    +DrawPlots()
    +Test("symm_07")
    +
    +ActivateDatabase(silo_data_path("rect2d.silo"))
    +
    +DeleteAllPlots()
    +DefineScalarExpression("sp4_2", "symm_point(d, [0.4, 0.6, 0])")
    +AddPlot("Pseudocolor", "sp4_2")
    +DrawPlots()
    +Test("symm_08")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +DefineScalarExpression("sp6", "symm_plane(d, [1, 0, 0, 0.2, 0, 0])")
    +AddPlot("Pseudocolor", "sp6")
    +DrawPlots()
    +Test("symm_09")
    +
    +DeleteAllPlots()
    +DefineVectorExpression("sp7", "symm_plane(vel, [1, 0, 0, 0.2, 0, 0])")
    +AddPlot("Vector", "sp7")
    +DrawPlots()
    +Test("symm_10")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("sp8", "magnitude(symm_plane(vel, [1, 0, 0, 0.2, 0, 0]))")
    +AddPlot("Pseudocolor", "sp8")
    +DrawPlots()
    +Test("symm_11")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_time_cmfe.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_time_cmfe.html new file mode 100644 index 000000000..364254663 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_time_cmfe.html @@ -0,0 +1,108 @@ + +Results for hybrid/time_cmfe.py + +

    Results of VisIt Regression Test - hybrid/time_cmfe

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    time_cmfe_010.000.00
    time_cmfe_020.000.00
    time_cmfe_030.000.00
    time_cmfe_040.000.00
    time_cmfe_050.000.00
    time_cmfe_060.000.00
    time_cmfe_070.000.00
    time_cmfe_080.000.00
    time_cmfe_090.000.00
    time_cmfe_100.000.00
    time_cmfe_110.000.00
    time_cmfe_120.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_time_cmfe_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_time_cmfe_py.html new file mode 100644 index 000000000..72f3fb828 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_time_cmfe_py.html @@ -0,0 +1,93 @@ +hybrid/time_cmfe.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  time_cmfe.py
    +#
    +#  Defect ID:  None
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 30, 2005
    +#
    +#  Modifications:
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Brad Whitlock, Thu Apr 19 14:35:20 PDT 2012
    +#    I changed the last couple of tests so we can directly compare the
    +#    data at a time step with what time deltas should give us.
    +#
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +
    +
    +# Test general capability.
    +DefineScalarExpression("cmfe", "conn_cmfe(<%s[10]i:pressure>, quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +AddPlot("Pseudocolor", "cmfe")
    +DrawPlots()
    +Test("time_cmfe_01")
    +
    +# Should be same pressure, since we aren't doing deltas
    +SetTimeSliderState(20)
    +Test("time_cmfe_02")
    +
    +DefineScalarExpression("cmfe2", "conn_cmfe(<%s[-10]id:pressure>, quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +ChangeActivePlotsVar("cmfe2")
    +Test("time_cmfe_03")
    +
    +SetTimeSliderState(40)
    +Test("time_cmfe_04")
    +
    +DefineScalarExpression("cmfe3", "conn_cmfe(<%s[200]c:pressure>, quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +ChangeActivePlotsVar("cmfe3")
    +Test("time_cmfe_05")
    +
    +SetTimeSliderState(20)
    +Test("time_cmfe_06")
    +
    +DefineScalarExpression("cmfe4", "conn_cmfe(<%s[200]cd:pressure>, quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +ChangeActivePlotsVar("cmfe4")
    +Test("time_cmfe_07")
    +
    +SetTimeSliderState(40)
    +Test("time_cmfe_08")
    +
    +DefineScalarExpression("cmfe5", "conn_cmfe(<%s[-0.9]t:pressure>, quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +ChangeActivePlotsVar("cmfe5")
    +Test("time_cmfe_09")
    +
    +SetTimeSliderState(20)
    +Test("time_cmfe_10")
    +
    +# Get rid of the wave in the mesh and slice it. I'm slicing it because I was 
    +# originally doing lineouts but those didn't line up for some reason.
    +DefineScalarExpression("i", "mod(nodeid(quadmesh), 101.)")
    +DefineScalarExpression("j", "floor((nodeid(quadmesh) - (k*101.*11.) - i) / 101.)")
    +DefineScalarExpression("k", "floor(nodeid(quadmesh) / (101.*11.))")
    +DefineVectorExpression("offset", "{coords(quadmesh)[0], j * 0.06, coords(quadmesh)[2]} - coords(quadmesh)")
    +AddOperator("Displace")
    +disp = DisplaceAttributes()
    +disp.variable = "offset"
    +disp.factor = 1
    +SetOperatorOptions(disp)
    +AddOperator("Slice")
    +DrawPlots()
    +
    +ChangeActivePlotsVar("pressure")
    +# Do a plot of pressure at time state 25 since the time there is 3. 
    +SetTimeSliderState(25)
    +Test("time_cmfe_11")
    +
    +# Now create a time delta expression where we want to get the data that trails
    +# the current time step by 0.8. We'll set the time slider to state 29 where the 
    +# time is 3.8 and we'll use the cmfe time delta to obtain data from 0.8 time
    +# units before, or in other words, time state 25. Then we'll do a plot to see
    +# if the data matches the previous test.
    +DefineScalarExpression("cmfe6", "conn_cmfe(<%s[-0.8]td:pressure>, quadmesh)" % cmfe_silo_data_path("wave.visit"))
    +SetTimeSliderState(29)
    +ChangeActivePlotsVar("cmfe6")
    +Test("time_cmfe_12")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_time_deriv_cmfe.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_time_deriv_cmfe.html new file mode 100644 index 000000000..4d71d38fb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_time_deriv_cmfe.html @@ -0,0 +1,54 @@ + +Results for hybrid/time_deriv_cmfe.py + +

    Results of VisIt Regression Test - hybrid/time_deriv_cmfe

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    time_deriv_cmfe_010.000.00
    time_deriv_cmfe_020.000.00
    time_deriv_cmfe_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_time_deriv_cmfe_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_time_deriv_cmfe_py.html new file mode 100644 index 000000000..7d523a054 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_time_deriv_cmfe_py.html @@ -0,0 +1,35 @@ +hybrid/time_deriv_cmfe.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  time_deriv_cmfe.py
    +#
    +#  Defect ID:  '2715, '6897
    +#
    +#  Programmer: Hank Childs
    +#  Date:       January 12, 2006
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +
    +
    +# Test general capability.
    +AddPlot("Pseudocolor", "time_derivative/conn_based/pressure")
    +DrawPlots()
    +Test("time_deriv_cmfe_01")
    +
    +TimeSliderSetState(50)
    +Test("time_deriv_cmfe_02")
    +
    +ChangeActivePlotsVar("time_derivative/pos_based/pressure")
    +Test("time_deriv_cmfe_03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_time_iteration.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_time_iteration.html new file mode 100644 index 000000000..b1a26db1b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_time_iteration.html @@ -0,0 +1,54 @@ + +Results for hybrid/time_iteration.py + +

    Results of VisIt Regression Test - hybrid/time_iteration

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    time_iteration_010.000.00
    time_iteration_020.000.00
    time_iteration_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_time_iteration_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_time_iteration_py.html new file mode 100644 index 000000000..bcd7f313b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_time_iteration_py.html @@ -0,0 +1,41 @@ +hybrid/time_iteration.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  time_iteration.py
    +#
    +#  Defect ID:  None
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 27, 2010
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +
    +
    +DefineScalarExpression("ave1", "average_over_time(pressure, 1, 10, 1)")
    +AddPlot("Pseudocolor", "ave1")
    +DrawPlots()
    +v = GetView3D()
    +v.viewNormal = (0.607716, 0.507406, 0.610918)
    +v.viewUp = (-0.342711, 0.861513, -0.374627)
    +SetView3D(v)
    +Test("time_iteration_01")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("ave2", "average_over_time(pressure, 10, 20, 1)")
    +AddPlot("Pseudocolor", "ave2")
    +DrawPlots()
    +Test("time_iteration_02")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("pressure_big", "ge(pressure, 0.8)")
    +DefineScalarExpression("first_time", "first_time_when_condition_is_true(pressure_big, 100, 1, 71, 1)")
    +AddPlot("Pseudocolor", "first_time")
    +DrawPlots()
    +Test("time_iteration_03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_timelock.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_timelock.html new file mode 100644 index 000000000..079becbb0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_timelock.html @@ -0,0 +1,209 @@ + +Results for hybrid/timelock.py + +

    Results of VisIt Regression Test - hybrid/timelock

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Make sure we get a time slider when locking a window causes the most suitable correlation to be altered.
    timelock_000.000.00
    timelock_010 modifications totalling 0 lines
    timelock_020.000.00
    timelock_030 modifications totalling 0 lines
    timelock_040.000.00
    timelock_050 modifications totalling 0 lines
    timelock_060 modifications totalling 0 lines
    timelock_070 modifications totalling 0 lines
    timelock_080.000.00
    timelock_090 modifications totalling 0 lines
    timelock_100.000.00
    timelock_110 modifications totalling 0 lines
    timelock_120.000.00
    timelock_130 modifications totalling 0 lines
    Test that the time slider works when time locking multiple windows
    timelock_140.000.00
    timelock_150 modifications totalling 0 lines
    timelock_160.000.00
    timelock_170.000.00
    timelock_180 modifications totalling 0 lines
    timelock_190.000.00
    timelock_200 modifications totalling 0 lines
    Make sure replacing into a time-locked window updates the database correlation.
    timelock_210.000.00
    timelock_220.000.00
    timelock_230 modifications totalling 0 lines
    timelock_240 modifications totalling 0 lines
    timelock_250 modifications totalling 0 lines
    timelock_260 modifications totalling 0 lines
    timelock_270.000.00
    timelock_280.000.00
    timelock_290.000.00
    timelock_300 modifications totalling 0 lines
    timelock_310.000.00
    timelock_320 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_timelock_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_timelock_py.html new file mode 100644 index 000000000..d78a50873 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_timelock_py.html @@ -0,0 +1,378 @@ +hybrid/timelock.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  timelock.py
    +#
    +#  Tests:      mesh      - 2D, 3D, curvilinear, single domain
    +#              plots     - FilledBoundary, Pseudocolor
    +#              databases - PDB, Silo
    +#
    +#  Purpose:    This test case tests out locking windows in time with multiple
    +#              databases in multiple windows. It makes sure that we get the
    +#              right database correlations and the right time sliders.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Mar 17 09:58:35 PDT 2005
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Mar 23 09:23:53 PDT 2005
    +#    I made it truncate the window information so the scalable rendering flag
    +#    is not included. This way, I don't need mode-specific baselines. I also
    +#    added 2 new test cases to check the window information because one of
    +#    the baseline images in test case 2 was incorrect. Finally, I added code
    +#    in the CleanSlate function to make sure that time locking is off. That
    +#    was what caused the incorrect test case image.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Eric Brugger, Fri Jul 30 13:53:48 PDT 2010
    +#    I increased the number of lines of information it prints to 18.
    +#
    +#    Eric Brugger, Tue Nov 12 10:27:55 PST 2024
    +#    I modified the coding that skips some tests in scalable rendering mode
    +#    to also skip the SetTimeSliderState call as well.
    +#
    +# ----------------------------------------------------------------------------
    +
    +import os
    +
    +#
    +# Look at the first few lines of the string representation of the
    +# WindowInformation to see the list of time sliders, etc.
    +#
    +def TestWindowInformation(testname):
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 18 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    for i in range(18):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    # Get the window information and convert it to a string.
    +    TestText(testname, s)
    +
    +
    +#
    +# Tests that the database correlations look a certain way.
    +#
    +def TestCorrelations(testname):
    +    names = GetDatabaseCorrelationNames()
    +    s = ""
    +    for name in names:
    +        c = GetDatabaseCorrelation(name)
    +        s = s + str(c) + "\n"
    +    TestText(testname, s)
    +
    +def CleanSlate():
    +    # Delete all but the first window.
    +    windows = list(GetGlobalAttributes().windows)
    +    windows.sort()
    +    for win in windows[1:]:
    +        SetActiveWindow(win)
    +        DeleteWindow()
    +
    +    # Delete all of the plots.
    +    DeleteAllPlots()
    +
    +    # Delete all of the database correlations:
    +    sources = GetGlobalAttributes().sources
    +    cL = GetDatabaseCorrelationNames()
    +    for name in cL:
    +        if name not in sources:
    +            DeleteDatabaseCorrelation(name)
    +
    +    # Close all of the sources.
    +    for src in sources:
    +        CloseDatabase(src)
    +
    +    # Make sure clone window on first reference is off.
    +    SetCloneWindowOnFirstRef(0)
    +
    +    # Make sure that window 1 is not locked in time!
    +    if GetWindowInformation().lockTime == 1:
    +        ToggleLockTime()
    +
    +#
    +# Returns whether all files in the list are in the current directory.
    +#
    +def FilesPresent(files):
    +    currentFileList = os.listdir(".")
    +    count = 0
    +    retval = 0
    +    if type(files) == type(()) or type(files) == type([]):
    +        for file in files:
    +            if file in currentFileList:
    +                count = count + 1
    +        retval = count == len(files)
    +    else:
    +        # We got here because the files argument was 
    +        # a single value instead of a tuple or list.
    +        if files in currentFileList:
    +            retval = 1
    +
    +    return retval
    +
    +#
    +# Waits for all files in the list to be present in the current directory.
    +#
    +def WaitForFilesToBePresent(files):
    +    while(FilesPresent(files) == 0): sleep(1)
    +
    +#
    +# Remove all .visit files from the current directory.
    +#
    +def RemoveAllVisItFiles():
    +    currentFileList = os.listdir(".")
    +    for file in currentFileList:
    +        if file[-5:] == ".silo" or file[-6:] == ".visit":
    +            try:
    +                os.unlink(file)
    +            except:
    +                # Ignore any exceptions
    +                pass
    +
    +#
    +# Set a better view for wave.
    +#
    +def SetWaveDatabaseView():
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.735926, 0.562657, 0.376604)
    +    v0.focus = (5, 0.753448, 2.5)
    +    v0.viewUp = (0.454745, 0.822858, -0.340752)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 5.6398
    +    v0.nearPlane = -11.2796
    +    v0.farPlane = 11.2796
    +    v0.imagePan = (0.0589778, 0.0898255)
    +    v0.imageZoom = 1.32552
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    SetView3D(v0)
    +
    +#
    +# Set the active window and also set the window's background color so it's
    +# easy to tell which window we're looking at.
    +#
    +def GotoWindow(win):
    +    SetActiveWindow(win)
    +
    +    a = GetAnnotationAttributes()
    +    if win == 1:
    +        a.backgroundColor = (255,200,200,255)
    +    elif win == 2:
    +        a.backgroundColor = (200,255,200,255)
    +    else:
    +        a.backgroundColor = (200,200,255,255)
    +    SetAnnotationAttributes(a)
    +
    +#
    +# Test that we get an active time slider when a correlation is modified
    +# as a result of locking the window in time.
    +#
    +def test1(testindex):
    +    TestSection("Make sure we get a time slider when locking a window "
    +                "causes the most suitable correlation to be altered.")
    +    SetWindowLayout(4)
    +
    +    # Turn on "CloneWindowOnFirstRef"
    +    SetCloneWindowOnFirstRef(1)
    +
    +    # Copy wave.visit to this directory a few times.
    +    f = open(silo_data_path("wave.visit") , "rt")
    +    lines = f.readlines()
    +    f.close()
    +    f0 = open("wave.visit","wt")
    +    f1 = open("wave1.visit","wt")
    +    f2 = open("wave2.visit","wt")
    +    for line in lines:
    +        f0.write(silo_data_path(line))
    +        f1.write(silo_data_path(line))
    +        f2.write(silo_data_path(line))
    +    f0.close()
    +    f1.close()
    +    f2.close()
    +
    +    GotoWindow(1)
    +    OpenDatabase("wave.visit")
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    SetWaveDatabaseView()
    +    Test("timelock_%02d" % testindex)
    +    TestWindowInformation("timelock_%02d" % (testindex+1))
    +
    +    # Go to the next window. The plot should be copied. Replace the database
    +    # before we draw the plots so we'll be using a different database.
    +    GotoWindow(2)
    +    ReplaceDatabase("wave1.visit")
    +    DrawPlots()
    +    Test("timelock_%02d" % (testindex+2))
    +    TestWindowInformation("timelock_%02d" % (testindex+3))
    +
    +    # Go to the next window. The plot should be copied. Replace the database
    +    # before we draw the plots so we'll be using a different database.
    +    GotoWindow(3)
    +    ReplaceDatabase("wave2.visit")
    +    DrawPlots()
    +    Test("timelock_%02d" % (testindex+4))
    +    TestWindowInformation("timelock_%02d" % (testindex+5))
    +
    +    # Lock window 1 and 2. This should result in a database correlation.
    +    GotoWindow(1)
    +    ToggleLockTime()
    +    GotoWindow(2)
    +    ToggleLockTime()
    +    TestCorrelations("timelock_%02d" % (testindex+6))
    +
    +    # Lock window 3 in time now also. This should result in the new database
    +    # correlation being modified to accomodate window 3's database.
    +    GotoWindow(3)
    +    ToggleLockTime()
    +    TestCorrelations("timelock_%02d" % (testindex+7))
    +
    +    # Change time states and make sure all windows look the same.
    +    SetTimeSliderState(36)
    +    Test("timelock_%02d" % (testindex+8))
    +    TestWindowInformation("timelock_%02d" % (testindex+9))
    +    GotoWindow(2)
    +    Test("timelock_%02d" % (testindex+10))
    +    TestWindowInformation("timelock_%02d" % (testindex+11))
    +    GotoWindow(1)
    +    Test("timelock_%02d" % (testindex+12))
    +    TestWindowInformation("timelock_%02d" % (testindex+13))
    +
    +    # Get ready for the next test.
    +    CleanSlate()
    +    RemoveAllVisItFiles()
    +
    +    return testindex + 14
    +
    +#
    +# Test that time locking works for multiple windows. What we're really
    +# testing is that the database is copied to the newly referenced window
    +# even though we have "CloneWindowOnFirstRef" set to off. Defect '6053.
    +#
    +def test2(testindex):
    +    TestSection("Test that the time slider works when time locking multiple windows")
    +
    +    a = GetAnnotationAttributes()
    +    b = GetAnnotationAttributes()
    +    SetAnnotationAttributes(b)
    +
    +    SetCloneWindowOnFirstRef(0)
    +    OpenDatabase(data_path("pdb_test_data/dbA00.pdb"))
    +
    +    AddPlot("FilledBoundary", "material(mesh)")
    +    DrawPlots()
    +    Test("timelock_%02d" % testindex)
    +
    +    SetWindowLayout(2)
    +    GotoWindow(2)
    +    SetAnnotationAttributes(b)
    +    TestWindowInformation("timelock_%02d" % (testindex+1))
    +    AddPlot("Pseudocolor", "mesh/nummm")
    +    DrawPlots()
    +    Test("timelock_%02d" % (testindex+2))
    +
    +    # Turn on time locking in both windows.
    +    GotoWindow(1)
    +    ToggleLockTime()
    +    GotoWindow(2)
    +    ToggleLockTime()
    +
    +    # See if both windows updated when we changed the time in window 2.
    +    # This crashes in scalable,parallel,icet.
    +    if TestEnv.params["scalable"] == False:
    +        SetTimeSliderState(5)
    +        Test("timelock_%02d" % (testindex+3))
    +        TestWindowInformation("timelock_%02d" % (testindex+4))
    +        GotoWindow(1)
    +        ResetView()
    +        Test("timelock_%02d" % (testindex+5))
    +        TestWindowInformation("timelock_%02d" % (testindex+6))
    +
    +    # Get ready for the next test.
    +    CleanSlate()
    +    SetAnnotationAttributes(a)
    +
    +    return testindex + 7
    +
    +#
    +# Make sure that replacing into a time-locked window updates the database
    +# correlation.
    +#
    +def test3(testindex):
    +    TestSection("Make sure replacing into a time-locked window updates "
    +                "the database correlation.")
    +    SetWindowLayout(4)
    +
    +    # Turn on "CloneWindowOnFirstRef"
    +    SetCloneWindowOnFirstRef(1)
    +
    +    dbs = (silo_data_path("wave.visit") ,
    +           silo_data_path("wave_tv.visit") )
    +    OpenDatabase(dbs[0])
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    SetWaveDatabaseView()
    +    Test("timelock_%02d" % testindex)
    +
    +    GotoWindow(2)
    +    DeleteAllPlots()
    +    AddPlot("FilledBoundary", "Material")
    +    DrawPlots()
    +    Test("timelock_%02d" % (testindex+1))
    +    ToggleLockTime()
    +    TestWindowInformation("timelock_%02d" % (testindex+2))
    +    GotoWindow(1)
    +    ToggleLockTime()
    +    TestWindowInformation("timelock_%02d" % (testindex+3))
    +
    +    # Go to window 3 and make sure that certain fields were copied.
    +    # Window 3 should already be locked in time and it should contain
    +    # a Pseudocolor plot.
    +    GotoWindow(3)
    +    TestWindowInformation("timelock_%02d" % (testindex+4))
    +
    +    # Replace the database with wave_tv so we can make sure that VisIt can
    +    # create correlations when it needs to during a replace. Note that we
    +    # also replace with a later time state. This should cause the time states
    +    # for the other windows to be updated.
    +    ReplaceDatabase(dbs[1], 36)
    +    TestCorrelations("timelock_%02d" % (testindex+5))
    +    DrawPlots()
    +    Test("timelock_%02d" % (testindex+6))
    +
    +    # Test that we change change to the transient variable.
    +    ChangeActivePlotsVar("transient")
    +    Test("timelock_%02d" % (testindex+7))
    +
    +    # Make sure that the time state changed in windows 1,2.
    +    GotoWindow(2)
    +    Test("timelock_%02d" % (testindex+8))
    +    TestWindowInformation("timelock_%02d" % (testindex+9))
    +    GotoWindow(1)
    +    Test("timelock_%02d" % (testindex+10))
    +    TestWindowInformation("timelock_%02d" % (testindex+11))
    +
    +    # Get ready for the next test.
    +    CleanSlate()
    +
    +    return testindex + 12
    +
    +#
    +# Run the tests
    +#
    +try:
    +    testindex = 0
    +    testindex = test1(testindex)
    +    testindex = test2(testindex)
    +    testindex = test3(testindex)
    +except:
    +    RemoveAllVisItFiles()
    +    raise
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_val4mat.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_val4mat.html new file mode 100644 index 000000000..2654f6f5f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_val4mat.html @@ -0,0 +1,66 @@ + +Results for hybrid/val4mat.py + +

    Results of VisIt Regression Test - hybrid/val4mat

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    value_for_mat_10.000.00
    value_for_mat_20.000.00
    value_for_mat_30.000.00
    value_for_mat_post_ghost_10.000.00
    value_for_mat_post_ghost_20.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_val4mat_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_val4mat_py.html new file mode 100644 index 000000000..0211fe87f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_val4mat_py.html @@ -0,0 +1,76 @@ +hybrid/val4mat.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  val4mat.py
    +#
    +#  Tests:      mesh      - 3D structured, multi domain
    +#              plots     - pc
    +#
    +#  Notes:      Migrated value_for_material tests from expressions.py
    +#              and added post ghost test cases. 
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Tuesday 12, 2008
    +#
    +#  Modifiations:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("thinplane.silo"))
    +
    +atts = PseudocolorAttributes()
    +atts.minFlag = 1
    +atts.min = 0.0
    +atts.maxFlag = 1
    +atts.max = 10.0
    +SetDefaultPlotOptions(atts)
    +
    +# view the per material values for each of the 3 materials
    +
    +DefineScalarExpression("vfm_1", "value_for_material(den,1)")
    +AddPlot("Pseudocolor", "vfm_1")
    +DrawPlots()
    +Test("value_for_mat_1")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("vfm_2", "value_for_material(den,2)")
    +AddPlot("Pseudocolor", "vfm_2")
    +DrawPlots()
    +Test("value_for_mat_2")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("vfm_3", "value_for_material(den,\"3\")")
    +AddPlot("Pseudocolor", "vfm_3")
    +DrawPlots()
    +Test("value_for_mat_3")
    +
    +
    +ChangeActivePlotsVar("vfm_2")
    +
    +# test w/ ghost zones (switch vfm_2 to nodal)
    +atts = PseudocolorAttributes(1)
    +atts.minFlag = 1
    +atts.min = 0.0
    +atts.maxFlag = 1
    +atts.max = 10.0
    +atts.centering = atts.Nodal
    +SetPlotOptions(atts)
    +DrawPlots()
    +Test("value_for_mat_post_ghost_1")
    +
    +# make sure post ghost caching doesn't tank non ghost results
    +atts = PseudocolorAttributes(1)
    +atts.minFlag = 1
    +atts.min = 0.0
    +atts.maxFlag = 1
    +atts.max = 10.0
    +atts.centering = atts.Zonal
    +SetPlotOptions(atts)
    +DrawPlots()
    +Test("value_for_mat_post_ghost_2")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_vtkm.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_vtkm.html new file mode 100644 index 000000000..bf03f6b39 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_vtkm.html @@ -0,0 +1,372 @@ + +Results for hybrid/vtkm.py + +

    Results of VisIt Regression Test - hybrid/vtkm

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    vtkm_rect2d_010.000.00
    vtkm_rect2d_020.000.00
    vtkm_rect3d_010.000.00
    vtkm_rect3d_01a0.000.00
    vtkm_rect3d_020.000.00
    vtkm_rect3d_030.000.00
    vtkm_rect3d_040.000.00
    vtkm_rect3d_050.000.00
    vtkm_rect3d_060.000.00
    vtkm_rect3d_070.000.00
    vtkm_rect3d_080.000.00
    vtkm_rect3d_090.000.00
    vtkm_rect3d_100.000.00
    vtkm_curv2d_010.000.00
    vtkm_curv2d_020.000.00
    vtkm_curv3d_010.000.00
    vtkm_curv3d_01a0.000.00
    vtkm_curv3d_020.000.00
    vtkm_curv3d_030.000.00
    vtkm_curv3d_040.000.00
    vtkm_curv3d_050.000.00
    vtkm_curv3d_060.000.00
    vtkm_curv3d_070.000.00
    vtkm_curv3d_080.000.00
    vtkm_curv3d_090.000.00
    vtkm_curv3d_100.000.00
    vtkm_ucd2d_010.000.00
    vtkm_ucd2d_020.000.00
    vtkm_ucd3d_010.000.00
    vtkm_ucd3d_01a0.000.00
    vtkm_ucd3d_020.000.00
    vtkm_ucd3d_030.000.00
    vtkm_ucd3d_040.000.00
    vtkm_ucd3d_050.000.00
    vtkm_ucd3d_060.000.00
    vtkm_ucd3d_070.000.00
    vtkm_ucd3d_080.000.00
    vtkm_globe_010.000.00
    vtkm_globe_020.000.00
    vtkm_globe_030.000.00
    vtkm_globe_040.000.00
    vtkm_globe_050.000.00
    vtkm_globe_060.000.00
    vtkm_globe_070.000.00
    vtkm_globe_080.000.00
    vtkm_globe_090.000.00
    vtkm_globe_100.000.00
    vtkm_globe_110.000.00
    vtkm_multi_ucd3d_010.000.00
    vtkm_multi_ucd3d_020.000.00
    vtkm_multi_ucd3d_030.000.00
    vtkm_multi_ucd3d_040.000.00
    vtkm_multi_ucd3d_050.000.00
    vtkm_multi_ucd3d_060.000.00
    vtkm_multi_ucd3d_070.000.00
    vtkm_multi_ucd3d_080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/hybrid_vtkm_py.html b/2024-12-12-22:00/poodle_trunk_serial/hybrid_vtkm_py.html new file mode 100644 index 000000000..0ec396ec0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/hybrid_vtkm_py.html @@ -0,0 +1,779 @@ +hybrid/vtkm.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  vtkm.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, single domain
    +#                          3D curvilinear, single domain
    +#                          3D unstructured, single domain
    +#                          3D unstructured, multi domain
    +#              plots     - Contour, Pseudocolor
    +#              operators - Isosurface, Isovolume, Slice, Threshold
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       Wed Sep 19 12:18:14 PDT 2018
    +#
    +#  Modifications:
    +#    James Kress, Tue Oct  5 14:00:28 PST 2021
    +#    Adding additional threshold tests.
    +#
    +#    Eric Brugger, Fri Feb 24 14:57:15 PST 2023
    +#    Added additional tests.
    +#
    +# ----------------------------------------------------------------------------
    +
    +SetBackendType("vtkm")
    +
    +#
    +# Test a 2d rectilinear mesh.
    +#
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +Test("vtkm_rect2d_01")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Contour", "d")
    +DrawPlots()
    +
    +Test("vtkm_rect2d_02")
    +
    +#
    +# Test a 3d rectilinear mesh.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.4854, 0.3984, 0.7782)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.1209, 0.9122, -0.3916)
    +v.parallelScale = 0.8660
    +v.nearPlane = -1.7321
    +v.farPlane = 1.7321
    +SetView3D(v)
    +
    +Test("vtkm_rect3d_01")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Contour", "d")
    +DrawPlots()
    +
    +Test("vtkm_rect3d_01a")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0.5, 0.5, 0.5)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_rect3d_02")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0.5, 0.5, 0.5)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_rect3d_03")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_rect3d_04")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_rect3d_05")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (0.2)
    +ThresholdAtts.upperBounds = (0.59)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_rect3d_06")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (1)
    +ThresholdAtts.lowerBounds = (-0.2)
    +ThresholdAtts.upperBounds = (0.39)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_rect3d_07")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (-0.2)
    +ThresholdAtts.upperBounds = (0.39)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_rect3d_08")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isovolume")
    +IsovolumeAtts = IsovolumeAttributes()
    +IsovolumeAtts.lbound = -0.2
    +IsovolumeAtts.ubound = 0.39
    +IsovolumeAtts.variable = "u"
    +SetOperatorOptions(IsovolumeAtts)
    +DrawPlots()
    +
    +Test("vtkm_rect3d_09")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isovolume")
    +IsovolumeAtts = IsovolumeAttributes()
    +IsovolumeAtts.lbound = -0.2
    +IsovolumeAtts.ubound = 0.39
    +IsovolumeAtts.variable = "default"
    +SetOperatorOptions(IsovolumeAtts)
    +DrawPlots()
    +
    +Test("vtkm_rect3d_10")
    +
    +#
    +# Test a 2d curvilinear mesh.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +Test("vtkm_curv2d_01")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Contour", "d")
    +DrawPlots()
    +
    +Test("vtkm_curv2d_02")
    +
    +#
    +# Test a 3d curvilinear mesh.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.4854, 0.3984, 0.7782)
    +v.focus = (0., 2.5, 15.)
    +v.viewUp = (-0.1209, 0.9122, -0.3916)
    +v.parallelScale = 16.0078
    +v.nearPlane = -32.0156
    +v.farPlane = 32.0156
    +SetView3D(v)
    +
    +Test("vtkm_curv3d_01")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Contour", "d")
    +DrawPlots()
    +
    +Test("vtkm_curv3d_01a")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0., 2.5, 15.)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_curv3d_02")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0., 2.5, 15.)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_curv3d_03")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_curv3d_04")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_curv3d_05")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (1)
    +ThresholdAtts.upperBounds = (3)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_curv3d_06")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (1)
    +ThresholdAtts.lowerBounds = (-0.5)
    +ThresholdAtts.upperBounds = (0.5)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_curv3d_07")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (-0.5)
    +ThresholdAtts.upperBounds = (0.5)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_curv3d_08")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isovolume")
    +IsovolumeAtts = IsovolumeAttributes()
    +IsovolumeAtts.lbound = -0.5
    +IsovolumeAtts.ubound = 0.5
    +IsovolumeAtts.variable = "u"
    +SetOperatorOptions(IsovolumeAtts)
    +DrawPlots()
    +
    +Test("vtkm_curv3d_09")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isovolume")
    +IsovolumeAtts = IsovolumeAttributes()
    +IsovolumeAtts.lbound = -0.5
    +IsovolumeAtts.ubound = 0.5
    +IsovolumeAtts.variable = "default"
    +SetOperatorOptions(IsovolumeAtts)
    +DrawPlots()
    +
    +Test("vtkm_curv3d_10")
    +
    +#
    +# Test a 2d unstructured mesh.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("ucd2d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +Test("vtkm_ucd2d_01")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Contour", "d")
    +DrawPlots()
    +
    +Test("vtkm_ucd2d_02")
    +
    +#
    +# Test a 3d unstructured mesh.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("ucd3d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.4854, 0.3984, 0.7782)
    +v.focus = (0., 2.5, 10.)
    +v.viewUp = (-0.1209, 0.9122, -0.3916)
    +v.parallelScale = 11.4564
    +v.nearPlane = -22.9129
    +v.farPlane = 22.9129
    +SetView3D(v)
    +
    +Test("vtkm_ucd3d_01")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Contour", "d")
    +DrawPlots()
    +
    +Test("vtkm_ucd3d_01a")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0., 2.5, 10.)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_ucd3d_02")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0., 2.5, 10.)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_ucd3d_03")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_ucd3d_04")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_ucd3d_05")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (2.5)
    +ThresholdAtts.upperBounds = (4.0)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_ucd3d_06")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (1)
    +ThresholdAtts.lowerBounds = (0.8)
    +ThresholdAtts.upperBounds = (0.95)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_ucd3d_07")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (0.8)
    +ThresholdAtts.upperBounds = (0.95)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_ucd3d_08")
    +
    +#
    +# Test 3d unstructured with zoo elements.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (-0.3057, 0.7186, 0.6247)
    +v.focus = (0., 0., 0.)
    +v.viewUp = (0.5003, 0.6794, -0.5367)
    +v.parallelScale = 17.3205
    +v.nearPlane = -34.641
    +v.farPlane = 34.641
    +SetView3D(v)
    +
    +Test("vtkm_globe_01")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Contour", "dx")
    +DrawPlots()
    +
    +Test("vtkm_globe_02")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "v")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0., 0., 0.)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_globe_03")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "dx")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0., 0., 0.)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_globe_04")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_globe_05")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "dx")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_globe_06")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "dx")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (-2.0)
    +ThresholdAtts.upperBounds = (2.0)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_globe_07")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (1)
    +ThresholdAtts.lowerBounds = (-5.0)
    +ThresholdAtts.upperBounds = (5.0)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_globe_08")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (-5.0)
    +ThresholdAtts.upperBounds = (5.0)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_globe_09")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "dx")
    +AddOperator("Isovolume")
    +atts = IsovolumeAttributes()
    +atts.lbound = -5.0
    +atts.ubound = 5.0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_globe_10")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isovolume")
    +atts = IsovolumeAttributes()
    +atts.lbound = -5.0
    +atts.ubound = 5.0
    +atts.variable = "default"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_globe_11")
    +
    +#
    +# Test a multi-domain unstructured mesh.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.4854, 0.3984, 0.7782)
    +v.focus = (0., 2.5, 10.)
    +v.viewUp = (-0.1209, 0.9122, -0.3916)
    +v.parallelScale = 11.4564
    +v.nearPlane = -22.9129
    +v.farPlane = 22.9129
    +SetView3D(v)
    +
    +Test("vtkm_multi_ucd3d_01")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0., 2.5, 10.)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_multi_ucd3d_02")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (0., 1., 0.)
    +atts.originType = atts.Point
    +atts.originPoint = (0., 2.5, 10.)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_multi_ucd3d_03")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_multi_ucd3d_04")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isosurface")
    +atts = IsosurfaceAttributes()
    +atts.contourNLevels = 10
    +atts.contourMethod = atts.Level
    +atts.minFlag = 0
    +atts.maxFlag = 0
    +atts.variable = "u"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("vtkm_multi_ucd3d_05")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (2.5)
    +ThresholdAtts.upperBounds = (4.0)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_multi_ucd3d_06")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (1)
    +ThresholdAtts.lowerBounds = (0.995)
    +ThresholdAtts.upperBounds = (0.9985)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_multi_ucd3d_07")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (0.995)
    +ThresholdAtts.upperBounds = (0.9985)
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +Test("vtkm_multi_ucd3d_08")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/index.html b/2024-12-12-22:00/poodle_trunk_serial/index.html new file mode 100644 index 000000000..ac9ab6d71 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/index.html @@ -0,0 +1,2467 @@ + + + + + VisIt Regression Results ( poodle,trunk,serial ) - 2024:12:12:22:27:42 + + + + + + + + + + +

    Results of VisIt Regression Test ( poodle,trunk,serial )

    +Test suite run started at 2024:12:12:22:27:42.
    +(Click on table header to sort) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    IndexCategory Test File Status Runtime (sec)
    0databasesANSYS.pySucceeded8
    1databasesCGNS.pySucceeded11
    44databasessilo_altdriver.pySucceeded34
    2databasesCale.pySucceeded4
    3databasesFITS.pySucceeded5
    45databasessilo_datatypes.pySucceeded18
    46databasessinglemulti.pySucceeded4
    47databasessw4.pySucceeded7
    48databasesunv.pySucceeded5
    49databasestimesliders.pySucceeded6
    50databasesuintah.pySucceeded4
    4databasesFMS.pySucceeded76
    5databasesGDAL.pySucceeded13
    6databasesRAW.pySucceeded5
    7databasesSPCTH.pySucceeded4
    8databasesWData.pySucceeded4
    9databasesXmdv.pySucceeded5
    51databasesblueprint.pySucceeded With Skips94
    10databasesbov.pySucceeded21
    52databasesxdmf.pySucceeded10
    11databasesclaw.pySucceeded4
    53databasesxyz.pySucceeded5
    12databasescurve.pySucceeded4
    54databasesANALYZE.pySucceeded5
    13databasesddcMD.pySucceeded8
    14databasesdiff.pySkipped(skipped)
    55databasesChombo.pySucceeded6
    15databasesffp.pySucceeded5
    56databasesFluent.pySucceeded4
    16databasesflash.pySucceeded3
    57databasesNASTRAN.pySucceeded10
    17databasesimage.pySucceeded4
    18databaseslata.pySucceeded7
    58databasesOpenFOAM.pySucceeded14
    59databasesPATRAN.pySucceeded9
    19databasesleos.pySucceeded16
    20databaseslines.pySucceeded4
    21databasesmetadata.pySucceeded9
    60databasesPLOT3D.pySucceeded46
    61databasesProteinDataBank.pySucceeded11
    62databasesVelodyne.pySucceeded5
    63databasesXolotl.pySucceeded5
    64databasesactivesource.pySucceeded4
    65databasesavsucd.pySucceeded4
    66databasesboxlib.pySucceeded7
    67databasesclosedatabase.pySucceeded4
    68databasescorrelation.pySucceeded10
    69databasesempty_db.pySucceeded3
    70databasesexodus.pySucceeded With Skips11
    71databasesexport_db.pySucceeded48
    22databasesmfem.pySucceeded253
    72databasesglobal_node_ids.pySucceeded10
    73databasesh5part.pySucceeded4
    23databasesmili.pySucceeded16
    74databaseshistory.pySucceeded5
    75databasesimgvol.pySucceeded5
    24databasesmiranda.pySucceeded14
    25databasesmoab.pySucceeded4
    76databaseskulllite.pySucceeded5
    26databasesmulti_format.pySucceeded4
    77databaseswave_tv.pySucceeded4
    27databasesmulti_format2.pySucceeded4
    78databasesxform_precision.pySucceeded4
    79databaseszipwrapper.pySucceeded6
    28databasesnetcdf.pySucceeded9
    80databasesEnSight.pySucceeded6
    29databasesobj.pySucceeded5
    30databasesoldsilo.pySucceeded4
    81databasestecplot.pySucceeded9
    31databasesopenPMD.pySucceeded4
    82databasesadios2.pySucceeded4
    32databasesopenexr.pySucceeded4
    83databasesCurve3D.pySucceeded4
    33databasesoverlink.pySucceeded5
    84databasesblueprint_axom_klee.pySucceeded23
    34databasespdbdatabase.pySucceeded20
    35databasespixie.pySucceeded6
    36databasesvtk.pySucceeded17
    37databasesrect.pySucceeded4
    38databasesreopen.pySucceeded8
    39databasessami.pySucceeded5
    40databasessamrai.pySucceeded11
    41databasesscale_mesh.pySucceeded3
    85databasesblueprint_export.pySucceeded140
    42databasesshapefile.pySucceeded10
    86databasesplaintext.pySucceeded5
    87databaseschgcar.pySucceeded6
    88expressionsghost_zoneid_expr.pySucceeded4
    43databasessilo.pySucceeded With Skips36
    89expressionstensor_expr.pySucceeded6
    90expressionsmath_expr.pySucceeded4
    132hybridlineout.pySucceeded18
    133hybridlocktime.pySucceeded4
    91expressionsglobal_stats.pySucceeded8
    134hybridmath_expr.pySucceeded4
    92faulttolerancebadfile.pySucceeded3
    93faulttolerancecheckmode.pySucceeded2
    135hybridmatsel.pySucceeded4
    94faulttolerancesavewindow.pySucceeded5
    136hybridmerge_tree.pySucceeded7
    95hybridddf.pySucceeded5
    137hybridmesh_quality.pySucceeded5
    138hybridmir_cache.pySucceeded4
    96hybridlocus.pySucceeded14
    139hybridmissingdata.pySucceeded6
    97hybridmatvf.pySucceeded6
    140hybridmultivar.pySucceeded4
    98hybridmir.pySucceeded9
    99hybridmovie.pySkipped(skipped)
    141hybridpos_cmfe.pySucceeded7
    100hybridqcrit.pySucceeded4
    142hybridpy_exprs.pySucceeded5
    101hybridsil.pySucceeded4
    143hybridreplace.pySucceeded5
    144hybridselections.pySkipped(skipped)
    145hybridselections_pp.pySkipped(skipped)
    102hybridsimplify_mixed.pySucceeded5
    146meshtypecsg.pySucceeded10
    103hybridspecmf.pySucceeded4
    147meshtypeglobe.pySucceeded5
    104hybridsymm.pySucceeded6
    148meshtypepoint.pySucceeded5
    105hybridtime_cmfe.pySucceeded6
    149meshtypearbpoly.pySucceeded5
    106hybridtime_deriv_cmfe.pySucceeded4
    150meshtypedegen_mesh.pySucceeded7
    107hybridtime_iteration.pySucceeded6
    151meshtypeemptydomains.pySucceeded5
    108hybridval4mat.pySucceeded4
    152meshtyperect3d.pySucceeded4
    109hybridvtkm.pySucceeded14
    153operatorsbox.pySucceeded5
    110hybridtimelock.pySucceeded7
    154operatorsclip.pySucceeded7
    111hybridcinema-a.pySucceeded16
    112hybridcinema-c.pySucceeded35
    113hybridcleanzonesonly.pySucceeded5
    114hybridclonecopy.pySkipped(skipped)
    115hybridclonefirstref.pySucceeded4
    116hybridconditional.pySucceeded4
    117hybridconn_cmfe.pySucceeded5
    118hybridcoord_expr.pySucceeded5
    119hybridcurve_anim.pySucceeded4
    120hybridcurve_expressions.pySucceeded4
    121hybridcylindrical_radius.pySucceeded5
    155operatorslcs.pySucceeded183
    122hybriddefvar_anim.pySucceeded7
    123hybridexpr2engine.pySucceeded4
    124hybridexprList.pySucceeded4
    125hybridexpr_cmfe.pySucceeded4
    156operatorsremap.pySucceeded41
    126hybridexpressions.pySucceeded11
    157operatorsslice.pySucceeded10
    127hybridfield_operators.pySucceeded7
    158operatorstube.pySucceeded4
    128hybridghost_node.pySucceeded4
    159operatorsamr_stitch.pySucceeded5
    129hybridimage_proc.pySucceeded4
    160operatorscart_proj.pySucceeded4
    161operatorscracksclipper.pySucceeded4
    130hybridkeyframe.pySucceeded14
    162operatorsdefer_expr.pySucceeded6
    131hybridlambda2.pySucceeded5
    163operatorsdisplace.pySucceeded5
    164operatorsdual_mesh.pySucceeded With Skips5
    165operatorselevate.pySucceeded6
    166operatorsex_surf.pySucceeded4
    167operatorsexplode.pySucceeded15
    168operatorsic_integration.pySucceeded6
    169operatorsic_pathlines.pySucceeded5
    176operatorslcs_ic_2.pySucceeded111
    170operatorsic_pics.pySucceeded52
    171operatorsic_termination.pySucceeded4
    172operatorsindexselect.pySucceeded10
    173operatorsinverse_ghost_zone.pySucceeded4
    174operatorsisovolume.pySucceeded8
    177operatorslcs_lc_1.pySucceeded136
    175operatorslcs_ic_1.pySucceeded111
    220queriesIntegralCurveInfo.pySkipped(skipped)
    221queriesavg_value.pySucceeded With Skips6
    222queriesbestfitline.pySucceeded8
    178operatorslcs_lc_2.pySucceeded114
    223queriescasetest.pySucceeded4
    179operatorsmoveoperators.pySucceeded6
    224queriescentroid.pySucceeded5
    180operatorsmultires.pySucceeded4
    225queriesconncomp.pySucceeded7
    226queriesconsistencyChecks.pySucceeded5
    181operatorsonionpeel.pySucceeded19
    227queriescurvature.pySucceeded4
    182operatorsoperators.pySucceeded5
    183operatorspersistent_particles.pySucceeded7
    228queriesdatabase.pySucceeded18
    229queriesflatten.pySkipped(skipped)
    184operatorsradial_resample.pySucceeded5
    230queriesgridinformation.pySucceeded5
    185operatorsresample.pySucceeded4
    186operatorsrevolve.pySucceeded4
    231querieshohlraum.pySucceeded13
    187operatorssph_resample.pySucceeded4
    232querieskurtosis.pySucceeded4
    188operatorstessellate.pySucceeded8
    189operatorsthreeslice.pySucceeded4
    190operatorsthreshold.pySucceeded6
    233queriesl2norm.pySucceeded36
    191operatorstransform.pySucceeded5
    234querieslength.pySucceeded5
    192operatorsextrudeStacked.pySucceeded10
    235queriesline_scan.pySucceeded31
    193operatorsic_geometry.pySucceeded19
    236queriespickarray.pySucceeded5
    237queriespickcleanzonesonly.pySucceeded4
    238queriespy_queries.pySucceeded4
    194operatorsic_streamlines.pySucceeded75
    195operatorsreflect.pySucceeded8
    239queriesqueriesOverTime.pySucceeded57
    240queriesqueryMultiWindow.pySucceeded5
    196plotscurve.pySucceeded9
    241queriesrevolved_surface_area.pySucceeded4
    242queriessurface_area_over_time.pySucceeded47
    243queriesvariable_sum_volume.pySucceeded4
    244querieswatertight.pySucceeded3
    245querieserror_queries.pySucceeded4
    246queriespickNamedArgs.pySucceeded7
    247queriesxrayimage.pySucceeded100
    248quickrecipesview.pySucceeded5
    197plotslabel.pySucceeded248
    249quickrecipescl_args.pySucceeded2
    198plotsmesh.pySucceeded8
    250quickrecipescolortables.pySucceeded4
    199plotscontour.pySucceeded7
    251quickrecipesexpressions.pySucceeded3
    252quickrecipeshow_to_start.pySkipped(skipped)
    253quickrecipesopening_compute_engine.pySkipped(skipped)
    200plotsfilledboundary.pySucceeded5
    254quickrecipesoperators.pySucceeded9
    201plotsmesh_c.pySucceeded9
    255quickrecipessaving_images.pySucceeded3
    256quickrecipessubsetting.pySucceeded4
    202plotsmolecule.pySucceeded6
    257quickrecipesworking_with_annotations.pySucceeded4
    203plotsmulticolor.pySucceeded6
    258quickrecipesworking_with_dbs.pySucceeded3
    204plotsparcoords.pySucceeded5
    259quickrecipesworking_with_plots.pySucceeded5
    205plotspseudocolor.pySucceeded12
    260quickrecipesquantitative_operations.pySucceeded13
    206plotsscatter.pySucceeded8
    261renderingimage.pySucceeded4
    207plotssinglecolor.pySucceeded4
    262renderingview.pySucceeded10
    208plotssubset.pySucceeded6
    263renderingaxislabels.pySucceeded5
    209plotssurface.pySucceeded5
    264renderingaxistitles.pySucceeded5
    210plotstensor.pySucceeded5
    265renderingbigdata.pySucceeded4
    211plotstruecolor.pySucceeded3
    266renderingcolortexture.pySucceeded4
    212plotsvector.pySucceeded6
    267renderingcompositing.pySucceeded4
    268renderingevalcubic.pySucceeded5
    213plotsray_trace.pySucceeded18
    269renderinglegends.pySucceeded13
    270renderinglighting.pySucceeded4
    214plotsvolumePlot.pySucceeded26
    271renderingline2d.pySucceeded5
    272renderingline3d.pySucceeded5
    273renderingpixeldata.pySucceeded With Skips9
    215pluginsdatabasesVsInstall.pySucceeded48
    274renderingrenderpoints.pySucceeded14
    275renderingscalable2.pySucceeded5
    216pluginsoperatorsVsInstall.pySucceeded27
    276renderingscalable_c.pySucceeded28
    217pluginsplotsVsInstall.pySucceeded24
    277renderingshadows.pySucceeded4
    278renderingspecular.pySucceeded4
    279renderingtext2d.pySucceeded5
    280renderingtext3d.pySucceeded5
    218queriespick.pySucceeded With Skips55
    281renderingtimeslider.pySucceeded7
    219queriesscf.pySucceeded5
    282renderingviewChange.pySucceeded8
    308simulationbatch.pySucceeded20
    283renderingscalable.pySucceeded28
    284renderingospray.pyAcceptable5
    309simulationcsg.pySucceeded27
    285renderingvolume.pySucceeded4
    310simulationcurve.pySucceeded With Skips6
    286renderingvolume_rect_multiDomain.pySucceeded5
    311simulationlife.pySucceeded With Skips5
    287renderingvolume_rect_singleDomain.pySucceeded5
    312simulationmesh.pySucceeded6
    288renderingvolume_ucd_multiDomain.pySucceeded5
    313simulationpoint.pySucceeded6
    314simulationvar.pySucceeded5
    289renderingpointGlyphing.pySucceeded16
    315simulationaresamr.pySucceeded5
    290renderingtransparency.pySucceeded6
    316simulationdomainbounds.pySucceeded5
    291renderingannotation.pySucceeded7
    317simulationdomainlist.pySucceeded8
    292renderingsaveformats.pySucceeded8
    318simulationghostcells.pySucceeded8
    293renderingannot_macros.pyAcceptable9
    319simulationglobalids.pySucceeded12
    320simulationinterleave.pySucceeded8
    321simulationmandelbrot.pySucceeded23
    322simulationmaterial.pySucceeded6
    323simulationmaterialvar.pySucceeded9
    324simulationmultiblock.pySucceeded5
    294renderingoffscreensave.pySucceeded121
    325simulationpolyhedral.pySucceeded5
    295sessioncolortable.pySucceeded4
    326simulationscalar.pySucceeded5
    296sessioncorrelationsession.pySucceeded5
    327simulationspecies.pySucceeded6
    297sessionlegendproperties.pySucceeded4
    298sessionrect3d-contour.pySucceeded3
    328simulationucdcurve.pySucceeded20
    299sessionrestorewithsources.pySucceeded4
    329simulationunstructured.pySucceeded5
    300sessionselection.pySucceeded4
    330simulationupdateplots.pySucceeded7
    301sessionsessionexpression.pySucceeded4
    302sessionsessionview.pySucceeded7
    303sessionsimplekeyframe.pySucceeded6
    304sessiontextannot.pySucceeded4
    331simulationupdateplots_session.pySucceeded48
    305sessionview3d.pySucceeded3
    306sessionwavecontour.pySucceeded4
    332simulationzerocopy.pySucceeded With Skips19
    307simulationamr.pySucceeded5
    333unitannotation_objects.pySucceeded3
    334unitcompiler_warnings.pySkipped(skipped)
    335unitconvert2to3.pySucceeded3
    336unitlauncher.pySucceeded12
    337unitmrucache.pySucceeded3
    338unitnamescheme.pySucceeded3
    339unitprotocol.pySucceeded3
    340unitstringhelpers.pySucceeded3
    341unittest_value_simple.pySucceeded3
    342unitutility.pySucceeded2
    343unitdefault_methods.pySucceeded3
    344unitatts_assign.pySucceeded4
    +Test suite run complete at 2024:12:12:23:36:29 (4128 seconds). + diff --git a/2024-12-12-22:00/poodle_trunk_serial/js/jquery-3.6.1.min.js b/2024-12-12-22:00/poodle_trunk_serial/js/jquery-3.6.1.min.js new file mode 100644 index 000000000..2c69bc908 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/js/jquery-3.6.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",v.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 1) { + arr = arr.concat(checkCellColSpan(table, headerArr, row++)); + } else { + if (table.tHead.length == 1 || (cell.rowSpan > 1 || !r[row + 1])) { + arr.push(cell); + } + // headerArr[row] = (i+row); + } + } + return arr; + }; + + function checkHeaderMetadata(cell) { + if (($.metadata) && ($(cell).metadata().sorter === false)) { + return true; + }; + return false; + } + + function checkHeaderOptions(table, i) { + if ((table.config.headers[i]) && (table.config.headers[i].sorter === false)) { + return true; + }; + return false; + } + + function checkHeaderOptionsSortingLocked(table, i) { + if ((table.config.headers[i]) && (table.config.headers[i].lockedOrder)) return table.config.headers[i].lockedOrder; + return false; + } + + function applyWidget(table) { + var c = table.config.widgets; + var l = c.length; + for (var i = 0; i < l; i++) { + + getWidgetById(c[i]).format(table); + } + + } + + function getWidgetById(name) { + var l = widgets.length; + for (var i = 0; i < l; i++) { + if (widgets[i].id.toLowerCase() == name.toLowerCase()) { + return widgets[i]; + } + } + }; + + function formatSortingOrder(v) { + if (typeof(v) != "Number") { + return (v.toLowerCase() == "desc") ? 1 : 0; + } else { + return (v == 1) ? 1 : 0; + } + } + + function isValueInArray(v, a) { + var l = a.length; + for (var i = 0; i < l; i++) { + if (a[i][0] == v) { + return true; + } + } + return false; + } + + function setHeadersCss(table, $headers, list, css) { + // remove all header information + $headers.removeClass(css[0]).removeClass(css[1]); + + var h = []; + $headers.each(function (offset) { + if (!this.sortDisabled) { + h[this.column] = $(this); + } + }); + + var l = list.length; + for (var i = 0; i < l; i++) { + h[list[i][0]].addClass(css[list[i][1]]); + } + } + + function fixColumnWidth(table, $headers) { + var c = table.config; + if (c.widthFixed) { + var colgroup = $(''); + $("tr:first td", table.tBodies[0]).each(function () { + colgroup.append($('').css('width', $(this).width())); + }); + $(table).prepend(colgroup); + }; + } + + function updateHeaderSortCount(table, sortList) { + var c = table.config, + l = sortList.length; + for (var i = 0; i < l; i++) { + var s = sortList[i], + o = c.headerList[s[0]]; + o.count = s[1]; + o.count++; + } + } + + /* sorting methods */ + + var sortWrapper; + + function multisort(table, sortList, cache) { + + if (table.config.debug) { + var sortTime = new Date(); + } + + var dynamicExp = "sortWrapper = function(a,b) {", + l = sortList.length; + + // TODO: inline functions. + for (var i = 0; i < l; i++) { + + var c = sortList[i][0]; + var order = sortList[i][1]; + // var s = (getCachedSortType(table.config.parsers,c) == "text") ? + // ((order == 0) ? "sortText" : "sortTextDesc") : ((order == 0) ? + // "sortNumeric" : "sortNumericDesc"); + // var s = (table.config.parsers[c].type == "text") ? ((order == 0) + // ? makeSortText(c) : makeSortTextDesc(c)) : ((order == 0) ? + // makeSortNumeric(c) : makeSortNumericDesc(c)); + var s = (table.config.parsers[c].type == "text") ? ((order == 0) ? makeSortFunction("text", "asc", c) : makeSortFunction("text", "desc", c)) : ((order == 0) ? makeSortFunction("numeric", "asc", c) : makeSortFunction("numeric", "desc", c)); + var e = "e" + i; + + dynamicExp += "var " + e + " = " + s; // + "(a[" + c + "],b[" + c + // + "]); "; + dynamicExp += "if(" + e + ") { return " + e + "; } "; + dynamicExp += "else { "; + + } + + // if value is the same keep orignal order + var orgOrderCol = cache.normalized[0].length - 1; + dynamicExp += "return a[" + orgOrderCol + "]-b[" + orgOrderCol + "];"; + + for (var i = 0; i < l; i++) { + dynamicExp += "}; "; + } + + dynamicExp += "return 0; "; + dynamicExp += "}; "; + + if (table.config.debug) { + benchmark("Evaling expression:" + dynamicExp, new Date()); + } + + eval(dynamicExp); + + cache.normalized.sort(sortWrapper); + + if (table.config.debug) { + benchmark("Sorting on " + sortList.toString() + " and dir " + order + " time:", sortTime); + } + + return cache; + }; + + function makeSortFunction(type, direction, index) { + var a = "a[" + index + "]", + b = "b[" + index + "]"; + if (type == 'text' && direction == 'asc') { + return "(" + a + " == " + b + " ? 0 : (" + a + " === null ? Number.POSITIVE_INFINITY : (" + b + " === null ? Number.NEGATIVE_INFINITY : (" + a + " < " + b + ") ? -1 : 1 )));"; + } else if (type == 'text' && direction == 'desc') { + return "(" + a + " == " + b + " ? 0 : (" + a + " === null ? Number.POSITIVE_INFINITY : (" + b + " === null ? Number.NEGATIVE_INFINITY : (" + b + " < " + a + ") ? -1 : 1 )));"; + } else if (type == 'numeric' && direction == 'asc') { + return "(" + a + " === null && " + b + " === null) ? 0 :(" + a + " === null ? Number.POSITIVE_INFINITY : (" + b + " === null ? Number.NEGATIVE_INFINITY : " + a + " - " + b + "));"; + } else if (type == 'numeric' && direction == 'desc') { + return "(" + a + " === null && " + b + " === null) ? 0 :(" + a + " === null ? Number.POSITIVE_INFINITY : (" + b + " === null ? Number.NEGATIVE_INFINITY : " + b + " - " + a + "));"; + } + }; + + function makeSortText(i) { + return "((a[" + i + "] < b[" + i + "]) ? -1 : ((a[" + i + "] > b[" + i + "]) ? 1 : 0));"; + }; + + function makeSortTextDesc(i) { + return "((b[" + i + "] < a[" + i + "]) ? -1 : ((b[" + i + "] > a[" + i + "]) ? 1 : 0));"; + }; + + function makeSortNumeric(i) { + return "a[" + i + "]-b[" + i + "];"; + }; + + function makeSortNumericDesc(i) { + return "b[" + i + "]-a[" + i + "];"; + }; + + function sortText(a, b) { + if (table.config.sortLocaleCompare) return a.localeCompare(b); + return ((a < b) ? -1 : ((a > b) ? 1 : 0)); + }; + + function sortTextDesc(a, b) { + if (table.config.sortLocaleCompare) return b.localeCompare(a); + return ((b < a) ? -1 : ((b > a) ? 1 : 0)); + }; + + function sortNumeric(a, b) { + return a - b; + }; + + function sortNumericDesc(a, b) { + return b - a; + }; + + function getCachedSortType(parsers, i) { + return parsers[i].type; + }; /* public methods */ + this.construct = function (settings) { + return this.each(function () { + // if no thead or tbody quit. + if (!this.tHead || !this.tBodies) return; + // declare + var $this, $document, $headers, cache, config, shiftDown = 0, + sortOrder; + // new blank config object + this.config = {}; + // merge and extend. + config = $.extend(this.config, $.tablesorter.defaults, settings); + // store common expression for speed + $this = $(this); + // save the settings where they read + $.data(this, "tablesorter", config); + // build headers + $headers = buildHeaders(this); + // try to auto detect column type, and store in tables config + this.config.parsers = buildParserCache(this, $headers); + // build the cache for the tbody cells + cache = buildCache(this); + // get the css class names, could be done else where. + var sortCSS = [config.cssDesc, config.cssAsc]; + // fixate columns if the users supplies the fixedWidth option + fixColumnWidth(this); + // apply event handling to headers + // this is to big, perhaps break it out? + $headers.click( + + function (e) { + var totalRows = ($this[0].tBodies[0] && $this[0].tBodies[0].rows.length) || 0; + if (!this.sortDisabled && totalRows > 0) { + // Only call sortStart if sorting is + // enabled. + $this.trigger("sortStart"); + // store exp, for speed + var $cell = $(this); + // get current column index + var i = this.column; + // get current column sort order + this.order = this.count++ % 2; + // always sort on the locked order. + if(this.lockedOrder) this.order = this.lockedOrder; + + // user only whants to sort on one + // column + if (!e[config.sortMultiSortKey]) { + // flush the sort list + config.sortList = []; + if (config.sortForce != null) { + var a = config.sortForce; + for (var j = 0; j < a.length; j++) { + if (a[j][0] != i) { + config.sortList.push(a[j]); + } + } + } + // add column to sort list + config.sortList.push([i, this.order]); + // multi column sorting + } else { + // the user has clicked on an all + // ready sortet column. + if (isValueInArray(i, config.sortList)) { + // revers the sorting direction + // for all tables. + for (var j = 0; j < config.sortList.length; j++) { + var s = config.sortList[j], + o = config.headerList[s[0]]; + if (s[0] == i) { + o.count = s[1]; + o.count++; + s[1] = o.count % 2; + } + } + } else { + // add column to sort list array + config.sortList.push([i, this.order]); + } + }; + setTimeout(function () { + // set css for headers + setHeadersCss($this[0], $headers, config.sortList, sortCSS); + appendToTable( + $this[0], multisort( + $this[0], config.sortList, cache) + ); + }, 1); + // stop normal event by returning false + return false; + } + // cancel selection + }).mousedown(function () { + if (config.cancelSelection) { + this.onselectstart = function () { + return false + }; + return false; + } + }); + // apply easy methods that trigger binded events + $this.bind("update", function () { + var me = this; + setTimeout(function () { + // rebuild parsers. + me.config.parsers = buildParserCache( + me, $headers); + // rebuild the cache map + cache = buildCache(me); + }, 1); + }).bind("updateCell", function (e, cell) { + var config = this.config; + // get position from the dom. + var pos = [(cell.parentNode.rowIndex - 1), cell.cellIndex]; + // update cache + cache.normalized[pos[0]][pos[1]] = config.parsers[pos[1]].format( + getElementText(config, cell), cell); + }).bind("sorton", function (e, list) { + $(this).trigger("sortStart"); + config.sortList = list; + // update and store the sortlist + var sortList = config.sortList; + // update header count index + updateHeaderSortCount(this, sortList); + // set css for headers + setHeadersCss(this, $headers, sortList, sortCSS); + // sort the table and append it to the dom + appendToTable(this, multisort(this, sortList, cache)); + }).bind("appendCache", function () { + appendToTable(this, cache); + }).bind("applyWidgetId", function (e, id) { + getWidgetById(id).format(this); + }).bind("applyWidgets", function () { + // apply widgets + applyWidget(this); + }); + if ($.metadata && ($(this).metadata() && $(this).metadata().sortlist)) { + config.sortList = $(this).metadata().sortlist; + } + // if user has supplied a sort list to constructor. + if (config.sortList.length > 0) { + $this.trigger("sorton", [config.sortList]); + } + // apply widgets + applyWidget(this); + }); + }; + this.addParser = function (parser) { + var l = parsers.length, + a = true; + for (var i = 0; i < l; i++) { + if (parsers[i].id.toLowerCase() == parser.id.toLowerCase()) { + a = false; + } + } + if (a) { + parsers.push(parser); + }; + }; + this.addWidget = function (widget) { + widgets.push(widget); + }; + this.formatFloat = function (s) { + var i = parseFloat(s); + return (isNaN(i)) ? 0 : i; + }; + this.formatInt = function (s) { + var i = parseInt(s); + return (isNaN(i)) ? 0 : i; + }; + this.isDigit = function (s, config) { + // replace all an wanted chars and match. + return /^[-+]?\d*$/.test($.trim(s.replace(/[,.']/g, ''))); + }; + this.clearTableBody = function (table) { + if ($.browser.msie) { + while (table.tBodies[0].firstChild) { + table.tBodies[0].removeChild(table.tBodies[0].firstChild); + } + } else { + table.tBodies[0].innerHTML = ""; + } + }; + } + }); + + // extend plugin scope + $.fn.extend({ + tablesorter: $.tablesorter.construct + }); + + // make shortcut + var ts = $.tablesorter; + + // add default parsers + ts.addParser({ + id: "text", + is: function (s) { + return true; + }, format: function (s) { + return $.trim(s.toLocaleLowerCase()); + }, type: "text" + }); + + ts.addParser({ + id: "digit", + is: function (s, table) { + var c = table.config; + return $.tablesorter.isDigit(s, c); + }, format: function (s) { + return $.tablesorter.formatFloat(s); + }, type: "numeric" + }); + + ts.addParser({ + id: "currency", + is: function (s) { + return /^[£$€?.]/.test(s); + }, format: function (s) { + return $.tablesorter.formatFloat(s.replace(new RegExp(/[£$€]/g), "")); + }, type: "numeric" + }); + + ts.addParser({ + id: "ipAddress", + is: function (s) { + return /^\d{2,3}[\.]\d{2,3}[\.]\d{2,3}[\.]\d{2,3}$/.test(s); + }, format: function (s) { + var a = s.split("."), + r = "", + l = a.length; + for (var i = 0; i < l; i++) { + var item = a[i]; + if (item.length == 2) { + r += "0" + item; + } else { + r += item; + } + } + return $.tablesorter.formatFloat(r); + }, type: "numeric" + }); + + ts.addParser({ + id: "url", + is: function (s) { + return /^(https?|ftp|file):\/\/$/.test(s); + }, format: function (s) { + return jQuery.trim(s.replace(new RegExp(/(https?|ftp|file):\/\//), '')); + }, type: "text" + }); + + ts.addParser({ + id: "isoDate", + is: function (s) { + return /^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(s); + }, format: function (s) { + return $.tablesorter.formatFloat((s != "") ? new Date(s.replace( + new RegExp(/-/g), "/")).getTime() : "0"); + }, type: "numeric" + }); + + ts.addParser({ + id: "percent", + is: function (s) { + return /\%$/.test($.trim(s)); + }, format: function (s) { + return $.tablesorter.formatFloat(s.replace(new RegExp(/%/g), "")); + }, type: "numeric" + }); + + ts.addParser({ + id: "usLongDate", + is: function (s) { + return s.match(new RegExp(/^[A-Za-z]{3,10}\.? [0-9]{1,2}, ([0-9]{4}|'?[0-9]{2}) (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(AM|PM)))$/)); + }, format: function (s) { + return $.tablesorter.formatFloat(new Date(s).getTime()); + }, type: "numeric" + }); + + ts.addParser({ + id: "shortDate", + is: function (s) { + return /\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/.test(s); + }, format: function (s, table) { + var c = table.config; + s = s.replace(/\-/g, "/"); + if (c.dateFormat == "us") { + // reformat the string in ISO format + s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$1/$2"); + } + if (c.dateFormat == "pt") { + s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$2/$1"); + } else if (c.dateFormat == "uk") { + // reformat the string in ISO format + s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$2/$1"); + } else if (c.dateFormat == "dd/mm/yy" || c.dateFormat == "dd-mm-yy") { + s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2})/, "$1/$2/$3"); + } + return $.tablesorter.formatFloat(new Date(s).getTime()); + }, type: "numeric" + }); + ts.addParser({ + id: "time", + is: function (s) { + return /^(([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(am|pm)))$/.test(s); + }, format: function (s) { + return $.tablesorter.formatFloat(new Date("2000/01/01 " + s).getTime()); + }, type: "numeric" + }); + ts.addParser({ + id: "metadata", + is: function (s) { + return false; + }, format: function (s, table, cell) { + var c = table.config, + p = (!c.parserMetadataName) ? 'sortValue' : c.parserMetadataName; + return $(cell).metadata()[p]; + }, type: "numeric" + }); + // add default widgets + ts.addWidget({ + id: "zebra", + format: function (table) { + if (table.config.debug) { + var time = new Date(); + } + var $tr, row = -1, + odd; + // loop through the visible rows + $("tr:visible", table.tBodies[0]).each(function (i) { + $tr = $(this); + // style children rows the same way the parent + // row was styled + if (!$tr.hasClass(table.config.cssChildRow)) row++; + odd = (row % 2 == 0); + $tr.removeClass( + table.config.widgetZebra.css[odd ? 0 : 1]).addClass( + table.config.widgetZebra.css[odd ? 1 : 0]) + }); + if (table.config.debug) { + $.tablesorter.benchmark("Applying Zebra widget", time); + } + } + }); +})(jQuery); diff --git a/2024-12-12-22:00/poodle_trunk_serial/js/purl.js b/2024-12-12-22:00/poodle_trunk_serial/js/purl.js new file mode 100644 index 000000000..d25ca4c00 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/js/purl.js @@ -0,0 +1,271 @@ +/* + * JQuery URL Parser plugin, v2.2.1 + * Developed and maintanined by Mark Perkins, mark@allmarkedup.com + * Source repository: https://github.com/allmarkedup/jQuery-URL-Parser + * Licensed under an MIT-style license. See https://github.com/allmarkedup/jQuery-URL-Parser/blob/master/LICENSE for details. + */ + +;(function(factory) { + if (typeof define === 'function' && define.amd) { + // AMD available; use anonymous module + if ( typeof jQuery !== 'undefined' ) { + define(['jquery'], factory); + } else { + define([], factory); + } + } else { + // No AMD available; mutate global vars + if ( typeof jQuery !== 'undefined' ) { + factory(jQuery); + } else { + factory(); + } + } +})(function($, undefined) { + + var tag2attr = { + a : 'href', + img : 'src', + form : 'action', + base : 'href', + script : 'src', + iframe : 'src', + link : 'href' + }, + + key = ['source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'fragment'], // keys available to query + + aliases = { 'anchor' : 'fragment' }, // aliases for backwards compatability + + parser = { + strict : /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, //less intuitive, more accurate to the specs + loose : /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ // more intuitive, fails on relative paths and deviates from specs + }, + + toString = Object.prototype.toString, + + isint = /^[0-9]+$/; + + function parseUri( url, strictMode ) { + var str = decodeURI( url ), + res = parser[ strictMode || false ? 'strict' : 'loose' ].exec( str ), + uri = { attr : {}, param : {}, seg : {} }, + i = 14; + + while ( i-- ) { + uri.attr[ key[i] ] = res[i] || ''; + } + + // build query and fragment parameters + uri.param['query'] = parseString(uri.attr['query']); + uri.param['fragment'] = parseString(uri.attr['fragment']); + + // split path and fragement into segments + uri.seg['path'] = uri.attr.path.replace(/^\/+|\/+$/g,'').split('/'); + uri.seg['fragment'] = uri.attr.fragment.replace(/^\/+|\/+$/g,'').split('/'); + + // compile a 'base' domain attribute + uri.attr['base'] = uri.attr.host ? (uri.attr.protocol ? uri.attr.protocol+'://'+uri.attr.host : uri.attr.host) + (uri.attr.port ? ':'+uri.attr.port : '') : ''; + + return uri; + }; + + function getAttrName( elm ) { + var tn = elm.tagName; + if ( typeof tn !== 'undefined' ) return tag2attr[tn.toLowerCase()]; + return tn; + } + + function promote(parent, key) { + if (parent[key].length == 0) return parent[key] = {}; + var t = {}; + for (var i in parent[key]) t[i] = parent[key][i]; + parent[key] = t; + return t; + } + + function parse(parts, parent, key, val) { + var part = parts.shift(); + if (!part) { + if (isArray(parent[key])) { + parent[key].push(val); + } else if ('object' == typeof parent[key]) { + parent[key] = val; + } else if ('undefined' == typeof parent[key]) { + parent[key] = val; + } else { + parent[key] = [parent[key], val]; + } + } else { + var obj = parent[key] = parent[key] || []; + if (']' == part) { + if (isArray(obj)) { + if ('' != val) obj.push(val); + } else if ('object' == typeof obj) { + obj[keys(obj).length] = val; + } else { + obj = parent[key] = [parent[key], val]; + } + } else if (~part.indexOf(']')) { + part = part.substr(0, part.length - 1); + if (!isint.test(part) && isArray(obj)) obj = promote(parent, key); + parse(parts, obj, part, val); + // key + } else { + if (!isint.test(part) && isArray(obj)) obj = promote(parent, key); + parse(parts, obj, part, val); + } + } + } + + function merge(parent, key, val) { + if (~key.indexOf(']')) { + var parts = key.split('['), + len = parts.length, + last = len - 1; + parse(parts, parent, 'base', val); + } else { + if (!isint.test(key) && isArray(parent.base)) { + var t = {}; + for (var k in parent.base) t[k] = parent.base[k]; + parent.base = t; + } + set(parent.base, key, val); + } + return parent; + } + + function parseString(str) { + return reduce(String(str).split(/&|;/), function(ret, pair) { + try { + pair = decodeURIComponent(pair.replace(/\+/g, ' ')); + } catch(e) { + // ignore + } + var eql = pair.indexOf('='), + brace = lastBraceInKey(pair), + key = pair.substr(0, brace || eql), + val = pair.substr(brace || eql, pair.length), + val = val.substr(val.indexOf('=') + 1, val.length); + + if ('' == key) key = pair, val = ''; + + return merge(ret, key, val); + }, { base: {} }).base; + } + + function set(obj, key, val) { + var v = obj[key]; + if (undefined === v) { + obj[key] = val; + } else if (isArray(v)) { + v.push(val); + } else { + obj[key] = [v, val]; + } + } + + function lastBraceInKey(str) { + var len = str.length, + brace, c; + for (var i = 0; i < len; ++i) { + c = str[i]; + if (']' == c) brace = false; + if ('[' == c) brace = true; + if ('=' == c && !brace) return i; + } + } + + function reduce(obj, accumulator){ + var i = 0, + l = obj.length >> 0, + curr = arguments[2]; + while (i < l) { + if (i in obj) curr = accumulator.call(undefined, curr, obj[i], i, obj); + ++i; + } + return curr; + } + + function isArray(vArg) { + return Object.prototype.toString.call(vArg) === "[object Array]"; + } + + function keys(obj) { + var keys = []; + for ( prop in obj ) { + if ( obj.hasOwnProperty(prop) ) keys.push(prop); + } + return keys; + } + + function purl( url, strictMode ) { + if ( arguments.length === 1 && url === true ) { + strictMode = true; + url = undefined; + } + strictMode = strictMode || false; + url = url || window.location.toString(); + + return { + + data : parseUri(url, strictMode), + + // get various attributes from the URI + attr : function( attr ) { + attr = aliases[attr] || attr; + return typeof attr !== 'undefined' ? this.data.attr[attr] : this.data.attr; + }, + + // return query string parameters + param : function( param ) { + return typeof param !== 'undefined' ? this.data.param.query[param] : this.data.param.query; + }, + + // return fragment parameters + fparam : function( param ) { + return typeof param !== 'undefined' ? this.data.param.fragment[param] : this.data.param.fragment; + }, + + // return path segments + segment : function( seg ) { + if ( typeof seg === 'undefined' ) { + return this.data.seg.path; + } else { + seg = seg < 0 ? this.data.seg.path.length + seg : seg - 1; // negative segments count from the end + return this.data.seg.path[seg]; + } + }, + + // return fragment segments + fsegment : function( seg ) { + if ( typeof seg === 'undefined' ) { + return this.data.seg.fragment; + } else { + seg = seg < 0 ? this.data.seg.fragment.length + seg : seg - 1; // negative segments count from the end + return this.data.seg.fragment[seg]; + } + } + + }; + + }; + + if ( typeof $ !== 'undefined' ) { + + $.fn.url = function( strictMode ) { + var url = ''; + if ( this.length ) { + url = $(this).attr( getAttrName(this[0]) ) || ''; + } + return purl( url, strictMode ); + }; + + $.url = purl; + + } else { + window.purl = purl; + } + +}); + diff --git a/2024-12-12-22:00/poodle_trunk_serial/meshtype_arbpoly.html b/2024-12-12-22:00/poodle_trunk_serial/meshtype_arbpoly.html new file mode 100644 index 000000000..72177e4c7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/meshtype_arbpoly.html @@ -0,0 +1,90 @@ + +Results for meshtype/arbpoly.py + +

    Results of VisIt Regression Test - meshtype/arbpoly

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    arbpoly_010.000.00
    arbpoly_020.000.00
    arbpoly_030.000.00
    arbpoly_040.000.00
    arbpoly_050.000.00
    arbpoly_060.000.00
    arbpoly_070.000.00
    arbpoly_080.000.00
    arbpoly_090.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/meshtype_arbpoly_py.html b/2024-12-12-22:00/poodle_trunk_serial/meshtype_arbpoly_py.html new file mode 100644 index 000000000..3286a70d7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/meshtype_arbpoly_py.html @@ -0,0 +1,124 @@ +meshtype/arbpoly.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  arbpoly.py
    +#
    +#  Tests:      mesh      - a ucd mesh with arbitrary polyhedral zones
    +#              plots     - pc, contour, mat subset, mesh
    +#              operators - OnionPeel
    +#              selection - material
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Mark C. Miller
    +#  Date:       October 24, 2004
    +#
    +#  Modifications
    +#    Mark C. Miller, Tue Oct 20 16:30:31 PDT 2009
    +#    Added tests for fully arbitrary mesh
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Aug 26 08:55:04 PDT 2010
    +#    Update set index after SIL generation changes.
    +#
    +#    Kathleen Biagas, Wed Sep 10 14:15:44 PDT 2014
    +#    Added tests for OnionPeel'd arb poly, and a single-zone arb-poly set.
    +#
    +#    Kathleen Biagas, Wed Feb 16 09:15:45 PST 2022
    +#    Replace use of meshatts 'backgroundFlag' with opaqueColorSource.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("poly3d.silo"))
    +
    +
    +AddPlot("Mesh", "ucdmesh3d")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.SetViewNormal(-0.0356529, 0.010858, 0.999305)
    +v.SetViewUp(0.0100239, 0.999895, -0.0105068)
    +v.SetImageZoom(2.75)
    +SetView3D(v)
    +
    +Test("arbpoly_01")
    +
    +#
    +# See if we can handle a zone centered variable correctly
    +#
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +Test("arbpoly_02")
    +
    +DeleteActivePlots()
    +
    +#
    +# See if we can handle a material correctly
    +# Turn off alternate materials.
    +AddPlot("FilledBoundary", "mat1")
    +silr=SILRestriction()
    +silr.TurnOffSet(2)
    +SetPlotSILRestriction(silr)
    +DrawPlots()
    +
    +Test("arbpoly_03")
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("poly3d.silo"))
    +
    +
    +OpenDatabase(data_path("overlink_test_data/ev_0_0_100/OvlTop.silo"))
    +
    +AddPlot("Mesh","MMESH")
    +DrawPlots()
    +ma = MeshAttributes()
    +ma.opaqueColor = (0, 200, 200, 255)
    +ma.opaqueMode = ma.On
    +ma.opaqueColorSource = ma.OpaqueCustom
    +SetPlotOptions(ma)
    +ResetView()
    +Test("arbpoly_04")
    +v = GetView3D()
    +v.SetViewNormal(-0.433013, 0.5, 0.75)
    +v.SetViewUp(0.25, 0.866025, -0.433013)
    +SetView3D(v)
    +Test("arbpoly_05")
    +ma.opaqueMode = ma.Off
    +SetPlotOptions(ma)
    +
    +AddPlot("Pseudocolor","nvar0")
    +DrawPlots()
    +Test("arbpoly_06")
    +DeleteActivePlots()
    +
    +AddPlot("Pseudocolor","zvar3")
    +DrawPlots()
    +Test("arbpoly_07")
    +
    +DeleteActivePlots()
    +ma.lineWidth = 3
    +SetPlotOptions(ma)
    +AddPlot("FilledBoundary", "MMATERIAL")
    +AddPlot("Subset", "domains")
    +AddOperator("OnionPeel", 1)
    +op = OnionPeelAttributes()
    +op.index = 99
    +SetOperatorOptions(op,0,1)
    +DrawPlots()
    +Test("arbpoly_08")
    +DeleteAllPlots()
    +CloseDatabase(data_path("overlink_test_data/ev_0_0_100/OvlTop.silo"))
    +
    +OpenDatabase(silo_data_path("arbpoly.silo"))
    +AddPlot("Mesh", "clipped_hex")
    +ma.opaqueMode = ma.On
    +SetPlotOptions(ma)
    +DrawPlots()
    +Test("arbpoly_09")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/meshtype_csg.html b/2024-12-12-22:00/poodle_trunk_serial/meshtype_csg.html new file mode 100644 index 000000000..da14248ba --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/meshtype_csg.html @@ -0,0 +1,78 @@ + +Results for meshtype/csg.py + +

    Results of VisIt Regression Test - meshtype/csg

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    csg_010.000.00
    csg_020.000.00
    csg_030.000.00
    csg_040.000.00
    csg_050.000.00
    csg_070.000.00
    csg_080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/meshtype_csg_py.html b/2024-12-12-22:00/poodle_trunk_serial/meshtype_csg_py.html new file mode 100644 index 000000000..d4ed3a161 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/meshtype_csg_py.html @@ -0,0 +1,177 @@ +meshtype/csg.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  csg.py
    +#
    +#  Tests:      mesh      - a csg mesh
    +#              subset plot
    +#              selection - subset
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       August 16, 2005
    +#
    +#  Mofications:
    +#
    +#    Mark C. Miller, Sun Dec  3 12:20:11 PST 2006
    +#    Added tests for materials, variables and Matt's csg data
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Mark C. Miller, Fri Apr  2 17:31:28 PDT 2010
    +#    Replaced first two tests with subset plot instead of mesh plot.
    +#    Used MultiPass instead of uniform for first test.
    +# ----------------------------------------------------------------------------
    +
    +mma=MeshManagementAttributes()
    +mma.discretizationMode = mma.Adaptive
    +mma.discretizationTolerance=(0.01, 0.25)
    +SetMeshManagementAttributes(mma)
    +OpenDatabase(silo_data_path("csg.silo"))
    +
    +
    +#
    +# the mesh named "csgmesh" uses just spheres, cylinder and plane
    +# primitives
    +#
    +AddPlot("Subset", "csgmesh")
    +DrawPlots()
    +v = GetView3D()
    +v.SetViewNormal(0.650274, -0.646958, 0.398232)
    +v.SetViewUp(-0.290226, 0.272881, 0.917227)
    +SetView3D(v)
    +Test("csg_01")
    +
    +#
    +# Change the discretization tolerance and mode
    +#
    +mma.discretizationMode = mma.MultiPass
    +mma.discretizationTolerance=(0.02, 0.25)
    +SetMeshManagementAttributes(mma)
    +ReOpenDatabase(silo_data_path("csg.silo"))
    +
    +ClearWindow()
    +DrawPlots()
    +Test("csg_02")
    +DeleteAllPlots()
    +ResetView()
    +
    +#
    +# Ok, lets try Greg Greenman's example mesh. It uses
    +# all general quadrics and planes
    +#
    +mma.discretizationTolerance=(0.005, 0.25)
    +mma.discretizationMode = mma.Adaptive
    +SetMeshManagementAttributes(mma)
    +ReOpenDatabase(silo_data_path("csg.silo"))
    +
    +AddPlot("Subset", "regions(greenman_mesh)")
    +DrawPlots()
    +v = GetView3D()
    +v.SetViewNormal(-0.496376, -0.386195, -0.777473)
    +v.SetViewUp(0.865609, -0.152286, -0.477001)
    +SetView3D(v)
    +Test("csg_03")
    +
    +#
    +# Find set ids using their names
    +#
    +voidSetId = -1
    +uraniumSetId = -1
    +airSetId = -1
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "void":
    +        voidSetId = i
    +    elif silr.SetName(i) == "uranium":
    +        uraniumSetId = i
    +    elif silr.SetName(i) == "air":
    +        airSetId = i
    +
    +#
    +# Turn off the air
    +#
    +silr.TurnOffSet(airSetId)
    +SetPlotSILRestriction(silr)
    +Test("csg_04")
    +
    +#
    +# Turn on air, but turn void and uranium off
    +#
    +silr.TurnOnSet(airSetId)
    +silr.TurnOffSet(voidSetId)
    +silr.TurnOffSet(uraniumSetId)
    +SetPlotSILRestriction(silr)
    +Test("csg_05")
    +
    +#
    +# Try a material plot
    +#
    +#DeleteAllPlots()
    +#AddPlot("FilledBoundary","mat")
    +#AddPlot("Mesh","csgmesh")
    +#DrawPlots()
    +#ResetView()
    +#v = GetView3D()
    +#v.SetViewNormal(0.650274, -0.646958, 0.398232)
    +#v.SetViewUp(-0.290226, 0.272881, 0.917227)
    +#SetView3D(v)
    +#Test("csg_06")
    +
    +#
    +# Try plotting a variable
    +#
    +DeleteAllPlots()
    +AddPlot("Pseudocolor","var1")
    +AddPlot("Mesh","csgmesh")
    +DrawPlots()
    +ResetView()
    +v = GetView3D()
    +v.SetViewNormal(0.650274, -0.646958, 0.398232)
    +v.SetViewUp(-0.290226, 0.272881, 0.917227)
    +SetView3D(v)
    +Test("csg_07")
    +
    +#
    +# Try various other objects in this file 
    +#
    +DeleteAllPlots()
    +
    +#
    +# Now use Matt's Fusion data
    +#
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("csg.silo"))
    +
    +mma.discretizationTolerance=(0.05, 0.25)
    +mma.discretizationMode = mma.Adaptive
    +SetMeshManagementAttributes(mma)
    +OpenDatabase(data_path("csg_test_data/Fusion_000001_root.gra"))
    +
    +AddPlot("FilledBoundary","MC_Material(MC_ThreeD_Structured)")
    +DrawPlots()
    +silr = SILRestriction()
    +for i in range(silr.NumSets()):
    +    if silr.SetName(i) == "2 Concrete_B":
    +        silr.TurnOffSet(i)
    +    if silr.SetName(i) == "6 Concrete_F":
    +        silr.TurnOffSet(i)
    +    if silr.SetName(i) == "7 Concrete_G":
    +        silr.TurnOffSet(i)
    +    if silr.SetName(i) == "8 Air_A":
    +        silr.TurnOffSet(i)
    +    if silr.SetName(i) == "9 Air_B":
    +        silr.TurnOffSet(i)
    +    if silr.SetName(i) == "10 Air_C":
    +        silr.TurnOffSet(i)
    +SetPlotSILRestriction(silr)
    +ResetView()
    +v = GetView3D()
    +v.SetViewNormal(-0.5, -0.852869, -0.150384)
    +v.SetViewUp(0.0, -0.173648, 0.984808)
    +v.imageZoom = 1.5
    +SetView3D(v)
    +Test("csg_08")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/meshtype_degen_mesh.html b/2024-12-12-22:00/poodle_trunk_serial/meshtype_degen_mesh.html new file mode 100644 index 000000000..e65df0110 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/meshtype_degen_mesh.html @@ -0,0 +1,84 @@ + +Results for meshtype/degen_mesh.py + +

    Results of VisIt Regression Test - meshtype/degen_mesh

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    degen_mesh_010.000.00
    degen_mesh_020.000.00
    degen_mesh_030.000.00
    degen_mesh_040.000.00
    degen_mesh_050.000.00
    degen_mesh_060.000.00
    degen_mesh_070.000.00
    degen_mesh_080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/meshtype_degen_mesh_py.html b/2024-12-12-22:00/poodle_trunk_serial/meshtype_degen_mesh_py.html new file mode 100644 index 000000000..bb6e39222 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/meshtype_degen_mesh_py.html @@ -0,0 +1,260 @@ +meshtype/degen_mesh.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  degenerate.py
    +#
    +#  Tests:      mesh      - 3D curvilinear, rectilinear
    +#              plots     - pc, contour, mesh
    +#              operators - none
    +#              selection - none
    +#
    +#  Defect ID:  '5333 & '5335
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 26, 2004
    +#
    +#
    +#  Modifications:
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# Define some expressions that will be handy for later.
    +DefineVectorExpression("coords_plus1", "coords(mesh)")
    +DefineVectorExpression("coords", "{coords_plus1[0]-1., coords_plus1[1]-1., coords_plus1[2]-1. }")
    +DefineVectorExpression("i_disp", "{ -sqrt(coords[1]*coords[1] + coords[2]*coords[2]), 0, 0 }")
    +DefineVectorExpression("j_disp", "{ 0, -sqrt(coords[0]*coords[0] + coords[2]*coords[2]), 0 }")
    +DefineVectorExpression("k_disp", "{ 0, 0, -sqrt(coords[0]*coords[0] + coords[1]*coords[1]) }")
    +DefineScalarExpression("pos", "sqrt(coords[0]*coords[0]+coords[1]*coords[1]+coords[2]*coords[2])")
    +
    +#
    +# Start off by testing curvilinear meshes.
    +#
    +
    +# Test that we can make the meshes with no modification.
    +OpenDatabase(data_path("vtk_test_data/curv_flat_i.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +# If you do a DrawPlots now, you will exhibit '5337
    +OpenDatabase(data_path("vtk_test_data/curv_flat_j.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +OpenDatabase(data_path("vtk_test_data/curv_flat_k.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +Test("degen_mesh_01")
    +
    +# Test that we can handle displacing them and operating on them with
    +# expressions.
    +disp = DisplaceAttributes()
    +disp.variable = "i_disp"
    +SetDefaultOperatorOptions(disp)
    +SetActivePlots(0)
    +AddOperator("Displace")
    +disp.variable = "j_disp"
    +SetDefaultOperatorOptions(disp)
    +SetActivePlots(1)
    +AddOperator("Displace")
    +disp.variable = "k_disp"
    +SetDefaultOperatorOptions(disp)
    +SetActivePlots(2)
    +AddOperator("Displace")
    +DrawPlots()
    +
    +v= GetView3D()
    +v.viewNormal = (0.449864, 0.604932, 0.657023)
    +v.focus = (0.801178, 0.801178, 0.801178)
    +v.viewUp = (0.377875, 0.537649, -0.753753)
    +v.viewAngle = 30
    +v.parallelScale = 2.00714
    +v.nearPlane = -4.01428
    +v.farPlane = 4.01428
    +v.imagePan = (0, 0)
    +v.imageZoom = 0.873008
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, 0)
    +SetView3D(v)
    +Test("degen_mesh_02")
    +
    +# Test that we can do PC plots ('5335)
    +ActivateDatabase(data_path("vtk_test_data/curv_flat_i.vtk"))
    +
    +AddPlot("Pseudocolor", "pos")
    +disp = DisplaceAttributes()
    +disp.variable = "i_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +ActivateDatabase(data_path("vtk_test_data/curv_flat_j.vtk"))
    +
    +AddPlot("Pseudocolor", "pos")
    +disp.variable = "j_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +ActivateDatabase(data_path("vtk_test_data/curv_flat_k.vtk"))
    +
    +AddPlot("Pseudocolor", "pos")
    +disp.variable = "k_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +DrawPlots()
    +Test("degen_mesh_03")
    +
    +SetActivePlots(5)
    +DeleteActivePlots()
    +SetActivePlots(4)
    +DeleteActivePlots()
    +SetActivePlots(3)
    +DeleteActivePlots()
    +
    +
    +# Test that we can do contours ('5333)
    +ActivateDatabase(data_path("vtk_test_data/curv_flat_i.vtk"))
    +
    +AddPlot("Contour", "pos")
    +disp = DisplaceAttributes()
    +disp.variable = "i_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +ActivateDatabase(data_path("vtk_test_data/curv_flat_j.vtk"))
    +
    +AddPlot("Contour", "pos")
    +disp.variable = "j_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +ActivateDatabase(data_path("vtk_test_data/curv_flat_k.vtk"))
    +
    +AddPlot("Contour", "pos")
    +disp.variable = "k_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +DrawPlots()
    +Test("degen_mesh_04")
    +
    +
    +#
    +# Now do the same thing over again with rectilinear meshes.
    +#
    +DeleteAllPlots()
    +
    +# Test that we can make the meshes with no modification.
    +OpenDatabase(data_path("vtk_test_data/rect_flat_i.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +# If you do a DrawPlots now, you will exhibit '5337
    +OpenDatabase(data_path("vtk_test_data/rect_flat_j.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +OpenDatabase(data_path("vtk_test_data/rect_flat_k.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +Test("degen_mesh_05")
    +
    +# Test that we can handle displacing them and operating on them with
    +# expressions.
    +disp = DisplaceAttributes()
    +disp.variable = "i_disp"
    +SetDefaultOperatorOptions(disp)
    +SetActivePlots(0)
    +AddOperator("Displace")
    +disp.variable = "j_disp"
    +SetDefaultOperatorOptions(disp)
    +SetActivePlots(1)
    +AddOperator("Displace")
    +disp.variable = "k_disp"
    +SetDefaultOperatorOptions(disp)
    +SetActivePlots(2)
    +AddOperator("Displace")
    +DrawPlots()
    +v= GetView3D()
    +v.viewNormal = (0.449864, 0.604932, 0.657023)
    +v.focus = (0.801178, 0.801178, 0.801178)
    +v.viewUp = (0.377875, 0.537649, -0.753753)
    +v.viewAngle = 30
    +v.parallelScale = 2.00714
    +v.nearPlane = -4.01428
    +v.farPlane = 4.01428
    +v.imagePan = (0, 0)
    +v.imageZoom = 0.873008
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, 0)
    +SetView3D(v)
    +Test("degen_mesh_06")
    +
    +# Test that we can do PC plots ('5335)
    +ActivateDatabase(data_path("vtk_test_data/rect_flat_i.vtk"))
    +
    +AddPlot("Pseudocolor", "pos")
    +disp = DisplaceAttributes()
    +disp.variable = "i_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +ActivateDatabase(data_path("vtk_test_data/rect_flat_j.vtk"))
    +
    +AddPlot("Pseudocolor", "pos")
    +disp.variable = "j_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +ActivateDatabase(data_path("vtk_test_data/rect_flat_k.vtk"))
    +
    +AddPlot("Pseudocolor", "pos")
    +disp.variable = "k_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +DrawPlots()
    +Test("degen_mesh_07")
    +
    +SetActivePlots(5)
    +DeleteActivePlots()
    +SetActivePlots(4)
    +DeleteActivePlots()
    +SetActivePlots(3)
    +DeleteActivePlots()
    +
    +
    +# Test that we can do contours ('5333)
    +ActivateDatabase(data_path("vtk_test_data/curv_flat_i.vtk"))
    +
    +AddPlot("Contour", "pos")
    +disp = DisplaceAttributes()
    +disp.variable = "i_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +ActivateDatabase(data_path("vtk_test_data/curv_flat_j.vtk"))
    +
    +AddPlot("Contour", "pos")
    +disp.variable = "j_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +ActivateDatabase(data_path("vtk_test_data/curv_flat_k.vtk"))
    +
    +AddPlot("Contour", "pos")
    +disp.variable = "k_disp"
    +SetDefaultOperatorOptions(disp)
    +AddOperator("Displace")
    +
    +DrawPlots()
    +Test("degen_mesh_08")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/meshtype_emptydomains.html b/2024-12-12-22:00/poodle_trunk_serial/meshtype_emptydomains.html new file mode 100644 index 000000000..2656cf585 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/meshtype_emptydomains.html @@ -0,0 +1,104 @@ + +Results for meshtype/emptydomains.py + +

    Results of VisIt Regression Test - meshtype/emptydomains

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    meshtype_emptydomains_010.000.00
    meshtype_emptydomains_020.000.00
    meshtype_emptydomains_030.000.00
    meshtype_emptydomains_040.000.00
    meshtype_emptydomains_050.000.00
    meshtype_emptydomains_060.000.00
    meshtype_emptydomains_070.000.00
    meshtype_emptydomains_080.000.00
    meshtype_emptydomains_090.000.00
    meshtype_emptydomains_100.000.00
    meshtype_emptydomains_110 modifications totalling 0 lines
    meshtype_emptydomains_120 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/meshtype_emptydomains_py.html b/2024-12-12-22:00/poodle_trunk_serial/meshtype_emptydomains_py.html new file mode 100644 index 000000000..47e263c4d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/meshtype_emptydomains_py.html @@ -0,0 +1,132 @@ +meshtype/emptydomains.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  emptydomains.py
    +#
    +#  Tests:      multi-objects with empty domains
    +#
    +#  Defect ID:  VisIt00005226
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       June  7, 2005
    +#
    +#  Modificatons:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Mark C. Miller, Wed Sep 23 16:28:27 PDT 2020
    +#    Force to run on only PDB driver
    +# ----------------------------------------------------------------------------
    +OpenDatabase(data_path("silo_pdb_test_data/emptydomains.silo"))
    +
    +# Test the multi-mesh support
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.SetViewNormal(-0.528889, 0.367702, 0.7649)
    +v.SetViewUp(0.176641, 0.929226, -0.324558)
    +v.SetPerspective(1)
    +SetView3D(v)
    +
    +Test("meshtype_emptydomains_01")
    +
    +# Test the multi-var support
    +AddPlot("Pseudocolor", "density")
    +DrawPlots()
    +Test("meshtype_emptydomains_02")
    +
    +# Test material selection support
    +TurnMaterialsOff("5")
    +Test("meshtype_emptydomains_03")
    +
    +# Test multi-material support
    +TurnMaterialsOn()
    +DeleteAllPlots()
    +AddPlot("FilledBoundary", "mat")
    +DrawPlots()
    +Test("meshtype_emptydomains_04")
    +
    +# Test multi-species/species selection support
    +DeleteAllPlots()
    +AddPlot("Pseudocolor","spec")
    +silr=SILRestriction()
    +silr.TurnOffSet(6)
    +SetPlotSILRestriction(silr)
    +DrawPlots()
    +Test("meshtype_emptydomains_05")
    +
    +silr.TurnOffSet(5)
    +SetPlotSILRestriction(silr)
    +Test("meshtype_emptydomains_06")
    +
    +# Test domain selection support
    +DeleteAllPlots()
    +silr.TurnOnAll()
    +silr.TurnOffSet(1)
    +SetPlotSILRestriction(silr)
    +AddPlot("Mesh", "mesh")
    +AddPlot("Pseudocolor", "density")
    +DrawPlots()
    +Test("meshtype_emptydomains_07")
    +
    +# Test slice-by-zone
    +silr.TurnOnAll()
    +SetPlotSILRestriction(silr)
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "density")
    +AddOperator("Slice")
    +s1 = SliceAttributes()
    +s1.originType = s1.Zone
    +s1.project2d = 0
    +s1.originZone = 170
    +s1.originZoneDomain = 2
    +SetOperatorOptions(s1)
    +DrawPlots()
    +Test("meshtype_emptydomains_08")
    +
    +# Test slice-by-node
    +silr.TurnOnAll()
    +SetPlotSILRestriction(silr)
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "density")
    +AddOperator("Slice")
    +s2 = SliceAttributes()
    +s2.originType = s2.Node
    +s2.project2d = 0
    +s2.originNode = 11
    +s2.originNodeDomain = 2
    +SetOperatorOptions(s2)
    +DrawPlots()
    +Test("meshtype_emptydomains_09")
    +
    +# Test onion peel
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "density")
    +AddOperator("OnionPeel")
    +o = OnionPeelAttributes()
    +o.categoryName = "domains"
    +o.subsetName = "domain2"
    +o.index = (210)
    +o.requestedLayer = 3
    +DrawPlots()
    +SetOperatorOptions(o)
    +Test("meshtype_emptydomains_10")
    +
    +# Test zone pick
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "density")
    +DrawPlots()
    +PickByZone(120, 2, "density")
    +TestText("meshtype_emptydomains_11", GetPickOutput())
    +
    +# Test node pick
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "density")
    +DrawPlots()
    +PickByNode(100, 2, "density")
    +TestText("meshtype_emptydomains_12", GetPickOutput())
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/meshtype_globe.html b/2024-12-12-22:00/poodle_trunk_serial/meshtype_globe.html new file mode 100644 index 000000000..acac1cdee --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/meshtype_globe.html @@ -0,0 +1,72 @@ + +Results for meshtype/globe.py + +

    Results of VisIt Regression Test - meshtype/globe

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    globe_010.000.00
    globe_020.000.00
    globe_030.000.00
    globe_040.000.00
    globe_050.000.00
    globe_060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/meshtype_globe_py.html b/2024-12-12-22:00/poodle_trunk_serial/meshtype_globe_py.html new file mode 100644 index 000000000..53efd3aac --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/meshtype_globe_py.html @@ -0,0 +1,85 @@ +meshtype/globe.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  globe.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - pc, contour, mat subset, mesh, vector
    +#              operators - none
    +#              selection - none
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       April 17, 2002
    +#
    +#  Modificatons:
    +#    Kathleen Bonnell, Thu Sep  5 10:55:47 PDT 2002
    +#    Changed the variable format for SubsetPlots, to reflect new interface
    +#    which allows subsets of groups.
    +#
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset plots.
    +#
    +#    Kathleen Bonnell, Wed Sep  3 09:31:25 PDT 2003
    +#    Opaque mode for MeshPlot is ON by default now, so turn it off
    +#    for this test.
    +#
    +#    Kathleen Bonnell, Thu Sep  4 11:10:11 PDT 2003
    +#    Change the way MeshPlot's opaque mode is set (now an enum, not a bool).
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.SetViewNormal(-0.528889, 0.367702, 0.7649)
    +v.SetViewUp(0.176641, 0.929226, -0.324558)
    +v.SetParallelScale(17.3205)
    +v.SetPerspective(1)
    +SetView3D(v)
    +
    +Test("globe_01")
    +
    +DeleteAllPlots()
    +AddPlot("Contour", "t")
    +DrawPlots()
    +Test("globe_02")
    +
    +DeleteAllPlots()
    +AddPlot("FilledBoundary", "mat1")
    +DrawPlots()
    +Test("globe_03")
    +
    +DeleteAllPlots()
    +AddPlot("Volume", "u")
    +DrawPlots()
    +Test("globe_04")
    +
    +#Test MeshPlot with OpaqueFlag ON
    +DeleteAllPlots()
    +AddPlot("Mesh", "mesh1")
    +m = MeshAttributes()
    +m.opaqueMode = m.Off
    +SetPlotOptions(m)
    +DrawPlots()
    +Test("globe_05")
    +
    +DeleteAllPlots()
    +AddPlot("Vector", "vel")
    +DrawPlots()
    +Test("globe_06")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/meshtype_point.html b/2024-12-12-22:00/poodle_trunk_serial/meshtype_point.html new file mode 100644 index 000000000..072333d69 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/meshtype_point.html @@ -0,0 +1,138 @@ + +Results for meshtype/point.py + +

    Results of VisIt Regression Test - meshtype/point

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    meshtype_point_010.000.00
    meshtype_point_020.000.00
    meshtype_point_030.000.00
    meshtype_point_040.000.00
    meshtype_point_050.000.00
    meshtype_point_060.000.00
    meshtype_point_070.000.00
    meshtype_point_080.000.00
    meshtype_point_090.000.00
    meshtype_point_100.000.00
    meshtype_point_110.000.00
    meshtype_point_120.000.00
    meshtype_point_130.000.00
    meshtype_point_140.000.00
    meshtype_point_150.000.00
    meshtype_point_160.000.00
    meshtype_point_170.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/meshtype_point_py.html b/2024-12-12-22:00/poodle_trunk_serial/meshtype_point_py.html new file mode 100644 index 000000000..dd91d4e0b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/meshtype_point_py.html @@ -0,0 +1,174 @@ +meshtype/point.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  point.py
    +#
    +#  Tests:      mesh      - 3D point
    +#              plots     - pseudocolor, subset, mesh
    +#              operators - none
    +#              selection - none
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       May  4, 2004
    +#
    +#  Modificatons:
    +#    Kathleen Bonnell, Thu Aug 19 15:07:23 PDT 2004
    +#    Added tests 4-7.
    +#
    +#    Kathleen Bonnell, Thu Nov 11 17:28:15 PST 2004
    +#    Added tests 8-17.
    +#
    +#    Brad Whitlock, Thu Jul 21 15:44:05 PST 2005
    +#    Added tests for setting the point size for points rendered as pixels.
    +#
    +#    Brad Whitlock, Fri Aug 26 13:59:08 PST 2005
    +#    Needed to add more rendering tests so I moved the point rendering
    +#    stuff to renderpoint.py.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Wed Feb 16 09:15:45 PST 2022
    +#    Replace use of meshatts 'foregroundFlag' with meshColorSource.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +v = GetView3D()
    +v.viewNormal = (0.3, 0.5, 0.8)
    +SetView3D(v)
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +
    +AddPlot("Pseudocolor", "PointVar")
    +DrawPlots()
    +
    +p=PseudocolorAttributes()
    +p.pointType = p.Axis
    +p.pointSize = 0.2
    +SetPlotOptions(p)
    +Test("meshtype_point_01")
    +
    +p.pointSizeVarEnabled = 1
    +p.pointSize = 0.5
    +SetPlotOptions(p)
    +Test("meshtype_point_02")
    +
    +p.pointType = p.Point
    +p.pointSizePixels = 1
    +SetPlotOptions(p)
    +Test("meshtype_point_03")
    +
    +DeleteAllPlots()
    +
    +
    +#Test some more of the point-related atts for the pc plot.
    +OpenDatabase(silo_data_path("multi_point2d.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +p = PseudocolorAttributes()
    +SetPlotOptions(p)
    +DrawPlots()
    +ResetView()
    +
    +Test("meshtype_point_04")
    +
    +p.pointSize = 0.05
    +p.pointType = p.Axis
    +p.pointSizeVarEnabled = 1
    +p.pointSizeVar = "d"
    +SetPlotOptions(p)
    +Test("meshtype_point_05")
    +
    +p.pointSize = 0.25
    +p.pointType = p.Box
    +p.pointSizeVar = "p"
    +SetPlotOptions(p)
    +Test("meshtype_point_06")
    +
    +p.pointSize = 0.25
    +p.pointType = p.Icosahedron
    +p.pointSizeVar = "u"
    +SetPlotOptions(p)
    +Test("meshtype_point_07")
    +
    +DeleteAllPlots()
    +
    +#Test Subsets of point meshes
    +AddPlot("Subset", "domains")
    +s = SubsetAttributes()
    +s.pointSizePixels = 1
    +SetPlotOptions(s)
    +DrawPlots()
    +ResetView()
    +Test("meshtype_point_08")
    +
    +s.pointSizeVarEnabled = 1
    +s.pointSizeVar = "d"
    +s.pointType = s.Icosahedron
    +SetPlotOptions(s)
    +Test("meshtype_point_09")
    +
    +s.pointSizeVar = "u"
    +s.pointType = s.Box
    +SetPlotOptions(s)
    +Test("meshtype_point_10")
    +
    +s.pointSizeVar = "v"
    +SetPlotOptions(s)
    +Test("meshtype_point_11")
    +
    +s.colorType = s.ColorBySingleColor
    +s.singleColor = (255, 0, 0, 255)
    +SetPlotOptions(s)
    +Test("meshtype_point_12")
    +
    +DeleteAllPlots()
    +
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "PointVar")
    +p.pointSize = 0.5
    +p.pointSizeVarEnabled = 0
    +SetPlotOptions(p)
    +DrawPlots()
    +Test("meshtype_point_13")
    +
    +# the next two not only test using poingSizeVar, but also DataSetVerifier which
    +# will reduce the number of values in the var array to match the actual number
    +# of points in the point mesh
    +p.pointSize = 0.5
    +p.pointSizeVarEnabled = 1
    +p.pointSizeVar = "hardyglobal"
    +p.pointType = p.Box
    +SetPlotOptions(p)
    +Test("meshtype_point_14")
    +
    +#can we scale by a a vector variable?
    +p.pointSizeVar = "grad"
    +SetPlotOptions(p)
    +Test("meshtype_point_15")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Mesh", "PointMesh")
    +m = MeshAttributes()
    +m.meshColorSource = m.MeshCustom
    +m.meshColor = (0, 122, 200, 255)
    +m.pointType = m.Box
    +m.pointSize = 0.5
    +SetPlotOptions(m)
    +DrawPlots()
    +Test("meshtype_point_16")
    +
    +m.pointSizeVarEnabled = 1
    +m.pointSizeVar = "PointVar"
    +SetPlotOptions(m)
    +Test("meshtype_point_17")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/meshtype_rect3d.html b/2024-12-12-22:00/poodle_trunk_serial/meshtype_rect3d.html new file mode 100644 index 000000000..403e7340d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/meshtype_rect3d.html @@ -0,0 +1,48 @@ + +Results for meshtype/rect3d.py + +

    Results of VisIt Regression Test - meshtype/rect3d

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    rect3d_010.000.00
    rect3d_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/meshtype_rect3d_py.html b/2024-12-12-22:00/poodle_trunk_serial/meshtype_rect3d_py.html new file mode 100644 index 000000000..40079a62e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/meshtype_rect3d_py.html @@ -0,0 +1,80 @@ +meshtype/rect3d.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  rect3d.py
    +#
    +#  Tests:      mesh      - 3D regular, single domain
    +#              plots     - pc, contour, mat subset, mesh
    +#              operators - none
    +#              selection - material
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       April 17, 2002
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Wed Apr 24 10:04:35 PDT 2002
    +#    Turn off opaque mesh.
    +#
    +#    Kathleen Bonnell, Thu Sep  5 10:55:47 PDT 2002
    +#    Changed the variable format for SubsetPlots, to reflect new interface
    +#    which allows subsets of groups.
    +#
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset plots.
    +#
    +#    Kathleen Bonnell, Thu Sep  4 11:10:11 PDT 2003
    +#    Change the way MeshPlot's opaque mode is set (now an enum, not a bool).
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +AddPlot("Pseudocolor", "d")
    +pc=PseudocolorAttributes()
    +pc.SetOpacityType(pc.Constant)
    +pc.opacity=0.2
    +SetPlotOptions(pc)
    +
    +AddPlot("Mesh", "quadmesh3d")
    +m1=MeshAttributes()
    +m1.opaqueMode=m1.Off
    +SetPlotOptions(m1)
    +
    +AddPlot("Contour", "u")
    +
    +# Turn off alternate materials.
    +silr=SILRestriction()
    +onoff = 0
    +for sets in silr.SetsInCategory('mat1'):
    +    if(onoff == 0):
    +        silr.TurnOffSet(sets)
    +        onoff = 1
    +    else:
    +        onoff = 0
    +
    +AddPlot("FilledBoundary", "mat1")
    +SetPlotSILRestriction(silr)
    +
    +DrawPlots()
    +
    +Test("rect3d_01")
    +
    +v = GetView3D()
    +v.SetViewNormal(.7,.6,.5)
    +SetView3D(v)
    +
    +Test("rect3d_02")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_amr_stitch.html b/2024-12-12-22:00/poodle_trunk_serial/operators_amr_stitch.html new file mode 100644 index 000000000..eae0fabe5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_amr_stitch.html @@ -0,0 +1,84 @@ + +Results for operators/amr_stitch.py + +

    Results of VisIt Regression Test - operators/amr_stitch

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    amr_stitch_010.000.00
    amr_stitch_020.000.00
    amr_stitch_030.000.00
    amr_stitch_040.000.00
    amr_stitch_050.000.00
    amr_stitch_060.000.00
    amr_stitch_070.000.00
    amr_stitch_080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_amr_stitch_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_amr_stitch_py.html new file mode 100644 index 000000000..ebd633d4e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_amr_stitch_py.html @@ -0,0 +1,49 @@ +operators/amr_stitch.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  amr_stitch.py
    +#
    +#  Programmer: Gunther H. Weber
    +#  Date:       April 29, 2014
    +#
    +#  Modifications:
    +#
    +#      Alister Maguire, Wed Jan  6 08:31:05 PST 2021
    +#      Added the -enable-ghosts-for-t-intersections flag, as it
    +#      is now disabled by default.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# NOTE: the comment below tells visit to use the
    +# 'enable-ghosts-for-t-intersections' flag when running this test.
    +# This flag must be enabled for this test to succeed.
    +
    +#VARGS: "-enable-ghosts-for-t-intersections"
    +
    +# Turn off all annotation
    +a = AnnotationAttributes()
    +TurnOffAllAnnotations(a)
    +
    +# Files used for tests
    +filename_template = "AMRStitchCell_test_data/AMRStitchCellTest.%d.no_ghost.phi.%dd.hdf5"
    +test_case_filenames = [ data_path(filename_template % ( case, dim )) for dim in range(2,4) for case in range(1,5) ]
    +
    +# Setup plots and run first test
    +OpenDatabase(test_case_filenames[0])
    +AddPlot("Contour", "phi")
    +AddOperator("AMRStitchCell")
    +DrawPlots()
    +Test("amr_stitch_01")
    +
    +# Perform remaining tests
    +for test_no, ds in enumerate(test_case_filenames[1:], 2):
    +    ReplaceDatabase(ds)
    +    Test("amr_stitch_%02d" % test_no)
    +
    +# Clean-up
    +DeleteAllPlots()
    +for ds in test_case_filenames:
    +    CloseDatabase(ds)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_box.html b/2024-12-12-22:00/poodle_trunk_serial/operators_box.html new file mode 100644 index 000000000..f55d5797b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_box.html @@ -0,0 +1,84 @@ + +Results for operators/box.py + +

    Results of VisIt Regression Test - operators/box

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_box010.000.00
    ops_box020.000.00
    ops_box030.000.00
    ops_box040.000.00
    ops_box050.000.00
    ops_box060.000.00
    ops_box070.000.00
    ops_box080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_box_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_box_py.html new file mode 100644 index 000000000..6e1434210 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_box_py.html @@ -0,0 +1,155 @@ +operators/box.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  box.py
    +#
    +#  Tests:      mesh      - 3D point, single domain,
    +#                          3D rectilinear, multiple domain.
    +#                          3D unstructured, single domain.
    +#              plots     - pc, vector, contour, vector
    +#
    +#  Defect ID:  3160
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 26, 2003
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset plots.
    +#
    +#    Hank Childs, Wed Jun  4 08:56:08 PDT 2008
    +#    Test facelist filter after applying a box.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# 3D, rectilinear.  Multi-block  Tests ghost zones as well.
    +OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +
    +atts = BoxAttributes()
    +atts.amount = 0
    +atts.minx = 0.4
    +atts.maxx = 0.7
    +atts.miny = 0.1
    +atts.maxy = 0.9
    +atts.minz = 0.4
    +atts.maxz = 1.7
    +
    +AddPlot("Pseudocolor", "dist")
    +AddOperator("Box")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +view = GetView3D()
    +view.viewNormal = (0.79, -0.035, 0.61)
    +view.focus = (0.5, 0.5, 0.5)
    +view.viewUp = (0, 1, 0)
    +view.parallelScale = 0.765
    +view.nearPlane = -0.25
    +view.farPlane = 1.73
    +SetView3D(view)
    +Test("ops_box01")
    +DeleteAllPlots()
    +
    +
    +# 3D, unstructured
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Box")
    +atts.minx = -5
    +atts.maxx = +5
    +atts.miny = -5
    +atts.maxy = +5
    +atts.minz = -5
    +atts.maxz = +5
    +SetOperatorOptions(atts)
    +DrawPlots()
    +view.viewNormal = (0.56, 0.81, -0.14)
    +view.focus = (0, 0, 0)
    +view.viewUp = (-0.66, 0.55, 0.49)
    +view.parallelScale = 11
    +view.nearPlane = -34
    +view.farPlane = 34
    +SetView3D(view)
    +Test("ops_box02")
    +
    +
    +atts.amount = 1
    +SetOperatorOptions(atts)
    +Test("ops_box03")
    +
    +DeleteAllPlots()
    +
    +view.parallelScale = 14
    +SetView3D(view)
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Vector", "airVfGradient")
    +vec = VectorAttributes()
    +SetPlotOptions(vec)
    +atts.minx = -5
    +atts.maxx = +5
    +atts.miny = -10
    +atts.maxy = +10
    +atts.minz = -10
    +atts.maxz = +10
    +AddOperator("Box")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_box04")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Contour", "hardyglobal")
    +AddOperator("Box")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_box05")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Mesh", "PointMesh")
    +mesh = MeshAttributes()
    +mesh.pointType = mesh.Box
    +mesh.pointSizeVar = "PointVar"
    +mesh.pointSizeVarEnabled = 1
    +SetPlotOptions(mesh)
    +AddOperator("Box")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_box06")
    +
    +# This final test should be blank.  The box operator was crashing with
    +# point meshes that fell outside the box previously.  ('3160)
    +atts.minx = -30
    +atts.maxx = -20
    +SetOperatorOptions(atts)
    +Test("ops_box07")
    +
    +# If we apply the box operator to a rectilinear grid, it can change
    +# the "Extents", which can screw up the facelist filter.  Test that
    +# no one has undone the fix from Paul Selby.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Box")
    +atts.minx = 0.2
    +atts.maxx = 1.0
    +SetOperatorOptions(atts)
    +DrawPlots()
    +view.focus = (0.5, 0.5, 0.5)
    +view.parallelScale = 1.4
    +SetView3D(view)
    +Test("ops_box08")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_cart_proj.html b/2024-12-12-22:00/poodle_trunk_serial/operators_cart_proj.html new file mode 100644 index 000000000..bd966c11c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_cart_proj.html @@ -0,0 +1,60 @@ + +Results for operators/cart_proj.py + +

    Results of VisIt Regression Test - operators/cart_proj

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_cart_proj_00.000.00
    ops_cart_proj_10.000.00
    ops_cart_proj_20.000.00
    ops_cart_proj_30.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_cart_proj_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_cart_proj_py.html new file mode 100644 index 000000000..0df4dce2f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_cart_proj_py.html @@ -0,0 +1,60 @@ +operators/cart_proj.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  cart_proj.py
    +#
    +#  Tests:
    +#              plots     - pc
    +#              operators - CartographicProjection
    +#
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:      Tue Sep 25 08:41:19 PDT 2012
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# Test 2D Case
    +
    +OpenDatabase(data_path("netcdf_test_data/NASA_vegetation_lai.cdf"))
    +
    +v = View2DAttributes()
    +v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +SetView2D(v)
    +
    +
    +AddPlot("Pseudocolor", "lai")
    +DrawPlots()
    +ResetView()
    +Test("ops_cart_proj_0")
    +
    +AddOperator("CartographicProjection")
    +cart_proj_atts = CartographicProjectionAttributes()
    +cart_proj_atts.projectionID = cart_proj_atts.hammer
    +SetOperatorOptions(cart_proj_atts)
    +DrawPlots()
    +ResetView()
    +Test("ops_cart_proj_1")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(data_path("netcdf_test_data/tas_mean_T63.nc"))
    +
    +AddPlot("Pseudocolor", "tas")
    +DrawPlots()
    +ResetView()
    +Test("ops_cart_proj_2")
    +
    +AddOperator("CartographicProjection")
    +cart_proj_atts = CartographicProjectionAttributes()
    +cart_proj_atts.projectionID = cart_proj_atts.hammer
    +SetOperatorOptions(cart_proj_atts)
    +DrawPlots()
    +ResetView()
    +Test("ops_cart_proj_3")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_clip.html b/2024-12-12-22:00/poodle_trunk_serial/operators_clip.html new file mode 100644 index 000000000..70cf3f1c9 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_clip.html @@ -0,0 +1,180 @@ + +Results for operators/clip.py + +

    Results of VisIt Regression Test - operators/clip

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    clip000.000.00
    clip010.000.00
    clip020.000.00
    clip030.000.00
    clip040.000.00
    clip050.000.00
    clip060.000.00
    clip070.000.00
    clip080.000.00
    clip090.000.00
    clip100.000.00
    clip110.000.00
    clip120.000.00
    clip130.000.00
    clip140.000.00
    clip150.000.00
    clip160.000.00
    clip170.000.00
    clip180.000.00
    clip190.000.00
    clip200.000.00
    clip_globe_fast0.000.00
    clip_globe_accurate0.000.00
    crinkle_clip_globe0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_clip_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_clip_py.html new file mode 100644 index 000000000..158eab411 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_clip_py.html @@ -0,0 +1,143 @@ +operators/clip.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  clip.py
    +#
    +#  Tests:      mesh      - 2D rectilinear, 2D curvilinear,
    +#                          3D rectilinear, 3D curvilinear,
    +#                          3D unstructured
    +#
    +#  Defect ID:  7470, 7195
    +#
    +#  Programmer: Hank Childs
    +#  Date:       September 1, 2006
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Wed Sep  6 16:56:27 PDT 2006
    +#    Test clip operator with no plane and no sphere (this was crashing the
    +#    engine due to a memory problem) ['7195]
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Alister Maguire, Fri Nov 13 14:07:54 PST 2020
    +#    Added a test for the crinkle clip.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def TestOne(filename, index, zonal_var, nodal_var, radius):
    +   OpenDatabase(filename)
    +   c = ClipAttributes()
    +   c.funcType = c.Sphere
    +   c.radius = radius
    +   c.sphereInverse = 1
    +   AddPlot("Pseudocolor", zonal_var)
    +   AddOperator("Clip")
    +   SetOperatorOptions(c)
    +   DrawPlots()
    +   name = "clip%02d" %(index+0)
    +   Test(name)
    +   ChangeActivePlotsVar(nodal_var)
    +   name = "clip%02d" %(index+1)
    +   Test(name)
    +   c.funcType = c.Plane
    +   c.plane1Origin = (0.5, 0.5, 0)
    +   c.plane1Normal = (1, 1, 0)
    +   SetOperatorOptions(c)
    +   name = "clip%02d" %(index+2)
    +   Test(name)
    +   ChangeActivePlotsVar(zonal_var)
    +   name = "clip%02d" %(index+3)
    +   Test(name)
    +   DeleteAllPlots()
    +
    +TestOne(silo_data_path("rect2d.silo"), 4*0, "d", "u", 0.5)
    +TestOne(silo_data_path("rect3d.silo"), 4*1, "d", "u", 0.5)
    +TestOne(silo_data_path("curv2d.silo"), 4*2, "d", "u", 3)
    +TestOne(silo_data_path("curv3d.silo"), 4*3, "d", "u", 4)
    +TestOne(silo_data_path("globe.silo"), 4*4, "t", "u", 5)
    +
    +# Test doing a clip where there are no planes selected.  This has caused
    +# a crash ['7195].
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor" , "d")
    +AddOperator("Clip")
    +c = ClipAttributes()
    +c.funcType = c.Plane
    +c.plane1Status = 0
    +c.plane2Status = 0
    +c.plane3Status = 0
    +SetOperatorOptions(c)
    +DrawPlots()
    +
    +test_idx = 20
    +name = "clip%02d" %(test_idx)
    +Test(name)
    +test_idx += 1
    +
    +# Test accurate vs. fast.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Mesh", "mesh1")
    +c = ClipAttributes()
    +c.funcType = c.Plane  # Plane, Sphere
    +c.plane1Status = 1
    +c.plane2Status = 1
    +c.plane3Status = 0
    +c.plane1Origin = (0, 2.37883, 0)
    +c.plane2Origin = (0, 2.37883, 0)
    +c.plane3Origin = (0, 2.37883, 0)
    +c.plane1Normal = (1, 0, 0)
    +c.plane2Normal = (0, 1, 0)
    +c.plane3Normal = (0, 0, 1)
    +c.planeInverse = 0
    +c.center = (0, 0, 0)
    +c.radius = 1
    +c.sphereInverse = 0
    +AddOperator("Clip")
    +SetOperatorOptions(c)
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.0548192, 0.0422395, 0.997602)
    +v.focus = (0.427242, 3.08232, -0.155563)
    +v.viewUp = (0.195041, 0.979406, -0.0521867)
    +v.viewAngle = 30
    +v.parallelScale = 4.21585
    +v.nearPlane = -34.5981
    +v.farPlane = 34.5981
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, -0.0372553, 0)
    +
    +DrawPlots()
    +SetView3D(v)
    +
    +Test("clip_globe_fast")
    +
    +c.quality = c.Accurate
    +SetOperatorOptions(c)
    +Test("clip_globe_accurate")
    +
    +DeleteAllPlots()
    +ResetView()
    +
    +#
    +# Test the crinkle clip.
    +#
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Clip")
    +c = ClipAttributes()
    +c.crinkleClip = 1
    +SetOperatorOptions(c)
    +DrawPlots()
    +Test("crinkle_clip_globe")
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_cracksclipper.html b/2024-12-12-22:00/poodle_trunk_serial/operators_cracksclipper.html new file mode 100644 index 000000000..0cf37f66a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_cracksclipper.html @@ -0,0 +1,72 @@ + +Results for operators/cracksclipper.py + +

    Results of VisIt Regression Test - operators/cracksclipper

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    CracksClipper_000.000.00
    CracksClipper_010.000.00
    CracksClipper_020.000.00
    CracksClipper_030.000.00
    CracksClipper_040.000.00
    CracksClipper_050.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_cracksclipper_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_cracksclipper_py.html new file mode 100644 index 000000000..78c05738c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_cracksclipper_py.html @@ -0,0 +1,54 @@ +operators/cracksclipper.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  cracksclipper.py
    +#
    +#  Tests:      operators - CracksClipper
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       August 14, 2012
    +#
    +#  Modifications:
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(data_path("vtk_cracked_test_data/cracked_*.vtk database"))
    +AddPlot("Pseudocolor", "operators/CracksClipper/mesh/den")
    +pcAtts = PseudocolorAttributes()
    +pcAtts.minFlag = 1
    +pcAtts.maxFlag = 1
    +pcAtts.min = 1.9
    +pcAtts.max = 3.853
    +SetPlotOptions(pcAtts)
    +
    +
    +v = GetView3D()
    +v.viewNormal = (-0.507948, 0.663707, 0.549074)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (0.388198, 0.745409, -0.541911)
    +v.parallelScale = 0.866025
    +v.nearPlane = -1.73205
    +v.farPlane = 1.73205
    +SetView3D(v)
    +
    +DrawPlots()
    +
    +# Changing time states shows the cracks developing, and demonstrates
    +# the density calculation
    +Test("CracksClipper_00")
    +SetTimeSliderState(1)
    +Test("CracksClipper_01")
    +SetTimeSliderState(3)
    +Test("CracksClipper_02")
    +SetTimeSliderState(5)
    +Test("CracksClipper_03")
    +SetTimeSliderState(12)
    +Test("CracksClipper_04")
    +
    +SetTimeSliderState(14)
    +# Show that normal vars can be used.
    +ChangeActivePlotsVar("ems")
    +# 
    +Test("CracksClipper_05")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_defer_expr.html b/2024-12-12-22:00/poodle_trunk_serial/operators_defer_expr.html new file mode 100644 index 000000000..0e79709fa --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_defer_expr.html @@ -0,0 +1,114 @@ + +Results for operators/defer_expr.py + +

    Results of VisIt Regression Test - operators/defer_expr

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    defer_expr_010.000.00
    defer_expr_020.000.00
    defer_expr_030.000.00
    defer_expr_040.000.00
    defer_expr_050.000.00
    defer_expr_060.000.00
    defer_expr_070.000.00
    defer_expr_080.000.00
    defer_expr_090.000.00
    defer_expr_100.000.00
    defer_expr_110.000.00
    defer_expr_120.000.00
    defer_expr_130.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_defer_expr_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_defer_expr_py.html new file mode 100644 index 000000000..c78bdd884 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_defer_expr_py.html @@ -0,0 +1,248 @@ +operators/defer_expr.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  defer_expr.py
    +#
    +#  Defect ID:  '2433, '1527, '6630, '6631, '6676, '6637
    +#
    +#  Programmer: Hank Childs
    +#  Date:       September 21, 2005
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Thu Dec 29 11:29:08 PST 2005
    +#    Widen color range of vector plot to sidestep precision issues between
    +#    optimized and non-optimized binaries.
    +#
    +#    Hank Childs, Thu Jan 17 15:44:06 PST 2008
    +#    Explicitly specify the color table for the vector plot.  This is an issue
    +#    because this test runs with "-config" (*not* "-noconfig") and the default
    +#    color table can get confused if the user has a color table in his .visit
    +#    directory that collides with the normal default ("hot").  So we're
    +#    skirting that issue by explicitly specifying the color table.
    +#
    +#    Jeremy Meredith, Mon Jul 14 12:28:50 EDT 2008
    +#    Allow the vector plot to show all vectors (even ones not from
    +#    from original cells/nodes) to match the old behavior.
    +#
    +#    Hank Childs, Wed Dec 31 14:32:34 PST 2008
    +#    Rename ResamplePluginAtts to ResampleAtts.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Brad Whitlock, Wed Apr 18 15:40:47 PDT 2012
    +#    Make vectors constant color for test 8.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Remove obsolete 'colorByMag' vector att with 'colorByMagnitude'.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +DefineScalarExpression("en", "external_node(mesh1)")
    +AddPlot("Pseudocolor", "en")
    +AddOperator("Isovolume")
    +iso_atts = IsovolumeAttributes()
    +iso_atts.variable = "t"
    +iso_atts.lbound = 500
    +SetOperatorOptions(iso_atts)
    +AddOperator("Slice")
    +DrawPlots()
    +
    +# Save a picture before deferring the expression evaluation.
    +Test("defer_expr_01")
    +
    +# Test that the external node operator can find the external nodes
    +# on a 2D slice.
    +d = DeferExpressionAttributes()
    +d.exprs = ("en")
    +SetDefaultOperatorOptions(d)
    +AddOperator("DeferExpression")
    +DrawPlots()
    +Test("defer_expr_02")
    +
    +# Now test that the external node expression can find the external nodes
    +# on a 3D dataset (before the slice).  This should be an identical picture
    +# to what's above (bar interpolation from the slice).
    +DemoteOperator(2)
    +DrawPlots()
    +Test("defer_expr_03")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isovolume")
    +iso_atts = IsovolumeAttributes()
    +iso_atts.variable = "t"
    +iso_atts.ubound = 500
    +SetOperatorOptions(iso_atts)
    +AddOperator("DeferExpression")
    +AddOperator("Threshold")
    +thres_atts = ThresholdAttributes()
    +thres_atts.upperBounds = (0.5)
    +thres_atts.outputMeshType = 1
    +thres_atts.listedVarNames = ("en")
    +SetOperatorOptions(thres_atts)
    +DrawPlots()
    +Test("defer_expr_04")
    +
    +DeleteAllPlots()
    +
    +DefineScalarExpression("X1", "coord(mesh1)[0]")
    +DefineScalarExpression("X2", "coord(mesh1)[0]")
    +DefineScalarExpression("X3", "coord(mesh1)[0]")
    +
    +AddPlot("Pseudocolor", "X1")
    +
    +# Transform by 45 degrees.
    +t = TransformAttributes()
    +t.doRotate = 1
    +t.rotateAxis = (0, 1, 0)
    +t.rotateAmount = 45
    +SetDefaultOperatorOptions(t)
    +AddOperator("Transform")
    +
    +# Now evaluate X2 after transforming
    +d.exprs = ("X2")
    +SetDefaultOperatorOptions(d)
    +AddOperator("DeferExpression")
    +
    +# Now threshold out where X2 is bigger than 0 (after the transform)
    +thres_atts.listedVarNames = ("X2")
    +thres_atts.lowerBounds = (0.0)
    +thres_atts.upperBounds = (1000.0)
    +SetDefaultOperatorOptions(thres_atts)
    +AddOperator("Threshold")
    +
    +# Now transform by another 45 degrees
    +AddOperator("Transform")
    +
    +# Evaluate X3 after the new transform.
    +d.exprs = ("X3")
    +SetDefaultOperatorOptions(d)
    +AddOperator("DeferExpression")
    +
    +# Now threshold out where X3 is bigger than 0 (after the new transform)
    +thres_atts.listedVarNames = ("X3")
    +SetDefaultOperatorOptions(thres_atts)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("defer_expr_05")
    +
    +# Now do the same thing, but defer X1 until the end of the transforms.
    +d.exprs = ("X1")
    +SetDefaultOperatorOptions(d)
    +AddOperator("DeferExpression")
    +DrawPlots()
    +# This should be the same geometry as '05, but the color should be different.
    +Test("defer_expr_06")
    +
    +DeleteAllPlots()
    +DefineVectorExpression("normals", "cell_surface_normal(mesh1)")
    +AddPlot("Vector", "normals")
    +v = VectorAttributes()
    +v.origOnly = 0
    +v.min = 0.5
    +v.max = 1.5
    +v.minFlag = 1
    +v.maxFlag = 1
    +v.colorTableName = "hot"
    +v.useStride = 0
    +v.stride = 1
    +SetPlotOptions(v)
    +
    +AddOperator("ExternalSurface")
    +AddOperator("DeferExpression")
    +d.exprs = "normals"
    +SetOperatorOptions(d)
    +DrawPlots()
    +Test("defer_expr_07")
    +
    +DeleteAllPlots()
    +AddPlot("Contour", "t")
    +c = ContourAttributes()
    +c.contourMethod = c.Value
    +c.contourValue = (500)
    +SetPlotOptions(c)
    +AddPlot("Vector", "normals")
    +v = VectorAttributes()
    +v.origOnly = 0
    +v.colorByMagnitude = 0
    +v.vectorColor = (255,255,0,255)
    +SetPlotOptions(v)
    +AddOperator("Isosurface")
    +i = IsosurfaceAttributes()
    +i.contourMethod = i.Value
    +i.contourValue = (500)
    +i.variable = "t"
    +SetOperatorOptions(i)
    +AddOperator("DeferExpression")
    +d.exprs = "normals"
    +SetOperatorOptions(d)
    +DrawPlots()
    +Test("defer_expr_08")
    +
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "mesh_quality/max_edge_length")
    +AddOperator("Slice")
    +DrawPlots()
    +Test("defer_expr_09")
    +
    +d.exprs = ("mesh_quality/max_edge_length")
    +AddOperator("DeferExpression")
    +SetOperatorOptions(d)
    +DrawPlots()
    +Test("defer_expr_10")
    +
    +DeleteAllPlots()
    +r = ResampleAttributes()
    +r.samplesX = 50
    +r.samplesY = 50
    +r.samplesZ = 50
    +r.defaultValue = -100
    +r.distributedResample = 0
    +DefineScalarExpression("procid", "procid(mesh1)")
    +AddPlot("Pseudocolor", "procid")
    +AddOperator("Resample")
    +SetOperatorOptions(r)
    +AddOperator("Threshold")
    +t = ThresholdAttributes()
    +t.lowerBounds = (-10.0)
    +t.listedVarNames = ("u")
    +t.outputMeshType = 1
    +SetOperatorOptions(t)
    +AddOperator("DeferExpression")
    +d.exprs = "procid"
    +SetOperatorOptions(d)
    +DrawPlots()
    +
    +Test("defer_expr_11")
    +
    +r.distributedResample = 1
    +SetOperatorOptions(r)
    +Test("defer_expr_12")
    +
    +DeleteAllPlots()
    +DefineVectorExpression("sn", "recenter(-cell_surface_normal(mesh1))")
    +AddPlot("Vector", "sn")
    +v = VectorAttributes()
    +v.origOnly = 0
    +v.colorTableName = "hot"
    +SetPlotOptions(v)
    +AddOperator("ExternalSurface")
    +AddOperator("DeferExpression")
    +d.exprs = "sn"
    +SetOperatorOptions(d)
    +DrawPlots()
    +Test("defer_expr_13")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_displace.html b/2024-12-12-22:00/poodle_trunk_serial/operators_displace.html new file mode 100644 index 000000000..4bbe5ae53 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_displace.html @@ -0,0 +1,94 @@ + +Results for operators/displace.py + +

    Results of VisIt Regression Test - operators/displace

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_disp010.000.00
    ops_disp020.000.00
    ops_disp030.000.00
    ops_disp040.000.00
    ops_disp050.000.00
    ops_disp060.000.00
    ops_disp070.000.00
    ops_disp080 modifications totalling 0 lines
    ops_disp090.000.00
    ops_disp100.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_displace_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_displace_py.html new file mode 100644 index 000000000..7121c6054 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_displace_py.html @@ -0,0 +1,129 @@ +operators/displace.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  displace.py
    +#
    +#  Tests:      mesh      - 2D/3D rectilinear, single domain.
    +#                          3D unstructured, single domain.
    +#                          2D/3D curvilinear, single domain.
    +#              plots     - pc, mesh
    +#
    +#  Defect ID:  '5921, '7486, '8160, '8259, '8265
    +#
    +#  Programmer: Hank Childs
    +#  Date:       May 6, 2004
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Tue Jun  7 09:47:58 PDT 2005
    +#    Added tests for filled boundary with cell-based vectors ['5921].
    +#
    +#    Hank Childs, Tue Sep  5 16:39:40 PDT 2006
    +#    Added test for when users put in non-vectors ['7486].
    +#
    +#    Hank Childs, Fri Sep 28 12:28:30 PDT 2007
    +#    Add tests for three recent bugs ['8160, '8259, '8265]
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +disp = DisplaceAttributes()
    +disp.variable = "vel"
    +SetDefaultOperatorOptions(disp)
    +
    +# 2D, rectilinear.
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Displace")
    +AddPlot("Mesh", "quadmesh2d")
    +AddOperator("Displace")
    +DrawPlots()
    +
    +Test("ops_disp01")
    +
    +SetActivePlots(1)
    +DeleteActivePlots()
    +ReplaceDatabase(silo_data_path("curv2d.silo"))
    +
    +ResetView()
    +
    +Test("ops_disp02")
    +
    +ReplaceDatabase(silo_data_path("curv3d.silo"))
    +
    +v = GetView3D()
    +v.viewNormal = (0.61, -0.61, 0.61)
    +SetView3D(v)
    +
    +Test("ops_disp03")
    +
    +ReplaceDatabase(silo_data_path("rect3d.silo"))
    +
    +Test("ops_disp04")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("ucd3d.silo"))
    +
    +
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Displace")
    +disp.factor = 5
    +SetOperatorOptions(disp)
    +DrawPlots()
    +
    +Test("ops_disp05")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Displace")
    +disp.variable = "vel"
    +disp.factor = 1
    +SetOperatorOptions(disp)
    +DrawPlots()
    +Test("ops_disp06")
    +
    +disp.variable = "disp"
    +SetOperatorOptions(disp)
    +Test("ops_disp07")
    +
    +disp.variable = "t"
    +SetOperatorOptions(disp)
    +error = GetLastError()
    +TestText("ops_disp08", error)
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(data_path("boxlib_test_data/2D/plt0822/Header"))
    +
    +
    +#   8265: cell-centered vector with rectilinear mesh 
    +# + 8259: file format the declares itself having 2D vectors + displace
    +AddPlot("Pseudocolor", "density")
    +AddOperator("Displace")
    +disp.variable = "mom"
    +disp.factor = 1e-12 # this way the quads won't overlap each other.
    +SetOperatorOptions(disp)
    +DrawPlots()
    +Test("ops_disp09")
    +
    +DeleteAllPlots()
    +
    +# '8160: subset plot displaced by a vector
    +AddPlot("Subset", "patches")
    +AddOperator("Displace")
    +SetOperatorOptions(disp)
    +DrawPlots()
    +Test("ops_disp10")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_dual_mesh.html b/2024-12-12-22:00/poodle_trunk_serial/operators_dual_mesh.html new file mode 100644 index 000000000..275e61cdf --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_dual_mesh.html @@ -0,0 +1,110 @@ + +Results for operators/dual_mesh.py + +

    Results of VisIt Regression Test - operators/dual_mesh

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_dualmesh_pc_plot_2d_d_000.000.00
    ops_dualmesh_pc_plot_2d_d_010.000.00
    ops_dualmesh_pc_plot_2d_d_020.000.00
    ops_dualmesh_mesh_plot_2d_000.000.00
    ops_dualmesh_mesh_plot_2d_0189.7733.58
    ops_dualmesh_mesh_plot_2d_020.000.00
    ops_dual_mesh_pc_plot_3d_d_000.000.00
    ops_dual_mesh_pc_plot_3d_d_010.000.00
    ops_dual_mesh_pc_plot_3d_d_020.000.00
    ops_dual_mesh_pc_plot_3d_t_000.000.00
    ops_dual_mesh_pc_plot_3d_t_010.000.00
    ops_dual_mesh_pc_plot_3d_t_020.000.00
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_dual_mesh_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_dual_mesh_py.html new file mode 100644 index 000000000..adc8e6230 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_dual_mesh_py.html @@ -0,0 +1,111 @@ +operators/dual_mesh.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  dual_mesh.py
    +#
    +#  Tests:      mesh      - 2D rectilinear, single domain.
    +#                          3D rectilinear, single domain.
    +#              plots     - pc, mesh
    +#              operators - DualMesh
    +#
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       May 13, 2008
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# Test 2D Case
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +Test("ops_dualmesh_pc_plot_2d_d_00")
    +
    +# test auto, Zones to Nodes
    +AddOperator("DualMesh")
    +DrawPlots()
    +Test("ops_dualmesh_pc_plot_2d_d_01")
    +
    +# test auto, Nodes to Zones
    +AddOperator("DualMesh")
    +DrawPlots()
    +Test("ops_dualmesh_pc_plot_2d_d_02")
    +
    +DeleteAllPlots()
    +
    +# Test Mesh Plot auto
    +AddPlot("Mesh", "quadmesh2d")
    +DrawPlots()
    +Test("ops_dualmesh_mesh_plot_2d_00")
    +
    +AddOperator("DualMesh")
    +DrawPlots()
    +Test("ops_dualmesh_mesh_plot_2d_01")
    +
    +AddOperator("DualMesh")
    +DrawPlots()
    +Test("ops_dualmesh_mesh_plot_2d_02")
    +DeleteAllPlots()
    +
    +# Test 3D Case
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +view = GetView3D()
    +view.viewNormal = (-0.5, 0.5, 0.7172)
    +SetView3D(view)
    +DrawPlots()
    +Test("ops_dual_mesh_pc_plot_3d_d_00")
    +
    +# Test explicit Zones to Nodes
    +AddOperator("DualMesh")
    +DualMeshAtts = DualMeshAttributes()
    +DualMeshAtts.mode = DualMeshAtts.ZonesToNodes
    +SetOperatorOptions(DualMeshAtts)
    +DrawPlots()
    +Test("ops_dual_mesh_pc_plot_3d_d_01")
    +
    +# Test explicit Nodes to Zones (round trip)
    +AddOperator("DualMesh")
    +DualMeshAtts = DualMeshAttributes()
    +DualMeshAtts.mode = DualMeshAtts.NodesToZones
    +SetOperatorOptions(DualMeshAtts)
    +DrawPlots()
    +Test("ops_dual_mesh_pc_plot_3d_d_02")
    +
    +DeleteAllPlots()
    +
    +# Test Nodes to Zones <-> Zones to Nodes Round Trip
    +AddPlot("Pseudocolor", "t")
    +DrawPlots()
    +Test("ops_dual_mesh_pc_plot_3d_t_00")
    +
    +AddOperator("DualMesh")
    +DualMeshAtts = DualMeshAttributes()
    +DualMeshAtts.mode = DualMeshAtts.NodesToZones
    +SetOperatorOptions(DualMeshAtts)
    +DrawPlots()
    +Test("ops_dual_mesh_pc_plot_3d_t_01")
    +
    +AddOperator("DualMesh")
    +DualMeshAtts = DualMeshAttributes()
    +DualMeshAtts.mode = DualMeshAtts.ZonesToNodes
    +SetOperatorOptions(DualMeshAtts)
    +DrawPlots()
    +Test("ops_dual_mesh_pc_plot_3d_t_02")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_elevate.html b/2024-12-12-22:00/poodle_trunk_serial/operators_elevate.html new file mode 100644 index 000000000..24476e426 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_elevate.html @@ -0,0 +1,132 @@ + +Results for operators/elevate.py + +

    Results of VisIt Regression Test - operators/elevate

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    elevate010.000.00
    elevate020.000.00
    elevate030.000.00
    elevate040.000.00
    elevate050.000.00
    elevate060.000.00
    elevate070.000.00
    elevate080.000.00
    elevate090.000.00
    elevate100.000.00
    elevate110.000.00
    elevate120.000.00
    elevate130.000.00
    elevate140.000.00
    elevate150.000.00
    elevate160.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_elevate_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_elevate_py.html new file mode 100644 index 000000000..8edb1fc16 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_elevate_py.html @@ -0,0 +1,164 @@ +operators/elevate.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  elevate.py
    +#
    +#  Tests:      mesh      - 2D rectilinear
    +#                          3D rectilinear, multiple domain,
    +#                          2D curvilinear, multiple domain
    +#              plots     - pc, mesh, filled boundary
    +#              operators - elevate
    +#              selection - none
    +#
    +#  Defect ID:  '5379, '5934 '6260, '6768
    +#
    +#  Programmer: Hank Childs
    +#  Date:       February 3, 2005
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Tue Jun  7 14:16:02 PDT 2005
    +#    Add tests for lighting of slices after elevation.
    +#
    +#    Hank Childs, Tue Nov 15 07:17:22 PST 2005
    +#    Add tests for macro expressions as secondary variables.
    +#
    +#    Hank Childs, Thu Jan 10 15:52:00 PST 2008
    +#    Add test for recenter expression with material plot.
    +#
    +#    Hank Childs, Wed Jan 16 17:26:03 PST 2008
    +#    Add testing for the "zeroFlag".
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +#One zonal variable
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Elevate")
    +DrawPlots()
    +v = GetView3D()
    +v.viewNormal = (-0.707, 0, 0.707)
    +SetView3D(v)
    +Test("elevate01")
    +
    +#One nodal variable
    +ChangeActivePlotsVar("d")
    +Test("elevate02")
    +
    +elevate_atts = ElevateAttributes()
    +DefineScalarExpression("d_mod", "0.1*d")
    +elevate_atts.variable = "d_mod"
    +elevate_atts.useXYLimits = elevate_atts.Never
    +SetOperatorOptions(elevate_atts)
    +Test("elevate03")
    +
    +elevate_atts.useXYLimits = elevate_atts.Auto
    +SetOperatorOptions(elevate_atts)
    +Test("elevate04")
    +
    +#Primary variable zonal, Secondary variable zonal 
    +ChangeActivePlotsVar("p")
    +elevate_atts.variable = "d"
    +SetOperatorOptions(elevate_atts)
    +Test("elevate05")
    +
    +#Primary variable zonal, secondary nodal.
    +elevate_atts.variable = "u"
    +SetOperatorOptions(elevate_atts)
    +Test("elevate06")
    +
    +#Primary variable nodal, secondary nodal.
    +ChangeActivePlotsVar("v")
    +Test("elevate07")
    +
    +#Primary variable nodal, secondary zonal.
    +elevate_atts.variable = "p"
    +SetOperatorOptions(elevate_atts)
    +Test("elevate08")
    +
    +elevate_atts.useXYLimits = elevate_atts.Never
    +SetOperatorOptions(elevate_atts)
    +Test("elevate09")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Mesh", "quadmesh2d")
    +AddOperator("Elevate")
    +elevate_atts.variable = "p"
    +elevate_atts.useXYLimits = elevate_atts.Always
    +SetOperatorOptions(elevate_atts)
    +DrawPlots()
    +Test("elevate10")
    +
    +DeleteAllPlots()
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Elevate")
    +elevate_atts.variable = "u"
    +elevate_atts.useXYLimits = elevate_atts.Always
    +SetOperatorOptions(elevate_atts)
    +DrawPlots()
    +Test("elevate11")
    +
    +elevate_atts.useXYLimits = elevate_atts.Never
    +SetOperatorOptions(elevate_atts)
    +DrawPlots()
    +Test("elevate12")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Slice")
    +AddOperator("Elevate")
    +DrawPlots()
    +Test("elevate13")
    +
    +# Testing expressions.  Test that macro expressions work as secondary
    +# variables ('6768).
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +DefineScalarExpression("vv", "hgslice+polar_radius(Mesh2D)")
    +AddPlot("Pseudocolor", "hgslice")
    +AddOperator("Elevate")
    +elevate_atts.variable = "vv"
    +elevate_atts.useXYLimits = elevate_atts.Always
    +SetOperatorOptions(elevate_atts)
    +DrawPlots()
    +Test("elevate14")
    +
    +# Filled boundary with recentered expression
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +DefineScalarExpression("d2", "recenter(d)")
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Elevate")
    +elevate_atts.variable = "d2"
    +elevate_atts.useXYLimits = elevate_atts.Always
    +SetOperatorOptions(elevate_atts)
    +DrawPlots()
    +Test("elevate15")
    +
    +# Boundary plots that are elevated by zero height (no variable). '8346.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("ucd2d.silo"))
    +
    +AddPlot("Boundary", "mat1")
    +AddOperator("Elevate")
    +e = ElevateAttributes()
    +e.zeroFlag = 1
    +SetOperatorOptions(e)
    +DrawPlots()
    +v = GetView3D()
    +v.viewNormal = (0.5, 0.5, 0.5)
    +SetView3D(v)
    +Test("elevate16")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_ex_surf.html b/2024-12-12-22:00/poodle_trunk_serial/operators_ex_surf.html new file mode 100644 index 000000000..b90b3a303 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_ex_surf.html @@ -0,0 +1,56 @@ + +Results for operators/ex_surf.py + +

    Results of VisIt Regression Test - operators/ex_surf

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_ex_surf_010.000.00
    ops_ex_surf_020 modifications totalling 0 lines
    ops_ex_surf_030 modifications totalling 0 lines
    ops_ex_surf_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_ex_surf_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_ex_surf_py.html new file mode 100644 index 000000000..b90417a22 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_ex_surf_py.html @@ -0,0 +1,51 @@ +operators/ex_surf.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  external_surface.py
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 24, 2005
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("ExternalSurface")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.707, 0, 0.707)
    +v.nearPlane = 0
    +SetView3D(v)
    +
    +Test("ops_ex_surf_01")
    +
    +Query("NumZones", "actual")
    +t = GetQueryOutputString()
    +TestText("ops_ex_surf_02", t)
    +
    +es = ExternalSurfaceAttributes()
    +es.removeGhosts = 1
    +SetOperatorOptions(es)
    +
    +Query("NumZones", "actual")
    +t = GetQueryOutputString()
    +TestText("ops_ex_surf_03", t)
    +
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("ucd2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("ExternalSurface")
    +DrawPlots()
    +Test("ops_ex_surf_04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_explode.html b/2024-12-12-22:00/poodle_trunk_serial/operators_explode.html new file mode 100644 index 000000000..0f0d4e09d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_explode.html @@ -0,0 +1,180 @@ + +Results for operators/explode.py + +

    Results of VisIt Regression Test - operators/explode

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    explode_globe_000.000.00
    explode_globe_010.000.00
    explode_globe_020.000.00
    explode_globe_030.000.00
    explode_ucd3d_000.000.00
    explode_ucd3d_020.000.00
    explode_ucd3d_030.000.00
    explode_ucd3d_040.000.00
    explode_ucd3d_050.000.00
    explode_ucd3d_060.000.00
    explode_ucd3d_070.000.00
    explode_ucd3d_080.000.00
    explode_rect3d_000.000.00
    explode_multi_rect3d_000.000.00
    explode_tire_000.000.00
    explode_tire_010.000.00
    explode_tire_020.000.00
    explode_quad_disk_000.000.00
    recenter_000.000.00
    recenter_010.000.00
    recenter_020.000.00
    explode_domains_000.000.00
    explode_domains_010.000.00
    explode_repeat_labels_000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_explode_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_explode_py.html new file mode 100644 index 000000000..2d1f16d03 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_explode_py.html @@ -0,0 +1,580 @@ +operators/explode.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  explode.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, single domain, 
    +#                           multi domain
    +#                          3D unstructured, single domain
    +#                          3D curvilinear, single domain
    +#                          2D unstructured, single domain
    +#              plots     - filled boundary, pseudocolor
    +#              operators - explode
    +#
    +#  Programmer: Alister Maguire
    +#  Date: Tue Jan  2 15:07:06 PST 2018
    +#
    +#  Modifications:
    +#
    +#      Alister Maguire, Wed Jan 17 15:28:46 PST 2018
    +#      Added tests of multi-domain data.    
    +#
    +#      Alister Maguire, Mon Jan 22 11:00:51 PST 2018
    +#      Changed explosion factors to account of scale update. 
    +#
    +#      Alister Maguire, Wed Feb 14 16:07:51 PST 2018
    +#      Updated tests with multiple explosions to be perfomed
    +#      by a single operator.   
    +#
    +#      Alister Maguire, Tue Feb 20 16:22:05 PST 2018
    +#      Added a 2d test with no materials. 
    +#
    +#      Alister Maguire, Wed May  2 12:54:43 PDT 2018
    +#      Added tests for recentering. 
    +#
    +#      Alister Maguire, Tue Sep 18 14:57:03 PDT 2018
    +#      Added tests for exploding domains. 
    +#
    +#      Alister Maguire, Mon Sep 24 13:32:04 PDT 2018
    +#      Added a test for handling repeat labels. 
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def unstructured_explosions():
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    AddPlot("FilledBoundary", "mat1", 1, 1)
    +    DrawPlots()
    +
    +    ResetView()
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0.0758172, -0.984828, -0.156097)
    +    View3DAtts.focus = (0, 0, 0)
    +    View3DAtts.viewUp = (-0.01047, 0.155753, -0.987741)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 17.3205
    +    View3DAtts.nearPlane = -34.641
    +    View3DAtts.farPlane = 34.641
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 0.826446
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0, 0, 0)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +    AddOperator("Explode")
    +    mainAtts = ExplodeAttributes()
    +
    +    # Explode one material by a plane
    +    atts1 = ExplodeAttributes()
    +    atts1.explosionType = atts1.Plane
    +    atts1.planePoint = (0, 0, 0)
    +    atts1.planeNorm = (1, 0, 0)
    +    atts1.materialExplosionFactor = 1
    +    atts1.material = "4"
    +    atts1.explodeMaterialCells = 1
    +    atts1.cellExplosionFactor = .8
    +    atts1.explosionPattern = atts1.Impact
    +    mainAtts.AddExplosions(atts1)
    +    SetOperatorOptions(mainAtts, 1)
    +    DrawPlots()
    +
    +    Test("explode_globe_00")
    +
    +    # Explode second material by plane
    +    atts2 = ExplodeAttributes()
    +    atts2.explosionType = atts2.Plane
    +    atts2.planePoint = (0, 0, 0)
    +    atts2.planeNorm = (0, 0, 1)
    +    atts2.materialExplosionFactor = 1
    +    atts2.material = "3"
    +    atts2.explodeMaterialCells = 1
    +    atts2.cellExplosionFactor = .8
    +    atts2.explosionPattern = atts2.Impact
    +    mainAtts.AddExplosions(atts2)
    +    SetOperatorOptions(mainAtts, 1)
    +    DrawPlots()
    +
    +    Test("explode_globe_01")
    +
    +    # Explode third material by plane
    +    atts3 = ExplodeAttributes()
    +    atts3.explosionType = atts3.Plane
    +    atts3.planePoint = (0, 0, 0)
    +    atts3.planeNorm = (0, 0, 1)
    +    atts3.materialExplosionFactor = 1
    +    atts3.material = "1"
    +    atts3.explodeMaterialCells = 1
    +    atts3.cellExplosionFactor = .3
    +    atts3.explosionPattern = atts3.Impact
    +    mainAtts.AddExplosions(atts3)
    +    SetOperatorOptions(mainAtts, 1)
    +    DrawPlots()
    +
    +    Test("explode_globe_02")
    +
    +    # Explode material by point
    +    atts4 = ExplodeAttributes()
    +    atts4.explosionType = atts4.Point
    +    atts4.explosionPoint = (0, 0, 0)
    +    atts4.materialExplosionFactor = 1
    +    atts4.material = "2"
    +    atts4.explodeMaterialCells = 1
    +    atts4.cellExplosionFactor = .1
    +    atts4.explosionPattern = atts4.Impact  # Impact, Scatter
    +    mainAtts.AddExplosions(atts4)
    +    SetOperatorOptions(mainAtts, 1)
    +    DrawPlots()
    +    Test("explode_globe_03")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +def curvilinear_explosions():
    +    OpenDatabase(silo_data_path("ucd3d.silo"))
    +    AddPlot("Pseudocolor", "v", 1, 1)
    +    AddOperator("Explode", 1)
    +    DrawPlots()
    +
    +    ResetView()
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (-0.706303, 0.44773, 0.548338)
    +    View3DAtts.focus = (0, 3.41092, 10)
    +    View3DAtts.viewUp = (0.262178, 0.884949, -0.384874)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 17.0459
    +    View3DAtts.nearPlane = -34.641
    +    View3DAtts.farPlane = 34.641
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 0.926446
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0, 3.41092, 10)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +    # Explode by cylinder without radius 
    +    ExplodeAtts = ExplodeAttributes()
    +    ExplodeAtts.explosionType = ExplodeAtts.Cylinder
    +    ExplodeAtts.cylinderPoint1 = (-5, 0, 20)
    +    ExplodeAtts.cylinderPoint2 = (5, 5, 0)
    +    ExplodeAtts.materialExplosionFactor = 1
    +    ExplodeAtts.material = "1"
    +    ExplodeAtts.cylinderRadius = 0
    +    ExplodeAtts.explodeMaterialCells = 1
    +    ExplodeAtts.cellExplosionFactor = 1
    +    ExplodeAtts.explosionPattern = ExplodeAtts.Impact
    +    ExplodeAtts.explodeAllCells = 0
    +    SetOperatorOptions(ExplodeAtts, 1)
    +
    +    Test("explode_ucd3d_00")
    +
    +    # Explode by plane
    +    ExplodeAtts = ExplodeAttributes()
    +    ExplodeAtts.explosionType = ExplodeAtts.Plane
    +    ExplodeAtts.explodeMaterialCells = 0
    +    ExplodeAtts.planePoint = (0, 2, 20)
    +    ExplodeAtts.planeNorm = (0, 1, 0)
    +    ExplodeAtts.materialExplosionFactor = 1
    +    ExplodeAtts.material = "4"
    +    ExplodeAtts.explosionPattern = ExplodeAtts.Impact
    +    ExplodeAtts.explodeAllCells = 0
    +    SetOperatorOptions(ExplodeAtts, 1)
    +
    +    Test("explode_ucd3d_02")
    +
    +    # Explode all cells by point (impact)
    +    ExplodeAtts = ExplodeAttributes()
    +    ExplodeAtts.explosionType = ExplodeAtts.Point
    +    ExplodeAtts.explosionPoint = (0, 0, 0)
    +    ExplodeAtts.materialExplosionFactor = 1
    +    ExplodeAtts.material = "1"
    +    ExplodeAtts.cellExplosionFactor = 1
    +    ExplodeAtts.explosionPattern = ExplodeAtts.Impact
    +    ExplodeAtts.explodeAllCells = 1
    +    SetOperatorOptions(ExplodeAtts, 1)
    +
    +    Test("explode_ucd3d_03")
    +
    +    # Explode all cells by point (impact)
    +    ExplodeAtts = ExplodeAttributes()
    +    ExplodeAtts.explosionType = ExplodeAtts.Point
    +    ExplodeAtts.explosionPoint = (0, 3, 10)
    +    ExplodeAtts.materialExplosionFactor = 1
    +    ExplodeAtts.material = "1"
    +    ExplodeAtts.cellExplosionFactor = 1
    +    ExplodeAtts.explosionPattern = ExplodeAtts.Impact
    +    ExplodeAtts.explodeAllCells = 1
    +    SetOperatorOptions(ExplodeAtts, 1)
    +
    +    Test("explode_ucd3d_04")
    +
    +    # Explode all cells by point (scatter)
    +    ExplodeAtts = ExplodeAttributes()
    +    ExplodeAtts.explosionType = ExplodeAtts.Point
    +    ExplodeAtts.explosionPoint = (0, 3, 10)
    +    ExplodeAtts.materialExplosionFactor = 1
    +    ExplodeAtts.material = "1"
    +    ExplodeAtts.cellExplosionFactor = 3
    +    ExplodeAtts.explosionPattern = ExplodeAtts.Scatter
    +    ExplodeAtts.explodeAllCells = 1
    +    SetOperatorOptions(ExplodeAtts, 1)
    +
    +    Test("explode_ucd3d_05")
    +
    +    # Explode material by point (scatter)
    +    ExplodeAtts = ExplodeAttributes()
    +    ExplodeAtts.explosionType = ExplodeAtts.Point
    +    ExplodeAtts.explosionPoint = (0, 0, 0)
    +    ExplodeAtts.materialExplosionFactor = 1
    +    ExplodeAtts.material = "1"
    +    ExplodeAtts.explodeMaterialCells = 1
    +    ExplodeAtts.cellExplosionFactor = 1.5
    +    ExplodeAtts.explosionPattern = ExplodeAtts.Scatter
    +    ExplodeAtts.explodeAllCells = 0
    +    SetOperatorOptions(ExplodeAtts, 1)
    +
    +    Test("explode_ucd3d_06")
    +
    +    # Explode material by point
    +    ExplodeAtts = ExplodeAttributes()
    +    ExplodeAtts.explosionType = ExplodeAtts.Point
    +    ExplodeAtts.explosionPoint = (0, 3, 10)
    +    ExplodeAtts.materialExplosionFactor = 1
    +    ExplodeAtts.material = "1"
    +    ExplodeAtts.cylinderRadius = 0
    +    ExplodeAtts.explodeMaterialCells = 1
    +    ExplodeAtts.cellExplosionFactor = 1.5
    +    ExplodeAtts.explosionPattern = ExplodeAtts.Scatter
    +    ExplodeAtts.explodeAllCells = 0
    +    SetOperatorOptions(ExplodeAtts, 1)
    +
    +    Test("explode_ucd3d_07")
    +
    +    # Explode all cells by cylinder with radius
    +    ExplodeAtts = ExplodeAttributes()
    +    ExplodeAtts.explosionType = ExplodeAtts.Cylinder
    +    ExplodeAtts.cylinderPoint1 = (0, 1, 10)
    +    ExplodeAtts.cylinderPoint2 = (0, 0, 10)
    +    ExplodeAtts.cylinderRadius = 4
    +    ExplodeAtts.cellExplosionFactor = .4
    +    ExplodeAtts.explosionPattern = ExplodeAtts.Impact
    +    ExplodeAtts.explodeAllCells = 1
    +    SetOperatorOptions(ExplodeAtts, 1)
    +
    +    Test("explode_ucd3d_08")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +def rectilinear_explosions():
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +    AddPlot("FilledBoundary", "mat1")
    +
    +    ResetView()
    +    RecenterView()
    +
    +    AddOperator("Explode")
    +    mainAtts = ExplodeAttributes()
    +    DrawPlots()
    +
    +    atts1 = ExplodeAttributes()
    +    atts1.explosionPoint = (1, 0, 0)
    +    atts1.materialExplosionFactor = 2
    +    atts1.material = "7"
    +    mainAtts.AddExplosions(atts1)
    +    SetOperatorOptions(mainAtts, 1)
    +
    +    atts2 = ExplodeAttributes()
    +    atts2.explosionPoint = (0, 0, 1)
    +    atts2.materialExplosionFactor = 2
    +    atts2.material = "5"
    +    mainAtts.AddExplosions(atts2)
    +    SetOperatorOptions(mainAtts, 1)
    +
    +    Test("explode_rect3d_00")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +def multi_rectilinear_explosions():
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +    AddPlot("FilledBoundary", "mat1")
    +
    +    ResetView()
    +    RecenterView()
    +
    +    AddOperator("Explode")
    +    DrawPlots()
    +    mainAtts = ExplodeAttributes()
    +
    +    atts1 = ExplodeAttributes()
    +    atts1.explosionPoint = (1, 0, 0)
    +    atts1.materialExplosionFactor = 2
    +    atts1.material = "2"
    +    mainAtts.AddExplosions(atts1)
    +    SetOperatorOptions(mainAtts, 1)
    +
    +    atts2 = ExplodeAttributes()
    +    atts2.explosionPoint = (0, 0, 1)
    +    atts2.materialExplosionFactor = 2
    +    atts2.material = "3"
    +    mainAtts.AddExplosions(atts2)
    +    SetOperatorOptions(mainAtts, 1)
    +
    +    Test("explode_multi_rect3d_00")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +def multi_tire():
    +    OpenDatabase(silo_data_path("tire.silo"))
    +    AddPlot("FilledBoundary", "Materials")
    +
    +    ResetView()
    +    RecenterView()
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (1.0, 0.0, 0.0)
    +    View3DAtts.focus = (0, 0, 0)
    +    View3DAtts.viewUp = (0, 1, 0)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 8.0
    +    View3DAtts.nearPlane = -0.5
    +    View3DAtts.farPlane = 0.5
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 0.826446
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0, 0, 0)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +
    +    AddOperator("Explode")
    +    DrawPlots()
    +    mainAtts = ExplodeAttributes()
    +
    +    # If domains are being treated correctly, this
    +    # should not produce an explosion. 
    +    atts1 = ExplodeAttributes()
    +    atts1.materialExplosionFactor = 500
    +    atts1.material = "1 Rubber"
    +    mainAtts.AddExplosions(atts1)
    +    SetOperatorOptions(mainAtts, 1)
    +
    +    Test("explode_tire_00")
    +
    +    atts2 = ExplodeAttributes()
    +    atts2.materialExplosionFactor = 0
    +    atts2.explodeMaterialCells = 1
    +    atts2.cellExplosionFactor = 1
    +    atts2.explosionType = atts2.Plane
    +    atts2.planePoint = (0, 0, 0)
    +    atts2.planeNorm = (0, 1, 0)
    +    atts2.material = "1 Rubber"
    +    mainAtts.AddExplosions(atts2)
    +    SetOperatorOptions(mainAtts, 1)
    +
    +    Test("explode_tire_01")
    +
    +    atts3 = ExplodeAttributes()
    +    atts3.materialExplosionFactor = 1
    +    atts3.explodeMaterialCells = 0
    +    atts3.cellExplosionFactor = 0
    +    atts3.explosionType = atts3.Point
    +    atts3.explosionPoint = (0, 0, 60)
    +    atts3.material = "2 Steel"
    +    mainAtts.AddExplosions(atts3)
    +    SetOperatorOptions(mainAtts, 1)
    +
    +    Test("explode_tire_02")
    +    ResetView()
    +    DeleteAllPlots()
    +
    +def TwoDimNoMat():
    +    OpenDatabase(silo_data_path("quad_disk.silo"))
    +    AddPlot("Pseudocolor", "sphElevD_on_mesh")
    +
    +    ResetView()
    +    RecenterView()
    +
    +    AddOperator("Explode")
    +    DrawPlots()
    +
    +    atts = ExplodeAttributes()
    +    atts.explodeAllCells  = 1
    +    atts.explosionPattern = atts.Scatter
    +    SetOperatorOptions(atts)
    +
    +    Test("explode_quad_disk_00")
    +    ResetView()
    +    DeleteAllPlots()
    +
    +def TestRecenter():
    +    #
    +    # Recentering is enabled when exploding all cells,
    +    # and it allows a cell to be displaced even when 
    +    # its center lies on an explode origin. 
    +    #
    +    OpenDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +    AddPlot("Pseudocolor", "3D/z1")
    +
    +    ResetView()
    +    RecenterView()
    +
    +    AddOperator("Explode")
    +    DrawPlots()
    +
    +    #
    +    # Test when a cell center lies on an explode
    +    # cylinder with radius 0. 
    +    #
    +    atts = ExplodeAttributes()
    +    atts.explodeAllCells = 1
    +    atts.explosionType   = atts.Cylinder
    +    atts.cylinderPoint1  = (0, .5, .5)
    +    atts.cylinderPoint2  = (1, .5, .5)
    +    SetOperatorOptions(atts)
    +
    +    Test("recenter_00")
    +
    +    #
    +    # Test when a cell center lies on an explode
    +    # point.
    +    #
    +    atts = ExplodeAttributes()
    +    atts.explodeAllCells = 1
    +    atts.explosionType   = atts.Point
    +    atts.explosionPoint  = (.5, .5, .5)
    +    SetOperatorOptions(atts)
    +
    +    Test("recenter_01")
    +
    +    #
    +    # Test when a cell center lies on an explode
    +    # plane.
    +    #
    +    atts = ExplodeAttributes()
    +    atts.explodeAllCells = 1
    +    atts.explosionType   = atts.Plane
    +    atts.planePoint      = (1.5, 0, 0)
    +    atts.planeNorm       = (1, 0, 0)
    +    SetOperatorOptions(atts)
    +
    +    Test("recenter_02")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +
    +def TestDomainExplode():
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +    AddPlot("Subset", "domains(mesh1)")
    +
    +    ResetView()
    +    RecenterView()
    +
    +    #
    +    # Test exploding full mesh domains. 
    +    #
    +    AddOperator("Explode")
    +    expAtts = ExplodeAttributes()
    +    expAtts.explosionType = expAtts.Point
    +    expAtts.explosionPoint = (0, 0, 0)
    +    expAtts.materialExplosionFactor = 1.2
    +    expAtts.material = "15"
    +    expAtts.explodeMaterialCells = 0
    +    expAtts.explosionPattern = expAtts.Impact
    +    SetOperatorOptions(expAtts, 1)
    +    DrawPlots()
    +    Test("explode_domains_00")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +    AddPlot("Subset", "domains(mesh1_front)")
    +
    +    #
    +    # Test exploding a subset of mesh domains. 
    +    #
    +    AddOperator("Explode")
    +    expAtts = ExplodeAttributes()
    +    expAtts.explosionType = expAtts.Point
    +    expAtts.explosionPoint = (0, 0, 0)
    +    expAtts.materialExplosionFactor = 1.2
    +    expAtts.material = "8"
    +    expAtts.explodeMaterialCells = 0
    +    expAtts.explosionPattern = expAtts.Impact
    +    SetOperatorOptions(expAtts, 1)
    +    DrawPlots()
    +    Test("explode_domains_01")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +def TestRepeatMatLabels():
    +    #
    +    # Under certain circumstances, the explode operator
    +    # will recieve repeat labels that need to be condensed. 
    +    # Make sure we can handle this. 
    +    #
    +    OpenDatabase(silo_data_path("tire.silo"))
    +    AddPlot("FilledBoundary", "Materials")
    +
    +    ResetView()
    +    RecenterView()
    +
    +    #
    +    # First, add a reflect operator, which will create
    +    # repeat labels if used on multi domain data.  
    +    #
    +    AddOperator("Reflect")
    +
    +    #
    +    # Test exploding full mesh domains. 
    +    #
    +    AddOperator("Explode")
    +    expAtts = ExplodeAttributes()
    +    expAtts.explosionType = expAtts.Point
    +    expAtts.explosionPoint = (0, 0, 10)
    +    expAtts.materialExplosionFactor = 1.2
    +    expAtts.material = "1 Rubber"
    +    expAtts.explodeMaterialCells = 1
    +    expAtts.explosionPattern = expAtts.Impact
    +    SetOperatorOptions(expAtts, 1)
    +    DrawPlots()
    +    Test("explode_repeat_labels_00")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +
    +def Main():
    +    unstructured_explosions()
    +    curvilinear_explosions()
    +    rectilinear_explosions()
    +    multi_rectilinear_explosions()
    +    multi_tire()
    +    TwoDimNoMat()
    +    TestRecenter()
    +    TestDomainExplode()
    +    TestRepeatMatLabels()
    +
    +
    +Main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_extrudeStacked.html b/2024-12-12-22:00/poodle_trunk_serial/operators_extrudeStacked.html new file mode 100644 index 000000000..e5a9537c9 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_extrudeStacked.html @@ -0,0 +1,339 @@ + +Results for operators/extrudeStacked.py + +

    Results of VisIt Regression Test - operators/extrudeStacked

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Extrude stacked function
    Testing database = lines.vtk
    extrude_lines_v0_node_height0.000.00
    extrude_lines_v1_node_height0.000.00
    extrude_lines_v1_cell_height0.000.00
    extrude_lines_v2_node_height0.000.00
    extrude_lines_v2_cell_height0.000.00
    extrude_lines_v2_index0.000.00
    extrude_lines_v3_node_height0.000.00
    extrude_lines_v3_cell_height0.000.00
    extrude_lines_v3_index0.000.00
    extrude_lines_v4_node_height0.000.00
    extrude_lines_v4_cell_height0.000.00
    extrude_lines_v4_index0.000.00
    Testing database = polygons.vtk
    extrude_polygons_v0_node_height0.000.00
    extrude_polygons_v1_node_height0.000.00
    extrude_polygons_v1_cell_height0.000.00
    extrude_polygons_v2_node_height0.000.00
    extrude_polygons_v2_cell_height0.000.00
    extrude_polygons_v2_index0.000.00
    extrude_polygons_v3_node_height0.000.00
    extrude_polygons_v3_cell_height0.000.00
    extrude_polygons_v3_index0.000.00
    extrude_polygons_v4_node_height0.000.00
    extrude_polygons_v4_cell_height0.000.00
    extrude_polygons_v4_index0.000.00
    Testing database = rectilinear.vtk
    extrude_rectilinear_v0_node_height0.000.00
    extrude_rectilinear_v1_node_height0.000.00
    extrude_rectilinear_v1_cell_height0.000.00
    extrude_rectilinear_v2_node_height0.000.00
    extrude_rectilinear_v2_cell_height0.000.00
    extrude_rectilinear_v2_index0.000.00
    extrude_rectilinear_v3_node_height0.000.00
    extrude_rectilinear_v3_cell_height0.000.00
    extrude_rectilinear_v3_index0.000.00
    extrude_rectilinear_v4_node_height0.000.00
    extrude_rectilinear_v4_cell_height0.000.00
    extrude_rectilinear_v4_index0.000.00
    Testing database = structured.vtk
    extrude_structured_v0_node_height0.000.00
    extrude_structured_v1_node_height0.000.00
    extrude_structured_v1_cell_height0.000.00
    extrude_structured_v2_node_height0.000.00
    extrude_structured_v2_cell_height0.000.00
    extrude_structured_v2_index0.000.00
    extrude_structured_v3_node_height0.000.00
    extrude_structured_v3_cell_height0.000.00
    extrude_structured_v3_index0.000.00
    extrude_structured_v4_node_height0.000.00
    extrude_structured_v4_cell_height0.000.00
    extrude_structured_v4_index0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_extrudeStacked_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_extrudeStacked_py.html new file mode 100644 index 000000000..ef52c43f5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_extrudeStacked_py.html @@ -0,0 +1,283 @@ +operators/extrudeStacked.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  extrudeStacked.py
    +#
    +#  Tests:      operator   - Extrude Stacked
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       30 August 2023
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Wed Sep 20, 2023
    +#    Changed SetLocalView to retrieve the view via GetView3D() and only
    +#    change the viewNormal and viewUp, so that test images are larger.
    +#
    +# ----------------------------------------------------------------------------
    +
    +RequiredDatabasePlugin("VTK")
    +
    +# For local testing using the CLI
    +
    +#def data_path( db_name ):
    +#  db="/Users/allen/Projects/VisIt/git/visit/data/%s" %(db_name)
    +#  return db
    +
    +#def Test(case_name):
    +#   swatts = SaveWindowAttributes()
    +#   swatts.family = 0
    +#   swatts.fileName = "/Users/allen/Projects/VisIt/git/visit/data/%s" %(case_name)
    +#   SetSaveWindowAttributes(swatts)
    +#   SaveWindow()
    +#   return
    +
    +#def TestSection(tmpstr):
    +#   return
    +
    +#def Exit():
    +#   return
    +
    +# Set the local view
    +def SetLocalView():
    +  ResetView()
    +  #
    +  View3DAtts = GetView3D()
    +  View3DAtts.viewNormal = (0, -1, 0)
    +  View3DAtts.viewUp = (0, 0, 1)
    +  SetView3D(View3DAtts)
    +
    +# Open the database here and add a plot.
    +db=data_path("extrude_test_data/extrude_structured.vtk")
    +OpenDatabase(db)
    +
    +AddPlot("Pseudocolor", "V1", 1, 0)
    +AddOperator("ExtrudeStacked", 0)
    +SetActivePlots(0)
    +DrawPlots()
    +
    +PseudocolorAtts = PseudocolorAttributes()
    +PseudocolorAtts.renderSurfaces = 1
    +PseudocolorAtts.renderWireframe = 1
    +SetPlotOptions(PseudocolorAtts)
    +
    +SetLocalView()
    +
    +# Loop through all of the databases
    +databases=["lines", "polygons", "rectilinear", "structured" ]
    +
    +TestSection("Extrude stacked function")
    +for i in range(len(databases)):
    +  db=data_path("extrude_test_data/extrude_%s.vtk") %(databases[i])
    +  tmpstr="Testing database = %s.vtk" %(databases[i])
    +  TestSection(tmpstr)
    +  OpenDatabase(db)
    +  #
    +  # Replace the database from before with the one just openned.
    +  ReplaceDatabase(db)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("default")
    +  ExtrudeStackedAtts.visualVariableNames = ("default")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37)
    +  ExtrudeStackedAtts.extentScale = (1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.OriginalData
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v0_node_height" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37)
    +  ExtrudeStackedAtts.extentScale = (1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.NodeHeight
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v1_node_height" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37)
    +  ExtrudeStackedAtts.extentScale = (1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.CellHeight
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v1_cell_height" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1", "V2")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1", "V2")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37, -1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37, 1e+37)
    +  ExtrudeStackedAtts.extentScale = (1, 1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.NodeHeight
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v2_node_height" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1", "V2")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1", "V2")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37, -1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37, 1e+37)
    +  ExtrudeStackedAtts.extentScale = (1, 1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.CellHeight
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v2_cell_height" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1", "V2")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1", "V2")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37, -1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37, 1e+37)
    +  ExtrudeStackedAtts.extentScale = (1, 1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.VariableIndex
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v2_index" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1", "V2", "V3")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1", "V2", "V3")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37, -1e+37, -1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37, 1e+37, 1e+37)
    +  ExtrudeStackedAtts.extentScale = (1, 1, 1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.NodeHeight
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v3_node_height" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1", "V2", "V3")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1", "V2", "V3")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37, -1e+37, -1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37, 1e+37, 1e+37)
    +  ExtrudeStackedAtts.extentScale = (1, 1, 1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.CellHeight
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v3_cell_height" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1", "V2", "V3")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1", "V2", "V3")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37, -1e+37, -1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37, 1e+37, 1e+37)
    +  ExtrudeStackedAtts.extentScale = (1, 1, 1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.VariableIndex
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v3_index" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1", "V2", "V3", "V4")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1", "V2", "V3", "V4")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37, -1e+37, -1e+37, -1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37, 1e+37, 1e+37, 1e+37)
    +  ExtrudeStackedAtts.extentScale = (1, 1, 1, 1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.NodeHeight
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v4_node_height" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1", "V2", "V3", "V4")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1", "V2", "V3", "V4")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37, -1e+37, -1e+37, -1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37, 1e+37, 1e+37, 1e+37)
    +  ExtrudeStackedAtts.extentScale = (1, 1, 1, 1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.CellHeight
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v4_cell_height" %(databases[i])
    +  Test(tmpstr)
    +  #
    +  ExtrudeStackedAtts = ExtrudeStackedAttributes()
    +  ExtrudeStackedAtts.axis = (0, 0, 1)
    +  ExtrudeStackedAtts.byVariable = 1
    +  ExtrudeStackedAtts.scalarVariableNames = ("V1", "V2", "V3", "V4")
    +  ExtrudeStackedAtts.visualVariableNames = ("V1", "V2", "V3", "V4")
    +  ExtrudeStackedAtts.extentMinima = (-1e+37, -1e+37, -1e+37, -1e+37)
    +  ExtrudeStackedAtts.extentMaxima = (1e+37, 1e+37, 1e+37, 1e+37)
    +  ExtrudeStackedAtts.extentScale = (1, 1, 1, 1)
    +  ExtrudeStackedAtts.variableDisplay = ExtrudeStackedAtts.VariableIndex
    +  ExtrudeStackedAtts.length = 1
    +  ExtrudeStackedAtts.steps = 1
    +  ExtrudeStackedAtts.preserveOriginalCellNumbers = 1
    +  SetOperatorOptions(ExtrudeStackedAtts, 0, 0)
    +  #
    +  tmpstr="extrude_%s_v4_index" %(databases[i])
    +  Test(tmpstr)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_ic_geometry.html b/2024-12-12-22:00/poodle_trunk_serial/operators_ic_geometry.html new file mode 100644 index 000000000..0d3806d5f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_ic_geometry.html @@ -0,0 +1,138 @@ + +Results for operators/ic_geometry.py + +

    Results of VisIt Regression Test - operators/ic_geometry

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ic_geometry_010.000.00
    ic_geometry_020.000.00
    ic_geometry_030.000.00
    ic_geometry_040.000.00
    ic_geometry_050.000.00
    ic_geometry_060.000.00
    ic_geometry_070.000.00
    ic_geometry_080.000.00
    ic_geometry_090.000.00
    ic_geometry_100.000.00
    ic_geometry_110.000.00
    ic_geometry_120.000.00
    ic_geometry_130.000.00
    ic_geometry_140.000.00
    ic_geometry_crop_10.000.00
    ic_geometry_crop_20.000.00
    ic_geometry_crop_30.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_ic_geometry_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_ic_geometry_py.html new file mode 100644 index 000000000..14849b51c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_ic_geometry_py.html @@ -0,0 +1,379 @@ +operators/ic_geometry.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ic_geometry.py
    +#
    +#  Tests:      operator      - integralcurve
    +#              plot          - pseudocolor
    +#
    +#  Defect ID:  -
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       March 10, 2016
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Tue Sep 29 09:17:57 PDT 2020
    +#    Turned off IC warnings.
    +#
    +#    Eddie Rusu, Tue Apr 13 12:08:59 PDT 2021
    +#    Changed Pseudocolor CurrentPlot to ActualData.
    +#
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +AddPlot("Pseudocolor", "operators/IntegralCurve/grad", 1, 0)
    +
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.270729, 0.624198, 0.732859)
    +View3DAtts.focus = (0.496062, 0.99603, 0.496062)
    +View3DAtts.viewUp = (-0.0922782, 0.774611, -0.62567)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 12.1829
    +View3DAtts.nearPlane = -24.3658
    +View3DAtts.farPlane = 24.3658
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +SetView3D(View3DAtts)
    +
    +PseudocolorAtts = PseudocolorAttributes()
    +PseudocolorAtts.scaling = PseudocolorAtts.Linear  # Linear, Log, Skew
    +PseudocolorAtts.skewFactor = 1
    +PseudocolorAtts.limitsMode = PseudocolorAtts.OriginalData  # OriginalData, ActualData
    +PseudocolorAtts.minFlag = 0
    +PseudocolorAtts.min = 0
    +PseudocolorAtts.maxFlag = 0
    +PseudocolorAtts.max = 1
    +PseudocolorAtts.centering = PseudocolorAtts.Natural  # Natural, Nodal, Zonal
    +PseudocolorAtts.colorTableName = "hot"
    +PseudocolorAtts.invertColorTable = 0
    +PseudocolorAtts.opacityType = PseudocolorAtts.FullyOpaque  # ColorTable, FullyOpaque, Constant, Ramp, VariableRange
    +PseudocolorAtts.opacityVariable = ""
    +PseudocolorAtts.opacity = 1
    +PseudocolorAtts.opacityVarMin = 0
    +PseudocolorAtts.opacityVarMax = 1
    +PseudocolorAtts.opacityVarMinFlag = 0
    +PseudocolorAtts.opacityVarMaxFlag = 0
    +PseudocolorAtts.pointSize = 0.05
    +PseudocolorAtts.pointType = PseudocolorAtts.Point  # Box, Axis, Icosahedron, Octahedron, Tetrahedron, SphereGeometry, Point, Sphere
    +PseudocolorAtts.pointSizeVarEnabled = 0
    +PseudocolorAtts.pointSizeVar = "default"
    +PseudocolorAtts.pointSizePixels = 2
    +PseudocolorAtts.lineType = PseudocolorAtts.Tube  # Line, Tube, Ribbon
    +PseudocolorAtts.lineWidth = 0
    +PseudocolorAtts.tubeResolution = 100
    +PseudocolorAtts.tubeRadiusSizeType = PseudocolorAtts.Absolute  # Absolute, FractionOfBBox
    +PseudocolorAtts.tubeRadiusAbsolute = 0.1
    +PseudocolorAtts.tubeRadiusBBox = 0.005
    +PseudocolorAtts.tubeRadiusVarEnabled = 0
    +PseudocolorAtts.tubeRadiusVar = ""
    +PseudocolorAtts.tubeRadiusVarRatio = 10
    +PseudocolorAtts.tailStyle = PseudocolorAtts.Spheres  # None, Spheres, Cones
    +PseudocolorAtts.headStyle = PseudocolorAtts.NONE  # None, Spheres, Cones
    +PseudocolorAtts.endPointRadiusSizeType = PseudocolorAtts.Absolute  # Absolute, FractionOfBBox
    +PseudocolorAtts.endPointRadiusAbsolute = 0.3
    +PseudocolorAtts.endPointRadiusBBox = 0.005
    +PseudocolorAtts.endPointResolution = 100
    +PseudocolorAtts.endPointRatio = 2
    +PseudocolorAtts.endPointRadiusVarEnabled = 0
    +PseudocolorAtts.endPointRadiusVar = ""
    +PseudocolorAtts.endPointRadiusVarRatio = 10
    +PseudocolorAtts.renderSurfaces = 1
    +PseudocolorAtts.renderWireframe = 0
    +PseudocolorAtts.renderPoints = 0
    +PseudocolorAtts.smoothingLevel = 0
    +PseudocolorAtts.legendFlag = 1
    +PseudocolorAtts.lightingFlag = 1
    +PseudocolorAtts.wireframeColor = (0, 0, 0, 0)
    +PseudocolorAtts.pointColor = (0, 0, 0, 0)
    +SetPlotOptions(PseudocolorAtts)
    +
    +IntegralCurveAtts = IntegralCurveAttributes()
    +IntegralCurveAtts.sourceType = IntegralCurveAtts.SpecifiedPlane  # SpecifiedPoint, PointList, SpecifiedLine, Circle, SpecifiedPlane, SpecifiedSphere, SpecifiedBox, Selection, FieldData
    +IntegralCurveAtts.pointSource = (0, 0, 0)
    +IntegralCurveAtts.lineStart = (0, 0, 0)
    +IntegralCurveAtts.lineEnd = (1, 0, 0)
    +IntegralCurveAtts.planeOrigin = (0.5, 1, 0.5)
    +IntegralCurveAtts.planeNormal = (0, 1, 0)
    +IntegralCurveAtts.planeUpAxis = (1, 0, 0)
    +IntegralCurveAtts.radius = 1
    +IntegralCurveAtts.sphereOrigin = (0, 0, 0)
    +IntegralCurveAtts.boxExtents = (0, 1, 0, 1, 0, 1)
    +IntegralCurveAtts.useWholeBox = 1
    +IntegralCurveAtts.pointList = (0, 0, 0, 1, 0, 0, 0, 1, 0)
    +IntegralCurveAtts.fieldData = ()
    +IntegralCurveAtts.sampleDensity0 = 5
    +IntegralCurveAtts.sampleDensity1 = 5
    +IntegralCurveAtts.sampleDensity2 = 2
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.TimeAbsolute  # Solid, SeedPointID, Speed, Vorticity, ArcLength, TimeAbsolute, TimeRelative, AverageDistanceFromSeed, CorrelationDistance, Difference, Variable
    +IntegralCurveAtts.dataVariable = ""
    +IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Both  # Forward, Backward, Both, ForwardDirectionless, BackwardDirectionless, BothDirectionless
    +IntegralCurveAtts.maxSteps = 100000
    +IntegralCurveAtts.terminateByDistance = 0
    +IntegralCurveAtts.termDistance = 10
    +IntegralCurveAtts.terminateByTime = 1
    +IntegralCurveAtts.termTime = 200
    +IntegralCurveAtts.maxStepLength = 0.1
    +IntegralCurveAtts.limitMaximumTimestep = 1
    +IntegralCurveAtts.maxTimeStep = 0.02
    +IntegralCurveAtts.relTol = 1e-06
    +IntegralCurveAtts.absTolSizeType = IntegralCurveAtts.FractionOfBBox  # Absolute, FractionOfBBox
    +IntegralCurveAtts.absTolAbsolute = 1e-06
    +IntegralCurveAtts.absTolBBox = 1e-07
    +IntegralCurveAtts.fieldType = IntegralCurveAtts.Default  # Default, FlashField, M3DC12DField, M3DC13DField, Nek5000Field, NektarPPField
    +IntegralCurveAtts.fieldConstant = 1
    +IntegralCurveAtts.velocitySource = (0, 0, 0)
    +IntegralCurveAtts.integrationType = IntegralCurveAtts.AdamsBashforth  # Euler, Leapfrog, DormandPrince, AdamsBashforth, RK4, M3DC12DIntegrator
    +IntegralCurveAtts.parallelizationAlgorithmType = IntegralCurveAtts.VisItSelects  # LoadOnDemand, ParallelStaticDomains, ManagerWorker, VisItSelects
    +IntegralCurveAtts.maxProcessCount = 10
    +IntegralCurveAtts.maxDomainCacheSize = 3
    +IntegralCurveAtts.workGroupSize = 32
    +IntegralCurveAtts.pathlines = 0
    +IntegralCurveAtts.pathlinesOverrideStartingTimeFlag = 0
    +IntegralCurveAtts.pathlinesOverrideStartingTime = 0
    +IntegralCurveAtts.pathlinesPeriod = 0
    +IntegralCurveAtts.pathlinesCMFE = IntegralCurveAtts.POS_CMFE  # CONN_CMFE, POS_CMFE
    +IntegralCurveAtts.displayGeometry = IntegralCurveAtts.Lines  # Lines, Tubes, Ribbons
    +IntegralCurveAtts.cropBeginFlag = 0
    +IntegralCurveAtts.cropBegin = 0
    +IntegralCurveAtts.cropEndFlag = 0
    +IntegralCurveAtts.cropEnd = 0
    +IntegralCurveAtts.cropValue = IntegralCurveAtts.Time  # Distance, Time, StepNumber
    +IntegralCurveAtts.sampleDistance0 = 18
    +IntegralCurveAtts.sampleDistance1 = 18
    +IntegralCurveAtts.sampleDistance2 = 10
    +IntegralCurveAtts.fillInterior = 1
    +IntegralCurveAtts.randomSamples = 0
    +IntegralCurveAtts.randomSeed = 0
    +IntegralCurveAtts.numberOfRandomSamples = 1
    +IntegralCurveAtts.issueAdvectionWarnings = 1
    +IntegralCurveAtts.issueBoundaryWarnings = 1
    +IntegralCurveAtts.issueTerminationWarnings = 1
    +IntegralCurveAtts.issueStepsizeWarnings = 1
    +IntegralCurveAtts.issueStiffnessWarnings = 1
    +IntegralCurveAtts.issueCriticalPointsWarnings = 1
    +IntegralCurveAtts.criticalPointThreshold = 0.001
    +IntegralCurveAtts.correlationDistanceAngTol = 5
    +IntegralCurveAtts.correlationDistanceMinDistAbsolute = 1
    +IntegralCurveAtts.correlationDistanceMinDistBBox = 0.005
    +IntegralCurveAtts.correlationDistanceMinDistType = IntegralCurveAtts.FractionOfBBox  # Absolute, FractionOfBBox
    +IntegralCurveAtts.selection = ""
    +
    +# Test coloring options
    +
    +SetOperatorOptions(IntegralCurveAtts)
    +DrawPlots()
    +Test( "ic_geometry_01" )
    +
    +PseudocolorAtts.endPointRadiusSizeType = PseudocolorAtts.FractionOfBBox
    +PseudocolorAtts.endPointRadiusBBox = 0.03
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_02" )
    +
    +PseudocolorAtts.endPointRadiusSizeType = PseudocolorAtts.Absolute
    +PseudocolorAtts.endPointRadiusAbsolute = 0.6
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_03" )
    +
    +PseudocolorAtts.lineType = PseudocolorAtts.Tube
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_04" )
    +
    +PseudocolorAtts.tubeRadiusBBox = 0.01
    +PseudocolorAtts.tubeRadiusSizeType = PseudocolorAtts.FractionOfBBox
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_05" )
    +
    +PseudocolorAtts.tubeRadiusAbsolute = 0.2
    +PseudocolorAtts.tubeRadiusSizeType = PseudocolorAtts.Absolute
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_06" )
    +
    +PseudocolorAtts.lineType = PseudocolorAtts.Ribbon
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_07" )
    +
    +PseudocolorAtts.tubeRadiusBBox = 0.01
    +PseudocolorAtts.tubeRadiusSizeType = PseudocolorAtts.FractionOfBBox
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_08" )
    +
    +PseudocolorAtts.tubeRadiusAbsolute = 0.4
    +PseudocolorAtts.tubeRadiusSizeType = PseudocolorAtts.Absolute
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_09" )
    +
    +PseudocolorAtts.lineType = PseudocolorAtts.Line
    +PseudocolorAtts.headStyle = PseudocolorAtts.Spheres  # None, Spheres, Cones
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_10" )
    +
    +PseudocolorAtts.endPointRadiusSizeType = PseudocolorAtts.FractionOfBBox
    +PseudocolorAtts.endPointRadiusBBox = 0.03
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_11" )
    +
    +PseudocolorAtts.endPointRadiusSizeType = PseudocolorAtts.Absolute
    +PseudocolorAtts.endPointRadiusAbsolute = 0.6
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_12" )
    +
    +PseudocolorAtts.tailStyle = PseudocolorAtts.Cones  # None, Spheres, Cones
    +PseudocolorAtts.headStyle = PseudocolorAtts.Cones  # None, Spheres, Cones
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_13" )
    +
    +PseudocolorAtts.endPointRatio = 3
    +SetPlotOptions(PseudocolorAtts)
    +Test( "ic_geometry_14" )
    +
    +#
    +# Test crop w/ head (cone) location
    +#
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("noise.silo"))
    +AddPlot("Pseudocolor", "operators/IntegralCurve/grad", 1, 0)
    +
    +PseudocolorAtts = PseudocolorAttributes()
    +PseudocolorAtts.scaling = PseudocolorAtts.Linear  # Linear, Log, Skew
    +PseudocolorAtts.skewFactor = 1
    +PseudocolorAtts.limitsMode = PseudocolorAtts.OriginalData  # OriginalData, ActualData
    +PseudocolorAtts.minFlag = 0
    +PseudocolorAtts.min = 0
    +PseudocolorAtts.maxFlag = 0
    +PseudocolorAtts.max = 1
    +PseudocolorAtts.centering = PseudocolorAtts.Natural  # Natural, Nodal, Zonal
    +PseudocolorAtts.colorTableName = "hot"
    +PseudocolorAtts.invertColorTable = 0
    +PseudocolorAtts.opacityType = PseudocolorAtts.FullyOpaque  # ColorTable, FullyOpaque, Constant, Ramp, VariableRange
    +PseudocolorAtts.opacityVariable = ""
    +PseudocolorAtts.opacity = 1
    +PseudocolorAtts.opacityVarMin = 0
    +PseudocolorAtts.opacityVarMax = 1
    +PseudocolorAtts.opacityVarMinFlag = 0
    +PseudocolorAtts.opacityVarMaxFlag = 0
    +PseudocolorAtts.pointSize = 0.05
    +PseudocolorAtts.pointType = PseudocolorAtts.Point  # Box, Axis, Icosahedron, Octahedron, Tetrahedron, SphereGeometry, Point, Sphere
    +PseudocolorAtts.pointSizeVarEnabled = 0
    +PseudocolorAtts.pointSizeVar = "default"
    +PseudocolorAtts.pointSizePixels = 2
    +PseudocolorAtts.lineType = PseudocolorAtts.Line  # Line, Tube, Ribbon
    +PseudocolorAtts.lineWidth = 0
    +PseudocolorAtts.tubeResolution = 10
    +PseudocolorAtts.tubeRadiusSizeType = PseudocolorAtts.FractionOfBBox  # Absolute, FractionOfBBox
    +PseudocolorAtts.tubeRadiusAbsolute = 0.4
    +PseudocolorAtts.tubeRadiusBBox = 0.02
    +PseudocolorAtts.tubeRadiusVarEnabled = 0
    +PseudocolorAtts.tubeRadiusVar = ""
    +PseudocolorAtts.tubeRadiusVarRatio = 10
    +PseudocolorAtts.tailStyle = PseudocolorAtts.NONE  # None, Spheres, Cones
    +PseudocolorAtts.headStyle = PseudocolorAtts.Cones  # None, Spheres, Cones
    +PseudocolorAtts.endPointRadiusSizeType = PseudocolorAtts.Absolute  # Absolute, FractionOfBBox
    +PseudocolorAtts.endPointRadiusAbsolute = 0.8
    +PseudocolorAtts.endPointRadiusBBox = 0.04
    +PseudocolorAtts.endPointResolution = 10
    +PseudocolorAtts.endPointRatio = 2
    +PseudocolorAtts.endPointRadiusVarEnabled = 0
    +PseudocolorAtts.endPointRadiusVar = ""
    +PseudocolorAtts.endPointRadiusVarRatio = 10
    +PseudocolorAtts.renderSurfaces = 1
    +PseudocolorAtts.renderWireframe = 0
    +PseudocolorAtts.renderPoints = 0
    +PseudocolorAtts.smoothingLevel = 0
    +PseudocolorAtts.legendFlag = 1
    +PseudocolorAtts.lightingFlag = 1
    +PseudocolorAtts.wireframeColor = (0, 0, 0, 0)
    +PseudocolorAtts.pointColor = (0, 0, 0, 0)
    +SetPlotOptions(PseudocolorAtts)
    +
    +IntegralCurveAtts = IntegralCurveAttributes()
    +IntegralCurveAtts.sourceType = IntegralCurveAtts.SpecifiedPoint  # SpecifiedPoint, PointList, SpecifiedLine, Circle, SpecifiedPlane, SpecifiedSphere, SpecifiedBox, Selection, FieldData
    +IntegralCurveAtts.pointSource = (0, 0, 0)
    +IntegralCurveAtts.lineStart = (0, 0, 0)
    +IntegralCurveAtts.lineEnd = (1, 0, 0)
    +IntegralCurveAtts.planeOrigin = (0, 0, 0)
    +IntegralCurveAtts.planeNormal = (0, 0, 1)
    +IntegralCurveAtts.planeUpAxis = (0, 1, 0)
    +IntegralCurveAtts.radius = 1
    +IntegralCurveAtts.sphereOrigin = (0, 0, 0)
    +IntegralCurveAtts.boxExtents = (0, 1, 0, 1, 0, 1)
    +IntegralCurveAtts.useWholeBox = 1
    +IntegralCurveAtts.pointList = (0, 0, 0, 1, 0, 0, 0, 1, 0)
    +IntegralCurveAtts.fieldData = ()
    +IntegralCurveAtts.sampleDensity0 = 2
    +IntegralCurveAtts.sampleDensity1 = 2
    +IntegralCurveAtts.sampleDensity2 = 2
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.TimeAbsolute  # Solid, SeedPointID, Speed, Vorticity, ArcLength, TimeAbsolute, TimeRelative, AverageDistanceFromSeed, CorrelationDistance, Difference, Variable
    +IntegralCurveAtts.dataVariable = ""
    +IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Forward  # Forward, Backward, Both, ForwardDirectionless, BackwardDirectionless, BothDirectionless
    +IntegralCurveAtts.maxSteps = 1000
    +IntegralCurveAtts.terminateByDistance = 0
    +IntegralCurveAtts.termDistance = 10
    +IntegralCurveAtts.terminateByTime = 0
    +IntegralCurveAtts.termTime = 10
    +IntegralCurveAtts.maxStepLength = 0.1
    +IntegralCurveAtts.limitMaximumTimestep = 0
    +IntegralCurveAtts.maxTimeStep = 0.1
    +IntegralCurveAtts.relTol = 0.0001
    +IntegralCurveAtts.absTolSizeType = IntegralCurveAtts.FractionOfBBox  # Absolute, FractionOfBBox
    +IntegralCurveAtts.absTolAbsolute = 1e-06
    +IntegralCurveAtts.absTolBBox = 1e-06
    +IntegralCurveAtts.fieldType = IntegralCurveAtts.Default  # Default, FlashField, M3DC12DField, M3DC13DField, Nek5000Field, NektarPPField
    +IntegralCurveAtts.fieldConstant = 1
    +IntegralCurveAtts.velocitySource = (0, 0, 0)
    +IntegralCurveAtts.integrationType = IntegralCurveAtts.AdamsBashforth  # Euler, Leapfrog, DormandPrince, AdamsBashforth, RK4, M3DC12DIntegrator
    +IntegralCurveAtts.parallelizationAlgorithmType = IntegralCurveAtts.VisItSelects  # LoadOnDemand, ParallelStaticDomains, ManagerWorker, VisItSelects
    +IntegralCurveAtts.maxProcessCount = 10
    +IntegralCurveAtts.maxDomainCacheSize = 3
    +IntegralCurveAtts.workGroupSize = 32
    +IntegralCurveAtts.pathlines = 0
    +IntegralCurveAtts.pathlinesOverrideStartingTimeFlag = 0
    +IntegralCurveAtts.pathlinesOverrideStartingTime = 0
    +IntegralCurveAtts.pathlinesPeriod = 0
    +IntegralCurveAtts.pathlinesCMFE = IntegralCurveAtts.POS_CMFE  # CONN_CMFE, POS_CMFE
    +IntegralCurveAtts.displayGeometry = IntegralCurveAtts.Lines  # Lines, Tubes, Ribbons
    +IntegralCurveAtts.cropBeginFlag = 0
    +IntegralCurveAtts.cropBegin = 0
    +IntegralCurveAtts.cropEndFlag = 0
    +IntegralCurveAtts.cropEnd = 0
    +IntegralCurveAtts.cropValue = IntegralCurveAtts.Time  # Distance, Time, StepNumber
    +IntegralCurveAtts.sampleDistance0 = 10
    +IntegralCurveAtts.sampleDistance1 = 10
    +IntegralCurveAtts.sampleDistance2 = 10
    +IntegralCurveAtts.fillInterior = 1
    +IntegralCurveAtts.randomSamples = 0
    +IntegralCurveAtts.randomSeed = 0
    +IntegralCurveAtts.numberOfRandomSamples = 1
    +IntegralCurveAtts.issueAdvectionWarnings = 0
    +IntegralCurveAtts.issueBoundaryWarnings = 0
    +IntegralCurveAtts.issueTerminationWarnings = 0
    +IntegralCurveAtts.issueStepsizeWarnings = 0
    +IntegralCurveAtts.issueStiffnessWarnings = 0
    +IntegralCurveAtts.issueCriticalPointsWarnings = 0
    +IntegralCurveAtts.criticalPointThreshold = 0.001
    +IntegralCurveAtts.correlationDistanceAngTol = 5
    +IntegralCurveAtts.correlationDistanceMinDistAbsolute = 1
    +IntegralCurveAtts.correlationDistanceMinDistBBox = 0.005
    +IntegralCurveAtts.correlationDistanceMinDistType = IntegralCurveAtts.FractionOfBBox  # Absolute, FractionOfBBox
    +IntegralCurveAtts.selection = ""
    +
    +IntegralCurveAtts.cropEndFlag  = 1
    +IntegralCurveAtts.cropEnd = 2
    +SetOperatorOptions(IntegralCurveAtts)
    +DrawPlots()
    +Test( "ic_geometry_crop_1")
    +
    +IntegralCurveAtts.cropEnd = 5
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_geometry_crop_2")
    +
    +IntegralCurveAtts.cropBeginFlag  = 1
    +IntegralCurveAtts.cropBegin = 2
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_geometry_crop_3")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_ic_integration.html b/2024-12-12-22:00/poodle_trunk_serial/operators_ic_integration.html new file mode 100644 index 000000000..9a0116280 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_ic_integration.html @@ -0,0 +1,102 @@ + +Results for operators/ic_integration.py + +

    Results of VisIt Regression Test - operators/ic_integration

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ic_integration_010.000.00
    ic_integration_020.000.00
    ic_integration_030.000.00
    ic_integration_040.000.00
    ic_integration_050.000.00
    ic_integration_060.000.00
    ic_integration_070.000.00
    ic_integration_080.000.00
    ic_integration_090.000.00
    ic_integration_100.000.00
    ic_integration_110.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_ic_integration_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_ic_integration_py.html new file mode 100644 index 000000000..b909843c4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_ic_integration_py.html @@ -0,0 +1,115 @@ +operators/ic_integration.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ic_integration.py
    +#
    +#  Tests:      operator      - integralcurve
    +#
    +#  Defect ID:  -
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       March 10, 2016
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Tue Sep 29 11:01:37 PDT 2020
    +#    Turn off IC warnings.
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +AddPlot("Pseudocolor", "operators/IntegralCurve/grad", 1, 0)
    +
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.270729, 0.624198, 0.732859)
    +View3DAtts.focus = (0.496062, 0.99603, 0.496062)
    +View3DAtts.viewUp = (-0.0922782, 0.774611, -0.62567)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 12.1829
    +View3DAtts.nearPlane = -24.3658
    +View3DAtts.farPlane = 24.3658
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +SetView3D(View3DAtts)
    +
    +IntegralCurveAtts = IntegralCurveAttributes()
    +IntegralCurveAtts.sourceType = IntegralCurveAtts.SpecifiedPlane  # SpecifiedPoint, SpecifiedPointList, SpecifiedLine, SpecifiedCircle, SpecifiedPlane, SpecifiedSphere, SpecifiedBox
    +IntegralCurveAtts.limitMaximumTimestep = 1
    +IntegralCurveAtts.maxTimeStep = 0.02
    +IntegralCurveAtts.terminateByTime = 1
    +IntegralCurveAtts.termTime = 200
    +IntegralCurveAtts.maxSteps = 100000
    +IntegralCurveAtts.planeOrigin = (0.5, 1, 0.5)
    +IntegralCurveAtts.planeNormal = (0, 1, 0)
    +IntegralCurveAtts.planeUpAxis = (1, 0, 0)
    +IntegralCurveAtts.sampleDensity0 = 5
    +IntegralCurveAtts.sampleDensity1 = 5
    +IntegralCurveAtts.sampleDistance0 = 18
    +IntegralCurveAtts.sampleDistance1 = 18
    +IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Both  # Forward, Backward, Both
    +IntegralCurveAtts.relTol = 1e-06
    +IntegralCurveAtts.absTolSizeType = IntegralCurveAtts.Absolute
    +IntegralCurveAtts.absTolAbsolute = 1e-07
    +IntegralCurveAtts.integrationType = IntegralCurveAtts.DormandPrince  # DormandPrince, AdamsBashforth, M3DC1Integrator
    +IntegralCurveAtts.maxProcessCount = 10
    +IntegralCurveAtts.maxDomainCacheSize = 3
    +IntegralCurveAtts.workGroupSize = 32
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.TimeAbsolute
    +# turn off warnings
    +IntegralCurveAtts.issueAdvectionWarnings = 0
    +IntegralCurveAtts.issueBoundaryWarnings = 0
    +IntegralCurveAtts.issueTerminationWarnings = 0
    +IntegralCurveAtts.issueStepsizeWarnings = 0
    +IntegralCurveAtts.issueStiffnessWarnings = 0
    +IntegralCurveAtts.issueCriticalPointsWarnings = 0
    +
    +
    +# test defaults
    +SetOperatorOptions(IntegralCurveAtts)
    +DrawPlots()
    +Test( "ic_integration_01" )
    +
    +IntegralCurveAtts.maxTimeStep = 0.05
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_02" )
    +
    +IntegralCurveAtts.limitMaximumTimestep = 0
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_03" )
    +
    +IntegralCurveAtts.absTolAbsolute = 1e-03
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_04" )
    +
    +IntegralCurveAtts.absTolSizeType = IntegralCurveAtts.FractionOfBBox
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_05" )
    +
    +IntegralCurveAtts.absTolBBox = 1e-09
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_06" )
    +
    +IntegralCurveAtts.absTolBBox = 1e-04
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_07" )
    +
    +IntegralCurveAtts.integrationType = IntegralCurveAtts.AdamsBashforth
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_08" )
    +
    +IntegralCurveAtts.maxStepLength = 0.2
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_09" )
    +
    +IntegralCurveAtts.maxStepLength = 1.0
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_10" )
    +
    +IntegralCurveAtts.maxStepLength = 0.01
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_integration_11" )
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_ic_pathlines.html b/2024-12-12-22:00/poodle_trunk_serial/operators_ic_pathlines.html new file mode 100644 index 000000000..7276b80c1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_ic_pathlines.html @@ -0,0 +1,86 @@ + +Results for operators/ic_pathlines.py + +

    Results of VisIt Regression Test - operators/ic_pathlines

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ic_pathlines_010.000.00
    ic_pathlines_020.000.00
    ic_pathlines_030 modifications totalling 0 lines
    ic_pathlines_040.000.00
    ic_pathlines_050.000.00
    ic_pathlines_060.000.00
    ic_pathlines_070.000.00
    ic_pathlines_080.000.00
    ic_pathlines_090 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_ic_pathlines_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_ic_pathlines_py.html new file mode 100644 index 000000000..0ac2745f2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_ic_pathlines_py.html @@ -0,0 +1,160 @@ +operators/ic_pathlines.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ic_pathlines.py
    +#
    +#  Tests:      operator      - integralcurve
    +#
    +#  Defect ID:  -
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       March 10, 2016
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Thu Sep 17 11:35:47 PDT 2020
    +#    Turn off IC warnings. Set larger linewidth so for better images.
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("PICS_Tester")
    +
    +OpenDatabase(data_path("pics_test_data/pathline_test.pics"))
    +AddPlot("Pseudocolor", "operators/IntegralCurve/velocity", 1, 0)
    +pcAtts = PseudocolorAttributes();
    +pcAtts.lineWidth = 3
    +SetPlotOptions(pcAtts)
    +
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.270729, 0.624198, 0.732859)
    +View3DAtts.focus = (0.496062, 0.99603, 0.496062)
    +View3DAtts.viewUp = (-0.0922782, 0.774611, -0.62567)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 12.1829
    +View3DAtts.nearPlane = -24.3658
    +View3DAtts.farPlane = 24.3658
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +SetView3D(View3DAtts)
    +
    +IntegralCurveAtts = IntegralCurveAttributes()
    +IntegralCurveAtts.sourceType = IntegralCurveAtts.SpecifiedPoint
    +IntegralCurveAtts.pointSource = (0.5, 0.1, 0.1)
    +IntegralCurveAtts.lineStart = (0, 0, 0)
    +IntegralCurveAtts.lineEnd = (1, 0, 0)
    +IntegralCurveAtts.planeOrigin = (0, 0, 0)
    +IntegralCurveAtts.planeNormal = (0, 0, 1)
    +IntegralCurveAtts.planeUpAxis = (0, 1, 0)
    +IntegralCurveAtts.radius = 1
    +IntegralCurveAtts.sphereOrigin = (0, 0, 0)
    +IntegralCurveAtts.boxExtents = (0, 1, 0, 1, 0, 1)
    +IntegralCurveAtts.useWholeBox = 1
    +IntegralCurveAtts.pointList = (0, 0, 0, 1, 0, 0, 0, 1, 0)
    +IntegralCurveAtts.fieldData = ()
    +IntegralCurveAtts.sampleDensity0 = 2
    +IntegralCurveAtts.sampleDensity1 = 2
    +IntegralCurveAtts.sampleDensity2 = 2
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.TimeAbsolute
    +IntegralCurveAtts.dataVariable = ""
    +IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Forward
    +IntegralCurveAtts.maxSteps = 1000
    +IntegralCurveAtts.terminateByDistance = 0
    +IntegralCurveAtts.termDistance = 10
    +IntegralCurveAtts.terminateByTime = 0
    +IntegralCurveAtts.termTime = 10
    +IntegralCurveAtts.maxStepLength = 0.01
    +IntegralCurveAtts.limitMaximumTimestep = 0
    +IntegralCurveAtts.maxTimeStep = 0.1
    +IntegralCurveAtts.relTol = 0.0001
    +IntegralCurveAtts.absTolSizeType = IntegralCurveAtts.FractionOfBBox
    +IntegralCurveAtts.absTolAbsolute = 1e-06
    +IntegralCurveAtts.absTolBBox = 1e-06
    +IntegralCurveAtts.fieldType = IntegralCurveAtts.Default
    +IntegralCurveAtts.fieldConstant = 1
    +IntegralCurveAtts.velocitySource = (0, 0, 0)
    +IntegralCurveAtts.integrationType = IntegralCurveAtts.Euler
    +IntegralCurveAtts.parallelizationAlgorithmType = IntegralCurveAtts.VisItSelects
    +IntegralCurveAtts.maxProcessCount = 10
    +IntegralCurveAtts.maxDomainCacheSize = 3
    +IntegralCurveAtts.workGroupSize = 32
    +IntegralCurveAtts.pathlines = 1
    +IntegralCurveAtts.pathlinesOverrideStartingTimeFlag = 0
    +IntegralCurveAtts.pathlinesOverrideStartingTime = 0
    +IntegralCurveAtts.pathlinesPeriod = 0
    +IntegralCurveAtts.pathlinesCMFE = IntegralCurveAtts.CONN_CMFE
    +IntegralCurveAtts.displayGeometry = IntegralCurveAtts.Lines
    +IntegralCurveAtts.cropBeginFlag = 0
    +IntegralCurveAtts.cropBegin = 0
    +IntegralCurveAtts.cropEndFlag = 0
    +IntegralCurveAtts.cropEnd = 0
    +IntegralCurveAtts.cropValue = IntegralCurveAtts.Time
    +IntegralCurveAtts.sampleDistance0 = 10
    +IntegralCurveAtts.sampleDistance1 = 10
    +IntegralCurveAtts.sampleDistance2 = 10
    +IntegralCurveAtts.fillInterior = 1
    +IntegralCurveAtts.randomSamples = 0
    +IntegralCurveAtts.randomSeed = 0
    +IntegralCurveAtts.numberOfRandomSamples = 1
    +IntegralCurveAtts.issueAdvectionWarnings = 1
    +IntegralCurveAtts.issueBoundaryWarnings = 1
    +IntegralCurveAtts.issueTerminationWarnings = 1
    +IntegralCurveAtts.issueStepsizeWarnings = 1
    +IntegralCurveAtts.issueStiffnessWarnings = 1
    +IntegralCurveAtts.issueCriticalPointsWarnings = 1
    +IntegralCurveAtts.criticalPointThreshold = 0.001
    +IntegralCurveAtts.correlationDistanceAngTol = 5
    +IntegralCurveAtts.correlationDistanceMinDistAbsolute = 1
    +IntegralCurveAtts.correlationDistanceMinDistBBox = 0.005
    +IntegralCurveAtts.correlationDistanceMinDistType = IntegralCurveAtts.FractionOfBBox
    +IntegralCurveAtts.selection = ""
    +IntegralCurveAtts.issueAdvectionWarnings = 0
    +IntegralCurveAtts.issueBoundaryWarnings = 0
    +IntegralCurveAtts.issueTerminationWarnings = 0
    +IntegralCurveAtts.issueStepsizeWarnings = 0
    +IntegralCurveAtts.issueStiffnessWarnings = 0
    +IntegralCurveAtts.issueCriticalPointsWarnings = 0
    +
    +SetOperatorOptions(IntegralCurveAtts, 0)
    +DrawPlots()
    +Test("ic_pathlines_01")
    +
    +IntegralCurveAtts.terminateByTime = 1
    +IntegralCurveAtts.termTime = 3
    +SetOperatorOptions(IntegralCurveAtts)
    +Test("ic_pathlines_02")
    +
    +TimeSliderSetState(6)
    +e = GetLastError()
    +TestText("ic_pathlines_03", e)
    +
    +IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Backward
    +SetOperatorOptions(IntegralCurveAtts)
    +DrawPlots()
    +Test("ic_pathlines_04")
    +
    +IntegralCurveAtts.terminateByTime = 0
    +SetOperatorOptions(IntegralCurveAtts)
    +Test("ic_pathlines_05")
    +
    +IntegralCurveAtts.pathlinesOverrideStartingTimeFlag = 1
    +IntegralCurveAtts.pathlinesOverrideStartingTime = 3.5
    +SetOperatorOptions(IntegralCurveAtts)
    +Test("ic_pathlines_06")
    +
    +TimeSliderSetState(0)
    +IntegralCurveAtts.pathlinesCMFE = IntegralCurveAtts.POS_CMFE
    +SetOperatorOptions(IntegralCurveAtts)
    +Test("ic_pathlines_07")
    +
    +IntegralCurveAtts.pathlinesCMFE = IntegralCurveAtts.POS_CMFE
    +SetOperatorOptions(IntegralCurveAtts)
    +Test("ic_pathlines_08")
    +
    +IntegralCurveAtts.pathlinesOverrideStartingTimeFlag = 0
    +SetOperatorOptions(IntegralCurveAtts)
    +e = GetLastError()
    +TestText("ic_pathlines_09", e)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_ic_pics.html b/2024-12-12-22:00/poodle_trunk_serial/operators_ic_pics.html new file mode 100644 index 000000000..e3bb79058 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_ic_pics.html @@ -0,0 +1,1392 @@ + +Results for operators/ic_pics.py + +

    Results of VisIt Regression Test - operators/ic_pics

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    MB_2D_rect
    Varying time type with parallelization algorithm = POS
    Varying integrator = Euler (0)
    ic_pics_MB_2D_rect_POS_Euler_path_forward0.000.00
    ic_pics_MB_2D_rect_POS_Euler_path_backward0.000.00
    ic_pics_MB_2D_rect_POS_Euler_stream_forward0.000.00
    ic_pics_MB_2D_rect_POS_Euler_stream_backward0.000.00
    ic_pics_MB_2D_rect_POS_Euler_stream_both0.000.00
    Varying integrator = Leapfrog (1)
    ic_pics_MB_2D_rect_POS_Leapfrog_path_forward0.000.00
    ic_pics_MB_2D_rect_POS_Leapfrog_path_backward0.000.00
    ic_pics_MB_2D_rect_POS_Leapfrog_stream_forward0.000.00
    ic_pics_MB_2D_rect_POS_Leapfrog_stream_backward0.000.00
    ic_pics_MB_2D_rect_POS_Leapfrog_stream_both0.000.00
    Varying integrator = DormandPrince (2)
    ic_pics_MB_2D_rect_POS_DormandPrince_path_forward0.000.00
    ic_pics_MB_2D_rect_POS_DormandPrince_path_backward0.000.00
    ic_pics_MB_2D_rect_POS_DormandPrince_stream_forward0.000.00
    ic_pics_MB_2D_rect_POS_DormandPrince_stream_backward0.000.00
    ic_pics_MB_2D_rect_POS_DormandPrince_stream_both0.000.00
    Varying integrator = AdamsBashforth (3)
    ic_pics_MB_2D_rect_POS_AdamsBashforth_path_forward0.000.00
    ic_pics_MB_2D_rect_POS_AdamsBashforth_path_backward0.000.00
    ic_pics_MB_2D_rect_POS_AdamsBashforth_stream_forward0.000.00
    ic_pics_MB_2D_rect_POS_AdamsBashforth_stream_backward0.000.00
    ic_pics_MB_2D_rect_POS_AdamsBashforth_stream_both0.000.00
    Varying integrator = RK4 (4)
    ic_pics_MB_2D_rect_POS_RK4_path_forward0.000.00
    ic_pics_MB_2D_rect_POS_RK4_path_backward0.000.00
    ic_pics_MB_2D_rect_POS_RK4_stream_forward0.000.00
    ic_pics_MB_2D_rect_POS_RK4_stream_backward0.000.00
    ic_pics_MB_2D_rect_POS_RK4_stream_both0.000.00
    Varying time type with parallelization algorithm = POD
    Varying integrator = Euler (0)
    ic_pics_MB_2D_rect_POD_Euler_path_forward0.000.00
    ic_pics_MB_2D_rect_POD_Euler_path_backward0.000.00
    ic_pics_MB_2D_rect_POD_Euler_stream_forward0.000.00
    ic_pics_MB_2D_rect_POD_Euler_stream_backward0.000.00
    ic_pics_MB_2D_rect_POD_Euler_stream_both0.000.00
    Varying integrator = Leapfrog (1)
    ic_pics_MB_2D_rect_POD_Leapfrog_path_forward0.000.00
    ic_pics_MB_2D_rect_POD_Leapfrog_path_backward0.000.00
    ic_pics_MB_2D_rect_POD_Leapfrog_stream_forward0.000.00
    ic_pics_MB_2D_rect_POD_Leapfrog_stream_backward0.000.00
    ic_pics_MB_2D_rect_POD_Leapfrog_stream_both0.000.00
    Varying integrator = DormandPrince (2)
    ic_pics_MB_2D_rect_POD_DormandPrince_path_forward0.000.00
    ic_pics_MB_2D_rect_POD_DormandPrince_path_backward0.000.00
    ic_pics_MB_2D_rect_POD_DormandPrince_stream_forward0.000.00
    ic_pics_MB_2D_rect_POD_DormandPrince_stream_backward0.000.00
    ic_pics_MB_2D_rect_POD_DormandPrince_stream_both0.000.00
    Varying integrator = AdamsBashforth (3)
    ic_pics_MB_2D_rect_POD_AdamsBashforth_path_forward0.000.00
    ic_pics_MB_2D_rect_POD_AdamsBashforth_path_backward0.000.00
    ic_pics_MB_2D_rect_POD_AdamsBashforth_stream_forward0.000.00
    ic_pics_MB_2D_rect_POD_AdamsBashforth_stream_backward0.000.00
    ic_pics_MB_2D_rect_POD_AdamsBashforth_stream_both0.000.00
    Varying integrator = RK4 (4)
    ic_pics_MB_2D_rect_POD_RK4_path_forward0.000.00
    ic_pics_MB_2D_rect_POD_RK4_path_backward0.000.00
    ic_pics_MB_2D_rect_POD_RK4_stream_forward0.000.00
    ic_pics_MB_2D_rect_POD_RK4_stream_backward0.000.00
    ic_pics_MB_2D_rect_POD_RK4_stream_both0.000.00
    MB_2D_ugrid
    Varying time type with parallelization algorithm = POS
    Varying integrator = Euler (0)
    ic_pics_MB_2D_ugrid_POS_Euler_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_Euler_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_Euler_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_Euler_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_Euler_stream_both0.000.00
    Varying integrator = Leapfrog (1)
    ic_pics_MB_2D_ugrid_POS_Leapfrog_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_Leapfrog_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_Leapfrog_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_Leapfrog_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_Leapfrog_stream_both0.000.00
    Varying integrator = DormandPrince (2)
    ic_pics_MB_2D_ugrid_POS_DormandPrince_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_DormandPrince_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_DormandPrince_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_DormandPrince_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_DormandPrince_stream_both0.000.00
    Varying integrator = AdamsBashforth (3)
    ic_pics_MB_2D_ugrid_POS_AdamsBashforth_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_AdamsBashforth_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_AdamsBashforth_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_AdamsBashforth_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_AdamsBashforth_stream_both0.000.00
    Varying integrator = RK4 (4)
    ic_pics_MB_2D_ugrid_POS_RK4_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_RK4_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_RK4_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POS_RK4_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POS_RK4_stream_both0.000.00
    Varying time type with parallelization algorithm = POD
    Varying integrator = Euler (0)
    ic_pics_MB_2D_ugrid_POD_Euler_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_Euler_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_Euler_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_Euler_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_Euler_stream_both0.000.00
    Varying integrator = Leapfrog (1)
    ic_pics_MB_2D_ugrid_POD_Leapfrog_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_Leapfrog_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_Leapfrog_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_Leapfrog_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_Leapfrog_stream_both0.000.00
    Varying integrator = DormandPrince (2)
    ic_pics_MB_2D_ugrid_POD_DormandPrince_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_DormandPrince_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_DormandPrince_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_DormandPrince_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_DormandPrince_stream_both0.000.00
    Varying integrator = AdamsBashforth (3)
    ic_pics_MB_2D_ugrid_POD_AdamsBashforth_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_AdamsBashforth_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_AdamsBashforth_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_AdamsBashforth_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_AdamsBashforth_stream_both0.000.00
    Varying integrator = RK4 (4)
    ic_pics_MB_2D_ugrid_POD_RK4_path_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_RK4_path_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_RK4_stream_forward0.000.00
    ic_pics_MB_2D_ugrid_POD_RK4_stream_backward0.000.00
    ic_pics_MB_2D_ugrid_POD_RK4_stream_both0.000.00
    MB_3D_rect
    Varying time type with parallelization algorithm = POS
    Varying integrator = Euler (0)
    ic_pics_MB_3D_rect_POS_Euler_path_forward0.000.00
    ic_pics_MB_3D_rect_POS_Euler_path_backward0.000.00
    ic_pics_MB_3D_rect_POS_Euler_stream_forward0.000.00
    ic_pics_MB_3D_rect_POS_Euler_stream_backward0.000.00
    ic_pics_MB_3D_rect_POS_Euler_stream_both0.000.00
    Varying integrator = Leapfrog (1)
    ic_pics_MB_3D_rect_POS_Leapfrog_path_forward0.000.00
    ic_pics_MB_3D_rect_POS_Leapfrog_path_backward0.000.00
    ic_pics_MB_3D_rect_POS_Leapfrog_stream_forward0.000.00
    ic_pics_MB_3D_rect_POS_Leapfrog_stream_backward0.000.00
    ic_pics_MB_3D_rect_POS_Leapfrog_stream_both0.000.00
    Varying integrator = DormandPrince (2)
    ic_pics_MB_3D_rect_POS_DormandPrince_path_forward0.000.00
    ic_pics_MB_3D_rect_POS_DormandPrince_path_backward0.000.00
    ic_pics_MB_3D_rect_POS_DormandPrince_stream_forward0.000.00
    ic_pics_MB_3D_rect_POS_DormandPrince_stream_backward0.000.00
    ic_pics_MB_3D_rect_POS_DormandPrince_stream_both0.000.00
    Varying integrator = AdamsBashforth (3)
    ic_pics_MB_3D_rect_POS_AdamsBashforth_path_forward0.000.00
    ic_pics_MB_3D_rect_POS_AdamsBashforth_path_backward0.000.00
    ic_pics_MB_3D_rect_POS_AdamsBashforth_stream_forward0.000.00
    ic_pics_MB_3D_rect_POS_AdamsBashforth_stream_backward0.000.00
    ic_pics_MB_3D_rect_POS_AdamsBashforth_stream_both0.000.00
    Varying integrator = RK4 (4)
    ic_pics_MB_3D_rect_POS_RK4_path_forward0.000.00
    ic_pics_MB_3D_rect_POS_RK4_path_backward0.000.00
    ic_pics_MB_3D_rect_POS_RK4_stream_forward0.000.00
    ic_pics_MB_3D_rect_POS_RK4_stream_backward0.000.00
    ic_pics_MB_3D_rect_POS_RK4_stream_both0.000.00
    Varying time type with parallelization algorithm = POD
    Varying integrator = Euler (0)
    ic_pics_MB_3D_rect_POD_Euler_path_forward0.000.00
    ic_pics_MB_3D_rect_POD_Euler_path_backward0.000.00
    ic_pics_MB_3D_rect_POD_Euler_stream_forward0.000.00
    ic_pics_MB_3D_rect_POD_Euler_stream_backward0.000.00
    ic_pics_MB_3D_rect_POD_Euler_stream_both0.000.00
    Varying integrator = Leapfrog (1)
    ic_pics_MB_3D_rect_POD_Leapfrog_path_forward0.000.00
    ic_pics_MB_3D_rect_POD_Leapfrog_path_backward0.000.00
    ic_pics_MB_3D_rect_POD_Leapfrog_stream_forward0.000.00
    ic_pics_MB_3D_rect_POD_Leapfrog_stream_backward0.000.00
    ic_pics_MB_3D_rect_POD_Leapfrog_stream_both0.000.00
    Varying integrator = DormandPrince (2)
    ic_pics_MB_3D_rect_POD_DormandPrince_path_forward0.000.00
    ic_pics_MB_3D_rect_POD_DormandPrince_path_backward0.000.00
    ic_pics_MB_3D_rect_POD_DormandPrince_stream_forward0.000.00
    ic_pics_MB_3D_rect_POD_DormandPrince_stream_backward0.000.00
    ic_pics_MB_3D_rect_POD_DormandPrince_stream_both0.000.00
    Varying integrator = AdamsBashforth (3)
    ic_pics_MB_3D_rect_POD_AdamsBashforth_path_forward0.000.00
    ic_pics_MB_3D_rect_POD_AdamsBashforth_path_backward0.000.00
    ic_pics_MB_3D_rect_POD_AdamsBashforth_stream_forward0.000.00
    ic_pics_MB_3D_rect_POD_AdamsBashforth_stream_backward0.000.00
    ic_pics_MB_3D_rect_POD_AdamsBashforth_stream_both0.000.00
    Varying integrator = RK4 (4)
    ic_pics_MB_3D_rect_POD_RK4_path_forward0.000.00
    ic_pics_MB_3D_rect_POD_RK4_path_backward0.000.00
    ic_pics_MB_3D_rect_POD_RK4_stream_forward0.000.00
    ic_pics_MB_3D_rect_POD_RK4_stream_backward0.000.00
    ic_pics_MB_3D_rect_POD_RK4_stream_both0.000.00
    MB_3D_ugrid
    Varying time type with parallelization algorithm = POS
    Varying integrator = Euler (0)
    ic_pics_MB_3D_ugrid_POS_Euler_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_Euler_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_Euler_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_Euler_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_Euler_stream_both0.000.00
    Varying integrator = Leapfrog (1)
    ic_pics_MB_3D_ugrid_POS_Leapfrog_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_Leapfrog_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_Leapfrog_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_Leapfrog_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_Leapfrog_stream_both0.000.00
    Varying integrator = DormandPrince (2)
    ic_pics_MB_3D_ugrid_POS_DormandPrince_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_DormandPrince_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_DormandPrince_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_DormandPrince_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_DormandPrince_stream_both0.000.00
    Varying integrator = AdamsBashforth (3)
    ic_pics_MB_3D_ugrid_POS_AdamsBashforth_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_AdamsBashforth_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_AdamsBashforth_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_AdamsBashforth_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_AdamsBashforth_stream_both0.000.00
    Varying integrator = RK4 (4)
    ic_pics_MB_3D_ugrid_POS_RK4_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_RK4_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_RK4_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POS_RK4_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POS_RK4_stream_both0.000.00
    Varying time type with parallelization algorithm = POD
    Varying integrator = Euler (0)
    ic_pics_MB_3D_ugrid_POD_Euler_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_Euler_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_Euler_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_Euler_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_Euler_stream_both0.000.00
    Varying integrator = Leapfrog (1)
    ic_pics_MB_3D_ugrid_POD_Leapfrog_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_Leapfrog_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_Leapfrog_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_Leapfrog_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_Leapfrog_stream_both0.000.00
    Varying integrator = DormandPrince (2)
    ic_pics_MB_3D_ugrid_POD_DormandPrince_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_DormandPrince_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_DormandPrince_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_DormandPrince_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_DormandPrince_stream_both0.000.00
    Varying integrator = AdamsBashforth (3)
    ic_pics_MB_3D_ugrid_POD_AdamsBashforth_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_AdamsBashforth_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_AdamsBashforth_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_AdamsBashforth_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_AdamsBashforth_stream_both0.000.00
    Varying integrator = RK4 (4)
    ic_pics_MB_3D_ugrid_POD_RK4_path_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_RK4_path_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_RK4_stream_forward0.000.00
    ic_pics_MB_3D_ugrid_POD_RK4_stream_backward0.000.00
    ic_pics_MB_3D_ugrid_POD_RK4_stream_both0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_ic_pics_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_ic_pics_py.html new file mode 100644 index 000000000..d346e677b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_ic_pics_py.html @@ -0,0 +1,114 @@ +operators/ic_pics.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ic_pics.py
    +#
    +#  Tests:      operator      - integralcurve
    +#
    +#  Defect ID:  -
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       March 10, 2016
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Thu Sep 17 11:35:47 PDT 2020
    +#    Turn off IC warnings. Set larger linewidth so for better images.
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("PICS_Tester")
    +
    +IntegralCurveAtts = IntegralCurveAttributes()
    +databases=["MB_2D_rect", "MB_2D_ugrid", "MB_3D_rect", "MB_3D_ugrid"]
    +is2D=[1,1,0,0]
    +isUgrid=[0,1,0,1]
    +algs=[IntegralCurveAtts.LoadOnDemand, IntegralCurveAtts.ParallelStaticDomains]
    +algs_strings=["POS", "POD", "MS", "BestAlg"]
    +time_strings=["path_forward", "path_backward", "stream_forward", "stream_backward", "stream_both"]
    +intg=[IntegralCurveAtts.Euler, IntegralCurveAtts.Leapfrog, IntegralCurveAtts.DormandPrince, IntegralCurveAtts.AdamsBashforth, IntegralCurveAtts.RK4]
    +intg_strings=["Euler", "Leapfrog", "DormandPrince", "AdamsBashforth", "RK4"]
    +
    +View3DAtts = View3DAttributes()
    +View3DAttIntegralCurveAttsviewNormal = (0.270729, 0.624198, 0.732859)
    +View3DAttIntegralCurveAttsfocus = (0.496062, 0.99603, 0.496062)
    +View3DAttIntegralCurveAttsviewUp = (-0.0922782, 0.774611, -0.62567)
    +View3DAttIntegralCurveAttsviewAngle = 30
    +View3DAttIntegralCurveAttsparallelScale = 12.1829
    +View3DAttIntegralCurveAttsnearPlane = -24.3658
    +View3DAttIntegralCurveAttsfarPlane = 24.3658
    +View3DAttIntegralCurveAttsimagePan = (0, 0)
    +View3DAttIntegralCurveAttsimageZoom = 1
    +View3DAttIntegralCurveAttsperspective = 1
    +View3DAttIntegralCurveAttseyeAngle = 2
    +View3DAttIntegralCurveAttsaxis3DScaleFlag = 0
    +View3DAttIntegralCurveAttsaxis3DScales = (1, 1, 1)
    +SetView3D(View3DAtts)
    +
    +for i in range(len(databases)):
    +  TestSection(databases[i])
    +  db=data_path("pics_test_data/%s.pics") %(databases[i])
    +  for j in range(len(algs)):
    +     tmpstr="Varying time type with parallelization algorithm = %s" %(algs_strings[j])
    +     TestSection(tmpstr)
    +
    +     for integrator_i in range(len(intg)) :
    +       tmpstr="Varying integrator = %s (%d)" %(intg_strings[integrator_i], integrator_i)
    +       TestSection(tmpstr)
    +
    +       for k in range(len(time_strings)):
    +         DeleteAllPlots()
    +         OpenDatabase(db)
    +         AddPlot("Pseudocolor", "operators/IntegralCurve/velocity", 1, 0)
    +         pcAtts = PseudocolorAttributes();
    +         pcAtts.lineWidth = 3
    +         SetPlotOptions(pcAtts)
    +         IntegralCurveAtts = IntegralCurveAttributes()
    +         IntegralCurveAtts.parallelizationAlgorithmType = algs[j]
    +         IntegralCurveAtts.sourceType = IntegralCurveAtts.SpecifiedPoint
    +         IntegralCurveAtts.issueAdvectionWarnings = 0
    +         IntegralCurveAtts.issueBoundaryWarnings = 0
    +         IntegralCurveAtts.issueTerminationWarnings = 0
    +         IntegralCurveAtts.issueStepsizeWarnings = 0
    +         IntegralCurveAtts.issueStiffnessWarnings = 0
    +         IntegralCurveAtts.issueCriticalPointsWarnings = 0
    +         if (is2D[i]):
    +           if (intg[integrator_i] in [IntegralCurveAtts.RK4, IntegralCurveAtts.DormandPrince, IntegralCurveAtts.AdamsBashforth]) :
    +             IntegralCurveAtts.pointSource = (0.51, 0.1, 0)
    +           else:
    +             IntegralCurveAtts.pointSource = (0.5, 0.1, 0)
    +         else:
    +           if (isUgrid[i]):
    +             IntegralCurveAtts.pointSource = (0.2, 0.6, 0.6)
    +           else:
    +             if (intg[integrator_i] in [IntegralCurveAtts.RK4, IntegralCurveAtts.DormandPrince, IntegralCurveAtts.AdamsBashforth]) :
    +               IntegralCurveAtts.pointSource = (0.51, 0.1, 0.1)
    +             else:
    +               IntegralCurveAtts.pointSource = (0.5, 0.1, 0.1)
    +         if (time_strings[k] == "path_forward"):
    +           TimeSliderSetState(0)
    +           IntegralCurveAtts.pathlines = 1
    +           IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Forward
    +         if (time_strings[k] == "path_backward"):
    +           TimeSliderSetState(TimeSliderGetNStates()-1)
    +           IntegralCurveAtts.pathlines = 1
    +           IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Backward
    +         if (time_strings[k] == "stream_forward"):
    +           TimeSliderSetState(0)
    +           IntegralCurveAtts.pathlines = 0
    +           IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Forward
    +         if (time_strings[k] == "stream_backward"):
    +           TimeSliderSetState(0)
    +           IntegralCurveAtts.pathlines = 0
    +           IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Backward
    +         if (time_strings[k] == "stream_both"):
    +           TimeSliderSetState(0)
    +           IntegralCurveAtts.pathlines = 0
    +           IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Both
    +         IntegralCurveAtts.maxStepLength = 0.01
    +         IntegralCurveAtts.pathlinesCMFE = IntegralCurveAtts.POS_CMFE
    +         IntegralCurveAtts.integrationType = intg[integrator_i]
    +         SetOperatorOptions(IntegralCurveAtts)
    +         DrawPlots()
    +         tmpstr="ic_pics_%s_%s_%s_%s" %(databases[i], algs_strings[j], intg_strings[integrator_i], time_strings[k])
    +         Test(tmpstr)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_ic_streamlines.html b/2024-12-12-22:00/poodle_trunk_serial/operators_ic_streamlines.html new file mode 100644 index 000000000..dfc67c8fc --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_ic_streamlines.html @@ -0,0 +1,102 @@ + +Results for operators/ic_streamlines.py + +

    Results of VisIt Regression Test - operators/ic_streamlines

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ic_streamlines_010.000.00
    ic_streamlines_020.000.00
    ic_streamlines_030.000.00
    ic_streamlines_040.000.00
    ic_streamlines_050.000.00
    ic_streamlines_060.000.00
    ic_streamlines_070.000.00
    ic_streamlines_080.000.00
    ic_streamlines_090.000.00
    ic_streamlines_100.000.00
    ic_streamlines_110.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_ic_streamlines_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_ic_streamlines_py.html new file mode 100644 index 000000000..1610cef3c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_ic_streamlines_py.html @@ -0,0 +1,220 @@ +operators/ic_streamlines.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ic_streamlines.py
    +#
    +#  Tests:      operator      - integralcurve
    +#
    +#  Defect ID:  -
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       March 10, 2016
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Tue Sep 29 11:29:33 PDT 2020
    +#    Turn off IC warnings.
    +#
    +#    Eddie Rusu, Tue Apr 13 12:08:59 PDT 2021
    +#    Changed Pseudocolor CurrentPlot to ActualData.
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "operators/IntegralCurve/grad", 1, 0)
    +
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.270729, 0.624198, 0.732859)
    +View3DAtts.focus = (0.496062, 0.99603, 0.496062)
    +View3DAtts.viewUp = (-0.0922782, 0.774611, -0.62567)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 12.1829
    +View3DAtts.nearPlane = -24.3658
    +View3DAtts.farPlane = 24.3658
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +SetView3D(View3DAtts)
    +
    +PseudocolorAtts = PseudocolorAttributes()
    +PseudocolorAtts.scaling = PseudocolorAtts.Linear  # Linear, Log, Skew
    +PseudocolorAtts.skewFactor = 1
    +PseudocolorAtts.limitsMode = PseudocolorAtts.OriginalData  # OriginalData, ActualData
    +PseudocolorAtts.minFlag = 0
    +PseudocolorAtts.min = 0
    +PseudocolorAtts.maxFlag = 0
    +PseudocolorAtts.max = 1
    +PseudocolorAtts.centering = PseudocolorAtts.Natural  # Natural, Nodal, Zonal
    +PseudocolorAtts.colorTableName = "hot"
    +PseudocolorAtts.invertColorTable = 0
    +PseudocolorAtts.opacityType = PseudocolorAtts.FullyOpaque  # ColorTable, FullyOpaque, Constant, Ramp, VariableRange
    +PseudocolorAtts.opacityVariable = ""
    +PseudocolorAtts.opacity = 1
    +PseudocolorAtts.opacityVarMin = 0
    +PseudocolorAtts.opacityVarMax = 1
    +PseudocolorAtts.opacityVarMinFlag = 0
    +PseudocolorAtts.opacityVarMaxFlag = 0
    +PseudocolorAtts.pointSize = 0.05
    +PseudocolorAtts.pointType = PseudocolorAtts.Point  # Box, Axis, Icosahedron, Octahedron, Tetrahedron, SphereGeometry, Point, Sphere
    +PseudocolorAtts.pointSizeVarEnabled = 0
    +PseudocolorAtts.pointSizeVar = "default"
    +PseudocolorAtts.pointSizePixels = 2
    +PseudocolorAtts.lineType = PseudocolorAtts.Tube  # Line, Tube, Ribbon
    +PseudocolorAtts.lineWidth = 0
    +PseudocolorAtts.tubeResolution = 100
    +PseudocolorAtts.tubeRadiusSizeType = PseudocolorAtts.Absolute  # Absolute, FractionOfBBox
    +PseudocolorAtts.tubeRadiusAbsolute = 0.25
    +PseudocolorAtts.tubeRadiusBBox = 0.005
    +PseudocolorAtts.tubeRadiusVarEnabled = 0
    +PseudocolorAtts.tubeRadiusVar = ""
    +PseudocolorAtts.tubeRadiusVarRatio = 10
    +PseudocolorAtts.tailStyle = PseudocolorAtts.Spheres  # None, Spheres, Cones
    +PseudocolorAtts.headStyle = PseudocolorAtts.NONE  # None, Spheres, Cones
    +PseudocolorAtts.endPointRadiusSizeType = PseudocolorAtts.Absolute  # Absolute, FractionOfBBox
    +PseudocolorAtts.endPointRadiusAbsolute = 0.8
    +PseudocolorAtts.endPointRadiusBBox = 0.005
    +PseudocolorAtts.endPointResolution = 100
    +PseudocolorAtts.endPointRatio = 2
    +PseudocolorAtts.endPointRadiusVarEnabled = 0
    +PseudocolorAtts.endPointRadiusVar = ""
    +PseudocolorAtts.endPointRadiusVarRatio = 10
    +PseudocolorAtts.renderSurfaces = 1
    +PseudocolorAtts.renderWireframe = 0
    +PseudocolorAtts.renderPoints = 0
    +PseudocolorAtts.smoothingLevel = 0
    +PseudocolorAtts.legendFlag = 1
    +PseudocolorAtts.lightingFlag = 1
    +PseudocolorAtts.wireframeColor = (0, 0, 0, 0)
    +PseudocolorAtts.pointColor = (0, 0, 0, 0)
    +SetPlotOptions(PseudocolorAtts)
    +
    +IntegralCurveAtts = IntegralCurveAttributes()
    +IntegralCurveAtts.sourceType = IntegralCurveAtts.SpecifiedPlane  # SpecifiedPoint, PointList, SpecifiedLine, Circle, SpecifiedPlane, SpecifiedSphere, SpecifiedBox, Selection, FieldData
    +IntegralCurveAtts.pointSource = (0, 0, 0)
    +IntegralCurveAtts.lineStart = (0, 0, 0)
    +IntegralCurveAtts.lineEnd = (1, 0, 0)
    +IntegralCurveAtts.planeOrigin = (0.5, 1, 0.5)
    +IntegralCurveAtts.planeNormal = (0, 1, 0)
    +IntegralCurveAtts.planeUpAxis = (1, 0, 0)
    +IntegralCurveAtts.radius = 1
    +IntegralCurveAtts.sphereOrigin = (0, 0, 0)
    +IntegralCurveAtts.boxExtents = (0, 1, 0, 1, 0, 1)
    +IntegralCurveAtts.useWholeBox = 1
    +IntegralCurveAtts.pointList = (0, 0, 0, 1, 0, 0, 0, 1, 0)
    +IntegralCurveAtts.fieldData = ()
    +IntegralCurveAtts.sampleDensity0 = 5
    +IntegralCurveAtts.sampleDensity1 = 5
    +IntegralCurveAtts.sampleDensity2 = 2
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.Speed  # Solid, SeedPointID, Speed, Vorticity, ArcLength, TimeAbsolute, TimeRelative, AverageDistanceFromSeed, CorrelationDistance, Difference, Variable
    +IntegralCurveAtts.dataVariable = ""
    +IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Both  # Forward, Backward, Both, ForwardDirectionless, BackwardDirectionless, BothDirectionless
    +IntegralCurveAtts.maxSteps = 100000
    +IntegralCurveAtts.terminateByDistance = 0
    +IntegralCurveAtts.termDistance = 10
    +IntegralCurveAtts.terminateByTime = 1
    +IntegralCurveAtts.termTime = 200
    +IntegralCurveAtts.maxStepLength = 0.1
    +IntegralCurveAtts.limitMaximumTimestep = 1
    +IntegralCurveAtts.maxTimeStep = 0.02
    +IntegralCurveAtts.relTol = 1e-06
    +IntegralCurveAtts.absTolSizeType = IntegralCurveAtts.FractionOfBBox  # Absolute, FractionOfBBox
    +IntegralCurveAtts.absTolAbsolute = 1e-06
    +IntegralCurveAtts.absTolBBox = 1e-07
    +IntegralCurveAtts.fieldType = IntegralCurveAtts.Default  # Default, FlashField, M3DC12DField, M3DC13DField, Nek5000Field, NektarPPField
    +IntegralCurveAtts.fieldConstant = 1
    +IntegralCurveAtts.velocitySource = (0, 0, 0)
    +IntegralCurveAtts.integrationType = IntegralCurveAtts.DormandPrince  # Euler, Leapfrog, DormandPrince, AdamsBashforth, RK4, M3DC12DIntegrator
    +IntegralCurveAtts.parallelizationAlgorithmType = IntegralCurveAtts.VisItSelects  # LoadOnDemand, ParallelStaticDomains, ManagerWorker, VisItSelects
    +IntegralCurveAtts.maxProcessCount = 10
    +IntegralCurveAtts.maxDomainCacheSize = 3
    +IntegralCurveAtts.workGroupSize = 32
    +IntegralCurveAtts.pathlines = 0
    +IntegralCurveAtts.pathlinesOverrideStartingTimeFlag = 0
    +IntegralCurveAtts.pathlinesOverrideStartingTime = 0
    +IntegralCurveAtts.pathlinesPeriod = 0
    +IntegralCurveAtts.pathlinesCMFE = IntegralCurveAtts.POS_CMFE  # CONN_CMFE, POS_CMFE
    +IntegralCurveAtts.displayGeometry = IntegralCurveAtts.Lines  # Lines, Tubes, Ribbons
    +IntegralCurveAtts.cropBeginFlag = 0
    +IntegralCurveAtts.cropBegin = 0
    +IntegralCurveAtts.cropEndFlag = 0
    +IntegralCurveAtts.cropEnd = 0
    +IntegralCurveAtts.cropValue = IntegralCurveAtts.Time  # Distance, Time, StepNumber
    +IntegralCurveAtts.sampleDistance0 = 18
    +IntegralCurveAtts.sampleDistance1 = 18
    +IntegralCurveAtts.sampleDistance2 = 10
    +IntegralCurveAtts.fillInterior = 1
    +IntegralCurveAtts.randomSamples = 0
    +IntegralCurveAtts.randomSeed = 0
    +IntegralCurveAtts.numberOfRandomSamples = 1
    +IntegralCurveAtts.issueAdvectionWarnings = 0
    +IntegralCurveAtts.issueBoundaryWarnings = 0
    +IntegralCurveAtts.issueTerminationWarnings = 0
    +IntegralCurveAtts.issueStepsizeWarnings = 0
    +IntegralCurveAtts.issueStiffnessWarnings = 0
    +IntegralCurveAtts.issueCriticalPointsWarnings = 0
    +IntegralCurveAtts.criticalPointThreshold = 0.001
    +IntegralCurveAtts.correlationDistanceAngTol = 5
    +IntegralCurveAtts.correlationDistanceMinDistAbsolute = 1
    +IntegralCurveAtts.correlationDistanceMinDistBBox = 0.005
    +IntegralCurveAtts.correlationDistanceMinDistType = IntegralCurveAtts.FractionOfBBox  # Absolute, FractionOfBBox
    +IntegralCurveAtts.selection = ""
    +
    +# Test coloring options
    +
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.Speed
    +SetOperatorOptions(IntegralCurveAtts)
    +DrawPlots()
    +Test( "ic_streamlines_01" )
    +
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.Vorticity
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_02" )
    +
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.ArcLength
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_03" )
    +
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.TimeAbsolute
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_04" )
    +
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.SeedPointID
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_05" )
    +
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.Variable
    +IntegralCurveAtts.dataVariable = "hardyglobal"
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_06" )
    +
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.Solid
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_07" )
    +
    +# test termination modes (termination by time implied in previous tests)
    +
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.ArcLength
    +
    +IntegralCurveAtts.terminateByTime = 0
    +IntegralCurveAtts.terminateByDistance = 1
    +IntegralCurveAtts.termDistance = 10
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_08" )
    +
    +IntegralCurveAtts.termDistance = 5
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_09" )
    +
    +IntegralCurveAtts.terminateByDistance = 0
    +IntegralCurveAtts.maxSteps = 500
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_10" )
    +
    +IntegralCurveAtts.maxSteps = 250
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_streamlines_11" )
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_ic_termination.html b/2024-12-12-22:00/poodle_trunk_serial/operators_ic_termination.html new file mode 100644 index 000000000..349692daa --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_ic_termination.html @@ -0,0 +1,84 @@ + +Results for operators/ic_termination.py + +

    Results of VisIt Regression Test - operators/ic_termination

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ic_termination_010.000.00
    ic_termination_020.000.00
    ic_termination_030.000.00
    ic_termination_040.000.00
    ic_termination_050.000.00
    ic_termination_060.000.00
    ic_termination_070.000.00
    ic_termination_080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_ic_termination_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_ic_termination_py.html new file mode 100644 index 000000000..7e67fa480 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_ic_termination_py.html @@ -0,0 +1,91 @@ +operators/ic_termination.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ic_termination.py
    +#
    +#  Tests:      operator      - integralcurve
    +#
    +#  Defect ID:  -
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       March 10, 2016
    +#
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +AddPlot("Pseudocolor", "operators/IntegralCurve/grad", 1, 0)
    +
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.270729, 0.624198, 0.732859)
    +View3DAtts.focus = (0.496062, 0.99603, 0.496062)
    +View3DAtts.viewUp = (-0.0922782, 0.774611, -0.62567)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 12.1829
    +View3DAtts.nearPlane = -24.3658
    +View3DAtts.farPlane = 24.3658
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 1
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +SetView3D(View3DAtts)
    +
    +IntegralCurveAtts = IntegralCurveAttributes()
    +IntegralCurveAtts.sourceType = IntegralCurveAtts.SpecifiedPlane  # SpecifiedPoint, SpecifiedPointList, SpecifiedLine, SpecifiedCircle, SpecifiedPlane, SpecifiedSphere, SpecifiedBox
    +IntegralCurveAtts.terminateByTime = 1
    +IntegralCurveAtts.termTime = 200
    +IntegralCurveAtts.planeOrigin = (0.5, 1, 0.5)
    +IntegralCurveAtts.planeNormal = (0, 1, 0)
    +IntegralCurveAtts.planeUpAxis = (1, 0, 0)
    +IntegralCurveAtts.sampleDensity0 = 5
    +IntegralCurveAtts.sampleDensity1 = 5
    +IntegralCurveAtts.sampleDistance0 = 18
    +IntegralCurveAtts.sampleDistance1 = 18
    +IntegralCurveAtts.integrationDirection = IntegralCurveAtts.Both  # Forward, Backward, Both
    +IntegralCurveAtts.relTol = 1e-06
    +IntegralCurveAtts.absTolSizeType = IntegralCurveAtts.Absolute
    +IntegralCurveAtts.absTolAbsolute = 1e-07
    +IntegralCurveAtts.integrationType = IntegralCurveAtts.DormandPrince  # DormandPrince, AdamsBashforth, M3DC1Integrator
    +IntegralCurveAtts.maxProcessCount = 10
    +IntegralCurveAtts.maxDomainCacheSize = 3
    +IntegralCurveAtts.workGroupSize = 32
    +IntegralCurveAtts.dataValue = IntegralCurveAtts.TimeAbsolute
    +
    +# test defaults
    +SetOperatorOptions(IntegralCurveAtts)
    +DrawPlots()
    +Test( "ic_termination_01" )
    +
    +IntegralCurveAtts.termTime = 50
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_termination_02" )
    +
    +IntegralCurveAtts.terminateByDistance = 1
    +IntegralCurveAtts.termDistance = 4
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_termination_03" )
    +
    +IntegralCurveAtts.terminateByDistance = 1
    +IntegralCurveAtts.termDistance = 12
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_termination_04" )
    +
    +IntegralCurveAtts.terminateByTime = 0
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_termination_05" )
    +
    +IntegralCurveAtts.maxSteps = 40
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_termination_06" )
    +
    +IntegralCurveAtts.termDistance = 25
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_termination_07" )
    +
    +IntegralCurveAtts.maxSteps = 10000
    +SetOperatorOptions(IntegralCurveAtts)
    +Test( "ic_termination_08" )
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_indexselect.html b/2024-12-12-22:00/poodle_trunk_serial/operators_indexselect.html new file mode 100644 index 000000000..cb7a8b479 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_indexselect.html @@ -0,0 +1,273 @@ + +Results for operators/indexselect.py + +

    Results of VisIt Regression Test - operators/indexselect

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_indexselect010.000.00
    ops_indexselect020.000.00
    ops_indexselect030.000.00
    ops_indexselect040.000.00
    ops_indexselect050.000.00
    ops_indexselect060.000.00
    ops_indexselect070.000.00
    ops_indexselect080.000.00
    ops_indexselect090.000.00
    ops_indexselect100.000.00
    ops_indexselect110.000.00
    ops_indexselect120.000.00
    ops_indexselect130.000.00
    ops_indexselect140.000.00
    ops_indexselect150.000.00
    ops_indexselect160.000.00
    ops_indexselect170.000.00
    ops_indexselect180.000.00
    ops_indexselect190.000.00
    ops_indexselect200.000.00
    ops_indexselect210.000.00
    ops_indexselect220.000.00
    ops_indexselect230.000.00
    ops_indexselect240.000.00
    ops_indexselect250.000.00
    ops_indexselect260.000.00
    ops_indexselect270.000.00
    ops_indexselect280.000.00
    ops_indexselect290.000.00
    ops_indexselect300.000.00
    ops_indexselect310.000.00
    ops_indexselect320.000.00
    IndexSelect on Point meshes.
    ops_indexselect330.000.00
    ops_indexselect340.000.00
    ops_indexselect350.000.00
    ops_indexselect360.000.00
    ops_indexselect370.000.00
    ops_indexselect380.000.00
    ops_indexselect390.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_indexselect_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_indexselect_py.html new file mode 100644 index 000000000..c13c0221f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_indexselect_py.html @@ -0,0 +1,621 @@ +operators/indexselect.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  indexselect.py
    +#
    +#  Tests:      mesh      - 3D curvilinear, single domain,
    +#                          3D rectilinear, single domain.
    +#                          2D rectilinear, single domain.
    +#                          3D rectilinear, single domain.
    +#              plots     - pc, mesh, subset, vector, surface
    +#              operators - index select (with threshold and sphere slice)
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Hank Childs
    +#  Date:       October 2, 2002
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset plots.
    +#
    +#    Kathleen Bonnell, Wed Sep  3 09:31:25 PDT 2003
    +#    Opaque mode for MeshPlot is ON by default now, so turn it off
    +#    for this test.
    +#
    +#    Kathleen Bonnell, Thu Sep  4 11:10:11 PDT 2003
    +#    Change the way MeshPlot's opaque mode is set (now an enum, not a bool).
    +#
    +#    Kathleen Bonnell, Wed Sep  8 11:29:10 PDT 2004 
    +#    Add two new tests, testing 'modulo' problems. ('3308).
    +#
    +#    Kathleen Bonnell, Wed Jul 20 13:32:44 PDT 2005 
    +#    Add two new tests, testing 'group' problems. ('6386).
    +#
    +#    Kathleen Bonnell, Wed Aug 10 10:13:56 PDT 2005 
    +#    Add tests 27-30 which tests extracting faces along maximum and minimum
    +#    boundaries of 3d data. ('6106).
    +#
    +#    Kathleen Bonnell, Fri Aug 19 15:45:46 PDT 2005 
    +#    Add tests 31-32 which tests domain boundaries w/i a group that coincide
    +#    with external boundaries of the index-selection. ('6428)  
    +#
    +#    Kathleen Bonnell, Mon Jan 30 16:40:30 PST 2006 
    +#    Add tests 33-38 which tests point meshes.
    +#
    +#    Kathleen Bonnell, Thu Jun  7 14:43:32 PDT 2007 
    +#    IndexSelect atts have changed, make corrections. 
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Wed Jan 11 13:57:00 PST 2012
    +#    Added test for Index Select of point meshes with Box operator applied.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +#    Eddie Rusu, Tue Apr 13 12:08:59 PDT 2021
    +#    Changed Pseudocolor CurrentPlot to ActualData.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +atts = IndexSelectAttributes()
    +# Dim is an enumerated type.  0 -> 1D, 1 -> 2D, 2 -> 3D.
    +atts.dim = 2
    +atts.xMin = 5
    +atts.xMax = 23
    +atts.xIncr = 2
    +atts.yMin = 0
    +atts.yMax = 20
    +atts.yIncr = 1
    +atts.zMin = 10
    +atts.zMax = -1
    +atts.zIncr = 2
    +
    +# 3D, rectilinear, zonal var.
    +AddPlot("Pseudocolor", "d")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +view = GetView3D()
    +view.viewNormal = (-0.5, 0.5, 0.7172)
    +SetView3D(view)
    +Test("ops_indexselect01")
    +DeleteAllPlots()
    +
    +# 3D, rectilinear, nodal var.
    +AddPlot("Pseudocolor", "u")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect02")
    +DeleteAllPlots()
    +
    +# 3D, rectilinear, mesh.
    +m = MeshAttributes()
    +m.opaqueMode = m.Off
    +SetDefaultPlotOptions(m)
    +AddPlot("Mesh", "quadmesh3d")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect03")
    +DeleteAllPlots()
    +
    +# 3D, rectilinear, subset.
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("IndexSelect")
    +atts.xIncr = 1
    +atts.yIncr = 1
    +atts.zIncr = 1
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect04")
    +DeleteAllPlots()
    +
    +# 3D, rectilinear, after a threshold
    +AddPlot("Pseudocolor", "p")
    +a2 = ThresholdAttributes()
    +a2.listedVarNames = ("u")
    +a2.lowerBounds = (0.25)
    +a2.upperBounds = (1.0)
    +AddOperator("Threshold")
    +SetOperatorOptions(a2)
    +atts.zMin = 5
    +atts.zMax = 20
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect05")
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +
    +# 3D, curvilinear, mesh plot
    +AddPlot("Mesh", "curvmesh3d")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +ResetView()
    +view = GetView3D()
    +view.viewNormal = (-0.5, 0.5, 0.7172)
    +SetView3D(view)
    +Test("ops_indexselect06")
    +DeleteAllPlots()
    +
    +# 3D, curvilinear, PC plot
    +AddPlot("Pseudocolor", "d")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect07")
    +DeleteAllPlots()
    +
    +# 3D, curvilinear, with sphere slice
    +AddPlot("Pseudocolor", "d")
    +AddOperator("SphereSlice")
    +a3 = SphereSliceAttributes()
    +a3.origin = (2.5, -0.5, 13)
    +a3.radius = 7
    +SetOperatorOptions(a3)
    +AddOperator("IndexSelect")
    +atts.xMin = 0
    +atts.xMax = -1
    +atts.yMin = 0
    +atts.yMax = -1
    +atts.zMin = 5
    +atts.zMax = 18
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect08")
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +# 2D, rectilinear, mesh plot
    +AddPlot("Mesh", "quadmesh2d")
    +AddOperator("IndexSelect")
    +# Dim is an enumerated type.  0 -> 1D, 1 -> 2D, 2 -> 3D.
    +atts.dim = 1
    +atts.xMin = 5
    +atts.xMax = 25
    +atts.yMin = 5
    +atts.yMax = 30
    +SetOperatorOptions(atts)
    +DrawPlots()
    +ResetView()
    +Test("ops_indexselect09")
    +DeleteAllPlots()
    +
    +# 2D, rectilinear, PC plot
    +AddPlot("Pseudocolor", "d")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect10")
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +
    +# 2D, curvilinear, mesh plot
    +AddPlot("Mesh", "curvmesh2d")
    +AddOperator("IndexSelect")
    +atts.yMax = 25
    +SetOperatorOptions(atts)
    +DrawPlots()
    +ResetView()
    +Test("ops_indexselect11")
    +DeleteAllPlots()
    +
    +# 2D, curv, PC plot
    +AddPlot("Pseudocolor", "d")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect12")
    +DeleteAllPlots()
    +
    +# 2D, curv, with threshold.
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Threshold")
    +a2.listedVarNames = ("p")
    +a2.lowerBounds = (0.34)
    +a2.upperBounds = (0.5)
    +SetOperatorOptions(a2)
    +AddOperator("IndexSelect")
    +atts.xMin = 10
    +atts.xMax = -1
    +atts.yMin = 0
    +atts.yMin = -1
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect13")
    +DeleteAllPlots()
    +
    +# 2D, curv of vector
    +AddPlot("Vector", "vel")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_indexselect14")
    +DeleteAllPlots()
    +
    +# 2D surface of curvilinear
    +AddPlot("Pseudocolor", "d")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +AddOperator("Elevate")
    +DrawPlots()
    +ResetView()
    +Test("ops_indexselect15")
    +DeleteAllPlots()
    +
    +# 3D multi-rect 
    +# test 'modulo' problems, bug: VisIt00003308
    +OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("IndexSelect")
    +atts.dim = 2
    +atts.xMin = 0
    +atts.xMax = 1000
    +atts.yMin = 0
    +atts.yMax = 1000
    +atts.zMin = 0
    +atts.zMax = 1000
    +atts.xIncr = 3
    +atts.yIncr = 3
    +atts.zIncr = 3
    +SetOperatorOptions(atts)
    +DrawPlots()
    +ResetView()
    +Test("ops_indexselect16")
    +
    +atts.xMin = 1
    +atts.xMax = 8
    +atts.yMin = 1
    +atts.yMax = 8
    +atts.zMin = 1
    +atts.zMax = 8
    +atts.xIncr = 5
    +atts.yIncr = 5
    +atts.zIncr = 5
    +SetOperatorOptions(atts)
    +
    +Test("ops_indexselect17")
    +DeleteAllPlots()
    +
    +# bigsil 
    +# test 'domainIndex' problems, bug: VisIt00005559
    +OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +AddPlot("Subset", "domains")
    +AddPlot("Mesh", "mesh")
    +AddOperator("IndexSelect")
    +atts.dim = atts.ThreeD
    +atts.xMin = 0
    +atts.xMax = 1000
    +atts.yMin = 0
    +atts.yMax = 1000
    +atts.zMin = 0
    +atts.zMax = 1000
    +atts.xIncr = 1
    +atts.yIncr = 1
    +atts.zIncr = 1
    +atts.useWholeCollection = 0
    +atts.categoryName = "domains"
    +atts.subsetName = "domain2"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +ResetView()
    +
    +v = GetView3D()
    +v.viewNormal = (0.653901, -0.39603, -0.64465)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.251385, -0.917378, 0.308584)
    +v.viewAngle = 30
    +v.parallelScale = 0.866025
    +v.nearPlane = -1.73205
    +v.farPlane = 1.73205
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, 0)
    +SetView3D(v)
    +
    +Test("ops_indexselect18")
    +
    +# smallest domainIndex should be 1
    +atts.subsetName = "domain1"
    +SetOperatorOptions(atts)
    +Test("ops_indexselect19")
    +
    +atts.subsetName = "domain27"
    +SetOperatorOptions(atts)
    +Test("ops_indexselect20")
    +
    +DeleteAllPlots()
    +
    +#test whichData = OneGroup
    +AddPlot("Subset", "blocks")
    +s = SubsetAttributes()
    +s.wireframe = 1
    +s.lineWidth = 3
    +SetPlotOptions(s)
    +AddPlot("Mesh", "mesh")
    +AddPlot("Pseudocolor", "dist")
    +AddOperator("IndexSelect")
    +atts.dim = atts.ThreeD
    +atts.xMin = 1
    +atts.xMax = 2
    +atts.yMin = 1
    +atts.yMax = 2
    +atts.zMin = 0
    +atts.zMax = -1
    +atts.categoryName = "blocks"
    +atts.subsetName = "block0"
    +SetOperatorOptions(atts)
    +
    +DrawPlots()
    +ResetView()
    +v = GetView3D()
    +v.viewNormal = (0, 0, -1)
    +v.focus = (0.5, 0.5, 0.5)
    +v.parallelScale = 0.866025
    +v.viewUp = (0, 1, 0)
    +v.nearPlane = -1.73205
    +v.farPlane  = 1.73205
    +v.perspective = 0
    +SetView3D(v)
    +v.imageZoom = 5.39496
    +SetView3D(v)
    +v.imagePan = (-0.23029, 0.259159)
    +SetView3D(v)
    +Test("ops_indexselect21")
    +
    +atts.categoryName = "domains"
    +atts.subsetName = "domain1"
    +SetOperatorOptions(atts)
    +Test("ops_indexselect22")
    +
    +SetActivePlots(1)
    +DeleteActivePlots()
    +
    +SetActivePlots(1)
    +atts.categoryName = "blocks"
    +atts.subsetName = "block2"
    +atts.xMin = 0
    +atts.xMax = -1
    +atts.yMin = 5
    +atts.yMax = 19
    +atts.zMin = 7
    +atts.zMax = 8
    +SetOperatorOptions(atts)
    +ResetView()
    +Test("ops_indexselect23")
    +
    +TurnMaterialsOff(("1", "5", "8"))
    +Test("ops_indexselect24")
    +
    +TurnMaterialsOn()
    +TurnDomainsOff(("domain23"))
    +Test("ops_indexselect25")
    +
    +TurnMaterialsOff(("1", "5", "8"))
    +Test("ops_indexselect26")
    +
    +TurnMaterialsOn()
    +TurnDomainsOn()
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +# 3D, rectilinear, zonal var, index-selected at max/min boundaries.
    +AddPlot("Pseudocolor", "d")
    +AddOperator("IndexSelect")
    +atts.dim = atts.ThreeD
    +atts.xMin = 0
    +atts.xMax = -1 # maximum
    +atts.yMin = 40 # maximum boundary
    +atts.yMax = 40 # maximum boundary
    +atts.zMin = 0
    +atts.zMax = -1
    +atts.xIncr = 1
    +atts.yIncr = 1
    +atts.zIncr = 1
    +atts.useWholeCollection = 1
    +SetOperatorOptions(atts)
    +pc = PseudocolorAttributes()
    +pc.limitsMode = pc.ActualData
    +SetPlotOptions(pc)
    +DrawPlots()
    +ResetView()
    +view = GetView3D()
    +view.viewNormal = (0, 1, 0)
    +view.viewUp = (0, 0, -1)
    +view.perspective = 0
    +SetView3D(view)
    +Test("ops_indexselect27")
    +
    +atts.yMin = 0
    +atts.yMax = 0
    +SetOperatorOptions(atts)
    +Test("ops_indexselect28")
    +
    +DeleteAllPlots()
    +
    +
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +# 3D, curvilinear, zonal var, index-selected at max/min boundaries.
    +AddPlot("Pseudocolor", "p")
    +AddOperator("IndexSelect")
    +atts.dim = atts.ThreeD
    +atts.xMin = 30
    +atts.xMax = 30
    +atts.yMin = 0
    +atts.yMax = -1
    +atts.zMin = 0
    +atts.zMax = -1
    +atts.xIncr = 1
    +atts.yIncr = 1
    +atts.zIncr = 1
    +SetOperatorOptions(atts)
    +pc = PseudocolorAttributes()
    +pc.limitsMode = pc.ActualData
    +SetPlotOptions(pc)
    +DrawPlots()
    +ResetView()
    +view = GetView3D()
    +view.viewNormal = (0, 1, 0)
    +view.viewUp = (0, 0, -1)
    +view.perspective = 0
    +SetView3D(view)
    +Test("ops_indexselect29")
    +
    +atts.xMin = 0
    +atts.xMax = 0
    +SetOperatorOptions(atts)
    +Test("ops_indexselect30")
    +
    +DeleteAllPlots()
    +
    +#'6428, boundary between domains disappear when on edge of
    +# index-selected plot 
    +OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +AddPlot("Pseudocolor", "dist")
    +atts.dim = atts.ThreeD
    +atts.xMin = 0
    +atts.xMax = -1 #max
    +atts.yMin = 8
    +atts.yMax = 17
    +atts.zMin = 0
    +atts.zMax = -1 #max
    +atts.xIncr = 1
    +atts.yIncr = 1
    +atts.zIncr = 1
    +atts.useWholeCollection = 0
    +atts.categoryName = "blocks"
    +# middle group for this dataset, has group boundaries and internal
    +# domain boundaries
    +atts.subsetName = "block1"
    +
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +ResetView()
    +v = GetView3D()
    +v.viewNormal = (0.437142, -0.719538, -0.539603)
    +v.viewUp = (-0.309012, -0.683599, 0.661214)
    +v.perspective = 0
    +SetView3D(v)
    +Test("ops_indexselect31")
    +
    +DeleteAllPlots()
    +
    +# Filled boundary takes different path through IndexSelect than
    +# does PC, so test it too. 
    +AddPlot("FilledBoundary", "mat")
    +AddOperator("IndexSelect")
    +SetOperatorOptions(atts)
    +DrawPlots()
    +SetView3D(v)
    +Test("ops_indexselect32")
    +DeleteAllPlots()
    +
    +
    +# Test point meshes
    +TestSection("IndexSelect on Point meshes.")
    +OpenDatabase(data_path("vtk_test_data/ugrid_points.vtk"))
    +
    +AddPlot("Pseudocolor", "u")
    +p = PseudocolorAttributes()
    +p.pointType = p.Box
    +p.pointSize = 0.2
    +SetPlotOptions(p)
    +DrawPlots()
    +
    +v = GetView2D()
    +v.windowCoords = (-0.4, 9.4, -0.4, 9.4)
    +SetView2D(v)
    +
    +Test("ops_indexselect33")
    +
    +AddOperator("IndexSelect")
    +isa = IndexSelectAttributes()
    +isa.dim = isa.OneD
    +isa.xMin = 60
    +isa.xMax = 70
    +isa.xIncr = 1
    +SetOperatorOptions(isa)
    +DrawPlots()
    +Test("ops_indexselect34")
    +
    +isa.xMin = 0
    +isa.xMax = -1
    +isa.xIncr = 2
    +SetOperatorOptions(isa)
    +
    +Test("ops_indexselect35")
    +
    +isa.xIncr = 3
    +SetOperatorOptions(isa)
    +Test("ops_indexselect36")
    +
    +isa.xMin = 4
    +isa.xMax = -1
    +isa.xIncr = 2
    +SetOperatorOptions(isa)
    +
    +Test("ops_indexselect37")
    +
    +isa.xMin = 10
    +isa.xMax = 89
    +isa.xIncr = 7
    +SetOperatorOptions(isa)
    +
    +Test("ops_indexselect38")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "PointVar")
    +AddOperator("IndexSelect")
    +# make sure we are using default atts
    +isa = IndexSelectAttributes()
    +SetOperatorOptions(isa)
    +box = BoxAttributes()
    +box.minx = -5
    +box.maxx = 5
    +box.miny = -5
    +box.maxy = 5
    +box.minz = -5
    +box.maxz = 5
    +AddOperator("Box")
    +SetOperatorOptions(box)
    +DrawPlots()
    +
    +Test("ops_indexselect39")
    +
    +DeleteAllPlots()
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_inverse_ghost_zone.html b/2024-12-12-22:00/poodle_trunk_serial/operators_inverse_ghost_zone.html new file mode 100644 index 000000000..12f77270b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_inverse_ghost_zone.html @@ -0,0 +1,72 @@ + +Results for operators/inverse_ghost_zone.py + +

    Results of VisIt Regression Test - operators/inverse_ghost_zone

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_inverse_ghost_zone010.000.00
    ops_inverse_ghost_zone020.000.00
    ops_inverse_ghost_zone030.000.00
    ops_inverse_ghost_zone040.000.00
    ops_inverse_ghost_zone050.000.00
    ops_inverse_ghost_zone060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_inverse_ghost_zone_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_inverse_ghost_zone_py.html new file mode 100644 index 000000000..4780e2431 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_inverse_ghost_zone_py.html @@ -0,0 +1,76 @@ +operators/inverse_ghost_zone.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  inverse_ghost_zone.py
    +#
    +#  Defect ID:  '6724
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 3, 2006
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to switch between Silo's HDF5 and PDB data.
    +#
    +#    Hank Childs, Sun Jan  2 10:45:22 PST 2011
    +#    Add tests for new features.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +AddPlot("Pseudocolor", "dist")
    +# By default, we won't create ghost zones, because we don't need them
    +# for this case.  Do something that makes us need them.
    +pc = PseudocolorAttributes()
    +pc.centering = pc.Zonal
    +SetPlotOptions(pc)
    +AddOperator("InverseGhostZone")
    +DrawPlots()
    +Test("ops_inverse_ghost_zone01")
    +
    +sil = SILRestriction()
    +sil.TurnOffSet(1)
    +SetPlotSILRestriction(sil)
    +Test("ops_inverse_ghost_zone02")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("InverseGhostZone")
    +DrawPlots()
    +Test("ops_inverse_ghost_zone03")
    +
    +sil = SILRestriction()
    +sil.TurnOffSet(1)
    +SetPlotSILRestriction(sil)
    +Test("ops_inverse_ghost_zone04")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(data_path("boxlib_test_data/2D/plt0822/Header"))
    +
    +AddPlot("Pseudocolor", "density")
    +AddOperator("InverseGhostZone")
    +i = InverseGhostZoneAttributes()
    +i.requestGhostZones = 1
    +i.showDuplicated = 1
    +i.showEnhancedConnectivity = 0
    +i.showReducedConnectivity = 0
    +i.showAMRRefined = 0
    +i.showExterior = 0
    +i.showNotApplicable = 0
    +SetOperatorOptions(i)
    +DrawPlots()
    +Test("ops_inverse_ghost_zone05")
    +
    +i.showDuplicated = 0
    +i.showAMRRefined = 1
    +SetOperatorOptions(i)
    +Test("ops_inverse_ghost_zone06")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_isovolume.html b/2024-12-12-22:00/poodle_trunk_serial/operators_isovolume.html new file mode 100644 index 000000000..48edc9eff --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_isovolume.html @@ -0,0 +1,78 @@ + +Results for operators/isovolume.py + +

    Results of VisIt Regression Test - operators/isovolume

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_isovol010.000.00
    ops_isovol020.000.00
    ops_isovol030.000.00
    ops_isovol040.000.00
    ops_isovol050.000.00
    ops_isovol060.000.00
    ops_isovol070.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_isovolume_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_isovolume_py.html new file mode 100644 index 000000000..00356b100 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_isovolume_py.html @@ -0,0 +1,160 @@ +operators/isovolume.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  isovolume.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain,
    +#                          3D rectilinear, multiple domain,
    +#                          2D curvilinear, multiple domain
    +#              plots     - pc, mesh, filledboundary, contour
    +#              operators - isovolume
    +#              selection - none
    +#
    +#  Defect ID:  '5640
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 27, 2004
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Wed Nov 17 15:38:37 PST 2004
    +#    Added test for isovolumes of poly-data where the poly-data is totally
    +#    within the data range. ['5640]
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.SetViewNormal(-0.528889, 0.367702, 0.7649)
    +v.SetViewUp(0.176641, 0.929226, -0.324558)
    +v.SetParallelScale(17.3205)
    +v.SetPerspective(1)
    +SetView3D(v)
    +
    +#
    +# Normal PC isovolume for globe.
    +#
    +isovol = IsovolumeAttributes()
    +
    +isovol.lbound = -4
    +isovol.ubound =  4
    +SetDefaultOperatorOptions(isovol)
    +AddOperator("Isovolume")
    +DrawPlots()
    +Test("ops_isovol01")
    +
    +
    +#
    +# Normal PC plot of globe, isovolumeing by a different variable than what we
    +# are coloring by.
    +#
    +RemoveAllOperators()
    +isovol.lbound = 140
    +isovol.ubound = 340
    +isovol.variable = "t"
    +SetDefaultOperatorOptions(isovol)
    +AddOperator("Isovolume")
    +DrawPlots()
    +Test("ops_isovol02")
    +
    +DeleteAllPlots()
    +
    +#
    +# Contour lines by one variable, isovolumeing by another.  Multi-block,
    +# curvilinear, 2D.
    +#
    +OpenDatabase(silo_data_path("multi_curv2d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +isovol.lbound = 0.7
    +isovol.ubound = 0.9
    +isovol.variable = "v"
    +SetDefaultOperatorOptions(isovol)
    +AddOperator("Isovolume")
    +DrawPlots()
    +
    +Test("ops_isovol03")
    +
    +DeleteAllPlots()
    +
    +#
    +# Material plot, isovolumeed by a scalar variable.  Multi-block,
    +# curvilinear, 2D.
    +#
    +AddPlot("FilledBoundary", "mat1")
    +DrawPlots()
    +
    +isovol.lbound = -0.4
    +isovol.ubound = 1.0
    +isovol.variable = "u"
    +SetDefaultOperatorOptions(isovol)
    +AddOperator("Isovolume")
    +DrawPlots()
    +
    +Test("ops_isovol04")
    +
    +DeleteAllPlots()
    +
    +#
    +# Mesh plot and PC plot, both isovolumeed by the same variable, criteria.
    +# Multi-block, rectilinear, 3D.
    +#
    +OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +
    +isovol.lbound = 0.4
    +isovol.ubound = 1.0
    +isovol.variable = "u"
    +SetDefaultOperatorOptions(isovol)
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Isovolume")
    +AddPlot("Mesh", "mesh1")
    +AddOperator("Isovolume")
    +DrawPlots()
    +
    +Test("ops_isovol05")
    +
    +#
    +# Test that we can slice poly-data correctly.
    +#
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +isovol.lbound = -1.0
    +isovol.ubound = 1.0
    +isovol.variable = "default"
    +SetDefaultOperatorOptions(isovol)
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Slice")
    +AddOperator("Isovolume")
    +DrawPlots()
    +
    +Test("ops_isovol06")
    +
    +isovol.lbound = 0.5
    +SetOperatorOptions(isovol)
    +Test("ops_isovol07")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_lcs.html b/2024-12-12-22:00/poodle_trunk_serial/operators_lcs.html new file mode 100644 index 000000000..bc3797aaa --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_lcs.html @@ -0,0 +1,147 @@ + +Results for operators/lcs.py + +

    Results of VisIt Regression Test - operators/lcs

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Basic FTLE function
    Testing database = ftle_double_gyre_1_domain.pics
    Testing sample source = RegularGrid
    Testing auxiliary grid = NoAuxGrid
    lcs_ftle_double_gyre_1_domain_RegularGrid_NoAuxGrid0.000.00
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_1_domain_RegularGrid_2DAuxGrid0.000.00
    Testing sample source = NativeMesh
    Testing auxiliary grid = NoAuxGrid
    lcs_ftle_double_gyre_1_domain_NativeMesh_NoAuxGrid0.000.00
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_1_domain_NativeMesh_2DAuxGrid0.000.00
    Testing database = ftle_double_gyre_2_domains.pics
    Testing sample source = RegularGrid
    Testing auxiliary grid = NoAuxGrid
    lcs_ftle_double_gyre_2_domains_RegularGrid_NoAuxGrid0.000.00
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_2_domains_RegularGrid_2DAuxGrid0.000.00
    Testing sample source = NativeMesh
    Testing auxiliary grid = NoAuxGrid
    lcs_ftle_double_gyre_2_domains_NativeMesh_NoAuxGrid0.000.00
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_2_domains_NativeMesh_2DAuxGrid0.000.00
    lcs_ftle_double_gyre_2_domains_NativeMesh_2DAuxGrid_Smallest0.000.00
    lcs_ftle_double_gyre_2_domains_NativeMesh_2DAuxGrid_Left0.000.00
    lcs_ftle_double_gyre_2_domains_NativeMesh_2DAuxGrid_EigenValue0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_lcs_ic_1.html b/2024-12-12-22:00/poodle_trunk_serial/operators_lcs_ic_1.html new file mode 100644 index 000000000..a45cbf073 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_lcs_ic_1.html @@ -0,0 +1,66 @@ + +Results for operators/lcs_ic_1.py + +

    Results of VisIt Regression Test - operators/lcs_ic_1

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Basic FTLE function with IntegralCurve operator
    Testing database = ftle_double_gyre_1_domain.pics
    Testing sample source = RegularGrid
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_1_domain_RegularGrid_2DAuxGrid_IntegralCurve0.000.00
    Testing sample source = NativeMesh
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_1_domain_NativeMesh_2DAuxGrid_IntegralCurve0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_lcs_ic_1_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_lcs_ic_1_py.html new file mode 100644 index 000000000..8b7ea4a64 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_lcs_ic_1_py.html @@ -0,0 +1,17 @@ +operators/lcs_ic_1.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  lcs_ic_1.py
    +#
    +#  Tests:      operator   - LCS, IntegralCurve
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       August 25, 2015
    +# ----------------------------------------------------------------------------
    +
    +Source(tests_path("operators", "lcs_operator_main"))
    +
    +LCS_operator("IntegralCurve", "ftle_double_gyre_1_domain")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_lcs_ic_2.html b/2024-12-12-22:00/poodle_trunk_serial/operators_lcs_ic_2.html new file mode 100644 index 000000000..556c810ed --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_lcs_ic_2.html @@ -0,0 +1,66 @@ + +Results for operators/lcs_ic_2.py + +

    Results of VisIt Regression Test - operators/lcs_ic_2

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Basic FTLE function with IntegralCurve operator
    Testing database = ftle_double_gyre_2_domains.pics
    Testing sample source = RegularGrid
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_2_domains_RegularGrid_2DAuxGrid_IntegralCurve0.000.00
    Testing sample source = NativeMesh
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_2_domains_NativeMesh_2DAuxGrid_IntegralCurve0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_lcs_ic_2_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_lcs_ic_2_py.html new file mode 100644 index 000000000..55c8c4de3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_lcs_ic_2_py.html @@ -0,0 +1,17 @@ +operators/lcs_ic_2.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  lcs_ic_2.py
    +#
    +#  Tests:      operator   - LCS
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       August 25, 2015
    +# ----------------------------------------------------------------------------
    +
    +Source(tests_path("operators", "lcs_operator_main"))
    +
    +LCS_operator("IntegralCurve", "ftle_double_gyre_2_domains")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_lcs_lc_1.html b/2024-12-12-22:00/poodle_trunk_serial/operators_lcs_lc_1.html new file mode 100644 index 000000000..9407b327f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_lcs_lc_1.html @@ -0,0 +1,66 @@ + +Results for operators/lcs_lc_1.py + +

    Results of VisIt Regression Test - operators/lcs_lc_1

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Basic FTLE function with LimitCycle operator
    Testing database = ftle_double_gyre_1_domain.pics
    Testing sample source = RegularGrid
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_1_domain_RegularGrid_2DAuxGrid_LimitCycle0.000.00
    Testing sample source = NativeMesh
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_1_domain_NativeMesh_2DAuxGrid_LimitCycle0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_lcs_lc_1_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_lcs_lc_1_py.html new file mode 100644 index 000000000..25919d8a4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_lcs_lc_1_py.html @@ -0,0 +1,17 @@ +operators/lcs_lc_1.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  lcs_lc_1.py
    +#
    +#  Tests:      operator   - LCS
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       August 25, 2015
    +# ----------------------------------------------------------------------------
    +
    +Source(tests_path("operators", "lcs_operator_main"))
    +
    +LCS_operator("LimitCycle", "ftle_double_gyre_1_domain")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_lcs_lc_2.html b/2024-12-12-22:00/poodle_trunk_serial/operators_lcs_lc_2.html new file mode 100644 index 000000000..bb9836c36 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_lcs_lc_2.html @@ -0,0 +1,66 @@ + +Results for operators/lcs_lc_2.py + +

    Results of VisIt Regression Test - operators/lcs_lc_2

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Basic FTLE function with LimitCycle operator
    Testing database = ftle_double_gyre_2_domains.pics
    Testing sample source = RegularGrid
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_2_domains_RegularGrid_2DAuxGrid_LimitCycle0.000.00
    Testing sample source = NativeMesh
    Testing auxiliary grid = 2DAuxGrid
    lcs_ftle_double_gyre_2_domains_NativeMesh_2DAuxGrid_LimitCycle0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_lcs_lc_2_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_lcs_lc_2_py.html new file mode 100644 index 000000000..45936bbaa --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_lcs_lc_2_py.html @@ -0,0 +1,17 @@ +operators/lcs_lc_2.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  lcs_lc_2.py
    +#
    +#  Tests:      operator   - LCS
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       August 25, 2015
    +# ----------------------------------------------------------------------------
    +
    +Source(tests_path("operators", "lcs_operator_main"))
    +
    +LCS_operator("LimitCycle", "ftle_double_gyre_2_domains")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_lcs_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_lcs_py.html new file mode 100644 index 000000000..108c5a417 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_lcs_py.html @@ -0,0 +1,181 @@ +operators/lcs.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  LCS.py
    +#
    +#  Tests:      operator   - LCS
    +#
    +#  Programmer: Allen Sanderson
    +#  Date:       August 25, 2015
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Thur Sep 17, 2020
    +#    Shorten name used for 'Testing database' TestSection. Turn of warnings.
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin("PICS_Tester")
    +
    +#-vargs="-debug 5"
    +
    +# For testing using the CLI
    +
    +#def data_path( db_name ):
    +#  db="/Projects/VisIt/trunk/build/data/%s" %(db_name)
    +#  return db
    +
    +#def Test(case_name):
    +#   swatts = SaveWindowAttributes()
    +#   swatts.family = 0
    +#   swatts.fileName = "/Projects/tmp/lcs/ser/%s" %(case_name)
    +#   SetSaveWindowAttributes(swatts)
    +#   SaveWindow()
    +#   return
    +
    +#def TestSection(tmpstr):
    +#   return
    +
    +#def Exit():
    +#   return   
    +
    +
    +# Open the database here and add a plot as for some reason it fails
    +# within a loop. It only happens with all-in-one plots with an operator
    +# such as with "Pseudocolor" and "operators/LCS/velocity"
    +db=data_path("pics_test_data/ftle_double_gyre_1_domain.pics")
    +OpenDatabase(db)
    +AddPlot("Pseudocolor", "operators/LCS/velocity")
    +
    +
    +LCSAtts = LCSAttributes()
    +LCSAtts.Resolution = (101, 51, 1)
    +LCSAtts.integrationDirection = LCSAtts.Forward
    +LCSAtts.auxiliaryGridSpacing = 0.005
    +LCSAtts.maxSteps = 1000000
    +LCSAtts.operationType = LCSAtts.Lyapunov
    +LCSAtts.cauchyGreenTensor = LCSAtts.Right
    +LCSAtts.eigenComponent = LCSAtts.Largest
    +LCSAtts.operatorType = LCSAtts.BaseValue
    +LCSAtts.terminationType = LCSAtts.Time
    +LCSAtts.terminateByTime = 1
    +LCSAtts.termTime = 4
    +LCSAtts.maxStepLength = 0.001
    +LCSAtts.integrationType = LCSAtts.AdamsBashforth
    +LCSAtts.parallelizationAlgorithmType = LCSAtts.ParallelStaticDomains
    +LCSAtts.pathlines = 1
    +LCSAtts.pathlinesCMFE = LCSAtts.CONN_CMFE
    +LCSAtts.issueAdvectionWarnings = 0
    +LCSAtts.issueBoundaryWarnings = 0
    +LCSAtts.issueTerminationWarnings = 0
    +LCSAtts.issueStepsizeWarnings = 0
    +LCSAtts.issueStiffnessWarnings = 0
    +LCSAtts.issueCriticalPointsWarnings = 0
    +
    +SetOperatorOptions(LCSAtts, 0)
    +
    +
    +databases=["ftle_double_gyre_1_domain", "ftle_double_gyre_2_domains"]
    +
    +src_type=[LCSAtts.RegularGrid, LCSAtts.NativeMesh]
    +src_type_str=["RegularGrid", "NativeMesh"]
    +
    +aux_grid=[LCSAtts.NONE, LCSAtts.TwoDim]
    +aux_grid_str=["NoAuxGrid", "2DAuxGrid"]
    +
    +TestSection("Basic FTLE function")
    +for i in range(len(databases)):
    +  db=data_path("pics_test_data/%s.pics") %(databases[i])
    +  tmpstr="Testing database = %s.pics" %(databases[i])
    +  TestSection(tmpstr)
    +  OpenDatabase(db)
    +  # Replace the database from before with this one as a new plot can
    +  # not be opened within the loop when using runtest. This issue is a
    +  # bug.
    +  ReplaceDatabase(db)
    +  #  DeleteAllPlots()
    +  #  AddPlot("Pseudocolor", "operators/LCS/velocity")
    +  for j in range(len(src_type)):
    +     tmpstr="Testing sample source = %s" %(src_type_str[j])
    +     TestSection(tmpstr)
    +     LCSAtts.sourceType = src_type[j]  # NativeMesh, RegularGrid
    +     for k in range(len(aux_grid)):
    +        tmpstr="Testing auxiliary grid = %s" %(aux_grid_str[k])
    +        TestSection(tmpstr)
    +        LCSAtts.auxiliaryGrid = aux_grid[k]  # None, TwoDim
    +        SetOperatorOptions(LCSAtts, 0)
    +        DrawPlots()
    +        tmpstr="lcs_%s_%s_%s" %(databases[i], src_type_str[j], aux_grid_str[k])
    +        Test(tmpstr)
    +
    +
    +
    +# FTLE with smallest exponent
    +LCSAtts.eigenComponent = LCSAtts.Smallest  # Smallest, Intermediate, Largest, PosShearVector, NegShearVector, PosLambdaShearVector, NegLambdaShearVector
    +SetOperatorOptions(LCSAtts, 0)
    +DrawPlots()
    +tmpstr="lcs_%s_%s_%s_Smallest" %(databases[i], src_type_str[j], aux_grid_str[k])
    +Test(tmpstr)
    +
    +
    +
    +# FTLE with left Cauchy Green Tensor
    +LCSAtts.cauchyGreenTensor = LCSAtts.Left  # Left, Right
    +LCSAtts.eigenComponent = LCSAtts.Largest  # Smallest, Intermediate, Largest, PosShearVector, NegShearVector, PosLambdaShearVector, NegLambdaShearVector
    +SetOperatorOptions(LCSAtts, 0)
    +DrawPlots()
    +tmpstr="lcs_%s_%s_%s_Left" %(databases[i], src_type_str[j], aux_grid_str[k])
    +Test(tmpstr)
    +
    +
    +
    +# FTLE with eigen value
    +LCSAtts.operationType = LCSAtts.EigenValue  # IntegrationTime, ArcLength, AverageDistanceFromSeed, EigenValue, EigenVector, Lyapunov
    +LCSAtts.cauchyGreenTensor = LCSAtts.Right  # Left, Right
    +LCSAtts.eigenComponent = LCSAtts.Largest  # Smallest, Intermediate, Largest, PosShearVector, NegShearVector, PosLambdaShearVector, NegLambdaShearVector
    +SetOperatorOptions(LCSAtts, 0)
    +DrawPlots()
    +tmpstr="lcs_%s_%s_%s_EigenValue" %(databases[i], src_type_str[j], aux_grid_str[k])
    +Test(tmpstr)
    +
    +
    +Exit()
    +
    +
    +# 1 processor:
    +
    +#wo/aux grid
    +
    +# Native 1  -0.04343 - 1.066   190 zeros # Match
    +# Rect   1  -0.04343 - 1.066   190 zeros #
    +
    +# Native 2  -0.04343 - 1.066   193 zeros # Match
    +# Rect   2  -0.04343 - 1.233   190 zeros # Match with ghost cells but for a few cells.
    +
    +# Errors in the domain boundary gradients 
    +
    +
    +#w/aux grid
    +
    +# Native 1  0.004539 - 1.396   304 exited / 680 zeros # Match
    +# Rect   1  0.004539 - 1.396   304 exited / 680 zeros # 
    +
    +# Native 2  0.004539 - 1.396   308 exited / 690 zeros # Match
    +# Rect   2  0.004539 - 1.396   304 exited / 680 zeros #
    +
    +
    +# 4 processors:
    +
    +#wo/aux grid
    +
    +# Native 1  -0.04343 - 1.066   190 zeros # Match
    +# Rect   1  -0.04343 - 1.066   190 zeros #
    +
    +# Native 2  -0.04343 - 1.066   193 zeros # Match
    +# Rect   2  -0.04343 - 1.233   190 zeros # Match with ghost cells but for a few cells.
    +
    +#w/aux grid
    +
    +# Native 1  0.004539 - 1.396   304 exited / 680 zeros # Match
    +# Rect   1  0.004539 - 1.396   304 exited / 680 zeros # 
    +
    +# Native 2  0.004539 - 1.396   308 exited / 690 zeros # Match
    +# Rect   2  0.004539 - 1.396   304 exited / 680 zeros #
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_moveoperators.html b/2024-12-12-22:00/poodle_trunk_serial/operators_moveoperators.html new file mode 100644 index 000000000..88ef1b452 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_moveoperators.html @@ -0,0 +1,114 @@ + +Results for operators/moveoperators.py + +

    Results of VisIt Regression Test - operators/moveoperators

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    moveoperator_00.000.00
    moveoperator_10.000.00
    moveoperator_20.000.00
    moveoperator_30.000.00
    moveoperator_40.000.00
    moveoperator_50.000.00
    moveoperator_60.000.00
    moveoperator_70.000.00
    moveoperator_80.000.00
    moveoperator_90.000.00
    moveoperator_100.000.00
    moveoperator_110.000.00
    moveoperator_120.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_moveoperators_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_moveoperators_py.html new file mode 100644 index 000000000..c8511c631 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_moveoperators_py.html @@ -0,0 +1,226 @@ +operators/moveoperators.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  moveoperators.py
    +#
    +#  Tests:      plots     - Pseudocolor, Mesh, FilledBoundary
    +#              operators - Erase, Isosurface, Reflect, Slice, Transform
    +#
    +#  Defect ID:  '1837
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Apr 17 16:45:46 PST 2003
    +#
    +#  Modifications:
    +#    Eric Brugger, Thu May  8 12:57:56 PDT 2003
    +#    Remove a call to ToggleAutoCenterMode since it no longer exists.
    +#
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset plots.
    +#
    +#    Kathleen Bonnell, Wed Mar 17 07:33:40 PST 2004 
    +#    Set default Slice atts, as these have changed. 
    +#
    +#    Kathleen Bonnell, Wed May  5 08:13:22 PDT 2004 
    +#    Modified Slice atts to get same picture as defaults have changed. 
    +#
    +#    Brad Whitlock, Tue Jan 17 12:14:21 PDT 2006
    +#    Added runTest4.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Thu Jul 11 08:18:42 PDT 2013
    +#    Removed legacy sytle annotation setting.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def InitAnnotation():
    +    # Turn off all annotation except for the bounding box.
    +    a = AnnotationAttributes()
    +    TurnOffAllAnnotations(a)
    +    a.axes2D.visible = 1
    +    a.axes2D.xAxis.label.visible = 0
    +    a.axes2D.yAxis.label.visible = 0
    +    a.axes2D.xAxis.title.visible = 0
    +    a.axes2D.yAxis.title.visible = 0
    +    a.axes3D.bboxFlag = 1
    +    SetAnnotationAttributes(a)
    +
    +def InitDefaults():
    +    # Set the default reflect operator attributes.
    +    reflect = ReflectAttributes()
    +    reflect.SetReflections(1, 1, 0, 0, 0, 0, 0, 0)
    +    SetDefaultOperatorOptions(reflect)
    +    slice = SliceAttributes()
    +    slice.project2d = 0
    +    slice.SetAxisType(slice.XAxis)
    +    slice.SetFlip(1)
    +    SetDefaultOperatorOptions(slice)
    +
    +def setTheFirstView():
    +    # Set the view
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.695118, 0.351385, 0.627168)
    +    v.focus = (-10, 0, 0)
    +    v.viewUp = (0.22962, 0.935229, -0.269484)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -70
    +    v.farPlane = 70
    +    v.perspective = 1
    +    SetView3D(v)
    +
    +#
    +# Test operator promotion, demotion, and removal.
    +#
    +def runTest1():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +
    +    # Set up a plot with a few operators.
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    AddOperator("Isosurface")
    +    AddOperator("Slice")
    +    AddOperator("Reflect")
    +    DrawPlots()
    +    setTheFirstView()
    +
    +    # Take a picture of the initial setup.
    +    Test("moveoperator_0")
    +
    +    # Move the reflect so that it is before the slice in the pipeline.
    +    # The pipeline will be: Isosurface, Reflect, Slice
    +    DemoteOperator(2)
    +    DrawPlots()
    +    Test("moveoperator_1")
    +
    +    # Move the reflect operator back so that the pipeline matches the
    +    # initial configuration: Isosurface, Slice, Reflect
    +    PromoteOperator(1)
    +    DrawPlots()
    +    Test("moveoperator_2")
    +
    +    # Remove the slice operator from the middle, resulting in:
    +    # Isosurface, Reflect
    +    RemoveOperator(1)
    +    DrawPlots()
    +    Test("moveoperator_3")
    +
    +    # Remove the Isosurface operator, resulting in: Reflect
    +    RemoveOperator(0)
    +    DrawPlots()
    +    Test("moveoperator_4")
    +
    +    # Remove the Reflect operator
    +    RemoveOperator(0)
    +    DrawPlots()
    +    Test("moveoperator_5")
    +
    +    DeleteAllPlots()
    +
    +#
    +# Test removing an operator from more than one plot at the same time.
    +#
    +def runTest2():
    +    all = 1
    +    # Set up a couple plots of globe
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    AddPlot("Mesh", "mesh1")
    +    # Add a reflect operator to both plots.
    +    AddOperator("Reflect", all)
    +    DrawPlots()
    +    Test("moveoperator_6")
    +
    +    # Remove the operator from both plots.
    +    RemoveOperator(0, all)
    +    DrawPlots()
    +    Test("moveoperator_7")
    +    DeleteAllPlots()
    +
    +#
    +# Test setting attributes for multiple operators of the same type.
    +#
    +def runTest3():
    +    # Set up a couple plots of globe
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    pc = PseudocolorAttributes()
    +    pc.SetOpacityType(pc.Constant)
    +    pc.opacity = 0.2
    +    SetPlotOptions(pc)
    +    AddPlot("FilledBoundary", "mat1")
    +
    +    # The subset plot is the active plot, add a couple transform
    +    # operators to it.
    +    AddOperator("Transform")
    +    AddOperator("Transform")
    +
    +    # Set the attributes for the *first* transform operator.
    +    # This results in a full size globe translated up in Y.
    +    t0 = TransformAttributes()
    +    t0.doTranslate = 1
    +    t0.translateY = 15
    +    SetOperatorOptions(t0, 0)
    +    DrawPlots()
    +    Test("moveoperator_8")
    +
    +    # Set the attributes for the *second* transform operator.
    +    # The plot has been translated, now scale it. Since it has already
    +    # been translated, this will also translate it a little in Y.
    +    t1 = TransformAttributes()
    +    t1.doScale = 1
    +    t1.scaleX = 0.5
    +    t1.scaleY = 0.5
    +    t1.scaleZ = 0.5
    +    SetOperatorOptions(t1, 1)
    +    Test("moveoperator_9")
    +
    +    # Demote the last operator to reverse the order of the transformations.
    +    DemoteOperator(1)
    +    # Make the pc plot opaque again
    +    SetActivePlots(0)
    +    pc.SetOpacityType(pc.FullyOpaque)
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    Test("moveoperator_10")
    +
    +    DeleteAllPlots()
    +
    +#
    +# Test that removing an operator using the RemoveOperator(i) method causes
    +# the vis window to get redrawn.
    +#
    +def runTest4():
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    AddOperator("Isosurface")
    +    DrawPlots()
    +    Test("moveoperator_11")
    +
    +    RemoveOperator(0)
    +    Test("moveoperator_12")
    +    DeleteAllPlots()
    +
    +#
    +# Set up the environment and run all of the tests.
    +#
    +def runTests():
    +    InitAnnotation()
    +    InitDefaults()
    +    runTest1()
    +    runTest2()
    +    runTest3()
    +    runTest4()
    +
    +# Run the tests.
    +runTests()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_multires.html b/2024-12-12-22:00/poodle_trunk_serial/operators_multires.html new file mode 100644 index 000000000..ff4150916 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_multires.html @@ -0,0 +1,48 @@ + +Results for operators/multires.py + +

    Results of VisIt Regression Test - operators/multires

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    multires_00.000.00
    multires_10.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_multires_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_multires_py.html new file mode 100644 index 000000000..894ae3e5f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_multires_py.html @@ -0,0 +1,34 @@ +operators/multires.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  multires.py
    +#
    +#  Programmer: Tom Fogal
    +#  Date:       August 6, 2010
    +#
    +# ----------------------------------------------------------------------------
    +
    +ds = data_path("Chombo_test_data/chombo.visit")
    +OpenDatabase(ds)
    +
    +AddPlot("Pseudocolor", "Scalar_1")
    +AddOperator("MultiresControl")
    +
    +att = MultiresControlAttributes()
    +att.resolution = 0
    +SetOperatorOptions(att)
    +
    +DrawPlots()
    +Test("multires_0")
    +
    +att.resolution = 1
    +SetOperatorOptions(att)
    +DrawPlots()
    +Test("multires_1")
    +
    +DeleteAllPlots()
    +
    +CloseDatabase(ds)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_onionpeel.html b/2024-12-12-22:00/poodle_trunk_serial/operators_onionpeel.html new file mode 100644 index 000000000..6fe1bf0dc --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_onionpeel.html @@ -0,0 +1,486 @@ + +Results for operators/onionpeel.py + +

    Results of VisIt Regression Test - operators/onionpeel

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_onionpeel_010.000.00
    ops_onionpeel_020.000.00
    ops_onionpeel_030.000.00
    ops_onionpeel_040.000.00
    ops_onionpeel_050.000.00
    ops_onionpeel_060.000.00
    ops_onionpeel_070.000.00
    ops_onionpeel_080.000.00
    ops_onionpeel_090.000.00
    ops_onionpeel_100.000.00
    ops_onionpeel_110.000.00
    ops_onionpeel_120.000.00
    ops_onionpeel_130.000.00
    ops_onionpeel_140.000.00
    ops_onionpeel_150.000.00
    ops_onionpeel_160.000.00
    ops_onionpeel_170.000.00
    ops_onionpeel_180.000.00
    ops_onionpeel_190.000.00
    ops_onionpeel_200.000.00
    ops_onionpeel_210.000.00
    ops_onionpeel_220.000.00
    ops_onionpeel_230.000.00
    ops_onionpeel_240.000.00
    ops_onionpeel_250.000.00
    ops_onionpeel_260.000.00
    Arbitrary Polyhedra, honor original mesh
    poly_originalMesh_000.000.00
    poly_originalMesh_010.000.00
    poly_originalMesh_020.000.00
    poly_originalMesh_030.000.00
    poly_originalMesh_040.000.00
    poly_originalMesh_050.000.00
    poly_originalMesh_060.000.00
    poly_originalMesh_070.000.00
    poly_originalMesh_080.000.00
    poly_originalMesh_090.000.00
    poly_originalMesh_100.000.00
    Arbitrary Polyhedra, honor actual mesh
    poly_actualMesh000.000.00
    poly_actualMesh010.000.00
    poly_actualMesh020.000.00
    poly_actualMesh030.000.00
    poly_actualMesh040.000.00
    poly_actualMesh050.000.00
    poly_actualMesh060.000.00
    poly_actualMesh070.000.00
    poly_actualMesh080.000.00
    poly_actualMesh090.000.00
    poly_actualMesh100.000.00
    poly_actualMesh110.000.00
    poly_actualMesh120.000.00
    poly_actualMesh130.000.00
    poly_actualMesh140.000.00
    poly_actualMesh150.000.00
    poly_actualMesh160.000.00
    poly_actualMesh170.000.00
    poly_actualMesh180.000.00
    poly_actualMesh190.000.00
    poly_actualMesh200.000.00
    poly_actualMesh210.000.00
    poly_actualMesh220.000.00
    poly_actualMesh230.000.00
    poly_actualMesh240.000.00
    poly_actualMesh250.000.00
    poly_actualMesh260.000.00
    bigsil_mesh_010.000.00
    bigsil_mesh_020.000.00
    bigsil_mesh_030.000.00
    bigsil_mesh_040.000.00
    amr_3d_010.000.00
    amr_3d_020.000.00
    amr_3d_030.000.00
    amr_3d_040.000.00
    amr_2d_010.000.00
    amr_2d_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_onionpeel_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_onionpeel_py.html new file mode 100644 index 000000000..be47d5c1f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_onionpeel_py.html @@ -0,0 +1,643 @@ +operators/onionpeel.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  onionpeel.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, mulitple domain, mulitple groups
    +#              plots     - subset
    +#              operators - onionpeel
    +#              selection - none
    +#
    +#  Defect ID:  
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       December 23, 2003 
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Feb 26 15:31:31 PST 2004
    +#    Added TestUCD.
    +#
    +#    Kathleen Bonnell, Wed Dec 15 15:24:50 PST 2004 
    +#    Added TestGlobalZoneId.
    +#
    +#    Kathleen Bonnell, Tue Jan 18 19:34:41 PST 2005 
    +#    Added TestMatSelect.
    +#
    +#    Kathleen Bonnell, Wed Jan 19 15:45:38 PST 2005 
    +#    Added TestNodeId.
    +#
    +#    Kathleen Bonnell, Tue Jun 14 11:33:39 PDT 2005 
    +#    Added TestFilledBoundary.
    +#
    +#    Kathleen Bonnell, Thu Jul 21 09:09:26 PDT 2005 
    +#    Modified indices used in TestBigSil, to match corrsponding changes
    +#    to bigsil.silo. 
    +#
    +#    Kathleen Bonnell, Fri Aug 19 16:23:45 PDT 2005 
    +#    Modified indices used in TestBigSil, more changes to bigsil.silo. 
    +#
    +#    Kathleen Bonnell, Thu Sep 22 11:59:42 PDT 2005 
    +#    Added TestBoundary. 
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Fri Jul 25 15:10:11 MST 2014
    +#    Added ArbPoly test, which demonstrates use of new att: honorOriginalMesh.
    +#
    +#    Kathleen Biagas, Mon Mar 23 17:25:07 PDT 2015
    +#    Modified AMR test to include the default Subset plot, now that it
    +#    is fixed.
    +#
    +#    Kathleen Biagas, Tue Nov 29 10:40:50 PST 2022
    +#    Change use of obosolete text settings to new textFont settings.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def TestBigSil():
    +    OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +
    +    AddPlot("Subset", "domains")
    +    AddPlot("Subset", "blocks")
    +    s = SubsetAttributes()
    +    s.legendFlag = 0
    +    s.wireframe = 1
    +    s.colorType = s.ColorBySingleColor
    +    s.singleColor = (100,100,100,255)
    +    SetPlotOptions(s)
    +
    +    SetActivePlots(0)
    +    AddOperator("OnionPeel")
    +    op = OnionPeelAttributes()
    +    op.categoryName = "blocks"
    +    op.subsetName = "block0"
    +    op.index = (4, 11, 5)
    +    op.logical = 1
    +    op.adjacencyType = op.Face
    +    op.requestedLayer = 3
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +
    +    Test("ops_onionpeel_01")
    +
    +    op.subsetName = "block1"
    +    op.index = (18, 4, 5)
    +    SetOperatorOptions(op)
    +
    +    Test("ops_onionpeel_02")
    +
    +    op.subsetName = "block2"
    +    op.index = (11, 18, 5)
    +    SetOperatorOptions(op)
    +
    +    Test("ops_onionpeel_03")
    +
    +    DeleteAllPlots()
    +
    +def TestUCD():
    +    # This is to test that onion peel will work (by default)
    +    # on the first "On" set -- in this case "domain4".
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    domains = ("domain4", "domain5", "domain6")
    +    TurnDomainsOff()
    +    TurnDomainsOn(domains)
    +    DrawPlots()
    +    ResetView()
    +    SetViewExtentsType("actual")
    +    AddOperator("OnionPeel")
    +    DrawPlots()
    +    Test("ops_onionpeel_04")
    +
    +    DeleteAllPlots()
    +
    +def TestGlobalZoneId():
    +    # This is to test that onion peel will work when 
    +    # a global cell number is specified. 
    +    OpenDatabase(silo_data_path("global_node.silo"))
    +
    +    TurnDomainsOn()
    +    AddPlot("Subset", "domains")
    +    s = SubsetAttributes()
    +    s.legendFlag = 0
    +    s.wireframe = 1
    +    s.colorType = s.ColorBySingleColor
    +    s.singleColor = (100,100,100,255)
    +    SetPlotOptions(s)
    +    AddPlot("Pseudocolor", "dist")
    +    AddOperator("OnionPeel")
    +    op = OnionPeelAttributes()
    +    op.categoryName = "domains"
    +    op.subsetName = "domain5"
    +    op.index = 372
    +    op.logical = 0
    +    op.adjacencyType = op.Face
    +    op.requestedLayer = 7
    +    SetOperatorOptions(op)
    +
    +    DrawPlots()
    +    ResetView()
    +    SetViewExtentsType("original")
    +
    +    Test("ops_onionpeel_05")
    +
    +    #only change is to specify that seed cell is global
    +    op.useGlobalId = 1
    +    SetOperatorOptions(op)
    +    Test("ops_onionpeel_06")
    +
    +    DeleteAllPlots()
    +
    +def TestMatSelect():
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("FilledBoundary", "mat1")
    +    AddOperator("OnionPeel")
    +    op = OnionPeelAttributes()
    +    op.index = 8
    +    op.requestedLayer = 5
    +    op.adjacencyType = op.Face
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    SetViewExtentsType("actual")
    +    Test("ops_onionpeel_07")
    +
    +    TurnMaterialsOff("1")
    +    Test("ops_onionpeel_08")
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    TurnMaterialsOff("4")
    +    AddOperator("OnionPeel")
    +    op.requestedLayer = 2
    +    op.index = 27
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    Test("ops_onionpeel_09")
    +    TurnMaterialsOn()
    +    DeleteAllPlots()
    +
    +def TestNodeId():
    +    OpenDatabase(silo_data_path("ucd2d.silo"))
    +
    +    AddPlot("Mesh", "ucdmesh2d")
    +    AddPlot("Pseudocolor", "d")
    +    AddOperator("OnionPeel")
    +    op = OnionPeelAttributes()
    +    op.index = 0
    +    op.seedType = op.SeedCell
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    Test("ops_onionpeel_10")
    +
    +    op.seedType = op.SeedNode
    +    SetOperatorOptions(op)
    +    Test("ops_onionpeel_11")
    +
    +    op.requestedLayer = 2
    +    op.adjacencyType = op.Face
    +    SetOperatorOptions(op)
    +    Test("ops_onionpeel_12")
    +
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Mesh", "quadmesh3d")
    +    AddPlot("Pseudocolor", "d")
    +    SetActivePlots((0, 1))
    +    TurnMaterialsOff("1")
    +    AddOperator("OnionPeel")
    +    op.index = 44
    +    op.requestedLayer = 0
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    SetViewExtentsType("actual")
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, -1)
    +    SetView3D(v)
    +    Test("ops_onionpeel_13")
    +    op.requestedLayer = 12
    +    SetOperatorOptions(op)
    +    Test("ops_onionpeel_14")
    +    TurnMaterialsOn()
    +    DeleteAllPlots()
    +
    +def TestFilledBoundary():
    +    # need to test index on high-side
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Mesh", "quadmesh3d")
    +    AddPlot("FilledBoundary", "mat1")
    +    SetActivePlots((0,1))
    +    AddOperator("OnionPeel")
    +    op = OnionPeelAttributes()
    +    op.index = 15735
    +    op.requestedLayer = 5
    +    op.adjacencyType = op.Face
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    ResetView()
    +    SetViewExtentsType("actual")
    +    Test("ops_onionpeel_15")
    +
    +    op.seedType = op.SeedNode
    +    op.index = 32713
    +    SetOperatorOptions(op)
    +    Test("ops_onionpeel_16")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    AddPlot("FilledBoundary", "mat1")
    +    SetActivePlots((0,1))
    +    AddOperator("OnionPeel")
    +    op.seedType = op.SeedCell
    +    op.requestedLayer = 2
    +    op.index = 742
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    Test("ops_onionpeel_17")
    +    op.index = 1117
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    ResetView()
    +    Test("ops_onionpeel_18")
    +
    +    op.seedType = op.SeedNode
    +    op.requestedLayer = 6
    +    op.index = 965
    +    SetOperatorOptions(op)
    +    Test("ops_onionpeel_19")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +    AddPlot("Mesh", "curvmesh3d")
    +    AddPlot("FilledBoundary", "mat1")
    +    SetActivePlots((0, 1))
    +    AddOperator("OnionPeel")
    +    op.seedType = op.SeedCell
    +    op.requestedLayer = 5
    +    op.index = 19412
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, 1)
    +    v.focus = (-2.29977, 0.966088, 16.5)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 5.61745
    +    v.nearPlane = -11.2349
    +    v.farPlane = 11.2349
    +    v.imagePan = (-0.00484124, 0.00104964)
    +    v.imageZoom = 4.08886
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (-2.29977, 0.966088, 16.5)
    +    SetView3D(v)
    +    Test("ops_onionpeel_20")
    +    DeleteAllPlots()
    +
    +
    +def TestBoundary():
    +    # need to test index on high-side
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Mesh", "quadmesh3d")
    +    AddPlot("Boundary", "mat1")
    +    SetActivePlots((0,1))
    +    AddOperator("OnionPeel")
    +    op = OnionPeelAttributes()
    +    op.index = 15735
    +    op.requestedLayer = 5
    +    op.adjacencyType = op.Face
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    ResetView()
    +    SetViewExtentsType("actual")
    +    Test("ops_onionpeel_21")
    +
    +    op.seedType = op.SeedNode
    +    op.index = 1370
    +    SetOperatorOptions(op)
    +    Test("ops_onionpeel_22")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    AddPlot("Boundary", "mat1")
    +    SetActivePlots((0,1))
    +    AddOperator("OnionPeel")
    +    op.seedType = op.SeedCell
    +    op.requestedLayer = 2
    +    op.index = 17
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (1, 0, 0)
    +    v.viewUp = (0, 1, 0)
    +    SetView3D(v)
    +    Test("ops_onionpeel_23")
    +    op.index = 117
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    ResetView()
    +    Test("ops_onionpeel_24")
    +
    +    op.seedType = op.SeedNode
    +    op.requestedLayer = 6
    +    op.index = 13
    +    SetOperatorOptions(op)
    +    Test("ops_onionpeel_25")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +    AddPlot("Mesh", "curvmesh3d")
    +    AddPlot("Boundary", "mat1")
    +    SetActivePlots((0, 1))
    +    AddOperator("OnionPeel")
    +    op.seedType = op.SeedCell
    +    op.requestedLayer = 5
    +    op.index = 19472
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, 1)
    +    v.focus = (-2.29977, 0.966088, 16.5)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 5.61745
    +    v.nearPlane = -11.2349
    +    v.farPlane = 11.2349
    +    v.imagePan = (-0.00484124, 0.00104964)
    +    v.imageZoom = 4.08886
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (-2.29977, 0.966088, 16.5)
    +    SetView3D(v)
    +    Test("ops_onionpeel_26")
    +    DeleteAllPlots()
    +
    +def TestArbPoly():
    +    TestSection("Arbitrary Polyhedra, honor original mesh")
    +    OpenDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +    DefineScalarExpression("gzid", "global_zoneid(<3D/mesh1>)")
    +    AddPlot("Mesh", "3D/mesh1")
    +    AddPlot("Pseudocolor", "gzid")
    +    pc = PseudocolorAttributes()
    +    pc.colorTableName="levels"
    +    SetPlotOptions(pc)
    +    AddOperator("OnionPeel")
    +    DrawPlots()
    +    ResetView()
    +    op = OnionPeelAttributes()
    +
    +    SetQueryOutputToObject()
    +    # there are only 11 zones in original mesh
    +    # when NumZonesQuery is fixed, can use it instead
    +    # SetActivePlots(0)
    +    # numZones = Query("NumZones", use_actual_data=0)['num_zones']
    +    # SetActivePlots(1)
    +    numZones = 11
    +    for i in range(numZones):
    +        op.index = i
    +        SetOperatorOptions(op)
    +        DrawPlots()
    +        Test("poly_originalMesh_%02d"%i)
    +
    +    TestSection("Arbitrary Polyhedra, honor actual mesh")
    +    op.honorOriginalMesh = 0
    +    SetActivePlots(0)
    +    numZones = Query("NumZones", use_actual_data=1)['num_zones']
    +    print("numZones: ", numZones)
    +    SetActivePlots(1)
    +    for i in range (numZones):
    +        op.index = i
    +        SetOperatorOptions(op)
    +        DrawPlots()
    +        Test("poly_actualMesh%02d"%i)
    +
    +    DeleteAllPlots()
    +
    +def TestBigSilMesh():
    +    # use actual spatial extents
    +    SetViewExtentsType(1)
    +
    +    # non-logical index
    +    OpenDatabase(silo_data_path("bigsil.silo"))
    +    AddPlot("Mesh", "mesh")
    +    mesh = MeshAttributes()
    +    mesh.showInternal = 1
    +    SetPlotOptions(mesh)
    +
    +    AddPlot("Label", "mesh")
    +    label = LabelAttributes()
    +    label.showNodes = 1
    +    label.showCells = 1
    +    label.drawLabelsFacing = label.FrontAndBack
    +    label.labelDisplayFormat = label.Index
    +    label.textFont1.useForegroundColor = 0
    +    label.textFont1.color = (255, 0, 0, 0)
    +    label.textFont2.useForegroundColor = 0
    +    label.textFont2.color = (0, 0, 255, 0)
    +    label.depthTestMode = label.LABEL_DT_NEVER
    +    SetPlotOptions(label)
    +
    +    AddOperator("OnionPeel", 1)
    +    op = OnionPeelAttributes()
    +    op.categoryName = "domains"
    +    op.subsetName = "domain14"
    +    op.logical = 0
    +    op.index = (211)
    +    op.requestedLayer = 0
    +    op.seedType = op.SeedNode
    +    SetOperatorOptions(op,0, 1);
    +    DrawPlots()
    +    Test("bigsil_mesh_01")
    +
    +    op.seedType = op.SeedCell
    +    op.index = (223)
    +    op.requestedLayer = 1
    +    SetOperatorOptions(op,0, 1);
    +    DrawPlots()
    +    Test("bigsil_mesh_02")
    +
    +    # Blocks/Domains, logical index
    +    op.logical = 1
    +    op.index = (3, 2, 3)
    +    op.requestedLayer = 0
    +    op.seedType = op.SeedNode
    +    SetOperatorOptions(op,0, 1);
    +    DrawPlots()
    +    Test("bigsil_mesh_03")
    +
    +    op.seedType = op.SeedCell
    +    op.index = (6, 3, 4)
    +    op.requestedLayer = 1
    +    SetOperatorOptions(op,0, 1);
    +    DrawPlots()
    +    Test("bigsil_mesh_04")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("bigsil.silo"))
    +    # use original spatial extents
    +    SetViewExtentsType(0)
    +
    +def TestAMR():
    +    # AMR Mesh
    +    OpenDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +    # use actual spatial extents
    +    SetViewExtentsType(1)
    +
    +    AddPlot("Mesh", "amr_mesh")
    +    mesh = MeshAttributes()
    +    mesh.showInternal = 1
    +    SetPlotOptions(mesh)
    +
    +    AddPlot("Label", "amr_mesh")
    +    label = LabelAttributes()
    +    label.showNodes = 1
    +    label.showCells = 1
    +    label.drawLabelsFacing = label.FrontAndBack
    +    label.labelDisplayFormat = label.Index
    +    label.textFont1.useForegroundColor = 0
    +    label.textFont1.color = (255, 0, 0, 0)
    +    label.textFont2.useForegroundColor = 0
    +    label.textFont2.color = (0, 0, 255, 0)
    +    label.depthTestMode = label.LABEL_DT_NEVER
    +    SetPlotOptions(label)
    +
    +    AddOperator("OnionPeel", 1)
    +    op = OnionPeelAttributes()
    +    op.categoryName = "levels"
    +    op.subsetName = "level2"
    +    op.logical = 1
    +    op.index = (11, 15, 8)
    +    op.seedType = op.SeedNode
    +    SetOperatorOptions(op,0, 1);
    +    DrawPlots()
    +    Test("amr_3d_01")
    +
    +    op.seedType = op.SeedCell
    +    op.index = (10, 15, 8)
    +    op.requestedLayer = 1
    +    SetOperatorOptions(op,0, 1);
    +    Test("amr_3d_02")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +    # Test Vector plot
    +    OpenDatabase(data_path("samrai_test_data/mats-par3/dumps.visit"))
    +
    +    AddPlot("Mesh", "amr_mesh")
    +    AddPlot("Vector", "Velocity")
    +    TimeSliderNextState()
    +    AddOperator("OnionPeel", 1)
    +    op = OnionPeelAttributes()
    +    op.categoryName = "levels"
    +    op.subsetName = "level1"
    +    op.logical = 1
    +    op.index = (12, 15, 10)
    +    op.seedType = op.SeedCell
    +    op.requestedLayer = 1
    +    SetOperatorOptions(op,0, 1);
    +    DrawPlots()
    +    Test("amr_3d_03")
    +
    +    op.seedType = op.SeedNode
    +    op.index = (13, 15, 10)
    +    op.requestedLayer = 0
    +    SetOperatorOptions(op,0, 1);
    +    Test("amr_3d_04")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("samrai_test_data/mats-par3/dumps.visit"))
    +
    +    # 2D AMR Mesh
    +    OpenDatabase(data_path("samrai_test_data/ale2d/dumps.visit"))
    +
    +    # use actual spatial extents
    +    SetViewExtentsType(1)
    +
    +    AddPlot("Mesh", "amr_mesh")
    +    AddPlot("Contour", "Density")
    +
    +    AddOperator("OnionPeel", 1)
    +    op = OnionPeelAttributes()
    +    op.categoryName = "levels"
    +    op.subsetName = "level2"
    +    op.logical = 1
    +    op.index = (384, 490)
    +    op.seedType = op.SeedCell
    +    op.requestedLayer = 1
    +    SetOperatorOptions(op,0, 1);
    +    DrawPlots()
    +    Test("amr_2d_01")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("samrai_test_data/ale2d/dumps.visit"))
    +
    +    OpenDatabase(data_path("AMRStitchCell_test_data/AMRStitchCellTest.1.no_ghost.phi.2d.hdf5"))
    +    AddPlot("Subset", "levels")
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("Contour", "phi")
    +    AddPlot("Label", "Mesh")
    +    label = LabelAttributes()
    +    label.showNodes = 1
    +    label.showCells = 1
    +    label.drawLabelsFacing = label.FrontAndBack
    +    label.labelDisplayFormat = label.Index
    +    label.textFont1.useForegroundColor = 0
    +    label.textFont1.color = (255, 0, 0, 0)
    +    label.textFont2.useForegroundColor = 0
    +    label.textFont2.color = (0, 0, 255, 0)
    +    label.depthTestMode = label.LABEL_DT_NEVER
    +    SetPlotOptions(label)
    +
    +    AddOperator("OnionPeel", 1)
    +    op = OnionPeelAttributes()
    +    op.categoryName = "levels"
    +    op.subsetName = "level2"
    +    op.logical = 1
    +    op.seedType = op.SeedCell
    +    op.requestedLayer = 1
    +    op.index = (24, 35)
    +    SetOperatorOptions(op, 0, 1)
    +    DrawPlots()
    +    Test("amr_2d_02")
    +    # use original spatial extents
    +    SetViewExtentsType(0)
    +
    +def Main():
    +    TestBigSil()
    +    TestUCD()
    +    TestGlobalZoneId()
    +    TestMatSelect()
    +    TestNodeId()
    +    TestFilledBoundary()
    +    TestBoundary()
    +    TestArbPoly()
    +    TestBigSilMesh()
    +    TestAMR()
    +
    +Main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_operators.html b/2024-12-12-22:00/poodle_trunk_serial/operators_operators.html new file mode 100644 index 000000000..76198508e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_operators.html @@ -0,0 +1,78 @@ + +Results for operators/operators.py + +

    Results of VisIt Regression Test - operators/operators

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_sliceop010.000.00
    ops_sliceop020.000.00
    ops_clip010.000.00
    ops_clip020.000.00
    ops_clip030.000.00
    ops_onion010.000.00
    ops_onion020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_operators_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_operators_py.html new file mode 100644 index 000000000..58850d85d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_operators_py.html @@ -0,0 +1,141 @@ +operators/operators.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  operators.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - pc
    +#              operators - slice, clip, onionpeel
    +#              selection - none
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       April 17, 2002
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Wed Jul 24 10:21:07 PDT 2002
    +#    Remove threshold tests in favor of its own file.
    +#
    +#    Hank Childs. Tue Nov 19 15:45:12 PST 2002
    +#    Change Aslice to Slice for slicing interface change.
    +#
    +#    Eric Brugger, Fri Jan 17 16:53:32 PST 2003
    +#    Change Erase to Clip for interface change.
    +#
    +#    Eric Brugger, Thu May  8 12:47:54 PDT 2003
    +#    Change the setting of one of the Slice attributes because of an
    +#    interface change.
    +#
    +#    Kathleen Bonnell, Thu Apr 29 07:40:58 PDT 2004 
    +#    Default slice atts have changed, update accordingly. 
    +#    
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.SetViewNormal(-0.528889, 0.367702, 0.7649)
    +v.SetViewUp(0.176641, 0.929226, -0.324558)
    +v.SetParallelScale(17.3205)
    +v.SetPerspective(1)
    +SetView3D(v)
    +
    +# Slice
    +slice = SliceAttributes()
    +
    +RemoveAllOperators()
    +slice.originType = slice.Point
    +slice.SetOriginPoint(1,2,3)
    +slice.SetNormal(1,-1,0)
    +slice.SetUpAxis(0,0,1)
    +slice.project2d = 1
    +SetDefaultOperatorOptions(slice)
    +AddOperator("Slice")
    +DrawPlots()
    +
    +Test("ops_sliceop01")
    +
    +RemoveAllOperators()
    +slice.project2d = 0
    +SetDefaultOperatorOptions(slice)
    +AddOperator("Slice")
    +DrawPlots()
    +
    +Test("ops_sliceop02")
    +
    +# Clip
    +clip = ClipAttributes()
    +
    +RemoveAllOperators()
    +clip.plane1Status = 1
    +clip.SetPlane1Origin(1,2,3)
    +clip.SetPlane1Normal(-1,1,0)
    +clip.funcType = 0
    +SetDefaultOperatorOptions(clip)
    +AddOperator("Clip")
    +DrawPlots()
    +
    +Test("ops_clip01")
    +
    +RemoveAllOperators()
    +clip.SetCenter(0,0,10)
    +clip.radius = 9
    +clip.funcType = 1
    +SetDefaultOperatorOptions(clip)
    +AddOperator("Clip")
    +DrawPlots()
    +
    +Test("ops_clip02")
    +
    +clip = ClipAttributes()
    +clip.plane1Status = 1
    +clip.SetPlane1Origin(1,2,3)
    +clip.SetPlane1Normal(-1,1,0)
    +clip.plane2Status = 1
    +clip.SetPlane2Origin(0,0,0)
    +clip.SetPlane2Normal(-1,0,0)
    +clip.funcType = 0
    +SetDefaultOperatorOptions(clip)
    +AddOperator("Clip")
    +DrawPlots()
    +
    +Test("ops_clip03")
    +
    +# OnionPeel
    +onion = OnionPeelAttributes()
    +
    +RemoveAllOperators()
    +onion.adjacencyType = 0
    +onion.index = 30
    +onion.requestedLayer = 3
    +SetDefaultOperatorOptions(onion)
    +AddOperator("OnionPeel")
    +DrawPlots()
    +
    +Test("ops_onion01")
    +
    +RemoveAllOperators()
    +onion.adjacencyType = 1
    +onion.requestedLayer = 7
    +SetDefaultOperatorOptions(onion)
    +AddOperator("OnionPeel")
    +DrawPlots()
    +
    +Test("ops_onion02")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_persistent_particles.html b/2024-12-12-22:00/poodle_trunk_serial/operators_persistent_particles.html new file mode 100644 index 000000000..1de8d3078 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_persistent_particles.html @@ -0,0 +1,72 @@ + +Results for operators/persistent_particles.py + +

    Results of VisIt Regression Test - operators/persistent_particles

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    persistent_particles_010.000.00
    persistent_particles_020.000.00
    persistent_particles_030.000.00
    persistent_particles_040.000.00
    persistent_particles_050.000.00
    persistent_particles_060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_persistent_particles_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_persistent_particles_py.html new file mode 100644 index 000000000..d64476499 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_persistent_particles_py.html @@ -0,0 +1,173 @@ +operators/persistent_particles.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  persistent_particles.py
    +#
    +#  Programmer: Hank Childs
    +#  Date:       October 15, 2010
    +#
    +#  Modifications:
    +#     Eddie Rusu, Tue Apr 13 12:08:59 PDT 2021
    +#     Changed Pseudocolor CurrentPlot to ActualData.
    +#
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(data_path("synergia_test_data/vis_particles_* database"),0, "Vs")
    +
    +AddPlot("Pseudocolor", "particles_6")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.outputMeshType = 0
    +ThresholdAtts.listedVarNames = ("default")
    +ThresholdAtts.zonePortions = (0)
    +ThresholdAtts.lowerBounds = (-1e+37)
    +ThresholdAtts.upperBounds = (20)
    +ThresholdAtts.defaultVarName = "particles_6"
    +ThresholdAtts.defaultVarIsScalar = 1
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +
    +View3DAtts = View3DAttributes()
    +View3DAtts.viewNormal = (0.282153, 0.56578, 0.774779)
    +View3DAtts.focus = (-0.000283548, -1.60497e-05, -0.00167359)
    +View3DAtts.viewUp = (-0.173662, 0.824371, -0.538752)
    +View3DAtts.viewAngle = 30
    +View3DAtts.parallelScale = 0.0560412
    +View3DAtts.nearPlane = -0.112082
    +View3DAtts.farPlane = 0.112082
    +View3DAtts.imagePan = (0, 0)
    +View3DAtts.imageZoom = 3
    +View3DAtts.perspective = 1
    +View3DAtts.eyeAngle = 2
    +View3DAtts.centerOfRotationSet = 0
    +View3DAtts.centerOfRotation = (-0.000283548, -1.60497e-05, -0.00167359)
    +View3DAtts.axis3DScaleFlag = 0
    +View3DAtts.axis3DScales = (1, 1, 1)
    +View3DAtts.shear = (0, 0, 1)
    +SetView3D(View3DAtts)
    +
    +Test("persistent_particles_01")
    +
    +CreateNamedSelection("selection1")
    +a = GetAnnotationAttributes()
    +SetWindowLayout(2)
    +SetActiveWindow(2)
    +SetAnnotationAttributes(a)
    +AddPlot("Pseudocolor", "particles_6", 1, 1)
    +silr = SILRestriction()
    +silr.TurnOnAll()
    +SetPlotSILRestriction(silr ,1)
    +ApplyNamedSelection("selection1")
    +DrawPlots()
    +SetView3D(View3DAtts)
    +Test("persistent_particles_02")
    +
    +AddOperator("PersistentParticles", 1)
    +PersistentParticlesAtts = PersistentParticlesAttributes()
    +PersistentParticlesAtts.startIndex = 0
    +PersistentParticlesAtts.stopIndex = 5
    +PersistentParticlesAtts.stride = 1
    +PersistentParticlesAtts.startPathType = PersistentParticlesAtts.Absolute  # Absolute, Relative
    +PersistentParticlesAtts.stopPathType = PersistentParticlesAtts.Absolute  # Absolute, Relative
    +PersistentParticlesAtts.traceVariableX = "default"
    +PersistentParticlesAtts.traceVariableY = "default"
    +PersistentParticlesAtts.traceVariableZ = "default"
    +PersistentParticlesAtts.connectParticles = 0
    +PersistentParticlesAtts.indexVariable = "default"
    +SetOperatorOptions(PersistentParticlesAtts, 1)
    +DrawPlots()
    +Test("persistent_particles_03")
    +
    +PersistentParticlesAtts.connectParticles = 1
    +SetOperatorOptions(PersistentParticlesAtts, 1)
    +Test("persistent_particles_04")
    +
    +AddOperator("Tube", 1)
    +TubeAtts = TubeAttributes()
    +TubeAtts.scaleByVarFlag = 0
    +TubeAtts.tubeRadiusType = TubeAtts.Absolute
    +TubeAtts.radiusAbsolute = 0.0005
    +TubeAtts.scaleVariable = "default"
    +TubeAtts.fineness = 10
    +TubeAtts.capping = 0
    +SetOperatorOptions(TubeAtts, 1)
    +DrawPlots()
    +Test("persistent_particles_05")
    +
    +
    +AddPlot("Pseudocolor", "particles_6", 1, 0)
    +ApplyNamedSelection("selection1")
    +PseudocolorAtts = PseudocolorAttributes()
    +PseudocolorAtts.legendFlag = 1
    +PseudocolorAtts.lightingFlag = 1
    +PseudocolorAtts.minFlag = 0
    +PseudocolorAtts.maxFlag = 0
    +PseudocolorAtts.centering = PseudocolorAtts.Natural  # Natural, Nodal, Zonal
    +PseudocolorAtts.scaling = PseudocolorAtts.Linear  # Linear, Log, Skew
    +PseudocolorAtts.limitsMode = PseudocolorAtts.OriginalData  # OriginalData, ActualData
    +PseudocolorAtts.min = 0
    +PseudocolorAtts.max = 1
    +PseudocolorAtts.pointSize = 0.001
    +PseudocolorAtts.pointType = PseudocolorAtts.Icosahedron  # Box, Axis, Icosahedron, Point, Sphere
    +PseudocolorAtts.skewFactor = 1
    +PseudocolorAtts.opacity = 1
    +PseudocolorAtts.colorTableName = "orangehot"
    +PseudocolorAtts.smoothingLevel = 0
    +PseudocolorAtts.pointSizeVarEnabled = 0
    +PseudocolorAtts.pointSizeVar = "default"
    +PseudocolorAtts.pointSizePixels = 2
    +PseudocolorAtts.lineWidth = 0
    +PseudocolorAtts.opacityType = PseudocolorAtts.FullyOpaque
    +SetPlotOptions(PseudocolorAtts)
    +PseudocolorAtts = PseudocolorAttributes()
    +PseudocolorAtts.legendFlag = 1
    +PseudocolorAtts.lightingFlag = 1
    +PseudocolorAtts.minFlag = 0
    +PseudocolorAtts.maxFlag = 1
    +PseudocolorAtts.centering = PseudocolorAtts.Natural  # Natural, Nodal, Zonal
    +PseudocolorAtts.scaling = PseudocolorAtts.Linear  # Linear, Log, Skew
    +PseudocolorAtts.limitsMode = PseudocolorAtts.OriginalData  # OriginalData, ActualData
    +PseudocolorAtts.min = 0
    +PseudocolorAtts.max = 20
    +PseudocolorAtts.pointSize = 0.001
    +PseudocolorAtts.pointType = PseudocolorAtts.Icosahedron  # Box, Axis, Icosahedron, Point, Sphere
    +PseudocolorAtts.skewFactor = 1
    +PseudocolorAtts.opacity = 1
    +PseudocolorAtts.colorTableName = "orangehot"
    +PseudocolorAtts.smoothingLevel = 0
    +PseudocolorAtts.pointSizeVarEnabled = 0
    +PseudocolorAtts.pointSizeVar = "default"
    +PseudocolorAtts.pointSizePixels = 2
    +PseudocolorAtts.lineWidth = 0
    +PseudocolorAtts.opacityType = PseudocolorAtts.FullyOpaque
    +SetPlotOptions(PseudocolorAtts)
    +SetActivePlots((0, 1))
    +SetActivePlots(0)
    +PseudocolorAtts = PseudocolorAttributes()
    +PseudocolorAtts.legendFlag = 1
    +PseudocolorAtts.lightingFlag = 1
    +PseudocolorAtts.minFlag = 0
    +PseudocolorAtts.maxFlag = 1
    +PseudocolorAtts.centering = PseudocolorAtts.Natural  # Natural, Nodal, Zonal
    +PseudocolorAtts.scaling = PseudocolorAtts.Linear  # Linear, Log, Skew
    +PseudocolorAtts.limitsMode = PseudocolorAtts.OriginalData  # OriginalData, ActualData
    +PseudocolorAtts.min = 0
    +PseudocolorAtts.max = 20
    +PseudocolorAtts.pointSize = 0.05
    +PseudocolorAtts.pointType = PseudocolorAtts.Point  # Box, Axis, Icosahedron, Point, Sphere
    +PseudocolorAtts.skewFactor = 1
    +PseudocolorAtts.opacity = 1
    +PseudocolorAtts.colorTableName = "orangehot"
    +PseudocolorAtts.smoothingLevel = 0
    +PseudocolorAtts.pointSizeVarEnabled = 0
    +PseudocolorAtts.pointSizeVar = "default"
    +PseudocolorAtts.pointSizePixels = 2
    +PseudocolorAtts.lineWidth = 0
    +PseudocolorAtts.opacityType = PseudocolorAtts.FullyOpaque
    +SetPlotOptions(PseudocolorAtts)
    +DrawPlots()
    +Test("persistent_particles_06")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_radial_resample.html b/2024-12-12-22:00/poodle_trunk_serial/operators_radial_resample.html new file mode 100644 index 000000000..3177a61a4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_radial_resample.html @@ -0,0 +1,60 @@ + +Results for operators/radial_resample.py + +

    Results of VisIt Regression Test - operators/radial_resample

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_radialresampleop_rect2d0.000.00
    ops_radialresampleop_rect3d0.000.00
    ops_radialresampleop_multi_rect2d0.000.00
    ops_radialresampleop_multi_rect3d0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_radial_resample_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_radial_resample_py.html new file mode 100644 index 000000000..93024857b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_radial_resample_py.html @@ -0,0 +1,135 @@ +operators/radial_resample.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  radial_resample.py
    +#
    +#  Tests:      mesh    - 2D rectilinear, single domain,
    +#                        3D rectilinear, single domain
    +#                        3D unstructured, multiple domain
    +#              plots   - pseudocolor
    +#
    +#  Defect ID:  1827 
    +#
    +#  Programmer: Kevin Griffin
    +#  Date:       Tue Jun  3 11:00:41 EST 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# 2D, Rectilinear
    +ds = silo_data_path("rect2d.silo")
    +OpenDatabase(ds)
    +
    +# clean-up 1's
    +AddPlot("Mesh", "quadmesh2d", 1, 1)
    +AddOperator("RadialResample")
    +
    +RadialResampleAttrs = RadialResampleAttributes()
    +RadialResampleAttrs.isFast = 0
    +RadialResampleAttrs.minTheta = -45
    +RadialResampleAttrs.maxTheta = 90
    +RadialResampleAttrs.deltaTheta = 5
    +RadialResampleAttrs.radius = 0.5
    +RadialResampleAttrs.deltaRadius = 0.05
    +RadialResampleAttrs.center = (0.5, 0.5, 0.5)
    +RadialResampleAttrs.is3D = 0
    +
    +SetOperatorOptions(RadialResampleAttrs)
    +
    +AddPlot("Pseudocolor", "t", 1, 1)
    +DrawPlots()
    +Test("ops_radialresampleop_rect2d")
    +
    +DeleteAllPlots()
    +CloseDatabase(ds)
    +
    +#3D, Rectilinear
    +ds = silo_data_path("rect3d.silo")
    +OpenDatabase(ds)
    +
    +AddPlot("Mesh", "quadmesh3d", 1, 1)
    +AddOperator("RadialResample")
    +
    +RadialResampleAtts = RadialResampleAttributes()
    +RadialResampleAtts.isFast = 0
    +RadialResampleAtts.minTheta = -90
    +RadialResampleAtts.maxTheta = 90
    +RadialResampleAtts.deltaTheta = 5
    +RadialResampleAtts.radius = 0.5
    +RadialResampleAtts.deltaRadius = 0.05
    +RadialResampleAtts.center = (0.5, 0.5, 0.5)
    +RadialResampleAtts.is3D = 1
    +RadialResampleAtts.minAzimuth = 0
    +RadialResampleAtts.maxAzimuth = 360
    +RadialResampleAtts.deltaAzimuth = 5
    +
    +SetOperatorOptions(RadialResampleAtts, 1)
    +
    +AddPlot("Pseudocolor", "w", 1, 1)
    +DrawPlots()
    +Test("ops_radialresampleop_rect3d")
    +
    +DeleteAllPlots()
    +CloseDatabase(ds)
    +
    +#2D, Rectilinear, Multiple Domains
    +ds = silo_data_path("multi_rect2d.silo")
    +OpenDatabase(ds)
    +
    +AddPlot("Mesh", "mesh1", 1, 1)
    +AddOperator("RadialResample", 1)
    +
    +RadialResampleAtts = RadialResampleAttributes()
    +RadialResampleAtts.isFast = 0
    +RadialResampleAtts.minTheta = 0
    +RadialResampleAtts.maxTheta = 360
    +RadialResampleAtts.deltaTheta = 5
    +RadialResampleAtts.radius = 1
    +RadialResampleAtts.deltaRadius = 0.05
    +RadialResampleAtts.center = (0.3, 0, 0)
    +RadialResampleAtts.is3D = 0
    +RadialResampleAtts.minAzimuth = 0
    +RadialResampleAtts.maxAzimuth = 180
    +RadialResampleAtts.deltaAzimuth = 5
    +
    +SetOperatorOptions(RadialResampleAtts, 1)
    +AddPlot("Pseudocolor", "vec_magnitude", 1, 1)
    +
    +DrawPlots()
    +Test("ops_radialresampleop_multi_rect2d")
    +
    +DeleteAllPlots()
    +CloseDatabase(ds)
    +
    +# 3D, Rectilinear, Multiple Domains
    +ds = silo_data_path("multi_rect3d.silo")
    +OpenDatabase(ds)
    +
    +AddPlot("Mesh", "mesh1", 1, 1)
    +AddOperator("RadialResample", 1)
    +
    +RadialResampleAtts = RadialResampleAttributes()
    +RadialResampleAtts.isFast = 0
    +RadialResampleAtts.minTheta = -90
    +RadialResampleAtts.maxTheta = 90
    +RadialResampleAtts.deltaTheta = 5
    +RadialResampleAtts.radius = 0.5
    +RadialResampleAtts.deltaRadius = 0.05
    +RadialResampleAtts.center = (0.5, 0.5, 0.5)
    +RadialResampleAtts.is3D = 1
    +RadialResampleAtts.minAzimuth = 0
    +RadialResampleAtts.maxAzimuth = 360
    +RadialResampleAtts.deltaAzimuth = 5
    +
    +SetOperatorOptions(RadialResampleAtts)
    +
    +AddPlot("Pseudocolor", "w")
    +DrawPlots()
    +Test("ops_radialresampleop_multi_rect3d")
    +
    +DeleteAllPlots()
    +CloseDatabase(ds)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_reflect.html b/2024-12-12-22:00/poodle_trunk_serial/operators_reflect.html new file mode 100644 index 000000000..629df3390 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_reflect.html @@ -0,0 +1,150 @@ + +Results for operators/reflect.py + +

    Results of VisIt Regression Test - operators/reflect

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_refl010.000.00
    ops_refl020.000.00
    ops_refl030.000.00
    ops_refl040.000.00
    ops_refl050.000.00
    ops_refl060.000.00
    ops_refl070.000.00
    ops_refl080.000.00
    ops_refl090.000.00
    ops_refl100.000.00
    ops_refl110.000.00
    ops_refl120.000.00
    ops_refl130.000.00
    ops_refl140.000.00
    arb_plane000.000.00
    arb_plane010.000.00
    arb_plane020.000.00
    arb_plane030.000.00
    arb_plane040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_reflect_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_reflect_py.html new file mode 100644 index 000000000..d10816218 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_reflect_py.html @@ -0,0 +1,343 @@ +operators/reflect.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  reflect.py
    +#
    +#  Tests:      mesh      - 3D curvilinear, single domain,
    +#                          3D rectilinear, single domain.
    +#                          3D unstructured, single domain.
    +#              plots     - pc, vector, subset
    +#
    +#  Defect ID:  '5079, '5872, '6321
    +#
    +#  Programmer: Hank Childs
    +#  Date:       June 24, 2004
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Fri Aug 13 09:52:28 PDT 2004
    +#    Test ghost nodes along the reflection plane.
    +#
    +#    Hank Childs, Thu Aug 19 16:37:35 PDT 2004
    +#    Do not test ops_refl12 since that is done in reflect2.py (and will be
    +#    until SR mode plays well with transparency).
    +#
    +#    Jeremy Meredith, Thu Oct 21 11:56:05 PDT 2004
    +#    Reintegrated ops_refl12 since SR/transparency works now.
    +#
    +#    Hank Childs, Thu Jan 20 11:31:43 PST 2005
    +#    Test projecting then reflecting ['5872].
    +#
    +#    Hank Childs, Tue Jul  5 09:29:40 PDT 2005
    +#    Test that reflected plots are not degenerate by using the volume plot
    +#    ['6321].
    +#
    +#    Jeremy Meredith, Tue Jul 15 10:43:58 EDT 2008
    +#    Changed number of vectors in vector plot to match the old behavior.
    +#    (We now account for how many domains there are.)
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +#    Alister Maguire, Wed Apr 25 15:56:47 PDT 2018
    +#    Added tests for reflecting across an arbitrary plane. 
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# 3D, rectilinear.  Multi-block  Tests ghost zones as well.
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +atts = ReflectAttributes()
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Reflect")
    +atts.reflections = (1, 0, 1, 0, 0, 0, 0, 0)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +Test("ops_refl01")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Mesh", "quadmesh2d")
    +AddPlot("FilledBoundary", "mat1")
    +SetActivePlots((0,1))
    +AddOperator("Reflect")
    +DrawPlots()
    +atts.reflections = (0, 1, 1, 1, 0, 0, 0, 0)
    +atts.useXBoundary = 0
    +atts.specifiedX = -0.1
    +atts.useYBoundary = 0
    +atts.specifiedY = -0.05
    +SetOperatorOptions(atts)
    +Test("ops_refl02")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Reflect")
    +DrawPlots()
    +Test("ops_refl03")
    +
    +AddOperator("Isosurface")
    +DrawPlots()
    +Test("ops_refl04")
    +
    +# Move the isosurface operator before the reflect.  This tests whether
    +# or not we can reflect polydata.
    +PromoteOperator(0)
    +DrawPlots()
    +Test("ops_refl05")
    +DeleteAllPlots()
    +
    +# Test unstructured mesh -- plus test vectors.
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Vector", "vel")
    +v = VectorAttributes()
    +v.vectorOrigin = v.Head
    +v.nVectors = 400*4
    +SetPlotOptions(v)
    +
    +AddOperator("Reflect")
    +atts.reflections = (1, 0, 1, 0, 1, 0, 0, 1)
    +atts.useXBoundary = 1
    +atts.useYBoundary = 1
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.324974, 0.839345, 0.435765)
    +v.focus = (-10, -10, -10)
    +v.viewUp = (-0.252067, 0.367233, -0.895322)
    +v.viewAngle = 30
    +v.parallelScale = 34.641
    +v.nearPlane = -69.282
    +v.farPlane = 69.282
    +v.imagePan = (0, 0)
    +v.imageZoom = 1.56244
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, 0)
    +SetView3D(v)
    +
    +Test("ops_refl06")
    +
    +
    +# Now test a zonal vector variable (different code in the reflect operator).
    +ChangeActivePlotsVar("disp")
    +Test("ops_refl07")
    +
    +disp_atts = DisplaceAttributes()
    +disp_atts.variable = "vel"
    +SetDefaultOperatorOptions(disp_atts)
    +AddOperator("Displace")
    +DrawPlots()
    +Test("ops_refl08")
    +
    +PromoteOperator(0)
    +disp_atts.variable = "disp"
    +disp_atts.factor = 4
    +SetOperatorOptions(disp_atts)
    +ChangeActivePlotsVar("vel")
    +DrawPlots()
    +Test("ops_refl09")
    +DeleteAllPlots()
    +
    +
    +# Test that we properly put ghost nodes along the reflection plane.
    +
    +# There is a lot of code dedicated to creating the ghost nodes for a 
    +# rectilinear grid.  Use the PXPYPZ and NXNYNZ octants to flex all of that 
    +# code.
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "hardyglobal")
    +pc = PseudocolorAttributes()
    +pc.SetOpacityType(pc.Constant)
    +pc.opacity = 0.3
    +SetPlotOptions(pc)
    +
    +AddOperator("Reflect")
    +r = ReflectAttributes()
    +r.reflections = (1,1,1,1,1,1,1,1)
    +SetOperatorOptions(r)
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.390471, 0.546441, 0.740901)
    +v.focus = (-10, -10, -10)
    +v.viewUp = (0.00925777, 0.807079, -0.590371)
    +v.viewAngle = 30
    +v.parallelScale = 34.641
    +v.nearPlane = -69.282
    +v.farPlane = 69.282
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, 0)
    +SetView3D(v)
    +
    +Test("ops_refl10")
    +
    +r.octant = r.NXNYNZ
    +SetOperatorOptions(r)
    +
    +v.viewNormal = (0.576101, 0.343493, 0.741701)
    +v.focus = (10, 10, 10)
    +v.viewUp = (-0.15522, 0.936877, -0.313318)
    +SetView3D(v)
    +
    +Test("ops_refl11")
    +
    +
    +# Now make sure that this works well with an everyday vtkPointSet as well.
    +# Also test that we can handle the presence of both ghost nodes (from the
    +# reflect) and ghost zones (from the multi_ucd3d file).
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +SetPlotOptions(pc)
    +AddOperator("Reflect")
    +r = ReflectAttributes()
    +r.reflections = (1,0,0,0,1,0,0,0)
    +SetOperatorOptions(r)
    +DrawPlots()
    +
    +v.viewNormal = (0.328912, 0.896692, 0.296244)
    +v.focus = (0, 2.5, 20)
    +v.viewUp = (-0.710536, 0.441617, -0.547826)
    +v.viewAngle = 30
    +v.parallelScale = 20.7666
    +v.nearPlane = -41.5331
    +v.farPlane = 41.5331
    +v.imagePan = (-0.237006, -0.229008)
    +v.imageZoom = 1.25605
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, 0)
    +SetView3D(v)
    +
    +Test("ops_refl12")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Boundary", "mat1")
    +AddOperator("Project")
    +AddOperator("Reflect")
    +DrawPlots()
    +Test("ops_refl13")
    +
    +# The "mass volume extractor" of the volume renderer depends on the
    +# rectilinear grid not being inverted.  Test that here ('6321).
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Volume", "d")
    +AddOperator("Reflect")
    +DrawPlots()
    +Test("ops_refl14")
    +
    +#
    +# Now test reflecting different datasets over arbitrary planes.
    +#
    +
    +# Test 3D rectilinear over arbitrary plane.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +AddPlot("Pseudocolor" ,"d")
    +AddOperator("Reflect")
    +
    +atts = ReflectAttributes()
    +atts.reflectType = atts.Plane
    +atts.planePoint = (1, 1, 1)
    +atts.planeNormal = (4, 5, 6)
    +SetOperatorOptions(atts)
    +
    +DrawPlots()
    +
    +Test("arb_plane00")
    +
    +# Test 3D curvilinear over arbitrary plane. 
    +DeleteAllPlots()
    +ResetView()
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +AddPlot("Pseudocolor" ,"v")
    +AddOperator("Reflect")
    +
    +atts = ReflectAttributes()
    +atts.reflectType = atts.Plane
    +atts.planePoint = (-8, -3, -4)
    +atts.planeNormal = (4.5, 3, 2)
    +SetOperatorOptions(atts)
    +
    +DrawPlots()
    +
    +Test("arb_plane01")
    +
    +# Test 2D curvilinear
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor" ,"v")
    +AddOperator("Reflect")
    +
    +atts = ReflectAttributes()
    +atts.reflectType = atts.Plane
    +atts.planePoint = (-8, -3, 0)
    +atts.planeNormal = (4.5, 3, 0)
    +SetOperatorOptions(atts)
    +
    +DrawPlots()
    +
    +Test("arb_plane02")
    +
    +# Test 3D unstructured
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor" ,"v")
    +AddOperator("Reflect")
    +
    +atts = ReflectAttributes()
    +atts.reflectType = atts.Plane
    +atts.planePoint = (-8, -3, 0)
    +atts.planeNormal = (7, 9, 1)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("arb_plane03")
    +
    +AddOperator("Reflect")
    +
    +atts = ReflectAttributes()
    +atts.reflectType = atts.Plane
    +atts.planePoint = (20, 15, 19)
    +atts.planeNormal = (3, 2, 4)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("arb_plane04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_remap.html b/2024-12-12-22:00/poodle_trunk_serial/operators_remap.html new file mode 100644 index 000000000..e80a8af23 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_remap.html @@ -0,0 +1,264 @@ + +Results for operators/remap.py + +

    Results of VisIt Regression Test - operators/remap

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ghost_zvar_int0.000.00
    ghost_zvar_ext0.000.00
    globalNode_p_int0.000.00
    globalNode_p_ext0.000.00
    mCurve2_d_int0.000.00
    mCurve2_d_ext0.000.00
    mCurve2_d_dup_int0.000.00
    mCurve2_d_dup_ext0.000.00
    mCurve2_nmats_int0.000.00
    mCurve2_nmats_ext0.000.00
    mCurve2_p_int0.000.00
    mCurve2_p_ext0.000.00
    mCurve3_d_int0.000.00
    mCurve3_d_ext0.000.00
    mCurve3_d_dup_int0.000.00
    mCurve3_d_dup_ext0.000.00
    mCurve3_nmats_int0.000.00
    mCurve3_nmats_ext0.000.00
    mCurve3_p_int0.000.00
    mCurve3_p_ext0.000.00
    mRect2_d_int0.000.00
    mRect2_d_ext0.000.00
    mRect2_d_dup_int0.000.00
    mRect2_d_dup_ext0.000.00
    mRect2_nmats_int0.000.00
    mRect2_nmats_ext0.000.00
    mRect2_p_int0.000.00
    mRect2_p_ext0.000.00
    mRect3_d_int0.000.00
    mRect3_d_ext0.000.00
    mRect3_d_dup_int0.000.00
    mRect3_d_dup_ext0.000.00
    mRect3_nmats_int0.000.00
    mRect3_nmats_ext0.000.00
    mRect3_p_int0.000.00
    mRect3_p_ext0.000.00
    ucd2_p_int0.000.00
    ucd2_p_ext0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_remap_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_remap_py.html new file mode 100644 index 000000000..60ccb6280 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_remap_py.html @@ -0,0 +1,133 @@ +operators/remap.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  remap.py
    +#
    +#  Tests:      remap operator
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Eddie Rusu
    +#  Date:       Fri Feb  1 11:16:24 PST 2019
    +#
    +#  Modifications:
    +#     Eddie Rusu, Tue Apr 13 12:08:59 PDT 2021
    +#     Changed Pseudocolor CurrentPlot to ActualData.
    +# ----------------------------------------------------------------------------
    +
    +def remap(cells, type = 0):
    +    AddOperator("Remap", 1)
    +    RemapAtts = RemapAttributes()
    +    RemapAtts.cellsX = cells
    +    RemapAtts.cellsY = cells
    +    RemapAtts.cellsZ = cells
    +    if type == 1:
    +        RemapAtts.variableType = RemapAtts.extrinsic
    +        setPseudoOptions()
    +    SetOperatorOptions(RemapAtts, 1)
    +    DrawPlots()
    +
    +def setPseudoOptions():
    +    PseudocolorAtts = PseudocolorAttributes()
    +    PseudocolorAtts.limitsMode = PseudocolorAtts.ActualData
    +    SetPlotOptions(PseudocolorAtts)
    +
    +def set3DView():
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0.5, 0.5, 0.7)
    +    View3DAtts.focus = (1.5, 1.5, 0.5)
    +    View3DAtts.viewUp = (-0.0429563, 0.998733, -0.0262205)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 2.17945
    +    View3DAtts.nearPlane = -4.3589
    +    View3DAtts.farPlane = 4.3589
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (1.5, 1.5, 0.5)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +def plotVariables(varName, saveName, cells = 10):
    +    AddPlot("Pseudocolor", varName, 1, 1)
    +    DrawPlots()
    +
    +    remap(cells)
    +    Test(saveName + "_int")
    +
    +    RemoveOperator(0, 1)
    +    remap(cells, 1)
    +    Test(saveName + "_ext")
    +
    +    DeleteAllPlots()
    +
    +def ghost1():
    +    OpenDatabase(silo_data_path("ghost1.silo"))
    +    plotVariables("zvar", "ghost_zvar")
    +    CloseDatabase(silo_data_path("ghost1.silo"))
    +
    +def globalNode():
    +    OpenDatabase(silo_data_path("global_node.silo"))
    +    set3DView()
    +    plotVariables("p", "globalNode_p", 4) # Wrong results.
    +    ResetView()
    +    CloseDatabase(silo_data_path("global_node.silo"))
    +
    +def mCurve2():
    +    OpenDatabase(silo_data_path("multi_curv2d.silo"))
    +    plotVariables("d", "mCurve2_d")
    +    plotVariables("d_dup", "mCurve2_d_dup")
    +    plotVariables("nmats", "mCurve2_nmats")
    +    plotVariables("p", "mCurve2_p")
    +    CloseDatabase(silo_data_path("multi_curv2d.silo"))
    +
    +def mCurve3():
    +    OpenDatabase(silo_data_path("multi_curv3d.silo"))
    +    set3DView()
    +    plotVariables("d", "mCurve3_d", 4)
    +    plotVariables("d_dup", "mCurve3_d_dup", 4)
    +    plotVariables("nmats", "mCurve3_nmats", 4)
    +    plotVariables("p", "mCurve3_p", 4)
    +    ResetView()
    +    CloseDatabase(silo_data_path("multi_curv3d.silo"))
    +
    +def mRect2():
    +    OpenDatabase(silo_data_path("multi_rect2d.silo"))
    +    plotVariables("d", "mRect2_d")
    +    plotVariables("d_dup", "mRect2_d_dup")
    +    plotVariables("nmats", "mRect2_nmats")
    +    plotVariables("p", "mRect2_p")
    +    CloseDatabase(silo_data_path("multi_rect2d.silo"))
    +
    +def mRect3():
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +    set3DView()
    +    plotVariables("d", "mRect3_d", 4)
    +    plotVariables("d_dup", "mRect3_d_dup", 4)
    +    plotVariables("nmats", "mRect3_nmats", 4)
    +    plotVariables("p", "mRect3_p", 4)
    +    ResetView()
    +    CloseDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +def ucd2():
    +    OpenDatabase(silo_data_path("ucd2d.silo"))
    +    plotVariables("p", "ucd2_p")
    +    CloseDatabase(silo_data_path("ucd2d.silo"))
    +
    +def Main():
    +    ghost1()
    +    globalNode()
    +    mCurve2()
    +    mCurve3()
    +    mRect2()
    +    mRect3()
    +    ucd2()
    +
    +Main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_resample.html b/2024-12-12-22:00/poodle_trunk_serial/operators_resample.html new file mode 100644 index 000000000..9e77b5703 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_resample.html @@ -0,0 +1,72 @@ + +Results for operators/resample.py + +

    Results of VisIt Regression Test - operators/resample

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_resampleop_noise_point_small0.000.00
    ops_resampleop_noise_point_large0.000.00
    ops_resampleop_noise_point_explicit0.000.00
    ops_resampleop_noise_point_backfull0.000.00
    ops_resampleop_noise_hardy_small0.000.00
    ops_resampleop_curv2d0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_resample_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_resample_py.html new file mode 100644 index 000000000..1fcdab04c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_resample_py.html @@ -0,0 +1,124 @@ +operators/resample.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  resample.py
    +#
    +#  Tests:      resample operator
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Sean Ahern
    +#  Date:       Thu Jan  3 11:00:41 EST 2008
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Wed Dec 31 14:32:34 PST 2008
    +#    Rename ResamplePluginAtts to ResampleAtts.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Alister Maguire, Fri Jan 29 08:17:27 PST 2021
    +#    Set useExtents = 0 where appropriate as setting the start/end
    +#    values no longer overrides useExtents.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "PointVar")
    +AddOperator("Resample")
    +
    +resample = ResampleAttributes()
    +resample.samplesX = 5
    +resample.samplesY = 6
    +resample.samplesZ = 7
    +SetOperatorOptions(resample)
    +
    +DrawPlots()
    +
    +bigView = GetView3D()
    +bigView.SetViewNormal(-0.528889, 0.367702, 0.7649)
    +bigView.SetViewUp(0.176641, 0.929226, -0.324558)
    +bigView.SetParallelScale(17.3205)
    +bigView.SetPerspective(1)
    +SetView3D(bigView)
    +
    +Test("ops_resampleop_noise_point_small")
    +
    +resample = ResampleAttributes()
    +resample.samplesX = 20
    +resample.samplesY = 30
    +resample.samplesZ = 40
    +SetOperatorOptions(resample)
    +
    +Test("ops_resampleop_noise_point_large")
    +
    +resample = ResampleAttributes()
    +resample.useExtents = 0
    +resample.startX = 5.25
    +resample.endX = 9.57
    +resample.samplesX = 10
    +resample.startY = -5.9
    +resample.endY = 0
    +resample.samplesY = 20
    +resample.startZ = -6
    +resample.endZ = 0
    +resample.samplesZ = 30
    +SetOperatorOptions(resample)
    +
    +ResetView()
    +v = GetView3D()
    +v.SetViewNormal(-0.41557,-0.758094,0.502588)
    +v.SetFocus(6.862131,4.91535,-9.08261)
    +v.SetViewUp(-0.720258,0.611719,0.327153)
    +v.SetParallelScale(10)
    +v.SetImagePan(-0.21812, 0.210298)
    +v.SetImageZoom(1.6527)
    +v.SetPerspective(1)
    +SetView3D(v)
    +
    +Test("ops_resampleop_noise_point_explicit")
    +
    +resample.useExtents = 1
    +SetOperatorOptions(resample)
    +SetView3D(bigView)
    +
    +Test("ops_resampleop_noise_point_backfull")
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "hardyglobal")
    +AddOperator("Resample")
    +
    +resample = ResampleAttributes()
    +resample.samplesX = 3
    +resample.samplesY = 3
    +resample.samplesZ = 3
    +SetOperatorOptions(resample)
    +
    +SetView3D(bigView)
    +DrawPlots()
    +
    +Test("ops_resampleop_noise_hardy_small")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "v")
    +AddOperator("Resample")
    +
    +resample = ResampleAttributes()
    +resample.samplesX = 10
    +resample.samplesY = 20
    +resample.is3D = 0
    +SetOperatorOptions(resample)
    +
    +DrawPlots()
    +
    +Test("ops_resampleop_curv2d")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_revolve.html b/2024-12-12-22:00/poodle_trunk_serial/operators_revolve.html new file mode 100644 index 000000000..3e0a3e1a3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_revolve.html @@ -0,0 +1,42 @@ + +Results for operators/revolve.py + +

    Results of VisIt Regression Test - operators/revolve

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    revolve_points_000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_revolve_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_revolve_py.html new file mode 100644 index 000000000..4c36c5810 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_revolve_py.html @@ -0,0 +1,35 @@ +operators/revolve.py
    # ---------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  revolve.py
    +#
    +#  Tests:      mesh      - 2D unstructured, single domain, 
    +#              plots     - pseudocolor
    +#              operators - revolve
    +#
    +#  Programmer: Alister Maguire
    +#  Date: Fri Jun 19 13:30:11 PDT 2020
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def TestRevolvingPoints():
    +    #
    +    # Make sure that we can revolve points. We weren't always able to do this.
    +    #
    +    OpenDatabase(silo_data_path("multi_point2d.silo"))
    +    AddPlot("Pseudocolor", "v", 1, 1)
    +    AddOperator("Revolve", 1)
    +    DrawPlots()
    +    Test("revolve_points_00")
    +    DeleteActivePlots()
    +    CloseDatabase(silo_data_path("multi_point2d.silo"))
    +
    +def Main():
    +    TestRevolvingPoints()
    +
    +Main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_slice.html b/2024-12-12-22:00/poodle_trunk_serial/operators_slice.html new file mode 100644 index 000000000..dd65b07ad --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_slice.html @@ -0,0 +1,297 @@ + +Results for operators/slice.py + +

    Results of VisIt Regression Test - operators/slice

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Slice through a point
    ops_Slice010.000.00
    Slice through a zone
    ops_Slice020.000.00
    ops_Slice030.000.00
    Slice FilledBoundary plot
    ops_Slice040.000.00
    ops_Slice050.000.00
    ops_Slice060.000.00
    Slice Mesh plot
    ops_Slice070.000.00
    ops_Slice080.000.00
    ops_Slice090.000.00
    ops_Slice100.000.00
    ops_Slice110.000.00
    ops_Slice120.000.00
    ops_Slice130.000.00
    ops_Slice140.000.00
    ops_Slice150.000.00
    ops_Slice160.000.00
    ops_Slice170.000.00
    ops_Slice180.000.00
    Slice point mesh
    ops_Slice190.000.00
    Slice through a point
    ops_Slice200.000.00
    ops_Slice210.000.00
    ops_Slice220.000.00
    ops_Slice230.000.00
    ops_Slice240.000.00
    ops_Slice250.000.00
    ops_Slice260.000.00
    ops_Slice270.000.00
    ops_Slice280.000.00
    ops_Slice290.000.00
    ops_Slice300.000.00
    ops_Slice310.000.00
    ops_Slice320.000.00
    ops_Slice330.000.00
    ops_Slice340.000.00
    ops_Slice350.000.00
    Slice polyhedral cells
    ops_Slice360.000.00
    ops_Slice370.000.00
    ops_Slice380.000.00
    ops_Slice390.000.00
    ops_Slice400.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_slice_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_slice_py.html new file mode 100644 index 000000000..f2e125a51 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_slice_py.html @@ -0,0 +1,590 @@ +operators/slice.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  slice.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, single domain,
    +#                          3D unstructured single domain
    +#                          3D curvilinear multi-domain
    +#                          3D unstructured multi-domain
    +#              plots     - pc, filled boundary, mesh
    +#              operators - slice, onion peel, threshold, index select
    +#
    +#  Defect ID:  '3950 (for tests 16,17,18).  '4662 (test 19).
    +#              '4706 (tests 20-27).  '4913 (test 28), '4975 (test 29).
    +#              '5157 (test 31-2). '5794 (test 33), '7630 (test 35)
    +#
    +#  Known problems:   (1) Slicing of plots that have had material interface
    +#                    reconstruction can often have holes.  This is a problem
    +#                    with the interface reconstruction routines.  When those
    +#                    are fixed, the holes should go away.
    +#                    Tests affected: 4, 5, 6, 15
    +#                    (2) The mesh lines are being shifted towards the camera.
    +#                    For one test, the line actually gets shifted too far and
    +#                    slightly intersects a cell.
    +#                    Tests affected: 7, 8, 9
    +#                    (3) The zonal center for the slice is not consistently
    +#                    determined (see defect '3437).  This means that test 2
    +#                    and 5 do not have the same origin for their slice.
    +#                    This is a known problem.
    +#
    +#  Programmer: Hank Childs
    +#  Date:       June 19, 2003
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset and boundary plots.
    +#
    +#    Hank Childs, Fri Oct 31 14:35:14 PST 2003
    +#    Added test for getting extents right when projecting to 2D and setting
    +#    the origin based on a percent.  From '3950.
    +#
    +#    Hank Childs, Tue Mar 30 08:42:02 PST 2004
    +#    Added test for slicing point meshes. ['4662]
    +#
    +#    Hank Childs, Tue Apr 13 09:53:21 PDT 2004
    +#    Test slicing extremes with percent (0%, 100%) ['4706]
    +#
    +#    Hank Childs, Mon May 24 16:20:49 PDT 2004
    +#    Test slicing point meshes in conjunction with the displace operator
    +#    when the points are all on a plane. ['4913]
    +#
    +#    Hank Childs, Fri Jun 18 08:45:11 PDT 2004
    +#    Test that we can slice boundary plots. ['4975]
    +#
    +#    Hank Childs, Tue Jul 20 16:53:16 PDT 2004
    +#    Test the projection to 2D when the normal and up-axis are not orthogonal
    +#    ['5157].
    +#
    +#    Eric Brugger, Wed Dec 29 15:04:04 PST 2004
    +#    Added a test for changing the time state for a plot that has been
    +#    sliced through a zone.  This tests visit00005794.
    +#
    +#    Kathleen Bonnell, Tue Jan 25 17:27:16 PST 2005 
    +#    Added a test for specifying the meshname with domain/zone type of slice. 
    +#
    +#    Hank Childs, Sat Jan 27 12:45:03 PST 2007
    +#    Added a test for slicing 1xJxK and Ix1xK meshes.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, June 19, 2023
    +#    Add call to RequiredDatabasePlugin.
    +#
    +# ----------------------------------------------------------------------------
    +
    +RequiredDatabasePlugin(("Silo", "EnSight"))
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +TestSection("Slice through a point")
    +# Test 1 -- a slice through a point
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 0
    +atts.normal = (-0.1, 0.8, -0.6)
    +atts.originType = atts.Point
    +atts.originPoint = (0.3333, 0.094, 0.081)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +view = GetView3D()
    +view.viewNormal = (-0.53, -0.07, -0.84)
    +view.focus = (0.5, 0.5, 0.5)
    +view.viewUp = (0, 1, 0)
    +view.viewAngle = 30
    +view.parallelScale = 0.866
    +view.nearPlane = -1.73
    +view.farPlane = 1.73
    +view.imagePan = (0.058, 0.26)
    +view.imageZoom = 12.6
    +view.perspective = 1
    +SetView3D(view)
    +
    +Test("ops_Slice01")
    +
    +TestSection("Slice through a zone")
    +# Test 2 -- A slice through a zone.  Add an onion peel of that zone to show
    +# that the slice is in the right spot.
    +atts.originType = atts.Zone
    +atts.originZone = 2500
    +atts.originZoneDomain = 0
    +SetOperatorOptions(atts)
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("OnionPeel")
    +op_atts = OnionPeelAttributes()
    +op_atts.index = 2500
    +SetOperatorOptions(op_atts)
    +DrawPlots()
    +SetView3D(view)
    +
    +Test("ops_Slice02")
    +
    +# Test 3 -- A slice through a node.  The node (2645) is incident to the zone
    +# from before (2500).
    +SetActivePlots(0)
    +atts.originType = atts.Node
    +atts.originNode = 2645
    +atts.originNodeDomain = 0
    +SetOperatorOptions(atts)
    +
    +Test("ops_Slice03")
    +
    +# Now repeat the three tests with a filled boundary plot.
    +TestSection("Slice FilledBoundary plot")
    +DeleteActivePlots()
    +
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Slice")
    +atts.originType = atts.Point
    +atts.originPoint = (0.3333, 0.094, 0.081)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("ops_Slice04")
    +
    +atts.originType = atts.Zone
    +atts.originZone = 2500
    +atts.originZoneDomain = 0
    +SetOperatorOptions(atts)
    +
    +Test("ops_Slice05")
    +
    +atts.originType = atts.Node
    +atts.originNode = 2645
    +atts.originNodeDomain = 0
    +SetOperatorOptions(atts)
    +
    +Test("ops_Slice06")
    +
    +# Slice a mesh plot.
    +TestSection("Slice Mesh plot")
    +DeleteActivePlots()
    +
    +AddPlot("Mesh", "quadmesh3d")
    +AddOperator("Slice")
    +atts.originType = atts.Zone
    +atts.originZone = 2500
    +atts.originZoneDomain = 0
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("ops_Slice07")
    +
    +t_atts = ThresholdAttributes()
    +t_atts.listedVarNames = ("d")
    +t_atts.lowerBounds = (0.6)
    +t_atts.upperBounds = (1.0)
    +SetDefaultOperatorOptions(t_atts)
    +AddOperator("Threshold")
    +DemoteOperator(1, 0)
    +DrawPlots()
    +
    +Test("ops_Slice08")
    +
    +RemoveOperator(0, 0)
    +
    +insel_atts = IndexSelectAttributes()
    +insel_atts.dim = insel_atts.ThreeD
    +insel_atts.xMin = 10
    +insel_atts.xMax = 18
    +insel_atts.yMin = 3
    +insel_atts.yMax = 4
    +insel_atts.zMin = 0
    +insel_atts.zMax = 3
    +SetDefaultOperatorOptions(insel_atts)
    +AddOperator("IndexSelect")
    +DemoteOperator(1, 0)
    +DrawPlots()
    +
    +Test("ops_Slice09")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("sid97.silo"))
    +
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.originType = atts.Point
    +atts.originPoint = (7400, -1300, 1000)
    +atts.normal = (0, 1, 0)
    +atts.project2d = 1
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("ops_Slice10")
    +
    +DeleteAllPlots()
    +
    +
    +OpenDatabase(silo_data_path("tire.silo"))
    +
    +AddPlot("Subset", "domains")
    +AddOperator("Slice")
    +atts.originType = atts.Zone
    +atts.originZone = 100
    +atts.originZoneDomain = 2
    +atts.normal = (0.707, -0.707, 0)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("ops_Slice11")
    +
    +
    +atts.normal = (0.707, 0.707, 0)
    +SetOperatorOptions(atts)
    +
    +Test("ops_Slice12")
    +
    +
    +atts.originType = atts.Node
    +atts.originNode = 55
    +atts.originNodeDomain = 3
    +SetOperatorOptions(atts)
    +
    +Test("ops_Slice13")
    +
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Slice")
    +atts.originType = atts.Zone
    +atts.originZone = 1005
    +atts.originZoneDomain = 18
    +atts.normal = (0.707, 0, -0.707)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("ops_Slice14")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("FilledBoundary", "mat1")
    +AddOperator("Slice")
    +atts.originType = atts.Zone
    +atts.originZone = 1005
    +atts.originZoneDomain = 18
    +atts.normal = (0.707, 0, -0.707)
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("ops_Slice15")
    +
    +
    +atts.originType = atts.Percent
    +atts.originPercent = 69
    +atts.axisType = atts.YAxis
    +SetOperatorOptions(atts)
    +
    +Test("ops_Slice16")
    +
    +atts.originType = atts.Percent
    +atts.originPercent = 50
    +atts.axisType = atts.ZAxis
    +SetOperatorOptions(atts)
    +
    +Test("ops_Slice17")
    +
    +atts.originType = atts.Percent
    +atts.originPercent = 10
    +atts.axisType = atts.XAxis
    +SetOperatorOptions(atts)
    +
    +Test("ops_Slice18")
    +
    +DeleteAllPlots()
    +
    +TestSection("Slice point mesh")
    +# Test that we can slice point meshes.  The points must be exactly on the
    +# plane (or at least within some tolerance).  To guarantee the point positions,
    +# take a 2D plot and put it into 3D.  Then slice it.
    +OpenDatabase(silo_data_path("noise2d.silo"))
    +
    +AddPlot("Pseudocolor", "PointVar")
    +pc_atts = PseudocolorAttributes()
    +pc_atts.pointType = pc_atts.Box
    +pc_atts.pointSize = 0.4
    +SetPlotOptions(pc_atts)
    +AddOperator("Transform")
    +trans_atts = TransformAttributes()
    +trans_atts.doRotate = 1
    +trans_atts.rotateAxis = (0, 1, 0)
    +SetOperatorOptions(trans_atts)
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.axisType = atts.ZAxis
    +atts.originType = atts.Intercept
    +atts.originIntercept = 0
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("ops_Slice19")
    +
    +DeleteAllPlots()
    +ActivateDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +# Test 1 -- a slice through a point
    +TestSection("Slice through a point")
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Slice")
    +atts.originType = atts.Percent
    +atts.project2d = 0
    +atts.originPercent = 0
    +atts.axisType=atts.XAxis
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +view = GetView3D()
    +view.viewNormal = (0.565246, 0.332, 0.755)
    +view.focus = (0.5, 0.0, 0.5)
    +view.viewUp = (-0.08, 0.933, -0.35)
    +view.viewAngle = 30
    +view.parallelScale = 0.707
    +view.nearPlane = -1.41421
    +view.farPlane = 1.41421
    +view.imagePan = (0.1, -0.181)
    +view.imageZoom = 0.7
    +view.perspective = 1
    +SetView3D(view)
    +
    +Test("ops_Slice20")
    +
    +atts.originPercent = 100
    +SetOperatorOptions(atts)
    +Test("ops_Slice21")
    +
    +atts.axisType=atts.YAxis
    +atts.originPercent = 0
    +SetOperatorOptions(atts)
    +Test("ops_Slice22")
    +
    +atts.axisType=atts.YAxis
    +atts.originPercent = 100
    +SetOperatorOptions(atts)
    +Test("ops_Slice23")
    +
    +atts.axisType=atts.ZAxis
    +atts.originPercent = 0
    +SetOperatorOptions(atts)
    +Test("ops_Slice24")
    +
    +atts.axisType=atts.ZAxis
    +atts.originPercent = 100
    +SetOperatorOptions(atts)
    +Test("ops_Slice25")
    +
    +# The X-axis for orthogonal slices is -1,0,0.  Try 1,0,0.
    +atts.axisType=atts.Arbitrary
    +atts.normal=(1,0,0)
    +atts.originPercent = 0
    +SetOperatorOptions(atts)
    +Test("ops_Slice26")
    +
    +# The Y-axis for orthogonal slices is 0,-1,0.  Try 0,1,0.
    +atts.axisType=atts.Arbitrary
    +atts.normal=(0,1,0)
    +atts.originPercent = 0
    +SetOperatorOptions(atts)
    +Test("ops_Slice27")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "PointVar")
    +pc_atts.pointSize = 1.0
    +SetPlotOptions(pc_atts)
    +DefineVectorExpression("disp", "{0,0,-coord(PointMesh)[2]}")
    +AddOperator("Displace")
    +disp = DisplaceAttributes()
    +disp.variable = "disp"
    +SetOperatorOptions(disp)
    +AddOperator("Slice")
    +slice = SliceAttributes()
    +slice.axisType = slice.ZAxis
    +SetOperatorOptions(slice)
    +DrawPlots()
    +Test("ops_Slice28")
    +
    +# First, test slice by a zone with a boundary plot where the zone is along
    +# a material boundary.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Boundary", "mat1")
    +AddOperator("Slice")
    +slice = SliceAttributes()
    +slice.originType = atts.Zone
    +slice.originZone = 10000
    +slice.originZoneDomain = 0
    +slice.axisType = slice.ZAxis
    +SetOperatorOptions(slice)
    +DrawPlots()
    +Test("ops_Slice29")
    +
    +# Now, test slice by a zone where the zone is not along a material boundary.
    +slice.originZone = 9998
    +SetOperatorOptions(slice)
    +Test("ops_Slice30")
    +
    +DeleteAllPlots()
    +
    +# Test what happens when the up axis is not orthogonal to the normal.
    +# Start off with the two being orthogonal, though.
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "hardyglobal")
    +AddOperator("Slice")
    +slice = SliceAttributes()
    +slice.normal = (1, -1, 0)
    +slice.upAxis = (0, 0, 1)
    +slice.project2d = 1
    +slice.originType = slice.Point
    +slice.originPoint = (0,0,0)
    +SetOperatorOptions(slice)
    +DrawPlots()
    +Test("ops_Slice31")
    +
    +# Now make them be non-orthogonal.
    +slice.upAxis = (0,1,0)
    +SetOperatorOptions(slice)
    +Test("ops_Slice32")
    +
    +# Open a multi time state database, create a pseudocolor plot slicing
    +# through a zone and then change the time state.
    +DeleteAllPlots()
    +ResetView()
    +OpenDatabase(silo_data_path("wave*.silo database"))
    +
    +
    +AddPlot("Pseudocolor", "pressure")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 1
    +atts.axisType = atts.YAxis
    +atts.originType = atts.Zone
    +atts.originZone = 100
    +atts.originZoneDomain = 0
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +TimeSliderNextState()
    +Test("ops_Slice33")
    +
    +
    +DeleteAllPlots()
    +ResetView()
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor", "d_dup")
    +AddOperator("Slice")
    +atts = SliceAttributes()
    +atts.project2d = 1
    +atts.axisType = atts.YAxis
    +atts.originType = atts.Zone
    +atts.originZone = 27
    +atts.originZoneDomain = 2
    +atts.meshName = "mesh1"
    +SetOperatorOptions(atts)
    +DrawPlots()
    +
    +Test("ops_Slice34")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("IndexSelect")
    +iatts = IndexSelectAttributes()
    +iatts.dim = iatts.ThreeD
    +iatts.xMin = 0
    +iatts.xMax = 1000
    +iatts.yMin = 10
    +iatts.yMax = 10
    +iatts.zMin = 0
    +iatts.zMax = 1000
    +iatts.xIncr = 1
    +iatts.yIncr = 1
    +iatts.zIncr = 1
    +SetOperatorOptions(iatts)
    +AddOperator("Slice")
    +DrawPlots()
    +ResetView()
    +Test("ops_Slice35")
    +DeleteAllPlots()
    +
    +TestSection("Slice polyhedral cells")
    +OpenDatabase(data_path("EnSight_test_data/small.case"))
    +
    +DefineScalarExpression("zid", "zoneid(mesh) * 1.")
    +DefineScalarExpression("nid", "nodeid(mesh) * 1.")
    +AddPlot("Pseudocolor", "zid")
    +DrawPlots()
    +v = GetView3D()
    +v.viewNormal = (-0.597184, 0.364571, 0.714464)
    +v.focus = (1, 1.75, 1)
    +v.viewUp = (0.222007, 0.931066, -0.289533)
    +v.viewAngle = 30
    +v.parallelScale = 4.58939
    +v.nearPlane = -9.17878
    +v.farPlane = 9.17878
    +v.imagePan = (-0.0112992, 0.0560752)
    +v.imageZoom = 1.77156
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (1, 1.75, 1)
    +v.axis3DScaleFlag = 0
    +v.axis3DScales = (1, 1, 1)
    +v.shear = (0, 0, 1)
    +SetView3D(v)
    +Test("ops_Slice36")
    +
    +AddOperator("Slice")
    +s = SliceAttributes()
    +s.originType = s.Percent  # Point, Intercept, Percent, Zone, Node
    +s.originPoint = (0, 0, 0)
    +s.originIntercept = 0
    +s.originPercent = 50
    +s.originZone = 0
    +s.originNode = 0
    +s.normal = (0, 0, 1)
    +s.axisType = s.XAxis  # XAxis, YAxis, ZAxis, Arbitrary, ThetaPhi
    +s.upAxis = (0, 1, 0)
    +s.project2d = 0
    +s.interactive = 1
    +s.flip = 0
    +s.originZoneDomain = 0
    +s.originNodeDomain = 0
    +s.meshName = "mesh"
    +s.theta = 0
    +s.phi = 90
    +SetOperatorOptions(s)
    +DrawPlots()
    +Test("ops_Slice37")
    +
    +ChangeActivePlotsVar("nid")
    +Test("ops_Slice38")
    +
    +ChangeActivePlotsVar("zid")
    +s.axisType = s.ZAxis
    +SetOperatorOptions(s)
    +DrawPlots()
    +Test("ops_Slice39")
    +
    +ChangeActivePlotsVar("nid")
    +Test("ops_Slice40")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_sph_resample.html b/2024-12-12-22:00/poodle_trunk_serial/operators_sph_resample.html new file mode 100644 index 000000000..bd099d8d0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_sph_resample.html @@ -0,0 +1,42 @@ + +Results for operators/sph_resample.py + +

    Results of VisIt Regression Test - operators/sph_resample

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    sph_2d0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_sph_resample_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_sph_resample_py.html new file mode 100644 index 000000000..91d9ac319 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_sph_resample_py.html @@ -0,0 +1,51 @@ +operators/sph_resample.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  sph_resample.py
    +#
    +#  Tests:      mesh    - 2D rectilinear, single domain,
    +#              plots   - pseudocolor
    +#
    +#  Defect ID:  2338 
    +#
    +#  Programmer: Kevin Griffin
    +#  Date:       Wed Jul 22 17:36:55 PDT 2015
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# 2D, Rectilinear
    +ds = data_path("silo_sph_test_data/KelvinHelmholtz-2d_McNally.visit")
    +OpenDatabase(ds)
    +
    +AddPlot("Pseudocolor", "mass_density")
    +pc = PseudocolorAttributes()
    +pc.centering = pc.Nodal
    +SetPlotOptions(pc)
    +
    +AddOperator("SPHResample")
    +SPHResampleAtts = SPHResampleAttributes()
    +SPHResampleAtts.minX = 0
    +SPHResampleAtts.maxX = 1
    +SPHResampleAtts.xnum = 100
    +SPHResampleAtts.minY = 0
    +SPHResampleAtts.maxY = 1
    +SPHResampleAtts.ynum = 100
    +SPHResampleAtts.minZ = 0
    +SPHResampleAtts.maxZ = 1
    +SPHResampleAtts.znum = 1
    +SPHResampleAtts.tensorSupportVariable = "H"
    +SPHResampleAtts.weightVariable = "mass"
    +SPHResampleAtts.RK = 1
    +SetOperatorOptions(SPHResampleAtts, 1)
    +
    +DrawPlots()
    +
    +Test("sph_2d")
    +
    +DeleteAllPlots()
    +CloseDatabase(ds)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_tessellate.html b/2024-12-12-22:00/poodle_trunk_serial/operators_tessellate.html new file mode 100644 index 000000000..aa7115c53 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_tessellate.html @@ -0,0 +1,162 @@ + +Results for operators/tessellate.py + +

    Results of VisIt Regression Test - operators/tessellate

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    quadratic_triangle_010.000.00
    quadratic_triangle_020.000.00
    quadratic_triangle_030.000.00
    biquadratic_quad_010.000.00
    biquadratic_quad_020.000.00
    biquadratic_quad_030.000.00
    biquadratic_quad_field_010.000.00
    biquadratic_quad_field_020.000.00
    biquadratic_quad_field_030.000.00
    quadratic_linear_quad_010.000.00
    quadratic_quad_010.000.00
    quadratic_quad_020.000.00
    quadratic_quad_030.000.00
    quadratic_mixed_010.000.00
    quadratic_mixed_020.000.00
    quadratic_mixed_030.000.00
    quadratic_hex_010.000.00
    quadratic_hex_020.000.00
    quadratic_hex_030.000.00
    quadratic_hex_040.000.00
    triquadratic_hex_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_tessellate_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_tessellate_py.html new file mode 100644 index 000000000..6be7c1a7c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_tessellate_py.html @@ -0,0 +1,286 @@ +operators/tessellate.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  tessellate.py
    +#
    +#  Tests:      mesh      - quadratic_triangle
    +#                          biquadratic_quad
    +#                          quadratic_linear_quad
    +#                          quadratic_quad
    +#                          quadratic_hex
    +#                          triquadratic_hex
    +#              plots     - pc, mesh
    +#              operators - tessellate, clip
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       July 24, 2020
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Quadratic_triangle
    +OpenDatabase(data_path("vtk_test_data/quadratic_triangle.vtk"))
    +
    +AddPlot("Pseudocolor", "x_c")
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (0.200511, 0.543812, 0.814901)
    +v.focus = (0, 0.5, 1)
    +v.viewUp = (-0.232184, 0.834474, -0.499744)
    +v.viewAngle = 30
    +v.parallelScale = 1.5
    +v.nearPlane = -3
    +v.farPlane = 3
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +SetView3D(v)
    +
    +Test("quadratic_triangle_01")
    +
    +AddOperator("Tessellate", 1)
    +DrawPlots()
    +
    +Test("quadratic_triangle_02")
    +
    +tess = TessellateAttributes()
    +tess.chordError = 0.01
    +SetOperatorOptions(tess, 0, 1)
    +
    +Test("quadratic_triangle_03")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("vtk_test_data/quadratic_triangle.vtk"))
    +
    +# Biquadratic_quad
    +OpenDatabase(data_path("vtk_test_data/biquadratic_quad.vtk"))
    +
    +AddPlot("Pseudocolor", "x_c")
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (0.200511, 0.543812, 0.814901)
    +v.focus = (0, 0.5, 1)
    +v.viewUp = (-0.232184, 0.834474, -0.499744)
    +v.viewAngle = 30
    +v.parallelScale = 1.5
    +v.nearPlane = -3
    +v.farPlane = 3
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +SetView3D(v)
    +
    +Test("biquadratic_quad_01")
    +
    +AddOperator("Tessellate", 1)
    +DrawPlots()
    +
    +Test("biquadratic_quad_02")
    +
    +tess = TessellateAttributes()
    +tess.chordError = 0.01
    +SetOperatorOptions(tess, 0, 1)
    +
    +Test("biquadratic_quad_03")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("vtk_test_data/biquadratic_quad.vtk"))
    +
    +# Biquadratic_quad_field
    +OpenDatabase(data_path("vtk_test_data/biquadratic_quad_field.vtk"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +Test("biquadratic_quad_field_01")
    +
    +AddOperator("Tessellate", 1)
    +DrawPlots()
    +
    +Test("biquadratic_quad_field_02")
    +
    +tess = TessellateAttributes()
    +tess.chordError = 0.01
    +tess.fieldCriterion = 0.01
    +SetOperatorOptions(tess, 0, 1)
    +
    +Test("biquadratic_quad_field_03")
    +
    +CloseDatabase(data_path("vtk_test_data/biquadratic_quad_field.vtk"))
    +DeleteAllPlots()
    +
    +# Quadratic_linear_quad
    +OpenDatabase(data_path("vtk_test_data/quadratic_linear_quad.vtk"))
    +
    +AddPlot("Pseudocolor", "x_c")
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (0.200511, 0.543812, 0.814901)
    +v.focus = (0, 0.5, 1)
    +v.viewUp = (-0.232184, 0.834474, -0.499744)
    +v.viewAngle = 30
    +v.parallelScale = 1.5
    +v.nearPlane = -3
    +v.farPlane = 3
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +SetView3D(v)
    +
    +Test("quadratic_linear_quad_01")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("vtk_test_data/quadratic_linear_quad.vtk"))
    +
    +# Quadratic_quad
    +OpenDatabase(data_path("vtk_test_data/quadratic_quad.vtk"))
    +
    +AddPlot("Pseudocolor", "x_c")
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (0.200511, 0.543812, 0.814901)
    +v.focus = (0, 0.5, 1)
    +v.viewUp = (-0.232184, 0.834474, -0.499744)
    +v.viewAngle = 30
    +v.parallelScale = 1.5
    +v.nearPlane = -3
    +v.farPlane = 3
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +SetView3D(v)
    +
    +Test("quadratic_quad_01")
    +
    +AddOperator("Tessellate", 1)
    +DrawPlots()
    +
    +Test("quadratic_quad_02")
    +
    +tess = TessellateAttributes()
    +tess.chordError = 0.01
    +SetOperatorOptions(tess, 0, 1)
    +
    +Test("quadratic_quad_03")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("vtk_test_data/quadratic_quad.vtk"))
    +
    +# Mixed biquadratic_quad and quadratic_triangle
    +OpenDatabase(data_path("vtk_test_data/quadratic_mixed.vtk"))
    +
    +AddPlot("Pseudocolor", "x_c")
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (0.200511, 0.543812, 0.814901)
    +v.focus = (0, 0.5, 1)
    +v.viewUp = (-0.232184, 0.834474, -0.499744)
    +v.viewAngle = 30
    +v.parallelScale = 1.5
    +v.nearPlane = -3
    +v.farPlane = 3
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +SetView3D(v)
    +
    +Test("quadratic_mixed_01")
    +
    +AddOperator("Tessellate", 1)
    +DrawPlots()
    +
    +Test("quadratic_mixed_02")
    +
    +tess = TessellateAttributes()
    +tess.chordError = 0.01
    +SetOperatorOptions(tess, 0, 1)
    +
    +Test("quadratic_mixed_03")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("vtk_test_data/quadratic_mixed.vtk"))
    +
    +# Quadratic_hex
    +OpenDatabase(data_path("vtk_test_data/quadratic_hex.vtk"))
    +
    +AddPlot("Pseudocolor", "x_c")
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (0.491097, 0.334402, 0.804363)
    +v.focus = (0.7, 0.7, 0.5)
    +v.viewUp = (-0.0787305, 0.936642, -0.341326)
    +v.viewAngle = 30
    +v.parallelScale = 1.10905
    +v.nearPlane = -2.21811
    +v.farPlane = 2.21811
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +SetView3D(v)
    +
    +Test("quadratic_hex_01")
    +
    +AddOperator("Tessellate", 1)
    +DrawPlots()
    +
    +Test("quadratic_hex_02")
    +
    +tess = TessellateAttributes()
    +tess.chordError = 0.01
    +SetOperatorOptions(tess, 0, 1)
    +
    +Test("quadratic_hex_03")
    +
    +AddOperator("Clip", 1)
    +clip = ClipAttributes()
    +clip.plane1Origin = (0.5, 0.5, 0.5)
    +SetOperatorOptions(clip, 0, 1)
    +
    +DrawPlots()
    +
    +Test("quadratic_hex_04")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("vtk_test_data/quadratic_hex.vtk"))
    +
    +# Triquadratic_hex
    +OpenDatabase(data_path("vtk_test_data/triquadratic_hex.vtk"))
    +
    +AddPlot("Pseudocolor", "x_c")
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (0.491097, 0.334402, 0.804363)
    +v.focus = (0.7, 0.7, 0.5)
    +v.viewUp = (-0.0787305, 0.936642, -0.341326)
    +v.viewAngle = 30
    +v.parallelScale = 1.10905
    +v.nearPlane = -2.21811
    +v.farPlane = 2.21811
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +SetView3D(v)
    +
    +Test("triquadratic_hex_01")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("vtk_test_data/triquadratic_hex.vtk"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_threeslice.html b/2024-12-12-22:00/poodle_trunk_serial/operators_threeslice.html new file mode 100644 index 000000000..90f0bcdbe --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_threeslice.html @@ -0,0 +1,54 @@ + +Results for operators/threeslice.py + +

    Results of VisIt Regression Test - operators/threeslice

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ThreeSlice_010.000.00
    ThreeSlice_020.000.00
    ThreeSlice_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_threeslice_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_threeslice_py.html new file mode 100644 index 000000000..c214e6d9c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_threeslice_py.html @@ -0,0 +1,49 @@ +operators/threeslice.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  threeslice.py
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       July 6, 2006
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +def Test1():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    AddOperator("ThreeSlice")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0.456241, 0.47741, 0.750949)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (-0.0855449, 0.863521, -0.497004)
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    SetView3D(v)
    +
    +    Test("ThreeSlice_01")
    +
    +    slice = ThreeSliceAttributes()
    +    slice.x = -10
    +    SetOperatorOptions(slice)
    +    Test("ThreeSlice_02")
    +
    +    slice.y = -10
    +    SetOperatorOptions(slice)
    +    Test("ThreeSlice_03")
    +
    +
    +Test1()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_threshold.html b/2024-12-12-22:00/poodle_trunk_serial/operators_threshold.html new file mode 100644 index 000000000..9315ede40 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_threshold.html @@ -0,0 +1,108 @@ + +Results for operators/threshold.py + +

    Results of VisIt Regression Test - operators/threshold

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_thresh010.000.00
    ops_thresh020.000.00
    ops_thresh030.000.00
    ops_thresh040.000.00
    ops_thresh050.000.00
    ops_thresh060.000.00
    ops_thresh070.000.00
    ops_thresh080.000.00
    ops_thresh090.000.00
    ops_thresh100.000.00
    ops_thresh110.000.00
    ops_thresh120.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_threshold_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_threshold_py.html new file mode 100644 index 000000000..5acf672d5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_threshold_py.html @@ -0,0 +1,275 @@ +operators/threshold.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  threshold.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain,
    +#                          3D rectilinear, multiple domain,
    +#                          2D curvilinear, multiple domain
    +#              plots     - pc, mesh, subset, contour
    +#              operators - threshold
    +#              selection - none
    +#
    +#  Defect ID:  '6590, '7631
    +#
    +#  Programmer: Hank Childs
    +#  Date:       July 24, 2002
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Sep  5 10:55:47 PDT 2002
    +#    Changed the variable format for SubsetPlots, to reflect new interface
    +#    which allows subsets of groups.
    +#
    +#    Eric Brugger, Thu May  8 12:50:50 PDT 2003
    +#    Remove some code for setting the view when changing to a new data set
    +#    since visit should automatically adjust the view by default.
    +#
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from subset plots.
    +#
    +#    Hank Childs, Thu Sep 15 16:31:31 PDT 2005
    +#    Added testing for points only mode ('6590).
    +#
    +#    Mark Blair, Fri May 19 17:36:00 PDT 2006
    +#    Modified all tests, added new tests, for multi-variable mode.
    +#
    +#    Hank Childs, Sat Jan 27 13:03:55 PST 2007
    +#    Test points only with material selection on ('7631).
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.SetViewNormal(-0.528889, 0.367702, 0.7649)
    +v.SetViewUp(0.176641, 0.929226, -0.324558)
    +v.SetParallelScale(17.3205)
    +v.SetPerspective(1)
    +SetView3D(v)
    +
    +#
    +# Normal PC threshold for globe.
    +#
    +thresh = ThresholdAttributes()
    +
    +thresh.outputMeshType = 0
    +thresh.zonePortions = (1)
    +thresh.lowerBounds = (-4)
    +thresh.upperBounds = (4)
    +SetDefaultOperatorOptions(thresh)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh01")
    +
    +#
    +# Normal PC threshold for globe, but now change the zone inclusion criteria.
    +#
    +RemoveAllOperators()
    +thresh.outputMeshType = 0
    +thresh.zonePortions = (0)
    +thresh.lowerBounds = (-4)
    +thresh.upperBounds = (4)
    +SetDefaultOperatorOptions(thresh)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh02")
    +
    +#
    +# Normal PC plot of globe, thresholding by a variable different than the
    +# PC coloring variable.
    +#
    +RemoveAllOperators()
    +thresh.outputMeshType = 0
    +thresh.zonePortions = (1)
    +thresh.lowerBounds = (140)
    +thresh.upperBounds = (340)
    +thresh.listedVarNames = ("t")
    +SetDefaultOperatorOptions(thresh)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh03")
    +
    +DeleteAllPlots()
    +
    +#
    +# Contour lines by one variable, thresholding by another.  Multi-block,
    +# curvilinear, 2D.
    +#
    +OpenDatabase(silo_data_path("multi_curv2d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +thresh.outputMeshType = 0
    +thresh.zonePortions = (1)
    +thresh.lowerBounds = (0.7)
    +thresh.upperBounds = (0.9)
    +thresh.listedVarNames = ("v")
    +SetDefaultOperatorOptions(thresh)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh04")
    +
    +DeleteAllPlots()
    +
    +#
    +# Material plot, thresholded by a scalar variable.  Multi-block,
    +# curvilinear, 2D.
    +#
    +AddPlot("FilledBoundary", "mat1")
    +DrawPlots()
    +
    +thresh.outputMeshType = 0
    +thresh.zonePortions = (1)
    +thresh.lowerBounds = (-0.4)
    +thresh.upperBounds = (1.0)
    +thresh.listedVarNames = ("u")
    +SetDefaultOperatorOptions(thresh)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh05")
    +
    +DeleteAllPlots()
    +
    +#
    +# Mesh plot and PC plot, both thresholded by the same variable and zone
    +# inclusion criteria.  Then change the output mesh type to a point mesh.
    +# Multi-block, rectilinear, 3D.
    +#
    +OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +
    +thresh.outputMeshType = 0
    +thresh.zonePortions = (1)
    +thresh.lowerBounds = (0.4)
    +thresh.upperBounds = (1.0)
    +thresh.listedVarNames = ("u")
    +SetDefaultOperatorOptions(thresh)
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +AddPlot("Mesh", "mesh1")
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh06")
    +
    +DeleteActivePlots()
    +
    +thresh.outputMeshType = 1
    +SetDefaultOperatorOptions(thresh)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh07")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +#
    +# Normal PC plot of globe, thresholding by two variables different than the
    +# PC coloring variable.
    +#
    +thresh.outputMeshType = 0
    +thresh.zonePortions = (1, 1)
    +thresh.lowerBounds = (140, 0)
    +thresh.upperBounds = (340, 1)
    +thresh.listedVarNames = ("t", "dx")
    +SetDefaultOperatorOptions(thresh)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh08")
    +
    +DeleteAllPlots()
    +
    +#
    +# Contour lines by one variable, thresholding by that variable and another,
    +# using two different zone inclusion criteria.  Multi-block, curvilinear, 2D.
    +#
    +OpenDatabase(silo_data_path("multi_curv2d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +
    +thresh.zonePortions = (0, 1)
    +thresh.lowerBounds = (-0.7, 0.7)
    +thresh.upperBounds = (0.7, 0.9)
    +thresh.listedVarNames = ("u", "v")
    +SetDefaultOperatorOptions(thresh)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh09")
    +
    +DeleteAllPlots()
    +
    +#
    +# Material plot, thresholded by two scalar variables.  Multi-block,
    +# curvilinear, 2D.
    +#
    +AddPlot("FilledBoundary", "mat1")
    +DrawPlots()
    +
    +thresh.zonePortions = (0, 0)
    +thresh.lowerBounds = (-0.4, 0.25)
    +thresh.upperBounds = (1.0, 0.45)
    +thresh.listedVarNames = ("u", "p")
    +SetDefaultOperatorOptions(thresh)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +Test("ops_thresh10")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Threshold")
    +ThresholdAtts = ThresholdAttributes()
    +ThresholdAtts.outputMeshType = 1
    +ThresholdAtts.listedVarNames = ("u")
    +ThresholdAtts.zonePortions = (1)
    +ThresholdAtts.lowerBounds = (0)
    +ThresholdAtts.upperBounds = (1e+37)
    +ThresholdAtts.defaultVarName = "u"
    +ThresholdAtts.defaultVarIsScalar = 1
    +SetOperatorOptions(ThresholdAtts)
    +DrawPlots()
    +ResetView()
    +Test("ops_thresh11")
    +
    +# See that the points go away when you turn off the materials.
    +sil = SILRestriction()
    +m = sil.SetsInCategory("mat1")
    +sil.TurnOffSet(m[2])
    +sil.TurnOffSet(m[3])
    +SetPlotSILRestriction(sil)
    +Test("ops_thresh12")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_transform.html b/2024-12-12-22:00/poodle_trunk_serial/operators_transform.html new file mode 100644 index 000000000..e3221877d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_transform.html @@ -0,0 +1,96 @@ + +Results for operators/transform.py + +

    Results of VisIt Regression Test - operators/transform

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ops_transform010.000.00
    ops_transform020.000.00
    ops_transform030.000.00
    ops_transform040.000.00
    ops_transform050.000.00
    ops_transform060.000.00
    ops_transform070.000.00
    ops_transform080.000.00
    ops_transform090.000.00
    ops_transform100.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_transform_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_transform_py.html new file mode 100644 index 000000000..763bce9c2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_transform_py.html @@ -0,0 +1,228 @@ +operators/transform.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  transform.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain,
    +#                          3D rectilinear, single domain.
    +#              plots     - pc, mesh, contour, vector
    +#              operators - transform
    +#              selection - none
    +#
    +#  Defect ID:  '6310, '6694, '6699
    +#
    +#  Programmer: Hank Childs
    +#  Date:       July 24, 2002
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Wed Sep  3 09:31:25 PDT 2003
    +#    Opaque mode for MeshPlot is ON by default now, so turn it off
    +#    for this test.
    +#
    +#    Kathleen Bonnell, Thu Sep  4 11:10:11 PDT 2003
    +#    Change the way MeshPlot's opaque mode is set (now an enum, not a bool).
    +#
    +#    Hank Childs, Wed Jun  8 15:36:22 PDT 2005
    +#    Added tests for coordinate system conversion.  ['6310]
    +#
    +#    Hank Childs, Tue Nov 15 15:59:00 PST 2005
    +#    Added tests for 2D transformations.  ['6694 '6699]
    +#
    +#    Kathleen Bonnell,  Fri Mar 28 15:24:18 PDT 2008
    +#    Added test for curve transformation.  ['8277]
    +#
    +#    Jeremy Meredith
    +#    Added test for linear transforms.
    +#
    +#    Jeremy Meredith, Mon Jul 14 11:17:29 EDT 2008
    +#    Allow the clipped vector plot to show all vectors (even ones not from
    +#    from original cells/nodes) to match the old behavior.
    +#
    +#    Jeremy Meredith, Thu Aug 13 13:34:42 EDT 2009
    +#    Made transform04 test be explicit about the coord sys it chooses.
    +#    Made transform05 use Cyl instead of Spher coords; it's a 2D problem!
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Thu Jul 11 08:20:24 PDT 2013
    +#    Removed legacy style annotation setting.
    +#
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#    individually to match current baseline results.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Turn off all annotation
    +a = AnnotationAttributes()
    +TurnOffAllAnnotations(a)
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +AddPlot("Pseudocolor", "u")
    +clip = ClipAttributes()
    +clip.plane1Status = 1
    +clip.SetPlane1Origin(0,0,0)
    +clip.SetPlane1Normal(-1,1,0)
    +clip.funcType = 0
    +SetDefaultOperatorOptions(clip)
    +AddOperator("Clip")
    +
    +trans = TransformAttributes()
    +trans.doTranslate = 1
    +trans.translateX = -3
    +SetDefaultOperatorOptions(trans)
    +AddOperator("Transform")
    +DrawPlots()
    +
    +AddPlot("Vector", "vel")
    +vec = VectorAttributes()
    +vec.origOnly = 0
    +SetPlotOptions(vec)
    +
    +clip.SetPlane1Normal(1,-1,0)
    +SetDefaultOperatorOptions(clip)
    +AddOperator("Clip")
    +
    +trans.translateX = -6
    +SetDefaultOperatorOptions(trans)
    +AddOperator("Transform")
    +
    +DrawPlots()
    +
    +Test("ops_transform01")
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +AddPlot("Mesh", "quadmesh3d")
    +m = MeshAttributes()
    +m.opaqueMode = m.Off
    +SetPlotOptions(m)
    +trans.doTranslate = 0
    +trans.translateX = 0
    +trans.doScale = 1
    +trans.scaleX = 4
    +trans.scaleZ = 3
    +SetDefaultOperatorOptions(trans)
    +AddOperator("Transform")
    +DrawPlots()
    +
    +ResetView()
    +Test("ops_transform02")
    +DeleteAllPlots()
    +
    +AddPlot("Contour", "d")
    +trans.doRotate = 1
    +trans.rotateAmount = 45
    +SetDefaultOperatorOptions(trans)
    +AddOperator("Transform")
    +DrawPlots()
    +
    +ResetView()
    +Test("ops_transform03")
    +
    +DeleteAllPlots()
    +
    +a.axes3D.visible = 1
    +a.axes3D.bboxFlag = 1
    +SetAnnotationAttributes(a)
    +
    +AddPlot("Contour", "d")
    +AddOperator("Transform")
    +trans = TransformAttributes() # Get reset version.
    +trans.transformType = trans.Coordinate
    +trans.inputCoordSys = trans.Cartesian
    +trans.outputCoordSys = trans.Spherical
    +SetOperatorOptions(trans)
    +DrawPlots()
    +SetViewExtentsType("actual")
    +ResetView()
    +
    +Test("ops_transform04")
    +
    +# '6699
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Transform")
    +trans.transformType = trans.Coordinate
    +trans.inputCoordSys = trans.Cartesian
    +trans.outputCoordSys = trans.Cylindrical
    +SetOperatorOptions(trans)
    +DrawPlots()
    +Test("ops_transform05")
    +
    +# '6694
    +DeleteAllPlots()
    +DefineVectorExpression("polar", "polar(quadmesh2d) - coord(quadmesh2d)")
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Displace")
    +disp = DisplaceAttributes()
    +disp.variable = "polar"
    +SetOperatorOptions(disp)
    +DrawPlots()
    +Test("ops_transform06")
    +
    +# '8277
    +DeleteAllPlots()
    +OpenDatabase(data_path("curve_test_data/zonecent.ultra"))
    +
    +AddPlot("Curve", "curve2")
    +curveAtts = CurveAttributes()
    +curveAtts.curveColorSource = curveAtts.Custom
    +curveAtts.curveColor = (255, 0, 0, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +Test("ops_transform07")
    +
    +AddOperator("Transform")
    +trans.transformType = trans.Similarity
    +trans.doRotate = 0
    +trans.doTranslate = 0
    +trans.doScale = 1
    +trans.scaleX = 1
    +trans.scaleZ = 1
    +trans.scaleY = -3
    +SetOperatorOptions(trans)
    +DrawPlots()
    +Test("ops_transform08")
    +
    +# Test linear transform
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Transform")
    +
    +trans.transformType = trans.Linear
    +trans.m00 = .8
    +trans.m01 = .3
    +trans.m02 = 0
    +
    +trans.m10 = 0
    +trans.m11 = 1
    +trans.m12 = 0
    +
    +trans.m20 = .5
    +trans.m21 = .5
    +trans.m22 = 1
    +
    +trans.invertLinearTransform = 0
    +
    +SetOperatorOptions(trans)
    +DrawPlots()
    +ResetView()
    +
    +Test("ops_transform09")
    +
    +trans.invertLinearTransform = 1
    +SetOperatorOptions(trans)
    +Test("ops_transform10")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_tube.html b/2024-12-12-22:00/poodle_trunk_serial/operators_tube.html new file mode 100644 index 000000000..d95f0c091 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_tube.html @@ -0,0 +1,72 @@ + +Results for operators/tube.py + +

    Results of VisIt Regression Test - operators/tube

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    tube_010.000.00
    tube_020.000.00
    tube_030.000.00
    tube_040.000.00
    tube_050.000.00
    tube_060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/operators_tube_py.html b/2024-12-12-22:00/poodle_trunk_serial/operators_tube_py.html new file mode 100644 index 000000000..3956a9231 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/operators_tube_py.html @@ -0,0 +1,64 @@ +operators/tube.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  tube.py
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       August 7, 2012
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(data_path("vtk_test_data/lines.vtk"))
    +
    +AddPlot("Pseudocolor", "var1")
    +AddOperator("Tube")
    +tube = TubeAttributes()
    +tube.tubeRadiusType = tube.Absolute
    +tube.radiusAbsolute = 0.5
    +tube.fineness = 20
    +SetOperatorOptions(tube)
    +
    +view = GetView3D()
    +view.viewNormal = (-0.429483, -0.499742, 0.752198)
    +view.focus = (0, 0, 0)
    +view.viewUp = (-0.296677, 0.864778, 0.405144)
    +view.viewAngle = 30
    +view.parallelScale = 8.66025
    +view.nearPlane = -17.3205
    +view.farPlane = 17.3205
    +SetView3D(view)
    +
    +DrawPlots()
    +
    +Test("tube_01")
    +
    +tube.scaleByVarFlag = 1
    +SetOperatorOptions(tube)
    +Test("tube_02")
    +
    +tube.scaleVariable = "var2"
    +SetOperatorOptions(tube)
    +Test("tube_03")
    +
    +# get the default again
    +tube = TubeAttributes()
    +
    +ChangeActivePlotsVar("var2")
    +tube.tubeRadiusType = tube.Absolute
    +tube.radiusAbsolute = 0.5
    +tube.fineness = 20
    +SetOperatorOptions(tube)
    +Test("tube_04")
    +
    +tube.scaleByVarFlag = 1
    +SetOperatorOptions(tube)
    +Test("tube_05")
    +
    +tube.scaleVariable = "var1"
    +SetOperatorOptions(tube)
    +Test("tube_06")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_contour.html b/2024-12-12-22:00/poodle_trunk_serial/plots_contour.html new file mode 100644 index 000000000..68c0550bd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_contour.html @@ -0,0 +1,244 @@ + +Results for plots/contour.py + +

    Results of VisIt Regression Test - plots/contour

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    contour_contourMethod_000.000.00
    contour_contourMethod_010.000.00
    contour_contourMethod_020.000.00
    contour_wireframe_000.000.00
    contour_minMax_000.000.00
    contour_minMax_010.000.00
    contour_minMax_020.000.00
    contour_minMax_030.000.00
    contour_minMax_040.000.00
    contour_lineWidth_000.000.00
    contour_lineWidth_010.000.00
    contour_lineWidth_020.000.00
    contour_lineWidth_030.000.00
    contour_lineWidth_040.000.00
    contour_lineWidth_050.000.00
    contour_lineWidth_060.000.00
    contour_lineWidth_070.000.00
    contour_lineWidth_080.000.00
    contour_lineWidth_090.000.00
    contour_colorMethod_000.000.00
    contour_colorMethod_010.000.00
    contour_colorMethod_020.000.00
    contour_colorMethod_030.000.00
    contour_colorMethod_040.000.00
    contour_colorMethod_050.000.00
    contour_colorMethod_060.000.00
    contour_colorMethod_070.000.00
    contour_colorMethod_080.000.00
    contour_colorMethod_090.000.00
    contour_linearScale0.000.00
    contour_logScale0.000.00
    contour_multicolor_000.000.00
    contour_multicolor_010.000.00
    contour_multicolor_020.000.00
    contour_bad_value0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_contour_py.html b/2024-12-12-22:00/poodle_trunk_serial/plots_contour_py.html new file mode 100644 index 000000000..8bbb4e159 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_contour_py.html @@ -0,0 +1,183 @@ +plots/contour.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  contour.py
    +#
    +#  Tests:      mesh      - 3D structured, single domain
    +#                        - 3D rectilinear, multiple domain
    +#                        - 2D curvilinear, single domain
    +#              plots     - Contour
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       October 15, 2014
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Sep 23 17:06:37 PDT 2015
    +#    Add a test for bad contour values to make sure the plot can handle it.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def ExerciseAtts():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    AddPlot("Contour", "hardyglobal")
    +    c = ContourAttributes()
    +    c.contourMethod = c.Percent
    +    c.contourPercent = (5, 78, 52, 13, 36, 42)
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("contour_contourMethod_00")
    +    c.contourMethod = c.Value
    +    c.contourValue= (2.0, 3.3, 5.01)
    +    SetPlotOptions(c)
    +    Test("contour_contourMethod_01")
    +    c.contourMethod = c.Level
    +    c.contourNLevels = 7
    +    SetPlotOptions(c)
    +    Test("contour_contourMethod_02")
    +
    +    c.wireframe = 1
    +    c.lineWidth = 3
    +    SetPlotOptions(c)
    +    Test("contour_wireframe_00")
    +    ChangeActivePlotsVar("shepardglobal")
    +    # Get new default atts
    +    c = ContourAttributes()
    +    c.contourNLevels = 3
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("contour_minMax_00")
    +    c.minFlag = 1
    +    c.maxFlag = 1
    +    c.max = 5
    +    for i in range(1,5):
    +        c.min = i
    +        SetPlotOptions(c)
    +        Test("contour_minMax_%02d"%i)
    +
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +    AddPlot("Contour", "d")
    +    c = ContourAttributes()
    +    c.contourNLevels = 4
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    for i in range(10):
    +        c.lineWidth = i
    +        SetPlotOptions(c)
    +        Test("contour_lineWidth_%02d"%i)
    +
    +    c.lineWidth = 4
    +
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +    AddPlot("Contour", "d")
    +    c = ContourAttributes()
    +    c.contourNLevels = 5
    +    c.colorType = c.ColorByColorTable
    +    c.colorTableName = "rainbow"
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("contour_colorMethod_00")
    +    c.invertColorTable = 1
    +    SetPlotOptions(c)
    +    Test("contour_colorMethod_01")
    +
    +    c.colorType = c.ColorBySingleColor
    +    c.singleColor = (87, 170, 0, 255)
    +    SetPlotOptions(c)
    +    Test("contour_colorMethod_02")
    +    c.singleColor = (87, 170, 0, 120)
    +    SetPlotOptions(c)
    +    Test("contour_colorMethod_03")
    +
    +    c.colorType = c.ColorByMultipleColors
    +    SetPlotOptions(c)
    +    Test("contour_colorMethod_04")
    +    for i in range(5,0,-1):
    +        levelColor = list(c.GetMultiColor(i-1))
    +        levelColor[3] = 65
    +        c.SetMultiColor((i-1),tuple(levelColor))
    +        SetPlotOptions(c)
    +        Test("contour_colorMethod_%02d"%(10-i))
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("wave.visit"))
    +    AddPlot("Contour", "pressure")
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (-0.561907, 0.653269, 0.507444)
    +    v.viewUp = (0.388352, 0.749975, -0.535463)
    +    SetView3D(v)
    +    Test("contour_linearScale")
    +    c = ContourAttributes()
    +    c.scaling = c.Log
    +    SetPlotOptions(c)
    +    Test("contour_logScale")
    +
    +    DeleteAllPlots()
    +
    +def TestMultiColor():
    +    # Bug 2013, indexing issues with SetMultiColor when num levels reduces.
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    AddPlot("Contour", "hardyglobal")
    +    DrawPlots()
    +
    +    Sets = [[1,5.5,11],[1,5.5,11],[1,5.5,8]]
    +    testNum = 0
    +    for r in Sets:
    +        # the next comment and similar below bracket code to be 'literalincluded' in quickrecipes.rst
    +        # contourAtts {
    +        p = ContourAttributes()
    +        p.contourMethod = p.Level
    +        p.contourNLevels=r[2]
    +        p.colorType = p.ColorByMultipleColors
    +        p.singleColor = (255, 0, 0, 25)
    +        p.SetMultiColor(0, (255,0,255,64))
    +        p.SetMultiColor(1, (0,255,0,64))
    +        p.SetMultiColor(2, (255, 135, 0, 255))
    +        p.SetMultiColor(3, (255,255,0,64))
    +        p.SetMultiColor(4, (255, 0, 135, 255))
    +        p.SetMultiColor(5, (0,0,255,64))
    +        p.SetMultiColor(6, (0,255,255,64))
    +        p.SetMultiColor(7, (255,0,0,64))
    +        if r[2] > 8 :
    +            p.SetMultiColor(8, (99, 255, 99, 255))
    +            p.SetMultiColor(9, (168, 168, 168, 255))
    +            p.SetMultiColor(10, (255, 68, 68, 255))
    +
    +        p.minFlag=1
    +        p.maxFlag=1
    +        p.min=r[0]
    +        p.max=r[1]
    +        SetPlotOptions(p)
    +        # contourAtts }
    +        Test("contour_multicolor_%02d"%testNum)
    +        testNum = testNum + 1
    +    DeleteAllPlots()
    +
    +def TestBadValue():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    AddPlot("Contour", "hardyglobal")
    +    ContourAtts = ContourAttributes()
    +    ContourAtts.contourValue = (0)
    +    ContourAtts.contourMethod = ContourAtts.Value  # Level, Value, Percent
    +    ContourAtts.minFlag = 0
    +    ContourAtts.maxFlag = 0
    +    SetPlotOptions(ContourAtts)
    +    DrawPlots()
    +
    +    # Test that the plot is not in the error state and that we have an engine. (i.e. the engine did not crash)
    +    pl = GetPlotList()
    +    txt = "Plot Completed: " + str(pl.GetPlots(0).stateType == pl.GetPlots(0).Completed) + "\n"
    +    txt = txt + "Number of compute engines: " + str(len(GetEngineList())) + "\n"
    +    TestText("contour_bad_value", txt)
    +
    +ExerciseAtts()
    +TestMultiColor()
    +TestBadValue()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_curve.html b/2024-12-12-22:00/poodle_trunk_serial/plots_curve.html new file mode 100644 index 000000000..ae20aea09 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_curve.html @@ -0,0 +1,351 @@ + +Results for plots/curve.py + +

    Results of VisIt Regression Test - plots/curve

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    curve_1_010.000.00
    curve_1_020.000.00
    curve_1_030.000.00
    curve_1_040.000.00
    curve_1_050.000.00
    curve_1_060.000.00
    curve_1_070.000.00
    Overlay curves on 2D plots
    curve_2_010.000.00
    curve_2_020.000.00
    curve_2_030.000.00
    curve_2_050.000.00
    curve_2_060.000.00
    curve_2_070.000.00
    curve_2_080.000.00
    curve_2_090.000.00
    curve_2_100.000.00
    Points and Symbols
    curve_3_010.000.00
    curve_3_020.000.00
    curve_3_030.000.00
    curve_3_040.000.00
    curve_3_050.000.00
    curve_3_060.000.00
    curve_3_070.000.00
    curve_3_080.000.00
    curve_3_090.000.00
    curve_3_100.000.00
    curve_3_110.000.00
    curve_3_120.000.00
    curve_3_130.000.00
    Time Cue
    curve_4_000.000.00
    curve_4_010.000.00
    curve_4_020.000.00
    curve_4_030.000.00
    curve_4_040.000.00
    curve_4_050.000.00
    curve_4_060.000.00
    curve_4_070.000.00
    curve_4_080.000.00
    Polar
    polar_curve_010.000.00
    polar_curve_020.000.00
    polar_curve_030.000.00
    polar_curve_040.000.00
    polar_curve_050.000.00
    polar_curve_060.000.00
    polar_curve_070.000.00
    polar_curve_080.000.00
    Scale
    curve_scale_000.000.00
    curve_scale_010.000.00
    curve_scale_020.000.00
    curve_scale_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_curve_py.html b/2024-12-12-22:00/poodle_trunk_serial/plots_curve_py.html new file mode 100644 index 000000000..6709cdf79 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_curve_py.html @@ -0,0 +1,488 @@ +plots/curve.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial, parallel, scalable
    +#  CLASSES: nightly
    +#
    +#  Test Case:  curve.py 
    +#
    +#  Tests:      Tests the curve plot
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       August 3, 2006 
    +#
    +#  Modifications:
    +#    Brad Whitlock, Tue Nov 21 10:55:24 PDT 2006
    +#    Made it use enums for line style.
    +#
    +#    Mark C. Miller, Thu Jun 21 11:05:58 PDT 2007
    +#    Added tests for overlaying curves on 2D plots
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Bonnell, Fri Aug 13 16:10:56 MST 2010 
    +#    Added TestPointsAndSymbols to test various points/symbol settings.
    +#    Added TestTimeCue to test time-cue functionality
    +#
    +#    Kathleen Biagas, Thu Sep 12 09:08:00 PDT 2013
    +#    Added TestPolar to test new polar conversion capability.
    +#
    +#    Kathleen Biagas, Tue Jul 15 14:16:33 MST 2014
    +#    Added TestScale, which demonstrates the need to scale curves with values
    +#    greater than 1e37 or less than 1e-37.
    +#
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all tests.  Set the colors individually
    +#    to match current baseline results.
    +#
    +#    Kathleen Biagas, Thu Feb 17 07:40:34 PST 2022
    +#    Replace 'color' with 'curveColor' for CurveAttributes.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def Test1():
    +    OpenDatabase(data_path("curve_test_data/distribution.ultra"))
    +
    +    DefineCurveExpression("logED", "log10(<Exponential Distribution>)")
    +    DefineCurveExpression("logLap", "log10(<Laplace Distribution>)")
    +    AddPlot("Curve", "Exponential Distribution")
    +    c = CurveAttributes()
    +    c.curveColorSource = c.Custom
    +    c.curveColor = (255, 0, 0, 255)
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("curve_1_01")
    +
    +    ChangeActivePlotsVar("logED")
    +    c.curveColor = (0, 0, 0, 255)
    +    SetPlotOptions(c)
    +    ResetView()
    +    Test("curve_1_02")
    +
    +    ChangeActivePlotsVar("Laplace Distribution")
    +    c.curveColor = (0, 255, 0, 255)
    +    c.lineWidth = 2
    +    SetPlotOptions(c)
    +    ResetView()
    +    Test("curve_1_03")
    +
    +    ChangeActivePlotsVar("logLap")
    +    c.lineWidth = 0
    +    c.curveColor = (0, 255, 255, 255)
    +    SetPlotOptions(c)
    +    ResetView()
    +    Test("curve_1_04")
    +
    +    v = GetViewCurve()
    +    v.domainCoords = (-19.3832, -19.3626)
    +    v.rangeCoords = (-8.71826, -8.71234)
    +    SetViewCurve(v)
    +    Test("curve_1_05")
    +
    +    ChangeActivePlotsVar("Log Normal Distribution")
    +    ResetView()
    +    Test("curve_1_06")
    +
    +    c.curveColor = (120, 10, 150, 255)
    +    SetPlotOptions(c)
    +
    +    v.domainCoords = (1.13181, 1.14079)
    +    v.rangeCoords = (0.346122, 0.350033)
    +    SetViewCurve(v)
    +    Test("curve_1_07")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("curve_test_data/distribution.ultra"))
    +
    +
    +def TestOverlayCurves():
    +    TestSection("Overlay curves on 2D plots")
    +
    +    # put up some 2D plots
    +    OpenDatabase(silo_data_path("ucd2d.silo"))
    +
    +    AddPlot("Pseudocolor","d")    # id=0
    +    AddPlot("Mesh","ucdmesh2d")   # id=1
    +    SetActivePlots((1))
    +    AddOperator("Transform")
    +    ta=TransformAttributes()
    +    ta.doTranslate=1
    +    ta.translateY=2
    +    SetOperatorOptions(ta)
    +    DrawPlots()
    +
    +    OpenDatabase(data_path("curve_test_data/ol_curveA.curve"))
    +
    +    AddPlot("Curve","ol_curveA")  # id=2
    +    c = CurveAttributes()
    +    c.curveColorSource = c.Custom
    +    c.curveColor = (0, 255, 0, 0)
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("curve_2_01")
    +
    +    OpenDatabase(data_path("curve_test_data/ol_curveB.curve"))
    +
    +    AddPlot("Curve","ol_curveB")  # id=3
    +    c.curveColor = (0, 0, 255, 0)
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("curve_2_02")
    +
    +    OpenDatabase(data_path("curve_test_data/ol_curveC.curve"))
    +
    +    AddPlot("Curve","ol_curveC")  # id=4
    +    c.curveColor = (0, 255, 255, 0)
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("curve_2_03")
    +
    +    # testing hiding/unhiding the 2D plots
    +    SetActivePlots(())
    +    SetActivePlots((0,1))
    +    HideActivePlots()
    +    #Test("curve_2_04")
    +    HideActivePlots()
    +    Test("curve_2_05")
    +    SetActivePlots((1))
    +    HideActivePlots()
    +    Test("curve_2_06")
    +    HideActivePlots()
    +
    +    # test hiding some curves
    +    SetActivePlots((2,3,4))
    +    HideActivePlots()
    +    Test("curve_2_07")
    +    HideActivePlots()
    +    SetActivePlots((2))
    +    HideActivePlots()
    +    Test("curve_2_08")
    +    HideActivePlots()
    +    SetActivePlots((3))
    +    HideActivePlots()
    +    Test("curve_2_09")
    +    HideActivePlots()
    +    SetActivePlots((4))
    +    HideActivePlots()
    +    Test("curve_2_10")
    +    HideActivePlots()
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("ucd2d.silo"))
    +
    +    CloseDatabase(data_path("curve_test_data/ol_curveA.curve"))
    +
    +    CloseDatabase(data_path("curve_test_data/ol_curveB.curve"))
    +
    +    CloseDatabase(data_path("curve_test_data/ol_curveC.curve"))
    +
    +
    +def TestPointsAndSymbols():
    +    TestSection("Points and Symbols")
    +    OpenDatabase(data_path("curve_test_data/ol_curveA.curve"))
    +
    +    AddPlot("Curve","ol_curveA")
    +    #points and lines
    +    curve = CurveAttributes()
    +    curve.showLabels = 0
    +    curve.showPoints = 1
    +    curve.curveColorSource = curve.Custom
    +    curve.curveColor = (0, 0, 0, 255)
    +    SetPlotOptions(curve)
    +    DrawPlots()
    +    ResetView()
    +    v = GetViewCurve()
    +    v.domainCoords = (-0.5, 5.5)
    +    v.rangeCoords = (-0.5, 3.5)
    +    SetViewCurve(v)
    +    Test("curve_3_01")
    +
    +    #stride the points
    +    curve.pointStride = 3
    +    SetPlotOptions(curve)
    +    Test("curve_3_02")
    +
    +    #Dynamic fill 
    +    curve.pointFillMode = curve.Dynamic
    +    SetPlotOptions(curve)
    +    Test("curve_3_03")
    +
    +    #change density
    +    curve.symbolDensity = 10
    +    SetPlotOptions(curve)
    +    Test("curve_3_04")
    +
    +    #Symbol 
    +    curve.symbol = curve.TriangleDown
    +    SetPlotOptions(curve)
    +    Test("curve_3_05")
    +
    +    #Zoom 
    +    v.domainCoords = (2, 5)
    +    v.rangeCoords = (2, 4)
    +    SetViewCurve(v)
    +    Test("curve_3_06")
    +
    +    #Symbol 
    +    v.domainCoords = (-0.5, 5.5)
    +    v.rangeCoords = (-0.5, 3.5)
    +    SetViewCurve(v)
    +    curve.symbol = curve.Plus
    +    SetPlotOptions(curve)
    +    Test("curve_3_07")
    +
    +    #Static with symbols
    +    curve.pointFillMode = curve.Static
    +    curve.pointStride = 1
    +    curve.symbol = curve.Circle
    +    SetPlotOptions(curve)
    +    Test("curve_3_08")
    +
    +    #Remove lines
    +    curve.showLines = 0
    +    curve.symbol = curve.X
    +    SetPlotOptions(curve)
    +    Test("curve_3_09")
    +
    +    #Remove lines
    +    curve.pointFillMode = curve.Dynamic
    +    curve.symbolDensity = 30
    +    curve.symbol = curve.TriangleUp
    +    SetPlotOptions(curve)
    +    Test("curve_3_10")
    +
    +    OpenDatabase(data_path("curve_test_data/ol_curveB.curve"))
    +
    +    AddPlot("Curve", "ol_curveB")
    +    DrawPlots()
    +    c2 = CurveAttributes()
    +    c2.showLabels = 0
    +    c2.curveColorSource = c2.Custom
    +    c2.curveColor = (255, 0, 0, 255)
    +    SetPlotOptions(c2)
    +    AddOperator("Transform")
    +    ta2=TransformAttributes()
    +    ta2.doTranslate=1
    +    ta2.translateX=-0.35
    +    SetOperatorOptions(ta2)
    +    DrawPlots()
    +    DrawPlots()
    +    Test("curve_3_11")
    +
    +    c2.showLines = 0
    +    c2.showPoints = 1
    +    c2.pointFillMode = c2.Dynamic
    +    c2.symbol = c2.Circle
    +    c2.symbolDensity = 30
    +    SetPlotOptions(c2)
    +    DrawPlots()
    +    Test("curve_3_12")
    +
    +
    +    OpenDatabase(data_path("curve_test_data/ol_curveC.curve"))
    +
    +    AddPlot("Curve", "ol_curveC")
    +    DrawPlots()
    +    c3 = CurveAttributes()
    +    c3.showLabels = 0
    +    c3.showPoints = 1
    +    c3.curveColorSource = c2.Custom
    +    c3.curveColor = (0, 255, 0, 255)
    +    SetPlotOptions(c3)
    +    AddOperator("Transform")
    +    ta3=TransformAttributes()
    +    ta3.doTranslate=1
    +    ta3.translateX=0.25
    +    SetOperatorOptions(ta3)
    +    DrawPlots()
    +    Test("curve_3_13")
    +
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("curve_test_data/ol_curveA.curve"))
    +
    +    CloseDatabase(data_path("curve_test_data/ol_curveB.curve"))
    +
    +    CloseDatabase(data_path("curve_test_data/ol_curveB.curve"))
    +
    +
    +def TestTimeCue():
    +    TestSection("Time Cue")
    +    OpenDatabase(data_path("curve_test_data/ol_curveC.curve"))
    +
    +    AddPlot("Curve", "ol_curveC")
    +    c = CurveAttributes()
    +    c.showLabels = 0
    +    c.showPoints = 1
    +    c.curveColorSource = c.Custom
    +    c.curveColor = (0, 0, 0, 255)
    +    c.doBallTimeCue = 1
    +    c.timeCueBallSize = 1
    +    c.ballTimeCueColor = (0, 255, 0, 255)
    +    SetPlotOptions(c)
    +    DrawPlots()
    +
    +    v = GetViewCurve()
    +    v.domainCoords = (-0.25, 10.25)
    +    v.rangeCoords = (-0.25, 15.25)
    +    SetViewCurve(v)
    +
    +    SuppressQueryOutputOn()
    +    Query("NumNodes")
    +    n = int(GetQueryOutputValue())
    +    for i in range(n-1):
    +        c.timeForTimeCue = i
    +        SetPlotOptions(c)
    +        s = "curve_4_%02d" % i
    +        Test(s)
    +
    +    c.doLineTimeCue = 1
    +    c.lineTimeCueColor = c.ballTimeCueColor
    +    SetPlotOptions(c)
    +    s = "curve_4_%02d" % (n-1)
    +    Test(s)
    +
    +    c.lineTimeCueWidth = 3
    +    SetPlotOptions(c)
    +    s = "curve_4_%02d" % n
    +    Test(s)
    +    n = n+ 1
    +
    +    c.doCropTimeCue = 1
    +    SetPlotOptions(c)
    +    s = "curve_4_%02d" % n
    +    Test(s)
    +
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("curve_test_data/ol_curveC.curve"))
    +
    +def TestPolar():
    +    TestSection("Polar")
    +    OpenDatabase(data_path("curve_test_data/rose_theta_r_rads.ultra"))
    +    AddPlot("Curve", "rose")
    +    c = CurveAttributes()
    +    c.curveColorSource = c.Custom
    +    c.curveColor = (255, 0, 0, 255)
    +    c.showLabels = 0
    +    c.doLineTimeCue = 0
    +    c.doCropTimeCue = 0
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    ResetView()
    +    Test("polar_curve_01")
    +    c.polarToCartesian = 1
    +    c.polarCoordinateOrder = c.Theta_R
    +    c.angleUnits = c.Radians
    +    SetPlotOptions(c)
    +    ResetView()
    +    Test("polar_curve_02")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("curve_test_data/rose_theta_r_rads.ultra"))
    +
    +    OpenDatabase(data_path("curve_test_data/rose_r_theta_rads.ultra"))
    +    AddPlot("Curve", "rose")
    +    c = CurveAttributes()
    +    c.curveColorSource = c.Custom
    +    c.curveColor = (0, 0, 255, 255)
    +    c.showLabels = 0
    +    c.doLineTimeCue = 0
    +    c.doCropTimeCue = 0
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    ResetView()
    +    Test("polar_curve_03")
    +    c.polarToCartesian = 1
    +    c.polarCoordinateOrder = c.R_Theta
    +    c.angleUnits = c.Radians
    +    SetPlotOptions(c)
    +    ResetView()
    +    Test("polar_curve_04")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("curve_test_data/rose_r_theta_rads.ultra"))
    +
    +    OpenDatabase(data_path("curve_test_data/spiral_r_theta_deg.ultra"))
    +    AddPlot("Curve", "spiral")
    +    c.curveColor = (0, 255, 0, 255)
    +    c.polarToCartesian = 0
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("polar_curve_05")
    +    c.polarToCartesian = 1
    +    c.polarCoordinateOrder = c.R_Theta
    +    c.angleUnits = c.Degrees
    +    SetPlotOptions(c)
    +    ResetView()
    +    Test("polar_curve_06")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("curve_test_data/spiral_r_theta_deg.ultra"))
    +
    +    OpenDatabase(data_path("curve_test_data/circle.ultra"))
    +    AddPlot("Curve", "circle")
    +    c.curveColor = (255, 0, 255, 255)
    +    c.polarToCartesian = 0
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("polar_curve_07")
    +    c.polarToCartesian = 1
    +    c.polarCoordinateOrder = c.Theta_R
    +    c.angleUnits = c.Degrees
    +    SetPlotOptions(c)
    +    ResetView()
    +    Test("polar_curve_08")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("curve_test_data/circle.ultra"))
    +
    +def TestScale():
    +    TestSection("Scale")
    +    OpenDatabase(data_path("curve_test_data/need_scale.ultra"))
    +    AddPlot("Curve", "toobig")
    +    c = CurveAttributes()
    +    c.curveColorSource = c.Custom
    +    c.curveColor = (40, 165, 165, 255)
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("curve_scale_00")
    +
    +    t = TransformAttributes()
    +    t.doScale =1
    +    t.scaleX=1e-15
    +    t.scaleY=1e-15
    +    t.scaleZ=1e-15
    +    AddOperator("Transform")
    +    SetOperatorOptions(t)
    +    DrawPlots()
    +    ResetView()
    +
    +    Test("curve_scale_01")
    +
    +    RemoveLastOperator()
    +    ChangeActivePlotsVar("toosmall")
    +    DrawPlots()
    +    ResetView()
    +
    +    Test("curve_scale_02")
    +
    +    t.scaleX=1e+15
    +    t.scaleY=1e+15
    +    t.scaleZ=1e+15
    +    AddOperator("Transform")
    +    SetOperatorOptions(t)
    +    DrawPlots()
    +    ResetView()
    +
    +    Test("curve_scale_03")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("curve_test_data/need_scale.ultra"))
    +
    +def Main():
    +    Test1()
    +    TestOverlayCurves()
    +    TestPointsAndSymbols()
    +    TestTimeCue()
    +    TestPolar()
    +    TestScale()
    +
    +Main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_filledboundary.html b/2024-12-12-22:00/poodle_trunk_serial/plots_filledboundary.html new file mode 100644 index 000000000..3e78f1ddb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_filledboundary.html @@ -0,0 +1,84 @@ + +Results for plots/filledboundary.py + +

    Results of VisIt Regression Test - plots/filledboundary

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    fb_wireframe_010.000.00
    fb_wireframe_020.000.00
    fb_lines_010.000.00
    fb_lines_020.000.00
    fb_lines_030.000.00
    fb_lines_040.000.00
    fb_points_010.000.00
    fb_points_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_filledboundary_py.html b/2024-12-12-22:00/poodle_trunk_serial/plots_filledboundary_py.html new file mode 100644 index 000000000..7c8f86212 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_filledboundary_py.html @@ -0,0 +1,110 @@ +plots/filledboundary.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  filledboundary.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, single domain
    +#              plots     - FilledBoundary
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 11, 2020 
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# singlecolor.py and multicolor.py test the coloring functionality of FB plots,
    +# so those aspects won't be heavily tested here.
    +
    +TurnOffAllAnnotations()
    +
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +AddPlot("FilledBoundary", "mat1")
    +fb = FilledBoundaryAttributes()
    +
    +# test line settings, first with wireframe mode:
    +fb.wireframe = 1
    +SetPlotOptions(fb)
    +DrawPlots()
    +
    +# want to rotate the view to verify the lines are unlit
    +v = GetView3D()
    +viewNormal = (0, 0, -1)
    +SetView3D(v)
    +Test("fb_wireframe_01")
    +
    +fb.lineWidth = 3
    +SetPlotOptions(fb)
    +Test("fb_wireframe_02")
    +
    +# now with lines created by an operator/operator sequence
    +fb.lineWidth = 1
    +fb.wireframe = 0
    +SetPlotOptions(fb)
    +AddOperator("ThreeSlice")
    +ts = ThreeSliceAttributes()
    +ts.x = 0.5;
    +ts.y = 0.5;
    +ts.z = 0.5;
    +SetOperatorOptions(ts)
    +
    +AddOperator("ExternalSurface")
    +DrawPlots()
    +Test("fb_lines_01")
    +
    +# move ExternalSurface to before ThreeSlice
    +DemoteOperator(1)
    +fb.lineWidth = 4
    +SetPlotOptions(fb)
    +DrawPlots()
    +Test("fb_lines_02")
    +
    +# add another FB plot and play with opacity
    +AddPlot("FilledBoundary", "mat1")
    +fb2 = FilledBoundaryAttributes()
    +fb2.colorType = fb.ColorBySingleColor
    +fb2.singleColor=(255, 153, 0, 255)
    +fb2.opacity = 0.5
    +SetPlotOptions(fb2)
    +
    +DrawPlots()
    +Test("fb_lines_03")
    +DeleteAllPlots()
    +
    +
    +CloseDatabase(silo_data_path("rect3d.silo"))
    +
    +# Another way of producing lines in a FB plot: Add Edge operator
    +OpenDatabase(silo_data_path("noise.silo"))
    +AddPlot("FilledBoundary", "mat1")
    +fb2.opacity = 1
    +SetPlotOptions(fb2)
    +AddOperator("Edge")
    +DrawPlots()
    +ResetView()
    +v = GetView3D()
    +v.viewNormal = (0.0368258, 0.737081, -0.674801)
    +v.viewUp = (0.0382946, 0.673722, -0.737992)
    +SetView3D(v)
    +Test("fb_lines_04")
    +
    +# perhaps a bit contrived, but adding Edge and ThreeSlice operators together
    +# will generate points and allow testing of point glyphing functionality
    +AddOperator("ThreeSlice")
    +SetOperatorOptions(ts)
    +DrawPlots()
    +Test("fb_points_01")
    +
    +fb2.pointType = fb.Tetrahedron
    +fb2.pointSize = 1
    +SetPlotOptions(fb2)
    +Test("fb_points_02")
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("noise.silo"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_label.html b/2024-12-12-22:00/poodle_trunk_serial/plots_label.html new file mode 100644 index 000000000..b465ea3b9 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_label.html @@ -0,0 +1,546 @@ + +Results for plots/label.py + +

    Results of VisIt Regression Test - plots/label

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    General label plot features
    label_0_000.000.00
    label_0_010.000.00
    label_0_020.000.00
    label_0_030.000.00
    label_0_040.000.00
    label_0_050.000.00
    label_0_060.000.00
    label_0_070.000.00
    label_0_080.000.00
    label_0_090.000.00
    label_0_100.000.00
    label_0_110.000.00
    label_0_120.000.00
    label_0_130.000.00
    label_0_140.000.00
    label_0_150.000.00
    label_0_160.000.00
    label_0_170.000.00
    label_0_180.000.00
    label_0_190.000.00
    label_0_200.000.00
    Curvilinear 2D
    label_1_000.000.00
    label_1_010.000.00
    label_1_020.000.00
    label_1_030.000.00
    label_1_040.000.00
    label_1_050.000.00
    label_1_060.000.00
    Rectilinear 2D
    label_2_000.000.00
    label_2_010.000.00
    label_2_020.000.00
    label_2_030.000.00
    label_2_040.000.00
    label_2_050.000.00
    Unstructured 2D
    label_3_000.000.00
    label_3_010.000.00
    label_3_020.000.00
    label_3_030.000.00
    Testing slicing 3D data to 2D
    label_4_000.000.00
    label_4_010.000.00
    label_4_020.000.00
    label_4_030.000.00
    VTK with labels
    label_5_010.000.00
    Labelling subsets
    label_6_000.000.00
    label_6_010.000.00
    label_6_020.000.00
    label_6_030.000.00
    label_6_040.000.00
    label_6_050.000.00
    Labelling tensors
    label_7_000.000.00
    label_7_010.000.00
    label_7_020.000.00
    label_7_030.000.00
    label_7_040.000.00
    label_7_050.000.00
    Labelling in 3D with Z buffer
    label_8_000.000.00
    label_8_010.000.00
    label_8_020.000.00
    label_8_030.000.00
    label_8_040.000.00
    label_8_050.000.00
    label_8_060.000.00
    label_8_070.000.00
    label_8_080.000.00
    label_8_090.000.00
    label_8_100.000.00
    label_8_110.000.00
    Labelling sliced vectors
    label_9_000.000.00
    label_9_010.000.00
    label_9_020.000.00
    Test 3D zooming and logical mesh display
    label_10_000.000.00
    label_10_010.000.00
    label_10_020.000.00
    label_10_030.000.00
    label_10_040.000.00
    label_10_050.000.00
    label_10_060.000.00
    Test datasets with mixed variables
    label_11_000.000.00
    label_11_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_label_py.html b/2024-12-12-22:00/poodle_trunk_serial/plots_label_py.html new file mode 100644 index 000000000..82e148b68 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_label_py.html @@ -0,0 +1,1005 @@ +plots/label.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial
    +#  CLASSES: nightly
    +#
    +#  Test Case:  label.py
    +#
    +#  Tests:      Tests the label plot
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Oct 22 15:50:06 PST 2004
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Oct 27 15:08:27 PST 2004
    +#    I made the baseline images larger.
    +#
    +#    Mark C. Miller, Mon Apr 25 21:35:54 PDT 2005
    +#    I added tests for different data types
    +#
    +#    Kathleen Bonnell, Thu Jul 14 07:53:46 PDT 2005
    +#    Added TestLabeledVTK, to test reading and use of char data from VTK.
    +#
    +#    Brad Whitlock, Thu Aug 4 14:25:22 PST 2005
    +#    Added tests for labelling subsets and I also removed the single cell/node
    +#    stuff and replaced it with tests for setting individual cell/node
    +#    colors and text heights.
    +#
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +#    Brad Whitlock, Tue Nov 15 09:56:44 PDT 2005
    +#    Added another test for sliced vectors.
    +#
    +#    Brad Whitlock, Tue Apr 25 15:47:21 PST 2006
    +#    I added tests for making sure that Label plots of structured meshes
    +#    actually show their logical index nature by default. The tests also
    +#    show the Label plot with zooms that used to make the labels be incorrectly
    +#    offset from the other plots.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Alister Maguire, Mon Feb 26 10:22:04 PST 2018
    +#    Added TestMixedVariables for testing datasets with mixed variables.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Replace obsolete Label text attributes with new versions.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin(("Boxlib2D", "SAMRAI", "VTK"))
    +
    +
    +# Create label attributes with somewhat larger text.
    +def CreateLabelAttributes():
    +    L = LabelAttributes()
    +    L.textFont1.scale = 5
    +    L.textFont2.scale = 5
    +    return L
    +
    +def SaveTestImage(name):
    +    # Save these images somewhat larger than a regular test case image
    +    # since the images contain a lot of text.
    +    swa = SaveWindowAttributes()
    +    swa.width = 500
    +    swa.height = 500
    +    swa.screenCapture = 0
    +    Test(name, swa)
    +
    +def TestGeneralFeatures():
    +    TestSection("General label plot features")
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Label", "curvmesh2d")
    +    DrawPlots()
    +    SaveTestImage("label_0_00")
    +
    +    # Change the zoom a few times to see the number of labels adaptively change.
    +    v0 = View2DAttributes()
    +    v0.windowCoords = (-11.6154, 11.8294, -3.18886, 8.33075)
    +    v0.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v0.fullFrameActivationMode = v0.Off
    +    SetView2D(v0)
    +    SaveTestImage("label_0_01")
    +
    +    v1 = View2DAttributes()
    +    v1.windowCoords = (-1.0815, 1.29556, 1.98696, 3.15493)
    +    v1.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v1.fullFrameActivationMode = v1.Off
    +    SetView2D(v1)
    +    SaveTestImage("label_0_02")
    +
    +    v2 = View2DAttributes()
    +    v2.windowCoords = (1.78125, 3.00819, 0.209532, 0.812385)
    +    v2.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v2.fullFrameActivationMode = v2.Off
    +    AddPlot("Mesh", "curvmesh2d")
    +    DrawPlots()
    +    SetActivePlots(0)
    +    SetView2D(v2)
    +    SaveTestImage("label_0_03")
    +
    +    # Turn on nodes
    +    L = CreateLabelAttributes()
    +    L.showNodes = 1
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_04")
    +
    +    # Turn off cells
    +    L.showCells = 0
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_05")
    +
    +    # Try showing nodes and cells and alter their respective sizes
    +    L.showCells = 1
    +    L.showNodes = 1
    +    L.textFont1.scale = 6
    +    L.textFont2.scale = 5
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_06")
    +
    +    # Change the cell color.
    +    L.textFont1.color = (0,255,0,255)
    +    L.textFont1.useForegroundColor = 0
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_07")
    +
    +    # Change the node color
    +    L.textFont2.color = (100,10,255,255)
    +    L.textFont2.useForegroundColor = 0
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_08")
    +    L.textFont1.color = (0,255,0,255)
    +    L.textFont2.color = (0,255,0,255)
    +
    +    # Change the structured indices to regular indices
    +    L.showCells = 1
    +    L.labelDisplayFormat = L.Index
    +    L.textFont1.scale = 5
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_09")
    +
    +    # Make the text a little bigger
    +    L.textFont1.scale = 8
    +    L.textFont2.scale = 8
    +    L.showCells = 0
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_10")
    +
    +    # Test different text alignments
    +    L.textFont1.scale = 6
    +    L.textFont2.scale = 6
    +    L.horizontalJustification = L.Left
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_11")
    +    L.horizontalJustification = L.Right
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_12")
    +    L.horizontalJustification = L.HCenter
    +    L.verticalJustification = L.Top
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_13")
    +    L.verticalJustification = L.Bottom
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_14")
    +
    +    # Test changing the number of labels.
    +    L.verticalJustification = L.VCenter
    +    SetPlotOptions(L)
    +    ResetView()
    +    SaveTestImage("label_0_15")
    +    L.numberOfLabels = 40
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_16")
    +
    +    # Turn off restricting the number of labels.
    +    L.restrictNumberOfLabels = 0
    +    SetPlotOptions(L)
    +    SaveTestImage("label_0_17")
    +    DeleteAllPlots()
    +
    +    # test different data types from the file
    +    OpenDatabase(silo_data_path("wave0000.silo"))
    +
    +    AddPlot("Label", "chars")
    +    DrawPlots()
    +    v3d=GetView3D()
    +    v3d.viewNormal=(0, 1, 0)
    +    v3d.viewUp=(0, 0, -1)
    +    SetView3D(v3d)
    +    SaveTestImage("label_0_18")
    +    DeleteAllPlots()
    +
    +    AddPlot("Label", "shorts")
    +    DrawPlots()
    +    SaveTestImage("label_0_19")
    +    DeleteAllPlots()
    +
    +    AddPlot("Label", "ints")
    +    DrawPlots()
    +    SaveTestImage("label_0_20")
    +    ResetView()
    +    DeleteAllPlots()
    +
    +def TestCurvilinear2D():
    +    TestSection("Curvilinear 2D")
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    AddPlot("Mesh", "curvmesh2d")
    +    m = MeshAttributes()
    +    m.opaqueMode = m.Auto
    +    SetPlotOptions(m)
    +    # Do a point variable
    +    AddPlot("Label", "u")
    +    DrawPlots()
    +    ResetView()
    +    SaveTestImage("label_1_00")
    +
    +    # Make the labels a little larger and zoom in on the cells
    +    v0 = View2DAttributes()
    +    v0.windowCoords = (-0.632297, 0.483674, 3.38963, 4.57713)
    +    v0.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v0.fullFrameActivationMode = v0.Off
    +    SetView2D(v0)
    +    L = CreateLabelAttributes()
    +    L.textFont1.scale = 5
    +    L.textFont2.scale = 5
    +    SetPlotOptions(L)
    +    SaveTestImage("label_1_01")
    +
    +    # Change the a cell centered variable
    +    ChangeActivePlotsVar("d")
    +    SaveTestImage("label_1_02")
    +
    +    # Change to a node centered vector variable
    +    v0.windowCoords = (-0.662647, 0.179177, 3.52611, 4.4219)
    +    SetView2D(v0)
    +    ChangeActivePlotsVar("vel")
    +    SaveTestImage("label_1_03")
    +
    +    # Change to a mesh variable
    +    ChangeActivePlotsVar("curvmesh2d")
    +    L.showNodes = 1
    +    SetPlotOptions(L)
    +    SaveTestImage("label_1_04")
    +
    +    # Turn off a material
    +    v0.windowCoords = (-1.73904, -0.385797, 2.20216, 3.64214)
    +    SetView2D(v0)
    +    SaveTestImage("label_1_05")
    +    SetActivePlots((0,1,2))
    +    TurnMaterialsOff("2")
    +    SaveTestImage("label_1_06")
    +    DeleteAllPlots()
    +
    +def TestRectilinear2D():
    +    TestSection("Rectilinear 2D")
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    AddPlot("Pseudocolor", "ascii")
    +    AddPlot("Mesh", "quadmesh2d")
    +    m = MeshAttributes()
    +    m.opaqueMode = m.Auto
    +    SetPlotOptions(m)
    +    AddPlot("Label", "ascii")
    +    DrawPlots()
    +    ResetView()
    +    v0 = View2DAttributes()
    +    v0.windowCoords = (0.425121, 0.574879, 0.566829, 0.766505)
    +    v0.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v0.fullFrameActivationMode = v0.Off
    +    SetView2D(v0)
    +    L = CreateLabelAttributes()
    +    L.textFont1.scale = 5
    +    L.textFont2.scale = 5
    +    SetPlotOptions(L)
    +    SaveTestImage("label_2_00")
    +
    +    # Change to a cell centered float variable.
    +    ChangeActivePlotsVar("d")
    +    SaveTestImage("label_2_01")
    +
    +    # Change to a node centered variable
    +    ChangeActivePlotsVar("u")
    +    SaveTestImage("label_2_02")
    +
    +    # Change to a node centered vector variable
    +    ChangeActivePlotsVar("vel")
    +    v1 = View2DAttributes()
    +    v1.windowCoords = (0.478575, 0.543393, 0.650721, 0.737145)
    +    SetView2D(v1)
    +    SaveTestImage("label_2_03")
    +
    +    # Change to the mesh variable
    +    SetActivePlots((0,2))
    +    DeleteActivePlots()
    +    AddPlot("FilledBoundary", "mat1")
    +    AddPlot("Label", "quadmesh2d")
    +    DrawPlots()
    +    L.showNodes = 1
    +    L.textFont1.scale = 5
    +    L.textFont2.scale = 5
    +    SetPlotOptions(L)
    +    SaveTestImage("label_2_04")
    +
    +    # Turn off a material
    +    SetActivePlots((0,1,2))
    +    TurnMaterialsOff("16")
    +    SaveTestImage("label_2_05")
    +    DeleteAllPlots()
    +
    +
    +def TestUnstructured2D():
    +    TestSection("Unstructured 2D")
    +    OpenDatabase(silo_data_path("ucd2d.silo"))
    +
    +    AddPlot("Mesh", "ucdmesh2d")
    +    m = MeshAttributes()
    +    m.opaqueMode = m.Auto
    +    SetPlotOptions(m)
    +    AddPlot("Label", "ucdmesh2d")
    +    L = CreateLabelAttributes()
    +    L.showNodes = 1
    +    L.textFont1.scale = 6
    +    L.textFont2.scale = 6
    +    L.textFont1.color = (255,0,0,255)
    +    L.textFont2.color = (255,0,0,255)
    +    L.textFont1.useForegroundColor = 0
    +    L.textFont2.useForegroundColor = 0
    +    L.restrictNumberOfLabels = 0
    +    SetPlotOptions(L)
    +    DrawPlots()
    +    v0 = View2DAttributes()
    +    v0.windowCoords = (-0.154956, 4.15496, -0.154956, 4.15496)
    +    v0.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v0.fullFrameActivationMode = v0.Off
    +    SetView2D(v0)
    +    SaveTestImage("label_3_00")
    +
    +    # Change to a nodal variable
    +    ChangeActivePlotsVar("d")
    +    SaveTestImage("label_3_01")
    +
    +    # Change to a cell centered variable
    +    ChangeActivePlotsVar("p")
    +    SaveTestImage("label_3_02")
    +
    +    # Change to a mesh variable and remove a material.
    +    ChangeActivePlotsVar("ucdmesh2d")
    +    AddPlot("FilledBoundary", "mat1")
    +    DrawPlots()
    +    L.textFont1.useForegroundColor = 1
    +    L.textFont2.useForegroundColor = 1
    +    SetPlotOptions(L)
    +    SetActivePlots((0,1,2))
    +    TurnMaterialsOff("2")
    +    SaveTestImage("label_3_03")
    +    DeleteAllPlots()
    +
    +def TestSlice():
    +    TestSection("Testing slicing 3D data to 2D")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Mesh", "Mesh")
    +    m = MeshAttributes()
    +    m.opaqueMode = m.Auto
    +    SetPlotOptions(m)
    +    AddPlot("Pseudocolor", "chromeVf")
    +    AddPlot("Label", "chromeVf")
    +    SetActivePlots((0,1,2))
    +    # Add a slice operator to all of the plots
    +    AddOperator("Slice")
    +    s = SliceAttributes()
    +    s.normal = (0,0,1)
    +    s.upAxis = (0,1,0)
    +    s.project2d = 0
    +    SetOperatorOptions(s)
    +    # Make the labels a little bigger
    +    L = CreateLabelAttributes()
    +    L.textFont1.scale = 7
    +    L.textFont2.scale = 7
    +    L.depthTestMode = L.LABEL_DT_NEVER
    +    SetPlotOptions(L)
    +    DrawPlots()
    +
    +    # Look at the slice from the front
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.550782, 0.318825, 0.771355)
    +    v0.focus = (0, 0, 0)
    +    v0.viewUp = (0.200365, 0.94765, -0.248624)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 17.3205
    +    v0.nearPlane = -34.641
    +    v0.farPlane = 34.641
    +    v0.imagePan = (0, 0)
    +    v0.imageZoom = 1.82449
    +    v0.perspective = 0
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0, 0, 0)
    +    SetView3D(v0)
    +    SaveTestImage("label_4_00")
    +
    +    # Look at the slice from the back. It will only be visible if the
    +    # quantized normals were thrown out.
    +    v1 = View3DAttributes()
    +    v1.viewNormal = (-0.681715, 0.349442, -0.642771)
    +    v1.focus = (0, 0, 0)
    +    v1.viewUp = (0.26946, 0.936726, 0.223465)
    +    v1.viewAngle = 30
    +    v1.parallelScale = 17.3205
    +    v1.nearPlane = -34.641
    +    v1.farPlane = 34.641
    +    v1.imagePan = (0, 0)
    +    v1.imageZoom = 1.82449
    +    v1.perspective = 0
    +    v1.eyeAngle = 2
    +    v1.centerOfRotationSet = 0
    +    v1.centerOfRotation = (0, 0, 0)
    +    SetView3D(v1)
    +    SaveTestImage("label_4_01")
    +
    +    # Project the slice to 2D
    +    s.project2d = 1
    +    SetOperatorOptions(s)
    +    v2 = View2DAttributes()
    +    v2.windowCoords = (-8.64231, -5.11567, 2.53613, 6.24948)
    +    SetView2D(v2)
    +    SaveTestImage("label_4_02")
    +
    +    # Set the slice normal so it does not line up with an axis.
    +    s.normal = (1,2,3)
    +    SetOperatorOptions(s)
    +    SaveTestImage("label_4_03")
    +    DeleteAllPlots()
    +
    +def TestLabeledVTK():
    +    TestSection("VTK with labels")
    +    OpenDatabase(data_path("vtk_test_data/labeledBox.vtk"))
    +
    +    AddPlot("Mesh", "mesh")
    +    AddPlot("Label", "cellLabel")
    +    AddPlot("Label", "nodeLabels")
    +    DrawPlots()
    +    SetActivePlots((1, 2))
    +    l = LabelAttributes()
    +    l.textFont1.scale = 8
    +    l.textFont2.scale = 8
    +    l.depthTestMode = l.LABEL_DT_NEVER
    +    SetPlotOptions(l)
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.826308, 0.365749, 0.428303)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0.262408, 0.92288, -0.28184)
    +    v.parallelScale = 1.55885
    +    v.nearPlane = -3.11769
    +    v.farPlane  =  3.11769
    +    v.imageZoom = 0.941919
    +    SetView3D(v)
    +
    +    SaveTestImage("label_5_01")
    +    DeleteAllPlots()
    +
    +def TestLabellingSubsets():
    +    TestSection("Labelling subsets")
    +    OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +    AddPlot("Mesh", "mesh")
    +    AddPlot("Subset", "blocks")
    +    AddPlot("Label", "blocks")
    +    l = LabelAttributes()
    +    l.restrictNumberOfLabels = 0
    +    l.textFont1.scale = 5
    +    l.depthTestMode = l.LABEL_DT_NEVER
    +    SetPlotOptions(l)
    +    SetActivePlots((0,1,2))
    +    TurnDomainsOff()
    +    TurnDomainsOn(("domain1","domain10","domain19"))
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (0.465057, -0.448026, -0.763541)
    +    v.focus = (0.166667, 0.166667, 0.5)
    +    v.viewUp = (-0.243345, -0.893956, 0.376333)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.552771
    +    v.nearPlane = -1.10554
    +    v.farPlane = 1.10554
    +    v.imagePan = (0.0545619, 0.050939)
    +    v.imageZoom = 1.32578
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.166667, 0.166667, 0.5)
    +    SetView3D(v)
    +    SaveTestImage("label_6_00")
    +
    +    SetActivePlots((1,2))
    +    ChangeActivePlotsVar("domains")
    +    SaveTestImage("label_6_01")
    +
    +    SetActivePlots(1)
    +    DeleteActivePlots()
    +    AddPlot("FilledBoundary", "mat")
    +    SetActivePlots(1)
    +    DrawPlots()
    +    ChangeActivePlotsVar("mat")
    +    SaveTestImage("label_6_02")
    +
    +    # Try an AMR dataset
    +    DeleteAllPlots()
    +    OpenDatabase(data_path("boxlib_test_data/2D/plt0822/Header"))
    +
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("Subset", "patches")
    +    s = SubsetAttributes()
    +    s.legendFlag = 0
    +    SetPlotOptions(s)
    +    AddPlot("Label", "patches")
    +    l = LabelAttributes()
    +    l.restrictNumberOfLabels = 0
    +    l.textFont1.scale = 4.7
    +    SetPlotOptions(l)
    +    DrawPlots()
    +    v = View2DAttributes()
    +    v.windowCoords = (0.0126663, 0.0146908, 0.115281, 0.117298)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +    v.fullFrameAutoThreshold = 100
    +    SetView2D(v)
    +    SaveTestImage("label_6_03")
    +
    +    SetActivePlots((1,2))
    +    ChangeActivePlotsVar("levels")
    +    v = View2DAttributes()
    +    v.windowCoords = (0.0250949, 0.0437515, 0.11359, 0.132218)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +    v.fullFrameAutoThreshold = 100
    +    SetView2D(v)
    +    SetActivePlots(2)
    +    l.textFont1.scale = 4
    +    SetPlotOptions(l)
    +    SaveTestImage("label_6_04")
    +    DeleteAllPlots()
    +
    +    # Try a dataset with real material names.
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("FilledBoundary", "mat1")
    +    AddPlot("Label", "mat1")
    +    l = LabelAttributes()
    +    l.textFont1.scale = 5
    +    SetPlotOptions(l)
    +    SetActivePlots((0,1,2))
    +    AddOperator("Slice")
    +    DrawPlots()
    +    v = View2DAttributes()
    +    v.windowCoords = (-9.37363, -6.58974, -2.85531, -0.327839)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +    v.fullFrameAutoThreshold = 100
    +    SetView2D(v)
    +    SaveTestImage("label_6_05")
    +    DeleteAllPlots()
    +
    +
    +def TestLabellingTensors():
    +    TestSection("Labelling tensors")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("Tensor", "grad_tensor")
    +    t = TensorAttributes()
    +    t.useStride = 1
    +    SetPlotOptions(t)
    +    AddPlot("Label", "grad_tensor")
    +    SetActivePlots((0,1,2))
    +    AddOperator("Slice")
    +    DrawPlots()
    +    ResetView()
    +    SaveTestImage("label_7_00")
    +
    +    v = View2DAttributes()
    +    v.windowCoords = (-9.13799, -4.37695, -7.71782, -2.97379)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +    v.fullFrameAutoThreshold = 100
    +    SetView2D(v)
    +    SaveTestImage("label_7_01")
    +
    +    v.windowCoords = (-8.50106, -7.83502, -6.43747, -5.77381)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +    v.fullFrameAutoThreshold = 100
    +    SetView2D(v)
    +    SaveTestImage("label_7_02")
    +
    +    # Now see how changing the text height affects binning
    +    ResetView()
    +    l = LabelAttributes()
    +    l.textFont1.scale = 3
    +    SetActivePlots(2)
    +    SetPlotOptions(l)
    +    SaveTestImage("label_7_03")
    +
    +    l.textFont1.scale = 6
    +    SetPlotOptions(l)
    +    SaveTestImage("label_7_04")
    +
    +    SetView2D(v)
    +    SaveTestImage("label_7_05")
    +
    +    DeleteAllPlots()
    +
    +def TestLabelling3D():
    +    TestSection("Labelling in 3D with Z buffer")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "airVf")
    +    AddPlot("Label", "airVf")
    +    L = LabelAttributes()
    +    L.restrictNumberOfLabels = 0
    +    L.depthTestMode = L.LABEL_DT_NEVER
    +    SetPlotOptions(L)
    +    DrawPlots()
    +    ResetView()
    +    SaveTestImage("label_8_00")
    +
    +    # Turn on depth testing
    +    L.depthTestMode = L.LABEL_DT_AUTO
    +    SetPlotOptions(L)
    +    SaveTestImage("label_8_01")
    +
    +    # Apply an Isosurface operator to make things really convoluted
    +    SetActivePlots((0,1))
    +    AddOperator("Isosurface")
    +    iso = IsosurfaceAttributes()
    +    iso.contourNLevels = 1
    +    iso.variable="hardyglobal"
    +    SetOperatorOptions(iso)
    +    v = View3DAttributes()
    +    v.viewNormal = (0.883239, -0.244693, -0.400019)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0.435303, 0.745036, 0.505404)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (0.022398, -0.134568)
    +    v.imageZoom = 3.35882
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +    DrawPlots()
    +    SaveTestImage("label_8_02")
    +
    +    #
    +    # Try labelling a mesh that has interior stuff
    +    #
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "speed")
    +    AddPlot("Mesh", "mesh1")
    +    AddPlot("Label", "mesh1")
    +    L = CreateLabelAttributes()
    +    L.restrictNumberOfLabels = 0
    +    L.drawLabelsFacing = L.FrontAndBack
    +    L.depthTestMode = L.LABEL_DT_AUTO
    +    SetPlotOptions(L)
    +    DrawPlots()
    +    ResetView()
    +    v.viewNormal = (-0.735192, 0.371514, 0.566984)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0.2695, 0.927683, -0.258407)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1.60959
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +    SaveTestImage("label_8_03")
    +
    +    v1 = View3DAttributes()
    +    v1.viewNormal = (0, 0, 1)
    +    v1.focus = (0, 0, 0)
    +    v1.viewUp = (0, 1, 0)
    +    v1.viewAngle = 30
    +    v1.parallelScale = 17.3205
    +    v1.nearPlane = -34.641
    +    v1.farPlane = 34.641
    +    v1.imagePan = (0, 0)
    +    v1.imageZoom = 5.06081
    +    v1.perspective = 1
    +    v1.eyeAngle = 2
    +    v1.centerOfRotationSet = 0
    +    v1.centerOfRotation = (0, 0, 0)
    +    SetView3D(v1)
    +    SaveTestImage("label_8_04")
    +
    +    # Turn on node labels
    +    L.showNodes = 1
    +    SetPlotOptions(L)
    +    SaveTestImage("label_8_05")
    +
    +    # Label a variable that would normally have labels that protrude into
    +    # the dataset
    +    ChangeActivePlotsVar("speed")
    +    ResetView()
    +    SaveTestImage("label_8_06")
    +
    +    SetView3D(v)
    +    SaveTestImage("label_8_07")
    +    DeleteAllPlots()
    +
    +    #
    +    # Try labelling a 3D AMR dataset
    +    #
    +    OpenDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +    AddPlot("Pseudocolor", "Primitive Var _number_0")
    +    AddPlot("Mesh", "amr_mesh")
    +    AddPlot("Label", "levels")
    +    L = CreateLabelAttributes()
    +    L.showNodes = 1
    +    L.showCells = 0
    +    L.restrictNumberOfLabels = 0
    +    L.depthTestMode = L.LABEL_DT_NEVER
    +    SetPlotOptions(L)
    +    DrawPlots()
    +    v2 = View3DAttributes()
    +    v2.viewNormal = (-0.643521, -0.624962, -0.441931)
    +    v2.focus = (15, 10, 10)
    +    v2.viewUp = (0.320552, 0.304253, -0.897038)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 20.6155
    +    v2.nearPlane = -41.2311
    +    v2.farPlane = 41.2311
    +    v2.imagePan = (-0.0412674, 0.141248)
    +    v2.imageZoom = 1.871
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (15, 10, 10)
    +    SetView3D(v2)
    +    SaveTestImage("label_8_08")
    +
    +    # Turn on zbuffering
    +    L.depthTestMode = L.LABEL_DT_AUTO
    +    SetPlotOptions(L)
    +    SaveTestImage("label_8_09")
    +
    +    # Restrict the number of labels
    +    L.restrictNumberOfLabels = 1
    +    L.numberOfLabels = 900
    +    L.depthTestMode = L.LABEL_DT_NEVER
    +    SetPlotOptions(L)
    +    SaveTestImage("label_8_10")
    +
    +    # Turn on zbuffering
    +    L.depthTestMode = L.LABEL_DT_AUTO
    +    SetPlotOptions(L)
    +    SaveTestImage("label_8_11")
    +    DeleteAllPlots()
    +
    +def TestSlicedVectors():
    +    TestSection("Labelling sliced vectors")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("Label", "grad")
    +    L = CreateLabelAttributes()
    +    L.depthTestMode = L.LABEL_DT_NEVER
    +    SetPlotOptions(L)
    +    SetActivePlots((0,1))
    +    AddOperator("Slice")
    +    DrawPlots()
    +
    +    v = View2DAttributes()
    +    v.windowCoords = (-0.370383, 0.566874, -0.275836, 0.66177)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +    v.fullFrameAutoThreshold = 100
    +    SetView2D(v)
    +    SaveTestImage("label_9_00")
    +
    +    AddPlot("Vector", "grad")
    +    vec = VectorAttributes()
    +    vec.useStride = 1
    +    vec.scale = 0.5
    +    SetPlotOptions(vec)
    +    AddOperator("Slice")
    +    SetActivePlots((0,1,2))
    +    s = SliceAttributes()
    +    s.project2d = 0
    +    SetOperatorOptions(s)
    +    DrawPlots()
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.332304, 0.933436, 0.135169)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (-0.353747, 0.00950422, -0.935293)
    +    v.viewAngle = 30
    +    v.parallelScale = 14.1421
    +    v.nearPlane = -28.2843
    +    v.farPlane = 28.2843
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 17.3567
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +    SaveTestImage("label_9_01")
    +
    +    # Test a case where having the vector be an expression was causing
    +    # VisIt to mess up.
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Mesh", "quadmesh3d")
    +    AddPlot("Label", "vel")
    +    L = LabelAttributes()
    +    L.textFont1.scale = 6
    +    L.textFont1.color = (255,0,0,255)
    +    L.textFont1.useForegroundColor = 0
    +    SetPlotOptions(L)
    +    SetActivePlots((0,1))
    +    AddOperator("Slice")
    +    s = SliceAttributes()
    +    s.originType = s.Intercept
    +    s.originIntercept = 0
    +    s.axisType = s.YAxis
    +    s.project2d = 1
    +    SetOperatorOptions(s)
    +    DrawPlots()
    +    v = View2DAttributes()
    +    v.windowCoords = (0.0476715, 0.155784, 0.874164, 0.991825)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.fullFrameActivationMode = v.Off  # On, Off, Auto
    +    v.fullFrameAutoThreshold = 100
    +    SetView2D(v)
    +    SaveTestImage("label_9_02")
    +
    +def TestRectilinearLogicalDisplay():
    +    TestSection("Test 3D zooming and logical mesh display")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("Label", "Mesh")
    +    L = CreateLabelAttributes()
    +    SetPlotOptions(L)
    +    DrawPlots()
    +
    +    # Also zoom in using some views obtained from rubber-band style
    +    # views that would have made the labels migrate from their
    +    # correct locations in older versions of VisIt.
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.566084, -0.288713, 0.772135)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (-0.357175, 0.930078, 0.0859103)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (0.104981, 0.174394)
    +    v.imageZoom = 12.8916
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +    SaveTestImage("label_10_00")
    +
    +    # Make it be displayed using index style numbers.
    +    L.labelDisplayFormat = L.Index
    +    SetPlotOptions(L)
    +    SaveTestImage("label_10_01")
    +
    +    # Make sure the labels are in the right place when we tell VisIt
    +    # to draw them all instead of binning.
    +    L.restrictNumberOfLabels = 0
    +    SetPlotOptions(L)
    +    SaveTestImage("label_10_02")
    +
    +    # Try a nodal variable.
    +    ChangeActivePlotsVar("hardyglobal")
    +    SaveTestImage("label_10_03")
    +
    +    # Try a 2D rectilinear mesh
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "hgslice")
    +    AddPlot("Mesh", "Mesh2D")
    +    AddPlot("Label", "Mesh2D")
    +    L = CreateLabelAttributes()
    +    SetPlotOptions(L)
    +    DrawPlots()
    +
    +    v1 = GetView2D()
    +    v1.windowCoords = (-7.52178, -5.09684, -8.8535, -6.43779)
    +    v1.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    SetView2D(v1)
    +    SaveTestImage("label_10_04")
    +
    +    # Try a 3D curvilinear mesh
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +    AddPlot("Mesh", "curvmesh3d")
    +    m = MeshAttributes()
    +    m.opaqueMode = m.On
    +    SetPlotOptions(m)
    +    AddPlot("Label", "curvmesh3d")
    +    L = CreateLabelAttributes()
    +    SetPlotOptions(L)
    +    DrawPlots()
    +    v2 = GetView3D()
    +    v2.viewNormal = (0.405434, 0.494827, 0.768615)
    +    v2.focus = (0, 2.5, 15)
    +    v2.viewUp = (-0.296176, 0.866572, -0.401662)
    +    v2.viewAngle = 30
    +    v2.parallelScale = 16.0078
    +    v2.nearPlane = -32.0156
    +    v2.farPlane = 32.0156
    +    v2.imagePan = (0.129303, 0.36944)
    +    v2.imageZoom = 43.2454
    +    v2.perspective = 1
    +    v2.eyeAngle = 2
    +    v2.centerOfRotationSet = 0
    +    v2.centerOfRotation = (0, 2.5, 15)
    +    SetView3D(v2)
    +    SaveTestImage("label_10_05")
    +
    +    ChangeActivePlotsVar("u")
    +    SaveTestImage("label_10_06")
    +    DeleteAllPlots()
    +
    +def TestMixedVariables():
    +    TestSection("Test datasets with mixed variables")
    +    DeleteAllPlots()
    +
    +    ma = GetMaterialAttributes()
    +    ma.forceMIR = 1
    +    SetMaterialAttributes(ma)
    +
    +    OpenDatabase(silo_data_path("specmix_ucd.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("Label", "d")
    +    L = CreateLabelAttributes()
    +    SetPlotOptions(L)
    +    DrawPlots()
    +
    +    View2DAtts = View2DAttributes()
    +    View2DAtts.windowCoords = (-10.9988, -8.83259, 1.01139, 3.18029)
    +    View2DAtts.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    SetView2D(View2DAtts)
    +
    +    SaveTestImage("label_11_00")
    +
    +    View2DAtts = View2DAttributes()
    +    View2DAtts.windowCoords = (0.474811, 3.09596, 1.20289, 3.82726)
    +    View2DAtts.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    SetView2D(View2DAtts)
    +
    +    SaveTestImage("label_11_01")
    +
    +    DeleteAllPlots()
    +
    +def main():
    +    TestGeneralFeatures()
    +    TestCurvilinear2D()
    +    TestRectilinear2D()
    +    TestUnstructured2D()
    +    TestSlice()
    +    TestLabeledVTK()
    +    TestLabellingSubsets()
    +    TestLabellingTensors()
    +    TestLabelling3D()
    +    TestSlicedVectors()
    +    TestRectilinearLogicalDisplay()
    +    TestMixedVariables()
    +
    +# Run all of the tests
    +main()
    +
    +# Exit the test
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_mesh.html b/2024-12-12-22:00/poodle_trunk_serial/plots_mesh.html new file mode 100644 index 000000000..2435c1b4d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_mesh.html @@ -0,0 +1,249 @@ + +Results for plots/mesh.py + +

    Results of VisIt Regression Test - plots/mesh

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Testing random color mode
    mesh_random_color_010.000.00
    mesh_random_color_020.000.00
    mesh_random_color_030.000.00
    Mesh plot of a 3D curvilinear mesh
    mesh_curve_010.000.00
    mesh_curve_020.000.00
    mesh_curve_030.000.00
    Mesh plot of a point mesh
    mesh_point_010.000.00
    mesh_point_020.000.00
    mesh_point_030.000.00
    mesh_point_040.000.00
    mesh_point_050.000.00
    mesh_point_060.000.00
    mesh_point_070.000.00
    mesh_point_080.000.00
    mesh_point_090.000.00
    mesh_point_100.000.00
    mesh_point_110.000.00
    mesh_point_120.000.00
    Mesh plot of a 3D unstructured mesh
    mesh_globe_010.000.00
    mesh_globe_020.000.00
    mesh_globe_030.000.00
    mesh_globe_040.000.00
    Mesh plot of a 3D rectilinear mesh
    mesh_rect3d_010.000.00
    Testing Mesh plot's opaque flag
    mesh_opaque_010.000.00
    mesh_opaque_020.000.00
    mesh_opaque_030.000.00
    mesh_opaque_040.000.00
    mesh_opaque_050.000.00
    mesh_opaque_060.000.00
    mesh_opaque_070.000.00
    mesh_opaque_080.000.00
    Testing custom color mode
    mesh_custom_color_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_mesh_c.html b/2024-12-12-22:00/poodle_trunk_serial/plots_mesh_c.html new file mode 100644 index 000000000..be8eac337 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_mesh_c.html @@ -0,0 +1,249 @@ + +Results for plots/mesh_c.py + +

    Results of VisIt Regression Test - plots/mesh_c

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Testing random color mode
    mesh_random_color_010.000.00
    mesh_random_color_020.000.00
    mesh_random_color_030.000.00
    Mesh plot of a 3D curvilinear mesh
    mesh_curve_010.000.00
    mesh_curve_020.000.00
    mesh_curve_030.000.00
    Mesh plot of a point mesh
    mesh_point_010.000.00
    mesh_point_020.000.00
    mesh_point_030.000.00
    mesh_point_040.000.00
    mesh_point_050.000.00
    mesh_point_060.000.00
    mesh_point_070.000.00
    mesh_point_080.000.00
    mesh_point_090.000.00
    mesh_point_100.000.00
    mesh_point_110.000.00
    mesh_point_120.000.00
    Mesh plot of a 3D unstructured mesh
    mesh_globe_010.000.00
    mesh_globe_020.000.00
    mesh_globe_030.000.00
    mesh_globe_040.000.00
    Mesh plot of a 3D rectilinear mesh
    mesh_rect3d_010.000.00
    Testing Mesh plot's opaque flag
    mesh_opaque_010.000.00
    mesh_opaque_020.000.00
    mesh_opaque_030.000.00
    mesh_opaque_040.000.00
    mesh_opaque_050.000.00
    mesh_opaque_060.000.00
    mesh_opaque_070.000.00
    mesh_opaque_080.000.00
    Testing custom color mode
    mesh_custom_color_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_mesh_c_py.html b/2024-12-12-22:00/poodle_trunk_serial/plots_mesh_c_py.html new file mode 100644 index 000000000..4b5c4c7b6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_mesh_c_py.html @@ -0,0 +1,21 @@ +plots/mesh_c.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  mesh_c.py
    +#
    +#  Tests:      Runs the mesh.py test but with compression turned on.
    +#              mesh.py tests for existence of 'useCompression' variable
    +#              and turns on compression if it exists. We expect identical
    +#              output from the tests but because this py file has a different
    +#              name, it will generate them a subdir by the name 'mesh_c'
    +#              and look for baselines likewise. So, in baseline dir,
    +#              the mesh_c dir is a symlink to scalable.
    +#
    +#  Programmer: Mark C. Miller
    +#  Date:       19Aug08
    +#
    +# ----------------------------------------------------------------------------
    +
    +useCompression = 1
    +Source(tests_path("plots","mesh.py"))
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_mesh_py.html b/2024-12-12-22:00/poodle_trunk_serial/plots_mesh_py.html new file mode 100644 index 000000000..cc67edd3c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_mesh_py.html @@ -0,0 +1,446 @@ +plots/mesh.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  mesh.py
    +#
    +#  Tests:      mesh      - 3D structured, single domain
    +#                        - 3D point, single domain
    +#                        - 2D point, single domain
    +#                        - 3D unstructured, single domain
    +#              plots     - mesh, pseudocolor
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Kathleen Bonnell
    +#  Date:       September 03, 2003
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Sep  4 11:10:11 PDT 2003
    +#    Change the way MeshPlot's opaque mode is set (now an enum, not a bool).
    +#
    +#    Kathleen Bonnell, Thu Sep  4 11:10:11 PDT 2003
    +#    Added two test for new MeshAttribute 'showInternal':  mesh_globe_04
    +#    and mesh_rect3d_01.
    +#
    +#    Brad Whitlock, Thu Apr 8 12:50:21 PDT 2004
    +#    Added tests to test the auto mesh opacity flag.
    +#
    +#    Jeremy Meredith, Tue May  4 12:41:49 PDT 2004
    +#    Added test for unglyphed (i.e. GL_POINT) point meshes.
    +#
    +#    Kathleen Bonnell, Tue Nov  2 16:20:55 PST 2004
    +#    Removed opaque-mode portion of mesh_point_01, as opaque-mode no longer
    +#    applies to Mesh plots of Point meshes.
    +#
    +#    Mark C. Miller, Tue Aug 19 17:31:29 PDT 2008
    +#    Add code to permit the test to be run with compression as well.
    +#
    +#    Mark C. Miller, Wed Jan 21 10:00:10 PST 2009
    +#    Removed silly comment regarding global annotation object 'a'
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Wed Jun 10 17:39:23 PDT 2020
    +#    Move RandomColor test to be first test run so that changes in mesh plot
    +#    instances don't randomly make the test fail.
    +#
    +#    Kathleen Biagas, Thu Jun 11 07:57:10 PDT 2020
    +#    Add more data files to PointMesh test, to ensure data that doesnt' set
    +#    topological dimension to 0, and data with mixed topology can still do
    +#    point glyphing and changes point size.
    +#
    +#    Kathleen Biagas, Wed Feb 16 09:15:45 PST 2022
    +#    Replace use of meshatts 'foregroundFlag', 'backgroundFlag' with
    +#    'meshColorSource' and 'opaqueColorSource' respectively.
    +#
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Remove obsolete mesh att 'lineStyle'.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def TestCurve():
    +    TestSection("Mesh plot of a 3D curvilinear mesh")
    +    OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +    AddPlot("Mesh", "curvmesh3d")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0.37, 0.48, 0.79)
    +    v.focus = (0, 2.5, 15)
    +    v.viewUp = (-0.18, 0.87, -0.45)
    +    v.imagePan = (0.08, 0.08)
    +    v.imageZoom = 2.0
    +    SetView3D(v)
    +
    +    Test("mesh_curve_01")
    +
    +    # Change color
    +    # and add a PC Plot.
    +    m = MeshAttributes()
    +    m.opaqueColorSource = m.OpaqueCustom
    +    m.opaqueColor = (0, 122, 200, 255)
    +    SetPlotOptions(m)
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    Test("mesh_curve_02")
    +
    +    SetActivePlots(0)
    +    SetPlotOptions(m)
    +    SetActivePlots(1)
    +    HideActivePlots()
    +    Test("mesh_curve_03")
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("curv3d.silo"))
    +
    +def TestPointMesh():
    +    TestSection("Mesh plot of a point mesh")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "PointVar")
    +    p = PseudocolorAttributes()
    +    p.pointType = p.Box
    +    p.pointSize = 1.0
    +    SetPlotOptions(p)
    +
    +    DrawPlots()
    +    Test("mesh_point_01")
    +
    +    p.pointType = p.Icosahedron
    +    p.pointSize = 1.5
    +    SetPlotOptions(p)
    +    DrawPlots()
    +    Test("mesh_point_02")
    +
    +    DeleteActivePlots()
    +
    +    AddPlot("Mesh", "PointMesh")
    +    m = MeshAttributes()
    +    m.meshColorSource = m.MeshCustom
    +    m.meshColor = (0, 122, 200, 255)
    +    m.pointSize = 1.5
    +    m.pointType = m.Axis
    +    SetPlotOptions(m)
    +    DrawPlots()
    +    Test("mesh_point_03")
    +
    +    m.pointType = m.Point
    +    m.pointSizePixels = 1
    +    SetPlotOptions(m)
    +    Test("mesh_point_04")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("noise.silo"))
    +
    +    OpenDatabase(silo_data_path("noise2d.silo"))
    +
    +    AddPlot("Mesh", "PointMesh")
    +    ResetView()
    +    DrawPlots()
    +    m.pointType = m.Axis
    +    m.pointSizeVarEnabled = 1
    +    m.pointSizeVar = "PointVar"
    +    m.pointSize = 0.05
    +    SetPlotOptions(m)
    +    Test("mesh_point_05")
    +
    +    m.pointType = m.Point
    +    m.pointSizePixels = 1
    +    m.pointSizeVarEnabled = 0
    +    SetPlotOptions(m)
    +    Test("mesh_point_06")
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("noise2d.silo"))
    +
    +    OpenDatabase(data_path("blueprint_v0.3.1_test_data/braid_3d_examples_json.root"))
    +
    +    AddPlot("Mesh", "points_mesh")
    +
    +    m = MeshAttributes()
    +    m.meshColorSource = m.MeshCustom
    +    m.meshColor = (0, 170, 255, 255)
    +    SetPlotOptions(m)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (-0.605449, 0.469667, 0.642529)
    +    v.viewUp = (0.169201, 0.864818, -0.472716)
    +    SetView3D(v)
    +    Test("mesh_point_07")
    +
    +    m.pointSizePixels = 5
    +    SetPlotOptions(m)
    +    Test("mesh_point_08")
    +
    +    m.pointType = m.Tetrahedron
    +    m.pointSize = 3
    +    SetPlotOptions(m)
    +    Test("mesh_point_09")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("blueprint_v0.3.1_test_data/braid_3d_examples_json.root"))
    +
    +    OpenDatabase(data_path("vtk_test_data/ugrid_mixed_cells.vtk"))
    +
    +    AddPlot("Mesh", "mesh")
    +    m.lineWidth = 3
    +    m.pointType = m.Point
    +    m.pointSizePixels = 2
    +    SetPlotOptions(m)
    +    DrawPlots()
    +    ResetView()
    +
    +    Test("mesh_point_10")
    +
    +    m.pointSizePixels = 5
    +    SetPlotOptions(m)
    +    Test("mesh_point_11")
    +
    +    m.pointType = m.Icosahedron
    +    m.pointSize = 0.5
    +    SetPlotOptions(m)
    +    Test("mesh_point_12")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/ugrid_mixed_cells.vtk"))
    +
    +
    +def TestGlobe():
    +    TestSection("Mesh plot of a 3D unstructured mesh")
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (1, 0, 0)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0, 1, 0)
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1.0
    +    SetView3D(v)
    +
    +    m = MeshAttributes()
    +    m.opaqueMode = m.Off
    +    SetPlotOptions(m)
    +    Test("mesh_globe_01")
    +
    +    m.smoothingLevel = m.Fast
    +    SetPlotOptions(m)
    +    Test("mesh_globe_02")
    +
    +    m.smoothingLevel = m.High
    +    SetPlotOptions(m)
    +    Test("mesh_globe_03")
    +
    +    print(m.NONE)
    +    m.smoothingLevel = m.NONE
    +    m.opaqueMode = m.Auto
    +    m.showInternal = 1
    +    SetPlotOptions(m)
    +    ResetView()
    +
    +    TurnMaterialsOff(("1", "2", "4"))
    +
    +    AddOperator("Clip")
    +    clip = ClipAttributes()
    +    clip.plane1Status = 0
    +    clip.plane3Status = 1
    +    SetOperatorOptions(clip)
    +
    +    AddOperator("Transform")
    +    t = TransformAttributes()
    +    t.doRotate = 1
    +    t.rotateAxis = (1, 0, 0)
    +    t.rotateAmount = 112
    +    SetOperatorOptions(t)
    +    DrawPlots()
    +
    +    SetViewExtentsType("actual")
    +    Test("mesh_globe_04")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("globe.silo"))
    +
    +def TestRect3d():
    +    TestSection("Mesh plot of a 3D rectilinear mesh")
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    m = MeshAttributes()
    +    m.opaqueMode = m.Auto
    +    m.showInternal = 1
    +    SetPlotOptions(m)
    +
    +    #Show a small area that contains the boundary
    +    #between domains 1 & 2 by using the box operator
    +    AddOperator("Box")
    +    box = BoxAttributes();
    +    box.minx = 0.3
    +    box.maxx = 0.4
    +    box.miny = 0.1
    +    box.maxy = 0.2
    +    box.minz = 0.1
    +    box.maxz = 0.2
    +    SetOperatorOptions(box)
    +
    +    DrawPlots()
    +
    +    SetViewExtentsType("actual")
    +    v = GetView3D()
    +    v.viewNormal = (0.27, 0.27, 0.93)
    +    v.focus = (0.35, 0.15, 0.15)
    +    v.viewUp = (-0.06, 0.96, -0.26)
    +    v.parallelScale = 0.139692
    +    v.nearPlane = -0.28
    +    v.farPlane = 0.28
    +    SetView3D(v)
    +
    +    Test("mesh_rect3d_01")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +def TestAutoOpaqueFlag():
    +    TestSection("Testing Mesh plot's opaque flag")
    +
    +    # Set up a mesh plot with the auto opaque flag.
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    m = MeshAttributes()
    +    m.opaqueMode = m.Auto
    +    SetPlotOptions(m)
    +    ResetView()
    +    TurnMaterialsOn()
    +    DrawPlots()
    +    Test("mesh_opaque_01")
    +
    +    # Add a Pseudocolor plot and make sure that the mesh plot
    +    # is not drawn in opaque mode.
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    Test("mesh_opaque_02")
    +
    +    # Hide the Pseudocolor plot and make sure that the mesh plot
    +    # goes opaque.
    +    HideActivePlots()
    +    Test("mesh_opaque_03")
    +
    +    # Unhide the Pseudocolor plot and then delete it. Make sure that the
    +    # mesh plot goes opaque.
    +    HideActivePlots()
    +    Test("mesh_opaque_04")
    +    DeleteActivePlots()
    +    Test("mesh_opaque_05")
    +    DeleteAllPlots()
    +
    +    # Restore a session file that has a keyframe animation where the mesh
    +    # plot exists over all frames but the Pseudocolor plot does not.
    +    RestoreSessionWithDifferentSources(tests_path("plots","mesh_opaque.session"), 0,
    +                                       silo_data_path("wave*.silo database"))
    +    # Turn off all annotations but preserve the background colors.
    +    TurnOffAllAnnotations(GetAnnotationAttributes())
    +    Test("mesh_opaque_06")
    +    SetTimeSliderState(4)
    +    Test("mesh_opaque_07")
    +    SetTimeSliderState(9)
    +    Test("mesh_opaque_08")
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("globe.silo"))
    +
    +def TestRandomColor():
    +    TestSection("Testing random color mode")
    +    OpenDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +
    +    # Randomization of mesh colors is possible only at plot *creation* time.
    +    # Therefore, we need to adjust Mesh plot default attributes to set
    +    # the behavior *before* the plot is even created.
    +    m = MeshAttributes()
    +    savedMeshAttrs = m
    +    m.meshColorSource = m.MeshRandom
    +    SetDefaultPlotOptions(m)
    +    AddPlot("Mesh", "2D/mesh1_phzl")
    +    ResetView()
    +    DrawPlots()
    +    Test("mesh_random_color_01")
    +    DeleteActivePlots()
    +
    +    m.meshColorSource = m.Foreground
    +    SetDefaultPlotOptions(m)
    +    AddPlot("Mesh", "2D/mesh1_phzl")
    +    DrawPlots()
    +    Test("mesh_random_color_02")
    +    DeleteAllPlots()
    +
    +    # Add a series of mesh plots with random opaque color
    +    m = MeshAttributes()
    +    m.opaqueColorSource = m.OpaqueRandom
    +    SetDefaultPlotOptions(m)
    +    meshnames = ["2D/mesh1_phzl", "2D/mesh1_phzl2", "2D/mesh1_zl1", "2D/mesh1_zl2"]
    +    for i in range(len(meshnames)):
    +        mname = meshnames[i]
    +        AddPlot("Mesh", mname)
    +        AddOperator("Transform")
    +        ta = TransformAttributes()
    +        ta.doTranslate = 1
    +        ta.translateY = 3*i
    +        SetOperatorOptions(ta)
    +    DrawPlots()
    +    Test("mesh_random_color_03")
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +    SetDefaultPlotOptions(savedMeshAttrs)
    +
    +def TestCustomColor():
    +    TestSection("Testing custom color mode")
    +    OpenDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +
    +    meshnames = ["2D/mesh1_phzl", "2D/mesh1_phzl2", "2D/mesh1_zl1", "2D/mesh1_zl2"]
    +    colors = [(255,0,0,255),(0,255,0,255),(0,0,255,255),(0,255,255,255)]
    +    for i in range(len(meshnames)):
    +        mname = meshnames[i]
    +        AddPlot("Mesh", mname)
    +        m = MeshAttributes()
    +        m.opaqueColorSource = m.OpaqueCustom
    +        m.opaqueColor = colors[i]
    +        m.meshColorSource = m.MeshCustom
    +        m.meshColor = (255,255,255,255)
    +        SetPlotOptions(m)
    +        AddOperator("Transform")
    +        ta = TransformAttributes()
    +        ta.doTranslate = 1
    +        ta.translateY = 3*i
    +        SetOperatorOptions(ta)
    +        DrawPlots()
    +    Test("mesh_custom_color_01")
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +
    +def Main():
    +    TurnOffAllAnnotations()
    +    TestRandomColor()
    +    TestCurve()
    +    TestPointMesh()
    +    TestGlobe()
    +    TestRect3d()
    +    TestAutoOpaqueFlag()
    +    TestCustomColor()
    +
    +# Added to allow this test to be run with compression too.
    +# Another .py file sources this file with 'useCompression'
    +# defined.
    +if "useCompression" in dir():
    +    ra = GetRenderingAttributes()
    +    ra.compressionActivationMode = ra.Always
    +    SetRenderingAttributes(ra)
    +
    +Main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_molecule.html b/2024-12-12-22:00/poodle_trunk_serial/plots_molecule.html new file mode 100644 index 000000000..4f1c002dc --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_molecule.html @@ -0,0 +1,123 @@ + +Results for plots/molecule.py + +

    Results of VisIt Regression Test - plots/molecule

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    molecule_010.000.00
    molecule_020.000.00
    molecule_030.000.00
    molecule_040.000.00
    molecule_050.000.00
    molecule_060.000.00
    molecule_070.000.00
    Replicate and CreateBonds operators with Molecule plot
    mol_rep_bonds_010.000.00
    mol_rep_bonds_020.000.00
    mol_rep_bonds_030.000.00
    mol_rep_bonds_040.000.00
    mol_rep_bonds_050.000.00
    mol_rep_bonds_060.000.00
    mol_rep_bonds_070.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_molecule_py.html b/2024-12-12-22:00/poodle_trunk_serial/plots_molecule_py.html new file mode 100644 index 000000000..76314cb64 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_molecule_py.html @@ -0,0 +1,242 @@ +plots/molecule.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  molecule.py
    +#
    +#  Tests:      mesh      - 3D points
    +#              plots     - Molecule
    +#              operators - CreateBonds, Replicate
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 15, 2021 
    +#
    +#  Modifications:
    +#
    +#    Kathleen Biagas, Tue Jul 13 09:51:58 PDT 2021
    +#    Changed retrieval of renAtts from 'RenderingAttributes' to
    +#    'GetRenderingAttributes' when turning off specular highlighting. This
    +#    fixes a bug in scalable,parallel,icet mode where molecule_04 test would
    +#    fail to plot.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def SetGradientBackground():
    +    annot = GetAnnotationAttributes()
    +    annot.backgroundMode = annot.Gradient
    +    annot.gradientBackgroundStyle = annot.Radial
    +    annot.gradientColor1 = (102, 102, 153, 255)
    +    annot.gradientColor2 = (0, 0, 0, 255)
    +    annot.backgroundColor = (0, 0, 0, 255)
    +    annot.foregroundColor = (255, 255, 255, 255)
    +    SetAnnotationAttributes(annot)
    +
    +def SetWhiteBackground():
    +    annot = GetAnnotationAttributes()
    +    annot.backgroundMode = annot.Solid
    +    annot.foregroundColor = (0, 0, 0, 255)
    +    annot.backgroundColor = (255, 255, 255, 255)
    +    SetAnnotationAttributes(annot)
    +
    +def Test500x500(name):
    +    # Save these images somewhat larger than a regular test case image
    +    # to better see the molecules 
    +    backup = GetSaveWindowAttributes()
    +    swa = SaveWindowAttributes()
    +    swa.width = 500
    +    swa.height = 500
    +    swa.screenCapture = 1
    +    Test(name, swa)
    +    SetSaveWindowAttributes(backup)
    +
    +
    +def MoleculeOnly():
    +    # images similar to those in Molecule Plot docs
    +
    +    SetGradientBackground()
    +
    +    # add specular highlighting
    +    renAtts = GetRenderingAttributes()
    +    renAtts.specularFlag = 1
    +    SetRenderingAttributes(renAtts)
    +
    +    OpenDatabase(data_path("ProteinDataBank_test_data/crotamine.pdb"))
    +
    +    # color by element, Covalent radius, no bonds
    +    AddPlot("Molecule", "element")
    +    mol = MoleculeAttributes()
    +    mol.drawAtomsAs   = mol.SphereAtoms
    +    mol.scaleRadiusBy = mol.Covalent
    +    mol.drawBondsAs   = mol.NoBonds
    +    SetPlotOptions(mol)
    +
    +    DrawPlots()
    +
    +    v3d = GetView3D()
    +    v3d.viewNormal = (0.784142, -0.592494, -0.184587)
    +    v3d.viewUp = (-0.554863, -0.536159, -0.636129)
    +    v3d.imageZoom = 1.77156
    +    SetView3D(v3d)
    +
    +    Test500x500("molecule_01")
    +
    +    # color by residue, cylinder bonds, radius proportional to covalent radius
    +    ChangeActivePlotsVar("restype")
    +    mol.drawBondsAs = mol.CylinderBonds
    +    mol.radiusScaleFactor = 0.5
    +    SetPlotOptions(mol)
    +    DrawPlots()
    +    Test500x500("molecule_02")
    +
    +    # color by scalar (x-coord), no bonds
    +    DefineScalarExpression("x", "coord(mesh)[0]")
    +    ChangeActivePlotsVar("x")
    +    mol.drawAtomsAs = mol.NoAtoms
    +    SetPlotOptions(mol)
    +    DrawPlots()
    +    Test500x500("molecule_03")
    +
    +    # Create a blue-purple color table
    +    ccpl = ColorControlPointList()
    +    ccpl.discreteFlag=1
    +    ccpl.smoothing=ccpl.NONE
    +    ccpl.equalSpacingFlag=1
    +    p1 = ColorControlPoint()
    +    p1.colors = (51, 51, 153, 255)
    +    p1.position =  0
    +    ccpl.AddControlPoints(p1)
    +    p2 = ColorControlPoint()
    +    p2.colors = (204,153, 255, 255)
    +    p2.position =  1
    +    ccpl.AddControlPoints(p2)
    +    AddColorTable("BluePurp2", ccpl)
    +
    +    # color by backbone, atom and cylinder-bonds same fixed radius
    +    # special color table
    +    ChangeActivePlotsVar("backbone")
    +    mol.continuousColorTable="BluePurp2"
    +    mol.drawAtomsAs = mol.SphereAtoms
    +    mol.drawBondsAs = mol.CylinderBonds
    +    mol.scaleRadiusBy = mol.Fixed
    +    mol.radiusFixed = 0.2
    +    mol.bondRadius = 0.2
    +    SetPlotOptions(mol)
    +
    +    DrawPlots()
    +    # turn off specular highlighting
    +    renAtts = GetRenderingAttributes()
    +    renAtts.specularFlag = 0
    +    SetRenderingAttributes(renAtts)
    +    Test500x500("molecule_04")
    +
    +    DeleteAllPlots()
    +
    +    # ensure engine/viewer doesn't crash when using ImposterAtoms and scaleRadiusBy option is changed
    +    AddPlot("Molecule", "element")
    +    # get Fresh atts
    +    mol = MoleculeAttributes()
    +    # set up sphere imposters
    +    mol.drawAtomsAs = mol.ImposterAtoms
    +    SetPlotOptions(mol)
    +    DrawPlots()
    +    Test500x500("molecule_05")
    +    # now change scaleRadiusBy
    +    mol.scaleRadiusBy = mol.Covalent
    +    mol.radiusScaleFactor=4
    +    SetPlotOptions(mol)
    +    DrawPlots()
    +    Test500x500("molecule_06")
    +
    +    # changing radiusScaleFactor while using Imposter atoms used to crash the viewer
    +    mol.radiusScaleFactor=0.002
    +    SetPlotOptions(mol)
    +    DrawPlots()
    +    Test500x500("molecule_07")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("ProteinDataBank_test_data/crotamine.pdb"))
    +
    +def ReplicateAddBonds():
    +    TestSection("Replicate and CreateBonds operators with Molecule plot")
    +    SetWhiteBackground()
    +    OpenDatabase(data_path("vasp_test_data", "GaO40W12", "OUTCAR"))
    +    AddPlot("Mesh", "unitCell")
    +    AddPlot("Molecule", "element")
    +    mol = MoleculeAttributes()
    +    mol.radiusFixed=0.5
    +    SetPlotOptions(mol)
    +    DrawPlots()
    +    ResetView()
    +
    +    v3D = GetView3D()
    +    v3D.viewNormal = (0.0378647, -0.776117, -0.62945) #(-0.465303, -0.758273, 0.456634)
    +    v3D.viewUp = (0.839533, -0.366352, -0.401212) #(-0.0844518, 0.55156, 0.829849)
    +    v3D.imageZoom=2.177156
    +    v3D.imagePan=(0.0217552, 0.0165363)
    +    SetView3D(v3D)
    +
    +    Test500x500("mol_rep_bonds_01")
    +
    +    # Add replicate operator 
    +    SetActivePlots((0,1))
    +    AddOperator("Replicate", 1)
    +    repl = ReplicateAttributes()
    +    repl.useUnitCellVectors = 1
    +    repl.mergeResults = 1
    +    # replicate along unit cell boundaries
    +    repl.replicateUnitCellAtoms = 1
    +    SetOperatorOptions(repl, 0, 1)
    +    DrawPlots()
    +    Test500x500("mol_rep_bonds_02")
    +
    +    # create a replication along y
    +    repl.yReplications=2
    +    SetOperatorOptions(repl, 1, 1)
    +    DrawPlots()
    +
    +    Test500x500("mol_rep_bonds_03")
    +
    +    # Create bonds 
    +    SetActivePlots(1)
    +    AddOperator("CreateBonds")
    +    cb = CreateBondsAttributes()
    +    cb.atomicNumber1 = (31, 74)
    +    cb.atomicNumber2 = (8, 8)
    +    cb.minDist = (0.4, 0.4)
    +    cb.maxDist = (1.9, 2.4)
    +    SetOperatorOptions(cb)
    +    DrawPlots()
    +
    +    Test500x500("mol_rep_bonds_04")
    +
    +    # have the CreateBonds operator create periodic bonds
    +    cb.addPeriodicBonds = 1
    +    cb.useUnitCellVectors = 1
    +    SetOperatorOptions(cb)
    +    DrawPlots()
    +
    +    Test500x500("mol_rep_bonds_05")
    +
    +    # Change bond style to lines
    +    mol.drawBondsAs = mol.LineBonds
    +    mol.bondLineWidth = 5
    +    SetPlotOptions(mol)
    +    DrawPlots()
    +
    +    Test500x500("mol_rep_bonds_06")
    +
    +    # Change atom radius
    +    mol.drawBondsAs = mol.CylinderBonds
    +    mol.scaleRadiusBy = mol.Atomic
    +    mol.radiusScaleFactor = 0.7
    +    SetPlotOptions(mol)
    +    DrawPlots()
    +
    +    Test500x500("mol_rep_bonds_07")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vasp_test_data", "GaO40W12", "OUTCAR"))
    +
    +MoleculeOnly()
    +ReplicateAddBonds()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_multicolor.html b/2024-12-12-22:00/poodle_trunk_serial/plots_multicolor.html new file mode 100644 index 000000000..c4bd9a2c6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_multicolor.html @@ -0,0 +1,201 @@ + +Results for plots/multicolor.py + +

    Results of VisIt Regression Test - plots/multicolor

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Testing setting of multiColor in Boundary plot
    multicolor_0_000.000.00
    multicolor_0_010.000.00
    multicolor_0_020 modifications totalling 0 lines
    multicolor_0_030.000.00
    multicolor_0_040 modifications totalling 0 lines
    multicolor_0_050.000.00
    multicolor_0_060 modifications totalling 0 lines
    Testing setting of multiColor in Contour plot
    multicolor_1_000.000.00
    multicolor_1_010.000.00
    multicolor_1_020 modifications totalling 0 lines
    multicolor_1_030.000.00
    multicolor_1_040 modifications totalling 0 lines
    multicolor_1_050.000.00
    multicolor_1_060 modifications totalling 0 lines
    Testing setting of multiColor in FilledBoundary plot
    multicolor_2_000.000.00
    multicolor_2_010.000.00
    multicolor_2_020 modifications totalling 0 lines
    multicolor_2_030.000.00
    multicolor_2_040 modifications totalling 0 lines
    multicolor_2_050.000.00
    multicolor_2_060 modifications totalling 0 lines
    Testing setting of multiColor in Subset plot
    multicolor_3_000.000.00
    multicolor_3_010.000.00
    multicolor_3_020 modifications totalling 0 lines
    multicolor_3_030.000.00
    multicolor_3_040 modifications totalling 0 lines
    multicolor_3_050.000.00
    multicolor_3_060 modifications totalling 0 lines
    Testing user defined colors for FilledBoundary
    multicolor_matcolors0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_multicolor_py.html b/2024-12-12-22:00/poodle_trunk_serial/plots_multicolor_py.html new file mode 100644 index 000000000..1b7fae0dd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_multicolor_py.html @@ -0,0 +1,229 @@ +plots/multicolor.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial
    +#  CLASSES: nightly
    +#
    +#  Test Case:  multicolor.py
    +#
    +#  Tests:      Tests setting colors using the multiColor field in some of
    +#              our plots.
    +#              Plots     - Boundary, Contour, FilledBoundary, Subset
    +#              Operators - Transform
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Apr 6 17:52:12 PST 2005
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Thu Jul 13 22:41:56 PDT 2006
    +#    Added test of user-specified material colors
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +def TestColorDefinitions(testname, colors):
    +    s = ""
    +    for c in colors:
    +        s = s + str(c) + "\n"
    +    TestText(testname, s)
    +
    +def TestMultiColor(section, plotAtts, decreasingOpacity):
    +    # Get the current colors.
    +    m = plotAtts.GetMultiColor()
    +
    +    # Test what the image currently looks like.
    +    Test("multicolor_%d_00" % section)
    +
    +    # Change the colors all at once. We should have red->blue
    +    for i in range(len(m)):
    +        t = float(i) / float(len(m) - 1)
    +        c = int(t * 255.)
    +        m[i] = (255-c, 0, c, 255)
    +    plotAtts.SetMultiColor(m)
    +    SetPlotOptions(plotAtts)
    +    Test("multicolor_%d_01" % section)
    +    TestColorDefinitions("multicolor_%d_02" % section, plotAtts.GetMultiColor())
    +
    +    # Change the colors another way. We should get green to blue
    +    for i in range(len(m)):
    +        t = float(i) / float(len(m) - 1)
    +        c = int(t * 255.)
    +        plotAtts.SetMultiColor(i, 0, 255-c, c)
    +    SetPlotOptions(plotAtts)
    +    Test("multicolor_%d_03" % section)
    +    TestColorDefinitions("multicolor_%d_04" % section, plotAtts.GetMultiColor())
    +
    +    # Change the colors another way. We should get yellow to red but
    +    # the redder it gets, the more transparent it should also get.
    +    for i in range(len(m)):
    +        t = float(i) / float(len(m) - 1)
    +        c = int(t * 255.)
    +        if decreasingOpacity:
    +            plotAtts.SetMultiColor(i, (255, 255-c, 0, 255 - c))
    +        else:
    +            plotAtts.SetMultiColor(i, (255, 255-c, 0, c))
    +    SetPlotOptions(plotAtts)
    +    Test("multicolor_%d_05" % section)
    +    TestColorDefinitions("multicolor_%d_06" % section, plotAtts.GetMultiColor())
    +
    +def test1():
    +    TestSection("Testing setting of multiColor in Boundary plot")
    +    # Set up the plot
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    AddPlot("Boundary", "mat1")
    +    b = BoundaryAttributes()
    +    b.lineWidth = 4
    +    DrawPlots()
    +
    +    # Test the plot
    +    TestMultiColor(0, b, 0)
    +
    +    # Delete the plots
    +    DeleteAllPlots()
    +
    +def test2():
    +    TestSection("Testing setting of multiColor in Contour plot")
    +    # Set up the plot
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Contour", "hardyglobal")
    +    c = ContourAttributes()
    +    c.contourNLevels = 20
    +    SetPlotOptions(c)
    +    DrawPlots()
    +
    +    # Set the view.
    +    v = GetView3D()
    +    v.viewNormal = (-0.400348, -0.676472, 0.618148)
    +    v.focus = (0,0,0)
    +    v.viewUp = (-0.916338, 0.300483, -0.264639)
    +    v.parallelScale = 17.3205
    +    v.imagePan = (0, 0.0397866)
    +    v.imageZoom = 1.07998
    +    SetView3D(v)
    +
    +    # Test the plot
    +    TestMultiColor(1, c, 0)
    +
    +    # Delete the plots
    +    DeleteAllPlots()
    +
    +def test3():
    +    TestSection("Testing setting of multiColor in FilledBoundary plot")
    +    # Set up the plots. First we want globe so we can see something inside
    +    # of the Subset plot to make sure that setting alpha works.
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "w")
    +    p = PseudocolorAttributes()
    +    p.legendFlag = 0
    +    p.colorTableName = "xray"
    +    SetPlotOptions(p)
    +    OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +    AddPlot("FilledBoundary", "mat")
    +    f = FilledBoundaryAttributes()
    +    f.legendFlag = 0
    +    SetPlotOptions(f)
    +
    +    # Add an operator to globe to make it small.
    +    SetActivePlots(0)
    +    AddOperator("Transform", 0)
    +    t = TransformAttributes()
    +    t.doScale = 1
    +    t.scaleX, t.scaleY, t.scaleZ = 0.04, 0.04, 0.04
    +    t.doTranslate = 1
    +    t.translateX, t.translateY, t.translateZ = 0.5, 0.5, 0.5
    +    SetOperatorOptions(t)
    +    SetActivePlots(1)
    +    DrawPlots()
    +
    +    # Set the view.
    +    v = GetView3D()
    +    v.viewNormal = (-0.385083, -0.737931, -0.554229)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (-0.922871, 0.310902, 0.227267)
    +    v.parallelScale = 0.866025
    +    v.imagePan = (-0.0165315, 0.0489375)
    +    v.imageZoom = 1.13247
    +    SetView3D(v)
    +
    +    # Test the plot
    +    TestMultiColor(2, f, 1)
    +
    +    # Delete the plots
    +    DeleteAllPlots()
    +
    +def test4():
    +    TestSection("Testing setting of multiColor in Subset plot")
    +    # Set up the plots. First we want globe so we can see something inside
    +    # of the Subset plot to make sure that setting alpha works.
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "w")
    +    p = PseudocolorAttributes()
    +    p.legendFlag = 0
    +    p.colorTableName = "xray"
    +    SetPlotOptions(p)
    +    OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +    AddPlot("Subset", "domains")
    +    s = SubsetAttributes()
    +    s.legendFlag = 0
    +    SetPlotOptions(s)
    +
    +    # Add an operator to globe to make it small.
    +    SetActivePlots(0)
    +    AddOperator("Transform", 0)
    +    t = TransformAttributes()
    +    t.doScale = 1
    +    t.scaleX, t.scaleY, t.scaleZ = 0.04, 0.04, 0.04
    +    t.doTranslate = 1
    +    t.translateX, t.translateY, t.translateZ = 0.5, 0.5, 0.5
    +    SetOperatorOptions(t)
    +    SetActivePlots(1)
    +    DrawPlots()
    +
    +    # Set the view.
    +    v = GetView3D()
    +    v.viewNormal = (-0.385083, -0.737931, -0.554229)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (-0.922871, 0.310902, 0.227267)
    +    v.parallelScale = 0.866025
    +    v.imagePan = (-0.0165315, 0.0489375)
    +    v.imageZoom = 1.13247
    +    SetView3D(v)
    +
    +    # Test the plot
    +    TestMultiColor(3, s, 1)
    +
    +    # Delete the plots
    +    DeleteAllPlots()
    +
    +def test5():
    +    TestSection("Testing user defined colors for FilledBoundary")
    +
    +    ResetView()
    +    OpenDatabase(silo_data_path("globe_matcolors.silo"))
    +
    +    AddPlot("FilledBoundary","mat1")
    +    AddOperator("Slice")
    +    DrawPlots()
    +
    +    Test("multicolor_matcolors")
    +
    +    DeleteAllPlots()
    +
    +def main():
    +    test1()
    +    test2()
    +    test3()
    +    test4()
    +    test5()
    +
    +# Run the tests
    +main()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_parcoords.html b/2024-12-12-22:00/poodle_trunk_serial/plots_parcoords.html new file mode 100644 index 000000000..e620a1b64 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_parcoords.html @@ -0,0 +1,129 @@ + +Results for plots/parcoords.py + +

    Results of VisIt Regression Test - plots/parcoords

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Test scalar collection sources
    parcoords_010.000.00
    parcoords_020.000.00
    parcoords_030.000.00
    parcoords_040.000.00
    parcoords_050.000.00
    parcoords_060.000.00
    Test array expression sources
    parcoords_070.000.00
    parcoords_080.000.00
    parcoords_090.000.00
    parcoords_100.000.00
    Test raw database array sources
    parcoords_110.000.00
    parcoords_120.000.00
    parcoords_130.000.00
    parcoords_140.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_parcoords_py.html b/2024-12-12-22:00/poodle_trunk_serial/plots_parcoords_py.html new file mode 100644 index 000000000..fb473eed7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_parcoords_py.html @@ -0,0 +1,196 @@ +plots/parcoords.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial
    +#  CLASSES: nightly
    +#
    +#  Test Case:  parcoords.py
    +#
    +#  Tests:      Tests the parallel coordinates plot
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       January 31, 2008
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Mon Feb  4 16:11:21 EST 2008
    +#    Removed axis extents from plot attributes since they were unused.
    +#
    +#    Jeremy Meredith, Fri Feb  8 13:49:58 EST 2008
    +#    Added support for array variable expressions, raw database array
    +#    variables, clamping plot limits, and changing viewports.
    +#
    +#    Jeremy Meredith, Mon Feb 18 16:50:02 EST 2008
    +#    Renamed orderedAxisNames to scalarAxisNames.
    +#    Added setting of visualAxisNames in one of the places we create the plot
    +#    from a list of scalar.  This isn't strictly necessary, since the
    +#    plot can do this for us, but the GUI Wizard knows to do this, and so
    +#    setting visualAxisNames matches the GUI behavior more closely.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Hank Childs, Mon Nov 22 11:12:28 PST 2010
    +#    Add tests that include the Threshold operator, which test whether or not
    +#    extents are maintained.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +#
    +# Trying out collections of scalars as a source
    +#
    +TestSection("Test scalar collection sources")
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +
    +# Set default plot variables
    +p = ParallelCoordinatesAttributes()
    +p.drawLines = 1
    +p.linesColor = (128, 0, 0, 255)
    +p.drawContext = 1
    +p.contextGamma = 2
    +p.contextNumPartitions = 512
    +p.contextColor = (0, 220, 0, 255)
    +p.drawLinesOnlyIfExtentsOn = 1
    +SetDefaultPlotOptions(p)
    +
    +# Set up a simple 3 variable parallel coordinates plot.
    +AddPlot("ParallelCoordinates", "hardyglobal")
    +p.scalarAxisNames = ("hardyglobal", "shepardglobal", "chromeVf")
    +p.visualAxisNames = p.scalarAxisNames # unnecessary, but strictly correct
    +p.extentMinima = (-1e+37, -1e+37, -1e+37)
    +p.extentMaxima = (+1e+37, +1e+37, +1e+37)
    +SetPlotOptions(p)
    +DrawPlots()
    +Test("parcoords_01")
    +
    +# Try setting some appearance-related attributes
    +p.contextGamma = 2.9
    +p.contextNumPartitions = 128
    +p.contextColor = (200, 0, 255, 255)
    +SetPlotOptions(p)
    +Test("parcoords_02")
    +
    +p.contextGamma = 2.9
    +p.contextNumPartitions = 32
    +p.contextColor = (200, 0, 255, 255)
    +p.drawLinesOnlyIfExtentsOn = 0
    +SetPlotOptions(p)
    +Test("parcoords_03")
    +
    +# Add an axis and make sure it works
    +p.scalarAxisNames = ("hardyglobal", "shepardglobal", "chromeVf", "radial")
    +p.visualAxisNames = () # test to make sure it works without setting this
    +p.extentMinima = (-1e+37, -1e+37, -1e+37, -1e+37)
    +p.extentMaxima = (+1e+37, +1e+37, +1e+37, +1e+37)
    +p.drawLinesOnlyIfExtentsOn = 1
    +SetPlotOptions(p)
    +Test("parcoords_04")
    +
    +# Make sure the extents work for limiting the lines
    +p.extentMinima = (5.7, -1e+37, -1e+37, -1e+37)
    +p.extentMaxima = (5.8, +1e+37, +1e+37, +1e+37)
    +SetPlotOptions(p)
    +Test("parcoords_05")
    +
    +# Try unifying the extents across all axes
    +p.unifyAxisExtents = 1
    +SetPlotOptions(p)
    +Test("parcoords_06")
    +
    +
    +#
    +# Trying out array variables as a source
    +#
    +TestSection("Test array expression sources")
    +
    +# Try an array variable
    +DeleteAllPlots();
    +
    +OpenDatabase(data_path("okc_test_data/astronomy.okc"))
    +
    +
    +DefineArrayExpression("arrayvar1",
    +                      "array_compose(d, b, b/2, b+l)")
    +DefineArrayExpression("arrayvar2",
    +                      "array_compose(d+200, l, l-2, b+l)")
    +DefineArrayExpression("arrayvar2wb",
    +                      "array_compose_with_bins(d+200, l, l-2, b+l, [0,1,4,15,20])")
    +
    +AddPlot("ParallelCoordinates", "arrayvar1")
    +p = ParallelCoordinatesAttributes()
    +p.contextColor = (100, 100, 255, 255)
    +p.contextNumPartitions = 32
    +SetPlotOptions(p)
    +DrawPlots()
    +Test("parcoords_07")
    +
    +# Try changing the array variable
    +ChangeActivePlotsVar("arrayvar2")
    +Test("parcoords_08")
    +
    +# Now change to one with bin-width defined axis x positions
    +ChangeActivePlotsVar("arrayvar2wb")
    +Test("parcoords_09")
    +
    +# Now clamp the axis array limits
    +p.unifyAxisExtents = 1
    +SetPlotOptions(p)
    +Test("parcoords_10")
    +
    +#
    +# Trying out raw database-generated array as a source
    +#
    +TestSection("Test raw database array sources")
    +
    +
    +# Now change to a raw database-generated array variable
    +ChangeActivePlotsVar("all_vars")
    +p.unifyAxisExtents = 0;
    +p.contextColor = (255,150,50,255)
    +SetPlotOptions(p)
    +
    +# Try changing the viewport so it looks a little more normal
    +v = GetViewAxisArray()
    +v.viewportCoords = (0.15,0.9, 0.3,0.7)
    +SetViewAxisArray(v)
    +Test("parcoords_11")
    +
    +# Now clamp the axis array limits again
    +p.unifyAxisExtents = 1
    +SetPlotOptions(p)
    +Test("parcoords_12")
    +
    +DeleteAllPlots()
    +ActivateDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("ParallelCoordinates", "hardyglobal")
    +p = ParallelCoordinatesAttributes()
    +p.scalarAxisNames = ("hardyglobal", "shepardglobal")
    +p.visualAxisNames = p.scalarAxisNames # unnecessary, but strictly correct
    +p.extentMinima = (-1e+37, -1e+37)
    +p.extentMaxima = (+1e+37, +1e+37)
    +p.drawFocusAs = p.IndividualLines
    +p.drawContext = 0
    +p.drawLinesOnlyIfExtentsOn = 0
    +SetPlotOptions(p)
    +DefineScalarExpression("zoneid", "zoneid(Mesh)")
    +AddOperator("Threshold")
    +t = ThresholdAttributes()
    +t.listedVarNames = ("zoneid")
    +t.zonePortions = (1)
    +t.lowerBounds = (100000.5)
    +t.upperBounds = (100001.5)
    +t.defaultVarName = "hardyglobal"
    +t.defaultVarIsScalar = 1
    +SetOperatorOptions(t)
    +DrawPlots()
    +ResetView()
    +Test("parcoords_13")
    +
    +# Now have multiple cells
    +t.upperBounds = (100005.5)
    +SetOperatorOptions(t)
    +Test("parcoords_14")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_pseudocolor.html b/2024-12-12-22:00/poodle_trunk_serial/plots_pseudocolor.html new file mode 100644 index 000000000..e084a4457 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_pseudocolor.html @@ -0,0 +1,429 @@ + +Results for plots/pseudocolor.py + +

    Results of VisIt Regression Test - plots/pseudocolor

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    pseudocolor_010.000.00
    pseudocolor_domain_bounds_010.000.00
    pseudocolor_domain_bounds_020.000.00
    pseudocolor_domain_bounds_030.000.00
    Point Glyphing: Topological dimension not set to 0
    pseudocolor_point_glyphs_010.000.00
    pseudocolor_point_glyphs_020.000.00
    pseudocolor_point_glyphs_030.000.00
    pseudocolor_point_glyphs_040.000.00
    pseudocolor_point_glyphs_050.000.00
    pseudocolor_point_glyphs_060.000.00
    Point Glyphing: Lighting
    pseudocolor_point_glyphs_070.000.00
    pseudocolor_point_glyphs_080.000.00
    Point Glyphing: Changing Opacity
    pseudocolor_point_glyphs_090.000.00
    pseudocolor_point_glyphs_100.000.00
    Unstructured grid, cell-centered data, poly-vertex cells
    pseudocolor_point_glyphs_110.000.00
    pseudocolor_point_glyphs_120.000.00
    pseudocolor_point_glyphs_130.000.00
    scaling point glyphs by variable
    pseudocolor_point_glyphs_140.000.00
    pseudocolor_point_glyphs_150.000.00
    pseudocolor_point_glyphs_160.000.00
    pseudocolor_point_glyphs_170.000.00
    ugrid, vertex and poly vertex, line and polyline
    pseudocolor_mixed_cells_010.000.00
    pseudocolor_mixed_cells_020.000.00
    pseudocolor_mixed_cells_030.000.00
    pseudocolor_mixed_cells_040.000.00
    pseudocolor_mixed_cells_050.000.00
    Line Tubes
    pseudocolor_line_tube_010.000.00
    pseudocolor_line_tube_020.000.00
    pseudocolor_line_tube_030.000.00
    pseudocolor_line_tube_040.000.00
    pseudocolor_line_tube_050.000.00
    pseudocolor_line_tube_060.000.00
    pseudocolor_line_tube_070.000.00
    pseudocolor_line_tube_080.000.00
    pseudocolor_line_tube_090.000.00
    Line Ribbons
    pseudocolor_line_ribbon_010.000.00
    pseudocolor_line_ribbon_020.000.00
    pseudocolor_line_ribbon_030.000.00
    pseudocolor_line_ribbon_040.000.00
    pseudocolor_line_ribbon_050.000.00
    pseudocolor_line_ribbon_060.000.00
    line endpoints
    pseudocolor_line_endpoints_010.000.00
    pseudocolor_line_endpoints_020.000.00
    pseudocolor_line_endpoints_030.000.00
    pseudocolor_line_endpoints_040.000.00
    pseudocolor_line_endpoints_050.000.00
    pseudocolor_line_endpoints_060.000.00
    pseudocolor_line_endpoints_070.000.00
    pseudocolor_line_endpoints_080.000.00
    pseudocolor_line_endpoints_090.000.00
    pseudocolor_line_endpoints_100.000.00
    Object rendering options
    pseudocolor_rendering_options_010.000.00
    pseudocolor_rendering_options_020.000.00
    pseudocolor_rendering_options_030.000.00
    pseudocolor_rendering_options_040.000.00
    pseudocolor_rendering_options_050.000.00
    pseudocolor_rendering_options_060.000.00
    pseudocolor_rendering_options_070.000.00
    pseudocolor_rendering_options_080.000.00
    External Surface
    pseudocolor_external_surface0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_pseudocolor_py.html b/2024-12-12-22:00/poodle_trunk_serial/plots_pseudocolor_py.html new file mode 100644 index 000000000..02cf952cd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_pseudocolor_py.html @@ -0,0 +1,556 @@ +plots/pseudocolor.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case: pseudocolor.py 
    +#
    +#  Tests:      meshes    - 2D rectilinear, 3D curvilinear. 
    +#              plots     - pseudocolor 
    +#
    +#  Defect ID:  '1016, '987
    +#
    +#  Programmer: Kevin Griffin
    +#  Date:       March 19, 2015
    +#
    +#  Modifications:
    +#
    +#    Kevin Griffin, Thu Mar 19 12:00:23 PDT 2015
    +#    Add test for drawing pseudocolor plot using a log scaling
    +#    and very small min value.
    +#
    +#    Alister Maguire, Wed Jul 17 08:24:37 PDT 2019
    +#    Wrapped the first test in a function and added 
    +#    TestDomainBoundaries. 
    +#
    +#    Kathleen Biagas, Wed Nov  6 18:29:29 PST 2019
    +#    Add new tests: PointGlyphing MixedTopology Lines ObjectRenderingOptions
    +#
    +#    Kevin Griffin, Tue Aug  4 11:31:09 PDT 2020
    +#    Added ExternalSurface test
    +#
    +# ----------------------------------------------------------------------------
    +
    +import itertools
    +
    +def TestScale():
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +
    +    pc = PseudocolorAttributes()
    +    pc.minFlag = 1
    +    pc.min = 1e-5
    +    pc.maxFlag = 1
    +    pc.max = 1
    +    pc.centering = pc.Nodal
    +    pc.scaling = pc.Log
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +
    +    Test("pseudocolor_01")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("rect2d.silo"))
    +
    +def TestDomainBoundaries():
    +    #
    +    # First, let's remove some domains and make sure that the 
    +    # faces are rendered. 
    +    #
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    silr = SILRestriction()
    +    silr.SuspendCorrectnessChecking()
    +    silr.TurnOnAll()
    +    for silSet in (41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,60,61,
    +                   62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,
    +                   82,83,84,85,86,87,88,89,90,91,92,93,94,95,97,98,99,100,101,
    +                   102,103,104,105,106,107,108,109,110,111,112,113,114,116,117,
    +                   118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,
    +                   133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,
    +                   148,149,150,151,152,153,154,236,237,238,239,240,241,242,243,
    +                   244):
    +        silr.TurnOffSet(silSet)
    +    silr.EnableCorrectnessChecking()
    +    SetPlotSILRestriction(silr ,1)
    +
    +    Test("pseudocolor_domain_bounds_01")
    +
    +    #
    +    # Next, we need to make sure that the processer boundaries are not
    +    # rendered when we enable transparency. 
    +    #
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0.883086, 0.11282, 0.455446)
    +    View3DAtts.focus = (0, 2.5, 10)
    +    View3DAtts.viewUp = (-0.0918142, 0.993447, -0.068068)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 11.4564
    +    View3DAtts.nearPlane = -22.9129
    +    View3DAtts.farPlane = 22.9129
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0, 2.5, 10)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +    silr = SILRestriction()
    +    silr.SuspendCorrectnessChecking()
    +    silr.TurnOnAll()
    +    for silSet in (41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,60,61,
    +                   62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,
    +                   82,83,84,85,86,87,88,89,90,91,92,93,94,95,97,98,99,100,101,
    +                   102,103,104,105,106,107,108,109,110,111,112,113,114,116,117,
    +                   118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,
    +                   133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,
    +                   148,149,150,151,152,153,154):
    +        silr.TurnOffSet(silSet)
    +    silr.EnableCorrectnessChecking()
    +    SetPlotSILRestriction(silr ,1)
    +
    +    PseudocolorAtts = PseudocolorAttributes()
    +    PseudocolorAtts.opacityType = PseudocolorAtts.Constant
    +    PseudocolorAtts.opacity = 0.462745
    +    SetPlotOptions(PseudocolorAtts)
    +
    +    Test("pseudocolor_domain_bounds_02")
    +
    +    #
    +    # Now let's make sure that the ghost/face removal has been 
    +    # reversed back to its original order when we turn transparency
    +    # back off. 
    +    #
    +    PseudocolorAtts = PseudocolorAttributes()
    +    PseudocolorAtts.opacityType = PseudocolorAtts.FullyOpaque
    +    SetPlotOptions(PseudocolorAtts)
    +
    +    silr = SILRestriction()
    +    silr.SuspendCorrectnessChecking()
    +    silr.TurnOnAll()
    +    for silSet in (41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,60,61,
    +                   62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,
    +                   82,83,84,85,86,87,88,89,90,91,92,93,94,95,97,98,99,100,101,
    +                   102,103,104,105,106,107,108,109,110,111,112,113,114,116,117,
    +                   118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,
    +                   133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,
    +                   148,149,150,151,152,153,154,236,237,238,239,240,241,242,243,
    +                   244):
    +        silr.TurnOffSet(silSet)
    +    silr.EnableCorrectnessChecking()
    +    SetPlotSILRestriction(silr ,1)
    +
    +    Test("pseudocolor_domain_bounds_03")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +def PointGlyphing():
    +    # github issue 3390
    +    TestSection("Point Glyphing: Topological dimension not set to 0")
    +    idx = itertools.count(1)
    +    # Reader not reporting topodim 0
    +    OpenDatabase(data_path("blueprint_v0.3.1_test_data/braid_2d_examples.blueprint_root_hdf5"))
    +    AddPlot("Pseudocolor", "points_mesh/braid")
    +    DrawPlots()
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    # glyph the points with Tets
    +    pc = PseudocolorAttributes()
    +    pc.pointType = pc.Tetrahedron
    +    pc.pointSize = 0.5
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +    # transition back to point
    +    pc.pointType = pc.Point
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +    # glyph the points with Sphere 
    +    pc.pointType = pc.Sphere
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("blueprint_v0.3.1_test_data/braid_2d_examples.blueprint_root_hdf5"))
    +
    +    OpenDatabase(data_path("synergia_test_data/vis_particles_* database"), 0, "Vs")
    +    AddPlot("Pseudocolor", "particles_0")
    +    pc.pointType = pc.Tetrahedron
    +    pc.pointSize = 0.005
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (-0.882869, -0.011028, 0.469489)
    +    v.focus = (-0.000169306, 0.000401067, -0.00167359)
    +    v.viewUp = (-0.118292, 0.972711, -0.199599)
    +    v.imageZoom = 1.77
    +    SetView3D(v);
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    # PsersistentParticles sets the topological dimension incorrectly,
    +    # but the points should still be glyphable
    +    AddOperator("PersistentParticles")
    +    pp = PersistentParticlesAttributes()
    +    pp.connectParticles = 0
    +    SetOperatorOptions(pp)
    +    DrawPlots()
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("synergia_test_data/vis_particles_* database"))
    +
    +    TestSection("Point Glyphing: Lighting")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    AddPlot("Pseudocolor", "PointVar")
    +    pc.pointType = pc.Icosahedron
    +    pc.pointSize = 3
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (0.272848, 0.209847, 0.938892)
    +    v.focus = (-0.0242615, -0.170417, -0.0304632)
    +    v.viewUp = (0.134518, 0.958013, -0.253212)
    +    v.imageZoom=1.5
    +    SetView3D(v)
    +    # standard lighting
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    # turn off lighting, points should still be glyphed
    +    pc.lightingFlag = 0
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +    pc.lightingFlag = 1
    +
    +    # github issue 1461, 1800
    +    TestSection("Point Glyphing: Changing Opacity")
    +    pc.opacityType = pc.Constant
    +    pc.opacity = 0.25
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    # change glyph type while transparent
    +    pc.pointType = pc.Box
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    pc.opacityType = pc.FullyOpaque
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("noise.silo"))
    +
    +    TestSection("Unstructured grid, cell-centered data, poly-vertex cells")
    +    OpenDatabase(data_path("vtk_test_data/ugrid_polyvertex_points.vtk"))
    +    AddPlot("Pseudocolor", "foo_cells")
    +    DrawPlots()
    +    v2 = GetView2D()
    +    v2.windowCoords = (-0.945, 9.945, -0.945, 9.945)
    +    SetView2D(v2)
    +    pc.pointType = pc.Axis
    +    pc.pointSize = 0.6
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +    pc.pointType = pc.Box
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +    ChangeActivePlotsVar("u")
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    TestSection("scaling point glyphs by variable")
    +    pc.pointSizeVarEnabled = 1
    +    pc.pointSize = 0.1
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    pc.pointSizeVar = "foo_cells"
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    ChangeActivePlotsVar("foo_cells")
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +    pc.pointSizeVar = "u"
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_point_glyphs_%02d" %next(idx))
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/ugrid_polyvertex_points.vtk"))
    +
    +
    +def MixedTopology():
    +    TestSection("ugrid, vertex and poly vertex, line and polyline")
    +    OpenDatabase(data_path("vtk_test_data/ugrid_mixed_cells.vtk"))
    +    AddPlot("Pseudocolor","foo_cells")
    +    pc = PseudocolorAttributes()
    +    pc.colorTableName = "rainbow"
    +    pc.invertColorTable = 1
    +    pc.lineWidth = 2
    +    pc.pointSizePixels = 10
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (-0.195485, 0.629643, 0.751888)
    +    v.focus = (1.5, 0.5, 0.5)
    +    v.viewUp = (0.158378, 0.776885, -0.609398)
    +    SetView3D(v)
    +
    +    idx = itertools.count(1)
    +    Test("pseudocolor_mixed_cells_%02d"%next(idx))
    +
    +    pc.pointType = pc.Tetrahedron
    +    pc.pointSize = 0.4
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_mixed_cells_%02d"%next(idx))
    +
    +    pc.lineType = pc.Tube
    +    pc.tubeRadiusBBox = 0.05
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_mixed_cells_%02d"%next(idx))
    +
    +    pc.tubeRadiusSizeType = pc.Absolute
    +    pc.tubeRadiusAbsolute = 0.125
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_mixed_cells_%02d"%next(idx))
    +
    +    pc.tubeRadiusSizeType = pc.FractionOfBBox
    +    pc.tailStyle = pc.Spheres
    +    pc.headStyle = pc.Cones
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_mixed_cells_%02d"%next(idx))
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/ugrid_mixed_cells.vtk"))
    +
    +def DoLines(ltype):
    +    pc = PseudocolorAttributes()
    +    idx =  itertools.count(1)
    +    if ltype == "tube":
    +        TestSection("Line Tubes")
    +        pc.lineType = pc.Tube
    +    else:
    +        TestSection("Line Ribbons")
    +        pc.lineType = pc.Ribbon
    +
    +    pc.tubeRadiusSizeType = pc.FractionOfBBox
    +    pc.tubeRadiusBBox = 0.2
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_%s_%02d" %(ltype, next(idx)))
    +
    +    if ltype == "tube":
    +        # test tube resolution
    +        pc.tubeResolution = 3
    +        SetPlotOptions(pc)
    +        Test("pseudocolor_line_%s_%02d" %(ltype, next(idx)))
    +
    +        pc.tubeResolution = 4
    +        SetPlotOptions(pc)
    +        Test("pseudocolor_line_%s_%02d" %(ltype, next(idx)))
    +
    +        pc.tubeResolution = 20
    +        SetPlotOptions(pc)
    +        Test("pseudocolor_line_%s_%02d" %(ltype, next(idx)))
    +
    +    pc.tubeRadiusSizeType = pc.Absolute
    +    pc.tubeRadiusAbsolute = 0.6
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_%s_%02d" %(ltype, next(idx)))
    +
    +    pc.tubeRadiusVarEnabled = 1
    +    pc.tubeRadiusVar = "var2"
    +    pc.tubeRadiusVarRatio = 2
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_%s_%02d" %(ltype, next(idx)))
    +
    +    pc.tubeRadiusVar = "var1"
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_%s_%02d" %(ltype, next(idx)))
    +
    +    ChangeActivePlotsVar("var1")
    +    Test("pseudocolor_line_%s_%02d" %(ltype, next(idx)))
    +
    +    pc.tubeRadiusVar = "var2"
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_%s_%02d" %(ltype, next(idx)))
    +
    +def DoEndpoints():
    +    TestSection("line endpoints")
    +    ChangeActivePlotsVar("var2")
    +    idx = itertools.count(1)
    +    pc = PseudocolorAttributes()
    +    pc.lineType = pc.Tube
    +    pc.tubeRadiusSizeType = pc.Absolute
    +    pc.tubeRadiusAbsolute = 0.1
    +    pc.tailStyle = pc.Spheres
    +    pc.headStyle = pc.Cones
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +    pc.endPointRadiusSizeType = pc.Absolute
    +    pc.endPointRadiusAbsolute = 0.5
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +    pc.endPointResolution = 3
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +    pc.endPointResolution = 20
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +    pc.endPointRadiusVarEnabled = 1
    +    pc.endPointRadiusVar = "var2"
    +    pc.endPointRadiusVarRatio = 2
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +    pc.endPointRadiusVar = "var1"
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +    ChangeActivePlotsVar("var2")
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +    pc.endPointRadiusVar = "var2"
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +    pc.endPointRatio = 1
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +    pc.endPointRatio = 10
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_line_endpoints_%02d"%next(idx))
    +
    +
    +def Lines():
    +    OpenDatabase(data_path("vtk_test_data/lines.vtk"))
    +    AddPlot("Pseudocolor", "var2")
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (0.508199, 0.390103, 0.767824)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (-0.065159, 0.906394, -0.417379)
    +    v.imageZoom = 1.4641
    +    SetView3D(v)
    +
    +    DoLines("tube")
    +    DoLines("ribbon")
    +    DoEndpoints()
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/lines.vtk"))
    +
    +
    +def ObjectRenderingOptions():
    +    TestSection("Object rendering options")
    +    idx = itertools.count(1)
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +    AddPlot("Pseudocolor", "p")
    +    DrawPlots()
    +
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (0.30955, 0.438716, 0.843627)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.00113002, 0.887033, -0.461704)
    +    SetView3D(v)
    +
    +    Test("pseudocolor_rendering_options_%02d" %next(idx))
    +
    +    pc = PseudocolorAttributes()
    +    pc.renderWireframe = 1
    +    pc.wireframeColor = (255, 0, 0)
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_rendering_options_%02d" %next(idx))
    +
    +    pc.renderPoints = 1
    +    pc.pointColor = (255, 255, 0)
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_rendering_options_%02d" %next(idx))
    +
    +    pc.renderSurfaces = 0
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_rendering_options_%02d" %next(idx))
    +
    +    pc.renderPoints = 0
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_rendering_options_%02d" %next(idx))
    +
    +    pc.renderWireframe = 0
    +    pc.renderPoints = 1
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_rendering_options_%02d" %next(idx))
    +
    +    pc.pointType = pc.Sphere
    +    pc.pointSize = 0.02
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_rendering_options_%02d" %next(idx))
    +
    +    pc.renderSurfaces = 1
    +    SetPlotOptions(pc)
    +    Test("pseudocolor_rendering_options_%02d" %next(idx))
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("rect3d.silo"))
    +
    +def ExternalSurface():
    +    TestSection("External Surface")
    +    OpenDatabase(data_path("external_surface_test_data/data.nv0_step00000.root"))
    +
    +    DefineScalarExpression("dUdy", "gradient(UVelC)[1]")
    +
    +    AddPlot("Pseudocolor", "UVelC")
    +
    +    PseudocolorAtts = PseudocolorAttributes()
    +    PseudocolorAtts.centering = PseudocolorAtts.Nodal  # Natural, Nodal, Zonal
    +    SetPlotOptions(PseudocolorAtts)
    +    DrawPlots()
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0.90786, 0.176706, 0.380217)
    +    View3DAtts.focus = (3.14159, 0, 1.5708)
    +    View3DAtts.viewUp = (-0.166194, 0.98423, -0.0605927)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 3.65199
    +    View3DAtts.nearPlane = -7.30397
    +    View3DAtts.farPlane = 7.30397
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (3.14159, 0, 1.5708)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +    ChangeActivePlotsVar("dUdy")
    +    Test("pseudocolor_external_surface")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("external_surface_test_data/data.nv0_step00000.root"))
    +
    +def Main():
    +    TestScale()
    +    TestDomainBoundaries()
    +    PointGlyphing()
    +    MixedTopology()
    +    Lines()
    +    ObjectRenderingOptions()
    +    ExternalSurface()
    +
    +Main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_ray_trace.html b/2024-12-12-22:00/poodle_trunk_serial/plots_ray_trace.html new file mode 100644 index 000000000..4c86bd398 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_ray_trace.html @@ -0,0 +1,108 @@ + +Results for plots/ray_trace.py + +

    Results of VisIt Regression Test - plots/ray_trace

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ray_trace_010.000.00
    ray_trace_01_pan0.000.00
    ray_trace_020.000.00
    ray_trace_030.000.00
    ray_trace_040.000.00
    ray_trace_050.000.00
    ray_trace_05_pan0.000.00
    ray_trace_060.000.00
    ray_trace_070.000.00
    ray_trace_080.000.00
    ray_trace_090.000.00
    ray_trace_100.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_ray_trace_py.html b/2024-12-12-22:00/poodle_trunk_serial/plots_ray_trace_py.html new file mode 100644 index 000000000..efa4ff244 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_ray_trace_py.html @@ -0,0 +1,220 @@ +plots/ray_trace.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ray_trace.py
    +#
    +#  Tests:      ray tracing with the volume plot
    +#
    +#  Defect ID:  '1949, '5699, '6916
    +#
    +#  Programmer: Hank Childs
    +#  Date:       December 3, 2004
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Dec 15 09:36:51 PDT 2004
    +#    I changed the flag that's used to make it do software rendering.
    +#
    +#    Hank Childs, Wed Feb 16 07:34:07 PST 2005
    +#    Rename variables that have unsupported characters.
    +#
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +#    Hank Childs, Fri Mar  3 09:09:04 PST 2006
    +#    Add testing for ray-tracing in multiple windows.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Hank Childs, Fri Nov 18 08:51:58 PST 2011
    +#    Add regression tests for panning while ray tracing.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def test1(a):
    +    #
    +    # Start off by testing that we can bring up a normal volume plot and smooth
    +    # the data.  Also test that it can interact with the bounding box correctly.
    +    # 
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Volume", "d")
    +    vol_atts = VolumeAttributes()
    +    vol_atts.rendererType = vol_atts.Composite
    +    vol_atts.smoothData = 1
    +    SetPlotOptions(vol_atts)
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.369824, 0.535308, 0.759391)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (-0.022009, 0.812062, -0.583155)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +
    +    Test("ray_trace_01")
    +
    +    v.imagePan = (0.1, -0.1)
    +    SetView3D(v)
    +    Test("ray_trace_01_pan")
    +    v.imagePan = (0, 0)
    +    SetView3D(v)
    +
    +    #
    +    # Now test that it can play with other plots.
    +    #
    +    AddPlot("Pseudocolor", "d")
    +    pc_atts = PseudocolorAttributes()
    +    pc_atts.colorTableName = "gray"
    +    SetPlotOptions(pc_atts)
    +    AddOperator("Slice")
    +    slice_atts = SliceAttributes()
    +    slice_atts.originPercent = 90
    +    slice_atts.axisType = slice_atts.ZAxis
    +    slice_atts.originType = slice_atts.Percent
    +    slice_atts.project2d = 0
    +    SetOperatorOptions(slice_atts)
    +    DrawPlots()
    +
    +    Test("ray_trace_02")
    +
    +    #
    +    # Test that it can play well with other plots when doin orthographic 
    +    # projection.
    +    #
    +    v.perspective = 0
    +    SetView3D(v)
    +
    +    Test("ray_trace_03")
    +
    +    #
    +    # Now test that we handle it well when the near and far clipping planes
    +    # intersect the dataset.
    +    #
    +    v.perspective = 1
    +    v.nearPlane = -0.5
    +    v.farPlane = 0.5
    +    SetView3D(v)
    +
    +    Test("ray_trace_04")
    +
    +    DeleteAllPlots()
    +
    +def test2(a):
    +    #
    +    # Test that we can do curvilinear/unstructured meshes, which do an entirely
    +    # different sort of sampling.
    +    #
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    AddPlot("Volume", "d")
    +    vol_atts = VolumeAttributes()
    +    vol_atts.rendererType = vol_atts.Composite
    +    vol_atts.smoothData = 0
    +    SetPlotOptions(vol_atts)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (-0.369824, 0.535308, 0.759391)
    +    v.viewUp = (-0.022009, 0.812062, -0.583155)
    +    SetView3D(v)
    +
    +    Test("ray_trace_05")
    +
    +    v.imagePan = (0.1, -0.1)
    +    SetView3D(v)
    +    Test("ray_trace_05_pan")
    +    v.imagePan = (0, 0)
    +    SetView3D(v)
    +
    +    DeleteAllPlots()
    +
    +def test3(a):
    +    #
    +    # Test a multi-block rectilinear problem with ghost zones.  Use an AMR problem,
    +    # because that will test the best if we are removing ghost zones correctly
    +    # (ghost zone values in AMR meshes don't necessarily agree with the values of
    +    #  the zones that refine them).
    +    #
    +    OpenDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +    AddPlot("Volume", "Primitive Var _number_0")
    +    vol_atts = VolumeAttributes()
    +    vol_atts.rendererType = vol_atts.Composite
    +    vol_atts.smoothData = 0
    +    vol_atts.useColorVarMin = 1
    +    vol_atts.colorVarMin = 22
    +    SetPlotOptions(vol_atts)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (-0.369824, 0.535308, 0.759391)
    +    v.viewUp = (-0.022009, 0.812062, -0.583155)
    +    SetView3D(v)
    +
    +    Test("ray_trace_06")
    +
    +    #
    +    # Now do it again for another timestep.
    +    #
    +    SetTimeSliderState(7)
    +    Test("ray_trace_07")
    +
    +    # 
    +    # Now go to window #2 and do some more raytracing.
    +    #
    +    AddWindow()
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    SetAnnotationAttributes(a)
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Volume", "d")
    +    vol_atts = VolumeAttributes()
    +    vol_atts.rendererType = vol_atts.Composite
    +    SetPlotOptions(vol_atts)
    +    DrawPlots()
    +    Test("ray_trace_08")
    +
    +    #
    +    # There was a bug where adding a new plot with a different variable
    +    # would cause the ray tracing to fail.  Test that the fix still works.
    +    #
    +    AddPlot("Contour", "u")
    +    DrawPlots()
    +    Test("ray_trace_09")
    +
    +    # And make sure everything is okay in window #1.
    +    SetActiveWindow(1)
    +    SetActivePlots(0)
    +    DeleteActivePlots()
    +    Test("ray_trace_10")
    +
    +def main():
    +    # Turn off all annotation
    +    a = AnnotationAttributes()
    +    TurnOffAllAnnotations(a)
    +
    +    # Turn bbox on.  This tests:
    +    # - interaction with geometry
    +    # - that image based plots still get added to the vis window, causing a 
    +    #   bounding box to get generated.
    +    a.axes3D.bboxFlag = 1
    +    SetAnnotationAttributes(a)
    +
    +    test1(a)
    +    test2(a)
    +    test3(a)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_scatter.html b/2024-12-12-22:00/poodle_trunk_serial/plots_scatter.html new file mode 100644 index 000000000..1f830c811 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_scatter.html @@ -0,0 +1,207 @@ + +Results for plots/scatter.py + +

    Results of VisIt Regression Test - plots/scatter

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Test plot options
    scatter_000.000.00
    scatter_010.000.00
    scatter_020.000.00
    scatter_030.000.00
    scatter_040.000.00
    scatter_050.000.00
    scatter_060.000.00
    scatter_070.000.00
    scatter_080.000.00
    scatter_090.000.00
    scatter_100.000.00
    scatter_110.000.00
    scatter_120.000.00
    scatter_130.000.00
    scatter_140.000.00
    scatter_150.000.00
    scatter_160.000.00
    Multiblock and scale to cube
    scatter_170.000.00
    scatter_180.000.00
    scatter_190.000.00
    scatter_200.000.00
    Set min and max values, make sure colors and extents are right
    scatter_210.000.00
    scatter_220.000.00
    scatter_230.000.00
    scatter_240.000.00
    scatter_250.000.00
    scatter_260.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_scatter_py.html b/2024-12-12-22:00/poodle_trunk_serial/plots_scatter_py.html new file mode 100644 index 000000000..121e2ac3c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_scatter_py.html @@ -0,0 +1,343 @@ +plots/scatter.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial
    +#  CLASSES: nightly
    +#
    +#  Test Case:  scatter.py 
    +#
    +#  Tests:      Tests the scatter plot
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Tue Dec 14 16:58:04 PST 2004
    +#
    +#  Modifications:
    +#    Brad Whitlock, Mon Jul 18 17:19:04 PST 2005
    +#    Added tests for multiblock data and "scale to cube" that make sure that
    +#    the extents are gotten correctly beforehand. If the extents are not
    +#    gathered beforehand for a multi-block dataset when "scale to cube" is
    +#    on then each domain will use its local extents to map its values to
    +#    a cube and none of the cubes from the different domains will match,
    +#    causing an incorrect picture.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +# Set up some annotation settings.
    +a = AnnotationAttributes()
    +a.backgroundColor = (0,0,0,255)
    +a.foregroundColor = (255,255,255,255)
    +TurnOffAllAnnotations(a)
    +
    +TestSection("Test plot options")
    +
    +#
    +# Set up a simple 2 variable scatter plot.
    +#
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Scatter", "hardyglobal")
    +s = ScatterAttributes()
    +s.var2 = "shepardglobal"
    +s.scaleCube = 0
    +SetPlotOptions(s)
    +DrawPlots()
    +Test("scatter_00")
    +
    +v0 = GetView2D()
    +
    +
    +#
    +# Try setting x min and max
    +#
    +s.var1MinFlag = 1
    +s.var1MaxFlag = 1
    +s.var1Min = 2
    +s.var1Max = 4
    +SetPlotOptions(s)
    +SetView2D(v0)
    +Test("scatter_01")
    +
    +#
    +# Try setting some scaling options for x
    +#
    +s.var1MinFlag = 0
    +s.var1MaxFlag = 0
    +s.var1Scaling = s.Log
    +s.scaleCube = 1
    +SetPlotOptions(s)
    +ResetView()
    +v1 = GetView2D()
    +Test("scatter_02")
    +
    +s.var1Scaling = s.Skew
    +s.var1SkewFactor = 10
    +SetPlotOptions(s)
    +Test("scatter_03")
    +s.var1SkewFactor = 0.01
    +SetPlotOptions(s)
    +Test("scatter_04")
    +
    +#
    +# Add a 3rd dimension
    +#
    +s.var1Scaling = s.Linear
    +s.var3 = "radial"
    +s.var3Role = s.Coordinate2
    +SetPlotOptions(s)
    +v2 = View3DAttributes()
    +v2.viewNormal = (-0.70917, 0.324761, 0.625787)
    +v2.focus = (0.5, 0.5, 0.5)
    +v2.viewUp = (0.218647, 0.945137, -0.242712)
    +v2.viewAngle = 30
    +v2.parallelScale = 0.866025
    +v2.nearPlane = -1.73205
    +v2.farPlane = 1.73205
    +v2.imagePan = (0.00504899, 0.0411036)
    +v2.imageZoom = 1.44477
    +v2.perspective = 1
    +v2.eyeAngle = 2
    +SetView3D(v2)
    +Test("scatter_05")
    +
    +#
    +# Add a color dimension
    +#
    +s.var4 = "default"
    +s.var4Role = s.Color
    +SetPlotOptions(s)
    +Test("scatter_06")
    +
    +
    +#
    +# Try the min, max for the color
    +#
    +s.var4MinFlag = 1
    +s.var4Min = 2.5
    +SetPlotOptions(s)
    +Test("scatter_07")
    +
    +s.var4MinFlag = 0
    +s.var4MaxFlag = 1
    +s.var4Max = 3.4
    +SetPlotOptions(s)
    +Test("scatter_08")
    +
    +#
    +# Try scaling the color
    +#
    +s.var4MinFlag = 0
    +s.var4MaxFlag = 0
    +s.var4Scaling = s.Log
    +SetPlotOptions(s)
    +Test("scatter_09")
    +
    +s.var4Scaling = s.Skew
    +s.var4SkewFactor = 10
    +SetPlotOptions(s)
    +Test("scatter_10")
    +
    +s.var4SkewFactor = 0.01
    +SetPlotOptions(s)
    +Test("scatter_11")
    +
    +
    +#
    +# Try changing color variables
    +#
    +s.var4Scaling = s.Linear
    +s.var4 = "chromeVf"
    +SetPlotOptions(s)
    +Test("scatter_12")
    +
    +
    +#
    +# Try changing roles of color and Z.
    +#
    +s.var4Role = s.Coordinate2
    +s.var3Role = s.Color
    +SetPlotOptions(s)
    +Test("scatter_13")
    +
    +#
    +# Change the roles back and change the color table.
    +#
    +s.var4Role = s.Color
    +s.var3Role = s.Coordinate2
    +s.var4 = "hardyglobal"
    +s.colorTableName = "gray"
    +SetPlotOptions(s)
    +Test("scatter_14")
    +
    +#
    +# Make it use a single color
    +#
    +s.var4Role = s.NONE
    +s.colorType = 1
    +s.singleColor = (0,255,0,255)
    +SetPlotOptions(s)
    +Test("scatter_15")
    +
    +#
    +# Turn off the legend
    +#
    +s.legendFlag = 0
    +SetPlotOptions(s)
    +Test("scatter_16")
    +DeleteActivePlots()
    +
    +#
    +# Try a Scatter plot with multi-block data
    +#
    +TestSection("Multiblock and scale to cube")
    +OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +AddPlot("Scatter", "d")
    +s = ScatterAttributes()
    +s.var2 = "u"
    +s.var2Role = s.Coordinate1
    +s.var3 = "v"
    +s.var3Role = s.Coordinate2
    +s.var4 = "u"
    +s.var4Role = s.Color
    +s.scaleCube = 1
    +s.pointSize = 0.01
    +s.pointType = s.Box
    +SetPlotOptions(s)
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.482571, 0.41728, 0.770066)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.269481, 0.907303, -0.322772)
    +v.viewAngle = 30
    +v.parallelScale = 0.864825
    +v.nearPlane = -1.72965
    +v.farPlane = 1.72965
    +v.imagePan = (0.0547107, 0.0441637)
    +v.imageZoom = 1.08726
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0.5, 0.5, 0.5)
    +SetView3D(v)
    +Test("scatter_17")
    +
    +# Try different scalings.
    +s.var1Scaling = s.Log
    +SetPlotOptions(s)
    +Test("scatter_18")
    +
    +s.var1Scaling = s.Skew
    +s.var1SkewFactor = 50.
    +SetPlotOptions(s)
    +Test("scatter_19")
    +DeleteActivePlots()
    +
    +#
    +# Do different variables.
    +#
    +DefineScalarExpression("xc", "coord(mesh1)[0]")
    +DefineScalarExpression("yc", "coord(mesh1)[1]")
    +DefineScalarExpression("zc", "coord(mesh1)[2]")
    +DefineScalarExpression("uvw_prod", "u*v*w")
    +AddPlot("Scatter", "xc")
    +s = ScatterAttributes()
    +s.var2 = "yc"
    +s.var2Role = s.Coordinate1
    +s.var3 = "zc"
    +s.var3Role = s.Coordinate2
    +s.var4 = "uvw_prod"
    +s.var4Role = s.Color
    +s.scaleCube = 1
    +s.pointSize = 0.01
    +s.pointType = s.Box
    +SetPlotOptions(s)
    +DrawPlots()
    +
    +v.viewNormal = (0.799291, 0.383343, 0.462798)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.325714, 0.92354, -0.202447)
    +v.viewAngle = 30
    +v.parallelScale = 0.866025
    +v.nearPlane = -1.73205
    +v.farPlane = 1.73205
    +v.imagePan = (0.000204097, 0.0398577)
    +v.imageZoom = 1.07422
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0.5, 0.5, 0.5)
    +SetView3D(v)
    +Test("scatter_20")
    +DeleteActivePlots()
    +
    +#
    +# Set min/max values in X,Y,Z and make sure that the points are the right
    +# color and the extents are right.
    +#
    +TestSection("Set min and max values, make sure colors and extents are right")
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +AddPlot("Scatter", "d")
    +s = ScatterAttributes()
    +s.var2 = "p"
    +s.var2Role = s.Coordinate1
    +s.var3 = "default"
    +s.var3Role = s.Color
    +s.pointType = s.Axis
    +SetPlotOptions(s)
    +DrawPlots()
    +ResetView()
    +
    +Test("scatter_21")
    +
    +# Set a min in X and make sure the points are still the right color.
    +s.var1MinFlag = 1
    +s.var1Min = 3.5
    +SetPlotOptions(s)
    +Test("scatter_22")
    +
    +# Set min max in X and Y
    +s.var1MinFlag = 1
    +s.var1MaxFlag = 1
    +s.var1Min = 2.
    +s.var1Max = 4.
    +s.var2MinFlag = 1
    +s.var2MaxFlag = 1
    +s.var2Min = 0.3
    +s.var2Max = 0.4
    +SetPlotOptions(s)
    +Test("scatter_23")
    +
    +DeleteActivePlots()
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Scatter", "hardyglobal")
    +s = ScatterAttributes()
    +s.var2 = "shepardglobal"
    +s.var2Role = s.Coordinate1
    +s.var3 = "radial"
    +s.var3Role = s.Coordinate2
    +s.var4 = "radial"
    +s.var4Role = s.Color
    +s.scaleCube = 1
    +SetPlotOptions(s)
    +DrawPlots()
    +SetView3D(v2)
    +Test("scatter_24")
    +
    +# Set a min in Z.
    +s.var3MinFlag = 1
    +s.var3Min = 15.
    +SetPlotOptions(s)
    +Test("scatter_25")
    +
    +# Set a max in Z.
    +s.var3MaxFlag = 1
    +s.var3Max = 22.
    +SetPlotOptions(s)
    +Test("scatter_26")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_singlecolor.html b/2024-12-12-22:00/poodle_trunk_serial/plots_singlecolor.html new file mode 100644 index 000000000..dcc053589 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_singlecolor.html @@ -0,0 +1,54 @@ + +Results for plots/singlecolor.py + +

    Results of VisIt Regression Test - plots/singlecolor

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    singlecolor000.000.00
    singlecolor010.000.00
    singlecolor020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_singlecolor_py.html b/2024-12-12-22:00/poodle_trunk_serial/plots_singlecolor_py.html new file mode 100644 index 000000000..8ac8da0e3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_singlecolor_py.html @@ -0,0 +1,77 @@ +plots/singlecolor.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  singlecolor.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, single domain
    +#              plots     - Boundary, FilledBoundary, Subset
    +#
    +#  Defect ID:  VisIt00002372
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Oct 23 15:36:30 PST 2003
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use domains var for Subset plot test instead of materials.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Set the single color to light blue and partially transparent using the
    +# plot's global opacity setting.
    +def SetSingleColor(atts):
    +    atts.singleColor = (153, 204, 255, 255)
    +    atts.colorType = b.ColorBySingleColor
    +    atts.opacity = 0.4
    +    SetPlotOptions(atts)
    +
    +# Set the view that we want to use.
    +def InitializeView():
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.428395 ,0.549517, 0.717293)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.186332, 0.830487, -0.52495)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.imagePan = (0.0183269, -0.0257188)
    +    v.imageZoom = 1.17591
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    SetView3D(v)
    +
    +# Open the database.
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +# Test the single color opacity for the Boundary plot
    +AddPlot("Boundary", "mat1")
    +b = BoundaryAttributes()
    +SetSingleColor(b)
    +DrawPlots()
    +InitializeView()
    +Test("singlecolor00")
    +
    +# Test the single color opacity for the FilledBoundary plot
    +DeleteAllPlots()
    +AddPlot("FilledBoundary", "mat1")
    +f = FilledBoundaryAttributes()
    +SetSingleColor(f)
    +DrawPlots()
    +Test("singlecolor01")
    +
    +# Test the single color opacity for the Subset plot
    +DeleteAllPlots()
    +AddPlot("Subset", "domains")
    +s = SubsetAttributes()
    +SetSingleColor(s)
    +DrawPlots()
    +Test("singlecolor02")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_subset.html b/2024-12-12-22:00/poodle_trunk_serial/plots_subset.html new file mode 100644 index 000000000..8437b04fd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_subset.html @@ -0,0 +1,135 @@ + +Results for plots/subset.py + +

    Results of VisIt Regression Test - plots/subset

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    subset_010.000.00
    subset_020.000.00
    subset_030.000.00
    subset_040.000.00
    subset_050.000.00
    subset_060.000.00
    subset_070.000.00
    subset_080.000.00
    subset_090.000.00
    subset_100.000.00
    point mesh
    subset_110.000.00
    subset_120.000.00
    subset_130.000.00
    subset_140.000.00
    subset_150.000.00
    subset_160.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_subset_py.html b/2024-12-12-22:00/poodle_trunk_serial/plots_subset_py.html new file mode 100644 index 000000000..f5f6b45a3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_subset_py.html @@ -0,0 +1,190 @@ +plots/subset.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  subset.py
    +#
    +#  Tests:      meshes    - 2D curvilinear, multiple domain
    +#              plots     - subset
    +#
    +#  Defect ID:  '6105, '6762
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 31, 2005
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Tue Nov 15 07:28:43 PST 2005
    +#    Added test for subset plus macro expression.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Hank Childs, Mon Mar 26 12:00:23 PDT 2012
    +#    Add test for Subset plot + material selection
    +#
    +#    Kathleen Biagas, Fri Jun  5 08:35:31 PDT 2020
    +#    Added tests for point glyhphing/sizing for data that doesn't declare
    +#    itself a point mesh and for data with mixed topology.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("multi_curv2d.silo"))
    +
    +AddPlot("Subset", "domains")
    +DrawPlots()
    +
    +v = GetView2D()
    +v.viewportCoords = (0, 1, 0, 1)
    +v.windowCoords = (-5, 5, 0, 5)
    +SetView2D(v)
    +
    +Test("subset_01")
    +
    +s = SubsetAttributes()
    +s.wireframe = 1
    +SetPlotOptions(s)
    +Test("subset_02")
    +
    +i = IsovolumeAttributes()
    +i.variable = "d"
    +i.lbound = 2.7
    +i.ubound = 3.6
    +SetDefaultOperatorOptions(i)
    +AddOperator("Isovolume")
    +DrawPlots()
    +Test("subset_03")
    +
    +s.wireframe = 0
    +SetPlotOptions(s)
    +Test("subset_04")
    +
    +RemoveLastOperator()
    +op = OnionPeelAttributes()
    +op.categoryName = "domains"
    +op.subsetName = "domain3"
    +op.index = (100)
    +SetDefaultOperatorOptions(op)
    +AddOperator("OnionPeel")
    +DrawPlots()
    +
    +v.windowCoords = (-0.7, -0.3, 3.1, 3.25)
    +SetView2D(v)
    +
    +Test("subset_05")
    +
    +# This is a different wireframe path than the other tests, because
    +# we have special handling for single cell wireframes.
    +# This corresponds to ticket '6105.
    +s.wireframe = 1
    +SetPlotOptions(s)
    +Test("subset_06")
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multi_curv2d.silo"))
    +
    +OpenDatabase(data_path("boxlib_test_data/2D/plt0822/Header"))
    +
    +AddPlot("Subset", "levels")
    +AddOperator("Isovolume")
    +DefineScalarExpression("vort", "curl(vel)")
    +iso_atts = IsovolumeAttributes()
    +iso_atts.variable = "vort"
    +iso_atts.lbound = -10000000
    +iso_atts.ubound = 0
    +SetOperatorOptions(iso_atts)
    +DrawPlots()
    +ResetView()
    +Test("subset_07")
    +
    +RemoveLastOperator()
    +s = SILRestriction()
    +mats = s.SetsInCategory("materials")
    +s.TurnOffSet(mats[0])
    +s.TurnOffSet(mats[1])
    +SetPlotSILRestriction(s)
    +Test("subset_08")
    +
    +ChangeActivePlotsVar("patches")
    +Test("subset_09")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("boxlib_test_data/2D/plt0822/Header"))
    +
    +OpenDatabase(data_path("silo_amr_test_data/amr2d_wmrgtree.silo"))
    +
    +AddPlot("Subset", "blocks(amr_mesh)")
    +DrawPlots()
    +
    +s = SubsetAttributes()
    +s.wireframe = 1
    +SetPlotOptions(s)
    +
    +Test("subset_10")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("silo_amr_test_data/amr2d_wmrgtree.silo"))
    +
    +TestSection("point mesh")
    +OpenDatabase(data_path("blueprint_v0.3.1_test_data/braid_3d_examples_json.root"))
    +AddPlot("Subset", "domains(points_mesh)")
    +
    +s = SubsetAttributes()
    +s.colorType = s.ColorBySingleColor
    +s.singleColor = (0, 170, 255, 255)
    +SetPlotOptions(s)
    +DrawPlots()
    +ResetView()
    +v = GetView3D()
    +v.viewNormal = (-0.605449, 0.469667, 0.642529)
    +v.viewUp = (0.169201, 0.864818, -0.472716)
    +SetView3D(v)
    +Test("subset_11")
    +
    +s.pointSizePixels = 5
    +SetPlotOptions(s)
    +Test("subset_12")
    +
    +
    +s.pointType = s.Tetrahedron
    +s.pointSize = 3
    +SetPlotOptions(s)
    +Test("subset_13")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("blueprint_v0.3.1_test_data/braid_3d_examples_json.root"))
    +
    +
    +OpenDatabase(data_path("vtk_test_data/ugrid_mixed_cells.vtk"))
    +
    +AddPlot("Subset", "mesh")
    +s = SubsetAttributes()
    +s.colorType = s.ColorBySingleColor
    +s.singleColor = (0, 170, 255, 255)
    +s.lineWidth = 3
    +s.pointType = s.Point
    +s.pointSizePixels = 2
    +SetPlotOptions(s)
    +DrawPlots()
    +ResetView()
    +
    +Test("subset_14")
    +
    +s.pointSizePixels = 5
    +SetPlotOptions(s)
    +Test("subset_15")
    +
    +s.pointType = s.Icosahedron
    +s.pointSize = 0.5
    +SetPlotOptions(s)
    +Test("subset_16")
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("vtk_test_data/ugrid_mixed_cells.vtk"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_surface.html b/2024-12-12-22:00/poodle_trunk_serial/plots_surface.html new file mode 100644 index 000000000..38c121290 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_surface.html @@ -0,0 +1,96 @@ + +Results for plots/surface.py + +

    Results of VisIt Regression Test - plots/surface

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    surface_010.000.00
    surface_020.000.00
    surface_030.000.00
    surface_040.000.00
    surface_050.000.00
    surface_060.000.00
    surface_070.000.00
    surface_080.000.00
    surface_090.000.00
    surface_100.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_surface_py.html b/2024-12-12-22:00/poodle_trunk_serial/plots_surface_py.html new file mode 100644 index 000000000..0f6a50741 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_surface_py.html @@ -0,0 +1,101 @@ +plots/surface.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  surface.py
    +#
    +#  Tests:      mesh      - 2D structured, single domain
    +#                        - 2D rectilinear, single domain
    +#              plots     - surface
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       August 22, 2003
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Wed Sep  3 17:21:44 PDT 2003
    +#    Add tests 4-10, testing more options of the Surface plot. 
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +
    +#Test default surface plot (surface on, wireframe off)
    +AddPlot("Surface", "u")
    +DrawPlots()
    +Test("surface_01")
    +
    +#Turn on  Wireframe
    +s = SurfaceAttributes()
    +s.wireframeFlag=1
    +SetPlotOptions(s)
    +Test("surface_02")
    +
    +#Turn off surface, leaving only wireframe
    +s.surfaceFlag=0
    +SetPlotOptions(s)
    +Test("surface_03")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("noise2d.silo"))
    +
    +AddPlot("Surface", "shepardglobal")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.25, -0.95, -0.2)
    +v.focus = (0, 0, 10)
    +v.viewUp = (0.04, 0.2, -0.98)
    +v.imageZoom = 1.001
    +SetView3D(v)
    +Test("surface_04")
    +
    +# Turn off lighting
    +s = SurfaceAttributes()
    +s.lightingFlag = 0
    +SetPlotOptions(s)
    +Test("surface_05")
    +
    +# Lighting on, wireframe on, log scaling 
    +s.lightingFlag = 1
    +s.wireframeFlag = 1
    +s.scaling = s.Log
    +SetPlotOptions(s)
    +Test("surface_06")
    +
    +# Skew scaling, skew factor = 100
    +s.scaling = s.Skew
    +s.skewFactor = 100
    +SetPlotOptions(s)
    +Test("surface_07")
    +
    +# Skew scaling, skew factor = 0.001
    +s.skewFactor = 0.001
    +SetPlotOptions(s)
    +Test("surface_08")
    +
    +# Solid color for surface
    +s.colorByZFlag = 0
    +s.surfaceColor = (0, 200, 122, 255)
    +SetPlotOptions(s)
    +Test("surface_09")
    +
    +# change wire color, style, turn off surface
    +s.wireframeColor = (0, 0, 255, 255)
    +s.surfaceFlag = 0
    +SetPlotOptions(s)
    +Test("surface_10")
    +
    +
    +
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_tensor.html b/2024-12-12-22:00/poodle_trunk_serial/plots_tensor.html new file mode 100644 index 000000000..71eff1f48 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_tensor.html @@ -0,0 +1,84 @@ + +Results for plots/tensor.py + +

    Results of VisIt Regression Test - plots/tensor

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    tensor_010.000.00
    tensor_020.000.00
    tensor_030.000.00
    tensor_040.000.00
    tensor_050.000.00
    tensor_060.000.00
    tensor_070.000.00
    tensor_080.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_tensor_py.html b/2024-12-12-22:00/poodle_trunk_serial/plots_tensor_py.html new file mode 100644 index 000000000..50f23d4c6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_tensor_py.html @@ -0,0 +1,161 @@ +plots/tensor.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  tensor.py
    +#
    +#  Tests:      tensor    - 3D rectilinear, single domain
    +#              plots     - tensor + some more exhibiting tensor functionality.
    +#
    +#  Defect ID:  '4165
    +#
    +#  Programmer: Hank Childs
    +#  Date:       December 1, 2003
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Fri May  7 08:12:41 PDT 2004
    +#    Re-enable test for decomposing tensors that now works.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state 
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +
    +AddPlot("Tensor", "grad_tensor")
    +t = TensorAttributes()
    +t.autoScale = 0
    +t.nTensors = 55
    +t.scale = 5
    +SetPlotOptions(t)
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.312459, 0.334641, 0.889036)
    +v.focus = (0, 0, 0)
    +v.viewUp = (0.198376, 0.938247, -0.283443)
    +v.viewAngle = 30
    +v.parallelScale = 17.3205
    +v.nearPlane = -34.641
    +v.farPlane = 34.641
    +v.imagePan = (0, 0)
    +v.imageZoom = 1.18209
    +v.perspective = 1
    +v.eyeAngle = 2
    +SetView3D(v)
    +
    +# Test the general tensor plot.
    +Test("tensor_01")
    +
    +AddOperator("Slice")
    +a = SliceAttributes()
    +a.project2d = 0
    +a.normal = (0.667, 0.333, -0.667)
    +SetOperatorOptions(a)
    +DrawPlots()
    +
    +# Test the interaction of the tensor plot with the slice operator.
    +Test("tensor_02")
    +
    +RemoveLastOperator()
    +
    +b = BoxAttributes()
    +b.minx = -2
    +b.maxx = 5
    +b.miny = -3
    +b.maxy = 0
    +b.minz = -8
    +b.maxz = -4
    +SetDefaultOperatorOptions(b)
    +AddOperator("Box")
    +
    +t.nTensors = 20
    +SetPlotOptions(t)
    +DrawPlots()
    +
    +# Test the interaction of the tensor plot with the box operator.
    +Test("tensor_03")
    +
    +DeleteAllPlots()
    +
    +
    +# Test decomposing tensors and creating vectors.  The decomposition of
    +# the XX, YY, and ZZ components of the tensor is the standard gradient --
    +# so if we subtract the gradient from it, we should get all zeros.
    +DefineVectorExpression("major_comps", "{ grad_tensor[0][0], grad_tensor[1][1], grad_tensor[2][2] }")
    +
    +DefineVectorExpression("diff", "major_comps-grad")
    +DefineScalarExpression("mag_diff", "magnitude(diff)")
    +
    +AddPlot("Pseudocolor", "mag_diff")
    +DrawPlots()
    +Test("tensor_04")
    +
    +DeleteAllPlots()
    +
    +
    +DefineScalarExpression("det", "determinant(grad_tensor)")
    +AddPlot("Pseudocolor", "det")
    +p = PseudocolorAttributes()
    +p.maxFlag = 1
    +p.max = 0.4
    +SetPlotOptions(p)
    +t = ThresholdAttributes()
    +t.listedVarNames = ("det")
    +t.lowerBounds = (0.0)
    +SetDefaultOperatorOptions(t)
    +AddOperator("Threshold")
    +DrawPlots()
    +
    +v.viewNormal = (-0.568609, -0.669889, 0.477424)
    +v.focus = (0, 0, 0)
    +v.viewUp = (0.792201, -0.289591, 0.537172)
    +v.viewAngle = 30
    +v.parallelScale = 17.3205
    +v.nearPlane = -34.641
    +v.farPlane = 34.641
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +
    +Test("tensor_05")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("ident", "determinant(grad_tensor*inverse(grad_tensor))")
    +AddPlot("Pseudocolor", "ident")
    +DrawPlots()
    +
    +Test("tensor_06")
    +
    +DeleteAllPlots()
    +DefineScalarExpression("trace", "trace(grad_tensor)")
    +AddPlot("Contour", "trace")
    +DrawPlots()
    +
    +Test("tensor_07")
    +
    +DeleteAllPlots()
    +DefineVectorExpression("ev", "eigenvalue(grad_tensor)")
    +AddPlot("Vector", "ev")
    +v = VectorAttributes()
    +v.autoScale = 0
    +v.scale = 6
    +v.nVectors = 55
    +SetPlotOptions(v)
    +DrawPlots()
    +
    +Test("tensor_08")
    +
    +
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_truecolor.html b/2024-12-12-22:00/poodle_trunk_serial/plots_truecolor.html new file mode 100644 index 000000000..d808dd4ac --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_truecolor.html @@ -0,0 +1,42 @@ + +Results for plots/truecolor.py + +

    Results of VisIt Regression Test - plots/truecolor

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    truecolor_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_truecolor_py.html b/2024-12-12-22:00/poodle_trunk_serial/plots_truecolor_py.html new file mode 100644 index 000000000..5e0052404 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_truecolor_py.html @@ -0,0 +1,21 @@ +plots/truecolor.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  truecolor.py
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       June 29, 2005 
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(data_path("Image_test_data/manhattan.jpg"))
    +
    +
    +AddPlot("Truecolor","color");
    +DrawPlots()
    +
    +Test("truecolor_01")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_vector.html b/2024-12-12-22:00/poodle_trunk_serial/plots_vector.html new file mode 100644 index 000000000..355bd2618 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_vector.html @@ -0,0 +1,150 @@ + +Results for plots/vector.py + +

    Results of VisIt Regression Test - plots/vector

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    vector_010.000.00
    vector_020.000.00
    vector_030.000.00
    vector_040.000.00
    vector_050.000.00
    vector_060.000.00
    vector_070.000.00
    vector_080.000.00
    vector_090.000.00
    vector_100.000.00
    vector_110.000.00
    vector_120.000.00
    vector_130.000.00
    vector_140.000.00
    vector_150.000.00
    vector_160.000.00
    vector_170.000.00
    vector_180.000.00
    vector_190.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_vector_py.html b/2024-12-12-22:00/poodle_trunk_serial/plots_vector_py.html new file mode 100644 index 000000000..b038fb86e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_vector_py.html @@ -0,0 +1,244 @@ +plots/vector.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  vector.py
    +#
    +#  Tests:      vector    - 3D rectilinear, unstructured single domain
    +#              plots     - vector, plus interactions with some operators.
    +#
    +#  Defect ID:  '4954
    +#
    +#  Programmer: Hank Childs
    +#  Date:       June 2, 2004
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Thu Jun 24 12:58:06 PDT 2004
    +#    Set the vector origin explicitly for some cases because I changed the
    +#    default to Tail.
    +#
    +#    Jeremy Meredith, Tue Jul  8 12:54:58 EDT 2008
    +#    Added test for new limit to original cells/nodes only.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state 
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Tue Nov 29 10:41:39 PST 2022
    +#    Replace obsolte 'colorByMag' vector att with 'colorByMagnitude'.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Vector", "vel")
    +vector_atts = VectorAttributes()
    +vector_atts.autoScale = 0
    +SetPlotOptions(vector_atts)
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.453335, 0.442704, 0.773628)
    +v.focus = (0, 0, 0)
    +v.viewUp = (0.256972, 0.895999, -0.362148)
    +v.viewAngle = 30
    +v.parallelScale = 17.3205
    +v.nearPlane = -34.641
    +v.farPlane = 34.641
    +v.imagePan = (0, 0)
    +v.imageZoom = 1.3354
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, 0)
    +SetView3D(v)
    +
    +Test("vector_01")
    +
    +#
    +# Test that we can thin the vector field correctly.
    +#
    +vector_atts.vectorOrigin = vector_atts.Middle
    +vector_atts.nVectors = 1005
    +SetPlotOptions(vector_atts)
    +Test("vector_02")
    +
    +vector_atts.nVectors = 50
    +SetPlotOptions(vector_atts)
    +Test("vector_03")
    +
    +vector_atts.useStride = 1
    +vector_atts.stride = 5
    +SetPlotOptions(vector_atts)
    +Test("vector_04")
    +
    +vector_atts.stride = 1
    +SetPlotOptions(vector_atts)
    +Test("vector_05")
    +
    +vector_atts.stride = 50
    +SetPlotOptions(vector_atts)
    +Test("vector_06")
    +
    +#
    +# Test some rendering portions of the vector plot.
    +#
    +vector_atts.useStride = 0
    +vector_atts.nVectors = 400
    +vector_atts.scale = 0.5
    +SetPlotOptions(vector_atts)
    +Test("vector_07")
    +
    +vector_atts.headOn = 0
    +SetPlotOptions(vector_atts)
    +Test("vector_08")
    +
    +vector_atts.headOn = 1
    +vector_atts.colorByMagnitude = 0
    +vector_atts.vectorColor = (255, 0, 255, 255)
    +SetPlotOptions(vector_atts)
    +Test("vector_09")
    +
    +
    +#
    +# Test zonal vectors.
    +#
    +vector_atts.colorByMagnitude = 1
    +SetPlotOptions(vector_atts)
    +ChangeActivePlotsVar("disp")
    +Test("vector_10")
    +
    +
    +#
    +# Test that we can have other plots in the same window as the vector plot.
    +#
    +DefineScalarExpression("mag", "magnitude(disp)")
    +AddPlot("Pseudocolor", "mag")
    +AddOperator("Isovolume")
    +iso_atts = IsovolumeAttributes()
    +iso_atts.lbound = 3
    +SetOperatorOptions(iso_atts)
    +DrawPlots()
    +Test("vector_11")
    +
    +
    +#
    +# Test that vector plots still work when restricted to a slice, etc.
    +#
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +DefineVectorExpression("v1", "{ vel[0]*coord(quadmesh3d)[0], vel[1]*coord(quadmesh3d)[1], vel[2]*coord(quadmesh3d)[2] }")
    +DefineScalarExpression("mag2", "magnitude(v1)")
    +
    +AddPlot("Vector", "v1")
    +vector_atts = VectorAttributes()
    +vector_atts.autoScale = 0
    +SetPlotOptions(vector_atts)
    +DrawPlots()
    +
    +v.viewNormal = (-0.450822, 0.819923, -0.352824)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (0.868253, 0.311093, -0.386468)
    +v.viewAngle = 30
    +v.parallelScale = 0.866025
    +v.nearPlane = -1.73205
    +v.farPlane = 1.73205
    +v.imagePan = (0, 0)
    +v.imageZoom = 1.3354
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, 0)
    +SetView3D(v)
    +Test("vector_12")
    +
    +iso_surf_atts = IsosurfaceAttributes()
    +iso_surf_atts.variable = "mag2"
    +iso_surf_atts.contourMethod = iso_surf_atts.Value
    +iso_surf_atts.contourValue = (0.2)
    +SetDefaultOperatorOptions(iso_surf_atts)
    +AddOperator("Isosurface")
    +DrawPlots()
    +Test("vector_13")
    +
    +RemoveLastOperator()
    +
    +slice_atts = SliceAttributes()
    +slice_atts.originType = slice_atts.Point
    +slice_atts.originPoint = (0.5, 0.5, 0.5)
    +slice_atts.normal = (1, 1, 1)
    +SetDefaultOperatorOptions(slice_atts)
    +AddOperator("Slice")
    +DrawPlots()
    +Test("vector_14")
    +
    +slice_atts.project2d = 0
    +slice_atts.normal = (1, -0.5, 0.5)
    +SetOperatorOptions(slice_atts)
    +v.viewNormal = (-0.00395109, 0.999884, -0.0147199)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (0.987418, 0.00157403, -0.158122)
    +v.viewAngle = 30
    +v.parallelScale = 0.866025
    +v.nearPlane = -1.73205
    +v.farPlane = 1.73205
    +v.imagePan = (0, 0)
    +v.imageZoom = 1.3354
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 0, 0)
    +SetView3D(v)
    +
    +Test("vector_15")
    +
    +#
    +# Test the "limit vectors to original node/cell" option
    +#
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +DefineVectorExpression("cvel","recenter(vel)")
    +AddPlot("Vector", "vel", 1, 0)
    +AddPlot("Boundary", "mat1", 1, 0)
    +AddPlot("Mesh", "quadmesh2d", 1, 0)
    +SetActivePlots(0)
    +vec=VectorAttributes()
    +vec.useStride=1
    +vec.stride=1
    +vec.scale=0.1
    +v = GetView2D()
    +v.windowCoords=(0,.3,1,1.3)
    +SetView2D(v)
    +SetPlotOptions(vec)
    +TurnMaterialsOff(("3","7","8"))
    +DrawPlots()
    +
    +vec.origOnly = 0
    +SetPlotOptions(vec)
    +Test("vector_16")
    +
    +vec.origOnly = 1
    +SetPlotOptions(vec)
    +Test("vector_17")
    +
    +ChangeActivePlotsVar("cvel")
    +
    +vec.origOnly = 0
    +SetPlotOptions(vec)
    +Test("vector_18")
    +
    +vec.origOnly = 1
    +SetPlotOptions(vec)
    +Test("vector_19")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_volumePlot.html b/2024-12-12-22:00/poodle_trunk_serial/plots_volumePlot.html new file mode 100644 index 000000000..a15847f9f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_volumePlot.html @@ -0,0 +1,231 @@ + +Results for plots/volumePlot.py + +

    Results of VisIt Regression Test - plots/volumePlot

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Volume Plot color control points
    volumePlot_volume_colors_00.000.00
    volumePlot_volume_colors_10.000.00
    volumePlot_volume_colors_20.000.00
    volumePlot_volume_colors_30.000.00
    volumeGaussian_010.000.00
    volumeAspect_010.000.00
    volumeOpacity_010.000.00
    volumeOpacity_020.000.00
    volumeOpacity_030.000.00
    volumeOpacity_040.000.00
    volumeOpacity_050.000.00
    vol_commandRecorded0.000.00
    volumeScaling_010.000.00
    volumeScaling_020.000.00
    volumeScaling_030.000.00
    volumeScaling_040.000.00
    volumeScaling_050.000.00
    volumeScaling_060.000.00
    volumeScaling_070.000.00
    volumeScaling_080.000.00
    volumeScaling_090.000.00
    volumeScaling_100.000.00
    volumeScaling_110.000.00
    volumeScaling_120.000.00
    volumeSampling_010.000.00
    volumeSampling_020.000.00
    volumeSampling_030.000.00
    opacityAttenuation_010.000.00
    opacityAttenuation_020.000.00
    graidentLighting_000.000.00
    graidentLighting_010.000.00
    graidentLighting_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/plots_volumePlot_py.html b/2024-12-12-22:00/poodle_trunk_serial/plots_volumePlot_py.html new file mode 100644 index 000000000..e5cb99ab2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plots_volumePlot_py.html @@ -0,0 +1,663 @@ +plots/volumePlot.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  volumePlot.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, one domain
    +#              plots     - volume
    +#              operators - none
    +#              selection - no
    +#
    +#  Programmer: Kathleen Bonnell
    +#  Date:       March 4, 2005
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Fri Oct 14 10:12:06 PDT 2005
    +#    Added InitAnnotationsLegendOn and TestVolumeOpacity per '6670.
    +#
    +#    Hank Childs, Fri May 26 10:11:52 PDT 2006
    +#    Add test for extremely high aspect ratio meshes.  ['7250]
    +#
    +#    Brad Whitlock, Wed Mar 14 17:18:05 PST 2007
    +#    Added tests for color control points and gaussian control points.
    +#
    +#    Brad Whitlock, Thu Mar 12 09:17:57 PDT 2009
    +#    I changed freeformFlag to opacityMode to reflect changes to the plot
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Hank Childs, Sun Aug 29 16:07:56 PDT 2010
    +#    Change Log10 to Log, to reflect change in naming.
    +#
    +#    Brad Whitlock, Thu May 10 15:21:51 PDT 2018
    +#    Add test case for sampling types.
    +#
    +#    Alister Maguire, Tue Feb  5 14:17:13 PST 2019
    +#    Updated the aspect test to use a larger multiplier and no shading for
    +#    better visibility. Updated the scaling test to not use shading (again
    +#    for better visibility).
    +#
    +#    Alister Maguire, Mon Mar 25 11:19:54 PDT 2019
    +#    Added an opacity test that changes the opacity variable.
    +#
    +#    Alister Maguire, Wed Jun  5 11:01:31 PDT 2019
    +#    Added opacity attenuation test.
    +#
    +#    Alister Maguire, Fri Mar 20 15:36:37 PDT 2020
    +#    Added gradient lighting reduction test.
    +#
    +#    Kathleen Biagas, Wed May 25, 2022
    +#    Added test for command-recorded volume atts.
    +#
    +#    Kathleen Biagas, Fri June 3, 2022
    +#    Renamed TestVolumeColorControlPoints to volume_colors, use new
    +#    TestAutoName funcationality. Modified TestVolumeSampling to set the
    +#    ColorControlPoints directly from the retrieved color table rather than
    +#    calling AddControlPoints (it is now a quick recipe).
    +#
    +# ----------------------------------------------------------------------------
    +
    +def InitAnnotations():
    +    # Turn off all annotation
    +    TurnOffAllAnnotations()
    +
    +def InitAnnotationsLegendOn():
    +    # Turn off all annotation
    +    a = AnnotationAttributes()
    +    TurnOffAllAnnotations(a)
    +    a.legendInfoFlag = 1
    +    SetAnnotationAttributes(a)
    +
    +def TestVolumeScaling():
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Volume", "t")
    +    volAtts = VolumeAttributes()
    +    volAtts.lightingFlag = 0
    +    SetPlotOptions(volAtts)
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (1, 0, 0)
    +    SetView3D(v)
    +
    +    Test("volumeScaling_01")
    +
    +    volAtts.scaling = volAtts.Log
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_02")
    +
    +    volAtts.scaling = volAtts.Skew
    +    volAtts.skewFactor = 0.0001
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_03")
    +
    +    volAtts.skewFactor = 1000
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_04")
    +
    +    volAtts.scaling = volAtts.Linear
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_05")
    +
    +    volAtts.scaling = volAtts.Log
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_06")
    +
    +    volAtts.scaling = volAtts.Skew
    +    volAtts.skewFactor = 0.0001
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_07")
    +
    +    volAtts.skewFactor = 1000
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_08")
    +
    +    volAtts.rendererType = volAtts.Composite
    +    volAtts.scaling = volAtts.Linear
    +    volAtts.lightingFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_09")
    +
    +    volAtts.scaling = volAtts.Log
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_10")
    +
    +    volAtts.scaling = volAtts.Skew
    +    volAtts.skewFactor = 0.0001
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_11")
    +
    +    volAtts.skewFactor = 1000
    +    SetPlotOptions(volAtts)
    +    Test("volumeScaling_12")
    +
    +    DeleteAllPlots()
    +
    +def TestVolumeOpacity():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Volume", "hardyglobal")
    +    volAtts = VolumeAttributes()
    +    SetPlotOptions(volAtts)
    +    DrawPlots()
    +    ResetView()
    +    # default opacity
    +    Test("volumeOpacity_01")
    +
    +    # setting opacity via individual index and value
    +    for i in range(150):
    +        volAtts.SetFreeformOpacity(i, 0)
    +
    +    SetPlotOptions(volAtts)
    +    Test("volumeOpacity_02")
    +
    +    # setting opacity via creation of a tuple
    +    opac1 = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 240, 248, 255, 248, 240, 232, 224, 216, 208, 200, 192, 184, 176, 168, 160, 152, 144, 136, 128, 120, 112, 104, 96, 88, 80, 72, 64, 56, 48, 40, 32, 24, 16, 8, 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 240, 248, 255, 248, 240, 232, 224, 216, 208, 200, 192, 184, 176, 168, 160, 152, 144, 136, 128, 120, 112, 104, 96, 88, 80, 72, 64, 56, 48, 40, 32, 24, 16, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
    +
    +    volAtts.SetFreeformOpacity(*opac1)
    +    SetPlotOptions(volAtts)
    +    Test("volumeOpacity_03")
    +
    +    # setting opacity via creation of a list
    +    opac2 = []
    +    for j in range(32):
    +        opac2 = opac2 + [j*8]
    +    for j in range(32):
    +        opac2 = opac2 + [255-(j*8)]
    +    for j in range(128):
    +        opac2 = opac2 + [0]
    +    for j in range(32):
    +        opac2 = opac2 + [j*8]
    +    for j in range(32):
    +        opac2 = opac2 + [255-(j*8)]
    +
    +    volAtts.SetFreeformOpacity(opac2)
    +    SetPlotOptions(volAtts)
    +    Test("volumeOpacity_04")
    +
    +    #
    +    # Make sure we can change out opacity variable.
    +    #
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    AddPlot("Volume", "dz")
    +    volAtts = VolumeAttributes()
    +    volAtts.opacityVariable = "v"
    +    volAtts.lightingFlag = 0
    +    SetPlotOptions(volAtts)
    +    DrawPlots()
    +    Test("volumeOpacity_05")
    +
    +    DeleteAllPlots()
    +
    +
    +def TestOpacityAttenuation():
    +
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    ResetView()
    +
    +    #
    +    # First, test the ray caster without reduced attenuation.
    +    #
    +    AddPlot("Volume", "hardyglobal")
    +    volAtts = VolumeAttributes()
    +    volAtts.lightingFlag = 0
    +    volAtts.opacityAttenuation = 1
    +    volAtts.rendererType = volAtts.Composite
    +    SetPlotOptions(volAtts)
    +    DrawPlots()
    +    Test("opacityAttenuation_01")
    +
    +    #
    +    # Now reduce attenutation.
    +    #
    +    volAtts = VolumeAttributes()
    +    volAtts.lightingFlag = 0
    +    volAtts.rendererType = volAtts.Composite
    +    volAtts.opacityAttenuation = .12
    +    SetPlotOptions(volAtts)
    +    DrawPlots()
    +    Test("opacityAttenuation_02")
    +
    +    DeleteAllPlots()
    +
    +
    +def TestVolumeAspect():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    orig_atts = VolumeAttributes()
    +    new_atts  = VolumeAttributes()
    +    new_atts.lightingFlag = 0
    +
    +    AddPlot("Volume", "hardyglobal")
    +    SetPlotOptions(new_atts)
    +
    +    DefineVectorExpression("disp", "{0,0,-0.9*coord(Mesh)[2]}")
    +    AddOperator("Displace")
    +    d = DisplaceAttributes()
    +    d.variable = "disp"
    +    SetOperatorOptions(d)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (-0.324974, 0.839345, 0.435765)
    +    SetView3D(v)
    +    Test("volumeAspect_01")
    +    DeleteAllPlots()
    +    SetPlotOptions(orig_atts)
    +
    +def volume_colors():
    +    """Volume Plot color control points"""
    +    # the next comment and similar below bracket code to be 'literalincluded' in quickrecipes.rst
    +    # removeControlPoints {
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Volume", "hardyglobal")
    +
    +    # Modify colors. The default color table has 5 control points. Delete
    +    # all but 2 of them and then change their colors.
    +    v = VolumeAttributes()
    +    v.colorControlPoints.RemoveControlPoints(4)
    +    v.colorControlPoints.RemoveControlPoints(3)
    +    v.colorControlPoints.RemoveControlPoints(2)
    +    v.colorControlPoints.GetControlPoints(0).colors = (255,0,0,255)
    +    v.colorControlPoints.GetControlPoints(0).position = 0.
    +    v.colorControlPoints.GetControlPoints(1).colors = (0,0,255,255)
    +    v.colorControlPoints.GetControlPoints(1).position = 1.
    +    SetPlotOptions(v)
    +    DrawPlots()
    +    ResetView()
    +    # removeControlPoints }
    +    TestAutoName()
    +
    +    # addControlPoints {
    +    # there are a default of 5 control points, add 3 more and change
    +    # positions of original  so everything is evenly spaced
    +    v = VolumeAttributes()
    +    v.colorControlPoints.GetControlPoints(0).position = 0
    +    v.colorControlPoints.GetControlPoints(1).position = 0.142857
    +    v.colorControlPoints.GetControlPoints(2).position = 0.285714
    +    v.colorControlPoints.GetControlPoints(3).position = 0.428571
    +    v.colorControlPoints.GetControlPoints(4).position = 0.571429
    +    tmp = ColorControlPoint()
    +    tmp.colors = (255,255,0,255)
    +    tmp.position = 0.714286
    +    v.GetColorControlPoints().AddControlPoints(tmp)
    +    tmp.colors = (0,255,0,255)
    +    tmp.position = 0.857143
    +    v.GetColorControlPoints().AddControlPoints(tmp)
    +    tmp.colors = (0,255,255,255)
    +    tmp.position = 1
    +    v.GetColorControlPoints().AddControlPoints(tmp)
    +    SetPlotOptions(v)
    +    # addControlPoints }
    +    TestAutoName()
    +
    +    # setNumControlPoints {
    +    v = VolumeAttributes()
    +    # there are a default of 5, this resizes to 6
    +    v.colorControlPoints.SetNumControlPoints(6)
    +    v.colorControlPoints.GetControlPoints(4).position = 0.92
    +    # GetControlPoints(5) will cause a segfault without the call to SetNumControlPoints
    +    v.colorControlPoints.GetControlPoints(5).position = 1
    +    v.colorControlPoints.GetControlPoints(5).colors = (128,0,128,255)
    +    SetPlotOptions(v)
    +    # setNumControlPoints }
    +    TestAutoName()
    +
    +    # Start over with the colors.
    +    v.GetColorControlPoints().ClearControlPoints()
    +    tmp = ColorControlPoint()
    +    npts = 10
    +    for i in range(npts):
    +        t = 0.
    +        if i < npts/2:
    +            t = float(i) / float(npts/2 - 1)
    +            r = 255
    +            g = int(t * 255.)
    +            b = 0
    +        else:
    +            t = 1. - (float(i-(npts/2)) / float(npts/2 - 1))
    +            r = int((1-t) * 255.)
    +            g = int((1-t) * 255.)
    +            b = int(t * 255.)
    +        tmp.colors = (r,g,b,255)
    +        tmp.position = float(i) / float(npts-1)
    +        v.GetColorControlPoints().AddControlPoints(tmp)
    +    SetPlotOptions(v)
    +    TestAutoName()
    +    DeleteAllPlots()
    +
    +def TestVolumeGaussianControlPoints():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Volume", "hardyglobal")
    +
    +    v = VolumeAttributes()
    +    v.opacityMode = v.GaussianMode
    +    v.opacityControlPoints.ClearControlPoints()
    +    tmp = GaussianControlPoint()
    +    # Design gaussians
    +    tmp.x = 0.818182
    +    tmp.height = 0.787879
    +    tmp.width = 0.147059
    +    tmp.xBias = 0
    +    tmp.yBias = 0
    +    v.GetOpacityControlPoints().AddControlPoints(tmp)
    +
    +    tmp.x = 0.203209
    +    tmp.height = 0.590909
    +    tmp.width = 0.0588235
    +    tmp.xBias = 0.0026738
    +    tmp.yBias = 2
    +    v.GetOpacityControlPoints().AddControlPoints(tmp)
    +
    +    tmp.x = 0.47861
    +    tmp.height = 0.19697
    +    tmp.width = 0.0721925
    +    tmp.xBias = -0.00802138
    +    tmp.yBias = 0
    +    v.GetOpacityControlPoints().AddControlPoints(tmp)
    +
    +    SetPlotOptions(v)
    +    DrawPlots()
    +    ResetView()
    +    Test("volumeGaussian_01")
    +    DeleteAllPlots()
    +
    +def TestVolumeSampling():
    +    # setFromColorTable {
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    AddPlot("Volume", "hardyglobal")
    +    v = VolumeAttributes()
    +    v.lightingFlag = 0
    +    v.rendererType = v.Composite
    +    v.sampling = v.KernelBased
    +    ct = GetColorTable("hot_desaturated")
    +    v.SetColorControlPoints(ct)
    +    SetPlotOptions(v)
    +    # setFromColorTable }
    +
    +    view = GetView3D()
    +    view.viewNormal = (-1, 0, 0)
    +    view.focus = (0, 0, 0)
    +    view.viewUp = (0, 1, 0)
    +    view.viewAngle = 30
    +    view.parallelScale = 17.3205
    +    view.nearPlane = -34.641
    +    view.farPlane = 34.641
    +    view.imagePan = (0.0720459, -0.00108509)
    +    view.imageZoom = 1.85429
    +    view.perspective = 1
    +    view.eyeAngle = 2
    +    view.centerOfRotationSet = 0
    +    view.centerOfRotation = (0, 0, 0)
    +    view.axis3DScaleFlag = 0
    +    view.axis3DScales = (1, 1, 1)
    +    view.shear = (0, 0, 1)
    +    view.windowValid = 1
    +    DrawPlots()
    +    SetView3D(view)
    +    Test("volumeSampling_01")
    +
    +    v.sampling = v.Rasterization
    +    SetPlotOptions(v)
    +    Test("volumeSampling_02")
    +
    +    v.sampling = v.Trilinear
    +    SetPlotOptions(v)
    +    Test("volumeSampling_03")
    +
    +    DeleteAllPlots()
    +
    +
    +def TestGradientLightingReduction():
    +
    +    view = GetView3D()
    +    view.viewNormal = (0.746662961825451, 0.1647201021100829, 0.6444856161303283)
    +    SetView3D(view)
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    AddPlot("Volume", "v")
    +    DrawPlots()
    +
    +    #
    +    # Trilinear ray casting used to have very harsh results with
    +    # gradient lighting reduction. Let's make sure they're better
    +    # now.
    +    #
    +    v = VolumeAttributes()
    +    v.lightingFlag = 1
    +    v.rendererType = v.Composite
    +    v.sampling     = v.Trilinear
    +
    +    v.lowGradientLightingReduction = v.Lower
    +    SetPlotOptions(v)
    +    Test("graidentLighting_00")
    +
    +    v.lowGradientLightingReduction = v.Medium
    +    SetPlotOptions(v)
    +    Test("graidentLighting_01")
    +
    +    v.lowGradientLightingReduction = v.Higher
    +    SetPlotOptions(v)
    +    Test("graidentLighting_02")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("globe.silo"))
    +
    +def TestCommandRecording():
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    AddPlot("Volume", "u")
    +    DrawPlots()
    +    view3D = GetView3D()
    +    view3D.viewNormal = (0.0173089, 0.999712, 0.0165968)
    +    view3D.viewUp = (0.230674, 0.0121587, -0.972955)
    +    SetView3D(view3D)
    +
    +    # Setting up of Volume plot atts from command recording
    +    VolumeAtts = VolumeAttributes()
    +    VolumeAtts.osprayShadowsEnabledFlag = 0
    +    VolumeAtts.osprayUseGridAcceleratorFlag = 0
    +    VolumeAtts.osprayPreIntegrationFlag = 0
    +    VolumeAtts.ospraySingleShadeFlag = 0
    +    VolumeAtts.osprayOneSidedLightingFlag = 0
    +    VolumeAtts.osprayAoTransparencyEnabledFlag = 0
    +    VolumeAtts.ospraySpp = 1
    +    VolumeAtts.osprayAoSamples = 0
    +    VolumeAtts.osprayAoDistance = 100000
    +    VolumeAtts.osprayMinContribution = 0.001
    +    VolumeAtts.legendFlag = 1
    +    VolumeAtts.lightingFlag = 1
    +    VolumeAtts.colorControlPoints.SetNumControlPoints(14)
    +    VolumeAtts.colorControlPoints.GetControlPoints(0).colors = (0, 0, 255, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(0).position = 0
    +    VolumeAtts.colorControlPoints.GetControlPoints(1).colors = (0, 255, 255, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(1).position = 0.0769231
    +    VolumeAtts.colorControlPoints.GetControlPoints(2).colors = (0, 255, 0, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(2).position = 0.153846
    +    VolumeAtts.colorControlPoints.GetControlPoints(3).colors = (255, 255, 0, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(3).position = 0.230769
    +    VolumeAtts.colorControlPoints.GetControlPoints(4).colors = (255, 255, 0, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(4).position = 0.307692
    +    VolumeAtts.colorControlPoints.GetControlPoints(5).colors = (0, 255, 0, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(5).position = 0.384615
    +    VolumeAtts.colorControlPoints.GetControlPoints(6).colors = (0, 255, 255, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(6).position = 0.461538
    +    VolumeAtts.colorControlPoints.GetControlPoints(7).colors = (0, 0, 255, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(7).position = 0.538462
    +    VolumeAtts.colorControlPoints.GetControlPoints(8).colors = (255, 0, 255, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(8).position = 0.615385
    +    VolumeAtts.colorControlPoints.GetControlPoints(9).colors = (0, 0, 0, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(9).position = 0.692308
    +    VolumeAtts.colorControlPoints.GetControlPoints(10).colors = (255, 255, 255, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(10).position = 0.769231
    +    VolumeAtts.colorControlPoints.GetControlPoints(11).colors = (255, 0, 0, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(11).position = 0.846154
    +    VolumeAtts.colorControlPoints.GetControlPoints(12).colors = (255, 255, 0, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(12).position = 0.923077
    +    VolumeAtts.colorControlPoints.GetControlPoints(13).colors = (255, 0, 0, 255)
    +    VolumeAtts.colorControlPoints.GetControlPoints(13).position = 1
    +    VolumeAtts.colorControlPoints.smoothing = VolumeAtts.colorControlPoints.Linear
    +    VolumeAtts.colorControlPoints.equalSpacingFlag = 0
    +    VolumeAtts.colorControlPoints.discreteFlag = 0
    +    VolumeAtts.colorControlPoints.categoryName = ""
    +    VolumeAtts.opacityAttenuation = 1
    +    VolumeAtts.opacityMode = VolumeAtts.GaussianMode
    +    VolumeAtts.opacityControlPoints.SetNumControlPoints(20)
    +    VolumeAtts.opacityControlPoints.GetControlPoints(0).x = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(0).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(0).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(0).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(0).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(1).x = 0.075
    +    VolumeAtts.opacityControlPoints.GetControlPoints(1).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(1).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(1).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(1).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(2).x = 0.125
    +    VolumeAtts.opacityControlPoints.GetControlPoints(2).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(2).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(2).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(2).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(3).x = 0.175
    +    VolumeAtts.opacityControlPoints.GetControlPoints(3).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(3).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(3).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(3).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(4).x = 0.225
    +    VolumeAtts.opacityControlPoints.GetControlPoints(4).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(4).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(4).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(4).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(5).x = 0.275
    +    VolumeAtts.opacityControlPoints.GetControlPoints(5).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(5).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(5).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(5).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(6).x = 0.325
    +    VolumeAtts.opacityControlPoints.GetControlPoints(6).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(6).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(6).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(6).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(7).x = 0.375
    +    VolumeAtts.opacityControlPoints.GetControlPoints(7).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(7).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(7).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(7).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(8).x = 0.425
    +    VolumeAtts.opacityControlPoints.GetControlPoints(8).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(8).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(8).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(8).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(9).x = 0.475
    +    VolumeAtts.opacityControlPoints.GetControlPoints(9).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(9).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(9).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(9).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(10).x = 0.525
    +    VolumeAtts.opacityControlPoints.GetControlPoints(10).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(10).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(10).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(10).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(11).x = 0.575
    +    VolumeAtts.opacityControlPoints.GetControlPoints(11).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(11).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(11).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(11).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(12).x = 0.625
    +    VolumeAtts.opacityControlPoints.GetControlPoints(12).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(12).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(12).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(12).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(13).x = 0.675
    +    VolumeAtts.opacityControlPoints.GetControlPoints(13).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(13).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(13).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(13).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(14).x = 0.725
    +    VolumeAtts.opacityControlPoints.GetControlPoints(14).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(14).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(14).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(14).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(15).x = 0.775
    +    VolumeAtts.opacityControlPoints.GetControlPoints(15).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(15).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(15).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(15).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(16).x = 0.825
    +    VolumeAtts.opacityControlPoints.GetControlPoints(16).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(16).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(16).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(16).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(17).x = 0.875
    +    VolumeAtts.opacityControlPoints.GetControlPoints(17).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(17).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(17).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(17).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(18).x = 0.925
    +    VolumeAtts.opacityControlPoints.GetControlPoints(18).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(18).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(18).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(18).yBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(19).x = 0.975
    +    VolumeAtts.opacityControlPoints.GetControlPoints(19).height = 0.5
    +    VolumeAtts.opacityControlPoints.GetControlPoints(19).width = 0.025
    +    VolumeAtts.opacityControlPoints.GetControlPoints(19).xBias = 0
    +    VolumeAtts.opacityControlPoints.GetControlPoints(19).yBias = 0
    +    VolumeAtts.resampleFlag = 1
    +    VolumeAtts.resampleTarget = 1000000
    +    VolumeAtts.opacityVariable = "default"
    +    VolumeAtts.compactVariable = "default"
    +    VolumeAtts.freeformOpacity = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255)
    +    VolumeAtts.useColorVarMin = 0
    +    VolumeAtts.colorVarMin = 0
    +    VolumeAtts.useColorVarMax = 0
    +    VolumeAtts.colorVarMax = 0
    +    VolumeAtts.useOpacityVarMin = 0
    +    VolumeAtts.opacityVarMin = 0
    +    VolumeAtts.useOpacityVarMax = 0
    +    VolumeAtts.opacityVarMax = 0
    +    VolumeAtts.smoothData = 0
    +    VolumeAtts.samplesPerRay = 500
    +    VolumeAtts.rendererType = VolumeAtts.Serial
    +    VolumeAtts.gradientType = VolumeAtts.SobelOperator
    +    VolumeAtts.scaling = VolumeAtts.Linear
    +    VolumeAtts.skewFactor = 1
    +    VolumeAtts.limitsMode = VolumeAtts.OriginalData
    +    VolumeAtts.sampling = VolumeAtts.Rasterization
    +    VolumeAtts.rendererSamples = 3
    +    VolumeAtts.lowGradientLightingReduction = VolumeAtts.Lower
    +    VolumeAtts.lowGradientLightingClampFlag = 0
    +    VolumeAtts.lowGradientLightingClampValue = 1
    +    VolumeAtts.materialProperties = (0.4, 0.75, 0, 15)
    +    SetPlotOptions(VolumeAtts)
    +
    +    Test("vol_commandRecorded")
    +    ResetView()
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("globe.silo"))
    +
    +
    +#FIXME: For some reason, if you render using the ray caster,
    +#       attempting to render using the default renderer afterwards
    +#       will result in a blank test result. I have not been able
    +#       to reproduce this outside of the test suite. I created
    +#       issue #3608 to track this.
    +
    +InitAnnotationsLegendOn()
    +volume_colors()
    +TestVolumeGaussianControlPoints()
    +TestVolumeAspect()
    +TestVolumeOpacity()
    +TestCommandRecording()
    +InitAnnotations()
    +TestVolumeScaling()
    +TestVolumeSampling()
    +TestOpacityAttenuation()
    +TestGradientLightingReduction()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/plugins_databasesVsInstall.html b/2024-12-12-22:00/poodle_trunk_serial/plugins_databasesVsInstall.html new file mode 100644 index 000000000..328ac5adb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plugins_databasesVsInstall.html @@ -0,0 +1,40 @@ + +Results for plugins/databasesVsInstall.py + +

    Results of VisIt Regression Test - plugins/databasesVsInstall

    + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    databasesVsInstall0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/plugins_databasesVsInstall_py.html b/2024-12-12-22:00/poodle_trunk_serial/plugins_databasesVsInstall_py.html new file mode 100644 index 000000000..f305ef4b4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plugins_databasesVsInstall_py.html @@ -0,0 +1,31 @@ +plugins/databasesVsInstall.py
    # ----------------------------------------------------------------------------
    +#  CLASSES:    nightly
    +#
    +#  Test Case:  databasesVsInstall.py 
    +#
    +#  Tests:      Building database plugins against an installed version of VisIt
    +#              
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       November 8, 2018 
    +#
    +#  Modifications:
    +#    Eric Brugger, Wed Jun 26 09:32:06 PDT 2019
    +#    Removed the ccm readler.
    +#
    +#    Kathleen Biagas, Tue Nov 26 10:23:31 PST 2019
    +#    Modified to pass a 'test-this' list instead of a 'skip-this' list.
    +#    Plugins chosen based on third-party dependence, ability to auto-regen
    +#    their CMakeLists.txt and tests currently available to run against the
    +#    version built (to be added at a future time).
    +#
    +# ----------------------------------------------------------------------------
    +
    +Source(tests_path("plugins", "pluginVsInstallHelpers"))
    +
    +do_plugin_type("databases", ["BOV", "Blueprint", "CGNS", "Cale", "Claw", "Exodus", "FITS", "H5Part", "MFEM", "Mili", "SAMRAI", "VTK"])
    +# for future use
    +#do_tests("database", ["bov.py", "blueprint.py", "CGNS.py", "Cale.py", "claw.py", "exodus.py", "FITS.py", "h5part.py", "mfem.py", "mili.py", "samrai.py", "vtk.py"])
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/plugins_operatorsVsInstall.html b/2024-12-12-22:00/poodle_trunk_serial/plugins_operatorsVsInstall.html new file mode 100644 index 000000000..f965bfdb4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plugins_operatorsVsInstall.html @@ -0,0 +1,40 @@ + +Results for plugins/operatorsVsInstall.py + +

    Results of VisIt Regression Test - plugins/operatorsVsInstall

    + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    operatorsVsInstall0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/plugins_operatorsVsInstall_py.html b/2024-12-12-22:00/poodle_trunk_serial/plugins_operatorsVsInstall_py.html new file mode 100644 index 000000000..1ca3a38ac --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plugins_operatorsVsInstall_py.html @@ -0,0 +1,29 @@ +plugins/operatorsVsInstall.py
    # ----------------------------------------------------------------------------
    +#  CLASSES:    nightly
    +#
    +#  Test Case:  operatorsVsInstall.py 
    +#
    +#  Tests:      Building operator plugins against an installed version of VisIt
    +#              
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       November 8, 2018 
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Tue Nov 26 10:23:31 PST 2019
    +#    Modified to pass a 'test-this' list instead of a 'skip-this' list.
    +#    Plugins chosen based on external dependence, expression creation, or a
    +#    a simple operator, the ability to auto-regen their CMakeLists.txt and
    +#    tests currently available to run against the version built (to be added
    +#    at a future time).
    +#
    +# ----------------------------------------------------------------------------
    +
    +Source(tests_path("plugins", "pluginVsInstallHelpers"))
    +
    +do_plugin_type("operators", ["CartographicProjection", "CracksClipper", "RadialResample", "Slice", "Threshold"])
    +# for future use
    +#do_tests("operators", ["cart_proj.py", "cracksclipper.py", "radial_resample.py", "slice.py", "threshold.py"])
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/plugins_plotsVsInstall.html b/2024-12-12-22:00/poodle_trunk_serial/plugins_plotsVsInstall.html new file mode 100644 index 000000000..d941c8597 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plugins_plotsVsInstall.html @@ -0,0 +1,40 @@ + +Results for plugins/plotsVsInstall.py + +

    Results of VisIt Regression Test - plugins/plotsVsInstall

    + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    plotsVsInstall0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/plugins_plotsVsInstall_py.html b/2024-12-12-22:00/poodle_trunk_serial/plugins_plotsVsInstall_py.html new file mode 100644 index 000000000..dc3303793 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/plugins_plotsVsInstall_py.html @@ -0,0 +1,29 @@ +plugins/plotsVsInstall.py
    # ----------------------------------------------------------------------------
    +#  CLASSES:    nightly
    +#
    +#  Test Case:  plotsVsInstall.py 
    +#
    +#  Tests:      Building plot plugins against an installed version of VisIt
    +#              
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       November 8, 2018 
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Wed Nov  8 09:41:41 PST 2023
    +#    Temporarily remove Volume from being tested. We need to use the VTK 9
    +#    version, but it's CMakeLists.txt file currently cannot be
    +#    auto-regenerated. See issue #19044.
    +#    Add Molecule in it's place.
    +#
    +# ----------------------------------------------------------------------------
    +
    +Source(tests_path("plugins", "pluginVsInstallHelpers"))
    +
    +do_plugin_type("plots", ["Contour", "Label", "Molecule", "Tensor"])
    +
    +# for future use
    +#do_tests("plots", ["contour.py", "label.py", "tensor.py", "ray_trace.py or volumePlot.py"])
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_avg_value.html b/2024-12-12-22:00/poodle_trunk_serial/queries_avg_value.html new file mode 100644 index 000000000..c60b6f18d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_avg_value.html @@ -0,0 +1,58 @@ + +Results for queries/avg_value.py + +

    Results of VisIt Regression Test - queries/avg_value

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    avg_value_010 modifications totalling 0 lines
    avg_value_021 modifications totalling 1 lines
    avg_value_030 modifications totalling 0 lines
    avg_value_040 modifications totalling 0 lines
    avg_value_050.000.00
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_avg_value_py.html b/2024-12-12-22:00/poodle_trunk_serial/queries_avg_value_py.html new file mode 100644 index 000000000..d6e19191f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_avg_value_py.html @@ -0,0 +1,63 @@ +queries/avg_value.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  avg_value.py
    +#  Tests:      queries     - average value 
    +#
    +#  Programmer: Hank Childs
    +#  Date:       May 11, 2011
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#    individually to match current baseline results.
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOffAllAnnotations()
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "t")
    +DrawPlots()
    +Query("Average Value")
    +t = GetQueryOutputString()
    +TestText("avg_value_01", t)
    +
    +DeleteAllPlots()
    +AddPlot("Vector", "vel")
    +DrawPlots()
    +Query("Average Value")
    +t = GetQueryOutputString()
    +TestText("avg_value_02", t)
    +
    +DefineVectorExpression("vel2", "{1, t, 0}")
    +ChangeActivePlotsVar("vel2")
    +Query("Average Value")
    +t = GetQueryOutputString()
    +TestText("avg_value_03", t)
    +
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +AddPlot("Pseudocolor", "pressure")
    +DrawPlots()
    +Query("Average Value")
    +t = GetQueryOutputString()
    +TestText("avg_value_04", t)
    +
    +c = CurveAttributes()
    +c.curveColorSource = c.Custom
    +c.curveColor = (255, 0, 0, 255)
    +SetDefaultPlotOptions(c)
    +
    +QueryOverTime("Average Value")
    +SetActiveWindow(2)
    +TurnOffAllAnnotations()
    +c = CurveAttributes()
    +c.curveColorSource = c.Custom
    +c.curveColor = (255, 0, 0, 255)
    +SetPlotOptions(c)
    +Test("avg_value_05")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_bestfitline.html b/2024-12-12-22:00/poodle_trunk_serial/queries_bestfitline.html new file mode 100644 index 000000000..7aead67f8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_bestfitline.html @@ -0,0 +1,94 @@ + +Results for queries/bestfitline.py + +

    Results of VisIt Regression Test - queries/bestfitline

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    bestline_1_000 modifications totalling 0 lines
    bestline_2_000.000.00
    bestline_2_010 modifications totalling 0 lines
    bestline_2_020.000.00
    bestline_2_030 modifications totalling 0 lines
    bestline_2_040.000.00
    bestline_2_050 modifications totalling 0 lines
    bestline_3_000.000.00
    bestline_3_010.000.00
    bestline_3_020.000.00
    bestline_3_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_bestfitline_py.html b/2024-12-12-22:00/poodle_trunk_serial/queries_bestfitline_py.html new file mode 100644 index 000000000..a38e08e58 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_bestfitline_py.html @@ -0,0 +1,204 @@ +queries/bestfitline.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  bestfit.py
    +#
    +#  Tests:      queries     - "Best Fit Line"
    +#              expressions - distance_to_best_fit_line
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Nov 18 16:43:42 PST 2005
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Tue Mar 14 07:54:20 PST 2006
    +#    Changed how full-frame is turned on
    +#    
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Matt Larsen Wed May 09 08:31:00 PST 2018
    +#    Adding view reset so image actual shows a line 
    +# ----------------------------------------------------------------------------
    +
    +import math
    +
    +def writeDataSet():
    +    nts = 100
    +    nsamples = 100
    +    x0 = -5.
    +    y0 = -5.
    +    x1 = 5.
    +    y1 = 5.
    +
    +    names = []
    +    coefficients = []
    +    for i in range(nts):
    +        t = float(i) / float(nts - 1)
    +        y_left = t * y1 + (1. - t) * y0
    +        y_right = t * y0 + (1. - t) * y1
    +        filename = data_path("curve_test_data/line%04d.curve") % i
    +        names = names + [filename]
    +        try:
    +            f = open(filename, "w")
    +
    +            f.write("#TIME %g\n" % t)
    +            f.write("#line\n")
    +
    +            m = (y_right - y_left) / (x1 - x0)
    +            angle = t * 3.14159 * 2.
    +            b  = math.sin(angle)
    +
    +            #print "Y = %gX + %g" % (m, b)
    +            coefficients = coefficients + [(m, b)]
    +
    +            for j in range(nsamples):
    +                t2 = float(j) / float(nsamples - 1)
    +                x = t2 * x1 + (1. - t2) * x0
    +                y = t2 * y_right + (1. - t2) * y_left + b
    +                f.write("%g %g\n" % (x, y))
    +
    +            f.close()
    +        except:
    +            break
    +
    +    return (names, coefficients)
    +
    +def removeFiles(ds):
    +    for d in ds:
    +        try:
    +            os.unlink(d)
    +        except:
    +            print("Could not remove ", d)
    +
    +#
    +# Test best fit line of known lines from Curve plots
    +#
    +def test1():
    +    data = writeDataSet()
    +    filenames = data[0]
    +    coefficients = data[1]
    +
    +    OpenDatabase(data_path("curve_test_data/line*.curve database"))
    +
    +    AddPlot("Curve", "line")
    +    DrawPlots()
    +
    +    s = ""
    +    try:
    +        for state in range(0, len(coefficients), 2):
    +            SetTimeSliderState(state)
    +            Query("Best Fit Line")
    +            values = GetQueryOutputValue()
    +            s = s + "Original (m=%g, b=%g)\t\t\tCalculated (m=%g, b=%g, r=%g)\n" %\
    +            (coefficients[state][0], coefficients[state][1], values[0], \
    +            values[1], values[2])
    +    except:
    +        pass
    +
    +    TestText("bestline_1_00", s)
    +    removeFiles(data[0])
    +    DeleteAllPlots()
    +
    +#
    +# Test best fit line of 2D Scatter plots
    +#
    +def test2():
    +    # Do Scatter plot of d vs d since we know that it will make Y=X
    +    OpenDatabase(silo_data_path("multi_curv2d.silo"))
    +
    +    AddPlot("Scatter", "d")
    +    s = ScatterAttributes()
    +    s.var2 = "d"
    +    s.var2Role = s.Coordinate1
    +    s.var3Role = s.NONE
    +    s.var4Role = s.NONE
    +    s.scaleCube = 0
    +    s.pointSizePixels = 5
    +    SetPlotOptions(s)
    +    DrawPlots()
    +
    +    # Turn on Fullframe
    +    v = GetView2D()
    +    v.fullFrameActivationMode = v.On
    +    SetView2D(v)
    +    Test("bestline_2_00")
    +    Query("Best Fit Line")
    +    TestText("bestline_2_01", GetQueryOutputString())
    +
    +    # Check the best fit with another known line eq.
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    DefineScalarExpression("t", "zoneid(curvmesh2d)")
    +    DefineScalarExpression("line", "t * 0.33333 + 10.")
    +    AddPlot("Scatter", "t")
    +    s.var2 = "line"
    +    SetPlotOptions(s)
    +    DrawPlots()
    +    ResetView()
    +    Test("bestline_2_02")
    +    Query("Best Fit Line")
    +    TestText("bestline_2_03", GetQueryOutputString())
    +
    +    # Make the scatter plot be d vs. dpu
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("multi_curv2d.silo"))
    +
    +    AddPlot("Scatter", "d")
    +    DefineScalarExpression("dpu", "d + u / 3.")
    +    s.var2 = "dpu"
    +    SetPlotOptions(s)
    +    DrawPlots()
    +    Test("bestline_2_04")
    +    Query("Best Fit Line")
    +    TestText("bestline_2_05", GetQueryOutputString())
    +
    +    return s
    +
    +#
    +# Test distance to best fit line expression. The colors should appear
    +# to be banded about the best fit line.
    +#
    +def test3(s):
    +    # We still have the Scatter plot from the previous test. Color it
    +    # by the distance from the best fit line.
    +    DefineScalarExpression("DBFL", "distance_to_best_fit_line(d, dpu)")
    +    DefineScalarExpression("DBFL2", "distance_to_best_fit_line2(d, dpu)")
    +    s.var3 = "DBFL"
    +    s.var3Role = s.Color
    +    s.colorTableName = "difference"
    +    s.pointSizePixels = 10
    +    SetPlotOptions(s)
    +    Test("bestline_3_00")
    +
    +    s.var3 = "DBFL2"
    +    SetPlotOptions(s)
    +    Test("bestline_3_01")
    +
    +    DefineScalarExpression("dpus", "d + u / 2. + sin(d * 5.) * 2.")
    +    DefineScalarExpression("DBFL3", "distance_to_best_fit_line(d, dpus)")
    +    DefineScalarExpression("DBFL4", "distance_to_best_fit_line2(d, dpus)")
    +    s.var2 = "dpus"
    +    s.var3 = "DBFL3"
    +    SetPlotOptions(s)
    +    Test("bestline_3_02")
    +
    +    s.var3 = "DBFL4"
    +    SetPlotOptions(s)
    +    Test("bestline_3_03")
    +
    +    return
    +
    +
    +def main():
    +    test1()
    +    s = test2()
    +    test3(s)
    +
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_casetest.html b/2024-12-12-22:00/poodle_trunk_serial/queries_casetest.html new file mode 100644 index 000000000..96fb0150d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_casetest.html @@ -0,0 +1,40 @@ + +Results for queries/casetest.py + +

    Results of VisIt Regression Test - queries/casetest

    + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    CaseQueryRect2dTest0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_casetest_py.html b/2024-12-12-22:00/poodle_trunk_serial/queries_casetest_py.html new file mode 100644 index 000000000..cc126a859 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_casetest_py.html @@ -0,0 +1,69 @@ +queries/casetest.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  casetest.py #
    +#  Tests:      queries     - Database
    +#
    +#  Description: Tests case insensitive name dispatch of queries.
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Mon Sep 19 15:09:02 PDT 2011 
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def QueryRect2d():
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +    s = ""
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("2D area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", "actual")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", "original")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", "original")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", "original")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("revolved volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("2D AREA")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("mINmAX", "actual")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("spatialextents", "original")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NUMNODES", "original")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NUMZONES", "original")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    TestText("CaseQueryRect2dTest", s)
    +    DeleteAllPlots()
    +
    +
    +def QueryMain():
    +    QueryRect2d()
    +
    +# Call the main function
    +TurnOnAllAnnotations()
    +QueryMain()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_centroid.html b/2024-12-12-22:00/poodle_trunk_serial/queries_centroid.html new file mode 100644 index 000000000..eaeb1994a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_centroid.html @@ -0,0 +1,88 @@ + +Results for queries/centroid.py + +

    Results of VisIt Regression Test - queries/centroid

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    centroid_010 modifications totalling 0 lines
    centroid_020 modifications totalling 0 lines
    centroid_030 modifications totalling 0 lines
    centroid_040 modifications totalling 0 lines
    centroid_050 modifications totalling 0 lines
    centroid_060 modifications totalling 0 lines
    centroid_070 modifications totalling 0 lines
    centroid_080 modifications totalling 0 lines
    centroid_090 modifications totalling 0 lines
    centroid_100 modifications totalling 0 lines
    centroid_110 modifications totalling 0 lines
    centroid_120 modifications totalling 0 lines
    centroid_130 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_centroid_py.html b/2024-12-12-22:00/poodle_trunk_serial/queries_centroid_py.html new file mode 100644 index 000000000..f09b07e35 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_centroid_py.html @@ -0,0 +1,130 @@ +queries/centroid.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  centroid.py
    +#  Tests:      queries     - centroid and moment of inertia.
    +#
    +#  Defect ID:  VisIt00006273, '6588
    +#
    +#  Programmer: Hank Childs
    +#  Date:       May 19, 2005
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Thu Sep 15 16:33:48 PDT 2005
    +#    Added tests for centroids of surfaces.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state 
    +#    behavior when an operator is added.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Test that we can do an l2norm of a degenerate ultra file.
    +TurnOnAllAnnotations()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Mesh", "mesh1")
    +DrawPlots()
    +
    +Query("Moment of Inertia")
    +text = GetQueryOutputString()
    +# The answer should be ~167,547 along the diagonals.  But we are off ~10%
    +# because of mesh granularity.
    +TestText("centroid_01", text)
    +
    +# The sphere is perfectly symmetric, so we should get the same answer,
    +# even if we rotate it.
    +AddOperator("Transform")
    +trans = TransformAttributes()
    +trans.doRotate = 1
    +trans.rotateAxis = (0.707, 0, -0.707)
    +trans.rotateAmount = 150
    +SetOperatorOptions(trans)
    +DrawPlots()
    +Query("Moment of Inertia")
    +text = GetQueryOutputString()
    +TestText("centroid_02", text)
    +
    +Query("Centroid")
    +text = GetQueryOutputString()
    +TestText("centroid_03", text)
    +
    +# Translate and see that the centroid moves.
    +trans.doTranslate = 1
    +trans.translateX = 0.5
    +SetOperatorOptions(trans)
    +
    +Query("Centroid")
    +text = GetQueryOutputString()
    +TestText("centroid_04", text)
    +
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +Query("Centroid")
    +text = GetQueryOutputString()
    +TestText("centroid_05", text)
    +
    +Query("Moment of Inertia")
    +text = GetQueryOutputString()
    +TestText("centroid_06", text)
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Mesh", "quadmesh2d")
    +DrawPlots()
    +
    +Query("Centroid")
    +text = GetQueryOutputString()
    +TestText("centroid_07", text)
    +
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +Query("Centroid")
    +text = GetQueryOutputString()
    +TestText("centroid_08", text)
    +
    +AddOperator("Revolve")
    +DrawPlots()
    +
    +Query("Centroid")
    +text = GetQueryOutputString()
    +TestText("centroid_09", text)
    +Query("Moment of Inertia")
    +text = GetQueryOutputString()
    +TestText("centroid_10", text)
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Mesh", "quadmesh3d")
    +DrawPlots()
    +
    +Query("Centroid")
    +text = GetQueryOutputString()
    +TestText("centroid_11", text)
    +Query("Moment of Inertia")
    +text = GetQueryOutputString()
    +TestText("centroid_12", text)
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Elevate")
    +DrawPlots()
    +
    +Query("Centroid")
    +text = GetQueryOutputString()
    +TestText("centroid_13", text)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_conncomp.html b/2024-12-12-22:00/poodle_trunk_serial/queries_conncomp.html new file mode 100644 index 000000000..2ee39b873 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_conncomp.html @@ -0,0 +1,162 @@ + +Results for queries/conncomp.py + +

    Results of VisIt Regression Test - queries/conncomp

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    conncomp_1d_lbl0.000.00
    conncomp_1d_count0 modifications totalling 0 lines
    conncomp_1d_centroid0 modifications totalling 0 lines
    conncomp_1d_length0 modifications totalling 0 lines
    conncomp_1d_var_sum0 modifications totalling 0 lines
    conncomp_1d_weighted_var_sum0 modifications totalling 0 lines
    conncomp_1d_summary0 modifications totalling 0 lines
    conncomp_2d_lbl0.000.00
    conncomp_2d_count0 modifications totalling 0 lines
    conncomp_2d_centroid0 modifications totalling 0 lines
    conncomp_2d_area0 modifications totalling 0 lines
    conncomp_2d_var_sum0 modifications totalling 0 lines
    conncomp_2d_weighted_var_sum0 modifications totalling 0 lines
    conncomp_2d_summary0 modifications totalling 0 lines
    conncomp_3d_t10.000.00
    conncomp_3d_count_t10 modifications totalling 0 lines
    conncomp_3d_centroid_t10 modifications totalling 0 lines
    conncomp_3d_volume_t10 modifications totalling 0 lines
    conncomp_3d_summary_t10 modifications totalling 0 lines
    conncomp_3d_t20.000.00
    conncomp_3d_count_t20 modifications totalling 0 lines
    conncomp_3d_centroid_t20 modifications totalling 0 lines
    conncomp_3d_volume_t20 modifications totalling 0 lines
    conncomp_3d_summary_t20 modifications totalling 0 lines
    conncomp_3d_t30.000.00
    conncomp_3d_count_t30 modifications totalling 0 lines
    conncomp_3d_centroid_t30 modifications totalling 0 lines
    conncomp_3d_volume_t30 modifications totalling 0 lines
    conncomp_3d_summary_t30 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_conncomp_py.html b/2024-12-12-22:00/poodle_trunk_serial/queries_conncomp_py.html new file mode 100644 index 000000000..f1f9da83c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_conncomp_py.html @@ -0,0 +1,240 @@ +queries/conncomp.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  conncomp.py
    +#  Tests:      queries     - connected components related 
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       February 22, 2006
    +#
    +#  Modifications:
    +#    Cyrus Harrison, Thu Aug 23 09:42:43 PDT 2007
    +#    Turned off ghost neighbors optimization for exodus balls dataset.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Wed Jun 15 14:21:10 PDT 2011
    +#    Added tests for line meshes.
    +#
    +#    Kathleen Biagas, Fri Feb  7 08:00:38 PST 2014
    +#    Changed sil selection for Exodus.
    +# ----------------------------------------------------------------------------
    +
    +import json
    +
    +OpenDatabase(silo_data_path("rect2d.silo"), 0)
    +
    +
    +DefineScalarExpression("_ccl_test_1d", "conn_components(quadmesh2d)")
    +
    +#Add an iso surface
    +AddPlot("Pseudocolor", "_ccl_test_1d")
    +AddOperator("Isosurface")
    +
    +isatts = IsosurfaceAttributes()
    +isatts .variable = "d"
    +SetOperatorOptions(isatts)
    +
    +#Add Defer Exp Op
    +AddOperator("DeferExpression")
    +DeferExpressionAtts = DeferExpressionAttributes()
    +DeferExpressionAtts.exprs = ("_ccl_test_1d")
    +SetOperatorOptions(DeferExpressionAtts)
    +
    +DrawPlots()
    +
    +Test("conncomp_1d_lbl")
    +
    +ChangeActivePlotsVar("d")
    +
    +Query("Number of Connected Components")
    +res = GetQueryOutputString()
    +TestText("conncomp_1d_count",res)
    +
    +Query("Connected Component Centroids")
    +res = GetQueryOutputString()
    +TestText("conncomp_1d_centroid",res)
    +
    +Query("Connected Component Length")
    +res = GetQueryOutputString()
    +TestText("conncomp_1d_length",res)
    +
    +Query("Connected Component Variable Sum")
    +res = GetQueryOutputString()
    +TestText("conncomp_1d_var_sum",res)
    +
    +Query("Connected Component Weighted Variable Sum")
    +res = GetQueryOutputString()
    +TestText("conncomp_1d_weighted_var_sum",res)
    +
    +Query("Connected Components Summary")
    +res = GetQueryOutputObject()
    +TestText("conncomp_1d_summary",json.dumps(res,indent=2))
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("multi_rect2d.silo"), 0)
    +
    +DefineScalarExpression("_rand_test_2d", "rand(mesh1)")
    +DefineScalarExpression("_ccl_test_2d", "conn_components(mesh1)")
    +
    +AddPlot("Pseudocolor", "_ccl_test_2d")
    +# Add isovolume op to create components
    +AddOperator("Isovolume")
    +IsovolumeAtts = IsovolumeAttributes()
    +IsovolumeAtts.lbound = -1e+37
    +IsovolumeAtts.ubound = 0.3
    +IsovolumeAtts.variable = "_rand_test_2d"
    +SetOperatorOptions(IsovolumeAtts)
    +
    +#Add Defer Exp Op
    +AddOperator("DeferExpression")
    +DeferExpressionAtts = DeferExpressionAttributes()
    +DeferExpressionAtts.exprs = ("_ccl_test_2d")
    +SetOperatorOptions(DeferExpressionAtts)
    +
    +DrawPlots()
    +
    +Test("conncomp_2d_lbl")
    +
    +# test the connected components related queries
    +Query("Number of Connected Components")
    +res = GetQueryOutputString()
    +TestText("conncomp_2d_count",res)
    +
    +Query("Connected Component Centroids")
    +res = GetQueryOutputString()
    +TestText("conncomp_2d_centroid",res)
    +
    +Query("Connected Component Area")
    +res = GetQueryOutputString()
    +TestText("conncomp_2d_area",res)
    +
    +Query("Connected Component Variable Sum")
    +res = GetQueryOutputString()
    +TestText("conncomp_2d_var_sum",res)
    +
    +Query("Connected Component Weighted Variable Sum")
    +res = GetQueryOutputString()
    +TestText("conncomp_2d_weighted_var_sum",res)
    +
    +Query("Connected Components Summary")
    +res = GetQueryOutputObject()
    +TestText("conncomp_2d_summary",json.dumps(res,indent=2))
    +
    +DeleteAllPlots()
    +
    +DefineScalarExpression("_ccl_test_3d", "conn_components(Mesh,1)")
    +# exodus test
    +OpenDatabase(data_path("exodus_test_data/balls.e.4.* database"))
    +
    +
    +AddPlot("Pseudocolor", "_ccl_test_3d")
    +silr = SILRestriction()
    +silr.TurnOnAll()
    +for silSet in (5,6,7):
    +    silr.TurnOffSet(silSet)
    +SetPlotSILRestriction(silr)
    +
    +AddOperator("Displace")
    +DisplaceAtts = DisplaceAttributes()
    +DisplaceAtts.factor = 1
    +DisplaceAtts.variable = "DISPL"
    +SetOperatorOptions(DisplaceAtts)
    +DisplaceAtts = DisplaceAttributes()
    +DisplaceAtts.factor = 1
    +DisplaceAtts.variable = "DISPL"
    +SetOperatorOptions(DisplaceAtts)
    +
    +AddOperator("Transform")
    +t = TransformAttributes()
    +t.doScale = 1
    +t.scaleX = 100
    +t.scaleY = 100
    +t.scaleZ = 100
    +SetOperatorOptions(t)
    +
    +d = DeferExpressionAttributes()
    +d.exprs = ("_ccl_test_3d")
    +SetDefaultOperatorOptions(d)
    +AddOperator("DeferExpression")
    +
    +
    +v=GetView3D()
    +v.viewNormal=(.1,.1, 0)
    +v.viewUp=(0, 0, 1 )
    +SetView3D(v)
    +
    +DrawPlots()
    +
    +# test as displacement evolves
    +Test("conncomp_3d_t1");
    +
    +# test the connected components related queries
    +Query("Number of Connected Components")
    +res = GetQueryOutputString()
    +TestText("conncomp_3d_count_t1",res)
    +
    +Query("Connected Component Centroids")
    +res = GetQueryOutputString()
    +TestText("conncomp_3d_centroid_t1",res)
    +
    +
    +Query("Connected Component Volume")
    +res = GetQueryOutputString()
    +TestText("conncomp_3d_volume_t1",res)
    +
    +Query("Connected Components Summary")
    +res = GetQueryOutputObject()
    +TestText("conncomp_3d_summary_t1",json.dumps(res,indent=2))
    +
    +
    +SetTimeSliderState(11);
    +# test as displacement evolves
    +Test("conncomp_3d_t2");
    +
    +Query("Number of Connected Components")
    +res = GetQueryOutputString()
    +TestText("conncomp_3d_count_t2",res)
    +
    +Query("Connected Component Centroids")
    +res = GetQueryOutputString()
    +TestText("conncomp_3d_centroid_t2",res)
    +
    +
    +Query("Connected Component Volume")
    +res = GetQueryOutputString()
    +TestText("conncomp_3d_volume_t2",res)
    +
    +Query("Connected Components Summary")
    +res = GetQueryOutputObject()
    +TestText("conncomp_3d_summary_t2",json.dumps(res,indent=2))
    +
    +
    +SetTimeSliderState(20);
    +Test("conncomp_3d_t3");
    +
    +Query("Number of Connected Components")
    +res = GetQueryOutputString()
    +TestText("conncomp_3d_count_t3",res)
    +
    +Query("Connected Component Centroids")
    +res = GetQueryOutputString()
    +TestText("conncomp_3d_centroid_t3",res)
    +
    +
    +Query("Connected Component Volume")
    +res = GetQueryOutputString()
    +TestText("conncomp_3d_volume_t3",res)
    +
    +
    +Query("Connected Components Summary")
    +res = GetQueryOutputObject()
    +TestText("conncomp_3d_summary_t3",json.dumps(res,indent=2))
    +
    +
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_consistencyChecks.html b/2024-12-12-22:00/poodle_trunk_serial/queries_consistencyChecks.html new file mode 100644 index 000000000..b6a5bb679 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_consistencyChecks.html @@ -0,0 +1,64 @@ + +Results for queries/consistencyChecks.py + +

    Results of VisIt Regression Test - queries/consistencyChecks

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    consistencyChecks_000.000.00
    consistencyChecks_010.000.00
    consistencyChecks_020.000.00
    consistencyChecks_030.000.00
    consistencyChecks_040 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_consistencyChecks_py.html b/2024-12-12-22:00/poodle_trunk_serial/queries_consistencyChecks_py.html new file mode 100644 index 000000000..cbfce2c45 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_consistencyChecks_py.html @@ -0,0 +1,114 @@ +queries/consistencyChecks.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  pickQueryCombo.py #
    +#  Tests:      queries     - Pick, Zone Center, Node Coords,
    +#              operators   - OnionPeel
    +#
    +#  Notes:
    +#     Tests consistency between Pick/Query/OnionPeel when using the same
    +#     node/zone ids for each.
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       September 9, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +testNum = 0
    +
    +def PickCurv2D():
    +    # Ensures that Pick/Query/OnionPeel operator correctly and consistently
    +    # with the ghost data from this ds, which affects the numbering of zones
    +    global testNum
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +    AddPlot("Mesh", "curvmesh2d")
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +    zoneID = 482
    +    #do a pick before Onion peel
    +    p1 = PickByZone(zoneID)
    +    nodeID = p1["incident_nodes"][0]
    +    #Add Onion peel of same zone, see if it ends up under the pick letter
    +    AddOperator("OnionPeel")
    +    op = OnionPeelAttributes()
    +    op.index = zoneID
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    v = GetView2D()
    +    v.windowCoords =(1.33, 4.89, 0.18, 3.43)
    +    SetView2D(v)
    +    Test("consistencyChecks_%02d"%testNum)
    +    testNum = testNum+1
    +
    +    ClearPickPoints()
    +
    +    #Now add a Boundary plot, do the same pick, see if get same results.
    +    AddPlot("Boundary", "mat1")
    +    DrawPlots()
    +    p2 = PickByZone(zoneID)
    +    s = ""
    +    if p2['point'] == p1['point']:
    +        s = s + "PickByZone on Pseudcolor and Boundary plots yielded same point.\n"
    +    else:
    +        s = s + "PickByZone on Pseudcolor and Boundary plots DID NOT yield same point.\n"
    +    SetQueryOutputToObject()
    +    q = Query("Zone Center", element=zoneID)
    +    if (q['center'] == p1['point']):
    +        s = s + "Zone Center query returned same coords as Pick.\n"
    +    else:
    +        s = s + "Zone Center query returned different coords than Pick.\n"
    +
    +    #Now feed the zone center as coordinates into a pick:
    +    p3 = ZonePick(coord = q['center'])
    +    s = s + "Pick using coord from Zone Center query returned zone: %d, (should be: %d).\n" %(p3['zone_id'], zoneID)
    +
    +    Test("consistencyChecks_%02d"%testNum)
    +    testNum = testNum+1
    +    ClearPickPoints()
    +
    +    # Now do the same type of tests for Node Pick
    +    DeleteActivePlots()
    +    SetActivePlots(1)
    +    RemoveLastOperator()
    +
    +    p1n = PickByNode(nodeID)
    +    AddOperator("OnionPeel")
    +    op.seedType = op.SeedNode
    +    op.index = nodeID
    +    SetOperatorOptions(op)
    +    DrawPlots()
    +    Test("consistencyChecks_%02d"%testNum)
    +    testNum = testNum+1
    +
    +    ClearPickPoints()
    +    #Now add a Boundary plot, do the same pick, see if get same results.
    +    AddPlot("Boundary", "mat1")
    +    DrawPlots()
    +
    +    p2n = PickByNode(nodeID)
    +    if p2n['point'] == p1n['point']:
    +        s = s + "PickByNode on Pseudcolor and Boundary plots yielded same point.\n"
    +    else:
    +        s = s + "PickByNode on Pseudcolor and Boundary plots DID NOT yield same point.\n"
    +    qn = Query("Node Coords", element=nodeID)
    +    if (qn['coord'] == p1n['point']):
    +        s = s + "Node Coords query returned same coords as Pick.\n"
    +    else:
    +        s = s + "Node Coords query returned different coords than Pick.\n"
    +
    +    p3n = NodePick(coord = qn['coord'])
    +    s = s + "Pick using coord from Node Coord query returned node: %d, (should be: %d).\n" %(p3n['node_id'], nodeID)
    +
    +    Test("consistencyChecks_%02d"%testNum)
    +    testNum = testNum+1
    +
    +    TestText("consistencyChecks_%02d"%testNum, s)
    +    testNum = testNum+1
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("curv2d.silo"))
    +
    +PickCurv2D()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_curvature.html b/2024-12-12-22:00/poodle_trunk_serial/queries_curvature.html new file mode 100644 index 000000000..31e98890f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_curvature.html @@ -0,0 +1,54 @@ + +Results for queries/curvature.py + +

    Results of VisIt Regression Test - queries/curvature

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    curvature_010 modifications totalling 0 lines
    curvature_020.000.00
    curvature_030 modifications totalling 0 lines
    curvature_040 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_curvature_py.html b/2024-12-12-22:00/poodle_trunk_serial/queries_curvature_py.html new file mode 100644 index 000000000..c1ee6c0ad --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_curvature_py.html @@ -0,0 +1,63 @@ +queries/curvature.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  curvature.py
    +#  Tests:      queries     - curvature 
    +#
    +#  Defect ID:  VisIt00006746
    +#
    +#  Programmer: Hank Childs
    +#  Date:       May 16, 2006
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +DefineScalarExpression("curvature", "mean_curvature(quadmesh3d)")
    +AddPlot("Pseudocolor", "curvature")
    +AddOperator("Isosurface")
    +i = IsosurfaceAttributes()
    +i.contourMethod = i.Value
    +i.contourValue = 0.5
    +i.variable = "d"
    +SetOperatorOptions(i)
    +DrawPlots()
    +
    +error = GetLastError()
    +TestText("curvature_01", error)
    +
    +d = DeferExpressionAttributes()
    +d.exprs = ("curvature")
    +AddOperator("DeferExpression")
    +SetOperatorOptions(d)
    +DrawPlots()
    +Test("curvature_02")
    +
    +Query("Weighted Variable Sum")
    +s = GetQueryOutputValue()
    +
    +Query("3D surface area")
    +a = GetQueryOutputValue()
    +
    +text = "The average mean curvature (manual) is %f\n" %(s/a)
    +TestText("curvature_03", text)
    +
    +DeleteAllPlots()
    +AddPlot("Contour", "d")
    +c = ContourAttributes()
    +c.contourMethod = c.Value
    +c.contourValue = 0.5
    +SetPlotOptions(c)
    +DrawPlots()
    +
    +Query("Average Mean Curvature")
    +t = GetQueryOutputString()
    +TestText("curvature_04", t)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_database.html b/2024-12-12-22:00/poodle_trunk_serial/queries_database.html new file mode 100644 index 000000000..8103a57b5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_database.html @@ -0,0 +1,100 @@ + +Results for queries/database.py + +

    Results of VisIt Regression Test - queries/database

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    QueryBigSil0 modifications totalling 0 lines
    QueryContours0 modifications totalling 0 lines
    QueryCurv2d0 modifications totalling 0 lines
    QueryCurv3d0 modifications totalling 0 lines
    QueryGlobe0 modifications totalling 0 lines
    QueryMultiUcd3d0 modifications totalling 0 lines
    QueryNoise0 modifications totalling 0 lines
    QueryRect2d0 modifications totalling 0 lines
    QuerySid970 modifications totalling 0 lines
    QueryMinMaxCurve0 modifications totalling 0 lines
    QuerySAMRAI0 modifications totalling 0 lines
    QueryCurves0 modifications totalling 0 lines
    QueryHistogram0 modifications totalling 0 lines
    QueryGlobalId0 modifications totalling 0 lines
    QueryZR_RZ0 modifications totalling 0 lines
    QueryArbPoly0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_database_py.html b/2024-12-12-22:00/poodle_trunk_serial/queries_database_py.html new file mode 100644 index 000000000..7b8698364 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_database_py.html @@ -0,0 +1,1083 @@ +queries/database.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  database.py #
    +#  Tests:      queries     - Database
    +#
    +#  Defect ID:  '6356
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       July 11, 2003 
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from FilledBoundary plots.
    +#
    +#    Kathleen Bonnell, Wed Oct 29 16:06:23 PST 2003 
    +#    Add PlotMinMax query. 
    +#
    +#    Kathleen Bonnell, Wed Dec  3 11:05:51 PST 2003 
    +#    Add SpatialExtents query. 
    +#
    +#    Kathleen Bonnell, Wed Dec  3 13:20:04 PST 2003 
    +#    Test SpatialExtents query with 'actual' and 'original' as args. 
    +#
    +#    Kathleen Bonnell, Mon Dec 22 16:46:27 PST 2003 
    +#    Added test for SAMRAI data.
    +#
    +#    Kathleen Bonnell, Fri Feb  6 10:56:25 PST 2004 
    +#    Test MinMax query with 'actual' and 'original' as args. 
    +#
    +#    Kathleen Bonnell, Fri Feb 20 17:05:04 PST 2004 
    +#    Added NumNodes and NumZones tests.
    +#
    +#    Kathleen Bonnell, Fri Mar  5 15:41:54 PST 2004 
    +#    Added QueryCurves tests, testing "Area Between Curves" queries. 
    +#
    +#    Jeremy Meredith, Mon Apr  5 14:19:47 PDT 2004
    +#    The Curv2D query was not getting boundary data.  I added code to remove
    +#    a couple materials so that it reflected the actual usage of this query.
    +#
    +#    Hank Childs, Tue Apr 13 12:58:04 PDT 2004
    +#    Rename surface area query.
    +#
    +#    Kathleen Bonnell, Tue Apr 20 09:42:30 PDT 2004 
    +#    Added QueryMultiWindow. 
    +#
    +#    Kathleen Bonnell, Wed May 19 16:31:04 PDT 2004
    +#    Moved QueryMultiWindow to its own .py file. 
    +#
    +#    Kathleen Bonnell, Thu Aug 12 13:32:35 PDT 2004 
    +#    Added QueryHistogram. 
    +#
    +#    Kathleen Bonnell, Wed Dec 29 07:57:35 PST 2004 
    +#    Added QueryGlobalId. 
    +#
    +#    Hank Childs, Wed Feb 16 07:34:07 PST 2005
    +#    Rename variables that have unsupported characters.
    +#
    +#    Hank Childs, Fri Jul  1 08:53:41 PDT 2005
    +#    Test getting a vector from the spatial extents query. ['6356]
    +#
    +#    Kathleen Bonnell, Wed Aug 10 15:07:50 PDT 2005 
    +#    Test Weighted Variable Sum Query with a postive-values variable and
    +#    a negative-values variable.  ('6453).
    +#
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +#    Kathleen Bonnell, Wed Feb  8 11:08:01 PST 2006 
    +#    Added QueryZR_RZ. 
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state 
    +#    behavior when an operator is added.
    +#
    +#    Cyrus Harrison, Mon Aug 16 15:51:46 PDT 2010
    +#    Added test for var & wvar sum of an array variable.
    +#
    +#    Kathleen Biagas, Thu Jul 14 10:44:55 PDT 2011
    +#    Use named arguments. 
    +#
    +#    Kathleen Biagas, Thu Sep 11 11:40:25 PDT 2014
    +#    Add QueryArbPoly.
    +#
    +# ----------------------------------------------------------------------------
    +RequiredDatabasePlugin(("SAMRAI", "Silo", "VTK"))
    +
    +def QueryRect2d():
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    Query("Compactness")
    +    s = GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Eulerian")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("2D area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    AddOperator("Transform")
    +    transform = TransformAttributes()
    +    transform.doScale = 1
    +    transform.scaleX = 10
    +    SetOperatorOptions(transform)
    +    DrawPlots()
    +
    +    Query("SpatialExtents", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    Query("SpatialExtents", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    DeleteAllPlots()
    +
    +    DefineArrayExpression("array_var","array_compose(d,p,d,p)")
    +    AddPlot("Label","array_var")
    +    DrawPlots()
    +    Query("Variable Sum")
    +    s += GetQueryOutputString() + "\n"
    +    Query("Weighted Variable Sum")
    +    s += GetQueryOutputString() + "\n"
    +
    +    TestText("QueryRect2d", s)
    +    DeleteAllPlots()
    +
    +
    +def QueryMultiUcd3d():
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    Query("Eulerian")
    +    s = GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    v = GetQueryOutputValue()
    +    estr = "Exts from vector are [%f-%f, %f-%f, %f-%f]\n" %(v[0], v[1], v[2], v[3], v[4], v[5])
    +    s = s + estr
    +    Query("NumNodes", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    silr= SILRestriction();
    +    silr.TurnOffAll()
    +    silr.TurnOnSet(1)
    +    silr.TurnOnSet(3)
    +    silr.TurnOnSet(5)
    +    silr.TurnOnSet(10)
    +    SetPlotSILRestriction(silr)
    +    DrawPlots()
    +
    +    s = s + "\nAFTER APPLYING SIL RESTRICTION:\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", "original")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", "actual")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", "original")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", "actual")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", "original")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", "actual")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +
    +    TestText("QueryMultiUcd3d", s)
    +    DeleteAllPlots()
    +
    +def QueryContours():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Contour", "hardyglobal")
    +    c = ContourAttributes()
    +    c.contourNLevels = 10
    +    SetPlotOptions(c)
    +    DrawPlots()
    +
    +    s = "For 10 contours of noise.silo (hardyglobal)\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n\nMinMax Actual:"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\nMinMax Original:"
    +    Query("MinMax", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    c.contourNLevels = 4
    +    SetPlotOptions(c)
    +    s  = s + "\nFor 4 contours of noise.silo (hardyglobal)\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n\nMinMax Actual:"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\nMinMax Original:"
    +    Query("MinMax", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Contour", "d")
    +    c.contourNLevels = 10
    +    SetPlotOptions(c)
    +    DrawPlots()
    +
    +    s =  s + "\nFor 10 contours of rect3d.silo (d)\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    c.contourNLevels = 4
    +    SetPlotOptions(c)
    +    s  = s + "\nFor 4 contours of rect3d.silo (d)\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    TestText("QueryContours", s)
    +
    +    DeleteAllPlots()
    +
    +
    +def QueryCurv2d():
    +    # Testing database queries on curv2d.
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    TurnMaterialsOff("2")
    +    TurnMaterialsOff("3")
    +    Query("Compactness")
    +    TurnMaterialsOn()
    +    s = GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Eulerian")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("2D area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    DeleteAllPlots()
    +    AddPlot("Vector", "vel")
    +    DrawPlots()
    +    Query("MinMax", use_actual_data=1)
    +    s = s + "\nMinMax Actual:" + GetQueryOutputString()
    +    s = s + "\nMinMax Original:"
    +    Query("MinMax", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +
    +    TestText("QueryCurv2d", s)
    +    DeleteAllPlots()
    +
    +def QueryCurv3d():
    +    OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +    AddPlot("Pseudocolor", "p")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    Query("Eulerian")
    +    s = GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    TestText("QueryCurv3d", s)
    +    DeleteAllPlots()
    +
    +def QueryGlobe():
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    Query("Eulerian")
    +    s = GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    AddOperator("Clip")
    +    clip = ClipAttributes()
    +    clip.plane1Origin = (0.2, 0.3, 0.4)
    +    clip.plane1Normal = (1, 1, 1)
    +    SetOperatorOptions(clip)
    +    DrawPlots()
    +
    +    s = s + "\nAFTER CLIPPING:\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", "actual")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +
    +    DeleteAllPlots()
    +    AddPlot("Vector", "vel")
    +    DrawPlots()
    +    Query("MinMax", use_actual_data=1)
    +    s = s + "\nMinMax Actual:" + GetQueryOutputString()
    +    s = s + "\nMinMax Original:"
    +    Query("MinMax", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +
    +    ChangeActivePlotsVar("disp")
    +    DrawPlots()
    +    Query("MinMax", use_actual_data=1)
    +    s = s + "MinMAx Actual:" + GetQueryOutputString()
    +
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "t")
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + "\n" + GetQueryOutputString()
    +    DefineScalarExpression("neg_t", "-t")
    +    ChangeActivePlotsVar("neg_t")
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + "\n" + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    TestText("QueryGlobe", s)
    +    DeleteAllPlots()
    +
    +def QueryNoise():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    s = "For noise.silo(haryglobal)\n"
    +    Query("Eulerian")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    ChangeActivePlotsVar("hgslice")
    +    DrawPlots()
    +    # Do some database queries.
    +    s = s + "\nFor noise.silo(hgslice)\n"
    +    Query("Compactness")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Eulerian")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    DeleteAllPlots()
    +    AddPlot("Vector", "airVfGradient")
    +    DrawPlots()
    +    Query("MinMax", use_actual_data=1)
    +    s = s + "\nMinMax Actual:" + GetQueryOutputString()
    +    s = s + "\nMinMax Original:"
    +    Query("MinMax", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +
    +    ChangeActivePlotsVar("grad")
    +    DrawPlots()
    +    Query("MinMax", use_actual_data=1)
    +    s = s + "MinMax Actual:" + GetQueryOutputString()
    +    s = s + "\nMinMax Original:"
    +    Query("MinMax", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +
    +    TestText("QueryNoise", s)
    +    DeleteAllPlots()
    +
    +def QuerySid97():
    +    OpenDatabase(silo_data_path("sid97.silo"))
    +
    +    AddPlot("FilledBoundary", "mat1")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    Query("3D surface area")
    +    s = GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    TestText("QuerySid97", s)
    +    DeleteAllPlots()
    +
    +def QueryBigSil():
    +    OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +    AddPlot("Pseudocolor", "dist")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    Query("Eulerian")
    +    s = GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("3D surface area")
    +    s = s+GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    TestText("QueryBigSil", s)
    +    DeleteAllPlots()
    +
    +def QueryMinMaxCurve():
    +    OpenDatabase(data_path("curve_test_data/curve.visit"))
    +
    +    AddPlot("Curve", "parabolic");
    +    DrawPlots()
    +    Query("MinMax", use_actual_data=1)
    +    s = "\n"
    +    frames = (0, 27, 56, 73, 91);
    +    for frame in frames:
    +        SetTimeSliderState(frame)
    +        s = s + "For entire curve at frame %d:" %frame
    +        Query("MinMax", use_actual_data=1)
    +        s = s + GetQueryOutputString()
    +
    +    AddOperator("Clip")
    +    clip = ClipAttributes()
    +    clip.planeInverse = 1
    +    clip.plane1Origin = (0.5, 0, 0)
    +    SetOperatorOptions(clip)
    +    DrawPlots()
    +    for frame in frames:
    +        SetTimeSliderState(frame)
    +        s = s + "For clipped curve at frame %d:" %frame
    +        Query("MinMax", use_actual_data=1)
    +        s = s + GetQueryOutputString()
    +
    +    TestText("QueryMinMaxCurve", s)
    +    DeleteAllPlots()
    +
    +def QuerySAMRAI():
    +    OpenDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +    AddPlot("Pseudocolor", "Primitive Var _number_0")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    Query("Eulerian")
    +    s = GetQueryOutputString()
    +    s = s + "\n"
    +    Query("MinMax", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", use_actual_data=0)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("SpatialExtents", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumNodes", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +    Query("NumZones", use_actual_data=1)
    +    s = s + GetQueryOutputString()
    +    s = s + "\n"
    +
    +    TestText("QuerySAMRAI", s)
    +    DeleteAllPlots()
    +
    +def QueryCurves():
    +    # in responses to VisIt00004449, Area between 2 curves query crashes
    +    # viewer if curves not from same database.
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +
    +    # do some lineouts so we can test curves from same database.
    +    Lineout((0.4, 1.04, 0), (0.4, 0.1, 0))
    +    SetActiveWindow(1)
    +    Lineout((0.02, 0.49, 0), (0.77, 0.49, 0))
    +
    +    SetActiveWindow(2)
    +    SetActivePlots((0, 1))
    +    Query("Area Between Curves")
    +    s = GetQueryOutputString() + "\n"
    +    Query("L2Norm Between Curves")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    # now add a curve from a different database, and test against 
    +    # previous curves.
    +    OpenDatabase(data_path("curve_test_data/c000.curve"))
    +
    +    AddPlot("Curve", "going_up")
    +    DrawPlots()
    +
    +    SetActivePlots((0, 2))
    +    Query("Area Between Curves")
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("L2Norm Between Curves")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    SetActivePlots((1, 2))
    +    Query("Area Between Curves")
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("L2Norm Between Curves")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    TestText("QueryCurves", s)
    +    DeleteWindow()
    +    DeleteAllPlots()
    +
    +def QueryHistogram():
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Histogram", "d")
    +    DrawPlots()
    +
    +    Query("Integrate")
    +    s = "Histogram(d):  " + GetQueryOutputString() + "\n"
    +
    +    ChangeActivePlotsVar("p")
    +    Query("Integrate")
    +    s = s + "Histogram(p):  " + GetQueryOutputString() + "\n"
    +
    +    ChangeActivePlotsVar("u")
    +    Query("Integrate")
    +    s = s + "Histogram(u):  " + GetQueryOutputString() + "\n"
    +
    +    ChangeActivePlotsVar("v")
    +    Query("Integrate")
    +    s = s + "Histogram(v):  " + GetQueryOutputString() + "\n\n"
    +
    +    TestText("QueryHistogram", s)
    +    DeleteAllPlots()
    +
    +def QueryGlobalId():
    +    OpenDatabase(silo_data_path("global_node.silo"))
    +
    +    AddPlot("Pseudocolor", "dist")
    +    DrawPlots()
    +
    +    Query("Global Zone Center", element=15);
    +    s = GetQueryOutputString() + "\n"
    +
    +    Query("Zone Center", element=0, domain=2)
    +    s = s + GetQueryOutputString() + "\n"
    +
    +    Query("Global Node Coords", element=16)
    +    s = s + GetQueryOutputString() + "\n"
    +
    +    Query("Node Coords", element=1, domain=2)
    +    s = s + GetQueryOutputString() + "\n"
    +
    +    TestText("QueryGlobalId", s)
    +    DeleteAllPlots()
    +
    +def QueryZR_RZ():
    +    s = "RZ UGRID:\n    "
    +    OpenDatabase(data_path("vtk_cylindrical_test_data/ugrid_RZ.vtk"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    s = s + "ZR UGRID:\n    "
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/ugrid_ZR.vtk"))
    +
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    s = s + "XY UGRID:\n    "
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/ugrid_XY.vtk"))
    +
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    AddOperator("Transform")
    +    translate = TransformAttributes()
    +    translate.doTranslate = 1
    +    translate.translateX = 5
    +    translate.translateY = 17
    +    SetOperatorOptions(translate)
    +    DrawPlots()
    +
    +    s = s + "XY UGRID TRANSLATED:\n    "
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/ugrid_ZR.vtk"))
    +
    +    DrawPlots()
    +
    +    s = s + "ZR UGRID TRANSLATED:\n    "
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/ugrid_RZ.vtk"))
    +
    +    DrawPlots()
    +
    +    s = s + "RZ UGRID TRANSLATED:\n    "
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    DeleteAllPlots()
    +
    +    s = s + "RZ RGRID:\n    "
    +    OpenDatabase(data_path("vtk_cylindrical_test_data/rect_RZ.vtk"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    s = s + "ZR RGRID:\n    "
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/rect_ZR.vtk"))
    +
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    s = s + "XY RGRID:\n    "
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/rect_XY.vtk"))
    +
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    AddOperator("Transform")
    +    translate = TransformAttributes()
    +    translate.doTranslate = 1
    +    translate.translateX = 5
    +    translate.translateY = 17
    +    SetOperatorOptions(translate)
    +    DrawPlots()
    +
    +    s = s + "XY RGRID TRANSLATED:\n    "
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/rect_ZR.vtk"))
    +
    +    DrawPlots()
    +    s = s + "ZR RGRID TRANSLATED:\n    "
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/rect_RZ.vtk"))
    +
    +    DrawPlots()
    +
    +    s = s + "RZ RGRID TRANSLATED:\n    "
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    DeleteAllPlots()
    +
    +    s = s + "RZ POLY:\n    "
    +    OpenDatabase(data_path("vtk_cylindrical_test_data/poly_RZ.vtk"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    s = s + "ZR POLY:\n    "
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/poly_ZR.vtk"))
    +
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    s = s + "XY POLY:\n    "
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/poly_XY.vtk"))
    +
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    AddOperator("Transform")
    +    translate = TransformAttributes()
    +    translate.doTranslate = 1
    +    translate.translateX = 5
    +    translate.translateY = 17
    +    SetOperatorOptions(translate)
    +    DrawPlots()
    +    s = s + "XY POLY TRANSLATED:\n    "
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/poly_ZR.vtk"))
    +
    +    DrawPlots()
    +    s = s + "ZR POLY TRANSLATED:\n    "
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    ReplaceDatabase(data_path("vtk_cylindrical_test_data/poly_RZ.vtk"))
    +
    +    DrawPlots()
    +
    +    s = s + "RZ POLY TRANSLATED:\n    "
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved volume")
    +    s = s + GetQueryOutputString() + "\n    "
    +    Query("Revolved surface area")
    +    s = s + GetQueryOutputString() + "\n\n"
    +
    +    TestText("QueryZR_RZ", s)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_cylindrical_test_data/poly_RZ.vtk"))
    +
    +def QueryArbPoly():
    +    SetQueryOutputToString()
    +
    +    OpenDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +    AddPlot("Mesh", "3D/mesh1")
    +    DrawPlots()
    +    s = "arbpoly-zoohybrid:\n"
    +    s = s + Query("NumZones", use_actual_data=1) + "\n"
    +    s = s + Query("NumZones", use_actual_data=0) + "\n"
    +    s = s + Query("NumNodes", use_actual_data=1) + "\n"
    +    s = s + Query("NumNodes", use_actual_data=0) + "\n"
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("arbpoly-zoohybrid.silo"))
    +
    +    OpenDatabase(silo_data_path("poly3d.silo"))
    +    AddPlot("Mesh", "ucdmesh3d")
    +    DrawPlots()
    +    s = s + "\npoly3d:\n"
    +    s = s + Query("NumZones", use_actual_data=1) + "\n"
    +    s = s + Query("NumZones", use_actual_data=0) + "\n"
    +    s = s + Query("NumNodes", use_actual_data=1) + "\n"
    +    s = s + Query("NumNodes", use_actual_data=0) + "\n"
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("poly3d.silo"))
    +
    +    OpenDatabase(data_path("overlink_test_data/ev_0_0_100/OvlTop.silo"))
    +    AddPlot("Mesh","MMESH")
    +    DrawPlots()
    +    s = s + "\nOvlTop:" + "\n"
    +    s = s + Query("NumZones", use_actual_data=1) + "\n"
    +    s = s + Query("NumZones", use_actual_data=0) + "\n"
    +    s = s + Query("NumNodes", use_actual_data=1) + "\n"
    +    s = s + Query("NumNodes", use_actual_data=0) + "\n"
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("overlink_test_data/ev_0_0_100/OvlTop.silo"))
    +
    +    OpenDatabase(silo_data_path("arbpoly.silo"))
    +    AddPlot("Mesh", "clipped_hex")
    +    DrawPlots()
    +    s = s + "\narbpoly:" + "\n"
    +    s = s + Query("NumZones", use_actual_data=1) + "\n"
    +    s = s + Query("NumZones", use_actual_data=0) + "\n"
    +    s = s + Query("NumNodes", use_actual_data=1) + "\n"
    +    s = s + Query("NumNodes", use_actual_data=0) + "\n"
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("arbpoly.silo"))
    +    TestText("QueryArbPoly", s)
    +
    +
    +def QueryMain():
    +    QueryBigSil()
    +    QueryContours()
    +    QueryCurv2d()
    +    QueryCurv3d()
    +    QueryGlobe()
    +    QueryMultiUcd3d()
    +    QueryNoise()
    +    QueryRect2d()
    +    QuerySid97()
    +    QueryMinMaxCurve()
    +    QuerySAMRAI()
    +    QueryCurves()
    +    QueryHistogram()
    +    QueryGlobalId()
    +    QueryZR_RZ()
    +    QueryArbPoly()
    +
    +# Call the main function
    +TurnOnAllAnnotations()
    +QueryMain()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_error_queries.html b/2024-12-12-22:00/poodle_trunk_serial/queries_error_queries.html new file mode 100644 index 000000000..4342c3316 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_error_queries.html @@ -0,0 +1,100 @@ + +Results for queries/error_queries.py + +

    Results of VisIt Regression Test - queries/error_queries

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Zone_Center_Curv2d_Valid_Str
     "The center of  zone 10 is (0.923738, 1.81294)." .eq. "The center of  zone 10 is (0.923738, 1.81294)." : True
    Zone_Center_Curv2d_Valid_Val
     (0.9237379878759384, 1.8129377663135529) .eq. (0.9237379878759384, 1.8129377663135529)
     (prec=5) : True
    Zone_Center_Curv2d_Invalid_Str
     "The center of zone 1000000 could not be determined." .eq. "The center of zone 1000000 could not be determined." : True
    Zone_Center_Curv2d_Invalid_Val
     "None" .eq. "None" : True
    Node_Coords_Curv2d_Valid_Str
     "The coords of  node 10 are (1, 1.73205)." .eq. "The coords of  node 10 are (1, 1.73205)." : True
    None_Coords_Curv2d_Valid_Val
     (1.0, 1.7320507764816284) .eq. (1.0, 1.7320507764816284)
     (prec=5) : True
    Node_Coords_Curv2d_Invalid_Str
     "The coords of node 1000000 could not be determined." .eq. "The coords of node 1000000 could not be determined." : True
    Node_Coords_Curv2d_Invalid_Val
     "None" .eq. "None" : True
    Zone_Center_Multi_Ucd3d_Valid_Str
     "The center of zone 10 (domain 5) is (0.463913, 3.91959, 6.33333)." .eq. "The center of zone 10 (domain 5) is (0.463913, 3.91959, 6.33333)." : True
    Zone_Center_Multi_Ucd3d_Valid_Val
     (0.4639131799340248, 3.9195945262908936, 6.333332777023315) .eq. (0.4639131799340248, 3.9195945262908936, 6.333332777023315)
     (prec=5) : True
    Zone_Center_Multi_Ucd3d_Invalid_Str
     "The center of zone 1000000 (domain 5) could not be determined." .eq. "The center of zone 1000000 (domain 5) could not be determined." : True
    Zone_Center_Multi_Ucd3d_Invalid_Val
     "None" .eq. "None" : True
    Node_Coords_Multi_Ucd3d_Valid_Str
     "The coords of node 10 (domain 5) are (2.96558, 2.53285, 0)." .eq. "The coords of node 10 (domain 5) are (2.96558, 2.53285, 0)." : True
    None_Coords_Multi_Ucd3d_Valid_Val
     (2.9655816555023193, 2.532846450805664, 0.0) .eq. (2.9655816555023193, 2.532846450805664, 0.0)
     (prec=5) : True
    Node_Coords_Multi_Ucd3d_Invalid_Str
     "The coords of node 1000000 (domain 5) could not be determined." .eq. "The coords of node 1000000 (domain 5) could not be determined." : True
    Node_Coords_Multi_Ucd3d_Invalid_Val
     "None" .eq. "None" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_error_queries_py.html b/2024-12-12-22:00/poodle_trunk_serial/queries_error_queries_py.html new file mode 100644 index 000000000..1e246fbb2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_error_queries_py.html @@ -0,0 +1,89 @@ +queries/error_queries.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  error_quries.py
    +#  Tests:      queries     - zone center, node coords
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       August 3, 2023
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Test with a single domain 2d curvilinear mesh
    +#
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +Query("Zone Center", domain=0, element=10)
    +s = GetQueryOutputString()
    +v = GetQueryOutputValue()
    +
    +TestValueEQ("Zone_Center_Curv2d_Valid_Str", s, "The center of  zone 10 is (0.923738, 1.81294).")
    +TestValueEQ("Zone_Center_Curv2d_Valid_Val", v, (0.9237379878759384, 1.8129377663135529))
    +
    +Query("Zone Center", domain=0, element=1000000)
    +s = GetQueryOutputString()
    +v = GetQueryOutputValue()
    +
    +TestValueEQ("Zone_Center_Curv2d_Invalid_Str", s, "The center of zone 1000000 could not be determined.")
    +TestValueEQ("Zone_Center_Curv2d_Invalid_Val", v, None)
    +
    +Query("Node Coords", domain=0, element=10)
    +s = GetQueryOutputString()
    +v = GetQueryOutputValue()
    +
    +TestValueEQ("Node_Coords_Curv2d_Valid_Str", s, "The coords of  node 10 are (1, 1.73205).")
    +TestValueEQ("None_Coords_Curv2d_Valid_Val", v, (1.0, 1.7320507764816284))
    +
    +Query("Node Coords", domain=0, element=1000000)
    +s = GetQueryOutputString()
    +v = GetQueryOutputValue()
    +
    +TestValueEQ("Node_Coords_Curv2d_Invalid_Str", s, "The coords of node 1000000 could not be determined.")
    +TestValueEQ("Node_Coords_Curv2d_Invalid_Val", v, None)
    +
    +DeleteAllPlots()
    +
    +#
    +# Test with a multi domain 3d unstructured mesh
    +#
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +Query("Zone Center", domain=5, element=10)
    +s = GetQueryOutputString()
    +v = GetQueryOutputValue()
    +
    +TestValueEQ("Zone_Center_Multi_Ucd3d_Valid_Str", s, "The center of zone 10 (domain 5) is (0.463913, 3.91959, 6.33333).")
    +TestValueEQ("Zone_Center_Multi_Ucd3d_Valid_Val", v, (0.4639131799340248, 3.9195945262908936, 6.333332777023315))
    +
    +Query("Zone Center", domain=5, element=1000000)
    +s = GetQueryOutputString()
    +v = GetQueryOutputValue()
    +
    +TestValueEQ("Zone_Center_Multi_Ucd3d_Invalid_Str", s, "The center of zone 1000000 (domain 5) could not be determined.")
    +TestValueEQ("Zone_Center_Multi_Ucd3d_Invalid_Val", v, None)
    +
    +Query("Node Coords", domain=5, element=10)
    +s = GetQueryOutputString()
    +v = GetQueryOutputValue()
    +
    +TestValueEQ("Node_Coords_Multi_Ucd3d_Valid_Str", s, "The coords of node 10 (domain 5) are (2.96558, 2.53285, 0).")
    +TestValueEQ("None_Coords_Multi_Ucd3d_Valid_Val", v, (2.9655816555023193, 2.532846450805664, 0.0))
    +
    +Query("Node Coords", domain=5, element=1000000)
    +s = GetQueryOutputString()
    +v = GetQueryOutputValue()
    +
    +TestValueEQ("Node_Coords_Multi_Ucd3d_Invalid_Str", s, "The coords of node 1000000 (domain 5) could not be determined.")
    +TestValueEQ("Node_Coords_Multi_Ucd3d_Invalid_Val", v, None)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_gridinformation.html b/2024-12-12-22:00/poodle_trunk_serial/queries_gridinformation.html new file mode 100644 index 000000000..0114313c7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_gridinformation.html @@ -0,0 +1,56 @@ + +Results for queries/gridinformation.py + +

    Results of VisIt Regression Test - queries/gridinformation

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    gridinformation_000 modifications totalling 0 lines
    gridinformation_010 modifications totalling 0 lines
    gridinformation_020 modifications totalling 0 lines
    gridinformation_030 modifications totalling 0 lines
    gridinformation_040 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_gridinformation_py.html b/2024-12-12-22:00/poodle_trunk_serial/queries_gridinformation_py.html new file mode 100644 index 000000000..497b8c917 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_gridinformation_py.html @@ -0,0 +1,43 @@ +queries/gridinformation.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  database.py #
    +#  Tests:      Grid Information
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Jan  3 16:38:02 PST 2018
    +#
    +#  Modifications:
    +#
    +# ---------------------------------------------------------------------------- 
    +
    +newline = "=================================================\n"
    +
    +tests = (
    +    ("gridinformation_00", silo_data_path("noise.silo"), "Pseudocolor", "radial"),
    +    ("gridinformation_01", silo_data_path("globe.silo"), "Pseudocolor", "speed"),
    +    ("gridinformation_02", silo_data_path("multi_rect3d.silo"), "Pseudocolor", "d"),
    +    ("gridinformation_03", silo_data_path("multi_curv3d.silo"), "Pseudocolor", "d"),
    +    ("gridinformation_04", silo_data_path("multi_ucd3d.silo"), "Pseudocolor", "d"))
    +
    +for t in tests:
    +    OpenDatabase(t[1])
    +    AddPlot(t[2], t[3])
    +    DrawPlots()
    +    Query("Grid Information")
    +    s = GetQueryOutputString()
    +    s = s + newline
    +
    +    Query("Grid Information", get_extents=1)
    +    s = s + GetQueryOutputString()
    +    s = s + newline
    +
    +    Query("Grid Information", get_extents=1, get_ghosttypes=1)
    +    s = s + GetQueryOutputString()
    +
    +    TestText(t[0], s)
    +    DeleteAllPlots()
    +    CloseDatabase(t[1])
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_hohlraum.html b/2024-12-12-22:00/poodle_trunk_serial/queries_hohlraum.html new file mode 100644 index 000000000..0c0e60975 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_hohlraum.html @@ -0,0 +1,86 @@ + +Results for queries/hohlraum.py + +

    Results of VisIt Regression Test - queries/hohlraum

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    hf_0_00 modifications totalling 0 lines
    hf_0_10.000.00
    hf_1_00 modifications totalling 0 lines
    hf_1_10.000.00
    hf_2_00 modifications totalling 0 lines
    hf_2_10.000.00
    hf_3_00 modifications totalling 0 lines
    hf_3_10.000.00
    hf_4_00 modifications totalling 0 lines
    hf_4_10.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_hohlraum_py.html b/2024-12-12-22:00/poodle_trunk_serial/queries_hohlraum_py.html new file mode 100644 index 000000000..1850c4c72 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_hohlraum_py.html @@ -0,0 +1,112 @@ +queries/hohlraum.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  line_scan.py
    +#  Tests:      queries     - mass distribution, chord length distribution
    +#
    +#  Defect ID:  '7474 + '7476
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 23, 2006
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Sun Aug 27 16:52:07 PDT 2006
    +#    Added testing for expected value, mass from boundary.
    +#
    +#    Dave Bremer, Fri Sep  8 11:44:22 PDT 2006
    +#    Added testing for the line scan transform.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Thu Jul 14 10:44:55 PDT 2011
    +#    Use named arguments.
    +#
    +#    Kathleen Biagas, Wed Feb 16 13:11:57 PST 2022
    +#    Replaced Curve atts 'cycleColors' with 'curveColorSource'.
    +#
    +# ----------------------------------------------------------------------------
    +
    +import os
    +
    +
    +ca=CurveAttributes()
    +ca.curveColorSource = ca.Custom
    +SetDefaultPlotOptions(ca)
    +
    +def TestOne(index, filename, varname, meshname, absvar, emisvar, numlines, x, y, z, radius, theta, phi):
    +    # Because the queries we are testing output to the file system, we need to
    +    # delete previous outputs before running.  If we don't do this, then the
    +    # queries will output files to names that are continuously incrementing.
    +    list = os.listdir(".")
    +    for i in range(len(list)):
    +        if (list[i] == "hf0.ult"):
    +            os.unlink("hf0.ult")
    +
    +    # Do the queries...
    +    OpenDatabase(filename)
    +    AddPlot("Pseudocolor", varname)
    +    DrawPlots()
    +    params = dict(num_lines=numlines, ray_center=(x, y, z), radius=radius, theta=theta, phi=phi, vars=(absvar, emisvar))
    +    Query("Hohlraum Flux", params)
    +    s = GetQueryOutputString()
    +    #v = GetQueryOutputValue()
    +    test_name = "hf_%d_%d" %(index,0)
    +    TestText(test_name, s)
    +    DeleteAllPlots()
    +
    +    # Now test the outputs
    +    OpenDatabase("hf0.ult")
    +    ReOpenDatabase("hf0.ult")  # Flush out cached version
    +    AddPlot("Curve", "Hohlraum Flux")
    +    DrawPlots()
    +    ResetView()
    +    test1 = "hf_%d_%d" %(index,1)
    +    Test(test1)
    +    DeleteAllPlots()
    +
    +
    +DefineArrayExpression("a0", "array_compose(recenter(u), recenter(v), d)")
    +DefineArrayExpression("e0", "array_compose(recenter(gradient(u)[0]), recenter(gradient(u)[1]), p)")
    +TestOne(0, silo_data_path("rect2d.silo"), "d", "quadmesh2d", "a0", "e0", 100, 0.5,0.5,0, 0.1,0,0)
    +DeleteExpression("a0")
    +DeleteExpression("e0")
    +
    +DefineArrayExpression("a1", "array_compose(<mesh_quality/volume>, <mesh_quality/taper>,  <mesh_quality/oddy>)")
    +DefineArrayExpression("e1", "array_compose(<mesh_quality/aspect>, <mesh_quality/shape>, <mesh_quality/skew>)")
    +TestOne(1, data_path("KullLite_test_data/T.pdb"),
    +        "mesh_quality/volume", "mesh",
    +        "a1", "e1", 100, 0,0,0, 0.25,90,90)
    +DeleteExpression("a1")
    +DeleteExpression("e1")
    +
    +DefineArrayExpression("a2", "array_compose(<mesh_quality/mesh/jacobian>, \
    +                      <mesh_quality/mesh/area>, <mesh_quality/mesh/oddy>)")
    +DefineArrayExpression("e2", "array_compose(<mesh_quality/mesh/aspect>, \
    +                      <mesh_quality/mesh/shape>, <mesh_quality/mesh/skew>)")
    +TestOne(2, data_path("KullLite_test_data/tagtest_rz_3.pdb"),
    +        "mesh_quality/mesh/area", "mesh",
    +        "a2", "e2", 333, 0,0,1, 0.5,0,0)
    +DeleteExpression("a2")
    +DeleteExpression("e2")
    +
    +TestOne(3, silo_data_path("multi_rect2d.silo"), "d", "mesh1", "d", "p", 500, 0.5,0.5,0, 1,45,45)
    +
    +
    +DefineArrayExpression("a3", "array_compose_with_bins(<mesh_quality/mesh/jacobian>,"
    +                            "<mesh_quality/mesh/area>, <mesh_quality/mesh/oddy>,  [0, 2, 4, 8])")
    +DefineArrayExpression("e3", "array_compose_with_bins(<mesh_quality/mesh/aspect>,"
    +                            "<mesh_quality/mesh/shape>, <mesh_quality/mesh/skew>, [0, 2, 4, 8])")
    +TestOne(4, data_path("KullLite_test_data/tagtest_rz_3.pdb"), "mesh_quality/mesh/area", "mesh",
    +        "a3", "e3", 333, 0,0,1, 0.5,0,0)
    +DeleteExpression("a3")
    +DeleteExpression("e3")
    +
    +
    +
    +
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_kurtosis.html b/2024-12-12-22:00/poodle_trunk_serial/queries_kurtosis.html new file mode 100644 index 000000000..4eb710c07 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_kurtosis.html @@ -0,0 +1,60 @@ + +Results for queries/kurtosis.py + +

    Results of VisIt Regression Test - queries/kurtosis

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    kurtosis_010 modifications totalling 0 lines
    kurtosis_020 modifications totalling 0 lines
    kurtosis_030 modifications totalling 0 lines
    kurtosis_040 modifications totalling 0 lines
    kurtosis_050 modifications totalling 0 lines
    kurtosis_060 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_kurtosis_py.html b/2024-12-12-22:00/poodle_trunk_serial/queries_kurtosis_py.html new file mode 100644 index 000000000..01970fa81 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_kurtosis_py.html @@ -0,0 +1,49 @@ +queries/kurtosis.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  kurtosis.py
    +#  Tests:      queries     - kurtosis and skewness
    +#
    +#  Defect ID:  VisIt00006466, '6269.
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 5, 2005
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +OpenDatabase(data_path("curve_test_data/distribution.ultra"))
    +
    +AddPlot("Curve", "Laplace Distribution")
    +DrawPlots()
    +
    +Query("Kurtosis")
    +text = GetQueryOutputString()
    +TestText("kurtosis_01", text)
    +
    +Query("Skewness")
    +text = GetQueryOutputString()
    +TestText("kurtosis_02", text)
    +
    +ChangeActivePlotsVar("Log Normal Distribution")
    +Query("Kurtosis")
    +text = GetQueryOutputString()
    +TestText("kurtosis_03", text)
    +
    +Query("Skewness")
    +text = GetQueryOutputString()
    +TestText("kurtosis_04", text)
    +
    +ChangeActivePlotsVar("Exponential Distribution")
    +Query("Kurtosis")
    +text = GetQueryOutputString()
    +TestText("kurtosis_05", text)
    +
    +Query("Skewness")
    +text = GetQueryOutputString()
    +TestText("kurtosis_06", text)
    +
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_l2norm.html b/2024-12-12-22:00/poodle_trunk_serial/queries_l2norm.html new file mode 100644 index 000000000..1912af585 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_l2norm.html @@ -0,0 +1,56 @@ + +Results for queries/l2norm.py + +

    Results of VisIt Regression Test - queries/l2norm

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    l2norm_010 modifications totalling 0 lines
    l2norm_020 modifications totalling 0 lines
    l2norm_030 modifications totalling 0 lines
    l2norm_040 modifications totalling 0 lines
    l2norm_050 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_l2norm_py.html b/2024-12-12-22:00/poodle_trunk_serial/queries_l2norm_py.html new file mode 100644 index 000000000..572919a6e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_l2norm_py.html @@ -0,0 +1,107 @@ +queries/l2norm.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  l2norm.py
    +#  Tests:      queries     - l2norms of various curves
    +#
    +#  Defect ID:  VisIt00006077
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 15, 2005
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +# Test that we can do an l2norm of a degenerate ultra file.
    +TurnOnAllAnnotations()
    +OpenDatabase(data_path("curve_test_data/degenerate.ultra"))
    +
    +AddPlot("Curve", "This is a degenerate ultra file.")
    +DrawPlots()
    +
    +Query("L2Norm")
    +text = GetQueryOutputString()
    +TestText("l2norm_01", text)
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +DefineScalarExpression("d_mod", "d+0.4*coord(quadmesh2d)[1]")
    +AddWindow()
    +SetActiveWindow(2)
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "d_mod")
    +DrawPlots()
    +
    +start_angle = 0
    +stop_angle = 90
    +
    +import math
    +nsteps = 10
    +center=(0,0)
    +radius = 1
    +step = (stop_angle-start_angle) / (nsteps-1)
    +rel_diff = []
    +for i in range(nsteps):
    +   angle = start_angle + i*step
    +   rad_angle = angle*2*math.pi/360.
    +   P2=(radius*math.cos(rad_angle), radius*math.sin(rad_angle))
    +   SetActiveWindow(1)
    +   time.sleep(1)
    +   Lineout(center, P2)
    +   SetActiveWindow(2)
    +   time.sleep(1)
    +   Lineout(center, P2)
    +   SetActiveWindow(3)
    +   SetActivePlots(0)
    +   Query("L2Norm")
    +   norm = GetQueryOutputValue()
    +   SetActivePlots((0,1))
    +   time.sleep(1)
    +   Query("L2Norm Between Curves")
    +   diff = GetQueryOutputValue()
    +   rel_diff = rel_diff + [1.-diff/norm]
    +   DeleteAllPlots()
    +
    +ave=0
    +for i in range(nsteps):
    +   ave += rel_diff[i]
    +ave /= nsteps
    +
    +text = "The average difference is %f" %(ave)
    +TestText("l2norm_02", text)
    +
    +min=1
    +max=0
    +for i in range(nsteps):
    +   if (rel_diff[i]<min):
    +       min=rel_diff[i]
    +   if (rel_diff[i]>max):
    +       max=rel_diff[i]
    +
    +
    +text = "The minimum relative difference is %f" %(min)
    +TestText("l2norm_03", text)
    +text = "The maximum relative difference is %f" %(max)
    +TestText("l2norm_04", text)
    +
    +
    +variance = 0
    +for i in range(nsteps):
    +   variance += (rel_diff[i]-ave)*(rel_diff[i]-ave)
    +variance /= (nsteps-1)
    +stddev = math.sqrt(variance)
    +
    +text = "The standard deviation of the relative difference is %f" %(stddev)
    +TestText("l2norm_05", text)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_length.html b/2024-12-12-22:00/poodle_trunk_serial/queries_length.html new file mode 100644 index 000000000..834d92fcf --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_length.html @@ -0,0 +1,50 @@ + +Results for queries/length.py + +

    Results of VisIt Regression Test - queries/length

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    length_010 modifications totalling 0 lines
    length_020 modifications totalling 0 lines
    length_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_length_py.html b/2024-12-12-22:00/poodle_trunk_serial/queries_length_py.html new file mode 100644 index 000000000..e7231f461 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_length_py.html @@ -0,0 +1,58 @@ +queries/length.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  length.py
    +#  Tests:      queries     - total length
    +#
    +#  Defect ID:  VisIt00007530
    +#
    +#  Programmer: Hank Childs
    +#  Date:       November 8, 2006
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Mon Nov 27 09:27:06 PST 2006
    +#    Forgot to remove annotations.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#    individually to match current baseline results.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Test that we can do an l2norm of a degenerate ultra file.
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Contour", "u")
    +DrawPlots()
    +Query("Total Length")
    +text = GetQueryOutputString()
    +TestText("length_01", text)
    +
    +DeleteAllPlots()
    +OpenDatabase(data_path("curve_test_data/curve.visit"))
    +
    +AddPlot("Curve", "going_up")
    +DrawPlots()
    +
    +Query("Total Length")
    +text = GetQueryOutputString()
    +TestText("length_02", text)
    +
    +q = GetQueryOverTimeAttributes()
    +q.timeType = q.Timestep
    +SetQueryOverTimeAttributes(q)
    +QueryOverTime("Total Length")
    +SetActiveWindow(2)
    +TurnOffAllAnnotations()
    +c = CurveAttributes()
    +c.curveColorSource = c.Custom
    +c.curveColor = (0, 255, 0, 255)
    +SetPlotOptions(c)
    +Test("length_03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_line_scan.html b/2024-12-12-22:00/poodle_trunk_serial/queries_line_scan.html new file mode 100644 index 000000000..89dc9e20a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_line_scan.html @@ -0,0 +1,428 @@ + +Results for queries/line_scan.py + +

    Results of VisIt Regression Test - queries/line_scan

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ls_0_10.000.00
    ls_0_20 modifications totalling 0 lines
    ls_0_30 modifications totalling 0 lines
    ls_0_40.000.00
    ls_0_50 modifications totalling 0 lines
    ls_0_60 modifications totalling 0 lines
    ls_0_70.000.00
    ls_0_80 modifications totalling 0 lines
    ls_0_90 modifications totalling 0 lines
    ls_0_100.000.00
    ls_0_110 modifications totalling 0 lines
    ls_0_120 modifications totalling 0 lines
    ls_0_130.000.00
    ls_0_140 modifications totalling 0 lines
    ls_0_150 modifications totalling 0 lines
    ls_0_160.000.00
    ls_0_170 modifications totalling 0 lines
    ls_0_180 modifications totalling 0 lines
    ls_0_190.000.00
    ls_0_200 modifications totalling 0 lines
    ls_0_210 modifications totalling 0 lines
    ls_1_10.000.00
    ls_1_20 modifications totalling 0 lines
    ls_1_30 modifications totalling 0 lines
    ls_1_40.000.00
    ls_1_50 modifications totalling 0 lines
    ls_1_60 modifications totalling 0 lines
    ls_1_70.000.00
    ls_1_80 modifications totalling 0 lines
    ls_1_90 modifications totalling 0 lines
    ls_1_100.000.00
    ls_1_110 modifications totalling 0 lines
    ls_1_120 modifications totalling 0 lines
    ls_1_130.000.00
    ls_1_140 modifications totalling 0 lines
    ls_1_150 modifications totalling 0 lines
    ls_1_160.000.00
    ls_1_170 modifications totalling 0 lines
    ls_1_180 modifications totalling 0 lines
    ls_1_190.000.00
    ls_1_200 modifications totalling 0 lines
    ls_1_210 modifications totalling 0 lines
    ls_2_10.000.00
    ls_2_20 modifications totalling 0 lines
    ls_2_30 modifications totalling 0 lines
    ls_2_40.000.00
    ls_2_50 modifications totalling 0 lines
    ls_2_60 modifications totalling 0 lines
    ls_2_70.000.00
    ls_2_80 modifications totalling 0 lines
    ls_2_90 modifications totalling 0 lines
    ls_2_100.000.00
    ls_2_110 modifications totalling 0 lines
    ls_2_120 modifications totalling 0 lines
    ls_2_130.000.00
    ls_2_140 modifications totalling 0 lines
    ls_2_150 modifications totalling 0 lines
    ls_2_160.000.00
    ls_2_170 modifications totalling 0 lines
    ls_2_180 modifications totalling 0 lines
    ls_2_190.000.00
    ls_2_200 modifications totalling 0 lines
    ls_2_210 modifications totalling 0 lines
    ls_3_10.000.00
    ls_3_20 modifications totalling 0 lines
    ls_3_30 modifications totalling 0 lines
    ls_3_40.000.00
    ls_3_50 modifications totalling 0 lines
    ls_3_60 modifications totalling 0 lines
    ls_3_70.000.00
    ls_3_80 modifications totalling 0 lines
    ls_3_90 modifications totalling 0 lines
    ls_3_100.000.00
    ls_3_110 modifications totalling 0 lines
    ls_3_120 modifications totalling 0 lines
    ls_3_130.000.00
    ls_3_140 modifications totalling 0 lines
    ls_3_150 modifications totalling 0 lines
    ls_3_160.000.00
    ls_3_170 modifications totalling 0 lines
    ls_3_180 modifications totalling 0 lines
    ls_3_190.000.00
    ls_3_200 modifications totalling 0 lines
    ls_3_210 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_line_scan_py.html b/2024-12-12-22:00/poodle_trunk_serial/queries_line_scan_py.html new file mode 100644 index 000000000..86ec7fa06 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_line_scan_py.html @@ -0,0 +1,203 @@ +queries/line_scan.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  line_scan.py
    +#  Tests:      queries     - mass distribution, chord length distribution
    +#
    +#  Defect ID:  '7474 + '7476
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 23, 2006
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Sun Aug 27 16:52:07 PDT 2006
    +#    Added testing for expected value, mass from boundary.
    +#
    +#    Dave Bremer, Fri Sep  8 11:44:22 PDT 2006
    +#    Added testing for the line scan transform.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Thu Jul 14 10:44:55 PDT 2011
    +#    Use named arguments.
    +#
    +#    Kathleen Biagas, Wed Feb 16 13:11:57 PST 2022
    +#    Replaced Curve atts 'cycleColors' with 'curveColorSource'.
    +#
    +# ----------------------------------------------------------------------------
    +
    +import os
    +
    +
    +ca=CurveAttributes()
    +ca.curveColorSource = ca.Custom
    +SetDefaultPlotOptions(ca)
    +
    +def TestOne(index, filename, varname, meshname, limit):
    +    # Because the queries we are testing output to the file system, we need to
    +    # delete previous outputs before running.  If we don't do this, then the
    +    # queries will output files to names that are continuously incrementing.
    +    list = os.listdir(".")
    +    for i in range(len(list)):
    +        if (list[i] == "cld_i0.ult"):
    +            os.unlink("cld_i0.ult")
    +        if (list[i] == "cld_a0.ult"):
    +            os.unlink("cld_a0.ult")
    +        if (list[i] == "rld_i0.ult"):
    +            os.unlink("rld_i0.ult")
    +        if (list[i] == "rld_a0.ult"):
    +            os.unlink("rld_a0.ult")
    +        if (list[i] == "md0.ult"):
    +            os.unlink("md0.ult")
    +        if (list[i] == "dfb0.ult"):
    +            os.unlink("dfb0.ult")
    +        if (list[i] == "lst0.ult"):
    +            os.unlink("lst0.ult")
    +
    +    # Set up a purely 2D data set...
    +    randname = "rand%d" %(index)
    +    defn = "rand(%s)" %(meshname)
    +    DefineScalarExpression(randname, defn)
    +    OpenDatabase(filename)
    +    AddPlot("Pseudocolor", varname)
    +    AddOperator("Isovolume")
    +    iso_atts = IsovolumeAttributes()
    +    iso_atts.ubound = 0.3
    +    iso_atts.variable = randname
    +    SetOperatorOptions(iso_atts)
    +    DrawPlots()
    +
    +    # Do the queries...
    +    Query("Chord Length Distribution - individual", num_lines=15000, num_bins=100, min=0, max=limit)
    +    Query("Chord Length Distribution - aggregate", num_lines=15000, num_bins=100, min=0, max=limit)
    +    Query("Ray Length Distribution - individual", num_lines=15000, num_bins=100, min=0, max=limit)
    +    Query("Ray Length Distribution - aggregate", num_lines=15000, num_bins=100, min=0, max=limit)
    +    Query("Mass Distribution", num_lines=15000, num_bins=100, min=0, max=limit)
    +    Query("Distance From Boundary", num_lines=15000, num_bins=100, min=0, max=limit)
    +    Query("Line Scan Transform", num_lines=15000, num_bins=100, min=0, max=limit)
    +    DeleteAllPlots()
    +
    +    # Now test the outputs
    +    OpenDatabase("cld_i0.ult")
    +    ReOpenDatabase("cld_i0.ult")  # Flush out cached version
    +    AddPlot("Curve", "Chord length distribution - individual")
    +    DrawPlots()
    +    ResetView()
    +    test1 = "ls_%d_%d" %(index,1)
    +    Test(test1)
    +    Query("Integrate")
    +    text = GetQueryOutputString()
    +    test2 = "ls_%d_%d" %(index,2)
    +    TestText(test2, text)
    +    Query("Expected Value")
    +    text = GetQueryOutputString()
    +    test3 = "ls_%d_%d" %(index,3)
    +    TestText(test3, text)
    +    DeleteAllPlots()
    +    OpenDatabase("md0.ult")
    +    ReOpenDatabase("md0.ult")  # Flush out cached version
    +    AddPlot("Curve", "Mass distribution")
    +    DrawPlots()
    +    ResetView()
    +    test4 = "ls_%d_%d" %(index,4)
    +    Test(test4)
    +    Query("Integrate")
    +    text = GetQueryOutputString()
    +    test5 = "ls_%d_%d" %(index,5)
    +    TestText(test5, text)
    +    Query("Expected Value")
    +    text = GetQueryOutputString()
    +    test6 = "ls_%d_%d" %(index,6)
    +    TestText(test6, text)
    +    DeleteAllPlots()
    +    OpenDatabase("dfb0.ult")
    +    ReOpenDatabase("dfb0.ult")  # Flush out cached version
    +    AddPlot("Curve", "Mass distribution")
    +    DrawPlots()
    +    ResetView()
    +    test7 = "ls_%d_%d" %(index,7)
    +    Test(test7)
    +    Query("Integrate")
    +    text = GetQueryOutputString()
    +    test8 = "ls_%d_%d" %(index,8)
    +    TestText(test8, text)
    +    Query("Expected Value")
    +    text = GetQueryOutputString()
    +    test9 = "ls_%d_%d" %(index,9)
    +    TestText(test9, text)
    +    DeleteAllPlots()
    +    OpenDatabase("cld_a0.ult")
    +    ReOpenDatabase("cld_a0.ult")  # Flush out cached version
    +    AddPlot("Curve", "Chord length distribution - aggregate")
    +    DrawPlots()
    +    ResetView()
    +    test1 = "ls_%d_%d" %(index,10)
    +    Test(test1)
    +    Query("Integrate")
    +    text = GetQueryOutputString()
    +    test2 = "ls_%d_%d" %(index,11)
    +    TestText(test2, text)
    +    Query("Expected Value")
    +    text = GetQueryOutputString()
    +    test3 = "ls_%d_%d" %(index,12)
    +    TestText(test3, text)
    +    DeleteAllPlots()
    +    OpenDatabase("rld_i0.ult")
    +    ReOpenDatabase("rld_i0.ult")  # Flush out cached version
    +    AddPlot("Curve", "Ray length distribution - individual")
    +    DrawPlots()
    +    ResetView()
    +    test1 = "ls_%d_%d" %(index,13)
    +    Test(test1)
    +    Query("Integrate")
    +    text = GetQueryOutputString()
    +    test2 = "ls_%d_%d" %(index,14)
    +    TestText(test2, text)
    +    Query("Expected Value")
    +    text = GetQueryOutputString()
    +    test3 = "ls_%d_%d" %(index,15)
    +    TestText(test3, text)
    +    DeleteAllPlots()
    +    OpenDatabase("rld_a0.ult")
    +    ReOpenDatabase("rld_a0.ult")  # Flush out cached version
    +    AddPlot("Curve", "Ray length distribution - aggregate")
    +    DrawPlots()
    +    ResetView()
    +    test1 = "ls_%d_%d" %(index,16)
    +    Test(test1)
    +    Query("Integrate")
    +    text = GetQueryOutputString()
    +    test2 = "ls_%d_%d" %(index,17)
    +    TestText(test2, text)
    +    Query("Expected Value")
    +    text = GetQueryOutputString()
    +    test3 = "ls_%d_%d" %(index,18)
    +    TestText(test3, text)
    +    DeleteAllPlots()
    +    OpenDatabase("lst0.ult")
    +    ReOpenDatabase("lst0.ult")  # Flush out cached version
    +    AddPlot("Curve", "Line Scan Transform")
    +    DrawPlots()
    +    ResetView()
    +    test1 = "ls_%d_%d" %(index,19)
    +    Test(test1)
    +    Query("Integrate")
    +    text = GetQueryOutputString()
    +    test2 = "ls_%d_%d" %(index,20)
    +    TestText(test2, text)
    +    Query("Expected Value")
    +    text = GetQueryOutputString()
    +    test3 = "ls_%d_%d" %(index,21)
    +    TestText(test3, text)
    +    DeleteAllPlots()
    +
    +
    +TestOne(0, silo_data_path("rect2d.silo") , "d", "quadmesh2d", 0.5)
    +TestOne(1, silo_data_path("multi_rect2d.silo") , "d", "mesh1", 0.5)
    +TestOne(2, data_path("KullLite_test_data/T.pdb"), "mesh_quality/volume", "mesh", 0.2)
    +TestOne(3, data_path("KullLite_test_data/tagtest_rz_3.pdb"), "mesh_quality/mesh/area", "mesh", 4.0)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_pick.html b/2024-12-12-22:00/poodle_trunk_serial/queries_pick.html new file mode 100644 index 000000000..402cd566f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_pick.html @@ -0,0 +1,284 @@ + +Results for queries/pick.py + +

    Results of VisIt Regression Test - queries/pick

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Pick3DTo2D2 modifications totalling 6 lines
    Pick2D0 modifications totalling 0 lines
    PickOnionPeel0 modifications totalling 0 lines
    PickSubset0 modifications totalling 0 lines
    PickMatFracsThreshold0 modifications totalling 0 lines
    PickReflect0 modifications totalling 0 lines
    PickFilledBoundary0 modifications totalling 0 lines
    PickMultiBlock0 modifications totalling 0 lines
    PickSurface0 modifications totalling 0 lines
    PickBigSilMat0 modifications totalling 0 lines
    PickOnionPeel20 modifications totalling 0 lines
    PickSpecMix0 modifications totalling 0 lines
    PickCurve0 modifications totalling 0 lines
    PickMultiWindow0 modifications totalling 0 lines
    PickAfterEngineClose0 modifications totalling 0 lines
    PickAfterEngineCrash0 modifications totalling 0 lines
    PickBoundary0 modifications totalling 0 lines
    PickVectorPlot0 modifications totalling 0 lines
    PickPointMeshes0 modifications totalling 0 lines
    PickGlobalIds0 modifications totalling 0 lines
    PickExpressions0 modifications totalling 0 lines
    PickAMR0 modifications totalling 0 lines
    PickSamrai_010 modifications totalling 0 lines
    PickSamrai_020 modifications totalling 0 lines
    PickSamrai_030 modifications totalling 0 lines
    PickSamrai_040 modifications totalling 0 lines
    PickSamrai_050 modifications totalling 0 lines
    PickIndexSelect0 modifications totalling 0 lines
    PickTensors0 modifications totalling 0 lines
    PickMili0 modifications totalling 0 lines
    PickContour0 modifications totalling 0 lines
    PickBox0 modifications totalling 0 lines
    PickScatter0 modifications totalling 0 lines
    PickHighlight_010.000.00
    GlobalHighlight_000.000.00
    PickHighlightColor_010.000.00
    PickRange_010.000.00
    RemovePicks_010.000.00
    RemovePicks_020.000.00
    Removed expected picks
     "A, C, D" .eq. "A, C, D" : True
    RemovePicks_030.000.00
    RemovePicks_040.000.00
    Removed expected picks 2
     "E" .eq. "E" : True
    RemoveLabeledPicks_000.000.00
    RemoveLabeledPicks_010.000.00
    Removed expected shell
     "shell 1, shell 2" .eq. "shell 1, shell 2" : True
    PickLines3D0 modifications totalling 0 lines
    PickByZoneLabel0 modifications totalling 0 lines
    PickByNodeLabel0 modifications totalling 0 lines
    PickRangeByZoneLabel0 modifications totalling 0 lines
    SwivelFocus_000.000.00
    SwivelHighlight_000.000.00
    NodeHighlight_000.000.00
    TranslatedHighlight_000.000.00
    TestPickingExpression_000 modifications totalling 0 lines
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_pickNamedArgs.html b/2024-12-12-22:00/poodle_trunk_serial/queries_pickNamedArgs.html new file mode 100644 index 000000000..ae47f1681 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_pickNamedArgs.html @@ -0,0 +1,90 @@ + +Results for queries/pickNamedArgs.py + +

    Results of VisIt Regression Test - queries/pickNamedArgs

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    TimePick_NamedArgs_000.000.00
    Curve type 0, pressure first value
     0.019999999552965164 .eq. 0.019999999552965164 (prec=14) : True
    Curve type 0, v first value
     0.0010749432258307934 .eq. 0.0010749432258307394 (prec=14) : True
    TimePick_NamedArgs_010.000.00
    TimePick_NamedArgs_020.000.00
    TimePick_NamedArgs_030.000.00
    Curve type 1, pressure first value
     0.019999999552965164 .eq. 0.019999999552965164 (prec=14) : True
    Curve type 1, v first value
     0.0010749432258307934 .eq. 0.0010749432258307394 (prec=14) : True
    TimePick_NamedArgs_040.000.00
    Pick_UsingQueryResults0 modifications totalling 0 lines
    Pick_ByGlobalElement0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_pickNamedArgs_py.html b/2024-12-12-22:00/poodle_trunk_serial/queries_pickNamedArgs_py.html new file mode 100644 index 000000000..cb3499b0c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_pickNamedArgs_py.html @@ -0,0 +1,242 @@ +queries/pickNamedArgs.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  pickNamedArgs.py #
    +#  Tests:      queries     - Pick using named-arguments
    +#                            Pick using query results as arguments
    +#
    +#  Defect ID:  1781
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       July 11, 2014 
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Tue Jul 22 11:51:27 MST 2014
    +#    Added Pick_ByGlobalId.
    +#
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#    individually to match current baseline results.
    +#
    +# ---------------------------------------------------------------------------- 
    +
    +def TimePick():
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +
    +    # to demonstrate the effect of changing time options, use timestep for x axis.
    +    q = GetQueryOverTimeAttributes()
    +    q.timeType = q.Timestep
    +    SetQueryOverTimeAttributes(q)
    +
    +    # Controlling which time steps are queried, showing defaults used
    +    #     stride     => int    default: 1
    +    #     start_time => int    default: 0 (min time index)
    +    #     end_time   => int    default: max time index, as determined from DB
    +
    +    # Controlling the plot type when multiple vars are queried
    +    #     curve_plot_type: 0 (Single Y Axis), or  1 (Multiple Y Axes) default: 0
    +
    +    # Which is used for subsequent timesteps, the coordinate or the element?
    +    #     preserve_coord:  0 (use the element)  or 1 (use the coordinate)
    +
    +    c = CurveAttributes()
    +    c.curveColorSource = c.Custom
    +    c.curveColor = (255, 0, 0, 255)
    +    SetDefaultPlotOptions(c)
    +
    +    vars =("pressure", "v", "direction_magnitude")
    +    PickByNode(element=8837, vars=vars, do_time=1, preserve_coord=0,curve_plot_type=0)
    +    SetActiveWindow(2);
    +    Test("TimePick_NamedArgs_00")
    +
    +    # this test and NamedArgs_03 using curve type 1 should return same values
    +    PFirstYVal =  0.019999999552965164
    +    VFirstYVal =  0.0010749432258307394
    +
    +    firstYVal=GetPlotInformation()["Curves"]["pressure"][1]
    +    TestValueEQ("Curve type 0, pressure first value", firstYVal, PFirstYVal, 14)
    +    firstYVal=GetPlotInformation()["Curves"]["v"][1]
    +    TestValueEQ("Curve type 0, v first value", firstYVal,  VFirstYVal, 14)
    +    DeleteAllPlots()
    +
    +    c.curveColor = (0, 255, 0, 255)
    +    SetDefaultPlotOptions(c)
    +
    +    SetActiveWindow(1)
    +    PickByNode(element=8837, vars=vars, do_time=1, preserve_coord=0,curve_plot_type=0,start_time=15, end_time=50, stride=7)
    +    SetActiveWindow(2);
    +    Test("TimePick_NamedArgs_01")
    +    DeleteAllPlots()
    +
    +    c.curveColor = (0, 0, 255, 255)
    +    SetDefaultPlotOptions(c)
    +    SetActiveWindow(1)
    +
    +    # different way for specifying time options, result should be same as previopus:
    +    time_opt = {'stride':7, 'start_time': 15, 'end_time':50}
    +    PickByNode(element=8837, vars=vars, do_time=1, preserve_coord=0, time_options=time_opt)
    +    SetActiveWindow(2);
    +    Test("TimePick_NamedArgs_02")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    PickByNode(element=8837, vars=vars, do_time=1, preserve_coord=0,curve_plot_type=1)
    +    SetActiveWindow(2);
    +    Test("TimePick_NamedArgs_03")
    +
    +    # these should be the same as TimePick_NamedArgs_00
    +    firstYVal=GetPlotInformation()["Curves"]["pressure"][1]
    +    TestValueEQ("Curve type 1, pressure first value", firstYVal, PFirstYVal, 14)
    +    firstYVal=GetPlotInformation()["Curves"]["v"][1]
    +    TestValueEQ("Curve type 1, v first value", firstYVal,  VFirstYVal, 14)
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1);
    +    PickByNode(element=8837, vars=vars, do_time=1, preserve_coord=0,curve_plot_type=1,stride=10)
    +    SetActiveWindow(2);
    +    Test("TimePick_NamedArgs_04")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("wave.visit"))
    +
    +def PickUsingQueryResults():
    +    ResetPickLetter()
    +    OpenDatabase(silo_data_path("wave.visit"))
    +    AddPlot("FilledBoundary", "Material")
    +    SetTimeSliderState(31)
    +    DrawPlots()
    +
    +    # Make it easier to get coordinate values
    +    SetQueryOutputToValue()
    +    s = "Pick using results of Node Coords query:\n"
    +
    +    node_8837_coords = Query("Node Coords", element=8837)
    +
    +    # Now test that NodePick using those coords will return the correct node id
    +    # Utilizes named args: coord (a tuple containing spatial coordinates)
    +
    +    pick_out = NodePick(coord=node_8837_coords)
    +    if pick_out['node_id'] == 8837:
    +        s = s + "    NodePick with coordinate succeeded.\n"
    +    else:
    +        s = s + "    NodePick with coordinate failed to return correct node id.\n"
    +
    +
    +    s = "Pick using results of Zone Center query:\n"
    +    # select a zone that is incident to node 8837
    +    adjacent_zone = pick_out['incident_zones'][0]
    +    # Get it's coords and try a pick
    +    adjacent_zone_coords = Query("Zone Center", element=adjacent_zone)
    +    pick_out = ZonePick(coord=adjacent_zone_coords)
    +    if pick_out['zone_id'] == adjacent_zone:
    +        s = s + "    ZonePick with coordinate succeeded.\n"
    +    else:
    +        s = s + "    ZonePick with coordinate failed to return correct node id\n"
    +
    +    # Now, does Pick report that our original node id is incident to the picked zone?
    +    if 8837 in pick_out['incident_nodes']:
    +        s = s + "    ZonePick correctly reported incident node\n"
    +    else:
    +        s = s + "    ZonePick failed to correctly report incident node\n"
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("wave.visit"))
    +
    +
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +    # d is zonal quantity, so picks will be by-zone
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    # Change query output type for parse-ability of MinMax results
    +    SetQueryOutputToObject()
    +
    +    # Do a MinMax query, and use the results to drive a pick.
    +    res = Query("MinMax")
    +    s = s + "\nQuery for MinMax of 'd': \n" + GetQueryOutputString()
    +
    +    s = s + "Pick using results of MinMax Query:\n\n"
    +
    +    # Pick using MinMax results
    +    # Utilizes named args: 
    +    #     domain (an integer), 
    +    #     element (an integer representing node id or zone id depending on the type of Pick)
    +    pick_out = PickByZone(domain=res['min_domain'], element=res['min_element_num'])
    +    s = s + "Pick for zone at 'd' minimum: \n" + GetPickOutput()
    +    pick_out = PickByZone(domain=res['max_domain'], element=res['max_element_num'])
    +    s = s + "Pick for zone at 'd' maximum: \n" + GetPickOutput()
    +    TestText("Pick_UsingQueryResults", s)
    +    ResetPickLetter()
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +
    +
    +def doGlobalPicks(centering):
    +    s = "Global node pick on %s_centered data:\n\n" %centering
    +    d = PickByGlobalNode(element=246827)
    +    # use json.dumps for dictionary object, makes for easier parsing
    +    # of diffs when there are errors
    +    s = s + "dictionary output:\n" + json.dumps(d,indent=2) + "\n\n"
    +    s = s + "string output: " + GetPickOutput() + "\n\n"
    +
    +    s = s + "\nGlobal zone pick on %s_centered data:\n\n" %centering
    +    d = PickByGlobalZone(element=237394)
    +    s = s + "dictionary output:\n" + json.dumps(d,indent=2) + "\n\n"
    +    s = s + "string output: " + GetPickOutput() + "\n\n"
    +
    +    return s
    +
    +def PickByGlobalElement():
    +    OpenDatabase(silo_data_path("global_node.silo"))
    +
    +    AddPlot("Pseudocolor", "dist")
    +    DrawPlots()
    +    ResetView()
    +    p = GetPickAttributes()
    +    p.showGlobalIds = 0
    +    SetPickAttributes(p)
    +
    +    s = "NOT SHOWING GLOBAL IDS\n\n"
    +    s = s + doGlobalPicks("node")
    +
    +    #  Repeat, showing global ids
    +    p.showGlobalIds = 1
    +    SetPickAttributes(p)
    +
    +    s = s + "SHOWING GLOBAL IDS\n\n"
    +    s = s + doGlobalPicks("node")
    +
    +    p.showGlobalIds = 0
    +    SetPickAttributes(p)
    +
    +    # now use a zone-centered var
    +    ChangeActivePlotsVar("p")
    +
    +    s = s + "NOT SHOWING GLOBAL IDS\n\n"
    +    s = s + doGlobalPicks("zone")
    +
    +    #  Repeat, showing global ids
    +    p.showGlobalIds = 1
    +    SetPickAttributes(p)
    +
    +    s = s + "SHOWING GLOBAL IDS\n\n"
    +    s = s + doGlobalPicks("zone")
    +
    +    TestText("Pick_ByGlobalElement", s)
    +    # cleanup
    +    p.showGlobalIds = 0
    +    SetPickAttributes(p)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +TimePick()
    +PickUsingQueryResults()
    +PickByGlobalElement()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_pick_py.html b/2024-12-12-22:00/poodle_trunk_serial/queries_pick_py.html new file mode 100644 index 000000000..1e4b72159 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_pick_py.html @@ -0,0 +1,3268 @@ +queries/pick.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  pick.py #
    +#  Tests:      queries     - Pick
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Kathleen Bonnell
    +#  Date:       May 13, 2003
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Fri Jun 27 16:03:57 PDT 2003
    +#    Modified PickFilledBoundary (removed MeshPlot) so that test is preformed
    +#    on FilledBoundaryPlot and not MeshPlot.
    +#
    +#    Kathleen Bonnell, Tue Jul  8 21:17:17 PDT 2003
    +#    Modified PickFilledBoundary to use flip of slice so that it still works
    +#    with recent slice changes.
    +#
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from Subset and FilledBoundary plots.
    +#
    +#    Kathleen Bonnell, Wed Sep 10 11:36:32 PDT 2003
    +#    Added test for multi-block meshes.
    +#
    +#    Kathleen Bonnell, Fri Oct 10 17:43:46 PDT 2003
    +#    Added test for surface plots.
    +#
    +#    Kathleen Bonnell, Fri Oct 24 16:09:33 PDT 2003
    +#    Added test for PC of BigSil, and pickvar = material.
    +#
    +#    Kathleen Bonnell, Wed Nov  5 14:30:35 PST 2003
    +#    Per VisIt000033891, add another onion peel test, where there is only
    +#    1 cell, and window is set to use Actual extents.
    +#
    +#    Kathleen Bonnell, Thu Nov 13 12:07:20 PST 2003
    +#    Use SetOperatorOptions instead of SetDefaultOperatorOption in OnionPeel, so
    +#    that OnionPeel2 will work correctly.  Added vars to OnionPeel2.
    +#
    +#    Kathleen Bonnell, Tue Nov 18 17:23:43 PST 2003
    +#    Added use of PickAtts' useNodeCoords, logicalCoords and logicalZone for
    +#    a few tests.
    +#
    +#    Kathleen Bonnell, Thu Nov 20 16:29:45 PST 2003
    +#    Added PicSpecMix tests, for species vars, (VisIt '3864).
    +#    Added a 'vel' only test to PickMatFracsThreshold (VisIt '4103).
    +#
    +#    Kathleen Bonnell, Wed Nov 26 11:26:04 PST 2003
    +#    Added calls to ResetPickLetter after each test, so that each test's
    +#    pick letter starts out with 'A'.  This will prevent the necessity of
    +#    updating all pick baselines when modifications are made to only one test.
    +#    Added tests for new pick methods: PickByZone, PickByNode. ('4123)
    +#
    +#    Kathleen Bonnell, Wed Dec  3 07:51:52 PST 2003
    +#    Added PickCurve tests, for curve plots. (VisIt '3832).
    +#
    +#    Kathleen Bonnell, Mon Mar  8 15:47:52 PST 2004
    +#    Added more tests  to TestSpecMix, to verify that we get same results
    +#    regardless of whether 'species' is the active variable, or some other
    +#    scalar is the active variale.
    +#
    +#    Kathleen Bonnell, Tue Mar 16 16:26:17 PST 2004
    +#    Added bad variables and expression variable tests to PickMultiBlock,
    +#    from bug '4571.
    +#
    +#    Kathleen Bonnell, Thu Apr  1 09:21:22 PST 2004
    +#    Added  a "Variable by Zone" and "Variable by Node" Query to PickSpecMix
    +#    in order to test that these queries return the same values as their
    +#    Pick counterparts.
    +#
    +#    Kathleen Bonnell, Tue Apr 20 09:42:30 PDT 2004
    +#    Added PickMultiWindow.
    +#
    +#    Kathleen Bonnell, Thu Apr 29 07:40:58 PDT 2004
    +#    Slice defaults atts have changed, update accordingly.
    +#
    +#    Brad Whitlock, Mon May 3 15:31:40 PST 2004
    +#    I added a couple of tests that test how pick works if an engine is closed
    +#    or if one crashes.
    +#
    +#    Kathleen Bonnell, Tue May  4 14:35:08 PDT 2004
    +#    Changed a couple of screen coordinates for PickBigSilMat that were
    +#    invalid.
    +#
    +#    Kathleen Bonnell, Wed Jun  2 10:14:58 PDT 2004
    +#    Added tests to Pick2D to tests PickByNode and PickByZone on a dataset
    +#    with ghost zones.  Added test to PickSurface, tests various flavors
    +#    of pick to see if they are returning the same info for the same input.
    +#
    +#    Kathleen Bonnell, Thu Jul  8 16:30:07 PDT 2004
    +#    Added  PickedBoundary, to test picking on 2D Boundary plots and
    +#    3D Sliced-to-2D Boundary plots with unstructured, rectilinear and
    +#    curvilinear data.
    +#
    +#    Jeremy Meredith, Wed Jul 21 08:59:24 PDT 2004
    +#    Making print output go to stderr.
    +#
    +#    Kathleen Bonnell, Thu Jul 22 08:35:45 PDT 2004
    +#    Added test of data designated as 'ascii' to Pick2D (using rect2d).
    +#
    +#    Kathleen Bonnell, Wed Aug 11 09:04:56 PDT 2004
    +#    Added to Pick3DTo2D, a test of data sliced along boundary between zones,
    +#    to verify that picking with all materials ON returns same results as
    +#    with some materials OFF. ('5279)
    +#
    +#    Brad Whitlock, Wed Aug 25 12:30:45 PDT 2004
    +#    Added TurnMaterialsOn to PickMultiBlock since it was remembering the
    +#    material selection for mulit_rect3d.silo from an earlier pick test.
    +#
    +#    Kathleen Bonnell, Wed Sep  8 09:36:30 PDT 2004
    +#    Renamed 'WorldPick' to 'Pick' and 'WorldNodePick' to 'NodePick'.
    +#
    +#    Kathleen Bonnell, Fri Oct 22 16:11:41 PDT 2004
    +#    Added PickVectorPlots.
    +#
    +#    Kathleen Bonnell, Tue Nov  2 10:16:36 PST 2004
    +#    Added PickPointMeshes.
    +#
    +#    Kathleen Bonnell, Wed Dec 15 15:38:41 PST 2004
    +#    Added PickGlobalIds.
    +#
    +#    Kathleen Bonnell, Thu Dec 16 17:16:33 PST 2004
    +#    Added PickByNode and PickByZone to PickGlobalIds.
    +#
    +#    Kathleen Bonnell, Mon Dec 20 10:49:59 PST 2004
    +#    Removed  "Variable by Zone" and "Variable by Node" Query from PickSpecMix
    +#    as they are no longer supported.
    +#
    +#    Kathleen Bonnell, Thu Feb  3 09:27:22 PST 2005
    +#    Added PickExpressions, testing matvf and mirvf per '5799.
    +#
    +#    Kathleen Bonnell, Tue Mar  1 13:11:31 PST 2005
    +#    Added couple more tests to PickExpressions, testing Expression that
    +#    has not been plotted, per '5418.
    +#
    +#    Brad Whitlock, Wed Mar 9 09:15:30 PDT 2005
    +#    Removed deprecated functions.
    +#
    +#    Kathleen Bonnell, Wed May 11 18:04:12 PDT 2005
    +#    Per ticket '6097, added tests to 'PickGlobalIds' to ensure global ids
    +#    returned correctly for global zone/node picks.
    +#
    +#    Kathleen Bonnell, Mon May 23 13:41:50 PDT 2005
    +#    Per ticket '6217, added tests to 'PickFilledBoundary' to ensure node
    +#    pick of sliced FB plot returns correct coords.
    +#
    +#    Kathleen Bonnell, Fri Jun 10 14:38:27 PDT 2005
    +#    Per ticket '6296 -- added tests to PickVectorPlots to ensure that
    +#    pick of vector expression won't causes crash
    +#
    +#    Kathleen Bonnell, Thu Jun 30 15:39:03 PDT 2005
    +#    Added tests for AMR data.
    +#
    +#    Kathleen Bonnell, Fri Jul  8 14:12:03 PDT 2005
    +#    Added more tests for AMR data: PickSamrai.
    +#
    +#    Kathleen Bonnell, Wed Aug 10 17:12:50 PDT 2005
    +#    Added PickIndexSelect.
    +#
    +#    Kathleen Bonnell, Tue Aug 30 15:19:34 PDT 2005
    +#    Added PickTensors.  '6410
    +#
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +#    Kathleen Bonnell, Tue May  2 08:38:28 PDT 2006
    +#    Added PickMili ('7144, '7145).
    +#
    +#    Kathleen Bonnell, Tue Aug 29 09:34:17 PDT 2006
    +#    Added Pickcontour ('7220).
    +#
    +#    Kathleen Bonnell, Thu Oct 26 14:24:45 PDT 2006
    +#    Added PickBox ('7566).
    +#
    +#    Jeremy Meredith, Mon Jul 14 11:17:29 EDT 2008
    +#    Allow the sliced vector plot to show all vectors (even ones not from
    +#    from original cells/nodes) to match the old behavior.
    +#
    +#    Kathleen Bonnell, Wed Jul 15 10:22:54 PDT 2009
    +#    Changed some zone picks to Node picks for PickPointMeshes, should yield
    +#    same results.  Added Subset plot test for PickPointMeshes.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Wed Mar  7 19:33:48 PST 2012
    +#    'displayXXX' attributes have been changed to 'showXXX'.
    +#
    +#    Kathleen Biagas, Thu Mar  8 13:52:37 PST 2012
    +#    Added test for picking scatter plots.
    +#
    +#    Matt Larsen, Mon Sep 19 10:20:11 PDT 2016
    +#    Added a test for zone pick highlighting
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    For PickSubset, change plot var to 'domains' as Subset plots shouldn't
    +#    work for materials.  Change pick var to 'mat1' to preserve baselines.
    +#
    +#    Matt Larsen, Wed Sep 6 16:23:12 PST 2017
    +#    Adding tests for pick by label for mili files.
    +#
    +#    Alister Maguire, Tue Sep 26 14:23:09 PDT 2017
    +#    Added test for pick highlight color.
    +#
    +#    Alister Maguire, Mon Oct 23 10:34:28 PDT 2017
    +#    Added tests for removing a list of picks.
    +#
    +#    Alister Maguire, Mon Oct 30 15:54:30 PDT 2017
    +#    Added test for removing a list of labeled picks.
    +#
    +#    Matt Larsen, Wed Feb 28 08:24:31 PDT 2018
    +#    Turning off all anotations for pick highlight tests
    +#
    +#    Alister Maguire, Thu Aug 16 10:18:56 PDT 2018
    +#    Added a test for swivel highlight.
    +#
    +#    Alister Maguire, Mon Aug 20 12:45:25 PDT 2018
    +#    Added a test for node highlight.
    +#
    +#    Alister Maguire, Tue May 21 13:10:05 PDT 2019
    +#    Updated tests that use mili to adhere to the plugin changes.
    +#
    +#    Alister Maguire, Thu Sep 12 15:54:36 PDT 2019
    +#    Add test for highlighting a zone picked by global id.
    +#
    +#    Alister Maguire, Thu Jan  2 15:16:53 PST 2020
    +#    Added test for translated zone highlights.
    +#
    +#    Mark C. Miller, Mon Jan 11 10:38:03 PST 2021
    +#    Replace Assert-style with TestValue-style tests
    +#
    +#    Alister Maguire, Fri Jul 16 07:27:44 PDT 2021
    +#    Added a test for Picking an expression variable.
    +#
    +#    Kathleen Biagas, Wed Feb 16 09:15:45 PST 2022
    +#    Replace use of meshatts 'foregroundFlag' with meshColorSource.
    +#
    +# ----------------------------------------------------------------------------
    +from __future__ import print_function
    +
    +
    +RequiredDatabasePlugin(("Boxlib2D","SAMRAI","Mili"))
    +defaultAtts = GetPickAttributes()
    +
    +def Pick3DTo2D():
    +    # Testing pick on 3d plots projected to 2d via Slice and Cone operators
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    AddOperator("Slice")
    +    slice = SliceAttributes()
    +    slice.SetOriginPoint(0, 0, 0)
    +    slice.SetNormal(1, 0, 0)
    +    slice.SetUpAxis(0, 1, 0)
    +    slice.project2d = 1
    +    SetOperatorOptions(slice)
    +    DrawPlots()
    +
    +    # Create the variable list.
    +    vars = ("default")
    +
    +    # Do some picks.
    +    Pick(128, 107, vars)
    +    s = GetPickOutput()
    +    Pick(200, 207, vars)
    +    s = s + GetPickOutput()
    +
    +    # Test new pick methods
    +    PickByZone(554, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(945, vars)
    +    s = s + GetPickOutput()
    +
    +    # Turn off some materials, and verify we get
    +    #  same results
    +    TurnMaterialsOff("1")
    +    Pick(128, 107, vars)
    +    s = s + GetPickOutput()
    +    Pick(200, 207, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(554, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(945, vars)
    +    s = s + GetPickOutput()
    +
    +    TurnMaterialsOn("1")
    +    RemoveLastOperator()
    +
    +    AddOperator("Cone")
    +    DrawPlots()
    +    ResetView()
    +    Pick(165, 170, vars)
    +    s  = s + GetPickOutput()
    +    Pick(137, 100, vars)
    +    s = s + GetPickOutput()
    +
    +    # Test new Pick methods.
    +    PickByZone(503, vars)
    +    s  = s + GetPickOutput()
    +    PickByZone(596, vars)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    # VisIt00005279
    +    #  When sliced along boundary between zones,
    +    #  pick with all materials returns different output than
    +    #  pick with some materials turned off.
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    AddOperator("Slice")
    +    slice = SliceAttributes()
    +    slice.axisType = slice.XAxis
    +    #set the slice plane on a boundary between zones
    +    slice.originIntercept = 0.2
    +    slice.project2d = 1
    +    SetOperatorOptions(slice)
    +    DrawPlots()
    +
    +    s = s + "\nPick with all materials turned on:\n"
    +    Pick(80, 60)
    +    s = s + GetPickOutput()
    +    PickByZone(226, 1)
    +    s = s + GetPickOutput()
    +    Pick(185, 160)
    +    s = s + GetPickOutput()
    +    PickByZone(606, 19)
    +    s = s + GetPickOutput()
    +    NodePick(80, 60)
    +    s = s + GetPickOutput()
    +    PickByNode(402, 1)
    +    s = s + GetPickOutput()
    +    NodePick(185, 160)
    +    s = s + GetPickOutput()
    +    PickByNode(853, 19)
    +    s = s + GetPickOutput()
    +    TurnMaterialsOff("2")
    +    s = s + "\nPick with material 2 turned off:\n"
    +    Pick(80, 60)
    +    s = s + GetPickOutput()
    +    PickByZone(226, 1)
    +    s = s + GetPickOutput()
    +    Pick(185, 160)
    +    s = s + GetPickOutput()
    +    PickByZone(606, 19)
    +    s = s + GetPickOutput()
    +    NodePick(80, 60)
    +    s = s + GetPickOutput()
    +    PickByNode(402, 1)
    +    s = s + GetPickOutput()
    +    NodePick(185, 160)
    +    s = s + GetPickOutput()
    +    PickByNode(853, 19)
    +    s = s + GetPickOutput()
    +    TurnMaterialsOn("2")
    +    TestText("Pick3DTo2D", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def Pick2D():
    +    OpenDatabase(silo_data_path("ucd2d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    ResetView()
    +    vars = ("d", "p", "u")
    +    Pick(170, 65, vars)
    +    s = GetPickOutput()
    +    Pick(140, 161, vars)
    +    s = s + GetPickOutput()
    +
    +    # Test new pick method
    +    PickByZone(5, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(4, vars)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    # Test PickByZone and PickByNode on data with ghost zones.
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    ResetView()
    +
    +    v = GetView2D()
    +    v.windowCoords = (-0.70073, 0.9927, 1.75365, 2.63085)
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    SetView2D(v)
    +
    +    vars = ("default")
    +    Pick(177, 90, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(13)
    +    s = s + GetPickOutput()
    +    NodePick(177, 90, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(13)
    +    s = s + GetPickOutput()
    +
    +    ResetView()
    +
    +    Pick(164, 136)
    +    s = s + GetPickOutput()
    +    PickByZone(716)
    +    s = s + GetPickOutput()
    +
    +    NodePick(164, 136)
    +    s = s + GetPickOutput()
    +    PickByNode(744)
    +    s = s + GetPickOutput()
    +
    +    Pick(113, 84)
    +    s = s + GetPickOutput()
    +    PickByZone(360)
    +    s = s + GetPickOutput()
    +
    +    NodePick(113, 84)
    +    s = s + GetPickOutput()
    +    PickByNode(374)
    +    s = s + GetPickOutput()
    +
    +    Pick(218, 65)
    +    s = s + GetPickOutput()
    +    PickByZone(81)
    +    s = s + GetPickOutput()
    +
    +    NodePick(218, 65)
    +    s = s + GetPickOutput()
    +    PickByNode(85)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    # bug '5152, ascii data not reported as such.
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    AddPlot("Pseudocolor", "ascii")
    +    DrawPlots()
    +
    +    ResetView()
    +
    +    Pick(104, 224)
    +    s = s + GetPickOutput()
    +    Pick(155, 140)
    +    s = s + GetPickOutput()
    +    Pick(234, 278)
    +    s = s + GetPickOutput()
    +    Pick(151, 266)
    +    s = s + GetPickOutput()
    +    Pick(187, 106)
    +    s = s + GetPickOutput()
    +
    +    NodePick(104, 224)
    +    s = s + GetPickOutput()
    +    NodePick(155, 140)
    +    s = s + GetPickOutput()
    +    NodePick(234, 278)
    +    s = s + GetPickOutput()
    +    NodePick(151, 266)
    +    s = s + GetPickOutput()
    +    NodePick(187, 106)
    +    s = s + GetPickOutput()
    +
    +    TestText("Pick2D", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickOnionPeel():
    +    # Testing pick on 3d plots with OnionPeel operator
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    AddOperator("OnionPeel")
    +    op = OnionPeelAttributes()
    +    op.adjacencyType = 0
    +    op.categoryName = "domains"
    +    op.subsetName = "domain4"
    +    op.index = 15
    +    op.requestedLayer = 0
    +    SetOperatorOptions(op)
    +
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0.0199972, -0.0176736, 0.999644)
    +    v.focus = (1.05702, 2.19945, 3.66667)
    +    v.viewUp = (-0.0156863, 0.999715, 0.0179886)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.794807
    +    v.nearPlane = -7.9865
    +    v.farPlane = 7.9865
    +    v.perspective = 0
    +    SetView3D(v)
    +
    +    #From defect VisIt00002762, pick shouldn't report repeated vars
    +    vars = ("default", "d", "p", "u", "p", "v")
    +    pa = GetPickAttributes()
    +    pa.showNodePhysicalCoords = 1
    +    SetPickAttributes(pa)
    +    Pick(271, 64, vars)
    +    s = GetPickOutput()
    +    Pick(282, 53, vars)
    +    s = s + GetPickOutput()
    +
    +    PickByZone(15, 4, vars)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickOnionPeel", s)
    +    pa.showNodePhysicalCoords = 0
    +    SetPickAttributes(pa)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickSubset():
    +    #Testing Pick's accuracy on a sil-restricted plot.
    +    #All the picks in this test should return zone 30.
    +    #From defect VisIt00003348
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Subset", "domains")
    +    TurnMaterialsOff()
    +    TurnMaterialsOn("1")
    +
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.997376, 0.0429928, 0.058241)
    +    v.focus = (-0.0906961, 0.0532744, -1.5925)
    +    v.viewUp = (0.0448435, 0.998518, 0.0308499)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.598088
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.perspective = 0
    +    SetView3D(v)
    +
    +    vars = ("mat1")
    +    Pick(173, 111, vars)
    +    s = GetPickOutput()
    +    Pick(191, 116, vars)
    +    s = s + GetPickOutput()
    +    Pick(294, 125, vars)
    +    s = s + GetPickOutput()
    +    Pick(156, 128, vars)
    +    s = s + GetPickOutput()
    +    Pick(147, 112, vars)
    +    s = s + GetPickOutput()
    +    TestText("PickSubset", s)
    +    TurnMaterialsOn()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +
    +def PickMatFracsThreshold():
    +    # Testing pick on 3d plot with Threshold operator, returning
    +    # material var (mat fracs) and vector var.
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Pseudocolor", "p")
    +    thresh = ThresholdAttributes()
    +    thresh.upperBounds = (37.0)
    +    thresh.lowerBounds = (10.0)
    +    SetDefaultOperatorOptions(thresh)
    +    AddOperator("Threshold")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, 1)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.181485
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.perspective = 0
    +    SetView3D(v)
    +
    +    pa = GetPickAttributes()
    +    pa.showNodeDomainLogicalCoords = 1
    +    pa.showZoneDomainLogicalCoords = 1
    +    SetPickAttributes(pa)
    +    vars = ("mat1", "vel")
    +    Pick(151, 172, vars)
    +    s = GetPickOutput()
    +    Pick(211, 185, vars)
    +    s = s + GetPickOutput()
    +    Pick(78, 153, vars)
    +    s = s + GetPickOutput()
    +    Pick(150, 124, vars)
    +    s = s + GetPickOutput()
    +
    +    #Test new pick method
    +    PickByZone(21045, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(18647, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(19812, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(20954, vars)
    +    s = s + GetPickOutput()
    +
    +    pa.showNodeDomainLogicalCoords = 0
    +    pa.showZoneDomainLogicalCoords = 0
    +    SetPickAttributes(pa)
    +
    +    # Add a few with only vel as the var
    +    # From bug: VisIt00004103
    +    RemoveLastOperator()
    +    vars = ("vel")
    +    Pick(78, 153, vars)
    +    s = s + GetPickOutput()
    +    Pick(150, 124, vars)
    +    s = s + GetPickOutput()
    +
    +    #Test new pick method
    +    PickByZone(35412, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(35354, vars)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickMatFracsThreshold", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickReflect():
    +    # Testing pick on plot with Reflect operator.
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    AddOperator("Reflect")
    +    DrawPlots()
    +    ResetView()
    +    vars = ("default")
    +    Pick(149, 206, vars)
    +    s = GetPickOutput()
    +    Pick(149, 94, vars)
    +    s = s + GetPickOutput()
    +    NodePick(coord=(0, 3, 0))
    +    s = s + GetPickOutput()
    +    NodePick(coord=(0, -3, 0))
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    # Try a rectilinear grid
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    AddPlot("Subset", "Mesh")
    +    AddOperator("Reflect")
    +    DrawPlots()
    +    ResetView()
    +
    +    Pick(coord=(-5, 5, 10))
    +    s = s + GetPickOutput()
    +    NodePick(coord=(-5, 5, 10))
    +    s = s + GetPickOutput()
    +    Pick(coord=(-5, -25, 10))
    +    s = s + GetPickOutput()
    +    NodePick(coord=(-5, -25, 10))
    +    s = s + GetPickOutput()
    +
    +
    +    TestText("PickReflect", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +
    +def PickFilledBoundary():
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    AddPlot("FilledBoundary", "mat1")
    +
    +    AddOperator("Slice")
    +    s= SliceAttributes()
    +    s.originIntercept = 2.89833
    +    s.originType = s.Intercept
    +    s.normal = (0, 1, 0)
    +    s.upAxis = (1, 0, 0)
    +    s.axisType = s.YAxis
    +    s.flip = 1
    +    s.project2d = 1
    +    SetOperatorOptions(s)
    +
    +    v = GetView2D()
    +    v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    v.windowCoords = (7.07307, 8.30598, 2.26402, 2.88047)
    +    SetView2D(v)
    +    DrawPlots()
    +
    +    vars = ("default")
    +    Pick(153, 69, vars)
    +    p = GetPickOutput()
    +    Pick(222, 56, vars)
    +    p += GetPickOutput()
    +    Pick(118, 77, vars)
    +    p += GetPickOutput()
    +    Pick(141, 74, vars)
    +    p += GetPickOutput()
    +    Pick(180, 68, vars)
    +    p += GetPickOutput()
    +    Pick(224, 75, vars)
    +    p += GetPickOutput()
    +    Pick(198, 56, vars)
    +    p += GetPickOutput()
    +    Pick(113, 70, vars)
    +    p += GetPickOutput()
    +    Pick(119, 57, vars)
    +    p += GetPickOutput()
    +    Pick(157, 66, vars)
    +    p += GetPickOutput()
    +    Pick(199, 66, vars)
    +    p += GetPickOutput()
    +    Pick(227, 79, vars)
    +    p += GetPickOutput()
    +
    +    # Test new pick method
    +    PickByZone(320, 17, vars)
    +    p += GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    # bug 6217 -- NodePick on Sliced FB returning wrong coords.
    +    # will test with Mesh, OnionPeeled Mesh and FB to verify
    +    # they all return the same nodes/zones and coords.
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    AddPlot("Mesh", "mesh1")
    +    m = MeshAttributes()
    +    m.meshColor = (255, 255, 0, 255)
    +    m.meshColorSource = m.MeshCustom
    +    m.lineWidth = 2
    +    SetPlotOptions(m)
    +    AddOperator("OnionPeel", 0)
    +    op = OnionPeelAttributes()
    +    op.index = 679
    +    SetOperatorOptions(op)
    +
    +    AddPlot("FilledBoundary","mat1")
    +    AddOperator("Slice", 1)
    +    DrawPlots()
    +    ResetView()
    +
    +    SetActivePlots(0)
    +    Pick(247, 188, vars)
    +    p = p + GetPickOutput()
    +    NodePick(247, 188, vars)
    +    p = p + GetPickOutput()
    +
    +    SetActivePlots(1)
    +    Pick(247, 188, vars)
    +    p = p + GetPickOutput()
    +    NodePick(247, 188, vars)
    +    p = p + GetPickOutput()
    +    SetActivePlots(2)
    +    Pick(247, 188, vars)
    +    p = p + GetPickOutput()
    +    NodePick(247, 188, vars)
    +    p = p + GetPickOutput()
    +    TestText("PickFilledBoundary", p)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickMultiBlock():
    +    # Testing pick on 3d multi-domain plots
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.perspective = 1
    +    SetView3D(v)
    +
    +    vars = ("default", "d", "p")
    +    Pick(109, 113, vars)
    +    s = GetPickOutput()
    +    Pick(74, 114, vars)
    +    s = s + GetPickOutput()
    +    Pick(192, 114, vars)
    +    s = s + GetPickOutput()
    +    Pick(230, 114, vars)
    +    s = s + GetPickOutput()
    +    Pick(155, 148, vars)
    +    s = s + GetPickOutput()
    +    Pick(153, 185, vars)
    +    s = s + GetPickOutput()
    +    Pick(106, 149, vars)
    +    s = s + GetPickOutput()
    +    Pick(196, 144, vars)
    +    s = s + GetPickOutput()
    +    Pick(119, 157, vars)
    +    s = s + GetPickOutput()
    +    Pick(180, 160, vars)
    +    s = s + GetPickOutput()
    +    Pick(97, 130, vars)
    +    s = s + GetPickOutput()
    +    Pick(212, 129, vars)
    +    s = s + GetPickOutput()
    +
    +
    +    # Test new pick method
    +    PickByZone(15, 34, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(15, 36, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(75, 25, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(83, 27, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(15, 28, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(4, 30, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(94, 35, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(15, 26, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(25, 32, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(64, 29, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(56, 35, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(51, 26, vars)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    TurnMaterialsOn()
    +    DrawPlots()
    +    ResetView()
    +    vars = ("default", "u", "d", "p")
    +    Pick(61, 61, vars)
    +    s = s + GetPickOutput()
    +    Pick(61, 188, vars)
    +    s = s + GetPickOutput()
    +    Pick(79, 233, vars)
    +    s = s + GetPickOutput()
    +    Pick(80, 64, vars)
    +    s = s + GetPickOutput()
    +    Pick(99, 120, vars)
    +    s = s + GetPickOutput()
    +    Pick(115, 236, vars)
    +    s = s + GetPickOutput()
    +    Pick(154, 194, vars)
    +    s = s + GetPickOutput()
    +    Pick(155, 150, vars)
    +    s = s + GetPickOutput()
    +    Pick(174, 72, vars)
    +    s = s + GetPickOutput()
    +    Pick(192, 115, vars)
    +    s = s + GetPickOutput()
    +    Pick(229, 235, vars)
    +    s = s + GetPickOutput()
    +    Pick(236, 59, vars)
    +    s = s + GetPickOutput()
    +    Pick(246, 157, vars)
    +    s = s + GetPickOutput()
    +
    +    # Test new pick method
    +    PickByZone(921, 25, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(971, 31, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(964, 34, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(934, 25, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(947, 28, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(969, 34, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(985, 32, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(995, 29, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(948, 26, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(931, 30, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(966, 36, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(927, 27, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(919, 33, vars)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +    AddPlot("Pseudocolor", "dist")
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal= (1, 0, 0)
    +    SetView3D(v)
    +
    +    vars = ("default")
    +    Pick(250, 64, vars)
    +    s = s + GetPickOutput()
    +    Pick(149, 135, vars)
    +    s = s + GetPickOutput()
    +    Pick(227, 72, vars)
    +    s = s + GetPickOutput()
    +    Pick(65, 65, vars)
    +    s = s + GetPickOutput()
    +    Pick(67, 228, vars)
    +    s = s + GetPickOutput()
    +
    +    # Test new pick method
    +    PickByZone(13, 3, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(1, 15, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(118, 3, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(258, 21, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(279, 27, vars)
    +    s = s + GetPickOutput()
    +
    +    #Bug '4571, pick crashing when bad vars specified
    +    vars = ("aspect")
    +    Pick(67, 228, vars)
    +    s = s + GetPickOutput()
    +    vars = ("mesh_quality/aspect", "spurious")
    +    Pick(67, 228, vars)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickMultiBlock", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickSurface():
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Surface", "d")
    +    AddOperator("Slice")
    +    slice = SliceAttributes()
    +    slice.originIntercept = 0.5
    +    slice.project2d = 1
    +    slice.axisType = slice.YAxis
    +    SetOperatorOptions(slice)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (0, 1, 0)
    +    v.viewUp = (0, 0, -1)
    +    SetView3D(v)
    +
    +    pa = GetPickAttributes()
    +    pa.variables = ("default")
    +    SetPickAttributes(pa)
    +
    +    Pick(141, 178)
    +    s = GetPickOutput()
    +    NodePick(141, 178)
    +    s = s + GetPickOutput()
    +    Pick(194, 144)
    +    s = s + GetPickOutput()
    +    NodePick(194, 144)
    +    s = s + GetPickOutput()
    +    Pick(149, 197)
    +    s = s + GetPickOutput()
    +    NodePick(149, 197)
    +    s = s + GetPickOutput()
    +    Pick(64, 102)
    +    s = s + GetPickOutput()
    +    NodePick(64, 102)
    +    s = s + GetPickOutput()
    +    Pick(138, 126)
    +    s = s + GetPickOutput()
    +    NodePick(138, 126)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Surface", "p")
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (0, 1, 0)
    +    v.viewUp = (0, 0, -1)
    +    SetView3D(v)
    +
    +    Pick(103, 227)
    +    s = s + GetPickOutput()
    +    NodePick(103, 227)
    +    s = s + GetPickOutput()
    +    Pick(171, 86)
    +    s = s + GetPickOutput()
    +    NodePick(171, 86)
    +    s = s + GetPickOutput()
    +    Pick(129, 63)
    +    s = s + GetPickOutput()
    +    NodePick(129, 63)
    +    s = s + GetPickOutput()
    +    Pick(153, 177)
    +    s = s + GetPickOutput()
    +    NodePick(153, 177)
    +    s = s + GetPickOutput()
    +    Pick(188, 167)
    +    s = s + GetPickOutput()
    +    NodePick(188, 167)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("ucd2d.silo"))
    +
    +    AddPlot("Surface", "d")
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (0.329152, -0.014518, -0.944165)
    +    v.focus = (2, 2, 2)
    +    v.viewUp = (-0.944025, -0.0281555, -0.32867)
    +    SetView3D(v)
    +
    +    s = s + "\nThe next three results should be the same.\n"
    +    Pick(118, 112)
    +    s = s + GetPickOutput()
    +    PickByZone(3)
    +    s = s + GetPickOutput()
    +    Pick((2.74917, 2.79753, 2.82784))
    +
    +    s = s + GetPickOutput()
    +
    +    s = s + "\nThe next three results should be the same.\n"
    +    NodePick(118, 112)
    +    s = s + GetPickOutput()
    +    PickByNode(11)
    +    s = s + GetPickOutput()
    +    NodePick((2.5, 2.5, 1.41421))
    +    s = s + GetPickOutput()
    +
    +    s = s + "\nThe next three results should be the same.\n"
    +    NodePick(139, 73)
    +    s = s + GetPickOutput()
    +    PickByNode(4)
    +    s = s + GetPickOutput()
    +    NodePick((4.0, 2.0, 4.0))
    +    s = s + GetPickOutput()
    +
    +    TestText("PickSurface", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickBigSilMat():
    +    OpenDatabase(silo_data_path("bigsil.silo"))
    +
    +    AddPlot("Pseudocolor", "dist")
    +    DrawPlots()
    +    ResetView()
    +    pa = GetPickAttributes()
    +    pa.showNodePhysicalCoords = 1
    +    SetPickAttributes(pa)
    +    vars = "mat"
    +    Pick(87, 215, vars)
    +    s = GetPickOutput()
    +    NodePick(87, 215, vars)
    +    s = s + GetPickOutput()
    +    Pick(149, 146, vars)
    +    s = s + GetPickOutput()
    +    NodePick(149, 146, vars)
    +    s = s + GetPickOutput()
    +    Pick(89, 54, vars)
    +    s = s + GetPickOutput()
    +    NodePick(89, 54, vars)
    +    s = s + GetPickOutput()
    +    Pick(217, 74, vars)
    +    s = s + GetPickOutput()
    +    NodePick(217, 74, vars)
    +    s = s + GetPickOutput()
    +    Pick(215, 233, vars)
    +    s = s + GetPickOutput()
    +    NodePick(215, 233, vars)
    +    s = s + GetPickOutput()
    +    Pick(186, 193, vars)
    +    s = s + GetPickOutput()
    +    NodePick(186, 193, vars)
    +    s = s + GetPickOutput()
    +    Pick(190, 106, vars)
    +    s = s + GetPickOutput()
    +    NodePick(190, 106, vars)
    +    s = s + GetPickOutput()
    +    Pick(117, 173, vars)
    +    s = s + GetPickOutput()
    +    NodePick(117, 173, vars)
    +    s = s + GetPickOutput()
    +    Pick(98, 86, vars)
    +    s = s + GetPickOutput()
    +    NodePick(98, 86, vars)
    +    s = s + GetPickOutput()
    +    Pick(185, 116, vars)
    +    s = s + GetPickOutput()
    +    NodePick(185, 116, vars)
    +    s = s + GetPickOutput()
    +
    +    # Test new pick methods
    +    PickByZone(319, 25, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(476, 25, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(318, 23, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(475, 23, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(311, 21, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(475, 21, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(332, 27, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(491, 27, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(294, 27, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(456, 27, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(329, 21, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(497, 21, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(329, 23, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(496, 23, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(329, 19, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(485, 19, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(294, 24, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(448, 24, vars)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickBigSilMat", s)
    +    DeleteAllPlots()
    +    pa.showNodePhysicalCoords = 0
    +    SetPickAttributes(pa)
    +    ResetPickLetter()
    +
    +def PickOnionPeel2():
    +    #From defect VisIt00003981, onionpeel and window ACTUAL_EXTENTS
    +    #pick not working
    +    print(tests_path("queries","pickonionpeel.session"), 0,silo_data_path("curv3d.silo"))
    +    RestoreSessionWithDifferentSources(tests_path("queries","pickonionpeel.session"), 0,
    +                                       silo_data_path("curv3d.silo"))
    +    vars = "default"
    +    Pick(196, 194, vars)
    +    s = GetPickOutput()
    +    Pick(59, 73, vars)
    +    s = s + GetPickOutput()
    +    Pick(128, 111, vars)
    +    s = s + GetPickOutput()
    +    Pick(50, 90, vars)
    +    s = s + GetPickOutput()
    +    Pick(275, 203, vars)
    +    s = s + GetPickOutput()
    +    Pick(277, 225, vars)
    +    s = s + GetPickOutput()
    +    Pick(52, 109, vars)
    +    s = s + GetPickOutput()
    +
    +    op = OnionPeelAttributes()
    +    op.adjacencyType = op.Face
    +    op.requestedLayer = 1
    +    op.index = 1
    +    SetOperatorOptions(op)
    +
    +    Pick(52, 105, vars)
    +    s = s + GetPickOutput()
    +    Pick(67, 65, vars)
    +    s = s + GetPickOutput()
    +    Pick(51, 86, vars)
    +    s = s + GetPickOutput()
    +    Pick(265, 210, vars)
    +    s = s + GetPickOutput()
    +    Pick(172, 165, vars)
    +    s = s + GetPickOutput()
    +
    +    op.index = 317
    +    op.requestedLayer = 0
    +    SetOperatorOptions(op)
    +
    +    Pick(76, 70, vars)
    +    s = s + GetPickOutput()
    +    Pick(37, 120, vars)
    +    s = s + GetPickOutput()
    +    Pick(119, 174, vars)
    +    s = s + GetPickOutput()
    +    Pick(273, 188, vars)
    +    s = s + GetPickOutput()
    +
    +    op.adjacencyType = op.Node
    +    op.requestedLayer = 3
    +    SetOperatorOptions(op)
    +
    +    Pick(96, 72, vars)
    +    s = s + GetPickOutput()
    +    Pick(27, 144, vars)
    +    s = s + GetPickOutput()
    +    Pick(115, 102, vars)
    +    s = s + GetPickOutput()
    +    Pick(134, 140, vars)
    +    s = s + GetPickOutput()
    +    Pick(288, 185, vars)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickOnionPeel2", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickSpecMix():
    +    #VisIt '3864
    +    OpenDatabase(silo_data_path("specmix_quad.silo"))
    +
    +    AddPlot("Pseudocolor", "Species")
    +    DrawPlots()
    +
    +    v = GetView2D()
    +    v.windowCoords = (0, 1, 0, 1)
    +    SetView2D(v)
    +
    +    vars = ("default")
    +    Pick(69, 137, vars)
    +    s = GetPickOutput()
    +    NodePick(90, 119, vars)
    +    s = s + GetPickOutput()
    +    Pick(139, 142, vars)
    +    s = s + GetPickOutput()
    +    NodePick(170, 126, vars)
    +    s = s + GetPickOutput()
    +    Pick(201, 95, vars)
    +    s = s + GetPickOutput()
    +    Pick(78, 75, vars)
    +    s = s + GetPickOutput()
    +    Pick(256, 169, vars)
    +    s = s + GetPickOutput()
    +
    +    # Test new pick method
    +    PickByZone(233, vars)
    +    s = s +GetPickOutput()
    +    PickByNode(266, vars)
    +    s = s +GetPickOutput()
    +
    +    silr = SILRestriction()
    +    onoff = 0
    +    for sets in silr.SetsInCategory('Species'):
    +        if(onoff == 0):
    +            silr.TurnOffSet(sets)
    +            onoff = 1
    +        else:
    +            onoff = 0
    +    SetPlotSILRestriction(silr)
    +
    +    NodePick(140, 197, vars)
    +    s = s + GetPickOutput()
    +    Pick(249, 112, vars)
    +    s = s + GetPickOutput()
    +    NodePick(125, 137, vars)
    +    s = s + GetPickOutput()
    +    Pick(191, 136, vars)
    +    s = s + GetPickOutput()
    +    vars = ("d", "Species")
    +    NodePick(204, 135, vars)
    +    s = s + GetPickOutput()
    +    Pick(138, 118, vars)
    +    s = s + GetPickOutput()
    +    NodePick(104, 139, vars)
    +    s = s + GetPickOutput()
    +    Pick(94, 151, vars)
    +    s = s + GetPickOutput()
    +    NodePick(182, 99, vars)
    +    s = s + GetPickOutput()
    +    # now test with 'd' as the active plot variable, should
    +    # get the same results.
    +    ChangeActivePlotsVar("d")
    +    NodePick(204, 135, vars)
    +    s = s + GetPickOutput()
    +    Pick(138, 118, vars)
    +    s = s + GetPickOutput()
    +    NodePick(104, 139, vars)
    +    s = s + GetPickOutput()
    +    Pick(94, 151, vars)
    +    s = s + GetPickOutput()
    +
    +    NodePick(182, 99, vars)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickSpecMix", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickCurve():
    +    OpenDatabase(data_path("curve_test_data/curve.visit"))
    +
    +    AddPlot("Curve", "parabolic")
    +    SetTimeSliderState(72)
    +    DrawPlots()
    +
    +    v = GetViewCurve()
    +    v.rangeCoords = (0, 1)
    +    SetViewCurve(v)
    +
    +    pa = GetPickAttributes()
    +    pa.variables = ("default")
    +    SetPickAttributes(pa)
    +
    +    Pick(72, 53)
    +    p = GetPickOutput()
    +    Pick(156, 22)
    +    p = p + GetPickOutput()
    +    Pick(15, 128)
    +    p = p + GetPickOutput()
    +    Pick(212, 200)
    +    p = p + GetPickOutput()
    +    Pick((0.2, 0.7))
    +    p = p + GetPickOutput()
    +    Pick((0.8, 0.35))
    +    p = p + GetPickOutput()
    +    Pick((0.6, 0.6))
    +    p = p + GetPickOutput()
    +    Pick((0.3, 0.5))
    +    p = p + GetPickOutput()
    +
    +    TestText("PickCurve", p)
    +    ResetPickLetter()
    +    DeleteAllPlots()
    +
    +def PickMultiWindow():
    +    OpenDatabase(silo_data_path("wave*.silo database"))
    +
    +    AddPlot("FilledBoundary", "Material")
    +    SetTimeSliderState(31)
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0, -1, 0)
    +    v.viewUp = (0, 0, 1)
    +    SetView3D(v)
    +
    +    CloneWindow()
    +    SetTimeSliderState(64)
    +    DrawPlots()
    +
    +    pt1a = (7.20585, 0.099664, 2.5)
    +    pt1b = (5.867554, 0.264801,  3.566963)
    +
    +    pt2a = (7.20585, 0.099664, 2.378386)
    +    pt2b = (5.867554, 0.039652,  3.566963)
    +
    +
    +    # Same DB, same plot, same var, different ts
    +    SetActiveWindow(1)
    +    Pick(pt1a)
    +    s = GetPickOutput()
    +
    +    SetActiveWindow(2)
    +    Pick(pt2a)
    +    s = s + GetPickOutput()
    +
    +    SetActiveWindow(1)
    +    Pick(pt1b)
    +    s = s + GetPickOutput()
    +
    +    SetActiveWindow(2)
    +    Pick(pt2b)
    +    s = s + GetPickOutput()
    +
    +    # Same DB, same plot, different var, different ts
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "v")
    +    DrawPlots()
    +
    +    Pick(pt1a)
    +    s = s + GetPickOutput()
    +    Pick(pt1b)
    +    s = s + GetPickOutput()
    +
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +
    +    Pick(pt2a)
    +    s = s + GetPickOutput()
    +    Pick(pt2b)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickMultiWindow", s)
    +    ResetPickLetter()
    +
    +    # delete window 2
    +    DeleteWindow()
    +    # remove plots from window 1
    +    DeleteAllPlots()
    +
    +#
    +# Sets up a couple test cases that test how pick interacts with the engine
    +# being gone.
    +#
    +def PickBadEngineSetup(testName, GetRidOfEngineCallback):
    +    OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.423782, 0.331476, 0.842931)
    +    v.focus = (0, 2.5, 15)
    +    v.viewUp = (0.111716, 0.942652, -0.314525)
    +    v.viewAngle = 30
    +    v.parallelScale = 16.0078
    +    v.nearPlane = -32.0156
    +    v.farPlane = 32.0156
    +    v.imagePan = (-0.0549008, 0.0570848)
    +    v.imageZoom = 1.35304
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +
    +    ptA = (0.115986, 4.290420, 29.9)
    +    Pick(ptA)
    +    s = ""
    +    s = s + GetPickOutput()
    +    ptB = (0.040697, 2.250070, 29.9)
    +    Pick(ptB)
    +    s = s + GetPickOutput()
    +
    +    # Get rid of the compute engine running on localhost.
    +    s = s + GetRidOfEngineCallback()
    +
    +    # Create plots in a new window before returning to window 1 to
    +    # pick again. This will force the network ids in window 1 to be
    +    # invalid in case they do not get reset. (But they do get reset now)
    +    AddWindow()
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    SetActiveWindow(1)
    +
    +    # Resume picking in window 1 now that there are networks in window 2.
    +    ptC = (0.15, 3.250070, 26.9)
    +    Pick(ptC)
    +    s = s + GetPickOutput()
    +    ptD = (0.19, 3.75, 26.9)
    +    Pick(ptD)
    +    s = s + GetPickOutput()
    +
    +    TestText(testName, s)
    +    ResetPickLetter()
    +    DeleteAllPlots()
    +    # Delete window 2.
    +    SetActiveWindow(2)
    +    DeleteWindow()
    +
    +#
    +# Tests that pick works after an engine has been closed by the user.
    +#
    +def PickAfterEngineClosed():
    +    def CloseCB():
    +        CloseComputeEngine("localhost")
    +        return "***\n*** Closed engine on localhost.\n***\n"
    +    PickBadEngineSetup("PickAfterEngineClose", CloseCB)
    +
    +#
    +# Tests that pick works after an engine has crashed.
    +#
    +def PickAfterEngineCrashed():
    +    #TODO: THIS WONT WORK ON WINDOWs
    +    def CrashCB():
    +        try:
    +            # Read the output of ps
    +            f = os.popen("ps")
    +            lines = f.readlines()
    +            f.close()
    +
    +            # Get a list of engine pids from the ps output.
    +            pids = []
    +            for line in lines:
    +                if string.find(line, "engine_") == -1:
    +                    continue
    +                tokens = string.split(line, " ")
    +                lv = []
    +                for t in tokens:
    +                    if t != "":
    +                        lv = lv + [t]
    +                if len(lv) > 0:
    +                   pids = pids + [lv[0]]
    +
    +            # Kill all of the engines in the pid list.
    +            if len(pids) < 1:
    +                print("Killing all engines because we could not get a list of pids", file=sys.stderr)
    +                # TODO_WINDOWS THIS WONT WORK ON WINDOWS
    +                os.system("killall engine_ser")
    +                os.system("killall engine_par")
    +            else:
    +                for pid in pids:
    +                    print("Killing engine %s" % pid, file=sys.stderr)
    +                    # TODO_WINDOWS THIS WONT WORK ON WINDOWS
    +                    os.system("kill -9 %s" % pid)
    +        except:
    +            # There was an error. Just close the engine instead of killing it.
    +            CloseComputeEngine("localhost")
    +        return "***\n*** Killed compute engine(s).\n***\n"
    +    PickBadEngineSetup("PickAfterEngineCrash", CrashCB)
    +
    +def PickBoundary():
    +    # VisIt00004807
    +    # Test Pick on a 2D Boundary plot.
    +
    +    ResetPickAttributes()
    +
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Boundary", "mat1")
    +    DrawPlots()
    +
    +    ResetView()
    +    SetViewExtentsType("original")
    +
    +    Pick(164, 136)
    +    s = GetPickOutput()
    +    PickByZone(482)
    +    s = s + GetPickOutput()
    +
    +    NodePick(164, 136)
    +    s = s + GetPickOutput()
    +    PickByNode(528)
    +    s = s + GetPickOutput()
    +
    +    Pick(113, 84)
    +    s = s + GetPickOutput()
    +    PickByZone(230)
    +    s = s + GetPickOutput()
    +
    +    NodePick(113, 84)
    +    s = s + GetPickOutput()
    +    PickByNode(239)
    +    s = s + GetPickOutput()
    +
    +    Pick(218, 65)
    +    s = s + GetPickOutput()
    +    PickByZone(211)
    +    s = s + GetPickOutput()
    +
    +    NodePick(218, 65)
    +    s = s + GetPickOutput()
    +    PickByNode(220)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +
    +    OpenDatabase(silo_data_path("specmix_quad.silo"))
    +
    +    AddPlot("Boundary", "Material")
    +    DrawPlots()
    +    ResetView()
    +
    +    Pick(107, 131)
    +    s = s + GetPickOutput()
    +    PickByZone(86)
    +    s = s + GetPickOutput()
    +
    +    NodePick(107, 131)
    +    s = s + GetPickOutput()
    +    PickByNode(89)
    +    s = s + GetPickOutput()
    +
    +    Pick(207, 145)
    +    s = s + GetPickOutput()
    +    PickByZone(297)
    +    s = s + GetPickOutput()
    +
    +    NodePick(207, 145)
    +    s = s + GetPickOutput()
    +    PickByNode(333)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("specmix_ucd.silo"))
    +
    +    AddPlot("Boundary", "Material")
    +    DrawPlots()
    +    ResetView()
    +
    +    vars = "p"
    +    Pick(107, 131, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(86, vars)
    +    s = s + GetPickOutput()
    +
    +    NodePick(107, 131, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(89, vars)
    +    s = s + GetPickOutput()
    +
    +    Pick(207, 145, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(297, vars)
    +    s = s + GetPickOutput()
    +
    +    NodePick(207, 145, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(333, vars)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    #Test Sliced Boundary plots
    +    ResetOperatorOptions("Slice")
    +
    +    OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +    AddPlot("Boundary", "mat1")
    +    AddOperator("Slice")
    +
    +    slice = SliceAttributes()
    +    slice.normal = (0, -1, 0)
    +    slice.upAxis = (0, 0, 1)
    +    SetOperatorOptions(slice)
    +
    +    DrawPlots()
    +    ResetView()
    +
    +    Pick(83, 223, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(26670, vars)
    +    s = s + GetPickOutput()
    +
    +    NodePick(83, 223, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(28272, vars)
    +    s = s + GetPickOutput()
    +
    +    Pick(127, 84, vars)
    +    s = s + GetPickOutput()
    +    PickByZone(5399, vars)
    +    s = s + GetPickOutput()
    +
    +    NodePick(127, 84, vars)
    +    s = s + GetPickOutput()
    +    PickByNode(7005, vars)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("sid97.silo"))
    +
    +    AddPlot("Boundary", "mat1")
    +
    +    AddOperator("Slice")
    +
    +    slice = SliceAttributes()
    +    slice.originType = slice.Point
    +    slice.originPoint = (7400, -1300, 1000)
    +    slice.normal  = (0, 1, 0)
    +    slice.project2d = 1
    +    SetOperatorOptions(slice)
    +
    +    DrawPlots()
    +    ResetView()
    +    SetViewExtentsType("actual")
    +
    +    pick = GetPickAttributes()
    +    pick.variables = ("default")
    +    SetPickAttributes(pick)
    +
    +    Pick(128, 140)
    +    s = s + GetPickOutput()
    +    PickByZone(1269)
    +    s = s + GetPickOutput()
    +
    +    NodePick(128, 140)
    +    s = s + GetPickOutput()
    +    PickByNode(1356)
    +    s = s + GetPickOutput()
    +
    +    Pick(120, 89)
    +    s = s + GetPickOutput()
    +    PickByZone(10438)
    +    s = s + GetPickOutput()
    +
    +    NodePick(120, 89)
    +    s = s + GetPickOutput()
    +    PickByNode(12836)
    +    s = s + GetPickOutput()
    +
    +    Pick(154, 50)
    +    s = s + GetPickOutput()
    +    PickByZone(10455)
    +    s = s + GetPickOutput()
    +
    +    NodePick(154, 50)
    +    s = s + GetPickOutput()
    +    PickByNode(12842)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Boundary", "mat1")
    +
    +    AddOperator("Slice")
    +
    +    slice.originType = slice.Intercept
    +    slice.originIntercept = 0.5
    +    slice.normal  = (0, 1, 1)
    +    slice.upAxis  = (0, 1, 0)
    +    slice.project2d = 1
    +    SetOperatorOptions(slice)
    +
    +    DrawPlots()
    +    ResetView()
    +    SetViewExtentsType("original")
    +
    +    Pick(75, 258)
    +    s = s + GetPickOutput()
    +    PickByZone(810)
    +    s = s + GetPickOutput()
    +
    +    NodePick(75, 258)
    +    s = s + GetPickOutput()
    +    PickByNode(869)
    +    s = s + GetPickOutput()
    +
    +    Pick(121, 108)
    +    s = s + GetPickOutput()
    +    PickByZone(18217)
    +    s = s + GetPickOutput()
    +
    +    NodePick(121, 108)
    +    s = s + GetPickOutput()
    +    PickByNode(20561)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickBoundary", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickVectorPlots():
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Vector", "vel")
    +    vector = VectorAttributes()
    +    vector.autoScale = 0
    +    SetPlotOptions(vector)
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, 1)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 2.02836
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +
    +    p = GetPickAttributes()
    +    p.variables = ("default")
    +    SetPickAttributes(p)
    +    Pick(274, 259)
    +    s = GetPickOutput()
    +    Pick(269, 258)
    +    s = s + GetPickOutput()
    +    Pick(86, 37)
    +    s = s + GetPickOutput()
    +    Pick(83, 28)
    +    s = s + GetPickOutput()
    +
    +    AddOperator("Slice")
    +    slice = SliceAttributes()
    +    slice.axisType = slice.ZAxis
    +    SetOperatorOptions(slice)
    +    DrawPlots()
    +
    +    Pick(96, 244)
    +    s = s + GetPickOutput()
    +    Pick(204, 88)
    +    s = s + GetPickOutput()
    +
    +    RemoveLastOperator()
    +
    +    ChangeActivePlotsVar("disp")
    +    vector = VectorAttributes()
    +    vector.autoScale = 0
    +    vector.scale = 1.
    +    vector.origOnly = 0
    +    SetPlotOptions(vector)
    +
    +    v.viewNormal = (-0.8775, 0.112599, 0.46617)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0.120127, 0.992665, -0.0136456)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 2.3515
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +
    +    Pick(119, 87)
    +    s = s + GetPickOutput();
    +    Pick(148, 230)
    +    s = s + GetPickOutput();
    +    Pick(22, 97)
    +    s = s + GetPickOutput();
    +
    +    AddOperator("Slice")
    +    DrawPlots()
    +
    +    Pick(76, 113)
    +    s = s + GetPickOutput();
    +    Pick(244, 67)
    +    s = s + GetPickOutput();
    +    Pick(127, 217)
    +    s = s + GetPickOutput();
    +
    +    DeleteAllPlots()
    +
    +    # VisIt00006296 -- pick of vector expression causes crash
    +    DefineVectorExpression("polarVector", "polar(mesh1)")
    +    DefineVectorExpression("xyzVector", "coord(mesh1)")
    +    AddPlot("Vector", "polarVector")
    +    DrawPlots()
    +    ResetView()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, 1)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (-0.0369757, 0.0171359)
    +    v.imageZoom = 4.66857
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +
    +    Pick(233, 241)
    +    s = s + GetPickOutput()
    +    Pick(226, 30)
    +    s = s + GetPickOutput()
    +
    +    ChangeActivePlotsVar("xyzVector")
    +
    +    v. imagePan = (0.0220781, -0.0509109)
    +    v. imageZoom = 9.89113
    +    SetView3D(v)
    +    Pick(149, 209)
    +    s = s + GetPickOutput()
    +    Pick(214, 6)
    +    s = s + GetPickOutput()
    +
    +
    +    TestText("PickVectorPlot", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickPointMeshes():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "PointVar")
    +    pc = PseudocolorAttributes()
    +    pc.pointSize = 1
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    ResetView()
    +
    +    NodePick(100, 240)
    +    s = GetPickOutput()
    +    Pick(223, 197)
    +    s = s + GetPickOutput()
    +    NodePick(138, 66)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +    AddPlot("Mesh", "PointMesh")
    +    mesh = MeshAttributes()
    +    mesh.pointSize = 1
    +    mesh.pointType = mesh.Box
    +    SetPlotOptions(mesh)
    +    DrawPlots()
    +
    +    NodePick(100, 240)
    +    s = s + GetPickOutput()
    +    Pick(223, 197)
    +    s = s + GetPickOutput()
    +    NodePick(138, 66)
    +    s = s + GetPickOutput()
    +
    +    mesh.pointType = mesh.Point
    +    SetPlotOptions(mesh)
    +
    +    NodePick(100, 240)
    +    s = s + GetPickOutput()
    +    Pick(223, 197)
    +    s = s + GetPickOutput()
    +    NodePick(138, 66)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("multi_point2d.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    m = MeshAttributes()
    +    m.meshColor = (255, 0, 255, 255)
    +    m.meshColorSource = m.MeshCustom
    +    m.pointSize = 0.05
    +    m.pointType = m.Box
    +    SetPlotOptions(m)
    +    DrawPlots()
    +
    +    v = GetView2D()
    +    v.fullFrameActivationMode = v.On
    +    v.windowCoords = (-2.05391, -0.442661, 1.02233, 2.43681)
    +    SetView2D(v)
    +
    +    vars = ("d", "p", "u", "v")
    +
    +    NodePick(122, 72, vars)
    +    s = s + GetPickOutput()
    +    Pick(134, 229, vars)
    +    s = s + GetPickOutput()
    +    NodePick(278, 266, vars)
    +    s = s + GetPickOutput()
    +
    +    m.pointType = mesh.Point
    +    SetPlotOptions(m)
    +
    +    NodePick(122, 72, vars)
    +    s = s + GetPickOutput()
    +    Pick(134, 229, vars)
    +    s = s + GetPickOutput()
    +    NodePick(278, 266, vars)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Subset", "PointMesh")
    +    DrawPlots()
    +    ResetView()
    +
    +    NodePick(100, 240)
    +    s = s+ GetPickOutput()
    +    Pick(223, 197)
    +    s = s + GetPickOutput()
    +    NodePick(138, 66)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickPointMeshes", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickGlobalIds():
    +    OpenDatabase(silo_data_path("global_node.silo"))
    +
    +    AddPlot("Pseudocolor", "dist")
    +    DrawPlots()
    +    ResetView()
    +    p = GetPickAttributes()
    +    p.showGlobalIds = 0
    +    p.variables = ("default")
    +    SetPickAttributes(p)
    +
    +    Pick(82, 225)
    +    s = GetPickOutput()
    +
    +    p.showGlobalIds = 1
    +    SetPickAttributes(p)
    +
    +    Pick(82, 225)
    +    s = s + GetPickOutput()
    +
    +    p.showGlobalIds = 0
    +    SetPickAttributes(p)
    +
    +    NodePick(195, 101)
    +    s = s + GetPickOutput()
    +
    +    p.showGlobalIds = 1
    +    SetPickAttributes(p)
    +
    +    NodePick(195, 101)
    +    s = s + GetPickOutput()
    +
    +    p.showGlobalIds = 0
    +    SetPickAttributes(p)
    +
    +    Pick(175, 162)
    +    s = s + GetPickOutput()
    +    NodePick(175, 162)
    +    s = s + GetPickOutput()
    +
    +    p.showGlobalIds = 1
    +    SetPickAttributes(p)
    +
    +    Pick(175, 162)
    +    s = s + GetPickOutput()
    +    NodePick(175, 162)
    +    s = s + GetPickOutput()
    +
    +    PickByGlobalZone(3250)
    +    s = s + GetPickOutput()
    +    PickByGlobalZone(237394)
    +    s = s + GetPickOutput()
    +    PickByGlobalNode(3869)
    +    s = s + GetPickOutput()
    +    PickByGlobalNode(246827)
    +    s = s + GetPickOutput()
    +
    +    # bug '6097 -- global ids not displayed correctly with global picks.
    +    p.showGlobalIds = 1
    +    SetPickAttributes(p)
    +
    +    PickByGlobalZone(236919)
    +    s = s + GetPickOutput()
    +    PickByGlobalNode(244455)
    +    s = s + GetPickOutput()
    +
    +    ChangeActivePlotsVar("p")
    +    PickByGlobalZone(236919)
    +    s = s + GetPickOutput()
    +    PickByGlobalNode(244455)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickGlobalIds", s)
    +    p.showGlobalIds = 0
    +    SetPickAttributes(p)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickExpressions():
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    DefineScalarExpression("m1", 'matvf(mat1, ["1", "3"])')
    +    DefineScalarExpression("mir1", 'mirvf(mat1, zoneid(quadmesh3d), volume(quadmesh3d), 1)')
    +
    +    AddPlot("Pseudocolor", "m1")
    +    DrawPlots()
    +    ResetView()
    +
    +    Pick(151, 172)
    +    s = GetPickOutput()
    +    Pick(68, 239)
    +    s = s + GetPickOutput()
    +    Pick(237, 86)
    +    s = s + GetPickOutput()
    +    NodePick(151, 172)
    +    s = s + GetPickOutput()
    +    NodePick(68, 239)
    +    s = s + GetPickOutput()
    +    NodePick(237, 86)
    +    s = s + GetPickOutput()
    +
    +    ChangeActivePlotsVar("mir1")
    +    Pick(151, 172)
    +    s = s + GetPickOutput()
    +    Pick(68, 239)
    +    s = s + GetPickOutput()
    +    Pick(237, 86)
    +    s = s + GetPickOutput()
    +    NodePick(151, 172)
    +    s = s + GetPickOutput()
    +    NodePick(68, 239)
    +    s = s + GetPickOutput()
    +    NodePick(237, 86)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "t")
    +    DrawPlots()
    +    ResetView()
    +    DefineScalarExpression("polar", "polar(mesh1)")
    +
    +    # pick with default var -- 't'
    +    Pick(128, 107)
    +    s = s + GetPickOutput()
    +    # pick again, adding new expression var -- 'polar'
    +    vars = ("default", "polar")
    +    Pick(128, 107, vars)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickExpressions", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickAMR():
    +    OpenDatabase(data_path("boxlib_test_data/2D/plt0822/Header"))
    +
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("Pseudocolor", "density")
    +    DrawPlots()
    +    ResetView()
    +    v = GetView2D()
    +    v.fullFrameActivationMode = v.Off
    +    v.windowCoords = (0.0232322, 0.0302984, 0.11825, 0.123807)
    +    SetView2D(v)
    +
    +    s = "Testing boxlib 2D, pseudocolor\n"
    +    vars = "default"
    +    NodePick(226, 179, vars)
    +    s = s + GetPickOutput()
    +    ZonePick(226, 179, vars)
    +    s = s + GetPickOutput()
    +    NodePick(215, 168, vars)
    +    s = s + GetPickOutput()
    +    ZonePick(215, 168, vars)
    +    s = s + GetPickOutput()
    +    NodePick(114, 94, vars)
    +    s = s + GetPickOutput()
    +    ZonePick(114, 94, vars)
    +    s = s + GetPickOutput()
    +    NodePick(189, 197, vars)
    +    s = s + GetPickOutput()
    +    ZonePick(189, 197, vars)
    +    s = s + GetPickOutput()
    +    NodePick(242, 72, vars)
    +    s = s + GetPickOutput()
    +    ZonePick(242, 72, vars)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +    s = s + "\nTesting boxlib 2D, contour\n"
    +    AddPlot("Contour", "density")
    +    DrawPlots()
    +    v.windowCoords = (0.00408394, 0.0401985, 0.109754, 0.138135)
    +    SetView2D(v)
    +
    +    Pick(161, 137)
    +    s = s + GetPickOutput()
    +    NodePick(161, 137)
    +    s = s + GetPickOutput()
    +    Pick(176, 139)
    +    s = s + GetPickOutput()
    +    NodePick(176, 139)
    +    s = s + GetPickOutput()
    +    Pick(228, 71)
    +    s = s + GetPickOutput()
    +    NodePick(228, 71)
    +    s = s + GetPickOutput()
    +    Pick(255, 196)
    +    s = s + GetPickOutput()
    +    NodePick(255, 196)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +    s = s + "\nTesting boxlib 2D, Boundary\n"
    +    AddPlot("Boundary", "materials")
    +    DrawPlots()
    +    v.windowCoords = (0.00226909, 0.0378978, 0.0908832, 0.121254)
    +    SetView2D(v)
    +    Pick(161, 137)
    +    s = s + GetPickOutput()
    +    NodePick(161, 137)
    +    s = s + GetPickOutput()
    +    Pick(228, 71)
    +    s = s + GetPickOutput()
    +    NodePick(228, 71)
    +    s = s + GetPickOutput()
    +    Pick(139, 196)
    +    s = s + GetPickOutput()
    +    NodePick(139, 196)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickAMR", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickSamrai():
    +
    +    def doPicks1():
    +        def pickList(index):
    +            if index == 0 :
    +                ZonePick(172, 178)
    +                return GetPickOutput()
    +            elif index == 1 :
    +                NodePick(191, 188)
    +                return GetPickOutput()
    +            elif index == 2:
    +                NodePick(145, 157)
    +                return GetPickOutput()
    +            elif index == 3:
    +                PickByZone(1863, 2)
    +                return GetPickOutput()
    +            elif index == 4:
    +                PickByNode(2442, 2)
    +                return GetPickOutput()
    +            elif index == 5:
    +                PickByNode(2422, 2)
    +                return GetPickOutput()
    +            else :
    +                return ""
    +
    +        s = ""
    +        for j in range(6):
    +            for i in range(4):
    +                SetActivePlots(i)
    +                s = s + pickList(j)
    +        return s
    +
    +    def doPicks2():
    +        def pickList2(index):
    +            if index == 0 :
    +                ZonePick(239, 141)
    +                return GetPickOutput()
    +            elif index == 1 :
    +                NodePick(246, 108)
    +                return GetPickOutput()
    +            else :
    +                return ""
    +
    +        s = ""
    +        for j in range(2):
    +            for i in range(4):
    +                SetActivePlots(i)
    +                s = s + pickList2(j)
    +        return s
    +
    +    def doPicks3():
    +        def pickList3(index):
    +            if index == 0 :
    +                ZonePick(210, 148)
    +                return GetPickOutput()
    +            elif index == 1 :
    +                NodePick(200, 148)
    +                return GetPickOutput()
    +            elif index == 2 :
    +                ZonePick(210, 168)
    +                return GetPickOutput()
    +            elif index == 3 :
    +                NodePick(210, 168)
    +                return GetPickOutput()
    +            else :
    +                return ""
    +
    +        s = ""
    +        for j in range(4):
    +            for i in range(4):
    +                SetActivePlots(i)
    +                s = s + pickList3(j)
    +        return s
    +
    +
    +    # Open SAMRAI (add default subset plot)
    +    # Add PC, Mesh, and Contour Plots
    +    OpenDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +    slice = SliceAttributes()
    +    slice.axisType = slice.ZAxis
    +    slice.originType = slice.Percent
    +    slice.originPercent = 20
    +    slice.project2d = 1
    +
    +    AddPlot("Pseudocolor", "Primitive Var _number_0")
    +    AddPlot("Mesh", "amr_mesh")
    +    AddPlot("Contour", "Primitive Var _number_0")
    +
    +    SetActivePlots((0, 1, 2, 3))
    +    AddOperator("Slice")
    +    SetOperatorOptions(slice)
    +    DrawPlots()
    +
    +    v = GetView2D()
    +    v.windowCoords = (4.89115, 6.43144, 6.80336, 8.63983)
    +    SetView2D(v)
    +    s = "\nTesting sliced SAMRAI:\n"
    +    s = s + doPicks1()
    +    TestText("PickSamrai_01", s)
    +
    +    SetActivePlots((0, 1, 2, 3))
    +    clip = ClipAttributes()
    +    clip.plane1Origin = (5.1, 0, 0)
    +    clip.plane1Normal = (-1, 0, 0)
    +
    +    AddOperator("Clip")
    +    SetOperatorOptions(clip)
    +    DrawPlots()
    +    ResetPickLetter()
    +    s = "\nTesting clipped sliced SAMRAI:\n"
    +    s = s + doPicks1()
    +    TestText("PickSamrai_02", s)
    +
    +    SetActivePlots((0, 1, 2, 3))
    +    DemoteOperator(1)
    +    DrawPlots()
    +    ResetPickLetter()
    +    s = "\nTesting sliced clipped SAMRAI:\n"
    +    s = s + doPicks1()
    +    TestText("PickSamrai_03", s)
    +
    +    SetActivePlots((0, 1, 2, 3))
    +    RemoveLastOperator()
    +    clip.plane1Origin = (4.3, 0, 0)
    +    SetOperatorOptions(clip)
    +
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, -1)
    +    v.focus = (15, 10, 10)
    +    v.viewUp = (0, 1, 0)
    +    v.parallelScale = 20.6155
    +    v.nearPlane = -41.2311
    +    v.farPlane = 41.2311
    +    v.perspective = 0
    +    SetView3D(v)
    +    v.imageZoom = 8
    +    SetView3D(v)
    +    v.imagePan = (-0.2, 0.1)
    +    SetView3D(v)
    +    ResetPickLetter()
    +    s = "\nTesting clipped SAMRAI (3D):\n"
    +    s = s + doPicks2()
    +    TestText("PickSamrai_04", s)
    +
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +
    +    OpenDatabase(data_path("samrai_test_data/front/dumps.visit"))
    +
    +    AddPlot("Mesh", "amr_mesh")
    +    AddPlot("Pseudocolor", "Distance to front")
    +    AddPlot("Contour", "Distance to front")
    +
    +    DrawPlots()
    +    v = GetView2D()
    +    v.windowCoords = (0.678228, 0.865969, 0.467317, 0.650137)
    +
    +    SetView2D(v)
    +    s = "\nTesting front:\n"
    +    s = s + doPicks3()
    +    TestText("PickSamrai_05", s)
    +
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickIndexSelect():
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    AddPlot("Mesh", "quadmesh2d")
    +    AddPlot("Pseudocolor", "u")
    +    AddOperator("IndexSelect")
    +    isAtts = IndexSelectAttributes()
    +    isAtts.dim = isAtts.TwoD
    +    isAtts.xMin = 1
    +    isAtts.xMax = 2
    +    isAtts.yMin = 1
    +    isAtts.yMax = 2
    +    SetOperatorOptions(isAtts)
    +
    +    DrawPlots()
    +
    +    v = GetView2D()
    +    v.windowCoords = (-0.0583437, 0.254323, -0.0576062, 0.220944)
    +    SetView2D(v)
    +
    +    SetActivePlots(0)
    +    s = "Pick on Index-selected 2D Mesh Plot\n"
    +    Pick(132, 117)
    +    s = s + GetPickOutput()
    +    NodePick(132, 117)
    +    s = s + GetPickOutput()
    +
    +    SetActivePlots(1)
    +    s = s + "\nSame Picks on Index-selected 2D Pseudocolor Plot\n"
    +    Pick(132, 117)
    +    s = s + GetPickOutput()
    +    NodePick(132, 117)
    +    s = s + GetPickOutput()
    +
    +    isAtts.xIncr = 5
    +    isAtts.yIncr = 5
    +    SetOperatorOptions(isAtts)
    +
    +    s = s+ "\nChanged stride of IndexSelect, 2D Mesh Plot picks\n"
    +    SetActivePlots(0)
    +    Pick(132, 117)
    +    s = s + GetPickOutput()
    +    NodePick(132, 117)
    +    s = s + GetPickOutput()
    +
    +    s = s + "\nSame picks 2D Pseudocolor Plot \n"
    +    SetActivePlots(1)
    +    Pick(132, 117)
    +    s = s + GetPickOutput()
    +    NodePick(132, 117)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Mesh", "quadmesh3d")
    +    AddPlot("Pseudocolor", "d")
    +    SetActivePlots((0, 1))
    +    AddOperator("IndexSelect")
    +    isAtts = IndexSelectAttributes()
    +    isAtts.dim = isAtts.ThreeD
    +    isAtts.xIncr = 4
    +    isAtts.yIncr = 4
    +    SetOperatorOptions(isAtts)
    +
    +    DrawPlots()
    +
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (-1, 0, 0)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0, 1, 0)
    +    v.parallelScale = 0.866025
    +    v.perspective = 1
    +    SetView3D(v)
    +    v.imagePan = (0.0552434, 0.225336)
    +    SetView3D(v)
    +    v.imageZoom = 5.01124
    +    SetView3D(v)
    +
    +    s = s + "\nIndex selected 3D Mesh Plot\n"
    +    SetActivePlots(0)
    +    Pick(143, 144)
    +    s = s + GetPickOutput()
    +    NodePick(143, 144)
    +    s = s + GetPickOutput()
    +    s = s + "\nSame picks on 3D Pseudocolor Plot\n"
    +    SetActivePlots(1)
    +    Pick(143, 144)
    +    s = s + GetPickOutput()
    +    NodePick(143, 144)
    +    s = s + GetPickOutput()
    +
    +    SetActivePlots((0, 1))
    +    AddOperator("Slice")
    +    slice = SliceAttributes()
    +    slice.normal = (0, 0, 1)
    +    slice.originType = slice.Intercept
    +    slice.originIntercept = 0.5
    +    slice.upAxis = (0, 1, 0)
    +    slice.axisType = slice.ZAxis
    +    slice.project2d = 1
    +    SetOperatorOptions(slice)
    +    DrawPlots()
    +
    +    v = GetView2D()
    +    v.windowCoords = (0.226685, 0.501966, 0.147753, 0.423034)
    +    SetView2D(v)
    +
    +    s = s + "\nSliced, Index-selected 3D Mesh Plot\n"
    +    SetActivePlots(0)
    +    Pick(184, 234)
    +    s = s + GetPickOutput()
    +    NodePick(184, 234)
    +    s = s + GetPickOutput()
    +
    +
    +    s = s + "\nSame pickes on Sliced, Index-selected 3D Pseudocolor Plot\n"
    +    SetActivePlots(1)
    +    Pick(184, 234)
    +    s = s + GetPickOutput()
    +    NodePick(184, 234)
    +    s = s + GetPickOutput()
    +
    +    AddPlot("FilledBoundary", "mat1")
    +    AddOperator("IndexSelect")
    +    SetOperatorOptions(isAtts)
    +    AddOperator("Slice")
    +    SetOperatorOptions(slice)
    +    AddPlot("Mesh", "quadmesh3d")
    +    AddOperator("Slice")
    +    SetOperatorOptions(slice)
    +    DrawPlots()
    +
    +    s = s + "\nSame picks on Sliced, Index-selected 3D FilledBoundary Plot\n"
    +    s = s + "Stride changes back to 1 due to MIR, so should match Mesh results below\n"
    +    SetActivePlots(2)
    +    Pick(184, 234)
    +    s = s + GetPickOutput()
    +    NodePick(184, 234)
    +    s = s + GetPickOutput()
    +
    +    s = s + "\nSame picks on Sliced, 3D Mesh Plot\n"
    +    SetActivePlots(3)
    +    Pick(184, 234)
    +    s = s + GetPickOutput()
    +    NodePick(184, 234)
    +    s = s + GetPickOutput()
    +
    +
    +    TestText("PickIndexSelect", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickTensors():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Mesh", "Mesh")
    +    DrawPlots()
    +    vars = ("grad_tensor")
    +    Pick(133 , 178, vars)
    +    s = GetPickOutput()
    +    NodePick(133 ,178 , vars)
    +    s = s + GetPickOutput()
    +
    +    DeleteAllPlots()
    +    AddPlot("Tensor", "grad_tensor")
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, 1)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +    v.imagePan = (-0.181384, 0.137462)
    +    SetView3D(v)
    +    v.imageZoom = 4.86765
    +    SetView3D(v)
    +
    +    Pick(127, 59)
    +    s = s + GetPickOutput()
    +    Pick(269, 166)
    +    s = s + GetPickOutput()
    +    TestText("PickTensors", s)
    +    ResetView()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickMili():
    +    #'7144
    +    OpenDatabase(data_path("mili_test_data/single_proc/m_plot.mili"))
    +
    +    AddPlot("Pseudocolor", "Primal/brick/stress/sx")
    +    AddOperator("Threshold")
    +    thresh = ThresholdAttributes()
    +    thresh.lowerBounds = (1.0)
    +    thresh.upperBounds = (1.0)
    +    thresh.listedVarNames = ("Primal/Shared/sand")
    +    SetOperatorOptions(thresh)
    +    SetTimeSliderState(77)
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (0.761946, 0.114249, -0.637483)
    +    v.focus = (2, -4.76837e-07, -1.43051e-06)
    +    v.viewUp = (-.133671, -.990866, 0.0178134)
    +    v.viewAngle = 30
    +    v.parallelScale = 15.7797
    +    v.nearPlane = -31.5595
    +    v.farPlane = 31.5595
    +    SetView3D(v)
    +
    +    vars = "default"
    +    Pick(100, 150, vars)
    +    s = GetPickOutput()
    +    NodePick(100, 150, vars)
    +    s = s + GetPickOutput()
    +
    +    RemoveLastOperator()
    +
    +    #'7145
    +    AddPlot("Mesh", "mesh1")
    +    SetActivePlots((0, 1))
    +    AddOperator("Clip")
    +    clip = ClipAttributes()
    +    clip.plane1Status = 1
    +    clip.plane1Origin = (8, 7.77778, -10)
    +    clip.plane1Normal = (1, 0, 0)
    +    SetOperatorOptions(clip)
    +    SetTimeSliderState(77)
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (1, 0, 6.12307e-17)
    +    v.focus = (10.5296, -0.00138283, -0.000236511)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 19.0748
    +    v.nearPlane = -38.1495
    +    v.farPlane = 38.1495
    +    SetView3D(v)
    +
    +    Pick(204, 215, vars)
    +    s = s + GetPickOutput()
    +    NodePick(204, 215, vars)
    +    s = s + GetPickOutput()
    +    TestText("PickMili", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickContour():
    +    #'7144
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +    AddPlot("Contour", "d")
    +    contour = ContourAttributes()
    +    contour.contourNLevels = 4
    +    SetPlotOptions(contour)
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (-0.582341, 0.658239, 0.477075)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.402453, 0.743318, -0.534331)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    SetView3D(v)
    +
    +    vars = "default"
    +    Pick(166, 138, vars)
    +    s = GetPickOutput()
    +    NodePick(166, 138, vars)
    +    s = s + GetPickOutput()
    +    Pick(160, 175, vars)
    +    s = s + GetPickOutput()
    +    NodePick(160, 175, vars)
    +    s = s + GetPickOutput()
    +    Pick(158, 210, vars)
    +    s = s + GetPickOutput()
    +    NodePick(158, 210, vars)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickContour", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickBox():
    +    #'7566
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    AddOperator("Box")
    +    box = BoxAttributes()
    +    box.minx = 0.2
    +    box.maxx = 0.8
    +    box.miny = 0.2
    +    box.maxy = 0.8
    +    SetOperatorOptions(box)
    +    AddPlot("Mesh", "quadmesh2d")
    +    DrawPlots()
    +
    +    vars = "default"
    +    SetActivePlots(0)
    +
    +    Pick(155, 140)
    +    s = GetPickOutput()
    +    NodePick(155, 140)
    +    s = s + GetPickOutput()
    +
    +    SetActivePlots(1)
    +    Pick(155, 140)
    +    s = s + GetPickOutput()
    +    NodePick(155, 140)
    +    s = s + GetPickOutput()
    +
    +
    +    DeleteAllPlots()
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    AddOperator("Box")
    +    box.minx = 0.3
    +    box.maxx = 0.83
    +    box.miny = 0.3
    +    box.maxy = 0.83
    +    box.minz = 0
    +    box.maxz = 1
    +    SetOperatorOptions(box)
    +    AddOperator("Slice")
    +    slice = SliceAttributes()
    +    slice.axisType = slice.YAxis
    +    slice.originType = slice.Intercept
    +    slice.originIntercept = 0.5
    +    slice.project2d = 1
    +    SetOperatorOptions(slice)
    +
    +    AddPlot("Mesh", "quadmesh3d")
    +    AddOperator("Slice")
    +    SetOperatorOptions(slice)
    +    DrawPlots()
    +    SetActivePlots(0)
    +    TurnMaterialsOff("8")
    +
    +    Pick(221, 230)
    +    s = s + GetPickOutput()
    +    Pick(206, 67)
    +    s = s + GetPickOutput()
    +    NodePick(221, 230)
    +    s = s + GetPickOutput()
    +    NodePick(206, 67)
    +    s = s + GetPickOutput()
    +
    +    SetActivePlots(1)
    +    Pick(221, 230)
    +    s = s + GetPickOutput()
    +    Pick(206, 67)
    +    s = s + GetPickOutput()
    +    NodePick(221, 230)
    +    s = s + GetPickOutput()
    +    NodePick(206, 67)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickBox", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickScatter():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Scatter", "hardyglobal")
    +    scatter = ScatterAttributes()
    +    scatter.var1= "hardyglobal"
    +    scatter.var2= "shepardglobal"
    +    scatter.var3= "radial"
    +    scatter.var3Role = scatter.Color
    +    scatter.scaleCube = 1
    +    SetPlotOptions(scatter)
    +    DrawPlots()
    +    Pick(124, 174)
    +    s = GetPickOutput()
    +
    +    scatter.scaleCube = 0
    +    SetPlotOptions(scatter)
    +    DrawPlots()
    +    ResetView()
    +    Pick(124, 174)
    +    s = s + GetPickOutput()
    +
    +
    +    DeleteAllPlots()
    +
    +    s = s + "Expressions used in Scatter\n";
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +    DefineScalarExpression("xc", "coord(mesh1)[0]")
    +    DefineScalarExpression("yc", "coord(mesh1)[1]")
    +    DefineScalarExpression("zc", "coord(mesh1)[2]")
    +    DefineScalarExpression("uvw_prod", "u*v*w")
    +    AddPlot("Scatter", "xc")
    +    scatter.var1 = "xc"
    +    scatter.var1Role = scatter.Coordinate0
    +    scatter.var2 = "yc"
    +    scatter.var2Role = scatter.Coordinate1
    +    scatter.var3 = "zc"
    +    scatter.var3Role = scatter.Coordinate2
    +    scatter.var4 = "uvw_prod"
    +    scatter.var4Role = scatter.Color
    +    SetPlotOptions(scatter)
    +    DrawPlots()
    +    ResetView()
    +
    +    Pick(100, 200)
    +    s = s + GetPickOutput()
    +
    +    s = s + "Mix up the coordinates\n";
    +    scatter.var1Role = scatter.Coordinate1
    +    scatter.var2Role = scatter.Coordinate0
    +    SetPlotOptions(scatter)
    +    DrawPlots()
    +    Pick(100, 200)
    +    s = s + GetPickOutput()
    +
    +    TestText("PickScatter", s)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickHighlight():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    pickAtts = GetPickAttributes()
    +    pickAtts.showPickHighlight = 1
    +    SetPickAttributes(pickAtts)
    +    DrawPlots()
    +    PickByZone(116242)
    +    Test("PickHighlight_01")
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +    OpenDatabase(silo_data_path("global_node.silo"))
    +    AddPlot("Pseudocolor", "p")
    +    DrawPlots()
    +
    +    # bug '3880 -- global id highlights incorrect cell.
    +    origAtts = GetPickAttributes()
    +    pickAtts = origAtts
    +    pickAtts.showPickHighlight = 1
    +    pickAtts.showPickLetter = 1
    +    SetPickAttributes(pickAtts)
    +
    +    PickByGlobalZone(236919)
    +    Test("GlobalHighlight_00")
    +
    +    SetPickAttributes(origAtts)
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +    #restore the attributes
    +    annotAtts  = GetAnnotationAttributes()
    +    annotAtts.userInfoFlag = 1
    +    annotAtts.axes3D.xAxis.title.visible = 1
    +    annotAtts.axes3D.yAxis.title.visible = 1
    +    annotAtts.axes3D.zAxis.title.visible = 1
    +    annotAtts.axes3D.bboxFlag = 1;
    +    annotAtts.axes3D.triadFlag = 1;
    +    SetAnnotationAttributes(annotAtts)
    +
    +def PickHighlightColor():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    pickAtts = GetPickAttributes()
    +    pickAtts.showPickHighlight  = 1
    +    pickAtts.pickHighlightColor = (0, 0, 255)
    +    SetPickAttributes(pickAtts)
    +    DrawPlots()
    +    PickByZone(116242)
    +    Test("PickHighlightColor_01")
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +    #restore the attributes
    +    pickAtts.pickHighlightColor = (255, 0, 0)
    +    SetPickAttributes(pickAtts)
    +    annotAtts  = GetAnnotationAttributes()
    +    annotAtts.userInfoFlag = 1
    +    annotAtts.axes3D.xAxis.title.visible = 1
    +    annotAtts.axes3D.yAxis.title.visible = 1
    +    annotAtts.axes3D.zAxis.title.visible = 1
    +    annotAtts.axes3D.bboxFlag = 1;
    +    annotAtts.axes3D.triadFlag = 1;
    +    SetAnnotationAttributes(annotAtts)
    +
    +def PickRange():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    pickAtts = GetPickAttributes()
    +    pickAtts.showPickHighlight = 1
    +    SetPickAttributes(pickAtts)
    +    DrawPlots()
    +    options = {}
    +    options["pick_range"] = "116242-116300, 116350,1"
    +    PickByZone(options)
    +    Test("PickRange_01")
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickLines3D():
    +    OpenDatabase(silo_data_path("ucd_lines3d.silo"))
    +    AddPlot("Mesh", "ucd_linesmesh3d")
    +    DrawPlots()
    +
    +    ZonePick(113,182)
    +    s = GetPickOutput();
    +    ZonePick(134,107)
    +    s = s + GetPickOutput();
    +    ZonePick(177,151)
    +    s = s + GetPickOutput();
    +
    +    NodePick(126,161)
    +    s = s + GetPickOutput();
    +    NodePick(203,130)
    +    s = s + GetPickOutput();
    +    NodePick(150,193)
    +    s = s + GetPickOutput();
    +
    +    # rotate, so lines closer to camera are reversed.
    +    v = GetView3D()
    +    v.viewNormal=(0,0,-1)
    +    SetView3D(v)
    +
    +    ZonePick(149,168)
    +    s = s + GetPickOutput();
    +    ZonePick(139,97)
    +    s = s + GetPickOutput();
    +    ZonePick(191,206)
    +    s = s + GetPickOutput();
    +
    +    NodePick(161,73)
    +    s = s + GetPickOutput();
    +    NodePick(173,159)
    +    s = s + GetPickOutput();
    +    NodePick(54,153)
    +    s = s + GetPickOutput();
    +
    +    TestText("PickLines3D", s)
    +
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickZoneLabel():
    +    OpenDatabase(data_path("mili_test_data/single_proc/sslide14ball_l.plt.mili"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "Primal/shell/bend_magnitude")
    +    DrawPlots()
    +    options = {}
    +    options["element_label"] = "shell 9"
    +    options["vars"] = "OriginalZoneLabels"
    +    PickByZoneLabel(options)
    +    s = GetPickOutput()
    +    TestText("PickByZoneLabel",s)
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickNodeLabel():
    +    OpenDatabase(data_path("mili_test_data/single_proc/sslide14ball_l.plt.mili"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "Primal/shell/bend_magnitude")
    +    DrawPlots()
    +    options = {}
    +    options["element_label"] = "node 93"
    +    options["vars"] = "OriginalNodeLabels"
    +    PickByNodeLabel(options)
    +    s = GetPickOutput()
    +    TestText("PickByNodeLabel",s)
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def PickRangeLabel():
    +    OpenDatabase(data_path("mili_test_data/single_proc/d3samp6.plt.mili"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "Primal/shell/bend_magnitude")
    +    DrawPlots()
    +
    +    SetPickAttributes(defaultAtts)
    +
    +    options = {}
    +    options["element_label"] = "shell"
    +    options["return_curves"] = 1
    +    options["start_time"] = 0
    +    options["end_time"] = 2
    +    options["pick_range"] = "4-5,9"
    +    options["vars"] = "OriginalZoneLabels"
    +
    +    output_dict = PickByZoneLabel(options)
    +    # use json.dumps for dictionary object, makes for easier parsing
    +    # of diffs when there are errors
    +    TestText("PickRangeByZoneLabel",json.dumps(output_dict, indent=2))
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def TestRemovePicks():
    +    OpenDatabase(silo_data_path("noise.silo"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    pickAtts = GetPickAttributes()
    +    pickAtts.showPickHighlight = 1
    +    SetPickAttributes(pickAtts)
    +    DrawPlots()
    +
    +    PickByZone(0)
    +    PickByZone(5)
    +    PickByZone(35)
    +    PickByZone(18)
    +    Test("RemovePicks_01")
    +    to_remove = "A, C, D"
    +    expected  = to_remove
    +    removed   = RemovePicks(to_remove)
    +    Test("RemovePicks_02")
    +
    +    #check that the returned list matches
    +    #what we expect
    +    TestValueEQ("Removed expected picks", removed, expected)
    +    ClearPickPoints()
    +
    +    PickByZone(0)
    +    PickByZone(18)
    +    Test("RemovePicks_03")
    +    to_remove = "A, C, D, E"
    +    expected  = "E"
    +    removed   = RemovePicks(to_remove)
    +    Test("RemovePicks_04")
    +
    +    TestValueEQ("Removed expected picks 2", removed, expected)
    +
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def TestRemoveLabeledPicks():
    +    OpenDatabase(data_path("mili_test_data/single_proc/sslide14ball_l.plt.mili"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "Primal/shell/bend_magnitude")
    +    pickAtts = GetPickAttributes()
    +    pickAtts.showPickHighlight = 1
    +    SetPickAttributes(pickAtts)
    +    DrawPlots()
    +
    +    options = {}
    +    options["element_label"] = "shell 1"
    +    PickByZoneLabel(options)
    +    options["element_label"] = "shell 2"
    +    PickByZoneLabel(options)
    +    options["element_label"] = "shell 5"
    +    PickByZoneLabel(options)
    +
    +    Test("RemoveLabeledPicks_00")
    +    to_remove = "shell 1, shell 2, shell 19"
    +    removed   = RemovePicks(to_remove)
    +    Test("RemoveLabeledPicks_01")
    +
    +    expected = "shell 1, shell 2"
    +    TestValueEQ("Removed expected shell", expected, removed)
    +
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def TestSwivelFocus():
    +    ResetPickAttributes()
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +    ResetView()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Mesh", "mesh1")
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (-0.461806, -0.673199, 0.577526)
    +    v.focus = (0., 0., 0.)
    +    v.viewUp = (-0.243052, 0.722237, 0.647532)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (0.341463, 0.234840)
    +    v.imageZoom = 1.21
    +    SetView3D(v)
    +
    +    orig_atts = GetPickAttributes()
    +    fh_atts   = GetPickAttributes()
    +    fh_atts.swivelFocusToPick = 1
    +    SetPickAttributes(fh_atts)
    +
    +    PickByNode(element=707)
    +    Test("SwivelFocus_00")
    +
    +    SetPickAttributes(orig_atts)
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def TestSwivelHighlight():
    +    ResetPickAttributes()
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +    ResetView()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "v")
    +    DrawPlots()
    +    orig_atts = GetPickAttributes()
    +    fh_atts   = GetPickAttributes()
    +    fh_atts.overridePickLabel = 1
    +    fh_atts.forcedPickLabel   = "fhpick"
    +    fh_atts.showPickHighlight = 1
    +    fh_atts.swivelFocusToPick = 1
    +    fh_atts.showPickLetter    = 0
    +    SetPickAttributes(fh_atts)
    +
    +    PickByZone(element=580)
    +    Test("SwivelHighlight_00")
    +
    +    SetPickAttributes(orig_atts)
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def TestNodeHighlight():
    +    ResetPickAttributes()
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +    ResetView()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "v")
    +    DrawPlots()
    +
    +    pAtts = GetPickAttributes()
    +    pAtts.showPickHighlight = 1
    +    pAtts.pickHighlightColor = (230, 100, 0)
    +    SetPickAttributes(pAtts)
    +    PickByNode(800)
    +    pAtts.pickHighlightColor = (0, 0, 255)
    +    SetPickAttributes(pAtts)
    +    PickByNode(600)
    +    pAtts.pickHighlightColor = (255, 0, 0)
    +    SetPickAttributes(pAtts)
    +    PickByNode(1000)
    +    Test("NodeHighlight_00")
    +
    +    ResetPickAttributes()
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +
    +def TestTranslatedHighlight():
    +    ResetPickAttributes()
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +    ResetView()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "v")
    +    AddOperator("Transform")
    +
    +    TransformAtts = TransformAttributes()
    +    TransformAtts.doScale = 1
    +    TransformAtts.scaleOrigin = (0, 0, 0)
    +    TransformAtts.scaleX = 1
    +    TransformAtts.scaleY = 2
    +    TransformAtts.scaleZ = 1
    +    TransformAtts.doTranslate = 1
    +    TransformAtts.translateX = 100
    +    SetOperatorOptions(TransformAtts)
    +
    +    DrawPlots()
    +
    +    pAtts = GetPickAttributes()
    +    pAtts.showPickHighlight = 1
    +    SetPickAttributes(pAtts)
    +
    +    PickByZone(element=580)
    +    Test("TranslatedHighlight_00")
    +
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +
    +def TestPickingExpression():
    +    ResetPickAttributes()
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +    ResetView()
    +
    +    OpenDatabase(silo_data_path("curv3d.silo"))
    +    TurnOffAllAnnotations()
    +    AddPlot("Pseudocolor", "mesh_quality/jacobian")
    +
    +    DrawPlots()
    +
    +    PickByZone(element=100)
    +    result = GetPickOutput()
    +    PickByNode(element=100)
    +    result += GetPickOutput()
    +    TestText("TestPickingExpression_00", result)
    +
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +    CloseDatabase(silo_data_path("curv3d.silo"))
    +
    +
    +def PickMain():
    +    Pick3DTo2D()
    +    Pick2D()
    +    PickOnionPeel()
    +    PickSubset()
    +    PickMatFracsThreshold()
    +    PickReflect()
    +    PickFilledBoundary()
    +    PickMultiBlock()
    +    PickSurface()
    +    PickBigSilMat()
    +    PickOnionPeel2()
    +    PickSpecMix()
    +    PickCurve()
    +    PickMultiWindow()
    +    PickAfterEngineClosed()
    +    PickAfterEngineCrashed()
    +    PickBoundary()
    +    PickVectorPlots()
    +    PickPointMeshes()
    +    PickGlobalIds()
    +    PickExpressions()
    +    PickAMR()
    +    PickSamrai()
    +    PickIndexSelect()
    +    PickTensors()
    +    PickMili()
    +    PickContour()
    +    PickBox()
    +    PickScatter()
    +    PickHighlight()
    +    PickHighlightColor()
    +    PickRange()
    +    TestRemovePicks()
    +    TestRemoveLabeledPicks()
    +    PickLines3D()
    +    PickZoneLabel()
    +    PickNodeLabel()
    +    PickRangeLabel()
    +    TestSwivelFocus()
    +    TestSwivelHighlight()
    +    TestNodeHighlight()
    +    TestTranslatedHighlight()
    +    TestPickingExpression()
    +
    +# Call the main function
    +TurnOnAllAnnotations()
    +PickMain()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_pickarray.html b/2024-12-12-22:00/poodle_trunk_serial/queries_pickarray.html new file mode 100644 index 000000000..28fc0a110 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_pickarray.html @@ -0,0 +1,86 @@ + +Results for queries/pickarray.py + +

    Results of VisIt Regression Test - queries/pickarray

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    pickarray_010 modifications totalling 0 lines
    pickarray_020.000.00
    pickarray_030 modifications totalling 0 lines
    pickarray_040.000.00
    pickarray_050 modifications totalling 0 lines
    pickarray_060 modifications totalling 0 lines
    pickarray_070.000.00
    pickarray_080 modifications totalling 0 lines
    pickarray_090.000.00
    pickarray_100.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_pickarray_py.html b/2024-12-12-22:00/poodle_trunk_serial/queries_pickarray_py.html new file mode 100644 index 000000000..479475e0a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_pickarray_py.html @@ -0,0 +1,137 @@ +queries/pickarray.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  pickarray.py
    +#  Tests:      queries     - Pick on array variables
    +#
    +#  Defect ID:  '6862, '3191, '7323, '7324
    +#
    +#  Programmer: Hank Childs
    +#  Date:       May 25, 2006
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Tue Sep  5 17:08:59 PDT 2006
    +#    Add more tests for indexing bug ['7324].
    +#
    +#    Kathleen Bonnell, Wed Oct 18 11:43:27 PDT 2006 
    +#    Add more tests for bug '7498.
    +#
    +#    Hank Childs, Fri Jan  5 13:51:41 PST 2007
    +#    Add tests for time varying databases ['7323].
    +#
    +#    Hank Childs, Fri Jan 12 17:31:15 PST 2007
    +#    Added tests for array variables with bin widths.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +a = AnnotationAttributes()
    +TurnOffAllAnnotations(a)
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor","d")
    +DrawPlots()
    +
    +DefineArrayExpression("arr", "array_compose(d, p)")
    +Pick((0.5, 0.5), "arr")
    +text = GetPickOutput()
    +TestText("pickarray_01", text)
    +
    +SetActiveWindow(2)
    +SetAnnotationAttributes(a)
    +
    +Test("pickarray_02")
    +
    +# Now make sure future picks cause the window to update.
    +SetActiveWindow(1)
    +Pick((0.5, 1.0), "arr")
    +text = GetPickOutput()
    +TestText("pickarray_03", text)
    +
    +SetActiveWindow(2)
    +Test("pickarray_04")
    +
    +SetActiveWindow(1)
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +AddPlot("Pseudocolor", "pressure")
    +DrawPlots()
    +DefineArrayExpression("arr2", "array_compose(u, v)")
    +ZonePick((0.29, 0.47, 5.0), "arr2")
    +text = GetPickOutput()
    +TestText("pickarray_05", text)
    +
    +#  bug '7498.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +DefineArrayExpression("arr3", "array_compose(dx, dy, dz)")
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +vars = ("u", "arr3")
    +Pick(128, 107, vars)
    +text = GetPickOutput() + "\n"
    +
    +e = ExportDBAttributes()
    +e.db_type = "VTK"
    +e.filename = "globe_temp"
    +e.variables = ("u", "dx", "dy")
    +ExportDatabase(e)
    +ReplaceDatabase("globe_temp.vtk")
    +Pick(128, 107, vars)
    +text += GetPickOutput()
    +text += "\n"
    +
    +DeleteExpression("arr3")
    +DefineArrayExpression("arr3", "array_compose(dx, dy)")
    +Pick(128, 107, vars)
    +text += GetPickOutput()
    +TestText("pickarray_06", text)
    +
    +#  bug '7323
    +SetActiveWindow(1)
    +DeleteAllPlots()
    +SetActiveWindow(2)
    +DeleteAllPlots()
    +SetActiveWindow(1)
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +AddPlot("Pseudocolor", "pressure")
    +TimeSliderSetState(34)
    +DrawPlots()
    +ZonePick((0.29, 0.47, 5.0), "arr2")
    +SetActiveWindow(2)
    +Test("pickarray_07")
    +Query("Cycle")
    +output = GetQueryOutputString()
    +TestText("pickarray_08", output)
    +
    +DeleteAllPlots()
    +SetActiveWindow(1)
    +DeleteAllPlots()
    +DefineArrayExpression("arr4", "array_compose_with_bins(dx, dy, [0, 0.5, 1.5])")
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +vars = ("u", "arr4")
    +Pick(128, 107, vars)
    +SetActiveWindow(2)
    +ResetView()
    +Test("pickarray_09")
    +
    +h = HistogramAttributes()
    +h.useBinWidths = 0
    +h.basedOn = h.ManyVarsForSingleZone
    +SetPlotOptions(h)
    +ResetView()
    +Test("pickarray_10")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_pickcleanzonesonly.html b/2024-12-12-22:00/poodle_trunk_serial/queries_pickcleanzonesonly.html new file mode 100644 index 000000000..4129acede --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_pickcleanzonesonly.html @@ -0,0 +1,48 @@ + +Results for queries/pickcleanzonesonly.py + +

    Results of VisIt Regression Test - queries/pickcleanzonesonly

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    PickCleanZonesOnly10 modifications totalling 0 lines
    PickCleanZonesOnly20 modifications totalling 0 lines
    PickCleanZonesOnly30 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_pickcleanzonesonly_py.html b/2024-12-12-22:00/poodle_trunk_serial/queries_pickcleanzonesonly_py.html new file mode 100644 index 000000000..3026ff1ff --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_pickcleanzonesonly_py.html @@ -0,0 +1,57 @@ +queries/pickcleanzonesonly.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  pickcleanzonesonly.py
    +#  Tests:      queries     - Pick on mixed zones of clean zones only
    +#
    +#  Defect ID:  VisIt00003894
    +#
    +#  Programmer: Jeremy Meredith
    +#  Date:       October 30, 2003
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Apr 29 07:40:58 PDT 2004 
    +#    Slice defaults atts have changed, update accordingly. 
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +# Make a sliced filled boundary plot with clean zones only enabled
    +TurnOnAllAnnotations()
    +OpenDatabase(silo_data_path("ucd3d.silo"))
    +
    +AddPlot("FilledBoundary","mat1")
    +f=FilledBoundaryAttributes()
    +f.cleanZonesOnly=1
    +SetPlotOptions(f)
    +AddOperator("Slice")
    +s=SliceAttributes()
    +s.axisType=s.YAxis
    +s.originIntercept = .01
    +s.project2d=1
    +SetOperatorOptions(s)
    +DrawPlots()
    +
    +# Pick on one of the mixed zones
    +Pick((-3.5,10.1))
    +text = GetPickOutput()
    +TestText("PickCleanZonesOnly1", text)
    +
    +# Change the slice position and do it again
    +s.axisType=s.ZAxis
    +s.originIntercept=3.
    +SetOperatorOptions(s)
    +Pick((-1,3.2))
    +text = GetPickOutput()
    +TestText("PickCleanZonesOnly2", text)
    +
    +# Remove the slice and do it again
    +RemoveAllOperators()
    +Pick((3,2,19))
    +text = GetPickOutput()
    +TestText("PickCleanZonesOnly3", text)
    +
    +# All done!
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_py_queries.html b/2024-12-12-22:00/poodle_trunk_serial/queries_py_queries.html new file mode 100644 index 000000000..6b3ec1990 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_py_queries.html @@ -0,0 +1,44 @@ + +Results for queries/py_queries.py + +

    Results of VisIt Regression Test - queries/py_queries

    + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    py_queries_000 modifications totalling 0 lines
    py_queries_010 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_py_queries_py.html b/2024-12-12-22:00/poodle_trunk_serial/queries_py_queries_py.html new file mode 100644 index 000000000..50562e3b1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_py_queries_py.html @@ -0,0 +1,40 @@ +queries/py_queries.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  py_queires.py
    +#
    +#  Tests:      python filters / python queries
    +#              plots     - Pseudocolor
    +#
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Fri May 21 09:14:07 PDT 2010
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +import os
    +from os.path import join as pjoin
    +
    +def script_path(sname):
    +    return pjoin(os.path.split(TestScriptPath())[0],sname)
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +
    +PythonQuery(file=script_path("py_query_script_00.vpq"))
    +res = GetQueryOutputString()
    +TestText("py_queries_00",res + "\n")
    +
    +PythonQuery(file=script_path("py_query_script_01.vpq"),vars=["default","p"],args=["test",0.0,[1,2.0,3]])
    +res = GetQueryOutputString()
    +TestText("py_queries_01",res + "\n")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_queriesOverTime.html b/2024-12-12-22:00/poodle_trunk_serial/queries_queriesOverTime.html new file mode 100644 index 000000000..bda3c34e0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_queriesOverTime.html @@ -0,0 +1,324 @@ + +Results for queries/queriesOverTime.py + +

    Results of VisIt Regression Test - queries/queriesOverTime

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    AllTimeQueries_010.000.00
    AllTimeQueries_020.000.00
    AllTimeQueries_030.000.00
    AllTimeQueries_040.000.00
    AllTimeQueries_050.000.00
    AllTimeQueries_060.000.00
    AllTimeQueries_070.000.00
    FBTimeQuery_010.000.00
    FBTimeQuery_020.000.00
    TimeQuery_ops_010.000.00
    TimeQuery_ops_020.000.00
    TimeQuery_expr_010.000.00
    TimeQuery_expr_020.000.00
    TimeQuery_expr_030.000.00
    TimeQuery_trans_010.000.00
    TimeQuery_trans_020.000.00
    SpecifyTimeQueryWindow_010.000.00
    SpecifyTimeQueryWindow_020.000.00
    SpecifyTimeQueryWindow_030.000.00
    TimeQuery_sil_010.000.00
    QueryAfterQueryOverTime0 modifications totalling 0 lines
    TimeQuery_mili_010.000.00
    TimeQuery_mili_020.000.00
    TimeQuery_mili_030.000.00
    TimeQuery_mili_040.000.00
    TimePick_MultiVar_010.000.00
    TimePick_MultiVar_020.000.00
    TimePick_MultiVar_030.000.00
    TimePick_MultiVar_040.000.00
    TimePickRange_000.000.00
    TimePickRangeDict_000 modifications totalling 0 lines
    TimePickRange_010.000.00
    TimePickRangeDict_010 modifications totalling 0 lines
    TimePickRange_020.000.00
    TimePickRangeDict_020 modifications totalling 0 lines
    Pick Updated
     "" .eq. "" : True
    Timing Direct Database Query
     1.2886464595794678 .le. 10 (prec=5) : True
    Direct_Database_Route_000.000.00
    Direct_Database_Route_010.000.00
    Direct_Database_Route_020.000.00
    Direct_Database_Route_030.000.00
    Direct_Database_Route_040.000.00
    Direct_Database_Route_050.000.00
    Direct_Database_Route_060.000.00
    Direct_Database_Route_070.000.00
    Direct_Database_Route_080.000.00
    Direct_Database_Route_090.000.00
    Direct_Database_Route_100.000.00
    Direct_Database_Route_110.000.00
    OperatorCreatedVar_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_queriesOverTime_py.html b/2024-12-12-22:00/poodle_trunk_serial/queries_queriesOverTime_py.html new file mode 100644 index 000000000..7291cb98d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_queriesOverTime_py.html @@ -0,0 +1,1065 @@ +queries/queriesOverTime.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  queriesOverTime.py #
    +#  Tests:      queries     - Database
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Kathleen Bonnell
    +#  Date:       March 31, 2004
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Tue Apr 13 13:00:15 PDT 2004
    +#    Rename surface area query.
    +#
    +#    Kathleen Bonnell, Tue Apr 20 09:42:30 PDT 2004
    +#    Added TestFilledBoundary.
    +#
    +#    Kathleen Bonnell, Tue Apr 27 12:10:44 PDT 2004
    +#    Added TestExpressions, TestOperators.
    +#
    +#    Kathleen Bonnell, Thu Jun 24 09:49:35 PDT 2004
    +#    Added TestTransientVariable.
    +#
    +#    Kathleen Bonnell, Wed Jul 21 16:51:31 PDT 2004
    +#    Added TestSpecifyTimeQueryWindow.
    +#
    +#    Kathleen Bonnell, Wed Sep  8 10:53:58 PDT 2004
    +#    Renamed 'WorldPick' as 'Pick'.
    +#
    +#    Kathleen Bonnell, Mon Dec 20 15:54:04 PST 2004
    +#    Changed 'Variable by Node' to 'PickByNode'.
    +#
    +#    Kathleen Bonnell, Thu Jan  6 11:06:29 PST 2005
    +#    Added TestTimeVaryingSIL.
    +#
    +#    Kathleen Bonnell, Wed Mar 16 11:13:40 PST 2005
    +#    Added TestQueryAfterQueryOverTime.
    +#
    +#    Kathleen Bonnell, Wed Jul  6 16:21:34 PDT 2005
    +#    Added TestMili.
    +#
    +#    Kathleen Bonnell, Thu Nov 10 08:21:54 PST 2005
    +#    Added TrajectoryByZone to TestMili.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Fri Feb  5 09:27:37 PST 2010
    +#    Turn off color cycling to avoid possible propagation of error from
    +#    one failed test to several.
    +#
    +#    Kathleen Bonnell, Thu Mar  3 11:47:09 PST 2011
    +#    Added MultiVarTimePick tests.
    +#
    +#    Kathleen Biagas, Thu Jul 14 10:44:55 PDT 2011
    +#    Use named arguments.
    +#
    +#    Alister Maguire, Tue Oct 17 16:54:48 PDT 2017
    +#    Added TestPickRangeTimeQuery
    +#
    +#    Alister Maguire, Wed May  9 10:13:26 PDT 2018
    +#    Added TestReturnValue.
    +#
    +#    Alister Maguire, Wed May 30 14:16:28 PDT 2018
    +#    Added tests for performing pick ranges over time with and
    +#    without plotting and returning the curves.
    +#
    +#    Alister Maguire, Wed May 22 08:49:30 PDT 2019
    +#    Updated mili tests to reflect new plugin changes.
    +#
    +#    Alister Maguire, Tue Oct  1 11:48:15 MST 2019
    +#    Make sure to set use_actual_data to true when we want
    +#    to use data from the pipeline output.
    +#
    +#    Alister Maguire, Fri Oct 11 13:12:36 PDT 2019
    +#    Added TestDirectDatabaseRoute. I also updated several tests to
    +#    use actual data so that they continue to test the old QOT route.
    +#
    +#    Kathleen Biagas, Thu Jan 30 13:37:50 MST 2020
    +#    Added TestOperatorCreatedVar. (github bugs #2842, #3489).
    +#
    +#    Alister Maguire, Tue Feb 25 13:46:24 PST 2020
    +#    Added tests for handling vectors in the direct database route.
    +#
    +#    Alister Maguire, Mon Mar  9 15:16:36 PDT 2020
    +#    I've removed the use_actual_data flag for Pick queries as this
    +#    is now handled internally.
    +#
    +#    Alister Maguire, Thu Nov  5 08:22:15 PST 2020
    +#    Updated the multi-domain DDQOT test to ensure that the selected
    +#    element is not on processor 0 when run in parallel.
    +#
    +#    Alister Maguire, Fri Nov  6 10:06:22 PST 2020
    +#    Added more DirectDatabaseQOT tests that ensure verdict metrics
    +#    are able to be queried using this route.
    +#
    +#    Mark C. Miller, Mon Jan 11 10:37:07 PST 2021
    +#    Replace Assert-style with TestValue-style tests
    +#
    +#    Kathleen Biagas, Wed Feb 16 13:11:57 PST 2022
    +#    Replaced Curve atts 'cycleColors' with 'curveColorSource', 'color' with
    +#    'curveColor', and 'renderMode=RenderAsLines' with 'showLines'.
    +#
    +# ----------------------------------------------------------------------------
    +
    +RequiredDatabasePlugin(("PDB", "Mili", "SAMRAI"))
    +
    +def InitAnnotation():
    +    # Turn off most annotations
    +    a = AnnotationAttributes()
    +    a.axes2D.visible = 1
    +    a.axes2D.xAxis.label.visible = 1
    +    a.axes2D.yAxis.label.visible = 1
    +    a.axes2D.xAxis.title.visible = 1
    +    a.axes2D.yAxis.title.visible = 1
    +    a.axes3D.triadFlag = 0
    +    a.axes3D.bboxFlag = 0
    +    a.userInfoFlag = 0
    +    a.databaseInfoFlag = 0
    +    a.legendInfoFlag = 0
    +    a.backgroundMode = a.Solid
    +    a.foregroundColor = (0, 0, 0, 255)
    +    a.backgroundColor = (255, 255, 255, 255)
    +    SetAnnotationAttributes(a)
    +
    +def SetCurvePlotDefaults():
    +    # Disable Color Cycling, default to a blue curve.
    +    catts = CurveAttributes()
    +    catts.lineWidth = 0
    +    catts.curveColor = (0, 0, 255, 255)
    +    catts.showLabels = 1
    +    catts.designator = ""
    +    catts.showPoints = 0
    +    catts.showLegend = 1
    +    catts.curveColorSource = catts.Custom
    +    catts.showLines = 1
    +    SetDefaultPlotOptions(catts)
    +
    +
    +
    +def TestAllTimeQueries():
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +
    +    # Do some database queries.
    +    QueryOverTime("3D surface area")
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("AllTimeQueries_01")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    QueryOverTime("Volume")
    +    SetActiveWindow(2);
    +    Test("AllTimeQueries_02")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    QueryOverTime("Min")
    +    SetActiveWindow(2);
    +    Test("AllTimeQueries_03")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    QueryOverTime("Max")
    +    SetActiveWindow(2);
    +    Test("AllTimeQueries_04")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    QueryOverTime("Variable Sum")
    +    SetActiveWindow(2);
    +    Test("AllTimeQueries_05")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    QueryOverTime("Weighted Variable Sum")
    +    SetActiveWindow(2);
    +    Test("AllTimeQueries_06")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    pa = GetPickAttributes()
    +    pa.doTimeCurve = 1
    +    pa.timePreserveCoord = 0
    +    SetPickAttributes(pa)
    +    PickByNode(15947)
    +    # reset some defaults
    +    pa.doTimeCurve = 0
    +    pa.timePreserveCoord = 1
    +    SetPickAttributes(pa)
    +    SetActiveWindow(2);
    +    Test("AllTimeQueries_07")
    +
    +    # delete window 2
    +    DeleteWindow()
    +    # remove plots from window 1
    +    DeleteAllPlots()
    +
    +def TestFilledBoundary():
    +    #  bug '4708
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +    AddPlot("FilledBoundary", "Material")
    +    DrawPlots()
    +    TurnMaterialsOff(("1 barrier", "2 water"))
    +
    +    SetActiveWindow(1)
    +    QueryOverTime("3D surface area")
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +
    +    Test("FBTimeQuery_01")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    TurnMaterialsOff(("1 barrier", "2 water"))
    +    QueryOverTime("3D surface area")
    +    SetActiveWindow(2)
    +    Test("FBTimeQuery_02")
    +
    +    # delete window 2
    +    DeleteWindow()
    +    # remove plots from window 1
    +    TurnMaterialsOn()
    +    DeleteAllPlots()
    +
    +def TestOperators():
    +    #  bug '4818
    +    OpenDatabase(silo_data_path("wave*.silo database"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    AddOperator("Isovolume")
    +    iso = IsovolumeAttributes()
    +    iso.lbound = 0.1
    +    iso.ubound = 1.0
    +    SetOperatorOptions(iso)
    +    DrawPlots()
    +
    +    SetActiveWindow(1)
    +    QueryOverTime("Volume", stride=10, use_actual_data=1)
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("TimeQuery_ops_01")
    +
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "mesh_quality/jacobian")
    +    AddOperator("Slice")
    +    slice = SliceAttributes()
    +    slice.axisType = slice.Arbitrary
    +    slice.normal = (-0.689, -0.0416, 0.7233)
    +    slice.originType = slice.Point
    +    slice.originPoint = (2.0011, -0.4084, -1.1279)
    +    slice.upAxis = (-0.08584, 0.996007, -0.0245)
    +    slice.project2d = 1
    +    SetOperatorOptions(slice)
    +
    +    DrawPlots()
    +    QueryOverTime("2D area", stride=10, use_actual_data=1)
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("TimeQuery_ops_02")
    +
    +    # prepare for next test-set
    +    # delete plots from window 2 & l
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +def TestExpressions():
    +    #bug '4784
    +    OpenDatabase(data_path("pdb_test_data/dbA00.pdb"))
    +
    +    AddPlot("Pseudocolor", "mesh/ireg")
    +    pa = PseudocolorAttributes()
    +    pa.minFlag = 1
    +    pa.maxFlag = 1
    +    pa.min = 1
    +    pa.max = 4
    +    SetPlotOptions(pa)
    +    DrawPlots()
    +
    +    pt = (4., 3., 0.)
    +    pick = GetPickAttributes()
    +    pick.doTimeCurve = 1
    +    SetPickAttributes(pick)
    +    Pick(pt)
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("TimeQuery_expr_01")
    +
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    # test a scalar expression
    +    OpenDatabase(silo_data_path("wave*.silo database"))
    +
    +    DefineScalarExpression("p2", "pressure*pressure")
    +    AddPlot("Pseudocolor", "p2")
    +    DrawPlots()
    +
    +    QueryOverTime("Variable Sum", stride=10)
    +    SetActiveWindow(2)
    +    Test("TimeQuery_expr_02")
    +
    +    # prepare for next test-set
    +    # delete plots from window 2 & l
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    OpenDatabase(data_path("pdb_test_data/dbA00.pdb"))
    +
    +    DefineScalarExpression("m", "matvf(material, 1)")
    +    AddPlot("Pseudocolor", "m")
    +    DrawPlots()
    +
    +    QueryOverTime("Variable Sum")
    +    SetActiveWindow(2)
    +    Test("TimeQuery_expr_03")
    +
    +    # prepare for next test-set
    +    # delete plots from window 2 & l
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +
    +
    +def TestTransientVariable():
    +    #bug '4906
    +
    +    # Do what is necessary to get access to the transient variable,
    +    # because QueryOverTime requires an active drawn plot.
    +    db = silo_data_path("wave_tv*.silo database")
    +    OpenDatabase(db)
    +    SetTimeSliderState(17)
    +    ReOpenDatabase(db)
    +    AddPlot("Pseudocolor", "transient")
    +    DrawPlots()
    +
    +    qt = GetQueryOverTimeAttributes()
    +    qt.timeType = qt.Timestep
    +    SetQueryOverTimeAttributes(qt)
    +
    +    QueryOverTime("Variable Sum")
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("TimeQuery_trans_01")
    +
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    pick = GetPickAttributes()
    +    pick.doTimeCurve = 1
    +    pick.timePreserveCoord = 0
    +    SetPickAttributes(pick)
    +    PickByNode(327)
    +
    +    pick.doTimeCurve = 0
    +    pick.timePreserveCoord = 1
    +    SetPickAttributes(pick)
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("TimeQuery_trans_02")
    +
    +    # Prepare for next test
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +def TestSpecifyTimeQueryWindow():
    +    # bug '5163
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +
    +    qt = GetQueryOverTimeAttributes()
    +    qt.timeType = qt.Timestep
    +    SetQueryOverTimeAttributes(qt)
    +
    +    QueryOverTime("3D surface area")
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("SpecifyTimeQueryWindow_01")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    TurnMaterialsOff(("1 barrier"))
    +    DrawPlots()
    +
    +    qot = GetQueryOverTimeAttributes()
    +    qot.createWindow = 0
    +    qot.windowId = 3
    +    SetQueryOverTimeAttributes(qot)
    +
    +    QueryOverTime("3D surface area")
    +
    +    SetActiveWindow(3)
    +    InitAnnotation()
    +    Test("SpecifyTimeQueryWindow_02")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    TurnMaterialsOff(("2 water"))
    +    DrawPlots()
    +
    +    qot.windowId = 2
    +    SetQueryOverTimeAttributes(qot)
    +
    +    QueryOverTime("3D surface area")
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("SpecifyTimeQueryWindow_03")
    +
    +    # Prepare for next test
    +    DeleteAllPlots()
    +    DeleteWindow()
    +    SetActiveWindow(3)
    +    DeleteWindow()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +def TestTimeVaryingSIL():
    +    #bug '5473
    +    OpenDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +
    +    cfileName = "./temp.curve"
    +    curveFile = open(cfileName, "wt")
    +    curveFile.write("#3D surface area\n")
    +    nframes = TimeSliderGetNStates()
    +    for i in range(nframes):
    +        Query("3D surface area")
    +        val = GetQueryOutputValue()
    +        curveFile.write("%g %g\n" % (i, val))
    +        TimeSliderNextState()
    +
    +    curveFile.close()
    +
    +    AddWindow()
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    OpenDatabase(cfileName)
    +    AddPlot("Curve", "3D surface area")
    +    DrawPlots()
    +
    +    SetActiveWindow(1)
    +
    +    # Go ahead and use default plot for now.
    +    qt = GetQueryOverTimeAttributes()
    +    qt.timeType = qt.Timestep
    +    qt.createWindow = 0
    +    qt.windowId = 2
    +    SetQueryOverTimeAttributes(qt)
    +
    +    QueryOverTime("3D surface area")
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    cv = GetViewCurve();
    +    cv.domainCoords = (-0.534115, 10.5341)
    +    cv.rangeCoords = (4029.87, 5856.13)
    +    SetViewCurve(cv)
    +
    +    SetActivePlots((0, 1))
    +    c = CurveAttributes()
    +    c.showPoints = 1
    +    SetPlotOptions(c)
    +
    +    Query("Area Between Curves")
    +    s = GetQueryOutputString()
    +    text = CreateAnnotationObject("Text2D")
    +    text.text =  s
    +    text.height = 0.02
    +    text.position = (0.55, 0.4)
    +
    +    Test("TimeQuery_sil_01")
    +
    +    text.Delete()
    +    os.unlink(cfileName)
    +
    +    # Prepare for next test
    +    DeleteAllPlots()
    +    SetActiveWindow(2)
    +    DeleteWindow()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +def TestQueryAfterQueryOverTime():
    +    # bug '5823
    +    OpenDatabase(silo_data_path("wave_tv.visit"))
    +
    +    SetTimeSliderState(17)
    +    ReOpenDatabase(silo_data_path("wave_tv.visit"))
    +
    +    AddPlot("Pseudocolor", "transient")
    +    DrawPlots()
    +
    +    QueryOverTime("Volume")
    +    Query("Volume")
    +    s = GetQueryOutputString()
    +    QueryOverTime("Max")
    +    Query("Max")
    +    s = s + GetQueryOutputString()
    +
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    # bug '6042
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    TurnMaterialsOn()
    +    QueryOverTime("3D surface area", stride=10)
    +
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString()
    +    TestText("QueryAfterQueryOverTime", s)
    +
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +def TestMili():
    +    # bug '6430
    +    OpenDatabase(data_path("mili_test_data/single_proc/m_plot.mili"))
    +
    +    AddPlot("Pseudocolor", "Primal/node/nodvel/vz")
    +    DrawPlots()
    +
    +    ResetQueryOverTimeAttributes()
    +
    +    QueryOverTime("Volume")
    +    SetActiveWindow(2)
    +    ResetView()
    +    InitAnnotation()
    +    Test("TimeQuery_mili_01")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    QueryOverTime("Max")
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("TimeQuery_mili_02")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    p = GetPickAttributes()
    +    p.doTimeCurve = 1
    +    p.timePreserveCoord = 0
    +    SetPickAttributes(p)
    +    NodePick(122, 161)
    +
    +    p.doTimeCurve = 0
    +    SetPickAttributes(p)
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("TimeQuery_mili_03")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    qvars = ("Primal/shell/edv1", "Primal/shell/edv2")
    +    QueryOverTime("TrajectoryByZone", element=242, vars=qvars)
    +    SetActiveWindow(2)
    +    ResetView()
    +    InitAnnotation()
    +    Test("TimeQuery_mili_04")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +def MultiVarTimePick():
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +
    +    pa = GetPickAttributes()
    +    pa.doTimeCurve = 1
    +    pa.timeCurveType = pa.Single_Y_Axis
    +    SetPickAttributes(pa)
    +
    +    vars =("pressure", "v", "direction_magnitude")
    +    PickByNode(8837, vars)
    +
    +    SetActiveWindow(2);
    +    InitAnnotation()
    +    Test("TimePick_MultiVar_01")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    pa.timeCurveType = pa.Multiple_Y_Axes
    +    SetPickAttributes(pa)
    +    PickByNode(8837, vars)
    +
    +    SetActiveWindow(2);
    +    Test("TimePick_MultiVar_02")
    +    DeleteAllPlots()
    +
    +    # remove plots from window 1
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    OpenDatabase(data_path("mili_test_data/single_proc/m_plot.mili"))
    +
    +    AddPlot("Pseudocolor", "Primal/shell/inteng")
    +    DrawPlots()
    +
    +    pa.timePreserveCoord = 0
    +    pa.timeCurveType = pa.Single_Y_Axis
    +    SetPickAttributes(pa)
    +
    +    vars = ("default", "Primal/shell/normal_magnitude")
    +    PickByZone(233, vars)
    +
    +    SetActiveWindow(2);
    +    Test("TimePick_MultiVar_03")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    pa.timeCurveType = pa.Multiple_Y_Axes
    +    SetPickAttributes(pa)
    +    PickByZone(233, vars)
    +
    +    SetActiveWindow(2);
    +    Test("TimePick_MultiVar_04")
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +def TestPickRangeTimeQuery():
    +
    +    OpenDatabase(silo_data_path("wave_tv.visit"))
    +    SetTimeSliderState(17)
    +
    +    AddPlot("Pseudocolor", "v")
    +    DrawPlots()
    +
    +    pickAtts = GetPickAttributes()
    +    pickAtts.doTimeCurve = 0
    +    pickAtts.variables = ("default", "v")
    +    pickAtts.timeCurveType =  pickAtts.Single_Y_Axis
    +    SetPickAttributes(pickAtts)
    +
    +    #
    +    # Return the curves without plotting, and show
    +    # highlights.
    +    #
    +    pickAtts.showPickHighlight = 1
    +    SetPickAttributes(pickAtts)
    +    options = {}
    +    options["pick_range"] = "100-105, 100, 1"
    +    options["do_time"] = 0
    +    options["return_curves"] = 1
    +    output_dict = PickByZone(options)
    +
    +    Test("TimePickRange_00")
    +    # use json.dumps for dictionary object, makes for easier parsing
    +    # of diffs when there are errors
    +    TestText("TimePickRangeDict_00",json.dumps(output_dict, indent=2))
    +    ClearPickPoints()
    +
    +    #
    +    # Plot the curves, but don't return them.
    +    #
    +    pickAtts.showPickHighlight = 0
    +    SetPickAttributes(pickAtts)
    +    options = {}
    +    options["pick_range"] = "100-105, 100, 1"
    +    options["do_time"] = 1
    +    options["return_curves"] = 0
    +    options["start_time"] = 10
    +    options["end_time"] = 14
    +    options["stride"] = 2
    +    output_dict = PickByNode(options)
    +    SetActiveWindow(2)
    +    Test("TimePickRange_01")
    +    TestText("TimePickRangeDict_01",json.dumps(output_dict, indent=2))
    +    ClearPickPoints()
    +    SetActiveWindow(1)
    +
    +    #
    +    # Plot the curves, and return them.
    +    #
    +    pickAtts.showPickHighlight = 0
    +    SetPickAttributes(pickAtts)
    +    options = {}
    +    options["pick_range"] = "100-105"
    +    options["do_time"] = 1
    +    options["return_curves"] = 1
    +    options["start_time"] = 20
    +    options["end_time"] = 60
    +    options["stride"] = 2
    +    output_dict = PickByNode(options)
    +
    +    SetActiveWindow(2)
    +    Test("TimePickRange_02")
    +    TestText("TimePickRangeDict_02",json.dumps(output_dict, indent=2))
    +    SetActiveWindow(1)
    +
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +    SetActiveWindow(1)
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def TestReturnValue():
    +    #
    +    # There used to be a bug where the return value
    +    # from previous picks would propagate to the following
    +    # time query. Let's make sure this isn't re-introduced.
    +    #
    +    OpenDatabase(silo_data_path("wave.visit"))
    +    AddPlot("Pseudocolor", "v")
    +    DrawPlots()
    +
    +    pickAtts = GetPickAttributes()
    +    pickAtts.doTimeCurve = 0
    +    pickAtts.variables = ("default", "v")
    +    pickAtts.timeCurveType =  pickAtts.Single_Y_Axis
    +    SetPickAttributes(pickAtts)
    +
    +    time1   = NodePick(coord=(3, .5, 3), do_time=1, start_time=0, end_time=70)
    +    no_time = NodePick(coord=(2, .2, 2), do_time=0)
    +    time2   = NodePick(coord=(3, .5, 3), do_time=1, start_time=0, end_time=70)
    +
    +    TestValueEQ("Pick Updated", type(time1), type(time2))
    +
    +    ClearPickPoints()
    +    DeleteAllPlots()
    +    ResetPickLetter()
    +
    +def TestDirectDatabaseRoute():
    +
    +    #
    +    # Cleanup any plots that haven't been deleted yet.
    +    #
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    OpenDatabase(data_path("mili_test_data/single_proc/d3samp6_10_longrun.plt.mili"))
    +    AddPlot("Pseudocolor", "Primal/Shared/edrate")
    +    DrawPlots()
    +
    +    element    = 116
    +    domain     = 0
    +    element    = 116
    +    preserve   = 0
    +    start      = 0
    +    stride     = 1
    +    stop       = 10000
    +    vars       = ("default")
    +
    +    #
    +    # First, let's time the query. This hard to predict because of it being dependent
    +    # on the machine's architecture, but we can make an educated guess. The direct
    +    # route should take under a second, and the old route should take at least
    +    # 30 seconds. We'll give ourselves a threshold of 10 seconds to be safe.
    +    #
    +    import time
    +    thresh = 10
    +    timer_start = time.time()
    +
    +    PickByZone(curve_plot_type=0, vars=vars, do_time=1, domain=domain, element=element,
    +        preserve_coord=preserve, end_time=stop, start_time=start, stride=stride)
    +
    +    timer_stop = time.time()
    +    res = timer_stop - timer_start
    +
    +    TestValueLE("Timing Direct Database Query", res, thresh)
    +    SetActiveWindow(2)
    +    Test("Direct_Database_Route_00")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    #
    +    # Like the original QOT, the direct route creates a clone, but this clone
    +    # differs in that its resulting dataset will NOT match the original dataset.
    +    # Let's make sure the active dataset is being updated to the old plot by
    +    # performing a new pick (not through time).
    +    #
    +    PickByZone(do_time=0, domain=domain, element=element)
    +    Test("Direct_Database_Route_01")
    +
    +    #
    +    # Test basic range settings.
    +    #
    +    start  = 100
    +    stop   = 900
    +    stride = 10
    +    PickByZone(curve_plot_type=0, vars=vars, do_time=1, domain=domain, element=element,
    +        preserve_coord=preserve, end_time=stop, start_time=start, stride=stride)
    +    stride = 1
    +    start  = 0
    +    stop   = 10000
    +    SetActiveWindow(2)
    +    Test("Direct_Database_Route_02")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "Primal/node/nodacc/ax")
    +    DrawPlots()
    +
    +    # This tests two things:
    +    #    1. Plotting a node pick curve.
    +    #    2. Using a direct route query on magnitude expression.
    +    #
    +    vars=("Primal/node/nodacc_magnitude")
    +    PickByNode(curve_plot_type=0, vars=vars, do_time=1, domain=domain, element=element,
    +        preserve_coord=preserve, end_time=stop, start_time=start, stride=stride)
    +    SetActiveWindow(2)
    +    Test("Direct_Database_Route_03")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    DeleteAllPlots()
    +    OpenDatabase(data_path("mili_test_data/single_proc/m_plot.mili"))
    +    AddPlot("Pseudocolor", "Primal/brick/stress/sx")
    +    DrawPlots()
    +
    +    #
    +    # Test plotting multiple variables at once.
    +    #
    +    element = 489
    +    vars=("Primal/brick/stress/sz", "Primal/brick/stress/sx")
    +    PickByZone(curve_plot_type=0, vars=vars, do_time=1, domain=domain, element=element,
    +        preserve_coord=preserve, end_time=stop, start_time=start, stride=stride)
    +    SetActiveWindow(2)
    +    Test("Direct_Database_Route_04")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    #
    +    # Testing the multi curve plot.
    +    #
    +    PickByZone(curve_plot_type=1, vars=vars, do_time=1, domain=domain, element=element,
    +        preserve_coord=preserve, end_time=stop, start_time=start, stride=stride)
    +    SetActiveWindow(2)
    +    Test("Direct_Database_Route_05")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    #
    +    # Test multi-domain data.
    +    #
    +    DeleteAllPlots()
    +    OpenDatabase(data_path("mili_test_data/multi_proc/d3samp6.plt.mili"))
    +    AddPlot("Pseudocolor", "Primal/Shared/edrate")
    +    DrawPlots()
    +    domain = 5
    +    element = 14
    +    vars = ("default")
    +    PickByZone(curve_plot_type=0, vars=vars, do_time=1, domain=domain, element=element,
    +        preserve_coord=preserve, end_time=stop, start_time=start, stride=stride)
    +    SetActiveWindow(2)
    +    Test("Direct_Database_Route_06")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    DeleteAllPlots()
    +
    +    #
    +    # Now let's test a variable that is not defined on all
    +    # timesteps.
    +    #
    +    db = silo_data_path("wave_tv*.silo database")
    +    OpenDatabase(db)
    +    SetTimeSliderState(17)
    +    ReOpenDatabase(db)
    +    AddPlot("Pseudocolor", "transient")
    +    DrawPlots()
    +
    +    pick = GetPickAttributes()
    +    pick.doTimeCurve = 1
    +    pick.timePreserveCoord = 0
    +    SetPickAttributes(pick)
    +    PickByNode(element=327)
    +
    +    pick.doTimeCurve = 0
    +    pick.timePreserveCoord = 1
    +    SetPickAttributes(pick)
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("Direct_Database_Route_07")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    #
    +    # Next, let's test a vector plot. The vectors should be reduced
    +    # to their magnitudes.
    +    #
    +    AddPlot("Vector", "direction")
    +    DrawPlots()
    +
    +    pick = GetPickAttributes()
    +    pick.doTimeCurve = 1
    +    pick.timePreserveCoord = 0
    +    SetPickAttributes(pick)
    +    PickByNode(element=10)
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("Direct_Database_Route_08")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    #
    +    # Next, let's test using the direct database route on verdict metrics.
    +    #
    +    OpenDatabase(data_path("mili_test_data/single_proc/d3samp6.plt.mili"))
    +    AddPlot("Pseudocolor", "mesh_quality/mesh1/skew")
    +    DrawPlots()
    +
    +    domain     = 0
    +    element    = 116
    +    preserve   = 0
    +    start      = 0
    +    stride     = 1
    +    stop       = 10000
    +
    +    vars=("default")
    +    PickByZone(curve_plot_type=0, vars=vars, do_time=1, domain=domain, element=element,
    +        preserve_coord=preserve, end_time=stop, start_time=start, stride=stride)
    +
    +    SetActiveWindow(2)
    +    Test("Direct_Database_Route_09")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    #
    +    # This is a continuation of testing verdicts, but this is an edge case that should
    +    # be handled when plotting multiple variables. The case occurs when our active
    +    # variable does not depend on mesh coodinates, but we also request a variable that
    +    # requires mesh coordinates (like verdict). There is a re-ordering that needs to
    +    # take place during the request retrieval process.
    +    #
    +    AddPlot("Pseudocolor", "Primal/Shared/strain/ezx")
    +    DrawPlots()
    +
    +    vars=("default", "mesh_quality/mesh1/face_planarity")
    +    PickByZone(curve_plot_type=0, vars=vars, do_time=1, domain=domain, element=element,
    +        preserve_coord=preserve, end_time=stop, start_time=start, stride=stride)
    +
    +    SetActiveWindow(2)
    +    Test("Direct_Database_Route_10")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +
    +    vars=("default", "mesh_quality/mesh1/face_planarity")
    +    PickByZone(curve_plot_type=1, vars=vars, do_time=1, domain=domain, element=element,
    +        preserve_coord=preserve, end_time=stop, start_time=start, stride=stride)
    +
    +    SetActiveWindow(2)
    +    Test("Direct_Database_Route_11")
    +    DeleteAllPlots()
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +
    +def TestOperatorCreatedVar():
    +    OpenDatabase(silo_data_path("wave.visit"))
    +    DefineVectorExpression("normals", "cell_surface_normal(quadmesh)")
    +
    +    AddPlot("Pseudocolor", "operators/Flux/quadmesh")
    +
    +    fluxAtts = FluxAttributes()
    +    fluxAtts.flowField = "direction"
    +    SetOperatorOptions(fluxAtts)
    +
    +    AddOperator("Slice")
    +    sliceAtts = SliceAttributes()
    +    sliceAtts.axisType = sliceAtts.Arbitrary
    +    sliceAtts.normal = (0, 1, 0)
    +    sliceAtts.originType = sliceAtts.Percent
    +    sliceAtts.originPercent = 50
    +    sliceAtts.project2d = 0
    +    SetOperatorOptions(sliceAtts)
    +
    +    AddOperator("DeferExpression")
    +    deferAtts = DeferExpressionAttributes()
    +    deferAtts.exprs = ("normals")
    +    SetOperatorOptions(deferAtts)
    +
    +    # we want slice before flux, so demote it
    +    DemoteOperator(1)
    +
    +    DrawPlots()
    +
    +    qt = GetQueryOverTimeAttributes()
    +    qt.timeType = qt.Cycle
    +    SetQueryOverTimeAttributes(qt)
    +
    +    QueryOverTime("Weighted Variable Sum")
    +
    +    SetActiveWindow(2)
    +    InitAnnotation()
    +    Test("OperatorCreatedVar_01")
    +
    +    DeleteAllPlots()
    +
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    DeleteExpression("normals")
    +    CloseDatabase(silo_data_path("wave.visit"))
    +
    +def TimeQueryMain():
    +    TestAllTimeQueries()
    +    TestFilledBoundary()
    +    TestOperators()
    +    TestExpressions()
    +    TestTransientVariable()
    +    TestSpecifyTimeQueryWindow()
    +    TestTimeVaryingSIL()
    +    TestQueryAfterQueryOverTime()
    +    TestMili()
    +    MultiVarTimePick()
    +    TestPickRangeTimeQuery()
    +    TestReturnValue()
    +    TestDirectDatabaseRoute()
    +    TestOperatorCreatedVar()
    +
    +# main
    +InitAnnotation()
    +SetCurvePlotDefaults()
    +TimeQueryMain()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_queryMultiWindow.html b/2024-12-12-22:00/poodle_trunk_serial/queries_queryMultiWindow.html new file mode 100644 index 000000000..f063f36ae --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_queryMultiWindow.html @@ -0,0 +1,40 @@ + +Results for queries/queryMultiWindow.py + +

    Results of VisIt Regression Test - queries/queryMultiWindow

    + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    QueryMultiWindow0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_queryMultiWindow_py.html b/2024-12-12-22:00/poodle_trunk_serial/queries_queryMultiWindow_py.html new file mode 100644 index 000000000..73a38ad6f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_queryMultiWindow_py.html @@ -0,0 +1,154 @@ +queries/queryMultiWindow.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  queryMultiWindow.py #
    +#  Tests:      queries     - Database
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       May 19, 2004 
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Mon Dec 20 15:54:04 PST 2004
    +#    Changed 'Variable by Zone' to 'PickByZone' and 'Variable by Node' to
    +#    'PickByNode'.
    +#
    +#    Kathleen Bonnell, Thu Apr  3 10:00:48 PDT 2008 
    +#    Added tests from bug 8425. 
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Thu Jul 14 10:44:55 PDT 2011
    +#    Clean up unused / unnecessary query arguments. 
    +#
    +# ----------------------------------------------------------------------------
    +
    +def QueryMultiWindow():
    +    OpenDatabase(silo_data_path("wave*.silo database"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    SetTimeSliderState(31)
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0, -1, 0)
    +    v.viewUp = (0, 0, 1)
    +    SetView3D(v)
    +
    +    CloneWindow()
    +    SetTimeSliderState(64)
    +    DrawPlots()
    +    ChangeActivePlotsVar("v")
    +
    +    s = "Window 1 queries:\n"
    +    SetActiveWindow(1)
    +    Query("MinMax")
    +    s = s + GetQueryOutputString()
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString() + "\n"
    +    PickByZone(7072)
    +    s = s + GetPickOutput() + "\n"
    +    PickByNode(11168)
    +    s = s + GetPickOutput() + "\n"
    +    Query("Variable Sum")
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("NumNodes", use_actual_data=0)
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("NumZones", use_actual_data=0)
    +    s = s + GetQueryOutputString() + "\n"
    +
    +
    +    s = s + "\nWindow 2 queries:\n"
    +    SetActiveWindow(2)
    +    Query("MinMax")
    +    s = s + GetQueryOutputString()
    +    Query("3D surface area")
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("Volume")
    +    s = s + GetQueryOutputString() + "\n"
    +    PickByZone(7072)
    +    s = s + GetPickOutput() + "\n"
    +    PickByNode(11168)
    +    s = s + GetPickOutput() + "\n"
    +    Query("Variable Sum")
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("NumNodes", use_actual_data=0)
    +    s = s + GetQueryOutputString() + "\n"
    +    Query("NumZones", use_actual_data=0)
    +    s = s + GetQueryOutputString() + "\n"
    +
    +    #Delete window 2
    +    DeleteWindow()
    +    #Delete plots in window 1
    +    DeleteAllPlots()
    +
    +    #bug 8425 (multiple windows, same db, same timestate)
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    DefineScalarExpression("X", "coord(quadmesh3d)[0]")
    +    DefineScalarExpression("unnamed1", "X-1")
    +    DefineScalarExpression("unnamed2", "X-2")
    +    DefineScalarExpression("unnamed3", "X-3")
    +    SetWindowLayout(4)
    +    AddPlot("Pseudocolor", "unnamed1")
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + "\n" + GetQueryOutputString() + "\n"
    +    SetActiveWindow(2)
    +    AddPlot("Pseudocolor", "unnamed2")
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n"
    +    SetActiveWindow(3)
    +    AddPlot("Pseudocolor", "unnamed3")
    +    DrawPlots()
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n"
    +    SetActiveWindow(2)
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n"
    +
    +    SetActiveWindow(4)
    +    DeleteWindow()
    +    SetActiveWindow(3)
    +    DeleteWindow()
    +    SetActiveWindow(2)
    +    DeleteWindow()
    +    DeleteAllPlots()
    +
    +    #bug 8425 (multiple plots, same window, same db, same root var)
    +    OpenDatabase(silo_data_path("multi_rect2d.silo"))
    +
    +    DefineScalarExpression("p2", "p*p")
    +    DefineScalarExpression("p3", "p*p*p")
    +    AddPlot("Pseudocolor", "p")
    +    AddPlot("Pseudocolor", "p2")
    +    AddPlot("Pseudocolor", "p3")
    +    DrawPlots()
    +    SetActivePlots(0)
    +    Query("Weighted Variable Sum")
    +    s = s + "\n" + GetQueryOutputString() + "\n"
    +    SetActivePlots(1)
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n"
    +    SetActivePlots(2)
    +    Query("Weighted Variable Sum")
    +    s = s + GetQueryOutputString() + "\n"
    +
    +    TestText("QueryMultiWindow", s)
    +
    +    DeleteAllPlots()
    +
    +# Call the main function
    +TurnOnAllAnnotations()
    +QueryMultiWindow()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_revolved_surface_area.html b/2024-12-12-22:00/poodle_trunk_serial/queries_revolved_surface_area.html new file mode 100644 index 000000000..da7a30dd3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_revolved_surface_area.html @@ -0,0 +1,56 @@ + +Results for queries/revolved_surface_area.py + +

    Results of VisIt Regression Test - queries/revolved_surface_area

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    revolved_surface_area_010 modifications totalling 0 lines
    revolved_surface_area_020 modifications totalling 0 lines
    revolved_surface_area_030 modifications totalling 0 lines
    revolved_surface_area_040 modifications totalling 0 lines
    revolved_surface_area_050 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_revolved_surface_area_py.html b/2024-12-12-22:00/poodle_trunk_serial/queries_revolved_surface_area_py.html new file mode 100644 index 000000000..085f57891 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_revolved_surface_area_py.html @@ -0,0 +1,85 @@ +queries/revolved_surface_area.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  revolved_surface_area.py
    +#  Tests:      queries     - Revolved surface area of 2D plot.
    +#
    +#  Defect ID:  VisIt00004666, '3260, '3261
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 30, 2004
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Apr 29 07:40:58 PDT 2004 
    +#    Slice defaults atts have changed, update accordingly. 
    +#
    +#    Hank Childs, Thu Jan 12 15:57:52 PST 2006
    +#    Added additional tests ('3260, '3261).
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +# Test for topological dimension 2.
    +TurnOnAllAnnotations()
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +Query("Revolved surface area")
    +text = GetQueryOutputString()
    +TestText("revolved_surface_area_01", text)
    +
    +
    +# Test with isosurface operator.
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isosurface")
    +iso_atts = IsosurfaceAttributes();
    +iso_atts.contourValue = (.25)
    +iso_atts.contourMethod = iso_atts.Value
    +SetOperatorOptions(iso_atts)
    +DrawPlots()
    +
    +Query("Revolved surface area")
    +text = GetQueryOutputString()
    +TestText("revolved_surface_area_02", text)
    +
    +
    +# Test for boundary plot.
    +DeleteAllPlots()
    +AddPlot("Boundary", "mat1")
    +DrawPlots()
    +
    +Query("Revolved surface area")
    +text = GetQueryOutputString()
    +TestText("revolved_surface_area_03", text)
    +
    +
    +# Test with 3D, isosurface, slice.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isosurface")
    +SetOperatorOptions(iso_atts)
    +AddOperator("Slice")
    +s = SliceAttributes()
    +s.originIntercept = 0.5
    +s.axisType = s.YAxis
    +SetOperatorOptions(s)
    +DrawPlots()
    +
    +Query("Revolved surface area")
    +text = GetQueryOutputString()
    +TestText("revolved_surface_area_04", text)
    +
    +RemoveLastOperator()
    +Query("Revolved surface area")
    +text = GetLastError()
    +TestText("revolved_surface_area_05", text)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_scf.html b/2024-12-12-22:00/poodle_trunk_serial/queries_scf.html new file mode 100644 index 000000000..837968ba2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_scf.html @@ -0,0 +1,96 @@ + +Results for queries/scf.py + +

    Results of VisIt Regression Test - queries/scf

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    scf_010 modifications totalling 0 lines
    scf_01_obj0 modifications totalling 0 lines
    scf_01_default_txt0 modifications totalling 0 lines
    scf_01_default_obj0 modifications totalling 0 lines
    scf_01_override_txt0 modifications totalling 0 lines
    scf_01_override_obj0 modifications totalling 0 lines
    scf_020 modifications totalling 0 lines
    scf_030.000.00
    scf_03_override0.000.00
    scf_050 modifications totalling 0 lines
    scf_05_obj0 modifications totalling 0 lines
    scf_05_override_txt0 modifications totalling 0 lines
    scf_05_override_obj0 modifications totalling 0 lines
    scf_070 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_scf_py.html b/2024-12-12-22:00/poodle_trunk_serial/queries_scf_py.html new file mode 100644 index 000000000..4cb4d72e4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_scf_py.html @@ -0,0 +1,150 @@ +queries/scf.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  scf.py
    +#  Tests:      queries     - spherical compactness factor
    +#
    +#  Defect ID:  VisIt00006385
    +#
    +#  Programmer: Hank Childs
    +#  Date:       July 14, 2005
    +#
    +#  Modifications:
    +#    Mark C. Miller, Fri Nov 17 22:03:34 PST 2006
    +#    Accounted for fact that threshold operator no longer has a default var
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Thu Mar 25 09:57:34 PDT 2010
    +#    Added call(s) to DrawPlots() b/c of changes to the default plot state 
    +#    behavior when an operator is added.
    +#
    +#    Kathleen Biagas, Thu Jul 14 10:44:55 PDT 2011
    +#    Use named arguments. 
    +#
    +#    Cyrus Harrison, Wed Jul 16 15:58:54 PDT 2014
    +#    Added test cases to exercise centroid override
    +#
    +#    Kathleen Biagas, Wed Aug 28 09:04:00 MST 2019
    +#    Turn off cycling of colors for all Curve plot tests.  Set the colors
    +#    individually to match current baseline results.
    +#
    +# ----------------------------------------------------------------------------
    +import json
    +
    +# Turn off all annotation
    +a = AnnotationAttributes()
    +TurnOffAllAnnotations(a)
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isovolume")
    +iso_atts = IsovolumeAttributes()
    +iso_atts.ubound = 0.7
    +SetOperatorOptions(iso_atts)
    +DrawPlots()
    +
    +Query("Spherical Compactness Factor")
    +text = GetQueryOutputString()
    +TestText("scf_01", text)
    +
    +res = GetQueryOutputObject()
    +TestText("scf_01_obj", json.dumps(res,indent=2))
    +
    +Query("Spherical Compactness Factor",centroid="default")
    +text = GetQueryOutputString()
    +TestText("scf_01_default_txt", text)
    +
    +res = GetQueryOutputObject()
    +TestText("scf_01_default_obj", json.dumps(res,indent=2))
    +
    +Query("Spherical Compactness Factor",centroid=[1.0,0.0,0.0])
    +text = GetQueryOutputString()
    +TestText("scf_01_override_txt", text)
    +
    +res = GetQueryOutputObject()
    +TestText("scf_01_override_obj", json.dumps(res,indent=2))
    +
    +
    +AddOperator("Revolve")
    +DrawPlots()
    +Query("Spherical Compactness Factor")
    +text = GetQueryOutputString()
    +TestText("scf_02", text)
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("wave.visit"))
    +
    +AddPlot("Pseudocolor", "pressure")
    +DrawPlots()
    +
    +c = CurveAttributes()
    +c.curveColorSource = c.Custom
    +c.curveColor = (255, 0, 0, 255)
    +SetDefaultPlotOptions(c)
    +
    +QueryOverTime("Spherical Compactness Factor", stride=10)
    +
    +c = CurveAttributes()
    +c.curveColorSource = c.Custom
    +c.curveColor = (255, 0, 0, 255)
    +SetDefaultPlotOptions(c)
    +
    +SetActiveWindow(2)
    +SetAnnotationAttributes(a)
    +Test("scf_03")
    +
    +c.curveColor = (0, 255, 0, 255)
    +SetDefaultPlotOptions(c)
    +
    +SetActiveWindow(1)
    +QueryOverTime("Spherical Compactness Factor", stride=10,centroid=[1.0,0.0,0.0])
    +
    +SetActiveWindow(2)
    +SetAnnotationAttributes(a)
    +Test("scf_03_override")
    +
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +i = ThresholdAttributes()
    +i.lowerBounds = (0.0)
    +i.upperBounds = (0.5)
    +i.listedVarNames = ("d")
    +SetDefaultOperatorOptions(i)
    +AddOperator("Threshold")
    +DrawPlots()
    +# Don't test localized compactness factor until radii is sorted out.
    +#Query("Localized Compactness Factor")
    +#t = GetQueryOutputString()
    +#TestText("scf_04", t)
    +Query("Elliptical Compactness Factor")
    +t = GetQueryOutputString()
    +TestText("scf_05", t)
    +
    +res = GetQueryOutputObject()
    +TestText("scf_05_obj", json.dumps(res,indent=2))
    +
    +Query("Elliptical Compactness Factor",centroid=[1.0,0.0,0.0])
    +text = GetQueryOutputString()
    +TestText("scf_05_override_txt", text)
    +
    +res = GetQueryOutputObject()
    +TestText("scf_05_override_obj", json.dumps(res,indent=2))
    +
    +AddOperator("Revolve")
    +DrawPlots()
    +#Query("Localized Compactness Factor")
    +#t = GetQueryOutputString()
    +#TestText("scf_06", t)
    +Query("Elliptical Compactness Factor")
    +t = GetQueryOutputString()
    +TestText("scf_07", t)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_surface_area_over_time.html b/2024-12-12-22:00/poodle_trunk_serial/queries_surface_area_over_time.html new file mode 100644 index 000000000..ecc1958a5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_surface_area_over_time.html @@ -0,0 +1,66 @@ + +Results for queries/surface_area_over_time.py + +

    Results of VisIt Regression Test - queries/surface_area_over_time

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    SA_OverTime_00000.000.00
    SA_OverTime_00010.000.00
    SA_OverTime_00020.000.00
    SA_OverTime_00030.000.00
    SA_OverTime_00040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_surface_area_over_time_py.html b/2024-12-12-22:00/poodle_trunk_serial/queries_surface_area_over_time_py.html new file mode 100644 index 000000000..6705d6f90 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_surface_area_over_time_py.html @@ -0,0 +1,144 @@ +queries/surface_area_over_time.py
    # ---------------------------------------------------------------------------- 
    +#  CLASSES: nightly
    +#
    +#  Test Case:  surface_area_over_time.py
    +#  Tests:      queries     - surface area over time
    +#
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Fri May 19 10:04:46 PDT 2017
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Tue Sep 22 13:24:42 PDT 2020
    +#    Use custom color for curves, as the color-cycling is non-deterministic
    +#    across runs.
    +#
    +# ----------------------------------------------------------------------------
    +
    +from visit_utils import *
    +
    +
    +def query_sa_stepwise(s, nts, qname):
    +    c_vals = []
    +    s_vals = []
    +    for ts in range(s, nts):
    +        TimeSliderSetState(ts)
    +        c_vals.append(query("Cycle"))
    +        s_vals.append(query(qname))
    +    f = open("_out_query_sa_stepwise.ult","w")
    +    f.write("# sa vs cycle\n")
    +    for i in range(len(c_vals)):
    +        f.write("%s %s\n" % (c_vals[i],s_vals[i]))
    +    f.close()
    +
    +def query_sa_q_over_time(s, nts, qname):
    +    TimeSliderSetState(0)
    +    QueryOverTime(qname, start_time=s, end_time=nts-1, stride=1)
    +
    +
    +def setup_PC_Iso_plot():
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "pressure")
    +    AddOperator("Isosurface")
    +    DrawPlots()
    +
    +def setup_boundary_plot():
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +    AddPlot("Boundary", "Material")
    +    DrawPlots()
    +
    +def setup_data_binning():
    +    SetActiveWindow(1)
    +    DeleteAllPlots()
    +
    +    # We *Should* be using data binning like this, but there is 
    +    # a bug with query-over-time, so we add the operator separately.
    +    #AddPlot("Pseudocolor", "operators/DataBinning/2D/quadmesh")
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    AddOperator("DataBinning")
    +    DataBinningAtts = DataBinningAttributes()
    +    DataBinningAtts.numDimensions = DataBinningAtts.Two
    +    DataBinningAtts.dim1BinBasedOn = DataBinningAtts.X
    +    DataBinningAtts.dim2BinBasedOn = DataBinningAtts.Y
    +    DataBinningAtts.reductionOperator = DataBinningAtts.Maximum
    +    DataBinningAtts.varForReduction = "pressure"
    +    SetOperatorOptions(DataBinningAtts, 1)
    +
    +    DrawPlots()
    +
    +
    +def run_queries(s, numSteps, qname = "3D Surface area"):
    +    query_sa_stepwise(s, numSteps, qname)
    +    query_sa_q_over_time(s, numSteps, qname)
    +    SetActiveWindow(2)
    +    ca1 = CurveAttributes(1)
    +    ca1.curveColorSource = ca1.Custom
    +    ca1.curveColor=(255, 0, 0)
    +    SetPlotOptions(ca1)
    +    OpenDatabase("_out_query_sa_stepwise.ult")
    +    AddPlot("Curve","sa vs cycle")
    +    DrawPlots()
    +    ca2 = CurveAttributes(1)
    +    ca2.curveColorSource = ca2.Custom
    +    ca2.curveColor=(0, 255, 0)
    +    SetPlotOptions(ca2)
    +
    +
    +def open_db():
    +    OpenDatabase(silo_data_path("wave.visit"))
    +
    +def clear_qot():
    +    SetActiveWindow(2)
    +    DeleteAllPlots()
    +    CloseDatabase("_out_query_sa_stepwise.ult")
    +    SetActiveWindow(1)
    +    TurnMaterialsOn()
    +
    +def main():
    +    open_db()
    +    setup_PC_Iso_plot()
    +    numSteps = TimeSliderGetNStates()
    +    run_queries(0, numSteps)
    +
    +    Test("SA_OverTime_0000")
    +
    +    clear_qot()
    +
    +    setup_boundary_plot()
    +    run_queries(0, numSteps)
    +    Test("SA_OverTime_0001")
    +
    +    clear_qot()
    +
    +    numSteps = 45
    +    m2 = "2 water"
    +    m1 = "1 barrier"
    +    TurnMaterialsOff(m2)
    +    run_queries(0, numSteps)
    +    Test("SA_OverTime_0002")
    +
    +    clear_qot()
    +
    +    TimeSliderSetState(1)
    +    TurnMaterialsOff(m1)
    +    run_queries(1, numSteps)
    +    Test("SA_OverTime_0003")
    +
    +
    +    clear_qot()
    +
    +    setup_data_binning()
    +    numSteps = TimeSliderGetNStates()
    +    run_queries(0, numSteps, "2D area")
    +    Test("SA_OverTime_0004")
    +
    +
    +
    +# Call the main function
    +TurnOnAllAnnotations()
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_variable_sum_volume.html b/2024-12-12-22:00/poodle_trunk_serial/queries_variable_sum_volume.html new file mode 100644 index 000000000..b3ff4dd6a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_variable_sum_volume.html @@ -0,0 +1,68 @@ + +Results for queries/variable_sum_volume.py + +

    Results of VisIt Regression Test - queries/variable_sum_volume

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    mat_10 modifications totalling 0 lines
    mat_40 modifications totalling 0 lines
    mat_90 modifications totalling 0 lines
    mat_140 modifications totalling 0 lines
    mat_190 modifications totalling 0 lines
    mat_490 modifications totalling 0 lines
    mat_1490 modifications totalling 0 lines
    vws_mult_dim0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_variable_sum_volume_py.html b/2024-12-12-22:00/poodle_trunk_serial/queries_variable_sum_volume_py.html new file mode 100644 index 000000000..0c4ed51b8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_variable_sum_volume_py.html @@ -0,0 +1,69 @@ +queries/variable_sum_volume.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  volume.py
    +#  Tests:      queries     - volumes of various material selected regions
    +#                          - weighted volume of dataset with cells of different
    +#                               dimension.
    +#
    +#  Programmer: Eddie Rusu
    +#  Date:       January 14, 2020
    +# ----------------------------------------------------------------------------
    +
    +OpenDatabase(data_path("silo_pdb_test_data/ucd3d.silo"))
    +AddPlot("Pseudocolor", "mesh_quality/ucdmesh3d/volume", 1, 1)
    +DrawPlots()
    +
    +SetQueryFloatFormat("%g")
    +# Material 1
    +TurnMaterialsOff(("4", "9"))
    +text = Query("Variable Sum")
    +TestText("mat_1", text)
    +
    +# Material 4
    +TurnMaterialsOff("1")
    +TurnMaterialsOn("4")
    +text = Query("Variable Sum")
    +TestText("mat_4", text)
    +
    +# Material 9
    +TurnMaterialsOff("4")
    +TurnMaterialsOn("9")
    +text = Query("Variable Sum")
    +TestText("mat_9", text)
    +
    +# Material 14
    +TurnMaterialsOff("9")
    +TurnMaterialsOn(("1", "4"))
    +text = Query("Variable Sum")
    +TestText("mat_14", text)
    +
    +# Material 19
    +TurnMaterialsOff("4")
    +TurnMaterialsOn("9")
    +text = Query("Variable Sum")
    +TestText("mat_19", text)
    +
    +# Material 49
    +TurnMaterialsOff("1")
    +TurnMaterialsOn("4")
    +text = Query("Variable Sum")
    +TestText("mat_49", text)
    +
    +# Material 149
    +TurnMaterialsOn()
    +text = Query("Variable Sum")
    +TestText("mat_149", text)
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("silo_pdb_test_data/ucd3d.silo"))
    +
    +# Weighted volume query on cells of different dimension
    +OpenDatabase(data_path("silo_pdb_test_data/multi_dim_cells.silo"))
    +AddPlot("Pseudocolor", "coordx", 1, 1)
    +DrawPlots()
    +text = Query("Weighted Variable Sum")
    +TestText("vws_mult_dim", text)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_watertight.html b/2024-12-12-22:00/poodle_trunk_serial/queries_watertight.html new file mode 100644 index 000000000..2cb6b34d3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_watertight.html @@ -0,0 +1,44 @@ + +Results for queries/watertight.py + +

    Results of VisIt Regression Test - queries/watertight

    + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    watertight_010 modifications totalling 0 lines
    watertight_020 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_watertight_py.html b/2024-12-12-22:00/poodle_trunk_serial/queries_watertight_py.html new file mode 100644 index 000000000..df58bee7e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_watertight_py.html @@ -0,0 +1,40 @@ +queries/watertight.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  watertight.py
    +#  Tests:      queries     - watertight 
    +#
    +#  Defect ID:  VisIt00006632
    +#
    +#  Programmer: Hank Childs
    +#  Date:       September 23, 2005
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +AddOperator("Isosurface")
    +i = IsosurfaceAttributes()
    +i.contourMethod = i.Value
    +i.contourValue = 0.48
    +SetOperatorOptions(i)
    +DrawPlots()
    +
    +Query("Watertight")
    +text = GetQueryOutputString()
    +TestText("watertight_01", text)
    +
    +i.contourValue = 0.5
    +SetOperatorOptions(i)
    +Query("Watertight")
    +text = GetQueryOutputString()
    +TestText("watertight_02", text)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_xrayimage.html b/2024-12-12-22:00/poodle_trunk_serial/queries_xrayimage.html new file mode 100644 index 000000000..1be85fb32 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_xrayimage.html @@ -0,0 +1,1870 @@ + +Results for queries/xrayimage.py + +

    Results of VisIt Regression Test - queries/xrayimage

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    xrayimage000.000.00
    xrayimage010 modifications totalling 0 lines
    xrayimage020.000.00
    xrayimage030.000.00
    xrayimage040 modifications totalling 0 lines
    xrayimage050.000.00
    xrayimage060 modifications totalling 0 lines
    xrayimage070.000.00
    xrayimage080 modifications totalling 0 lines
    xrayimage090.000.00
    xrayimage100 modifications totalling 0 lines
    xrayimage110.000.00
    xrayimage120 modifications totalling 0 lines
    xrayimage130.000.00
    xrayimage140 modifications totalling 0 lines
    xrayimage150.000.00
    xrayimage160 modifications totalling 0 lines
    xrayimage170.000.00
    xrayimage180 modifications totalling 0 lines
    xrayimage190.000.00
    xrayimage200 modifications totalling 0 lines
    xrayimage210.000.00
    xrayimage220 modifications totalling 0 lines
    xrayimage230.000.00
    xrayimage240 modifications totalling 0 lines
    xrayimage250.000.00
    xrayimage260 modifications totalling 0 lines
    xrayimage270.000.00
    xrayimage280.000.00
    xrayimage290 modifications totalling 0 lines
    xrayimage300.000.00
    xrayimage310 modifications totalling 0 lines
    xrayimage320 modifications totalling 0 lines
    Blueprint_HDF5_X_Ray_Output_image_topo_intensities_legacy0.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_intensities_legacy_slice00.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_intensities_legacy_slice10.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_intensities_legacy_slice20.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_path_length_legacy0.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_path_length_legacy_slice00.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_path_length_legacy_slice10.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_path_length_legacy_slice20.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_intensities_legacy0.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_intensities_legacy_slice00.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_intensities_legacy_slice10.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_intensities_legacy_slice20.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_path_length_legacy0.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_path_length_legacy_slice00.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_path_length_legacy_slice10.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_path_length_legacy_slice20.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_energy_reduced_topo_intensities_legacy0.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_energy_reduced_topo_path_length_legacy0.000.00
    Blueprint_HDF5_X_Ray_Output_spectra_topo_intensities_legacy0.000.00
    Blueprint_HDF5_X_Ray_Output_spectra_topo_path_length_legacy0.000.00
    xrayimage330 modifications totalling 0 lines
    Blueprint_HDF5_X_Ray_Output_image_topo_intensities_modern0.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_intensities_modern_slice00.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_intensities_modern_slice10.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_intensities_modern_slice20.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_path_length_modern0.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_path_length_modern_slice00.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_path_length_modern_slice10.000.00
    Blueprint_HDF5_X_Ray_Output_image_topo_path_length_modern_slice20.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_intensities_modern0.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_intensities_modern_slice00.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_intensities_modern_slice10.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_intensities_modern_slice20.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_path_length_modern0.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_path_length_modern_slice00.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_path_length_modern_slice10.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_topo_path_length_modern_slice20.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_energy_reduced_topo_intensities_modern0.000.00
    Blueprint_HDF5_X_Ray_Output_spatial_energy_reduced_topo_path_length_modern0.000.00
    Blueprint_HDF5_X_Ray_Output_spectra_topo_intensities_modern0.000.00
    Blueprint_HDF5_X_Ray_Output_spectra_topo_path_length_modern0.000.00
    Blueprint_HDF5_X_Ray_Output1_Time
     4.8 .eq. 4.8 (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_Cycle
     48 .eq. 48 (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_xray_view
     "" .eq. "" : True
    Blueprint_HDF5_X_Ray_Output1_xray_query
     "" .eq. "" : True
    Blueprint_HDF5_X_Ray_Output1_xray_data
     "" .eq. "" : True
    Blueprint_HDF5_X_Ray_Output1_IntensityUnits
     "intensity units" .eq. "intensity units" : True
    Blueprint_HDF5_X_Ray_Output1_PathLengthUnits
     "path length metadata" .eq. "path length metadata" : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents0
     [0.0, 0.0] .eq. [0.0, 0.0]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents1
     [0.05, 0.05] .eq. [0.05, 0.05]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents2
     [0.1, 0.1] .eq. [0.1, 0.1]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents3
     [15.0, 10.0] .eq. [15.0, 10.0]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_EnergyGroupBounds
     [0. 2. 6. 8.] .eq. [0, 2, 6, 8]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_spatial_units
     "False" .eq. "False" : True
    Blueprint_HDF5_X_Ray_Output1_data_XLabels
     "width" .eq. "width" : True
    Blueprint_HDF5_X_Ray_Output1_data_YLabels
     "height" .eq. "height" : True
    Blueprint_HDF5_X_Ray_Output1_data_ZLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_HDF5_X_Ray_Output1_data_ser_XLabels
     "width" .eq. "width" : True
    Blueprint_HDF5_X_Ray_Output1_data_ser_YLabels
     "height" .eq. "height" : True
    Blueprint_HDF5_X_Ray_Output1_data_spectra_XLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_HDF5_X_Ray_Output1_Time
     4.8 .eq. 4.8 (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_Cycle
     48 .eq. 48 (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_xray_view
     "" .eq. "" : True
    Blueprint_HDF5_X_Ray_Output1_xray_query
     "" .eq. "" : True
    Blueprint_HDF5_X_Ray_Output1_xray_data
     "" .eq. "" : True
    Blueprint_HDF5_X_Ray_Output1_IntensityUnits
     "no units provided" .eq. "no units provided" : True
    Blueprint_HDF5_X_Ray_Output1_PathLengthUnits
     "no info provided" .eq. "no info provided" : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents0
     [0.0, 0.0] .eq. [0.0, 0.0]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents1
     [0.05, 0.05] .eq. [0.05, 0.05]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents2
     [0.1, 0.1] .eq. [0.1, 0.1]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents3
     [15.0, 10.0] .eq. [15.0, 10.0]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_EnergyGroupInfo
     "Energy group bounds size mismatch: provided 3 bounds, but 2 in query results." .eq. "Energy group bounds size mismatch: provided 3 bounds, but 2 in query results." : True
    Blueprint_HDF5_X_Ray_Output1_data_EnergyGroupBounds
     [0.0, 1.0] .eq. [0, 1]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_spatial_units
     "False" .eq. "False" : True
    Blueprint_HDF5_X_Ray_Output1_data_XLabels
     "width" .eq. "width" : True
    Blueprint_HDF5_X_Ray_Output1_data_YLabels
     "height" .eq. "height" : True
    Blueprint_HDF5_X_Ray_Output1_data_ZLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_HDF5_X_Ray_Output1_data_ser_XLabels
     "width" .eq. "width" : True
    Blueprint_HDF5_X_Ray_Output1_data_ser_YLabels
     "height" .eq. "height" : True
    Blueprint_HDF5_X_Ray_Output1_data_spectra_XLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_HDF5_X_Ray_Output1_Time
     4.8 .eq. 4.8 (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_Cycle
     48 .eq. 48 (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_xray_view
     "" .eq. "" : True
    Blueprint_HDF5_X_Ray_Output1_xray_query
     "" .eq. "" : True
    Blueprint_HDF5_X_Ray_Output1_xray_data
     "" .eq. "" : True
    Blueprint_HDF5_X_Ray_Output1_IntensityUnits
     "no units provided" .eq. "no units provided" : True
    Blueprint_HDF5_X_Ray_Output1_PathLengthUnits
     "no info provided" .eq. "no info provided" : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents0
     [0.0, 0.0] .eq. [0.0, 0.0]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents1
     [0.05, 0.05] .eq. [0.05, 0.05]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents2
     [0.1, 0.1] .eq. [0.1, 0.1]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_SpatialExtents3
     [15.0, 10.0] .eq. [15.0, 10.0]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_data_EnergyGroupInfo
     "Energy group bounds not provided." .eq. "Energy group bounds not provided." : True
    Blueprint_HDF5_X_Ray_Output1_data_EnergyGroupBounds
     [0.0, 1.0] .eq. [0, 1]
     (prec=5) : True
    Blueprint_HDF5_X_Ray_Output1_spatial_units
     "False" .eq. "False" : True
    Blueprint_HDF5_X_Ray_Output1_data_XLabels
     "width" .eq. "width" : True
    Blueprint_HDF5_X_Ray_Output1_data_YLabels
     "height" .eq. "height" : True
    Blueprint_HDF5_X_Ray_Output1_data_ZLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_HDF5_X_Ray_Output1_data_ser_XLabels
     "width" .eq. "width" : True
    Blueprint_HDF5_X_Ray_Output1_data_ser_YLabels
     "height" .eq. "height" : True
    Blueprint_HDF5_X_Ray_Output1_data_spectra_XLabels
     "energy_group" .eq. "energy_group" : True
    xrayimage340 modifications totalling 0 lines
    Blueprint_JSON_X_Ray_Output_image_topo_intensities_legacy0.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_intensities_legacy_slice00.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_intensities_legacy_slice10.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_intensities_legacy_slice20.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_path_length_legacy0.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_path_length_legacy_slice00.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_path_length_legacy_slice10.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_path_length_legacy_slice20.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_intensities_legacy0.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_intensities_legacy_slice00.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_intensities_legacy_slice10.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_intensities_legacy_slice20.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_path_length_legacy0.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_path_length_legacy_slice00.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_path_length_legacy_slice10.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_path_length_legacy_slice20.000.00
    Blueprint_JSON_X_Ray_Output_spatial_energy_reduced_topo_intensities_legacy0.000.00
    Blueprint_JSON_X_Ray_Output_spatial_energy_reduced_topo_path_length_legacy0.000.00
    Blueprint_JSON_X_Ray_Output_spectra_topo_intensities_legacy0.000.00
    Blueprint_JSON_X_Ray_Output_spectra_topo_path_length_legacy0.000.00
    xrayimage350 modifications totalling 0 lines
    Blueprint_JSON_X_Ray_Output_image_topo_intensities_modern0.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_intensities_modern_slice00.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_intensities_modern_slice10.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_intensities_modern_slice20.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_path_length_modern0.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_path_length_modern_slice00.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_path_length_modern_slice10.000.00
    Blueprint_JSON_X_Ray_Output_image_topo_path_length_modern_slice20.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_intensities_modern0.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_intensities_modern_slice00.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_intensities_modern_slice10.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_intensities_modern_slice20.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_path_length_modern0.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_path_length_modern_slice00.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_path_length_modern_slice10.000.00
    Blueprint_JSON_X_Ray_Output_spatial_topo_path_length_modern_slice20.000.00
    Blueprint_JSON_X_Ray_Output_spatial_energy_reduced_topo_intensities_modern0.000.00
    Blueprint_JSON_X_Ray_Output_spatial_energy_reduced_topo_path_length_modern0.000.00
    Blueprint_JSON_X_Ray_Output_spectra_topo_intensities_modern0.000.00
    Blueprint_JSON_X_Ray_Output_spectra_topo_path_length_modern0.000.00
    Blueprint_JSON_X_Ray_Output1_Time
     4.8 .eq. 4.8 (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_Cycle
     48 .eq. 48 (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_xray_view
     "" .eq. "" : True
    Blueprint_JSON_X_Ray_Output1_xray_query
     "" .eq. "" : True
    Blueprint_JSON_X_Ray_Output1_xray_data
     "" .eq. "" : True
    Blueprint_JSON_X_Ray_Output1_IntensityUnits
     "intensity units" .eq. "intensity units" : True
    Blueprint_JSON_X_Ray_Output1_PathLengthUnits
     "path length metadata" .eq. "path length metadata" : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents0
     [0.0, 0.0] .eq. [0.0, 0.0]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents1
     [0.05, 0.05] .eq. [0.05, 0.05]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents2
     [0.1, 0.1] .eq. [0.1, 0.1]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents3
     [15.0, 10.0] .eq. [15.0, 10.0]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_EnergyGroupBounds
     [0. 2. 6. 8.] .eq. [0, 2, 6, 8]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_spatial_units
     "False" .eq. "False" : True
    Blueprint_JSON_X_Ray_Output1_data_XLabels
     "width" .eq. "width" : True
    Blueprint_JSON_X_Ray_Output1_data_YLabels
     "height" .eq. "height" : True
    Blueprint_JSON_X_Ray_Output1_data_ZLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_JSON_X_Ray_Output1_data_ser_XLabels
     "width" .eq. "width" : True
    Blueprint_JSON_X_Ray_Output1_data_ser_YLabels
     "height" .eq. "height" : True
    Blueprint_JSON_X_Ray_Output1_data_spectra_XLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_JSON_X_Ray_Output1_Time
     4.8 .eq. 4.8 (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_Cycle
     48 .eq. 48 (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_xray_view
     "" .eq. "" : True
    Blueprint_JSON_X_Ray_Output1_xray_query
     "" .eq. "" : True
    Blueprint_JSON_X_Ray_Output1_xray_data
     "" .eq. "" : True
    Blueprint_JSON_X_Ray_Output1_IntensityUnits
     "no units provided" .eq. "no units provided" : True
    Blueprint_JSON_X_Ray_Output1_PathLengthUnits
     "no info provided" .eq. "no info provided" : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents0
     [0.0, 0.0] .eq. [0.0, 0.0]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents1
     [0.05, 0.05] .eq. [0.05, 0.05]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents2
     [0.1, 0.1] .eq. [0.1, 0.1]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents3
     [15.0, 10.0] .eq. [15.0, 10.0]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_EnergyGroupInfo
     "Energy group bounds size mismatch: provided 3 bounds, but 2 in query results." .eq. "Energy group bounds size mismatch: provided 3 bounds, but 2 in query results." : True
    Blueprint_JSON_X_Ray_Output1_data_EnergyGroupBounds
     [0.0, 1.0] .eq. [0, 1]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_spatial_units
     "False" .eq. "False" : True
    Blueprint_JSON_X_Ray_Output1_data_XLabels
     "width" .eq. "width" : True
    Blueprint_JSON_X_Ray_Output1_data_YLabels
     "height" .eq. "height" : True
    Blueprint_JSON_X_Ray_Output1_data_ZLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_JSON_X_Ray_Output1_data_ser_XLabels
     "width" .eq. "width" : True
    Blueprint_JSON_X_Ray_Output1_data_ser_YLabels
     "height" .eq. "height" : True
    Blueprint_JSON_X_Ray_Output1_data_spectra_XLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_JSON_X_Ray_Output1_Time
     4.8 .eq. 4.8 (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_Cycle
     48 .eq. 48 (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_xray_view
     "" .eq. "" : True
    Blueprint_JSON_X_Ray_Output1_xray_query
     "" .eq. "" : True
    Blueprint_JSON_X_Ray_Output1_xray_data
     "" .eq. "" : True
    Blueprint_JSON_X_Ray_Output1_IntensityUnits
     "no units provided" .eq. "no units provided" : True
    Blueprint_JSON_X_Ray_Output1_PathLengthUnits
     "no info provided" .eq. "no info provided" : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents0
     [0.0, 0.0] .eq. [0.0, 0.0]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents1
     [0.05, 0.05] .eq. [0.05, 0.05]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents2
     [0.1, 0.1] .eq. [0.1, 0.1]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_SpatialExtents3
     [15.0, 10.0] .eq. [15.0, 10.0]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_data_EnergyGroupInfo
     "Energy group bounds not provided." .eq. "Energy group bounds not provided." : True
    Blueprint_JSON_X_Ray_Output1_data_EnergyGroupBounds
     [0.0, 1.0] .eq. [0, 1]
     (prec=5) : True
    Blueprint_JSON_X_Ray_Output1_spatial_units
     "False" .eq. "False" : True
    Blueprint_JSON_X_Ray_Output1_data_XLabels
     "width" .eq. "width" : True
    Blueprint_JSON_X_Ray_Output1_data_YLabels
     "height" .eq. "height" : True
    Blueprint_JSON_X_Ray_Output1_data_ZLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_JSON_X_Ray_Output1_data_ser_XLabels
     "width" .eq. "width" : True
    Blueprint_JSON_X_Ray_Output1_data_ser_YLabels
     "height" .eq. "height" : True
    Blueprint_JSON_X_Ray_Output1_data_spectra_XLabels
     "energy_group" .eq. "energy_group" : True
    xrayimage360 modifications totalling 0 lines
    Blueprint_YAML_X_Ray_Output_image_topo_intensities_legacy0.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_intensities_legacy_slice00.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_intensities_legacy_slice10.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_intensities_legacy_slice20.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_path_length_legacy0.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_path_length_legacy_slice00.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_path_length_legacy_slice10.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_path_length_legacy_slice20.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_intensities_legacy0.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_intensities_legacy_slice00.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_intensities_legacy_slice10.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_intensities_legacy_slice20.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_path_length_legacy0.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_path_length_legacy_slice00.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_path_length_legacy_slice10.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_path_length_legacy_slice20.000.00
    Blueprint_YAML_X_Ray_Output_spatial_energy_reduced_topo_intensities_legacy0.000.00
    Blueprint_YAML_X_Ray_Output_spatial_energy_reduced_topo_path_length_legacy0.000.00
    Blueprint_YAML_X_Ray_Output_spectra_topo_intensities_legacy0.000.00
    Blueprint_YAML_X_Ray_Output_spectra_topo_path_length_legacy0.000.00
    xrayimage370 modifications totalling 0 lines
    Blueprint_YAML_X_Ray_Output_image_topo_intensities_modern0.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_intensities_modern_slice00.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_intensities_modern_slice10.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_intensities_modern_slice20.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_path_length_modern0.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_path_length_modern_slice00.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_path_length_modern_slice10.000.00
    Blueprint_YAML_X_Ray_Output_image_topo_path_length_modern_slice20.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_intensities_modern0.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_intensities_modern_slice00.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_intensities_modern_slice10.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_intensities_modern_slice20.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_path_length_modern0.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_path_length_modern_slice00.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_path_length_modern_slice10.000.00
    Blueprint_YAML_X_Ray_Output_spatial_topo_path_length_modern_slice20.000.00
    Blueprint_YAML_X_Ray_Output_spatial_energy_reduced_topo_intensities_modern0.000.00
    Blueprint_YAML_X_Ray_Output_spatial_energy_reduced_topo_path_length_modern0.000.00
    Blueprint_YAML_X_Ray_Output_spectra_topo_intensities_modern0.000.00
    Blueprint_YAML_X_Ray_Output_spectra_topo_path_length_modern0.000.00
    Blueprint_YAML_X_Ray_Output1_Time
     4.8 .eq. 4.8 (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_Cycle
     48 .eq. 48 (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_xray_view
     "" .eq. "" : True
    Blueprint_YAML_X_Ray_Output1_xray_query
     "" .eq. "" : True
    Blueprint_YAML_X_Ray_Output1_xray_data
     "" .eq. "" : True
    Blueprint_YAML_X_Ray_Output1_IntensityUnits
     "intensity units" .eq. "intensity units" : True
    Blueprint_YAML_X_Ray_Output1_PathLengthUnits
     "path length metadata" .eq. "path length metadata" : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents0
     [0.0, 0.0] .eq. [0.0, 0.0]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents1
     [0.05, 0.05] .eq. [0.05, 0.05]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents2
     [0.1, 0.1] .eq. [0.1, 0.1]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents3
     [15.0, 10.0] .eq. [15.0, 10.0]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_EnergyGroupBounds
     [0. 2. 6. 8.] .eq. [0, 2, 6, 8]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_spatial_units
     "False" .eq. "False" : True
    Blueprint_YAML_X_Ray_Output1_data_XLabels
     "width" .eq. "width" : True
    Blueprint_YAML_X_Ray_Output1_data_YLabels
     "height" .eq. "height" : True
    Blueprint_YAML_X_Ray_Output1_data_ZLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_YAML_X_Ray_Output1_data_ser_XLabels
     "width" .eq. "width" : True
    Blueprint_YAML_X_Ray_Output1_data_ser_YLabels
     "height" .eq. "height" : True
    Blueprint_YAML_X_Ray_Output1_data_spectra_XLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_YAML_X_Ray_Output1_Time
     4.8 .eq. 4.8 (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_Cycle
     48 .eq. 48 (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_xray_view
     "" .eq. "" : True
    Blueprint_YAML_X_Ray_Output1_xray_query
     "" .eq. "" : True
    Blueprint_YAML_X_Ray_Output1_xray_data
     "" .eq. "" : True
    Blueprint_YAML_X_Ray_Output1_IntensityUnits
     "no units provided" .eq. "no units provided" : True
    Blueprint_YAML_X_Ray_Output1_PathLengthUnits
     "no info provided" .eq. "no info provided" : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents0
     [0.0, 0.0] .eq. [0.0, 0.0]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents1
     [0.05, 0.05] .eq. [0.05, 0.05]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents2
     [0.1, 0.1] .eq. [0.1, 0.1]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents3
     [15.0, 10.0] .eq. [15.0, 10.0]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_EnergyGroupInfo
     "Energy group bounds size mismatch: provided 3 bounds, but 2 in query results." .eq. "Energy group bounds size mismatch: provided 3 bounds, but 2 in query results." : True
    Blueprint_YAML_X_Ray_Output1_data_EnergyGroupBounds
     [0.0, 1.0] .eq. [0, 1]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_spatial_units
     "False" .eq. "False" : True
    Blueprint_YAML_X_Ray_Output1_data_XLabels
     "width" .eq. "width" : True
    Blueprint_YAML_X_Ray_Output1_data_YLabels
     "height" .eq. "height" : True
    Blueprint_YAML_X_Ray_Output1_data_ZLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_YAML_X_Ray_Output1_data_ser_XLabels
     "width" .eq. "width" : True
    Blueprint_YAML_X_Ray_Output1_data_ser_YLabels
     "height" .eq. "height" : True
    Blueprint_YAML_X_Ray_Output1_data_spectra_XLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_YAML_X_Ray_Output1_Time
     4.8 .eq. 4.8 (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_Cycle
     48 .eq. 48 (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_xray_view
     "" .eq. "" : True
    Blueprint_YAML_X_Ray_Output1_xray_query
     "" .eq. "" : True
    Blueprint_YAML_X_Ray_Output1_xray_data
     "" .eq. "" : True
    Blueprint_YAML_X_Ray_Output1_IntensityUnits
     "no units provided" .eq. "no units provided" : True
    Blueprint_YAML_X_Ray_Output1_PathLengthUnits
     "no info provided" .eq. "no info provided" : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents0
     [0.0, 0.0] .eq. [0.0, 0.0]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents1
     [0.05, 0.05] .eq. [0.05, 0.05]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents2
     [0.1, 0.1] .eq. [0.1, 0.1]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_SpatialExtents3
     [15.0, 10.0] .eq. [15.0, 10.0]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_data_EnergyGroupInfo
     "Energy group bounds not provided." .eq. "Energy group bounds not provided." : True
    Blueprint_YAML_X_Ray_Output1_data_EnergyGroupBounds
     [0.0, 1.0] .eq. [0, 1]
     (prec=5) : True
    Blueprint_YAML_X_Ray_Output1_spatial_units
     "False" .eq. "False" : True
    Blueprint_YAML_X_Ray_Output1_data_XLabels
     "width" .eq. "width" : True
    Blueprint_YAML_X_Ray_Output1_data_YLabels
     "height" .eq. "height" : True
    Blueprint_YAML_X_Ray_Output1_data_ZLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_YAML_X_Ray_Output1_data_ser_XLabels
     "width" .eq. "width" : True
    Blueprint_YAML_X_Ray_Output1_data_ser_YLabels
     "height" .eq. "height" : True
    Blueprint_YAML_X_Ray_Output1_data_spectra_XLabels
     "energy_group" .eq. "energy_group" : True
    Blueprint_Positive_Detector_width
     22.393226323783825 .eq. 22.3932263237838 (prec=5) : True
    Blueprint_Positive_Detector_height
     16.79491924231027 .eq. 16.7949192423103 (prec=5) : True
    Blueprint_HDF5_Imaging_Planes00.000.00
    Blueprint_HDF5_Imaging_Planes10.000.00
    NonSquare_Pixels_Ray_trace_setup_10.000.00
    NonSquare_Pixels_Ray_trace_setup_20.000.00
    NonSquare_Pixels_Ray_trace_setup_30.000.00
    NonSquare_Pixels_Ray_trace_setup_40.000.00
    NonSquare_Pixels_Ray_trace_setup_50.000.00
    NonSquare_Pixels_Ray_trace_setup_60.000.00
    NonSquare_Pixels_Ray_trace_setup_70.000.00
    NonSquare_Pixels_Ray_trace_setup_80.000.00
    NonSquare_Pixels_hi_res_images10.000.00
    NonSquare_Pixels_hi_res_images20.000.00
    NonSquare_Pixels_hi_res_images30.000.00
    NonSquare_Pixels_hi_res_images40.000.00
    NonSquare_Pixels_hi_res_images50.000.00
    NonSquare_Pixels_hi_res_images60.000.00
    NonSquare_Pixels_hi_res_images70.000.00
    NonSquare_Pixels_hi_res_images80.000.00
    NonSquare_Pixels_low_res_mesh_plots10.000.00
    NonSquare_Pixels_low_res_mesh_plots20.000.00
    NonSquare_Pixels_low_res_mesh_plots30.000.00
    NonSquare_Pixels_low_res_mesh_plots40.000.00
    NonSquare_Pixels_low_res_mesh_plots50.000.00
    NonSquare_Pixels_low_res_mesh_plots60.000.00
    NonSquare_Pixels_low_res_mesh_plots70.000.00
    NonSquare_Pixels_low_res_mesh_plots80.000.00
    xrayimage38
     "None" .eq. "None" : True
    xrayimage39
     "None" .eq. "None" : True
    Test_filenames_for_jpeg_outputs0 modifications totalling 0 lines
    Test_filenames_for_png_outputs0 modifications totalling 0 lines
    Test_filenames_for_tif_outputs0 modifications totalling 0 lines
    Test_filenames_for_bof_outputs0 modifications totalling 0 lines
    Test_filenames_for_bov_outputs0 modifications totalling 0 lines
    Test_filenames_for_json_outputs0 modifications totalling 0 lines
    Test_filenames_for_hdf5_outputs0 modifications totalling 0 lines
    Test_filenames_for_yaml_outputs0 modifications totalling 0 lines
    Test_filenames_for_family0_outputs0 modifications totalling 0 lines
    Test_filenames_for_family1_outputs0 modifications totalling 0 lines
    detect and warn numpy array as query param
     "True" .eq. "True" : True
    numpy array converted to list works as query param
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/queries_xrayimage_py.html b/2024-12-12-22:00/poodle_trunk_serial/queries_xrayimage_py.html new file mode 100644 index 000000000..a5368dfab --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/queries_xrayimage_py.html @@ -0,0 +1,1341 @@ +queries/xrayimage.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  xrayimage.py
    +#  Tests:      queries     - xray imagel
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       July 13, 2010
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Jul 14 10:44:55 PDT 2011
    +#    Change most of code to use python dictionary to pass query parameters.
    +#    First call to 'Query' still tests old-style argument passing.
    +#    Second call to 'Query' creates a Python dictionary from scratch and
    +#    uses that.  Prior to third call to Query, retrieve default dictionary via
    +#    GetQueryParameters.  All subsequent calls to Query modify that dictionary 
    +#    object as necessary and pass it.
    +#
    +#    Kathleen Biagas, Wed Oct 17 14:25:05 PDT 2012
    +#    Show usage of new 'up_vector' parameter.
    +# 
    +#    Justin Privitera, Tue Jun 14 10:02:21 PDT 2022
    +#    Change tests to reflect new ability to send output directory to query.
    +# 
    +#    Justin Privitera, Wed Jun 15 16:43:34 PDT 2022
    +#    Added tests for new blueprint output.
    +# 
    +#    Justin Privitera, Wed Jul 20 13:54:06 PDT 2022
    +#    Added query output msg tests and tests for query errors.
    +# 
    +#    Justin Privitera, Thu Sep  8 16:29:06 PDT 2022
    +#    Added new tests for blueprint output metadata.
    +# 
    +#    Justin Privitera, Tue Sep 27 10:52:59 PDT 2022
    +#    Changed names of most output files to reflect new naming conventions.
    +#    Added tests for filenames, all output types, and result messages.
    +# 
    +#    Justin Privitera, Fri Sep 30 15:54:40 PDT 2022
    +#    Changed location of temp output files.
    +#    os.remove is gone.
    +#    tmp/baddir is gone, replaced.
    +#    These changes were made so the tests no longer crash on windows.
    +# 
    +#    Justin Privitera, Tue Nov 15 14:54:35 PST 2022
    +#    Added new tests for additional blueprint output metadata as well as
    +#    imaging plane topologies.
    +# 
    +#    Justin Privitera, Tue Nov 22 14:56:04 PST 2022
    +#    Updated numbering on later tests.
    +#    Reorganized blueprint tests so they use a function. That function also
    +#    uses new and old query calls, doubling the number of blueprint tests.
    +#    It also tests energy group bin output for hdf5.
    +# 
    +#    Justin Privitera, Mon Nov 28 15:38:25 PST 2022
    +#    Renamed energy group bins to energy group bounds.
    +# 
    +#    Justin Privitera, Wed Nov 30 10:41:17 PST 2022
    +#    Added tests for always positive detector height and width in blueprint
    +#    metadata.
    +# 
    +#    Justin Privitera, Wed Nov 30 17:43:48 PST 2022
    +#    Added tests for piping the units through the query.
    +# 
    +#    Justin Privitera, Thu Dec  1 15:29:48 PST 2022
    +#    Tests for new location of units in blueprint output.
    +# 
    +#    Justin Privitera, Wed Dec  7 16:16:16 PST 2022
    +#    Added tests for the blueprint ray output.
    +# 
    +#    Justin Privitera, Mon Dec 12 13:28:55 PST 2022
    +#    Reworked some of the blueprint output tests to reflect changes in 
    +#    output metadata.
    +#    Added new tests for path length and spatial extent images.
    +# 
    +#    Justin Privitera, Tue Feb 14 17:02:43 PST 2023
    +#    Change all metadata to use pot_hole_case instead of camelCase.
    +#    Add test for image_topo_order_of_domain_variables.
    +#
    +#    Justin Privitera, Wed Oct 12 11:38:11 PDT 2022
    +#    Changed output type for many tests since bmp output type is removed.
    +# 
    +#    Justin Privitera, Fri Mar 10 19:06:49 PST 2023
    +#    Added tests for new spatial energy reduced topo and fields.
    +# 
    +#    Justin Privitera, Wed Mar 15 17:51:13 PDT 2023
    +#    Added tests for new spectra topo and fields.
    +# 
    +#    Justin Privitera, Wed Mar 22 16:09:52 PDT 2023
    +#     - Added logic for setting up and tearing down blueprint output type 
    +#    tests.
    +#     - Added new query choices for blueprint output that can be passed down 
    +#    into the various blueprint tests.
    +#     - Created a new class for storing these query options and passing them 
    +#    around.
    +#     - Added a new function for making slices of plots to test specific 
    +#    energy group bins.
    +#     - More consistent query args for blueprint tests
    +#     - Added slice tests for specific energy group bins.
    +# 
    +#    Justin Privitera, Wed Apr 26 14:07:01 PDT 2023
    +#    The new conduit we are using for VisIt (0.8.7) can read in simple yaml
    +#    and json (w/o bp index?) (bug was fixed) so I am updating the x ray query
    +#    tests to take advantage of this and add tests back in for yaml and json
    +#    cases.
    +#
    +#    Justin Privitera, Fri Jun 16 17:17:14 PDT 2023
    +#    Added tests for the new view width override and non square pixels 
    +#    settings.
    +# 
    +#    Justin Privitera, Fri Jul 14 17:33:07 PDT 2023
    +#    Updated tests to reflect the new reality that the complete camera spec
    +#    is now the default.
    +# 
    +#    Justin Privitera, Tue Aug 22 12:30:01 PDT 2023
    +#    Sort filename list produced by os.listdir to prevent test suite failures.
    +# 
    +#    Justin Privitera, Mon Oct 30 14:45:55 PDT 2023
    +#    Use conduit node diff to compare query results to baselines.
    +# 
    +#    Justin Privitera, Tue Oct 31 13:20:23 PDT 2023
    +#    All output folders are created at the top of the file now.
    +#    Several visit expressions have been cleaned up or removed entirely.
    +#    Code cleanup for readability.
    +#    Lowered pixel resolution for query results where we are not testing the
    +#    images.
    +#    Use the python dictionary returned by the query to tell if the query was
    +#    successful or not.
    +# 
    +#    Justin Privitera, Wed Nov 29 15:10:59 PST 2023
    +#    Use numpy.int64 to cast to wide types for diff.
    +# ----------------------------------------------------------------------------
    +
    +import os
    +import conduit
    +import numpy
    +
    +if not os.path.isdir(out_path("current","queries")):
    +    os.mkdir(out_path("current","queries"))
    +out_base = out_path("current","queries","xrayimage")
    +if not os.path.isdir(out_base):
    +    os.mkdir(out_base)
    +
    +outdir_set = pjoin(TestEnv.params["run_dir"], "testdir")
    +if not os.path.isdir(outdir_set):
    +    os.mkdir(outdir_set)
    +
    +conduit_dir_hdf5 = pjoin(outdir_set, "hdf5")
    +if not os.path.isdir(conduit_dir_hdf5):
    +    os.mkdir(conduit_dir_hdf5)
    +conduit_dir_json = pjoin(outdir_set, "json")
    +if not os.path.isdir(conduit_dir_json):
    +    os.mkdir(conduit_dir_json)
    +conduit_dir_yaml = pjoin(outdir_set, "yaml")
    +if not os.path.isdir(conduit_dir_yaml):
    +    os.mkdir(conduit_dir_yaml)
    +conduit_dir_imaging_planes0 = pjoin(outdir_set, "imaging_planes0")
    +if not os.path.isdir(conduit_dir_imaging_planes0):
    +    os.mkdir(conduit_dir_imaging_planes0)
    +conduit_dir_imaging_planes1 = pjoin(outdir_set, "imaging_planes1")
    +if not os.path.isdir(conduit_dir_imaging_planes1):
    +    os.mkdir(conduit_dir_imaging_planes1)
    +conduit_dir_detector_dims = pjoin(outdir_set, "detector_dims")
    +if not os.path.isdir(conduit_dir_detector_dims):
    +    os.mkdir(conduit_dir_detector_dims)
    +conduit_dir_nonsquare_pixels = pjoin(outdir_set, "nonsquare_pix")
    +if not os.path.isdir(conduit_dir_nonsquare_pixels):
    +    os.mkdir(conduit_dir_nonsquare_pixels)
    +
    +dir_dne = pjoin(outdir_set, "doesnotexist")
    +if os.path.isdir(dir_dne):
    +    os.rmdir(dir_dne)
    +
    +# os.chmod does not work on windows
    +if not platform.system() == "Windows":
    +    outdir_bad = pjoin(outdir_set, "baddir")
    +    if not os.path.isdir(outdir_bad):
    +        os.mkdir(outdir_bad)
    +    os.chmod(outdir_bad, 0o444)
    +
    +output_types = ["jpeg", "png", "tif", "bof", "bov", "json", "hdf5", "yaml"]
    +for i in range(0, len(output_types)):
    +    outdir_set_otype = outdir_set + "_" + output_types[i]
    +    if not os.path.isdir(outdir_set_otype):
    +        os.mkdir(outdir_set_otype)
    +
    +family_options = [0, 1]
    +for i in range(0, len(family_options)):
    +    outdir_set_family = outdir_set + "_family_" + str(family_options[i])
    +    if not os.path.isdir(outdir_set_family):
    +        os.mkdir(outdir_set_family)
    +
    +#
    +# Test a single block structured grid with scalars.
    +#
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +# old style argument passing
    +Query("XRay Image", 1, ".", 1, 0.0, 2.5, 10.0, 0, 0, 10., 10., 300, 300, ("d", "p"))
    +
    +os.rename("output.png", out_path(out_base,"xrayimage00.png"))
    +Test("xrayimage00", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage01", s)
    +
    +#
    +# Test a multi block structured grid with an array variable.
    +#
    +DefineArrayExpression("da", "array_compose(d,d)")
    +DefineArrayExpression("pa", "array_compose(p,p)")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("multi_curv3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +# create our own dictionary
    +params = dict(output_type=1,
    +              output_dir=".",
    +              divide_emis_by_absorb=1,
    +              origin=(0.0, 2.5, 10.0),
    +              up_vector=(0, 1, 0),
    +              theta=0,
    +              phi=0,
    +              width = 10.,
    +              height=10.,
    +              image_size=(300, 300),
    +              vars=("da", "pa"))
    +Query("XRay Image", params)
    +
    +os.rename("output.00.png", out_path(out_base,"xrayimage02.png"))
    +os.rename("output.01.png", out_path(out_base,"xrayimage03.png"))
    +
    +Test("xrayimage02", 0, 1)
    +Test("xrayimage03", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage04", s)
    +
    +#
    +# Test a 2d structured grid with scalars.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +params = dict()
    +params['image_size'] = (300, 300)
    +params['divide_emis_by_absorb'] = 1
    +params['width'] = 10.
    +params['height'] = 10.
    +params['vars'] = ("d", "p")
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage05.png"))
    +Test("xrayimage05", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage06", s)
    +
    +params['theta'] = 90
    +params['phi'] =  0
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage07.png"))
    +Test("xrayimage07", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage08", s)
    +
    +#
    +# Test an unstructured grid with scalars.
    +#
    +DefineScalarExpression("u1", 'recenter(((u+10.)*0.01), "zonal")')
    +DefineScalarExpression("v1", 'recenter(((v+10.)*0.01*matvf(mat1,1)), "zonal")')
    +DefineScalarExpression("v2", 'recenter(((v+10.)*0.01*matvf(mat1,2)), "zonal")')
    +DefineScalarExpression("v3", 'recenter(((v+10.)*0.01*matvf(mat1,3)), "zonal")')
    +DefineScalarExpression("v4", 'recenter(((v+10.)*0.01*matvf(mat1,4)), "zonal")')
    +DefineScalarExpression("w1", 'recenter(((w+10.)*0.01), "zonal")')
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +# Do tets.
    +params['theta'] = 0
    +params['phi'] = 0
    +params['width'] = 1.
    +params['height'] = 1.
    +params['vars'] = ("w1", "v1")
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage09.png"))
    +Test("xrayimage09", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage10", s)
    +
    +params['theta'] = 90
    +params['width'] = 4.
    +params['height'] = 4.
    +
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage11.png"))
    +Test("xrayimage11", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage12", s)
    +
    +# Do pyramids.
    +params['theta'] = 0
    +params['vars'] = ("w1", "v2")
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage13.png"))
    +Test("xrayimage13", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage14", s)
    +
    +params['theta'] = 90
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage15.png"))
    +Test("xrayimage15", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage16", s)
    +
    +# Do wedges.
    +params['theta'] = 0
    +params['width'] = 8.
    +params['height'] = 8.
    +params['vars'] = ("w1", "v3")
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage17.png"))
    +Test("xrayimage17", 0, 1)
    +
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage18", s)
    +
    +params['theta'] = 90
    +params['width'] = 20.
    +params['height'] = 20.
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage19.png"))
    +Test("xrayimage19", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage20", s)
    +
    +# Do hexes.
    +params['theta'] = 0
    +params['vars'] = ("w1", "v4")
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage21.png"))
    +Test("xrayimage21", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage22", s)
    +
    +params['theta'] = 90
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage23.png"))
    +Test("xrayimage23", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage24", s)
    +
    +#
    +# Test with perspective.
    +#
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("multi_curv3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +params = dict(output_type="png",
    +              output_dir=".",
    +              divide_emis_by_absorb=1,
    +              focus=(0.0, 2.5, 15.0),
    +              view_up=(0., 1., 0.),
    +              normal=(0., 0., 1.),
    +              view_angle=30.,
    +              parallel_scale = 16.0078,
    +              near_plane = -32.0156,
    +              far_plane = 32.0156,
    +              image_pan=(0., 0.),
    +              image_zoom = 2.4,
    +              perspective = 1,
    +              image_size=(300, 300),
    +              vars=("d", "p"))
    +Query("XRay Image", params)
    +
    +os.rename("output.png", out_path(out_base,"xrayimage25.png"))
    +
    +Test("xrayimage25", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage26", s)
    +
    +#
    +# Test with background intensities.
    +#
    +DefineArrayExpression("wa", "array_compose(w1,w1)")
    +DefineArrayExpression("va", "array_compose(v4,v4)")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +params = dict(output_type="png",
    +              output_dir=".",
    +              divide_emis_by_absorb=1,
    +              theta=90.,
    +              phi=0.,
    +              width=20.,
    +              height=20.,
    +              image_size=(300, 300),
    +              vars=("wa", "va"),
    +              background_intensities=(0.05, 0.1))
    +Query("XRay Image", params)
    +
    +os.rename("output.00.png", out_path(out_base,"xrayimage27.png"))
    +os.rename("output.01.png", out_path(out_base,"xrayimage28.png"))
    +
    +Test("xrayimage27", 0, 1)
    +Test("xrayimage28", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage29", s)
    +
    +DeleteAllPlots()
    +
    +# 
    +# test setting output directory
    +# 
    +
    +OpenDatabase(silo_data_path("curv3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +# old style argument passing
    +Query("XRay Image", "png", outdir_set, 1, 0.0, 2.5, 10.0, 0, 0, 10., 10., 300, 300, ("d", "p"))
    +os.rename(outdir_set + "/output.png", out_path(out_base, "xrayimage30.png"))
    +Test("xrayimage30", 0, 1)
    +
    +s = GetQueryOutputString()
    +TestText("xrayimage31", s)
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("curv3d.silo"))
    +
    +#
    +# test blueprint output
    +#
    +
    +def setup_bp_test():
    +    OpenDatabase(silo_data_path("curv3d.silo"))
    +    DefineScalarExpression("d1", 'd')
    +    DefineScalarExpression("p1", 'p')
    +    DefineScalarExpression("d2", 'd * 6')
    +    DefineScalarExpression("p2", 'p * 6')
    +    DefineScalarExpression("d3", 'd * 3')
    +    DefineScalarExpression("p3", 'p * 3')
    +    DefineArrayExpression("darr", "array_compose(d1,d2,d3)")
    +    DefineArrayExpression("parr", "array_compose(p1,p2,d3)")
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +def teardown_bp_test(lite = False):
    +    DeleteAllPlots()
    +    if not lite:
    +        DeleteExpression("d1")
    +        DeleteExpression("p1")
    +        DeleteExpression("d2")
    +        DeleteExpression("p2")
    +        DeleteExpression("d3")
    +        DeleteExpression("p3")
    +        DeleteExpression("darr")
    +        DeleteExpression("parr")
    +    CloseDatabase(silo_data_path("curv3d.silo"))
    +
    +# In conduit python, int types are assumed to be int64
    +# The xray query saves bools out as int32s
    +# So the diff fails unless we take the int32 type and 
    +# cast it to int64.
    +def cast_to_wide_int_type_conduit(node, leafname):
    +    val = numpy.int64(node[leafname])
    +    node.remove_child(leafname)
    +    node[leafname] = val
    +
    +def test_bp_state_xray_view(testname, xray_view):
    +    yaml_text = """normal:
    +  x: 0.0
    +  y: 0.0
    +  z: 1.0
    +focus:
    +  x: 0.0
    +  y: 2.5
    +  z: 10.0
    +view_up:
    +  x: 0.0
    +  y: 1.0
    +  z: 0.0
    +view_angle: 30.0
    +parallel_scale: 5.0
    +view_width: 7.5
    +non_square_pixels: \"yes\"
    +near_plane: -100.0
    +far_plane: 100.0
    +image_pan:
    +  x: 0.0
    +  y: 0.0
    +image_zoom: 1.0
    +perspective: 0
    +perspective_str: \"parallel\""""
    +
    +    xray_view_base = conduit.Node()
    +    xray_view_base.parse(yaml_text, "yaml")
    +
    +    # We must make changes so that the diff will pass:
    +    cast_to_wide_int_type_conduit(xray_view, "perspective")
    +
    +    info = conduit.Node()
    +    diffval = xray_view.diff(xray_view_base, info)
    +    diff_str = info.to_yaml() if diffval else ""
    +    TestValueEQ(testname + "_xray_view", diff_str, "")
    +
    +UNITS_OFF = 0
    +UNITS_ON = 1
    +
    +def test_bp_state_xray_query(testname, xray_query, num_bins, abs_name, emis_name, units):
    +    yaml_text = f"""divide_emis_by_absorb: 1
    +divide_emis_by_absorb_str: \"yes\"
    +num_x_pixels: 300
    +num_y_pixels: 200
    +num_bins: {num_bins}
    +abs_var_name: {abs_name}
    +emis_var_name: {emis_name}
    +abs_units: {"abs units" if units == UNITS_ON else "no units provided"}
    +emis_units: {"emis units" if units == UNITS_ON else "no units provided"}"""
    +
    +    xray_query_base = conduit.Node()
    +    xray_query_base.parse(yaml_text, "yaml")
    +
    +    # We must make changes so that the diff will pass:
    +    cast_to_wide_int_type_conduit(xray_query, "divide_emis_by_absorb")
    +    cast_to_wide_int_type_conduit(xray_query, "num_x_pixels")
    +    cast_to_wide_int_type_conduit(xray_query, "num_y_pixels")
    +    cast_to_wide_int_type_conduit(xray_query, "num_bins")
    +
    +    info = conduit.Node()
    +    diffval = xray_query.diff(xray_query_base, info)
    +    diff_str = info.to_yaml() if diffval else ""
    +    TestValueEQ(testname + "_xray_query", diff_str, "");
    +
    +def test_bp_state_xray_data(testname, xray_data, int_max, pl_max):
    +    yaml_text = f"""detector_width: 15.0
    +detector_height: 10.0
    +intensity_max: {int_max}
    +intensity_min: 0.0
    +path_length_max: {pl_max}
    +path_length_min: 0.0
    +image_topo_order_of_domain_variables: \"xyz\""""
    +
    +    xray_data_base = conduit.Node()
    +    xray_data_base.parse(yaml_text, "yaml")
    +
    +    info = conduit.Node()
    +    diffval = xray_data.diff(xray_data_base, info)
    +    diff_str = info.to_yaml() if diffval else ""
    +    TestValueEQ(testname + "_xray_data", diff_str, "");
    +
    +NO_ENERGY_GROUP_BOUNDS = 0
    +ENERGY_GROUP_BOUNDS_MISMATCH = 1
    +ENERGY_GROUP_BOUNDS = 2
    +
    +class query_result_options:
    +    def __init__(self, num_bins, abs_name, emis_name, bin_state, units, int_max, pl_max):
    +        self.num_bins = num_bins
    +        self.abs_name = abs_name
    +        self.emis_name = emis_name
    +        self.bin_state = bin_state
    +        self.units = units
    +        self.int_max = int_max
    +        self.pl_max = pl_max
    +
    +def test_bp_data(testname, conduit_db, qro):
    +    xrayout = conduit.Node()
    +    conduit.relay.io.blueprint.load_mesh(xrayout, conduit_db)
    +
    +    # test metadata
    +    xray_state = xrayout["domain_000000/state"]
    +
    +    time = xray_state["time"]
    +    TestValueEQ(testname + "_Time", time, 4.8)
    +
    +    cycle = xray_state["cycle"]
    +    TestValueEQ(testname + "_Cycle", cycle, 48)
    +
    +    test_bp_state_xray_view(testname, xray_state["xray_view"])
    +    test_bp_state_xray_query(testname, xray_state["xray_query"],
    +        qro.num_bins, qro.abs_name, qro.emis_name, qro.units)
    +    test_bp_state_xray_data(testname, xray_state["xray_data"], qro.int_max, qro.pl_max)
    +
    +    # test data embedded within the fields
    +
    +    xray_fields = xrayout["domain_000000/fields"]
    +
    +    intensityUnits = xray_fields["intensities/units"]
    +    pathLengthUnits = xray_fields["path_length/units"]
    +
    +    if (qro.units == UNITS_ON):
    +        TestValueEQ(testname + "_IntensityUnits", intensityUnits, "intensity units")
    +        TestValueEQ(testname + "_PathLengthUnits", pathLengthUnits, "path length metadata")
    +    else:
    +        TestValueEQ(testname + "_IntensityUnits", intensityUnits, "no units provided")
    +        TestValueEQ(testname + "_PathLengthUnits", pathLengthUnits, "no info provided")
    +
    +    # test data embedded within the coordsets
    +
    +    xray_coordsets = xrayout["domain_000000/coordsets"]
    +
    +    spatial_coords_x = xray_coordsets["spatial_coords/values/x"]
    +    spatial_coords_y = xray_coordsets["spatial_coords/values/y"]
    +    energy_group_bounds = xray_coordsets["spatial_coords/values/z"]
    +    energy_group_info = xray_coordsets["spatial_coords/info"]
    +    TestValueEQ(testname + "_data_SpatialExtents0", [spatial_coords_x[0], spatial_coords_y[0]], [0.0, 0.0])
    +    TestValueEQ(testname + "_data_SpatialExtents1", [spatial_coords_x[1], spatial_coords_y[1]], [0.05, 0.05])
    +    TestValueEQ(testname + "_data_SpatialExtents2", [spatial_coords_x[2], spatial_coords_y[2]], [0.1, 0.1])
    +    TestValueEQ(testname + "_data_SpatialExtents3", [spatial_coords_x[-1], spatial_coords_y[-1]], [15.0, 10.0])
    +
    +    if (qro.bin_state == NO_ENERGY_GROUP_BOUNDS):
    +        TestValueEQ(testname + "_data_EnergyGroupInfo", energy_group_info, "Energy group bounds not provided.")
    +        TestValueEQ(testname + "_data_EnergyGroupBounds", [energy_group_bounds[0], energy_group_bounds[1]], [0, 1])
    +    elif (qro.bin_state == ENERGY_GROUP_BOUNDS_MISMATCH):
    +        baseline_string = "Energy group bounds size mismatch: provided 3 bounds, but 2 in query results."
    +        TestValueEQ(testname + "_data_EnergyGroupInfo", energy_group_info, baseline_string)
    +        TestValueEQ(testname + "_data_EnergyGroupBounds", [energy_group_bounds[0], energy_group_bounds[1]], [0, 1])
    +    elif (qro.bin_state == ENERGY_GROUP_BOUNDS):
    +        TestValueEQ(testname + "_data_EnergyGroupBounds", energy_group_bounds, [0, 2, 6, 8])
    +
    +    yaml_text = f"""x: {"cm" if qro.units == UNITS_ON else "no units provided"}
    +y: {"cm" if qro.units == UNITS_ON else "no units provided"}
    +z: {"kev" if qro.units == UNITS_ON else "no units provided"}"""
    +
    +    spatial_units_base = conduit.Node()
    +    spatial_units_base.parse(yaml_text, "yaml")
    +    spatial_units = xray_coordsets["spatial_coords/units"]
    +
    +    info = conduit.Node()
    +    diffval = spatial_units.diff(spatial_units_base, info)
    +    TestValueEQ(testname + "_spatial_units", diffval, False);
    +    if diffval:
    +        print(info.to_yaml())
    +
    +    xlabel = xray_coordsets["spatial_coords/labels/x"];
    +    ylabel = xray_coordsets["spatial_coords/labels/y"];
    +    zlabel = xray_coordsets["spatial_coords/labels/z"];
    +    TestValueEQ(testname + "_data_XLabels", xlabel, "width")
    +    TestValueEQ(testname + "_data_YLabels", ylabel, "height")
    +    TestValueEQ(testname + "_data_ZLabels", zlabel, "energy_group")
    +
    +    xlabel = xray_coordsets["spatial_energy_reduced_coords/labels/x"];
    +    ylabel = xray_coordsets["spatial_energy_reduced_coords/labels/y"];
    +    TestValueEQ(testname + "_data_ser_XLabels", xlabel, "width")
    +    TestValueEQ(testname + "_data_ser_YLabels", ylabel, "height")
    +
    +    xlabel = xray_coordsets["spectra_coords/labels/x"];
    +    TestValueEQ(testname + "_data_spectra_XLabels", xlabel, "energy_group")
    +
    +def calc_midpoints(arr):
    +    midpts = []
    +    for i in range(0, len(arr) - 1):
    +        midpts.append((arr[i] + arr[i + 1]) / 2)
    +    return midpts
    +
    +def z_slice(zval, mesh_name):
    +    AddOperator("Slice", 1)
    +    SetActivePlots(0)
    +    SliceAtts = SliceAttributes()
    +    SliceAtts.originType = SliceAtts.Point  # Point, Intercept, Percent, Zone, Node
    +    SliceAtts.originPoint = (0, 0, zval)
    +    SliceAtts.axisType = SliceAtts.ZAxis  # XAxis, YAxis, ZAxis, Arbitrary, ThetaPhi
    +    SliceAtts.project2d = 1
    +    SliceAtts.interactive = 1
    +    SliceAtts.meshName = mesh_name
    +    SetOperatorOptions(SliceAtts, 0, 1)
    +
    +def blueprint_test(output_type, outdir, testtextnumber, testname):
    +    for i in range(0, 2):
    +        setup_bp_test()
    +
    +        # common place for args
    +        divide_emis_by_absorb = 1
    +        origin = (0.0, 2.5, 10.0)
    +        theta = 0
    +        phi = 0
    +        width = 15
    +        height = 10
    +        image_size = (300, 200)
    +
    +        energy_group_bounds      = [0, 2, 6, 8]
    +        fake_energy_group_bounds = [0, 1, 2, 3]
    +
    +        energy_group_midpts      = calc_midpoints(energy_group_bounds)
    +        fake_energy_group_midpts = calc_midpoints(fake_energy_group_bounds)
    +
    +        calltype = "legacy" if i == 0 else "modern"
    +
    +        # run query
    +        if (i == 0):
    +            # test legacy call
    +            Query("XRay Image",
    +                  output_type,
    +                  outdir,
    +                  divide_emis_by_absorb,
    +                  origin[0],
    +                  origin[1],
    +                  origin[2],
    +                  theta,
    +                  phi,
    +                  width,
    +                  height,
    +                  image_size[0],
    +                  image_size[1],
    +                  ("darr", "parr"),
    +                  energy_group_bounds)
    +        elif (i == 1):
    +            # test modern call
    +            params = dict()
    +            params["output_type"] = output_type
    +            params["output_dir"] = outdir
    +            params["divide_emis_by_absorb"] = divide_emis_by_absorb
    +            params["origin"] = origin
    +            params["theta"] = theta
    +            params["phi"] = phi
    +            params["width"] = width
    +            params["height"] = height
    +            params["image_size"] = image_size
    +            params["vars"] = ("darr", "parr")
    +            params["energy_group_bounds"] = energy_group_bounds
    +            params["spatial_units"] = "cm"
    +            params["energy_units"] = "kev"
    +            params["abs_units"] = "abs units"
    +            params["emis_units"] = "emis units"
    +            params["intensity_units"] = "intensity units"
    +            params["path_length_info"] = "path length metadata"
    +            Query("XRay Image", params)
    +
    +        # test output message
    +        s = GetQueryOutputString()
    +        TestText("xrayimage" + str(testtextnumber + i), s)
    +        teardown_bp_test()
    +
    +        # test opening the bp output and visualizing in visit
    +        conduit_db = pjoin(outdir, "output.root")
    +        OpenDatabase(conduit_db)
    +
    +        # 
    +        # image topo
    +        # 
    +
    +        AddPlot("Pseudocolor", "mesh_image_topo/intensities")
    +        DrawPlots()
    +        Test(testname + "_image_topo_intensities_" + calltype)
    +        DeleteAllPlots()
    +
    +        # test some slices
    +        for j in range(0, len(fake_energy_group_midpts)):
    +            AddPlot("Pseudocolor", "mesh_image_topo/intensities")
    +            z_slice(fake_energy_group_midpts[j], "mesh_image_topo")
    +            DrawPlots()
    +            Test(testname + "_image_topo_intensities_" + calltype + "_slice" + str(j))
    +            DeleteAllPlots()
    +
    +        AddPlot("Pseudocolor", "mesh_image_topo/path_length")
    +        DrawPlots()
    +        Test(testname + "_image_topo_path_length_" + calltype)
    +        DeleteAllPlots()
    +
    +        # test some slices
    +        for j in range(0, len(fake_energy_group_midpts)):
    +            AddPlot("Pseudocolor", "mesh_image_topo/path_length")
    +            z_slice(fake_energy_group_midpts[j], "mesh_image_topo")
    +            DrawPlots()
    +            Test(testname + "_image_topo_path_length_" + calltype + "_slice" + str(j))
    +            DeleteAllPlots()
    +
    +        # 
    +        # spatial topo
    +        # 
    +
    +        AddPlot("Pseudocolor", "mesh_spatial_topo/intensities_spatial")
    +        DrawPlots()
    +        Test(testname + "_spatial_topo_intensities_" + calltype)
    +        DeleteAllPlots()
    +
    +        # test some slices
    +        for j in range(0, len(energy_group_midpts)):
    +            AddPlot("Pseudocolor", "mesh_spatial_topo/intensities_spatial")
    +            z_slice(energy_group_midpts[j], "mesh_spatial_topo")
    +            DrawPlots()
    +            Test(testname + "_spatial_topo_intensities_" + calltype + "_slice" + str(j))
    +            DeleteAllPlots()
    +
    +        AddPlot("Pseudocolor", "mesh_spatial_topo/path_length_spatial")
    +        DrawPlots()
    +        Test(testname + "_spatial_topo_path_length_" + calltype)
    +        DeleteAllPlots()
    +
    +        # test some slices
    +        for j in range(0, len(energy_group_midpts)):
    +            AddPlot("Pseudocolor", "mesh_spatial_topo/path_length_spatial")
    +            z_slice(energy_group_midpts[j], "mesh_spatial_topo")
    +            DrawPlots()
    +            Test(testname + "_spatial_topo_path_length_" + calltype + "_slice" + str(j))
    +            DeleteAllPlots()
    +
    +        # 
    +        # spatial energy reduced topo
    +        # 
    +
    +        AddPlot("Pseudocolor", "mesh_spatial_energy_reduced_topo/intensities_spatial_energy_reduced")
    +        DrawPlots()
    +        Test(testname + "_spatial_energy_reduced_topo_intensities_" + calltype)
    +        DeleteAllPlots()
    +
    +        AddPlot("Pseudocolor", "mesh_spatial_energy_reduced_topo/path_length_spatial_energy_reduced")
    +        DrawPlots()
    +        Test(testname + "_spatial_energy_reduced_topo_path_length_" + calltype)
    +        DeleteAllPlots()
    +
    +        # 
    +        # spectra topo
    +        # 
    +
    +        AddPlot("Curve", "mesh_spectra_topo/intensities_spectra")
    +        DrawPlots()
    +        Test(testname + "_spectra_topo_intensities_" + calltype)
    +        DeleteAllPlots()
    +
    +        AddPlot("Curve", "mesh_spectra_topo/path_length_spectra")
    +        DrawPlots()
    +        Test(testname + "_spectra_topo_path_length_" + calltype)
    +        DeleteAllPlots()
    +
    +        CloseDatabase(conduit_db)
    +
    +    units = UNITS_OFF if i == 0 else UNITS_ON
    +
    +    qro = query_result_options(num_bins=3, abs_name="darr", emis_name="parr", \
    +        bin_state=ENERGY_GROUP_BOUNDS, units=units, \
    +        int_max=1.0, pl_max=892.02587890625)
    +    test_bp_data(testname + str(i), conduit_db, qro) # bounds
    +
    +    setup_bp_test()
    +
    +    Query("XRay Image", output_type, outdir, 1, 0.0, 2.5, 10.0, 0, 0, 15., 10., 300, 200, ("d", "p"), [1,2,3])
    +    qro = query_result_options(num_bins=1, abs_name="d", emis_name="p", \
    +        bin_state=ENERGY_GROUP_BOUNDS_MISMATCH, units=UNITS_OFF, \
    +        int_max=0.241531997919083, pl_max=148.670989990234)
    +    test_bp_data(testname + str(i), conduit_db, qro) # bounds mismatch
    +
    +    Query("XRay Image", output_type, outdir, 1, 0.0, 2.5, 10.0, 0, 0, 15., 10., 300, 200, ("d", "p"))
    +    qro = query_result_options(num_bins=1, abs_name="d", emis_name="p", \
    +        bin_state=NO_ENERGY_GROUP_BOUNDS, units=UNITS_OFF, \
    +        int_max=0.241531997919083, pl_max=148.670989990234)
    +    test_bp_data(testname + str(i), conduit_db, qro) # no bounds
    +
    +    teardown_bp_test()
    +
    +blueprint_test("hdf5", conduit_dir_hdf5, 32, "Blueprint_HDF5_X_Ray_Output")
    +blueprint_test("json", conduit_dir_json, 34, "Blueprint_JSON_X_Ray_Output")
    +blueprint_test("yaml", conduit_dir_yaml, 36, "Blueprint_YAML_X_Ray_Output")
    +
    +#
    +# test detector height and width are always positive in blueprint output
    +#
    +
    +setup_bp_test()
    +
    +params = GetQueryParameters("XRay Image")
    +params["image_size"] = (4, 3)
    +params["output_type"] = "hdf5"
    +params["output_dir"] = conduit_dir_detector_dims
    +params["focus"] = (0., 2.5, 10.)
    +params["perspective"] = 1
    +params["near_plane"] = -50.
    +params["far_plane"] = 50.
    +params["vars"] = ("d", "p")
    +params["energy_group_bounds"] = [3.7, 4.2];
    +params["parallel_scale"] = 5.
    +Query("XRay Image", params)
    +
    +teardown_bp_test()
    +
    +conduit_db = pjoin(conduit_dir_detector_dims, "output.root")
    +xrayout = conduit.Node()
    +conduit.relay.io.blueprint.load_mesh(xrayout, conduit_db)
    +
    +detector_width = xrayout["domain_000000/state/xray_data/detector_width"]
    +TestValueEQ("Blueprint_Positive_Detector_width", detector_width, 22.3932263237838)
    +
    +detector_height = xrayout["domain_000000/state/xray_data/detector_height"]
    +TestValueEQ("Blueprint_Positive_Detector_height", detector_height, 16.7949192423103)
    +
    +#
    +# test imaging plane topos and ray output
    +#
    +
    +def test_imaging_planes_and_rays():
    +    for i in range(0, 2):
    +        setup_bp_test()
    +
    +        params = GetQueryParameters("XRay Image")
    +        params["image_size"] = (400, 300)
    +        params["output_dir"] = conduit_dir_imaging_planes0 if i == 0 else conduit_dir_imaging_planes1
    +        params["output_type"] = "hdf5"
    +        params["focus"] = (0., 2.5, 10.)
    +        params["perspective"] = 1
    +        params["near_plane"] = -50.
    +        params["far_plane"] = 50.
    +        params["vars"] = ("d", "p")
    +        params["parallel_scale"] = 5.
    +        Query("XRay Image", params)
    +
    +        conduit_db = pjoin(conduit_dir_imaging_planes0 if i == 0 else conduit_dir_imaging_planes1, "output.root")
    +
    +        OpenDatabase(conduit_db)
    +
    +        AddPlot("Pseudocolor", "mesh_far_plane_topo/far_plane_field", 1, 1)
    +        AddPlot("Pseudocolor", "mesh_view_plane_topo/view_plane_field", 1, 1)
    +        AddPlot("Pseudocolor", "mesh_near_plane_topo/near_plane_field", 1, 1)
    +        if i == 0:
    +            AddPlot("Pseudocolor", "mesh_ray_corners_topo/ray_corners_field", 1, 1)
    +        else:
    +            AddPlot("Pseudocolor", "mesh_ray_topo/ray_field", 1, 1)
    +        DrawPlots()
    +
    +        SetActivePlots(4)
    +        PseudocolorAtts = PseudocolorAttributes()
    +        PseudocolorAtts.invertColorTable = 1
    +        SetPlotOptions(PseudocolorAtts)
    +
    +        View3DAtts = View3DAttributes()
    +        View3DAtts.viewNormal = (-0.519145, 0.199692, -0.831031)
    +        View3DAtts.focus = (0, 2.5, 10)
    +        View3DAtts.viewUp = (-0.0954901, 0.952683, 0.288577)
    +        View3DAtts.viewAngle = 30
    +        View3DAtts.parallelScale = 58.6531
    +        View3DAtts.nearPlane = -117.306
    +        View3DAtts.farPlane = 117.306
    +        SetView3D(View3DAtts)
    +
    +        Test("Blueprint_HDF5_Imaging_Planes" + str(i))
    +
    +        teardown_bp_test()
    +        CloseDatabase(conduit_db)
    +
    +test_imaging_planes_and_rays()
    +
    +def test_non_square_pixels():
    +    DeleteAllPlots()
    +    setup_bp_test()
    +
    +    params = GetQueryParameters("XRay Image")
    +
    +    params["vars"] = ("d", "p")
    +    params["image_size"] = (300, 300)
    +    params["energy_group_bounds"] = [2.7, 6.2]
    +
    +    # filename, directory, and output type choices
    +    params["output_dir"] = conduit_dir_nonsquare_pixels
    +    params["filename_scheme"] = "family" # "none", "family", or "cycle" 
    +    params["output_type"] = "hdf5"
    +
    +    params["focus"] = (0., 2.5, 10.)
    +    params["parallel_scale"] = 10.
    +    params["near_plane"] = -25.
    +    params["far_plane"] = 25.
    +    params["view_angle"] = 30
    +    params["perspective"] = 1 # 0 parallel, 1 perspective
    +
    +    # default
    +    Query("XRay Image", params)
    +    params["image_size"] = (4, 4)
    +    Query("XRay Image", params)
    +    params["image_size"] = (300, 300)
    +
    +    # view width is set but is equal to what it would have been if it were calculated
    +    params["view_width"] = 10.
    +    Query("XRay Image", params)
    +    params["image_size"] = (4, 4)
    +    Query("XRay Image", params)
    +    params["image_size"] = (300, 300)
    +
    +    # view width is twice the length of the parallel scale
    +    params["view_width"] = 20.
    +    Query("XRay Image", params)
    +    params["image_size"] = (4, 4)
    +    Query("XRay Image", params)
    +    params["image_size"] = (300, 300)
    +
    +    # view width is half the length of the parallel scale
    +    params["view_width"] = 5.
    +    Query("XRay Image", params)
    +    params["image_size"] = (4, 4)
    +    Query("XRay Image", params)
    +
    +    conduit_db = pjoin(conduit_dir_nonsquare_pixels, "output.*.root database")
    +    OpenDatabase(conduit_db)
    +
    +    # first we test the imaging planes and rays look as we expect
    +    AddPlot("Pseudocolor", "mesh_near_plane_topo/near_plane_field")
    +    AddPlot("Pseudocolor", "mesh_view_plane_topo/view_plane_field")
    +    AddPlot("Pseudocolor", "mesh_far_plane_topo/far_plane_field")
    +    DrawPlots()
    +
    +    # Make the plot of the near plane active
    +    SetActivePlots(1)
    +    PseudocolorAtts = PseudocolorAttributes()
    +    # We invert the color table so that it is a different color from the far plane
    +    PseudocolorAtts.invertColorTable = 1
    +    SetPlotOptions(PseudocolorAtts)
    +
    +    # Make the plot of the view plane active
    +    SetActivePlots(2)
    +    PseudocolorAtts = PseudocolorAttributes()
    +    PseudocolorAtts.colorTableName = "hot_and_cold"
    +    PseudocolorAtts.invertColorTable = 1
    +    PseudocolorAtts.opacityType = PseudocolorAtts.Constant  # ColorTable, FullyOpaque, Constant, Ramp, VariableRange
    +    # We lower the opacity so that the view plane does not obstruct our view of anything.
    +    PseudocolorAtts.opacity = 0.7
    +    SetPlotOptions(PseudocolorAtts)
    +
    +    # leave the far plane as is
    +
    +    # add ray corners topo
    +    AddPlot("Mesh", "mesh_ray_corners_topo")
    +    DrawPlots()
    +    MeshAtts = MeshAttributes()
    +    MeshAtts.lineWidth = 1
    +    SetPlotOptions(MeshAtts)
    +
    +    # set view
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (-0.350116, 0.224905, -0.909306)
    +    View3DAtts.focus = (0, 2.5, 10)
    +    View3DAtts.viewUp = (0.0306245, 0.972977, 0.228862)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 34.3903
    +    View3DAtts.nearPlane = -68.7807
    +    View3DAtts.farPlane = 68.7807
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0, 2.5, 10)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +    # take pictures of all the ray setups
    +    Test("NonSquare_Pixels_Ray_trace_setup_1")
    +    TimeSliderNextState()
    +    AddPlot("Pseudocolor", "mesh_ray_topo/ray_field")
    +    DrawPlots()
    +    Test("NonSquare_Pixels_Ray_trace_setup_2")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    Test("NonSquare_Pixels_Ray_trace_setup_3")
    +    TimeSliderNextState()
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_Ray_trace_setup_4")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    Test("NonSquare_Pixels_Ray_trace_setup_5")
    +    TimeSliderNextState()
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_Ray_trace_setup_6")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    Test("NonSquare_Pixels_Ray_trace_setup_7")
    +    TimeSliderNextState()
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_Ray_trace_setup_8")
    +    HideActivePlots()
    +
    +    # cleanup
    +    TimeSliderNextState()
    +    DeleteAllPlots()
    +
    +    # take pictures of the hi-res images
    +    AddPlot("Pseudocolor", "mesh_image_topo/intensities", 1, 1)
    +    DrawPlots()
    +    ResetView()
    +    AddPlot("Pseudocolor", "mesh_spatial_topo/intensities_spatial", 1, 1)
    +    DrawPlots()
    +    HideActivePlots()
    +    SetActivePlots((0, 1))
    +    Test("NonSquare_Pixels_hi_res_images1")
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_hi_res_images2")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    TimeSliderNextState()
    +    Test("NonSquare_Pixels_hi_res_images3")
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_hi_res_images4")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    TimeSliderNextState()
    +    Test("NonSquare_Pixels_hi_res_images5")
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_hi_res_images6")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    TimeSliderNextState()
    +    Test("NonSquare_Pixels_hi_res_images7")
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_hi_res_images8")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +
    +    # cleanup
    +    TimeSliderNextState()
    +    DeleteAllPlots()
    +
    +    # take pictures of the low res images
    +    AddPlot("Pseudocolor", "mesh_image_topo/intensities", 1, 1)
    +    DrawPlots()
    +    AddPlot("Mesh", "mesh_image_topo", 1, 1)
    +    DrawPlots()
    +    AddPlot("Pseudocolor", "mesh_spatial_topo/intensities_spatial", 1, 1)
    +    DrawPlots()
    +    AddPlot("Mesh", "mesh_spatial_topo", 1, 1)
    +    DrawPlots()
    +    SetActivePlots((2, 3))
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    ResetView()
    +    SetActivePlots((0, 2, 3))
    +    SetActivePlots((0, 1, 2, 3))
    +    Test("NonSquare_Pixels_low_res_mesh_plots1")
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_low_res_mesh_plots2")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    TimeSliderNextState()
    +    ResetView()
    +    Test("NonSquare_Pixels_low_res_mesh_plots3")
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_low_res_mesh_plots4")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    TimeSliderNextState()
    +    ResetView()
    +    Test("NonSquare_Pixels_low_res_mesh_plots5")
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_low_res_mesh_plots6")
    +    HideActivePlots()
    +    TimeSliderNextState()
    +    TimeSliderNextState()
    +    ResetView()
    +    Test("NonSquare_Pixels_low_res_mesh_plots7")
    +    HideActivePlots()
    +    Test("NonSquare_Pixels_low_res_mesh_plots8")
    +    HideActivePlots()
    +
    +    teardown_bp_test()
    +    CloseDatabase(conduit_db)
    +
    +test_non_square_pixels()
    +
    +# 
    +# test catching failures
    +# 
    +
    +# write to dir that does not exist
    +
    +setup_bp_test()
    +Query("XRay Image", "hdf5", dir_dne, 1, 0.0, 2.5, 10.0, 0, 0, 10., 10., 300, 300, ("d", "p"))
    +output_obj = GetQueryOutputObject()
    +TestValueEQ("xrayimage38", output_obj, None)
    +teardown_bp_test(True)
    +
    +# os.chmod does not work on windows
    +if not platform.system() == "Windows":
    +    # write to dir w/ read only permissions
    +    setup_bp_test()
    +    Query("XRay Image", "hdf5", outdir_bad, 1, 0.0, 2.5, 10.0, 0, 0, 10., 10., 300, 300, ("d", "p"))
    +    output_obj = GetQueryOutputObject()
    +    TestValueEQ("xrayimage39", output_obj, None)
    +    teardown_bp_test()
    +
    +# 
    +# Test filenames and output types
    +# 
    +
    +setup_bp_test()
    +
    +DefineArrayExpression("da", "array_compose(d,d)")
    +DefineArrayExpression("pa", "array_compose(p,p)")
    +
    +def query_variety(otype, scheme, thevars, outdir):
    +    SetQueryFloatFormat("%g")
    +    Query("XRay Image",
    +        background_intensity=0,
    +        divide_emis_by_absorb=0,
    +        far_plane=20,
    +        filename_scheme=scheme,
    +        family_files=0, # this is to test that family_files is ignored when filename_scheme is set
    +        focus=(0, 0, 0),
    +        image_pan=(0, 0),
    +        image_size=(3, 3),
    +        image_zoom=1,
    +        near_plane=-20,
    +        normal=(0, 0, 1),
    +        output_dir=outdir,
    +        output_ray_bounds=0,
    +        output_type=otype,
    +        parallel_scale=10,
    +        perspective=0,
    +        view_angle=30,
    +        view_up=(0, 1, 0),
    +        vars=thevars)
    +    return GetQueryOutputObject()
    +
    +def query_family_backwards_compat(family, thevars, outdir):
    +    SetQueryFloatFormat("%g")
    +    Query("XRay Image",
    +        background_intensity=0,
    +        divide_emis_by_absorb=0,
    +        far_plane=20,
    +        family_files=family,
    +        focus=(0, 0, 0),
    +        image_pan=(0, 0),
    +        image_size=(3, 3),
    +        image_zoom=1,
    +        near_plane=-20,
    +        normal=(0, 0, 1),
    +        output_dir=outdir,
    +        output_ray_bounds=0,
    +        output_type="png",
    +        parallel_scale=10,
    +        perspective=0,
    +        view_angle=30,
    +        view_up=(0, 1, 0),
    +        vars=thevars)
    +    return GetQueryOutputObject()
    +
    +filename_schemes = ["family", "family", "cycle", "none"]
    +vars_options = [("d", "p"), ("da", "pa")]
    +
    +for i in range(0, len(output_types)):
    +    outdir_set_otype = outdir_set + "_" + output_types[i]
    +    if output_types[i] == "jpeg":
    +        # create a dummy file to test the file familying
    +        open(outdir_set_otype + "/output.0000.jpg", 'w').close()
    +    info = ""
    +    for j in range(0, len(filename_schemes)):
    +        for k in range(0, len(vars_options)):
    +            info += str(query_variety(output_types[i],
    +                                      filename_schemes[j],
    +                                      vars_options[k],
    +                                      outdir_set_otype)) + "\n"
    +    info += str(sorted(os.listdir(outdir_set_otype))) + "\n"
    +    TestText("Test_filenames_for_" + output_types[i] + "_outputs", info)
    +
    +# test backwards compatibility with family_files option
    +for i in range(0, len(family_options)):
    +    outdir_set_family = outdir_set + "_family_" + str(family_options[i])
    +    info = ""
    +    for j in range(0, len(vars_options)):
    +        info += str(query_family_backwards_compat(family_options[i],
    +                                                  vars_options[j],
    +                                                  outdir_set_family)) + "\n"
    +    info += str(sorted(os.listdir(outdir_set_family))) + "\n"
    +    TestText("Test_filenames_for_family" + str(family_options[i]) + "_outputs", info)
    +
    +#
    +# Test that we get decent error messages for common cases
    +#
    +import numpy
    +
    +nporig = numpy.array([0.0, 2.5, 10.0])
    +
    +params = dict(output_type=1, output_dir=".", divide_emis_by_absorb=1, \
    +    origin=nporig, up_vector=(0, 1, 0), theta=0, phi=0, \
    +    width = 10., height=10., image_size=(300, 300), vars=("da", "pa"))
    +try:
    +    Query("XRay Image", params)
    +except (visit.VisItException, VisItException) as e:
    +    if '"origin"' in e.args[0] and "position 4" in e.args[0] and "type numpy.ndarray" in e.args[0]:
    +        TestPOA('detect and warn numpy array as query param')
    +    else:
    +        TestFOA('detect and warn numpy array as query param', LINE())
    +    pass
    +except:
    +    TestFOA('detect and warn numpy array as query param', LINE())
    +    pass
    +
    +params = dict(output_type=1, output_dir=".", divide_emis_by_absorb=1, \
    +    origin=nporig.tolist(), up_vector=(0, 1, 0), theta=0, phi=0, \
    +    width = 10., height=10., image_size=(300, 300), vars=("da", "pa"))
    +try:
    +    Query("XRay Image", params)
    +    TestPOA('numpy array converted to list works as query param')
    +except:
    +    TestFOA('numpy array converted to list works as query param', LINE())
    +    pass
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_cl_args.html b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_cl_args.html new file mode 100644 index 000000000..ccc30cb5e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_cl_args.html @@ -0,0 +1,44 @@ + +Results for quickrecipes/cl_args.py + +

    Results of VisIt Regression Test - quickrecipes/cl_args

    + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    handling command line arguments errors
     "" .eq. "" : True
    handling command line arguments no exceptions
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_cl_args_py.html b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_cl_args_py.html new file mode 100644 index 000000000..9e0c5276c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_cl_args_py.html @@ -0,0 +1,30 @@ +quickrecipes/cl_args.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Mark C. Miller, Fri Aug 26 14:31:48 PDT 2022
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Get some utils shared across many .py files used for quick recipes.
    +#
    +Source(tests_path('quickrecipes','vqr_utils.py.inc'))
    +
    +def handling_command_line_arguments():
    +
    +  try:
    +    # handling command line arguments {
    +    import sys
    +    print(Argv)
    +    print(sys.argv)
    +    # handling command line arguments }
    +    TestValueEQ('handling command line arguments errors',GetLastError(),'')
    +    TestPOA('handling command line arguments no exceptions')
    +  except Exception as inst:
    +    TestFOA('handling command line argumentts exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +handling_command_line_arguments()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_colortables.html b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_colortables.html new file mode 100644 index 000000000..fe1e227ba --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_colortables.html @@ -0,0 +1,72 @@ + +Results for quickrecipes/colortables.py + +

    Results of VisIt Regression Test - quickrecipes/colortables

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    standard_hot_table0.000.00
    modified_hot_table_10.000.00
    modified_hot_table_20.000.00
    hot20.000.00
    hot30.000.00
    rainbow_continuous0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_colortables_py.html b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_colortables_py.html new file mode 100644 index 000000000..b24714eda --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_colortables_py.html @@ -0,0 +1,217 @@ +quickrecipes/colortables.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  colortables.py
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       March 30, 2022
    +#
    +#  Modificatons:
    +#    Justin Privitera, Wed Aug  3 19:46:13 PDT 2022
    +#    Made changes to reflect the fact that built-in tables cannot be edited.
    +#
    +#    Mark C. Miller, Mon Dec 12 19:02:35 PST 2022
    +#    Add introspecting block
    +# ----------------------------------------------------------------------------
    +
    +
    +# NOTE: Sections of this test file are 'literalinclude'd in quickrecipes.rst.
    +# After modifying this file, ensure the proper content is still displayed in the doc.
    +
    +# comments of the form '# sometext {' and '# sometext }' bracket the sections
    +# that are 'literalinclude'd in quickrecipes.rst.
    +
    +def introspectingColorTable():
    +
    +    # introspectingColorTable {
    +    hotCT = GetColorTable("hot")
    +    print(hotCT)
    +    # results of print
    +    #    GetControlPoints(0).colors = (0, 0, 255, 255)
    +    #    GetControlPoints(0).position = 0
    +    #    GetControlPoints(1).colors = (0, 255, 255, 255)
    +    #    GetControlPoints(1).position = 0.25
    +    #    GetControlPoints(2).colors = (0, 255, 0, 255)
    +    #    GetControlPoints(2).position = 0.5
    +    #    GetControlPoints(3).colors = (255, 255, 0, 255)
    +    #    GetControlPoints(3).position = 0.75
    +    #    GetControlPoints(4).colors = (255, 0, 0, 255)
    +    #    GetControlPoints(4).position = 1
    +    #    smoothing = Linear  # NONE, Linear, CubicSpline
    +    #    equalSpacingFlag = 0
    +    #    discreteFlag = 0
    +    # introspectingColorTable }
    +
    +def modifyExistingColorTable():
    +
    +    # modifyTable1 {
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +    AddPlot("Pseudocolor", "d")
    +
    +    pc = PseudocolorAttributes()
    +    pc.centering=pc.Nodal
    +    # set color table name
    +    pc.colorTableName = "hot"
    +    SetPlotOptions(pc)
    +
    +    DrawPlots()
    +    # put the plot in full-frame mode
    +    v = GetView2D()
    +    v.fullFrameActivationMode= v.On
    +    SetView2D(v)
    +    # modifyTable1 } 
    +
    +    Test("standard_hot_table")
    +
    +    hotCTorig = GetColorTable("hot")
    +
    +    # modifyTable2 {
    +    hotCT = GetColorTable("hot")
    +
    +    # Remove a couple of control points
    +    hotCT.RemoveControlPoints(4)
    +    hotCT.RemoveControlPoints(3)
    +
    +    # We must use a different name, as VisIt will not allow overwriting of built-in color tables
    +    SetColorTable("hot_edited", hotCT)
    +
    +    # set color table name so changes to it will be reflected in plot
    +    pc.colorTableName = "hot_edited"
    +    SetPlotOptions(pc)
    +    # modifyTable2 }
    +
    +    Test("modified_hot_table_1")
    +
    +    # modifyTable3 {
    +    # Change colors
    +    hotCT.GetControlPoints(0).colors = (255,0,0,255)
    +    hotCT.GetControlPoints(1).colors = (255, 0, 255, 255)
    +    SetColorTable("hot_edited", hotCT)
    +    # modifyTable3 }
    +
    +    Test("modified_hot_table_2")
    +
    +    # modifyTable4 {
    +    # Turn on equal spacing
    +    hotCT.equalSpacingFlag = 1
    +    # Create a new color table by providing a different name
    +    SetColorTable("hot2", hotCT)
    +
    +    # tell the Pseudocolor plot to use the new color table
    +    pc.colorTableName = "hot2"
    +    SetPlotOptions(pc)
    +    # modifyTable4 }
    +
    +    Test("hot2")
    +
    +    # modifyTable5 {
    +    # Change positions so that the first and last are at the endpoints
    +    hotCT.equalSpacingFlag=0
    +    hotCT.GetControlPoints(0).position = 0
    +    hotCT.GetControlPoints(1).position =0.5
    +    hotCT.GetControlPoints(2).position = 1
    +    SetColorTable("hot3", hotCT)
    +
    +    pc.colorTableName = "hot3"
    +    SetPlotOptions(pc)
    +    # modifyTable5 }
    +
    +    Test("hot3")
    +
    +    # remove the added color tables
    +    RemoveColorTable("hot_edited")
    +    RemoveColorTable("hot2")
    +    RemoveColorTable("hot3")
    +    DeleteAllPlots()
    +
    +def createContinuous():
    +    # based on http://visitusers.org/index.php?title=Creating_a_color_table
    +
    +    # continuous1 {
    +    # create control points (red, green, blue, position).
    +    ct = ((1,0,0,0.), (1,0.8,0.,0.166), (1,1,0,0.333), (0,1,0,0.5),
    +          (0,1,1,0.666), (0,0,1,0.8333), (0.8,0.1,1,1))
    +
    +    ccpl = ColorControlPointList()
    +
    +    # add the control points to the list 
    +    for pt in ct:
    +        p = ColorControlPoint()
    +        # colors is RGBA and must be in range 0...255
    +        p.colors = (pt[0] * 255, pt[1] * 255, pt[2] * 255, 255)
    +        p.position = pt[3]
    +        ccpl.AddControlPoints(p)
    +    AddColorTable("myrainbow", ccpl)
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +    AddPlot("Pseudocolor", "speed")
    +
    +    # Make the plot use the new color table
    +    pc = PseudocolorAttributes(1)
    +    pc.colorTableName = "myrainbow"
    +    SetPlotOptions(pc)
    +
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.693476, 0.212776, 0.688344)
    +    v. viewUp = (0.161927, 0.976983, -0.138864)
    +    SetView3D(v)
    +    # continuous1 }
    +
    +    Test("rainbow_continuous")
    +
    +    RemoveColorTable("myrainbow")
    +    DeleteAllPlots()
    +
    +
    +def createDiscreteUsingVTKNamedColors():
    +    # discrete1 {
    +    try:
    +        import vtk # for vtk.vtkNamedColors
    +    except:
    +        return
    +
    +    # to see list of all color names available: 
    +    # print(vtk.vtkNamedColors.GetColorNames())
    +
    +    # choose some colors from vtk.vtkNamedColors
    +    colorNames = ["tomato", "turquoise", "van_dyke_brown", "carrot",
    +                  "royalblue", "naples_yellow_deep", "cerulean", "warm_grey",
    +                  "venetian_red", "seagreen", "sky_blue", "pink"]
    +    # Create a color control point list
    +    ccpl = ColorControlPointList()
    +    # Make it discrete
    +    ccpl.discreteFlag=1
    +    # Add color control points corresponding to color names
    +    for name in colorNames:
    +        p = ColorControlPoint()
    +        p.colors=vtk.vtkNamedColors().GetColor4ub(name)
    +        ccpl.AddControlPoints(p)
    +    # add a color table based on the color control points
    +    AddColorTable("mylevels", ccpl)
    +
    +    OpenDatabase(silo_data_path("multi_rect2d.silo"))
    +    AddPlot("Subset", "domains")
    +    s = SubsetAttributes()
    +    s.colorType = s.ColorByColorTable
    +    s.colorTableName = "mylevels"
    +    SetPlotOptions(s)
    +    DrawPlots()
    +    # discrete1 }
    +
    +    Test("discrete_using_vtk")
    +
    +    # remove the added color tables
    +    RemoveColorTable("mylevels")
    +    DeleteAllPlots()
    +
    +def main():
    +    introspectingColorTable()
    +    modifyExistingColorTable()
    +    createContinuous()
    +    createDiscreteUsingVTKNamedColors()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_expressions.html b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_expressions.html new file mode 100644 index 000000000..b1fa17bbf --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_expressions.html @@ -0,0 +1,42 @@ + +Results for quickrecipes/expressions.py + +

    Results of VisIt Regression Test - quickrecipes/expressions

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    materials_to_values0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_expressions_py.html b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_expressions_py.html new file mode 100644 index 000000000..4f3534e5c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_expressions_py.html @@ -0,0 +1,62 @@ +quickrecipes/expressions.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  expressions.py
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       August 26, 2022
    +#
    +#  Modificatons:
    +#    Kathleen Biagas, Mon Sep 12, 2022
    +#    Change OpenDatabase call to use 'silo_data_path' so that the test can
    +#    run on Windows.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +# NOTE: Sections of this test file are 'literalinclude'd in quickrecipes.rst.
    +# After modifying this file, ensure the proper content is still displayed in the doc.
    +
    +# comments of the form '# sometext {' and '# sometext }' bracket the sections
    +# that are 'literalinclude'd in quickrecipes.rst.
    +
    +# mapMaterialsToValues {
    +# Create an expression that maps material numbers to scalar values.
    +#
    +# var is the name of the expression.
    +# mat is the name of the material variable.
    +# mesh is the name of the mesh variable.
    +# pairs is a list of tuples of material number and scalar value.
    +# The material number of the last tuple of the list is ignored and the value
    +# will be used for all the remaining materials.
    +
    +def create_mat_value_expr(var, mat, mesh, pairs):
    +    expr=""
    +    parens=""
    +    nlist = len(pairs)
    +    ilist = 0
    +    for pair in pairs:
    +        ilist = ilist + 1
    +        parens = parens + ")"
    +        if (ilist == nlist):
    +            expr = expr + "zonal_constant(%s,%f" % (mesh, pair[1]) + parens
    +        else:
    +            expr=expr + "if(eq(dominant_mat(%s),zonal_constant(%s,%d)),zonal_constant(%s,%f)," % (mat, mesh, pair[0], mesh, pair[1])
    +
    +    DefineScalarExpression(var, expr)
    +
    +# Call the function to create the expression.
    +mat_val_pairs = [(1, 0.75), (3, 1.2), (6, 0.2), (7, 1.6), (8, 1.8), (11, 2.2), (-1, 2.5)]
    +
    +create_mat_value_expr("myvar", "mat1", "quadmesh2d", mat_val_pairs)
    +
    +# Create a pseudocolor plot of the expression.
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +AddPlot("Pseudocolor", "myvar")
    +DrawPlots()
    +# mapMaterialsToValues }
    +
    +Test("materials_to_values")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_operators.html b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_operators.html new file mode 100644 index 000000000..371526a48 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_operators.html @@ -0,0 +1,52 @@ + +Results for quickrecipes/operators.py + +

    Results of VisIt Regression Test - quickrecipes/operators

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    adding operators error message
     "" .eq. "" : True
    adding operators exceptions
     "True" .eq. "True" : True
    setting operator attributes error message
     "" .eq. "" : True
    setting operator attributes exceptions
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_operators_py.html b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_operators_py.html new file mode 100644 index 000000000..333c729de --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_operators_py.html @@ -0,0 +1,80 @@ +quickrecipes/operators.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Mark C. Miller, Fri Aug 26 14:31:48 PDT 2022
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Get some utils shared across many .py files used for quick recipes.
    +#
    +Source(tests_path('quickrecipes','vqr_utils.py.inc'))
    +
    +def adding_operators():
    +
    +  OpenDatabase(silo_data_path("globe.silo"))
    +  try:
    +    # adding operators {
    +    # Names of all available operator plugins as a python tuple
    +    x = OperatorPlugins()
    +
    +    print(x)
    +    # will produce output something like...
    +    # ('AMRStitchCell', 'AxisAlignedSlice4D', 'BoundaryOp', 'Box', 'CartographicProjection',
    +    #  'Clip', 'Cone', 'ConnectedComponents', 'CoordSwap', 'CreateBonds', 'Cylinder',
    +    #  'DataBinning', 'DeferExpression', 'Displace', 'DualMesh', 'Edge', 'Elevate',
    +    #  'EllipsoidSlice', 'Explode', 'ExternalSurface', ...
    +    #  ..., 'TriangulateRegularPoints', 'Tube')
    +
    +    # We need at least one plot that we can add operators to
    +    AddPlot("Pseudocolor", "dx")
    +    AddPlot("Mesh","mesh1")
    +
    +    # Add Isovolume and Slice operators using whatever their default attributes are.
    +    # The non-zero 2nd arg means to add the operator to all plots. If the 2nd argument
    +    # is not present or zero, it means to add the operator only to the *active* plots
    +    # (by default, the *active* plots are just the last plot added).
    +    AddOperator("Isovolume", 1)
    +    AddOperator("Slice", 1)
    +    DrawPlots()
    +    # adding operators }
    +    TestValueEQ('adding operators error message',GetLastError(),'')
    +    TestPOA('adding operators exceptions')
    +  except Exception as inst:
    +    TestFOA('adding operators exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def setting_operator_attributes():
    +
    +  try:
    +    # setting operator attributes {
    +    OpenDatabase("~juanita/silo/stuff/noise.silo")
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    AddOperator("Slice")
    +    s = SliceAttributes()
    +    s.originType = s.Percent
    +    s.project2d = 0
    +    SetOperatorOptions(s)
    +    DrawPlots()
    +
    +    nSteps = 20
    +    for axis in (0,1,2):
    +      s.axisType = axis
    +      for step in range(nSteps):
    +        t = float(step) / float(nSteps - 1)
    +        s.originPercent = t * 100.
    +        SetOperatorOptions(s)
    +        SaveWindow()
    +    # setting operator attributes }
    +    TestValueEQ('setting operator attributes error message',GetLastError(),'')
    +    TestPOA('setting operator attributes exceptions')
    +  except Exception as inst:
    +    TestFOA('setting operator attributes exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +adding_operators()
    +setting_operator_attributes()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_quantitative_operations.html b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_quantitative_operations.html new file mode 100644 index 000000000..cd9d6222f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_quantitative_operations.html @@ -0,0 +1,116 @@ + +Results for quickrecipes/quantitative_operations.py + +

    Results of VisIt Regression Test - quickrecipes/quantitative_operations

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    defining expressions error message
     "" .eq. "" : True
    defining expressions exceptions
     "True" .eq. "True" : True
    pick string
     hgslice:   = 2.472 .in. 
    +A: noise.silo +Mesh2D +Point: <-10, -7.55102> +Node: 300 +Incident Zones: 294 245 +hgslice: = 2.47203 + + (prec=5, at=86) : True
    pick string
     hgslice:   = 4.043 .in. 
    +D: noise.silo +Mesh2D +Point: <-1.83673, 1.83673> +Node: 1470 +Incident Zones: 1440 1391 1441 1392 +hgslice: = 4.04322 + + (prec=5, at=105) : True
    pick error message
     "" .eq. "" : True
    pick exceptions
     "True" .eq. "True" : True
    lineout 1 error message
     "" .eq. "" : True
    lineout 1 exceptions
     "True" .eq. "True" : True
    lineout 2 error message
     "" .eq. "" : True
    lineout 2 exceptions
     "True" .eq. "True" : True
    query error message
     "" .eq. "" : True
    query exceptions
     "True" .eq. "True" : True
    finding the min and max error message
     "" .eq. "" : True
    finding the min and max exceptions
     "True" .eq. "True" : True
    csv query over time error message
     "" .eq. "" : True
    csv query over time exceptions
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_quantitative_operations_py.html b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_quantitative_operations_py.html new file mode 100644 index 000000000..462be9c66 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_quantitative_operations_py.html @@ -0,0 +1,219 @@ +quickrecipes/quantitative_operations.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Mark C. Miller, Fri Aug 26 14:31:48 PDT 2022
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Get some utils shared across many .py files used for quick recipes.
    +#
    +Source(tests_path('quickrecipes','vqr_utils.py.inc'))
    +
    +def defining_expressions():
    +
    +  try:
    +    # defining expressions {
    +    # Creating a new expression
    +    OpenDatabase("~juanita/silo/stuff/noise.silo")
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +    DefineScalarExpression("newvar", "sin(hardyglobal) + cos(shepardglobal)")
    +    ChangeActivePlotsVar("newvar")
    +    # defining expressions }
    +    TestValueEQ('defining expressions error message',GetLastError(),'')
    +    TestPOA('defining expressions exceptions')
    +  except Exception as inst:
    +    TestFOA('defining expressions exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def pick():
    +
    +  try:
    +    # pick {
    +    OpenDatabase("~juanita/silo/stuff/noise.silo")
    +    AddPlot("Pseudocolor", "hgslice")
    +    DrawPlots()
    +    s = []
    +    # Pick by a node id
    +    PickByNode(300)
    +    s = s + [GetPickOutput()]
    +    # Pick by a cell id
    +    PickByZone(250)
    +    s = s + [GetPickOutput()]
    +    # Pick on a cell using a 3d point
    +    Pick((-2., 2., 0.))
    +    s = s + [GetPickOutput()]
    +    # Pick on the node closest to (-2,2,0)
    +    NodePick((-2,2,0))
    +    s = s + [GetPickOutput()]
    +    # Print all pick results
    +    print(s)
    +    # Will produce output somewhat like...
    +    # ['\nA:  noise.silo\nMesh2D \nPoint: <-10, -7.55102>\nNode:...
    +    #  '\nD:  noise.silo\nMesh2D \nPoint: <-1.83673, 1.83673>\nNode:...
    +    #  ...\nhgslice:  <nodal> = 4.04322\n\n']
    +    # pick }
    +    TestValueIN('pick string',s[0],'hgslice:  <nodal> = 2.472')
    +    TestValueIN('pick string',s[3],'hgslice:  <nodal> = 4.043')
    +    TestValueEQ('pick error message',GetLastError(),'')
    +    TestPOA('pick exceptions')
    +  except Exception as inst:
    +    TestFOA('pick exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def lineout1():
    +
    +  try:
    +    # lineout 1 {
    +    p0 = (-5,-3, 0)
    +    p1 = ( 5, 8, 0)
    +    OpenDatabase("~juanita/silo/stuff/noise.silo")
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +    Lineout(p0, p1)
    +    # Specify 65 sample points
    +    Lineout(p0, p1, 65)
    +    # Do three variables ("default" is "hardyglobal")
    +    Lineout(p0, p1, ("default", "airVf", "radial"))
    +    # lineout 1 }
    +    TestValueEQ('lineout 1 error message',GetLastError(),'')
    +    TestPOA('lineout 1 exceptions')
    +  except Exception as inst:
    +    TestFOA('lineout 1 exception "%s"'%str(inst), LINE())
    +    pass
    +  # No cleanup because next method uses results from this
    +  # DeleteWindow()
    +  # vqr_cleanup()
    +
    +def lineout2():
    +
    +  try:
    +    # lineout 2 {
    +    # Set active window to one containing Lineout curve plots (typically #2)
    +    SetActiveWindow(2)
    +    # Get array of x,y pairs for first curve plot in window
    +    SetActivePlots(0)
    +    hg_vals = GetPlotInformation()["Curve"]
    +    # Get array of x,y pairs for second curve plot in window
    +    SetActivePlots(1)
    +    avf_vals = GetPlotInformation()["Curve"]
    +    # Get array of x,y pairs for third curve plot in window
    +    SetActivePlots(2)
    +    rad_vals = GetPlotInformation()["Curve"]
    +
    +    # Write it as CSV data to a file
    +    for i in range(int(len(hg_vals) / 2)):
    +        idx = i*2+1 # take only y-values in each array
    +        print("%g,%g,%g" % (hg_vals[idx], avf_vals[idx], rad_vals[idx]))
    +    # lineout 2 }
    +    TestValueEQ('lineout 2 error message',GetLastError(),'')
    +    TestPOA('lineout 2 exceptions')
    +  except Exception as inst:
    +    TestFOA('lineout 2 exception "%s"'%str(inst), LINE())
    +    pass
    +  DeleteWindow()
    +  vqr_cleanup()
    +
    +def query():
    +
    +  try:
    +    # query {
    +    OpenDatabase("~juanita/silo/stuff/noise.silo")
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +    Query("NumNodes")
    +    print("The float value is: %g" % GetQueryOutputValue())
    +    Query("NumNodes")
    +    # query }
    +    TestValueEQ('query error message',GetLastError(),'')
    +    TestPOA('query exceptions')
    +  except Exception as inst:
    +    TestFOA('query exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def finding_the_min_and_max():
    +
    +  try:
    +    # finding the min and max {
    +    # Define a helper function to get node/zone id's from query string.
    +    def GetMinMaxIds(qstr):
    +        import string
    +        s = qstr.split(' ')
    +        retval = []
    +        nextGood = 0
    +        idType = 0
    +        for token in s:
    +            if token == "(zone" or token == "(cell":
    +                idType = 1
    +                nextGood = 1
    +                continue
    +            elif token == "(node":
    +                idType = 0
    +                nextGood = 1
    +                continue
    +            if nextGood == 1:
    +                nextGood = 0
    +                retval = retval + [(idType, int(token))]
    +        return retval
    +
    +    # Set up a plot
    +    OpenDatabase("~juanita/silo/stuff/noise.silo")
    +    AddPlot("Pseudocolor", "hgslice")
    +    DrawPlots()
    +    Query("MinMax")
    +
    +    # Do picks on the ids that were returned by MinMax.
    +    for ids in GetMinMaxIds(GetQueryOutputString()):
    +        idType = ids[0]
    +        id = ids[1]
    +        if idType == 0:
    +            PickByNode(id)
    +        else:
    +            PickByZone(id)
    +    # finding the min and max }
    +    TestValueEQ('finding the min and max error message',GetLastError(),'')
    +    TestPOA('finding the min and max exceptions')
    +  except Exception as inst:
    +    TestFOA('finding the min and max exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def csv_query_over_time():
    +
    +  try:
    +    # csv query over time {
    +    OpenDatabase("~juanita/silo/stuff/wave.visit")
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +
    +    n_time_steps = TimeSliderGetNStates()
    +    f = open('points.txt', 'w', encoding='utf-8')
    +    f.write('time, x, y, z, u, v, w\n')
    +    for time_step in range(0, n_time_steps):
    +        TimeSliderSetState(time_step)
    +        pick = PickByNode(domain=0, element=3726, vars=["u", "v", "w"])
    +        Query("Time")
    +        time = GetQueryOutputValue()
    +        f.write('%g, %g, %g, %g, %g, %g, %g\n' % (time, pick['point'][0], pick['point'][1], pick['point'][2], pick['u'], pick['v'], pick['w']))
    +    f.close()
    +    # csv query over time }
    +    TestValueEQ('csv query over time error message',GetLastError(),'')
    +    TestPOA('csv query over time exceptions')
    +  except Exception as inst:
    +    TestFOA('csv query over time exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +defining_expressions()
    +pick()
    +lineout1()
    +lineout2()
    +query()
    +finding_the_min_and_max()
    +csv_query_over_time()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_saving_images.html b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_saving_images.html new file mode 100644 index 000000000..99a7a7f2e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_saving_images.html @@ -0,0 +1,52 @@ + +Results for quickrecipes/saving_images.py + +

    Results of VisIt Regression Test - quickrecipes/saving_images

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    setting output image characteristics error message
     "" .eq. "" : True
    setting output image characteristics no exceptions
     "True" .eq. "True" : True
    saving an image error message
     "" .eq. "" : True
    saving an image no exceptions
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_saving_images_py.html b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_saving_images_py.html new file mode 100644 index 000000000..328ff0c60 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_saving_images_py.html @@ -0,0 +1,56 @@ +quickrecipes/saving_images.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Mark C. Miller, Fri Aug 26 14:31:48 PDT 2022
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Get some utils shared across many .py files used for quick recipes.
    +#
    +Source(tests_path('quickrecipes','vqr_utils.py.inc'))
    +
    +def setting_output_image_characteristics():
    +
    +  try:
    +    # setting output image characteristics {
    +    # Prepare to save a BMP file at 1024x768 resolution 
    +    s = SaveWindowAttributes()
    +    s.format = s.BMP
    +    s.fileName = 'mybmpfile'
    +    s.width, s.height = 1024,768
    +    s.screenCapture = 0
    +    SetSaveWindowAttributes(s)
    +    # Subsequent calls to SaveWindow() will use these settings
    +    # setting output image characteristics }
    +    TestValueEQ('setting output image characteristics error message',GetLastError(),'')
    +    TestPOA('setting output image characteristics no exceptions')
    +  except Exception as inst:
    +    TestFOA('setting output image characteristics exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def saving_an_image():
    +
    +  try:
    +    # saving an image {
    +    # Save images of all timesteps and add each image filename to a list.
    +    names = []
    +    for state in range(TimeSliderGetNStates()):
    +      SetTimeSliderState(state)
    +      # Save the image
    +      n = SaveWindow()
    +      names = names + [n]
    +    print(names)
    +    # saving an image }
    +    TestValueEQ('saving an image error message',GetLastError(),'')
    +    TestPOA('saving an image no exceptions')
    +  except Exception as inst:
    +    TestFOA('saving an image exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +setting_output_image_characteristics()
    +saving_an_image()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_subsetting.html b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_subsetting.html new file mode 100644 index 000000000..7b84087ff --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_subsetting.html @@ -0,0 +1,52 @@ + +Results for quickrecipes/subsetting.py + +

    Results of VisIt Regression Test - quickrecipes/subsetting

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    turning off domains error message
     "" .eq. "" : True
    turning off domains exceptions
     "True" .eq. "True" : True
    turning off materials error message
     "" .eq. "" : True
    turning off materials exceptions
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_subsetting_py.html b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_subsetting_py.html new file mode 100644 index 000000000..f1945aa2c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_subsetting_py.html @@ -0,0 +1,67 @@ +quickrecipes/subsetting.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Mark C. Miller, Fri Aug 26 14:31:48 PDT 2022
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Get some utils shared across many .py files used for quick recipes.
    +#
    +Source(tests_path('quickrecipes','vqr_utils.py.inc'))
    +
    +def turning_off_domains():
    +
    +  try:
    +    # turning off domains {
    +    OpenDatabase("~juanita/silo/stuff/multi_rect2d.silo")
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    # Turning off every other domain
    +    d = GetDomains()
    +    i = 0
    +    for dom in d:
    +        if i%2:
    +            TurnDomainsOff(dom)
    +        i += 1
    +
    +    # Turn all domains off
    +    TurnDomainsOff()
    +
    +    # Turn on domains 3,5,7
    +    TurnDomainsOn((d[3], d[5], d[7]))
    +
    +    # turning off domains }
    +    TestValueEQ('turning off domains error message',GetLastError(),'')
    +    TestPOA('turning off domains exceptions')
    +  except Exception as inst:
    +    TestFOA('turning off domains exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def turning_off_materials():
    +
    +  try:
    +    # turning off materials {
    +    OpenDatabase("~juanita/silo/stuff/multi_rect2d.silo")
    +    AddPlot("FilledBoundary", "mat1")
    +    DrawPlots()
    +    # Get the material names 
    +    GetMaterials()
    +    # GetMaterials() will return a tuple of material names such as
    +    #     ('1', '2', '3')
    +    # Turn off material with name "2"
    +    TurnMaterialsOff("2")
    +    # turning off materials }
    +    TestValueEQ('turning off materials error message',GetLastError(),'')
    +    TestPOA('turning off materials exceptions')
    +  except Exception as inst:
    +    TestFOA('turning off domains exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +turning_off_domains()
    +turning_off_materials()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_view.html b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_view.html new file mode 100644 index 000000000..14e751912 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_view.html @@ -0,0 +1,60 @@ + +Results for quickrecipes/view.py + +

    Results of VisIt Regression Test - quickrecipes/view

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    setting the 2d view error message
     "" .eq. "" : True
    setting the 2d view exceptions
     "True" .eq. "True" : True
    setting the 3d view error message
     "" .eq. "" : True
    setting the 3d view exceptions
     "True" .eq. "True" : True
    flying around plots error message
     "" .eq. "" : True
    flying around plots exceptions
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_view_py.html b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_view_py.html new file mode 100644 index 000000000..eead8b0c8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_view_py.html @@ -0,0 +1,159 @@ +quickrecipes/view.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Mark C. Miller, Fri Aug 26 14:31:48 PDT 2022
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Get some utils shared across many .py files used for quick recipes.
    +#
    +Source(tests_path('quickrecipes','vqr_utils.py.inc'))
    +
    +def setting_the_2d_view():
    +
    +  try:
    +    # setting the 2d view {
    +    OpenDatabase("~juanita/silo/stuff/noise.silo")
    +    AddPlot("Pseudocolor", "hgslice")
    +    AddPlot("Mesh", "Mesh2D")
    +    AddPlot("Label", "hgslice")
    +    DrawPlots()
    +    print("The current view is:", GetView2D())
    +    # Get an initialized 2D view object.
    +    # Note that DrawPlots() must be executed prior to getting
    +    # the view to ensure current view parameters are obtained
    +    v = GetView2D()
    +    v.windowCoords = (-7.67964, -3.21856, 2.66766, 7.87724)
    +    SetView2D(v)
    +    # setting the 2d view }
    +    TestValueEQ('setting the 2d view error message',GetLastError(),'')
    +    TestPOA('setting the 2d view exceptions')
    +  except Exception as inst:
    +    TestFOA('setting the 2d view exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def setting_the_3d_view():
    +
    +  try:
    +    # setting the 3d view {
    +    OpenDatabase("~juanita/silo/stuff/noise.silo")
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    AddPlot("Mesh", "Mesh")
    +    DrawPlots()
    +    # Note that DrawPlots() must be executed prior to getting
    +    # the view to ensure current view parameters are obtained
    +    v = GetView3D()
    +    print("The view is: ", v)
    +    v.viewNormal = (-0.571619, 0.405393, 0.713378)
    +    v.viewUp = (0.308049, 0.911853, -0.271346)
    +    SetView3D(v)
    +    # setting the 3d view }
    +    TestValueEQ('setting the 3d view error message',GetLastError(),'')
    +    TestPOA('setting the 3d view exceptions')
    +  except Exception as inst:
    +    TestFOA('setting the 3d view exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def flying_around_plots():
    +
    +  try:
    +    # flying around plots {
    +    OpenDatabase("~juanita/silo/stuff/globe.silo")
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +
    +    # Create the control points for the views.
    +    c0 = View3DAttributes()
    +    c0.viewNormal = (0, 0, 1)
    +    c0.focus = (0, 0, 0)
    +    c0.viewUp = (0, 1, 0)
    +    c0.viewAngle = 30
    +    c0.parallelScale = 17.3205
    +    c0.nearPlane = 17.3205
    +    c0.farPlane = 81.9615
    +    c0.perspective = 1
    +
    +    c1 = View3DAttributes()
    +    c1.viewNormal = (-0.499159, 0.475135, 0.724629)
    +    c1.focus = (0, 0, 0)
    +    c1.viewUp = (0.196284, 0.876524, -0.439521)
    +    c1.viewAngle = 30
    +    c1.parallelScale = 14.0932
    +    c1.nearPlane = 15.276
    +    c1.farPlane = 69.917
    +    c1.perspective = 1
    +
    +    c2 = View3DAttributes()
    +    c2.viewNormal = (-0.522881, 0.831168, -0.189092)
    +    c2.focus = (0, 0, 0)
    +    c2.viewUp = (0.783763, 0.556011, 0.27671)
    +    c2.viewAngle = 30
    +    c2.parallelScale = 11.3107
    +    c2.nearPlane = 14.8914
    +    c2.farPlane = 59.5324
    +    c2.perspective = 1
    +
    +    c3 = View3DAttributes()
    +    c3.viewNormal = (-0.438771, 0.523661, -0.730246)
    +    c3.focus = (0, 0, 0)
    +    c3.viewUp = (-0.0199911, 0.80676, 0.590541)
    +    c3.viewAngle = 30
    +    c3.parallelScale = 8.28257
    +    c3.nearPlane = 3.5905
    +    c3.farPlane = 48.2315
    +    c3.perspective = 1
    +
    +    c4 = View3DAttributes()
    +    c4.viewNormal = (0.286142, -0.342802, -0.894768)
    +    c4.focus = (0, 0, 0)
    +    c4.viewUp = (-0.0382056, 0.928989, -0.36813)
    +    c4.viewAngle = 30
    +    c4.parallelScale = 10.4152
    +    c4.nearPlane = 1.5495
    +    c4.farPlane = 56.1905
    +    c4.perspective = 1
    +
    +    c5 = View3DAttributes()
    +    c5.viewNormal = (0.974296, -0.223599, -0.0274086)
    +    c5.focus = (0, 0, 0)
    +    c5.viewUp = (0.222245, 0.97394, -0.0452541)
    +    c5.viewAngle = 30
    +    c5.parallelScale = 1.1052
    +    c5.nearPlane = 24.1248
    +    c5.farPlane = 58.7658
    +    c5.perspective = 1
    +
    +    # Make the last point loop around to the first
    +    c6 = c0
    +
    +    # Create a tuple of camera values and x values. The x values
    +    # determine where in [0,1] the control points occur.
    +    cpts = (c0, c1, c2, c3, c4, c5, c6)
    +    x=[]
    +    for i in range(7):
    +        x = x + [float(i) / float(6.)]
    +
    +    # Animate the view using EvalCubicSpline.
    +    nsteps = 100
    +    for i in range(nsteps):
    +        t = float(i) / float(nsteps - 1)
    +        c = EvalCubicSpline(t, x, cpts)
    +        c.nearPlane = -34.461
    +        c.farPlane = 34.461
    +        SetView3D(c)
    +    # flying around plots }
    +    TestValueEQ('flying around plots error message',GetLastError(),'')
    +    TestPOA('flying around plots exceptions')
    +  except Exception as inst:
    +    TestFOA('flying around plots exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +setting_the_2d_view()
    +setting_the_3d_view()
    +flying_around_plots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_working_with_annotations.html b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_working_with_annotations.html new file mode 100644 index 000000000..01b188fcd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_working_with_annotations.html @@ -0,0 +1,76 @@ + +Results for quickrecipes/working_with_annotations.py + +

    Results of VisIt Regression Test - quickrecipes/working_with_annotations

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    using gradient background colors error message
     "" .eq. "" : True
    using gradient background colors exceptions
     "True" .eq. "True" : True
    adding a banner error message
     "" .eq. "" : True
    adding a banner exceptions
     "True" .eq. "True" : True
    adding a time slider error message
     "" .eq. "" : True
    adding a time slider exceptions
     "True" .eq. "True" : True
    adding a logo error message
     "" .eq. "" : True
    adding a logo exceptions
     "True" .eq. "True" : True
    modifying a legend error message
     "" .eq. "" : True
    modifying a legend exceptions
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_working_with_annotations_py.html b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_working_with_annotations_py.html new file mode 100644 index 000000000..abd29369b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_working_with_annotations_py.html @@ -0,0 +1,195 @@ +quickrecipes/working_with_annotations.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Mark C. Miller, Fri Aug 26 14:31:48 PDT 2022
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Get some utils shared across many .py files used for quick recipes.
    +#
    +Source(tests_path('quickrecipes','vqr_utils.py.inc'))
    +
    +def using_gradient_background_colors():
    +
    +  try:
    +    # using gradient background colors {
    +    # Set a blue/black, radial, gradient background.
    +    a = AnnotationAttributes()
    +    a.backgroundMode = a.Gradient
    +    a.gradientBackgroundStyle = a.Radial
    +    a.gradientColor1 = (0,0,255,255) # Blue
    +    a.gradientColor2 = (0,0,0,255) # Black
    +    SetAnnotationAttributes(a)
    +    # using gradient background colors }
    +    TestValueEQ('using gradient background colors error message',GetLastError(),'')
    +    TestPOA('using gradient background colors exceptions')
    +  except Exception as inst:
    +    TestFOA('using gradient background colors exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def adding_a_banner():
    +
    +  try:
    +    # adding a banner {
    +    # Create a Text2D object to indicate the visualization is unclassified.
    +
    +    # Note the annoation object is added to the viewer window the moment it is created.
    +    banner = CreateAnnotationObject("Text2D")
    +
    +    # Note text is updated in the viewer window the moment it is changed.
    +    banner.text = "Unclassified"
    +
    +    banner.position = (0.37, 0.95)
    +    banner.fontBold = 1
    +
    +    # print the attributes to see what you can set in the Text2D object.
    +    print(banner)
    +    # print(banner) will print something like...
    +    #    visible = 1
    +    #    position = (0.5, 0.5)
    +    #    height = 0.03
    +    #    textColor = (0, 0, 0, 255)
    +    #    useForegroundForTextColor = 1
    +    #    text = "2D text annotation"
    +    #    fontFamily = Arial  # Arial, Courier, Times
    +    #    fontBold = 0
    +    #    fontItalic = 0
    +    #    fontShadow = 0
    +    # adding a banner }
    +    TestValueEQ('adding a banner error message',GetLastError(),'')
    +    TestPOA('adding a banner exceptions')
    +  except Exception as inst:
    +    TestFOA('adding a banner exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def adding_a_time_slider():
    +
    +  try:
    +    # adding a time slider {
    +    # Add a time slider in the lower left corner
    +    slider = CreateAnnotationObject("TimeSlider")
    +
    +    # Adjust the height. Takes effect immediately as the value is assigned.
    +    slider.height = 0.07
    +
    +    # Print members that are available in the time slider object
    +    print(slider)
    +    # will produce something like...
    +    #    visible = 1
    +    #    active = 1
    +    #    position = (0.01, 0.01)
    +    #    width = 0.4
    +    #    height = 0.05
    +    #    textColor = (0, 0, 0, 255)
    +    #    useForegroundForTextColor = 1
    +    #    startColor = (0, 255, 255, 255)
    +    #    endColor = (255, 255, 255, 153)
    +    #    text = "Time=$time"
    +    #    timeFormatString = "%g"
    +    #    timeDisplay = AllFrames  # AllFrames, FramesForPlot, StatesForPlot, UserSpecified
    +    #    percentComplete = 0
    +    #    rounded = 1
    +    #    shaded = 1
    +    # adding a time slider }
    +    TestValueEQ('adding a time slider error message',GetLastError(),'')
    +    TestPOA('adding a time slider exceptions')
    +  except Exception as inst:
    +    TestFOA('adding a time slider exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def adding_a_logo():
    +
    +  try:
    +    # adding a logo {
    +    # Incorporate LLNL logo image (llnl.jpeg) as an annotation
    +    image = CreateAnnotationObject("Image")
    +    image.image = "llnl.jpeg"
    +    image.position = (0.02, 0.02)
    +
    +    # Print the other image annotation options
    +    print(image)
    +    # Will print something like...
    +    #    visible = 1
    +    #    active = 1
    +    #    position = (0, 0)
    +    #    transparencyColor = (0, 0, 0, 255)
    +    #    useTransparencyColor = 0
    +    #    width = 100.000000
    +    #    height = 100.000000
    +    #    maintainAspectRatio = 1
    +    #    image = ("")
    +    # adding a logo }
    +    TestValueEQ('adding a logo error message',GetLastError(),'')
    +    TestPOA('adding a logo exceptions')
    +  except Exception as inst:
    +    TestFOA('adding a logo exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def modifying_a_legend():
    +
    +  try:
    +    # modifying a legend {
    +    # Open a file and make a plot
    +    OpenDatabase("~juanita/silo/stuff/noise.silo")
    +    AddPlot("Mesh", "Mesh")
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +    # Get the legend annotation object for the Pseudocolor plot, the second
    +    # plot in the list (0-indexed).
    +    plotName = GetPlotList().GetPlots(1).plotName
    +    legend = GetAnnotationObject(plotName)
    +    # See if we can scale the legend.
    +    legend.xScale = 3.
    +    legend.yScale = 3.
    +    # the bounding box.
    +    legend.drawBoundingBox = 1
    +    legend.boundingBoxColor = (180,180,180,230)
    +    # Make it horizontal
    +    legend.orientation = legend.HorizontalBottom
    +    # moving the legend
    +    legend.managePosition = 0
    +    legend.position = (0.7,0.15)
    +    # text color
    +    InvertBackgroundColor()
    +    legend.useForegroundForTextColor = 0
    +    legend.textColor = (255, 0, 0, 255)
    +    # number format
    +    legend.numberFormat = "%1.4e"
    +    # the font.
    +    legend.fontFamily = legend.Arial
    +    legend.fontBold = 1
    +    legend.fontItalic = 1
    +    # turning off the labels.
    +    legend.fontItalic = 0
    +    legend.drawLabels = 0
    +    legend.drawMinMax = 0
    +    # turning off the title.
    +    legend.drawTitle = 0
    +    # Use user-supplied labels, rather than numeric values.
    +    legend.controlTicks=0
    +    legend.drawLabels = legend.Labels
    +    # suppliedLabels must be strings, only valid when controlTicks is 0
    +    legend.suppliedLabels=("A", "B", "C", "D", "E")
    +    # Give the legend a custom title
    +    legend.useCustomTitle=1
    +    legend.customTitle="my custom title"
    +    # modifying a legend }
    +    TestValueEQ('modifying a legend error message',GetLastError(),'')
    +    TestPOA('modifying a legend exceptions')
    +  except Exception as inst:
    +    TestFOA('modifying a legend exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +using_gradient_background_colors()
    +adding_a_banner()
    +adding_a_time_slider()
    +adding_a_logo()
    +modifying_a_legend()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_working_with_dbs.html b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_working_with_dbs.html new file mode 100644 index 000000000..30e7d96b6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_working_with_dbs.html @@ -0,0 +1,68 @@ + +Results for quickrecipes/working_with_dbs.py + +

    Results of VisIt Regression Test - quickrecipes/working_with_dbs

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    opening a database error message
     "" .eq. "" : True
    opening a database no exceptions
     "True" .eq. "True" : True
    opening a database at specific time error message
     "" .eq. "" : True
    opening a database at specific time no exceptions
     "True" .eq. "True" : True
    opening a virtual database error message
     "" .eq. "" : True
    opening a virtual database no exceptions
     "True" .eq. "True" : True
    opening a remote database error message
     "" .eq. "" : True
    opening a remote database no exceptions
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_working_with_dbs_py.html b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_working_with_dbs_py.html new file mode 100644 index 000000000..69ddc4a99 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_working_with_dbs_py.html @@ -0,0 +1,78 @@ +quickrecipes/working_with_dbs.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Mark C. Miller, Fri Aug 26 14:31:48 PDT 2022
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Get some utils shared across many .py files used for quick recipes.
    +#
    +Source(tests_path('quickrecipes','vqr_utils.py.inc'))
    +
    +def opening_a_database():
    +
    +  try:
    +    # opening a database {
    +    # Open a database (no time specified defaults to time state 0)
    +    OpenDatabase("/Users/amina/data/pdb_test_data/allinone00.pdb")
    +    # opening a database }
    +    TestValueEQ('opening a database error message',GetLastError(),'')
    +    TestPOA('opening a database no exceptions')
    +  except Exception as inst:
    +    TestFOA('opening a database exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def opening_a_database_at_specific_time():
    +
    +  try:
    +    # opening a database at specific time {
    +    # Open a database at a specific time state to pick up transient variables
    +    OpenDatabase("/Users/amina/data/pdb_test_data/allinone00.pdb", 17)
    +    # opening a database at specific time }
    +    TestValueEQ('opening a database at specific time error message',GetLastError(),'')
    +    TestPOA('opening a database at specific time no exceptions')
    +  except Exception as inst:
    +    TestFOA('opening a database at specific time exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def opening_a_virtual_database():
    +
    +  try:
    +    # opening a virtual database {
    +    # Opening just one file, the first, in series wave0000.silo, wave0010.silo, ...
    +    OpenDatabase("~juanita/silo/stuff/wave0000.silo")
    +
    +    # Opening a virtual database representing all available states.
    +    OpenDatabase("~juanita/silo/stuff/wave*.silo database")
    +    # opening a virtual database }
    +    TestValueEQ('opening a virtual database error message',GetLastError(),'')
    +    TestPOA('opening a virtual database no exceptions')
    +  except Exception as inst:
    +    TestFOA('opening a virtual database exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def opening_a_remote_database():
    +
    +  try:
    +    # opening a remote database {
    +    # Opening a file on a remote computer by giving a host name
    +    # Also, open the database to a later time slice (17)
    +    OpenDatabase("thunder:~juanita/silo/stuff/wave.visit", 17)
    +    # opening a remote database }
    +    TestValueEQ('opening a remote database error message',GetLastError(),'')
    +    TestPOA('opening a remote database no exceptions')
    +  except Exception as inst:
    +    TestFOA('opening a remote database exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +opening_a_database()
    +opening_a_database_at_specific_time()
    +opening_a_virtual_database()
    +opening_a_remote_database()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_working_with_plots.html b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_working_with_plots.html new file mode 100644 index 000000000..49cc6a071 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_working_with_plots.html @@ -0,0 +1,76 @@ + +Results for quickrecipes/working_with_plots.py + +

    Results of VisIt Regression Test - quickrecipes/working_with_plots

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    creating a plot error message
     "" .eq. "" : True
    creating a plot exceptions
     "True" .eq. "True" : True
    plotting materials error message
     "" .eq. "" : True
    plotting materials exceptions
     "True" .eq. "True" : True
    setting plot attributes message
     "" .eq. "" : True
    setting plot attributes exceptions
     "True" .eq. "True" : True
    working with multiple plots error message
     "" .eq. "" : True
    working with multiple plots exceptions
     "True" .eq. "True" : True
    plots in the error state error message
     "" .eq. "" : True
    plots in the error state exceptions
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_working_with_plots_py.html b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_working_with_plots_py.html new file mode 100644 index 000000000..fc0e2bd15 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/quickrecipes_working_with_plots_py.html @@ -0,0 +1,196 @@ +quickrecipes/working_with_plots.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Mark C. Miller, Fri Aug 26 14:31:48 PDT 2022
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Get some utils shared across many .py files used for quick recipes.
    +#
    +Source(tests_path('quickrecipes','vqr_utils.py.inc'))
    +
    +def creating_a_plot():
    +
    +  OpenDatabase(silo_data_path("wave.visit"))
    +  try:
    +    # creating a plot {
    +    # Names of all available plot plugins as a python tuple
    +    x = PlotPlugins()
    +
    +    # print(x) will produce something like...
    +    #     ('Boundary', 'Contour', 'Curve', 'FilledBoundary', 'Histogram',
    +    #     'Label', 'Mesh', 'Molecule', 'MultiCurve', 'ParallelCoordinates',
    +    #     'Pseudocolor', 'Scatter', 'Spreadsheet', 'Subset', 'Tensor',
    +    #     'Truecolor', 'Vector', 'Volume')
    +    print(x)
    +
    +    # Create plots with AddPlot(<plot-plugin-name>,<database-variable-name>)
    +    AddPlot("Pseudocolor", "pressure")
    +    AddPlot("Mesh", "quadmesh")
    +
    +    # Draw the plots
    +    DrawPlots()
    +    # creating a plot }
    +    TestValueEQ('creating a plot error message',GetLastError(),'')
    +    TestPOA('creating a plot exceptions')
    +  except Exception as inst:
    +    TestFOA('creating a plot exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def plotting_materials():
    +
    +  OpenDatabase(silo_data_path("globe.silo"))
    +  try:
    +    # plotting materials {
    +    # Plot material boundaries
    +    AddPlot("Boundary", "mat1")
    +    # Plot materials
    +    AddPlot("FilledBoundary", "mat1")
    +    # plotting materials }
    +    TestValueEQ('plotting materials error message',GetLastError(),'')
    +    TestPOA('plotting materials exceptions')
    +  except Exception as inst:
    +    TestFOA('plotting materials exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def setting_plot_attributes():
    +
    +  OpenDatabase(silo_data_path("wave.visit"))
    +  try:
    +    # setting plot attributes {
    +    # Creating a Pseudocolor plot and setting min/max values.
    +    AddPlot("Pseudocolor", "pressure")
    +    p = PseudocolorAttributes()
    +
    +    # print p to find the names of members you want to change
    +    #
    +    # print(p) will produce output somewhat like...
    +    #     scaling = Linear  # Linear, Log, Skew
    +    #     skewFactor = 1
    +    #     limitsMode = OriginalData  # OriginalData, ActualData
    +    #     minFlag = 0
    +    #     min = 0
    +    #     useBelowMinColor = 0
    +    #     belowMinColor = (0, 0, 0, 255)
    +    #     maxFlag = 0
    +    #     max = 1
    +    #     .
    +    #     .
    +    #     .
    +    print(p)
    +
    +    # Set the min/max values
    +    p.min, p.minFlag = 0.0, 1
    +    p.max, p.maxFlag = 10.0, 1
    +    SetPlotOptions(p)
    +    # setting plot attributes }
    +    TestValueEQ('setting plot attributes message',GetLastError(),'')
    +    TestPOA('setting plot attributes exceptions')
    +  except Exception as inst:
    +    TestFOA('setting plot attributes exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +def working_with_multiple_plots():
    +
    +  OpenDatabase(silo_data_path("tire.silo"))
    +  try:
    +    # working with multiple plots {
    +
    +    # Create more than 1 plot of the same type
    +    AddPlot("Pseudocolor", "pressure")
    +    AddPlot("Pseudocolor", "temperature")
    +
    +    # List the plots. The second plot should be active.
    +    ListPlots()
    +
    +    # The output from ListPlots() will look something like...
    +    #     Plot[0]|id=5;type="Pseudocolor";database="localhost:/Users/miller86/visit/visit/data/silo_hdf5_test_data/tire.silo";
    +    #         var=pressure;active=0;hidden=0;framerange=(0, 0);keyframes={0};database keyframes={0};operators={};
    +    #         activeOperator=-1
    +    #     Plot[1]|id=6;type="Pseudocolor";database="localhost:/Users/miller86/visit/visit/data/silo_hdf5_test_data/tire.silo";
    +    #         var=temperature;active=1;hidden=0;framerange=(0, 0);keyframes={0};database keyframes={0};operators={};
    +    #         activeOperator=-1
    +    # Note that active=1 for Plot[1] meaning plot #1 is the active plot
    +
    +    # Draw the plots
    +    DrawPlots()
    +
    +    # Hide the first plot
    +    SetActivePlots(0) # makes plot 0 the active plot
    +    HideActivePlots()
    +
    +    # Set both plots' color table to "hot"
    +    p = PseudocolorAttributes()
    +    p.colorTableName = "hot"
    +    SetActivePlots((0,1)) # makes both plots active
    +    SetPlotOptions(p)
    +
    +    # Show the first plot again.
    +    SetActivePlots(0)
    +    HideActivePlots()
    +
    +    # Delete the second plot
    +    SetActivePlots(1)
    +    DeleteActivePlots()
    +    ListPlots()
    +
    +    # working with multiple plots }
    +    TestValueEQ('working with multiple plots error message',GetLastError(),'')
    +    TestPOA('working with multiple plots exceptions')
    +  except Exception as inst:
    +    TestFOA('working with multiple plots exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +  CloseDatabase(silo_data_path("tire.silo"))
    +
    +def plots_in_the_error_state():
    +
    +  try:
    +    # plots in the error state {
    +
    +    # Open the database at state 20 and add plots for "pressure" and "transient".
    +    # "transient" variable exists only in states 18...51.
    +    OpenDatabase(silo_data_path("wave.visit"),20)
    +    AddPlot("Pseudocolor","pressure")
    +    AddPlot("Pseudocolor","transient")
    +    DrawPlots()
    +
    +    # Start saving images from every 10th state starting at state 20 
    +    # but take care to clean up when we get an error.
    +    for state in range(20,TimeSliderGetNStates(),10):
    +
    +        TimeSliderSetState(state)
    +
    +        if DrawPlots() == 0:
    +
    +            # Find plot(s) in error state and remove them
    +            pl = GetPlotList()
    +            for i in range(pl.GetNumPlots()):
    +                if pl.GetPlots(i).stateType == pl.GetPlots(i).Error:
    +                    SetActivePlots((i,))
    +                    DeleteActivePlots()
    +
    +            # Clear the last error message
    +            GetLastError(1)
    +
    +        SaveWindow()
    +
    +    # plots in the error state }
    +    TestValueEQ('plots in the error state error message',GetLastError(),'')
    +    TestPOA('plots in the error state exceptions')
    +  except Exception as inst:
    +    TestFOA('plots in the error state exception "%s"'%str(inst), LINE())
    +    pass
    +  vqr_cleanup()
    +
    +creating_a_plot()
    +plotting_materials()
    +setting_plot_attributes()
    +working_with_multiple_plots()
    +plots_in_the_error_state()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_annot_macros.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_annot_macros.html new file mode 100644 index 000000000..ea92fd494 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_annot_macros.html @@ -0,0 +1,301 @@ + +Results for rendering/annot_macros.py + +

    Results of VisIt Regression Test - rendering/annot_macros

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    All non-empty macros in all text modes
    annot_macros_allmacros_00.000.00
    annot_macros_allmacros_10.000.00
    annot_macros_allmacros_20.000.00
    annot_macros_allmacros_30.000.00
    annot_macros_allmacros_40.000.00
    annot_macros_allmacros_50.000.00
    annot_macros_allmacros_60.000.00
    annot_macros_allmacros_70.000.00
    annot_macros_allmacros_80.000.00
    annot_macros_allmacros_90.000.00
    annot_macros_allmacros_100.000.00
    annot_macros_allmacros_110.000.00
    annot_macros_allmacros_120.000.00
    annot_macros_allmacros_130.000.00
    annot_macros_allmacros_140.000.00
    annot_macros_allmacros_150.000.00
    Multiple macros in same annotation
    annot_macros_multimacro_00.000.00
    annot_macros_multimacro_10.000.00
    annot_macros_multimacro_20.000.00
    Printf formatting of $macro%fmt$
    annot_macros_printf_00.000.00
    annot_macros_printf_10.000.00
    annot_macros_printf_20.000.00
    annot_macros_printf_30.000.00
    annot_macros_printf_40.000.00
    annot_macros_printf_50.000.00
    annot_macros_printf_60.000.00
    annot_macros_printf_70.000.00
    annot_macros_printf_80.000.00
    annot_macros_printf_90.000.00
    annot_macros_printf_100.000.00
    Text annotation file (tafile) macros
    annot_macros_tafile_00.000.00
    annot_macros_tafile_10.000.00
    annot_macros_tafile_20.330.00
    annot_macros_tafile_30.000.00
    annot_macros_tafile_40.000.00
    annot_macros_tafile_50.000.00
    annot_macros_tafile_60.330.00
    annot_macros_tafile_70.000.00
    Timeslider printf format handling
    annot_macros_tsprintf_00.000.00
    annot_macros_tsprintf_10.000.00
    annot_macros_tsprintf_20.000.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_annot_macros_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_annot_macros_py.html new file mode 100644 index 000000000..1be39f76d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_annot_macros_py.html @@ -0,0 +1,219 @@ +rendering/annot_macros.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  annot_macros.py
    +#
    +#  Tests:      mesh        - 2D curvilinear, single domain
    +#              plots       - Pseudocolor
    +#              annotations - Text2D
    +#
    +#  Defect ID:  None
    +#
    +#  Mark C. Miller, Thu Nov  7 14:17:54 PST 2024
    +# ----------------------------------------------------------------------------
    +import os
    +
    +def create_text2d_annot():
    +    text = CreateAnnotationObject("Text2D")
    +    text.height = 0.03
    +    text.position = (0.10, 0.75)
    +    return text
    +
    +def allmacros():
    +    """All non-empty macros in all text modes"""
    +
    +    #
    +    # Loop through through all macros rendering with default format
    +    # both as 2D text and as 3D text. We skip "lod", "xunits", "yunits",
    +    # "zunits" and "varunits" because the input database has no values
    +    # specified for these.
    +    #
    +    macroNames = ("time", "cycle", "index", "numstates", "dbcomment",
    +        "vardim", "numvar", "topodim", "spatialdim", "varname",
    +        "meshname", "filename", "fulldbname", "xlabel", "ylabel", "zlabel")
    +
    +    text2d = create_text2d_annot()
    +    text3d = CreateAnnotationObject("Text3D")
    +    text3d.heightMode = text3d.Relative
    +    text3d.relativeHeight = 0.03
    +    text3d.position=(2.0, 1.0, 7.0)
    +    textts = CreateAnnotationObject("TimeSlider")
    +    textts.height = 0.15
    +    textts.position = (0.05, 0.1)
    +    for mtext in macroNames:
    +        text2d.text = "%s $%s"%(mtext, mtext)
    +        text3d.text = "%s $%s"%(mtext, mtext)
    +        textts.text = "%s $%s"%(mtext, mtext)
    +        TestAutoName()
    +    text2d.Delete()
    +    text3d.Delete()
    +    textts.Delete()
    +
    +def multimacro():
    +    """Multiple macros in same annotation"""
    +
    +    text = create_text2d_annot()
    +    text.text = "State $index of $numstates"
    +    TestAutoName()
    +    text.text = "Time,Cycle,Index=($time,$cycle,$index)"
    +    TestAutoName()
    +    text.text = "Cycle,Cycle,Cycle=($cycle,$cycle,$cycle)"
    +    TestAutoName()
    +    text.Delete()
    +
    +def printf():
    +    """Printf formatting of $macro%fmt$"""
    +
    +    text = create_text2d_annot()
    +    # Print index/state always with 4 digits and leading zeros
    +    text.text = "State $index%04d$ of $numstates%06d$"
    +    TestAutoName()
    +    # Print index in hexadecimal format
    +    text.text = "Index=0X$index%X$"
    +    TestAutoName()
    +    # Print time with 12 width and 6 after decimal pt.
    +    text.text = "Time=$time%12.6f$"
    +    TestAutoName()
    +    # Print time with 20 width, leading sign, 10 after decimal pt.
    +    text.text = "Time=$time%+20.10f$"
    +    TestAutoName()
    +    # Print time with 10 char width, 6 precision, exponential format.
    +    text.text = "Time=$time%+10.6e$"
    +    TestAutoName()
    +    # Print time with %A (hex) to see full precision of actual value
    +    text.text = "Time=$time ($time%A$)"
    +    TestAutoName()
    +    # Print first 3 chars of meshname
    +    text.text = "First 3 chars meshname='$meshname%.3s$'"
    +    TestAutoName()
    +    # Print first 3 chars of meshname
    +    text.text = "Left justified in 6 chars meshname='$meshname%-6.6s$'"
    +    TestAutoName()
    +    # Handling % and $ chars in string
    +    text.text = "State $index%02d$ of $numstates%02d$ = " + "%2d%%"%(100*float(13)/float(TimeSliderGetNStates()))
    +    TestAutoName()
    +    text.text = "State $index is 18.3% into $numstates"
    +    TestAutoName()
    +    text.text = "$cycle $US, $cycle$US"
    +    TestAutoName()
    +    text.Delete()
    +
    +def tafile():
    +    """Text annotation file (tafile) macros"""
    +
    +    #
    +    # Create lists of 71 float values for "ftafile1.txt" and string values 
    +    # for "stafile1.txt" starting at 0.
    +    #
    +    fvals = [] # float values
    +    svals = [] # string values
    +    for i in range(71):
    +        fvals.append(i if i%2==0 else -i)
    +        svals.append("VisIt_%03d"%i)
    +    fvals[13] = -13.333678
    +
    +    try:
    +        #
    +        # Write the two lists to their repsective tafile files.
    +        # Note this is relying up on the tafile being peer to database file
    +        # method to locate these files. The other options are via ~/.visit
    +        # and via TMP both of which involve different paths for py code
    +        # on Windows and so are less attractive. This is inside a try...finally
    +        # block to ensure the created files are then later removed from
    +        # the silo data dir where they are created.
    +        #
    +        with open(silo_data_path("stafile1.txt"), 'w') as file1, \
    +             open(silo_data_path("ftafile1.txt"), 'w') as file2:
    +             for val1, val2 in zip(svals, fvals):
    +                 file1.write(val1 + "\n")
    +                 file2.write(f"{val2:.8f}" + "\n")
    +
    +        # Ok, now produce annotation text using $stafile1 and $ftafile1.
    +        # Move around in time steps a bit also.
    +        #
    +        # There are a couple of test results here where the plot can vary
    +        # slightly from run to run. We deal with that by allowing for a 
    +        # very minor pixdiff (1/2 of a percent) threshold.
    +        #
    +        text = create_text2d_annot()
    +        text.text = "stafile=$stafile1, ftafile=$ftafile1"
    +        TestAutoName()
    +        TimeSliderNextState()
    +        TestAutoName()
    +        TimeSliderNextState()
    +        TestAutoName(pixdiff=0.5)
    +        TimeSliderSetState(5)
    +        TestAutoName()
    +        TimeSliderSetState(13)
    +
    +        #
    +        # tafiles macros combined with printf formats
    +        #
    +        text.text = "stafile=$stafile1%.3s$, ftafile=$ftafile1%8.3f$"
    +        TestAutoName()
    +        TimeSliderNextState()
    +        TestAutoName()
    +        TimeSliderNextState()
    +        TestAutoName(pixdiff=0.5)
    +        TimeSliderSetState(5)
    +        TestAutoName()
    +        text.Delete()
    +        TimeSliderSetState(13)
    +
    +    finally:
    +        os.remove(silo_data_path("stafile1.txt"))
    +        os.remove(silo_data_path("ftafile1.txt"))
    +
    +def tsprintf():
    +    """Timeslider printf format handling"""
    +
    +    text = CreateAnnotationObject("TimeSlider")
    +    text.height = 0.15
    +    text.position = (0.05, 0.1)
    +    text.timeFormatString = "%0.4f"
    +    TestAutoName()
    +    text.timeFormatString = ""
    +    text.text="Time=$time%-10.6E$"
    +    TestAutoName()
    +    text.text="Time=$time"
    +    text.timeFormatString = "%A"
    +    TestAutoName()
    +
    +def init():
    +    """Initialization for all tests"""
    +
    +    # Set up the annotation colors, etc.
    +    a = GetAnnotationAttributes()
    +    a.backgroundColor = (80, 0, 100, 255)
    +    a.foregroundColor = (255, 255, 255, 255)
    +    a.backgroundMode = a.Solid
    +    SetAnnotationAttributes(a)
    +
    +    #
    +    # Open up the one and only database to be used for all these
    +    # tests, add a plot set time step to something in the middle,
    +    # index=13
    +    #
    +    OpenDatabase(silo_data_path("wave.visit"))
    +    AddPlot("Pseudocolor", "pressure")
    +    DrawPlots()
    +    TimeSliderSetState(13)
    +
    +def finalize():
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("wave.visit"))
    +
    +def main():
    +
    +    init()
    +    allmacros()
    +    multimacro()
    +    printf()
    +    tafile()
    +    tsprintf()
    +    finalize()
    +
    +main()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_annotation.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_annotation.html new file mode 100644 index 000000000..7e6aec9f8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_annotation.html @@ -0,0 +1,294 @@ + +Results for rendering/annotation.py + +

    Results of VisIt Regression Test - rendering/annotation

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    annot_010.000.00
    annot_020.000.00
    annot_030.000.00
    annot_040.000.00
    annot_050.000.00
    annot2d_010.000.00
    annot2d_020.000.00
    annot2d_030.000.00
    annot2d_040.000.00
    annot2d_050.000.00
    annot2d_060.000.00
    annot2d_070.000.00
    annot2d_080.000.00
    annot2d_090.000.00
    annot2d_100.000.00
    annot2d_110.000.00
    annot2d_120.000.00
    annot2d_130.000.00
    annot2d_140.000.00
    annot2d_150.000.00
    annot2d_160.000.00
    annot2d_170.000.00
    annot2d_180.000.00
    annot2d_190.000.00
    annot2d_200.000.00
    annot2d_210.000.00
    annot2d_220.000.00
    annot2d_230.000.00
    annot2d_240.000.00
    annot2d_250.000.00
    annot2d_260.000.00
    annot2d_270.000.00
    annot3d_010.000.00
    annot3d_020.000.00
    annot3d_030.000.00
    annot3d_040.000.00
    annot3d_050.000.00
    annot3d_060.000.00
    annot3d_070.000.00
    annot3d_080.000.00
    annot3d_090.000.00
    annot3d_100.000.00
    annot3d_110.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_annotation_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_annotation_py.html new file mode 100644 index 000000000..87abb42e8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_annotation_py.html @@ -0,0 +1,469 @@ +rendering/annotation.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  annotation.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - pc, subset
    +#              operators - none
    +#              selection - none
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Mon Jun 3 13:25:18 PST 2002
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Thu Jul 18 10:33:07 PDT 2002
    +#    Added test for combinations of ticks/labels/gridlines to ensure
    +#    that they all play together nicely.  Removed test of userInfo, as it will
    +#    always have a different timestamp than the baseline image.
    +#
    +#    Kathleen Bonnell, Thu Sep  5 10:55:47 PDT 2002 
    +#    Changed the variable format for SubsetPlots, to reflect new interface
    +#    which allows subsets of groups. 
    +#
    +#    Eric Brugger, Mon Nov 11 14:09:08 PST 2002
    +#    Changed the test suite extensively since the 2d annotations were
    +#    enhanced significantly and the 3d annotation field names were changed
    +#    to match.
    +#
    +#    Hank Childs, Tue Nov 19 15:45:12 PST 2002
    +#    Changed Aslice to Slice to account for interface change in slicing.
    +#
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from Subset plots.
    +#
    +#    Eric Brugger, Tue Nov 25 15:12:15 PST 2003
    +#    Added tests for axis labeling with narrow 2d windows.
    +#
    +#    Kathleen Bonnell, Wed May  5 08:11:53 PDT 2004
    +#    Modified slice atts to get same picture since defaults have changed. 
    +#
    +#    Kathleen Bonnell, Mon Sep 14 15:01:25 PDT 2009
    +#    Removed deprecated annotation settings.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Wed Jan  8 13:39:46 PST 2014
    +#    Added 2d tests 26 & 27, gridlines with a different saved window size.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset.
    +#
    +#    Alister Maguire, Mon Mar  5 14:10:23 PST 2018
    +#    Added a test for manipulating the triad attributes. 
    +#
    +#    Alister Maguire, Fri Mar  9 10:21:50 PST 2018
    +#    Now using a 'set manually' flag for the triad attribtues. 
    +# 
    +#    Justin Privitera, Wed Oct  9 14:47:05 PDT 2024
    +#    Changed triadlinewidth to 2 from 3 to avoid rebaselining.
    +#    The triad line width is now an int not a float and 0 corresponds to 
    +#    line width 1, so all the values have been shifted up.
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Slice")
    +slice = SliceAttributes()
    +slice.project2d = 1
    +slice.SetAxisType(slice.XAxis)
    +slice.SetFlip(1)
    +SetOperatorOptions(slice)
    +DrawPlots()
    +
    +# Test gradient backgrounds
    +a = GetAnnotationAttributes()
    +a.gradientColor1 = (0, 255, 255)
    +a.gradientColor2 = (0, 0, 255)
    +a.gradientBackgroundStyle = 0 # TopToBottom
    +a.backgroundMode = 1 # Gradient
    +SetAnnotationAttributes(a)
    +Test("annot_01")
    +a.gradientBackgroundStyle = 4 # Radial
    +SetAnnotationAttributes(a)
    +Test("annot_02")
    +
    +# Test setting background/foreground colors
    +a.backgroundColor = (0, 0, 0)
    +a.foregroundColor = (255, 255, 255)
    +a.backgroundMode = 0 # Solid
    +SetAnnotationAttributes(a)
    +Test("annot_03")
    +
    +# Turn off the database
    +a.databaseInfoFlag = 0
    +SetAnnotationAttributes(a)
    +Test("annot_04")
    +
    +a.databaseInfoFlag = 1
    +
    +# Turn off the legend
    +a.legendInfoFlag = 0
    +SetAnnotationAttributes(a)
    +Test("annot_05")
    +
    +a.legendInfoFlag = 1
    +
    +##
    +## Test 2D options
    +##
    +
    +# Turn off the 2D axes
    +a.axes2D.visible = 0
    +SetAnnotationAttributes(a)
    +Test("annot2d_01")
    +
    +a.axes2D.visible = 1
    +
    +# Test 2D axis labels
    +a.axes2D.xAxis.label.visible = 0
    +a.axes2D.yAxis.label.visible = 0
    +SetAnnotationAttributes(a)
    +Test("annot2d_02")
    +
    +a.axes2D.xAxis.label.visible = 1
    +a.axes2D.yAxis.label.visible = 0
    +SetAnnotationAttributes(a)
    +Test("annot2d_03")
    +
    +a.axes2D.xAxis.label.visible = 0
    +a.axes2D.yAxis.label.visible = 1
    +SetAnnotationAttributes(a)
    +Test("annot2d_04")
    +
    +a.axes2D.xAxis.label.visible = 1
    +a.axes2D.yAxis.label.visible = 1
    +
    +# Test 2D axis titles
    +a.axes2D.xAxis.title.visible = 0
    +a.axes2D.yAxis.title.visible = 0
    +SetAnnotationAttributes(a)
    +Test("annot2d_05")
    +
    +a.axes2D.xAxis.title.visible = 1
    +a.axes2D.yAxis.title.visible = 0
    +SetAnnotationAttributes(a)
    +Test("annot2d_06")
    +
    +a.axes2D.xAxis.title.visible = 0
    +a.axes2D.yAxis.title.visible = 1
    +SetAnnotationAttributes(a)
    +Test("annot2d_07")
    +
    +a.axes2D.xAxis.title.visible = 1
    +a.axes2D.yAxis.title.visible = 1
    +
    +# Test 2D gridlines
    +a.axes2D.xAxis.grid = 1
    +a.axes2D.yAxis.grid = 0
    +SetAnnotationAttributes(a)
    +Test("annot2d_08")
    +
    +a.axes2D.xAxis.grid = 0
    +a.axes2D.yAxis.grid = 1
    +SetAnnotationAttributes(a)
    +Test("annot2d_09")
    +
    +a.axes2D.xAxis.grid = 1
    +a.axes2D.yAxis.grid = 1
    +SetAnnotationAttributes(a)
    +Test("annot2d_10")
    +
    +a.axes2D.xAxis.grid = 0
    +a.axes2D.yAxis.grid = 0
    +
    +# Test auto set ticks off
    +a.axes2D.autoSetTicks = 0
    +a.axes2D.xAxis.tickMarks.majorMinimum = -8.
    +a.axes2D.xAxis.tickMarks.majorMaximum = 8.
    +a.axes2D.xAxis.tickMarks.majorSpacing = 4.
    +a.axes2D.xAxis.tickMarks.minorSpacing = 1.
    +a.axes2D.yAxis.tickMarks.majorMinimum = -9.
    +a.axes2D.yAxis.tickMarks.majorMaximum = 9.
    +a.axes2D.yAxis.tickMarks.majorSpacing = 3.
    +a.axes2D.yAxis.tickMarks.minorSpacing = 1.
    +a.axes2D.tickAxes = a.axes2D.All  # All
    +a.axes2D.xAxis.grid = 1
    +a.axes2D.yAxis.grid = 1
    +SetAnnotationAttributes(a)
    +Test("annot2d_11")
    +
    +a.axes2D.autoSetTicks = 1
    +a.axes2D.tickAxes = a.axes2D.BottomLeft # BottomLeft
    +a.axes2D.xAxis.grid = 0
    +a.axes2D.yAxis.grid = 0
    +
    +# Test tick locations
    +a.axes2D.tickLocation = a.axes2D.Inside # Inside
    +SetAnnotationAttributes(a)
    +Test("annot2d_12")
    +
    +a.axes2D.tickLocation = a.axes2D.Both # Both
    +SetAnnotationAttributes(a)
    +Test("annot2d_13")
    +
    +a.axes2D.tickLocation = 1 # Outside
    +
    +# Test font sizes
    +a.axes2D.xAxis.label.font.scale = 1.5
    +a.axes2D.yAxis.label.font.scale = 1.5
    +a.axes2D.xAxis.title.font.scale = 1.5
    +a.axes2D.yAxis.title.font.scale = 1.5
    +SetAnnotationAttributes(a)
    +Test("annot2d_14")
    +
    +a.axes2D.xAxis.label.font.scale = 2
    +a.axes2D.yAxis.label.font.scale = 2
    +a.axes2D.xAxis.title.font.scale = 2
    +a.axes2D.yAxis.title.font.scale = 2
    +SetAnnotationAttributes(a)
    +Test("annot2d_15")
    +
    +a.axes2D.xAxis.label.font.scale = 1
    +a.axes2D.yAxis.label.font.scale = 1
    +a.axes2D.xAxis.title.font.scale = 1
    +a.axes2D.yAxis.title.font.scale = 1
    +
    +# Test labeling locations
    +a.axes2D.tickAxes = a.axes2D.Off
    +SetAnnotationAttributes(a)
    +Test("annot2d_16")
    +
    +a.axes2D.tickAxes = a.axes2D.Bottom
    +SetAnnotationAttributes(a)
    +Test("annot2d_17")
    +
    +a.axes2D.tickAxes = a.axes2D.Left
    +SetAnnotationAttributes(a)
    +Test("annot2d_18")
    +
    +a.axes2D.tickAxes = a.axes2D.All
    +SetAnnotationAttributes(a)
    +Test("annot2d_19")
    +
    +a.axes2D.tickAxes = a.axes2D.BottomLeft
    +
    +# Test how the 2D flags play together
    +# Especially with gridlines on.  Changing
    +# databases so can also test that gridline
    +# length is correct in each direction.
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +ResetView()
    +
    +# Turn on y axis labels, x grid lines
    +# and turn off ticks.
    +a.axes2D.xAxis.label.visible = 0
    +a.axes2D.yAxis.label.visible = 1
    +a.axes2D.xAxis.grid = 1
    +a.axes2D.yAxis.grid = 0
    +a.axes2D.tickAxes = a.axes2D.Off
    +SetAnnotationAttributes(a)
    +Test("annot2d_20")
    +
    +# Turn on y axis labels, bottom ticks marks,
    +# and x and y gridlines 
    +a.axes2D.xAxis.grid = 1
    +a.axes2D.yAxis.grid = 1
    +a.axes2D.tickAxes = a.axes2D.Bottom
    +a.axes2D.tickLocation = a.axes2D.Outside
    +a.axes2D.xAxis.label.visible = 0
    +a.axes2D.yAxis.label.visible = 1
    +SetAnnotationAttributes(a)
    +Test("annot2d_21")
    +
    +# Test how the gridlines work by themselves 
    +# Turn off labels and ticks, 
    +a.axes2D.tickAxes = a.axes2D.Off
    +a.axes2D.xAxis.label.visible = 0
    +a.axes2D.yAxis.label.visible = 0
    +SetAnnotationAttributes(a)
    +Test("annot2d_22")
    +
    +# Test the 2d axes line width.
    +a.axes2D.tickAxes = a.axes2D.BottomLeft
    +a.axes2D.tickLocation = a.axes2D.Outside
    +a.axes2D.lineWidth = 2
    +SetAnnotationAttributes(a)
    +Test("annot2d_23")
    +
    +# Test axis labeling with a narrow window.
    +a.axes2D.xAxis.label.visible = 1
    +a.axes2D.yAxis.label.visible = 1
    +a.axes2D.xAxis.grid = 0
    +a.axes2D.yAxis.grid = 0
    +a.axes2D.lineWidth = 0
    +SetAnnotationAttributes(a)
    +
    +v = View2DAttributes()
    +v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +v.windowCoords = (-4.68395, 4.89802, 2.5, 2.5001)
    +SetView2D(v)
    +Test("annot2d_24")
    +
    +v.windowCoords = (0., 0.0001, 0.216897, 4.925)
    +SetView2D(v)
    +Test("annot2d_25")
    +
    +##
    +## Gridlines with a changed window size (#1676)
    +##
    +ResetView()
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_rect2d.silo"))
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +a.axes2D.xAxis.grid = 1
    +a.axes2D.yAxis.grid = 1
    +SetAnnotationAttributes(a)
    +Test("annot2d_26")
    +swa_orig = SaveWindowAttributes()
    +swa = SaveWindowAttributes()
    +swa.height = 800
    +swa.width = 600
    +swa.resConstraint = swa.NoConstraint
    +Test("annot2d_27", swa)
    +
    +##
    +## Test 3D options
    +##
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("FilledBoundary", "mat1")
    +DrawPlots()
    +v = View3DAttributes()
    +v.viewNormal = (-0.527602, 0.329431, 0.783014)
    +v.focus = (0, 0, 0)
    +v.viewUp = (0.115312, 0.940986, -0.318195)
    +v.viewAngle = 30
    +v.parallelScale = 17.3205
    +v.nearPlane = -34.641
    +v.farPlane = 34.641
    +v.perspective = 1
    +SetView3D(v)
    +
    +# Turn off the triad.
    +a.axes3D.visible = 1
    +a.axes3D.bboxFlag = 1
    +a.axes3D.triadFlag = 0
    +SetAnnotationAttributes(a)
    +Test("annot3d_01")
    +
    +# Turn off the bounding box
    +a.axes3D.triadFlag = 1
    +a.axes3D.bboxFlag = 0
    +SetAnnotationAttributes(a)
    +Test("annot3d_02")
    +
    +# Turn some axes off
    +a.axes3D.bboxFlag = 1
    +a.axes3D.xAxis.label.visible = 0
    +a.axes3D.yAxis.label.visible = 1
    +a.axes3D.zAxis.label.visible = 0
    +a.axes3D.xAxis.tickMarks.visible = 0
    +a.axes3D.yAxis.tickMarks.visible = 1
    +a.axes3D.zAxis.tickMarks.visible = 0
    +SetAnnotationAttributes(a)
    +Test("annot3d_03")
    +
    +# Turn on all gridlines
    +a.axes3D.xAxis.label.visible = 1
    +a.axes3D.yAxis.label.visible = 1
    +a.axes3D.zAxis.label.visible = 1
    +a.axes3D.xAxis.tickMarks.visible = 1
    +a.axes3D.yAxis.tickMarks.visible = 1
    +a.axes3D.zAxis.tickMarks.visible = 1
    +a.axes3D.xAxis.grid = 1
    +a.axes3D.yAxis.grid = 1
    +a.axes3D.zAxis.grid = 1
    +SetAnnotationAttributes(a)
    +Test("annot3d_04")
    +
    +# Turn off titles, labels and ticks
    +# want to ensure gridlines work alone
    +a.axes3D.xAxis.label.visible = 0
    +a.axes3D.yAxis.label.visible = 0
    +a.axes3D.zAxis.label.visible = 0
    +a.axes3D.xAxis.title.visible = 0
    +a.axes3D.yAxis.title.visible = 0
    +a.axes3D.zAxis.title.visible = 0
    +a.axes3D.xAxis.tickMarks.visible = 0
    +a.axes3D.yAxis.tickMarks.visible = 0
    +a.axes3D.zAxis.tickMarks.visible = 0
    +SetAnnotationAttributes(a)
    +Test("annot3d_05")
    +
    +# Mix up which ticks, titles, labels, 
    +# or gridlines are turned on
    +a.axes3D.xAxis.label.visible = 1
    +a.axes3D.yAxis.label.visible = 0
    +a.axes3D.zAxis.label.visible = 0
    +a.axes3D.xAxis.title.visible = 0
    +a.axes3D.yAxis.title.visible = 0
    +a.axes3D.zAxis.title.visible = 1
    +a.axes3D.xAxis.tickMarks.visible = 0
    +a.axes3D.yAxis.tickMarks.visible = 1
    +a.axes3D.zAxis.tickMarks.visible = 0
    +a.axes3D.xAxis.grid = 0
    +a.axes3D.yAxis.grid = 0
    +a.axes3D.zAxis.grid = 1
    +SetAnnotationAttributes(a)
    +Test("annot3d_06")
    +
    +a.axes3D.xAxis.label.visible = 1
    +a.axes3D.yAxis.label.visible = 1
    +a.axes3D.zAxis.label.visible = 1
    +a.axes3D.xAxis.title.visible = 1
    +a.axes3D.yAxis.title.visible = 1
    +a.axes3D.zAxis.title.visible = 1
    +a.axes3D.xAxis.tickMarks.visible = 1
    +a.axes3D.yAxis.tickMarks.visible = 1
    +a.axes3D.zAxis.tickMarks.visible = 1
    +a.axes3D.xAxis.grid = 0
    +a.axes3D.yAxis.grid = 0
    +a.axes3D.zAxis.grid = 0
    +
    +# Change the 3D axis type
    +a.axes3D.axesType = a.axes3D.StaticEdges
    +SetAnnotationAttributes(a)
    +Test("annot3d_07")
    +
    +# Change the 3D axis type
    +a.axes3D.axesType = a.axes3D.FurthestTriad
    +SetAnnotationAttributes(a)
    +Test("annot3d_08")
    +
    +# Change the 3D axis type
    +a.axes3D.axesType = a.axes3D.OutsideEdges
    +SetAnnotationAttributes(a)
    +Test("annot3d_09")
    +
    +# Change the 3D axis type
    +a.axes3D.axesType = a.axes3D.StaticTriad
    +SetAnnotationAttributes(a)
    +Test("annot3d_10")
    +
    +# Change the triad attribtues manually
    +a.axes3D.triadSetManually = 1
    +a.axes3D.triadColor = (66, 244, 215)
    +a.axes3D.triadLineWidth = 2
    +a.axes3D.triadFont = 1
    +a.axes3D.triadBold = 0
    +a.axes3D.triadItalic = 0
    +SetAnnotationAttributes(a)
    +Test("annot3d_11")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_axislabels.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_axislabels.html new file mode 100644 index 000000000..ebb3825e1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_axislabels.html @@ -0,0 +1,150 @@ + +Results for rendering/axislabels.py + +

    Results of VisIt Regression Test - rendering/axislabels

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    AxisLabelsLog2D_000.000.00
    AxisLabelsLog2D_010.000.00
    AxisLabelsLog2D_020.000.00
    AxisLabelsLog2D_030.000.00
    AxisLabelsLog2D_040.000.00
    AxisLabelsLog2D_050.000.00
    AxisLabelsLog2D_060.000.00
    AxisLabelsLog2D_070.000.00
    AxisLabelsLog2D_080.000.00
    AxisLabelsLog2D_090.000.00
    AxisLabelsLog2D_100.000.00
    AxisLabelsLog2D_110.000.00
    AxisLabelsLog2D_120.000.00
    AxisLabelsLog2D_130.000.00
    AxisLabelsLog2D_140.000.00
    AxisLabelsLog2D_150.000.00
    AxisLabelsLog2D_160.000.00
    AxisLabelsLog2D_170.000.00
    AxisLabelsLog2D_180.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_axislabels_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_axislabels_py.html new file mode 100644 index 000000000..9d51e6079 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_axislabels_py.html @@ -0,0 +1,141 @@ +rendering/axislabels.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial, parallel, scalable
    +#  CLASSES: nightly
    +#
    +#  Test Case:  axislabels.py 
    +#
    +#  Tests:      Tests the axis labels
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       Fri Dec 17 16:19:49 PST 2021
    +#
    +#  Modifications
    +#
    +# ----------------------------------------------------------------------------
    +
    +def TestLog2D():
    +    OpenDatabase(data_path("curve_test_data/distribution.ultra"))
    +
    +    swa = SaveWindowAttributes()
    +    swa.width = 600
    +    swa.height = 600
    +    swa.screenCapture = 0
    +
    +    a = GetAnnotationAttributes()
    +    a.axes2D.visible = 1
    +    SetAnnotationAttributes(a)
    +
    +    v = GetViewCurve()
    +    v.domainScale = v.LINEAR
    +    v.rangeScale = v.LOG
    +    SetViewCurve(v)
    +
    +    AddPlot("Curve", "Exponential Distribution")
    +    c = CurveAttributes()
    +    c.curveColorSource = c.Custom
    +    c.curveColor = (255, 0, 0, 255)
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    Test("AxisLabelsLog2D_00", swa)
    +
    +    v.domainCoords = (1.601123657864678, 18.12971869918699)
    +    v.rangeCoords = (-7.130672752885499, 0.04760456234965804)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_01", swa)
    +
    +    v.domainCoords = (0.638075437299828, 17.16667047862213)
    +    v.rangeCoords = (-10.48436074884018, -3.306083433605024)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_02", swa)
    +
    +    v.domainCoords = (-8.812882729839023, 26.61762864576098)
    +    v.rangeCoords = (-14.58885955523007, 0.7984153727848649)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_03", swa)
    +
    +    v.domainCoords = (-37.04643791101395, 54.85118382693591)
    +    v.rangeCoords = (-26.85053625423488, 13.06009207178967)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_04", swa)
    +
    +    v.domainCoords = (-72.49874837389116, 90.30349428981312)
    +    v.rangeCoords = (-42.2472784051628, 28.4568342227176)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_05", swa)
    +
    +    v.domainCoords = (-135.3046789498164, 153.1094248657384)
    +    v.rangeCoords = (-69.52354632680284, 55.73310214435764)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_06", swa)
    +
    +    v.domainCoords = (2.563824255463072, 8.936313157343124)
    +    v.rangeCoords = (-4.113141545611167, -1.345604897058017)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_07", swa)
    +
    +    v.domainCoords = (2.581093873083343, 8.953582774963396)
    +    v.rangeCoords = (-3.296916569328953, -0.5293799207758031)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_08", swa)
    +
    +    v.domainCoords = (0.4742005234102636, 6.846689425290313)
    +    v.rangeCoords = (-3.235890402877946, -0.4683537543247966)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_09", swa)
    +
    +    v.domainCoords = (0.6728011260433816, 7.045290027923435)
    +    v.rangeCoords = (-2.461620916030798, 0.3059157325223497)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_10", swa)
    +
    +    v.domainCoords = (-3.883839369631302, 7.405413441872227)
    +    v.rangeCoords = (-2.289688582041886, 2.613171410605579)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_11", swa)
    +
    +    v.domainCoords = (-5.087720394381069, 8.572275507538203)
    +    v.rangeCoords = (-2.632794183897802, 3.299666407205631)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_12", swa)
    +
    +    v.domainCoords = (-4.680511844459359, 8.979484057459912)
    +    v.rangeCoords = (-1.569922247785004, 4.362538343318429)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_13", swa)
    +
    +    # The curve doesn't intersect the window.
    +    v.domainCoords = (-1.565282256005422, 0.4651890936507914)
    +    v.rangeCoords = (1.046155226469858, 1.927977691841728)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_14", swa)
    +
    +    # The curve doesn't intersect the window.
    +    v.domainCoords = (0.7831595313488587, 2.813630881005071)
    +    v.rangeCoords = (0.07581375463087496, 0.9576362200027442)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_15", swa)
    +
    +    v.domainCoords = (0.1079984801721102, 1.494837732720581)
    +    v.rangeCoords = (-0.7549194057961169, -0.1526227967039314)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_16", swa)
    +
    +    v.domainCoords = (7.150150811017356, 9.18062216067357)
    +    v.rangeCoords = (-3.893382901287159, -3.01156043591529)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_17", swa)
    +
    +    v.domainCoords = (8.915537392097869, 10.94600874175408)
    +    v.rangeCoords = (-4.898933596142739, -4.017111130770868)
    +    SetViewCurve(v)
    +    Test("AxisLabelsLog2D_18", swa)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("curve_test_data/distribution.ultra"))
    +
    +def Main():
    +    TestLog2D()
    +
    +Main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_axistitles.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_axistitles.html new file mode 100644 index 000000000..bae64c4dd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_axistitles.html @@ -0,0 +1,120 @@ + +Results for rendering/axistitles.py + +

    Results of VisIt Regression Test - rendering/axistitles

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Setting axis titles in 2D
    axistitles_0_000.000.00
    axistitles_0_010.000.00
    axistitles_0_020.000.00
    axistitles_0_030.000.00
    axistitles_0_040.000.00
    axistitles_0_050.000.00
    Setting axis titles in 3D
    axistitles_1_000.000.00
    axistitles_1_010.000.00
    axistitles_1_020.000.00
    axistitles_1_030.000.00
    axistitles_1_040.000.00
    axistitles_1_050.000.00
    axistitles_1_060.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_axistitles_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_axistitles_py.html new file mode 100644 index 000000000..27310d20f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_axistitles_py.html @@ -0,0 +1,170 @@ +rendering/axistitles.py
    # ----------------------------------------------------------------------------
    +#  MODES: serial
    +#  CLASSES: nightly
    +#
    +#  Test Case:  axistitles.py 
    +#
    +#  Tests:      Tests setting axis titles and units.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Jul 28 11:07:57 PDT 2005
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Apr 2 16:44:26 PST 2008
    +#    Modified the 3D test since setting the 3D font scale now actually works.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Thu Jul 11 08:36:38 PDT 2013
    +#    Remove legacy style annotation settings.
    +#
    +#    Kathleen Biagas, Wed Jul  1 17:37:57 PDT 2015
    +#    Added title color test to 2D.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def SaveTestImage(name):
    +    # Save these images somewhat larger than a regular test case image
    +    # since the images contain a lot of text.
    +    swa = SaveWindowAttributes()
    +    swa.width = 500
    +    swa.height = 500
    +    swa.screenCapture = 0
    +    Test(name, swa)
    +
    +#
    +# Test replacing 2D titles and units.
    +#
    +def Test2D():
    +    TestSection("Setting axis titles in 2D")
    +    OpenDatabase(silo_data_path("noise2d.silo"))
    +
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +
    +    v = GetView2D()
    +    v.viewportCoords = (0.35, 0.95, 0.15, 0.95)
    +    SetView2D(v)
    +
    +    a = GetAnnotationAttributes()
    +    a.axes2D.visible = 1
    +    a.axes2D.xAxis.label.visible = 0
    +    a.axes2D.yAxis.label.visible = 0
    +    a.axes2D.xAxis.title.visible = 1
    +    a.axes2D.yAxis.title.visible = 1
    +    a.axes2D.xAxis.title.font.scale = 2 #TitleFontHeight2D = 0.04
    +    a.axes2D.yAxis.title.font.scale = 2 #TitleFontHeight2D = 0.04
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_0_00")
    +
    +    a.axes2D.xAxis.title.title = "New X Title"
    +    a.axes2D.xAxis.title.userTitle = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_0_01")
    +
    +    a.axes2D.yAxis.title.title = "New Y Title"
    +    a.axes2D.yAxis.title.userTitle = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_0_02")
    +
    +    a.axes2D.xAxis.title.units = "New X Units"
    +    a.axes2D.xAxis.title.userUnits = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_0_03")
    +
    +    a.axes2D.yAxis.title.units = "New Y Units"
    +    a.axes2D.yAxis.title.userUnits = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_0_04")
    +
    +    # Test colors for title
    +
    +    a.axes2D.xAxis.title.font.useForegroundColor = 0
    +    a.axes2D.xAxis.title.font.color =(255,0,0,255)
    +    a.axes2D.yAxis.title.font.useForegroundColor = 0
    +    a.axes2D.yAxis.title.font.color =(255,0,255,255)
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_0_05")
    +
    +    DeleteAllPlots()
    +
    +
    +#
    +# Test replacing 3D titles and units.
    +#
    +def Test3D():
    +    TestSection("Setting axis titles in 3D")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.749133, -0.494511, 0.440747)
    +    v.focus = (0, 0, 0)
    +    v.viewUp = (-0.588718, 0.802033, -0.10077)
    +    v.viewAngle = 30
    +    v.parallelScale = 17.3205
    +    v.nearPlane = -34.641
    +    v.farPlane = 34.641
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0, 0)
    +    SetView3D(v)
    +
    +    a = GetAnnotationAttributes()
    +    a.axes3D.visible = 1
    +    a.axes3D.xAxis.title.visible = 1
    +    a.axes3D.yAxis.title.visible = 1
    +    a.axes3D.zAxis.title.visible = 1
    +    a.axes3D.xAxis.title.font.scale = 2
    +    a.axes3D.yAxis.title.font.scale = 2
    +    a.axes3D.zAxis.title.font.scale = 2
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_1_00")
    +
    +    a.axes3D.xAxis.title.title = "New X Title"
    +    a.axes3D.xAxis.title.userTitle = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_1_01")
    +
    +    a.axes3D.yAxis.title.title = "New Y Title"
    +    a.axes3D.yAxis.title.userTitle = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_1_02")
    +
    +    a.axes3D.zAxis.title.title = "New Z Title"
    +    a.axes3D.zAxis.title.userTitle = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_1_03")
    +
    +    a.axes3D.xAxis.title.units = "New X Units"
    +    a.axes3D.xAxis.title.userUnits = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_1_04")
    +
    +    a.axes3D.yAxis.title.units = "New Y Units"
    +    a.axes3D.yAxis.title.userUnits = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_1_05")
    +
    +    a.axes3D.zAxis.title.units = "New Z Units"
    +    a.axes3D.zAxis.title.userUnits = 1
    +    SetAnnotationAttributes(a)
    +    SaveTestImage("axistitles_1_06")
    +    DeleteAllPlots()
    +
    +def main():
    +    Test2D()
    +    Test3D()
    +
    +# Run all of the tests
    +main()
    +
    +# Exit the test
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_bigdata.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_bigdata.html new file mode 100644 index 000000000..4525305b6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_bigdata.html @@ -0,0 +1,54 @@ + +Results for rendering/bigdata.py + +

    Results of VisIt Regression Test - rendering/bigdata

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    bigdata_010.000.00
    bigdata_020.000.00
    bigdata_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_bigdata_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_bigdata_py.html new file mode 100644 index 000000000..b0344146e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_bigdata_py.html @@ -0,0 +1,36 @@ +rendering/bigdata.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  bigdata.py
    +#
    +#  Programmer: Hank Childs
    +#  Date:       August 27, 2010
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "hardyglobal")
    +AddOperator("Transform")
    +t = TransformAttributes()
    +t.doScale = 1
    +t.scaleX= 1e+20
    +t.scaleY= 1e+20
    +t.scaleZ= 1e+20
    +SetOperatorOptions(t)
    +DrawPlots()
    +Test("bigdata_01")
    +
    +AddOperator("Isosurface")
    +DrawPlots()
    +Test("bigdata_02")
    +
    +v = GetView3D()
    +v.axis3DScaleFlag = 1
    +v.axis3DScales = (2,1,1)
    +SetView3D(v)
    +Test("bigdata_03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_colortexture.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_colortexture.html new file mode 100644 index 000000000..453066f83 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_colortexture.html @@ -0,0 +1,66 @@ + +Results for rendering/colortexture.py + +

    Results of VisIt Regression Test - rendering/colortexture

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    colortexture_000.000.00
    colortexture_010.000.00
    colortexture_020.000.00
    colortexture_030.000.00
    colortexture_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_colortexture_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_colortexture_py.html new file mode 100644 index 000000000..403ab3a71 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_colortexture_py.html @@ -0,0 +1,86 @@ +rendering/colortexture.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  colortexture.py
    +#
    +#  Tests:      mesh      - 3D UCD
    +#              plots     - Pseudocolor
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Mon Sep 18 13:44:14 PST 2006
    +#
    +#  Modificatons:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +def main():
    +    a = AnnotationAttributes()
    +    TurnOffAllAnnotations(a)
    +    a.foregroundColor = (255, 255, 255, 255)
    +    a.backgroundColor = (0, 0, 0, 255)
    +    SetAnnotationAttributes(a)
    +
    +    OpenDatabase(silo_data_path("ucd2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    AddPlot("Mesh", "ucdmesh2d")
    +    DrawPlots()
    +    Test("colortexture_00")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Pseudocolor", "speed")
    +    pc = PseudocolorAttributes()
    +    pc.colorTableName = "levels"
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +
    +    L = GetLight(0)
    +    L.enabledFlag = 1
    +    L.type = L.Camera  # Ambient, Object, Camera
    +    L.direction = (-0.131, -0.685, -0.716)
    +    L.color = (255, 255, 255, 255)
    +    L.brightness = 1
    +    SetLight(0, L)
    +
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.615147, 0.425906, 0.663475)
    +    v0.focus = (0, 0, 0)
    +    v0.viewUp = (0.235983, 0.902416, -0.360497)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 17.3205
    +    v0.nearPlane = -34.641
    +    v0.farPlane = 34.641
    +    v0.imagePan = (0, 0)
    +    v0.imageZoom = 1.56642
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0, 0, 0)
    +    SetView3D(v0)
    +    Test("colortexture_01")
    +
    +    # Turn off color texturing
    +    SetColorTexturingEnabled(0)
    +    Test("colortexture_02")
    +
    +    # Turn color texturing back on.
    +    SetColorTexturingEnabled(1)
    +    pc.colorTableName = "hot"
    +    SetPlotOptions(pc)
    +    Test("colortexture_03")
    +
    +    # Make sure that it works with specular highlights.
    +    r = GetRenderingAttributes()
    +    r.specularFlag = 1
    +    SetRenderingAttributes(r)
    +    Test("colortexture_04")
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_compositing.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_compositing.html new file mode 100644 index 000000000..061af91df --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_compositing.html @@ -0,0 +1,42 @@ + +Results for rendering/compositing.py + +

    Results of VisIt Regression Test - rendering/compositing

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    compositing_010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_compositing_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_compositing_py.html new file mode 100644 index 000000000..8a81c82db --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_compositing_py.html @@ -0,0 +1,40 @@ +rendering/compositing.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  compositing.py
    +#
    +#  Tests: postprocessing of transparent images in SR mode.
    +#
    +#  Programmer: Tom Fogal
    +#  Date:       June 3, 2009
    +#
    +# Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +ds_noise = silo_data_path("noise.silo")
    +OpenDatabase(ds_noise)
    +
    +ra = GetRenderingAttributes()
    +ra.scalableActivationMode = ra.Always
    +ra.doShadowing = 1
    +SetRenderingAttributes(ra)
    +
    +AddPlot("Contour", "hardyglobal")
    +
    +ca = ContourAttributes()
    +ca.contourNLevels = 1
    +ca.contourPercent = (0.5, 0.5)
    +ca.SetMultiColor(0, 255,0,255,128)
    +SetPlotOptions(ca)
    +
    +DrawPlots()
    +Test("compositing_01")
    +
    +DeleteAllPlots()
    +CloseDatabase(ds_noise)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_evalcubic.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_evalcubic.html new file mode 100644 index 000000000..9ebd166fe --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_evalcubic.html @@ -0,0 +1,66 @@ + +Results for rendering/evalcubic.py + +

    Results of VisIt Regression Test - rendering/evalcubic

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    evalcubic_00.000.00
    evalcubic_10.000.00
    evalcubic_20.000.00
    evalcubic_30.000.00
    evalcubic_40.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_evalcubic_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_evalcubic_py.html new file mode 100644 index 000000000..4f602b79c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_evalcubic_py.html @@ -0,0 +1,123 @@ +rendering/evalcubic.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  evalcubic.py
    +#
    +#  Tests:      mesh      - 3D structured, single domain
    +#              plots     - pseudocolor
    +#
    +#  Programmer: Cyrus Harrison
    +#  Date:       Mon Feb  7 15:52:37 PST 2011
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +#
    +# Example from:
    +# https://visit-sphinx-github-user-manual.readthedocs.io/en/develop/tutorials/Scripting.html#animating-the-camera
    +#
    +
    +def fly():
    +    # Do a pseudocolor plot of u.
    +    DeleteAllPlots()
    +    AddPlot('Pseudocolor', 'hardyglobal')
    +    AddOperator("Clip")
    +    c = ClipAttributes()
    +    c.funcType = c.Sphere  # Plane, Sphere
    +    c.center = (0, 0, 0)
    +    c.radius = 10
    +    c.sphereInverse = 1
    +    SetOperatorOptions(c)
    +    DrawPlots()
    +    # Create the control points for the views.
    +    c0 = View3DAttributes()
    +    c0.viewNormal = (0, 0, 1)
    +    c0.focus = (0, 0, 0)
    +    c0.viewUp = (0, 1, 0)
    +    c0.viewAngle = 30
    +    c0.parallelScale = 17.3205
    +    c0.nearPlane = 17.3205
    +    c0.farPlane = 81.9615
    +    c0.perspective = 1
    +    c1 = View3DAttributes()
    +    c1.viewNormal = (-0.499159, 0.475135, 0.724629)
    +    c1.focus = (0, 0, 0)
    +    c1.viewUp = (0.196284, 0.876524, -0.439521)
    +    c1.viewAngle = 30
    +    c1.parallelScale = 14.0932
    +    c1.nearPlane = 15.276
    +    c1.farPlane = 69.917
    +    c1.perspective = 1
    +    c2 = View3DAttributes()
    +    c2.viewNormal = (-0.522881, 0.831168, -0.189092)
    +    c2.focus = (0, 0, 0)
    +    c2.viewUp = (0.783763, 0.556011, 0.27671)
    +    c2.viewAngle = 30
    +    c2.parallelScale = 11.3107
    +    c2.nearPlane = 14.8914
    +    c2.farPlane = 59.5324
    +    c2.perspective = 1
    +    c3 = View3DAttributes()
    +    c3.viewNormal = (-0.438771, 0.523661, -0.730246)
    +    c3.focus = (0, 0, 0)
    +    c3.viewUp = (-0.0199911, 0.80676, 0.590541)
    +    c3.viewAngle = 30
    +    c3.parallelScale = 8.28257
    +    c3.nearPlane = 3.5905
    +    c3.farPlane = 48.2315
    +    c3.perspective = 1
    +    c4 = View3DAttributes()
    +    c4.viewNormal = (0.286142, -0.342802, -0.894768)
    +    c4.focus = (0, 0, 0)
    +    c4.viewUp = (-0.0382056, 0.928989, -0.36813)
    +    c4.viewAngle = 30
    +    c4.parallelScale = 10.4152
    +    c4.nearPlane = 1.5495
    +    c4.farPlane = 56.1905
    +    c4.perspective = 1
    +    c5 = View3DAttributes()
    +    c5.viewNormal = (0.974296, -0.223599, -0.0274086)
    +    c5.focus = (0, 0, 0)
    +    c5.viewUp = (0.222245, 0.97394, -0.0452541)
    +    c5.viewAngle = 30
    +    c5.parallelScale = 1.1052
    +    c5.nearPlane = 24.1248
    +    c5.farPlane = 58.7658
    +    c5.perspective = 1
    +    c6 = c0
    +    # Create a tuple of camera values and x values. The x values are weights
    +    # that help to determine where in [0,1] the control points occur.
    +    cpts = (c0, c1, c2, c3, c4, c5, c6)
    +    x=[]
    +    for i in range(7):
    +        x = x + [float(i) / float(6.)]
    +    # Animate the camera. Note that we use the new built-in EvalCubicSpline
    +    # function which takes a t value from [0,1] a tuple of t values and a tuple
    +    # of control points. In this case, the control points are View3DAttributes
    +    # objects that we are using to animate the camera but they can be any object
    +    # that supports +, * operators.
    +    nsteps = 100
    +    for i in range(nsteps):
    +        t = float(i) / float(nsteps - 1)
    +        c = EvalCubicSpline(t, x, cpts)
    +        c.nearPlane = -34.461
    +        c.farPlane = 34.461
    +        SetView3D(c)
    +        if i == 0:
    +            Test("evalcubic_0")
    +        elif i == 24:
    +            Test("evalcubic_1")
    +        elif i == 49:
    +            Test("evalcubic_2")
    +        elif i == 74:
    +            Test("evalcubic_3")
    +        elif i == 99:
    +            Test("evalcubic_4")
    +
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +fly()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_image.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_image.html new file mode 100644 index 000000000..1a86c077a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_image.html @@ -0,0 +1,54 @@ + +Results for rendering/image.py + +

    Results of VisIt Regression Test - rendering/image

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    image000.000.00
    image010.000.00
    image020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_image_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_image_py.html new file mode 100644 index 000000000..5ee3f00ef --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_image_py.html @@ -0,0 +1,46 @@ +rendering/image.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  image.py
    +#
    +#  Tests:      mesh        - 2D curvilinear, single domain
    +#              plots       - Pseudocolor
    +#              annotations - Image
    +#
    +#  Defect ID:  None 
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       July 1, 2015
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Set up the annotation colors, etc.
    +a = GetAnnotationAttributes()
    +a.backgroundColor = (255, 255, 255, 255)
    +a.foregroundColor = (0, 0, 0, 255)
    +a.backgroundMode = a.Solid
    +SetAnnotationAttributes(a)
    +
    +# Open up the database and do a plot.
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +# Create an Image object
    +img = CreateAnnotationObject("Image")
    +img.image = data_path("Image_test_data/manhattan.jpg")
    +img.position = (0.34, 0.12)
    +Test("image00")
    +
    +img.width = 50
    +Test("image01")
    +
    +img.width = 10
    +img.position = (0.5, 0.6)
    +Test("image02")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_legends.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_legends.html new file mode 100644 index 000000000..5041d0a71 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_legends.html @@ -0,0 +1,435 @@ + +Results for rendering/legends.py + +

    Results of VisIt Regression Test - rendering/legends

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Test levels legend
    legends_010.000.00
    legends_020.000.00
    legends_030.000.00
    Test legend default sizing and positioning
    legends_040.000.00
    legends_050.000.00
    legends_060.000.00
    legends_070.000.00
    legends_080.000.00
    Test Curve plot legend
    legends_090.000.00
    legends_100.000.00
    legends_110.000.00
    legends_120.000.00
    legends_130.000.00
    Test setting legend properties
    legends_140.000.00
    legends_150.000.00
    legends_160.000.00
    legends_170.000.00
    legends_180.000.00
    legends_190.000.00
    legends_200.000.00
    legends_210.000.00
    legends_220.000.00
    legends_230.000.00
    legends_240.000.00
    legends_250.000.00
    legends_260.000.00
    legends_270.000.00
    legends_280.000.00
    legends_290 modifications totalling 0 lines
    Test legend copying
    legends_300.000.00
    legends_310.000.00
    legends_320.000.00
    legends_330 modifications totalling 0 lines
    legends_340.000.00
    legends_350 modifications totalling 0 lines
    legends_360.000.00
    legends_370.000.00
    Test setting legend tics
    legends_380.000.00
    legends_390.000.00
    legends_400.000.00
    legends_410.000.00
    legends_420.000.00
    legends_430.000.00
    legends_440.000.00
    legends_450.000.00
    legends_460.000.00
    legends_470.000.00
    legends_480.000.00
    legends_490.000.00
    legends_500.000.00
    legends_510.000.00
    legends_520.000.00
    legends_530.000.00
    legends_540.000.00
    legends_550.000.00
    legends_560.000.00
    legends_570.000.00
    legends_580.000.00
    legends_590.000.00
    legends_600.000.00
    Test Variable legend
    legends_610.000.00
    legends_620.000.00
    legends_630.000.00
    legends_640.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_legends_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_legends_py.html new file mode 100644 index 000000000..853e92c21 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_legends_py.html @@ -0,0 +1,597 @@ +rendering/legends.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  legends.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain 
    +#              plots     - subset, boundary, filledboundary
    +#              operators - none
    +#              selection - material
    +#
    +#  Defect ID:  VisIt00002740, VisIt00002737
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       December 2, 2002 
    +#
    +#  Modifications:
    +#    Brad Whitlock, Thu Dec 12 09:50:31 PDT 2002
    +#    I fixed the test so it uses the new interface for the SubsetAttributes.
    +#
    +#    Kathleen Bonnell, Fri Jul 18 14:04:19 PDT 2003 
    +#    I added tests for Boundary, FilledBoundary.
    +#
    +#    Eric Brugger, Mon Jul 21 12:14:52 PDT 2003
    +#    I added legend sizing and positioning tests.
    +#
    +#    Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#    Remove compound var name from Subset, Boundary and Filled Boundary plots.
    +#
    +#    Kathleen Bonnell, Fri Oct 28 10:00:30 PDT 2005 
    +#    Add tests for curve plots (legends_09 ... legends_11). 
    +#
    +#    Kathleen Bonnell, Fri Oct 28 15:54:37 PDT 2005 
    +#    Add more tests for curve plots, for testing reading of TIME 
    +#    (legends_12 & legends_13). 
    +#
    +#    Brad Whitlock, Tue Nov 21 10:54:18 PDT 2006
    +#    I made it use line style enum values instead of ints so the intent
    +#    is more clear.
    +#
    +#    Brad Whitlock, Mon Mar 26 08:54:40 PDT 2007
    +#    Organized different parts of the test into functions and added a new
    +#    function that sets the properties for a legend.
    +#
    +#    Hank Childs, Sun Jan 25 15:07:31 PST 2009
    +#    Turn off minmaxLabels as well.
    +#
    +#    Kathleen Bonnell, Wed Sep 23 10:13:13 PDT 2009
    +#    Add TestLegendProperties2, to test new capability of modifiying num tics,
    +#    and setting numeric values and text labels for tics in liu of the 
    +#    automatically generated ones.
    +#
    +#    Kathleen Bonnell, Tue Oct 6 11:36:41 PDT 2009
    +#    Added test for constant variable legend. 
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Brad Whitlock, Mon Jan 25 15:34:23 PST 2010
    +#    I fixed a bug that made small baselines. I also increased the legend size
    +#    in some tests so it's more prominent.
    +#
    +#    Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#    Use FilledBoundary plot for materials instead of Subset, and Subset for 
    +#    domains instead of FilledBoundary.
    +#
    +#    Eric Brugger, Wed Mar  8 16:50:08 PST 2023
    +#    Added TestVariableLegend.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Test the Filled Boundary plot with some subsets turned off, and
    +# single-color on.
    +# This test ensures that correct labels are applied to the legend.
    +def TestLevelsLegend(a):
    +    TestSection("Test levels legend")
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +    AddPlot("FilledBoundary", "mat1")
    +    TurnMaterialsOff(("2", "4"))
    +    fbAtts = FilledBoundaryAttributes()
    +    fbAtts.colorType = fbAtts.ColorBySingleColor
    +    fbAtts.singleColor = (0, 255, 255, 255)
    +    SetPlotOptions(fbAtts)
    +    DrawPlots()
    +
    +    Test("legends_01")
    +    DeleteAllPlots()
    +
    +    # Test the FilledBoundary and Boundary plots, to ensure that setting
    +    # their atts works.
    +    AddPlot("FilledBoundary", "mat1")
    +    fba = FilledBoundaryAttributes()
    +    fba.colorType = fba.ColorByMultipleColors
    +    SetPlotOptions(fba)
    +    DrawPlots()
    +    Test("legends_02")
    +    DeleteAllPlots()
    +
    +    AddPlot("Boundary", "mat1")
    +    ba = BoundaryAttributes()
    +    ba.colorType = ba.ColorByColorTable
    +    ba.colorTableName = "rainbow"
    +    SetPlotOptions(ba)
    +    DrawPlots()
    +    Test("legends_03")
    +    DeleteAllPlots()
    +
    +#
    +# Test legend sizing and positioning.
    +#
    +def TestSizeAndPosition(a):
    +    TestSection("Test legend default sizing and positioning")
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +
    +    AddPlot("Boundary", "mat1")
    +    bndAtts = BoundaryAttributes()
    +    bndAtts.colorType = bndAtts.ColorBySingleColor
    +    bndAtts.singleColor = (0, 0, 0, 255)
    +    SetPlotOptions(bndAtts)
    +    AddPlot("Contour", "p")
    +    AddPlot("Mesh", "curvmesh2d")
    +    AddPlot("FilledBoundary", "mat1")
    +    DrawPlots()
    +    Test("legends_04")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "d")
    +    AddPlot("Vector", "vel")
    +    AddPlot("FilledBoundary", "mat1")
    +    DrawPlots()
    +    Test("legends_05")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "d")
    +    AddOperator("Elevate")
    +    AddPlot("Pseudocolor", "p")
    +    AddOperator("Elevate")
    +    elevate_atts = ElevateAttributes()
    +    elevate_atts.useXYLimits = elevate_atts.Never
    +    SetOperatorOptions(elevate_atts)
    +
    +    DrawPlots()
    +    Test("legends_06")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +
    +    AddPlot("Volume", "u")
    +    DrawPlots()
    +    Test("legends_07")
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +
    +    AddPlot("Contour", "d")
    +    contourAtts = ContourAttributes()
    +    contourAtts.contourNLevels = 15
    +    SetPlotOptions(contourAtts)
    +    AddPlot("Subset", "domains")
    +    DrawPlots()
    +    Test("legends_08")
    +    DeleteAllPlots()
    +
    +#
    +# TEST LEGEND FOR CURVE PLOTS
    +#
    +def TestCurveLegend(a):
    +    TestSection("Test Curve plot legend")
    +    OpenDatabase(data_path("curve_test_data/c033.curve"))
    +
    +    # Test legend on
    +    AddPlot("Curve", "parabolic")
    +    curveAtts = CurveAttributes()
    +    curveAtts.curveColorSource = curveAtts.Custom
    +    curveAtts.curveColor = (255, 0, 0, 255)
    +    curveAtts.lineWidth = 1
    +    SetPlotOptions(curveAtts)
    +    DrawPlots()
    +    Test("legends_09")
    +
    +    # Test legend off
    +    curveAtts.showLegend = 0
    +    SetPlotOptions(curveAtts)
    +    Test("legends_10")
    +
    +    curveAtts.showLegend = 1
    +    SetPlotOptions(curveAtts)
    +
    +    # Tests multiple plots
    +    OpenDatabase(data_path("curve_test_data/c044.curve"))
    +
    +    AddPlot("Curve", "parabolic")
    +    curveAtts.curveColor = (0, 255, 0, 255)
    +    curveAtts.lineWidth = 5
    +    SetPlotOptions(curveAtts)
    +    DrawPlots()
    +
    +    OpenDatabase(data_path("curve_test_data/c055.curve"))
    +
    +    AddPlot("Curve", "parabolic")
    +    curveAtts.curveColor = (0, 0, 255, 255)
    +    curveAtts.lineWidth = 2
    +    SetPlotOptions(curveAtts)
    +    DrawPlots()
    +
    +    Test("legends_11")
    +
    +    # Add DatabaseInfo
    +    a.databaseInfoFlag = 1
    +    SetAnnotationAttributes(a)
    +    Test("legends_12")
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(data_path("curve_test_data/distribution.ultra"))
    +
    +    AddPlot("Curve", "Laplace Distribution")
    +    curveAtts.curveColor = (0, 255, 255, 255)
    +    curveAtts.lineWidth = 0
    +    SetPlotOptions(curveAtts)
    +    DrawPlots()
    +    Test("legends_13")
    +    DeleteAllPlots()
    +
    +    # Remove DatabaseInfo
    +    a.databaseInfoFlag = 0
    +    SetAnnotationAttributes(a)
    +
    +#
    +# Test setting legend properties. Note that we currently just test the
    +# avtVariableLegend but others work pretty much the same way.
    +#
    +def TestLegendProperties(a):
    +    TestSection("Test setting legend properties")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +    v0 = View3DAttributes()
    +    v0.viewNormal = (-0.778207, 0.3577, 0.516183)
    +    v0.focus = (0, 0, 0)
    +    v0.viewUp = (0.283417, 0.933512, -0.219613)
    +    v0.viewAngle = 30
    +    v0.parallelScale = 17.3205
    +    v0.nearPlane = -34.641
    +    v0.farPlane = 34.641
    +    v0.imagePan = (0.0768749, 0.057219)
    +    v0.imageZoom = 0.863307
    +    v0.perspective = 1
    +    v0.eyeAngle = 2
    +    v0.centerOfRotationSet = 0
    +    v0.centerOfRotation = (0, 0, 0)
    +    SetView3D(v0)
    +    Test("legends_14")
    +
    +    # Get the plot's legend
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +
    +    # See if we can scale the legend.
    +    legend.xScale = 3.
    +    Test("legends_15")
    +    legend.yScale = 3.
    +    Test("legends_16")
    +
    +    # Test the bounding box.
    +    legend.drawBoundingBox = 1
    +    Test("legends_17")
    +    legend.boundingBoxColor = (180,180,180,230)
    +    Test("legends_18")
    +
    +    # Test moving the legend
    +    legend.managePosition = 0
    +    legend.position = (0.55,0.9)
    +    Test("legends_19")
    +
    +    # Test text color
    +    InvertBackgroundColor()
    +    Test("legends_20")
    +    InvertBackgroundColor()
    +    legend.useForegroundForTextColor = 0
    +    legend.textColor = (255, 0, 0, 255)
    +    Test("legends_21")
    +
    +    # Test number format
    +    legend.numberFormat = "%1.4e"
    +    Test("legends_22")
    +
    +    # Test the font.
    +    legend.fontFamily = legend.Courier
    +    Test("legends_23")
    +    legend.fontFamily = legend.Times
    +    Test("legends_24")
    +    legend.fontFamily = legend.Arial
    +    legend.fontBold = 1
    +    Test("legends_25")
    +    legend.fontBold = 0
    +    legend.fontItalic = 1
    +    Test("legends_26")
    +
    +    # Test turning off the labels.
    +    legend.fontItalic = 0
    +    legend.drawLabels = 0
    +    legend.drawMinMax = 0
    +    Test("legends_27")
    +
    +    # Test turning off the title.
    +    legend.drawTitle = 0
    +    Test("legends_28")
    +
    +    # Add a plot and then delete plot 0 to see that the legend disappears
    +    # in the list of annotation objects. Note that plot names are created
    +    # using an increasing integer. If this test is executed out of the order
    +    # from when it was baselined then the number will change and the test
    +    # will need to be rebaselined.
    +    text = "Before: " + str(GetAnnotationObjectNames()) + "\n"
    +    AddPlot("Mesh", "Mesh")
    +    DrawPlots()
    +    SetActivePlots(0)
    +    DeleteActivePlots()
    +    text = text + "After: " + str(GetAnnotationObjectNames()) + "\n"
    +    TestText("legends_29", text)
    +    DeleteAllPlots()
    +
    +#
    +# Test how legends get copied to new windows.
    +#
    +def TestLegendCopying(a):
    +    TestSection("Test legend copying")
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    AddPlot("Pseudocolor", "hardyglobal")
    +    DrawPlots()
    +
    +    # Customize the legend.
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend.xScale = 3.
    +    legend.yScale = 3.
    +    legend.drawBoundingBox = 1
    +    legend.boundingBoxColor = (50,50,100,255)
    +
    +    # Create another annotation object.
    +    text2d = CreateAnnotationObject("Text2D", "text_obj")
    +    text2d.position = (0.45, 0.5)
    +    text2d.height = 0.05
    +    text2d.textColor = (255, 0, 0, 255)
    +    text2d.useForegroundForTextColor = 0
    +    text2d.text = "Text annotation"
    +    Test("legends_30")
    +
    +    # Clone the window and make sure that it has the right annotation objects
    +    # and that their properties have been inherited from window 1.
    +    CloneWindow()
    +    SetActiveWindow(2)
    +    DrawPlots()
    +    Test("legends_31")
    +    DeleteWindow()
    +
    +    # Test clone on first reference.
    +    SetCloneWindowOnFirstRef(1)
    +    AddWindow()
    +    DrawPlots()
    +    Test("legends_32")
    +    TestText("legends_33", str(GetAnnotationObjectNames()))
    +
    +    # Test it clone on first reference again via SetActiveWindow
    +    DeleteWindow()
    +    AddWindow()
    +    SetActiveWindow(2)
    +    DrawPlots()
    +    Test("legends_34")
    +    TestText("legends_35", str(GetAnnotationObjectNames()))
    +
    +    # Now that we're in window 2, delete the text object.
    +    w2text = GetAnnotationObject("text_obj")
    +    w2text.Delete()
    +    # Customize the legend in window 2 so we'll know if copying window 1's
    +    # attributes over to window 2 messed it up.
    +    legend2 = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend2.boundingBoxColor = (200,0,0,255)
    +    Test("legends_36")
    +    CopyAnnotationsToWindow(1, 2)
    +    RedrawWindow()
    +    Test("legends_37")
    +
    +    # Clean up
    +    DeleteAllPlots()
    +    DeleteWindow()
    +    text2d.Delete()
    +    GetAnnotationObject("text_obj").Delete()
    +    DeleteAllPlots()
    +
    +def TestLegendTics():
    +    TestSection("Test setting legend tics")
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend.xScale = 3.
    +    legend.yScale = 3.
    +
    +    # change number of ticks
    +    legend.numTicks = 3
    +    Test("legends_38")
    +
    +    # turn off use of min and max as tick values
    +    legend.minMaxInclusive = 0
    +    Test("legends_39")
    +
    +    legend.numTicks = 1
    +    Test("legends_40")
    +
    +    legend.minMaxInclusive = 1
    +    Test("legends_41")
    +
    +    legend.numTicks = 2
    +    Test("legends_42")
    +
    +    legend.minMaxInclusive = 0
    +    Test("legends_43")
    +
    +    legend.minMaxInclusive = 1
    +    # turn off automatic control of ticks so labels can be added
    +    legend.controlTicks = 0
    +    # default values should be what was calculated
    +    Test("legends_44")
    +
    +    # supply some labels
    +    legend.suppliedLabels = ("", "second", "", "fourth", "")
    +    # Turn on drawing of text labels
    +    legend.drawLabels = legend.Both
    +    Test("legends_45")
    +
    +    # only labels, no values
    +    legend.drawLabels = legend.Labels
    +    Test("legends_46")
    +
    +    # supply different values -- don't need to be in order
    +    # show that values out-of-range won't be used
    +    legend.suppliedValues = (2.2, 4.5, 3.8, 1.0, 5.7)
    +    legend.suppliedLabels = ("this", "that", "the other", "noshow1", "noshow2")
    +    legend.drawLabels = legend.Values
    +    Test("legends_47")
    +    legend.drawLabels = legend.Both
    +    Test("legends_48")
    +    legend.drawLabels = legend.Labels
    +    Test("legends_49")
    +
    +    legend.orientation = legend.HorizontalTop
    +    Test("legends_50")
    +    legend.orientation = legend.HorizontalBottom
    +    Test("legends_51")
    +    legend.orientation = legend.VerticalLeft
    +    Test("legends_52")
    +
    +    DeleteAllPlots()
    +
    +    # demonstrate adding labels to 'levels' type legends
    +    AddPlot("FilledBoundary", "mat1")
    +    DrawPlots()
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend.xScale = 3.
    +    legend.yScale = 3.
    +
    +    legend.controlTicks = 0
    +    Test("legends_53")
    +    legend.drawLabels = legend.Both
    +    legend.suppliedLabels = ("red", "green", "blue");
    +    Test("legends_54")
    +    legend.drawLabels = legend.Labels
    +    Test("legends_55")
    +
    +    DeleteAllPlots()
    +    AddPlot("Contour", "p")
    +    contourAtts = ContourAttributes()
    +    contourAtts.contourNLevels = 6
    +    SetPlotOptions(contourAtts)
    +    DrawPlots()
    +
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend.xScale = 3.
    +    legend.yScale = 3.
    +    Test("legends_56")
    +    nf = legend.numberFormat
    +    legend.numberFormat = "%# -0.2e"
    +    Test("legends_57")
    +    legend.numberFormat = nf
    +    legend.controlTicks = 0
    +    legend.drawLabels = legend.Both
    +    legend.suppliedLabels = ("one", "", "two", "", "three")
    +    Test("legends_58")
    +    legend.drawLabels = legend.Labels
    +    Test("legends_59")
    +
    +    DeleteAllPlots()
    +
    +    # test constant legend
    +    DefineScalarExpression("one", "cell_constant(<curvmesh2d>, 1)")
    +    AddPlot("Pseudocolor", "one")
    +    DrawPlots()
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend.xScale = 3.
    +    legend.yScale = 3.
    +    Test("legends_60")
    +
    +    #clean up
    +    DeleteAllPlots()
    +
    +# Test the pseudocolor plot with original and actual limits.
    +# This test ensures that correct limits are displayed.
    +def TestVariableLegend():
    +    TestSection("Test Variable legend")
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    pc = PseudocolorAttributes()
    +    pc.limitsMode = pc.OriginalData
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    TurnMaterialsOff("1")
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend.xScale = 2.0
    +    legend.yScale = 2.0
    +    Test("legends_61")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "d")
    +    pc = PseudocolorAttributes()
    +    pc.limitsMode = pc.OriginalData
    +    pc.minFlag = 1
    +    pc.min = 2.8
    +    pc.maxFlag = 1
    +    pc.max = 4.2
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    TurnMaterialsOff("1")
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend.xScale = 2.0
    +    legend.yScale = 2.0
    +    Test("legends_62")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "d")
    +    pc = PseudocolorAttributes()
    +    pc.limitsMode = pc.ActualData
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    TurnMaterialsOff("1")
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend.xScale = 2.0
    +    legend.yScale = 2.0
    +    Test("legends_63")
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "d")
    +    pc = PseudocolorAttributes()
    +    pc.limitsMode = pc.ActualData
    +    pc.minFlag = 1
    +    pc.min = 2.8
    +    pc.maxFlag = 1
    +    pc.max = 4.2
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    TurnMaterialsOff("1")
    +    legend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +    legend.xScale = 2.0
    +    legend.yScale = 2.0
    +    Test("legends_64")
    +    DeleteAllPlots()
    +
    +def main():
    +    # Turn off all annotation except the legend.
    +    a = GetAnnotationAttributes()
    +    TurnOffAllAnnotations(a)
    +    a.legendInfoFlag = 1
    +    SetAnnotationAttributes(a)
    +
    +    TestLevelsLegend(a)
    +    TestSizeAndPosition(a)
    +    TestCurveLegend(a)
    +    TestLegendProperties(a)
    +    TestLegendCopying(a)
    +    TestLegendTics()
    +    TestVariableLegend()
    +
    +    # reset DatabaseInfo for future tests.
    +    a.databaseInfoFlag = 0
    +    SetAnnotationAttributes(a)
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_lighting.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_lighting.html new file mode 100644 index 000000000..5fd27648a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_lighting.html @@ -0,0 +1,54 @@ + +Results for rendering/lighting.py + +

    Results of VisIt Regression Test - rendering/lighting

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    lighting_010.000.00
    lighting_020.000.00
    normals_000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_lighting_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_lighting_py.html new file mode 100644 index 000000000..9dcda0087 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_lighting_py.html @@ -0,0 +1,113 @@ +rendering/lighting.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  lighting.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, one domain
    +#              plots     - pseudocolor
    +#              operators - slicing, elevation
    +#              selection - no
    +#
    +#  Defect ID:  8017
    +#
    +#  Programmer: Hank Childs
    +#  Date:       May 6, 2007
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Alister Maguire, Wed Mar 18 16:45:02 PDT 2020
    +#    Moved previous two tests into a function called TestBasicLighting and
    +#    added TestNormals.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def TestBasicLighting():
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +    AddPlot("Pseudocolor", "d")
    +    AddOperator("Slice")
    +    AddOperator("Elevate")
    +    DrawPlots()
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (-0.58136, 0.782415, -0.223267)
    +    View3DAtts.focus = (0.5, 0.5, 0.66382)
    +    View3DAtts.viewUp = (0.259676, -0.0816327, -0.962239)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 0.728621
    +    View3DAtts.nearPlane = -1.45724
    +    View3DAtts.farPlane = 1.45724
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 1
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0.5, 0.5, 0.66382)
    +    SetView3D(View3DAtts)
    +
    +    light0 = GetLight(0)
    +    light0.enabledFlag = 1
    +    light0.type = light0.Camera  # Ambient, Object, Camera
    +    light0.direction = (0, 0, -1)
    +    light0.color = (255, 255, 255, 255)
    +    light0.brightness = 1
    +    SetLight(0, light0)
    +    light1 = GetLight(1)
    +    light1.enabledFlag = 1
    +    light1.type = light1.Ambient  # Ambient, Object, Camera
    +    light1.direction = (0, 0, -1)
    +    light1.color = (255, 255, 255, 255)
    +    light1.brightness = 0.47
    +    SetLight(1, light1)
    +
    +    # In SR mode, bug '8017 was that the ambient would get turned off on
    +    # the second save.
    +    Test("lighting_01")
    +    Test("lighting_02")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("rect3d.silo"))
    +
    +
    +def TestNormals():
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.03622833898009251, 0.7402344653499199, 0.6713720606063838)
    +    SetView3D(v)
    +
    +    light0 = GetLight(0)
    +    light0.enabledFlag = 1
    +    light0.type = light0.Camera  # Ambient, Object, Camera
    +    light0.direction = (0, 0, -1)
    +    light0.brightness = .65
    +    SetLight(0, light0)
    +    light1 = GetLight(1)
    +    light1.enabledFlag = 1
    +    light1.type = light1.Ambient  # Ambient, Object, Camera
    +    light1.direction = (0, 0, -1)
    +    light0.brightness = .65
    +    SetLight(1, light1)
    +
    +    #
    +    # In the past, our normals filter wasn't able to handle triangle strips.
    +    # This test ensures that we now can.
    +    #
    +    OpenDatabase(data_path("vtk_test_data/polyWithStrips.vtk"))
    +    AddPlot("Pseudocolor", "fooData")
    +    DrawPlots()
    +    Test("normals_00")
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/polyWithStrips.vtk"))
    +
    +
    +def main():
    +    TestBasicLighting()
    +    TestNormals()
    +    Exit()
    +
    +main()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_line2d.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_line2d.html new file mode 100644 index 000000000..12d9b6b78 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_line2d.html @@ -0,0 +1,102 @@ + +Results for rendering/line2d.py + +

    Results of VisIt Regression Test - rendering/line2d

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    line2d000.000.00
    line2d010.000.00
    line2d020.000.00
    line2d030.000.00
    line2d040.000.00
    line2d050.000.00
    line2d060.000.00
    line2d070.000.00
    line2d080.000.00
    line2d090.000.00
    line2d100.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_line2d_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_line2d_py.html new file mode 100644 index 000000000..acd57dca2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_line2d_py.html @@ -0,0 +1,101 @@ +rendering/line2d.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  line2d.py
    +#
    +#  Tests:      mesh        - 2D curvilinear, single domain
    +#              plots       - Pseudocolor
    +#              annotations - Line2D
    +#
    +#  Defect ID:  #1724 (arrowheads for 2D Line annotations broke in 2.7) 
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       July 1, 2015
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Mon Aug  3 17:35:13 PDT 2015
    +#    Uncomment test line2d01, also set nextLine.useForegroundForLineColor.
    +#    Change line width values so that they yield previous results, line
    +#    annotation object now uses a lineWidth gui widget that allows values 
    +#    from 0 to 9.
    +# ----------------------------------------------------------------------------
    +
    +# Set up the annotation colors, etc.
    +a = GetAnnotationAttributes()
    +a.backgroundColor = (255, 255, 255, 255)
    +a.foregroundColor = (0, 0, 0, 255)
    +a.backgroundMode = a.Solid
    +SetAnnotationAttributes(a)
    +
    +# Open up the database and do a plot.
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +# Create a Line2D object
    +line = CreateAnnotationObject("Line2D")
    +line.position = (0.62, 0.83)
    +line.position2 = (0.43, 0.7)
    +Test("line2d00")
    +
    +# Set the foreground color to see if it changes
    +a.foregroundColor = (0, 255, 255, 255)
    +SetAnnotationAttributes(a)
    +Test("line2d01")
    +
    +# Test line color
    +a.foregroundColor = (255, 255, 255, 255)
    +SetAnnotationAttributes(a)
    +line.useForegroundForLineColor = 0
    +line.color = (0, 255, 255, 255)
    +Test("line2d02")
    +
    +# Test line width
    +line.width = 3
    +Test("line2d03")
    +
    +
    +# Test line arrow at start
    +line.color = (0,0,0,255)
    +line.width = 0
    +line.beginArrow = 1
    +Test("line2d04")
    +
    +# Test solid arrow at end
    +line.endArrow = 2
    +Test("line2d05")
    +
    +# Switch arrows
    +line.beginArrow = 2
    +line.endArrow = 1
    +Test("line2d06")
    +
    +# Test line opacity
    +line.position = (0.25, 0.32)
    +line.position2 = (0.85, 0.71)
    +line.width = 4
    +line.beginArrow = 0
    +line.endArrow = 0
    +line.color = (0,0,0,150)
    +Test("line2d07")
    +
    +# Create more line objects
    +nextLine = CreateAnnotationObject("Line2D")
    +nextLine.useForegroundForLineColor = 0
    +nextLine.color=(255, 0, 0, 255)
    +nextLine.position=(0.41, 0.86)
    +nextLine.position2=(0.75, 0.6)
    +nextLine.width=1
    +nextLine.endArrow=2
    +Test("line2d08")
    +
    +# Start Removing text
    +line.Delete()
    +Test("line2d09")
    +nextLine.Delete()
    +Test("line2d10")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_line3d.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_line3d.html new file mode 100644 index 000000000..8dfb0db4d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_line3d.html @@ -0,0 +1,102 @@ + +Results for rendering/line3d.py + +

    Results of VisIt Regression Test - rendering/line3d

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    line3d000.000.00
    Line3d010.000.00
    line3d050.000.00
    line3d060.000.00
    line3d070.000.00
    line3d080.000.00
    line3d090.000.00
    line3d100.000.00
    line3d110.000.00
    line3d120.000.00
    line3d130.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_line3d_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_line3d_py.html new file mode 100644 index 000000000..28c629521 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_line3d_py.html @@ -0,0 +1,104 @@ +rendering/line3d.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  line3d.py
    +#
    +#  Tests:      mesh        - 3D unstructured, single domain
    +#              plots       - Pseudocolor
    +#              annotations - Line3D
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       August 27, 2015
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Thu Apr 19 12:02:22 PDT 2018
    +#    Remove lineStyle tests, no longer available.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Set up the annotation colors, etc.
    +a = GetAnnotationAttributes()
    +a.backgroundColor = (255, 255, 255, 255)
    +a.foregroundColor = (0, 0, 0, 255)
    +a.backgroundMode = a.Solid
    +SetAnnotationAttributes(a)
    +
    +# Open up the database and do a plot.
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +# Create a Line3D object
    +line = CreateAnnotationObject("Line3D")
    +line.point1 = (0, -15, 0)
    +line.point2 = (0, 15, 0)
    +Test("line3d00")
    +
    +line.width = 7
    +Test("Line3d01")
    +
    +# Set the foreground color to see if it changes
    +a.foregroundColor = (0, 255, 255, 255)
    +SetAnnotationAttributes(a)
    +Test("line3d05")
    +
    +# Test line color
    +a.foregroundColor = (255, 255, 255, 255)
    +SetAnnotationAttributes(a)
    +line.useForegroundForLineColor = 0
    +line.color = (255, 0, 255, 255)
    +Test("line3d06")
    +
    +# Test arrow at start (flat)
    +line.arrow1Resolution = 1
    +line.arrow2Resolution = 1
    +line.arrow1Radius = 2
    +line.arrow2Radius = 2
    +line.arrow1Height = 5.6
    +line.arrow2Height = 5.6
    +line.arrow1 = 1
    +Test("line3d07")
    +# Test arrow at end
    +line.arrow1 = 0
    +line.arrow2 = 1
    +Test("line3d08")
    +
    +# Test both arrows 
    +line.arrow1 = 1
    +Test("line3d09")
    +
    +# Tubes
    +line.arrow1 = 0
    +line.lineType = line.TUBE
    +line.tubeRadius = 0.3
    +# make the arrow a cone
    +line.arrow2Resolution = 15
    +line.arrow2Radius = 1
    +line.arrow2Height = 2.8
    +Test("line3d10")
    +
    +
    +# Create more line objects
    +nextLine = CreateAnnotationObject("Line3D")
    +nextLine.useForegroundForLineColor = 0
    +nextLine.color=(0, 255, 0, 255)
    +nextLine.point1=(-15, 0, 0)
    +nextLine.point2=(15, 0, 0)
    +nextLine.arrow2 = 1
    +nextLine.lineType = line.TUBE
    +nextLine.tubeRadius = 0.3
    +nextLine.arrow2Resolution = 15
    +nextLine.arrow2Radius = 1
    +nextLine.arrow2Height = 2.8
    +Test("line3d11")
    +
    +# Start Removing lines
    +line.Delete()
    +Test("line3d12")
    +nextLine.Delete()
    +Test("line3d13")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_offscreensave.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_offscreensave.html new file mode 100644 index 000000000..603e1bec4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_offscreensave.html @@ -0,0 +1,122 @@ + +Results for rendering/offscreensave.py + +

    Results of VisIt Regression Test - rendering/offscreensave

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    offscreen_010.000.00
    offscreen_020.000.00
    offscreen_030.000.00
    offscreen_040.000.00
    offscreen_050.000.00
    offscreen_060.000.00
    offscreen_070.000.00
    offscreen_080.000.00
    offscreen_090.000.00
    offscreen_100.000.00
    offscreen_110.000.00
    md5 hash for 16384x16384 image
     "19d173a8af27d8b552a58bf7b99fa771" .eq. "19d173a8af27d8b552a58bf7b99fa771" : True
    md5 hash for 23168x23168 image
     "e76139eb88920334c6f931b5fec9c09d" .eq. "e76139eb88920334c6f931b5fec9c09d" : True
    md5 hash for 32768x16380 image
     "5a6315eae4bf7912a0ab6bd15f62d624" .eq. "5a6315eae4bf7912a0ab6bd15f62d624" : True
    md5 hash for 32768x32768 image
     "e76139eb88920334c6f931b5fec9c09d" .eq. "e76139eb88920334c6f931b5fec9c09d" : True
    md5 hash for 32768x24000 image
     "8c9c5ba01ab8132a42b7d0fa457cabba" .eq. "8c9c5ba01ab8132a42b7d0fa457cabba" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_offscreensave_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_offscreensave_py.html new file mode 100644 index 000000000..4c606654e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_offscreensave_py.html @@ -0,0 +1,194 @@ +rendering/offscreensave.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  offscreensave.py
    +#
    +#  Tests:      save window options
    +#              mesh      - 3D unstructured, multiple domains
    +#              plots     - pc, mesh 
    +#              operators - slice 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       29Mar04 
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Tue May 11 20:21:24 PDT 2004
    +#    Changed scalable rendering controls to use activation mode
    +#
    +#    Mark C. Miller, Thu Jan  6 15:09:06 PST 2005
    +#    Added a test that involves annotation objects
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Eric Brugger, Mon Aug  2 09:42:50 PDT 2021
    +#    Added test of 16384 x 16384 image save.
    +#
    +#    Kathleen Biagas, Fri Aug 27, 2021
    +#    Put tests into functions. Skip the large image test on Windows as it
    +#    doesn't yield the correct size image. Ensure the large image is saved
    +#    to run_dir so the test will execute on Windows properly once it can
    +#    be enabled.
    +#
    +#    Eric Brugger, Mon Nov 18 11:44:28 PST 2024
    +#    Updated the large image test and added several more.
    +#
    +# ----------------------------------------------------------------------------
    +
    +import hashlib
    +
    +def GeneralTests():
    +    TurnOnAllAnnotations()
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    view=GetView3D()
    +    view.viewNormal=(-0.528567, 0.374238, 0.761946)
    +    view.viewUp=(0.200044, 0.927212, -0.316639)
    +    SetView3D(view)
    +    Test("offscreen_01")
    +
    +    # build some savewindow attributes that DO NOT
    +    # use screen capture
    +    swa=SaveWindowAttributes()
    +    swa.screenCapture=0
    +    swa.width=400
    +    swa.height=400
    +
    +    # simple test to make sure we get all the annoations
    +    # when we save window using off-screen save
    +    Test("offscreen_02",swa)
    +
    +    # now, test saving at a different size
    +    swa.width=600
    +    swa.height=600
    +    Test("offscreen_03",swa)
    +
    +    # Ok, now diddle with annoations a bit and do some
    +    # more saves
    +    swa.width=300
    +    swa.height=300
    +    a = AnnotationAttributes()
    +    a.userInfoFlag = 0
    +    a.databaseInfoFlag = 0
    +    SetAnnotationAttributes(a)
    +    Test("offscreen_04",swa)
    +    a.legendInfoFlag = 0
    +    SetAnnotationAttributes(a)
    +    Test("offscreen_05",swa)
    +
    +    # Ok, now put the window into SR mode
    +    ra = GetRenderingAttributes()
    +    ra.scalableActivationMode = ra.Always
    +    SetRenderingAttributes(ra)
    +    Test("offscreen_06",swa)
    +
    +    # diddle some more with annoations
    +    a.databaseInfoFlag = 1
    +    a.legendInfoFlag = 1
    +    SetAnnotationAttributes(a)
    +    Test("offscreen_07",swa)
    +
    +    # Now, use screen capture mode to save the window
    +    Test("offscreen_08")
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +
    +    # Test off screen save of a 2D window
    +    AddPlot("Mesh", "curvmesh2d")
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +    swa.width=400
    +    swa.height=400
    +    Test("offscreen_09",swa)
    +
    +    # Test off screen save of a full frame 2D window
    +    view2=GetView2D()
    +    view2.fullFrameActivationMode=view2.On
    +    SetView2D(view2)
    +    swa.width=500
    +    swa.height=500
    +    Test("offscreen_10",swa)
    +
    +    # Now test some annotation objects
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +    AddPlot("Mesh", "mesh1")
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    view=GetView3D()
    +    view.viewNormal=(-0.528567, 0.374238, 0.761946)
    +    view.viewUp=(0.200044, 0.927212, -0.316639)
    +    SetView3D(view)
    +
    +    # Create a time slider
    +    slider = CreateAnnotationObject("TimeSlider")
    +    slider.position = (0.5, 0.5)
    +    swa.width=300
    +    swa.height=300
    +    Test("offscreen_11",swa)
    +
    +    slider.Delete()
    +    DeleteAllPlots()
    +
    +def TestLargeImage(width, height, md5sum):
    +    # Test saving a large image
    +    AddPlot("Pseudocolor", "d")
    +    DrawPlots()
    +
    +    view2=GetView2D()
    +    view2.fullFrameActivationMode=view2.Off
    +    SetView2D(view2)
    +
    +    swa=SaveWindowAttributes()
    +    # ensure the image is written to the run_dir by providing full path
    +    imgOutName=pjoin(TestEnv.params["run_dir"], "image_%dx%d.png" % (width,height))
    +    swa.width = width
    +    swa.height = height
    +    swa.resConstraint = swa.NoConstraint
    +    swa.fileName = imgOutName
    +    swa.family = 0
    +    SetSaveWindowAttributes(swa)
    +    SaveWindow()
    +
    +    DeleteAllPlots()
    +
    +    # Comparing md5 sum instead of image, since the image is large.
    +    md5_hash = hashlib.md5()
    +    with open(imgOutName, "rb") as f:
    +        # Read and update hash in chunks of 4K
    +        for byte_block in iter(lambda: f.read(4096),b""):
    +            md5_hash.update(byte_block)
    +    TestValueEQ("md5 hash for %dx%d image" % (width,height), md5_hash.hexdigest(), md5sum)
    +
    +GeneralTests()
    +
    +if not sys.platform.startswith("win"):
    +    # Cannot perform this test on Windows as image size is limited
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    TestLargeImage(16384, 16384, "19d173a8af27d8b552a58bf7b99fa771")
    +    TestLargeImage(23168, 23168, "e76139eb88920334c6f931b5fec9c09d")
    +    TestLargeImage(32768, 16380, "5a6315eae4bf7912a0ab6bd15f62d624")
    +
    +    # The images sizes for the last 2 tests are too large so they
    +    # will get scaled to be within the size allowed. The 32768x32768
    +    # image will be 23168x23168 and the 32768x24000 will be 27071x19827.
    +    TestLargeImage(32768, 32768, "e76139eb88920334c6f931b5fec9c09d")
    +    TestLargeImage(32768, 24000, "8c9c5ba01ab8132a42b7d0fa457cabba")
    +
    +    CloseDatabase(silo_data_path("curv2d.silo"))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_ospray.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_ospray.html new file mode 100644 index 000000000..2bac9ed8a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_ospray.html @@ -0,0 +1,50 @@ + +Results for rendering/ospray.py + +

    Results of VisIt Regression Test - rendering/ospray

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ospray_window_save0.000.00
    ospray_domain_boundaries_000.010.00
    +

    Final Return Code: 112

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_ospray_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_ospray_py.html new file mode 100644 index 000000000..f09abf0a6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_ospray_py.html @@ -0,0 +1,106 @@ +rendering/ospray.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ospray.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, one domain
    +#              plots     - pseudocolor
    +#              operators - Isovolume
    +#
    +#  Programmer: Alister Maguire
    +#  Date:       May 18, 2020
    +#
    +#  Modifications:
    +#
    +#    Alister Maguire, Fri Sep 11 16:16:49 PDT 2020
    +#    Added a test for OSPRay domain boundaries.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def TestOsprayWindowSave():
    +    #
    +    # This is testing a resolution of github issue #4286 where ospray
    +    # was not being used when SaveWindow was called, regardless of
    +    # whether or not we enabeld it.
    +    #
    +    OpenDatabase(silo_data_path("noise.silo"))
    +
    +    #
    +    # OSPRay looks pretty similar, so let's make sure that we
    +    # enable shadows and can see them in the output image.
    +    #
    +    AddPlot("Pseudocolor", "hardyglobal", 1, 1)
    +    AddOperator("Isovolume", 1)
    +    SetActivePlots(0)
    +    IsovolumeAtts = IsovolumeAttributes()
    +    IsovolumeAtts.lbound = 4.1
    +    IsovolumeAtts.ubound = 4.9
    +    IsovolumeAtts.variable = "default"
    +    SetOperatorOptions(IsovolumeAtts, 0, 1)
    +    DrawPlots()
    +
    +    RenderingAtts = RenderingAttributes()
    +    RenderingAtts.osprayRendering = 1
    +    RenderingAtts.osprayShadows = 1
    +    SetRenderingAttributes(RenderingAtts)
    +
    +    Test("ospray_window_save", pixdiff=0.2, avgdiff=0.01)
    +    DeleteAllPlots()
    +
    +    RenderingAtts = RenderingAttributes()
    +    RenderingAtts.osprayRendering = 0
    +    RenderingAtts.osprayShadows = 0
    +    SetRenderingAttributes(RenderingAtts)
    +
    +    CloseDatabase(silo_data_path("noise.silo"))
    +
    +
    +def TestOsprayVolumeDomainBoundaries():
    +    OpenDatabase(data_path("vtk_test_data/poiseuille_rayleigh_benard_3D_00000600.visit"))
    +
    +    #
    +    # Change the view so that we get a good look at the domain boundaries.
    +    # We need to first reset, otherwise the previous test ends up affecting
    +    # the view here.
    +    #
    +    ResetView()
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0.171986, 0.984799, 0.0243329)
    +    View3DAtts.viewUp = (-0.187983, 0.0570564, -0.980514)
    +    SetView3D(View3DAtts)
    +
    +    #
    +    # Add our plot and set up the ospray renderer.
    +    #
    +    AddPlot("Volume", "Regular/temperature", 1, 1)
    +    SetActivePlots(0)
    +
    +    VolumeAtts = VolumeAttributes()
    +    VolumeAtts.lightingFlag = 1
    +    VolumeAtts.opacityMode = VolumeAtts.FreeformMode
    +    VolumeAtts.freeformOpacity = (255,) * 256
    +    VolumeAtts.samplesPerRay = 100
    +    VolumeAtts.rendererType = VolumeAtts.Parallel
    +    VolumeAtts.resampleType = VolumeAtts.OnlyIfRequired
    +    VolumeAtts.OSPRayEnabledFlag = 1
    +    SetPlotOptions(VolumeAtts)
    +    DrawPlots()
    +
    +    #
    +    # NOTE: This test always has a slight pixel diff (~0.01%).
    +    #
    +    Test("ospray_domain_boundaries_00", pixdiff=0.1, avgdiff=0.01)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("vtk_test_data/poiseuille_rayleigh_benard_3D_00000600.visit"))
    +
    +
    +def main():
    +    TestOsprayWindowSave()
    +    TestOsprayVolumeDomainBoundaries()
    +
    +    Exit()
    +
    +main()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_pixeldata.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_pixeldata.html new file mode 100644 index 000000000..d8ae82228 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_pixeldata.html @@ -0,0 +1,174 @@ + +Results for rendering/pixeldata.py + +

    Results of VisIt Regression Test - rendering/pixeldata

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Save transparent background image
    pixeldata_0_000.000.00
    pixeldata_0_010.000.00
    pixeldata_0_020.000.00
    pixeldata_0_030.000.00
    pixeldata_0_040.000.00
    pixeldata_0_0553.1113.09
    pixeldata_0_060.000.00
    pixeldata_0_0752.6112.95
    pixeldata_0_0853.1163.82
    pixeldata_0_0953.1113.09
    pixeldata_0_1052.6163.12
    pixeldata_0_1153.4912.92
    Save image plus depth
    pixeldata_1_000.000.00
    pixeldata_1_010.000.00
    pixeldata_1_020.000.00
    pixeldata_1_030.000.00
    pixeldata_1_040.000.00
    pixeldata_1_050.000.00
    pixeldata_1_060.000.00
    pixeldata_1_070.000.00
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_pixeldata_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_pixeldata_py.html new file mode 100644 index 000000000..ffc25c450 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_pixeldata_py.html @@ -0,0 +1,215 @@ +rendering/pixeldata.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  openexr.py 
    +#
    +#  Tests:      saving pixel data, transparent backgrounds in saved images.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Feb 15 14:16:45 PST 2018
    +#
    +#  Modifications:
    +# 
    +# ----------------------------------------------------------------------------
    +
    +# Saves pixel data.
    +def SavePixelData(filename, alpha, depth, luminance, value):
    +    s = GetSaveWindowAttributes()
    +    s.outputToCurrentDirectory = 1
    +    s.family = 0
    +    s.fileName = filename
    +    s.width  = TestEnv.params["width"]
    +    s.height = TestEnv.params["height"]
    +    s.screenCapture = 0
    +    s.format = s.PNG
    +    s.pixelData = 1
    +    if alpha:
    +        s.pixelData = s.pixelData | 2
    +    if luminance:
    +        s.pixelData = s.pixelData | 4
    +    if value:
    +        s.pixelData = s.pixelData | 8
    +    if depth:
    +        s.pixelData = s.pixelData | 16
    +    SetSaveWindowAttributes(s)
    +    SaveWindow()
    +
    +def test0():
    +    TestSection("Save transparent background image")
    +    db = silo_data_path("noise.silo")
    +    OpenDatabase(db)
    +    AddPlot("Contour", "hardyglobal")
    +    c = GetPlotOptions()
    +    c.SetMultiColor(2, (0, 0, 255, 100))
    +    c.SetMultiColor(3, (0, 255, 255, 100))
    +    c.SetMultiColor(4, (255, 0, 255, 100))
    +    SetPlotOptions(c)
    +    DrawPlots()
    +    v3 = GetView3D()
    +    v3.viewNormal = (-0.569008, 0.313204, 0.760351)
    +    v3.focus = (0, 0, 0)
    +    v3.viewUp = (0.185488, 0.949682, -0.252384)
    +    v3.viewAngle = 30
    +    v3.parallelScale = 17.3205
    +    v3.nearPlane = -34.641
    +    v3.farPlane = 34.641
    +    v3.imagePan = (-0.0120947, 0.0574413)
    +    v3.imageZoom = 1.13829
    +    v3.perspective = 1
    +    v3.eyeAngle = 2
    +    v3.centerOfRotationSet = 0
    +    v3.centerOfRotation = (0, 0, 0)
    +    v3.axis3DScaleFlag = 0
    +    v3.axis3DScales = (1, 1, 1)
    +    v3.shear = (0, 0, 1)
    +    v3.windowValid = 1
    +    SetView3D(v3)
    +    Test("pixeldata_0_00")
    +    # Save a partially transparent Contour plot on a transparent background.
    +    SavePixelData("pd0", 1, 0, 0, 0)
    +
    +    # Save a partially transparent Contour plot on a transparent background -- with axes
    +    a = GetAnnotationAttributes()
    +    a.axes3D.bboxFlag = 1
    +    SetAnnotationAttributes(a)
    +    Test("pixeldata_0_01")
    +    SavePixelData("pd1", 1, 0, 0, 0)
    +
    +    # Test that we get the transparent background when we have a gradient bg.
    +    a = GetAnnotationAttributes()
    +    a.backgroundMode = a.Gradient
    +    a.gradientColor1 = (180, 100, 180, 255)
    +    a.gradientColor2 = (0, 0, 0, 255)
    +    a.axes3D.bboxFlag = 0
    +    a.foregroundColor = (255,255,255,255)
    +    SetAnnotationAttributes(a)
    +    Test("pixeldata_0_02")
    +    SavePixelData("pd2", 1, 0, 0, 0)
    +
    +    # Test that we get the transparent background when we have a gradient bg. with axes
    +    a.axes3D.bboxFlag = 1
    +    SetAnnotationAttributes(a)
    +    Test("pixeldata_0_03")
    +    SavePixelData("pd3", 1, 0, 0, 0)
    +
    +    # Restore solid bg, no axes
    +    a.backgroundMode = a.Solid
    +    a.axes3D.bboxFlag = 0
    +    a.foregroundColor = (0,0,0,255)
    +    SetAnnotationAttributes(a)
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +    # Make some expressions that let us plot a transparent image with a checker background.
    +    DefineScalarExpression("i", "floor(coords(ImageMesh)[0] / 20)")
    +    DefineScalarExpression("j", "floor(coords(ImageMesh)[1] / 20)")
    +    DefineScalarExpression("checker", "mod(i+j, 2)")
    +    DefineScalarExpression("gray", "100+checker*80")
    +    DefineScalarExpression("t", "alpha / 255.")
    +    DefineScalarExpression("omt", "1 - t")
    +    DefineVectorExpression("blend", "color4(t*red + omt*gray,t*green + omt*gray,t*blue + omt*gray, 255)")
    +    DefineVectorExpression("comp", "if(lt(alpha, 255), blend, color4(red, green, blue, 255))")
    +
    +    # Open the files we made.
    +    idx = 4
    +    for db in ("pd0.png", "pd1.png", "pd2.png", "pd3.png"):
    +        OpenDatabase(db)
    +        AddPlot("Pseudocolor", "alpha")
    +        DrawPlots()
    +        v = GetView2D()
    +        v.viewportCoords = (0, 1, 0, 1)
    +        SetView2D(v)
    +        Test("pixeldata_0_%02d" % idx)
    +        DeleteAllPlots()
    +        AddPlot("Truecolor", "comp")
    +        DrawPlots()
    +        Test("pixeldata_0_%02d" % (idx+1))
    +        DeleteAllPlots()
    +        CloseDatabase(db)
    +        idx = idx + 2
    +
    +def test1():
    +    TestSection("Save image plus depth")
    +    db = silo_data_path("multi_rect3d.silo")
    +    OpenDatabase(db)
    +    AddPlot("Contour", "u")
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (-0.483301, 0.412135, 0.772376)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.218992, 0.911123, -0.349139)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 0.5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +    # Save against a solid background.
    +    Test("pixeldata_1_00")
    +    SavePixelData("pdz0", 0, 1, 0, 0)
    +
    +    # Save against a solid background adding axes
    +    a = GetAnnotationAttributes()
    +    a.axes3D.bboxFlag = 1
    +    SetAnnotationAttributes(a)
    +    Test("pixeldata_1_01")
    +    SavePixelData("pdz1", 0, 1, 0, 0)
    +
    +    # Save against a gradient background 
    +    a.backgroundMode = a.Gradient
    +    a.gradientColor1 = (180, 100, 180, 255)
    +    a.gradientColor2 = (0, 0, 0, 255)
    +    a.axes3D.bboxFlag = 0
    +    a.foregroundColor = (255,255,255,255)
    +    SetAnnotationAttributes(a)
    +    Test("pixeldata_1_02")
    +    SavePixelData("pdz2", 0, 1, 0, 0)
    +
    +    # Save against a gradient background adding axes
    +    a.backgroundMode = a.Gradient
    +    a.gradientColor1 = (180, 100, 180, 255)
    +    a.gradientColor2 = (0, 0, 0, 255)
    +    a.axes3D.bboxFlag = 1
    +    a.foregroundColor = (255,255,255,255)
    +    SetAnnotationAttributes(a)
    +    Test("pixeldata_1_03")
    +    SavePixelData("pdz3", 0, 1, 0, 0)
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +    # Open the files we made.
    +    idx = 4
    +    for db in ("pdz0.png", "pdz1.png", "pdz2.png", "pdz3.png"):
    +        OpenDatabase(db)
    +        AddPlot("Pseudocolor", "depth")
    +        pc = GetPlotOptions()
    +        pc.max = 220.
    +        pc.maxFlag = 1
    +        SetPlotOptions(pc)
    +        DrawPlots()
    +        v = GetView2D()
    +        v.viewportCoords = (0, 1, 0, 1)
    +        SetView2D(v)
    +        Test("pixeldata_1_%02d" % idx)
    +        DeleteAllPlots()
    +        CloseDatabase(db)
    +        idx = idx + 1
    +
    +def main():
    +    test0()
    +    test1()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_pointGlyphing.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_pointGlyphing.html new file mode 100644 index 000000000..22491d449 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_pointGlyphing.html @@ -0,0 +1,900 @@ + +Results for rendering/pointGlyphing.py + +

    Results of VisIt Regression Test - rendering/pointGlyphing

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Pseudocolor_Box_polyData_vertex.vtk0.000.00
    Pseudocolor_Axis_polyData_vertex.vtk0.000.00
    Pseudocolor_Icosahedron_polyData_vertex.vtk0.000.00
    Pseudocolor_Octahedron_polyData_vertex.vtk0.000.00
    Pseudocolor_Tetrahedron_polyData_vertex.vtk0.000.00
    Pseudocolor_SphereGeometry_polyData_vertex.vtk0.000.00
    Pseudocolor_Point_polyData_vertex.vtk0.000.00
    Pseudocolor_Sphere_polyData_vertex.vtk0.000.00
    Mesh_Box_polyData_vertex.vtk0.000.00
    Mesh_Axis_polyData_vertex.vtk0.000.00
    Mesh_Icosahedron_polyData_vertex.vtk0.000.00
    Mesh_Octahedron_polyData_vertex.vtk0.000.00
    Mesh_Tetrahedron_polyData_vertex.vtk0.000.00
    Mesh_SphereGeometry_polyData_vertex.vtk0.000.00
    Mesh_Point_polyData_vertex.vtk0.000.00
    Mesh_Sphere_polyData_vertex.vtk0.000.00
    Subset_Box_polyData_vertex.vtk0.000.00
    Subset_Axis_polyData_vertex.vtk0.000.00
    Subset_Icosahedron_polyData_vertex.vtk0.000.00
    Subset_Octahedron_polyData_vertex.vtk0.000.00
    Subset_Tetrahedron_polyData_vertex.vtk0.000.00
    Subset_SphereGeometry_polyData_vertex.vtk0.000.00
    Subset_Point_polyData_vertex.vtk0.000.00
    Subset_Sphere_polyData_vertex.vtk0.000.00
    Pseudocolor_Box_polyData_polyVertex.vtk0.000.00
    Pseudocolor_Axis_polyData_polyVertex.vtk0.000.00
    Pseudocolor_Icosahedron_polyData_polyVertex.vtk0.000.00
    Pseudocolor_Octahedron_polyData_polyVertex.vtk0.000.00
    Pseudocolor_Tetrahedron_polyData_polyVertex.vtk0.000.00
    Pseudocolor_SphereGeometry_polyData_polyVertex.vtk0.000.00
    Pseudocolor_Point_polyData_polyVertex.vtk0.000.00
    Pseudocolor_Sphere_polyData_polyVertex.vtk0.000.00
    Mesh_Box_polyData_polyVertex.vtk0.000.00
    Mesh_Axis_polyData_polyVertex.vtk0.000.00
    Mesh_Icosahedron_polyData_polyVertex.vtk0.000.00
    Mesh_Octahedron_polyData_polyVertex.vtk0.000.00
    Mesh_Tetrahedron_polyData_polyVertex.vtk0.000.00
    Mesh_SphereGeometry_polyData_polyVertex.vtk0.000.00
    Mesh_Point_polyData_polyVertex.vtk0.000.00
    Mesh_Sphere_polyData_polyVertex.vtk0.000.00
    Subset_Box_polyData_polyVertex.vtk0.000.00
    Subset_Axis_polyData_polyVertex.vtk0.000.00
    Subset_Icosahedron_polyData_polyVertex.vtk0.000.00
    Subset_Octahedron_polyData_polyVertex.vtk0.000.00
    Subset_Tetrahedron_polyData_polyVertex.vtk0.000.00
    Subset_SphereGeometry_polyData_polyVertex.vtk0.000.00
    Subset_Point_polyData_polyVertex.vtk0.000.00
    Subset_Sphere_polyData_polyVertex.vtk0.000.00
    Pseudocolor_Box_polyData_mixedVertex.vtk0.000.00
    Pseudocolor_Axis_polyData_mixedVertex.vtk0.000.00
    Pseudocolor_Icosahedron_polyData_mixedVertex.vtk0.000.00
    Pseudocolor_Octahedron_polyData_mixedVertex.vtk0.000.00
    Pseudocolor_Tetrahedron_polyData_mixedVertex.vtk0.000.00
    Pseudocolor_SphereGeometry_polyData_mixedVertex.vtk0.000.00
    Pseudocolor_Point_polyData_mixedVertex.vtk0.000.00
    Pseudocolor_Sphere_polyData_mixedVertex.vtk0.000.00
    Mesh_Box_polyData_mixedVertex.vtk0.000.00
    Mesh_Axis_polyData_mixedVertex.vtk0.000.00
    Mesh_Icosahedron_polyData_mixedVertex.vtk0.000.00
    Mesh_Octahedron_polyData_mixedVertex.vtk0.000.00
    Mesh_Tetrahedron_polyData_mixedVertex.vtk0.000.00
    Mesh_SphereGeometry_polyData_mixedVertex.vtk0.000.00
    Mesh_Point_polyData_mixedVertex.vtk0.000.00
    Mesh_Sphere_polyData_mixedVertex.vtk0.000.00
    Subset_Box_polyData_mixedVertex.vtk0.000.00
    Subset_Axis_polyData_mixedVertex.vtk0.000.00
    Subset_Icosahedron_polyData_mixedVertex.vtk0.000.00
    Subset_Octahedron_polyData_mixedVertex.vtk0.000.00
    Subset_Tetrahedron_polyData_mixedVertex.vtk0.000.00
    Subset_SphereGeometry_polyData_mixedVertex.vtk0.000.00
    Subset_Point_polyData_mixedVertex.vtk0.000.00
    Subset_Sphere_polyData_mixedVertex.vtk0.000.00
    Pseudocolor_Box_ugrid_vertex.vtk0.000.00
    Pseudocolor_Axis_ugrid_vertex.vtk0.000.00
    Pseudocolor_Icosahedron_ugrid_vertex.vtk0.000.00
    Pseudocolor_Octahedron_ugrid_vertex.vtk0.000.00
    Pseudocolor_Tetrahedron_ugrid_vertex.vtk0.000.00
    Pseudocolor_SphereGeometry_ugrid_vertex.vtk0.000.00
    Pseudocolor_Point_ugrid_vertex.vtk0.000.00
    Pseudocolor_Sphere_ugrid_vertex.vtk0.000.00
    Mesh_Box_ugrid_vertex.vtk0.000.00
    Mesh_Axis_ugrid_vertex.vtk0.000.00
    Mesh_Icosahedron_ugrid_vertex.vtk0.000.00
    Mesh_Octahedron_ugrid_vertex.vtk0.000.00
    Mesh_Tetrahedron_ugrid_vertex.vtk0.000.00
    Mesh_SphereGeometry_ugrid_vertex.vtk0.000.00
    Mesh_Point_ugrid_vertex.vtk0.000.00
    Mesh_Sphere_ugrid_vertex.vtk0.000.00
    Subset_Box_ugrid_vertex.vtk0.000.00
    Subset_Axis_ugrid_vertex.vtk0.000.00
    Subset_Icosahedron_ugrid_vertex.vtk0.000.00
    Subset_Octahedron_ugrid_vertex.vtk0.000.00
    Subset_Tetrahedron_ugrid_vertex.vtk0.000.00
    Subset_SphereGeometry_ugrid_vertex.vtk0.000.00
    Subset_Point_ugrid_vertex.vtk0.000.00
    Subset_Sphere_ugrid_vertex.vtk0.000.00
    Pseudocolor_Box_ugrid_polyVertex.vtk0.000.00
    Pseudocolor_Axis_ugrid_polyVertex.vtk0.000.00
    Pseudocolor_Icosahedron_ugrid_polyVertex.vtk0.000.00
    Pseudocolor_Octahedron_ugrid_polyVertex.vtk0.000.00
    Pseudocolor_Tetrahedron_ugrid_polyVertex.vtk0.000.00
    Pseudocolor_SphereGeometry_ugrid_polyVertex.vtk0.000.00
    Pseudocolor_Point_ugrid_polyVertex.vtk0.000.00
    Pseudocolor_Sphere_ugrid_polyVertex.vtk0.000.00
    Mesh_Box_ugrid_polyVertex.vtk0.000.00
    Mesh_Axis_ugrid_polyVertex.vtk0.000.00
    Mesh_Icosahedron_ugrid_polyVertex.vtk0.000.00
    Mesh_Octahedron_ugrid_polyVertex.vtk0.000.00
    Mesh_Tetrahedron_ugrid_polyVertex.vtk0.000.00
    Mesh_SphereGeometry_ugrid_polyVertex.vtk0.000.00
    Mesh_Point_ugrid_polyVertex.vtk0.000.00
    Mesh_Sphere_ugrid_polyVertex.vtk0.000.00
    Subset_Box_ugrid_polyVertex.vtk0.000.00
    Subset_Axis_ugrid_polyVertex.vtk0.000.00
    Subset_Icosahedron_ugrid_polyVertex.vtk0.000.00
    Subset_Octahedron_ugrid_polyVertex.vtk0.000.00
    Subset_Tetrahedron_ugrid_polyVertex.vtk0.000.00
    Subset_SphereGeometry_ugrid_polyVertex.vtk0.000.00
    Subset_Point_ugrid_polyVertex.vtk0.000.00
    Subset_Sphere_ugrid_polyVertex.vtk0.000.00
    Pseudocolor_Box_ugrid_mixedVertex.vtk0.000.00
    Pseudocolor_Axis_ugrid_mixedVertex.vtk0.000.00
    Pseudocolor_Icosahedron_ugrid_mixedVertex.vtk0.000.00
    Pseudocolor_Octahedron_ugrid_mixedVertex.vtk0.000.00
    Pseudocolor_Tetrahedron_ugrid_mixedVertex.vtk0.000.00
    Pseudocolor_SphereGeometry_ugrid_mixedVertex.vtk0.000.00
    Pseudocolor_Point_ugrid_mixedVertex.vtk0.000.00
    Pseudocolor_Sphere_ugrid_mixedVertex.vtk0.000.00
    Mesh_Box_ugrid_mixedVertex.vtk0.000.00
    Mesh_Axis_ugrid_mixedVertex.vtk0.000.00
    Mesh_Icosahedron_ugrid_mixedVertex.vtk0.000.00
    Mesh_Octahedron_ugrid_mixedVertex.vtk0.000.00
    Mesh_Tetrahedron_ugrid_mixedVertex.vtk0.000.00
    Mesh_SphereGeometry_ugrid_mixedVertex.vtk0.000.00
    Mesh_Point_ugrid_mixedVertex.vtk0.000.00
    Mesh_Sphere_ugrid_mixedVertex.vtk0.000.00
    Subset_Box_ugrid_mixedVertex.vtk0.000.00
    Subset_Axis_ugrid_mixedVertex.vtk0.000.00
    Subset_Icosahedron_ugrid_mixedVertex.vtk0.000.00
    Subset_Octahedron_ugrid_mixedVertex.vtk0.000.00
    Subset_Tetrahedron_ugrid_mixedVertex.vtk0.000.00
    Subset_SphereGeometry_ugrid_mixedVertex.vtk0.000.00
    Subset_Point_ugrid_mixedVertex.vtk0.000.00
    Subset_Sphere_ugrid_mixedVertex.vtk0.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_pointGlyphing_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_pointGlyphing_py.html new file mode 100644 index 000000000..6e790f7e0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_pointGlyphing_py.html @@ -0,0 +1,65 @@ +rendering/pointGlyphing.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  pointGlyphing.py
    +#
    +#  Tests:      mesh      - 3D point
    +#              plots     - pseudocolor, subset, mesh
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       August 28, 2024 
    +#
    +#  Modificatons:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def TestVertexOnlyFiles():
    +
    +    # These test files were designed to test vertex-only,
    +    # poly-vertex only and mixed vertex and poly-vertex datasets.
    +    # The polyData and ugrid versions should be identical.
    +    vtk_vertex_files=["polyData_vertex.vtk",
    +                      "polyData_polyVertex.vtk",
    +                      "polyData_mixedVertex.vtk",
    +                      "ugrid_vertex.vtk",
    +                      "ugrid_polyVertex.vtk",
    +                      "ugrid_mixedVertex.vtk"]
    +
    +    glyphNames=["Box", "Axis", "Icosahedron", "Octahedron", "Tetrahedron", "SphereGeometry", "Point", "Sphere"]
    +
    +    plots={'Pseudocolor':'foo_cells','Mesh':'mesh','Subset':'mesh'}
    +
    +    for f in vtk_vertex_files:
    +        OpenDatabase(data_path("vtk_test_data",f))
    +
    +        for p,v in plots.items():
    +            AddPlot(p,v)
    +            DrawPlots()
    +            v3d = GetView3D()
    +            v3d.viewNormal = (-0.396043, 0.723303, 0.56567)
    +            v3d.viewUp = (0.246238, 0.677138, -0.693434)
    +            SetView3D(v3d);
    +
    +            if p == 'Pseudocolor':
    +                atts=PseudocolorAttributes()
    +            elif p == 'Mesh':
    +                atts=MeshAttributes()
    +            else:
    +                atts=SubsetAttributes()
    +
    +            atts.pointSize = 0.5
    +            atts.pointSizePixels = 10
    +
    +            for i,n in enumerate(glyphNames):
    +                atts.pointType = i
    +                SetPlotOptions(atts)
    +                Test(p+"_"+n+"_"+f)
    +
    +            DeleteAllPlots()
    +
    +        CloseDatabase(data_path("vtk_test_data",f))
    +
    +TestVertexOnlyFiles()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_renderpoints.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_renderpoints.html new file mode 100644 index 000000000..ec0ddc3d4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_renderpoints.html @@ -0,0 +1,444 @@ + +Results for rendering/renderpoints.py + +

    Results of VisIt Regression Test - rendering/renderpoints

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Set pointSizePixels for plots that support it
    renderpoint_0_000.000.00
    renderpoint_0_010.000.00
    renderpoint_0_020.000.00
    renderpoint_0_030.000.00
    renderpoint_0_040.000.00
    renderpoint_0_050.000.00
    renderpoint_0_060.000.00
    renderpoint_0_070.000.00
    renderpoint_0_080.000.00
    renderpoint_0_090.000.00
    renderpoint_0_100.000.00
    renderpoint_0_110.000.00
    renderpoint_0_120.000.00
    renderpoint_0_130.000.00
    renderpoint_0_140.000.00
    Check points to glyph transition
    renderpoint_1_000.000.00
    renderpoint_1_010.000.00
    renderpoint_1_020.000.00
    renderpoint_1_030.000.00
    Check points drawn as spheres
    renderpoint_2_000.000.00
    renderpoint_2_010.000.00
    renderpoint_2_020.000.00
    renderpoint_2_030.000.00
    renderpoint_2_040.000.00
    renderpoint_2_050.000.00
    renderpoint_2_060.000.00
    renderpoint_2_070.000.00
    renderpoint_2_080.000.00
    renderpoint_2_090.000.00
    Check glyph types for Mesh plot
    renderpoint_3_000.000.00
    renderpoint_3_010.000.00
    renderpoint_3_020.000.00
    renderpoint_3_030.000.00
    renderpoint_3_040.000.00
    Check glyph types for Pseudocolor plot
    renderpoint_3_050.000.00
    renderpoint_3_060.000.00
    renderpoint_3_070.000.00
    renderpoint_3_080.000.00
    renderpoint_3_090.000.00
    Check glyph types for Scatter plot
    renderpoint_3_100.000.00
    renderpoint_3_110.000.00
    renderpoint_3_120.000.00
    renderpoint_3_130.000.00
    renderpoint_3_140.000.00
    Check glyph types for FilledBoundary plot
    renderpoint_3_150.000.00
    renderpoint_3_160.000.00
    renderpoint_3_170.000.00
    renderpoint_3_180.000.00
    renderpoint_3_190.000.00
    Check all glyph types for Subset plot
    renderpoint_3_200.000.00
    renderpoint_3_210.000.00
    renderpoint_3_220.000.00
    renderpoint_3_230.000.00
    renderpoint_3_240.000.00
    Check scaling glyphs by a variable
    renderpoint_4_000.000.00
    renderpoint_4_010.000.00
    renderpoint_4_020.000.00
    renderpoint_4_030.000.00
    Check glyphed plots restored from session files
    renderpoint_5_000.000.00
    renderpoint_5_010.000.00
    renderpoint_5_020.000.00
    renderpoint_5_030.000.00
    renderpoint_5_040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_renderpoints_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_renderpoints_py.html new file mode 100644 index 000000000..5b9a1d490 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_renderpoints_py.html @@ -0,0 +1,347 @@ +rendering/renderpoints.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  renderpoints.py
    +#
    +#  Tests:      mesh      - 3D point
    +#              plots     - pseudocolor, subset, mesh
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Aug 26 13:39:07 PST 2005
    +#
    +#  Modificatons:
    +#    Mark C. Miller, Wed Jan 21 10:00:10 PST 2009
    +#    Removed silly comment regarding global annotation object 'a'
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Thu Dec 15 09:16:39 PST 2016
    +#    Added tests for other glyph types, scaling by variable and restoring
    +#    session files.
    +#
    +#    Kathleen Biagas, Wed Feb 16 09:15:45 PST 2022
    +#    Replace use of meshatts 'foregroundFlag' with meshColorSource.
    +#
    +# ----------------------------------------------------------------------------
    +
    +#
    +# General testing function
    +#
    +def TestPlot(plotName, plotVar, atts, cases):
    +    AddPlot(plotName, plotVar)
    +    if atts == None:
    +        atts = eval(plotName + "Attributes()")
    +    atts.pointType = atts.Point
    +    atts.pointSizePixels = 1
    +    SetPlotOptions(atts)
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.51943, 0.317321, 0.79341)
    +    v.focus = (0.499552, 0.500362, 0.499909)
    +    v.viewUp = (0.172325, 0.948317, -0.266458)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.865387
    +    v.nearPlane = -1.73077
    +    v.farPlane = 1.73077
    +    v.imagePan = (-0.0139929, 0.0505193)
    +    v.imageZoom = 1.25645
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.499552, 0.500362, 0.499909)
    +    SetView3D(v)
    +    Test("renderpoint" + cases[0])
    +
    +    atts.pointSizePixels = 5
    +    SetPlotOptions(atts)
    +    Test("renderpoint" + cases[1])
    +
    +    # Make sure that it remains set after regenerating the plot.
    +    TurnDomainsOff(("domain3", "domain4", "domain7", "domain8"))
    +    Test("renderpoint" + cases[2])
    +    TurnDomainsOn()
    +    DeleteActivePlots()
    +
    +#
    +# Test plots that can render their points using GL points.
    +#
    +def test0():
    +    TestSection("Set pointSizePixels for plots that support it")
    +    # Test Mesh
    +    atts = MeshAttributes()
    +    atts.meshColor = (100,150,255)
    +    atts.meshColorSource = atts.MeshCustom
    +    TestPlot("Mesh", "StarMesh", atts, ("_0_00", "_0_01", "_0_02"))
    +
    +    # Test Pseudocolor
    +    TestPlot("Pseudocolor", "Matnos", None, ("_0_03", "_0_04", "_0_05"))
    +
    +    # Test Scatter
    +    atts = ScatterAttributes()
    +    atts.var2 = "vy"
    +    atts.var3 = "vz"
    +    atts.var3Role = atts.Coordinate2
    +    atts.var4 = "Matnos"
    +    atts.var4Role = atts.Color
    +    TestPlot("Scatter", "vx", atts, ("_0_06", "_0_07", "_0_08"))
    +
    +    # Test FilledBoundary
    +    TestPlot("FilledBoundary", "stars", None, ("_0_09", "_0_10", "_0_11"))
    +
    +    # Test Subset
    +    TestPlot("Subset", "domains", None, ("_0_12", "_0_13", "_0_14"))
    +
    +#
    +# General testing function #2
    +#
    +def TestPlot1(plotName, plotVar, atts, cases):
    +    AddPlot(plotName, plotVar)
    +    if atts == None:
    +        atts = eval(plotName + "Attributes()")
    +    atts.pointType = atts.Point
    +    atts.pointSizePixels = 5
    +    SetPlotOptions(atts)
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.51943, 0.317321, 0.79341)
    +    v.focus = (0.499552, 0.500362, 0.499909)
    +    v.viewUp = (0.172325, 0.948317, -0.266458)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.865387
    +    v.nearPlane = -1.73077
    +    v.farPlane = 1.73077
    +    v.imagePan = (-0.0139929, 0.0505193)
    +    v.imageZoom = 1.25645
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.499552, 0.500362, 0.499909)
    +    SetView3D(v)
    +    Test("renderpoint" + cases[0])
    +
    +    atts.pointType = atts.Box
    +    SetPlotOptions(atts)
    +    Test("renderpoint" + cases[1])
    +    DeleteActivePlots()
    +
    +#
    +# Test that we can switch to other glyph types after starting up
    +# in point glyph mode, which does not use the glyph filters.
    +#
    +def test1():
    +    TestSection("Check points to glyph transition")
    +    # Test Pseudocolor
    +    TestPlot1("Pseudocolor", "Matnos", None, ("_1_00", "_1_01"))
    +    # Test FilledBoundary
    +    TestPlot1("FilledBoundary", "stars", None, ("_1_02", "_1_03"))
    +
    +#
    +# General testing function #3
    +#
    +def TestPlot2(plotName, plotVar, atts, cases):
    +    AddPlot(plotName, plotVar)
    +    if atts == None:
    +        atts = eval(plotName + "Attributes()")
    +    atts.pointType = atts.Sphere
    +    atts.pointSizePixels = 10
    +    SetPlotOptions(atts)
    +    DrawPlots()
    +
    +    v = View3DAttributes()
    +    v.viewNormal = (-0.51943, 0.317321, 0.79341)
    +    v.focus = (0.499552, 0.500362, 0.499909)
    +    v.viewUp = (0.172325, 0.948317, -0.266458)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.865387
    +    v.nearPlane = -1.73077
    +    v.farPlane = 1.73077
    +    v.imagePan = (-0.0139929, 0.0505193)
    +    v.imageZoom = 1.25645
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.499552, 0.500362, 0.499909)
    +    SetView3D(v)
    +    Test("renderpoint" + cases[0])
    +
    +    atts.pointSizePixels = 20
    +    SetPlotOptions(atts)
    +    Test("renderpoint" + cases[1])
    +    DeleteActivePlots()
    +
    +#
    +# Test that all plots that support sphere point texturing can do it.
    +#
    +def test2():
    +    TestSection("Check points drawn as spheres")
    +
    +    # Test Mesh
    +    atts = MeshAttributes()
    +    atts.meshColor = (100,150,255)
    +    atts.meshColorSource = atts.MeshCustom
    +    TestPlot2("Mesh", "StarMesh", atts, ("_2_00", "_2_01"))
    +
    +    # Test Pseudocolor
    +    TestPlot2("Pseudocolor", "Matnos", None, ("_2_02", "_2_03"))
    +
    +    # Test Scatter
    +    atts = ScatterAttributes()
    +    atts.var2 = "vy"
    +    atts.var3 = "vz"
    +    atts.var3Role = atts.Coordinate2
    +    atts.var4 = "Matnos"
    +    atts.var4Role = atts.Color
    +    TestPlot2("Scatter", "vx", atts, ("_2_04", "_2_05"))
    +
    +    # Test FilledBoundary
    +    TestPlot2("FilledBoundary", "stars", None, ("_2_06", "_2_07"))
    +
    +    # Test Subset
    +    TestPlot2("Subset", "domains", None, ("_2_08", "_2_09"))
    +
    +def TestPlot3(plotName, plotVar, atts, cases):
    +    AddPlot(plotName, plotVar)
    +    if atts == None:
    +        atts = eval(plotName + "Attributes()")
    +    atts.pointType = atts.Axis
    +    SetPlotOptions(atts)
    +    DrawPlots()
    +
    +    Test("renderpoint" + cases[0])
    +
    +    atts.pointType = atts.Icosahedron
    +    atts.pointSize = 0.1
    +    SetPlotOptions(atts)
    +    Test("renderpoint" + cases[1])
    +
    +    atts.pointType = atts.Octahedron
    +    SetPlotOptions(atts)
    +    Test("renderpoint" + cases[2])
    +
    +    atts.pointSize = 0.05
    +    atts.pointType = atts.Tetrahedron
    +    SetPlotOptions(atts)
    +    Test("renderpoint" + cases[3])
    +
    +    atts.pointType = atts.SphereGeometry
    +    SetPlotOptions(atts)
    +    Test("renderpoint" + cases[4])
    +
    +    DeleteActivePlots()
    +
    +#
    +# Test that all plots that support sphere point texturing can do it.
    +#
    +def test3():
    +    TestSection("Check glyph types for Mesh plot")
    +    atts = MeshAttributes()
    +    atts.meshColor = (152,203,0)
    +    atts.meshColorSource = atts.MeshCustom
    +    TestPlot3("Mesh", "StarMesh", atts, ("_3_00", "_3_01", "_3_02", "_3_03", "_3_04"))
    +
    +    TestSection("Check glyph types for Pseudocolor plot")
    +    # Test Pseudocolor
    +    TestPlot3("Pseudocolor", "Matnos", None, ("_3_05", "_3_06", "_3_07", "_3_08", "_3_09"))
    +
    +    TestSection("Check glyph types for Scatter plot")
    +    # Test Scatter
    +    atts = ScatterAttributes()
    +    atts.var2 = "vy"
    +    atts.var3 = "vz"
    +    atts.var3Role = atts.Coordinate2
    +    atts.var4 = "Matnos"
    +    atts.var4Role = atts.Color
    +    TestPlot3("Scatter", "vx", atts, ("_3_10", "_3_11", "_3_12", "_3_13", "_3_14"))
    +
    +    TestSection("Check glyph types for FilledBoundary plot")
    +    # Test FilledBoundary
    +    TestPlot3("FilledBoundary", "stars", None, ("_3_15", "_3_16", "_3_17", "_3_18", "_3_19"))
    +
    +    # Test Subset
    +    TestSection("Check all glyph types for Subset plot")
    +    TestPlot3("Subset", "domains", None, ("_3_20", "_3_21", "_3_22", "_3_23", "_3_24"))
    +
    +def TestPlot4(plotName, plotVar, atts, case):
    +    AddPlot(plotName, plotVar)
    +    if atts == None:
    +        atts = eval(plotName + "Attributes()")
    +    atts.pointType = atts.SphereGeometry
    +    atts.pointSize = 0.007
    +    atts.pointSizeVarEnabled = 1
    +    atts.pointSizeVar = "Matnos"
    +    SetPlotOptions(atts)
    +    DrawPlots()
    +
    +    Test("renderpoint" + case)
    +
    +    DeleteActivePlots()
    +
    +#
    +# Test that all plots that support scaling glyphs by a variable can do it.
    +#
    +def test4():
    +    TestSection("Check scaling glyphs by a variable")
    +    atts = MeshAttributes()
    +    atts.meshColor = (152,203,0)
    +    atts.meshColorSource = atts.MeshCustom
    +    TestPlot4("Mesh", "StarMesh", atts, "_4_00")
    +
    +    # Test Pseudocolor
    +    TestPlot4("Pseudocolor", "Matnos", None, "_4_01")
    +
    +    # Test FilledBoundary
    +    TestPlot4("FilledBoundary", "stars", None, "_4_02")
    +
    +    # Test Subset
    +    TestPlot4("Subset", "domains", None, "_4_03")
    +
    +#
    +# Test that glyphed plots can be restored from session files
    +#
    +def test5():
    +    TestSection("Check glyphed plots restored from session files")
    +    DeleteAllPlots()
    +    RestoreSessionWithDifferentSources(tests_path("rendering", "filledBoundaryStars.session"), 0, silo_data_path("galaxy0000.silo"))
    +    Test("renderpoint_5_00")
    +
    +    DeleteAllPlots()
    +    RestoreSessionWithDifferentSources(tests_path("rendering", "meshNoisePoint.session"), 0, silo_data_path("noise.silo"))
    +    Test("renderpoint_5_01")
    +
    +    DeleteAllPlots()
    +    RestoreSessionWithDifferentSources(tests_path("rendering", "pcNoisePoint.session"), 0, silo_data_path("noise.silo"))
    +    Test("renderpoint_5_02")
    +
    +    DeleteAllPlots()
    +    RestoreSessionWithDifferentSources(tests_path("rendering", "scatterNoiseHG.session"), 0, silo_data_path("noise.silo"))
    +    Test("renderpoint_5_03")
    +
    +    DeleteAllPlots()
    +    RestoreSessionWithDifferentSources(tests_path("rendering", "subsetNoisePoint.session"), 0, silo_data_path("noise.silo"))
    +    Test("renderpoint_5_04")
    +
    +
    +def main():
    +    # Turn off all annotation
    +    TurnOffAllAnnotations()
    +
    +    OpenDatabase(silo_data_path("galaxy0000.silo"))
    +
    +    test0()
    +    test1()
    +    test2()
    +    test3()
    +    test4()
    +
    +    CloseDatabase(silo_data_path("galaxy0000.silo"))
    +
    +    test5()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_saveformats.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_saveformats.html new file mode 100644 index 000000000..fa395753e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_saveformats.html @@ -0,0 +1,120 @@ + +Results for rendering/saveformats.py + +

    Results of VisIt Regression Test - rendering/saveformats

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Curve Formats
    saveformat_curve0 modifications totalling 0 lines
    saveformat_ps0 modifications totalling 0 lines
    saveformat_ultra0 modifications totalling 0 lines
    Image Formats via Screen Capture
    saveformat_bmp0 modifications totalling 0 lines
    saveformat_jpeg0 modifications totalling 0 lines
    saveformat_png0 modifications totalling 0 lines
    saveformat_ppm0 modifications totalling 0 lines
    saveformat_rgb0 modifications totalling 0 lines
    saveformat_tif0 modifications totalling 0 lines
    Image Formats via Off Screen
    saveformat_offscreen_bmp0 modifications totalling 0 lines
    saveformat_offscreen_jpeg0 modifications totalling 0 lines
    saveformat_offscreen_png0 modifications totalling 0 lines
    saveformat_offscreen_ppm0 modifications totalling 0 lines
    saveformat_offscreen_rgb0 modifications totalling 0 lines
    saveformat_offscreen_tif0 modifications totalling 0 lines
    Geometry Formats
    saveformat_stl0 modifications totalling 0 lines
    saveformat_obj0 modifications totalling 0 lines
    saveformat_vtk0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_saveformats_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_saveformats_py.html new file mode 100644 index 000000000..bc0c18ec5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_saveformats_py.html @@ -0,0 +1,272 @@ +rendering/saveformats.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  saveformats.py
    +#
    +#  Tests:      save window formats 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       September 20, 2005 
    +#
    +#  Modifications:
    +#    Jeremy Meredith, Mon Apr 23 14:07:35 EDT 2007
    +#    Don't create a mesh plot when we're saving geometry formats, since
    +#    the new behavior is to separate plots into different files (as they
    +#    typically have different variables and geometry types).
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Tue Feb  2 10:55:43 PST 2010
    +#    Fixed problem w/ setting active window that allowed errors to propagate
    +#    between test cases.
    +#
    +#    Mark C. Miller, Wed Apr  7 19:02:29 PDT 2010
    +#    Be smarter about testing curve formats while in scalable mode.
    +# ----------------------------------------------------------------------------
    +
    +# ----------------------------------------------------------------------------
    +# Function: FileExists 
    +#
    +# Purpose:
    +#   Tests if a file exists and, if the file is being written, waits
    +#   until the file size does not change for growthInterval seconds. If the
    +#   file exists but is of zero size, that is the same as it NOT existing
    +#
    +# waitToAppear: number of seconds to wait for the file to first appear
    +# growhtInterval: number of seconds between successive stats on the file 
    +#
    +# Programmer: Mark C. Miller
    +#             September 20, 2005
    +#
    +# ----------------------------------------------------------------------------
    +
    +from PIL import Image
    +
    +def FileExists(name, waitToAppear, growthInterval):
    +    if os.path.isfile(name) == 0:
    +        time.sleep(waitToAppear)
    +    if os.path.isfile(name) == 0:
    +        return 0
    +    curSize = os.stat(name)[ST_SIZE]
    +    if growthInterval == 0:
    +        if curSize == 0:
    +            return 0
    +    else:
    +            return 1
    +    while 1:
    +        time.sleep(growthInterval)
    +        size = os.stat(name)[ST_SIZE]
    +        if size == curSize:
    +            if curSize == 0:
    +                return 0
    +            else:
    +                return 1
    +            curSize = size
    +
    +# ----------------------------------------------------------------------------
    +# Function: SaveFileInfo
    +#
    +# Purpose:
    +#   Return a string representing the appropriate extension for the
    +#   given file format and return bools indicating if the format supports
    +#   curves, images and/or geometry.
    +#
    +# Programmer: Mark C. Miller
    +#             September 20, 2005
    +#
    +# ----------------------------------------------------------------------------
    +def SaveFileInfo(fmt):
    +    swa = SaveWindowAttributes()
    +    if (fmt == swa.POSTSCRIPT):
    +        return ("ps", 1, 0, 0)
    +    elif (fmt == swa.CURVE):
    +        return ("curve", 1, 0, 0)
    +    elif (fmt == swa.ULTRA):
    +        return ("ultra", 1, 0, 0)
    +    elif (fmt == swa.BMP):
    +        return ("bmp", 0, 1, 0)
    +    elif (fmt == swa.JPEG):
    +        return ("jpeg", 0, 1, 0)
    +    elif (fmt == swa.PNG):
    +        return ("png", 0, 1, 0)
    +    elif (fmt == swa.PPM):
    +        return ("ppm", 0, 1, 0)
    +    elif (fmt == swa.RGB):
    +        return ("rgb", 0, 1, 0)
    +    elif (fmt == swa.TIFF):
    +        return ("tif", 0, 1, 0)
    +    elif (fmt == swa.STL):
    +        return ("stl", 0, 0, 1)
    +    elif (fmt == swa.OBJ):
    +        return ("obj", 0, 0, 1)
    +    elif (fmt == swa.VTK):
    +        return ("vtk", 0, 0, 1)
    +    else:
    +        return ("unknown", 0, 0, 0)
    +
    +
    +swa=SaveWindowAttributes()
    +swa.family = 0
    +
    +AddWindow()
    +SetActiveWindow(1)
    +
    +# I=Image, G=Geometry, C=Curve formats
    +CFormats=[swa.CURVE, swa.POSTSCRIPT, swa.ULTRA]
    +IFormats=[swa.BMP, swa.JPEG, swa.PNG, swa.PPM, swa.RGB, swa.TIFF]
    +GFormats=[swa.STL, swa.OBJ, swa.VTK]
    +
    +a = AnnotationAttributes()
    +a.userInfoFlag = 0
    +a.databaseInfoFlag = 0
    +a.legendInfoFlag = 0
    +SetAnnotationAttributes(a)
    +
    +# ----------------------------------------------------------------------------
    +# Function: TestSaveFormat
    +#
    +# Modifications:
    +#   Kathleen Biagas, Thu Feb 11 2021
    +#   For Image formats, only convert RGB to TIFF, as all other formats tested
    +#   here should be readable and plottable by VisIt. Use PIL::Image for
    +#   conversion instead of 'convert'.
    +# ----------------------------------------------------------------------------
    +
    +def TestSaveFormat(fmt):
    +    SetActiveWindow(1)
    +    mode = ""
    +    result = "Failed\n"
    +    (ext, isC, isI, isG) = SaveFileInfo(fmt)
    +    swatmp = swa
    +    swatmp.format = fmt
    +    swatmp.outputToCurrentDirectory = 1
    +    if isI:
    +        swatmp.fileName = "saveformat_tmp.%s"%ext
    +    else:
    +        swatmp.fileName = "saveformat_tmp"
    +    SetSaveWindowAttributes(swatmp)
    +    try:
    +        SaveWindow()
    +    except:
    +        if TestEnv.params["scalable"]:
    +            if GetLastError() == "You cannot save non-image formats (e.g. ultra, curve, stl, etc.)" \
    +                                 " from a window that is currently in scalable rendering mode. You" \
    +                                 " may force scalable rendering to Never but if the resulting data" \
    +                                 " is too big for the viewer to handle, it will likely crash" \
    +                                 " VisIt. For 3D formats, try an export database operation instead." :
    +                TestText("saveformat_%s%s"%(mode,ext), "Passed\n")
    +                return
    +        TestText("saveformat_%s%s"%(mode,ext), result)
    +        return
    +
    +    # depending on the type of format this is, try to
    +    # read the file we just created back into VisIt and
    +    # put up a plot in window 2. If that succeeds, we'll
    +    # say this format's save actually worked
    +    if isC:
    +        if FileExists(swatmp.fileName+"."+ext, 1, 0):
    +            if ext == "ps":
    +                result = "Passed\n" # can only test existence for ps
    +            else:
    +                SetActiveWindow(2)
    +                if OpenDatabase(swatmp.fileName+"."+ext):
    +                    AddPlot("Curve","going_down")
    +                    if DrawPlots():
    +                        result = "Passed\n"
    +                    DeleteAllPlots()
    +                    CloseDatabase(swatmp.fileName+"."+ext)
    +    elif isI:
    +        if swatmp.screenCapture == 0:
    +            mode = "offscreen_"
    +        imageFileExists = FileExists(swatmp.fileName, 1, 0)
    +        if imageFileExists:
    +            # visit should be able to read all but the RGB format, so only convert RGB to TIFF
    +            if fmt != swa.RGB:
    +                SetActiveWindow(2)
    +                if OpenDatabase(swatmp.fileName):
    +                    AddPlot("Pseudocolor","red")
    +                    if DrawPlots():
    +                        result = "Passed\n"
    +                    DeleteAllPlots()
    +                    CloseDatabase(swatmp.fileName)
    +            else:
    +                tiffFileName = "%s/saveformat_tmp.tif"%TestEnv.params["run_dir"]
    +                tiffFileExists = 0
    +                try:
    +                    im1=Image.open(swatmp.fileName)
    +                    im1.save(tiffFileName, 'tiff')
    +                    tiffFileExists = FileExists(tiffFileName, 1, 0)
    +                except ValueError:
    +                    result="Format type could not be determined"
    +                except OSError:
    +                    result="Could not convert"
    +                if tiffFileExists:
    +                    SetActiveWindow(2)
    +                    if OpenDatabase(tiffFileName):
    +                        AddPlot("Pseudocolor","red")
    +                        if DrawPlots():
    +                            result = "Passed\n"
    +                        DeleteAllPlots()
    +                        CloseDatabase(tiffFileName)
    +    elif isG:
    +        if FileExists(swatmp.fileName+"."+ext, 1, 0):
    +            if ext == "stl":
    +                meshName = "STL_mesh"
    +            elif ext == "obj":
    +                meshName = "OBJMesh"
    +            elif ext == "vtk":
    +                meshName = "mesh"
    +            SetActiveWindow(2)
    +            if OpenDatabase(swatmp.fileName+"."+ext):
    +                AddPlot("Mesh",meshName)
    +                if DrawPlots():
    +                    result = "Passed\n"
    +                DeleteAllPlots()
    +                CloseDatabase(swatmp.fileName+"."+ext)
    +    TestText("saveformat_%s%s"%(mode,ext), result)
    +    SetActiveWindow(1)
    +
    +
    +TestSection("Curve Formats")
    +OpenDatabase(data_path("curve_test_data","c062.curve"))
    +
    +AddPlot("Curve", "going_down")
    +DrawPlots()
    +for f in CFormats:
    +    TestSaveFormat(f)
    +
    +DeleteAllPlots()
    +CloseDatabase(data_path("curve_test_data","c062.curve"))
    +
    +TestSection("Image Formats via Screen Capture")
    +OpenDatabase(silo_data_path("multi_rect2d.silo"))
    +
    +AddPlot("Mesh", "mesh1")
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +slider = CreateAnnotationObject("TimeSlider")
    +# make sure screenCapture is on
    +swa.screenCapture = 1
    +for f in IFormats:
    +    TestSaveFormat(f)
    +
    +TestSection("Image Formats via Off Screen")
    +swa.screenCapture = 0
    +for f in IFormats:
    +    TestSaveFormat(f)
    +swa.screenCapture = 1
    +
    +DeleteAllPlots()
    +CloseDatabase(silo_data_path("multi_rect2d.silo"))
    +
    +TestSection("Geometry Formats")
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "dx")
    +DrawPlots()
    +for f in GFormats:
    +    TestSaveFormat(f)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_scalable.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_scalable.html new file mode 100644 index 000000000..0b08c8578 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_scalable.html @@ -0,0 +1,117 @@ + +Results for rendering/scalable.py + +

    Results of VisIt Regression Test - rendering/scalable

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    scalable_010.000.00
    scalable_020.000.00
    scalable_030.000.00
    scalable_040.000.00
    scalable_050.000.00
    scalable_060.000.00
    SRModeHistory0 modifications totalling 0 lines
    Multiple Windows
    multiWindow_SRModeHistory0 modifications totalling 0 lines
    scalable_070.000.00
    Testing Mesh plot's opaque flag in SR mode
    scalable_080.000.00
    scalable_090.000.00
    scalable_100.000.00
    Glyphed Plot Causing SR Transitions
    glyphedPlot_SRModeHistory0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_scalable2.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_scalable2.html new file mode 100644 index 000000000..1bf7c184f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_scalable2.html @@ -0,0 +1,53 @@ + +Results for rendering/scalable2.py + +

    Results of VisIt Regression Test - rendering/scalable2

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Testing that plots of single-timestep are requested in SR after engine loss
    scalable2_0_000.000.00
    scalable2_0_010 modifications totalling 0 lines
    scalable2_0_020 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_scalable2_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_scalable2_py.html new file mode 100644 index 000000000..d76f041f4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_scalable2_py.html @@ -0,0 +1,113 @@ +rendering/scalable2.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  scalable2.py
    +#
    +#  Tests:      mesh      - 2D curvilinear
    +#              plots     - Pseudocolor, Contour
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri May 12 15:55:22 PST 2006
    +#
    +#  Modifications:
    +#    Mark C. Miller, Wed Jan 21 10:00:10 PST 2009
    +#    Removed silly comment regarding global annotation object 'a'
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +import os, sys
    +
    +#
    +# Test that single-timestep plots have their networks reset in the
    +# viewer when we lose the compute engine.
    +#
    +def TestNetworkReset():
    +    TestSection("Testing that plots of single-timestep are "\
    +                "requested in SR after engine loss")
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Mesh", "curvmesh2d")
    +
    +    OpenDatabase(data_path("pdb_test_data/dbA00.pdb"))
    +
    +    AddPlot("Contour", "mesh/nummm")
    +    DrawPlots()
    +
    +    # Use scalable rendering always
    +    r = GetRenderingAttributes()
    +    r.scalableActivationMode = r.Always
    +    SetRenderingAttributes(r)
    +
    +    Test("scalable2_0_00")
    +
    +    # Turn off screen capture
    +    base = "TestNetworkReset"
    +    s = GetSaveWindowAttributes()
    +    s.screenCapture = 0
    +    s.width = 400
    +    s.height = 400
    +    s.format = s.PNG
    +    s.fileName = base
    +    s.outputToCurrentDirectory = 1
    +    s.family = 1
    +    SetSaveWindowAttributes(s)
    +
    +    # Save out images, killing the compute engine halfway through
    +    usingSR = ""
    +    for i in range(TimeSliderGetNStates()):
    +        SetTimeSliderState(i)
    +        # TODO_WINDOWS THIS WONT WORK ON WINDOWS
    +        # Kill the compute engine partway through to simulate it getting
    +        # booted out of the batch queue.
    +        if(i == 5):
    +            pinfo = GetProcessAttributes("engine")
    +            for pid in pinfo.pids:
    +                os.system("kill -9 %d" % pid)
    +
    +        DrawPlots()
    +        SaveWindow()
    +        if(GetWindowInformation().usingScalableRendering == 1):
    +            usingSR = usingSR + "Using scalable rendering on frame %d: true\n" % i
    +        else:
    +            usingSR = usingSR + "Using scalable rendering on frame %d: false\n" % i
    +
    +    # Look at the file sizes to make sure that all are non-zero
    +    files = os.listdir(".")
    +    pngs = []
    +    for f in files:
    +        if(len(f) > len(base) and f[:len(base)] == base):
    +            pngs = pngs + [f]
    +    pngs.sort()
    +
    +    # Iterate through the png files and look at their sizes. Remove them too.
    +    pngSize = ""
    +    for png in pngs:
    +        filesize = os.stat(png)[6]
    +        if filesize > 0:
    +            pngSize = pngSize + "File size for %s greater than zero.\n" % png
    +        else:
    +            pngSize = pngSize + "File size for %s is zero.\n" % png
    +        # remove the png file.
    +        os.unlink(png)
    +
    +    TestText("scalable2_0_01", usingSR)
    +    TestText("scalable2_0_02", pngSize)
    +
    +    DeleteAllPlots()
    +
    +#
    +# Call all of the subtests.
    +#
    +def main():
    +    # Turn off all annotation
    +    TurnOffAllAnnotations()
    +
    +    TestNetworkReset()
    +
    +#
    +# Call main
    +#
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_scalable_c.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_scalable_c.html new file mode 100644 index 000000000..da80c7813 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_scalable_c.html @@ -0,0 +1,117 @@ + +Results for rendering/scalable_c.py + +

    Results of VisIt Regression Test - rendering/scalable_c

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    scalable_010.000.00
    scalable_020.000.00
    scalable_030.000.00
    scalable_040.000.00
    scalable_050.000.00
    scalable_060.000.00
    SRModeHistory0 modifications totalling 0 lines
    Multiple Windows
    multiWindow_SRModeHistory0 modifications totalling 0 lines
    scalable_070.000.00
    Testing Mesh plot's opaque flag in SR mode
    scalable_080.000.00
    scalable_090.000.00
    scalable_100.000.00
    Glyphed Plot Causing SR Transitions
    glyphedPlot_SRModeHistory0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_scalable_c_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_scalable_c_py.html new file mode 100644 index 000000000..6c0ec0e60 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_scalable_c_py.html @@ -0,0 +1,21 @@ +rendering/scalable_c.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  scalable_c.py
    +#
    +#  Tests:      Runs the scalable.py test but with compression turned on 
    +#              scalable.py tests for existence of 'useCompression' variable
    +#              and turns on compression if it exists. We expect identical
    +#              output from the tests but because this py file has a different
    +#              name, it will generate them a subdir by the name 'scalable_c'
    +#              and look for baselines likewise. So, in baseline dir,
    +#              the scalable_c dir is a symlink to scalable.
    +#
    +#  Programmer: Mark C. Miller
    +#  Date:       19Aug08 
    +#
    +# ----------------------------------------------------------------------------
    +
    +useCompression = 1
    +Source(tests_path("rendering","scalable.py"))
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_scalable_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_scalable_py.html new file mode 100644 index 000000000..c9a9e42b8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_scalable_py.html @@ -0,0 +1,392 @@ +rendering/scalable.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  scalable.py
    +#
    +#  Tests:      mesh      - 3D unstructured, multiple domains
    +#              plots     - pc, mesh 
    +#              operators - slice 
    +#              selection - some of the domains 
    +#
    +#  Defect ID:  '3359
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       01Jul03
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Tue May 11 20:21:24 PDT 2004
    +#    Changed scalable rendering controls to use activation mode
    +#
    +#    Mark C. Miller, Tue May 25 14:29:40 PDT 2004
    +#    Added code to test automatic tranitions into and out of SR mode
    +#
    +#    Mark C. Miller, Thu Jan  6 14:23:01 PST 2005
    +#    Added code to test multiple windows and auto SR transitions
    +#
    +#    Kathleen Bonnell, Mon Jan 23 21:02:56 PST 2006 
    +#    Added tests '08-10, testing auto-opaque mesh and sr mode.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to switch between Silo's HDF5 and PDB data.
    +#
    +#    Eric Brugger, Fri Aug 15 10:19:33 PDT 2014
    +#    Modified the script to use srun to launch the parallel engine on edge.
    +#
    +#    Eric Brugger, Wed Oct 29 12:08:54 PDT 2014
    +#    Changed the parallel job launching logic to use srun on surface instead
    +#    of edge.
    +#
    +#    Brad Whitlock, Mon Dec 15 17:22:38 PST 2014
    +#    Only close the compute engine if it is not parallel.
    +#
    +#    Kathleen Biagas, Fri Jul  7 13:41:36 PDT 2017
    +#    Don't run this test if the parallel engine doesn't exist.
    +#
    +#    Kathleen Biagas, Tue Feb 8 2022
    +#    Use run_dir for location of saving windows, it is cleaned up on exit.
    +#
    +#    Eric Brugger, Wed Nov  1 13:46:08 PDT 2023
    +#    Updated the list of hosts where srun was used to launch a parallel
    +#    compute engine.
    +#
    +# ----------------------------------------------------------------------------
    +
    +if not sys.platform.startswith("win"):
    +    if not os.path.exists(visit_bin_path("..", "exe", "engine_par")):
    +        Exit(121)
    +else:
    +    if not os.path.exists(visit_bin_path("engine_par.exe")):
    +        Exit(121)
    +
    +# sleep is needed to allow viewer to complete update of window information
    +# before it is queried here
    +import time
    +sleepTime=1
    +
    +# Turn on scalable rendering
    +ra = GetRenderingAttributes()
    +ra.scalableActivationMode = ra.Always
    +if "useCompression" in dir():
    +    ra.compressionActivationMode = ra.Always
    +SetRenderingAttributes(ra)
    +
    +# Close the compute engine, if it is not already parallel.
    +engines = GetEngineList()
    +if len(engines) > 0:
    +    props = GetEngineProperties(engines[0])
    +    if props.numProcessors < 2:
    +        CloseComputeEngine()
    +        # explicitly open a parallel engine, if possible
    +        # if it fails, the OpenDatabase will start a serial engine
    +        import socket
    +        if "quartz" in socket.gethostname() or \
    +           "pascal"  in socket.gethostname() or \
    +           "poodle"  in socket.gethostname() or \
    +           "syrah"   in socket.gethostname():
    +            haveParallelEngine = OpenComputeEngine("localhost", ("-l", "srun", "-np", "2"))
    +        else:
    +            haveParallelEngine = OpenComputeEngine("localhost", ("-np", "2"))
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Mesh", "mesh1")
    +silr=SILRestriction()
    +silr.TurnOffAll()
    +silr.TurnOnSet(1)
    +silr.TurnOnSet(3)
    +silr.TurnOnSet(5)
    +silr.TurnOnSet(10)
    +SetPlotSILRestriction(silr)
    +AddPlot("Pseudocolor", "d")
    +SetPlotSILRestriction(silr)
    +
    +DrawPlots()
    +
    +view=GetView3D()
    +view.viewNormal=(0,1,0)
    +view.viewUp=(0,0,-1)
    +SetView3D(view)
    +
    +Test("scalable_01")
    +
    +# rotate and draw them again
    +view.viewNormal=(0,1,0)
    +view.viewUp=(1,0,0)
    +SetView3D(view)
    +
    +# Make sure mesh plot doesn't dissappear after a rotate
    +# ('3359)
    +Test("scalable_02")
    +
    +# Pan and zoom
    +view.imageZoom = 0.75
    +view.imagePan = (0.25, 0.25)
    +SetView3D(view)
    +Test("scalable_03")
    +
    +# Make sure hide behavior still works
    +SetActivePlots(1)
    +HideActivePlots()
    +Test("scalable_04")
    +
    +HideActivePlots()
    +SetActivePlots(0)
    +DeleteActivePlots()
    +Test("scalable_05")
    +
    +# reset the SIL restriction for the succeeding SR auto mode tests
    +# tests to make sure the ERI actor doesn't leave stale image data around
    +ResetView()
    +silr.TurnOnAll()
    +SetPlotSILRestriction(silr)
    +DeleteAllPlots()
    +Test("scalable_06")
    +
    +# accumulate results of SR mode changes here
    +srModeHistory=""
    +
    +# function to save temporary windows used to force renders
    +def MySaveWindow():
    +    swa = GetSaveWindowAttributes()
    +    swa.fileName = pjoin(TestEnv.params["run_dir"], "scalable_tmp.png")
    +    swa.format = swa.PNG
    +    swa.family = 0
    +    SetSaveWindowAttributes(swa)
    +    SaveWindow() # required to force render
    +
    +# function to examine current SR mode of window
    +def CheckSRMode(winID):
    +   global srModeHistory
    +   DrawPlots()
    +   MySaveWindow() # required to force render
    +   time.sleep(sleepTime)
    +   wi=GetWindowInformation()
    +   if wi.usingScalableRendering == 1:
    +       srModeHistory+="window %d:SR is ON\n"%winID
    +   else:
    +       srModeHistory+="window %d:SR is off\n"%winID
    +
    +# function to force window into specified SR mode and confirm it 
    +def ForceSRMode(mode):
    +   global srModeHistory
    +   if mode:
    +       ra.scalableActivationMode = ra.Always
    +   else:
    +       ra.scalableActivationMode = ra.Never
    +   SetRenderingAttributes(ra)
    +   DrawPlots()
    +   time.sleep(sleepTime)
    +   wi=GetWindowInformation()
    +   srModeHistory+="force SR mode %d\n"%wi.usingScalableRendering
    +
    +ForceSRMode(0)
    +
    +# test an individual plot taking poly count above threshold
    +# with proc 0's data alone
    +ra.scalableActivationMode = ra.Auto
    +ra.scalableAutoThreshold = 2000
    +SetRenderingAttributes(ra)
    +DrawPlots()
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +time.sleep(sleepTime)
    +wi=GetWindowInformation()
    +srModeHistory+="single plot, proc 0 >threshold %d\n"%wi.usingScalableRendering
    +DeleteAllPlots()
    +
    +ForceSRMode(0)
    +
    +# test an individual plot taking poly count above threshold with
    +# data from proc 2 (or above)
    +ra.scalableActivationMode = ra.Auto
    +ra.scalableAutoThreshold = 5000
    +SetRenderingAttributes(ra)
    +DrawPlots()
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +time.sleep(sleepTime)
    +wi=GetWindowInformation()
    +srModeHistory+="single plot, proc >0 >threshold %d\n"%wi.usingScalableRendering
    +DeleteAllPlots()
    +
    +ForceSRMode(0)
    +
    +# test a addition and deletion causing to go above threshold and then
    +# back below
    +ra.scalableActivationMode = ra.Auto
    +ra.scalableAutoThreshold = 15000
    +SetRenderingAttributes(ra)
    +DrawPlots()
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +time.sleep(sleepTime)
    +wi=GetWindowInformation()
    +srModeHistory+="two plots, first <threshold %d\n"%wi.usingScalableRendering
    +AddPlot("Mesh", "mesh1")
    +DrawPlots()
    +time.sleep(sleepTime)
    +wi=GetWindowInformation()
    +srModeHistory+="two plots, second >threshold %d\n"%wi.usingScalableRendering
    +DeleteActivePlots()
    +DrawPlots()
    +MySaveWindow() # force engine to render
    +time.sleep(sleepTime)
    +wi=GetWindowInformation()
    +srModeHistory+="delete 2nd, <threshold %d\n"%wi.usingScalableRendering
    +
    +ForceSRMode(0)
    +
    +# test setting auto threshold below current count
    +ra.scalableActivationMode = ra.Auto
    +ra.scalableAutoThreshold = 3000
    +SetRenderingAttributes(ra)
    +DrawPlots()
    +time.sleep(sleepTime)
    +wi=GetWindowInformation()
    +srModeHistory+="auto threshold set < plot %d\n"%wi.usingScalableRendering
    +
    +ForceSRMode(1)
    +
    +# test setting auto threshold above current count
    +ra.scalableActivationMode = ra.Auto
    +ra.scalableAutoThreshold = 30000
    +SetRenderingAttributes(ra)
    +DrawPlots()
    +# save window is required to force the re-draw that causes engine to
    +# decide SR mode is no longer necessary
    +MySaveWindow()
    +time.sleep(sleepTime)
    +wi=GetWindowInformation()
    +srModeHistory+="auto threshold set > plot %d\n"%wi.usingScalableRendering
    +
    +TestText("SRModeHistory",srModeHistory)
    +
    +DeleteAllPlots()
    +srModeHistory=""
    +
    +#
    +# Do some testing with multiple windows
    +#
    +TestSection("Multiple Windows")
    +
    +ra.scalableActivationMode = ra.Auto
    +ra.scalableAutoThreshold = 14000
    +SetRenderingAttributes(ra)
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +CheckSRMode(1)
    +
    +CloneWindow()
    +SetActiveWindow(2)
    +DrawPlots()
    +CheckSRMode(2)
    +
    +SetActiveWindow(1)
    +AddPlot("Pseudocolor", "p")
    +AddPlot("Pseudocolor", "u")
    +AddPlot("Pseudocolor", "w")
    +DrawPlots()
    +CheckSRMode(1)
    +SetActiveWindow(2)
    +AddPlot("Pseudocolor", "p")
    +DrawPlots()
    +CheckSRMode(2)
    +
    +SetActiveWindow(1)
    +SetActivePlots((1,2,3))
    +DeleteActivePlots()
    +DrawPlots()
    +CheckSRMode(1)
    +SetActiveWindow(2)
    +CheckSRMode(2)
    +
    +TestText("multiWindow_SRModeHistory",srModeHistory)
    +
    +#
    +# test unhiding mesh to make sure it doesn't go opaque ('5947)
    +#
    +DeleteWindow()
    +SetActiveWindow(1)
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +ra.scalableActivationMode = ra.Always
    +SetRenderingAttributes(ra)
    +AddPlot("Mesh","mesh1")
    +AddPlot("Pseudocolor","dx")
    +DrawPlots()
    +MySaveWindow() # force a render
    +SetActivePlots((0))
    +HideActivePlots()
    +DrawPlots()
    +MySaveWindow() # force a render
    +HideActivePlots()
    +DrawPlots()
    +Test("scalable_07")
    +
    +DeleteAllPlots()
    +
    +TestSection("Testing Mesh plot's opaque flag in SR mode")
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("FilledBoundary", "mat1")
    +AddPlot("Mesh", "curvmesh2d")
    +m = MeshAttributes()
    +m.opaqueMode = m.Auto
    +SetPlotOptions(m)
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +Test("scalable_08")
    +SetActivePlots(1)
    +Test("scalable_09")
    +Pick(164, 136)
    +Test("scalable_10")
    +DeleteAllPlots()
    +
    +
    +TestSection("Glyphed Plot Causing SR Transitions")
    +
    +srModeHistory=""
    +ForceSRMode(0)
    +ra.scalableActivationMode = ra.Auto
    +ra.scalableAutoThreshold = 30000
    +SetRenderingAttributes(ra)
    +
    +OpenDatabase(silo_data_path("galaxy0000.silo"))
    +
    +AddPlot("Pseudocolor", "vx")
    +DrawPlots()
    +CheckSRMode(1)
    +TestText("glyphedPlot_SRModeHistory",srModeHistory)
    +
    +DeleteAllPlots()
    +
    +# this section causes a crash, comment out until fixed.
    +#TestSection("Stereo Modes")
    +
    +#ra.scalableActivationMode = ra.Always
    +#ra.stereoRendering = 1
    +#ra.stereoType = ra.RedBlue
    +#SetRenderingAttributes(ra)
    +
    +#OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +#AddPlot("Mesh","mesh1")
    +
    +# make the eye separation as noticable as possible
    +#ResetView()
    +#v = GetView3D()
    +#v.eyeAngle = 5
    +#v.viewNormal=(0.707, 0, 0.707)
    +#SetView3D(v)
    +#DrawPlots()
    +
    +#Test("scalable_11")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_shadows.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_shadows.html new file mode 100644 index 000000000..8d96d1143 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_shadows.html @@ -0,0 +1,54 @@ + +Results for rendering/shadows.py + +

    Results of VisIt Regression Test - rendering/shadows

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    shadows_010.000.00
    shadows_020.000.00
    shadows_030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_shadows_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_shadows_py.html new file mode 100644 index 000000000..0713d3aa5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_shadows_py.html @@ -0,0 +1,55 @@ +rendering/shadows.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  shadows.py
    +#
    +#  Tests:      mesh      - 2D/3D rectilinear, one domain
    +#              plots     - pseudocolor, surface
    +#              operators - isosurface
    +#              selection - no
    +#
    +#  Defect ID:  5539, 7068
    +#
    +#  Programmer: Hank Childs
    +#  Date:       March 3, 2006
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "hardyglobal")
    +
    +AddOperator("Isosurface")
    +i = IsosurfaceAttributes()
    +i.contourNLevels = 1
    +SetOperatorOptions(i)
    +
    +r = RenderingAttributes()
    +r.scalableActivationMode = r.Always
    +r.doShadowing = 1
    +SetRenderingAttributes(r)
    +l = GetLight(0)
    +l.direction = (-0.707, 0, -0.707)
    +SetLight(0, l)
    +DrawPlots()
    +Test("shadows_01")
    +
    +r.shadowStrength = 0.9
    +SetRenderingAttributes(r)
    +Test("shadows_02")
    +
    +# Now test that we don't crash with 2D.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +Test("shadows_03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_specular.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_specular.html new file mode 100644 index 000000000..24bb85527 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_specular.html @@ -0,0 +1,102 @@ + +Results for rendering/specular.py + +

    Results of VisIt Regression Test - rendering/specular

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    specular_010.000.00
    specular_020.000.00
    specular_030.000.00
    specular_040.000.00
    specular_050.000.00
    specular_060.000.00
    specular_070.000.00
    specular_080.000.00
    specular_090.000.00
    specular_100.000.00
    specular_110.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_specular_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_specular_py.html new file mode 100644 index 000000000..d7ac01305 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_specular_py.html @@ -0,0 +1,124 @@ +rendering/specular.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  specular.py
    +#
    +#  Tests:      mesh      - 2D/3D rectilinear, one domain
    +#              plots     - pseudocolor
    +#              operators - isosurface
    +#              selection - no
    +#
    +#  Defect ID:  5555, 5580
    +#
    +#  Programmer: Hank Childs
    +#  Date:       November 2, 2004
    +#
    +#  Modifications:
    +#
    +#    Hank Childs, Wed Nov  3 16:41:56 PST 2004
    +#    Commented out specular_11, since it was failing in SR mode.  Submitted
    +#    new ticket, '5580 to address this.
    +#
    +#    Hank Childs, Fri Dec  9 08:01:46 PST 2005
    +#    Uncomment specular_11.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "hardyglobal")
    +
    +AddOperator("Isosurface")
    +i = IsosurfaceAttributes()
    +i.contourNLevels = 1
    +SetOperatorOptions(i)
    +
    +DrawPlots()
    +Test("specular_01")
    +
    +r = GetRenderingAttributes()
    +r.specularFlag = 1
    +SetRenderingAttributes(r)
    +Test("specular_02")
    +
    +# Highly concentrated, low power
    +r.specularCoeff = 0.9
    +r.specularPower = 100
    +SetRenderingAttributes(r)
    +Test("specular_03")
    +
    +# Poorly concentrated, high power
    +r.specularCoeff = 0.1
    +r.specularPower = 1
    +SetRenderingAttributes(r)
    +Test("specular_04")
    +
    +# Test that specular is properly turned off when PC's lighting is turned off.
    +pc_atts = PseudocolorAttributes()
    +pc_atts.lightingFlag = 0
    +SetPlotOptions(pc_atts)
    +Test("specular_05")
    +
    +# Make sure that specular is not affecting 2D plots.
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +Test("specular_06")
    +
    +# Now do the same things over again with Pseudocolor + Elevate
    +
    +DeleteAllPlots()
    +r.specularFlag = 0
    +SetRenderingAttributes(r)
    +OpenDatabase(silo_data_path("noise.silo"))
    +
    +AddPlot("Pseudocolor", "hgslice")
    +AddOperator("Elevate")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.35795, -0.730451, 0.581647)
    +v.focus = (0, 0, 10)
    +v.viewUp = (0.0642975, 0.60216, 0.795782)
    +v.viewAngle = 30
    +v.parallelScale = 17.3205
    +v.nearPlane = -34.641
    +v.farPlane = 34.641
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +SetView3D(v)
    +Test("specular_07")
    +
    +r = GetRenderingAttributes()
    +r.specularCoeff = 0.6
    +r.specularPower = 10
    +r.specularFlag = 1
    +SetRenderingAttributes(r)
    +Test("specular_08")
    +
    +# Highly concentrated, low power
    +r.specularCoeff = 0.9
    +r.specularPower = 100
    +SetRenderingAttributes(r)
    +Test("specular_09")
    +
    +# Poorly concentrated, high power
    +r.specularCoeff = 0.1
    +r.specularPower = 1
    +SetRenderingAttributes(r)
    +Test("specular_10")
    +
    +# Test that specular is properly turned off when PC's lighting is turned off.
    +pc_atts = PseudocolorAttributes()
    +pc_atts.lightingFlag = 0
    +SetPlotOptions(pc_atts)
    +Test("specular_11")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_text2d.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_text2d.html new file mode 100644 index 000000000..ada36fe97 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_text2d.html @@ -0,0 +1,108 @@ + +Results for rendering/text2d.py + +

    Results of VisIt Regression Test - rendering/text2d

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    text2d000.000.00
    text2d010.000.00
    text2d020.000.00
    text2d030.000.00
    text2d040.000.00
    text2d050.000.00
    text2d060.000.00
    text2d070.000.00
    text2d080.000.00
    text2d090.000.00
    text2d100.000.00
    text2d110.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_text2d_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_text2d_py.html new file mode 100644 index 000000000..7d57c4268 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_text2d_py.html @@ -0,0 +1,123 @@ +rendering/text2d.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  text2d.py
    +#
    +#  Tests:      mesh        - 2D curvilinear, single domain
    +#              plots       - Pseudocolor
    +#              annotations - Text2D
    +#
    +#  Defect ID:  None
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Dec 4 14:39:21 PST 2003
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Brad Whitlock, Tue Feb 28 12:00:21 PST 2012
    +#    Add test for words that used to get truncated.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Set up the annotation colors, etc.
    +a = GetAnnotationAttributes()
    +a.backgroundColor = (80, 0, 100, 255)
    +a.foregroundColor = (255, 255, 255, 255)
    +a.backgroundMode = a.Solid
    +SetAnnotationAttributes(a)
    +
    +# Open up the database and do a plot.
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +# Create a Text2D object
    +text = CreateAnnotationObject("Text2D")
    +text.text = "Pseudocolor plot!"
    +text.height = 0.05
    +text.position = (0.25, 0.45)
    +Test("text2d00")
    +
    +# Set the foreground color to see if it changes
    +a.foregroundColor = (255, 255, 0, 255)
    +SetAnnotationAttributes(a)
    +Test("text2d01")
    +
    +# Test solid text color
    +a.foregroundColor = (255, 255, 255, 255)
    +SetAnnotationAttributes(a)
    +text.useForegroundForTextColor = 0
    +text.textColor = (0, 255, 0, 255)
    +Test("text2d02")
    +
    +# Test text opacity
    +text.height = 0.18
    +text.position = (0.25, 0.45)
    +text.textColor = (255,255,255,150)
    +Test("text2d03")
    +
    +# Set the text atts
    +text.textColor = (255,255,255,255)
    +text.useForegroundForTextColor = 1
    +text.height = 0.05
    +
    +# Create more text objects
    +courier = CreateAnnotationObject("Text2D")
    +courier.text = "Courier"
    +courier.fontFamily = courier.Courier
    +courier.position = (0.25, 0.35)
    +courier.height = 0.06
    +times = CreateAnnotationObject("Text2D")
    +times.text = "Times"
    +times.fontFamily = courier.Times
    +times.position = (0.25, 0.25)
    +times.height = 0.07
    +Test("text2d04")
    +
    +# Set the bold flag
    +text.fontBold = 1
    +courier.fontBold = 1
    +times.fontBold = 1
    +Test("text2d05")
    +
    +# Set the italic flag
    +text.fontItalic = 1
    +courier.fontItalic = 1
    +times.fontItalic = 1
    +Test("text2d06")
    +
    +# Set the shadow flag
    +text.fontShadow = 1
    +courier.fontShadow = 1
    +times.fontShadow = 1
    +Test("text2d07")
    +
    +# Start Removing text
    +courier.Delete()
    +Test("text2d08")
    +times.Delete()
    +Test("text2d09")
    +text.Delete()
    +Test("text2d10")
    +
    +# Test for words that used to get truncated
    +erg = CreateAnnotationObject("Text2D")
    +erg.position = (0.5, 0.3)
    +erg.text = "Erg"
    +erg.height = 0.08
    +erg.useForegroundForTextColor = 0
    +erg.textColor = (255, 255, 255, 255)
    +era = CreateAnnotationObject("Text2D")
    +era.position = (0.5, 0.2)
    +era.text = "    Era"
    +era.height = 0.12
    +era.useForegroundForTextColor = 0
    +era.textColor = (255, 255, 255, 255)
    +Test("text2d11")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_text3d.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_text3d.html new file mode 100644 index 000000000..00822c40d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_text3d.html @@ -0,0 +1,102 @@ + +Results for rendering/text3d.py + +

    Results of VisIt Regression Test - rendering/text3d

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    text3d000.000.00
    text3d010.000.00
    text3d020.000.00
    text3d030.000.00
    text3d040.000.00
    text3d050.000.00
    text3d060.000.00
    text3d070.000.00
    text3d080.000.00
    text3d090.000.00
    text3d100.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_text3d_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_text3d_py.html new file mode 100644 index 000000000..cee11cc46 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_text3d_py.html @@ -0,0 +1,103 @@ +rendering/text3d.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  text3d.py
    +#
    +#  Tests:      mesh        - 2D curvilinear, single domain
    +#              plots       - Pseudocolor
    +#              annotations - Text2D
    +#
    +#  Defect ID:  None
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       August 31, 2015
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Set up the annotation colors, etc.
    +a = GetAnnotationAttributes()
    +a.backgroundColor = (80, 0, 100, 255)
    +a.foregroundColor = (255, 255, 255, 255)
    +a.backgroundMode = a.Solid
    +SetAnnotationAttributes(a)
    +
    +# Open up the database and do a plot.
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +
    +# Create a Text2D object
    +text = CreateAnnotationObject("Text3D")
    +text.text = "Pseudocolor plot!"
    +text.position = (-10,10,10)
    +Test("text3d00")
    +
    +# Set the foreground color to see if it changes
    +a.foregroundColor = (51, 204, 204, 255)
    +SetAnnotationAttributes(a)
    +Test("text3d01")
    +
    +# Test solid text color
    +a.foregroundColor = (255, 255, 255, 255)
    +SetAnnotationAttributes(a)
    +text.useForegroundForTextColor = 0
    +text.textColor = (255, 102, 0, 255)
    +Test("text3d02")
    +
    +# Test text opacity
    +text.position = (-5,0,9)
    +text.textColor = (255,102,0,150)
    +text.relativeHeight = 0.05
    +Test("text3d03")
    +
    +# Test Height mode
    +text.textColor = (255,102,0,255)
    +text.heightMode = text.Fixed
    +text.fixedHeight = 2
    +Test("text3d04")
    +
    +# Test preserveOrientation
    +text.position = (-10, 0, 12)
    +v = GetView3D()
    +v.viewNormal = (0, 0.707107, 0.707107)
    +v.viewUp = (0, 0.707107, -0.707107)
    +SetView3D(v)
    +Test("text3d05")
    +
    +text.preserveOrientation = 1
    +Test("text3d06")
    +
    +
    +# Test rotations
    +
    +# Create more text objects
    +AddOperator("Reflect")
    +reflect = ReflectAttributes()
    +reflect.reflections=(1, 1, 0, 0, 0, 0, 0, 0)
    +SetOperatorOptions(reflect)
    +text.text="Left"
    +text.position=(-20, -5, 10)
    +text.rotations=(0,0,90)
    +text.heightMode = text.Relative
    +DrawPlots()
    +ResetView()
    +Test("text3d07")
    +
    +right = CreateAnnotationObject("Text3D")
    +right.position = (-5, 0, 10)
    +right.text = "Right"
    +right.relativeHeight = 0.05
    +right.rotations=(0,0, -45)
    +Test("text3d08")
    +
    +text.Delete()
    +Test("text3d09")
    +right.Delete()
    +Test("text3d10")
    +
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_timeslider.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_timeslider.html new file mode 100644 index 000000000..898443310 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_timeslider.html @@ -0,0 +1,174 @@ + +Results for rendering/timeslider.py + +

    Results of VisIt Regression Test - rendering/timeslider

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    timeslider000.000.00
    timeslider010.000.00
    timeslider020.000.00
    timeslider030.000.00
    timeslider040.000.00
    timeslider050.000.00
    timeslider060.000.00
    timeslider070.000.00
    timeslider080.000.00
    timeslider090.000.00
    timeslider100.000.00
    timeslider110.000.00
    timeslider120.000.00
    timeslider130.000.00
    timeslider140.000.00
    timeslider150.000.00
    timeslider160.000.00
    timeslider170.000.00
    timeslider180.000.00
    timeslider190.000.00
    timeslider200.000.00
    timeslider210.000.00
    timeslider220.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_timeslider_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_timeslider_py.html new file mode 100644 index 000000000..574068789 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_timeslider_py.html @@ -0,0 +1,162 @@ +rendering/timeslider.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  timeslider.py
    +#
    +#  Tests:      mesh        - 2D curvilinear, single domain
    +#              plots       - Pseudocolor
    +#              annotations - Time slider
    +#
    +#  Defect ID:  VisIt00003746
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Dec 4 14:39:21 PST 2003
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Mar 9 09:15:30 PDT 2005
    +#    Removed deprecated functions.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Update due to change 
    +#
    +#    Brad Whitlock, Wed Sep 28 14:12:00 PDT 2011
    +#    Move the time slider around a couple times.
    +# ----------------------------------------------------------------------------
    +
    +# Set up the annotation colors, etc.
    +a = GetAnnotationAttributes()
    +a.backgroundColor = (0, 0, 0, 255)
    +a.foregroundColor = (255, 255, 255, 255)
    +a.backgroundMode = a.Solid
    +SetAnnotationAttributes(a)
    +
    +# Open up the database and create a plot.
    +OpenDatabase(data_path("pdb_test_data/allinone00.pdb"))
    +
    +AddPlot("Pseudocolor", "mesh/a")
    +SetTimeSliderState(4)
    +DrawPlots()
    +
    +# Create a time slider
    +slider = CreateAnnotationObject("TimeSlider")
    +Test("timeslider00")
    +
    +# Turn it off
    +slider.visible = 0
    +Test("timeslider01")
    +
    +# Turn it back on and move and resize it
    +slider.visible = 1
    +slider.width = 0.60
    +slider.height = 0.1
    +slider.position = (0.2, 0.03)
    +Test("timeslider02")
    +
    +# Change the colors
    +slider.startColor = (255, 0, 0, 255)
    +slider.endColor = (255, 255, 0, 255)
    +Test("timeslider03")
    +
    +# Change the rounding mode
    +slider.rounded = 0
    +Test("timeslider04")
    +
    +# Change the shading mode
    +slider.shaded = 0
    +Test("timeslider05")
    +
    +# Change the text
    +slider.text = "The time is: $time"
    +Test("timeslider06")
    +SetTimeSliderState(14)
    +Test("timeslider07")
    +
    +# Change the text color
    +slider.shaded = 1
    +slider.rounded = 1
    +slider.useForegroundForTextColor = 0
    +slider.textColor = (0, 0, 255, 255)
    +Test("timeslider08")
    +
    +# Create a new slider
    +SetTimeSliderState(18)
    +slider2 = CreateAnnotationObject("TimeSlider","slider_obj")
    +slider2.position = (0.3, 0.8)
    +slider2.height = 0.15
    +Test("timeslider09")
    +
    +# Delete the first slider.
    +slider.Delete()
    +Test("timeslider10")
    +
    +# Create an alias to the second slider using the GetAnnotationObject call.
    +foo = GetAnnotationObject("slider_obj")
    +foo.startColor = (255, 0, 255, 255)
    +foo.endColor = (0, 255, 255, 100)
    +Test("timeslider11")
    +
    +# Delete the annotation using the alias.
    +foo.Delete()
    +Test("timeslider12")
    +
    +# Delete all plots and open a new database
    +SetTimeSliderState(0)
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "speed")
    +AddPlot("Mesh", "mesh1")
    +DrawPlots()
    +v0 = View3DAttributes()
    +v0.viewNormal = (-0.556371, 0.348221, 0.754449)
    +v0.focus = (0, 0, 0)
    +v0.viewUp = (0.185162, 0.93708, -0.295968)
    +v0.viewAngle = 30
    +v0.parallelScale = 17.3205
    +v0.nearPlane = -34.641
    +v0.farPlane = 34.641
    +v0.imagePan = (0, 0)
    +v0.imageZoom = 1.20945
    +v0.perspective = 1
    +v0.eyeAngle = 2
    +
    +v1 = View3DAttributes()
    +v1.viewNormal = (0.501427, 0.560716, 0.658915)
    +v1.focus = (0, 0, 0)
    +v1.viewUp = (-0.272851, 0.825194, -0.494577)
    +v1.viewAngle = 30
    +v1.parallelScale = 17.3205
    +v1.nearPlane = -34.641
    +v1.farPlane = 34.641
    +v1.imagePan = (0, 0)
    +v1.imageZoom = 1.52784
    +v1.perspective = 1
    +v1.eyeAngle = 2
    +
    +# Create a new slider
    +slider = CreateAnnotationObject("TimeSlider")
    +slider.position = (0.2, 0.02)
    +slider.width = 0.6
    +slider.height = 0.08
    +slider.percentComplete = 0
    +slider.timeDisplay = slider.UserSpecified
    +slider.text = "Using percentComplete manually"
    +testnum = 13
    +nsteps = 10
    +moves = {4 : (0.02, 0.5), 8 : (0.2, 0.9)}
    +# Set the percentComplete manually
    +for i in range(nsteps):
    +    t = float(i) / float(nsteps - 1)
    +    slider.percentComplete = t * 100.
    +    if i in list(moves.keys()):
    +        slider.position = moves[i]
    +    v = v0 * (1. - t) + v1 * t
    +    SetView3D(v)
    +    Test("timeslider%02d" % testnum)
    +    testnum = testnum + 1
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_transparency.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_transparency.html new file mode 100644 index 000000000..37f554635 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_transparency.html @@ -0,0 +1,132 @@ + +Results for rendering/transparency.py + +

    Results of VisIt Regression Test - rendering/transparency

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    transparency_010.000.00
    transparency_020.000.00
    transparency_030.000.00
    transparency_040.000.00
    transparency_050.000.00
    transparency_060.000.00
    transparency_070.000.00
    transparency_080.000.00
    transparency_090.000.00
    transparency_100.000.00
    transparency_110.000.00
    transparency_120.000.00
    transparency_130.000.00
    transparency_140.000.00
    transparency_150.000.00
    transparency_160.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_transparency_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_transparency_py.html new file mode 100644 index 000000000..efcb5e8a1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_transparency_py.html @@ -0,0 +1,315 @@ +rendering/transparency.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  transparency.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - pc, subset
    +#              operators - none
    +#              selection - none
    +#
    +#  Defect ID:  '2784 + general transparency testing + '7772 + '7773 + '7879
    +#
    +#  Programmer: Hank Childs
    +#  Date:       November 20, 2002
    +#
    +# Modifications:
    +#   Brad Whitlock, Thu Dec 12 09:56:02 PDT 2002
    +#   I made the test use the new SubsetAttributes.
    +#
    +#   Brad Whitlock, Mon Feb 24 10:36:21 PDT 2003
    +#   I made it use the multiple colors coloring mode for the Subset attributes
    +#   instead of the single color coloring mode.
    +#
    +#   Kathleen Bonnell, Thu Aug 28 14:34:57 PDT 2003
    +#   Remove compound var name from Subset plots.
    +#
    +#   Hank Childs, Thu May  6 09:34:27 PDT 2004
    +#   Remove out of date comments regarding test that was recently fixed ('4878).
    +#
    +#   Hank Childs, Mon Feb 12 14:06:10 PST 2007
    +#   Add tests for rectilinear transparency ('7772 & '7773).
    +#
    +#   Hank Childs, Thu Mar  8 11:13:49 PST 2007
    +#   Test transparency after scaling ('7879) ... that the scale factor in the
    +#   transparency actor gets set back to 1.
    +#
    +#   Hank Childs, Wed Dec 31 10:21:31 PST 2008
    +#   Add a test for multi-block rectilinear grids.
    +#
    +#   Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#   Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#   Kathleen Biagas, Mon Dec 19 15:45:38 PST 2016
    +#   Use FilledBoundary plot for materials instead of Subset.
    +#
    +#   Eric Brugger, Fri Aug  9 13:45:49 PDT 2024
    +#   Added a test of combining opaque and transparent plots from
    +#   multi_ucd3d.silo.
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("FilledBoundary", "mat1")
    +DrawPlots()
    +
    +fbAtts = FilledBoundaryAttributes()
    +fbAtts.opacity = 0.9
    +fbAtts.colorType = fbAtts.ColorByMultipleColors
    +SetPlotOptions(fbAtts)
    +
    +# Test that the normals stick around when we slightly drop the transparency
    +# ('2784)
    +Test("transparency_01")
    +
    +
    +# Test that it still looks good when we crank the transparency down.
    +fbAtts.opacity = 0.4
    +SetPlotOptions(fbAtts)
    +
    +Test("transparency_02")
    +
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Box")
    +box = BoxAttributes()
    +box.minx = -4
    +box.maxx = +2
    +box.miny = -6
    +box.maxy = 0
    +box.minz = -4
    +box.maxz = +4
    +SetOperatorOptions(box)
    +DrawPlots()
    +
    +# Make sure that it still looks good when we have solid geometry in there.
    +Test("transparency_03")
    +
    +pcAtts = PseudocolorAttributes()
    +pcAtts.SetOpacityType(pcAtts.Constant)
    +pcAtts.opacity = 0.75
    +SetPlotOptions(pcAtts)
    +
    +# Test having two transparent plots
    +Test("transparency_04")
    +
    +
    +AddPlot("Pseudocolor", "t")
    +AddOperator("Box")
    +box.minx = 2
    +box.maxx = 10
    +SetOperatorOptions(box)
    +DrawPlots()
    +
    +# Test having two transparent plots + plus one solid geometry plot.
    +Test("transparency_05")
    +
    +
    +SetPlotOptions(pcAtts)
    +
    +# Test having three transparent plots, one with zonal centering.  Note:
    +# this is testing whether or not we can encode zonal-normals as nodal-normals
    +# and have it play well with other plots that have legitimate nodal-normals.
    +Test("transparency_06")
    +
    +# Test that it can do transparency correctly for rectilinear grids ('7772)
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("rect3d.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +pcAtts = PseudocolorAttributes()
    +pcAtts.SetOpacityType(pcAtts.Constant)
    +pcAtts.opacity = 0.75
    +SetPlotOptions(pcAtts)
    +DrawPlots()
    +Test("transparency_07")
    +DeleteAllPlots()
    +
    +# Test that updates transparency correctly for rectilinear grids ('7773)
    +# To test this, we must draw a non-transparent grid first.
    +AddPlot("Pseudocolor", "u")
    +DrawPlots()
    +Test("transparency_08")
    +pcAtts.SetOpacityType(pcAtts.Constant)
    +pcAtts.opacity = 0.75
    +SetPlotOptions(pcAtts)
    +DrawPlots()
    +Test("transparency_09")
    +
    +DeleteAllPlots()
    +AddPlot("Histogram", "d")
    +DrawPlots()
    +Test("transparency_10")
    +DeleteAllPlots()
    +AddPlot("Pseudocolor", "u")
    +pcAtts.SetOpacityType(pcAtts.Constant)
    +pcAtts.opacity = 0.75
    +SetPlotOptions(pcAtts)
    +DrawPlots()
    +Test("transparency_11")
    +
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +ResetView()
    +Test("transparency_12")
    +pcAtts.SetOpacityType(pcAtts.Constant)
    +pcAtts.opacity = 0.25
    +SetPlotOptions(pcAtts)
    +Test("transparency_13")
    +
    +# Test transparency with 3d multi block data
    +DeleteAllPlots()
    +OpenDatabase(silo_data_path("multi_curv3d.silo"))
    +
    +AddPlot("Pseudocolor", "d")
    +pcAtts.SetOpacityType(pcAtts.Constant)
    +pcAtts.opacity = 0.25
    +SetPlotOptions(pcAtts)
    +DrawPlots()
    +v =GetView3D()
    +v.viewNormal = (0.432843, 0.303466, 0.848855)
    +v.focus = (0, 2.5, 15)
    +v.viewUp = (-0.0787945, 0.950767, -0.299721)
    +v.viewAngle = 30
    +v.parallelScale = 16.0078
    +v.nearPlane = -32.0156
    +v.farPlane = 32.0156
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 2.5, 15)
    +v.axis3DScaleFlag = 0
    +v.axis3DScales = (1, 1, 1)
    +v.shear = (0, 0, 1)
    +v.windowValid = 1
    +SetView3D(v)
    +Test("transparency_14")
    +
    +DeleteAllPlots()
    +
    +# Test both opaque and transparent plots with 3d multi block data
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +AddPlot("Subset", "mesh1", 1, 1)
    +s = SubsetAttributes()
    +s.colorType = s.ColorBySingleColor
    +s.singleColor = (153, 153, 153, 255)
    +SetPlotOptions(s)
    +AddOperator("Slice", 1)
    +SliceAtts = SliceAttributes()
    +SliceAtts.originType = SliceAtts.Intercept
    +SliceAtts.originIntercept = 2.5
    +SliceAtts.project2d = 0
    +SetOperatorOptions(SliceAtts, 0, 1)
    +
    +AddPlot("Subset", "domains(mesh1)", 1, 0)
    +s = SubsetAttributes()
    +s.opacity = 0.403922
    +SetPlotOptions(s)
    +
    +DrawPlots()
    +v = GetView3D()
    +v.viewNormal = (0.281187, 0.666153, 0.690778)
    +v.focus = (0, 2.5, 10)
    +v.viewUp = (-0.285935, 0.745284, -0.602323)
    +v.viewAngle = 30
    +v.parallelScale = 11.4564
    +v.nearPlane = -22.9129
    +v.farPlane = 22.9129
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0, 2.5, 10)
    +v.axis3DScaleFlag = 0
    +v.axis3DScales = (1, 1, 1)
    +v.shear = (0, 0, 1)
    +v.windowValid = 1
    +SetView3D(v)
    +
    +Test("transparency_15")
    +
    +DeleteAllPlots()
    +
    +# Test with 3d multi block data
    +OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +DefineScalarExpression("x", "coord(mesh1)[0]")
    +DefineScalarExpression("y", "coord(mesh1)[1]")
    +DefineScalarExpression("z", "coord(mesh1)[2]")
    +DefineScalarExpression("radial", "sqrt((x-0.5)*(x-0.5)+(y-0.5)*(y-0.5)+(z-0.5)*(z-0.5))")
    +DefineScalarExpression("const", "nodal_constant(<mesh1>, 2.0)")
    +
    +AddPlot("Pseudocolor", "const")
    +pc = PseudocolorAttributes()
    +pc.lightingFlag = 0
    +pc.opacityType = pc.Constant
    +pc.opacity = 0.4
    +SetPlotOptions(pc)
    +
    +AddOperator("Isovolume", 1)
    +isovol = IsovolumeAttributes()
    +isovol.lbound = 0
    +isovol.ubound = 0.4
    +isovol.variable = "radial"
    +SetOperatorOptions(isovol, 0, 1)
    +
    +AddOperator("Slice", 1)
    +slice = SliceAttributes()
    +slice.originType = slice.Intercept
    +slice.originIntercept = 0.7
    +slice.axisType = slice.XAxis
    +slice.project2d = 0
    +SetOperatorOptions(slice, 1, 0)
    +DrawPlots()
    +
    +AddPlot("Pseudocolor", "const", 1, 1)
    +pc.opacity = 0.7
    +SetPlotOptions(pc)
    +slice.originIntercept = 0.5
    +SetOperatorOptions(slice, 1, 0)
    +DrawPlots()
    +
    +AddPlot("Pseudocolor", "const", 1, 1)
    +pc.opacityType = pc.FullyOpaque
    +SetPlotOptions(pc)
    +slice.originIntercept = 0.3
    +SetOperatorOptions(slice, 1, 0)
    +DrawPlots()
    +
    +v = View3DAttributes()
    +v.viewNormal = (0.786444, 0.436457, 0.437048)
    +v.focus = (0.5, 0.5, 0.5)
    +v.viewUp = (-0.599183, 0.367316, 0.711378)
    +v.viewAngle = 30
    +v.parallelScale = 0.866025
    +v.nearPlane = -1.73205
    +v.farPlane = 1.73205
    +v.imagePan = (0, 0)
    +v.imageZoom = 1
    +v.perspective = 1
    +v.eyeAngle = 2
    +v.centerOfRotationSet = 0
    +v.centerOfRotation = (0.5, 0.5, 0.5)
    +v.axis3DScaleFlag = 0
    +v.axis3DScales = (1, 1, 1)
    +v.shear = (0, 0, 1)
    +v.windowValid = 1
    +SetView3D(v)
    +
    +Test("transparency_16")
    +
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_view.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_view.html new file mode 100644 index 000000000..bfa3c3561 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_view.html @@ -0,0 +1,249 @@ + +Results for rendering/view.py + +

    Results of VisIt Regression Test - rendering/view

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    view_010.000.00
    Test degenerate 2D views
    view_020.000.00
    view_030.000.00
    view_040.000.00
    view_050.000.00
    Test degenerate curve views
    view_060.000.00
    view_070.000.00
    view_080.000.00
    view_090.000.00
    Test zoom in on mesh lines
    view_100.000.00
    view_110.000.00
    view_120.000.00
    view_130.000.00
    Test actual extents
    view_140.000.00
    view_150.000.00
    view_160.000.00
    view_170.000.00
    view_180.000.00
    view_190.000.00
    Test 3D plots with degenerate extents
    view_200.000.00
    view_210.000.00
    view_220.000.00
    Test interpolation of View3DAttributes
    view_230.000.00
    view_240.000.00
    view_250.000.00
    view_260.000.00
    view_270.000.00
    Test interpolation of View2DAttributes
    view_280.000.00
    view_290.000.00
    view_300.000.00
    view_310.000.00
    view_320.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_viewChange.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_viewChange.html new file mode 100644 index 000000000..48a41846e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_viewChange.html @@ -0,0 +1,222 @@ + +Results for rendering/viewChange.py + +

    Results of VisIt Regression Test - rendering/viewChange

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Testing view changes with slice flip
    ViewChangeSliceFlip0.000.00
    Testing view changes with fullframe
    ViewChangeFullFrame_010.000.00
    ViewChangeFullFrame_020.000.00
    ViewChangeFullFrame_030.000.00
    ViewChangeFullFrame_040.000.00
    ViewChangeFullFrame_050.000.00
    ViewChangeFullFrame_060.000.00
    ViewChangeFullFrame_070.000.00
    Testing view changes with fullframe and glyphed plots
    ViewChangeAutoFF_000.000.00
    ViewChangeAutoFF_010.000.00
    ViewChangeAutoFF_020.000.00
    ViewChangeAutoFF_030.000.00
    ViewChangeAutoFF_040.000.00
    ViewChangeAutoFF_050.000.00
    Testing view changes with log scaling of 2D plots
    ViewChangeLogScale2D_000.000.00
    ViewChangeLogScale2D_010.000.00
    ViewChangeLogScale2D_020.000.00
    Testing view changes with log scaling of curves
    ViewChangeLogScaleCurves_000.000.00
    ViewChangeLogScaleCurves_010.000.00
    ViewChangeLogScaleCurves_020.000.00
    ViewChangeLogScaleCurves_030.000.00
    ViewChangeLogScaleCurves_040.000.00
    ViewChangeLogScaleCurves_050.000.00
    largeValueLineout0.000.00
    largeValueLineout_logScaling0.000.00
    largeValueMeshCurve0.000.00
    largeValueMeshCurve_logScaling0.000.00
    Testing view changes with fullframe and label plots
    ViewChangeFullFrameWithLabels_000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_viewChange_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_viewChange_py.html new file mode 100644 index 000000000..83b1b583b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_viewChange_py.html @@ -0,0 +1,450 @@ +rendering/viewChange.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  viewChange.py
    +#
    +#  Tests:      mesh      - structured grid 
    +#              plots     - pc
    +#              operators - slice
    +#              selection - none
    +#
    +#  Defect ID:  VisIt00003350, VisIt000032263
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       May 14, 2003 
    +#
    +#  Modifications:
    +#    Kathleen Bonnell, Tue Jul  8 21:04:45 PDT 2003 
    +#    Changed ViewChangeSliceFlip, to use Flip, then change so that
    +#    image remains the same .. necessary do to slice changes.
    +#
    +#    Kathleen Bonnell, Wed Jul 16 18:07:33 PDT 2003 
    +#    Added more full-frame tests: for Histogram plot, transparent plot,
    +#    and plots with ViewExtentsType set to 'actual'.
    +#
    +#    Mark C. Miller, Tue Mar 14 07:54:20 PST 2006
    +#    Changed how full-frame is turned on/off
    +#
    +#    Brad Whitlock, Wed Jul 26 14:31:57 PST 2006
    +#    Added testing for auto fullframe of some glyphed plots.
    +#
    +#    Kathleen Bonnell, Tue Mar  3 13:20:57 PST 2009
    +#    Added testing for log-scaling of curves and 2d plots.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Kathleen Biagas, Wed Oct 21 11:19:52 PDT 2020
    +#    Added TestLargeValueLineoutWithLogScaling
    +#
    +#    Alister Maguire, Mon May 24 12:50:20 PDT 2021
    +#    Added TestViewChangeFullFrameWithLabels.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def InitAnnotation():
    +    # Turn off most annotation
    +    a = GetAnnotationAttributes()
    +    a.axes2D.visible = 1
    +    a.axes2D.xAxis.label.visible = 0
    +    a.axes2D.yAxis.label.visible = 0
    +    a.axes2D.xAxis.title.visible = 0
    +    a.axes2D.yAxis.title.visible = 0
    +    a.axes3D.visible = 0
    +    a.axes3D.triadFlag = 0
    +    a.axes3D.bboxFlag = 0
    +    a.userInfoFlag = 0
    +    a.databaseInfoFlag = 0
    +    a.legendInfoFlag = 0
    +    a.backgroundMode = 0
    +    a.foregroundColor = (0, 0, 0, 255)
    +    a.backgroundColor = (255, 255, 255, 255)
    +    SetAnnotationAttributes(a)
    +
    +
    +def TestViewChangeSliceFlip():
    +    TestSection("Testing view changes with slice flip")
    +    OpenDatabase(silo_data_path("wave0000.silo"))
    +
    +    AddPlot("Pseudocolor", "pressure")
    +    AddOperator("Slice")
    +    slice = SliceAttributes()
    +    slice.project2d = 1
    +    slice.axisType = slice.ZAxis
    +    slice.flip = 1
    +    SetOperatorOptions(slice)
    +    DrawPlots()
    +
    +    # We want to capture the image after the flip, to ensure
    +    # the frame and axes are still drawn correctly.
    +    slice.flip = 0
    +    SetOperatorOptions(slice)
    +
    +    Test("ViewChangeSliceFlip")
    +    DeleteAllPlots()
    +
    +def TestViewChangeFullFrame():
    +    TestSection("Testing view changes with fullframe")
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    # We want to capture the image after toggling full frame mode, 
    +    # to ensure frame and axes are still drawn correctly.
    +
    +    # Turn full frame mode ON
    +    v = GetView2D()
    +    v.fullFrameActivationMode = v.On
    +    SetView2D(v)
    +    Test("ViewChangeFullFrame_01")
    +
    +    # Does a transparent actor maintain the full frame mode? 
    +    p = PseudocolorAttributes()
    +    p.SetOpacityType(p.Constant)
    +    p.opacity = 0.5;
    +    SetPlotOptions(p);
    +    Test("ViewChangeFullFrame_02")
    +
    +
    +    p.SetOpacityType(p.FullyOpaque)
    +    SetPlotOptions(p)
    +    # Turn full frame mode OFF
    +    ToggleFullFrameMode()
    +    AddOperator("Clip")
    +    c = ClipAttributes()
    +    c.plane1Origin = (0, 3, 0)
    +    c.plane1Normal = (0, -1, 0)
    +    SetOperatorOptions(c)
    +    DrawPlots()
    +    SetViewExtentsType("actual")
    +    # Turn full frame mode ON
    +    ToggleFullFrameMode()
    +    Test("ViewChangeFullFrame_03")
    +    # Turn full frame mode OFF
    +    ToggleFullFrameMode()
    +    Test("ViewChangeFullFrame_04")
    +    # Turn full frame mode ON
    +    ToggleFullFrameMode()
    +    SetViewExtentsType("original")
    +    Test("ViewChangeFullFrame_05")
    +
    +    DeleteAllPlots()
    +
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Histogram", "u")
    +    DrawPlots()
    +    ResetView()
    +    Test("ViewChangeFullFrame_06")
    +    h = HistogramAttributes()
    +    h.numBins = 5
    +    SetPlotOptions(h)
    +    Test("ViewChangeFullFrame_07")
    +
    +    # cleanup for next test
    +    v = GetView2D()
    +    v.fullFrameActivationMode = v.Auto
    +    SetView2D(v)
    +
    +    DeleteAllPlots()
    +
    +def TestViewChangeFullFrameWithGlyphs():
    +    TestSection("Testing view changes with fullframe and glyphed plots")
    +    OpenDatabase(silo_data_path("fullframe.silo"))
    +
    +    AddPlot("Mesh", "fullframe")
    +    DrawPlots()
    +    ResetView()
    +    Test("ViewChangeAutoFF_00")
    +
    +    AddPlot("Vector", "vec")
    +    v = VectorAttributes()
    +    v.nVectors = 800
    +    SetPlotOptions(v)
    +    DrawPlots()
    +    Test("ViewChangeAutoFF_01")
    +
    +    DeleteAllPlots()
    +
    +    # Make sure it kicks in when the vector plot is the only plot.
    +    AddPlot("Vector", "vec")
    +    v = VectorAttributes()
    +    v.nVectors = 800
    +    SetPlotOptions(v)
    +    DrawPlots()
    +    Test("ViewChangeAutoFF_02")
    +
    +    DeleteAllPlots()
    +
    +    # Test a Pseudocolor plot of point mesh data
    +    AddPlot("Pseudocolor", "rad")
    +    p = PseudocolorAttributes()
    +    p.pointType = p.Box
    +    p.pointSize = 5e+8
    +    SetPlotOptions(p)
    +    DrawPlots()
    +    Test("ViewChangeAutoFF_03")
    +
    +    p.pointType = p.Axis
    +    SetPlotOptions(p)
    +    Test("ViewChangeAutoFF_04")
    +
    +    DeleteAllPlots()
    +
    +    # Test a Mesh plot of a point mesh
    +    AddPlot("Mesh", "pointmesh")
    +    m = MeshAttributes()
    +    m.pointType = m.Box
    +    m.pointSize = 5e+8
    +    SetPlotOptions(m)
    +    DrawPlots()
    +    Test("ViewChangeAutoFF_05")
    +    DeleteAllPlots()
    +
    +def TestViewChangeLogScaling2D():
    +    TestSection("Testing view changes with log scaling of 2D plots")
    +
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Pseudocolor", "u")
    +    DrawPlots()
    +    ResetView()
    +
    +    #7944  ensure that changing curve view scaling does not affect 2D.
    +    v = GetViewCurve()
    +    v.domainScale = v.LOG
    +    v.rangeScale = v.LOG
    +    SetViewCurve(v)
    +
    +    Test("ViewChangeLogScale2D_00")
    +
    +    #8563  using view window coords to put a plot into a range suitable 
    +    #      for log-scaling
    +
    +    v = GetView2D()
    +    v.fullFrameActivationMode = v.Off
    +    wc = v.windowCoords
    +    v.windowCoords = (1e-13, 0.25, wc[2], wc[3])
    +    SetView2D(v)
    +
    +    Test("ViewChangeLogScale2D_01")
    +    v.xScale = v.LOG
    +    SetView2D(v)
    +    Test("ViewChangeLogScale2D_02")
    +
    +    #clean up for next test
    +    v = GetView2D()
    +    v.xScale = v.LINEAR
    +    v.yScale = v.LINEAR
    +    SetView2D(v)
    +    ResetView()
    +
    +    v = GetViewCurve()
    +    v.domainScale = v.LINEAR
    +    v.rangeScale = v.LINEAR
    +    SetViewCurve(v)
    +    DeleteAllPlots()
    +
    +def TestViewChangeLogScalingCurves():
    +    TestSection("Testing view changes with log scaling of curves")
    +    # '8880:  Add curve plot.  Set scaling to log-log.  Add another curve plot.
    +    OpenDatabase(data_path("curve_test_data/distribution.ultra"))
    +
    +    AddPlot("Curve", "Laplace Distribution")
    +    curveAtts = CurveAttributes()
    +    curveAtts.curveColorSource = curveAtts.Custom
    +    curveAtts.curveColor = (255, 0, 0, 255)
    +    SetPlotOptions(curveAtts)
    +
    +    # For log scaling to work with these curves, we need to transform
    +    # first.
    +
    +    trans = TransformAttributes()
    +    trans.doTranslate = 1
    +    trans.translateX = 30
    +    trans.translateY = 10
    +    SetDefaultOperatorOptions(trans)
    +    AddOperator("Transform")
    +    DrawPlots()
    +    ResetView()
    +    Test("ViewChangeLogScaleCurves_00")
    +
    +    v = GetViewCurve()
    +    v.domainScale = v.LOG
    +    v.rangeScale  = v.LOG
    +    SetViewCurve(v)
    +
    +    Test("ViewChangeLogScaleCurves_01")
    +
    +    AddPlot("Curve", "Log Normal Distribution")
    +    curveAtts.curveColor = (0, 255, 0, 255)
    +    SetPlotOptions(curveAtts)
    +    AddOperator("Transform")
    +    DrawPlots()
    +    Test("ViewChangeLogScaleCurves_02")
    +
    +    AddPlot("Curve", "Exponential Distribution")
    +    curveAtts.curveColor = (0, 0, 255, 255)
    +    SetPlotOptions(curveAtts)
    +    AddOperator("Transform")
    +    DrawPlots()
    +    Test("ViewChangeLogScaleCurves_03")
    +
    +    v = GetViewCurve()
    +    v.domainScale = v.LINEAR
    +    v.rangeScale  = v.LINEAR
    +    SetViewCurve(v)
    +
    +    DeleteAllPlots()
    +
    +    #8660  add log scaling to a curve put in an appropriate range via the
    +    #      box operator
    +    OpenDatabase(data_path("curve_test_data/c063.curve"))
    +
    +    AddPlot("Curve", "flat")
    +    curveAtts.curveColor = (0, 255, 255, 255)
    +    SetPlotOptions(curveAtts)
    +    AddPlot("Curve", "going_down")
    +    curveAtts.curveColor = (255, 0, 255, 255)
    +    SetPlotOptions(curveAtts)
    +    AddPlot("Curve", "going_up")
    +    curveAtts.curveColor = (255, 255, 0, 255)
    +    SetPlotOptions(curveAtts)
    +    AddPlot("Curve", "parabolic")
    +    curveAtts.curveColor = (255, 135, 0, 255)
    +    SetPlotOptions(curveAtts)
    +
    +    DrawPlots()
    +
    +    SetActivePlots((0, 1, 2, 3))
    +    AddOperator("Box")
    +    b = BoxAttributes()
    +    b.minx = 0.4
    +    b.maxx = 0.8
    +    b.miny = 0.000001
    +    b.maxy = 10000
    +    SetOperatorOptions(b)
    +    DrawPlots()
    +
    +    SetViewExtentsType("actual")
    +
    +    Test("ViewChangeLogScaleCurves_04")
    +
    +    v = GetViewCurve()
    +    v.domainScale = v.LOG
    +    v.rangeScale  = v.LOG
    +    SetViewCurve(v)
    +
    +    Test("ViewChangeLogScaleCurves_05")
    +
    +    #clean up for next test
    +    v = GetViewCurve()
    +    v.domainScale = v.LINEAR
    +    v.rangeScale  = v.LINEAR
    +    SetViewCurve(v)
    +    ResetView()
    +    DeleteAllPlots()
    +
    +def TestLargeValueLineoutWithLogScaling():
    +    # github bug #5066
    +    OpenDatabase(silo_data_path("rect2d.silo"))
    +    DefineScalarExpression("tlarge", "t*1e19")
    +    AddPlot("Pseudocolor", "tlarge")
    +    DrawPlots()
    +    Lineout((0.5, 1.5, 0), (0.5, 0, 0))
    +    SetActiveWindow(2)
    +    # Instead of getting *default* curve plot atts,
    +    # get *current* plot's atts using `1` arg. This
    +    # is to change *only* the attrs we want to change.
    +    curveAtts = CurveAttributes(1)
    +    curveAtts.lineWidth = 3
    +    SetPlotOptions(curveAtts)
    +    Test("largeValueLineout")
    +
    +    # save the curve as VTK so Mesh plot and 2D view can be tested.
    +    oldSwa = SaveWindowAttributes()
    +    swa = SaveWindowAttributes()
    +    swa.fileName="lineoutRes"
    +    swa.family=0
    +    swa.format=swa.VTK
    +    # need to ensure this is set (not the default on Windows)
    +    swa.outputToCurrentDirectory=1
    +    SetSaveWindowAttributes(swa)
    +    if TestEnv.params["scalable"] == 0:
    +        SaveWindow()
    +    else:
    +        # Turn of SR mode for the saveWindow, then turn it back on
    +        ra = GetRenderingAttributes()
    +        srm = ra.scalableActivationMode
    +        ra.scalableActivationMode = ra.Never
    +        SetRenderingAttributes(ra)
    +        SaveWindow()
    +        ra = GetRenderingAttributes()
    +        ra.scalableActivationMode = srm
    +        SetRenderingAttributes(ra)
    +    # restore previous settings
    +    SetSaveWindowAttributes(oldSwa)
    +
    +    v = GetViewCurve()
    +    v.rangeScale  = v.LOG
    +    SetViewCurve(v)
    +    Test("largeValueLineout_logScaling")
    +
    +    v = GetViewCurve()
    +    v.rangeScale  = v.LINEAR
    +    SetViewCurve(v)
    +
    +    DeleteAllPlots()
    +    OpenDatabase("lineoutRes.vtk")
    +    AddPlot("Mesh", "mesh")
    +    meshAtts = MeshAttributes()
    +    meshAtts.lineWidth=3
    +    SetPlotOptions(meshAtts)
    +    DrawPlots()
    +    Test("largeValueMeshCurve")
    +
    +    v = GetView2D()
    +    v.yScale = v.LOG
    +    SetView2D(v)
    +    Test("largeValueMeshCurve_logScaling")
    +    v.yScale = v.LINEAR
    +    SetView2D(v)
    +    DeleteWindow()
    +    DeleteAllPlots()
    +
    +def TestViewChangeFullFrameWithLabels():
    +    TestSection("Testing view changes with fullframe and label plots")
    +    OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +    AddPlot("Mesh", "curvmesh2d")
    +    AddPlot("Label", "curvmesh2d")
    +
    +    View2DAtts = View2DAttributes()
    +    View2DAtts.windowCoords = (-4.69855, 4.88342, 0.225185, 4.93329)
    +    View2DAtts.fullFrameActivationMode = View2DAtts.On
    +    SetView2D(View2DAtts)
    +
    +    DrawPlots()
    +
    +    Test("ViewChangeFullFrameWithLabels_00")
    +
    +    DeleteAllPlots()
    +    ResetView()
    +    CloseDatabase(silo_data_path("curv2d.silo"))
    +
    +
    +
    +def ViewChangeMain():
    +    InitAnnotation()
    +    TestViewChangeSliceFlip()
    +    TestViewChangeFullFrame()
    +    TestViewChangeFullFrameWithGlyphs()
    +    TestViewChangeLogScaling2D()
    +    TestViewChangeLogScalingCurves()
    +    TestLargeValueLineoutWithLogScaling()
    +    TestViewChangeFullFrameWithLabels()
    +
    +# Call the main function
    +ViewChangeMain()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_view_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_view_py.html new file mode 100644 index 000000000..2e40e27eb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_view_py.html @@ -0,0 +1,382 @@ +rendering/view.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  view.py
    +#
    +#  Tests:      mesh      - 2D structured, single domain 
    +#                        - 3D unstructured, multiple domains
    +#                        - 3D rectilinear, single domain
    +#                        - Curve
    +#              plots     - pseudocolor, curve, mesh
    +#              operators - none
    +#              selection - none
    +#
    +#  Defect ID:  VisIt00003915, VisIt00004247, VisIt00003398, VisIt00004896,
    +#              VisIt00005337
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       November 18, 2003 
    +#
    +#  Modifications:
    +#    Eric Brugger, Fri Apr 23 08:54:22 PDT 2004
    +#    Add a test to make sure that we can set the 3d view before any plots
    +#    are created.  Add tests to make sure that we can reset and recenter
    +#    the view when no plots are present.
    +#
    +#    Eric Brugger, Thu May 13 10:26:02 PDT 2004
    +#    Add a test to make sure switching view extents type to actual results
    +#    in new plots being centered after deleting all the existing plots.
    +#
    +#    Eric Brugger, Mon May 24 11:21:04 PDT 2004
    +#    Add a test with small extents.
    +#
    +#    Eric Brugger, Tue May 25 15:17:18 PDT 2004
    +#    Modify the test for small extents, and add more small and large extents
    +#    tests.
    +#
    +#    Eric Brugger, Mon Sep 20 13:37:52 PDT 2004
    +#    Add several tests for combining 3d plots with degenerate extents.
    +#
    +#    Brad Whitlock, Thu Mar 15 11:31:26 PDT 2007
    +#    Test that the bindings for 2D,3D views can still interpolate.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +
    +# Test setting the 3d view before creating the first plot.
    +v = View3DAttributes()
    +v.imagePan = (0.2, 0.2)
    +v.imageZoom = 1.2
    +v.viewNormal = (-0.5, 0.707107, 0.5)
    +v.viewUp = (0.5, 0.707107, -0.5)
    +SetView3D(v)
    +
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +Test("view_01")
    +
    +DeleteAllPlots()
    +
    +# Create a psuedocolor plot and test various degenerate 2d views.
    +TestSection("Test degenerate 2D views")
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +
    +AddPlot("Pseudocolor", "d")
    +DrawPlots()
    +
    +v = View2DAttributes()
    +v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +
    +v.windowCoords = (-4.68395, 4.89802, 2.5, 2.5)
    +SetView2D(v)
    +Test("view_02")
    +
    +v.windowCoords = (0.5, 0.5, 0.216897, 4.925)
    +SetView2D(v)
    +Test("view_03")
    +
    +v.windowCoords = (0.5, 0.5, 2.5, 2.5)
    +SetView2D(v)
    +Test("view_04")
    +
    +v.windowCoords = (0, 0, 0, 0)
    +SetView2D(v)
    +Test("view_05")
    +
    +DeleteAllPlots()
    +
    +# Create several curve plots and test various degenerate curve views.
    +TestSection("Test degenerate curve views")
    +OpenDatabase(data_path("curve_test_data/c051.curve"))
    +
    +
    +AddPlot("Curve", "flat")
    +curveAtts = CurveAttributes()
    +curveAtts.curveColorSource = curveAtts.Custom
    +curveAtts.curveColor = (255, 0, 0, 255)
    +SetPlotOptions(curveAtts)
    +AddPlot("Curve", "going_up")
    +curveAtts.curveColor = (0, 255, 0, 255)
    +SetPlotOptions(curveAtts)
    +AddPlot("Curve", "going_down")
    +curveAtts.curveColor = (0, 0, 255, 255)
    +SetPlotOptions(curveAtts)
    +AddPlot("Curve", "parabolic")
    +curveAtts.curveColor = (0, 255, 255, 255)
    +SetPlotOptions(curveAtts)
    +DrawPlots()
    +
    +v = ViewCurveAttributes()
    +v.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +
    +v.domainCoords = (0., 1.)
    +v.rangeCoords = (0.3, 0.3)
    +SetViewCurve(v)
    +Test("view_06")
    +
    +v.domainCoords = (0.6, 0.6)
    +v.rangeCoords = (0., 1.)
    +SetViewCurve(v)
    +Test("view_07")
    +
    +v.domainCoords = (0.6, 0.6)
    +v.rangeCoords = (0.3, 0.3)
    +SetViewCurve(v)
    +Test("view_08")
    +
    +v.domainCoords = (0., 0.)
    +v.rangeCoords = (0., 0.)
    +SetViewCurve(v)
    +Test("view_09")
    +
    +DeleteAllPlots()
    +
    +# Create a pseudocolor and mesh plot and zoom in on a sharp edge to
    +# verify that the mesh lines are not bleeding through the surface.
    +TestSection("Test zoom in on mesh lines")
    +OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +
    +
    +AddPlot("Pseudocolor", "u")
    +AddPlot("Mesh", "mesh1")
    +DrawPlots()
    +
    +v = GetView3D()
    +v.viewNormal = (-0.335187, -0.557088, 0.759804)
    +v.focus = (0, 2.5, 10)
    +v.viewUp = (-0.327416, 0.825068, 0.460501)
    +v.viewAngle = 30
    +v.parallelScale = 11.4564
    +v.nearPlane = -22.9129
    +v.farPlane = 22.9129
    +v.imagePan = (-0.136785, -0.172112)
    +v.imageZoom = 20.125
    +v.perspective = 1
    +SetView3D(v)
    +Test("view_10")
    +
    +# Test resetting and recentering the view when no plot is present.
    +DeleteAllPlots()
    +
    +ResetView()
    +
    +AddPlot("Pseudocolor", "u")
    +AddPlot("Mesh", "mesh1")
    +DrawPlots()
    +Test("view_11")
    +
    +v.viewNormal = (0.393726, -0.416942, 0.819231)
    +v.focus = (0, 5., 10)
    +v.viewUp = (-0.603958, 0.554522, 0.572486)
    +v.viewAngle = 30
    +v.parallelScale = 11.4564
    +v.nearPlane = -22.9129
    +v.farPlane = 22.9129
    +v.imagePan = (0.05, 0.)
    +v.imageZoom = 2.
    +v.perspective = 1
    +SetView3D(v)
    +Test("view_12")
    +
    +DeleteAllPlots()
    +
    +RecenterView()
    +
    +AddPlot("Pseudocolor", "u")
    +AddPlot("Mesh", "mesh1")
    +DrawPlots()
    +Test("view_13")
    +
    +# Test that setting view extents type to actual works.  Test that
    +# switching view extents type to actual results in new plots being
    +# centered after deleting all the existing plots.
    +TestSection("Test actual extents")
    +DeleteAllPlots()
    +
    +ResetView()
    +
    +OpenDatabase(silo_data_path("curv2d.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Clip")
    +DrawPlots()
    +SetViewExtentsType("actual")
    +Test("view_14")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(silo_data_path("rect2d.silo"))
    +
    +AddPlot("Pseudocolor", "p")
    +DrawPlots()
    +Test("view_15")
    +
    +# Test setting the view with small extents.
    +DeleteAllPlots()
    +
    +ResetView()
    +
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Transform")
    +scale = TransformAttributes()
    +scale.doScale = 1
    +scale.scaleX = 1.0e-21
    +scale.scaleY = 1.0e-21
    +scale.scaleZ = 1.0e-21
    +SetOperatorOptions(scale)
    +DrawPlots()
    +Test("view_16")
    +
    +ChangeActivePlotsVar("t")
    +Test("view_17")
    +
    +# Test setting the view with large extents.
    +DeleteAllPlots()
    +
    +AddPlot("Pseudocolor", "u")
    +AddOperator("Transform")
    +scale = TransformAttributes()
    +scale.doScale = 1
    +scale.scaleX = 1.0e17
    +scale.scaleY = 1.0e17
    +scale.scaleZ = 1.0e17
    +SetOperatorOptions(scale)
    +DrawPlots()
    +Test("view_18")
    +
    +ChangeActivePlotsVar("t")
    +Test("view_19")
    +
    +# Test various combinations of 3d plots with degenerate extents.
    +TestSection("Test 3D plots with degenerate extents")
    +DeleteAllPlots()
    +
    +ResetView()
    +
    +OpenDatabase(data_path("vtk_test_data/rect_flat_i.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +OpenDatabase(data_path("vtk_test_data/rect_flat_j.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +Test("view_20")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(data_path("vtk_test_data/rect_flat_j.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +OpenDatabase(data_path("vtk_test_data/rect_flat_k.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +Test("view_21")
    +
    +DeleteAllPlots()
    +
    +OpenDatabase(data_path("vtk_test_data/rect_flat_k.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +OpenDatabase(data_path("vtk_test_data/rect_flat_i.vtk"))
    +
    +AddPlot("Mesh", "mesh")
    +DrawPlots()
    +Test("view_22")
    +DeleteAllPlots()
    +
    +
    +#
    +# Test that the View3DAttributes object's Python binding still has the
    +# ability to interpolate the view.
    +#
    +TestSection("Test interpolation of View3DAttributes")
    +OpenDatabase(silo_data_path("globe.silo"))
    +
    +AddPlot("Pseudocolor", "speed")
    +DrawPlots()
    +
    +v0 = View3DAttributes()
    +v0.viewNormal = (0.416973, 0.447113, 0.791343)
    +v0.focus = (0, 0, 0)
    +v0.viewUp = (-0.23799, 0.893974, -0.379699)
    +v0.viewAngle = 30
    +v0.parallelScale = 17.3205
    +v0.nearPlane = -34.641
    +v0.farPlane = 34.641
    +v0.imagePan = (0, 0)
    +v0.imageZoom = 1
    +v0.perspective = 1
    +v0.eyeAngle = 2
    +v0.centerOfRotationSet = 0
    +v0.centerOfRotation = (0, 0, 0)
    +
    +v1 = View3DAttributes()
    +v1.viewNormal = (0.416973, 0.447113, 0.791343)
    +v1.focus = (0, 0, 0)
    +v1.viewUp = (-0.23799, 0.893974, -0.379699)
    +v1.viewAngle = 30
    +v1.parallelScale = 17.3205
    +v1.nearPlane = -34.641
    +v1.farPlane = 34.641
    +v1.imagePan = (0.160832, 0.126504)
    +v1.imageZoom = 3.95662
    +v1.perspective = 1
    +v1.eyeAngle = 2
    +v1.centerOfRotationSet = 0
    +v1.centerOfRotation = (0, 0, 0)
    +
    +idx = 23
    +nsteps = 5
    +for i in range(nsteps):
    +    t = float(i) / float(nsteps - 1)
    +    v = (1. - t) * v0 + t * v1
    +    SetView3D(v)
    +    Test("view_%d" % idx)
    +    idx = idx + 1
    +DeleteAllPlots()
    +
    +#
    +# Test that the View2DAttributes object's Python binding still has the
    +# ability to interpolate the view.
    +#
    +TestSection("Test interpolation of View2DAttributes")
    +OpenDatabase(data_path("shapefile_test_data/prism0p020/prism0p020.shp"))
    +
    +AddPlot("Pseudocolor", "RANGE")
    +DrawPlots()
    +
    +v0 = View2DAttributes()
    +v0.windowCoords = (-124.756, -66.954, 24.5183, 49.3856)
    +v0.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +v0.fullFrameActivationMode = v0.Off  # On, Off, Auto
    +v0.fullFrameAutoThreshold = 100
    +
    +v1 = View2DAttributes()
    +v1.windowCoords = (-77.667, -74.881, 36.6969, 39.662)
    +v1.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +v1.fullFrameActivationMode = v1.Off  # On, Off, Auto
    +v1.fullFrameAutoThreshold = 100
    +
    +nsteps = 5
    +for i in range(nsteps):
    +    t = float(i) / float(nsteps - 1)
    +    v = (1. - t) * v0 + t * v1
    +    SetView2D(v)
    +    Test("view_%d" % idx)
    +    idx = idx + 1
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_volume.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_volume.html new file mode 100644 index 000000000..e8bef86b8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_volume.html @@ -0,0 +1,54 @@ + +Results for rendering/volume.py + +

    Results of VisIt Regression Test - rendering/volume

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    volume_030.000.00
    volume_010.000.00
    volume_020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_volume_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_volume_py.html new file mode 100644 index 000000000..f5ff9ae86 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_volume_py.html @@ -0,0 +1,113 @@ +rendering/volume.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  volume.py
    +#
    +#  Tests:      mesh      - 3D unstructured, one domain 
    +#              plots     - volume 
    +#              operators - none
    +#              selection - yes 
    +#
    +#  Programmer: Mark C. Miller 
    +#  Date:       01Jul03
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Dec 15 09:36:51 PDT 2004
    +#    I changed the flag that's used to make it do software rendering.
    +#
    +#    Hank Childs, Mon Jul 11 14:07:16 PDT 2005
    +#    Added test for rectilinear grids with ghost zones and hardware rendering
    +#    ['5712].
    +#
    +#    Hank Childs, Wed Jul 13 10:31:08 PDT 2005
    +#    Delete wireframe plot, since that exposes '6380.
    +#
    +#    Jeremy Meredith, Wed Sep  7 12:06:04 PDT 2005
    +#    Allowed spaces in variable names.
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +#
    +#    Cyrus Harrison, Wed Aug 25 14:25:13 PDT 2010
    +#    SIL id shift (from 4 to 5) due to changes in SIL generation.
    +#
    +#    Brad Whitlock, Wed Sep 28 11:48:16 PDT 2011
    +#    Zoom in a little so we have more pixels covered.
    +#
    +#    Kathleen Biagas, Wed Nov 29 10:52:22 PST 2023
    +#    Skip volume_30 in scalable,parallel,icet mode as it crashes.
    +#
    +#    Kathleen Biagas, Tue May  7 13:56:23 PDT 2024
    +#    Move volume_10-volume_16 to volume_rect_singleDomain.py.
    +#    Move volume_20-volume_24 to volume_rect_multiDomain.py.
    +#    Move volume_30-volume_34 to volume_multiDomain_missingData.py.
    +# ----------------------------------------------------------------------------
    +
    +
    +def Samrai():
    +    OpenDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +
    +    # '6380.  The wireframe is not composited correctly when in SR mode.
    +    # So delete the wireframe and we should get the same picture in SR and
    +    # non-SR.  When '6380 is fixed, the DeleteAllPlots() call below should be
    +    # removed and the baseline should be reset.
    +    DeleteAllPlots()
    +
    +    AddPlot("Volume", "Primitive Var _number_0")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType =  volAtts.Serial
    +    volAtts.smoothData = 0
    +    volAtts.useColorVarMin = 1
    +    volAtts.colorVarMin = 22
    +    SetPlotOptions(volAtts)
    +    DrawPlots()
    +    ResetView()
    +    v = GetView3D()
    +    v.viewNormal = (-0.369824, 0.535308, 0.759391)
    +    v.viewUp = (-0.022009, 0.812062, -0.583155)
    +    SetView3D(v)
    +
    +    Test("volume_03")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(data_path("samrai_test_data/sil_changes/dumps.visit"))
    +
    +
    +def globe():
    +    OpenDatabase(silo_data_path("globe.silo"))
    +
    +    AddPlot("Volume", "t")
    +    silr=SILRestriction()
    +    silr.TurnOffSet(5)
    +    SetPlotSILRestriction(silr)
    +
    +    DrawPlots()
    +
    +    v=GetView3D()
    +    v.viewNormal=(0.507832, -0.301407, -0.807007)
    +    v.viewUp=(-0.831783, -0.415313, -0.368309)
    +    v.imageZoom = 2.
    +    SetView3D(v)
    +
    +    # test the serial volume render
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    SetPlotOptions(volAtts)
    +    Test("volume_01")
    +
    +    # test software volume render
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Composite
    +    SetPlotOptions(volAtts)
    +    Test("volume_02")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +    CloseDatabase(silo_data_path("globe.silo"))
    +
    +Samrai()
    +globe()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_volume_rect_multiDomain.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_volume_rect_multiDomain.html new file mode 100644 index 000000000..9a30de314 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_volume_rect_multiDomain.html @@ -0,0 +1,81 @@ + +Results for rendering/volume_rect_multiDomain.py + +

    Results of VisIt Regression Test - rendering/volume_rect_multiDomain

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    MultiDomain, Serial, NoResampling
    volume_200.000.00
    MultiDomain, Serial, ParallelResistribute
    volume_210.000.00
    MultiDomain, Serial, ParallelResistribute, ospray
    volume_220.000.00
    MultiDomain, Parallel, ParallelPerRank
    volume_230.000.00
    MultiDomain, Parallel, ParallelPerRank, ospray
    volume_240.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_volume_rect_multiDomain_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_volume_rect_multiDomain_py.html new file mode 100644 index 000000000..1bcab1148 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_volume_rect_multiDomain_py.html @@ -0,0 +1,95 @@ +rendering/volume_rect_multiDomain.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  volume_rect_multiDomain.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, multiple domains
    +#              plots     - volume
    +#              operators - none
    +#              selection - no
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       May 7, 2024
    +#
    +#  Notes:   Moved from volume.py due to interference between a 'Serial'
    +#           plot following a 'Composite' or 'Parallel' plot causing the
    +#           'Serial' plot to yield a blank image.
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def multiDomainRect():
    +    OpenDatabase(silo_data_path("multi_rect3d.silo"))
    +    AddPlot("Volume", "d")
    +    DrawPlots()
    +
    +    View3DAtts = GetView3D()
    +    View3DAtts.viewNormal = (0.628533, 0.511363, 0.58605)
    +    View3DAtts.focus = (0.5, 0.5, 0.5)
    +    View3DAtts.viewUp = (-0.169088, 0.825303, -0.538779)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 0.866025
    +    View3DAtts.nearPlane = -1.73205
    +    View3DAtts.farPlane = 1.73205
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 0
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0.5, 0.5, 0.5)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +    TestSection("MultiDomain, Serial, NoResampling")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.NoResampling
    +    volAtts.OSPRayEnabledFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volume_20")
    +
    +    TestSection("MultiDomain, Serial, ParallelResistribute")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.ParallelRedistribute
    +    volAtts.OSPRayEnabledFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volume_21")
    +
    +    TestSection("MultiDomain, Serial, ParallelResistribute, ospray")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.ParallelRedistribute
    +    volAtts.OSPRayEnabledFlag = 1
    +    SetPlotOptions(volAtts)
    +    Test("volume_22")
    +
    +    TestSection("MultiDomain, Parallel, ParallelPerRank")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Parallel
    +    volAtts.resampleType = volAtts.ParallelPerRank
    +    volAtts.OSPRayEnabledFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volume_23")
    +
    +    TestSection("MultiDomain, Parallel, ParallelPerRank, ospray")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Parallel
    +    volAtts.resampleType = volAtts.ParallelPerRank
    +    volAtts.OSPRayEnabledFlag = 1
    +    SetPlotOptions(volAtts)
    +    Test("volume_24")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +    CloseDatabase(silo_data_path("multi_rect3d.silo"))
    +
    +multiDomainRect()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_volume_rect_singleDomain.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_volume_rect_singleDomain.html new file mode 100644 index 000000000..2a969932a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_volume_rect_singleDomain.html @@ -0,0 +1,99 @@ + +Results for rendering/volume_rect_singleDomain.py + +

    Results of VisIt Regression Test - rendering/volume_rect_singleDomain

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Single Domain, Serial, NoResampling
    volume_100.000.00
    Single Domain, Serial, OnlyIfRequired
    volume_110.000.00
    Single Domain, Serial, OnlyIfRequired, ospray
    volume_120.000.00
    Single Domain, Serial, SingleDomain
    volume_130.000.00
    Single Domain, Serial, SingleDomain, ospray
    volume_140.000.00
    Single Domain, Parallel, ParallelRedistribute
    volume_150.000.00
    Single Domain, Parallel, ParallelRedistribute, ospray
    volume_160.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_volume_rect_singleDomain_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_volume_rect_singleDomain_py.html new file mode 100644 index 000000000..8c9771246 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_volume_rect_singleDomain_py.html @@ -0,0 +1,111 @@ +rendering/volume_rect_singleDomain.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  volume_rect_singleDomain.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, one domain 
    +#              plots     - volume 
    +#              operators - none
    +#              selection - no 
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       May 7, 2024
    +#
    +#  Notes:   Moved from volume.py due to interference between a 'Serial'
    +#           plot following a 'Composite' or 'Parallel' plot causing the
    +#           'Serial' plot to yield a blank image.
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def singleDomainRect():
    +    OpenDatabase(silo_data_path("rect3d.silo"))
    +    AddPlot("Volume", "d")
    +    DrawPlots()
    +
    +    View3DAtts = View3DAttributes()
    +    View3DAtts.viewNormal = (0.628533, 0.511363, 0.58605)
    +    View3DAtts.focus = (0.5, 0.5, 0.5)
    +    View3DAtts.viewUp = (-0.169088, 0.825303, -0.538779)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 0.866025
    +    View3DAtts.nearPlane = -1.73205
    +    View3DAtts.farPlane = 1.73205
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 0
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0.5, 0.5, 0.5)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +    TestSection("Single Domain, Serial, NoResampling")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.NoResampling
    +    volAtts.OSPRayEnabledFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volume_10")
    +
    +    TestSection("Single Domain, Serial, OnlyIfRequired")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.OnlyIfRequired
    +    volAtts.OSPRayEnabledFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volume_11")
    +
    +    TestSection("Single Domain, Serial, OnlyIfRequired, ospray")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.OnlyIfRequired
    +    volAtts.OSPRayEnabledFlag = 1
    +    SetPlotOptions(volAtts)
    +    Test("volume_12")
    +
    +    TestSection("Single Domain, Serial, SingleDomain")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.SingleDomain
    +    volAtts.OSPRayEnabledFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volume_13")
    +
    +    TestSection("Single Domain, Serial, SingleDomain, ospray")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.SingleDomain
    +    volAtts.OSPRayEnabledFlag = 1
    +    SetPlotOptions(volAtts)
    +    Test("volume_14")
    +
    +    TestSection("Single Domain, Parallel, ParallelRedistribute")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Parallel
    +    volAtts.resampleType = volAtts.ParallelRedistribute
    +    volAtts.OSPRayEnabledFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volume_15")
    +
    +    TestSection("Single Domain, Parallel, ParallelRedistribute, ospray")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Parallel
    +    volAtts.resampleType = volAtts.ParallelRedistribute
    +    volAtts.OSPRayEnabledFlag = 1
    +    SetPlotOptions(volAtts)
    +    Test("volume_16")
    +
    +    ResetView()
    +    DeleteAllPlots()
    +
    +    CloseDatabase(silo_data_path("rect3d.silo"))
    +
    +singleDomainRect()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_volume_ucd_multiDomain.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_volume_ucd_multiDomain.html new file mode 100644 index 000000000..eb5c030d0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_volume_ucd_multiDomain.html @@ -0,0 +1,79 @@ + +Results for rendering/volume_ucd_multiDomain.py + +

    Results of VisIt Regression Test - rendering/volume_ucd_multiDomain

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    UCD MultiDomain, Serial, NoResampling
    volume_300 modifications totalling 0 lines
    UCD MultiDomain, Serial, ParallelRedistribute
    volume_310.000.00
    UCD MultiDomain, Serial, ParallelRedistribute, ospray
    volume_320.000.00
    UCD MultiDomain, Parallel, ParallelPerRank
    volume_330.000.00
    UCD MultiDomain, Parallel, ParallelPerRank, ospray
    volume_340.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/rendering_volume_ucd_multiDomain_py.html b/2024-12-12-22:00/poodle_trunk_serial/rendering_volume_ucd_multiDomain_py.html new file mode 100644 index 000000000..56a207fe5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/rendering_volume_ucd_multiDomain_py.html @@ -0,0 +1,105 @@ +rendering/volume_ucd_multiDomain.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  volume_ucd_multiDomain.py
    +#
    +#  Tests:      mesh      - 3D unstructured, multiple domains
    +#              plots     - volume
    +#              operators - none
    +#              selection - no
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       May 7, 2024
    +#
    +#  Notes:   Moved from volume.py due to interference between a 'Serial'
    +#           plot following a 'Composite' or 'Parallel' plot causing the
    +#           'Serial' plot to yield a blank image.
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def ucd_multiDomain():
    +
    +    # Multiple domain checks plots 30-34
    +    OpenDatabase(silo_data_path("multi_ucd3d.silo"))
    +    AddPlot("Volume", "p")
    +    DrawPlots()
    +
    +    View3DAtts = GetView3D()
    +    View3DAtts.viewNormal = (0.409673, 0.375032, 0.831576)
    +    View3DAtts.focus = (0, 2.5, 10)
    +    View3DAtts.viewUp = (-0.208428, 0.925952, -0.314914)
    +    View3DAtts.viewAngle = 30
    +    View3DAtts.parallelScale = 11.4564
    +    View3DAtts.nearPlane = -22.9129
    +    View3DAtts.farPlane = 22.9129
    +    View3DAtts.imagePan = (0, 0)
    +    View3DAtts.imageZoom = 1
    +    View3DAtts.perspective = 0
    +    View3DAtts.eyeAngle = 2
    +    View3DAtts.centerOfRotationSet = 0
    +    View3DAtts.centerOfRotation = (0, 2.5, 10)
    +    View3DAtts.axis3DScaleFlag = 0
    +    View3DAtts.axis3DScales = (1, 1, 1)
    +    View3DAtts.shear = (0, 0, 1)
    +    View3DAtts.windowValid = 1
    +    SetView3D(View3DAtts)
    +
    +
    +
    +    TestSection("UCD MultiDomain, Serial, NoResampling")
    +    # This test is designed to fail, it produces no image that
    +    # can be compared via 'Test'.
    +    # Instead, grab the warning message.
    +    # Should this even be tested?
    +    try:
    +        volAtts = VolumeAttributes()
    +        volAtts.rendererType = volAtts.Serial
    +        volAtts.resampleType = volAtts.NoResampling
    +        volAtts.OSPRayEnabledFlag = 0
    +        SetPlotOptions(volAtts)
    +        m = GetLastMessage()[0]
    +        mtype = GetLastMessage()[1]
    +        # remove the first part that mentions host, since that can change
    +        w = m.split(":")[1]
    +        TestText("volume_30", mtype+w)
    +    except:
    +        TestText("volume_30", GetLastError())
    +
    +    TestSection("UCD MultiDomain, Serial, ParallelRedistribute")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.ParallelRedistribute
    +    volAtts.OSPRayEnabledFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volume_31")
    +
    +    TestSection("UCD MultiDomain, Serial, ParallelRedistribute, ospray")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Serial
    +    volAtts.resampleType = volAtts.ParallelRedistribute
    +    volAtts.OSPRayEnabledFlag = 1
    +    SetPlotOptions(volAtts)
    +    Test("volume_32")
    +
    +    TestSection("UCD MultiDomain, Parallel, ParallelPerRank")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Parallel
    +    volAtts.resampleType = volAtts.ParallelPerRank
    +    volAtts.OSPRayEnabledFlag = 0
    +    SetPlotOptions(volAtts)
    +    Test("volume_33")
    +
    +    TestSection("UCD MultiDomain, Parallel, ParallelPerRank, ospray")
    +    volAtts = VolumeAttributes()
    +    volAtts.rendererType = volAtts.Parallel
    +    volAtts.resampleType = volAtts.ParallelPerRank
    +    volAtts.OSPRayEnabledFlag = 1
    +    SetPlotOptions(volAtts)
    +    Test("volume_34")
    +
    +ucd_multiDomain()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/session_colortable.html b/2024-12-12-22:00/poodle_trunk_serial/session_colortable.html new file mode 100644 index 000000000..ac9a99459 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/session_colortable.html @@ -0,0 +1,42 @@ + +Results for session/colortable.py + +

    Results of VisIt Regression Test - session/colortable

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    colortable000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/session_colortable_py.html b/2024-12-12-22:00/poodle_trunk_serial/session_colortable_py.html new file mode 100644 index 000000000..02d608df8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/session_colortable_py.html @@ -0,0 +1,34 @@ +session/colortable.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  colortable.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - Pseudocolor, Mesh
    +#
    +#  Notes:      This test case uses a session file to create a plot that uses
    +#              a specific built-in color table. This makes sure that choice
    +#              of color tables is preserved with session files.
    +# 
    +# OUTDATED
    +#  Notes:      This test case uses a session file to create a plot that uses
    +#              a user defined color table. This makes sure that user defined
    +#              color tables can be used from session files. VisIt00004000.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Nov 13 17:10:35 PST 2003
    +#
    +#  Modifications:
    +#      Justin Privitera, Wed Aug  3 15:04:31 PDT 2022
    +#      Changed the session file and the purpose of the test to reflect that
    +#      we no longer save info about color tables to or read info about color 
    +#      tables from session files.
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +RestoreSessionWithDifferentSources(tests_path("session","colortable.session"), 0,
    +                                   silo_data_path("globe.silo"))
    +Test("colortable00")
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/session_correlationsession.html b/2024-12-12-22:00/poodle_trunk_serial/session_correlationsession.html new file mode 100644 index 000000000..76658f182 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/session_correlationsession.html @@ -0,0 +1,92 @@ + +Results for session/correlationsession.py + +

    Results of VisIt Regression Test - session/correlationsession

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    correlationsession000.000.00
    correlationsession010 modifications totalling 0 lines
    correlationsession020.000.00
    correlationsession030.000.00
    correlationsession040 modifications totalling 0 lines
    correlationsession050.000.00
    correlationsession060 modifications totalling 0 lines
    correlationsession070.000.00
    correlationsession080 modifications totalling 0 lines
    correlationsession090.000.00
    correlationsession100 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/session_correlationsession_py.html b/2024-12-12-22:00/poodle_trunk_serial/session_correlationsession_py.html new file mode 100644 index 000000000..8fd12097f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/session_correlationsession_py.html @@ -0,0 +1,95 @@ +session/correlationsession.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  correlationsession.py
    +#
    +#  Tests:      mesh      - 2D curvilinear, single domain
    +#              plots     - Boundary, FilledBoundary
    +#
    +#  Notes:      This test case makes sure that VisIt sessions that made heavy
    +#              use of database correlations can have that information
    +#              correctly captured in a session file.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Mar 25 11:32:09 PDT 2004
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +import string
    +
    +def GetTruncatedWindowInformationString():
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 5 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    for i in range(5):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    return s
    +
    +def TestLength(testname):
    +    tsLength = TimeSliderGetNStates()
    +    testString = "%s has %d states\n" % (GetActiveTimeSlider(), tsLength)
    +    testString = testString + GetTruncatedWindowInformationString()
    +    TestText(testname, testString)
    +
    +TurnOnAllAnnotations()
    +
    +ra1 = GetRenderingAttributes()
    +
    +#
    +# Restore the session file and make sure that it at the right time step
    +# and has the right time slider.
    +#
    +RestoreSessionWithDifferentSources(tests_path("session","correlationsession.session"), 0,
    +                                   [data_path("pdb_test_data","dbA00.pdb"),
    +                                    data_path("pdb_test_data","dbB00.pdb"),
    +                                    data_path("pdb_test_data","dbC00.pdb")])
    +
    +# Restore the scalable rendering mode for the tests.
    +ra2 = GetRenderingAttributes()
    +ra2.scalableActivationMode = ra1.scalableActivationMode
    +ra2.scalableAutoThreshold = ra1.scalableActivationMode
    +SetRenderingAttributes(ra2)
    +
    +Test("correlationsession00")
    +TestLength("correlationsession01")
    +
    +#
    +# Make sure we have the right active source by making a new plot. The active
    +# source should be dbA00.pdb
    +#
    +AddPlot("Boundary", "material(mesh)")
    +b = BoundaryAttributes()
    +b.colorType = b.ColorBySingleColor
    +b.singleColor = (255,255,0,255)
    +b.lineWidth = 2
    +SetPlotOptions(b)
    +DrawPlots()
    +Test("correlationsession02")
    +
    +#
    +# Make sure that we can advance to the end of the time slider. Save some
    +# test images along the way though.
    +#
    +timeSliders = GetTimeSliders()
    +currentState = timeSliders[GetActiveTimeSlider()]
    +endState = TimeSliderGetNStates() - 1
    +nSteps = 4
    +start = currentState + int(float(endState - currentState) / float(nSteps))
    +testIndex = 3
    +for i in range(nSteps):
    +    t = float(i) / float(nSteps - 1)
    +    omt = 1. - t
    +    state = int(omt * float(start) + t * float(endState))
    +    SetTimeSliderState(state)
    +    Test("correlationsession%02d" % testIndex)
    +    TestLength("correlationsession%02d" % (testIndex + 1))
    +    testIndex = testIndex + 2
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/session_legendproperties.html b/2024-12-12-22:00/poodle_trunk_serial/session_legendproperties.html new file mode 100644 index 000000000..2f13da859 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/session_legendproperties.html @@ -0,0 +1,48 @@ + +Results for session/legendproperties.py + +

    Results of VisIt Regression Test - session/legendproperties

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    legendproperties000.000.00
    legendproperties010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/session_legendproperties_py.html b/2024-12-12-22:00/poodle_trunk_serial/session_legendproperties_py.html new file mode 100644 index 000000000..06c6352d5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/session_legendproperties_py.html @@ -0,0 +1,48 @@ +session/legendproperties.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  legendproperties.py
    +#
    +#  Notes:      This test case sets legend properties and makes sure that they
    +#              can be accessed via uses a session file to create a plot that uses
    +#              a user defined color table. This makes sure that user defined
    +#              color tables can be used from session files. VisIt00004000.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Mon Mar 26 10:48:25 PDT 2007
    +#
    +#  Modifications:
    +#    Brad Whitlock, Thu Jul 22 11:03:42 PDT 2010
    +#    Force some save window settings so testing routines don't mess up in
    +#    the scalable,parallel,icet mode. VisIt itself, outside of testing doesn't
    +#    have problems as far as I can tell so we're working around "issues" with
    +#    our testing routines.
    +#    
    +# ----------------------------------------------------------------------------
    +
    +# Get the save window atts and force a few settings.
    +sa = GetSaveWindowAttributes()
    +sa.screenCapture = 0
    +sa.width,sa.height = 300,300
    +
    +TurnOnAllAnnotations()
    +RestoreSessionWithDifferentSources(tests_path("session","legendproperties.session"), 0,
    +                                   silo_data_path("bigsil.silo"))
    +
    +
    +Test("legendproperties00", altSWA=sa)
    +
    +# Now that we've restored the session, see if we can get the legend objects
    +# and change them.
    +subsetLegend = GetAnnotationObject(GetPlotList().GetPlots(0).plotName)
    +pcLegend = GetAnnotationObject(GetPlotList().GetPlots(1).plotName)
    +
    +subsetLegend.drawBoundingBox = 0
    +pcLegend.drawBoundingBox = 0
    +Test("legendproperties01", altSWA=sa)
    +
    +# Make sure that the plots are deleted
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/session_rect3d-contour.html b/2024-12-12-22:00/poodle_trunk_serial/session_rect3d-contour.html new file mode 100644 index 000000000..a5aecb344 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/session_rect3d-contour.html @@ -0,0 +1,42 @@ + +Results for session/rect3d-contour.py + +

    Results of VisIt Regression Test - session/rect3d-contour

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    rect3d-contour000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/session_rect3d-contour_py.html b/2024-12-12-22:00/poodle_trunk_serial/session_rect3d-contour_py.html new file mode 100644 index 000000000..d452d3b87 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/session_rect3d-contour_py.html @@ -0,0 +1,25 @@ +session/rect3d-contour.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  rect3d-contour.py
    +#
    +#  Tests:      mesh      - 3D rectilinear, single domain
    +#              plots     - Contour, with transparent contours
    +#
    +#  Notes:      This test case uses a session file to ensure that the Contour
    +#              plot can be restored from a session file and have its correct
    +#              colors and opacities, from  a bug reported in VisIt00004115.
    +#
    +#  Programmer: Kathleen Bonnell 
    +#  Date:       January 13, 2005 
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +RestoreSessionWithDifferentSources(tests_path("session","rect3d-contour.session"), 0,
    +                                   silo_data_path("rect3d.silo"))
    +Test("rect3d-contour00")
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/session_restorewithsources.html b/2024-12-12-22:00/poodle_trunk_serial/session_restorewithsources.html new file mode 100644 index 000000000..776a46b8a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/session_restorewithsources.html @@ -0,0 +1,48 @@ + +Results for session/restorewithsources.py + +

    Results of VisIt Regression Test - session/restorewithsources

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    restorewithsources000.000.00
    restorewithsources010.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/session_restorewithsources_py.html b/2024-12-12-22:00/poodle_trunk_serial/session_restorewithsources_py.html new file mode 100644 index 000000000..71d9af679 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/session_restorewithsources_py.html @@ -0,0 +1,42 @@ +session/restorewithsources.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  restorewithsources.py
    +#
    +#  Notes:      This test case tests restoring sessions with different sources.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Mar 28 10:36:04 PDT 2007
    +#
    +#  Modifications:
    +#
    +#    Mark C. Miller, Wed Jan 20 07:37:11 PST 2010
    +#    Added ability to swtich between Silo's HDF5 and PDB data.
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +
    +tpath = tests_path("session","restorewithsources.session")
    +dpath = silo_data_path("rect3d.silo")
    +print(repr(tpath))
    +print(repr(silo_data_path("rect3d.silo") ))
    +
    +RestoreSessionWithDifferentSources(tests_path("session","restorewithsources.session"),
    +                                   0,
    +                                   silo_data_path("rect3d.silo") )
    +
    +
    +Test("restorewithsources00")
    +
    +# Now, try restoring the session with a different data file. Note that since
    +# there's just one source, we pass a string instead of a tuple of strings.
    +RestoreSessionWithDifferentSources(tests_path("session","restorewithsources.session"),
    +                                   0,
    +                                   silo_data_path("rect2d.silo") )
    +Test("restorewithsources01")
    +
    +# Make sure that the plots are deleted
    +DeleteAllPlots()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/session_selection.html b/2024-12-12-22:00/poodle_trunk_serial/session_selection.html new file mode 100644 index 000000000..74c976ce7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/session_selection.html @@ -0,0 +1,42 @@ + +Results for session/selection.py + +

    Results of VisIt Regression Test - session/selection

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    selection_000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/session_selection_py.html b/2024-12-12-22:00/poodle_trunk_serial/session_selection_py.html new file mode 100644 index 000000000..99188fdb1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/session_selection_py.html @@ -0,0 +1,29 @@ +session/selection.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  selection.py
    +#
    +#  Tests:      mesh      - 2D curvilinear, multiple domain
    +#              plots     - FilledBoundary, Mesh, Pseudocolor
    +#
    +#  Notes:      This test case makes sure that VisIt can read session files
    +#              that have subset selection. Session files from before 1.3 and
    +#              from version 1.3 are tested.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Mar 25 08:34:37 PDT 2004
    +#
    +#  Modifications:
    +#    Brad Whitlock, Tue Jan 6 09:17:15 PDT 2009
    +#    I removed support for pre-1.3 session files.
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +RestoreSessionWithDifferentSources(tests_path("session","selection.session"), 0,
    +                                   silo_data_path("multi_curv2d.silo"))
    +
    +Test("selection_00")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/session_sessionexpression.html b/2024-12-12-22:00/poodle_trunk_serial/session_sessionexpression.html new file mode 100644 index 000000000..20dba7ef0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/session_sessionexpression.html @@ -0,0 +1,42 @@ + +Results for session/sessionexpression.py + +

    Results of VisIt Regression Test - session/sessionexpression

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    sessionexpression000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/session_sessionexpression_py.html b/2024-12-12-22:00/poodle_trunk_serial/session_sessionexpression_py.html new file mode 100644 index 000000000..acb65bea5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/session_sessionexpression_py.html @@ -0,0 +1,27 @@ +session/sessionexpression.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  sessionexpression.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - Pseudocolor
    +#
    +#  Notes:      This test case creates a plot of a user-defined expression
    +#              using a session file to ensure that session files containing
    +#              plots of user-defined expressions work. This test case tests
    +#              for a bug reported in VisIt00006070.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Tue Apr 5 14:26:56 PST 2005
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +RestoreSessionWithDifferentSources(tests_path("session","sessionexpression.session"), 0,
    +                                   ( silo_data_path("wave.visit"),
    +                                     silo_data_path("globe.silo")))
    +Test("sessionexpression00")
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/session_sessionview.html b/2024-12-12-22:00/poodle_trunk_serial/session_sessionview.html new file mode 100644 index 000000000..953756951 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/session_sessionview.html @@ -0,0 +1,66 @@ + +Results for session/sessionview.py + +

    Results of VisIt Regression Test - session/sessionview

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    sessionview000.000.00
    sessionview010.000.00
    sessionview020.000.00
    sessionview030.000.00
    sessionview040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/session_sessionview_py.html b/2024-12-12-22:00/poodle_trunk_serial/session_sessionview_py.html new file mode 100644 index 000000000..c252d5870 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/session_sessionview_py.html @@ -0,0 +1,55 @@ +session/sessionview.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  sessionview.py
    +#
    +#  Tests:      mesh      - 3D unstructured, 3D rectilinear, single domain
    +#              plots     - Pseudocolor, Mesh
    +#              operators - Reflect
    +#
    +#  Notes:      This test case makes sure that we can switch back and forth
    +#              between session files that use expressions.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Dec 31 15:21:23 PST 2003
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +
    +# Open the first session file
    +RestoreSessionWithDifferentSources(tests_path("session","sessionview1.session"), 0,
    +                                   silo_data_path("globe.silo"))
    +
    +Test("sessionview00")
    +
    +# Open the second session file
    +RestoreSession("tests/session/sessionview2.session", 0)
    +RestoreSessionWithDifferentSources(tests_path("session","sessionview2.session"), 0,
    +                                   data_path("ANALYZE_test_data",
    +                                             "s01_anatomy_stripped.hdr"))
    +
    +
    +Test("sessionview01")
    +
    +# Open the first session file again. This used to crash VisIt
    +RestoreSessionWithDifferentSources(tests_path("session","sessionview1.session"), 0,
    +                                   silo_data_path("globe.silo"))
    +
    +Test("sessionview02")
    +
    +# Open the second session file again.
    +RestoreSessionWithDifferentSources(tests_path("session","sessionview2.session"), 0,
    +                                   data_path("ANALYZE_test_data",
    +                                             "s01_anatomy_stripped.hdr"))
    +Test("sessionview03")
    +
    +# Open the first session file
    +RestoreSessionWithDifferentSources(tests_path("session","sessionview1.session"), 0,
    +                                   silo_data_path("globe.silo"))
    +Test("sessionview04")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/session_simplekeyframe.html b/2024-12-12-22:00/poodle_trunk_serial/session_simplekeyframe.html new file mode 100644 index 000000000..816679ae5 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/session_simplekeyframe.html @@ -0,0 +1,130 @@ + +Results for session/simplekeyframe.py + +

    Results of VisIt Regression Test - session/simplekeyframe

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Testing keyframes from a restored session file.
    simplekeyframe_setup0 modifications totalling 0 lines
    simplekeyframe000.000.00
    simplekeyframe010.000.00
    simplekeyframe020.000.00
    simplekeyframe030.000.00
    simplekeyframe040.000.00
    simplekeyframe050.000.00
    simplekeyframe060.000.00
    simplekeyframe070.000.00
    simplekeyframe080.000.00
    simplekeyframe090.000.00
    Testing keyframes from a cloned window.
    viewkeyframe000.000.00
    viewkeyframe010.000.00
    viewkeyframe020.000.00
    viewkeyframe030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/session_simplekeyframe_py.html b/2024-12-12-22:00/poodle_trunk_serial/session_simplekeyframe_py.html new file mode 100644 index 000000000..f1796a8f8 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/session_simplekeyframe_py.html @@ -0,0 +1,78 @@ +session/simplekeyframe.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  simplekeyframe.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - Pseudocolor, Mesh
    +#              operators - Clip
    +#
    +#  Notes:      This test case uses a session file to ensure that keyframe
    +#              animations that modify the plot attributes and the view can
    +#              be loaded from a session file.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Oct 22 15:14:20 PST 2003
    +#
    +#  Modifications:
    +#    Brad Whitlock, Tue Dec 30 17:09:10 PST 2003
    +#    Added test cases to make sure that view keyframes are copied to windows
    +#    created via window cloning.
    +#
    +#    Brad Whitlock, Wed Apr 7 14:19:31 PST 2004
    +#    Changed the test case so the number of frames is verified first thing.
    +#
    +# ----------------------------------------------------------------------------
    +
    +def GetTruncatedWindowInformationString():
    +    # Get the window information and convert it to a string.
    +    s = str(GetWindowInformation())
    +    # Only use the first 5 or so lines from the string.
    +    lines = s.split("\n")
    +    s = ""
    +    # ignore the active source
    +    for i in range(1,5):
    +        if(i < len(lines)):
    +            s = s + lines[i]
    +            s = s + "\n"
    +    return s
    +
    +def TestSetup(testName):
    +    s = GetTruncatedWindowInformationString()
    +    s = s + str(GetKeyframeAttributes())
    +    TestText(testName, s)
    +
    +TurnOnAllAnnotations()
    +
    +# Set up the visualization by restoring a session file.
    +RestoreSessionWithDifferentSources(tests_path("session","simplekeyframe.session"), 0,
    +                                   silo_data_path("globe.silo"))
    +
    +TestSection("Testing keyframes from a restored session file.")
    +
    +# Make sure that the session file created the right number of keyframes.
    +TestSetup("simplekeyframe_setup")
    +
    +# Save a test frame for all of the frames in the animation.
    +for i in range(TimeSliderGetNStates()):
    +    SetTimeSliderState(i)
    +    Test("simplekeyframe%02d" % i)
    +
    +# 
    +# Clone the window and make sure that the keyframes were copied.
    +#
    +TestSection("Testing keyframes from a cloned window.")
    +SetTimeSliderState(0)
    +CloneWindow()
    +SetActiveWindow(2)
    +DrawPlots()
    +Test("viewkeyframe00")
    +SetTimeSliderState(int(TimeSliderGetNStates() * 0.3333))
    +Test("viewkeyframe01")
    +SetTimeSliderState(int(TimeSliderGetNStates() * 0.6666))
    +Test("viewkeyframe02")
    +SetTimeSliderState(TimeSliderGetNStates() - 1)
    +Test("viewkeyframe03")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/session_textannot.html b/2024-12-12-22:00/poodle_trunk_serial/session_textannot.html new file mode 100644 index 000000000..7b180225f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/session_textannot.html @@ -0,0 +1,66 @@ + +Results for session/textannot.py + +

    Results of VisIt Regression Test - session/textannot

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    textannot000.000.00
    textannot010.000.00
    textannot020.000.00
    textannot030.000.00
    textannot040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/session_textannot_py.html b/2024-12-12-22:00/poodle_trunk_serial/session_textannot_py.html new file mode 100644 index 000000000..a0b989a70 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/session_textannot_py.html @@ -0,0 +1,38 @@ +session/textannot.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  textanot.py
    +#
    +#  Tests:      mesh      - 2D curvilinear, single domain
    +#              plots     - Pseudocolor
    +#
    +#  Notes:      This test case uses a session file to set up a plot and create
    +#              several text annotations and a time slider annotation.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Dec 4 14:17:46 PST 2003
    +#
    +#  Modifications:
    +#    Brad Whitlock, Wed Mar 9 09:15:30 PDT 2005
    +#    Removed deprecated functions.
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +
    +# Set up the visualization by restoring a session file.
    +RestoreSessionWithDifferentSources(tests_path("session","textannot.session"), 0,
    +                                   data_path("pdb_test_data","allinone00.pdb"))
    +
    +# Save a test frame for some of the frames in the animation so we can see
    +# if the time slider is working.
    +testindex = 0
    +ntests = 5
    +for i in range(ntests):
    +    frame = int(float(i) / float(ntests - 1) * (TimeSliderGetNStates() - 1))
    +    SetTimeSliderState(frame)
    +    Test("textannot%02d" % testindex)
    +    testindex = testindex + 1
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/session_view3d.html b/2024-12-12-22:00/poodle_trunk_serial/session_view3d.html new file mode 100644 index 000000000..98d791137 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/session_view3d.html @@ -0,0 +1,42 @@ + +Results for session/view3d.py + +

    Results of VisIt Regression Test - session/view3d

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    view3d000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/session_view3d_py.html b/2024-12-12-22:00/poodle_trunk_serial/session_view3d_py.html new file mode 100644 index 000000000..3d8bf65a4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/session_view3d_py.html @@ -0,0 +1,29 @@ +session/view3d.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  view3d.py
    +#
    +#  Tests:      mesh      - 3D unstructured, single domain
    +#              plots     - Pseudocolor
    +#
    +#  Defect ID:  visit00004724
    +#
    +#  Notes:      This test case makes sure that all the 3d view parameters
    +#              are properly restored from a session.  In particular the
    +#              focus, parallelScale, nearPlane and farPlane.
    +#
    +#  Programmer: Eric Brugger
    +#  Date:       Thu Apr 22 15:05:59 PDT 2004
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +
    +# Open the session file
    +RestoreSessionWithDifferentSources(tests_path("session","view3d.session"), 0,
    +                                   silo_data_path("globe.silo"))
    +
    +Test("view3d00")
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/session_wavecontour.html b/2024-12-12-22:00/poodle_trunk_serial/session_wavecontour.html new file mode 100644 index 000000000..99bc433fd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/session_wavecontour.html @@ -0,0 +1,42 @@ + +Results for session/wavecontour.py + +

    Results of VisIt Regression Test - session/wavecontour

    + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    wavecontour000.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/session_wavecontour_py.html b/2024-12-12-22:00/poodle_trunk_serial/session_wavecontour_py.html new file mode 100644 index 000000000..7d631acdb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/session_wavecontour_py.html @@ -0,0 +1,29 @@ +session/wavecontour.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  wavecontour.py
    +#
    +#  Tests:      mesh      - 3D curvilinear, single domain
    +#              plots     - Contour, Mesh
    +#              operators - Reflect
    +#
    +#  Notes:      This test case uses a session file to ensure that the Contour
    +#              plot can be restored from a session file and have its correct
    +#              colors and number of contour levels. This test case tests
    +#              for a bug reported in VisIt00003883.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Oct 22 15:14:20 PST 2003
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +TurnOnAllAnnotations()
    +RestoreSessionWithDifferentSources(tests_path("session","wavecontour.session"), 0,
    +                                   silo_data_path("wave.visit"))
    +# tslider state is lost w/ restore with sources
    +TimeSliderSetState(28)
    +Test("wavecontour00")
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_amr.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_amr.html new file mode 100644 index 000000000..a7486c85e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_amr.html @@ -0,0 +1,68 @@ + +Results for simulation/amr.py + +

    Results of VisIt Regression Test - simulation/amr

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    amr000 modifications totalling 0 lines
    amr010 modifications totalling 0 lines
    amr020.000.00
    amr030.000.00
    amr040.000.00
    amr050.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_amr_py.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_amr_py.html new file mode 100644 index 000000000..214bcf792 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_amr_py.html @@ -0,0 +1,58 @@ +simulation/amr.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  amr.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 2D amr mesh
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 17, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("amr", "amr.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("amr00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("amr01", sim.metadata())
    +
    +    AddPlot("Mesh", "amr")
    +    AddPlot("Subset", "Levels")
    +    DrawPlots()
    +    Test("amr02")
    +
    +    SetActivePlots(1)
    +    ChangeActivePlotsVar("Patches")
    +    Test("amr03")
    +
    +    SetActivePlots(0)
    +    DeleteActivePlots()
    +    silr = SILRestriction()
    +    silr.TurnOffSet(8)
    +    SetPlotSILRestriction(silr, 0)
    +    DrawPlots()
    +    Test("amr04")
    +
    +    silr.TurnOnAll()
    +    silr.TurnOffSet(6)
    +    silr.TurnOffSet(8)
    +    SetPlotSILRestriction(silr, 0)
    +    DrawPlots()
    +    Test("amr05")
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_aresamr.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_aresamr.html new file mode 100644 index 000000000..84e440bd6 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_aresamr.html @@ -0,0 +1,62 @@ + +Results for simulation/aresamr.py + +

    Results of VisIt Regression Test - simulation/aresamr

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    aresamr000 modifications totalling 0 lines
    aresamr010 modifications totalling 0 lines
    aresamr020.000.00
    aresamr030.000.00
    aresamr040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_aresamr_py.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_aresamr_py.html new file mode 100644 index 000000000..3926f08b2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_aresamr_py.html @@ -0,0 +1,48 @@ +simulation/aresamr.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  aresamr.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 2D aresamr mesh
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 17, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("aresamr", "aresamr.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("aresamr00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("aresamr01", sim.metadata())
    +
    +    AddPlot("Pseudocolor", "zonal_scalar")
    +    DrawPlots()
    +    Test("aresamr02")
    +
    +    silr = SILRestriction()
    +    silr.TurnOnAll()
    +    silr.TurnOffSet(4)
    +    SetPlotSILRestriction(silr, 1)
    +    Test("aresamr03")
    +    silr.TurnOnAll()
    +    silr.TurnOffSet(3)
    +    SetPlotSILRestriction(silr, 1)
    +    Test("aresamr04")
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_batch.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_batch.html new file mode 100644 index 000000000..327144726 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_batch.html @@ -0,0 +1,426 @@ + +Results for simulation/batch.py + +

    Results of VisIt Regression Test - simulation/batch

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Slice Export with 3 vertices
    batch_0_000.000.00
    batch_0_010.000.00
    batch_0_020.000.00
    batch_0_030.000.00
    batch_0_040.000.00
    batch_0_050.000.00
    Slice Export with Origin+Normal
    batch_1_000.000.00
    batch_1_010.000.00
    batch_1_020.000.00
    batch_1_030.000.00
    batch_1_040.000.00
    batch_1_050.000.00
    Slice Export of X
    batch_2_000.000.00
    batch_2_010.000.00
    batch_2_020.000.00
    batch_2_030.000.00
    batch_2_040.000.00
    batch_2_050.000.00
    Slice Export of Y
    batch_3_000.000.00
    batch_3_010.000.00
    batch_3_020.000.00
    batch_3_030.000.00
    batch_3_040.000.00
    batch_3_050.000.00
    Slice Export of Z
    batch_4_000.000.00
    batch_4_010.000.00
    batch_4_020.000.00
    batch_4_030.000.00
    batch_4_040.000.00
    batch_4_050.000.00
    Iso Export
    batch_5_000.000.00
    batch_5_010.000.00
    batch_5_020.000.00
    batch_5_030.000.00
    batch_5_040.000.00
    batch_5_050.000.00
    batch_5_060.000.00
    batch_5_070.000.00
    batch_5_080.000.00
    batch_5_090.000.00
    batch_5_100.000.00
    batch_5_110.000.00
    batch_5_120.000.00
    batch_5_130.000.00
    batch_5_140.000.00
    batch_5_150.000.00
    batch_5_160.000.00
    batch_5_170.000.00
    batch_5_180.000.00
    batch_5_190.000.00
    Image Rendering
    batch_6_000.000.00
    batch_6_010.000.00
    batch_6_020.000.00
    batch_6_030.000.00
    batch_6_040.000.00
    Streamline Export
    batch_7_000.000.00
    batch_7_010.000.00
    batch_7_020.000.00
    batch_7_030.000.00
    batch_7_040.000.00
    batch_7_050.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_batch_py.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_batch_py.html new file mode 100644 index 000000000..377175f20 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_batch_py.html @@ -0,0 +1,393 @@ +simulation/batch.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  batch.py
    +#
    +#  Tests:      libsim - batch mode.
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 18, 2014 
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def test0():
    +    TestSection("Slice Export with 3 vertices")
    +    db = "slice3v_*.vtk database"
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "dom")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (-0.0556426, 0.707794, 0.704224)
    +    v.focus = (5, 1.53846, 5)
    +    v.viewUp = (0.048696, 0.706401, -0.706134)
    +    v.viewAngle = 30
    +    v.parallelScale = 7.12383
    +    v.nearPlane = -14.2477
    +    v.farPlane = 14.2477
    +    v.imagePan = (-0.021177, 0.0636043)
    +    v.imageZoom = 1.09666
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (5, 1.53846, 5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +    Test("batch_0_00")
    +
    +    ChangeActivePlotsVar("xc")
    +    Test("batch_0_01")
    +    ChangeActivePlotsVar("radius")
    +    Test("batch_0_02")
    +    ChangeActivePlotsVar("q")
    +    Test("batch_0_03")
    +
    +    TimeSliderSetState(2)
    +    Test("batch_0_04")
    +    TimeSliderSetState(4)
    +    Test("batch_0_05")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test1():
    +    TestSection("Slice Export with Origin+Normal")
    +    db = "sliceON_*.vtk database"
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "dom")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, 1)
    +    v.focus = (5, 5, 5)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 8.66025
    +    v.nearPlane = -17.3205
    +    v.farPlane = 17.3205
    +    v.imagePan = (-0.00113806, 0.0530002)
    +    v.imageZoom = 1.33438
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (5, 5, 5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +    Test("batch_1_00")
    +
    +    ChangeActivePlotsVar("xc")
    +    Test("batch_1_01")
    +    ChangeActivePlotsVar("radius")
    +    Test("batch_1_02")
    +    ChangeActivePlotsVar("q")
    +    Test("batch_1_03")
    +
    +    TimeSliderSetState(2)
    +    Test("batch_1_04")
    +    TimeSliderSetState(4)
    +    Test("batch_1_05")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test2():
    +    TestSection("Slice Export of X")
    +    db = "sliceX_*.vtk database"
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "dom")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (1, 0, 6.12323e-17)
    +    v.focus = (0.5, 5, 5)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 7.07107
    +    v.nearPlane = -14.1421
    +    v.farPlane = 14.1421
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1.27205
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 5, 5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +    Test("batch_2_00")
    +
    +    ChangeActivePlotsVar("xc")
    +    Test("batch_2_01")
    +    ChangeActivePlotsVar("radius")
    +    Test("batch_2_02")
    +    ChangeActivePlotsVar("q")
    +    Test("batch_2_03")
    +
    +    ChangeActivePlotsVar("radius")
    +    TimeSliderSetState(2)
    +    Test("batch_2_04")
    +    TimeSliderSetState(4)
    +    Test("batch_2_05")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test3():
    +    TestSection("Slice Export of Y")
    +    db = "sliceY_*.vtk database"
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "dom")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0, 1, 6.12323e-17)
    +    v.focus = (5, 2.5, 5)
    +    v.viewUp = (0, 6.12323e-17, -1)
    +    v.viewAngle = 30
    +    v.parallelScale = 7.07107
    +    v.nearPlane = -14.1421
    +    v.farPlane = 14.1421
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1.32859
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (5, 2.5, 5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +    Test("batch_3_00")
    +
    +    ChangeActivePlotsVar("xc")
    +    Test("batch_3_01")
    +    ChangeActivePlotsVar("radius")
    +    Test("batch_3_02")
    +    ChangeActivePlotsVar("q")
    +    Test("batch_3_03")
    +
    +    TimeSliderSetState(2)
    +    Test("batch_3_04")
    +    TimeSliderSetState(4)
    +    Test("batch_3_05")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test4():
    +    TestSection("Slice Export of Z")
    +    db = "sliceZ_*.vtk database"
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "dom")
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, 1)
    +    v.focus = (5, 5, 5)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 7.07107
    +    v.nearPlane = -14.1421
    +    v.farPlane = 14.1421
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1.2647
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (5, 5, 5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +    Test("batch_4_00")
    +
    +    ChangeActivePlotsVar("xc")
    +    Test("batch_4_01")
    +    ChangeActivePlotsVar("radius")
    +    Test("batch_4_02")
    +    ChangeActivePlotsVar("q")
    +    Test("batch_4_03")
    +
    +    TimeSliderSetState(2)
    +    Test("batch_4_04")
    +    TimeSliderSetState(4)
    +    Test("batch_4_05")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test5():
    +    TestSection("Iso Export")
    +    dbs = ("iso_0000.visit","iso_0001.visit","iso_0002.visit","iso_0003.visit","iso_0004.visit")
    +    index = 0
    +    for db in dbs:
    +        OpenDatabase(db)
    +        AddPlot("Pseudocolor", "dom")
    +        DrawPlots()
    +
    +        v = GetView3D()
    +        v.viewNormal = (-0.433402, 0.101212, 0.895499)
    +        v.focus = (5, 5, 5)
    +        v.viewUp = (0.0882645, 0.993663, -0.0695889)
    +        v.viewAngle = 30
    +        v.parallelScale = 8.66025
    +        v.nearPlane = -17.3205
    +        v.farPlane = 17.3205
    +        v.imagePan = (0.00394299, 0.0327202)
    +        v.imageZoom = 1.34799
    +        v.perspective = 1
    +        v.eyeAngle = 2
    +        v.centerOfRotationSet = 0
    +        v.centerOfRotation = (5, 5, 5)
    +        v.axis3DScaleFlag = 0
    +        v.axis3DScales = (1, 1, 1)
    +        v.shear = (0, 0, 1)
    +        v.windowValid = 1
    +        SetView3D(v)
    +
    +        Test("batch_5_%02d" % index)
    +
    +        ChangeActivePlotsVar("xc")
    +        Test("batch_5_%02d" % (index+1))
    +        ChangeActivePlotsVar("radius")
    +        Test("batch_5_%02d" % (index+2))
    +        ChangeActivePlotsVar("q")
    +        Test("batch_5_%02d" % (index+3))
    +        index = index + 4
    +
    +        DeleteAllPlots()
    +        CloseDatabase(db)
    +
    +def test6():
    +    TestSection("Image Rendering")
    +    db = "batch*.png database"
    +    OpenDatabase(db)
    +    AddPlot("Truecolor", "color")
    +    AddOperator("Box")
    +    box = BoxAttributes()
    +    box.amount = box.Some  # Some, All
    +    box.minx = 230
    +    box.maxx = 1000
    +    box.miny = 45
    +    box.maxy = 1000
    +    box.minz = 0
    +    box.maxz = 1
    +    box.inverse = 0
    +    SetOperatorOptions(box)
    +    DrawPlots()
    +
    +    v = GetView2D()
    +    v.windowCoords = (0, 960, 0, 540)
    +    v.viewportCoords = (0.01, 0.99, 0.22, 0.99)
    +    v.fullFrameActivationMode = v.Auto  # On, Off, Auto
    +    v.fullFrameAutoThreshold = 100
    +    v.xScale = v.LINEAR  # LINEAR, LOG
    +    v.yScale = v.LINEAR  # LINEAR, LOG
    +    v.windowValid = 1
    +    SetView2D(v)
    +
    +    Test("batch_6_00")
    +    TimeSliderSetState(1)
    +    Test("batch_6_01")
    +    TimeSliderSetState(2)
    +    Test("batch_6_02")
    +    TimeSliderSetState(3)
    +    Test("batch_6_03")
    +    TimeSliderSetState(4)
    +    Test("batch_6_04")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def test7():
    +    TestSection("Streamline Export")
    +    db = "streamline_*.vtk database"
    +    OpenDatabase(db)
    +    AddPlot("Pseudocolor", "colorVar")
    +    pc = PseudocolorAttributes(1)
    +    pc.lineWidth = 3
    +    SetPlotOptions(pc)
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (0, 0, 1)
    +    v.focus = (5.2835, 5.2835, 5.2562)
    +    v.viewUp = (0, 1, 0)
    +    v.viewAngle = 30
    +    v.parallelScale = 8.26953
    +    v.nearPlane = -16.5391
    +    v.farPlane = 16.5391
    +    v.imagePan = (0, 0)
    +    v.imageZoom = 1.33131
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (5.2835, 5.2835, 5.2562)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +    Test("batch_7_00")
    +
    +    ChangeActivePlotsVar("xc")
    +    Test("batch_7_01")
    +    ChangeActivePlotsVar("radius")
    +    Test("batch_7_02")
    +    ChangeActivePlotsVar("q")
    +    Test("batch_7_03")
    +
    +    TimeSliderSetState(2)
    +    Test("batch_7_04")
    +    TimeSliderSetState(4)
    +    Test("batch_7_05")
    +
    +    DeleteAllPlots()
    +    CloseDatabase(db)
    +
    +def main():
    +    # Create our simulation object.
    +    sim = TestBatchSimulation("batch")
    +    sim.addargument("-format")
    +    sim.addargument("VTK_1.0")
    +    sim.addargument("-maxcycles")
    +    sim.addargument("5")
    +    sim.addargument("-render")
    +    sim.addargument("1")
    +    sim.addargument("-export")
    +    sim.addargument("1")
    +
    +    # Test that we can start the simulation.
    +    sim.startsim()
    +    # This will wait for the simulation to complete.
    +    sim.endsim()
    +
    +    # Test the simulation outputs.
    +    test0()
    +    test1()
    +    test2()
    +    test3()
    +    test4()
    +    test5()
    +    test6()
    +    test7()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_csg.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_csg.html new file mode 100644 index 000000000..87c62236d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_csg.html @@ -0,0 +1,114 @@ + +Results for simulation/csg.py + +

    Results of VisIt Regression Test - simulation/csg

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    csg000 modifications totalling 0 lines
    csg010 modifications totalling 0 lines
    csg020.000.00
    csg030.000.00
    csg040.000.00
    csg050.000.00
    csg060.000.00
    csg070.000.00
    csg080.000.00
    csg090.000.00
    csg100.000.00
    csg110.000.00
    csg120.000.00
    csg130 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_csg_py.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_csg_py.html new file mode 100644 index 000000000..2bb50295f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_csg_py.html @@ -0,0 +1,64 @@ +simulation/csg.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  csg.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              csg   - 3D csg mesh .
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 27, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("csg", "csg.sim2")
    +sim.addargument("-echo")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("csg00", sim)
    +
    +def simcommand(sim, com):
    +    sim.consolecommand(com)
    +    # Read from stderr to look for the echoed command. Sync.
    +    keepGoing = True
    +    while keepGoing:
    +        buf = sim.p.stderr.readline()
    +        print(buf)
    +        if "Command '%s'"%com in buf:
    +            keepGoing = False
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("csg01", sim.metadata())
    +
    +    AddPlot("Subset", "Regions")
    +    s = SubsetAttributes()
    +    s.smoothingLevel = 2
    +    SetPlotOptions(s)
    +    DrawPlots()
    +    Test("csg02")
    +
    +    times = "Times:\n"
    +    SetQueryOutputToValue();
    +    times = times + str(Query("Time")) + "\n"
    +    for i in range(10):
    +        simcommand(sim, 'step')
    +        simcommand(sim, 'step')
    +        simcommand(sim, 'update')
    +        Test("csg%02d" % (i+3))
    +        times = times + str(Query("Time")) + "\n"
    +
    +    TestText("csg13", times)
    +    DeleteAllPlots()
    +    SetQueryOutputToString()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_curve.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_curve.html new file mode 100644 index 000000000..1ac51b92b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_curve.html @@ -0,0 +1,66 @@ + +Results for simulation/curve.py + +

    Results of VisIt Regression Test - simulation/curve

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    curve000 modifications totalling 0 lines
    curve010 modifications totalling 0 lines
    curve020.000.00
    curve030.000.00
    curve040.000.00
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_curve_py.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_curve_py.html new file mode 100644 index 000000000..76fe027a1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_curve_py.html @@ -0,0 +1,61 @@ +simulation/curve.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  curve.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - curve
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       Jun 17, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("curve", "curve.sim2")
    +sim.addargument("-echo")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("curve00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("curve01", sim.metadata())
    +
    +    AddPlot("Curve", "sine")
    +    curveAtts = CurveAttributes(1)
    +    curveAtts.showLabels = 0
    +    curveAtts.lineWidth = 2
    +    SetPlotOptions(curveAtts)
    +    DrawPlots()
    +    Test("curve02")
    +
    +    # Read the 'VisIt connected' message
    +    buf = sim.p.stderr.readline()
    +    for i in range(25):
    +        sim.consolecommand("step")
    +        # Read from stderr to look for the echoed command.
    +        buf = sim.p.stderr.readline()
    +        print(buf)
    +        sim.consolecommand("update")
    +
    +    Test("curve03")
    +
    +    for i in range(25):
    +        sim.consolecommand("step")
    +        buf = sim.p.stderr.readline()
    +        print(buf)
    +        sim.consolecommand("update")
    +    Test("curve04")
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_domainbounds.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_domainbounds.html new file mode 100644 index 000000000..c06108759 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_domainbounds.html @@ -0,0 +1,56 @@ + +Results for simulation/domainbounds.py + +

    Results of VisIt Regression Test - simulation/domainbounds

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    domainbounds000 modifications totalling 0 lines
    domainbounds010 modifications totalling 0 lines
    domainbounds020.000.00
    domainbounds030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_domainbounds_py.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_domainbounds_py.html new file mode 100644 index 000000000..639ed1d97 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_domainbounds_py.html @@ -0,0 +1,47 @@ +simulation/domainbounds.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  domainbounds.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 3D rectilinear mesh
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 17, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("domainbounds", "domainbounds.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("domainbounds00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("domainbounds01", sim.metadata())
    +
    +    AddPlot("Subset", "Domains")
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (0.672727, 0.569817, 0.471961)
    +    v.viewUp = (-0.252634, 0.776445, -0.57733)
    +    SetView3D(v)
    +    Test("domainbounds02")
    +
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", "zonal")
    +    DrawPlots()
    +    Test("domainbounds03")
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_domainlist.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_domainlist.html new file mode 100644 index 000000000..3abcbbb03 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_domainlist.html @@ -0,0 +1,108 @@ + +Results for simulation/domainlist.py + +

    Results of VisIt Regression Test - simulation/domainlist

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    domainlist000 modifications totalling 0 lines
    domainlist010 modifications totalling 0 lines
    domainlist020.000.00
    domainlist030.000.00
    domainlist040.000.00
    domainlist050.000.00
    domainlist060.000.00
    domainlist070.000.00
    domainlist080.000.00
    domainlist090.000.00
    domainlist100.000.00
    domainlist110.000.00
    domainlist120 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_domainlist_py.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_domainlist_py.html new file mode 100644 index 000000000..ca87b25c3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_domainlist_py.html @@ -0,0 +1,125 @@ +simulation/domainlist.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  domainlist.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 2D,3D unstructured mesh.
    +#
    +#              Tests that VisIt's load balancer can accept different domain
    +#              lists from simulations and distribute work accordingly. If it
    +#              was to mess up then we would not get all domains for at least
    +#              one of the meshes.
    +#
    +#              This test must run in parallel.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Thu Jun 26 17:19:08 PDT 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def step(sim):
    +    sim.consolecommand("step")
    +    # Read from stderr to look for the echoed command. Sync.
    +    keepGoing = True
    +    while keepGoing:
    +        buf = sim.p.stderr.readline()
    +        print(buf)
    +        if "Command step" in buf:
    +            keepGoing = False
    +
    +def set_the_view():
    +    v = GetView3D()
    +    v.viewNormal = (0.48257, -0.684101, 0.54693)
    +    v.focus = (0.95, 1.5, 0.5)
    +    v.viewUp = (-0.352936, 0.419625, 0.836272)
    +    v.viewAngle = 30
    +    v.parallelScale = 1.84459
    +    v.nearPlane = -3.68917
    +    v.farPlane = 3.68917
    +    v.imagePan = (0.0637817, 0.0407714)
    +    v.imageZoom = 1.04766
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.95, 1.5, 0.5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +def add_time(times):
    +    Query("Time")
    +    t2 = times + str(GetQueryOutputValue()) + "\n"
    +    return t2
    +
    +def start_time():
    +    return add_time("Times:\n")
    +
    +def test0(sim):
    +    AddPlot("Subset", "Domains(mesh)")
    +    AddPlot("Subset", "Domains(surface)")
    +    SetActivePlots((0,1))
    +    AddOperator("Reflect")
    +    r = ReflectAttributes()
    +    r.octant = r.PXPYPZ  # PXPYPZ, NXPYPZ, PXNYPZ, NXNYPZ, PXPYNZ, NXPYNZ, PXNYNZ, NXNYNZ
    +    r.useXBoundary = 1
    +    r.specifiedX = 0
    +    r.useYBoundary = 0
    +    r.specifiedY = 1.5
    +    r.useZBoundary = 1
    +    r.specifiedZ = 0
    +    r.reflections = (1, 0, 1, 0, 0, 0, 0, 0)
    +    SetOperatorOptions(r)
    +
    +    SetActivePlots(1)
    +    AddOperator("Transform", 0)
    +    trans = TransformAttributes()
    +    trans.doTranslate = 1
    +    trans.translateX = 1
    +    SetOperatorOptions(trans)
    +    DrawPlots()
    +    set_the_view()
    +
    +    # Advance some steps and make sure that we get all domains for each mesh
    +    times = start_time()
    +    idx = 2
    +    for i in range(10):
    +        Test("domainlist%02d" % idx)
    +        times = add_time(times)
    +        step(sim)
    +        idx = idx + 1
    +
    +    # Get the number of processors.
    +    e,s = GetEngineList(1)[0]
    +    text = "Engine Properties:\n" + str(GetEngineProperties(e,s)) + "\n" + times
    +    TestText("domainlist%02d" % idx, text)
    +    idx = idx + 1
    +    DeleteAllPlots()
    +
    +
    +
    +def main():
    +    # Create our simulation object.
    +    sim = TestParallelSimulation("globalids_par", "globalids_par.sim2", 4)
    +    sim.addargument("-echo")
    +
    +    # Test that we can start and connect to the simulation.
    +    started, connected = TestSimStartAndConnect("domainlist00", sim)
    +
    +    # Perform our tests.
    +    if connected:
    +        # Make sure the metadata is right.
    +        TestSimMetaData("domainlist01", sim.metadata())
    +        test0(sim)
    +
    +    # Close down the simulation.
    +    if started:
    +        sim.endsim()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_ghostcells.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_ghostcells.html new file mode 100644 index 000000000..e38bc1e20 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_ghostcells.html @@ -0,0 +1,194 @@ + +Results for simulation/ghostcells.py + +

    Results of VisIt Regression Test - simulation/ghostcells

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ghostcells000 modifications totalling 0 lines
    ghostcells010 modifications totalling 0 lines
    Ghosting with meshes
    ghostcells020.000.00
    ghostcells030.000.00
    ghostcells040.000.00
    ghostcells050.000.00
    ghostcells060.000.00
    ghostcells070.000.00
    ghostcells080.000.00
    ghostcells090.000.00
    ghostcells100.000.00
    ghostcells110.000.00
    ghostcells120.000.00
    ghostcells130.000.00
    Ghosting with scalars
    ghostcells140.000.00
    ghostcells150.000.00
    ghostcells160.000.00
    ghostcells170.000.00
    ghostcells180.000.00
    ghostcells190.000.00
    ghostcells200.000.00
    ghostcells210.000.00
    ghostcells220.000.00
    ghostcells230.000.00
    ghostcells240.000.00
    ghostcells250.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_ghostcells_py.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_ghostcells_py.html new file mode 100644 index 000000000..da0f60513 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_ghostcells_py.html @@ -0,0 +1,84 @@ +simulation/ghostcells.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ghostcells.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 2D structured mesh.
    +#              scalars defined on material sub regions.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Dec 18 12:04:01 PST 2013
    +#
    +#
    +#  NOTES: #3, #17 do not look correct.
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("ghostcells", "ghostcells.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("ghostcells00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("ghostcells01", sim.metadata())
    +
    +    meshes = ("rect_blank", "curv_blank", "ucd_blank",
    +              "multi_domain_index", "multi_domain", "multi_types")
    +    scalars= ("rect_var", "curv_var", "ucd_var",
    +              "multi_var", "multi_var_index", "multi_types_var")
    +
    +    i = 2
    +    TestSection("Ghosting with meshes")
    +    for m in meshes:
    +        AddPlot("Subset", m)
    +        s = SubsetAttributes(1)
    +        if "multi" in m:
    +            s.opacity = 0.4
    +            SetPlotOptions(s)
    +        DrawPlots()
    +        ResetView()
    +        Test("ghostcells%02d" % i)
    +
    +        s.colorType = s.ColorBySingleColor
    +        s.singleColor = (0,0,255,255)
    +        SetPlotOptions(s)
    +        AddOperator("InverseGhostZone")
    +        s.opacity = 1.
    +        SetPlotOptions(s)
    +        DrawPlots()
    +        Test("ghostcells%02d" % (i+1))
    +        DeleteAllPlots()
    +        i = i + 2
    +
    +    TestSection("Ghosting with scalars")
    +    for s in scalars:
    +        AddPlot("Pseudocolor", s)
    +        pc = PseudocolorAttributes(1)
    +        if "multi" in s:
    +            pc.opacityType = pc.Constant
    +            pc.opacity = 0.4
    +            SetPlotOptions(pc)
    +        DrawPlots()
    +        ResetView()
    +        Test("ghostcells%02d" % i)
    +
    +        AddOperator("InverseGhostZone")
    +        pc.opacity = 1.0
    +        SetPlotOptions(pc)
    +        DrawPlots()
    +        Test("ghostcells%02d" % (i+1))
    +        DeleteAllPlots()
    +        i = i + 2
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_globalids.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_globalids.html new file mode 100644 index 000000000..bef182984 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_globalids.html @@ -0,0 +1,196 @@ + +Results for simulation/globalids.py + +

    Results of VisIt Regression Test - simulation/globalids

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    globalids000 modifications totalling 0 lines
    globalids010 modifications totalling 0 lines
    Topologically 3D meshes in 3D
    globalids020.000.00
    globalids030.000.00
    globalids040.000.00
    globalids050.000.00
    globalids060.000.00
    globalids070.000.00
    globalids080.000.00
    globalids090.000.00
    globalids100.000.00
    globalids110.000.00
    globalids120.000.00
    globalids130 modifications totalling 0 lines
    Topologically 2D meshes in 3D
    globalids_1_000.000.00
    globalids_1_010.000.00
    globalids_1_020.000.00
    globalids_1_030.000.00
    globalids_1_040.000.00
    globalids_1_050.000.00
    globalids_1_060.000.00
    globalids_1_070.000.00
    globalids_1_080.000.00
    globalids_1_090.000.00
    globalids_1_100.000.00
    globalids_1_110.000.00
    globalids_1_120 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_globalids_py.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_globalids_py.html new file mode 100644 index 000000000..c696f2844 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_globalids_py.html @@ -0,0 +1,218 @@ +simulation/globalids.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  globalids.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 3D unstructured mesh.
    +#              global node and cell ids
    +#              unstructured ghost cell generation from global ids
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Tue Jun 17 16:32:51 PDT 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +def step(sim):
    +    sim.consolecommand("step")
    +    # Read from stderr to look for the echoed command. Sync.
    +    keepGoing = True
    +    while keepGoing:
    +        buf = sim.p.stderr.readline()
    +        print(buf)
    +        if "Command step" in buf:
    +            keepGoing = False
    +
    +def set_the_view():
    +    v = GetView3D()
    +    v.viewNormal = (-0.707418, 0.404282, 0.579755)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.294715, 0.914272, -0.27794)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.866025
    +    v.nearPlane = -1.73205
    +    v.farPlane = 1.73205
    +    v.imagePan = (0, 0.0589478)
    +    v.imageZoom = 1.0963
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 0.5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +def set_the_view2():
    +    v = GetView3D()
    +    v.viewNormal = (-0.542717, -0.70433, 0.457578)
    +    v.focus = (0.5, 0.5, 0.5)
    +    v.viewUp = (0.252732, 0.3826, 0.888675)
    +    v.viewAngle = 30
    +    v.parallelScale = 0.722842
    +    v.nearPlane = -1.44568
    +    v.farPlane = 1.44568
    +    v.imagePan = (-0.00135472, 0.013532)
    +    v.imageZoom = 1.12868
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0.5, 0.5, 0.5)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +def add_time(times):
    +    Query("Time")
    +    t2 = times + str(GetQueryOutputValue()) + "\n"
    +    return t2
    +
    +def start_time():
    +    return add_time("Times:\n")
    +
    +def test0(sim):
    +    TestSection("Topologically 3D meshes in 3D")
    +    DefineScalarExpression("gnid", "global_nodeid(mesh)")
    +    DefineScalarExpression("gzid", "global_zoneid(mesh)")
    +    DefineScalarExpression("nid",  "nodeid(mesh)")
    +
    +    AddPlot("Pseudocolor", "nid")
    +    DrawPlots()
    +    set_the_view()
    +    Test("globalids02")
    +
    +    ChangeActivePlotsVar("gzid")
    +    DrawPlots()
    +    Test("globalids03")
    +
    +    ChangeActivePlotsVar("gnid")
    +    DrawPlots()
    +    Test("globalids04")
    +    DeleteAllPlots()
    +
    +    AddPlot("Subset", "Domains")
    +    DrawPlots()
    +    Test("globalids05")
    +
    +    # Make sure that the plot is hollow
    +    s = SubsetAttributes(1)
    +    s_clear = SubsetAttributes(1)
    +    s_clear.opacity = 0.25
    +    s_clear.colorType = s_clear.ColorBySingleColor
    +    s_clear.singleColor = (200,200,200,255)
    +    SetPlotOptions(s_clear)
    +    DrawPlots()
    +    Test("globalids06")
    +
    +    # Advance some steps and make sure that the plot
    +    # stays transparent. We're changing the size of the
    +    # domains at each time step and thus the global ids.
    +    times = start_time()
    +    idx = 7
    +    for i in range(3):
    +        # Advance some steps. This should make the plots update.
    +        nsteps = 5
    +        for j in range(nsteps):
    +            step(sim)
    +            DrawPlots()
    +        times = add_time(times)
    +        SetPlotOptions(s)
    +        Test("globalids%02d" % idx)
    +        idx = idx + 1
    +        SetPlotOptions(s_clear)
    +        Test("globalids%02d" % idx)
    +        idx = idx + 1
    +
    +    TestText("globalids%02d" % idx, times)
    +    idx = idx + 1
    +    DeleteAllPlots()
    +
    +def hideplot(id):
    +    pl = GetPlotList()
    +    if pl.GetPlots(id).hiddenFlag == 0:
    +        SetActivePlots(id)
    +        HideActivePlots()
    +
    +def showplot(id):
    +    pl = GetPlotList()
    +    if pl.GetPlots(id).hiddenFlag == 1:
    +        SetActivePlots(id)
    +        HideActivePlots()
    +
    +def test1(sim):
    +    TestSection("Topologically 2D meshes in 3D")
    +    DefineScalarExpression("gnid2d", "global_nodeid(surface)")
    +    DefineScalarExpression("gzid2d", "global_zoneid(surface)")
    +    DefineScalarExpression("nid2d",  "nodeid(surface)")
    +
    +    AddPlot("FilledBoundary", "surfacemat")
    +    fb = FilledBoundaryAttributes(1)
    +    fb.colorType = fb.ColorBySingleColor
    +    fb.singleColor = (0,0,0,255)
    +    fb.wireframe = 1
    +    fb.lineWidth = 3
    +    SetPlotOptions(fb)
    +    AddPlot("Subset", "Domains(surface)")
    +    AddPlot("Pseudocolor", "nid2d")
    +    DrawPlots()
    +    set_the_view2()
    +
    +    idx = 0
    +    times = start_time()
    +    ntests = 4
    +    for i in range(3):
    +        ids = [idx+j for j in range(ntests)]
    +        # Show the Subset plot
    +        showplot(1)
    +        hideplot(2)
    +        Test("globalids_1_%02d" % ids[0])
    +
    +        # Show the Pseudocolor plot
    +        hideplot(1)
    +        showplot(2)
    +        ChangeActivePlotsVar("nid2d")
    +        Test("globalids_1_%02d" % ids[1])
    +
    +        ChangeActivePlotsVar("gnid2d")
    +        Test("globalids_1_%02d" % ids[2])
    +
    +        ChangeActivePlotsVar("gzid2d")
    +        Test("globalids_1_%02d" % ids[3])
    +        SetActivePlots(0)
    +        times = add_time(times)
    +
    +        # Take a step.
    +        showplot(1)
    +        step(sim)
    +        idx = idx + ntests
    +
    +    TestText("globalids_1_%02d" % idx, times)
    +    DeleteAllPlots()
    +
    +def main():
    +    # Create our simulation object.
    +    sim = TestSimulation("globalids", "globalids.sim2")
    +    sim.addargument("-echo")
    +
    +    # Test that we can start and connect to the simulation.
    +    started, connected = TestSimStartAndConnect("globalids00", sim)
    +
    +    # Perform our tests.
    +    if connected:
    +        # Make sure the metadata is right.
    +        TestSimMetaData("globalids01", sim.metadata())
    +        test0(sim)
    +        test1(sim)
    +
    +    # Close down the simulation.
    +    if started:
    +        sim.endsim()
    +
    +main()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_interleave.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_interleave.html new file mode 100644 index 000000000..2ee5bbf2c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_interleave.html @@ -0,0 +1,188 @@ + +Results for simulation/interleave.py + +

    Results of VisIt Regression Test - simulation/interleave

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    interleave000 modifications totalling 0 lines
    interleave010 modifications totalling 0 lines
    interleave020.000.00
    interleave030.000.00
    interleave040.000.00
    interleave050.000.00
    interleave060.000.00
    interleave070.000.00
    interleave080.000.00
    interleave090.000.00
    interleave100.000.00
    interleave110.000.00
    interleave120.000.00
    interleave130.000.00
    interleave140.000.00
    interleave150.000.00
    interleave160.000.00
    interleave170.000.00
    interleave180.000.00
    interleave190.000.00
    interleave200.000.00
    interleave210.000.00
    interleave220.000.00
    interleave230.000.00
    interleave240.000.00
    interleave250.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_interleave_py.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_interleave_py.html new file mode 100644 index 000000000..dd15405ff --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_interleave_py.html @@ -0,0 +1,86 @@ +simulation/interleave.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  interleave.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       June 17, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("interleave", "interleave.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("interleave00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("interleave01", sim.metadata())
    +
    +    meshes2d = ("curv2d_static_float", "curv2d_static_double",
    +                "curv2d_dynamic_float", "curv2d_dynamic_double",
    +
    +                "point2d_static_float", "point2d_static_double",
    +                "point2d_dynamic_float", "point2d_dynamic_double",
    +
    +                "ucd2d_static_float", "ucd2d_static_double",
    +                "ucd2d_dynamic_float", "ucd2d_dynamic_double")
    +
    +    meshes3d = ("curv3d_static_float", "curv3d_static_double",
    +                "curv3d_dynamic_float", "curv3d_dynamic_double",
    +
    +                "point3d_static_float", "point3d_static_double",
    +                "point3d_dynamic_float", "point3d_dynamic_double",
    +
    +                "ucd3d_static_float", "ucd3d_static_double",
    +                "ucd3d_dynamic_float", "ucd3d_dynamic_double")
    +
    +    i = 2
    +    meshAtts = MeshAttributes()
    +    meshAtts.pointSizePixels = 10
    +    meshAtts.lineWidth = 2
    +    SetDefaultPlotOptions(meshAtts)
    +
    +    v2 = GetView2D()
    +    v2.windowCoords = (-0.104083, 4.10408, -0.369428, 3.36943)
    +    v2.viewportCoords = (0.2, 0.95, 0.15, 0.95)
    +    AddPlot("Mesh", "%s"%meshes2d[0])
    +    DrawPlots()
    +    SetView2D(v2)
    +    Test("interleave%02d" % i)
    +    i = i + 1
    +
    +    for m in meshes2d[1:]:
    +        ChangeActivePlotsVar(m)
    +        DrawPlots()
    +        Test("interleave%02d" % i)
    +        i = i + 1
    +
    +    DeleteAllPlots()
    +
    +    AddPlot("Mesh", "%s"%meshes3d[0])
    +    DrawPlots()
    +    ResetView()
    +    Test("interleave%02d" % i)
    +    i = i + 1
    +
    +    for m in meshes3d[1:]:
    +        ChangeActivePlotsVar(m)
    +        DrawPlots()
    +        Test("interleave%02d" % i)
    +        i = i + 1
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_life.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_life.html new file mode 100644 index 000000000..be0954353 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_life.html @@ -0,0 +1,58 @@ + +Results for simulation/life.py + +

    Results of VisIt Regression Test - simulation/life

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    life000 modifications totalling 0 lines
    life010 modifications totalling 0 lines
    life020.000.00
    life0332.5531.12
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_life_py.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_life_py.html new file mode 100644 index 000000000..93f79c7ac --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_life_py.html @@ -0,0 +1,43 @@ +simulation/life.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  life.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 2D rectilinear mesh
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 17, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("life", "life.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("life00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("life01", sim.metadata())
    +
    +    AddPlot("Pseudocolor", "life")
    +    DrawPlots()
    +    Test("life02")
    +
    +    # Run the simulation for awhile to get a different image
    +    for i in range(100):
    +        sim.consolecommand("step")
    +    Test("life03")
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_mandelbrot.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_mandelbrot.html new file mode 100644 index 000000000..a93637eb2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_mandelbrot.html @@ -0,0 +1,78 @@ + +Results for simulation/mandelbrot.py + +

    Results of VisIt Regression Test - simulation/mandelbrot

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    mandelbrot000 modifications totalling 0 lines
    mandelbrot010 modifications totalling 0 lines
    mandelbrot020.000.00
    mandelbrot030.000.00
    mandelbrot040 modifications totalling 0 lines
    mandelbrot050.000.00
    mandelbrot060.000.00
    mandelbrot070.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_mandelbrot_py.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_mandelbrot_py.html new file mode 100644 index 000000000..086e332e1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_mandelbrot_py.html @@ -0,0 +1,77 @@ +simulation/mandelbrot.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  mandelbrot.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 2D structured mesh.
    +#              scalars
    +#              AMR
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Dec 18 12:04:01 PST 2013
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +import time
    +
    +# Create our simulation object.
    +sim = TestSimulation("mandelbrot", "mandelbrot.sim2")
    +sim.addargument("-echo")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("mandelbrot00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("mandelbrot01", sim.metadata())
    +
    +    AddPlot("Pseudocolor", "mandelbrot")
    +    DrawPlots()
    +    v = GetView2D()
    +    v.viewportCoords = (0., 1., 0., 1.)
    +    SetView2D(v)
    +    Test("mandelbrot02")
    +
    +    # Advance some steps and update the plots.
    +
    +    # Read the "VisIt connected" message.
    +    buf = sim.p.stderr.readline()
    +    for i in range(12):
    +        sim.consolecommand("step")
    +        # Read from stderr to look for the echoed command.
    +        buf = sim.p.stderr.readline()
    +        print(buf)
    +        time.sleep(1)
    +    # Update the data for the new time step.
    +    sim.consolecommand("update")
    +    Test("mandelbrot03")
    +
    +    # Make sure the metadata has updated.
    +    TestSimMetaData("mandelbrot04", sim.metadata())
    +
    +    # Test transparency to see if nesting is used.
    +    pc = PseudocolorAttributes(1)
    +    pc.opacityType = pc.Constant
    +    pc.opacity = 0.5
    +    SetPlotOptions(pc)
    +    Test("mandelbrot05")
    +
    +    DeleteActivePlots()
    +    AddPlot("Subset", "levels")
    +    DrawPlots()
    +    Test("mandelbrot06")
    +
    +    ChangeActivePlotsVar("patches")
    +    Test("mandelbrot07")
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_material.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_material.html new file mode 100644 index 000000000..0c37df0e3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_material.html @@ -0,0 +1,62 @@ + +Results for simulation/material.py + +

    Results of VisIt Regression Test - simulation/material

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    material000 modifications totalling 0 lines
    material010 modifications totalling 0 lines
    material020.000.00
    material030.000.00
    material040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_material_py.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_material_py.html new file mode 100644 index 000000000..3b0a7ada0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_material_py.html @@ -0,0 +1,59 @@ +simulation/material.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  material.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              material   - 2D structured/unstructured material.
    +#              materials
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Dec 18 12:04:01 PST 2013
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Force MIR
    +m = GetMaterialAttributes()
    +m.forceMIR = 1
    +SetMaterialAttributes(m)
    +
    +# Create our simulation object.
    +sim = TestSimulation("material", "material.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("material00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("material01", sim.metadata())
    +
    +    AddPlot("Mesh", "mesh2d")
    +    m = MeshAttributes(1)
    +    m.lineWidth = 1
    +    SetPlotOptions(m)
    +    AddPlot("FilledBoundary", "Material")
    +    DrawPlots()
    +    Test("material02")
    +
    +    DeleteActivePlots()
    +    AddPlot("Pseudocolor", "scalar")
    +    DrawPlots()
    +    Test("material03")
    +    DeleteAllPlots()
    +
    +    # Make a new plot.
    +    AddPlot("Mesh", "ucdmesh")
    +    SetPlotOptions(m)
    +    AddPlot("FilledBoundary", "MaterialFromArrays")
    +    DrawPlots()
    +    Test("material04")
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_materialvar.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_materialvar.html new file mode 100644 index 000000000..097472933 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_materialvar.html @@ -0,0 +1,104 @@ + +Results for simulation/materialvar.py + +

    Results of VisIt Regression Test - simulation/materialvar

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    materialvar000 modifications totalling 0 lines
    materialvar010 modifications totalling 0 lines
    materialvar020.000.00
    materialvar030.000.00
    materialvar040.000.00
    materialvar050.000.00
    materialvar060.000.00
    materialvar070.000.00
    materialvar080.000.00
    materialvar090.000.00
    materialvar100.000.00
    materialvar110.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_materialvar_py.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_materialvar_py.html new file mode 100644 index 000000000..f62d89bed --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_materialvar_py.html @@ -0,0 +1,58 @@ +simulation/materialvar.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  materialvar.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 2D structured mesh.
    +#              scalars defined on material sub regions.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Dec 18 12:04:01 PST 2013
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("materialvar", "materialvar.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("materialvar00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("materialvar01", sim.metadata())
    +
    +    AddPlot("Mesh", "mesh2d")
    +    AddPlot("FilledBoundary", "Material")
    +    DrawPlots()
    +    Test("materialvar02")
    +    DeleteActivePlots()
    +
    +    scalars = ("scalar",
    +               "zonal_scalar_on_mat1",
    +               "zonal_scalar_on_mat2",
    +               "zonal_scalar_on_mat3",
    +               "zonal_scalar_on_mats12",
    +               "nodal_scalar_on_mat1",
    +               "nodal_scalar_on_mat2",
    +               "nodal_scalar_on_mat3",
    +               "nodal_scalar_on_mats23")
    +    i = 3
    +    for s in scalars:
    +        AddPlot("Pseudocolor", s)
    +        DrawPlots()
    +        Test("materialvar%02d" % i)
    +        DeleteActivePlots()
    +        i = i + 1
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_mesh.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_mesh.html new file mode 100644 index 000000000..9b543c3cf --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_mesh.html @@ -0,0 +1,62 @@ + +Results for simulation/mesh.py + +

    Results of VisIt Regression Test - simulation/mesh

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    mesh000 modifications totalling 0 lines
    mesh010 modifications totalling 0 lines
    mesh020.000.00
    mesh030.000.00
    mesh040.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_mesh_py.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_mesh_py.html new file mode 100644 index 000000000..86c51bf92 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_mesh_py.html @@ -0,0 +1,53 @@ +simulation/mesh.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  mesh.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 2D and 3D structured mesh.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Dec 18 12:04:01 PST 2013
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("mesh", "mesh.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("mesh00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("mesh01", sim.metadata())
    +
    +    AddPlot("Mesh", "mesh2d")
    +    m = MeshAttributes(1)
    +    m.lineWidth = 1
    +    SetPlotOptions(m)
    +    DrawPlots()
    +    Test("mesh02")
    +
    +    ChangeActivePlotsVar("mesh3d")
    +    Test("mesh03")
    +    DeleteAllPlots()
    +
    +    # Disconnect and reconnect.
    +    sim.disconnect()
    +    sim.connect()
    +
    +    # Make a new plot.
    +    AddPlot("Mesh", "mesh2d")
    +    SetPlotOptions(m)
    +    DrawPlots()
    +    Test("mesh04")
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_multiblock.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_multiblock.html new file mode 100644 index 000000000..a24152550 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_multiblock.html @@ -0,0 +1,68 @@ + +Results for simulation/multiblock.py + +

    Results of VisIt Regression Test - simulation/multiblock

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    multiblock000 modifications totalling 0 lines
    multiblock010 modifications totalling 0 lines
    multiblock020.000.00
    multiblock030.000.00
    multiblock040.000.00
    multiblock050.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_multiblock_py.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_multiblock_py.html new file mode 100644 index 000000000..da993e73b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_multiblock_py.html @@ -0,0 +1,56 @@ +simulation/multiblock.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  multiblock.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - 2D structured mesh.
    +#              scalars
    +#              domain boundaries
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Dec 18 12:04:01 PST 2013
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("multiblock", "multiblock.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("multiblock00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("multiblock01", sim.metadata())
    +
    +    AddPlot("Mesh", "mesh2d")
    +    AddPlot("Pseudocolor", "domainID")
    +    DrawPlots()
    +    Test("multiblock02")
    +
    +    # Force nodal centering to test domain boundary information.
    +    pc = PseudocolorAttributes(1)
    +    pc.centering = pc.Nodal
    +    SetPlotOptions(pc)
    +    Test("multiblock03")
    +
    +    DeleteActivePlots()
    +
    +    AddPlot("Subset", "Domains")
    +    DrawPlots()
    +    Test("multiblock04")
    +
    +    ChangeActivePlotsVar("Blocks")
    +    Test("multiblock05")
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_point.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_point.html new file mode 100644 index 000000000..d284ea1d2 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_point.html @@ -0,0 +1,92 @@ + +Results for simulation/point.py + +

    Results of VisIt Regression Test - simulation/point

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    point000 modifications totalling 0 lines
    point010 modifications totalling 0 lines
    point020.000.00
    point030.000.00
    point040.000.00
    point050.000.00
    point060.000.00
    point070.000.00
    point080.000.00
    point090.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_point_py.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_point_py.html new file mode 100644 index 000000000..47f6309f1 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_point_py.html @@ -0,0 +1,79 @@ +simulation/point.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  point.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   -  point mesh
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 25, 2014 
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("point", "point.sim2")
    +sim.addargument("-echo")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("point00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("point01", sim.metadata())
    +
    +    # 2d mesh and points
    +    AddPlot("Mesh", "point3d")
    +    meshAtts = MeshAttributes()
    +    meshAtts.pointSizePixels = 3
    +    SetPlotOptions(meshAtts)
    +    DrawPlots()
    +    Test("point02")
    +
    +    v = GetView3D()
    +    v.viewNormal = (0, 1, 0)
    +    v.viewUp     = (0, 0, -1)
    +    SetView3D(v)
    +
    +    Test("point03")
    +
    +    DeleteAllPlots()
    +
    +    AddPlot("Pseudocolor", "pointvar")
    +    pcAtts = PseudocolorAttributes()
    +    pcAtts.pointSizePixels = 3
    +    SetPlotOptions(pcAtts)
    +    DrawPlots()
    +    Test("point04")
    +
    +    ResetView()
    +    Test("point05")
    +
    +    AddOperator("Project")
    +    DrawPlots()
    +    Test("point06")
    +
    +    projAtts = ProjectAttributes()
    +    projAtts.projectionType = projAtts.ZYCartesian
    +    SetOperatorOptions(projAtts)
    +    Test("point07")
    +
    +    projAtts.projectionType = projAtts.XRCylindrical
    +    SetOperatorOptions(projAtts)
    +    Test("point08")
    +
    +    projAtts.projectionType = projAtts.ZRCylindrical
    +    SetOperatorOptions(projAtts)
    +    Test("point09")
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_polyhedral.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_polyhedral.html new file mode 100644 index 000000000..2b6eff7cf --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_polyhedral.html @@ -0,0 +1,68 @@ + +Results for simulation/polyhedral.py + +

    Results of VisIt Regression Test - simulation/polyhedral

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    polyhedral000 modifications totalling 0 lines
    polyhedral010 modifications totalling 0 lines
    polyhedral020.000.00
    polyhedral030.000.00
    polyhedral040.000.00
    polyhedral050.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_polyhedral_py.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_polyhedral_py.html new file mode 100644 index 000000000..0ea42e6ab --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_polyhedral_py.html @@ -0,0 +1,64 @@ +simulation/polyhedral.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  polyhedral.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              polyhedral   - 3D polyhedral.
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 26, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("polyhedral", "polyhedral.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("polyhedral00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("polyhedral01", sim.metadata())
    +
    +    AddPlot("Mesh", "polyhedral")
    +    m = MeshAttributes(1)
    +    m.lineWidth = 2
    +    m.opaqueMode = m.Off
    +    DrawPlots()
    +
    +    v = GetView3D()
    +    v.viewNormal = (0.04, 0.66, 0.74)
    +    v.viewUp = (-0.35, 0.71, -0.62)
    +    SetView3D(v)
    +    Test("polyhedral02")
    +
    +    AddPlot("Pseudocolor", "nodal")
    +    DrawPlots()
    +    Test("polyhedral03")
    +
    +    ChangeActivePlotsVar("zonal")
    +    SetActivePlots(0)
    +    # show the tesselation that occured on the polyhedral zone
    +    m.showInternal = 1
    +    SetPlotOptions(m)
    +    DrawPlots()
    +    Test("polyhedral04")
    +
    +    SetActivePlots(1)
    +    DeleteActivePlots()
    +
    +    Test("polyhedral05")
    +
    +    DeleteAllPlots()
    +
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_scalar.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_scalar.html new file mode 100644 index 000000000..0c341ee94 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_scalar.html @@ -0,0 +1,56 @@ + +Results for simulation/scalar.py + +

    Results of VisIt Regression Test - simulation/scalar

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    scalar000 modifications totalling 0 lines
    scalar010 modifications totalling 0 lines
    scalar020.000.00
    scalar030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_scalar_py.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_scalar_py.html new file mode 100644 index 000000000..fcd3641bf --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_scalar_py.html @@ -0,0 +1,57 @@ +simulation/scalar.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  scalar.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       June 18, 2014
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Replace obsolete Label text attributes with new versions.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("scalar", "scalar.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("scalar00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("scalar01", sim.metadata())
    +
    +    # 2d mesh and scalars
    +    AddPlot("Mesh", "mesh2d")
    +    AddPlot("Pseudocolor", "zonal")
    +    AddPlot("Label", "zonal")
    +    LabelAtts = LabelAttributes()
    +    LabelAtts.textFont1.scale = 7
    +    SetPlotOptions(LabelAtts)
    +    DrawPlots()
    +    Test("scalar02")
    +
    +    DeleteAllPlots()
    +
    +    # 2d mesh and scalars
    +    AddPlot("Mesh", "mesh3d")
    +    AddPlot("Pseudocolor", "nodal")
    +    AddPlot("Label", "nodal")
    +    LabelAtts = LabelAttributes()
    +    LabelAtts.textFont1.scale = 7
    +    LabelAtts.depthTestMode = LabelAtts.LABEL_DT_NEVER
    +    SetPlotOptions(LabelAtts)
    +
    +    DrawPlots()
    +    Test("scalar03")
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_species.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_species.html new file mode 100644 index 000000000..33a26a365 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_species.html @@ -0,0 +1,137 @@ + +Results for simulation/species.py + +

    Results of VisIt Regression Test - simulation/species

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    species000 modifications totalling 0 lines
    species010 modifications totalling 0 lines
    species020.000.00
    species030.000.00
    Force MIR
    species040.000.00
    Turn off materials
    species050.000.00
    species060.000.00
    species070.000.00
    Turn off species
    species080.000.00
    species090.000.00
    species100.000.00
    species110.000.00
    species120.000.00
    species130.000.00
    species140.000.00
    species150.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_species_py.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_species_py.html new file mode 100644 index 000000000..804458850 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_species_py.html @@ -0,0 +1,83 @@ +simulation/species.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  species.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       July 9, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Force MIR
    +#m = GetMaterialAttributes()
    +#m.forceMIR = 1
    +#SetMaterialAttributes(m)
    +
    +# Create our simulation object.
    +sim = TestSimulation("species", "species.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("species00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("species01", sim.metadata())
    +
    +    AddPlot("FilledBoundary", "Material")
    +    DrawPlots()
    +    Test("species02")
    +
    +    DeleteActivePlots()
    +    AddPlot("Pseudocolor", "scalar")
    +    DrawPlots()
    +    Test("species03")
    +
    +    DeleteAllPlots()
    +    TestSection("Force MIR")
    +    # Force MIR
    +    m = GetMaterialAttributes()
    +    m.forceMIR = 1
    +    SetMaterialAttributes(m)
    +
    +    AddPlot("Pseudocolor", "scalar")
    +    DrawPlots()
    +    Test("species04")
    +
    +    TestSection("Turn off materials")
    +    TurnMaterialsOff("Water")
    +    DrawPlots()
    +    Test("species05")
    +
    +    TurnMaterialsOn("Water")
    +    TurnMaterialsOff("Membrane")
    +    DrawPlots()
    +    Test("species06")
    +
    +    TurnMaterialsOn("Membrane")
    +    TurnMaterialsOff("Air")
    +    DrawPlots()
    +    Test("species07")
    +
    +    TurnMaterialsOn("Air")
    +
    +    TestSection("Turn off species")
    +    s = SILRestriction()
    +    for i in range(8):
    +        s.TurnOffSet(s.SetsInCategory("Species")[i])
    +        SetPlotSILRestriction(s)
    +        s.TurnOnSet(s.SetsInCategory("Species")[i])
    +        Test("species%02d"%(i+8))
    +    DeleteAllPlots()
    +
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_ucdcurve.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_ucdcurve.html new file mode 100644 index 000000000..10f5be920 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_ucdcurve.html @@ -0,0 +1,66 @@ + +Results for simulation/ucdcurve.py + +

    Results of VisIt Regression Test - simulation/ucdcurve

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ucdcurve000 modifications totalling 0 lines
    ucdcurve010 modifications totalling 0 lines
    ucdcurve020.000.00
    ucdcurve030.000.00
    ucdcurve040.000.00
    ucdcurve050 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_ucdcurve_py.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_ucdcurve_py.html new file mode 100644 index 000000000..908de6805 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_ucdcurve_py.html @@ -0,0 +1,72 @@ +simulation/ucdcurve.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  ucdcurve.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              mesh   - ucdcurve
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       Jun 24, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +import time
    +
    +# Create our simulation object.
    +sim = TestSimulation("ucdcurve", "ucdcurve.sim2")
    +sim.addargument("-echo")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("ucdcurve00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("ucdcurve01", sim.metadata())
    +
    +    AddPlot("Pseudocolor", "nodal")
    +    pcAtts = PseudocolorAttributes()
    +    pcAtts.lineWidth = 4
    +    SetPlotOptions(pcAtts)
    +    DrawPlots()
    +    Test("ucdcurve02")
    +
    +    times = "Times:\n"
    +    Query("Time")
    +    times = times + str(GetQueryOutputValue()) + "\n"
    +
    +    # Read the 'VisIt connected' message
    +    buf = sim.p.stderr.readline()
    +    for i in range(4):
    +        sim.consolecommand("step")
    +        # Read from stderr to look for the echoed command.
    +        buf = sim.p.stderr.readline()
    +        time.sleep(1)
    +    Test("ucdcurve03")
    +
    +    Query("Time")
    +    times = times + str(GetQueryOutputValue()) + "\n"
    +
    +    ChangeActivePlotsVar("zonal")
    +
    +    for i in range(10):
    +        sim.consolecommand("step")
    +        buf = sim.p.stderr.readline()
    +        time.sleep(1)
    +    Test("ucdcurve04")
    +
    +    Query("Time")
    +    times = times + str(GetQueryOutputValue()) + "\n"
    +
    +    TestText("ucdcurve05", times)
    +
    +    DeleteAllPlots()
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_unstructured.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_unstructured.html new file mode 100644 index 000000000..6bf46b494 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_unstructured.html @@ -0,0 +1,50 @@ + +Results for simulation/unstructured.py + +

    Results of VisIt Regression Test - simulation/unstructured

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    unstructured000 modifications totalling 0 lines
    unstructured010 modifications totalling 0 lines
    unstructured020.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_unstructured_py.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_unstructured_py.html new file mode 100644 index 000000000..5a5e77961 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_unstructured_py.html @@ -0,0 +1,44 @@ +simulation/unstructured.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  unstructured.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#              unstructured   - 3D unstructured.
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 18, 2014
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("unstructured", "unstructured.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("unstructured00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("unstructured01", sim.metadata())
    +
    +    AddPlot("Mesh", "unstructured3d")
    +    m = MeshAttributes(1)
    +    m.lineWidth = 1
    +    SetPlotOptions(m)
    +    AddPlot("Subset", "Domains")
    +    DrawPlots()
    +    v = GetView3D()
    +    v.viewNormal = (0.707107, 0, 0.707107)
    +    SetView3D(v)
    +    Test("unstructured02")
    +
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_updateplots.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_updateplots.html new file mode 100644 index 000000000..05b279f52 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_updateplots.html @@ -0,0 +1,90 @@ + +Results for simulation/updateplots.py + +

    Results of VisIt Regression Test - simulation/updateplots

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    updateplots000 modifications totalling 0 lines
    updateplots010 modifications totalling 0 lines
    updateplots020.000.00
    updateplots030.000.00
    updateplots040.000.00
    updateplots050.000.00
    updateplots060.000.00
    updateplots070.000.00
    updateplots080.000.00
    updateplots090 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_updateplots_py.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_updateplots_py.html new file mode 100644 index 000000000..cc466d117 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_updateplots_py.html @@ -0,0 +1,89 @@ +simulation/updateplots.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  updateplots.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#
    +#  Programmer: Kathleen Biagas 
    +#  Date:       June 18, 2014 
    +#
    +#  Modifications:
    +#   Kathleen Biagas, Fri Sep 10 09:37:11 PDT 2021
    +#   Added test for exporting vtk.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("updateplots", "updateplots.sim2")
    +sim.addargument("-echo")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("updateplots00", sim)
    +
    +def step(sim):
    +    sim.consolecommand("step")
    +    # Read from stderr to look for the echoed command. Sync.
    +    keepGoing = True
    +    while keepGoing:
    +        buf = sim.p.stderr.readline()
    +        print(buf)
    +        if "Command 'step'" in buf:
    +            keepGoing = False
    +
    +def testExportVTK(sim):
    +    # default export FileFormat for VTK is Legacy ascii (.vtk extension),
    +    # Test an export that sets the FileFormat to XML Binary (.vtr extension)
    +    sim.consolecommand("exportVTK")
    +    # Read from stderr to look for the echoed command. Sync.
    +    keepGoing = True
    +    while keepGoing:
    +        buf = sim.p.stderr.readline()
    +        print(buf)
    +        if "Command 'exportVTK'" in buf:
    +            keepGoing = False
    +    TestValueEQ("updateplots_export0000.vtr exists",
    +         os.path.isfile(os.path.join(TestEnv.params["run_dir"], "updateplots_export0000.vtr")),
    +         True)
    +
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("updateplots01", sim.metadata())
    +
    +    # 2d mesh and updateplotss
    +    #AddPlot("Mesh", "mesh2d")
    +    AddPlot("Pseudocolor", "zonal")
    +    AddPlot("Vector", "zvec")
    +    VectorAtts = VectorAttributes()
    +    VectorAtts.scale = 0.5
    +    VectorAtts.colorByMagnitude = 0
    +    VectorAtts.vectorColor = (255, 255, 255, 255)
    +    SetPlotOptions(VectorAtts)
    +    DrawPlots()
    +    Test("updateplots02")
    +
    +    i = 3
    +    times = "Times:\n"
    +    Query("Time")
    +    times = times + str(GetQueryOutputValue()) + "\n"
    +    for outer in range(6):
    +        for inner in range(3):
    +            step(sim)
    +        Query("Time")
    +        times = times + str(GetQueryOutputValue()) + "\n"
    +        Test("updateplots%02d"%i)
    +        i = i+1
    +
    +    TestText("updateplots%02d"%i, times)
    +
    +    # Uncomment this when #17008 is fixed (crash when Logging ExportDBRPC)
    +    #testExportVTK(sim)
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_updateplots_session.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_updateplots_session.html new file mode 100644 index 000000000..dba0debc9 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_updateplots_session.html @@ -0,0 +1,99 @@ + +Results for simulation/updateplots_session.py + +

    Results of VisIt Regression Test - simulation/updateplots_session

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Testing batch simulation with session file
    updateplots_session_000.000.00
    updateplots_session_010.000.00
    updateplots_session_020.000.00
    updateplots_session_030.000.00
    updateplots_session_040.000.00
    updateplots_session_050.000.00
    updateplots_session_060.000.00
    updateplots_session_070.000.00
    updateplots_session_080.000.00
    updateplots_session_090.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_updateplots_session_py.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_updateplots_session_py.html new file mode 100644 index 000000000..0d99f684e --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_updateplots_session_py.html @@ -0,0 +1,88 @@ +simulation/updateplots_session.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  updateplots_session.py
    +#
    +#  Tests:      libsim - batch simulations that make images via a session file.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Fri Oct  2 15:18:56 PDT 2015
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +import string, time
    +
    +def WaitForFile(filename, starttime, timelimit):
    +    fileSize = 0
    +    lastFileSize = 0
    +    samecount = 0
    +    for iteration in range(1000):
    +        delay = 2
    +        try:
    +            # Get the size of the file.
    +            fileSize = os.stat(filename).st_size
    +
    +            # If the file grew, wait a little bit and check again.
    +            if fileSize > lastFileSize:
    +                samecount = 0
    +            elif fileSize == lastFileSize and fileSize > 0:
    +                delay = 1
    +                samecount = samecount + 1
    +                if samecount == 3:
    +                    break
    +
    +            lastFileSize = fileSize
    +        except:
    +            print("Problem stat'ing ", filename)
    +            pass
    +
    +        time.sleep(delay)
    +        if (time.time() - starttime) > timelimit:
    +            raise "Out of time"
    +
    +    return fileSize
    +
    +TestSection("Testing batch simulation with session file")
    +
    +# The name of the session file.
    +session = TestEnv.params["script"].replace("updateplots_session.py", "updateplots_session.session")
    +
    +# Create our simulation object.
    +sim = Simulation(SimVisItDir(), SimProgram("updateplots"), SimFile("dummy"))
    +sim.addargument("-batch")
    +sim.addargument("-sessionfile")
    +sim.addargument(session)
    +sim.addargument("-maxcycles")
    +sim.addargument("11")
    +sim.addargument("-width")
    +sim.addargument("%d" % TestEnv.params["width"])
    +sim.addargument("-height")
    +sim.addargument("%d" % TestEnv.params["height"])
    +
    +
    +# Start the sim.
    +sim.startsim()
    +
    +# Iterate through the images that we hoped the simulation would create.
    +timelimit = 300
    +starttime = time.time()
    +for testindex in range(10):
    +    filename = "updateplots%04d.png" % testindex
    +    if WaitForFile(filename, starttime, timelimit):
    +        OpenDatabase(filename)
    +        AddPlot("Truecolor", "color")
    +        DrawPlots()
    +        ResetView()
    +        v = GetView2D()
    +        v.viewportCoords = (0,1,0,1)
    +        SetView2D(v)
    +        testname = "updateplots_session_%02d" % testindex
    +        Test(testname)
    +        DeleteAllPlots()
    +        CloseDatabase(filename)
    +
    +sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_var.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_var.html new file mode 100644 index 000000000..a69afc1bd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_var.html @@ -0,0 +1,56 @@ + +Results for simulation/var.py + +

    Results of VisIt Regression Test - simulation/var

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    var000 modifications totalling 0 lines
    var010 modifications totalling 0 lines
    var020.000.00
    var030.000.00
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_var_py.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_var_py.html new file mode 100644 index 000000000..191165176 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_var_py.html @@ -0,0 +1,62 @@ +simulation/var.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  var.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#
    +#  Programmer: Kathleen Biagas
    +#  Date:       June 6, 2014
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Mon Nov 28, 2022
    +#    Replace obsolete Label text attributes with new versions.
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Create our simulation object.
    +sim = TestSimulation("var", "var.sim2")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("var00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("var01", sim.metadata())
    +
    +    # 2d mesh and vars
    +    AddPlot("Mesh", "mesh2d")
    +    AddPlot("Pseudocolor", "zonal_scalar")
    +    AddPlot("Vector", "zonal_vector")
    +    VectorAtts = VectorAttributes()
    +    VectorAtts.scale = 0.5
    +    VectorAtts.colorByMagnitude = 0
    +    VectorAtts.vectorColor = (255, 255, 255, 255)
    +    SetPlotOptions(VectorAtts)
    +    AddPlot("Label", "zonal_label")
    +    LabelAtts = LabelAttributes()
    +    LabelAtts.textFont1.scale = 6
    +    SetPlotOptions(LabelAtts)
    +    DrawPlots()
    +    Test("var02")
    +
    +    DeleteAllPlots()
    +
    +    # 2d mesh and vars
    +    AddPlot("Mesh", "mesh3d")
    +    AddPlot("Pseudocolor", "nodal_scalar")
    +    AddPlot("Vector", "nodal_vector")
    +    VectorAtts = VectorAttributes()
    +    VectorAtts.scale = 0.5
    +    SetPlotOptions(VectorAtts)
    +
    +    DrawPlots()
    +    Test("var03")
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_zerocopy.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_zerocopy.html new file mode 100644 index 000000000..825c59df4 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_zerocopy.html @@ -0,0 +1,285 @@ + +Results for simulation/zerocopy.py + +

    Results of VisIt Regression Test - simulation/zerocopy

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    zerocopy000 modifications totalling 0 lines
    zerocopy010 modifications totalling 0 lines
    Mesh soa_s
    zerocopy_soa_s_000.000.00
    zerocopy_soa_s_010.000.00
    zerocopy_soa_s_020.000.00
    zerocopy_soa_s_030.000.00
    zerocopy_soa_s_040.000.00
    zerocopy_soa_s_050.000.00
    Mesh soa_m
    zerocopy_soa_m_000.000.00
    zerocopy_soa_m_010.000.00
    zerocopy_soa_m_020.000.00
    zerocopy_soa_m_030.000.00
    zerocopy_soa_m_040.000.00
    zerocopy_soa_m_050.000.00
    Mesh soa_i
    zerocopy_soa_i_000.000.00
    zerocopy_soa_i_010.000.00
    zerocopy_soa_i_020.000.00
    zerocopy_soa_i_030.000.00
    zerocopy_soa_i_040.000.00
    zerocopy_soa_i_050.000.00
    Mesh aos_s
    zerocopy_aos_s_000.000.00
    zerocopy_aos_s_010.000.00
    zerocopy_aos_s_020.000.00
    zerocopy_aos_s_030.000.00
    zerocopy_aos_s_040.000.00
    zerocopy_aos_s_050.000.00
    Mesh aos_m
    zerocopy_aos_m_000.000.00
    zerocopy_aos_m_010.000.00
    zerocopy_aos_m_020.000.00
    zerocopy_aos_m_030.000.00
    zerocopy_aos_m_040.000.00
    zerocopy_aos_m_050.000.00
    Mesh aos_c
    zerocopy_aos_c_000.000.00
    zerocopy_aos_c_010.000.00
    zerocopy_aos_c_020.000.00
    zerocopy_aos_c_030.000.00
    zerocopy_aos_c_040.000.00
    zerocopy_aos_c_050.000.00
    Memory usage
    zerocopy020 modifications totalling 0 lines
    +

    Final Return Code: 119

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/simulation_zerocopy_py.html b/2024-12-12-22:00/poodle_trunk_serial/simulation_zerocopy_py.html new file mode 100644 index 000000000..08c59dab3 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/simulation_zerocopy_py.html @@ -0,0 +1,178 @@ +simulation/zerocopy.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  zerocopy.py
    +#
    +#  Tests:      libsim - connecting to simulation and retrieving data from it.
    +#
    +#  Programmer: Brad Whitlock
    +#  Date:       Wed Jul 22 16:07:12 PDT 2015
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +import string
    +
    +def step(sim):
    +    sim.consolecommand("step")
    +    # Read from stderr to look for the echoed command. Sync.
    +    keepGoing = True
    +    while keepGoing:
    +        buf = sim.p.stderr.readline()
    +        print(buf)
    +        if "Command 'step'" in buf:
    +            keepGoing = False
    +
    +def MemorySample(sim, label = ""):
    +    EL = GetEngineList(1)
    +    pa = GetProcessAttributes("engine", EL[0][0], EL[0][1])
    +    return (pa.memory[0], label)
    +
    +def sv():
    +    v = GetView3D()
    +    v.viewNormal = (0.284499, -0.766043, 0.576401)
    +    v.focus = (0, 0.499486, 0)
    +    v.viewUp = (-0.137723, 0.562352, 0.815348)
    +    v.viewAngle = 30
    +    v.parallelScale = 1.49949
    +    v.nearPlane = -2.99897
    +    v.farPlane = 2.99897
    +    v.imagePan = (0.0351381, 0.0550703)
    +    v.imageZoom = 1.15316
    +    v.perspective = 1
    +    v.eyeAngle = 2
    +    v.centerOfRotationSet = 0
    +    v.centerOfRotation = (0, 0.499486, 0)
    +    v.axis3DScaleFlag = 0
    +    v.axis3DScales = (1, 1, 1)
    +    v.shear = (0, 0, 1)
    +    v.windowValid = 1
    +    SetView3D(v)
    +
    +def meshtest(sim, mesh):
    +    m = [MemorySample(sim, "Initial")]
    +    TestSection("Mesh " + mesh)
    +
    +    AddPlot("Pseudocolor", mesh + "/temperature")
    +    DrawPlots()
    +    sv()
    +    m = m + [MemorySample(sim, "Pseudocolor plot temperature")]
    +    Test("zerocopy_%s_00" % mesh)
    +
    +    ChangeActivePlotsVar(mesh + "/vx")
    +    Test("zerocopy_%s_01" % mesh)
    +    m = m + [MemorySample(sim, "Change to vx")]
    +
    +    ChangeActivePlotsVar(mesh + "/I")
    +    Test("zerocopy_%s_02" % mesh)
    +    m = m + [MemorySample(sim, "Change to I")]
    +
    +    ChangeActivePlotsVar(mesh + "/J")
    +    Test("zerocopy_%s_03" % mesh)
    +    m = m + [MemorySample(sim, "Change to J")]
    +
    +    ChangeActivePlotsVar(mesh + "/K")
    +    Test("zerocopy_%s_04" % mesh)
    +    m = m + [MemorySample(sim, "Change to K")]
    +
    +    DeleteAllPlots()
    +
    +    AddPlot("Vector", mesh + "/velocity")
    +    DrawPlots()
    +    Test("zerocopy_%s_05" % mesh)
    +    m = m + [MemorySample(sim, "Vector plot velocity")]
    +
    +    DeleteAllPlots()
    +    AddPlot("Pseudocolor", mesh + "/temperature")
    +    DrawPlots()
    +    for i in range(20):
    +        step(sim)
    +        m = m + [MemorySample(sim, "Pseudocolor plot temperature iteration %d" % i)]
    +    DeleteAllPlots()
    +    return m
    +
    +def SaveTestImage(name):
    +    # Save these images somewhat larger than a regular test case image
    +    # since the images contain a lot of text.
    +    swa = SaveWindowAttributes()
    +    swa.width = 800
    +    swa.height = 800
    +    swa.screenCapture = 0
    +    Test(name, swa)
    +
    +def MeshNames():
    +    return ("soa_s", "soa_m", "soa_i", "aos_s", "aos_m", "aos_c")
    +
    +def PlotMemoryCurve(filename, testname):
    +    OpenDatabase("simmem.curve")
    +    M = MeshNames()
    +    for mesh in M:
    +        AddPlot("Curve", mesh)
    +    DrawPlots()
    +    ResetView()
    +    SaveTestImage(testname)
    +
    +# Do a simple, reliable test without quantifying since that would not be
    +# portable and would require rebaselining as VisIt changes.
    +def TestMemoryUsage(memory, testname):
    +    def AllMethodsUseLessMemoryThanCopying(memory):
    +        numSamples = len(memory["aos_c"])
    +        for i in range(numSamples):
    +            copyMem = memory["aos_c"][i][0]
    +            for k in list(memory.keys()):
    +                if k != "aos_c":
    +                    if memory[k][i][0] > copyMem:
    +                        return False
    +        return True
    +    if AllMethodsUseLessMemoryThanCopying(memory):
    +        TestText(testname, "OK: All methods use less memory than copying.")
    +    else:
    +        TestText(testname, "ERROR: Some methods used more memory than copying.")
    +
    +def WriteData(filename, memory):
    +    print(memory)
    +    numSamples = len(memory["aos_c"])
    +    f = open(filename, "wt")
    +    M = MeshNames()
    +    f.write("event," + string.replace(str(M), "'", "")[1:-1] + "\n")
    +    for row in range(numSamples):
    +        s = memory["aos_c"][row][1]
    +        for m in M:
    +            s = s + ", " + str(memory[m][row][0])
    +        f.write(s + "\n")
    +    f.close()
    +
    +# Create our simulation object.
    +sim = TestSimulation("zerocopy", "zerocopy.sim2")
    +sim.addargument("-echo")
    +
    +# Test that we can start and connect to the simulation.
    +started, connected = TestSimStartAndConnect("zerocopy00", sim)
    +
    +# Perform our tests.
    +if connected:
    +    # Make sure the metadata is right.
    +    TestSimMetaData("zerocopy01", sim.metadata())
    +
    +    memorySamples = {}
    +    f = open("simmem.curve", "wt")
    +    M = MeshNames()
    +    for mesh in M:
    +        m = meshtest(sim, mesh)
    +        f.write("# " + mesh + "\n")
    +        for i in range(len(m)):
    +            f.write("%g %g\n" % (i,m[i][0]))
    +        memorySamples[mesh] = m
    +    f.close()
    +
    +    TestSection("Memory usage")
    +    TestMemoryUsage(memorySamples, "zerocopy02")
    +#    PlotMemoryCurve("simmem.curve", "zerocopy03")
    +#    WriteData("zerocopy.dat", memorySamples)
    +
    +# Close down the simulation.
    +if started:
    +    sim.endsim()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/unit_annotation_objects.html b/2024-12-12-22:00/poodle_trunk_serial/unit_annotation_objects.html new file mode 100644 index 000000000..2499e1397 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/unit_annotation_objects.html @@ -0,0 +1,44 @@ + +Results for unit/annotation_objects.py + +

    Results of VisIt Regression Test - unit/annotation_objects

    + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    ComparisonOperator_00
     "False" .eq. "False" : True
    ComparisonOperator_01
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/unit_annotation_objects_py.html b/2024-12-12-22:00/poodle_trunk_serial/unit_annotation_objects_py.html new file mode 100644 index 000000000..7d70185d7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/unit_annotation_objects_py.html @@ -0,0 +1,30 @@ +unit/annotation_objects.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  annotation_objects.py
    +#
    +#  Tests:      AnnotationObject unit test
    +#
    +#  Alister Maguire, Fri Jul 16 12:50:11 PDT 2021
    +#
    +#  Modifications:
    +#
    +# ----------------------------------------------------------------------------
    +
    +
    +def CheckComparisonOperator():
    +    annot = CreateAnnotationObject("Text2D")
    +
    +    #
    +    # In the past, a bug caused a crash whenever we compared to a non-annotation
    +    # type object.
    +    #
    +    TestValueEQ("ComparisonOperator_00", annot == "", False)
    +    TestValueEQ("ComparisonOperator_01", annot == annot, True)
    +
    +def RunMain():
    +    CheckComparisonOperator()
    +
    +RunMain()
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/unit_atts_assign.html b/2024-12-12-22:00/poodle_trunk_serial/unit_atts_assign.html new file mode 100644 index 000000000..40b36627d --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/unit_atts_assign.html @@ -0,0 +1,1782 @@ + +Results for unit/atts_assign.py + +

    Results of VisIt Regression Test - unit/atts_assign

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Assignment to bool member, "inverse", (of CylinderAttributes())
    ca.inverse=1,2
     "True" .eq. "True" : True
    ca.inverse='123'
     "True" .eq. "True" : True
    ca.inverse=(1+2j)
     "True" .eq. "True" : True
    ca.inverse=[2, 4, 6]
     "True" .eq. "True" : True
    ca.inverse=None
     "True" .eq. "True" : True
    ca.inverse=5
     "True" .eq. "True" : True
    ca.SetInverse('123')
     "True" .eq. "True" : True
    ca.SetInverse((1+2j))
     "True" .eq. "True" : True
    ca.SetInverse([2, 4, 6])
     "True" .eq. "True" : True
    ca.SetInverse(None)
     "True" .eq. "True" : True
    ca.SetInverse(5)
     "True" .eq. "True" : True
    ca.inverse=0
     "True" .eq. "True" : True
    ca.inverse=1
     "True" .eq. "True" : True
    ca.inverse=True
     "True" .eq. "True" : True
    ca.inverse=False
     "True" .eq. "True" : True
    ca.SetInverse(0)
     "True" .eq. "True" : True
    ca.SetInverse(1)
     "True" .eq. "True" : True
    ca.SetInverse(True)
     "True" .eq. "True" : True
    ca.SetInverse(False)
     "True" .eq. "True" : True
    Assignment to int member, "samplesPerRay", (of VolumeAttributes())
    va.samplesPerRay=1,2
     "True" .eq. "True" : True
    va.samplesPerRay='123'
     "True" .eq. "True" : True
    va.samplesPerRay=(1+2j)
     "True" .eq. "True" : True
    va.samplesPerRay=None
     "True" .eq. "True" : True
    va.samplesPerRay=[2, 4, 6]
     "True" .eq. "True" : True
    va.samplesPerRay=2147483648
     "True" .eq. "True" : True
    va.SetSamplesPerRay('123')
     "True" .eq. "True" : True
    va.SetSamplesPerRay((1+2j))
     "True" .eq. "True" : True
    va.SetSamplesPerRay(None)
     "True" .eq. "True" : True
    va.SetSamplesPerRay([2, 4, 6])
     "True" .eq. "True" : True
    va.SetSamplesPerRay(2147483648)
     "True" .eq. "True" : True
    va.samplesPerRay=0
     "True" .eq. "True" : True
    va.samplesPerRay=1
     "True" .eq. "True" : True
    va.samplesPerRay=-1
     "True" .eq. "True" : True
    va.samplesPerRay=5
     "True" .eq. "True" : True
    va.samplesPerRay=True
     "True" .eq. "True" : True
    va.samplesPerRay=False
     "True" .eq. "True" : True
    va.samplesPerRay=2147483647
     "True" .eq. "True" : True
    va.SetSamplesPerRay(0)
     "True" .eq. "True" : True
    va.SetSamplesPerRay(1)
     "True" .eq. "True" : True
    va.SetSamplesPerRay(-1)
     "True" .eq. "True" : True
    va.SetSamplesPerRay(5)
     "True" .eq. "True" : True
    va.SetSamplesPerRay(True)
     "True" .eq. "True" : True
    va.SetSamplesPerRay(False)
     "True" .eq. "True" : True
    va.SetSamplesPerRay(2147483647)
     "True" .eq. "True" : True
    Assignment to float member, "opacityAttenuation", (of VolumeAttributes())
    va.opacityAttenuation=1,2
     "True" .eq. "True" : True
    va.opacityAttenuation='123'
     "True" .eq. "True" : True
    va.opacityAttenuation=(1+2j)
     "True" .eq. "True" : True
    va.opacityAttenuation=None
     "True" .eq. "True" : True
    va.opacityAttenuation=[2, 4, 6]
     "True" .eq. "True" : True
    va.opacityAttenuation=3.402823e+39
     "True" .eq. "True" : True
    va.SetOpacityAttenuation('123')
     "True" .eq. "True" : True
    va.SetOpacityAttenuation((1+2j))
     "True" .eq. "True" : True
    va.SetOpacityAttenuation(None)
     "True" .eq. "True" : True
    va.SetOpacityAttenuation([2, 4, 6])
     "True" .eq. "True" : True
    va.SetOpacityAttenuation(3.402823e+39)
     "True" .eq. "True" : True
    va.opacityAttenuation=0
     "True" .eq. "True" : True
    va.opacityAttenuation=1
     "True" .eq. "True" : True
    va.opacityAttenuation=-1
     "True" .eq. "True" : True
    va.opacityAttenuation=0.3
     "True" .eq. "True" : True
    va.opacityAttenuation=3.40282e+37
     "True" .eq. "True" : True
    va.opacityAttenuation=True
     "True" .eq. "True" : True
    va.opacityAttenuation=False
     "True" .eq. "True" : True
    va.SetOpacityAttenuation(0)
     "True" .eq. "True" : True
    va.SetOpacityAttenuation(1)
     "True" .eq. "True" : True
    va.SetOpacityAttenuation(-1)
     "True" .eq. "True" : True
    va.SetOpacityAttenuation(0.3)
     "True" .eq. "True" : True
    va.SetOpacityAttenuation(3.40282e+37)
     "True" .eq. "True" : True
    va.SetOpacityAttenuation(True)
     "True" .eq. "True" : True
    va.SetOpacityAttenuation(False)
     "True" .eq. "True" : True
    Assignment to double member, "radius", (of CylinderAttributes())
    ca.radius=1,2
     "True" .eq. "True" : True
    ca.radius='123'
     "True" .eq. "True" : True
    ca.radius=(1+2j)
     "True" .eq. "True" : True
    ca.radius=None
     "True" .eq. "True" : True
    ca.radius=[2, 4, 6]
     "True" .eq. "True" : True
    ca.SetRadius('123')
     "True" .eq. "True" : True
    ca.SetRadius((1+2j))
     "True" .eq. "True" : True
    ca.SetRadius(None)
     "True" .eq. "True" : True
    ca.SetRadius([2, 4, 6])
     "True" .eq. "True" : True
    ca.radius=0
     "True" .eq. "True" : True
    ca.radius=1
     "True" .eq. "True" : True
    ca.radius=-1
     "True" .eq. "True" : True
    ca.radius=5.5
     "True" .eq. "True" : True
    ca.radius=0.0
     "True" .eq. "True" : True
    ca.radius=inf
     "True" .eq. "True" : True
    ca.radius=True
     "True" .eq. "True" : True
    ca.radius=False
     "True" .eq. "True" : True
    ca.SetRadius(0)
     "True" .eq. "True" : True
    ca.SetRadius(1)
     "True" .eq. "True" : True
    ca.SetRadius(-1)
     "True" .eq. "True" : True
    ca.SetRadius(5.5)
     "True" .eq. "True" : True
    ca.SetRadius(0.0)
     "True" .eq. "True" : True
    ca.SetRadius(inf)
     "True" .eq. "True" : True
    ca.SetRadius(True)
     "True" .eq. "True" : True
    ca.SetRadius(False)
     "True" .eq. "True" : True
    Assignment to string member, "designator", (of CurveAttributes())
    ca.designator="123","abc"
     "True" .eq. "True" : True
    ca.designator=0
     "True" .eq. "True" : True
    ca.designator=1
     "True" .eq. "True" : True
    ca.designator=1.1
     "True" .eq. "True" : True
    ca.designator=(1+2j)
     "True" .eq. "True" : True
    ca.designator=None
     "True" .eq. "True" : True
    ca.designator=[2, 4, 6]
     "True" .eq. "True" : True
    ca.SetDesignator(0)
     "True" .eq. "True" : True
    ca.SetDesignator(1)
     "True" .eq. "True" : True
    ca.SetDesignator(1.1)
     "True" .eq. "True" : True
    ca.SetDesignator((1+2j))
     "True" .eq. "True" : True
    ca.SetDesignator(None)
     "True" .eq. "True" : True
    ca.SetDesignator([2, 4, 6])
     "True" .eq. "True" : True
    ca.designator='123'
     "True" .eq. "True" : True
    ca.designator='abc'
     "True" .eq. "True" : True
    ca.designator=''
     "True" .eq. "True" : True
    ca.SetDesignator('123')
     "True" .eq. "True" : True
    ca.SetDesignator('abc')
     "True" .eq. "True" : True
    ca.SetDesignator('')
     "True" .eq. "True" : True
    Assignment to GlyphType member, "pointType", (of MeshAttributes())
    ma.pointType=1
     "True" .eq. "True" : True
    ma.pointType='123'
     "True" .eq. "True" : True
    ma.pointType=(1+2j)
     "True" .eq. "True" : True
    ma.pointType=None
     "True" .eq. "True" : True
    ma.pointType=[2, 4, 6]
     "True" .eq. "True" : True
    ma.pointType=-1
     "True" .eq. "True" : True
    ma.pointType=123123123123123123123123123123
     "True" .eq. "True" : True
    ma.SetPointType('123')
     "True" .eq. "True" : True
    ma.SetPointType((1+2j))
     "True" .eq. "True" : True
    ma.SetPointType(None)
     "True" .eq. "True" : True
    ma.SetPointType([2, 4, 6])
     "True" .eq. "True" : True
    ma.SetPointType(-1)
     "True" .eq. "True" : True
    ma.SetPointType(123123123123123123123123123123)
     "True" .eq. "True" : True
    ma.pointType=0
     "True" .eq. "True" : True
    ma.pointType=1
     "True" .eq. "True" : True
    ma.pointType=5
     "True" .eq. "True" : True
    ma.pointType=True
     "True" .eq. "True" : True
    ma.pointType=False
     "True" .eq. "True" : True
    ma.pointType=6
     "True" .eq. "True" : True
    ma.SetPointType(0)
     "True" .eq. "True" : True
    ma.SetPointType(1)
     "True" .eq. "True" : True
    ma.SetPointType(5)
     "True" .eq. "True" : True
    ma.SetPointType(True)
     "True" .eq. "True" : True
    ma.SetPointType(False)
     "True" .eq. "True" : True
    ma.SetPointType(6)
     "True" .eq. "True" : True
    Assignment to Enum member, "smoothingLevel", (of MeshAttributes())
    ma.smoothingLevel=1
     "True" .eq. "True" : True
    ma.smoothingLevel='123'
     "True" .eq. "True" : True
    ma.smoothingLevel=(1+2j)
     "True" .eq. "True" : True
    ma.smoothingLevel=None
     "True" .eq. "True" : True
    ma.smoothingLevel=[2, 4, 6]
     "True" .eq. "True" : True
    ma.smoothingLevel=-1
     "True" .eq. "True" : True
    ma.smoothingLevel=123123123
     "True" .eq. "True" : True
    ma.smoothingLevel=123123123123123123123123123123
     "True" .eq. "True" : True
    ma.SetSmoothingLevel('123')
     "True" .eq. "True" : True
    ma.SetSmoothingLevel((1+2j))
     "True" .eq. "True" : True
    ma.SetSmoothingLevel(None)
     "True" .eq. "True" : True
    ma.SetSmoothingLevel([2, 4, 6])
     "True" .eq. "True" : True
    ma.SetSmoothingLevel(-1)
     "True" .eq. "True" : True
    ma.SetSmoothingLevel(123123123)
     "True" .eq. "True" : True
    ma.SetSmoothingLevel(123123123123123123123123123123)
     "True" .eq. "True" : True
    ma.smoothingLevel=0
     "True" .eq. "True" : True
    ma.smoothingLevel=1
     "True" .eq. "True" : True
    ma.smoothingLevel=2
     "True" .eq. "True" : True
    ma.smoothingLevel=True
     "True" .eq. "True" : True
    ma.smoothingLevel=False
     "True" .eq. "True" : True
    ma.smoothingLevel=1
     "True" .eq. "True" : True
    ma.SmoothingLevel(0)
     "True" .eq. "True" : True
    ma.SmoothingLevel(1)
     "True" .eq. "True" : True
    ma.SmoothingLevel(2)
     "True" .eq. "True" : True
    ma.SmoothingLevel(True)
     "True" .eq. "True" : True
    ma.SmoothingLevel(False)
     "True" .eq. "True" : True
    ma.SmoothingLevel(1)
     "True" .eq. "True" : True
    Assignment to tuple, "point1", member (of CylinderAttributes())
    ca.point=1,2,3
     "True" .eq. "True" : True
    ca.SetPoint(1,2,3)
     "True" .eq. "True" : True
    ca.point1=1,2
     "True" .eq. "True" : True
    ca.point1=1,2,3,4
     "True" .eq. "True" : True
    ca.point1=1, 2
     "True" .eq. "True" : True
    ca.point1=1, 2, 3, 4
     "True" .eq. "True" : True
    ca.point1='123'
     "True" .eq. "True" : True
    ca.point1=1, (1+2j), 3
     "True" .eq. "True" : True
    ca.point1=1, [2, 4, 6], 3
     "True" .eq. "True" : True
    ca.point1=1, 'b', 3
     "True" .eq. "True" : True
    ca.point1=1, None, 3
     "True" .eq. "True" : True
    ca.point1=array([1.1, 2.2]
     "True" .eq. "True" : True
    ca.point1=array([1.1, 2.2, 3.3, 4.4]
     "True" .eq. "True" : True
    ca.SetPoint1(1, 2)
     "True" .eq. "True" : True
    ca.SetPoint1(1, 2, 3, 4)
     "True" .eq. "True" : True
    ca.SetPoint1('123')
     "True" .eq. "True" : True
    ca.SetPoint1(1, (1+2j), 3)
     "True" .eq. "True" : True
    ca.SetPoint1(1, [2, 4, 6], 3)
     "True" .eq. "True" : True
    ca.SetPoint1(1, 'b', 3)
     "True" .eq. "True" : True
    ca.SetPoint1(1, None, 3)
     "True" .eq. "True" : True
    ca.SetPoint1(array([1.1, 2.2])
     "True" .eq. "True" : True
    ca.SetPoint1(array([1.1, 2.2, 3.3, 4.4])
     "True" .eq. "True" : True
    ca.point1=1,2,3
     "True" .eq. "True" : True
    ca.point1=1, 2, 3
     "True" .eq. "True" : True
    ca.point1=1.1, 2.2, 3.3
     "True" .eq. "True" : True
    ca.point1=2, 4, 6
     "True" .eq. "True" : True
    ca.point1=array([1, 2, 3]
     "True" .eq. "True" : True
    ca.point1=array([1.1, 2.2, 3.3]
     "True" .eq. "True" : True
    ca.SetPoint1(1, 2, 3)
     "True" .eq. "True" : True
    ca.SetPoint1(1.1, 2.2, 3.3)
     "True" .eq. "True" : True
    ca.SetPoint1(2, 4, 6)
     "True" .eq. "True" : True
    ca.SetPoint1(array([1, 2, 3])
     "True" .eq. "True" : True
    ca.SetPoint1(array([1.1, 2.2, 3.3])
     "True" .eq. "True" : True
    Assignment to ucharVector member, "changedColors", (of MultiCurveAttributes())
    mca.changedColors=1,2,3
     "True" .eq. "True" : True
    mca.changedColors=1, 123123123123123123123123123123, 3
     "True" .eq. "True" : True
    mca.changedColors=1, (1+2j), 3
     "True" .eq. "True" : True
    mca.changedColors=1, [2, 4, 6], 3
     "True" .eq. "True" : True
    mca.changedColors=1, 'b', 3
     "True" .eq. "True" : True
    mca.changedColors=1, None, 3
     "True" .eq. "True" : True
    mca.changedColors='123',
     "True" .eq. "True" : True
    mca.SetChangedColors(1, 123123123123123123123123123123, 3)
     "True" .eq. "True" : True
    mca.SetChangedColors(1, (1+2j), 3)
     "True" .eq. "True" : True
    mca.SetChangedColors(1, [2, 4, 6], 3)
     "True" .eq. "True" : True
    mca.SetChangedColors(1, 'b', 3)
     "True" .eq. "True" : True
    mca.SetChangedColors(1, None, 3)
     "True" .eq. "True" : True
    mca.SetChangedColors('123',)
     "True" .eq. "True" : True
    mca.changedColors=1, 2, 3
     "True" .eq. "True" : True
    mca.changedColors=2, 4, 6
     "True" .eq. "True" : True
    mca.changedColors=1, True, 3
     "True" .eq. "True" : True
    mca.changedColors=1, False, 3
     "True" .eq. "True" : True
    mca.SetChangedColors(1, 2, 3)
     "True" .eq. "True" : True
    mca.SetChangedColors(2, 4, 6)
     "True" .eq. "True" : True
    mca.SetChangedColors(1, True, 3)
     "True" .eq. "True" : True
    mca.SetChangedColors(1, False, 3)
     "True" .eq. "True" : True
    mca.SetChangedColors(array([1, 2, 3])
     "True" .eq. "True" : True
    Assignment to intVector member, "index", (of OnionPeelAttributes())
    opa.index=1,2,3
     "True" .eq. "True" : True
    opa.index=2147483648,
     "True" .eq. "True" : True
    opa.index=1+2j),
     "True" .eq. "True" : True
    opa.index='b',
     "True" .eq. "True" : True
    opa.index=None,
     "True" .eq. "True" : True
    opa.index=1, 2147483648, 3
     "True" .eq. "True" : True
    opa.index=1, (1+2j), 3
     "True" .eq. "True" : True
    opa.index=1, [2, 4, 6], 3
     "True" .eq. "True" : True
    opa.index=1, 'b', 3
     "True" .eq. "True" : True
    opa.index=1, None, 3
     "True" .eq. "True" : True
    opa.SetIndex(2147483648,)
     "True" .eq. "True" : True
    opa.SetIndex(1+2j),)
     "True" .eq. "True" : True
    opa.SetIndex('b',)
     "True" .eq. "True" : True
    opa.SetIndex(None,)
     "True" .eq. "True" : True
    opa.SetIndex(1, 2147483648, 3)
     "True" .eq. "True" : True
    opa.SetIndex(1, (1+2j), 3)
     "True" .eq. "True" : True
    opa.SetIndex(1, [2, 4, 6], 3)
     "True" .eq. "True" : True
    opa.SetIndex(1, 'b', 3)
     "True" .eq. "True" : True
    opa.SetIndex(1, None, 3)
     "True" .eq. "True" : True
    opa.index=1, 2, 3
     "True" .eq. "True" : True
    opa.index=[2, 4, 6]
     "True" .eq. "True" : True
    opa.index=2, 4, 6
     "True" .eq. "True" : True
    opa.index=1, True, 3
     "True" .eq. "True" : True
    opa.index=1, False, 3
     "True" .eq. "True" : True
    opa.index=1, 2147483647, 3
     "True" .eq. "True" : True
    opa.SetIndex(1, 2, 3)
     "True" .eq. "True" : True
    opa.SetIndex([2, 4, 6])
     "True" .eq. "True" : True
    opa.SetIndex(2, 4, 6)
     "True" .eq. "True" : True
    opa.SetIndex(1, True, 3)
     "True" .eq. "True" : True
    opa.SetIndex(1, False, 3)
     "True" .eq. "True" : True
    opa.SetIndex(1, 2147483647, 3)
     "True" .eq. "True" : True
    opa.SetIndex(array([1, 2, 3])
     "True" .eq. "True" : True
    Assignment to doubleVector member, "values", (of ContourAttributes())
    ca.contourValue=1,2,3
     "True" .eq. "True" : True
    ca.contourValue=1+2j),
     "True" .eq. "True" : True
    ca.contourValue='b',
     "True" .eq. "True" : True
    ca.contourValue=None,
     "True" .eq. "True" : True
    ca.contourValue=1, (1+2j), 3
     "True" .eq. "True" : True
    ca.contourValue=1, [2, 4, 6], 3
     "True" .eq. "True" : True
    ca.contourValue=1, 'b', 3
     "True" .eq. "True" : True
    ca.contourValue=1, None, 3
     "True" .eq. "True" : True
    ca.SetContourValue(1+2j),)
     "True" .eq. "True" : True
    ca.SetContourValue('b',)
     "True" .eq. "True" : True
    ca.SetContourValue(None,)
     "True" .eq. "True" : True
    ca.SetContourValue(1, (1+2j), 3)
     "True" .eq. "True" : True
    ca.SetContourValue(1, [2, 4, 6], 3)
     "True" .eq. "True" : True
    ca.SetContourValue(1, 'b', 3)
     "True" .eq. "True" : True
    ca.SetContourValue(1, None, 3)
     "True" .eq. "True" : True
    ca.contourValue=1, 2, 3
     "True" .eq. "True" : True
    ca.contourValue=[2, 4, 6]
     "True" .eq. "True" : True
    ca.contourValue=2, 4, 6
     "True" .eq. "True" : True
    ca.contourValue=1, True, 3
     "True" .eq. "True" : True
    ca.contourValue=1, False, 3
     "True" .eq. "True" : True
    ca.SetContourValue(1, 2, 3)
     "True" .eq. "True" : True
    ca.SetContourValue([2, 4, 6])
     "True" .eq. "True" : True
    ca.SetContourValue(2, 4, 6)
     "True" .eq. "True" : True
    ca.SetContourValue(1, True, 3)
     "True" .eq. "True" : True
    ca.SetContourValue(1, False, 3)
     "True" .eq. "True" : True
    ca.SetContourValue(array([1.1, 2.2, 3.3])
     "True" .eq. "True" : True
    Assignment to ucharArray member, "freeformOpacity", (of VolumeAttributes())
    va.freeformOpacity=3,17
     "True" .eq. "True" : True
    va.SetFreeformOpacity(3,17)
     "True" .eq. "True" : True
    va.freeformOpacity=tuple(arr)
     "True" .eq. "True" : True
    va.SetFreeformOpacity(*tuple(arr))
     "True" .eq. "True" : True
    va.freeformOpacity=3,None
     "True" .eq. "True" : True
    va.freeformOpacity=3,(1+2j)
     "True" .eq. "True" : True
    va.freeformOpacity=3,[2, 4, 6]
     "True" .eq. "True" : True
    va.freeformOpacity=3,'123'
     "True" .eq. "True" : True
    va.freeformOpacity=None,17
     "True" .eq. "True" : True
    va.freeformOpacity=(1+2j),17
     "True" .eq. "True" : True
    va.freeformOpacity=[2, 4, 6],17
     "True" .eq. "True" : True
    va.freeformOpacity='123',17
     "True" .eq. "True" : True
    va.freeformOpacity=-3,17
     "True" .eq. "True" : True
    va.freeformOpacity=3,1700
     "True" .eq. "True" : True
    va.SetFreeformOpacity(3,None)
     "True" .eq. "True" : True
    va.SetFreeformOpacity(3,(1+2j))
     "True" .eq. "True" : True
    va.SetFreeformOpacity(3,[2, 4, 6])
     "True" .eq. "True" : True
    va.SetFreeformOpacity(3,'123')
     "True" .eq. "True" : True
    va.SetFreeformOpacity(None,17)
     "True" .eq. "True" : True
    va.SetFreeformOpacity((1+2j),17)
     "True" .eq. "True" : True
    va.SetFreeformOpacity([2, 4, 6],17)
     "True" .eq. "True" : True
    va.SetFreeformOpacity('123',17)
     "True" .eq. "True" : True
    va.SetFreeformOpacity(-3,17)
     "True" .eq. "True" : True
    va.SetFreeformOpacity(3,1700)
     "True" .eq. "True" : True
    va.freeformOpacity=(17,)*256
     "True" .eq. "True" : True
    va.SetFreeformOpacity((17,)*256)
     "True" .eq. "True" : True
    va.freeformOpacity=(17, 17, 17, None, 17, 17, 17, ...
     "True" .eq. "True" : True
    va.freeformOpacity=(17, 17, 17, (1+2j, ..., 17, 17, 17, ...
     "True" .eq. "True" : True
    va.freeformOpacity=(17, 17, 17, [2, 4, 6], 17, 17, 17, ...
     "True" .eq. "True" : True
    va.freeformOpacity=(17, 17, 17, (1, 2, 3, ..., 17, 17, 17, ...
     "True" .eq. "True" : True
    va.freeformOpacity=(17, 17, 17, '123', 17, 17, 17, ...
     "True" .eq. "True" : True
    va.SetFreeformOpacity(17, 17, 17, None, 17, 17, 17, ...)
     "True" .eq. "True" : True
    va.SetFreeformOpacity(17, 17, 17, (1+2j, ...), 17, 17, 17, ...)
     "True" .eq. "True" : True
    va.SetFreeformOpacity(17, 17, 17, [2, 4, 6], 17, 17, 17, ...)
     "True" .eq. "True" : True
    va.SetFreeformOpacity(17, 17, 17, (1, 2, 3, ...), 17, 17, 17, ...)
     "True" .eq. "True" : True
    va.SetFreeformOpacity(17, 17, 17, '123', 17, 17, 17, ...)
     "True" .eq. "True" : True
    va.SetFreeformOpacity(fails[0])
     "True" .eq. "True" : True
    va.SetFreeformOpacity(fails[1])
     "True" .eq. "True" : True
    va.SetFreeformOpacity(fails[2])
     "True" .eq. "True" : True
    va.SetFreeformOpacity(fails[3])
     "True" .eq. "True" : True
    va.SetFreeformOpacity(fails[4])
     "True" .eq. "True" : True
    Assignment to intArray member, "reflections", (of ReflectAttributes())
    ra.reflections=0,1,0,1,0,1,0,1
     "True" .eq. "True" : True
    ra.reflections=0, 1, None, 1, 0, 1, 0, 1
     "True" .eq. "True" : True
    ra.reflections=0, 1, (1+2j), 1, 0, 1, 0, 1
     "True" .eq. "True" : True
    ra.reflections=0, 1, [2, 4, 6], 1, 0, 1, 0, 1
     "True" .eq. "True" : True
    ra.reflections=0, 1, 2147483648, 1, 0, 1, 0, 1
     "True" .eq. "True" : True
    ra.reflections=0, 1, '123', 1, 0, 1, 0, 1
     "True" .eq. "True" : True
    ra.reflections=0, 1, 0, 1, 0, 1, 0, 1, 1
     "True" .eq. "True" : True
    ra.reflections=0, 1, 0, 1, 0, 1, 0
     "True" .eq. "True" : True
    ra.SetReflections(0, 1, None, 1, 0, 1, 0, 1)
     "True" .eq. "True" : True
    ra.SetReflections(0, 1, (1+2j), 1, 0, 1, 0, 1)
     "True" .eq. "True" : True
    ra.SetReflections(0, 1, [2, 4, 6], 1, 0, 1, 0, 1)
     "True" .eq. "True" : True
    ra.SetReflections(0, 1, 2147483648, 1, 0, 1, 0, 1)
     "True" .eq. "True" : True
    ra.SetReflections(0, 1, '123', 1, 0, 1, 0, 1)
     "True" .eq. "True" : True
    ra.SetReflections(0, 1, 0, 1, 0, 1, 0, 1, 1)
     "True" .eq. "True" : True
    ra.SetReflections(0, 1, 0, 1, 0, 1, 0)
     "True" .eq. "True" : True
    ra.reflections=0, 1, 0, 1, 0, 1, 0, 1
     "True" .eq. "True" : True
    ra.reflections=-1, 100, -1, 100, -1, 100, -1, 100
     "True" .eq. "True" : True
    ra.reflections=0, True, False, 1, 0, 1, 0, 1
     "True" .eq. "True" : True
    ra.reflections=0, 1, 2147483647, 1, 0, 1, 0, 1
     "True" .eq. "True" : True
    ra.reflections=array([0, 1, 0, 1, 0, 1, 0, 1]
     "True" .eq. "True" : True
    ra.SetReflections(0, 1, 0, 1, 0, 1, 0, 1)
     "True" .eq. "True" : True
    ra.SetReflections(-1, 100, -1, 100, -1, 100, -1, 100)
     "True" .eq. "True" : True
    ra.SetReflections(0, True, False, 1, 0, 1, 0, 1)
     "True" .eq. "True" : True
    ra.SetReflections(0, 1, 2147483647, 1, 0, 1, 0, 1)
     "True" .eq. "True" : True
    ra.SetReflections(array([0, 1, 0, 1, 0, 1, 0, 1])
     "True" .eq. "True" : True
    Assignment to floatArray member, "center", (of RadialResampleAttributes())
    rra.center=0,1,2
     "True" .eq. "True" : True
    rra.center=0,1
     "True" .eq. "True" : True
    rra.center=0,1,2,3
     "True" .eq. "True" : True
    rra.center=0, 1
     "True" .eq. "True" : True
    rra.center=0, 1, 2, 3
     "True" .eq. "True" : True
    rra.center=0, None, 2
     "True" .eq. "True" : True
    rra.center=0, (1+2j), 2
     "True" .eq. "True" : True
    rra.center=0, [2, 4, 6], 2
     "True" .eq. "True" : True
    rra.center=0, '123', 2
     "True" .eq. "True" : True
    rra.center=0, 3.402823e+39, 2
     "True" .eq. "True" : True
    rra.SetCenter(0, 1)
     "True" .eq. "True" : True
    rra.SetCenter(0, 1, 2, 3)
     "True" .eq. "True" : True
    rra.SetCenter(0, None, 2)
     "True" .eq. "True" : True
    rra.SetCenter(0, (1+2j), 2)
     "True" .eq. "True" : True
    rra.SetCenter(0, [2, 4, 6], 2)
     "True" .eq. "True" : True
    rra.SetCenter(0, '123', 2)
     "True" .eq. "True" : True
    rra.SetCenter(0, 3.402823e+39, 2)
     "True" .eq. "True" : True
    rra.center=1, 2, 3
     "True" .eq. "True" : True
    rra.center=1.1, 2.2, 3.3
     "True" .eq. "True" : True
    rra.center=2, 4, 6
     "True" .eq. "True" : True
    rra.center=1, True, 3
     "True" .eq. "True" : True
    rra.center=1, False, 3
     "True" .eq. "True" : True
    rra.center=1, 3.40282e+37, 3
     "True" .eq. "True" : True
    rra.center=array([1.1, 2.2, 3.3]
     "True" .eq. "True" : True
    rra.SetCenter(1, 2, 3)
     "True" .eq. "True" : True
    rra.SetCenter(1.1, 2.2, 3.3)
     "True" .eq. "True" : True
    rra.SetCenter(2, 4, 6)
     "True" .eq. "True" : True
    rra.SetCenter(1, True, 3)
     "True" .eq. "True" : True
    rra.SetCenter(1, False, 3)
     "True" .eq. "True" : True
    rra.SetCenter(1, 3.40282e+37, 3)
     "True" .eq. "True" : True
    rra.SetCenter(array([1.1, 2.2, 3.3])
     "True" .eq. "True" : True
    Assignment to doubleArray member, "materialProperties", (of VolumeAttributes())
    va.materialProperties=0,1,2,3
     "True" .eq. "True" : True
    va.materialProperties=0,1,2
     "True" .eq. "True" : True
    va.materialProperties=0,1,2,3,4
     "True" .eq. "True" : True
    va.materialProperties=0, 1
     "True" .eq. "True" : True
    va.materialProperties=0, 1, 2, 3, 4
     "True" .eq. "True" : True
    va.materialProperties=0, None, 2, 3
     "True" .eq. "True" : True
    va.materialProperties=0, (1+2j), 2, 3
     "True" .eq. "True" : True
    va.materialProperties=0, [2, 4, 6], 2, 3
     "True" .eq. "True" : True
    va.materialProperties=0, '123', 2, 3
     "True" .eq. "True" : True
    va.SetMaterialProperties(0, 1)
     "True" .eq. "True" : True
    va.SetMaterialProperties(0, 1, 2, 3, 4)
     "True" .eq. "True" : True
    va.SetMaterialProperties(0, None, 2, 3)
     "True" .eq. "True" : True
    va.SetMaterialProperties(0, (1+2j), 2, 3)
     "True" .eq. "True" : True
    va.SetMaterialProperties(0, [2, 4, 6], 2, 3)
     "True" .eq. "True" : True
    va.SetMaterialProperties(0, '123', 2, 3)
     "True" .eq. "True" : True
    va.materialProperties=1, 2, 3, 4
     "True" .eq. "True" : True
    va.materialProperties=1.1, 2.2, 3.3, 4.4
     "True" .eq. "True" : True
    va.materialProperties=1, True, 3, 4
     "True" .eq. "True" : True
    va.materialProperties=1, False, 3, 4
     "True" .eq. "True" : True
    va.SetMaterialProperties(1, 2, 3, 4)
     "True" .eq. "True" : True
    va.SetMaterialProperties(1.1, 2.2, 3.3, 4.4)
     "True" .eq. "True" : True
    va.SetMaterialProperties(1, True, 3, 4)
     "True" .eq. "True" : True
    va.SetMaterialProperties(1, False, 3, 4)
     "True" .eq. "True" : True
    va.SetMaterialProperties(array([1.1, 2.2, 3.3, 4.4])
     "True" .eq. "True" : True
    ColorAttribute stuff
    ca.color=0, 1, 2
     "True" .eq. "True" : True
    ca.color=0, 1, 2, 3, 4
     "True" .eq. "True" : True
    ca.color=0, None, 2, 3
     "True" .eq. "True" : True
    ca.color=0, (1+2j), 2, 3
     "True" .eq. "True" : True
    ca.color=0, [2, 4, 6], 2, 3
     "True" .eq. "True" : True
    ca.color=0, '123', 2, 3
     "True" .eq. "True" : True
    ca.color=0, -1, 2, 3
     "True" .eq. "True" : True
    ca.color=0, 256, 2, 3
     "True" .eq. "True" : True
    ca.SetColor(0, 1, 2)
     "True" .eq. "True" : True
    ca.SetColor(0, 1, 2, 3, 4)
     "True" .eq. "True" : True
    ca.SetColor(0, None, 2, 3)
     "True" .eq. "True" : True
    ca.SetColor(0, (1+2j), 2, 3)
     "True" .eq. "True" : True
    ca.SetColor(0, [2, 4, 6], 2, 3)
     "True" .eq. "True" : True
    ca.SetColor(0, '123', 2, 3)
     "True" .eq. "True" : True
    ca.SetColor(0, -1, 2, 3)
     "True" .eq. "True" : True
    ca.SetColor(0, 256, 2, 3)
     "True" .eq. "True" : True
    cla.AddColors
     "True" .eq. "True" : True
    cla.colors
     "True" .eq. "True" : True
    cla.GetColors(0)
     "True" .eq. "True" : True
    cla.GetColors(2)
     "True" .eq. "True" : True
    behavior of dir()
    dir()
     "True" .eq. "True" : True
    behavior of help()
    help(AddPlot)
     "True" .eq. "True" : True
    help(CreateDatabaseCorrelation)
     "True" .eq. "True" : True
    help(SILRestriction)
     "True" .eq. "True" : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/unit_atts_assign_py.html b/2024-12-12-22:00/poodle_trunk_serial/unit_atts_assign_py.html new file mode 100644 index 000000000..ef2410bab --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/unit_atts_assign_py.html @@ -0,0 +1,1211 @@ +unit/atts_assign.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  atts_assign.py
    +#
    +#  Tests: Behavior of assignment for attribute objects. Ensures good cases
    +#  succeed and bad cases fail with specific python exceptions. Tests variety
    +#  of types present in members of VisIt attribute objects. Tests both
    +#  assignment usage (e.g. atts.memberName=...) and setter function usage
    +#  (e.g. atts.SetMemberName(...))
    +#
    +#  Mark C. Miller, Tue Jun  8 15:51:59 PDT 2021
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Tue July 27, 2021
    +#    Assigning Max32BitInt+1 to int on Windows causes TypeError, not
    +#    ValueError, so change expected results in those cases.
    +#
    +#    Kathleen Biagas, Friday Feb 9, 2024
    +#    Manually skipping some dir() and help() tests that fail with
    +#    Python 3.9.18 until #19264 is addressed.
    +#
    +# ----------------------------------------------------------------------------
    +
    +import copy, io, numpy, sys
    +
    +# Some useful global variables
    +X = [2,4,6]
    +NumPy2Int = numpy.array([1,2])
    +NumPy2Flt = numpy.array([1.1,2.2])
    +NumPy3Int = numpy.array([1,2,3])
    +NumPy3Flt = numpy.array([1.1,2.2,3.3])
    +NumPy4Int = numpy.array([1,2,3,4])
    +NumPy4Flt = numpy.array([1.1,2.2,3.3,4.4])
    +Max32BitInt = 2147483647
    +Max32BitInt1 = Max32BitInt+1
    +MaxIntAs32BitFloat = 16777216
    +MaxIntAs32BitFloat1 = MaxIntAs32BitFloat+1
    +MaxIntAs64BitFloat = 9007199254740992
    +MaxIntAs64BitFloat1 = MaxIntAs64BitFloat+1
    +Max32BitFloat  = 3.402823E+38
    +Max32BitFloatA = 3.402820E+37 # One order mag down from Max
    +Max32BitFloatB = 3.402823E+39 # One order mag up from Max
    +Min32BitFloat = 1.175494E-38
    +
    +# version of repr that strips parens at end
    +def repr2(s):
    +    return repr(s).lstrip('(').rstrip(')')
    +
    +def TestAssignmentToTuple():
    +    TestSection('Assignment to tuple, "point1", member (of CylinderAttributes())')
    +
    +    ca = CylinderAttributes()
    +
    +    # Non-existent member name 'point'
    +    try:
    +        ca.point = 1,2,3
    +        TestFOA('ca.point=1,2,3', LINE())
    +    except NameError:
    +        TestPOA('ca.point=1,2,3')
    +        pass
    +    except:
    +        TestFOA('ca.point=1,2,3', LINE())
    +        pass
    +
    +    # Non-existent member name 'point'
    +    try:
    +        ca.SetPoint(1,2,3)
    +        TestFOA('ca.SetPoint(1,2,3)', LINE())
    +    except ValueError:
    +        TestPOA('ca.SetPoint(1,2,3)')
    +        pass
    +    except:
    +        TestFOA('ca.SetPoint(1,2,3)', LINE())
    +        pass
    +
    +    # CSV too short
    +    try:
    +        ca.point1 = 1,2
    +        TestFOA('ca.point1=1,2', LINE())
    +    except TypeError:
    +        TestPOA('ca.point1=1,2')
    +        pass
    +    except:
    +        TestFOA('ca.point1=1,2', LINE())
    +        pass
    +
    +    # CSV too long
    +    try:
    +        ca.point1 = 1,2,3,4
    +        TestFOA('ca.point1=1,2,3,4', LINE())
    +    except TypeError:
    +        TestPOA('ca.point1=1,2,3,4')
    +        pass
    +    except:
    +        TestFOA('ca.point1=1,2,3,4', LINE())
    +        pass
    +
    +    # The above cases can't be put in a loop. Put remaining cases in a loop
    +    fails = [(1,2), (1,2,3,4), '123', (1,1+2j,3), (1,X,3), (1,'b',3), (1,None,3), NumPy2Flt, NumPy4Flt]
    +    for i in range(len(fails)):
    +        try:
    +            ca.point1 = fails[i]
    +            TestFOA('ca.point1=%s'%repr2(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('ca.point1=%s'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.point1=%s'%repr2(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            ca.SetPoint1(fails[i])
    +            TestFOA('ca.SetPoint1(%s)'%repr2(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('ca.SetPoint1(%s)'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.SetPoint1(%s)'%repr2(fails[i]), LINE())
    +            pass
    +
    +    try:
    +        ca.point1 = 1,2,3
    +        TestPOA('ca.point1=1,2,3')
    +    except:
    +        TestFOA('ca.point1=1,2,3', LINE())
    +        pass
    +
    +    works = [(1,2,3), (1.1,2.2,3.3), tuple(X), NumPy3Int, NumPy3Flt]
    +    for i in range(len(works)):
    +        try:
    +            ca.point1 = works[i]
    +            TestPOA('ca.point1=%s'%repr2(works[i]))
    +        except:
    +            TestFOA('ca.point1=%s'%repr2(works[i]), LINE())
    +            pass
    +
    +    for i in range(len(works)):
    +        try:
    +            ca.SetPoint1(*works[i])
    +            TestPOA('ca.SetPoint1(%s)'%repr2(works[i]))
    +        except:
    +            TestFOA('ca.SetPoint1(%s)'%repr2(works[i]), LINE())
    +            pass
    +
    +def TestAssignmentToBool():
    +    TestSection('Assignment to bool member, "inverse", (of CylinderAttributes())')
    +
    +    ca = CylinderAttributes()
    +
    +    try:
    +        ca.inverse = 1,2
    +        TestFOA('ca.inverse=1,2', LINE())
    +    except TypeError:
    +        TestPOA('ca.inverse=1,2')
    +        pass
    +    except:
    +        TestFOA('ca.inverse=1,2', LINE())
    +        pass
    +
    +    fails =  [    '123',      1+2j,         X,      None,          5]
    +    excpts = [TypeError, TypeError, TypeError, TypeError, ValueError]
    +    for i in range(len(fails)):
    +        try:
    +            ca.inverse = fails[i]
    +            TestFOA('ca.inverse=%s'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ca.inverse=%s'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.inverse=%s'%repr(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            ca.SetInverse(fails[i])
    +            TestFOA('ca.SetInverse(%s)'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ca.SetInverse(%s)'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.SetInverse(%s)'%repr(fails[i]), LINE())
    +            pass
    +
    +    works = [0, 1, True, False]
    +    for i in range(len(works)):
    +        try:
    +            ca.inverse = works[i]
    +            TestPOA('ca.inverse=%s'%repr(works[i]))
    +        except:
    +            TestFOA('ca.inverse=%s'%repr(works[i]), LINE())
    +
    +    for i in range(len(works)):
    +        try:
    +            ca.SetInverse(works[i])
    +            TestPOA('ca.SetInverse(%s)'%repr(works[i]))
    +        except:
    +            TestFOA('ca.SetInverse(%s)'%repr(works[i]), LINE())
    +
    +def TestAssignmentToInt():
    +    TestSection('Assignment to int member, "samplesPerRay", (of VolumeAttributes())')
    +
    +    va = VolumeAttributes()
    +
    +    try:
    +        va.samplesPerRay = 1,2
    +        TestFOA('va.samplesPerRay=1,2', LINE())
    +    except TypeError:
    +        TestPOA('va.samplesPerRay=1,2')
    +        pass
    +    except:
    +        TestFOA('va.samplesPerRay=1,2', LINE())
    +        pass
    +
    +    fails =  [    '123',      1+2j,      None,         X, Max32BitInt1]
    +    if sys.platform.startswith("win"):
    +        excpts = [TypeError, TypeError, TypeError, TypeError, TypeError]
    +    else:
    +        excpts = [TypeError, TypeError, TypeError, TypeError, ValueError]
    +    for i in range(len(fails)):
    +        try:
    +            va.samplesPerRay = fails[i]
    +            TestFOA('va.samplesPerRay=%s'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('va.samplesPerRay=%s'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('va.samplesPerRay=%s'%repr(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            va.SetSamplesPerRay(fails[i])
    +            TestFOA('va.SetSamplesPerRay(%s)'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('va.SetSamplesPerRay(%s)'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('va.SetSamplesPerRay(%s)'%repr(fails[i]), LINE())
    +            pass
    +
    +    works = [0, 1, -1, 5, True, False, Max32BitInt]
    +    for i in range(len(works)):
    +        try:
    +            va.samplesPerRay = works[i]
    +            TestPOA('va.samplesPerRay=%s'%repr(works[i]))
    +        except:
    +            TestFOA('va.samplesPerRay=%s'%repr(works[i]), LINE())
    +
    +    for i in range(len(works)):
    +        try:
    +            va.SetSamplesPerRay(works[i])
    +            TestPOA('va.SetSamplesPerRay(%s)'%repr(works[i]))
    +        except:
    +            TestFOA('va.SetSamplesPerRay(%s)'%repr(works[i]), LINE())
    +
    +def TestAssignmentToFloat():
    +    TestSection('Assignment to float member, "opacityAttenuation", (of VolumeAttributes())')
    +
    +    va = VolumeAttributes()
    +
    +    try:
    +        va.opacityAttenuation = 1,2
    +        TestFOA('va.opacityAttenuation=1,2', LINE())
    +    except TypeError:
    +        TestPOA('va.opacityAttenuation=1,2')
    +        pass
    +    except:
    +        TestFOA('va.opacityAttenuation=1,2', LINE())
    +        pass
    +
    +    fails =  [    '123',      1+2j,      None,         X, Max32BitFloatB]
    +    excpts = [TypeError, TypeError, TypeError, TypeError,       ValueError]
    +    for i in range(len(fails)):
    +        try:
    +            va.opacityAttenuation = fails[i]
    +            TestFOA('va.opacityAttenuation=%s'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('va.opacityAttenuation=%s'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('va.opacityAttenuation=%s'%repr(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            va.SetOpacityAttenuation(fails[i])
    +            TestFOA('va.SetOpacityAttenuation(%s)'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('va.SetOpacityAttenuation(%s)'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('va.SetOpacityAttenuation(%s)'%repr(fails[i]), LINE())
    +            pass
    +
    +    works = [0, 1, -1, 0.3, Max32BitFloatA, True, False]
    +    for i in range(len(works)):
    +        try:
    +            va.opacityAttenuation = works[i]
    +            TestPOA('va.opacityAttenuation=%s'%repr(works[i]))
    +        except:
    +            TestFOA('va.opacityAttenuation=%s'%repr(works[i]), LINE())
    +
    +    for i in range(len(works)):
    +        try:
    +            va.SetOpacityAttenuation(works[i])
    +            TestPOA('va.SetOpacityAttenuation(%s)'%repr(works[i]))
    +        except:
    +            TestFOA('va.SetOpacityAttenuation(%s)'%repr(works[i]), LINE())
    +
    +def TestAssignmentToDouble():
    +    TestSection('Assignment to double member, "radius", (of CylinderAttributes())')
    +
    +    ca = CylinderAttributes()
    +
    +    try:
    +        ca.radius = 1,2
    +        TestFOA('ca.radius=1,2', LINE())
    +    except TypeError:
    +        TestPOA('ca.radius=1,2')
    +        pass
    +    except:
    +        TestFOA('ca.radius=1,2', LINE())
    +        pass
    +
    +    fails = ['123', 1+2j, None, X]
    +    for i in range(len(fails)):
    +        try:
    +            ca.radius = fails[i]
    +            TestFOA('ca.radius=%s'%repr(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('ca.radius=%s'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.radius=%s'%repr(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            ca.SetRadius(fails[i])
    +            TestFOA('ca.SetRadius(%s)'%repr(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('ca.SetRadius(%s)'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.SetRadius(%s)'%repr(fails[i]), LINE())
    +            pass
    +
    +    works = [0, 1, -1, 5.5, 1.1E-479, 1.1E+479, True, False]
    +    for i in range(len(works)):
    +        try:
    +            ca.radius = works[i]
    +            TestPOA('ca.radius=%s'%repr(works[i]))
    +        except:
    +            TestFOA('ca.radius=%s'%repr(works[i]), LINE())
    +
    +    for i in range(len(works)):
    +        try:
    +            ca.SetRadius(works[i])
    +            TestPOA('ca.SetRadius(%s)'%repr(works[i]))
    +        except:
    +            TestFOA('ca.SetRadius(%s)'%repr(works[i]), LINE())
    +
    +def TestAssignmentToString():
    +    TestSection('Assignment to string member, "designator", (of CurveAttributes())')
    +
    +    ca = CurveAttributes()
    +
    +    try:
    +        ca.designator = "123","abc"
    +        TestFOA('ca.designator="123","abc"', LINE())
    +    except TypeError:
    +        TestPOA('ca.designator="123","abc"')
    +        pass
    +    except:
    +        TestFOA('ca.designator="123","abc"', LINE())
    +        pass
    +
    +    fails = [0, 1, 1.1, 1+2j, None, X]
    +    for i in range(len(fails)):
    +        try:
    +            ca.designator = fails[i]
    +            TestFOA('ca.designator=%s'%repr(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('ca.designator=%s'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.designator=%s'%repr(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            ca.SetDesignator(fails[i])
    +            TestFOA('ca.SetDesignator(%s)'%repr(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('ca.SetDesignator(%s)'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.SetDesignator(%s)'%repr(fails[i]), LINE())
    +            pass
    +
    +    works = ['123', 'abc', '']
    +    for i in range(len(works)):
    +        try:
    +            ca.designator = works[i]
    +            TestPOA('ca.designator=%s'%repr(works[i]))
    +        except:
    +            TestFOA('ca.designator=%s'%repr(works[i]), LINE())
    +
    +    for i in range(len(works)):
    +        try:
    +            ca.SetDesignator(works[i])
    +            TestPOA('ca.SetDesignator(%s)'%repr(works[i]))
    +        except:
    +            TestFOA('ca.SetDesignator(%s)'%repr(works[i]), LINE())
    +
    +def TestAssignmentToGlyphType():
    +    TestSection('Assignment to GlyphType member, "pointType", (of MeshAttributes())')
    +
    +    ma = MeshAttributes()
    +
    +    # Test direct assignment with = operator
    +    try:
    +        ma.pointType = 1
    +        TestPOA('ma.pointType=1')
    +    except:
    +        TestFOA('ma.pointType=1', LINE())
    +        pass
    +
    +    fails =  [    '123',      1+2j,      None,         X,         -1, 123123123123123123123123123123]
    +    excpts = [TypeError, TypeError, TypeError, TypeError, ValueError,                      TypeError]
    +    for i in range(len(fails)):
    +        try:
    +            ma.pointType = fails[i]
    +            TestFOA('ma.pointType=%s'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ma.pointType=%s'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ma.pointType=%s'%repr(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            ma.SetPointType(fails[i])
    +            TestFOA('ma.SetPointType(%s)'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ma.SetPointType(%s)'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ma.SetPointType(%s)'%repr(fails[i]), LINE())
    +            pass
    +
    +    works = [0, 1, 5, True, False, ma.Point]
    +    for i in range(len(works)):
    +        try:
    +            ma.pointType = works[i]
    +            TestPOA('ma.pointType=%s'%repr(works[i]))
    +        except:
    +            TestFOA('ma.pointType=%s'%repr(works[i]), LINE())
    +
    +    for i in range(len(works)):
    +        try:
    +            ma.SetPointType(works[i])
    +            TestPOA('ma.SetPointType(%s)'%repr(works[i]))
    +        except:
    +            TestFOA('ma.SetPointType(%s)'%repr(works[i]), LINE())
    +
    +def TestAssignmentToEnum():
    +    TestSection('Assignment to Enum member, "smoothingLevel", (of MeshAttributes())')
    +
    +    ma = MeshAttributes()
    +
    +    # Test direct assignment with = operator
    +    try:
    +        ma.smoothingLevel = 1
    +        TestPOA('ma.smoothingLevel=1')
    +    except:
    +        TestFOA('ma.smoothingLevel=1', LINE())
    +        pass
    +
    +    fails  = [    '123',      1+2j,      None,         X,         -1,  123123123, 123123123123123123123123123123]
    +    excpts = [TypeError, TypeError, TypeError, TypeError, ValueError, ValueError,                      TypeError]
    +    for i in range(len(fails)):
    +        try:
    +            ma.smoothingLevel = fails[i]
    +            TestFOA('ma.smoothingLevel=%s'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ma.smoothingLevel=%s'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ma.smoothingLevel=%s'%repr(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            ma.SetSmoothingLevel(fails[i])
    +            TestFOA('ma.SetSmoothingLevel(%s)'%repr(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ma.SetSmoothingLevel(%s)'%repr(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ma.SetSmoothingLevel(%s)'%repr(fails[i]), LINE())
    +            pass
    +
    +    works = [0, 1, 2, True, False, ma.Fast]
    +    for i in range(len(works)):
    +        try:
    +            ma.smoothingLevel = works[i]
    +            TestPOA('ma.smoothingLevel=%s'%repr(works[i]))
    +        except:
    +            TestFOA('ma.smoothingLevel=%s'%repr(works[i]), LINE())
    +
    +    for i in range(len(works)):
    +        try:
    +            ma.SetSmoothingLevel(works[i])
    +            TestPOA('ma.SmoothingLevel(%s)'%repr(works[i]))
    +        except:
    +            TestFOA('ma.SetSmoothingLevel(%s)'%repr(works[i]), LINE())
    +
    +def TestAssignmentToUCharVector():
    +    TestSection('Assignment to ucharVector member, "changedColors",  (of MultiCurveAttributes())')
    +
    +    mca = MultiCurveAttributes()
    +
    +    # Test direct assignment with = operator
    +    try:
    +        mca.changedColors = 1,2,3
    +        TestPOA('mca.changedColors=1,2,3')
    +    except:
    +        TestFOA('mca.changedColors=1,2,3', LINE())
    +        pass
    +
    +    fails = [(1,123123123123123123123123123123,3), (1,1+2j,3), (1,X,3), (1,'b',3), (1,None,3), ('123',)]
    +    for i in range(len(fails)):
    +        try:
    +            mca.changedColors = fails[i]
    +            TestFOA('mca.changedColors=%s'%repr2(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('mca.changedColors=%s'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('mca.changedColors=%s'%repr2(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            mca.SetChangedColors(*fails[i])
    +            TestFOA('mca.SetChangedColors(%s)'%repr2(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('mca.SetChangedColors(%s)'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('mca.SetChangedColors(%s)'%repr2(fails[i]), LINE())
    +            pass
    +
    +    works = [(1,2,3), tuple(X), (1,True,3), (1,False,3)]
    +    for i in range(len(works)):
    +        try:
    +            mca.changedColors = works[i]
    +            TestPOA('mca.changedColors=%s'%repr2(works[i]))
    +        except:
    +            TestFOA('mca.changedColors=%s'%repr2(works[i]), LINE())
    +
    +    works += [NumPy3Int] # NP arrays only work via deref operator
    +    for i in range(len(works)):
    +        try:
    +            mca.SetChangedColors(*works[i])
    +            TestPOA('mca.SetChangedColors(%s)'%repr2(works[i]))
    +        except:
    +            TestFOA('mca.SetChangedColors(%s)'%repr2(works[i]), LINE())
    +
    +def TestAssignmentToIntVector():
    +    TestSection('Assignment to intVector member, "index", (of OnionPeelAttributes())')
    +
    +    opa = OnionPeelAttributes()
    +
    +    # Test direct assignment with = operator
    +    try:
    +        opa.index = 1,2,3
    +        TestPOA('opa.index=1,2,3')
    +    except:
    +        TestFOA('opa.index=1,2,3', LINE())
    +        pass
    +
    +    fails =  [(Max32BitInt1,), (1+2j,), ('b',), (None,), (1,Max32BitInt1,3),
    +              (1,1+2j,3), (1,X,3), (1,'b',3), (1,None,3)]
    +    if sys.platform.startswith("win"):
    +        excpts = [TypeError, TypeError, TypeError, TypeError, TypeError,
    +                  TypeError, TypeError, TypeError, TypeError]
    +    else:
    +        excpts = [ValueError, TypeError, TypeError, TypeError, ValueError,
    +                  TypeError, TypeError, TypeError, TypeError]
    +    for i in range(len(fails)):
    +        try:
    +            opa.index = fails[i]
    +            TestFOA('opa.index=%s'%repr2(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('opa.index=%s'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('opa.index=%s'%repr2(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            opa.SetIndex(*fails[i])
    +            TestFOA('opa.SetIndex(%s)'%repr2(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('opa.SetIndex(%s)'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('opa.SetIndex(%s)'%repr2(fails[i]), LINE())
    +            pass
    +
    +    works = [(1,2,3), X, tuple(X), (1,True,3), (1,False,3), (1,Max32BitInt,3)]
    +    for i in range(len(works)):
    +        try:
    +            opa.index = works[i]
    +            TestPOA('opa.index=%s'%repr2(works[i]))
    +        except:
    +            TestFOA('opa.index=%s'%repr2(works[i]), LINE())
    +
    +    works += [NumPy3Int] # NP Arrays work only via deref operator
    +    for i in range(len(works)):
    +        try:
    +            opa.SetIndex(*works[i])
    +            TestPOA('opa.SetIndex(%s)'%repr2(works[i]))
    +        except:
    +            TestFOA('opa.SetIndex(%s)'%repr2(works[i]), LINE())
    +
    +def TestAssignmentToDoubleVector():
    +    TestSection('Assignment to doubleVector member, "values", (of ContourAttributes())')
    +
    +    ca = ContourAttributes()
    +
    +    # Test direct assignment with = operator
    +    try:
    +        ca.contourValue = 1,2,3
    +        TestPOA('ca.contourValue=1,2,3')
    +    except:
    +        TestFOA('ca.contourValue=1,2,3', LINE())
    +        pass
    +
    +    fails = [(1+2j,), ('b',), (None,), (1,1+2j,3), (1,X,3), (1,'b',3), (1,None,3)]
    +    for i in range(len(fails)):
    +        try:
    +            ca.contourValue = fails[i]
    +            TestFOA('ca.contourValue=%s'%repr2(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('ca.contourValue=%s'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.contourValue=%s'%repr2(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            ca.SetContourValue(*fails[i])
    +            TestFOA('ca.SetContourValue(%s)'%repr2(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('ca.SetContourValue(%s)'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.SetContourValue(%s)'%repr2(fails[i]), LINE())
    +            pass
    +
    +    works = [(1,2,3), X, tuple(X), (1,True,3), (1,False,3)]
    +    for i in range(len(works)):
    +        try:
    +            ca.contourValue = works[i]
    +            TestPOA('ca.contourValue=%s'%repr2(works[i]))
    +        except:
    +            TestFOA('ca.contourValue=%s'%repr2(works[i]), LINE())
    +
    +    works += [NumPy3Flt] # NP Arrays work only via deref operator
    +    for i in range(len(works)):
    +        try:
    +            ca.SetContourValue(*works[i])
    +            TestPOA('ca.SetContourValue(%s)'%repr2(works[i]))
    +        except:
    +            TestFOA('ca.SetContourValue(%s)'%repr2(works[i]), LINE())
    +
    +def TestAssignmentToUCharArray():
    +    TestSection('Assignment to ucharArray member, "freeformOpacity", (of VolumeAttributes())')
    +    arr = [17,]*256
    +
    +    va = VolumeAttributes()
    +
    +    # Test assigning to individual entry via direct (operator =) assignment
    +    try:
    +        va.freeformOpacity = 3,17
    +        TestPOA('va.freeformOpacity=3,17')
    +    except:
    +        TestFOA('va.freeformOpacity=3,17', LINE())
    +        pass
    +
    +    # Test assigning to individual entry via Set method 
    +    try:
    +        va.SetFreeformOpacity(3,17)
    +        TestPOA('va.SetFreeformOpacity(3,17)')
    +    except:
    +        TestFOA('va.SetFreeformOpacity(3,17)', LINE())
    +        pass
    +
    +    # Test assigning to whole array via (operator =) assignment
    +    try:
    +        va.freeformOpacity = tuple(arr)
    +        TestPOA('va.freeformOpacity=tuple(arr)')
    +    except:
    +        TestFOA('va.freeformOpacity=tuple(arr)', LINE())
    +        pass
    +
    +    # Test assigning to whole array via Set method 
    +    try:
    +        va.SetFreeformOpacity(*tuple(arr))
    +        TestPOA('va.SetFreeformOpacity(*tuple(arr))')
    +    except:
    +        TestFOA('va.SetFreeformOpacity(*tuple(arr))', LINE())
    +        pass
    +
    +    # Test assigning to individual entry via direct (operator =) assignment
    +    # failures for type of second argument (color value)
    +    fails =  [ (3,None),  (3,1+2j),     (3,X), (3,'123'), (None,17), (1+2j,17),    (X,17),('123',17),    (-3,17),   (3,1700)]
    +    excpts = [TypeError, TypeError, TypeError, TypeError, TypeError, TypeError, TypeError, TypeError, IndexError, ValueError]
    +    for i in range(len(fails)):
    +        try:
    +            va.freeformOpacity = fails[i][0],fails[i][1]
    +            TestFOA('va.freeformOpacity=%s,%s'%(repr(fails[i][0]),repr(fails[i][1])), LINE())
    +        except excpts[i]:
    +            TestPOA('va.freeformOpacity=%s,%s'%(repr(fails[i][0]),repr(fails[i][1])))
    +            pass
    +        except:
    +            TestFOA('va.freeformOpacity=%s,%s'%(repr(fails[i][0]),repr(fails[i][1])), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            va.SetFreeformOpacity(fails[i][0],fails[i][1])
    +            TestFOA('va.SetFreeformOpacity(%s,%s)'%(repr(fails[i][0]),repr(fails[i][1])), LINE())
    +        except excpts[i]:
    +            TestPOA('va.SetFreeformOpacity(%s,%s)'%(repr(fails[i][0]),repr(fails[i][1])))
    +            pass
    +        except:
    +            TestFOA('va.SetFreeformOpacity(%s,%s)'%(repr(fails[i][0]),repr(fails[i][1])), LINE())
    +            pass
    +
    +    # Test assigning to whole member via direct (operator =) assignment
    +    try:
    +        va.freeformOpacity = (17,)*256
    +        TestPOA('va.freeformOpacity=(17,)*256')
    +    except:
    +        TestFOA('va.freeformOpacity=(17,)*256', LINE())
    +        pass
    +
    +    # Test assigning to whole member via Set method 
    +    try:
    +        va.SetFreeformOpacity(*(17,)*256)
    +        TestPOA('va.SetFreeformOpacity((17,)*256)')
    +    except:
    +        TestFOA('va.SetFreeformOpacity((17,)*256)', LINE())
    +        pass
    +
    +    # Test assigning to whole member via direct (operator =) assignment
    +    # failures for type of first argument (index)
    +    arr1 = copy.deepcopy(arr)
    +    arr2 = copy.deepcopy(arr)
    +    arr3 = copy.deepcopy(arr)
    +    arr4 = copy.deepcopy(arr)
    +    arr5 = copy.deepcopy(arr)
    +    arr1[3] = None
    +    arr2[3] = 1+2j
    +    arr3[3] = X
    +    arr4[3] = (1,2,3)
    +    arr5[3] = '123'
    +    fails = [tuple(arr1), tuple(arr2), tuple(arr3), tuple(arr4), tuple(arr5)]
    +    for i in range(len(fails)):
    +        try:
    +            va.freeformOpacity = fails[i]
    +            TestFOA('va.freeformOpacity=%s'%repr(fails[i][:7]).replace(')',', ...'), LINE())
    +        except TypeError:
    +            TestPOA('va.freeformOpacity=%s'%repr(fails[i][:7]).replace(')',', ...'))
    +            pass
    +        except:
    +            TestFOA('va.freeformOpacity=%s'%repr(fails[i][:7]).replace(')',', ...'), LINE())
    +            pass
    +
    +    # Test star-deref of tuple
    +    for i in range(len(fails)):
    +        try:
    +            va.SetFreeformOpacity(*fails[i])
    +            TestFOA('va.SetFreeformOpacity%s'%repr(fails[i][:7]).replace(')',', ...)'), LINE())
    +        except TypeError:
    +            TestPOA('va.SetFreeformOpacity%s'%repr(fails[i][:7]).replace(')',', ...)'))
    +            pass
    +        except:
    +            TestFOA('va.SetFreeformOpacity%s'%repr(fails[i][:7]).replace(')',', ...)'), LINE())
    +            pass
    +
    +    # Test just passing the tuple
    +    for i in range(len(fails)):
    +        try:
    +            va.SetFreeformOpacity(fails[i])
    +            TestFOA('va.SetFreeformOpacity(fails[%d])'%i, LINE())
    +        except TypeError:
    +            TestPOA('va.SetFreeformOpacity(fails[%d])'%i)
    +            pass
    +        except:
    +            TestFOA('va.SetFreeformOpacity(fails[%d])'%i, LINE())
    +            pass
    +
    +def TestAssignmentToIntArray():
    +    TestSection('Assignment to intArray member, "reflections", (of ReflectAttributes())')
    +
    +    ra = ReflectAttributes()
    +
    +    # Test assigning via (operator =) assignment
    +    try:
    +        ra.reflections = 0,1,0,1,0,1,0,1
    +        TestPOA('ra.reflections=0,1,0,1,0,1,0,1')
    +    except:
    +        TestFOA('ra.reflections=0,1,0,1,0,1,0,1', LINE())
    +        pass
    +
    +    fails =  [(0,1,None,1,0,1,0,1), (0,1,1+2j,1,0,1,0,1), (0,1,X,1,0,1,0,1),
    +              (0,1,Max32BitInt1,1,0,1,0,1), (0,1,'123',1,0,1,0,1),
    +              (0,1,0,1,0,1,0,1,1), (0,1,0,1,0,1,0)]
    +    if sys.platform.startswith("win"):
    +        excpts = [TypeError, TypeError, TypeError, TypeError, TypeError, TypeError, TypeError]
    +    else:
    +        excpts = [TypeError, TypeError, TypeError, ValueError, TypeError, TypeError, TypeError]
    +    for i in range(len(fails)):
    +        try:
    +            ra.reflections = fails[i]
    +            TestFOA('ra.reflections=%s'%repr2(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ra.reflections=%s'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ra.reflections=%s'%repr2(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            ra.SetReflections(*fails[i])
    +            TestFOA('ra.SetReflections(%s)'%repr2(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ra.SetReflections(%s)'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ra.SetReflections(%s)'%repr2(fails[i]), LINE())
    +            pass
    +
    +    NumPyArray = numpy.array([0,1,0,1,0,1,0,1])
    +    works = [(0,1,0,1,0,1,0,1), (-1,100,-1,100,-1,100,-1,100), (0,True,False,1,0,1,0,1), (0,1,Max32BitInt,1,0,1,0,1), NumPyArray]
    +    for i in range(len(works)):
    +        try:
    +            ra.reflections = works[i]
    +            TestPOA('ra.reflections=%s'%repr2(works[i]))
    +        except:
    +            TestFOA('ra.reflections=%s'%repr2(works[i]), LINE())
    +
    +    for i in range(len(works)):
    +        try:
    +            ra.SetReflections(*works[i])
    +            TestPOA('ra.SetReflections(%s)'%repr2(works[i]))
    +        except:
    +            TestFOA('ra.SetReflections(%s)'%repr2(works[i]), LINE())
    +
    +def TestAssignmentToFloatArray():
    +    TestSection('Assignment to floatArray member, "center", (of RadialResampleAttributes())')
    +
    +    rra = RadialResampleAttributes()
    +
    +    # Test assigning via (operator =) assignment
    +    try:
    +        rra.center = 0,1,2
    +        TestPOA('rra.center=0,1,2')
    +    except:
    +        TestFOA('rra.center=0,1,2', LINE())
    +        pass
    +    try:
    +        rra.center = 0,1
    +        TestFOA('rra.center=0,1', LINE())
    +    except:
    +        TestPOA('rra.center=0,1')
    +        pass
    +    try:
    +        rra.center = 0,1,2,3
    +        TestFOA('rra.center=0,1,2,3', LINE())
    +    except:
    +        TestPOA('rra.center=0,1,2,3')
    +        pass
    +
    +    fails =  [(0,1), (0,1,2,3), (0,None,2), (0,1+2j,2), (0,X,2), (0,'123',2), (0, Max32BitFloatB,2)]
    +    excpts = [TypeError, TypeError, TypeError, TypeError, TypeError, TypeError, ValueError]
    +    for i in range(len(fails)):
    +        try:
    +            rra.center = fails[i]
    +            TestFOA('rra.center=%s'%repr2(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('rra.center=%s'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('rra.center=%s'%repr2(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            rra.SetCenter(*fails[i])
    +            TestFOA('rra.SetCenter(%s)'%repr2(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('rra.SetCenter(%s)'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('rra.SetCenter(%s)'%repr2(fails[i]), LINE())
    +            pass
    +
    +    works = [(1,2,3), (1.1,2.2,3.3), tuple(X), (1,True,3), (1,False,3), (1,Max32BitFloatA,3), NumPy3Flt]
    +    for i in range(len(works)):
    +        try:
    +            rra.center = works[i]
    +            TestPOA('rra.center=%s'%repr2(works[i]))
    +        except:
    +            TestFOA('rra.center=%s'%repr2(works[i]), LINE())
    +
    +    for i in range(len(works)):
    +        try:
    +            rra.SetCenter(*works[i])
    +            TestPOA('rra.SetCenter(%s)'%repr2(works[i]))
    +        except:
    +            TestFOA('rra.SetCenter(%s)'%repr2(works[i]), LINE())
    +
    +def TestAssignmentToDoubleArray():
    +    TestSection('Assignment to doubleArray member, "materialProperties", (of VolumeAttributes())')
    +
    +    va = VolumeAttributes()
    +
    +    # Test assigning via (operator =) assignment
    +    try:
    +        va.materialProperties = 0,1,2,3
    +        TestPOA('va.materialProperties=0,1,2,3')
    +    except:
    +        TestFOA('va.materialProperites=0,1,2,3', LINE())
    +        pass
    +    try:
    +        va.materialProperties = 0,1,2
    +        TestFOA('va.materialProperties=0,1,2', LINE())
    +    except:
    +        TestPOA('va.materialProperties=0,1,2')
    +        pass
    +    try:
    +        va.materialProperties = 0,1,2,3,4
    +        TestFOA('va.materialProperties=0,1,2,3,4', LINE())
    +    except:
    +        TestPOA('va.materialProperties=0,1,2,3,4')
    +        pass
    +
    +    fails = [(0,1), (0,1,2,3,4), (0,None,2,3), (0,1+2j,2,3), (0,X,2,3), (0,'123',2,3)]
    +    for i in range(len(fails)):
    +        try:
    +            va.materialProperties = fails[i]
    +            TestFOA('va.materialProperties=%s'%repr2(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('va.materialProperties=%s'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('va.materialProperties=%s'%repr2(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            va.SetMaterialProperties(*fails[i])
    +            TestFOA('va.SetMaterialProperties(%s)'%repr2(fails[i]), LINE())
    +        except TypeError:
    +            TestPOA('va.SetMaterialProperties(%s)'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('va.SetMaterialProperties(%s)'%repr2(fails[i]), LINE())
    +            pass
    +
    +    works = [(1,2,3,4), (1.1,2.2,3.3,4.4), (1,True,3,4), (1,False,3,4)]
    +    for i in range(len(works)):
    +        try:
    +            va.materialProperties = works[i]
    +            TestPOA('va.materialProperties=%s'%repr2(works[i]))
    +        except:
    +            TestFOA('va.materialProperties=%s'%repr2(works[i]), LINE())
    +
    +    NumPyArray = numpy.array([1.1,2.2,3.3,4.4])
    +    works += [NumPyArray]
    +    for i in range(len(works)):
    +        try:
    +            va.SetMaterialProperties(*works[i])
    +            TestPOA('va.SetMaterialProperties(%s)'%repr2(works[i]))
    +        except:
    +            TestFOA('va.SetMaterialProperties(%s)'%repr2(works[i]), LINE())
    +
    +def TestColorAttributeStuff():
    +    TestSection('ColorAttribute stuff')
    +
    +    cla = ColorAttributeList()
    +    ca = ColorAttribute()
    +
    +    fails = [(0,1,2), (0,1,2,3,4), (0,None,2,3), (0,1+2j,2,3), (0,X,2,3),
    +             (0,'123',2,3), (0,-1,2,3), (0,256,2,3)]
    +    excpts = [TypeError, TypeError, TypeError, TypeError, TypeError, TypeError, ValueError, ValueError]
    +    for i in range(len(fails)):
    +        try:
    +            ca.color = fails[i]
    +            TestFOA('ca.color=%s'%repr2(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ca.color=%s'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.color=%s'%repr2(fails[i]), LINE())
    +            pass
    +
    +    for i in range(len(fails)):
    +        try:
    +            ca.SetColor(*fails[i])
    +            TestFOA('ca.SetColor(%s)'%repr2(fails[i]), LINE())
    +        except excpts[i]:
    +            TestPOA('ca.SetColor(%s)'%repr2(fails[i]))
    +            pass
    +        except:
    +            TestFOA('ca.SetColor(%s)'%repr2(fails[i]), LINE())
    +            pass
    +
    +    try:
    +        ca.color = (5,5,5,5)
    +        cla.AddColors(ca)
    +        ca.color = (255,0,0,255)
    +        cla.AddColors(ca)
    +        TestPOA('cla.AddColors')
    +    except:
    +        TestFOA('cla.AddColors', LINE())
    +        pass
    +
    +    try:
    +        cla.colors
    +        TestFOA('cla.colors', LINE())
    +    except NameError:
    +        TestPOA('cla.colors')
    +    except:
    +        TestFOA('cla.colors', LINE())
    +        pass
    +
    +    try:
    +        if cla.GetColors(0).color != (5,5,5,5) or cla.GetColors(1).color != (255,0,0,255):
    +           raise ValueError
    +        TestPOA('cla.GetColors(0)')
    +    except:
    +        TestFOA('cla.Getcolors(0)', LINE())
    +        pass
    +
    +    try:
    +        cla.GetColors(2)
    +        TestFOA('cla.Getcolors(2)', LINE())
    +    except ValueError:
    +        TestPOA('cla.GetColors(2)')
    +    except:
    +        TestFOA('cla.Getcolors(2)', LINE())
    +        pass
    +
    +def TestDirOutput(obj, names):
    +    try:
    +        x = [f for f in dir(obj) if not (f.startswith('__') and f.endswith('__'))]
    +        y = [n for n in names if n in x]
    +        if len(y) != len(names):
    +            raise Exception
    +        x = repr(obj)
    +        if x.startswith('<built-in'):
    +            x = x.strip('<>').split()[2]
    +        else:
    +            x = x.strip('<>').split()[0]
    +        TestPOA('dir(%s)'%x)
    +    except:
    +        TestFOA('dir(%s)'%x, LINE())
    +
    +#
    +# Test that dir(x) appears to work
    +#
    +def TestDir(global_dir_result):
    +    TestSection('behavior of dir()')
    +
    +    #
    +    # Testing of global dir() behavior can't be done from within a func
    +    #
    +    global_dir_checks = ['AddPlot', 'DeleteAllPlots', 'Launch', 'GetMetaData']
    +    y = [n for n in global_dir_checks if n in global_dir_result]
    +    if len(y) != len(global_dir_checks):
    +        TestFOA('dir()', LINE())
    +    else:
    +        TestPOA('dir()')
    +
    +    #
    +    # Test a random handful of object level dirs
    +    #
    +
    +    """ 
    +    # These fail with Python 3.9.18, see bug ticket #19264.
    +    # Impossible to add them to skip list due to unhandled exceptions
    +    # So they are being skipped here with a note added to the ticket.
    +    TestDirOutput(SILRestriction(), ['NumSets', 'TurnOnAll', 'Wholes'])
    +    TestDirOutput(PseudocolorAttributes(), ['GetCentering', 'GetColorTableName',
    +        'GetLightingFlag', 'GetLimitsMode', 'GetMax', 'SetCentering',
    +        'SetColorTableName', 'SetLegendFlag', 'SetLimitsMode'])
    +    TestDirOutput(ColorAttributeList(), ['AddColors', 'ClearColors', 'GetColors'])
    +    """
    +
    +
    +# Class to facilitate stdout redirect for testing `help()`
    +class my_redirect_stdout(list):
    +    def __enter__(self):
    +        self._stdout = sys.stdout
    +        sys.stdout = self._stringio = io.StringIO()
    +        return self
    +    def __exit__(self, *args):
    +        self.extend(self._stringio.getvalue().splitlines())
    +        del self._stringio    # free up some memory
    +        sys.stdout = self._stdout
    +
    +# Below import works only for Python > 3.4
    +# So, we use the class def above
    +# from contextlib import redirect_stdout
    +def TestHelpOutput(thing, words = None):
    +    try:
    +        with my_redirect_stdout() as output:
    +            help(thing)
    +        x  = [w for w in words if w in str(output)]
    +        if len(x) != len(words):
    +            raise Exception
    +        x = repr(thing)
    +        if x.startswith('<built-in'):
    +            x = x.strip('<>').split()[2]
    +        else:
    +            x = x.strip('<>').split()[0]
    +        TestPOA('help(%s)'%x)
    +    except:
    +        TestFOA('help(%s)'%x, LINE())
    +
    +def TestHelp():
    +    TestSection('behavior of help()')
    +
    +    TestHelpOutput(AddPlot, ['plotType', 'variableName', 'inheritSIL'])
    +    TestHelpOutput(CreateDatabaseCorrelation,
    +        ['IndexForIndexCorrelation', 'CycleCorrelation', 'StretchedIndexCorrelation'])
    +    TestHelpOutput(SILRestriction(),[]) # should not except
    +
    +    """
    +    # These tests fail with Python 3.9.18 see bug ticket #19264.
    +    # due to nature of thee way these tests are named
    +    # (different name for failure than success),
    +    # they need to be skipped manually until #19264 is addressed
    +    TestHelpOutput(SILRestriction, ['GlobalAttributes', 'SetPlotSILRestriction',
    +        'TurnDomainsOff', 'TurnDomainsOn', 'TurnMaterialsOff', 'TurnMaterialsOn'])
    +    TestHelpOutput('wholes', ['SILRestriction'])
    +    TestHelpOutput('tensor', ['DefineArrayExpression', 'DefineTensorExpression',
    +        'LCSAttributes', 'SPHResampleAttributes', 'TensorAttributes'])
    +    """
    +
    +#
    +# Scalar assignments
    +#
    +# TestAssignmentToUChar() No instances in any .xml files
    +TestAssignmentToBool()
    +TestAssignmentToInt()
    +TestAssignmentToFloat()
    +TestAssignmentToDouble()
    +TestAssignmentToString()
    +TestAssignmentToGlyphType()
    +TestAssignmentToEnum()
    +TestAssignmentToTuple()
    +
    +#
    +# Vector assignments
    +#
    +TestAssignmentToUCharVector()
    +#TestAssignmentToBoolVector() No instances in any .xml files
    +TestAssignmentToIntVector()
    +#TestAssignmentToFloatVector() No instances in any .xml files
    +TestAssignmentToDoubleVector()
    +
    +#
    +# Array assignments
    +#
    +TestAssignmentToUCharArray()
    +#TestAssignmentToBoolArray() No instances in any .xml files
    +TestAssignmentToIntArray()
    +TestAssignmentToFloatArray()
    +TestAssignmentToDoubleArray()
    +
    +#
    +# Attribute Assignments
    +#
    +TestColorAttributeStuff()
    +
    +#
    +# Dir behavior
    +#
    +TestDir(dir())
    +
    +#
    +# Help() behavior
    +#
    +TestHelp()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/unit_compiler_warnings.html b/2024-12-12-22:00/poodle_trunk_serial/unit_compiler_warnings.html new file mode 100644 index 000000000..2f8c1f36c --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/unit_compiler_warnings.html @@ -0,0 +1,36 @@ + +Results for unit/compiler_warnings.py + +

    Results of VisIt Regression Test - unit/compiler_warnings

    + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    +

    Final Return Code: 116

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/unit_compiler_warnings_py.html b/2024-12-12-22:00/poodle_trunk_serial/unit_compiler_warnings_py.html new file mode 100644 index 000000000..6f82af31a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/unit_compiler_warnings_py.html @@ -0,0 +1,213 @@ +unit/compiler_warnings.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  compiler_warnings.py
    +#
    +#  Tests:      changes in compiler warnings
    +#
    +#  Mark C. Miller, Sun Jul 13 21:45:49 PDT 2014
    +# ----------------------------------------------------------------------------
    +import time, os.path, json, subprocess
    +
    +def ShouldSkip(srcfile, msg):
    +    srcfile_tmp = "global skip list"
    +    if srcfile in skip_list:
    +        srcfile_tmp = srcfile
    +    for skipmsg in skip_list[srcfile_tmp][0]:
    +        minlen = min(len(skipmsg),len(msg))
    +        if msg[0:minlen] == skipmsg[0:minlen]:
    +            return 1
    +    return 0
    +
    +data_dir = test_root_path("..","data")
    +src_dir = test_root_path("..","src")
    +tpb_dir = test_root_path("..","src","third_party_builtin")
    +qtssh_dir = test_root_path("..","src","tools","qtssh")
    +
    +# skip this test if we don't have the make.err file
    +if not os.path.exists(test_root_path("..","make.err")):
    +    Exit(116)
    +
    +# To reduce noise, only run this test on Sunday evenings
    +# regressiontest script stuffs a line of the form "DAY_OF_WEEK=Sunday"
    +# into first line of make.err
    +mfile = open(test_root_path("..","make.err"))
    +shouldSkip = 1
    +for line in mfile:
    +    if "DAY_OF_WEEK=Sunday" in line:
    +        shouldSkip = 0
    +        break
    +mfile.close()
    +if shouldSkip:
    +    Exit(116)
    +
    +#
    +# Read per-file skip list and zero any line numbers
    +# We allow line numbers there so that easy cut-n-paste
    +# can be used to populate skip list
    +#
    +skip_list = {}
    +try:
    +    skip_list = json.load(open(test_root_path("tests","unit","compiler_warnings_skips.json")))
    +except:
    +    pass
    +for s in skip_list:
    +    for l in skip_list[s]:
    +        for m in skip_list[s][l]:
    +            skip_list[s][l][m] = 0
    +        if l == 0:
    +            continue
    +        skip_list[s][0] = skip_list[s][l];
    +        del skip_list[s][l]
    +
    +
    +#
    +# Examine warning messages in make output, building a single, large dictionary
    +# spanning all source files that produced warnings.
    +#   
    +mfile = open(test_root_path("..","make.err"))
    +warning_counts ={}
    +warning_messages = {}
    +for line in mfile:
    +    if "warning" in line.lower():
    +
    +        # get name of file generating warning
    +        line = line[0:-1] # remove trailing newline
    +        warnline = line.partition(":")
    +        warnfile1 = warnline[0]
    +        warnfile2 = warnfile1.partition("]")
    +        if warnfile2[1] == "]":
    +            warnfile = warnfile2[2].replace(" ","")
    +        else:
    +            warnfile = warnfile2[0]
    +
    +        if warnfile[0:len(src_dir):1] != src_dir:
    +            continue # ignore files not in our src dir, not our code
    +        if warnfile[0:len(tpb_dir):1] == tpb_dir:
    +            continue # ignore files in third_party_builtin, not our code
    +        if warnfile[0:len(data_dir):1] == data_dir:
    +            continue # ignore files in data dir, not relevant to VisIt for users
    +        if warnfile[0:len(qtssh_dir):1] == qtssh_dir:
    +            continue # ignore files in qtssh dir, not our code 
    +
    +        src_file = warnfile[len(src_dir)+1::1]
    +        if warnline[1] == ":" and os.path.exists(warnfile):
    +            msginfo = warnline[2].partition(":")
    +            if not msginfo[0].isdigit():
    +                continue # probably a garbled message in make.err
    +            lineno = int(msginfo[0])
    +            rawmsg = msginfo[2]
    +            idx = rawmsg.find("warning")
    +            if idx > -1:
    +                msg = rawmsg[idx::1]
    +            else:
    +                msg = rawmsg
    +            if msg[0:len("warning: ")] == "warning: ":
    +                msg = msg[len("warning: ")::1]
    +            msg_ascii = msg.decode('unicode_escape').encode('ascii','ignore')
    +            msg = msg_ascii
    +
    +            if ShouldSkip(src_file, msg):
    +                continue
    +
    +            if src_file in warning_counts:
    +                warning_counts[src_file] += 1
    +                if lineno in warning_messages[src_file]:
    +                    if msg in warning_messages[src_file][lineno]:
    +                        warning_messages[src_file][lineno][msg] += 1
    +                    else:
    +                        warning_messages[src_file][lineno][msg] = 1
    +                else:
    +                    warning_messages[src_file][lineno] = {msg:1}
    +            else:
    +                warning_counts[src_file] = 1
    +                warning_messages[src_file] = {lineno:{msg:1}}
    +
    +mfile.close()
    +
    +#
    +# Load in current warning counts baseline data
    +#
    +baseline_counts = {}
    +try:
    +    baseline_counts = json.load(open(test_baseline_path("unit","compiler_warnings","warning_counts_by_file.txt")))
    +except:
    +    pass
    +
    +improved_counts = {}
    +worsened_counts = {}
    +for f in warning_counts:
    +    if f in baseline_counts:
    +        if warning_counts[f] > baseline_counts[f]:
    +            worsened_counts[f] = warning_counts[f]
    +        elif warning_counts[f] < baseline_counts[f]:
    +            improved_counts[f] = warning_counts[f]
    +            baseline_counts[f] = warning_counts[f]
    +    else:
    +        worsened_counts[f] = warning_counts[f]
    +for f in baseline_counts:
    +    if f not in warning_counts:
    +        improved_counts[f] = 0
    +for f in improved_counts:
    +    if improved_counts[f] == 0 and f in baseline_counts:
    +        del baseline_counts[f]
    +
    +#
    +# If there were improvements, re-baseline counts file
    +#
    +if len(improved_counts):
    +    bfilename = test_baseline_path("unit","compiler_warnings","warning_counts_by_file.txt")
    +    bfile = open(bfilename,"w+")
    +    json.dump(baseline_counts,bfile,indent=4,sort_keys=True)
    +    bfile.write("\n")
    +    bfile.close()
    +    retval = subprocess.call(["/usr/bin/svn","commit","-m","'Updating warning counts'","%s"%bfilename])
    +
    +#
    +# Generate the (sorted) warning counts data
    +#
    +counts_txt = "{\n"
    +keys = list(worsened_counts.keys())
    +keys.sort()
    +for k in keys:
    +    counts_txt += "\"%s\": %d,\n"%(k,worsened_counts[k])
    +counts_txt += "\"last line\": 0\n}\n"
    +TestText("worsened_counts_by_file", counts_txt)
    +
    +#
    +# Ok, tricky here. Append all the warning details to the html file
    +# so others can actually see it
    +#
    +uniq_msgs = {}
    +tot_files = len(warning_counts)
    +tot_cnt = 0
    +tot_uniq_cnt = 0
    +for srcfile in warning_messages:
    +    for lineno in warning_messages[srcfile]:
    +        for msg in warning_messages[srcfile][lineno]:
    +            if msg not in uniq_msgs:
    +                uniq_msgs[msg] = 1
    +            else:
    +                uniq_msgs[msg] += 1
    +            tot_uniq_cnt += 1
    +            tot_cnt += len(warning_messages[srcfile][lineno])
    +
    +
    +f = open(out_path("html","worsened_counts_by_file.html"),"a")
    +f.write("<pre>\n")
    +f.write("\n\n\nTotal warnings %d\n"%tot_cnt)
    +f.write("Total files with warnings %d\n"%tot_files)
    +f.write("Total unique warnings %d\n"%tot_uniq_cnt)
    +f.write("Unique warning messages by count...\n")
    +sorted_uniq_msgs = sorted(uniq_msgs, key=uniq_msgs.get, reverse=True)
    +for msg in sorted_uniq_msgs:
    +    f.write("%d: \"%s\"\n"%(uniq_msgs[msg],msg))
    +f.write("\n\n\nWarning message details by file and line number...\n");
    +f.write(json.dumps(warning_messages,indent=4))
    +f.write("\n\n\nWarning message strings currently being skipped if matched...\n")
    +f.write(json.dumps(skip_list,indent=4))
    +f.write("</pre>\n")
    +f.close()
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/unit_convert2to3.html b/2024-12-12-22:00/poodle_trunk_serial/unit_convert2to3.html new file mode 100644 index 000000000..dce0246a7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/unit_convert2to3.html @@ -0,0 +1,44 @@ + +Results for unit/convert2to3.py + +

    Results of VisIt Regression Test - unit/convert2to3

    + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    simple_2to3_input0 modifications totalling 0 lines
    simple_2to3_result0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/unit_convert2to3_py.html b/2024-12-12-22:00/poodle_trunk_serial/unit_convert2to3_py.html new file mode 100644 index 000000000..3840a8efb --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/unit_convert2to3_py.html @@ -0,0 +1,34 @@ +unit/convert2to3.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  convert2to3.py
    +#
    +#  Tests:      Tests methods that help with converting python 2 style scripts
    +#              to python 3. 
    +#
    +#  Cyrus Harrison, Mon Jul 20 11:32:42 PDT 2020
    +# ----------------------------------------------------------------------------
    +
    +
    +
    +test_script_src = "print 'Old Style Print!'\n"
    +
    +TestText("simple_2to3_input",test_script_src)
    +TestText("simple_2to3_result",ConvertPy2to3(test_script_src))
    +
    +
    +#
    +# Test on-the-fly logic for visit.Source
    +#
    +
    +test_script_file = "tgen_test_py2_script.py";
    +open(test_script_file,"w").write(test_script_src)
    +
    +curr_val = visit_utils.builtin.GetAutoPy2to3()
    +
    +visit_utils.SetAutoPy2to3(True)
    +visit.Source(test_script_file)
    +visit_utils.SetAutoPy2to3(curr_val)
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/unit_default_methods.html b/2024-12-12-22:00/poodle_trunk_serial/unit_default_methods.html new file mode 100644 index 000000000..64f744ebe --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/unit_default_methods.html @@ -0,0 +1,64 @@ + +Results for unit/default_methods.py + +

    Results of VisIt Regression Test - unit/default_methods

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    GetDebugLevel()
     0 .eq. 0 (prec=5) : True
    GetLastError()
     "Can't delete the last window." .eq. "Can't delete the last window." : True
    Clearing GetLastError()
     "" .eq. "" : True
    Version()
     349 .ge. 321 (prec=5) : True
    LocalNameSpace()
     "None" .eq. "None" : True
    WriteScript('foo.py') == WriteScript(f)
     "True" .eq. "True" : True
    WriteScript() file size
     4000 .gt. 3000 (prec=5) : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/unit_default_methods_py.html b/2024-12-12-22:00/poodle_trunk_serial/unit_default_methods_py.html new file mode 100644 index 000000000..f210bb874 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/unit_default_methods_py.html @@ -0,0 +1,62 @@ +unit/default_methods.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  default_methods.py
    +#
    +#  Tests:      Tests default method interface of the visit module
    +#
    +#  Cyrus Harrison, Mon Jul 20 11:32:42 PDT 2020
    +#
    +#  Modifications
    +#    Mark C. Miller, Thu Dec 16 16:43:39 PST 2021
    +#    Wrap in TestValueXX calls so that we really do test behavior and not
    +#    just that something doesn't fail due to exception. Add tests for
    +#    WriteScript.
    +# ----------------------------------------------------------------------------
    +import os, sys, filecmp
    +
    +TestValueEQ("GetDebugLevel()", GetDebugLevel(), 0)
    +
    +# Do something to create an error (not a python exception) so that we
    +# can get something other than the empty string from GetLastError()
    +DeleteWindow()
    +TestValueEQ("GetLastError()", GetLastError(), "Can't delete the last window.")
    +
    +# Test that we can clear the last error too
    +GetLastError(1)
    +TestValueEQ("Clearing GetLastError()", GetLastError(), "")
    +
    +# This version number test assumes 3, single digits
    +TestValueGE("Version()", int(Version().replace('.','')), 321)
    +
    +TestValueEQ("LocalNameSpace()", LocalNameSpace(), None)
    +
    +# The long file name test is relevant only on Windows
    +# But, we should really have an example of a short file name
    +# there that LongFileName expands and we confirm matches expected
    +if sys.platform.startswith("win"):
    +    TestValueEQ("LongFileName()", LongFileName("myfile.txt"), "myfile.txt")
    +
    +# Test two ways of using WriteScript
    +f = open('foo.py', 'wt')
    +WriteScript(f)
    +f.close()
    +WriteScript('bar.py')
    +TestValueEQ("WriteScript('foo.py') == WriteScript(f)", filecmp.cmp('foo.py','bar.py'), True)
    +TestValueGT("WriteScript() file size", os.path.getsize('foo.py'), 3000)
    +
    +### dir is causing exceptions with Python 3.9.18
    +### so manually skip these tests until #19264 can be addressed
    +"""
    +# Test dir() on some objects
    +dout = dir(SILRestriction())
    +TestValueIN("SetsInCategory in dir(SILAttributes())", dout, 'SetsInCategory')
    +TestValueIN("SetIndex in dir(SILAttributes())", dout, 'SetIndex')
    +dout = dir(View3DAttributes())
    +TestValueIN("RotateAxis in dir(View3Dattributes())", dout, 'RotateAxis')
    +TestValueIN("GetImageZoom in dir(View3Dattributes())", dout, 'GetImageZoom')
    +TestValueIN("SetImagePan in dir(View3Dattributes())", dout, 'SetImagePan')
    +"""
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/unit_launcher.html b/2024-12-12-22:00/poodle_trunk_serial/unit_launcher.html new file mode 100644 index 000000000..a640ba5e7 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/unit_launcher.html @@ -0,0 +1,120 @@ + +Results for unit/launcher.py + +

    Results of VisIt Regression Test - unit/launcher

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    aprun0 modifications totalling 0 lines
    bsub0 modifications totalling 0 lines
    bsub_mpirun0 modifications totalling 0 lines
    dmpirun0 modifications totalling 0 lines
    ibrun0 modifications totalling 0 lines
    mpirun0 modifications totalling 0 lines
    msub_aprun0 modifications totalling 0 lines
    msub_ibrun0 modifications totalling 0 lines
    msub_mpiexec0 modifications totalling 0 lines
    msub_mpirun0 modifications totalling 0 lines
    msub_srun0 modifications totalling 0 lines
    poe0 modifications totalling 0 lines
    prun0 modifications totalling 0 lines
    psub0 modifications totalling 0 lines
    psub_mpirun0 modifications totalling 0 lines
    psub_srun0 modifications totalling 0 lines
    salloc0 modifications totalling 0 lines
    sbatch0 modifications totalling 0 lines
    sbatch_aprun0 modifications totalling 0 lines
    srun0 modifications totalling 0 lines
    yod0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/unit_launcher_py.html b/2024-12-12-22:00/poodle_trunk_serial/unit_launcher_py.html new file mode 100644 index 000000000..19bd3869b --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/unit_launcher_py.html @@ -0,0 +1,196 @@ +unit/launcher.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  launcher.py
    +#
    +#  Tests:      This script tests internallauncher's transformation of visit
    +#              command line arguments into parallel launch arguments.
    +#
    +#  Brad Whitlock, Tue Sep 11 12:31:34 PDT 2012
    +#
    +# Modifications:
    +#   Brad Whitlock, Fri Dec  7 09:08:22 PST 2012
    +#   I added a little more filtering of the launcher output to replace the host
    +#   with $HOST now that the noloopback case will always use the real host
    +#   name instead of 127.0.0.1 for parallel engine launches.
    +#
    +# ----------------------------------------------------------------------------
    +import os
    +import socket
    +import subprocess
    +import getpass
    +
    +# The launch cases we want to test.
    +launch_cases = {
    +"aprun"          : ["-nn", "1"],
    +"bsub"           : ["-p", "pbatch", "-t", "30:00", "-la", "-arg1 -arg2"],
    +"bsub/mpirun"    : ["-p", "pbatch", "-t", "30:00", "-la", "-arg1 -arg2", "-sla", "-arg3 -arg4"],
    +"dmpirun"        : ["-b", "bdivp"],
    +"ibrun"          : [],
    +"mpirun"         : [],
    +"msub/aprun"     : ["-nn", "1", "-sla", "-arg1 -arg2", "-hw-pre", "startx", "-hw-post", "stopx"],
    +"msub/ibrun"     : ["-hw-pre", "startx", "-hw-post", "stopx"],
    +"msub/mpiexec"   : ["-slpre", "echo 'slprecommand'", "-slpost", "echo 'slpostcommand'", "-sla", "-arg1 -arg2", "-machinefile", "machine.txt", "-hw-pre", "startx", "-hw-post", "stopx"],
    +"msub/mpirun"    : ["-sla", "-arg1 -arg2", "-machinefile", "machine.txt", "-hw-pre", "startx", "-hw-post", "stopx"],
    +"msub/srun"      : ["-sla", "-arg1 -arg2", "-hw-pre", "startx", "-hw-post", "stopx"],
    +"poe"            : ["-nn", "1", "-p", "pbatch"],
    +"prun"           : ["-nn", "1", "-p", "pbatch"],
    +"psub"           : ["-n", "JOB_NAME", "-p", "pbatch", "-b", "bdivp", "-t", "30:00", "-expedite", "-slpre", "echo 'pre command'", "-slpost", "echo 'post command'"],
    +"psub/mpirun"    : ["-nn", "1", "-n", "JOB_NAME", "-p", "pbatch", "-b", "bdivp", "-t", "30:00", "-expedite", "-slpre", "echo 'pre command'", "-slpost", "echo 'post command'"],
    +"psub/srun"      : ["-nn", "1", "-n", "JOB_NAME", "-p", "pbatch", "-b", "bdivp", "-t", "30:00", "-expedite", "-slpre", "echo 'pre command'", "-slpost", "echo 'post command'"],
    +
    +
    +"salloc"         : ["-p", "pbatch", "-t", "30:00", "-nn", "1"],
    +"sbatch"         : ["-p", "pbatch", "-b", "bdivp", "-nn", "1"],
    +"sbatch/aprun"   : ["-p", "pbatch", "-b", "bdivp", "-nn", "1", "-sla", "-arg1 -arg2"],
    +"srun"           : ["-nn", "1", "-p", "pbatch", "-b", "bdivp", "-n", "JOB_NAME", "-t", "30:00"],
    +"yod"            : []}
    +
    +# Some debugger arguments.
    +debuggers = [[], ["-totalview", "engine_par"], ["-valgrind", "engine_par"], ["-strace", "engine_par"]]
    +
    +# Get the launcher command for new versions of VisIt.
    +def GetLauncherCommand(args):
    +    p = subprocess.Popen(args, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
    +    stdout, stderr = p.communicate()
    +    ru = stdout.find("RUN USING")
    +    if ru != -1:
    +        cmd = stdout[ru + 11:-2]
    +    else:
    +        cmd = stdout
    +    return cmd
    +
    +def FilterLauncherOutput(text, replacements):
    +    for k in list(replacements.keys()):
    +        text = text.replace(k, replacements[k])
    +    return text
    +
    +def FilterHostName(text):
    +    host = text.find("-host")
    +    port = text.find("-port")
    +    if host != -1 and port != -1:
    +        return text[:host + 6] + "$HOST " + text[port:]
    +    return text
    +
    +def hostname():
    +    return socket.gethostname()
    +
    +def nodename():
    +    return hostname().split(".")[0]
    +
    +def sectorname():
    +    s = nodename()
    +    for d in "0123456789":
    +        s = s.replace(d, "")
    +    return s
    +
    +def FormatLauncherOutput(cmd):
    +    tmpvisit = cmd.find("/tmp/visit")
    +    text = ""
    +    if tmpvisit == -1:
    +        text = cmd
    +    else:
    +        # The launcher made a script. Get the contents of the script.
    +        index = tmpvisit
    +        try:
    +            while cmd[index] != '\n':
    +                index = index + 1
    +            filename = cmd[tmpvisit:index]
    +        except:
    +            filename = cmd[tmpvisit:]
    +
    +        cmd = cmd.replace(filename, "$LAUNCHSCRIPT")
    +        text = text + cmd
    +
    +        try:
    +            lines = open(filename, "rt").readlines()
    +            text = text + '\n\nContents of $LAUNCHSCRIPT:\n'
    +            for line in lines:
    +                text = text + line
    +            os.unlink(filename)
    +        except:
    +            pass
    +
    +    return text
    +
    +
    +# For each launcher
    +i = 0
    +keys = list(launch_cases.keys())
    +keys.sort()
    +for k in keys:
    +    # Test the launcher with each debugger.
    +    j = 0
    +    text = ""
    +    for j in range(len(debuggers)):
    +        np = []
    +        if not "-np" in launch_cases[k]:
    +            np = ["-np", "8"]
    +        args = ["-engine", "-norun", "engine_par", "-l", k] + np + launch_cases[k] + ["-host", "127.0.0.1", "-port", "5600"] + debuggers[j]
    +
    +        # Come up with a visit command
    +        cmd = ""
    +        for a in args:
    +            if " " in a:
    +                cmd = cmd + '"%s" ' % a
    +            else:
    +                cmd = cmd + a + ' '
    +
    +        # Run the launcher and get the output.
    +        visitdir = pjoin(TestEnv.params["top_dir"],"src")
    +        visittestdir = pjoin(TestEnv.params["top_dir"],"test")
    +        visit =  visit_bin_path("visit")
    +        output = FormatLauncherOutput(GetLauncherCommand([visit] + args))
    +        # filter the run dir, since there are multiple variants for nightly tests
    +        # (serial, par, etc)
    +        output = FilterLauncherOutput(output, {TestEnv.params["run_dir"]: "$VISIT_TEST_DIR"})
    +        output = FilterLauncherOutput(output, {TestEnv.params["result_dir"] : "$VISIT_TEST_DIR"})
    +        # Filter out visitdir and some related directories.
    +        output = FilterLauncherOutput(output, {visit_bin_path() : "$VISIT_EXE_DIR"})
    +        output = FilterLauncherOutput(output, {visit_bin_path("..","exe") : "$VISIT_EXE_DIR"})
    +        output = FilterLauncherOutput(output, {visittestdir : "$VISIT_TEST_DIR"})
    +        output = FilterLauncherOutput(output, {visit_bin_path("..") : "$VISITDIR"})
    +        output = FilterLauncherOutput(output, {visitdir : "$VISITDIR"})
    +        # special case filter to resolve csh vs bash env differences
    +        bash_case   = "ulimit -c 0 ;"
    +        bash_case  += " LIBPATH=$VISITDIR/lib ;"
    +        bash_case  += " export LIBPATH ;"
    +        bash_case  += " LD_LIBRARY_PATH=$VISITDIR/lib ;"
    +        bash_case  += " export LD_LIBRARY_PATH"
    +
    +        csh_case  = "limit coredumpsize 0 ;"
    +        csh_case += " setenv LIBPATH $VISITDIR/lib ;"
    +        csh_case += " setenv LD_LIBRARY_PATH $VISITDIR/lib"
    +        shell_filter = {bash_case : csh_case}
    +        output = FilterLauncherOutput(output, shell_filter)
    +        # Filter out $HOME.
    +        try:
    +            output = FilterLauncherOutput(output, {os.environ["HOME"] : "$HOME"})
    +        except:
    +            pass
    +
    +        cdcmd = "cd $VISIT_TEST_DIR"
    +
    +        # Filter out some other stuff.
    +        replacements = {getpass.getuser() : "$USER",
    +                        Version()         : "$VERSION",
    +                        "linux-intel"     : "$PLATFORM",
    +                        "linux-x86_64"    : "$PLATFORM",
    +                        "darwin-i386"     : "$PLATFORM",
    +                        "darwin-x86_64"   : "$PLATFORM"}
    +
    +        output = FilterLauncherOutput(output, replacements)
    +
    +        output = FilterHostName(output)
    +
    +        # Do the test
    +        text = text + "="*80 + "\n"
    +        text = text + "CASE: %s\n\nINPUT: visit %s\n\nRESULTS:\n" % (k + " " + " ".join(debuggers[j]), cmd[:-1])
    +        text = text + output + "\n"*2
    +
    +    name = k.replace("/", "_")
    +    TestText(name, text)
    +    i = i + 1
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/unit_mrucache.html b/2024-12-12-22:00/poodle_trunk_serial/unit_mrucache.html new file mode 100644 index 000000000..2de6bdcdf --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/unit_mrucache.html @@ -0,0 +1,40 @@ + +Results for unit/mrucache.py + +

    Results of VisIt Regression Test - unit/mrucache

    + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    mrucache0 modifications totalling 0 lines
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/unit_mrucache_py.html b/2024-12-12-22:00/poodle_trunk_serial/unit_mrucache_py.html new file mode 100644 index 000000000..075683011 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/unit_mrucache_py.html @@ -0,0 +1,24 @@ +unit/mrucache.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  mrucache.py
    +#
    +#  Tests:      MRUCache_test unit test
    +#
    +#  Mark C. Miller, Tue Jan 11 10:19:23 PST 2011
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Mon Oct 26, 2020
    +#    Retrieve the correct path on Windows.
    +#
    +# ----------------------------------------------------------------------------
    +import sys
    +
    +if sys.platform.startswith("win"):
    +    tapp = visit_bin_path("MRUCache_test.exe")
    +else:
    +    tapp = visit_bin_path("..","exe","MRUCache_test")
    +res = sexe(tapp,ret_output=True)
    +TestText("mrucache", res["output"])
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/unit_namescheme.html b/2024-12-12-22:00/poodle_trunk_serial/unit_namescheme.html new file mode 100644 index 000000000..00fd70580 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/unit_namescheme.html @@ -0,0 +1,36 @@ + +Results for unit/namescheme.py + +

    Results of VisIt Regression Test - unit/namescheme

    + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/unit_namescheme_py.html b/2024-12-12-22:00/poodle_trunk_serial/unit_namescheme_py.html new file mode 100644 index 000000000..6d58a99dd --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/unit_namescheme_py.html @@ -0,0 +1,27 @@ +unit/namescheme.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  namescheme.py
    +#
    +#  Tests:      Namescheme_test unit test
    +#
    +#  Mark C. Miller, Tue Jan 11 10:19:23 PST 2011
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Mon Oct 26, 2020
    +#    Retrieve correct path on Windows.
    +#
    +# ----------------------------------------------------------------------------
    +import sys
    +
    +if sys.platform.startswith("win"):
    +    tapp = visit_bin_path("Namescheme_test.exe")
    +else:
    +    tapp = visit_bin_path("..","exe","Namescheme_test")
    +res = sexe(tapp,ret_output=True)
    +if res["return_code"] == 0:
    +    excode = 111
    +else:
    +    excode = 113
    +Exit(excode)
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/unit_protocol.html b/2024-12-12-22:00/poodle_trunk_serial/unit_protocol.html new file mode 100644 index 000000000..d76a7fe7f --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/unit_protocol.html @@ -0,0 +1,36 @@ + +Results for unit/protocol.py + +

    Results of VisIt Regression Test - unit/protocol

    + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/unit_protocol_py.html b/2024-12-12-22:00/poodle_trunk_serial/unit_protocol_py.html new file mode 100644 index 000000000..d14471fd0 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/unit_protocol_py.html @@ -0,0 +1,17 @@ +unit/protocol.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  protocolo.py
    +#
    +#  Tests:      vistprotocol unit test
    +#
    +#  Mark C. Miller, Tue Jan 11 10:19:23 PST 2011
    +# ----------------------------------------------------------------------------
    +tapp = visit_bin_path("visitprotocol")
    +res = sexe(tapp,ret_output=True)
    +if res["return_code"] == 0:
    +    excode = 111
    +else:
    +    excode = 113
    +Exit(excode)
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/unit_stringhelpers.html b/2024-12-12-22:00/poodle_trunk_serial/unit_stringhelpers.html new file mode 100644 index 000000000..9a7b72614 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/unit_stringhelpers.html @@ -0,0 +1,36 @@ + +Results for unit/stringhelpers.py + +

    Results of VisIt Regression Test - unit/stringhelpers

    + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/unit_stringhelpers_py.html b/2024-12-12-22:00/poodle_trunk_serial/unit_stringhelpers_py.html new file mode 100644 index 000000000..c544e1544 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/unit_stringhelpers_py.html @@ -0,0 +1,26 @@ +unit/stringhelpers.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  stringhelpers.py
    +#
    +#  Tests:      StringHelpers_test unit test
    +#
    +#  Mark C. Miller, Tue Jan 11 10:19:23 PST 2011
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Thu Nov 12, 2020
    +#    Retrieve the correct path on Windows.
    +# ----------------------------------------------------------------------------
    +import sys
    +
    +if sys.platform.startswith("win"):
    +    tapp = visit_bin_path("StringHelpers_test.exe")
    +else:
    +    tapp = visit_bin_path("..","exe","StringHelpers_test")
    +res = sexe(tapp,ret_output=True)
    +if res["return_code"] == 0:
    +    excode = 111
    +else:
    +    excode = 113
    +Exit(excode)
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/unit_test_value_simple.html b/2024-12-12-22:00/poodle_trunk_serial/unit_test_value_simple.html new file mode 100644 index 000000000..ac1c5c847 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/unit_test_value_simple.html @@ -0,0 +1,120 @@ + +Results for unit/test_value_simple.py + +

    Results of VisIt Regression Test - unit/test_value_simple

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    Basic
    test_value_basic_001
     100 .eq. 100 (prec=5) : True
    test_value_basic_002
     200 .ne. 100 (prec=5) : True
    test_value_basic_003
     100 .lt. 200 (prec=5) : True
    test_value_basic_004
     100 .le. 200 (prec=5) : True
    test_value_basic_005
     200 .le. 200 (prec=5) : True
    test_value_basic_006
     200 .gt. 100 (prec=5) : True
    test_value_basic_007
     200 .ge. 100 (prec=5) : True
    test_value_basic_008
     200 .ge. 200 (prec=5) : True
    test_value_basic_009
     100.0 .eq. 100 (prec=5) : True
    Precision
    test_value_prec_001
     200.0001 .eq. 200 (prec=3) : True
    test_value_prec_002
     200.0000000001 .eq. 200 (prec=9) : True
    test_value_prec_004
     200.0001 .ne. 200 (prec=9) : True
    In Operator
    test_value_in_001
     200 .in. 
    (100, 200, 300)
     (prec=5, at=1) : True
    test_value_in_001
     (1, -1) .in. 
    [(0, 0),
      (1, 0),
      (1, -1),
      (0, 1)]
     (prec=5, at=2) : True
    test_value_in_002
     35 .in. 
    (17, 18, 19, 20, 21)
     (prec=2, at=3) : True
    Objects
    test_value_object_001
     "[1, '2', 3]" .eq. "[1, '2', 3]" : True
    test_value_object_002
     "apple" .lt. "carrot" : True
    test_value_object_003
     (1, 1, 4.71e-06) .lt. (1, 1, 5.01e-06)
     (prec=5) : True
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/unit_test_value_simple_py.html b/2024-12-12-22:00/poodle_trunk_serial/unit_test_value_simple_py.html new file mode 100644 index 000000000..553831e89 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/unit_test_value_simple_py.html @@ -0,0 +1,56 @@ +unit/test_value_simple.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  test_value_simple.py
    +#
    +#  Tests:      VisIt Test Suite Test Value tests
    +#
    +#  Defect ID:  none
    +#
    +#  Programmer: Mark C. Miller, Sun Jan 10 10:24:59 PST 2021
    +#
    +# ----------------------------------------------------------------------------
    +
    +# Basic cases
    +TestSection("Basic")
    +TestValueEQ("test_value_basic_001",100,100)
    +TestValueNE("test_value_basic_002",200,100)
    +
    +TestValueLT("test_value_basic_003",100,200)
    +TestValueLE("test_value_basic_004",100,200)
    +TestValueLE("test_value_basic_005",200,200)
    +
    +TestValueGT("test_value_basic_006",200,100)
    +TestValueGE("test_value_basic_007",200,100)
    +TestValueGE("test_value_basic_008",200,200)
    +
    +TestValueEQ("test_value_basic_009",100.0,100)
    +
    +# Rounding cases
    +TestSection("Precision")
    +TestValueEQ("test_value_prec_001",200.0001,200,3)
    +TestValueEQ("test_value_prec_002",200.0000000001,200,9)
    +TestValueNE("test_value_prec_004",200.0001,200,9)
    +
    +# IN operator
    +TestSection("In Operator")
    +TestValueIN("test_value_in_001",(100,200,300),200)
    +TestValueIN("test_value_in_001",[(0,0), (1,0), (1,-1), (0,1)],(1,-1))
    +
    +# Custom equivalence operator for TestValueIN
    +def EqMod5(a,b):
    +    return a%5 == b%5
    +
    +# This tests that '35' is IN '(17,18,19,20,21)' by the EqMod5 operator
    +# which says two things are equal if their mod 5 values are equal. So,
    +# '35' is IN the list because 20%5==35%5 (0)
    +TestValueIN("test_value_in_002",(17,18,19,20,21),35,2,EqMod5)
    +
    +# General Python objects wind up being tested as strings
    +TestSection("Objects")
    +TestValueEQ("test_value_object_001",[1,'2',3],"[1, '2', 3]")
    +TestValueLT("test_value_object_002","apple","carrot")
    +TestValueLT("test_value_object_003",(1,1,0.00000471),(1,1,0.00000501))
    +
    +Exit()
    +
    \ No newline at end of file diff --git a/2024-12-12-22:00/poodle_trunk_serial/unit_utility.html b/2024-12-12-22:00/poodle_trunk_serial/unit_utility.html new file mode 100644 index 000000000..6259f9415 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/unit_utility.html @@ -0,0 +1,36 @@ + +Results for unit/utility.py + +

    Results of VisIt Regression Test - unit/utility

    + + + + + + + + + + + + + + +
    Test CaseErrorsImages
    %DiffsMaximumBaselineCurrentDiff Map
    +

    Final Return Code: 111

    + + diff --git a/2024-12-12-22:00/poodle_trunk_serial/unit_utility_py.html b/2024-12-12-22:00/poodle_trunk_serial/unit_utility_py.html new file mode 100644 index 000000000..16c29e94a --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/unit_utility_py.html @@ -0,0 +1,27 @@ +unit/utility.py
    # ----------------------------------------------------------------------------
    +#  CLASSES: nightly
    +#
    +#  Test Case:  utility.py
    +#
    +#  Tests:      Utility_test unit test
    +#
    +#  Mark C. Miller, Mon Dec  1 23:55:05 PST 2014
    +#
    +#  Modifications:
    +#    Kathleen Biagas, Mon Oct 26, 2020
    +#    Retrieve correct path on Windows.
    +#
    +# ----------------------------------------------------------------------------
    +import sys
    +
    +if sys.platform.startswith("win"):
    +    tapp = visit_bin_path("Utility_test.exe")
    +else:
    +    tapp = visit_bin_path("..","exe","Utility_test")
    +res = sexe(tapp,ret_output=True)
    +if res["return_code"] == 0:
    +    excode = 111
    +else:
    +    excode = 113
    +Exit(excode)
    +
    \ No newline at end of file diff --git a/index.html b/index.html index 3d15420fe..97ab40f40 100644 --- a/index.html +++ b/index.html @@ -7,6 +7,21 @@

    Results of VisIt Regression Tests

    Result +Thursday, December 12, 2024 22:00 +poodle_trunk_scalable_parallel_icet +Failed + + +Thursday, December 12, 2024 22:00 +poodle_trunk_parallel +Passed w/Skips + + +Thursday, December 12, 2024 22:00 +poodle_trunk_serial +Passed w/Skips + + Wednesday, December 11, 2024 22:00 poodle_trunk_scalable_parallel_icet Failed @@ -907,21 +922,6 @@

    Results of VisIt Regression Tests

    Passed w/Skips -Wednesday, September 25, 2024 22:00 -pascal_trunk_scalable_parallel_icet -Passed w/Skips - - -Wednesday, September 25, 2024 22:00 -pascal_trunk_parallel -Passed w/Skips - - -Wednesday, September 25, 2024 22:00 -pascal_trunk_serial -Passed w/Skips - - Saturday, January 06, 2024 22:00 pascal_trunk_serial Failed

    Jf$H5XmTYhvz?DzZc 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_09_thumb.png b/2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_09_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..bf425dcdc84f3c879f1d3b602091066814af041f GIT binary patch literal 15387 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 FV1gg{V>AE& literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_10.png b/2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_10.png new file mode 100644 index 0000000000000000000000000000000000000000..154d310600cd7d414a1409c379e8ad9ab43f04ea GIT binary patch literal 15151 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_10_thumb.png b/2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_10_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..e95e48588289a722ce41e6c56f1bca7a52705ca5 GIT binary patch literal 13053 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 LNkvXXu0mjf0t1oF literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_11.png b/2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_11.png new file mode 100644 index 0000000000000000000000000000000000000000..92fa0c6eaf77d8453a12b30bdef1fc9f33d41cbe GIT binary patch literal 74458 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 }o;Tqm)bz7SKEecf<| zK^Gs%eQzxKQMmX>F21I;wVd|fCJRD{jAa!`77`zfg)xQvNa`Di-m>eDoH z9QOzk@rxh;$+0Uaj&oSRBS?Z~XhH~tfX{dhw%>Kn&U=!9VhbC|jV6q#VKv|ic~_8G@GUkF^oMlr9+2Gz-WHdNr3zN@ojhB`@p^VJVr(^Fn~%0AOAQim590S3w9$z z*Cnk_*?MS|LRcpia=l8^vphLv|HUUin981P@VppgCz>2HjmD?WGZeWVDVm+8Dq$^L zLX4Xn2C+>o1dKC}K~l1{Bt+C0qgX_#jQH$n1t;ddxRV84Jef<6P8&+tq%quJX2XA) zN}X{fh{iTE5H7@b-xvQB1B5K0kB}#1;W7c>rFbY1%}h!Rm*`^&mf-=CpaIR01drhn zh%tuk_k9*Kyz_H+M>i1wc$Fq%0aDW$?bxwnjw1CH#VJZchYns-W)o-bCsavzc;_eY z1hD(yy>4vw?6VOu&ORIYJo@^gxx2y;v$M$8Otr@4GKV46YcxHLcYN#vHl8fOog&S{ zw87_McP{krJV)vD73b>rJb02^*?m$KB;0&VU?E^F1d%668!L#UAQCKy&Nu@zKa09< z6DVrX4FC{O27#K|9~3sVD@jTWo9(>@Ke@3r_7@lO9m>kKZ+`%N9s-RlVSwNPJ|T#? z=TU5ha;lvGMTPkcc!0<700T%s$NjYl@CX66f9kV4f9LKXm_HJ@a#)piG99r}J!X~> zu62jZ=K+}JEfUqy|Ze zOxPJcGcr7q>@XG9lflc2e{Pyhz4Kr8>6&hh-X<)oHG@o2` znr4kPZvH>3ov}yctnlH%(e@jD-+f=h05Cwv0a-={=mWBZOx$?NkuYk(7|%Bo`DraU z?t<@L1_&9NVHk>0Wz;a~|23Y$@7}Wt&z>_ov8p`|Ti`8Og6Ei(XJ5EP;OghR2fi4tM?bl~Ur0U%Y$&XrtlJo{2qfp@oD1EbO$Jo}HZquzB<5 z&098a2Btz+H%x!?9E?Gw0@pn#?PzpCk-*QmL;|H$7%I2GV9Q*q!6nUUYeUV(aHwq< z+IrnqtEMXnF@ZU@Ox z-#OyxtuLVjT#h?Fb;q__x3!#o<({j#9iAucd2T=NDQ%7>NSEigZVSLFdW>9C-MNl) z{eRuNcW>I@M9R)gYoJ?`woVg@4f(;8RzSqSNenp zw@j(XAE$InH%*?McHg&Pj!&HWWNlkgEeX>B1MK?dlNfjQCy)WMKtS*r9>GHtppT5w zcuZ(hEh#ME#eNzWt}qM&GyqJ${Y6XzGx2HvIUf9@2e;ka%ERTwsyI9sg|$IK2PcW` zRz#X4iCxO6GW_(O7S>Fg_P4h$BxBCQlZVH~##%%Y;Afx3=qPeINEzjkhasedF_040 zLPVkRC<*|;SY|-$hAV}g)n;G~wB;movs!8WZW2Oz9wDkdZgzoo7z(=eu7uYj6&M^F z-q<#z1ON=Cno4Ej1s9ih!#u}Bk0aNph(8O*K?`?Y3s{CE7{IgBm%e}sP);={6u>m_ z&+y=vAKZ51itz9h>2g0W))EQPr4~^H!YG3{WR`F*aoD8SaBAwjG|~i1^DP(TX4UNB z$-`%FK09IQpyvU&Z^t*DeC(PRUclSl1|rn!P%7Qo4Sm1%1$_OsC=TZwGL5httYu?i zqY_-!maSVb_~}nktzq2DSa2Xb39^YsT2ra=;F$zq=4iVJa+?4q)+wp50>r29f?F=X zeAf@2jBHK`_=HTXdp<#MLjw~Aig+Qp$3EaQTq|us(^tO$6~8OFGyxm~1n~27f9H$F zsV{vkSYspvuw%y#H?~ewQ3eu#RyyHfS_ad8R5h)TlFD|wv?Ch{boAKKOwDF*BR}BI2P{_1Vz<<&N`Lc6r5-< zF!s$P(|1zj8lC>N=btAVsERX|s0|F2J=)r9lErS@YVyy2(u=YrZ?g?&Q z;3=ijBuxKhaDArUQ3lb>x|ZdrDLqh{Dh(6{kaEL*9fDFQ7E!A;W#@Pv ze1@^C4Qtn0+k(Mtp)ETGh8m$}ZCGg=YE~idKY-wp^Bcbn)EbP4o36EDa9G4_jP30v zR;K){P1{;=%Udqp^^>O}vNEY{23oT=9EKcfsF3S**18itQap6M zXXdywgGJFSfDCZt7j4L3lRu^vSs;Kb;fT)~cQKVQ_YkwrMd}gjp#=!jA5Jll0TT~3 zZQT39{kRl?u#>-OVK{YSeJ6r7OhR<4y@>NKrjAVI26MHUC=H5021cW)148>C5P%U~ zXDn#3U^VnDAAac3C$4s>s;(J;QyOa#1Q5mwh7&pfDr5#TyFp;YK&9Or-5iEIHN)zy z=Xc}=5rLtNE5V@B!Nd78#v14Agu#Lwn)arTg-z1l@_{;?>z2)z{P*MEj~p=Rxz#8( zK^+wh11Sw80KETKpN{;c6u)e&gaAB10RbW(4*^3!2vpjyqAL>VTkG_5SlcAToaOn2 z(E@;Aw2>1fj)=O5x&sR<03=;+=Z2fgr{hRcL;unh4?X$J)d>k*d?J$pfKk^kBjhk- z099oHS8dGNl~8Hxs(V$)hhF8QQ=J**%t;|bHts8<)`_vvm5oD157tf|W&mxY!L9`U z_iw&-%a$$MpLrm%OQTW=8#feY00?3kjA|)({|BE2fD#~L(Q|B+Kmde*0u)e*M~3cI zTPO+FhxD~z&6Ch!p0eOhSRnlpw1+^FO$O$&cRcj%|8uoVZVkgIW2Romkg=9|dWMw( zfLaZVsJ9J>Epr%hwZ^Yb+EUrhlo|i@d^DUb$*J96ON~=Ed7c{kwrd?Tn5SoFgDk1? zg61SjW9K_Qx&4O^L@pV`38GH-5{ooGQ^Y_3dBDb$<76Zmt74cENdg469iGQ4v(BWi z1?z-_SP~Bxg_c>hTGG2M>^m?0^T)sQ%VCJIF@zzMLcNa3qZUBDZk4hCDmABs?7THI zGhD8su57h#XUjZz(M1Rw4k7m%tb2`T-DD8A7jGRFrs>zh$+*EzHsDfee?GryF`t`v zzWp}0wEgdXH?ld&{eGp!oW%RDeKhrHky!wk}R91OW}r&#>>;?GSEnoN%63& zE!y~GspXv)+zw#-?)#hQ2L|l^5Bz0gM|XQ95XRdnHa-&)3V^Wf+g<6mzNN1P>xzU} zR0p@kBXPZ^)5H^xj$3};FFiz{Z$0+Dkr4y|inG=eWDI-01yB#IF>DN!=1{XXIC$6& zT=eGh^Ur&M6`sB7y{4{Nvr*R6?RSpTWsXc0QR%n+1j^N1iZoZ|@a(4;7^mtOkqXc+ zK@XFqom)TU7PjyEZNP%<{%gM%F%2m{XW|!iu2Iv(=xtx?O276X@Vdu(Bca2}nWl5_ z(84Ar;??hdSU}wWrK`pVt?$EH!7>Z1I=z@4|;nO$$Zx`0zJF$1)#6AF} zb6)QV>}Gv(2Rx(p9C9`YtPE@>XM#RsNwYM@n5wP0(50IQrrj70%4Gm57nO814JVU- ztrcDJ)JmlT%{*+OTss4sRt7~gjh+_)bS9VhKMf1CgEYC zjV)Q`=}fwiO>NemaVGm&6Z9D`qtAW4e(4`n)z<4!JO9hh&;QQnJG7BWUr(h1KxMN{ zYnf-d$Y2^N9(EHwq!^gK35#E_ux{&{|>UiAmXJz3PxMa zLWiUjsXD0*G+x*gh{1@i;Y^r5euqm^s?m=JXqpRdPLxUqV;*+Y!zLasxh+Lc`a0sY zAR%HNzUMvfS>7kWrO35VQO{_^rY3_WWI{r3$U~f=idfAmo8BS+@jD@OosFh2w4o7U zK*2Z)8eWhI5X+!9=+$Ow?r1Ifca2NZS_v^zsYEe}?o~@ID3uQ8^JhfY)j-SJmqNdu z^v#Vm&|_wK;X2kV`(ahNQN5AWSk!GjE3y*O&G`AT-}>0DFYHQ&k*TsjX7I$b55D~u zje=t0KJ*>f-KVPZr60++U3*=}ntbwVamg(;trYIxUK&|^Tiz`x)axgkogjNn4 zQ^tbf;ti)xHZ70BH?eQ;-o5T!&VseD z)6>&6(YZfoesmPTbg2YuFW9B+|D+_qiKZ_qkf~ zc~2K}G>w&uA{t>_%V5Vw0Io2orbZ#6T#_7Lacm(Tf#;FnIL0ft+oJ; zPaStWEEbB+YL$>f!B7&(xb&vmTYRA%ZC5Sko04_`PSI`%0;7~ng#;P%X<*B!ugAbe z;WQ;7Rye^e4I@l0pBo$>1W+gxS`x2Y%-6Z$7^u+MC7T~hP35^Tr)W0>fl0^ZOQoaT z_Ut)4PaLN&2_06t_M!zzDBt}%M}d42(@$%l^NUWk%@fu{KLE^2mcb4e(g{6>=Q84S zCm~Ks?L`6`Sg9m;>I&DsbBhV;yfTxe$(G&P1#tSz>}&NPc`A0Jt%ixcj$swCnh7kzmKbp7gCWdL(Q@ znujaIz%*3Q*~Kz9BKkR`ySptX1997JA9D*m`mHp2By7cs4iR0ULr`1dJeW=NYXNiV z$bus2^TK`nHQK{-Euu%l4p@mHVx!K8S!FT+f_i;{@6B)6FmK4=#2I*6b(A=z&?8}2 zEMxRS7K@EUmKZ9NNsr}%Fl=n{8sCe|=W(pbKiLZA(qya4bWu1Rnkk*i=#g+PoH!5j zXPyZ(_g`uUGXRzD9GqG|H%f;OFZtSf(szoWN5XlK3=umHkn$rV-FzYW4I3JM%ehI| zzP=k3Q;yIRr(chIrwDo^oFDFCz5Vvv+x>)&fmX_)ViAaam6V?H)6EQO7e~T0TxnEt z#-8-8JM>7nQ0&;Tqw`e3fH21SMe-vfkytfH4jMHLiw&d4$0@z~>JqOTKu`KkZS+XE z2)HRq(LHpQHccZ!BDNvBDIs;r+a>}KXbr%WN=s&-tEokgey28iBwQRE{klnF8fikB zk&z%FVGHY+0R&60{p*ZgUEdl)kAzEslf)&Yk_7WLAUr|z>iX6qPP-m6%ZSCct68D; zHp#)!>*lgH;hk>%JeKjik390o0w+#L&bx%O&;5B@9G)$Eu8;e??$6sZM^6YRvj(aK zJ%{JIL63yXfRkCC-;4FFKlDhrJU9vE`90}dujr9**|0*UX)o5d?$IORGGiG{(_XCa zG(nGq%a0S}VK3Hqx}itH6~WSmh`nwurzd(OTq!Jkh}dgncABF{!j*-S#BPz?p7iyA z9tlqZTw+a{X+7!dA&njhPX=5qB6`x-Lnrh|c#_Z~UJu={9CH@*&_fR=fF22Z=wX%7 zBVi9ctTK8e?4gHMMvsI&^svh4k+6pzRvG^vjP>@&MUeJt00000NkvXXu0mjf2t<{d literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_11_thumb.png b/2024-12-12-22:00/poodle_trunk_serial/c_pixeldata_0_11_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..a1f85c2f66d7f70eeba483dd49317a1b0aebb43d GIT binary patch literal 17243 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 hH;T3dO@%3_-^f@{#4eH~;&&D#=^~Dy9Gc literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/d_annot_macros_tafile_2_thumb.png b/2024-12-12-22:00/poodle_trunk_serial/d_annot_macros_tafile_2_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..523ae1ca589cab2f1e303f57d55f126f24f2c4ee GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5bvKPKLJv~3EZnH2WP(wle*$L_S8~OkKZkqJ|dDEnrNt3Qm zJ7tx8(q>)$)qmTctej-M>h$5lMV%d+_h;W~-)1GFzAN}ONaq80Zk_FHOH7KMHUoJK Mp00i_>zopr0OtciYXATM literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/d_annot_macros_tafile_6.png b/2024-12-12-22:00/poodle_trunk_serial/d_annot_macros_tafile_6.png new file mode 100644 index 0000000000000000000000000000000000000000..3ecbce8e2e9a8a01033ec272e55b699f563101da GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AMKx(O{i(^Q|oVV9EayB?HupB)8 zulicZ!IZ$7qcges&gSueloA9D@zLr070s#N8uSIV1+c&!Ql}5vDFPj`q4>1x2jf1u hH;T3dO@%3_-^f@{#4eH~;&&D#=^~Dy9Gc literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/d_annot_macros_tafile_6_thumb.png b/2024-12-12-22:00/poodle_trunk_serial/d_annot_macros_tafile_6_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..523ae1ca589cab2f1e303f57d55f126f24f2c4ee GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5bvKPKLJv~3EZnH2WP(wle*$L_S8~OkKZkqJ|dDEnrNt3Qm zJ7tx8(q>)$)qmTctej-M>h$5lMV%d+_h;W~-)1GFzAN}ONaq80Zk_FHOH7KMHUoJK Mp00i_>zopr0OtciYXATM literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/d_blueprint_rz_cyl_rectilinear.root_plot_revolved_to_3D.png b/2024-12-12-22:00/poodle_trunk_serial/d_blueprint_rz_cyl_rectilinear.root_plot_revolved_to_3D.png new file mode 100644 index 0000000000000000000000000000000000000000..4e31e2315fb5495a30ff04a69f627756ba6a8d34 GIT binary patch literal 1269 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AM3=AxLJY5_^D(1YM>zF5F$ip)A z&;Rr15+^zrd0a}FtTc7i?8JntYcey_*x73MK)SGi1OLx$zs*?p`1SPpZA+zvp1;=L zKVR^3QP+OYUvqaC=C4~f>sNu{$E{0~m)YIns!hM!vywl&C_cg@|CMw7mv^GE%j`^+ z=f|GQe&zg}p*A~o#;*%z&exqvSDnk8{iyo9(bjdV?Ek6jUSEFTE?z7yo;~o zAJz-!HM19J=W8rpGjZLTjWwIvb``O0J}LG3l*C!p>eelBGxS@q~4zrxu}@ksO|63yhe1Lj^XTo22XfDZJH)>TF^u{yI0#e zWZOcAuxpEwo*q_9U0XD@@3fi7iIY)bYjPe;SyQ@h(!`r>Op=k@-BY>ePS|=WRI4oJ zT2T1R2Xi8s5+k#_r*_Cq-FhR`#^!c_f<|`f#zP-7r#bjs`;_F$z95q6gb>HcsQui{ z$`^DRJJzswiAp!6aVmH#D7@~Bm5^#q<9xA6PBSb;V3ulw4rAmsQf)(Y zY9+vef!Bg}2gtRjab|3i)1GD}a8}4+8p9@*2_Oxg*NV-Z3su1CQh>%XL^5@)Vb5>7 z6<`8lpMWT3iS)n6vvgwyTpLs=R2pm&Rw0f}QU5+y+aHQRHVvv=W7E7EtZox0U%Auvw7t{uu+s`Px; z)^lNc1x3<&o2T~7w%r_d^HiI!{Dw&gA@nF4y`T@ zAwz;fDRziTl{08HLcU#+;oe;Cecm5g%6-S=z4w#%z1+R`yhjuzN|Y#30yCw0z-uD< zGchE)9DnnXvhRtgc}+ilzkI(|w4}nu-W7yg?QLWyD_C}%>KI|*R2_3;vlT`FKx@;G zSU8Xo0C2EiKsZ&8V*sB1oD~{80stBXJ!8GiH-PrKj#25U7(lNwc|%80H`Em!Lscnt zbqt_e;v0!WJp(vQun||+09^KDF|YHWc+3fNn)(LNR(&hBX zCuPG$$SKR)B&Ca#EUlz;BrEe~10kAUks@0$QzW(}YmvV-oh{&2JoVy8%4ySq5Tzxj zKBcr8j!QcgI+9q%d>}*_;k*jS;;ap1b}H6%ZWTK#nDoUVJcrj(8{vor;(E z<)!&RM*0wu$9;2T|54V$v~mcl9Y*em7dxf{*}0InnLrT~5QEwm;MTv+xruQeP^bm0 zQuo`e-!dlK_q=u{H8!)tCZd9N0nt|2z+2PWBm#PCe1oX+q+>iOZg^?^kJ-C7gCy$e zMxDP8HAq}pscSri#9gJc-*fezbW}Em^|pnHh~{>=#_pW1!JabRsTyXrCcX1}wN)d6 zh^QFOcs22{L6dRE?t!&j4#9gn=X@@I$cbA!cb&5@Us*SH_A9{TtEErxmWC(z<>cqL v6YnqcShbg#>ERmJzf(FcN|Y#3q6Ft3O4(qfINbDR00000NkvXXu0mjfg_K_o literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/d_blueprint_rz_cyl_unstructured.root_plot_revolved_to_3D.png b/2024-12-12-22:00/poodle_trunk_serial/d_blueprint_rz_cyl_unstructured.root_plot_revolved_to_3D.png new file mode 100644 index 0000000000000000000000000000000000000000..4e31e2315fb5495a30ff04a69f627756ba6a8d34 GIT binary patch literal 1269 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4xj)-jM&AM3=AxLJY5_^D(1YM>zF5F$ip)A z&;Rr15+^zrd0a}FtTc7i?8JntYcey_*x73MK)SGi1OLx$zs*?p`1SPpZA+zvp1;=L zKVR^3QP+OYUvqaC=C4~f>sNu{$E{0~m)YIns!hM!vywl&C_cg@|CMw7mv^GE%j`^+ z=f|GQe&zg}p*A~o#;*%z&exqvSDnk8{iyo9(bjdV?Ek6jUSEFTE?z7yo;~o zAJz-!HM19J=W8rpGjZLTjWwIvb``O0J}LG3l*C!p>eelBGxS@q~4zrxu}@ksO|63yhe1Lj^XTo22XfDZJH)>TF^u{yI0#e zWZOcAuxpEwo*q_9U0XD@@3fi7iIY)bYjPe;SyQ@h(!`r>Op=k@-BY>ePS|=WRI4oJ zT2T1R2Xi8s5+k#_r*_Cq-FhR`#^!c_f<|`f#zP-7r#bjs`;_F$z95q6gb>HcsQui{ z$`^DRJJzswiAp!6aVmH#D7@~Bm5^#q<9xA6PBSb;V3ulw4rAmsQf)(Y zY9+vef!Bg}2gtRjab|3i)1GD}a8}4+8p9@*2_Oxg*NV-Z3su1CQh>%XL^5@)Vb5>7 z6<`8lpMWT3iS)n6vvgwyTpLs=R2pm&Rw0f}QU5+y+aHQRHVvv=W7E7EtZox0U%Auvw7t{uu+s`Px; z)^lNc1x3<&o2T~7w%r_d^HiI!{Dw&gA@nF4y`T@ zAwz;fDRziTl{08HLcU#+;oe;Cecm5g%6-S=z4w#%z1+R`yhjuzN|Y#30yCw0z-uD< zGchE)9DnnXvhRtgc}+ilzkI(|w4}nu-W7yg?QLWyD_C}%>KI|*R2_3;vlT`FKx@;G zSU8Xo0C2EiKsZ&8V*sB1oD~{80stBXJ!8GiH-PrKj#25U7(lNwc|%80H`Em!Lscnt zbqt_e;v0!WJp(vQun||+09^KDF|YHWc+3fNn)(LNR(&hBX zCuPG$$SKR)B&Ca#EUlz;BrEe~10kAUks@0$QzW(}YmvV-oh{&2JoVy8%4ySq5Tzxj zKBcr8j!QcgI+9q%d>}*_;k*jS;;ap1b}H6%ZWTK#nDoUVJcrj(8{vor;(E z<)!&RM*0wu$9;2T|54V$v~mcl9Y*em7dxf{*}0InnLrT~5QEwm;MTv+xruQeP^bm0 zQuo`e-!dlK_q=u{H8!)tCZd9N0nt|2z+2PWBm#PCe1oX+q+>iOZg^?^kJ-C7gCy$e zMxDP8HAq}pscSri#9gJc-*fezbW}Em^|pnHh~{>=#_pW1!JabRsTyXrCcX1}wN)d6 zh^QFOcs22{L6dRE?t!&j4#9gn=X@@I$cbA!cb&5@Us*SH_A9{TtEErxmWC(z<>cqL v6YnqcShbg#>ERmJzf(FcN|Y#3q6Ft3O4(qfINbDR00000NkvXXu0mjfg_K_o literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/d_life03.png b/2024-12-12-22:00/poodle_trunk_serial/d_life03.png new file mode 100644 index 0000000000000000000000000000000000000000..c0f2d101405b3e25d3b3f519accfefce5debd8a0 GIT binary patch literal 3565 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/d_life03_thumb.png b/2024-12-12-22:00/poodle_trunk_serial/d_life03_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..a8346ef055b580ea8aaf52a4b9035cc6d3524ab4 GIT binary patch literal 5828 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/d_ops_dualmesh_mesh_plot_2d_01_thumb.png b/2024-12-12-22:00/poodle_trunk_serial/d_ops_dualmesh_mesh_plot_2d_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..23350613df49634fc5cf1c3ceca69f1b586f5ef3 GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5-Z^T{;56=HMBhH+M zNi$h$%~{u+8+8@Jp^R`)sh=fQrZ`LZ3d{Oyw^C2sizuJ}%1`LqYWMs#_Mu93o44-w zKj&X)%A^^*ZTfdk4peYLT~J}_K6VyJ89s0zcdIN&{(0ne3}pt753^$kq6z$1%D7XM>7T{!N#!6JPgg&e IbxsLQ03I?PLjV8( literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/d_ospray_domain_boundaries_00_thumb.png b/2024-12-12-22:00/poodle_trunk_serial/d_ospray_domain_boundaries_00_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..05de11770c5d4d26117553ecf5163112e8839b76 GIT binary patch literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^DIm-NBp5y1oU&j}DL52qbw|>w5Df6mAo{@o}Awb%=h9T_8 S)#P^|Gd*4XT-G@yGywoO11I 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 V$FcV@pIHC^002ovPDHLkV1n%?O2GgC literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/d_pixeldata_0_05_thumb.png b/2024-12-12-22:00/poodle_trunk_serial/d_pixeldata_0_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..5b86218a598e032bee1b6aac9b82add0f07a0304 GIT binary patch literal 2068 zcmV+v2 z0L(?eNUh`vk!M#M!I|_W(Q$kt^B0R{#%Rz01vcP644~m2PB?TR0>{#CpE)vM_cDkv8E$f{uk#P%0D!{RyI$4n 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/d_pixeldata_0_08.png b/2024-12-12-22:00/poodle_trunk_serial/d_pixeldata_0_08.png new file mode 100644 index 0000000000000000000000000000000000000000..700ddfe1e04d5d379bc7f2477021dc52e9dbc40a GIT binary patch literal 2714 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/d_pixeldata_0_08_thumb.png b/2024-12-12-22:00/poodle_trunk_serial/d_pixeldata_0_08_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..6f257327644f464ed52f0528b4bc1bd299e2854c GIT binary patch literal 2065 zcmV+s2=4cZP)@Vju3bjCA==%no9GwepiL$8RwP02}~+ z=)(Qh^j;l}M^mntSQf}l5daPMu>7F|Q8<@=`^=F6hmS#=$#RopeVu<82LKel-u0?h z&-)jbc%QAWuixe)qIaJ2hKMNmJ@awOqWDKE3M}_|cNPQ4KSsmf;5d%sxZ>LvaG8-D ztP9W0M7J+om?ezp2XCDo!;fF_d*AE$#ZDj`0!(?h)b028j{1jqS?AVlx2&$qyB+LB zA{vW{E&uq=d+mh8X$a^z~5MBA*QR(F?qSO4JN8NS_i$ z9Mh1p;Or<8{eIeOq02+V<Krt_FhN!lFsl8mo~p zD%9q13*b_p6XDGO3IWg153@sW}w2pCD`@S?1;IP{57P(X-5q7P(HDmn%0Puv9 zpUWXj)I4cujquN-H!E7tOd!}JgDiSv29Omc0ASsqY&}7;C;)4V>Ri`SixsdpE8Bu) z09+DAU2+xV|MFtk5T)&@m-|&ruK~ci6r#kFY(KvV*kcHyu8;!&@-wXiX6u$$18~~2!o?M!W$ROs2+J7Z%TZDD)%(a|A z?vO!l`RrRu^RK#FfHnZY#mSsNo|L^42E|jStMN#JK41WiY;R0cPH7}@tjOEagU=@L z;3@zhfSIh?>B>zyN@1jxwe-atPBM0{Bb7ss{k%&C3lWwKNM5697#1 z0L-3hVD3G+futUY00~tU0Ehx8Km7t$*i}Z&RKhgtv=&|iJWm6#S6N=tUvQb|_FI=1 zPha~xPmW;0eN|2XNUH(dbbdVm=M)jqZ;t4mq}{H00E%6nkZ|pBC3$R}C!T)ly4UgN zw@iR-fQTrn7r{5A9;?&s3;5hCB`&!M3YG!ZIjNQtPIPeo7l7G+FzYd-!sx zta*DfH+t@}UDN~FuElVCNfZwd#Wu>@xj=Gs8xGDkkP`8vlm19e;ua;gZmSMRqXvUX z?n-!f#@;nm!x`EcQ}rz>u~q|8D?IrNn-pxR8qR1WD`ZR~7ZeC(nti1imM2%U76Ub$ z(K)J&{AMDe;1&hb+PJStmfG~^4e?67hrdDW8Q^>ocIE!~t55|Ow39z1sVhI|%6^pXh4?^AsXExW8P`qC> z(tam^r-b2wx!LOn{cZyU04Q5%YN3#~^=CbTgV8y_cQp|~_e_pWCDO|I^;)3fss^J? zWueL@>n>j)5Do`?t^0}Et!hO^A|l?cm?d?I<+#d9j>Xr`5;a?F0lDX|hEfdeZ%?N- z@Y<}gEGu|uTf5>fdpXd;mCx+uiHO2P!PYwC4)pw&lHtVs v=wYr3eSzVVoqppC1LC;seQxN6{^$A+zc<1cr4igC00000NkvXXu0mjf-LURk literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/d_pixeldata_0_09.png b/2024-12-12-22:00/poodle_trunk_serial/d_pixeldata_0_09.png new file mode 100644 index 0000000000000000000000000000000000000000..4c9f08fa40a8b2fbcea531f652876297f9144aa2 GIT binary patch literal 2715 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 V$FcV@pIHC^002ovPDHLkV1n%?O2GgC literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/d_pixeldata_0_09_thumb.png b/2024-12-12-22:00/poodle_trunk_serial/d_pixeldata_0_09_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..5b86218a598e032bee1b6aac9b82add0f07a0304 GIT binary patch literal 2068 zcmV+v2 z0L(?eNUh`vk!M#M!I|_W(Q$kt^B0R{#%Rz01vcP644~m2PB?TR0>{#CpE)vM_cDkv8E$f{uk#P%0D!{RyI$4n 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_serial/databases_ANALYZE.html b/2024-12-12-22:00/poodle_trunk_serial/databases_ANALYZE.html new file mode 100644 index 000000000..3b23bce75 --- /dev/null +++ b/2024-12-12-22:00/poodle_trunk_serial/databases_ANALYZE.html @@ -0,0 +1,84 @@ + +Results for databases/ANALYZE.py + +

    Results of VisIt Regression Test - databases/ANALYZE

    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 Ct*D9s literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_tecplot_15.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_tecplot_15.png new file mode 100644 index 0000000000000000000000000000000000000000..3f91131ed20dd2f7d8cbb2217d5e0e7a92f3552e GIT binary patch literal 1228 zcmeAS@N?(olHy`uVBq!ia0y~yVAKI&4kn<;H+e}V1_qYNo-U3d6?5L+Ihc1jL!#~C zd5wvuREtz~(vCJ&KRV}-rMlVaaEIqD6+gMf^OW-^L>H*qSJrQQv1#3FhPnJ-nGaN} zJ9TslBq_Db;80W>Wuk<`jfHg$t94G>oZb2QF>m?&w7$=^&yK%*{pW7@{s*bg?%40I znf>+hnTNMtR~-H>m)5uW+@3i*=562cH8t}3*1GnxBSKC-Eds)dM_f1z1&1;-2jri& zZr#&C_Dpk%1H;;X+aCYB#`tr|w_g>9?=GMDxMu#(!e3VP->>Rd%-n2$;8X53f8+M- z^^bY)SI@9KXZ5-0QPsUi*QTfbt9;}B|9Yz3`u}!k{(P_e_vi8Fo4fb_cUk^#mA6G7 zFo-s6PG&46(;Z#iHd>AEtHJKBXlr8%Xg>LgcF64AZ=+M)?=zpoxz{&ivMoh-*3?0QI zI*NO4))sAq8Ib$#T9<0e4AmC%9qAe{rF)*8n;HRffW=$IS|9`LfPzDdA8i0R;6uG! zL>o{KhvG8}uKF8a%%%370$Z2gr2w=5812Ucf2giH2o^gtMH6O#KzRblsg?K30vf>D zw>2BKowAFo_vYAGTO)Gd@!My2w}ahPW_)xN# zyI&5}6I*9=!1m48REVBwrLnKm8_LfPRO;I}|MrX>|M|@V)&ol^22WQ%mvv4FO#s(x B(=Px3 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_tecplot_15_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_tecplot_15_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..c232c71ac3ea56719b5c8d07db8a5135dcd48f0c GIT binary patch literal 1267 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_text3d03_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_text3d03_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..7ef79ac0f2c63c4b5a3e2858e8c9425357ef6edd GIT binary patch literal 4624 zcmbW5bzc*X*M@QA=o-S1-pJ7+-L=svDGVIa9nwfoQUPhCLl`g`rKDks14INAzjTP? z5J`D_-oo#XbI#|wKj(S__j3~?T^dR-B@q!34FaxZ_V1$pe<%R|_U$tOF%c2NSA>?j zMQHJUv0WzncG!5#q5Bi~L4cL#MHM^)lkIJjQCa6^&s|&L9!o?6zAt-2q&;Bh8@?DF z@6awtUv}5qjNB-dTgO>31?9OLU-2r^)*XK@U`zS8^AmUzri^FeOAQfMFDw0=ll;KV z0A8s!Z;kv~lt%20&*Rp(aG3M+|q52H);P-dn;xCMF(m*tmPM;&Q#NbGCp)yx0-#2;$p6Rd8Q4 zZKr;&g=p6R=BOd6FpsRB(I4I6I%e2Dj+K(Yy2R}24D5hzQva^Fd|%f*V?_c@c0}I> z@a>)bQzhGJyft%?%zE6UX1t^t-0n)z5Vf=fI7I?F(;APh^4?u&9f+)SJWYzYJM5GA zk?S|pN}UrBeX)Dmt+FCM=a1&@}G)td%lUGkE%%dlgoUh`2>>&0+-Zmq|rcvtf zhg@idl~*7AK}_GJzwT3MT}pkT%TwdL(p}NoAjT!3#+;AH`?mAg94(89I)vd+%1a_1 zMq-r}z$Yib8@{%7%9FT3eYNb(8n?b%E+FgbMd@>NSMhS2u z*yYW0WkGswh#GZA&6wiMS8TDaVwyllJ8Y3Yo3HIh)7bLgPcz2~yw-qNl|Prbya)jW z46NllkG>?Ow*;tW%T_*^XFLMyZ^NW0Irr(ug(PfmhGl(*v^7)iSyfkqA6Im8D5N(7 zkgHZE-q#=A-?ilAQs9#e<1>^1Kc0SPLs@OY=Q645JIw0g5|(*JBc2>$of?2@yC|IGY1e_cS2Z-yOyZ8w6lrL)P{n*x^i5 zk_!ipM_-VEw4EnD$9i{f`GQa=4vS5@#2H&T{4B9{c6oIm)yU$mmzBkzU$s?DqgNiR zsiy*Kz|lSznd>dq49n4$$1zIAS*lexGdt|=dwlopH_R7kz8Eq)87&QV+%MT_ZPn}2 zZ!j#(s)4W}G_sJ42HH68FL#lq2&Q_wwDfHcBqH-fF7*VS$~p+vfHtw9u$qw_UF)-c z1ooA!;E2EksJm}%p08+Q>otjf14J|^Men7Mlse=EJ@w!-Uf~=_9nkFL>3d41UL}=( z5fh9xK^n^(I$N8VC3DCatzW|KXW(Ls!GYXA7aIv_9<{49{vOp zUlX$0m-RLQde&Jhz&LKdmBCo=hrf-`6SOtl%I?YH_L;s>dvr9pX(iraEwxf^>(YAh z5-;d!%6Y13T95bEc&r(Dz-Ba!g;tQHV{H>@sThzY>32 zX~n3l6|%!3cHh~wRTz3XF(r^`PM?!J_AnHRqR5rQz@n2|DYWF1Ky=?rcu-LwXABG( z$1+lAG4+9oRDCWuY1$&7-Z?|Y+K~{z){@S;BKCXkQpAIEt&kWNd(Zxz*jF#FRXgS+ zw;~Eq@_C_`3vyf&?XpumgZ(@M}KrxwREv4jRaNwc+_u?;M>ffviLcT*(dmw^RWR)|5=2fY!Xn|BRjAAv zkcQu6NP|K)0Z+7RX z)c45^f0aEa$S#I*`U*<@-ER0L7SAut9K0wF@6~ulNpZx;Kp%^w=e%QtBo$vK#YfcA zBcU4HnvLR~M+~cKYtY1+xr78W|BCF|p&q%Y z0}|JSr;=H!QF%t0bhr824?=Orli6Oci4Z*--+kFo-=mYbMj;33*)9U_W;r>g6YuNzN@XIabn@!;vacfM;>13kEQj8rL1&PSN^D(i!M z&ms16c^6L6N-mgg-JR=b?1PumqzF55(d)QDoG|wwD)f*01M{<0wbt71Qx(;iT*rQR zi#~9<>+J>f?~SnU)AOE~O;s_%99hgQG41`@(lLepu)LV?*Rn>0VNr)Ze2nlz#haUw z0-q2aa{O6#Dd^JV7|ASY*G!e}Mxgr-5??p-GT!`p9V{L_DUD{@*+@oR{9 zatpzH{msfGR%Ihg<(D0&))}v2iGpA-$K~rOT9r+r5Tzc87Zb!4Ba|UBnv+j(^&@(p zR0xY>eFexVh<>Kxbl4kKVX~}ymlY0`G~MLnalCP^^gHAy?>kY!MXF($vUqGu+HT+t zq$i2pxRq}qnPVYdbnqfVDWa74e38vzd1DdZ-TTP|`7V%7M3m+isp(Wc{@ zu8T^#^S^dpVuVWb$V2I-=po1D?GjKNs%;`M|4k?KiPGfdm~8av%Fo*39E^I8&_Kse zN^u}7TuuhH`|Nihw|YF|PUxoj@hjt9<cBrRYCP&H|}m!cq|!EXD(K=xL8i1 z7;e?vummvFum-s}6Qb|95Tb!$kYrw|w2kTHsrOM=r_HZ#$MClw@g{O5GlSzyMaKUH za;-CIfcR20sS4AKR!C|zxIO4OE8KK4>u&#|W+HQz=EUpo*G?Wqj>LNxrUqA&X(X5? zJ;LX%Y-AT15KGDI*6yR@?ew@JNm6^?MKs=R`~_sIZ|pffdM2 z>eS9P@ZvB55%pX%>gF9eJC_fMO96LK z$MINB#~Oqr_8tSt;xC+^T~uxVsaBtR5LJ3p4m9c7KiLMxYKDk!2FcN*iTNI zVll%+{W_!QJj(l_3zTPfOW<}x6QrIQcuQGucLM0)49N951%b&`kBO1(U-{u2 zww5xU6|Vat>Th3S{9I%Y`FW1V9q_obtam;rbNg9~EN0uUpc>(7PQ=F#?;=S%2AV@$ z9$iP&L6_6eX*(9nVq9Pw8BMqQ@10&Q>3R~ArF0IWWQ1J(D6986J)nZ+g&K~U_2FabHR+t?n3u^O zp%*jQH_gy3r5`edvog&9GN`6eb93;OXv{C{Gm5+OrQH#`kBfk0h4UO!F+sdpR8r}P7T^*x`<;y-wT7vyEaP0hg(VLrQYkYMZ1m~XgU=s8d{$Fk zVVF^Q%$N{n6qpoiFM+Q8n%8p^6k;RUoDl?Zus;0J*X`K`*PmZ&6~fJ>N0t}0o5X_0 z8!7`lM)lF+f}SVxa&azaj z7YKX_3M{U8K0?*C#C|tPj0W|hE?lZg>~mT!@59&zNE(=(iF7y_nVwz5Z_gSQw2gf| zYo@1%;1MiCGrzufQpR=u&m?4l0uw-GMGbATn^z^oaA4A_1hoIM^V0q+|?K7({$Z?;MboWbEm1d2=t`e zKP;7py8PQm(HhGzedK#B1FgNwj~QubG$Z;vQLf?Grk}y;k+1)PhmD@TsaXy)Y5bjt zh+n^22ZFbrgl#T+^(R|w0Y%~{)|M36e7cW^SV*bMsMsJcNoLV!tnp`Vj+r8R9FkAUJ^x9H7wd(h7 z>?l1Mmc#~fhiRH@-4tADIu+WL??+fi6asxM2kYTs$-%$B*kGz*thDkAk7M%w&KLYi z^*o#^W!9A>cO-<157Wqg$_Uk-MW3)H7v?8gg|DGUZ)GUBbe!G|%lD2d^j5P5VDW=u zH;vL=|3ogJP{vMz_SD`Dwd{AfwowTw3KVU&Gh@!M!N;yQ$u+mM!_LkXbL71Zc^#q2 zqAjGuDmTg}`_k;A9p7}dQz{jE%n9#GfU>=T9;y9Mj;s!ZZ9erntuY`)Q`*~7-p|a& z(iggv zPqHzVfxe6N4S&9EKfNaZ5U;3DoYy(cVZdHsK)q4_1mYKz)C7L(O*t~ir012fx95EH z{m%BE>?ZRTcVW&B zWU#h;C#ik&n&8sI&M8}i%UF%z@Ia~eDcF#Uxf)m^=+&hAsyyQ-p;6eLlR2$7(mpirfy#8jZ5py~b_2!M|_cO(R4P*7|t(qh7D zo;l~acCi#1nOpB=C+<^nAx`&!pC}CLJx7v2Oc}76yJiN?oAoNEmg{6F}<^8Sj4fIV5Wyh@WJlnokT>~1!ko(0FH37(2jVR>zbetPOA}}nN zoQf^V71-p^hDt;v1mu>{&i5vT&`Rpn=S@1^olQy#u=F!%SuuygSDq(RDXV{WPmkd? zVMQSoLnm^*g-cFxKHBs_w@$Cc?+r=nsi{_8LflWg5H)cMes9bV`xi?w?aBWBu-|9c zAp8{MiGczwDX=Lvx){oi_}rbIM;K&adjR9BFMrUISM(a9Apvr@yM_{8o8#ej81);ubTD3>~;h{!>fD~Nm2emP80 z#`#dG^GwmN1E9NwyA2PEj_PRw&2Gl@Bx#8}yfMT?YouVI_i0$!@4FF5b$8<4`|LR{q?CMWxG6{?!6e#$X0Lx>`-92)}-i zdliKv%WeFMR-Q$5K}m*@$c!Box_BOW8N`+K3V&@+qDrg1;XWej-a6C*rev zXI5{OchHDLs|09rYd9}fSo)cavn!0e#k@-KAkMNy{f$iki%SF!7%9l z4lKHQwXw&}l#{c_u1zQtc5Noy77jy+KKN#w05L-Ii2>U-Dgt<4nKZDPfxO^Y$z+-} zQg6PqHLUgm`Qc9&vM7bhoIw}%XMx>s{>$(p`{&h)bd~CnQXv&)2X|b35S~{pUBl-ixf zAb2t)nHffD)$mIZF5R6Y`fnJ$$P~4oV(zBG4n?M6?6F!$->89gmLv$7eeK`Sdi(zc zjSRu1lQ9K?#@e-YY$`a6s1gnw*?{Ps1Z2kO6~A4zSjV04QL6@btc8F3E$M0MuySYY zE2(G5F+_Ifpi(}Q?`E+?yQ(O(XtFWDZV#~M^5Z`5Io1Wn67#zD`Nlu`mTY3N6L`a* zeT&b3_$vHlD@FqNIF9NR-L!ieh7Kg34#`6!%83@>O4=uskkl6@NlPl`O~2tlYz24v z{?eF8N3{Y2rCl$MQ#I7xR}!tma%vledFC6L2Wf8eG86!N0#T+%VzwUAFG=*>ew@h2 zs3NB03AnpY-M|o$`dR$_^X^pkzEr2)ZS}BfU8&|2 z`nrVJikEq6?;BKHUFE7@sZ!!IMK)tvpBg9D$v5a+7mxM{Lnnb_K&cHCPTt&GZaO_L z_6AIP!+%fSgkh~S-JPSbKsF#O&=e5mwGET0gP6A}}v+77d{ACPZo7vHyjw?ac^lv;5c#)G63U4DLdf028&Jh}K*(n<1C>q^}Ca1;4 zEv$4$$2z1EXc5rp>qW9J+j15 zbt11(FVH1Q2`sXSlAd;$1H>)8Up;&nsPd zXN|}dg24cD=ZKrFIKT1B{gD`7XI%xtMyzkj`LI8~8f5H2D=P$O0mKKP#0P<6$w{LV zxLjbVJtkt*943yz9Fp1kf6H&8>vX!Pte<}Vw;{ouw9-rPRL@R`y4VBsnr~<~0EuvRj;r zWmadvtPE}hSq9le&&MT zvCm#J+4d8qPRQj?x)lqliDduQ#u*>`a;(`7nZFxR=>0UAJIi@g>jGXZ&(nq%M~8by zG(1FcvR=xH0GPd^FjdLG%@KS>B+eZ8YsD4#+bhe`guQ{`ab@8{f?RHI4R3~A;zv>31?flMh+~UY+!%xQ(rfjF1T0D+O;a4om$FhEA zc^@ZR#jl_(IxQs-^Or&v=4Im4nM6rkJ&(M5x6at{%yE2fT5Au%t*fz`ZYd-(Tm?K){J~yE+W!d4R=d0IAIecuUe0s6v zFCA>be2Lfmcm)g$%oOARg!+7lat0LY|P2ED^9isKc(- zaYXVYC2q14k6 zgG}6kP8oHe6Q0W}s6lTc9n$%`(#uCMa8x*AQxvzN0w@9_niU`HS&SkQ{ z-Cs)_gh_p|aJ{40&oy(vc`Zu8C$S zwFRoo5oA3^McLN0<=KjfVaB-*W7j2u=&?6bVUZ1DiOs$B3@h zmjsHVUb30p$ZXx3(z0^S88_YgZ^!>4@NgCV#p4IbyEXI{P93_=*l`gOqp0>y?azWn zkR9zQgyq{g#E#5r6GgV?F|<=jFUfW#adeC?7pmWx%HEa;#ds^*^OgC8dg}LN65`={ zuboa@z*D&dBM#El1H&?CuTqYTRaQZy$6i+bU&RIti%od3AT=Xtxf{Ns%fv;TYG&dwr9rNvtP z-#S=sb76fpFS?C-S^t@%_rD{IzW3F?H+8%gfiP>_nt(<=wB-2p+X!+31iI?)N&fgG zHOjm@noo$wMml#Qd4Uk@;l8Be7{Z+bP2 zIXvMW`Co{N3$|}R-T6+dMb=u7xWms%<_D)+lA^opET2D98*CE7gsypPM%}uRx+ORR zmszi+N7|w1a-9M1|9IcWvBNx%*xyT+B!=XBh@WT%81=;(|LHEli|=e{emR?9WA=kK zX{qotcj4vs#F2+m_svj&cYU7Z^|isX9ptu8lKtHMl0E6CDlxm(~}|^IOXv$ ztAP!Cf7`D)75Cqv3SeE&*uHBp1I!G4_J`BmAU8V<&>B1*RxQUr_MRORDyf`D1@hs~ZKth@RIywq|Mx_>_;Y9!kP5B?k z|IZM33)+uvuVVlR2E6`6ora1F6uX~B`12@efTH{C>&7^+RC8_H5@V8Ik`y!!UeY8L zbBz-_8C_-Eri)3U#32t&vBV}cQ+Ne(1pwnftuL8Ff|q~xNIY-y*I^(@qyV+o;@7s2O(M%;_DpZ>?^d=f7y;4<_jzeTiW!&i1DM!@6srwjhelPBqCwrH1a z7c;b1)CUrai;P#lwy=>gt?RSz9wrP-Q43`w3H=UqdUwT^Sk{PwF&k9Fa(OBPtcQsX zxuKSyMW-!L#X*&i<~J1@>3`1-9XLu4iCz8PDO~5zdg6c(Zt)u~ zV+QTQm~KIR^+vzvb6#}5+LtDM37#9!Zn*;Yq05RN0IaRbcZb?OiKvPjX!$D^kbu+p zZM&H0rXdf03(@zGzWF5e|1+_^n0gTL&30t+$&grED_-)6WVDYYo!B2CQRc@0d`-LU zRHg~leEv)@oKBW*44ew~Ko#il>i({6*SWwLe}xr!X@>GFmirmD#A&RS?-wm>#KR?4 zB(o5H!#wiRWQ@}#Bu22~{ncwSh0ChfO!Ze1wHj>duwBnMryzmvl-zND(#sMcT5HXtP2@qQK2UT@3*^f;aCwo$Cz}pfz z`rF;~%=PqbNqSEAHWN-fC4oD!_n%q&1&YNT4-q8%SEu%e2a0rhd7No8Zo8mGM!MFwV;06W>Z;C+DmT4;6iRfyxR!6^xWwxwXN@oowY)Vo?M; z*PjSolOQD$;)Ff|?A?&14)d8(rBBg7LF81R;@lq|taxNTSq*aE>XSd&PvSWv(`@%1 zu$sUXNE)Y^JwRoIVndut)9X-&F(KkQF&f=+O7`5WrVkyg0?#Pmd|;-RSqg1xmXv2F zh9p&htHfah@+{VXssL~20;_YySjn3w6x0@N_59Fu4!-x(_Zga(tgf^Z{NOakWbjp1 zcrt9h&*2v6kH{B_h3*weX6$rteN5zOh!ff5gh#zA@Q(y49G{*bzmh6KtHCthcbNxFM*ww-}zb|&Ki%U;{iHFio| zcRlm#?7#KIgw*}HD(7MWmEo0vgyn_S)H>b$Y3FJ@)SNDGas`y#gee!m%+Qco)<4&T zwTu3<(pO|XJ)5`qcS7NEXPAT--#%sI2;_N1F8y?^)Q{p);lN5F%klL20tg!AE ze}O2#sc^pzw4r*UiNiw#wB*}m+MspgEa9aA+N@kGV}9tctG|Bv{Cc0 z%R{-%$0qoghqB`z!PMvFk(f-By0)toPJLLAK`}@pB3Ei| z>5G?ciHa#l>u`U6joo(ENaQ}iht!E~m)i;~ZSJcn8M^!7rVhC%il_IjQc{?O;MAML zONZMQ+sEUo@Rlo`O2IAP*63_|VqI8awGT|ph4lVO{PO7=l0&MQ)kzXi6+gv+z3jx3 zMv_VG#MnQ*``ODJ?WKQ0s((j_9Lns&-w{7qAoWcGZ}mrPn=+76vQp4!Pwpsg)ZGMD z7p_@2Z*!oLN8JRBv3S)BvCQE;KPf86#9#gtdu`)tFWr)B_zJ2m?Eq3B=DgOkk+*U>L)FECgkQR#mATx%9gQ^Ou8(1!P5So zw`|9n-(XR6&K-%F+LOCd8BX5u*{*4>1|_-Lt&Kotc@kwwqp;a@B4x{CGjM4>ft^s! z;Q1~7RcpD*i4T)*d23?OG6Y|mD|%iTod?}zN!wMgt3*DUCW-WC1<8qK152g~9$O_+ zHWpvk^cHltMCN|y9F=}|b~U*j-wcBS@5RKd|6%Er03!K%)G0uDHd1YrtILZ{B{R6e zhBo3RGU2p%n|eP!{rWlInaGigoq-C)e(!^;>J~JxDp66gL`>mPG{NFvkW*hIr$B`Z z!z%`w{~14t!fSu)t_}EpcYE)>8Y!01vjMYmig<>eX4s#|aU$?i_&s+t@_Dlu7VnldrRhSca^+$f@6s9bI> z^=w*T6P}4CYPK{om0K4#}9zK&R0f-Mv9W%eP`9~1nt>B4}!mH2{IHZ0kTCmdf z1Uh_jb=5-hvrgh&)i#+IAjs5w`F$ScGDsCBJIlAk@wl2Imk@$ch;>lXQJ z#rh)1=qbzJ7-PU|;XfwwJ`$Jlwh(}Qv2XZyW(q2noOML$*FPwn>e>hclc3AvGOP%C z`~)5=rPfk~_ec1v5WT-R%sgZZaz%HO&TyD=NYp_G5& zCA_hsZ7K;|?qQ;B=bRVyNcFJAxLhsEo5K}hF}XKRjEnQ}bn~q$tMO0N8fr<4VJLql zk>tNUE|V?m-bxhrgCI`b*yQ1kzPx4lH;AYwxII_= zAh7l%*XAtl00f)M*rE3vv+fJnW^w&ov#mT~?q(=Dxm>i%1-$NAtm$Zqqt0_Vb+Vt6 zOtA;eovJXN#Gf;4It+7ZvTz9Jb!_|W4Dj-z3$~AQJ3m^Jg8**}Y9v%&f1zuV*Yr5C zA?{#7px7xXj zE6PRl#lq$+MDTJiM3&`eb$(lHsbsDDMB>X5M;0V8;H;l!^D$Jh3%X4(glK-yy?&D0yOTWG4`kmH{IHn7T-$ixJG>vao216mS|0U>gZo ztZ?IdzoNGDE{s_;n!vIcZtS)fnig8f_I_DD)8Q?V!X#h`$t6)-C`upJeZeG=WN(_M zmOub|>)I!?_I2SW8$I=)?;N`%jD{9aO7C5i1$D%&ZKf6_CZry#2l#Kgub&2AfE_o> zMTOx5L0qpW3W9Sy8L{nkIT=yek>zJR#}wUujT`tzoYxQG4C8q(cE2n@%xUe*ICqXr zf%81g^P@7U z@_LR*DD$o)?TV(kL^k=-*5_B61DZFQd&*Q-fG&)5bSO{D$01T1ieGd1eU24MVA7Pn zw3gd$xu7pDeWapBU~OzRm6pnF)KVYiaD(gL4q&dipL4f*2MHIg!F^2Y2X_ zTDNgJQL04MfG4c3)i~6bb^KS?kT$MaXC+HQHq=8G2TeMrd=m$UBToM>9q?#{gE;Xg zU&(?LzbX7h)uz z*)Z)ak%Eg@-rFq~#WHZ4-1*se7<0n0R{3v8O4_B7mc66slclSFV3V3}J(33=FL16B zHiY@D85&`XR`RB_I*SpeV(p5I*H(kY{)E;M_`fvQI>FjB*7e*XF52wHrFM^f-x=5X zt6*cKV_Zi9G!wS5W!?E8bQFu{EA^9aQm`)IJ@l|*CaY^3XVR=XHj{?&%QW848&FTU z$2iKhR4OT~!|XuC)>zgvF=n6M$r%SDS$M)u?^y-!{H^6YwAs2BflV9*)}Ok1PaRc@ z9i?v-hF+)NZdq>yH=Z0Ad=v(blMjfef36<66~$e~&iq5&owX2nr#A)XhC< zX~$Lm(1AN(bGl(W_f=AMA^0`pppK52HPXRF%6XY46t`bWd!f{f@LjB5mRRQbai`h? zzep-s5y4h-+dKUH7U*|BensneI0U+R#crg3pl22)&OqRvCpwJ$3ANp?&&y5}uOL@6 zaDfpp!BA&KJJlZfGrj2)2@#e6N6FgzwypgYNV3|!__S>3OSSs zT)iu^UhlewWWVoBXfzvY2$i_7G7%6$O+8xOOrz^{z{!0NMgL196smtDKk?hr-l+sC zQ!2q;Z)brV;YY#z&4~wPK{T{12ST#+%tDiJ>>Q#Kw0TB*f(_L?hvoRCSNopZ;Rjvo znde{Kj6_W7`!&y}ZiD8?jnb}y$l;Bg6Q@=o6+E3?W&`}}i=?5N-IaL8avdz1-EP;s zE>WoQE(aeJ#Loj5E8GbE=_vw64H}YsIP)-vT}X?@?WYRld`E$g|dt0S|V0gv%F3ZBEG91oN>+o&hIki)gi{%tBX1;b$$s7r z+ybEdZ}{R3q`%GH;VRVl>qH4zJ^x8oSZ+!F+D)5`?M7IJRrH+zNRR71*zc60lHhz7 zHx%oTq0@XEBEtUYW!IqCLnP>{b#u+0z<|UVb*B=Ug34oob&i6xf4)6=uM!jJF7jIe zc_xdPCdVttRXM{86PC=HABdQ-nd(jpLCmBkl$K!4m)XZV-@2G8ISUqo-N?*A2VcwnAG5!{5COGYGTY7mVo5)v&nRZ6p4TF)-p zabT|&b-b|TrfCqX+w+9fchU%KlsFBYHkU#-^$iTEa=xzrIe&ITV!Ua{Apdf_*pqdZ>01L0thoZ-XBb@8lBtNESPgnw#xXC1)XYx2cHne1fLhW}e*ap{oA?n5dRDIO^K zxT^YGyntvzZ^oD~nFF5_;d6BHBG)rwMbqCFs`e-~^yH{xj&VLU=I7p{T87Mebmpuios9ugabj;pC<^m zkNnYHqFVZmgS= zeG?a!=D`sIiOwp-sQK~ryNGyhMg9lWhcrKM;7a?7N1oIf$v$E%w;ZNsQ_lla+y<}? z33RdUVc@A0GUn*Yo$vRAwX9<}W7yf9$F|LleT0c@rhfyG!m5&2Ud4-$$%a!;^?EI| z`I{*jWMgZug}tYt2HP^{pS;VRn4>BLot?eB-cWN7Pq@&;O<}$zpchTNw`h14%Iw*a zkV=fVO4$Clvv8_Fw)#pG;lVs(eENZ^|0eu?`^+mwH$*(7BP^mQZ(o17YNOBWMK4bR z=Ic4FpL~skyrQe>=6e5PsfBKon#}B|)K>Ti&@6{ZbLWtGeuFG?u$N|;^c$>5!5E6Fh2q$bh;e6k?_d$(z=wK3 zjC{As*bc8B(>%|A9&n;)Q5Zn^PV*LP4SijSIXY=-1CMXfB--egrb#O#D74v;VWstZY&wwq`hcwdobGEAOeY75-h%kHj!? zY#vY25pc(?s^s`eWL~Ml)hS-OD#Kr$q9t}LW0u#Qlr%3Jz`@GnH(}$$es27NB-9E| zIqZUYQ5Q8sC7wIDsVH^O3QyrRXk3R7AiueE!_PS>aElQCnU(6obYfZRxpI9lLq#te z)ZqO2{w^$%6mncGUPwwqT>wrAZeN|o`BZ1l-+hRSl$6@lUjK^G>kJ1&Zg_uht1{X7IC0FrL?>yuf|+|vk9(ZfJ8EgxtGvO2VlSghw@OSyaErZW^t4Ij zbVql0$ko;T$c>A9Mqk?&@y~}#aL70QpUXI&rW74HA!5Z8A6&_JxeDcrYPD?fb&>G# zW*&8~aBDu&A~Ph~KRq3#p5ohCMAjNG5DKzbv0`| zACFjW35}dy^iTd9gkJQt?kVcI>71(Y#?P9Ad2aal^j#&m`^`%kFJwO=7d^mpq}cm+ zqce!?P^nDE+xa11Ff7g_4iW|mVwrIqUhkNzvx!<#CQ?-jeti@kPYP7Rhu`;G}K z@cIkR&cyEK0*S2Gd!~7zDB9&^2)ib^gK1Eqax-yiPA53{QUt-4FgaCA9Z;7A+68dG zDCYOqp~@}(xc&J7=Tpg#-|{Mt{=GNU;7#ZIdn|P8K9YD{yz;n|;Qjn=#1EX=;uXRI zGWP1J&-89tgM)wlr+*O;sRg1!O0qg1%hH;JDVb_;!a!M~qnj$9-l`8BgS}BD*&-xs zo8mb;24c7=NMYY@zRm@KZC#P@Bj!CKnuHSJk1F72MakRWeJi#D0*$TaAl3gm;>6jV zt2@dpUyfHk%f+}pE$OERI&Q&opdS8PAO}^UfEg0{wjN>Q?UxH~5EhrNnmhoOh&QV~ z071`DKEoYdr`?OGaLHm`QjrHfI3zB$V`aQ78luQq>Uo0V$>1#SB}Vk}L33}2{3Bs? zsl)47hb@z2!6~t>9iVO(M7BNcwtl~(6uB~Fr(5}D)}tL+YUfBG-yaENH`EbNbBv-* zX@_N$`gc55%tS%u%ZSBkP`t#Njl(rFD)}d8C8YW~uO*<2e85wUtLQN7-E^gBq@PQ< zfzT6)U{vu?tv{?_fQi)S&+3quSn)cMQ~!&vVqZL9;tEV&_u-1|#*`AJtH1tHVWEWI zTc6q}q?{>lk~m4XpcN`goI5qxno<9d2@*v(`!1@J=XZwn`^t~ljb<;jSF%nowBh}a zymjHfMknivm|zY-hc_bP6uErhD(F5ru($V4`nP+5#+)V#1tjO~jA$0b64WsOB0SIT zTXA88Q&F}g=*1OZo*~yRVoFP^6Ik2YI5gbGlVZRohu$-kooC~)FtNAFczYrGNbll_ zE>~vv(Ol6M{j#Wmx}G0Mty6rvtZ@Hg$s*CO*_wyMuZZ25RfoVW{Y;Z$g-he}YzdWD zpMU=90ZUIU#qGC5B(1}ITT1ygvpdfifuDYC=WKioilnJvnu-nXa@<4ydr{(qDN=M! ze)bGJL%NV#reX(|d|Va}QGm=s@KJ(`B{#N_$n-H|C%8Q-1+krpIkfP}g^TxBrnr4Y zff|DEUmXySQ3q`z>ij#rS3!#UtiHh79xfyAf+B_xqDh+oSBXhTR2n50SX z;c*8*l=B+_n(F1JE8m+i=Whwz@-NgQ75z3|ew5j}i)?8#LgC!Wk^d{{5mtj>^{x~w zX*uY`5`rOowXZ321}D9Wcp2S(QDC{MkiOPDzc*>oCB+VYqL@MIEWETND*UkS=6oUb zOd|QPw?bqLH|>X6dC8~!0wmjM2i%iw)ulG>4RSm0QhDkRa)pq)BWOEfKKT}ViIkuZ z_6|!lLwy)baT&A4PO6S$4Gq3r#f}~Uf(I1SyB;Ybk<{(7!rbh3RgAVM<<_E$rfvQf zSPyB>+319G;HEZJfjBZkJGdn8p}q@~d;z6+XNVgYa-DeS

    (&nsJr~JKj|R3VHF%pFZPw?OIzy3JsZGiQOvTMCY#t=4I$fw{MK_*N)~8<9 zM?^ziiyDZ0=DT0_*|qw;MBs&m-=JI!D857>#K6&?ZO!-UyKm7)AcES4jd#q=e8GDY zMURY)?LK)lPQ5eQB&PKoO=V1m;1#h)M7~l~4i8N20>YHFg0kKKEQ&qFOrcM(sw+K7 zh!jCJ#&#|BFt_mB=y-i*=IE7I{Um!Q;#rtRl?cnU2)Xp+WIdLeR#h#P2$6wN(2Cmd z)%l~q-XuwsLZ_c@KmIg_xrUBC`~ImJwPZ(k@6LP@lKWZaqgXp|lCB?A`l98Uv7skU zF0O=UjLz92l*%)KM9?}^BduQQt2N=u%X0lw_~$z8>AX2`l^Q&)ly4}_&a(XatZQ^u zTc`bgdXW%V%7umEO9#Rr&qJCRWW^#4A`&dpp({5m9h?gt2g1&KO%!Drv~HSemRb_K zJdA}scRXdiViGWAAPrk*0K^RML;r;05Bwqi{m+RY5IlGWvl5Yf$VdRB^M)cK(bXms z9Xk0C3KAlVs2F zC%jUQSp!Z)iEx(I>XoIVla0%Eh;mLCfOTx3GV-ZC-^4wDd@3=Juh$hjlb{q7Mq71= z%=MF@l_-t^s94x459&&({UDA3x+jC{ zCwDdDxOUfFKlK8q;=;*bwaqIrMe#iH@sEG}YBcJ5g__UtaXz7bI+lGvzNBhoM$NkjT-t3nW@KB?ZKMJdDc+gi)Yd5?A5~QBve$Bf+DcwLlf61 zJ;G?cHrGprat@rL@hX3w_q-F~#C+$DTTYi@S`h=7GrMhaIw+QJR;Pp9`nRpxGCsa# z|Ng)GyoYpg<$UUFUIq}N=tVqJiO`BNEW>VvGF&_~%iu7cj#(2aW~Fs!cxZTTo>fH0 zZTq1)*EFtSe8q_JYAgkFKDA407^6j4v+@EjlEW`YAiO9i%I3iVVqIC7IkNc*U9aza z?6Lpy>eswaq^wI85@fbBzwnGP{bsYV(Ei%Ssn^vjD$=NEM23ul(hxz_FZY3OfBW0N za`h%pV1gsIBG!8jsS>BS*JGlnE>^Y35E-Q)EaIH7&>3mf&Qb(9frtQLZ~;MWa>Fm* zAfxpvoQKGgb&!1WVB#!9=6m*z8(#;|?v?%0x~~bM3lN?*j9KFFv~d?Y3qy3(ni(J8 z^wJ~no_p>IPl7obQvBy8FAoTDmc17;5X1w3U_i16R~sA0=+@~|U)EX~^IWa&ceeXO z$9(0A%3P`wXS&AKjf*3dBrBTG7?Qv^$ixEA#DHVvJb6|uaDq%I6{MuHxaM2K%g6hp zQhDNuzkbbYesX$xDla<8$1sUfCW;bc(t6$2>#k;0J(6lfv7tyK(s|QhY^V>UX?tD4-g)vyWy}#=97hQo=d|sTX7SBo=Ol_qh#2rpL}Jb-M#FxOOG-|?E)u1?kshEmpEGXSf7Laf8y^KVo|>G_!yOTK-4eDlkq{Q~?-SFkin z&sknJ5C%C@Tkxt}#b7K>7yfZ2*vvWyFaR_8ZYlYXFJw^%kbbE~^|q{KVy#|J2OPbWy{Funw&6 z&o6$vQb}vIq}fdC^*Fih^J9;`trnxADUM(?h5F|(e|~9cX+tw%QmLcVt4vYmMFM%S zcm~0yAT6j_R&YX*65>F9;h2m%AMan_ER=%QIhw-Vq{LC#0T_NDGnnT){*D_5&CWGp zOdLM^)xqzWn0T_FRMP9T+!~~n<|wV(s0Kc}Msiw=jT!&&?_~xd&Bh1Oh{DJnwvL>OrLs~LPZNlL|$Ds{>+j2%?-coxtjH=vF`Q4 zICb(KQKW%LLaVtW4`CK&WtkkSjFlB}&{niJ#;aJz@iWhSediT-iR68;MNk4DQaUmw zt<}w}BVT!UHKN#r04W)bD3W7<_dYh_MOcHu!4ftkOkof-vp8{? z?e~lqH?$#5C9di+Q;>PY=WLah`9|ju4P5lRRy${5D=S4Gdg9qvU2#pbvSnZw8lc06 zzxX^~vTxtj0hW9B?)@MC^P#(c_GiO)6h@}3dtTBy1)*Z&X%qAqAK$)z{|nE)zTk4f zRo@zU`9X*?^gyi&la~5W^1HMW0tx#}>t>b_kVTPK3dSV0%QsC{VT2 zhI7g})M`c~CIZ036 zk*!;^dOd42Y_l2uT&v~lF~tV4q2Ly3jYtE4_g)hKj+FvPLW5x##ZKZyw6OP9`wXaB zCT7YqA<+V*&TEy4DOzv*&tX5o-B~S$Kk&{OiJfJ|?&;HPX=Wf6LwYR@|>*C_V z;3&W6hu?bn(69U?kOBDE$39u8M-0FZtD(5&{<|tJIzGN_|Nfsmr=Naaa`9B(8hJ&4 z5NGWodZmVUjZM$Yc!Clc+jdKZXlnkrwTW{{6r})+SsJ;5l_p2EQxEB-C7q@u0wQ6q zcwZ%At(iP|7AEqntS9SL29v<2qB9+_X-qwNWO#o2o<{rW&Rlr}D7bEnskPf-6jau1 z+E&Xoo37dPl?vfK|F!a&_r?*lf>ERuf;;D&t7!4iY{ihTXw3#}#giCfPs&4_h@`2h zJDQ)84V#4n$D$$<0lbKQF;UWQ^p>mh@$RAB5DNe-2%q;JDlm1(iuQZz=^LmzrSkgbLyit@De1#49LgyZAe_wWCS^ZDv?mW!?W*2pUbghAGr zrYj}gWq3wJ#qsdY4U30oO=I*m^}4?DO@H;&U(GH~d9S>W`~A$AEQ-9=97WH(>3^x8 zJh=ktEUQ`D5D}%AEHQ=2K_<({v3A<@p;FRPX*~J2Pru>qKm3)azY=Hh?pFKY@~jkP ztN;KarL<;aL~Ds6U#=s^$ z4K4hPY;n2T9_}$AZ_FSsN)fX_(;4ni1M+k;-lcZ|vb(maP&fu+3q!ih^^}x1{Lq2P z+poWEKurOl^Mv1^eCR{(|Jc9z#NBt5j$CP!mVnQ#(>QMbZ~xl|F4XtFD0#_L-x_&k zfe>eE&tDxT9oo8eZ+Do8oH!x5^Qt@l^1xp%EYFKr5$#;$eP)dB_oJmH5J_32MN|Rm zfsBk&BO2B!W@1sSqm*H*jmfVbzT>((x4rttKKe>24{uVlt2Ht;GhNIp1Rx-#HHSZ? zL~AyND;17oAtL|Y|5W?apDs0FNb)hW2?f$3^~gpPNy4I_LxDG2#3t#7uqE}U7inZK zD^|Uc*pDNcU0PbMG>5xs+^)@sv-0#MO4a;y;A`tAtKud1niFH!ltke^m6!0r3 z&zK*2?M61%wi)L$NW$8A63;e|y( zfe;3mnAGfS4NuQZ6;WD1sgiO(@Ja=$MPs;D<7$I8z$8soXOi;P>@9KjG|93OcP&P>dG1Z{!!%-SB67~Sc&AC%K4NZL>}e+<+b|N z;niU)57D95IwQky4>f6bZn4E0r#Ra8SR`*4UeLW$Xy|THaqC%Ayj!U5%?FB?#KiUo zABbq(esJf5;U!t?o^(YS^E8eV=ClruLY>Lucy?oPPQ-tQX%l2=4vQ`Jm9m?HD>;nrLQvlDl$P|4Qs9A8-hNb%Fc z>NYkN?^brD$e_dUT>T@NZwI4UrOp=hEDQeTx2sN zr068tG32y*Z=#H7Jx@uI2kG$*~prmvlaIN-IQ`7-`CDkE2#+|<{hUrpz30g>B z)2G_4Vnzehx3IIFHeD{Z5li>mq+-jL!(&#$$8n!YGYwS?6jf7?%*P^I&3Zld>6G1c zP2-V(qI$M0t17=LgNV~R%B-Mc-Dv5S6ANM*9&JAS%p{xxp&TDGN z3hgT%N=(&zEF_$5_69(*RxvhJPRR?C_cK2OoPsHpcWvGex`%P6%&~xC6>hRfck4vz z`l$D9p_+vQ-T_k{ui|~kyYmGPo5Y&r69=V>v2X~fnsKf(rEdL&$%5b<>z|BKde#X>+F-%qxZH4ber3J zxX!gaa0(O@TJVi6I!m2iK#d(v-r zc{IwtN6R-~WBmJgPgLhuxcM_7DH-g%_`rvpX?FD>UecV71P{-(4&et0;@Vi36Oje^ z2@^gnFFH=yx4eJzVWB{aHIw;$-fx*UbVd{7@mRQh@{PG0e3BVTQRu2D`Q#r1DJOQ0P+{xla^1R$4LTDR2m8HvZ zK7G84x1Zj>!dy;_*+>-UeWHQCUfJ_)JwbDw@sU6sw{d_f8Oryj)O@woOTD?S)vzvb z3QY$Xx0ZK2YV#J;06ORPNH2?!=t!rhD7O!f#)*ji1YV~v(2CPb*FG33=jvQ6OPnIE zPi@c7kA}wOLC3FGrlcmc`nI4aE?NFAnfy^@#uBy}-8j z5WkV^ePaPSkqt(ftMmK&O?dzwsu~%+GvS?WH(c#dVLX1*>DL>ZrX*{<)S7)|TOrfZ zzT|saVuRl#bHVF!&*Hu&?tA8{#90*AHSMpw^P&)MJQX#SaaVVEaFRNXMlg!QF-3@n z*K7tQ)YUD|?9VCi+4^Ut54Y`zIIEid zkn#(R30^p($$IC*rAv|Zfj9w()($B<_u-LJy9RoT0ZX7vmDC&t1OEP*W396m~~2s&Gj4KdjkpKG{E&1 zv|?IjBvrOITu@{vhuG^S3pj>EsD^TPKZ|J>%(;N4(+Nxp7bH5!3+@GnYdIF8ni3V# zhUCppJ1tk&{?fX~>BNcy@)qC# zNy%s(Y?OYFEL?u?HFiJBfp@u{pdYM45T#gnzP`?vRZ3Z@$d5VZJ<<^US2T0|Dufcq zAw4h?6^wHY2f;Tgv3k2`{m@B#ub4cTTUJKI>hrML566#eN_G06^Yv?AFpmi^zL=pn z0X@ga%u`cf5%=rgC!Cw+K9ePNsMxzvWr)@TK7*us)6PO(4)#3pB3pIQSgnD|>uM`zI1?KN4)x1%2Z6KDnE9e)z89DXDa~$uyVlWCj zpCnbq;-2DU!5X32^xV5!0!RsBwD#L0k0|5(#$50i+g}j-V{_Jw`y-I6dou~<&NphU z%!d5k=7a2(&lB)d^_4ZTB?6MSi@jSQKqUVe-;YPYS`8@sFZxPCTk_d{a12jNB5=E< zY;t;}fdhG<3M3?xMqo0?=p%>oD{7v<6Q!k(8AzFyqKK}QOTK9B1LG%x{-l?o={4y! zJg0LcRw>?`9pY6pTsNB76RaGwTH2!%CcW3Rwo;m@wQfFIAhX#)?sK*< z1uuE@upS2u>)oqNgeHuh^)NJ!L^2bQOUwCjy=hJpyiPYKn{v^Aq*$Gxg=KHUBj7)) zj5%sD7nHAL*n^+5_E9=qPH5`Ta|uT!|ASa5SdfJ+k$5q&n{BVdq8M%O21Fak`{W+3 zL3nqI1E45VBtgCkVP8fb;vU^Qp9 zp2wQI(^s&1#(6pZllLY+p>j77~ zsHHzU!TIv(Te=m1GDqeIOj$tw#&Z<*&ZJ|k{(o68vvM-NCuHAFC}WY<4*Mg<%+Q*( zuf+e}*%!W6V-decwU9{Oe-q)Qg7~zt%BXcFoS&qHh;)aIOxN02W5q)HqmwxAJ5t8?N17YbYVwVZ)UbW3xH1a~%cca9{!e*GGh7;(}7e|(Tt zTAJ@+hvFwk&-=qGm_ueu540lbs@X2#zs+Pf`aG??NqdoWmuE66oKdy4?fW+uJBqRD zkUz+r2)!NJoAFH+YWpK-dP{$tufOktr&Y$Pibn3sjlP21aK`dg1u<}F(F%g$s23av z*d?yM(&b!fvL+uLz$z%J|C0mk3x|Mx55OIJJ}6Z1rLr>>QH5j*@NQ}-R<^QkMj;oV zlRK!ZKIvC5dthu7CtYn6JO|m558OCGxFK0Qv zKA7^oV)kg>QxoAw&EBLH(cwNmA&OTtpZ}UXYuvK?_hSnbLplr5Cc>1098n)K6*{Z` zTs!2mNHoU44oJw|2vpx?Q4|3kBAvi!l34;+pBzq>HGGT0SKh+{d3fMY&K_g)d$g$H zWU2SD@BUlswXUU3wz~>%o+T)8IWXkX0&&>N3R^_c@_*Hl3(neSyPttSJ?d)QogQY8iieW{wU=xB`1(8K-Wh+o>=tzkut<5;Yjof( z`v-4yXukEej=OdoyxkD{@cRJ!8N>H`v?1-YTaA@Jsh+)LE$;1%**iOx4;9%;Zf|&E zvjS{|g^c-)s_atg8B;%m>t?|^(b#YyIOnqmuO=&ZWlvU}723NyEO{E2d0N?2M5#xz zm*t6+DQB{~1Apn_g3|HE^fFkEqcR8oE0NRVaY2Hy)EU7;*HPy^p~FoY~L7J%^pa=Rx=HaiOR%R-ErZhx0bS ztyS^UV(=wp`MvnGJ4EW#j!mz3=yDQU|p1lRmStfxyrjeJM8pSE- zHK>;^oB1fjKVE6|#MN1`qIPG?Ne{wyjc2#9Ax{Zg3-D z=xx};$gl&a^6kKl)CH{q**%lYX1c$|Q5=vB7DDY5u)8{Tx`Ntj459AULv{B$VHhTY zxmcrrbkFHf#>QvCn#rnVK`Uf*b!DW!?RbBaSpJ^;`p?VJwH^GLprz%K7tb^7q zq)Q%Y$=OCOXVKKr5(c#jdB%nwr_YE37;H*l6Jc?{eWYt~8oymDxI6lRFC|twEkktv z*L$;*`9A&`a+3HYGi_op4DNTxWna=2wW^8+#Sn2ZBpgzGR`r4HhjZ3Wb0G1qus62B zCRv3}YaQMh`wjZp{keS03OIA6JRm?-D@bZlA*-Y~b#RbCR%di-Lx_uui$`Q+u!jdI zZROf*ku8lQopd$y(H*rgQs=3mD=@=L=L>$RUbl^jO8WU-MD5c3XIV%Av`JRb_s8wy zniT_ri(71_F`a+vW_BzI+o?RkU9HkC({^yB*$9s%+FfDJ2>;t7?;rd6`a-Bxi86*a zZ!0?UP{@Kdd{eM38(xd=h1myBrKcqClcq7SExvzefTdo8b$fr4&gIAS(NY>?AESr< z_%1)ciOEQckEd*JpP`YNw;GNz)*8ik5M{^WTt@N9moHwqLS2Kz?6)Hif}B{@(pv3P z((v3cwGkov4ZqMm)pdEzMQ+1u@vXe>WOL1`-e2*iJ3>eD>wy zRbV^-&tbz6jqJ9i4j_aPBV2fP_u$~|ZYIM^9ChLe7~W#G-{rp0UxtC7f(|4Br37_% z?6xASdo(un2>eUXNJ8^~#2hm7R#T64xoGUr-N`fN@=4bcAllJ6+A}55dqjd$++rvU zfYg{SAj*-rBK2}bt^po$>{-B)OvCekLZp9C`RdP+CBp>i=f@m#K(|ZU&(_^!Wv!_9 zWI7MlW-U=(39FmzEN8q4>6UO+2DckU1El7=zI`?E@%oH42U^)UBcMXJcM#9)hn43k z*_c)aN3RSV!L%!!kOWwYP=#Uxd)r7aM<4WGw}y#ONoWw1!`|72zMzh5FtpN7B@;r- z;CkBH+QElG{$6UF2{}?SUkq-sr*FG99uOi{v>|x%vD{&0C$-qEln{niJ|JK@`RuvC5228UJ=AnvZMkY{h=x>S@fLz@bhrY zL4cnZX%%9!-|V?0#64(=-!Bh;R|?*agV1NWKB9#3v^ul6CdxPK|X706dk5jkNg@;c!WN`ObbtLVuJIm3l@j?!Z`i9#yj$hu0vcR-7tuWoh#JHDShxw$bD5sqx5Yqy`~B=YBUQ8!<<*Gr%iX3_u^iE;1L zkl93|Y`~%rw|ci+M6OZu3|EkeS~s~7ctx&3R=w)~_oOpH+A>jiajA4)7ND3ISr`KO H{ht0mbA3~< literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_07_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_07_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..6094345a193407aaaad18e9035c1867237b0378c GIT binary patch literal 16982 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_08.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_08.png new file mode 100644 index 0000000000000000000000000000000000000000..ad8867dde434e4217e268bd1e882430d473c264e GIT binary patch literal 52590 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_09.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_pixeldata_0_09.png new file mode 100644 index 0000000000000000000000000000000000000000..7c33853f06170e9cc296d44d6e29a9d71201d9e0 GIT binary patch literal 86192 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 GLjMOgZZu2) literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_csg_02_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_csg_02_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..1467fc4d010ed3555cdf8d4c14080c1047c12646 GIT binary patch literal 3696 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 B2+IHf literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve2Expr.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve2Expr.png new file mode 100644 index 0000000000000000000000000000000000000000..8f6db9358197a4a4ec5f3e273ee88965a210e41e GIT binary patch literal 2363 zcmc(hdpK0<9>>M8TO`dCnNao&l1p}R8gfadVceobLvB-w+>`rdPh=It9G4u|aXB4i z3%TWT2sN`^$|Xq}hR2>g!nns|FvgrUcKv_;JJ0i7@3YqL{k?0w&+qwue(xe(vBe#f zl$R6{5jkjSfwdPA*{3DE08uEip>zx-A|fGbi8XbIELfWK3n@V(;;zmu3Iu%|8d}@@ zVhahM6Y?xGxNw9L#&^OH5amAdary$RKy=6ujydx`sMh2|r%0DVr{LQlZt6trZ+w%o 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 FV1oHE%9j8D literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_anim2.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_anim2.png new file mode 100644 index 0000000000000000000000000000000000000000..3292369604ee175e8018e169428c809581b1e8f8 GIT binary patch literal 3254 zcmcInc|4SB8%Bp-8k)&Awlt%}v1F1A5zP!Er-+2i2@}a)WE*ScZD#BoPLwSgZH_I? z5E3)ilriZbOLD{@*~Zuk-{|}E`~AM}ukVldpXYwB=e@4`xu5&G--L5Ecu5IG2_YdN z$_|0A?b zt7y_fkw>mxZbkoirflW&@{jdj11bVyHfDIiAIX86tc8O$l)$ZlVh&e&|Hz|o_C>`G z#jTXMM@zi^=A5{#V4c8CAGYqDi^vdomgfU z`n>G8I{SD6n;a)wQcvq}kW=QsZce}Dv)9wV8 z%#7>!==VDIhF&pzmTA^M_Tq;nNZ$P2xZHQPhBwg7a>y^RVK>xu++|NJ0no+>u3;bClV> z{JkuB>N(8|qF(cOq{q6?2e%*r9nD{?|z4wcd%hVcT;lNY8z5^rN+gYx#4`uC814M)n&ruwvBQo7YLe z9g<>v>xk4@DVC)l#~hpjNf9bA>tG|XB!bF)WpWC%2tF$66%ru|D?U>A^?jHU(;T$- zg2%V=rMSxEpEpMMd`fdNG2%9Wq87d*_DT{DFc;O8<6B#$t}2mn=nroN_*x4P{%)o2 z1>fZubj&KbnJ}p!01GoHL_ZuF@VGuBdWKr|NKkkQ z?;VL`9*4&xqj#i8KBSC2*-3^vJlP-=J0Dm~H_^QhFjt+E5~~}LhcNK* z`8f$>^h6)rq;6uZ&Z5)X2-03I*t}7`R5flrn%~)}z!*(bj|)ByNmwXzkYp_j`cCQC z_q_Vo4bmsxu0zLe1kK0wPLpB_Vz&;-3=s#sER3Ud6sZfZmg3Fs`|}%7j?%&Pg~O(> zIoKFB)TXtw?pU7g*_y-uJa%PWMLy}h~LSX zb)+tchXwkU%&U1;83%=a@u%<6;EwKp@X53afdm8O=kOA*-YIAYO{af!?cybmX+_@vW9v*LeZ~wnb2fg^?sciAiiPlug8MO2yW&vY( z9#Qh-DOU+H*M~fN<@=LjX!#hoOo)s%9YLeq3RiB&{8pQ_iw-tzdbzP_;`%&ofZcj zvQI{}K+k_zi|0d$5~n*Qbzl46UZ#Im^$Z~W5%Zx|PSUc_7X5|$EKDg4f7u$*_9Ib# zGw%6xcZ0!tG?Ng=+P!sGdnML%Y=B!X9Xu9V9MpUG;%F6&BA5HO}ejP37(Nao(Y;`5wpLCLO#>WR_I1abrx zx~H#L+Wxs<5gi(7W%;)NEwEC!h@V~D8@NgA?w;kYrIn@o@j;dKa}aVu9`)pQ<^sDgzRSgrd7y+@auzH-DPS=oVmYx0pWA5F$~=lKOn@=zk0YQhK)utE5GgEp?)2GPyUIlc?0?`p z$UXZFJg##{gefzOxe*dPI@spE9ZyeJdDY}w)Ba70y<;hJHb47Fa@sALK9 zj{>trq7Gopb7}-Q-!Io7$4BHMlb|zeT9tf8I>5l2z_LexktKcc zkI*+-59hgS#zsRkA@4FPIgB1#5b7wQU9A;oANPAc$;sNy&E7jj=kyHJ9Gxn1}0tXJxEj)0ZE(Oz7a)nHZ2_5n%MqX})35QE`-_C<6=DritV( zK@m#KB8>%t#5E_{ta#AH#?d?xf*R&`me4F2SlqL#QlAHVj+jjnjyM$=e&U!aB9bVS ziU9{$LdsNNF+~`i_f3!t1}^qU!$-NnRA@kYp$0N<|B#sv4vi9fAVpU5#IB`}W+Srr z5d?3vV8ECxE&OG)i+(zVEB(*I2H#K;Kl{D?x;^Q_?8qLkdhRJz zN3}0c-liH?XFBn5hU|jRUBMq}zcu`d^{=VPTz7m;Y2mbTgkg#flov5qzJ5z6?Qi;Y z$ybrY@yn)GrcLfXZo@3y{DBR3%i3RjrV-LuE=e32V!XO)P+Hq4g%!ciCmaL<*co qq(uS+_WeIb_5U)(|35ZkaOD{H+y4S6bo4C% literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_anim2_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_anim2_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..4b755ff680a72d7ce75905f4fd6fb38e79babaf2 GIT binary patch literal 3207 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_anim3.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_anim3.png new file mode 100644 index 0000000000000000000000000000000000000000..5f29f8c189a8f7baf050750604996fe5000625a6 GIT binary patch literal 2412 zcmc(h`9G9<8^?#9oFO!0Ye>zR8HHn;n3DZ;&rD5asW_R)GTD<5nud^?FxJtclI6(Y zQ5Z{9Xecp+PEnRDLzYHk?2et|p3@)j{Pw(F-}{IAy5HaH`drKR`??vYtdGe^sYpQ} z5Sim7!WjreOdEWl;#-!#k;-TYMAG0m;fUR}bYZ{XO3q8A8>a&=4s6~xvS`90u$<#x z?~tEWRfWn`bA=-=Bjn22Q$3yQAw=XUgbkqi{e-2#`rn}U#>1i2I$KcaV<6a$ePNOS5 z!(%~xSXN&R?JB?JiCw`QFAUymOuYeqfKt8>FU7~rB>*g+r!%s&+&A_vM}bU#6;MT zkerh`D?H+*=TXI`4OmoUz|b|-xp+;9GSvpkV^{P@vO?r+eK}M67|k_@oCP(aVUj;gin&N^Vqg8P-Ouq}ddOdRHJ@zH zGcUSMb>LDmJ#+zmjn~BUn;VooUMjTNZP7ZRH`%m$dVxy~``|HOad2HfgV56)**u*POQMvqSD>UoZJsdp! z-a*fpb4VvRsv)t5VveS}qFEC4(>I|7?&-2Y7X8-r&j!{p=NQbV!PnG)i-PKUalLgI z>Ob-*v6a2iuNX{(@p%RlyBWq zrqV=`R@!9A2qTUNTJULmqZ?wGmCw5=Lxyc4uWdeoh*UKIx*u@({1L0YsT+r8ot6n9 zKZK$lLVfJlu!XZp18A1d%$`(r5w+`(^s_?ZT_`FYI$qapf`RXNoy7VH&L_v|!F~x8 z4KUV9svkn4=qKSk1;!e2z%iHyg3YACe42jcAfvNEr%-jEF(urK?3JYnG~%oxYdbA0 z*6q@gOa0houcs#$?_uoV`gydCUcQbAr=NL#@kUUZ_2MnTmo5vo30F9!$z4)J;m2o6 z<07BXYw@L)O|nQ`@5xU;YW*UYnW+B8h+;oK(beyt!J3KywD(JAgSE( z*r@`0YeG`_qoYYZpUbxgo8oS%7fms6!!lrR8L*oSCdJGtrSiFw6`CG^c6WC&jklur zS-SmHF0ojG_Vbs{i@>C}FQ3@#;hv0N+2quS8P?*H3^8lbdlpoNI?Jn9EBjDkb2uyE z0187moc}6im1^V%%ohd3OtiHK?&lqH#sz*H6-YWRRkc6z$?U*=S@Co!i?n^fR$t@0 zKs9rZCO5P0HIkEnE<%$NZgoN#er20bmuM@8qRXRldK2CpvS)$fN1RnuqtWi(e#krL zVnOwRX3DpUib!C|!K(kMyR#WrffltHx9qe3z|<^v`lmA9nV*n5ki-GhBih1$O( zLzbU7zbxbAE`0m3UdGd!`}V^qm=?O@;5lcjC&6f*G@%ly@wifA}qmnu(bYYbRAVJ0Ox(28&Lh` zHgufOFYa3`%9pfL!YNi)be!gHHo8{$WsA;5??;gHAqPi=oE6oK^~Wc-5*2tm%Tubb zL z^~XvQN&9`H1QQM$CF|kTA=|mN>4Io=O0nM%&TuW6wVN7_L$}oSs*QM2b+EgB@mzXS zreZtjZwYWJr0c?VJ@jzY05}&U(~_af>Eh*bDCC*J9G*Q(wsrbY4COrxHFW?I4@a>P zH*WXHUuhnO`7Z@Jddtny#mMncBe!43DNvd_oC!tSBxFXE?CgkdDpYUAy(CHP)u zl2@g9L;zKGq668Lkv<0Xym`y?5TX=7RLK>&8)z?H{WIM z^3K*v$zvIu#r}rv12wIW4c+Vq$0?11jP9APEAAev@qr=Ls%DcEj*^v?de-t~dVyn`cZ& literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_anim3_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_anim3_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..d193186b25d472a87a56579841a23f739b7cdcd4 GIT binary patch literal 2424 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_scale_00_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_scale_00_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..43875e0b698a18f673339ec7ea727abc240eec3c GIT binary patch literal 1593 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 GKlwK`w*f@} literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_scale_01_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_curve_scale_01_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..d1dc7e645de2fd94bb2c35b88a14ee80a8ec0045 GIT binary patch literal 1882 zcmV-g2c`IlP)@|@p&`Q|lt6O; z;#fW?3R+2#w7t;4xG{DlYjv>4-=!k2cE0HU_upMf6vh}V2nU^Y2WE+dtOzV*MS#t^ z180LV?pPK8paNmfvH$>e2q}t6zbCntW&8ftU~q^~k!3lGD)IcTVc5R^tkYQ%#UE7_ zGEAENq4GHzb`B3eAhhQ=s_P1-xm2l~Yqh@q)yMd~VZ77z^QF?dqNLWVJj%iV{PytS zKQCTfziXT zWPNtsC++sCD1I*pKE?n5ilThq=QvIfgwgXqnC73aU*A;K{^6l0iorP#9z3{z|9-t* zC)>At$ueE{Z%w;itx6mh{#VHNpLIIFG#dPutZ$kogpj5QkM;Q~9scTcE|<%ZOaTB2 zG<{i7o*W!}JtB%CaZ?~ych)mat3kLTNz?s&@Az1=teu48 zqhv4ZdAEB`l0=rwTtZ~obCUGD+a=Q4DKeJTv+X0tStDA7uPMrr<0KJ`S<1oyyzKR^ zRw~3>zFMig?DdEb^I6K;F${_0D&MNhV^R?WiQ{$*gKV=|%6hBoS5!5j#;>UAThe7j zX0kTB-Bzh2B(}yPFifjd+9aCkvyo+cUK^pcQYq1^td&Y_glx|v)nGQVUiJGIQ(1?) zs3@=ceNwGuAj|eV&9YWyIfZMj%Ccrzq;9SZWNi%wEm=-y37rCojd zvf2n0IWEoHDnMYEBFD86irG%8vfk?Yr4)CrhPk9D@eBI&Wa*CMVq77;Jr$A)gf7Oq z$q?2|b!%kPhl;5*6a0ZwOX&&_xARlK7E?b)dMI1zAF~D2Ls>tgCi#= zC(&9+XDjTFj~{=k)fArpdc?MEgwUxS`J^#i_xH`s-s8t>>+71PwcG7-xvZ+{?c2A* z?DeM+hPLOO`2Mgd0DvF}-`tK*6q#j3S#I6Br4);eM&sJGYmVc%t{d_JrZi-24F=h! z_F=9z8g`>`X{bNCuCw8`OVY?$ZPRQPiz!?v3_lc$`~NSv6h&de)yav=>RDESWz(

    gcMTI=zv2VI6CyPwH=fJm0;^n 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 Ef>{9z0ex28Oy>6X$cLGZ&O8@`> zurtcR695o0{P%!__bO{JB~1W8I?CDM*qNk~rSCn_f%Ad%mHJZFEwfx`Z_5YQ8+WOc z+Q;|xykg#fZh0GMJi6d<3mEF;TLX9`18K0gX?QvU4E7kjX_pSZ-7T!4k@3f0N+*Qm z-n*jSn@779yc$nb>2BG5k~NYYu(TMKZP{tELK}TvCr{vN}h}@=f=}Q z$=6ZQt3uk9%|cSg^c=7ZSe=2*xY2UU}~5%~_(9GV?!(ovdh^->bi zM-HF|T8bymqEvG>!0(+wS-_bB<&WxJ)BpJ8k#L|~)-nDi3qvi{BE6`00>{buxtn9S z;udwSI7sfNd*4FvA*PI&M$3~tgX@%v>2OZMpPUnQH%T<}C8b+4zK0KDKPYz`Q`rUl zGplWQ-plFnhBpgT{kif$PrYYZuC0fM5%}9{IU7P)yY&NxGp04wDR|$xV}G-?Yn&5Q ztlIW{dPt(#w%&2zRTs((8ciSQF(yzdOdw;+;%c5QNO5MR8KlR!fCR@R0XSmn2eIu> z?}g)U!5L=;3LkIiy!q09(JwZ+;CP0fVZ2od;R7{FyXtOvlPSaDLGj~_C*5EAD<44e zfV!WY$uCQtey~_6_RT3*i5=A}OL1Nwf^sfHWjAD~0%$PJGOlnfWC6dv<;-z= z##hj;mJoXXVlbj%tQ%;z9c*`e` z_0};QuXHIQyT^JDv2I*ld=WwF6DU6l)Ozkg>Ju)0ym!&~xAII*%VZ1GQx8-w3m&Ib zfR7sWhsREcrc_7=IkeWdef&BqU6{)fXqwwa9{h5^>?pL+eo4R0Ex$**J1SJ}Q2jmf zF~SU`e=0wCfl?8AU@p(4YorBze$)8JygOrc$h{Sns;z4!Zgl#IOM;gULYx#x6_J}b zRQLLW%(r#5H)1DOITzG>?veYnOUOyR!eWWELu#)+0Qq+8%k2RN`kn6Q3?%sJmqTll zJc`y<`V+H*clRZAZ&^@?u_TQFZd5&5tzze5@2Q}c-Y(>Jpr4=?8%VMvg1K8fd z_5^C6{KZMARN%C1Qk)#y1qX9y9H{BU@UKmH1U2XDQyK^ zZwiDhW9TYveCEM%pRX@{}-=8(Dcbecq&plk8L%Uk%Cjm zrCac21a_(WN!)d=@S<3l-s{s2u=u)5;{z~swQSdoA#wv{16x#Y*1UW=p`PEnU5GIj%q z1W?#cIN6;SmeIZ<)lt3&SBLwvr#E~!M{$54r5Uy?AJR=X6qpJWtB$HJ;v{kz=g8OB zITF@4&S%Klh4i9-U2D_qrTm%nz(H}x@~^jtbS2ed<6(3#Cd-)*OWF?uK+k2JOnSxC zw7!u{zD~r6OYPgj=KMG%6E6UJ^}nrKD552{l-dx#8_usebUX-nT^HV{U5W&BbRu%@4 zqMsx$!GYy;)5Q!Mny>*EO^pzJ2W^Etq#ceF0 z!wW8{$Q~enG~$yGPDTExYL*vV%$RP1l;Xj~8fc)~&}DikChH%#xEVi+Gk575eQ)Cv zOJ(j6YGIQS0U4o4v1qyh6c5;y~^C>eR z;RlKIyrCn0W~Z5ac4p8T5hRz(kmSO+(r|DzcM8l*ZUO#edhm5!CuRlvcfk{w8!+5V zZ?En4Lo@#jtCOWwjZ+u9Yr29ZZJT%Hd&@Rg}yoY-IxaG7Bs z7~S8%ed9u-ZzzRv^4QCT4ZXWt8%D>$!p8SA(?Y6`wU8VGYabR6PelpPNl-K0X%*F8tWr~$H3p3^$P5)bY5 zqStln(U&%US6YY+qSDxvX#}lPds?roA#OaZXgV^c1YNNA9Cx30M2$!y+83MR z6U5qUSqRV1GWmjEVBHDX_S8H<;cD~g$B3{d{og)rrR!>cPq6H(3<~gg8!DO+-)cA~ z>ZYiLo?ge8j=+Zf5%3N-zg1rU#|JApg|#w*nRDulClDZYT7-yLaFqCn2@*aH-2k zxy&-%%}Y}u&fl@ctl3>J;BBcQr*6zXBvvT#Ibsv=ci*Vv_%o$~4KT|YiEJJ?9Z+|y z(T1TBo!j5=>4+3Y3`+%+JW37;Gar98{88XIrL9UFjVg69 zvC>i{6-z5%T^*6H3!*y<>;w=+te#(+jQ%^1oTUfpW2-e`EGmG zk6mgTalH&~2qG}4$?Nwa=$@Zxir;9~Q0SR~ab;e+`5Y95b|bR2RZ)x8Tj9;-%#LgQ z_mJvZV}Y8*5$~mwbyw!O4h4r}99wQzHua}R=y(R9JtfJy_2SJBW|oJ4Lrkc`DeVqp zg(O;sx#Z%oMuUiCz{6kpZ-4n#L>@6&i8?$QI*D?%?8q_o8y```j$eh&c>c9%x|bS< i{vYz<|01^HrTlfjw1xk?ptu*n0nR7g9qNt;W&Q_K3UNFD literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_boxlib_05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_boxlib_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..55799d8857be0aa4bee761cd5cf06658f618ee4c GIT binary patch literal 3152 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 M+I78R9hXP{0cV!dMF0Q* literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bp_sparse_topos_example_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_bp_sparse_topos_example_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..076c1907cd1daca857891b7c6a644d3a955406e9 GIT binary patch literal 2303 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 Gh5R2Yf?4_i literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_chgcar_05.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_chgcar_05.png new file mode 100644 index 0000000000000000000000000000000000000000..6947ac9826b613b9b2896a9c93d0f827ba049c6a GIT binary patch literal 47844 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 z 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_chgcar_05_thumb.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_chgcar_05_thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..c4702d28bf212cc6b14bb114987c4f54c65fb68a GIT binary patch literal 7118 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 literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_chgcar_07.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_chgcar_07.png new file mode 100644 index 0000000000000000000000000000000000000000..01fca934ccfef2a6e0260c1c7856c1a1833168fb GIT binary patch literal 49558 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%0D5M-;w8ZZE4;ciq8yRK6M8^9 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 e@_%vrC_OiQ$RFgk@!xv+L|I-#u3E-CLc literal 0 HcmV?d00001 diff --git a/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_chgcar_11.png b/2024-12-12-22:00/poodle_trunk_scalable_parallel_icet/c_chgcar_11.png new file mode 100644 index 0000000000000000000000000000000000000000..bab03d9ff3d37457c7f9ba004eb3daf28923f596 GIT binary patch literal 16210 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